使处理器总线代理停顿的制作方法

文档序号:6568167阅读:139来源:国知局
专利名称:使处理器总线代理停顿的制作方法
技术领域
本发明的实施例总体上涉及数据处理领域,更具体地,涉及用于使处理器总线代理停顿(quiescing)的装置、方法和系统。
技术背景计算系统频繁地对敏感和保密信息进行操作。在一些情况下,由 于该信息是很有价值的,因此它对黑客(和/或其它恶意实体)很有吸引 力。计算系统正在使用越来越复杂的安全特性来保护它们所操作的有 价值的信息。在一些情况下,这些安全特性使得计算系统能够建立受 保护域。术语"受保护域"指的是一个执行环境,其中软件与未授权 的软件充分隔离。许多计算系统也包括管理特性,以支持该计算系统的远程管理。 这些管理特性可以包括常常实现在计算系统的芯片组中的多种硬件 (例如,微控制器)、固件、和/或软件组件。在一些情况下,这些管理 特性提供了对被管理系统的处理器总线、存储器、以及其它可能敏感 的组件的访问。在一些情况下,计算系统的管理特性能够与该计算系统的安全特 性进行交互。例如,计算系统的管理特性典型地允许远程系统访问并 控制该计算系统的各个方面。黑客(或其它恶意实体)可以滥用由这些 管理特性提供的访问和控制来损害 一个或更多安全特性。可能的滥用计算系统的管理特性的例子是,使用这些特性对受保 护域的建立造成干扰。典型地,受保护域的建立包括加入处理,用于 使该计算系统的一个或多个处理器能够加入该受保护域。黑客可能会 滥用计算系统的管理特性来阻止处理器加入受保护域。于是该处理器 会被"劫持",并且(有可能)被用来损害该计算系统上的敏感数据。


通过示例而非限制说明了本发明的实施例,在附图中,相似的参 考数字指代相似的单元。图1是说明了根据本发明的实施例实现的计算系统的选定方面 的高级框图。图2是说明了建立受保护域的处理的概念图。图3是说明了根据本发明的实施例的管理引擎(manageability engine)的选定方面的框图。图4是根据本发明的实施例实现的管理引擎的选定方面的框图。图5是说明了根据本发明的实施例,用于使处理器总线代理停顿 的方法的某些方面的流程图。图6是说明了根据本发明的实施例,用于使管理引擎停顿的方法 的某些方面的流程图。图7A和7B是说明了计算系统的选定方面的框图。
具体实施方式
本发明的实施例通常旨在提供用于使处理器总线代理停顿的方 法、装置和系统。术语"处理器总线代理"是指能够访问计算系统的 处理器总线(例如,前端总线)的组件。处理器总线代理可以支持计算 系统的管理特性。在一个实施例中,处理器开始建立该计算系统的受 保护域。(至少部分地)响应于开始建立该受保护域,处理器总线代理 被停顿。如下面将要进一步说明的,由于处理器总线代理被停顿,因 此降低了它对受保护域的建立造成干扰的能力。图1是说明了根据本发明的实施例实现的计算系统的选定方面 的高级框图。计算系统100包括一个或多个处理器102厂102N。术语 处理器可以是指物理处理器和/或逻辑处理器。物理处理器例如可以 包括中央处理单元、微控制器、分区核心等等。逻辑处理器例如是指 这样的情况,其中两个或更多线程共享物理资源并且为两个逻辑处理 器复制架构状态。例如,物理处理器102i和102N分别包括逻辑处理 器104厂104n和106广106n。逻辑处理器104广104n禾口 106广106n例如可以是线程、超线程、自引导处理器(bootstrap processor),启动逻辑 处理器、响应逻辑处理器等等。受保护存储器108为可由处理器处理 的指令和/或数据提供了受保护的存储器(和/或存储器的受保护区 域)。处理器102厂102N通过处理器总线116与存储器控制器118耦合。 存储器控制器118 (至少部分地)控制处理器102和存储器子系统之间 的信息流。在一个实施例中,存储器控制器118包括管理引擎120和 (多个)已认证代码模块112。管理引擎120可以包括硬件、软件、和/ 或固件以支持一个或多个管理功能。例如,管理引擎120可以包括微 控制器、受保护存储器、和/或受保护通信信道。将参照图3和4在 下面进一步论述管理引擎120。在一个实施例中,存储器控制器118包括一个或多个已认证存储 模块112。己认证存储模块112可以提供可信代码(和/或数据)以便为 计算系统100提供某些功能。在一个实施例中,可信代码(和/或数据) 能够被存储在可以是位于受保护存储器118中的已认证存储模块112 中,并且能由处理器来执行。该代码是可信的,部分是因为它被安全 地存储和/或在使用之前被认证。在一个实施例中,用于建立受保护 域的协议被存储在已认证存储模块112中。存储器122为计算系统 100提供了易失存储器。在一个实施例中,存储器122包括一个或多 个动态随机存取存储器(DRAM)设备。输入/输出(I/0)控制器124至少部分地控制输入到和输出自计算 系统100的信息流。在一个实施例中,管理引擎120具有与I/O控制 器124的私有通信链路114。私有通信链路114支持外部实体(例如, 管理控制台)和管理引擎120之间的私有链接。接口 128代表了一个 或更多1/0接口。这些接口例如可以包括通用串行总线(USB)、外围 组件互连(PCI)、 PCI Express等等。此外,I/O控制器124包括一个或 多个有线或无线网络接口 130,以连接到网络126。在一个实施例中,计算系统100支持多个安全特性,例如建立受 保护域的能力。图2是说明了建立受保护域的处理的概念图。最初, 计算系统100包括标准域200。标准域200可以包括操作系统202和一个或多个应用204。操作系统202可以被归类为ring-0代理,这是 因为它具有最高级的访问权限。相反,应用204可以被归类为ring-3 代理,这是因为它们具有减小的访问权限集合。硬件205 (例如,(多 个)处理器、芯片组、存储器等)支持标准域200,。在任意时刻,该计算系统的组件(典型地,ring-0组件)请求启动 受保护域210。用于(至少部分地)定义受保护域的建立的协议的实现 可以被存储在已认证代码模块(例如,图1中所示的112)中并被载入 (或部分地载入)到受保护存储器(例如,图1中所示的108)中。受保护 域210的启动(或建立)典型地是分阶段实现的。在建立处理的第一阶 段中,有加入处理。该加入处理允许每个处理器(物理的和/或逻辑的) 加入受保护域210。在一个实施例中,处理器指令GETSEC(SENTER) 触发该加入处理。在一个实施例中,寄存器(例如,图1中所示的现 有寄存器132和加入寄存器130)支持该加入处理。现有寄存器132 具有与该计算系统中的每个处理器相对应的表项。随着每个处理器加 入该受保护域,加入寄存器130中的一个表项被设置。在一个实施例 中,当加入寄存器130具有与现有寄存器132中的每个表项匹配的表 项时,所有的处理器均已加入该受保护域。在该加入处理完成后,域管理器222被例如从已认证代码模块载 入到存储器中。域管理器222提供了标准域208和受保护域210之间 的隔离。受保护域210可以包括applet 216和内核218。术语内核是 指提供硬件和上层软件之间的接口的软件。applet是处理数据的软件 组件。在一个实施例中,硬件224支持标准域2002和受保护域210。 硬件224例如可以包括一个或多个处理器、芯片组、以及可信平台模 块。可信平台模块是指提供一个或多个可信计算特性的芯片。在一个实施例中, 一个或多个处理器总线代理可以被动态地停 顿,以便例如减少处理器总线代理对计算系统的一个或更多安全特性 造成干扰的可能。例如, 一个处理器总线代理可以在受保护域210的 建立(至少一部分)期间被停顿。下面描述了本发明的一个实施例,其 中处理器总线代理是管理引擎。此外,下述实施例论述了在建立受保 护域期间使该管理引擎停顿。在一个替代性的实施例中,可以使不同的(或额外的)处理器总线代理停顿。类似地,在一个替代性的实施例 中,使处理器总线代理停顿是可以在除建立处理器总线代理之外的情 况下进行的。图3是说明了根据本发明的实施例的管理引擎的选定方面的框 图。在一个实施例中,控制受保护域的建立的处理器能够停顿和唤醒 (revive)管理引擎300。使管理引擎300停顿的能力有助于确保管理引 擎300不会对受保护域的建立(和/或其它安全特性的操作)造成干扰。在一个实施例中,存储器318存储管理引擎300的固件代码。该 固件被分成两个段引导固件(boot firmware) 320和应用固件322。引 导固件320可以具有互联网协议(IP)地址,其位于管理引擎300的正 常加电重置矢量中。可以从受保护存储器载入引导固件320,以减少 该代码中的未经授权的改变的可能性。受保护存储器可以被实现为闪 速存储器、只读存储器等。在闪速存储器的情况下,可以通过在闪存 编程处理的末尾设置闪存加锁位(flash lockdown bit)来保护该存储器。 应用固件322是典型地用于实现管理功能的应用代码。在许多情况 下,应用固件322可以由不同于引导固件320的厂商来提供。管理引擎300包括存储分区302-308。 一个或多个存储分区 302-308可以是可信存储分区。可信存储分区是指仅可由管理引擎 300访问的存储分区。在一个实施例中, 一个或多个隔离锁存器 310-316与可信存储分区302-308相关联。隔离锁存器310-316为可 信存储分区302-308提供了受保护接口。也就是说,隔离锁存器 310-316可以允许计算系统(例如,图1中所示的计算系统IOO)的处 理器到达可信存储分区302-308。类似地,隔离锁存器310-316可以 允许可信存储分区302-308到达所述处理器(或其它实体)。管理引擎(ME)安全重置矢量302提供了可信存储分区以存储在 安全重置的情况下要遵守的矢量。在所说明的实施例中,ME安全重 置矢量302提供了到ME安全重置代码308的跳转。在一个实施例中, ME安全重置代码308提供了使管理引擎300停顿的逻辑。术语使管 理引擎300 "停顿"概括地是指限制管理引擎300给其关联的计算系 统带来安全威胁的能力。使管理引擎300停顿可以包括锁定其内部加电状态;命令其进入休眠状态;和/或命令其进入自旋锁。术语自 旋锁例如是指这样一个锁,其中一个线程在循环中等待。典型地,自 旋锁被保持,直到它们被释放,或者直到该线程进入休眠。在一个实施例中,ME安全重置代码308响应于ME安全重置命 令而执行以下任务。ME安全重置代码308调用已注册的任何经认证 的挂起回调。ME安全重置确认位310被例如设置在状态寄存器中, 以确认接收到安全重置命令。然后ME安全重置代码308通过例如实 现ME休眠状态、ME自旋锁等来捕获对ME的控制。在一个实施例 中,ME安全重置代码308设置ME安全重置确认位来指示例如使该 ME停顿了 。在控制了 ME之后,ME安全重置代码308可以等待ME 安全重置恢复命令314。响应于接收到ME安全重置恢复命令314, ME安全重置代码唤醒ME (例如,取消ME休眠状态或ME自旋锁)。在一个实施例中,ME安全重置代码308支持附加的功能。例如, 安全重置代码308可以对代码进行认证、测试代码、为其自身添加功 能等。锁存器316可以提供接口以支持ME安全重置代码308的这些 附加功能中的一个或多个。图4是根据本发明的实施例实现的管理引擎400的选定方面的框 图。管理引擎400包括微控制器410、存储器420、私有通信链路430 和固件440。在一个实施例中, 一个或多个这些组件经由如所示的存 储器引擎互连450而互相连接。微控制器410执行与管理引擎400相 关的代码。存储器420可以包括通用存储器、可信存储器、和/或高 速缓沖存储器,以存储管理引擎400的代码和数据。在一个实施例中, 固件440存储引导固件442和应用固件444。现在转到图5-6,参照流程图,针对计算机软件、固件、和/或硬 件,描述了与本发明的实施例相关的特定方法。这些方法要由计算系 统执行,并且可以构成状态机或由计算机可执行指令组成的计算机程 序。计算机可执行指令可以用计算机编程语言来编写,或者可以用固 件逻辑来实现。如果用符合已知标准的编程语言编写,则这样的指令 可以在各种硬件平台上执行并且用于与各种操作系统交互。此外,本 发明的实施例并不是针对任何特定编程语言来说明的。可以理解,各种编程语言都可以用于实现这里所述的本发明的实施例。此外,本领 域通常以一种或另一种形式(例如,程序、过程、处理、应用等)来谈 及软件,作为采取动作或引发结果。这样的表达仅仅是一种简写方式, 用于表述计算设备执行该软件使得该设备执行动作或产生结果。图5是说明了根据本发明的实施例,用于使处理器总线代理停顿 的方法的某些方面的流程图。处理器总线代理例如可以是管理引擎。 参照处理块502,处理器开始建立受保护域。处理器可以是物理处理 器和/或逻辑处理器。在一个实施例中,控制受保护域的建立的处理 器(或者,为了便于引用,处理器)是自引导处理器。参照处理块504,处理器使处理器总线代理停顿。术语"停顿" 概括地是指限制处理器总线代理对相关的计算系统的一个或多个安 全特性造成干扰的能力。在一个实施例中,使处理器总线代理停顿是 指限制(或者可能地,拒绝)处理器总线代理对受保护域的建立造成干 扰的能力。使处理器总线代理停顿的例子包括向处理器总线代理发 信号以指示锁定其内部加电状态;向处理器总线代理发信号以指示进 入休眠状态;和/或向处理器总线代理发信号以指示实现自旋锁。参照处理块506,处理器至少部分地建立受保护域。在一个实施 例中,(至少部分地)建立受保护域是指实现建立处理的一个或多个阶 段。例如,在一个实施例中,建立受保护域是指完成加入处理,该加 入处理用于将计算系统的处理器加入受保护域。参照处理块508,处理器唤醒(或部分地唤醒)处理器总线代理。 在一个实施例中,紧跟着(或响应于)受保护域的建立(至少一部分), 唤醒处理器总线代理。术语"唤醒"处理器总线代理是指将处理器总 线代理返回到活动状态。例如,唤醒处理器总线代理可以包括解锁 管理引擎的内部加电状态;命令处理器总线代理退出休眠状态;和/ 或命令处理器总线代理退出自旋锁。在一个实施例中,处理器总线代理是管理引擎(例如,图3中所 示的管理引擎300)。图6是说明了根据本发明的实施例,用于使管理 引擎停顿的方法的某些方面的流程图。从防篡改持久性存储器(例如, 图3中所示的320)载入该管理引擎的引导固件。在一个实施例中,如604所示,在载入引导固件之后对其进行认证。例如,已认证代码模 块可以对引导固件的加密签名进行认证。在606,管理引擎提供一指 示,指出其引导固件已被认证。例如,管理引擎可以设置ME引导固 件有效位锁存器(例如,图3中所示的锁存器316),以指示ME引导 固件已被认证。参照处理块608,处理器微码进行检査以查看ME引导固件是否 已被认证。在一个实施例中,在建立受保护域开始时进行该检查。例 如,可以先于开始加入处理而执行该检查,该加入处理用于将计算系 统的处理器加入到受保护域中。在610,控制受保护域的建立的处理器(或者,为了便于引用,处 理器)开始对管理引擎进行安全重置。在一个实施例中,安全重置限 制了管理引擎对受保护域的建立造成干扰的能力。也就是说,在一个 实施例中,安全重置是一种用于使管理引擎停顿的机制。图7A和7B是分别说明计算系统700和800的选定方面的框图。 计算系统700包括与互连720耦合的处理器710。在一些实施例中, 术语处理器和中央处理单元(CPU)可以互换使用。在一个实施例中, 处理器710是加州Santa Clara的英特尔公司提供的XEON⑧处理器家 族中的处理器。在一个替代性的实施例中,可以使用其它处理器。在 另一个替代性的实施例中,处理器710可以包括多个处理器核心。根据一个实施例,互连720与芯片730通信。在一个实施例中, 芯片730是芯片组的一个组件。互连720可以是点到点互连,或者它 可以被连接到两个或更多芯片(例如,属于该芯片组的)。芯片730包 括存储器控制器740,其可以与主系统存储器(例如,如图l中所示) 耦合。在一个替代性的实施例中,存储器控制器740可以和处理器 710在一个芯片上,如图7B所示。在一个实施例中,管理引擎742 可以被动态地停顿,以便例如限制其对计算系统700和800的安全特 性造成干扰的能力。输入/输出(I/0)控制器750对处理器710和一个或多个I/O接口 (例如,有线或无线网络接口)和/或I/O设备之间的数据流进行I/O控 制。例如,在所说明的实施例中,I/O控制器750控制处无线发射机和接收机760之间的数据流。在一个替代性的实施例中, 存储器控制器740和I/O控制器750可以被集成到单个控制器中。也可以作为用于存储机器可执行指令的机器可读介质来提供本 发明的实施例的要素。该机器可读介质可以包括但不限于闪速存储 器、光盘、光盘只读存储器(CD-ROM)、数字通用/视频盘(DVD) ROM、 随机存取存储器(RAM)、可擦写可编程只读存储器(EPROM)、电可擦 写可编程只读存储器(EEPROM)、磁卡或光卡、传播媒体或其它类型 的适于存储电子指令的机器可读媒体。例如,本发明的实施例可以被 下载为计算机程序,该程序可以通过用载波或其它传播介质实现的数 据信号经由通信链路(例如,调制解调器或网络连接)而被从远程计算 机(例如,服务器)传输到请求计算机(例如,客户机)。应当理解,在该说明书中对于"一个实施例"或"实施例"的引 用表示结合该实施例描述的特定特征、结构、或特点被包括在本发明 的至少一个实施例中。因此,要强调并且应理解的是,在该说明书的 各个部分中对于"实施例"或"一个实施例"或"替代性的实施例" 的两个或更多引用并不是必然引用同一个实施例。此外,所述特定特 征、结构或特点可以被适当地组合在本发明的一个或多个实施例中。类似地,应当理解,在本发明的实施例的前述说明中,各种特征 有时被一起分组到单个实施例、附图或其说明中,以用于简化公开内 容,帮助理解一个或更多各种发明方面。然而,不应将该公开方法解 释为反映出所要保护的主题需要比在每项权利要求中明确记载的特 征还多的特征。而是,如以下权利要求所反映的,发明方面可以在于 少于单个前面公开的实施例的所有特征。因此,特意将跟在具体实施 方式部分之后的权利要求并入到该具体实施方式
部分中。
权利要求
1、一种方法,包括开始建立具有一个或多个处理器的计算系统的受保护域;以及响应于开始建立所述受保护域,至少部分地使处理器总线代理停顿。
2、 如权利要求1所述的方法,其中,开始建立所述计算系统的受保护域包括开始加入处理,所述加入处理用于将所述一个或多个处理器加入 到所述受保护域。
3、 如权利要求l所述的方法,其中,响应于开始建立所述受保护域而至少部分地使所述处理器总线代理停顿包括至少以下之一 向所述处理器总线代理发信号以指示锁定其加电状态; 向所述处理器总线代理发信号以指示进入休眠状态;以及 向所述处理器总线代理发信号以指示实现自旋锁。
4、 如权利要求3所述的方法,其中,响应于开始建立所述受保 护域而至少部分地使所述处理器总线代理停顿包括开始对所述处理器总线代理进行安全重置;以及 从所述处理器总线代理接收确认,所述确认用于指示所述处理器 总线代理的安全重置开始了。
5、 如权利要求4所述的方法,其中,所述处理器总线代理是管 理引擎。
6、 如权利要求1所述的方法,还包括 至少部分地建立所述受保护域;以及响应于至少部分地建立所述受保护域,唤醒所述处理器总线代理。
7、 根据权利要求6所述的方法,其中,响应于至少部分地建立所述受保护域而唤醒所述处理器总线代理包括至少以下之一 向所述处理器总线代理发信号以指示解锁其加电状态; 向所述处理器总线代理发信号以指示退出休眠状态;以及 向所述处理器总线代理发信号以指示退出自旋锁。
8、 一种装置,包括受保护域建立处理控制器,用于开始建立计算系统的受保护域;以及处理器总线代理,其与所述受保护域建立处理控制器耦合,其中, 所述处理器总线代理能够响应于来自所述受保护域建立处理的指令 而停顿。
9、 如权利要求8所述的装置,其中,所述受保护域建立处理控 制器是自引导处理器。
10、 如权利要求8所述的装置,其中,所述处理器总线代理是管 理引擎。
11、 如权利要求IO所述的装置,其中,所述管理代理是在存储 器控制器内实现的,所述存储器控制器用于至少部分地控制所述计算 系统的存储器访问。
12、 如权利要求10所述的装置,其中,所述管理引擎包括 安全重置矢量,用于提供用以使所述管理引擎停顿的逻辑。
13、 如权利要求12所述的装置,其中,所述用以使所述管理引 擎停顿的逻辑包括至少以下之一用以锁定所述管理引擎的内部加电状态的逻辑; 用以实现所述管理引擎的休眠状态的逻辑;以及 用以实现所述管理引擎的自旋锁的逻辑。
14、 如权利要求12所述的装置,其中,所述管理引擎还包括 管理引擎引导固件签名,用于验证与所述管理引擎相关的引导固件。
15、 如权利要求14所述的装置,其中,所述管理引擎还包括 管理引擎安全重置控制位,用于使所述管理引擎停顿;以及 管理引擎安全重置恢复控制位,用于唤醒所述管理引擎。
16、 如权利要求14所述的装置,其中,所述管理引擎还包括至 少以下之一管理引擎引导固件有效位,用于指示所述管理引擎引导固件是否 被验证;以及管理引擎安全重置确认位,用于指示所述管理引擎处于安全重置 状态。
17、 一种系统,包括处理器,用于建立所述系统的受保护域;处理器总线代理,其耦合到所述处理器,所述处理器总线代理能 够响应于来自所述处理器的命令而被锁定;以及存储器,其与所述处理器总线代理耦合,所述存储器用于为所述 处理器总线代理提供持久性存储。
18、 如权利要求17所述的系统,其中,所述处理器总线代理至 少部分地是存储器控制器的组件。
19、 如权利要求18所述的系统,其中,所述处理器总线代理是管理引擎。
20、如权利要求18所述的系统,其中,所述处理器是自引导处 理器。
全文摘要
本发明的实施例通常旨在提供一种用于使处理器总线代理停顿的方法、装置和系统。在一个实施例中,处理器开始建立计算系统的受保护域。与该处理器耦合的处理器总线代理被停顿,以减少对受保护域的建立造成干扰的可能。也描述并声明了其它实施例。
文档编号G06F21/02GK101223534SQ200680026117
公开日2008年7月16日 申请日期2006年7月6日 优先权日2005年7月22日
发明者D·杨, M·德尔 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1