馮·諾依曼計算機以運算器爲中心。併發
1.計算機由運算器、控制器、存儲器、輸入設備和輸出設備五大部件組成。ui
2.指令和數據以同等地位存放在存儲器中,並可按地址尋訪。spa
3.指令和數據均用二進制數表示。對象
4.指令由操做碼和地址碼組成,操做碼用來表示操做的性質,地址碼用來表示操做數在存儲器中的地址。blog
5.指令在存儲器中按順序存放。一般,指令是順序執行的,在特定條件下,可根據運算結果或根據特定的條件改變執行順序。ip
6.機器以運算器爲中心,輸入輸出設備與存儲器之間的數據傳輸經過運算器完成。內存
馮·諾依曼模型要求程序必須存儲在內存中,現代計算機的存儲單元用來存儲程序及其響應數據,這就意味着數據和程序應該具備相同的格式,這是由於它們都存儲在存儲器中。ci
實際上它們都是以二進制形式存儲在內存中的。it
現代計算機已在馮·諾依曼體系結構的基礎上轉化爲以存儲器爲中心。io
計算機的5大部件在控制器的指揮下,有條不紊的完成各項任務。
1. 運算器用來完成算術運算和邏輯運算,並將運算的中間結果暫存在運算器中。
2.存儲器用來存放數據和程序。
3.控制器用來控制、指揮程序和數據的輸入、運行以及處理運算結果。
4.輸入設備用來將人們熟悉的信息形式轉換爲機器能識別的信息形式。
5.輸出設備可將機器運算結果轉換爲人們熟悉的信息形式。
因爲運算器和控制器在邏輯關係和電路結構上聯繫緊密,在大規模集成電路技術成熟後,將運算器和控制器集成在同一個芯片上,合稱爲中央處理器(CPU, Central Processing Unit)。
此外,CPU中還有一些寄存器組。即CPU由運算器、控制器、寄存器組構成。
因爲運算器和控制器被集成爲CPU,因此可認爲現代計算機由三大部分組成:CPU、I/O設備(Input/Output Equipment)、主存儲器(MM, Main Memory)。
算術邏輯單元 (ALU, Arithmetic Logic Unit) 用來完成算術運算和邏輯運算。
控制單元(CU, Control Unit)用來解釋存儲器中的指令,併發出各類操做指令來執行指令。
這裏討論的是主存,即內存。
主存儲器包括存儲體、MAR、MDR、各類邏輯部件及控制電路。
一個主存儲器(內存條)由多個存儲體組成,一個存儲體中有許多存儲單元,一個存儲單元中有若干個(八、1六、32個等)存儲元件;
每一個存儲元件能存儲一個二進制數 「0」 或 「1」;
一個存儲字能夠表示一個二進制數、十進制數、十六進制數、一串字符、ASCII碼、一條指令等。
如:存儲字0011011001111101,表示16位的二進制數,表示十進制數13949,表示十六進制數367DH,表示兩個ASCII碼「6」和「}」,表示某條指令。
指令與數據保存在存儲器中;
如,將編寫好的程序的各條指令預先存入各存儲單元,當運行程序時,只要給出程序首條指令在主存中的首地址,而後採用程序計數器加1的方法,自動造成下一條指令所在存儲單元的地址,機器即可自動完成整個程序的運行。
又如,當須要重複使用某個數據或某條指令時,只要指出其相應的存儲單元地址號便可,沒必要佔用更多的存儲單元重複存放同一數據或同一指令,從而提升存儲空間利用率。
MAR(Memory Address Register), 存儲器地址寄存器。
MDR(Memory Data Register),存儲器數據寄存器。
運算器功能:執行各類算術運算和邏輯運算操做的部件。
運算器的基本操做包括加、減、乘、除四則運算;與、或、非、異或等邏輯運算;以及移位、比較和傳送等操做。
|
累加器 ACC (Accumulator) |
MQ (Multiplier-Quotient Register) 乘商寄存器 |
X 操做數寄存器 |
加法 |
被加數 |
—— |
加數 |
和 |
|||
減法 |
被減數 |
—— |
減數 |
差 |
|||
乘法 |
乘積高位 |
乘數 |
被乘數 |
乘積低位 |
控制器的功能:解釋指令,保證指令的按序執行。
PC:程序計數器 (Program Counter)。
IR:指令寄存器 (Instruction Register)。
1.取指令:命令存儲器讀出一條指令。
動做部件:程序計數器PC。
存放當前將要執行指令的地址,具備計數功能(PC)+1→PC,便可造成下一條指令地址。PC與主存的存儲器地址寄存器MAR之間有一條直接通路。
PC→MAR→M→MDR→IR
動做部件:指令寄存器IR。
存放當前將要執行的指令;將IR中指令的操做碼送至CU,用來分析;將IR中指令的地址碼送至存儲器的MAR,做爲操做數的地址。
OP(IR):IR中指令的操做碼。OP(IR)→CU
AD(IR):IR中的指令地址碼。AD(IR)→MAR
2.分析(解釋)指令:分析該指令要完成那些操做,明確操做數的地址。
動做部件:控制單元CU。
分析當前指令所須要完成的操做。
3.執行指令:根據操做數所在的地址和指令的操做碼完成某種操做。
動做部件:控制單元CU。
發出各類微操做命令序列,控制全部被控對象完成動做。