復雜嵌入式系統已日益普及并成為我們日常生活的一部分。一輛汽車平均包含80個每秒能執行上億條指令的嵌入式處理器。以一個單獨的DSP上以軟件方式實現移動調制解調器的配置為例,現在的手機包含2到4個處理器。 然而隨著嵌入式系統日益普及,設計危機也逐漸凸現。統計數據顯示,近40%的嵌入式系統開發延遲,還有超過9%的開發最終被取消。 這些統計數據的矛頭都指向基本工程方法的失敗。在傳統的開發步驟中,硬件設計要超前軟件開發,而嵌入式系統中軟件正日益占據關鍵地位。因而,傳統開發步驟在嵌入式系統開發中遭遇失敗并不讓人意外。何況一個產品的上市時間也越來越短(后文舉出的手機開發的例子總開發時間還不到一年),這又給嵌入式系統的開發雪上加霜。很明顯,嵌入式設計的方法和工具需要進行一次革命。 也就是說,系統架構、硬件實現和軟件實現各階段之間的關系需要調整,而這種需求恰好正是目前的電子系統級設計(ESL)中最受關注的問題。然而,現有的大多數基于ESL的方法都只能提供部分解決方案。我們需要的是一套全新的設計模式,一套能夠對全系統建模的方法,以促進系統架構研究并實現軟硬件協同設計,以允許設計人員從原始設計不斷改進,直到最終實現系統。 至今為止,大多數將SoC系統級設計自動化為RTL實現的嘗試都存在設計精確度和設計生產力不足的缺陷。早期那些力圖將C、C++和SystemC自動化為硬件建模語言(能將順序軟件語義翻譯為基于狀態機的并行硬件語言) 的工具,不但要求開發人員創建并維護功能事務級模型的多個“視角”,而且要添加定時還需要更多的“視角”。維護這些“多視角”本身就有問題,而這些視角之間在時序和功能方面的不一致還會導致驗證錯誤。此外,最終將其轉為RTL的過程主要仍是一個手工操作的過程。 要使SoC設計走出困境,很重要的一點就是讓設計師們能夠采用一種在系統架構階段設計的定時精確的高性能系統級模型,然后隨著開發人員從架構階段進入軟硬件協同開發和驗證階段,改進而不是丟棄這個模型。盡管暫時還沒有一種全自動化的工具鏈能夠實現從系統架構到RTL實現這一系列完整的設計任務,但一些嵌入式設計方案供應商已經開始了成功的嘗試,其中一種很有前途的技術就是虛擬系統原型技術。 圖1:每個公司一年里啟動的項目提前完成,推遲完成,按時完成和取消所占的百分比(平均每個公司啟動項目所占百分比)。 虛擬系統原型(VSP)是一種基于軟件仿真的電子系統模型,其中可以包含一個或多個處理器、總線、硬件外設,甚至可以包含作為整個系統一部分的機械或模擬子系統模型。但最重要的是,VSP運行的是與真實硬件相同的經過編譯和鏈接的目標代碼,因而能夠準確預測系統在實際情況下的表現。此外,VSP還是一種周期精確(cycle-accurate)的模型,因此,被設計的系統可以根據對實時性的要求建模。 一旦模型建立,硬件和軟件開發就可以同時啟動,這樣一來,既減少了開發所用的總資源,也縮短了開發周期。 傳統的“丟棄式”系統級模型在硬件和軟件實現階段就過時了,而VSP仍可繼續用于硬件驗證。由于這一優秀的模型是周期精確(cycle-accurate)的,因而RTL實現可以在任何時候換入 (swap in) 。而且,在RTL模型換入后, 為了進行性能分析或者更快地運行更大的軟件實體,還可以用原來的高級VSP模型將RTL模型換出。系統級測試范例是作為可執行系統規范的一部分生成的,然后,隨著軟硬件開發過程的進展,再由上至下地生成結構、模塊和單元測試。 最后一點,VSP的升級和分發也很容易。對那些在地域上分布較零散的開發團隊而言,通過網絡發送軟件模型也比運送電路板更簡單。這樣一來,工程師只有在最后的集成階段才需要真實的硬件和芯片。而且,由于軟硬件開發采用的是同一個虛擬系統原型,因此集成起來也更快和更容易。 虛擬系統原型在無線設計中的應用舉例 在單芯片系統的開發中,無線系統設計是最復雜也是競爭最激烈的領域。越來越多領先的無線設計公司開始利用虛擬系統原型技術提高設計生產力、縮短上市時間,并降低風險。以下介紹的無線設計在一塊芯片中容納了兩個處理器內核、一個DSP、多級存儲器、6種復雜的多層總線結構、一個實時操作系統、超過30個外設,外加超過兩百萬行代碼。這款手機的SoC具備GSM控制功能、多媒體功能、二維和三維圖形處理功能、相機接口,以及一系列諸如WiFi和USB之類的其他接口。 圖3:傳統的手機設計流程和利用虛擬系統原型的手機設計流程的比較 以前的項目結束后,這個設計小組決定必須改變傳統的“先硬件后軟件”的設計方法才能滿足日益縮短的上市時間需求。 采用VSP的結果 他們選擇了VaST Systems提供的虛擬系統原型方案,這不但是一個高性能的方案,而且絲毫無損設計精度。從系統架構階段直到軟硬件協同開發和驗證階段都可以采用同一個VaST處理器模型(虛擬系統原型的核心)。 根據配置的不同,VaST處理器模型在仿真單處理器時,在保持原有的周期、寄存器和定時精度的同時,速度在50到200MIPS之間;在仿真帶分層存儲器結構和多級總線的多內核系統時,在保持周期精度的同時速度可達10到100MIPS。 首先,系統架構師利用VSP進行系統架構研究和分析。VSP能夠運行基于應用的軟件,因此設計師可以據此考慮緩存的大小、處理器的處理能力等性能問題,同時還可以檢查出系統中潛在的資源共享、同步和總線帶寬問題。此外,利用VSP,設計小組還可以在真實系統的環境下檢查第三方IP。 有了VSP,軟件開發人員可以提前幾個月開始編寫系統中的關鍵函數(例如系統初始化程序、硬件抽象層、RTOS/OS及其相關的設備驅動程序、中間件軟件,甚至是嵌入式應用的代碼),然后再進入傳統的硬件、軟件開發流程。 在使用VSP之后,這家公司發現他們的競爭優勢得到了很大提升,于是決定繼續將VSP技術作為其首選設計方法。 本文小結 嵌入式系統不論從絕對數量還是從復雜度來說都在飛速地發展,而且在嵌入式系統中,通過軟件實現的功能越來越多。 傳統的先硬件后軟件的設計方法對這種復雜的嵌入式系統開發已不再適用。因為不但從質量還是從生產力的角度說,軟件和硬件都必須同時開發和驗證。 人們早期所作的用軟件來建模硬件系統的嘗試存在很多問題,包括要求設計師創建并維護模型的多個“角度”。要解決這些問題,硬件系統的軟件模型必需同時具備快速和準確兩個特點。具備了這兩個特點的模型就有可能既適用于系統架構階段,又能成為出色的軟硬件協同開發參考模型。 VaST Systems提供的技術和方法能夠在不損失速度和精度的前提下提供快速準確的虛擬處理器模型(嵌入式系統的核心)。已經有設計團隊采用了我們的系統原型,根據配置的不同,該模型在單處理器內核系統中的仿真速度可達50到 200 MIPS,在帶分層存儲器結構和多級總線的多內核系統中可達10到 100 MIPS。 圖2:利用VSP技術,軟件開發可以在硬件就緒前9個月甚至更早開始。 一家領先的手機嵌入式系統供應商采用了虛擬系統原型 技術,并在硬件就緒之前9個月就開始了軟件開發。用他們的話說,采用虛擬系統原型 技術可謂“用更少的成本和更短的開發時間設計出更好的產品”。 |