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

用于响应于单个指令来执行循环和异或的系统、装置和方法制造方法及图纸

技术编号:11389963 阅读:83 留言:0更新日期:2015-05-02 02:05
本申请公开了在计算机处理器中响应于单个异或和循环指令来执行循环和异或的系统、装置和方法,其中该循环和异或指令包括第一和第二源操作数、目的地操作数以及立即数值。

【技术实现步骤摘要】
【国外来华专利技术】用于响应于单个指令来执行循环和异或的系统、装置和方法
本专利技术的领域一般涉及计算机处理器架构,更具体地涉及在执行时导致特定结果的指令。背景Blake安全散列算法是将成为新的NISTSHA-3标准的五个算法之一。BLAKE是四个散列函数的家族:BLAKE-224、BLAKE-256、BLAKE-384以及BLAKE-512。BLAKE-256和BLAKE-224是基于32位字的,而BLAKE-512和BLAKE-384是基于64位字的。BLAKE-256是具有32位字、14轮以及256位输出的BLAKE,而BLAKE-512是具有64位字、16轮以及512位输出的BLAKE。BLAKE的压缩函数是基于32位或64位字的4×4矩阵所表示的状态。BLAKE的轮由如下操作组成:执行状态矩阵的独立的列更新,然后执行状态矩阵的对角元素的独立更新。对于每一次列和对角更新,将两个消息字和两个预定常数输入该状态。以矩阵形式将16字状态v0到v15表示为:|v0v1v2v3||v4v5v6v7||v8v9v10v11||v12v13v14v15|BLAKE的轮是使用如下函数对该v0至v15状态矩阵的变换:使用G(a,b,c,d),以首先更新状态矩阵的多个列G0(v0,v4,v8,vl2)Gl(vl,v5,v9,vl3)G2(v2,v6,vlO,vl4)G3(v3,v7,vll,vl5),然后更新状态矩阵的对角线G4(v0,v5,vlO,vl5)G5(vl,v6,vll,vl2)G6(v2,v7,v8,vl3)G7(v3,v4,v9,vl4)。这在图1中示出。G函数由8个相关步骤组成:a=a+b+(m_r(2i)^c_r(2i+1))d=(d^a)>>>16c=c+db=(b^c)>>>12a=a+b+(m_r(2i+1)^c_r(2i))d=(d^a)>>>8c=c+db=(b^c)>>>7其中m_r(2i)和m_r(2i+l)是每轮16个消息字输入中的两个消息字输入,而c_r(2i)和c_r(2i+l)是16个常数中的两个常数。列更新函数G0、G1、G2、G3是独立的,并且能并行地执行。在完成列更新之后,执行对角更新函数G4、G5、G6、G7。G4、G5、G6、G7也是完全独立的,并且能并行地被执行。G函数需要6次异或(XOR)、6次加法以及4次循环(ROTATE),如图2中所示。因此,由8个G函数组成的轮需要48次异或、48次加法以及32次循环,即每轮共需要128个操作。需要附加的28次异或,以用于初始化和终结。作为示例,BLAKE-512需要16轮以及16*128=2048+28=2076个操作。Skein算法是NISTSHA3安全散列标准中的五个余下的算法中的另一个算法。Skein由3个主函数混合(MIX)、置换(Permute)以及子密钥加法(Sub-Keyaddition)构成。混合函数仅对一对64位字使用三个数学操作,即异或(XOR)、循环(Rotate)和进位-传递加法。在图3中示出了示例性的混合函数。每个混合函数将两个64位输入相加以产生结果的第一64位,并将该加法结果与第二输入的循环版本进行异或以产生结果的第二64位。混合函数是128位宽,从而对于Skein-256而言每轮需要两个混合函数,对于Skein-512而言每轮需要四个混合函数,以及对于Skein-1024而言每轮需要八个混合函数。Skein算法的轮是256位、512位或1024位上的混合函数,然后是64位字的置换(Permute)。在第一轮之前以及在每四轮之后,存在72轮的混合/置换(MIX/PERMUTE)以及子密钥加法。具有4轮的Skein-256的图4是来自Skein散列函数族文档。附图简述本专利技术是通过示例说明的,而不仅局限于各个附图的图示,在附图中,类似的参考标号表示类似的元件,其中:图1示出Blake安全散列算法的部分。图2示出Blake安全散列算法的部分。图3示出Skein安全散列算法的部分。图4示出Skein安全散列算法的部分。图5示出示例性循环(ROTATE)和异或(XOR)指令的操作的示例性示图。图6示出示例性循环(ROTATE)和异或(XOR)指令的操作的另一示例性示图。图7(A)-(C)示出处理器中的循环(ROTATE)和异或(XOR)指令的执行的若干不同实施例。图8(A)-(C)示出用于处理循环(ROTATE)和异或(XOR)指令的方法的实施例。图9示出用于循环(ROTATE)和异或(XOR)指令的伪代码的实施例。图10是根据本专利技术的一个实施例的寄存器架构1000的框图。图11A是示出根据本专利技术的各实施例的示例性有序流水线和示例性的寄存器重命名的无序发布/执行流水线的框图。图11B是示出根据本专利技术的各实施例的要包括在处理器中的有序架构核的示例性实施例和示例性的寄存器重命名的无序发布/执行架构核的框图。图12A-B示出了更具体的示例性有序核架构的框图,该核将是芯片中的若干逻辑块之一(包括相同类型和/或不同类型的其它核)。图13是根据本专利技术的各实施例可能具有一个以上核、可能具有集成存储器控制器、以及可能具有集成图形器件的处理器1300的框图。图14-17是示例性计算机架构的框图。图18是根据本专利技术的各实施例的对照使用软件指令转换器将源指令集中的二进制指令转换成目标指令集中的二进制指令的框图。详细描述在以下描述中,陈述了多个具体细节。然而,应当理解的是,可不通过这些具体细节来实施本专利技术的实施例。在其它实例中,未详细示出公知的电路、结构以及技术,以免模糊对本描述的理解。说明书中对“一个实施例”、“实施例”、“示例实施例”等等的引用表示所描述的实施例可包括特定特征、结构或特性,但是,每一个实施例可以不一定包括该特定特征、结构,或特性。此外,这些短语不一定表示同一实施例。此外,当结合实施例描述特定的特征、结构或特性时,认为本领域普通技术人员能够知晓结合其它实施例来实现这种特征、结构或特性,无论是否明确描述。诸如SHA1/2之类的现有的密码散列算法也使用循环(rotate)和异或(XOR)操作以及Blake和Skein散列算法,并且将受益于专用的循环和异或指令。将异或和循环操作组合的整数指令会将G函数中的操作数量减少4(从16减少到12),或者说节省25%。考虑在这些类型的散列函数中将操作串行化,则由于异或-循环操作在数据处理的关键路径上,性能增益会更大。利用整数IA指令来处理Skein-512的4轮需要16次加法、16次循环、16次异或以及12次子密钥加法(每4轮需要4次加法以得出子密钥以及8次加法以更新状态),共60个指令。将循环和异或操作组合的指令将会将该总数减少至44,或节省36%。图5示出示例性的循环和异或指令的操作的示例性示图。在该示图中,存在两个8位源寄存器(SRC1501和SRC2503)。为了容易理解,将这些寄存器的内容示为SRC1501中的十六进制值xAB和SRC2503中的xB0。如将在下文中详细讨论,本专利技术的实施例不限于8位源,并且他们可与任何源尺寸一起使用(包括但不限于8位、16位、32位、64位、128位等等)。在该示例中,利用异或逻辑505对两个源501、503进行异或(XOR)操本文档来自技高网...
用于响应于单个指令来执行循环和异或的系统、装置和方法

【技术保护点】
一种在计算机处理器中响应于单个异或和循环指令来执行循环和异或的方法,其中所述循环和异或指令包括第一和第二源操作数、目的地操作数、操作码以及立即数值,所述方法包括以下步骤:执行所述单个循环和异或指令以执行第一模式和第二模式之一,其中在所述第一模式中,执行导致对所述第一和第二源操作数的值进行异或以生成经异或的值,然后将所述经异或的值循环X个位位置,而在所述第二模式中,执行导致将所述第一源操作数的值循环X个位位置,并将经循环的值与来自所述第二源操作数的值进行异或;以及将来自所述第一模式或第二模式的结果存储到与所述目的地操作数相关联的目的地位置中。

【技术特征摘要】
【国外来华专利技术】2012.09.28 US 13/631,2421.一种在计算机处理器中执行的方法,所述方法包括:解码指令,其中所述指令包括第一和第二源操作数、目的地操作数、操作码以及立即数;以及执行经解码的所述指令以执行第一模式和第二模式之一,其中在所述第一模式中,所述执行导致对所述第一和第二源操作数的值进行异或以生成经异或的值,然后将所述经异或的值循环X个位位置,而在所述第二模式中,所述执行导致将所述第一源操作数的值循环X个位位置,并将所述第一源操作数的经循环的值与来自所述第二源操作数的值进行异或;以及将来自所述第一模式或第二模式的结果存储到与所述目的地操作数相关联的目的地位置中。2.如权利要求1所述的方法,其特征在于,所述X个位位置是所述立即数的多个位的十进制值。3.如权利要求2所述的方法,其特征在于,所述立即数的所述多个位是所述立即数的六个最低有效位。4.如权利要求1所述的方法,其特征在于,所述循环是向左循环。5.如权利要求1所述的方法,其特征在于,所述指令是Skein散列算法的部分。6.如权利要求1所述的方法,其特征在于,所述指令是Blake散列算法的部分。7.如权利要求1所述的方法,其特征在于,所述第一和第二源操作数各自与寄存器相关联,并且寄存器尺寸是8位、16位、32位或64位之一。8.如权利要求1所述的方法,其特征在于,进一步包括:基于所述立即数的位的值,确定要执行所述第一模式和所述第二模式中的哪一个。9.一种计算机系统,包括:一个或多个处理器,所述一个或多个处理器包括一个或多个处理器核,至少一个处理器核包括:硬件解码器,用于解码指令,其中所述指令包括第一和第二源操作数、目的地操作数、立即数以及操作码,以及执行逻辑单元,用于在第一模式和第二模式之一下执行经解码的所述指令,其中在所述第一模式中,所述执行导致对所述第一和第二源操作数的值进行异或以生成经异或的值,然后将所述经异或的值循环X个位位置,而在所述第二模式中,所述执行导致将所述第一源操作数的值循环X个位位置,并将所述第一源操作数的经循环的值与来自所述第二源操作数的值进行异或;以及将来自所述第一模式或第二模式的结果...

【专利技术属性】
技术研发人员:V·戈帕尔G·M·沃尔里齐J·D·吉尔福德K·S·雅普
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1