貝爾實驗室的史提畢茲打造出第一個繼電器加法器後,等了好幾個月才獲得主管批准,打造複數計算機。他為這台機器設計了許多首開先例的操作方式,包括多台輸入/輸出裝置、遠端操控、以電話線傳輸資料。就連「數位」 (digital) 這個詞都經他建議才普遍使用的。
本文為系列文章,上一篇請見:電腦先驅中的先驅——不為人知的楚澤│《電腦簡史》數位時代(六)
複數計算機——因長途電話而生,成為貝爾實驗室得力助手
1938 年春,楚澤在柏林打造 V1 已近尾聲之際,貝爾實驗室的史提畢茲終於等到主管的答覆。幾個月前,史提畢茲向主管展示只有兩個繼電器的陽春加法器 Model K,希望能夠進一步開發二進位的計算機。然而貝爾實驗室是 AT&T 成立的研究單位,研究的領域當然是以電話通訊為主。在主管眼中,繼電器是電話交換機的零件,史提畢茲卻想拿來搞數位計算機,與本業似乎毫不相干,因此遲遲未批准他的提案。
不過目前他們實驗室的確在計算上遇到瓶頸。主要是因為長途電話得靠訊號放大器增強訊號,但增強的結果,雜訊也跟著放大了,所以又得加上濾波器過濾雜訊。其中處理訊號的方程式牽涉到複數的計算(複數的基本形式是 a + bi,其中 a 與 b 是實數,i 是 -1 的平方根,稱為虛數),相當麻煩,兩數相乘就要六個步驟,相除更多達十二個步驟。
為了不要浪費數學家的時間,貝爾實驗室特地雇用一群女性計算員專門負責計算複數。雖然有機械式的四則計算器可以用,仍要耗費不少時間與人力,而且每一步驟都要先寫下計算的結果,再將它們按實部與虛部分別加總,這過程不免發生人為錯誤。於是史提畢茲的主管把他找來,確認他能開發出計算複數的計算機後,才同意進行,並指派設計交換機的資深工程師威廉斯 (Samuel Williams) 和他合作開發。
既然是專門計算複數,他們乾脆將這台機器取名為「複數計算機」(Complex Number Calculator)。史提畢茲針對複數計算的特性,設計成兩個運算單元同時運作,各自進行實部與虛部的計算。運算單元當然是使用繼電器,一共用了四百多個,但記憶單元則是改裝自現成的縱橫式交換機。
輸入/輸出裝置也是用傳遞電報的電傳打字機 (Teletype) 改裝而成,從打字機鍵盤輸入算式後,計算的結果會由同一台打字機列印在紙上。經過一年多的時間,複數計算機終於在 1939 年 10 月完工,可以在 45 秒內完成兩個複數的乘除。這計算速度似乎不是很快,但至少可以避免人為錯誤。
為了有效利用複數計算機,當機器於隔年一月正式上線時,共外接了三台電傳打字機,讓不同部門的人員可以在原地操作,直接得到答案,不須走到機器所在的位置。當有人正在使用時,互鎖裝置 (interlock) 會自動啟動,防止第二個人再連進機器,以免干擾機器運作造成錯誤。複數計算機順利運作,從此成為貝爾實驗室的得力助手,直到進入 50 年代前才退役。
史上第一遭,透過電話線操作三百多公里外的計算機
1940 年 9 月 11 日,「美國數學學會」(American Mathematical Society) 在達特茅斯學院 (Dartmouth College) 舉辦年會,史提畢茲上台展示已經運作好幾個月的複數計算器(約莫此時在歐洲那邊,楚澤也在德國航空研究所展示他的 V2)。其實這台複數計算機並不在年會現場,它仍然安置在紐約的貝爾實驗室,年會舞台上只放了一台電傳打字機,兩者透過三百多公里的電話線相連。
史提畢茲在鍵盤輸入算式後,過沒多久電傳打字機就將答案列印在紙上,令現場聽眾嘖嘖稱奇。接著他邀請台下的數學家親自測試,複數計算器也都吐出正確答案,獲得普遍讚揚。
值得一提的是,有幾位即將在電腦發展中扮演重要角色的人物也在現場,包括馮紐曼、第一台通用型電子計算機的發明人莫奇利 (John Mauchly),以及「模控學 (cybernetics) 之父」維納 (Norbert Wiener)。
二次大戰需大量防空火炮,射控系統急需自動測試
複數計算機獲得各界正面評價,史提畢茲本想乘勝追擊,爭取預算繼續改良計算機。不過對高層而言,花了兩萬美元的複數計算機已經夠用了,看不出改良的迫切性。而且此時貝爾實驗室正忙著軍方的委託案,為防空火炮的射控系統開發類比計算機,用來預判敵機的飛行路徑,實在沒有多餘人力,於是否決了史提畢茲的提案。不料一年之後,竟是軍方同樣的委託案,重啟了數位計算機的開發。
原來納粹軍隊在歐洲勢如破竹,美國眼見同盟國情勢危急,於是在 1941 年 6 月重新改組剛滿周年的「國防研究委員會」,另外成立「科學研究發展局」,同樣由凡納爾.布希領導,直接對總統負責。史提畢茲隨即被借調到科學研究發展局就職,加入射控 (Fire Control) 部門。
幾個月後美國宣布參戰,軍方的武器需求大增,貝爾實驗室隨即湧入大量訂單。原本貝爾實驗室都是靠人工計算並輸入敵機的模擬數據,以測試、修正類比計算機,如今遽增的測試工作已非人工作業所能負荷。
於是史提畢茲跳下來開發一套自動測試系統,他以複數計算機為基礎,同樣用繼電器設計出「內插值計算機」(Relay Interpolator),只要輸入描述飛行路徑的函數,計算機便利用內插法產出大量的數值,供射控系統模擬測試。
史提畢茲打造內差值計算機,進而設計通用型計算機
內插值計算機於 1943 年 7 月完工,用了 440 個繼電器,和複數計算機差不多,最大的不同在於運算程序由打孔紙帶控制,只要更換不同紙帶就能執行不同的內插法。這是美國第一部可程式化的數位計算機,比起楚澤的 Z3 已經晚了兩年,而且只做內插法的運算,不如 Z3 的用途廣。
史提畢茲隨後又設計了兩台計算機,同樣用於射控系統,但功能更強大,可以直接算出防空火炮的彈道,並即時與敵機的飛行路徑做比較。因為它們都是用繼電器打造的數位計算機,貝爾實驗室便按開發順序,將它們取名為 Mode lII 和 Model IV。這兩台計算機分別於 1944 年中與 1945 年初交給軍方使用,直到 50 年代末才退役。
由於這幾部計算機都相當成功,科學研究發展局打算投入五十萬美元,開發更大型的計算機,除了計算射表、彈道,還能讓軍方用來做各種計算。貝爾實驗室於 1944 年獲得這項通用計算機的開發案,規劃設計當然仍由史提畢茲操刀,型號依例按開發順序就叫 Model V(型號五)。
Model V 於 1946 年 7 月啟用,所用的繼電器超過九千個,重達 10 噸。它有兩套獨立的系統,各自有完整的控制單元、運算單元、記憶單元與輸入/輸出裝置,可以同時運算兩種不同問題,也可以合成一體處理較複雜的大型問題。兩套系統如何運作是由機器的主控單元指揮,主控單元有專屬的控制程式,相當於現代電腦的作業系統 (Operation System)。
史提畢茲創舉留後世,貝爾實驗室再端新技術
不過史提畢茲並未全程參與 Model V 的開發。1945 年二次大戰結束後,科學研究發展局也解除對他的借調,讓他歸建原單位。但史提畢茲決定不回貝爾實驗室,而是以私人顧問的身分為企業與政府機構提供諮詢服務。前幾年他主要還是在電腦領域,但後來就轉向生物醫學的研究了。
史提畢茲對電腦做出許多先驅性的試驗。複數計算機同時接了三台輸入/輸出裝置,雖然不能同時多人使用,仍算是後來電腦主機搭配多台終端機的最早雛型。而他在達特茅斯學院的數學年會上,完成史上首度遠端操控電腦的演示,開啟了操作電腦的另一種方式,同時證明了電話線傳輸數據的可能性。而且使用數位 (digital) 這個詞來指稱計算機也是史提畢茲率先倡議。
1942 年,他在科學研究發展局的會議中,建議計算機的類別應該用數位與類比來區分,而不是「脈衝」(pulse) 與類比。如果不是他,今天我們用的詞可能就是「脈衝電腦」、「脈衝化」、「脈衝時代」了。
至於貝爾實驗室,緊接著 Model V 推出精簡版的 Model VI 之後,就再也沒有投入計算機的開發。雖然如此,他們仍持續對電腦與網路做出許多重大貢獻,包括數據機、電晶體、行動網路、衛星通訊,乃至 UNIX 作業系統與 C 語言,都改變了數位時代的面貌。