簡介
存儲程式原理又稱“馮·諾依曼原理”(1946年提出)。將程式像數據一樣存儲到計算機內部
存儲器中的一種設計原理。程式存入
存儲器後,計算機便可自動地從一條指令轉到執行另一條指令。現代電子計算機均按此原理設計。
一般的記憶體都是劃分為很多
存儲單元,每個存儲單元都有地址編號,這樣按一定順序把程式和數據存起來,而且還把記憶體分為若干個區域,比如有專門存放程式區和專門存放數據的數據區。
2、其次:執行程式,必須從第一條指令開始,以後一條一條地執行。
一般情況下按存放地址號的順序,由小到大依次執行,當遇到條件轉移指令時,才改變執行的順序。每執行一條指令,都要經過三個步驟:第一步,把指令從記憶體中送往
解碼器,稱為取指;第二步,解碼器把指令分解成
操作碼和
運算元,產生相應的各種
控制信號送往各電器部件;第三步,執行相應的操作。這一過程是由電子路線來控制,從而實現自動連續的工作。
定義
馮·諾依曼計算機要求程式必須存儲在存儲器中。這與早期(馮·諾依曼計算機以前)只有數據才存儲在存儲器中的計算機結構完全不同,早期的計算機為了完成某個任務,一般是將完成該任務的程式通過操作一系列的開關或改變配線系統來實現的,即存儲器中只存數據不存程式。
馮·諾依曼計算機將數據和程式都以二進制形式(0或1)存儲在存儲器中。其程式由一組數量有限的指令(控制計算機操作的命令)組成。控制單元從存儲器中取出一條指令,解釋並執行指令。一條指令執行完畢後,計算機將按照程式所規定的順序自動取出下一條指令來執行。將這種操作指令的方式稱為程式控制原理。
發展歷程
計算機採取事先編製程序、存儲程式、自動連續運行程式的工作方式,稱為存儲程式方式。對此作出重大貢獻的是一位匈牙利出生的美籍數學家馮,諾依曼(Von Neuman)。雖然1946年製成的ENIAC是現代計算機的始祖,但它並沒有採用現在通用計算機的工作原理——存儲程式思想。在研製ENIAC的同時,以馮·諾依曼為首的研製小組提出了”存儲程式控制”的計算機結構,並開始了存儲程式控制的計算機EDVAC(Electronic Discrete Variable Automatic Computer)的研製。由於種種原因,EDVAC直到1951年才問世,而吸收了馮,諾依曼的設計思想,由英國盒0橋大學研製的EDSAC(Electronic Delay Storage Automatic Computer)先於它兩年誕生,成為事實上的第一台存儲程式的計算機。
幾十年來,計算機體系結構發生了許多演變,但存儲程式的概念仍是普遍採用的結構原則。存儲程式原理簡要概括如下:
(1)計算機由運算器、控制器、存儲器、輸入設備和輸出設備五部分組成(硬體構成)。
(2)指令和數據都以二進制的形式順序存放在存儲器中(二進制原理)。
(3)機器自動順序取出每條指令,進行分析,執行其規定的操作(程式控制原理)。
馮·諾依曼對計算機界的最大貢獻在於存儲程式概念的提出和實現。存儲程式原理不僅是計算機的基本工作原理,奠定了現代計算機的基本結構,而且開創了程式設計的新時代。自計算機出現至今的60多年來,雖然計算機的發展速度驚人,但就其結構原理來說,目前絕大多數計算機仍建立在存儲程式概念的基礎上。我們把符合存儲程式概念的計算機統稱為馮·諾依曼型計算機。隨著計算機技術的不斷發展,也出現了一些突破馮·諾依曼結構的計算機,統稱為非馮·諾依曼結構計算機,如數據驅動的數據流計算機、需求驅動的歸約計算機和模式匹配驅動的智慧型計算機等。本書主要討論馮,諾依曼結構計算機的組成。
基本思想
“存儲程式”工作原理是計算機自動連續工作的基礎,其基本思想如下:
(1)採用二進制形式表示數據和指令。
(2)將程式和數據事先存入主存儲器中,計算機在工作時按一定順序從存儲器中取出指令加以執行。
(3)論證了組成計算機硬體系統有運算器、存儲器、控制器、輸入裝置和輸出裝置五大基本部件,並規定了這五部分的基本功能。
上述概念奠定了現代計算機的基本結構,並開創了程式設計的時代。雖然計算機技術發展很快,但存儲程式原理至今仍然是計算機內在的基本工作原理,仍然是我們理解計算機系統功能與特徵的基礎。自計算機誕生的那天起,這一原理就決定了人們使用計算機的主要方式——編寫程式和運行程式。