近期,龙芯中科发布了新一代自主指令系统架构——龙芯架构 (LoongArch)。据了解,该系统架构已经通过国内第三方知名知识产权评估机构的评估。支持该架构的龙芯3A5000处理器芯片已经流片成功。基于新架构的完整操作系统也已经在3A5000计算机上稳定运行。龙芯中科指令集的开发成功为我国系统架构开启了新的纪元,对于产业生态体系的建设和完善产生巨大的助力。
不能在别人的地基上砌房子
在半导体芯片领域,指令系统是一切软硬件生态的起点。其中,ARM和X86最为人们所熟知,它们分别隶属于RISC精简指令集和CISC复杂指令集。随着物联网、5G、AI新兴领域的兴起,RISC-V和MIPS两大精简指令集架构也频繁地出现在人们的视野内。
近年来,尽管本土芯片都在各自领域取得了不俗的成绩,但其底层的指令集根基往往掌握在别人手里。例如,华为麒麟采用的是ARM架构、兆芯所采用的是X86架构、申威采用的是Alpha架构、龙芯所采用的是MIPS架构。这导致了芯片和指令集之间,往往是“一荣俱荣,一损俱损”。MIPS最初开发的目的是面向注重速度和性能的高性能计算,在功耗和面积上有所欠缺,商业化后存在一定不足,一度导致采用MIPS架构的龙芯芯片发展滞后。
“若想寻求长远发展,我们不能基于国外指令系统建设自主的信息生态体系。这就好比,我们不能在别人的地基上砌房子,那样的房子,就算建好了,也没有自主权。”龙芯中科技术有限公司董事长、中国科学院计算技术研究所研究员胡伟武说道。
因此,发展本土自主可控的指令集,成为了半导体产业关注的焦点,也是打破核心技术垄断的关键。赛迪智库分析师钟新龙认为,此次龙芯推出自主指令架构,最大的突破在于摆脱了MIPS的束缚。如今,MIPS已不适应现代CPU高性能设计,以及高性能操作系统的架构体系,因此,若想更好地对CPU性能进行提升,需要对指令集系统进行一个较大的调整和性能的提升。据悉,此次发布的龙芯架构,在仿真测试中,仅仅在CPU译码部分,就比MIPS的性能增加了16%。
兼容并济是市场竞争关键
尽管打造一套本土自主可控的指令集异常关键,然而,若想在ARM、X86、RISC-V以及MIPS所垄断的市场中寻找生存机遇,如何能够兼容不同的指令集也是最为关键的一环。胡伟武表示,如果把C语言、JAVA语言等直接翻译成新的指令系统,不仅会降低效率,还会使产品性能大幅降低。
此次新推出的龙芯架构最大的特点不仅仅在于自主性,而是在具备自主性的同时,也可以兼容其他主流指令集。这是本次发布指令集的一大突破。胡伟武表示,此次推出的龙芯架构包括基础架构部分,以及向量扩展LSX、高级向量扩展LASX、虚拟化LVZ、二进制翻译LBT等扩展部分,总共接近2000条指令,同时不包含龙芯此前使用的MIPS指令系统。
可见,此次推出的龙芯架构从整个架构的顶层规划,到各部分的功能定义,再到细节上每条指令的编码、名称、含义,在架构上进行了自主重新设计,具有充分的自主性,同时也能兼容多种主流指令系统。
据胡伟武介绍,若想做到指令集既自主又兼容,需要满足三点基本要求:第一,先进性,需要企业不断吸收近年来指令集发展的先进技术成果,并适度摒弃一些“过时”的技术特征。第二,兼容性,需要融合X86、MIPS、ARM指令系统的主要特点,高效支持二进制翻译。第三,扩展性,指令槽需要留有余地,有利于日后的持续演进。
建立既自主又兼容的指令集并非易事。尽管本土指令集需要本着“不能在别人的地基上砌房子”的初心,但是也需要保证在拥自己的“地基”后,让更多人来“砌房子”。兼容并济,海纳百川,是本土指令集立足于市场,参与竞争的关键一环。
消除指令系统间的壁垒
在打造既兼容又自主的系统生态过程中,消除指令系统壁垒是本土指令集顺利发展的又一大因素。胡伟武表示,目前,本土指令集的自主性相对还处于过渡性的阶段。本土指令集需要发展自己的应用,建立自主生态;与此同时,需要先消除指令系统间的壁垒。而消除的关键在于二进制的翻译。
据悉,二进制翻译本质上是一种跨指令系统的虚拟机,支持虚拟机的很多基础设施在二进制翻译体系中可以复用。然而,它的技术挑战也非常大,实现精确翻译的复杂度高且工作量大,并且不易控制。
“二进制翻译不仅需要翻译指令,还需要翻译整个体系结构。与此同时,不同体系的语义会产生一定的鸿沟,除指令集以外,像ABI、函数库、操作系统、工具链以及应用层等,体系结构都有些许差异,都会给翻译造成一定困难。就好比我们的语言,最基本的字、单词、发音都是统一的,但若汇编成成语、书籍、歌曲等,需要不同的字词结构组合,且相互之间难以直接关联,对于系统架构来说也是如此。”胡伟武说道。
因此,胡伟武认为,在未来,国产指令集在消除指令壁垒的过程中,可以尝试通过硬件支持不断深入消除壁垒。例如,晶体管、CPU等性能的提升。此外,也可以采用一些特殊的二进制翻译方式来缩小鸿沟,而这也是行业内普遍采用的手段之一。
“以语言翻译为例,若是从繁体中文翻译成简体中文,这个翻译非常简单,但是如何把英文翻成中文,这个就相对较难。因此,可以选择语义鸿沟较小的架构来作为过渡,例如,X86和MIPS语义鸿沟确实比较大,二者之间相当于英文和中文之间的翻译,难度较高,但是X86与龙芯之间的语义鸿沟较小,有2/3的指令翻译相当于从繁体中文翻译成简体中文。虽然最终目标是建立自己的生态体系,但是在发展过程中,可以借助其他指令集来进行过渡。这样不仅可以减少客户因更换指令集而带来的负担,同时也能以最快的速度有效减少指令壁垒。”胡伟武说道。
可见,设计出新的自主指令集只是万里长征的第一步,未来需要不断完善软硬件生态,消除指令系统壁垒,让原始的系统、办公、娱乐和游戏程序都能正常地运行在新的指令集之上。否则,指令集和相关芯片只能成为空中楼阁,无法真正落地。