描述了用于在处理器上执行散列函数的设备和方法。例如,处理器的一个实施例包括:寄存器组,包括其中将存储散列函数的状态变量的第一存储位置和第二存储位置;执行单元,用于执行所述散列函数,并最初指定所述第一存储位置,用于存储用于计算所述散列函数的轮次的第一组状态值,并最初指定第二存储位置,用于存储也用于计算所述散列函数的轮次的第二组状态值;以及,所述执行单元使用所述第一和第二组状态数据,执行多轮次的所述散列函数,其中,执行包括交换所述第一存储位置和第二存储位置的所述指定,以便所述第一存储位置被指定为存储用于第一组轮次的所述第一组状态值和用于第二组轮次的所述第二组状态值,其中所述第二存储位置被指定为存储用于所述第一组轮次的所述第二组状态值和用于所述第二组轮次的所述第一组状态值。
【技术实现步骤摘要】
【专利说明】用于有效地执行散列操作的方法和设备
技术介绍
专利
本专利技术总体设及计算机处理器领域。更具体而言,本专利技术设及用于有效地执行散 列操作的方法和设备。 相关巧术描巧 安全消息(SM)-3散列函数是由中国商业加密管理局为了因特网工程任务组 (IET巧和网络研究任务组(IRT巧社区的方便发布的新的加密函数。SM3当前被中国信息 安全标准化技术委员会(简称为TC260)倡议指定为用于TCM(受信任的计算模块)的散列 算法。SM3的设计通过添加附加特征W加强散列函数,诸如与在SHA-2的情况下只馈送一个 消息导出的字相反,向每一轮次馈送两个消息导出的字,建立在安全散列算法(SHA)-2的 设计作上。【附图说明】 结合W下附图,从W下【具体实施方式】中可获得对本专利技术更好的理解,其中:[000引图1A是示出根据本专利技术的实施例的示例性有序取出、解码、引退流水线W及示例 性寄存器重命名的无序发布/执行流水线两者的框图; 图1B是示出根据本专利技术的各实施例的要包括在处理器中的有序取出、解码、引退 核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图; 图2是根据本专利技术的实施例的具有集成的存储器控制器和图形器件的单核处理 器和多核处理器的框图;[000引图3示出根据本专利技术的一个实施例的系统的框图; 图4示出根据本专利技术的实施例的第二系统的框图;图5示出根据本专利技术的实施例 的第S系统的框图; 图6示出了根据本专利技术的实施例的巧片上系统(SoC)的框图; 图7示出根据本专利技术的各实施例的对照使用软件指令转换器将源指令集中的二 进制指令转换成目标指令集中的二进制指令的框图; 图8示出可在其上实现本专利技术的实施例的处理器架构的一个实施例;[001引图9示出了在实现安全消息(SM)-3散列函数的一轮中执行的操作; 图10示出了用于执行散列操作的不同的轮次的架构和相关联的技术的一个实施 例;化及 图11示出了根据本专利技术的一个实施例的用于执行散列函数的多轮次的方法。【具体实施方式】 在下面的描述中,出于说明目的,阐述了众多具体细节W便提供对W下描述的本 专利技术的实施例的全面理解。然而,对本领域的技术人员显而易见的是,可W在没有该些具体 细节中的一些细节的情况下实施本专利技术的实施例。在其他实例中,公知的结构和设备w框 图形式示出,W避免使本专利技术实施例的基本原理不清楚。 示例忡化理器架构巧撒据类巧 图1A是示出根据本专利技术的各实施例的示例性有序取出、解码、引退流水线和示例 性的寄存器重命名的无序发布/执行流水线的框图。图1B是示出根据本专利技术的各实施例 的要包括在处理器中的有序取出、解码、引退核的示例性实施例和示例性的寄存器重命名 的无序发布/执行架构核的框图。图1A-B中的实线框示出了流水线和核的有序部分,而可 选增加的虚线框示出了寄存器重命名的、无序发布/执行流水线和核。 在图1A中,处理器流水线100包括取出级102、长度解码级104、解码级106、分配 级108、重命名级110、调度(也称为分派或发布)级112、寄存器读取/存储器读取级114、 执行级116、写回/存储器写入级118、异常处理级122和提交级124。 图1B示出了包括禪合到执行引擎单元150的前端单元130的处理器核190,且 执行引擎单元和前端单元两者都禪合到存储器单元170。核190可W是精简指令集计算 化ISC)核、复杂指令集计算(CISC)核、超长指令字(VLIW)核或混合或替代核类型。作为又 一选项,核190可W是专用核,诸如例如网络或通信核、压缩引擎、协处理器核、通用计算图 形处理器单元(GPGPU)核、或图形核等等。 前端单元130包括禪合到指令高速缓存单元132的分支预测单元134,该指令高速 缓存单元禪合到指令转换后备缓冲器(TLB) 136,该指令转换后备缓冲器禪合到指令取出单 元138,指令取出单元禪合到解码单元140。解码单元140 (或解码器)可解码指令,并生成 从原始指令解码出的、或W其他方式反映原始指令的、或从原始指令导出的一个或多个微 操作、微代码进入点、微指令、其他指令、或其他控制信号作为输出。解码单元140可使用各 种不同的机制来实现。合适的机制的示例包括但不限于查找表、硬件实现、可编程逻辑阵列 (PLA)、微代码只读存储器(ROM)等。在一个实施例中,核190包括(例如,在解码单元140 中或否则在前端单元130内的)微代码ROM或存储某些宏指令的微代码的其他介质。解码 单元140禪合至执行引擎单元150中的重命名/分配器单元152。 执行引擎单元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为有序发布/执行。 存储器访问单元164的集合禪合到存储器单元170,该存储器单元包括禪合到数 据高速缓存单元174的数据TLB单元172,其中数据高速缓存单元禪合到二级(L2)高速缓 存单元176。在一个示例性实施例中,存储器访问单元164可包括加载单元、存储地址单元 和存储数据单元,其中的每一个均禪合至存储器单元170中的数据TLB单元172。指令高速 缓存单元134还禪合到存储器单元170中的第二级(L2)高速缓本文档来自技高网...
【技术保护点】
一种用于执行散列函数的方法,包括:最初指定第一存储位置,用于存储用于计算所述散列函数的轮次的第一组状态值;最初指定第二存储位置,用于存储也用于计算所述散列函数的轮次的第二组状态值;以及使用所述第一和第二组状态数据,执行多轮次的所述散列函数,其中执行包括交换所述第一存储位置和第二存储位置的所述指定,以便所述第一存储位置被指定为存储用于第一组轮次的所述第一组状态值和用于第二组轮次的所述第二组状态值,其中所述第二存储位置被指定为存储用于所述第一组轮次的所述第二组状态值和用于所述第二组轮次的所述第一组状态值。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:G·M·沃尔里齐,V·戈帕尔,K·S·雅普,W·K·费格哈利,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。