龙架构:一种开放自主指令集架构的实践

2023-01-30 10:23徐志伟
计算机研究与发展 2023年1期
关键词:指令集龙芯开源

徐志伟

(中国科学院计算技术研究所 北京 100190)

我国的 CPU 研发应采用兼容指令集还是自主研发指令集是学术界和产业界长期争论的一个话题,由于研制指令集及其软件生态的难度和工作量受很多因素影响而难以精确量化,不同背景的人对它们的认知差异很大,结果往往是谁都说服不了对方.龙芯团队的这篇论文分享了龙架构指令集的设计和实践经验,针对这个话题给出了有参考价值的观点和数据.

1.该文提出,可以通过技术手段达到既自主又兼容,解决自主研发指令集的最大障碍.传统的软件二进制翻译技术已经能够实现不同指令集平台之间的软件兼容运行,但存在性能损失过大的问题.龙架构通过指令集扩展,实现了比开源QEMU翻译器高几倍到几十倍的性能效率.对语义差异相对较小的MIPS指令集,翻译运行性能和MIPS原生性能相当.该文作者认为,再经过一两年的软硬件磨合迭代,能够消除单一指令系统的壁垒, 使得不同指令集的系统及应用软件能够融合到统一的龙架构平台上, 不加区别地运行.如果这个目标能够顺利达成,那么指令集就成了可软件定义的一个新的虚拟化层次,大量软件将不必针对不同指令集进行重复开发,在节约社会资源的同时带来更多的技术创新空间.正如在云计算中,人们通过软硬件协同实现了逼近物理机的虚拟机性能,带来了新的计算范式和更高的运营效率.

2.该文给出了建设一个新生态的可行路径和量化的工作量参考.龙芯3A5000的软件生态构建实践表明, 在深入掌握“3+3+3”的主要编译系统技术的基础上, 充分利用开源软件, 在较短的时间内构建一个新指令集的生态是可行的.该文介绍了龙架构的4个建设阶段以及移植一个完整Linux发行版的架构相关支持代码量等数据,它们都是宝贵的一手经验,能够为同行提供参考.

3.该文介绍了龙架构指令集诸多具体设计选择.数据表明,在相同的微架构和编译器版本下,龙架构能用比MIPS少的指令数完成同样的任务,实现更高的性能.SPEC CPU2006基准程序集龙架构平均性能比MIPS高7%,部分应用的性能甚至比MIPS版本高30%以上.抛弃一些过时的指令集特征,引入现代操作系统和应用程序需要的一些支持,能够有效地提升软件的性能.

指令集的设计是一项系统性、基础性的工作,龙芯团队能独立研制龙架构并在短短3年的时间内达到商用应用的成熟程度,离不开过去20年在芯片设计和软件生态建设方面的长期积累.恰当地权衡指令集各项设计选择需要深入理解指令集与软硬件实现的相互作用,而建设软件生态更需要掌握一大批包括“3+3+3”的主要编译系统在内的基础软件技术.

一个优秀指令集的形成往往需要经历长时间的研究和实践迭代过程.龙架构走出了很好的第一步,但也还有很大的成长空间.如何更好地适应当代工作负载、如何科学地权衡新指令和新特性的引入、如何进一步加速软件生态的繁荣等等,都需要龙芯团队和国内外同仁的继续努力.可喜的是,龙芯团队选择以开放的态度发展龙架构.据了解,开源社区的大量软件都已经添加了对龙架构的支持,包括UEFI固件、Linux内核、GCC/GLIBC/Binutils/GDB、LLVM、GoLang、.NET、QEMU 和 Chromimum/Firefox等关键基础软件.该文作者也宣布了龙架构指令集本身也将对外开放.我相信,在这种开放协作的模式下,龙架构将成为很好的学术研究和产业实践的平台.

评述专家:

徐志伟,《计算机研究与发展》主编,研究员.主要研究方向为高性能计算架构和分布式系统.

亮点论文:

胡伟武,汪文祥,吴瑞阳,王焕东,曾露,徐成华,高翔,张福新.龙芯指令系统架构技术[J].计算机研究与发展,2023,60(1):2−16.DOI:10.7544/issn1000-1239.202220196

猜你喜欢
指令集龙芯开源
基于国产化龙芯的动环数据采集系统
基于Kubernetes的RISC-V异构集群云任务调度系统①
3DNow指令集被Linux淘汰
五毛钱能买多少头牛
2019开源杰出贡献奖
基于Dais—CMX模型机的斐波那契数列指令集设计
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
“龙芯之父”胡伟武
龙芯发布新一代处理器产品