馮·諾依曼結構:現(xiàn)代計算機的誕生

從存儲程序到馮·諾依曼結構

機電時期,人們使用穿孔卡片或穿孔帶編制程序,由于計算機的運算速度受限于機械動作,輸入模塊有充分的時間讀取穿孔介質(zhì)上的指令信息。而到了電子時期,使用穿孔輸入就遠遠跟不上電子運算的節(jié)奏了,因此,人們便利用旋鈕、開關和接插線的不同位置來表示程序,雖然消除了控制與運算之間的速度差距,卻使編程成為一件非常復雜的難事。在ENIAC上設置一個實用程序,往往需要幾個星期的時間,如非必要,使用者很少愿意修改它。因此,盡管ENIAC是通用的,卻總在一段時間內(nèi)只專用于某個問題(比如彈道計算),它的通用價值被大大削弱。而如果頻繁地設置不同程序,機器在很大一部分時間里將無法運行,它的高速性能又被大大浪費。

聰明的讀者或許已經(jīng)想到:程序能不能像數(shù)據(jù)一樣,通過穿孔介質(zhì)輸入之后長期駐存在機器內(nèi)部的存儲器中呢?這樣一來,讀取指令就和讀取數(shù)據(jù)一樣快了。

??颂睾湍胬蚕氲搅诉@一點,1944年,在ENIAC還未建成之際,研制一臺可以存儲程序的新機器的申請就提交到了導彈實驗室。導彈實驗室同意了這個項目,并提供10萬美元的預算。這臺新機器名叫電子離散變量自動計算機(Electronic Discrete Variable Automatic Computer),簡稱EDVAC。

原本,EDVAC會和前輩ENIAC一樣,悄悄地建成,風光地亮相,它將成為世界上第一臺存儲程序電子計算機,??颂睾湍胬麑樗暾堃环輰@@次不會再有誰質(zhì)疑他們的原創(chuàng)性。然而故事并沒有朝著這條既定路線展開,一位不期而至的“程咬金”使他們的原創(chuàng)變得不再純粹,甚至,遮蓋了他們應有的名氣。他就是大名鼎鼎的約翰·馮·諾依曼(John von Neumann)。

約翰·馮·諾依曼(John von Neumann),1903-1957,美籍匈牙利人,數(shù)學家、物理學家、計算機科學家、博學家。(圖片來自維基百科)

在所有計算機先驅(qū)中,馮·諾依曼和圖靈一齊擁有著最高的知名度,但其實他的主要成就分布在其他領域。他首先是位偉大的數(shù)學家,在集合論、邏輯學、博弈論、代數(shù)學、幾何學和拓撲學等各大分支都有卓越貢獻,一生發(fā)表的150多篇論文中,120多篇都是數(shù)學論文;而后是一位物理學家,在量子力學和流體動力學中頗有建樹;同時還是化學家和經(jīng)濟學家,是位令多數(shù)同行都只能望其項背的博學者。

他天賦異稟,6歲就能心算8位數(shù)除法,8歲便熟稔微積分,22歲獲得布達佩斯大學數(shù)學博士學位。他能一字不差地背誦出曾經(jīng)看過的名著,甚至電話本,他所知的歷史知識甚至令普林斯頓大學的歷史學教授都自愧不如。其心算能力和記憶力之強,曾令某位ENIAC小組的數(shù)學家感嘆:還造什么計算機,他本身就是臺計算機!

在與馮·諾依曼接觸過的人中,越是高學識者越驚嘆于他的超群智力。蘇黎世聯(lián)邦理工學院的教授喬治·波伊亞用“害怕”來形容自己對馮·諾依曼的感受,因為只要他在課堂上提到某個數(shù)學界的未解難題,馮·諾依曼很可能一下課就拿著完美的解答去和他討論了?!霸幽苤浮倍骼恕べM米曾向曼哈頓計劃的同事這樣形容馮·諾依曼的心算能力:“他的心算速度是我的十倍,而我的心算速度已經(jīng)是你的十倍了?!奔幽么髷?shù)學家海爾·比林則感嘆:“想趕上馮·諾依曼是不可能,那種感覺就好像你騎著三輪車妄圖追上汽車一樣?!敝Z貝爾物理學獎獲得者漢斯·貝特則不止一次半開玩笑地揣測:馮·諾依曼的大腦暗示著有比人類更先進的物種存在。

二戰(zhàn)期間,馮·諾依曼加入曼哈頓計劃,此時的他已經(jīng)擁有極高的學術地位。原子彈的研制涉及大量運算,洛斯·阿拉莫斯國家實驗室在體驗過機電計算機Harvard Mark I之后,對ENIAC寄予了更高的期望。1944年的夏天,馮·諾依曼作為顧問加入ENIAC項目,提出了許多建設性意見,并深度參與到EDVAC的討論中。

這期間,馮·諾依曼在EDVAC上投入了許多思考,他愈發(fā)覺得,EDVAC不單是一個平凡的計算機項目,它潛藏著更深的理論意義。他想起圖靈的論文,通用圖靈機能夠根據(jù)紙帶上的策略信息模擬任意圖靈機的行為,紙帶是它是存儲器[1],策略信息就是程序,這正是存儲程序最早的思想萌芽。而他們現(xiàn)在所嘗試的,正是用電子管將它變成現(xiàn)實!1945年6月,在一趟返回洛斯·阿拉莫斯國家實驗室的列車上,完整的EDVAC已在馮·諾依曼腦中清晰可見,他奮筆疾書,寫出了那篇長達101頁,影響計算機歷史走向的《EDVAC報告書的第一份草案》。

草案不僅詳述了EDVAC的設計,還為現(xiàn)代計算機的發(fā)展指明了道路:

  1. 機器內(nèi)部使用二進制表示數(shù)據(jù);
  2. 像存儲數(shù)據(jù)一樣存儲程序;
  3. 計算機由運算器、控制器、存儲器、輸入模塊和輸出模塊5部分組成。

這些在現(xiàn)在看來似乎是理所應當?shù)脑瓌t,在當時卻是一次劃時代的總結。這份草案與其說是馮·諾依曼對EDVAC的設計描述,不如說是他對當時全世界計算機建造經(jīng)驗集大成式的高度提煉。

馮·諾依曼將計算機與神經(jīng)細胞類比,運算器、控制器和存儲器相當于聯(lián)絡神經(jīng)元,輸入模塊和輸出模塊相當于感覺神經(jīng)元和運動神經(jīng)元。通俗地講,就好比人擁有可以思考(處理信息)的大腦,并通過“感覺”獲取來自世界的信息,通過“運動”去改變世界。計算機同樣需要這樣一個世界,那就是當時的穿孔介質(zhì)、開關、旋鈕、接插件,等等,統(tǒng)稱外部記錄媒體。

這種基于存儲程序思想的計算機結構,后來被稱為馮·諾依曼結構。馮諾依曼結構奠定了現(xiàn)代計算機的基調(diào),放到今天,運算器和控制器就是CPU的主要組成部分,存儲器主要對應為內(nèi)存,輸入和輸出模塊也被芯片化后集成到主板,外部記錄媒體變得豐富多樣,比如鼠標、鍵盤、顯示器、觸屏、手柄、硬盤、U盤、音箱、話筒,等等。

馮·諾依曼結構

這份草案很快流傳開來,并轟動了整個計算機界,但作為ENIAC團隊的共同成果,卻只署了馮·諾依曼一個人的名字。命運又一次給??颂睾湍胬_了個大玩笑,這不僅讓EDVAC失去了巨大的專利價值,還讓ENIAC團隊失去了應得的聲譽。盡管馮·諾依曼并非有意為之,埃克特和莫奇利也一再強調(diào)即使沒有馮·諾依曼,他們也能給出同樣的成果,但“馮·諾依曼結構”實在太過經(jīng)典,這個名詞早已深入人心。

而EDVAC的設計思想中,有多少屬于??颂睾湍胬卸嗌儆謱儆隈T·諾依曼,這是個永遠也解不開的謎。但至少,如果沒有馮·諾依曼將設計方案抽象至理論層面,計算機世界的“大一統(tǒng)時代”可能還要推遲到來。

如果說圖靈描繪了計算機的靈魂,那么馮·諾依曼則框定了計算機的骨架,后人所做的只是不斷豐富計算機的血肉罷了。

1948年4月,ENIAC團隊通過線路改造使ENIAC的函數(shù)表有了存儲指令的能力,但其容量對于程序來說還是太小了。實現(xiàn)存儲程序的關鍵是建造容量足夠大的內(nèi)部存儲器,要既有不拖累電子運算的訪問速度,也要有相對低廉的成本。一時間,計算機界百花齊放,涌現(xiàn)出各種不同的存儲器。

參考文獻


  1. 圖靈機是一種抽象機器,圖靈在提出它時并不考慮如何實現(xiàn)它。它所用的紙帶可以映射為真實計算機用于輸入輸出的穿孔紙帶,也可以映射為存儲器,兼具兩者功能,但其發(fā)揮的作用更偏向于后者。 ?

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 上帝有時候就是這么殘忍,在你瀕臨絕望的時候,又把那個早已不可能的人送回你的面前。 (1) 我于云上執(zhí)筆 鐵劃銀鉤 ...
    薄小荷閱讀 1,070評論 24 34
  • 怎么講呢?就是感覺自己的思維有些時候都是混亂的,而這樣的一種混亂,有些時候呈現(xiàn)出的狀態(tài)是圖片發(fā)自簡書App 混亂的...
    林子2016閱讀 279評論 0 0
  • 我是個容易煩躁的人。 不知什么時候開始,一點小事也能讓我眼前一片黑。莫名的煩躁,說話大聲,面部冷漠,走路呈頹廢狀,...
    倚窗望星座閱讀 309評論 0 0
  • 做了這道麻辣藕片。。。醬油,醋,辣椒,花椒,所有的料都上得足足的。 炒出來的藕是另外一種誘人,一看就想吃,一吃就停...
    就愛做點菜閱讀 230評論 0 0

友情鏈接更多精彩內(nèi)容