龍芯胡偉武:克服奴才心态,做自己的CPU指令系統!LoongArch將(jiāng)與X86/Arm并駕齊驅

 信創資訊     |      2022-06-07 15:50:00    |      中芯教育

圖片


2022年6月6日,由工業和信息化部網絡安全産業發展中心指導,北京經開區國家信創園和龍芯中科聯合主辦的“2022年LoongArch生态發展暨通明湖創新應用論壇”在線上召開。會上,龍芯重磅發布了龍芯3C5000服務器處理器,并聯合生态夥伴共同發布新一代國産服務器基礎軟硬件平台。


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



近年來,在國家的重視和支持之下,國産CPU也迎來了快速的發展。華爲、飛騰、海光、兆芯、龍芯和申威等則是目前國内爲數不多的國産CPU廠商。但不論是出于自主可控、商業化還是生态方面(miàn)的考慮,華爲、飛騰、海光、兆芯、龍芯和申威一開始都(dōu)是選擇的是利用此前已有的相對成(chéng)熟的CPU指令集架構。

比如華爲、飛騰都(dōu)選擇的是基于Arm公司的ARMv8指令集架構授權來開發自己的CPU;海光、兆芯則分别是通過與AMD和威盛成(chéng)立合資公司,來獲得x86指令集授權開發自己的CPU;龍芯最初是基于MIPS指令,申威則是基于ALPHA指令集。

時至今日,x86和Arm指令集架構仍是最爲主流的兩大指令集架構,而MIPS、ALPHA、SPARC、POWER等指令集架構都(dōu)已經走向(xiàng)衰落。此外,也有正在興起(qǐ)的新的指令集架構,比如大家熟悉的開源的RISC-V,目前國内也有非常多的芯片廠商在基于RISC-V指令集架構開發自己的CPU。選擇已有的開源的或者可開放授權的CPU指令集架構,則意味著(zhe)無需從頭做起(qǐ),在可以滿足一定的國産自主可控要求的基礎上,可以利用已有的軟硬件生态,快速得以發展。

不過,在龍芯中科董事(shì)長胡偉武看來,不論是x86、Arm、RISC-V,還是龍芯此前采用的MISP指令集架構,都(dōu)外國的指令集架構,特别是在美國對華貿易戰、科技戰背景之下,都(dōu)存在著(zhe)不可控的風險。尤其是對于自主可控要求更高的信創産業來說,如果采用基于國外指令集架構的CPU,仍然難以改變核心技術受制于人的局面(miàn)。

比如,近年來由于美國方面(miàn)對于國産芯片産業的打壓,華爲、飛騰、海光、申威等國産CPU廠商均已被(bèi)美國商務部列入了實體清單,這也使得他們獲取新的指令集架構的授權受到了限制。比如Arm最新的ARMv9架構,國内廠商到目前爲止沒有一家獲得授權。


“指令系統、基礎工業(工藝材料和設備)是信息産業的兩個最重要基石。基于國外指令系統的信息産業支撐不了中華民族偉大複興。我們中國人可以用英文來寫文章,但不可能(néng)基于英文來發展我們自己的民族文化。同樣,我們中國人也可以用國外的指令系統做産品,但是我們不能(néng)指望用國外的指令系統來做自己的生态。”胡偉武坦言,龍芯這麽多年的發展曆程就(jiù)是一個鮮活的例子,“做跟班是可以的,想超越是不行的。龍芯CPU曾經在MIPS架構裏邊性能(néng)是最高的,在軟件生态方面(miàn),龍芯也是慢慢成(chéng)爲MIPS領域的主導者,但是MISP覺得龍芯要超過他們則是不允許的。丫鬟拿了一輩子鑰匙,也還是丫鬟。所以,我們需要克服奴才心态,做自己的指令系統。”


圖片

龍芯中科董事(shì)長 胡偉武



胡偉武進一步指出:“我經常在市場上聽見有人說龍芯的搞自主指令集架構芯片不行,不如x86和Arm。說x86、Arm指令集架構,才是市場主流,龍芯的怎麽可能(néng)幹的過x86和arm?這就(jiù)是一種奴才心态,我們要克服這種奴才心态。”

圖片


LoongArch正成(chéng)爲與X86/Arm并列的頂層開源生态系統

其實CPU指令系統的是否需要自主研發,這在多年前就(jiù)有讨論,至今至少已經有長達15年了。自主研發有自主研發的好(hǎo)處,但是最大的難題在于生态的建設。而選擇采用或兼容國外指令集的優勢則是能(néng)夠直接共享現有的國外指令集的軟硬件生态。而龍芯在做了20年之後的選擇是,在自主的同時去兼容。

2021年4月,龍芯正式發布了自主指令系統架構LoongArch,在做到了完全的自主可控,擁有完全的自主知識産權的同時,龍芯的LoongArch指令集還實現兼容多種國際主流的指令系統。

圖片

胡偉武表示,要做到既完全自主又兼容,需要“2+3+3+2”的十大基礎軟件能(néng)力。即,兩大核心軟件:BIOS和操作系統内核(含驅動和虛拟化);三大編譯器:GCC、LLVM、GOLANG;三大虛拟機:Java、JavaScript、.NET;兩大二進制翻譯系統:x86和Arm。“我們不光要縱向(xiàng)構建自己的軟件生态,橫向(xiàng)還能(néng)接入x86和Arm。”


“LoongArch指令系統正在與x86、Arm一樣成(chéng)爲一個國際主流的指令系統,它以後還會開源,但它跟RISC-V不一樣,RISC-V的開源是美國人主導的,而我們LoongArch的開源是我們中國人自己的開源指令系統。雖然過去我們國内曾經有過一些自主研發的指令系統都(dōu)沒成(chéng)功,但是我相信我們的LoongArch是可以成(chéng)功的。”胡偉武說道(dào)。




圖片



據介紹,LoongArch架構已得到國際開源軟件界廣泛認可與支持,并已向(xiàng)GNU組織申請到ELF Machine編号(258号),即LoongArch的“身份證";Linux内核社區版本也將(jiāng)持續支持龍芯系列CPU和橋片。Binutils、GDB等基礎工具已實現對LoongArch的原生支持,ACPI國際标準中納入了對LoongArch架構特性的支持;GCC已實現與LoongArch架構的原生支持,LLVM、GO已經初步實現對LoongArch架構的原生社區支持;龍芯與.Net、V8、 Mozilla等社區緊密合作,基于LoongArch架構實現了Java、Javascript、 . Net等三大虛拟機運行環境。

龍芯3C5000服務器處理器發布:16核心性能(néng)媲美Arm 64核處理器

2021年7月,龍芯正式發布了首款基于自主研發的指令系統LoongArch的處理器芯片龍芯3A5000,性能(néng)實現大幅跨越,代表了我國自主CPU設計領域的最新裏程碑成(chéng)果。

作爲首款基于LoongArch指令集系統的龍芯3A5000處理器,主頻爲2.3GHz-2.5GHz,包含4個處理器核心。每個處理器核心采用64位超标量GS464V自主微結構,包含4個定點單元、2個256位向(xiàng)量運算單元和2個訪存單元。龍芯3A5000集成(chéng)了2個支持ECC校驗的64位DDR4-3200控制器,4個支持多處理器數據一緻性的HyperTransport 3.0控制器。龍芯3A5000支持主要模塊時鍾動态關閉,主要時鍾域動态變頻以及主要電壓域動态調壓等精細化功耗管理功能(néng)。


根據龍芯中科公布的國内第三方測試機構的測試結果顯示,龍芯3A5000處理器在GCC編譯環境下運行SPEC CPU2006的定點、浮點單核Base分值均達到26分以上,四核分值達到80分以上。基于國産操作系統的龍芯3A5000桌面(miàn)系統的Unixbench單線程分值達1700分以上,四線程分值達到4200分以上。上述測試分值已經逼近市場主流桌面(miàn)CPU水平,在國内桌面(miàn)CPU中處于領先地位。


較上一代龍芯3A4000處理器,龍芯3A5000處理器在保持引腳兼容的基礎上,性能(néng)提升50%以上,功耗降低30%以上。


據龍芯中科副總裁 張戈介紹,此次發布的龍芯3C5000系列是龍芯面(miàn)向(xiàng)服務器領域傾力打造的高性能(néng)通用處理器,采用全新的龍芯LoongArch自主指令系統,具備超強算力性能(néng)卓越的特點,可滿足通用計算大型數據中心雲計算中心的計算需求。


圖片

龍芯中科副總裁 張戈


在芯片設計方面(miàn),龍芯3C5000通過封裝集成(chéng)了四個3A5000矽片,形成(chéng)16核處理器,重點優化多核多路互聯效率。單芯片unixbench分值9500以上,雙精度計算能(néng)力達560GFlops,16核處理器峰值性能(néng)與典型Arm 64核處理器的峰值性能(néng)相當,并支持最高16路互連,搭配新一代龍芯7A2000橋片,PCIe吞吐帶寬比上一代提升400%以上。可滿足通用計算、大型數據中心、雲計算中心的計算需求。


圖片



此外,龍芯3C5000通過芯片級安全機制可爲等保2.0、可信計算、國密算法替代、網絡安全漏洞防護等提供CPU級内生支持。


龍芯現階段的主要矛盾:應用生态


縱觀龍芯CPU的發展曆程,胡偉武認爲,可以分爲三個階段:


在2019年之前,龍芯面(miàn)臨的主要矛盾是CPU性能(néng)不足。比如,在2013- 2015年龍芯第一代産品(3A1000、3B1500) 通用處理性能(néng)隻有市場主流産品的1/10,随後在2016-2018年推出的第二代産品(3A2000、 3A3000) ,3A3000性能(néng)是3A1000的4倍,解決了操作系統與硬件結合部的穩定性問題,達到基本可用。


圖片


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


但是,配套的國産操作系統成(chéng)爲了龍芯當時面(miàn)臨的主要矛盾。當時國内衆多“小而散”的國産操作系統開發團隊逐漸整合成(chéng)了統信、麒麟兩大國産操作系統團隊,各自已有2000-3000人的規模。在這過程中,龍芯需要解決操作系統與硬件結合部的兼容性問題,消除操作系統和硬件的組合“爆炸”。


“我們曾經有一個時期,每個整一個操作系統對每款整機都(dōu)有适配,現在我們一個操作系統,不管誰的整機,比如隻要龍芯CPU裝上就(jiù)能(néng)跑。”胡偉武說道(dào)。


随著(zhe)自主LoongArch指令集的3A5000系列的推出,接下來,龍芯還將(jiāng)會推出第四代産品(3A6000、3A7000) ,屆時將(jiāng)達到市場主流産品水平。


據胡偉武透露,3A6000將(jiāng)會采用與3A5000相同的制裁工藝(應該是12nm),將(jiāng)主要通過設計優化來提高性能(néng)。基于仿真結果,3A6000處理器單核SPEC CPU 2006定點/浮點base分值(GCC)從26/28分提高到35/45分,雙DDR4的Stream帶寬(峰值51. 2GBps)也將(jiāng)從25GBps提高到38GBps。


圖片



随著(zhe)龍芯CPU性能(néng)的不斷提高,2022年起(qǐ)龍芯技術平台的主要矛盾也開始轉向(xiàng)應用生态。龍芯基礎軟件工作重點也從操作系統與硬件結合部轉向(xiàng)操作系統與應用結合部。


三大舉措,構建LoongArch應用生态


對此,龍芯采取了三大舉措:一個是夯實基礎;二是廣泛兼容,不光Linux内部的兼容,還要跟x86和Arm兼容;三是開發自主應用,形成(chéng)自主編程框架和編程語言。


爲此,龍芯除了持續與統信、麒麟等國産操作系統廠商合作之外,還面(miàn)向(xiàng)信息化應用和工控及終端應用分别推出了龍芯基礎版操作系統Loongnix和龍芯基礎版操作系統LoongOS。


龍芯還完成(chéng)了LoongArch基礎軟件體系(LBF)的建設,已經可以實現原生支持Linux全部主流基礎軟件和應用環境。也就(jiù)是說,在Linux平台上,x86、Arm有的,龍芯也有。


圖片


當然,Linux平台的開放性也引發了很多應用兼容性問題,包括打包格式不兼容,API環境不兼容,内核升級引起(qǐ)不兼容等等。爲了解決這一問題,龍芯推出了龍芯應用兼容框架(LCF)實現跨Linux版本應用兼容。


而爲了兼容各種x86、Arm應用,龍芯也推出了自研的x86架構翻譯系統(LATX)和Arm架構翻譯系統。胡偉武表示,這裏邊需要用到很多核心技術:首先LoongArch指令一定要加入一些x86和Arm功能(néng)的指令,這樣翻譯才會高效;其次,要做一個從x86架構到LoongArch架構的高效的二進制翻譯器;第三還要模拟出Windows環境來。


據介紹,目前龍芯在兼容x86/Windows應用方面(miàn),正按照“3+10+X”的節奏在推進。“3”指的是Windows打印機(Linux平台很多打印機驅動都(dōu)沒有)、IE兼容的浏覽器、.NET虛拟機;“10”指的是10個常見的基礎應用。

圖片

胡偉武表示:“按照3+10+X的節奏,我們第一要把兼容性做好(hǎo),第二是要把性能(néng)優化好(hǎo),最後再把整個普通通用的平台做好(hǎo)。我覺得也許今年3+10可以做好(hǎo),明年我們再把X也做好(hǎo)。”


此外,爲了解決Linux及Windows生态當中一些用戶經常遇到的浏覽器問題,龍芯還推出了自主開發的兼容IE的龍芯浏覽器。比如,基于IE/Windows系統開發的大量曆史應用(各類網頁元素及插件)無法在當前的Chrome等浏覽器上運行,像很多用戶登錄網銀都(dōu)會遇到類似的問題。而龍芯浏覽器通過插件兼容技術、二進制翻譯、網頁元素兼容轉碼等關鍵技術,實現了對IE應于的兼容。


圖片


胡偉武自豪的表示:“我相信全球的Linux平台,隻有龍芯浏覽器能(néng)夠順利的登錄咱們的各家網銀。所以我經常說生态是做出來的,不是跟出來的,不是說我跟x86兼容,我的生态就(jiù)肯定好(hǎo),因爲人家的生态也不一定好(hǎo)。”


最後,對于目前國内信創領域出現的,自主CPU和操作系統的整機産品需要無休止的遷移适配問題,龍芯也正在推動自主編程框架和編程語言的建立。


胡偉武指出,自主CPU和國産操作系統的整機産品需要無休止的遷移适配,是因爲運行在上面(miàn)的應用都(dōu)是基于國外的編程框架寫出來的。而Windows、安卓、iOS平台則不存在适配問題,因爲他們有自己的編程框架。


胡偉武強調,自主指令系統+自主編程框架是自主軟件生态的底座。自主編程框架是自主操作系統的重要特征。目前的國産操作系統都(dōu)不是真正意義上的自主操作系統,隻是開源操作系統的自主發行版。APP開發者使用自主編程框架進行編程才能(néng)徹底解決無休止的适配問題。


爲了解決這一問題,龍芯計劃推出自主龍芯自主編程框架LDF (Loongson appl ication Development Framework) 。據介紹,目前龍芯正在調研Windows、 IOS、 Android編程框架的特征,形成(chéng)龍芯自主編程框架,争取2023/2024年推出。


圖片


“龍芯經過20年的發展,到2021年自主CPU和OS基本完成(chéng)補課,自主CPU的應用軟件生态正變得越來越好(hǎo)。龍芯將(jiāng)在‘十四五’期間努力完成(chéng)‘三個轉變’:從技術‘補課’到生态建設的轉變;從政策性市場到開放市場的轉變;從跟随性發展的‘必然王國到自主發展的自由王國的轉變。”胡偉武最後總結說到。


編輯:芯智訊-浪客劍



分享上面(miàn)的二維碼給朋友,即可直達此頁!