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

蒙哥马利乘法处理器、方法、系统和指令技术方案

技术编号:18349809 阅读:27 留言:0更新日期:2018-07-01 22:36
一个方面的处理器包含多个寄存器以及用来对指令进行解码的解码单元。指令要指示要存储第一整数、第二整数和模数的至少一个存储位置。运行单元与解码单元耦合并且与多个寄存器耦合。运行单元响应于指令而要将与第一整数、第二整数和模数对应的蒙哥马利乘法乘积存储在目标存储位置中。公开其他处理器、方法、系统和指令。

【技术实现步骤摘要】
蒙哥马利乘法处理器、方法、系统和指令
本文所述的实施例一般涉及处理器。更具体来说,本文所述的实施例一般涉及在处理器中执行蒙哥马利乘法。
技术介绍
密码术广泛地用来帮助保护数据和/或通信的保密性和完整性。两种常用类型的密码术是对称密钥密码术和不对称或公有密钥密码术。对称密钥密码术使用单一类型的密钥。同一密钥用来对数据进行加密以及对数据进行解密。同一密钥还用来生成数字签名以及检验数字签名。相比之下,公钥密码术使用两种不同类型的密钥。密钥中的一个是秘密或私有的,而其他密钥是公开可用的。所谓的公有和私有密钥用于不同和互补目的。例如,公有密钥可用来加密数据,而私有密钥可用来对加密数据进行解密。作为另一个示例,私有密钥可用来生成数字签名,而公有密钥可用来检验数字签名。各种类型的公有密钥密码术算法在本领域中是已知的。一种当前广泛使用的公有密钥密码算法是RSA算法(以其作者Rivest、Shamir、Adleman命名)。另一种公有密钥密码术算法是数字签名算法(DSA)算法。又一种公有密钥密码术算法是迪菲-赫尔曼密钥交换算法,其有时称作迪菲-赫尔曼或者简单地称作D-H。这类公有密钥密码术算法在因特网和其他网络通信中广泛地用来帮助建立安全信道、安全交换密钥以及交换和检验证书等。本专利技术提供一组技术方案,如下。1.一种处理器,包括:多个寄存器;解码单元,用来对指令进行解码,所述指令用来指示要存储第一整数、第二整数和模数的至少一个存储位置;以及运行单元,与所述解码单元耦合并且与所述多个寄存器耦合,所述运行单元响应于所述指令而用来将与所述第一整数、所述第二整数和所述模数对应的蒙哥马利乘法乘积存储在目标存储位置中。2.如技术方案1所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令要指示所述多个寄存器的寄存器,所述寄存器要存储存储器地址信息,以识别存储器中要存储所述第一整数和所述第二整数的至少一个的存储位置。3.如技术方案2所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令要隐式指示所述目标存储位置要是所述存储器中的所述存储位置,在所述目标存储位置处要存储所述蒙哥马利乘法乘积,并且其中所述运行单元响应于所述指令而在所述第一整数和所述第二整数的所述整数之上存储所述蒙哥马利乘法乘积。4.如技术方案2所述的处理器,其中,所述第一整数、所述第二整数和所述模数要存储在所述存储器的所述存储位置中。5.如技术方案1所述的处理器,其中,所述解码单元要对要指示所述模数的大小的所述指令进行解码。6.如技术方案5所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令要具有要将所述模数的所述大小指示为固定位长度段的数量的立即数,每个固定位长度段要具有作为8位、16位、32位、64位、128位和256位中的一个的以位为单位的大小。7.如技术方案5所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令操作以将所述模数的所述大小指示为从至少1024位变动到至少8192位。8.如技术方案7所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令操作以将所述模数的所述大小指示为变动到至少16384位。9.如技术方案1所述的处理器,其中,所述运行单元响应于所述指令而要:计算第一蒙哥马利乘法常数,其要等于以二的所述处理器的字大小次方取模的所述模数的负倒数;以及使用所述第一蒙哥马利乘法常数来计算所述蒙哥马利乘法乘积。10.如技术方案9所述的处理器,其中,所述运行单元响应于所述指令而要:尝试以定位所述处理器的存储位置中的所述第一蒙哥马利乘法常数;当所述第一蒙哥马利乘法常数没有存储在所述存储位置中时确定以计算所述第一蒙哥马利乘法常数;以及将所计算的第一蒙哥马利乘法常数存储在所述存储位置中。11.如技术方案9所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令对于所述处理器的字大小是不可知的。12.如技术方案1所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令要指示要等于以二的所述处理器的字大小次方取模的所述模数的负倒数的第一蒙哥马利乘法常数。13.如技术方案12所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令要指示要存储所述第一蒙哥马利乘法常数的所述多个寄存器的寄存器。14.如技术方案12所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令要指示所述多个寄存器的寄存器,所述寄存器要存储存储器地址信息,以识别存储器中要存储第一蒙哥马利乘法常数连同所述第一整数、所述第二整数和所述模数的至少一个的存储位置。15.如技术方案12所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令要具有隐式64位字大小,并且其中所述运行单元要执行具有所述64位字大小的所述指令。16.如技术方案12所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令要具有隐式32位字大小,并且其中所述运行单元要执行具有所述32位字大小的所述指令。17.如技术方案1所述的处理器,其中,所述运行单元响应于所述指令而要存储要等于以所述模数对所述第一和第二整数的乘积除以第二蒙哥马利乘法常数的商取模的所述蒙哥马利乘法乘积,其中所述第二蒙哥马利乘法常数要等于以所述模数对二的所述模数的以位为单位的大小次方取模。18.一种由处理器所执行的方法,包括:在所述处理器处接收指令,所述指令指示存储第一整数、第二整数和模数的至少一个存储位置;以及响应于所述指令而将与所述第一整数、所述第二整数和所述模数对应的蒙哥马利乘法乘积存储在目标存储位置中。19.如技术方案18所述的方法,其中,所述接收包括接收所述指令,所述指令指示存储识别存储器中存储所述第一整数和所述第二整数的至少一个的存储位置的存储器地址信息的寄存器,并且隐式指示所述目标存储位置要是所述存储器中的所述存储位置,在所述目标存储位置处要存储所述蒙哥马利乘法乘积,并且其中所述存储包括在所述第一整数和所述第二整数的所述整数之上存储所述蒙哥马利乘法乘积。20.如技术方案18所述的方法,其中所述接收包括接收指示所述模数的大小的所述指令。21.一种用来处理指令的系统,包括:互连;动态随机存取存储器(DRAM),与所述互连耦合;以及处理器,与所述互连耦合,所述处理器用来接收指令,所述指令要指示要存储第一整数、第二整数和模数的至少一个存储位置,所述处理器响应于所述指令而将与所述第一整数、所述第二整数和所述模数对应的蒙哥马利乘法乘积存储在目标存储位置中。22.如技术方案21所述的系统,其中所述指令要指示第一蒙哥马利乘法常数,其要等于以二的所述处理器的字大小次方取模的所述模数的负倒数。23.一种制造物品,包括非暂时机器可读存储媒介,所述非暂时机器可读存储媒介存储包含第一指令的多个指令,所述第一指令如果由机器运行则要使所述机器执行操作包括:从要由所述第一指令指示的至少一个存储位置访问第一整数、第二整数和模数;以及将与所述第一整数、所述第二整数和所述模数对应的蒙哥马利乘法乘积存储在所述第一指令的目标存储位置中。24.如技术方案23所述的制造物品,所述第一指令如果由所述机器运行则要使所述机器执行操作包括用来计算第一蒙哥马利乘法常数,其要等于以二的所述处理器的字大小次方取模的所述模数的负本文档来自技高网...
蒙哥马利乘法处理器、方法、系统和指令

【技术保护点】
1.一种处理器,包括:多个寄存器;解码单元,用来对指令进行解码,所述指令用来指示要存储第一整数、第二整数和模数的至少一个存储位置;以及运行单元,与所述解码单元耦合并且与所述多个寄存器耦合,所述运行单元响应于所述指令而用来将与所述第一整数、所述第二整数和所述模数对应的蒙哥马利乘法乘积存储在目标存储位置中。

【技术特征摘要】
2016.12.22 US 15/3886421.一种处理器,包括:多个寄存器;解码单元,用来对指令进行解码,所述指令用来指示要存储第一整数、第二整数和模数的至少一个存储位置;以及运行单元,与所述解码单元耦合并且与所述多个寄存器耦合,所述运行单元响应于所述指令而用来将与所述第一整数、所述第二整数和所述模数对应的蒙哥马利乘法乘积存储在目标存储位置中。2.如权利要求1所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令要指示所述多个寄存器的寄存器,所述寄存器要存储存储器地址信息,以识别存储器中要存储所述第一整数和所述第二整数的至少一个的存储位置。3.如权利要求2所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令要隐式指示所述目标存储位置要是所述存储器中的所述存储位置,在所述目标存储位置处要存储所述蒙哥马利乘法乘积,并且其中所述运行单元响应于所述指令而在所述第一整数和所述第二整数的所述整数之上存储所述蒙哥马利乘法乘积。4.如权利要求2所述的处理器,其中,所述第一整数、所述第二整数和所述模数要存储在所述存储器的所述存储位置中。5.如权利要求1所述的处理器,其中,所述解码单元要对要指示所述模数的大小的所述指令进行解码。6.如权利要求5所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令要具有要将所述模数的所述大小指示为固定位长度段的数量的立即数,每个固定位长度段要具有作为8位、16位、32位、64位、128位和256位中的一个的以位为单位的大小。7.如权利要求5所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令操作以将所述模数的所述大小指示为从至少1024位变动到至少8192位。8.如权利要求7所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令操作以将所述模数的所述大小指示为变动到至少16384位。9.如权利要求1至8中的任一项所述的处理器,其中,所述运行单元响应于所述指令而要:计算第一蒙哥马利乘法常数,其要等于以二的所述处理器的字大小次方取模的所述模数的负倒数;以及使用所述第一蒙哥马利乘法常数来计算所述蒙哥马利乘法乘积。10.如权利要求9所述的处理器,其中,所述运行单元响应于所述指令而要:尝试以定位所述处理器的存储位置中的所述第一蒙哥马利乘法常数;当所述第一蒙哥马利乘法常数没有存储在所述存储位置中时确定以计算所述第一蒙哥马利乘法常数;以及将所计算的第一蒙哥马利乘法常数存储在所述存储位置中。11.如权利要求9所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令对于所述处理器的字大小是不可知的。12.如权利要求1至8中的任一项所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令要指示要等于以二的所述处理器的字大小次方取模的所述模数的负倒数的第一蒙哥马利乘法常数。13.如权利要求12所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令要指示要存储所述第一蒙哥马利乘法常数的所述多个寄存器的寄存器。14.如权利要求12所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令要指示所述多个寄存器的寄存器,所述寄存器要存储存储器地址信息,以识别存储器中要存储第一蒙哥马利乘法常数连同所述第一整数、所述第二整数和所述模数的至少一个的存储位置。15.如权利要求12所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令要具有隐式64位字大小,并且其中所述运行单元要执行具有所述64位字大小的所述指令。16.如权利要求12所述的处理器,其中,所述解码单元要对所述指令进行解码,所述指令要具有隐式32位字大小,并且其中所述运行单元要执行具有所述32位字大小的所述指令。17.如权利要求1至8中的任一项所述的处理器,其中,所述运行单元响应于所述指令而要存储要等于以所述模数对所述第一和第二整数的乘积除以第二蒙哥马利乘法常数的商取模的所述蒙哥马利乘法乘积,其中所述第二蒙哥马利乘法常数要等于以所述模数对二的所述模数的以位为单位的大...

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

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

1