• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    一種中斷處理方法及流水線控制器技術

    技術編號:15690539 閱讀:88 留言:0更新日期:2017-06-24 03:00
    本發明專利技術公開了一種中斷處理方法及流水線控制器,所述中斷處理方法包括以下步驟:(1)、內核接收中斷請求,并獲取中斷向量;(2)、內核判斷當前狀態是否允許中斷,若允許,取指單元使用中斷向量對中斷服務程序進行取指;(3)、內核執行中斷服務程序的首條指令,并使用首條指令標識進行標識,同時,內核當前流水線上的尾部指令正常執行,所述尾部指令為內核當前流水線上位于所述中斷服務程序中的首條指令之前的指令;(4)、按照中斷返回寄存器中保存的返回地址進行返回。本發明專利技術的中斷處理方法,響應中斷不會沖刷流水線,已經取指、發射、譯碼、執行的指令可以繼續執行,避免了這些指令的重復操作。

    Interrupt processing method and pipeline controller

    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)、中斷服務程序中的所有指令執行完畢后,按照中斷返回寄存器中保存的返回地址進行返回。進一步的,步驟(3)之前還包括判斷中斷源的類型的步驟,包括硬件中斷和軟件中斷,若步驟(1)中所接收的中斷為硬件中斷,則按照步驟(3)-步驟(4)執行。進一步的,若步驟(1)中所接收的中斷為軟件中斷,則進一步判斷軟件中斷屬于非精確軟件中斷還是精確軟件中斷,若為非精確軟件中斷,則按照步驟(3)-步驟(4)執行,若為精確軟件中斷,則步驟(2)之前還包括沖刷掉內核當前流水線上發生精確軟件中斷指令之后的所有指令的步驟,發生精確軟件中斷指令執行至最后一級時,決定如何保存地址:若該精確軟件中斷需要重新執行該指令,則保存該指令的地址;否則,按照步驟(3)-步驟(4)執行。進一步的,步驟(3)中執行所述尾部指令時,若所述尾部指令存在跳轉指令,判斷所述跳轉指令與所述中斷請求的優先級,若所述跳轉指令的優先級不高于所述中斷請求的優先級,向流水線控制器發出低優先級的沖刷流水線控制請求,計算出跳轉目標地址并記錄,不執行跳轉。進一步的,步驟(3)中執行所述尾部指令時,若所述跳轉指令的優先級高于所述中斷請求的優先級,向流水線控制器發出高優先級的沖刷流水線控制請求,向取指單元給出取指請求,執行所述跳轉指令,此時不執行所述中斷服務程序,內核判斷當前狀態修改為不允許中斷,返回步驟(1)。進一步的,流水線控制器接收到所述沖刷流水線控制請求時,根據沖刷流水線控制請求的優先級以及中斷服務程序的首條指令標識確定每一流水級的控制信號:當前流水線上存在中斷服務程序的首條指令,且需要響應尾部指令給出的低優先級的沖刷流水線控制時,不沖刷中斷服務程序所在流水級,中斷服務程序所在流水級由中斷服務程序指令給出的流水線控制請求控制。基于上述的一種中斷處理方法,本專利技術同時提出了一種流水線控制器,包括指令標記單元、第一處理請求單元、第二請求處理單元、控制信號選擇單元,所述指令標記單元用于保存中斷服務程序的首條指令標志,將當前流水線上每一流水級的首條指令標志組成指令標記信號傳遞至所述第二請求處理單元和控制信號選擇單元;所述第一請求處理單元用于接收所有流水級產生的流水線控制請求,處理尾部指令給出的低優先級沖刷流水線控制請求,產生第一控制信號;所述第二請求處理單元處理由中斷服務程序指令給出的流水線控制信號,產生第二控制信號;所述控制信號選擇單元根據所述流水線控制請求和指令標記信號確定每一流水級當前執行的指令為尾部指令還是中斷服務程序指令,選擇由第一控制信號控制還是由第二控制信號控制。與現有技術相比,本專利技術的優點和積極效果是:本專利技術的中斷處理方法,響應中斷不會沖刷流水線,已經取指、發射、譯碼、執行的指令可以繼續執行,避免了這些指令的重復操作。而中斷服務程序的指令會在上述指令執行的同時,進行取指,并隨著流水線一步步執行,所以對中斷服務程序的執行沒有影響。結合附圖閱讀本專利技術實施方式的詳細描述后,本專利技術的其他特點和優點將變得更加清楚。附圖說明為了更清楚地說明本專利技術實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本專利技術的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。圖1是本專利技術所提出的中斷處理方法的一種實施例流程圖;圖2是本專利技術所提出的中斷控制器的一種實施原理方框圖。具體實施方式下面將結合本專利技術實施例中的附圖,對本專利技術實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本專利技術一部分實施例,而不是全部的實施例。基本文檔來自技高網
    ...
    一種中斷處理方法及流水線控制器

    【技術保護點】
    一種中斷處理方法,其特征在于,包括以下步驟:(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

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 人妻系列AV无码专区| 亚洲国产综合无码一区二区二三区| 波多野结AV衣东京热无码专区| 熟妇人妻系列av无码一区二区| 亚洲欧洲无码AV电影在线观看| 无码精品人妻一区二区三区中| 亚洲国产精品无码中文lv| 十八禁视频在线观看免费无码无遮挡骂过 | 免费a级毛片无码a∨性按摩| 自拍中文精品无码| 天堂Av无码Av一区二区三区| 亚洲AV无码久久| 中文字幕无码第1页| 亚洲?V无码成人精品区日韩 | 久久亚洲AV永久无码精品| 亚洲AV无码一区二区三区人 | 蜜芽亚洲av无码精品色午夜| 69成人免费视频无码专区| 无码国产精品一区二区免费式直播| 亚洲av无码成人精品区在线播放| 伊人无码精品久久一区二区| 国产成人无码AⅤ片在线观看| 国产免费午夜a无码v视频| 无码夜色一区二区三区| 亚洲av永久无码精品天堂久久| 亚洲av麻豆aⅴ无码电影| 日日摸日日碰人妻无码| 91嫩草国产在线无码观看| 国产爆乳无码一区二区麻豆| 自拍中文精品无码| 亚洲精品无码国产| 亚洲午夜福利AV一区二区无码| 精品无码人妻一区二区三区不卡| 国产高清不卡无码视频| 午夜精品久久久久久久无码| 国产精品亚洲一区二区无码| 曰韩无码AV片免费播放不卡| 人妻少妇乱子伦无码专区| 无码国产亚洲日韩国精品视频一区二区三区 | 丰满爆乳无码一区二区三区| 无码一区二区三区在线|