電子數值積分計算機

電子通用計算機

電子數值積分計算機(英語:Electronic Numerical Integrator And Computer),由其縮寫,簡稱為伊尼亞克(英語:ENIAC發音: /ˈɛni.æk/,也可稱埃尼阿克[1][2]是世界上第一台通用計算機。它是圖靈完全的電子計算機,能夠重新編程,解決各種計算問題[3]

格倫·貝克(遠)和貝蒂·斯奈德(近)在位於彈道研究實驗室(BRL)Building 328的ENIAC上編程。(美國陸軍照片)
程式設計師貝蒂·讓·詹寧斯(左)和弗蘭·比拉斯(右)操作位於穆爾電氣工程學院英語Moore School of Electrical Engineering的ENIAC主控制面板。(美國陸軍照片,來自ARL技術圖書館檔案)

ENIAC為美國陸軍的彈道研究實驗室(BRL)所使用,用於計算火炮火力表[4][5]。ENIAC在1946年公佈的時候,就被當時的新聞讚譽為「巨腦」。它的計算速度比機電機器提高了一千倍。這是一個飛躍,之前沒有任何一台單獨的機器達到過這個速度。它的數學能力和通用的可程式能力,令當時的科學家和實業家非常激動。發明它的人為了進一步推廣這些新思想,舉辦了一系列關於計算機體系結構的講座。

二戰期間,美國陸軍資助了ENIAC的設計和建造。建造合同在1943年6月5日簽訂,實際的建造在7月以「PX項目」為代號秘密開始,由賓夕法尼亞大學穆爾電氣工程學院英語Moore School of Electrical Engineering進行。建造完成的機器在1946年2月14日公佈[6],並於次日在賓夕法尼亞大學正式投入使用[7]。建造這台機器花費了將近五十萬美元(考慮通貨膨脹,相當於2011年的六百五十萬美元)[8]。1946年7月,它被美國陸軍軍械兵團正式接受。為了翻新和升級存儲器,ENIAC在1946年11月9日關閉,並在1947年轉移到了馬里蘭州阿伯丁試驗場。1947年7月,它在那裏重新啟動,繼續工作到1955年10月2日晚上11點45分[2]

ENIAC是賓夕法尼亞大學的約翰·莫奇利(John Mauchly)和約翰·皮斯普·埃克特(J. Presper Eckert)構思和設計[9]。協助開發的設計工程師團隊包括羅伯特·F·肖(函數表)、朱傳榘(除法器/平方-平方根器)、托馬斯·凱特·夏普勒斯(主程序器)、阿瑟·伯克斯(乘法器)、哈利·赫斯基(讀取器/打印器),還有傑克·戴維斯(累加器)。ENIAC在1987年被評為IEEE里程碑之一[10]

描述 編輯

 
容器裏的ENIAC電容器

ENIAC是模塊化計算機,由執行不同功能的獨立面板組成。其中二十個模塊是累加器,這些累加器不僅能做加減運算,還能存儲十位十進制數。當數被調用的時候,它們通過一些通用的總線在這些單元間傳遞。為了實現高速,面板需要獨立完成發送和接受數、計算、儲存結果、觸發下一個操作,這一系列的操作都不需要任何移動部件。它的多功能性關鍵在於「分支」的能力——能根據計算結果的符號觸發不同的操作。

除了速度之外,ENIAC最引人注目的就是它的體積和複雜性。ENIAC包含了17468個真空管、7200個晶體二極管、1500個繼電器、10000個電容器,還有大約五百萬個手工焊接頭。它的重量達27(30美噸),體積大約是2.4m×6m×30.48m(8×30×100英尺),佔地167平方米(1800平方英尺),重30英噸,耗電150千瓦[11][12](導致有傳言說,每當這台計算機啟動的時候,費城的燈都變暗了[13])。IBM的卡片閱讀器用於輸入,打卡器用於輸出。使用IBM會計機(比如IBM 405)可將這些卡片用於離線產生輸出。

ENIAC使用十位環形計數器英語Ring counter存儲數字,每個數字使用36個真空管,其中10個是雙三極管,它們組成了環形計數器的觸發器。算數運算通過對環形計數器脈衝的計數進行,如果計數器被脈衝「環繞」了,則產生一個進位脈衝。「環繞」的思想在電子領域模擬了機械加法機數字滾輪的操作。ENIAC有20個帶符號的十位累加器,它們使用10的補碼表示方法,每秒可在它們和數字源(例如另一個累加器,或者常數傳送器)進行5000次簡單加減操作。因為幾個累加器可以同時運行,所以潛在的速度峰值由於這種並發操作而比上述數字高得多。

通過將兩個累加器用線連接起來,可以實現雙精度計算,不過累加器進行電路時序控制,這阻止了三個或更多的累加器被連接起來讓精度更高的擴充可能。ENIAC中的四個累加器被一個特殊的「乘法器」單元所控制,每秒可進行385次乘法操作。還有五個累加器被一個特殊的「除法器/平方-平方根器」單元,每秒可進行四十次除法運算或三次求平方根運算。

ENIAC中其他九個單元是「初始化單元」(啟動和停止機器)、「循環單元」(用於同步其他單元)、「主程序器」(控制「循環」序列)、「讀取器」(控制IBM打孔卡片讀取器)、「打印器」(控制IBM打孔卡片的打孔)、「常數傳送器」,還有三個「函數表」。

 
Cpl. Irwin Goldstein正在設置ENIAC一個函數表上的開關。(美國陸軍照片)

羅哈斯和Hashagen(或者威爾克斯)對於各種操作的時間給出了更多細節,這些時間與上述不同。基本機器周期是200微秒(循環單元中100kHz時鐘的20個周期),進行十位數運算時每秒種5000個周期。在一個周期內,ENIAC可以向寄存器內寫入一個數,從寄存器內讀取一個數,或者加/減兩個數。10位數乘以d位數(「d」最大是10)的運算佔用d+4個周期,所以10位數乘以10位數的運算佔用14個周期,也就是2800微秒(每秒357次)。如果其中一個數不足10位,則操作進行得更快。除法和求平方根的操作佔用13×(d+1)個周期,「d」是運算結果(商或平方根)的位數。所以,除法和求平方根操作最多佔用143個周期,也就是28600微秒(每秒35次)。(威爾克斯說,產生10位數商的除法操作僅需要6毫秒。)如果結果的位數不足10,則速度更快。

可靠性 編輯

ENIAC使用普通的八腳真空管,十進制累加器用6SN7觸發器製成,6L7、6SJ7、6SA7,和6AC7用於邏輯功能。無數的6L66V6用作線路驅動器,驅動着脈衝從機架組件間通過電纜傳遞。

 
ENIAC一個部分的背面細節,展示出了真空管

當時,一些電子方面的專家預言管件會經常壞,導致機器根本沒法使用。這個預言後來被部分證實了:每天都有幾個管件燒壞,使ENIAC有差不多一半的時間功能受損。1948年以前並沒有特殊的高可靠性管件。然而,這些損壞多數時候發生在預熱和冷卻時期,在這兩個時期,管件加熱器和陰極承受着最大的壓力。於是,工程師採用了一種簡單但是代價昂貴的手段,就是永遠不把機器關掉,由此把ENIAC的管件損壞頻率降低到了可接受的程度——每兩天損壞一個管件。根據1989年對Eckert的採訪,不斷損壞管件的故事因此幾乎成了一個神話:「我們每兩天就有一個管件壞掉,但是我們能在15分鐘內定位到問題出現的地方。」[14]1954年,沒有損壞持續運作最長的時間是116小時(接近五天)。

編程 編輯

雖然彈道研究實驗室是ENIAC的發起者,但是直到這個三年的項目進行了一年以後,約翰·馮·諾伊曼才注意到這台計算機[15],當時他在洛斯阿拉莫斯國家實驗室研究氫彈。這個實驗室隨後深入參與了ENIAC項目,以至於對ENIAC的第一次測試運行是計算氫彈相關數據,而不是火力表[16]。這次測試的輸入、輸出數據是一百萬張卡片[17]

ENIAC可以編程,執行複雜的操作序列,可以包含循環、分支和子程序。獲取一個問題並把問題映射到機器上是一個複雜的任務,通常要用幾個星期的時間。當問題在紙上搞清楚之後,通過操作各種開關和電纜把問題「弄進」ENIAC還要用去幾天的時間。然後,還要有一個驗證和測試階段,由機器的「單步執行」能力協助測試。

當時在ENIAC編程方面做得最多的六位女士,1997年入選國際科技名人堂[18][19]。根據她們在1946年互相的稱呼,她們是凱·麥克納爾蒂(嘉芙蓮·安東內利)、貝蒂·詹寧斯(讓·Bartik)、貝蒂·斯奈德(貝蒂·Holberton)、Marlyn·Wescoff(Marlyn·梅爾策)、弗蘭·Bilas(弗朗西絲·斯賓塞),和露絲·Lichterman(露絲·泰特鮑姆)[20][21]。珍妮弗·S.·萊特的文章《當計算機是女人》記錄和闡述了操作ENIAC的女士們的角色,以及歷史上對女性在計算機科學歷史中角色的遺漏或淡化[22]。ENIAC程式設計師的角色也在2010年的一個紀錄片中被正視[23]

ENIAC是個獨一無二的設計,從來沒被復製過。1943年設計的凍結意味着,計算機設計缺乏創新,發展得不好,尤其是缺乏存儲程序的能力。Echert和Mauchly開始了一個新的設計工作,後來被稱為EDVAC,這個設計不但更簡單,而且更強大了。特別是在1944年,Eckert寫了他對於存儲單元的描述(汞的延遲線存儲器)。這種存儲單元既存儲數據,又存儲程序。馮·諾伊曼向穆爾學校徵詢EDVAC,並旁聽了穆爾學校的會議。存儲程序的概念在這個會議上提出來了,他寫下了不完整的筆記(《關於EDVAC的報告初稿》),擬用作內部的備忘錄,描述、說明會議上提出的關於正規邏輯預言的思想。ENIAC的管理員和安全人員赫爾曼·戈德斯坦向一些政府和教育機構分發了《初稿》的副本,廣泛地帶動了對構建新一代電子計算機(包括EDSACSEAC)的興趣。

從1948年期,ENIAC進行了若干次升級,其中就包括原始的只讀程序存儲機制[24]。這個機制以函數表作為程序的只讀存儲器,由理查德·Clippinger博士提出,並包含在了ENIAC的專利中。Clippinger向馮·諾伊曼詢問實現什麼樣的指令集。Clippinger想出了一種三地址結構,而馮·諾伊曼提出了一地址結構,因為實現起來更簡單。一個累加器(6)的三個數字用作程序計數器,另一個累加器(15)用作主累加器,第三個累加器(8)用作從函數表中讀取數據的地址指針,另外的大部分累加器(1-5、7、9-14、17-19)用作數據存儲。ENIAC中存儲的程序的編程工作是由貝蒂·詹寧斯、Clippinger和阿黛勒·戈德斯坦完成的。1948年9月16日,ENIAC運行了一個由阿黛勒·戈德斯坦寫給馮·諾伊曼的程序,因此成為了第一個存儲程序計算機。這個修改在六個因素上降低了ENIAC的速度,並且限制了並行計算能力,但是因為把重新編程的時間從幾天減少到了幾個小時,所以性能上有些損失也是值得的。分析也顯示,因為電子計算速度和機電輸入/輸出速度的巨大差異,即使不利用原始機器的並行功能,幾乎所有現實世界的問題也完全是輸入/輸出綁定英語I/O bound(I/O bound)的,即使因為上述修改,速度降低了之後仍然是這樣。1952年的早些時候,ENIAC上添加了一個高速移位器,在五個因素上提高了移位速度。1952年7月,添加了一個100字的核心存儲擴展,此存儲體採用BCD碼Excess-3數字表示。為了支持這個擴展存儲器,ENIAC配備了一個新函數表選擇器、一個存儲器地址選擇器、脈衝整形電路,還給編程機制增加了三個新指令。

與其他早期計算機的比較 編輯

機械和電子計算機器從19世紀就開始出現了,但是20世紀30、40年代被看作是現代計算機時代的開端。

  • 德國Z3英語Z3 (computer)計算機(1941年5月公佈)是康拉德·楚澤設計的。這是第一台通用的數字計算機。但是它是機電計算機,而不是電子計算機,因為所有功能都使用繼電器。它使用二進制數學進行邏輯地計算。它可用打孔紙帶編程,但是沒有邏輯分支。儘管當初設計的不是圖靈完全的,但是在1998年人們發現它是圖靈完全的(但是如果要利用這種圖靈完全性質,需要複雜、聰明的破解)。1943年,這台計算機在柏林毀於轟炸襲擊。
  • 美國阿塔納索夫-貝瑞計算機(ABC,1941年夏天公佈)是第一台電子計算設備。它使用真空管實現了二進制計算,但是不是通用的,而是僅僅用於求解線性方程組。這台計算機也沒有利用電子計算的速度優勢。有兩方面限制了它的速度:一是旋轉電容鼓存儲器,另一個是它的輸入輸出系統要把中間結果寫出到紙片上。這台計算機是手動控制的,並且不可程式。
  • 英國的巨人計算機(Colossus computer,1943年用於密碼分析)是湯米·弗勞爾設計的。這些計算機是數字的、電子的,可用插板和開關編程,但是僅用於密碼破譯,並不是通用的[25]
  • 霍華德·艾肯在1944年設計的馬克一號電腦使用繼電器,可用打孔紙帶編程。可以計算一般的數學函數,但是沒有分支結構。
  • 就像Z3和馬克一號一樣,ENIAC可以運行任意數學運算序列,但是並不是從紙帶上讀取數據。像Colossus一樣,它可以用插板和開關編程。ENIAC將全面、圖靈完全的可程式能力與電子計算的高速性結合在一起。

ABC、ENIAC和巨人計算機都使用真空管。ENIAC的寄存器採用十進制運算,而不是像Z3或ABC那樣的二進制運算。

1948年以前,ENIAC像巨人計算機一樣,重新編程的時候需要重新布線。存儲程序,以及存儲器既用於存儲程序,又用於存儲數據的思想在開發ENIAC的時候就構想出來了,不過在ENIAC沒有初步實現,因為二戰需要這台機器儘快完成投入使用,並且ENIAC的20個存儲位置也太小了,不足以同時存儲數據和程序。

公眾認知 編輯

Z3和巨人計算機都是獨立於彼此,並且獨立於ABC和ENIAC開發的。Z3計算機毀於1943年盟軍轟炸柏林。巨人計算機是英國戰爭成就的一部分。它們的存在直到1970年才為公眾所知,雖然它們的能力仍然只有開發它們的英國相關人員以及被邀請的美國人才知道。這些機器中,只有兩台一直在英國政府通信總部(GCHQ)使用到了1960年,其餘的都在1945年毀壞了[來源請求]。ABC計算機是在約翰·阿塔納索夫被徵召去華盛頓為美國海軍做物理研究後,被艾奧瓦州立大學拆掉了。相比之下,ENIAC在1946年大展它的能力,「吸引了全世界的想像力」[26]。或許正因如此,更古老的計算機歷史與這個時期相比,在其覆蓋和分析上並不是很全面。

專利 編輯

莫齊利曾經擁有ENIAC的專利。1973年,經過法院宣判,因莫齊利對於ENIAC的設計思想部分來源於約翰·阿塔納索夫和克利福德·貝里設計的ABC計算機,所以專利被認定為無效,ENIAC的發明被放入公有領域

然而,公眾領域內普遍將ENIAC認定為世界上第一台電子計算機,將莫齊利認定為電子計算機之父。為此,20世紀90年代初,時年87歲的ABC計算機發明者阿塔納索夫寫信給當時的美國總統老布殊,希望公眾能承認他自己才是電子計算機之父。於是,老布殊向他頒發了一個美國國家工藝技術金質獎章,以表彰他發明了世界上第一台電子數字計算機。[27]

展覽的部件 編輯

 
ENIAC的四個面板和一個函數表,展覽於賓夕法尼亞大學工程和應用科學學院。

賓夕法尼亞大學工程和應用科學學院擁有ENIAC原始的四十個面板中的四個,和三個函數表中的一個。史密森尼學會美國國家歷史博物館擁有五個面板。倫敦科學博物館展覽着一個面板。密歇根大學在Ann Arbor校園擁有阿瑟·伯克斯搶救的四個面板。位於美國馬里蘭州阿伯丁試驗場的美國陸軍軍械博物館,也就是ENIAC使用的地方,擁有一個函數表。另外還有一個面板在位於美國德克薩斯州普萊諾市的佩羅系統展覽。

1997年,有人[誰?]製作了一塊邊長8毫米(0.25英寸)的矽制方形晶片,其功能與佔了一大間屋子的ENIAC相同。雖然這個20MHz的晶片比ENIAC快多了,但是仍然比20世紀90年代後期的現代微處理器慢很多[28][29]

參見 編輯

腳註 編輯

  1. ^ Goldstine, Herman H. The Computer: from Pascal to von Neumann. Princeton, New Jersey: Princeton University Press. 1972. ISBN 0-691-02367-0. 
  2. ^ 2.0 2.1 The ENIAC Story. Ftp.arl.mil. [2008-09-22]. (原始內容存檔於2011-08-14). 
  3. ^ Shurkin, Joel, Engines of the Mind: The Evolution of the Computer from Mainframes to Microprocessors, 1996, ISBN 978-0-393-31471-7
  4. ^ The ENIAC's first use was in calculations for the hydrogen bomb. Moye, William T. ENIAC: The Army-Sponsored Revolution. US Army Research Laboratory. January 1996 [2009-07-09]. (原始內容存檔於2009-02-23). 
  5. ^ Goldstine, Herman H. The Computer: from Pascal to von Neumann. : 214. 
  6. ^ Kennedy, Jr., T. R. Electronic Computer Flashes Answers. New York Times. February 15, 1946 [2011-01-31]. (原始內容存檔於2013-09-26). 
  7. ^ Honeywell, Inc. v. Sperry Rand Corp., 180 U.S.P.Q. (BNA) 673, p. 20, finding 1.1.3 (U.S. District Court for the District of Minnesota, Fourth Division 1973). 「The ENIAC machine which embodied 'the invention' claimed by the ENIAC patent was in public use and non-experimental use for the following purposes, and at times prior to the critical date: ... Formal dedication use February 15, 1946 ...」
  8. ^ Dollar Times Inflation Calculator. http://www.dollartimes.com/calculators/inflation.htm頁面存檔備份,存於互聯網檔案館
  9. ^ Wilkes, M. V. Automatic Digital Computers. New York: John Wiley & Sons. 1956: 305 pages. QA76.W5 1956. 
  10. ^ Milestones:Electronic Numerical Integrator and Computer, 1946. IEEE Global History Network. IEEE. [3 August 2011]. (原始內容存檔於2014-10-09). 
  11. ^ 存档副本. [2012-02-03]. (原始內容存檔於2021-05-18). 
  12. ^ Weik, Martin H. Ballistic Research Laboratories Report № 971 — A Survey of Domestic Electronic Digital Computing Systems — page 41. US Department of Commerce. December 1955 [2009-04-16]. (原始內容存檔於2010-03-17). 
  13. ^ Farrington, Gregory. ENIAC: Birth of the Information Age. Popular Science. [15 December 2011]. (原始內容存檔於2014-09-20). 
  14. ^ Alexander Randall 5th. A lost interview with ENIAC co-inventor J. Presper Eckert. Computer World. 14 February 2006 [2011-04-25]. (原始內容存檔於2009-04-02). 
  15. ^ Goldstine, Herman. The Computer: from Pascal to von Neumann. : 182. 
  16. ^ Goldstine, Herman. The Computer: from Pascal to von Neumann. : 214. 
  17. ^ Goldstine, Herman. The Computer: from Pascal to von Neumann. : 226. 
  18. ^ WITI — Hall of Fame. Witi.com. [2010-01-27]. (原始內容存檔於2007-06-05). 
  19. ^ Wired: Women Proto-Programmers Get Their Just Reward. [2012-02-03]. (原始內容存檔於2012-12-05). 
  20. ^ ENIAC Programmers Project. Eniacprogrammers.org. [2010-01-27]. (原始內容存檔於2009-12-25). 
  21. ^ ABC News: First Computer Programmers Inspire Documentary. [2012-02-03]. (原始內容存檔於2010-11-10). 
  22. ^ Light, Jennifer S. "When Computers Were Women." Technology and Culture 40.3 (1999) 455-483
  23. ^ Gumbrecht, Jamie. Rediscovering WWII's female 'computers'. CNN. February 2011 [2011-02-15]. (原始內容存檔於2012-05-10). 
  24. ^ A Logical Coding System Applied to the ENIAC. Ftp.arl.mil. 1948-09-29 [2010-01-27]. (原始內容存檔於2010-01-03). 
  25. ^ B. Jack Copeland (editor), Colossus: The Secrets of Bletchley Park's Codebreaking Computers, 2006, Oxford University Press, ISBN 978-0-19-284055-4.
  26. ^ Kleiman, Kathryn A. WITI Hall of Fame: The ENIAC Programmers. 1997 [2007-06-12]. (原始內容存檔於2007-06-05). 
  27. ^ 劉戈. 电子计算机传奇. 《商業價值》. [2012-02-03]. (原始內容存檔於2013-01-16). 
  28. ^ Jan Van Der Spiegel. ENIAC-on-a-Chip. PENNPRINTOUT. 1996-03 [2009-09-04]. (原始內容存檔於2012-10-11). 
  29. ^ Jan Van Der Spiegel. ENIAC-on-a-Chip. University of Pennsylvania. 1995-05-09 [2009-09-04]. (原始內容存檔於2010-07-26). 

參考文獻 編輯

  • Eckert, J. Presper, The ENIAC (in Nicholas Metropolis, J. Howlett, Gian-Carlo Rota, (editors), A History of Computing in the Twentieth Century, Academic Press, New York, 1980, pp. 525–540)
  • Eckert, J. Presper and John Mauchly, 1946, Outline of plans for development of electronic computers, 6 pages. (The founding document in the electronic computer industry.)
  • Fritz, W. Barkley, The Women of ENIAC (in IEEE Annals of the History of Computing, Vol. 18, 1996, pp. 13–28)
  • Mauchly, John, The ENIAC (in Metropolis, Nicholas, Howlett, Jack; Rota, Gian-Carlo. 1980, A History of Computing in the Twentieth Century, Academic Press, New York, ISBN 0-12-491650-3, pp. 541–550, "Original versions of these papers were presented at the International Research Conference on the History of Computing, held at the Los Alamos Scientific Laboratory, 10–15 June 1976.")

延伸閱讀 編輯

外部連結 編輯

座標39°57′08″N 75°11′26″W / 39.9522°N 75.1905°W / 39.9522; -75.1905