近日,龍芯中科宣布3A3000四核處理器芯片完成流片并通過系統(tǒng)測(cè)試,。根據(jù)現(xiàn)有的測(cè)試結(jié)果,,龍芯3A3000達(dá)到了預(yù)定的設(shè)計(jì)性能目標(biāo)。其中,,綜合計(jì)算性能方面,,在1.5GHz主頻下,GCC編譯的SPEC CPU 2006定點(diǎn)和浮點(diǎn)單核分值分別超過11分和10分,;訪存性能方面,,Steam分值超過13GBps。龍芯3A3000的流片成功,,標(biāo)志著我國(guó)自主研發(fā)的高性能微處理器芯片,,可以超越目前引進(jìn)的同類芯片性能,。龍芯CPU首席科學(xué)家胡偉武撰文披露了龍芯3號(hào)開發(fā)的歷程。
致龍芯15周年:胡偉武披露龍芯3號(hào)開發(fā)歷程
龍芯3A3000芯片
2016年是紅軍長(zhǎng)征勝利80周年,,2016年研制成功的龍芯3A3000處理器即以CZ80命名,,每顆芯片的硅片上都刻有CZ80字樣。
1936年10月,,紅一,、二、四方面軍經(jīng)過艱苦卓絕的努力,,三大主力會(huì)師,,開創(chuàng)了中國(guó)革命的新局面。它雄辯地表明,,只要堅(jiān)持理想,,實(shí)事求是,中國(guó)共產(chǎn)黨完全有能力摧堅(jiān)于正銳,、挽瀾于極危,,從重大挫折中走出來。
2016年10月,,以長(zhǎng)征勝利80周年命名為CZ80的龍芯3A3000處理器研制成功,。它雄辯地表明,只要堅(jiān)持自主研發(fā),,進(jìn)行持續(xù)改進(jìn),,自主研發(fā)的CPU性能完全可以超過引進(jìn)技術(shù)的CPU,滿足自主信息化需求,。
2016年10月7日,,我懷著虔誠(chéng)的心情走進(jìn)毛主席紀(jì)念堂,,向毛主席匯報(bào)龍芯3A3000的研制成功,。步出毛主席紀(jì)念堂,我感慨萬千,。當(dāng)十年前我開始龍芯3號(hào)研制時(shí),,完全沒有想到龍芯3號(hào)系列CPU發(fā)展道路之曲折,奮斗之艱辛,,付出之巨大,。
2006年9月13日,以長(zhǎng)征勝利70周年命名為CZ70的龍芯2E通過科技部組織的驗(yàn)收,,時(shí)任科技部部長(zhǎng)徐冠華親自參加了龍芯2E的驗(yàn)收會(huì),。龍芯2E的研制是“十五”末國(guó)家863計(jì)劃緊急安排的一個(gè)任務(wù)。當(dāng)時(shí)“漢芯”造假事件被曝光,,加上“十五”863計(jì)劃早期支持的龍芯2C沒有達(dá)到合同要求的SPEC CPU2000分值300分的目標(biāo),,自主處理器研發(fā)受到普遍質(zhì)疑。2005年4月,科技部高新司領(lǐng)導(dǎo)把我叫到辦公室,,問我到2005年年底前能不能完成863計(jì)劃“十五”初制定的主頻1GHz,、SPEC CPU2000分值達(dá)到500分的目標(biāo)。我說剩下不到一年時(shí)間,,肯定來不及,。他說根據(jù)有關(guān)規(guī)定,項(xiàng)目時(shí)間到期后三個(gè)月內(nèi)(即2006年3月底前)提出驗(yàn)收申請(qǐng)就算按時(shí)完成,。我硬著頭皮接了該任務(wù),,因?yàn)槲抑廊绻笆濉钡娜蝿?wù)完不成,那“十一五”國(guó)家是不是還支持自主CPU研發(fā)就成問題,。經(jīng)過艱苦的努力,,龍芯2E在2005年11月底交付流片(把設(shè)計(jì)好的技術(shù)文件交給芯片生產(chǎn)廠家進(jìn)行生產(chǎn)),2006年3月18日流片成功,,達(dá)到了技術(shù)指標(biāo),。雖然達(dá)到這些指標(biāo)有些勉強(qiáng)(SPEC CPU2000分值達(dá)到500分是計(jì)算所的編譯組做了很多編譯優(yōu)化實(shí)現(xiàn)的,但SPEC CPU的測(cè)試是允許進(jìn)行編譯優(yōu)化的),,但畢竟完成了指標(biāo),。龍芯2E的意義從徐冠華部長(zhǎng)參加完驗(yàn)收會(huì)后接受新聞聯(lián)播記者采訪時(shí)說的一句話可以看出:龍芯2E的成功表明,我國(guó)在“十五”期間安排的自主CPU研發(fā)是成功的,。這也為“十一五”期間國(guó)家繼續(xù)支持自主CPU研發(fā)打下了基礎(chǔ),。
2005年深秋,利用龍芯2E流片后等待芯片回來的時(shí)間我?guī)е糠铸埿菊n題組的骨干在香山別墅討論龍芯3號(hào)的結(jié)構(gòu)方案,。香山別墅和香山飯店一樣在香山公園內(nèi),,但比香山飯店便宜而且清靜。香山別墅三天討論的成果是基本明確了龍芯3號(hào)系列CPU的可伸縮互連結(jié)構(gòu)以及基于目錄的Cache一致性協(xié)議,。龍芯3號(hào)的互連結(jié)構(gòu)中,,每個(gè)結(jié)點(diǎn)四個(gè)處理器核通過交叉開關(guān)進(jìn)行全相連,結(jié)點(diǎn)間(不論片上還是片間)通過可伸縮的mesh網(wǎng)絡(luò)相連,;多核的Cache一致性采用基于目錄的一致性協(xié)議,,目錄設(shè)置在片上共享的最后一級(jí)Cache(LLC)上。上述結(jié)構(gòu)有別于當(dāng)時(shí)主流的環(huán)狀多核互連以及基于偵聽的Cache一致性協(xié)議?,F(xiàn)在看來,,該結(jié)構(gòu)是成功的,目前商用主流處理器隨著核數(shù)的增加也越來越多采用可伸縮的互連結(jié)構(gòu)以及基于目錄的Cache一致性協(xié)議,。
在香山別墅的討論中還明確了龍芯3號(hào)片內(nèi)集成內(nèi)存控制器以及HyperTransport(簡(jiǎn)稱HT)接口,。HT是AMD主推的系統(tǒng)總線接口。當(dāng)時(shí)計(jì)算所高性能中心與AMD合作緊密,,希望我們使用HT接口,。此外HT接口比較開放,,只要每年交5000美元就可以用于商業(yè)應(yīng)用,但AMD開放的HT接口不支持多片互連的Cache一致性協(xié)議,,我們自己進(jìn)行了擴(kuò)充,。曾經(jīng)有一段時(shí)間,我后悔選擇了HT總線,,覺得HT總線不如PCIE總線普及,,一是HT總線沒有現(xiàn)成的PHY(片內(nèi)高速接口模塊)可以買到,每次工藝升級(jí)都需要定制HT的PHY,,而PCIE的PHY有很多,;二是PCIE接口的外圍器件很多,而HT接口的橋片只有AMD有,。但現(xiàn)在覺得選用HT是對(duì)的,。HT是系統(tǒng)總線,協(xié)議簡(jiǎn)單高效,,相當(dāng)于Intel的QPI系統(tǒng)總線,,而PCIE是IO總線,通過HT總線可以方便地把多片龍芯3號(hào)直連起來形成多路服務(wù)器,。雖然每次工藝升級(jí)都要定制HT PHY,,但可以使龍芯CPU不依賴別人的IP,自主性強(qiáng),。龍芯3號(hào)所有CPU中,,沒有一款CPU需要到廠家merge第三方IP。尤其是龍芯3A2000和3A3000,,除了廠家提供的標(biāo)準(zhǔn)單元庫,、單/雙端口RAM以及低速IO單元,每一行代碼(包括CPU核,、內(nèi)存控制器,、HT控制器、互連網(wǎng)絡(luò)等)以及每一個(gè)定制模塊(包括多端口寄存器堆,、鎖相環(huán),、HT PHY,、DDR2/3 PHY等)都自主設(shè)計(jì),。至于外圍橋片,龍芯已經(jīng)開始研制并提供外圍橋片,,橋片上支持足夠多的PCIE接口,。以后不論AMD是否繼續(xù)發(fā)展HT接口,龍芯都能自成體系往前走了,。
香山別墅會(huì)議的另外一個(gè)成果是明確了龍芯抗輻照CPU的發(fā)展,。有一天晚上8點(diǎn)左右,,我們正在會(huì)議室熱烈地討論龍芯3號(hào)的結(jié)構(gòu),當(dāng)時(shí)在計(jì)算所科研處工作的夏洪流和傅信國(guó)給我打電話說是要來跟我談一個(gè)項(xiàng)目的事,。他們到香山別墅已是晚上9點(diǎn)多,,我們就坐在香山別墅的走廊盡頭談,他們說科學(xué)院有一個(gè)抗輻照CPU的預(yù)研項(xiàng)目,,希望龍芯課題組來承擔(dān),。我剛開始不愿意做,結(jié)果他們好說歹說地讓我勉強(qiáng)答應(yīng)了,,當(dāng)時(shí)的一個(gè)理由是領(lǐng)導(dǎo)每年對(duì)他們爭(zhēng)取的項(xiàng)目經(jīng)費(fèi)有要求,,我如果不做這個(gè)抗輻照CPU項(xiàng)目,他們的任務(wù)就完不成了,,我頭腦一熱就答應(yīng)了?,F(xiàn)在龍芯抗輻照CPU已經(jīng)隨著以北斗為代表的多顆衛(wèi)星在天空翱翔,每年還為龍芯公司帶來較可觀的收入,,成為龍芯公司的戰(zhàn)略產(chǎn)品并開始走向系列化,。真是非常感謝夏洪流和傅信國(guó)那天晚上的苦口婆心。
在龍芯3號(hào)結(jié)構(gòu)基本確定后就展開了龍芯3號(hào)CPU的研發(fā),。但當(dāng)時(shí)“十五”863課題結(jié)束了,,“十一五”“核高基”(即“核心電子器件、高端通用芯片和基礎(chǔ)軟件產(chǎn)品”重大專項(xiàng))課題遲遲啟動(dòng)不了,。為此,,科學(xué)院對(duì)龍芯3號(hào)的研制給了500萬元的前期經(jīng)費(fèi)支持(執(zhí)行期限2007年1月到2007年12月)??萍疾扛咝滤抉T記春司長(zhǎng)得知龍芯3號(hào)的第一款芯片龍芯3A1000已經(jīng)基本完成設(shè)計(jì),,但缺少流片費(fèi)時(shí),在863計(jì)劃內(nèi)緊急安排了2000萬的經(jīng)費(fèi)支持龍芯3號(hào)的研制(執(zhí)行期限2008年1月到2010年12月),。原計(jì)算所所長(zhǎng)李國(guó)杰院士曾經(jīng)在計(jì)算所中層干部會(huì)上當(dāng)眾點(diǎn)我的名說,,“胡偉武,你不能以任何經(jīng)費(fèi)的理由放緩龍芯3號(hào)的研制,,計(jì)算所就是砸鍋賣鐵也要支持龍芯的研發(fā)”,,并在所內(nèi)設(shè)立了一個(gè)經(jīng)費(fèi)沒有封頂?shù)恼n題,到2010年龍芯第一筆“核高基”課題經(jīng)費(fèi)到賬時(shí),,龍芯課題組已經(jīng)預(yù)支了計(jì)算所七,、八千萬元經(jīng)費(fèi)。
在龍芯3號(hào)研制過程中,,作為中法兩國(guó)在IT領(lǐng)域戰(zhàn)略合作的一部分,,科技部安排龍芯CPU在意法半導(dǎo)體流片。2006年10月26日,,在胡錦濤總書記和希拉克總統(tǒng)共同見證下,,中國(guó)科學(xué)院與意法半導(dǎo)體在人民大會(huì)堂簽署了關(guān)于龍芯CPU戰(zhàn)略合作的文件,。基于龍芯2E的成功,,意法半導(dǎo)體還花三百多萬美元授權(quán)費(fèi)購(gòu)買了龍芯2號(hào)系列產(chǎn)品的授權(quán),,其中龍芯的第一個(gè)產(chǎn)品芯片龍芯2F于2007年7月31日流片成功,目前仍在大量應(yīng)用中,。后來意法半導(dǎo)體由于自身業(yè)務(wù)的原因終止了購(gòu)買龍芯2號(hào)系列的產(chǎn)品授權(quán),,計(jì)算所收回了龍芯2號(hào)的產(chǎn)品權(quán)利并同意不再收取剩余的三分之一左右授權(quán)費(fèi),但我們從龍芯2F的研制中學(xué)會(huì)了意法半導(dǎo)體的芯片質(zhì)量管理,,學(xué)會(huì)如何把一個(gè)樣品變成產(chǎn)品,。龍芯CPU在意法半導(dǎo)體的流片一直延續(xù)了下來,龍芯3A1000即使用意法半導(dǎo)體的65nm工藝流片,。
不記得經(jīng)歷了多少加班加點(diǎn),,龍芯3A1000于2008年底交付流片。只記得流片前的幾個(gè)月每天晚上十點(diǎn)開例會(huì)安排工作,。晚上十點(diǎn)例會(huì)是非常高效的一種工作方法,,會(huì)后大家把有關(guān)設(shè)計(jì)在EDA服務(wù)器上跑起來再回家,第二天早上上班時(shí)剛好跑出結(jié)果來,;如果是早上上班后開始在EDA服務(wù)器上跑,,基本上大半天就在等待服務(wù)器運(yùn)行出結(jié)果中度過。在此后龍芯CPU問題的攻關(guān)中,,一直沿襲了晚上例會(huì)安排工作的方法,。
2009年5月20日龍芯3A1000晶圓生產(chǎn)下線,9月28日樣片回來,,成功啟動(dòng)操作系統(tǒng),,主頻800MHz-1GHz。這是龍芯CPU第一次啟動(dòng)多核操作系統(tǒng),,免不了調(diào)一通,。印象最深刻的是10月2日晚上熬了個(gè)通宵,一起的有王劍等人,,剛開始是挨個(gè)核跑單核操作系統(tǒng),,把每個(gè)核都跑一遍,再把多核操作系統(tǒng)搞穩(wěn)定,,一直到第二天早上才弄完,。
中國(guó)科學(xué)技術(shù)大學(xué)的陳國(guó)良院士曾經(jīng)在2007年用三百多顆龍芯2F搭建了峰值性能達(dá)到1TetaFLOPS的高性能計(jì)算機(jī)KD50。在龍芯3A1000出來以后又用80顆龍芯3A1000搭建了KD60高性能計(jì)算機(jī),。在KD60運(yùn)行LINPACK過程中,,總是出現(xiàn)偶發(fā)性錯(cuò)誤,。這個(gè)錯(cuò)誤如果單個(gè)芯片跑一個(gè)月也碰不上一次,,只有像KD60這樣80多片一起跑才會(huì)一天碰到一次,。有三個(gè)多月的時(shí)間,我們一直進(jìn)行各種嘗試,,試圖定位該錯(cuò)誤并明確其機(jī)理?,F(xiàn)在只記得2010年春節(jié)的大年三十晚上還在跟當(dāng)時(shí)負(fù)責(zé)軟件的高翔商量進(jìn)行各種嘗試,縮小搜索范圍,。一直到春節(jié)后才定位了這個(gè)錯(cuò)誤,,錯(cuò)誤的原因是當(dāng)訪問Cache失效,從內(nèi)存回填(Refill)數(shù)據(jù)時(shí),,同時(shí)回填一級(jí)和二級(jí)Cache,,通常為了提高性能,這是應(yīng)該的,。但在某種極端情況下出現(xiàn)了錯(cuò)誤,,即二級(jí)Cache的回填由于二級(jí)Cache忙需要等待,而處理器核得到一級(jí)Cache回填數(shù)據(jù)后繼續(xù)運(yùn)行,,該數(shù)據(jù)被修改后再?gòu)囊患?jí)Cache中替換出來寫回二級(jí)Cache,,替換回來的新數(shù)據(jù)寫到二級(jí)Cache后,從內(nèi)存回來的老數(shù)據(jù)再回填二級(jí)Cache把新數(shù)據(jù)沖掉了,,從而引起錯(cuò)誤,。這個(gè)問題以及其它的小問題導(dǎo)致龍芯3A1000進(jìn)行了第一次改版并于2010年5月中旬流片,10月底第一次改版流片成功,,然后開始了小批量生產(chǎn),。
龍芯3A1000在2012年又進(jìn)行了第二次改版。第二次改版主要是雙路直連時(shí)在特定訪問序列下導(dǎo)致兩片間的互連網(wǎng)絡(luò)死鎖,。大致機(jī)理是HT協(xié)議的虛通道只有三個(gè),,分別是POST、NONPOST,、RESPONSE,,而龍芯的片上網(wǎng)絡(luò)協(xié)議AXI有五個(gè)實(shí)通道,分別是讀請(qǐng)求,、寫請(qǐng)求,、寫數(shù)據(jù)、讀響應(yīng),、寫響應(yīng),。于是在通過HT傳輸Cache一致性協(xié)議時(shí),就將寫請(qǐng)求與寫數(shù)據(jù)合并一個(gè)通道,,讀響應(yīng)與寫響應(yīng)合并一個(gè)通道傳輸,。Cache一致性協(xié)議要求寫響應(yīng)不能被堵,而讀響應(yīng)通道發(fā)出的二級(jí)Cache給一級(jí)Cache的一致性請(qǐng)求有時(shí)會(huì)因?yàn)橐患?jí)Cache處理不過來而被堵住,,這時(shí)就會(huì)順帶堵死寫響應(yīng)通道,,導(dǎo)致死鎖,。當(dāng)時(shí)解決的辦法是在HT原有三個(gè)虛通道的基礎(chǔ)上增加了第四個(gè)虛通道并且允許寫命令與寫數(shù)據(jù)之間插入寫響應(yīng)包。3A1000的第二次改版還解決了HT互連時(shí)一個(gè)異步握手的問題,。3A1000的第二次改版于2012年2月下旬流片,,2012年8月中旬流片成功。至此龍芯3A1000就很穩(wěn)定了,至今還是龍芯銷售的一款重要芯片,,尤其是在工控領(lǐng)域,。
現(xiàn)在回頭看,龍芯3A1000的研制是成功的,。3A1000是我國(guó)第一個(gè)四核CPU芯片,。在3A1000的研制過程中,我們掌握了多核CPU的片內(nèi)互連及Cache一致性技術(shù),,以及片間多路互連技術(shù),。直到今日,龍芯仍然是唯一能支持多路服務(wù)器的自主CPU,。在最近國(guó)外CPU企業(yè)對(duì)中國(guó)企業(yè)的CPU技術(shù)授權(quán)中,,支持多路服務(wù)器的技術(shù)受美國(guó)政府限制還是不能給中國(guó)的。龍芯3A1000的處理器核沿襲了龍芯2E和龍芯2F的處理器核結(jié)構(gòu),,雖然在MIPS64兼容性方面有較大改進(jìn),,性能只進(jìn)行了局部?jī)?yōu)化。龍芯3A1000處理器核的性能略高于Pentium III的水平,,在2006年龍芯2E剛出來時(shí)這個(gè)性能還說得過去,。龍芯3A1000仍沿用該處理器核有點(diǎn)慢了,但在應(yīng)用比較固定的很多領(lǐng)域還能用,,按理說龍芯的下一款CPU應(yīng)該致力于處理器核的性能優(yōu)化,,大幅度提高通用處理性能,但在學(xué)院派的思想主導(dǎo)下,,隨后的龍芯3B走了彎路,,使龍芯遭受了挫折。
龍芯3B的研發(fā)得到“核高基”重大專項(xiàng)的支持,,是在龍芯團(tuán)隊(duì)轉(zhuǎn)型成立公司(龍芯中科技術(shù)有限公司)以及有關(guān)部門大力展開自主基礎(chǔ)軟硬件應(yīng)用試點(diǎn)的背景下展開研制的,。2010年把龍芯課題組轉(zhuǎn)型成立公司是下了很大決心的,當(dāng)時(shí)已認(rèn)識(shí)到不能腳踩兩只船,,辦企業(yè)和做研究不一樣,,即使嘔心瀝血,也是九死一生,,因此一定要專心,,要求絕大多數(shù)技術(shù)骨干都從計(jì)算所辭職。像張戈25歲就已經(jīng)是副高職稱,是學(xué)術(shù)上很有前途的苗子,,也毅然從計(jì)算所辭職,。下這么大決心,與我當(dāng)時(shí)擔(dān)任全國(guó)人大代表,,對(duì)中央以企業(yè)作為創(chuàng)新主體,,科技創(chuàng)新要為經(jīng)濟(jì)社會(huì)發(fā)展服務(wù)的精神非常了解有很大關(guān)系,。尤其是在“十七大”報(bào)告中,,傳統(tǒng)的“科教文衛(wèi)”不再單獨(dú)作為一個(gè)板塊,科技創(chuàng)新直接在經(jīng)濟(jì)發(fā)展的第一部分來描述,,對(duì)我觸動(dòng)很大,。龍芯公司的成立得到很多領(lǐng)導(dǎo)專家的支持。除了李國(guó)杰所長(zhǎng)的大力支持外,,路甬祥院長(zhǎng)專門批示,,要求科學(xué)院有關(guān)部門落實(shí)龍芯團(tuán)隊(duì)的股權(quán)激勵(lì)。原國(guó)家外專局局長(zhǎng)馬俊如從2006年起就曾多次對(duì)我說,,龍芯在科學(xué)院里面已經(jīng)做得很好了,,不能再好了,要想更好,,就必須下海辦企業(yè),;在成立企業(yè)后馬局長(zhǎng)又給了我很多指導(dǎo)。工信部的電子司司長(zhǎng)丁文武也給了我很多鼓勵(lì),。
龍芯3B的研發(fā)工作在2008年底龍芯3A交付流片后開始全面展開,。首款龍芯3B1000繼續(xù)基于65nm工藝,目標(biāo)主頻800MHz-1GHz,,八核結(jié)構(gòu),,每個(gè)核包含兩個(gè)256位向量部件,峰值浮點(diǎn)性能達(dá)到128GFLOPS,,這在當(dāng)時(shí)處于世界領(lǐng)先行列,。龍芯3B1000于2010年6月20日左右流片,2010年11月底回來第一批芯片,。但第一批芯片回來測(cè)試并不順利,,連操作系統(tǒng)都啟動(dòng)不了。很快就找到了原因:由于芯片可測(cè)性設(shè)計(jì)部分的邏輯設(shè)計(jì)錯(cuò)誤,,在功能模式下誤把內(nèi)存引腳置為測(cè)試狀態(tài),,導(dǎo)致芯片訪問不了內(nèi)存,通過FIB(用離子束改變硅片上的連線)修復(fù)后功能正常,。
這是一個(gè)重大的打擊,,龍芯歷史上從來沒有犯過這樣簡(jiǎn)單的錯(cuò)誤,而且在同一時(shí)期流片的龍芯1A、龍芯2I等芯片也出現(xiàn)了由于簡(jiǎn)單工作失誤引起的錯(cuò)誤,。究其原因,,是龍芯團(tuán)隊(duì)在2010年初從課題組管理機(jī)制轉(zhuǎn)向公司管理機(jī)制的過程中,原來“作坊式”的設(shè)計(jì)流程被打破了,,“工業(yè)化”的設(shè)計(jì)流程沒有建立起來,。在課題組階段,我作為課題組長(zhǎng),,每顆芯片從結(jié)構(gòu)設(shè)計(jì),、邏輯設(shè)計(jì)、功能驗(yàn)證,、可測(cè)性設(shè)計(jì),、定制設(shè)計(jì)、物理設(shè)計(jì)各個(gè)環(huán)節(jié)從頭盯到尾,,及時(shí)協(xié)調(diào)各組的配合,,關(guān)注每一個(gè)細(xì)節(jié),因此沒有出現(xiàn)管理上的錯(cuò)誤,。而在3B1000的研制過程中,,龍芯課題組轉(zhuǎn)型成立了龍芯公司,我的主要精力轉(zhuǎn)向公司,,芯片研發(fā)的總協(xié)調(diào)人缺位,,導(dǎo)致頻頻失誤。痛定思痛,,從此我著手芯片研制的質(zhì)量體系建設(shè),,建立了“五步法”(立項(xiàng)、方案,、簽核,、測(cè)試、結(jié)項(xiàng))研制過程,,并詳細(xì)規(guī)定了每個(gè)階段的研發(fā)和審核內(nèi)容,。在此后龍芯公司進(jìn)行的幾十次流片中,沒有出現(xiàn)過嚴(yán)重的質(zhì)量問題,,而且比我作為課題組長(zhǎng)天天盯著效率高很多,。
龍芯3B1000首款流片不成功促使我們馬上進(jìn)行改版,好在只要改一層金屬,,時(shí)間和費(fèi)用上都比較省,。3B1000的第一次改版2011年2月初流片,7月初回來,,調(diào)試比較順利,。但在壓力測(cè)試時(shí)又出現(xiàn)死機(jī)現(xiàn)象,,經(jīng)過幾個(gè)月的攻關(guān)發(fā)現(xiàn)又是死鎖問題。大致機(jī)理是一個(gè)處理器核訪問其它結(jié)點(diǎn)的內(nèi)存時(shí),,寫地址和寫數(shù)據(jù)是分開發(fā)出的,,結(jié)果在另外一個(gè)結(jié)點(diǎn)的處理器核也過來訪問內(nèi)存,而且同時(shí)有幾十個(gè)這樣的互相訪問時(shí),,寫地址過去了但寫數(shù)據(jù)互相堵住,,導(dǎo)致死鎖。避免死鎖的辦法是要求寫地址和寫數(shù)據(jù)保持原子性,,即必須一起發(fā)出和傳輸,。為此龍芯3B1000進(jìn)行了第二次改版,于2011年12月初流片,,2012年4月底回來,。從此達(dá)到穩(wěn)定狀態(tài),。
在掌握65nm工藝的基礎(chǔ)上,,我們于2009年11月開始評(píng)估32/28nm工藝,并準(zhǔn)備把它作為龍芯CPU的下一個(gè)工藝結(jié)點(diǎn),。2010年12月選定意法半導(dǎo)體與三星合作的32nm工藝并開始八核3B1500的設(shè)計(jì),。3B1500基于3B1000的設(shè)計(jì),主要通過工藝升級(jí)提高性能,,同時(shí)做了局部的性能優(yōu)化,,尤其是在處理器核中增加了私有二級(jí)Cache。2012年1月中旬完成3B1500的設(shè)計(jì)并交付流片,。2012年8月底拿到樣片,,初步測(cè)試正常,頻率從3B1000的900MHz提高到1.25GHz(最高可達(dá)1.5GHz),。在經(jīng)過測(cè)試后對(duì)該芯片進(jìn)行了萬片規(guī)模的小批量生產(chǎn),。在應(yīng)用驗(yàn)證過程中,出現(xiàn)了在很大的應(yīng)用壓力下個(gè)別芯片不穩(wěn)定現(xiàn)象,。剛開始覺得是個(gè)體問題,,后來出現(xiàn)的次數(shù)多了,開始于2013年1月31日組織人員攻關(guān)定位問題,,查找機(jī)理,。也是每天晚上召開例會(huì)討論,安排各種嘗試,,在這個(gè)過程中發(fā)現(xiàn)了幾個(gè)軟硬件磨合的問題并通過軟件調(diào)整后,,出問題的概率小了很多,但問題如幽靈般還在,。直到2013年4月12日,,才抓到了該問題,。這個(gè)問題是從3B1000到3B1500改版過程中引進(jìn)的,為了提高性能,,處理器核收到多個(gè)維護(hù)Cache一致性的無效請(qǐng)求時(shí),,原來每?jī)膳牟拍芴幚硪粋€(gè),改成可以連續(xù)處理,,導(dǎo)致清除LL/SC同步指令的同步位llbit時(shí)錯(cuò)了一拍,,誤把IO DMA引起的Cache無效請(qǐng)求當(dāng)作0號(hào)處理器核的Cache無效請(qǐng)求(IO DMA的編號(hào)剛好為0,與0號(hào)處理器核區(qū)分不開),,通過軟件調(diào)整可以規(guī)避此問題,。經(jīng)過批量測(cè)試,原不穩(wěn)定現(xiàn)象消失,。
為了從根本上消除該問題和其它一些小問題,,我們對(duì)3B1500進(jìn)行改版。改版時(shí)根據(jù)生產(chǎn)廠家的建議,,工藝從32nm遷移到28nm,,于2013年4月底流片,10月底收到樣片,,功能正常,,但成品率極低,與廠家確認(rèn)后明確是廠家生產(chǎn)問題,。廠家又建議我們恢復(fù)到32nm工藝流片,,并以某種方式補(bǔ)償此次流片費(fèi)用,于是又再次改版,,于2015年1月底流片,,2015年6月下旬收到樣片,測(cè)試后功能正常,,而且成品率正常,,目前已經(jīng)量產(chǎn)。
龍芯3B的研制過程真是一波三折,。出現(xiàn)過龍芯從課題組向公司轉(zhuǎn)型過程中的管理問題,,生產(chǎn)廠家引起的問題,多核互相訪問引起的死鎖問題,,處理器核Cache一致性引起的問題,。在解決了一個(gè)個(gè)問題后總算取得了成功。
但龍芯3B的主要問題不在研制過程中,,而是剛開始定方向就出了很大偏差,。主要問題在于雖然龍芯團(tuán)隊(duì)從課題組轉(zhuǎn)型成為了公司,但龍芯3B的研發(fā)還保持著學(xué)院派導(dǎo)向,,過度追求多核以及浮點(diǎn)峰值性能的單一指標(biāo),,通用處理性能不足,,滿足不了在“十一五”期間展開的自主CPU應(yīng)用和試點(diǎn)對(duì)性能的要求。