RISC處理器設計(三)------中斷的設計
阿新 • • 發佈:2018-01-26
發生 val nbsp style pac 外部 pri blog 定義 中斷是將正常的指令流運行過程轉向中斷服務程序。在中斷處理完之後,處理器返回到原來運行的程序。
處理器狀態包括寄存器狀態和程序流返回地址,他們保存在特殊寄存器和通用寄存器的R28~R31中。所以有兩套額外的寄存器在不同的中斷等級下調出使用。
處理器有外部中斷或稱為硬件中斷(Hwi)供其他系統單元請求處理器暫停正在執行的程序,而內部中斷則發生在處理器內部。內部中斷又分為異常(EXC)和軟件中斷(SWI)兩種。
異常是指令執行過程中發生錯誤時自動調用的,軟件中斷是SWI指令調用的。
軟件通過跳轉到不同的中斷處理程序,能夠分別處理不同含義和不同優先級的中斷。
硬件中斷則是通過各自獨立的中斷序號來區分的。通過中斷向量,中斷處理程序的起始地址便可以計算出來。
一個向量基值寄存器VBR為中斷處理程序提供快速地址指示。這個指示地址是可編程的。中斷號和VBR的組合便產生了中斷服務程序的入口地址。
VBR寄存器的內容或基址寄存器中的內容,指示了每一個中斷處理程序在存儲器中的起始地址。
這個表包含了指向32個中斷處理程序地址入口的跳轉指令,以及包含2個字8個字節的延遲槽指令。
因此VBR寄存器的0、1和2位都是0.中斷處理程序入口由5位向量表示,即為VBR的3-7位。
類型 | 向量 | 說明 |
Hwi 00xxx | 00000 00001 00010 00011 00100 00101 00110 00111 | BUS_ERROR總線錯誤 PAGE_FAULT頁面錯誤 MISS_ALIGN未對準 操作系統定義 操作系統定義 操作系統定義 操作系統定義 操作系統定義 |
Exc 01xxx | 01000 01001 01010 01011 01100 01101 01110 01111 | 延遲槽為CTR指令 PRIVILEGE_VIOLATION越權指令 ILLEGAL_INSTRUCTION非法指令 UNIMPLEMENTED_INSTRUCTION未實現指令 保留 保留 保留 PANIC嚴重錯誤 |
Swi 1xxxx | 10000 | 操作系統定義 |
RISC處理器設計(三)------中斷的設計