【技术实现步骤摘要】
用于散列指令的装置、方法和系统
本申请申请日为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散列标准来处理散列指令的方法。 ...
【技术保护点】
【技术特征摘要】
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中的任一项所述的方法,其中,将所述结果存储在所述第一向...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。