使用作業系統可見中斷處理來處理熱鍵輸入的方法和設備的製作方法
2023-06-01 15:32:11 3
專利名稱:使用作業系統可見中斷處理來處理熱鍵輸入的方法和設備的製作方法
技術領域:
本發明的實施例涉及中斷處理。尤其是,示例性實施例涉及使用作業系統可見中斷的中斷處理系統。
背景技術:
典型的計算機系統中,很多裝置同時運行,例如存儲驅動、印表機和人工輸入裝置。中斷系統用於有效地利用處理器時間和資源。當一個裝置具有被處理器處理的信息或在計算機系統中發生事件時,產生中斷信號。當該中斷信號被處理器接收時,處理器停止執行當前運行的程序且執行中斷處理程序以服務產生中斷信號的裝置或事件。當裝置或事件已經被服務時,處理器返回執行被中斷的程序。
系統管理中斷(SMI)是一種作業系統(OS)透明中斷,它可以由計算機系統中的某些裝置或系統事件產生。當執行對應於產生SMI的裝置或系統事件的中斷處理程序時,服務SMI可能產生一些延時。當從中斷處理程序返回時,這可能導致作業系統(OS)中的出錯,因為OS不知道中斷服務,而是當CPU運行中斷處理程序例如時間記錄中的間隙時,在處理其它程序中檢測由於延時導致的不一致和類似問題。
典型的計算機系統通常管理電源狀態(例如,提供給裝置或裝置消耗的電源的電平)和附屬於系統的裝置的配置。計算機系統中運行的作業系統可以使用諸如高級配置和電源接口(ACPI)這樣的接口來管理計算機系統中的電源狀態和裝置配置。ACPI提供一組數據結構和方法,當與基本輸入輸出系統(BIOS)和執行配置或電源管理所必須的主板硬體相連接時,為作業系統所用。
附圖簡述本發明的實施例以附圖中所示的實例方式而非限制方式闡述,附圖中,相同的標記表示相似的元件。應當理解對於該公開說明中的「一」或「一個」的不同標記不必指相同的實施例,這些標記表示至少一個。
圖1是實現改善的中斷處理系統的計算機系統的實施例的圖示。
圖2是用於改善的中斷處理的過程的實施例的流程圖。
圖3是中斷處理表和描述塊的實施例的圖示。
發明詳述圖1是計算機系統的一個實施例的圖示。一個實施例中,計算機系統101可以包括中央處理單元(CPU)103以執行指令。另一個實施例中,計算機系統101可以包括多個處理器。CPU 103可以位於主板中或可以與主板連接。在具有多個處理器的實施例中,每個處理器可以位於相同的主板中或與之連接,或可以位於分離的主板中。CPU 103可以與存儲集線器105或類似裝置通信。
一個實施例中,存儲集線器105提供CPU 103和系統存儲器109、輸入輸出(I/O)集線器111和類似裝置(例如圖形處理器107)之間的通信鏈路。一個實施例中,存儲集線器105可以是「北橋」晶片集或類似裝置。
一個實施例中,系統存儲器109可以是隨機訪問存儲器(RAM)模塊或模塊組。一個實施例中,系統存儲器109可以是同步動態隨機訪問存儲器(SDRAM)、雙倍速率(DDR)RAM或類似的存儲器存儲裝置。系統存儲器109可以被計算機系統101所用以存儲應用數據、配置數據或類似數據。系統存儲器109可以是易失性存儲器,它在計算機系統101電源關閉後丟失數據。
一個實施例中,其它裝置可以連接到存儲集線器105,例如圖形處理器107。圖形處理器107可以直接位於主板上。另一個實施例中,圖形處理器107可以位於分離的板上,該分離的板通過互連或埠與主板連接。例如,圖形處理器107可以位於外圍卡上,該外圍卡通過高級圖形埠(AGP)插槽或類似連接與主板相連。圖形卡或圖形處理器107可以與顯示裝置123相連。一個實施例中,顯示裝置123可以是陰極射線管(CRT)裝置、液晶顯示器(LCD)、等離子體裝置或類似顯示裝置。
一個實施例中,存儲集線器105可以與I/O集線器111通信。I/O集線器提供與一組I/O裝置和類似裝置例如存儲裝置121、快閃記憶體115、嵌入式控制器117、網絡裝置113和類似裝置的通信。一個實施例中,I/O集線器111可以是「南橋」晶片集或類似裝置。另一個實施例中,存儲集線器105和I/O集線器111可以是單個裝置。
一個實施例中,高級可編程中斷控制器(APIC)125可以與I/O集線器111和CPU 103相通信。APIC 125是一種裝置,它可以處理源自多個CPU的中斷或為多個CPU處理中斷。APIC 125可以與其它裝置(可能是最終中斷源)相連。APIC 125可以將這些中斷請求傳遞到I/O中心111或直接傳遞到CPU 103。
一個實施例中,存儲裝置121是非易失性存儲裝置,例如硬碟、物理驅動、光學驅動、磁驅動或類似裝置。存儲裝置121可以用於存儲應用數據、作業系統數據和類似系統數據。一個實施例中,快閃記憶體115可以存儲系統配置信息、BIOS數據和類似信息。快閃記憶體可以是EEPROM、諸如CMOS的備用電池(battery backed up)存儲裝置或類似的非易失性存儲系統。
一個實施例中,嵌入式控制器可以與I/O集線器111相連。嵌入式控制器117是一種微控制器,它執行計算機系統101中複雜的低級操作。一個實施例中,嵌入式控制器117可以用作計算機系統101和輸入裝置119之間接口的輸入裝置控制器。一個示例性實施例中,嵌入式控制器可以用作鍵盤控制器並接收作為鍵盤輸入的掃描碼。
一個實施例中,諸如網絡裝置113之類的其它裝置可以與I/O集線器111相通信。網絡裝置113可以是數據機、網卡、無線裝置或類似裝置。一個實施例中,網絡裝置113與主板集成。另一個實施例中,網絡裝置113是通過外圍卡互連(PCI)插槽或類似互連連接到主板的外圍卡。
圖2是改善的中斷處理操作過程的實施例的流程圖。一個實施例中,當發生必須被服務的系統事件時,改善的中斷處理被觸發(方框201)。一個實施例中,系統事件是從人工輸入裝置(HID)接收的輸入,HID裝置例如是鍵盤、滑鼠或類似輸入裝置。例如,用戶可以使用鍵盤輸入一個「熱鍵」或一組熱鍵。一個實施例中,熱鍵或熱鍵組可以是單個鍵輸入或一組鍵輸入。熱鍵可以用於初始化計算機系統的特定功能。例如,可以在一些計算機系統中使用控制鍵(CTRL)、備用鍵(ALT)、換檔鍵(SHIFT)和功能7鍵(F7)的組合,以將顯示輸出從所屬顯示器切換到膝上系統的外部顯示器。其它實例熱鍵組合包括CTRL+ALT+SHIFT+F4以初始化計算機系統的懸掛或等待狀態,以及CTRL+ALT+SHIFT+F3以初始化裝置(例如PC卡)的熱切換。
一個示例性實施例中,用戶可以通過按下輸入裝置19(例如鍵盤)上的CTRL+ALT+SHIFT+F7鍵來初始化顯示開關。鍵盤發送一組信號到嵌入式控制器117,該組信號被解釋為掃描碼或掃描碼組。掃描碼是按鍵或按鍵組合的數字編碼。
一個實施例中,在檢測到系統事件之後,通過檢測或發生裝置產生系統控制中斷(SCI)(方框203)。SCI可以用於將系統事件告知作業系統。SCI是主動的、低的、可共享級的中斷。一個示例性實施例中,當嵌入式控制器117檢測從鍵盤119接收的熱鍵的掃描碼或掃描碼組時,嵌入式控制器117可以產生SCI。所述SC I可以被發送到I/O集線器111。
一個實施例中,I/O集線器111可以檢測SCI並產生中斷請求(IRQ),該中斷請求可以通過存儲集線器105發送到CPU(方框205)。一個實施例中,可以存在十五個離散的IRQ指示符(例如0到15)。中斷控制器可以支持兩種或更多種操作模式。第一種模式可以支持十五個IRQ指示符。例如,具有8259PIC模式的APIC。第二種模式可以支持大數目,例如255。例如,APIC可以支持255個IRQ指示符。一個示例性實施例中,I/O集線器111可以從嵌入式控制器117接收SCI,並基於SCI源產生IRQ。例如,鍵盤產生的SCI可以被分配給IRQ2,或包括嵌入式控制器源的SCI可以被分配給IRQ9。
一個實施例中,當CPU 103接收IRQ時,中斷處理表可以用來為輸入的IRQ確定中斷處理程序(方框207)。一個實施例中,中斷描述符表(IDT)指向與IRQ線相關的第一中斷處理程序或優先級的位置。中斷處理程序可以是服務於特定類型中斷、或特定中斷源(例如鍵盤或其它裝置)的程序。
一個實施例中,SCI是電平觸發中斷。電平觸發中斷可以和多個裝置共享IRQ。中斷處理程序鍊表可以用於確定請求服務的中斷的類型。每個中斷處理程序檢查它的源類型是否需要服務,然後將控制發送到鍊表中的下一個中斷處理程序,直到中斷被清除為止。
圖3是中斷處理系統的一個實施例的圖示。在示意性中斷處理系統中,CPU一旦接收中斷,可以使用IDT 301發現對應於輸入的IRQ線或優選級的指針305。指針305可以指示第一中斷處理程序303。IRQ線或級可以被多個裝置使用。共享線和級的每個機制的中斷處理程序可以連結在一起。例如,如果第一中斷處理程序303不對應於該中斷的裝置或源,那麼可以調用第二中斷處理程序307。CPU可以從鍊表或中斷處理程序組中的第一中斷處理程序開始,且當它確定當前中斷處理程序不服務當前中斷類型或源時,前進到下一個中斷處理程序。
一個實施例中,發現中斷處理程序可以服務中斷請求。中斷處理程序可以包括指向對應於中斷裝置或源的定義塊309的指針(方框209)。該定義塊309可以包含涉及數據和控制方法形式的硬體執行和配置細節的信息。控制方法可以在ACPI源語言(ASL)代碼中,能夠使作業系統管理設置,例如裝置的速度、大小、電源狀態或類似配置細節。
示例性實施例中,第二中斷處理程序307可以是嵌入式控制器117的裝置驅動程序。嵌入式控制器中斷處理程序可以確定輸入源。基於輸入源,可以使用定義塊309。例如如果熱鍵產生中斷,那麼,嵌入式控制器中斷處理程序確定適當的定義塊309,用於處理鍵盤輸入、熱鍵或特定的熱鍵。定義塊309可以包括一組數據結構和方法以服務中斷請求。定義塊309可以是在固件級執行的軟體。本文中的固件是OS的控制之外的低級軟體。定義塊309的中斷服務可以包括另一個中斷的產生(方框211)。一個示例性實施例中,定義塊309的檢索利用了高級配置和電源接口(ACPI)驅動程序。定義塊309可以部分地是系統區別描述表(DSDT)、輔助系統描述表(SSDT)或類似的結構。
一個實施例中,通過使用消息信號中斷(MSI)、處理器間中斷(IPI)或類似OS可見中斷的定義塊309產生中斷。一個實施例中,在定義塊309中的ACPI源語言(ASL)代碼可以產生OS可見中斷。當使用時,諸如系統管理中斷(SMI)這樣的OS透明中斷導致OS問題。當執行中斷服務程序時服務SMI可以產生一些延時。當從中斷處理程序返回時,這可能導致作業系統(OS)中的出錯,因為OS不知道SMI服務,而是檢測執行中斷服務程序(例如時間記錄中的間隙)中延時導致的不一致和類似問題。
一些實施例中,通過定義塊309向特定存儲器區域寫入可以觸發的MSI。定義中斷類型的數據可以被寫入到特定的存儲器地址。MSI的使用具有OS可見的優點,從而服務MSI中的延時不導致一致性問題。另一個實施例中,可以產生處理器間中斷(IPI)。IPI可以用在多處理器環境中。IPI允許處理器向另一個處理器或一組處理器發送中斷。
一個示例性實施例中,定義塊309定義映射地址到MSI或IPI寫入的存儲器以產生一個中斷,以及存儲系統事件數據的空間。例如,存儲的數據可以是收集熱鍵數據的地址。用於定義服務熱鍵輸入的存儲器空間的ACPI的源語言(ASL)中的一個示例性執行方案可以是OperationRegion(MSIS,SystemMemory,0xFEC01000,0x8)Field(MSIS,AnyAcc,Lock,Preserve){Offset(0),//動態值MSIA,32//為MSI發送映射地址的存儲器IPIM,32//為IPI發送映射地址的存儲器SCAN,8//熱鍵的掃描碼}一個示例性實施例中,服務熱鍵輸入的控制方法的ASL可以執行為Method(_Q52)//熱鍵事件{if(LBqual(SCAN,0x41)){//檢測掃描碼是否是//CTRL+ALT+SHIFT+F7//也可以覆蓋其它的代碼if(MSIM){ //檢測是否使用MSIStore(0x20,MSIA) //使存儲器在MSI地址寫入//以初始化『中斷類型20』處理程序的執行}else{Store(Datal,IPIM)//使存儲器寫入導致IPI//和執行合適的中斷處理程序
}}}一個實施例中,在產生MSI或IPI之後,可以由OS確定適當的驅動程序(方框213)。然後該驅動程序可以通過處理原始系統事件完成中斷服務。如這裡使用的,驅動程序可以是在OS級控制和管理計算機系統部件的軟體。OS級的軟體由OS管理。例如,用於熱鍵的裝置驅動程序可以命令圖形卡107不能輸出到所屬顯示裝置123,能夠輸出到外部顯示裝置。
一個實施例中,改善的中斷處理系統可以為系統事件提供改善的響應度,因為MSI或IPI是邊緣觸發的,每個在中斷處理表中都具有自己的入口。因為提供其它功能性的驅動程序可以更新或重新安裝,計算機系統101的功能性可以更容易更新。例如,為更新SMI處理而更新BIOS或固件可能是不必要的。OS可見中斷和驅動程序的使用允許一般驅動程序功能性的構建以及與固件和BIOS無關的功能性的標準化。例如,可以通過熱鍵驅動程序的更新而實現新的熱鍵功能或組合。改善的中斷處理系統可以用在諸如SMI這樣的OS透明中斷的使用受到限制或約束的計算機系統中。
一個實施例中,改善的中斷處理系統可以以軟體執行並在機器可讀介質中存儲或發送。如這裡使用的,機器可讀介質是能夠存儲或發送數據的介質,例如硬碟、物理盤、光碟、CDROM、DVD、軟盤、磁碟、無線裝置、紅外裝置以及類似存儲和發送技術。
前面的說明書中,參考其特定實施例描述了本發明。然而,很明顯可以做出各種修改和改變而不偏離附屬權利要求書所限定的本發明的較寬的精神和範圍。因此,認為說明書和附圖是闡述性的而不是限制性的。
權利要求
1.一種設備,包括產生中斷以服務系統事件的裝置;處理器,為了中斷執行中斷處理程序,以產生被裝置驅動程序處理的作業系統可見中斷,該裝置驅動程序服務源自所述裝置的系統事件;以及存儲裝置,具有存儲在其中的裝置驅動程序。
2.權利要求1的設備,其中所述裝置包括與外圍輸入裝置耦合的嵌入式控制器。
3.權利要求1的設備,還包括中斷控制器,用於產生中斷以觸發中斷處理程序。
4.權利要求1的設備,其中中斷處理程序包括定義塊以及高級配置和電源接口方法。
5.權利要求1的設備,還包括耦合到處理器的存儲裝置以存儲定義塊。
6.一種方法,包括檢測系統事件;通過一種方法在用於中斷源的定義塊中產生作業系統可見中斷;以及由驅動程序服務該中斷。
7.權利要求6的方法,其中所述中斷是消息信號中斷(MSI)和處理器間中斷(IPI)的其中之一。
8.權利要求6的方法,還包括產生系統控制中斷(SCI)。
9.權利要求8的方法,其中系統控制中斷源是嵌入式控制器。
10.權利要求6的方法,還包括為系統事件確定中斷處理程序。
11.權利要求6的方法,其中系統事件是熱鍵輸入。
12.權利要求10的方法,還包括執行定義塊以產生作業系統可見中斷。
13.一種設備,包括產生第一中斷的工具;基於第一中斷產生第二中斷的工具;以及執行驅動程序以服務第二中斷的工具。
14.權利要求13的設備,還包括用於存儲驅動程序的工具。
15.權利要求13的設備,還包括用於存儲定義塊的工具。
16.權利要求13的設備,還包括用於檢索定義塊的工具。
17.一種系統,包括執行驅動程序的處理器;耦合到該處理器的總線;第一存儲裝置,耦合到總線以存儲驅動程序;第二存儲裝置,耦合到總線以存儲觸發所述驅動程序的定義塊;輸入裝置;以及網絡接口控制器。
18.權利要求17的系統,還包括控制器,當輸入被輸入裝置接收時,產生第一中斷。
19.權利要求17的系統,還包括第二處理器,以產生中斷。
20.一種機器可讀介質,其上具有存儲的指令,當該指令被執行時,導致機器執行一組操作,包括在固件級為需要服務的系統事件產生第一中斷;在作業系統級,在需要服務的固件級產生第二中斷;以及在作業系統級服務系統事件。
21.權利要求20的機器可讀介質,其上還具有指令,其中當該指令被執行時,導致機器執行一組操作,包括執行驅動程序。
22.權利要求20的機器可讀介質,其中定義塊在固件級處理第一中斷。
全文摘要
實施例包括一種中斷處理系統,以通過高級配置和電源管理接口(ACPI)和ACPI源語言基礎設施產生作業系統可見中斷,例如消息信號中斷或處理器間中斷。該中斷處理系統可以用來服務熱鍵。該中斷處理系統允許通過更新驅動程序而很容易地更新系統功能性。
文檔編號G06F9/46GK1898646SQ200480038898
公開日2007年1月17日 申請日期2004年12月17日 優先權日2003年12月23日
發明者F·博萊, R·納拉瓦迪 申請人:英特爾公司