延遲存儲電子自動計算器

電子延遲存儲自動計算器英文Electronic Delay Storage Auto-matic CalculatorEDSAC)是英國的早期計算機。1946年,英國劍橋大學數學實驗室的莫里斯·威爾克斯教授和他的團隊受馮·諾伊曼First Draft of a Report on the EDVAC[1]的啟發,以EDVAC為藍本,設計和建造EDSAC,1949年5月6日正式運行,是世界上第一台實際運行的存儲程序式電子計算機[2]

EDSAC
EDSAC占地5×4米

項目的投資方是英國的J. Lyons & Co. Ltd.,該公司後來推出基於EDSAC設計的第一代商業應用電子計算機LEO I英語LEO I

物理組件

編輯

EDSAC使用了約3000個真空管,排在12個櫃架上,占地5×4功率消耗12Kw [3]

 
EDSAC的內存槽5英尺長,內含32個內存位置

存儲器

編輯

使用水銀延遲線作存儲器,分布在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

工作在500kHz[8],平均每秒運行650指令[3]

內存

編輯

共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的內部結構

EDSAC的處理器包含5個基本寄存器

  • 指令地址寄存器
  • 順序存儲器
  • 被乘數寄存器
  • 乘數寄存器
  • 累加器

EDSAC和同時代的計算機均沒有變址寄存器英語Index_register[7]

指令集

編輯

平均每條指令運行時間1.5ms,乘法4.5ms,軟件除法大約需要200ms。[3]

完整的指令集可以在這裡的p41找到。

轉移指令只有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個子程序,涵蓋:

浮點運算、複數運算、檢測、除法微分方程、特殊函數、冪級數對數正交輸入輸出、n次方根、三角函數向量矩陣、循環(模擬repeat,while和for)。

EDSAC的應用

編輯
 
EDSAC的應用

EDSAC早期應用集中在解決氣象學遺傳學X光結晶學等方面的問題。


後續發展

編輯

EDSAC的後繼機型EDSAC2於1958年投入使用。EDSAC2引入了微程序(microprogramme)和位片英語bit-slice的概念。[6]

參考

編輯


相關條目

編輯

外部連結

編輯

腳註

編輯
  1. ^ http://www.virtualtravelog.net/entries/2003-08-TheFirstDraft.pdf 網際網路檔案館存檔,存檔日期2004-04-23.
  2. ^ EDVAC是第一個設計為馮·諾伊曼結構的電子計算機,但直到1952年該計算機才首次正式運行。
  3. ^ 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.
  4. ^ 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與曼徹斯特與美國的同時期電子計算機的比較報告。)
  5. ^ Peter Robinson and Karen Sparck Jones: EDSAC 99 commemorative booklet, University of Cambridge Computer Laboratory, April 1999. 在線版本頁面存檔備份,存於網際網路檔案館).
  6. ^ 6.0 6.1 Karen Sparck Jones: Brief informal history of the Computer Laboratory 在線版本頁面存檔備份,存於網際網路檔案館
  7. ^ 7.0 7.1 7.2 7.3 EDSAC模擬器的文檔頁面存檔備份,存於網際網路檔案館) 馬丁·坎貝爾-凱利編寫
  8. ^ M.V. Wilkes, Memoirs of a Computer Pioneer, MIT Press, 1985.