专利名称:用于执行安全的嵌入式容器的处理器扩展的制作方法
技术领域:
本公开总体上涉及电子领域。更具体地说,本发明的实施例涉及用于执行 安全的嵌入式容器的处理器扩展。
背景技术:
计算机系统可以实现为分层的设备,例如,包括硬件层、固件和操作系统层以及应用程序层。计算机系统的硬件层可以称为物理平台。物理平台可以包括处理器、芯片组、通信信道、存储器、板和系统。计算机系统还可以包括可管理性引擎,例如包括专门用于允许例如经由远程管理控制台通过通信网络来远程地管理计算机系统的微控制器。然而,由于多种原因,包括成本、尺寸、功耗、散热、受限的MIPS (每秒百万条指令)等等,在一些实现中提供用于可管理性服务的专用微控制器可能是不合适的、不实际的或不可伸缩的。
参考附图提供了详细的描述。在附图中,标号的最左边的数字标识该标号首次出现所在的附图。不同附图中使用的相同标号指示类似或相同的项。图1、18和19说明了可以用来实现本文所讨论的各个实施例的计算系统的实施例的框图。图2是说明根据实施例的四个状态和使得从一个状态转换到另一个状态的触发的状态转换图。图3说明了根据实施例的与不同存储器分区的执行相关联的各种操作的框图。图4-8说明了根据一些实施例的时间图。图9和11说明了根据本发明的一些实施例的流程图。图10说明了根据实施例的、用来处理来源于分配给OI的设备的中断并且将它们注入到OI分区中的各个部件的框图。图12说明了根据实施例的与OIPIC模块进行通信的各个部件。图13和14说明了根据一些实施例的与使用加载密钥相关联的操作的框图。图15和16说明了根据一些实施例的与使用存储密钥相关联的操作的框图。图17说明了根据实施例的与SO和S3之间的安全转换相关联的操作的框图。
具体实施例方式在以下的描述中,阐述了许多具体细节以提供对各种实施例的透彻理解。然而,可以在没有这些具体细节的情况下实践本发明的各种实施例。在其他实例中,没有详细地描述公知的方法、过程、部件和电路以免模糊本发明的特定实施例。此外,可以使用诸如集成半导体电路(“硬件”)、组织成一个或多个程序的计算机可读指令(“软件”)、或硬件和软件的一些组合的各种手段来执行本发明的实施例的各个方面。为了本公开的目的,对“逻辑”的引用应当表示硬件、软件或其的一些组合。附加地,本文中可以可互换地使用“指令” 或“微操作”(还可以称为“微指令”)。此外,尽管本文讨论的一些实施例可以将置位值或清零值分别指称为逻辑O和1,但是这些术语例如取决于实现是可互换的。一些处理器可以包括多个处理核心。除了多个核心之外,处理器管芯还可以包括非核心(其可以总地指代在处理器管芯上不同于核心的所有元件)。为了提高性能,可以例如通过取代多个芯片组来将越来越多的功能合并到处理器的非核心中。例如,一些实现可以将存储器控制器功能、10(输入输出)控制器功能和图形功能构建到非核心中。然而, 这种趋势对在平台上提供的其他功能或服务(例如可管理性)具有影响。目前,可以在可以组成可管理性引擎(ME)的核心部分的专用处理器上提供一些可管理性功能。ME—般位于芯片组上。此外,一些服务器平台可以实现称为基板管理控制器(BMC)、服务处理器(SP) 或任何其他名字的分立的专用微控制器。如先前所讨论的,由于诸如成本、尺寸、功耗、散热和受限的MIPS等原因,这些解决方案是不可伸缩的。这在超级移动个人计算机(UMPC)环境中更成为一个问题,并且迫切需要不同的解决方案。为此,本文公开的一些实施例提供了用于可管理性功能的可伸缩解决方案,例如用于UMPC环境或其中将专用处理器或微控制器用于可管理性是不合适或不切实际的其他环境中。例如,在实施例中,OS(操作系统)或VMM(虚拟机管理器)独立架构(在本文中统称为“01”)涉及通过在主OS/VMM和OI容器之间动态划分资源(例如处理器周期、存储器、 设备)来在例如处理器上创建一个或多个容器。在一个实施例中,OI资源管理器(OIRM)可以执行主OS/VMM容器(本文中还称为分区)和OS独立容器之间的时间共享操作。结果, 一些实施例允许在不影响(或减轻地影响)0S/VMM执行性能的情况下将空闲处理器周期用于有用的目的(例如,可管理性)。在实施例中,公开了用于处理来源于分配给OI的设备的中断和将这些中断注入 OI分区的技术。在一个实施例中,提供了用于处理OI中安全性敏感数据的防篡改存储器。 在实施例中,减少了从S3转换到SO和从SO转换到S3需要花费的时间量。此外,本文描述的技术可以使得提高各种计算设备(例如参考图1-19所讨论的那些设备)中的性能、效率和/或安全性。更具体地,图1说明了根据本发明的实施例的计算系统100的框图。系统100可以包括一个或多个处理器102-1到102-N(本文中总地称为“多个处理器102”或“处理器 102”)。多个处理器102可以经由互连网络或总线104进行通信。每一个处理器可以包括各种部件,为了清楚,仅参考处理器102-1讨论其中的一些。相应地,其余处理器102-2到 102-N的每一个可以包括与参考处理器102-1所讨论的部件相同或类似的部件。在实施例中,处理器102-1可以包括一个或多个处理器核心106-1到106-M (本文中称为“多个核心106”或更一般地称为“核心106”)、共享高速缓存108和/或路由器110。 可以在单个集成电路(IC)芯片上实现处理器核心106。此外,该芯片可以包括一个或多个共享和/或专用高速缓存(例如高速缓存108)、总线或互连(例如总线或互连网络112)、 存储器控制器(例如参考图18-19所讨论的那些存储器控制器)或其他部件。在一个实施例中,路由器110可以用来在处理器102-1和/或系统100的各个部件之间进行通信。此外,处理器102-1可以包括多于一个路由器110。此外,多个路由器110 可以进行通信以使得数据能够在处理器102-1内部或外部的各个部件之间路由。在一个实施例中,处理器102-1可以具有仅对OIRM 124为可访问的嵌入密钥113以用于密码操作。 在一个实施例中,该密钥可以在处理器首次加电时由OIRM使用强随机数生成器来生成并存储在处理器上。在另一实施例中,可以在制造时将该密钥存储在处理器中。 共享高速缓存108可以存储由诸如核心106的处理器102_1的一个或多个部件使用的数据(例如,包括指令)。如所示出的,处理器102还可以包括处理器上(本文中还被称为“封装上”)存储器111 (如将在下文进一步讨论的,其可以用作安全存储器)。例如, 共享高速缓存108可以对存储在存储器114中的数据进行本地缓存,以由处理器102的部件进行更快的访问。在实施例中,高速缓存108可以包括中级高速缓存(例如2级(L2)、3 级(L3)、4级(L4)或其他级的高速缓存)、末级高速缓存(LLC)和/或它们的组合。此外, 处理器102-1的各个部件可以通过总线(例如,总线112)和/或存储器控制器或集线器直接地与共享高速缓存108进行通信。如图1所示,在一些实施例中,一个或多个核心106可以包括1级(Li)高速缓存(116-1)(本文中总地称为“Li高速缓存116”)和/或L2高速缓存(未示出)。如图1所示,系统100可以使用一个或多个分区(本文中还可互换地称为“容器”)120和122。OI资源管理器(OIRM) 124可以通信地耦合在物理层(例如,处理器核心、 芯片组、存储器、存储设备、网络接口等)和主OS/VMM与OI容器(或分区)120与122之间。 此外,可以使用多于一个OI容器。在一些实施例中,可以将OIRM 124实现为处理器上的微代码或固件。例如,OIRM 124可以是负责调度处理器周期的处理器微代码。它还可以允许主OS/VMM分区120执行与由OI分区124执行的处理器指令交错的处理器指令,以例如维持对在系统上执行的多个处理的公平性或系统响应。主OS/VMM分区120可以包括常规(主)应用程序和/或主设备驱动程序(未示出)。此外,OI分区122可以包括对应于核心能力的数据、应用程序和/或OI驱动程序(例如,用于选择的设备(未示出))。此外,在一些实施例中,OIRM 124可以具有在将处理器时间分配给OIEE(01执行环境(01分区中的操作环境))时要满足的下面约束中的一个或多个 主OS/VMM不会错过中断或经历时间漂移,并且主OS/VMM 10设备(例如,⑶ROM、 LAN、WLAN等)应当及时得到服务以避免缓冲器的下溢或溢出。这意味着要以最小的延迟传递以主0S/VMM为目的地的外部中断和处理器间中断。 处理器核心上对OIEE的调度不会导致对其他处理器的妨碍。这种状况可能在操作系统将一锁保持在被选择用于调度01的处理器核心上时发生。移走该处理器核心以运行01将导致正等待该锁的其他处理器核心自旋(spin)和浪费周期。调度01以在处理器核心上执行的算法应当在可能的情况下避免这种状况。·处理器核心、设备、总线等的功率管理应当与OS进行协作而非干涉主0S/VMM 120。可以使OIRM 124知道调度决定对系统功率、热量和性能状态的副作用。例如,将C_x 处理器核心(与处理器C状态相关联)带到C-O以调度01可能使得系统的功率包络与阈值交叉而导致自动频率节流。因此,该选择C-x处理器核心来进行调度的动作虽然被进行来避免对C-O处理器核心的性能影响,但是可能非有意地导致严重性能损害。0IRM124可以利用例如来自PCU(功率控制单元)的在核心和非核心中可用的合适的功率试探法,以作出明智的选择。可以在处理器非核心中提供PCU来管理用于处理器核心和非核心部件的功率管理策略。·操作系统和性能监视工具可以被配置为有机会检测来自给定处理器核心的执行 OI所消耗的周期数量。提供这种观察能力可以在观察到任何未预料的行为的情况下帮助调试系统来判定其是否是由OI导致的。在一些实施例中,OI实现提供不受主OS/VMM状态影响的执行环境。因此,在一些实施例中,OIRM可以满足以下要求中的一个或多个·通过确保OI操作/指令执行如所配置的最小保证持续时间来避免或减轻OI的资源缺乏。 避免或减少将OI操作/指令固定(pin)在系统中任何一个处理器核心上。OS独立操作可以占用来自主OS/VMM的周期。一些操作系统和VMM固定工作负载(例如,线程、 VM(虚拟机)等)以便达到吞吐量目标。将OI固定在特定处理器核心将不公平地损害由主 OS/VMM固定到该处理器核心的任何工作负载。·在对系统性能具有最小影响的处理器核心上运行。系统性能是主OS/VMM吞吐量、功耗和C-状态唤醒延迟的混合。OIRM可以依赖来自PCU的试探法,以在选择处理器核心来执行OIEE上获得最优决定,从而不会在这些矢量的任何一个上不利地影响系统性能。图2是说明根据实施例的四个状态和使得从一个状态转换到另一个状态的触发的状态转换图。此外,基于以上要求,可以参考所说明的处理器核心的状态转换。根据一些实施例,处理器核心可以存在于下述模式的一个中。在实施例中,由OIRM 124控制处理器核心在这些模式之间的转换。 主OS/VMM (HOST OS/VMM)——主OS/VMM容器120是激活的并且在处理器核心上执行。· 01——处理器核心在执行一个01容器122。· SMM(系统管理模式)——处理器核心在执行SMM容器123。可以从任何状态进入SMM状态。 空闲(IDLE)——主0S/VMM以及OIEE处于C_x状态。OIRM将处理器核心转换到主0S/VMM所请求的C状态。下表1提供了关于图2中示出的每一个转换的更多信息和原因。
权利要求
1.一种装置,包括具有多个分区的存储单元,其中,所述多个分区的第一分区用来存储操作系统(OS)独立分区,并且所述多个分区的第二分区用来存储OS ;以及OS独立(OI)资源管理器(OIRM),用于将所述多个分区耦合到处理器,其中,所述OIRM 用于在所述第一分区和所述第二分区之间动态地划分所述处理器的周期。
2.根据权利要求1所述的装置,其中,所述存储单元用于将OI驱动程序存储在所述第二分区中,其中,所述OI驱动程序用于向所述OIRM指示是否要调度存储在所述第一分区中的一个或多个指令以用于执行。
3.根据权利要求1所述的装置,其中,基于确定OIRM未能在选择时间段内调度存储在所述第一分区中的一个或多个指令以用于执行,所述OIRM用于为所述一个或多个指令分配最小保证执行持续时间。
4.根据权利要求1所述的装置,其中,所述OIRM用于将所述处理器的空闲周期分配给所述第一分区。
5.根据权利要求1所述的装置,其中,所述处理器包括一个或多个处理器核心,并且所述OIRM用于确定是分配来自所述一个或多个处理器核心中处于CO状态的一个处理器核心的周期,还是唤醒所述一个或多个处理器核心中处于C-X状态的另一个处理器核心。
6.根据权利要求1所述的装置,其中,所述第一分区包括设备过滤器,所述设备过滤器用于指示是根据存储在所述第一分区中的第一中断重映射表还是根据存储在所述第二分区中的第二中断重映射表来处理中断。
7.根据权利要求6所述的装置,还包括中断重映射单元,所述中断重映射单元用于接收所述中断,和使得对所述设备过滤器进行查找。
8.根据权利要求1所述的装置,其中,所述OIRM用于基于范围寄存器的一个或多个比特来阻止从所述第二分区对所述第一分区的访问。
9.根据权利要求1所述的装置,其中,所述OIRM用于基于在所述第一分区中存储的扩展页表内存储的数据来阻止从所述第一分区对所述第二分区的访问。
10.根据权利要求1所述的装置,其中,所述处理器包括用于存储未加密信息的存储器,其中,所述未加密信息在所述处理器外部是不可获得的。
11.根据权利要求1所述的装置,还包括完整性检查值阵列,所述完整性检查值阵列用于存储与所述第一分区的一个或多个页对应的数据,其中所述阵列中的每一个条目用于指示所述第一分区中对应页的安全散列算法值、有效性和直接存储器访问。
12.根据权利要求11所述的装置,其中,所述OIRM用于基于存储在所述完整性检查值阵列的对应条目中的值来确定所述第一分区的所述一个或多个页的完整性。
13.根据权利要求11所述的装置,其中,所述OIRM用于响应于检测到对所述第一分区的对应页的修改,而使得对存储在所述完整性检测值阵列中的值进行更新。
14.一种方法,包括在存储器中存储多个分区,其中,所述多个分区的第一分区用于存储操作系统(OS)独立分区,并且所述多个分区的第二分区用于存储OS;经由OS独立(OI)资源管理器(OIRM)将所述多个分区耦合到处理器;以及所述OIRM在所述第一分区和所述第二分区之间分配所述处理器的周期。
15.根据权利要求14所述的方法,还包括将OI驱动程序存储在所述第二分区中,其中, 所述OI驱动程序用于向所述OIRM指示是否要调度存储在所述第一分区中的一个或多个指令以用于执行。
16.根据权利要求14所述的方法,还包括基于确定OIRM未能在选择时间段中调度存储在所述第一分区中的一个或多个指令以用于执行,所述OIRM为所述一个或多个指令分配最小保证执行持续时间。
17.根据权利要求14所述的方法,还包括所述OIRM将所述处理器的空闲周期分配给所述第一分区。
18.根据权利要求14所述的方法,还包括所述OIRM确定是分配来自所述处理器中处于 CO状态的一个或多个处理器核心的周期,还是唤醒一个或多个处理器核心中处于C-X状态的另一个处理器核心。
19.根据权利要求14所述的方法,还包括存储在所述第一分区的设备过滤器指示是根据存储在所述第一分区中的第一中断重映射表还是根据存储在所述第二分区中的第二中断重映射表来处理中断。
20.根据权利要求14所述的方法,还包括所述OIRM基于范围寄存器的一个或多个比特来阻止从所述第二分区对所述第一分区的访问。
21.根据权利要求14所述的方法,还包括将与所述第一分区的一个或多个页对应的数据存储在完整性检测值阵列中,其中,所述阵列中的每一个条目用于指示所述第一分区中的对应页的安全散列算法值、有效性和直接存储器访问。
22.—种计算机可读介质,包括当在处理器上执行时将所述处理器配置为执行下述操作的一个或多个指令在存储器中存储多个分区,其中,所述多个分区的第一分区用于存储操作系统(OS)独立分区,并且所述多个分区的第二分区用于存储OS ;以及经由OS独立(OI)资源管理器(OIRM)将所述多个分区耦合到所述处理器,其中,所述 OIRM在所述第一分区和所述第二分区之间分配所述处理器的周期。
23.根据权利要求22所述的计算机可读介质,还包括当在所述处理器上执行时将所述处理器配置为将OI驱动程序存储在所述第二分区中的一个或多个指令,其中,所述OI驱动程序用于向所述OIRM指示是否要调度存储在所述第一分区中的一个或多个指令以用于执行。
24.根据权利要求22所述的计算机可读介质,还包括当在所述处理器上执行时将所述处理器配置为执行下述操作的一个或多个指令基于确定OIRM未能在选择时间段内调度存储在所述第一分区中的一个或多个指令以用于执行,为所述一个或多个指令分配最小保证执行持续时间。
25.根据权利要求22所述的计算机可读介质,还包括当在所述处理器上执行时将所述处理器配置为执行下述操作的一个或多个指令基于存储在所述完整性检查值阵列的对应条目中的值来确定所述第一分区的一个或多个页的完整性。
26.根据权利要求22所述的计算机可读介质,还包括当在所述处理器上执行时将所述处理器配置为执行下述操作的一个或多个指令响应于检测到对所述第一分区的对应页的修改,而使得对存储在所述完整性检查值阵列中的值进行更新。
27.一种计算系统,包括存储器,用于存储指令,其中,所述存储器包括多个分区,其中所述多个分区的第一分区用于存储操作系统(OS)独立分区,并且所述多个分区的第二分区用于存储OS ;以及处理器,用于执行所述指令;以及OS独立(OI)资源管理器(OIRM),用于将所述多个分区耦合到所述处理器,其中,所述 OIRM在所述第一分区和所述第二分区之间动态地划分所述处理器的周期。
28.根据权利要求27所述的系统,其中,所述存储器将OI驱动程序存储在所述第二分区中,其中所述OI驱动程序用于向所述OIRM指示是否要调度存储在所述第一分区中的一个或多个指令以用于执行。
29.根据权利要求27所述的系统,其中,基于确定OIRM未能在选择时间段内调度存储在所述第一分区中的一个或多个指令以用于执行,OIRM为所述一个或多个指令分配最小保证执行持续时间。
30.根据权利要求27所述的系统,还包括耦合到所述处理器核心的音频设备。
全文摘要
描述了与用于执行安全的嵌入式容器的处理器扩展相关的方法和装置。在实施例中,提供了用于可管理性功能的可伸缩解决方案,以例如用于UMPC环境或其中将专用处理器或微控制器用于可管理性是不适合或不实际的其他环境。例如,在实施例中,OS(操作系统)或VMM(虚拟机管理器)独立(本文中总地称为“OI”)架构涉及通过在主OS/VMM和OI容器之间动态地划分资源(例如处理器周期、存储器、设备)来在处理器上创建一个或多个容器。还描述了并要求保护其他实施例。
文档编号G06F9/28GK102171672SQ200980139240
公开日2011年8月31日 申请日期2009年12月22日 优先权日2008年12月31日
发明者A·库马尔, P·戈埃尔, V·尚博格 申请人:英特尔公司