負(fù)責(zé)人解釋:國(guó)科大“一生一芯”背后有哪些故事?
掃描二維碼
隨時(shí)隨地手機(jī)看文章
作者:包云崗
來(lái)源:中國(guó)科學(xué)院大學(xué)
知乎地址:https://www.zhihu.com/question/409298856/answer/1363569013
編 者 按
7月25日,中國(guó)科學(xué)院大學(xué)正式公布首期“一生一芯”計(jì)劃成果——5位本科畢業(yè)生主導(dǎo)完成一款64位RISC-V處理器SoC芯片設(shè)計(jì)并實(shí)現(xiàn)流片。
如何評(píng)價(jià)中國(guó)科學(xué)院大學(xué)“一生一芯”計(jì)劃?這一問(wèn)題在知乎引發(fā)熱議。27日,該計(jì)劃負(fù)責(zé)人、國(guó)科大計(jì)算機(jī)學(xué)院教授、中科院計(jì)算所先進(jìn)計(jì)算機(jī)系統(tǒng)研究中心主任包云崗現(xiàn)身知乎,詳細(xì)介紹了“一生一芯”背后的故事。
包云崗介紹說(shuō),這項(xiàng)計(jì)劃源于對(duì)“如何將教學(xué)和開(kāi)源芯片結(jié)合起來(lái)”這一問(wèn)題的思考,更啟發(fā)于中國(guó)通訊科技巨頭華為面臨的芯片困境。
包云崗曾與華為專家交流,了解到短期內(nèi)的需求華為自己基本能應(yīng)對(duì),而最需要的是處理器芯片設(shè)計(jì)人才。
在當(dāng)天的發(fā)布會(huì)上,團(tuán)隊(duì)也介紹了“一生一芯”計(jì)劃的愿景目標(biāo):在國(guó)科大實(shí)踐經(jīng)驗(yàn)的基礎(chǔ)上向全國(guó)輻射,力爭(zhēng)實(shí)現(xiàn)3年后在全國(guó)每年能培養(yǎng)500名學(xué)生,5年后實(shí)現(xiàn)每年培養(yǎng)1000名學(xué)生,10年達(dá)到每年培養(yǎng)1萬(wàn)名學(xué)生。
以下為包云崗在知乎的回答全文,科學(xué)網(wǎng)公號(hào)經(jīng)授權(quán)轉(zhuǎn)載。
2018年11月8日,烏鎮(zhèn),世界互聯(lián)網(wǎng)大會(huì),經(jīng)過(guò)9個(gè)月籌備工作,中國(guó)開(kāi)發(fā)指令生態(tài)(RISC-V)聯(lián)盟正式成立。晚上在烏鎮(zhèn)的一家餐館慶祝時(shí),坐在我邊上的一位老師問(wèn)了個(gè)問(wèn)題:“以后打算怎么做開(kāi)源芯片生態(tài)?”
其實(shí)這也是在2018年期間我經(jīng)常問(wèn)自己的一個(gè)問(wèn)題,我有一個(gè)很粗的想法——能不能讓學(xué)生參與到開(kāi)源芯片生態(tài)建設(shè)中——經(jīng)常會(huì)浮現(xiàn)出來(lái)。
聽(tīng)了那位老師的問(wèn)題,我在腦海中又浮現(xiàn)出這個(gè)想法,然后就在飯桌上一邊整理思路一邊介紹如何將教學(xué)和開(kāi)源芯片結(jié)合起來(lái)。這應(yīng)該是“一生一芯”計(jì)劃的最初萌芽。
那時(shí)還沒(méi)想到“一生一芯”這個(gè)名字,但已經(jīng)大致形成了這樣的目標(biāo)——讓本科生也能做處理器芯片,讓本科生能帶著自己設(shè)計(jì)的處理器芯片畢業(yè)。但聯(lián)盟成立后,這個(gè)想法并沒(méi)有實(shí)質(zhì)性推動(dòng)。
2019年5月16日華為被美國(guó)列入實(shí)體名單,全國(guó)震驚。各界都在想能為華為做些什么,我們也在思考。
但是,我們是做開(kāi)源芯片,華為暫時(shí)還用不上;我們采用的是開(kāi)放的RISC-V指令集,而華為的主力芯片都是基于ARM??雌饋?lái)我們是無(wú)法幫助華為解決燃眉之急了。
但和華為專家交流后,他們說(shuō)短期內(nèi)的需求華為自己基本能應(yīng)對(duì),他們更需要的是中長(zhǎng)期的先進(jìn)技術(shù),而最需要的是處理器芯片設(shè)計(jì)人才。
因?yàn)槿A為的芯片架構(gòu)設(shè)計(jì)團(tuán)隊(duì)很多在美國(guó)硅谷,由于美國(guó)的出口管制,雖然是華為的全資子公司,但其技術(shù)也不能輸入到華為總部。這導(dǎo)致華為在美國(guó)的芯片設(shè)計(jì)人才不能再發(fā)揮作用,但在國(guó)內(nèi)又招不到這樣的人才。這才是華為的心腹之患。
華為在國(guó)內(nèi)找不到處理器芯片設(shè)計(jì)人才的情況是在意料之中。
2017年,我曾安排組里的學(xué)生統(tǒng)計(jì)過(guò)2008~2017十年的體系結(jié)構(gòu)頂級(jí)會(huì)議ISCA論文第一作者的情況,最后統(tǒng)計(jì)數(shù)據(jù)發(fā)現(xiàn)這些優(yōu)秀人才 85%選擇在美國(guó)就業(yè),僅有 4%在中國(guó)就業(yè),差距巨大。這和國(guó)內(nèi)很多大學(xué)不開(kāi)展處理器芯片設(shè)計(jì)相關(guān)教學(xué)與研究密切相關(guān)。
事實(shí)上,類似的人才危機(jī)美國(guó)也曾經(jīng)歷過(guò),1982 年全美上千所大學(xué)中只有不到100 位教授和學(xué)生從事半導(dǎo)體相關(guān)的研究 。
為了應(yīng)對(duì)人才危機(jī),美國(guó)國(guó)防部高級(jí)研究計(jì)劃署 (DARPA) 在1981年啟動(dòng)MOSIS 項(xiàng)目,為大學(xué)提供流片服務(wù),通過(guò)MPW模式大幅降低芯片設(shè)計(jì)門(mén)檻。
30 余年來(lái)MOSIS為大學(xué)和研究機(jī)構(gòu)流了60000多款芯片,培養(yǎng)了數(shù)萬(wàn)名學(xué)生。
由此可見(jiàn),降低芯片設(shè)計(jì)門(mén)檻,讓學(xué)生能設(shè)計(jì)自己的芯片并流片,可大幅提高人才培養(yǎng)效率。這和我此前的構(gòu)想和目標(biāo)完全一致。我們不能再耽誤了,要加速人才培養(yǎng)計(jì)劃。
我自作主張地給這個(gè)計(jì)劃起了個(gè)名字:“一生一芯”。
初衷是希望有一天能讓每一個(gè)學(xué)生都能帶著自己設(shè)計(jì)的芯片畢業(yè),不管未來(lái)是不是真得能實(shí)現(xiàn),這至少聽(tīng)起來(lái)是一個(gè)美好的理想,而且還有一點(diǎn)爛漫——后來(lái)很多人聽(tīng)到這個(gè)名字,第一印象大多是“一輩子做一顆芯片”。還有女生有更浪漫地理解:“一生一心一意愛(ài)一人”。不管如何,看來(lái)大家對(duì)這個(gè)名字似乎還都不反感。
然后,我又聯(lián)系了幾位國(guó)科大本科生,詢問(wèn)他們?cè)覆辉敢鈪⒓舆@個(gè)“一生一芯”計(jì)劃當(dāng)小白鼠。出于意料地是,這些準(zhǔn)00后(98/99出生)都表示愿意挑戰(zhàn)一下,愿意當(dāng)小白鼠。
6月20日,我在開(kāi)源芯片工作組群向大家宣布:?jiǎn)?dòng)“一生一芯”計(jì)劃!這并不是研制產(chǎn)品級(jí)芯片,而是一次教學(xué)實(shí)踐。很快唐丹老師為未來(lái)的芯片起好了內(nèi)部代號(hào)“COOSCA”,三門(mén)課Computer Organization/Operating System/Computer Architecture的縮寫(xiě)。
隨后開(kāi)始組建教學(xué)團(tuán)隊(duì),隨著項(xiàng)目的進(jìn)行教學(xué)團(tuán)隊(duì)也在不斷擴(kuò)大:唐丹老師和工程師劉彤負(fù)責(zé)SoC架構(gòu)設(shè)計(jì)指導(dǎo),余子濠老師負(fù)責(zé)處理器核設(shè)計(jì)(其實(shí)子濠還是博士生,但因?yàn)樵趪?guó)內(nèi)計(jì)算機(jī)系統(tǒng)教學(xué)領(lǐng)域很有名,所以我們也半開(kāi)玩笑地叫他老師),張科老師負(fù)責(zé)項(xiàng)目協(xié)調(diào)、與國(guó)科大對(duì)接,并和常軼松老師、趙然老師一起在FPGA模擬仿真方面進(jìn)行指導(dǎo),解壁偉老師和李嶧工程師在后端物理設(shè)計(jì)上給予支持,深圳大學(xué)蔡曄老師則參與幫助設(shè)計(jì)PCB板卡,另外蔣德鈞老師和王卅老師是國(guó)科大本科操作系統(tǒng)任課老師,在操作系統(tǒng)方面給予支持,兩位博士生王誨喆與徐易難也擔(dān)任起助教的角色,幫助答疑解惑。而我自己,則更像是一個(gè)啦啦隊(duì)長(zhǎng),給大家打雞血。
教學(xué)團(tuán)隊(duì)開(kāi)始行動(dòng)起來(lái)了,大家討論制定總體方案,確定技術(shù)路線,選擇基礎(chǔ)平臺(tái),搭建開(kāi)發(fā)環(huán)境,選擇流片工藝和班車(chē)……參加首期“一生一芯”計(jì)劃的同學(xué)也最終確定,一共有五位,他們是金越、王華強(qiáng)、王凱帆、張林雋和張紫飛。
這五位同學(xué)通過(guò)了計(jì)算所暑期夏令營(yíng)面試,均被錄取為計(jì)算所研究生,其中金越導(dǎo)師是陳明宇研究員,王華強(qiáng)導(dǎo)師是蔣德鈞副研究員,王凱帆是孫凝暉院士,張林雋和張紫飛的導(dǎo)師則是我。但接下來(lái)的時(shí)間,他們將組成一個(gè)團(tuán)隊(duì),一起挑戰(zhàn)帶著自己設(shè)計(jì)的處理器芯片畢業(yè)這個(gè)任務(wù)。
8月20日,當(dāng)唐丹老師和解壁偉老師終于落實(shí)中芯國(guó)際110nm工藝的流片渠道后,“一生一芯”計(jì)劃一切準(zhǔn)備就緒。
8月27日,參加“一生一芯”計(jì)劃的首批五位同學(xué)和教學(xué)團(tuán)隊(duì)一起在我的辦公室開(kāi)了一次簡(jiǎn)單但意義重大的動(dòng)員大會(huì)。
“一生一芯”計(jì)劃正式啟動(dòng)!
項(xiàng)目分工
三、四個(gè)月高強(qiáng)度開(kāi)發(fā)
開(kāi)弓沒(méi)有回頭箭。唐丹老師確定了最合適的流片班車(chē)是12月17日,距離動(dòng)員大會(huì)不到4個(gè)月!這樣芯片能在4月份完成封裝,返回進(jìn)行測(cè)試。
如果一切順利,那就可以趕上五月底或六月初的國(guó)科大本科畢業(yè)答辯,到時(shí)可以在答辯現(xiàn)場(chǎng)展示芯片。但是如果錯(cuò)過(guò)這趟班車(chē),那就需要再等2個(gè)月趕下一趟班車(chē),這就意味著芯片不可能在畢業(yè)答辯時(shí)返回?!耙簧恍尽眻F(tuán)隊(duì)需要跟時(shí)間賽跑。
我們?cè)诖_定總體方案時(shí)有兩個(gè)決定:
一是用Chisel開(kāi)發(fā),此前我們實(shí)驗(yàn)室做過(guò)Chisel與Verilog在開(kāi)發(fā)效率和開(kāi)發(fā)質(zhì)量上的對(duì)比實(shí)驗(yàn),證明Chisel能數(shù)倍替身開(kāi)發(fā)速度,同時(shí)開(kāi)發(fā)質(zhì)量不比Verilog差,相關(guān)結(jié)果發(fā)表在論文《芯片敏捷開(kāi)發(fā)實(shí)踐:標(biāo)簽化RISC-V》。
二是以余子濠為南大開(kāi)發(fā)的一款教學(xué)RISC-V處理器核為基礎(chǔ)進(jìn)行改進(jìn),這主要是因?yàn)橛嘧渝┰陂_(kāi)發(fā)這款處理器的過(guò)程中構(gòu)建了豐富的工具,包括NEMU軟件模擬器、指令差分測(cè)試框架等,這些都有助于加速開(kāi)發(fā)。
而教學(xué)處理器功能還很基礎(chǔ),要能運(yùn)行Linux并且支持流片,需要新增大量新功能,包括RV64IM/RVC/RVA等指令擴(kuò)展、時(shí)鐘中斷、硬件填充的TLB、M/S/U特權(quán)級(jí)、缺頁(yè)異常、Cache預(yù)取、SDRAM控制器、外圍I/O設(shè)備……這是一種貼近實(shí)戰(zhàn)的開(kāi)發(fā)模式——實(shí)際的產(chǎn)品研發(fā)和科研工作中,往往不是總是從頭開(kāi)始,更多的是在已有的基礎(chǔ)上,增加新的功能,提高性能等等。這就需要培養(yǎng)學(xué)生“理解-消化-創(chuàng)新”的能力。
接下來(lái)是4個(gè)月高強(qiáng)度的開(kāi)發(fā),然而有些關(guān)鍵模塊的工作原理是課堂上沒(méi)有介紹過(guò)的,同學(xué)們還需要進(jìn)行一些探索性的嘗試,有時(shí)甚至需要將此前的設(shè)計(jì)推倒重來(lái),他們會(huì)因此感到焦慮或沮喪,這對(duì)他們的心態(tài)也是很大的考驗(yàn)。
教學(xué)團(tuán)隊(duì)不僅僅需要給予技術(shù)指導(dǎo),還需要對(duì)學(xué)生的心態(tài)進(jìn)行正確的引導(dǎo),告訴他們不確定性是探索過(guò)程中的客觀規(guī)律,然后引導(dǎo)他們?nèi)タ偨Y(jié)探索失敗的經(jīng)驗(yàn),去深刻地分析當(dāng)前方案不可行的原因,從而加深對(duì)問(wèn)題的理解,讓他們正確認(rèn)識(shí)到探索失敗的意義。
雖然任務(wù)極具挑戰(zhàn),但不斷有進(jìn)展。每取得一個(gè)小里程碑,大家都會(huì)記錄下那個(gè)時(shí)刻,精確到分鐘,因?yàn)橛X(jué)得未來(lái)有一天也許用得上。后來(lái),這些時(shí)刻真的用上了,就是宣傳視頻中的那條時(shí)間線。
這個(gè)過(guò)程中,國(guó)科大各方給了很大的支持,從校領(lǐng)導(dǎo)到本科部、計(jì)算機(jī)學(xué)院各級(jí)都很關(guān)心和重視;在中科院計(jì)算所,所長(zhǎng)孫凝暉院士、主管教學(xué)的陳熙霖副所長(zhǎng)、教育處李琳老師等都給予全方位的保障與支持。這也賦予了“一生一芯”團(tuán)隊(duì)某種使命感,更激發(fā)了大家的斗志。
12月19日,COOSCA 1.0芯片版圖凍結(jié)。當(dāng)唐丹老師告知版圖已經(jīng)正式提交,大家就如高考交卷,終于舒了一口氣,卻又懸起了一顆心。
四、疫情中的測(cè)試驗(yàn)證
等待芯片返回是一種既期盼又擔(dān)憂的感覺(jué)。這種感覺(jué)又進(jìn)一步被突如其來(lái)的疫情放大了。
當(dāng)1月23日宣布武漢封城后疫情不斷發(fā)展,我們也越來(lái)越擔(dān)憂正在流片中的那顆COOSCA芯片還能不能按時(shí)回來(lái),還能不能趕上畢業(yè)答辯。出乎意外的是芯片基本按照預(yù)期時(shí)間返回了,在這里我們要對(duì)中芯國(guó)際和封測(cè)企業(yè)的員工們表達(dá)深深的敬意!
然而疫情還是對(duì)測(cè)試工作產(chǎn)生了影響,因?yàn)閷W(xué)生不能返校,無(wú)法到在現(xiàn)場(chǎng)調(diào)試與測(cè)試。余子濠、蔡曄和劉彤三位挺身而出,協(xié)助調(diào)試測(cè)試工作。測(cè)試驗(yàn)證工作其實(shí)也是非常具有挑戰(zhàn)性,因?yàn)閺牡讓覲CB版圖、內(nèi)存顆粒到中間處理器設(shè)計(jì)、到上層操作系統(tǒng)、應(yīng)用軟件,每個(gè)層次都可能出問(wèn)題。哪怕一個(gè)小問(wèn)題,都會(huì)造成芯片無(wú)法正常工作。
經(jīng)過(guò)大約1個(gè)月的調(diào)試測(cè)試,終于證明芯片一切正常,可以啟動(dòng)Linux操作系統(tǒng)。但也發(fā)現(xiàn)了芯片的I/O模塊存在bug,影響了SD卡的讀寫(xiě)。
測(cè)試驗(yàn)證也是充滿了戲劇性。一開(kāi)始調(diào)試時(shí)比較保守,將芯片降到了50MHz,沒(méi)想到系統(tǒng)出現(xiàn)了很多問(wèn)題。后來(lái)把芯片頻率從50MHz跳到了200MHz,結(jié)果原來(lái)很多問(wèn)題都消失了,能穩(wěn)定地運(yùn)行Linux。
又進(jìn)一步把頻率提高到了350MHz,啟動(dòng)Linux出現(xiàn)了問(wèn)題,但是可以穩(wěn)定地運(yùn)行RT-Thread。這個(gè)頻率和后端仿真基本一致。這也驗(yàn)證了用Chisel開(kāi)發(fā)和Verilog開(kāi)發(fā)對(duì)后端物理設(shè)計(jì)并沒(méi)有很大的影響。
五、畢業(yè)答辯演示
2020年6月2日,國(guó)科大本科生畢業(yè)設(shè)計(jì)答辯日。五位同學(xué)分別介紹了他們基于COOSCA處理器核的進(jìn)一步優(yōu)化工作:
-
王華強(qiáng):《基于RISC-V的亂序多發(fā)射處理器設(shè)計(jì)》 -
張紫飛:《基于RISC-V的向量處理單元設(shè)計(jì)》 -
張林雋:《開(kāi)源處理器分支預(yù)測(cè)器的設(shè)計(jì)與性能優(yōu)化》 -
金越:《基于敏捷開(kāi)發(fā)語(yǔ)言的開(kāi)源處理器非阻塞緩存的設(shè)計(jì)與實(shí)現(xiàn)》 -
王凱帆:《RISC-V平臺(tái)下的二進(jìn)制翻譯與優(yōu)化》
六、“果殼”公開(kāi)亮相
七、收獲與體會(huì)
-END-
推薦閱讀
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!