2019年度國際計算機體系結(jié)構(gòu)旗艦會議ISCA于6月在美國亞利桑那州鳳凰城召開。6月23日與ISCA一起舉行的遠景研討會(SIGARCH Visioning Workshop)吸引了上百位聽眾。一方面是因為此次研討會主題“面向下一代計算的敏捷開放硬件(Agile and Open Hardware for Next-Generation Computing)”是當前體系結(jié)構(gòu)研究領(lǐng)域的前沿熱點,引起了很多人的關(guān)注;另一方面11位報告人中大牛云集,有圖靈獎得主David Patterson教授,也有多位美國工程院院士加持,還有來自MIT、Berkeley、Stanford、UCSD、Google、Nvidia、DARPA等頂尖大學、企業(yè)和政府機構(gòu)的專家(自己成了唯一的一位來自美國以外的報告人,多少有些勢單力?。?。
全程聽完了一天的報告,我的最大感觸是開源硬件(芯片)在美國各界已經(jīng)成為一種共識——從學術(shù)界、企業(yè)界到DARPA這樣的政府機構(gòu),都在積極投入到開源芯片與芯片敏捷開發(fā)方向的研究中。早在2016年的首屆Architecture 2030遠景研討會上,很多人就認為開源硬件將會是未來的大主題(Big Theme,如圖1)。而在國內(nèi),很多人對開源硬件/芯片的理解還有些片面,只是認為“開源芯片=RISC-V”。
圖1. 2016年遠景研討會上開源硬件便備受關(guān)注
遠景研討會(Visioning Workshop)
ACM體系結(jié)構(gòu)專業(yè)委員會SIGARCH組織的遠景研討會(Visioning Workshop)是一個暢想未來的學術(shù)研討會。第一屆在2016年的ISCA上舉辦,當年的主題是《Architecture 2030》,知名華人學者UCSB的謝源教授受邀做了題為《Technology-driven Architecture Innovation: Challenges and Opportunities》的報告。第二屆是在多倫多舉辦的ISCA上,主題為《Trends in Machine Learning》,圖靈獎得主 Yoshua Bengio 教授以及陳天奇、賈揚清兩位博士均為受邀報告人。
今年是第三屆,主題是“Agile and Open Hardware for Next-Generation Computing”,一共有11個報告,以下是議程。
David Patterson, UC Berkeley/Google, A New Golden Age for Computer Architecture
Vivienne Sze, MIT, Domain-Specific Architectures for AI and Robotics: Opportunities and Challenges
Serge Leef, DARPA, Automatic Implementation of Secure Silicon
Andrew Kahng, UCSD, Bringing Design Technology and Architecture Closer Together: What Open Source Might Enable
Yungang Bao, Chinese Academy of Sciences, The Four Steps to An Open-Source Chip Design Ecosystem
Richard Ho, Google, Building A Sustainable Open-Source Hardware Ecosystem
Mark Horowitz, Stanford, AHA! – Agile HArdware
Jason Cong, UCLA, Democratize Customizable Computing
Brucek Khailany, NVIDIA, Machine-Learning-Assisted Agile VLSI Design for Machine Learning
Borivoje Nikoli?, UC Berkeley, Generating the Next Wave of Custom Chips
Adam Chlipala, MIT, Strong Formal Verification Across a Hardware-Software Stack with RISC-V
圖3. 2019年遠景研討會11位報告人
報告1:圖靈獎得主David Patterson教授眼中的體系結(jié)構(gòu)黃金時代
Patterson教授介紹敏捷與開放體系結(jié)構(gòu)的挑戰(zhàn)與機遇。其實他的報告在很多場合都有講過,其中他對處理器指令集標準與架構(gòu)設(shè)計的分類值得專門再提一下。
首先,他向大家強調(diào)ISA指令集、微結(jié)構(gòu)設(shè)計、產(chǎn)品是三個層次。如圖4,ISA是規(guī)范標準,往往用一本書甚至幾張紙來記錄描述;微結(jié)構(gòu)設(shè)計是具體實現(xiàn),對應的是源代碼;產(chǎn)品則是設(shè)計的實例化,比如RedHat推出的Linux發(fā)行版。他進一步將指令集標準與架構(gòu)設(shè)計都分為三類:開放免費(open & free)、可授權(quán)(Licensiable)、封閉(closed)。于是,我們可以看到,Intel就屬于封閉指令集+封閉設(shè)計,ARM屬于可授權(quán)指令集+可授權(quán)設(shè)計,但要獲得授權(quán)價格不菲,往往需要上百萬甚至數(shù)千萬美元。
RISC-V為全世界提供了開放免費指令集+開放免費設(shè)計的選擇。根據(jù)圖5的第一行,我們可以知道只有先有了開源開放的指令集,才有可能有開源開放的微架構(gòu)設(shè)計,即綠色格子。需要強調(diào)的是RISC-V本身是一種標準規(guī)范,和C/C++語言規(guī)范、POSIX系統(tǒng)調(diào)用等這些標準是一樣的。本身是開放的,誰都可以基于這些標準來實現(xiàn)自己的處理器。但有一點需要厘清的是即使都是基于開源開放指令集(比如RISC-V),也存在三種不同的商業(yè)模式:(1)Google、NVidia等企業(yè)在內(nèi)部大量使用RISC-V核作為MCU,但他們不對外開放IP以及源代碼,這就屬于第一行的紅色格子;(2)SiFive公司、中國臺灣晶心Andes、阿里平頭哥的RISC-V核是可以被授權(quán)給第三方使用,但并不開源RTL級源碼,因此屬于橙色格子;(3)Berkeley的Rocket Chip、劍橋大學的LowRISC、蜂鳥E203等RISC-V核將RTL級源碼也開源,這些設(shè)計可歸到綠色格子。
圖4.ISA指令集、微結(jié)構(gòu)設(shè)計、產(chǎn)品三個層次以及對應的三種商業(yè)模式
圖5. 三種不同商業(yè)模式形成處理器分類
從圖5第一行可知,開放開源指令集并不等于就有了開源的微結(jié)構(gòu)設(shè)計,這兩者很容易被混為一談。很多人也誤判RISC-V受到DARPA資助會影響其開放性。事實上,TCP/IP協(xié)議也是DARPA資助下形成的互連標準,但在具體實現(xiàn)層面也可以有不同商業(yè)模式:(1)在網(wǎng)絡(luò)協(xié)議棧的軟件實現(xiàn)方面,有集成到BSD/Linux中的開源TCP/IP協(xié)議棧,也有微軟實現(xiàn)集成到商用Windows的TCP/IP協(xié)議棧;(2)在硬件實現(xiàn)方面上,美國思科公司可以研發(fā)支持IP協(xié)議的路由器,中國華為公司也可以研制自己支持IP協(xié)議的路由器,并不會因為是TCP/IP協(xié)議是受DARPA支持而不能使用。
另一個典型的例子是龍芯。龍芯是基于MIPS指令集發(fā)展起來的,而MIPS最早是由美國企業(yè)開發(fā)和維護的,但人們都認為龍芯是自主設(shè)計開發(fā)的,這正是區(qū)分了標準規(guī)范和微架構(gòu)設(shè)計。但談到RISC-V時,大家又經(jīng)?;鞛橐徽?,實不應該。
報告2:面向AI和機器人的加速器設(shè)計
MIT的Vivienne Sze教授介紹了面向AI、機器人和視頻壓縮的加速器設(shè)計。如圖6所示,Sze教授認為領(lǐng)域?qū)S眉铀倨髟O(shè)計的套路是:(1)挖掘應用特征——利用專用硬件來將并行性、數(shù)據(jù)訪問特征等特征轉(zhuǎn)變?yōu)橥掏屡c能效;(2)設(shè)計更高效負載——在不影響結(jié)果質(zhì)量的前提下,通過算法與硬件協(xié)同設(shè)計更高效的負載;(3)定義應用范圍——根據(jù)應用需求平衡靈活性與效率。
Sze教授用了三個例子分別展示這個套路的有效性,即DNN、機器人自動導航、視頻壓縮。圖7是一個DNN的例子,其他兩個例子可以直接看她的PPT材料。
Sze教授近年來獲得了各種獎項,今年ISCA上她的學生也獲得了最佳博士論文獎。個人覺得他們團隊的工作屬于穩(wěn)扎穩(wěn)打型,他們的設(shè)計中采用的技術(shù)方案都是意料之中,并沒有特別的亮眼的地方。但是他們的工作做得非常扎實,每一項工作都會把芯片做出來(如圖8),讓人很佩服。相比之下很多其他團隊的工作更多只是停留在論文階段的漂亮設(shè)計。
題外話:Sze教授的研究工作風格讓我想起中科院動物所所長周琪院士的團隊。周所在報告時提到他的學生曾抱怨,“我們發(fā)表一篇文章數(shù)據(jù)量是其他團隊的10倍,有這個必要嗎?”他的回答是:“你以后會認識到,發(fā)表文章不是最難的,最難的是文章發(fā)表了要把它撤回來”。世界頂尖團隊的研究風格都是類似的。
圖6. 硬件加速器設(shè)計三部曲
圖7. 采用三部曲設(shè)計方法的DNN加速器案例
圖8. MIT Sze教授團隊設(shè)計與實現(xiàn)的系列芯片
報告3:來自DARPA的視角
DARPA一直是顛覆式創(chuàng)新的代表,它孕育了很多對人類產(chǎn)生巨大影響的項目,比如Internet、GPS等。在半導體領(lǐng)域,MPW模式/Fabless模式都是在DARPA資助的項目中孕育出來的。因此DARPA的視角也值得關(guān)注。
這次報告的是項目主管Serge Leef,他之前一直在工業(yè)界,已經(jīng)有豐富的芯片領(lǐng)域經(jīng)驗。他的報告介紹了如何自動化實現(xiàn)芯片安全。除了傳統(tǒng)大家知道的芯片架構(gòu)安全,他還專門強調(diào)了供應鏈安全,這也反映了美國在對華為禁運的同時,其實也在擔心有一天禁運的板子打到自己身上。
這個報告并沒有包含具體的技術(shù),但給人印象深刻的是Serge從整個業(yè)界生態(tài)角度來分析技術(shù)的價值——他提到降低芯片設(shè)計門檻不僅僅是一個技術(shù)問題,也將促進風投和創(chuàng)業(yè),從而推動行業(yè)的創(chuàng)新(圖9與圖10)。對于這一點我深表贊同,自己也曾寫過一篇從經(jīng)濟學角度分析開源芯片的文章《駁“發(fā)展開源芯片弊大于利”論》。我曾經(jīng)看過其他DARPA的材料,也都能看到類似這種跳出技術(shù)本身、從更宏觀的角度分析的思路,很值得學習。
圖9. 傳統(tǒng)初創(chuàng)企業(yè)Seed/A輪/B輪融資額度穩(wěn)步提升,但芯片初創(chuàng)企業(yè)A輪就需要2000萬美元
圖10. DARPA希望能將芯片設(shè)計門檻降下來,促進風投和初創(chuàng)行業(yè),推動創(chuàng)新
ERI自從2017年啟動以來,其資助的研究內(nèi)容越來越成體系。下圖是DARPA ERI項目所資助的21個項目一覽圖。DARPA每年也會在7月份舉辦ERI Summit,將這些項目的核心成員們召集研討進展與下階段工作。值得一提的是ERI Summit的報告材料都是可以公開下載,這是2018年的日程與報告下載地址:[http://eri-summit.com/agenda]
圖11. DARPA ERI項目所資助的21個項目一覽圖
報告4:高效開源EDA工具鏈已在路上(OpenROAD)
UCSD的Andrew Kahng教授獲得了DARPA項目的資助,開展高效開源EDA工具鏈的研究。他認為EDA以前是關(guān)注質(zhì)量,但現(xiàn)在該開始關(guān)注把易用性了。他參與的DARPA IDEA項目目標非常激進——24小時內(nèi)全自動地完成IP、SoC芯片、PCB版的設(shè)計(圖12)。
在DARPA的資助下,他帶領(lǐng)團隊啟動了OpenROAD項目,該項目將從四個維度來應對芯片設(shè)計復雜度問題:(1)最大化劃分,將大的設(shè)計盡可能劃分為小模塊,這樣可以兩個好處,一方面是降低算法復雜度,另一方面就是更易挖掘并行性;(2)并行優(yōu)化,這一點與前面最大化劃分密切聯(lián)想,當存在大量并行度時,就可以采用各種加速并行的技術(shù)來優(yōu)化,包括使用GPU來加速;(3)采用機器學習的工具與流程,傳統(tǒng)芯片設(shè)計流程中有很多經(jīng)驗規(guī)則,這一點可以通過訓練大量已有設(shè)計變成神經(jīng)網(wǎng)絡(luò)模型,從而加速最優(yōu)電路設(shè)計的搜索和預測。這方面也是Kahng教授在報告中特別強調(diào)的;(4)受限的布局方案也可以減少布局布線時的算法復雜度。
OpenRoad將于今年推出Alpha版,然后在2020年推出v1.0版本。
圖12. DARPA IDEA項目的目標是全自動化(無人干預)、24小時完成全系統(tǒng)硬件設(shè)計
圖13. OpenRoad在四方面進行優(yōu)化
圖14. OpenRoad將于今明兩年開源
EDA是國內(nèi)芯片設(shè)計產(chǎn)業(yè)最大的軟肋,中國的EDA工具企業(yè)始終未能做大做強。如今,美國開始將EDA轉(zhuǎn)向開源,中國又應該如何應對?這個問題值得認真研究。我自己的觀點是開源總體對中國是有利的,但開源也存在競爭,只有更多的投入、參與和貢獻,才能在開源社區(qū)中起到主導作用。中國不一定能在所有環(huán)節(jié)上都存在優(yōu)勢,但還是有可能在某些環(huán)節(jié)上推出有競爭力的開源EDA工具。
圖15. 全世界范圍內(nèi)開源EDA工具出現(xiàn)快速增長趨勢
報告5:中國的聲音
我是這屆遠景研討會上唯一一位來自美國以外的報告人,這也反映了美國在這個方向上處于絕對領(lǐng)先地位。我的報告題目是“The Four Steps to An Open-Source Chip Ecosystem”,根據(jù)過去幾年在開源芯片與敏捷開放領(lǐng)域的一些實踐,梳理了構(gòu)建開源芯片生態(tài)所需要突破的四個方面:開源ISA/IP/SoC、開源EDA工具鏈、高效低成本的仿真驗證、系統(tǒng)軟件。然后對每一部分的現(xiàn)狀和未來努力方向進行了分析。
圖16. 構(gòu)建開源芯片生態(tài)所需要突破的四個要素
報告6:CHIPS聯(lián)盟與開源UVM驗證框架
來自Google的Richard Ho博士介紹了CHIPS聯(lián)盟——這是近期Google聯(lián)合了6家企業(yè)成立了一個開源芯片聯(lián)盟,旨在推動開源芯片生態(tài)(圖17)。這7家企業(yè)每一家都貢獻了開源芯片設(shè)計中所需要的功能模塊,例如西部數(shù)據(jù)的SweRV核、SiFive的Rocket核、Google的RISC-V-DV驗證工具等。從圖18可以看到,越來越多的開源工具開始出現(xiàn),未來基于全開源EDA工具設(shè)計開源芯片,將不會是空談。
圖17. CHIPS聯(lián)盟旨在推動開源芯片生態(tài)
圖18. 越來越多的開源工具開始出現(xiàn)
Google開源了一個面向RISC-V的驗證框架(圖19),可以通過RISC-V-DV來產(chǎn)生指令流,對設(shè)計進行壓力測試。芯片設(shè)計過程中的驗證環(huán)境非常耗時耗力,但又是極其重要的環(huán)節(jié)。應該說Google的這個開源工具確實芯片設(shè)計中的痛點,但如何能靈活應對不同的設(shè)計,如何能達到更高的性能,這些都還需要不斷優(yōu)化。
圖19. Google開源的針對RISC-V的驗證框架
報告7:硬件加速器設(shè)計與領(lǐng)域?qū)S谜Z言DSL
美國工程院院士、斯坦福大學的Mark Horowitz教授介紹了他們在加速器領(lǐng)域的工作。Horowitz教授早期參與了很多多處理器架構(gòu)、高帶寬內(nèi)存的研究,創(chuàng)辦了Rambus公司。在這個報告中,他認為設(shè)計一個硬件加速器的本質(zhì)就是將應用快速地映射到硬件上,這可以分解為三個步驟(圖20):(1)用領(lǐng)域?qū)S谜Z言DSL來寫應用;(2)用編譯器將應用映射到可編程的硬件模型(也可以看作某種粒度的ISA)上;(3)將ISA映射到目標硬件上。
Horowitz教授接著介紹了團隊正在開發(fā)的AHA工具鏈,融合了上述三個步驟(圖21)。報告非常精彩的部分是他坦言到雖然這套工具鏈能工作,也開發(fā)出了芯片,但還存在很大的問題,整個工具鏈需要重構(gòu)。然后他總結(jié)了6個經(jīng)驗教訓:(1)敏捷開發(fā)應該關(guān)注系統(tǒng)構(gòu)建,而不僅僅是加速器的性能,用戶關(guān)心的應用最終性能;(2)硬件設(shè)計不只是功能,還包括很多復雜問題,如時序、布局、測試生成等,這些都不應該暴露給用戶,因此可以通過DSL+編譯器來為用戶屏蔽這些底層細節(jié);(3)用戶使用加速器時都會重寫應用代碼,既然需要重寫,從一開始就應該讓用戶使用DSL;(4)用戶希望為一類應用設(shè)計加速器,而不是僅僅為一個應用,因此粗粒度可重構(gòu)架構(gòu)CGRA是很好的選擇;(5)敏捷開發(fā)的核心是重用,因此要盡可能設(shè)計一些新工具提供重用度;(6)開源硬件可以降低NRE成本,降低維護成本,但開源硬件的形式不一定是硬件,而將會是以軟件工具或代碼的形式。
Horowitz教授的這幾點經(jīng)驗教訓具有很強的啟發(fā)性,也很具有可操作性,他們團隊的工作值得關(guān)注。
圖20. 硬件加速器的本質(zhì)就是將應用快速地映射到硬件
圖21. 斯坦福大學開發(fā)的芯片敏捷開發(fā)AHA工具鏈
報告8:高層次綜合
美國工程院院士、UCLA的Jason Cong教授是FPGA與高層次綜合HLS(High-Level Synthesis)領(lǐng)域的頂尖專家。HLS是從1980年代FPGA興起時CMU、IBM等就開始研究,但一直未能形成商用。從2006年開始,Cong教授在UCLA啟動了xPilot項目,后成立公司AutoESL推出AutoPilot工具,并于2011年被Xilinx收購集成為Vivado HLS工具。在報告中,Cong教授指出HLS還面臨兩大挑戰(zhàn)(圖22):
?。?)需要花大力氣對代碼重構(gòu)才能達到好的性能,簡單的C代碼在綜合得到硬件后甚至可能比CPU性能慢上百倍(圖23)。Cong教授團隊認為可通過編譯優(yōu)化技術(shù)來解決這個問題,因此開發(fā)了一個編譯器Merlin,簡化代碼重構(gòu)工作。體系結(jié)構(gòu)設(shè)計的“三大法寶”為并行、流水和緩存。Merlin編譯器的目標是將“三大法寶”對應的設(shè)計規(guī)則集成到編譯器中,從而在整個過程中減少人的參與。
(2)如何在很大的設(shè)計空間中找到優(yōu)化設(shè)計也是一個很大的挑戰(zhàn)。前面提到體系結(jié)構(gòu)層次有“三大法寶”,而在具體設(shè)計時每一個法寶都有很多種選擇,因此設(shè)計空間很大。這個挑戰(zhàn)不僅僅是學術(shù)界關(guān)心,事實上工業(yè)界也很關(guān)心,我們和海思技術(shù)交流中也提到這點。為了應對這個問題,Cong教授團隊開發(fā)了一套自動化設(shè)計空間探索框架(Automated design space exploration framework)。目前還主要是基于梯度進行空間搜索,這方面還有很大的優(yōu)化空間。
圖22. 高層次綜合HLS面臨的兩大挑戰(zhàn)
圖23. C代碼需要重構(gòu)才能獲得加速,否則可能會比CPU慢上百倍
Cong教授認為讓程序員來寫HLS代碼效率太低,應該提供更高抽象的語言,即領(lǐng)域?qū)S玫恼Z言DSL——程序員用更高級的DSL來寫代碼,然后自動生成HLS代碼,進而映射到FPGA上(圖24)。到這里可以看出這個技術(shù)思路與斯坦福Horowitz教授提出的三個步驟一致,如果接著往下看,也會發(fā)現(xiàn)第10個來自Berkeley的報告也是同樣的理念。
圖24. DSL能提高HLS開發(fā)效率
報告9:英偉達的敏捷開發(fā)實踐
英偉達ASIC與VISL研究部門主任Brucek Khailany介紹了他們采用機器學習方法的敏捷開發(fā)技術(shù)。英偉達積極投入芯片敏捷開發(fā),其動力也是因為現(xiàn)在芯片設(shè)計太過復雜。例如,英偉達產(chǎn)品的開發(fā)周期一般需要3-5年,其中設(shè)計與驗證的時間與成本占比大約70%(圖25),2018年Nvidia Xavier SoC一共花了8000人年!因此英偉達希望能將開發(fā)周期與成本降低一個數(shù)量級。
英偉達的總體思路包含三個要點(圖26):(1)使用更高級的開發(fā)語言,英偉達選擇的是C++;(2)利用HLS工具將C++代碼轉(zhuǎn)變?yōu)镽TL代碼,從而可以嫁接到現(xiàn)有的ASIC開發(fā)流程;(3)充分使用已經(jīng)開發(fā)好的庫和生成器(libraries/generator),盡可能地重用已有設(shè)計從而節(jié)省時間。值得一提的是,第(3)點庫和生成器是面向領(lǐng)域?qū)S玫男酒艚蓍_發(fā)方法中很重要的環(huán)節(jié),未來將會決定芯片敏捷開發(fā)的性能與質(zhì)量。最近這方面的工作也開始增加,比如英偉達開發(fā)的MatchLib,Berkeley開發(fā)的面向RISC-V的Rocket Chip Generator和面向模擬電路的Analogy Generator(下一章節(jié)將會介紹)。
最后Khailany簡要總結(jié)了將機器學習應用到芯片設(shè)計自動化方面的相關(guān)工作(圖27)。如之前Cong教授報告中提到,設(shè)計自動化中面臨的挑戰(zhàn)之一便是巨大的設(shè)計空間。深度學習在大空間高效搜索方面則具有很大的潛力。
圖25. 英偉達產(chǎn)品開發(fā)周期需要3-5年,設(shè)計與驗證占比大約70%
圖26. 敏捷開發(fā)思路三個要點:高層次語言、工具、庫/生成器
圖27. 機器學習為敏捷開發(fā)帶來的機遇
報告10:支持硬件敏捷開發(fā)的新語言與生成器
Berkeley的 Borivoje Nikoli? 教授的核心觀點是生成器(generator)將是芯片敏捷開發(fā)的核心(圖28),可以降低芯片設(shè)計的成本和開發(fā)周期。生成器技術(shù)和軟件開發(fā)中的面向?qū)ο笏枷胗泻芏嘞嗤ㄖ帲琯enerator可以看作是一個class。簡單總結(jié)一下這種方式的好處:(1)重用度高,一個生成器可產(chǎn)生很多實例;(2)更易定制化,可通過修改參數(shù)產(chǎn)生不同的實例;(3)便于驗證,理論上對生成器充分驗證(包括形式化驗證),可以保障生成實例的正確性。
Nikoli?教授帶領(lǐng)團隊過去幾年在這方面做出了杰出的貢獻。他們發(fā)明了具備更高抽象能力的Chisel語言,使生成器的開發(fā)變得更簡單。事實上,近年來非?;鸬腞ISC-V最早開源實現(xiàn)Rocket Chip實現(xiàn)就是一個基于Chisel的生成器(圖31)。
一款SoC芯片設(shè)計很大的挑戰(zhàn)是模擬電路。Nikoli?教授開發(fā)了BAG(Berkeley Analog Generator),一套基于Python的開源模擬電路生成器(圖29),包括 Comparator 、多種ADC/DAC生成器、SerDes生成器(圖30)等。這些生成器在ST 28nm, GF 22nm, TSMC 16nm等不同工藝下成功流片。當然目前實測性能與業(yè)界主流產(chǎn)品相比還有差距,比如使用TSMC 16nm工藝的ADC采樣頻率為7GS/s,精度為6.5bit,而ADI公司于2017年便開發(fā)出基于28nm工藝的10GS/s、精度為12bit的產(chǎn)品。但值得一提的是這些都是開源設(shè)計,如果社區(qū)和企業(yè)在此基礎(chǔ)上不斷優(yōu)化改進,有可能最終得到足夠性能的開源模擬電路設(shè)計。
圖28. 生成器(generator)是芯片敏捷開發(fā)的核心
圖29. 數(shù)字電路生成器Chisel3和模擬電路生成器BAG2
圖30. 基于BAG2的SerDes生成器
圖31. 基于Chisel與BAG生成的RISC-V芯片
報告11:端到端的形式化驗證
形式化驗證(Formal Verification)方法被認為是保證系統(tǒng)正確性的最有效方法。自從2009年第一個經(jīng)過形式化驗證的操作系統(tǒng)內(nèi)核SeL4發(fā)表以來,形式化驗證方法已收到越來越多地關(guān)注,尤其是在操作系統(tǒng)領(lǐng)域。2016年,美國NSF在計算機領(lǐng)域額度最大的“Expedition in Computing”項目(5年1000萬美元)資助了由普林斯頓大學、麻省理工學院、康奈爾大學、賓夕法尼亞大學聯(lián)合申請的形式化驗證軟硬件全系統(tǒng)棧的項目:DeepSpec(圖32),一個目標極其遠大而具有顛覆性、同時也極具挑戰(zhàn)的研究項目。
MIT的Adam Chlipala教授也是DeepSpec的co-PI,他在Visioning Workshop上介紹了基于RISC-V開展的全系統(tǒng)端到端強形式化驗證研究進展(圖33),包括硬件RTL層次的驗證、編譯器的驗證等。Chlipala教授展示了一個經(jīng)過驗證的RISC-V核實現(xiàn)(圖34,圖35),目前還只能用于演示點燈。
報告中我的理解是相比于傳統(tǒng)的Verilog,具有更高抽象的硬件描述語言(如BlueSpec、Chisel)將有助于RTL層次的形式化驗證。不過由于自己對這個領(lǐng)域也了解不多,所以也無法更深入地解讀他們的研究工作。
在這里可以分享一段有趣的經(jīng)歷:我在普林斯頓大學做博士后時在同一個辦公室的是Andrew Appel教授的博士后Lennart Beringer,當時正在開展編譯器的形式化驗證研究。當時曾問過他形式化驗證的前景,他自己認為可能需要20年才能實用。讓人感慨的是,幾年后,即使在一線研究人員看來都很遙遠的研究卻得到了NSF的大力資助,而Lennart現(xiàn)在也正是DeepSpec項目的副主任。相比較于美國大力資助形式化驗證的系統(tǒng)實現(xiàn),國內(nèi)從事這方面研究的團隊就顯得太少了,也很難得到資助。這種現(xiàn)狀亟需改變。
圖32. 2016年NSF Expedition in Computing項目:DeepSpec
圖33. 端到端形式化驗證框架
圖34. RISC-V核的形式化驗證示例
圖35. 經(jīng)過驗證的RISC-V核
中國的挑戰(zhàn)與機遇
芯片一直是中國半導體產(chǎn)業(yè)的軟肋,如何破解中國半導體產(chǎn)業(yè)面臨的“卡脖子”問題,各界都在積極實踐與探索。
中國當前需要盡快突破被稱為是“燃眉之急”的多項關(guān)鍵技術(shù),但從長遠來看,中國芯片領(lǐng)域面臨的 “卡脖子”問題根源在于優(yōu)秀人才儲備嚴重不足——我們曾做過一項統(tǒng)計,2008到2017年的十年間體系結(jié)構(gòu)頂會ISCA論文的第一作者(可認為是芯片架構(gòu)研究優(yōu)秀人才)85%選擇在美國就業(yè),僅有4%在中國就業(yè),差距巨大(圖36)。這與當前芯片設(shè)計門檻過高,導致中國大學無法開展芯片相關(guān)教學與研究密切相關(guān)。
這種人才危機美國也曾經(jīng)歷過,1982年全美上千所大學中只有不到100 位教授和學生從事半導體相關(guān)的研究。為了應對人才危機,美國DARPA在1981年啟動MOSIS項目,為大學提供流片服務,通過MPW模式大幅降低芯片設(shè)計門檻(圖37)。三十余年來MOSIS為大學和研究機構(gòu)流了60000多款芯片,培養(yǎng)了數(shù)萬名學生。因此,降低芯片設(shè)計門檻亦可大幅提高人才培養(yǎng)效率。
開源芯片與敏捷開發(fā),有可能再未來實現(xiàn)數(shù)量級地降低芯片開發(fā)門檻。開源芯片生態(tài)仍處于起步階段,如果中國能積極參與并主導開源芯片生態(tài)中若干核心模塊,那么就有可能吸引更多開發(fā)人員、民間資本參與芯片開發(fā),提高芯片領(lǐng)域的創(chuàng)新活力,同時也能為中國芯片企業(yè)提供基于開源的芯片關(guān)鍵技術(shù)與優(yōu)秀人才、擺脫“卡脖子”困境。
圖36. “卡脖子”問題根源在于優(yōu)秀人才儲備嚴重不足
圖37. 美國應對半導體人才危機的方式
結(jié)語:2030憧憬
總結(jié)來說,開源芯片與敏捷開發(fā)備受關(guān)注,背后存在兩方面的驅(qū)動力:
?。?)應對摩爾定律終結(jié)的技術(shù)發(fā)展需求:Dennard Scaling定律和摩爾定律逐漸走向終結(jié),但摩爾定律賦予芯片的能力并未充分挖掘出來。例如實現(xiàn)一個矩陣乘法,普通程序員寫的程序和懂體系架構(gòu)的專家寫的程序性能上甚至會有63000倍的差距。因此,面向某個特定領(lǐng)域?qū)<抑R實現(xiàn)到芯片中,就有可能提升幾百甚至幾千倍的性能功耗比,從而充分挖掘芯片上晶體管的潛力。但這種領(lǐng)域?qū)S皿w系結(jié)構(gòu)(DSA)會帶來碎片化問題,需要從芯片設(shè)計成本與周期兩個維度同時降低門檻,才能應對種類繁多的領(lǐng)域?qū)S眉铀倨鳌?/p>
(2)激發(fā)創(chuàng)新活力、繁榮芯片產(chǎn)業(yè)的市場需求:長期以來芯片研發(fā)成本高、周期長,導致了該領(lǐng)域的高門檻,嚴重阻礙了創(chuàng)新。即使研制一款中檔芯片,也往往需要數(shù)百人年、數(shù)千萬甚至上億的研發(fā)投入,導致資本不愿投資。因此,只有少數(shù)企業(yè)才能承擔,資本市場對芯片投資也是極其謹慎保守,制約了芯片領(lǐng)域的創(chuàng)新活力。
構(gòu)建開源芯片生態(tài)與敏捷開發(fā)方法一個長期的系統(tǒng)工程,面臨著諸多挑戰(zhàn),但也是一個不管是學術(shù)上還是商業(yè)上都值得探索的方向,也需要各界的支持與參與。
后記:IEEE MICRO特刊
Visioning Workshop結(jié)束后的第二天,IEEE MICRO雜志的主編和編委聯(lián)系到我。他們也在現(xiàn)場聽了報告,認為這個方向很重要,邀請我來組織一期關(guān)于敏捷開發(fā)與開源硬件的特刊,我欣然接受。經(jīng)過前期的一些討論,現(xiàn)在已經(jīng)確定了幾個時間節(jié)點,Call-for-Paper也已出爐。歡迎大家賜稿!
圖38. Call-for-Paper of IEEE Micro Special Issue