龍芯胡偉武:克服奴才心態,做自己的CPU指令系統
2022年6月6日,由工業和信息化部網絡安全產業發展中心指導,北京經開區國家信創園和龍芯中科聯合主辦的“2022年LoongArch生態發展暨通明湖創新應用論壇”在線上召開。會上,龍芯重磅發布了龍芯3C5000服務器處理器,並聯合生態夥伴共同發布新一代國產服務器基礎軟硬件平台。
克服奴才心態,做自己的指令系統
近年來,在國家的重視和支持之下,國產CPU也迎來了快速的發展。華為、飛騰、海光、兆芯、龍芯和申威等則是目前國內為數不多的國產CPU廠商。但不論是出於自主可控、商業化還是生態方面的考慮,華為、飛騰、海光、兆芯、龍芯和申威一開始都是選擇的是利用此前已有的相對成熟的CPU指令集架構。
比如華為、飛騰都選擇的是基於Arm公司的ARMv8指令集架構授權來開發自己的CPU;海光、兆芯則分別是通過與AMD和威盛成立合資公司,來獲得x86指令集授權開發自己的CPU;龍芯最初是基於MIPS指令,申威則是基於ALPHA指令集。
時至今日,x86和Arm指令集架構仍是最為主流的兩大指令集架構,而MIPS、ALPHA、SPARC、POWER等指令集架構都已經走向衰落。此外,也有正在興起的新的指令集架構,比如大家熟悉的開源的RISC-V,目前國內也有非常多的芯片廠商在基於RISC-V指令集架構開發自己的CPU。選擇已有的開源的或者可開放授權的CPU指令集架構,則意味著無需從頭做起,在可以滿足一定的國產自主可控要求的基礎上,可以利用已有的軟硬件生態,快速得以發展。
不過,在龍芯中科董事長胡偉武看來,不論是x86、Arm、RISC-V,還是龍芯此前採用的MISP指令集架構,都外國的指令集架構,特別是在美國對華貿易戰、科技戰背景之下,都存在著不可控的風險。尤其是對於自主可控要求更高的信創產業來說,如果採用基於國外指令集架構的CPU,仍然難以改變核心技術受制於人的局面。
比如,近年來由於美國方面對於國產芯片產業的打壓,華為、飛騰、海光、申威等國產CPU廠商均已被美國商務部列入了實體清單,這也使得他們獲取新的指令集架構的授權受到了限制。比如Arm最新的ARMv9架構,國內廠商到目前為止沒有一家獲得授權。
“指令系統、基礎工業(工藝材料和設備)是信息產業的兩個最重要基石。基於國外指令系統的信息產業支撐不了中華民族偉大復興。我們中國人可以用英文來寫文章,但不可能基於英文來發展我們自己的民族文化。同樣,我們中國人也可以用國外的指令系統做產品,但是我們不能指望用國外的指令系統來做自己的生態。”胡偉武坦言,龍芯這麼多年的發展歷程就是一個鮮活的例子,“做跟班是可以的,想超越是不行的。龍芯CPU曾經在MIPS架構裡邊性能是最高的,在軟件生態方面,龍芯也是慢慢成為MIPS領域的主導者,但是MISP覺得龍芯要超過他們則是不允許的。丫鬟拿了一輩子鑰匙,也還是丫鬟。所以,我們需要克服奴才心態,做自己的指令系統。”
龍芯中科董事長胡偉武
胡偉武進一步指出:“我經常在市場上聽見有人說龍芯的搞自主指令集架構芯片不行,不如x86和Arm。說x86、Arm指令集架構,才是市場主流,龍芯的怎麼可能幹的過x86和arm?這就是一種奴才心態,我們要克服這種奴才心態。”
LoongArch正成為與X86/Arm並列的頂層開源生態系統
其實CPU指令系統的是否需要自主研發,這在多年前就有討論,至今至少已經有長達15年了。自主研發有自主研發的好處,但是最大的難題在於生態的建設。而選擇採用或兼容國外指令集的優勢則是能夠直接共享現有的國外指令集的軟硬件生態。而龍芯在做了20年之後的選擇是,在自主的同時去兼容。
2021年4月,龍芯正式發布了自主指令系統架構LoongArch,在做到了完全的自主可控,擁有完全的自主知識產權的同時,龍芯的LoongArch指令集還實現兼容多種國際主流的指令系統。
胡偉武表示,要做到既完全自主又兼容,需要“2+3+3+2”的十大基礎軟件能力。即,兩大核心軟件:BIOS和操作系統內核(含驅動和虛擬化);三大編譯器:GCC、LLVM、GOLANG;三大虛擬機:Java、JavaScript、.NET;兩大二進制翻譯系統:x86和Arm。“我們不光要縱向構建自己的軟件生態,橫向還能接入x86和Arm。”
“LoongArch指令系統正在與x86、Arm一樣成為一個國際主流的指令系統,它以後還會開源,但它跟RISC-V不一樣,RISC-V的開源是美國人主導的,而我們LoongArch的開源是我們中國人自己的開源指令系統。雖然過去我們國內曾經有過一些自主研發的指令系統都沒成功,但是我相信我們的LoongArch是可以成功的。”胡偉武說道。
據介紹,LoongArch架構已得到國際開源軟件界廣泛認可與支持,並已向GNU組織申請到ELF Machine編號(258號),即LoongArch的“身份證”;Linux內核社區版本也將持續支持龍芯系列CPU和橋片。Binutils、GDB等基礎工具已實現對LoongArch的原生支持,ACPI國際標準中納入了對LoongArch架構特性的支持;GCC已實現與LoongArch架構的原生支持,LLVM、GO已經初步實現對LoongArch架構的原生社區支持;龍芯與.Net、V8、 Mozilla等社區緊密合作,基於LoongArch架構實現了Java、Javascript、 . Net等三大虛擬機運行環境。
龍芯3C5000服務器處理器發布:16核心性能媲美Arm 64核處理器
2021年7月,龍芯正式發布了首款基於自主研發的指令系統LoongArch的處理器芯片龍芯3A5000,性能實現大幅跨越,代表了我國自主CPU設計領域的最新里程碑成果。
作為首款基於LoongArch指令集系統的龍芯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中處於領先地位。
較上一代龍芯3A4000處理器,龍芯3A5000處理器在保持引腳兼容的基礎上,性能提升50%以上,功耗降低30%以上。
據龍芯中科副總裁張戈介紹,此次發布的龍芯3C5000系列是龍芯面向服務器領域傾力打造的高性能通用處理器,採用全新的龍芯LoongArch自主指令系統,具備超強算力性能卓越的特點,可滿足通用計算大型數據中心雲計算中心的計算需求。
龍芯中科副總裁張戈
在芯片設計方面,龍芯3C5000通過封裝集成了四個3A5000矽片,形成16核處理器,重點優化多核多路互聯效率。單芯片unixbench分值9500以上,雙精度計算能力達560GFlops,16核處理器峰值性能與典型Arm 64核處理器的峰值性能相當,並支持最高16路互連,搭配新一代龍芯7A2000橋片,PCIe吞吐帶寬比上一代提升400%以上。可滿足通用計算、大型數據中心、雲計算中心的計算需求。
此外,龍芯3C5000通過芯片級安全機制可為等保2.0、可信計算、國密算法替代、網絡安全漏洞防護等提供CPU級內生支持。
龍芯現階段的主要矛盾:應用生態
縱觀龍芯CPU的發展歷程,胡偉武認為,可以分為三個階段:
在2019年之前,龍芯面臨的主要矛盾是CPU性能不足。比如,在2013- 2015年龍芯第一代產品(3A1000、3B1500) 通用處理性能只有市場主流產品的1/10,隨後在2016-2018年推出的第二代產品(3A2000、 3A3000) ,3A3000性能是3A1000的4倍,解決了操作系統與硬件結合部的穩定性問題,達到基本可用。
在2019-2021年,龍芯推出了第三代產品(3A4000、3A5000、3C5000) ,尤其是自主LoongArch指令集的3A5000性能達到了3A3000的3倍,相比上一代的3A4000性能也提升了50%以上,功耗降低30%以上,逼近市場主流產品水平,達到了好用的程度。
但是,配套的國產操作系統成為了龍芯當時面臨的主要矛盾。當時國內眾多“小而散”的國產操作系統開發團隊逐漸整合成了統信、麒麟兩大國產操作系統團隊,各自已有2000-3000人的規模。在這過程中,龍芯需要解決操作系統與硬件結合部的兼容性問題,消除操作系統和硬件的組合“爆炸”。
“我們曾經有一個時期,每個整一個操作系統對每款整機都有適配,現在我們一個操作系統,不管誰的整機,比如只要龍芯CPU裝上就能跑。”胡偉武說道。
隨著自主LoongArch指令集的3A5000系列的推出,接下來,龍芯還將會推出第四代產品(3A6000、3A7000) ,屆時將達到市場主流產品水平。
據胡偉武透露,3A6000將會採用與3A5000相同的製裁工藝(應該是12nm),將主要通過設計優化來提高性能。基於仿真結果,3A6000處理器單核SPEC CPU 2006定點/浮點base分值(GCC)從26/28分提高到35/45分,雙DDR4的Stream帶寬(峰值51. 2GBps)也將從25GBps提高到38GBps。
隨著龍芯CPU性能的不斷提高,2022年起龍芯技術平台的主要矛盾也開始轉向應用生態。龍芯基礎軟件工作重點也從操作系統與硬件結合部轉向操作系統與應用結合部。
三大舉措,構建LoongArch應用生態
對此,龍芯採取了三大舉措:一個是夯實基礎;二是廣泛兼容,不光Linux內部的兼容,還要跟x86和Arm兼容;三是開發自主應用,形成自主編程框架和編程語言。
為此,龍芯除了持續與統信、麒麟等國產操作系統廠商合作之外,還面向信息化應用和工控及終端應用分別推出了龍芯基礎版操作系統Loongnix和龍芯基礎版操作系統LoongOS。
龍芯還完成了LoongArch基礎軟件體系(LBF)的建設,已經可以實現原生支持Linux全部主流基礎軟件和應用環境。也就是說,在Linux平台上,x86、Arm有的,龍芯也有。
當然,Linux平台的開放性也引發了很多應用兼容性問題,包括打包格式不兼容,API環境不兼容,內核升級引起不兼容等等。為了解決這一問題,龍芯推出了龍芯應用兼容框架(LCF)實現跨Linux版本應用兼容。
而為了兼容各種x86、Arm應用,龍芯也推出了自研的x86架構翻譯系統(LATX)和Arm架構翻譯系統。胡偉武表示,這裡邊需要用到很多核心技術:首先LoongArch指令一定要加入一些x86和Arm功能的指令,這樣翻譯才會高效;其次,要做一個從x86架構到LoongArch架構的高效的二進制翻譯器;第三還要模擬出Windows環境來。
據介紹,目前龍芯在兼容x86/Windows應用方面,正按照“3+10+X”的節奏在推進。“3”指的是Windows打印機(Linux平台很多打印機驅動都沒有)、IE兼容的瀏覽器、.NET虛擬機;“10”指的是10個常見的基礎應用。
胡偉武表示:“按照3+10+X的節奏,我們第一要把兼容性做好,第二是要把性能優化好,最後再把整個普通通用的平台做好。我覺得也許今年3+10可以做好,明年我們再把X也做好。”
此外,為了解決Linux及Windows生態當中一些用戶經常遇到的瀏覽器問題,龍芯還推出了自主開發的兼容IE的龍芯瀏覽器。比如,基於IE/Windows系統開發的大量歷史應用(各類網頁元素及插件)無法在當前的Chrome等瀏覽器上運行,像很多用戶登錄網銀都會遇到類似的問題。而龍芯瀏覽器通過插件兼容技術、二進制翻譯、網頁元素兼容轉碼等關鍵技術,實現了對IE應於的兼容。
胡偉武自豪的表示:“我相信全球的Linux平台,只有龍芯瀏覽器能夠順利的登錄咱們的各家網銀。所以我經常說生態是做出來的,不是跟出來的,不是說我跟x86兼容,我的生態就肯定好,因為人家的生態也不一定好。”
最後,對於目前國內信創領域出現的,自主CPU和操作系統的整機產品需要無休止的遷移適配問題,龍芯也正在推動自主編程框架和編程語言的建立。
胡偉武指出,自主CPU和國產操作系統的整機產品需要無休止的遷移適配,是因為運行在上面的應用都是基於國外的編程框架寫出來的。而Windows、Android、iOS平台則不存在適配問題,因為他們有自己的編程框架。
胡偉武強調,自主指令系統+自主編程框架是自主軟件生態的底座。自主編程框架是自主操作系統的重要特徵。目前的國產操作系統都不是真正意義上的自主操作系統,只是開源操作系統的自主發行版。APP開發者使用自主編程框架進行編程才能徹底解決無休止的適配問題。
為了解決這一問題,龍芯計劃推出自主龍芯自主編程框架LDF (Loongson appl ication Development Framework) 。據介紹,目前龍芯正在調研Windows、 IOS、 Android編程框架的特徵,形成龍芯自主編程框架,爭取2023/2024年推出。
“龍芯經過20年的發展,到2021年自主CPU和OS基本完成補課,自主CPU的應用軟件生態正變得越來越好。龍芯將在’十四五’期間努力完成’三個轉變’:從技術’補課’到生態建設的轉變;從政策性市場到開放市場的轉變;從跟隨性發展的’必然王國’到自主發展的’自由王國’的轉變。”胡偉武最後總結說到。