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

文档序号:6633123阅读:132来源:国知局
用于执行安全嵌入式容器的处理器扩展的制作方法
【专利摘要】描述了涉及用于执行安全嵌入式容器的处理器扩展的方法和装置。在一实施例中,提供了用于管理功能的可扩展方案,例如用于UMPC环境,或者其中使用专用处理器或微控制器来实现可管理性是不适合或不切实际的环境。例如,在一实施例中,独立于OS(操作系统)或VMM(虚拟机管理器)的(本文通常称为“OI”)架构涉及在处理器上创建一个或多个容器,这是通过在主机OS/VMM与OI容器之间动态地划分资源(例如,处理器周期、存储器、设备)来实现的。还描述并要求保护了其它实施例。
【专利说明】用于执行安全嵌入式容器的处理器扩展
[0001] 本申请是申请日为2009年12月25日、申请号为200911000292. 4的同名专利申 请的分案申请。

【技术领域】
[0002] 本公开总体上涉及电子领域。更具体地,本发明的实施例涉及用于执行安全嵌入 式容器的处理器扩展。

【背景技术】
[0003] 计算机系统可W被实现为分层的设备,例如包括硬件层、固件和操作系统层W及 应用程序层。计算机系统的硬件层可W被称为物理平台。物理平台可W包括处理器、芯片 组、通信信道、存储器、主板和系统。
[0004]计算机系统还可W包括管理引擎(manage油ilityengine),例如包括微控制器, 其专口用于允许例如通过通信网络经由远程管理控制台来远程地管理该计算机系统。然 而,由于包括成本、大小、功耗、散热、有限的MIPS(每砂百万指令)等在内的原因,在一些 实现中针对管理服务来提供专用的微控制器可能是不适当的、不切实际的或者没有可扩展 性。

【专利附图】

【附图说明】
[0005] 参考附图提供了详细的描述。在附图中,附图标记最左边的数字标识出该附图标 记第一次出现的那幅图。在不同的附图中使用相同的附图标记来指示类似或相同的项。
[0006] 图1、18和19说明了计算系统的实施例的框图,所述计算系统可W被用于实现本 文讨论的各种实施例。
[0007] 图2是根据一实施例的状态转变图,其说明了四个状态和用于使得能够从一个状 态转变为另一个状态的触发条件。
[000引图3说明了根据一实施例的与不同存储器分区的执行相关联的各种操作的框图。
[0009] 图4-8说明了根据一些实施例的时间图。
[0010] 图9和11说明了根据本发明的一些实施例的流程图。
[0011] 图10说明了根据一实施例的用于处理从分配给01的设备发起的中断、并将其注 入到01分区的各种部件的框图。
[0012] 图12说明了根据一实施例的与0IPIC模块进行通信的各种部件。
[0013] 图13和14说明了根据一些实施例的与使用加载密钥相关联的操作的框图。
[0014] 图15和16说明了根据一些实施例的与使用存储密钥相关联的操作的框图。
[0015] 图17说明了根据一实施例的与在SO与S3之间的安全转变相关联的操作的框图。

【具体实施方式】
[0016] 在W下的描述中,阐述了许多具体细节W便提供对各种实施例的透彻理解。但是, 可w在没有该些具体细节的情况下实施本发明的各种实施例。在其它实例中,没有详细地 描述已知的方法、过程、部件和电路,W便不模糊本发明的特定的实施例。此外,可W使用 各种手段,例如半导体集成电路("硬件")、组成一个或多个程序的计算机可读指令("软 件")或硬件和软件的某种组合,来执行本发明的实施例的各个方面。为了该公开的目的, 提及"逻辑"应当是指硬件、软件或其某种组合。此外,本文使用的"指令"或"微操作"(其 还可W被称为"UOP")可W是可互换的。此外,尽管本文讨论的一些实施例可W将置位或清 零值分别称为逻辑0和1,但是该些术语是可互换的,例如,取决于实现。
[0017] 一些处理器可W包括多个处理核也。除了多个核也之外,处理器管芯还可W包括 非核也(其可W统指在处理器管芯上除了核也之外的所有组件)。为了提高性能,例如通过 替代多个芯片组,可W将更多的功能并入处理器的非核也中。例如,一些实现可W将存储器 控制器功能、1〇(输入输出)控制器功能和图形功能建立在非核也上。但是,该趋势对平台 上提供的其它功能或服务(例如,可管理性)会有影响。当前,可W将一些管理功能移交到 专用处理器,其可W构成管理引擎(ME)的核也部分。ME通常位于芯片组上。此外,一些服 务器平台可W实现分立专用微控制器,称为基板管理控制器炬MC)、服务处理器(S巧或叫 做任何其它名字。如先前所讨论的,由于W下原因,例如成本、大小、功耗、散热、有限的MIPS 等,该些方案没有可扩展性。该在超级移动个人计算机扣MPC)环境中愈发成为问题,因此 促使出现了对于不同的解决方案的需求。
[0018] 为此目的,本文公开的一些实施例提供了针对管理功能的可扩展方案,例如,用于 UMPC环境,或者用于其中使用专用的处理器或微控制器来实现可管理性是不适当的或不切 合实际的情况。例如,在一实施例中,独立于0S(操作系统)或VMM(虚拟机管理器)的架 构(本文中统称为"01")涉及通过在主机化〇st)0S/VMM与01容器之间动态地划分资源 (例如,处理器周期、存储器、设备),来创建一个或多个容器,例如在处理器上。在一个实施 例中,01资源管理器(0IRM)可W执行在主机0S/VMM容器(本文中也称为分区)与独立于 0S的容器之间的分时(timesharing)操作。因此,一些实施例可W允许在不影响0S/VMM 执行性能(或减少对其的影响)的情况下,将空闲的处理器周期用于有用的目的(例如,可 管理性)。
[0019] 在一实施例中,公开了用于处理从分配给01的设备发起的中断、并将该些中断注 入到01分区的技术。在一个实施例中,提供了防篡改(tamperresistant)存储器,W处理 01中的安全敏感数据。在一实施例中,从S3到SOW及从SO到S3的转变所花费的时间量 减少了。此外,本文描述的技术可W允许提高各种计算设备中的性能、效率和/或安全,例 如参照图1-19所讨论的那些。
[0020] 更具体地说,图1说明了根据本发明的一实施例的计算系统100的框图。系统100 可W包括一个或多个处理器102-1至102-N(本文中通常称为"多个处理器102"或"处理 器102")。处理器102之间可W经由互连网络或总线104进行通信。每个处理器可W包括 各种部件,为了清楚起见,参照处理器102-1仅讨论了其中的一些部件。因此,剩余的处理 器102-2至102-N中的每一个可W都包括参照处理器102-1所讨论的相同或相似的部件。
[0021] 在一实施例中,处理器102-1可W包括一个或多个处理器核也106-1至106-M(本 文中称为"多个核也106"或更一般地称为"核也106")、共享高速缓存108和/或路由器 110。处理器核也106可W被实现在单个集成电路(1C)芯片上。此外,该芯片可W包括一 个或多个共享的和/或私有的高速缓存(例如,高速缓存108)、总线或互连(例如,总线或 互连网络112)、存储器控制器(例如,参照图18-19所讨论的那些)或其它部件。
[0022] 在一个实施例中,路由器110可W用于在处理器102-1和/或系统100的各种部件 之间进行通信。此外,处理器102-1可W包括多于一个路由器110。此外,多个路由器110 可W进行通信W使得能够在处理器102-1内部或外部的各种部件之间进行数据路由。在一 个实施例中,处理器102-1可W具有嵌入式密钥113,其仅可由0IRM124来访问,W用在加 解密操作中。在一个实施例中,可W在处理器第一次上电时,由0IRM使用强随机数生成器 来生成该密钥并将其存储在该处理器上。在另一个实施例中,可W在制造时将该密钥存储 到处理器中。
[0023] 共享高速缓存108可W存储由处理器102-1的一个或多个部件(例如,核也106) 使用的数据(例如,包括指令)。如图所示,处理器102还可W包括位于处理器上的(本文 中也称为"封装内")存储器111 (其可W用作安全存储器,下文将进一步讨论)。例如,共 享高速缓存108可W在本地对存储器114中存储的数据进行缓存,W便于由处理器102的 部件来更快地访问。在一实施例中,高速缓存108可W包括中间级高速缓存(例如,二级 (L2)、H级(L3)、四级(L4)或其它级高速缓存)、最末级高速缓存(LLC)和/或其组合。此 夕F,处理器102-1的各种部件可W通过总线(例如,总线112)和/或存储器控制器或中枢 (hub)来与共享高速缓存108直接地通信。如图1所示,在一些实施例中,一个或多个核也 106可W包括一级(L1)高速缓存(116-1)(本文中通常称为"L1高速缓存116")和/或L2 高速缓存(没有示出)。
[0024] 如图1所示,系统100可W使用一个或多个分区(本文中还可W互换地称为"容 器")120和122。01资源管理器(0IRM) 124可W通信地禪合在物理层(例如,处理器核也、 芯片组、存储器、存储设备、网络、接口等)与主机0S/VMM和01容器(或分区)120和122之 间。此外,可W使用多于一个01容器。在一些实施例中,0IM124可W被实现为处理器上 的微码或固件。例如,0IM124可W是处理器微码,其负责调度处理器周期。0IRM124还 可W允许主0S/VMM分区120执行与01分区124所执行的处理器指令交错的处理器指令, 例如,W用于维持公平性或对系统上所执行的多个处理的系统响应能力。
[0025] 主机0S/VMM分区120可W包括常规的(主机)应用程序和/或主机设备驱动程 序(没有示出)。此外,01分区122可W包括应用程序、对应于核也功能的数据、和/或01 驱动程序(例如,用于所选择的设备)(没有示出)。此外,在一些实施例中,0IM124可W 具有W下约束中的一个或多个,所述约束用来满足何时将处理器时间分配给〇IEE(OI执行 环境(01分区内的操作环境)):
[0026] ?主机0S/VMM不会错过中断或经历时间漂移,并且主机0S/VMM10设备(例如, CDR0M、LAN、WLAN等)应当及时地得到服务W避免缓冲区的下溢或上溢。该意味着将W最 小延迟来传送目标为主机0S/VMM的外部中断和处理器间中断。
[0027] ?调度01邸到一处理器核也上不会导致妨碍其它处理器。该种情况可能会在当操 作系统在被选中用于调度01的处理器核也上保持有锁时发生。将该处理器核也拿走W运 行01,该将引起等待该锁的其它处理器核也自旋并且浪费周期。用于调度01W在处理器核 也上执行的算法应当尽可能避免该种情况。
[0028] ?处理器核也、设备、总线等的功率管理与0S合作而不是干扰主机0S/VMM120。 OIRM124可W得知调度决策对于系统的功率、热和性能状态的副作用。例如,将一个C-x处理器核也(与处理器C状态关联的)置于C-0W调度01,该可能使得系统的功率包络 (envelope)超过阔值而会导致进行自动频率节流(t虹ottling)。因此,如果选择一个C-X 处理器核也来进行调度,进行该操作虽然会避免对C-0处理器核也的性能影响,但是可能 会无意地导致严重的性能惩罚。0IM124可W使用在核也和非核也中可用的合适的功率启 发式规则化euristics)(例如来自PCU(功率控制单元))来做出明智的选择。可W在处理 器非核也中提供PCUW管理用于处理器核也和非核也部件的功率管理策略。
[0029] ?操作系统和性能监视工具可W被配置为有机会检测执行01的给定处理器核也 所消耗的周期数。提供该种观察功能可W有助于如果观察到任何无法预料的行为则对系统 进行调试W确定其是否由01引起。
[0030] 在一些实施例中,01实现将提供不受主机0S/VMM的状态影响的执行环境。因此, 在一些实施例中,0IM可W满足W下需求中的一个或多个:
[0031] ?通过确保01操作/指令的执行能够持续所配置的最小保证持续时间,来避免或 减少01资源缺乏(starvation)。
[0032] ?避免或减少将01操作/指令固定到系统中的任意一个处理器核也。独立于0S 的操作会减少主机0S/VMM的周期。一些操作系统和VMM固定工作负荷(例如,线程、VM(虚 拟机)等)W便完成吞吐量目标。将01固定到特定的处理器核也上将会不公平地惩罚由 主机0S/VMM固定到该处理器核也上的任何工作负荷。
[0033] ?在对系统性能具有最少影响的处理器核也上运行。系统性能是主机0S/VMM吞吐 量、功耗和C状态唤醒等待时间的混合。0IRM可W依靠来自PCU的启发式规则来得到关于 处理器核也选择(用于执行0IE巧的最优决策,W便不会有害地影响沿着该些向量中的任 意一个的系统性能。
[0034] 图2是根据一实施例的说明了四个状态和触发条件的状态转变图,其中所述触发 条件使得从一个状态转变为另一个状态。此外,基于上述要求,本领域技术人员可W参考处 理器核也的示出的状态转变。根据一些实施例,处理器核也可W处于W下模式中的一个。在 一实施例中,处理器核也在该些模式之间的转变受0IM124的控制。
[00巧]?主机0S/VMM-主机0S/VMM容器120是活动的并且正在处理器核也上执行。
[0036] ? 01-处理器核也正在执行01容器122中的一个。
[0037] -SMM(系统管理模式)-处理器核也正在执行SMM容器123。可W从任意状态进入 SMM状态。
[003引 ?空闲-主机0S/VMMW及01邸都处于C-X状态。0IRM将处理器核也转变到由主 机0S/VMM请求的C状态。
[0039] W下的表1提供了关于图2示出的每个转变及其原因的进一步信息。
[0040]

【权利要求】
1. 一种处理器,包括: 一个或多个处理器核心; 高速缓存,其能够由所述一个或多个处理器核心至少部分地通过使用扩展页表(EPT) 来访问; 封装内存储器,其用于存储映射到来自独立于操作系统(0S)的存储器分区的物理地 址的密钥页; 嵌入式处理器密钥,其能够由独立于0S的(01)资源管理器(OIRM)来访问以用于加密 操作,其中,运行在所述处理器上的、来自所述01存储器分区之外的应用程序能够调用由 所述0IRM提供的二进制大对象服务来创建密钥二进制大对象,以用于访问所述01存储器 分区之内的所述密钥页。
2. 根据权利要求1所述的处理器,其中,所述0IRM在执行来自所述01存储器分区之内 的和来自所述01存储器分区之外的操作或指令之间动态地划分所述处理器的周期。
3. 根据权利要求2所述的处理器,其中,所述0IRM将多个分区耦合到所述处理器,所述 多个分区至少包括所述01存储器分区和用于存储0S的第二分区。
4. 根据权利要求3所述的处理器,其中,响应于来自运行在所述处理器上的来自所述 01存储器分区之外的所述应用程序的用于加载所述密钥页的指令,所述0IRM将数据从所 述密钥页复制到所述封装内存储器中并使用所述密钥二进制大对象来解密所述封装内存 储器中的所述数据。
5. 根据权利要求4所述的处理器,其中,还响应于来自运行在所述处理器上的来自所 述01存储器分区之外的所述应用程序的用于加载所述密钥页的指令,所述0IRM更新所述 EPT以将访问从映射到所述01存储器分区中的所述密钥页的物理地址重定向到映射到所 述封装内存储器的物理地址。
6. 根据权利要求5所述的处理器,其中,还响应于来自运行在所述处理器上的来自所 述01存储器分区之外的所述应用程序的用于加载所述密钥页的指令,所述0IRM使用所述 嵌入式处理器密钥来解密所述密钥二进制大对象并使用已解密的密钥二进制大对象来解 密所述封装内存储器中的所述数据。
7. 根据权利要求6所述的处理器,其中,响应于来自运行在所述处理器上的来自所述 01存储器分区之外的所述应用程序的用于存储所述密钥页的指令,所述0IRM使用所述密 钥二进制大对象来加密所述封装内存储器中的所述数据并将已加密的数据从所述封装内 存储器复制到所述01存储器分区中的所述密钥页。
8. 根据权利要求7所述的处理器,其中,还响应于来自运行在所述处理器上的来自所 述01存储器分区之外的所述应用程序的用于存储所述密钥页的指令,所述0IRM使用所述 嵌入式处理器密钥来解密所述密钥二进制大对象并使用已解密的密钥二进制大对象来加 密所述封装内存储器中的所述数据。
9. 根据权利要求8所述的处理器,其中,所述0IRM维护完整性校验值阵列,所述完整性 校验值阵列用于存储对应于所述01存储器分区的一个或多个页的数据,其中,该阵列中的 每个条目用于指示所述01存储器分区中的对应的页的安全散列算法值、有效性和直接存 储器访问。
10. 根据权利要求9所述的处理器,其中,基于存储在所述完整性校验值阵列的对应的 条目中的值,所述OIRM确定所述01存储器分区的所述一个或多个页的完整性。
11. 根据权利要求10所述的处理器,其中,响应于检测到对所述01存储器分区的对应 的页的修改,所述0IRM引起对存储在所述完整性校验值阵列中的值的更新。
12. -种计算机实现的方法,包括: 由一个或多个处理器核心至少部分地通过使用扩展页表(EPT)来访问高速缓存; 在封装内存储器中存储至少部分地由所述EPT映射到来自独立于操作系统(0S)的存 储器分区的物理地址的密钥页; 由独立于0S的(01)资源管理器(0IRM)访问嵌入式处理器密钥以用于加密操作; 在所述01存储器分区之内存储所述密钥页;以及 调用由所述0IRM为运行在所述一个或多个处理器核心上的、来自所述01存储器分区 之外的应用程序提供的二进制大对象服务来创建密钥二进制大对象,以用于访问映射到所 述01存储器分区之内的物理地址的所述密钥页。
13. 根据权利要求12所述的方法,其中,所述0IRM在执行来自所述01存储器分区之内 的和来自所述01存储器分区之外的操作或指令之间动态地划分处理器周期。
14. 根据权利要求12所述的方法,其中,所述0IRM将多个分区耦合到所述一个或多个 处理器核心,所述多个分区至少包括所述01存储器分区和用于存储0S的第二分区。
15. 根据权利要求12所述的方法,其中,响应于来自运行在所述一个或多个处理器核 心上的来自所述01存储器分区之外的所述应用程序的用于加载所述密钥页的指令,所述 0IRM将数据从所述密钥页复制到所述封装内存储器中并使用所述密钥二进制大对象来解 密所述封装内存储器中的所述数据。
16. 根据权利要求15所述的方法,其中,还响应于来自运行在所述一个或多个处理器 核心上的来自所述01存储器分区之外的所述应用程序的用于加载所述密钥页的指令,所 述0IRM更新所述EPT以将访问从映射到所述01存储器分区中的所述密钥页的物理地址重 定向到映射到所述封装内存储器的物理地址。
17. 根据权利要求12所述的方法,其中,响应于来自运行在所述一个或多个处理器核 心上的来自所述01存储器分区之外的所述应用程序的用于存储所述密钥页的指令,所述 0IRM使用所述密钥二进制大对象来加密所述封装内存储器中的所述数据并将已加密的数 据从所述封装内存储器复制到所述01存储器分区中的所述密钥页。
18. 根据权利要求12所述的方法,其中,所述0IRM维护完整性校验值阵列,所述完整性 校验值阵列用于存储对应于所述01存储器分区的一个或多个页的数据,其中,该阵列中的 每个条目用于指示所述01存储器分区中的对应的页的安全散列算法值、有效性和直接存 储器访问。
19. 根据权利要求18所述的方法,其中,基于存储在所述完整性校验值阵列的对应的 条目中的值,所述0IRM确定所述01存储器分区的所述一个或多个页的完整性。
20. 根据权利要求18所述的方法,其中,响应于检测到对所述01存储器分区的对应的 页的修改,所述0IRM引起对存储在所述完整性校验值阵列中的值的更新。
21. -种计算系统,包括: 处理器,其包括: 一个或多个处理器核心, 高速缓存,其能够由所述一个或多个处理器核心至少部分地通过使用扩展页表(EPT) 来访问, 封装内存储器,其用于存储映射到来自独立于操作系统(0S)的存储器分区的物理地 址的密钥页, 嵌入式处理器密钥,其能够由独立于0S的(01)资源管理器(OIRM)来访问以用于加密 操作,其中,运行在所述处理器上的、来自所述01存储器分区之外的应用程序能够调用由 所述0IRM提供的二进制大对象服务来创建密钥二进制大对象,以用于访问所述01存储器 分区之内的所述密钥页;以及 存储器,其包括多个分区,所述多个分区至少包括所述01存储器分区和用于存储0S的 第二分区。
22. 根据权利要求21所述的系统,其中,所述0IRM在执行来自所述01存储器分区之内 的和来自所述01存储器分区之外的操作或指令之间动态地划分所述处理器的周期。
23. 根据权利要求22所述的系统,其中,基于确定0IRM未能调度存储在所述01存储器 分区中的一个或多个指令在选定的时间段内执行,所述0IRM为所述一个或多个指令分配 预定的最短保证执行持续时间。
24. 根据权利要求21所述的系统,其中,响应于来自运行在所述处理器上的来自所述 01存储器分区之外的所述应用程序的用于加载所述密钥页的指令,所述0IRM将数据从所 述密钥页复制到所述封装内存储器中并使用所述密钥二进制大对象来解密所述封装内存 储器中的所述数据。
25. 根据权利要求24所述的系统,其中,还响应于来自运行在所述处理器上的来自所 述01存储器分区之外的所述应用程序的用于加载所述密钥页的指令,所述0IRM更新所述 EPT以将访问从映射到所述01存储器分区中的所述密钥页的物理地址重定向到映射到所 述封装内存储器的物理地址。
26. 根据权利要求25所述的系统,其中,还响应于来自运行在所述处理器上的来自所 述01存储器分区之外的所述应用程序的用于加载所述密钥页的指令,所述0IRM使用所述 嵌入式处理器密钥来解密所述密钥二进制大对象并使用已解密的密钥二进制大对象来解 密所述封装内存储器中的所述数据。
27. 根据权利要求26所述的系统,其中,响应于来自运行在所述处理器上的来自所述 01存储器分区之外的所述应用程序的用于存储所述密钥页的指令,所述0IRM使用所述密 钥二进制大对象来加密所述封装内存储器中的所述数据并将已加密的数据从所述封装内 存储器复制到所述01存储器分区中的所述密钥页。
28. 根据权利要求27所述的系统,其中,还响应于来自运行在所述处理器上的来自所 述01存储器分区之外的所述应用程序的用于存储所述密钥页的指令,所述0IRM使用所述 嵌入式处理器密钥来解密所述密钥二进制大对象并使用已解密的密钥二进制大对象来加 密所述封装内存储器中的所述数据。
29. 根据权利要求28所述的系统,其中,所述0IRM维护完整性校验值阵列,所述完整性 校验值阵列用于存储对应于所述01存储器分区的一个或多个页的数据,其中,该阵列中的 每个条目用于指示所述01存储器分区中的对应的页的安全散列算法值、有效性和直接存 储器访问。
30. 根据权利要求29所述的系统,其中,基于存储在所述完整性校验值阵列的对应的 条目中的值,所述OIRM确定所述01存储器分区的所述一个或多个页的完整性。
31. 根据权利要求30所述的系统,其中,响应于检测到对所述01存储器分区的对应的 页的修改,所述0IRM引起对存储在所述完整性校验值阵列中的值的更新。
【文档编号】G06F9/455GK104375890SQ201410613122
【公开日】2015年2月25日 申请日期:2009年12月25日 优先权日:2008年12月31日
【发明者】V·尚博格, A·库马尔, P·戈埃尔 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1