APP下载

龙芯处理器商用密码指令集运算性能分析

2023-10-19徐海波

数字通信世界 2023年9期
关键词:指令集龙芯商用

徐海波

(北京赛迪软件测评工程技术中心有限公司,北京 100048)

1 研究背景

2021年,龙芯中科技术股份有限公司(简称龙芯中科)官方发布了基于龙芯架构的新一代处理器龙芯3A 50 0 0的消息,“龙芯3A 50 0 0实现了自主性和安全性的深度融合。龙芯3A5000中包括处理器核心、内存控制器及相关PHY、高速IO接口控制器及相关PHY、锁相环、片内多端口寄存器堆等在内的所有模块均自主设计。龙芯3A5000处理器集成了安全可信模块,支持可信计算体系。龙芯3A5000内置了硬件加密模块,支持商用密码SM2/3/4及相关算法,其中SM3/4密码处理性能达到5 Gbps以上[1]。”

2 性能测试

针对此款处理器,为了验证其商用密码指令集运算性能,笔者第一时间拿到了成品及适配的主板等硬件,并在实验室开展了初步测试。为了比较该处理器在商用密码运算方面的性能,还选用了龙芯同期生产的3B5000处理器及市面上常见的英特尔处理器进行了比较。

在测试工程中,经向龙芯中科咨询得知,目前产品手册等白皮书还没有发布。由于该款处理器刚刚发布,各操作系统厂商与之适配的操作系统、编译器还在适配研制过程中,正式版尚未发布。因此此次测试尚未能检测商用密码算法通过处理器指令集的运算性能。

2.1 测试准备

测试共选取了8款处理器进行对比测试,分别为龙芯3A5000、龙芯3B5000、龙芯3A4000、龙芯3B4000、英特尔赛扬J1900、英特尔i5-2400、英特尔i7-2600、英特尔至强E5-2620V2。(其中3B5000、E5-2620V2为服务器架构,每台安装了两颗相同的处理器),如表1所示。

表1 测试机机型、处理器、内存、硬盘、操作系统版本等参数

表2 龙芯与英特尔处理器运算商用密码测试结果

2.2 测试结果(这里只选取了商用密码的测试结果)

2.3 测试分析

2.3.1 龙芯与英特尔处理器执行商用密码算法的结果分析

由于英特尔处理器不支持商用密码的指令集,龙芯处理器虽然支持,但操作系统和编译器尚未适配,所以本次测试均为纯软件计算,以此比较不同处理器在各计算方式下的性能差别。测试结果表明:对于采用非对称算法SM2的加解密操作,包括加密/解密,签名/验签操作,龙芯与英特尔处理器的性能差距比较大,基本相差一个数量级以上。但是随着运算位数的增大,性能差距在逐渐减小[2];在采用对称算法SM4的运算能力方面,龙芯与英特尔的赛扬处理器性能相差不大,但与英特尔酷睿处理器还是有一定差距[3];在采用SM3的散列函数运算能力方面,龙芯的计算性能与英特尔的酷睿处理器持平,基本接近至强服务器处理器的运算能力[4]。

2.3.2 龙芯与英特尔处理器执行国际加密算法的

结果分析

本次测试仍采用纯软件计算,以此比较不同处理器在各计算方式下的性能差别。对于非对称算法,选取了常用的R SA算法进行比较,在加密/解密,签名/验签操作方面,龙芯与英特尔处理器的性能差距非常大,英特尔的酷睿、至强处理器计算速度比龙芯快10~30倍以上,赛扬处理器也要优于龙芯处理器的处理能力;对于对称算法,选择了AES算法进行比较,除英特尔至强服务器处理器优势相对明显以外,各处理器表现相对比较平均,计算性能相差不大;对于散列函数算法,选择了SHA1和SHA256两种算法进行比较,龙芯的计算性能基本达到英特尔的赛扬处理器的水平,与酷睿、至强相比略有差距。

2.3.3 英特尔处理器AES算法采用指令集的能力

提升分析

英特尔公司在2008年3月提出了高级加密标准指令集(或称英特尔高级加密标准新指令,简称AESNI),是x86指令集架构的扩展,用于Intel和AMD微处理器,该指令集的目的是改进应用程序使用高级加密标准(AES)执行加密和解密的速度。并在随后生产的大部分处理器中嵌入了AES-NI指令集[5]。

在被测产品中,除赛扬处理器不支持此指令集,酷睿系列及至强均支持此指令集。[6]由于指令集只针对对称密码算法AES设置,所以测试也只选择了酷睿和至强的3款处理器,对AES-128、AES-256两种常见算法的加密/解密进行了测试。对于128位加解密算法,处理器指令集的处理效率比纯软件运算有明显的提升,运算速度大约为6~10倍;对于256位加解密算法,处理器指令集的处理效率比纯软件运算有明显的提升,运算速度大约为50倍。

2.3.4 龙芯处理器5000系列与4000系列对比能

力提升分析

龙芯处理器在软件运算速度和处理能力方面,与英特尔相比还有非常大的差距,尤其是在非对称算法(RSA、SM2)的计算过程中,由于涉及大量乘除操作,导致处理速度远远落后于英特尔处理器;在对称算法(AES、SM4)的计算过程中,大多数均为位移和异或等操作,所以与英特尔处理器的处理能力相差不大;对于散列函数(SHA、SM3)的计算,涉及位移和映射等操作,所以与英特尔处理器相比略有差距。

通过对英特尔处理器打开/关闭AES-NI指令集的测试发现,在处理对称加解密AES算法时,对性能影响非常大,尤其是相比32位操作与16位操作,使用处理器指令集的运行速度远远超过纯软件运行速度。但英特尔处理器的加解密指令集仅限于酷睿以上的处理器且只支持AES算法。

龙芯5000系列与4000系列相比,各方面性能大约提升80%。

3 结束语

龙芯处理器虽已支持商用密码指令集,但由于操作系统及编译器适配的问题,还无法测试其性能有多大的提升,但根据英特尔指令集的测试,乐观估计其性能应该有10倍左右的提升。英特尔只有AESNI指令集,而龙芯的指令集完整地支持SM2/3/4,如果能对非对称加解密的算法进行指令集成,那性能提升将是巨大的,高性能的运算也将为商用密码的应用带来更加广泛的前景。日前,龙芯官方表示“龙芯3A6000今年上半年会流片回来,单核性能比3A5000系列提升30%,浮点性能将提升60%。”让我们拭目以待,纯国产、真自主、高性能、全生态的龙芯早日登场。■

猜你喜欢

指令集龙芯商用
基于国产化龙芯的动环数据采集系统
某商用皮卡NVH性能试验
兵学商用人物
——徐小林
2021年《商用汽车》回顾
3DNow指令集被Linux淘汰
实时微测量系统指令集及解析算法
“龙芯之父”胡伟武
商用WiFi蓄势待发BAT360谨慎布局前景存疑
龙芯发布新一代处理器产品
什么是AMD64