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