專利名稱:一種從多個(gè)有效中斷中查找最高優(yōu)先級(jí)中斷的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種中斷控制裝置及方法,尤指查找最高優(yōu)先級(jí)中斷的方法和裝置。
背景技術(shù):
在含有中央處理器(CPU)的系統(tǒng)中,軟硬件協(xié)同工作是非常重要的。當(dāng)硬件有事件發(fā)生需要軟件進(jìn)行處理時(shí),常見的方法是使用中斷方式通知軟件。中斷控制器用于收集中斷并向CPU發(fā)送中斷。
從圖1可以看出,現(xiàn)有中斷控制器是將各個(gè)中斷源報(bào)告上來的中斷與各個(gè)中斷源的使能信號(hào)做“與”操作,當(dāng)中斷源與中斷源使能同時(shí)有效時(shí),選中所述中斷源并將此中斷向CPU報(bào)告。
但是,現(xiàn)有中斷控制器中,各個(gè)中斷的優(yōu)先級(jí)是固定的,不能夠進(jìn)行靈活地配置。已知的固定優(yōu)先級(jí)中斷多采取“菊花鏈排隊(duì)”的方式。其示意圖如圖2所示。設(shè)備1為擁有最高優(yōu)先級(jí)的設(shè)備,當(dāng)其有中斷產(chǎn)生并且使能端有效時(shí),設(shè)備1產(chǎn)生一個(gè)低電平有效的中斷,此低電平有效的中斷會(huì)阻塞中斷優(yōu)先級(jí)低的模塊(如設(shè)備2,設(shè)備3等)的使能端,使之不能正常產(chǎn)生中斷,直到此模塊中斷被處理完畢,釋放低電平中斷后,低優(yōu)先級(jí)的中斷才可以正常產(chǎn)生。因此,簡單的說固定優(yōu)先級(jí)沒有優(yōu)先級(jí)查找電路。
優(yōu)先級(jí)不能靈活配置會(huì)給產(chǎn)品帶來許多不便。比如,當(dāng)芯片工作于不同的模式下(例如手機(jī)芯片工作于通話模式下或播放模式下等),某些正常工作的中斷源優(yōu)先級(jí)需要臨時(shí)提高,否則這些中斷源永遠(yuǎn)無法獲得中斷資源。再比如當(dāng)工作于調(diào)試模式下,某些與調(diào)試相關(guān)的中斷源應(yīng)該有更高的優(yōu)先級(jí)。另外,現(xiàn)在的芯片一般都會(huì)在不同的產(chǎn)品中有不同的應(yīng)用,針對(duì)這些應(yīng)用,產(chǎn)品開發(fā)者也需要靈活的調(diào)整各個(gè)中斷源的優(yōu)先級(jí)。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種從多個(gè)有效中斷中查找最高優(yōu)先級(jí)中斷的方法和裝置,中斷的優(yōu)先級(jí)可靈活配置,且處理速度很快。
為了解決上述技術(shù)問題,本發(fā)明提出了一種從多個(gè)有效中斷中查找最高優(yōu)先級(jí)中斷的裝置,其特征在于,包括最高優(yōu)先級(jí)選擇電路和中斷查找電路,最高優(yōu)先級(jí)選擇電路又可分為預(yù)處理部分以及包括多級(jí)比較電路的優(yōu)先級(jí)比較部分,其中n個(gè)中斷信號(hào)及其優(yōu)先級(jí)信號(hào)分別輸入預(yù)處理部分的n個(gè)預(yù)處理單元,每一預(yù)處理單元還輸入一配置的最低優(yōu)先級(jí)信號(hào),當(dāng)輸入的中斷信號(hào)有效時(shí),相應(yīng)預(yù)處理單元輸出該中斷的優(yōu)先級(jí)信號(hào),否則輸出該最低優(yōu)先級(jí)信號(hào),其中為實(shí)用中斷配置的優(yōu)先級(jí)大于該最低優(yōu)先級(jí);預(yù)處理部分輸出的n個(gè)優(yōu)先級(jí)信號(hào),每兩個(gè)為一組,分別輸入優(yōu)先級(jí)比較部分中第一級(jí)比較電路的一比較單元,每一比較單元輸出兩個(gè)輸入中的高優(yōu)先級(jí)信號(hào)或在兩個(gè)輸入優(yōu)先級(jí)信號(hào)相等時(shí)輸出其中一個(gè)信號(hào);將前一級(jí)比較電路的輸出按兩個(gè)為一組,再分別輸入到下一級(jí)比較電路的一比較單元比較后輸出,如此逐級(jí)比較,直到輸出為唯一的優(yōu)先級(jí)信號(hào),稱之為當(dāng)前最高優(yōu)先級(jí)信號(hào);所述中斷查找電路將所述當(dāng)前最高優(yōu)先級(jí)信號(hào)與各個(gè)中斷的優(yōu)先級(jí)信號(hào)進(jìn)行比較,輸出優(yōu)先級(jí)為所述當(dāng)前最高優(yōu)先級(jí)的一個(gè)中斷的中斷號(hào)。
進(jìn)一步地,上述裝置還可具有以下特點(diǎn)所述預(yù)處理單元為一選擇器,每一選擇器的控制端連接到一中斷信號(hào),兩個(gè)輸入端分別連接到該中斷的優(yōu)先級(jí)信號(hào)以及最低優(yōu)先級(jí)信號(hào),該中斷信號(hào)有效時(shí),輸出該中斷的優(yōu)先級(jí)信號(hào),否則,輸出該最低優(yōu)先級(jí)信號(hào)。
進(jìn)一步地,上述裝置還可具有以下特點(diǎn)所述優(yōu)先級(jí)比較部分中,如果輸入某一級(jí)比較電路的優(yōu)先級(jí)信號(hào)在分組后還余下一個(gè)優(yōu)先級(jí)信號(hào),則將其直接輸出到下一級(jí)比較電路。
進(jìn)一步地,上述裝置還可具有以下特點(diǎn)為中斷配置的優(yōu)先級(jí)是按其優(yōu)先級(jí)信號(hào)數(shù)值大小順序排列的,所述比較單元包括一減法器和一比較器,待比較的兩個(gè)優(yōu)先級(jí)信號(hào)分別輸入到該減法器和該比較器,該減法器對(duì)兩個(gè)輸入信號(hào)進(jìn)行減法運(yùn)算,其輸出連接到該比較器的控制端,從而根據(jù)運(yùn)算結(jié)果控制該比較器輸出兩個(gè)輸入中的高優(yōu)先級(jí)信號(hào),或者在兩個(gè)輸入優(yōu)先級(jí)信號(hào)相等時(shí)輸出其中一個(gè)信號(hào)。
進(jìn)一步地,上述裝置還可具有以下特點(diǎn)所述中斷查找電路包括n-1個(gè)級(jí)聯(lián)的中斷選擇單元,第一個(gè)中斷選擇單元的輸入為兩個(gè)中斷的中斷號(hào)、其中一個(gè)中斷的優(yōu)先級(jí)信號(hào)以及所述最高優(yōu)先級(jí)信號(hào),在該中斷的優(yōu)先級(jí)信號(hào)等于所述最高優(yōu)先級(jí)信號(hào)時(shí)輸出該中斷的中斷號(hào),否則,輸出另一中斷的中斷號(hào);其它中斷選擇單元的輸入為前一級(jí)中斷選擇單元輸出的中斷號(hào),一未輸入過的中斷的優(yōu)先級(jí)信號(hào)以及所述最高優(yōu)先級(jí)信號(hào),同樣,在該中斷的優(yōu)先級(jí)信號(hào)等于所述最高優(yōu)先級(jí)信號(hào)時(shí)輸出該中斷的中斷號(hào),否則,輸出從前一級(jí)中斷選擇單元輸入的中斷號(hào),最后一級(jí)的中斷選擇單元的輸出即為優(yōu)先級(jí)為當(dāng)前最高優(yōu)先級(jí)的一個(gè)中斷的中斷號(hào)。
為了解決上述技術(shù)問題,本發(fā)明又提供了一種從多個(gè)有效中斷中查找最高優(yōu)先級(jí)中斷的方法,包括以下步驟(a)系統(tǒng)配置了n個(gè)中斷,其優(yōu)先級(jí)可配置,為各個(gè)實(shí)用中斷配置的優(yōu)先級(jí)均大于配置的一最低優(yōu)先級(jí);(b)判斷各個(gè)中斷是否有效,若中斷有效,采用該中斷的優(yōu)先級(jí)信號(hào)作為該中斷當(dāng)前的優(yōu)先級(jí)信號(hào),否則,以最低優(yōu)先級(jí)信號(hào)作為該中斷的當(dāng)前優(yōu)先級(jí)信號(hào);(c)將各個(gè)中斷的當(dāng)前優(yōu)先級(jí)信號(hào)按兩個(gè)一組進(jìn)行第一次比較,輸出兩個(gè)輸入中的高優(yōu)先級(jí)信號(hào),或者在兩個(gè)輸入優(yōu)先級(jí)信號(hào)相等時(shí)輸出其中一個(gè)信號(hào);(d)將前一次比較后輸出的優(yōu)先級(jí)信號(hào)按兩個(gè)為一組再次進(jìn)行比較,輸出兩個(gè)輸入中的高優(yōu)先級(jí)信號(hào),或者在兩個(gè)輸入優(yōu)先級(jí)信號(hào)相等時(shí)輸出其中一個(gè)信號(hào),如此逐次比較,直到比較后輸出的優(yōu)先級(jí)信號(hào)為一個(gè),該信號(hào)為當(dāng)前最高優(yōu)先級(jí)信號(hào);(e)用當(dāng)前最高優(yōu)先級(jí)信號(hào)與各個(gè)中斷的優(yōu)先級(jí)信號(hào)逐一進(jìn)行比較,如兩者相等,則輸出該中斷的中斷號(hào),最后輸出的中斷號(hào)即為查找到的優(yōu)先級(jí)等于當(dāng)前最高優(yōu)先級(jí)的一個(gè)中斷的中斷號(hào)。
進(jìn)一步地,上述裝置還可具有以下特點(diǎn)所述步驟(c)和(d)中,如果某次比較的中斷優(yōu)先級(jí)信號(hào)為奇數(shù),將余下的一個(gè)優(yōu)先級(jí)信號(hào)直接輸出,進(jìn)行下一次的比較。
進(jìn)一步地,上述裝置還可具有以下特點(diǎn)所述步驟(c)和(d)中,是將輸入的要比較的兩個(gè)優(yōu)先級(jí)信號(hào)輸入到一選擇器的兩個(gè)輸入端,同時(shí)輸入到一減法器中進(jìn)行運(yùn)算,該減法器的輸出連接到該選擇器的控制端,以根據(jù)該減法器的運(yùn)算結(jié)果控制所述選擇器輸出兩個(gè)輸入中的高優(yōu)先級(jí)信號(hào),或者在兩個(gè)輸入優(yōu)先級(jí)信號(hào)相等時(shí)輸出其中一個(gè)信號(hào)。
進(jìn)一步地,上述裝置還可具有以下特點(diǎn)所述步驟(e)用n-1次比較來實(shí)現(xiàn),第一次對(duì)兩個(gè)中斷進(jìn)行選擇,如其中一個(gè)中斷的優(yōu)先級(jí)和當(dāng)前最高優(yōu)先級(jí)相等,則選擇該中斷的中斷號(hào)輸出,否則輸出另一中斷的中斷號(hào);然后再對(duì)該輸出的中斷號(hào)和未輸入過的另一個(gè)中斷的中斷號(hào)進(jìn)行選擇,如該未輸入過的中斷的優(yōu)先級(jí)和當(dāng)前最高優(yōu)先級(jí)相等,則選擇該未輸入過的中斷的中斷號(hào)輸出,否則,選擇上一次選擇到的中斷號(hào)輸出;如此逐次比較,最后得到的輸出信號(hào)即為優(yōu)先級(jí)等于當(dāng)前最高優(yōu)先級(jí)的一個(gè)中斷的中斷號(hào)。
進(jìn)一步地,上述裝置還可具有以下特點(diǎn)如果當(dāng)前存在有效中斷,所述當(dāng)前最高優(yōu)先級(jí)信號(hào)為當(dāng)前有效中斷中優(yōu)先級(jí)最高的中斷的優(yōu)先級(jí)信號(hào),所述步驟(e)中查找到的中斷號(hào)為當(dāng)前有效中斷中優(yōu)先級(jí)最高的一個(gè)中斷的中斷號(hào);在當(dāng)前有效中斷中優(yōu)先級(jí)最高的中斷有多個(gè)時(shí),輸出的是這些中斷中最后一個(gè)與當(dāng)前最高優(yōu)先級(jí)信號(hào)比較的中斷的中斷號(hào),即固定優(yōu)先級(jí)最高的中斷的中斷號(hào)。
與現(xiàn)有技術(shù)相比,本發(fā)明可以適用于多處理器的多中斷控制,不僅可以靈活配置優(yōu)先級(jí),并且采用的二分法具有更快的查找速度,提高了系統(tǒng)效率。
圖1為現(xiàn)有技術(shù)的中斷控制器框圖。
圖2為現(xiàn)有技術(shù)的固定優(yōu)先級(jí)中斷電路的結(jié)構(gòu)圖。
圖3為本發(fā)明實(shí)施例從多個(gè)有效中斷中查找最高優(yōu)先級(jí)中斷的裝置的結(jié)構(gòu)圖。
圖4為本發(fā)明實(shí)施例中斷查找電路的結(jié)構(gòu)圖。
具體實(shí)施例方式
下面用一個(gè)實(shí)施例來詳細(xì)說明本發(fā)明提出的從多個(gè)有效中斷中查找最高優(yōu)先級(jí)中斷的裝置和方法。
參見圖3,所述裝置包括最高優(yōu)先級(jí)選擇電路和中斷查找電路,其中,最高優(yōu)先級(jí)選擇電路又可分為預(yù)處理部分和優(yōu)先級(jí)比較部分。
假定系統(tǒng)共配置了n個(gè)中斷,其中可能有部分中斷并未使用,以下稱為預(yù)留中斷,實(shí)際使用的中斷以下稱為實(shí)用中斷。各中斷的優(yōu)先級(jí)可由軟件進(jìn)行靈活配置,如未配置,則系統(tǒng)默認(rèn)其為一個(gè)最低優(yōu)先級(jí)。一般來說,為實(shí)用中斷配置的優(yōu)先級(jí)高于最低優(yōu)先級(jí),以便查找,而預(yù)留中斷可以配置為最低優(yōu)先級(jí)。
所述預(yù)處理部分包括n個(gè)二選一的選擇器SLi~SLn,選擇器SLi的一輸入為#i中斷的優(yōu)先級(jí)信號(hào),i=1,2,……n。所有選擇器的另一輸入均為最低優(yōu)先級(jí)信號(hào),該最低優(yōu)先級(jí)信號(hào)可以是系統(tǒng)默認(rèn)的,所述優(yōu)先級(jí)信號(hào)用一個(gè)二進(jìn)制數(shù)表示。選擇器SLi的控制端與#i中斷信號(hào)相連,當(dāng)該中斷信號(hào)有效時(shí),選擇器SLi輸出#i中斷的優(yōu)先級(jí)信號(hào),否則輸出最低優(yōu)先級(jí)信號(hào)。
所述優(yōu)先級(jí)比較部分包括N級(jí)比較電路,2N-1<n≤2N。最后一級(jí)包括一個(gè)比較單元外,其它各級(jí)包括多個(gè)比較單元。每一比較單元的結(jié)構(gòu)是相同的,包括一選擇器和一減法器。
第一級(jí)比較電路比較單元CPj,j=1,2,……floor(n/2),floor()為向下取整的運(yùn)算符。預(yù)處理部分選擇器SL2j-1和選擇器SL2j輸出的優(yōu)先級(jí)信號(hào)輸入到所述比較單元CPj的選擇器和減法器,該減法器對(duì)兩個(gè)輸入的優(yōu)先級(jí)信號(hào)做減法運(yùn)算,根據(jù)運(yùn)算結(jié)果輸出控制信號(hào)(如高、低電平)到同一比較單元選擇器的控制端,控制該選擇器輸出兩個(gè)輸入中的高優(yōu)先級(jí)信號(hào)或在兩個(gè)輸入優(yōu)先級(jí)信號(hào)相等時(shí)輸出其中的一個(gè)信號(hào)(如第一輸入端或第二輸入端的信號(hào))。例如,當(dāng)優(yōu)先級(jí)越高,相應(yīng)優(yōu)先級(jí)信號(hào)的二進(jìn)制數(shù)值越大時(shí),減法器用從選擇器SL2j-1輸入的優(yōu)先級(jí)信號(hào)減去從選擇器SL2j輸入的優(yōu)先級(jí)信號(hào),如結(jié)果大于或等于0,則輸出高電平,使相應(yīng)的選擇器輸出從選擇器SL2j-1輸入的優(yōu)先級(jí)信號(hào),如果結(jié)果小于0,則輸出SL2j-1輸入的優(yōu)先級(jí)信號(hào)。當(dāng)然,也可設(shè)優(yōu)先級(jí)信號(hào)的二進(jìn)制數(shù)值越小時(shí)優(yōu)先級(jí)越高,相應(yīng)地,在結(jié)果大于0(或大于等于0)時(shí)輸出選擇從選擇器SL2j輸入的優(yōu)先級(jí)信號(hào),等等。
當(dāng)n為偶數(shù)時(shí),第一級(jí)比較電路有n/2個(gè)比較單元,剛好可以對(duì)預(yù)處理部分輸出的n個(gè)優(yōu)先級(jí)信號(hào)進(jìn)行比較。如n為奇數(shù),則將預(yù)處理部分輸出的n個(gè)信號(hào)兩兩組合后,還有余下一個(gè)優(yōu)先級(jí)信號(hào),此時(shí)將該單獨(dú)的優(yōu)先級(jí)信號(hào)直接作為第一級(jí)比較電路的輸出信號(hào),即不經(jīng)過比較單元,直接輸入到第二級(jí)比較電路即可。
將第一級(jí)比較電路的比較單元兩兩組合,每兩個(gè)比較單元的輸出作為下一級(jí)比較電路一個(gè)比較單元的輸入,由該比較單元從中選擇出高優(yōu)先級(jí)信號(hào)或在兩個(gè)輸入優(yōu)先級(jí)信號(hào)相等時(shí)輸出其中一個(gè)信號(hào)。如果該級(jí)余下一個(gè)單獨(dú)的優(yōu)先級(jí)信號(hào)則直接作為該下一級(jí)比較電路的輸出信號(hào)輸入到再下一級(jí)的比較電路,這樣每經(jīng)過一級(jí)比較電路,余下的需要繼續(xù)比較的優(yōu)先級(jí)信號(hào)基本減半。如此類推,經(jīng)過N級(jí)比較電路后,將得到最后一個(gè)優(yōu)先級(jí)信號(hào)。如果當(dāng)前存在有效中斷,則該優(yōu)先級(jí)信號(hào)代表了當(dāng)前有效中斷中優(yōu)先級(jí)最高的中斷的優(yōu)先級(jí),如當(dāng)前不存在有效中斷,則輸出的是最低優(yōu)先級(jí)信號(hào)。不管哪種情況,以下均稱該信號(hào)為當(dāng)前最高優(yōu)先級(jí)信號(hào)。
可以看出,每經(jīng)過一級(jí)比較電路,需要繼續(xù)比較的優(yōu)先級(jí)信號(hào)數(shù)量減半,因此,文中將這種比較方法稱為二分法。也可以采用冒泡法來確定最高的優(yōu)先級(jí)。但采用二分法,可以用最小的時(shí)間資源,在最短的時(shí)間內(nèi)確定最高的優(yōu)先級(jí)。
本發(fā)明在中斷比較的時(shí)候,中斷源的優(yōu)先級(jí)是固定的,但是在將所有中斷都關(guān)斷的時(shí)候,可以通過軟件來更改各個(gè)中斷源的優(yōu)先級(jí),或者使“預(yù)留中斷”變成“使用中斷”等。
在得到當(dāng)前最高優(yōu)先級(jí)信號(hào)后,還要查找出對(duì)應(yīng)中斷的中斷號(hào),每一中斷的中斷號(hào)是用唯一的二進(jìn)制數(shù)來表示的。圖4中的中斷查找電路包括n-1個(gè)級(jí)聯(lián)的中斷選擇單元INSm,m=1,2,……n-1;每個(gè)單元包括一個(gè)二選一選擇器SLm和一個(gè)比較器CPm。
第一個(gè)中斷選擇單元INS1的輸入信號(hào)包括#n中斷的中斷號(hào)、#n-1中斷的中斷號(hào)、#n-1中斷的優(yōu)先級(jí)信號(hào)和最高優(yōu)先級(jí)選擇電路選中的當(dāng)前最高優(yōu)先級(jí)信號(hào)。其中兩個(gè)中斷號(hào)輸入該單元的選擇器SLi,#n-1中斷的優(yōu)先級(jí)信號(hào)和當(dāng)前最高優(yōu)先級(jí)信號(hào)輸入該單元的比較器進(jìn)行比較,如果兩者相等,則該比較器輸出#n-1中斷的中斷號(hào),否則,輸出#n中斷的中斷號(hào)。
對(duì)于后續(xù)的任一中斷選擇單元INSm,其中的選擇器SLm的一個(gè)輸入為前一級(jí)中斷選擇單元的輸出,另一個(gè)輸入為#n-m中斷的中斷號(hào),而其中的比較器CPm的一個(gè)輸入為#n-m中斷的優(yōu)先級(jí)信號(hào),另一個(gè)輸入為當(dāng)前最高優(yōu)先級(jí)信號(hào)。同樣地,如果比較器CPm判斷#n-m中斷的優(yōu)先級(jí)信號(hào)等于當(dāng)前最高優(yōu)先級(jí)信號(hào),則控制選擇器SLm輸出該#n-m中斷的中斷號(hào),否則,輸出從上一級(jí)中斷選擇單元輸入的中斷號(hào)。
這樣,如果當(dāng)前存在有效中斷,經(jīng)過n-1個(gè)中斷選擇單元后,將輸出查找到的一個(gè)具有當(dāng)前最高優(yōu)先級(jí)的有效中斷的中斷號(hào)。如果當(dāng)前不存在有效中斷,則不會(huì)輸出有效中斷的中斷號(hào),輸出的可能是預(yù)留中斷的中斷號(hào)或無效信號(hào)。
在本發(fā)明中,有效中斷的優(yōu)先級(jí)可以設(shè)置成唯一的,也可以配置成相等的。如果多個(gè)實(shí)用中斷的優(yōu)先級(jí)配置為相同且同時(shí)有效時(shí),由中斷查找電路決定最后輸出的是哪一個(gè)實(shí)用中斷。例如,#7和#8中斷優(yōu)先級(jí)相同且只有該兩個(gè)中斷同時(shí)有效,則最高優(yōu)先級(jí)選擇電路得到的當(dāng)前最高優(yōu)先級(jí)信號(hào)即為這兩個(gè)中斷的優(yōu)先級(jí)信號(hào)。在中斷查找電路中,#8中斷的優(yōu)先級(jí)信號(hào)先在一中斷選擇單元與當(dāng)前最高優(yōu)先級(jí)信號(hào)比較,因?yàn)閮烧呦嗟?,該中斷選擇單元輸出該#8中斷的中斷號(hào),在下一中斷選擇單元,#7中斷的優(yōu)先級(jí)信號(hào)也與當(dāng)前最高優(yōu)先級(jí)信號(hào)相等,此時(shí),盡管#7和#8中斷優(yōu)先級(jí)相同并且都為有效信號(hào),但是經(jīng)過以上運(yùn)算應(yīng)輸出#7中斷的中斷號(hào),因?yàn)樵诳蛇x擇的中斷優(yōu)先級(jí)相同的情況下,根據(jù)本方法各個(gè)中斷源還有固定優(yōu)先級(jí)可供判斷。
因此,本發(fā)明兼容了優(yōu)先級(jí)固定配置的情況。可以為多個(gè)中斷初步配置相同的優(yōu)先級(jí),再由中斷查找電路決定這些中斷的優(yōu)先順序。
相應(yīng)地,本實(shí)施例從多個(gè)有效中斷中查找最高優(yōu)先級(jí)中斷的方法包括以下步驟步驟一,系統(tǒng)配置了n個(gè)中斷,其優(yōu)先級(jí)可由軟件進(jìn)行靈活配置,為每個(gè)實(shí)用中斷配置的優(yōu)先級(jí)均大于一最低優(yōu)先級(jí),預(yù)留中斷的優(yōu)先級(jí)可以設(shè)為最低優(yōu)先級(jí);步驟二,判斷各個(gè)中斷是否有效,若中斷有效,采用配置的該中斷的優(yōu)先級(jí)信號(hào)作為該中斷當(dāng)前的優(yōu)先級(jí)信號(hào),否則,以最低優(yōu)先級(jí)信號(hào)作為該中斷的當(dāng)前優(yōu)先級(jí)信號(hào);經(jīng)過該步的預(yù)處理,得到了每一中斷的當(dāng)前優(yōu)先級(jí)。
步驟三,將各個(gè)中斷的當(dāng)前優(yōu)先級(jí)信號(hào)按兩個(gè)一組進(jìn)行第一次比較,輸出兩個(gè)輸入中的高優(yōu)先級(jí)信號(hào),在兩個(gè)輸入優(yōu)先級(jí)信號(hào)相等時(shí)輸出其中的一個(gè)信號(hào),如該次比較的中斷優(yōu)先級(jí)信號(hào)為奇數(shù),將余下的一個(gè)優(yōu)先級(jí)信號(hào)直接輸出;具體地,可以將用來比較的兩個(gè)優(yōu)先級(jí)信號(hào)輸入一選擇器,并輸入到一減法器中進(jìn)行運(yùn)算,根據(jù)該減法器的運(yùn)算結(jié)果控制所述選擇器的輸出。
步驟四,將前一次比較后輸出的優(yōu)先級(jí)信號(hào)按兩個(gè)為一組再次進(jìn)行比較,輸出兩個(gè)輸入中的高優(yōu)先級(jí)信號(hào),或者在兩個(gè)輸入優(yōu)先級(jí)信號(hào)相等時(shí)輸出其中一個(gè)信號(hào),如該次比較的中斷優(yōu)先級(jí)信號(hào)為奇數(shù),將余下的一個(gè)優(yōu)先級(jí)信號(hào)直接輸出;步驟五,如此逐次比較,直到輸出唯一的一個(gè)優(yōu)先級(jí)信號(hào),稱為當(dāng)前最高優(yōu)先級(jí)信號(hào),在存在有效中斷時(shí),該信號(hào)即為當(dāng)前有效中斷中優(yōu)先級(jí)最高的中斷的優(yōu)先級(jí)信號(hào);步驟六,用當(dāng)前最高優(yōu)先級(jí)信號(hào)與各個(gè)中斷的優(yōu)先級(jí)信號(hào)按順序逐一進(jìn)行比較,如兩者相等,則輸出該中斷的中斷號(hào),如此即可查找到優(yōu)先級(jí)等于當(dāng)前最高優(yōu)先級(jí)的一個(gè)中斷的中斷號(hào),如有多個(gè)中斷優(yōu)先級(jí)等于當(dāng)前最高優(yōu)先級(jí)級(jí),則查找的是這些中斷中最后進(jìn)行比較的一個(gè)中斷的中斷號(hào)。
具體地,可以用n-1次比較來實(shí)現(xiàn),第一次對(duì)兩個(gè)中斷A、B進(jìn)行選擇,并比較其中一個(gè)中斷B的優(yōu)先級(jí)和當(dāng)前最高優(yōu)先級(jí),如兩者相等,則選擇中斷B的中斷號(hào)輸出,否則輸出中斷A的中斷號(hào)。然后再對(duì)該輸出的中斷號(hào)和另一個(gè)中斷C的中斷號(hào)進(jìn)行選擇,比較中斷C的優(yōu)先級(jí)和當(dāng)前最高優(yōu)先級(jí),如兩者相等,則選擇中斷C的中斷號(hào)輸出,否則,選擇上一次選擇出的中斷號(hào)輸出。如此逐次比較,最后得到的輸出信號(hào)即為當(dāng)前有效中斷中優(yōu)先級(jí)最高的一個(gè)中斷的中斷號(hào)。當(dāng)然,如果當(dāng)前沒有有效中斷,則選擇的結(jié)果是預(yù)留中斷的中斷號(hào)或者是無效信號(hào)。
權(quán)利要求
1.一種從多個(gè)有效中斷中查找最高優(yōu)先級(jí)中斷的裝置,其特征在于,包括最高優(yōu)先級(jí)選擇電路和中斷查找電路,最高優(yōu)先級(jí)選擇電路又可分為預(yù)處理部分以及包括多級(jí)比較電路的優(yōu)先級(jí)比較部分,其中n個(gè)中斷信號(hào)及其優(yōu)先級(jí)信號(hào)分別輸入預(yù)處理部分的n個(gè)預(yù)處理單元,每一預(yù)處理單元還輸入一配置的最低優(yōu)先級(jí)信號(hào),當(dāng)輸入的中斷信號(hào)有效時(shí),相應(yīng)預(yù)處理單元輸出該中斷的優(yōu)先級(jí)信號(hào),否則輸出該最低優(yōu)先級(jí)信號(hào),其中為實(shí)用中斷配置的優(yōu)先級(jí)大于該最低優(yōu)先級(jí);預(yù)處理部分輸出的n個(gè)優(yōu)先級(jí)信號(hào),每兩個(gè)為一組,分別輸入優(yōu)先級(jí)比較部分中第一級(jí)比較電路的一比較單元,每一比較單元輸出兩個(gè)輸入中的高優(yōu)先級(jí)信號(hào)或在兩個(gè)輸入優(yōu)先級(jí)信號(hào)相等時(shí)輸出其中一個(gè)信號(hào);將前一級(jí)比較電路的輸出按兩個(gè)為一組,再分別輸入到下一級(jí)比較電路的一比較單元比較后輸出,如此逐級(jí)比較,直到輸出為唯一的優(yōu)先級(jí)信號(hào),稱之為當(dāng)前最高優(yōu)先級(jí)信號(hào);所述中斷查找電路將所述當(dāng)前最高優(yōu)先級(jí)信號(hào)與各個(gè)中斷的優(yōu)先級(jí)信號(hào)進(jìn)行比較,輸出優(yōu)先級(jí)為所述當(dāng)前最高優(yōu)先級(jí)的一個(gè)中斷的中斷號(hào)。
2.如權(quán)利要求1所述的裝置,其特征在于,所述預(yù)處理單元為一選擇器,每一選擇器的控制端連接到一中斷信號(hào),兩個(gè)輸入端分別連接到該中斷的優(yōu)先級(jí)信號(hào)以及最低優(yōu)先級(jí)信號(hào),該中斷信號(hào)有效時(shí),輸出該中斷的優(yōu)先級(jí)信號(hào),否則,輸出該最低優(yōu)先級(jí)信號(hào)。
3.如權(quán)利要求1所述的裝置,其特征在于,所述優(yōu)先級(jí)比較部分中,如果輸入某一級(jí)比較電路的優(yōu)先級(jí)信號(hào)在分組后還余下一個(gè)優(yōu)先級(jí)信號(hào),則將其直接輸出到下一級(jí)比較電路。
4.如權(quán)利要求1所述的裝置,其特征在于,為中斷配置的優(yōu)先級(jí)是按其優(yōu)先級(jí)信號(hào)數(shù)值大小順序排列的,所述比較單元包括一減法器和一比較器,待比較的兩個(gè)優(yōu)先級(jí)信號(hào)分別輸入到該減法器和該比較器,該減法器對(duì)兩個(gè)輸入信號(hào)進(jìn)行減法運(yùn)算,其輸出連接到該比較器的控制端,從而根據(jù)運(yùn)算結(jié)果控制該比較器輸出兩個(gè)輸入中的高優(yōu)先級(jí)信號(hào),或者在兩個(gè)輸入優(yōu)先級(jí)信號(hào)相等時(shí)輸出其中一個(gè)信號(hào)。
5.如權(quán)利要求1所述的裝置,其特征在于,所述中斷查找電路包括n-1個(gè)級(jí)聯(lián)的中斷選擇單元,第一個(gè)中斷選擇單元的輸入為兩個(gè)中斷的中斷號(hào)、其中一個(gè)中斷的優(yōu)先級(jí)信號(hào)以及所述最高優(yōu)先級(jí)信號(hào),在該中斷的優(yōu)先級(jí)信號(hào)等于所述最高優(yōu)先級(jí)信號(hào)時(shí)輸出該中斷的中斷號(hào),否則,輸出另一中斷的中斷號(hào);其它中斷選擇單元的輸入為前一級(jí)中斷選擇單元輸出的中斷號(hào),一未輸入過的中斷的優(yōu)先級(jí)信號(hào)以及所述最高優(yōu)先級(jí)信號(hào),同樣,在該中斷的優(yōu)先級(jí)信號(hào)等于所述最高優(yōu)先級(jí)信號(hào)時(shí)輸出該中斷的中斷號(hào),否則,輸出從前一級(jí)中斷選擇單元輸入的中斷號(hào),最后一級(jí)的中斷選擇單元的輸出即為優(yōu)先級(jí)為當(dāng)前最高優(yōu)先級(jí)的一個(gè)中斷的中斷號(hào)。
6.一種從多個(gè)有效中斷中查找最高優(yōu)先級(jí)中斷的方法,包括以下步驟(a)系統(tǒng)配置了n個(gè)中斷,其優(yōu)先級(jí)可配置,為各個(gè)實(shí)用中斷配置的優(yōu)先級(jí)均大于配置的一最低優(yōu)先級(jí);(b)判斷各個(gè)中斷是否有效,若中斷有效,采用該中斷的優(yōu)先級(jí)信號(hào)作為該中斷當(dāng)前的優(yōu)先級(jí)信號(hào),否則,以最低優(yōu)先級(jí)信號(hào)作為該中斷的當(dāng)前優(yōu)先級(jí)信號(hào);(c)將各個(gè)中斷的當(dāng)前優(yōu)先級(jí)信號(hào)按兩個(gè)一組進(jìn)行第一次比較,輸出兩個(gè)輸入中的高優(yōu)先級(jí)信號(hào),或者在兩個(gè)輸入優(yōu)先級(jí)信號(hào)相等時(shí)輸出其中一個(gè)信號(hào);(d)將前一次比較后輸出的優(yōu)先級(jí)信號(hào)按兩個(gè)為一組再次進(jìn)行比較,輸出兩個(gè)輸入中的高優(yōu)先級(jí)信號(hào),或者在兩個(gè)輸入優(yōu)先級(jí)信號(hào)相等時(shí)輸出其中一個(gè)信號(hào),如此逐次比較,直到比較后輸出的優(yōu)先級(jí)信號(hào)為一個(gè),該信號(hào)為當(dāng)前最高優(yōu)先級(jí)信號(hào);(e)用當(dāng)前最高優(yōu)先級(jí)信號(hào)與各個(gè)中斷的優(yōu)先級(jí)信號(hào)逐一進(jìn)行比較,如兩者相等,則輸出該中斷的中斷號(hào),最后輸出的中斷號(hào)即為查找到的優(yōu)先級(jí)等于當(dāng)前最高優(yōu)先級(jí)的一個(gè)中斷的中斷號(hào)。
7.如權(quán)利要求6所述的方法,其特征在于,所述步驟(c)和(d)中,如果某次比較的中斷優(yōu)先級(jí)信號(hào)為奇數(shù),將余下的一個(gè)優(yōu)先級(jí)信號(hào)直接輸出,進(jìn)行下一次的比較。
8.如權(quán)利要求6所述的方法,其特征在于,所述步驟(c)和(d)中,是將輸入的要比較的兩個(gè)優(yōu)先級(jí)信號(hào)輸入到一選擇器的兩個(gè)輸入端,同時(shí)輸入到一減法器中進(jìn)行運(yùn)算,該減法器的輸出連接到該選擇器的控制端,以根據(jù)該減法器的運(yùn)算結(jié)果控制所述選擇器輸出兩個(gè)輸入中的高優(yōu)先級(jí)信號(hào),或者在兩個(gè)輸入優(yōu)先級(jí)信號(hào)相等時(shí)輸出其中一個(gè)信號(hào)。
9.如權(quán)利要求6所述的方法,其特征在于,所述步驟(e)用n-1次比較來實(shí)現(xiàn),第一次對(duì)兩個(gè)中斷進(jìn)行選擇,如其中一個(gè)中斷的優(yōu)先級(jí)和當(dāng)前最高優(yōu)先級(jí)相等,則選擇該中斷的中斷號(hào)輸出,否則輸出另一中斷的中斷號(hào);然后再對(duì)該輸出的中斷號(hào)和未輸入過的另一個(gè)中斷的中斷號(hào)進(jìn)行選擇,如該未輸入過的中斷的優(yōu)先級(jí)和當(dāng)前最高優(yōu)先級(jí)相等,則選擇該未輸入過的中斷的中斷號(hào)輸出,否則,選擇上一次選擇到的中斷號(hào)輸出;如此逐次比較,最后得到的輸出信號(hào)即為優(yōu)先級(jí)等于當(dāng)前最高優(yōu)先級(jí)的一個(gè)中斷的中斷號(hào)。
10.如權(quán)利要求6所述的方法,其特征在于,如果當(dāng)前存在有效中斷,所述當(dāng)前最高優(yōu)先級(jí)信號(hào)為當(dāng)前有效中斷中優(yōu)先級(jí)最高的中斷的優(yōu)先級(jí)信號(hào),所述步驟(e)中查找到的中斷號(hào)為當(dāng)前有效中斷中優(yōu)先級(jí)最高的一個(gè)中斷的中斷號(hào);在當(dāng)前有效中斷中優(yōu)先級(jí)最高的中斷有多個(gè)時(shí),輸出的是這些中斷中最后一個(gè)與當(dāng)前最高優(yōu)先級(jí)信號(hào)比較的中斷的中斷號(hào),即固定優(yōu)先級(jí)最高的中斷的中斷號(hào)。
全文摘要
一種從多個(gè)有效中斷中查找最高優(yōu)先級(jí)中斷的裝置,n個(gè)中斷信號(hào)及其優(yōu)先級(jí)信號(hào)分別輸入預(yù)處理部分的n個(gè)預(yù)處理單元,每一預(yù)處理單元還輸入一最低優(yōu)先級(jí)信號(hào),中斷信號(hào)有效時(shí),預(yù)處理單元輸出該中斷的優(yōu)先級(jí)信號(hào);n個(gè)優(yōu)先級(jí)信號(hào)每兩個(gè)為一組分別輸入第一級(jí)比較電路的一比較單元,比較單元輸出兩個(gè)輸入中的高優(yōu)先級(jí)信號(hào)或在兩個(gè)輸入優(yōu)先級(jí)信號(hào)相等時(shí)輸出一個(gè)信號(hào);前一級(jí)比較電路的輸出按兩個(gè)為一組再輸入到下一級(jí)比較電路的比較單元,逐級(jí)比較直到輸出當(dāng)前最高優(yōu)先級(jí)信號(hào);中斷查找電路比較當(dāng)前最高優(yōu)先級(jí)信號(hào)與各個(gè)中斷優(yōu)先級(jí)信號(hào),輸出當(dāng)前最高優(yōu)先級(jí)中斷的中斷號(hào)。本發(fā)明中斷的優(yōu)先級(jí)可靈活配置,且處理速度很快。
文檔編號(hào)G06F13/26GK1904869SQ20061008919
公開日2007年1月31日 申請(qǐng)日期2006年8月8日 優(yōu)先權(quán)日2006年8月8日
發(fā)明者鄒楊 申請(qǐng)人:北京中星微電子有限公司