馮·諾依曼計(jì)算機(jī)的特點(diǎn)(機(jī)器以運(yùn)算器為中心)
- 計(jì)算機(jī)由運(yùn)算器税迷、存儲(chǔ)器闽巩、控制器糯俗、輸入設(shè)備和輸出設(shè)備五大部件組成
- 指令(程序)和數(shù)據(jù)以二進(jìn)制不加區(qū)別地存儲(chǔ)在存儲(chǔ)器中
- 程序自動(dòng)運(yùn)行
現(xiàn)代計(jì)算機(jī)由三大部分組成(已經(jīng)轉(zhuǎn)化為以存儲(chǔ)器為中心)
- CPU(Central Processing Unit) 中央處理器饶唤,核心部件為ALU(Arithmetic Logic Unit,算術(shù)邏輯單元)和CU(Control Unit,控制單元)
- I/O設(shè)備(受CU控制)
- 主存儲(chǔ)器(Main Memory,MM),分為RAM(隨機(jī)存儲(chǔ)器)和ROM(只讀存儲(chǔ)器)
一條指令在CPU的執(zhí)行過程
- Ad(Address) 形式地址
- DR(Data Register) 數(shù)據(jù)寄存器
- AR(Address Register) 地址寄存器(MAR)
- IR(Instruction Register) 指令寄存器
- BR(Buffer Register) 緩沖寄存器(MBR)
- ID(Instruction Decoder) 指令譯碼器
- PC(ProgramCounter) 程序計(jì)數(shù)器
幾乎所有的馮·諾伊曼型計(jì)算機(jī)的CPU光绕,其工作都可以分為5個(gè)階段:
取指令
指令譯碼
執(zhí)行指令
訪存取數(shù)
結(jié)果寫回
1.取指令階段
取指令(Instruction Fetch女嘲,IF)階段是將一條指令從主存中取到指令寄存器的過程。
程序計(jì)數(shù)器PC中的數(shù)值诞帐,用來指示當(dāng)前指令在主存中的位置欣尼。當(dāng)一條指令被取出后,PC中的數(shù)值將根據(jù)指令字長度而自動(dòng)遞增:若為單字長指令停蕉,則(PC)+1àPC愕鼓;若為雙字長指令,則(PC)+2àPC慧起,依此類推菇晃。
//PC -> AR -> Memory
//Memory -> IR
2.指令譯碼階段
取出指令后,計(jì)算機(jī)立即進(jìn)入指令譯碼(Instruction Decode蚓挤,ID)階段磺送。
在指令譯碼階段,指令譯碼器按照預(yù)定的指令格式灿意,對(duì)取回的指令進(jìn)行拆分和解釋估灿,識(shí)別區(qū)分出不同的指令類別以及各種獲取操作數(shù)的方法。
在組合邏輯控制的計(jì)算機(jī)中缤剧,指令譯碼器對(duì)不同的指令操作碼產(chǎn)生不同的控制電位馅袁,以形成不同的微操作序列;在微程序控制的計(jì)算機(jī)中鞭执,指令譯碼器用指令操作碼來找到執(zhí)行該指令的微程序的入口司顿,并從此入口開始執(zhí)行。
3.訪存取數(shù)階段
根據(jù)指令需要兄纺,有可能要訪問主存大溜,讀取操作數(shù),這樣就進(jìn)入了訪存取數(shù)(Memory估脆,MEM)階段钦奋。
此階段的任務(wù)是:根據(jù)指令地址碼,得到操作數(shù)在主存中的地址疙赠,并從主存中讀取該操作數(shù)用于運(yùn)算。
4.執(zhí)行指令階段
在取指令和指令譯碼階段之后圃阳,接著進(jìn)入執(zhí)行指令(Execute,EX)階段捍岳。
此階段的任務(wù)是完成指令所規(guī)定的各種操作富寿,具體實(shí)現(xiàn)指令的功能。為此页徐,CPU的不同部分被連接起來,以執(zhí)行所需的操作变勇。
例如,如果要求完成一個(gè)加法運(yùn)算搀绣,算術(shù)邏輯單元ALU將被連接到一組輸入和一組輸出飞袋,輸入端提供需要相加的數(shù)值豌熄,輸出端將含有最后的運(yùn)算結(jié)果。
5.結(jié)果寫回階段
作為最后一個(gè)階段锣险,結(jié)果寫回(Writeback,WB)階段把執(zhí)行指令階段的運(yùn)行結(jié)果數(shù)據(jù)“寫回”到某種存儲(chǔ)形式:結(jié)果數(shù)據(jù)經(jīng)常被寫到CPU的內(nèi)部寄存器中芯肤,以便被后續(xù)的指令快速地存取崖咨;在有些情況下,結(jié)果數(shù)據(jù)也可被寫入相對(duì)較慢击蹲、但較廉價(jià)且容量較大的主存署拟。許多指令還會(huì)改變程序狀態(tài)字寄存器中標(biāo)志位的狀態(tài),這些標(biāo)志位標(biāo)識(shí)著不同的操作結(jié)果歌豺,可被用來影響程序的動(dòng)作推穷。
6.循環(huán)階段
在指令執(zhí)行完畢、結(jié)果數(shù)據(jù)寫回之后类咧,若無意外事件(如結(jié)果溢出等)發(fā)生馒铃,計(jì)算機(jī)就接著從程序計(jì)數(shù)器PC中取得下一條指令地址,開始新一輪的循環(huán)痕惋,下一個(gè)指令周期將順序取出下一條指令区宇。
//重復(fù) 1~5
主存與CPU聯(lián)系
轉(zhuǎn)載:https://blog.csdn.net/z4909801/article/details/77976626