龙芯胡伟武:克服奴才心态,做自己的CPU指令系统!LoongArch将与X86/Arm并驾齐驱

 信创资讯     |      2022-06-07 15:50:00    |      中芯教育

图片


2022年6月6日,由工业和信息化部网络安全产业发展中心指导,北京经开區(qū)國(guó)家信创园和龙芯中科(kē)联合主办的“2022年LoongArch生态发展暨通明湖(hú)创新(xīn)应用(yòng)论坛”在線(xiàn)上召开。会上,龙芯重磅发布了龙芯3C5000服務(wù)器处理(lǐ)器,并联合生态伙伴共同发布新(xīn)一代國(guó)产服務(wù)器基础软硬件平台。


克服奴才心态,做自己的指令系统



近年来,在國(guó)家的重视和支持之下,國(guó)产CPU也迎来了快速的发展。华為(wèi)、飞腾、海光、兆芯、龙芯和申威等则是目前國(guó)内為(wèi)数不多(duō)的國(guó)产CPU厂商(shāng)。但不论是出于自主可(kě)控、商(shāng)业化还是生态方面的考虑,华為(wèi)、飞腾、海光、兆芯、龙芯和申威一开始都是选择的是利用(yòng)此前已有(yǒu)的相对成熟的CPU指令集架构。

比如华為(wèi)、飞腾都选择的是基于Arm公司的ARMv8指令集架构授权来开发自己的CPU;海光、兆芯则分(fēn)别是通过与AMD和威盛成立合资公司,来获得x86指令集授权开发自己的CPU;龙芯最初是基于MIPS指令,申威则是基于ALPHA指令集。

时至今日,x86和Arm指令集架构仍是最為(wèi)主流的两大指令集架构,而MIPS、ALPHA、SPARC、POWER等指令集架构都已经走向衰落。此外,也有(yǒu)正在兴起的新(xīn)的指令集架构,比如大家熟悉的开源的RISC-V,目前國(guó)内也有(yǒu)非常多(duō)的芯片厂商(shāng)在基于RISC-V指令集架构开发自己的CPU。选择已有(yǒu)的开源的或者可(kě)开放授权的CPU指令集架构,则意味着无需从头做起,在可(kě)以满足一定的國(guó)产自主可(kě)控要求的基础上,可(kě)以利用(yòng)已有(yǒu)的软硬件生态,快速得以发展。

不过,在龙芯中科(kē)董事長(cháng)胡伟武看来,不论是x86、Arm、RISC-V,还是龙芯此前采用(yòng)的MISP指令集架构,都外國(guó)的指令集架构,特别是在美國(guó)对华贸易战、科(kē)技战背景之下,都存在着不可(kě)控的风险。尤其是对于自主可(kě)控要求更高的信创产业来说,如果采用(yòng)基于國(guó)外指令集架构的CPU,仍然难以改变核心技术受制于人的局面。

比如,近年来由于美國(guó)方面对于國(guó)产芯片产业的打压,华為(wèi)、飞腾、海光、申威等國(guó)产CPU厂商(shāng)均已被美國(guó)商(shāng)務(wù)部列入了实體(tǐ)清单,这也使得他(tā)们获取新(xīn)的指令集架构的授权受到了限制。比如Arm最新(xīn)的ARMv9架构,國(guó)内厂商(shāng)到目前為(wèi)止没有(yǒu)一家获得授权。


“指令系统、基础工业(工艺材料和设备)是信息产业的两个最重要基石。基于國(guó)外指令系统的信息产业支撑不了中华民(mín)族伟大复兴。我们中國(guó)人可(kě)以用(yòng)英文(wén)来写文(wén)章,但不可(kě)能(néng)基于英文(wén)来发展我们自己的民(mín)族文(wén)化。同样,我们中國(guó)人也可(kě)以用(yòng)國(guó)外的指令系统做产品,但是我们不能(néng)指望用(yòng)國(guó)外的指令系统来做自己的生态。”胡伟武坦言,龙芯这么多(duō)年的发展历程就是一个鲜活的例子,“做跟班是可(kě)以的,想超越是不行的。龙芯CPU曾经在MIPS架构里边性能(néng)是最高的,在软件生态方面,龙芯也是慢慢成為(wèi)MIPS领域的主导者,但是MISP觉得龙芯要超过他(tā)们则是不允许的。丫鬟拿(ná)了一辈子钥匙,也还是丫鬟。所以,我们需要克服奴才心态,做自己的指令系统。”


图片

龙芯中科(kē)董事長(cháng) 胡伟武



胡伟武进一步指出:“我经常在市场上听见有(yǒu)人说龙芯的搞自主指令集架构芯片不行,不如x86和Arm。说x86、Arm指令集架构,才是市场主流,龙芯的怎么可(kě)能(néng)干的过x86和arm?这就是一种奴才心态,我们要克服这种奴才心态。”

图片


LoongArch正成為(wèi)与X86/Arm并列的顶层开源生态系统

其实CPU指令系统的是否需要自主研发,这在多(duō)年前就有(yǒu)讨论,至今至少已经有(yǒu)長(cháng)达15年了。自主研发有(yǒu)自主研发的好处,但是最大的难题在于生态的建设。而选择采用(yòng)或兼容國(guó)外指令集的优势则是能(néng)够直接共享现有(yǒu)的國(guó)外指令集的软硬件生态。而龙芯在做了20年之后的选择是,在自主的同时去兼容。

2021年4月,龙芯正式发布了自主指令系统架构LoongArch,在做到了完全的自主可(kě)控,拥有(yǒu)完全的自主知识产权的同时,龙芯的LoongArch指令集还实现兼容多(duō)种國(guó)际主流的指令系统。

图片

胡伟武表示,要做到既完全自主又(yòu)兼容,需要“2+3+3+2”的十大基础软件能(néng)力。即,两大核心软件:BIOS和操作系统内核(含驱动和虚拟化);三大编译器:GCC、LLVM、GOLANG;三大虚拟机:Java、JavaScript、.NET;两大二进制翻译系统:x86和Arm。“我们不光要纵向构建自己的软件生态,横向还能(néng)接入x86和Arm。”


“LoongArch指令系统正在与x86、Arm一样成為(wèi)一个國(guó)际主流的指令系统,它以后还会开源,但它跟RISC-V不一样,RISC-V的开源是美國(guó)人主导的,而我们LoongArch的开源是我们中國(guó)人自己的开源指令系统。虽然过去我们國(guó)内曾经有(yǒu)过一些自主研发的指令系统都没成功,但是我相信我们的LoongArch是可(kě)以成功的。”胡伟武说道。




图片



据介绍,LoongArch架构已得到國(guó)际开源软件界广泛认可(kě)与支持,并已向GNU组织申请到ELF Machine编号(258号),即LoongArch的“身份证";Linux内核社區(qū)版本也将持续支持龙芯系列CPU和桥片。Binutils、GDB等基础工具已实现对LoongArch的原生支持,ACPI國(guó)际标准中纳入了对LoongArch架构特性的支持;GCC已实现与LoongArch架构的原生支持,LLVM、GO已经初步实现对LoongArch架构的原生社區(qū)支持;龙芯与.Net、V8、 Mozilla等社區(qū)紧密合作,基于LoongArch架构实现了Java、Javascript、 . Net等三大虚拟机运行环境。

龙芯3C5000服務(wù)器处理(lǐ)器发布:16核心性能(néng)媲美Arm 64核处理(lǐ)器

2021年7月,龙芯正式发布了首款基于自主研发的指令系统LoongArch的处理(lǐ)器芯片龙芯3A5000,性能(néng)实现大幅跨越,代表了我國(guó)自主CPU设计领域的最新(xīn)里程碑成果。

作為(wèi)首款基于LoongArch指令集系统的龙芯3A5000处理(lǐ)器,主频為(wèi)2.3GHz-2.5GHz,包含4个处理(lǐ)器核心。每个处理(lǐ)器核心采用(yòng)64位超标量GS464V自主微结构,包含4个定点单元、2个256位向量运算单元和2个访存单元。龙芯3A5000集成了2个支持ECC校验的64位DDR4-3200控制器,4个支持多(duō)处理(lǐ)器数据一致性的HyperTransport 3.0控制器。龙芯3A5000支持主要模块时钟动态关闭,主要时钟域动态变频以及主要電(diàn)压域动态调压等精细化功耗管理(lǐ)功能(néng)。


根据龙芯中科(kē)公布的國(guó)内第三方测试机构的测试结果显示,龙芯3A5000处理(lǐ)器在GCC编译环境下运行SPEC CPU2006的定点、浮点单核Base分(fēn)值均达到26分(fēn)以上,四核分(fēn)值达到80分(fēn)以上。基于國(guó)产操作系统的龙芯3A5000桌面系统的Unixbench单線(xiàn)程分(fēn)值达1700分(fēn)以上,四線(xiàn)程分(fēn)值达到4200分(fēn)以上。上述测试分(fēn)值已经逼近市场主流桌面CPU水平,在國(guó)内桌面CPU中处于领先地位。


较上一代龙芯3A4000处理(lǐ)器,龙芯3A5000处理(lǐ)器在保持引脚兼容的基础上,性能(néng)提升50%以上,功耗降低30%以上。


据龙芯中科(kē)副总裁 张戈介绍,此次发布的龙芯3C5000系列是龙芯面向服務(wù)器领域倾力打造的高性能(néng)通用(yòng)处理(lǐ)器,采用(yòng)全新(xīn)的龙芯LoongArch自主指令系统,具备超强算力性能(néng)卓越的特点,可(kě)满足通用(yòng)计算大型数据中心云计算中心的计算需求。


图片

龙芯中科(kē)副总裁 张戈


在芯片设计方面,龙芯3C5000通过封装集成了四个3A5000硅片,形成16核处理(lǐ)器,重点优化多(duō)核多(duō)路互联效率。单芯片unixbench分(fēn)值9500以上,双精度计算能(néng)力达560GFlops,16核处理(lǐ)器峰值性能(néng)与典型Arm 64核处理(lǐ)器的峰值性能(néng)相当,并支持最高16路互连,搭配新(xīn)一代龙芯7A2000桥片,PCIe吞吐带宽比上一代提升400%以上。可(kě)满足通用(yòng)计算、大型数据中心、云计算中心的计算需求。


图片



此外,龙芯3C5000通过芯片级安全机制可(kě)為(wèi)等保2.0、可(kě)信计算、國(guó)密算法替代、网络安全漏洞防护等提供CPU级内生支持。


龙芯现阶段的主要矛盾:应用(yòng)生态


纵观龙芯CPU的发展历程,胡伟武认為(wèi),可(kě)以分(fēn)為(wèi)三个阶段:


在2019年之前,龙芯面临的主要矛盾是CPU性能(néng)不足。比如,在2013- 2015年龙芯第一代产品(3A1000、3B1500) 通用(yòng)处理(lǐ)性能(néng)只有(yǒu)市场主流产品的1/10,随后在2016-2018年推出的第二代产品(3A2000、 3A3000) ,3A3000性能(néng)是3A1000的4倍,解决了操作系统与硬件结合部的稳定性问题,达到基本可(kě)用(yòng)。


图片


在2019-2021年,龙芯推出了第三代产品(3A4000、3A5000、3C5000) ,尤其是自主LoongArch指令集的3A5000性能(néng)达到了3A3000的3倍,相比上一代的3A4000性能(néng)也提升了50%以上,功耗降低30%以上,逼近市场主流产品水平,达到了好用(yòng)的程度。


但是,配套的國(guó)产操作系统成為(wèi)了龙芯当时面临的主要矛盾。当时國(guó)内众多(duō)“小(xiǎo)而散”的國(guó)产操作系统开发团队逐渐整合成了统信、麒麟两大國(guó)产操作系统团队,各自已有(yǒu)2000-3000人的规模。在这过程中,龙芯需要解决操作系统与硬件结合部的兼容性问题,消除操作系统和硬件的组合“爆炸”。


“我们曾经有(yǒu)一个时期,每个整一个操作系统对每款整机都有(yǒu)适配,现在我们一个操作系统,不管谁的整机,比如只要龙芯CPU装上就能(néng)跑。”胡伟武说道。


随着自主LoongArch指令集的3A5000系列的推出,接下来,龙芯还将会推出第四代产品(3A6000、3A7000) ,届时将达到市场主流产品水平。


据胡伟武透露,3A6000将会采用(yòng)与3A5000相同的制裁工艺(应该是12nm),将主要通过设计优化来提高性能(néng)。基于仿真结果,3A6000处理(lǐ)器单核SPEC CPU 2006定点/浮点base分(fēn)值(GCC)从26/28分(fēn)提高到35/45分(fēn),双DDR4的Stream带宽(峰值51. 2GBps)也将从25GBps提高到38GBps。


图片



随着龙芯CPU性能(néng)的不断提高,2022年起龙芯技术平台的主要矛盾也开始转向应用(yòng)生态。龙芯基础软件工作重点也从操作系统与硬件结合部转向操作系统与应用(yòng)结合部。


三大举措,构建LoongArch应用(yòng)生态


对此,龙芯采取了三大举措:一个是夯实基础;二是广泛兼容,不光Linux内部的兼容,还要跟x86和Arm兼容;三是开发自主应用(yòng),形成自主编程框架和编程语言。


為(wèi)此,龙芯除了持续与统信、麒麟等國(guó)产操作系统厂商(shāng)合作之外,还面向信息化应用(yòng)和工控及终端应用(yòng)分(fēn)别推出了龙芯基础版操作系统Loongnix和龙芯基础版操作系统LoongOS。


龙芯还完成了LoongArch基础软件體(tǐ)系(LBF)的建设,已经可(kě)以实现原生支持Linux全部主流基础软件和应用(yòng)环境。也就是说,在Linux平台上,x86、Arm有(yǒu)的,龙芯也有(yǒu)。


图片


当然,Linux平台的开放性也引发了很(hěn)多(duō)应用(yòng)兼容性问题,包括打包格式不兼容,API环境不兼容,内核升级引起不兼容等等。為(wèi)了解决这一问题,龙芯推出了龙芯应用(yòng)兼容框架(LCF)实现跨Linux版本应用(yòng)兼容。


而為(wèi)了兼容各种x86、Arm应用(yòng),龙芯也推出了自研的x86架构翻译系统(LATX)和Arm架构翻译系统。胡伟武表示,这里边需要用(yòng)到很(hěn)多(duō)核心技术:首先LoongArch指令一定要加入一些x86和Arm功能(néng)的指令,这样翻译才会高效;其次,要做一个从x86架构到LoongArch架构的高效的二进制翻译器;第三还要模拟出Windows环境来。


据介绍,目前龙芯在兼容x86/Windows应用(yòng)方面,正按照“3+10+X”的节奏在推进。“3”指的是Windows打印机(Linux平台很(hěn)多(duō)打印机驱动都没有(yǒu))、IE兼容的浏览器、.NET虚拟机;“10”指的是10个常见的基础应用(yòng)。

图片

胡伟武表示:“按照3+10+X的节奏,我们第一要把兼容性做好,第二是要把性能(néng)优化好,最后再把整个普通通用(yòng)的平台做好。我觉得也许今年3+10可(kě)以做好,明年我们再把X也做好。”


此外,為(wèi)了解决Linux及Windows生态当中一些用(yòng)户经常遇到的浏览器问题,龙芯还推出了自主开发的兼容IE的龙芯浏览器。比如,基于IE/Windows系统开发的大量历史应用(yòng)(各类网页元素及插件)无法在当前的Chrome等浏览器上运行,像很(hěn)多(duō)用(yòng)户登录网银都会遇到类似的问题。而龙芯浏览器通过插件兼容技术、二进制翻译、网页元素兼容转码等关键技术,实现了对IE应于的兼容。


图片


胡伟武自豪的表示:“我相信全球的Linux平台,只有(yǒu)龙芯浏览器能(néng)够顺利的登录咱们的各家网银。所以我经常说生态是做出来的,不是跟出来的,不是说我跟x86兼容,我的生态就肯定好,因為(wèi)人家的生态也不一定好。”


最后,对于目前國(guó)内信创领域出现的,自主CPU和操作系统的整机产品需要无休止的迁移适配问题,龙芯也正在推动自主编程框架和编程语言的建立。


胡伟武指出,自主CPU和國(guó)产操作系统的整机产品需要无休止的迁移适配,是因為(wèi)运行在上面的应用(yòng)都是基于國(guó)外的编程框架写出来的。而Windows、安卓、iOS平台则不存在适配问题,因為(wèi)他(tā)们有(yǒu)自己的编程框架。


胡伟武强调,自主指令系统+自主编程框架是自主软件生态的底座。自主编程框架是自主操作系统的重要特征。目前的國(guó)产操作系统都不是真正意义上的自主操作系统,只是开源操作系统的自主发行版。APP开发者使用(yòng)自主编程框架进行编程才能(néng)彻底解决无休止的适配问题。


為(wèi)了解决这一问题,龙芯计划推出自主龙芯自主编程框架LDF (Loongson appl ication Development Framework) 。据介绍,目前龙芯正在调研Windows、 IOS、 Android编程框架的特征,形成龙芯自主编程框架,争取2023/2024年推出。


图片


“龙芯经过20年的发展,到2021年自主CPU和OS基本完成补课,自主CPU的应用(yòng)软件生态正变得越来越好。龙芯将在‘十四五’期间努力完成‘三个转变’:从技术‘补课’到生态建设的转变;从政策性市场到开放市场的转变;从跟随性发展的‘必然王國(guó)到自主发展的自由王國(guó)的转变。”胡伟武最后总结说到。


编辑:芯智讯-浪客剑



分(fēn)享上面的二维码给朋友,即可(kě)直达此页!