計(jì)算機(jī)組成原理(一)

馮·諾依曼計(jì)算機(jī)的特點(diǎn)(機(jī)器以運(yùn)算器為中心)

  1. 計(jì)算機(jī)由運(yùn)算器、存儲(chǔ)器、控制器、輸入設(shè)備和輸出設(shè)備五大部件組成
  2. 指令(程序)和數(shù)據(jù)以二進(jìn)制不加區(qū)別地存儲(chǔ)在存儲(chǔ)器中
  3. 程序自動(dòng)運(yùn)行

現(xiàn)代計(jì)算機(jī)由三大部分組成(已經(jīng)轉(zhuǎn)化為以存儲(chǔ)器為中心)

  1. CPU(Central Processing Unit) 中央處理器,核心部件為ALU(Arithmetic Logic Unit,算術(shù)邏輯單元)和CU(Control Unit,控制單元)
  2. I/O設(shè)備(受CU控制)
  3. 主存儲(chǔ)器(Main Memory,MM),分為RAM(隨機(jī)存儲(chǔ)器)和ROM(只讀存儲(chǔ)器)

一條指令在CPU的執(zhí)行過程

  1. Ad(Address) 形式地址
  2. DR(Data Register) 數(shù)據(jù)寄存器
  3. AR(Address Register) 地址寄存器(MAR)
  4. IR(Instruction Register) 指令寄存器
  5. BR(Buffer Register) 緩沖寄存器(MBR)
  6. ID(Instruction Decoder) 指令譯碼器
  7. 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ù)指令字長(zhǎng)度而自動(dòng)遞增:若為單字長(zhǎng)指令,則(PC)+1àPC;若為雙字長(zhǎng)指令,則(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

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

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

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