X86和ARM架构的处理器能效差异

姓名:韩政

学号:16010188021

转载自:https://www.zhihu.com/question/20148756,有删节

【嵌牛导读】:在大一下学期嵌入式微处理器原理这门课程中,我们学习了arm cortexM3的架构。其中老师说到了X86与ARM架构处理器能效有很大差异从而引发探索。

【嵌牛鼻子】:架构  指令集

【嵌牛提问】:X86和ARM架构的处理器能效差异为什么会这么大?

【嵌牛正文】

ARM处理器本身定位于嵌入式平台,应付轻量级、目的单一明确的程序,现在应用在移动设备上正是得心应手。x86定位于桌面和服务器,这些平台上很多应用是计算密集型的,比如多媒体编辑、科研计算、模拟等等。因此将x86和ARM在移动环境下做对比得出“差不多”是不好的。

由于定位的不同,ARM处理器基于精简指令集(RISC)架构。指令集数量少就可以简化硬件逻辑的设计,减少晶体管数量,也就意味着低功耗。而且由于移动平台应用通常简单,程序的控制流不复杂,执行效率没有必要很高,所以流水线、分支预测等硬件逻辑都比较简单。这些都降低了晶体管总量。同时因为移动设备有电池的能源限制,ARM的电源管理是作为重要部分特别设计了的。比如移动设备的处理器在待机时通常只以极低的主频在运行,甚至可以暂时关闭闲置的核心、协处理器来降低功耗。

x86就截然不同。x86是复杂指令集(CISC)架构,存在很多机器指令,只为了高效地完成一项专门任务(比如MMX, SSE中的指令)。这就使得硬件的逻辑很复杂,晶体管数量庞大。为了高效地进行运算,x86架构有较长的流水线以达到指令级并行(ILP)。长流水线带来的一个弊端,就是当遇到分支时,如果预载入分支指令不是未来真实的分支,那么要清空整个流水,代价较高。所以x86为此还必须有复杂的分支预测机构,确保流水线的效率。再加上多级cache,支持超线程、虚拟化等等,x86的复杂度其实相当高。

硬件层面,这两种处理器的设计初衷可说是背道而驰的,目前看来,x86架构在移动计算站稳脚跟很困难,而ARM之类的RISC架构也无法在较复杂的应用中表现很出色,例如高性能计算等领域。

至于发热量和功耗,一则因为x86处理器要包含很多指令集,这用去了不少晶体管,二则因为内部逻辑比较复杂,也用去了不少晶体管。所以它从架构上讲,做到低功耗其实很困难,intel号称可以讲功耗做到数百毫瓦,但那是在CPU闲置进入C5或者C6 state的时候的功耗,相当于某些低频ARM处理器正常工作的功耗。

总结来看:

1、精简指令集就意味着更小的芯片,更少的晶体管工作。CISC相比于RISC有更多实现单一功能的晶体管结构(言外之意它们被使用的频率并不高),而这部分晶体管在不工作的时候会提供不小的静态功耗。

2、ARM在无指令处理的时候可以休眠,而X86在无指令处理时只是降低工作频率而已

3、ARM一般都有协处理器共同工作,比如GPU

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 刚入手了SONY Xperia Z5 Premium,其CPU采用了争(fa)议(re)较大的骁龙(Snapdra...
    别着急我来了阅读 11,465评论 1 16
  • 一、前言 华硕,惠普和联想已经签署了高通公司一份“雄心勃勃”的计划,使Windows 10 PC在ARM Snap...
    coolwriter阅读 5,875评论 0 0
  • 清晨,当太阳爷在可可西里大草原上轰轰烈烈得铺射万道金光时,云雀已经展开清澈明亮的声嗓,在蓝莹莹的天际,吟唱...
    自由的王子阅读 2,895评论 0 0
  • 今天的夜晚,我和我的爸爸在一条热闹的街道上逛街,这条街道就是兴隆小街。它不管是在白天还是在黑夜,依旧很热闹。我和爸...
    常敬婕阅读 1,819评论 0 2
  • 是否厌倦了一成不变的生活 是否疲惫了尔虞我诈的交往 是否怀疑了人生存在的意义 是否失去了无忧无虑的安逸 是否觉得世...
    panda是黑白猫阅读 1,360评论 2 0

友情链接更多精彩内容