博客首页 | 排行榜 |

linchuan的博客

个人档案
博文分类
好久没来了,转个极品超长文:ARM 与 x86  2011-09-02 11:17

 想看图的可以到陈怀临的弯曲评论

http://www.tektalk.org/wp-content/uploads/2010/12/armx86.pdf

 

 

ARM与x86之1--Wintel帝国


The world is changed. I feel it in the water. I feel it in the earth. I smell it in the air.

从1978年开始的PC帝国,以Intel最终战胜AMD为标志,正式步入后PC时代。这个帝国的成员们各司其职,在可预料的未来中这个帝国并无大事。Intel会一代又一代代推出新的PC处理器,Tick-Tock计划将如期而至。每一年都是平淡的一年。

在半导体领域,Intel继续一览众小。Intel依然无奈。半导体领域霸主的无奈在于只要PC依然重要,罗伯特·诺伊斯所创建的这个公司就不会有太大的忧虑;半导体领域霸主的无奈在于对手并不在半导体领域,或者说对手是剩余的所有。

ARM处理器的崭露头角正在开创一个属于更多参与者的帝国。在不远的将来这个新的帝国与PC帝国间必有一战[ii]。我们无法预知x86或是ARM获胜,却可以感受这个世界正在发生的变化。世间最可怕的事,莫过于等待。有些人愿意去预测,去揣度,去逃避无休止的等待,结果即便是上帝不经意间的偶然,也依然执着,愿意为逼近明天而重温历史。也许已经发生的和正在发生的事情,揭示了未来。
Wintel帝国

Wintel[2]是Windows和Intel的合成词。Wintel指使用x86处理器[iii]并运行着Windows的处理器系统。在Wintel这个词汇中,Intel占有更多的字符,也是Wintel的主体。

Wintel诞生是一个自然的过程。几十年前,一个富有朝气的公司选择了另外一个富有朝气的公司。在他们所涉及的应用领域中,打遍天下无敌手,创建了令所有对手望而生畏的时代,一个只属于这两个公司的时代,Wintel帝国时代。帝国有着铁血般纪律,组成部件各司其职,互不渗透,有功必赏,有过必罚。帝国没有衰退的前兆,也没有太多不和谐的声音。

在PC帝国中,Intel是处理器的最重要的供货商,AMD占据着为数不多的市场份额,更少的一部分份额留给了台湾的VIA[iv]。PC处理器大多使用Windows操作系统,也有些PC安装着其他操作系统,如Linux和BSD。在中国,预装Linux系统的这些PC机,在购买后,基本上会被重新安装。在国外,使用Linux系统的也不过是一些爱好者。Linux给Wintel帝国的运行制造了一些困难,却没有触及帝国的根本。

帝国的日常经营由一些OEM(Original Equipment Manufacture)厂商、ODM(Original Design Manufacture)厂商和BIOS厂商协助打理。因为Linux的存在,还出现了一些OSV(OS Vendor),如Redhat、Ubuntu(Canonical)和SuSE。这些OSV将来自开源社区的代码与Linux内核集成为Linux发布包,提供给OEM使用。

帝国的OEM也都是一些知名公司,如Dell,HP,Acer,Lenovo和Asus等。ODM多集中在台湾。BIOS厂商数量并不多,却也能及时地为这些OEM/ODM服务。整个PC帝国协调有序发展。

帝国内也有些出人意料之外的事件。第一个尝试AMD处理器,昔日的OEM霸主Compaq悄然离去。Dell从一个网络直销商,一夜间横空出世。IBM将PC业务转移给了Lenovo。Acer日益壮大。新人来,旧人去,PC帝国依然是铁打的营盘。

Intel的领导人进行了多次更替,先是罗伯特·诺伊斯,后是戈登·摩尔,安迪·格罗夫,克雷格·贝瑞特,到现在的保罗·欧德宁。诺伊斯和摩尔无论是技术还是商业都有领袖才能。诺伊斯是集成电路的发明者。摩尔创造的定律至今尚不过时,这个定律更是一个商业定律,引导着Intel一代又一代的工程师为捍卫理想,奋勇向前。

格罗夫是Intel的第一个员工,特殊的经历决定了他独特的性格。有人说如果他母亲碍着了他,他也会把她解雇。Intel的前两代领导人恐怕不会这么做。也有人说诺伊斯过于慈善,这使得格罗夫的闪亮登场成为必然。帝国需要有人苛刻一些,严厉一些。

严明的纪律使Intel度过了1986年的寒冬。Intel从存储器领域过渡到处理器领域,甩脱了在其后紧随,随时可将之超越的日本人[3]。这个决策拯救了Intel。多年之后,更加拼命,更加执着的韩国人在存储器领域战胜了日本人。格罗夫留给Intel的“唯偏执狂才能生存”是许多员工的座右铭,当然真正的偏执狂并不认同这句话。前三界领导人的性格互补,使得Intel渡过难关,日益壮大。

1984年,Intel遇到了创建以来的第一次危机,存储器危机。在上世纪七十年代,Intel是存储器芯片的主要提供商。在那个年代Intel在存储器领域的市场占有率几乎是100%,远超过Intel今天在PC领域的市场占有率。

从上世纪80年代起,Intel的存储器危机初露端倪。日本人迅速掌握了存储器设计与生产这个门槛并不是很高的技术核心,借助其特有的高效与后发优势,在短短的两三年时间,大肆吞噬着Intel在存储器领域的市场份额。Intel几乎从一个存储器领域的统治者沦落为二流存储器芯片供应商。

1984年,Intel的存储器芯片在库房里堆积如山。1986年,Intel迎来了自公司创建以来的第一次亏损。格罗夫与摩尔对此早已先知先觉。

1985年,格罗夫在一次公司会议中问摩尔,“如果我们无法渡过这次危机,被迫下台,下一届领导人将怎么做?”。

“他们将抛弃存储器业务。”摩尔回答着。

“我们为什么不自己动手?”[3]。

也许格罗夫在科技的前瞻性上无法与摩尔相比,但是他如岩石的执着,如烈火的果敢,化解了Intel面临的第一场危机,PC开始进入寻常百姓家。从Intel今天在PC领域的领袖地位上看,格罗夫这个决策似乎顺理成章。而只有将历史回溯到1985年时,我们才能更加容易地体会到格罗夫的艰难与不得已。

在那个年代,中小型机大行其道。DEC公司的VAX机是所有处理器厂商难以逾越的高峰,Motorola半导体的68K处理器如日中天。很少有人相信Intel能在处理器领域有所作为。在那个年代,Intel推出的每款处理器都是学术界奚落的对象。1986年Intel推出的386处理器遭到了整个学术界的诟病。这些学者的这些技术观点多数是对的。从技术的角度上看,386处理器并不成熟,也给Intel留下了向前兼容[v],这个堪称伟大的包袱。

技术并不是早期x86处理器的长处。在上世纪80年代至90年代,几乎全部处理器都被技术上绝对领先,绝对强势的Alpha系列处理器[vi]压得喘不过气来。竞争对手每推出一个处理器芯片,DEC都会推出另外一个强大到令人放弃追赶的新一代Alpha。

Intel真正的优势是格罗夫虽百折而不挠,我行我素,笼罩当世的大气魄。

1987年,格罗夫成为Intel的第三任CEO,与另外一个耀眼的企业领袖比尔·盖茨联手创建了Wintel这个事实上的铁血联盟。无论是Intel还是Microsoft都不承认Wintel联盟的存在,却无法否认这个词汇在整个处理器行业制造的恐慌与肃杀[vii]。在那个时代,对于在帝国之外妄图涉足PC领域的厂商,Wintel这个词汇本身就是一个魔咒,使之望而却步。

1978年,23岁的比尔·盖茨与42岁的格罗夫第一次见面,当时的Microsoft仅有11名员工,Intel已经推出8086处理器,员工已过万人。公司间的不对等很难给比尔·盖茨带来荣誉,两个人在个性中的共同点使得争吵时有发生。在某个晚宴上,两个人的争吵引起了所有人的关注,包括在厨房工作的服务人员。格罗夫能够有条不紊地尽享美餐,而盖茨却吃饱了一肚子气[3]。

在许多情况下,公司间的合作与领导人的恩怨无关。格罗夫与盖茨间的不和谐并不影响Intel和Microsoft在各自的领域成为巨人,也不影响Wintel这个事实联盟的不断前行。从工作划分上看,Intel领导着OEM/ODM提供底层硬件平台,Microsoft提供操作系统和上层软件,彼此互不干扰,也没有太多的直接冲突。Wintel帝国的各个成员也相安无事。这是一段属于PC帝国的美好年代。Wintel联盟双方相互间存在的依赖,相互成就了对方的事实,维持着Wintel帝国的稳定。

如同所有联盟,合作和冲突永远并存。只有面对强敌时,两个弱者间的联盟才最为可靠,弱者一定程度的上的妥协是维护联盟的必要条件。随着Wintel帝国的前行,Microsoft不再弱小,市值逐渐超过了Intel,也更加富有。掌控着底层硬件平台的Intel对OEM/ODM却有着最大的话语权。

这一切使得Wintel帝国内部的冲突愈发频繁。Microsoft率先发难。Windows NT[viii]开始支持x86处理器的竞争对手,RISC处理器,包括MIPS R3000/R4000, Alpha和PowerPC。Microsoft多次断言RISC处理器替代Intel的x86是大势所趋[4]。

面对这场危机,Intel开始动摇,着手研发抗衡RISC处理器的产品,安腾(Itanium)和Pentium Pro处理器[ix]。采用向前兼容的Pentium Pro处理器在CISC vs. RISC的战争中大获全胜,放弃了向前兼容的安腾最终被遗忘。Pentium Pro的胜利和安腾的失败化解了Wintel帝国面临的最大的一场危机。对“向前兼容”的依赖,使帝国的这两个重要成员重归蜜月期。1996年,比尔·盖茨在公开场合承认,“最近的两年内,英特尔与微软在合作方面所花的时间比前十年加在一起还要多”。

新贵对盟主地位的追求永不休止。1997年11月20日,Joachim Kempin[x]在给盖茨的Email中明确地提出微软应该收购AMD或者Cyrix[xi] (Nsemi)以对抗来自Intel的威胁[5]。格罗夫在卸任时也承认自己犯下的最大错误就是使Intel过分地依赖Microsoft[3]。近些年发生的事件[xii]更加表明Wintel联盟虽然没有分崩离析,却已貌合神离。在IT这个激烈竞争的行业里,只有后浪推前浪,没有永远的合作,更没有永远的联盟。

格鲁夫之后,材料学出身的克雷格·贝瑞特于1997年5月成为Intel的第四任CEO[6]。在并不长的8年任期中,他带给Intel的影响超越了多数评论家的想象。并不夸张地说,如果在未来的某一天Intel走向衰退,贝瑞特将是始作俑者。

贝瑞特给Intel留下了“Copy Exactly”的成产哲学。如果Intel将来要走一条富士康或者台积电的道路,“Copy Exactly”是必须的,而且需要更加强烈的,更加令人窒息的纪律。这个哲学一经推出就饱受质疑。连Intel的员工也在质疑着贝瑞特,既然您坚持“Copy Exactly”,为什么还要我们“Innovate”?

在“Copy Exactly”的大背景下,Intel有史以来最失败的处理器Pentium IV诞生了。过分迷信工艺的力量,使得Pentium IV一再挑战着CPU主频的极限。这并没有改变Pentium IV高频低能的结局。AMD的x86 64与多核处理器几乎摧毁了Intel。2006年,Intel业绩步入谷底,这也改变了贝瑞特向互联网进军的蓝图。

贝瑞特接任后,开始了预谋已久的“互联网”计划。1997年DEC将StrongARM内核正式出售给Intel[7]。StrongARM内核基于ARM V4 ISA(Instruction Set Architecture),由DEC和ARM联合开发。Intel使用这个内核替代了自己的i860和i960处理器,在此基础上创建了基于ARM V5 ISA的XScale架构。

XScale架构得Intel正式进入了嵌入式领域。随后Intel大手笔推出基于XScale架构的一系列处理器,用于手持领域的处理器PXA210, PXA25X, PXA26X, PXA27X和PXA3XX,用于网络存储的I/O处理器IOP31X, IOP32X, IOP33X和IOP34X。

在XScale构架的所有处理器中,IXP网络处理器令思科,爱立信和华为这些通信厂商至今还在心痛[xiii]。IXP网络处理器的技术源自DEC,Intel保留了DEC网络处理器的整个研发团队,以XScale架构为核心,设计了第一颗芯片IXP1200[8]。IXP1200芯片中含有一个类“StrongARM SA1100”的处理器和6个微引擎ME(Micro Engine)。

这颗芯片的亮点是6个微引擎,许多研究资料[9][10][11]表明IXP1200确有较强的网络报文处理能力。一时间网络处理器也成为通信半导体厂商的宠儿,Motorola半导体(Freescale)和IBM也分别收购了几个刚刚Start-up的公司,主推网络处理器[xiv]。

XScale构架没有获得预想中的成功。2006年6月27日,Intel将PXA系列手持处理器作价$600M出售给了Marvell[12]。2007年11月12日,Intel将IXP1200,IXP2400,IXP2800这些网络处理器转交给了Netronome这个刚刚Start-up的公司,并向已有的客户承诺将继续生产这些网络处理器,并持续到2012年[13]。I/O处理器无疾而终。

XScale构架并不是贝瑞特“互联网”计划中最重要的一环。2007年10月19日,ITU接纳WiMAX作为3G标准[14][15]。3G领域增加了一个新成员,这个新成员至今还活跃在通信领域。只是这个新成员在推广过程中的举步维艰,使得更多的人相信“在美国的某个城市需要贴钱才能卖出去的房产,并不是最糟糕的资产,一个产品最大的悲哀并不是消亡,而是僵而不死”。

遍览整个IT史册,只有摩托罗拉的铱星计划能与贝瑞特的“互联网”计划媲美。铱星计划的失败已经成为MBA的经典案例。Intel的WiMAX仍在持续,只是更多的客户开始质疑Intel的耐心,质疑Intel在Wintel帝国之外的坚忍与能力。

贝瑞特卸任前留给Intel有价值的是“Tick-Tock”计划。“Tick-Tock”是一个象声词,如果将正弦时钟波形在音箱中播放时,可以听到连续不断的“Tick-Tock”。Intel从2006年1月5日使用已经成型的65nm技术推出“Core Microarchitecture”,这也标志着Tick-Tock计划的开始[16]。

在Tick-Tock中,Tick指工艺的提高,从65nm,45nm,32nm,22nm,16nm和11nm。数学功底稍微好些的人不难发现,相邻的两个数字之间的倍数大约是1.414[xv]。Intel继续延续着摩尔提出的“集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,性能也将提升一倍”的定律。Tock指CPU内核的进步,工艺的提高使得之前只能出现在经典论文中出现的技术得以实现。Tick-Tock计划规划了Intel x86处理器直到2016年的Roadmap。


1 IntelTick-Tock计划[17]

 体系结构的变化工艺发布时间
TockCoreMicroarchitecture65nm2006-07-27
TickPenryn45nm2007-11-11
TockNehalemMicroarchitecture2008-11-17
TickWestmere32nm2010-01-04
TockSandy Bridge Microarchitectureexpected 2010
TickIvy Bridge22nmexpected 2011
TockHaswellMicroarchitecturelikely 2012
TickRockwell16nmexpected 2013
TockNewMicroarchitecturelikely 2014
TickShrink/Derivative11nmlikely 2015
TockNewMicroarchitecturelikely 2016






Intel的Tick-Tock计划已经执行到Westmere处理器,Sandy Bridge处理器将很快如期而至。Intel将以庞大的人力,充实的物力继续着这个计划。所有这一些都是贝瑞特留给Intel的第五任CEO保罗·欧德宁的。欧德宁必须有所作为。

PC领域再无对手的Intel,目光重新锁定在嵌入式领域,Atom处理器应运而生。这颗芯片上承载着Intel的希望,所有人都在关注Atom能否解开Intel在嵌入式领域的无奈,嵌入式领域的另一个处理器巨头ARM也在枕戈待旦。

Wintel帝国的另一个主角Microsoft已完成政权更替。比尔·盖茨于2008年6月28日正式离任[18]。虽然比尔·盖茨强调将一如既往地关心着Microsoft的一切,并尽可能地提供帮助,Microsoft的股东们也应该双手合十,祈祷盖兹永远不要归来。因为那时的微软,处境绝对不会比苹果请回乔布斯时更好。

死灰复燃的苹果,咄咄逼人的谷歌,是微软挥之不去的梦魇。而最为Intel和Microsoft担忧的是Wintel联盟的生死。Intel已经提前做好准备,率先研制基于Linux的Moblin操作系统[19],在2010年与Nokia,将Moblin和Maemo合并为Meego[20]。

对于Microsoft,Windows和ARM何时走到一起的讨论从Windows 7诞生以来,从来都没有停息过。Microsoft明确表示Windows 7不会支持ARM-based的上网本(Smart Book)[21]之后,却带来了更多有关Windows和ARM的传言。更多的人想知道Windows 8或者9是否支持ARM[22]处理器。对于ARM,这些期待已经不再重要。WebOS,Andriod的异军突起,使得Microsoft更加尴尬。此时的ARM还需要Windows吗?


Tick-Tock计划是Intel在2007年开始的一项计划,Tick指工艺的进步,而Tock指处理器内核的革新[1]。

[ii] ARM与x86处理器之间的战争早已打响。许多预测家声称,这场战争最终会彻底消灭其他处理器内核,如PowerPC和MIPS,只留下x86和ARM处理器。

[iii] x86处理器的芯片提供商除了Intel,还有AMD和VIA。

[iv] 1998年,VIA收购了Cyrix的大部分资产,进入x86处理器领域。

[v] 英文是backward compatible。我个人认为翻译成向前兼容好些,因为是后续的产品需要兼容之前的产品,应该着眼于现在,而不是过去,是“以前”而不是“前进”。

[vi] Alpha处理器也是我第一次接触的第一个高端处理器,那是一个充满激情的岁月。

[vii] 今天的Microsoft正在被Google欺负。在盖茨年轻的时候,Microsoft是不可战胜的。有一个工程师向盖茨提了这样一个问题,“我不愿意加入微软,但是我所加入的其他公司,不是被您收购,就是被您挤垮。我需要买一个带花园的小房子,需要一份工作。请问在软件领域,有哪些方面是您不愿意涉足的?”。

[viii] Windows NT在1993年7月正式发布。Windows NT由Dave Culter率领的团队开发完成,Dave Culter也是VMS系统的设计者。

[ix] Pentium Pro是Intel一颗具有里程碑意义的处理器。这颗处理器将复杂的CISC指令分解成为μops指令(一种RISC指令),之后采用了RISC指令流水线,加大提高了x86处理器的性能。在某种意义上说,这颗处理器拯救了Intel。

[x] Joachim Kempin当时是Microsoft的高级副总裁。

[xi] AMD和Cyrix是Intel当时的主要竞争对手。从今天AMD和Cyrix的状况上看,盖茨没有采纳Joachim的意见无比正确。

[xii] 2010年7月23日,Microsoft正式宣布与ARM展开战略级合作[23]。Intel与Nokia联手开发用于手机的Meego操作系统。

[xiii] 这些网络通信厂商在Intel网络处理器上投入了大量的人力物力,而Intel却却中断了该产品的后续研发。

[xiv] 网络处理器没有一个得到善终。IBM将网络处理器卖给了Hifn,不过近期IBM发布了一颗16核的Wire-Speed网络处理器。Motorola半导体从C-Port手中收购了网络处理器,却无法阻挡Intel在IXP网络处理器的低价格策略。

[xv] 1.414约等于sqrt(2)。Intel使用这些数字的主要原因是继续捍卫摩尔定律。

















Atom的前生今世


世间本没有PC处理器和嵌入式处理器。这两种处理器在同一天诞生。

1976年5月,Intel开始设计8086处理器。工程师没有想到这颗处理器将给后世带来如此深远的影响。如同许多改变人类命运的产品,设计者最初并没有太大的追求,诸多的不经意与偶然促成了一个伟大的产品[24]。1978年6月8日,Intel正式推出8086处理器[25]。1981年8月12日,基于8088处理器的IBM PC诞生[26]。PC很快席卷了整个世界。

嵌入式处理器这个称呼也随之出现。从广义的角度上讲,所有处理器都是嵌入式处理器,包括用于服务器,PC和嵌入式领域的处理器。PC的日益普及,使得PC处理器从广义的嵌入式领域中脱颖而出,成为单独的一个产业,也就有了PC处理器。

在不久的将来手机也将从广义的嵌入式领域中独立,也会有单独的手机处理器,而不再是嵌入式处理器在手机中的应用。ARM处理器在手机领域的强势地位使得越来越多的人将其贴上了手机处理器的标签。更多的人认为将来的PC是揣在兜里,而不是装在包里。这些猜测触动了Intel这个巨人的心,失去未来的PC是Intel无法承受之重。

巨人的行动并非永远迟缓。2004年,地处Texas州的Intel Austin研发队伍启动了代号为Silverthorne的项目,这个项目所研发的芯片将取代A100和A110这两个低功耗处理器(A100和A110处理器的项目代号为Stealey,基于90nm工艺,是Pentium M的派生芯片[27])。这颗芯片也将是第一颗Atom处理器。Silverthorne项目的启动为两年后Intel毅然抛弃XScale构架埋下了伏笔。拥有顶尖处理器设计能力的Intel绝不允许ARM在旁酣睡。

Austin的研发队伍在项目启动时收到了来自高层的三条指令。Atom处理器必须是一个低功耗芯片,TDP(Thermal Design Power)约为ULV(Ultra Low Volatage) Dothan(即Intel Celeron M ULV)内核的十分之一(Dothan的TDP约为21瓦)。这颗处理器必须有足够的性能可以快速地浏览网页,流畅地运行高端操作系统[34]。这两条指令虽然苛刻,毕竟合理,也是可以通过努力实现的。

Austin的研发人员为此热血沸腾,也许他们将有机会创造一个完全不同的处理器,也许他们将有机会再一次改变这个世界。最容易想到的是使用RISC架构。从Pentium Pro开始,x86处理器使用了RISC流水线,在这条流水线中运行的是μops,并不是程序员使用的CISC指令。在流水线的开始阶段,x86处理器将CISC指令转换为μops,之后进入指令流水线运行。

如果能够将μops作为指令集直接提供给程序员使用,Austin的研发人员可以抛掉所有包袱,创造一颗完全不同的处理器。这个处理器可以自由地使用Intel从Pentium Pro开始的,并经过若干次改进而调优的μops流水线。Intel引以为傲的PCI/PCIe局部总线架构也可抛弃,毕竟PCIe设备的耗电量远大于ARM的AMBA设备。

主推一个新的指令集ISA(Instruction Architecture)是一件异常困难的事情。对于Intel这并非不可实现的。使用μops作为新的ISA,不过是将原先由硬件进行的指令翻译过程(Instruction Transforming)转交给编辑器。基于x86处理器的程序只需要经过重新编译,就可以运行在新的处理器平台上。一旦抛弃了CISC指令集,Austin的工程师可以自由地使用Intel所有的技术积累,更重要的是这颗处理器可以借鉴整个处理器界的成果。在多数情况下,新设计的处理器总比之前的好些。

所有这一切不过是研发人员的一厢情愿。来自高层的指令坚定而且明确,这颗低功耗处理器必须严格实现x86向前兼容。这意味着具有30多年历史的x86指令集,必须要不打一丝折扣地在这颗芯片上实现。向前兼容是Intel巨大的利润来源,也是摆在这个星球上最顶级处理器设计人员面前的一个不可逾越的山峰。在Intel并不长的历史中,违背向前兼容的例子只有以惨败而告终的Itanium。

多少年来,Intel的领袖集团都很偏执,偏执的侧重各有不同。格罗夫偏执着改变,将Intel从一个存储器厂商塑造为处理器厂商,更多的偏执着使用了三十多年的x86指令集。

Intel处理器的开发史是工程师与向前兼容不断斗争的奋斗史。许多年之前,Intel凭借向前兼容这一利器,打败了所有RICS厂商,包括DEC,SUN,Motorola和IBM,一统PC与服务器领域。这并不意味着CISC处理器战胜了RISC处理器,x86处理器已经进化成为RISC处理器,只是依然披着CISC指令的外衣。

对CISC指令的向前兼容需要许多额外的晶体管,更为重要的是Intel从1978年使用至今的CISC指令绝非完美,PowerPC和ARM用区区两三百页就能描述清楚的指令集,x86处理器需要使用1千6百多页。x86处理器的指令不仅冗长,更糟糕的是并不等长。处理这些不等长引发的对界问题是众多IC程序员的技术噩梦。

Itanium处理器决定放弃向前兼容,却成了Intel的一场商业噩梦。Intel至今没有醒来,也不敢在Atom处理器上重新进行尝试。一次错误并不意味着下一次依然错误。也许Atom处理器已经错过了再次改变世界的良机。也许Intel错过了丢弃这个糟糕指令集的机会,失去了这个可能的伟大变革,也可能失去了整个世界。

变革不仅需要勇气,更多的是能力。放弃向前兼容的变革也许会使Intel再次获得历史赋予的机会,也许会毁掉Intel。这样的决定,是勇气,是梦想,是坚贞,是决别。这样的决定,诺伊斯可以做,摩尔可以做,格鲁夫可以做,贝瑞特不敢做,欧德宁不敢想。

Intel这样的大公司,只有创始人才敢做,也有能力做出一些伟大的变革,只有他们才有毁掉这个公司的勇气。领袖有了雄威之气,剩下的人才可能有雄威之气。贝瑞特和欧德宁们恐怕做梦都没有考虑过这些可能毁掉Intel的决定,虽然这个决定也可能是上天赐给Intel的机会。睡梦中的格罗夫也许曾无数次被怒火激醒,“再锋利的剑,到了你们手里只能是一把生锈的钝刀!”。

Intel使用了三十多年的CISC指令又一次被强加在Atom处理器中。失落的设计人员需要再一次为向前兼容付出惨重代价。Intel天才的工程师需要再一次直面这些为处理CISC指令而带来的古怪逻辑。Atom处理器再一次被套上枷锁。Intel再一次丧失了和ARM站在同一起跑线上的机会。

与RISC构架使用的定长指令集不同,Intel的CISC指令的长度从16b到120b不等[35]。变长的指令为指令译码部件带来了额外的负担,而且基于CISC指令的流水线很难进一步提高速度和并发指令条数。从Pentium Pro开始,Intel抛弃了CISC指令流水线,而使用μops流水线,为此在x86处理器中需要使用一个特别的指令译码部件,首先将CISC指令转换为内部指令流水线可以识别的μops[33] [36],然后再送入μops流水线中执行。

x86处理器的绝大多数CISC指令可以方便地翻译成一条或者多条μops指令,也可能是多条CISC指令被优化成为一条μops指令。仍有为数不多的过于复杂的CISC指令需要借助Microcode ROM进行查表译码,x86处理器处理这些指令的效率极低,但是这些指令出现的频率极低,并不会影响指令译码效率[33]。

Silverthorne处理器可以使用两种方法实现严格的向前兼容,或者使用μops流水线,或者使用CISC流水线。使用μops流水线也意味着Atom处理器必须保留将CISC指令转换为μops指令的逻辑,也必须保留在绝大多数时间可以安然入睡的Microcode ROM。对于已经集成了23亿个晶体管的Nehalem EX处理器,增加这些古怪的逻辑并不会极大地增加功耗。对于TDP的设计目标仅有2.1瓦的Atom处理器,这些逻辑是不可能被接受的,因为这些古怪逻辑本身使用的功耗已经超过了一些低端ARM处理器。

来自Austin的设计人员必须另辟蹊径。他们试图在Atom处理器中使用Intel最新的工艺,直接执行复杂的CISC指令,这也重新揭开了上世纪九十年代开始的RISC与CISC构架之争。在那场战争中,Intel打败了所有RISC厂商,这并不意味着CISC处理器战胜了RISC处理器。在PC服务器领域,Intel的x86处理器最终被RISC处理器同化,而在剩余的几乎所有领域中CISC构架被RISC构架屠杀。

面对CISC构架的举步维艰,Pentium Pro做出了折中选择。Atom处理器却要继续扛起CISC的大旗。所有这一切并不是因为CISC构架仍有可能优于RISC构架,而是Austin的工程师面对向前兼容的不得已。

也许使用第一流的工艺可以化腐朽为神奇,也许使用最顶尖的工程师可以将一个O(N2)算法实现得比普通工程师实现O(N×LogN)算法更为快速。也许这些“也许”永远都是“也许”。虽千万难,吾独往矣。帝国启动了赌局。

工程师首先改变的是Power设计理念。多年以来,Intel在PC和服务器上有关Power和Performance性能的设计理念是,处理器提升1%性能,Power可以提高2~3%。在Atom处理器中,这个比例是1比1,处理器每提升1%性能,相应的Power不能提高1%[37]。

Atom处理器抛弃了许多在Core 2和Nehalem处理器使用的高效设计,从零开始。与诸多传说并不一致,Atom不是削减版的Pentium M或者Core 2。Atom处理器是Intel自Pentium处理器以来最为简单的设计,也是一个全新的设计。这个设计使用了Intel最为古老的CISC流水线。

无奈的工程师面对由来已久的向前兼容,剩下的选择除了无奈,还是无奈。没有人愿意直面x86处理器这些乖张,谬妄,怪僻,荒诞的CISC指令,也没有人敢甚至去说说挑战“向前兼容”的不合理。

使用μops流水线无法越过Power的天堑,剩下的只有CISC流水线。无奈的设计人员第一个想到的是1989年发布的486处理器[ii],这颗处理器使用了单发射(single-issue),顺序执行(in-order)的CISC流水线。

即便在当年486也不是一个顶级处理器,Atom处理器必须对此加以补充。多发射技术仍是必须的,Atom处理器支持双发射。现代高端处理器常用的乱序执行(Out-of-Order Execute)对于追求低功耗的Atom处理器是奢侈的,Austin的设计人员暂时放弃了乱序执行这个已经被广泛验证,可以显著提高流水线执行效率的功能。486处理器使用的5级流水线并不利于处理器主频的提升,Atom处理器将其提高到16级,如图1所示。


图1 Atom处理器的流水线[34]



这不是Atom处理器流水线的全部。Atom处理器还含有两级预先译码部件(Predecoder)。传统的x86指令并不等长,而是16b~120b,Predecoder部件的作用是划分指令边界,然后将其导入L1指令Cache。Atom处理器L1指令Cache的大小为36KB,实际可利用大小仅为32KB,剩余的4KB存放SOI(Start of Instruction),EOI(End of Instruction),等信息[34]。

Atom处理器可以直接处理多数CISC指令,但是仍然有一些过于复杂的CISC指令被分解为若干个μops,再进入指令流水线。Atom处理器的流水线并非没有可取之处,这颗处理器可以直接执行ALU/Memory指令。这类指令首先被分解为ALU和Memory两个微操作,然后成对进入流水线。虽然Memory操作仍不能先于ALU操作执行完毕,也明显提高了这类指令的执行效率。

Atom的指令流水线不如RISC架构完美,但这是Intel的工程师在向前兼容的大前提下,为降低功耗而进行的一次大胆尝试。Atom使用按序执行流水线,这也使得HT(Hyper-Threading)技术的引入成为必然。HT技术是Intel对SMT(Simultaneous Multithreading)技术的一种称呼。在现代处理器的设计中,可以使用两种技术在节约整个设计成本的前提下大幅提高并行度,一种是提高ILP(Instruction Level Parallelism),一种是增强TLP(Thread Level Parallelism)[38]。

Superscalar技术是提高ILP最常用的方法,Superscalar技术是指在同一个时钟周期CPU可以发射多条指令。这一技术最早出现在1964年,Seymour Cray的CDC6600就使用了这一技术[39]。这一方法在绝大多数高端处理器中得到了广泛的应用。Intel的高端处理器可以并发执行3~4条指令。

TLP技术最常用的实现手段即为SMT。DEC的工程师准备在Alpha21464(EV8[iii])上率先实现SMT技术。而Alpha21464还没有完成最终的Tape-Out,就需要为Itanium让路而被迫取消[40][41]。这是在学术领域无所不能的Alpha处理器的最后绝唱。DEC的这些工程师历经辗转,最终在Pentium IV上实现了HT技术。此后MIPS MT和Power5也支持SMT技术。

HT技术的本质是在同一个CPU中支持多个线程,每一个线程都具有独立的通用寄存器,Local APIC等其他资源,所有线程共享同一条流水线,可以是一个线程的指令处于流水线的译码阶段,而另一条线程的指令处于执行阶段。当某个线程因为需要执行一些耗时较长的指令时,流水线可以切换到另外一个线程继续执行以避免流水线的阻塞[iv]。对于某些需要大量访问共享资源的应用,使用SMT技术不仅不能提高流水线效率,反而会降低。

Intel声称使用了HT技术的Atom处理器,可以提高36~47%的效率[34],也无法回避某些Benchmark的结果,使用HT的结果更加糟糕。有一点可以肯定,不支持乱序执行的Atom处理器如果还不支持HT,其执行效率不值得去评估。

体系结构上的缺陷很难用任何技术去弥补。Intel依然坚持,依然尝试。在Atom处理器的L1 Cache中一个Cell使用了8个晶体管,与使用6个晶体管的设计相比,这种设计显然将占用相对较大的die size,却可以使用更低的工作电压,最终降低功耗[28]。这些优化并不能弥补Atom为支持“向前兼容”而带来的,源自体系结构的先天缺陷。

第一代Atom处理器,Silverthorne和Diamondville早已问世。基于Atom处理器的Asus EeePC和Acer Aspire One取得了不俗的战绩。第二代Atom处理器,Pineview也得到了帝国各个成员的拥戴。向前兼容持续着已有的成功。PC领域因此增加了两个新的成员,Netbook和Nettop。这两个新成员被赋予了一个新的名字,上网本。

Asus的第一个上网本EeePC预装着Linux操作系统[31]。起初这个产品并没有被Wintel帝国重视,EeePC的成功却出乎他们的意料之外,在2007年EeePC的销量达到300,000台[32],迅速地向百万台销售目标进军。Microsoft如梦初醒,迅速作出反应,在EeePC上预装WinXP,很快在EeePC上Linux与WinXP的预装比例达到了1:9。这个比例依然没有完全反映Linux在上网本中所占的比例,许多预装着Linux的上网本是销往中国的。随后比WinXP更加秀丽的Win7也出现在上网本中。

Wintel再一次统治了上网本市场,也亲手毁掉了这个市场。最初灵巧便携的EeePC已经成为历史,越来越多的人们看到的是上网本中Atom处理器的低速与Windows的臃肿。上网本的唯一优点只剩下价格。至此上网本成为廉价笔记本的简称。当Apple的Jobs拿出第一个iPad时,属于Wintel的上网本盛宴已经结束。一个新的名词平板电脑(Tablet)被万众瞩目。ARM处理器和Apple却是主角。

Wintel帝国并没有彻底失败。Intel需要的并不是上网本,不需要这样的产品去瓜分Laptop市场。帝国的终极目标依然是可以手持的PC。上网本是技术尚不成熟的临时产品。Intel很清楚的意识到初期的Atom并不能离开Windows,向前兼容依然重要。只是向前兼容这个紧箍咒套上容易脱离难。

Moorestown平台终于浮出水面。这是Intel为手持PC开发的第一款产品,与ARM的单芯片解决方案并不相同。Moorestown平台由两个芯片组成,分别是代号为Lincroft的处理器和代号为Langwell的芯片组。在Lincroft中包含一个Atom处理器、GPU和存储器控制器,用Intel的45nm工艺实现,在Langwell芯片组中包含手持PC中常用的外部设备,如摄像机接口、USB接口、1080p HDMI接口和NAND控制器等[29]。

为了更快的推出Langwell芯片组,Intel并没有使用自己的生产工艺,而是依靠TSMC的65nm工艺。这引发了人们无限的猜想,在诸多半导体厂商中,Intel始终坚持“in-house-design”的思路,一个芯片从设计到生产都在Intel内部完成,而且Intel有太多的工厂可以生产65nm的芯片。Intel究竟需要从TSMC获得什么?

Intel的Roadmap揭示Moorestown平台仅是一个权宜之计,在并不久远的将来,Medfield平台会将Lincroft和Langwell合二为一,这也将是Intel有史以来第一个单芯片处理器[29][30]。这颗芯片依然采用Intel的“in-house-design”的设计理念吗?

这一切并不重要,从体系结构的角度上看,Moorestown和Medfield平台使用的依然是Atom内核,并以某种方式连接手持PC使用的外部设备。从性能/功耗比的角度上,基于ARM AMBA总线的外部设备目前是最优的,胜过追求性能的PCIe设备。

Moorestown和Medfield平台与ARM处理器平台需要一决胜负的依然是处理器内核。与在SPECint_base_rate2006 benchmark程序获得117高分的Nehalem处理器(在此之前没有任何一款处理器获得100以上的分数)不同[42],性能并不是Atom处理器的优势。并不出乎体系结构专家的意外,在许多Benchmark程序下,Atom处理器落后于Cortex A9处理器[43],如下表所示。而Atom处理器使用的功耗与ARM处理器目前并没有可比之处。




 CoreMark/MHzDhrystoneMax MHzEstimate CoreMark at MaxMHz
Cortex A82.42.01.0GHz (S5PC110)2415
Cortex A92.92.51.0GHz (Tegra 2)
2.0GHz
2881
5762
MIPS 74K2.52.01.6GHz4000
N280
(1 thread)
1.82.41.67GHz(N280)
2.GHz(Z550)
3060
3673
N280
(2 threads)
2.8N.A.1.67GHz(N280)
2.GHz(Z550)
4664
5600






Youtube上有一个流传已久的视频[44],一个1.6GHz的Atom处理器(很可能是N270)与一个双核500MHz的Cortex A9平台在相同的分辨率,相同的主存储器大小,相同的操作系统环境下,浏览网页的速度几乎不分上下。采用RISC架构的Cortex A9依然有非常大的潜力可以进一步提升性能,而在体系结构上强调向前兼容的Atom处理器早已被捆住手脚。

失去性能优势的ARM处理器,还有功耗。而失去了性能优势的Atom处理器,只剩下向前兼容。越来越多的人们开始发问,在手持式领域,向前兼容是不是如Intel所料那样重要?虽然Intel一再宣称x86处理器拥有最大的软件Ecosystem,又有多少x86兼容的程序可以不加修改地移植到手持式设备中,又有多少硬件IP可以与PCIe总线直接互连?

如果在手持式设备中,“向前兼容”也不再重要,Atom处理器剩下的只有Intel耗费重金打造的芯片生产工艺。多年以来IT技术被归于高科技领域,这并不是指架个微机编写软件。半导体芯片的制作使用了人类有史以来最复杂的工艺。

首先是硅的提炼,硅原料被投入一个巨大的硅熔炉中,然后再植入一个精度极高的硅种,被融化的硅原料将围绕这个硅种生长,最后形成一个纯度至少为99.9999%的单晶硅锭(圆柱体)。这个硅锭的直径一般为8英寸或者12英寸。之后这个硅锭被切割为一个个Wafer(硅晶片),Wafer再被切割为一个个正方形的Die。每一个Atom处理器将使用一个Die。

这些Die将被多次影印(Photolithography),蚀刻(Etching),最后形成一个多层3D结构。至此Foundry完全结束。经过Foundry处理后的Die,将经过封装,测试等流程,最终成为一个个半导体芯片。

所谓纳米工艺是发生在Etching阶段,Etching也是半导体工艺技术的重中之重。经过影印后,硅晶片将被涂上一层光敏抗蚀膜,之后使用极短的紫外线曝光光敏抗蚀膜,并用化学溶剂清除已曝光的光敏抗蚀膜连同其下的一层硅。曝光的硅最后将被原子轰击,以生成N井或者P井,最终实现门级电路。

45nm,32nm技术指MOS晶体管栅极的宽度。这个宽度越低,在相同大小的Die中就可以集成更多的晶体管。贝瑞特时代的Intel抓住了半导体工艺的发展启动机遇,在诸多半导体厂商中脱颖而出。但是这种领先很难持久。半导体成产工艺是材料科学,化学工业,光学技术和精工机械的集大成者,本质上是一门实验科学,需要大量的资金投入。

Intel取得了先机,也在以一隅敌全国。Intel率先在Westmere处理器上实现了32nm工艺,22nm将在2011年中期实现[45][46]。这种领先是一年,还是两年,并不重要仅是白驹过隙。ARM Cortex A9已经可以使用Global Foundry提供的28nm工艺。当22nm技术来临时,Intel在生产工艺上的领先优势将不复存在。

Intel率先推出45nm时,也是与其他半导体厂商差距最大的时刻,领先其他半导体厂商一代。而技术的革新与进步总是开头最难,中期发展阶段最快,至末期的举步维艰[v]。种种迹象表明硅晶片的制造工艺已日趋极限。

如果Atom处理器连工艺的领先都无法依靠,在技术上[vi]将没有优势可言。也许一个产品成败并不完全取决于技术也许二十年前Intel战胜所有RISC厂商的故事可能再次发生,也许偏执的力量可以战胜顶尖的技术。
只是Intel已无格鲁夫。

x86向前兼容至少需要使用1.65M个晶体管,比ARM7内核本身还复杂。

[ii] 如果程序员基于Atom处理器,进行程序优化,发现gcc编译器使用486的arch速度最快时,不要大惊小怪。

[iii] Alpha系列的处理器内部代号都是EV,EV是Extended VAX的缩写。VAX机曾是一个时代的经典。我书写的第一行程序就用VAX机下的行编译器的LET TEMP = A; LET B = A; LET A = TEMP。

[iv] 对于计算机体系结构较为熟悉的读者,可以将HT技术说得更简单一些,就是分属不同线程的指令之间没有相关性,只要有空余的执行单元,即可通过预约站,进入执行单元。

[v] 感谢“不懂工艺就不要乱说”在弯曲评论上的批评与指正。我本想修改部分内容,反复考虑后仍觉没有太大必要。留在这里也许更好,这能够提醒我,认真做事未必能做好。所知不多时,不该妄下结论。

弯曲评论的连接见http://www.tektalk.org/2010/11/27/atom的前生今世/。这些批评对我很有帮助。在此提醒读者,这部分与工艺相关的内容,尚有较大的争论。

[vi] 我一直在猜测也许Intel的以色列团队正在基于Sandy Bridge处理器做一个真正意义上的低功耗Atom。我所意识到的一切,在Intel一定有人更早的意识到。个人以为目前的Atom内核已经死去,替代品也许仍然叫Atom,但是这并不重要。


                                                                








蝶变ARM


1929年开始的经济大萧条,改变了世界格局。前苏联的风景独好,使得相当多的人选择了马克思。惧怕布尔什维克红色力量的人投入了法西斯的怀抱,剩余的人选择了妥协与折中。整个世界的迅速分解使得第二次世界大战成为必然。

1933年,罗斯福成为美国第三十二任总统,开始实施新政。这些新政使美国摆脱了危机,决定了二战的走向。罗斯福的背后站着的是凯恩斯,凯恩斯的国家资本主义化解了整个资本主义阵营有史以来最大的一次危机。“妥协与折中”得以持续。

战后的世界属于巨型公司,这些公司借助国家资本的力量,持续着垄断。这些垄断的初衷并非都是恶意的,在美国这却是一个早在1890年就立法制止的。1911年,美国烟草公司被分拆。1982年,美国电报电话公司被分拆。

这些分拆很难抵达IT业。1975年成立的Microsoft虽然多次被推入拆分的风口浪尖,却从未被拆分。IBM和Intel多次遭到分拆的威胁,也安然无恙。连分拆的支持者都注意到这样一个事实,这些公司不是依靠国家资本获得垄断地位,而是依靠多年苦心积攒的知识产权坚持到现在。

这类垄断之忧不在颛臾而在萧墙之内。在这些巨型IT公司中,最低层的工作人员需要经过多达十几级的汇报关系,才能到达首席执行官。在这十几级汇报链中,向上所传递最多的就是粉饰太平。

微不足道的小问题在这些大公司中也能引发无尽的讨论。为解决某个问题而举行的会议,经常被无休止地扩大,从一个会议扩展为多个会议,从几个人参与变为几十人参与。这个问题变得已不再重要时,内部并无统一意见。

西方巨型公司的弊端在于欧美所倡导的民主代价过于昂贵。撒切尔夫人是欧洲第一个深刻认识到这些问题的最高执政官。历史上,英国并不重视中小企业的发展,在凯恩斯主义盛行的二十世纪五十年代,英国经历了三次大规模的企业兼并。至撒切尔夫人执政,巨型企业大行其道。更多的人发现这些大型企业并不能提高生产效率,大范围的垄断与集中,已使英国经济举步维艰。

上世纪八十年代,撒切尔夫人开始变革,剑锋所指,巨型公司纷纷解体,中小企业如雨后春笋般涌现。撒切尔的私有化,货币控制,削减福利与抑制工党的四项举措,客观上拯救了英国经济,也使这位值得尊敬的女士誉满天下,谤满天下。

ARM在这样的大背景之下诞生,这注定了这些创始人不会也不愿意使ARM成为巨型公司,这也是取得如此成就的ARM,人数尚不过两千的最重要原因。ARM最初的简称是Acorn RISC Machine。Acorn Computer创立于1978年,总部位于剑桥,由Andy Hopper(剑桥大学), Chris Curry(Sinclair Research)和Herman Hauser(剑桥大学)创建[48]。

Acorn最初使用MOS Technology 6502处理器搭建处理器系统。MOS Technology 6502是一颗8位处理器,设计这颗处理器的工程师来自摩托罗拉的MC6800设计团队[48]。基于6502处理器,Acorn开发了最令其自豪的处理器系统BBC Micro[49]。

在上世纪80年代至90年代,BBC Micro处理器系统主宰英国的教育市场。当时还有另外一个基于6502处理器的系统,Apple II[50]。从这时起,Acorn和Apple这两个设计理念及产品形态相似的公司结下了不解之缘,有些人将Acorn公司称呼为“The British Apple”[51]。也是在这个时候,Acorn迎来了一生中的对手Intel。基于Intel x86构架的PC对同时代的处理器厂商是一场噩梦,很少有公司能够醒来。服从或者灭亡,别无选择。Acorn选择服从,向Intel申请80286处理器样片,Intel拒绝了这个请求[52]。

工程师对剩余的处理器,进行了充分的评估。结果令人失望。此时的Acorn没有选择,认真地考虑是否需要研制一颗属于自己的处理器。他们没有任何处理器设计经验,为数不多的工程师们除了才华,只有梦想。才华与梦想恰能改变整个世界。

1983年10月,Acorn启动了代号为Acorn RISC的项目,由VLSI Technology负责生产。1985年4月26日,VLSI成产出第一颗Acorn RISC处理器,ARM1。ARM1的结构非常简单,仅有个25,000晶体管,甚至没有乘法部件[52]。当时并没有人留意这颗芯片,更多的人关注Intel在1985年10月17日发布的80386处理器[36]。

没有人认为这颗略显寒酸的ARM1能给80386带来任何冲击,甚至包括研发这颗芯片的Acorn工程师。做为处理器厂商,与Intel活在同一个时代是一场悲剧,无论是Acorn,IBM亦或是不可一世的DEC。Intel并不是不犯错误,只是有限的几个错误都能被及时修复。才华横溢的Intel工程师将处理器的故事演绎至巅峰,他们的竞争对手也因此步入地狱。

Acorn不得不选择回避,这也决定了ARM处理器的设计理念是low-cost, low-power和high-performance。这个理念与21世纪智能手机的需求不谋而合,却是Intel强加给ARM的。Intel在不经意间为自己树立了一个强大的对手,这个对手在Intel的庇护之下一步步长大。并不夸张地说,没有Intel就没有ARM的今天。

因为对low-cost和low-power的追求,Acorn选择了RISC,而不是CISC,在上世纪80年代,RISC与CISC孰优孰劣尚无定论。在当时采用RISC技术可以看得到的优势是可以用更少的芯片资源,更少的开发人员实现一个性能相对较高的处理器芯片[53]。Intel使用了CISC架构,很大程度上也决定了Acorn选择了RISC。刘备的“每与操相反,事乃可成”,对于Acorn就是“与Intel不同,便有机会”。

ARM的成长仍然缓慢,陆续发布的ARM2与ARM3没有激起波澜。只有为数不多的公司选择ARM3处理器开发产品。一些公司将ARM3处理器用于研发,最有名的公司就是Apple[53]。在当时,Apple也是屈指可数的对ARM友善的公司。

Acorn无论是在财务上还是在技术上都遭遇了瓶颈。销售量达到150万台的BBC Micro没有给Acorn带来足够的财富,与席卷天下的PC相比这微不足道[54]。ARM3与Intel在1989年发布的80486也没有太多可比性。危机最终降临到Acorn这个年轻的公司,1985年2月,当时的IT巨头Olivetti出资12M英镑收购Acorn 49.3%的股份[55]。Olivetti的庇护没有给Acorn带来机遇。

Olivetti创建于上世纪初,对智慧与品质苛刻地执着使得他们的产品陈列在纽约的现代艺术博物馆中,出现在许多经典的影片中。这些产品没有改变这个公司的最终命运。Olivetti最终涉足PC领域,使用Zilog的Z8000,挑战在这个领域所向无敌的Intel。

Olivetti收购Acorn后,更多地将ARM处理器用于研发,真正的产品使用Zilog系列。这段时间是Acorn最艰难的日子。Acorn的创始人Andy Hopper最终选择从Olivetti独立。出乎意料之外,Olivetti支持了Andy的决定。

1990年11月,Acorn(事实上是Olivetti Research Lab),Apple和VLSI共同出资创建了ARM。Acorn RISC Machine正式更名为Advanced RISC Machine[55]。在1996年,Olivetti在最困难的时候将所持有的14.7%的Acorn股份出售给了雷曼兄弟[56]。

当时的Apple正在为代号Newton的项目寻找低功耗处理器。Newton项目的终极目标是实现地球上第一个Tablet。Apple对Tablet的前景寄予厚望,他们直接将公司Logo上的Isaac Newton作为项目的名称。Apple最初的Logo是在苹果树下深思的牛顿。两个Steve将公司命名为Apple,与喜欢吃苹果没有任何联系,只因为是苹果而不是鸭梨砸到了牛顿头上。

Newton Tablet的想法过于超前,最糟糕的是Jobs当时并不在Apple。Apple用并不太短的时间证明了一条真理,没有Jobs的Apple和没有乔丹的公牛没有太大区别。1996年3月,Steve Jobs再次回到Apple,两年后取消了这个并不成功的项目[57]。等到Jobs再次推出iPad Newton时,已是十几年之后的事情了[58]。

Apple投入3百万美金拥有了ARM公司43%的股份[60],但是并没有把宝押在ARM公司,Apple真正关注的是在1991年与IBM和Motorola组建的AIM[59]。在1998年,ARM公司在英国和美国同时上市后,Apple逐渐卖出了这些股份。在2010年,Apple即便准备好了80亿美金,却也无法收购ARM。

上世纪九十年代初期的ARM公司,财务依然拮据,起初12个员工只能挤在谷仓[ii]中办公,廉价License的商业模式更不被人看好。虽然依靠Apple的鼎力相助,ARM6[iii]得以问世,却没有改变Apple和ARM的命运。Newton项目设计的是本应该属于下一个世纪的Tablet,ARM6被PC处理器和当时多如牛毛的RISC处理器笼罩,无所作为。

上世纪90年代属于PC领域。AMD的异军突起,及其与Intel的竞争,构建了上世纪九十年代处理器领域一道最炫目的风景线,服务器领域属于DEC。1992年2月25日,DEC发布的Alpha21064处理器,主频达到150MHz[61],而Intel在第二年发布的Pentium处理器,主频仅有66MHz[62]。

整个90年代,处理器世界都在惊叹着Alpha处理器所创造的奇迹。DEC陆续发布的Alpha系列处理器既便是放到二十一世纪的今天,设计理念依然并不落后。DEC工程师是在为21世纪设计处理器芯片。在Alpha21x64系列处理器的编号中,’21’代表二十一世纪,而’64’代表64位处理器[63]。

上帝并不青睐DEC公司,科技与商业的严重背离酿成了巨大的灾难。Alpha处理器的技术尚未抵达巅峰,DEC的财务已捉襟见肘。1994~1998年,DEC不断地向世界各地兜售资产。至1997年,DEC出售的资产已遍及五大洲,二十多个国家[64]。1998年1月26日,DEC正式被Compaq收购[65]。在DEC解体的最后一段日子里两个公司最为受益,一个是Intel,另一个就是ARM。

在ARM的起步阶段,鼎力相助的是Apple,最先License ARM内核的却是英国本土的GEC半导体公司。在1993年因为Apple的引荐,ARM处理器跋山涉水来到日本,与Sharp建立了合作关系。在此之前Sharp与Apple一直在合作开发Newton项目。

这些合作并没有缓解ARM的财务危机,ARM一直在追寻真正属于自己的客户。1993年,Cirrus Logic[iv]和德州仪器公司TI(Texas Instruments)先后加入ARM阵营。TI给予了ARM雪中送炭的帮助。TI正在说服当时一家并不知名的芬兰公司Nokia与他们一同进入通信移动市场。TI在DSP领域已经取得了领袖地位,但并不熟悉CPU业务,在屈指可数的可以被操控的公司中,最终选择了ARM[67]。

ARM迎来了上天赐予的机会。通过与Nokia和TI的密切合作,ARM发明了16位的Thumb指令集,真正意义上创建了基于ARM/Thumb的SoC商业模式[67]。ARM已经逐渐摆脱了财务危机,业务不断扩大。至1993年底,ARM已有50个员工,销售额达到10M英镑。

同年ARM迎来了公司成立以来最重要的一颗处理器内核,ARM7[67]。ARM7使用的Die尺寸是Intel 80486的十六分之一,售价仅为50美金[v]左右。较小的Die尺寸,使ARM7处理器获得了较低的功耗,适合手持式应用[67]。

ARM7处理器引起了当时的处理器巨头DEC的关注。1995年,DEC开始研发StrongARM。与其他License ARM内核的半导体厂商不同。DEC获得了ARM架构的完整授权,DEC可以使用ARM的指令集,设计新的处理器架构,这个特权后来被Intel和Marvell陆续继承。第二年的2月5日,DEC正式发布SA110处理器,开始提供样片[68]。SA110处理器迅速得到了业界的认可,Apple开始使用SA110处理器开发MessagePAD 2000 [69]。

StrongARM处理器在设计中注入了Alpha处理器的一些元素。StrongARM使用5级顺序执行的流水线,分离了指令和数据Cache,添加了DMMU和IMMU功能部件,每个MMU中包含32个全互连结构的TLB,添加了16级深度的WB(Write Buffer)[70]。至此ARM处理器更像是一颗微处理器,而不再是微控制器。

DEC的帮助使ARM处理器达到了前所未有的高度。更为重要的是,这颗160MHz,DMIPS为185的处理器,功耗低于500mW[70]。这不仅引起了工业界的浓厚兴趣,学术界也开始真正关注ARM处理器。1997年,DEC如期发布了第二颗StrongARM芯片,SA1100。SA1100在SA110的基础上增加了一些外部设计。第二年Intel为SA1100提供了一个伴侣芯片SA1101,SA1100+SA1101也成为了许多PDA厂商的首选。1999年,Intel发布了最后一颗StrongARM处理器SA1110[vi],和对应的伴侣芯片SA1111。

StrongARM的成功没有帮助DEC摆脱财务危机。而DEC却找到了一个更容易赚钱的途径。1997年5月,DEC正式起诉Intel,宣称Intel在设计Pentium,Pentium Pro和Pentium II处理器时侵犯了DEC的10条专利。1997年9月,Intel反诉DEC在设计Alpha系列处理器时侵犯了Intel多达14条专利[72]。

在IT界,这样的官司大多不了了之。1997年11月27日,DEC和Intel选择和解。DEC向Intel提供除Alpha处理器之外的所有硬件设计授权,进一步支持Intel开发IA64处理器。同时Intel花费了625M美金购买DEC在Hudson的工厂,Israel Jerusalem和Texas Austin的芯片设计中心。这两个公司还签署了长达十年的交叉授权协议[72]。

DEC的技术注入使Intel的x86处理器迈入新的时代,Intel具备了向所有RISC处理器同时宣战的能力,最终一统PC和服务器领域。Intel还从DEC获得了StrongARM。克雷格·贝瑞特认为这是上天赐予Intel的机会,x86处理器与StrongARM的组合,将使Intel的处理器遍及世界上任何需要处理器的领域。

为了迎接StrongARM的到来,贝瑞特放弃了Intel自己的RICS处理器,i860和i960。Intel为StrongARM起了一个炫目的名字XScale,动用了积蓄已久史上最为强大的Ecosystem,强势进军嵌入式领域。

一时间,XScale处理器遍及嵌入式应用的每一个领域,用于手持终端的PXA系列,用于消费类电子的IXC/Intel CE系列,用于存储的IOP系列,用于通信的IXP系列。Intel的处理器技术极大地促进了ARM内核的发展,借用PC帝国的Ecosystem使ARM处理器从生产到设计一步领先于所有嵌入式行业的竞争者。首先成为XScale处理器试金石的是摩托罗拉半导体的68K处理器。

在XScale系列处理器诞生之前,68K处理器主宰嵌入式领域,Apple Macintosh最初也使用68K处理器。在1997年,摩托罗拉销售了79M片68K处理器,而Intel的x86处理器一共卖出了75M片[73]。这是68K处理器最后的辉煌。Intel和TI主导的ARM处理器终结了68K处理器。摩托罗拉半导体面对ARM的强势出击毫无准备。ARM处理器不断地蚕食68K的市场份额,直到完全占有。

1995年,摩托罗拉半导体的香港设计中心发布第一颗用于手持式设备的DragonBall处理器,MC68328(EZ/VZ/SZ)[74],这是香港半导体界最好的时代。而StrongARM/XScale很快结束了香港设计中心的幸福生活。面对ARM的挑战,DragonBall最终屈服,DragonBall MX(Freescale i.MX)系列处理器开始使用ARM9。使用ARM内核并没有改变摩托罗拉香港设计中心的命运,这个设计中心最终不复存在。

在工业控制领域,68K内核进化为ColdFire[vii]。ColdFire在HP的中低端打印机中取得的成就几乎是最后的绝唱。在通信领域,摩托罗拉半导体抛弃了基于68K内核的MC68360,研发出基于PowerPC架构的MPC860处理器。这颗处理器是通信时代的经典之作,摩托罗拉半导体陆续推出了一系列基于PowerPC内核的通信处理器,却再也没有重现MPC860时代的君临天下。近期推出的QorIQ[viii]系列处理器面对多核MIPS处理器总是滞后一拍。

摩托罗拉半导体,昔日的王者优雅地没落。摩托罗拉半导体于1955年推出第一个锗晶体管,开创了半导体集成电路产业,在整个60年代一骑绝尘,70年代末迎来了68K的辉煌。即使在1985年,摩托罗拉还是全球第三大半导体公司。而怀抱通吃整个产业链的野心,对封闭式系统的挚爱,使摩托罗拉连同半导体部门在同一棵石头上跌到了一次又一次。至21世纪,摩托罗拉半导体(Freescale)的排名在十名左右,2009年的排名仅为第17位。

击败了摩托罗拉半导体的Intel没有感到一丝喜悦,更多的是寒气。2006年,Intel的业绩跌入低谷,这也使得当时的CEO贝瑞特作出了一个艰难的选择,2006年6月27日,Intel将PXA系列处理器出售给了Marvell[12]。

Intel虽然保留了ARM处理器的授权,却已彻底退出了ARM阵营。这是Intel一个非常谨慎而且坚决的选择。Intel需要扑灭后院的熊熊烈火。在PC领域,AMD率先推出了64位的K8处理器[75],并在2005的Computex 上,发布双核处理器Athlon 64。Intel x86最引以为豪的性能优势已不复存在。

这段时间Intel只能依靠工艺与强大的商务能力与AMD的Athlon64处理器周旋。2008年11月,Intel正式发布基于Nehalem内核,用于台式机的Core i7处理器[76],用于服务器的Xeon处理器,Core i3/i5也如期而至。Nehalem内核使Intel彻底战胜了AMD。这颗处理器也是Intel开始研发x86处理器以来,第三个里程碑产品,之前的两个里程碑分别是80386和Pentium Pro。从这时起AMD处理器在性能上再也没有超过Intel。Intel解决了最大的隐患后,却发现ARM处理器已非吴下阿蒙。

ARM7之后,ARM8内核于1996年发布。ARM8内核生不逢时。与ARM7相比,AMR8在没有显著提高功耗的前提下,性能提高了一倍,依然无法和DEC的StrongARM抗衡[77][78]。仅有少量手机在原型设计中考虑过使用ARM8内核,ARM也仅为用户提供了CPU样板。

ARM8的失败并没有阻碍ARM内核的进一步发展,与StrongARM的竞争没有消减ARM阵营的实力,反而激发了ARM处理器不断向前的动力。1997年ARM9正式发布,DMIPS指标首次超过了1.0大关。ARM9是一个重要的里程碑产品。这个产品标志着ARM处理器正式进入微处理器领域,而不再是简单的微控制器。

ARM9将ARM7的3级指令流水线提高到5级,与StrongARM使用的流水线结构较为相似。进一步细化的流水线使得ARM9最高的时钟频率达到220MHz,而ARM8仅为72MHz[78]。ARM9进一步优化了Load和Store指令的效率,ARM9不再使用普林斯顿结构,而转向哈佛结构,使用了独立的指令与数据Cache。

ARM9的指令执行部件分离了Memory和Write Back阶段,这两个阶段分别用于访问存储器和将结果回写到寄存器。这些技术的应用使得ARM9可以在一个周期内完成Load和Store指令,而在ARM7中,Load指令需要使用3拍,而Store指令需要使用2拍。

ARM9可以通过增强的编译器调整指令顺序来解决RAW(Read-after-Write)[ix]类相关。ARM9的这些功能增强,使得在相同的工艺下,其执行性能是ARM7的一倍左右[79]。ARM7并没有被淘汰,简练的设计极大降低了功耗,Apple在2001年10月23日[80]发布的iPod依然使用了ARM7处理器[81]。

ARM7与ARM9的合理布局,使得ARM阵营迅猛发展。基于ARM7和ARM9内核的SoC处理器迅速遍及世界的每一个角落。ARM内核依然在前进。1998年的EPF(Embedded Processor Forum) ARM10内核正式推出。2000年4月12日,Lucent发布了第一颗基于ARM10的处理器芯片[83]。

ARM10内核的设计目标依然是在相同的工艺下,双倍提升ARM9的性能。而提高性能的第一步是提高指令流水线的时钟频率,而流水线中最慢的逻辑单元决定了时钟频率。ARM10使用了6级流水线结构,但并不是在ARM9的5级流水线的基础上增加了一级,而是进行了细致取舍而调优。最终的结果是在使用相同的工艺时,ARM10内核可使用时钟频率为ARM9内核的1.5倍[82] [84]。

ARM10内核重新使用了ARM8内核的系统总线,将ARM9的32位系统总线提高到64位。这也使得ARM10可以在一个时钟周期内完成两条寄存器与存储器之间的数据传递,大幅提高了Load Multiple和Store Multiple指令的效率[84]。

ARM10改动了Cache Memory系统,与ARM9相比提高了存储器系统的效率。ARM10的指令与数据Cache使用虚拟地址,64路组相连结构,引入了高端处理器中流水线与Cache交换数据的Streaming Buffer和Cache Line filling部件[84]。

ARM10内核优化了存储器读指令。实现了最为简单的乱序执行机制。当一条存储器读指令没有执行完毕,其后不相关的指令可以继续执行。ARM10对乘法指令进行了特别的优化,设置了一个新型的16×32的乘法和乘加部件,还设置了两级乘法指令流水,使得每一个时钟周期可以执行一条乘法指令[84]。同时ARM10内核增加了对浮点运算的支持。

从技术的角度上看,ARM10远胜过ARM9,但是没有办法在商业上与ARM9一较高下。ARM10的命运与ARM8惊人的一致。生不逢时的ARM8与StrongARM不期而遇,ARM10与XScale生活在同一年代。

Intel的工程师面对ARM的指令流水线耐不住技痒,ARM10的指令流水线与之前的ARM内核相比,可以说是一个飞跃,而与同年代的高端处理器相比只是一个玩具。Intel的帮助极大促进了ARM处理器的发展。

Intel在保证XScale架构低功耗的同时,引入已经在Pentium Pro系列处理器上非常成熟的Superpipelined RISC技术[85],借助Intel的工艺优势,使得XScale处理器的最高运行频率达到了1.25GHz[86]。此时Intel开发的处理器步入了高频低能的陷阱,1.25GHz的PXA3XX性能仅比624MHz的PXA270的执行效率高25%[86]。

XScale架构并没有使Intel盈利。ICG(Intel Communication Group)部门和WCCG(Wireless Communications and Computing Group)部门给Intel带来的是巨额亏损,ICG在2002~2004年的亏损分别为$817M, $824M和$791M[87]。2003年12月11日,Intel宣布将WCCG合并到ICG中,并在2004年1月1日生效。

这次合并没有挽救XScale的命运。在2006年,AMD的步步紧逼使Intel迎来了20年以来最糟糕的一季财务报表。Intel开始了有史以来最大规模的裁员。2006年7月13日,Intel宣布取消1000个经理职务[89],2006年9月5日,Intel裁员10%[90]。

在此之前Intel将XScale处理器中Marvell还愿意接收的部分出售[12]。Marvell需要的并不是XScale内核,而是Intel从DEC获得的对ARM指令集的完整授权,很快Marvell推出了基于标准ARM v5/v6/v7的处理器,而不再单独依靠XScale。XScale,这个几乎耗尽Intel全部心血的架构,已经走到了最后尽头。

Intel退出ARM阵营,不是因为缺少$600M现金。和许多人预料的并不相同,Intel并不是为了主推Atom处理器,而放弃XScale。而是因为Intel用长达八年的时间发现了一个事实,ARM的廉价License策略并不能使之获利,而必须做Atom。

ARM的廉价License的获益者是ARM自身,随着处理器厂商的不断加入, ARM阵营获得了迅猛发展,这也加速了处理器厂商的优胜劣汰。但是Intel发现的事实依然适用于所有正在使用ARM授权的半导体厂商。

最令ARM内核尴尬的是,依靠这个号称最为开放的处理器内核,获取暴利的是一些做着史上最为封闭系统的公司。凭借ARM内核,Qualcomm为3G专利找到了最佳载体,Apple不断兜售着各类新奇的电子设备。来自通信领域的Cisco,华为陆续加入ARM阵营。ARM,这个来自半导体领域的处理器,并没有使这个领域受益。ARM的出现,极大降低了处理器的设计门槛,使得单纯依靠半导体技术,为做处理器而做处理器的厂商举步维艰。

Intel首当其冲。Intel的错误在十几年前已然犯下。贝瑞特本应该做出对Intel最为有利选择,从DEC那里获得StrongARM后,再亲手终结StrongARM。贝瑞特不经意的失误为Intel的未来树立了一个强大的对手,也使整个处理器世界更加精彩。

ARM从XScale处理器中获得了足够的能量,可以不依赖任何厂商。他们的命运已经牢牢地掌握在自己手中。2002年12月,ARM1136内核发布[91]。2004年7月19日,ARM1176内核发布[92]。2005年3月10日,ARM1156内核发布[93]。在此之前的ARM处理器虽然得到了广泛应用,但是从纯技术的角度上看这些处理器微不足道。

ARM11基于ARMv6指令集,之前ARM还开发了V1,V2,V2a,V3,V4和V5指令集。ARM使用的内核与指令集并不一一对应。如ARM9使用V4和V5指令集,XScale使用V5指令集。ARM7最初使用V3,而后使用V4,最后升级到V5。在ARM指令集后还包含一些后缀如ARMv5TEJ,其中T表示支持Thumb指令集,E表示支持Enhanced DSP指令,而J表示支持Jazelle DBX指令。

ARM v4包含最基础的ARM指令集;v5增强了ARM与Thumb指令间交互的同时增加了CLZ(Count Leading Zero)和BKPT(Software Breakpoint)指令;ARMv5TE增加了一系列Enhanced DSP指令,如PLD(Preload Data),LDRD(Dual Word Load),STRD(Dual Word Store)和64位的寄存器传送指令如MCRR和MRRC。ARM v4和v5在指令集上变化不大,v5也可以向前兼容v4指令集[94]。

而v6指令集并不能100%向前兼容v5的指令集。由于ARMv6对存储器访问模型的大规模更改,完全的向前兼容不再可能。从x86处理器苛求的向前兼容的角度上看,这些改动并不完美,正是这些不完美使ARM内核轻装前进。

ARM的指令集使用RISC架构,但是在ARM指令集中依然包含许多CISC元素。与PowerPC指令集相比,ARM的指令集凌乱得多,这为指令流水线的译码部件制造了不小的麻烦。在ARM内核包含三类指令集,一个是32b长度的ARM指令,一个是16b长度的Thumb指令,还有一类由8位组成的变长Jazelle DBX(Direct Bytecode eXecution)指令集。在ARM架构为数不多的指令集中,有两类指令值得特别关注,一个是Conditional Execution指令,另一个是移位指令。

绝大多数ARM的数据访问指令都支持条件执行功能。所谓条件执行是指指令可以根据状态位,有选择地执行。使用这种方式可以在一定程度上降低条件转移指令预测失败时所带来的系统延时。在计算GCD(Greatest Common Divisor)时,ARM的条件执行指令发挥了巨大的作用,如图2所示。


3 分钟前 上传
下载附件 (9.13 KB)



图2 gcd算法的实现[94]



通过上图可以发现由于SUBGT和SUBLE指令可以根据CMP指令产生的状态决定是否执行,因此显著降低了代码长度。ARM指令集还对移位操作进行了特别的处理,ARM不含有单独的移位指令,使用了Barrel Shifter技术,与其他指令联合实现移位操作,使用这种方法可以有效提高某些运算的效率,如图3所示。







图3 Barrel Shifter的使用



这些特殊的指令使ARM内核有别于其他处理器内核,但并不意味着极大提高了执行效率。首先CMP指令,SUBGT和SUBLE指令有较强的相关性,不能并发执行。此外现代处理器的条件预测单元也可以极大降低条件转移指令的命中率。一些处理器,如x86的CMOV指令和PowerPC的isel指令使用了更小的代价实现了ARM的条件执行功能。

ARM内核在条件执行指令时占用了4个状态位,影响了指令集和寄存器的扩展。在绝大多数RISC处理器中具有32个通用寄存器,而ARM内核仅有16个通用寄存器[x]。ARM的特殊移位操作,增加了指令的相关性,在有些情况下,不利于多发射流水线的实现,也增加了指令流水中预约站RS(Reservation Station)的实现难度。

计算机体系结构是一个权衡的艺术,尺有所短,寸有所长。不同的内核都有自己最为合适的应用,不经过认真的量化分析不能轻易得出孰优孰劣的结论。不过仍有一个结论,在现阶段依然适用,处理器领域历经多年的优胜劣汰,所剩无几的处理器内核在激烈的竞争中日渐趋同。

ARM11内核使用了现代处理器中常用的一些提高IPC的技术,这是ARM处理器的一个重要里程碑。ARM11内核引起了计算机科学的两个泰山北斗,David A. Patterson和John L. Hennessy的注意。他们以ARM11内核为主体,而不再是MIPS,书写了计算机体系结构的权威著作,《Computer Organization and Design, Fourth Edition: The Hardware/Software Interface》。这也是学术界对ARM处理器有史以来的最大认可。

ARM11可以支持多核,采用了8级流水线结构,率先发布的内核其主频在350~500MHz之间,最高主频可达1GHz。在使用0.13μm工艺,工作电压为1.2V时,ARM11处理器的功耗主频之比仅为0.4mW/MHz。ARM11增加了SIMD指令,与ARM9相比MPEG4的编解码算法实现速度提高了一倍,改变了Cache memory的结构,使用物理地址对Cache行进行索引[95]。ARM11终于使用了动态分支预测功能,设置了64个Entry,4个状态的BTAC(Branch Target Address Cache)[95]。

ARM11进一步优化了指令流水线对存储器系统的访问,特别是在Cache Miss的情况之下的存储器读写访问。在ARM11内核中,当前存储器读指令并不会阻塞后续不相关的指令执行,即便后续指令依然是存储器读指令,只有3个存储器读指令都发生Cache Miss的情况,才会阻塞指令流水线[95]。

虽然ARM11没有使用RISC处理器常用的out-of-order加Superscaler技术,在一个时钟周期之内仅能顺序发射一条指令,但是支持out-of-order completion功能,即在执行单元中的不相关的指令可以乱序结束,而不用等待之前的指令执行完毕。

ARM11的这些功能增强,相对于ARM9/10是一个不小的技术飞跃。但是与其他处于同一时代的x86,PowerPC和MIPS处理器相比,仍然有不小的差距。ARM11内核的存活之道依然是性能功耗比。

依靠着强大的性能功耗比,ARM11内核取得了巨大的商业成功。ARM11内核并不是一个性能很高的处理器,但是随着处理器性能的不断提升,量变引发了质变。ARM11内核的出现,使得Smart Phone的出现成为可能。

在此之前,基于ARM9,XScale处理器的手机只是在Feature Phone的基础上添加了少许智能部件。ARM11的出现加速了手机阵营的优胜劣汰,Apple,HTC在智能手机领域异军突起,Motorola一蹶不振。ARM11之后,ARM迎来了爆发式增长,迅速陆续发布了Cortex A8和A9内核。

ARM处理器内核的快速更新,使Nokia这个对新技术反应迟钝的公司,一步步走向衰退。在2010年9月底开始出货的Nokia N8[96],居然还在使用着680MHz主频的ARM11处理器[97],这款产品却号称是Nokia最新的旗舰产品,它的竞争对手早已使用了1GHz主频的Cortex A8处理器。

Cortex处理器是一个分水岭,从1983年开始的ARM内核,迎来了一颗真正意义的现代处理器。ARM已经破茧成蝶,不再是低功耗伴随着低能的处理器。从这一刻起,ARM处理器具备了和Intel,一较高下的能力。2010年4月3日,Apple的Jobs正式发布iPad,ARM随之进入平板电脑领域[99]。ARM已将战火烧到了Intel的后院。

抛弃了XScale架构的Intel,并没有放弃手机处理器。2009年1月23日,Nokia与Intel在手机领域建立长期合作伙伴关系[103]。2009年6月4日,Intel收购Windriver[102]。2010年5月4日,Intel正式发布用于智能手机和平板电脑,代号为Moorestown的处理器[100]。2010年8月29日,Intel收购Infinion的无线部门[104]。在2011年左右,Intel将发布用于智能手机,代号为Medfield的处理器[101]。一系列的合作与收购,使Intel具备了进入手机领域的能力。

至此ARM之于PC领域,x86之于手机领域的野心,已昭然若揭。2010年9月9日,ARM正式发布代号为Eagle,5倍ARM9架构的Cortex A15内核,这颗处理器所关注的应用是高端手机,家庭娱乐,无线架构,还有低端服务器[98]。Cortex A15向世人宣布除了PC,他们还要Server。
ARM,这个曾被Intel鄙视,被其扶植,被其抛弃的处理器,直面挑战Intel的x86处理器。这场较量是今后处理器领域5到10年的主旋律。最终结果将影响处理器领域今后20年的格局。不要认为ARM处理器没有进入PC领域的可能,也不要认为ARM处理器可以继续在手机领域中所向披靡。

苹果公司的两个创始人都叫Steve,一个是Steve Wozniak,另一个是众所周知的Steve Jobs。Steven Wozniak是Apple I和Apple II的发明者。两个Steve在1976年4月,在一个车库中成立众所周知的Apple。

[ii] 英国的谷仓文化与美国的车库文化相近,是新技术的摇篮。

[iii] ARM公司从ARM3直接升级到ARM6。

[iv] 我第一次准备使用的ARM处理器是Cirrus Logic的EP7312。当时我还在使用Altera的EPLD,名称是EP7132,我偶尔混淆这两个芯片的名称。在一个机缘巧合之下,粗心的将我需要购买的EP7132买成了EP7312,这颗芯片也是我购买的第一颗ARM处理器。

[v] 当时的处理器价格高得离谱,50美金已经是很廉价了。

[vi] 我从SA1110开始接触ARM处理器,那是一个永远值得回忆的时代。

[vii] 我在摩托罗拉半导体部门第一次接触的就是Coldfire处理器,目前这颗处理器仍然在不断发展中,这颗芯片与68K在汇编语言层面兼容,但是目标代码并不兼容。

[viii] QorIQ系列处理器基于E500 mc内核,与E500 v2有些微小差异。我的第一本著作是基于E500内核的《Linux PowerPC详解—核心篇》,当时准备写一套丛书,包括核心篇和应用篇。应用篇主要写外部设备,后来的《PCI Express体系结构导读》源自《Linux PowerPC详解—应用篇》,应用篇应该包含网络协议,PCI Express和USB总线,后来把网络协议部分和USB总线部分删掉了。

[ix] 在处理器体系结构中,重点关注的有三类相关问题,RAW,WAR和WAW。使用寄存器重命名技术可以解决WAR和WAW相关。

[x] 考虑到ARM在ARM11内核之前都不支持动态分支预测,和多发射,使用条件执行指令还是能够提高ARM7/9内核的执行效率。


















EAGLE is Coming!


ARM的崛起使Intel陷入长考。

尚属Wintel帝国的PC领域无需担忧。帝国的成员已经历经过多次优胜劣汰。Wintel制定的多数策略能得到这些成员的支持,并使他们最终受益。Intel从PC领域切走了最大一块蛋糕,也是众望所归,这与Intel在这个领域的付出成正比,更重要的是这个蛋糕正是Intel自己做的。PC帝国偶尔出现的纰漏,总能被Intel及时发现。进入帝国的大门被Windows系统牢牢把持,ARM阵营虽多次试探,仍被拒之门外。

在手机领域,Intel还不是局中人。在XScale架构之后,世上没有任何一款手机正在使用Intel的处理器。在这个领域,手机厂商,代工厂商,芯片提供商,操作系统提供商,相互交融,有合作也有竞争,尚未形成动态平衡。Nokia仍然占有最大的手机市场份额,却在智能手机输给了Apple和Andriod。

在这个领域,Apple执着的封闭式系统取得了意想不到的成功。Google的加入使本已混乱的市场,变得更加难以琢磨。Microsoft屡战屡败依然不离不弃。2010年10月11日,Microsoft发布了Windows Phone7[105],Google Android 2.3即将到来的谣言也在漫天飞舞。

乱哄哄你方唱罢我登场,却是处理器领域之外的故事。

ARM是这个领域最大的收益者。无论是Nokia,Apple,HTC还是Motorola都在使用ARM处理器。Intel垂涎三尺也无可奈何,陆续发布的Atom系列处理器,无论是Silverthorn(Atom Z5xx)系列,Diamondville(Atom N2xx,2XX和3XX),Pineview(Atom N4xx, D4xx和D5xx)距离手机都很遥远。

Intel近期发布的代号为Lincroft的Atom Z6xx处理器,却应者聊聊。基于Lincroft内核的Moorestown平台,难显Intel昔日的振臂一呼。尚未有任何一个手机厂商宣布使用这个平台生产手机。

业界似乎仍在等待Intel即将在2011年推出的Medfield平台,这个平台将沿用Atom Z6xx内核,采用32nm工艺,进一步提高性能功耗比[107]。Intel很难继续等待,因为Intel的后院再一次燃起了熊熊烈火。

借助ARM处理器,Apple的iPad已率先发难。这标志着手机领域和PC领域融合的开始。融合的进度虽然缓慢,参与者也已先知先觉。Intel选择在手机领域进行反击,经过一系列的合作与收购,进军手机领域一支的先头部队已悄然组建。

Intel的一系列动作,不足以改变手机领域的格局,却足以使其震惊。这个领域的既得利益者很难接收这位巨人。Intel的能力不容置疑,胃口却大了些。过小的手机上放满了运营商和生产厂商的Logo,已经无法再嵌入一个Intel inside。

Intel不在乎这些阻力。在短时间内,Atom处理器无法在性能功耗比上压倒Cortex处理器,对于Intel这是一个长期的任务。而这些阻力并不值得担忧。

性能功耗比这个词汇是ARM发明的,主要目的是为了掩盖ARM处理器当时过于低下的性能。这个词汇本身无法阻碍Intel进军手机领域的步伐。Intel清楚只要Atom处理器能够在功耗上满足手机领域的需求,就可以利用自身强大的Ecosystem逐步切入手机领域。加以时日,增强对手机领域的理解,Intel可以在手机领域向ARM阵营发起强有力的挑战。

Cortex系列处理器的横空出世打乱了Intel的部署。Atom处理器在最不应该失败,也最失败不起的性能上输给了ARM。从Cortex A9起,ARM处理器实现了对Atom内核性能上的反超,Cortex A15完成了对Atom内核的全面超越。目前尚未有基于Cortex A15内核的处理器,但这只是时间问题。

Intel的时间所剩无几。如果在Moorestown/Medfield平台上使用的处理器内核性能没有明显超过Cortex系列处理器。Intel近期的所有努力将付之东流。在今后两到三年左右的时间,Intel必须发布一个全新的Atom内核[ii],在性能上明显高于Cortex A15内核。Intel需要本质地提高Atom内核的性能,需要一个激进的变革,而不是渐变。Intel可以暂时依靠并不完美的Atom内核在商务上取得成功,但是商业与技术并不会长久背离。

Cortex系列处理器的出现敲响了Intel的警钟。第一颗Cortex内核于2004年10月19日发布[108],这个内核并不是Cortex-A8,而是Cortex-M3。Cortex A8内核在2005年10月4日发布[109]。随后ARM在2006年5月15日发布了Cortex-R4内核[110]。至此Cortex内核完成了在嵌入式领域的布局。Cortex M,R和A内核使用ARMv7的指令集,应用于嵌入式的不同领域。M内核[iii]应用在一些对成本较为敏感的微控制器领域,R内核主要应用在实时控制领域,而A内核用于手机与PC领域。

ARM11之后,ARM处理器内核不再以ARM作为前缀[iv]。ARM公司取消这个前缀完全出于迷信的考虑[v]。在ARM的历史上,所有以偶数结尾的ARM内核,包括ARM2,6,8和10,都没有获得成功。ARM不想使用12,而13似乎更加糟糕,于是换了一个新的名字。ARM这个单词并没有在Cortex系列中消失,Cortex的三大系列M-R-A,合起来就是ARM。

更替前缀的内核,已焕然一新。Cortex A8内核的DMIPS指标达到了2.0DMIPS/MHz,这与ARM11相比取得了巨大的进步。Cortex A8处理器在大幅提高性能的同时依然保持了低功耗优势。一个含有32KB的指令和数据Cache,256KB的L2 Cache的Cortex A8,在使用600MHz的时钟频率时,总功耗仅为300mW[vi]。

Cortex A8内核不再使用简单的Enhanced DSP指令,而是引入了NEON部件。NEON的功能与Intel的SSE类似,用于支持SIMD类指令。Cortex A8是第一颗引入Superscaler技术的ARM处理器。在每个时钟内,Cortex A8可以并行发射两条指令[111]。出于降低功耗的考虑,Cortex A8内核使用了静态调度的流水线和顺序执行方式。

为了进一步提高时钟频率,Cortex A8内核使用了13级的整型指令流水线和10级NEON指令流水线,流水线级数高于ARM11内核的8级。流水线级数的增加有利于处理器主频的提高,却对指令分支预测的成功率提出了更高的要求。

Cortex A8在ARM11的基础上,将BTB使用的Entry数目从64增加到512,同时设置了GHB(Global History Buffer)和RS(Return Stack)部件。这些措施极大提高了指令分支预测的成功率,从ARM11的88%提高到Cortex A8的95%[112]。

Cortex A8在Cache的设计中,首次引入了Way-Prediction部件。在现代处理器中,Cache由多个Way组成,如8-way,16-way或者32-way。Way-Prediction部件的主要功能是预测当前Cache访问将使用哪个Way,可以暂时关闭不使用的Cache行,以到达节电的目的。Intel从Pentium M处理器起也使用了这种Cache访问方式,并一直应用到x86处理器的后续产品中。Atom处理器也可能使用了这种方式。

与ARM11相比,Cortex A8内核在Cache Memory系统上,进行了较大的优化。Cortex A8内核访问L1 Cache时只需一个时钟周期,而ARM11需要使用两个。Cortex A8支持L2 Cache,大小为128KB~1MB,ARM11虽然也支持L2 Cache,却几乎没有被SoC厂商使用。Cortex A8可以使用64位或者128位总线连接外部设备,ARM11只能使用64位总线。

Cortex A8使用了Architecture-Gating和Functional-Gating两种技术进一步降低功耗。所谓Architecture-Gating是指,处理器内核执行WFI(Wait for Interrutp)指令之后,将进入idle-loop模式。Cortex A8的Functional-Gating技术的本质是使用Clock-Gating技术,分离各个功能部件。当处理器运行运算时,不相关的功能部件,如Cache,指令队列,Write Buffer和NEON所使用的时钟可以临时切断,以达到节电的目的。Clock-Gating技术的大规模使用使得Cortex A8内核获得了300mw/600MHz的功耗频率比[111]。

在前45nm时代,Clock-Gating技术也已经在x86处理器上得到了广泛的使用,Cortex A8之所以获得了高于x86处理器的性能功耗比的重要原因,一是使用了更少的晶体管,二是因为没有如x86那样去挑战处理器运算能力的极限。

在Cortex A8之后,ARM加快了处理器内核的更新速度,每3年就会推出一个A系列处理器内核。这个速度远低于Intel的Tick-Tock。而对于人数不满两千,同时要兼顾Cortex R和M系列内核升级的ARM,已经是一个不小的奇迹。

2007年10月3日,Cortex A9正式推出[113]。Cortex A9具有两个版本,一个是传统的单内核,另一个是MPCore,最高主频可达2.0GHz,最多支持4个内核。Cortex A9的整型运算的性能在Cortex A8的基础上提高了25%,达到了2.5DMIPS/MHz和2.9CM/MHz[43][114],恰好超过Atom处理器的2.4DMIPS/MHz和2.8CM/MHz[vii]。

Cortex A9采用了更高的成产工艺,整型流水线的级数虽然只有8级[viii],时钟频率却高于Cortex A8。在Cortex A9中,ARM引入了高端处理器常用的乱序执行(Out-of-Order)和猜测执行(Speculative Execution)机制,进一步扩大了L2 Cache的容量(128KB~8MB),可使用Snooping和Directory两种机制实现Cache的一致性。

与Cortex A8相同,Cortex A9依然使用MESI模型进行Cache的共享一致性,但是对MESI模型进行了许多优化,支持更多的Cache-to-Cache传送方式,进一步减少了处理器对主存储器的访问[114][115]。

这些更新极大地提高了Cortex A9的性能。从Cortex A9开始,ARM处理器正式完成了对Atom内核性能上的超越,Cortex A9在性能上超越的不仅是Atom,还包括同时代用于嵌入式系统的处理器,如PowerPC和MIPS处理器[115]。ARM依靠性能功耗比的日子已一去不复返。但是Cortex A9距离Intel的主流处理器,Nehalem,Westmere和Sandy Bridge处理器依然有不小的差距。

ARM并没有停下脚步,2010年9月8日,代号为Eagle的Cortex A15正式发布[116]。对于Intel,狼外婆终于来了。Cortex A15内核并不是Cortex A9的继承者,Cortex A9虽然与Cortex A8的功能较为相近,也不是完全的继承关系。

与Intel频繁更新处理器内核的策略并不相同,ARM内核具有更长的生命期。1993年发布的ARM7内核仍然在被大规模使用。Cortex A8,A9和A15这三颗内仍将在相当长的一段时间里并存,深入到嵌入式应用的各类高端领域。

Cortex A15拥有足够的性能,具备了进军Laptop和Server领域的能力。在未来的3到5年里,Cortex A9和Cortex A15组成的ARM处理器阵营将与Intel的Atom,Sandy Bridge处理器展开全方位的较量。

Cortex A15最高主频将达到2.5GHz,支持8个内核,采用Superscaler流水线技术,具有1TB的物理地址空间,支持虚拟化技术,乱序执行,寄存器重命名,并行设置了多个执行单元。在现代高端处理器技术中涉及的技术几乎都可以在这个内核中找到。Cortex A15的性能将在Cortex A9的基础上继续提高50%。ARM公司尚未公开Cortex A15的功耗指标,但是可以预计在性能大幅提高的前提下,Cortex A15的功耗也必随之大幅提高。

首先是处理器主频的提高。Cortex A15使用了超长的24级流水线结构[ix],前12级用于指令预取,译码与分发,这部分指令流水是顺序执行的;后3~12级用于指令的执行,在这一阶段,指令可以乱序执行[117][118]。

超长的流水线结构利于处理器主频的提高,但是与Cortex A8相比,在使用相同的工艺时Cortex A15的主频仅仅提高了10%[117],以此推测Cortex A15使用的超长流水线,可能是为了降低功耗。

Cortex A15另外40%的性能提高,需要流水线其他部件和Cache Memory系统的协调工作。Cortex A15必须极大增强分支指令的预测命中率。过长的流水线也意味着巨大的流水线中断惩罚。Cortex A15分支预测部件的工作原理与Cortex A8/9基本相同,只是将BTB的条目增加到了2K个,而且采用2-Way组相连结构。

Cortex A15的GHB由Taken阵列,Not Taken阵列和Seletor阵列[x]组成。Cortex A15对非直接跳转指令进行了一些优化,设置了256个Entry的BTB阵列,每一个Entry可以存放多个目标地址。除此之外Cortex A15还引入了具有64个Entry的,使用全互连结构的MicroBTB。Cortex A15的这些功能增强进一步提高了转移指令的命中率,但是与Nehalem处理器的分支预测单元相比仍有不小的差距[117]。

Cortex A15的流水线与Cortex A8的基本结构较为类似,由Fetch,Decode,Rename,Dispatch,Neon/VFP,Interger Issue和Load/Store Issue等部件组成,只是在Cortex A15中,指令需要更多的时钟节拍才能通过这些部件[117]。例如在Cortex A15中,Fetch单元由5级组成,Decode单元由3级组成[117]。

Cortex A15的指令预取总线的宽度为128b,一次可以预取4~8条指令,与Cortex A9相比,提高了一倍。Decode部件一次可以译码3条指令,而Cortex A9一次可以译码2条指令。

Cortex A15引入了Micro-Ops的概念。Micro-Ops指令与x86的μops指令表现形式不同,但是基本想法较为类似。在x86处理器中,指令译码单元将复杂的CISC指令转换为等长的μops指令,再进入指令流水线中运行;而在Cortex A15中,指令译码单元将RISC指令进一步细分为Micro-Ops,以充分利用指令流水线中的多个并发执行单元。Cortex A15的Decode部件在一个时钟节拍内可以同时译码3条指令,并将这3条指令转化为5个Micro-Ops[117]。

Cortex A15提高了Interger Issue部件的发射能力,从Cortex A9的3条提高到4条,同时分离了Cortex A9的Load/Store Issue部件,具有独立的Load和Store部件,并开始在流水线使用128位宽的数据总线。

Cortex A15还使用了32个Entry的Loop Buffer,当处理器执行一段较长的循环指令时,指令流水线将直接从Loop Buffer中获得Micro-Ops,而无需使用Fetch和Decode部件。此时这两个部件可以暂时关闭,以节约功耗。Intel在Core 2架构中也使用了相同的机制[119]。

从体系结构的角度上看,Cortex A15对于ARM处理器自身是一次飞跃,但是与Intel的Nehalem/Sandy Bridge处理器相比,仍处于入门阶段。上文所提到的在Cortex A15中出现的技术,对于Nehalem处理器都是微不足道,更不用说是Sandy Bridge处理器。但是Cortex A8/9+Cortex A15依然可以凭借性能功耗比向Atom+Nehalem/Sandy Bridge处理器发起强有力的冲击。

制约x86处理器继续向前发展的主要原因有两个。一是Intel已经处于处理器体系结构的最前沿,每前进一步的代价过于巨大,Cortex A15虽然取得了巨大进步,但是仍处于高端处理器的入门阶段,仍有巨大的潜力。更重要的是,跟随者可以以更小的代价获得最新的技术。另外一个原因就是Intel的向前兼容策略,在某种程度上束缚了Intel前进的步伐。

ARM公司一再强调Cortex系列处理器的性能功耗比的优势,也在不自觉地掩饰ARM处理器相对较为简单的架构。从处理器体系结构本身出发,决定一个处理器功耗的最直接的要素依然是使用的晶体管数目。x86系列处理器功耗较高的主要原因是集成了较多的晶体管。在ARM处理器中使用的低功耗技术没有哪一个是独门绝技,这些技术也出现在x86系列的处理器中,包括Atom处理器。

从低功耗的设计理论上讲,一个处理器的功耗主要由动态功耗和静态功耗两部分组成。而对于CMOS电路,动态功耗主要由开关功耗和短路功耗两部分组成,公式描述如下。

Pdyn = (CL × Ptrans × Vdd2 × fclock) + (tsc × Vdd × Ipeak × fclock) [120]

其中CL指电路总负载电容,Ptrans指工作电路所占的比例,Vdd指工作电压,fclock指工作频率。而tsc指PMOS和NMOS同时打开的时间,在多数情况之下tsc的值较小,因此上述公司的后半段几乎可以忽略不计,因此Pdyn ≈ (CL × Ptrans × Vdd2 × fclock)。

其中CL参数由电路设计的复杂度决定,这也是x86处理器和ARM处理器目前功耗差距的最重要来源。Ptrans参数由处理器设计的电源管理策略决定,这也引出了一个低功耗设计的热点问题,处理器的低功耗设计更应侧重于在不同的场景之下,功耗的使用情况,而不应关注平均值。放之四海而皆准的电源管理最优策略并不存在,没有人能做到又让马儿跑,又让马儿不吃草。

Vdd参数的降低可以有效的降低功耗,近些年Vdd的值在不断下降,从5.0V,3.3V,2.5V到1.2V和0.8V。Vdd的不断下降,Vt[xi]也随之降低,不断降低的Vt最终导致Isub[xii]呈指数上升,反而极大了增加了静态功耗,这个现象在45nm及以下工艺的设计中更为凸现。fclock更似一面双刃剑。频率的提升有利于性能的提高,却也极大提高了功耗。

从CL和Ptrans两个指标上分析,不难发现ARM在CL层面上做得更好,更简练的设计决定了ARM处理器的低功耗。在Ptrans层面上分析,x86更胜一筹,x86处理器在ACPI规范中定义了一系列处理器状态,运比ARM处理器定义的状态复杂。x86处理器获得了较低的Ptrans值,但也无法掩盖因为较高的CL而获得的总功耗。

随着处理器制作工艺的不断前进,静态功耗所占的比例在不断地提高,这使得一些可以显著降低动态功耗,却提高了静态功耗的技术不再适用。静态功耗是指在晶体管处于上电状态时,晶体管的漏电流(Leakage)引发的功耗。漏电流主要由ISUB,IGATE,IGIDL和IREV组成。使用45nm工艺时的静态功耗是90nm工艺的6.5倍,使用32nm,22nm工艺时,静态功耗所占的比例呈指数上升[120]。

这些变化使低功耗的设计从降低动态功耗逐步转移到降低静态功耗上,在实现策略上从Clock Gating逐步转移到Power Gating。在Cortex A8处理器中,ARM将Clock Gating技术发挥到了极致,而由于缺乏工艺上的领先,在Power Gating领域上落后于Intel。从纯技术的角度上看,无论在降低动态功耗还是静态功耗的领域上看,Intel都是领先的。Intel在工艺上领先的事实,也在一定程度上说明了从门级电路的实现上看,天下半导体厂商的合力尚不足与之抗衡。

Intel却没能实现性能功耗比最优的处理器,这是技术之外的故事。在商业上,Intel一直坚持着向前兼容。多年以来Intel依靠向前兼容,战胜了一个又一个对手。向前兼容需要额外使用更多的晶体管数量,在服务器领域,因为保留向前兼容所浪费的晶体管并不是太大的问题,在手机领域却不容忽视。

Pentium Pro处理器大约使用了30%的晶体管数目处理x86向前兼容,包括Microcode ROM,指令译码和控制逻辑[121],而Pentium Pro处理器一共使用了5.5M个晶体管数目[36]。但是不要认为x86处理器在处理向前兼容时仅仅需要使用1.65M颗晶体管。因为除了进行指令转换(Instruction Transforming)这段逻辑之外,随着L1指令Cache的增加,向前兼容所付出的代价也在等比例上升。由于乱序存储器访问模型的出现,向前兼容需要付出更大的代价。

Atom处理器在实现中使用了In-Order的流水线,并没有采用乱序执行的μops指令流水线,在很大程度上也在回避着因为向前兼容而带来的巨大惩罚[xiii]。x86处理器继续背着向前兼容的大山,与针对性能功耗比进行了一轮又一轮优化的Cortex系列之间的竞争并不公平。

对Intel更不公平的是其长期坚持的通用平台战略。因为Intel的努力,PC处理器更加标准,更加通用,更加廉价。通用平台使得Intel获得了巨大的成功,却在一定程度上阻碍了Intel进军嵌入式领域。

嵌入式领域是一个备受Intel通用平台战略挤压的系统,通用处理器每进一步,嵌入式处理器便后退一步。嵌入式处理器在不断后退,不断细分的过程中,顽强地活了下来,根深蒂固地坚守了自己的阵地,回首却发现一直在前进的通用处理器x86,生活在最大孤岛中,被其包围得密不透风。这一次x86处理器需要从孤岛中游回彼岸,却无法使用ARM阵营的细分市场策略。

Intel和ARM两个公司本身并不具备可比性。自1992年起,Intel一直在半导体厂商中排名第一,ARM公司从来没有进入过半导体厂商的排名,甚至可以说ARM并不是一个半导体厂商,ARM没有生产过一颗商用处理器。Intel一年的销售额是几十个Billion,ARM仅为几百个Million。Intel有7,8万名员工,ARM仅有1700余名员工。

单独的ARM没有办法与Intel比较,但是ARM阵营所蕴含的能量却足以与Intel的x86阵营抗衡。在2009年排名TOP20的半导体厂商,除了Intel,AMD和Elpida之外,全部License了ARM内核。不仅如此ARM阵营还包括Apple,Microsoft和Google。诸多形态各异厂商的参与使ARM阵营更加立体化。

在x86处理器阵营中,AMD近期很少有声音[xiv],VIA在持续的亏损,真正努力的只剩下Intel。在Intel的Ecosystem中,除了Intel和提供基础BOIS的厂商外,其他的OEM/ODM并没有在处理器体系结构方面给予Intel必要的帮助。有些OEM厂商更像是依托在x86处理器之上的寄生虫。

严酷的外部环境使得Intel需要使用统一平台战略进入嵌入式市场,虽然这个策略与嵌入式系统要求的进一步定制,进一步细分的原则背道而驰。Intel依然不能在统一平台上有所动摇,目前以及在很远的将来,x86处理器阵营都无法向ARM处理器那样深入到嵌入式的每一个领域。多数嵌入式领域所提供的空间也无法容纳Intel这样的庞然大物。

Intel的目标非常明晰,就是手机处理器。在手机领域ARM处理器处于垄断地位,在技术上Intel并非没有任何机会。与ARM处理器相比,Intel的Atom处理器性能功耗比较为落后,但这并不是Intel在技术上的最大劣势。从整型运算的角度上看,Cortex A9略高与Atom处理器,而Atom处理器在Cache memory的表现更优。内核上的相比,两者各有千秋。

最令Intel尴尬的是,x86处理器并没有一个与AMBA总线类似的SoC平台总线,这是Intel进军嵌入式领域一个不小的障碍。Intel或者定义一条全新的SoC平台总线,或者集成AMBA总线。从加速推出产品的角度上,直接使用AMBA总线无疑是一条捷径。而世上没有捷径,从更长远的时间上看,借用AMBA总线,会使ARM阵营更加强大。最初的所谓捷径不过是为他人做的嫁衣裳。

Intel很难有其他选择。在x86处理器系统中广泛应用的PCIe总线,不能使用在SoC内部。这条总线的设计目标是作为局部总线,连接片外的外部设备。PCIe总线提供巨大的带宽的同时,带来了较大的传送延时。更为重要的是与基于AMBA总线的外部设备相比,基于PCIe总线的外部设计需要使用更多的资源,也带来了更大的功耗。PCIe总线的低功耗设备,与AMBA总线的低功耗设备,在性能功耗比上没有可比性。

AMBA总线阵营的强大超乎多数人的想象。AMBA总线是一个在SoC领域使用的事实上的标准。AMBA总线V1.0于1995年正式发布[122],用于SoC内部各个模块间的互联,支持多个主设备,支持芯片级别测试。在AMBA V1.0中定义了两条总线,ASB(Advanced System Bus)和APB(Advanced Peripheral Bus)。V1.0还定义了一个连接存储器的外部接口,这个外部接口可以用做测试。

ASB总线是一个快速总线接口,使用独立的地址数据总线,支持流水传送方式,支持多个主设备与从设备,采用集中译码和仲裁方式。ASB总线的主要作用是连接CPU,DMA引擎,内部存储器和一些快速外部设备。APB总线连接一些慢速设备,APB是ASB的Secondary Bus,两者的关系如图4所示。





图4 ASB与APB的组成结构[123]



从今天的技术上看,AMBA V1.0总线十分简陋,设计这样的总线标准甚至可以作为几个研究生的毕业论文。AMBA总线的最大优点是开放的架构,和因此带来的免费[123]。开放的总线标准使AMBA总线迅速普及,而且更易吸收整个半导体界的成果。

1999年AMBA总线更新到V2.0[124],增加了一个新的总线AHB(Advanced High-Performance Bus)。AHB总线取代了ASB在系统中的位置,使ASB进一步下移,增加了Split传送方式进一步提高了存储器读的效率,总线宽度最高可达128位。

2001年,ARM发布了AMBA V3.0总线规范,引入ATB(Advacned Trace Bus)和AXI(Advanced eXtensible Interface)总线。AXI总线的引入,使AMBA总线迈向新的台阶,性能已经可以与IBM的CoreConnect抗衡[126]。

AXI是一条现代总线。AXI总线分离了一个总线周期的地址阶段和数据阶段,更便于实现在现代总线中常用的Pipelining和Split技术。AXI总线进一步分离了总线通路,将AHB的单通路分解为Read Data,Read Address,Write Data,Write Address和Write Response共5个独立通路,进一步加速了对存储器的读写访问。

AXI总线接口逻辑设计较为复杂,与AHB总线相比多使用50%的资源。AXI的一次总线周期至少需要传送64字节的数据,而AHB总线是16字节,这也导致AXI总线的传送延时高于AHB总线[125]。AXI总线的目标不是用于替换AHB总线,在一个SoC中,AXI总线和AHB依然并存,只是AXI总线更接近ARM内核,AHB总线更贴近外部设备。

AMBA总线阵营规范了嵌入式领域的平台总线,日益壮大。2010年3月8日,ARM正式推出AMBA V4.0总线,引入了QoS机制,进一步增强了多层结构,将AXI总线细分为AXI4,AXI-Lite和AXI-Stream[127]。

这一切并不是AMBA V4.0最重要的更新。如同Nehalem内核最重要的变化并不是流水线,而是QPI互联结构[xv],在AMBA4总线中最值得注意的是片间互联总线CoreLink CCI[xvi](Cache Cohenrent Interconnect)架构。

CoreLink CCI架构使得多个SMP系统之间实现Cache共享一致性成为可能,Cortex A15也借此超越了用于嵌入式领域的PowerPC和其他多核MIPS[xvii]。在整个处理器总线阵营中只有IBM的CoreConnect和Intel的QPI可以与之抗衡。CoreLink的横空出世,使Cortex A15具备了和Intel的高端处理器Nehalem和Sandy Bridge抗衡的能力。在服务器领域,Cortex A15内核与Nehalem内核间的较量就是CoreLink和QPI之间的角逐。

AMBA总线标准提供的AXI,AHB,ASB,APB和ATB总线,不仅使用在ARM处理器系统中,MIPS和PowerPC处理器也开始使用AMBA总线。TI和Freescale的DSP也在使用AMBA总线。AMBA总线已经无孔不入,在整个嵌入式领域,没有可以向其挑战的对手[xviii]。

面对ARM内核,Intel并不畏惧,面对AMBA总线阵营,Intel只剩下无奈。可以预计在相当长的一段时间里,Intel无法推出一条能和AMBA总线抗衡的SoC平台总线。Intel只能暂时向AMBA总线示弱。

Intel自身具有强大的图形处理芯片,却在Moorestown平台中不得已使用了PowerVR SGX 535[128][129]图形处理芯片。PowerVR SGX 系列也是Apple A4,Samsung Hummingbird和TI的OMAP4处理器使用的图形处理芯片。

基于低功耗的考虑,Intel依然需要依赖ARM阵营提供的外部设备。如果最终的结局是Atom处理器依赖AMBA外设战胜了Cortex内核,Atom处理器仍然会被ARM阵营重新绑架。对于多数厂商,通过简单的系统集成,快速推出市场需要的产品是第一位的,而这些厂商却无法获得更高利润。

ARM的廉价License策略实际上已经清楚地向Intel转告了一个事实,单纯依靠处理器内核无法在嵌入式领域取得暴利。无法获取暴利的领域是不会有持续的资金注入。Intel并不会例外。也许Intel一直等待Medfield平台的成熟。但是不要给予这个平台太多期望。Medfield,这颗Intel有史以来第一个基于Atom处理器单芯片解决方案[130],如果仅是将Moorestown平台的Lincroft处理器和Langwell和二为一,前景并不光明。更为重要的是Medfield平台提供的外设,很难与ARM平台的外设阵营抗衡。

在外部设备领域,ARM不是一个人在战斗,而是利用AMBA总线控制了整个半导体界。整个世界已有的用于手机的处理器平台都在使用基于AMBA总线的各类外设,而没有一个使用基于PCI/PCIe总线的外部设备。

Intel的Medfield平台可能的优势依然是在处理器内核上战胜Cortex A9和A15。而这一切对于Atom Z6xx内核来说几乎是一件不可能完成的任务。可以预见,Medfield平台依然与基于Cortex A9内核的手机平台旗鼓相当。而对于后入者,仅靠旗鼓相当,很难获取太多的市场份额。

在抛开技术之后,Intel所面临的处境愈加艰难。Wintel帝国统治IT世界已有多年,芸芸众生对Wintel帝国产生了严重的审美疲劳。Intel需要进入的手机领域,与其说被ARM把持,不如说被剩余的所有半导体厂商把持。Intel动了ARM的奶酪也意味着动了全天下半导体厂商的奶酪。Intel的进军手机领域更像是一场大的赌博,没有人知道结局。可以肯定的是,Intel在放弃了XScale架构之后,不会轻易地放弃Atom架构。

也许Intel需要急迫解决的并不仅是技术问题。与许多巨型公司相似,最大障碍不在颛臾而在萧墙之内。与不到2000员工的ARM相比,来自Intel内部的故事复杂得多,也深刻得多。多年以来,Intel在PC领域取得巨大成功的同时,也滋生了巨大的执拗。x86处理器之前取得的辉煌,使得改变成为Intel一个尽力回避的观念。

Medfield平台的成功,对于Intel可能不是一件好事。也许Intel需要的是一场大的失败,因为使用失败统一内部意见往往比胜利容易得多。2011年,Intel将发布Medfield平台。ARM阵营也许依然会战胜Medfield平台。

这一切仅是决战的开始。永远不要低估Intel这位巨人的心。

有关Atom处理器与Cortex A9的性能对比见ATOM的前生今世。

[ii] 传统的Atom处理器伴随着Cortex A15的发布,已经死去。

[iii] M内核实际上不是ARM内核,而是16位的Thumb 2内核。

[iv] 对我而言这是一件非常快乐的事情。从这时起,我再也不用写ARM公司的ARM7内核这样绕口的文字了。

[v] 没有找到ARM的官方说法,所以没有列出参考文献。这个说法很可能是我在ARM公司工作的一个朋友的谣言。

[vi] 该功耗指标基于65nm LP工艺。

[vii] 我更相信这是Cortex A9处理器的预谋。Cortex A9可以超过的更多,不过ARM选择将更多的风头留给Cortex A15。

[viii] 8级流水做到了2.0GHz,又是乱序,又是猜测访问,又是多发射,实在是佩服。

[ix] 使用了这么长的流水线,却不是为了提高主频,想必是基于降低功耗的考虑。应该有些独特的设计,目前尚无找到详细描述。Cortex A15的这种做法有别于x86。

[x] 在多数处理器中,GHB具有4个状态Taken,Not Taken,Weekly Taken和Weekly Not Taken,Cortex A15将后两种状态合并。采用这种方法可以进一步减少晶体管数目,但其效果仍需观察,目前尚未找到采用这种方法的最终量化分析结果。

[xi] Vt指电压的门限值,用来识别0,1逻辑。

[xii] Isub指亚域值漏电流,即从Drain经过弱反形层流向Source的电流。

[xiii] 随着纳米技术的不断向前发展,因为向前兼容所浪费的晶体管数目在整个Die中所占的比例在不断缩小。但是向前兼容却为处理器的设计造成了巨大的困难。因为照顾向前兼容,采用了非最优的设计而浪费的晶体管数目很难统计。

[xiv] AMD近期发出的声音是加入Intel和Nokia主导的Meego阵营。AMD这种态度,在很大程度上是在向世界承认弱者的地位,和不争第一的雄心壮志。只希望在未来的几年,当Intel与ARM激战正酣时,AMD不要再去抄Intel的后路。

[xv] 笔者之所以认为Nehalem内核是Intel的第三个里程碑,是因为QPI互联机制,而不是Nehalem内核本身。如果单指Nehalem内核,AMD完全可以开发出与此性能相当的内核,而QPI的基于Directory机制的Cache共享一致性机制,将使AMD放弃追赶。多年以来,IBM和HP高端服务器的附加值都是在如何进一步增强Cache一致性模型。Nehalem在芯片内部解决了这个问题之后,HP,IBM服务器和台湾OEM厂商生产的基于Nehalem内核的服务器将质的差别。

QPI是一个较为复杂的机制,Intel员工可以参考Nehalem Microarchitecture手册。Robert A. Maddox, Gurbir Singh和Robert J. Safranek书写的Weaving High Performance Multiprocessor Fabric是唯一一本介绍QPI的书籍。目前与QPI相关的论文并不多。

[xvi] 感谢弯曲评论的陈先生提出的宝贵意见,Tektalk上有一篇关于CoreLink的简介,比我提到的这些完整得多,请参阅http://www.tektalk.org/2010/11/28/arm的薄积与薄发-浅谈arm的interconnect的战略。

[xvii] Freescale的QorIQ系统处理器引入了CoreNet架构,而这个架构并不能实现多个SMP系统的Cache共享一致性。RMI和Cavium的MIPS多核也没有完美地解决这些问题。如果用一条总线基于Snooping技术,连接2~4个内核还可以,8个内核十分困难。

Cache的共享一致性是一个异常沉重的话题,其难度超越了绝大多数处理器爱好者的想象,可以负责任地讲,在整个高端处理器领域中,最困难,最难以有突破的重中之重,依然是Cache Memory系统。

[xviii] 从技术的角度上讲,x86处理器内部的系统总线和QPI互联机制依然比AMBA4复杂得多,但是这些机制仅使用在Intel的x86处理器中。















ARM与x86--参考文献


[1]    Intel [2007]. http://www.intel.com/technology/tick-tock/
[2]    Bajarin, Tim [2010-01-04]. "Can Wintel Survive? - Columns by PC Magazine". Pcmag.com.http://www.pcmag.com/article2/0,2817,2341868,00.asp. Retrieved 2010-01-1.
[3]    Richard S. Tedlow [2006-11-02]. Andy Grove: The Life and Times of an American.
[4]    Michael A. Cusumano [1998-12-04]. Microsoft Secrets: How the World's Most Powerful Software Company Creates Technology, Shapes Markets and Manages People.
[5]    Joachim Kempin's December 16, 1997 Memo on MS OS pricing. http://lists.essential.org/1998/info-policy-notes/msg00055.html.
[6]    Craig R. Barrett. Retired CEO/Chairman of the Board.http://www.intel.com/pressroom/kits/bios/barrett/bio.htm.
[7]    Erich Luening [1997-10-27]. Intel, Digital settle suit. CNET News. http://news.cnet.com/2100-1023-204668.html. Retrieved 2008-07-29.
[8]    Halfhill, Tom R. [1999-09-13]. Intel Network Processor Targets Routers. Microprocessor Report.
[9]    Rajendra Persaud, Dirk Sabath, Gerald Berghoff, Ralf Schanko [2006]. Performance Evaluation of MPLS and IP on an IXP1200 Network Processor," aina, vol. 2, pp.413-417,20th International Conference on Advanced Information Networking and Applications - Volume 2 (AINA'06).
[10]    Gokhan Memik, William H. Mangione-Smith, Wendong Hu [2001]. NetBench: a benchmarking suite for network processors. Proceedings of the 2001 IEEE/ACM international conference on Computer-aided design.
[11]    Deepa Srinivasana and Wu-chang Feng [2005-09]. Performance analysis of multi-dimensional packet classification on programmable network processors. Computer Communications Volume 28, Issue 15, 15 September 2005, Pages 1752-1760. CNET news.
[12]    Dawn Kawamoto and Tom Krazit[2006-06-27]. Intel sells off communications chip unit. CNET news.
[13]    Rick Merritt [2007-11-12]. Intel shifts network chip to startup. http://www.eetimes.com/electroni ... rk-chip-to-startup.
[14]    ITU Press[2007-10-19]. ITU defines the future of mobile communications ITU Radiocommunication Assembly approves new developments for its 3G standards.
[15]    Loring Wirbel [2007-10-19]. ITU includes WiMax in IMT-2000 wireless suite.http://www.eetimes.com/electroni ... 000-wireless-suite.
[16]    Intel Press Room [2006-01-05]. Intel CEO: Latest Platforms, Processors Form New Foundations For Digital Entertainment And Wireless Computing.
[17]    Intel Tick-Tock. http://en.wikipedia.org/wiki/Intel_Tick-Tock.
[18]    Todd Bishop [2008-06-28] Amid cheers and tears, Gates says goodbye, He ends an epic career as full-time Microsoft leader.
http://www.seattlepi.com/business/368824_gatesfinal28.html.
[19]    http://moblin.org/about-moblin.
[20]    Dan Grabham [2010-02-15]. Intel and Nokia merge Moblin and Maemo to form MeeGo, New OS goes up against Android. http://www.techradar.com/news/ph ... -form-meego-670302.
[21]    Mary Jo Foley [2009-06-03]. Microsoft: No Windows 7 for ARM-based netbooks.http://www.zdnet.com/blog/micros ... books-for-now/2953.
[22]    Mary Branscombe [2010-04-13]. Will Windows 8 run on ARM processors?http://www.techradar.com/news/so ... processors--683227.
[23]    ARM Ltd.[2010-07-23]. Microsoft Licenses ARM Architecture.
[24]    Benj Edwards [2008-06-17]. Birth of a Standard: The Intel 8086 Microprocessor.
http://www.pcworld.com/article/1 ... icroprocessor.html.
[25]    Richard E. Smith. A Historical Overview of Computer Architecture. IEEE Annals of the History of Computing. Retrieved on Oct. 1988.
[26]    Lincoln Spector: The IBM Personal Computer's 25th Anniversary. PC World. Retrieved on Aug. 2006.
[27]    Evan Blass [2007-04-06]. Intel poised to unveil new UMPC platform?http://www.engadget.com/2007/04/ ... new-umpc-platform/.
[28]    Anand Lal Shimpi [2008-04-02]. Intel’s Atom Architecture: The Journey Begins.
[29]    Anand Lal Shimpi [2010-05-04]. Intel Unveils Moorestown and Atom Z600, The Fastest Smartphone Platform?
[30]    Intel News[2009-09-23].Intel's Priority: A Total Mobile Computing Experience.
[31]    Linux Device [2007-06-06]. Asus unveils ultra-low-cost Linux laptop.  http://www.linuxdevices.com/news/NS9292516116.html.
[32]    Chen, Shu-Ching Jean [2007-06-07]. $199 Laptop Is No Child's Play.http://www.forbes.com/markets/20 ... _0606markets3.html.
[33]    Linley Gwennap [1995-02-16]. Intel’s P6 Uses Decoupled Superscalar Design.
[34]    Tom R. Halfhill [2009-04-07]. Intel’s Tiny Atom. Microprocessor Report.
[35]    Intel [2008]. Intel 64 and IA-32 Architectures Software Developer’s Manual Volume 3B: System Programming Guide.
[36]    Tom Shanley [2004-07]. The Unabridged Pentium 4. Addison-Wesley.
[37]    Brad Beavers [2009-03]. The Story Behind the Intel Atom Processor Success.
[38]    D.M. Tullsen, S.J. Eggers, and H.M. Levy [1995-06]. Simultaneous Multithreading: Maximizing On-Chip Parallelism. In 22nd Annual International Symposium on Computer Architecture.
[39]    Thornton, J. [1970]. Design of a Computer--The Control Data 6600.
[40]    Diefendorff, Keith [1999-12-0]. Compaq Chooses SMT for Alpha". Microprocessor Report, Volume 13, Number 16.
[41]    Emer, Joel [1999]. Simultaneous Multithreading: Multiplying Alpha Performance. Proceedings of Microprocessor Forum 1999.
[42]    Richard Wilson [2008-11-18]. Intel quad-core Nehalem processor breaks record.http://www.electronicsweekly.com ... -breaks-record.htm.
[43]    Linley Chips In [2010-04-12]. ARM Outmuscles Atom on Benchmark.  http://blog.linleygroup.com/2010 ... -on-benchmark.html.
[44]    Youtube demonstration video. http://www.youtube.com/watch?v=W4W6lVQl3QA.
[45]    John Morris [2010-01-07]. Intel Makes Westmere Official, 32nm quad-core “not far away”.http://www.zdnet.com/blog/comput ... -not-far-away/1173.
[46]    Jennifer Scott [2010-07-28]. Intel announces 22nm chip plans Chip giant Intel unveils details of Knights Corner, designed for high performance computing.http://www.itpro.co.uk/623848/intel-announces-22nm-chip-plans.
[47]    ARM Newsroom [2010-02-15]. GLOBALFOUNDRIES and ARM Define the Standard for Mobile Technology Platform Innovation at MWC 2010.http://www.arm.com/about/newsroo ... on-at-mwc-2010.php.
[48]    Robert McMordie[2004-04-19]. A technical history of Acorn Computers.http://www.mcmordie.co.uk/acornhistory
[49]    By Roy A. Allan[2001]. A history of the personal computer: the people and the technology.
[50]    Per Sparre[1987]. Computer programs for fish stock assessment: length-based fish stock assessment for Apple II computers.
[51]    Simon Booth[1999]. Report on Network Computer Technology. European Commission.
[52]    Kerry McGuire Balanza[2010-05-11]. ARM from zero to billions in 25 short years.
[53]    Carol Atack and Alex van Someren[1993]. The ARM RISC Chip: A Programmers' Guide'.
[54]    BBC News[2007-12-29]. Home computing pioneer honoured".http://news.bbc.co.uk/2/hi/technology/7162935.stm.
[55]    Roger Wilson [1988-11-02]. Some facts about the Acorn RISC Machine.
[56]    Nytimes[1996-07-02]. INTERNATIONAL BRIEFS; Olivetti Sells Shares in Acorn Computer.
[57]    Tom Hormby[2006-02-07]. The Story Behind Apple's Newton.
[58]    Steve Jobs[2010-07]. Steve Jobs keynotes, San Francisco.
[59]    Charles R. Moore and Russel C. Stanphill: The PowerPC Alliance. Communications of the ACM. Retrieved on Jun. 1994.
[60]    Acorn Group and Apple Computer Dedicate Joint Venture to Transform IT in UK Education, press release from Acorn Computers, 1996.
[61]    Edward McLellan[1993-05]. The Alpha AXP Architecture and 21064 Processor. IEEE Micro Volume 13, Issue 3 Pages: 36 - 47.
[62]    Anton Shilov: 10 Years with Intel Pentium Processor. X-Bit Labs. Retrieved on Mar. 2003.
[63]    Bill Hamburgen, Jeff Mogul, Brian Reid, Alan Eustace, Richard Swan, Mary Jo Doherty, Joel Bartlett [1989]. WRL Technical Note TN-13: Characterization of Organic Illumination Systems. Digital Equipment Corporation.
[64]    SEC Web site retrieved January 22, 2008.
[65]    Randy Schultz[1998-01-26]. Compaq to buy DEC, Compaq snags Digital in $9.6 billion deal, plans to expand AltaVista. http://money.cnn.com/1998/01/26/technology/compaq.
[66]    Gale Bradley and Jim Detar[1997-05-19]. DEC, Cyrix sue Intel. Electronic News 43, #2168, ISSN 1061-6624.
[67]    Elizabeth Garnsey and Gianni Lorenzoni[2008-03]. Speciation through entrepreneurial spin-off: The Acorn-ARM story.
[68]    Digital Equipment Corporation[1996-02-05]. Digital Targets Supercharged StrongARM Chip At Consumer Electronics Market.
[69]    Turley, Jim[1996-11-18]. Newton First Design Win for StrongARM. Microprocessor Report.
[70]    James Montanaro, Richard T. Witek, Krishna Anne, Andrew J. Black, Elizabeth M. Cooper[1996-11]. A 160-MHz, 32-b,. 0.5-W CMOS RISC. Microprocessor. 1996 IEEE. from IEEE journal of Solid-State Circuits, volume 31, number 11, November 1996.
[71]    Intel Corporation[1999-03-31]. Intel StrongARM Processor, Companion Chip Optimized For Handheld Computing Devices. Press release.
[72]    Pavel Bolotov[2005-07-10]. The history of Alpha Processors: Facts and Comments.
[73]    Turley, Jim [1998-07]. MCore: Does Motorola Need Another Processor Family?
[74]    Motorola[2009]. A Timeline Overview of Motorola History.
[75]    Frank V?lkel[2003-02]. AMD CPUs: From The K5-75 To The Athlon XP 3000+. Tom’s hardware.
[76]    Gruener, Wolfgang[2008-08-10], Nehalem = i7: Intel unveils new Core processor brand, TG Daily.http://www.tgdaily.com/content/view/38818/135/.
[77]    Furber, Addison-Wesley [2000]. ARM System-on-Chip Architecture.
[78]    Larri[1996]. ARM810: Dancing to the Beat of a Different Drum".
[79]    ARM Ltd.[2000-02-09]. "Performance of the ARM9TDMI and ARM9E-S cores compared to the ARM7TDMI core.
[80]    Apple Press Center[2001-10-23]. Apple presents iPod.http://www.apple.com/pr/library/2001/oct/23ipod.html
[81]    Tom Hormy and Dan Knight[2005-10-14]. A History of the iPod: 2000 to 2004.
[82]    Markus Levy[2002-04-30]. Exploring the ARM1026EJ-S Pipeline. Microprocessor Report.
[83]    ARM Ltd.[2000-04-12]. Lucent Technologies Ships First ARM10 Silicon; Processor Core to Enable Wireless Internet Applications.
[84]    Stephen Hill[2001-08-20]. The ARM10 family of Advanced Embedded Microprocessor Cores. Hot Chips 13 Archives 2001.
[85]    Intel[2000]. Intel XScale Microarchitecture—Technical Summary.
[86]    Tony Smith[2005-08-23]. Intel intros 1.25GHz XScale.
[87]    Intel[2005]. Intel 10-K 2005.
[88]    John G. Spooner[2003-12-10]. Intel to combine networking chip groups. CNET news.
[89]    Stephen Shankland and Michael Kanellos[2006-07-13]. Intel to ax 1,000 managers. CNET News.
[90]    John G. Spooner[2006-09-05]. Intel to Lay off 10% of Work Force. eWeeks.
[91]    ARM Ltd. [2006-12-01]. ARM1136JF-S and ARM1136J-S Technical Reference Manual.
[92]    ARM Ltd. [2007-04-25]. ARM1176JF-S Technical Reference Manual.
[93]    ARM Ltd. [2005-11-11]. ARM1156T2-S Technical Reference Manual.
[94]    ARM Ltd. [2007-04-05]. ARM Architecture Reference Manual. ARM v7-A and ARM v7-R edition.
[95]    ARM Ltd. [2002-04]. The ARM11 Microarchitecture.
[96]    Lance Whitney[2010-09-30]. Nokia starts shipping N8 smartphone. CNET news.
[97]    Forum Nokai[2010-04-27]. Nokia N8 Device Details at Forum Nokia.  http://www.forum.nokia.com/devices/N8/.
[98]    Rupert Goodwins[2010-09-09]. ARM's new Cortex adds server features. ZDnet UK.
[99]    CNET News staff[2010-04-03]. Apple iPad launch day.
[100]    Brooke Crothers[2010-05-04]. Intel launches chip for smartphones, tablets.
[101]    Brooke Crothers[2009-05-18]. Intel's 'Medfield' smartphone chip gets clarity.
[102]    Jonathan E. Skillings[2009-06-04]. Intel to buy Wind River for $884 million. CNET news.
[103]    Brooke Crothers[2009-01-23]. Intel, Nokia announce mobile pact. CNET news.
[104]    Brooke Crothers[2010-08-29]. Intel to buy Infineon's wireless unit for $1.4 billion.
[105]    Microsoft News Center[2010-10-11]. Windows Phone 7: A Fresh Start for the Smartphone.
[106]    Intel[2010-05-04]. Introducing the Next-Generation Intel Atom Processor-based Platform—Fact Sheet.
[107]    Agam Shah[2010-08-12]. Details about Intel's Medfield chip emerge. Computer World.
[108]    ARM Ltd.[2004-10-19]. ARM Introduces The Cortex-M3 Processor To Deliver High Performance In Low-Cost Applications.
[109]    ARM Ltd.[2005-10-04]. ARM Introduces Industry's Fastest Processor For Low-Power Mobile And Consumer Applications.
[110]    ARM Ltd.[2006-05-15]. ARM Launches Next-Generation Processor.
[111]    Max Baron[2005-11-14]. Cortex-A8: High Speed, Low Power—Part Two: Build Like a Desktop, Powered like a Cellphone.
[112]    Nadav Levisona and Shlomo Weiss[2010-10]. Branch target buffer design for embedded processors. Microprocessors and Microsystems Volume 34, Issue 6, October 2010, Pages 215-227.
[113]    ARM Ltd.[2007-10-03]. ARM Unveils Cortex-A9 Processors For Scalable Performance and Low-Power Designs.
[114]    ARM Ltd.[2007-10]. Cortex-A9 Microarchitecutre.
[115]    Robert Mijat[2009-11-10]. System Level Benchmarking Analysis of the Cortex-A9 MPCORE. ARM connected Commuinty Techinical Symposium 2009.
[116]    ARM Ltd.[2010-09-08]. ARM Unveils Cortex-A15 MPCore Processor to Dramatically Accelerate Capabilities of Mobile, Consumer and Infrastructure Applications.
[117]    Dave Willamson[2010-10-21]. Exploring the Design of the Cortex-A15 Processor.http://www.arm.com/files/pdf/AET ... nical_Overview.pdf.
[118]    Jim Turley[2010-11-10]. ARM’s Cortex A15 “Eagle” has landed. Embedded Technology.
[119]    Stefanos Kaxiras and Margaret Martonosi[2008]. Computer Architecture Techniques for Power-Efficiency--Synthesis Lectures on Computer Architecture. Morgan & Claypool Publishers.
[120]    David Flynn, Rob Aitken, Alan Gibbons and Kaijian Shi[2007]. Low Power Methodology Manual For System-on-Chip Design. Springer. ISBN 978-0-387-71818-7.
[121]    Brian Case[1993-3-29]. Intel Reveals Pentium Implementation Details. Microprocessor Report.
[122]    David Flynn [1997-06/07]. AMBA: enabling reusable on-chip designs. Micro. IEEE. Jul/Aug 1997. Volumn 17, issue 4.
[123]    ARM Ltd.[1996-10]. Introduction to AMBA.
[124]    ARM Ltd.[1999]. AMBA Specifications v2.0, 1999.
[125]    ARM Ltd.[2001]. AMBA Specifications v3.0, 2001.
[126]    Milica Miti? and Mile Stoj?ev[2006]. A Survey of Three System-on-Chip Buses: AMBA, CoreConnect and Wishbone.
[127]    ARM Ltd.[2010-03-08]. ARM AMBA 4 Specification Maximizes Performance and Power Efficiency.
[128]    Anand Lal Shimpi[2010-05-04]. Intel Unveils Moorestown and the Atom Z600, The Fastest Smartphone Platform? Anandtech.
[129]    Chippy[2009-09-26]. Moorestown and Pinetrail graphics core thoughts. GMA500 likely. Umpcportal.
[130]    Sylvie Barak[2010-07-07]. Battle of the chip platforms - Intel vs. ARM in the mobile space. Rcrwireless.

类别:默认 |
下一篇:Made in IBM:下一代硅光子光学技术诞生
以下网友评论只代表其个人观点,不代表本网站的观点或立场