分页: 1 / 1

[转帖]ARM的内核

发表于 : 2011年 5月 21日 02:34 星期六
admin
正如x86架构可以通过内核来判断CPU性能和新旧程度一样,ARM CPU也有不同的内核,只是内核更新没有x86如此频繁(x86基本两年更新一次)。从1983年开始,到目前为止,ARM内核共有ARM1、ARM2、ARM6、ARM7、ARM9、ARM10、ARM11和Cortex以及对应的修改版或增强版组成,越靠后的内核,初始频率越高、架构越先进,功能也越强。目前移动智能终端中常见的为ARM11和Cortex内核,如诺基亚N8使用的即为主频680MHz的ARM11核心,Cortex主要用于高端和多核处理器上,如NVIDIA的Tegra 2就是由两颗1GHz Cortex-A9核心组成。
1.jpg
ARM处理器经典内核及Cortex应用内核

ARM11架构发布于2002年,基于ARMv6指令集,包括ARM1136J、ARM1156T2和ARM1176JZ三个内核型号,其中后缀带J的表示支持Java代码硬件加速,T则表示支持Thumb-2指令。ARM11采用8级流水线,能够支持多核架构。在使用130nm制程下即可获得低至0.2mW/MHz的功耗比和500MHz的主频,而当前工艺条件下,已有1GHz主频产品出现。ARM11处理器系列面向多种手持电子消费品市场,推出了许多新的技术,包括针对媒体处理的SIMD,与ARM9相比,ARM11对于MPEG4的编解码算法速度提高了一倍;用以提高安全性能的TrustZone技术;智能能源管理(IEM)等,同时,ARM11还改变了缓存的结构,使用物理地址对缓存进行索引,并加入了动态分支预测功能。
2.jpg
ARM内核及制程发展线路图

Cortex内核发布于2004年,最早的型号是Cortex-M3;Cortex-A8内核于2005年10月4日发布,随后ARM在2006年5月15日发布了Cortex-R4内核。这三款内核分别面向不同的领域,移动智能终端上使用的绝大多数为Cortex-A8内核。Cortex-A8内核的DMIPS指标达到了2.0DMIPS/MHz,相比ARM11取得了巨大的进步(ARM11为1.17DMIPS/MHz)。Cortex-A8处理器在大幅提高性能的同时,依然保持了低功耗优势,譬如说,一颗含有32KB一级缓存,256KB二级缓存的Cortex-A8处理器,在使用600MHz的主频时,总功耗仅为300mW。Cortex-A8还引入了NEON部件,NEON的功能与英特尔的SSE指令集类似,用于支持SIMD类指令。Cortex-A8还可以在每个时钟周期内并行发射两条指令,是首个ARM超标量体系内核。为了进一步提高时钟频率,Cortex A8内核使用了13级的整型指令流水线和10级NEON指令流水线,并改善了了指令分支预测的命中率,从ARM11的88%提高到Cortex A8的95%。此外,Cortex-A8在缓存的设计中,首次引入了Way-Prediction(关联路径预测),可根据预测关闭暂时不使用的缓存,降低处理器功耗。英特尔从Pentium M处理器时代起使用了这种缓存访问方式,并一直应用到x86处理器的后续产品中。Cortex-A8还可以使用64位或者128位总线连接外部设备。Cortex-A8不支持多核架构,多核超标量内核为Cortex-A9,而最新的多核内核则为Cortex-A15。

2011年初,ARM Cortex-A15内核发布,主要是针对多核进行了优化。Cortex-A15处理器可运行在2.5GHz,能够在不断压缩的能耗、散热和成本预算范围内提供高度集成的可扩展性解决方案。Cortex-A15计划以32nm、28nm工艺生产,目前尚无成品产出。

与x86处理器仅对微架构的关注不同的是,影响ARM处理器性能的还有指令集版本。为提高处理器性能,ARM先后发布了7个版本的指令集,分别为ARM V1至ARM V7,不过指令集版本并不与内核对应,如ARM9内核使用的为ARM V5版指令集,而ARM11使用为ARM V6,最新的Cortex内核使用的才是ARM V7版指令集,表1列出了不同内核对应的指令集版本。新版指令集是对旧版的修定和增强,不一定兼容之前的版本,但在多媒体和复杂应用方面性能会大增。事实上,在ARM处理器当中,指令集版本的高低更能辨别出处理器性能的优劣。
3.jpg
表1:ARM指令集与内核对应简略表