用于安全地保存并恢复计算平台状态的方法和装置的制造方法

文档序号:9376153阅读:295来源:国知局
用于安全地保存并恢复计算平台状态的方法和装置的制造方法
【专利说明】用于安全地保存并恢复计算平台状态的方法和装置 【背景技术】 技术领域
[0001] 本发明总体涉及计算机处理器领域。更具体地说,本发明涉及用于安全地存储并 恢复计算平台状态的装置和方法。
[0002] 相关技术描述
[0003] 许多现代处理器不具有处理器上的、在其中存储必须保持最新且不被复用的状态 数据的永久存储设备。这尤其与诸如软件防护扩展(SGX)之类的安全技术有关,在SGX中, 当挂起并恢复平台时需要将内部密钥和配置数据存储在处理器外部,以便节能。
[0004] 对该问题先前的解决方案需要从处理器直接去往仅由该处理器拥有的、受信任的 存储设备的硬件接口。确保该通道的安全要求保护在受信任的生产设施中的密钥交换以免 受对该密钥的恶意观察。这需要通常不能在个人计算设备中找到的特殊硬件。此外,伴随 着外包、离岸生产的增加,要获取该信任如果不是不可能的,也是非常困难的。此外,可将闪 存添加到处理器自身中以确保在挂起操作期间所存储的数据的安全,再次导致了显著的额 外生产成本。 【附图说明】
[0005] 结合以下附图,从以下【具体实施方式】中可获得对本发明更好的理解,其中:
[0006] 图IA是示出根据本发明的多个实施例的示例性有序流水线以及示例性寄存器重 命名的无序发布/执行流水线两者的框图;
[0007] 图IB是示出根据本发明的多个实施例的要包括在处理器中的有序架构核的示例 性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图;
[0008] 图2是根据本发明的多个实施例的具有集成的存储器控制器和图形器件的单核 处理器和多核处理器的框图;
[0009] 图3示出本发明的一个实施例的系统的框图;
[0010] 图4示出根据本发明的实施例的第二系统的框图;
[0011] 图5示出根据本发明的实施例的第三系统的框图;
[0012] 图6示出根据本发明的实施例的芯片上系统(SoC)的框图;
[0013] 图7示出根据本发明的多个实施例的对照使用软件指令转换器将源指令集中的 二进制指令转换成目标指令集中的二进制指令的框图;
[0014] 图8示出用于将处理器与一个或多个其他计算组件配对的本发明的一个实施例;
[0015] 图9示出收集配对数据并将其存储在数据库中的一个实施例;
[0016] 图10示出用于生成消息认证码(MAC)密钥的方法的一个实施例;
[0017] 图11示出用于生成配对数据的方法的一个实施例;
[0018] 图12示出用于使用计数器值安全地恢复处理器状态的技术;
[0019] 图13示出用于使用计数器值安全地挂起处理器状态的技术;
[0020] 图14示出根据本发明的一个实施例可如何将配对ID注入到现有密钥中。 【具体实施方式】
[0021] 在下面的描述中,为了进行解释,阐述了众多具体细节以便提供对以下描述的本 发明的各实施例的全面理解。然而,对本领域技术人员显而易见的是,可以在没有这些具体 细节中的一些细节的情况下实施本发明的各实施例。在其他实例中,公知的结构和设备以 框图形式示出,以避免使本发明的实施例的基本原理模糊。
[0022] 示例性处理器架构和数据类型
[0023] 图IA是示出根据本发明的多个实施例的示例性有序流水线和示例性的寄存器重 命名的无序发布/执行流水线的框图。图IB是示出根据本发明的多个实施例的要包括在 处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构 核的框图。图IA-B中的实线框示出有序流水线和有序核,而可选增加的虚线框示出寄存器 重命名的、无序发布/执行流水线和核。考虑到有序方面是无序方面的子集,将描述无序方 面。
[0024] 在图IA中,处理器流水线100包括取出级102、长度解码级104、解码级106、分配 级108、重命名级110、调度(也称为分派或发布)级112、寄存器读取/存储器读取级114、 执行级116、写回/存储器写入级118、异常处理级122和提交级124。
[0025] 图IB示出了包括耦合到执行引擎单元150的前端单元130的处理器核190,且 执行引擎单元和前端单元两者都耦合到存储器单元170。核190可以是精简指令集计算 (RISC)核、复杂指令集计算(CISC)核、超长指令字(VLIW)核或混合或替代核类型。作为又 一选项,核190可以是专用核,诸如例如网络或通信核、压缩引擎、协处理器核、通用计算图 形处理单元(GPGPU)核、或图形核等等。
[0026] 前端单元130包括親合到指令高速缓存单元134的分支预测单元132,该指令高 速缓存单元耦合到指令转换后备缓冲器(TLB) 136,该指令转换后备缓冲器耦合到指令取出 单元138,该指令取出单元耦合到解码单元140。解码单元140 (或解码器)可解码指令,并 生成从原始指令解码出的、或以其他方式反映原始指令的、或从原始指令导出的一个或多 个微操作、微代码进入点、微指令、其他指令、或其他控制信号作为输出。解码单元140可使 用各种不同的机制来实现。合适机制的示例包括但不限于,查找表、硬件实现、可编程逻辑 阵列(PLA)、微代码只读存储器(ROM)等。在一个实施例中,核190包括微代码ROM或存储 用于某些宏指令的微代码的其他介质(例如,在解码单元140中或以其他方式在前端单元 130内)。解码单元140耦合至执行引擎单元150中的重命名/分配器单元152。
[0027] 执行引擎单元150包括重命名/分配器单元152,该重命名/分配器单元耦合至 引退单元154和一个或多个调度器单元156的集合。调度器单元156表示任意数量的不同 调度器,包括预留站、中央指令窗等。调度器单元156耦合到物理寄存器组单元158。物理 寄存器组单元158中的每一个表示一个或多个物理寄存器组,其中不同的物理寄存器组存 储一个或多个不同的数据类型,诸如,标量整数、标量浮点、紧缩整数、紧缩浮点、向量整数、 向量浮点、状态(诸如,作为要被执行的下一条指令的地址的指令指针)等。在一个实施例 中,物理寄存器组单元158包括向量寄存器单元、写掩码寄存器单元和标量寄存器单元。这 些寄存器单元可以提供架构向量寄存器、向量掩码寄存器、和通用寄存器。物理寄存器组单 元158被引退单元154覆盖,以示出可实现寄存器重命名和无序执行的多种方式(例如,使 用重排序缓冲器和引退寄存器组;使用未来文件(future file)、历史缓冲器和引退寄存器 组;使用寄存器映射和寄存器池等)。引退单元154和物理寄存器组单元158耦合到执行 群集160。执行群集160包括一个或多个执行单元162的集合和一个或多个存储器访问单 元164的集合。执行单元162可对各种类型的数据(例如,标量浮点、紧缩整数、紧缩浮点、 向量整数、向量浮点)执行各种操作(例如,移位、加法、减法、乘法)。尽管一些实施例可 包括专用于特定功能或功能集的多个执行单元,但其他实施例可包括全部执行所有功能的 仅一个执行单元或多个执行单元。调度器单元156、物理寄存器组单元158和执行群集160 被示出为可能有多个,因为某些实施例为某些类型的数据/操作创建分开的流水线(例如, 标量整数流水线、标量浮点/紧缩整数/紧缩浮点/向量整数/向量浮点流水线,和/或各 自具有其自身的调度器单元、物理寄存器组单元和/或执行群集的存储器访问流水线一一 以及在分开的存储器访问流水线的情况下,实现其中仅该流水线的执行群集具有存储器访 问单元164的某些实施例)。还应当理解,在使用分开的流水线的情况下,这些流水线中的 一个或多个可以是无序发布/执行,并且其余流水线可以是有序的。
[0028] 存储器访问单元164的集合耦合至存储器单元170,该存储器单元包括数据TLB单 元172,该数据TLB单元親合至高速缓存单元174,该高速缓存单元親合至第二级(L2)高速 缓存单元176。在一个示例性实施例中,存储器访问单元164可包括加载单元、存储地址单 元和存储数据单元,其中的每一个均親合至存储器单元170中的数据TLB单元172。指令高 速缓存单元134还耦合到存储器单元170中的第二级(L2)高速缓存单元176。L2高速缓 存单元176耦合到一个或多个其他级的高速缓存,并最终耦合到主存储器。
[0029] 作为示例,示例性寄存器重命名的、无序发布/执行核架构按如下方式实现流水 线100 :1)指令取出器138执行取出和长度解码级102和104 ;2)解码单元140执行解码级 106 ;3)重命名/分配器单元152执行分配级108和重命名级110 ;4)调度器单元156执行 调度级112 ;5)物理寄存器组单元158和存储器单元170执行寄存器读取/存储器读取级 114 ;执行群集160实现执行级116 ;6)存储器单元170和物理寄存器组单元158执行写回 /存储器写入级118 ;7)多个单元可被牵涉在异常处理级122中;以及8)引退单元154和 物理寄存器组单元158执行提交级124。
[0030] 核190可支持一个或多个指令集(例如,X86指令集(具有与较新版本一起添加 的一些扩展);加利福尼亚州桑尼维尔市的MIPS技术公司的MIPS指令集;加利福尼州桑尼 维尔市的ARM控股的ARM指令集(具有诸如NEON等可选附加扩展)),其中包括本文中描述 的各指令。在一个实施例中,核190包括用于支持紧缩数据指令集扩展(例如,AVXUAVX2 和/或下文描述的一些形式的通用向量友好指令格式(U = 0和/或U = 1))的逻辑,从而 实用紧缩数据来执行由许多多媒体应用使用的操作。
[0031] 应当理解,核可支持多线程化(执行两个或更多并行的操作或线程的集合),并且 可以按各种方式来完成该多线程化,包括,时分多线程化、同步多线程化(其中单个物理核 为物理核正在同步进行多线程化的多个线程中的每一个线程提供逻辑核)、或其组合(例 如,时分取出和解码以及此后诸如用Intel?超线程化技术进行的同步多线程化)。
[0032] 尽管在无序执行的上情境中描述了寄存器重命名,但应当理解,可以在有序架构 中使用寄存器重命名。尽管所示出的处理器的实施例还包括分开的指令和数据高速缓存单 元134/174以及共享L2高速缓存单元176,但替代实施例可以具有用于指令和数据两者的 单个内部高速缓存,诸如例如一级(LI)内部高速缓存或多个级别的内
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1