从架构上分析,为什么X86架构比ARM更难实现低功耗?

lu331707405


首先你要知道的是,X86架构和ARM架构的主要差距在于指令集方面,X86是复杂指令集结构,它存在很多机器指令,从设计角度来看就是为了高效完成一项专门任务而设计的,比如MMX和SSE中的指令。因此X86架构的任务处理能力先天强大,但是设计也更为复杂,仅仅是分支预测结构和长流水线的要求,就导致了X86架构CPU不管是在面积还是功耗支出上都要大于精简指令集的ARM架构,更别说多级缓存和超线程技术的加入了。

刚才说了,ARM架构天生属于精简指令集,使用的晶体管数量非常少,而手机等移动平台对计算性能的要求也较为简单,所以ARM架构的流水线、分支预测等硬件逻辑都比较简单。同时因为手机等移动设备对续航能力要求很高,所以大部分ARM芯片在电源管理上都下了很大功夫,比如现在流行的大核心+小核心的设计,当核心闲置时就会关掉核心来省电。

所以说从底层架构来说,ARM架构天生就能做的比X86架构省电很多,而X86架构本来就是面向桌面电脑和服务器的,所以对功耗和电源管理要求并不高,曾经英特尔也尝试制造X86架构的ATOM芯片,结果不管是性能还是功耗两边都不讨好;而高通也尝试做PC端的ARM芯片,但是实际性能和兼容性表现也不尽人意。


嘟嘟聊数码


x86是CISC架构,单个指令集成了复杂的微指令,指令集内容更加丰富,可以实现很多功能,并且强调了将多个短指令集成到一个长指令中的应用方式。这种指令集架构意味着硬件需要使用更多的结构来处理这种指令转换,以及对每一个微指令设计其实现。

ARM是RISC指令集,由ARM开发,指令集采用标准长度指令,每次执行一个操作,不进行操作合并。因此每个短指令都会有标准化后的元件来实现,元件设计相对简单,功耗减小。当然无法实现x86等同的计算性能和灵活性,但是对于移动设备来说,ARM指令集的性能已经可以满足,并且功耗满足用户需求。


榻榻米的榻榻


指令集最终由逻辑电路实现,指令集越复杂电路越复杂,晶体管越多,功耗越大。

比如两种指令集,一种只有一条ADD加法指令。一种有两条指令ADD 和乘法指令MUL。虽然这两种指令集都能运算2X2=4这个结果,前一种指令集要借助编译器把乘法分解成加法,后一种直接由硬件乘法器完成运算。很显然,后一种功耗要高于前一种,因为多了乘法器电路,但运算速度更快了。

ARM是精简指令集CPU结构比X86简单得多,功耗自然就要低得多,性能当然也要差很多。


分享到:


相關文章: