中央處理器CPU——指令周期



指令周期:CPU從主存中取出並執行一條指令所需全部時間
機器周期:也叫CPU周期,多個機器周期組成一個指令周期
時鍾周期:也叫節拍/T周期/CPU時鍾周期;多個時鍾周期組成一個機器周期,是CPU操作的最基本單位
每個指令周期內的機器周期數和時鍾周期數可以不相等

空指令周期NOP:只有取指周期
加法指令ADD:取指周期+執行周期
乘法指令MUL:取指周期+執行周期(比加法長)
具有間接尋址的指令:取指周期+間址周期+執行周期
帶有中斷周期的指令:取指周期+間址周期+執行周期+中斷周期

指令周期流程:
四個工作周期都有CPU訪存操作,只是訪存的目的不同。取指周期是為了取指令,間址周期是為了取有效地址,執行周期是為了取操作數,中斷周期是為了保存程序斷點。

數據流向:
取指周期:
1.PC將地址送到MAR
2.CU通過控制總線發送“讀信號”到主存
3.MAR通過地址總線將地址送到主存
4.主存按地址找到指令並通過數據總線送到MDR
5.MDR將指令送到IR
6.CU向PC發送控制信號生成下一條指令的地址(PC+1)

間址周期:
1.IR將指令中的形式地址送到MAR
2.CU通過控制總線發送“讀信號”到主存
3.MAR通過地址總線將形式地址送到主存
4.主存按形式地址找到有效地址並通過數據總線送到MDR
5.此時有效地址在MDR;有兩種思路1.將有效地址送到IR中,開始尋址;2.直接從MDR中取有效地址

執行周期:
執行周期的任務是根據|R中的指令字的操作碼和操作數通過U操作產生執行結果。不同指令的執行周期操作不同,因此沒有統一的數據流向。

中斷周期:
中斷:暫停當前任務去完成其他任務,為恢復當前任務,要用堆棧SP保存斷點地址(進棧操作:先修改指針,選定一個空區域,再存入數據)
1.CU將斷點的地址放入MAR中
2.CU通過控制總線發送“寫操作”到主存
3.MAR通過地址總線定位到主存中的地址
4.將斷點(PC的內容)送到MDR
5.MDR通過數據總線將斷點送到主存中
6.CU將向量地址(中斷服務程序的入口地址)放到PC中
7.切入到新的程序

指令執行方案:
一個指令周期通常要包括幾個時間段(執行步驟),每個步驟完成指令的一部分功能,幾個依次執行的步驟完成這條指令的全部功能。
方案1.單指令周期
對所有指令都選用相同的執行時間來完成。指令之間串行執行;指令周期取決於執行時間最長的指令的執行時間。對於那些本來可以在史短時間內完成的指令,要使用這個較長的周期來完成,會降低整個系統的運行速度。

方案2.多指令周期
對不同類型的指令選用不同的執行步驟來完成。指令之間串行執行;可選用不同個數的時鍾周期來完成不同指令的執行過程。需要更復雜的硬件設計。

方案3.流水線方案
在每一個時鍾周期啟動一條指令,盡量讓多條指令同時運行,但各自處在不同的執行步驟中。指令之間並行執行。










免責聲明!

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



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