計算機史最瘋狂一幕:豪賭50億美元,“藍色巨人”奮身一躍

語言: CN / TW / HK

 

“Go big or go home. ”是美國人的一句習語,經常會在賽場上聽到,NBA球迷應該很熟悉,翻譯過來就是“要不變強大,要不滾回家”。在1960年初期的計算機行業,IBM正站在這樣一個十字路口。

 

憑藉剛釋出不久的能徹底替代穿孔卡片分析機的1401大型機,IBM本可以在市場上輕鬆躺賺兩年,但總裁小托馬斯·沃森(Thomas J. Watson Jr.)還不想“躺平”,他從父親手上繼承到這一職位已有四年。

 

整個行業發展正在加速,但IBM卻進入平臺期,增長放緩,公司兩個計算機部門的“內卷”競爭讓產品線變得混雜,而最新產品線的競爭壁壘並不高,這些危機感讓他催促手下的IBM高管通過更大的產品創新來提升營收。

 

彼時,計算機廠商的產品線互不相容,客戶要升級到新機器時,很容易改用其他廠商的產品:基本每個產品都有自己的ISA、軟體堆疊、I/O系統和利基市場(分別針對小企業、大企業、科研應用)。各種主機需要量身定做作業系統,相容性、系統升級等操作無從談起,定製化系統所耗費的大量人力、財力甚至會超過主機本身。

 

很快,經過副總裁文森特·利爾森(T. Vincent Learson)等人來回爭論後,最終敲定他們需要開發一種系統,以簡化產品線、降低研發成本,提高競爭力。沃森也希望能儘早淘汰過時的電晶體計算機,要求著手研製由積體電路組成的機器。

 

但讓所有人始料未及的是,這幾乎是一個讓IBM搭上全部身家性命的抉擇。

 

 

在日夜兼程製造新機器的四年裡,IBM總計為新機器的研發投入了50億美元(按購買力計算,相當於今天至少400多億美元),是他們一開始預估費用6.75億美元的7.4倍。其中,45億美元用於建造新設施以及購買和租賃裝置,最頭疼的軟體系統花了5億美元,是一開始3000萬美元預算的近17倍,而系統研發最終耗費了大約5000人年(指5000人工作1年或500人工作10年的工作總量),而OneFlow此前介紹過的具有450萬行程式碼的Windows NT系統不過才花了1000人年。

 

其中,最多時有2000名頂級工程師參與了軟體編寫,最終寫出了百萬級程式碼量的作業系統。當然,以現代眼光來看,寫一個類似的軟體似乎已不是什麼了不起的事,也根本用不到上千人,但在當時絕對開創了先河。

 

這個新機器就是IBM System/360,為了製造這一龐然大物,IBM不可避免地走了不少彎路。它讓IBM的開發資源、運營流程和商業戰略經歷了一場徹底的洗禮,在技術不穩定、執行混亂、充滿不確定性的情形下摸著石頭過河,以一種他們自己都未曾想到的創業方式,踏上了一場前無古人後無來者式的冒險之旅。

 

幸運的是,IBM的“豪賭”大獲成功。在回憶錄裡,小沃森稱這是他一生中所做的“最大、最富冒險的決策和最輝煌的勝利”,這場勝利讓這家企業蛻變成真正的“藍色巨人”,在整個行業獨領風騷至少二十年。領導開發System/360系統設計和工程實施的弗利德利克·布魯克斯(Frederick Brooks)等人也因此獲得了圖靈獎等極高聲譽,其技術創新和影響決定了數十年的計算機歷史程序。它也被視為美國迄今最偉大的三大商業成就之一,與福特的Model T汽車和波音的首款噴氣式客機707齊名。

 

“Go big or go home. ”聽起來是道二選一的選擇題,但對勇者而言,選擇往往只有一個:幹就完了。IBM奮身一躍,就此掀起計算機史上的一場滔天巨浪。

 

1

新機器的野心

 

1960年代初期,計算機的儲存容量與執行速度增加了10倍,有效效能由此提高100倍,但這超出了軟體設計人員的駕馭能力,機器之間互不相容是普遍現象,軟體技術幾乎止步不前。

 

當時,IBM共有八款電晶體計算機和一些真空管計算機,還有六款電晶體計算機正在開發中,但它們的內部結構、處理器、程式設計軟體和外部裝置不盡相同,功能和效能也不同,一款計算機對應一個系統,無法擴充套件或升級。

 

互不相容帶來了兩大弊端。一方面,這嚴重製約了計算機廠商的生產力。大部分工程師不得不做沒什麼技術含量的重複勞動,比如把一臺磁帶機設計出來後,技術人員必須做同一臺磁帶機與各種機型匹配的大量改造工作。

 

另一方面,這讓客戶的使用體驗極其糟糕。當客戶想換機器時,不僅需要更換機器本身,還需要更換外部裝置,重程式設計序。尤其當時大部分程式是用匯編語言編寫而成,移植工作量很大,而且即便把程式移植到效能快一倍的機器上,實際速度卻不會增加多少,還需等廠商的技術人員來做專門匹配優化。總之,費時、費力又費錢。

 

小沃森得知,IBM的現有產品還能在市場上掙扎兩年,因此必須在兩年內推出高增值的新產品才能在競爭中大幅領先。而在利爾森看來,坐以待斃確實是一種風險,他性格強硬,執行力和好勝心極強,在整個職業生涯都在關注如何將新產品推向市場,所以當決定要做新產品時,他會雷厲風行地將其推行下去。

 

在公司內部,還面臨著一場部門間的暗鬥,由於最新的1401在市場上大受歡迎,一些工程師團隊比較牴觸開發更龐大的計算機。同時,正在研發中的機器還有IBM 8000,但剛剛擔任這一團隊工程經理的鮑伯·伊萬斯(Bob O. Evans)認為,8000的設計自始至終都沒有將科學應用和商業應用結合起來,因此要求暫停該產品的研發,現在應該要做相互相容的新機器,還提議未來所有系統採用最新的固態邏輯技術(SLT),使IBM的機器更具競爭力。

 

但這遭到了領導設計8000系列機器的布魯克斯團隊的反對,他認為,重新研發新機型意味著至少還要花兩年時間才有結果。好幾個月爭論不休,有一次伊萬斯甚至給布魯克斯打電話,悄悄提到後者要加薪,但後者說了幾句感謝的話後,伊萬斯直截了當地說這事跟他沒關係。

 

於是,利爾森引入了第三方部門的高階工程師傑瑞·哈達德(Jerrier A. Haddad)分別研究了他們各自的提議,最終哈達德建議採用伊萬斯的方案。在爭論六個月後,8000專案於1961年5月停止研發,這讓布魯克斯團隊感到心碎了一地。

 

布魯克斯還在為8000專案的失敗耿耿於懷。不過,讓他驚訝的是,伊萬斯隨後主動要求布魯克斯負責制定計劃以開發相容的新機器,伊萬斯展現出的胸懷讓他欣然接受了這個任務。兩個工程團隊開始合作,在新機器路線上做出了重大貢獻。

 

IBM內部逐漸達成一個共識。1961年10月,在小沃森的拍板下,利爾森召集了代表系統程式設計、研究工程和開發的特別委員會SPREAD,將他們關到一個旅館,限令在年底前提出一個新產品線研發總體方案。

 

 

經過兩個月的綜合研判,1961年12月28日,一份有長達80頁的文件《處理機產品―SPREAD工作組的最後報告》誕生了,也就是System/360計算機系統的總體方案。布魯克斯在一次專門會議上解讀了報告的重點內容:

 

  • 需要一個單一的、相容的機器系列 ,涵蓋現有最小記憶體的機器,例如可能低於1401到功能最強大的7094型機器。事實上,報告對相容性的範圍表達了質疑。

  • 新機型的目標不應該僅僅是取代1401或7000系列,而是要開闢一個全新的計算機應用領域。當時,這些機型和新產品線之間的相容性並不被認為是最重要的,因為新機器出現的最初時間表已經被延長了好幾年。

  • System/360必須同時具有商業和科學應用。 這是一個艱鉅的雙重任務,因為商業機器可以接收大量的資料,但卻沒有多少處理能力,而科學機器只能處理相對較少的資料。為了達到這一目的,他們決定新生產線上的每臺機器都將配備不同大小的記憶體。此外,新機器將提供各種最新技術特性,如“浮點計算”、“可變字長”和“十進位制指令集”,以處理科學和商業任務。

  • 資訊輸入和輸出裝置以及所有其他外設必須有“標準介面” ,以便各種型別和大小的外設連線到主計算機。這也成為新生產線的一個重要特徵。

 

儘管這次報告的反響並不好,但沒有真正的反對意見。當時《報告》估計,System/360作業系統將不得不花費1.25億美元,而當時他們每年的程式設計支出不過在1000萬美元,所有人都意識到這是一項黑洞式任務,所有資源都可能會被它吸走。

 

在方案實施和管理機制上,工作組提出了一套詳盡的管理和監控機制,確保管理層和部門經理能監控專案的各方面進展。

 

為了讓工程師有充分的創新空間,在設計和工程實施中發揮他們的聰明才智,方案還將體系結構的定義和實現分開。比如地址格式和資料格式這種事關全域性的工作不可輕易更改,而像“微程式設計”這種來自研究部門的新技術,如果工程師有更好的方法實現同樣功能,可以進行替換。

 

 

總之,從“360”這個命名就能看出新機器的野心,IBM要為使用者提供全方位無死角的服務。新機器要同時支援科學計算、商業應用和資訊處理,讓一套程式執行在所有系統上。所有機器都使用標準介面,以此取代市面上的所有計算機,包括IBM現有的“各自為政”的八款機器。

 

但這畢竟是書面規劃,在真正實踐中,這個極其巨集大的目標充滿各種意想不到的陷阱,讓他們像在一個滿是沼澤地的無人區行進。

 

2

摸著石頭過河

 

在360的方案確定後,IBM管理層任命了這一專案的相關負責人。主管設計工程的總負責人正是29歲的布魯克斯,在這之前,他擔任IBM的Harvest和世界上第一臺流水線計算機STRETCH的體系結構設計師。

 

布魯克斯負責協調4個小組的工作,其中3個小組都由金·阿姆達爾(Gene Amdahl)領導,IBM的最後一種電子管計算機IBM 709就出自他手,此外,他還擔任過第一臺全電晶體計算機IBM 7030的設計師。

 

他們就360系統技術問題進行了多次商討,最終決定實現“相容性”這一全新思路:儘管360系列在型號上會有區別,但它們都必須能夠用相同的方式處理相同的指令,具有相同的軟體,配置相同的磁碟機、印表機等外設,而且能夠相互連線在一起工作,此外在更換新機器時不用再更換外設。

 

正式動工後,他們會發現,360專案的推進遠比他們想象的要艱難,除了解決技術難題,他們還面臨人員協調、資源調動等難題。但開弓已沒有回頭箭。

 

每一個難題都讓小沃森夜不能寐。在回憶錄裡,他提到了兩大風險:首先是要協調來自歐美等地不同的工程團隊,他們同時在研發六種新計算機和各類外設,但最終要將所有硬體都聯結起來。

 

為了推進System/360的研發,利爾森採用了一種“摩擦式互動(abrasive interaction)”的管理手法,把小型機團隊的頂尖工程師提拔成為大型機部門中最優秀開發團隊的負責人,迫使IBM內部不同的工程團隊通力合作。

 

其次,IBM決定自己為這個新系統制造相應的電子部件,這是條燒錢路線。他們必須自己製造積體電路,因為買不到現成的晶片。不過,新建一個積體電路製造廠,對生產環境要求極為苛刻,成本超過普通廠房的四、 五倍。

 

更大的挑戰在於編寫可能是一個百萬級程式碼的作業系統,沒有工程師參與過這麼龐雜的程式設計重任,而後投入的人力資源更是遠超預判。

 

 

就在他們如火如荼研發360機型時,1963年年底,IBM的舊生產線開始抵擋不住競爭對手的攻勢。為了提早拖住使用者轉向的勢頭,他們必須儘快讓外界知道360產品的存在。1964年4月7日,在老沃森建立IBM的50週年之際,他們分別在美國63個城市和14個國家舉辦了有近萬人參加的新聞釋出會,向全世界昭告IBM System/360的誕生。小沃森稱“這是該公司史上最重要的新產品”。

 

他們向外界展示了由六臺相容機器組成的系列System/360 30、40、50、60、62和70,它們的體系結構完全一樣,只是效能上不同,相鄰兩檔機器的計算速度之差別約為3至5倍,最高運算速度可達每秒100萬次。另外,他們還發布了44種外設,包括磁帶驅動器、磁碟驅動器、印表機等,承諾會提供使一切協同執行所必需的軟體。不過,他們那天抄了一個捷徑,當天展示的裝置並非都是真實的,有些展品只是木製的模型

 

由於釋出的許多新概念和最新技術,System/360在外界的反響非常熱烈。作為一種多用途產品,System/360多達248個數據傳輸終端可以與計算機進行通訊,即使計算機忙於批處理作業。它不僅能夠處理小型二進位制、十進位制或浮點計算,還可以處理科學或商業工作。

 

最突出的核心功能當然是相容性。它可以讓龐大的資料中心安裝一臺小型360計算機,然後升級到更龐大的計算機,而無需重寫軟體或更換外設。同時,一旦工程師熟悉了這一新系統,就不必再學習更多新知識來做升級。

 

 

IBM還為360專案構建了自己的固態邏輯技術,密度是當時技術的10 倍,可靠性是100倍。它還製造了從電路到記憶體、儲存、印表機和螢幕的所有即插即用的元件,處理器和儲存器都安裝在一個名為“主機”的金屬機櫃。此外,它還將設計與構建分開,因此可以複製系統。System/360的製造成本也進一步降低,並且易於定製以滿足相對廣泛的客戶場景。

 

但是,System/360的長征只走了一半,釋出會的成功並不意味著專案已經成功。

 

3

豪賭50億美元

 

4月宣佈新產品後,IBM進入規模化生產時期,實際上,這是其歷史上最危險的時刻。

 

釋出會後的一個月,來自全球客戶的360訂單超過100000臺,而同年在英國、西歐、美國和日本安裝的各類計算機總共也就20000多臺。IBM承諾1965年第三季度交付首批小型計算機,1966年第一季度交付大型計算機。

 

與此同時,360專案的投入不斷加註到讓人咋舌。通過粗略估算,他們將為System/360的研發投入50億美元,其中研製經費5億,生產裝置投資10億,推銷和租賃墊支35億。要知道,美國研製第一顆原子彈的“曼哈頓工程”也才用了20億美元。這筆費用是IBM在1962年營收的兩倍,他們還僱用了7萬多名新員工。

 

IBM為自己爭取了兩年時間來生產機器,如果不能按時交付就會功虧一簣。

 

當然,生產問題無可避免。巨大的訂單數量嚴重影響了生產質量,儲存器磁芯的製造難度,再加上不少機器因為電子電路不完整嚴重延誤了交付工期。同時,隨著製造活動在全球展開來,由於小沃森的弟弟Arthur K. Watson管理不足,協調活動和製造機器方面由此衍生出各種問題,他忍痛將弟弟調整到其他部門,但這也傷害了弟弟的自尊,多年以後,小沃森都覺得很是內疚。

 

軟體問題同樣阻礙了System/360的生產。即便在今天,很多專案的上萬行程式碼都是一團糟,更不用說這個百萬級程式碼量的作業系統,讓360作業系統一次執行多項任務還要確保高效性並非易事。同時,應用程式和程式設計支援等也是令人頭疼的頑疾。

 

 

漏洞百出的重重壓力之下,1964年10月,IBM宣佈產品交付嚴重延誤。

 

在360系統上,他們新增了1000名工程師來追趕工期,這使得IBM在軟體方面的投入比硬體還多,不過投入更多的工程師參與專案基本於事無補。基於360系統的實踐經驗,布魯克斯在1975年出版的《人月神話》一書中給出了他的見解:生孩子需要經過十月懷胎,不管把這個任務交給幾個女人完成都一樣。

 

很多人每週工作近100小時,到處都是焦慮的灰暗 氣息。一次,當小沃森去視察工作進展時,不認識他的工程師大吼著讓他滾出去,不要影響他們工作,小沃森灰溜溜地離開了。有些經理和工程師由於難以承受諸多壓力而選擇辭職。

 

好在,他們在五個月內奇蹟般地解決了很多問題,產品得以如期交付,儘管新交付的360機器的質量還是有部件短缺、程式bug等諸多缺陷,幾乎每個早期客戶都會遇到一些問題。

 

IBM的同行也對其新產品線做出了迴應。GE、霍尼韋爾、NCR等抱團推出了與對方機器相容的系統,除了沒有相容IBM的機器。一些小規模的公司決定製造與IBM相容的機器,包括RCA以及歐洲和日本的其他公司。

 

即便如此,System/360的歷史性創新使它遙遙領先於競爭對手。1966年底,他們建造和安裝了大約8000臺360機器,IBM的收入幾乎翻了一番,達到40億美元左右,稅前淨利潤達到10億美元,而到1970年又幾乎翻了一番,達到70億美元,員工人數從360專案之前的120000人增加到269000人。

 

到1970年代時,IBM佔據了全球大型機市場70%的份額,其中催生出很多現代化應用的初代模型,包括銀行ATM交易系統、航空業線上票務服務,期間幫助NASA運行了阿波羅太空計劃。在360推出25年後的1989 年,基於其架構及擴充套件裝置的產品收入佔據IBM總營收的一半以上,每臺計算機價格超過10萬美元。

 

50億美元的孤注一擲最終為IBM帶來了鉅額回報。

 

4

劃時代的傑作

 

IBM System/360的出現無疑是一個劃時代傑作。它讓大型機行業改頭換面,極大推動了未來計算機行業的變革——即便他們一開始只是出於提升自身商業競爭力的目的。

 

它幫助IBM擊退了市場上各大競爭對手,得以在20世紀80年代前一直穩居計算機行業的主導地位。這背後主要是因為System/360的技術創新推動了市場對計算的整體需求,消除了計算機技術的諸多謎團,使得多工程師在該機器上執行軟體。

 

值得一提的是,不同於OneFlow此前寫過的Multiflow公司,基於VLIW這種顛覆性的單一原創技術去製造新型計算機,System/360的成功更多是組合了當時的諸多新想法和新技術,最終產生了巨大的聚變效應。

 

他們以市場需求為導向,按近10年技術發展的預測去實現產品。比如,System/360必須提供的新功能:大記憶體、遠端通訊和處理、互動式模式、多使用者環境。他們還提出通用性和計算機家族等革命性概念。為了解決這些問題,在技術實現上他們儘量採用最新技術,比如超大主儲存器、固體邏輯技術(混合積體電路)、中斷處理、優先順序,用微程式設計實現複雜指令等。

 

這一切的核心在於OS/360作業系統,這個最終花費了5億美元的系統成為計算機行業事實上的標準,更為後來的大型軟體研發留下了寶貴經驗。System/360的程式碼量從一百萬行最終增長到了一千萬行。

 

尤其相容性思想是一個偉大的觀念革新。它第一次實現了相容多款機型,在一定程度上解決了使用者在升級計算時遇到的重程式設計問題。這套新系統提升了新功能的價值,並使IBM能以相對較低的成本生產新機器。在它之後,他們很快就生產出與其相容的IBM 370,運算速度最快的370/168機型可達到每秒250萬次。

 

System/360還有其他一系列技術創新。軟體工程的必讀“聖經”《人月神話》第五章“畫蛇添足”中提到了動態連結庫、執行時快照和除錯等開創性工作。此外,IBM將其資料格式由當時最流行的6位位元組轉變成了現在所用的8位位元組,使System/360滿足各種計算處理的需求。而它所推出的固態邏輯技術是積體電路的先驅,使得機器比當時的競爭產品更快、體積更小。

 

當然,System/360的優勢後來也成為它的弱點,由於它採用同一種體系結構的計算機家族,所以一旦競爭對手發現其體系結構的缺陷,就可以打擊IBM的全線產品。但這是另一個故事了。

 

Vincent Learson, Bob Evans, Frederick Brooks, Erich BIoch, Gene Amdahl

 

更重要的是,小沃森、利爾森的強大魄力和冒險精神使這一切變成可能,後來參與設計System/360的關鍵人物也獲得了極高榮譽。


作為System/360和相關專案背後的主要驅動力,利爾森隨後接班小沃森成為IBM總裁。憑藉在此專案中的傑出貢獻,負責相容性目標和整個System/360事業的工作組組長伊萬斯由於升任IBM技術副總裁,並且與工作組成員布魯克斯被並稱為“IBM/360之父”,1985年,他們還與架構經理艾裡奇·布洛赫(Erich BIoch)一起獲得了美國國家技術獎。

 

布魯克斯提出許多現代計算機體系結構新概念,比如“計算機架構”一詞,他還發現了軟體開發的“布魯克斯定律”,他曾提出程式中斷系統理念,這啟發了世界上首個互動式多道程式作業系統的設計,讓使用者在擊鍵時就能看到螢幕顯示,而計算機執行卻不會產生混亂。1999年,他獲得了圖靈獎,以表彰其“對計算機體系結構、作業系統和軟體工程作出了里程碑式的貢獻”。

 

工作組成員阿姆達爾發明了計算機體系結構理論中的“阿姆達爾定律”,即平行計算的能力受限於序列指令。他在1969成為IBM Fellow,但在1970年被IBM否決掉開發巨型機計劃後,他連續創辦了阿姆達爾公司、三部曲公司、CDS等五家計算機公司。

 

布洛赫主要負責固態邏輯技術的研發,為System/360提供卓越的功率、速度和記憶體,所有這些都成為了計算的基礎。他在IBM工作了32年,期間還開發了STRETCH超級計算機系統,曾被任命為IBM資料系統部門的副總裁。

 

System/360之後,再也沒有出現將如此量級的投入押注到一款產品系列的案例。甚至,小沃森制定了一項政策:“永不宣佈將超過25%以上的產能專門投入於其中的新技術。”

 

如今,它所帶來的技術創新和對計算機產業的影響,至今還在發揮巨大作用。可以想象,如果沒有IBM System/360,計算機的大眾化將嚴重滯後,PC資訊時代的繁榮也將無從談起。

 

主要參考資料

 

1.《計算機簡史》,馬丁坎貝爾-凱利等著,蔣楠譯

2.《小沃森自傳》,小托馬斯·沃森、彼得·彼得著,梁卿譯

3.https://mp.weixin.qq.com/s/NsPn4S2z2M4LHQULdNLICg

4.https://www.ibm.com/ibm/history/ibm100/us/en/icons/system360/

5.https://www.theregister.com/2014/04/07/ibm_s_360_50_anniversary/

6.http://tipc002.informatik.uni-leipzig.de/cs/Literature/History/FiveMillGamble1.pdf

7.https://spectrum.ieee.org/tech-history/silicon-revolution/building-the-system360-mainframe-nearly-destroyed-ibm

8.https://cacm.acm.org/magazines/2019/2/234352-a-new-golden-age-for-computer-architecture/fulltext

9.https://www.nytimes.com/2016/11/30/technology/erich-bloch-who-helped-develop-ibm-mainframe-dies-at-91.html

 

其他人都在看

歡迎下載體驗OneFlow新一代開源深度學習框架:https://github.com/Oneflow-Inc/oneflow/

 


本文分享自微信公眾號 - OneFlow(OneFlowTechnology)。
如有侵權,請聯絡 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。