基于DSP系統(tǒng)模型建立和設(shè)定實(shí)現(xiàn)最佳模擬
嵌入式軟件發(fā)展需要對(duì)目標(biāo)架構(gòu)及其使用有著廣泛而透徹的認(rèn)識(shí)和瞭解。把嵌入式系統(tǒng)從概念轉(zhuǎn)化成能夠有效地在硬件環(huán)境中部署的高效能解決方案,需要若干個(gè)步驟。整個(gè)過(guò)程包括:分析、架構(gòu)搭建、評(píng)估、硬件支援、設(shè)計(jì)、編碼、除錯(cuò)、整合、驗(yàn)證和確認(rèn),過(guò)程中準(zhǔn)確度極為重要。硬件資源的使用效率低,或者是軟件沒(méi)有針對(duì)那些硬件資源進(jìn)行最佳化,都可能對(duì)性能帶來(lái)嚴(yán)重的影響。
CEVA-X系列采用的創(chuàng)新架構(gòu),充分利用可能的設(shè)計(jì)變數(shù)來(lái)控制整體性能。CEVA-X1620是CEVA-X核心系列的第一款產(chǎn)品,具有先進(jìn)的平行架構(gòu)(Parallel Architecture),在一個(gè)機(jī)器周期中可執(zhí)行多達(dá)八條指令。對(duì)于這類(lèi)先進(jìn)架構(gòu),高效能及有效的硬件資源使用更是格外重要。此外,CEVA-X整合了完整的存儲(chǔ)器系統(tǒng),負(fù)責(zé)階層(Hierarchy)存儲(chǔ)器管理,包括直接存儲(chǔ)器存?。―MA)控制器、板上(On Board)快取存儲(chǔ)器、寫(xiě)入緩沖器、內(nèi)部及外部存儲(chǔ)器、存儲(chǔ)器管理及仲裁器。利用這種廣泛的功能集,透過(guò)完整精確的模擬環(huán)境和先進(jìn)的設(shè)定(Profiling)能力,即可簡(jiǎn)易地最佳化軟件應(yīng)用。
透過(guò)模擬減少時(shí)間、降低成本、提高性能
對(duì)基于DSP/即時(shí)(Real Time)軟件發(fā)展而言,模擬環(huán)境非常重要,有幾項(xiàng)效益如下:
可見(jiàn)性/透明性
硬件內(nèi)部構(gòu)件和硬件邏輯的工作可被監(jiān)控,即使它們不是硬件介面的一部分,但是這在實(shí)際的硬件環(huán)境中往往是不可見(jiàn)的。瞭解背后的情況是解決問(wèn)題和提高性能的關(guān)鍵。
除錯(cuò)
模擬環(huán)境提供了硬件本身不支援的額外除錯(cuò)功能。因此,在只提供有限可見(jiàn)性的硬件上運(yùn)行所有程序(在缺乏精確模擬環(huán)境時(shí)),意味著不得不利用更多的資源及更長(zhǎng)的除錯(cuò)時(shí)間。
靈活性
亦即在提交給最終系統(tǒng)架構(gòu)之前檢查若干系統(tǒng)佈局(Layout)和場(chǎng)景(Scenario)的能力。要實(shí)現(xiàn)最佳性能,全都是利用硬件環(huán)境參數(shù)及運(yùn)行其上的軟件進(jìn)行反覆試驗(yàn)的結(jié)果。對(duì)于所選擇的具體裝置,不可能總是準(zhǔn)確預(yù)測(cè)到對(duì)系統(tǒng)的影響。
時(shí)間
在能夠執(zhí)行所有實(shí)際測(cè)試(run-time)之前,不用損失時(shí)間和增加特殊硬件費(fèi)用,就能實(shí)現(xiàn)平行硬件和軟件的開(kāi)發(fā)。
預(yù)先計(jì)畫(huà) 即時(shí)模擬
CEVA開(kāi)發(fā)出的模擬和設(shè)定環(huán)境,完全採(cǎi)用軟件建立模型,再加上廣泛的設(shè)定能力,可應(yīng)用于諸多設(shè)計(jì)領(lǐng)域,對(duì)系統(tǒng)架構(gòu)師和DSP軟件發(fā)展人員提供很大幫助。這種方法和環(huán)境可顯著地提高系統(tǒng)性能,減少開(kāi)發(fā)時(shí)間。全面的模型建立環(huán)境,意味著CEVA-X1620實(shí)現(xiàn)方案能夠以多種模式用于不同的開(kāi)發(fā)階段或不同開(kāi)發(fā)目的。
圖一:CEVA的模擬環(huán)境除錯(cuò)工具
ISS和CAS模擬模式
最初支援的是類(lèi)似于標(biāo)準(zhǔn)模擬解決方案的基本指令集模擬(Instruction Set Simulation,ISS)模式。在這種模式中,每一條指令都被當(dāng)作不可分割的階段來(lái)執(zhí)行。該模式執(zhí)行速度非???,便于軟件發(fā)展。
周期精確模擬(CAS)是更先進(jìn)的模擬模式。在這種模式中,架構(gòu)的行為被完全模擬,包括所有的管線級(jí)。在檢查精度或硬件驗(yàn)證時(shí),該模式對(duì)完整的系統(tǒng)模擬非常重要,屆時(shí)模擬器可以當(dāng)作內(nèi)核模組,很方便地模擬真實(shí)硬件的功能。除了周期精確能力之外,全部存儲(chǔ)器子系統(tǒng)(MSS)都被建立成模型,可對(duì)整個(gè)系統(tǒng)進(jìn)行共同模擬。這樣一來(lái),由于軟件與硬件的交互作用,便能夠?qū)崿F(xiàn)軟件行為的真實(shí)精確的模擬。因這種模式包括了所有的MSS模組,故可對(duì)所有的存儲(chǔ)器層次進(jìn)行除錯(cuò),包括快取存儲(chǔ)器、寫(xiě)入緩沖器、內(nèi)部外部存儲(chǔ)器??稍谀M中分析不同存儲(chǔ)器的布局情況,從而觀察在每一種情況下,在演算法執(zhí)行期間存儲(chǔ)器的存取和沖突情形。
完整設(shè)定 針對(duì)模擬環(huán)境自動(dòng)分析
除了上述的模擬能力之外,CEVA還提供針對(duì)C-level導(dǎo)向的應(yīng)用程式及存儲(chǔ)器的設(shè)定器。這種設(shè)定器可對(duì)整個(gè)模擬環(huán)境進(jìn)行自動(dòng)分析。
第一個(gè)功能是在基本的ISS模式中提供完整的C-level設(shè)定。經(jīng)由找出潛在的問(wèn)題,比如應(yīng)用核心、瓶頸和最耗費(fèi)程式碼執(zhí)行的部分,藉此有效提高軟件性能。這項(xiàng)工具能夠減少關(guān)鍵功能的時(shí)脈消耗和非關(guān)鍵功能的程式碼大小。應(yīng)用程式設(shè)定在C函數(shù)上來(lái)自動(dòng)執(zhí)行,不需要修改任何代碼,同時(shí)還可用于組合語(yǔ)言程式。
接下來(lái),應(yīng)用程式設(shè)定可依據(jù)CAS和MSS模擬器來(lái)被執(zhí)行,以便根據(jù)每一個(gè)功能的存儲(chǔ)器映射和存儲(chǔ)器沖突來(lái)獲得它真正的應(yīng)用性能。
最后,在應(yīng)用程式以CAS和MSS模式被設(shè)定及有關(guān)功能已被確定后,設(shè)定器給出了完整的存儲(chǔ)器使用資訊,其中包括快取存儲(chǔ)器使用和沖突、每項(xiàng)功能的停滯概要、代碼存儲(chǔ)器停滯、資料存儲(chǔ)器停滯、代碼存儲(chǔ)器沖突及資料存儲(chǔ)器沖突的相關(guān)資訊。這種全面的MSS設(shè)定資訊,可指導(dǎo)使用者針對(duì)應(yīng)用中的每一項(xiàng)特定功能最佳化存儲(chǔ)器使用。
目前CEVA的多媒體和音頻開(kāi)發(fā)團(tuán)隊(duì),已成功利用上述模型建立和設(shè)定流程來(lái)精簡(jiǎn)某些演算法功能的時(shí)脈消耗和程式碼,同時(shí)也協(xié)助采用此核心的客戶(hù)晶片組設(shè)計(jì)提升效能。