MCPLive > 杂志文章 > 探梦方寸间 移动终端CPU、GPU浅析

探梦方寸间 移动终端CPU、GPU浅析

2011-05-16俊一《微型计算机》2011年4月下

ARM是谁?

我们对传统PC市场的CPU如数家珍,英特尔、AMD和威盛包揽了整个市场。由英特尔创始人之一摩尔提出的摩尔定律推动了这个市场技术的进步,英特尔的Tick-Tock线路图即是基于此而创建:工艺-核心的交替升级步伐。然而,不论是早的奔腾,还是现在新的酷睿i7,这些处理器都基于一个称之为x86的架构中——由早的英特尔8086指令集扩充组成,因英特尔早期CPU的型号为80x86而得名。在计算机学术界的分类中,x86架构被列在CISC(复杂指令集)类之下。

指令是CPU能听懂的语言,正如人类的语言一样,词汇越丰富,表达就越容易,一定程度上,传达内容的方式就越高效。这也是为什么在20世纪80年代,x86架构盛行的原因之一。不过,语言上也有常用字和生僻字之分,80%的常用字在整个语言文字中所占比例其实很小,CPU指令也如此。研究发现,80%的常用指令来自CISC的20%,于是,另一类称之为RISC(精简指令集)的门类诞生了,ARM架构即基于此类——和x86一样,ARM架构也因ARM公司是其创造和维护者而得名。

CISC指令复杂强大,但执行过程也更复杂耗时,功耗更多。

CISC强大高效,RISC简洁容易,这本是两个不同的指令集类别,与应用无关。各种谈论x86难以落脚移动终端的大原因是功耗,为什么凭借英特尔的技术,功耗上x86始终无法与ARM架构抗衡呢?这有英特尔的原因,也有指令集的影响。

英特尔成功的要素之一是向前兼容性——至少到目前为止,英特尔设计的所有x86 CPU都兼容以前任何一老款CPU的指令和应用。这是程序开发人员的福音,不过却造成了CPU结构的复杂化,而CISC指令的硬件实现也需要更多的晶体管,这些晶体管不仅仅是对制造工艺的考量,也是对能耗控制的考量。要知道工作中是要消耗电力的,即便是那些80%不会被常用到的指令硬件也必须加电等待偶尔的调用;而基于RISC的ARM架构则要轻松得多,它的指令集相对很少,所需要的晶体管也更少,而且由于使用等长的指令(16位和32位),与x86的可变长指令(长指令可达128位)相比,处理也更加容易,功耗自然更低。这是一个功耗和性能的博弈,在功耗要求严格的移动终端处理器市场,RISC的ARM终胜出。

ARM与x86处理器的差异

指令集是ARM与x86架构的本质区别,正如你无法用英语与一个只会说汉语的人沟通一样。因此,不同的架构需要与之匹配的操作系统。目前的Windows 7无法运行在ARM上,而iOS、Android等移动终端操作系统也无法直接在x86硬件上运行。指令集的不同造成了处理器在硬件实现上的不同,比如,ARM处理器大量使用寄存器(多达37个)和CPU内缓存(cache)对指令进行操作,通过流水线和超标量技术,一个时钟周期可以执行一条以上的指令,十分高效;而x86处理器仅有8个通用寄存器,通过读写外部存储器来调用指令(为了向前兼容),可能需要几个时钟周期才能完成一条指令,效率较低。有数据称,在同样的制造工艺前提下,英特尔CPU频率每提升1%,功耗要提高2至3%,而ARM则可以保持不变,甚至更低。

ARM与x86处理器的另外一个区别为,ARM处理器并不像x86那样单颗使用。它总是与其他芯片封装在一起,诸如DSP芯片、显示芯片、通讯芯片等等。英特尔和AMD终于于2011年推出CPU与GPU完整融合的处理器,其实在很早之前,ARM处理器已经这样干了。ARM处理器通过一条称之为AMBA的片上总线可随意挂载各种标准芯片,包括其他的ARM核心。成品ARM CPU通常都是集成了芯片组和各种功能芯片的一体式芯片,称为片上系统(SoC),功能和一块集成了CPU和显卡的x86架构主板相当,外围只需要连上电源、存储、通讯和显示设备即可工作,这样的芯片尺寸只有十几个平方毫米,不到一块x86处理器大小!

Ti OMAP4430与英特尔x86 P67 blockdiagram对比,ARM芯片绝大部分采用All in one的片上系统(SOC)。

本文导航

分享到:

用户评论

共有评论(2)

  • 2011.12.18 17:36
    2楼

    很好。我又做了不少笔记。

    (0) (0) 回复
  • 2011.05.23 00:14
    1楼

    很好的文章,阐述了ARM的发展史,有可能的话,出一本书更好。

    (0) (0) 回复

用户名:

密码: