Power Struggles Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 Architectures

Power Struggles: Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 Architectures (2013)

  1. 摘要:

    • RISC和CISC的争论在1980s激化,而当时芯片面积和处理器设计复杂度是主要的限制因素,并且当时台式机和服务器独占计算领域
    • 相比于1980s,现在能耗和功耗是主要的设计约束,计算领域也发生了变化,ARM的平板电脑和手机的增长已经超过了x86的台式机和笔记本电脑的增长情况
    • 传统的低功耗ARM ISA正在进入高性能服务器市场,而x86则正在进入移动低功耗市场。这种情况下,ISA在性能还是能效上的固有作用的问题越来越重要
    • 论文工作:
      • 论文使用了移动,台式机和服务器计算的工作负载对ARM Cortex-A8和Cortex-A9以及Intel Atom和Sandybridge i7微处理器进行了测量
      • 论文证明了ISA在现代微处理器的性能和能效中的作用(ISA是RISC还是CISC似乎不重要了)
      • 论文发现ARM和x86处理器只是针对不同的性能级别进行了优化的工程设计点。在一类ISA或另一类ISA中,根本没有更高的能效
    • 在A8或更高的性能水平上,RISC / CISC与性能,功率和能耗无关。对于最低性能水平的处理器尚未研究。
    • 尽管ISA不断发展,但它一直专注于实现专业化,并且在很大程度上与RISC或CISC无关。
  2. 介绍

    • 任何ISA研究都面临着将与ISA正交的多个实现因素和受ISA影响或驱动的因素分开的挑战。当考虑进行能耗测量/分析时,挑战更加严重。此外,ISA可能需要某些微体系结构功能,而另一些可能是由独立于ISA的性能和应用领域目标所决定的

    • 独立于ISA的因素包括:工艺,设备优化(高性能,低能耗/低待机功耗晶体管),内存带宽,I/O设备影响,OS,编译器和工作负载。

    • 论文的研究ISA的方法

      • 为具有相似微体系结构的每个ISA考虑多个芯片,使用已有的技术模型来区分工艺技术带来的影响

      • 在所有的芯片上使用相同的OS和编译器前端,并且构造不太依赖于OS的工作负载

      • 论文的数据:www.cs.wisc.edu/vertical/isa-power-struggles
        Power Struggles Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 Architectures

    • 论文的主要关注点:whether and, if so, how the ISA impacts performance and power

    • 论文实验的主要发现:

      • 尽管平均周期数差距小于2.5x,但是不同实现之间的性能差距仍旧较大
      • 指令数和指令之间的占比情况是ISA不相关的(Instruction count and mix are ISA-independent to first order.)
      • 性能差异来自于独立于ISA的微体系结构差异产生
      • 能耗与ISA无关
      • ISA差异对实现有影响,但是现代微体系结构技术使它们无济于事。一个ISA从根本上说并不是更有效的(one ISA is not fundamentally more efficient)
      • ARM和x86实现只是针对不同性能级别进行了优化的设计点(design points )
    • 微体系结构的影响在性能,功耗和能耗的影响中占据了主导地位。

    • 尽管ISA是RISC还是CISC似乎无关紧要,但ISA仍在发展。表达更多的语义信息可以提高性能(x86 SSE,更大的地址空间),更好的安全性(ARM Trustzone),更好的虚拟化等。

  3. RISC和CISC趋势总结
    Power Struggles Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 Architectures

  4. 实现的平台和应用

    • 硬件平台:ARM和x86的各两种芯片实现(选择标准:尽可能让非处理器特征相似)
      Power Struggles Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 Architectures

    • 操作系统:Linux 2.6 LTS内核,带有一些特定于主板的小补丁(为了在使用性能计数器子系统时能够获得准确的结果)

    • 编译器:经过验证的gcc 4.4,优化选项O3,禁用了特定于机器的调整。对于x86,由于ARM的64位平台不可用,因此选择32位。对于ARM,禁用Thumb指令。允许编译器进行自动矢量化,但是生成的SIMD很少(SSE,Neon)

    • 应用程序:均为单线程,只关注单核的情况

      • BBench是最近提出的智能手机基准测试套件,它是“一种网页渲染基准测试,包括当今Internet上11个最受欢迎的网站” 。(使用跨平台的WebKit以减少在不同平台上浏览器的差异)

      • SPECCPU2006是一个广为人知的标准台式机基准测试,可深入了解核心行为。(由于Cortex-A8的内存限制,只选择了部分合适的程序)

      • CLucene(clucene.sourceforge.net),这是一种高效的跨平台索引实现,类似于CloudSuite的Nutch
        Power Struggles Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 Architectures

    • 实验的方法总结
      Power Struggles Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 ArchitecturesPower Struggles Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 Architectures

  5. 数据分析的方法

    • 性能分析流程
      • 记录每个基准测试的执行时间
      • 使用周期数来归一化频率的影响
      • 根据测量的动态指令数(包括宏操作和微操作)来分析周期数的差异和ISA的影响
      • 使用指令分布,代码二进制大小和平均动态指令长度来分析ISA的影响
      • 根据详细的微体系结构事件来分析非ISA影响的性能差异
      • 将性能差异归因于频率/ISA/ISA无关的微体系结构特征。 分析ISA是否强制微体系结构特性的定性原因。
    • 功耗和能耗的分析流程
      • 记录每个基准程序原始测量的功耗
      • 为了排除工艺技术的影响,将所有处理器缩放到45nm,并且将频率标准化到1GHz
      • 通过分析原始的能耗,来了解功耗和性能之间的相互作用
      • 从能耗方面,定性的说明ISA对微体系结构的影响
    • trade-off分析流程
      • 结合性能和能耗的测量结果,使用 Pareto曲线比较处理器的实现
      • 使用能量性能帕累托边界比较实测和综合处理器的实现
  6. 性能分析

    • 执行时间的比较(原始执行时间,括弧内为异常值):四个平台之间存在很大的性能差距,因为频率范围从600 MHz到3.4 GHz,并且微体系结构有很大的不同。
      Power Struggles Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 Architectures

    • 时钟周期数比较:

      • 乱序实现的A9和i7之间的每个测试程序的周期数差距小于2.5×

      • 按序实现的A8和Atom之间,周期数差距小于1.5x

      • 当按周期数归一化后,性能差异在按序和乱序之间彼此比较时差距小于2.5x
        Power Struggles Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 Architectures

    • 指令数比较:

      • 指令数在ISA之间类似;(暗示gcc从x86 ISA选择类似RISC的指令)

      • SPEC FP中所有ARM的异常值是由于x86仅支持超验(transcendental) FP操作

      • x86微操作与宏操作的比率通常小于1.3x(再次表明gcc选择了类似RISC的指令)

      • 指令和周期数意味着x86实现的CPI更低,微体系结构可以克服x86 ISA开销(如果有)
        Power Struggles Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 Architectures

    • 指令格式:

      • SPEC INT,SPEC FP和移动工作负载的ARM和x86平均二进制大小相似,表明代码密度相似

      • 执行的x86指令平均比ARM指令短多达25%:典型的简短x86指令。

      • x86 FP基准测试往往具有更复杂的指令,它们的指令编码更长
        Power Struggles Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 Architectures

    • 指令分布(mix):

      • 对于所有程序,整个ISA的load和store的占比相似,这表明ISA不会导致数据访问的显着差异。

      • ARM的大量指令是由于缺少诸如fsincon,fyl2xpl之类的FP指令

      • 结合指令数和指令分布,结论是ISA在x86和ARM实现中的影响无法区分
        Power Struggles Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 Architectures
        Power Struggles Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 Architectures

    • 微体系结构的影响:微架构对性能有重大影响。 ARM和x86体系结构具有相似的指令计数。 高度精确的分支预测器和大型缓存尤其有效地使x86体系结构能够维持高性能。
      Power Struggles Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 Architectures
      Power Struggles Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 Architectures

  7. 功耗和能耗分析

    • 随着频率和技术的扩展,ISA无关紧要

    • i7处理器被设计为具有高性能,但未对功耗进行优化

    • Atom的功耗与ARM A8和A9相当

    • 由于功率和性能都是主要的设计选择,因此能耗也主要受到设计选择的影响,ISA对能耗的影响微不足道

    • 性能优化的选择比ISA对功耗的影响更大
      Power Struggles Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 Architectures
      Power Struggles Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 Architectures