如今,芯片開發競爭愈發激烈,芯片制造商迫切希望芯片在送到實驗室后,能盡快完成相關工作并盡早發貨。更準確地說,他們希望從芯片送達實驗室到將產品交付給客戶,整個過程僅需數小時的時間,而不用耗費數天或數月。這就要求整個系統(包含芯片及其上運行的所有軟件)必須提前準備就緒,并按預期運行。
軟件已成為當今電子系統中不可或缺的組成部分。從虛擬現實(VR)頭顯,到高等級自動駕駛汽車,這些由軟件驅動的系統都依賴于精密的復雜算法,才能讓從元宇宙沉浸式體驗到高級駕駛輔助系統等功能得以實現。
先進片上系統(SoC)和Multi-Die系統中的軟件內容呈爆炸式增長,使得開發過程變得復雜而耗時。若要確保滿足產品上市時間要求,硬件設計和軟件開發就必須齊頭并進,而不能等到硬件設計完成后再開始軟件開發。而軟件啟動(bring-up)旨在確保軟件功能完全正常、與目標芯片進行了正確集成并針對目標芯片進行了優化,它對確保整個系統的質量和性能至關重要。
面對這些挑戰,開發者該如何才能更快、更高效地完成軟件啟動過程?在Multi-Die系統中,每個異構芯片都可以是一個擁有完整軟件堆棧的獨立系統,且所有芯片必須協同工作,才能實現Multi-Die系統的功能。那么,大型Multi-Die系統會對軟件啟動流程產生怎樣的影響呢?本文將重點介紹Multi-Die系統的復雜性和相互依賴性給軟件啟動帶來的新挑戰,以及虛擬原型和電子數字孿生等技術如何幫助開發者應對這些挑戰。
Multi-Die系統的軟件啟動需要些什么?
Multi-Die系統已逐漸成為半導體設計的主流,讓開發者可以更迅速地擴展系統功能、降低風險并縮短產品上市時間。對于AI、ADAS、超大規模數據中心和高性能計算等計算密集型應用,Multi-Die系統已成為系統架構的首選。
Multi-Die系統將多個芯片(也稱Chiplets)融合在一個封裝中,帶寬和功耗表現出色,可滿足各種應用不斷提高的功能需求。Multi-Die系統的模塊化架構可幫助芯片開發者更迅速地打造新的產品型號,從而更快抓住多個終端市場的機會。
與單片系統相比,Multi-Die系統使軟件變得更錯綜復雜,甚至也讓開發變得更困難。單片SoC通常由具有特定組織結構的團隊,按預先確定的日程安排開展開發工作。Multi-Die系統由多個芯片組成,而這些芯片可能采用了不同的制程節點,因此傳統的流程是行不通的。
從技術角度來看,十年前由多個PCB組成的系統,如今已演變為可由單個Multi-Die系統代替。這其中的軟件復雜性變化不言而喻。除了在各個芯片的硬件上調試軟件堆棧外,開發者還需要對整個系統進行集成和測試。數據通過復雜的Die-to-Die接口在芯片之間不斷流轉,例如通用芯?;ミB技術(UCIe)(通常基于PCIe或CXL)。這些接口需要進行正確的軟件設置和編程。隨著軟件虛擬機監控程序的加入,情況變得更加復雜,因為軟件虛擬機監控程序會使用復雜的虛擬化功能和半虛擬化軟件驅動程序(如單根輸入/輸出虛擬化(SR-IOV)標準)來共享硬件接口。在單個PCIe主機/設備中開發和調試這些設置已非易事,而對于包含多個此類接口的復雜Multi-Die系統,更是難上加難。調試工作在技術層面和組織層面都面臨重重挑戰。在技術層面,目前芯片功能不斷增加,但調試接口數量有限,調試可見性因此受到限制;而在組織層面,調試流程可能要求不同公司的團隊建立聯系,以了解并共同確定調試方案,其中的困難顯而易見。
為確保最終應用正常運行,量產前就必須將芯片上運行的軟件載入硬件加速系統中,進行超過數百億個周期的測試。在就Multi-Die系統硬件組件做出任何決策時,都需要綜合考慮軟件的影響。軟件在不斷發展,因此測試過程也要隨之持續演變。
加速軟件啟動的關鍵技術
在新設計的硬件上進行軟件調試,是為了使軟件中的設置與目標器件的特性相匹配。換句話說,軟件必須與硬件相匹配,才能確保功能正常,使系統達到出色性能。此過程包括由專用控制器對芯片進行底層初始化,并對主操作系統進行調試。軟件實際上是一個多層整體堆棧,其中可能包括提供服務的中間件、設備驅動程序或與外界通信的元件(如USB或以太網控制器)。
通過采用多種流片前技術在不同的抽象層次進行部署,可以進一步縮短產品上市時間并提高軟件質量。以下列舉了五種技術:
虛擬原型,由開發者創建事務級模型,其本質是使用C++語言為以RTL語言設計的芯片創建等效模型。這有助于實現流程左移,并支持引導啟動。虛擬原型可在整個軟件開發團隊中進行擴展。對于主機上的操作系統而言,虛擬原型模型就像是真實的設備。虛擬模型可以連接到真實的物理接口(如PCIe、USB和以太網),也可以連接到硬件加速器或原型上的RTL模型,從而使虛擬原型能夠在現實環境中進行交互,并為某些類型的測試提供真實的激勵輸入。
對RTL依次使用硬件加速和物理原型系統,這樣可以達到一定的精度,但速度比虛擬原型要慢。這種方法需要成熟的RTL和IP描述。后續通過應用快速物理原型,開發者可以將軟件與物理設備連接起來,以驗證芯片在現實中的運行情況。
混合原型,將虛擬原型和物理原型(即基于FPGA)的優勢相結合,以加快軟件開發和系統集成。硬件和軟件開發者可以借此提高調試可見性,并更好地控制開發中的軟件,從而更大限度地優化原型性能,并加速系統啟動。
電子數字孿生,為開發中的系統提供虛擬表示,以便開發者在確定最終設計前分析和優化設計,并加速軟件啟動、功耗分析和軟件/硬件驗證流程。
除了加速軟件啟動外,這些流片前技術還可以幫助開發者測量芯片的關鍵性能指標(KPI),有助于盡早驗證性能和功耗,履行對客戶的承諾,從而降低項目風險、減少返工,為按期投產和后續芯片銷售提供保障。
根據軟件任務的具體需求,Multi-Die系統開發者可能要在不同抽象層次上混合使用不同的驗證引擎。鑒于軟件非常多樣化,可以考慮先采用虛擬原型引擎,然后再結合虛擬和物理原型/硬件仿真加速(分別稱為混合原型和混合硬件仿真加速)技術,為軟件開發者提供支持,同時滿足Multi-Die系統的容量需求。例如,部分流片前軟件可以在硬件加速器上運行,同時通過虛擬原型或建模對其他軟件組件進行抽象處理。在設計流程后期,開發者還需要對硬件上運行的軟件(也就是整個系統)進行驗證,以確保達到性能目標。
對于Multi-Die系統的軟件啟動而言,混合方法可能最為有效。所有的單個組件都驗證結束后,就可以在大容量硬件加速器上運行整個Multi-Die系統,如最大容量300億門級的新思科技ZeBu硬件加速系統。而通過Synopsys Cloud等解決方案在云端運行硬件加速還為Multi-Die系統提供了更大的容量,并可根據高峰需求時段的情況更靈活地利用硬件加速器資源。除了ZeBu硬件加速系統外,新思科技驗證系列產品還包括新思科技HAPS原型系統和新思科技Virtualizer虛擬原型解決方案。該系列產品共同提供了早期軟件啟動和系統驗證所需的功能。隨著AI持續融入電子設計自動化(EDA)流程,機器學習算法也將有可能在軟件啟動期間發揮關鍵作用,并在軟件調試期間幫助進行根本原因分析。
總結
軟件定義系統為我們帶來了種種新奇產品和工具,例如可以帶我們暢游天南地北的VR頭顯、可以自動泊車和自動駕駛的汽車,以及可以控制家庭照明和暖通空調系統的AI智能揚聲器等等。上文討論的多種流片前技術,有助于加速Multi-Die系統的軟件啟動過程,以確保協同優化系統中的軟硬件,從而實現最終應用的功能和性能目標。硬件加速器和(虛擬)原型系統及其混合組合等驗證解決方案,可為新興技術提供支持,幫助開發者打造各種智能互聯的電子產品,進一步豐富我們的智能生活。
-
電子系統
+關注
關注
0文章
410瀏覽量
31147 -
系統芯片
+關注
關注
0文章
38瀏覽量
18369 -
自動駕駛
+關注
關注
784文章
13784瀏覽量
166394
原文標題:從數月到幾小時,這枚Multi-Die系統芯片是如何快速交付的?
文章出處:【微信號:Synopsys_CN,微信公眾號:新思科技】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論