致敬通用計算機先驅(qū)!ENIAC誕生75周年

電子數(shù)字積分計算機ENIAC(Electronic Numerical Integrator And Computer),世界上最早的通用計算機之一。
?
2021年,ENIAC誕生75周年。
?
作為世界計算機史的重要組成部分,ENIAC的誕生代表了一系列重要的里程碑。第一臺圖靈完備的電子通用計算機、在理論上能夠處理任何計算問題、計算機商業(yè)化的關(guān)鍵、啟迪了各種計算機的設(shè)計思想與原則……
一場“工程數(shù)學(xué)的革命”
1942年,賓夕法尼亞大學(xué)摩爾電氣工程學(xué)院講師John William Mauchly向?qū)W院院長提交了一份名為《The Use of Vacuum Tube Devices in Calculating》的備忘錄,建議使用電子計算機來計算彈道軌跡。
?
這一想法得到了美國陸軍的支持。1943-1945年,工程師 John Presper Eckert 和 John William Mauchly在賓夕法尼亞大學(xué)開始了ENIAC的研制,旨在為美國陸軍彈道研究實驗室計算火炮的火力表(即彈丸的彈道),當(dāng)時該項目被命名為Project PX。1945年底,ENIAC研制完成并交付,同年被移至馬里蘭州的阿伯丁試驗場。
?
在賓夕法尼亞大學(xué)摩爾電氣工程學(xué)院時,ENIAC占地1500 平方英尺(139.35456 平方米),由 40 個九英尺的機柜組成,重達30噸,包含18000多個真空管和1500個繼電器,以及數(shù)十萬個電阻器、電容器和電感器。
?

“在賓夕法尼亞大學(xué)大樓的地下室里,這一群人從收音機、電視、任何他們能找到的東西中,來獲取制造ENIAC的金屬材料。隨后,又把這些專為不同目的而設(shè)計的真空管搭建成邏輯設(shè)備?!盪nisys ClearPath Forward產(chǎn)品的首席技術(shù)官 Jim Thompson說。( John William Mauchly后來成立了Eckert-Mauchly Corporation公司,后又被Unisys收購。)
?
二戰(zhàn)結(jié)束后,1946 年2月15日,ENIAC被捐贈給賓夕法尼亞大學(xué)(根據(jù)斯密森博物館的說法,賓夕法尼亞大學(xué)也是ENIAC的現(xiàn)存地)。
?
在當(dāng)時的陸軍新聞稿中,ENIAC被描述為“有望徹底改變工程數(shù)學(xué)并改變我們許多工業(yè)設(shè)計方法的新機器。應(yīng)軍械部的要求,1943 年開始用于克服彈道研究中的數(shù)學(xué)瓶頸,在和平時期,它還能用于科學(xué)和工程等工作中?!?/p>
?
在ENIAC之前,彈道軌跡計算是通過用機械計算器手動計算的。預(yù)測彈道需要對空氣密度、溫度和風(fēng)進行計算,彈道的單個軌跡需要一個人大約 20 到 40 個小時的手動“計算”。
?
ENIAC的出現(xiàn)將計算時間縮短到了30 秒內(nèi)。
?
起初,ENIAC的輸入工作是通過IBM讀卡器完成的,IBM打卡器用于輸出結(jié)果。并且最初的ENIAC沒有內(nèi)存系統(tǒng),而是通過穿孔卡進行外部存儲。直到1953 年,ENIAC才內(nèi)置了由Burroughs公司制造的100字節(jié)磁芯存儲器。
?
ENIAC每秒能夠進行大約 5000 次計算,比當(dāng)時其他所有機器速度快了一千倍,并且具有乘法、除法和平方根的計算功能。
?
Jim Thompson說:“這是一臺跨越了機械計算器、加法機和電子計算機等多個歷史節(jié)點的機器?!?/p>
?
與當(dāng)時世界上的其他任何計算機械相比,ENIAC在算力方面發(fā)生了巨大的變化。但在操作上也面臨著各種挑戰(zhàn):
?
首先是費電。ENIAC在運行時會將室溫提高到 50oC,需要至少兩個20馬力的鼓風(fēng)機進行冷卻。而在此過程中高達160kW的電能消耗足以讓整個費城停電。
?
其次是可靠性。在1948年特種電子管問世之前,ENIAC使用的標(biāo)準(zhǔn)無線電電子管幾乎每天都會被燒壞。早前,甚至需要花費數(shù)小時才能確定到底是哪根管子發(fā)生了爆炸,后來由于一些“預(yù)測性維護”和對設(shè)備的精細監(jiān)控,該團隊最終開發(fā)出了一個系統(tǒng),將排查時間縮短到 15 分鐘左右。
?
操作既困難又復(fù)雜。最初,ENIAC采用跳線和開關(guān)進行編程。對其重新編程,可以說是一項體力勞動,這需要大量預(yù)先計劃,以及數(shù)天時間才能完成。
?
編碼教程網(wǎng)站Prooff reader的聯(lián)合創(chuàng)始人兼計算歷史愛好者David TaylorDavid Taylor解釋說,“第一臺電子數(shù)字計算機,包括 ENIAC,必須通過使用跳線接線進行編程。在編程時,程序的特定邏輯必須要直接連接到機器中。這意味著程序員需要通過人工移動插板上的電纜并更改控制輸入響應(yīng)的開關(guān)來執(zhí)行編程。”
?
“然后,ENIAC 在解決完這個特定的問題后,在執(zhí)行另一個問題時還需要更改程序,再次手動連接機器的數(shù)據(jù)路徑。這是一個相當(dāng)費力的過程,需要幾天時間進行必要的物理更改,此外,設(shè)計和編寫新程序還需要數(shù)周時間?!?/p>
?
1948年后,執(zhí)行存儲在函數(shù)表存儲器中的程序成為可能,從而加快了“編程”過程?!癊NIAC中使用的三種不同類型的內(nèi)存被一個單一的、可擦除的高速內(nèi)存所取代——允許程序以只讀內(nèi)存的形式存儲。這種轉(zhuǎn)換極大地加快了再次編程的工作,并將時間從幾天縮至數(shù)小時。”
?
計算機史的重要遺產(chǎn)
1930年代末到1940年代間,誕生了大量的計算機領(lǐng)域先驅(qū)。為了支持戰(zhàn)爭,各種具有歷史意義的計算機被開發(fā)出來。
?

1941 年在柏林完工的Konrad Zuse Z3 ,由于不受重視被斷掉政府資助,這臺機器從未投入日常使用,1943年盟軍轟炸柏林時被摧毀;
?
1942 年由John V. Atanasoff制造的Atanasoff–Berry計算機,既不可編程、也不是圖靈完備的;
?
1944 年誕生的英國Colossus計算機,旨在破解由Lorenz公司制造的電傳打字機加密系統(tǒng)Tunny;
?
1944年,一種通用計算機——IBM Harvard Mark I交付使用,每秒只能進行3次加法或減法,執(zhí)行一次乘法需要 6 秒,一次除法需要 15 秒,一次對數(shù)或三角函數(shù)則在一分鐘以上。
?
“在現(xiàn)在看來,這些早期計算機存在非常慢、大、耗電和內(nèi)存不足等問題,即使在當(dāng)時,也很難想象它們所代表的技術(shù)具有指數(shù)級提升的價值?!盢apatech高級業(yè)務(wù)開發(fā)總監(jiān)Charlie Ashton說,“ENIAC最令人印象深刻的數(shù)據(jù)是,與它所取代的早期機電設(shè)備相比,ENIAC性能提高了多個數(shù)量級。”?
對于各種計算機中“第一”的真實性往往爭論不休,但鮮少有人會爭論 ENIAC對現(xiàn)實世界產(chǎn)生的重要影響。與當(dāng)時的同行相比,ENIAC的計算能力確實是一個巨大的飛躍,它的通用性質(zhì)引領(lǐng)了計算機可以為任何數(shù)量的潛在用例重新編程的方式。
?
“在ENIAC之前還有其他計算機(機械和機電計算機)。但ENIAC足以算得上是第一臺可以工作的通用數(shù)字計算機,并且影響深遠,”初創(chuàng)投資公司 Bootstrappers.mn 的首席技術(shù)官兼The History Of Computing Podcast主持人Charles Edge說。
?
ENIAC項目的最初預(yù)算僅為61700美元,交付成本約為400000美元,相當(dāng)于今天的約700萬美元,?相對來說很便宜。第一臺ENIAC在被雷擊后于1955年10月退役,但已經(jīng)在新生的計算機行業(yè)留下了永遠的印記。
ENIAC的成功與失敗
1945年ENIAC準(zhǔn)備服役時,二戰(zhàn)已即將結(jié)束。所以它從未真正用于計算彈道的預(yù)期目的。

“ENIAC的獨特之處在于它確實是一個通用計算問題的求解器。盡管它出現(xiàn)在戰(zhàn)爭后期并沒有真正實現(xiàn)其最初的設(shè)計目的,但隨后它被立即調(diào)整用于核武器方面的研究,再到從事農(nóng)業(yè)工作,以及任何快速計算之中?!?/p>
?
在ENIAC的生命周期中,它曾為氫彈設(shè)計、天氣預(yù)報、宇宙射線研究、隨機數(shù)研究,甚至風(fēng)洞設(shè)計提供了計算服務(wù)。同時,ENIAC在研究中子穿透各種材料的距離中所做的工作,也加速了蒙特卡羅計算方法的普及。
?
Charles Edge表示,“ENIAC當(dāng)然會成為計算領(lǐng)域的關(guān)鍵時刻。尤其是ENIAC在氫彈數(shù)學(xué)模型中的部分工作中,蒙特卡羅模擬和馮·諾依曼程序存儲概念等經(jīng)典遺產(chǎn)被繼承?!?/p>
?
據(jù)報道,John William Mauchly對計算機的興趣源于,希望通過計算機預(yù)測天氣以及使用電子設(shè)備對天氣現(xiàn)象進行統(tǒng)計分析。
?
事實上,ENIAC確實完成了第一個24小時天氣預(yù)報的工作。但是,與當(dāng)時的大多數(shù)計算機一樣,馮·諾依曼和核武器研究的靈魂才是ENIAC輸出的重要組成部分。
?
在美國洛斯阿拉莫斯國家實驗室研究氫彈時,馮·諾依曼逐漸意識到ENIAC的第一個程序不在于彈道表,而在于研究熱核武器的可行性。馮·諾依曼曾與IBM Harvard Mark I合作,在設(shè)計ENIAC后繼機器EDVAC方案時,創(chuàng)建了馮·諾依曼架構(gòu)。
?
1946 年,大量ENIAC研究人員在賓夕法尼亞州費城舉辦了第一次計算機教育講座,這些講座統(tǒng)稱為數(shù)字計算機設(shè)計的理論和技術(shù)講座,通常被稱為摩爾學(xué)校講座,對計算機的未來發(fā)展具有重要影響。
?
“摩爾學(xué)校講座幫助培養(yǎng)了貝爾實驗室的克勞德·香農(nóng)、麻省理工學(xué)院的福瑞斯特、GE 大型機開發(fā)人員等,他們成為了大型機行業(yè)的重要參與者,工程師、研究人員以及未來新興計算機行業(yè)的中堅力量。”Charles Edge說。
?
再后來,美國五角大樓邀請了來自英國和美國的專家來啟動該領(lǐng)域的研究。摩爾學(xué)校講座、馮·諾依曼備忘錄,以及關(guān)于EDVAC設(shè)計的報告初稿等,引發(fā)了一場創(chuàng)造真正通用計算機的競賽。
?
John Presper Eckert和John William Mauchly的想法被很快應(yīng)用于實踐,1949年EDVAC(電子離散變量自動計算機)被交付給了美國陸軍的彈道研究實驗室。EDVAC的設(shè)計工作開始于ENIAC 全面投入運營之前,采用了馮·諾依曼架構(gòu)。
?
然而,他們很快就被“曼徹斯特嬰兒“實驗機器(Manchester Baby,世界第一臺存儲程序計算機)擊敗,也被劍橋EDSAC(被認(rèn)為是第一臺實用計算機)以及LEO商業(yè)計算機以微弱的優(yōu)勢超越。
?
Jim Thompson講道:“ENIAC至今還影響著各種構(gòu)建技術(shù)。如模塊化設(shè)計:它是一個可擴展的機器,支持功能拓展與更改。”
?
“在不到十年的生命周期中,ENIAC被添加了各種技術(shù),最終繪出了整個計算機行業(yè)的藍圖?!?/strong>
編譯:李每
編輯:王衍