当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于散列指令的装置、方法和系统制造方法及图纸

技术编号:33460024 阅读:12 留言:0更新日期:2022-05-19 00:41
本申请公开了用于散列指令的装置、方法和系统。一种处理器包括解码电路和执行电路。解码电路用于对指令解码,该指令包括用于根据SM3散列标准的轮的32位的状态元素A、B、C、D、E、F、G和H的至少一个第一字段以及标识输入消息的至少一个第二字段。执行电路用于执行经解码的指令,以:分别将状态元素C、D、G、H循环左移9位、9位、19位、19位;对输入消息、状态元素A、B、经循环移位的状态元素C、D、状态元素E、F、经循环移位的状态元素G、H执行根据SM3散列标准的两轮以生成经更新的状态元素A、B、E、F;以及将经更新的状态元素A、B、E、F存储到由指令指定的位置中。位置中。位置中。

【技术实现步骤摘要】
用于散列指令的装置、方法和系统
本申请申请日为2020年3月3日、申请号为202010139487.7,题为“用于散列指令的装置、方法和系统”的专利技术专利申请的分案申请。


[0001]本公开总体上关于电子学,更具体地,本公开的实施例关于用于散列操作的处理器电路。

技术介绍

[0002]处理器或处理器集合执行来自指令集(例如,指令集架构(ISA))的指令。指令集是计算机架构的关于编程的部分,并且一般包括原生数据类型、指令、寄存器架构、寻址模式、存储器架构、中断和异常处置以及外部输入和输出(I/O)。应当注意,术语“指令”在本文中可以指宏指令或指微指令,该宏指令例如,提供给处理器供执行的指令,该微指令例如,由处理器的解码电路解码宏指令所产生的指令。
附图说明
[0003]在所附附图中以示例方式而非限制方式图示本公开,在附图中,类似的附图标记指示类似的要素,并且其中:
[0004]图1图示出根据本公开的实施例的耦合至存储器的硬件处理器。
[0005]图2图示根据本公开的实施例的硬件处理器,其耦合至包括一条或多条散列指令的存储。
[0006]图3图示根据本公开的实施例的SM3散列标准的压缩函数。
[0007]图4A图示根据本公开的实施例的用于根据SM3散列标准来执行散列的伪代码段。
[0008]图4B图示根据本公开的实施例的用于根据SM3散列标准来执行散列的另一伪代码段。
[0009]图5图示根据本公开的实施例的根据SM3散列标准来处理散列指令的方法。
[0010]图6图示根据本公开的实施例的电路,该电路包括具有循环移位电路和SM3散列轮电路的执行电路。
[0011]图7图示根据本公开的实施例的根据SM3散列标准来处理预循环移位指令的方法。
[0012]图8图示根据本公开的实施例的电路,该电路包括具有循环移位电路的执行电路。
[0013]图9图示根据本公开的实施例的根据SM3散列标准来处理后循环移位指令的方法。
[0014]图10图示根据本公开的实施例的电路,该电路包括具有循环移位电路的执行电路。
[0015]图11图示根据本公开的实施例的根据SM3散列标准来处理中间消息指令的方法。
[0016]图12图示根据本公开的实施例的电路,该电路包括具有中间SM3消息计算电路的执行电路。
[0017]图13图示根据本公开的实施例的中间SM3消息计算电路。
[0018]图14图示根据本公开的实施例的根据SM3散列标准来处理最终消息指令的方法。
[0019]图15图示根据本公开的实施例的电路,该电路包括具有最终SM3消息计算电路的执行电路。
[0020]图16图示根据本公开的实施例的最终SM3消息计算电路。
[0021]图17图示根据本公开的实施例的SHA512散列电路。
[0022]图18图示根据本公开的实施例的根据SHA512散列标准来处理散列指令的方法。
[0023]图19图示根据本公开的实施例的电路,该电路包括具有SHA512散列轮电路的执行电路。
[0024]图20图示根据本公开的实施例的根据SHA512散列标准来处理中间消息指令的方法。
[0025]图21图示根据本公开的实施例的电路,该电路包括具有中间SHA512消息计算电路的执行电路。
[0026]图22图示根据本公开的实施例的根据SHA512散列标准来处理最终消息指令的方法。
[0027]图23图示根据本公开的实施例的电路,该电路包括具有最终SHA512消息计算电路的执行电路。
[0028]图24A是图示根据本公开的实施例的通用向量友好指令格式及其A类指令模板的框图。
[0029]图24B是图示根据本公开的实施例的通用向量友好指令格式及其B类指令模板的框图。
[0030]图25A是图示根据本公开的实施例的用于图24A和图24B中的通用向量友好指令格式的字段的框图。
[0031]图25B是图示根据本公开的一个实施例的构成完整操作码字段的图25A中的专用向量友好指令格式的字段的框图。
[0032]图25C是图示根据本公开的一个实施例的构成寄存器索引字段的图25A中的专用向量友好指令格式的字段的框图。
[0033]图25D是图示根据本公开的一个实施例的构成扩充操作字段2450的图25A中的专用向量友好指令格式的字段的框图。
[0034]图26是根据本公开的一个实施例的寄存器架构的框图。
[0035]图27A是图示根据本公开的实施例的示例性有序流水线和示例性的寄存器重命名的乱序发布/执行流水线两者的框图。
[0036]图27B是图示根据本公开的实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的乱序发布/执行架构核两者的框图。
[0037]图28A是根据本公开的实施例的单个处理器核以及其到管芯上互连网络的连接以及它的第2级(L2)高速缓存的本地子集的框图。
[0038]图28B是根据本公开的实施例的图28A中的处理器核的一部分的展开图。
[0039]图29是根据本公开的实施例的可具有多于一个的核、可具有集成存储器控制器、并且可具有集成图形器件的处理器的框图。
[0040]图30是根据本公开的一个实施例的系统的框图。
[0041]图31是根据本公开的实施例的更具体的示例性系统的框图。
[0042]图32示出的是根据本公开的实施例的第二更具体的示例性系统的框图。
[0043]图33示出的是根据本公开的实施例的芯片上系统(SoC)的框图。
[0044]图34是根据本公开的实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。
具体实施方式
[0045]在下列描述中,阐述了众多特定细节。然而,应当理解,可不利用这些特定细节来实践本公开的实施例。在其他实例中,未详细示出公知的电路、结构和技术,以免混淆对本描述的理解。
[0046]说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用表明所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可能不一定都包括该特定的特征、结构或特性。此外,此类短语不一定是指同一个实施例。此外,当结合实施例描述特定的特征、结构或特性时,认为结合无论是否被明确描述的其他实施例而影响此类特征、结构或特性是在本领域技术人员的知识范围之内的。
[0047](例如,具有一个或多个核的)(例如,硬件)处理器可执行指令(例如,指令线程)以对数据操作,从而例如执行一个或多个散列操作。例如,软件可请求散列操作,并且硬件处理器(例如,该硬件处理器的一个或多个核)可响应于该请求来执行该操作。散列操作的一个非限制性示例是根据(例如,密码)散列表中的散列的轮(或多轮)。散列标准可包括一个或多个散列函数,这一个或多个散列函数取得消息作为输入,通过将(多个)散列函数应用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种处理器,包括:解码电路,用于对第一指令解码,所述第一指令包括用于指定第一向量寄存器和第二向量寄存器的多个字段,所述第一向量寄存器用于存储第一64位数据元素、第二64位数据元素、第三64位数据元素和第四64位数据元素,所述第二向量寄存器用于存储第五64位数据元素;以及执行电路,与所述解码电路耦合,所述执行电路用于执行与所述第一指令对应的操作,包括:生成结果,所述结果用于包括:第一64位结果元素,所述第一64位结果元素等于所述第一64位数据元素与等于以下运算的值相加:循环右移一位的所述第二64位数据元素与循环右移八位的所述第二64位数据元素进行异或XOR、与右移七位的所述第二64位数据元素进行XOR;第二64位结果元素,所述第二64位结果元素等于所述第二64位数据元素与等于以下运算的值相加:循环右移一位的所述第三64位数据元素与循环右移八位的所述第三64位数据元素进行XOR、与右移七位的所述第三64位数据元素进行XOR;第三64位结果元素,所述第三64位结果元素等于所述第三64位数据元素与等于以下运算的值相加:循环右移一位的所述第四64位数据元素与循环右移八位的所述第四64位数据元素进行XOR、与右移七位的所述第四64位数据元素进行XOR;第四64位结果元素,所述第四64位结果元素等于所述第四64位数据元素与等于以下运算的值相加:循环右移一位的所述第五64位数据元素与循环右移八位的所述第五64位数据元素进行XOR、与右移七位的所述第五64位数据元素进行XOR;以及将所述结果存储在所述第一向量寄存器中。2.如权利要求1所述的处理器,其中,所述第一64位数据元素、所述第二64位数据元素、所述第三64位数据元素、所述第四64位数据元素和所述第五64位数据元素是根据SHA512散列标准的消息元素。3.如权利要求1或2所述的处理器,其中,所述第一指令是SHA512消息部分扩展指令。4.如权利要求1至3中的任一项所述的处理器,其中,所述第一64位数据元素用于被存储在所述第一向量寄存器的位[63:0]中,所述第二64位数据元素用于被存储在所述第一向量寄存器的位[127:64]中,所述第三64位数据元素用于被存储在所述第一向量寄存器的位[191:128]中,并且所述第四64位数据元素用于被存储在所述第一向量寄存器的位[255:192]中。5.如权利要求1至3中的任一项所述的处理器,其中,所述执行电路用于将所述第一64位结果元素存储在所述第一向量寄存器的位[63:0]中,将所述第二64位结果元素存储在所述第一向量寄存器的位[127:64]中,将所述第三64位结果元素存储在所述第一向量寄存器的位[191:128]中,并且将所述第四64位结果元素存储在所述第一向量寄存器的位[255:192]中。6.如权利要求1至5中的任一项所述的处理器,其中,所述第一向量寄存器是256位向量寄存器。7.如权利要求1至6中的任一项所述的处理器,其中,所述第一向量寄存器是YMM寄存器。
8.如权利要求1至7中的任一项所述的处理器,其中,所述处理器是复杂指令集计算CISC处理器。9.一种用于指令处理的方法,包括:对第一指令解码,所述第一指令包括指定第一向量寄存器和第二向量寄存器的多个字段,所述第一向量寄存器存储第一64位数据元素、第二64位数据元素、第三64位数据元素和第四64位数据元素,所述第二向量寄存器存储第五64位数据元素;以及执行与所述第一指令对应的操作,包括:生成结果,所述结果包括:第一64位结果元素,所述第一64位结果元素等于所述第一64位数据元素与等于以下运算的值相加:循环右移一位的所述第二64位数据元素与循环右移八位的所述第二64位数据元素进行异或XOR、与右移七位的所述第二64位数据元素进行XOR;第二64位结果元素,所述第二64位结果元素等于所述第二64位数据元素与等于以下运算的值相加:循环右移一位的所述第三64位数据元素与循环右移八位的所述第三64位数据元素进行XOR、与右移七位的所述第三64位数据元素进行XOR;第三64位结果元素,所述第三64位结果元素等于所述第三64位数据元素与等于以下运算的值相加:循环右移一位的所述第四64位数据元素与循环右移八位的所述第四64位数据元素进行XOR、与右移七位的所述第四64位数据元素进行XOR;第四64位结果元素,所述第四64位结果元素等于所述第四64位数据元素与等于以下运算的值相加:循环右移一位的所述第五64位数据元素与循环右移八位的所述第五64位数据元素进行XOR、与右移七位的所述第五64位数据元素进行XOR;以及将所述结果存储在所述第一向量寄存器中。10.如权利要求9所述的方法,进一步包括:从所述第一向量寄存器和所述第二向量寄存器访问所述第一64位数据元素、所述第二64位数据元素、所述第三64位数据元素、所述第四64位数据元素和所述第五64位数据元素,所述第一64位数据元素、所述第二64位数据元素、所述第三64位数据元素、所述第四64位数据元素和所述第五64位数据元素是根据SHA512散列标准的消息元素。11.如权利要求9或10所述的方法,其中,对所述第一指令解码包括:对SHA512消息部分扩展指令解码。12.如权利要求9至11中的任一项所述的方法,进一步包括:将所述第一64位元素存储在所述第一向量寄存器的位[63:0]中,将所述第二64位数据元素存储在所述第一向量寄存器的位[127:64]中,将所述第三64位数据元素存储在所述第一向量寄存器的位[191:128]中,并且将所述第四64位数据元素用于被存储在所述第一向量寄存器的位[255:192]中。13.如权利要求9至11中的任一项所述的方法,其中,将所述结果存储在所述第一向量寄存器中包括:将所述第一64位结果元素存储在所述第一向量寄存器的位[63:0]中,将所述第二64位结果元素存储在所述第一向量寄存器的位[127:64]中,将所述第三64位结果元素存储在所述第一向量寄存器的位[191:128]中,并且将所述第四64位结果元素存储在所述第一向量寄存器的位[255:192]中。14.如权利要求9至13中的任一项所述的方法,其中,将所述结果存储在所述第一向量寄存器中包括:将所述结果存储在256位向量寄存器中。
15.如权利要求9至14中的任一项所述的方法,其中,将所述结果存储在所述第一向...

【专利技术属性】
技术研发人员:R
申请(专利权)人:英特尔公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1