五位本科生4個(gè)月造出芯片畢業(yè)!
2020-08-27 14:55:58 來(lái)源:共青團(tuán)中央
1
聽(tīng)新聞

“如何評(píng)價(jià)中國(guó)科學(xué)院大學(xué)(以下簡(jiǎn)稱國(guó)科大)‘一生一芯’計(jì)劃?”

在某問(wèn)答網(wǎng)站上,這個(gè)問(wèn)題獲得了超千萬(wàn)的關(guān)注熱度。

五位本科生,主導(dǎo)完成了一款64位RISC-V處理器SoC芯片設(shè)計(jì)并實(shí)現(xiàn)流片。這款芯片,被稱作他們的 “最硬核畢業(yè)證書(shū)”。

和芯片有關(guān)的新聞,總能牽動(dòng)國(guó)人的心。

而當(dāng)主角成為幾個(gè)“帶芯畢業(yè)”二十出頭的年輕人,就更加引人好奇。

網(wǎng)上的聲音多種多樣,有人鼓掌,有人唱衰,有人將它和中國(guó)芯片產(chǎn)業(yè)聯(lián)系起來(lái),寫(xiě)了洋洋灑灑長(zhǎng)篇分析。

如今,五位學(xué)生已經(jīng)開(kāi)始了新的工作。他們正在深圳,參與新的更高性能芯片的設(shè)計(jì)。

8月中旬,他們還多了個(gè)新身份——第二期“一生一芯”計(jì)劃的助教。

本科生做芯片,天方夜譚嗎?

芯片是今年五月底快遞到王華強(qiáng)家的。

它大概一元硬幣大小,上面刻著 “COOSCA-01”和“一生一芯”的字樣,還有國(guó)科大的Logo。

COOSCA是一個(gè)內(nèi)部代號(hào),是國(guó)科大計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院的三門(mén)課程——計(jì)算機(jī)組成原理、操作系統(tǒng)和計(jì)算機(jī)架構(gòu)的縮寫(xiě)。“一生一芯”則是計(jì)劃的名字,意思是讓每位本科生帶著自己設(shè)計(jì)的處理器芯片畢業(yè)。

受新冠肺炎疫情影響,今年國(guó)科大的本科畢業(yè)答辯在線上進(jìn)行。

學(xué)生王華強(qiáng)代表“一生一芯”團(tuán)隊(duì),向答辯委員會(huì)的老師遠(yuǎn)程展示了芯片。

他把芯片裝上測(cè)試板,用串口線將測(cè)試板與電腦連接,打開(kāi)電腦上的終端軟件,按下測(cè)試板上的復(fù)位鍵,運(yùn)行了幾個(gè)簡(jiǎn)單的程序——Linux系統(tǒng)跑起來(lái)了。

王華強(qiáng)在遠(yuǎn)程畢業(yè)答辯時(shí)展示芯片運(yùn)行過(guò)程。

然而,去年夏天,“一生一芯”計(jì)劃參與者張紫飛第一次聽(tīng)到該計(jì)劃時(shí)的第一反應(yīng)卻是“天方夜譚”吧。

讓幾個(gè)本科生用幾個(gè)月時(shí)間,設(shè)計(jì)出一枚能夠運(yùn)行Linux這樣復(fù)雜操作系統(tǒng)的芯片,可能嗎?

“一生一芯”計(jì)劃負(fù)責(zé)人、國(guó)科大計(jì)算機(jī)學(xué)院教授、中國(guó)科學(xué)院計(jì)算技術(shù)研究所先進(jìn)計(jì)算機(jī)系統(tǒng)研究中心主任包云崗則覺(jué)得,在開(kāi)源時(shí)代,將芯片設(shè)計(jì)的門(mén)檻降下來(lái),是可能的。

包云崗對(duì)2008年至2017年計(jì)算機(jī)體系結(jié)構(gòu)國(guó)際頂級(jí)會(huì)議論文第一作者做過(guò)分析,只有4%來(lái)自中國(guó)的高校和科研院所。

中國(guó)的處理器芯片設(shè)計(jì)界,缺人。

開(kāi)放指令集RISC-V與芯片敏捷開(kāi)發(fā)語(yǔ)言Chisel,能使開(kāi)發(fā)效率數(shù)量級(jí)提升。

RISC-V,正是包云崗近幾年的研究重心。這一指令集可以自由地用于任何目的,允許任何人設(shè)計(jì)、制造和銷售RISC-V芯片和軟件。

2018年時(shí),包云崗就隱約意識(shí)到,RISC-V對(duì)人才培養(yǎng)會(huì)有幫助。2019年5月,華為被美國(guó)商務(wù)部列入實(shí)體名單,人才危局必須盡快找到出路。包云崗迅速將他模糊的想法細(xì)化:讓學(xué)生學(xué)習(xí)并實(shí)踐芯片敏捷設(shè)計(jì)方法,通過(guò)大學(xué)流片計(jì)劃完成芯片制造。

2019年8月,“一生一芯”計(jì)劃正式啟動(dòng)。這是一次教學(xué)實(shí)踐。

國(guó)科大校領(lǐng)導(dǎo)認(rèn)為,它會(huì)掀起本科教學(xué)改革的新篇章。

五位參與的學(xué)生是金越、王華強(qiáng)、王凱帆、張林雋和張紫飛。

他們都是國(guó)科大計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院2016級(jí)本科生,那時(shí)也都已通過(guò)了中國(guó)科學(xué)院計(jì)算技術(shù)研究所的保研夏令營(yíng),成為首批吃螃蟹的人。

踩坑、挖坑,再?gòu)目永锱莱鰜?lái)

其實(shí),在他們面前的,是一條未有人走過(guò)的路。

沒(méi)有導(dǎo)航,他們需要自己打怪升級(jí),自己試錯(cuò)嘗試。

當(dāng)然,他們也并非是在白紙上作畫(huà)。

教師團(tuán)隊(duì)已經(jīng)制定了總體方案,確定了技術(shù)路線,選擇好了基礎(chǔ)平臺(tái),搭建了開(kāi)發(fā)環(huán)境,也選定了流片工藝和班車。

五位學(xué)生真正動(dòng)手之前,一支實(shí)力強(qiáng)大的教師團(tuán)隊(duì),為學(xué)生的乘風(fēng)破浪,做好了保駕護(hù)航的準(zhǔn)備。

做芯片,其實(shí)分為前端和后端。前端主要是做設(shè)計(jì),用數(shù)字電路的方式實(shí)現(xiàn)處理器的功能;后端則是用物理元件來(lái)實(shí)現(xiàn)這些設(shè)計(jì)。

“要說(shuō)芯片都是我們做的,并不準(zhǔn)確。其實(shí)我們只是做了前端的邏輯設(shè)計(jì)部分。”王凱帆強(qiáng)調(diào)。

他嘗試用最通俗的語(yǔ)言向科技日?qǐng)?bào)記者解釋設(shè)計(jì)芯片是怎么一回事——類似于畫(huà)一張大樓的施工圖紙。只不過(guò),呈現(xiàn)這張圖紙,用的不是線條,而是一種叫做Chisel的硬件語(yǔ)言。

此前,包云崗團(tuán)隊(duì)中的博士生余子濠為南京大學(xué)開(kāi)發(fā)了一款教學(xué)用RISC-V處理器,“一生一芯”計(jì)劃的學(xué)生要在此基礎(chǔ)上進(jìn)行改進(jìn),把師兄搭建的房子,改建得更舒服、更亮堂。

包云崗說(shuō),在實(shí)際產(chǎn)品研發(fā)和科研工作中,也往往不是從頭開(kāi)始,更多是在已有基礎(chǔ)上,增加新功能,提高性能。“這培養(yǎng)的是學(xué)生‘理解—消化—創(chuàng)新’的能力。”

大家采用了當(dāng)下流行的“敏捷開(kāi)發(fā)”模式:每人負(fù)責(zé)一個(gè)或幾個(gè)模塊,齊頭并進(jìn),多線推進(jìn),然后合龍。

芯片設(shè)計(jì)開(kāi)發(fā)歷程。圖源:包云崗知乎問(wèn)答

“一生一芯”計(jì)劃的目標(biāo)很明確:在芯片上運(yùn)行Linux系統(tǒng),支持基本的輸入輸出設(shè)備。

先解決“能不能”“對(duì)不對(duì)”的問(wèn)題,再來(lái)看“快不快”“好不好”。

對(duì)新手施工設(shè)計(jì)團(tuán)隊(duì)來(lái)說(shuō),他們蓋的第一棟房子,要保證的是屹立不倒。

從2019年8月正式動(dòng)手設(shè)計(jì),到12月中旬交付設(shè)計(jì)圖紙,五人組踩過(guò)坑,給別人挖過(guò)坑,也掙扎著從坑里爬出來(lái)過(guò)。

他們?cè)疽购筒恢阍谀睦锏腻e(cuò)誤死磕,還要對(duì)抗可能拖延隊(duì)友進(jìn)度的焦慮。

團(tuán)隊(duì)成員金越負(fù)責(zé)的是片上系統(tǒng)。

除了中央處理器,在系統(tǒng)內(nèi)還有五個(gè)控制器來(lái)實(shí)現(xiàn)具體功能。

這些控制器的代碼是由開(kāi)源社區(qū)提供的,但團(tuán)隊(duì)并不清楚這些控制器是否適合他們?cè)O(shè)計(jì)的這款芯片。

金越需要編寫(xiě)驅(qū)動(dòng)軟件,測(cè)試外設(shè)控制器是否設(shè)置正確,能否正常工作。

“要是出現(xiàn)問(wèn)題就很麻煩了。到底是我的軟件寫(xiě)錯(cuò)了,還是外設(shè)控制器本身有問(wèn)題?如果是外設(shè)控制器有問(wèn)題,到底是哪個(gè)有問(wèn)題?”

變量太多,排列組合下來(lái),測(cè)試復(fù)雜得讓人頭疼。

“做驗(yàn)證的那幾天,幾乎沒(méi)怎么睡過(guò)覺(jué)。”金越半夜對(duì)著電腦,查手冊(cè),查代碼,查波形,懷著點(diǎn)“我就不信邪”的不忿:“我一定要把這個(gè)東西弄出來(lái)。”

尋找問(wèn)題究竟出在哪,是幾乎每個(gè)計(jì)劃參與者都會(huì)提到的“痛苦”經(jīng)歷,常常是 “按下葫蘆起了瓢”。

作為團(tuán)隊(duì)唯一的女將,張林雋負(fù)責(zé)的部分是預(yù)取器。

你進(jìn)入了一間圖書(shū)館,想找到一本書(shū)。靠你最近的書(shū)架,能放的書(shū)最少;而更深處的書(shū)架,放的書(shū)更多,但你走過(guò)去的耗時(shí)也長(zhǎng)。預(yù)取器好比那位了解你喜好的圖書(shū)管理員,他提前將他認(rèn)為你會(huì)拿的書(shū)放在離你最近的書(shū)架,節(jié)省你的查找時(shí)間。

“在實(shí)現(xiàn)這個(gè)功能的時(shí)候,我想當(dāng)然地認(rèn)為,預(yù)取器應(yīng)該放在L1 Cache也就是一級(jí)緩存內(nèi)。”

一級(jí)緩存,相當(dāng)于那個(gè)離你更近的但是容量更少的書(shū)架。但奇怪的是,加入預(yù)取器后,芯片的性能反而受到了影響,芯片的信息處理速度變慢了。

她花了一個(gè)月的時(shí)間來(lái)找問(wèn)題,一個(gè)一個(gè)排查、修改和調(diào)試。后來(lái),張林雋被提醒說(shuō),可能是預(yù)取器放置的位置不對(duì)。“哎,很崩潰,之前寫(xiě)的東西就沒(méi)用了,又要重來(lái)。”將預(yù)取器挪到二級(jí)緩存后,困擾她一個(gè)月的問(wèn)題終于消失了。

在真正動(dòng)手之前,沒(méi)人想過(guò),問(wèn)題竟然會(huì)在這等著他們。

“我們只是知道了從山底到半山腰的路怎么走”

2019年12月,這款芯片的設(shè)計(jì)版圖正式提交,基于中芯國(guó)際110nm工藝完成投片。

平時(shí)上課或者比賽,學(xué)生也需要從零開(kāi)始完成一次芯片設(shè)計(jì)。但在課堂實(shí)踐中,并不需要測(cè)試得太完備,只要設(shè)計(jì)出的芯片能通過(guò)老師給的幾個(gè)測(cè)試點(diǎn),就算成功。在“一生一芯”計(jì)劃中,沒(méi)有這些被預(yù)先設(shè)計(jì)好的“測(cè)試點(diǎn)”。你必須考慮全面,細(xì)心謹(jǐn)慎。

無(wú)可否認(rèn)的是,壓力更大。

此前的芯片設(shè)計(jì),更像是“紙上談兵”,成功了固然好,失敗了好像也無(wú)所謂。但是這次,投入真金白銀去流片,能不能用,幾個(gè)月的努力會(huì)不會(huì)打水漂,流片后就能見(jiàn)分曉。

這是第一期“一生一芯”計(jì)劃,大家都希望能開(kāi)個(gè)好頭。等待的日子,他們忐忑又興奮。

2020年4月23日,學(xué)生們從微信群里得知,他們親手設(shè)計(jì)的處理器芯片返回了。

但這并不是終點(diǎn),還需要進(jìn)行測(cè)試驗(yàn)證。

“從底層PCB版圖、內(nèi)存顆粒到中間處理器設(shè)計(jì)、再到上層操作系統(tǒng)、應(yīng)用軟件,每個(gè)層次都可能出問(wèn)題。哪怕一個(gè)小問(wèn)題,都會(huì)造成芯片無(wú)法正常工作。”包云崗說(shuō)。

這段測(cè)試經(jīng)歷,同樣也是一波三折,甚至有點(diǎn)戲劇性。

芯片回來(lái)后,團(tuán)隊(duì)里的老師們上手測(cè)試了幾顆,結(jié)果芯片真的就是塊“磚”,沒(méi)有任何輸出。一陣忙亂后他們才發(fā)現(xiàn),原來(lái)是主板上的一根電源線接錯(cuò)了,芯片“出師未捷身先死”,被燒壞了。

后來(lái),又因?yàn)橐粋€(gè)串口時(shí)鐘頻率設(shè)置問(wèn)題,芯片性能始終不正常。折騰了一段時(shí)間,芯片才被調(diào)整到最佳狀態(tài)。

6月2日,在畢業(yè)答辯現(xiàn)場(chǎng),王華強(qiáng)展示了芯片的工作流程。

后來(lái),王凱帆還將國(guó)科大操作系統(tǒng)課程上同學(xué)們自己編寫(xiě)的UCAS-Core移植到了COOSCA核上,用自己寫(xiě)的CPU,運(yùn)行了自己寫(xiě)的操作系統(tǒng)。

到深圳后,張紫飛才第一次看到自己設(shè)計(jì)的芯片。

“第一次看到時(shí)就覺(jué)得,這芯片比我們想象得小啊,好像還有點(diǎn)簡(jiǎn)陋。”張紫飛開(kāi)玩笑道,“但是母不嫌兒丑嘛。”

國(guó)科大的學(xué)生將自己的母校簡(jiǎn)稱為“果殼”,所以,果殼(nutshell)也就成了“一生一芯”計(jì)劃首款芯片的正式名字。

王華強(qiáng)在今年7月RISC-V年中技術(shù)研討會(huì)上介紹了果殼的設(shè)計(jì)細(xì)節(jié)和開(kāi)發(fā)過(guò)程中的經(jīng)驗(yàn)體會(huì)。

9月3日,王華強(qiáng)將代表團(tuán)隊(duì)向全球同行介紹“果殼”的設(shè)計(jì),這也將是“果殼”首次在國(guó)際舞臺(tái)上亮相。

“國(guó)科大學(xué)生硬核畢業(yè)證書(shū)”一度成為網(wǎng)上的熱議話題,但被當(dāng)成“大神”膜拜的幾位學(xué)生,無(wú)意將這一項(xiàng)目做過(guò)多拔高。

金越打了個(gè)比方:“現(xiàn)在,我們只是知道了從山底到半山腰的路有多難走,還不知道從半山腰到山頂?shù)穆酚卸嚯y走。”

也正是因?yàn)榕蔬^(guò)山、爬過(guò)坡,學(xué)生們知道自己都是新兵,經(jīng)驗(yàn)和能力上都有欠缺,還需鍛煉。

“一生一芯”計(jì)劃負(fù)責(zé)人、中科院計(jì)算所研究員包云崗在講解芯片。

他們的平均年齡,只有21.8歲。

包云崗說(shuō),等他們30歲時(shí),就可以說(shuō)已經(jīng)是處理器芯片和計(jì)算機(jī)系統(tǒng)設(shè)計(jì)領(lǐng)域的“老兵”了。無(wú)論他們是進(jìn)入業(yè)界還是學(xué)界,創(chuàng)造力會(huì)得到更大的發(fā)揮和展現(xiàn)。“我對(duì)這批年輕人的未來(lái)充滿期待。”

“一生一芯”計(jì)劃二期已經(jīng)啟動(dòng)。

據(jù)包云崗介紹,二期的學(xué)生增加到13位。除了國(guó)科大外,還有來(lái)自浙江大學(xué)、南京大學(xué)、西北工業(yè)大學(xué)、哈爾濱工業(yè)大學(xué)(深圳)和美國(guó)密歇根州立大學(xué)等五所高校的同學(xué)。

責(zé)編:

精彩推送


凌云县| 铜陵市| 民权县| 无为县| 杭锦旗| 集安市| 亚东县| 甘孜| 巴林左旗| 新化县| 平陆县| 日照市| 阿坝| 克什克腾旗| 绵阳市| 宝应县| 开阳县| 公主岭市| 武胜县| 五原县| 藁城市| 蕲春县| 特克斯县| 利辛县| 五莲县| 团风县| 大埔县| 孟村| 永和县| 喀喇沁旗| 吉林省| 信丰县| 和平县| 衡东县| 三穗县| 静宁县| 沙雅县| 紫金县| 定远县| 南靖县| 灌南县|