專利名稱:芯片內(nèi)的中斷處理裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及中斷的處理裝置及方法,尤其涉及一種芯片內(nèi)的中斷處理裝置及方法。
背景技術(shù):
在一個(gè)芯片中可能會(huì)存在許多中斷源,而芯片分配給中斷的引腳是有限的,通常一塊芯片只有一個(gè)中斷引腳。
如圖1所示,現(xiàn)有技術(shù)中用于芯片內(nèi)的中斷處理裝置包括一個(gè)中斷輸入部分1,用于輸入多個(gè)中斷;一個(gè)中斷控制器2,用于從中斷輸入部分1中有選擇輸出一個(gè)最高優(yōu)先級(jí)的中斷;以及一個(gè)中斷處理器3,用于處理在中斷控制器2上選擇的中斷。
在圖1的中斷處理裝置中,當(dāng)一個(gè)新的中斷輸入到中斷輸入部分1中時(shí),將新輸入的中斷的優(yōu)先級(jí)與中斷處理器3上正在處理的中斷的優(yōu)先級(jí)進(jìn)行比較,如果新輸入的中斷的優(yōu)先級(jí)不高于中斷處理器3上正在處理的中斷的優(yōu)先級(jí),則繼續(xù)當(dāng)前正在處理的中斷;如果新輸入的中斷的優(yōu)先級(jí)高于中斷處理器3上正在處理的中斷的優(yōu)先級(jí),則停止當(dāng)前正在進(jìn)行的中斷,由中斷控制器2將優(yōu)先級(jí)較高的中斷輸出到中斷處理器3,由中斷處理器3進(jìn)行處理。
當(dāng)新產(chǎn)生的中斷的優(yōu)先級(jí)與中斷處理器3上正在處理的中斷的優(yōu)先級(jí)相同時(shí),中斷控制器2按照中斷產(chǎn)生的先后順序?qū)⒅袛噍敵龅街袛嗵幚砥?,先產(chǎn)生的中斷將首先得到處理,在處理這個(gè)中斷的時(shí)候,其他的相同優(yōu)先級(jí)的中斷將被忽略,若幾個(gè)相同優(yōu)先級(jí)的中斷同時(shí)產(chǎn)生時(shí),只能有一個(gè)中斷被處理,其他的中斷也將被忽略掉。
在上述中斷處理方法中,當(dāng)幾個(gè)相同優(yōu)先級(jí)的中斷同時(shí)產(chǎn)生時(shí),只能有一個(gè)中斷被處理,其他的中斷將被忽略掉。這樣有些中斷就得不到處理,如果忽略掉的中斷是芯片必須處理的,就會(huì)對(duì)芯片的功能造成影響。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種芯片內(nèi)的中斷處理裝置及方法,以解決現(xiàn)有技術(shù)在進(jìn)行中斷處理時(shí),同時(shí)產(chǎn)生的多個(gè)相同優(yōu)先級(jí)中斷中只能有一個(gè)被處理,其他的將被忽略掉的問題。
為解決上述問題,本發(fā)明提供以下技術(shù)方案一種芯片內(nèi)的中斷處理裝置,包括中斷產(chǎn)生單元,用于產(chǎn)生中斷信號(hào);中斷屏蔽控制單元,用于有選擇的屏蔽從中斷產(chǎn)生單元輸出的中斷信號(hào);中斷向量存儲(chǔ)單元,用于存儲(chǔ)未被屏蔽的中斷向量;控制輸出單元,用于當(dāng)未被屏蔽的中斷向量被存入中斷向量存儲(chǔ)單元時(shí),發(fā)出中斷請(qǐng)求信號(hào);中斷產(chǎn)生單元內(nèi)具有多個(gè)功能模塊,所有功能模塊的中斷信號(hào)輸入到中斷屏蔽控制單元,中斷屏蔽控制單元的輸出端分別輸入中斷向量存儲(chǔ)單元和控制輸出單元。
所述中斷屏蔽控制單元由中斷屏蔽寄存器和若干與門構(gòu)成,每一個(gè)功能模塊分別對(duì)應(yīng)一個(gè)中斷屏蔽寄存器位和一個(gè)與門,功能模塊的中斷信號(hào)和所對(duì)應(yīng)的中斷屏蔽寄存器位為與門的輸入端。
所述中斷向量存儲(chǔ)單元為讀清零式寄存器,該寄存器中的每一位都與中斷產(chǎn)生單元內(nèi)的一個(gè)功能模塊相對(duì)應(yīng)。
所述中斷向量存儲(chǔ)單元與芯片的上位機(jī)連接。
所述控制輸出單元為或門,或門的輸出端與芯片的上位機(jī)連接。
一種中斷處理方法,包括步驟
A、產(chǎn)生中斷的功能模塊將中斷信號(hào)通過中斷屏蔽控制單元分別輸入到中斷向量存儲(chǔ)單元和控制輸出單元;B、控制輸出單元發(fā)出中斷請(qǐng)求信號(hào),芯片的上位機(jī)通過中斷屏蔽控制單元對(duì)功能模塊進(jìn)行屏蔽設(shè)置后,讀取中斷向量存儲(chǔ)單元,執(zhí)行讀取到的中斷;C、在執(zhí)行中斷的過程中,若被設(shè)置為屏蔽的功能模塊產(chǎn)生新中斷,則該中斷被忽略;若被設(shè)置為未屏蔽的功能模塊產(chǎn)生新中斷,則中止當(dāng)前執(zhí)行的中斷,轉(zhuǎn)而執(zhí)行新中斷。
在所述步驟B中,對(duì)功能模塊進(jìn)行屏蔽設(shè)置通過設(shè)置功能模塊的中斷屏蔽寄存器對(duì)應(yīng)位來完成。
在所述步驟B中,芯片的上位機(jī)順序執(zhí)行讀取到的中斷或者根據(jù)預(yù)先定義的中斷優(yōu)先級(jí)來執(zhí)行讀取到的中斷。
由于本發(fā)明采用了以上技術(shù)方案,故具有以下有益效果本發(fā)明的中斷處理裝置可以將同時(shí)產(chǎn)生的多個(gè)中斷向量記錄下來,由上位機(jī)的中斷服務(wù)程序來決定執(zhí)行哪一個(gè)中斷向量,中斷的優(yōu)先級(jí)由中斷服務(wù)程序來判斷,也可以由上位機(jī)順序的將所有中斷向量處理完。在執(zhí)行中斷的同時(shí),通過對(duì)中斷屏蔽控制單元的設(shè)置,可以對(duì)較重要的中斷進(jìn)行選擇輸出。采用本發(fā)明進(jìn)行中斷處理時(shí),不會(huì)出現(xiàn)重要的中斷被忽略掉的問題。
圖1為現(xiàn)有技術(shù)中用于芯片內(nèi)的中斷處理裝置的結(jié)構(gòu)示意圖;圖2為將芯片劃分為不同級(jí)別模塊的示意圖;圖3為本發(fā)明的中斷處理裝置的原理圖;圖4為本發(fā)明的中斷處理裝置的結(jié)構(gòu)示意圖;圖5為本發(fā)明的中斷處理方法的流程圖。
具體實(shí)施例方式
如圖2所示,在芯片設(shè)計(jì)過程中,會(huì)將芯片劃分為很多一級(jí)模塊,每個(gè)一級(jí)模塊又是由若干的二級(jí)模塊組成的,二級(jí)模塊中又包含更小的模塊。這樣將整個(gè)芯片劃分為很多級(jí)。在本發(fā)明中,芯片可以被看作一個(gè)模塊,有一個(gè)總中斷處理裝置與其相對(duì)應(yīng),芯片內(nèi)的每個(gè)模塊都對(duì)應(yīng)一個(gè)中斷處理裝置,每個(gè)中斷處理裝置都有一個(gè)中斷輸出信號(hào)。各個(gè)一級(jí)模塊輸出的中斷信號(hào)為一級(jí)中斷,將所有一級(jí)中斷信號(hào)線或在一起構(gòu)成總中斷處理裝置的中斷輸出引腳,由中斷輸出引腳將中斷請(qǐng)求信號(hào)發(fā)送給芯片的上位機(jī)。每個(gè)一級(jí)模塊由許多二級(jí)模塊組成,每個(gè)一級(jí)模塊都具有一個(gè)與其相對(duì)應(yīng)的一級(jí)中斷處理裝置,與一級(jí)中斷一樣,每個(gè)一級(jí)模塊內(nèi)的二級(jí)中斷信號(hào)線也都或在一起構(gòu)成一級(jí)中斷處理裝置的中斷輸出引腳,該中斷輸出引腳與芯片的上位機(jī)連接,其工作方式和總中斷處理裝置相同,以此類推,產(chǎn)生多級(jí)中斷處理方式。
芯片內(nèi)不同級(jí)別的中斷處理裝置的結(jié)構(gòu)相同,如圖3所示,本發(fā)明的中斷處理裝置包括一個(gè)中斷產(chǎn)生單元,用于產(chǎn)生同一級(jí)別多個(gè)功能模塊的中斷信號(hào);一個(gè)中斷屏蔽控制單元,用于有選擇的屏蔽從中斷產(chǎn)生單元輸出的中斷信號(hào);一個(gè)中斷向量存儲(chǔ)單元,用于存儲(chǔ)未被屏蔽的中斷向量;一個(gè)控制輸出單元,用于當(dāng)未被屏蔽的中斷向量被存入中斷向量存儲(chǔ)單元時(shí),發(fā)出中斷請(qǐng)求信號(hào);中斷產(chǎn)生單元內(nèi)具有多個(gè)功能模塊,所有功能模塊的中斷信號(hào)輸入到中斷屏蔽控制單元。
如圖4所示,上述中斷屏蔽控制單元由中斷屏蔽寄存器和若干與門所組成,每一個(gè)功能模塊分別對(duì)應(yīng)中斷屏蔽寄存器中的一位和一個(gè)與門。上述中斷向量存儲(chǔ)單元與芯片的上位機(jī)連接,為讀清零式的寄存器,該中斷向量寄存器中的每一位都與中斷產(chǎn)生單元內(nèi)的一個(gè)功能模塊相對(duì)應(yīng)。上述控制輸出單元為一個(gè)或門,與芯片的上位機(jī)連接,從中斷屏蔽控制單元輸出的所有功能模塊的中斷信號(hào)線或在一起構(gòu)成了該中斷處理裝置的中斷輸出引腳。每一個(gè)功能模塊的中斷信號(hào)輸入中斷屏蔽控制單元后,和對(duì)應(yīng)的中斷屏蔽寄存器位通過一個(gè)與門進(jìn)行與運(yùn)算,與門的輸出端分別輸入該功能模塊的中斷向量寄存器對(duì)應(yīng)位和控制輸出單元中的或門。
如圖5所示,當(dāng)中斷產(chǎn)生單元內(nèi)的功能模塊產(chǎn)生中斷時(shí),按照下面的方法來處理芯片的中斷。
在上述中斷處理裝置中,當(dāng)中斷產(chǎn)生單元內(nèi)的功能模塊產(chǎn)生中斷時(shí),功能模塊的中斷信號(hào)線將高電平信號(hào)輸入到中斷屏蔽控制單元中,和所對(duì)應(yīng)的中斷屏蔽寄存器位通過與門進(jìn)行與運(yùn)算,在非屏蔽狀態(tài)下,中斷屏蔽寄存器位的值為“1”,因此中斷屏蔽控制單元的輸出為高電平,該高電平信號(hào)被分別輸入中斷向量寄存器的對(duì)應(yīng)位和控制輸出單元中的或門,或門的輸出端為中斷輸出引腳,中斷輸出引腳輸出一個(gè)高電平信號(hào)給芯片的上位機(jī)。
芯片的上位機(jī)收到該高電平信號(hào)后通過中斷服務(wù)程序?qū)⒅袛嗥帘渭拇嫫魇鼓埽磳⒅袛嗥帘渭拇嫫髑辶?,屏蔽掉所有后來的中斷向量。然后芯片的上位機(jī)讀取中斷向量寄存器,當(dāng)發(fā)現(xiàn)中斷向量寄存器的某些位發(fā)生變化時(shí),即可斷定出是哪些模塊產(chǎn)生中斷,由于中斷向量寄存器是讀清零的設(shè)計(jì),因此當(dāng)讀完中斷向量寄存器后,中斷向量寄存器為零,當(dāng)執(zhí)行完所讀取的中斷后,將中斷屏蔽寄存器打開,允許新的中斷向量進(jìn)入中斷向量寄存器中。中斷服務(wù)程序可以順序執(zhí)行所讀取的中斷向量,也可以按照預(yù)先定義好的優(yōu)先級(jí)來執(zhí)行中斷。
中斷屏蔽寄存器在芯片的上位機(jī)的控制下也可以對(duì)后來的中斷向量進(jìn)行有選擇的屏蔽,當(dāng)某個(gè)模塊的中斷較為重要或者優(yōu)先級(jí)較高時(shí),芯片的上位機(jī)在收到控制單元的高電平信號(hào)后,通過中斷服務(wù)程序?qū)⑴c其相對(duì)應(yīng)的中斷屏蔽寄存器位置“1”,其他的中斷屏蔽寄存器位置“0”,然后芯片的上位機(jī)讀取中斷向量寄存器并執(zhí)行相應(yīng)的中斷,在執(zhí)行中斷的過程中,若上述中斷屏蔽寄存器位為“1”的模塊產(chǎn)生中斷,則當(dāng)前正在執(zhí)行的中斷被停止,中斷服務(wù)程序開始執(zhí)行該模塊所產(chǎn)生的中斷,當(dāng)執(zhí)行完該中斷后,將中斷屏蔽寄存器中被置“0”的位重新置“1”,允許新的中斷向量進(jìn)入中斷向量寄存器中。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求書的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種芯片內(nèi)的中斷處理裝置,其特征在于包括中斷產(chǎn)生單元,用于產(chǎn)生中斷信號(hào);中斷屏蔽控制單元,用于有選擇的屏蔽從中斷產(chǎn)生單元輸出的中斷信號(hào);中斷向量存儲(chǔ)單元,用于存儲(chǔ)未被屏蔽的中斷向量;控制輸出單元,用于當(dāng)未被屏蔽的中斷向量被存入中斷向量存儲(chǔ)單元時(shí),發(fā)出中斷請(qǐng)求信號(hào);中斷產(chǎn)生單元內(nèi)具有多個(gè)功能模塊,所有功能模塊的中斷信號(hào)輸入到中斷屏蔽控制單元,中斷屏蔽控制單元的輸出端分別輸入中斷向量存儲(chǔ)單元和控制輸出單元。
2.根據(jù)權(quán)利要求1所述的中斷處理裝置,其特征在于所述中斷屏蔽控制單元由中斷屏蔽寄存器和若干與門構(gòu)成,每一個(gè)功能模塊分別對(duì)應(yīng)一個(gè)中斷屏蔽寄存器位和一個(gè)與門,功能模塊的中斷信號(hào)和所對(duì)應(yīng)的中斷屏蔽寄存器位為與門的輸入端。
3.根據(jù)權(quán)利要求1所述的中斷處理裝置,其特征在于所述中斷向量存儲(chǔ)單元為讀清零式寄存器,該寄存器中的每一位都與中斷產(chǎn)生單元內(nèi)的一個(gè)功能模塊相對(duì)應(yīng)。
4.根據(jù)權(quán)利要求1所述的中斷處理裝置,其特征在于所述中斷向量存儲(chǔ)單元與芯片的上位機(jī)連接。
5.根據(jù)權(quán)利要求1所述的中斷處理裝置,其特征在于所述控制輸出單元為或門,或門的輸出端與芯片的上位機(jī)連接。
6.一種利用權(quán)利要求1所述芯片內(nèi)的中斷處理裝置進(jìn)行中斷處理方法,其特征在于包括步驟A、產(chǎn)生中斷的功能模塊將中斷信號(hào)通過中斷屏蔽控制單元分別輸入到中斷向量存儲(chǔ)單元和控制輸出單元;B、控制輸出單元發(fā)出中斷請(qǐng)求信號(hào),芯片的上位機(jī)通過中斷屏蔽控制單元對(duì)功能模塊進(jìn)行屏蔽設(shè)置后,讀取中斷向量存儲(chǔ)單元,執(zhí)行讀取到的中斷;C、在執(zhí)行中斷的過程中,若被設(shè)置為屏蔽的功能模塊產(chǎn)生新中斷,則該中斷被忽略;若被設(shè)置為未屏蔽的功能模塊產(chǎn)生新中斷,則中止當(dāng)前執(zhí)行的中斷,轉(zhuǎn)而執(zhí)行新中斷。
7.根據(jù)權(quán)利要求6所述的芯片內(nèi)的中斷處理方法,其特征在于在所述步驟B中,對(duì)功能模塊進(jìn)行屏蔽設(shè)置通過設(shè)置功能模塊的中斷屏蔽寄存器對(duì)應(yīng)位來完成。
8.根據(jù)權(quán)利要求6所述的芯片內(nèi)的中斷處理方法,其特征在于在所述步驟B中,芯片的上位機(jī)順序執(zhí)行讀取到的中斷或者根據(jù)預(yù)先定義的中斷優(yōu)先級(jí)來執(zhí)行讀取到的中斷。
全文摘要
本發(fā)明公開了一種芯片內(nèi)的中斷處理裝置及方法,以解決現(xiàn)有技術(shù)中同時(shí)產(chǎn)生的多個(gè)相同優(yōu)先級(jí)中斷中只能有一個(gè)被處理的問題。該中斷處理裝置包括中斷產(chǎn)生單元、中斷屏蔽控制單元、中斷向量存儲(chǔ)單元和控制輸出單元,中斷產(chǎn)生單元內(nèi)具有多個(gè)功能模塊;產(chǎn)生中斷的功能模塊將中斷信號(hào)通過中斷屏蔽控制單元分別輸入到中斷向量存儲(chǔ)單元和控制輸出單元;控制輸出單元向芯片的上位機(jī)發(fā)出中斷請(qǐng)求信號(hào),芯片的上位機(jī)通過中斷屏蔽控制單元對(duì)功能模塊進(jìn)行屏蔽設(shè)置后,讀取中斷向量存儲(chǔ)單元,在執(zhí)行中斷的過程中,若被設(shè)置為屏蔽的功能模塊產(chǎn)生新的中斷,則該中斷被忽略;若被設(shè)置為未屏蔽的功能模塊產(chǎn)生新的中斷,則中止執(zhí)行當(dāng)前中斷,轉(zhuǎn)而執(zhí)行新的中斷。
文檔編號(hào)G06F13/20GK1632773SQ20041010405
公開日2005年6月29日 申請(qǐng)日期2004年12月31日 優(yōu)先權(quán)日2004年12月31日
發(fā)明者腰健勛, 李國新 申請(qǐng)人:北京中星微電子有限公司