本文来自合作媒体:DoNews,作者:maomaobear。猎云网经授权发布。
日前,胡伟武在一次公开报告中公布了LoongArch的内容。
经过十多年的发展,龙芯将抛弃MIPS指令集,转而使用LoongArch 指令集。
LoongArch是全新的指令集。包含基础指令 337 条、虚拟机扩展 10 条、二进制翻译扩展 176 条、128位向量扩展 1024 条、256 位向量扩展 1018 条,共计 2565 条原生指令。
MIPS、X86、ARM、Risc-V都将通过二进制模拟来运行,不再原生支持。区别只是MIPS与LoongArch近似度较高,效率会高一些。
最近两年,随着美国对中国越来越多的企业进行制裁,中国的自主可控遭受到了严重的挑战,很多看起来自主的,一制裁就不自主了。
那么,龙芯放弃MIPS指令集就能实现自主可控吗?我们来分析一下。
一、 不同层次的自主处理器
中国的自主处理器有很多,主要包括以前用MIPS指令集进行扩展的龙芯系列,以前买Alpha,后来去Alpha化的神威SW64系列,换了好几次指令集,目前使用Arm指令集,自己设计处理器架构的飞腾系列,以及后起之秀,使用ARM指令集,初期用ARM公版,后期自己设计的鲲鹏系列。
这些处理器里面,看似都是中国自主处理器,但是实际上是存在差异的。
鲲鹏系列最初完全是用ARM的公版A57、A72公版,IP完全来在于ARM。后期鲲鹏920的架构为自行设计,但是指令集授权来自于ARM。
飞腾系列和鲲鹏920档次差不多,经过几次指令转换,最后用了ARM的指令集,
这两个指令集授权,实际上是存在一定危险性的,虽然号称是长期授权,但是只要ARM一更新指令集,旧的授权就面临执行问题。
龙芯以前的MIPS扩展也不安全,因为MIPS也在更新指令集,也有可能不授权,龙芯失去MIPS指令集,仅仅靠自己的扩展无法支撑应用。
神威的SW64是真正自主,去Alpha后完全自己掌握,只是生态比较弱,限于专用领域。
二、龙芯的LoongArch 指令集
龙芯的LoongArch 指令集思路,其实和以前的全美达有一点类似。就是通过软件来解决硬件问题。
LoongArch摒弃了MIPS部分不适合现代CPU的指令,又做了大量改进和扩展。
LoongArch 仍为RISC指令集,32位定长指令、32个通用寄存器、32个浮点/向量寄存器。MIPS只有3种指令格式,而LoongArch重新设计了指令格式 ,使可用的格式多达10种 ,其包含3种无立即数格式和7种有立即数格式。
龙芯提供基于 LoongArch 的 Linux 操作系统,在此操作系统中除了运行原生的 LoongArch 程序,还能通过翻译的方式兼容 MIPS、x86、ARM、RISC-V 这几种指令集的 Linux 程序,只是效率有差异。这样就不存在无软件可用的问题,只是软件会慢一点。
龙芯的目标是翻译执行 MIPS 效率 100%,翻译执行 ARM效率90%,翻译执行 x86效率80% 、运行Windows下的X86效率70%。
这样,龙芯的核心设计自己完成,如果指令集自己独立系统,加上自主的工艺制程,那么就完全杜绝了被人卡脖子的可能。而龙芯以兼容方式保留现有生态,鼓励合作企业把软件编译为LoongArch,就可以得到更多的原生程序。就有生态系统。
必要的时候,可以全面接替其他处理器,保证系统正常运行。
虽然,性能可能会弱一下,但是先解决了有无问题,算是达到了自主可控。
三、 设计自主不是完全自主
龙芯的LoongArch是一个CPU设计的完全自主方案。但是,自主可控不仅有设计部分,还要有制造部分。
最新的,龙芯3A5000依然要在台积电流片,一旦美国像卡华为一样卡龙芯,龙芯依然不能制造,而是要回到国内比较落后,没有美国技术的90nm生产线上去制造。这样性能会再打一个很大的折扣,很多领域就不能用了。
此外,处理器不是单独一个处理器就可以工作了。以前龙芯的主板芯片是AMD的,一卡还是能卡住,不存在自主安全,现在龙芯的总线是AMD的HT总线,一卡也是能卡住的。
中国在图形芯片上还有很大的缺陷,现在GPU计算基本都是nVIDIA的,一卡也就没有了。
所以,自主可控这个事情,还有很多工作要做,制造上,主板芯片上,GPU上……。
中国要补的课还很多。