• 指令周期

    編輯
    本詞條由“匿名用戶” 建檔。

    指令周期

    編輯

    指令周期(也稱為獲取-解碼-執行周期,或簡稱為獲取-執行周期)是中央處理器 (CPU) 從啟動到計算機關閉以處理指令所遵循的周期 . 它由三個主要階段組成:取指階段、解碼階段和執行階段。

    在更簡單的 CPU 中,指令周期是按順序執行的,每條指令在下一條指令開始之前被處理。 在大多數現代 CPU 中,指令周期是通過指令流水線并發執行的,而且通常是并行執行的:下一條指令在前一條指令完成之前開始處理,這是可能的,因為周期被分解成單獨的步驟。

    組件的作用

    編輯

    程序計數器(PC)是一個特殊的寄存器,保存著下一條要執行的指令的內存地址。 在獲取階段,PC 中存儲的地址被復制到內存地址寄存器 (MAR) 中,然后 PC 遞增以指向下一條要執行的指令的內存地址。 然后,CPU 在 MAR 描述的內存地址處獲取指令,并將其復制到內存數據寄存器 (MDR) 中。 MDR 還充當雙向寄存器,用于保存從內存中獲取的數據或等待存儲在內存中的數據(因此也稱為內存緩沖寄存器 (MBR))。 最終,MDR 中的指令被復制到當前指令寄存器 (CIR) 中,該寄存器充當剛剛從內存中獲取的指令的臨時存放地。

    在解碼階段,控制單元(CU)將解碼 CIR 中的指令。 然后,CU 將信號發送到 CPU 內的其他組件,例如算術邏輯單元 (ALU) 和浮點單元 (FPU)。 ALU 執行算術運算,例如加法和減法,還可以通過重復加法進行乘法運算,通過重復減法進行除法運算。 它還執行邏輯運算,例如 AND、OR、NOT 和二進制移位。 FPU 保留用于執行浮點運算。

    階段總結

    編輯

    每臺計算機的CPU根據不同的指令集可以有不同的周期,但都會類似下面的周期:

    • 取指階段:從程序計數器當前存儲的內存地址中取下一條指令,存入指令寄存器。 在獲取操作結束時,PC 指向將在下一個周期讀取的下一條指令。
    • 解碼階段:在此階段,指令寄存器中的編碼指令由解碼器解釋。
      • 讀取有效地址:在內存指令(直接或間接)的情況下,執行階段將在下一個時鐘脈沖期間。 如果指令有間接地址,則從主存中讀取有效地址,并從主存中取出任何需要處理的數據,然后放入數據寄存器(時鐘脈沖:T3)。 如果指令是直接指令,則在此時鐘脈沖期間不執行任何操作。 如果這是 I/O 指令或寄存器指令,則操作在時鐘脈沖期間執行。
    • 執行階段:CPU的控制單元將解碼后的信息作為控制信號序列傳遞給CPU的相關功能單元,以執行指令所需的動作,例如從寄存器中讀取值,將它們傳遞給 ALU 對它們執行數學或邏輯函數,并將結果寫回寄存器。 如果涉及 ALU,它會將條件信號發送回 CU。 運算產生的結果存儲在主存儲器中或發送到輸出設備。 根據 ALU 的反饋,PC 可能會更新到一個不同的地址,下一條指令將從該地址獲取。
    • 重復循環

    此外,在大多數處理器上都可能發生中斷。 這將導致 CPU 跳轉到中斷服務程序,執行該程序然后返回。 在某些情況下,一條指令可以在中途被中斷,該指令不會有任何效果,但會在從中斷返回后重新執行。

    啟動

    編輯

    系統一通電,循環就開始了,初始 PC 值由系統架構預定義(例如,在 Intel IA-32 CPU 中,預定義的 PC 值為 0xfffffff0)。

    指令周期

    通常,此地址指向只讀存儲器 (ROM) 中的一組指令,這些指令開始加載(或引導)操作系統的過程。

    獲取階段

    編輯

    每條指令的獲取步驟都是相同的:

    • CPU將PC的內容發送給MAR,并在控制總線上發送讀取命令
    • 響應讀命令(地址等于PC),內存返回存儲在內存位置ind的數據

    內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/196064/

    (1)
    詞條目錄
    1. 指令周期
    2. 組件的作用
    3. 階段總結
    4. 啟動
    5. 獲取階段

    輕觸這里

    關閉目錄

    目錄
    91麻精品国产91久久久久