CPU中的一條指令的執行過程:
幾乎所有的馮bai·諾伊曼型電腦的CPU,其工作都可以分du為5個階段:取指zhi令、指令譯碼、dao執行指令、訪訪問數、結果寫回。
1.取指令階段
取指令(Instruction Fetch,IF)階段是將一條指令從主記憶體取到指令暫存器的過程。
程式計數器PC中的數值,用來指示目前指令在主記憶體中的位置。當一條指令被取出後,PC中的數值將根據指令字長度而自動遞增:若為單字長指令,則(PC) 1àPC;若為雙字長指令,則(PC) 2àPC,依此類推。
2.指令譯碼階段
取出指令後,電腦立即進入指令譯碼(Instruction Decode,ID)階段。
在指令譯碼階段,指令譯碼器依照預定的指令格式,對取回的指令進行分割與解釋,辨識區分出不同的指令類別以及各種取得運算元的方法。
在組合邏輯控制的電腦中,指令譯碼器對不同的指令操作碼產生不同的控制電位,以形成不同的微操作序列;在微程式控制的電腦中,指令譯碼器用指令操作碼來找到執行該指令的微程式的入口,並從此入口開始執行。
3.執行指令階段
在取指令和指令譯碼階段之後,接著進入執行指令(Execute,EX)階段。
此階段的任務是完成指令所規定的各種操作,具體實現指令的功能。為此,CPU的不同部分被連接起來,以執行所需的操作。
4.訪問訪問數階段
根據指令需要,有可能要存取主存,讀取操作數,這樣就進入了訪問訪問數(Memory,MEM)階段。
此階段的任務是:根據指令位址碼,得到運算元在主記憶體中的位址,並從主記憶體讀取該運算元用於運算。
5.結果寫回階段
作為最後一個階段,結果寫回(Write Back,WB)階段把執行指令階段的運行結果資料「寫回」到某種儲存形式:
結果資料經常被寫到CPU的內部暫存器中,以便被後續的指令快速地存取;
在某些情況下,結果資料也可被寫入相對較慢、但較廉價且容量較大的主記憶體。許多指令也會改變程式狀態字暫存器中標誌位的狀態,這些標誌位元標識著不同的操作結果,可用來影響程式的動作。
在指令執行完畢、結果資料寫回之後,若無意外事件(如結果溢位等)發生,電腦就接著從程式計數器PC取得下一指令位址,開始新一輪的循環,下一個指令周期將順序取出下一指令。
以上是CPU中的一條指令的執行過程的詳細內容。更多資訊請關注PHP中文網其他相關文章!