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

用于计算多轮SKEIN散列算法的执行单元的设备和方法技术

技术编号:10462869 阅读:125 留言:0更新日期:2014-09-24 16:21
描述了一种包括指令流水线内的执行单元的设备。执行单元具有多级电路,包括如下的a)和b)。a)具有多个混合逻辑部分的第一逻辑电路部分,每一个逻辑部分都具有:i)接收第一四倍长字的第一输入和接收第二四倍长字的第二输入;ii)具有分别耦合到第一和第二输入的一对输入的加法器;iii)具有耦合到第二输入的相应的输入的旋转器;iv)具有耦合到加法器的输出的第一输入和耦合到旋转器的输出的第二输入的异或门。b)具有耦合到相应的加法器和多个混合逻辑部分的异或门输出的输入的置换逻辑电路。

【技术实现步骤摘要】
【国外来华专利技术】用于计算多轮SKEIN散列算法的执行单元的设备和方法 背景 专利
本专利技术一般涉及计算科学,更具体而言,涉及用于计算多轮Skein散列算法的执 行单元的设备和方法。 背景 图1示出了利用半导体芯片上的逻辑电路实现的处理核100的高级别图示。处理 核包括流水线101。流水线包括多级,每一级都被设计为在完全执行程序代码指令所需的多 步骤过程中执行特定的步骤。这些通常包括至少:1)指令获取和解码;2)数据获取;3)执 行;4)回写。执行级对由同一个指令所标识并在另一先前级(例如,上面的步骤2)获取的 数据执行由在先前级(例如,在上面的步骤1)中获取和解码的指令所标识的特定操作。被 操作的数据通常是从(通用)寄存器存储空间102获取的。在操作完成时创建的新的数据 也通常被写回到寄存器存储空间(例如,在上面的级4))。 与执行级相关联的逻辑电路通常由多个执行单元或功能单元 103_1到103_ N组成,它们各自被设计为执行其自己的唯一操作子集(例如,第一功能单元执行整数数学 操作,第二功能单元执行浮点指令,第三功能单元执行来自/向缓存/存储器的加载/存 储操作,等等)。由全部功能单元执行的全部操作的集合对应于由处理核1〇〇支持的指令 集。 在计算机科学领域,有两种类型的处理器体系结构:标量和矢量。标量处理 器被设计成执行那些对单个数据集执行操作的指令,而矢量处理器被设计成执行对多个数 据集执行操作的指令。图2A和2B呈现了演示了标量处理器和矢量处理器之间的基本区别 的比较示例。 图2A示出了标量AND(与)指令的示例,其中,单一操作数集,A和B,被相加在一 起,以产生单数(或标量)结果C( S卩,AB = C)。相比之下,图2B示出了矢量AND指令 的示例,其中,两个操作数集,A/B和D/E被分别并行地相加在一起,以同时产生矢量结果C, F( S卩,A. AND. B = C和D. AND. E = F)。作为术语,矢量是具有多个元素的数据元素。 例如,矢量V = Q,R,S,T,U具有五个不同的元素:Q,R,S,T和U。示例性矢量V的大小 是五(因为它具有五个元素)。 图1还示出了不同于通用寄存器空间102的矢量寄存器空间104的存在。具体而 言,通用寄存器空间102名义上用于存储标量值。如此,当执行单元中的任何一个执行标量 运算时,它们名义上使用从通用寄存器存储空间102调用的操作数(并将结果写回到)通 用寄存器存储空间102。相比之下,当执行单元中的任何一个执行矢量运算时,它们名义上 使用从矢量寄存器空间107调用的操作数(并将结果写回到)矢量寄存器空间107。存储 器的不同的区域同样可以被分配用于存储标量值和矢量值。 还请注意,在功能单元103_1到103_N的相应的输入和输出处存在掩码逻辑104_1 到104_N和105_1到105_N。在各实现中,实际实现这些层中的仅一个层--虽然这不是严 格的要求。对于使用掩码的任何指令,输入掩码逻辑1〇4_1到104_N和/或输出掩码逻辑 105_1到105_N可以被用来控制对于矢量指令,哪些元素被有效地操作。这里,从掩码寄存 器空间106中读取掩码矢量(例如,以及从矢量寄存器存储空间107中读取的输入数据矢 量),并被呈现给掩码逻辑104,105层中的至少一层。 在执行矢量程序代码的过程中,每一矢量指令都不必要求完全数据字。例如,一些 指令的输入矢量可以只是8个元素,其他指令的输入矢量可以是16个元素,其他指令的输 入矢量可以是32个元素,等等。因此,掩码层104/105用于标识完全矢量数据字中适用于 特定指令以便跨指令影响不同的矢量大小的一组元素。通常,对于每一个矢量指令,保留在 掩码寄存器空间106中的特定的掩码模式被指令调用,从掩码寄存器空间中获取,并被提 供给掩码层104/105中的任何一个或两者,以对于特定矢量运算,启用正确的元素集。 图3a到3d涉及Skein散列算法。图3a示出了 Skein散列算法300的示例性高级 别处理流程。通常,对64比特数据块的对执行Skein散列算法。每一个64比特数据块都 可被称为四倍长字(quadword) 。在图3a的示例性高级别处理流程中,输入301a到301h 对应于相应的四倍长字。即,在输入端301a呈现第一四倍长字,在输入端301b呈现第二四 倍长字,等等。 在Skein 256的情况下,向散列算法呈现256个输入比特(4个输入四倍长字)。在 Skein 512的情况下,向散列算法呈现输入512比特(8个输入四倍长字)。在Skein 1024 的情况下,向散列算法呈现1024个输入比特(16个输入四倍长字)。 图3a示出了 Skein 512算法的示例。如在图3a的观察到的示例中,对初始输入四 倍长字301a_h执行300第一子密钥(subkey)加法。子密钥加法是大小等于由向它呈现 的四倍长字所表示的值的数值的加法。例如,在Skein_512的情况下,使用八个四倍长字来 构建512比特值。如此,子密钥也是512个比特,并直接与由内部状态的八个四倍长字所表 示的值相加。子密钥的值,和/或其计算方法轻松地对那些精通本技术的人可用,这里不必 讨论。 根据图3a的流程图,轮(round)包括混合操作级302,后面跟着置换操 作级303。对四倍长字的对执行单个混合操作。如此,对于Skein-512,在混合操作级302 执行四个单个混合操作302a到302d,以构建512比特的内部状态。置换操作级303洗牌 (shuffle)混合操作的输出。在图3b中观察到Skein 512置换模式的示例(Skein-256和 Skein-1024具有它们自己的置换模式)。 四轮304a,304b,304c和304d的序列后面是另一子密钥加法305,并重复四轮后面 跟着子密钥加法的过程(例如,总共18次),直到计算预设的的总轮数(例如,总共72轮)。 图3c示出了混合操作。如在图3c中观察到的,将左边输入四倍长字310a与右 边输入四倍长字310b相加,以产生左边输出四倍长字311a。也旋转312右边输入四倍长 字310b。左边输出311a与旋转的右边输入四倍长字异或(X0R),以产生右边输出四倍长字 311b。应用于右边输入四倍长字310b的旋转量是执行的特定轮的函数,并且其中四倍长字 驻留在构成算法的内部状态(例如,对于Skein 512算法,512比特内部状态)的四倍长字 组中。图3d示出了用于确定旋转的方案的实施例。 附图简述 本专利技术是作为示例说明的,而不仅限制于各个附图的图形,在附图中,类似的参考 编号表示类似的元件,其中: 图1示出了指令执行流水线; 图2a和2b比较标量与矢量处理; 图3a到3d示出了 Skein散列算法的各方面; 图4a和4b示出了由用于计算多轮Skein散列算法的不同的执行单元执行的方 法; 图5a和5b示出了用于计算多轮Skein散列算法的不同的执行单元; 图6a和6b示出了用于计算多轮Skein散列算法的不同的目标代码序列; 图7a到7c示出了由用于计算多轮Skein散列算法的不同的执行单元执行的方 法; 图8a到8c示出了用于计算多轮Skein散列算法的不同的执行单元; 图本文档来自技高网...

【技术保护点】
一种设备,包括:指令流水线内的执行单元,所述执行单元具有多级下列电路:a)包括多个混合逻辑部分的第一逻辑电路部分,每一个混合逻辑部分都包括:i)接收第一四倍长字的第一输入和接收第二四倍长字的第二输入;ii)加法器,其具有分别耦合到所述第一和第二输入的一对输入;iii)旋转器,其具有耦合到所述第二输入的相应输入;iv)异或门,其具有耦合到所述加法器的输出的第一输入和耦合到所述旋转器的输出的第二输入;b)置换逻辑电路,其具有耦合到所述相应的加法器和所述多个混合逻辑部分的异或门输出的输入。

【技术特征摘要】
【国外来华专利技术】1. 一种设备,包括: 指令流水线内的执行单元,所述执行单元具有多级下列电路: a) 包括多个混合逻辑部分的第一逻辑电路部分,每一个混合逻辑部分都包括: i) 接收第一四倍长字的第一输入和接收第二四倍长字的第二输入; ii) 加法器,其具有分别耦合到所述第一和第二输入的一对输入; iii) 旋转器,其具有耦合到所述第二输入的相应输入; iv) 异或门,其具有耦合到所述加法器的输出的第一输入和耦合到所述旋转器的输出 的第二输入; b) 置换逻辑电路,其具有耦合到所述相应的加法器和所述多个混合逻辑部分的异或门 输出的输入。2. 如权利要求1所述的设备,其特征在于,所述执行单元进一步具有: ROM,其包含用于所述多个混合逻辑部分的所述旋转器的控制值。3. 如权利要求1所述的设备,其特征在于,所述Skein散列算法是Skein256散列算法。4. 如权利要求1所述的设备,其特征在于,所述Skein散列算法是Skein512散列算法。5. 如权利要求1所述的设备,其特征在于,所述Skein散列算法是Skeinl024散列算 法。6. 如权利要求1所述的设备,其特征在于,所述多轮是四轮。7. -种方法,包括: 通过在单个指令的所述执行期间执行下列操作,来通过所述单个指令的执行,计算多 轮Skein散列算法: 利用第一混合逻辑电路将第一和第二四倍长字相加以创建第一结果,以及将第三和第 四四倍长字相加以创建第二结果; 利用所述第一混合逻辑电路旋转所述第二四倍长字以创建第三结果,以及旋转所述第 四四倍长字以创建第四结果; 利用所述第一混合逻辑电路对所述第一结果和所述第三结果作异或操作以创建第五 结果,以及,对所述第二结果和所述第四结果作异或操作以创建第六结果;以及, 通过利用所述第一混合逻辑电路置换所述第一、第二、第五和第六结果,来创建新的第 一、第二、第三和第四四倍长字,以及,利用在所述第一混合逻辑电路下游的后续级第二混 合逻辑电路来对所述新的第一、第二,第三以及第四四倍长字执行所述加法、所述旋转和所 述异或。8. 如权利要求7所述的方法,其特征在于,还包括执行所述创建和所述重复多次,以使 得在利用所述第一混合逻辑电路、所述第二混合逻辑电路以及在所述第二混合逻辑电路下 游的第三和第四混合逻辑执行所述指令的过程中,对于相应的四倍长字执行所述加法、所 述旋转、所述异或四次。9. 如权利要求7所述的方法,其特征在于,还包括 利用与所述第一混合逻辑电路在相同级的第三混合逻辑电路,与所述第一和第二四倍 长字的所述加法以及所述第三和第四四倍长字的所述加法同时地,将第五和第六四倍长字 相加,并将第七和第八四倍长字相...

【专利技术属性】
技术研发人员:G·M·沃尔里齐K·S·雅普J·D·吉尔福德E·奥兹图科V·戈帕尔W·K·费格哈利S·M·格尔雷M·G·迪克森
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1