以小搏大!ARM Cortex A7全新架构简析
第1页:ARM的另类思维!A7回归顺序执行
泡泡网CPU频道11月1日 如何在保证较长续航时间的前提下实现更高的计算性能一直是困扰智能手机的难题,你可以设计出具有强大性能的处理器芯片,但是你却很难实现长时间续航,而如果你为了节能推出低功耗芯片,那么芯片的计算能力又不能满足应用的要求,在这种矛盾中,移动芯片场上的做法是将高性能计算芯片跟低功耗计算芯片联合。
ARM欲推出Cortex A7超低功耗核心
在这方面的一个代表就是Nvidia的下一代Tegra3 SoC(代号为Kal-EI),Nvidia透露新一代SoC芯片将具备5颗运算核心,其中四颗能够提供较强的性能,并能在系统里显示出来,而另外一颗则能在较低功耗下进行计算。当移动设备在待机情况下,低功耗核心开启,完成emaile接收、SMS/MMS以及Twitter后台更新等运算,这时候高性能核心是关闭的以实现节能,而当系统需要较强运算能力时,另外的四颗高性能核心被唤醒参与运算,而低功耗的A9核心则会进入休眠状态。
Nvidia的解决方案中,所有的芯片都是采用了相同或者相似的架构,而下面我们将要提到的不同架构核心的组合机制则差不多。目前ARM还不能提供足够低功耗的核心,因此Nvidia的解决方案里,低功耗的核心还是A9。而现在ARM正雄心勃勃得为Cortex家族增加这么一颗功耗足够低的运算核心、它既可以独立使用也可以作为一颗ISA协作核心跟高性能的A15核心联合使用。
架构
其实自A9芯片开始,ARM就开始在乱序执行核心方面发力(在改进的并行计算中,指令的执行将根据任务进行重新排序),而在这方面Intel的X86是具有绝对优势的从Pentium Pro时代Intel就开始推行这一运算机制。ARM将要推出的A15高性能核心即是继续延续A9的步伐,而A7则是走了相反的一条路回归到Cortex A8的顺序执行,在并行计算中可以顺序执行两条指令,不过A7跟原来的A8还是有着很多不同的。
Cortex A7跟Cortex A15的区别
A8的设计可以追溯到2003年,后来ARM计划推出合成多核心的版本,用来提升频率和性能,不过受制于将新产品推向市场的时间和研发上的成本压力,“加强版”的A8核心计划夭折。如今得益于市场、制程等,ARM具有了卷土重来的资本,A7核心可以帮助ARM在未来几年内奠定在高频率、低功耗芯片方面的优势。
Cortex A7具备一颗8-stage的集成管线,并能支持双发。不过跟A8不同的是,A7不支持双发浮点或者说NEON指令集,不过有另外的指令集让A7实现单发。内部结构上的很多方面,A7都跟A8相似,不过在FPU等方面得到大幅加强。
限制带宽的设计让A7的芯片体积可以做到很小,ARM宣称28nm的单核Cortex A7的面积仅有0.5平方毫米,在工艺节点上,ARM希望合作厂商能将A7的die面积控制在A8的1/2甚至1/3,顺便一提,A9的die面积跟A8差不多,而高性能的A15则要比两者大得多,具体规格参见下表。
尽管限制了双发能力,ARM希望A7能提供比A8更强的每赫兹性能和整体性能,由于采用了相比A8更先进的预测器,A7的分支预测计算能力得到提升,更好的预测算法也使得这颗芯片更为节能,此外ARM还指出,它们在A7中采用了更低延迟的L2缓存(10 cycles),不过具体的情况还要取决于制造厂商。
“Cortex A7重新定义了能效”
不过实际上,由于限制了双发带宽,Cortex A7的评估性能要比A8要低一些,具体的对比参见下表。
Cortex A7的评估性能不如A8(数值越大越好)
好消息是,Cortex A7能与Cortex A15实现100%的ISA兼容,而且A7能够支持新的虚拟化指令集、支持整数除法和40-bit内存寻址。也就是说任何运行在A15核心上的代码都可以在A7上运行,只是运算速度要慢一些。不过这一点让SoC芯片同时搭载Cortex A15和Cortex A7具有了实际意义,二者也可以根据任务负载的不同即时切换,ARM把这种机制称为“big.LITTLE”。
第2页:异构运算的ARM MP!big.LITTLE介绍
实际上,我们可以把Cortex A15理解为ARM架构在运算能力上的重大提升,或者说是ARM之前跟Intel的X86理器“较真”后的成品。ARM目前雄心勃勃,甚至要涉足服务器市场,A15则可以看作是在这方面的第一步,只不过Cortex A15面向的是智能手机和平板机市场,最终将取代Cortex A9。
A15要比A9更为强大,在高负载下,Cortex A15将可能比A9更为节能A15核心在执行任务时尽管需要比A9更多的功耗,不过在完成任务后转入休眠状态的切换过程要比A9短得多,因此A15芯片的平均能耗将比A9低不少。
ARM在跟Intel“对阵”时多次高调支持,乱序执行的微处理器架构在执行对运算能力要求并不高的移动设备任务时效率非常低。Cortex A15作为乱序执行架构一员也自然未能“免俗”,因此ARM推出了低功耗的A7跟它协作当智能手机在你口袋中处于待机状态时,只有A7核心在运行。
尽管ARM宣称Cortex A7核心也可以单独运行(意为离开了A15也能单独做成芯片),但是ARM合作厂商可能更倾向于将A7跟A15集成在一起,也就是所谓的big.LITTLE方案。
由于A7跟A15核心均能支持ARM的指令集,所以任何应用都可以在两种核心上运行,上面的图示显示,在一颗SoC芯片内同时搭载了A15核心和A7核心,不过在操作系统看来,这颗SoC只是拥有两颗核心并没有把二者区分开来,而区分二者的是ARM的能源管理固件它能根据任务负载的不同激活不同的核心,此外,高速缓存一致性的设计也让两种核心之间的任务切换更为平滑
ARM宣称两种核心之间的切换延迟仅为20毫秒
如果一切是像ARM描述的那样,big.LITTLE方案可谓是完美的,正如Nvidia承诺的Kal-EI那样完美。
核心
ARM的Cortex A7核心将被采用在未来的1-4核心的SoC中,当然除此以外的主要计算核心就是Cortex A15了。ARM的心情显然很急切,它期望在明年底,100美元以下的智能手机身上能出现40nm的A7,双核版的A7芯片显然能让厂商将智能手机成本控制在100美元以下,而在价格更为敏感的新兴市场上,ARM将可能提供更廉价的单核Cortex A7。一切顺利的话,在2013年,入门级的智能手机都将是双核心的,当然这里是指双核A7。
尽管A7芯片的最重要归宿在于在28nm制程时跟高性能A15联合使用,不过受制于制造成本,40nm的A7或许将在市场存在一段时间。
总结
显然Cortex A7的描述让人非常兴奋,因此它意味着未来的智能手机不仅能实现更强的运算能力,同时还可以具有更长的续航时间。尽管有些芯片厂商在异构计算方面已经吵闹了多年,但那些在Cortex A7面前。