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