龙芯中科愿以LoongArch为契机,深度布局产业链配套和应用生态,在自主创新的奋斗征程中一往无前。在2025年走向开放市场,基本建成自主信息技术体系;到2030年能走向国际市场,自主信息技术体系更加完善 ;2035年之前,与X86、ARM并列,实现“三足鼎立”。
出品丨自主可控新鲜事
本文内容来源于龙芯中科、半导体行业观察等
正文共4837,建议阅读时间10分钟
2022年,除了疫情,俄乌战争也牵动着人们的神经:科技巨头对俄断供,更有甚者俄罗斯一度在根服务器领域面临被除名的危险。
西方国家的反复无常给我国的科技工作者们亮起了警报:如果我们也被制裁,是否有能力反击?中国工程院院士倪光南强调,我们要认真反思这次美国科技巨头对俄罗斯制裁,尤其是网络战范畴的制裁,并基于此研究如何应对这类制裁,如何进行反制。
早在2016年的“419”讲话中,我国就明确了“关键信息基础设施是经济社会运行的神经中枢,是网络安全的重中之重,也是可能遭到重点攻击的目标”。为此要“加快构建关键信息基础设施安全保障体系”。反观当下的全球通信业,电脑使用和升级Intel和微软说了算,手机使用和升级ARM、谷歌、苹果说了算。这种状态显然不利于我国发展自主可控的信息技术产业生态。龙芯中科董事长胡伟武多次在公开场合表示,中国要构建独立于Wintel体系和AA体系的安全可控的信息技术体系和产业生态。这是我国发展自主可控信息技术体系的目标,也是龙芯中科的使命。
作为国内自主处理器的主要推动者之一,龙芯中科技术股份有限公司(以下简称龙芯)的董事长胡伟武先生对如何实现自主可控的生态有很深刻的了解。这也是他们过去二十多年来,从授权IP打造处理器,逐渐走向了从更底层开始,自下而上打造完全自主可控架构的原因。
在2021年正式推出自主指令系统架构“LoongArch”之后,龙芯公司正式迈入了一个新阶段。目前,LoongArch架构已得到了国际开源软件社区的广泛认可与支持正在成为跟X86、ARM并列的顶层开源生态系统。而为了最终实现这个目标,龙芯公司正在全力以赴。
如图,LoongArch已得到国际开源软件界广泛认可与支持
LoongArch的必要性2022年4月19日,在第五届关键信息基础设施自主安全创新论坛上,胡伟武基于龙芯二十一年的科研历程以及当前国际国内形势直言,我国的信息产业正面临着改革开放以来最大的变局,推出自主指令系统,是建立自主体系的需要,更是实现技术自由的必要条件。
基于芯片的信息产业生态 来源:龙芯中科
“购买别人授权的IP做芯片,有点像租房子,你不但要交租金,还不能调整房子的隔断家具,只能有一定的自由度。但用自主IP设计芯片,就有点像买房子,不但不用再交租金了,还可以按照自己的意图装修、买家具、调整隔断,进一步提升了芯片设计的自由度;而基于自主指令系统设计芯片则相当于盖房子,在自有的地块上我可以盖出个庭院、盖出个菜园来,也可以盖多层多栋,这样自由度就更大了。”胡伟武举例说。在这种思维指导下,拥有先进性、兼容性、模块化和扩展型四大特征的龙芯指令系统架构LoongArch横空出世。
在先进性方面,LoongArch吸收了近年来指令集发展先进技术成果而带来的代码效率提高。“举个例子,我们把SPEC CPU 2006这样复杂的应用程序编到MIPS上和编到“LoongArch”上进行对比发现,后者的动态执行指令数大概会少15%,这主要是受惠于“LoongArch”的指令系统表达能力强等优势。”胡伟武告诉记者。在兼容性方面,LoongArch能够融合ARM和X86的主要特点,支持把X86和ARM的指令高效地翻译过来。这符合了当时的终端使用现状需求;至于模块化方面,则表现在LoongArch不但提供基础指令,还支持了二进制翻译。胡伟武表示,单单为了支持X86和ARM的翻译,龙芯就在LoongArch上增加了176条指令;最后在拓展性方面,LoongArch在指令槽上留有余地,这将利于今后的持续演进。
基LoongArch架构,龙芯在2021年七月正式发布了其3A5000处理器,这是公司过去二十多年自主CPU研发的又一个突破。据介绍,该产品是首款采用自主指令系统LoongArch的处理器芯片,性能实现大幅跨越,代表了我国自主CPU设计领域的最新里程碑成果。
自主研发CPU一定会体现为最高的性能、最低的成本、最好的生态来源:演讲内容
从龙芯提供的数据我们可以看到,龙芯3A5000处理器主频2.3GHz-2.5GHz,包含4个处理器核心。每个处理器核心采用64位超标量GS464V自主微结构,包含4个定点单元、2个256位向量运算单元和2个访存单元。龙芯3A5000集成了2个支持ECC校验的64位DDR4-3200控制器,4个支持多处理器数据一致性的HyperTransport 3.0控制器。龙芯3A5000支持主要模块时钟动态关闭,主要时钟域动态变频以及主要电压域动态调压等精细化功耗管理功能。
根据国内第三方测试机构的测试结果,龙芯3A5000处理器在GCC编译环境下运行SPEC CPU2006的定点、浮点单核Base分值均达到26分以上,四核分值达到80分以上。基于国产操作系统的龙芯3A5000桌面系统的Unixbench单线程分值达1700分以上,四线程分值达到4200分以上。上述测试分值已经逼近市场主流桌面CPU水平,在国内桌面CPU中处于领先地位。
向完善的生态前进如今,龙芯在架构和芯片上均取得了突破,但正如胡伟武所说:“我们需要从底层的指令系统架构开始,打造一个可控的生态,才是解决“自主可控”问题的终极办法。而只有自主研发才能体现为最高的性能、最低的成本和最好的生态。”
考虑到当前整个产业链的现状,生态体系的打造要兼顾自主与兼容。为了做好芯片与操作系统之间的软硬结合,需要具备“2+3+3+2”十个能力。
其中,第一个“2”是指两大核心软件:BIOS、操作系统内核(含驱动和虚拟化);第二个“3”则是三大编译器,GCC、LLVM、GOLANG;第三个“3”则是三大虚拟机:Java、JavaScript、.NET;第四个“2”则是两大二进制翻译系统:X86、ARM。
“如果会这十个能力,我们就可以自己做一个既自主又兼容的指令系统,刚好龙芯这十个都会,都做过,而且有技术的积累。”胡伟武表示。在谈到如何基于“LoongArch”做软件生态的时候,胡伟武接着说,这首先要提供基础的开源操作系统。要实现这个目标,就需要要降低产业门槛,提供包括BIOS、内核、编译器、虚拟机、浏览器和图形库在内的核心模块。另外,还需要规范硬件的兼容性,通过统一系统架构,实现操作系统硬件的兼容。具体而言就是要让操作系统在面对不管谁的主板,都能做到装上就能跑,不需要适配,这就是胡伟武所说的,龙芯必须提供的基础操作系统。
据胡伟武介绍,龙芯的团队已经让其操作系统能够原生支持Linux所有全部主流基础软件和应用环境。“从BIOS内核开始,到编程语言,到基础开发环境,到基础函数库,到云计算、大数据、数据库中间建浏览器等等。经过两年多的发展,现在我们都已经支持。”胡伟武补充说。
来源:龙芯中科
其次,要充分考虑兼容需求的自主编程框架。这就要求我们先实现兼容框架,克服Linux系统版本间不兼容问题。然后再形成自主编程语言和编程框架,形成新型APP流派。这正是龙芯正在实现的目标。
借助一个自研的兼容框架,龙芯实现了Linux平台一次开发、各处使用的兼容性。让无论是源码还现有二进制程序都能支持。音频、视频、外设、打印、输入法等也能获得完全支持。同时,该框架还拥有保持Host应用100%性能,存储开销小(如微信跨平台兼容从114MB到126MB,普通镜像需要1GB左右)等特性。
在胡伟武看来,自主编程框架是自主操作性能的最主要的特征。因为我们只有使用自主编程框架写APP,才能终止无休止的适配适配的问题。“我认为操作系统只有有了自己的编程语言和编程框架,才能叫自主操作系统。”胡伟武接着说。这也是龙芯正在形成一个叫LDF(Loongson application Development Framework)的自主编程框架的原因。最后,我们还需要通过高效二进制翻译系统消除指令系统壁垒,才能实现广泛兼容。
据介绍。二进制翻译技术是将一种指令集的软件翻译到另一种指令集并实现高效运行的技术 。在过去二十年里,这一直是计算机领域的研究热点,学术界也已经有大量成熟的研究成果。而随着处理器性能的逐步提升,通过二进制翻译技术运行其他架构的软件在商业上具备一定的成熟度,在业界上已经有不少的应用案例。如苹果公司使用Rosetta动态二进制翻译器,将X86应用移植在ARM系统上运行;Intel公司推出Houdini二进制翻译器,用于在X86上运行ARM android应用,在win11/android-x86上应用。
作为一家拥有长远目光的企业,龙芯也基于自主研发的LoongArch指令集,开发了二进制翻译系统LAT,支持X86和ARM平台的软件在龙芯平台上运行。据介绍,通过高效二进制翻译系统消除指令系统壁垒,实现广泛兼容。
具体而言,借助LATX,可以在龙芯平台上运行X86/Windows应用(不运行Windows)及X86/Linux应用。还可以支持Windows打印机、与IE兼容的龙芯浏览器并实现通用X86平台二进制翻译。借助LATA则能够在龙芯平台上运行ARM/Android应用(不运行Android)。
而通过软硬结合、动静结合进行性能优化 ,不但可以添加融合X86/ARM功能的指令(英文翻中文 vs. 繁体中文翻简体中文+英文翻法文),还可以模拟Windows环境(优化Wine),模拟Android环境,并实现高效的X86到LA二进制翻译器LATX,ARM到LA二进制翻译器LATA。
在解决了二进制编译之后,兼容IE又成为了龙芯关注的又一个难题。
胡伟武告诉记者,基于IE/Windows系统开发的大量历史应用无法在当今的Chrome等浏览器上运行。一方面因为IE时代的网页元素代码与现今的W3C国际标准存在兼容性问题。另一方面,IE时代的 ActiveX插件只有X86/Windows平台的版本。面对这些问题,龙芯通过浏览器插件兼容技术、二进制翻译、网页元素兼容转码等关键技术,实现对IE应用的兼容。这就意味着基于IE ActiveX插件技术的网银、媒体等IE的网页应用能够直接在龙芯平台运行。
打印机驱动则是龙芯需要往前发展必须解决的又一个障碍。这主要是因为当前大量打印机只有Windows驱动,没有Linux驱动。但龙芯通过打印系统模拟支持、二进制翻译、异构驱动统一管理技术支持Windows打印机。
据介绍,龙芯目前不但覆盖了包括惠普、佳能、联想、奔图等29个品牌在内大部分常用打印机型。而且这些打印与Windows平台的打印速度相当,效果(颜色、格式)一致。来到功能上面,也能实现彩打、双面、旋转、多份、整理、远程、纸张选择、测试页、 网络共享;文本、图片、pdf、word等多种格式。还可以在浏览器、WPS等图形显示软件及lpr命令行进行打印。
在龙芯的努力下,Wintel的应用软件可在龙芯Linux平台上快速应用,消除指令壁垒,打通生态堵点。从胡伟武的介绍我们得知,他们已验证数十款主流应用软件,例如微信、腾讯通、Photoshop、WinRaR、扫雷、CS1.6游戏等。而作为一个超级复杂系统,龙芯的整个框架将于2022年上半年实现基本可用,下半年实现可用。
龙芯应用框架 来源:龙芯中科
胡伟武还透露,在解决了X86兼容之后,龙芯接下来还会继续解决Arm和RISC-V的兼容问题,而这会相对容易得多。展望未来:四步走战略,努力在“十四五”期间完成三个转变LoongArch生态近期计划 来源:龙芯中科
在谈到未来规划时,如上图所示,胡伟武给公司提出了四步走战略。他同时还谈到,龙芯会效仿RISC-V,打造拥有几十条指令的精简指令集,让操作系统可以在上面跑,进一步丰富其生态。据介绍,龙芯中科在“十四五”期间将努力完成三个转变,一是从技术 “补课”到生态建设的转变;二是从政策性市场到开放市场的转变;三是从跟随性发展的“必然王国”到“自由王国”的转变。
展望未来,胡伟武表示,龙芯中科愿以LoongArch为契机,深度布局产业链配套和应用生态,在自主创新的奋斗征程中一往无前。在2025年走向开放市场,基本建成自主信息技术体系。到2030年能走向国际市场,自主信息技术体系更加完善 。2035年之前,与X86、ARM并列,实现“三足鼎立”。