指令周期

指令周期

計算機專業術語
執行一條指令所需要的時間,一般由若幹個機器周期組成。指令不同,所需的機器周期也不同。通常,包含一個機器周期的指令成為單周期指令,比如CLR,MOV等等。包含兩個機器周期的指令稱為雙周期指令。另外還有4周期指令,比如乘法和除法指令。對于一些簡單的的單字節指令,在取指令周期中,指令取出到指令寄存器後,立即譯碼執行,不再需要其它的機器周期。對于一些比較複雜的指令,例如轉移指令、乘法指令,則需要兩個或者兩個以上的機器周期。[1]
    中文名:指令周期 外文名:Instruction Cycle 适用領域: 所屬學科:計算機學科 概述:完整執行一條指令所需要的時間

類别

非訪内指令

CLA是一條非訪内指令,它需要兩個CPU周期,其中取指令階段需要一個CPU周期,執行指令階段需要一個CPU周期。

1、取指令階段

(1)程序計數器PC的内容20(八進制)被裝入

地址寄存器AR;

(2)程序計數器内容加1,變成21,為取下一條指令做好準備;

(3)地址寄存器的内容被放到

地址總線上;

(4)所選存儲器單元20的内容經過數據總線,傳送到數據緩沖寄存器DR;

(5)緩沖寄存器的内容傳送到指令寄存器IR;

(6)指令寄存器中的操作碼被譯碼或測試;

(7)CPU識别出是指令CLA,至此,取指令階段即告結束。

2、執行指令階段

(1)操作控制器送一控制信号給算術邏輯運算單元ALU;

(2)ALU響應該控制信号,将累加寄存器AC的内容全部清零,從而執行了CLA指令。

取數指令

1.送操作數地址

第二個CPU周期主要完成送操作數地址。在此階段,CPU的動作隻有一個,那就是把指令寄存器中的地址碼部分(30)裝入地址寄存器,其中30為内存中存放操作數的地址。

2.兩操作數相加

第三個CPU周期主要完成取操作數并執行加法操作中。在此階段,CPU完成如下動作:

(1)把地址寄存器中的操作數的地址發送到地址總線上。

(2)由存儲器單元30中讀出操作數,并經過數據總線傳送到緩沖寄存器。

(3)執行加操作:由數據緩沖寄存器來的操作數可送往ALU的一個輸入端,已等候在累加器内的另一個操作數(因為CLA指令執行結束後累加器内容為零)送往ALU的另一輸入端,于是ALU将兩數相加,産生運算結果為0+6=6。這個結果放回累加器,替換了累加器中原先的數0。

存數指令

STA指令的指令周期由三個CPU周期組成。

1.送操作數地址

在執行階段的第一個CPU周期中,CPU完成的動作是把指令寄存器中地址碼部分的形式地址40裝到地址寄存器。其中數字40是操作數地址。

2.存儲和數

執行階段的第二個CPU周期中,累加寄存器的内容傳送到緩沖寄存器,然後再存入到所選定的存儲單元(40)中。CPU完成如下動作:

(1)累加器的内容被傳送到數據緩沖寄存器DR;

(2)把地址寄存器的内容發送到地址總線上,即為将要存入的數據6的内存單元号;

(3)把緩沖寄存器的内容發送到數據總線上;

(4)數據總線上的數寫入到所選中的存儲器單元中,即将數6寫入到存儲器40号單元中。

注意

在這個操作之後,累加器中仍然保留和數6,而存儲器40号單元中原先的内容被沖掉。

空操作指令和轉移指令

第四條指令即“NOP”指令,這是一條空操作指令。其中第一個CPU周期中取指令,CPU把23号單元的“NOP”指令取出放到指令寄存器,第二個CPU周期中執行該指令。因譯碼器譯出是“NOP”指令,第二個CPU周期中操作控制器不發出任何控制信号。NOP指令可用來調機之用。

1.第一個CPU周期(取指令階段)

CPU把24号單元的“JMP 21”指令取出放至指令寄存器,同時程序計數器内容加1,變為25,從而取下一條指令做好準備。

2.第二個CPU周期(執行階段)

CPU把指令寄存器中地址碼部分21送到程序計數器,從而用新内容21代替PC原先的内容25。這樣,下一條指令将不從25單元讀出,而是從内存21單元開始讀出并執行,從而改變了程序原先的執行順序。

注意

執行“JMP 21”指令時,我們此處所給的四條指令組成的程序進入了死循環,除非人為停機,否則這個程序将無休止地運行下去,因而内存單元40中的和數将一直不斷地發生變化。當然,我們此處所舉的轉移地址21是随意的,僅僅用來說明轉移指令能夠改變程序的執行順序而已。

特點

指令不同,所需的

機器周期數也不同。對于一些簡單的的單字節指令,在取指令周期中,指令取出到

指令寄存器後,立即譯碼執行,不再需要其它的機器周期。對于一些比較複雜的指令,例如轉移指令、乘法指令,則需要兩個或者兩個以上的機器周期。

從指令的執行速度看,單字節和雙字節指令一般為單機器周期和雙機器周期,三字節指令都是雙機器周期,隻有乘、除指令占用4個機器周期。

因此在進行

編程時,在完成相同工作的情況下,選用占用機器周期少的命令會提高程序的執行速率,尤其是在編寫大型程序程序的時候,其效果更加明顯。

上一篇:Shell腳本

下一篇:積分運算電路

相關詞條

相關搜索

其它詞條