電腦的起源(2/2)

電腦的起源(2/2)

撰文/Martin Campbell-Kelly|譯者/王怡文
轉載自《科學人》2009年10月第92期

戰爭帶來劇變

1941年12月7日,日軍空襲美國海軍基地珍珠港,美國正式參戰。美軍動員代表著需要更多發射表,每張表內含約3000個欄位,即使有微分解析機,積壓在亞伯丁的計算工作還是不斷增加。

亞伯丁北方約130公里的賓州大學摩爾電機工程學院,也有一台不同的微分解析機。1942年春,當時35歲、在該學院擔任講師的莫克利(John W. Mauchly)想到一個加快計算的點子:做一台用真空管取代機械零件的「電子計算機」。莫克利是個理論型的人,不過他在學院裡找到了能補其不足的年輕研究員,那就是精力旺盛、已閃耀出工程天才光芒的艾克特(J. Presper Eckert)。

莫克利發表的原始提案,在遭受各種意外及官僚作業而延遲一年之後,終於到了陸軍中尉高斯汀(Herman Goldstine)手裡。高斯汀是芝加哥大學數學博士,時年30歲,負責亞伯丁與摩爾學院間的技術聯絡,他在數天內就取得計畫許可。1943年4月9日,電子數值積分計算機(Electronic Numerical Integrator and Computer, ENIAC)開始建造,正好是艾克特的23歲生日。

許多工程師強烈懷疑ENIAC成功的可能性。當時的常識認為真空管的壽命約3000小時,而ENIAC的最初設計使用了5000個真空管。就損壞率來看,機器運作不到幾分鐘就會因為某根真空管壞掉而停下來。然而艾克特明白,是開開關關的壓力讓真空管容易壞,他知道廣播電台就是因此從來不把播送真空管關掉。如果真空管的運作電壓明顯低於額定電壓,還能更持久(這部機器完成時,總共用了1萬8000根真空管)。

艾克特的團隊花了兩年半完成ENIAC。竣工後的ENIAC是工程傑作,一部27公噸重的龐然大物,耗電150千瓦,每秒能執行5000個加法,計算彈道的時間比砲彈打到目標還短。這也是「湊巧」造成新發明的最佳實例:當時,摩爾學院並非頂尖的計算研究機構,只是剛好在對的時間處於對的位置,而且有對的人。

然而到1945年才完成的ENIAC,沒能來得及幫上戰爭的忙。它的能力也很有限,一次只能儲存20個數字。設定機器得花上數天,還要處理像忙碌的電話交換機內部一樣錯綜複雜的纜線。此外,ENIAC是設計來解常微分方程的。有些難題,尤其是曼哈頓計畫所需的運算,卻需要解偏微分方程。

1944年夏天,馮紐曼(John von Neumann)參訪亞伯丁時得知ENIAC,當時他是曼哈頓計畫的顧問。馮紐曼於1903年出生在富裕的匈牙利銀行世家,是個數學天才,很快就完成教育,23歲就成為德國柏林大學史上最年輕的助理教授。1930年他移居美國,和愛因斯坦與哥德爾(Kurt Gödel)一樣成為普林斯頓高等研究院第一批院士的一員,並且在1937年歸化為美國公民。

馮紐曼很快就看出電子計算機的威力,他在拜訪亞伯丁後的幾個月裡,和艾克特、莫克利、高斯汀和柏克斯(Arthur Burks,也是摩爾學院的講師)開會敲定下一代ENIAC的設計,亦即電子離散變數自動計算機(Electronic Discrete Variable Automatic Computer, EDVAC)。

EDVAC大幅改進了ENIAC。馮紐曼引進了馬科勞(Warren McCullough)和畢茨(Walter Pitts)這兩位神經科學家所建立的大腦邏輯運作理論概念和命名法(這就是「記憶體」一詞的由來)。馬科勞與畢茨兩人和馮紐曼一樣,都受到英國數學家涂林(Alan Turing)在1930年代末的理論研究影響。涂林設計了一款簡單的機器模型,能執行各式各樣的複雜任務。大約就在這時候,大家對計算機(亦即電腦)的認知,一致從「數學工具」變成「全能的資訊處理機」。

馮紐曼構想中的計算機有五個核心部位:記憶體儲存數值資料與操作指令、算術單元執行計算、輸入「器官」將程式和資料送進記憶體、輸出器官記錄計算結果,控制單元協調各部位運作。

這種配置(亦即計算機結構)使得更改計算機程式時,不再需要更動機器實體結構。而且,程式可以操控自己內部的指令。這個特性不只能讓馮紐曼解偏微分方程,也帶來威力強大的變通性,形成計算機科學的核心。

1945年6月,馮紐曼代表團隊寫出經典的〈EDVAC報告初稿〉,雖然內容尚不完整,還是很快就在計算機專家之間傳開,導致兩個後果:第一,再也沒有第二版;第二,後人將大部份的功勞歸於馮紐曼。

革命性的進展

接下來60年,電腦如何在社會中普及就說來話長,是另一個故事了。也許最值得注意的發展是,原本被設計用來做數學計算的電腦,後來應用無限,包括商業資料處理、個人計算,乃至於全球資訊網路的建構等。

我們可以從三個向度來看電腦的發展:硬體、軟體與結構。60年來的硬體改善可說是傳奇。笨重的電子真空管在1950年代末被換成「分散式」電晶體,也就是將一顆顆電晶體分別焊在定點上。1960年代中期,一顆矽「晶片」上的微電路含有數個電晶體,然後是數百個,接著是數千個。1970年代研發出來的微處理器,一顆晶片就能容納完整的電腦運算單元,它孕育了個人電腦,今日更被用來控制從灑水系統乃至彈道飛彈等各種裝置。

軟體的挑戰就微妙多了。1947和1948年,馮紐曼與高斯汀發表一系列報告,叫做《電子計算儀器的規劃與編碼問題》。在這些報告當中,他們為數學運算定下數十種常式,期望有低階「編碼器」能將它們轉為可運作的程式,可惜事與願違,撰寫和執行程式的過程簡直困難絕頂。第一個發現此事的是英國劍橋大學計算機科學家威克斯(Maurice Wilkes),他創造出第一部實用的儲存程式計算機EDSAC。他在回憶錄中追憶1949年的時光,懊悔地說:「實現的後果使馬力全開、朝我奔來,導致我後半輩子的大好時光都花在給自己寫的程式找錯誤上頭。」

他和其他劍橋人研發了一套把電腦指令寫成符號的方法,使整個工作較容易且較不易犯錯。電腦可以接收這種符號語言,並轉換為二進位碼。IBM在1957年首創Fortran程式語言,大幅簡化了科學與數學程式的撰寫工作。1964年,達特茅斯學院的教育家凱梅尼(John G. Kemeny)和計算機科學家庫茲(Thomas E. Kurtz)為了促使電腦平民化,並讓所有大學生都能上手,因而發明了Basic,這是一種簡單但威力十足的程式語言。有了Basic,連小學生(包括童年時期的比爾蓋茲)都開始能自己寫程式。

相較之下,計算機結構(組成電腦的子系統彼此間的邏輯配置)就沒什麼變化。今天人們所用的電腦,幾乎都和1945年的儲存程式電腦有同樣的基本結構。這狀況就像汽車的翻版,經過數十年來諸多技術與效能的提升,基本設計還是大致相同。僅管可能有截然不同且更好的設計,但電腦和汽車都遭遇到科技史學家所謂的「閉鎖現象」(closure)。數十年來的投資帶來相當可觀的收益,以致沒有足夠誘因去投資替代品。

然而電腦還是有很多徹底改變的可能性。1980年代,人們對於所謂的大量平行處理器很有興趣,它裡面包含數千個可同時運算的計算單元。這個基本結構現在仍用在需要密集計算的任務,像是氣象預報和原子能武器研究等。計算機科學家也從人類大腦尋找靈感。我們現在知道,大腦對不同的任務各有專門的處理中心,例如臉部辨識或語音理解。科學家正在將其中某些概念納入「類神經網絡」,應用在牌照辨識和虹膜辨識等任務。

更異想天開的研究則包括以DNA等生命物質做電腦,以及運用量子世界奇異特性的電腦。沒人知道50年後電腦會變成什麼樣子,也許它們的能力會超越創造它們的心智也說不定。(完)

(本文由教育部補助「AI報報─AI科普推廣計畫」取得網路轉載授權)

views