延遲存儲電子自動計算器
![](http://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/EDSAC_%2810%29.jpg/200px-EDSAC_%2810%29.jpg)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/6/6d/EDSAC_%2812%29.jpg/200px-EDSAC_%2812%29.jpg)
電子延遲存儲自動計算器(英文:Electronic Delay Storage Auto-matic Calculator、EDSAC)是英國的早期計算機。1946年,英國劍橋大學數學實驗室的莫里斯·威爾克斯教授和他的團隊受馮·諾伊曼的First Draft of a Report on the EDVAC[1]的啟發,以EDVAC為藍本,設計和建造EDSAC,1949年5月6日正式運行,是世界上第一台實際運行的存儲程序式電子計算機[2]。
項目的投資方是英國的J. Lyons & Co. Ltd.,該公司後來推出基於EDSAC設計的第一代商業應用電子計算機LEO I。
物理組件
[編輯]EDSAC使用了約3000個真空管,排在12個櫃架上,佔地5×4米,功率消耗12Kw [3]。
![](http://upload.wikimedia.org/wikipedia/commons/thumb/9/99/EDSAC_%288%29.jpg/200px-EDSAC_%288%29.jpg)
存儲器
[編輯]使用水銀延遲線作存儲器,分佈在32個槽中,每個槽5英尺長,裡面包含32個內存位置,共1024個位置。 [4][5]
建造時只實現了一半,512個字,第二組於1952年添加.[3] 1952年增加一個磁帶存儲,但實際使用中不能良好工作。[6]
![](http://upload.wikimedia.org/wikipedia/commons/thumb/5/5b/EDSAC_%285%29.jpg/200px-EDSAC_%285%29.jpg)
輸入採用5路的穿孔紙帶,使用電子紙帶讀入機,速度為每秒個字符,1949年10月改進為每秒16字符,1950年使用光電閱讀器,達到50字符每秒。 [3]
輸出使用電傳打字機,速度字符每秒,1951年添加一個16字符每秒的紙帶打孔機 [3]
另外,EDSAC可以外接陰極射線管(CRT),可以用來觀察寄存器的值。
體系結構
[編輯]EDSAC的原始設計基於EDVAC,概念上是一台十分簡單的機器,這是它的一個良好特徵,與1960-1970年代的RISC體系很相似。[7]
包含5部分:運算器(ALU)、控制器、存儲器、輸入和輸出。運算器和控制器現在一般合稱CPU。
內存
[編輯]共1024字(word),每字18位(bit)。但一般只能使用17bit,第一個bit由於電路的建立時間(set-up time)而不能使用。
存放指令時,包含如下結構:
5 1 10 1 指令代碼 保留 內存地址 長度 指令格式
- 5bit的指令代碼,11bit內存地址(由於EDSAC內存只有1024,所以實際有1bit保留),餘下1bit在某些指令中,用於指示操作子是單字還是雙字(word)。
存放數據時,EDSAC採用二進制補碼,可表示正負整數和正負真分數。 單字17bit,其中第一個bit用於符號位;雙字35bit,此時,第二個字可用滿18bit。
如下圖所示:
16 a.短整數
16 17 b.長整數
16 c.短分數
16 17 d.長分數
- 隱含的小數點在符號位後面。
表示符號位 表示中間位
寄存器
[編輯]![](http://upload.wikimedia.org/wikipedia/commons/thumb/9/90/EDSAC_%2817%29.jpg/400px-EDSAC_%2817%29.jpg)
- 指令地址寄存器
- 順序存儲器
- 被乘數寄存器
- 乘數寄存器
- 累加器
指令集
[編輯]平均每條指令運行時間1.5ms,乘法4.5ms,軟件除法大約需要200ms。[3]
- 轉移指令只有E-和G-(分別表示累加器的符號位為0和1時轉移),而沒有無條件轉移。因此無條件轉移就需要使用兩條指令;同樣的原因,使得判斷兩個數相等需要八條指令。[7] 1952年,指令集添加了無條件轉移,但許多程序和子程序庫需要重寫。
軟件
[編輯]作業系統
[編輯]作業系統,或者稱之為初始化指令,使用了31條指令,存放在機械結構的只讀存儲器中。這些指令將紙帶上的程序讀入內存,然後運行。
第二個版本在1949年8月安裝,佔用了41條指令,使得子程序的重定位和協作變得簡單易用(D.J. Wheeler的重要發明)。[3]
應用軟件
[編輯]1949年5月6日,第一個在EDSAC程序是打印0-99的平方表。
EDSAC的非凡的特徵是提供了大量的子程序。到1951年,EDSAC含有87個子程序,涵蓋:
EDSAC的應用
[編輯]![](http://upload.wikimedia.org/wikipedia/commons/thumb/2/22/EDSAC_%2821%29.jpg/200px-EDSAC_%2821%29.jpg)
EDSAC早期應用集中在解決氣象學、遺傳學和X光結晶學等方面的問題。
- 1951年,Miller和Wheeler利用EDSAC發現了一個當時最大的79位素數。
- 1951年,A.S. Douglas開發出OXO(井字遊戲),輸出到陰極射線管,是最早的電子計算機遊戲。
- 1960年代,EDSAC用於收集橢圓曲線解的數值現象,這引出了貝赫和斯維訥通-戴爾猜想。
後續發展
[編輯]EDSAC的後繼機型EDSAC2於1958年投入使用。EDSAC2引入了微程序(microprogramme)和位片的概念。[6]
參考
[編輯]- The Preparation of Programs for an Electronic Digital Computer 莫里斯·威爾克斯, 大衛·惠勒和斯坦利·吉爾, Addison-Wesley, 第一版, 1951年
- John von Neumann. First Draft of a Report on the EDVAC (PDF). (原始內容 (PDF)存檔於2004-04-23).
相關條目
[編輯]外部連結
[編輯]![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Commons-logo.svg/30px-Commons-logo.svg.png)
- EDSAC模擬器(英文) 英國華威大學計算機科學系馬丁·坎貝爾-凱利開發
- EDSAC50周年 (頁面存檔備份,存於互聯網檔案館) (英文)
- Nicholas Enticknap and Maurice Wilkes, Cambridge's Golden Jubilee (頁面存檔備份,存於互聯網檔案館) (英文)
腳註
[編輯]- ^ http://www.virtualtravelog.net/entries/2003-08-TheFirstDraft.pdf 互聯網檔案館的存檔,存檔日期2004-04-23.
- ^ EDVAC是第一個設計為馮·諾伊曼結構的電子計算機,但直到1952年該計算機才首次正式運行。
- ^ 3.0 3.1 3.2 3.3 3.4 3.5 3.6 Martin Campbell-Kelly: Programming the EDSAC, IEEE Annals of the History of Computing, Vol 2(1), 1980.
- ^ Report of a Conference on High Speed Automatic Calculating-machines, University Mathematical Laboratory, Cambridge, June 1949; M.R. Williams與M. Campbell-Kelly的修改版於1989年由MIT/Tomash historical series重印(報告也包含了EDSAC與曼徹斯特與美國的同時期電子計算機的比較報告。)
- ^ Peter Robinson and Karen Sparck Jones: EDSAC 99 commemorative booklet, University of Cambridge Computer Laboratory, April 1999. 在線版本 (頁面存檔備份,存於互聯網檔案館).
- ^ 6.0 6.1 Karen Sparck Jones: Brief informal history of the Computer Laboratory 在線版本 (頁面存檔備份,存於互聯網檔案館)
- ^ 7.0 7.1 7.2 7.3 EDSAC模擬器的文檔 (頁面存檔備份,存於互聯網檔案館) 馬丁·坎貝爾-凱利編寫
- ^ M.V. Wilkes, Memoirs of a Computer Pioneer, MIT Press, 1985.