首页> 中国专利> 软件系统管理中断信号处理方法与计算机系统

软件系统管理中断信号处理方法与计算机系统

摘要

本发明为一种软件系统管理中断信号处理方法与计算机系统。该计算机系统因应一软件对一核心逻辑电路中的一暂存器写入对应一软件系统管理中断指令的一组数值,该核心逻辑电路发出一系统管理中断信号至一中央处理单元;该中央处理单元执行一系统管理中断处理程序;该系统管理中断处理程序判断该组数值的有效位长度;以及该系统管理中断处理程序根据该有效位长度与该暂存器内的该组数值执行一存储器单元中相对应的一软件系统管理中断处理程序。本发明于软件系统管理中断处理程序,增加了对软件系统管理中断指令的长度判断。

著录项

  • 公开/公告号CN101702133A

    专利类型发明专利

  • 公开/公告日2010-05-05

    原文格式PDF

  • 申请/专利权人 威盛电子股份有限公司;

    申请/专利号CN200910212399.9

  • 发明设计人 黄宗庆;林莉凤;卓晔;

    申请日2009-11-12

  • 分类号

  • 代理机构北京林达刘知识产权代理事务所;

  • 代理人刘新宇

  • 地址 中国台湾台北县

  • 入库时间 2023-12-17 23:52:51

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-12-12

    授权

    授权

  • 2010-06-23

    实质审查的生效 IPC(主分类):G06F9/48 申请日:20091112

    实质审查的生效

  • 2010-05-05

    公开

    公开

说明书

技术领域

本发明为一种中断信号处理方法与计算机系统,特别是利用对应于软件系统管理中断信号的数值的有效位长度进行SW-SMI信号处理的方法与计算机系统。

背景技术

请参阅图1,其为常见的计算机系统的功能模块示意图,主要包括:中央处理单元(CPU)101、北桥芯片103、南桥芯片105、显示芯片117、存储器控制器111、存储器单元109、外围设备113以及基本输入输出系统(Basic Input/Output System,以下简称为BIOS)107。其中关于系统操作的各功能模块的作用如下:中央处理单元101为计算机系统中负责管理与运算的单元;北桥芯片103与南桥芯片105则为中央处理单元101对外的沟通桥梁,其中北桥芯片103负责连接存储器控制器111与显示芯片117等高速元件,而南桥芯片105负责连接速度较慢的外围设备113,如硬盘、USB、网络芯片等;而基本输入输出系统107是一套记录在非易失性存储器内的程序,用以存储计算机外围组件的相关设定,让计算机正确管理并让系统运作。

在计算机系统中,系统管理中断(System ManagementInterrupt,以下简称为SMI)可因为触发原因的不同而区分为硬件系统管理中断(Hardware System Management Interrupt,以下简称为HW-SMI)和软件系统管理中断(Software SystemManagement Interrupt,以下简称为SW-SMI)等类别。无论触发的原因为何,计算机系统启动系统管理中断的程序大致相同,即通过南桥芯片105上的系统管理中断引脚SMI#传送一系统管理中断信号至中央处理单元101。接着,触发该中央处理单元101进入系统管理模式(System Management Mode,以下简称为SMM),此模式为中央处理单元101的最高权限模式,进入此模式后计算机系统原本正在执行的任务将被中断。然后,中央处理单元101将通过存储器控制器111读取位于存储器单元109内的一特殊区域,即系统管理随机存储器(System ManagementRandom Access Memory,以下简称为SMRAM)区域内的程序以判断应执行何种中断处理程序。特别是,SMRAM中的程序称为SMI处理程序,此处理程序由基本输入输出系统107在计算机系统开机的初期事先载入存储器单元109。

进一步来说,由软件程序对特定硬件做写入的动作而产生的SMI,就称为软件系统管理中断,而此特定硬件在高级配置和电源接口(Advanced Configuration and Power Interface,ACPI)规格中称为SMI指令端口(Command Port),其指令长度为1个字节。

一般来说,软件程序如果需要BIO S对某一硬件做某方面的控制时,会通过下达特定的SW-SMI指令告知BIOS其想要做的事情。例如:依据APCI中的定义,BIOS会提供一个ACPI致能指令(enable command)给操作系统(operating system,OS),当OS想进入ACPI模式之前,它会对SMI指令端口写入ACPI致能指令;假设ACPI致能指令为068h,则OS便将068h填入SMI指令端口。另一方面,无论写入SMI指令端口的数值为何,该写入行为将触发该南桥芯片105上的系统管理中断引脚SMI#传送系统管理中断信号至中央处理单元101,并使中央处理单元101进入系统管理模式。在系统管理模式下,中央处理单元101将通过存储器控制器111读取存储器单元109中被规划为系统管理随机存储器区域内的SMI处理程序。举例来说,假设写入南桥芯片105内部的SMI指令端口为068h,则利用该数值068h与系统管理随机存储器区域内的程序进行比对,以判断发出软件系统管理中断事件的对应处理程序的初始地址,并将程序计数器移动至该起始地址,再执行中断处理程序内的控制流程。

简言之,一个SW-SMI的处理涉及了南桥芯片105、基本输入输出系统107、存储器控制器111与中央处理单元101彼此间的沟通,与此控制流程相关的程序则被放在存储器单元109内的系统管理随机存储器区域,该区域内的程序在计算机系统开机时由基本输入输出系统所载入,且对于SW-SMI指令而言,此程序必须定义清楚,一旦被BIOS载入存储器单元,不应任意更动程序内容。

通过上述说明可以得知,计算机系统在判断SW-SMI事件的流程时,必须大幅依赖基本输入输出系统107所提供的SMI处理程序来处理软件所发出的SW-SMI指令。在现有技术的作法中,BIOS厂商负责管理SW-SMI处理程序与SW-SMI指令间的对应关系。对于每一个SW-SMI处理程序都会分配到一个独有的指令,而每个SW-SMI指令的长度为一个字节。由于SW-SMI指令与SW-SMI处理程序由BIOS厂商所管理,因此系统厂商或是芯片组(chipset)厂商若要增加其他的SW-SMI处理程序来处理其他事件时,必须先确认BIOS中有哪些SW-SMI指令尚未使用到,再从这些未使用的SW-SMI指令中择一对应所新增的SW-SMI处理程序。这样的开发模式则导致下述问题:即系统厂商或芯片组厂商所合作的基本输入输出系统厂商不只一家,而不同的基本输入输出系统厂商对于相同的事件处理所分配的SW-SMI指令与SMI处理程序的起始地址亦不尽相同;另一方面,不同的基本输入输出系统厂商就同一个SW-SMI指令所对应的事件处理也不一定相同。因此,在目前的情况下,同一家基本输入输出系统厂商的系统中,有可能因管理不善,而使用相同的SW-SMI指令的数值,进而造成系统执行时的冲突。而且,不同的基本输入输出系统厂商间也可能因为SW-SMI指令的数值的整体规划不相同而衍生困扰。

此外,因为在高级配置和电源接口规格的定义中,规定SW-SMI指令的长度固定为一字节的长度(即8个位的长度),这代表SMI处理程序可以辨识的SW-SMI指令总数至多为一个字节所能支持的个数,即28=256个中断指令,即依据此规格定义时,计算机系统上可支援的最大SW-SMI处理程序数目为256个,这也使得计算机系统可支援SW-SMI处理程序的扩充性受到相当局限。

通过上述说明可知,现有技术使用SW-SMI指令判定SW-SMI处理程序的缺失包括:不同的基本输入输出系统厂商对于各个SW-SMI指令的定义可能不一致、一旦新增SW-SMI处理程序便需要在基本输入输出系统的程序架构中找寻可用的指令,以及计算机系统所搭配的SW-SMI处理程序日益增加,仅能支援256个不同的SW-SMI处理程序的作法将不敷使用等,因此迫切的需要能解决前述缺失的作法。

发明内容

本发明的一方面为一种软件系统管理中断信号处理方法,应用于可执行一软件的计算机系统,该方法包括下列步骤:因应该软件对一核心逻辑电路中的一第一暂存器写入对应一软件系统管理中断指令的一组数值,该核心逻辑电路发出一系统管理中断信号至一中央处理单元;该中央处理单元执行一系统管理中断处理程序;该系统管理中断处理程序判断该组数值的有效位长度;以及该系统管理中断处理程序根据该有效位长度与该第一暂存器内的该组数值执行一存储器单元中相对应的一软件系统管理中断处理程序。

本发明的另一方面为一种计算机系统,应用于软件系统管理中断,该计算机系统包括:一核心逻辑电路,具有一第一暂存器,对该第一暂存器写入一组数值可使该核心逻辑电路发出一系统管理中断信号;一存储器单元,电连接于该核心逻辑电路,其是记录多个软件系统管理中断处理程序;以及一中央处理单元,电连接于该存储器单元与该核心逻辑电路,其是接收该系统管理中断信号,并根据该组数值的有效长度与内容执行相对应的软件系统管理中断处理程序。

本发明于软件系统管理中断处理程序,增加了对软件系统管理中断指令的长度判断。

附图说明

本发明通过下列图式及说明,将得以更深入的了解:

图1是常见的计算机系统的功能模块示意图。

图2是本发明为改善现有手段缺失所发展出来的关于软件系统管理中断信号处理的一较佳实施例的流程示意图。

图3a、图3b是第一种实现查表比对过程所对应的系统管理随机存储器内的存储器配置图与控制流程图。

图4a、图4b是第二种实现查表比对过程所对应的系统管理随机存储器内的存储器配置图与控制流程图。

图5是本发明在实际应用时由基本输入输出系统厂商配合处理的程序配置的示意图。

附图中符号的简单说明如下:

100:中断指令暂存器

109:存储器单元

101:中央处理单元

111:存储器控制器

103:北桥芯片

113:外围设备

105:南桥芯片

117:显示芯片

107:基本输入输出单元

401~409、501~511、601~615:步骤。

具体实施方式

在计算机系统中,现有技术使用固定长度为字节长度的SW-SMI指令来判定SW-SMI处理程序的作法,具有可支援SW-SMI指令数目有限而易发生定义冲突,以及过度依赖基本输入输出系统厂商等缺失,本发明便以此作为出发点,希望能找到一个兼顾SW-SMI指令间冲突问题与提供系统厂商与芯片组厂商较大的弹性,进而减少开发过程中过度依赖基本输入输出系统厂商就中断指令配置设定的作法。

如前所述,本发明的目的为发展出一种针对SW-SMI信号判别的处理方法,并将该处理方法应用于计算机系统的软件系统管理中断上。此处的计算机系统包括:存储器单元、核心逻辑电路与中央处理单元,彼此之间以总线或其他方式电连接而成,而核心逻辑电路中具有中断指令暂存器(即现有技术的SMI指令端口,下称SMI指令暂存器)。

本发明的核心作法如下:在软件对该核心逻辑电路中的SMI指令暂存器写入对应一SW-SMI指令的一组数值之际,令核心逻辑电路发出一SMI信号至该中央处理单元。接着,中央处理单元开始执行SMI处理程序。然后,令SMI处理程序判断在该指令暂存器中所储存的对应该SW-SMI指令的该组数值的有效位长度。之后,令该SMI处理程序根据该有效位长度与SMI指令暂存器内的数值来执行在存储器单元中相对应的软件系统管理中断处理程序。

基于现有技术的架构,上述的核心逻辑电路可以是一般的南桥芯片或是另一个专门用以辅助判断系统管理中断的专用逻辑电路;而核心逻辑电路与中央处理单元之间则可采用SMI#引脚的方式直接进行中断信号的传递,或是通过总线以间接的方式由核心逻辑电路传送至中央处理单元中;至于对SMI指令暂存器写入对应SW-SMI指令的数值的步骤,则可视计算机系统的规划,由中央处理单元所执行的软件来通过系统总线将发生SW-SMI指令的数值写入SMI指令暂存器中;再者,SMI处理程序可由基本输入输出系统来提供,应用上则可通过系统总线将系统中的各个SW-SMI处理程序写入该存储器单元而间接提供给中央处理单元执行时使用。

本发明利用了对应SW-SMI指令的数值的实际有效位长度的信息,在SMI处理程序判断应执行的SW-SMI处理程序时,提供SW-SMI指令的有效位长度给SMI处理程序,而提供有效位长度信息的方式可以是将代表该有效位长度的一位长度信息可与SW-SMI指令的数值内容合并记录于核心逻辑电路中的SMI指令暂存器(即第一暂存器),或是被单独记录于一个专用于储存长度的暂存器(即第二暂存器),再由SMI处理程序至核心逻辑电路中读取第一暂存器或第二暂存器所记录关于长度的信息;抑或由其他的逻辑电路或系统总线(如PCI系统总线)在系统管理中断处理程序的控制过程中以直接或间接的方式提供给SMI处理程序使用SW-SMI指令的位长度信息。

在本发明的较佳实施例中,除了一般现有技术所采用的字节长度的SW-SMI指令外,另外提供了使用字(Word)长度、双字(Double Word)长度的SW-SMI指令,借以提供新增的软件系统管理中断的识别用途,通过前述其他的逻辑电路或系统总线的协助,SMI处理程序可以通过中央处理单元在同一个时脉之内至核心控制逻辑中读取记录在SMI指令暂存器的数值内容。

SW-SMI指令与SW-SMI处理程序间的对应关系可以相当有弹性,例如为完全不同的SW-SMI指令内容,或是新增的SW-SMI处理程序与某个SW-SMI处理程序有关联性,则可以在SW-SMI指令内容中由靠近最高有效位(Most Significant Bit,MSB)的第一字节定义共同相关的信息内容,而靠近最低有效位(LeastSignificant Bit,LSB)的字节则可以定义不同的信息内容。由于系统总线等提供了对应于SW-SMI指令的有效位长度的信息,SMI处理程序可以用此信息避免对数据读取时的误动作,即,在写入一字节数据时,SMI指令暂存器上的其他位亦可能因为之前SW-SMI指令的长度为一字长或是一双字长等原因而有数值,此时通过长度对齐的机制便可以知道该部分的数值与本次的SW-SMI指令无关。

在程序里增加对于有效位长度判断的作法,除了可以改善前述缺失外,在现有的计算机系统上实现时也相当简便。即,仅需将新增的中断程序所对应的不同有效位长度的SW-SMI指令的数值在流程中先行判断,并将所述数值所对应的SW-SMI处理程序安排在现有SMI中断处理程序区块之前,则在软件进入系统管理模式时,由进入点(即系统管理随机存储器的起始点)开始判断的程序便进入新的SW-SMI指令群组所对应的SMI处理程序。

后续的较佳实施例是以SW-SMI指令为字的有效位长度(即16位)进行说明,但实际上的应用并不限于以字长度作为SW-SMI指令有效位长度判定时的例子,即其他可能的长度如双字、四字或其他非字节长度的整数倍长度的SW-SMI指令亦可能被采用。

由于系统管理中断只有一个进入点,所有的系统管理中断事件都会在同一个处理程序中处理,系统管理中断产生时,南桥芯片会设定系统管理中断事件的状态,因此系统管理中断处理程序必须判断要处理哪个系统管理中断事件,因此本发明的应用起始点是对应于现有技术所提的“进入SMM”,结束点则对应于现有技术所提的“执行中断处理程序内的控制流程”。

请参见图2,其是本发明为改善现有手段的缺失所发展出来的关于个人计算机系统较佳实施例的流程示意图。首先中央处理单元因SMI#信号进入系统管理模式(步骤401),接着SMI处理程序判断核心逻辑电路所提供的SW-SMI指令的有效位长度是否为字节长度(步骤403),若是,表示该软件系统管理中断的处理程序是依循一般通过基本输入输出系统所判断的中断信号,因此流程进入一般的中断处理流程(步骤405);若否,则进入一查表比对的过程,以达成对有效位长度为字节以上长度的数值所代表的SW-SMI处理程序进行处理(步骤407),实现查表的细节可能各异,但作法不外在该查表比对的过程中,就各个定义的SMI指令与接收到的数据进行比对,一旦相符,便进入系统管理模式执行相对应的处理程序;对应的中断处理程序执行完毕后(步骤405、步骤407至步骤409),中央处理单元将回到原本的正常处理流程中,关于查表比对(步骤407)的过程的进一步说明则请参见图3及图4。

请参见图3a、图3b,其为第一种实现查表比对过程所对应的系统管理随机存储器内的存储器配置图与控制流程图。在图3a中的SMI中断处理程序包括:SW-SMI处理程序α、SW-SMI处理程序β、SW-SMI处理程序γ等,分别被配置了一块存储器空间I、II、III以储存各个软件系统管理中断处理程序内容,而由图3b的流程图中可以看出中央处理单元在进入软件系统管理中断(步骤501)的流程后,首先读取SW-SMI指令的数值(步骤503)并将此SW-SMI指令数值与从SMI指令暂存器所读取到的数值进行比对(步骤505),若存储器单元中的SW-SMI指令的数值符合自南桥芯片的SMI指令暂存器所储存的数值,便开始执行对应于此SW-SMI指令的SW-SMI处理程序(步骤507),并在执行完毕SW-SMI处理程序的内容后便离开中断处理流程(步骤511);若中央处理单元比对SW-SMI指令的数值与SMI指令暂存器内的数值的结果为不符合,则移动程序计数器至下一个SW-SMI处理程序的起始地址(步骤509),接着重复进行前述读取SW-SMI指令(步骤503)与判断(步骤505)的动作。

举例而言,系统管理中断在被触发后首先固定跳跃至SW-SMI处理程序α的起始点并读取SW-SMI指令α的内容,比对SW-SMI指令α与自SMI指令暂存器所读取到的数值x是否相等,若不相等则程序将继续跳跃至SW-SMI处理程序β的起始点,即储存SW-SMI指令β的地方读取SMI指令β的内容...。如此反复进行,假设在图3b中,x的内容与SW-SMI指令γ的内容相同,则SMI控制流程将进入SW-SMI处理程序γ中,并开始执行SW-SMI处理程序γ内的步骤。

再请参见图4a、图4b,其为第二种可能用以实现中断处理程序的查表比对过程所对应的系统管理随机存储器配置图与控制流程图。这种作法是将各个SW-SMI处理程序记录在存储器单元中的第一记录区块内并取得其分别对应的起始地址后,再将这些S W-SMI处理程序所对应的SW-SMI指令的数值与起始地址一起写入于存储器单元中的第二记录区块内,借以提供一个在比对结果符合时,能够按图取得SW-SMI处理程序所在位置的功效。

如图4a、图4b所示,这类型的查表的方式是在系统管理随机存储器的起始点规划出一专用查表区,即,第二记录区块,中断控制流程在进入系统管理模式(步骤601)后,先通过该专用查表区进行查询SW-SMI指令的动作(步骤603),将核心逻辑电路中的SMI指令暂存器所取得的数值(即触发SMI状态的SW-SMI数值)与专用查表区内的各个SW-SMI指令分别进行比对(步骤605),若比对未成功,则继续取得查表区中的下一个SW-SMI指令的数值(步骤607),然后重新开始进行比对(步骤605),一旦SW-SMI指令的数值与SMI指令暂存器内的数值比对的结果为符合,则继续读取记录于SW-SMI指令后的各中断流程的起始地址(步骤609),接着SMI处理程序将把程序计数器移动至取得的SW-SMI处理程序的起始地址(步骤611)而开始执行记录于第一记录区块内的SW-SMI处理程序(步骤613),例如自SW-SMI处理程序β的起始点开始执行SW-SMI处理程序β内的中断步骤,并于SW-SMI处理程序β的步骤被执行完毕后离开SMM(步骤615)。

请参见图5,其为本发明的较佳实施例在实际应用时由基本输入输出系统厂商配合处理的程序配置的示意图。图中标示的是在程序开机的时候,基本输入输出系统写入至存储器单元的系统管理随机存储器区块中的程序配置,在系统管理随机存储器区块中可以进一步区分为第一程序区块与第二程序区块,其中由SW-SMI处理程序A、SW-SMI处理程序B、SW-SMI处理程序C等所构成的区域,即,第一程序区块,为现有计算机系统中关于SMI程序所使用的区块,用以储存具有字节长度的SW-SMI指令对应的中断处理程序群;另外一个区块,即,第二程序区块,则被用来储存SW-SMI指令的有效位长度为非字节长度的SW-SMI处理程序α、SW-SMI处理程序β、SW-SMI处理程序γ...等第二类型中断处理程序。

因此,当本发明的较佳实施例在进行SW-SMI指令拆解判断时,一旦在判读有效位的步骤(图2的步骤403)中,得知对应该SW-SMI指令的有效位长度的信息符合高级配置和电源接口规格内部定义的长度(一字节长度),便会进入原始的进入点并开始一般中断流程的对应与处理(步骤405);另一方面,若SW-SMI指令的有效位长度信息显示出有效位长度为依据本发明所定义的不同的有效位长度,如一字长度、一双字长度或一四字长度等,则中断处理流程将进入新的进入点所指示的区段,并由该起始点开始判断中断处理程序中的何者为此次中断事件触发时所对应的中断源(步骤407)。

简言之,本发明的作法仅需对程序的判断流程加以变更,配合基本输入输出系统在原判断起点前新增部分的中断处理程序,则可以轻易的融入现有的计算机系统开发流程中,而基本输入输出系统厂商仍负责原本存储器区块中的中断处理程序,由芯片组厂商与系统厂商协调所需新增的SW-SMI处理程序并置放于新的存储器区块中,将大幅降低现有开发流程中需要密切进行三方沟通的不便。因为新的中断处理程序区块的规划独立于基本输入输出系统所使用的中断处理程序区块,可采用另一开发流程来进行,因此可以搭配任何基本输入输出系统厂商的作法,使得计算机系统的开发过程更具时效性,不需要因为不同基本输入输出系统厂商的规划彼此不相同而造成必须重新撰写对应的中断判断流程的不便。

综上所述,本发明增加了对SW-SMI指令长度的判断于软件系统管理中断的判断流程中,这样的作法除了解决现有技术依赖基本输入输出系统过多的问题外,更具有以下几个优点:本发明的作法与现行技术相容,不会造成额外的成本;解决在基本输入输出系统与应用程序、驱动程序、绘图芯片在使用软件系统管理中断事件时的冲突问题;在触发软件系统管理中断事件的同时,可以同时转移更多的信息;可与不同基本输入输出系统厂商的核心相容;以及仅需要一个时脉周期便可以完成此方法。

以上所述仅为本发明较佳实施例,然其并非用以限定本发明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神和范围内,可在此基础上做进一步的改进和变化,因此本发明的保护范围当以本申请的权利要求书所界定的范围为准。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号