首頁>Club>
4
回覆列表
  • 1 # 使用者3952194230422

    指令週期

    指令週期是取出一條指令並執行這條指令的時間。一般由若干個機器週期組成,是從取指令、分析指令到執行完所需的全部時間。指令週期型別有非訪內指令的指令週期、取數指令的指令週期、存數指令的指令週期、空操作指令和轉移指令

    指令週期, 讀取-執行週期(fetch-and-execute cycle)是指CPU要執行指令經過的步驟。

    計算機之所以能自動地工作,是因為CPU能從存放程式的記憶體裡取出一條指令並執行這條指令;緊接著又是取指令,執行指令,如此週而復始,構成了一個封閉的迴圈。除非遇到停機指令,否則這個迴圈將一直繼續下去。

    指令週期 :CPU從記憶體取出一條指令並執行這條指令的時間總和。

    CPU週期 :又稱機器週期,CPU訪問一次記憶體所花的時間較長,因此用從記憶體讀取一條指令字的最短時間來定義。

    時鐘週期: 通常稱為節拍脈衝或T週期。一個CPU週期包含若干個時鐘週期。

    類別

    非訪內指令

    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個機器週期。

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

  • 2 # 灣灣是我們的

    指令週期是取出一條指令並執行這條指令的時間。一般由若干個機器週期組成,是從取指令、分析指令到執行完所需的全部時間。

    指令週期型別有非訪內指令的指令週期、取數指令的指令週期、存數指令的指令週期、空操作指令和轉移指令的指令週期。

  • 3 # 滴水之恩浩

    指令週期是取出一條指令並執行這條指令的時間。一般由若干個機器週期組成,是從取指令、分析指令到執行完所需的全部時間。

    指令週期型別有非訪內指令的指令週期、取數指令的指令週期、存數指令的指令週期、空操作指令和轉移指令的指令週期。

    指令不同,所需的機器週期數也不同。對於一些簡單的的單位元組指令,在取指令週期中,指令取出到指令暫存器後,立即譯碼執行,不再需要其它的機器週期。對於一些比較複雜的指令,例如轉移指令、乘法指令,則需要兩個或者兩個以上的機器週期。

    從指令的執行速度看,單位元組和雙位元組指令一般為單機器週期和雙機器週期,三位元組指令都是雙機器週期,只有乘、除指令佔用4個機器週期。

  • 中秋節和大豐收的關聯?
  • 寶寶3個月有必要吃DHA嗎?吃多久呢?