|
嵌入式合肥培訓_基于可配置處理器的嵌入式系統(tǒng)ESL設計需求,
基于可配置處理器的嵌入式系統(tǒng)ESL設計需求
近年來,越來越多的嵌入式系統(tǒng)和SoC開始轉(zhuǎn)向使用可配置處理器技術(shù),這樣既可以縮短產(chǎn)品開發(fā)周期,又可使設計更加靈活,甚至流片后仍可以修改部分功能。這要求處理器設計不僅能靈活重用已有設計,同時又要高效,對于特定應用具有很好的性能,并在符合性能、功耗前提下,能夠直接替代硬連線邏輯模塊。目前ESL工具對處理器的不同配置和擴展已經(jīng)有很好的支持,但針對于像多核SoC(MPSoC)這樣的復雜設計,ESL工具還很難滿足設計需求。我們可以將通常的ESL領(lǐng)域劃分成5個主要部分:
* 算法設計與實現(xiàn)
* 行為級綜合
* SoC架構(gòu)設計、仿真及分析
* 構(gòu)建虛擬系統(tǒng)原型
* 功能-架構(gòu)協(xié)同設計
算法設計工具允許用戶對算法進行描述、仿真,并且可以生成算法實現(xiàn)流程的代碼描述。比如Mathworks的Matlab和Simlink就是這種工具。目前大部分的工具是使用面向數(shù)據(jù)流或數(shù)據(jù)密集型算法進行建模,但是也有一些工具,如Mathworks的StateFlow,允許用戶使用有限狀態(tài)機對控制邏輯進行描述,并可實現(xiàn)自動生成C代碼。
行為級綜合工具是新一代基于C/C++或Systemc開發(fā)的工具,專門為滿足算法和軟件工程師而非硬件工程師的設計需要而開發(fā)的。由于使用C/C++,因此仿真速度比使用傳統(tǒng)的RTL方法有了10~1000倍的顯著提高。這也為系統(tǒng)硬件、軟件和算法的聯(lián)合仿真開辟了一條新道路。
用戶通過SoC的架構(gòu)設計工具使用傳統(tǒng)總線,標準嵌入式處理器庫(如MIPS或ARM),以及其他的一些組件(如存儲器,特殊的硬件模塊和外設等)來構(gòu)建SoC系統(tǒng)。之后便可以對整個設計進行仿真,通常使用SystemC或C/C++描述的指令集仿真器(ISS)和外圍硬件模塊聯(lián)合仿真。這樣便可分析得到一些系統(tǒng)級的特性,如總線負荷、競爭,內(nèi)存訪問,處理器負荷等。這些工具可以從CoWare,ARM,Synopsys等公司得到。
虛擬系統(tǒng)原型工具提供單核或多核SoC平臺的仿真模型,可以以數(shù)十MHz的速度仿真實際系統(tǒng)。系統(tǒng)架構(gòu)師需要在這樣的平臺上運行大量的測試序列,并得到系統(tǒng)性能分析的結(jié)果,軟件開發(fā)人員也可在接近實際的仿真模型中測試他們的嵌入式軟件。
但現(xiàn)今提供的商業(yè)ESL工具沒有一種可以在更早的階段幫助工程師決定系統(tǒng)的基礎架構(gòu),例如決定整個系統(tǒng)需要使用處理器的數(shù)量和種類;需要設計專門的通信機制還是使用傳統(tǒng)的分級總線;如何將應用程序劃分成多個任務,并分配到不同的處理器上運行;如何有效的探索各種可能的設計方案等,F(xiàn)在的SoC架構(gòu)設計工具和ISS要在體系架構(gòu)確定后才有用武之地。
今天的設計要比上世紀90年代末處理器加硬件模塊的結(jié)構(gòu)復雜許多。從最小、最簡單的手持無線設備到標準的、帶有語音視頻處理功能的蜂窩電話,直至非常復雜的電子設備,當今的技術(shù)已經(jīng)可以把多顆處理器、多片存儲器、復雜的片上通信總線網(wǎng)絡,以及由相當可觀的硬件模塊組成的協(xié)同工作子系統(tǒng)集成到一顆SoC中。同時應用軟件也愈加復雜,數(shù)百萬行代碼組成的系統(tǒng)軟件已是司空見慣了。因此,使用傳統(tǒng)方法進行體系結(jié)構(gòu)設計變得日益困難,這一切都使得ESL設計方法學變得越來越必要。尤其是當可配置處理器代替?zhèn)鹘y(tǒng)的固定指令集處理器,可能的設計方案越來越多時更是如此。
定制指令集處理器(ASIP)
基于特定應用定制指令集處理器(ASIP),這一概念在嵌入式系統(tǒng)設計中變得越來越重要。ASIP的設計方法學和開發(fā)工具也在學術(shù)界和IP設計領(lǐng)域被提及,并且許多商業(yè)的ESL工具已經(jīng)提供了類似的處理器和協(xié)處理器綜合工具。處理器的指令集大都采用一種中間形式進行描述。Tensilica提供的XPRES工具也提供這樣的功能,由Tensilica定義的TIE語言描述的,并且工程師可以應用這種語言,進一步手動優(yōu)化處理器的特定配置。
如果SoC的設計是要通過單顆CPU實現(xiàn),也許再增加一些硬件加速器來提升性能,那么現(xiàn)在的這些工具和設計方??就已經(jīng)足夠了。但事情并非如此簡單,如今已有很多的SoC設計使用了至少兩顆處理器(一顆是做控制的RISC,另一顆是進行數(shù)據(jù)處理的DSP),并且下一代SoC設計正朝著6~10顆處理器這一方向前進。在這種情況下,目前顯然缺乏設計方??和工具來支持這樣的設計。
使用可配置處理器搭建MPSoC系統(tǒng)
當使用多顆處理器尤其是使用可配置處理器來設計SoC時,將會遇到一些關(guān)鍵問題,包括:
嵌入式專業(yè)工資分析, 路由器嵌入式web, 龍芯嵌入式競賽, 嵌入式更改小米手環(huán), 嵌入式研發(fā)團隊介紹, 嵌入式asoc架構(gòu), 8槽嵌入式機箱, 嵌入式開發(fā)QT, 嵌入式陶瓷面盆, 嵌入式與裝修結(jié)合, 嵌入式系統(tǒng)軟件出口, 小學科學嵌入式教學, 充電樁嵌入式開發(fā), 計算機嵌入式畢業(yè)論文, 期末考嵌入式考卷, 學嵌入式軟件書, 嵌入式冷卻泵, 哈工大嵌入式, 南京嵌入式培訓學校, 嵌入式生產(chǎn)實踐總結(jié), 嵌入式數(shù)字鐘, 嵌入式無鑰匙拉手鎖,
* 一個或一組應用需要使用多少顆處理器
* 應如何配置、擴展這些處理器
* 處理器采用同構(gòu)方式還是異構(gòu)方式
* 處理器之間如何通信?采用標準總線,還是片上網(wǎng)絡(NoC),采用點到點方式,或是多種方式的組合。
* 如何選擇正確的并行模式,是流水線還是多線程?
* 工程師如何從應用程序中提取可并行執(zhí)行的任務?又怎樣分解他們?
* 在可配置處理器,多處理器,新的通信架構(gòu)以及內(nèi)存選擇等多種可供選擇的技術(shù)下,如何能得到多種設計方案并進行對比?
* 在90nm以下的工藝流程上,如何從10個處理器的設計擴展到100個,甚至1000個處理器?
如今EDA供應商所提供的ESL工具還不足以解決這些問題?膳渲锰幚砥鱅P廠商的工具提供了以下流程幫助工程師進行設計:從已有的應用程序或算法的軟件代碼開始;分解成多個同步處理進程;將各個進程分別映射到已經(jīng)優(yōu)化過的處理器上,這些處理器之間有著理想的通信網(wǎng)絡;迭代處理器定義和進程映射;分析處理器間通信網(wǎng)絡的需求;設計并行控制和調(diào)度模塊;涉及通信網(wǎng)絡(包括存儲器、總線、隊列等);分析結(jié)果并且迭代其他可能的配置;反復迭代優(yōu)化直至實現(xiàn)滿足設計需求的MPSoC系統(tǒng);實現(xiàn)軟件/硬件的具體設計。
這種自上至下、以應用需求為驅(qū)動的設計流程,在一些MPSoC子系統(tǒng)的應用設計中是非常適合的。尤其是當需要一個全新的功能,或者之前的系統(tǒng)設計方案不足以支持新標準應用程序的開發(fā)時,這種從設計需求和應用程序的特征出發(fā)進行設計的方法,往往可以得到最優(yōu)的解決方案。使用這種方法定義系統(tǒng)的體系架構(gòu)時,通過模擬、分析,并迭代得出使用處理器的種類和數(shù)量,內(nèi)存的層次結(jié)構(gòu)以及通信子系統(tǒng)等等是非常有效的。
MPSoC ESL設計方法需要提供很多功能,這些需要包含在集成開發(fā)環(huán)境(IDE)中,如系統(tǒng)建模,程序映射,各種設計方案對比,以及對可配置處理器的配置修改。
IDE是最引人注目的部分。Eclipsez作為一個開源軟件,對擴展已有的軟件工具、器件、調(diào)試軟件都有很好的支持,而這些功能可以使得MPSoC ESL設計在更抽象的層次上進行。比如可以在Eclipse中加入處理器創(chuàng)建、擴展的用戶配置界面,將用戶的配置轉(zhuǎn)化成基于某種特定語言描述的指令擴展,之后交給外部的特定編譯器進行編譯。因為這一擴展被編譯成RTL級的描述,在這種意義下可以使用IDE定制和實現(xiàn)一個軟硬件系統(tǒng)。
IDE軟件提供的項目編輯功能可以支持設計輸入、修改、映射到特定處理器等操作。同時還要能夠配置處理器、內(nèi)存、通信接口、總線以及外設等設備,用以搭建一個完整的系統(tǒng)。IDE還需要支持系統(tǒng)級仿真,可以裝載處理器的ISS,能夠裝載整個系統(tǒng)的仿真模型,靜態(tài)或動態(tài)的追蹤系統(tǒng)級上發(fā)生的事件,能統(tǒng)計處理器的執(zhí)行狀況并記錄數(shù)據(jù),并通過圖形界面向用戶顯示。并需提供分析工具,使得用戶可以方便得到傳輸延遲、資源競爭、處理器等待、內(nèi)存的使用狀況,以及處理器數(shù)據(jù)讀取的平衡狀況等系統(tǒng)級信息。
IP的參數(shù)(meta-data)和一些臨時信息需要使用標準的格式來存儲。近來XML格式被廣泛的使用到工具中,如Mentor Graphics的Platform Express等等;赬ML格式排版的文件很容易被擴展,解析和生成,所以是一種描述存儲系統(tǒng)架構(gòu)和參數(shù)的極具吸引力的方法。
有了系統(tǒng)架構(gòu)的信息,也有了標準格式的ISS模型,便可以生成系統(tǒng)仿真模型用于系統(tǒng)測試。許多已有的ISS支持在SystemC環(huán)境中運行,這樣便可以和總線模型、內(nèi)存模型、硬件模塊模型、外設模型等其他系統(tǒng)模型在事務級上進行互聯(lián)、仿真。TLM在ESL方??中是一個非常重要的概念,但到目前為止還沒有為TLM上的互操作定義標準。由于沒有一個可用的OSCI TLM標準,考慮到OSCI工作的不透明性質(zhì)和其缺乏一個發(fā)展的路線圖,ESL世界里的系統(tǒng)仿真必須繼續(xù)依賴于IP提供商提供的可供互聯(lián)的適配器和用戶自己對“事務”這一概念的理解。
快速功能仿真,有時也被稱為“虛擬系統(tǒng)原型”,是對周期精確型的TLM模型的重要補充。周期精確型的TLM模型允許對系統(tǒng)運行時的細節(jié)進行分析,每秒鐘只能運行數(shù)千個周期或再多一些,而快速功能仿真則可以數(shù)百萬個周期每秒的速度運行,這對軟件的開發(fā)有著特別的意義。
可配置處理器是高性能MPSoC系統(tǒng)的核心,通過擴展指令的自動生成技術(shù)使得在設計的最后階段仍可修改系統(tǒng)配置。通過在設計的早期階段自動生成的配置和擴展ISA,可將最初的任務映射到這個處理器上,當處理器發(fā)生變化,任務需要重新被映射時,該過程可以快速反復迭代進行。通過手動對設計進行改善,最終可以通過提高進程效率,從而降低處理器頻率,達到設計目標。自動生成的軟件工具鏈(包括編譯器、ISS、調(diào)試器和IDE擴展功能模塊)允許對處理器的每一個修改都可以反映到整體系統(tǒng)中。
本文小結(jié)
復雜的多顆可配置處理器組成的嵌入式系統(tǒng)設計對現(xiàn)今的ESL工具提出了更高的要求,這些需求似乎更像是應該由IP供應商來提供,而不是EDA工具廠商。雖然仍可以使用通用的ESL工具,但具體的流程和特定工具都將是與所使用的IP直接相關(guān)的。 |
|