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