RISC指令集的五個周期


RISC指令集的五個周期 

RISC(reduced instruction set computer,精簡指令集計算機)簡稱為精簡指令集。RISC把執行指令的精力主要放在了經常使用的指令上面。本文主要介紹了在RISC指令集中一條指令的五個主要執行CC(Clock Cycle,時鍾周期)的主要涵義以及內容。

  這五個時鍾周期分別為:IF(Instruction fetch,取指令),ID(Instruction decode/register fetch cycle,指令解碼),EX(Execution/effective address cycle,執行),MEM(Memory access,內存訪問), WB(Write-back cycle,寫回)。

  IF:根據PC(program counter,程序計數器)中所存儲的內存地址,在內存中找到該地址所指向的指令,並將該指令存儲在寄存器中。同時,PC指向下一條指令,完成這個操作要求PC加4(以32位指令集為例,如果是64位則要加8)。

  ID :  操作從IF階段獲取來的指令。將指令解碼,最終找到指令所需要的寄存器中存儲的數據。如果該指令只一條跳轉指令,那么在這一階段需要根據跳轉指令的意義對獲取的值進行比較,如果比較結果為true則執行跳轉,如果比較結果為false則不執行跳轉,繼續下一條指令的執行;如果指令需要對指令中某些位進行填充,也在ID階段完成,比如對高四位進行填充以滿足指令結果是32位;計算可能跳轉的指令的地址。

  EX : ALU(Arithmetic Logic Unit,算術邏輯單元)對ID階段的結果進行計算。在ID階段已經獲得了指令計算所需要的寄存器的值,那么在EX階段需要根據指令的意義對這些寄存器的值進行計算。計算根據指令的不同變得不同。主要有三種類型的ALU計算:1. ALU根據ID中補充的地址,對有效的地址單元進行計算,最終得到所需要的內存的地址;2. 根據指令的意義,對從寄存器中獲取的值,進行操作,比如對兩個寄存器的值進行相加;3. 根據寄存器的值以及補充的值,計算出立即數的結果。

  MEM:如果當前指令是Load指令,那么,根據EX計算出的內存地址,從內存中獲取對應的值;如果當前指令是store,那么,根據EX計算出的內存地址和寄存器的值,將寄存器的值存入該內存地址中。其他的指令一般不會設計內存的訪問。

  WB:將計算出來的最終的寄存器的值寫入到register file(寄存器文件)中。這部操作包括從內存中獲取的值以及通過算術運算得到的結果。

  以上五個時鍾周期便是一條RISC指令執行的主要步驟。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM