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

Thumb
EDSAC
Thumb
EDSAC占地5×4米

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

物理組件

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

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

存儲器

使用水銀延遲線作存儲器,分布在32個槽中,每個槽5英尺長,裡面包含32個內存位置,共1024個位置。 [4][5]

建造時只實現了一半,512個字,第二組於1952年添加.[3] 1952年增加一個磁帶存儲,但實際使用中不能良好工作。[6]

輸入輸出

Thumb
陰極射線管

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

寄存器

Thumb
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的應用

Thumb
EDSAC的應用

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


後續發展

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

參考


相關條目

外部連結

腳註

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.