5.1.3 龙芯自主指令级的支持
硬件
LoongArch是由龙芯中科推出的新一代指令系统,包括基础架构部分和向量指令、虚拟化、二进制翻译等扩展部分,近2000条指令。该指令系统具有较好的自主性、先进性与兼容性,对二进制翻译、虚拟化、向量化的支持能够为操作系统、虚拟机的开发降低成本。基于LoongArch指令集的处理器芯片如3A5000、3C5000等已经研发成功并量产。AnolisOS完美地支持基于LoongArch指令集的龙芯处理器,并为基于龙芯处理器打造的硬件平台提供了操作系统生态。
关键技术
内核支持
基于4.19内核进行了全新的LoongArch架构支持,包括LoongArch架构的基础指令支持,扩展向量指令支持,扩展二进制翻译支持,扩展虚拟化支持;同时实现了基于LoongArch架构研发的3A5000、3C5000、3C5000L/LL处理器的支持和相关配套桥片7A1000、7A2000的支持。并在各个平台进行了完善的测试,相关技术指标也进行了优化。
虚拟化技术
QEMU/KVM是目前最流行的虚拟化技术,它基于内核提供的kvm模块,结构精简,性能损失小。AnolisOS在龙芯平台上支持qemu以及libvirt,并提供基于龙芯CPU的虚拟化、管理平台一体化方案,为客户提供全栈的云服务体系。针对QEMU6龙芯平台的优化、支持代码已经合入AnolisOS主线分支。此次改动除专注通用优化外,还支持7A2000桥片iommu功能;支持加解密sec模块直通虚拟机技术。
语言平台GCC/LlVM/Golang/Rust/Java/ JavaScript
针对龙芯平台的优化、支持代码已经合并进入AnolisOS社区主线分支。这些改动除专注通用性优化,如GC NUMA和编译策略优化外,也包括针对龙芯处理器的深度优化,比如使用龙芯的专有指令。如此可以充分挖掘指令特点,最大限度利用硬件。其中龙芯平台的JVM虚拟机和V8引擎优化后已经能够承担量级可观的日常测试和开发任务。
产业链
AnolisOS操作系统环境及软件均已移植完成,成为了LoongArch的原生版本。行业应用方面,面向LoongArch的移植工作也在有条不紊地进行,LoongArch的原生生态已经不输于原本的LoongISA。
3个二进制翻译系统x86、arm、mips翻译能力使得龙芯平台可以短时间内兼容其他平台成熟的应用软件。翻译运行效率也在持续提升,已经接近90%。