完整執行一條指令所需要的時間
基本概念
指令周期,讀取-執行周期(fetch-and-execute cycle)是指CPU要執行指令經過的步驟。
在取指令的階段,指令是放在存儲器(也就是內存)里的,實際上,通過PC寄存器和指令寄存器取出指令的過程,是由控制器(Control Unit)操作的。指令的解碼過程,也是由控制器進行的。
一旦到了執行指令階段,無論是進行算術操作、邏輯操作的 R 型指令,還是進行數據傳輸、條件分支的 I 型指令,都是由算術邏輯單元(ALU)操作的,也就是由運算器處理的。不過,如果是一個簡單的無條件地址跳轉,那么可以直接在控制器里面完成,不需要用到運算器。
馮諾伊曼的指令周期模型
IF(Instruction fetch) 取指:從 Instruction-Memory 中讀取指令,並在下一個時鍾上升沿到來時把指令送
到 ID 級的指令緩沖器 id_ir 中。該級控制信號決定下一個指令指針的 pc 信號(即 Instruction-Memory 的指令地址 i_addr)
ID(Instruction decode)指令譯碼: 對 IF 級的指令進行譯碼,根據指令操作碼獲取操作數read reg_1、read reg_2 或者要 直接儲存的數據內容 smdr,並在下一個時鍾上升沿到來前把指令 id_ir(前 8 位,操作碼+operand1)送 到 EX 級的指令緩沖器 ex_ir 中
EX(Execute)執行:該級進行算術運算(加、減)、簡單傳輸(JUMP 操作)、邏輯運算(與、或、異或) 或移位操作(邏輯左移、邏輯右移、算術左移、算術右移)。算術邏輯單元 ALU 根據指令對兩個操作數 reg_A、 reg_B 進行操作,將獲得的結果 ALUo 送到下一級的 reg_C,在此過程中,控制標志信號 cf、nf、zf 並將 其傳到相應的緩沖寄存器 ;或者產生存儲數據的使能信號 d_we,同時將要直接儲存的數據內容 smdr 傳到 MEM 級的 smdr1。在下一個時鍾上升沿到來前把指令 ex_ir 送到 MEM 級的指令緩沖器 mem_ir 中。總的來說就是拿到譯碼后的數據在ALU中進行計算,並將計算的結果放在MEM中的緩沖區中。
MEM(Memory Access):數據存儲器訪問: 根據指令處理 reg_C 獲取需要的內容存儲到緩沖器 reg_C1,並在下 一個時鍾上升沿到來前把指令 mem_ir 送到 WB 級的指令緩沖器 wb_ir 中。只有在執行 LOAD、STORE 指令 時才對存儲器進行讀、寫操作,對於此之外的其他指令,MEM 級只起到一個周期的作用。
WB(Write Back) 寫回:對於需要刷新通用寄存器的操作,WB級把指令執行的結果回寫到通用寄存器中
cpu執行完每條指令后,都會檢測是否有中斷信息。