计算机基础

分不清ARM和X86架构,别跟我说你懂CPU!

随便逮住一个人问他知不知道CPU,我想他的答案一定会是肯定的,但是如果你再问他知道ARM和X86架构么?这两者的区别又是什么?绝大多数的人肯定是一脸懵逼。今天小编就带你深入了解CPU的这两大架构:ARM和X86。以后出去装X就靠它了!

重温下CPU是什么鬼


中央处理单元(CPU)主要由运算器、控制器、寄存器三部分组成,从字面意思看运算器就是起着运算的作用,控制器就是负责发出CPU每条指令所需要的信息,寄存器就是保存运算或者指令的一些临时文件,这样可以保证更高的速度。

CPU有着处理指令、执行操作、控制时间、处理数据四大作用,打个比喻来说,CPU就像我们的大脑,帮我们完成各种各样的生理活动。因此如果没有CPU,那么电脑就是一堆废物,无法工作。移动设备其实很复杂,这些CPU需要执行数以百万计的指示,才能使它向我们期待的方向运行,而CPU的速度和功率效率是至关重要的。速度影响用户体验,而效率影响电池寿命。最完美的移动设备是高性能和低功耗相结合。

关于ARM


ARM这个词,关注科技领域的小伙伴们一定很常见吧,很多人只知道苹果,华为,高通等芯片都是基于ARM,但ARM到底是什么?估计很多人不知道,今天简单的科普一下,如有遗漏或表述不准确的地方,欢迎大家指正补充。

ARM(Advanced RISC Machines) 公司成立于英国剑桥,是专门从事基于RISC 技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,授权许可由合作公司生产各具特色的芯片,全世界超过95%的智能手机和平板电脑都采用ARM架构

和x86有何区别


目前主流的CPU架构为X86(The X86 architecture)和ARM。X86架构的CPU主要用于PC以及服务器行业,ARM架构的CPU则主要用于移动端,两者之间有什么区别呢?首先得看一下CPU是如何工作的。

CPU是手机,电脑,服务器等设备的“大脑”,它根据指令执行工作,不同架构的CPU有不同的指令,众多指令的集合就叫做指令集。程序员们通过高级语言(c++,java等)编写功能实现的逻辑,编译器将高级语言编译成机器语言(也就是机器能够看得懂的指令),这样CPU就可以根据程序员的逻辑进行工作了。举个简单例子,普通人没办法和狗直接沟通,指令集相当于训犬师,把人的想法传达给狗,狗根据训犬师的指令执行相应的动作。

指令集越复杂,处理能力越强大,性能越高,功耗越大。PC服务器等应用场景,需要强大得到性能,而且并不在乎功耗,所以x86架构就应运而生,全面的指令集,复杂的电路设计,极高的效率,用强而有力来形容这个架构一点都不为过。反之,对于移动端,功耗是相当重要的一点,用x86架构就不太合适了,毕竟谁也不想用一个像板砖一样厚重续航仅仅三分钟的手机吧,那样的的话,移动就变成移不动了。ARM架构是精简指令集,指令数量有限,主要是一些常用的指令,对于一些复杂的功能,通常是用多个指令组合的方式实现,所以效率相对于x86架构要低很多,但功耗得到了很好的控制,成本也大幅度下降。同样举个例子,有一条任务:让狗将卧室的拖鞋叼出来,训犬师A是基于x86,他直接将这一条命令传达给狗,狗高效的完成了任务。训犬师B基于ARM,他给狗下达了5条指令,1,直行往前五十步停下来 2,将身边的东西叼在嘴里 3,转身 4,直行五十步停下来 5,把嘴里的东西放下来。从例子中可以看出,A的狗很聪明,大脑很发达,可以执行复杂的任务,效率高,消耗的能量也大,价格贵。B的狗头脑简单,只能执行一些简单的任务,效率低,消耗能量小,价格也便宜。

所谓存在即合理,两种架构都有自己应用的场景,并且在各自场景中发挥着不可替代的作用。

目前,开源架构RISC-V正趋向于流行,华为阿里等大厂都在提前布局,RISC-V可以说是现在巨人的肩膀上,指令集比ARM更简单,如果有人对这个有兴趣,后面专门再讲吧。