新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 業(yè)界動(dòng)態(tài) > 致龍芯15周年 胡偉武披露龍芯3號(hào)開發(fā)歷程

致龍芯15周年 胡偉武披露龍芯3號(hào)開發(fā)歷程

作者: 時(shí)間:2016-10-25 來源:網(wǎng)易科技 收藏

  3A2000芯片

本文引用地址:http://butianyuan.cn/article/201610/311777.htm

  基于上述對CPU研發(fā)路線的調(diào)整,2013年5月,我們暫停了已經(jīng)完成主要設(shè)計(jì)的16核3C處理器流片,開始四核3A2000處理器的研發(fā)。核多了沒有用,單核必須要強(qiáng)。就像體育比賽,靠人多取勝的只有拔河(相當(dāng)于計(jì)算機(jī)中的高性能計(jì)算機(jī)),絕大多數(shù)項(xiàng)目要靠運(yùn)動(dòng)員個(gè)人素質(zhì)。3A2000主要目標(biāo)就是大幅度提高單核性能,使單核通用處理器性能提高3倍以上。當(dāng)時(shí)龍芯公司承擔(dān)了基于某境內(nèi)40nmLL工藝的高可靠嵌入式CPU研制項(xiàng)目,雖然工藝性能不高,甚至比我們原來用的65nmGP工藝還慢30%,但至少流片的錢有地方出了,我們就基于該工藝研制3A2000。當(dāng)時(shí)還有一個(gè)重要決定就是保持3A2000與3A1000的引腳兼容,這樣龍芯客戶中基于3A1000研制的已有上百種板卡可以直接通過換焊3A2000來提高性能?;诰硟?nèi)工藝、通過微結(jié)構(gòu)優(yōu)化大幅提升性能以及與3A1000引腳兼容說明3A2000開始擺脫了學(xué)院派慣性,走出結(jié)合用戶需求研發(fā)CPU的關(guān)鍵一步。

  2013年初,在龍芯最困難的時(shí)候,中科院計(jì)算所孫凝暉所長在所里資金本身就很困難的情況下,拿出500萬元支持龍芯3A2000處理器核GS464E的前期研發(fā)。雖然與研制3A2000所需要的上億元經(jīng)費(fèi)相比,500萬顯得很少,但在龍芯最困難的時(shí)候得到來自龍芯“娘家”計(jì)算所的支持,覺得非常溫暖。

  事實(shí)上2012年初龍芯公司在香山飯店召開年度規(guī)劃會(huì)時(shí)就決定對GS464處理器核(龍芯2F、2H、3A1000、3B1000、3B1500等都基于GS464微結(jié)構(gòu))進(jìn)行優(yōu)化,形成新一代龍芯微結(jié)構(gòu)GS464E。GS464處理器核一直是我自己維護(hù),其中有一半左右代碼(包括流水線控制部分如寄存器重命名、亂序發(fā)射隊(duì)列、寄存器堆控制、重排序緩存,以及訪存部分如地址運(yùn)算、一級(jí)數(shù)據(jù)Cache、TLB、訪存失效隊(duì)列、最后一級(jí)共享Cache)是我自己寫的,2012年上半年我在機(jī)房中花了整整兩周時(shí)間為GS464升級(jí)為GS464E打好必要的基礎(chǔ)(我當(dāng)時(shí)說要把馬的架子變成駱駝的架子,先要把一個(gè)訪存部件升級(jí)為兩個(gè)訪存部件)后,把維護(hù)和升級(jí)處理器核的任務(wù)移交給汪文祥和吳瑞陽。這很可能是我最后一次有機(jī)會(huì)寫龍芯CPU的代碼了?,F(xiàn)在回憶起來,能夠在機(jī)房中心無旁騖地寫代碼真是莫大的幸福,有無比的成就感,但我不能讓自己成為龍芯CPU發(fā)展的瓶頸。而且經(jīng)過多年實(shí)踐的鍛煉,龍芯的年輕人已經(jīng)充分地成長起來了。龍芯3A1000、3B1000和3B1500都是我自己當(dāng)技術(shù)負(fù)責(zé)人,3A2000開始由年輕人擔(dān)任芯片的技術(shù)負(fù)責(zé)人,3A2000的技術(shù)負(fù)責(zé)人是王煥東,的技術(shù)負(fù)責(zé)人是楊梁。承擔(dān)國家項(xiàng)目也主要由年輕人作為項(xiàng)目負(fù)責(zé)人。

  GS464E對GS464的改造是全方位的。在指令系統(tǒng)方面,我們在MIPS64R3的基礎(chǔ)上進(jìn)行了擴(kuò)展(MIPS指令系統(tǒng)的授權(quán)允許用戶進(jìn)行擴(kuò)展)并形成龍芯指令系統(tǒng)LoongISA,除增加一些基礎(chǔ)指令外,還有支持云計(jì)算的虛擬化擴(kuò)展,以及加速X86和ARM二進(jìn)制翻譯的擴(kuò)展。在微結(jié)構(gòu)方面,除了前述的把訪存功能部件從一個(gè)增加到兩個(gè)外,還把Cache行大小從256位增加到512位,最后一級(jí)Cache從四路組相聯(lián)提高到16路組相聯(lián),增加了多個(gè)層次的預(yù)取,把重排序緩存ROB從64項(xiàng)增加到128項(xiàng),重命名寄存器個(gè)數(shù)從64個(gè)增加到128個(gè),亂序發(fā)射隊(duì)列由原來的定點(diǎn)和浮點(diǎn)各16項(xiàng)增加到定點(diǎn)16項(xiàng)(增加到32項(xiàng))、浮點(diǎn)24項(xiàng)(增加到32項(xiàng))、訪存32項(xiàng),重新構(gòu)建了整個(gè)轉(zhuǎn)移猜測模塊。此外,用大量的測試程序?qū)ξ⒔Y(jié)構(gòu)進(jìn)行了細(xì)節(jié)的磨合,局部優(yōu)化達(dá)到三十多處。3A2000的多核互連模塊和內(nèi)存控制器也進(jìn)行了性能優(yōu)化。尤其是內(nèi)存控制器的優(yōu)化,可以大幅度提高訪存頻率和效率。2014年7月,RTL代碼凍結(jié)。

  3A2000除了使用流片廠家提供的標(biāo)準(zhǔn)單元庫、MemoryCompiler生成的RAM、低速IO單元以及efuse單元以外,包括鎖相環(huán)、HTPHY、DDR2/3PHY、多端口寄存器堆、CAM、溫度傳感器等宏單元都是我們自己定制的,沒有使用任何第三方的宏單元模塊。因此,全定制工作量也不小。

  3A2000的物理設(shè)計(jì)采取了很多優(yōu)化措施,初步建立起一套在主流EDA工具基礎(chǔ)上的In-House的流程和工具,包括統(tǒng)一數(shù)據(jù)庫支撐的設(shè)計(jì)平臺(tái),基于觸發(fā)器聚類的定制時(shí)鐘設(shè)計(jì),深度層次化設(shè)計(jì)等。這套In-House的流程和工具比純粹依賴EDA工具的單元級(jí)設(shè)計(jì)流程提升性能20%左右。

  2014年11月初,3A2000交付流片。這次流片共有龍芯的三款芯片一起拼了個(gè)全掩膜。由于流片前的功能驗(yàn)證非常充分,尤其是在3A2000驗(yàn)證過程中,王朋宇負(fù)責(zé)的驗(yàn)證組完善了龍芯指令級(jí)隨機(jī)驗(yàn)證環(huán)境,從原來只覆蓋用戶態(tài)指令到覆蓋核心態(tài)指令以及例外處理,大大提高了3A2000的功能驗(yàn)證覆蓋率。物理設(shè)計(jì)和檢查也精雕細(xì)刻,我們對3A2000流片成功很有信心。

  經(jīng)過幾個(gè)月的焦急等待,2015年4月10日晚飯后,終于拿到了3A2000的盲封樣片,連夜進(jìn)行調(diào)試,到第二天早上三點(diǎn)多成功運(yùn)行操作系統(tǒng)。隨后的測試一切順利:在運(yùn)行了包括SPECCPU2000、SPECCPU2006、Unixbench等大型程序后,功能未見異常;主頻可以達(dá)到1GHz;SPECCPU2006單核分值達(dá)到6-7分,是3A1000的3倍左右,尤其是以STREAM測試表征的訪存帶寬大幅度從3A1000的不到1GB/s上升到10GB/s,與市場主流處理器基本持平。在基于龍芯3A2000的桌面終端上進(jìn)行各種辦公應(yīng)用,覺得流暢多了。有部分芯片在較高電壓下運(yùn)行不穩(wěn)定,當(dāng)時(shí)并沒有引起重視。

  2015年5月,經(jīng)過ATE測試臺(tái)成測的一批芯片回來測試,發(fā)現(xiàn)功能測試結(jié)果與ATE測試臺(tái)測試結(jié)果不一致,即部分芯片通過ATE測試后功能還是不正常,這是3A2000完成產(chǎn)品化的嚴(yán)重障礙(即通過測試后提供給客戶的芯片中有一部分可能是壞的)。通過調(diào)整ATE向量,ATE測試與功能測試的一致性增強(qiáng),但還有部分芯片不完全一致,總體感覺N管偏快的工藝穩(wěn)定性明顯增強(qiáng)。為了更好地分析原因,6月初請廠家把第一次流片中6個(gè)hold的晶圓調(diào)整工藝角開始生產(chǎn)。

  經(jīng)過繼續(xù)深入的分析,發(fā)現(xiàn)兩個(gè)明顯現(xiàn)象:一是N管偏快的芯片穩(wěn)定性好很多,ATE測試和功能測試比較一致;二是通過改善主板電源穩(wěn)定性,有利于芯片穩(wěn)定。雖然機(jī)理不是很清楚,但在當(dāng)時(shí)巨大的市場壓力下(采用引進(jìn)技術(shù)的CPU到處攻擊龍芯性能不行,要求有關(guān)自主化應(yīng)用放棄龍芯,使用引進(jìn)技術(shù)的CPU),決定結(jié)合已有的現(xiàn)象進(jìn)行改版流片,一是更換定制的電容更大的DECAP替換廠家提供的DECAP以抑制動(dòng)態(tài)壓降(定制的DECAP電容比廠家提供的DECAP電容提高一個(gè)數(shù)量級(jí)),這會(huì)帶來抗ESD能力下降的風(fēng)險(xiǎn),但我們經(jīng)過分析覺得風(fēng)險(xiǎn)不大(事后流片回來進(jìn)行了ESD實(shí)驗(yàn),抗2000V人體模型沒問題);二是根據(jù)負(fù)責(zé)全定制工作的鐘石強(qiáng)的建議調(diào)整了定制寄存器堆的字線和位線配合時(shí)序(增加了20ps左右的裕量),因?yàn)榉抡姘l(fā)現(xiàn)N管偏快有利于定制的寄存器堆字線和位線時(shí)序配合,與實(shí)驗(yàn)現(xiàn)象符合。3A2000的第一次改版只改了6層掩膜板,于9月初完成改版設(shè)計(jì)并交付流片。

  2015年11月初,6個(gè)調(diào)整工藝角的芯片回來,經(jīng)過大量的ATE測試和功能測試,確定寄存器堆是部分芯片功能不穩(wěn)定的主要原因。ATE測試發(fā)現(xiàn)不同工藝角芯片的寄存器堆MBIST測試在1.30V到1.50V的不同電壓下出錯(cuò),功能測試出錯(cuò)電壓則比寄存器堆低100-150mV,有較強(qiáng)的一致性,但機(jī)理仍不清楚。

  2016年1月11日下午下班前,我跟范寶峽、蘇孟豪在討論蘇孟豪通過JTAG通路(這是預(yù)留的除了正常的ATE測試外的另外一條測試通路)以ScanCollar方式測試寄存器堆沒有發(fā)現(xiàn)錯(cuò)誤的問題,并了解到楊旭審查版圖發(fā)現(xiàn)寫端口的位線的延遲在其它端口寫相反值及讀端口旁路讀時(shí)是最差情況,我馬上叫蘇孟豪用最差情況向量通過JTAG端口進(jìn)行測試,很快就復(fù)現(xiàn)了寄存器堆出錯(cuò)的問題并經(jīng)過進(jìn)一步分析搞清楚了寄存器堆寫出錯(cuò)的機(jī)理:在寄存器堆寫端口寫入過程中,要求位線比字線先到,字線與位線之間保持必要的延遲差才能保證寫入的正確性,但在位線負(fù)載大時(shí)(其它寫端口寫相反值及其它讀端口讀旁路)位線延遲變大,字位線延遲差太小,導(dǎo)致寫寄存器堆出錯(cuò)。提高電壓會(huì)進(jìn)一步減少字線與位線的延遲差,因此更容易出錯(cuò)。

  真是柳暗花明,困擾我們大半年的3A2000產(chǎn)品化問題終于搞清楚了,尤其是這說明我們在2015年9月份在機(jī)理不清楚情況下的改版是正確的。而且這個(gè)測試向量提供了一種在已有芯片中把不穩(wěn)定的芯片篩選掉的辦法,這是龍芯3A2000產(chǎn)品化過程邁出的重大一步。

  2016年2月8日是春節(jié),3A2000第一次改版的芯片在2月4日完成封裝,為了在春節(jié)前完成3A2000第一次改版芯片測試,孫凱軍專門到封裝廠等待封裝好的芯片,拿到芯片時(shí)已經(jīng)是下午6點(diǎn)多,直飛北京的飛機(jī)已經(jīng)沒了,半夜到上海倒了一次飛機(jī),5日上午到北京,馬上安排測試,確實(shí)寄存器堆的問題大大緩解了,穩(wěn)定性大幅度提高。春節(jié)上班后我們又組織攻關(guān)解決了一個(gè)軟硬件磨合的問題,到2016年2月22日,完成3A2000的初步產(chǎn)品化工作,開始對外銷售芯片(原來一直只能以樣片方式贈(zèng)送給客戶試用)。

  2016年3月中旬,3A2000進(jìn)行再次改版,這次改版是全掩膜改版(原來是三個(gè)芯片拼了個(gè)全掩膜),除了進(jìn)一步增加寄存器堆字線和位線的延遲差以外,還修改了其它幾個(gè)小問題。2016年7月下旬,芯片回來后經(jīng)測試,原來的定制模塊問題不復(fù)存在,芯片功能正常,而且ATE測試與功能測試一致性好。目前3A2000已經(jīng)進(jìn)入量產(chǎn)階段,其中經(jīng)過測試支持通過直連形成多路服務(wù)器的芯片成為3B2000。

  在隨后的應(yīng)用推廣中,3A2000與3A1000保持引腳兼容以及軟件兼容體現(xiàn)出巨大優(yōu)越性,很多客戶直接在原來3A1000的主板上換焊3A2000芯片,只需通過簡單的BIOS和內(nèi)核調(diào)整,就可以大幅度提升性能。龍芯的整機(jī)廠家迅速升級(jí)了部分原來基于龍芯3A1000的計(jì)算機(jī)并進(jìn)行了應(yīng)用試點(diǎn)。在2016年6月進(jìn)行的某辦公應(yīng)用試點(diǎn)驗(yàn)收會(huì)上,有關(guān)部門和專家認(rèn)為,基于3A2000的計(jì)算機(jī)使自主化辦公應(yīng)用從“基本可用/可用”提高到“基本好用/好用”。

  龍芯3A3000是在2015年5月臨時(shí)安排研制的。2015年5月初,我去常熟跟龍芯夢蘭公司的張福新、吳少剛等人討論3A2000整機(jī)解決方案的研發(fā)。大家對3A2000大幅度提升性能都很高興,大大增強(qiáng)了信心。同時(shí)張福新他們提出,由于我們使用境內(nèi)的40nm低速工藝,而引進(jìn)ARM和威盛的CPU都使用境外28nm高速工藝,雖然3A2000在微結(jié)構(gòu)上已經(jīng)超過了引進(jìn)的ARM和威盛的CPU,由于主頻偏低,3A2000在綜合性能上還是吃虧(1.0GHz的3A2000處理器核SPECCPU2006分值為6-7分,而1.6-2.0GHz的ARM和威盛處理器核SPECCPU2006分值達(dá)到8-10分),建議龍芯也盡快使用境外工藝提升頻率。經(jīng)過認(rèn)真討論,我們認(rèn)為如果我們采用Intel的Tick-Tock(嘀嗒)研發(fā)策略,應(yīng)該可以很快推出主頻1.5GHz以上,綜合性能超過2GHz的ARM和威盛的處理器。Tick指的是結(jié)構(gòu)不變,通過工藝優(yōu)化提升性能;Tock指的是工藝不變,通過結(jié)構(gòu)優(yōu)化提升性能。Tick-Tock策略可以把兩個(gè)芯片流水推進(jìn),加快進(jìn)度的同時(shí)降低技術(shù)風(fēng)險(xiǎn)。

  3A2000主要是通過結(jié)構(gòu)優(yōu)化提升性能,屬于Tock;3A3000則直接采用3A2000的源代碼,通過工藝優(yōu)化提升性能,同時(shí)繼續(xù)保持與3A2000的引腳兼容,屬于Tick。因此,3A3000在功能上沒有什么風(fēng)險(xiǎn),主要是工藝移植的風(fēng)險(xiǎn)。當(dāng)然,3A3000在微結(jié)構(gòu)上還是做了適度增強(qiáng):一是結(jié)合3A2000的性能瓶頸分析把定點(diǎn)/浮點(diǎn)發(fā)射隊(duì)列從16/24項(xiàng)增加到32/32項(xiàng),二是把最后一級(jí)Cache從4MB提高到8MB。到6月底,完成了RTL源代碼修改,隨后全面展開物理設(shè)計(jì)。

  3A3000物理設(shè)計(jì)中繼續(xù)需要定制包括HT-PHY、DDR-PHY、鎖相環(huán)、多端口寄存器堆、CAM等全定制模塊。由于3A2000中的全定制模塊出過問題,3A3000的全定制模塊檢查特別嚴(yán)格。除了加強(qiáng)設(shè)計(jì)仿真外,還讓原龍芯全定制組的組長楊旭(現(xiàn)在是龍芯中科公司全面負(fù)責(zé)生產(chǎn)的副總)重新披掛上陣,進(jìn)行背靠背的復(fù)查。緊趕慢趕,于2016年1月底完成了全定制設(shè)計(jì)的簽核和復(fù)查評(píng)審。

  3A3000物理設(shè)計(jì)中另一個(gè)難點(diǎn)是時(shí)序收斂。3A3000使用的28nmFDSOI工藝晶體管確實(shí)比3A2000使用的40nmLL快60%左右,但連線延遲大,而且互相干擾也大,廢了很多周折。楊梁率領(lǐng)物理組在2016年春節(jié)期間也沒有休息,終于在2016年2月中旬交付流片。

  2016年6月端午假期期間,龍芯3A3000完成晶圓生產(chǎn)并進(jìn)行了中測,剛開始比較順利,已經(jīng)調(diào)試完成大部分向量,只是測試我們自己研制的鎖相環(huán)時(shí)發(fā)現(xiàn)鎖相環(huán)輸出時(shí)鐘有不穩(wěn)定現(xiàn)象。6月中旬拿到盲封芯片,測試發(fā)現(xiàn)只有在低于0.8V的低電壓下芯片才能正常工作,經(jīng)過兩周的分析發(fā)現(xiàn)還是寄存器堆的問題,這次是讀出電路的問題,讀電路譯碼時(shí)產(chǎn)生了毛刺,把別的字的內(nèi)容耦合到讀出字內(nèi)容來了。好在該問題只需要修改一層掩模版。

  2016年9月13日,修改寄存器堆問題的改版芯片回來。這次測試非常順利,很快就運(yùn)行了SPECCPU2000和SPECCPU2006等大型程序,均未發(fā)現(xiàn)異常。主頻可以達(dá)到1.5GHz以上。進(jìn)一步的測試結(jié)果比想象的好,一是內(nèi)存頻率可以達(dá)到750MHz以上,而且信號(hào)眼圖還非常好,STREAM測試帶寬達(dá)到13GB/s;二是雖然主頻只提高了50%,但綜合SPECCPU2006和SPECCPU2000分值可以提高60%,其中SPECCPU2006單核分值為定點(diǎn)11分以上、浮點(diǎn)10分以上,四核分值為定點(diǎn)36分,浮點(diǎn)33分;三是可以運(yùn)行在很低電壓下,例如運(yùn)行在1.0V電壓下主頻1GHz時(shí)功耗還不到3A2000運(yùn)行1GHz時(shí)的一半。對于復(fù)雜應(yīng)用(如打開幾十MB的復(fù)雜文件),3A3000的用戶體驗(yàn)比3A2000有顯著提高。

  2016年10月17日,龍芯3A3000通過了龍芯公司質(zhì)量體系要求的商業(yè)級(jí)產(chǎn)品的鑒定檢驗(yàn)摸底測試(工業(yè)級(jí)產(chǎn)品鑒定檢驗(yàn)工作正在同步展開),表明龍芯3A3000可以進(jìn)入批量生產(chǎn)狀態(tài)。目前3A3000已開始小批量生產(chǎn),其中經(jīng)過測試支持通過直連形成多路服務(wù)器的芯片成為3B3000。

  龍芯3A3000運(yùn)行SPECCPU2000定點(diǎn)分值1100多分,浮點(diǎn)分值1700多分,運(yùn)行一遍不到一個(gè)半小時(shí)(如果使用計(jì)算所的編譯器進(jìn)行優(yōu)化,定點(diǎn)和浮點(diǎn)分值還分別可以提高15%和30%以上)?;叵?002年龍芯1號(hào)剛誕生時(shí),運(yùn)行一遍SPECCPU2000需要近三天時(shí)間,龍芯2C由于SEPCCPU2000分值沒有達(dá)到863課題合同要求的300分而沒有完成驗(yàn)收,龍芯2E費(fèi)了九牛二虎之力才勉強(qiáng)達(dá)到500分,真是“向來枉費(fèi)推移力,今日中流自在行”。

  在3A2000和3A3000的研制過程中,有兩點(diǎn)深刻體會(huì)。一是CPU的可調(diào)試性設(shè)計(jì)很重要,3A2000和3A3000的全定制問題和若干其它問題的定位,都是基于通過JTAG接口控制的預(yù)先設(shè)計(jì)的調(diào)試模塊,該調(diào)試模塊可以控制和讀出CPU內(nèi)部所有觸發(fā)器和RAM的內(nèi)容,比起以前調(diào)3A1000、3B1000和3B1500方便多了。二是境內(nèi)工藝的一致性比境外工藝有一定差距,包括不同批次的一致性,仿真模型和實(shí)際晶體管參數(shù)的一致性都和國外工藝有一定差距,設(shè)計(jì)時(shí)要多留些裕量,蒙特卡羅仿真也要把參數(shù)波動(dòng)范圍設(shè)大一些。

  3A3000研制成功對自主CPU來說具有里程碑意義。首先,3A3000的通用處理性能已經(jīng)跨過了國際通用處理器性能的第一個(gè)門檻,其單核SPECCPU2006性能已經(jīng)不低于ARM用于服務(wù)器的高端處理器、Intel的低端系列(凌動(dòng)系列)處理器以及威盛處理器(這些處理器在1-4核環(huán)境下2GHz時(shí)單核SPECCPU2006性能一般在8-10分之間,如果核數(shù)更多,由于最后一級(jí)Cache巨大,性能會(huì)有所提高),而且3A3000的訪存帶寬已經(jīng)與AMD以及Intel的高端系列(酷睿系列)持平。這樣的性能玩復(fù)雜的3D游戲可能還有差距,但對于以黨政辦公為代表的事務(wù)處理應(yīng)用是足夠了(如果軟件做適當(dāng)磨合優(yōu)化,3A2000就夠了)。龍芯3A3000跨過了國際通用處理器性能的第一個(gè)門檻后,也為下一步跨越第二個(gè)門檻(即達(dá)到Intel和AMD主流處理器的性能)打下了堅(jiān)實(shí)的基礎(chǔ)。其次,3A3000的通用處理性能超過了目前靠引進(jìn)ARM和威盛技術(shù)發(fā)展的國內(nèi)同類(四核)CPU。“十一五”開始的自主信息化應(yīng)用試點(diǎn)發(fā)現(xiàn)第一代自主CPU通用處理性能不夠的問題后,國內(nèi)CPU研制單位均展開了第二代CPU的研發(fā),并衍生出三條不同的技術(shù)路線。第一條是以龍芯和申威為代表的“研”的路線,即通過分析第一代產(chǎn)品應(yīng)用中發(fā)現(xiàn)的問題進(jìn)行自主研發(fā)升級(jí)。第二條是“攢”的路線,即使用國外的處理器核“攢”SOC,并在此基礎(chǔ)上對處理器核進(jìn)行局部優(yōu)化。第三條是“O(ODM)”的路線,即中國人掏錢請外國人干,目前主要是把國外/境外已有的現(xiàn)成設(shè)計(jì)直接拿過來換成中國的品牌。由于自主研發(fā)路線在“十一五”期間走了彎路,很多人對自主研發(fā)路線產(chǎn)生了疑慮,覺得此路不通,因此“核高基”在“十二五”期間主要支持以ARM的處理器核“攢”SOC的路線和“O”威盛的路線為主。一是錢多,二是引進(jìn)別人的產(chǎn)品省時(shí)間,加上龍芯3A2000與境內(nèi)工藝磨合,在產(chǎn)品化方面花了較多時(shí)間,從2014年年底到2016年年初大約一年半的時(shí)間,采用引進(jìn)技術(shù)的CPU大肆攻擊自主CPU性能不行,要求在已有的自主信息化試點(diǎn)中換掉龍芯(而且確實(shí)換掉了一些),給龍芯造成很大壓力。

  3A3000的通用處理性能超過引進(jìn)的ARM和威盛技術(shù)的CPU,加上前些日子使用申威處理器的“太湖之光”高性能機(jī)取得世界第一的好成績,充分說明不論是通用CPU還是高性能機(jī)專用CPU,自主研發(fā)的道路都是走得通的,不僅安全性好,性能也高。尤其是通過自主研發(fā)形成持續(xù)改進(jìn)能力后,未來的后勁更足??梢哉f,在與引進(jìn)CPU的技術(shù)路線的斗爭中,龍芯3A3000是抗日戰(zhàn)爭的石牌保衛(wèi)戰(zhàn),是解放戰(zhàn)爭的濟(jì)南戰(zhàn)役,拉開了自主CPU戰(zhàn)略反攻的序幕。尤其值得指出的是,龍芯3A3000的研制沒有得到任何國家項(xiàng)目的補(bǔ)助,是完全由企業(yè)自己掏錢研制的自主通用CPU,也具有里程碑意義。

  根據(jù)Tick-Tock策略,我們制定了龍芯3號(hào)系列下一步研制計(jì)劃。四核龍芯3A4000為Tock,繼續(xù)使用目前的28nm工藝,爭取主頻達(dá)到2GHz以上,SPECCPU2006單核分值達(dá)到20分以上。3A4000的主要結(jié)構(gòu)優(yōu)化包括:增加256位的向量指令,增加片內(nèi)安全機(jī)制,以及進(jìn)一步通過微結(jié)構(gòu)優(yōu)化提高流水線效率,爭取每GHz的單核SPECCPU2006分值達(dá)到10分(目前3A3000每GHz的單核SPECCPU2006分值為7分,ARM的高端處理器為5-6分,X86主流處理器為10-15分)。目前3A4000的研制工作已經(jīng)展開。在3A4000之后將研制Tick階段的新一代處理器,初步考慮使用16nm或14nm的工藝以及3A4000的處理器核研制16核的龍芯3C。經(jīng)過3A4000的又一輪優(yōu)化,龍芯的處理器核微結(jié)構(gòu)已經(jīng)基本到位,是時(shí)候把2013年5月暫停的16核龍芯3C重新提上日程了。

  十年以來,我們先后研制了龍芯3A1000、3B1000、3B1500、3A2000/3B2000、3A3000/3B3000五款龍芯3號(hào)系列芯片,大的流片版本12個(gè),小的流片版本(只改幾層掩膜板)6個(gè),碰到了各種各樣的問題,經(jīng)歷了很多坎坷。為什么龍芯CPU的研制經(jīng)歷這么多坎坷呢?除了龍芯的質(zhì)量流程需要持續(xù)改進(jìn)以外(最近結(jié)合3A2000和3A3000的全定制問題正在舉一反三,并完善全定制流程),究其根本原因,是因?yàn)槲覀儓?jiān)持芯片中的核心模塊自己研制。前面提到的龍芯3號(hào)研制過程中碰到的問題,都是包括CPU、HT控制器、內(nèi)存控制器、全定制寄存器堆、全定制鎖相環(huán)等核心模塊內(nèi)部的問題,并不是把這些模塊“攢”在一起產(chǎn)生的問題。這些問題,如果購買商業(yè)IP(如ARM的CPU,Imagination的GPU等)來“攢”芯片一般不會(huì)碰到。自從2001年開始研制CPU以來,我直接或間接負(fù)責(zé)了近百次流片,流片后碰到的問題除了極個(gè)別外,都是核心模塊內(nèi)部的問題。

  龍芯長期堅(jiān)持芯片中的核心IP自己掌握。這些核心IP包括CPU核、內(nèi)存控制器、DDR2/3/4的PHY、互連網(wǎng)絡(luò)、HT控制器、HTPHY等,最近還展開了GPU的研發(fā),只有少量的外圍IP使用商用IP。不是吃飽了飯沒事干,而是我們使用別人的IP吃過虧。2003年我們剛開始研制龍芯2號(hào)時(shí)委托一個(gè)很有名的EDA和設(shè)計(jì)服務(wù)公司定制一個(gè)3寫6讀寄存器堆,在交付流片后發(fā)現(xiàn)其中的電源地嚴(yán)重缺失,跟他們交涉時(shí)他們說這個(gè)不會(huì)有問題,導(dǎo)致龍芯2號(hào)系列的第一款芯片龍芯2A流片失敗,后來我們自己定制了該寄存器堆才使龍芯2B流片成功。龍芯3A1000剛開始研制時(shí)曾經(jīng)使用過商業(yè)DDR2/3PHY,我們在檢查中發(fā)現(xiàn)了一些問題,但廠家覺得沒問題不愿意修改,后來3A1000流片時(shí)同時(shí)流了使用商用DDR2/3PHY和自主研制DDR2/3PHY的兩個(gè)版本,并在使用自主DDR2/3PHY的版本流片成功后確定使用自主DDR2/3PHY的版本進(jìn)行量產(chǎn)。龍芯3A1000和3B1000曾經(jīng)使用過商業(yè)的內(nèi)存控制器,但商業(yè)的內(nèi)存控制器滿足不了高性能CPU的帶寬要求(使用商業(yè)內(nèi)存控制器的SOC在雙通道下不可能做出龍芯3A3000的13GB/s實(shí)測帶寬來),因此從3B1500開始自主設(shè)計(jì)內(nèi)存控制器。龍芯2H集成了商用的GPU核,該GPU核有Android操作系統(tǒng)的驅(qū)動(dòng)程序,但我們需要Linux的Xserver驅(qū)動(dòng),廠家自己開發(fā)不了,我們希望廠家把內(nèi)部配置寄存器如何使用的手冊給我們,我們自己開發(fā),可是廠家說這是商業(yè)機(jī)密,不愿意給,至今龍芯2H只有在Android上有3D驅(qū)動(dòng),Linux的Xserver驅(qū)動(dòng)只有2D的。

  一是吃過虧,二是覺得洋鬼子干得還不如我們,所以就自己干。在國際上,雖然Nvidia巴心巴肝地幫Intel做配套GPU,Intel還是堅(jiān)持自己做GPU;雖然Imagination巴心巴肝地幫ARM做配套GPU,ARM也堅(jiān)持自己做GPU;雖然開源的火狐瀏覽器很不錯(cuò),谷歌還是堅(jiān)持自己做Chrome。蘋果和高通公司都是在ARM的架構(gòu)授權(quán)下自主設(shè)計(jì)處理器核,其性能遠(yuǎn)高于ARM的處理器核。他山之石、可以攻玉。只有技術(shù)上不受制于人,才有產(chǎn)業(yè)上的主動(dòng)權(quán)。

  做任何事情,依靠別人總是容易一些,完全靠自己則困難得多。但依靠得多了,吃過虧后才明白還得靠自己。毛主席在青年時(shí)期也沒有想過要革命,想著改良主義可以救中國,后來才覺得馬克思主義是“山窮水盡諸路皆走不通了”的選擇;建黨后在陳獨(dú)秀領(lǐng)導(dǎo)下在湖南搞工人運(yùn)動(dòng),光大的罷工就舉行了十多次,結(jié)果是罷工受鎮(zhèn)壓,工人領(lǐng)袖被殺;國共合作期間依靠國民黨的武裝干革命,結(jié)果蔣介石發(fā)動(dòng)“四一二”政變殺共產(chǎn)黨人;好不容易上井岡山建立了自己的軍隊(duì),找到了武裝奪取政權(quán)、農(nóng)村包圍城市的道路,卻被那些在上海租界呆不住跑到井岡山避難的書生們輕松地奪了權(quán),不得不進(jìn)行兩萬五千里長征;經(jīng)歷千難萬險(xiǎn)與四方面軍會(huì)師了,還差點(diǎn)被貪心不足的張國燾武力扣押。吃了這么多虧后,毛主席在以后的革命和建設(shè)中就牢牢掌握了主動(dòng)權(quán),包括國共第二次合作時(shí)堅(jiān)持獨(dú)立自主的山地游擊戰(zhàn),反對共產(chǎn)國際的“一切通過統(tǒng)一戰(zhàn)線”的錯(cuò)誤主張;重慶談判堅(jiān)持保留邊區(qū)和軍隊(duì);建國后先是抗美援朝,后是中蘇論戰(zhàn)。等等。

  在中國的近代史上,我們有三次向外國老師學(xué)習(xí)的經(jīng)驗(yàn),每次都是受老師欺負(fù)吃了虧后走上自力更生的道路。第一次是洋務(wù)運(yùn)動(dòng),晚清時(shí)期中國海關(guān)關(guān)長都是英國人擔(dān)任的,是中國歷史上最開放的時(shí)期,卻被西方列強(qiáng)欺負(fù)得水深火熱,毛主席領(lǐng)導(dǎo)共產(chǎn)黨推翻了三座大山,解放了中國人民。第二次是建國后向蘇聯(lián)學(xué),一邊倒,結(jié)果蘇聯(lián)在中國的土地上又想建聯(lián)合艦隊(duì),又想建長波電臺(tái),毛主席拒絕后蘇聯(lián)又撤專家又逼債,毛主席還是領(lǐng)導(dǎo)中國人民自己搞了“兩彈一星”,建立了自主可控的工業(yè)體系。第三次是改革開放,我們學(xué)習(xí)西方的管理理念和科學(xué)技術(shù),剛開始覺得挺好的,現(xiàn)在有點(diǎn)覺得吃虧了(像我這樣氣性大的覺得忍無可忍了,很多人覺得還可以再忍忍)。2011年我國IT產(chǎn)業(yè)百強(qiáng)企業(yè)的利潤總和是蘋果公司的40%(我剛開始覺得華為是通信企業(yè),可能不算在IT百強(qiáng)里面,后來查到華為也算在這里面時(shí)很有挫折感)??偸锹爩<艺f,我國跟美國的經(jīng)濟(jì)互相依賴,美國也不敢把我們怎么樣,可是當(dāng)美國制裁中興時(shí),我們不得不認(rèn)慫,中興公司定期向美國商務(wù)部報(bào)告工作,以獲得延期制裁。美國可以通過不賣元器件在三個(gè)月之內(nèi)把國人引以為豪的華為、聯(lián)想、中興等企業(yè)搞死,十大軍工集團(tuán)有大半開不了張,我們有哪種產(chǎn)品不賣給美國企業(yè),會(huì)把美國的Intel、IBM、谷歌、微軟、蘋果搞死呢,我們頂多能把沃爾瑪搞得比較難受?,F(xiàn)在想想,毛主席周總理帶著全國人民勒緊褲腰帶煉鋼鐵、打油井、發(fā)展兩彈一星,建立起自主可控的工業(yè)體系真是無比英明。

  正如改革開放進(jìn)入深水區(qū),容易改的都改完了,剩下都是難改的;創(chuàng)新也進(jìn)入深水區(qū),容易創(chuàng)新的都創(chuàng)完了,剩下難創(chuàng)新的,需要十年磨一劍的積累。我們的IT產(chǎn)業(yè)先學(xué)會(huì)了用國外的芯片在主板上“攢”系統(tǒng),后來又學(xué)會(huì)了用國外的IP在硅上“攢”系統(tǒng)。掌握這些簡單技術(shù)后,下面該深入到CPU、GPU這些復(fù)雜的核心模塊中去了。這些復(fù)雜的創(chuàng)新不是領(lǐng)導(dǎo)重視、錢多、人多就能一下子干出來的,還需要時(shí)間來磨,在探索和試錯(cuò)過程中不斷演進(jìn)。領(lǐng)導(dǎo)重視、人多、錢多可以加速探索和試錯(cuò)的過程,但不能消除這個(gè)過程。中國航天建空間站,先來個(gè)天宮一號(hào)試試看,再來個(gè)天空二號(hào)(還分兩期)接著試,最后再發(fā)射正式空間站,也是這個(gè)演進(jìn)的道理,不是缺錢,也不是領(lǐng)導(dǎo)不重視。CPU是超復(fù)雜系統(tǒng),超復(fù)雜系統(tǒng)只能走進(jìn)化論的道路,在產(chǎn)業(yè)化實(shí)踐中通過長期演進(jìn)發(fā)展起來。即使在這個(gè)過程中,得到別人的源代碼,也只能加速自主研發(fā)的進(jìn)度,取代不了自主研發(fā)的工作。更何況復(fù)雜系統(tǒng)是很難消化吸收的,即使拿到國外CPU的源代碼,每一行都看得明白,但把幾百萬行代碼拼在一起就不知道是干什么的,就像我們可以打開一頭豬的大腦看得清清楚楚,但不知道豬在想什么。很多人現(xiàn)在還寄希望于引進(jìn)國外技術(shù)發(fā)展我國的CPU,那是因?yàn)槌匝蠊碜拥奶潧]吃夠。須知天上是不會(huì)掉餡餅的,要發(fā)展以自主CPU和操作系統(tǒng)為代表的基礎(chǔ)軟硬件,我們必須克服急躁情緒,克服崇洋情緒,發(fā)揚(yáng)愚公移山精神,堅(jiān)持實(shí)事求是作風(fēng),在自主創(chuàng)新實(shí)踐中不斷發(fā)現(xiàn)問題,在解決問題過程中不斷提高能力,才能保障國家安全和支撐產(chǎn)業(yè)發(fā)展。

  龍芯今年15歲了。中國共產(chǎn)黨在15歲的時(shí)候完成了舉世矚目的萬里長征,建立了陜北根據(jù)地,取得了生存的基礎(chǔ),但共產(chǎn)黨長征的目的決不僅僅是建立一塊根據(jù)地活下來,而是以此為基礎(chǔ)解放全中國。龍芯在15歲的時(shí)候完成了3A3000的研發(fā),跨越了國際上通用CPU的第一個(gè)性能門檻,性能超過了引進(jìn)設(shè)計(jì)的CPU,龍芯公司實(shí)現(xiàn)盈利,取得了生存的基礎(chǔ),但龍芯的目標(biāo)絕不是為了生存和掙錢,而是為了建立自主可控的信息產(chǎn)業(yè)體系。目前我國的信息產(chǎn)業(yè)主要建立在以Wintel體系(Intel的CPU和微軟的Windows操作系統(tǒng))和AA體系(ARM的CPU和谷歌的Android操作系統(tǒng))為代表的國外基礎(chǔ)軟硬件平臺(tái)上。要改變我國信息產(chǎn)業(yè)和信息安全受制于人的局面,不能只著眼于單項(xiàng)技術(shù)的突破和產(chǎn)品市場占有率的提高,必須建立起自主可控的信息技術(shù)與產(chǎn)業(yè)生態(tài)體系,形成與Wintel體系和AA體系“三足鼎立”的局面,才能掌握產(chǎn)業(yè)發(fā)展主導(dǎo)權(quán),消除安全隱患。如果我們沒有建立起自主可控的IT產(chǎn)業(yè)體系,繼續(xù)在已有的Wintel體系和AA體系中當(dāng)“馬仔”,是難以實(shí)現(xiàn)中華民族的偉大復(fù)興的“中國夢”的。反之,只要我們堅(jiān)持自主創(chuàng)新,打通技術(shù)鏈,完全可以在局部指標(biāo)不如國外產(chǎn)品的情況下,建設(shè)出優(yōu)于國外產(chǎn)品的應(yīng)用系統(tǒng)。須知判斷技術(shù)是否先進(jìn)的標(biāo)準(zhǔn),不是看其跟美國人跟得緊不緊,而是看其跟應(yīng)用結(jié)合得緊不緊。

  古人說“事非經(jīng)過不知難”。但只要認(rèn)真去做,也有“事非經(jīng)過不知易”的道理。龍芯3號(hào)系列CPU通用處理性能在從2013年起的不到四年時(shí)間提高到了原來的五倍以上,充分說明了這個(gè)道理。2001年我們開始研制龍芯CPU的時(shí)候,很少人相信我們能夠做出來,在整個(gè)“十五”期間,網(wǎng)絡(luò)上“龍芯打假”的言論層出不窮,但我們堅(jiān)持做出來了,方法是在別人都不信的情況下,做給他看。2006年我們開始推廣龍芯CPU應(yīng)用的時(shí)候,也很少有人相信龍芯能用起來,不知受了多少奚落和冷嘲熱諷,甚至有人說,如果龍芯能夠賣得出去,他就從此倒立著走,但龍芯公司現(xiàn)在能夠通過龍芯CPU的銷售養(yǎng)活自己了,方法還是在別人都不信的情況下,做給他看。今天我們說要建立自主可控的信息產(chǎn)業(yè)體系,還是多數(shù)人不信,無非是認(rèn)為做生態(tài)太難,自己肯定做不好,不如跟著別的老大當(dāng)個(gè)馬仔,所以總說與X86和ARM兼容生態(tài)好,總之是一種畏難情緒。對付信心不足,我們還是老套路,做給他看。世界上做CPU的企業(yè)中,凡是不做生態(tài)(DEC、IBM、HP、SUN、SGI)或者跟生態(tài)(AMD、威盛)的CPU企業(yè)都活不好。八十年前幾萬衣不蔽體的紅軍剛到陜北時(shí)有誰相信這幫泥腿子能解放全中國?改革開放初期以能買到日本彩電為榮的中國人有幾個(gè)相信今天中國的制造業(yè)產(chǎn)值已超過美國加日本的總和?在建立自主信息產(chǎn)業(yè)體系方面,我們要在自己內(nèi)部肅清一切軟弱無能的思想,就像毛主席說的:“我們的同志,在困難的時(shí)候,要看到成績,要看到光明,要提高我們的勇氣”。

  八十年前,當(dāng)衣不蔽體的幾萬紅軍完成兩萬五千里長征時(shí),他們是中國最生氣勃勃,具有百折不撓的獻(xiàn)身精神,真正的民族精英。他們是懷著對革命的堅(jiān)定信念,在崇高理想的指導(dǎo)下走完長征的。同樣,自從2001年開始龍芯處理器研發(fā)以來,龍芯人也是懷著堅(jiān)持自主創(chuàng)新、保障國家安全、支撐產(chǎn)業(yè)發(fā)展的堅(jiān)定信念走了一條別人沒有走過、多數(shù)人不信能走通、非常艱難的“長征”。十五年來,很多龍芯的技術(shù)骨干都把人生最美好的青春獻(xiàn)給了龍芯的“長征”。加班加點(diǎn)仍是龍芯研發(fā)人員的常態(tài),而龍芯的薪酬長期低于同行業(yè)水平,有些人三十多歲就出現(xiàn)了各種健康問題。不少龍芯的技術(shù)骨干都接到過獵頭公司百萬年薪的電話,但龍芯團(tuán)隊(duì)的核心骨干非常穩(wěn)定。為了龍芯的產(chǎn)業(yè)化,很多技術(shù)骨干都毅然放棄中科院的事業(yè)編制,辭職到龍芯公司。人都是有私心的,但我敢保證龍芯人的私心相對少一些;大家離毛主席要求的“一個(gè)高尚的人,一個(gè)純粹的人,一個(gè)有道德的人,一個(gè)脫離了低級(jí)趣味的人,一個(gè)有益于人民的人”都有差距,但我敢自豪地說龍芯人的差距相對小一些。后之視今,尤今之視昔。我相信,我們的后人會(huì)像我們今天崇敬長征的英雄、崇敬抗美援朝的英雄、崇敬兩彈一星的英雄一樣,來崇敬今天在建立我國自主可控的信息產(chǎn)業(yè)體系道路上歷經(jīng)艱難險(xiǎn)阻完成新長征的我們。

  龍芯十五年的堅(jiān)持來自中國科學(xué)院的光榮傳承。中科院計(jì)算所是我國計(jì)算機(jī)事業(yè)的搖籃,經(jīng)歷了“完全自主但沒有市場化”的第一個(gè)三十年,為兩彈一星做計(jì)算機(jī);也經(jīng)歷了“完全市場化但喪失自主性”的第二個(gè)三十年,創(chuàng)辦了聯(lián)想和曙光,為了與市場接軌,研發(fā)工作忍痛從CPU和操作系統(tǒng)中退出。我們是中國第三代計(jì)算機(jī)人,任務(wù)是在市場化條件下實(shí)現(xiàn)自主性,保障國家安全和支撐產(chǎn)業(yè)發(fā)展。我的導(dǎo)師夏培肅院士是我國計(jì)算機(jī)事業(yè)的重要奠基人,她多次對我說過,這輩子最大的心愿就是把中國的計(jì)算機(jī)事業(yè)搞好,她們這代人沒搞好,希望我們搞得比她們好。李國杰院士曾經(jīng)在一次自主可控行業(yè)的大會(huì)上動(dòng)情地說:我的導(dǎo)師夏老師(李國杰院士也是夏培肅院士的學(xué)生)已經(jīng)九十歲了,干不動(dòng)了;我也七十歲了,快干不動(dòng)了;如果到胡偉武這一代我國的CPU和操作系統(tǒng)還沒有發(fā)展起來,中國的IT產(chǎn)業(yè)就沒戲了。龍芯團(tuán)隊(duì)有一個(gè)老研究員黃令儀老師,今年八十歲了還天天在屏幕前拖著鼠標(biāo)查版圖。有一次我請黃老師參加某用于安全領(lǐng)域的芯片研發(fā)工作時(shí),黃老師脫口而出:胡老師,我這輩子最大的心愿就是匍匐在地,擦干祖國身上的恥辱;我是親眼見過我的同胞被日本鬼子的飛機(jī)炸死的。前輩的精神感染了我們,前輩的榮光照亮了我們前進(jìn)的道路,讓我們咬著牙關(guān),勇往直前!

  龍芯十五歲了。2001年8月19日清晨當(dāng)屏幕上第一次出現(xiàn)“godsonlogin”時(shí)的那聲歡呼已經(jīng)遠(yuǎn)去,在雨中登黃山的臺(tái)階上高唱《真心英雄》時(shí)的那種豪情已經(jīng)消退,夜深人靜時(shí)在計(jì)算所北樓長長的走廊盡頭泡方便面記憶已經(jīng)模糊,但龍芯人“為人民做龍芯”的初心未改,“十年磨一劍”的執(zhí)著依舊,“人生能有幾回搏”的奮斗長在。我們已經(jīng)走在“以安全可控為主題、以產(chǎn)業(yè)發(fā)展為主線、以生態(tài)建設(shè)為目標(biāo)”的新長征道路上。迷失方向時(shí),堅(jiān)持從國家和人民的角度(而不是自己的角度)做出選擇就是我們心中的“北斗星”。長征的道路蜿蜒曲折,不僅有芳草鮮美、落英繽紛,更有沼澤沙漠、雪山草地、豺狼虎豹,因此前進(jìn)的路上就要苦我們的心智、痛我們的體膚。龍芯走自主研發(fā)道路,比直接引進(jìn)處理器芯片或者引進(jìn)處理器核的道路見效慢一些,在路上會(huì)被別人暫時(shí)超過心里著急;走市場化道路,要結(jié)合客戶需求把短板補(bǔ)齊,比起在計(jì)算所做研究時(shí)只關(guān)注幾個(gè)有顯示度的指標(biāo)來,在顯示度方面差一些;要建立自主軟硬件體系,比只在單一領(lǐng)域做單一產(chǎn)品難度大很多。這就要求我們在前進(jìn)的道路上不僅要有沖天的豪情,艱苦奮斗、奮勇爭先,而且要有鋼鐵般的意志,做到專心致志、持之以恒、精益求精,直至取得最后的勝利。我們是“苦命”而光榮的龍芯人,雖千萬人吾往矣。

  我們正在前進(jìn)。我們正在做我們的前人從來沒有做過的極其光榮偉大的事業(yè)。我們的目的一定要達(dá)到。我們的目的一定能夠達(dá)到。


上一頁 1 2 下一頁

關(guān)鍵詞: 龍芯 3A3000

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉