專(zhuān)利名稱(chēng):用于減少對(duì)處理器的中斷次數(shù)的控制裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明其系有關(guān)于一種用于減少對(duì)一處理器的中斷次數(shù)的控制裝置及方法,尤指具有一中斷控制器及一緩沖器的控制裝置。
背景技術(shù):
在一般實(shí)時(shí)系統(tǒng)中(請(qǐng)參閱圖1),當(dāng)外部裝置100,如I/O裝置或匯流排,對(duì)一執(zhí)行單元101,如中央處理單元(CPU)、數(shù)字信號(hào)處理器(DSP)提出一中斷要求時(shí),所述執(zhí)行單元101接收到所述中斷,會(huì)立即去執(zhí)行所述中斷要求所相對(duì)應(yīng)的中斷服務(wù)例程(Interrupt Service Routine,ISR)。
但是,當(dāng)外部裝置100一再地提出許多的中斷要求時(shí),而這些中斷要求并不一定都是需要執(zhí)行單元馬上處理,并且,如果是所述執(zhí)行單元101一再的處理中斷要求和執(zhí)行相對(duì)應(yīng)的中斷服務(wù)例程時(shí),容易造成CPU執(zhí)行運(yùn)作過(guò)程或是DSP處理程序一再被干擾,導(dǎo)致系統(tǒng)效能降低,并且提高消除錯(cuò)誤的困難度,會(huì)對(duì)整個(gè)系統(tǒng)造成不可預(yù)知的干擾,并且可能影響整個(gè)系統(tǒng)的運(yùn)作效能。
發(fā)明內(nèi)容
鑒于上述問(wèn)題,本發(fā)明的主要目的是提供一種用于減少對(duì)一處理器的中斷次數(shù)的控制裝置及方法,以提高系統(tǒng)的效能。
所述控制裝置包括一緩沖器、一中斷控制器及一輔助表。所述中斷控制器耦接至所述緩沖器,用以接收一中斷并且選擇性地送出一中斷信號(hào)至處理器。所述緩沖器可存儲(chǔ)所述中斷的相關(guān)信息。所述輔助表則耦接至所述中斷控制器,用以存儲(chǔ)所述緩沖器內(nèi)各中斷所個(gè)別對(duì)應(yīng)的一中斷期限和一執(zhí)行時(shí)間。當(dāng)所述中斷控制器接收所述中斷時(shí),即將所述中斷的相關(guān)信息存入所述緩沖器,并計(jì)算所述中斷的中斷期限與所述緩沖器內(nèi)各中斷的執(zhí)行時(shí)間總和兩者的差值,再根據(jù)計(jì)算結(jié)果選擇是否送出所述中斷信號(hào)。在所述控制裝置中,所述中斷控制器包含一計(jì)時(shí)器,該計(jì)時(shí)器具有一初始值。
具體來(lái)講,按照本發(fā)明的一個(gè)方面,提供了一種用于減少對(duì)一處理器的中斷次數(shù)的控制裝置,該控制裝置包括有一緩沖器,可存儲(chǔ)至少一個(gè)中斷的相關(guān)信息;一中斷控制器,耦接至所述緩沖器,用以接收一第一中斷,并選擇性地送出一中斷信號(hào)至所述處理器;以及一輔助表,耦接至所述中斷控制器,用以存儲(chǔ)所述緩沖器內(nèi)各中斷所個(gè)別對(duì)應(yīng)的一中斷期限和一執(zhí)行時(shí)間;其中,當(dāng)所述中斷控制器接收所述第一中斷時(shí),即將所述第一中斷的相關(guān)信息存入所述緩沖器,并計(jì)算第一中斷的中斷期限與所述緩沖器內(nèi)各中斷的執(zhí)行時(shí)間總和兩者的差值,再根據(jù)選擇是否送出所述中斷信號(hào)至所述處理器。
按照本發(fā)明的另一個(gè)方面,提供了一種用于減少中斷次數(shù)的方法,該方法包括下列步驟a.提供一控制裝置,其包括有一計(jì)時(shí)器、一緩沖器和一輔助表,所述計(jì)時(shí)器具有一初始值;b.控制裝置接收一中斷,并存入所述緩沖器;c.控制裝置從所述輔助表讀取所述中斷的相對(duì)應(yīng)的一中斷期限和一執(zhí)行時(shí)間;d.判定所述計(jì)時(shí)器的值是否為初始值,如果判定為否,并且所述中斷的中斷期限小于所述緩沖器內(nèi)各中斷的執(zhí)行時(shí)間總和,則送出所述中斷信號(hào),而如果所述中斷的中斷期限不小于所述緩沖器內(nèi)各中斷的執(zhí)行時(shí)間總和,則比較中斷期限和緩沖器內(nèi)各中斷的執(zhí)行時(shí)間總和的差值與計(jì)時(shí)器的值,將兩者中較小的值存入計(jì)時(shí)器中;e.如果計(jì)時(shí)器為初始值,則將計(jì)時(shí)器的值設(shè)定為所述中斷的中斷期限與執(zhí)行時(shí)間兩者的差值;f.判定計(jì)時(shí)器是否計(jì)數(shù)到一第二預(yù)設(shè)值,如果否,則等待一預(yù)定時(shí)間并重復(fù)步驟f;g.所述控制裝置發(fā)出中斷信號(hào)以觸發(fā)一中斷程序,并將計(jì)時(shí)器的值重設(shè)為初始值。
按照本發(fā)明的再一個(gè)方面,提供了一種可減少中斷次數(shù)的系統(tǒng),其包括有一外部裝置,可提出一中斷;一控制裝置,耦接至所述外部裝置,其包括有一緩沖器,可存儲(chǔ)所述中斷的相關(guān)信息;一中斷控制器,耦接至所述緩沖器,用以接收所述中斷,并選擇性地送出一中斷信號(hào);以及一輔助表,耦接至所述中斷控制器,用以存儲(chǔ)所述緩沖器內(nèi)各中斷所個(gè)別對(duì)應(yīng)的一中斷期限和一執(zhí)行時(shí)間;一執(zhí)行單元,耦接至所述控制裝置,并且執(zhí)行所述中斷;其中,當(dāng)所述外部裝置送出中斷至所述控制裝置,所述控制裝置將所述中斷的相關(guān)信息存入所述緩沖器,并計(jì)算所述中斷的中斷期限與所述緩沖器內(nèi)各中斷的執(zhí)行時(shí)間總和兩者的差值,再根據(jù)選擇是否送出所述中斷信號(hào)給所述執(zhí)行單元。
利用前述的控制裝置及方法和系統(tǒng),可使得系統(tǒng)在運(yùn)作中減少被頻繁的中斷所干擾的次數(shù),系統(tǒng)將變得更有效率而且緩沖器不會(huì)遺失任何中斷。
圖1為現(xiàn)有技術(shù)的中斷執(zhí)行示意圖。
圖2為本發(fā)明的用于減少對(duì)一處理器的中斷次數(shù)的系統(tǒng)的示意圖。
圖3為本發(fā)明的用于減少對(duì)一處理器的中斷次數(shù)的控制裝置方塊圖。
圖4為本發(fā)明的用于減少對(duì)一處理器的中斷次數(shù)的方法步驟流程圖。
圖5為本發(fā)明的一種用于減少處理器中斷次數(shù)的中斷服務(wù)例程的流程圖。
對(duì)于附圖中各個(gè)附圖標(biāo)記的含義說(shuō)明如下1-控制裝置11-中斷控制器111-計(jì)時(shí)器12-FIFO緩沖器13-輔助表2-執(zhí)行單元3-外部裝置
40~50-本發(fā)明的用于減少對(duì)一處理器的中斷次數(shù)的方法步驟流程51~55-本發(fā)明的用于減少處理器中斷次數(shù)的中斷服務(wù)例程的流程具體實(shí)施方式
本發(fā)明提出了一種用于減少對(duì)一處理器的中斷次數(shù)的控制裝置及方法,在不影響系統(tǒng)運(yùn)作下,將多個(gè)中斷要求連結(jié)在一起,以達(dá)到減少中斷次數(shù)的目的。
請(qǐng)參閱圖2,為本發(fā)明的用于減少對(duì)一處理器的中斷次數(shù)的系統(tǒng),所述系統(tǒng)包括有一外部裝置3、一執(zhí)行單元2及一控制裝置1。
圖3為圖2控制裝置的較佳實(shí)施例的方塊圖,虛線(xiàn)處所示為控制裝置1,內(nèi)含有一先進(jìn)先出(FIFO)緩沖器12、一中斷控制器11及二個(gè)輔助表13。中斷控制器11,包含有一計(jì)時(shí)器111,并且中斷控制器11又包含至少三連接端,第一連接端用來(lái)接收外部裝置3所發(fā)出的中斷,第二連接端送出中斷信號(hào)來(lái)觸發(fā)執(zhí)行單元2執(zhí)行中斷,第三連接端用來(lái)存取FIFO緩沖器12。計(jì)時(shí)器111具有一初始值″-1″和一第二預(yù)設(shè)值為″0″,且計(jì)時(shí)器111為一下數(shù)計(jì)時(shí)器,每經(jīng)一預(yù)設(shè)的單位時(shí)間,即將計(jì)時(shí)器111下數(shù)一次。二個(gè)輔助表13中分別存有各個(gè)中斷要求的相對(duì)應(yīng)的一中斷期限和一執(zhí)行時(shí)間,以提供中斷控制器11判斷是否要立即送出中斷信號(hào)。
在一時(shí)間間隔內(nèi),執(zhí)行單元2必須完成中斷,否則系統(tǒng)會(huì)發(fā)生不可預(yù)知的錯(cuò)誤,而且所述中斷在不同系統(tǒng)狀態(tài)下也許有不同的期限,所以選一最短的執(zhí)行期限恰可滿(mǎn)足所需的時(shí)間間隔,定義此執(zhí)行期限為″最短執(zhí)行期限″。控制裝置1觸發(fā)執(zhí)行單元2執(zhí)行中斷到所述中斷完成的時(shí)間稱(chēng)為中斷執(zhí)行時(shí)間,而且所述中斷要求在不同系統(tǒng)狀態(tài)下也許有不同的中斷執(zhí)行時(shí)間,選擇一最長(zhǎng)的中斷執(zhí)行時(shí)間以滿(mǎn)足所需的要求,定義此執(zhí)行時(shí)間為一″最長(zhǎng)中斷執(zhí)行時(shí)間″,并且最短執(zhí)行期限必須大于最長(zhǎng)中斷執(zhí)行時(shí)間。
在此較佳實(shí)施例中,我們定義所述中斷期限為最短執(zhí)行期限減去一常數(shù)值,以及定義所述執(zhí)行時(shí)間為最長(zhǎng)中斷執(zhí)行時(shí)間。
圖4為顯示本發(fā)明的用于減少對(duì)一處理器的中斷次數(shù)方法的步驟流程的較佳實(shí)施例。所述方法可實(shí)施于圖3的結(jié)構(gòu)中。如圖4所示,所述方法包括下列步驟步驟40控制裝置1接收外部裝置3的一中斷,先將所述中斷的相關(guān)數(shù)據(jù)例如中斷要求的類(lèi)型、向量...等數(shù)據(jù)依序存入先進(jìn)先出緩沖器12中;步驟41控制裝置1從輔助表13讀取所述中斷的相對(duì)應(yīng)的一中斷期限和一最長(zhǎng)中斷執(zhí)行時(shí)間;步驟42檢查計(jì)時(shí)器111的值是否為初始值″-1″,如果為″否″,執(zhí)行步驟44;步驟43如果計(jì)時(shí)器111為初始值″-1″時(shí),將計(jì)時(shí)器111的值設(shè)定為所述中斷的中斷期限與最長(zhǎng)中斷執(zhí)行時(shí)間兩者的差值,計(jì)時(shí)器111開(kāi)始計(jì)數(shù);步驟44比較中斷的中斷期限是否大于緩沖器12內(nèi)各中斷的執(zhí)行時(shí)間總和,如果為否則立即執(zhí)行步驟50,如果為是則立即執(zhí)行步驟45;步驟45如果所述中斷的中斷期限不小于緩沖器12內(nèi)各中斷的最長(zhǎng)中斷執(zhí)行時(shí)間總和,則比較此差值是否小于目前計(jì)時(shí)器111的值,如果比較結(jié)果為是,則立即執(zhí)行步驟46,如果比較結(jié)果為否,則立即執(zhí)行步驟47;步驟46如果此差值小于計(jì)時(shí)器111的值,則將計(jì)時(shí)器111的值更新為此差值,計(jì)時(shí)器111開(kāi)始計(jì)數(shù);步驟47計(jì)時(shí)器111繼續(xù)計(jì)數(shù);步驟48檢查計(jì)時(shí)器111是否計(jì)數(shù)到“0”,如果為“否”,則執(zhí)行步驟49,然后重復(fù)步驟47,直到計(jì)時(shí)器111計(jì)數(shù)到“0”;步驟49等待一預(yù)設(shè)的單位時(shí)間;步驟50當(dāng)計(jì)時(shí)器111計(jì)數(shù)到0時(shí),控制裝置1發(fā)出中斷信號(hào)觸發(fā)一中斷程序,并將計(jì)時(shí)器111的值重設(shè)為初始值。
請(qǐng)參閱圖5,其所示為本發(fā)明的用于減少處理器中斷次數(shù)的中斷服務(wù)例程的步驟流程圖。提供一執(zhí)行單元2,系可為一數(shù)字信號(hào)處理器(DSP)或一中央處理單元(CPU),如圖5所示,包括下列步驟步驟51執(zhí)行單元2收到中斷信號(hào);步驟52執(zhí)行單元2會(huì)查看所述先進(jìn)先出緩沖器12中是否有中斷要求的相關(guān)數(shù)據(jù),如果查看結(jié)果為″否″,則執(zhí)行步驟54;步驟53如果查看結(jié)果為″是″,則讀取中斷要求的相關(guān)數(shù)據(jù),并執(zhí)行步驟55,直到緩沖器內(nèi)的中斷要求的相關(guān)數(shù)據(jù)都被執(zhí)行完畢為止;步驟54結(jié)束;步驟55執(zhí)行所述中斷要求所相對(duì)應(yīng)的中斷服務(wù)例程(Interrupt ServiceRoutine,ISR)。
以上所述者,僅為本發(fā)明較佳實(shí)施例而已,不能用來(lái)限定本發(fā)明所實(shí)施的范圍。凡是屬于本申請(qǐng)權(quán)利要求書(shū)所限定范圍內(nèi)所作的均等變化與修飾皆應(yīng)屬于本發(fā)明專(zhuān)利涵蓋的范圍內(nèi)。
權(quán)利要求
1.一種用于減少對(duì)一處理器的中斷次數(shù)的控制裝置,包括有一緩沖器,可存儲(chǔ)至少一個(gè)中斷的相關(guān)信息;一中斷控制器,耦接至所述緩沖器,用以接收一第一中斷,并選擇性地送出一中斷信號(hào)至所述處理器;以及一輔助表,耦接至所述中斷控制器,用以存儲(chǔ)所述緩沖器內(nèi)各中斷所個(gè)別對(duì)應(yīng)的一中斷期限和一執(zhí)行時(shí)間;其中,當(dāng)所述中斷控制器接收所述第一中斷時(shí),即將所述第一中斷的相關(guān)信息存入所述緩沖器,并計(jì)算第一中斷的中斷期限與所述緩沖器內(nèi)各中斷的執(zhí)行時(shí)間總和兩者的差值,再根據(jù)選擇是否送出所述中斷信號(hào)至所述處理器。
2.如權(quán)利要求1所述的控制裝置,其中所述緩沖器為一先進(jìn)先出(FIFO)的緩沖器。
3.如權(quán)利要求1所述的控制裝置,其中所述緩沖器所存儲(chǔ)的各中斷的相關(guān)信息至少包含中斷類(lèi)型與中斷向量。
4.如權(quán)利要求1所述的控制裝置,其中所述中斷控制器系選擇性地將所述中斷信號(hào)送至一執(zhí)行單元,所述執(zhí)行單元?jiǎng)t用以處理所述緩沖器所存儲(chǔ)的各中斷。
5.如權(quán)利要求1所述的控制裝置,其中如果第一中斷的中斷期限大于所述緩沖器內(nèi)各中斷的執(zhí)行時(shí)間總和,則所述中斷控制器不送出所述中斷信號(hào)。
6.如權(quán)利要求5所述的控制裝置,其中如果第一中斷的中斷期限不大于所述緩沖器內(nèi)各中斷的執(zhí)行時(shí)間總和,則所述中斷控制器送出所述中斷信號(hào)。
7.如權(quán)利要求1所述的控制裝置,其中所述中斷控制器包含一計(jì)時(shí)器,所述計(jì)時(shí)器的初始值為一第一值,當(dāng)所述計(jì)時(shí)器的值不等于所述第一值時(shí),每經(jīng)一預(yù)設(shè)的單位時(shí)間,即將所述計(jì)時(shí)器加上一第二值。
8.如權(quán)利要求7所述的控制裝置,其中當(dāng)所述中斷控制器接收所述第一中斷時(shí),如果所述計(jì)時(shí)器的值為所述第一值,則以所述差值來(lái)更新所述計(jì)時(shí)器。
9.如權(quán)利要求7所述的控制裝置,其中當(dāng)所述中斷控制器接收所述第一中斷時(shí),如果所述計(jì)時(shí)器的值不等于所述第一值且大于所述差值,則以所述差值來(lái)更新所述計(jì)時(shí)器。
10.如權(quán)利要求7所述的控制裝置,其中如果所述差值不大于一第三值,則所述中斷控制器送出所述中斷信號(hào),并將所述計(jì)時(shí)器重置為所述第一值。
11.一種用于減少中斷次數(shù)的方法,其包括步驟a.提供一控制裝置,其包括有一計(jì)時(shí)器、一緩沖器和一輔助表,所述計(jì)時(shí)器具有一初始值;b.控制裝置接收一中斷,并存入所述緩沖器;c.控制裝置從所述輔助表讀取所述中斷的相對(duì)應(yīng)的一中斷期限和一執(zhí)行時(shí)間;d.判定所述計(jì)時(shí)器的值是否為初始值,如果判定為否,并且所述中斷的中斷期限小于所述緩沖器內(nèi)各中斷的執(zhí)行時(shí)間總和,則送出所述中斷信號(hào),而如果所述中斷的中斷期限不小于所述緩沖器內(nèi)各中斷的執(zhí)行時(shí)間總和,則比較中斷期限和緩沖器內(nèi)各中斷的執(zhí)行時(shí)間總和的差值與計(jì)時(shí)器的值,將兩者中較小的值存入計(jì)時(shí)器中;e.如果計(jì)時(shí)器為初始值,則將計(jì)時(shí)器的值設(shè)定為所述中斷的中斷期限與執(zhí)行時(shí)間兩者的差值;f.判定計(jì)時(shí)器是否計(jì)數(shù)到一第二預(yù)設(shè)值,如果否,則等待一預(yù)定時(shí)間并重復(fù)步驟f;g.所述控制裝置發(fā)出中斷信號(hào)以觸發(fā)一中斷程序,并將計(jì)時(shí)器的值重設(shè)為初始值。
12.一種可減少中斷次數(shù)的系統(tǒng),其包括有一外部裝置,可提出一中斷;一控制裝置,耦接至所述外部裝置,其包括有一緩沖器,可存儲(chǔ)所述中斷的相關(guān)信息;一中斷控制器,耦接至所述緩沖器,用以接收所述中斷,并選擇性地送出一中斷信號(hào);以及一輔助表,耦接至所述中斷控制器,用以存儲(chǔ)所述緩沖器內(nèi)各中斷所個(gè)別對(duì)應(yīng)的一中斷期限和一執(zhí)行時(shí)間;一執(zhí)行單元,耦接至所述控制裝置,并且執(zhí)行所述中斷;其中,當(dāng)所述外部裝置送出中斷至所述控制裝置,所述控制裝置將所述中斷的相關(guān)信息存入所述緩沖器,并計(jì)算所述中斷的中斷期限與所述緩沖器內(nèi)各中斷的執(zhí)行時(shí)間總和兩者的差值,再根據(jù)選擇是否送出所述中斷信號(hào)給所述執(zhí)行單元。
13.如權(quán)利要求12所述的可減少中斷次數(shù)的系統(tǒng),其中所述緩沖器為一先進(jìn)先出的緩沖器。
14.如權(quán)利要求12所述的用于減少中斷次數(shù)的系統(tǒng),其中所述緩沖器所存儲(chǔ)的各中斷的相關(guān)信息至少包含中斷類(lèi)型與中斷向量。
15.如權(quán)利要求12所述的可減少中斷次數(shù)的系統(tǒng),其中如果所述中斷的中斷期限大于所述緩沖器內(nèi)各中斷的執(zhí)行時(shí)間總和,則所述中斷控制器不送出所述中斷信號(hào)。
16.如權(quán)利要求12所述的可減少中斷次數(shù)的系統(tǒng),其中如果所述中斷的中斷期限小于所述緩沖器內(nèi)各中斷的執(zhí)行時(shí)間總和,則所述中斷控制器送出所述中斷信號(hào)。
17.如權(quán)利要求12所述的可減少中斷次數(shù)的系統(tǒng),其中所述中斷控制器包含一計(jì)時(shí)器,所述計(jì)時(shí)器的初始值為一第一值,當(dāng)所述計(jì)時(shí)器的值不等于所述第一值時(shí),每經(jīng)一預(yù)設(shè)的單位時(shí)間,即將所述計(jì)時(shí)器加上一第二值。
18.如權(quán)利要求17所述的可減少中斷次數(shù)的系統(tǒng),其中當(dāng)所述中斷控制器接收所述中斷時(shí),如果所述計(jì)時(shí)器的值為所述第一值,則以所述差值來(lái)更新所述計(jì)時(shí)器。
19.如權(quán)利要求17所述的可減少中斷次數(shù)的系統(tǒng),其中當(dāng)所述中斷控制器接收所述中斷時(shí),如果所述計(jì)時(shí)器的值不等于所述第一值且大于所述差值,則以所述差值來(lái)更新所述計(jì)時(shí)器。
20.如權(quán)利要求17所述的可減少中斷次數(shù)的系統(tǒng),其中如果所述差值不大于一第三值,則所述中斷控制器送出所述中斷信號(hào),并將所述計(jì)時(shí)器重置為所述第一值。
21.如權(quán)利要求12所述的可減少中斷次數(shù)的系統(tǒng),其中所述執(zhí)行單元其為一中央處理單元(CPU)。
22.如權(quán)利要求12所述的可減少中斷次數(shù)的系統(tǒng),其中所述執(zhí)行單元其為一數(shù)字信號(hào)處理器(DSP)。
全文摘要
在一實(shí)時(shí)系統(tǒng)中,可用一種控制裝置和方法及系統(tǒng)來(lái)達(dá)到減少對(duì)一處理器的中斷次數(shù),所述控制裝置包括有一緩沖器、一中斷控制器、一輔助表。所述中斷控制器接收一中斷并且選擇性地送出一中斷信號(hào)至一處理器,所述中斷控制器具有一計(jì)時(shí)器,所述輔助表可存儲(chǔ)所述緩沖器內(nèi)各中斷所個(gè)別對(duì)應(yīng)的一中斷期限和一執(zhí)行時(shí)間,所述中斷控制器接收所述中斷后,先將所述中斷的相關(guān)信息存入所述緩沖器,然后通過(guò)比較所述中斷的中斷期限與所述緩沖器內(nèi)各中斷的執(zhí)行時(shí)間,依照其結(jié)果選擇性地送出所述中斷信號(hào)。
文檔編號(hào)G06F13/24GK1567277SQ0314752
公開(kāi)日2005年1月19日 申請(qǐng)日期2003年7月9日 優(yōu)先權(quán)日2003年7月9日
發(fā)明者姚錦樹(shù) 申請(qǐng)人:明基電通股份有限公司