當(dāng)前開源芯片仍存在“死結(jié)”。具體而言,芯片設(shè)計(jì)階段需要投入大量的人力、電子設(shè)計(jì)自動(dòng)化(EDA)和IP成本,因此開發(fā)人員或企業(yè)不愿意將其設(shè)計(jì)的芯片與IP開源;這導(dǎo)致業(yè)界與社區(qū)無(wú)高質(zhì)量的開源芯片與IP可用,于是企業(yè)只能購(gòu)買高價(jià)的IP;這進(jìn)一步推高了開發(fā)代價(jià),導(dǎo)致企業(yè)希望充分驗(yàn)證設(shè)計(jì)來(lái)提高流片的成功率,這又需要投入更多的人力和時(shí)間進(jìn)行驗(yàn)證??如此循環(huán),最終形成了一個(gè)“死結(jié)”。
通過(guò)深入的調(diào)研并結(jié)合近年來(lái)的一些實(shí)踐經(jīng)驗(yàn),中科院計(jì)算所團(tuán)隊(duì)分析了國(guó)內(nèi)外開源芯片生態(tài)發(fā)展現(xiàn)狀與趨勢(shì),認(rèn)為隨著開放指令集(如RISC-V)、硬件描述新語(yǔ)言(如Chisel)、硬件生成器敏捷開發(fā)模式、開源EDA工具、云計(jì)算等技術(shù)涌現(xiàn)與普及,多種技術(shù)之間相互組合并不斷產(chǎn)生新的“化學(xué)反應(yīng)”,促進(jìn)開源芯片發(fā)展到了一個(gè)新的轉(zhuǎn)折點(diǎn),因此開源芯片面臨的“死結(jié)”有望被打破。但是構(gòu)建完善的開源芯片生態(tài)是一個(gè)長(zhǎng)期而艱巨的系統(tǒng)工程,正如今天開源軟件生態(tài)也是20余年積累而成。目前的開源芯片生態(tài)就如1990年代初的開源軟件生態(tài),全世界范圍都處于起步階段,尚無(wú)法構(gòu)成一個(gè)獨(dú)立(self-contained)生態(tài)——即完全采用開源模式,用開源EDA工具鏈開發(fā)開源IP,進(jìn)而完成開源SoC芯片設(shè)計(jì)。
要實(shí)現(xiàn)開源芯片生態(tài)目標(biāo),我們認(rèn)為需要在四個(gè)方面積極投入并取得突破:(1)開放指令集、開源IP與SoC設(shè)計(jì);(2)開源EDA工具鏈;(3)低成本的芯片開發(fā)驗(yàn)證平臺(tái);(4)快速適配芯片的系統(tǒng)軟件。
1.開放指令集、開源IP與SoC設(shè)計(jì):
“指令集→處理器核→SoC芯片”是芯片設(shè)計(jì)的三個(gè)階段,每個(gè)階段均存在三種模式:開放免費(fèi)(open&free)、可授權(quán)(licensable)、封閉(closed)。
在2010年左右,加州大學(xué)伯克利分校(UC Berkeley)認(rèn)識(shí)到只有基于開放的指令集,才能實(shí)現(xiàn)開源處理器核以及開源SoC芯片。因此他們推出了一套開放指令集RISC-V,允許全世界免費(fèi)自由地使用RISC-V指令集規(guī)范設(shè)計(jì)各自的處理器。但值得一提的是指令集(SA)僅僅是規(guī)范標(biāo)準(zhǔn),往往用一本書甚至幾張紙即可描述,需要根據(jù)規(guī)范編寫出相應(yīng)的源代碼,才是處理器核。因此僅有開放指令集還遠(yuǎn)不足以構(gòu)建開源芯片生態(tài),還需要一系列開源的IP和SoC設(shè)計(jì)。
開源IP和SoC設(shè)計(jì)要成為主流需要解決兩個(gè)問(wèn)題:一是解決P核的質(zhì)量控制難題。開源IP核并不是一種新的模式,事實(shí)上提供開源P核的OpenCores社區(qū)已經(jīng)存在了20年,到如今已經(jīng)擁有超過(guò)30萬(wàn)會(huì)員。但是OpenCores存在的核心問(wèn)題是絕大多數(shù)開源IP核未經(jīng)嚴(yán)格測(cè)試驗(yàn)證,質(zhì)量不可靠。解決IP質(zhì)量控制問(wèn)題可以從兩方面入手,首先是完善芯片敏捷開發(fā)流程,通過(guò)Chisel這樣的具有更高抽象的硬件描述語(yǔ)言,實(shí)現(xiàn)基于一套代碼同時(shí)生成用于測(cè)試的仿真模擬代碼以及用于流片的代碼,提高測(cè)試效率,快速定位錯(cuò)誤,從而改善IP核質(zhì)量;其次實(shí)現(xiàn)IP核與工藝庫(kù)高效對(duì)接的流程,從而推進(jìn)IP核達(dá)到可流片的成熟度,并通過(guò)建立快速流片認(rèn)證與測(cè)試機(jī)制,為開源社區(qū)提供經(jīng)過(guò)流片驗(yàn)證的IP核組合。通過(guò)這兩種方式積累出定數(shù)量的高質(zhì)量IP核,就可以形成支持90%重用的開源SoC框架。
二是可擴(kuò)展的松耦合架構(gòu)支持社區(qū)協(xié)作開發(fā)。傳統(tǒng)處理器采用緊耦合架構(gòu),模塊之間的交互非常緊密,不利于開源社區(qū)多人協(xié)作開發(fā),也不以利于用戶的自定義擴(kuò)展。傳統(tǒng)基于互連總線的可擴(kuò)展方式具有較好的靈活性,但編程與訪存效率低下,需要軟件顯式地進(jìn)行數(shù)據(jù)移動(dòng)。基于RISC-V進(jìn)行可擴(kuò)展指令是一種更高效的機(jī)制,但仍需要深入研究。對(duì)比開源軟件生態(tài),大型開源軟件的多人協(xié)作開發(fā)模式已經(jīng)比較成熟,面向?qū)ο笏枷搿⑽?nèi)核思想等一系列新技術(shù)與理念使大型軟件開發(fā)可分解、可擴(kuò)展、可組合,這些思想與理念值得處理器設(shè)計(jì)領(lǐng)域?qū)W習(xí)與借鑒。
2.開源EDA工具鏈:
開源EDA工具鏈涉及硬件開發(fā)語(yǔ)言與綜合、布局布線工具,類比于開源軟件生態(tài)中的編程語(yǔ)言與編譯器。如今工業(yè)界廣泛使用的硬件描述語(yǔ)言Verilog已經(jīng)是1980年代初的產(chǎn)物,一直沿用到今天。但相比于軟件領(lǐng)域,幾乎每十年都有更高效、更抽象的開發(fā)語(yǔ)言出現(xiàn),比如C、C++、Java、Python、Go、Rust等。近年來(lái),硬件開發(fā)語(yǔ)言開始出現(xiàn)變革,Chisel、PyMTL等更高抽象的硬件開發(fā)新語(yǔ)言涌現(xiàn)出來(lái)。以Chisel為例,它基于函數(shù)式語(yǔ)言Scala,通過(guò)元編程、面向?qū)ο蟆⒑瘮?shù)式編程等諸多高級(jí)特性,極大地提升了開發(fā)效率。我們團(tuán)隊(duì)前期研究工作也證明了Chisel比傳統(tǒng)Verilog在開發(fā)效率方法可提升一個(gè)數(shù)量級(jí),且具有相當(dāng)?shù)拈_發(fā)質(zhì)量。
近年來(lái),在DARPA的支持和推動(dòng)下,出現(xiàn)了越來(lái)越多的開源EDA項(xiàng)目。在芯片設(shè)計(jì)的前端(從RTL到網(wǎng)表)與后端(從網(wǎng)表到GDS版圖)均有一系列開源工具組件。同時(shí)也出現(xiàn)像QFlow、OpenRoad、Hammer等開源EDA框架。我們通過(guò)實(shí)驗(yàn)驗(yàn)證了現(xiàn)有開源EDA工具鏈已經(jīng)可以滿足小規(guī)模芯片開發(fā)—基于中芯國(guó)際180nm工藝庫(kù),使用全開源EDA工具鏈可將一個(gè)32位的RISC-V開源核生成GDS版圖。但是,當(dāng)前開源EDA工具鏈的挑戰(zhàn)是在先進(jìn)工藝支持、穩(wěn)定性和可用性方面仍與商業(yè)版有很大差距。
未來(lái),提升開源EDA工具鏈質(zhì)量可在四方面加強(qiáng)研究:一是與先進(jìn)工藝庫(kù)有機(jī)結(jié)合,二是提高開源組件的算法效率,三是針對(duì)領(lǐng)域?qū)S眉铀倨髟O(shè)計(jì)定制開源EDA組件,四是更好地支持Chisel等更高級(jí)硬件描述語(yǔ)言。今年8月在CCF容錯(cuò)大會(huì)上,北京大學(xué)、中科院計(jì)算所、清華大學(xué)等國(guó)內(nèi)十余所大學(xué)與研究機(jī)構(gòu)共同發(fā)起了OpenBelt倡議,將會(huì)在開源EDA方向積極投入,做出中國(guó)的貢獻(xiàn)。
3.低成本的芯片開發(fā)驗(yàn)證平臺(tái):
芯片開發(fā)過(guò)程中的模擬仿真與驗(yàn)證環(huán)境是非常耗時(shí)耗錢的環(huán)節(jié),一些加速仿真平臺(tái)(如Cadence的Palladium平臺(tái))甚至單臺(tái)價(jià)格就達(dá)上千萬(wàn)元人民幣。是否有可能將模擬仿真與驗(yàn)證的成本降低1~2個(gè)數(shù)量級(jí)?我們認(rèn)為基于云租賃模式可降低這方面的門檻。而基于云平臺(tái)進(jìn)行芯片開發(fā)、仿真與驗(yàn)證平臺(tái)將是未來(lái)趨勢(shì),尤其是針對(duì)中小企業(yè)用戶。
FPGA云平臺(tái)只是芯片設(shè)計(jì)過(guò)程中的一個(gè)環(huán)節(jié),要更大幅度地降低成本,還需進(jìn)一步與公用云平臺(tái)結(jié)合,支持運(yùn)行開源EDA工具鏈、下載與集成開源IP核的開源SoC芯片完整開發(fā)流程,實(shí)現(xiàn)構(gòu)建更完善的芯片開發(fā)/驗(yàn)證/測(cè)試云平臺(tái)。國(guó)際一些大學(xué)與企業(yè)也在朝著這個(gè)方面努力:加州大學(xué)伯克利分校基于亞馬遜F1 FPGA云平臺(tái)研制了FireSim平臺(tái),目標(biāo)是構(gòu)建使用FPGA加速的時(shí)鐘級(jí)精確的全系統(tǒng)硬件模擬平臺(tái);SiFive公司正在研發(fā)的DesignShare平臺(tái)則希望在云平臺(tái)上提供芯片開發(fā)所需要的各種資源,包括IP庫(kù)、EDA工具鏈等;Astera Lab與Synopsys合作,實(shí)現(xiàn)了完全在云上進(jìn)行設(shè)計(jì)與驗(yàn)證的SoC。
4.系統(tǒng)軟件與開發(fā)環(huán)境:
上述三方面的目標(biāo)是允許開發(fā)者重用90%的已有功能、只需專注10%的創(chuàng)新功能,從而數(shù)量級(jí)降低芯片開發(fā)成本與周期。而快速經(jīng)濟(jì)地定制領(lǐng)域?qū)S眯酒菓?yīng)對(duì)物聯(lián)網(wǎng)(IoT)面臨的“昆蟲綱”挑戰(zhàn)(碎片化問(wèn)題)的有效途徑。但這對(duì)系統(tǒng)軟件與軟件開發(fā)環(huán)境如何能快速適配新芯片則是很大的挑戰(zhàn)。當(dāng)一款新的芯片推出,軟件需在三個(gè)層次予以適配:第一層是操作系統(tǒng)與編譯器,針對(duì)新擴(kuò)展的指令或者新加的傳感器等;第二層是功能軟件層,如Apache、MySQL等;第三層是面向用戶和程序員,需要為用戶提供易用的操作方式,也需要為程序員提供更好統(tǒng)一的API,就如移動(dòng)領(lǐng)域安卓的作用。
-
云計(jì)算
+關(guān)注
關(guān)注
39文章
7845瀏覽量
137612 -
soc
+關(guān)注
關(guān)注
38文章
4188瀏覽量
218611 -
eda
+關(guān)注
關(guān)注
71文章
2773瀏覽量
173506
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論