克服奴才心態(tài),做自己的CPU指令系統(tǒng)!LoongArch將與X86/Arm并駕齊驅(qū)

?
2022年6月6日,由工業(yè)和信息化部網(wǎng)絡(luò)安全產(chǎn)業(yè)發(fā)展中心指導(dǎo),北京經(jīng)開(kāi)區(qū)國(guó)家信創(chuàng)園和龍芯中科聯(lián)合主辦的“2022年LoongArch生態(tài)發(fā)展暨通明湖創(chuàng)新應(yīng)用論壇”在線上召開(kāi)。會(huì)上,龍芯重磅發(fā)布了龍芯3C5000服務(wù)器處理器,并聯(lián)合生態(tài)伙伴共同發(fā)布新一代國(guó)產(chǎn)服務(wù)器基礎(chǔ)軟硬件平臺(tái)。
下載鏈接:
“芯”生態(tài):龍芯CPU技術(shù)與生態(tài)體系
龍芯架構(gòu)參考手冊(cè)卷一:基礎(chǔ)架構(gòu)
克服奴才心態(tài),做自己的指令系統(tǒng)
近年來(lái),在國(guó)家的重視和支持之下,國(guó)產(chǎn)CPU也迎來(lái)了快速的發(fā)展。華為、飛騰、海光、兆芯、龍芯和申威等則是目前國(guó)內(nèi)為數(shù)不多的國(guó)產(chǎn)CPU廠商。但不論是出于自主可控、商業(yè)化還是生態(tài)方面的考慮,華為、飛騰、海光、兆芯、龍芯和申威一開(kāi)始都是選擇的是利用此前已有的相對(duì)成熟的CPU指令集架構(gòu)。
比如華為、飛騰都選擇的是基于Arm公司的ARMv8指令集架構(gòu)授權(quán)來(lái)開(kāi)發(fā)自己的CPU;海光、兆芯則分別是通過(guò)與AMD和威盛成立合資公司,來(lái)獲得x86指令集授權(quán)開(kāi)發(fā)自己的CPU;龍芯最初是基于MIPS指令,申威則是基于ALPHA指令集。
時(shí)至今日,x86和Arm指令集架構(gòu)仍是最為主流的兩大指令集架構(gòu),而MIPS、ALPHA、SPARC、POWER等指令集架構(gòu)都已經(jīng)走向衰落。此外,也有正在興起的新的指令集架構(gòu),比如大家熟悉的開(kāi)源的RISC-V,目前國(guó)內(nèi)也有非常多的芯片廠商在基于RISC-V指令集架構(gòu)開(kāi)發(fā)自己的CPU。選擇已有的開(kāi)源的或者可開(kāi)放授權(quán)的CPU指令集架構(gòu),則意味著無(wú)需從頭做起,在可以滿足一定的國(guó)產(chǎn)自主可控要求的基礎(chǔ)上,可以利用已有的軟硬件生態(tài),快速得以發(fā)展。
不過(guò),在龍芯中科董事長(zhǎng)胡偉武看來(lái),不論是x86、Arm、RISC-V,還是龍芯此前采用的MISP指令集架構(gòu),都外國(guó)的指令集架構(gòu),特別是在美國(guó)對(duì)華貿(mào)易戰(zhàn)、科技戰(zhàn)背景之下,都存在著不可控的風(fēng)險(xiǎn)。尤其是對(duì)于自主可控要求更高的信創(chuàng)產(chǎn)業(yè)來(lái)說(shuō),如果采用基于國(guó)外指令集架構(gòu)的CPU,仍然難以改變核心技術(shù)受制于人的局面。
比如,近年來(lái)由于美國(guó)方面對(duì)于國(guó)產(chǎn)芯片產(chǎn)業(yè)的打壓,華為、飛騰、海光、申威等國(guó)產(chǎn)CPU廠商均已被美國(guó)商務(wù)部列入了實(shí)體清單,這也使得他們獲取新的指令集架構(gòu)的授權(quán)受到了限制。比如Arm最新的ARMv9架構(gòu),國(guó)內(nèi)廠商到目前為止沒(méi)有一家獲得授權(quán)。
“指令系統(tǒng)、基礎(chǔ)工業(yè)(工藝材料和設(shè)備)是信息產(chǎn)業(yè)的兩個(gè)最重要基石。基于國(guó)外指令系統(tǒng)的信息產(chǎn)業(yè)支撐不了中華民族偉大復(fù)興。我們中國(guó)人可以用英文來(lái)寫(xiě)文章,但不可能基于英文來(lái)發(fā)展我們自己的民族文化。同樣,我們中國(guó)人也可以用國(guó)外的指令系統(tǒng)做產(chǎn)品,但是我們不能指望用國(guó)外的指令系統(tǒng)來(lái)做自己的生態(tài)?!焙鷤ノ涮寡?,龍芯這么多年的發(fā)展歷程就是一個(gè)鮮活的例子,“做跟班是可以的,想超越是不行的。龍芯CPU曾經(jīng)在MIPS架構(gòu)里邊性能是最高的,在軟件生態(tài)方面,龍芯也是慢慢成為MIPS領(lǐng)域的主導(dǎo)者,但是MISP覺(jué)得龍芯要超過(guò)他們則是不允許的。丫鬟拿了一輩子鑰匙,也還是丫鬟。所以,我們需要克服奴才心態(tài),做自己的指令系統(tǒng)?!?/span>
胡偉武進(jìn)一步指出:“我經(jīng)常在市場(chǎng)上聽(tīng)見(jiàn)有人說(shuō)龍芯的搞自主指令集架構(gòu)芯片不行,不如x86和Arm。說(shuō)x86、Arm指令集架構(gòu),才是市場(chǎng)主流,龍芯的怎么可能干的過(guò)x86和arm?這就是一種奴才心態(tài),我們要克服這種奴才心態(tài)?!?/span>

LoongArch正成為與X86/Arm并列的頂層開(kāi)源生態(tài)系統(tǒng)
其實(shí)CPU指令系統(tǒng)的是否需要自主研發(fā),這在多年前就有討論,至今至少已經(jīng)有長(zhǎng)達(dá)15年了。自主研發(fā)有自主研發(fā)的好處,但是最大的難題在于生態(tài)的建設(shè)。而選擇采用或兼容國(guó)外指令集的優(yōu)勢(shì)則是能夠直接共享現(xiàn)有的國(guó)外指令集的軟硬件生態(tài)。而龍芯在做了20年之后的選擇是,在自主的同時(shí)去兼容。
2021年4月,龍芯正式發(fā)布了自主指令系統(tǒng)架構(gòu)LoongArch,在做到了完全的自主可控,擁有完全的自主知識(shí)產(chǎn)權(quán)的同時(shí),龍芯的LoongArch指令集還實(shí)現(xiàn)兼容多種國(guó)際主流的指令系統(tǒng)。

胡偉武表示,要做到既完全自主又兼容,需要“2+3+3+2”的十大基礎(chǔ)軟件能力。即,兩大核心軟件:BIOS和操作系統(tǒng)內(nèi)核(含驅(qū)動(dòng)和虛擬化);三大編譯器:GCC、LLVM、GOLANG;三大虛擬機(jī):Java、JavaScript、.NET;兩大二進(jìn)制翻譯系統(tǒng):x86和Arm?!拔覀儾还庖v向構(gòu)建自己的軟件生態(tài),橫向還能接入x86和Arm?!?/span>
“LoongArch指令系統(tǒng)正在與x86、Arm一樣成為一個(gè)國(guó)際主流的指令系統(tǒng),它以后還會(huì)開(kāi)源,但它跟RISC-V不一樣,RISC-V的開(kāi)源是美國(guó)人主導(dǎo)的,而我們LoongArch的開(kāi)源是我們中國(guó)人自己的開(kāi)源指令系統(tǒng)。雖然過(guò)去我們國(guó)內(nèi)曾經(jīng)有過(guò)一些自主研發(fā)的指令系統(tǒng)都沒(méi)成功,但是我相信我們的LoongArch是可以成功的?!?span style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;color: rgb(34, 34, 34);font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-style: normal;font-variant-ligatures: normal;font-variant-caps: normal;font-weight: 400;letter-spacing: 0.544px;orphans: 2;text-align: justify;text-indent: 0px;text-transform: none;widows: 2;word-spacing: 0px;-webkit-text-stroke-width: 0px;background-color: rgb(255, 255, 255);text-decoration-style: initial;text-decoration-color: initial;float: none;">胡偉武說(shuō)道。

據(jù)介紹,LoongArch架構(gòu)已得到國(guó)際開(kāi)源軟件界廣泛認(rèn)可與支持,并已向GNU組織申請(qǐng)到ELF Machine編號(hào)(258號(hào)),即LoongArch的“身份證";Linux內(nèi)核社區(qū)版本也將持續(xù)支持龍芯系列CPU和橋片。Binutils、GDB等基礎(chǔ)工具已實(shí)現(xiàn)對(duì)LoongArch的原生支持,ACPI國(guó)際標(biāo)準(zhǔn)中納入了對(duì)LoongArch架構(gòu)特性的支持;GCC已實(shí)現(xiàn)與LoongArch架構(gòu)的原生支持,LLVM、GO已經(jīng)初步實(shí)現(xiàn)對(duì)LoongArch架構(gòu)的原生社區(qū)支持;龍芯與.Net、V8、 Mozilla等社區(qū)緊密合作,基于LoongArch架構(gòu)實(shí)現(xiàn)了Java、Javascript、 . Net等三大虛擬機(jī)運(yùn)行環(huán)境。
龍芯3C5000服務(wù)器處理器發(fā)布:16核心性能媲美Arm 64核處理器
2021年7月,龍芯正式發(fā)布了首款基于自主研發(fā)的指令系統(tǒng)LoongArch的處理器芯片龍芯3A5000,性能實(shí)現(xiàn)大幅跨越,代表了我國(guó)自主CPU設(shè)計(jì)領(lǐng)域的最新里程碑成果。
作為首款基于LoongArch指令集系統(tǒng)的龍芯3A5000處理器,主頻為2.3GHz-2.5GHz,包含4個(gè)處理器核心。每個(gè)處理器核心采用64位超標(biāo)量GS464V自主微結(jié)構(gòu),包含4個(gè)定點(diǎn)單元、2個(gè)256位向量運(yùn)算單元和2個(gè)訪存單元。龍芯3A5000集成了2個(gè)支持ECC校驗(yàn)的64位DDR4-3200控制器,4個(gè)支持多處理器數(shù)據(jù)一致性的HyperTransport 3.0控制器。龍芯3A5000支持主要模塊時(shí)鐘動(dòng)態(tài)關(guān)閉,主要時(shí)鐘域動(dòng)態(tài)變頻以及主要電壓域動(dòng)態(tài)調(diào)壓等精細(xì)化功耗管理功能。
根據(jù)龍芯中科公布的國(guó)內(nèi)第三方測(cè)試機(jī)構(gòu)的測(cè)試結(jié)果顯示,龍芯3A5000處理器在GCC編譯環(huán)境下運(yùn)行SPEC CPU2006的定點(diǎn)、浮點(diǎn)單核Base分值均達(dá)到26分以上,四核分值達(dá)到80分以上?;趪?guó)產(chǎn)操作系統(tǒng)的龍芯3A5000桌面系統(tǒng)的Unixbench單線程分值達(dá)1700分以上,四線程分值達(dá)到4200分以上。上述測(cè)試分值已經(jīng)逼近市場(chǎng)主流桌面CPU水平,在國(guó)內(nèi)桌面CPU中處于領(lǐng)先地位。
較上一代龍芯3A4000處理器,龍芯3A5000處理器在保持引腳兼容的基礎(chǔ)上,性能提升50%以上,功耗降低30%以上。
據(jù)龍芯中科副總裁 張戈介紹,此次發(fā)布的龍芯3C5000系列是龍芯面向服務(wù)器領(lǐng)域傾力打造的高性能通用處理器,采用全新的龍芯LoongArch自主指令系統(tǒng),具備超強(qiáng)算力性能卓越的特點(diǎn),可滿足通用計(jì)算大型數(shù)據(jù)中心云計(jì)算中心的計(jì)算需求。
在芯片設(shè)計(jì)方面,龍芯3C5000通過(guò)封裝集成了四個(gè)3A5000硅片,形成16核處理器,重點(diǎn)優(yōu)化多核多路互聯(lián)效率。單芯片unixbench分值9500以上,雙精度計(jì)算能力達(dá)560GFlops,16核處理器峰值性能與典型Arm 64核處理器的峰值性能相當(dāng),并支持最高16路互連,搭配新一代龍芯7A2000橋片,PCIe吞吐帶寬比上一代提升400%以上??蓾M足通用計(jì)算、大型數(shù)據(jù)中心、云計(jì)算中心的計(jì)算需求。

此外,龍芯3C5000通過(guò)芯片級(jí)安全機(jī)制可為等保2.0、可信計(jì)算、國(guó)密算法替代、網(wǎng)絡(luò)安全漏洞防護(hù)等提供CPU級(jí)內(nèi)生支持。
龍芯現(xiàn)階段的主要矛盾:應(yīng)用生態(tài)
縱觀龍芯CPU的發(fā)展歷程,胡偉武認(rèn)為,可以分為三個(gè)階段:
在2019年之前,龍芯面臨的主要矛盾是CPU性能不足。比如,在2013- 2015年龍芯第一代產(chǎn)品(3A1000、3B1500) 通用處理性能只有市場(chǎng)主流產(chǎn)品的1/10,隨后在2016-2018年推出的第二代產(chǎn)品(3A2000、 3A3000) ,3A3000性能是3A1000的4倍,解決了操作系統(tǒng)與硬件結(jié)合部的穩(wěn)定性問(wèn)題,達(dá)到基本可用。

在2019-2021年,龍芯推出了第三代產(chǎn)品(3A4000、3A5000、3C5000) ,尤其是自主LoongArch指令集的3A5000性能達(dá)到了3A3000的3倍,相比上一代的3A4000性能也提升了50%以上,功耗降低30%以上,逼近市場(chǎng)主流產(chǎn)品水平,達(dá)到了好用的程度。
但是,配套的國(guó)產(chǎn)操作系統(tǒng)成為了龍芯當(dāng)時(shí)面臨的主要矛盾。當(dāng)時(shí)國(guó)內(nèi)眾多“小而散”的國(guó)產(chǎn)操作系統(tǒng)開(kāi)發(fā)團(tuán)隊(duì)逐漸整合成了統(tǒng)信、麒麟兩大國(guó)產(chǎn)操作系統(tǒng)團(tuán)隊(duì),各自已有2000-3000人的規(guī)模。在這過(guò)程中,龍芯需要解決操作系統(tǒng)與硬件結(jié)合部的兼容性問(wèn)題,消除操作系統(tǒng)和硬件的組合“爆炸”。
“我們?cè)?jīng)有一個(gè)時(shí)期,每個(gè)整一個(gè)操作系統(tǒng)對(duì)每款整機(jī)都有適配,現(xiàn)在我們一個(gè)操作系統(tǒng),不管誰(shuí)的整機(jī),比如只要龍芯CPU裝上就能跑。”胡偉武說(shuō)道。
隨著自主LoongArch指令集的3A5000系列的推出,接下來(lái),龍芯還將會(huì)推出第四代產(chǎn)品(3A6000、3A7000) ,屆時(shí)將達(dá)到市場(chǎng)主流產(chǎn)品水平。
據(jù)胡偉武透露,3A6000將會(huì)采用與3A5000相同的制裁工藝(應(yīng)該是12nm),將主要通過(guò)設(shè)計(jì)優(yōu)化來(lái)提高性能。基于仿真結(jié)果,3A6000處理器單核SPEC CPU 2006定點(diǎn)/浮點(diǎn)base分值(GCC)從26/28分提高到35/45分,雙DDR4的Stream帶寬(峰值51. 2GBps)也將從25GBps提高到38GBps。

隨著龍芯CPU性能的不斷提高,2022年起龍芯技術(shù)平臺(tái)的主要矛盾也開(kāi)始轉(zhuǎn)向應(yīng)用生態(tài)。龍芯基礎(chǔ)軟件工作重點(diǎn)也從操作系統(tǒng)與硬件結(jié)合部轉(zhuǎn)向操作系統(tǒng)與應(yīng)用結(jié)合部。
三大舉措,構(gòu)建LoongArch應(yīng)用生態(tài)
對(duì)此,龍芯采取了三大舉措:一個(gè)是夯實(shí)基礎(chǔ);二是廣泛兼容,不光Linux內(nèi)部的兼容,還要跟x86和Arm兼容;三是開(kāi)發(fā)自主應(yīng)用,形成自主編程框架和編程語(yǔ)言。
為此,龍芯除了持續(xù)與統(tǒng)信、麒麟等國(guó)產(chǎn)操作系統(tǒng)廠商合作之外,還面向信息化應(yīng)用和工控及終端應(yīng)用分別推出了龍芯基礎(chǔ)版操作系統(tǒng)Loongnix和龍芯基礎(chǔ)版操作系統(tǒng)LoongOS。
龍芯還完成了LoongArch基礎(chǔ)軟件體系(LBF)的建設(shè),已經(jīng)可以實(shí)現(xiàn)原生支持Linux全部主流基礎(chǔ)軟件和應(yīng)用環(huán)境。也就是說(shuō),在Linux平臺(tái)上,x86、Arm有的,龍芯也有。

當(dāng)然,Linux平臺(tái)的開(kāi)放性也引發(fā)了很多應(yīng)用兼容性問(wèn)題,包括打包格式不兼容,API環(huán)境不兼容,內(nèi)核升級(jí)引起不兼容等等。為了解決這一問(wèn)題,龍芯推出了龍芯應(yīng)用兼容框架(LCF)實(shí)現(xiàn)跨Linux版本應(yīng)用兼容。
而為了兼容各種x86、Arm應(yīng)用,龍芯也推出了自研的x86架構(gòu)翻譯系統(tǒng)(LATX)和Arm架構(gòu)翻譯系統(tǒng)。胡偉武表示,這里邊需要用到很多核心技術(shù):首先LoongArch指令一定要加入一些x86和Arm功能的指令,這樣翻譯才會(huì)高效;其次,要做一個(gè)從x86架構(gòu)到LoongArch架構(gòu)的高效的二進(jìn)制翻譯器;第三還要模擬出Windows環(huán)境來(lái)。
據(jù)介紹,目前龍芯在兼容x86/Windows應(yīng)用方面,正按照“3+10+X”的節(jié)奏在推進(jìn)?!?”指的是Windows打印機(jī)(Linux平臺(tái)很多打印機(jī)驅(qū)動(dòng)都沒(méi)有)、IE兼容的瀏覽器、.NET虛擬機(jī);“10”指的是10個(gè)常見(jiàn)的基礎(chǔ)應(yīng)用。

胡偉武表示:“按照3+10+X的節(jié)奏,我們第一要把兼容性做好,第二是要把性能優(yōu)化好,最后再把整個(gè)普通通用的平臺(tái)做好。我覺(jué)得也許今年3+10可以做好,明年我們?cè)侔裍也做好?!?/span>
此外,為了解決Linux及Windows生態(tài)當(dāng)中一些用戶(hù)經(jīng)常遇到的瀏覽器問(wèn)題,龍芯還推出了自主開(kāi)發(fā)的兼容IE的龍芯瀏覽器。比如,基于IE/Windows系統(tǒng)開(kāi)發(fā)的大量歷史應(yīng)用(各類(lèi)網(wǎng)頁(yè)元素及插件)無(wú)法在當(dāng)前的Chrome等瀏覽器上運(yùn)行,像很多用戶(hù)登錄網(wǎng)銀都會(huì)遇到類(lèi)似的問(wèn)題。而龍芯瀏覽器通過(guò)插件兼容技術(shù)、二進(jìn)制翻譯、網(wǎng)頁(yè)元素兼容轉(zhuǎn)碼等關(guān)鍵技術(shù),實(shí)現(xiàn)了對(duì)IE應(yīng)于的兼容。

胡偉武自豪的表示:“我相信全球的Linux平臺(tái),只有龍芯瀏覽器能夠順利的登錄咱們的各家網(wǎng)銀。所以我經(jīng)常說(shuō)生態(tài)是做出來(lái)的,不是跟出來(lái)的,不是說(shuō)我跟x86兼容,我的生態(tài)就肯定好,因?yàn)槿思业纳鷳B(tài)也不一定好。”
最后,對(duì)于目前國(guó)內(nèi)信創(chuàng)領(lǐng)域出現(xiàn)的,自主CPU和操作系統(tǒng)的整機(jī)產(chǎn)品需要無(wú)休止的遷移適配問(wèn)題,龍芯也正在推動(dòng)自主編程框架和編程語(yǔ)言的建立。
胡偉武指出,自主CPU和國(guó)產(chǎn)操作系統(tǒng)的整機(jī)產(chǎn)品需要無(wú)休止的遷移適配,是因?yàn)檫\(yùn)行在上面的應(yīng)用都是基于國(guó)外的編程框架寫(xiě)出來(lái)的。而Windows、安卓、iOS平臺(tái)則不存在適配問(wèn)題,因?yàn)樗麄冇凶约旱木幊炭蚣堋?/span>
胡偉武強(qiáng)調(diào),自主指令系統(tǒng)+自主編程框架是自主軟件生態(tài)的底座。自主編程框架是自主操作系統(tǒng)的重要特征。目前的國(guó)產(chǎn)操作系統(tǒng)都不是真正意義上的自主操作系統(tǒng),只是開(kāi)源操作系統(tǒng)的自主發(fā)行版。APP開(kāi)發(fā)者使用自主編程框架進(jìn)行編程才能徹底解決無(wú)休止的適配問(wèn)題。
為了解決這一問(wèn)題,龍芯計(jì)劃推出自主龍芯自主編程框架LDF (Loongson appl ication Development Framework) 。據(jù)介紹,目前龍芯正在調(diào)研Windows、 IOS、 Android編程框架的特征,形成龍芯自主編程框架,爭(zhēng)取2023/2024年推出。

“龍芯經(jīng)過(guò)20年的發(fā)展,到2021年自主CPU和OS基本完成補(bǔ)課,自主CPU的應(yīng)用軟件生態(tài)正變得越來(lái)越好。龍芯將在‘十四五’期間努力完成‘三個(gè)轉(zhuǎn)變’:從技術(shù)‘補(bǔ)課’到生態(tài)建設(shè)的轉(zhuǎn)變;從政策性市場(chǎng)到開(kāi)放市場(chǎng)的轉(zhuǎn)變;從跟隨性發(fā)展的‘必然王國(guó)’到自主發(fā)展的‘自由王國(guó)’的轉(zhuǎn)變。”胡偉武最后總結(jié)說(shuō)到。
本號(hào)資料全部上傳至知識(shí)星球,更多內(nèi)容請(qǐng)登錄智能計(jì)算芯知識(shí)(知識(shí)星球)星球下載全部資料。

免責(zé)申明:本號(hào)聚焦相關(guān)技術(shù)分享,內(nèi)容觀點(diǎn)不代表本號(hào)立場(chǎng),可追溯內(nèi)容均注明來(lái)源,發(fā)布文章若存在版權(quán)等問(wèn)題,請(qǐng)留言聯(lián)系刪除,謝謝。
電子書(shū)<服務(wù)器基礎(chǔ)知識(shí)全解(終極版)>更新完畢。
獲取方式:點(diǎn)擊“閱讀原文”即可查看182頁(yè) PPT可編輯版本和PDF閱讀版本詳情。
溫馨提示:
請(qǐng)搜索“AI_Architect”或“掃碼”關(guān)注公眾號(hào)實(shí)時(shí)掌握深度技術(shù)分享,點(diǎn)擊“閱讀原文”獲取更多原創(chuàng)技術(shù)干貨。

