開源歷史

處理器微結構史話 第一章

【註:這是經過小幅修改擴充的版本,刊登在中科院計算所計算機體系結構國家重點實驗室的內刊《體系結構國重快訊》上,與《彎曲評論》上已刊登的版本小有不同,帶來閱讀不便表示抱歉。】

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 MauchlyJ. 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傳記

 

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0

You may also like

Leave a reply

您的電子郵箱地址不會被公開。 必填項已用 * 標註

此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

More in:開源歷史

開源歷史

開源軟體簡史(三)

開源運動簡史之第三部分。微軟與開源的攻守戰,到微軟擁抱開源。微軟和開源社區的恩怨由來已久,最早可以追溯到家用計算機俱樂部的公開信那時,之後雙方陸陸續續發生過幾次擦槍走火的事件。
開源歷史

開源軟體簡史(二)

開源運動簡史之第二部分。從 GNU 到開源運動。1985 年10月 Stallman 又創立了自由軟體基金會( Free Software Foundation )來為 GNU 計劃提供技術、法律以及資金支持。初期由於人手不足,FSF獲得的捐款等主要被用來僱傭職業程序員幫助編寫自由軟體,目前由於基金會擁有大多數 GNU 項目的版權,其主要工作已經轉移到處理自由軟體的法律問題上。
開源歷史

開源軟體簡史(一)

開源運動簡史之第一部分,早期開源史。Stallman 說:軟體共享的歷史與計算機一樣長久,如同人類自烹飪依始就交換食譜一樣。LinuxStory 為您帶來開源運動簡史。