处理器微结构史话 第一章
【注:这是经过小幅修改扩充的版本,刊登在中科院计算所计算机体系结构国家重点实验室的内刊《体系结构国重快讯》上,与《弯曲评论》上已刊登的版本小有不同,带来阅读不便表示抱歉。】
1945年8月6日与9日,广岛和长崎两座日本本土城市先后在惊天动地的原子弹爆炸中被毁灭,核武器由此首次步入公众视野。全世界都被那两朵巨大蘑菇云的威力所震慑。这两道重击也直接摧毁了日本最后的抵抗意志,一周后的8月15日,日本宣布无条件投降,在人类历史上写下最惨痛一页的第二次世界大战终于结束。核武器横绝古今沛然莫御的威力,使得它成为战后制衡国际局势的一大王牌,对它的研究和制造在战后仍然未曾停息。而我们这一系列连载故事的主角,盈盈栖息于指尖之上,不过毫厘见方的微型处理器,和这两朵摧枯拉朽的蘑菇云其实有着千丝万缕的联系。
(图注:两次原子弹爆炸的照片,来自维基百科)
半年过后的1946年2月14日,战时处于严格保密状态的第一台通用电子计算机 ENIAC,首度被公之于众。这台27吨重的庞然大物原先被设计用于加快火力弹道计算,但它新颖的设计架构和全新的构造方式迅速吸引了战时核武器研发中心——美国洛斯·阿拉莫斯国家实验室的注意。
由“原子弹之父”罗伯特·奥本海姆坐镇主管的洛斯·阿拉莫斯实验室早在1943年左右就开始尝试使用人力搭配计算器的方法对核武器进行理论分析。然而洛斯·阿拉莫斯实验室很快就发现这种工作模式完全不能胜任对计算能力的需求,于是转向了半自动化的穿孔卡带式计算器,可惜这种基于穿孔卡带的计算操作也极其繁琐,与先前的人力计算相比只是半斤对八两的区别。当时正在洛斯·阿拉莫斯实验室参与核武器研发的著名物理学家费曼曾提议,在人力计算组和半自动化的穿孔卡带组之间进行一次计算速度比赛,结果两组人马在前两天时间里难分伯仲,第三天时人力计算组开始疲惫缠身,而机器仍不知休止,于是才告胜出^[Race]。
当洛斯·阿拉莫斯实验室转向氢弹的设计分析时,计算能力的不足变成了更大的瓶颈。核武器的设计完全不同于以往的任何一项军事工程研究,进行一次核试验就要承担铺天盖地的政治压力和足可断金裂石的舆论谴责,因此核爆不可随意进行,其次,核爆过程中产生的超高温和超高压几乎没有其他可行手段能够复制,即便能够复制,在这种极端条件下所能使用的观测手段也寥寥无几,因此试验在绝大多数情况下只能交由计算机进行模拟分析。核爆炸模拟需要科学家们将核爆反应“碎片化”,在空间上将核爆模拟区域切片, 在时间上将核爆过程细分,用远远慢于真实核爆速度的步伐,逐一重现核爆当中各个区域在各个时间点上的状态。这一过程需要极快的计算速度才能让模拟耗时和精度达到要求,当时的穿孔卡带计算机已经无法满足需要,而具备每秒5000次加减法运算,400次乘除法运算能力的 ENIAC 进入洛斯·阿拉莫斯实验室的视野也就是顺理成章的事情了 [John von Neumann]。
远高于人力的计算速度使得基于机器模拟的核爆炸研究初露端倪,身为第一台通用电子计算机的 ENIAC 义不容辞地承担起了氢弹的研制任务,在计算机体系结构与处理器微结构的开山鼻祖冯·诺依曼的牵头下,测试氢弹设计可行性的程序在战后被提交给 ENIAC 作为测试程序运行。也是从这一刻开始起,早期计算机体系结构和处理器微结构的高性能进化便在核武器研发以及其他科学计算的需求浇灌下开出了萌芽 [Los Alamos and Lawrence Livermore]。
(图注:左侧为 John Mauchly,右侧为 Presper Eckert,中间是 Gladeon Barnes 将军,三人正在审阅 ENIAC 维护记录。图片来源fi.edu)
与 ENIAC 一道在登台伊始就受到各界瞩目的,还有亲手为 ENIAC 加冕“第一台通用电子计算机”之耀眼王冠的两位主要设计者 John Mauchly 和 J. Presper Eckert。在 ENIAC 项目上马前,John Mauchly 还在宾夕法尼亚大学进行短期进修,担忧着自己的教职申请能否通过,另一位 J. Presper Eckert 当时则正在宾大读研,大概谁也没有想到,波及人类社会每一个角落的数字化革命竟是由这两位原本无足轻重的人物揭开了序幕,对电子计算设备的狂 热令年龄差距十二岁的两人一见如故,从此成为终生战友,上天的垂青令这对天才搭档只花了四五年时间就由籍籍无名而声名鹊起。
ENIAC 的存在解密之后,John Mauchly 和 J. Presper Eckert 迅速成为光芒耀眼的学术超新星。在日后载入史册的宾夕法尼亚大学摩尔系列讲座中 [Moore School Lectures],这两位俨然大师风范,担当了大约三分之一课程的讲授工作,而讲台下的学生,则是包括信息论之父 Claude E. Shannon 在内的一批顶尖科学家与工程师,其地位显赫可见一斑。可惜的是,宾大当时的主事者对校内科研接受外部公司的研究资助一事感到担忧,竟试图逼迫二人签署新的专利协议,将 ENIAC 的专利交予学校之手,这一不可原谅的愚蠢举动最终成为将二人逼离宾大的导火索 [ENIAC Patent]。
(图注:John Mauchly 在宾大电子工程学院的教室中。图片来源于 Mauchly 的妻子所撰写的回忆。)
曾经是 ENIAC 诞生温床的大学校园,此时却成为逼迫 John Mauchly 和 J. Presper Eckert 背水一战的修罗场。没有深思熟虑的商业计划,二人于1946年匆忙下海创办了 Eckert–Mauchly Computer Corporation (EMCC) 公司。久居象牙塔的学者与商战中搏杀的豪雄毕竟不同,EMCC 不出意外地命途多舛,在缺乏资金,经营不善以及厄运连连 [Jean Bartik] 中挣扎了三年后,这家事后被追认为是第一个专门售卖通用电子计算机的公司,没能完成任何一次成功的商业的尝试就被 Remington Rand 公司收购,成为了 Remington Rand 集团中负责开发新一代计算机的 UNIVAC 部门。随着这次收购,John Mauchly 和 J. Presper Eckert 这两面大旗也被 Remington Rand 一同招安。
在新东家的资助下,没过多长时间,UNIVAC 团队的通用电子计算机商业化尝试就开始开花结果,在 EMCC 进行的前期工作得到 Remington Rand 的助力后破茧成蝶,一台被称为 UNIVAC I型的里程碑式计算机于50年代初横空出世,作出了通用电子计算机在商业舞台上的首秀,它运行的程序成功预测了次年美国总统大选结果[Prediction],这次事件令 UNIVAC I一炮而红,为新东家做了一个极好的广告宣传,也为 John Mauchly 和 J. Presper Eckert 已经大红大紫的名声再度锦上添花。起初定价仅有16万美元的 UNIVAC I供不应求,以至于后来价格抬升了几乎十倍。
(图注:Eckert 正在向 CBS 的新闻节目主持人介绍 UNIVAC I. 坐在控制台前的是一位名叫 Harold Sweeney 的程序员。)
但,历史不会让这两位已经享受了诸多殊荣的传奇人物专美于前。处理器微结构的史诗刚刚开端就迎来了第一个拐点。
Remington Rand 收购 EMCC 之后数月,一只来自明尼苏达州圣保罗市的团队也被 Remington Rand 收编,与 UNIVAC 团队形成双雄鼎立之势。这支团队名为 Engineering Research Associates,其骨干成员以 William C. Norris 为代表,是一批来自二战时期美国海军密码破译团队的科学家和工程师,ERA 创立过程中甚至得到过时任美国海军元帅 Nimitz 的出面帮助,来头不可轻视。一山难容二虎,ERA 与 UNIVAC 两支团队在公司内部形成了公开的竞争关系。
UNIVAC 的成员们以 Mauchly 和 Eckert 为代表, 出身于世人瞩目的常春藤盟校,是典型的学院派,ERA 的成员们则大多来自稍显平庸的明尼苏达大学,身为 ERA 领导者之一的 Norris 在内布拉斯加大学电子工程专业毕业后,甚至曾一度在老家农场卖牲口 [Norris]。这些人普遍没有接受过最顶尖的教育,但是在为海军与 ERA 工作期间获取了大量的工程经验,是典型的工程师队伍。
两支团队在出身上的巨大反差令 UNIVAC 充满优越感,UNIVAC 团队不以为意地以“工厂”“农夫们”这样的词汇来指代 ERA 团队,似乎在 UNIVAC 的眼中,宾夕法尼亚人的工作就是探索最前沿的理论,至于建造实际可工作的机器,则应该交给更低等的明尼苏达人。Eckert 曾非常直白而粗鲁地对 Norris 说:ERA 完全不具备创新能力 [ERA]。种种蔑视令 ERA 的成员们感到异常窝火。
然而站在 ERA 的角度上看,UNIVAC 浑身上下也没几处顺眼。ERA 团队虽为 Eckert 精湛的学识感到惊艳,但同时也震惊于 UNIVAC 团队对工程规则的无知。在 ERA 团队设计的1103型计算机接近完成 时,Eckert 仍然在尝试说服工程师们引入新的理论,这让 ERA 团队感到震惊,难道 UNIVAC 团队进行工程设计的时候完全不顾 deadline 的么?骇人听闻的是,他们竟然真没看走眼。
通用电气公司向 Remington Rand 订购了一台 UNIVAC I计算机,并筹划了与之配套的一系列媒体报道来造势,试图证明自己是一个追逐前沿技术,位于浪潮之巅的公司。不想 UNIVAC 团队一再更改设计,把本该在两周内交付的输入输出设备拖延了两年之久,令通用电气大发雷霆。过度苛求设计完美,忽视工程 Deadline,还只是问题的一部分。未经历过残酷市场竞争的 UNIVAC 团队对报价与预算毫无概念,UNIVAC 的研发超支达到近乎荒唐的五倍之多,而 UNIVAC I计算机极其低劣的运作可靠性也与 ENIAC 一脉相承。Norris 终于发现,两支团队的区别其实已经深入到哲学的层面。Norris 对宾夕法尼亚人说:“ERA 在经营公司,而你们经营的是实验室”。
除了来自UNIVAC团队的贬低,Remington Rand 管理层对通用电子计算机商业前途的迟钝也在消磨着 ERA 团队的耐心。时至1956年,这个领域里的几乎每一个公司都已经意识到通用电子计算机将是下一片广阔的蓝海。而原本处于行业领先地位的ERA团队却无法从公司管理层获得足够的研发支持。IBM 研发一系列新机器的动作送出了一个明显的信号,这艘几乎无人可敌的企业巨舰正在朝着这片蓝海开进。Norris 等人终于按耐不住了,他们携带一部分 ERA 团队成员出走,自筹资金在明尼苏达州东南部城市明尼亚波利市的一间旧仓库里创办了 Control Data Corperation,缩写 CDC。
(图注:八年后的CDC CEO Norris与使用早期CISC体系结构的CDC 3600。图片来源www.computerhistory.org )
开创历史的力量用这种奇妙的方式完成了从 Eckert–Mauchly 到 CDC 的转移。
宾夕法尼亚人做梦也没想到,低等生物明尼苏达人竟然强横到敢于直面 IBM 的剑锋。卖牲口的 Norris 卖起电脑来比 Mauchly 和 Eckert 实在强出一筹不止。这个在初期募资时低贱到1美元1股的 CDC,一度困难到只能使用次品晶体管作为原材料,却成为 Norris 手中令 IBM 俯首称臣、纵横驰骋了整个60年代的王牌部队。CDC 技术团队一手缔造了世界上第一台超级计算机 CDC 6600,基于记分板(Scoreboarding)技术第一次实现了指令的乱序执行,第一次大范围地利用多个功能单元实现超标量执行,为今日的现代高性能处理器微结构绘制了第一份蓝图,迫使 IBM 的掌门人 Thomas J. Watson 无可奈何地写下了流传后世的“守门人备忘录”……
而站在 Norris 身后充当“里子”,创造这些不世传说的人,就是当时 ERA 团队中一位来自明尼苏达大学的天降奇才。在 CDC 创立之时想要追随 Norris 而去的他,还因为担忧美国军方的特别关注而不得不暂留 Remington Rand。
【注释与参考文献】
[Race] 这个有趣的早期计算机vs人脑的比赛可见两位前 Los Alamos 实验室科学家的回忆。
[John von Neumann] Los Alamos 实验室能够紧紧跟随着宾夕法尼亚大学、芝加哥大学,哈佛大学等地的早期计算机研究进展,这在很大程度上归功于冯诺依曼的牵线搭桥。根据前述两位实验室科学家的回忆,冯诺依曼当时为多个政府项目充当顾问,在各个项目之间传递信息,忙碌得“好像在同一时间出现在许多地方”。
[Los Alamos and Lawrence Livermore] 科技史作家 Donald Mackenzie 采访了大量 Los Alamos 和 Lawrence Livermore 两大核武器实验室的前雇员之后,在他的文章中系统阐述了核武器实验室在早期计算机演进中所起的助力作用。
[Moore School Lectures] 这个系列讲座英文原名 Moore School Lectures,它将设计电子计算机的第一手经验传播了出去,对后世带来了深远影响。值得注意的是,这个 Moore 与 Intel 的 Gordon Earle Moore 并无关系。这个“Moore”代表宾夕法尼亚大学的摩尔电子工程学院 Moore School of Electrical Engineering
[ENIAC Patent] 根据 J. Presper Eckert 与 Nancy Stern 在1977年所做的采访记录,逼迫二人签订新的专利协议背后似乎并没有抢夺成果用于商业目的的动机,采访人 Nancy Stern 多次追问这一点,但是Eckert并未给予确认。此外,Eckert 在访谈中透露,他并非如外界传闻那样是从宾大主动辞职,而是被炒了鱿鱼,只不过有一封假装“同意辞退”的礼貌信件用以掩人耳目。
[Jean Bartik] 根据 Jean Bartik 的回忆,EMCC 的员工被指控有“共产主义倾向”,这在麦卡锡主义盛行的年代导致EMCC失去了大批政府订单。
[Prediction] 机器预测选票结果为438 vs 93,实际结果为442 vs 89,相当接近。
[Norris] Norris 的经营天赋在卖牲口中得到了很好的体现。Norris 在老家农场期间正值美国经济大萧条和中西部旱灾,牲口没有谷物可以吃,收购商则趁机压低牲口价格。Norris 决定冒险,让牲口以俄国蓟(Russian thistles)为食,成功地将牲口养至高价出售。
[ERA] "ERA's creative capabilities simply didn't exist". 出自 Charles J. Murray 所写的 Semour Cray传记