CPU:
1.寄存器;
2.控制器CU(Control Unit):
指令寄存器IR(InstructionRegister)蘸鲸、程序計數(shù)器PC(ProgramCounter)和操作控制器OC(OperationController);
3.ALU(算數(shù)邏輯運算單元),不包括寄存器;
4.總覽
過程詳述:
幾乎所有的馮·諾伊曼型計算機(jī)的CPU窿锉,其工作都可以分為5個階段:取指令酌摇、指令譯碼、執(zhí)行指令嗡载、訪存取數(shù)窑多、結(jié)果寫回。
1.取指令階段
取指令(Instruction Fetch洼滚,IF)階段是將一條指令從主存中取到指令寄存器的過程埂息。
程序計數(shù)器PC中的數(shù)值,用來指示當(dāng)前指令在主存中的位置。當(dāng)一條指令被取出后千康,PC中的數(shù)值將根據(jù)指令字長度而自動遞增:若為單字長指令享幽,則(PC)+1àPC;若為雙字長指令拾弃,則(PC)+2àPC值桩,依此類推。
2.指令譯碼階段
取出指令后豪椿,計算機(jī)立即進(jìn)入指令譯碼(Instruction Decode奔坟,ID)階段。
在指令譯碼階段砂碉,指令譯碼器按照預(yù)定的指令格式,對取回的指令進(jìn)行拆分和解釋刻两,識別區(qū)分出不同的指令類別以及各種獲取操作數(shù)的方法增蹭。
在組合邏輯控制的計算機(jī)中,指令譯碼器對不同的指令操作碼產(chǎn)生不同的控制電位磅摹,以形成不同的微操作序列滋迈;在微程序控制的計算機(jī)中,指令譯碼器用指令操作碼來找到執(zhí)行該指令的微程序的入口户誓,并從此入口開始執(zhí)行饼灿。
在傳統(tǒng)的設(shè)計里,CPU中負(fù)責(zé)指令譯碼的部分是無法改變的帝美。不過碍彭,在眾多運用微程序控制技術(shù)的新型CPU中,微程序有時是可重寫的悼潭,可以通過修改成品CPU來改變CPU的譯碼方式。
3.執(zhí)行指令階段
在取指令和指令譯碼階段之后,接著進(jìn)入執(zhí)行指令(Execute溃蔫,EX)階段闽铐。
此階段的任務(wù)是完成指令所規(guī)定的各種操作,具體實現(xiàn)指令的功能占拍。為此略就,CPU的不同部分被連接起來,以執(zhí)行所需的操作晃酒。
例如表牢,如果要求完成一個加法運算,算術(shù)邏輯單元ALU將被連接到一組輸入和一組輸出贝次,輸入端提供需要相加的數(shù)值初茶,輸出端將含有最后的運算結(jié)果。
4.訪存取數(shù)階段
根據(jù)指令需要,有可能要訪問主存恼布,讀取操作數(shù)螺戳,這樣就進(jìn)入了訪存取數(shù)(Memory,MEM)階段折汞。
此階段的任務(wù)是:根據(jù)指令地址碼倔幼,得到操作數(shù)在主存中的地址,并從主存中讀取該操作數(shù)用于運算爽待。
5.結(jié)果寫回階段
作為最后一個階段损同,結(jié)果寫回(Writeback,WB)階段把執(zhí)行指令階段的運行結(jié)果數(shù)據(jù)“寫回”到某種存儲形式:結(jié)果數(shù)據(jù)經(jīng)常被寫到CPU的內(nèi)部寄存器中鸟款,以便被后續(xù)的指令快速地存雀嗳肌;在有些情況下何什,結(jié)果數(shù)據(jù)也可被寫入相對較慢组哩、但較廉價且容量較大的主存。許多指令還會改變程序狀態(tài)字寄存器中標(biāo)志位的狀態(tài)处渣,這些標(biāo)志位標(biāo)識著不同的操作結(jié)果伶贰,可被用來影響程序的動作。
在指令執(zhí)行完畢罐栈、結(jié)果數(shù)據(jù)寫回之后黍衙,若無意外事件(如結(jié)果溢出等)發(fā)生,計算機(jī)就接著從程序計數(shù)器PC中取得下一條指令地址荠诬,開始新一輪的循環(huán)琅翻,下一個指令周期將順序取出下一條指令。
許多新型CPU可以同時取出柑贞、譯碼和執(zhí)行多條指令望迎,體現(xiàn)并行處理的特性。