怎麼造電腦?(2/2)
![怎麼造電腦?(2/2)](https://highscope.ch.ntu.edu.tw/wordpress/wp-content/uploads/2019/08/vintage-648120_1920.jpg)
撰文/Giles Sparrow|譯者/易思婷
轉載自《BBC知識》2014年6月第34期
二元時代
1854年英國數學家George Boole建議使用「布林運算」這種邏輯系統,其中,邏輯運算的輸入值和結果有兩種可能:「真」和「偽」。但一直到美國數學家和工程師Claude Shannon在1937年對這主題發表對後世影響深遠的大師級論文後,才真正使用二元繼電器電路(使用電流控制的簡單開關),實做「邏輯閘門」來處理布林運算。
當然,現在看起來二元的好處再明顯也不過了。實做上,正確地用繼電器組合起來邏輯閘門,可以由兩個輸入值來決定一個輸出值(比如說,AND閘門只在兩個輸入值都為一的時候會產生訊號,OR閘門只需要在一個輸入值為一時就會產生訊號)。集合眾多邏輯電閘建構出來的網路,就可以在二元資料上以高速度處理更複雜的邏輯運算。
不過,其他人在同時也想出使用繼電器來建造電腦的主意。同樣是1937年,任職新澤西州貝爾電話實驗室(Bell Telephone Laboratories)的研究員George Stibitz,在他的餐桌上用電燈泡和繼電器做出一個簡單的邏輯網路。隔年,他的頂頭上司要求他根據該概念,架構一個成熟的電子機械計算機器,1940年一月Stibitz完成他的「複數電腦」(Complex Number Computer),只不過這台機器不能執行程式,所以算不上是真正的電腦。
在此同時,大西洋彼岸一位熱愛計算的工程師Konrad Zuse,也投入很大的心力研究這個主題。1938年之前,他利用少得可憐的預算,在父母親的客廳裡發展出一台命名為Z1的機器,這台機器雖是純粹的機械裝置,卻的確可以執行簡單的程式。接下來的數年,他得到德國軍方的贊助,陸續發展出Z2以及1941年的Z3。Z3使用電子機械繼電器,而不僅只使用機械開關,因此比之前的機器來得更為可靠。但隨著第二次世界大戰白熱化,德軍認為還有其他更要緊的事,於是拒絕Stibitz打算將所有繼電器全面換成電子閥門的要求。
英方的努力
然而在英國,一些有識人士卻預期計算能力將是戰事決勝的關鍵。1939年大戰正式展開之前,英國和波蘭的專家就開始努力破解、德國那方像惡魔般難以解析的恩尼格瑪(Enigma)密碼機器。波蘭失守後,集中在赫特福德郡(Hertfordshire)的布萊切利園(Bletchley Park)的英方更是宵旰努力。英方募集了國內眾多優秀的學者和工程師投入這個計畫,其中包括劍橋的數學家圖靈,1936年圖靈曾經發表一篇影響深遠的論文,即在討論「計算機器」的應用潛力。
布萊切利園團隊用盡各種方式破解德國的密碼, 從運用邏輯、直覺猜測、到剛起步的計算能力。理論上當時的恩尼格瑪和德國的其他密碼機是無法破解的,但是使用那些密碼機的人也許會不小心犯錯,那麼排列組合的可能總數當會縮小到可以處理的大小。圖靈在布萊切利早期的計畫,發展出來的密碼破譯機器「炸彈」(Bombe),即為可以高速過濾可能的密碼解答的電子機械計算裝置。
儘管炸彈密碼破譯機可以破解一般的恩尼格瑪信號,但是德國高層顯然使用更複雜的洛倫茨(Lorenz)密碼機來傳遞最敏感的指示。英方無法等待數週來破解那些訊息,必須要發展更好的裝置。
這促使他們發展出「巨像電腦」(Colossus)。巨像電腦分析用打孔卡輸入的密碼化訊息,然後與一台內建的電子模擬密碼機比對不同解答的機率。數學家Max Newman是該機器基本運算原則的發展者,電信工程師Tommy Flowers則根據設計建造該機器(參見下方〈關鍵發現〉一欄)。
![](https://highscope.ch.ntu.edu.tw/wordpress/wp-content/uploads/2019/10/%E7%BE%8E%E5%9C%8B%E5%9C%A81943%E5%B9%B4%E8%A3%BD%E4%BD%9C%E5%87%BA%E9%87%8D%E9%81%9430%E5%85%AC%E5%99%B8%E7%9A%84ENIAC%EF%BC%8C%E5%AE%83%E6%AF%8F%E7%A7%92%E5%8F%AF%E4%BB%A5%E5%BE%9E%E4%BA%8B5000%E6%AC%A1%E9%81%8B%E7%AE%97%EF%BC%8C%E9%80%9F%E5%BA%A6%E6%AF%94%E4%B9%8B%E5%89%8D%E7%9A%84%E9%9B%BB%E8%85%A6%E5%BF%AB%E4%B8%8A%E6%95%B8%E5%8D%83%E5%80%8D%E3%80%82.png)
美國在1943年製作出重達30公噸的ENIAC,它每秒可以從事5,000次運算,速度比之前的電腦快上數千倍。(圖片來源:Corbis)
在此同時,美國也有數個團隊在發展電腦,而當美國最後也進入戰場時,發展的速度更加提高。後來美國發展出了「電子數值積分計算器」(Electronic Numerical Integrator and Calculator,簡稱ENIAC)。ENIAC是John Mauchly和John Presper Eckert從1943年開始在賓州大學建造的,重達三十公噸,是個徹頭徹尾的電子裝置,內有一萬八千個電子開關,每秒可以執行五千次運算,比之前的電腦快上數千倍。
更驚人的是,ENIAC是個一般用途的電腦,可以重新程式化,以執行層面廣闊的不同任務。起初「重新程式化」的過程牽涉到實際改變連接元件的線路,但是在採用美籍匈牙利科學家John von Neumann的建議後,ENIAC的設計者很快地實做出可使用「儲存程式」(stored programs)的改良方案,使用者可以在「功能表格」(Function Table)中儲存改變電腦任務的模組化指令。1948年9月ENIAC完成改良,加入這個革新概念、新一代的ENIAC,比它的下一代EDVAC早了將近一年投入運作(而EDVAC的設計藍圖就已經納入「儲存程式」的概念)。
![](https://highscope.ch.ntu.edu.tw/wordpress/wp-content/uploads/2019/10/%E9%9B%BB%E8%85%A6%E7%A7%91%E5%AD%B8%E5%AE%B6%E6%A0%BC%E8%95%BE%E7%B5%B2%EF%BC%8E%E8%B5%AB%E6%9F%8F%E4%BD%BF%E7%94%A8%E6%89%93%E5%AD%94%E6%A9%9F%E5%B0%87%E5%95%8F%E9%A1%8C%E5%82%B3%E5%8C%96%E6%88%90%E7%A8%8B%E5%BC%8F%E7%A2%BC%EF%BC%8C%E8%BC%B8%E5%85%A5%E7%B5%A6%E8%A8%88%E7%AE%97%E6%A9%9F%E3%80%82%E7%BE%8E%E5%9C%8B%E5%9C%A81944%E5%B9%B4%E5%A4%A7%E6%88%B0%E6%9C%9F%E9%96%93%E4%BD%BF%E7%94%A8%E9%80%99%E5%8F%B0%E8%A8%88%E7%AE%97%E6%A9%9F%E3%80%82.png)
電腦科學家Grace Hopper使用打孔機將問題傳化成程式碼,輸入給計算機。美國在1944年大戰期間使用這台計算機。(圖片來源:Corbis)
「儲存程式」在電腦發展上是個大躍進,1952年程式設計師Grace Hopper做出第一個編譯器(compiler),編譯器這個程式可以將使用程式語言寫成的命令,翻譯成電腦可以了解的二元信號。這不但降低了寫程式的難度,也讓大家看到「在不同設計的機器上跑相同程式」的希望。
1950年代,電腦開始走出實驗室成為商業產品。電晶體取代體積龐大、高熱、且不可靠的電子閥門。1953年開始,第一台以電晶體架構的電腦原型開始在英國曼徹斯特大學運作。當然,從那個時代到現在的智慧手機和平板電腦,還有好長一段路要走,不過這一路上最近、最大的突破大概是1950年代晚期,由德州儀器(Texas Instruments)電子公司的Jack Kilby造出的首台使用積體電路的電腦。從此計算領域上持續發展出更小、更強大的機器。(完)
![](https://highscope.ch.ntu.edu.tw/wordpress/wp-content/uploads/2019/08/BOX%E5%9C%96%E7%89%87%E4%BE%86%E6%BA%90%EF%BC%9ACIENCE-AND-SOCIETY.jpg)
(圖片來源:Science and Society)
(本文由教育部補助「AI報報─AI科普推廣計畫」取得網路轉載授權)