它的橫空出世,結束了中國信息產業的“無芯”歷史 |_風聞
西方朔-2021-02-20 05:42
張福新
中國科學院計算技術研究所研究員
張福新:龍芯是怎麼煉成的?來自格致論道講壇00:0022:59
龍芯是我國自己研發的一顆CPU芯片,2018年,我國中興通信公司——一個年產幾百億的高科技企業被美國製裁,差點就因芯片斷供而直接休克。
後來美國又制裁華為,我們都在看着一輪一輪的制裁。
直到今年美國使出大招,説我們只要用了美國技術的企業,就不能給華為服務,直接切斷了華為的生產渠道。
因為台積電的生產設備裏有美國技術,所以它就無法給華為生產,直接就把華為最新的mate pro變成了限量版。
通過一次次的事件,大家能夠看到芯片是多麼重要,芯片是紮紮實實地被卡着脖子。
CPU的研製
什麼是CPU呢?
**CPU應該説是芯片中的芯片,是芯片中最難做的一種芯片,**它的複雜度、性能要求是最高的,它是用在我們個人電腦、服務器等最需要性能的場合的。
這就是我們做的幾顆芯片的樣子,它最大也只有幾平方釐米,但是裏面大有玄機。
一顆芯片裏可以藏幾十億個晶體管,這是一個最基礎的單元,它一秒鐘能夠進行上百億,甚至更多的運算。
如果我們把科研比作攀登高峯,那麼做芯片可以説是在爬喜馬拉雅山,做CPU就是爬珠穆朗瑪峯。
國產芯片的市場情況是非常堪憂的,我們可以看到,各種領域裏,國產芯片的佔有率很多都是零,包括個人電腦和服務器裏用的CPU。
這個零,當然不代表完全沒有,只是説數量太少,可以忽略不計。
比如CPU這塊,我們這兩年進步很大,今年有希望把這個數字改成1%,但也就是僅此而已。
這樣的佔有率對我們來説,會有什麼樣的後果呢?
**我國每年在進口芯片上面,要花2000多億美金,**這是第一。
第二,因為我們無法做芯片,就佔不到產業的上游,真正的IT產業裏最賺錢的企業,往往都是上游這些做芯片的。
**我們整個電子信息產業中,百強企業的利潤加起來還不如美國一家蘋果公司的利潤,**這就是我們為此付出的代價。
當然這個情況不是沒有人看到,比如為什麼華為現在被美國製裁,仍然能夠挺住它的攻擊?
就是因為十年前,它就已經意識到這個風險,開始啓動了備胎芯片的計劃,在內部悄悄地做了很多芯片。
在科學界,我們計算所的老所長李國傑院士,也是早在2000年前後,就在國家到處呼籲,説我們必須立項做CPU了。
當時專家們有很多意見,就是大家都覺得這個太難了,現在還不到時候,所以當時從國家沒要到錢。
後來李所長就下定決心,從自己計算所有限的經費裏擠了100萬,先在所裏立了一個內部課題,鼓勵年輕人來做CPU,這時才有了我們龍芯課題組。
真正做起龍芯來時,我們才發現,做CPU不是爬一座山,而是爬N座山,這些山大概可以分成兩個羣。
一羣是來自CPU裏的,要做一個好的芯片,做一個性能很高的、用起來很快的芯片,有非常多挑戰。
但是,即使做出這樣一顆芯片,要放到市場上去能用起來,就意味着外面要打通一個產業鏈。
得有很多人願意用龍芯,願意給它做整機,願意給它寫軟件,要有一個繁榮的產業生態,在某種意義上來説難度更大。
裏面CPU的設計難在哪裏呢?
主要就是大、複雜,為什麼呢?
現在我們的半導體工藝發展很快,最新的工藝是5納米,5納米是什麼概念呢?
一根頭髮絲是80微米左右,5納米就意味着能在頭髮絲裏放16000根線,它能在頭髮絲這麼小的地方走那麼多。
一顆芯片裏,現在典型的能夠**在裏面放幾十億到上百億的晶體管,**這麼多資源在裏面怎麼指揮,怎麼組織分工協調,才能讓它發出最大的效力?
還有很多其他的侷限性,比如並不是堆得越多越好,它在工作時是會發熱的,熱到一定程度,它就無法再繼續工作。
而現在的芯片真正工作起來時,裏邊的熱的密度就差不多已經相當於電爐絲的密度了。
**在這種限制下,又不能無限制地堆,但是又要極限地去追求性能,極限地壓榨工藝的潛力,**這時就要想辦法去做設計挑戰。
設計又可以分成前端後端,比如這張圖展示的。
做前端就是要把100億個晶體管怎樣分類組織,要放幾個加法器,放幾個乘法器,放幾個做存儲,放幾個做寄存器。
它們彼此之間怎樣互聯互通的效率最高,最後形成一個設計,變成一個線路。
這個線路要跟具體的工藝相匹配,比如是要到台積電的7納米工藝上去做呢,還是在中興國際的28納米工藝上去做。
根據不同的工藝,它有不同的物理參數、物理特點,我們要把這兩個東西很好地匹配起來。
這裏面這麼多線,這麼多晶體管,只要任何一個出錯,就有可能導致整個芯片無法正常工作,所以芯片設計裏有很多挑戰。
思想晚餐
已完成:30% ///**********///////******
龍芯橫空出世
從最早開始,我的運氣很好,在2000年進到計算所時,我的導師就是龍芯的總設計師——胡偉武老師。
那時胡老師也還年輕,剛剛開始帶學生,當時他從所裏揭英雄榜,把李所長立的100萬做芯片的前期研究的事承擔下來了,正在籌備着做龍芯。
所以我這20年,就一直在做這一件事情,從頭到尾,見證了龍芯的發展過程。
這張圖是我們最早做的龍芯一號,2000年課題組成立時,一共就有兩個老師和十幾個學生,包括老師在內,沒有人做過CPU,一切從零開始。
但那時大家都非常振奮,非常激動,覺得有這麼一個挑戰是機會難得,所以我們就沒日沒夜地看資料,去做各種設計討論,然後調試測試。
有一句話説:天道酬勤。
我的印象特別深刻,因為當時我們調試一些問題時,經常會發現,如果朝九晚五,下班到點就走,好像有些問題永遠也解決不了,始終沒有靈感。
但是如果下了狠心,説這個問題一定要解決,不解決就不回去睡覺。
這時熬上一天、兩天、三天,經常在深更半夜,夜深人靜時,一個靈感突然來了,問題就突破了。
所以那時,我們隔三差五地就會熬上一陣,碰到一根硬骨頭,就把它熬出來,一年時間,我們就把一個原型性的芯片做出來了。
於是中科院的領導非常高興,馬上就給我們追加了500萬的經費,使得我們能夠繼續往下做。
再過了一年,**2002年8月10日凌晨6點08分,這個芯片正式調試成功啓動。**胡老師也很高興,登錄到系統裏,輸入了一段話。
大概意思就是説,**今天我們中國信息產業無芯的歷史結束了,在場的人們見證了這個過程。**然後把我們在場人的名字全部都列在那裏。
現在我們回過頭去看,這個芯片還是一個很粗糙的設計,但是重要的是那時能有去做這件事的勇氣。
而龍芯一號出來後,大家信心大漲,我們從國家那邊,從863項目又得到了支持,繼續做龍芯2號。
因為那時國際上已經做了幾十年芯片了,我們從零開始,還有很多有差距的地方。
所以我們做了很多計劃,我們把國際上先進的技術一個一個拿來研究,研究透一個做一個,就是用小步快跑的策略,做了一系列的芯片。
但是,我們一開始就碰到一個很大的挫折,就是龍芯的第一個芯片叫2A,它拿回來後是半身不遂的。
這個芯片只能在電壓很小的範圍內工作,高了不行,低了不行,以沒達到我們的要求,就用不起來。
最後追究原因時發現,是我們對物理參數,對工藝的理解不夠透徹,因為我們都是做計算機出身的,工藝更需要做微電子和做物理的人。
所以我們當時從微電子所引進了黃令儀老師和他們團隊,就慢慢地把這塊短板補上了。
再接下去,就把一個個先進的技術往龍芯2裏面堆,努力地去追趕國際先進技術前沿。
2007年,芯片863驗收時,我們做出來的芯片已經比1號快了一個數量級以上,也就是10倍以上。
這時國家非常重視,當時的科技部部長徐冠華專門來參加龍芯的驗收會。
在龍芯2號做到一定程度時,我們覺得這個芯片已經差不多了,從很多參數來看,我們的確跟當時國際上最好的一些芯片相比,也沒有很大差距了。
所以當時國家正好做了16個重大專項的部署,其中第一個,就是核高基重大專項。
核高基就是**核心電子元器件高端通用芯片和基礎軟件,**就是為解決我們缺芯少魂的問題開設的。
我們從核高基那邊拿到了兩億多元,看上去是一筆鉅額的經費,然後就開始做龍芯3號。
當時我們對龍芯3號雄心勃勃,我們想通過多核技術,能夠一下站到世界前沿。
多核是什麼意思呢?
就是我們在一個芯片裏,同時擺好幾個CPU的核心,讓它能夠同時獨立地做好幾個不同的程序,這樣能夠增加程序的吞吐力。
當時主流的個人電腦還是單核或雙核,但我們上來3A1000就設計了四核,3B1500設計了八個核。
但是事實證明,**我們走了一個很大的彎路,**因為首先,多核芯片本身的技術很複雜,一下規模大增,各種測試驗證的複雜度都大了很多。
我們花了三年多的時間,才好不容易把這個芯片成功地量產。
但是這時拿到市場上一看,特別是桌面上的用户會説,感覺好像跟你三年前的龍芯2號也差不多。
然後我們一看,壞了,是我們的指標體系出了很大的問題,這就是我們做科研的一個毛病。
當時那些峯值指標確實已經是世界的領先水平了,但是,能表現出來的,在應用軟件能享受到的,還是其中的一個核。
那時很多軟件是為單核寫的,它用不起那麼多核,就像有一堆小學生,也並不能做一個大人能做的事情。
所以我們當時就**沒有全面地做好評估,忽略了單核這方面的提升,**然後我們痛定思痛,回過頭來再去提升我們的單核。
所以從3A1000到2000,我們用完全一樣的工藝,只靠設計,就把它的性能提高了三四倍,到今天最新的產品,已經足足提高了15倍以上。
我們也注意到,從用户能體驗到的性能,就是打開一個很複雜WORD文檔,在原來3A1000的時候要33秒,到2000的時候就只要6秒了,到現在鼠標一點就可以瞬開。
這就是我們面向市場、面向用户去不斷地優化後獲得的一些成績。
當然今天我們離最新的國際最先進的技術還有點距離,但是很多距離是來自於我們用的工藝。
國際上最新的已經是5納米了,我們的3A5000用的還只是12納米。
這是因為我國在工藝這塊仍然是一個短板,我們不敢用國際上最先進的工藝,擔心隨時被掐。
但在這一塊,應該説我們已經具備了一個很好的國際主流水平,進入了一個新的創新空間。
思想晚餐
已完成:60% ////////****//
龍芯生態體系建設
當時很多專家認為我們做不了芯片,不是説我們做不出那麼一顆東西來,而是覺得這個東西無法把外面的產業生態做起來。
什麼叫做產業生態呢?
簡單地説分為兩個部分,一個是得有人願意來做你的芯片,就是他用你的芯片去做機器,然後去賣給用户。
另外一方面是電腦和別的東西不同,電腦上要跑軟件,上面得有豐富的軟件,用户覺得東西好用,他才會買。
這兩個東西都很麻煩,首先怎麼解決做機器的問題。
所裏2004年在江蘇省建了一個龍芯產業化基地,2005年把我派過去,因為那個基地就在紅色景區沙家浜旁邊,所以我們叫南下沙家浜。
我們到那邊去做產業基地,這對我來説是一個很大的挑戰。
因為我原來是天天坐在實驗室裏的研發人員,到那邊去要負責產業化,就是脱離了自己的舒適區。
我要想辦法學習,跟產業化的夥伴打交道。
我要去説服別人,展示龍芯有很多優點,讓大家用,然後從別人那邊收集反饋,有哪些方面不行,想辦法去補。
我作為芯片設計人員,要想辦法把我看到的問題反饋給芯片的改進團隊,然後我們要想辦法幫助下游的企業,想辦法解決它的問題。
還有就是我要去招人,要去管團隊,這些東西對我來説都是勉為其難,趕鴨子上架,但是既然做了,我們就一定要把它做成。
所以我咬着牙也就做下來了,具體做什麼事情呢?
我們首先要在那裏把要做的事情分為兩步,一個就是我們把實驗室的龍芯樣品,變成一個可以穩定地批量生產的產品。
這一點並不容易,最早的芯片是研究所做的,很多時候研究所沒有產業化的經驗,想不到很多東西。
比如我們最開始拿芯片去找別人生產,別人説你給我一個手冊,不好意思,手冊還沒寫好。
或者是要相關參數,要不然沒法做,那個參數還沒有測出來。
當時作為自己做設計的人,我們就起到了集中的作用。
**我們把產業的信息收集起來再反饋回去,要幫他們解決這個問題,**從一步步把這個樣品做到可以量產的產品,這裏我們學習到很多東西。
但是要能夠穩定可靠地做產品,還是不夠,還得想辦法要讓人願意買。
雖然這個東西穩定歸穩定,但是慢得像蝸牛一樣,或者乏善可陳,那也沒有人買。
所以我們要想辦法去找一個市場,可以體現出這個芯片的優點,能夠讓用户心甘情願地買單。
在這個過程中,要想辦法更多地瞭解我們的芯片和實際需求的吻合程度。
我們走過一個很大的彎路,如果當時我們對產品生態的理解能夠更好一點,也許就不會走那麼大的彎路,不至於在單核明明還有很大提升空間的情況下,就先放着了。
**從產品到商品,是產業化基地做的一個很重要的工作,**想單單在產業化基地裏零敲碎打地找一些人來做合作,找到幾個零碎的市場站住腳是不夠的。
我們經過一段時間的摸爬滾打,總結了一些經驗,就是我們要與業界優秀的企業合作。
現在電腦裏面基本上都是美國英特爾公司的天下,所有的人都圍着它轉。
但是就在這個情況下,也有像蘋果等公司,仍然有它的一席之地,它的MAC電腦很多人都愛用。
谷歌也在短短的幾年內,做出一個自己的很大的移動生態,所有手機都用它的操作系統,它們是怎麼做到的呢?
我們總結了六個字,就是要開放、兼容、優化。
什麼叫開放?
就像谷歌,它的很多軟件都是開源的,源代碼直接可以下過來,大家都可以用,包括它的移動操作系統。
當時移動的老大是諾基亞,但谷歌的東西又好用、又不要錢,直接就能用。
所以所有廠家就蜂擁而上,大家都去用它的系統,一下就把諾基亞打成了過去時。
英特爾也有很多值得學習的地方,它十年前的電腦拿到現在,來也還能跑今天的軟件,今天的電腦拿到十年前的軟件,裝起來也還能用。
這些東西很大地減少了整個產業鏈的損耗,這樣產業鏈的人就會願意用,因為這個東西不會總是改,不會浪費很多時間。
還有更重要的蘋果,它的iPad很好用,但iPad在最早開始出來時,它的芯片論運算能力,其實和英特爾當時的好芯片差距還是很大的。
但是大家感覺不到,大家的體驗很好,因為它的硬件和軟件高度匹配。
因為我們早期性能不太夠時,也不得不去做很多各種軟硬件協同的優化,然後發現這裏面的空間非常大。
比如最早的龍芯上網,在網頁裏上下拖動時,能感覺到有一點遲鈍。
但是我們**後來經過對軟件對硬件,兩個合起來做了優化後,速度提升了幾十倍,用起來時,有時感覺比PC還快,**這就是一個典型的例子。
圍繞着這六字方針,我們足足花了20年的時間,一點點地把自己的生態從無到有建立起來,從有到越來越優化、越來越好。
前段時間,我聽到一個同事在説,領了一台3A4000的筆記本拿來日常辦公,都沒想到有那麼好用。
他説這個用起來就沒覺得和原來的筆記本有什麼區別,這就是我們的生態。
現在具體是什麼樣的狀態呢?
應該説我們**從0%到1%,就是這兩年發生的事情,**這兩年整個國產的鏈條都發展得非常快,龍芯從端到雲,有一個產業生態體系。
**目前大概有超過2000家各種各樣的合作伙伴,**有做電腦的,有做軟件的,有做各種集成服務的。
有幾萬個龍芯的開發人員,現在在天天做龍芯相關的開發。
**我們今年已經賣了超過100萬顆龍芯的芯片,這些芯片很多都用在非常重要的領域,**2019年還是50萬,2020年就超過100萬了。
所以我們已經走上了一條發展的快車道,我們耳熟能詳的整機廠,像**聯想、同方、方正、浪潮、曙光,**這些我國最大的廠商,現在都在賣它們牌子的龍芯電腦。
所以應該説我們的產業鏈已經初具規模了,這也是我們努力20年的結果。
龍芯選擇的是一個HARD模式,即非常難的一種模式,走的是高度自主的路線。
因為CPU有很多種做法,我們可以去買一個別人現有的設計過來,只要花錢足夠,也有人能賣給你一些CPU設計。
也可以買別人CPU的指令集授權,然後自己做芯片,買別人指令集的用處就是借用別人軟件的生態,即別人已經做好的軟件。
指令集相當於CPU的語言,如果用這個語言,就不用再重新做一套軟件了。
而我們選擇了自己打造一個生態,選擇自己做一個指令集。
**因為我們把培育能力當做最優先的考慮,**因為我們國家要做自主可控,最終還是要掌握這些東西。
藉助別人的東西,可以快速地達到一定的發展效果,但是最終要想實現自由,還是要掌握自己的能力。
在這一方面,我們付出了很大的代價,過了20年,才擁有一點點規模,相對於現在成熟的幾千萬一年的生態還是很小的。
但是應該説,我們現在已經具備了一個很好的發展條件,我們的銷量每年在成倍地增長。
有一個這樣的起步,相信我們會走得越來越快,越來越能展示出我們的後發優勢。
因為我們自己做下來了,優勢很明顯。
我們在什麼地方都沒有黑盒子,可以非常容易地解決問題,問題在哪個地方,都可以把它抓出來解決掉,我們還可以做各種創新。
最後,分享我們計算所牆上的一句話,叫做**“科研為國分憂,創新與民造福”。**
我的導師的導師夏培肅院士,是整個國家計算機的創始人之一,她是做兩彈一星的計算機的專家。
到我們這一代做龍芯,包括我們計算所做的其他的項目,比如曙光機等,都是這樣。
我們整個所都奉行這樣的價值觀,我們也希望通過我們的努力,能夠真正地讓我們龍的傳人,都很快地用上龍芯。