读后摘要:RISC和CISC的效能之争


    与以往传统不同,近年来以低功耗著称采用RISC的ARM架构芯片开始进入高性能服务器市场,而相对的,以性能著称采用CISC的x86架构芯片也开始蚕食移动端份额。在此背景之下,文章主要研究和探讨了RISC和CISC在功耗控制方面的异同。具体比对了ARM Cortex-A8 、Cortex-A9 和 Intel Atom 、Sandybridge i7 这几种微处理器在移动端、桌面端和服务器端的表现。最后结论简单的说就是:两种指令集在功耗控制和处理性能方面没有孰优孰劣之说,只是各自的芯片在平衡性能和功耗这个跷跷板游戏中采取的策略不尽相同罢了。

    文章接下来回顾了之前的研究,发现他们普遍的不足在于只比较了ARM和x86两种芯片在性能方面的差别,而对功耗的控制有意无意的忽视了。所以本文将采用严谨的方法仔细对比两种指令集的功耗之争。具体实验过程中为了控制变量,采用了相同的芯片技术(除指令架构外)、操作系统、编译系统等无关设定。文章结论说明不同的ISA与功耗和性能是无关的,真正影响它们的是处理器的微架构。这也印证了传统研究的已有结论,并且提供了更精确的数据支持。

   文章的第二部分介绍了RISC和CISC在指令构架方面的区别。主要对比了二者的format、operations和operands。作者列出了一个表格,横向是format、operations和operands三个变量,纵向前两行是RISC和CISC的特点,比如在format方面,RISC是定长而CISC是变长的,在Operations方面,RISC是单周期而CISC是多周期的,第三行总结了两种ISA造成的差异,如代码密度RISC<CISC,第四行展现了两种ISA在发展过程中趋同的趋势(比如I-指令和缓存),最后一行回答了一些经典的问题来进一步表现出二者的趋同化。

    接下来第三部分主要说明了研究过程中使用的设施、工具和环境等。试验中需要控制变量,使芯片的制程、频率、寄存器以及计算机的缓存、内存、操作系统、编译器尽可能相同(完全相同是不切实际的)。最终采用的芯片是ARM Cortex-A8 、Cortex-A9 和 Intel Atom 、Sandybridge i7,操作系统都是Linux 2.6 LTS内核,编译器是基于gcc 4.4的交叉编译工具。除了执行尽可能相同的运算量,在具体的运行过程中,实验人员保证了所有的运算都是单线程的,这保证了他们对单核的研究目的。至于平台方面,在移动端,采用了CoreMark和WebKit的标准,在桌面端,采用了SPECCPU2006套件,在服务器端,使用了lighttpd、CLucene和Database kernels,分别用于网络服务、网络索引和数据分析。然后是使用的工具,采用perf工具计量是指令执行时间(以时钟周期为依据),功耗方面连接了一个Watttsup表到电源上,用执行时的功率减去安静时的功率得到指令运行消耗的功率。由于i7采用的是32nm制程而Cortex-A8采用了65nm制程,为了抵消这个影响将他们统一到45nm制程,根据厂家的2007 ITRS表格将前者的功耗乘以1.3后者的功耗乘以0.8。当然以上的控制也会带来局限性,是最终结果不能保证完全准确。

    文章第四部分介绍了实验方法,作者列了一个表格分别介绍了如何测量指令执行时间和Inst. count、Inst. mix、Inst. length,以及计算机功率、主板功率和芯片功率的办法。得到这些数据之后,进一步介绍了性能分析的流程、如何进行功耗分析以及怎样分析这两者之间的取舍。

    第五部分通过大量的图标展现了实验数据并说明了研究结果。

    首先是性能部分:

    1、执行时间方面,在全部以i7为标准之后,发现在所有的平台上各芯片执行时间有巨大区别,其中A9是i7的5倍到102倍不等,而A8是Atom的2倍到997倍不等。这是由于A系列芯片的频率普遍低于i7和Atom。

    2、执行周期数方面,在转化为i7的标准之后,差距明显缩小,RISC系列的芯片都不多于CISC系列的2.5倍,其中A8不到Atom的1.5倍。

    3、指令数目方面,在以Atom为标准之后,结果显示不同的ISA的指令数目大体相同。综合知x86的CPI比ARM的更小:A8的CPI为3.4,A9为2.2,Atom为2.1,而i7最少为0.7。文章也说道,x86芯片的优势来自于它的微架构。

    4、指令格式方面,首先对比了ARM和x86生成的静态二进制代码大小和指令长度,发现两者的二进制代码大小基本相同,但是x86指令长度平均比ARM短25%,接着比对了指令的细分,发现不同ISA的load和store指令比例基本相同,这反映了二者在数据存取方面的一致。综合以上数据,结论是不同ISA在指令格式和mix方面没有太大区别。

     5、微架构方面,文章首先对比了A8和Atom、A9和i7在芯片架构方面的诸多不同,比如流水线深度A8是13而Atom是16+2,A9的BTB是512,而i7达到了8K~16K,尽管如此,在12个标准中,A9的执行周期不到i7的2倍,这个可能与issue width有关。接下来展示了三张图分别对比了不同芯片在branch mispredictions、 L1 data 和instruction cache misses per 1000 ARM instructions的区别,结果显示A9的miss普遍比i7要高,但是这些区别并不是由于ISA造成的,而更加有可能是芯片微架构设计不同的原因,比如x86拥有的更精确的分支预测和更大的缓存,极大地提高了它的处理性能。

     然后是功耗分析:

     1、平均总功律,在以功耗最低的A8为基准转换之后,发现总体上x86比ARM更加耗电,其中Atom的功耗是A8的3倍左右,而i7的功耗是A9的20倍之多。

    2、在通过系数转换统一到1GHz,45nm制程的芯片之后,不同的情况出现了:Atom的功耗不到A8的0.6倍,而i7的功耗比A9也降到了7倍左右,而且注意到A8功耗比A9还要高29%,这表明在功耗方面,不同的优化方式的影响要大于ISA的影响。

   3、平均耗能(功率乘以时间),数据显示Atom平均耗能要少于A8,而i7 仅仅比A9多消耗少量能源。对此文章的结论是功耗和性能都是芯片设计之初所要着重考虑和取舍的,设计的不同所造成的影响相比ISA的影响要更大。

   第五部分最后讲了取舍分析

   1、功耗-性能之间的博弈,通过数据比较发现,A9相比A8在使用1.8倍功耗的情况下,取得了3.5倍的性能。而i7相比Atom,在使用了10.9倍的功耗之后,达到了6.2倍的性能。这表明i7的微架构可能更加耗电。另一方面这也再一次证明了亘古不变的定理:想提高性能,那么先提高功率吧。

    2、耗能-性能之间的博弈,通过图表数据可知,不管ISA是什么,只针对功耗或者性能优化的核会有更多的能耗开支,只有平衡了功耗和性能之后的核才能有不错的表现。例外DVFS和其他微处理器技术能够提供更高的效能,比如在功耗相同的情况下,i7在2.2GHz运行时能达到A9的6倍性能。以上结果表明,真正影响效能的是芯片的微架构和设计方案。

      在以上数据和分析的基础上,文章给出了总结,回顾了研究目的和方法,并再一次明确了结论,即在现代芯片中,ISA的不同与功耗和性能的表现无关。同时文章强调,不同架构芯片比如x86和ARM在今后的发展过程中依然会调整ISA以适应未来的计算机性能和功耗的要求。

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值