Arm的故事:一家小型英國公司如何開發新的RISC架構
20 世紀80 年代中期一個漆黑寒冷的夜晚,一位年輕的學生穿過英國劍橋古老的街道,來到一座維多利亞時代的演講廳。一進大樓,他就和其他幾十名學生一起聽了一場關於新電腦硬件的演講。
發表演講的人為BBC 微型計算機的製造商Acorn Computers 工作。他的演講令人吃驚。Acorn 需要更換BBC micro 中使用的老化的8 位6502 微處理器。他們看過英特爾和摩托羅拉等美國公司的新設計,但並不喜歡,所以他們自己設計了一個新處理器。
對於一家沒有經驗的公司來說,從頭開始設計微處理器似乎很大膽。接下來的事情更加引人注目。Acorn 設計的芯片是32 位的,而不像競爭對手那樣是16 位的。它不僅速度更快,而且耗電量也少得多。
那個學生就是我。新的微處理器是第一台Acorn RISC 機器,這是我們現在稱為Arm 的一系列設計中的第一個。那天晚上有很多事情我的記憶已經消失了。我認為主持人是Steve Furber,但我有點不確定。我不相信那天晚上有新系統的演示。我確實記得對Acorn 的新微處理器感到驚訝、印象深刻並且有些懷疑。
快進將近四十年,我們現在已經不知道故事是如何發生的,而Arm 處理器設計現已用於全球數千億台設備。
在本系列文章中,我將重溫Arm 的故事,從它在Acorn 中的起源開始。因為有很多關於這個故事的優秀和廣泛的描述,所以最初我有點不願意寫Arm 的早期故事,但最後我覺得這個故事的有幾個方面值得更多關注。但最後我覺得這個故事的幾個方面值得更多關注。我希望,即使您熟悉Arm 的故事,您也會發現一些新的興趣點。
在這一系列的故事中,我們將尋求回答一個簡單的問題。為什麼這種來自一家最終失敗的小型英國公司的架構變得如此重要,並且能夠在更大的競爭中生存和繁榮?
那麼,讓我們一起穿越到70年代後期英國古老的大學城劍橋。
劍橋處理器單元
這一切都始於克萊夫·辛克萊(Clive Sinclair):一位富有遠見、熱衷於發明新玩意兒的發明家,同時也是一位成功的商人。
辛克萊在1960 年代初期開始了他的職業生涯,為電子愛好者撰寫技術指南。他很快開始銷售各種電子產品,從收音機到計算器,再到數字手錶。
1978 年,辛克萊與一個員工克里斯·庫裡(Chris Curry) 合作,推出了基於National Semiconductor SC/MP 8 位微處理器的計算機套件MK14。當辛克萊不願進一步開發MK14 時,庫裡與大學物理學研究生赫爾曼·豪瑟合作,後者也對MK14 產生了興趣。
豪瑟出生於奧地利,在離開去劍橋攻讀博士學位之前,他在維也納獲得了第一個學位。豪瑟遇到了克里斯·庫裡,後者分享了他對微處理器的熱情,並說服這位奧地利人與他一起創辦一家公司,以製造基於微處理器的產品。
新公司最初被稱為(有點像預言)Cambridge Processor Unit Limited(或CPU Ltd)。他們還需要一個商標名稱,並希望這個名稱能夠讓他們在廣告和電話通訊錄中領先於Apple。Acorn 似乎適合一家想要發展壯大的公司,因此“Acorn Computers”誕生了。
1980 年代,赫爾曼·豪瑟(Hermann Hauser) 和克里斯·庫裡(Chris Curry) 在劍橋國王學院的操場
劍橋大學計算機實驗室的安迪·霍珀(Andy Hopper)很快加入了庫里和豪瑟的行列,收購了他的公司Orbis,該公司當時正在將Cambridge Ring 網絡系統(早期的專有以太網競爭對手)商業化。霍珀成為CPU / Acorn 的董事,同時繼續他在大學的工作。
很快,他們僱用了大學裡的幾個聰明的年輕學生,史蒂夫·弗伯和索菲·威爾遜。弗伯來自英國曼徹斯特,正在攻讀空氣動力學博士學位。他加入了劍橋大學微處理器組,這個協會主要為了喜歡製造計算機的人而設,並且已經使用Signetics 2650 微處理器製造了一台機器。當初,參加了協會的會議,並且邀請史蒂夫·弗伯來擔任兼職。
威爾遜也來自英格蘭北部,在約克郡的利茲長大。豪瑟通過劍橋大學微處理器小組認識了他,因為他在低功耗電子領域具有專業知識,因為豪瑟想要製造一個“電子錢包”,現在被稱為“個人數字助理”。威爾遜分享了她一直在研究的其他設計,包括基於單板微處理器的計算機。很快,威爾遜在完成大學學位的同時也為Acorn 工作。
帶有Acorn 標誌的Acorn System 1
他們一起將威爾遜的單板設計開發為Acorn System 1。隨後是Acorn System 2 和Acorn Atom,這次是一個帶鍵盤的完整系統,所有這些都基於MOS Technology 6502 微處理器。
然後在1981 年,BBC 開始尋找微型計算機設計來配合新的電視劇。BBC 已經通過其1978 年首次播出的節目“Now the chips are down”開始了一場關於計算影響的全國性辯論。現在,在英國政府的支持下,BBC 的新系列節目將重點關注計算機知識。Acorn 出價,提出了團隊在幾天內完成的設計,與其他幾家公司競爭,包括庫裡的前任老闆Clive Sinclair 的Sinclair Research。Acorn 贏了,Sinclair 很生氣,很快就推出了他自己的ZX Spectrum,雖然不那麼複雜,但價格便宜得多。
BBC 競賽的獲勝者,最初在Acorn 中被稱為“Proton”,後來成為“BBC Micro”或親切地稱為“Beeb”。Acorn 和Sinclair 機器很快在英國個人電腦市場上大獲成功,BBC Micro 在學校處於領先地位,而ZX Spectrum 在家庭中處於領先地位。Acorn 非常成功,以至於到1983 年9 月,該公司能夠在倫敦證券交易所上市,市值超過1 億英鎊。
6502 的繼任者
BBC Micro 於1981 年底推出,但不久之後弗伯和威爾遜意識到他們將面臨更新設計的問題。它使用的6502 微處理器於1975 年首次推出,現在已經老化,沒有明顯的繼任者。到那時,英特爾、摩托羅拉和國家半導體等公司出現了更為複雜的16 位設計。
Acorn 團隊觀察了這些新出現的16 位微處理器的性能,並沒有留下深刻印象。BBC Micro 能夠通過所謂的“Tube”接口添加“第二個處理器”。這使團隊能夠快速構建電路板以支持不同的處理器,同時仍然使用BBC Micro 進行輸入和輸出。該團隊比較了6502、摩托羅拉68000、英特爾80186 和美國國家半導體32016 的性能,並對新設計的糟糕性能感到驚訝。引用Steve弗伯的話來說:
“我們已經形成了一個堅定的觀點,即計算機性能的主要決定因素是可以訪問處理器的內存帶寬。理論上32016 有一個很好的指令集,而6502 有一個原始的指令集,但如果你看一下性能,你會發現它只是隨帶寬縮放。16 位微處理器無法使用人們放入這些機器的內存中可用的帶寬。”
因此,他們得出結論,這些新的微處理器因浪費了他們使用的商用動態隨機存取存儲器芯片可用的存儲器帶寬而受到阻礙。他們對新處理器響應中斷的速度也很不滿意,這比他們從6502 上獲得的性能還差。
輸入RISC
安迪·霍珀已經意識到美國正在對一種新的處理器設計方法進行研究,並反過來向豪瑟介紹了這些想法。一天,豪瑟將一篇關於該主題的學術論文放在了史蒂夫·弗伯的辦公桌上。該論文討論了加州大學伯克利分校正在開發的稱為“精簡指令集計算機”的概念。很快,Acorn 團隊就閱讀了伯克利的RISC-1 處理器以及斯坦福的IBM 801 和MIPS 等類似設計的論文。
他們對論文中提出的方法很感興趣,尤其是RISC-1 論文描述了一個由一小組研究生開發的微處理器。於是史蒂夫弗伯和威爾遜開始開玩笑說也許他們可以製造自己的微處理器。1983 年夏天,威爾遜開始草擬一個可能的RISC 指令集。
接下來他們著手尋找更多關於微處理器設計的信息。他們前往以色列訪問National Semiconductor,與開發32016 的團隊交談。在那裡,他們對構建這種複雜CPU 的大型團隊正在進行設計的修訂版H 並且仍在修復錯誤(並且需要花費直到修訂版K 左右,直到這些錯誤被修復)。
他們還前往亞利桑那州,在那裡6502 的原始設計師之一Bill Mensch 建立了西部設計中心,並正在設計他自己的6502 擴展版本。期望找到另一座擁有數百名工程師的大型辦公樓,他們相反,他找到了郊區的平房,而Mensch 正在僱用使用Apple II 計算機的學生來幫助設計。
通過美國大學或小型商業團隊設計的架構示例,他們開始認為也許他們真的可以構建自己的架構。因此在1983 年10 月,Acorn 團隊開始認真地開發新的微處理器。
除了芯片設計團隊,沒有時間也沒有資源
豪瑟後來開玩笑說,他給了團隊兩件別人不會給他們的團隊的東西:“沒有時間,也沒有資源”。這不完全是真的,他給了他們一個半導體設計團隊!
Acorn 並不是半導體設計的新手:BBC Micro 包含兩個由Acorn 設計的芯片。英國半導體製造商Ferranti 提供了一種名為“Uncommitted Logic Array”(或ULA)的產品,其中包含許多邏輯門,但允許公司通過指定最終金屬層進行定制。BBC Micro 使用ULA 進行視頻和串行處理,以及鏈接到任何第二個處理器。
豪瑟創造了一個說法,“未來將有兩種類型的計算機公司,一種是具有矽設計能力的,另一種是已經死亡的。” 因此,在霍珀的鼓勵下,豪瑟招募了一個規模雖小(大約十幾人)但能力出眾的矽設計團隊。
Acorn 隨後與聖何塞公司VLSI Technology合作。VLSI(可以恰當地稱為Fairchildren 之一,因為其中三位創始人以前曾在Fairchild 工作)根據合同製造半導體以及集成電路設計工具。客戶可以使用這些工具來創建VLSI 隨後構建的設計。
與Acorn 的合作並不是VLSI Technology 第一次與計算機製造商合作。1982 年,史蒂夫·喬布斯(Steve Jobs) 接洽他們,為喬布斯計劃中的Macintosh 計算機設計和製造定制集成電路。VLSI 技術團隊迅速交付了一個工作原型,以Apple 工程師Burrell Smith 的名字命名為Integrated Burrell Machine,但其性能令人失望,因此並未在Mac 中使用。
Acorn 設計團隊使用VLSI Technology 的軟件安裝在昂貴的、由摩托羅拉68000 驅動的Apollo 工作站上。
因此,有了“免費”的VLSI 設計團隊,豪瑟和弗伯開始著手構建他們的微處理器。該指令集由威爾遜設計,作為第一步,他為Basic 中的設計構建了一個仿真器,該仿真器在具有6502 第二處理器的BBC Micro 上運行。弗伯反過來採用了這個初始的指令集架構設計並開發了一個微架構來實現它,兩者一起工作以隨著項目的開發改進架構。
弗伯和威爾遜的方法是務實的。他們在其他RISC 設計中採用了他們喜歡的東西,並省略了他們不喜歡的東西或者他們無法解決如何有效實現的東西。Arm 的設計並不是他們在伯克利、斯坦福或IBM 論文中看到的方法的直接複製。相反,他們採用了通用的RISC 方法,並對其進行了調整,添加了Acorn 團隊知道有用的功能。
在整個過程中,Acorn 團隊並不相信新設計會成功。一方面,他們認為RISC 顯然是一個好主意,以至於一家更大的公司會採用它並用另一種基於RISC 的設計來主導市場。另一方面,他們預計微處理器設計中一定有一些他們錯過的問題,並且會導致項目失敗。
ARM 1 指令集
威爾遜和弗伯談到了指令集和微架構設計之間的緊張關係。有些東西威爾遜可能希望包括在內,但與微體系結構不協調。在指令集的開發過程中,威爾遜、弗伯和豪瑟會在午餐時間前往當地的酒吧,討論和辯論設計的最新問題。
他們開發的設計的三個特點脫穎而出。首先,他們憑藉全32 位設計超越了當時的許多競爭處理器。其次,他們專注於充分利用(非多路復用的)三十二位數據總線可以提供的內存帶寬。最後,新處理器的尋址範圍很大,基於26 位地址,因此允許高達64 兆字節的內存,遠遠超過當時計算機設計的典型容量。
他們提出的設計的其他主要特點包括:
十六個32 位用戶可尋址寄存器(R0-R15 和R15 是一個巧妙組合的程序計數器和標誌寄存器)。
另外八個32 位寄存器可在管理員模式下訪問,有助於支持對中斷的快速響應。
一個簡單的三級指令流水線。
指令集保持簡單,符合RISC 概念。只有45 條指令具有五種不同的尋址模式。
“加載-存儲”架構,數據處理操作僅在寄存器上執行,而不在內存位置上執行。
在為新設計取名字時,考慮到它使用了RISC 概念,“ Acorn RISC MachineAcorn RISC Machine ”是顯而易見的選擇,它當然自然地縮寫為ARM。
新的ARM 處理器以6MHz 運行——低於80286 或68000 等競爭產品——但更高的內存帶寬和流水線執行足以彌補較慢的時鐘速度。該團隊甚至通過使用“頁面模式”週期來提取更多帶寬,從而加快單頁內的連續內存訪問,而廉價的動態RAM 現在可以提供這種訪問。
不過,威爾遜為ISA 添加了一些新穎的功能。大多數指令都有條件執行選項,這意味著它們將根據特定標誌的狀態執行或跳過。
該架構還包括一個“桶形移位器”。到目前為止,威爾遜和弗伯已經看到了Apple Lisa(1983 年1 月推出)和Macintosh(1984 年1 月推出),並且知道圖形用戶界面(GUI) 可能是未來前沿機器的關鍵要求。桶形移位器將使新的Acorn 設計能夠更輕鬆地處理GUI 軟件所需的操作。威爾遜和弗伯對桶形移位器的重視可以從以下事實推斷出來:實現它的電路佔據了大約10% 的矽芯片。
下圖演示瞭如何對所有(寄存器到寄存器)“數據處理”指令進行編碼。左表顯示瞭如何將指令編碼為32 位指令,右表是一個示例指令。
這條指令中包含了很多內容。它僅在“負”標誌清零時執行,並對其中一個操作數執行4 位邏輯移位。儘管如此,ARM 1 仍可以在每個時鐘週期執行這些指令之一。
即使與6502 等8 位設計相比,該指令集也非常“規則”。以至於我認為這很簡單,不僅要記住完整的指令集,而且還要記住所有指令的編碼,這對於英特爾80286 來說會更難。值得注意的是,ARM 1 指令集是由具有豐富的彙編語言編程經驗的人設計的,並沒有明確設計為編譯器的目標,就像這種情況一樣,例如,對於IBM 801。
該設計沒有浮點運算,甚至沒有整數乘法或除法,也沒有內存管理硬件,目的是在額外的支持芯片中提供這些功能。沒有緩存,因為內存仍然足夠快以保持處理器以全時鐘速度運行。
ARM 設計通常遵循Berkeley 和其他論文中闡明的廣泛RISC 原則,但有些指令顯然與RISC 不同。儘管該設計遵循“加載-存儲”架構,無法將內存訪問與數據操作結合起來,但它確實有單獨的指令來指定多個寄存器加載或存儲。
總的來說,設計仍然非常簡單。在大多數方面,它是迄今為止設計的最簡單的RISC 芯片。Berkeley RISC-1 是Berkeley RISC 項目中出現的第一個處理器設計,它使用了44,500 個晶體管並具有78 個32 位寄存器和六個14 位寄存器“窗口”。MIPS R-2000 基於斯坦福大學的工作並於1986 年推出,使用了110,000 個晶體管。相比之下,第一個ARM 微處理器使用了不到25,000 個晶體管。
第一批流片
弗伯前往德國慕尼黑的VLSI 進行一些最終測試,然後在1985 年1 月將完成的設計“流片”。第一批芯片於1985 年4 月26 日從VLSI 運抵,大約在設計工作開始後18 個月。
該團隊將芯片插入他們為其設計的電路板,並通過“管”接口連接到BBC 微型計算機,但是沒有反應。豪瑟讓團隊的其他成員解決問題,兩個小時後,他被叫回現場,因為系統已經開始工作了。一個簡單的BASIC 程序已經在屏幕上寫了一條“Hello World”消息。
因此,新的CPU、電路板和Sophie威爾遜的BBC BASIC 的新版本——用彙編語言手動編寫——為新架構首次工作。
一件值得注意的事,豪瑟團隊希望通過使用成本為幾美分的塑料封裝而不是成本為幾美元的陶瓷封裝來降低成本,構建一種低功耗設計、低成本的芯片。儘管他們打算將其用於台式機,團隊的目標還是芯片功耗低於一瓦。但是由於缺乏精確估算功耗的工具,他們犯了錯誤。
芯片從VLSI 運抵幾天后,弗伯決定測試功耗情況。儘管CPU 正在工作。他將電流表連接到CPU後,他還是驚訝地看到讀數為零。經過一番調查,他發現由通過其他引腳洩漏的電流供電的, CPU 電源引腳已斷開連接。事實證明,新的微處理器只用了十分之一瓦特,比他們一直設定的目標好十倍左右。
較低的功耗幾乎完全歸功於設計的簡單性。正如史蒂夫·弗伯(Steve Furber) 後來所說的那樣,“除了簡單之外,低功耗特性並不神奇”。
較低的功耗並沒有以犧牲性能為代價。最初打算以大約1.5 倍的VAX 11/780 性能執行,原型最終實現了DEC VAX 11/780 的2 到4 倍的性能;這大約相當於原來基於IBM 80286 的PC AT 或以16.67 MHz 運行的摩托羅拉68020 的10 倍。
Acorn 處理器比當時的一些替代RISC 設計(例如MIPS R2000)慢,但製造成本要低得多。
與Intel於1985年推出的80386形成鮮明對比。80386 使用了275,000 個晶體管,但與英特爾80386 的1.5 µm 相比,新的Acorn 處理器在使用保守的3 µm 工藝時使用了不到十分之一的晶體管,性能優於它。
威爾遜曾表示,該項目的靈感來自於“MIPS for the mass”的口號。他們設計了一種可以低成本製造的強大處理器。該團隊和RISC 概念已得到證實。
Acorn遇到麻煩
與此同時,Acorn 的業務開始分崩離析。
1982 年,由於與克里斯·庫裡的前任老闆Clive Sinclair 的持續競爭,Acorn 設計了一款機器,可以在蓬勃發展的家用電腦市場上與Sinclair Spectrum 競爭。Spectrum 使用Ferranti ULA 來大幅降低成本,因此Acorn 也採用了類似的方法。一開始,弗伯和其他Acorn 工程師並不同意:“我們並沒有那麼熱衷於進行這種降低成本的活動,但最終我們被克里斯和赫爾曼說服了,認為市場是存在的。”
結果是Acorn Electron(也稱為“Elk”),一種基於6502 的主要BBC Micro 兼容機器,它再次使用Ferranti ULA(這次有2400 個邏輯門——比之前使用的大得多)來縮小BBC 機器中使用的集成電路數量從100 多個增加到大約12 個。
Electron 的存在很快就廣為人知,因為庫里和豪瑟在媒體上談論它。但是機器一再被推遲,因為弗伯和他的團隊正在努力解決ULA 的問題。
當Electron 在1983 年晚些時候推出時,它獲得了普遍正面的評價,除了一個缺點:與BBC Micro 相比它非常慢,部分原因是該機器的內存帶寬較差。
Keith 和Steven Brain 在流行計算周刊上寫到:“Electron 的一個主要特型是RAM 的組織方式。為了經濟起見,Electron使用了四個6 4K b RAM 芯片,但由於這些芯片一次只能讀取四位,內存訪問時間實際上翻了一番,因此Electron 比BBC 慢得多。”
但是,提高Electron 的產量也存在問題。Ferranti 一直在努力生產足夠的工作ULA,並在1984 年Acorn 委託VLSI Technology 製作了CMOS 版本的電路。然而,到1984 年英國的家用電腦市場急劇萎縮。
Acorn 剩下4300 萬英鎊的不可出售股票。Acorn 還曾試圖打入美國的計算機市場,但最終以徹底失敗告終。它在1983 年的最後六個月賺取了超過500 萬英鎊的利潤,但在1984 年下半年變成了近1100 萬英鎊的虧損。
1985 年2 月,該公司不得不尋求財務幫助,它以意大利公司Olivetti 的形式出現,該公司投資超過1000 萬英鎊,以換取公司將近一半的股份。豪瑟和庫裡持有大量股份,但失去了對公司的控制權。
Acorn RISC 機器揭曉
新微處理器的開發一直是一個嚴密保守的秘密。最令人驚訝的是,在他們就購買Acorn 的股份進行談判時,甚至對Olivetti 也保密。不過,現在機器開始工作了,關於Acorn 新處理器的消息逐漸傳遍了全世界。
當弗伯於1985 年7 月打電話給記者,向他們介紹新的微處理器時,他感到難以置信。後來,1985 年11 月版的英國最受歡迎的計算機雜誌《個人計算機世界》以“新機器的靈魂”為標題,以新處理器作為封面。Acorn 新處理器的秘密揭曉。在內部,該雜誌以“RISCy 業務”字樣開頭。精簡指令集處理器(RISC) 時代已經開始……”
在大西洋彼岸,Byte 雜誌於1986 年1 月跟進,在第387 頁發表了一篇報導。對新微處理器的詳細描述以:“它代表了RISC philosophy在性能、開發時間以及它的易用性和低製造成本方面的驚人證明。”
首批ARM微處理器用於BBC Micro二代處理器評估系統。一個奶油色的“奶酪楔”形盒子,附在BBC Micro 上並標有“Acorn”。ARM 評估系統包含一個ARM 微處理器和1 兆字節的動態隨機存取存儲器。它還為這種新機器提供了一系列令人印象深刻的編程語言:Sophie Willson 的BBC Basic、C、Fortran、LISP、彙編程序甚至PROLOG。
ARM 1 CPU帶有ARM 1 CPU 的Acorn 評估系統電路板
這是第一次有人可以購買RISC 處理器。ARM1 是第一個商用RISC 處理器。ARM 評估系統現在是Acorn 團隊可用的最快的機器,因此成為該團隊用來設計ARM 微處理器及其後續產品的芯片的工具之一。現在的問題是,現在控制著Acorn 的Olivetti 將如何使用他們在不知不覺中獲得的技術。
我們將在本系列的第二部分中了解接下來發生的事情。
Chip Letter網站上作者Babbage發布了關於ARM的早期故事,詳細描述了ARM企業成長初期的歷程,半導體產業縱橫進行不改變文意的編譯整理,以饗讀者。