分享

手机cpu和电脑cpu为什么能力相差这么大?

 山峰云绕 2017-12-29

https://www.toutiao.com/a6504844548378722574/既然谈到了RISC和CISC的指令集,那么小编先做一个科普再回答这个问题吧!

RISC(精简指令集计算机,也就是ARM的指令集)和CISC(复杂指令集计算机,也就是X86的指令集)是当前CPU的两种架构。它们的区别在于不同的CPU设计理念和方法。

早期的CPU全部是CISC架构,它的设计目的是要用最少的机器语言指令来完成所需的计算任务。比如对于乘法运算,在CISC架构的CPU上,您可能需要这样一条指令:MUL ADDRA, ADDRB就可以将ADDRA和ADDRB中的数相乘并将结果储存在ADDRA中。将ADDRA, ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作全部依赖于CPU中设计的逻辑来实现。这种架构会增加CPU结构的复杂性和对CPU工艺的要求,但对于编译器的开发十分有利。比如上面的例子,C程序中的a*=b就可以直接编译为一条乘法指令。今天只有Intel、AMD及其兼容CPU还在使用CISC架构。

RISC架构要求软件来指定各个操作步骤。上面的例子如果要在RISC架构上实现,将ADDRA, ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作都必须由软件来实现,比如:MOV A, ADDRA; MOV B, ADDRB; MUL A, B; STR ADDRA, A。这种架构可以降低CPU的复杂性以及允许在同样的工艺水平下生产出功能更强大的CPU,但对于编译器的设计有更高的要求。

所以综上所述简而言之,CISC架构下的一句代码在RISC架构下体积至少翻了三倍以上。


既然如此,那么为什么又说RISC比CISC效率高呢?

早期的CPU是靠提升复杂性从而提升CPU的性能,主要原因是早期的电脑系统不像现在可以接管80%的电脑核心操作,当时的系统只能说是像计算器一样的重复调动“接口”而已,这就导致如果想要实现更高级的功能,就必须内部包含更多的指令集(接口),供简易操作系统进行调动,但是随着科学的发展CPU的复杂性能已经登峰造极,或者说复杂过度,80%的指令集只存在于20%的场景使用中,而最常使用的不过是存、取、加和这样的简单指令,那么复杂化使得CPU造价、工艺要求极高但是并用不到那么多,这个时候RISC的优势就显现出来了,RISC使用的是那20%常用的指令集,剩下80%的功能依靠指令集叠加产生(也可以看作自己编写了复杂功能),这也是为什么基于ARM的安卓系统一定需要底包(linux内核)的存在,相当于是对指令集的扩充,以此实现安卓的复杂功能。

指令集精简了,没有用的多余东西少了,CPU的协调能力就更好了,自然效率也就更高了,所以在传统意义上来说,RISC的实际效率要高于CISC很多。

手机cpu和电脑cpu为什么能力相差这么大?

在了解了这些之后,就有一个很大的问题了,为什么手机CPU和电脑CPU实际性能却相差很大呢?明明RISC的实际效率高于CISC很多,现在的电脑为什么不改用RISC呢?

这个问题就更简单了,以目前的发展来看,使用RISC的ARM处理器主打低功耗,为了低功耗(移动性能更强)牺牲了性能,一般只有2-5W的功率,但采用CISC的x86却有60W以上的功率,功率高自然性能表现会更好,但是根据商标,你还是可以轻松发现RISC的ARM性能超过X86多少,即使是低功耗情况下,这也是为什么Intel Atom处理器在移动市场遇冷的原因。

如果ARM主打高性能,功耗修改为60W以上很可能超越现在的处理器,但是,并不会有市场前景。为什么?究其原因,还是因为指令集太过简单,这就使得4G的系统文件可能至少需要12G才可以完整描述,而Windows的复杂性使得RISC根本做不到像现在的这么复杂的系统,如果系统文件有几百个G,你能接受吗?

这也是为什么早期的苹果电脑使用的是RISC然而后来换用了CISC的原因。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多