發布日期:2022-04-17 點擊率:13
IPS體系結構中的系統控制協處理器簡稱CP0,它提供指令正常執行所需的環境,進行異常/中斷處理、高速緩存填充、虛實地址轉換、操作模式轉換等操作。單從硬件的角度而言,系統控制協處理器對指令集的作用就相當于操作系統對應用程序的作用一樣。
異常處理
CPU運行過程中常常需要中斷正常執行的指令流程,跳轉去執行某段特殊的指令段,接著再恢復原來的指令序列。MIPS體系結構中稱這樣的過程為異常(Exception)。所有的異常都采用統一的機制處理。
對于異常情況,需要采取以下3方面的措施:
1) 異常檢測:CPU需要及時檢測出哪個部件發生了什么異常;一般而言,異常檢測由各個模塊進行,如加法溢出由加法器在運算過程中產生,并在相應的流水段被系統控制協處理器CP0讀入。因此這部分功能不屬于CP0的設計范圍。
2) 異常處理:CPU按照優先級選擇哪個異常被處理,并進行必要的上下文切換(Context Switch),為進入異常服務子程序做準備,保證與該種異常對應的服務程序被執行,并且能夠從中斷處完全恢復原來的指令執行現場。
3) 異常服務:執行異常服務子程序,這部
分主要由軟件(操作系統)來完成。
對異常處理機制的要求
與傳統的異常/中斷處理機制相比,在MIPS 4Kc體系結構下的異常處理需要特別考慮3個因素。
流水線的劃分
本設計采用五段流水線設計,即每條指令的執行一般都經過IF(取指)、DE(指令譯碼)、EX(指令執行)、MEM(訪問存儲器)和WB(數據寫回R.F.)五個步驟。因為指令動作被分割,所以異常源也被分割到各個流水線段。例如:加法溢出異常只能在EX被檢測到。
精確異常處理機制
精確異常處理是指在發生異常時,僅僅對發生異常的指令或其后面的指令進行異常處理;而其前面的指令要保證能夠正常結束。所謂“精確”,是指受到異常處理影響的只有產生異常條件的那條指令,所有在此之前的指令在異常被處理前都將被執行完成。異常處理結束后仍將從發生異常的指令開始繼續執行。
操作模式切換
對于多進程操作系統,至少要區分兩種進程:有特權的操作系統“核心”進程和一般程序的“用戶”進程。當CPU檢測到異常發生時,指令執行的正常順序會被暫停,處理器進入核心模式。當異常服務子程序執行完后,CPU從斷點中恢復現場,繼續執行原指令序列。
異常處理流水線
根據上述分析可以確定,硬件異常處理流水線的主要任務有3個:更新相應的CP0寄存器,即寫CP0寄存器;保存發生異常的指令地址,或當異常指令在延遲槽時,保存引起延遲槽的跳轉指令地址;選擇異常服務子程序的入口地址。
CP0寄存器記錄了CPU當前的狀態,因此,對CP0寄存器的寫就是對CPU狀態的改變,需要進行嚴格的控制。而且對寄存器的寫是影響關鍵路徑的主要因素。因此本文主要論述對CP0寄存器寫操作的設計。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV