用于执行安全嵌入式容器的处理器扩展的制作方法

文档序号:6587913阅读:126来源:国知局
专利名称:用于执行安全嵌入式容器的处理器扩展的制作方法
技术领域
本公开总体上涉及电子领域。更具体地,本发明的实施例涉及用于执行安全嵌入 式容器的处理器扩展。
背景技术
计算机系统可以被实现为分层的设备,例如包括硬件层、固件和操作系统层以及 应用程序层。计算机系统的硬件层可以被称为物理平台。物理平台可以包括处理器、芯片 组、通信信道、存储器、主板和系统。计算机系统还可以包括管理引擎(manageability engine),例如包括微控制器, 其专门用于允许例如通过通信网络经由远程管理控制台来远程地管理该计算机系统。然 而,由于包括成本、大小、功耗、散热、有限的MIPS(每秒百万指令)等在内的原因,在一些 实现中针对管理服务来提供专用的微控制器可能是不适当的、不切实际的或者没有可扩展 性。


参考附图提供了详细的描述。在附图中,附图标记最左边的数字标识出该附图标 记第一次出现的那幅图。在不同的附图中使用相同的附图标记来指示类似或相同的项。图1、18和19说明了计算系统的实施例的框图,所述计算系统可以被用于实现本 文讨论的各种实施例。图2是根据一实施例的状态转变图,其说明了四个状态和用于使得能够从一个状 态转变为另一个状态的触发条件。图3说明了根据一实施例的与不同存储器分区的执行相关联的各种操作的框图。图4-8说明了根据一些实施例的时间图。图9和11说明了根据本发明的一些实施例的流程图。图10说明了根据一实施例的用于处理从分配给OI的设备发起的中断、并将其注 入到OI分区的各种部件的框图。图12说明了根据一实施例的与OIPIC模块进行通信的各种部件。图13和14说明了根据一些实施例的与使用加载密钥相关联的操作的框图。图15和16说明了根据一些实施例的与使用存储密钥相关联的操作的框图。图17说明了根据一实施例的与在SO与S3之间的安全转变相关联的操作的框图。
具体实施例方式在以下的描述中,阐述了许多具体细节以便提供对各种实施例的透彻理解。但是, 可以在没有这些具体细节的情况下实施本发明的各种实施例。在其它实例中,没有详细地 描述已知的方法、过程、部件和电路,以便不模糊本发明的特定的实施例。此外,可以使用 各种手段,例如半导体集成电路(“硬件”)、组成一个或多个程序的计算机可读指令(“软件”)或硬件和软件的某种组合,来执行本发明的实施例的各个方面。为了该公开的目的, 提及“逻辑”应当是指硬件、软件或其某种组合。此外,本文使用的“指令”或“微操作”(其 还可以被称为“uop”)可以是可互换的。此外,尽管本文讨论的一些实施例可以将置位或清 零值分别称为逻辑0和1,但是这些术语是可互换的,例如,取决于实现。一些处理器可以包括多个处理核心。除了多个核心之外,处理器管芯还可以包括 非核心(其可以统指在处理器管芯上除了核心之外的所有组件)。为了提高性能,例如通过 替代多个芯片组,可以将更多的功能并入处理器的非核心中。例如,一些实现可以将存储器 控制器功能、10(输入输出)控制器功能和图形功能建立在非核心上。但是,该趋势对平台 上提供的其它功能或服务(例如,可管理性)会有影响。当前,可以将一些管理功能移交到 专用处理器,其可以构成管理引擎(ME)的核心部分。ME通常位于芯片组上。此外,一些服 务器平台可以实现分立专用微控制器,称为基板管理控制器(BMC)、服务处理器(SP)或叫 做任何其它名字。如先前所讨论的,由于以下原因,例如成本、大小、功耗、散热、有限的MIPS 等,这些方案没有可扩展性。这在超级移动个人计算机(UMPC)环境中愈发成为问题,因此 促使出现了对于不同的解决方案的需求。为此目的,本文公开的一些实施例提供了针对管理功能的可扩展方案,例如,用于 UMPC环境,或者用于其中使用专用的处理器或微控制器来实现可管理性是不适当的或不切 合实际的情况。例如,在一实施例中,独立于OS(操作系统)或VMM(虚拟机管理器)的架 构(本文中统称为“01”)涉及通过在主机(host)OS/VMM与OI容器之间动态地划分资源 (例如,处理器周期、存储器、设备),来创建一个或多个容器,例如在处理器上。在一个实施 例中,OI资源管理器(OIRM)可以执行在主机OS/VMM容器(本文中也称为分区)与独立于 OS的容器之间的分时(time sharing)操作。因此,一些实施例可以允许在不影响OS/VMM 执行性能(或减少对其的影响)的情况下,将空闲的处理器周期用于有用的目的(例如,可 管理性)。在一实施例中,公开了用于处理从分配给OI的设备发起的中断、并将这些中断注 入到OI分区的技术。在一个实施例中,提供了防篡改(tamperresistant)存储器,以处理 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。处理器核心106可以被实现在单个集成电路(IC)芯片上。此外,该芯片可以包括一 个或多个共享的和/或私有的高速缓存(例如,高速缓存108)、总线或互连(例如,总线或 互连网络112)、存储器控制器(例如,参照图18-19所讨论的那些)或其它部件。在一个实施例中,路由器110可以用于在处理器102-1和/或系统100的各种部件之间进行通信。此外,处理器102-1可以包括多于一个路由器110。此外,多个路由器110 可以进行通信以使得能够在处理器102-1内部或外部的各种部件之间进行数据路由。在一 个实施例中,处理器102-1可以具有嵌入式密钥113,其仅可由OIRM 124来访问,以用在加 解密操作中。在一个实施例中,可以在处理器第一次上电时,由OIRM使用强随机数生成器 来生成该密钥并将其存储在该处理器上。在另一个实施例中,可以在制造时将该密钥存储 到处理器中。共享高速缓存108可以存储由处理器102-1的一个或多个部件(例如,核心106) 使用的数据(例如,包括指令)。如图所示,处理器102还可以包括位于处理器上的(本文 中也称为“封装内”)存储器111 (其可以用作安全存储器,下文将进一步讨论)。例如,共 享高速缓存108可以在本地对存储器114中存储的数据进行缓存,以便于由处理器102的 部件来更快地访问。在一实施例中,高速缓存108可以包括中间级高速缓存(例如,二级 (L2)、三级(L3)、四级(L4)或其它级高速缓存)、最末级高速缓存(LLC)和/或其组合。此 外,处理器102-1的各种部件可以通过总线(例如,总线112)和/或存储器控制器或中枢 (hub)来与共享高速缓存108直接地通信。如图1所示,在一些实施例中,一个或多个核心 106可以包括一级(Li)高速缓存(116-1)(本文中通常称为“Li高速缓存116”)和/或L2 高速缓存(没有示出)。如图1所示,系统100可以使用一个或多个分区(本文中还可以互换地称为“容 器”)120和122。OI资源管理器(OIRM) 124可以通信地耦合在物理层(例如,处理器核心、 芯片组、存储器、存储设备、网络、接口等)与主机OS/VMM和OI容器(或分区)120和122之 间。此外,可以使用多于一个OI容器。在一些实施例中,OIRM 124可以被实现为处理器上 的微码或固件。例如,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,这将引起等待该锁的其它处理器核心自旋并且浪费周期。用于调度01以在处理器核 心上执行的算法应当尽可能避免这种情况。·处理器核心、设备、总线等的功率管理与OS合作而不是干扰主机0S/VMM 120。 OIRM 124可以得知调度决策对于系统的功率、热和性能状态的副作用。例如,将一个C-x 处理器核心(与处理器C状态关联的)置于C-O以调度01,这可能使得系统的功率包络 (envelope)超过阈值而会导致进行自动频率节流(throttling)。因此,如果选择一个C_x处理器核心来进行调度,进行该操作虽然会避免对C-O处理器核心的性能影响,但是可能 会无意地导致严重的性能惩罚。OIRM 124可以使用在核心和非核心中可用的合适的功率启 发式规则(heuristics)(例如来自PCU(功率控制单元))来做出明智的选择。可以在处理 器非核心中提供P⑶以管理用于处理器核心和非核心部件的功率管理策略。·操作系统和性能监视工具可以被配置为有机会检测执行OI的给定处理器核心 所消耗的周期数。提供这种观察功能可以有助于如果观察到任何无法预料的行为则对系统 进行调试以确定其是否由OI引起。在一些实施例中,OI实现将提供不受主机OS/VMM的状态影响的执行环境。因此, 在一些实施例中,OIRM可以满足以下需求中的一个或多个·通过确保OI操作/指令的执行能够持续所配置的最小保证持续时间,来避免或 减少OI资源缺乏(starvation)。·避免或减少将OI操作/指令固定到系统中的任意一个处理器核心。独立于OS 的操作会减少主机OS/VMM的周期。一些操作系统和VMM固定工作负荷(例如,线程、VM(虚 拟机)等)以便完成吞吐量目标。将OI固定到特定的处理器核心上将会不公平地惩罚由 主机OS/VMM固定到该处理器核心上的任何工作负荷。 在对系统性能具有最少影响的处理器核心上运行。系统性能是主机OS/VMM吞吐 量、功耗和C状态唤醒等待时间的混合。OIRM可以依靠来自PCU的启发式规则来得到关于 处理器核心选择(用于执行0ΙΕΕ)的最优决策,以便不会有害地影响沿着这些向量中的任 意一个的系统性能。图2是根据一实施例的说明了四个状态和触发条件的状态转变图,其中所述触发 条件使得从一个状态转变为另一个状态。此外,基于上述要求,本领域技术人员可以参考处 理器核心的示出的状态转变。根据一些实施例,处理器核心可以处于以下模式中的一个。在 一实施例中,处理器核心在这些模式之间的转变受OIRM 124的控制。·主机0S/VMM-主机0S/VMM容器120是活动的并且正在处理器核心上执行。· 01-处理器核心正在执行01容器122中的一个。系统管理模式)-处理器核心正在执行SMM容器123。可以从任意状态进入 SMM状态。 空闲-主机0S/VMM以及OIEE都处于C_x状态。OIRM将处理器核心转变到由主 机0S/VMM请求的C状态。以下的表1提供了关于图2示出的每个转变及其原因的进一步信息。
转变开始状态结束状态潜在的原因
8
权利要求
一种装置,包括存储单元,其具有多个分区,其中,所述多个分区中的第一分区用于存储独立于操作系统(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容器之间动态地划分资源(例如,处理器周期、存储器、设备)来实现的。还描述并要求保护了其它实施例。
文档编号G06F15/80GK101944013SQ20091100029
公开日2011年1月12日 申请日期2009年12月25日 优先权日2008年12月31日
发明者A·库马尔, P·戈埃尔, V·尚博格 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1