龙芯胡伟武在2020年8月参加CCF全国计算机体系结构学术年会时,曾披露龙芯将放弃MIPS架构,转向完全自主知识产权的LoongArch指令集,并做了《指令系统的自主与兼容》特邀报告来介绍这一全新架构的设计思路。
该设计增加了支持生产级应用的向量指令集,并且能够以二进制翻译的方式兼容MIPS/RISC-V/ARM/x86这几种指令集的Linux程序,并且翻译MIPS指令集时损耗非常小。
核心态方面:硬件能够支持两级地址翻译,x86→LoongArch,虚地址→物理地址(通过改造内存快表TLB,做到两级虚地址映射以减少映射开销,以及减少指令使用/指令翻译开销,即X86虚地址直接翻译成龙芯物理地址),面积和延迟开销都不大;以及,地址空间、中断处理等方面支持OS跨主板和对升级后的CPU兼容;
用户态方面:功能上针对MIPS、X86、ARM、RISC-V的特征,绝大多数指令可以做到1对1或1对2翻译;还包括对X86的EFLAGS支持、RISC-V的原子同步指令支持;以及,ABI方面支持X86/MIPS系统调用兼容,支持MIPS汇编码直接翻译成LoongArch二进制。
为了完成这样的设计,龙芯架构定义了2500多条指令,但还预留了一半的一级指令槽,未来可以继续扩展。
胡伟武在演讲中介绍,在翻译运行X86应用时,开源的QEMU仅能达到5%的性能,而龙芯架构现在超过60%,优化后的目标是80%;翻译安卓ARM应用时,可以流畅运行移动版WPS和美图秀秀等。