延遲存儲電子自動計算器
来自维基百科,自由的百科全书
電子延遲存儲自動計算器(英文: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]。

使用水銀延遲線作存儲器,分佈在32個槽中,每個槽5英尺長,裡面包含32個內存位置,共1024個位置。 [4][5]
建造時只實現了一半,512個字,第二組於1952年添加.[3] 1952年增加一個磁帶存儲,但實際使用中不能良好工作。[6]

輸入採用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.長分數
- 隱含的小數點在符號位後面。
表示符號位 表示中間位

- 指令地址寄存器
- 順序存儲器
- 被乘數寄存器
- 乘數寄存器
- 累加器
EDSAC和同時代的計算機均沒有變址寄存器。[7]
平均每條指令運行時間1.5ms,乘法4.5ms,軟件除法大約需要200ms。[3]
- 轉移指令
- 轉移指令只有E-和G-(分別表示累加器的符號位為0和1時轉移),而沒有無條件轉移。因此無條件轉移就需要使用兩條指令;同樣的原因,使得判斷兩個數相等需要八條指令。[7] 1952年,指令集添加了無條件轉移,但許多程序和子程序庫需要重寫。
- 算術指令
- 加法指令將存放的數據按整數處理。而乘法指令將數據解釋為真分數,兩個17bit的分數相乘得到一個35bit的分數存入累加器。
- EDSAC缺少邏輯運算指令,只有AND,也缺少字符處理指令。[7]
軟件
作業系統,或者稱之為初始化指令,使用了31條指令,存放在機械結構的只讀存儲器中。這些指令將紙帶上的程序讀入內存,然後運行。
第二個版本在1949年8月安裝,佔用了41條指令,使得子程序的重定位和協作變得簡單易用(D.J. Wheeler的重要發明)。[3]
1949年5月6日,第一個在EDSAC程序是打印0-99的平方表。
EDSAC的非凡的特徵是提供了大量的子程序。到1951年,EDSAC含有87個子程序,涵蓋:
EDSAC的應用

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).
相關條目
外部連結

維基共享資源上的相關多媒體資源:延遲存儲電子自動計算器
腳註
Wikiwand - on
Seamless Wikipedia browsing. On steroids.