当前位置: 首页 > 专利查询>ARM有限公司专利>正文

密码算法中用于支持散列值生成的SIMD指令制造技术

技术编号:10215831 阅读:192 留言:0更新日期:2014-07-16 11:14
数据处理系统(2)包括单一指令多重数据寄存器文件(12)及单一指令多重处理电路(14)。单一指令多重数据处理电路(14)支持用于执行散列算法的部分的密码处理指令的执行。操作数存储在单一指令多重数据寄存器文件(12)内。支持密码的指令不遵循一般基于通道的处理且产生输出操作数,在这些输出操作数中,输出操作数的不同部分取决于在输入操作数内的多个不同元素。

【技术实现步骤摘要】
【国外来华专利技术】【专利摘要】数据处理系统(2)包括单一指令多重数据寄存器文件(12)及单一指令多重处理电路(14)。单一指令多重数据处理电路(14)支持用于执行散列算法的部分的密码处理指令的执行。操作数存储在单一指令多重数据寄存器文件(12)内。支持密码的指令不遵循一般基于通道的处理且产生输出操作数,在这些输出操作数中,输出操作数的不同部分取决于在输入操作数内的多个不同元素。【专利说明】密码算法中用于支持散列值生成的SIMD指令
本专利技术关于数据处理系统领域。更具体地,本专利技术关于在数据处理系统内提供支持密码的指令。
技术介绍
使用数据处理系统执行密码操作是为人们已知的。这种已知密码处理操作的实例包括安全散列算法(Secure Hash Algorithm ;SHA)。SHA具有各种不同已知形式,包括SHA-1、SHA-2、SHA256及SHA512。这些算法是运算密集的算法。一种支持这些算法的已知方法是使用通用处理器,该通用处理器利用该通用处理器的通用寄存器文件(register file)执行通用指令。此方法的一个问题在于执行这些算法必须操纵大量状态数据(通常可产生160位及160位以上的散列值),结果是操作通常必须被分解并且每次由对数据的部分进行操作的单独程序指令的长序列执行,进而导致执行算法所需的时间量及执行算法时消耗的能量的不利增加。另一已知方法是提供专用支持密码的处理器,诸如密码共处理器,该密码共处理器具有专用电路,该专用电路用于执行该算法且通常通过传递待散列的数据的开始的指针且然后等待接收所得散列值而启动。此方法之问题在于:提供专用密码硬件产生了额外成本及复杂性。此外,在将专用硬件的操作与装置的其他操作整合时会产生问题,诸如中断处理、多任务等等,因为将专用密码硬件并入通常在数据处理系统内提供的机制中以使用数据处理系统处理操作的这些方面非常困难且复杂。
技术实现思路
自一个方面而言,本专利技术提供一种数据处理设备,该数据处理设备包含:单一指令多重数据寄存器文件;及单一指令多重数据处理电路,该单一指令多重数据处理电路耦接至该单一指令多重数据寄存器文件且被配置为由单一指令多重数据程序指令控制,以独立地对存储在单独通道内的单独数据元素执行处理操作,该单独通道在该单一指令多重数据寄存器文件的输入操作数寄存器内;其中该单一指令多重数据处理电路被配置为由另外的程序指令控制,以对向量数据值执行另外的处理操作,该向量数据值包含保持在该单一指令多重数据寄存器文件的输入操作数寄存器内的数据元素序列,以产生存储在该单一指令多重数据寄存器文件的输出操作数寄存器内的输出操作数,该输出操作数具有含有值的第一部分,该值取决于在该数据元素序列内的所有数据元素。本专利技术技术认识到,许多数据处理系统已具备单一指令多重数据处理机制。这些单一指令多重数据处理机制通常包括单一指令多重数据寄存器文件,该单一指令多重数据寄存器文件具有能够存储且操纵大数据宽度操作数的大存储容量,这些大数据宽度操作数通常在单一指令多重数据处理中涉及。在单一指令多重数据处理中,通常在单一程序指令控制下独立地处理数据的单独通道。例如,数据的单独通道可包含色彩像素值或其他向量值的分量值,所有这些值皆将经受相同处理操作,诸如缩放。本专利技术技术认识到,单一指令多重数据寄存器文件的存储能力可利用另外的程序指令重复使用,该另外的程序指令不遵循单一指令多重数据程序指令的通常形式。特定言之,通道的处理不必为独立的,且产生的输出操作数可具有含有值的第一部分,该值取决于在形成输入的向量数据值内的所有数据元素。在单一指令多重数据程序指令的区域外的单一指令多重寄存器文件的重复使用可应用于各种领域,诸如数据压缩及数据密码术。本技术尤其非常适合于数据密码术。在此上下文中,另外的程序指令可经安排以执行迭代处理操作,该迭代处理操作消耗连续的数据字及至少部分中间散列值以产生输出散列值。散列值产生通常需要操纵大量的数据及寄存器文件,同时具有存储及操纵非常长的操作数值的能力。另外的程序指令的一个形式为其中该另外的程序指令具有自该单一指令多重数据寄存器文件读取的第一输入操作数Qd及第二输入操作数Sn两者,且该向量数据值包含Vm,其中Index为O至2N,其中N为正整数,该另外的处理操作产生该输出操作数Qdratput ,以具有与由以下步骤给出的值相同的值:【权利要求】1.一种数据处理设备,该数据处理设备包含: 单一指令多重数据寄存器文件;及 单一指令多重数据处理电路,该单一指令多重数据处理电路耦接至该单一指令多重数据寄存器文件且被配置为由单一指令多重数据程序指令控制,以独立地对存储在单独通道内的单独数据元素执行处理操作,该单独通道在该单一指令多重数据寄存器文件的输入操作数寄存器内;其中 该单一指令多重数据处理电路被配置为由另外的程序指令控制,以对向量数据值执行另外的处理操作,该向 量数据值包含保持在该单一指令多重数据寄存器文件的输入操作数寄存器内的数据元素序列,以产生存储在该单一指令多重数据寄存器文件的输出操作数寄存器内的输出操作数,该输出操作数具有含有值的第一部分,该值取决于在该数据元素序列内的所有数据元素。2.如权利要求1所述的数据处理设备,其中该另外的程序指令为密码程序指令,该密码程序指令操作以依赖于形成该向量数据值的数据的多个字产生作为该输出操作数的输出散列值。3.如权利要求2所述的数据处理设备,其中该另外的程序指令执行迭代处理操作,该迭代处理操作消耗连续数据字及至少部分中间散列值以产生该输出散列值。4.如权利要求1、2和3中任一项所述的数据处理设备,其中该另外的程序指令具有自该单一指令多重数据寄存器文件读取的第一输入操作数Qd及第二输入操作数Sn 两者,且该向量数据值包含Vm,其中Index为O至2N,其中N为正整数,该另外的处理操作产生该输出操作数QcLtput,以具有与由以下步骤给出的值相同的值: 5.如权利要求1、2和3中任一项所述的数据处理设备,其中该另外的程序指令具有自该单一指令多重数据寄存器文件读取的第一输入操作数Qd及第二输入操作数Sn 两者,且该向量数据值包含Vm,其中Index为O至2N,其中N为正整数,该另外的处理操作产生该输出操作数QcLtput,以具有与由以下步骤给出的值相同的值: 6.如权利要求4和5中任一项所述的数据处理设备,其中该另外的程序指令包括选择以下其中之一作为OP FUNC(B, C,D)的字段:(((C XOR D)AND B)XOR D);(B XOR C XOR D);及(B AND C)OR((B OR C)AND D)。7.如权利要求4、5和6中任一项所述的数据处理设备,其中该第一输入操作数Qd及该第二输入操作数Sn读取自在该单一指令多重数据寄存器文件内的单独寄存器。8.如权利要求4、5和6中任一项所述的数据处理设备,其中该第一输入操作数Qd及该第二输入操作数Sn读取自在该单一指令多重数据寄存器文件内的共享寄存器。9.如权利要求1、2和3中任一项所述的数据处理设备,其中该另外的程序指令具有自该单一指令多重数据寄存器文件读取的第一输入操作数Qd及第二输入操作数Qn两者,且该向量数据值包含Vm,其中Index为O至2'其中N为正整数,该本文档来自技高网
...
密码算法中用于支持散列值生成的SIMD指令

【技术保护点】
一种数据处理设备,该数据处理设备包含:单一指令多重数据寄存器文件;及单一指令多重数据处理电路,该单一指令多重数据处理电路耦接至该单一指令多重数据寄存器文件且被配置为由单一指令多重数据程序指令控制,以独立地对存储在单独通道内的单独数据元素执行处理操作,该单独通道在该单一指令多重数据寄存器文件的输入操作数寄存器内;其中该单一指令多重数据处理电路被配置为由另外的程序指令控制,以对向量数据值执行另外的处理操作,该向量数据值包含保持在该单一指令多重数据寄存器文件的输入操作数寄存器内的数据元素序列,以产生存储在该单一指令多重数据寄存器文件的输出操作数寄存器内的输出操作数,该输出操作数具有含有值的第一部分,该值取决于在该数据元素序列内的所有数据元素。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:马修·詹姆斯·霍斯内尔理查德·罗伊·格里森思怀特丹尼尔·克尔肖斯图亚特·大卫·贝尔斯
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国;GB

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

1