CPU处理器|龙芯:中国一定要建立自己的CPU生态 不能重复日本错误( 二 )


回顾那段历史可以发现,美国制裁他国高端芯片的发展并不新鲜,历史在反复上演 。为什么会出现这样的情况?
当时日本犯了一个最大错误,就是只重视CPU产品的研发,忽视生态主导权 。如果一直做生态里某一款产品,会难以实现超越 。因此,掌握生态主导权极其重要 。
1982年,NEC生产的个人PC用的是Intel的芯片,1985年换成了自研芯片,1986年又换回去了 。为什么?因为制裁失去了生态的主导权,这给我们很大的启示 。
中国一定要下定决心构建自己的信息化生态体系,前两大生态体系,X86的生态体系和ARM的生态体系是美国主导的信息化生态体系 。希望未来基于我们自己的指令系统、国产操作系统形成和这两个生态体系平行的一套生态体系,它是产业的基础,在别人的基础上盖房子总是不牢靠的 。
目前基于自主CPU的发展情况是怎么样?
CPU处理器|龙芯:中国一定要建立自己的CPU生态 不能重复日本错误
文章图片

左图是龙芯3A5000芯片结构图,这里每一个方块其实都是一个IP,这些IP都是完全自主设计、自主演进,左下角罗列了芯片里面的IP核 。
右上角反映了近十年自主CPU的发展速度,第一代3A1000跑分是2-3分,经过近十年的快速迭代,现在能达到30分(目前国际主流CPU跑分在20-40分之间) 。右下角图片是芯片产业里性能提升的曲线,可以看到,前几年呈现线性快速增长,越往后增长越缓慢,龙芯CPU也即将达到性能增长的顶端 。
指令集是信息产业绕不过去的话题,前面提到,我国不可能基于国外的指令系统构建自己的产业生态体系,就像中国人可以用英语阅读和写作,但是用英语构建我们国家的文化体系、构建民族文化是不可能的 。
另一方面,应该如何考虑指令集的自主和兼容性?过去十几年,业界一直在争论这个问题,兼容性和自主性孰优孰劣?兼容有兼容的好处,可以直接利用现有生态里的软件产品,有现成的生态,一开始发展速度可能会快一些,但最大的问题是受制于人 。
那么,我们能否做到既自主又兼容的指令系统?从龙芯过去二十年的发展来看,这是可以做到的,重点是要打造“3+3+3”的核心能力 。一是三大编译器,GCC、LLVM、GOLANG 。二是三个虚拟机,Java、JavaScript、.NET 。三是三个翻译器,实现对MIPS、X86、ARM的二进制翻译,直接运行其应用软件 。
目前,龙芯中科推出了自主指令系统LoongArch,包括基础架构部分和向量指令、虚拟化、二进制翻译等扩展部分,近2000条指令,是充分考虑兼容的指令系统 。
LoongArch的特点主要表现在两个维度:一是用户态,二是核心态 。
LoongArch是一个精简指令系统,32位长指令、32个通用寄存器、32个浮点寄存器 。用户态是给编译器、程序设计者使用 。核心态在内存管理、控制寄存器的数量、规格都进行了大量的创新性设计,是符合现代操作系统的设计 。
我们对LoongArch的性能进行了测试,在相同IP下,一个用MIPS指令集,一个用LoongArch指令集,可以看到,动态指令数下降了15%到20%,总体性能提升了12%左右 。
LoongArch指令系统能够支持二进制翻译,融合了X86、ARM、MIPS、RISC-V指令系统的主要功能特性 。
自主指令系统的生态是如何构建的 。龙芯中科推出了二进制翻译器,又称LAT翻译体系 。最底层是LoongArch架构的芯片,再往上是操作系统,操作系统往上有几个维度:基于LoongArch的原生Linux应用,比如说本地化的办公、音视频的应用 。
同时,龙芯中科推出了三个翻译器:MIPS应用往LoongArch上翻译,ARM应用往LoongArch上翻译,X86应用往LoongArch上翻译,未来希望能够做到:从MIPS翻译过来百分之百性能不损失,从ARM翻译过来90%性能不损失,从X86翻译过来做到80%的性能不损失 。