讀古今文學網 > 創新者:一群技術狂人和鬼才程序員如何改變世界 > 存儲程序 >

存儲程序

莫奇利和埃克特從一開始就知道ENIAC可以採用更加簡單的重新編程方式,但是他們沒有嘗試這麼做,因為實現這項功能需要製作出更為複雜的硬件,這對於他們原來設想的用途來說是不必要的。「我們一直都沒有嘗試為自動設置問題做準備,」他們在1943年的ENIAC年度工作進度報告中寫道,「這是為了保持硬件的簡易性,而且ENIAC的主要預計用途是解決某一類型的問題。在更換求解的問題之前,它的每個配置都可以多次使用。」37

不過在ENIAC建成的一年多之前,也就是在1944年年初的時候,莫奇利和埃克特已經認識到了一種簡便的計算機重新編程方法:將程序保存在計算機的存儲器當中,這樣就不需要在每次編程的時候都重新輸入程序。他們認為這將會是計算機發展歷程的下一個重大進步。「存儲程序」(stored-program)這種結構意味著計算機可以實現接近即時的任務切換,無須手動重新配置線纜和開關。38

為了在計算機內部保存程序,他們需要製作大容量的存儲器。埃克特為此思考過多種實現方式。「這種程序可以臨時儲存在合金圓盤上或者永久儲存在蝕刻圓盤上。」他在一份1944年1月的備忘錄中寫道。39 由於這種圓盤在當時的造價過於高昂,因此他建議ENIAC的下一代計算機採用另一種更為廉價的存儲方式——聲波延遲線。這種技術是由一位叫作威廉·肖克利(William Shockley,本書後面的章節將會對他進行詳細的介紹)的工程師在貝爾實驗室首先提出的,並在麻省理工學院研製成功。聲波延遲線的工作原理是將數據以脈衝的形式保存在一個裝滿黏稠液體(例如水銀)的存儲管中。攜帶數據流的電信號會在存儲管的其中一端被石英栓轉換為脈衝,經過轉換的脈衝會在存儲管中來回波動一段時間。這些機械波可以利用電力維持任意長度的時間。當需要恢復數據的時候,石英栓會將機械波重新轉換成電信號。每個存儲管可以處理大約1 000個字節,但是它的成本僅為真空管電路的百分之一。埃克特和莫奇利在一份寫於1944年夏天的備忘錄中提到,ENIAC的後繼機型應該採用多個這樣的水銀延遲線存儲管,將數據和初步的程序信息以數字的形式保存。