“如何評價中國科學院大學(以下簡稱國科大)‘一生一芯’計劃?”
在某問答網站上,這個問題獲得了超千萬的關注熱度。
五位本科生,主導完成了一款64位RISC-V處理器SoC晶片設計並實現流片。這款晶片,被稱作他們的 “最硬核畢業證書”。
和晶片有關的新聞,總能牽動國人的心。
而當主角成為幾個“帶芯畢業”二十出頭的年輕人,就更加引人好奇。
網上的聲音多種多樣,有人鼓掌,有人唱衰,有人將它和中國晶片產業聯絡起來,寫了洋洋灑灑長篇分析。
如今,五位學生已經開始了新的工作。他們正在深圳,參與新的更高效能晶片的設計。
8月中旬,他們還多了個新身份——第二期“一生一芯”計劃的助教。
本科生做晶片,天方夜譚嗎?
晶片是今年五月底快遞到王華強家的。
它大概一元硬幣大小,上面刻著 “COOSCA-01”和“一生一芯”的字樣,還有國科大的Logo。
COOSCA是一個內部代號,是國科大計算機科學與技術學院的三門課程——計算機組成原理、作業系統和計算機架構的縮寫。“一生一芯”則是計劃的名字,意思是讓每位本科生帶著自己設計的處理器晶片畢業。
受新冠肺炎疫情影響,今年國科大的本科畢業答辯在線上進行。
學生王華強代表“一生一芯”團隊,向答辯委員會的老師遠端展示了晶片。
他把晶片裝上測試板,用串列埠線將測試板與電腦連線,開啟電腦上的終端軟體,按下測試板上的復位鍵,運行了幾個簡單的程式——Linux系統跑起來了。
王華強在遠端畢業答辯時展示晶片執行過程。圖源:包雲崗知乎回答
然而,去年夏天,“一生一芯”計劃參與者張紫飛第一次聽到該計劃時的第一反應卻是“天方夜譚吧”。
讓幾個本科生用幾個月時間,設計出一枚能夠執行Linux這樣複雜作業系統的晶片,可能嗎?
“一生一芯”計劃負責人、國科大計算機學院教授、中國科學院計算技術研究所先進計算機系統研究中心主任包雲崗則覺得,在開源時代,將晶片設計的門檻降下來,是可能的。
包雲崗對2008年至2017年計算機體系結構國際頂級會議論文第一作者做過分析,只有4%來自中國的高校和科研院所。
中國的處理器晶片設計界,缺人。
開放指令集RISC-V與晶片敏捷開發語言Chisel,能使開發效率數量級提升。
RISC-V,正是包雲崗近幾年的研究重心。這一指令集可以自由地用於任何目的,允許任何人設計、製造和銷售RISC-V晶片和軟體。
2018年時,包雲崗就隱約意識到,RISC-V對人才培養會有幫助。2019年5月,華為被美國商務部列入實體名單,人才危局必須儘快找到出路。包雲崗迅速將他模糊的想法細化:讓學生學習並實踐晶片敏捷設計方法,透過大學流片計劃完成晶片製造。
2019年8月,“一生一芯”計劃正式啟動。這是一次教學實踐。
國科大校領導認為,它會掀起本科教學改革的新篇章。
五位參與的學生是金越、王華強、王凱帆、張林雋和張紫飛。
他們都是國科大計算機科學與技術學院2016級本科生,那時也都已通過了中國科學院計算技術研究所的保研夏令營,成為首批吃螃蟹的人。
踩坑、挖坑,再從坑裡爬出來
其實,在他們們面前的,是一條未有人走過的路。
沒有導航,他們需要自己打怪升級,自己試錯嘗試。
當然,他們也並非是在白紙上作畫。
教師團隊已經制定了總體方案,確定了技術路線,選擇好了基礎平臺,搭建了開發環境,也選定了流片工藝和班車。
五位學生真正動手之前,一支實力強大的教師團隊,為學生的乘風破浪,做好了保駕護航的準備。
做晶片,其實分為前端和後端。前端主要是做設計,用數位電路的方式實現處理器的功能;後端則是用物理元件來實現這些設計。
“要說晶片都是我們做的,並不準確。其實我們只是做了前端的邏輯設計部分。”王凱帆強調。
他嘗試用最通俗的語言向科技日報記者解釋設計晶片是怎麼一回事——類似於畫一張大樓的施工圖紙。只不過,呈現這張圖紙,用的不是線條,而是一種叫做Chisel的硬體語言。
此前,包雲崗團隊中的博士生餘子濠為南京大學開發了一款教學用RISC-V處理器,“一生一芯”計劃的學生要在此基礎上進行改進,把師兄搭建的房子,改建得更舒服、更亮堂。
包雲崗說,在實際產品研發和科研工作中,也往往不是從頭開始,更多是在已有基礎上,增加新功能,提高效能。“這培養的是學生‘理解—消化—創新’的能力。”
大家採用了當下流行的“敏捷開發”模式:每人負責一個或幾個模組,齊頭並進,多線推進,然後合龍。
晶片設計開發歷程。圖源:包雲崗知乎問答
“一生一芯”計劃的目標很明確:在晶片上執行Linux系統,支援基本的輸入輸出裝置。
先解決“能不能”“對不對”的問題,再來看“快不快”“好不好”。
對新手施工設計團隊來說,他們蓋的第一棟房子,要保證的是屹立不倒。
從2019年8月正式動手設計,到12月中旬交付設計圖紙,五人組踩過坑,給別人挖過坑,也掙扎著從坑裡爬出來過。
他們曾熬夜和不知躲在哪裡的錯誤死磕,還要對抗可能拖延隊友進度的焦慮。
團隊成員金越負責的是片上系統。
除了中央處理器,在系統內還有五個控制器來實現具體功能。
這些控制器的程式碼是由開源社群提供的,但團隊並不清楚這些控制器是否適合他們設計的這款晶片。
金越需要編寫驅動軟體,測試外設控制器是否設定正確,能否正常工作。
“要是出現問題就很麻煩了。到底是我的軟體寫錯了,還是外設控制器本身有問題?如果是外設控制器有問題,到底是哪個有問題?”
變數太多,排列組合下來,測試複雜得讓人頭疼。
“做驗證的那幾天,幾乎沒怎麼睡過覺。”金越半夜對著電腦,查手冊,查程式碼,查波形,懷著點“我就不信邪”的不忿:“我一定要把這個東西弄出來。”
尋找問題究竟出在哪,是幾乎每個計劃參與者都會提到的“痛苦”經歷,常常是 “按下葫蘆起了瓢”。
作為團隊唯一的女將,張林雋負責的部分是預取器。
你進入了一間圖書館,想找到一本書。靠你最近的書架,能放的書最少;而更深處的書架,放的書更多,但你走過去的耗時也長。預取器好比那位瞭解你喜好的圖書管理員,他提前將他認為你會拿的書放在離你最近的書架,節省你的查詢時間。
“在實現這個功能的時候,我想當然地認為,預取器應該放在L1 Cache也就是一級快取內。”
一級快取,相當於那個離你更近的但是容量更少的書架。但奇怪的是,加入預取器後,晶片的效能反而受到了影響,晶片的資訊處理速度變慢了。
她花了一個月的時間來找問題,一個一個排查、修改和除錯。後來,張林雋被提醒說,可能是預取器放置的位置不對。“哎,很崩潰,之前寫的東西就沒用了,又要重來。”將預取器挪到二級快取後,困擾她一個月的問題終於消失了。
在真正動手之前,沒人想過,問題竟然會在這等著他們。
“我們只是知道了從山底到半山腰的路怎麼走”
2019年12月,這款晶片的設計版圖正式提交,基於中芯國際110nm工藝完成投片。
平時上課或者比賽,學生也需要從零開始完成一次晶片設計。但在課堂實踐中,並不需要測試得太完備,只要設計出的晶片能透過老師給的幾個測試點,就算成功。在“一生一芯”計劃中,沒有這些被預先設計好的“測試點”。你必須考慮全面,細心謹慎。
無可否認的是,壓力更大。
此前的晶片設計,更像是“紙上談兵”,成功了固然好,失敗了好像也無所謂。但是這次,投入真金白銀去流片,能不能用,幾個月的努力會不會打水漂,流片後就能見分曉。
這是第一期“一生一芯”計劃,大家都希望能開個好頭。等待的日子,他們忐忑又興奮。
2020年4月23日,學生們從微信群裡得知,他們親手設計的處理器晶片返回了。
但這並不是終點,還需要進行測試驗證。
“從底層PCB版圖、記憶體顆粒到中間處理器設計、再到上層作業系統、應用軟體,每個層次都可能出問題。哪怕一個小問題,都會造成晶片無法正常工作。”包雲崗說。
這段測試經歷,同樣也是一波三折,甚至有點戲劇性。
晶片回來後,團隊裡的老師們上手測試了幾顆,結果晶片真的就是塊“磚”,沒有任何輸出。一陣忙亂後他們才發現,原來是主機板上的一根電源線接錯了,晶片“出師未捷身先死”,被燒壞了。
後來,又因為一個串列埠時鐘頻率設定問題,晶片效能始終不正常。折騰了一段時間,晶片才被調整到最佳狀態。
6月2日,在畢業答辯現場,王華強展示了晶片的工作流程。
後來,王凱帆還將國科大作業系統課程上同學們自己編寫的UCAS-Core移植到了COOSCA核上,用自己寫的CPU,運行了自己寫的作業系統。
到深圳後,張紫飛才第一次看到自己設計的晶片。
“第一次看到時就覺得,這晶片比我們想象得小啊,好像還有點簡陋。”張紫飛開玩笑道,“但是母不嫌兒醜嘛。”
國科大的學生將自己的母校簡稱為“果殼”,所以,果殼(nutshell)也就成了“一生一芯”計劃首款晶片的正式名字。
王華強在今年7月RISC-V年中技術研討會上介紹了果殼的設計細節和開發過程中的經驗體會。
9月3日,王華強將代表團隊向全球同行介紹“果殼”的設計,這也將是“果殼”首次在國際舞臺上亮相。
“國科大學生硬核畢業證書”一度成為網上的熱議話題,但被當成“大神”膜拜的幾位學生,無意將這一專案做過多拔高。
金越打了個比方:“現在,我們只是知道了從山底到半山腰的路有多難走,還不知道從半山腰到山頂的路有多難走。”
也正是因為攀過山、爬過坡,學生們知道自己都是新兵,經驗和能力上都有欠缺,還需淬鍊。
他們的平均年齡,只有21.8歲。
包雲崗說,等他們30歲時,就可以說已經是處理器晶片和計算機系統設計領域的“老兵”了。無論他們是進入業界還是學界,創造力會得到更大的發揮和展現。“我對這批年輕人的未來充滿期待。”
“一生一芯”計劃二期已經啟動。
據包雲崗介紹,二期的學生增加到13位。除了國科大外,還有來自浙江大學、南京大學、西北工業大學、哈爾濱工業大學(深圳)和美國密歇根州立大學等五所高校的同學。
延伸閱讀
A股多隻晶片股市值超千億,國務院:晶片自給率要在2025年達70%
近日,國務院印發《新時期促進積體電路產業和軟體產業高質量發展的若干政策》。據中國海關資料統計,2019年我國晶片的進口金額為3040億美元,遠超排名第二的原油進口額。雖然整體晶片進口金額十分龐大,但是較2018年進口額卻減少了80億美元,同比下降2.6%。
業內人士認為,國產晶片的發展在呈加速態勢。在政策大力推動下,晶片產業有很大的國產替代空間,整個國內晶片行業市場化發展程度也有很大的提升空間。國務院釋出的相關資料顯示,中國晶片自給率要在2025年達到70%,而2019年我國晶片自給率僅為30%左右。
資本市場上相關上市公司表現如何?據wind晶片指數顯示,截止到7月底,今年晶片指數累計漲幅達49.46%。A股市場上,7月份在科創板上市的中芯國際股票市值已超2000億元,韋爾股份、聞泰科技等企業個股市值已超千億元。業內人士認為,2019年我國積體電路行業銷售收入為7562.2億元,而2020年我國積體電路行業銷售收入有望突破9000億元。受益於整體行業景氣度提升,晶片產業也將繼續保持高速發展,可重點關注相關龍頭企業。