一种加速器、加速方法和电子设备技术

技术编号:33706847 阅读:12 留言:0更新日期:2022-06-06 08:31
本申请提出一种加速器、加速方法和电子设备。所述加速器包括计算单元;所述计算单元包括由基础运算逻辑构成的通用运算逻辑;所述通用运算逻辑响应于不同的输入,实现不同运算类型的运算。所述加速器还包括:获取单元,获取根据待实现的目标类型运算,生成的目标微码指令;所述目标微码指令用于指示使所述通用运算逻辑实现所述目标类型运算所需的目标输入数据;解析单元,解析所述目标微码指令,得到与所述目标输入数据对应的解析结果;控制单元,响应于所述解析结果控制所述计算单元,以使所述计算单元获取所述目标输入数据并基于所述目标输入数据运行所述通用运算逻辑,完成所述目标类型运算。由此降低了对加速器的配置难度,节省硬件资源。节省硬件资源。节省硬件资源。

【技术实现步骤摘要】
一种加速器、加速方法和电子设备


[0001]本申请涉及计算机技术,具体涉及一种加速器、加速方法和电子设备。

技术介绍

[0002]ECC(Elliptic Curves Cryptography,椭圆曲线加密)是一种主流的非对称密码算法,被广泛应用在很多安全领域,比如安全传输、密钥交换、数字签名、隐私计算、安全多方计算等。ECC算法包括点乘,模加,模乘,模减等运算。其中点乘运算可以由若干次的模加,模乘,模减等实现。目前通过加速器实现ECC算法。
[0003]相关技术一,通过状态机严格控制加速器的各个计算环节,实现特定的计算流程以实现特定的功能,由于状态机的控制和修改比较繁琐,导致这些加速器只能实现特定的功能,使用不够灵活。
[0004]相关技术二,通过不同的指令调用加速器中不同的计算单元分别实现点乘、模乘、模加等运算,如此导致硬件资源的浪费。

技术实现思路

[0005]有鉴于此,本申请至少公开一种加速器。所述加速器包括用于实现与椭圆曲线算法相关的运算的计算单元;其中,所述计算单元包括由基础运算逻辑构成的通用运算逻辑;所述通用运算逻辑响应于不同的输入,实现不同运算类型的所述运算;所述加速器还包括:获取单元,获取根据待实现的目标类型运算,生成的与所述目标类型运算对应的目标微码指令;所述目标微码指令用于指示使所述通用运算逻辑实现所述目标类型运算所需的目标输入数据;解析单元,解析所述目标微码指令,得到与所述目标输入数据对应的解析结果;控制单元,响应于所述解析结果控制所述计算单元,以使所述计算单元获取所述目标输入数据并基于所述目标输入数据运行所述通用运算逻辑,完成所述目标类型运算。
[0006]在一些实施例中,所述加速器与处理器CPU通信连接;所述加速器或所述CPU,用于:获取针对操作数执行目标类型运算的操作程序;根据所述目标类型运算,基于所述操作程序包括的操作数,生成与所述目标类型运算对应的所述目标微码指令。
[0007]在一些实施例中,所述加速器还包括预设的数据存储空间;所述数据存储空间存储了用于生成微码指令的预设操作数;所述加速器或所述CPU还用于:将解析得到的所述操作数存储至所述数据存储空间;根据所述目标类型运算,基于所述操作数和/或所述预设操作数在所述数据存储空间的存储地址,生成所述目标微码指令。
[0008]在一些实施例中,所述解析结果包括所述目标输入数据的存储地址;所述控制单元,根据所述存储地址,控制所述计算单元从所述数据存储空间读取所述目标输入数据并基于所述目标输入数据执行所述目标类型的运算。
[0009]所述基础运算包括模加运算和模乘运算,所述通用运算逻辑为对两次模加运算的计算结果进行模乘。
[0010]在一些实施例中,所述通用运算逻辑所需的输入包括第一输入,第二输入,第三输
入与第四输入;所述通用运算逻辑运算过程包括:对所述第一输入与所述第二输入进行模加运算,得到第一模加结果;对所述第三输入与所述第四输入进行模加运算,得到第二模加结果;对所述第一模加结果与所述第二模加结果进行模乘运算,得到最终计算结果。
[0011]在一些实施例中,所述操作数包括第一操作数与第二操作数;所述加速器或所述CPU,进一步:响应于所述目标类型运算为对所述第一操作数与第二操作数进行模加运算,将所述第一输入置为所述第一操作数,将所述第二输入置为所述第二操作数,将所述第三输入置为1,将所述第四输入置为0;响应于所述目标类型运算为对所述第一操作数与第二操作数进行模减运算,将所述第一输入置为所述第一操作数,将所述第二输入置为所述第二操作数并将所述第二输入对应的符号调整为负号,将所述第三输入置为1,将所述第四输入置为0;响应于所述目标类型运算为对所述第一操作数与第二操作数进行模乘运算,将所述第一输入置为所述第一五操作数,将所述第三输入置为所述第二操作数,将所述第二输入和所述第四输入置为0;响应于所述目标类型运算为对所述第一操作数与第二操作数进行模加的平方运算,将所述第一输入和所述第三输入置为所述第一操作数,将所述第二输入和所述第四输入置为所述第二操作数;根据所述第一输入,第二输入,第三输入与第四输入,生成所述目标微码指令。
[0012]在一些实施例中,所述操作程序还包括点乘标量;所述目标类型运算为对所述点乘标量和所述操作数进行点乘运算;所述加速器或所述CPU,进一步:根据所述操作程序包括的所述点乘标量和操作数,生成用于实现所述点乘运算的多条目标微码指令;所述加速器,进一步:控制所述计算单元执行所述多条目标微码指令中的每一目标微码指令,以完成所述点乘运算。
[0013]在一些实施例中,所述模乘运算包含第一类型的模乘运算与第二类型的模乘运算;所述加速器还包括预设的数据存储空间;所述数据存储空间存储了预设常数;所述预设常数用于第一数据域和第二数据域之间的相互转变;所述第一数据域用于所述第一类型的模乘运算;所述第二数据域用于所述第二类型的模乘运算;所述计算单元,响应于所述模乘运算由所述第一类型转变为所述第二类型,获取所述预设常数,并根据所述预设常数,将所述第一数据域转换为所述第二数据域以实现所述第二类型的模乘运算;响应于所述模乘运算由所述第二类型转变为所述第一类型,获取所述预设常数,并根据所述预设常数,将所述第二数据域转换为所述第一数据域以实现所述第一类型的模乘运算。
[0014]在一些实施例中,所述控制单元包括断点子单元;所述断点子单元,响应于接收到中断指令,中断所述计算单元执行后续微码指令,以使与所述加速器对应的调试单元获取所述计算单元的计算结果,并输出所述计算结果与预设计算结果的比较结果。
[0015]在一些实施例中,所述加速器为基于FPGA或ASIC实现的用于椭圆曲线算法加速的协处理器;或,基于CPU实现的用于针对所述椭圆曲线算法进行算法加速的辅助加速模块。
[0016]本申请还提出一种加速方法,应用于加速器。所述加速器包括用于实现与椭圆曲线算法相关的运算的计算单元;其中,所述计算单元包括由基础运算逻辑构成的通用运算逻辑;所述通用运算逻辑响应于不同的输入,实现不同运算类型的所述运算;所述方法包括:获取根据待实现的目标类型运算,生成的与所述目标类型运算对应的目标微码指令;所述目标微码指令用于指示使所述通用运算逻辑实现所述目标类型运算所需的目标输入数据;解析所述目标微码指令,得到与所述目标输入数据对应的解析结果;响应于所述解析结
果控制所述计算单元,以使所述计算单元获取所述目标输入数据并基于所述目标输入数据运行所述通用运算逻辑,完成所述目标类型运算。
[0017]本申请还提出一种电子设备,所述电子设备包括如前述任一实施例示出的加速器。
[0018]前述方法中,第一,可以通过根据待实现的目标类型运算,生成目标微码指令,并根据目标微码指令没完成对计算单元内通用运算逻辑实现目标类型运算所需的输入的相关配置,以使加速器完成所述目标类型运算,与相关技术一相比,可以通过变更微码指令的方式可以使加速器实现不同类型运算,简化了对加速器的配置操作本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种加速器,其特征在于,所述加速器包括用于实现与椭圆曲线算法相关的运算的计算单元;其中,所述计算单元包括由基础运算逻辑构成的通用运算逻辑;所述通用运算逻辑响应于不同的输入,实现不同运算类型的所述运算;所述加速器还包括:获取单元,获取根据待实现的目标类型运算,生成的目标微码指令;所述目标微码指令用于指示使所述通用运算逻辑实现所述目标类型运算所需的目标输入数据;解析单元,解析所述目标微码指令,得到与所述目标输入数据对应的解析结果;控制单元,响应于所述解析结果控制所述计算单元,以使所述计算单元获取所述目标输入数据并基于所述目标输入数据运行所述通用运算逻辑,完成所述目标类型运算。2.根据权利要求1所述的加速器,其特征在于,所述加速器与处理器CPU通信连接;所述加速器或所述CPU,用于:获取针对操作数执行目标类型运算的操作程序;根据所述目标类型运算,基于所述操作程序包括的操作数,生成与所述目标类型运算对应的所述目标微码指令。3.根据权利要求2所述的加速器,其特征在于,所述加速器还包括预设的数据存储空间;所述数据存储空间存储了用于生成微码指令的预设操作数;所述加速器或所述CPU还用于:将解析得到的所述操作数存储至所述数据存储空间;根据所述目标类型运算,基于所述操作数和/或所述预设操作数在所述数据存储空间的存储地址,生成所述目标微码指令。4.根据权利要求3所述的加速器,其特征在于,所述解析结果包括所述目标输入数据的存储地址;所述控制单元,根据所述存储地址,控制所述计算单元从所述数据存储空间读取所述目标输入数据并基于所述目标输入数据执行所述目标类型的运算。5.根据权利要求1

4任一所述的加速器,其特征在于,所述基础运算包括模加运算和模乘运算,所述通用运算逻辑为对两次模加运算的计算结果进行模乘。6.根据权利要求5所述的加速器,其特征在于,所述通用运算逻辑所需的输入包括第一输入,第二输入,第三输入与第四输入;所述通用运算逻辑运算过程包括:对所述第一输入与所述第二输入进行模加运算,得到第一模加结果;对所述第三输入与所述第四输入进行模加运算,得到第二模加结果;对所述第一模加结果与所述第二模加结果进行模乘运算,得到最终计算结果。7.根据权利要求6所述的加速器,其特征在于,所述操作数包括第一操作数与第二操作数;所述加速器或所述CPU,进一步:响应于所述目标类型运算为对所述第一操作数与第二操作数进行模加运算,将所述第一输入置为所述第一操作数,将所述第二输入置为所述第二操作数,将所述第三输入置为1,将所述第四输入置为0;响应于所述目标类型运算为对所述第一操作数与第二操作数进行模减运算,将所述第一输入置为所述第一操作数,将所述第二输入置为所述第二操作数并将所述第二输入对应
的符号调整为负号,将所述第三输入置为1,将所述第四输入置为0;响应于所述目标类型运算为对所述第一操作数与第二操作数进行模乘运算,将所述第一输入置为所述第一五操作...

【专利技术属性】
技术研发人员:何倩雯邬贵明蒋佳立张振祥龙欣
申请(专利权)人:阿里巴巴中国有限公司
类型:发明
国别省市:

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

1