The invention discloses a method for processing an interrupt and line controller, the interrupt processing method comprises the following steps: (1) to receive an interrupt request, the kernel, and obtain the interrupt vector; (2), the kernel determines whether the current state allows the interrupt, if allowed, the fetch unit used to interrupt vector interrupt service program for finger; (3), the kernel executes the interrupt service program of the first instruction, and using the first logo, logo at the same time, the tail of the current instruction pipeline on the kernel normal execution, the tail instruction before the current flowing water line at the core of the interrupt service program of the first directive; (4), return the return address stored in the register in accordance with the interrupt return. The interrupt processing method of the invention can not flush the pipeline in response to interruption, and the instructions that have been taken out, transmitted, decoded and executed can continue to be executed, thus avoiding repeated operation of the instructions.
【技術實現步驟摘要】
一種中斷處理方法及流水線控制器
本專利技術屬于微處理器設計
,具體地說,是涉及一種中斷處理方法及流水線控制器。
技術介紹
在微處理器中,中斷(Interrupt)是一種重要的通信、控制方法之一。產生中斷后,處理器核將暫時停止當前處理的程序,轉而去響應中斷請求,在完成中斷服務程序之后,返回繼續執行被中斷的程序。中斷按產生原因可分為軟件中斷和硬件中斷。軟件中斷也稱為例外或異常(Exception),由指令的執行狀態決定,通常在指令的不同流水級可能出現不同的例外,例如在指令譯碼階段發現指令非法、在Load/Store指令執行階段發現TLB缺失、在除法指令執行時發現除數是0、在計算指令執行完畢后發現溢出,或者處理器提供軟件中斷/陷阱指令,提供一種類似系統調用的功能。不同例外可能在不同的流水級產生或被發現,但是其共同點是由指令產生。硬件中斷是指由處理器核之外的設備在特定情況下,請求內核處理相關事務,比如在DMA完成數據搬運之后可通過中斷通知內核DMA事務的結束、內核配置外設錯誤導致出現錯誤請求內核處理并重新配置,或者一些通用的中斷,可配置處理器在中斷產生時,運行特定的程序。中斷具有不同的處理方式,通常有精確軟件中斷與非精確軟件中斷的區別。精確軟件中斷需要滿足以下兩個條件:第一,中斷返回地址對應的指令之前的指令完全執行完畢,且對處理器狀態進行了修改;第二,中斷返回地址對應的指令及其之后的指令對處理器沒有進行修改。而不滿足上述兩個條件的處理方式稱之為非精確軟件中斷。一般情況下,大部分中斷要求精確軟件中斷,只有極少數非精確軟件中斷中斷,或者在某些處理器中沒有非精確軟 ...
【技術保護點】
一種中斷處理方法,其特征在于,包括以下步驟:(1)、內核接收中斷請求,并獲取中斷向量;(2)、內核判斷當前狀態是否允許中斷,若允許,取指單元使用中斷向量對中斷服務程序進行取指;(3)、內核執行中斷服務程序的首條指令,并使用首條指令標識進行標識,同時,內核當前流水線上的尾部指令正常執行,所述尾部指令為內核當前流水線上位于所述中斷服務程序中的首條指令之前的指令;內核執行指令過程中,當執行至該指令的最后一級時,將位于該指令之后的指令的地址進行保存,所述位于該指令之后的指令為程序若不受中斷影響,該指令執行完成之后,下一條應該執行完成的指令;若內核執行的指令為中斷服務程序的首條指令,當執行至該指令的最后一級時,將執行中斷服務程序首條指令之前的指令時所保存的地址作為中斷返回地址記錄在中斷返回寄存器中;(4)、中斷服務程序中的所有指令執行完畢后,按照中斷返回寄存器中保存的返回地址進行返回。
【技術特征摘要】
1.一種中斷處理方法,其特征在于,包括以下步驟:(1)、內核接收中斷請求,并獲取中斷向量;(2)、內核判斷當前狀態是否允許中斷,若允許,取指單元使用中斷向量對中斷服務程序進行取指;(3)、內核執行中斷服務程序的首條指令,并使用首條指令標識進行標識,同時,內核當前流水線上的尾部指令正常執行,所述尾部指令為內核當前流水線上位于所述中斷服務程序中的首條指令之前的指令;內核執行指令過程中,當執行至該指令的最后一級時,將位于該指令之后的指令的地址進行保存,所述位于該指令之后的指令為程序若不受中斷影響,該指令執行完成之后,下一條應該執行完成的指令;若內核執行的指令為中斷服務程序的首條指令,當執行至該指令的最后一級時,將執行中斷服務程序首條指令之前的指令時所保存的地址作為中斷返回地址記錄在中斷返回寄存器中;(4)、中斷服務程序中的所有指令執行完畢后,按照中斷返回寄存器中保存的返回地址進行返回。2.根據權利要求1所述的中斷處理方法,其特征在于,步驟(3)之前還包括判斷中斷源的類型的步驟,包括硬件中斷和軟件中斷,若步驟(1)中所接收的中斷為硬件中斷,則按照步驟(3)-步驟(4)執行。3.根據權利要求2所述的中斷處理方法,其特征在于,若步驟(1)中所接收的中斷為軟件中斷,則進一步判斷軟件中斷屬于非精確軟件中斷還是精確軟件中斷,若為非精確軟件中斷,則按照步驟(3)-步驟(4)執行,若為精確軟件中斷,則步驟(2)之前還包括沖刷掉內核當前流水線上發生精確軟件中斷指令之后的所有指令的步驟,發生精確軟件中斷指令執行至最后一級時,決定如何保存地址:若該精確軟件中斷需要重新執行該指令,則保存該指令的地址;否則,按照步驟(3)-步驟(4)執行。4.根據權利要求1-3中任一項所述的中斷處理方法,其特征在于,步驟(3)中執行所述尾部指令時,若...
【專利技術屬性】
技術研發人員:周沈剛,李任偉,
申請(專利權)人:青島朗思信息科技有限公司,
類型:發明
國別省市:山東,37
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。