日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]在SoC設(shè)計中用SystemC虛擬平臺預(yù)覽USB的性能

現(xiàn)在的程序員和系統(tǒng)架構(gòu)師有比以往更多的軟件可用于SoC(單片系統(tǒng))設(shè)計,但也面臨著一個日益困擾他們的問題:如何在設(shè)計前期,在硅片拿到手以前評估和優(yōu)化軟件的性能。為解決這個問題,程序員們轉(zhuǎn)向虛擬平臺,這種平臺采用軟件來對目標硬件的架構(gòu)和功能建模。

當設(shè)計師們小心地在其它軟件工具幫助下完成這個任務(wù)時,這些平臺被證明是有效的方法,可以對很多重要性能的度量做出早期評估,如有關(guān)嵌入軟件功能好壞及其與現(xiàn)有硬件的互相影響。虛擬平臺可以預(yù)測CPU效率、數(shù)據(jù)傳輸率以及緩存失中率、中斷等待時間、功能性熱點,以及其它性能的度量。

為了便于理解和體會虛擬平臺的性質(zhì)與價值,考慮這樣一個例子:評估一個USB系統(tǒng)軟件棧的性能。開發(fā)者的選擇是有相當?shù)睦碛?,因為USB2.0有480Mbps的傳輸速率,是承載實時音、視頻數(shù)據(jù)的常見選擇。因此,USB在多媒體產(chǎn)品中得到日益廣泛的應(yīng)用,如機頂盒和手機。

由于USB的互動中包含有復(fù)雜的協(xié)議和軟、硬件之間大量的相互依賴,因此特別需要這種平臺的幫助。這種情況下,不僅要求軟件架構(gòu)盡早確認USB系統(tǒng)軟件,而且要估算出軟件在CPU上的負載,

此外還有中斷等待時間的影響,從而保證USB確實是一個可行的選擇。

這種性能預(yù)估要求虛擬平臺能夠?qū)嶋H硬件功能,包括處理器、緩存和系統(tǒng)內(nèi)存、USB外設(shè)、USBEHCI(擴展型主控制器接口),以及USB設(shè)備等,建立非常接近的模型。此外,還需要一個剖析工具來尋找軟件棧中的功能熱點,精確地預(yù)測出完成功能所需時間。開發(fā)人員用平臺得到的結(jié)果,與理論預(yù)測值做對照調(diào)整,而平臺也可以檢驗USB棧在實際硬件上實現(xiàn)性能的穩(wěn)定性。另外,當開發(fā)人員修改軟件棧時,平臺還可以精確地反映出性能的變化。

在本例中,設(shè)計師想出一種評估USB系統(tǒng)軟件棧性能的方法,該軟件棧運行在嵌入機頂盒芯片中的DVR(數(shù)字視頻錄像機)子系統(tǒng)中。DVR含有一個錄/放音、視頻數(shù)據(jù)流的USB硬盤驅(qū)動器。USB軟件棧包括一個單線程DVR應(yīng)用實例,它用驅(qū)動器完成一系列讀、寫操作。

功能平臺非常詳盡地模仿DVR硬件的運作,揭示出重要的時序參數(shù)。特別是該平臺建立了一個USB主控制器、硬盤驅(qū)動器和系統(tǒng)內(nèi)存與緩存的模型。平臺有一個新穎的功能,它含有一個用SystemC寫成的事務(wù)級模型,以此證明該方案能夠用于建立評估復(fù)雜嵌入軟件的虛擬平臺。開發(fā)人員一般采用RTL(寄存器傳輸級)模型建立系統(tǒng)硬件的模型,與事務(wù)級模型相比,這種方法的抽象層次較低。

平臺設(shè)置

虛擬平臺包括一個USB2.0EHCI、一個USB硬盤驅(qū)動器、一個緩存仿真器、一個主處理器指令集仿真器,以及系統(tǒng)內(nèi)存。USB2.0EHCI模仿主控制器的功能,提供480Mbps數(shù)據(jù)速率下的精確時序值,以及基于內(nèi)存模型的內(nèi)存訪問時間,還有EHCI寄存器的讀、寫時間。EHCI亦作為一個DMA主控,可以不通過緩存訪問系統(tǒng)內(nèi)存。

為了跟蹤所有的指令與數(shù)據(jù)存取,USB軟件棧運行在一個在事務(wù)級硬件模型上建立的指令集仿真器上。指令與數(shù)據(jù)記錄通過虛擬平臺,測量CPU使用率、緩存失中率以及中斷等待時間等。另外,用一個高度可配置、可擴展和模塊化的剖析工具Flexperf判別功能熱點,幫助完成軟件棧的排錯。

系統(tǒng)在尋址硬盤驅(qū)動器時是按照劃分為扇區(qū)的I/O文件,符合海量存儲設(shè)備規(guī)格,包括USB實施者論壇的“bulk-only”規(guī)格。于是,它可以通過端點0執(zhí)行所有標準的設(shè)備請求。它還可以執(zhí)行一個SCSI命令的子集,通過端點1和2與DVR相關(guān)。

緩存仿真器對一個可配置的緩存建模,該仿真器包括一個環(huán)繞式處理程序Dinero、一個追蹤驅(qū)動的開放源緩存仿真器。作為系統(tǒng)處理器,圍繞指令集仿真器的處理程序為一個216MHzSTMicroelectronicsC2CPU內(nèi)核建模。仿真器將處理器的內(nèi)存訪問轉(zhuǎn)換為事務(wù)級模型。開發(fā)者將系統(tǒng)內(nèi)存建模為一個RAM陣列,所有模型的連接都通過一個大體上基于ARMAHB(先進高性能總線)的精確事務(wù)通道和一個開發(fā)者在USB上松散建模的通道。

調(diào)用該平臺對軟件性能參數(shù)的評估是一個分兩步走的過程(圖1)。第一步,USB棧運行在ST20指令集仿真器上。這個過程生成一個追蹤文件,它記錄了所有的指令內(nèi)存和數(shù)據(jù)內(nèi)存訪問,以及硬件啟動的任何中斷。第二步,有一個流量發(fā)生器對追蹤文件進行語法分析,并在一個精確事務(wù)的通道上生成等效的事務(wù)級操作。

兩步走的評估過程體現(xiàn)出芯片設(shè)計的一般步驟。在第一步中,設(shè)計師將設(shè)計分解為獨立的功能塊,它們并行運行實現(xiàn)所需的應(yīng)用功能。因此,第一個平臺只包括功能模型,而沒有參考時間。設(shè)計師用相同的功能塊,可以有不同的實現(xiàn)方法(主要是時序和性能模型),這就是第二步完成的任務(wù)。這個方案可以讓用戶使用一組相同的基準功能,嘗試各種微架構(gòu)的實現(xiàn)。

結(jié)果就是一個基于SystemC的公共平臺,它沒有外部依賴性,SystemC仿真器的時間作為評估性能的基準。同樣,系統(tǒng)將指令與數(shù)據(jù)內(nèi)存抽象成為SystemC事務(wù)級模型,準確地仿真訪問時間。這種兩步走方案還簡化了緩存仿真器與流量發(fā)生器的連接,這是一種在硬件上對緩存影響建模的方法。

性能參數(shù)

虛擬平臺生成的性能值是從運行應(yīng)用程序的SystemC仿真器上獲得的總時間,相當于在實際硬件上運行的總時間。應(yīng)用程序的運行時間依次與指令訪問時間以及與EHCI、緩存和其它功能相關(guān)的等待時間有關(guān)。從這些值中,可以確定重要的性能度量,如CPU占用率、數(shù)據(jù)傳輸率、緩存失中率,以及中斷的次數(shù)。

當然,CPU占用率是評估棧性能的最重要參數(shù),它是CPU在執(zhí)行軟件棧時所花費時間的百分比。它表示CPU無法運行其它應(yīng)用程序的時間。但是,要確定CPU占用率,必須首先確定并減掉CPU空閑時間??臻e時間是軟件棧在空閑線

程上花費的時間,此時它等待一個硬件產(chǎn)生的中斷。這個空閑時間發(fā)生在樣例DRV應(yīng)用程序向硬盤提交一個數(shù)據(jù)塊或從硬盤讀出一個數(shù)據(jù)塊以后,但在開始下一個傳輸?shù)挠布袛喟l(fā)生之前。必須將此時間從總時間中減去,因為嚴格來說,在這個時間內(nèi),USB軟件棧并不占用CPU。

[!--empirenews.page--]

在這個點上,可以調(diào)用Flexperf剖析工具來測量CPU花費在空閑線程上的時間。將輸入追蹤文件以及一個映像文件饋送給剖析工具,前者中包含程序計數(shù)器和相應(yīng)的時間。映像文件定義了與空閑線程功能有關(guān)的起始和終止地址。從這些輸入內(nèi)容中,剖析工具可以計算出在空閑線程上花費的時間,接下來就可以從CPU時間中減去這些空閑時間,獲得準確的CPU占用率數(shù)字。

還可以將通過USB的總數(shù)據(jù)量(包括控制、批量和協(xié)議信息)除以運行應(yīng)用程序的總仿真時間,計算出通過USB的數(shù)據(jù)傳輸率。但是,USB2.0的480Mbps速率只是一個理論最大值。由于協(xié)議開銷問題加上從系統(tǒng)內(nèi)存獲取計劃表和數(shù)據(jù)也要消耗時間,尤其是當EHCI緩存較小時,所以實際的數(shù)據(jù)速率要低得多。軟件將數(shù)據(jù)提交給硬件的速率亦會限制數(shù)據(jù)的速率。

當你提供有內(nèi)存流量信息的Dinero開放源緩存仿真器時,它會生成有關(guān)指令、數(shù)據(jù)和總失中率的統(tǒng)計數(shù)字。從這個數(shù)據(jù)中,可以確定最佳的緩存配置。為了在ST20主處理器追蹤文件中記錄中斷的次數(shù),可以累計ST20回繞式處理器捕獲的中斷數(shù)。從這些基本性能數(shù)字可以得到一些其它參數(shù),包括指令集仿真器報告的執(zhí)行指令總數(shù)、CPU的執(zhí)行時間(總時間減去空閑時間)、CPU的總指令執(zhí)行時間,以及總CPU讀、寫時間。

本例中虛擬平臺獲得的性能結(jié)果是超出了本文討論范圍的數(shù)學(xué)推導(dǎo)。但是,這些推導(dǎo)的內(nèi)容包含最大SCSI緩沖、讀/寫操作時傳輸?shù)臄?shù)據(jù)量、系統(tǒng)軟件為中斷服務(wù)花費的時間,以及處理與硬盤驅(qū)動器有關(guān)的SCSI命令的時間等之間的關(guān)系。

使用虛擬平臺,可以得到塊的大小、總數(shù)據(jù)傳輸量、緩存參數(shù)、數(shù)據(jù)傳輸機制、棧尺寸、CPU占用,以及其它重要的性能數(shù)據(jù)等結(jié)果。通過虛擬平臺的預(yù)測與硬件結(jié)合起來,可以極大地簡化開發(fā)確定過程。

例如,虛擬平臺表明增加塊大小(即每次讀、寫操作時傳輸?shù)臄?shù)據(jù)量)可以降低CPU占用率(表1)。但是,塊越大,降低的程度越少。平臺亦預(yù)測CPU使用率會隨數(shù)據(jù)傳輸量的增加而下降。平臺作這些預(yù)測的前提是采用216MHz的ST20-C2內(nèi)核,10ns緩存命中等待時間,160ns的單字內(nèi)存訪問時間,以及可在等待硬件中斷前緩沖最多256kB數(shù)據(jù)。該平臺亦假定緩存模型含有8kB、雙向、組合式指令與數(shù)據(jù)緩存,每個有16B的塊。另外,它還假定USB的傳輸速率為80MB/s。

出人意料的是,平臺指出緩存大小對USB棧的性能影響不大。一次實驗改變了主要緩存的參數(shù),如大小、組合以及塊大小。雖然不同參數(shù)對整個應(yīng)用程序的請求丟失有很大的差異,但對CPU占用率的影響不明顯。在這個仿真階段,用初始化的CPU時間(包括設(shè)備計數(shù))減去運行應(yīng)用程序的總CPU時間,得到CPU占用率。結(jié)果清楚地顯示,硬盤的讀、寫操作包括對指令內(nèi)存和數(shù)據(jù)內(nèi)存的正常訪問,即由于讀、寫操作在時間和空間上的高度本地化,對硬盤驅(qū)動的丟失的總次數(shù)近似為恒定,而與緩存參數(shù)的變化無關(guān)。

表2總結(jié)了不同緩存大小的結(jié)果。在所有情況下(組合為2,塊尺寸為16kB),指令緩存和數(shù)據(jù)緩存都是一樣的。表3顯示同為16kB、8kB緩存不同組合值的結(jié)果。表4則是組合為2,塊大小為8kB緩存的結(jié)果。

這些結(jié)果均假定有一個5ns的緩存命中等待時間,四個字訪問,每個字花費時間為160ns。

緩存大小對CPU效率的影響很小,與此相反,EHCI將數(shù)據(jù)移入、移出內(nèi)存的方式之間則有很大不同。拷貝語義學(xué)(copy-semantics)方法將數(shù)據(jù)從緩存區(qū)移到一個EHCI可訪問的非緩存區(qū)。非拷貝語義學(xué)(Noncopysemantics)則假設(shè)EHCI可以訪問包含所需數(shù)據(jù)的內(nèi)存區(qū)。在這種方法中,內(nèi)存區(qū)是未經(jīng)緩存的,傳給EHCI的是一個指向內(nèi)存位置的直接指針。

這兩種機制的性能數(shù)字有著很大的差異,因為在非拷貝語義學(xué)情況下,不用將數(shù)據(jù)從一個內(nèi)存區(qū)拷貝到另一個內(nèi)存區(qū),這就省去了所有的移動指令,當移動大量數(shù)據(jù)時極大地減輕了工作量。例如,當重復(fù)64次以256kB傳送32MB數(shù)據(jù)時,虛擬平臺顯示的數(shù)據(jù)速率和CPU占用率,拷貝語義學(xué)方式分別為5051kB/s和6%,而非拷貝語義學(xué)方式分別為7700kB/s和40%。

在評估棧大小的效果時,一般預(yù)測認為較小的棧會減少CPU占用,而虛擬平臺得到與直覺相反的結(jié)果(表5)。除CPU占用以外,表中顯示較大的棧還會增加一個應(yīng)用程序執(zhí)行的指令數(shù)。

但是,修改堆的大小時結(jié)果保持不變。(堆是一個內(nèi)存區(qū),應(yīng)用軟件可以作直接分配和解除分配。與之相比,棧的管理是通過編譯器,而不是應(yīng)用程序。)這些結(jié)果令人驚訝,因為棧是受到編譯器控制,它的大小應(yīng)該沒有關(guān)系,而在其他情況下,表現(xiàn)為216MHz處理器時鐘速率和10MB/s數(shù)據(jù)速率。

雖然虛擬平臺得到了有希望的結(jié)果,但它仍與硬件的工作有不一致的地方。例如,ST20處理器流量發(fā)生器的模型過于簡單。它假定每條指令的執(zhí)行階段都是一個恒定的平均時間,但事實并不總是這樣。此外,流量發(fā)生器建模時既無處理器流水線停頓也無任何流水線停頓的情況。不過,這些因素之間有些相互抵消,得到的結(jié)果還算準確。

現(xiàn)在的工作重點集中在建立更復(fù)雜平臺和開發(fā)無縫的方法上,用于評估任何軟件棧的性能。例如,正在進行的是虛擬平臺與Flexperf這種剖析工具相結(jié)合,使軟件編程人員和系統(tǒng)架構(gòu)師有一個統(tǒng)一的方法,能夠評估并增強嵌入式代碼的性能。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉