为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

x86架构发展的历史介绍

2011-09-16 41页 pdf 1MB 35阅读

用户头像

is_289309

暂无简介

举报
x86架构发展的历史介绍 ARM 与 x86 作者:王齐 sailing.w@gmail.com 编辑:陈怀临 huailin@tektalk.org 序言 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时代。这个帝国的成员 们各司其职,在可预料的...
x86架构发展的历史介绍
ARM 与 x86 作者:王齐 sailing.w@gmail.com 编辑:陈怀临 huailin@tektalk.org 序言 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计划[i]将如期而至。每一年都将是平淡的一年。 在半导体领域,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年的寒冬,顺利地从存储器领域过渡到处理器领域,将在其后 紧随而且随时可将之超越的日本人抛于脑后 [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留下了向前兼容,这个堪称伟大的包袱。 技术并不是早期x86处理器的长处。在上世纪80年代至90年代,几乎全部处理器都被技术上绝 对领先,绝对强势的Alpha系列处理器[v]压得喘不过气来。竞争对手每推出一个处理器芯片, DEC都会推出另外一个强大到令人放弃追赶的新一代Alpha。 Intel真正的优势是格罗夫虽百折而不挠,我行我素,笼罩当世的大气魄。 1987年,格罗夫正式成为Intel的CEO。格罗夫开始与另外一个更加耀眼的企业领袖比尔·盖茨联 手创建了Wintel这个事实上的铁血联盟。 无论是Intel还是Microsoft都不承认Wintel联盟的存在, 但却无法否认这个词汇在整个处理器行业制造的恐慌与肃杀[vi]。在那个时代, 对于处于这个帝 国之外妄图涉足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开始支持x86处理 器的竞争对手,RISC处理器,包括MIPS R3000/R4000, Alpha和PowerPC。Microsoft也多次断 言RISC处理器替代Intel x86是大势所趋[4]。 面对这场危机,Intel开始动摇,着手研发抗衡RISC处理器的产品,安腾(Itanium)和Pentium Pro处理器[vii]。采用向前兼容的Pentium Pro处理器在CISC vs. RISC战争中的大获全胜,而抛弃 了向前兼容的安腾最终被抛弃。Pentium Pro的胜利和安腾的失败化解了Wintel帝国面临的最大一 次危机。对“向前兼容”的依赖,使帝国的这两个重要成员重归蜜月期。1996年,比尔·盖茨 在公开 场合承认,“最近的两年内,英特尔与微软在合作方面所花的时间比前十年加在一起还要多”。 新贵对盟主地位的追求永不休止。1997年11月20日,Joachim Kempin[viii]在给盖茨的Email中明 确地提出微软应该收购AMD或者Cyrix[ix] (Nsemi)以对抗来自Intel的威胁[5]。格罗夫在卸任时也 承认自己犯下的最大错误就是使Intel过分地依赖Microsoft[3]。而近些 年发生的一些事件[x]更加表 明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网络处理器令思科,爱立信和华为这些通信厂商至今还 在心痛[xi]。IXP网络处理器的技术源自 DEC,Intel保留了DEC网络处理器的整个研发团队,并以 XScale架构为核心,设计出第一颗芯片IXP1200[8]。在IXP1200芯片中 含有一个类StrongARM SA1100处理器和6个微引擎ME(Micro Engine)。 这颗芯片的亮点是6个微引擎,许多研究资料[9][10][11]表明IXP1200确有较强的网络报文处理能 力。一时间网络处理器也成为通信半导 体厂商的宠儿,Motorola半导体(Freescale)和IBM也分别 收购了几个刚刚Start-up的公司,主推网络处理器[xii]。 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[xiii]。Intel继续延续着摩尔 提出的“集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍, 性能也将提升一倍”的定 律。Tock指CPU内核的进步,工艺的提高使得之前只能出现在经典论文中的技术得以实现。Tick- Tock计划规划了 Intel x86处理器直到2016年的Roadmap。一个长达十年的路标。 表1 Intel的Tick-Tock计划[17] 体系结构的变化 工艺 发布时间 Tock Core Microarchitecture 65nm 2006-07-27 Tick Penryn 45nm 2007-11-11 Tock Nehalem Microarchitecture 2008-11-17 Tick Westmere 32nm 2010-01-04 Tock Sandy Bridge Microarchitecture expected 2010 Tick Ivy Bridge 22nm expected 2011 Tock Haswell Microarchitecture likely 2012 Tick Rockwell 16nm expected 2013 Tock New Microarchitecture likely 2014 Tick Shrink/Derivative 11nm likely 2015 Tock New Microarchitecture likely 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吗? ——————————————————————————– [i] 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] Alpha处理器也是我第一次接触的第一个高端处理器,…是一个充满激情的岁月。 [vi] 今天的Microsoft总有被Google欺负的感觉。而在盖茨年轻的时候,Microsoft却是不可战胜 的。当年有一个工程师向盖茨提了这样一个问 题,“我不愿意加入微软,但是我加入的其他公 司,不是被您收购,就是被您挤垮。我需要买一个带花园的小房子,需要一份工作。请问在软件 领域,有哪些方面是 您不愿意涉足的?”。 [vii] Pentium Pro是Intel一颗具有里程碑意义的处理器。这颗处理器将复杂的CISC指令分解成为 μops指令(一种RISC指令),之后采用了RISC指令流水线,加大提高了x86处理器的性能。在某种 意义上说,这颗处理器拯救了Intel。 [viii] Joachim Kempin当时是Microsoft的高级副总裁。 [ix] AMD和Cyrix是Intel当时的主要竞争对手。从今天AMD和Cyrix的状况上看,盖茨没有采纳 Joachim的意见是无比正确的。 [x] 2010年7月23日,Microsoft正式宣布与ARM展开战略级合作[23]。Intel与Nokia联手开发用于 手机的Meego操作系统。 [xi] 这些网络通信厂商在Intel网络处理器上投入了大量的人力物力,而Intel却却中断了该产品的后 续研发。 [xii] 网络处理器没有一个得到善终。IBM将网络处理器卖给了Hifn,不过近期IBM发布了一颗16核 的Wire-Speed网络处理器。Motorola半导体从C-Port手中收购了网络处理器,却无法阻挡Intel在 IXP网络处理器的低价格策略。 [xiii] 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处理器[i]。 来自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),等一些TAG信息 [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所需要的并不是上网本。Intel并不需要这样的产品去瓜分 Laptop市场。帝国的终极目标依然是可 以手持的PC。上网本不过是技术尚不成熟的临时产品。 Intel很清楚的意识到初期的Atom并不能离开Windows,向前兼容依然重要。只是向前兼容 这个 紧箍咒套上容易脱离难。 Intel的Moorestown平台终于浮出水面。这是Intel为手持PC开发的第一款产品,与ARM的单芯片 解决方案并不相同。 Moorestown平台由两个芯片组成,分别是代号为Lincroft的处理器和代号为 Langwell的芯片组。Lincroft中包含一个Atom 处理器、GPU和存储器控制器,用Intel的45nm工艺 实现,而在Langwell芯片组中包含手持PC中常用的外部设备,如摄像机接口、USB接 口、1080p HDMI接口和NAND控制器等[29]。 Intel为了更快的推出Langwell芯片组,并没有使用自己的生产工艺,而是依靠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/MHz Dhrystone Max MHz Estimate CoreMark at Max MHz Cortex A8 2.4 2.0 1.0GHz (S5PC110) 2415 Cortex A9 2.9 2.5 1.0GHz (Tegra 2)2.0GHz 28815762 MIPS 74K 2.5 2.0 1.6GHz 4000 N280(1 thread) 1.8 2.4 1.67GHz(N280) 2.GHz(Z550) 30603673 N280(2 threads) 2.8 N.A. 1.67GHz(N280) 2.GHz(Z550) 46645600 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]。这些成功并没有使Intel在工艺上扩大领先优势,这一优势 反而在逐步缩小。ARM Cortex A9已经可以使用Global Foundry提供的28nm工艺。当22nm技术 来临时,Intel在生产工艺上的领先优势将不复存在。 Intel率先推出45nm时,是与其他半导体厂商差距最大的时刻,在工艺上几乎领先其他半导体厂商 一代。而技术的革新与进步总是开头最难,中期发展阶段最快,至末期的举步维艰。种种迹象表 明硅晶片的制造工艺已日趋极限。 如果Atom处理器连工艺的领先都无从谈起,在技术上将没有任何优势可言。一个产品成败并不完 全取决于技术。也许二十年前Intel战胜所有RISC厂商的故事可能再次发生,也许偏执的力量可以 战胜顶尖的技术。 只是Intel已无格鲁夫。 [i] 至少需要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技术说得更简单一些,就是分属不同线程的 指令之间没有相关性,只要有空余的执行单元,即可通过预约站,进入执行单元。 第三章 蝶变ARM 1929年开始的经济大萧条,改变了世界格局。前苏联的风景独好,使得相当多的人选择了马克 思。惧怕布尔什维克红色力量的人投入了法西斯的怀抱,剩余的人选择了妥协与折中。整个世界 的迅速分解使得第二次世界大战成为必然。 1933年,罗斯福成为美国第三十二任总统,开始实施新政。这些新政使美国摆脱了危机,也决定 了二战的走向。罗斯福的背后站着的是凯恩斯,凯恩斯的国家资本主义化解了整个资本主义阵营 有史以来最大的一次危机。“妥协与折中”得以持续。 战后的世界是属于巨型公司的,这些公司借助国家资本的力量,持续着垄断。垄断的初衷并 非都是恶意的,在美国却是一个早在1890年就立法防止的。1911年,美国烟草公司被分拆。 1982年,美国电报电话公司被分拆。 这些分拆却很难抵达IT业。1975年成立的Microsoft虽然多次被推入拆分的风口浪尖,却从未被拆 分。IBM和Intel多次遭到分拆的威 胁,也安然无恙。这些公司的支持者都注意到一个事实,这些 公司没有依靠国家资本而获得垄断地位,而是依靠多年苦心积攒的知识产权坚持到现在。 这类垄断之忧不在颛臾而在萧墙之内。在这些巨型IT公司中,最低层的工作人员需要经过多达十 几级的汇报关系,才能到达首席执行官。在这十几级汇报链中,向上所传递最多的就是如何粉饰 太平。 一些微不足道的小问题在这些大公司中往往也能引发无休止的讨论。为解决某个问题而举行的会 议,经常被无休止地扩大,从一个会议扩展为多个会议,从几个人参与变为几十人参与。这个问 题变得已不再重要时,内部并无统一意见。 西方巨型公司的弊端在于 欧美所倡导的民主代价过于昂贵。撒切尔夫人是欧洲第一个深刻认识到 这些问题的最高执政官。历史上,英国并不重视中小企业的发展,在凯恩斯主义盛行的二十世 纪 五十年代,英国经历了三次大规模的企业兼并,至撒切尔夫人执政,巨型企业大行其道。更多的 人发现这些大型企业并不能提高生产效率,大范围的垄断与集中, 已使英国经济举步维艰。 上世纪八十年代,撒切尔夫人开始变革,剑锋所指,巨型公司纷纷解体,中小企业如雨后春笋般 涌现。撒切尔的私有化,货币控制,削减福利与抑制工党的四项举措,客观上拯救了英国经济, 也使这位值得尊敬的女士誉满天下,谤满天
/
本文档为【x86架构发展的历史介绍】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索