基于多中斷源優(yōu)先級排序的中斷控制方法
【專利摘要】本發(fā)明公開了一種基于多中斷源優(yōu)先級排序的中斷控制方法,所述方法包括:S1、將每個中斷源按照有效位、中斷類型、中斷優(yōu)先級和中斷源序號進(jìn)行歸類,形成若干排列單元;S2、將所有排列單元按照優(yōu)先級高低的順序依次排列,形成中斷優(yōu)先級隊(duì)列;S3、中斷請求發(fā)生,對應(yīng)的中斷源按照中斷優(yōu)先級隊(duì)列中的順序依次響應(yīng)。本發(fā)明可實(shí)現(xiàn)多個中斷源的中斷控制,具有快速、低功耗的特點(diǎn)。
【專利說明】基于多中斷源優(yōu)先級排序的中斷控制方法
【技術(shù)領(lǐng)域】
[0001 ] 本申請涉及中斷控制【技術(shù)領(lǐng)域】,尤其涉及一種基于多中斷源優(yōu)先級排序的中斷控制方法。
【背景技術(shù)】
[0002]中斷控制器一般包括若干中斷源,所謂中斷是指在CPU正常運(yùn)行程序時,由于內(nèi)、外部事件而引起CPU暫時中止正在運(yùn)行的程序,轉(zhuǎn)而去執(zhí)行請求CPU暫時中止的內(nèi)、外部事件的服務(wù)程序,待該服務(wù)程序處理完畢后又返回到被中止的程序。而能夠向CPU發(fā)出中斷請求的中斷來源即稱為“中斷源”。
[0003]目前的很多中斷控制器,有些是固定優(yōu)先級的,如按照固定的中斷源序號(硬件連接)的順序來排列優(yōu)先級,這樣的中斷控制器在系統(tǒng)應(yīng)用的時候會帶來很多的限制,不能對所有的中斷源按照任意的優(yōu)先級進(jìn)行排序。另有一些中斷控制器,可以由軟件對所有的中斷源設(shè)置成任意的優(yōu)先級,不過在每次有中斷請求發(fā)生的時候,所有的中斷優(yōu)先級都會進(jìn)行一次優(yōu)先級比較,從而確定當(dāng)前優(yōu)先級最高的中斷源來響應(yīng),而所有這些優(yōu)先級比較邏輯在每次有中斷請求發(fā)生的時候都會活動,這會導(dǎo)致較大的功耗,同時也帶來較大的延遲。
[0004]綜上所述,有必要提供一種基于多中斷源優(yōu)先級排序的中斷控制方法以解決上述問題。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明目的在于提供一種快速、低功耗的基于多中斷源優(yōu)先級排序的中斷控制方法。
[0006]為了實(shí)現(xiàn)上述目的,本申請實(shí)施例提供的技術(shù)方案如下:
[0007]一種基于多中斷源優(yōu)先級排序的中斷控制方法,所述方法包括:
[0008]S1、將每個中斷源按照有效位、中斷類型、中斷優(yōu)先級和中斷源序號進(jìn)行歸類,形成若干排列單元;
[0009]S2、將所有排列單元按照優(yōu)先級高低的順序依次排列,形成中斷優(yōu)先級隊(duì)列;
[0010]S3、中斷請求發(fā)生,對應(yīng)的中斷源按照中斷優(yōu)先級隊(duì)列中的順序依次響應(yīng)。
[0011]作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S2還包括:
[0012]將中斷優(yōu)先級隊(duì)列存儲在中間結(jié)果寄存器中。
[0013]作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟SI中,排列單元包括:
[0014]有效位,I表示本單元配置信息有效,O表示本單元配置信息無效;
[0015]中斷類型表示位,I表示本單元為關(guān)鍵中斷,O表示本單元為普通中斷;
[0016]中斷優(yōu)先級數(shù)值,表示本單元的中斷優(yōu)先級;
[0017]中斷源序號,表示硬件連接中斷源的順序。
[0018]作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S2中排列具體為:[0019]有效位,有效位為I才進(jìn)行優(yōu)先級比較,有效位為O則被視為最低優(yōu)先級;
[0020]中斷類型,所有的關(guān)鍵中斷中斷優(yōu)先級高于普通中斷;
[0021]中斷優(yōu)先級,對于中斷類型相同的中斷,中斷優(yōu)先級數(shù)值越高則中斷優(yōu)先級越聞;
[0022]中斷源序號,對于中斷類型和中斷優(yōu)先級相同的中斷,中斷源序號越大則中斷優(yōu)先級越高。
[0023]作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S2后還包括:
[0024]S02、當(dāng)任意一個中斷源的優(yōu)先級配置被改變時,將改變后的中斷源按照新的優(yōu)先級插入到原中斷優(yōu)先級隊(duì)列中。
[0025]作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S02具體包括:
[0026]S021、搜索原中斷優(yōu)先級隊(duì)列的中斷源序號,找到對應(yīng)的中斷源并清除出中斷優(yōu)先級隊(duì)列,在中斷優(yōu)先級隊(duì)列最后用O補(bǔ)足;
[0027]S022、將新配置的中斷源的優(yōu)先級配置與中斷優(yōu)先級隊(duì)列中的各個中斷源按照優(yōu)先級從高到低依次進(jìn)行比較,若比原中斷優(yōu)先級隊(duì)列中中斷源的優(yōu)先級低,則繼續(xù)比較下一個;若比原中斷優(yōu)先級隊(duì)列中中斷源的優(yōu)先級高,則插入正在比較的排序單元,而被插入的排序單元及其后的排序單元都向后移動一個排序單元。
[0028]作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S3包括:
[0029]將排列單元中的中斷源序號用作索引序號,中斷請求發(fā)生時將需中斷的中斷源和對應(yīng)的中斷服務(wù)程序入口地址同時送出。
[0030]作為本發(fā)明的進(jìn)一步改進(jìn),所述步驟S3還包括:
[0031]對中斷源進(jìn)行附加信息設(shè)置,中斷請求發(fā)生時將需中斷的中斷源、對應(yīng)的中斷服務(wù)程序入口地址和附加信息同時送出。
[0032]本發(fā)明具有以下效果:
[0033]1、功耗低:優(yōu)先級比較邏輯只在中斷優(yōu)先級配置的時候活動,在后續(xù)中斷請求和響應(yīng)的時候都是靜止的。由于系統(tǒng)啟動之后,優(yōu)先級配置信息很少改變,所以這些優(yōu)先級比較邏輯的動態(tài)功耗可以忽略不計。
[0034]2、中斷響應(yīng)速度快:當(dāng)有一個或多個中斷發(fā)生請求的時候,中斷響應(yīng)只需通過簡單的排序邏輯即可產(chǎn)生,而不必再經(jīng)過多級的優(yōu)先級比較邏輯,使得有效的中斷請求信號可以更早的生成。
【專利附圖】
【附圖說明】
[0035]為了更清楚地說明本申請實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0036]圖1為本發(fā)明一種基于多中斷源優(yōu)先級排序的中斷控制方法的流程示意圖;
[0037]圖2為本發(fā)明一實(shí)施方式中排序單元的示意圖;
[0038]圖3為本發(fā)明一實(shí)施方式中中斷優(yōu)先級隊(duì)列的示意圖;
[0039]圖4a為本發(fā)明一具體實(shí)施例中中斷優(yōu)先級隊(duì)列的示意圖;[0040]圖4b為本發(fā)明一具體實(shí)施例中原始中斷源和對應(yīng)中斷處理入口地址序列的示意圖;
[0041]圖4c為本發(fā)明一具體實(shí)施例中重新排序后中斷源和對應(yīng)中斷處理入口地址序列的示意圖。
【具體實(shí)施方式】
[0042]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本申請中的技術(shù)方案,下面將結(jié)合本申請實(shí)施例中的附圖,對本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請保護(hù)的范圍。
[0043]參圖1所示,本發(fā)明公開了一種基于多中斷源優(yōu)先級排序的中斷控制方法,具體包括:
[0044]S1、將每個中斷源按照有效位、中斷類型、中斷優(yōu)先級和中斷源序號進(jìn)行歸類,形成若干排列單元;
[0045]S2、將所有排列單元按照優(yōu)先級高低的順序依次排列,形成中斷優(yōu)先級隊(duì)列;
[0046]S3、中斷請求發(fā)生,對應(yīng)的中斷源按照中斷優(yōu)先級隊(duì)列中的順序依次響應(yīng)。
[0047]本發(fā)明利用一個“中斷優(yōu)先級隊(duì)列”的中間結(jié)果寄存器,將所有的中斷源按照優(yōu)先級高低的順序從左到右依次排列,這個排序過程在軟件配置中斷源的時候由硬件自動完成,當(dāng)有多個中斷源同時有中斷請求發(fā)生,則按照從左向右的順序依次響應(yīng)。
[0048]在本發(fā)明的一【具體實(shí)施方式】中,以32個中斷源(32個中斷優(yōu)先級)為例來說明該中斷控制方法。
[0049]首先將每個中斷源按照有效位、中斷類型、中斷優(yōu)先級和中斷源序號進(jìn)行歸類,形成若干排列單元。
[0050]參圖2所示,每個排列單元由O?11共計12位組成,其中:第O位(V)表示有效位;第I位(C)表示中斷類型表示位;第2?6位(PR10#)表示中斷優(yōu)先級數(shù)值;第7?11位(IRPT#)表示中斷源序號。其中:
[0051]有效位(V),I表示本單元配置信息有效,O表示本單元配置信息無效;
[0052]中斷類型表示位(C) , I表示本單元為關(guān)鍵中斷,O表示本單元為普通中斷;
[0053]中斷優(yōu)先級數(shù)值(PR10#),表示本單元的中斷優(yōu)先級;
[0054]中斷源序號(IRPT#),表示硬件連接中斷源的順序。
[0055]然后將所有排列單元按照優(yōu)先級高低的順序依次排列,形成中斷優(yōu)先級隊(duì)列,并將中斷優(yōu)先級隊(duì)列存儲在中間結(jié)果寄存器中。
[0056]本發(fā)明中隊(duì)列按照如下規(guī)則對中斷源進(jìn)行排序:
[0057]1、有效位(軟件配置中斷類型和中斷優(yōu)先級時由硬件自動生成),有效位為I才進(jìn)行優(yōu)先級比較,有效位為O則被視為最低優(yōu)先級;
[0058]2、中斷類型(軟件配置),所有的關(guān)鍵中斷中斷優(yōu)先級高于普通中斷;
[0059]3、中斷優(yōu)先級(軟件配置),對于中斷類型相同的中斷(均為關(guān)鍵中斷或普通中斷),中斷優(yōu)先級數(shù)值越高則中斷優(yōu)先級越高;[0060]4、中斷源序號(硬件配置),對于中斷類型和中斷優(yōu)先級相同的中斷,中斷源序號越大則中斷優(yōu)先級越高。
[0061]參圖3所示,該隊(duì)列由32個排序單元組成,從左向右依次為“排序單元0”、“排序單元1”、“排序單元2”、......、“排序單元31”,單元號越小,對應(yīng)的中斷優(yōu)先級越高。
[0062]該隊(duì)列按照系統(tǒng)的原始配置,對所有的中斷源進(jìn)行優(yōu)先級排序,形成初始的優(yōu)先級隊(duì)列。當(dāng)任意一個中斷源的優(yōu)先級配置(中斷類型、中斷優(yōu)先級)被改變,該隊(duì)列按照如下兩步將對應(yīng)的中斷源按照新的優(yōu)先級插入的原隊(duì)列中:
[0063]搜索原中斷優(yōu)先級隊(duì)列的中斷源序號,找到對應(yīng)的中斷源并清除出中斷優(yōu)先級隊(duì)列,在中斷優(yōu)先級隊(duì)列最后用12位O補(bǔ)足;
[0064]將新配置的中斷源的優(yōu)先級配置與中斷優(yōu)先級隊(duì)列中的各個中斷源按照優(yōu)先級從高到低依次進(jìn)行比較,若比原中斷優(yōu)先級隊(duì)列中中斷源的優(yōu)先級低,則繼續(xù)比較下一個;若比原中斷優(yōu)先級隊(duì)列中中斷源的優(yōu)先級高,則插入正在比較的排序單元,而被插入的排序單元及其后的排序單元都向后移動一個排序單元。
[0065]中斷請求發(fā)生后,對應(yīng)的中斷源按照中斷優(yōu)先級隊(duì)列中的順序依次響應(yīng)。
[0066]當(dāng)對所有中斷源的配置完成,則中斷優(yōu)先級隊(duì)列也確定。每個排序單元中的7-11位用作索引序號,將中斷源和相應(yīng)的信息(如對應(yīng)的中斷服務(wù)程序入口地址)重新排序,如在一具體實(shí)施例中中斷優(yōu)先級隊(duì)列如圖4a所示,原始中斷源和對應(yīng)中斷處理入口地址的序列如圖4b所示,重新排序后的中斷源序列和中斷入口地址序列如圖4c所示。
[0067]重新排序后的中斷源序列用來判斷當(dāng)前應(yīng)該最先響應(yīng)的中斷,即最左邊的“I”(表示該中斷源有中斷請求),與之對應(yīng)的中斷入口地址則被同時送出。
[0068]進(jìn)一步地,對于每個中斷源有除中斷入口地址之外更多的屬性的,亦可用于中斷入口地址同樣的方法處理。中斷請求發(fā)生時將需中斷的中斷源、對應(yīng)的中斷服務(wù)程序入口地址和附加信息同時送出。
[0069]進(jìn)一步地,在其他實(shí)施方式中對于中斷源少于或者多于32個的,也可用本發(fā)明所述的中斷控制方法實(shí)現(xiàn)。與上述實(shí)施方式不同的是,如果中斷源相應(yīng)的增加或減少,則中斷優(yōu)先級和中斷源序號也可進(jìn)行相應(yīng)的增加或減少。
[0070]對于多于32個但是少于或等于64個中斷源時,則需要6位中斷優(yōu)先級和6位中斷源序號,相應(yīng)地,中斷源優(yōu)先級隊(duì)列中的排列單元就需要14位;
[0071]對于多于16個但是少于或等于32個中斷源時,則需要5位中斷優(yōu)先級和5位中斷源序號,相應(yīng)地,中斷源優(yōu)先級隊(duì)列中的排列單元就需要12位;
[0072]對于多于8個但是少于或等于16個中斷源時,則需要4位中斷優(yōu)先級和4位中斷源序號,相應(yīng)地,中斷源優(yōu)先級隊(duì)列中的排列單元就需要10位。
[0073]其他實(shí)施方式中以此以二進(jìn)制的方式進(jìn)行類推。
[0074]綜上所述,與現(xiàn)有技術(shù)相比,本發(fā)明具有以下效果:
[0075]1、功耗低:優(yōu)先級比較邏輯只在中斷優(yōu)先級配置的時候活動,在后續(xù)中斷請求和響應(yīng)的時候都是靜止的。由于系統(tǒng)啟動之后,優(yōu)先級配置信息很少改變,所以這些優(yōu)先級比較邏輯的動態(tài)功耗可以忽略不計。
[0076]2、中斷響應(yīng)速度快:當(dāng)有一個或多個中斷發(fā)生請求的時候,中斷響應(yīng)只需通過簡單的排序邏輯即可產(chǎn)生,而不必再經(jīng)過多級(32個中斷源需要5級)的優(yōu)先級比較邏輯,使得有效的中斷請求信號可以更早的生成。
[0077]對于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本發(fā)明。因此,無論從哪一點(diǎn)來看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化囊括在本發(fā)明內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。
[0078]此外,應(yīng)當(dāng)理解,雖然本說明書按照實(shí)施方式加以描述,但并非每個實(shí)施方式僅包含一個獨(dú)立的技術(shù)方案,說明書的這種敘述方式僅僅是為清楚起見,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說明書作為一個整體,各實(shí)施例中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實(shí)施方式。
【權(quán)利要求】
1.一種基于多中斷源優(yōu)先級排序的中斷控制方法,其特征在于,所述方法包括: 51、將每個中斷源按照有效位、中斷類型、中斷優(yōu)先級和中斷源序號進(jìn)行歸類,形成若干排列單元; 52、將所有排列單元按照優(yōu)先級高低的順序依次排列,形成中斷優(yōu)先級隊(duì)列; 53、中斷請求發(fā)生,對應(yīng)的中斷源按照中斷優(yōu)先級隊(duì)列中的順序依次響應(yīng)。
2.根據(jù)權(quán)利要求1所述的中斷控制方法,其特征在于,所述步驟S2還包括: 將中斷優(yōu)先級隊(duì)列存儲在中間結(jié)果寄存器中。
3.根據(jù)權(quán)利要求1所述的中斷控制方法,其特征在于,所述步驟SI中,排列單元包括: 有效位,I表示本單元配置信息有效,O表示本單元配置信息無效; 中斷類型表示位,I表示本單元為關(guān)鍵中斷,O表示本單元為普通中斷; 中斷優(yōu)先級數(shù)值,表示本單元的中斷優(yōu)先級; 中斷源序號,表示硬件連接中斷源的順序。
4.根據(jù)權(quán)利要求3所述的中斷控制方法,其特征在于,所述步驟S2中排列具體為: 有效位,有效位為I才進(jìn)行優(yōu)先級比較,有效位為O則被視為最低優(yōu)先級; 中斷類型,所有的關(guān)鍵中斷中斷優(yōu)先級高于普通中斷; 中斷優(yōu)先級,對于中斷類型相同的中斷,中斷優(yōu)先級數(shù)值越高則中斷優(yōu)先級越高; 中斷源序號,對于中斷類型和中斷優(yōu)先級相同的中斷,中斷源序號越大則中斷優(yōu)先級越聞。
5.根據(jù)權(quán)利要求4所述的中斷控制方法,其特征在于,所述步驟S2后還包括: S02、當(dāng)任意一個中斷源的優(yōu)先級配置被改變時,將改變后的中斷源按照新的優(yōu)先級插入到原中斷優(yōu)先級隊(duì)列中。
6.根據(jù)權(quán)利要求5所述的中斷控制方法,其特征在于,所述步驟S02具體包括: 5021、搜索原中斷優(yōu)先級隊(duì)列的中斷源序號,找到對應(yīng)的中斷源并清除出中斷優(yōu)先級隊(duì)列,在中斷優(yōu)先級隊(duì)列最后用O補(bǔ)足; 5022、將新配置的中斷源的優(yōu)先級配置與中斷優(yōu)先級隊(duì)列中的各個中斷源按照優(yōu)先級從高到低依次進(jìn)行比較,若比原中斷優(yōu)先級隊(duì)列中中斷源的優(yōu)先級低,則繼續(xù)比較下一個;若比原中斷優(yōu)先級隊(duì)列中中斷源的優(yōu)先級高,則插入正在比較的排序單元,而被插入的排序單元及其后的排序單元都向后移動一個排序單元。
7.根據(jù)權(quán)利要求1所述的中斷控制方法,其特征在于,所述步驟S3包括: 將排列單元中的中斷源序號用作索引序號,中斷請求發(fā)生時將需中斷的中斷源和對應(yīng)的中斷服務(wù)程序入口地址同時送出。
8.根據(jù)權(quán)利要求7所述的中斷控制方法,其特征在于,所述步驟S3還包括: 對中斷源進(jìn)行附加信息設(shè)置,中斷請求發(fā)生時將需中斷的中斷源、對應(yīng)的中斷服務(wù)程序入口地址和附加信息同時送出。
【文檔編號】G06F9/48GK103955410SQ201410222025
【公開日】2014年7月30日 申請日期:2014年5月23日 優(yōu)先權(quán)日:2014年5月23日
【發(fā)明者】鄭茳, 肖佐楠, 匡啟和, 謝偉軍, 林峰 申請人:蘇州國芯科技有限公司