基于ARM Cortex-M3核的SoC架构设计及性能分析
2012-03-15陶友龙赵安璞陈海波
陶友龙,赵安璞,陈海波
(东南大学 国家ASIC系统工程技术研究中心(无锡),江苏 无锡214135)
ARM Cortex系列是ARM公司推出的基于ARMv7架构、使用高性能的Thumb-2指令集的32位嵌入式微处理器核。主要有三种款式,分别是Cortex-A、Cortex-R和Cortex-M。其中Cortex-M系列主要用于低功耗、低成本的嵌入式应用。本文用于 SoC(System on Chip)设计的Cortex-M3核便属于该系列。该处理器核凭借其高性能、低功耗、低成本和开发方便等特点,受到了各厂商的青睐。STMicroelectronics、NXP Semiconductors、ATMEL 等都竞相推出各自基于Cortex-M3核的SoC。由于Cortex-M3核的结构与传统ARM核有很大区别,因此基于Cortex-M3的SoC架构设计也有与以往不同的特点。不同的架构对芯片整体性能影响很大。本文使用CoreMark对实际芯片作了性能测试,其结果证明了SoC架构对芯片性能的影响。
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区中的取指和取数据使用同一总线接口)。……
