專利名稱:中斷控制裝置及控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及作為控制計算機系統(tǒng)的OS(操作系統(tǒng))的一部分、對來自發(fā)生中斷的中斷資源的中斷進行控制的中斷控制裝置。
背景技術(shù):
一般情況下,計算機系統(tǒng)中的中斷控制是通過在OS中對來自各中斷資源的中斷進行一維管理來處理的。
圖1表示的是,在以往的計算機系統(tǒng)中發(fā)生中斷時從OS的核心空間向用戶進程空間的轉(zhuǎn)移關(guān)系。如該圖所示,在核心空間602內(nèi),從用來受理中斷的中斷處理部開始,在利用調(diào)度程序進行中斷調(diào)度處理之后,轉(zhuǎn)移到進程空間601內(nèi)的用戶進程。
圖2表示的是,在以往計算機系統(tǒng)中中斷控制裝置的結(jié)構(gòu)。在該該圖中,分層次表示作為發(fā)生中斷的中斷資源的外圍設(shè)備、中斷控制器、CPU、OS及應(yīng)用進程。圖3是著眼于各結(jié)構(gòu)要件的寄存器結(jié)構(gòu)來表示圖2中的處理流程的動作說明圖。采用圖3,更具體地說明圖2中的動作。
中斷控制器(INTC)502用來檢測來自各種外圍設(shè)備(I/O裝置)501a、501b等的中斷發(fā)生,設(shè)置與該中斷原因?qū)?yīng)的原因編號寄存器502a的原因編號標(biāo)識。如果該中斷原因未通過軟件的設(shè)定而被屏蔽,則中斷控制器502向CPU503通知中斷發(fā)生。
CPU503具有與中斷等級相應(yīng)的中斷向量寄存器503a,在受理了來自中斷控制器502的中斷通知之后,從分配該中斷原因的中斷向量寄存器讀出中斷向量,執(zhí)行OS所管理的中斷入口函數(shù)505。通過執(zhí)行該中斷入口函數(shù)505,轉(zhuǎn)移到中斷原因的判別和用戶的中斷處理程序。此時,調(diào)度程序506在與其他中斷和其他進程之間進行調(diào)度調(diào)整,在調(diào)整后啟動與中斷原因?qū)?yīng)的中斷處理程序507a或507b等,進行與中斷請求對應(yīng)的處理(或者將對應(yīng)的處理調(diào)出)。
一般情況下,通過上面的動作,以往的中斷控制裝置進行一系列的中斷控制。
可是,通常的OS未假設(shè)出只將特定的中斷資源作為OS的管理范圍之外的情形,而這樣一來則需要特別的機構(gòu)。作為所需的特別機構(gòu),在特開2001-216172號公報(下面,稱為文獻1)中公示出,利用多個OS和從OS獨立出的中斷管理程序的實現(xiàn)方法。
根據(jù)文獻1,公示出從OS獨立出的中斷管理程序是利用下述兩種方法的中斷控制方法,該方法一種是搶占一個OS所管理的中斷資源而將其分配給另一個OS的方法,另一種是根據(jù)OS的執(zhí)行狀態(tài)對啟動各個中斷處理程序的時間進行決定的方法。根據(jù)這種中斷控制方法,可以將所發(fā)生的外部中斷通過中斷管理程序暫時處理后,向多個OS分配中斷處理,并由分配目的地的OS執(zhí)行中斷處理。另外,中斷處理在多個OS間進行了復(fù)用的情況下,由于采用中斷管理程序來管理中斷狀態(tài),因而也能夠?qū)崿F(xiàn)排他控制。
但是,根據(jù)以往的中斷控制裝置,存在下述問題,即在只將特定的中斷資源作為OS的管理范圍之外時,不能保證從發(fā)生中斷到執(zhí)行與中斷對應(yīng)的應(yīng)用程序的響應(yīng)性也就是實時性。
具體而言,在將操作系統(tǒng)(OS)上特定的中斷資源由其他程序進行分離并獨立管理的情況下,存儲下面的問題。
(1)在文獻1中,中斷管理程序為了協(xié)調(diào)中斷處理的OS間的多路復(fù)用,必須通過上述中斷管理程序來管理中斷狀態(tài)。例如,圖3所示的調(diào)度程序506在文獻1中,對應(yīng)于進行更復(fù)雜調(diào)度調(diào)整的中斷管理程序。由于新安裝該中斷管理程序來執(zhí)行處理,因而除以往OS中所安裝的中斷入口函數(shù)之外,還增加中斷狀態(tài)的管理處理,使實時性變差。
(2)與文獻1無關(guān),以往并不存在以下述結(jié)構(gòu)將與特定的中斷原因?qū)?yīng)的用戶中斷處理函數(shù),配置到用戶進程空間而不是OS的地址空間(核心空間),并在不妨礙中斷響應(yīng)性的狀況下轉(zhuǎn)移到所配置的中斷處理函數(shù)。在從圖1所示的核心空間602向進程空間601轉(zhuǎn)移的過程中,調(diào)度程序的響應(yīng)性依賴于OS的性能。對于通用的OS來說,其課題為沒有在發(fā)生中斷后向應(yīng)用程序進行轉(zhuǎn)移的時間保證,也就是說沒有實時保證。
(3)在文獻1中其構(gòu)成為,為了將CPU的中斷資源通過多個OS進行分開管理,至少需要2個以上的OS,并且未假設(shè)出在1個OS和該OS上進行動作的應(yīng)用程序間進行中斷資源分開的情形。
發(fā)明內(nèi)容
鑒于上述課題,本發(fā)明的目的為,提供一種中斷控制裝置、其控制方法及程序,用來在廣泛應(yīng)用的OS中對于來自特定中斷資源的中斷保證實時性。特別是,本發(fā)明的目的為,提供一種在廣泛應(yīng)用的OS上保證實現(xiàn)內(nèi)部設(shè)備所廣泛需要的實時性的中斷控制裝置、其控制方法及程序。
為解決上述課題,本發(fā)明的中斷控制裝置,對來自發(fā)生中斷的中斷資源的中斷進行控制,作為控制計算機系統(tǒng)的OS,具備表格機構(gòu),用來保持地址信息,該地址信息分別對應(yīng)于中斷資源中OS所管理的第1類中斷資源以及OS不管理的第2類中斷資源;啟動機構(gòu),對于第1類中斷資源所發(fā)生的中斷,根據(jù)表格機構(gòu)的地址信息啟動第1控制處理,該第1控制處理包含對第1類中斷資源共用的管理處理,對于第2類中斷資源所發(fā)生的中斷,根據(jù)表格機構(gòu)的地址信息啟動第2控制處理,該第2控制處理不包含上述管理處理。
根據(jù)這種結(jié)構(gòu),可以對于第1類中斷資源,啟動實時性較差而通用性性較高的中斷處理,對于第2類中斷資源,啟動對中斷快速響應(yīng)且實時性方面優(yōu)良的中斷處理。
在此,上述中斷控制裝置還可以具有受理機構(gòu),用來從應(yīng)用程序受理表示特定的中斷資源和地址信息的通知,上述表格機構(gòu)按照由受理機構(gòu)所受理的通知,來保持與第2類中斷資源對應(yīng)的地址信息。
根據(jù)這種結(jié)構(gòu),應(yīng)用程序可以將需要實時性的任意中斷資源,從第1類自由地設(shè)定變更成第2類。
在此,上述啟動機構(gòu)也可以在上述第2控制處理中,依次執(zhí)行上下文的保存、與發(fā)生了中斷的第2類中斷資源對應(yīng)的中斷處理以及所保存上下文的恢復(fù)。
在此,上述啟動機構(gòu)也可以在上述第2控制處理中,在開始上述上下文保存之前禁止其他的中斷輸入,并在上述第2控制處理完成前解除上述中斷輸入的禁止。
根據(jù)這種結(jié)構(gòu),由于在與第2類中斷資源對應(yīng)的中斷處理過程中,在需要實時性的處理完成前禁止其他的中斷輸入,因而可以更可靠地確保實時性。
在此,上述中斷控制裝置還可以具備轉(zhuǎn)換緩沖器,用來對虛擬存儲用的頁表之中與執(zhí)行中的進程對應(yīng)的頁數(shù)據(jù)進行緩存;更新機構(gòu),用于上述啟動機構(gòu)在上述第2控制處理中更新上述轉(zhuǎn)換緩沖器,以便在執(zhí)行上述中斷處理前保持與該中斷處理對應(yīng)的頁數(shù)據(jù)。
在此,上述受理機構(gòu)還可以從應(yīng)用程序受理下述通知,該通知表示與第2類中斷資源對應(yīng)的中斷處理的進程ID,上述更新機構(gòu)根據(jù)由受理機構(gòu)所受理的通知示出的進程ID,從上述頁表讀出上述頁數(shù)據(jù)將其存儲到上述轉(zhuǎn)換緩沖器中。
根據(jù)這種結(jié)構(gòu),由于對虛擬存儲用的被稱為所謂TLB(TranslationLook aside Buffer)的轉(zhuǎn)換緩沖器進行更新,因而可以容易地將中斷處理配置到進程空間。
在此,上述表格機構(gòu)還可以為每個中斷資源保持中斷等級和表示是上述第1類還是第2類的分類,上述啟動機構(gòu)根據(jù)所發(fā)生中斷的中斷等級和表格機構(gòu)中所保持的分類,來判別是第1類和第2類的哪一類。
在此,上述啟動機構(gòu)也可以比較所發(fā)生中斷的中斷等級和指定等級的優(yōu)先順序,判別是上述第1類和第2類的哪一類。
根據(jù)這種結(jié)構(gòu),可以將任意的中斷等級從第1類變更成第2類,或者將比指定級更低的(或高的)中斷等級的中斷資源設(shè)定為第2類。
如同上面所說明的那樣,根據(jù)本發(fā)明的中斷控制裝置,可以同時存在實時性較差而通用較高的中斷處理、以及對中斷快速響應(yīng)且實時性方面優(yōu)良的中斷處理。另外,由于在應(yīng)用程序所指定的任意中斷等級中,不經(jīng)第2類OS的管理處理就啟動用戶獨享的中斷處理,因而能夠?qū)崿F(xiàn)其控制方法。
另外,對于應(yīng)用程序所管理的第2類中斷資源以及由OS所管理的第1類中斷資源之間的中斷處理的排他控制,因為不需要另外設(shè)置協(xié)調(diào)機構(gòu),也不發(fā)生因協(xié)調(diào)機構(gòu)本身而引起的處理延遲,所以可以在不妨礙響應(yīng)性的狀況下,實現(xiàn)排他控制。
再者,還能夠?qū)?yīng)用程序所管理的中斷處理函數(shù)安裝到與核心空間不同的應(yīng)用程序的用戶進程空間。向與第2類中斷資源對應(yīng)的中斷處理也就是中斷處理函數(shù)(用戶進程空間)的轉(zhuǎn)移,可以保證實時性。
另外,對于本發(fā)明的中斷控制方法及程序,也具有與上述相同的方法、作用及效果。
圖1表示的是從以往OS的核心空間向用戶進程空間的中斷控制轉(zhuǎn)移關(guān)系。
圖2表示的是以往計算機系統(tǒng)中中斷控制裝置的結(jié)構(gòu)。
圖3是著重于各結(jié)構(gòu)要件的寄存器結(jié)構(gòu)來表示圖2中的處理流程的動作說明圖。
圖4是表示實施方式1中中斷控制裝置結(jié)構(gòu)的框圖。
圖5是著重于寄存器結(jié)構(gòu)來表示處理流程的動作說明圖。
圖6是表示對擴展中斷入口函數(shù)進行注冊的處理的流程圖。
圖7是表示中斷控制處理的流程圖。
圖8是表示其他中斷控制處理的流程圖。
圖9表示的是對每個中斷等級使第1類和第2類的任一個相對應(yīng)的管理表格示例。
圖10是表示實施方式2中中斷控制裝置結(jié)構(gòu)的框圖。
圖11是表示對擴展中斷入口函數(shù)進行注冊的處理的流程圖。
圖12是表示中斷控制處理的流程圖。
具體實施例方式
(實施方式1)下面,參照
本發(fā)明中斷控制方式的實施方式。
<中斷控制裝置的結(jié)構(gòu)>
圖4是表示本發(fā)明實施方式1中中斷控制裝置系統(tǒng)結(jié)構(gòu)的框圖。在該圖中,分層表示出應(yīng)用程序、OS、CPU、中斷控制器及外部設(shè)備。與圖2所示的以往系統(tǒng)結(jié)構(gòu)不同之處是,具備用戶管理中斷號通知部112,用于應(yīng)用程序從本進程對OS通知用戶想要管理的中斷等級,也就是作為OS管理范圍之外的中斷等級;擴展中斷入口函數(shù)通知部113,用來通知應(yīng)用程序所準(zhǔn)備的稱為擴展中斷入口函數(shù)108的函數(shù)地址;中斷向量更新部110,用來在OS內(nèi)獲取上述應(yīng)用程序所準(zhǔn)備的擴展中斷入口函數(shù)的地址通知。擴展中斷入口函數(shù)108及用戶處理程序109并不是作為OS的一部分,而是作為應(yīng)用程序來準(zhǔn)備的。
對于圖4所示的中斷控制裝置,采用著重于各結(jié)構(gòu)要件的寄存器結(jié)構(gòu)來表示處理流程的圖5,更具體地加以說明。
中斷控制器102用來檢測來自各種外圍設(shè)備(I/O裝置)101a、101b等的中斷發(fā)生,設(shè)置與該中斷原因?qū)?yīng)的原因編號寄存器102a中的原因編號標(biāo)識。如果該中斷原因未通過軟件的設(shè)定被屏蔽,則中斷控制器102向CPU103通知中斷發(fā)生。
CPU103具有與中斷等級相對應(yīng)的中斷向量寄存器103a。中斷向量寄存器103a具備中斷等級寄存器,用來按優(yōu)先級較高的順序保持與從等級0到等級n的中斷等級對應(yīng)的地址。
在圖5的示例中,在中斷向量寄存器103a中從等級0到等級m的中斷等級寄存器用于第1類中斷,各自保持著共用中斷入口函數(shù)105的起始地址。另外,從等級m+1到等級n的中斷等級寄存器用于第2類中斷,各自保持著擴展中斷入口函數(shù)108的起始地址。在此,所謂第1類中斷,是指與以往技術(shù)相同通過OS經(jīng)由共用的管理處理(主要是調(diào)度程序106的調(diào)度處理)來啟動中斷處理(用戶的中斷處理程序107a、107b等)的通用性優(yōu)良的中斷。所謂第2類中斷是應(yīng)用程序所管理的中斷,并且是指不經(jīng)由上述管理處理地啟動中斷處理(用戶的中斷處理程序109a、109b等)的能保證實時性的中斷。
在受理了來自中斷控制器102的中斷通知之后,根據(jù)指定給該中斷原因的中斷向量寄存器的地址,調(diào)出共用中斷入口函數(shù)105及擴展中斷入口函數(shù)108的任一個。在該圖的示例中,第1類中斷時,調(diào)出共用中斷入口函數(shù)105,第2類中斷時,調(diào)出擴展中斷入口函數(shù)108。
通過執(zhí)行共用中斷入口函數(shù)105,來進行中斷原因的判別以及向用戶的中斷處理程序107a和107b的轉(zhuǎn)移。此時,調(diào)度程序106進行和其他中斷之間的多路復(fù)用協(xié)調(diào)以及和其他處理之間的調(diào)度調(diào)整,并在調(diào)整后啟動與中斷原因?qū)?yīng)的中斷處理程序107a或107b等。通過調(diào)出中斷處理程序107a和107b,來執(zhí)行(或者調(diào)出)與中斷請求對應(yīng)的中斷處理。
另一方面,通過執(zhí)行擴展中斷入口函數(shù)105,來進行中斷原因的判別以及向用戶的中斷處理程序107a和107b的轉(zhuǎn)移。此時,由于不經(jīng)由調(diào)度程序106的調(diào)整,因而能夠在不延遲的狀況下啟動與中斷原因?qū)?yīng)的中斷處理程序109a和109b。通過調(diào)出中斷處理程序109a和109b,來執(zhí)行(或者調(diào)出)與中斷請求對應(yīng)的中斷處理。
<來自應(yīng)用程序的注冊處理>
圖6是表示將由用戶應(yīng)用程序所準(zhǔn)備的中斷處理程序(也就是擴展中斷入口函數(shù)108)的地址向CPU內(nèi)的中斷向量寄存器進行注冊的處理的流程圖。該圖的過程是在將需要實時性的任意中斷原因設(shè)定為第2類中斷的情況下執(zhí)行的,例如在啟動應(yīng)用程序時的最初時進行。
首先,執(zhí)行中的應(yīng)用程序(下面,只稱為應(yīng)用程序)從OS所管理的中斷資源之中選擇需要實時性的任意中斷資源的資源編號(S301)。在圖5的示例中,作為中斷資源,選擇中斷原因(外圍設(shè)備的名稱或號碼)及中斷等級。這種情況下,如果中斷原因和中斷等級以1對1或多對1的方式相對應(yīng),則應(yīng)選擇的資源編號只是中斷等級就可以。應(yīng)用程序再將所選擇出的中斷資源編號通知給OS(S302)。接著,將用于在與上述所選擇出的中斷等級對應(yīng)的中斷向量表中存儲地址的、擴展中斷入口函數(shù)的名稱(或起始地址),通知給OS(S303)。
收到該通知后,OS中的中斷向量更新部110判定與所通知的資源編號對應(yīng)的向量寄存器是否在向量表中(S304)。判定為在表格中時,進而應(yīng)用程序?qū)U展中斷入口函數(shù)的起始地址(也可以是本進程內(nèi)的任意地址)通知給OS(S305)。OS中的中斷向量更新部110將所通知的地址存儲到向量表內(nèi)的向量寄存器中(S306),結(jié)束本處理。在上述步驟S304中,如果與從應(yīng)用程序所通知的資源編號對應(yīng)的向量寄存器不在向量表中,則進行錯誤處理(S307)并結(jié)束本處理。
借此,對于應(yīng)用程序所任意選擇出的中斷資源,能夠?qū)U展中斷入口函數(shù)的地址存儲到向量表中。
<中斷控制處理>
圖7是表示圖6中的注冊處理后實際發(fā)生中斷時的中斷控制處理的流程圖。
在從外圍I/O等的中斷資源發(fā)生中斷的情況下,管理該中斷的中斷控制器102將該中斷原因的中斷發(fā)生通知給CPU(S401)。CPU向指定給該中斷原因的中斷向量寄存器進行轉(zhuǎn)移(S402)。選擇與所通知的中斷原因相對應(yīng)、CPU內(nèi)的中斷向量寄存器(S403)。
在轉(zhuǎn)移目的地的中斷向量寄存器是上述圖6中所注冊的擴展中斷入口函數(shù)108的地址的情況下,執(zhí)行該擴展中斷入口函數(shù)108(S405)。如果是此外的中斷向量寄存器,則執(zhí)行現(xiàn)有的OS的共用中斷入口函數(shù)105(S404)。
其結(jié)果,如圖5所示,由于在中斷向量寄存器內(nèi)所存儲的中斷入口函數(shù)的地址不只是由現(xiàn)存的OS來管理的共用中斷入口函數(shù)105的地址,還存在由應(yīng)用程序準(zhǔn)備的擴展中斷入口函數(shù)108的地址,因而應(yīng)用程序能夠單獨進行實時性良好的中斷處理。在圖5的示例中,中斷等級比等級m更大時,作為第2類中斷啟動擴展中斷入口函數(shù)108。
如上所述,中斷控制裝置對于第2類中斷,在任意的中斷等級中不經(jīng)OS內(nèi)部的管理處理,而可以以良好的響應(yīng)性啟動用戶函數(shù)獨享的中斷處理。
還有,也可以取代圖7所示的中斷控制,而執(zhí)行圖8所示的中斷控制處理。圖8與圖7相比不同之處為,取代步驟S405而執(zhí)行步驟S504~S508。因為圖8的步驟S501~S503、S509分別與圖7的步驟S401~S404相同,所以省略其說明,并且以不同之處為重點進行說明。
S504~S508的處理表示利用由第2類中斷調(diào)出的擴展中斷入口函數(shù)的中斷處理,或者通過擴展中斷入口函數(shù)調(diào)出的中斷處理。
首先,通過啟動擴展中斷入口函數(shù),先禁止其他中斷處理的輸入(S504)。這種禁止可以是通過對中斷控制器102的屏蔽寄存器設(shè)定進行變更,而對可屏蔽中斷的全部或一部分進行禁止。接著,對當(dāng)前執(zhí)行中的進程上下文(CPU各種控制寄存器的數(shù)據(jù)等)進行保存(S505),選擇執(zhí)行與發(fā)生了中斷的資源對應(yīng)的用戶中斷處理程序109a等(S506),在用戶的中斷處理程序結(jié)束后恢復(fù)所保存的上下文(S507),將中斷輸入的禁止予以解除(S508)。
根據(jù)該中斷控制處理,由于禁止其他的中斷輸入,因而能夠更可靠地執(zhí)行中斷處理。其結(jié)果,可以更可靠地保證實時性。還有,中斷禁止及其解除也可以根據(jù)在中斷處理過程中所需的實時性而進行。例如,也可以在通過S504加以禁止之后,在實時處理完成之時予以解除。
這樣,可以實現(xiàn)應(yīng)用程序所管理的第2類中斷和由OS所管理的第1類中斷的排他控制。在圖5的示例中,第1類中斷和第2類中斷之間的多路復(fù)用協(xié)調(diào)本身,因為按照中斷等級分開第1類和第2類,所以不經(jīng)OS而由CPU來實現(xiàn)。因此,無需另外設(shè)置對第1類中斷和第2類中斷進行協(xié)調(diào)的機構(gòu),而在向第2類的中斷處理轉(zhuǎn)移中,也不發(fā)生處理延遲。
另外,在圖5中表示了根據(jù)所發(fā)生的中斷比等級m靠上還是在其以下來區(qū)分是第1類還是第2類的示例,但是也可以將中斷等級單獨設(shè)定為第1類還是第2類。圖9表示,此時為每個中斷等級使之與第1類或第2類的任一個任意相對應(yīng)的管理表格一個示例。
另外,在圖9及圖5中,也可以沒有圖6所示的注冊步驟,而預(yù)先注冊各自的中斷入口函數(shù)。
(實施方式2)
圖10是表示本發(fā)明實施方式2中的中斷控制裝置系統(tǒng)結(jié)構(gòu)的框圖。該圖與圖4的系統(tǒng)結(jié)構(gòu)相比主要不同之處在于,具備進程ID通知部114,用于應(yīng)用程序?qū)S通知本進程的ID;TLB更新部117,用來根據(jù)OS內(nèi)從上述應(yīng)用程序所通知的進程ID對CPU的TLB進行更新。另外,在該圖中表明,在CPU內(nèi)具備頁表115,是虛擬存儲用的虛擬地址和實際地址之間的對應(yīng)表;TLB116,用于根據(jù)頁表115對與執(zhí)行中的進程對應(yīng)的頁數(shù)據(jù)進行暫時緩存。
在圖10的中斷控制裝置中,采用圖11所示的流程圖來說明應(yīng)用程序?qū)χ袛嗳肟诤瘮?shù)進行注冊的處理。在圖11的流程圖中表示出,將圖6所示的由用戶準(zhǔn)備的中斷處理程序(擴展中斷入口函數(shù))向CPU內(nèi)的中斷向量寄存器進行注冊的步驟以及進程ID的通知步驟。因為與圖6相同號的步驟是相同的處理內(nèi)容,所以省略其說明,并且以不同的步驟為重點進行說明。
應(yīng)用程序在與所通知的資源編號對應(yīng)的向量寄存器處于向量表格中的情況(S304)下,通過API(Application Program Interface)從OS取得本進程的進程ID(S801),并將所取得的進程ID通知給OS(S802)。收到該通知后的OS在TLB更新部117內(nèi)存儲所通知的進程ID和中斷等級。
借此,完成從應(yīng)用程序向OS的進程ID的通知以及OS內(nèi)TLB更新部117中的進程ID的存儲。
接著,圖12是表示在圖11中的注冊處理后實際發(fā)生了中斷時的中斷控制處理的流程圖。圖12與圖8所示的中斷控制處理相比不同之處在于,在步驟S505和S506之間追加了步驟S901。因為與圖8相同號的步驟是相同的處理內(nèi)容,所以省略其說明,并且以不同之處為重點進行說明。
在執(zhí)行擴展中斷入口函數(shù)的過程中,在保存上下文(S505)之后,給TLB更新部117發(fā)出TLB的更新指令,收到該指令后的TLB更新部117將所通知的進程ID的頁數(shù)據(jù)從頁表讀出,將其存儲到TLB116中(S901)。這樣,由于根據(jù)進程ID來更新TLB116,因而可以參照用戶進程空間地址。
根據(jù)上面,可以將與應(yīng)用程序所管理的第2類中斷對應(yīng)的中斷處理函數(shù),安裝到作為與核心空間不同空間的應(yīng)用程序的用戶進程空間。
另外,由于在發(fā)生中斷后,從擴展中斷入口處理(核心空間)向應(yīng)用程序所管理的中斷處理函數(shù)(用戶進程空間)進行轉(zhuǎn)移,但不通過核心內(nèi)的調(diào)度程序106,因而沒有妨礙中斷響應(yīng)性的狀況。
還有,本發(fā)明并不限定為上述的各實施示例,而可以在不脫離其宗旨的范圍內(nèi)進行各種變形并實施。
本發(fā)明適合于作為控制計算機系統(tǒng)的OS一部分對來自將發(fā)生中斷的中斷資源之中斷進行控制的中斷控制裝置,特別適合于將計算機系統(tǒng)上的中斷資源、由OS和應(yīng)用程序分別管理各自中斷的中斷控制裝置、中斷控制方法及程序。
以上用實施例結(jié)合附圖充分地說明了本發(fā)明,但需要注意的是本領(lǐng)域的技術(shù)人員可以進行各種改變和變更。因此,除非該改變和變更超出了本發(fā)明的范圍,否則它們應(yīng)可以被本發(fā)明所解釋。
權(quán)利要求
1.一種中斷控制裝置,用來對來自發(fā)生中斷的中斷資源的中斷進行控制,來作為控制計算機系統(tǒng)的OS一部分,其特征為,具備表格機構(gòu),用來保持地址信息,該地址信息分別對應(yīng)于中斷資源之中OS所管理的第1類中斷資源以及OS不管理的第2類中斷資源;啟動機構(gòu),對于第1類中斷資源所發(fā)生的中斷,根據(jù)表格機構(gòu)的地址信息啟動第1控制處理,該第1控制處理包含與第1類中斷資源共用的管理處理,而對于第2類中斷資源所發(fā)生的中斷,根據(jù)表格機構(gòu)的地址信息啟動第2控制處理,該第2控制處理不包含上述管理處理。
2.根據(jù)權(quán)利要求1所述的中斷控制裝置,其特征為上述啟動機構(gòu)在上述第2控制處理中,依次執(zhí)行上下文(context)的保存、與發(fā)生了中斷的第2類中斷資源對應(yīng)的中斷處理、以及所保存的上下文的恢復(fù)。
3.根據(jù)權(quán)利要求1所述的中斷控制裝置,其特征為上述中斷控制裝置還具有受理機構(gòu),用來從應(yīng)用程序受理表示特定的中斷資源和地址信息的通知,上述表格機構(gòu)按照由受理機構(gòu)所受理的通知,來保持與第2類中斷資源對應(yīng)的地址信息。
4.根據(jù)權(quán)利要求3所述的中斷控制裝置,其特征為上述啟動機構(gòu)在上述第2控制處理中,依次執(zhí)行上下文的保存、與發(fā)生了中斷的第2類中斷資源對應(yīng)的中斷處理以及所保存上下文的恢復(fù)。
5.根據(jù)權(quán)利要求4所述的中斷控制裝置,其特征為上述啟動機構(gòu)在上述第2控制處理中,在開始上述上下文保存之前禁止其他的中斷輸入,在上述第2控制處理完成前解除上述中斷輸入的禁止。
6.根據(jù)權(quán)利要求4所述的中斷控制裝置,其特征為,上述中斷控制裝置還具備轉(zhuǎn)換緩沖器,用來對虛擬存儲用的頁表之中與執(zhí)行中的進程對應(yīng)的頁數(shù)據(jù)進行緩存;更新機構(gòu),用來在上述第2控制處理中更新上述轉(zhuǎn)換緩沖器,以便在上述中斷處理執(zhí)行前保持與該中斷處理對應(yīng)的頁數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的中斷控制裝置,其特征為上述受理機構(gòu)還從應(yīng)用程序受理下述通知,該通知表示與第2類中斷資源對應(yīng)的中斷處理的進程ID,上述更新機構(gòu)根據(jù)由受理機構(gòu)所受理的通知中所示的進程ID,從上述頁表讀出上述頁數(shù)據(jù),將其存儲到上述轉(zhuǎn)換緩沖器中。
8.根據(jù)權(quán)利要求1所述的中斷控制裝置,其特征為上述表格機構(gòu)還為每個中斷資源保持中斷等級和表示是上述第1類還是第2類的分類,上述啟動機構(gòu)根據(jù)所發(fā)生中斷的中斷等級和表格機構(gòu)中所保持的分類,來判別是第1類和第2類的哪一類。
9.根據(jù)權(quán)利要求8所述的中斷控制裝置,其特征為上述中斷控制裝置還具有受理機構(gòu),用來從應(yīng)用程序受理表示特定的中斷資源和地址信息的通知,上述表格機構(gòu)按照由受理機構(gòu)所受理的通知,來保持與第2類中斷資源對應(yīng)的地址信息。
10.根據(jù)權(quán)利要求9所述的中斷控制裝置,其特征為上述啟動機構(gòu)在上述第2控制處理中,依次執(zhí)行上下文的保存、與發(fā)生了中斷的第2類中斷資源對應(yīng)的中斷處理以及所保存上下文的恢復(fù)。
11.根據(jù)權(quán)利要求10所述的中斷控制裝置,其特征為上述啟動機構(gòu)在上述第2控制處理中,在開始上述上下文保存之前禁止其他的中斷輸入,在上述第2控制處理完成前解除上述中斷輸入的禁止。
12.根據(jù)權(quán)利要求10所述的中斷控制裝置,其特征為上述中斷控制裝置還具備轉(zhuǎn)換緩沖器,用來對虛擬存儲用的頁表之中與執(zhí)行中的進程對應(yīng)的頁數(shù)據(jù)進行緩存;更新機構(gòu),用來在上述第2控制處理中更新上述轉(zhuǎn)換緩沖器,以便在上述中斷處理執(zhí)行前保持與該中斷處理對應(yīng)的頁數(shù)據(jù)。
13.根據(jù)權(quán)利要求12所述的中斷控制裝置,其特征為上述受理機構(gòu)還從應(yīng)用程序受理下述通知,該通知表示與第2類中斷資源對應(yīng)的中斷處理的進程ID,上述更新機構(gòu)根據(jù)由受理機構(gòu)所受理的通知中所示的進程ID,從上述頁表讀出上述頁數(shù)據(jù),將其存儲到上述轉(zhuǎn)換緩沖器中。
14.根據(jù)權(quán)利要求1到6的任一項所述的中斷控制裝置,其特征為上述啟動機構(gòu)對所發(fā)生中斷的中斷等級和指定等級的優(yōu)先順序進行比較,來判別是上述第1類和第2類的哪一類。
15.根據(jù)權(quán)利要求14所述的中斷控制裝置,其特征為上述中斷控制裝置還具有受理機構(gòu),用來從應(yīng)用程序受理表示特定的中斷資源和地址信息的通知,上述表格機構(gòu)按照由受理機構(gòu)所受理的通知,來保持與第2類中斷資源對應(yīng)的地址信息。
16.根據(jù)權(quán)利要求14所述的中斷控制裝置,其特征為上述啟動機構(gòu)在上述第2控制處理中,依次執(zhí)行上下文的保存、與發(fā)生了中斷的第2類中斷資源對應(yīng)的中斷處理以及所保存上下文的恢復(fù)。
17.根據(jù)權(quán)利要求16所述的中斷控制裝置,其特征為上述啟動機構(gòu)在上述第2控制處理中,在開始上述上下文保存之前禁止其他的中斷輸入,在上述第2控制處理完成前解除上述中斷輸入的禁止。
18.根據(jù)權(quán)利要求16所述的中斷控制裝置,其特征為,上述中斷控制機構(gòu),還具備轉(zhuǎn)換緩沖器,用來對虛擬存儲用的頁表之中與執(zhí)行中的進程對應(yīng)的頁數(shù)據(jù)進行緩存;更新機構(gòu),用來在上述第2控制處理中更新上述轉(zhuǎn)換緩沖器,以便在上述中斷處理執(zhí)行前保持與該中斷處理對應(yīng)的頁數(shù)據(jù)。
19.根據(jù)權(quán)利要求18所述的中斷控制裝置,其特征為上述受理機構(gòu)還從應(yīng)用程序受理下述通知,該通知表示與第2類中斷資源對應(yīng)的中斷處理的進程ID,上述更新機構(gòu)根據(jù)由受理機構(gòu)所受理的通知中所示的進程ID,從上述頁表讀出上述頁數(shù)據(jù),將其存儲到上述轉(zhuǎn)換緩沖器中。
20.一種中斷控制方法,用來對來自發(fā)生中斷的中斷資源的中斷進行控制,作為控制計算機系統(tǒng)的OS一部分,其特征為,具有受理步驟,用來從應(yīng)用程序受理表示特定的中斷資源和地址信息的通知;追加步驟,在對中斷資源中與OS所管理的第1類中斷資源對應(yīng)的地址信息進行保持的管理表中,根據(jù)受理機構(gòu)受理的通知來追加與OS不管理的第2類中斷資源對應(yīng)的地址信息;啟動步驟,用來對于第1類中斷資源所發(fā)生的中斷,根據(jù)表格機構(gòu)的地址信息啟動第1控制處理,該第1控制處理包含對第1類中斷資源共用的管理處理,對于第2類中斷資源所發(fā)生的中斷,根據(jù)表格機構(gòu)的地址信息啟動第2控制處理,該第2控制處理不包含上述管理處理。
21.一種程序,用來對來自發(fā)生中斷的中斷資源的中斷進行控制,作為控制計算機系統(tǒng)的OS一部分,其特征為,上述程序使計算機執(zhí)行受理步驟,用來從應(yīng)用程序受理表示特定的中斷資源和地址信息的通知;追加步驟,在對中斷資源中與OS所管理的第1類中斷資源對應(yīng)的地址信息進行保持的管理表中,根據(jù)由受理機構(gòu)所受理的通知來追加與OS不管理的第2類中斷資源對應(yīng)的地址信息;啟動步驟,用來對于第1類中斷資源所發(fā)生的中斷,根據(jù)表格機構(gòu)的地址信息啟動第1控制處理,該第1控制處理包含對第1類中斷資源共用的管理處理,對于第2類中斷資源所發(fā)生的中斷,根據(jù)表格機構(gòu)的地址信息啟動第2控制處理,該第2控制處理不包含上述管理處理。
全文摘要
本發(fā)明的中斷控制裝置具備中斷向量寄存器,用來分別保持地址信息,該地址信息對應(yīng)于中斷資源之中OS所管理的第1類中斷資源及OS不管理的第2類中斷資源,對于OS管理的第1類中斷資源所發(fā)生的中斷,根據(jù)中斷向量寄存器的地址信息啟動共用中斷入口函數(shù),該共用中斷函數(shù)對第1類中斷資源共用并且作為調(diào)度處理的對象,對于用戶管理的第2類中斷資源所發(fā)生的中斷,根據(jù)中斷向量寄存器的地址信息啟動擴展中斷入口函數(shù),該擴展中斷入口函數(shù)不是上述調(diào)度處理的對象。
文檔編號G06F9/48GK1637712SQ200410104699
公開日2005年7月13日 申請日期2004年12月27日 優(yōu)先權(quán)日2003年12月25日
發(fā)明者喜多村啟, 淺井登, 安武剛一 申請人:松下電器產(chǎn)業(yè)株式會社