芯片設計是一項非常具有挑戰性且耗費人力和資源的工作。通常需要由工程師團隊編寫代碼,然后在電子設計自動化(EDA)工具的輔助下生成電路邏輯。針對人工編寫的代碼,工程師團隊需反復對其進行迭代的功能驗證和性能/功耗優化。該過程通常需要上百人團隊迭代數月或數年才能完成。
芯片全自動設計的目標是由機器代替人自動生成滿足功能和性能需求規范的電路邏輯,從而極大減少人力和資源投入,加速設計迭代。自計算機科學奠基人之一A. Church在1957年提出“邱奇問題”以來,處理器芯片的全自動化設計成為人工智能領域的長期愿景。但由于處理器芯片電路準確率要求高、設計空間大,處理器邏輯必須由人類專家進行邏輯設計。這成為了整個流程中的設計效率瓶頸。
中國科學院計算技術研究所處理器芯片全國重點實驗室團隊在實驗室主任陳云霽帶領下,聚焦解決處理器芯片自動設計所面臨的精度和規模兩大挑戰,提出了以驗證為中心的處理器智能設計方法學:從隨機電路出發,由機器全自動完成包括驗證、調試和修復的反復迭代直到獲得滿足設計需求的目標電路。
具體而言,團隊將處理器自動設計問題轉化成從驗證程序的輸入輸出(IO)出發自動生成大規模的BDD(Binary Decision Diagram)表示問題。針對該問題,團隊設計了二元猜測圖(BSD),將傳統BDD中的確定性子圖替換成BSD中通過對IO的蒙特卡洛采樣來確定的猜測節點。通過對BSD的不斷展開和歸并,使得其生成的電路能夠逐步逼近目標電路邏輯。上述方法在5小時內自動設計出了超過4百萬個邏輯門的通用處理器——啟蒙1號,將現有工作能自動設計的電路規模提升了3至4個數量級。啟蒙1號芯片是世界上首顆無人工干預、全自動設計的處理器芯片,可以正常運行Linux操作系統,實測性能達到Intel 486的水平。相關論文Automated CPU Design by Learning from Input-Output Examples已被CCF-A類會議IJCAI 2024接收。
為進一步提升自動生成處理器的性能,團隊提出了一種基于門級依賴關系分析的自動流水線設計方法。數據依賴分析是影響自動流水線設計的關鍵。與傳統數據依賴分析只能在寄存器等高層次進行不同,該方法在細粒度的門電路級別自動進行數據流分析。在分析結果基礎上通過二元猜測圖構建了細粒度的流水線控制單元,在保證功能正確前提下,利用門級前遞和猜測提升了程序執行效率,達到了1.57x的性能提升;更重要的是,在某些情況下可以找到比人類設計更優的流水設計,平均吞吐效果提升了31%。相關論文Revisiting Automatic Pipelining: Gate-level Forwarding and Speculation已被CCF-A類會議DAC 2024接收。