首頁>科技>
來源:technews(臺) 作者:痴漢水球俗語說的好,有人的地方就有「江湖」和「政治」。同理可證,有產品的公司就有「腰斬」、「中止」和「任其自生自滅」,處理器業界亦不可免俗,計算機工業的歷史洪流充滿無數無緣與世人見面的夢幻逸品,與漸漸被後人遺忘卻開闢嶄新時代的曠世鉅作。

不學無術的筆者,再次野人獻曝,簡述知名的夢幻處理器,這深入迷霧的探險過程,不僅讓各位一窺廬山真面目,更是一段橫跨超過半個多世紀光陰的宏大敘事曲與記錄計算機工業演進的顯微膠捲片。

1960 年代:計算機結構、商業大型主機與超級電腦的誕生

要挑選出一家最能代表計算機工業的商業公司,只要對歷史脈絡不會太不熟,多半還是會想到那大大的「三個大寫英文字母」。不過這家公司也並非在所有領域「叫我第一名」,更多是「後發先至」,因一度領先的競爭者都紛紛成為歷史遺蹟,所謂「英雄就是比氣長」大概就是這回事。

第二代(晶體管)與第三代(集成電路)電腦交錯期的1960 年代,可謂計算機工業的曙光期,奠定今日我們對「電腦」的基礎認知,包含提升執行效率的指令流水線處理(IBM 7030 ″Stretch″)、讓更換電腦也不必替換軟件的指令集回溯兼容性(IBM System/360 家族)、高可靠性的商業導向大型主機(IBM System/360 家族)、以浮點運算為主的高性能運算超級電腦(CDC6600)、處理器必備武裝Cache 存儲器(IBM System/360 Model 85)與構成今日高性能處理器微架構的動態指令排程與亂序指令執行(IBM System/360 Model 91),都是這時期的產物,距今超過60 年。

▲ 漫長的計算機工業歷史,第三代電腦(集成電路)先驅的IBM System/360 可謂最重要的主角,沒有之一,奠定今日對電腦的基本認知,相同指令集架構的電腦可彼此軟件兼容、微碼(Microcode)控制單元、軟盤機(存放微碼)、虛擬化、Cache 存儲器、「1Byte(位元組)=8Bits(位元)」的工業標準、虛擬存儲、亂序指令執行,堪稱近代電腦技術發展的縮影。

「兼容性」並非理所當然的天賦人權

不過開始過目「受害者清單」前,得先稍微瞭解當時市場競爭態勢與產品技術概況。

1961 年IBM 可謂統治電腦市場,北美擁有超過三分之二市佔率。當年問世的IBM 7030 ″Stretch″,是史上第一臺通用的指令流水線化(Pipeline)電腦與IBM 首款「晶體管化(第二代電腦)超級電腦」,利用四級流水線,互相重疊指令擷取、解碼和執行得到1.6 倍效能,目標比前代IBM 704 快100 倍,也是暱稱「Stretch」(延伸)的由來。

▲ 由Gene Amdahl 操刀的IBM 7030 ″Stretch″(1961 年)是計算機工業史第一臺導入指令流水線的電腦。

在那個時代,不同電腦都有自己的獨特指令集、專用操作系統與外圍設備,意味購入或升級新電腦,就需要整個「砍掉重練」,連程序都要重新編寫,極度不便,也嚴重妨礙電腦普及。

有鑑於此,一年營收25 億美元(約今日230 億美元)的IBM,1961 年12 月啟動人類史上規模最大的商用產品開發計劃(號稱僅次登月計劃和航天飛機),耗資50 億美元(約今日的460 億美元)、僱用6 萬多名新員工、新建5 座工廠,歷經4 年,1964 年4月7 日推出六種規格的System/360商用大型主機(Mainframe)和超過40 種擴充外圍,開啟第三代(集成電路)電腦序幕,價格從最低13 萬美元一路延伸到最頂規550 萬美元,客戶可照需要選購不同機種和配件,或更省力全部用「租」的(這是大型主機常見的商用業模式)。

▲ 直到IBM System/360 於1964 年出現後,世人才知道「原來升級電腦後,我還可以繼續用現有應用軟件與外圍硬件」,這對電腦普及是最重要的一步。

最終到1971 年,包含NASA(美國太空總署)特化機型(曾在登月計劃扮演重要角色),總計出現14 個System/360 型號,統一執行相同OS/360 操作系統,共用一致系統外圍設備,徹底改變人類對電腦的理解,「兼容性」從此成為計算機工業的「基本價值觀」,催生「計算機架構」(Computer Architecture)這象徵「指令集向前兼容」的歷史性名詞,也讓開發軟件和研發外圍,成為具高度獲利價值的產業。對客戶來說,可視眼前需求選購合用機型,日後升級亦可沿用現有軟件與外圍,這也是今日司空見慣的常識,但在那遙遠的年代,卻不是理所當然的「天賦人權」。

值得注意的是,即使System/360 奠基於微碼(Microcode)之上的CISC(複雜指令集電腦),但相較後進「同儕」,如DEC VAX 和英特爾x86 / iAPX432,指令編碼格式和與定址模式(Addressing Mode)的對應關係,還是較簡潔有條理,也讓人不得不納悶這票「後輩」到底在想什麼,尤其是英特爾。就筆者印象所及,CISC 指令集唯一能與System/360 媲美者,好像也就只有Motorola 68000 了。

▲ 相對「毫無道理可循」的英特爾80x86(指令長度介於1~17Bytes)、亂成一團的DEC VAX(指令長度介於1~54Bytes)和史上最恐怖的英特爾iAPX432(指令長度介於6~321″Bits″,你絕對沒看錯),更古老的IBM System / 360 指令編碼格式卻異常簡潔優美,也一路發展到現在64 位元System z 大型主機。

開創計算機結構的System/360,發表後第一個月就賣出超過一千臺,之後半個世紀,以System/360 為首的IBM 大型主機產品線,貢獻藍色巨人超過一半利潤。最新成員System z 更位居服務器世界頂峰,成為無數金融業核心帳務不可或缺的最可靠心臟。

System/360 主架構師Gene Amdahl(也曾負責IBM 7030)以「Amdahl′s Law」(針對電腦系統某特定元件最佳化,觀察能改變多少整體系統效能)聞名於世。當時專案經理Frederick Brooks 事後根據System/360 軟件開發經驗,寫成《人月神話:軟件專案管理之道》(The Mythical Man-Month: Essays on Software Engineering),記述人類工程史上里程碑式大型複雜軟件系統。美國企管學家Jim Collins 在《從A 到A+》(Good to Great)將IBM System/360 與福特T 型車、波音第一款噴氣機波音707 齊名,列為史上最重要的三項企業成就。

源自二戰美國海軍密碼破解團隊的CDC 與定義「成功的超級電腦」的CDC6600

稱之為「人類歷史上最偉大電腦」大概不會有太多人敢反對的System/360,既然如此成功,為何會冒出被腰斬的全新產品?就只因一家1957 年草創時只有30 幾個人的小公司CDC(Control Data Corporation)。但這些人來頭可不小,神秘且顯赫,都是來自二次世界大戰期間,美國海軍破解德國和日本密碼的極機密工程團隊,成員含首席架構師、大名鼎鼎的超級電腦大師Seymour Cray。

和System/360同年的9 月,有每秒300 萬次浮點運算、足足是IBM 7030 三倍的CDC6600,1969年前都佔據最快電腦寶座,銷售總數超過100 臺,定義了日後人類對「高性能運算」(HPC,High Performance Computing)和「超級電腦」(Super Computer)的觀感。少少34 名員工(只有14 名工程師和4 名程序設計師,剩下就是行政打雜看門之類)就能打造出這麼高性能的產品,對IBM 高層更是極大的刺激。

▲ 由超級電腦大師Seymour Cray 主導設計的CDC6600(1964 年),可謂世界第一臺「成功的超級電腦」,也讓HPC 從此與高性能浮點運算劃上等號。

CDC6600 之所以如此誇張,不外乎大量採用「超越時代」手段:近似超標量(Superscalar)的多派發指令執行單元,貌似亂序指令執行(Out-Of-Order Execution,OOOE)的記分板(Scoreboard)動態指令排程,神似多線程(Multithreading)的共用外圍處理器(Peripheral Processor),RISC(精簡指令集電腦)存儲器載入/回存(Load / Store)架構、僅有兩種運算元定址模式與區區74 個指令,以上種種都使CDC6600 成為RISC 與眾多先進處理器高性能技術的起源。

假如要筆者用最短文字描述「大型主機」(Mainframe)和「超級電腦」的差異,唯一可想到的是「前者必須永不停機跑COBOL,後者則要吃奶加速衝FORTRAN」。相信內行人馬上就瞭解筆者想表達的意思。

▲ 透過多達10個指令執行單元、「多線程共享」的外掛輔助處理器(Peripheral Processor)以及在指令執行的過程中可追蹤指令間相依性的記分板(Scoreboard)以變相達成某種程度的亂序指令執行,CDC6600 實現前所未見的超高性能,並重打擊IBM 高層的信心。

前面提到IBM System/360 以「兼容性」著稱,那CDC6600 後面又如何?後繼機型CDC7600(原CDC6800)為了避免「犧牲性能」,就僅維持「高級程序語言原代碼的可攜性」(意思就是重新編譯代碼),且連操作系統也不同。以今日觀點看,為追求性能放棄兼容性看似捨本逐末,但在那個時代卻習以為常。

功敗垂成的IBM ACS

IBM 原先1961 年啟動實驗性專案「Project-Y」,目標達IBM 7030 百倍效能,1965 年轉為加州ACS-1(Advanced Computer Systems-1)計劃,動員超過200 名工程師。但IBM 在1968 年5 月卻要求ACS 須兼容System/360,並改名為ACS-360。很明顯的,要「兼容CISC 的System/360」並「性能超越『類』RISC 的CDC6600」完全相互矛盾。因此掙扎了一年,IBM 還是在1969 年5 月黯然中止ACS-360,也失去大量研發人員。

但塞翁失馬焉知非福,IBM ACS 並非一無所獲,不但得到比CDC6600 更多「前RISC」相關技術與諸多創新,更在編譯器領域有突破,特別是IBM 首位女性院士、也是第一位得到計算機工業最高榮譽「圖靈獎」(Turing Award)的女性Frances Allen,就是ACS 團隊的一員,並在IBM 任職長達45 年之久。

劃時代的電腦:IBM System/360 Model 91

但這筆者不得不提及劃時代的電腦:IBM System/360 Model 91。

▲ 近代高性能處理器微架構必備的亂序指令執行,核心技術「暫存器重新命名」(Register Renaming)背後的靈魂「Tomasulo 演算法」,就是由IBM System/360 Model 91 為起點。上圖攝於美國太空總署戈達德太空飛行中心(NASA Goddard Space Flight Center)。

原名Model 92 的Model 91,原先寄望性能可抗衡CDC6600,並有System/360 的指令兼容性。System/360 引入很多嶄新觀念,包含暫存器重新命名(Register Renaming)的Tomasulo 演算法、動態偵測存儲器危障(Memory Hazard)、廣義的運算元前饋(Operand Forwarding)機制,講白話點就是「各位今天眼前看到所有亂序執行就是這樣誕生的」,System/360 Model 91 更是第一臺使用多通道存儲器(Multi-Channel Memory)技術的電腦。

開創大量先進技術的System/360 Model 91,也成為當時最強的整數運算王者,每秒最多可執行1,660萬個指令(16.6MIPS),假若不管指令集架構的差異和每個指令的平均工作量,這相當於「1991 年」時鐘頻率20MHz 的英特爾80486SX 或40MHz 的AMD 80386DX。

不幸的是,設計高複雜度使其較晚上市,且只賣了少少幾臺(生產總數,據信不超過20 臺),市場並不成功,導致第一臺有Cache 存儲器的Model 85 還賣比較好。至於鄉野流傳IBM 發揮「簡報王」本色,藉由耳語相傳不存在的System/360 Model 92「暗示」潛在客戶不要急著買CDC6600,乖乖等IBM 新產品的稗官野史,就不在本文討論範圍了。

無論System/360或CDC6600,關鍵技術和諸多想法都逐漸消失的25 年後,1990 年代再度復活──但僅限西方世界,下一篇文章的結尾會提及冷戰時期的蘇聯。

行文至此,是否各位有股「啊,原來一切的一切,早在半個多世紀前就結束了」之慨?

1
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 英國禁用華為,如今英國電信4萬人罷工,英華人的“報應”來了