用于有效地执行散列操作的方法和设备的制造方法
【专利说明】用于有效地执行散列操作的方法和设备
【背景技术】 发明领域
[0001] 本发明总体设及计算机处理器领域。更具体而言,本发明设及用于有效地执行散 列操作的方法和设备。
[0002] 相关巧术描巧
[0003] 安全消息(SM)-3散列函数是由中国商业加密管理局为了因特网工程任务组 (IET巧和网络研究任务组(IRT巧社区的方便发布的新的加密函数。SM3当前被中国信息 安全标准化技术委员会(简称为TC260)倡议指定为用于TCM(受信任的计算模块)的散列 算法。SM3的设计通过添加附加特征W加强散列函数,诸如与在SHA-2的情况下只馈送一个 消息导出的字相反,向每一轮次馈送两个消息导出的字,建立在安全散列算法(SHA)-2的 设计作上。
【附图说明】
[0004] 结合W下附图,从W下【具体实施方式】中可获得对本发明更好的理解,其中:
[000引图1A是示出根据本发明的实施例的示例性有序取出、解码、引退流水线W及示例 性寄存器重命名的无序发布/执行流水线两者的框图;
[0006] 图1B是示出根据本发明的各实施例的要包括在处理器中的有序取出、解码、引退 核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图;
[0007] 图2是根据本发明的实施例的具有集成的存储器控制器和图形器件的单核处理 器和多核处理器的框图;
[000引图3示出根据本发明的一个实施例的系统的框图;
[0009] 图4示出根据本发明的实施例的第二系统的框图;图5示出根据本发明的实施例 的第S系统的框图;
[0010] 图6示出了根据本发明的实施例的巧片上系统(SoC)的框图;
[0011] 图7示出根据本发明的各实施例的对照使用软件指令转换器将源指令集中的二 进制指令转换成目标指令集中的二进制指令的框图;
[0012] 图8示出可在其上实现本发明的实施例的处理器架构的一个实施例;
[001引图9示出了在实现安全消息(SM)-3散列函数的一轮中执行的操作;
[0014] 图10示出了用于执行散列操作的不同的轮次的架构和相关联的技术的一个实施 例;化及
[0015] 图11示出了根据本发明的一个实施例的用于执行散列函数的多轮次的方法。
【具体实施方式】
[0016] 在下面的描述中,出于说明目的,阐述了众多具体细节W便提供对W下描述的本 发明的实施例的全面理解。然而,对本领域的技术人员显而易见的是,可W在没有该些具体 细节中的一些细节的情况下实施本发明的实施例。在其他实例中,公知的结构和设备w框 图形式示出,W避免使本发明实施例的基本原理不清楚。
[0017] 示例忡化理器架构巧撒据类巧
[0018] 图1A是示出根据本发明的各实施例的示例性有序取出、解码、引退流水线和示例 性的寄存器重命名的无序发布/执行流水线的框图。图1B是示出根据本发明的各实施例 的要包括在处理器中的有序取出、解码、引退核的示例性实施例和示例性的寄存器重命名 的无序发布/执行架构核的框图。图1A-B中的实线框示出了流水线和核的有序部分,而可 选增加的虚线框示出了寄存器重命名的、无序发布/执行流水线和核。
[0019] 在图1A中,处理器流水线100包括取出级102、长度解码级104、解码级106、分配 级108、重命名级110、调度(也称为分派或发布)级112、寄存器读取/存储器读取级114、 执行级116、写回/存储器写入级118、异常处理级122和提交级124。
[0020] 图1B示出了包括禪合到执行引擎单元150的前端单元130的处理器核190,且 执行引擎单元和前端单元两者都禪合到存储器单元170。核190可W是精简指令集计算 化ISC)核、复杂指令集计算(CISC)核、超长指令字(VLIW)核或混合或替代核类型。作为又 一选项,核190可W是专用核,诸如例如网络或通信核、压缩引擎、协处理器核、通用计算图 形处理器单元(GPGPU)核、或图形核等等。
[0021] 前端单元130包括禪合到指令高速缓存单元132的分支预测单元134,该指令高速 缓存单元禪合到指令转换后备缓冲器(TLB) 136,该指令转换后备缓冲器禪合到指令取出单 元138,指令取出单元禪合到解码单元140。解码单元140 (或解码器)可解码指令,并生成 从原始指令解码出的、或W其他方式反映原始指令的、或从原始指令导出的一个或多个微 操作、微代码进入点、微指令、其他指令、或其他控制信号作为输出。解码单元140可使用各 种不同的机制来实现。合适的机制的示例包括但不限于查找表、硬件实现、可编程逻辑阵列 (PLA)、微代码只读存储器(ROM)等。在一个实施例中,核190包括(例如,在解码单元140 中或否则在前端单元130内的)微代码ROM或存储某些宏指令的微代码的其他介质。解码 单元140禪合至执行引擎单元150中的重命名/分配器单元152。
[0022] 执行引擎单元150包括重命名/分配器单元152,该重命名/分配器单元禪合至引 退单元154和一个或多个调度器单元156的集合。调度器单元156表示任何数目的不同调 度器,包括预留站、中央指令窗等。调度器单元156禪合到物理寄存器组单元158。每个物 理寄存器组单元158表示一个或多个物理寄存器组,其中不同的物理寄存器组存储一种或 多种不同的数据类型,诸如标量整数、标量浮点、紧缩整数、紧缩浮点、向量整数、向量浮点、 状态(例如,作为要执行的下一指令的地址的指令指针)等。在一个实施例中,物理寄存器 组单元158包括向量寄存器单元、写掩码寄存器单元和标量寄存器单元。该些寄存器单元 可W提供架构向量寄存器、向量掩码寄存器、和通用寄存器。物理寄存器组单元158与引退 单元154重叠W示出可W用来实现寄存器重命名和无序执行的各种方式(例如,使用重新 排序缓冲器和引退寄存器组;使用将来的文件、历史缓冲器和引退寄存器组;使用寄存器 映射和寄存器池等等)。引退单元154和物理寄存器组单元158禪合到执行群集160。执行 群集160包括一个或多个执行单元162的集合和一个或多个存储器访问单元164的集合。 执行单元162可W对各种类型的数据(例如,标量浮点、紧缩整数、紧缩浮点、向量整型、向 量浮点)执行各种操作(例如,移位、加法、减法、乘法)。尽管一些实施例可W包括专用于 特定功能或功能集合的多个执行单元,但其他实施例可包括全部执行所有功能的仅一个执 行单元或多个执行单元。调度器单元156、物理寄存器组单元158和执行群集160被示为可 能有多个,因为某些实施例为某些类型的数据/操作创建分开的流水线(例如,标量整型流 水线、标量浮点/紧缩整型/紧缩浮点/向量整型/向量浮点流水线,和/或各自具有其自 己的调度器单元、物理寄存器组单元和/或执行群集的存储器访问流水线一一W及在分开 的存储器访问流水线的情况下,实现其中仅该流水线的执行群集具有存储器访问单元164 的某些实施例)。还应当理解,在使用分开的流水线的情况下,该些流水线中的一个或多个 可W为无序发布/执行,并且其余流水线可W为有序发布/执行。
[0023] 存储器访问单元164的集合禪合到存储器单元170,该存储器单元包括禪合到数 据高速缓存单元174的数据TLB单元172,其中数据高速缓存单元禪合到二级(L2)高速缓 存单元176。在一个示例性实施例中,存储器访问单元164可包括加载单元、存储地址单元 和存储数据单元,其中的每一个均禪合至存储器单元170中的数据TLB单元172。指令高速 缓存单元134还禪合到存储器单元170中的第二级(L2)高速缓存单元176。L2高速缓存 单元176禪合到一个或多个其他级的高速缓存,并最终禪合到主存储器。
[0024] 作为示例,示例性寄存器重命名的、无序发布/执行核架构可W如下实现流水线 100 ;1)指令取出138执行取出和长度解码级102和104曲解码单元140执行解码级106 ; 3)重命名/分配器单元152执行分配级108和重命名级110 ;4)调度器单元156执行调度 级112 ;5)物理寄存器组单元158和存储器单元170执行寄存器读取/存储器读取级114 ; 执行群集160执行执行级116 ;6)存储器单元170和物理寄存器组单元158执行写回/存 储器写入级118;7)各单元可牵设到异常处理级122;W及8)引退单元154和物理寄存器 组单元158执行提交级124。
[0025] 核190可支持一个或多个指令集(例如,x86指令集(具有与较新版本一起添加 的一些扩展);加利福巧亚州桑巧维尔市的MIPS技术公司的MIPS指令集;加利福巧州桑巧 维尔市的ARM控股的ARM指令集(具有诸如NEON等可选附加扩展)),其中包括本文中描 述的各指令。在一个实施例中,核190包括用于支持紧缩数据指令集扩展(例如,在下文中 描述的AVX1、AVX2和/或某种形式的一般向量友好指令格式扣=0和/或U = 1))的逻 辑,从而允许很多多媒体应用使用的操作能够使用紧缩数据来执行。
[0026] 应当理解,核可支持多线程化(执行两个或更多个并行的操作或线程的集合),并 且可W按各种方式来完成该多线程化,此各种方式包括时分多线程化、同步多线程化(其 中单个物理核为该物理核正在同步多线程化的各线程中的每一个线程提供逻辑核)、或其 组合(例如,时分取出和解码W及此后诸如用]mel饭超线程化技术来同步多线程化)。
[0027] 尽管在无序执行的上下文中描述了寄存器重命名,但应当理解,可W在有序架构 中使用寄存器重命名。尽管所示出的处理器的实施例还包括分开的指令和数据高速缓存单 元134/174 W及共享L2高速缓存单元176,但替代实施例可W具有用于指令和数据两者的 单个内部高速缓存,诸如例如一级(L1)内部高速缓存或多个级别的内部高速缓存。在一些 实施例中,该系统可包括内部高速缓存和在核和/或处理器外部的外部高速缓存的组合。 或者,所有高速缓存都可W在核和/或处理器的外部。
[002引图2是根据本发明的各实施例的可能具有一个W上核、可能具有集成存储器控制 器、W及可能具有集成图形器件的处理器200的框图。图2中的实线框示出具有单个核 202A、系统代理210、一个或多个总线控制器单元216的集合的处理器200,而虚线框的可 选附加示出具有多个核202A-N、系