使用操作系统可见中断处理来处理热键输入的方法和设备的制作方法

文档序号:6503893阅读:159来源:国知局
专利名称:使用操作系统可见中断处理来处理热键输入的方法和设备的制作方法
技术领域
本发明的实施例涉及中断处理。尤其是,示例性实施例涉及使用操作系统可见中断的中断处理系统。
背景技术
典型的计算机系统中,很多装置同时运行,例如存储驱动、打印机和人工输入装置。中断系统用于有效地利用处理器时间和资源。当一个装置具有被处理器处理的信息或在计算机系统中发生事件时,产生中断信号。当该中断信号被处理器接收时,处理器停止执行当前运行的程序且执行中断处理程序以服务产生中断信号的装置或事件。当装置或事件已经被服务时,处理器返回执行被中断的程序。
系统管理中断(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·纳拉瓦迪 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1