安卓支持3类处理器(CPU):ARM, Intel和MIPS。其中ARM无疑被使用得最为广泛。Intel因为普及于台式机和服务器而被人们所熟知,然而对移动行业影响力相对较小。MIPS在32位和64位嵌入式领域中历史悠久,获得了不少的成功,可目前Android的采用率在三者中最低。
总之,ARM现在是赢家而Intel是ARM的最强对手。那么ARM处理器和Intel处理器到底有何区别?为什么ARM如此受欢迎?你的智能手机或平板电脑用的是什么处理器到底重要不重要?
处理器(CPU)
中央处理器(CPU)是你智能设备的大脑。它的任务是通过执行一系列指令来驱动你的设备,包括显示屏,触摸屏,调制解调器等,让一坨塑料金属混合物变成闪亮的智能手机或者平板电脑。移动设备非常复杂,其中的处理器需要执行数百万行指令才能完成人们希望这些设备去做的事。速度和功耗对处理器来说至关重要。速度影响用户体验,功耗影响电池寿命。完美的移动设备必须有好性能以及低功耗。
这就是为什么选择什么样的处理器很重要。一个超级耗电,反应迟钝的处理器会很快吸干你的电池,而一个考究的,高效的处理器给你带来高性能和长久的电池寿命。总体而言,ARM和Intel处理器的第一个区别是,前者使用精简指令集(RISC),而后者使用复杂指令集(CISC)。通俗而言,精简指令集规模较小,更接近原子操作,而复杂指令集规模较大,更加复杂。所谓原子操作,是指每条指令的工作大都可以由处理器在一个操作内完成,例如对两个寄存器做加法。复杂指令集的指令描述某个意图,但是处理器必须执行3或4个更简单的指令来实现这个意图。例如,可以命令一个复杂指令集处理器对2个数求和,并把结果存入主内存中。为了完成这个命令,处理器首先从地址1中取得第一个数(操作1),然后从地址2中取得另一个数(操作2),然后求和(操作3),等等。
所有的现代处理器都使用一种所谓微指令的概念,这是一个处理器内部的指令集合,用来描述处理器可以做的原子操作。复杂指令集处理器实际上执行了3条微指令。对精简指令集处理器而言,其指令跟其微指令十分接近。而复杂指令集处理器的指令需要先被转换成一些更精简的微指令(就像前面的复杂指令集处理器做加法的例子中那样)。也就是说精简指令集处理器中的解码器(负责告诉处理器到底要干些什么的东东)要简单得多,而简洁意味着高效和低功耗。
制造工艺
ARM和Intel处理器的另外一个主要区别是ARM从来只是设计低功耗处理器。其宗旨是设计低功耗处理器,这是他们的强项。而Intel的强项是设计超高性能的台式机和服务器处理器,并且的确做的不错。Intel是台式机的服务器行业的老大。过去的20年里我所有的PC,笔记本和服务器(除了一个外)用的都是Intel的处理器。然而进入移动行业时,Intel依然使用和台式机同样的复杂指令集架构,试图将其硬塞入给移动设备使用的体积较小的处理器中。
Intel i7处理器平均发热率为45瓦。基于ARM的片上系统(其中包括图形处理器)的发热率最大瞬间峰值大约是3瓦,约为Intel i7处理器的1/15。Intel现如今是个巨头,雇佣了大量的聪明人。其最新的Atom系列处理器采用了跟ARM处理器类似的温度控制设计,为此Intel必须使用最新的22纳米制造工艺。一般而言,制造工艺的纳米数越小,能量的使用效率越高。ARM处理器使用更低的制造工艺,拥有类似的温控效果。比如,高通晓龙805处理器使用28纳米制造工艺。
64位
对于64位计算,ARM和Intel也有一些显著区别。你知不知道,Intel并没有开发64位版本的x86指令集。这个64位的指令集,名为x86-64(有时简称为x64),实际上是AMD设计开发的。故事是这样的:Intel想搞64位计算,它知道如果从自己的32位x86架构进化出的64位架构的话,新架构效率会很低。于是它搞了一个新64位处理器项目名为IA64。由此制造出了Itanium系列处理器。同时AMD知道自己造不出能与IA64兼容的处理器,于是它把x86扩展一下,加入了64位寻址和64位寄存器。最终出来的架构,人称AMD64,成为了64位版本的x86处理器的标准。
IA64项目并不算得上成功,现如今基本被放弃了。Intel最终采用了AMD64。Intel当前给出的移动方案,是采用了AMD开发的64位指令集(有些许差别)的64位处理器。
ARM的故事很不一样:看到移动设备对64位计算的需求后,ARM于2011年发布了ARMv8 64位架构,这是为了下一代ARM指令集架构工作若干年后的结晶。为了基于原有的原则和指令集,开发一个简明的64位架构,ARMv8使用了两种执行模式,AArch32和AArch64。
顾名思义,一个运行32位代码,一个运行64位代码。ARM设计的巧妙之处,是处理器在运行中可以无缝地在两种模式间切换。这意味着64位指令的解码器是全新设计的,不用兼顾32位指令,而处理器依然可以向后兼容。
异构计算
本文来源:不详 作者:佚名