基于基于ARM Cortex-M3核的核的SoC架构设计及性能分析架构设计及性能分析
主要研究了基于ARM Cortex-M3核的SoC设计方法及不同架构对芯片整体性能的影响。首先从Cortex-M3的结构
特点尤其是总线结构特点出发,分析了基于该核的SoC架构设计的要点。然后通过EEMBC的CoreMark程序,对
实际流片的一款Cortex-M3核芯片进行了性能测试,并与STM32F103 MCU的测试结果进行了对比,通过实例说
明了不同芯片架构对性能的影响。最后,对影响SoC芯片性能的因素,包括芯片架构、存储器速度、工艺、主
频等进行了分析和总结。
ARM Cortex系列是ARM公司推出的基于ARMv7架构、使用高性能的Thumb-2指令集的32位嵌入式微处理器核。主要有三
种款式,分别是Cortex-A、Cortex-R和Cortex-M。其中Cortex-M系列主要用于低功耗、低成本的嵌入式应用。本文用于
SoC(System on Chip)设计的
1 Cortex-M3核核SoC架构设计架构设计
1.1 总线接口总线接口
处理器核对SoC架构最大的影响是其总线接口。传统的ARM处理器使用单一总线接口。如ARM7处理器采用冯诺依曼结
构,指令和数据共用一条总线,从而核外部为单总线接口[1];ARM9虽然使用了哈佛结构,核内部指令总线和数据总线分开,
但这两条总线共用同一存储空间,且在核外共用同一总线接口[2]。使用单一总线接口的弊端是取指和取数据无法并行执行,
效率相对较低。
Cortex-M3的结构如图1所示。Cortex-M3采用了多总线结构,在核外有ICode、DCode、System三个总线接口[3]。其
中,ICode和DCode总线接口使得在地址空间Code区中的取指和取数据分开并行执行,而System总线使得在地址空间SRAM
区中的取指和取数据使用同一总线接口,无法并行执行。
1.2 SoC架构设计架构设计
由Cortex-M3的结构特点可以看出,Cortex-M3不适合像传统ARM处理器那样将代码由Flash搬移到RAM来提高效率,那样
反而可能会降低效率(由于SRAM区中的取指和取数据使用同一总线接口)。而Cortex-M3是将代码和只读数据放在Flash中,
程序执行时将可读写数据放在RAM中,从而获得最高效率。
基于以上考虑,设计Cortex-M3核的SoC时,最好将片上Flash挂接在ICode和DCode总线上,即0x00000000~0x20000000
地址空间,如图2所示,将片上SRAM挂接在System总线上,即0x20000000~0x40000000地址空间。这样从Flash中取指和取
只读数据可以分别通过ICode和DCode总线并行执行,提高了Flash的读取效率。而对SRAM中的数据读写通过System总线进
行。三条总线各自分工,使得SoC性能大大提高。
1.3 自主设计的自主设计的Cortex-M3核核SoC
实验室自主设计了一款基于Cortex-M3核的SoC,并采用0.18 ?滋m CMOS工艺流片成功。如图3所示,芯片的片上Flash从
0x20000000开始,共256 KB;片上SRAM从0x30000000开始,共96 KB。其架构特点是片上Flash和片上SRAM均处于
0x20000000~0x40000000地址空间,即挂接在System总线上,但两者均可再映射Remap到0地址,即可挂接到ICode和
DCode总线上。
评论0