帳號:
密碼:
最新動態
產業快訊
CTIMES / 文章 /
崁入式系統之驗證與最佳化
 

【作者: Jim Kenney】   2004年06月01日 星期二

瀏覽人次:【4685】

在一個崁入式系統中,同時設計與開發軟、硬體的挑戰性,尤其是在現今複雜如SoC的設計中,在現有的文獻中諸多記載。(圖一)是由Collet Internal研究單位所作之統計,根據受訪者表示67%第一次晶片的失敗是歸因於邏輯以及功能設計的錯誤,值得一提的是,韌體方面的錯誤佔整個第一次晶片失敗的13%強,暴露出軟體與硬體方面整合問題的嚴重性。


《圖一 第一次晶片的失敗率大多是由於邏輯與功能性設計的錯誤產生》
《圖一 第一次晶片的失敗率大多是由於邏輯與功能性設計的錯誤產生》

〈資料來源:Collet Intl. 2003 Survey〉


任何複雜的SoC設計在達到收斂前,都須經過反覆測試,然而由於設計平台的構建、驗證、分析以及再精簡都需要較長的時間,因而拉長了晶片的上市時間,使系統無法充分驗證,甚至造成了晶片的失敗。為了使產品能及時推出,事實上只是造成縮短設計流程,在驗證晶片未完全符合規格前就付諸製造,顯然是一個錯誤觀念,因為根據Electronic Market Forecasters(June 2003),大多數的崁入式系統運行太慢,而且70%的設計中,未達當初設定目標效能的10%以上。


事實上一個好的軟硬體設計與開發環境,能充分檢測出功能與韌體方面的問題,並加速設計的收斂性,而且此種軟硬體的設計環境,必須能解決與突破在現今軟硬體協同工具或整套工具上的缺點與限制。


可行的解決方案

目前市面上的EDA工具廠商可提供一個軟硬體協同驗證的整合環境,從設計平台的建立、驗證、分析與再精簡以期達到符合系統的規格。在此緊密結合的發展工具中,可以加速設計平台的建立、驗證、分析與再精簡以期提升晶片首次成功的機率。此種解決方案涵蓋了以下三種工具,每種工具都是針對晶片不同開發階段所遭遇的問題提出解決之道。


  • Platform Express:能迅速的建構一個以設計平台為中心的驗證環境。


  • Seamless CVE:能提供一個軟硬體協同驗證的環境,並提供高效能分析,以增進軟硬體分割的依據。


  • Seamless ASAP:Seamless ASAP(Application-Specific Assistant Processor)是在一個崁入式的系統中,能確認系統功能性的問題,並能自動轉換軟體的功能呼叫成硬體模塊,以期增加系統的效能。



《圖二 IC設計週期》
《圖二 IC設計週期》

〈註:在最初設計開發完成之後,一個崁入式系統需經過反覆測試才能達到設計收斂的目標〉


設計的建構與再精簡

透過圖形介面,當設計被修改時,驗證環境很快的會重新建立。設計者可以使用此工具來建立一個系統時,把每一個模塊視為是一個矽智財(IP),然後將不同的模塊作連接的動作,在使用此纇工具時總共有四個步驟,其中包含選擇矽智財、選擇相關參數、立化模塊與重建整個SoC平台。


選擇矽智財

從現有的處理器中,設計者開始選擇所需要的核心、記憶體與周邊裝置,這些都是由矽智財領先廠商或半導體製造商所提供。


《圖三 圖形介面設計工具範例》
《圖三 圖形介面設計工具範例》

〈註:Platform Express直接的GUI環境能讓設計者建立一個設計平台經由選擇相關參數與立化模塊來實現〉


選擇相關參數(Configuration)

設計者從元件庫內,依據規格選擇所需之矽智財,調整相關參數。


立化設計之模塊(Instantiation)

在調整完元件相關參數後,設計者開始藉著Platform Express的圖形介面,利用滑鼠將元件移至相關的匯流排上。在Platform Express中提供標準匯流排如AMBA和VCI等,並能連接不同的矽智財,依據使用者的設定,Platform Express還能顯示並具備硬體模塊的自動定址功能(memory mapping)。


建立完整的SoC設計平台

當使用者藉著圖形介面完成立化時,設計工具會自動地生成系統設計,並連接軟體驅動程式與激勵,此外也可自動呼叫驗證工具,以及產生並執行所需之角本(scripts),或產生硬體模擬工具如ModelSim的初始檔案及所有信號波形圖示等來執行硬體驗證。


在軟體方面,能自動連接驅動程式及硬體自我偵測程式,設計工具可以針對設計的周邊裝置和記憶體,產生C語言級的應用程式在軟硬體協同驗證平台上,透過呼叫軟體除錯器Xray對整個系統執行驗證。


《圖四 一致性記憶體伺服器作業流程》
《圖四 一致性記憶體伺服器作業流程》

〈註:記憶體讀/寫的動作透過「一致性記憶體伺服器」來存取以取代啟動硬體模擬器,可以提升整體系統效能〉


設計驗證與分析

當完成系統建構或修改時,Seamless軟硬體協同驗證的環境裡,在進入實體驗證階段之前,可以讓設計者產生一個虛擬的系統環境,使一個實際的硬體線路模擬環境能執行崁入式軟體,設計者可以提早偵測及修改軟硬體介面的錯誤,此能力可以減低在系統整合前所浮現出來的問題,藉著問題的修正,而使設計能夠收斂,Seamless並可使設計者對整個硬體的信號,有足夠的可觀測性及控制性,對軟體的原始代碼(包含C及組合語言)執行偵錯,並藉著軟體的最佳化來加速軟體的運行,提升整個系統的效能。


動態最佳化

在一個虛擬軟硬體協同驗證的環境中,主要核心的問題就是去執行足夠有意義的軟體,在軟體執行時,微處理器產生了數以萬計的記憶體存取動作,其中包含了指令的存取與記憶體的讀寫,而在一個純硬體模擬的環境中,以每秒執行10個或20個時鐘的速度,來執行數百萬個記憶體存取動作,可能需要數天時間,例如光是啟動一個Lynx的即時系統開機,以每秒執行二十個時鐘的速率來計算,就需要產生一千六百八十萬個記憶體存取動作。


Seamless維持了一個獨特的記憶體儲存機制稱為「一致性記憶體伺服器」,因此,處理器可以讓設計者依實際狀況選擇,是透過硬體模擬器來產生讀取信號,還是直接從記憶體伺服器中讀取資料,而不產生時脈,因而比實際狀況將近快了一萬倍左右,例如在一開始的驗證階段。很重要的就是先確認整個記憶體系統的動作無誤,以確保系統可以開機運行,一旦確立此種動作之後,就可以啟動記憶體最佳化功能,來節省實際的模擬時間,此種最佳化也可隨時打開或關閉,依照設計者對整個系統的掌握程度。


因為記憶體內容是存放在同一個位置(一致性記憶體伺服器內),因而無論是多少次存取方式的切換(從最佳化到非最佳化)可以保證資料的一致性,同時記憶體伺服器也支援多個處理器存取多個不同的記憶位址,Seamless所使用的記憶體為Denali模型,其本身提供了將近四千多種記憶體模型可供選擇,如無適當模型,設計者也可利用Seamless所支援的模型來修改,而本身的崁入式軟體則不需作任何更動。


所支援處理器種類

Seamless支援之處理器和數位信號處理器種類超過百種,最常用的有ARM、Ceva、IBM、LSI Logic、MIPS、Motorola、PMC、Renesas、Tensilica以及Texas Instrument,每種處理器的模型包含三部分,指令集模擬器(ISS)匯流排介面模型(BIM)和圖形介面的軟體除錯器(Software debugger),因此軟體可在ISS內運行,硬體無論是Verilog、VHDL或SystemC均可透過硬體模擬器來運行。


C語言的支援

Seamless內的C-Bridge支援用C語言來實現硬體模型,此特性乃是利用C模型的速度遠較HDL來的優越,Seamless提供簡單的API可以讓Seamless與C模型連接在一起,設計者可以使用全部C語言模型或是部份以C語言,部份以HDL的混何方式來進行模擬.在C語言部份支援C,C++以及SystemC。


當設計者選擇使用C來模擬部份或整個系統時,最後還是要轉成HDL然後再驗證整個系統,Seamless的C-Bridge是一轉換工具,協助客戶來度過此種變遷,因為它能使C與HDL整合在一起,而且設計者可以依據實際狀況,對某些模塊來作切換,而僅在Seamless中簡單的重新配置記憶體即可。


高效能分析

內文:Seamless另一項特色就是提供以圖形來顯示系統效能的分析,此種功能使設計者了解系統的瓶頸,和設計改變後對於整個系統的影響,Seamless能夠圖示軟體執行後,每個模塊佔整個執行時間的分佈、記憶體存取的分析(包含Cache分析)、匯流排上的交易狀況以及匯流排上的仲裁時間。


Seamless中的軟體數據圖表,能夠統計和分析軟體執行結果,包含每一個軟體功能呼叫執行的順序及時間,或是以一個長條圖來標示每一個功能呼叫佔整個執行時間的百分比,Gantt圖表可以讓設計者一目了然,重要的功能呼叫是否在正確時間被執行、幫助和預防錯誤的產生,例如資料傳輸的不充分,或是漏掉的封包等等,了解某一功能呼叫佔用最多執行時間,有助於設計者增進這些功能呼叫的效率,以提升整個系統運作的效能。其中的解決方案不外乎重新改寫C語言,而以組合語言的型式來表現,或是將軟體的功能移至硬體。


顯示記憶體存取的圖表對照時間軸的圖表,能夠顯示出記憶體存取的峰值,以便於平衡記憶體的使用率,此種圖形也有助於顯示處理器從記憶體的讀寫與汲取指令以及分析指令cache與資料cache的失誤與擊中,設計者可以使用此項資料來決定cache的大小和正確的置換cache對策,以減低處理器對主記憶體的存取,記憶體存取圖形與軟體數據圖表可以交叉運用,呈現韌體執行與記憶體瓶頸的關聯性,到底當時是哪個軟體模塊來讀取此記憶體。


Seamless的匯流排分析,能使設計者觀測到匯流排的負載與仲裁,在今日的SoC設計裡,匯流排的頻寬是由處理器、DMA控制器、週邊裝置與資料搜尋引擎等的競爭使用權來達到某一平衡,(圖五)顯示匯流排使用率對照時間軸的圖表,當使用率達到百分之百時,表示匯流排頻寬全部被佔用,假如此種情況發生時,設計者可能必須修改系統,藉著軟體數據圖表來決定是何種軟體功能呼叫被執行,以解除匯流排的瓶頸。


匯流排的仲裁者有對匯流排的控制權,Seamless能以圖表來顯示一個匯流排主控器提出匯流排的使用權與得到控制權間的等待時間,設計者可以使用此項資訊來選擇更有效率的仲裁機制,與系統軟體功能呼叫的優先順序。



《圖五 匯流排使用率圖表來顯示匯流排頻寬的瓶頸》
《圖五 匯流排使用率圖表來顯示匯流排頻寬的瓶頸》

《圖六 Gantt圖表顯示軟體功能呼叫的順序與時間》
《圖六 Gantt圖表顯示軟體功能呼叫的順序與時間》

《圖七 顯示每個軟體功能呼叫所佔處理器執行時間比率之統計圖表》
《圖七 顯示每個軟體功能呼叫所佔處理器執行時間比率之統計圖表》

設計的分析與再精簡

@內文;當設計者使用Seamless的高效能分析的功能來評估整個崁入式系統時,也許可能會決定將一個或數個軟體的功能移致硬體來實現,在決定轉換之前,設計者必須先考慮以下幾個問題,其中應包含:


  • ●與軟體功能比較,以硬體實現需要多少個時脈?


  • ●當處理器與此硬體模塊溝通時的瓶頸有多少?


  • ●新增加的硬體模塊要佔多少額外面積?


  • ●當轉換成硬體時,效能的改進有多少?



Seamless ASAP能協助設計者回答以上的問題,ASAP能自動的將軟體的模塊轉換成硬體來實現(產生一個或數個的硬體處理器),來提高系統的整體效能。


預估硬體處理器對系統所造成之衝擊

ASAP的預估器能顯示轉換後的效能,無需經由冗長的再模擬的時間,其預估的項目包含硬體處理器的預估面積、執行該項功能所需之時間與對整個系統所造成之負載影響包含處理器與匯流排。基於以上評估,設計者來決定使用ASAP將軟體功能轉成硬體功能是否得宜。


產生硬體處理器

ASAP將一個以ANSI C實現的功能轉換成一個可以綜合的HDL,Seamless ASAP的硬體產生器,幾乎支援所有崁入式系統中常用ANSI C的語法,與坊間的解決方案不同,大多數的崁入式C語言在本系統中,毋需經過特殊的修改或增加額外的語法。


產生適當的軟/硬體介面

在產生硬體處理器之後,ASAP能再生成新的軟體驅動程式以取代相對應之原軟體,此驅動程式不僅修改了原軟體,並呼叫新硬體產生之暫存器,ASAP同時也可產生工業標準的匯流排介面,例如AMBA或SRAM的介面,讓設計者將此硬體處理器整合至主要的匯流排,或區域匯流排或輔助運算器的匯流排中。


產生Testbench

為了能驗證硬體處理器的功能,ASAP能自動產生HDL的testbench──其中包含激勵與預期結果,藉此testbench來驗證新產生之HDL的匯流排介面,與硬體處理器之功能,並利用之前所描述之高效能分析之步驟,所有的軟體功能呼叫都會被一一執行,與硬體模擬器中執行該功能的結果比較,以確認軟體與硬體的模擬結果是否正確,給予簡單的通過或失敗的結果。


Seamless ASAP也能將新產生的硬體加入至Platform Express的IP庫中供日後使用,(圖八)顯示使用ASAP後效能的增進,在此例中四項功能從軟體中移致硬體,分別是由人工轉換或由ASAP產生,結果顯示使用人工轉換僅較ASAP產生的稍好(速度約差6.4%;面積約差14.8%),但顯然需要較長開發時間(六個月vs.一星期)。


《圖八 評估案例顯示ASAP自動產生之執行結果與人工轉換之比較》
《圖八 評估案例顯示ASAP自動產生之執行結果與人工轉換之比較》

結語

整合上述三種工具,並與其他驗證工具相結合,提供設計者一個直接與綜合的環境,其中包含建構設計平台、驗證與分析來精簡一個崁入式系統,設計工具廠商藉著提供以上工具來解決在開發軟體/硬體時各階段所遭遇的問題,並加速系統開發時程,以期減低設計風險,使設計能盡善盡美。


相關文章
EDA進化中!
先進製程推升算力需求 雲端EDA帶來靈活性與彈性
機器學習實現AI與EDA的完美匹配
搶佔2014行動商機
IC卡晶片的發展趨勢與機會
相關討論
  相關新聞
» Bourns推出全新高效能 超緊湊型氣體放電管 (GDT) 浪湧保護解決方案
» 日本SEMICON JAPAN登場 台日專家跨國分享半導體與AI應用
» Nordic Thingy:91 X平臺簡化蜂巢式物聯網和Wi-Fi定位應用的原型開發
» 豪威集團推出用於存在檢測、人臉辨識和常開功能的超小尺寸感測器
» ST推廣智慧感測器與碳化矽發展 強化於AI與能源應用價值


刊登廣告 新聞信箱 讀者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 遠播資訊股份有限公司版權所有 Powered by O3  v3.20.2048.18.119.132.80
地址:台北數位產業園區(digiBlock Taipei) 103台北市大同區承德路三段287-2號A棟204室
電話 (02)2585-5526 #0 轉接至總機 /  E-Mail: webmaster@ctimes.com.tw