龍芯曲折的自主CPU之路
通用CPU被稱作是集成電路中的“珠穆朗瑪峰”,對集成電路和軟件產業(yè)具有基礎性和帶動性作用。但CPU的微架構需要長期積累,且需要對應用、操作系統(tǒng)、編譯、邏輯和電路的行為都融會貫通。我國由于缺少自主的CPU技術和產業(yè),在信息產業(yè)嚴重受制于人。在自主CPU的研發(fā)道路上,國內以龍芯為代表的企業(yè)手握自主創(chuàng)新的“槍桿子”走過了坎坷的十八年。
行走在路上的龍芯
回顧龍芯十八年多的發(fā)展歷史,走的是“之”字形的發(fā)展道路,彎路比直路多。
2000年10月,一個偶然的機緣,胡偉武開始參與中科院計算所的CPU開發(fā)項目。
2001年8月,中國自主研發(fā)的龍芯1號FPGA成功地運行了Linux操作系統(tǒng)。
2002年8月10日,“龍芯1號”問世,中國人結束了只能用國外CPU造計算機的歷史,被業(yè)內人士譽為民族科技產業(yè)化道路上的一個里程碑。
2003年4月18日,由中科院計算技術研究所自主研發(fā)的國產首款64位高性能通用CPU——“龍芯2號”問世。龍芯2號在性能上有著大幅提高,對我國行成具有自主知識產權的計算機產業(yè)有著重要的推動作用。
此后研制龍芯3號系列CPU發(fā)展道路之曲折、奮斗之艱辛,付出之巨大無人知曉,直到2016年,龍芯3A3000才研制成功,因2016年是紅軍長征勝利80周年,因此以CZ80命名,每顆芯片的硅片上都刻有CZ80字樣。
十年來,龍芯先后研制了龍芯3A1000、3B1000、3B1500、3A2000/3B200、3A3000/3B3000五款龍芯3號系列芯片。為什么龍芯CPU研制經歷這么多坎坷呢?除了龍芯的質量流程需要持續(xù)改進以外,究其根本原因,是因為龍芯始終堅持芯片中的核心模塊自己研制,龍芯長期堅持芯片中的核心IP自己掌握。
胡偉武在《龍芯的足跡》一書中寫到:“做任何事情,依靠別人總是容易一些,完全靠自己則困難的多。但依靠的多了,吃過虧后才明白還得靠自己”。
比肩AMD,龍芯新一代CPU實現(xiàn)自主可控
那么自主CPU與國外先進水平主要差距在哪?在胡偉武看來,自主CPU在技術上的核心問題是由于沒有很好地掌握處理器的微架構技術,自主處理器單核性能較低,而不是處理器核不夠多,在CPU芯片中多放些處理器核是容易的,難的是要把處理器核做好。再就是通用處理能力和設計能力不行。
龍芯的設計原則是練好內功,通過設計優(yōu)化來提高單核通用處理性能。在昨天的龍芯新產品發(fā)布暨用戶大會上,龍芯發(fā)布了新一代通用CPU產品3A4000/3B000。3A4000/3B000基本完成了單核通用處理性能“補課”。
龍芯3A4000/3B4000在片內集成了安全機制,實現(xiàn)自主可控和安全可靠的統(tǒng)一。3A4000/3B4000主要有三大特點:
特點一:相同工藝性能(28nm)成倍提高
龍芯3A4000/3B4000使用與上一代產品3A3000/3B3000相同的28nm工藝,通過設計優(yōu)化成倍提升性能。具體可表現(xiàn)為SPEC CPU2006單核peak分值雙21分,base分值雙18分;3B4000支持四路直連,四路服務器性能是3B3000雙路服務器的四倍;科學計算性能是3A3000的四倍以上,支持128/256位向量;據胡偉武介紹,3A4000通用處理性能與AMD公司28nm工藝最后產品“挖掘機”處理器相當,且單核性能高于用14nm實現(xiàn)的ARM處理器。
特點二:片內安全機制
龍芯3A4000/3B4000能夠從機制上有效防范Meltdon和Spectre等漏洞,支持MD5、AES、SHA等加解密算法,支持專用安全可信模塊及國密算法,支持“影子棧”等訪問控制機制。據龍芯中科董事長胡偉武介紹,傳統(tǒng)的CPU安全機制只是在處理器核外增加安全可信模塊,龍芯3A40003B4000專門在處理器核內設計了安全控制機制,從而達到本質安全。
特點三:一如既往地自主研發(fā)
龍芯3A4000/B4000一如既往地強調自主研發(fā)。芯片中的所有功能模塊,包括CPU核心、片內互聯(lián)總線、DDR4內存控制器及各種接口模塊等的所有源代碼均自主設計。芯片中各類全定制模塊,包括多端口寄存器堆、鎖相環(huán)、DDR4PHY、PLL等均自主研發(fā)。除了流片廠家提供的基本設計環(huán)境,龍芯3A4000/3B4000沒有使用任何第三方IP。
3A4000/3B4000使用龍芯公司最新研制的新一代處理器核GS464V,主頻1.8ghz-2.ghz,通過優(yōu)化功耗管理,基于龍芯3A4000筆記本工作時間比上一代產品延長一倍以上。采用37.5mm*37.5mm封裝工藝,還支持BGA、LGA以及CBGA的多種封裝形式,同時其桌面主板可支持四層布線。
胡偉武還指出,3A4000/3B4000還存在一些問題,例如DDR4內存頻率不夠高,功耗偏大,但這也是龍芯進一步改進的動力。下一步龍芯的主要工作重點就是提高主頻和核數(shù)。龍芯將于明后年推出使用12nm工藝的四核3A5000和16核3C5000,其主頻將提高到2.5GH以上,通用處理性能將達到當時AMD的水平,3A5000通過工藝改進提高主頻,3C5000工藝改進增加核數(shù)。通過20年積累完成CPU性能“補課”。
龍芯操作系統(tǒng)的“三條線、兩個面”
龍芯的“初心”是打造獨立于Wintel和AA (ARM+Android)的第三大生態(tài)體系。優(yōu)秀的生態(tài)有三個重要特點:一是開放,越開放合作伙伴越多,產業(yè)生態(tài)力量越大,Google和ARM做得最好;二是兼容,越兼容越容易形成合力,產業(yè)生態(tài)不易碎片化,Intel和微軟做得最好;三是優(yōu)化,以用戶體驗為中心,通過軟硬件緊密結合進行優(yōu)化,蘋果做得最好。
他山之石,可以攻玉。經過多年探索,龍芯形成了“Intel+ Google+ Apple”的商業(yè)與技術模式。一是學 Intel商業(yè)上形成CPU、OS、ODM核心并向外輻射,技術上做好 Outside規(guī)范,保持結構的兼容和穩(wěn)定,實現(xiàn)操作系統(tǒng)級二進制兼容。二是學 Google“做OS但不賣OS”,谷歌研制 Android但不賣 Android操作系統(tǒng),而小米的米OS和華為的麒麟OS均基于 Google的 Android;龍芯研制 Loongnix形成龍芯CPU的基礎版操作系統(tǒng)并免費開放給合作伙伴,支持合作伙伴推出發(fā)行版操作系統(tǒng)產品。三是學 Apple以用戶體驗為中心從全系統(tǒng)角度進行優(yōu)化,把細節(jié)做精。
結合龍芯生態(tài)建設的要求,龍芯在實踐中形成了軟件生態(tài)“三條線、兩個面”的總體思路。
龍芯操作系統(tǒng)的“三條線”: Loongnix面向通用信息化系統(tǒng),基于通用Linux平臺進行完善和優(yōu)化,為統(tǒng)一操作系統(tǒng)龍芯版提供支持;LoongOS面向高可靠實時終端,基于Linux/RT-Linux構建簡潔高效的OS,沒有Xserver的圖形系統(tǒng);LoongWorks面向實時嵌入式應用,針對歷史應用,基于VxWorks內核,完善圖形、網絡等API,把VxWorks從“DOS”階段升級到Windows階段;龍芯操作系統(tǒng)的“兩個面”指的是在“三條線”的基礎上,通過統(tǒng)一系統(tǒng)架構實現(xiàn)操作系統(tǒng)跨硬件的二進制兼容,完善API實現(xiàn)應用的二進制兼容及優(yōu)化。
一是面向硬件,對不同主板實現(xiàn)二進制兼容,ARM系統(tǒng)做不到OS的二進制兼容,其設計OS、BIOS、橋片等多方面規(guī)范,ARM只能管住CPU核及AMBA總線,Intel能管住UEFI、PCI軟件協(xié)議等;
二是面向應用,對不同應用實現(xiàn)二進制兼容,API是OS的指令系統(tǒng),也是建立生態(tài)的必爭之地,我國用JS和Java編程的工程師數(shù)以百萬計,但會寫JS和java虛擬機的不到百人,再加上開源軟件的不兼容性,使得瀏覽器升級就會導致應用的不兼容。龍芯通過基礎版操作系統(tǒng)管住這“兩個面”。
本次發(fā)布會龍芯中科發(fā)布了統(tǒng)一系統(tǒng)架構的標準規(guī)范體系,并通過與OEM/ODM廠商簽署認證協(xié)議建立產品認證體系。從龍芯3A4000/3B4000起,龍芯的參考設計全面支持統(tǒng)一系統(tǒng)架構,CPU和主板升級均不影響操作系統(tǒng)及應用的兼容性。
通過統(tǒng)一系統(tǒng)架構保持操作系統(tǒng)跨硬件平臺的進制兼容可以大幅提高系統(tǒng)開發(fā)的效率。在 Wintel的平臺上,不管是誰做的主板,一套 Windows操作系統(tǒng)都能裝。
不管是多新的CPU,十年前的 Windows XP還能裝。通過指令系統(tǒng)兼容可以實現(xiàn)應用程序的二進制兼容,但要實現(xiàn)操作系統(tǒng)的二進制兼容則需要從包括CPU、橋片、BIOS、操作系統(tǒng)等全系統(tǒng)的角度進行規(guī)范并保持長期兼容。
在統(tǒng)一系統(tǒng)架構的總要求下,實現(xiàn)了主板、固件、內核層面的兼容,并支持ACPI的UEFI固件,把硬件細節(jié)抽象為OS對地址空間的訪問,通過ACPI表向OS提供啟動配置/運行時配置和以OS為主導的電源管理。除此之外,還有檢測工具集合認證協(xié)議。
龍芯中科副總裁張戈在題為《龍芯生態(tài)及解決方案分享》的演講中表示,隨著相關市場需求的不斷拉動,龍芯的合作伙伴已經增至近千家,下游基于龍芯的開發(fā)人員達到數(shù)萬人,2019年龍芯芯片出貨量已經達到50萬顆以上,在國產化應用中市場份額遙遙領先。
國產CPU要不怕遠征難
世界上做CPU的企業(yè)中,凡是不做生態(tài)或者跟生態(tài)的CPU企業(yè)都活不好。
Intel是一個做生態(tài)的企業(yè),佛教《百喻經》中有一個“三重樓喻”,在信息產業(yè)技術也有“三重樓喻”,第一層是CPU技術+操作系統(tǒng)技術,即通用CPU;第二層是網絡技術+圖形/媒體技術,即GPU,Intel的通用打敗思科的專用,片內集成GPU擺脫對英偉達的依賴;第三層是AI技術+虛擬化技術,如NPU。在芯片內部結構復雜度上,如果CPU的微結構復雜度是1,GPU的復雜度為0.3-0.5,神經網絡處理器NPU的復雜度則小于0.1。
胡偉武指出,龍芯的三層樓要一層層蓋。經過20年的發(fā)展,到2020年自主CPU和OS基本完成“補課”,CPU通用處理性能已達到AMD水平,OS成熟度也已接近Windows XP。但應用不夠豐富和產業(yè)不配套成為自主CPU和OS發(fā)展的下一個瓶頸,過去我國的信息化應用主要構建在國外Wintel和AA等平臺上,在CPU、GPU、網絡等的產業(yè)鏈配套不足。
因此未來CPU與應用軟硬件企業(yè)應該相向而行,龍芯將不斷完善基礎軟件環(huán)境(如NET等)和配套芯片(如GU、電源時鐘芯片),信息化應用軟件企業(yè)應把 Windows上的應用軟件往Linux平臺上遷移。
胡偉武還提到,國產CPU應“不怕遠征難”,縱觀歷史,高復雜系統(tǒng)能力建設需要以30年為周期,例如“運十”1996年拆解,“C919”2017年首飛。那么有沒有辦法避免上述耗時的多輪試錯,一步就上樓?對此,龍芯進行了各種嘗試:造不如買,市場換技術、研不如買、彎道超車。。。。事實證明,這些都不是根本的解決辦法。正所謂不同產品需要不同周期,CPU就是個孩子,千萬不能指望2~3年把他養(yǎng)好。
在核心技術產業(yè)“爬樓梯”的過程中,必須要有愚公移山的精神和實事求是的作風,不要幻想彎道超車,建立自主IT產業(yè)體系需要30年的努力,目前龍芯已發(fā)展19年,正呈現(xiàn)加速發(fā)展態(tài)勢。
芯中科技術有限公司總裁胡偉武
胡偉武介紹到,改革開放以來,我國發(fā)展核心技術形成了以“市場換技術”和“市場帶技術”為主要特點的兩條道路。所謂市場換技術,就是通過合資等方式把中國市場給予國外企業(yè),希望在合資過程中得到先進技術;我國汽車產業(yè)是“市場換技術”道路的典型代表,事實證明,走這條道路在發(fā)展核心技術方面沒有取得預期的效果。
境外主要CPU企業(yè)均通過合資或授權方式成為“自主CPU”,要強調自主CPU需“融入”已有生態(tài)。所謂“市場帶技術”,就是充分發(fā)揮我國體制優(yōu)勢和市場優(yōu)勢,通過體制內市場引導,形成技術能力,帶動技術進步,再參與體制外市場競爭;我國航天產業(yè)是“市場帶技術”道路的典型代表。
事實證明,走“市場帶技術”道路更有利于我國發(fā)展和掌握核心技術。龍芯走的正是市場帶技術的道路,龍芯CPU通過自主編寫CPU源代碼,并在應用中不斷演進,強調自主CPU要建立自主生態(tài)(獨立于 intel體系和AA體系)。要同臺競技需先通過樓梯“上臺”,一步樓梯就是一次在市場應用中試錯,不斷的試錯,才能促使性能的提高和生態(tài)的完善。
龍芯OS在試錯中不斷趨于成熟:第一功能豐富,在主要的功能軟件和大量的IO驅動上功能更加豐富;第二架構穩(wěn)定,實現(xiàn)了操作系統(tǒng)對不同主板及升級后的CPU二進制兼容,涉及CPU、橋片、BIOS、OS的大量細節(jié)更加規(guī)范化;第三性能優(yōu)化,性能成倍提高,從被動優(yōu)化逐漸到主動優(yōu)化,另外打造技術鏈,在每個局部都不如國外的情況相愛啊,整體性能優(yōu)于國外系統(tǒng);第四問題收斂,應用現(xiàn)場問題追溯到CPU和OS的越來越少,成熟度更接近Windows XP的水平。
胡偉武指出,走“市場帶技術”的道路,通過自主研發(fā)掌握CPU的核心技術,建立自主可控的信息技術體系,我們失去的只有鎖鏈,得到的將是整個世界。走“市場換技術”的道路,通過引進技術發(fā)展自主CPU產品,只是將一副鎖鏈換成另外一副鎖鏈。結合過去龍芯十八年的發(fā)展之路,任何企業(yè)和新技術在發(fā)展的過程中,既要埋頭拉車,又要抬頭看路。