使用认证的清单来实现对多处理器平台的外部确认的制作方法

文档序号:8528389阅读:233来源:国知局
使用认证的清单来实现对多处理器平台的外部确认的制作方法
【技术领域】
[0001] 本公开一般涉及计算机系统,具体而言,涉及用于实现多处理器平台的外部确认 的系统和方法。
【背景技术】
[0002] 计算机系统内的应用程序和数据的安全执行和完整性越来越重要。各种已知的安 全技术不能以灵活的但是可靠的方式来充分保护应用程序和数据。
【附图说明】
[0003] 本发明是通过示例而不是作为限制来说明的,当与附图一起考虑时并参考下列详 细描述时,可以更完全地理解本发明,在附图中:
[0004] 图1描绘了根据本公开的一个或多个方面的示例处理系统的高级组件图示;
[0005] 图2示意地示出了根据本公开的一个或多个方面的用于通过多处理器平台产生 平台清单的示例方法;
[0006] 图3描绘了根据本公开的一个或多个方面的用于通过多处理器平台产生平台清 单的示例方法的流程图;
[0007] 图4描绘了根据本公开的一个或多个方面的在第二和随后的平台引导时用于在 多处理器平台中进行处理器交叉认证的示例方法的流程图;
[0008] 图5描绘了根据本公开的一个或多个方面的示例计算机系统的高级组件图示;
[0009] 图6描绘了根据本公开的一个或多个方面的处理器的框图;
[0010] 图7a-7b示意地示出了根据本公开的一个或多个方面的处理器微架构的要素;
[0011] 图8描绘了根据本公开的一个或多个方面的示例计算机系统的框图;
[0012] 图9描绘了根据本公开的一个或多个方面的示例片上系统(SoC)的框图;
[0013] 图10描绘了根据本公开的一个或多个方面的示例计算机系统的框图;以及
[0014] 图11描绘了根据本公开的一个或多个方面的示例片上系统(SoC)的框图。
【具体实施方式】
[0015] 此处描述了用于实现对多处理器平台进行外部确认的处理系统以及相关的方法。 由示例处理系统执行的应用程序和由这样的应用程序访问的数据可以在微架构级别被保 护,例如,通过实现安全飞地,如下文比较详细地描述的。
[0016] 根据本公开的一个或多个方面,处理系统可以包括耦合到在架构上受保护的存储 器的处理核。处理核可以包括被配置成防止对在架构上受保护的存储器的未经授权的访问 的控制逻辑。处理核还可以进一步包括被配置成通过执行访问驻留在在微架构上受保护的 存储器中的数据的指令来实现安全飞地的执行逻辑,如下文比较详细地描述的。
[0017] 在制造过程中,可以给每一个处理器提供身份密钥。处理器身份密钥可以被存储 在由处理器包括的非易失性只读存储器中,诸如一组可编程的熔丝中。对于单处理器平台, 处理器的身份密钥可以被用作平台身份密钥,以被提供给确认服务,也可以被用作密钥材 料以产生用于安全飞地创建的一个或多个加密密钥。
[0018] 因此,对于多处理器平台,飞地将接收不同的密钥,这取决于飞地运行所在的处理 器,如果有效飞地从一个处理器迁移到另一处理器,可能会导致不可恢复的错误。多处理器 平台还将需要产生平台标识符以便向确认服务呈现。
[0019] 上文指出的及其他不足通过本公开的一个或多个方面,通过提供用于产生平台清 单(包括由平台包括的处理器的身份密钥和由处理器产生并同步的平台身份密钥)多处理 器平台和方法来解决,如下文比较详细地描述的。下面作为示例而并非作为限制地比较详 细地描述了上面引用的方法和系统的各方面。
[0020] 在下面的描述中,阐述了很多具体细节,诸如特定类型的处理器和系统配置、特定 硬件结构、特定架构和微架构细节、特定寄存器配置、特定指令类型、特定系统组件、特定测 量值/高度、特定处理器流水线级和操作的示例,以便提供对本发明的全面的理解。然而, 对本领域普通技术人员显而易见的是,可以不必使用这些具体细节来实施此处所公开的方 法。在其他情况下,没有详细描述已知的组件或方法,诸如特定和替代处理器架构、特定逻 辑电路/用于描述算法的代码、特定固件代码、特定互连操作、特定逻辑配置、特定制造技 术和材料、特定编译器实现、代码中的算法的特定表达、特定断电和选通技术/逻辑及计算 机系统的其他特定操作细节,以避免对本发明造成不必要的模糊。
[0021] 虽然将处理器参考来描述下列各示例,但是,其他实现也适用于其他类型的集成 电路和逻辑设备。可以将此处所描述的示例的类似的技术和原理应用于可以得益于较高流 水线吞吐量和改善的性能的其他类型的电路或半导体器件。此处所描述的示例的原理适用 于执行数据操纵的任何处理器或机器。然而,本发明不仅限于执行512比特、256比特、128 比特、64比特、32比特或16比特数据操作的处理器或机器,并可以应用于其中执行对数据 的操纵或管理的任何处理器和机器。
[0022] 然而,示出了本发明和附图的示例不应该以限制的方式来解释,因为它们只是提 供此处所描述的各实施例的示例,而并非提供此处所描述的各实施例的所有可能的实现的 详细清单。虽然下面的示例在执行单元以及逻辑电路的上下文中描述了指令处理和分布, 但是此处所描述的系统和方法的其他实现可以通过存储在机器可读的、有形的介质上的数 据或指令来完成,这些数据或指令当由机器执行时,使机器执行根据此处所描述的至少一 个实施例的功能。在某些实现中,与此处所描述的各实施例相关联的功能是以机器可执行 指令来实现的。指令可以用来使利用指令编程的通用或专用的处理器来执行此处所描述的 方法。此处所描述的实现可以作为计算机程序产品或软件来提供,该计算机程序产品或软 件可以包括在其上存储了机器或计算机可读介质,指令可以被用来编程计算机(或其他电 子器件)以执行根据此处所描述的各实施例的一个或多个操作。可另选地,可以由包含用 于执行操作的固定功能逻辑的特定硬件组件,或由编程的计算机组件和固定功能硬件组件 的任何组合,来执行此处所描述的系统和方法的操作。
[0023] 用于编程逻辑以执行此处所描述的方法的指令可以存储在系统中的存储器内,诸 如DRAM、缓存、闪存,或其他存储器。进一步的,指令可经由网络或其他计算机可读介质来 分发。因此,计算机可读介质可包括用于以机器(诸如,计算机)可读的格式存储或发送 信息的任何机制,但不限于:磁盘、光盘、致密盘只读存储器(CD-ROM)、磁光盘、只读存储器 (ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存 储器(EEPR0M)、磁卡或光卡、闪存、或在经由互联网通过电、光、声、或其他形式的传播信号 (诸如,载波、红外信号、数字信号等)发送信息中所用的有形机器可读存储器。因此,计算 机可读介质包括用于存储或发送机器(例如,计算机)可读形式的电子指令或信息的任何 类型的有形机器可读介质。
[0024] 此处"处理器"应该是指能够执行指令编码算术、逻辑或I/O操作的设备。在一个 说明性示例中,处理器可以遵循冯诺依曼架构模型,并可以包括算术逻辑单元(ALU)、控制 单元以及多个寄存器。另一方面,处理器可以包括一个或多个处理核,因此可以是通常能够 处理单指令流水线的单核处理器,或同时可以处理多个指令流水线的多核处理器。在另一 方面,处理器可以实现为单个集成电路,两个或更多个集成电路,或可以是多芯片模块(例 如,其中,单个微处理器晶片被包括在单个集成电路封装中,因此共享单个插槽)的组件。
[0025] 现在参考图1,所示是根据本公开的一个或多个方面的示例处理系统的框图。如 图1所示,处理系统100可以包括一个或多个处理核111,每一个处理核111都具有与其 相关联的本地第一级别(L1)缓存115。L1缓存115可以可通信地耦合到共享末级缓存 (LLC) 120。在说明性示例中,包括L1缓存115和LLC120的缓存层次结构可被配置成包括 性的缓存层次结构,以便存储在L1缓存115中的信息的至少一部分还可以存储在LLC120 中。
[0026] 在各实现中,处理核111可以通过有序核或无序核来提供。在说明性示例中,处理 核111可以具有包括用于实现指令集架构(ISA)的处理器逻辑和电路的微架构。带有不同 的微架构的处理器可以共享共同的指令集的至少一部分。例如,ISA的相同寄存器架构可 以使用各种技术,以不同的微架构,以不同的方式来实现,包括专用物理寄存器,使用寄存 器重命名机制(例如,寄存器混叠表(RAT)的使用,重新排序缓冲器(R0B)以及退役寄存器 组)的一个或多个动态分配的物理寄存器,如图6-7所示出的。在某些实现中,处理系统 100还可以包括图1中未示出的各种其他组件。
[0027] 根据本公开的一个或多个方面,处理系统100可以包括在架构上受保护的存储 器。处理核111可以包括处理逻辑,所述处理逻辑被配置成通过执行驻留在受保护的存储 器中的指令,并访问驻留在受保护的存储器中的数据,同时防止甚至被有特权的应用程序 对受保护的存储器的未经授权的访问,来实现安全飞地,如下面更详细地描述的。
[0028] 此处的"安全飞地"应该是指应用程序的地址空间内的受保护的区域。防止不常 驻在飞地中的应用程序对飞地存储器的访问,即使这样的访问是由诸如BIOS、操作系统或 虚拟机监视器之类的有特权的应用程序尝试的。
[0029] 有效的安全飞地可以被分成经加密的部分和解密的部分。经加密的部分可以驻留 在无保护的存储器中(诸如主存储器或磁盘)。解密的部分驻留在飞地页面缓存(EPC) 182 中。EPC是处理系统用来临时存储飞地页面(当它们未用密码保护时)的受保护的存储器。 EPC可以被分成预先定义的大小的页面,这些页面可以被称为EPC页面。防止EPC被驻留在 飞地外面的软件的任何访问。此外,未经授权的各方将不能够读取或修改属于飞地的通过 直接的硬件攻击加载到EPC中的明文数据。EPC位于处理系统的物理地址空间内,但是,只 能被使用用于构建和启用飞地、进入/退出飞地、管理EPC,以及执行各种其他操作的有特 权的或没有特权的飞地指令来访问。
[0030] 有多个实现EPC的机制。EPC可以实现为管芯上的静态随机存取存储器(SRAM) 或动态随机存取存储器ORAM)。可另选地,EPC可以通过CPU的末级缓存的分离方式来构 建。实现EPC的另一种机制是存储器加密引擎(MEE)。此处MEE应该是指硬件实现的处理 逻辑,该处理逻辑加密处理器包和平台DRAM之间的通信量,如此,提供使用平台DRAM来创 建密码保护的易失性存储器的机制。MEE可截取所尝试的存储器访问,并将那些访问路由到 密码控制器,该密码控制器可以生成对平台DRAM的一个或多个存储器访问,以获取密码文 本,处理密码文本,以生成明文,并满足原始存储器访问请求。
[0031] 再次参考图1,L1缓存115可以往返于LLC120传输数据。存储器控制器150可 以连接到末级缓存120和MEE180。存储器控制器150可以访问驻留在物理地址空间188 内的备用存储器设备186上的EPC182。
[0032] 飞地页面缓存映射(EPCM)是处理系统用来跟踪EPC的内容的受保护的结构。EPCM 可以包括多个条目,每一个条目都对应于EPC中的页面。每一个EPCM条目都可以以依赖 于实现的格式保存下列信息:EPC页面是否有效;拥有页面的飞地实例的标识符;页面类型 (REG、TCS、VA、SECS);允许飞地通过其访问页面的虚拟地址;对于页面的读/写/执行权 限;页面是否可访问(被阻断或解除阻断)。
[0033]EPCM可以被处理系统用于地址转换流中,以对加载到EPC中的飞地页面实施访问 控制。逻辑地,除"旧式"分割、分页表和扩展的分页表机制之外,它还提供访问控制的额外 的安全层。
[0034]EPC、EPCM以及各种其他实现特定的数据结构可以被映射到在架构上受保护的存 储器内的位置。当生成访问EPC的请求时,处理系统100可以将请求重新映射到包含经加 密的EPC数据的备用存储器位置,并检索数据。
[0035] 各种飞地相关的功能可以以微代码实现,由MEE的硬件实现以及实现飞地功能的 处理逻辑支持。在某些实现中,处理逻辑可以通过转换后援缓冲器(TLB) 164和页面丢失处 理程序(PMH) 168来控制对EPC182的访问。
[0036] 在说明性示例中,TLB可以实现为将虚拟地址映射到物理地址的表。"TLB命中"是 指当被请求的虚拟地址存在于TLB中的情况。"TLB未
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1