CN111353164A - 用于信任域创建和摧毁的方法和装置 - Google Patents
用于信任域创建和摧毁的方法和装置 Download PDFInfo
- Publication number
- CN111353164A CN111353164A CN201911156484.8A CN201911156484A CN111353164A CN 111353164 A CN111353164 A CN 111353164A CN 201911156484 A CN201911156484 A CN 201911156484A CN 111353164 A CN111353164 A CN 111353164A
- Authority
- CN
- China
- Prior art keywords
- memory
- tdrm
- logical processor
- tdpm
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
- H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了用于信任域创建和摧毁的方法和装置。创建可信执行域的方法包括:通过处理设备执行信任域资源管理器(TDRM)来初始化与信任域(TD)相关联的信任域控制结构(TDCS)和信任域保护的存储器(TDPM)。该方法进一步包括:生成一次性密码密钥;在多密钥完全存储器加密(MK‑TME)引擎中将一次性密码密钥指派给可用的主机密钥id(HKID);以及将HKID存储在TDCS中。该方法进一步包括:将逻辑处理器关联至TD;将存储器页从逻辑处理器的地址空间添加到TDPM;以及将执行控制转移到逻辑处理器以执行TD。
Description
技术领域
本文中描述的实施例总体上关于计算机系统;更具体地关于硬件辅助的可信执行域。
背景技术
现代处理设备采用盘加密来保护静态的数据。然而,存储器中的数据是明文的且易受攻击。攻击方可使用各种技术,包括基于软件和硬件的总线扫描、存储器扫描、硬件探测等来从存储器检取数据。来自存储器的该数据可包括敏感数据,该敏感数据包括隐私敏感数据、IP敏感数据,并且还包括用于文件加密或通信的密钥。数据的暴露由于将数据和企业工作负载移动到利用由云服务提供方提供的基于虚拟化的托管服务的云中的当前趋势而进一步加剧。
附图说明
图1A图示根据本公开的实施例的示例计算系统的框图,该示例计算系统使用信任域(TD)在虚拟化系统中提供隔离。
图1B图示根据本公开的实施例的另一示例计算系统的框图,该示例计算系统使用TD在虚拟化系统中提供隔离。
图2是根据本公开的实施例的TD架构的示例的框图。
图3图示根据本公开的实施例的TD架构的另一示例的框图。
图4图示根据本公开的实施例的用于创建TD的方法的流程图。
图5图示根据本公开的实施例的用于初始化信任域控制结构(TDCS)和信任域保护的存储器(TDPM)的方法的流程图。
图6图示根据本公开的实施例的用于将逻辑处理器与TD相关联的方法的流程图。
图7图示根据本公开的实施例的将存储器页从逻辑处理器的地址空间添加到TDPM的方法的流程图。
图8图示根据本公开的实施例的用于将执行控制转移到逻辑处理器以执行TD的方法的流程图。
图9图示根据本公开的实施例的摧毁TD的方法的流程图。
图10图示根据本公开的实施例的用于防止TD在逻辑处理器上执行的方法的流程图。
图11图示根据本公开的实施例的用于将存储器页从与TD相关联的TDPM移除的方法的流程图。
图12A图示用于处理器的微架构的框图,在该微架构中可使用本公开的一个实现方式。
图12B是图示根据本公开的至少一个实现方式而实现的有序流水线以及寄存器重命名级乱序发布/执行流水线的框图。
图13图示根据本公开的实施例的用于处理设备的微架构的框图,该处理设备包括使用TD在虚拟化系统中提供隔离的逻辑电路。
图14图示根据本公开的实施例的计算机系统的框图。
图15图示根据本公开的实施例的计算机系统的框图。
图16图示根据本公开的实施例的芯片上系统(SoC)的框图。
图17图示根据本公开的实施例的用于计算系统的框图的另一实现方式。
图18图示根据本公开的实施例的用于计算系统的框图的另一实现方式。
具体实施方式
本公开的多个方面涉及创建和摧毁信任域(TD)。TD是指可支持消费方(例如,租户)工作负载的安全软件执行环境。租户工作负载可包括操作系统(OS)以及在OS之上运行的其他应用。租户工作负载还可包括在虚拟机监视器(VMM)之上运行的虚拟机(VM)以及其他应用。
传统的云服务器计算环境提供用于各种设备的远程计算资源和远程数据存储资源。虽然租户访问由云服务提供方(CSP)提供的远程计算和数据存储,但是使数据受保护而免受未经授权的人员和恶意软件的访问是尤其重要的。驻留在存储器中的未加密的明文数据以及在存储器与处理器之间移动的数据可能易受各种攻击。攻击方可使用各种技术(例如,总线扫描、存储器扫描等)以从存储器检取数据。在一些实例中,数据可包括用于对敏感数据加密的密钥或其他信息。
完全存储器加密(TME)技术提供一种用于保护存储器中的数据的解决方案。TME允许由在处理器核上执行的软件进行的存储器访问使用加密密钥而被加密。例如,加密密钥可以是在引导时生成的且用于对被发送到外部存储器总线的数据进行加密的128位密钥。具体而言,当处理器进行对存储器的写入请求时,在数据被发送到存储器之前可由存储器加密引擎对该数据加密,数据以加密形式被存储在该存储器处。当从存储器读取数据时,数据以加密形式被发送到处理器,并且当由处理器接收到该数据时通过加密密钥对该数据解密。由于数据以明文形式保留在处理器中,因此TME技术不需要对现有软件的修改,以及现有软件与处理器交互的方式。
多密钥TME(MK-TME)技术是提供对多个加密密钥的支持的TEM技术的扩展。这允许划分的存储器加密。例如,处理器架构可允许多个加密密钥在引导过程(即,当计算系统首次上电时由该系统执行的操作)期间被生成,这些加密密钥将用于对不同的存储器页进行加密。可由各种硬件和软件组件将与加密密钥相关联的密钥标识符(ID)用作TME技术和MK-TME技术的部分。多密钥扩展尤其适用于诸如由CSP使用的架构之类的多域架构,因为所支持密钥的数量可以是依赖于实现方式的。
在一些实现方式中,CSP具有将VM的页指定为使用VM专用密钥进行加密的选择权。在其他实例中,CSP可将特定的VM页选择为以明文保持或使用可以对软件不透明的不同的短时密钥来加密。MK-TME引擎可用于支持要使用不同密钥来加密的不同页。MK-TME引擎可针对每个域支持至少一个密钥,因此实现存在于CSP上的不同工作负载之间的密码隔离。工作负载可与租户或所有者(例如,从CSP租赁托管服务器的使用权的实体)相关联。
在本公开的实现方式中,提供TD架构和指令集架构(ISA)扩展(本文中称为TD扩展(TDX))。TDX允许与不同的客户机(例如,VM)、宾客操作系统、主机操作系统、管理程序等对应的多个安全TD。此外,由同一宾客OS内的同一客户端运行的不同应用可使用多个TD来安全地执行。每个TD可使用对于在TD外部执行的软件不可用的一个或多个私钥。在一些实施例中,在一个TD中执行的软件可具有对专用于那个特定的域且专用于可由多个TD使用的共享密钥的私钥的访问权。例如,在TD内运行的软件可将私钥用于该软件的安全执行(例如,读取操作、写入操作、执行操作),并且同一软件可使用共享密钥来访问与其他TD共享的结构或设备(例如,打印机、键盘、鼠标、监视器、网络适配器、路由器等)。
TD甚至可被保护免受特权用户影响,特权用户诸如,(主机或宾客)OS、VMM、基本输入/输出系统(BIOS)固件、系统管理模式,等等。如果恶意软件接管诸如OS之类的特权域,则由TD存储在存储器中的敏感数据仍将受保护。
每个TD可独立于其他TD操作,并且使用由信任域资源管理器(TDRM)指派的(多个)逻辑处理器、存储器和I/O。TDRM可作为主机OS或管理程序的部分来操作,或作为单独的软件程序来操作,并且具有对核和其他平台硬件的完全控制。TDRM将逻辑处理器(例如,物理处理器的执行线程)指派给TD,然而,TDRM可能无法访问在所指派的(多个)逻辑处理器上的TD的执行状态。类似地,TDRM可将物理存储器和I/O资源指派给TD,但是由于单独的加密密钥的使用,TDRM可能不可参与访问TD的存储器状态。在TD中执行的软件能以降低的特权操作(例如,租户软件可能不具有对在主机系统上可用的所有资源的完全访问权),使得TDRM可保留对平台资源的控制。然而,在所定义的情况下,TDRM不能够影响存储器中或CPU结构中的TD状态的机密性或完整性。
TDX可与诸如VMX之类的其他虚拟化架构扩展同时操作。VMX允许多个操作系统同时以安全且高效的方式共享处理器资源。具有VMX的计算系统可充当多个虚拟系统或VM。每个VM可在单独的分区中运行OS和应用。VMX还提供用于管理虚拟机的操作的被称为虚拟机监视器(VMM)的系统软件层(与TDRM进行比较)。
VMX可提供用于管理VM转变(例如,VM进入和VM退出)的虚拟机控制结构(VMCS)。VM进入是从VMM到VM操作的转变。VM进入可通过由VMM执行的指令来触发。VM退出是从VM操作到VMM的转变。VM退出可通过要求从VM退出的硬件事件来触发。例如,在支持VM的页表中的页错误可导致VM退出。VMCS可以是用于管理VM转变的6部分的数据结构。VMCS可保持跟踪:宾客状态区域(例如,当VM退出发生时的处理器状态,其在VM退出时被加载);主机状态区域(例如,在VM退出时被加载的处理器状态);VM执行控制字段(例如,确定VM退出的原因的字段);VM退出控制字段;VM进入控制字段;以及VM退出信息字段(例如,接收关于VM退出的信息并描述VM退出的原因和性质的字段)。
在一些实现方式中,根据本文中描述的实施例,TDX可作为VMX的替代来操作(这包括VMX的特征中的许多特征),并添加附加的安全层。在其他实现方式中,TDX可与VMX同时操作。例如,运行虚拟化架构(例如,VMX)的CSP主机服务器可能需要利用MK-TME技术和TDX架构两者以实现租户软件的高效执行。主机服务器可在TD内执行高度敏感的应用,使得执行VM的管理程序不具有对存储器页、分配给TD的加密密钥以及该TD的可信计算基础(TCB)的访问权。TCB是指具有影响对系统的总体操作的信任的能力的硬件、固件和/或软件组件的集合。同时,主机服务器可运行使用MK-TME技术而要求较少的安全和隔离的应用,其中,管理程序保留对存储器页以及在这些较不敏感的应用中使用的加密密钥的控制。VMM随后可使用不同的MK-TME密钥来将不同的应用彼此隔离,而仍保持在每个应用的TCB中。
在各种实现方式中,本公开的多个方面解决能够使MK-TME技术和TDX架构共存的需求。在一些实现方式中,所公开的计算系统可确保分配给TD的密钥ID不能够由MK-TME软件使用,该MK-TME软件诸如在TD的TCB外部运行的管理程序或VM。在相关实现方式中,所公开的架构可确保两个活跃的TD不能同时使用被指定为TD的受限密钥ID的密钥ID。对于存储在TD中的数据的附加的安全性而言,同样期望的是,在与灭绝的TD相关联的所有高速缓存数据被转储清除后,灭绝的TD的密钥ID可被重新分配给其他TD。
此外,即使在高度安全的TD内,客户机可能需要与共享结构(例如,共享硬件设备)通信。例如,输入/输出(I/O)设备、打印机、网络适配器、路由器、或其他处理器设备等可由多个TD使用,并且可由运行使用MK-TME保护的VM的管理程序使用。在实现方式中,对此类共享结构的访问可能仍需要通过对与共享结构的操作有关的存储器事务进行加密来保证安全(免受其他应用或外部恶意攻击)。相应地,TD可能需要能够使用不同的加密密钥——用于该TD的安全操作以及对该TD的私有存储器页的访问权的至少一个受限密钥、以及用于该TD与共享结构通信的至少一个非受限密钥。在TD的TCB中操作的软件可尝试将非受限密钥用于涉及私有存储器页的存储器事务。例如,可信软件可尝试使用非受限密钥将数据写入到私有存储器页。在不具有本说明书中公开的硬件保护的情况下,此类数据可能易受来自TCB外部的程序的软件访问(例如,读取操作)的影响,该TCB可获得对共享的非受限密钥的访问权。
用于在虚拟化系统中提供隔离的传统系统不完全地将CSP软件移除出租户的TCB。此外,传统系统可能使用单独的芯片组子系统而显著地增加TCB,本公开的实现方式避免这一点。本公开的TD架构通过将CSP软件从TCB移除由此明确地减少TCB来提供消费方(租户)工作负载与CSP软件之间的隔离。实现方式通过提供对CSP消费方工作负载(租户TD)的安全隔离来提供对传统系统的技术改进,并且允许将软件CSP软件从消费方的TCB移除同时满足CSP的安全性和功能性要求。此外,TD架构可以是可缩放到多个TD的,这可支持多个租户工作负载。此外,本文中描述的TD架构可应用于任何动态随机存取存储器(DRAM)、或基于存储类存储器(CSM)的存储器,诸如,非易失性双列直插存储器模块(NV-DIMM)。由此,本公开的实现方式允许软件利用性能益处(诸如,用于SCM的NVDIMM直接存取存储(DAS)模式)而不损害平台安全要求。
现在参考附图,图1A图示根据本公开的实现方式的计算系统100的示意性框图,该系统100可使用TD在虚拟化系统中提供隔离。计算系统100可包括虚拟化服务器110,该虚拟化服务器110包括处理器112、存储器114和网络接口116。处理器112可实现TD架构以及用于该TD架构的ISA扩展(例如,TDX)。
TD 124A、124N可被执行为由处理器112实现的TD架构的部分。TD 124A、124N可以指用于支持消费方(例如,租户)工作负载的软件执行环境。租户工作负载可包括OS以及在OS之上运行的其他应用。租户工作负载还可包括在VMM之上运行的VM。TD架构可通过在TD124A、124N与在处理器112上执行的其他软件(例如,CSP提供的软件)之间提供隔离来提供保护在TD 124A、124N中运行的租户工作负载的能力。TD架构不对在系统中操作的TD的数量施加任何架构限制,然而,软件限制和硬件限制可由于其他约束而限制在系统上同时运行的TD的数量。
当租户不信任CSP时,可在TD 124A、124N内执行租户工作负载,以强加机密性。为了根据本公开的实现方式来操作,将在其上执行TD的CPU必须支持TD架构。在一个实施例中,租户工作负载可包括在VMM之上运行的VM。由此,可由将在其上执行TD的CPU支持虚拟化模式(例如,VMX)。在另一实施例中,TD 124A、124N可能无法使用虚拟化模式来操作,而替代地可在TD 124A、124N内运行开明操作系统(OS)。
TD架构可通过包括存储器加密、TD资源管理以及执行状态和管理隔离能力的功能在TD 124A、124N与在处理器112上执行的其他软件之间提供隔离。可由处理器112的加密电路(例如,加密引擎172)提供存储器加密。在本公开的实施例中,加密引擎172可以是图3中图示的多密钥完全存储器加密(MK-TME)引擎。完全存储器加密(TME)技术允许由在处理器核上执行的软件进行的存储器访问使用加密密钥而被加密。多密钥TME技术可以是提供对多个加密密钥的支持的TME的扩展,由此允许划分的加密。存储器加密可进一步由通过处理器112维护的若干密钥表(例如,密钥所有权表(KOT)140和密钥加密表(KET)142)支持。密钥表可被存储在芯片上存储器中,其中,该芯片上存储器不能够由通过处理设备执行的软件直接访问。芯片上存储器可在物理上与处理核位于相同的芯片上。可由TDRM 122提供资源管理能力。可由存储器所有权表(MOT)190和访问受控的TD控制结构提供执行状态和管理能力,和访问受控的TD控制结构诸如,信任域控制结构(TDCS)130A、130N以及信任域线程控制结构(TDTCS)132A、132N。在下文中参照图1B描述与这些组件的功能有关的更多细节。
TDRM 122表示TD架构的资源管理层。在一些实施例中,TDRM122可实现为CSP/根VMM的部分(例如,管理VMM和VM的机器级操作的主VMM)。TDRM 122可以是作为TD架构的部分被包括的软件模块,该软件模块管理TD 124A、124N的操作。TDRM 122可充当主机,并且具有对处理器和其他平台硬件的控制。TDRM 122可将(多个)逻辑处理器指派给TD中的软件,并且还可将物理存储器和I/O资源指派给TD。虽然TDRM 122可指派并管理诸如CPU时间、存储器以及对TD 124A、124N的I/O访问这样的资源,但是TDRM 122可在TD 124A、124N的TCB外部操作。例如,TDRM可能无法访问所指派的(多个)逻辑处理器上的TD的执行状态,并且可能无法参与访问/冒充TD的存储器状态。这可通过使用单独的加密密钥以及对存储器的其他完整性/重放控制来实施。
虚拟化服务器110可支持多个客户端设备101A-101C。TD可以是可由客户端设备101A-101C经由网络接口116可访问的。客户端设备101A-101C可经由在处理器112上执行的软件(例如,CSP提供的软件)彼此通信,并与其他设备通信。TD 124A、124N可以是指客户端设备101A-101C经由处理器112来执行的租户工作负载。如先前所讨论,租户工作负载可包括OS以及在该OS之上运行的环-3应用。根据本文中描述的实施例,租户工作负载还可包括在VMM(例如,管理程序)之上运行的VM以及其他环-3应用。每个客户端设备101A-101C可包括但不限于台式计算机、平板计算机、膝上型计算机、上网本、上网本计算机、个人数字助理(PDA)、服务器、工作站、蜂窝电话、移动计算设备、智能电话、互联网设备或任何其他类型的计算设备。
处理器112可包括一个或多个核120(在本文中也称为处理核120)、范围寄存器160、存储器控制器170(例如,存储器管理单元(MMU))和I/O端口150。处理器112可在计算系统100中使用,计算系统100包括但不限于台式计算机、平板计算机、膝上型计算机、上网本、上网本计算机、PDA、服务器、工作站、蜂窝电话、移动计算设备、智能电话、互联网设备或任何其他类型的计算设备。在另一实施例中,处理器112可在芯片上系统(SoC)系统中使用。
一个或多个逻辑处理器(例如,执行线程)可在处理核120上操作。TD 124A、124N可在这些执行线程上操作。TDRM 122可充当完全主机,并且可具有对处理核120以及在处理核120上操作的所有逻辑处理器的完全控制。TDRM 122可将TD 124A、124N内的软件指派为在与TD 124A、TD 124N相关联的逻辑处理器上执行。然而,在本公开的实施例中,TDRM 122可能无法通过使用单独的加密密钥来访问在所指派的(多个)逻辑处理器上的TD 124A、124N的执行状态。可防止TDRM 122访问TD 124A、124N的执行状态,因为该TDRM 122在TD 124A、124N的TCB外部。因此,可不信任TDRM 122而不让其访问执行状态,该执行状态可能潜在地将与租户工作负载有关的信息提供给不可信的TDRM 122。防止TDRM 122访问TD 124A、124N的执行状态强制实施在TD 124A、124N上执行的租户工作负载的完整性。
虚拟化服务器110可进一步包括用于存储程序二进制文件和其他数据的存储器114。存储器114可以指主存储器,或者可以指主存储器和辅存储器两者,辅存储器可包括只读存储器(ROM)、硬盘驱动器(HDD)等。TDRM122可分配存储器114的特定部分,供由TD 124A、124N用作TDPM 186A、186N。TDPM 186A、186N可通过当创建TD 124A、124N时由TDRM 122生成的一次性密码密钥来加密。TDRM 122可生成一次性密码密钥来对TDPM186A、186N加密,但是可能无法使用该一次性密码密钥来访问存储在TDRM186A、186N内的内容。
TD 124A、124N可使用虚拟存储器地址和宾客物理存储器地址,这些虚拟存储器地址被映射到访问物理存储器地址,这些宾客物理存储器地址被映射到由存储器控制器170寻址的主机/系统物理存储器地址。当TD 124A、124N试图访问与被加载到存储器114中的页的物理存储器地址对应的虚拟存储器地址时,存储器控制器170可通过使用扩展页表(EPT)182和宾客页表(GPT)184来返回所请求的数据。存储器控制器170可包括EPT遍历逻辑和GPT遍历逻辑,以将宾客物理地址转换为主存储器的主机物理地址,并且提供用于允许(多个)处理核120读取、遍历和解释这些映射的协议的参数。
在一个实施例中,在TD 124A、124N内被执行的任务可能无法使用存储器114的物理地址来直接访问存储器114。相反,这些任务通过虚拟地址来访问TD 124A、124N的虚拟存储器。虚拟存储器内的虚拟存储器页的虚拟地址可被映射到存储器114的物理地址。TD124A、124N的虚拟存储器可被划分为固定尺寸的单元,这些固定尺寸的单元被称为虚拟存储器页,各自都具有对应的虚拟地址。存储器114可根据各自都具有固定尺寸的物理存储器页(例如,存储器帧)来组织。每个存储器帧可与唯一地标识该存储器帧的标识符相关联。具有虚拟地址的虚拟存储器页可被映射为与存储器114的物理地址空间中的固定尺寸的单元(例如,存储器帧、物理存储器页)对应。在响应于对访问存储器114的请求而执行TD 124A、124N内的宾客应用(例如,VM)期间,处理器112可使用映射(例如,页表中虚拟存储器页至物理存储器页的映射,该页表诸如宾客应用的GPT 184和TDRM 122的EPT 182)来访问存储器114的物理存储器页。
在一个实施例中,可由TDRM 122创建并启动TD 124A、124N。TDRM 122可例如通过执行特定指令(例如,TDCREATE)来创建TD 124A。TDRM 122可选择物理存储器114的(与一个存储器页对应的)4KB对齐的区域,并且提供存储器页的地址作为对用于创建TD 124A的指令的参数。由TDRM 122执行的指令可进一步使处理器112生成一次性密码密钥(也称为短时密钥)。一次性密码密钥可被指派给存储在KOT 140中的可用的HKID。KOT140可以是对在处理器112上操作的软件不可见的、用于管理TD架构内的HKID的库存的数据结构。可用的HKID还可被存储在TDCS 130A中。参照图1B进一步详细地描述KOT 140和HKID的使用。处理器112可向MOT 190咨询以将存储器页分配给TD 124A,该MOT 190也参照图1B进一步详细地描述。MOT 190可以是对在处理器112上操作的软件不可见的、由处理器112用于实施将物理存储器页指派给执行的TD的数据结构。MOT 190可允许TDRM 122具有如下能力:将存储器管理为用于所创建的每个TD(例如,TD124A、124N)的资源而不具有对存储在所指派的TDPM中的数据的任何可见性。
处理器112可利用存储器加密引擎172(例如,MK-TME引擎),以对在TD 124A、124N内执行宾客进程(例如,应用或VM)期间被访问的存储器加密(以及解密)。如上文所讨论,TME允许由在处理核(例如,(多个)处理核120)上执行的软件进行的存储器访问使用加密密钥被加密。MK-TME是对允许使用多个加密密钥从而允许划分的加密的TME的增强。在一些实施例中,处理器112可利用加密引擎172以使不同的页使用不同的加密密钥(例如,一次性加密密钥)来加密。在各实施例中,可在本文中描述的TD架构中利用加密引擎172,以支持为每个TD 124A、124N生成的一个或多个加密密钥(例如,短时密钥),从而帮助实现不同的租户工作负载之间的密码隔离。例如,当在TD架构中使用加密引擎172时,CPU可默认强制要求与每个TD 124A、124N相关联的所有页将使用专用于那个TD的密钥来加密。
每个TD 124A-124N可进一步将特定的TD页选择为是明文的,或选择为使用对在处理器112上执行的软件(例如,CSP提供的软件)不透明的不同的加密密钥来加密。例如,TDPM186A、186N内的存储器页可使用对TDRM 122未知的加密密钥以及绑定操作(例如,用于将TD的虚拟地址映射到对应的物理地址的操作)的组合来加密。由TDRM 122执行的绑定操作可通过将页的主机物理地址(HPA)用作对被用于对存储器页进行加密的加密算法的参数来将TDPM 186A、186N内的存储器页绑定到特定TD。因此,如果任何存储器页被移动到存储器114的另一位置,则即便使用TD专用的加密密钥,该存储器页也不能够被正确地解密。
在一个实施例中,可由TDRM 122摧毁TD 124A、124N。TDRM 122可使TD 124A例如通过执行特定的指令(例如,TDSTOP)来停止在于TD 124A相关联的逻辑处理器上执行。TDRM122可将高速缓存134的所有高速缓存条目进行转储清除,其中,高速缓存134与执行TD124A的逻辑处理器相关联。一旦高速缓存134的所有高速缓存条目已被转储清除,TDRM 122就可将被指派给一次性密码密钥的HKID标记为可用于指派给与其他TD(例如,TD 124)相关联的其他一次性密码密钥。TDRM 122随后可将所有页从与TD 124A相关联的TDPM(例如,TDPM 186A)移除。
计算设备100表示基于以下各项的处理系统:可从加利福尼亚州圣克拉拉市的英特尔公司获得的PENTIUM IIITM、PENTIUM 4TM、XeonTM、Itanium、XSCALETM或CORETM;来自超威半导体公司(Advanced Micro Devices,Inc.)的处理器;ARM处理器,诸如,ARM 系列的处理器、StrongARMTM设备;和/或其他设备。在其他实施例中,还可使用其他系统(例如,具有其他微处理设备的PC、工程工作站、机顶盒等)。在一个实现方式中,计算系统100执行可从华盛顿州雷蒙德市的微软公司获得的WINDOWSTM操作系统的某个版本,但是也可使用其他操作系统(例如,UNIX、Linux等)、嵌入式软件、和/或图形用户界面。因此,本公开的实现方式不限于硬件电路和软件的任何特定组合。
在说明性示例中,(多个)处理核120可包括处理器逻辑和电路(例如,微架构)。具有不同微架构的(多个)处理核120可共享共同指令集的至少部分。例如,类似的寄存器架构可在不同的微架构中使用各种技术以不同方法来实现,这些技术包括专用物理寄存器、使用寄存器重命名机制(例如,使用寄存器别名表(RAT)、重排序缓冲器(ROB)、引退寄存器堆等)的一个或多个动态分配的物理寄存器。一个或多个处理核120可执行计算系统100的指令。处理核可包括但不限于:用于取出指令的预取逻辑、用于对指令解码的解码逻辑、用于执行指令的指令逻辑,等等。(多个)处理核120可包括用于存储指令和/或数据的高速缓存134。高速缓存134可包括但不限于第一级(L1)高速缓存、第二级(L2)高速缓存和末级高速缓存(LLC)。高速缓存134还可包括处理器112内的高速缓存存储器的任何其他配置。
本公开的实现方式不限于台式计算系统。可在其他设备(诸如,手持式设备和嵌入式应用)中使用替代实现方式。手持式设备的一些示例包括蜂窝电话、网际协议设备、数码相机、个人数字助理(PDA)、手持式PC等。嵌入式应用可包括微控制器、数字信号处理设备(DSP)、SoC、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机,或能够根据至少一个规范执行一条或多条指令的任何其他系统。
可在单个处理设备台式计算机或服务器系统的上下文中描述一个实现方式,但是替代地,实现方式可被包括在多处理设备系统中。计算系统100可以是“中枢”系统架构的示例。计算系统100可包括用于处理数据信号的处理器112。作为一个说明性示例,处理器112可包括复杂指令集架构(CISC)微处理设备、精简指令集架构(RISC)微处理设备、超长指令字(VLIW)微处理设备、实现指令集的组合的处理设备、或任何其他处理设备,诸如例如,数字信号处理设备。处理器112可耦合至处理设备总线,该处理设备总线在处理器112与计算系统100中的其他组件之间传送数据信号,计算系统100中的其他组件诸如被包括在存储器114中的、存储指令数据的主存储器和/或辅存储,或其任何组合。计算系统100的其他组件可包括图形加速器、存储器控制器中枢、I/O控制器中枢、无线收发机、闪存BIOS、网络控制器、音频控制器、串行扩展端口、I/O控制器等。这些元件执行为熟悉本领域的人员公知的它们的传统功能。
在一个实现方式中,处理器112可包括作为高速缓存134的部分的L1内部高速缓存存储器。取决于架构,处理器112可在高速缓存134内具有单个内部高速缓存或多级内部高速缓存。取决于特定实现方式和需求,其他实现方式包括内部高速缓存和外部高速缓存两者的组合。寄存器堆可用于将不同类型的数据存储在各种寄存器中,这些寄存器包括整数寄存器、浮点寄存器、向量寄存器、区块化寄存器、影子寄存器、检查点寄存器、状态寄存器、配置寄存器、以及指令指针寄存器。
应当注意,执行单元可具有浮点单元,或可不具有浮点单元。在一个实现方式中,处理器112包括用于存储微代码的微代码(ucode)ROM,该微代码当被执行时,用于执行用于某些宏指令的算法以处置复杂场景。在此,微代码是潜在地可更新的以处置针对处理器112的逻辑漏洞/修复。
也可在微控制器、嵌入式处理设备、图形设备、DSP以及其他类型的逻辑电路中使用执行单元的替代实现方式。系统100可包括存储器114。存储器114可包括DRAM设备、静态随机存取存储器(SRAM)设备、闪存设备、或其他存储器设备。主存储器存储由数据信号表示的、将由处理器112执行的指令和/或数据。处理器112经由处理设备总线而耦合至主存储器。诸如存储器控制器中枢(MCH)之类的系统逻辑芯片可耦合至处理设备总线和存储器114。MCH可提供至存储器114的高带宽存储器路径,用于图形命令、数据和纹理的指令和数据存储。MCH可用于在处理器112、存储器114与系统100中的其他组件之间引导信号,并用于例如在处理设备总线、存储器114与系统I/O之间桥接数据信号。MCH可通过存储器接口而耦合至存储器114。在一些实现方式中,系统逻辑芯片可提供图形端口,用于通过加速图形端口(AGP)互连而耦合至图形控制器。
计算系统100还可包括I/O控制器中枢(ICH)。ICH可提供经由本地I/O总线而至一些I/O设备的直接连接。本地I/O总线可以是用于将外围设备连接到存储器114、芯片组和处理器112的高速I/O总线。一些示例是音频控制器、固件中枢(闪存BIOS)、无线收发机、数据存储、包含用户输入和键盘接口的传统I/O控制器、诸如通用串行总线(USB)之类的串行扩展端口、以及网络控制器。数据存储设备可包括硬盘驱动器、软盘驱动器、CD-ROM设备、闪存设备、或其他大容量存储设备。
对于系统的另一实现方式,由如上所述的处理设备核120执行的指令可与SoC一起使用。SoC的一个实现方式包括处理设备和存储器。用于一个此类系统的存储器是闪存。闪存可以位于与处理设备和其他系统组件相同的管芯上。此外,诸如存储器控制器或图形控制器的其他逻辑块也可以位于SoC上。
图1B图示根据本公开的实现方式的图1A的处理器112的框图。在一个实现方式中,处理器112可以经由单个核120或跨若干核120执行应用栈105。如先前所讨论,处理器112可以提供TD架构和TDX,以便为在不可信的CSP基础设施中的TD(例如,TD 124A、124N)中运行的消费方软件提供机密性和完整性。
在一个实施例中,TD架构可提供ISA扩展(称为TDX),该ISA扩展支持OS和(虚拟化和非虚拟化的)OS管理的应用的机密操作。使TDX启用的计算系统(诸如,包括处理器112的计算系统)可以用作被称为TD的多个经加密的上下文。为了易于解释,在图1B中描绘了单个TD 124A。每个TD 124A都可以运行VMM、VM、OS和/或其他应用。在图1B中,TD 124A被描绘为托管VM 195A。
在一些实现方式中,TDRM 122可与VMM 136兼容。VMM 136可以指用于创建、运行和管理宾客应用(诸如,VM 195A)的软件、固件和/或硬件。VMM 136可以创建并运行VM 195A,并将一个或多个虚拟处理器(例如,vCPU)分配给VM 195A。VM 195A在本文中可以称为宾客机195A。VMM 136可以允许VM 195A访问底层计算系统的硬件,该底层计算系统诸如图1A的计算系统100。VM 195A可执行宾客OS,并且VMM 136可管理该宾客OS的执行。宾客OS可以用于控制VM 195A的虚拟处理器对计算系统100的底层硬件和软件资源的访问。应当注意,当存在在处理设备112上操作的众多VM时,VMM 136可以管理在众多宾客机上执行的宾客OS中的每个宾客OS。在一些实现方式中,可利用TD 124A来实现VMM以管理VM 195A。VMM136可被称为租户VMM和/或非根VMM。
在一个实施例中,TDRM可根据虚拟化架构和ISA扩展(例如,VMX)来初始化信任域虚拟机控制结构(TDVMCS),并将其激活为工作虚拟机控制结构(VMCS)。与TDCS 130A类似,VMCS可以是被保存在由VMM管理的存储器中的数据结构。VMCS可存储用于使VM的逻辑处理器虚拟化所需的主机状态信息和宾客机状态信息,而TDCS可存储专用于TDX的控制信息,如下文中参照表1更详细地所讨论。TDVMCS可存储用于执行诸如TD124A之类的TD所需的主机状态信息和宾客机状态信息。TDVMCS可用作用于在TD 124A内操作的VM 195A和VMM的VMCS。
MOT 190可以是对由处理器112管理的任何软件不可见的结构,以强制要求将物理存储器页指派给执行的TD(诸如,TD 124A)。处理器112可使用MOT 160以强制要求作为租户TD 124A或TDRM 122操作的软件不能够访问与物理地址相关联的存储器,除非该存储器被明确地指派给该软件。为了实现此,MOT 190可强制要求TD 124A外部的软件(包括TDRM122)不能够访问属于不同TD(例如,图1A中的TD 124N)的任何存储器。MOT 190还可强制要求由MOT 190指派给特定的TD(诸如,TD 124A)的存储器页应当能够从系统中的任何处理器访问(其中,处理器正在执行存储器被指派给的TD)。在一个实现方式中,在用于由软件作出的存储器访问的页遍历期间,MOT 190可强制要求存储器访问控制。由不被指派给TD 124A或TDRM 122的处理器112执行的存储器访问可能失败。
MOT 190可用于为存储器的每个4KB的页保存元数据属性(例如,安全属性)。例如,MOT 190可保存属性,这些属性包括:页状况(例如,页在存储器中是否有效);页类别(例如,DRAM、NVRAM、I/O、预留的);页状态(例如,指示页是否被指派给另一TD(例如,图1A的TD124N)或TDRM 122,是否空闲以供指派,是否被阻止用于指派,或是否是待决的);以及TDID(例如,将页指派给特定的唯一TD的标识符)。可针对附加的页尺寸(例如,2MB、1GB等)定义附加的结构。在其他实现方式中,可由层级式页结构(例如,页表)支持其他页尺寸。MOT 190中的4KB页参考可属于TD 124A的一个运行实例。4KB页参考也可以是有效的存储器,或被标记为无效。在一个实现方式中,每个TD 124A实例可包括保存用于那个TD 124A的TDCS 130A的一个页。
KOT 140可以是用于管理TD架构内的HKID的库存的数据结构,例如,表。与MOT 190类似,KOT 140对在处理器112上操作的软件可以是不可见的。KOT 140可用于将HKID指派给为TD 124A生成的一次性密码密钥。在一个实施例中,可为TD 124A生成多个一次性密码密钥。在进一步的实施例中,可将不同的HKID指派给为TD 124A生成的每个一次性密码密钥。根据本文中描述的实施例,KOT 140可进一步由TDRM 122用于在TD摧毁时废除被指派给一次性密码密钥的HKID并控制对高速缓存134的转储清除。
根据TDX架构,KOT 140可保持跟踪可用于供由在计算系统上执行的所有TD使用的所有HKID。HKID可具有如下状态:经指派、空闲(或可用)、经回收、或经配置。具有空闲状态的HKID可用于指派给密码密钥(例如,为TD 124A生成的一次性密码密钥)。具有经指派状态的HKID被指派给与TD相关联的密码密钥,因此不可用于指派给后续的密码密钥。具有经配置状态的HKID已经在加密引擎(例如,图1A的加密引擎172)中连同其经指派的密码密钥一起被配置。在摧毁TD 124A的过程期间,HKID被给予经回收状态,如参照图9进一步详细地所述。HKID可具有经回收状态,直到高速缓存134的所有高速缓存条目都已被转储清除。当所有高速缓存条目都已被高速缓存时,HKID的状态可从经回收改变为可用。
KET 142可以是对在处理器112上执行的软件不可见的、用于配置加密引擎(例如,图1A的加密引擎172)的数据结构。KET 142可通过HKID来索引,并且可指示每个HKID是否已在加密引擎中被配置。
TDCS 130A可被指派给TD 124A并被存储在TDPM 186A中。TDCS130A可以是作为TD架构的部分且由TDRM 122管理的访问控制结构。TDCS130A可管理转变为TDX操作以及TDX操作转变出(例如,TD进入和TD退出)。从TDRM 122转变为TDX租户操作被称为TD进入。TD进入可通过由TDRM 122执行的指令来触发。从TDX租户操作转变为TDRM 122被称为TD退出。TD退出可通过要求从TD 124A退出的硬件事件来触发。例如,支持TD的页表(例如,图1A的EPT182)中的页错误可导致TD退出。
TDCS 130A可占据存储器114的4KB的自然对齐的区域(例如,存储器的页)。TDCS130A可包括但不限于以下在表1中描绘的下列字段:
表1:存储在TDCS中的TDX控制信息
在一个实施例中,多个逻辑处理器可被指派给TD 124A。对于被指派给TD 124A的每个逻辑处理器,信任域线程控制结构(TDTCS)132A可被添加到TDPM 186A。在一个实施例中,多个TDTCS 132A页可被添加到TDPM186A。根据下文讨论的实施例,可使用TDTCS 132A来进入TD 124A或退出TD 124A。TDTCS 132A可包括状态保存区域(SSA),用于存储用于被指派给TD 124A的一个逻辑处理器的执行状态。如果当处理器112正在执行与TDPM 186A的存储器页相关联的指令(即,处理器正以租户模式操作)时TD退出条件发生,则可由TDRM 122执行TDEXIT指令。TD 124A的状态可被保存在TDTCS 132A中。在另一实施例中,如果当处理器112正在TD 124A内的非根VMM的上下文中操作时TD退出条件发生,则TDRM 122可执行对于TD VMM的VMEXIT指令。租户VMM状态可被保存在TDTCS 132A中,并且TDRM 122后续可执行TD退出。
如上文所讨论,TDTCS 132A可将TD 124A的执行状态保存在SSA中。TD 124A的执行状态可包括执行TD 124A的逻辑处理器的执行状态、往回去往父TDCS(例如,TDCS 130A)的连接、多个TDTCS执行标志、与监管模式对应的TD状态、以及与用户对应的TD状态。
在一个实施例中,可由MOT 160对TDCS 130A和TDTCS 132A进行访问控制(例如,存储在MOT 190中的加密密钥ID可用于强制要求存储器访问控制)。在另一实现方式中,可经由(多个)受限的范围寄存器中的存储对TDCS 130A和TDTCS进行访问控制,(多个)受限的范围寄存器诸如图1A中图示的不可由软件访问来访问的处理器112的范围寄存器160。
TDRM 122状态区域可被存储在TDRM控制结构(TDRCS)174中。TDRCS 174还可被实现为仅包含主机状态、控制和TD退出信息的新类型的VM控制结构。
图2图示示例TD生命周期200以及TD 224与TDRM 222之间的交互的框图。在一个实现方式中,TD 224和TDRM 222可以与参照图1A和图1B描述的它们的对应物相同。TD架构200可以与由图1A和图1B的计算设备100提供的TD架构相同。TD架构200可提供管理在系统上活跃的TD的生命周期的层。对TD的处理器支持可由被称为TDX操作的处理器操作来提供。存在两种类型的TDX操作:资源管理器操作和租户操作。一般而言,TDRM 222以TDX资源管理器操作运行,并且TD(诸如,TD 224)以TDX租户操作运行。资源管理器操作与租户操作之间的转变称为TDX转变。
存在两种类型的TDX转变:TD进入270和TD退出260。从TDX资源管理器操作到TDX租户操作的转变称为TD进入270。TD进入可通过由TDRM 222执行的指令来触发。从TDX租户操作到TDX资源管理器操作的转变称为TD退出260。TD退出260可通过要求从TD退出的硬件事件来触发。例如,支持TD的页表(例如,图1A的EPT 182)中的页错误可导致TD退出206。
如上文所讨论,处于TDX资源管理器操作的处理器以与该处理器在TDX操作外部类似的方式进行操作。主要区别在于TDX操作(TDX指令)的集合是可用的,并且可以被加载到某些控制寄存器中的值受限以限制TDRM222的模式和能力。
处于TDX租户操作的处理器行为被限制以制造隔离。例如,与普通操作不同,某些事件(例如,页错误、对存储器页的未经授权的访问、任务切换、租户工作负载终止等)导致去往TDRM 222的TD退出260。这些TD退出260不允许TDRM 222修改TD 224的行为和状态。TDRM 222可使用平台能力来保持对平台资源的控制。在TD 224中运行的软件(例如,租户VM1225A、租户VM2 225B等)可以使用软件可见信息来判定该软件正在TD 224中运行,并且可以对加载到TD 224中的附加软件实施本地测量策略。然而,验证TD 224的安全状态是由远程证明方执行以确保机密性的过程。
TD架构200可设计成使得当在TD 224中运行时依赖于虚拟化的软件的兼容性问题最小化。TD架构200使得在以租户操作运行的VM 225A、225B与以租户操作运行的租户VMM230之间的大多数交互保持不变。如果在TD224中不存在VMM 230,则可以将VM OS(未示出)修改为与TDRM 222一起作为根VMM来工作。
在一个实现方式中,例如,TDRM 222可以明确地决定引起TD退出260以终止TD 224或管理存储器资源(例如,产生所指派的存储器资源,请求空闲存储器资源等)。TD架构200还可向TDRM 222提供用于强迫TD退出260以进行抢占的能力。在TD退出260时,TD架构强制要求TD 224的执行状态可被保存在CPU访问受控的存储器结构(例如,图1A和图1B的TDTCS132A)中以保护TD状态的机密性免受TDRM 222或其他TD的影响,该在CPU访问受控的存储器结构被分配给TD 224,并且使用唯一的加密密钥(例如,一次性加密密钥)进行加密,该唯一的加密密钥与对TDRM 222不可见的TD 224相关联或与其他TD相关联。可类似地保护TD执行状态免受欺骗(例如,人或程序通过篡改数据而成功地伪装成另一人或程序),免受重新映射(例如,将受保护虚拟地址的物理存储器重新映射到恶意模块的上下文内的新虚拟地址),和/或免受经由存储器上的完整性控制的重放(例如,恶意地或欺骗性地重复或延迟有效数据传输)。
TD进入270是TD退出260的互补事件。例如,当TDRM 222调度TD 224以在逻辑处理器上运行,并将执行转移到在TD 224中运行的软件时,TD进入270可以发生。在TD进入270期间,TD架构200可强制要求TDRM222的执行状态被保存在TDRM所拥有的存储器(即,图1A和图1B中的TDPM186A、186N)中,该存储器使用被分派仅由TDRM 222使用的唯一的加密密钥(例如,一次性加密密钥)来加密。
诸如TD 224之类的TD可由TDRM 222使用特定指令(例如,TDCREAT、TDADDPAGE等)来设立,以使存储器空间被分配给TD,并使存储器空间使用对TDRM 222或其他软件不可见的唯一的加密密钥来加密。当在逻辑处理器上执行属于TD 224的任何指令之前,可使用与TD 224相关联的唯一的密钥(例如,一次性密码密钥)将存储在TDPM中的所有TD存储器(例如,图1A和图1B中的TDPM 186A、186N)加密。尽管本文中引用了特定的指令名称,但是在本公开的实现方式中可以利用指令的其他名称,并且不限于本文所提供的特定名称。
在一个实现方式中,TDRM 222可以在签名验证之后利用小软件镜像(类似于IBB或初始引导块)启动每个TD 224,并使用平台信任根来记录IBB测量(以用于后续证明)。可获得测量以用于小软件镜像,从而防止用于启动TD 224的指令被再次使用。可使用安全散列算法来计算测量,因此,系统软件可通过遵循由TDRM 222执行的确切的指令序列来仅实现与期望测量匹配的TD。TDX设计可使用256位的SHA-2安全散列函数来计算测量。在TD 224中执行的IBB软件可负责完成TD 224的经测量的启动并从TDRM 222请求附加资源。在一个实施例中,TD 224可使用单个加密密钥来保护整个TDPM。在另一实施例中,TD 224可使用多个免密密钥来保护TDPM,其中,每个加密密钥可与不同的租户VM 225A、225B、和/或容器或不同的存储器资源(诸如,NVRAM)相关联。因此,当TD 224首先被创建时,TD 224可使用独占的CPU生成的MK-TME密钥。此后,如上文所讨论,TD 224可任选地为在TD 224内操作的每个租户软件管理的上下文设立附加的MK-TME加密密钥。
为了使对于用于CSP的VMM(例如,TDRM 222和租户VMM 230)的软件兼容性影响最小化,虚拟化操作(例如,VMX)可以在TD架构200中的TD 224内保持未经修改。类似地,VMM软件的操作(诸如,EPT和GPT管理)可以保持在租户VMM 230的控制下(如果一个租户VMM在TD224中是活跃的,并且不由TDRM 222管理)。当TDRM 222为每个TD 224指派物理存储器时,TD架构200包括参照图1A和图1B描述的MOT。处理器112可向TDRM管理的MOT 190咨询以将存储器114的多个部分分配给TD(例如,TD 224)。这可允许TDRM 222在不需要具有对驻留在所指派的TD存储器中的数据的任何可见性的情况下完全有能力将存储器作为资源来管理。在一些实现方式中,如上文所讨论,平台(例如,根)VMM和TDRM 222可以在相同的加密密钥域中,从而共享存储器管理和调度器功能(但仍然保持在租户的TCB外部)。
图3图示多密钥完全存储器加密(MK-TME)引擎的示例实施例。根据本公开的实施例,MK-TME可被用作加密引擎。在所图示的实施例中,存储器保护系统300包括处理器302、系统代理304和存储器310。存储器保护系统300可提供对存储在存储器310上的数据的密码保护。处理器302可与图1A和图1B中图示的处理器112对应。存储器310可与图1A和图1B中图示的存储器114对应。虽然未在图1A和图1B中图示,但是系统代理304可以是虚拟化服务器110的组件。具体而言,系统代理304可以是处理器112的组件,并且存储器控制器308可与图1A和图1B中的存储器控制器170对应。
系统代理304可以用于为处理器302提供各种功能,诸如,管理对存储器310和/或系统300的其他资源的访问。在所图示的实施例中,例如,系统代理304可包括存储器控制器308,用于控制和/或管理对系统300的存储器310的访问。此外,如下文进一步所描述,系统代理304还可包括存储器保护控制器306,用于保护存储在存储器310上的数据。在一些实施例中,系统代理304还可(例如,使用直接媒体接口(DMI)和/或PCI-Express桥)提供处理器302与系统300的其他组件之间的接口。在各实施例中,系统代理304可包括配置为执行本文中所述的系统代理304的功能的逻辑元件的任何组合,逻辑元件从存储器或其他非暂态计算机可读介质加载、或直接实现在硬件中,作为非限制性的示例包括:微处理器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、可编程逻辑阵列(PLA)、专用集成电路(ASIC)、和/或VM处理器。系统代理304可与处理器302集成,或者替代地,系统代理304可实现在通信地耦合或连接到处理器302的单独的芯片上。
存储器控制器308可用于控制和/或管理对系统300的存储器310的访问。在各实施例中,存储器控制器308可使用硬件和/或软件逻辑的任何组合来实现,硬件和/或软件逻辑包括微处理器、ASIC、FPGA、PLA、VM、和/或任何其他类型的电路或逻辑。
在所图示的实施例中,系统300为存储器310提供密码存储器保护。在一些实施例中,例如,密码存储器保护可以通过扩展和/或修改特定的计算机架构来实现。例如,密码存储器保护可以通过扩展处理器302的功能和/或引入存储器保护控制器306来实现。在所图示的实施例中,例如,处理器302被扩展为支持控制寄存器303和可以用于启用和/或配置密码存储器保护的(多条)处理器指令,并且存储器保护控制器306被实现为提供密码存储器保护。控制寄存器303可与图1A中图示的范围寄存器160对应。尽管所图示的示例使用分开的逻辑块来描绘存储器保护控制器306和处理器302,但是在实际的实施例中,存储器保护控制器306和处理器302可以集成在一起,或者替代地可以实现为分开的组件。在各实施例中,例如,存储器保护控制器306可使用硬件和/或软件逻辑的任何组合来实现,硬件和/或软件逻辑包括微处理器、ASIC、FPGA、PLA、VM、和/或任何其他类型的电路或逻辑。
存储器保护控制器306可使用存储器加密来保护存储在存储器310上的数据。在一些实施例中,例如,存储器保护控制器306可以实现在存储器路径或存储器总线上以允许对传送至存储器310的、和从存储器310传送的、和/或存储在存储器310上的数据的加密。此外,在一些实施例中,存储器保护控制器306可以是可配置或可编程的,并且可包括对多个加密密钥的支持。相应地,存储器保护控制器306可以(例如,由软件)配置或编程为使用不同的加密密钥和/或算法对存储器310的不同区域或页进行加密。以此方式,可以为不同的用户、租户、消费方、应用和/或工作负载单独地提供和配置存储器加密。
例如,在一些实施例中,存储器保护控制器306可用于定义可以使用存储器加密单独地配置和保护的各种安全的或受保护的域。在一些实施例中,例如,“域”可以视为与特定工作负载(例如,TD)相关联的资源的集合,并且可包括包含与该工作负载相关联的数据的存储器的任何区域。例如,用于CSP的消费方工作负载的TD可包括与OS、VM(例如,在由TDRM执行的VMM上运行的VM)和/或在OS或VM上运行的任何环3应用相关联的资源(例如,存储器)。存储器保护控制器306可允许受保护的域被单独地配置和保护,从而允许每个受保护的域通过利用唯一的加密密钥对其相关联的代码和/或数据进行加密而在存储器中以密码方式被隔离。以此方式,通过为各种工作负载定义不同的保护域,不同的用户、消费方和/或租户的工作负载能以密码方式被隔离。
在一些实施例中,可使用处理器指令和/或硬件寄存器来发现和配置系统300的密码存储器保护。例如,在一些实施例中,处理器指令可以用于判定密码存储器保护是否由系统300支持,诸如,由软件用于标识特定处理器的能力的CPU标识(CPUID)指令。
在判定了密码存储器保护由系统300支持之后,随后可使用硬件寄存器来启用和/或配置密码存储器保护,这些硬件寄存器诸如处理器302的控制寄存器303。例如,控制寄存器303可以包括允许软件发现、启用和/或配置系统300的密码存储器保护能力的各种模型专用寄存器(MSR)。在一些实施例中,例如,控制寄存器303可包括存储器加密能力寄存器、存储器加密激活寄存器、和/或一个或多个存储器加密排除寄存器。
在所图示的实施例中,存储器保护控制器306维持内部域密钥表307以标识在系统300中已经被配置的受保护的域(例如,TD)。密钥表307可以使用任何形式的存储器或存储(例如,RAM)来实现,并且还可以直接实现在存储器保护控制器306上,实现在存储器310中,和/或使用另一存储器组件来实现。
域密钥表307的条目312、314、316、318各自对应于不同的受保护的域(例如,TD)。例如,每个条目312-318可包括密钥或域ID、保护模式和相关联的加密密钥(例如,一次性密码密钥)。在一些实施例中,例如,密钥ID(例如,HKID)可表示在相关联的受保护的域内的存储器地址的较高阶位。在所图示的示例中,域密钥表307中的每个密钥ID使用5个位来表示。相应地,与给定的密钥ID相关联的受保护的域覆盖其最高阶的5位与密钥ID匹配的所有存储器地址。在所图示的实施例中,密钥ID可被存储为密钥表307中的字段,但是在替代实施例中,密钥ID可被用作到密钥表307中的索引而不是直接存储在密钥表307中。
此外,在一些实施例中,可以支持多个保护模式,并且可以使用特定的保护模式来保护每个受保护的域。例如,在一些实施例中,标准保护模式可包括明文模式(例如,未加密的)、标准或默认加密模式(例如,使用标准或默认加密密钥加密的)、和/或定制加密模式(例如,使用唯一的加密密钥加密的)。相应地,密钥表307可标识与每个受保护的域或密钥ID相关联的保护模式。
在所图示的示例中,域密钥表307包括四个条目。第一条目标识对应于密钥ID00000的受保护的域(因此覆盖在最高阶5位中包括00000的所有存储器地址),其以默认加密模式使用密钥“ABC”来保护。第二条目标识对应于密钥ID 00001的受保护的域(因此覆盖在最高阶5位中包括00001的所有存储器地址),其以明文模式保护并且这不具有相关联的加密密钥。第三条目标识对应于密钥ID 00010的受保护的域(因此覆盖在最高阶5位中包括00010的所有存储器地址),其以定制执行模式使用密钥“XYZ”来保护。第四条目标识对应于密钥ID 00011的受保护的域(因此覆盖在最高阶5位中包括00011的所有存储器地址),其以默认加密模式使用密钥“ABC”来保护。如由这些示例所示,使用定制的加密模式保护的域具有唯一的密钥(“XYZ”),使用默认加密模式保护的域共享加密密钥(“ABC”),而以明文模式保护的域不被加密并且因此不具有相关联的密钥。在本公开的实施例中,TD可在定制加密模式下受保护,并且可具有唯一的密钥(例如,一次性密码密钥)。
在一些实施例中,可使用由处理器302实现的处理器指令(例如,PCONFIG)来定义和/或配置受保护的域。该处理器指令可用于通过对存储器保护控制器306的密钥表307中的新条目进行编程(或者修改现有的条目)来定义和/或配置受保护的域。以此方式,可以使用该处理器指令来以编程方式(例如,由管理软件)定义和配置受保护的域(例如,TD)。
图4-图8是根据本文中描述的某些实施例的由TDRM创建TD的方法400、500、600、700和800的流程图。图9-图11是根据本文中描述的某些实施例的由TDRM摧毁TD的方法900、1000、和1100的流程图。方法400-1100可由处理逻辑执行,该处理逻辑是硬件(例如,电路、专用逻辑、可编程逻辑、微代码等)。在一个实施例中,方法400-1100可部分地由图1A和图1B中的执行TDRM 122的处理器112执行。例如,方法400-1100可由处理器112的逻辑电路执行,逻辑电路包括以下一个或多个:(多个)处理核120、高速缓存134、MOT 190、KOT 140、KET142、WBT 144、KMT 146、范围寄存器160、存储器控制器170、加密引擎172、以及I/O端口150。
为了使解释简单,方法400-1100被描绘和描述为动作。然而,根据本公开的动作可以按各种顺序发生,并且/或者可同时发生,并且伴随此处未呈现和描述的其他动作发生。此外,可能不是所有所图示的动作都被执行以实现根据所公开主题的方法400-1100。此外,本领域技术人员将理解并领会,方法400、500、600、700、800、900、1000和1100可替代地被表示为经由状态图的互相关联的状态或被表示为事件。
图4图示用于创建TD的方法400的流程图。如先前所讨论,可由TDRM创建并启动TD。TDRM可充当主机,并且具有对处理器和平台硬件的控制。TDRM可通过执行特定指令(例如,TDCREATE)来创建TD,这可发起TD创建进程。
在框410处,TDRM可初始化TDCS。如上文所讨论,TDCS是作为TDX ISA的部分且由TDRM管理的访问控制结构。然而,TDCS不能够直接由TDRM访问。TDCS可占据存储器的4KB的自然对齐的区域(例如,存储器的页)。由MOT(例如,图1A和图1B中图示的MOT 190)中的TDCS占据的页可被阻止在TDCREATE指令被成功地执行之后的软件读取/写入。TDRM可根据下文参照图5所描述的实施例来初始化TDCS。
在框412处,TDRM可初始化TD保护的存储器(TDPM)。TDPM可以是物理存储器的、用于与TD相关联的部分。根据下文参照图5所描述的实施例,TDRM可选择可用的物理存储器的、用于与TD相关联的部分,且随后将物理存储器的该部分初始化为TDPM。
在一个实施例中,TDRM可为TDPM中的TDCS分配目标页。TDRM可选择物理存储器的区域(例如,对齐的4KB区域),并且提供此作为用于创建TD的指令(例如,TDCREATE)的参数。可为TDCS分配存储器的该区域。在一些实施例中,为TDCS分配的存储器的区域可被阻止读取操作和写入操作,因此在TDX架构内受保护。TDCS例如可保存TD标识符、分配给TD的加密密钥、以及与该加密密钥相关联的HKID。
在框414处,TDRM可使一次性密码密钥被生成,以用于对被包括在TDPM中的存储器页加密。一次性密码密钥可以是短时密钥(即,为由TDRM创建的每个TD生成的密码密钥)。TDRM可选择用于对用于TD的一次性密码密钥进行编程的密钥编程模式。例如,TDRM可直接指定用于域的密钥。根据本文中描述的TD架构,在其他示例中,TDRM可请求由CPU生成随机密钥。
在框416处,TDRM可标识存储在密钥所有权表(KOT)中的可用的主机密钥标识符(HKID)。如上文所讨论,KOT可以是对在处理器上执行的软件不可见的、用于管理TDX内的HKID库存的数据结构。在一些实施例中,TDX可具有可用于供由TDRM生成的所有TD使用的特定数量的HKID。KOT可维护可用于由在处理器上创建的所有TD使用的所有HKID。如上文所讨论,HKID可具有如下状态:经指派、空闲(或可用)、经回收、或经配置。
在框418处,TDRM可将HKID存储在TDCS中。当在被执行的TD中执行租户工作负载期间,存储在TDCS中的HKID可被用作保护机制(例如,TME、MK-TME)的部分以防止恶意或不可信软件(包括TDRM)访问TDPM的存储器页。
在框420处,TDRM可将一次性密码密钥指派给多密钥完全存储器加密(MK-TME)引擎上可用的HKID。TDRM可执行特定的指令(例如,TDCONFIGKEY)以配置TD可针对其操作的所有封装上的MK-TME引擎上的一次性密码密钥和可用的HKID。TDCONFIGKEY指令可与用于定义和/或配置参照图3描述的系统300的受保护的域的PCONFIG指令对应。通过执行TDCONFIGKEY指令,TDRM可使MK-TME引擎的存储器保护控制器(例如,图3中的存储器保护控制器306)对用于TD的密钥和保护模式编程。存储器保护控制器随后可将指示密钥已经被配置的状况代码返回给TDRM。
在框422处,TDRM可将逻辑处理器与TD相关联。KT可在相关联的逻辑处理器上操作。TDRM可充当完全主机,并且可具有对逻辑处理器以及逻辑处理器正在其上操作的处理核的完全控制。参照图6进一步详细地描述将逻辑处理器与TD相关联所需的动作。
在框424处,TDRM可将存储器页从逻辑处理器的地址空间添加到TDPM,参照图7更详细地描述此。
在框426处,TDRM可通过用存储器页的内容项扩展TD测量来测量存储器页。TDRM可执行特定的指令(例如,TDEXTEND)以用所添加的页的内容来扩展TD测量。在TD上扩展测量,以防止用于创建TD的指令(例如,TDCREATE、TDADDPAGE等)被再次使用。可通过对用于创建TD并将初始代码和数据加载到该TD的存储器中的指令(例如,TDCREATE、TDADD和TDEXTEND)的输入计算安全散列来获得TD的测量。可使用安全散列算法来计算测量,因此,系统软件可通过遵循由TDRM执行的确切的指令序列来仅构建与期望测量匹配的TD。TDX设计可使用256位的SHA-2安全散列函数来计算测量。在一个实施例中,可在被添加到TDPM的页的每个256字节的块上扩展TD测量。测量被重复,直到所添加的TD页的每个256字节的块都已被测量。每个TD测量可被存储在TDCS的字段中。
在框428中,TDRM可将执行控制转移到与TD相关联的逻辑处理器以执行TD,参照图8更详细地描述此。
图5图示初始化与TD相关联的TDCS和TDPM的方法500的流程图。方法500可与在图4中图示的方法400在410处执行的操作(即,初始化与TD相关联的TDCS)和在412处执行的操作(即,初始化与TD相关联的TDPM)对应。
在框510处,可由TDRM将TDCS镜像页加载到主机存储器。
在框512处,可由TDRM设置TD可使用的HKID的数量。在一个实施例中,TD可被分配一个HKID,并因此将仅具有可用于对TDPM加密的一个一次性密码密钥。在另一实施例中,TD可被分配多个HKID,并因此将具有可用于对TDPM加密的多个一次性密码密钥。HKID的数量可被保存到TDCS镜像页。
在框514处,主机存储器的部分可被指定为TDPM。如上文所讨论,TDPM可占据主机存储器的4KB的自然发生的区域(例如,存储器的页)。
在框516处,TDPM的页可被分配为用于TDCS的目标页。
在框518处,可从被加载到TDPM的TDCS镜像页初始化目标TDCS页。
图6图示将逻辑处理器与TD相关联的方法600的流程图。方法600可与在图4中图示的方法400的框422处执行的操作(即,将逻辑处理器与TD相关联)对应。
在框610处,TDRM可在TDPM中分配用于信任域虚拟处理空间(TDVPS)的目标页。TDVPS可包括对与TD相关联的虚拟处理器进行仿真的一个或多个处理线程。
在框612处,TDRM可将TDVPS绑定到与TD相关联的TDCS。
在框614处,TDRM可将逻辑处理器关联至TDVPS。逻辑处理器可以是用于执行TD的租户工作负载的处理核上的可执行线程。
在框616处,TDRM可在TDPM中分配用于与逻辑处理器相关联的TD状态保存区域(SSA)帧的目标页。TD SSA可被包括为先前参照图1A和图1B讨论的TDTCS的部分。TD SSA可以是存储在TD内执行的租户进程的状态的安全存储器页。
在框618处,TDRM可将TD SSA页从逻辑处理器的地址空间添加到被分配给TDVPS的目标页。TDRM可执行特定的指令(例如,TDADDSSA),从而提供目标页的地址作为输入,以添加TDSSA页。该指令的执行可将TD SSA页绑定至TDVPS。
方法600的先前描述的操作可针对由TDRM创建的每个TDVPS执行。应当注意,由TDRM创建的第一TDVPS可以是虚拟引导程序处理器(BSP)。可为在TD创建进程期间所需的任何引导程序操作分配虚拟BSP。由TDRM创建的任何后续TDVPS可以是虚拟应用处理器(AP)。可为当TD正在执行时所需的任何租户操作分配虚拟AP。
图7图示将存储器页从逻辑处理器的地址空间添加到TDPM的方法700的流程图。方法700可与在图4中图示的方法400的框424处执行的操作(即,将存储器页从逻辑处理器的地址空间添加到TDPM)对应。
在框710处,TDRM可将主机存储器的物理页分配给TD引导镜像页。在一个实施例中,TDRM可将主机存储器的多个物理页分配给TD引导镜像页。
在框712处,TDRM可将TD引导镜像页加载到主机存储器中所分配的物理页。TD引导镜像页可包含当TD首次由与TD相关联的逻辑处理器执行时被使用的代码和数据页。
在框714处,TDRM可选择主机存储器中的存储器页以复制到与TD相关联的TDPM。
在框716处,TDRM可为所复制的存储器页分配TDPM的目标页。
在框718处,TDRM可使用与TD相关联的一次性密码密钥对所选择的存储器页的内容加密。一次性密码密钥可以是与在图4中图示的方法400的框414(即,生成一次性密码密钥)中由TDRM生成的密钥相同的密钥。
在框720处,TDRM可将所选择的存储器页复制到TDPM的目标页。
在框722处,TDRM可用在存储器页的每个256字节的块上的所复制的页的内容来扩展TD测量。
图8图示将执行控制转移到逻辑处理器以执行TD的方法800的流程图。方法800可与在图4中图示的方法400的框428处执行的操作(即,将执行控制转移到逻辑处理器以执行TD)对应。以下操作可在TDRM想要在其上启动TD的每个逻辑处理器上执行。
在框810处,TDRM可标识被指定为虚拟引导程序处理空间的未使用的TDVPS页。
在框812处,TDRM可分配用于TD EPT的主机存储器的物理页。
在框814处,TDRM可将TD引导镜像页从主机存储器映射到为TD EPT分配的页。TD引导镜像页可以是在图7中图示的方法700的框712(即,将TD引导镜像页加载到主机存储器中所分配的物理页)的被加载到主机存器中所分配的物理页的TD引导镜像页相同的TD引导镜像页。
在框816处,TDRM可分配主机存储器的物理页,并初始化它以用于信任域虚拟机控制结构(TDVMCS)。
在框818处,TDRM可将TDVMCS激活为工作的虚拟机控制结构(VMCS)。TDRM可执行特定的指令(例如,VMPTRLD),这将TDVMCS激活为工作的VMCS。
在框820处,TDRM可初始化TDVMCS。TDRM可执行特定的指令(例如,VMWRITE),该特定的指令使TDVMCS初始化。所执行的指令可设置用于TDVMCS的主机状态。所执行的指令还可设置指向TD EPT的指针,并设置去往所选择的TDVPS页的链接。
在框822处,TDRM可将执行控制转移到逻辑处理器以执行TD。
图9图示用于摧毁TD的方法900的流程图。在本公开的实施例中,可由TDRM摧毁TD。TDRM可通过执行特定指令(例如,TDSTOP)来摧毁TD,该特定的指令可发起TD摧毁进程。
在框910处,TDRM可防止TD在逻辑处理器上执行,参照图10更详细地描述此。
在框912处,TDRM可将与逻辑处理器相关联的高速缓存的高缓存的条目转储清除,其中,高速缓存条目包含与TD相关联的存储器页的内容。
在框914处,TDRM可将被指派给与TD相关联的一次性密码密钥的HKID标记为经回收。如上文所讨论,如果HKID被标记为经回收,则该HKID不再被指派给与被摧毁的TD相关联的一次性密码密钥,但是还没准备好由TDRM指派给与其他TD相关联的其他一次性密码密钥。直到与逻辑处理器相关联的高速缓存的所有高速缓存条目都已被转储清除,TDRM才可将HKID标记为可用。
在框916处,TDRM可判定与逻辑处理器相关联的高速缓存的所有高速缓存条目是否都已被转储清除。如果TDRM已判定不是与逻辑处理器相关联的高速缓存的所有高速缓存条目已被转储清除,则TDRM可将KOT中的HKID的状况维持为经回收。在一个实施例中,TDRM可将与逻辑处理器相关联的转换后备缓冲器(TLB)的所有条目转储清除。
在框918处,TDRM可将HKID标记为可用于指派给与其他TD相关联的其他一次性密码密钥。通过将HKID的状态改变为可用,HKID可被指派给其他一次性密码密钥,而不存在由先前指派的密钥保护的内容能够被访问的风险。
在框920处,TDRM可将存储器页从与TD相关联的TDPM移除,参照图11更详细地描述此。
图10图示防止TD在逻辑处理器上执行的方法1000的流程图。方法1000可与在图9中图示的方法900的框910处执行的操作(即,防止TD在逻辑处理器上执行)和框912处执行的操作(即,将与逻辑处理器相关联的高速缓存的高速缓存条目转储清除,其中,高速缓存条目包含与TD相关联的存储器页的内容)对应。
在框1010处,TDRM可选择要摧毁的在主机上操作的TD。由于在TD内操作的租户进程已终止,因此可摧毁TD。还可摧毁TD以将不可用的HKID重新分配给TDRM稍后将创建的其他TD。
在框1012处,TDRM可防止存储在于TD相关联的TD的TDPM的存储器页中的指令在主机上执行。
在框1014处,TDRM可将处理器间中断广播到执行存储在TDRM的存储器页中的指令的逻辑处理器,从而导致该逻辑处理器上的退出。
在框1016处,TDRM可将与逻辑处理器相关联的高速缓存的高缓存条目转储清除,其中,高速缓存条目包含与TD相关联的存储器页的内容。
图11图示用于将存储器页从与TD相关联的TDPM移除的方法1100的流程图。方法1100可与在图9中图示的方法900的框920处执行的操作(即,将存储器页从与TD相关联的TDPM移除)对应。
在框1110处,TDRM可将与在TD上操作的租户工作负载相关联的存储器页从TDPM移除。TDRM可执行特定的指令(例如,TDREMOVEPAGE)并提供与租户工作负载相关联的存储器页的地址,以便移除存储器页。
在1112处,TDRM可将被分配给TD EPT的存储器页从与执行TD的逻辑处理器相关联的主机存储器移除。TDRM可执行特定的指令(例如,TDREMOVEPAGE)并提供被分配给TD EPT的存储器页的地址,以便将存储器页从主机存储器移除。
在框1114处,TDRM可将被分配给TD状态保存区域(SSA)帧的存储器页从TDPM移除。TDRM可执行特定的指令(例如,TDREMOVEPAGE)并提供被分配给TD SSA帧的存储器页的地址,以便将存储器页从TDPM移除。
在框1116处,TDRM可将被分配给TD VPS的存储器页从TDPM移除。TDRM可执行特定的指令(例如,TDREMOVEPAGE)并提供被分配给TD VPS的存储器页的地址,以便将存储器页从TDPM移除。
在框1118处,TDRM可将被分配给TDCS的存储器页从TDPM移除。TDRM可执行特定的指令(例如,TDREMOVEPAGE)并提供被分配给TDCS的存储器页的地址,以便将存储器页从TDPM移除。
在框1120处,TDRM可将被分配给TD VMCS的存储器页从主机存储器移除。TDRM可执行特定的指令(例如,VMCLEAR)并提供被分配给TD VMCS的存储器页的地址,以便将存储器页从主机存储器移除。
图12A图示根据本公开的至少一个实现方式的处理器的有序流水线以及寄存器重命名级、乱序发布/执行流水线的框图,该处理器监视处理设备使用信任域在虚拟化系统中提供隔离的性能。图12B图示根据本公开的至少一个实现方式的要被包括在处理器中的有序架构核以及寄存器重命名逻辑、乱序发布/执行逻辑的框图。图12A中的实线框图示出有序流水线,而虚线框图示出寄存器重命名的、乱序发布/执行流水线。类似地,图12B中的实线框图示出有序架构逻辑,而虚线框图示出寄存器重命名逻辑以及乱序发布/执行逻辑。
在图12A中,处理器流水线1200包括取出级1202、长度解码级1204、解码级1206、分配级1208、重命名级1210、调度(也被称为分派或发布)级1212、寄存器读取/存储器读取级1214、执行级1216、写回/存储器写入级1218、异常处置级1222和提交级1224。在一些实现方式中,按照不同顺序提供这些级,并且可以有序地和乱序地考虑不同级。
在图12B中,箭头指示两个或更多个单元之间的耦合,并且箭头的方向指示那些单元之间的数据流的方向。图12B示出处理器核(核)1290,该处理器核(核)1290包括前端单元1230,该前端单元1230耦合到执行引擎单元1250,并且前端单元1230和执行引擎单元1250两者都耦合到存储器单元1270。
核1290可以是精简指令集计算(RISC)核、复杂指令集计算(CISC)核、超长指令字(VLIW)核、或混合或替代的核类型。作为又一选项,核1290可以是专用核,诸如例如,网络或通信核、压缩引擎、图形核,等等。
前端单元1230包括分支预测单元1232,该分支预测单元1232耦合到指令高速缓存单元1234,该指令高速缓存单元1234耦合到指令后备缓冲器(TLB)1236,该指令后备缓冲器1236耦合到指令取出单元1238,该指令取出单元1238耦合到解码单元1240。解码单元或解码器可对指令解码,并且生成从原始指令解码出的、或以其他方式反映原始指令的、或从原始指令导出的一个或多个微操作、微代码进入点、微指令、其他指令、或其他控制信号作为输出。解码器可使用各种不同的机制来实现。合适机制的示例包括但不限于,查找表、硬件实现、可编程逻辑阵列(PLA)、微代码只读存储器(ROM)等。指令高速缓存单元1234还耦合到存储器单元1270中的L2高速缓存单元1276。解码单元1240耦合到执行引擎单元1250中的重命名/分配器单元1252。
执行引擎单元1250包括重命名/分配器单元1252,该重命名/分配器单元1252耦合到引退单元1254和一个或多个调度器单元的集合1256。(多个)调度器单元1256表示任何数量的不同调度器,包括预留站、中央指令窗等。(多个)调度器单元1256耦合到(多个)物理寄存器堆单元1258。(多个)物理寄存器堆1258中的每一个物理寄存器堆单元表示一个或多个物理寄存器堆,其中不同的物理寄存器堆存储一种或多种不同的数据类型,诸如,标量整数、标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点,状态(例如,作为要执行的下一条指令的地址的指令指针)等等。(多个)物理寄存器堆单元1258由引退单元1254重叠,以图示可实现寄存器重命名和乱序执行的各种方式(例如,使用(多个)重排序缓冲器和(多个)引退寄存器堆;使用(多个)未来文件、(多个)历史缓冲器、(多个)引退寄存器堆;使用寄存器映射和寄存器池,等等)。
一般而言,架构寄存器从处理器外部或从编程者的视角来看是可见的。这些寄存器不限于任何已知的特定类型的电路。各种不同类型的寄存器是合适的,只要它们能够存储并提供如本文中所描述的数据。合适寄存器的示例包括但不限于,专用物理寄存器、使用寄存器重命名的动态分配的物理寄存器、以及专用物理寄存器和动态分配的物理寄存器的组合,等等。引退单元1254和(多个)物理寄存器堆单元1258耦合至(多个)执行集群1260。(多个)执行集群1260包括一个或多个执行单元的集合1262和一个或多个存储器访问单元的集合1264。执行单元1262可执行各种操作(例如,移位、加法、减法、乘法)并可对各种数据类型(例如,标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点)执行。
尽管一些实现方式可以包括专用于特定功能或功能集合的多个执行单元,但是其他实现方式可包括仅一个执行单元或全都执行所有功能的多个执行单元。(多个)调度器单元1256、(多个)物理寄存器堆单元1258和(多个)执行集群1260示出为可能有多个,因为某些实现方式为某些类型的数据/操作创建分开的流水线(例如,标量整数流水线、标量浮点/紧缩整数/紧缩浮点/向量整数/向量浮点流水线,和/或各自具有其自身的调度器单元、(多个)物理寄存器堆单元和/或执行集群的存储器访问流水线——并且在分开的存储器访问流水线的情况下,实现其中该流水线的执行集群具有(多个)存储器访问单元1264的某些实现方式)。还应当理解,在使用分开的流水线的情况下,这些流水线中的一个或多个可以是乱序发布/执行,并且其余流水线可以是有序的。
存储器访问单元的集合1264耦合到存储器单元1270,该存储器单元1270包括TLB单元1272,该TLB单元1272耦合到数据高速缓存单元1274,该数据高速缓存单元1274耦合到第二级(L2)高速缓存单元1276。在一个示例性实现方式中,存储器访问单元1264可包括加载单元、存储地址单元和存储数据单元,其中的每一个均耦合到存储器单元1270中的数据TLB单元1272。L2高速缓存单元1276耦合到一个或多个其他级别的高速缓存,并最终耦合到主存储器。
作为示例,示例性寄存器重命名的乱序发布/执行核架构可如下所述地实现图12A中的流水线1200:1)指令取出1238分别执行取出级1202和长度解码级1204;2)解码单元1240执行解码级1206;3)重命名/分配器单元1252执行分配级1208和重命名级1210;4)(多个)调度器单元1256执行调度级1212;5)(多个)物理寄存器堆单元1258和存储器单元1270执行寄存器读取/存储器读取级1214;6)存储器单元1270和(多个)物理寄存器堆单元1258执行写回/存储器写入级1218;7)各单元可牵涉到异常处置级1222;以及8)引退单元1254和(多个)物理寄存器堆单元1258执行提交级1224。
核1290可支持一个或多个指令集,包括:(例如,x86指令集(具有可能已与较新版本一起添加的一些扩展);加利福尼亚州桑尼维尔市的MIPS技术公司的MIPS指令集;加利福尼亚州桑尼维尔市的ARM控股公司的ARM指令集(具有诸如NEON的任选的附加扩展);以及各种其他指令集架构,诸如,RISC。
应当理解,核可支持多线程化(执行两个或更多个并行的操作或线程的集合),并且可以按各种方式来完成该多线程化,各种方式包括时分多线程化、同时多线程化(其中单个物理核为物理核正在同时多线程化的线程中的每一个线程提供逻辑核)、或其组合(例如,时分取出和解码以及此后的诸如超线程化技术中的同时多线程化)。
尽管在乱序执行的上下文中描述了寄存器重命名,但应当理解,可以在有序架构中使用寄存器重命名。尽管所图示的处理器的实现方式还包括分开的指令和数据高速缓存单元1234/1274以及共享的L2高速缓存单元1276,但是替代实现方式可以具有用于指令和数据两者的单个内部高速缓存,诸如例如,L1内部高速缓存或多个级别的内部高速缓存。在一些实现方式中,该系统可包括内部高速缓存和在核和/或处理器外部的外部高速缓存的组合。或者,所有高速缓存都可以在核和/或处理器的外部。
图13图示根据一个实现方式的用于处理设备1300的微架构的框图,该处理设备1300包括使用信任域在虚拟化系统中提供隔离的逻辑电路。在一些实现方式中,指令可被实现为对具有字节尺寸、字尺寸、双字尺寸、四字尺寸等并具有诸多数据类型(诸如,单精度和双精度整数和浮点数据类型)的数据元素执行操作。在一个实现方式中,有序前端1301是处理设备1300的部分,该部分取出要被执行的指令,并准备这些指令以在稍后供处理设备流水线使用。使用信任域在虚拟化系统中提供隔离的实现方式可以在处理设备1300中实现。
前端1301可包括若干单元。在一个实现方式中,指令预取器1316从存储器取出指令,并将这些指令馈送至指令解码器1318,指令解码器1318进而对这些指令解码或解释这些指令。例如,在一个实现方式中,解码器将接收到的指令解码为机器可执行的被称为“微指令”或“微操作”(也称为微op或uop)的一个或多个操作。在其他实现方式中,解码器将指令解析为操作码和对应的数据以及控制字段,它们被微架构用于执行根据一个实现方式的操作。在一个实现方式中,踪迹高速缓存1330接受经解码的微操作,并将它们组装为微操作队列1334中的程序有序序列或踪迹,以用于执行。当踪迹高速缓存1330遇到复杂指令时,微代码ROM 1332提供完成操作所需的微操作。
一些指令被转换为单个微操作,而其他指令需要若干个微操作以完成整个操作。在一个实现方式中,如果需要超过四个微操作来完成指令,则解码器1318访问微代码ROM1332以完成该指令。对于一个实现方式,指令可被解码为少量的微操作以用于在指令解码器1318处进行处理。在另一实现方式中,如果需要多个微操作来完成操作,则可将指令存储在微代码ROM1332中。踪迹高速缓存1330参考进入点可编程逻辑阵列(PLA)来确定正确的微指令指针,以从微代码ROM 1332读取微代码序列以完成根据一个实现方式的一条或多条指令。在微代码ROM 1332完成对于指令的微操作序列化之后,机器的前端1301恢复从踪迹高速缓存1330取出微操作。
乱序执行引擎1303是将指令准备好用于执行的地方。乱序执行逻辑具有数个缓冲器,用于使指令流平滑并且将指令流重排序,以随着指令流沿流水线向下来优化性能,并调度指令流以供执行。分配器逻辑分配每个微操作需要的机器缓冲器和资源,以用于执行。寄存器重命名逻辑将逻辑寄存器重命名为寄存器堆中的条目。在指令调度器(存储器调度器、快速调度器1302、慢速/通用浮点调度器1304、以及简单浮点调度器1306)之前,分配器也将用于每个微操作的条目分配在两个微操作队列中的一个之中,一个微操作队列用于存储器操作,另一个微操作队列用于非存储器操作。微操作调度器1302、1304、1306基于对它们的依赖性输入寄存器操作数源的准备就绪情况以及微操作完成它们的操作所需的执行资源的可用性来确定微操作何时准备好用于执行。一个实现方式的快速调度器1302可在主时钟周期的每半个上进行调度,而其他调度器可仅在每个主处理设备时钟周期上调度一次。调度器对分配端口进行仲裁以调度用于执行的微操作。
寄存器堆1308和1310位于调度器1302、1304和1306与执行块1311中的执行单元1312、1314、1316、1318之间。存在分别用于整数操作和浮点操作的单独的寄存器堆1308、1310。一个实现方式的每个寄存器堆1308、1310也包括旁路网络,旁路网络可将还没有被写入到寄存器堆中的刚完成的结果旁路或转发给新的依赖性微操作。整数寄存器堆1308和浮点寄存器堆1310也能够彼此传递数据。对于一个实现方式,整数寄存器堆1308被划分为两个单独的寄存器堆,一个寄存器堆用于低阶的32位数据,并且第二个寄存器堆用于较高阶的32位数据。一个实现方式的浮点寄存器堆1310具有128位宽度的条目,因为浮点指令典型地具有从64至128位宽度的操作数。
执行块1311包含执行单元1312、1314、1316、1318,在这些执行单元1312、1314、1316、1318处实际执行指令。该部分包括寄存器堆1308、1310,寄存器堆1308、1310存储微指令执行所需的整数和浮点数据操作数值。一个实现方式的处理逻辑1300由多个执行单元组成:地址生成单元(AGU)1312、AGU 1314、ALU 1316、快速ALU 1318、慢速ALU 1310、浮点ALU1312、浮点移动单元1324。对于一个实现方式,浮点执行块1312、1314执行浮点、MMX、SIMD、SSE或其他操作。一个实现方式的浮点ALU 1312包括64位/64位浮点除法器,用于执行除法、平方根、以及余数微操作。对于本公开的实现方式,涉及浮点值的指令可利用浮点硬件来处置。
在一个实现方式中,ALU操作去往高速ALU执行单元1316、1318。一个实现方式的快速ALU 1316、1318可执行快速操作,有效等待时间为半个时钟周期。对于一个实现方式,大多数复杂整数操作去往慢速ALU 1310,因为慢速ALU 1310包括用于长等待时间类型的操作的整数执行硬件,诸如,乘法器、移位器、标志逻辑和分支处理。存储器加载/存储操作由AGU1312、1314来执行。对于一个实现方式,在对64位的数据操作数执行整数操作的上下文中描述整数ALU 1316、1318、1310。在替代实现方式中,ALU 1316、1318、1310可实现为支持包括16位、32位、128位、256位等的各种数据位。类似地,浮点单元1312、1314可实现为支持具有各种宽度的位的一系列操作数。对于一个实现方式,浮点单元1312、1314可结合SIMD和多媒体指令对128位宽度的紧缩数据操作数进行操作。
在一个实现方式中,在父加载已完成执行之前,微操作调度器1302、1304、1306分派依赖性操作。由于在处理设备1300中推测地调度和执行微操作,因此处理设备1300也包括用于处置存储器未命中的逻辑。如果数据加载在数据高速缓存中未命中,则在流水线中会存在已带着临时错误的数据离开调度器的运行中的依赖性操作。重放机制追踪使用错误数据的指令,并重新执行这些指令。仅依赖性操作需要被重放,而允许独立的操作完成。处理设备的一个实现方式的调度器和重放机制也设计成用于捕捉用于文本串比较操作的指令序列。
根据一个实现方式,处理设备1300还包括用于使用信任域在虚拟化系统中提供隔离的逻辑。根据本文中的描述,在一个实现方式中,处理设备1300的执行块1311可包括参照图1A和图1B描述的TDRM 180、MOT 160、TDCS 124和TDTCS 128,以使用信任域在虚拟化系统中提供隔离。
术语“寄存器”可以指被用作指令的一部分以标识操作数的板上处理设备存储位置。换言之,寄存器可以是从处理设备外部(从编程者的角度来看)可用的那些处理设备存储位置。然而,某一实现方式的寄存器不应当限于意指特定类型的电路。相反,某一实现方式的寄存器能够存储并提供数据,并能够执行本文中描述的功能。本文中描述的寄存器可以由处理设备内的电路使用任何数量的不同技术来实现,这些不同技术诸如专用物理寄存器、利用寄存器重命名的动态分配的物理寄存器、专用和动态分配的物理寄存器的组合等。在一个实现方式中,整数寄存器存储32位整数数据。一个实现方式的寄存器堆也包含用于紧缩数据的八个多媒体SIMD寄存器。
对于本文中的讨论,寄存器理解为设计成保存紧缩数据的寄存器,诸如,来自美国加利福尼亚州圣克拉拉市的英特尔公司的启用了MMX技术的微处理设备中的64位宽的MMXTM寄存器(在一些实例中也称为“mm”寄存器)。以整数形式和浮点形式两者可用的这些MMX寄存器可以与伴随SIMD和SSE指令的紧缩数据元素一起操作。类似地,涉及SSE2、SSE3、SSE4或更新的技术(统称为“SSEx”)的128位宽的MMX寄存器也可被用于保存此类紧缩数据操作数。在一个实现方式中,在存储紧缩数据和整数数据时,寄存器不需要在这两类数据类型之间进行区分。在一个实现方式中,整数和浮点可被包含在同一寄存器堆中,或被包含在不同的寄存器堆中。进一步地,在一个实现方式中,浮点数据和整数数据可被存储在不同的寄存器中,或被存储在相同的寄存器中。
实现方式能以许多不同的系统类型实现。现在参照图14,示出的是根据实现方式的多处理设备系统1400的框图。如图14中所示,多处理设备系统1400是点对点互连系统,并且包括经由点对点互连1450耦合的第一处理设备1470和第二处理设备1480。如图14中所示,处理设备1470和处理设备1480中的每一个都可以是多核处理设备,包括第一处理设备核和第二处理设备核(未示出),尽管潜在地多得多的核可以存在于处理设备中。这些处理设备各自可包括根据本公开的实现方式的混合型写入模式逻辑。可在处理设备1470中,在处理设备1480中,或在处理设备1470和处理设备1480两者中实现使用TD在虚拟化系统中提供隔离的实现方式以及创建和摧毁TD的实现方式。
尽管以两个处理设备1470、1480来示出,但是应理解本公开的范围不限于此。在其他实现方式中,在给定处理设备中可存在一个或多个附加的处理设备。
处理设备1470和1480被示出为分别包括集成存储器控制器单元1472和1482。处理设备1470还包括作为其总线控制器单元的一部分的点对点(P-P)接口1476和1478;类似地,第二处理设备1480包括P-P接口1486和1488。处理设备1470、1480可以经由使用P-P接口电路1478、1488的P-P接口1450来交换信息。如图14中所示,IMC 1472和1482将处理设备耦合到相应的存储器,即存储器1432和存储器1434,这些存储器可以是本地附连到相应处理设备的主存储器的部分。
处理设备1470、1480可各自经由使用点对点接口电路1476、1494、1486和1498的各个P-P接口1452和1454来与芯片组1490交换信息。芯片组1490还可经由高性能图形接口1439来与高性能图形电路1438交换信息。
共享高速缓存(未示出)可被包括在任一处理设备中,或在这两个处理设备的外部但经由P-P互连与这些处理设备连接,使得如果处理设备被置于低功率模式,则这些处理设备中的任一个或两者的本地高速缓存信息可被存储在共享高速缓存中。
芯片组1490可经由接口1496耦合至第一总线1416。在一个实现方式中,第一总线1416可以是外围组件互连(PCI)总线或诸如PCI Express总线或另一第三代I/O互连总线之类的总线,但是本公开的范围不限于此。
如图14中所示,各种I/O设备1414可连同总线桥1416一起耦合至第一总线1418,该总线桥1418将第一总线1416耦合至第二总线1420。在一个实现方式中,第二总线1420可以是低引脚数(LPC)总线。在一个实现方式中,各种设备可以耦合至第二总线1420,这些设备包括例如,键盘和/或鼠标1422、通信设备1427以及存储单元1428,该存储单元1428诸如可包括指令/代码和数据1430的盘驱动器或其他大容量存储设备。此外,音频I/O1424可被耦合至第二总线1420。注意,其他架构是可能的。例如,代替图14的点对点架构,系统可实现多分支总线或其他此类架构。
现在参照图15,示出的是根据本公开的实现方式的第三系统1500的框图。图14和图15中的相同元件用相同附图标记表示,并已从图15中省去了图14中的某些方面,以避免使图15的其他方面变得模糊。
图15图示处理元件1470、1480可分别包括集成存储器和I/O控制逻辑(“CL”)1472和1482。对于至少一个实现方式,CL 1472、1482可包括集成存储器控制器单元,诸如,本文中描述的集成存储器控制器单元。此外,CL 1472、1482还可包括I/O控制逻辑。图14图示存储器1432、1434耦合至CL 1472、1482,并且I/O设备1514也耦合至控制逻辑1472、1482。传统I/O设备1515耦合至芯片组1490。可在处理设备1470中,在处理设备1480中,或在处理设备1470和处理设备1480两者中实现使用信任域在虚拟化系统中提供隔离的实现方式。
图16是可包括一个或多个核1602的示例芯片上系统(SoC)。本领域中已知的用于膝上型设备、台式机、手持式PC、个人数字助理、工程工作站、服务器、网络设备、网络集线器、交换机、嵌入式处理设备、数字信号处理设备(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、蜂窝电话、便携式媒体播放器、手持式设备以及各种其他电子设备的其他系统设计和配置也是合适的。一般而言,能够包含如本文中所公开的处理设备和/或其他执行逻辑的各种各样的系统或电子设备一般都是合适的。
现在参考图16,示出的是根据本公开的实现方式的SoC 1600的框图。同样,虚线框是更先进的SoC上的特征。在图16中,(多个)互连单元1602被耦合到:应用处理设备1600,包括一个或多个核的集合1602A-N以及(多个)共享高速缓存单元1606;系统代理单元1612;(多个)总线控制器单元1616;(多个)集成存储器控制器单元1614;一个或多个媒体处理器的集合1620,其可包括集成图形逻辑1608、用于提供静止和/或视频照相功能的图像处理设备1624、用于提供硬件音频加速的音频处理设备1626、用于提供视频编码/解码加速的视频处理设备1628;静态随机存取存储器(SRAM)单元1630;直接存储器存取(DMA)单元1632;以及用于耦合至一个或多个外部显示器的显示单元1640。可在SOC 1600中实现使用信任域在虚拟化系统中提供隔离的实现方式。
接下来参考图17,描绘了根据本公开的实现方式的SoC设计的实现方式。作为说明性示例,SoC 1700被包括在用户装备(UE)中。在一个实现方式中,UE是指可由终端用户用于通信的任何设备,诸如,手持电话、智能电话、平板、超薄笔记本、具有宽带适配器的笔记本、或任何其他类似的通信设备。UE可连接至基站或节点,该基站或节点本质上可对应于GSM网络中的移动站(MS)。可在SOC 1600中实现使用信任域在虚拟化系统中提供隔离的实现方式。
此处,SoC 1720包括2个核——1706和1707。类似于上文的讨论,核1706和核1707可符合指令集架构,诸如,具有架构核TM的处理设备、超微半导体公司(AMD)的处理设备、基于MIPS的处理设备、基于ARM的处理设备设计、或它们的客户、以及它们的被许可方或采纳方。核1706和核1707耦合至高速缓存控件1708以与系统1700的其他部分通信,该高速缓存控件1708与总线接口单元1709和L2高速缓存1710相关联。互连1711包括芯片上互连,诸如,IOSF、AMBA或以上所讨论的其他互连,它们可以实现所描述的公开的一个或多个方面。
互连1711提供到其他组件的通信信道,其他组件诸如用于与用户身份模块(SIM)卡对接的SIM 1730、用于保存供核1706和1707执行以初始化和引导SOC 1700的引导代码的引导ROM 1735、用于与外部存储器(例如,DRAM 1760)对接的SDRAM控制器1740、用于与非易失性存储器(例如,闪存1765)对接的闪存控制器1745、用于与外围设备对接的外围控件1750(例如,串行外围接口)、用于显示和接收输入(例如,启用触摸的输入)的视频编解码器1720和视频接口1725、用于执行图形相关的计算的GPU 1715,等等。这些接口中的任一者可以包括本文中所描述的实现方式的多个方面。
另外,系统图示出用于通信的外围设备,诸如,蓝牙模块1770、3G调制解调器1775、GPS 1780以及Wi-Fi 1785。注意,如以上所述,UE包括用于通信的无线电装置。因此,这些外围通信模块可以不是全部都被包括。然而,在UE中,应当包括用于外部通信的某种形式的无线电装置。
图18图示计算系统1800的示例形式的机器的示意图,在该计算系统1800内,可以执行用于使机器执行本文中所讨论的方法中的任何一种或多种方法的一组指令。在替代实现方式中,可以在LAN、内联网、外联网或因特网中将机器连接(例如,联网)到其他机器。机器可在客户端-服务器网络环境中作为服务器或客户端设备来操作。该机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、web设备、服务器、网络路由器、交换机或桥接器、或者能够执行指定将由该机器执行的动作的一组指令(顺序的或以其他方式)的任何机器。进一步地,虽然仅图示出单个机器,但是,术语“机器”也应当被认为包括单独地或联合地执行一组(或多组)指令以执行本文中所讨论的方法中的任何一种或多种方法的机器的任何集合。可以在计算系统1800中实现转换页和部分的实现方式。
计算系统1800包括处理设备1802、主存储器1804(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM)(诸如,同步DRAM(SDRAM)或DRAM(RDRAM)等)、静态存储器1806(例如,闪存、静态随机存取存储器(SRAM)等)以及数据存储设备1818,它们经由总线1830彼此通信。
处理设备1802表示一个或多个通用处理设备,诸如,微处理设备、中央处理单元,等等。更具体地,处理设备可以是复杂指令集计算(CISC)微处理设备、精简指令集计算(RISC)微处理设备、超长指令字(VLIW)微处理设备、或实现其他指令集的处理设备、或实现指令集的组合的处理设备。处理设备1802也可以是一个或多个专用处理设备,诸如,专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理设备(DSP)、网络处理设备等等。在一个实现方式中,处理设备1802可包括一个或多个处理设备核。处理设备1802被配置成执行用于执行本文中所讨论的操作的处理逻辑1826。在一个实现方式中,处理设备1802可以是图1A和图1B的计算系统100的部分。替代地,计算系统1800可包括如本文中所描述的其他组件。应当理解,核可支持多线程化(执行两个或更多个并行的操作或线程的集合),并且可以按各种方式来完成该多线程化,各种方式包括时分多线程化、同时多线程化(其中单个物理核为物理核正在同时多线程化的线程中的每一个线程提供逻辑核)、或其组合(例如,时分取出和解码以及此后的诸如超线程化技术中的同时多线程化)。
计算系统1800可以进一步包括可通信地耦合至网络1820的网络接口设备1808。计算系统1800还可包括视频显示单元1810(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备1812(例如,键盘)、光标控制设备1814(例如,鼠标)、信号生成设备1816(例如,扬声器),或其他外围设备。此外,计算系统1800可包括图形处理单元1822、视频处理单元1828以及音频处理单元1832。在另一实现方式中,计算系统1800可以包括芯片组(未图示),芯片组是指被设计为与处理设备1802和外部设备一起工作的一组集成电路或芯片。例如,芯片组可以是主板上的一组芯片,该主板将处理设备1802链接到非常高速度的设备(诸如,主存储器1804和图形控制器)以及将处理设备1802链接到较低速度的外围设备的外围总线(诸如,USB、PCI或ISA总线)。
数据存储设备1818可包括计算机可读存储介质1824,在其上存储了具体化本文中所描述的功能的方法中的任何一种或多种方法的软件1826。软件1826也可完全或至少部分地作为指令1826驻留在主存储器1804内和/或在由计算系统1800对软件1826的执行期间作为处理逻辑1826驻留在处理设备1800内;该主存储器1804和处理设备1802也构成计算机可读存储介质。
计算机可读取存储介质1824也可用于利用诸如参考图1A和图1B所描述的处理设备1802来存储指令1826,和/或存储包含调用上面的应用的方法的软件库。虽然计算机可读存储介质1824在示例实现方式中被示出为单个介质,但术语“计算机可读存储介质”应当视为包括存储一组或多组指令的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。还应当认为术语“计算机可读存储介质”包括能够存储、编码或承载由机器执行并且使该机器执行实现方式的方法中的任何一种或多种的一组指令的任何介质。术语“计算机可读存储介质”应当相应地视为包括但不限于固态存储器以及光介质和磁介质。
以下示例涉及进一步的实现方式。
示例1是一种处理设备,其包括:多密钥完全存储器加密(MK-TME)电路;芯片上存储器,用于存储密钥所有权表(KOT),其中,该芯片上存储器不能够由处理设备执行的软件直接访问;以及处理核,用于执行信任域资源管理器(TDRM),其中,该TDRM用于:初始化与信任域(TD)相关联的信任域控制结构(TDCS);初始化与TD相关联的信任域保护的存储器(TDPM);生成一次性密码密钥;标识存储在KOT中的可用的主机密钥标识符(HKID);使用所述MK-TME电路将可用的HKID指派给一次性密码密钥;将HKID和一次性密码密钥存储在所述TDCS中;将逻辑处理器关联至TD;将存储器页从所述逻辑处理器的地址空间添加到TDPM;以及将执行控制转移到逻辑处理器以执行TD。
在示例2中,示例1的主题,其中,将逻辑处理器的标识符指派给TD包括:将TDPM的存储器页分配给TD状态保存区域SSA帧,其中,TD SSA帧被绑定至逻辑处理器;以及将逻辑处理器的状态复制到存储器页。
在示例3中,示例2的主题,其中,TDRM进一步用于:将TDPM的第一存储器页分配给第一TD虚拟处理空间(VPS);将第一存储器页绑定至TDCS;以及将被分配给TD SSA帧的TDPM的存储器页绑定至被分配给第一TD VPS的第一存储器页。
在示例4中,示例3的主题,其中,TDRM进一步用于将第一TD VPS指定为虚拟引导程序处理器(BSP)。
在示例5中,示例4的主题,其中,TDRM进一步用于:将TDPM的第二存储器页分配给第二TD VPS;将第二存储器页绑定至TDCS;将被分配给SSA帧的TDPM的存储器页绑定至被分配给第二TD VPS的第二存储器页;以及将第二TD VPS指定为虚拟应用处理器(AP)。
在示例6中,示例3的主题,其中,将执行控制转移到逻辑处理器以执行TD包括:标识被分配给逻辑处理器的存储器页;以及将存储器页初始化为用于TD的扩展页表(EPT)的主机页。
在示例6中,示例6的主题,其中,将执行控制转移到逻辑处理器以执行TD进一步包括:标识被绑定至逻辑处理器的存储器页;将存储器页初始化为用于TD虚拟机控制结构(VMCS)的主机页;将TD VMCS激活为主机的工作的VMCS;以及初始化TD VMCS。
在示例8中,示例7的主题,其中,初始化TD VMCS包括:设置用于TD VMCS的主机页的状态;设置指向TD EPT的指针;以及设置从TD VMCS到为第一VPS分配的存储器页的链接。
在示例9中,示例1的主题,其中,将每个存储器页从逻辑处理器的地址空间添加到TDPM包括:使用一次性密码密钥对存储器页加密;标识TDPM的目标页;以及将存储器页复制到TDPM的目标页。
在示例10中,示例1的主题,其中,TDRM进一步用于:使在逻辑处理器上执行的TD停止;将与逻辑处理器相关联的高速缓存的高速缓存条目转储清除,其中,高速缓存条目存储TDPM的存储器页的内容;在KOT中将被指派给一次性密码密钥的HKID标记为可用于指派给其他一次性密码密钥;以及将存储器页从TDPM移除。
在示例11中,示例10的主题,其中,与逻辑处理器相关联的转换后备缓冲器(TLB)的每个条目被转储清除。
在示例12中,示例10的主题,其中,将被指派给短时密钥的HKID标记为可用包括:在KOT中将HKID标记为经回收;判定与逻辑处理器相关联的高速缓存的每个高速缓存条目是否已被转储清除;以及响应于判定了高速缓存的每个高速缓存条目已被转储清除,在KOT中,将HKID标记为可用于指派给其他一次性密码密钥。
在示例13中,一种方法包括:通过处理设备执行信任域资源管理器(TDRM)来初始化与信任域(TD)相关联的信任域控制结构(TDCS);通过处理设备执行TDRM来初始化与TD相关联的信任域保护的存储器(TDPM);通过处理设备执行TDRM来生成短时密钥;通过处理设备执行TDRM来标识存储在密钥所有权表(KOT)中的可用的主机密钥标识符(HKID);通过处理设备执行TDRM来将可用的HKID指派给短时密钥;通过处理设备执行TDRM来将HKID存储在TDCS中;通过处理设备执行TDRM来将逻辑处理器的标识符指派给TD;通过处理设备执行TDRM来将从主机的主机存储器选出的多个存储器页中的每个存储器页添加到TDPM;以及通过处理设备执行TDRM来将执行控制转移到逻辑处理器以执行TD。
在示例14中,示例13的主题,其中,将逻辑处理器的标识符指派给TD包括:将TDPM的存储器页分配给TD状态保存区域(SSA)帧,其中,TD SSA帧被绑定至逻辑处理器;以及将逻辑处理器的状态保存到存储器页。
在示例15中,示例14的主题,进一步包括:分配用于TD虚拟处理空间(VPS)的TDPM的页;将存储器页绑定至TDCS;以及将被分配给TD SSA帧的TDPM的存储器页绑定至为VPS分配的存储器页。
在示例16中,示例15的主题,其中,将执行控制转移到逻辑处理器以执行TD包括:标识被绑定至逻辑处理器的存储器页;以及将存储器页初始化为用于TD扩展页表(EPT)的主机页。
在示例17中,示例16的主题,进一步包括:从TDPM选择被绑定至逻辑处理器的存储器页;将所选择的存储器页初始化为用于TD虚拟机控制结构(VMCS)的主机页;将TD VMCS激活为主机的工作的VMCS;以及初始化TD VMCS。
在示例18中,示例17的主题,其中,初始化TD VMCS包括:设置用于TD VMCS的主机页的状态;设置指向TD EPT的指针;以及设置从TD VMCS到为VPS分配的存储器页的链接。
在示例19中,示例13的主题,其中,将与逻辑处理器相关联的多个存储器页添加到TDPM包括:使用一次性密码密钥对存储器页加密;标识TDPM的目标TD页;以及将存储器页复制到TDPM的目标TD页。
在示例20中,示例19的主题,进一步包括:通过处理设备执行TDRM来测量存储器页,其中,测量存储器页包括用存储器页的内容扩展TD测量。
在示例21中,示例20的主题,其中,在存储器页的256字节的块上扩展TD测量。
在示例22中,一种方法包括:通过处理设备执行信任域资源管理器(TDRM)来使TD(信任域)停止在逻辑处理器上执行,其中,TD包括信任域保护的存储器(TDPM),通过处理设备执行TDPM来将与逻辑处理器相关联的高速缓存的高速缓存条目转储清除,其中,高速缓存条目存储TDPM的存储器页的内容;通过处理设备执行TDPM在密钥所有权表(KOT)中将被指派给与TD相关联的一次性密码密钥的主机密钥ID(HKID)标记为可用于指派给其他一次性密码密钥;以及通过处理设备执行TDPM来将存储器页从TDPM移除。
在示例23中,示例22的主题,其中,与逻辑处理器相关联的转换后备缓冲器(TLB)的每个条目被转储清除。
在示例24中,示例23的主题,其中,将被指派给短时密钥的HKID标记为可用包括:通过处理器执行TDRM在KOT中将HKID标记为经回收;通过处理器执行TDRM来判定与逻辑处理器相关联的高速缓存的每个高速缓存条目是否已被转储清除;以及响应于判定了高速缓存的每个高速缓存条目已被转储清除,通过处理器执行TDRM在KOT中将HKID标记为可用于指派给其他一次性密码密钥。
在示例25中,示例24的主题,进一步包括:通过处理器执行TDRM来将以下至少一项从TDPM移除:被绑定至分配给逻辑处理器的TD状态保存区域(SSA)的存储器页、被绑定至虚拟处理空间(VPS)的存储器页、以及被绑定至分配给TD的TD控制结构(TDCS)的存储器页。
在示例26中,示例22的主题,其中,使TD停止在逻辑处理器上执行包括:广播处理器间中断以使TD在逻辑处理器上退出。
在示例27中,示例22的主题,进一步包括:使与来自关联于逻辑处理器的高速缓存的TD相关联的每个存储器页无效。
在示例28中,示例22的主题,进一步包括:通过处理设备执行TDRM来排空为TD扩展页表(EPT)分配的主机页。
在示例29中,示例22的主题,进一步包括:通过处理设备执行TDRM来释放为TD虚拟存储器控制结构(VMCS)分配的主机页。
尽管已参考有限数量的实施例描述了本公开,但是,本领域技术人员将从其中理解众多修改和变型。所附权利要求书旨在将所有此类修改和变型涵盖为落在本公开的真实精神和范围内。
在本文中的描述中,阐述了众多特定细节(诸如,特定类型的处理器和系统配置、特定硬件结构、特定架构和微架构细节、特定寄存器配置、特定指令类型、特定系统组件、特定测量/高度、特定处理器流水线级和操作等的示例)以提供对本公开的透彻理解。然而,对本领域普通技术人员将显而易见的是,不一定要采用这些特定细节来实施本公开。在其他实例中,未详细描述公知的组件或方法,以避免不必要地使本公开模糊,公知的组件或方法诸如,特定和替代的处理器架构、用于所描述算法的特定逻辑电路/代码、特定的固件代码、特定的互连操作、特定的逻辑配置、特定的制造技术和材料、特定的编译器实施例、代码中算法的特定表达、特定的掉电和门控技术/逻辑以及计算机系统的其他特定的操作细节。
实施例是参考特定集成电路中的(诸如,计算平台或微处理器中的)访问控制来描述的。实施例也可适用于其他类型的集成电路和可编程逻辑器件。例如,所公开的各实施例不仅限于台式计算机系统或便携式计算机,诸如,UltrabooksTM计算机。并且也可用于其他设备,诸如,手持式设备、平板、其他薄笔记本、芯片上系统(SoC)设备以及嵌入式应用。手持式设备的一些示例包括蜂窝电话、网际协议设备、数码相机、个人数字助理(PDA)、手持式PC。嵌入式应用典型地包括微控制器、数字信号处理器(DSP)、芯片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机、或可执行以下教导的功能和操作的任何其他系统。描述了系统可以是任何种类的计算机或嵌入式系统。所公开的实施例可以特别用于低端设备,像可穿戴设备(例如,手表)、电子植入物、传感和控制基础设施设备、控制器、监视控制和数据采集(SCADA)系统,等等。另外,本文中所描述的装置、方法和系统不限于物理计算设备,而是还可涉及用于节能和能效的软件优化。如将在以下描述中变得显而易见的,本文中所描述的方法、装置和系统的实施例(无论是关于硬件、固件、软件还是它们的组合)对于用性能考量来平衡的‘绿色技术’的前景是至关重要的。
虽然本文中的实施例参照处理器来描述,但其他实施例也适用于其他类型的集成电路和逻辑器件。本公开的实施例的类似技术和教导可应用于其他类型的电路或半导体器件,这些其他类型的电路或半导体器件可受益于更高的流水线吞吐量和改善的性能。本公开的实施例的教导适用于执行数据操纵的任何处理器或机器。然而,本公开不限于执行512位、256位、128位、64位、32位、或16位数据操作的处理器或机器,并且可应用于在其中执行数据的操纵或管理的任何处理器和机器。此外,本文中的描述提供了示例,并且附图出于说明性目的示出了各种示例。然而,这些示例不应当以限制性意义来解释,因为它们仅仅旨在提供本公开的实施例的示例,而并非提供本公开的实施例的所有可能的实施例的穷举性列表。
虽然下述的示例在执行单元和逻辑电路上下文中描述指令处置和分配,但本公开的其他实施例也可通过存储在机器可读有形介质上的数据或指令来完成,这些数据或指令当由机器执行时使得该机器执行与本公开的至少一个实施例一致的功能。在一个实施例中,与本公开的实施例相关联的功能以机器可执行指令来具体化。这些指令可用来使利用这些指令编程的通用处理器或专用处理器执行本公开的操作。本公开的实施例也可作为计算机程序产品或软件来提供,该计算机程序产品或软件可包括其上存储有指令的机器或计算机可读介质,这些指令可被用来对计算机(或其他电子设备)进行编程以执行根据本公开的实施例的一个或多个操作。替代地,本公开的实施例的操作可由包含用于执行这些操作的固定功能逻辑的专用硬件组件来执行,或由经编程的计算机组件以及固定功能硬件组件的任何组合来执行。
用于对逻辑进行编程以执行本公开的实施例的指令可被存储在系统中的存储器(诸如,DRAM、高速缓存、闪存、或其他存储)中。此外,指令可以经由网络或通过其他计算机可读介质的方式被分发。因此,机器可读介质可包括用于以机器(诸如,计算机)可读形式存储或传送信息的任何机制,但不限于:软盘、光盘、紧凑盘只读存储器(CD-ROM)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存存储器、或在经由互联网通过电、光、声、或其他形式的传播信号(诸如,载波、红外信号、数字信号等)传送信息中所用的有形机器可读存储。因此,计算机可读介质包括适用于存储或传送机器(例如,计算机)可读形式的电子指令或信息的任何类型的有形机器可读介质。
设计可经历从创造到仿真到制造的各阶段。表示设计的数据能以多种方式来表示该设计。首先,如在仿真中有用的,可使用硬件描述语言或另一功能性描述语言来表示硬件。另外,可在设计过程的一些阶段产生具有逻辑和/或晶体管门的电路级模型。此外,大多数设计在某个阶段达到表示硬件模型中各种器件的物理布置的数据的水平。在使用常规半导体制造技术的情况下,表示硬件模型的数据可以是指定在用于生产集成电路的掩模的不同掩模层上存在或不存在各种特征的数据。在设计的任何表示中,数据可被存储在任何形式的机器可读介质中。存储器或者磁或光存储(诸如,盘)可以是用于存储经由光学或电学波来传送的信息的机器可读介质,这些光学或电学波被调制或以其他方式生成以传送此类信息。当指示或承载代码或设计的电学载波被传送达到实现电信号的复制、缓冲或重新传输的程度时,新的副本就产生。因此,通信提供商或网络提供商可在有形机器可读介质上至少临时地存储具体化本公开的实施例的技术的物品(诸如,编码在载波中的信息)。
如本文中所使用的模块是指硬件、软件、和/或固件的任何组合。作为示例,模块包括与非暂态介质相关联的诸如微控制器之类的硬件,该非暂态介质用于存储适于由该微控制器执行的代码。因此,在一个实施例中,对模块的引用是指硬件,该硬件被专门配置成识别和/或执行要保存在非暂态介质上的代码。此外,在另一实施例中,模块的使用是指包括代码的非暂态介质,该代码专门适于由微控制器执行以进行预定的操作。并且如可以被推断,在又一实施例中,术语模块(在此示例中)可指微控制器和非暂态介质的组合。通常,被图示为分开的模块的边界一般不同并且潜在地重叠。例如,第一和第二模块可共享硬件、软件、固件、或它们的组合,同时潜在地保留一些独立的硬件、软件或固件。在一个实施例中,术语逻辑的使用包括诸如晶体管、寄存器之类的硬件或诸如可编程逻辑器件之类的其他硬件。
在一个实施例中,使用短语‘被配置成’是指安排、合在一起、制造、许诺销售、进口和/或设计装置、硬件、逻辑或元件以执行指定或所确定的任务。在该示例中,如果不是正在操作的装置或其元件被设计、耦合、和/或互连以执行指定的任务,则该不是正在操作的装置或其元件仍然‘被配置成’执行所述指定的任务。作为纯说明性示例,在操作期间,逻辑门可提供0或1。但‘被配置成’向时钟提供启用信号的逻辑门不包括可提供1或0的每一潜在逻辑门。相反,该逻辑门是以在操作期间1或0的输出用于启用时钟的某种方式来耦合的逻辑门。再次注意,使用术语“被配置成”不要求操作,而是关注于装置、硬件、和/或元件的潜在状态,其中在该潜在状态中,该装置、硬件和/或元件被设计成在该装置、硬件和/或元件正在操作时执行特定任务。
此外,在一个实施例中,使用短语‘用于’、‘能够/能够用于’和/或‘操作用于’是指按如下方式设计的一些装置、逻辑、硬件、和/或元件:以指定方式启用对该装置、逻辑、硬件、和/或元件的使用。如以上所注意,在一个实施例中,用于、能够、或操作用于的使用是指装置、逻辑、硬件、和/或元件的潜在状态,其中该装置、逻辑、硬件、和/或元件不是正在操作,而是以此类方式被设计以便以指定方式启用对装置的使用。
如本文中所使用,值包括数字、状态、逻辑状态、或二进制逻辑状态的任何已知表示。通常,逻辑电平、逻辑值、或多个逻辑值的使用也被称为1和0,这简单地表示了二进制逻辑状态。例如,1指的是高逻辑电平,并且0指的是低逻辑电平。在一个实施例中,诸如晶体管或闪存单元之类的存储单元能够保存单个逻辑的值或多个逻辑的值。然而,也使用了计算机系统中的值的其他表示。例如,十进制数10还可以被表示为二进制值1010和十六进制字母A。因此,值包括能够被保存在计算机系统中的信息的任何表示。
而且,状态也可由值或值的部分来表示。作为示例,诸如逻辑1之类的第一值可表示默认或初始状态,而诸如逻辑0之类的第二值可表示非默认状态。此外,在一个实施例中,术语重置和置位分别指的是默认和经更新的值或状态。例如,默认值潜在地包括高逻辑值,即,重置;而经更新的值潜在地包括低逻辑值,即,置位。注意,可利用值的任何组合来表示任何数量的状态。
以上所阐述的方法、硬件、软件、固件或代码的实施例可经由存储在机器可访问、机器可读、计算机可访问、或计算机可读介质上可由处理元件执行的指令或代码来实现。非暂态机器可访问/可读介质包括提供(即,存储和/或传送)诸如由计算机或电子系统之类的机器可读的形式的信息的任何机制。例如,非暂态机器可访问介质包括:随机存取存储器(RAM),诸如,静态RAM(SRAM)或动态RAM(DRAM);ROM;磁或光存储介质;闪存设备;电存储设备;光存储设备;声存储设备;用于保存从暂态(传播)信号(例如,载波、红外信号、数字信号)接收的信息的其他形式的存储设备;等等,这些非暂态机器可访问介质与可从其接收信息的非暂态介质相区别。
用于对逻辑进行编程以执行本公开的实施例的指令可被存储在系统中的存储器(诸如,DRAM、高速缓存、闪存、或其他存储)内。此外,指令可以经由网络或通过其他计算机可读介质的方式被分发。因此,机器可读介质可包括用于以机器(诸如,计算机)可读形式存储或传送信息的任何机制,但不限于:软盘、光盘、紧凑盘只读存储器(CD-ROM)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存存储器、或在经由互联网通过电、光、声、或其他形式的传播信号(诸如,载波、红外信号、数字信号等)传送信息中所用的有形机器可读存储。因此,计算机可读介质包括适用于存储或传送机器(例如,计算机)可读形式的电子指令或信息的任何类型的有形机器可读介质。
贯穿本说明书,对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在本公开的至少一个实施例中。因此,贯穿本说明书的各种位置出现短语“在一个实施例中”或“在实施例中”不一定都是指同一个实施例。此外,在一个或多个实施例中,能以任何合适的方式来组合特定的特征、结构或特性。
在上述说明书中,已经参考特定示例性实施例给出了具体实施方式。然而,将显而易见的是,可对这些实现方式作出各种修改和改变,而不背离如所附权利要求所述的本公开的更宽泛精神和范围。因此,应当以说明性意义而不是限制性意义来看待说明书和附图。此外,实施例和其他示例性语言的上述使用不一定是指同一实施例或同一示例,而可以指不同和独特的实施例,并且可能指同一实施例。
具体实施方式的一些部分在对计算机存储器内的数据位的操作的算法和符号表示方面来呈现。这些算法描述和表示是数据处理领域内技术人员使用以便最有效地将他们的工作本质传达给其他本领域技术人员的手段。算法在此或一般被构想为导致所期望结果的自洽的操作序列。操作是需要对物理量进行物理操纵的那些操作。通常但非必须,这些量采用能被存储、传输、组合、比较、以及以其他方式操纵的电信号或磁信号的形式。主要出于常见用途的考虑,时不时地将这些信号称为位、值、要素、符号、字符、项、数字等已被证明是方便的。本文中描述的块可以是硬件、软件、固件或其组合。
然而,应当记住,所有这些和类似的术语旨在与适当的物理量关联,并且仅仅是应用于这些量的方便的标记。除非以其他方式明确陈述,否则从上文的讨论中显而易见地看出,可以领会,贯穿说明书,利用诸如“存储”、“判定”、“递增”、“驱逐”、“更新”等术语的讨论指的是计算系统或类似电子计算设备的动作和进程,该计算系统或类似电子计算设备操纵在该计算系统的寄存器和存储器内表示为物理(例如,电子)量的数据并将其转换成在该计算系统存储器或寄存器或其他此类信息存储、传输或显示设备内类似地表示为物理量的其他数据。
在本文中使用词语“示例”或“示例性”以意指用作示例、实例或说明。在此被描述为“示例”或“示例性”的任何方面或设计并不一定要被解释为相比其他方面或设计更优选或有利。相反,词语“示例”或“示例性”的使用旨在以具体的方式来呈现概念。如在该申请中使用的,术语“或”旨在表示包含性的“或”,而不是排它性的“或”。即,除非以其他方式指定或根据上下文显而易见,否则“X包括A或B”旨在表示自然包含性排列中的任一者。即,如果X包括A;X包括B;或X包括A和B两者,则在任何前述的情况下都满足“X包括A或B”。另外,除非以其他方式指定或根据上下文明确指示为单数形式,否则如在本申请和所附权利要求中使用的冠词“一”和“一个”一般应当被解释为表示“一个或多个”。此外,通篇对术语“实施例”或“一个实施例”或“实现方式”或“一个实现方式”的使用不旨在意指同一个实施例或实现方式,除非被描述为如此。此外,如本文中所使用的术语“第一”、“第二”、“第三”、“第四”等旨在用作用于在不同要素之间进行区分的标记,并且可以不一定具有根据它们的数字指定的顺序含义。
Claims (24)
1.一种处理设备,包括:
多密钥完全存储器加密MK-TME电路;
芯片上存储器,用于存储密钥所有权表KOT;以及
处理核,用于执行信任域资源管理器TDRM,其中,所述TDRM用于:
初始化与信任域TD相关联的信任域控制结构TDCS;
初始化与所述TD相关联的信任域保护的存储器TDPM;
生成一次性密码密钥;
标识存储在所述KOT中的可用的主机密钥标识符HKID;
使用所述MK-TME电路将所述可用的HKID指派给所述一次性密码密钥;
将所述HKID存储在所述TDCS中;
将逻辑处理器关联至所述TD;
将存储器页从所述逻辑处理器的地址空间添加到所述TDPM;以及
将执行控制转移到所述逻辑处理器以执行所述TD。
2.如权利要求1所述的处理设备,其中,将逻辑处理器关联至所述TD包括:
将所述TDPM的存储器页分配给TD状态保存区域SSA帧,其中,所述TD SSA帧被绑定至所述逻辑处理器;以及
将所述逻辑处理器的状态复制到所述存储器页。
3.如权利要求2所述的处理设备,其中,所述TDRM进一步用于:
将所述TDPM的存储器页分配给信任域虚拟处理空间TDVPS;
将所述存储器页绑定至所述TDCS;以及
将分配给所述TD SSA帧的存储器页绑定至分配给所述TDVPS的存储器页。
4.如权利要求1所述的处理设备,其中,将执行控制转移到所述逻辑处理器以执行所述TD包括:
标识所述TDPM的、被绑定至所述逻辑处理器的存储器页;
将所述存储器页初始化为用于信任域虚拟机控制结构TDVMCS的主机页;
将所述TDVMCS激活为工作的虚拟机控制结构VMCS;以及
初始化所述TDVMCS。
5.如权利要求1所述的处理设备,其中,将存储器页从所述逻辑处理器的地址空间添加到所述TDPM包括:
使用所述一次性密码密钥对所述存储器页加密;
标识所述TDPM的目标页;以及
将所述存储器页复制到所述TDPM的所述目标页。
6.如权利要求1所述的处理设备,其中,所述TDRM进一步用于:
使在所述逻辑处理器上执行的所述TD停止;
将与所述逻辑处理器相关联的高速缓存的高速缓存条目转储清除,其中,所述高速缓存条目存储所述TDPM的存储器页的内容;
在所述KOT中将被指派给所述一次性密码密钥的HKID标记为可用于指派给其他一次性密码密钥;以及
将所述存储器页从所述TDPM移除。
7.如权利要求6所述的处理设备,其中,与所述逻辑处理器相关联的转换后备缓冲器TLB的每个条目被转储清除。
8.如权利要求6所述的处理设备,其中,将被指派给所述一次性密码密钥的HKID标记为可用包括:
在所述KOT中将所述HKID标记为经回收;
判定与所述逻辑处理器相关联的所述高速缓存的每个高速缓存条目是否已被转储清除;以及
响应于判定了所述高速缓存的每个高速缓存条目已被转储清除,在所述KOT中将所述HKID标记为可用于指派给其他一次性密码密钥。
9.一种方法,包括:
通过处理设备执行信任域资源管理器TDRM来初始化与信任域TD相关联的信任域控制结构TDCS;
通过所述处理设备执行所述TDRM来初始化与所述TD相关联的信任域保护的存储器TDPM;
通过所述处理设备执行所述TDRM来生成一次性密码密钥;
通过所述处理设备执行所述TDRM来标识存储在密钥所有权表KOT中的可用的主机密钥标识符HKID;
通过所述处理设备执行所述TDRM,在多密钥完全存储器加密MK-TME引擎中将所述可用的HKID指派给所述一次性密码密钥;
通过所述处理设备执行所述TDRM来将所述HKID存储在所述TDCS中;
通过所述处理设备执行所述TDRM来将逻辑处理器关联至所述TD;
通过所述处理设备执行所述TDRM来将存储器页从所述逻辑处理器的地址空间添加到所述TDPM;以及
通过所述处理设备执行所述TDRM来将执行控制转移到所述逻辑处理器以执行所述TD。
10.如权利要求9所述的方法,其中,将逻辑处理器关联至所述TD包括:
将所述TDPM的存储器页分配给TD状态保存区域SSA帧,其中,所述TD SSA帧被绑定至所述逻辑处理器;以及
将所述逻辑处理器的状态复制到所述存储器页。
11.如权利要求10所述的方法,进一步包括:
将所述TDPM的存储器页分配给信任域虚拟处理空间TDVPS;
将所述存储器页绑定至所述TDCS;以及
将分配给所述TD SSA帧的存储器页绑定至分配给所述TDVPS的所述存储器页。
12.如权利要求11所述的方法,其中,将执行控制转移到所述逻辑处理器以执行所述TD包括:
标识所述TDPM的、被绑定至所述逻辑处理器的存储器页;以及
将所述存储器页初始化为用于TD扩展页表EPT的主机页。
13.如权利要求12所述的方法,其中,将执行控制转移到所述逻辑处理器以执行所述TD进一步包括:
标识所述TDPM的、被绑定至所述逻辑处理器的存储器页;
将所述存储器页初始化为用于信任域虚拟机控制结构TDVMCS的主机页;
将所述TDVMCS激活为工作的虚拟机控制结构VMCS;以及
初始化所述TDVMCS。
14.如权利要求13所述的方法,其中,初始化所述TDVMCS包括:
设置用于所述TDVMCS的所述主机页的状态;
设置指向所述TD EPT的指针;以及
设置从所述TDVMCS到为所述TDVPS分配的存储器页的链接。
15.如权利要求9所述的方法,其中,将存储器页从所述逻辑处理器的地址空间添加到所述TDPM包括:
使用所述一次性密码密钥对所述存储器页加密;
标识所述TDPM的目标页;以及
将所述存储器页复制到所述TDPM的所述目标页。
16.如权利要求15所述的方法,进一步包括:通过所述处理设备执行所述TDRM,通过用所述存储器页的内容扩展TD测量来测量所述存储器页。
17.一种系统,包括:
存储器设备,用于存储指令;以及
处理设备,能操作地耦合至所述存储器设备,所述处理设备包括:
密钥所有权表KOT;以及
处理核,用于执行信任域资源管理器TDRM,其中,所述TDRM用于:
使信任域TD停止在逻辑处理器上执行,其中,所述TD包括信任域保护的存储器TDPM;
将与所述逻辑处理器相关联的高速缓存的高速缓存条目转储清除,其中,所述高速缓存条目存储所述TDPM的存储器页的内容;
在所述KOT中将被指派给与所述TD相关联的一次性密码密钥的主机密钥ID HKID标记为可用于指派给其他一次性密码密钥;以及
将所述存储器页从所述TDPM移除。
18.如权利要求17所述的系统,其中,与所述逻辑处理器相关联的转换后备缓冲器TLB的每个条目被转储清除。
19.如权利要求17所述的系统,其中,为了将被指派给所述一次性密码密钥的HKID标记为可用,所述处理核用于:
在所述KOT中将所述HKID标记为经回收;
判定与所述逻辑处理器相关联的所述高速缓存的每个高速缓存条目是否已被转储清除;以及
响应于判定了所述高速缓存的每个高速缓存条目已被转储清除,在所述KOT中将所述HKID标记为可用于指派给其他一次性密码密钥。
20.如权利要求17所述的系统,其中,所述处理核进一步用于:
将以下至少一者从所述TDPM移除:被绑定至分配给逻辑处理器的TD保存状态区域SSA的存储器页、被绑定至虚拟处理空间VPS的存储器页、以及被绑定至分配给所述TD的TD控制结构TDCS的存储器页。
21.一种机器可读介质,包括代码,所述代码当被执行时使机器执行如权利要求9至16中的任一项所述的方法。
22.一种机器可读介质,包括代码,所述代码当被执行时使机器执行如权利要求17至20中的任一项所述的方法。
23.一种设备,包括用于执行如权利要求9至16中的任一项所述的方法的装置。
24.一种设备,包括用于执行如权利要求17至20中的任一项所述的方法的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/227,858 US11829517B2 (en) | 2018-12-20 | 2018-12-20 | Method and apparatus for trust domain creation and destruction |
US16/227,858 | 2018-12-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111353164A true CN111353164A (zh) | 2020-06-30 |
Family
ID=66432808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911156484.8A Pending CN111353164A (zh) | 2018-12-20 | 2019-11-22 | 用于信任域创建和摧毁的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11829517B2 (zh) |
EP (1) | EP3671515B1 (zh) |
CN (1) | CN111353164A (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10628315B2 (en) * | 2017-09-28 | 2020-04-21 | Intel Corporation | Secure memory repartitioning technologies |
US10691356B2 (en) * | 2018-11-26 | 2020-06-23 | International Business Machines Corporation | Operating a secure storage device |
FR3094520B1 (fr) * | 2019-03-25 | 2021-10-22 | St Microelectronics Rousset | Clé de chiffrement et/ou de déchiffrement |
US11146388B2 (en) * | 2019-10-28 | 2021-10-12 | United States Of America As Represented By The Secretary Of The Navy | System and method for application-independent compartmentalized encryption |
US11514194B2 (en) * | 2019-12-19 | 2022-11-29 | Advanced Micro Devices, Inc. | Secure and power efficient audio data processing |
US11436342B2 (en) * | 2019-12-26 | 2022-09-06 | Intel Corporation | TDX islands with self-contained scope enabling TDX KeyID scaling |
US20210265016A1 (en) | 2020-02-20 | 2021-08-26 | Illumina, Inc. | Data Compression for Artificial Intelligence-Based Base Calling |
CN113449344B (zh) * | 2020-03-27 | 2023-03-17 | 支付宝(杭州)信息技术有限公司 | 一种安全计算方法、装置、设备及介质 |
US11550482B2 (en) * | 2020-04-09 | 2023-01-10 | Synaptics Incorporated | Page-based memory access control |
US11575505B2 (en) | 2020-07-27 | 2023-02-07 | Samsung Electronics Co., Ltd. | Systems, methods, and devices for key per input/output security |
US20220100871A1 (en) * | 2020-09-26 | 2022-03-31 | Intel Corporation | Scalable multi-key memory encryption |
US12106133B2 (en) * | 2020-11-11 | 2024-10-01 | Intel Corporation | Method and apparatus for trusted devices using Trust Domain Extensions |
US20210109870A1 (en) * | 2020-12-23 | 2021-04-15 | Ravi L. Sahita | Isolating memory within trusted execution environments |
WO2022133860A1 (en) * | 2020-12-24 | 2022-06-30 | Intel Corporation | Key management for crypto processors attached to other processing units |
US20230094125A1 (en) * | 2021-09-24 | 2023-03-30 | Nvidia Corporation | Implementing trusted executing environments across multiple processor devices |
US20240020362A1 (en) * | 2022-07-18 | 2024-01-18 | Nxp Usa, Inc. | Control Channel Architecture |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8645665B1 (en) * | 2012-12-14 | 2014-02-04 | Intel Corporation | Virtualizing physical memory in a virtual machine system utilizing multilevel translation table base registers to map guest virtual addresses to guest physical addresses then to host physical addresses |
US9460471B2 (en) * | 2010-07-16 | 2016-10-04 | Hartford Fire Insurance Company | System and method for an automated validation system |
US8862537B1 (en) * | 2011-06-30 | 2014-10-14 | Sumo Logic | Selective structure preserving obfuscation |
US9804870B2 (en) * | 2011-10-28 | 2017-10-31 | Intel Corporation | Instruction-set support for invocation of VMM-configured services without VMM intervention |
US9021246B2 (en) * | 2011-10-28 | 2015-04-28 | GM Global Technology Operations LLC | Method to replace bootloader public key |
WO2013121457A1 (en) * | 2012-02-15 | 2013-08-22 | Hitachi, Ltd. | Computer system equipped with an encryption key management function at the time of hot swap of a storage medium |
US9053065B2 (en) * | 2012-12-10 | 2015-06-09 | Vmware, Inc. | Method for restoring virtual machine state from a checkpoint file |
US10038968B2 (en) * | 2013-07-17 | 2018-07-31 | PlaceIQ, Inc. | Branching mobile-device to system-namespace identifier mappings |
US9792448B2 (en) * | 2014-02-28 | 2017-10-17 | Advanced Micro Devices, Inc. | Cryptographic protection of information in a processing system |
US10003669B2 (en) * | 2015-07-28 | 2018-06-19 | DISH Technologies L.L.C. | Methods and apparatus to create and transmit a condensed logging data file |
US9847994B1 (en) * | 2015-09-30 | 2017-12-19 | Surfdash | System and method for providing a secure network |
US9898307B2 (en) * | 2015-12-21 | 2018-02-20 | Intel Corporation | Starting application processors of a virtual machine |
US10469246B2 (en) * | 2016-02-29 | 2019-11-05 | Craxel, Inc. | Efficient encrypted data management system and method |
US10303899B2 (en) | 2016-08-11 | 2019-05-28 | Intel Corporation | Secure public cloud with protected guest-verified host control |
US10404667B2 (en) * | 2016-11-17 | 2019-09-03 | Bank Of America Corporation | Secure, autonomous file encryption and decryption |
US10949486B2 (en) * | 2017-09-20 | 2021-03-16 | Citrix Systems, Inc. | Anchored match algorithm for matching with large sets of URL |
US10445238B1 (en) * | 2018-04-24 | 2019-10-15 | Arm Limited | Robust transactional memory |
US11232166B2 (en) * | 2019-01-17 | 2022-01-25 | Salesforce.Com, Inc. | Networked page access and addressing based on partial categorization indexing |
-
2018
- 2018-12-20 US US16/227,858 patent/US11829517B2/en active Active
-
2019
- 2019-10-16 EP EP19203451.0A patent/EP3671515B1/en active Active
- 2019-11-22 CN CN201911156484.8A patent/CN111353164A/zh active Pending
-
2023
- 2023-10-24 US US18/493,709 patent/US20240169099A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US11829517B2 (en) | 2023-11-28 |
EP3671515A1 (en) | 2020-06-24 |
EP3671515B1 (en) | 2021-08-04 |
US20240169099A1 (en) | 2024-05-23 |
US20190147192A1 (en) | 2019-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7501982B2 (ja) | 信頼ドメインを用いた、仮想化されたシステムにおける分離の提供 | |
EP3671515B1 (en) | Method and apparatus for trust domain creation and destruction | |
US11934843B2 (en) | Secure arbitration mode to build and operate within trust domain extensions | |
US11748146B2 (en) | Scalable virtual machine operation inside trust domains within the trust domain architecture | |
US20210397721A1 (en) | Secure encryption key management in trust domains |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |