-
指令週期
鎖定
指令週期是取出一條指令並執行這條指令的時間。一般由若干個機器週期組成,是從取指令、分析指令到執行完所需的全部時間。
指令週期類型有非訪內指令的指令週期、取數指令的指令週期、存數指令的指令週期、空操作指令和轉移指令的指令週期。
- 中文名
- 指令週期
- 外文名
- Instruction Cycle
- 概 述
- 完整執行一條指令所需要的時間
指令週期基本概念
計算機之所以能自動地工作,是因為CPU能從存放程序的內存裏取出一條指令並執行這條指令;緊接着又是取指令,執行指令,如此週而復始,構成了一個封閉的循環。除非遇到停機指令,否則這個循環將一直繼續下去。
指令週期 :CPU從內存取出一條指令並執行這條指令的時間總和。
時鐘週期: 通常稱為節拍脈衝或T週期。一個CPU週期包含若干個時鐘週期。
[1]
指令週期類別
指令週期非訪內指令
CLA是一條非訪內指令,它需要兩個CPU 週期,其中取指令階段需要一個CPU週期,執行指令階段需要一個CPU週期。
1、取指令階段
(2)程序計數器內容加1,變成21,為取下一條指令做好準備;
(3)地址寄存器的內容被放到地址總線上;
(6)指令寄存器中的操作碼被譯碼或測試;
(7)CPU識別出是指令CLA,至此,取指令階段即告結束。
2、執行指令階段
(2)ALU響應該控制信號,將累加寄存器AC的內容全部清零,從而執行了CLA指令。
[1]
指令週期取數指令
1.送操作數地址
2.兩操作數相加
第三個CPU週期主要完成取操作數並執行加法操作中。在此階段,CPU完成如下動作:
(1)把地址寄存器中的操作數的地址發送到地址總線上。
(2)由存儲器單元30中讀出操作數,並經過數據總線傳送到緩衝寄存器。
(3)執行加操作:由數據緩衝寄存器來的操作數可送往ALU 的一個輸入端,已等候在累加器內的另 一個操作數(因為CLA指令執行結束後累加器內容為零)送往ALU的另一輸入端,於是ALU將兩數相加,產生運算結果為0+6=6。這個結果放回累加器,替換了累加器中原先的數0 。
[1]
指令週期存數指令
STA指令的指令週期由三個CPU週期組成。
1.送操作數地址
2.存儲和數
(1)累加器的內容被傳送到數據緩衝寄存器DR;
(2)把地址寄存器的內容發送到地址總線上,即為將要存入的數據6的內存單元號;
(3)把緩衝寄存器的內容發送到數據總線上;
指令週期空操作指令
第四條指令即“NOP”指令,這是一條空操作指令。其中第一個CPU週期中取指令,CPU把23號單元的“NOP”指令取出放到指令寄存器,第二個CPU週期中執行該指令。因譯碼器譯出是“NOP”指令,第二個CPU週期中操作控制器不發出任何控制信號。NOP指令可用來調機之用。
1.第一個CPU週期(取指令階段)
2.第二個CPU週期(執行階段)
CPU把指令寄存器中地址碼部分21送到程序計數器,從而用新內容21代替PC原先的內容25。這樣,下一條指令將不從25單元讀出,而是從內存21單元開始讀出並執行,從而改變了程序原先的執行順序。
注意 執行“JMP 21”指令時,我們此處所給的四條指令組成的程序進入了死循環,除非人為停機,否則這個程序將無休止地運行下去,因而內存單元40中的和數將一直不斷地發生變化。當然,我們此處所舉的轉移地址21是隨意的,僅僅用來説明轉移指令能夠改變程序的執行順序而已。
[1]
指令週期特點介紹
指令不同,所需的機器週期數也不同。對於一些簡單的的單字節指令,在取指令週期中,指令取出到指令寄存器後,立即譯碼執行,不再需要其它的機器週期。對於一些比較複雜的指令,例如轉移指令、乘法指令,則需要兩個或者兩個以上的機器週期。
[2]
從指令的執行速度看,單字節和雙字節指令一般為單機器週期和雙機器週期,三字節指令都是雙機器週期,只有乘、除指令佔用4個機器週期。
- 參考資料
-
- 1. 指令週期、時序產生器 .湖南學院網[引用日期2012-10-12]
- 2. 軟考網絡工程師考點總結 .教育城網[引用日期2012-10-12]