指令執行步驟:
1.根據PC計數器,從內存中取出指令,PC指向該內存的地址
2.通過指令字段的內容,選取一到兩個寄存器。對於取字指令,只需讀取一個寄存器。
3.根據指令執行結果,修改PC或PC+4
指令格式:
單週期實現數據通路:
指令和數據分開。一個時鐘週期無法同時操作同一個內存。
跳轉指令/分支指令
跳轉指令目標地址:PC+4的高四位;跳轉指令的26位地址;低兩位00
分支指令的目標地址:PC+4 或者 PC+4+ 符號擴展並左移兩位的指令低16位偏移地址
爲什麼不使用單週期實現方式
單週期設計中,時鐘週期堆所有指令都等長,時鐘週期由最長的路徑決定。某些指令本可以在更短的時間內完成。
多週期實現
時鐘週期由基本功能單元延時代替,每條指令需要多個時鐘週期。功能單元可共享。
指令和數據使用同一個存儲器單元;
只有一個ALU;
功能單元加上了一個或者多個寄存器輸出值,以便後面週期使用。