EDSAC是Electronic Delay Storage Auto-matic Calculator的縮寫,是英國的早期計算機,為電子延遲存儲自動計算器,是世界上第一臺實際運行的存儲程序式電子計算機。
基本介紹
EDSAC(電子延遲存儲自動計算機Electronic Delay Storage Automatic Calculator)
EDSAC由英國劍橋大學(xué)莫里斯。文森特.威爾克斯(Maurice Vincent Wilkes)領(lǐng)導(dǎo)、設(shè)計和制造的,并于1949年投入運行。它使用了汞延遲線作存儲器,利用穿孔紙帶輸入和電傳打字機輸出。
EDSAC建成于1949年5月6日,是世界上第一臺“商用的程序內(nèi)藏式電子計算機(the world’s first stored-program computer tooperate a regularcomputing service)”,所有現(xiàn)代電腦的鼻祖之一。
EDSACPC是它的模擬程序。可以拿來玩玩。同捆還有一些為這個計算機編寫的程序,及程序編寫方法等。運行方式可以選擇“原始速度”,可以體驗一把上世紀(jì)50年代美國人的電腦節(jié)奏。
項目的投資方是英國的J. Lyons & Co. Ltd.,該公司后來推出基于EDSAC設(shè)計的第一代商業(yè)應(yīng)用電子計算機LEO I。
戰(zhàn)后,威爾克斯回到劍橋大學(xué),擔(dān)任數(shù)學(xué)實驗室(后改名計算機實驗室)主任。1946年5月,他獲得了約翰·馮·諾伊曼起草的EDVAC計算機的設(shè)計方案的一份復(fù)印件。EDVAC是ElectronicDiscrete Variable Automatic Computer的縮寫,是賓夕法尼亞大學(xué)莫爾學(xué)院于1945年開始研制的一臺計算機,是按存儲程序式思想設(shè)計的,并能對指令進行運算和修改,因而可自動修改其自身的程序。但由于工程上遇到困難,EDVAC遲至1952年才完成,造成“研制開始在前,完工在后”的局面,而讓威爾克斯占去先機。威爾克斯仔細(xì)研究了EDVAC的設(shè)計方案,8月又親赴美國參加了莫爾學(xué)院舉辦的計算機培訓(xùn)班,廣泛地與EDVAC的設(shè)計研制人員進行接觸、討論,進一步弄清了它的設(shè)計思想與技術(shù)細(xì)節(jié)。
回國以后,威爾克斯立即以EDVAC為藍本設(shè)計自己的計算機并組織實施,起名為EDSAC(Electronic Delay Storage Auto-matic Calculator,但有的文獻寫成Electronic DiscreteSequential AutomaticComputer)。EDSAC采用汞延遲線作存儲器,可存儲34恤字長的字512個,加法時間1.5 ms,乘法時間4 ms。威爾克斯還首次成功地為EDSAC設(shè)計了一個程序庫,保存在紙帶上,需要時送入計算機。但是EDSAC在工程實施中同樣遇到了困難:不是技術(shù),而是資金缺乏。在關(guān)鍵時刻,威爾克斯成功地說服了倫敦一家面包公司J.Lyons&Co。.的老板投資該項目,終于使計劃絕處逢生。1949年5月6日,EDSAC首次試運行成功,它從帶上讀人一個生成平方表的程序并執(zhí)行,正確地打印出結(jié)果。作為對投資的回報,LyOHS公司取得了批量生產(chǎn)EDSAC的權(quán)利,這就是于1951年正式投入市場的LEO計算機(Lyons Electronic Office),這通常被認(rèn)為是世界上第一個商品化的計算機型號,因此這也成了計算機發(fā)展史上的一件趣事:第一家生產(chǎn)出商品化計算機的廠商原先竟是面包房。Lyons公司后來成為英國著名的“國際計算機有限公司”即ICL的一部分。
面世過程
EDSAC的成功當(dāng)然不在于它能生成平方表。還在試運行期間,它就完成了一系列重大任務(wù),向世人展示了計算機的巨大潛力。著名的數(shù)學(xué)家和統(tǒng)計學(xué)家菲歇爾(R.A.Fisher,因在20世紀(jì)20年代創(chuàng)建方差分析法——varianceanalysis而聞名于世)拿來一個二階非線性微分方程,當(dāng)程序員編出程序,輸入EDSAC很快就給出了解以后,菲歇爾驚奇得簡直無法相信。
EDSAC還為劍橋大學(xué)著名的生物學(xué)家肯德烈(J.Kendrew)分析了成百上千張有關(guān)分子結(jié)構(gòu)的X射線衍射圖案的照片,肯德烈因為這方面的成就而榮獲1962年諾貝爾獎,他多次提到EDSAC在他的研究工作中所發(fā)揮的無可比擬的作用。
射電天文學(xué)的主要創(chuàng)始人、因發(fā)明綜合孔徑射電望遠鏡而榮獲1974年諾貝爾物理學(xué)獎的馬丁·里爾(MartinRyle)也是在EDSAC上對獲得的天文照片進行分析和綜合,幫助他取得成果的。
在設(shè)計與建造EDSAC的過程中,威爾克斯決不是簡單地模仿和照搬EDVAC的設(shè)計,而是創(chuàng)造和發(fā)明了許多新的技術(shù)和概念。諸如“變址”(威爾克斯當(dāng)時稱之為“浮動地址"----floating address);“宏指令“(威爾克斯當(dāng)時稱為“綜合指令"--synthetic order);微程序設(shè)計(將每一條機器指令的執(zhí)行分解為一系列更基本的微命令。將可同時執(zhí)行的微命令組合在一起形成微指令。
所謂微程序就是用微指令編寫出來的一段微指令序列);子例程及子例程庫,所謂子例程即subroutine,就是可用于一個或多個計算機程序中,也可用在一個計算機程序的一處或多處的子程序,其目的在于將復(fù)雜的任務(wù)分解成若干較小的單位,以便于分別處理;高速緩沖存儲器即Cache(位于中央處理器與主存儲器之間,對程序員透明的一種高速小容量存儲器,以提高處理速度),等等。所有這些都對現(xiàn)代計算機的體系結(jié)構(gòu)和程序設(shè)計技術(shù)產(chǎn)生了深遠的影響。
EDSAC和LEO計算機的成功奠定了威爾克斯作為計算機大師和先驅(qū)在學(xué)術(shù)界的地位,而EDSAC(LEO)以及其后在英國國家物理實驗室NPL由艾倫·圖靈進行設(shè)計、而由威爾金森(J.H.Wilkinson,1970年圖靈獎獲得者)主持實現(xiàn)的Pilot ACE及其商品化產(chǎn)品DEUCE一起,則使英國的計算機技術(shù)在20世紀(jì)50年代處于世界領(lǐng)先地位,可以與美國平起平坐。
英國制造
電子延遲存儲自動計算器(英文:Electronic Delay Storage Auto-matic Calculator、EDSAC)是英國的早期計算機。1946年,英國劍橋大學(xué)數(shù)學(xué)實驗室的莫里斯·威爾克斯教授和他的團隊受約翰·馮·諾伊曼的FirstDraft of a Report on the EDVAC的啟發(fā),以EDVAC為藍本,設(shè)計和建造EDSAC,1949年5月6日正式運行,是世界上第一臺實際運行的存儲程序式電子計算機。
物理組件
EDSAC使用了約3000個真空管,排在12個柜架上,占地5×4米,功率消耗12Kw。
EDSAC的內(nèi)存槽5英尺長,內(nèi)含32個內(nèi)存位置。使用汞延遲線作存儲器,分布在32個槽中,每個槽5英尺長,里面包含32個內(nèi)存位置,共1024個位置。建造時只實現(xiàn)了一半,512個字,第二組于1952年添加。1952年增加一個磁帶存儲,但實際使用中不能良好工作。
陰極射線管輸入采用5路的穿孔紙帶,使用電子紙帶讀入機,速度為每秒個字符,1949年10月改進為每秒16字符,1950年使用光電閱讀器,達到50字符每秒。
輸出使用電傳打字機,速度字符每秒,1951年添加一個16字符每秒的紙帶打孔機
另外,EDSAC可以外接陰極射線管(CRT),可以用來觀察寄存器的值。
EDSAC的原始設(shè)計基于EDVAC,概念上是一臺十分簡單的機器,這是它的一個良好特征,與1960-1970年代的RISC體系很相似。
包含5部分:運算器(ALU)、控制器、存儲器、輸入和輸出。運算器和控制器現(xiàn)在一般合稱CPU。
工作在500kHz,平均每秒運行650指令
共1024字(word),每字18位(bit)。但一般只能使用17bit,第一個bit由于電路的建立時間(set-up 時間)而不能使用。
5bit的指令代碼,11bit內(nèi)存地址(由于EDSAC內(nèi)存只有1024,所以實際有1bit保留),余下1bit在某些指令中,用于指示操作子是單字還是雙字(word)。
存放數(shù)據(jù)是,EDSAC采用二進制補碼,可表示正負(fù)整數(shù)和正負(fù)真分?jǐn)?shù)。單字17bit,其中第一個bit用于符號位;雙字35bit,此時,第二個字可用滿18bit。 EDSAC的內(nèi)部結(jié)構(gòu)EDSAC的處理器包含5個基本寄存器:
指令地址寄存器
順序存儲器
被乘數(shù)寄存器
乘數(shù)寄存器
累加器
EDSAC和同時代的計算機均沒有變址寄存器(en:Index_register)。
指令集
平均每條指令運行時間1.5ms,乘法4.5ms,軟件除法大約需要200ms。
完整的指令集可以在這里的p41找到。
轉(zhuǎn)移指令
轉(zhuǎn)移指令只有E-和G-(分別表示累加器的符號位為0和1時轉(zhuǎn)移),而沒有無條件轉(zhuǎn)移。因此無條件轉(zhuǎn)移就需要使用兩條指令;同樣的原因,使得判斷兩個數(shù)相等需要八條指令。1952年,指令集添加了無條件轉(zhuǎn)移,但許多程序和子程序庫需要重寫。
算術(shù)指令
加法指令將存放的數(shù)據(jù)按整數(shù)處理。而乘法指令將數(shù)據(jù)解釋為真分?jǐn)?shù),兩個17bit的分?jǐn)?shù)相乘得到一個35bit的分?jǐn)?shù)存入累加器。
EDSAC缺少邏輯運算指令,只有AND,也缺少字符處理指令。
操作系統(tǒng),或者稱之為初始化指令,使用了31條指令,存放在機械結(jié)構(gòu)的只讀存儲器中。這些指令將紙帶上的程序讀入內(nèi)存,然后運行。
第二個版本在1949年8月安裝,占用了41條指令,使得子程序的重定位和協(xié)作變得簡單易用(D.J. Wheeler的重要發(fā)明)。
1949年5月6日,第一個在EDSAC程序是打印0-99的平方表。
EDSAC的非凡的特征是提供了大量的子程序。到1951年,EDSAC含有87個子程序,涵蓋:
浮點運算、復(fù)數(shù)運算、檢測、除法、冪、微分方程、特殊函數(shù)、冪級數(shù)、對數(shù)、正交、輸入輸出、n次方根、三角函數(shù)、向量和矩陣、循環(huán)(模擬repeat,while和for)。
EDSAC的應(yīng)用EDSAC早期應(yīng)用集中在解決氣象學(xué)、遺傳學(xué)和X光結(jié)晶學(xué)等方面的問題。
1951年,Miller和Wheeler利用EDSAC發(fā)現(xiàn)了一個當(dāng)時最大的79位素數(shù)。
1951年,A.S. Douglas開發(fā)出OXO(井字游戲),輸出到陰極射線管,是最早的電子計算機視頻游戲。
1960年代,EDSAC用于收集橢圓曲線解的數(shù)值現(xiàn)象,這引出了貝赫和斯維訥通-戴爾猜想。
EDSAC的后繼機型EDSAC 2于1958年投入使用。EDSAC2引入了微程序(microprogramme)和位片(en:bit-slice)的概念。
參考資料 >
EDSAC.科技中國.2012-09-23