跳轉到

蘇菲·威爾遜:手繪 ARM1 指令集的天才#

劍橋數學家的夏天#

Sophie Wilson 1957 年出生於英國里茲(Leeds),出生名 Roger Wilson。父親做過鄉村旅館生意,母親教物理。1975 年她進入劍橋大學數學系(Gonville and Caius 學院),某個暑期在當地的電子店打工,替旁人設計的「微電腦」寫韌體——這個臨時工的暑假,改變了英國電腦史。

大學畢業前後,威爾遜以 National Semiconductor 的 MK-14 單板機為基礎,設計出一台自製電腦原型。劍橋的 Chris Curry(曾效力 Sinclair)看中它,和 Hermann Hauser 一起創立 Acorn Computers,把這份設計變成公司的第一款產品:Acorn System 1——一塊帶 LED 顯示器與小鍵盤的板子,價格低到學校都買得起。威爾遜因此成為 Acorn 的元老工程師。

BBC Micro:把 BASIC 寫進一億孩子的記憶#

1981 年,英國 BBC 電視台發起「Computer Literacy Project」——一場把電腦科普進入每個家庭的國家級教育工程。政府發出招標:要有一台能把「英國進入資訊時代」具象化的電腦。Acorn 以低預算搏出位(最初樣板機甚至是前一夜在 Hauser 的廚房裡搶修完成的),中標。這台 BBC Micro 的靈魂,除了 Furber 的硬體,就是威爾遜一個人寫的 BASIC 直譯器。

當時 BASIC 直譯器的主流是微軟授權版——佔用 16K 以上 ROM,執行緩慢,語法糟糕。威爾遜認為 BBC Micro 的 ROM 只有 4K 空間,根本裝不下,所以決定自己寫。結果:她的 BASIC 功能超過微軟版(含彙編器、完整的結構化程式設計)、體積更小、更快,且免授權費。英國廣播公司把它做成「標配」,1980 年代有超過一百萬台 BBC Micro 進入學校,一代英國孩子(包括後來的不少遊戲開發者、太空科學家)人生第一行程式碼是威爾遜寫的方言。她本人後來評論:「寫編譯器的樂趣在於你要先理解語言的味道。」

車間裡的處理器革命#

1983 年,IBM PC 已橫掃市場,而 Acorn 自己的機器用的 6502、Z80 得靠進口,對英國人來說幾乎是工業恥辱。Hauser 決定:「做我們自己的處理器。」開發預算幾乎是零——Acorn 財務吃緊,只能撥三個關鍵人力:Furber 領導晶片工程,而指令集由威爾遜一人在紙上定義。

威爾遜的指令集簡化到當時不可思議的程度:沒有乘法指令(她估算過,真實程式裡的乘法少到可以用軟體實作)、幾乎不保留浮華的定址模式、27 條基本指令、全部 32 位元、全部固定長度。但最關鍵的取捨,是後來被稱為 ARM「美學」原則的東西:

  • 每條指令都有存在的理由。「如果一條指令只是匯編者的糖,就刪掉。」
  • 條件執行前綴:所有指令皆帶 4 位元 condition code,減少分支指令的數量,彌補無分支預測器的缺陷——這個設計在大陸工程師群中爭議至今,但它讓管線在許多工作負載下跑得更穩。
  • 自己寫模擬器:威爾遜在 BBC Micro 上用 BASIC +6502 彙編寫出 ARM 的模擬器,先在模擬器上執行自己的 BASIC 及整套作業系統,再讓 VLSI Technology 打樣。

1985 年 4 月 26 日,第一顆 ARM1 樣品回到 Acorn 車間,插上開發板,第一支在矽上跑的程式就是威爾遜那套 4K BASIC——從模擬器到晶片,編譯器、作業系統、測試程式,全部出自她的手。晶片一次點亮,Furber 事後承認:「這樣的成功幾乎完全歸功於蘇菲的模擬器。」

指令集之美與未竟之事#

威爾遜從不喜歡空談靈感。她形容 ISA 設計是一種「需求工程的抽象詩歌」:好的指令集在冷凍三十年後仍可編譯出高效程式,因為它捕捉的是計算的不變量,而非製程的瞬時特徵。今天全球數百億台設備中的 Arm 指令集,仍沿用她 1983 年在紙上畫出的骨架。

個人生活上,她在 1990 年代末完成性別重置,從 Roger 成為 Sophie。她曾平靜地說,晶片設計者和劍橋數學家的身分在外界看來比跨性別更「非常規」——但也是這種不合群者身分,讓她能對整個行業(包括 Intel 的 x86 複雜性)保持毫不留情的批評。當有人問她為何不創業、不上市,她回答簡短:「我是做設計的人,不是做錢的人。」