锁定芯片组的系统管理中断(smi)使能寄存器的制造方法

文档序号:6497953阅读:235来源:国知局
锁定芯片组的系统管理中断(smi)使能寄存器的制造方法
【专利摘要】本发明所公开的示例性实施例涉及锁定芯片组的系统管理中断(SMI)使能寄存器。示例性实施例包括用于配置芯片组的触头的至少一个触头配置寄存器;以及芯片组的用于存储使能值或禁止值的触头SMI使能寄存器。在示例性实施例中,存储在该触头SMI使能寄存器中的该禁止值用于阻止该芯片组响应于在该触头接收的SMI信号而将SMI请求提供给处理器。示例性实施例进一步包括锁定该触头SMI使能寄存器。
【专利说明】锁定芯片组的系统管理中断(SMI)使能寄存器

【背景技术】
[0001]诸如台式计算机、笔记本式计算机之类的计算设备可包括许多与该计算设备的处理器通信的电子部件。在某些例子中,这些电子部件可能会在处理器上引起中断,比如系统管理中断(SMI)。作为响应,该处理器可进入与中断相关联的处理模式,以执行用于处理该中断的各项功能。

【专利附图】

【附图说明】
[0002]下面的详细描述将参考附图来进行,其中:
[0003]图1是用于锁定芯片组的系统管理中断(SMI)使能寄存器的一示例性计算设备的方框图;
[0004]图2是用于锁定芯片组的SMI使能寄存器和路由寄存器的一示例性计算设备的方框图;
[0005]图3是用于锁定芯片组的SMI使能寄存器的另一示例性计算设备的方框图;
[0006]图4是用于锁定芯片组的SMI使能寄存器的示例性方法的流程图;以及
[0007]图5是用于阻止对芯片组的SMI使能寄存器进行写操作的示例性方法的流程图。

【具体实施方式】
[0008]如上面所指出,计算设备的各种部件可在该计算设备的处理器上引起中断。例如,诸如输入/输出(I/O)控制器的计算资源,可通过将SMI信号提供给与处理器通信的芯片组的指定触头而在该处理器上引起系统管理中断(SMI)。在这样的例子中,该芯片组响应于在该指定触头从该计算资源接收该SMI信号而将SMI请求提供给该处理器。
[0009]在某些例子中,该芯片组可包括对应于该指定触头的SMI使能寄存器。在这样的例子中,当在该SMI使能寄存器中存储使能值时,该芯片组可响应于该SMI信号将该SMI请求提供给该处理器,当在该SMI使能寄存器中存储禁止值时则不提供。同样地,将存储在SMI使能寄存器的值从使能值改变成禁止值,就可通过阻断从计算资源到处理器的SMI通信路径来阻止计算资源能在处理器上引起SMI。
[0010]在这样的例子中,允许阻断这种SMI通信路径可能会在其中SMI被用于计算设备安全性的计算设备中导致安全漏洞。例如,诸如超级I/o的计算资源可包括多个寄存器,多个寄存器被用来配置计算设备操作的各方面,诸如电源设置、错误代码、温度控制和/或其他系统管理设置等。在这样的例子中,这些超级I/o寄存器可受到密码保护,以限制对这些寄存器的访问。例如,该密码的知悉可被限制于基本输入/输出系统(B1S),以阻止除B1S之外的可执行指令(例如恶意软件)来访问该超级I/O寄存器。
[0011]然而,超级I/O寄存器的密码保护可能依然易受字典式攻击(dict1naryattack)。因此,在某些例子中,该超级I/O可响应于任何密码的输入而在处理器上引起SMI,以确保是由B1S输入了密码。然而,在这样的例子中,通过在适当的SMI使能寄存器中存储禁止值从而阻断超级I/O与处理器之间的SMI通信路径,可以使超级I/O寄存器的这些保护被挫败。例如,通过阻断该SMI通信路径,恶意软件可对超级I/O执行字典式攻击,而该超级I/O却不能在处理器上引起SMI。
[0012]为了解决这些问题,本文所描述的例子提供将芯片组的SMI使能寄存器锁定的能力。这样,本文所描述的例子就可确保从计算资源到计算设备的处理器的SMI通信路径,使得由起源于计算资源的SMI所提供的安全性不会通过改变芯片组的SMI使能寄存器中的值而容易地被挫败。
[0013]现在参照附图,图1是用于锁定芯片组的系统管理中断(SMI)使能寄存器的示例性计算设备100的方框图。如本文所用,“计算设备”是台式计算机、笔记本式计算机、一体式计算机、平板触摸或平板式计算机、手持式计算机、移动式电话、智能设备(例如智能电话)、服务器或具有能处理中断的处理器的任何其他设备。在图1的例子中,计算设备100包括处理器110、芯片组120和计算资源150。
[0014]如本文所用,“处理器”可以是至少一个中央处理单元(CPU)、至少一个基于半导体的微处理器、至少一个图形处理单元(GPU)、适合于读取且执行在机器可读存储介质上所存储的指令的至少一个其他硬件设备或者它们的组合。另外,如本文所用,“芯片组”可以是包括电子电路以至少提供计算设备的独立计算资源与处理器之间的通信的至少一个硬件设备。芯片组可以是例如南桥、外围控制集线器(PCH)等诸如此类或者它们的组合。
[0015]在本文所描述的例子中,处理器和芯片组可配备于独立的芯片上和/或独立的封装中。在其他例子中,处理器和芯片组可作为同一封装和/或芯片的一部分而配备,且同时保持实现该处理器的硬件与实现该芯片组的硬件之间的物理分离。例如,在具有由至少一条总线连接起来的处理器和芯片组硬件的同一芯片上,实现处理器的硬件可以与实现芯片组的硬件物理地分离。在某些例子中,该处理器和该芯片组可作为系统级芯片的部件而配备。
[0016]如本文所用,“计算资源”可以是计算设备的任何硬件设备,其包括电子电路并且与该计算设备的芯片组和处理器物理地分离。例如,计算资源可以是诸如超级I/o的I/O控制器、应用专用集成电路(ASIC)以及嵌入式控制器(EC)、风扇控制器等诸如此类或者它们的组合。在图1的例子中,计算资源150可以生成SMI信号182,以便在处理器110上引起SML.在本文所描述的例子中,SMI信号可以是这样一种信号,它由计算设备的计算资源响应于该计算资源的确定所生成,以便在该计算设备的处理器上引起SMI,其中该信号被输出以便在该处理器上引起所要求的SMI。计算设备150可以通过向芯片组120上的触头(例如触头130)提供SMI信号182来引起SMI,该触头被配置为接收SMI信号182。
[0017]在某些例子中,计算资源150可以是一超级1/0,并且当在该超级I/O输入密码以便获得对该超级I/o的寄存器的访问时,计算资源150可生成SMI信号182以便在处理器110上引起SMI。此外或可替代地,当处理器110上的SMI为该超级I/O所期望时,该超级I/O可因任何其他原因而生成SMI信号182。例如,该超级I/O可生成SMI信号182,以使计算设备100转变到睡眠状态,或者当检测到计算设备100的壳子打开时就生成SMI信号182。
[0018]在其他例子中,计算资源150可以是计算设备100中用于生成SMI信号182以便在处理器I1上引起SMI的任何ASIC。计算资源150可以是一风扇控制器,并且当诸如风扇速度或系统温度之类的参数对于计算设备100而言超出可接受限度时,计算资源150可生成SMI信号182以便提供警告信号。在其他例子中,该风扇控制器可以是超级I/O的一部分,并且若该参数超出可接受限度则该超级I/O可生成SMI信号182。
[0019]在图1的例子中,芯片组120可包括触头130。在其他例子中,芯片组120可包括额外的触头。如本文所用,“触头”可以是导电针、导电球、用于将电信号从芯片组的封装外部传输到该封装内部的电子电路的任何其他导电元件或者它们的组合。芯片组120还可包括与触头130相关联的至少一个触头配置寄存器122、与触头130相关联的触头SMI使能寄存器124以及SMI使能寄存器锁定模块126。在某些例子中,模块126的功能可以以被编码在机器可读存储介质上的可执行指令的形式、电子电路的形式或者它们的组合来实现。
[0020]寄存器122可以共同地将触头130配置为通用输入/输出(GP1)来接收输入。例如,若在每个寄存器122中存储适当的信息,则寄存器122可共同地将触头130配置为GP1来接收输入。在这样的例子中,通过在至少一个寄存器122中存储不同的信息,寄存器122可被用来不同地配置触头130。寄存器122可包括例如用于将触头130选择性地配置为GP1的第一寄存器,以及用于选择性地配置触头130来接收输入的第二寄存器。寄存器122可进一步包括用于具体指定触头130是在高逻辑电平下有效还是在低逻辑电平下有效的第三寄存器。在其他例子中,寄存器122可包括用于配置触头130的其他方面、用途或功能的其他寄存器或者它们的组合。在某些例子中,若寄存器122被设定为共同地将触头130配置为GP1来接收输入(例如通过存储在其中的适当信息),则触头130可接收由计算资源150所生成的SMI信号182。
[0021]在图1的例子中,芯片组120进一步包括触头SMI使能寄存器124。在本文所描述的例子中,SMI使能寄存器可以是这样一种寄存器,它可单独地或者与芯片组上所存储的其他信息结合起来使用,以使芯片组能够响应于该芯片组所接收的至少一些SMI信号将SMI请求提供给处理器。在这样的例子中,SMI使能寄存器还可被用来阻止芯片组响应于该芯片组所接收的至少一些SMI信号将SMI请求提供给处理器。
[0022]如本文所用,芯片组的“触头SMI使能寄存器”可以是该芯片组的与该芯片组的特定触头相关联的SMI使能寄存器。例如,触头SMI使能寄存器124与芯片组120的触头130相关联。如本文所用,与芯片组的触头“相关联”的芯片组寄存器可以是影响与该触头有关的该芯片组操作的寄存器。例如,触头SMI使能寄存器124可能会影响与在触头130接收到的信号有关的芯片组120的操作。在这样的例子中,触头SMI使能寄存器124可能会影响与在单个唯一触头(即触头130)接收到的信号有关的芯片组120的操作。在这样的例子中,与触头130相关联的触头SMI使能寄存器124可能不会影响涉及任何其他触头的芯片组120的操作。
[0023]在某些例子中,可以在触头SMI使能寄存器124中存储使能值或禁止值。在本文所描述的例子中,该使能值可以是任何信息,比如数据值、位模式等等,而禁止值可以是不同于该使能值的任何信息。例如,使能值可以是“1”,而禁止值为“0”,或反之亦然。
[0024]在图1的例子中,存储在触头SMI使能寄存器124中的使能值可以与其他芯片组信息结合起来,使芯片组120能够响应于经触头130从计算资源150接收到的SMI信号182而将SMI请求184提供给处理器100。如本文所用,“芯片组信息”可以是存储在芯片组的寄存器中的值。在图1的例子中,其他芯片组信息可包括例如与触头130相关联的芯片组120的中断路由寄存器中所存储的值和芯片组120的全局SMI使能寄存器中所存储的值。在其他例子中,与该使能值结合起来使用的进一步芯片组信息可以被存储在芯片组120的其他寄存器中。
[0025]在某些例子中,存储在全局SMI使能寄存器中的值可指示是否对于芯片组120 (即越过全部触头)全局地使能SMI,而存储在中断路由寄存器中的值可指示在触头130接收到的信号作为SMI请求待路由至处理器110。在这样的例子中,存储在触头SMI使能寄存器中的使能值,与指示SMI被全局地使能以及在触头130接收到信号作为SMI请求待路由的信息结合起来,可使芯片组120能够响应于经触头130从计算资源150接收到的SMI信号182将SMI请求184提供给处理器100。在某些例子中,若寄存器122被设定为将触头130配置为GP1来接收输入,且寄存器124被设定为使能值,则触头130可被配置为接收SMI信号。
[0026]在图1的例子中,存储在SMI使能寄存器124中的禁止值可阻止芯片组响应于经触头130从计算资源150接收到的SMI信号将任何SMI请求184提供给处理器110。如本文所用,“SMI请求”可以是指令、请求、中断信号或任何其他信息,其被提供给处理器时,将对处理器指示系统管理中断(SMI),在处理器上引起SMIjP /或处理器将响应于其而调用与该SMI相关联的中断处理程序。
[0027]此外,芯片组120可锁定触头SMI使能寄存器124。芯片组120可包括SMI使能寄存器锁定模块126。在某些例子中,触头SMI使能寄存器124可以是一次写入(write-once)寄存器。在本文所描述的例子中,一次写入寄存器可以是这样一种寄存器,它在包含该寄存器的计算设备复位之后仅可被写入一次。若寄存器124是一次写入寄存器,则模块126可以通过在计算设备100复位之后且对寄存器124进行任何其他写入之前将一个值写入寄存器124来锁定寄存器124。例如,模块126可通过在复位之后将使能值写入寄存器124来锁定寄存器124。在这样的例子中,没有部件、指令等可在计算设备100复位之前将禁止值写入寄存器124。在其他例子中,模块126可通过在复位之后将禁止值写入寄存器124来锁定寄存器124。
[0028]在其他例子中,模块126可包括与触头SMI使能寄存器124相关联的SMI使能锁定寄存器。在这样的例子中,若SMI使能锁定寄存器存储解锁值,则芯片组120可对寄存器124进行写入,而若SMI使能锁定寄存器存储锁定值,则不可对寄存器124进行写入。若模块126包括SMI使能锁定寄存器,则模块126可通过将锁定值写入SMI使能锁定寄存器来锁定寄存器124。
[0029]本文所描述的例子可允许芯片组锁定该芯片组的触头SMI使能寄存器。这样,芯片组就可避免恶意软件(例如机器可读指令)阻断从计算资源到处理器的SMI通信路径,以阻止该计算资源在该处理器上引起SMI。如上面所指出,一些计算资源可能依赖于引起SMI以提供安全性。因此,本文所描述的例子可通过保护计算资源在处理器上引起SMI的能力来提高计算设备安全性。
[0030]此外,如上面所指出,计算资源还可以为了其他目的而使用SMI,比如提供警告信号、使计算设备进入睡眠状态等。通过锁定触头SMI使能寄存器,本文所描述的例子可有助于确保这种警告信号不被阻塞,并有助于确保计算设备可以适当地进入睡眠状态。此外,在处理器上引起SMI而不具有准备处理该SMI的适当的中断处理程序,可能会致使包括该处理器的计算设备锁定(例如冻结、停止执行等)。在这样的例子中,可通过引起不恰当的SMI来实施拒绝服务攻击。然而,本文所描述的例子可通过锁定被设定为禁止值的触头SMI使能寄存器来阻止这种攻击,使得恶意软件(例如计算机可读指令)不能将使能值写入这些寄存器从而在处理器上引起不恰当的SMI。
[0031]图2是用于锁定芯片组的SMI使能寄存器和路由寄存器的示例性计算设备200的方框图。在图2的例子中,计算设备200包括处理器100,如以上关于图1所述的。计算设备200进一步包含芯片组220和I/O控制器250。在图2的例子中,芯片组220可包括触头130、触头配置寄存器122、触头SMI使能寄存器124以及SMI使能寄存器锁定模块126,如以上关于图1所述的。在图2的例子中,芯片组220还包括触头230。在其他例子中,芯片组200可包括额外的触头。芯片组220还可包括触头管理寄存器221,触头管理寄存器221包括与触头130相关联的寄存器122和124,如以上关于图1所述的。
[0032]在图2的例子中,模块126包括SMI使能锁定寄存器232和锁定寄存器管理模块234。若模块126包括SMI使能锁定寄存器232,则模块234可通过将锁定值写入SMI使能锁定寄存器232来锁定触头SMI使能寄存器124。在这样的例子中,若寄存器232存储解锁值,则芯片组220可对寄存器124进行写入,若寄存器232存储锁定值,则不能对寄存器124进行写入。在本文所描述的例子中,锁定值可以是任何信息,比如数据值、位模式等等,而解锁值可以是不同于锁定值的任何信息。例如,锁定值可以是“1”,而解锁值为“0”,或反之亦然。在某些例子中,SMI使能锁定寄存器232可以是一次写入寄存器。在这样的例子中,模块234可在计算设备200复位之后对寄存器232的任何其他写入之前将锁定值写入寄存器232,以锁定寄存器124。在这样的例子中,在锁定值被写入寄存器232以后,在计算设备200的下一次复位以前对寄存器232的任何后续写操作(例如解锁或锁定值)都将没有任何效果。
[0033]在图2的例子中,芯片组220还包括全局SMI使能寄存器240。在某些例子中,该全局SMI使能寄存器与芯片组220的任何一个触头都没有关联。反而,存储在寄存器240中的全局禁止值可阻止芯片组220将任何SMI请求184提供给处理器110,不管在芯片组220的任何触头所接收的任何SMI信号如何而且不管在任何触头SMI使能寄存器中所存储的值如何。
[0034]此外,存储在寄存器240中的全局使能值可与其他芯片组信息结合起来,使芯片组120能够响应于经芯片组220的触头从计算资源150接收到的SMI信号182而将SMI请求184提供给处理器100。例如,若每个寄存器122、124和228存储着适当的值使芯片组200能够响应于SMI信号182来提供SMI请求,则存储在寄存器240中的全局使能值可使芯片组120能够响应于在触头130接收到的SMI信号182将SMI请求184提供给处理器100。
[0035]在图2的例子中,触头管理寄存器221还包括与触头130相关联的触头中断路由寄存器228。在本文所描述的例子中,中断路由寄存器可以是指示一种中断请求(包括非中断请求)的寄存器,芯片组可响应于在芯片组接收到的中断信号将这种中断请求提供给处理器。
[0036]如本文所用,芯片组的“触头中断路由寄存器”可以是芯片组的与芯片组的特定触头相关联的中断路由寄存器。例如,触头中断路由寄存器228与芯片组220的触头130相关联。在这样的例子中,路由寄存器228可指示一种中断请求,芯片组220可以响应于在触头130从I/O控制器250接收到的SMI信号182将这种中断请求提供给处理器110。在这样的例子中,与触头130相关联的路由寄存器228可不影响与任何其他触头相关的芯片组120的操作。
[0037]在某些例子中,可以存储在寄存器228中的值可包括SMI值、“不中断”值和至少一个其他中断值。这些值可以是任何类型的信息,只要该信息对于每个上述值来说不同即可。在图2的例子中,存储在寄存器228中的SMI值可表明芯片组220可以响应于经触头130从I/O控制器250接收的SMI信号182而将SMI请求提供给处理器110。存储在寄存器124中的使能值和存储在寄存器228中的SMI值可以单独或者与其他芯片组信息结合起来,使芯片组220能够响应于经触头130从计算资源(例如I/O控制器250)接收到的SMI信号182而将SMI请求184提供给处理器110。在这样的例子中,芯片组220输出SMI请求184的能力还可取决于例如在芯片组220的全局SMI使能寄存器240中所存储的值。
[0038]此外,与在触头中断路由寄存器228中所存储的SMI值不同的值,可阻止芯片组220响应于在触头130接收到的SMI信号182将SMI请求184提供给处理器110。例如,“不中断”值或者表明与SMI不同类型的中断(例如不可屏蔽的中断(匪I))的任何值,都可阻止芯片组220响应于在触头130接收到的SMI信号将SMI请求184提供给处理器110。
[0039]芯片组220可进一步包括用于锁定寄存器228的路由寄存器锁定模块227。在某些例子中,寄存器228可以是一次写入寄存器,并且模块227可通过在计算设备220复位之后对寄存器228的任何其他写入之前将值写入寄存器228来锁定寄存器228。例如,模块227可通过在复位之后将SMI值写入寄存器228来锁定寄存器228。在其他例子中,模块227可通过在复位之后将另一值(例如“不中断”值)写入寄存器228来锁定寄存器228。在其他例子中,寄存器228可能不是一次写入寄存器。在这样的例子中,模块227可包括锁定寄存器及管理模块和锁定寄存器228,如上面关于锁定寄存器232和模块234所述的。
[0040]在图2的例子中,芯片组220包含多个触头,至少包括触头130和230。在这样的例子中,芯片组220可包括与多个触头中的每一个相关联的相应组触头管理寄存器,如本文关于寄存器221所述的。例如,芯片组220可包括与触头130相关联的一组触头管理寄存器221和与触头230相关联的一组触头管理寄存器223。芯片组220还可包括用于额外多个触头的额外组触头管理寄存器。在这样的例子中,与多个触头之一相关联的每组触头管理寄存器(例如与触头230相关联的寄存器223),可分别包括触头配置寄存器、触头SMI使能寄存器和触头中断路由寄存器,如本文关于寄存器122、124和228所述的。
[0041]在这样的例子中,芯片组220可包括与多个触头中的每一个相关联的相应触头SMI使能寄存器,如本文关于寄存器124所述的。此外,在某些例子中,芯片组220还可包括与多个触头中的每一个相关联的相应触头中断路由寄存器,如本文关于寄存器228所述的。
[0042]芯片组220可以以本文关于模块126所描述的任何方式来锁定多个触头SMI使能寄存器中的每一个。例如,芯片组220可包括SMI使能寄存器锁定模块226,SMI使能寄存器锁定模块226可以以本文关于模块126所描述的任何方式来锁定与触头230相关联的触头SMI使能寄存器。此外,芯片组220可以以本文关于模块227所描述的任何方式来锁定多个触头中断路由寄存器中的每一个。例如,芯片组220可包括路由寄存器锁定模块229,路由寄存器锁定模块229以本文关于模块227所描述的任何方式来锁定与触头230相关联的触头中断路由寄存器。芯片组220还可包括没有相关联的触头管理寄存器或相应的锁定模块的至少一个额外触头。
[0043]在图2的例子中,I/O控制器250可包括多个配置寄存器252和访问管理器254。配置寄存器252可包括用来配置计算设备200的各方面操作的寄存器。例如,寄存器252可以被用来控制计算设备200的设置,比如电源设置(例如电压干线上的最大容许电压等)、错误代码、温度设置(例如最大容许温度、风扇速度等)以及诸如此类。
[0044]在某些例子中,阻止恶意软件(例如可执行指令)修改这些设置可能是有益的。然而,锁定这些设置以使得它们不能被更改可能是不利的。例如,允许计算设备200的受信任系统(例如基本输入/输出系统(B1S))在运行期间改变这些设置可能是有益的。同样地,在某些例子中,若访问管理器254接收有效访问信息,就可准予访问配置寄存器252。在这样的例子中,有效访问信息可以由受信任系统(例如B1S)排他地知悉。
[0045]在图2的例子中,访问管理器254可接收访问信息281。例如,可以从在处理器110上执行的指令(比如计算设备200的B1S的指令)接收访问信息281。若接收到的访问信息等同于存储在访问管理器254中的安全信息,则访问管理器254可准予访问配置寄存器252。例如,可在访问管理器254的访问寄存器256接收访问信息281。响应于在访问管理器254的访问寄存器256接收访问信息281,I/O控制器250可将SMI信号182提供给芯片组200 (例如在触头130),以便在处理器110上引起SMI。在某些例子中,由访问管理器254所引起的SMI例如可被用来确保访问信息281是由计算设备200的B1S提供给访问管理器254的ο
[0046]安全寄存器258可以是存储等同于正确(或有效)访问信息的安全信息的只写寄存器。比较器模块259可比较从安全寄存器258接收到的安全信息285与从访问寄存器256接收到的访问信息281。在图2的例子中,若模块259确定接收到的访问信息281等同于安全信息285,则比较器模块259可准予访问配置寄存器252。例如,模块259可清除锁定位或诸如此类。
[0047]如上面所指出,由访问管理器254所引起的SMI例如可被用来确保访问信息281是由计算设备200的B1S提供给访问管理器254的。例如,SMI可使处理器110调用SMI处理程序(例如可执行指令)。在某些例子中,SMI处理程序可清除访问寄存器256。在这样的例子中,如果B1S提供了访问信息,那么计算设备200就可在系统管理模式(SMM)下运行,在这种情况下B1S就可在SMI处理程序被调用之前完成它的寄存器更新操作。然而,如果非B1S指令提供访问信息281,那么SMI处理程序将在非B1S指令有机会改变配置寄存器252中的任何信息以前清除访问寄存器256,即使非B1S指令提供正确的访问信息281。这样,计算设备200可以确保仅B1S可访问配置寄存器并且减少对访问管理器254的字典式攻击的可能性。然而,如果非B1S指令将禁止值写入触头SMI使能寄存器124,则利用由访问管理器254所引起的SMI而提供的安全性就可能失效,因为在这种情况下,芯片组220将不会响应于在触头130的SMI信号182将SMI请求184提供给处理器110。正因如此,本文所述的例子了锁定触头SMI使能寄存器,以保护从计算资源(例如1/0控制器250)到计算设备的处理器的SMI通信路径。
[0048]在某些例子中,模块226、227、229、259以及计算设备200的任何其他模块的功能可以以被编码在机器可读存储介质上的可执行指令的方式、电子电路的方式或者它们的组合来实现。在图2的例子中,1/0控制器250可以是超级1/0。在其他例子中,计算设备200可包括任何其他计算资源来代替I/o控制器250。在这样的例子中,计算资源可以将SMI信号182提供给芯片组220。此外,在某些例子中,本文关于图1-2所述的功能和/或部件可以与本文关于图3-5中任何一个所述的功能和/或部件结合起来提供。
[0049]图3是用于锁定芯片组的SMI使能寄存器的另一示例性计算设备300的方框图。在图3的例子中,计算设备300可包括如以上关于图1所述的处理器110和计算资源150。计算设备300还可以包括如以上关于图2所述的芯片组220。在某些例子中,计算设备300还可以包括B1S模块360和包括SMI应用程序364的机器可读存储介质362。B1S模块360可存储用于实现计算设备300的B1S的指令。在图3的例子中,存储介质362与B1S模块360分离。在其他例子中,B1S模块360可包含存储介质362,并且除SMI应用程序364之外还包括用于实现计算设备300的B1S的指令。
[0050]在本文所述的例子中,“B1S模块”可以是包括被编码在机器可读存储介质上的一系列指令的模块,该指令至少实现计算设备的B1S功能。如本文所用,“机器可读存储介质”可以是包含、存储或者以别的方式编码有可执行指令的任何电子、磁性、光学或其他物理存储设备。例如,本文所述的任何机器可读存储介质可以是随机访问存储器(RAM)、快闪存储器、存储驱动器(例如硬盘),光盘只读存储器(CD-ROM)以及诸如此类或者它们的组合中的任何一种。此外,本文所述的任何机器可读存储介质可以是非临时性的。
[0051]在某些例子中,SMI应用程序364的各项功能可以以被编码在机器可读存储介质上的可执行指令的方式、电子电路的方式或者它们的组合来实现。在图3的例子中,SMI应用程序364的功能可以以在机器可读存储介质(例如存储介质362)上经过编码的可执行指令的方式来实现。在这样的例子中,处理器110可以读取、解码并执行存储在机器可读存储介质362上的SMI应用程序364的指令,以实现下面关于SMI应用程序364所描述的功能。在其他例子中,SMI应用程序364的功能可以以电子电路的方式或者电子电路与可执行指令组合的方式来实现。例如,SMI应用程序364的功能可以由计算设备300的独立于处理器的逻辑电路(例如电子电路)来实现。
[0052]在图3的例子中,SMI应用程序364可设定至少一个触头配置寄存器,来将芯片组220的触头配置为用于从计算资源150接收SMI信号182的GP10。例如,SMI应用程序364可以设定上面关于图1所描述的并且与触头130相关联的多个寄存器122,来将触头130配置为用于从计算资源150接收SMI信号182的GP10。SMI应用程序364还可以将芯片组220的至少一个触头SMI使能寄存器设定为使能值。例如,SMI应用程序364可以将上面关于图1所描述的并且与触头130相关联的触头SMI使能寄存器124设定为使能值。此外,SMI应用程序364可以将与芯片组220的触头相关联的触头中断路由寄存器设定为SMI值。例如,SMI应用程序364可以将上面关于图2所描述的并且与触头130相关联的触头中断路由寄存器228设定为SMI值。
[0053]在某些例子中,SMI应用程序364可以锁定芯片组220的位于芯片组220的触头的SMI路径中的每个寄存器。例如,SMI应用程序364可以锁定芯片组220的位于触头130的SMI路径中的每个寄存器。在本文所述的例子中,芯片组的触头的SMI路径可以包括多个芯片组寄存器,其中任何一个都可阻止芯片组响应于在该触头接收到的SMI信号将SMI请求提供给处理器。位于触头的SMI路径中的寄存器可包括例如与该触头相关联的触头中断路由寄存器和触头SMI使能寄存器。在其他例子中,SMI应用程序364可锁定触头的SMI路径中的至少一个寄存器。在某些例子中,SMI应用程序364可锁定被设定为使能值的触头SMI使能寄存器,以使得B1S模块对存储在触头SMI使能寄存器中的使能值的改变进行控制。例如,SMI应用程序364可以在将使能值写入寄存器124之后锁定寄存器124。
[0054]例如,SMI应用程序364可以锁定寄存器124,以使得B1S可控制被存储在寄存器124中的使能值变更。例如,芯片组220可以提供与寄存器124相关联的锁定寄存器232,如上面关于图2所述,并且芯片组220可以响应于将一个值(例如解锁值)写入锁定寄存器232而将SMI请求284提供给处理器110。在这样的例子中,若由B1S执行则B1S可允许写操作,而若是非B1S指令尝试了该写操作则拒绝写入。在某些例子中,SMI应用程序364可以将锁定值写入锁定寄存器232以便锁定住寄存器124。
[0055]在图3的例子中,SMI应用程序364还可以锁定被设定成SMI值的触头中断路由寄存器,以使得B1S模块控制被存储在该触头中断路由寄存器中的SMI值变更。例如,SMI应用程序364可以在将SMI值写入寄存器228之后锁定寄存器228。在某些例子中,SMI应用程序364可以锁定寄存器228,以使得B1S可以控制存储在寄存器228中的SMI值变更。例如,芯片组220可提供与寄存器124相关联的锁定寄存器332,并且芯片组220可响应于对锁定寄存器332进行写入的企图而将SMI请求284提供给处理器110。在这样的例子中,若由B1S执行则B1S可允许写操作,而若是非B1S指令企图该写操作则拒绝写入。在某些例子中,SMI应用程序364可将锁定值写入锁定寄存器332,以便锁定住寄存器228。SMI应用程序364还可以设定芯片组220的全局SMI寄存器。例如,SMI应用程序364可以如上面关于图2所述那样将全局SMI使能寄存器240设定为全局使能值。
[0056]在某些例子中,B1S模块360可以包含包括SMI应用程序364的存储介质362。在这样的例子中,SMI应用程序364的指令可以是计算设备300的B1S的一部分。在某些例子中,B1S可以包括用于执行通电自检(POST)的指令。在这样的例子中,上面关于SMI应用程序364所述的指令中的至少一些可以作为该POST的一部分来执行。例如,用于执行POST的指令可以包括SMI应用程序364的指令。在某些例子中,本文关于图3所述的功能和/或部件可以与本文关于图1-2和4-5中任何一个所述的功能和/或部件结合起来提供。
[0057]图4是用于锁定芯片组的SMI使能寄存器的示例性方法400的流程图。虽然下面参照图1的计算设备100来描述方法400的执行,但是可以利用用于执行方法400的其他合适部件(例如计算设备200或300)。此外,方法400可以以被编码在机器可读存储介质上的可执行指令的方式、电子电路的方式或者它们的组合来实现。
[0058]在方法400的步骤405,芯片组120的至少一个触头配置寄存器122可被设定成将该芯片组的触头130配置为GP1来接收输入。在步骤410,可将使能值写入芯片组120的触头SMI使能寄存器124。在步骤415,可将锁定值写入模块126的SMI使能锁定寄存器以锁定寄存器124。在某些例子中,可响应于处理器110所执行的指令,由芯片组120来对寄存器122、寄存器124和/或锁定寄存器进行写入。
[0059]在步骤420,芯片组120可以至少部分地根据存储在触头SMI使能寄存器中的使能值,响应于在触头130从计算资源150接收SMI信号182而将SMI请求184提供给处理器100。在某些例子中,例如若至少使能值被存储在触头SMI使能寄存器中,SMI值被存储在触头中断路由寄存器中,而且全局使能值被存储在全局SMI使能寄存器中,则可以响应于SMI信号182来提供SMI请求184。在这样的例子中,例如若将禁止值存储在寄存器124中,则芯片组不会响应于SMI信号182来提供SMI请求184。
[0060]图5是用于阻止对芯片组的SMI使能寄存器进行写操作的示例性方法500的流程图。虽然下面参照图2的计算设备200来描述方法500的执行,但是可利用用于执行方法500的其他合适部件(例如计算设备100或300)。此外,方法500可以以被编码在机器可读存储介质上的可执行指令的方式、电子电路的方式或者它们的组合来实现。
[0061]在方法500的步骤505,芯片组220的至少一个触头配置寄存器122可被设定成将该芯片组的触头配置为GP1来接收输入。例如,可将与触头130相关联的寄存器122配置为GP1来接收输入。在步骤510,可将芯片组220的全局SMI使能寄存器240设定为全局使能值。在步骤515,可将使能值写入芯片组120的触头SMI使能寄存器124。例如,可将使能值写入与触头130相关联的寄存器124。在步骤520,可将锁定值写入模块126的SMI使能锁定寄存器232以锁定寄存器124。在某些例子中,可响应于处理器110所执行的指令,由芯片组220来对寄存器122、寄存器124、锁定寄存器232和/或寄存器240进行写入。
[0062]在方法500的步骤525,可以将SMI值写入芯片组220的触头中断路由寄存器。例如,可将该SMI值写入与触头130相关联的寄存器228。在步骤530,可将锁定值写入模块227的路由锁定寄存器232以锁定寄存器228。在某些例子中,可响应于处理器110所执行的指令,由芯片组220来对寄存器228、寄存器232或者两者进行写入。在方法500的步骤535,若将锁定值存储在SMI使能锁定寄存器中,则芯片组220可阻止对触头SMI使能寄存器124进行写入的任何操作,并且若将锁定值存储在路由锁定寄存器中则可阻止对触头中断路由寄存器228进行写入的任何操作。
[0063]在方法500的步骤540,如上面关于图4所述,芯片组220可以至少部分地根据存储在触头SMI使能寄存器中的使能值,响应于在触头130从计算资源250接收SMI信号182而将SMI请求184提供给处理器100。在步骤545,芯片组220可确定某个值是否被写入与触头SMI使能寄存器124相关联的锁定寄存器或者与触头中断路由寄存器228相关联的锁定寄存器。如果不是,方法500可前进到步骤555,在那里方法500可停止。然而,如果某个值被写入SMI使能锁定寄存器或者路由锁定寄存器,那么方法500可前进到步骤550,在那里芯片组220例如可将SMI请求184提供给处理器110,以使得处理器可以确定该写操作(例如使锁定寄存器解锁的写操作)是否由计算设备200的B1S来进行。如果是这样,那么计算设备200可允许该写操作。如果不是,那么计算设备200可阻止该写操作。然后方法500可前进到步骤555,在那里方法500可停止。
【权利要求】
1.一种计算设备,包括: 处理器; 计算资源,用于生成系统管理中断(SMI)信号;以及 芯片组,包括: 第一触头,用于从所述计算资源接收所述SMI信号; 至少一个触头配置寄存器,用于将所述第一触头配置为通用输入/输出(GP1)来接收输入;以及 与所述第一触头相关联的第一触头SMI使能寄存器,其中存储在所述第一触头SMI使能寄存器中的使能值与其他芯片 组信息结合起来,使所述芯片组能够响应于所接收的SMI信号而将SMI请求提供给所述处理器; 其中所述芯片组用于锁定所述第一触头SMI使能寄存器;并且其中存储在所述第一 SMI使能寄存器中的禁止值用于阻止所述芯片组响应于所接收的SMI信号而将SMI请求提供给所述处理器。
2.如权利要求1所述的计算设备,其中: 所述第一触头SMI使能寄存器是一次写入寄存器;并且 所述芯片组用于将所述使能值写入所述一次写入寄存器,来锁定所述第一触头SMI使能寄存器。
3.如权利要求1所述的计算设备,其中所述芯片组进一步包括: SMI使能锁定寄存器,其中所述芯片组用于将锁定值写入所述SMI使能锁定寄存器,来锁定所述第一触头SMI使能寄存器;并且 其中所述至少一个触头配置寄存器是用于共同地将所述第一触头配置为通用输入/输出(GP1)来接收输入的多个触头配置寄存器。
4.如权利要求1所述的计算设备,其中所述芯片组包括: 多个触头,包括所述第一触头和至少第二触头; 全局SMI使能寄存器,其中所述其他芯片组信息包括存储在所述全局SMI使能寄存器中的值;以及 分别与所述多个触头相关联的多个触头SMI使能寄存器,所述多个触头SMI使能寄存器包括所述第一触头SMI使能寄存器和至少第二触头SMI使能寄存器; 其中所述芯片组用于锁定所述多个触头SMI使能寄存器中的每一个。
5.如权利要求4所述的计算设备,其中所述芯片组进一步包括: 分别与所述多个触头相关联的多个触头中断路由寄存器,其中所述其他芯片组信息包括存储在与所述第一触头相关联的所述触头中断路由寄存器中的值; 其中,对于所述触头中断路由寄存器中的每一个,与存储在所述触头中断路由寄存器中的SMI值不同的值用于阻止所述芯片组响应于在所述触头接收的SMI信号而将SMI请求提供给所述处理器;并且 其中所述芯片组用于锁定所述触头中断路由寄存器中的每一个。
6.如权利要求1所述的计算设备,其中所述计算资源是输入/输出(I/O)控制器,所述输入/输出(I/O)控制器包括: 多个配置寄存器;访问管理器,用于: 接收访问信息;以及 如果所接收的访问信息等同于存储在所述I/O控制器上的安全信息,则准予访问所述配置寄存器; 其中所述I/o控制器用于响应于接收所述访问信息而将所述SMI信号提供给所述芯片组。
7.如权利要求6所述的计算设备,其中所述访问管理器包括: 访问寄存器,用于接收所述访问信息,其中所述I/O控制器用于响应于在所述访问寄存器接收所述访问信息而将所述SMI信号提供给所述芯片组; 只写安全寄存器,用于存储所述安全信息;以及 比较器,用于比较在所述访问寄存器所接收的所述访问信息与存储在所述安全寄存器中的所述安全信息。
8.一种非临时性机器可读存储介质,包括指令,该指令如果被执行则使计算设备的处理器: 设定至少一个触头配置寄存器,以将所述计算设备的芯片组的触头配置为通用输入/输出(GP1)来从所述计算设备的计算资源接收SMI信号; 将所述芯片组的触头系统管理中断(SMI)使能寄存器设定为使能值,其中存储在所述触头SMI使能寄存器中的所述使能值用于与其他芯片组信息结合起来,使所述芯片组能够响应于经所述触头接收所述SMI信号而将SMI请求提供给所述处理器;以及 锁定被设定为所述使能值的所述触头SMI使能寄存器,使得所述计算设备的B1S模块控制被存储在所述触头SMI使能寄存器中的所述使能值的改变; 其中存储在所述触头SMI使能寄存器中的禁止值用于阻止所述芯片组响应于经所述触头所接收的所述SMI信号而将SMI请求提供给所述处理器。
9.如权利要求8所述的存储介质,进一步包含指令,该指令如果被执行则使所述处理器: 将与所述触头相关联的触头中断路由寄存器设定为SMI值,其中与存储在所述触头中断路由寄存器中的所述SMI值不同的值用于阻止所述芯片组响应于在所述触头接收的SMI信号而将SMI请求提供给所述处理器,其中所述其他芯片组信息包括存储在所述触头中断路由寄存器中的值;以及 锁定被设定为所述SMI值的所述触头中断路由寄存器,使得所述B1S模块控制被存储在所述触头中断路由寄存器中的所述SMI值的改变。
10.如权利要求9所述的存储介质,进一步包含指令,该指令如果被执行则使所述处理器: 将锁定值写入与所述触头SMI使能寄存器相关联的SMI使能锁定寄存器,以锁定所述触头SMI使能寄存器;以及 将锁定值写入与所述中断路由控制寄存器相关联的路由锁定寄存器,以锁定所述触头中断路由寄存器。
11.如权利要求9所述的存储介质,进一步包含指令,该指令如果被执行则使所述处理器:执行通电自检(POST),执行通电自检包括:设定所述触头SMI使能寄存器,锁定所述触头SMI使能寄存器,设定所述触头中断路由寄存器以及锁定所述触头中断路由寄存器;以及 设定全局SMI使能寄存器,其中所述其他芯片组信息包括存储在所述全局SMI使能寄存器中的值。
12.如权利要求8所述的存储介质,进一步包含指令,该指令如果被执行则使所述处理器: 锁定所述芯片组的位于所述触头的SMI路径中的每个寄存器。
13.—种方法,包括: 设定计算设备的芯片组的至少一个触头配置寄存器,以将所述芯片组的触头配置为通用输入/输出(GP1)来接收输入; 将使能值写入所述芯片组的触头系统管理中断(SMI)使能寄存器,其中存储在所述触头SMI使能寄存器中的禁止值用于阻止所述芯片组响应于所述SMI信号而将SMI请求提供给所述处理器; 将锁定值写入SMI使能锁定寄存器,以锁定所述触头SMI使能寄存器;以及至少部分地根据存储在所述触头SMI使能寄存器中的所述使能值,响应于在所述触头从所述计算设备的计算资源接收所述SMI信号而将SMI请求从所述芯片组提供给所述处理 器。
14.如权利要求13所述的方法,包括: 如果所述锁定值被存储在所述SMI使能锁定寄存器中,则阻止对所述触头SMI使能寄存器进行写入的任何操作; 将SMI值写入所述芯片组的触头中断路由寄存器,其中与存储在所述触头中断路由寄存器中的所述SMI值不同的值用于阻止所述芯片组响应于在所述触头接收的规定逻辑电平的信号而将SMI请求提供给所述处理器; 将锁定值写入与所述触头中断路由寄存器相关联的路由锁定寄存器;以及如果所述锁定值被存储在所述路由锁定寄存器中,则阻止对所述触头中断路由寄存器的任何写操作。
15.如权利要求14所述的方法,进一步包括: 设定全局SMI使能寄存器; 如果向所述SMI使能锁定寄存器写入值,则将SMI请求提供给所述处理器;以及 如果向所述路由锁定寄存器写入值,则将SMI请求提供给所述处理器。
【文档编号】G06F13/14GK104054063SQ201280067087
【公开日】2014年9月17日 申请日期:2012年1月31日 优先权日:2012年1月31日
【发明者】格雷戈里·P·齐亚尔尼克, 迈克尔·R·德拉姆, 马克·A·皮翁卡 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1