專利名稱:安裝中斷事件處理程序的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種中斷服務機制,尤其涉及一種針對沒有對應的外圍組件互連 (Peripheral Component hterconnect,簡稱為PCI)裝置的中斷事件的安裝中斷事件處 理程序的方法。
背景技術(shù):
中斷請求(Interrupt Request,簡稱為IRQ)是在某個裝置要進行特定的動作 時,用以通知并要求中央處理單元暫停工作,使得中央處理單元執(zhí)行對應的計算動作。傳 統(tǒng)的電腦采用可程序化中斷控制器(Programmable Interrupt Controller,簡稱為PIC) 或進階可程序化中斷控制器(Advanced Programmable Interrupt Controller,簡稱為 APIC)來接收中斷請求,并發(fā)出對應的中斷信號至中央處理單元。一般而言,在操作系統(tǒng)之下,例如,當發(fā)生熱插拔之類的應用時,外圍裝置會發(fā) 出中斷事件(event)去觸發(fā)中斷來啟動對應的中斷事件處理程序(interrupt event handler)。然而,此中斷、沒有對應的夕卜圍組件互連(Peripheral Component Interconnect, 簡稱為PCI)裝置存在于電腦系統(tǒng)中,也就無法與其它PCI裝置共用中斷請求,因此操作系 統(tǒng)找不到此中斷對應的處理程序,因此,操作系統(tǒng)便無法服務此中斷事件。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種安裝中斷事件處理程序的方法,以針對沒有對應的外圍 組件互連(Peripheral Component Interconnect,簡稱為PCI)裝置的中斷事件來安裝中 斷事件處理程序。本發(fā)明實施例提供一種安裝中斷事件處理程序的方法,適用于一電腦系統(tǒng)在操作 系統(tǒng)下利用中斷事件處理程序來服務一中斷事件。在此,電腦系統(tǒng)包括基本輸入輸出系 統(tǒng)(Basic Input Output System,簡稱為BI0S)以及多功能外圍組件互連(Peripheral Component Interconnect,簡稱為PCI)裝置,其中多功能外圍組件互連裝置具有沒使用或 虛擬的中斷引腳。此方法包括通過基本輸入輸出系統(tǒng)在多功能外圍組件互連中建立一虛 擬功能,并選擇未使用或虛擬的中斷引腳其中之一,以通過所選擇的中斷引腳與虛擬功能 來模擬一虛擬接口裝置;通過基本輸入輸出系統(tǒng)將虛擬接口裝置的中斷相關(guān)數(shù)據(jù)記錄至中 斷路由表;通過操作系統(tǒng)依據(jù)中斷路由表設(shè)定并取得虛擬接口裝置的中斷編號;以及通過 操作系統(tǒng)依據(jù)中斷編號,安裝中斷事件處理程序。在本發(fā)明的一實施例中,上述由操作系統(tǒng)依據(jù)中斷路由表設(shè)定并取得虛擬接口裝 置的中斷編號的步驟包括根據(jù)中斷路由表所記錄的虛擬接口裝置的匯流排號碼、裝置號 碼以及中斷引腳號碼,設(shè)定并取得虛擬接口裝置的中斷編號。在本發(fā)明的一實施例中,上述通過操作系統(tǒng)依據(jù)中斷編號,安裝中斷事件處理程 序的步驟包括依據(jù)中斷編號,通過操作系統(tǒng)將中斷事件處理程序安裝至中斷向量表的相 對應的中斷編號欄位內(nèi)。
在本發(fā)明的一實施例中,上述中斷路由表包括可程序中斷控制器(Programmable Interrupt Controller,簡稱為PIC)的中斷要求路由(IRQRouting)表格、多重處理器規(guī) 范(Multi-Processor Specification,簡稱為MPS)組態(tài)表格以及進階組態(tài)與電源接口 (Advanced Configuration and Power Interface,簡禾爾為ACPI)表格。在本發(fā)明的一實施例中,上述安裝中斷事件處理程序的方法還包括通過基本 輸入輸出系統(tǒng)保留一中斷請求給虛擬接口裝置,并將中斷請求設(shè)定為位準觸發(fā)(level trigger)。在本發(fā)明的一實施例中,上述多功能外圍組件互連裝置不會被禁能?;谏鲜?,本發(fā)明實施例通過現(xiàn)有的PCI裝置來模擬一虛擬接口裝置,以將硬件 裝置所發(fā)出的中斷事件連接到任意的中斷引腳,使得操作系統(tǒng)能夠安裝對應的中斷事件處 理程序來服務此中斷事件。為讓本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉實施例,并結(jié)合附圖作詳 細說明如下。
圖1是本發(fā)明一實施例的安裝中斷事件處理程序的方法流程圖。圖2是本發(fā)明一實施例的模擬一虛擬接口裝置的示意圖。主要元件符號說明200:電腦系統(tǒng);210:中央處理單元;220 北橋晶片;230 南橋晶片;240 =PIC控制器;250 布線暫存器;260 10 APIC 控制器; 270 =PCI 裝置;沘0:虛擬接口裝置;S105 S120 本發(fā)明一實施例的安裝中斷事件處理程序的方法各步驟。
具體實施例方式為了使本發(fā)明的內(nèi)容更為明了,以下特舉實施例作為本發(fā)明確實能夠據(jù)以實施的 范例。圖1是本發(fā)明一實施例的安裝中斷事件處理程序的方法流程圖。請參照圖1,在 步驟S105中,通過基本輸入輸出系統(tǒng)(Basic Input Output System,簡稱為BI0S)模擬 一虛擬接口裝置。具體而言,BIOS在多功能外圍組件互連(multi-function PCI device) 裝置中建立一虛擬功能,并在此多功能PCI裝置的未使用或虛擬的中斷引腳中選擇其中之 一,以通過此中斷引腳與虛擬功能來模擬一個虛擬接口裝置。舉例來說,圖2是本發(fā)明一實施例的模擬一虛擬接口裝置的示意圖。請參照圖2, 在本實施例中,電腦系統(tǒng)200包括中央處理單元210、北橋晶片220以及南橋晶片230。南 橋晶片230包括可程序中斷控制器(Programmable Interrupt Controller,簡稱為PIC 控制器)240、布線(routing)暫存器250、輸入輸出進階可程序中斷控制器(10 Advanced Programmable Interrupt Controller,簡稱為10 APIC 控制器)260 以及 PCI 裝置 270。PIC控制器240與10 APIC控制器260用以接收外圍裝置(未示出)所發(fā)出的中斷請求,以產(chǎn)生對應的PCI中斷信號并傳送至中央處理單元210,即可令中央處理單元210 回應此PCI中斷信號而啟動并執(zhí)行對應的中斷事件處理程序。在本實施例中,BI0S(未示出)在電腦系統(tǒng)200中尋找一個不會被禁能的多功能 PCI裝置,例如南橋晶片230中的PCI裝置270,以利用PCI裝置270來模擬一虛擬接口裝 置。在此,PCI裝置270具有多個功能(function 0 6),以及中斷引腳INT A、B。由于 PCI裝置270僅有并使用INT A、B,故INT C、D為不存在的中斷引腳(也就是虛擬的中斷引 腳)。因此BIOS便選擇一個不存在的中斷引腳(例如,INT C),并從PCI裝置270中建立 一個不存在的功能(例如,function 7),藉以模擬一個不存在的虛擬接口裝置觀0,也就是 具有中斷引腳INT C的虛擬PCI裝置bus0/device31/function 7。在此,本實施例的中斷事件例如為硬件裝置的熱插拔(hot plug)中斷事件。由于 熱插拔中斷事件沒有對應的PCI裝置,因此通過PCI裝置270的中斷引腳INT C與function 7所模擬的虛擬接口裝置觀0,使得中央處理單元210認為熱插拔中斷事件是由虛擬接口裝 置280所發(fā)出來的。虛擬接口裝置280經(jīng)由路徑PIRQ G連接至南橋晶片230的PIRQ G引腳,且其對 應的布線暫存器250中為PIRQ G暫存器(其暫存器位址例如為6Ah),其儲存一中斷請求編 號,例如IRQ5。另外,虛擬接口裝置280還連接至IOAPIC控制器洸0的中斷引腳22。在模擬上述虛擬接口裝置280之后,接著返回圖1,在步驟S 110中,通過BIOS 將虛擬接口裝置觀0的中斷相關(guān)數(shù)據(jù)記錄至中斷路由表。一般而言,BIOS提供的中斷路 由表包括可程序中斷控制器(Programmable Interrupt Controller,簡稱為PIC)的中 斷要求路由(IRQ Routing)表格、多重處理器規(guī)范(Multi-Processor Specification, 簡稱為MPQ組態(tài)表格以及進階組態(tài)與電源接口(Advanced Configuration and Power hterface,簡稱為ACPI)表格,以供操作系統(tǒng)在標準模式(PIC)、MPS模式(APIC)或是 ACPI模式(PIC或APIC)下使用。進一步地說,操作系統(tǒng)為PIC模式時,BIOS會保留一中斷請求給虛擬接口裝置 觀0,并將中斷請求設(shè)定為位準觸發(fā)(level trigger)。并且,BIOS會在PIR(PCI Interrupt Request)表格中建立一個項目(entry)以記錄虛擬接口裝置觀0的中斷相關(guān)數(shù)據(jù)。舉例來說,以圖2而言,PIR表格的項目例如為:<00h,0F8h,0062h,0DC58h,0061h, 0DC58h, 006Ah, 00020h, 0000,00000,00,0>。其中,OOh 代表匯流排號碼為 0 ;0F8h 代表裝置 號碼為 31 ;“0062h,0DC58h”、“0061h,0DC58h”、“006Ah,00020h”、“0000,00000” 分別代表 INT A、B、C、D的暫存器位址與可用中斷請求編號的位元映像(bitmap)。也就是說,匯流排 號碼0/裝置號碼31的PCI裝置的中斷引腳INT C(虛擬接口裝置280所使用的中斷引腳) 被連接至暫存器位址為6Ah的中斷路由器(interrupt router),且可用的中斷請求號碼為 5。再者,在PIC 模式時,BIOS 也會于 ACPI 表格的 AML (ACPI MachineLanguage)程 序的程序(method)_PRT中建立此虛擬接口裝置的項目。以圖2而言,此項目例如為 Package () {OxOOlFFFFF,2,LNKG,0},其中,001F 代表裝置號碼為 31,2 代表 INT C,程序 (method) LNKG則是用來回報IRQ的號碼。另外,在MPS模式時,BIOS同樣在MPS表格中建立一項目。以圖2而言,此項目可 分為來源(resource)與目的(destination)。來源記錄了匯流排號碼、中斷引腳號碼與裝置號碼,例如,“0:PCI,7eh: INT_C#lfh”,0代表匯流排號碼,Ifh代表裝置號碼。而目的記錄 T IO APIC控制器沈0的識別碼、中斷引腳編號、極性(polarity)、觸發(fā)條件等,例如,“2, 22,Low,Level,INT”,2代表IO APIC控制器260的識別碼,22代表中斷引腳編號,Low代表 低位極性,Level代表水平觸發(fā);也就是說編號為2的IO APIC控制器260其中斷引腳22 將于低位水平時被觸發(fā)中斷。此外,在ACPI APIC模式時,在ACPI表格中的AML程序的程序(method)_PRT建 立虛擬接口裝置的項目。例如為=Package () {OxOOlFFFFF,2,0,22},其中,OOlF代表裝置號 碼,2代表INT C,22代表10 APIC控制器的全域中斷引腳號碼;也就是說匯流排號碼0/裝 置號碼31的PCI裝置的中斷引腳INTC(虛擬接口裝置280所使用的中斷引腳)將被連接 于全域中斷引腳號碼為22的中斷引腳。之后,在步驟S115中,操作系統(tǒng)便能夠依據(jù)中斷路由表,設(shè)定并取得虛擬接口裝 置的中斷編號。進一步地說,可由中斷事件處理程序的初始化程序呼叫操作系統(tǒng)去取得中 斷編號。而操作系統(tǒng)則是根據(jù)中斷路由表所記錄的虛擬接口裝置的匯流排號碼、裝置號碼 以及中斷引腳號碼對南橋晶片230、北橋晶片220進行設(shè)定,以取得虛擬接口裝置觀0的中 斷編號。最后,在步驟S120中,操作系統(tǒng)依據(jù)中斷編號,安裝中斷事件處理程序。也就是 說,在存儲器里面有一個中斷向量表,操作系統(tǒng)會將中斷事件處理程序的進入點寫入中斷 向量表中的相對應中斷編號的欄位內(nèi),故當中央處理單元210收到中斷時,其會去中斷向 量表中讀取中斷編號所對應的值,以取得中斷事件處理程序的進入點,并將中央處理單元 (Central Processing Unit,簡稱為CPU)210的控制權(quán)交于此進入點。以硬件裝置熱插拔的中斷事件處理程序而言,當硬件裝置被熱拔除時,中斷事件 處理程序會去檢查哪一個硬件裝置被移除,并通知其它的應用程序或服務程序此硬件裝置 已被移除,令其做出適當?shù)幕貞?。例如,將硬件裝置的圖示(icon)設(shè)定為移除狀態(tài),并且通 知操作系統(tǒng)去卸載(uninstall)硬件裝置控制器的驅(qū)動程序。另一方面,當硬件裝裝被熱 插入時,中斷事件處理程序便會去檢查哪一個硬件裝置被插入,并通知其它的應用程序或 服務程序此硬件裝置已被插入,令其做出適當?shù)幕貞?。例如,將硬件裝置的圖示(icon)設(shè) 定為插入狀態(tài),并且通知操作系統(tǒng)去安裝硬件裝置控制器的驅(qū)動程序。綜上所述,上述實施例是基于在一個PCI裝置上模擬出一個虛擬功能,且基于此 PCI裝置的虛擬功能使得操作系統(tǒng)能夠正確地將中斷事件處理程序安裝至正確的中斷向量 表的中斷編號欄位內(nèi)。也就是說,由于此中斷事件并沒有對應的PCI裝置,因此模擬出一個 虛擬接口裝置使得中央處理單元認為上述中斷事件是由此PCI裝置所發(fā)出。據(jù)此,通過上 述實施例方法,可將硬件所發(fā)出的中斷事件連接到任意的中斷引腳,使得操作系統(tǒng)能夠安 裝對應的中斷事件處理程序來服務此中斷事件。最后應說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案而非對其進行限制, 盡管參照較佳實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應當理解其依 然可以對本發(fā)明的技術(shù)方案進行修改或者等同替換,而這些修改或者等同替換亦不能使修 改后的技術(shù)方案脫離本發(fā)明技術(shù)方案的精神和范圍。權(quán)利要求
1.一種安裝中斷事件處理程序的方法,適用于電腦系統(tǒng)在操作系統(tǒng)下利用所述中斷事 件處理程序服務中斷事件,所述電腦系統(tǒng)包括基本輸入輸出系統(tǒng)以及多功能外圍組件互連 裝置,其中所述多功能外圍組件互連裝置包括未使用或虛擬的多個中斷引腳,所述方法包 括通過所述基本輸入輸出系統(tǒng)在所述多功能外圍組件互連裝置中建立虛擬功能,并選擇 未使用或虛擬的所述多個中斷引腳其中之一,以通過所述中斷引腳與所述虛擬功能來模擬 虛擬接口裝置;通過所述基本輸入輸出系統(tǒng)將所述虛擬接口裝置的中斷相關(guān)數(shù)據(jù)記錄至中斷路由表;通過所述操作系統(tǒng)依據(jù)所述中斷路由表設(shè)定并取得所述虛擬接口裝置的中斷編號;以及通過所述操作系統(tǒng)依據(jù)所述中斷編號,安裝所述中斷事件處理程序。
2.根據(jù)權(quán)利要求1所述的安裝中斷事件處理程序的方法,其中由所述操作系統(tǒng)依據(jù)所 述中斷路由表取得所述虛擬接口裝置的所述中斷編號的步驟,包括根據(jù)所述中斷路由表所記錄的所述虛擬接口裝置的匯流排號碼、裝置號碼以及中斷引 腳號碼,取得所述虛擬接口裝置的所述中斷編號。
3.根據(jù)權(quán)利要求1所述的安裝中斷事件處理程序的方法,其中通過所述操作系統(tǒng)依據(jù) 所述中斷編號,安裝所述中斷事件處理程序的步驟,包括依據(jù)所述中斷編號,通過所述操作系統(tǒng)將所述中斷事件處理程序安裝至中斷向量表的 相對應的中斷編號欄位內(nèi)。
4.根據(jù)權(quán)利要求1所述的安裝中斷事件處理程序的方法,其中所述中斷路由表包括可 程序中斷控制器的中斷要求路由表格、多重處理器規(guī)范組態(tài)表格以及進階組態(tài)與電源接口 表格。
5.根據(jù)權(quán)利要求1所述的安裝中斷事件處理程序的方法,還包括所述基本輸入輸出系統(tǒng)保留中斷請求給所述虛擬接口裝置,并將所述中斷請求設(shè)定為 位準觸發(fā)。
6.根據(jù)權(quán)利要求1所述的安裝中斷事件處理程序的方法,其中所述多功能外圍組件互 連裝置不會被禁能。
全文摘要
本發(fā)明涉及一種安裝中斷事件處理程序的方法,所述方法適用于一電腦系統(tǒng)在操作系統(tǒng)下安裝中斷事件處理程序來服務一中斷事件。在本方法中,通過基本輸入輸出系統(tǒng)建立多功能外圍組件互連裝置的虛擬功能,并選擇其中一未使用或虛擬的中斷引腳,以通過上述中斷引腳與虛擬功能來模擬一虛擬接口裝置。接著,通過基本輸入輸出系統(tǒng)將虛擬接口裝置的中斷相關(guān)數(shù)據(jù)記錄至中斷路由表。之后,通過操作系統(tǒng)依據(jù)中斷路由表設(shè)定并取得虛擬接口裝置的中斷編號,以依據(jù)中斷編號來安裝中斷事件處理程序。本發(fā)明提供的安裝中斷事件處理程序的方法,以針對沒有對應的外圍組件互連裝置的中斷事件來安裝中斷事件處理程序。
文檔編號G06F9/445GK102043643SQ20091020413
公開日2011年5月4日 申請日期2009年10月15日 優(yōu)先權(quán)日2009年10月15日
發(fā)明者盧盈志, 王郁蕙 申請人:英業(yè)達股份有限公司