在標準敘事中,計算機的演變是迅速而短暫的。它始於二戰時期實驗室中存放的巨型機器。微晶片將它們縮小到桌面上,摩爾定律預測了它們將變得多麼強大,而微軟則利用了軟體。最終,出現了小型、廉價的裝置,可以進行股票交易並在世界各地傳輸影片。這是研究計算歷史的一種方式——過去 60 年固態電子的歷史。
但計算在電晶體出現之前就已存在。古代天文學家開發了預測天體運動的方法。希臘人推斷出了地球的形狀和大小。稅收被彙總;距離被繪製。然而,一直以來,計算都是人類的追求。它是算術,一種像閱讀或寫作一樣的技能,可以幫助人們理解世界。
計算時代源於對這種限制的摒棄。加法機和收銀機率先出現,但同樣關鍵的是,探索使用我們現在所說的“程式”來組織數學計算。程式的概念最早出現在 19 世紀 30 年代,比我們傳統上認為的計算機誕生早一個世紀。後來,二戰後出現的現代電子計算機催生了通用計算機的概念——一種能夠進行任何型別資訊處理的機器,甚至包括對其自身程式的操控。這些就是驅動我們今天世界的計算機。然而,即使計算機技術已經成熟到無處不在且看似無限的程度,研究人員仍在嘗試利用來自大腦、生物系統和量子物理學的新鮮見解來構建全新的機器型別。
關於支援科學新聞
如果您喜歡這篇文章,請考慮透過以下方式支援我們屢獲殊榮的新聞報道: 訂閱。透過購買訂閱,您正在幫助確保關於塑造我們今天世界的發現和想法的具有影響力的故事的未來。
差分機
1790 年,法國大革命開始後不久,政府決定共和國需要一套新的地圖來建立公平的財產稅收系統。* 他還下令從舊的帝國測量系統轉換為新的公制系統。為了方便所有換算,法國地形測量局開始計算詳盡的數學表格集。
然而,在 18 世紀,計算是由手工完成的。一個由 60 到 80 名人工計算機組成的工廠車間進行加法和減法運算,以填寫地形測量局地籍表專案表格的每一行。這是一項苦差事,不需要高於基本算術和讀寫能力的特殊技能。事實上,大多數計算機是失業的理髮師——在革命時期的法國,貴族的髮型可能會危及一個人的脖子。
該專案大約花了 10 年時間完成,但到那時,飽受戰爭蹂躪的共和國沒有必要的資金來出版這項工作。手稿在科學院沉寂了數十年。然後在 1819 年,一位前途光明的英國年輕科學家查爾斯·巴貝奇在訪問巴黎時看到了它。巴貝奇當時 28 歲;三年前,他當選為英國最著名的科學組織皇家學會會員。他對人工計算機的世界也非常瞭解——他曾在不同時期親自監督天文和精算表的編制。
回到英國後,巴貝奇決定他要用機器而不是人工計算機來複製法國的專案。當時的英國正處於工業革命的陣痛之中。曾經由人力或畜力完成的工作正在讓位於機器的效率。巴貝奇看到了蒸汽和力量、可互換零件和機械化的世界的力量,並意識到它可以取代的不僅僅是肌肉,還有大腦的工作。
他在 1822 年提出了建造他的計算引擎的建議,並在 1824 年獲得了政府資助。在接下來的十年裡,他沉浸在製造業的世界中,尋求最好的技術來製造他的引擎。
1833 年,巴貝奇慶祝了他的奇蹟年。那一年,他不僅製造出了他的計算機器(他稱之為差分機)的功能模型,還出版了他的經典著作《論機器和製造業的經濟》,確立了他作為世界領先的工業經濟學家的聲譽。他在倫敦德文郡街的家中舉辦週六晚宴,社會名流雲集。在這些聚會上,差分機模型被作為談話素材展出。
一年後,巴貝奇放棄了差分機,轉而追求一個更宏偉的願景,他稱之為分析機。差分機僅限於製作表格的單一任務,而分析機則能夠進行任何數學計算。像現代計算機一樣,它將有一個執行算術運算的處理器(“磨坊”)、用於儲存數字的記憶體(“商店”),以及透過使用者輸入(在這種情況下是透過穿孔卡片)來改變其功能的能力。簡而言之,這是一臺在維多利亞時代技術中構思出來的計算機。
然而,巴貝奇放棄差分機轉而研究分析機的決定並沒有受到歡迎,政府也拒絕向他提供額外資金。但他沒有氣餒,而是製作了數千頁詳細的筆記和機器圖紙,希望政府有一天會資助建造。直到 20 世紀 70 年代,即計算機時代深入發展之後,現代學者才首次研究了這些論文。正如其中一位學者所說,分析機幾乎就像在另一個星球上設計的現代計算機。
黑暗時代
本質上,巴貝奇的願景是數字計算。像今天的裝置一樣,這種機器根據一組指令運算元字(或數字),併產生精確的數值結果。
然而,在巴貝奇失敗後,計算進入了英國數學家 L. J. 康裡所稱的數字計算黑暗時代——這個時期一直持續到二戰。在此期間,計算主要透過所謂的模擬計算機完成,模擬計算機使用機械模擬來模擬系統。例如,假設一位天文學家想要預測日食等事件的時間。為了以數字方式做到這一點,她將數值解開普勒運動定律。她還可以建立一個模擬計算機,一個由齒輪和槓桿(或簡單的電子電路)組成的太陽系模型,這將使她能夠將時間“執行”到未來。
在二戰之前,最先進的實用模擬計算儀器是範內瓦·布什於 1929 年在麻省理工學院開發的微分分析儀。當時,美國正在大力投資農村電氣化,而布什正在研究電力傳輸。此類問題可以用常微分方程編碼,但這些方程非常耗時才能求解。微分分析儀允許在不進行任何數值處理的情況下獲得近似解。這臺機器體積相當大——佔據了一個相當大的實驗室——並且有點像魯布·戈德堡式的齒輪和旋轉軸結構。為了“程式設計”機器,技術人員使用螺絲刀、扳手和鉛錘連線裝置的各個子單元。雖然設定起來很費力,但一旦完成,該裝置可以在幾分鐘內求解手工需要幾天才能完成的方程。在美國和英國建造了十幾臺這種機器。
其中一臺機器被送到了美國陸軍位於馬里蘭州阿伯丁試驗場的基地,該基地負責為部署準備野戰武器。為了將火炮瞄準已知射程的目標,士兵必須設定炮管的垂直和水平角度(仰角和方位角),以便發射的炮彈能夠沿著所需的拋物線軌跡飛行——先是衝向天空,然後落到目標上。他們從射擊表中選擇角度,射擊表包含各種目標距離和地理條件的眾多條目。
射擊表中的每個條目都需要積分一個常微分方程。一個由 200 名計算機組成的現場團隊需要兩到三天的時間才能手工完成每次計算。相比之下,微分分析儀只需要大約 20 分鐘。
一切都在變化
1941 年 12 月 7 日,日本軍隊襲擊了美國海軍在珍珠港的基地。美國參戰了。動員意味著軍隊需要越來越多的射擊表,每個射擊表包含大約 3000 個條目。即使使用微分分析儀,阿伯丁的計算積壓也在增加。
在距離阿伯丁 80 英里的路上,賓夕法尼亞大學摩爾電氣工程學院也有自己的微分分析儀。1942 年春天,該學院一位 35 歲的講師約翰·W·莫奇利提出了一個加速計算的想法:構建一臺“電子計算機”[原文如此],用真空管代替機械部件。莫奇利是一位戴眼鏡、理論思想家,可能無法獨自制造這臺機器。但他找到了他的補充,即該學院一位精力充沛的年輕研究員 J. Presper (“Pres”) Eckert,後者已經展現出工程天才的火花。
在莫奇利提出最初的建議一年後,經過各種偶然和官僚延誤,該建議傳到了赫爾曼·戈爾茨坦中尉手中,他是一位 30 歲的芝加哥大學數學博士,是阿伯丁和摩爾學院之間的技術聯絡官。幾天之內,戈爾茨坦就獲得了該專案的批准。ENIAC(電子數字積分計算機)的建造於 1943 年 4 月 9 日開始。那天是埃克特的 23 歲生日。
許多工程師對 ENIAC 是否能夠成功表示嚴重懷疑。傳統觀點認為,真空管的壽命約為 3000 小時,而 ENIAC 的初始設計要求使用 5000 個真空管。按照這個故障率,機器在真空管損壞導致停機之前,最多隻能執行幾分鐘。然而,埃克特明白,真空管往往會在開啟或關閉的壓力下發生故障。他知道,出於這個原因,廣播電臺從不關閉其發射管。如果真空管在遠低於其額定電壓的情況下執行,它們的使用壽命會更長。(到機器完成時,真空管的總數將增加到 18,000 個。)
埃克特和他的團隊在兩年半內完成了 ENIAC。這臺成品機器是一項工程技術壯舉,一個重達 30 噸的龐然大物,耗電 150 千瓦。該機器每秒可以執行 5000 次加法運算,並且計算彈道的時間比炮彈到達其實際目標的時間還要短。這也是偶然性在發明中經常發揮作用的一個典型例子:雖然摩爾學院當時並不是領先的計算研究機構,但它恰好在正確的時間、正確的地點遇到了正確的人。
然而,ENIAC 在 1945 年完成,為時已晚,無法在戰爭中發揮作用。它的功能也有限。它一次最多隻能儲存 20 個數字。程式設計這臺機器需要數天時間,並且需要操作類似於繁忙電話交換機內部的電纜網路。此外,ENIAC 被設計用於求解常微分方程。一些挑戰——特別是曼哈頓計劃所需的計算——需要求解偏微分方程。
約翰·馮·諾伊曼是曼哈頓計劃的顧問,他在 1944 年夏天訪問阿伯丁時瞭解了 ENIAC。馮·諾伊曼於 1903 年出生於匈牙利一個富有的銀行世家,是一位數學神童,他很快就完成了學業。23 歲時,他成為柏林大學有史以來最年輕的編外講師(大致相當於副教授)。1930 年,他移民到美國,並與阿爾伯特·愛因斯坦和庫爾特·哥德爾一起成為新澤西州普林斯頓高階研究院的首批教員。他於 1937 年加入美國國籍。
馮·諾伊曼很快認識到這臺機器計算能力強大,在他訪問阿伯丁後的幾個月裡,他與埃克特、莫奇利、戈爾茨坦和阿瑟·伯克斯(另一位摩爾學院講師)一起開會,敲定了後繼機器 EDVAC(電子離散變數自動計算機)的設計。
EDVAC 比 ENIAC 有了巨大的改進。馮·諾伊曼引入了沃倫·麥卡洛克和沃爾特·皮茨的想法和術語,他們是神經科學家,他們開發了一種大腦邏輯運算理論(這就是我們獲得“記憶體”這個計算機術語的地方)。他認為機器由五個核心部分組成:記憶體不僅儲存數值資料,還儲存操作指令。算術單元執行算術運算。輸入“器官”使程式和資料能夠傳輸到記憶體中,輸出器官記錄計算結果。最後,控制單元協調整個系統。
這種佈局或架構使得無需改變機器的物理結構即可更改計算機程式。程式儲存在記憶體中,並且可以瞬間修改。此外,程式可以操作其自身的指令。這個功能不僅使馮·諾伊曼能夠求解他的偏微分方程,而且還將賦予現代計算機科學核心的強大靈活性。
1945 年 6 月,馮·諾伊曼代表該小組撰寫了他的經典著作《關於 EDVAC 的報告初稿》。儘管它尚未完成,但它在計算專家中迅速傳播,產生了兩個後果。首先,再也沒有第二稿。其次,馮·諾伊曼最終獲得了大部分發明功勞。
機器進化
計算機隨後 60 年在社會中的普及是一個漫長的故事,必須在另一個地方講述。也許最引人注目的發展是,最初為數學計算而設計的計算機,透過正確的軟體,被證明可以無限地適應不同的用途,從商業資料處理到個人計算,再到全球資訊網路的構建。
我們可以將計算機發展視為沿著硬體、軟體和架構三個方向進行的。過去 50 年硬體方面的改進是傳奇般的。笨重的電子管在 20 世紀 50 年代後期讓位於“分立”電晶體——即單獨焊接在位的單個電晶體。在 20 世紀 60 年代中期,微電路將多個電晶體——然後是數百個電晶體,然後是數千個電晶體——連線到矽“晶片”上。20 世紀 70 年代早期開發的微處理器將完整的計算機處理單元放在一個晶片上。微處理器催生了 PC,現在控制著從灑水系統到彈道導彈的各種裝置。
軟體的挑戰更為微妙。1947 年和 1948 年,馮·諾伊曼和戈爾茨坦發表了一系列報告,名為《電子計算儀器的問題規劃和編碼》。在這些報告中,他們列出了數十種數學計算例程,期望一些低階“編碼員”能夠毫不費力地將它們轉換為可工作的程式。但事實並非如此。編寫程式並使其工作的過程極其困難。第一個發現這一點的是劍橋大學計算機科學家莫里斯·威爾克斯,他建立了第一臺實用的儲存程式計算機。在他的回憶錄中,威爾克斯懊悔地回憶起 1949 年的那個時刻,“我充分意識到,我餘生的大部分時間都將花在查詢自己程式中的錯誤上。”
他和劍橋大學的其他人在一種符號形式中開發了一種編寫計算機指令的方法,這使得整個工作更容易且不易出錯。計算機將採用這種符號語言,然後將其轉換為二進位制程式碼。IBM 於 1957 年推出了 Fortran 程式語言,這大大簡化了科學和數學程式的編寫。在 1964 年,達特茅斯學院的教育家約翰·G·凱梅尼和計算機科學家托馬斯·E·庫爾茨發明了 Basic,這是一種簡單但功能強大的程式語言,旨在普及計算並將其帶給全體本科生。有了 Basic,即使是學童——包括年輕的比爾·蓋茨——也可以開始編寫自己的程式。
相比之下,計算機架構——即構成計算機的子系統的邏輯排列——幾乎沒有進化。今天使用的幾乎每臺機器都與 1945 年的儲存程式計算機共享其基本架構。這種情況類似於汽油動力汽車——多年來,兩者都出現了許多技術改進和效率提升,但基本設計基本相同。雖然肯定有可能設計出更出色的裝置,但兩者都實現了技術史學家所謂的“封閉”。幾十年的投資產生了如此出色的收益,以至於沒有人有充分的理由投資於替代方案。
然而,激進的進化存在多種可能性。例如,在 20 世紀 80 年代,人們對所謂的超大規模並行機器產生了濃厚的興趣,這種機器包含數千個同時執行的計算元件,專為計算密集型任務而設計,例如天氣預報和原子武器研究。計算機科學家還從人腦中尋找靈感。我們現在知道,大腦不是由灰質製成的通用計算機。相反,它包含用於不同任務的專用處理中心,例如面部識別或語音理解。科學家們正在將這些想法應用於“神經網路”,用於汽車牌照識別和虹膜識別等應用。它們可能是數百年曆史的程序中的下一步:將大腦的力量嵌入機器的內部。
*勘誤 (10/15/09):此句子在釋出後已編輯,以更正事實錯誤。