龍芯究竟是什麼水平(龍芯的發展或遠超你的想像)
2023-04-12 11:41:00 1
「如果把人類國家的歷史發展比作賽馬的話,以一千年為一圈,有一匹馬在前面幾圈一直跑在最前面,領先世界,只是到最近幾百年才落後,並且最近是幾十年,這匹馬已經飛快地追了上來。
如果是你,你會不會在這匹馬上押注呢?」
這段話是胡偉武所說,當時他在中科院計算所做一個CPU設計的講座,我坐在臺下聽講。
講座的具體細節我早已忘記,但這段話讓年輕的我聽得「熱血沸騰」,覺得中國真是大有前途。
後來只有J20橫空出世的時候才再一次有類似的衝動:要找機會,為國效力!
可見胡偉武不但技術很牛,還是一個特別善於鼓舞人心的領導。
當時龍芯剛起步,33歲的胡偉武帶著一幫年輕人沒日沒夜地幹,終於做出了龍芯一號(小名狗剩),想了解詳情的同學可以去搜一下《我們的CPU》。
一晃20年過去了,胡偉武老師已經滿頭白髮,當年的狗剩已經長大成人,最新的龍芯3A5000,主頻2.3GHz-2.5GHz,包含4個處理器核心。
根據國內第三方測試機構的測試結果:
「龍芯3A5000處理器在GCC編譯環境下運行SPEC CPU2006的定點、浮點單核Base分值均達到26分以上,四核分值達到80分以上。基於國產作業系統的龍芯3A5000桌面系統的Unixbench單線程分值達1700分以上,四線程分值達到4200分以上。上述測試分值已經逼近市場主流桌面CPU水平,在國內桌面CPU中處於領先地位。」
雖然新聞報導中經常會提到龍芯被用到網安、能源、交通、金融、物聯網、工控、超算、北鬥衛星等領域,可是我們身邊並沒有看到有多少龍芯電腦。
這是因為龍芯走了一條最難走的路,國產CPU當中,有這麼幾個流派:
1. 合資 x86授權派
如天津海光和兆芯,他們獲得了AMD和威盛的授權,可以設計製造x86CPU,可以利用現有的軟體生態。
但是美國商務部已經把它們拉上了「黑名單」,無法獲取最新的技術架構了,發展路徑被堵死。
2.ARM指令集授權
如華為海思和飛騰,市場廣闊,軟體生態也好,但指令集控制在別人手中,如果被制裁,也是死路一條。
3.指令集授權 自研指令集
典型代表就是龍芯,最早用MIPS指令集,後來乾脆買斷,在此基礎上發展出了完全自主可控的LoongISA指令集。
龍芯雖然有著最為遠大的志向:要建立和Intel / ARM 並列的生態系統。但背後也有一個大坑:沒有軟體支持。
LoongISA指令集和別人都不一樣,第一步必須得找個作業系統支持,把它移植過來。
感謝開源的Linux,這一步並不是很艱難。
有了Linux是不是就完事無憂了,不!編譯器必須得移植過來:
很多軟體運行在虛擬機/解釋器當中,它們也必須得移植:
再把OpenOffice,Firefox等辦公應用軟體移植過來,一個基本可用的系統就出現了。
但是這樣的Linux這樣的系統,開發人員能用,黨政軍「被迫」也能用,普通消費者用不了。
因為沒有微信、QQ、支付寶、Photoshop、PR、AE、各種遊戲..... 這才是x86生態最厲害,最吸引人的地方。
當然可以把這些軟體一個個移植過來,前提是廠商得願意,得有動力(利益)才行,要不然,哼哧哼哧移植過來,沒人用,投入的人力物力都浪費了。
還有一種辦法是不做移植,採用翻譯的辦法,把x86程序的二進位代碼翻譯成LoongISA指令集。
翻譯的方式有三種:
(1)軟體翻譯
相當於搞了一個模擬器,以純軟體的方式構建了一個虛擬的主機環境。如qemu、蘋果的羅塞塔、以及微軟Windows在x86上模擬arm的技術等等。
這種方式的有點是極其靈活,指令集升級只需要更新軟體即可。缺點是效率比較低。
(2)硬體翻譯
Linus早期加入的Transmeta CPU就是這個思路,它會把x86指令轉換自己的指令來執行。雖然能直接運行x86上的程序,但是卻受制於Intel和微軟,雖然Transmeta在和Intel的訴訟中獲勝,在市場上卻黯然落敗
(3)軟硬結合翻譯
龍芯本質是軟體翻譯,但是在指令集中專門提供了硬體指令來加速翻譯過程,既有軟體翻譯的靈活性,又有硬體的效率。
在運行Windows(x86)程序時,由於龍芯的Linux系統並不支持Windows系統的API(例如CreateProcess),需要一個Wine軟體做中間層,把Windows API轉化成Linux API(例如fork)。
最終,龍芯的翻譯情況是這樣的:
看起來非常複雜,但是沒有辦法,IT產業現狀就是如此:不但要自主,還要兼容。
龍芯為了達到這個目標,需要具備「2 3 3 2」共十個能力。
其中,第一個「2」是指兩大核心軟體:BIOS、作業系統內核(含驅動和虛擬化);
第二個「3」則是三大編譯器,GCC、LLVM、GOLANG;
第三個「3」則是三大虛擬機:Java、JavaScript、.NET;
第四個「2」則是兩大二進位翻譯系統:X86、ARM。
龍芯要自建生態,如果是之前,我是絕對不看好的。因為我覺得舊的生態一旦形成壟斷,後來者再無機會。
桌面生態被Windows Intel佔據,移動被Android ARM壟斷,後來者想從它們的飯碗中搶飯吃,要走的路非常之長,長到幾乎難以看到盡頭。
與其如此,還不如努力探索、抓住下一波浪潮。
但是這幾年,我們看到川普搞起貿易戰,以舉國之力打壓華為,斷掉華為晶片供應,把一大批中國的公司拉入實體名單,再看看最近以美國為首的西方世界對俄羅斯的瘋狂制裁,突然又看到了希望的曙光:這是逼著中國建立自主可控的生態體系啊!
之前生態市場被壟斷,我們只能在一邊看著,難以入局,現在存在著未知的被斷供的風險,不發展自己的晶片、不去建立自己的生態體系,還能怎麼辦呢?
一旦被徹底斷供,我們至少還有一套可以獨立的,可以運轉的IT系統。
希望龍芯及其生態能夠發展起來!
,