Linux下Cold Fire 片內(nèi)SRAM的應(yīng)用程序優(yōu)化設(shè)計(jì)
3.3 配置實(shí)時(shí)數(shù)據(jù)和函數(shù)到片內(nèi)SRAM中執(zhí)行
把用戶(hù)空間的實(shí)時(shí)數(shù)據(jù)和函數(shù)放置到片內(nèi)SRAM中執(zhí)行,由于處理器可以直接從片內(nèi)SRAM中存取數(shù)據(jù)和指令,減少了處理器存取數(shù)據(jù)和指令的周期,提高了程序的執(zhí)行效率。首先,放置實(shí)時(shí)數(shù)據(jù)到處理器片內(nèi)SRAM中。通過(guò)S_malloc和S_free函數(shù)來(lái)實(shí)現(xiàn):S_malloc用來(lái)申請(qǐng)?zhí)幚砥鲀?nèi)存空間,S_free用來(lái)對(duì)這一申請(qǐng)的空間進(jìn)行釋放。為了靈活使用定義的S_malloc和S_free函數(shù),需要定義一個(gè)結(jié)構(gòu)體和地址指針:
然后,通過(guò)動(dòng)態(tài)內(nèi)存分配方式可以把MP3解碼程序中的實(shí)時(shí)數(shù)據(jù)放入處理器內(nèi)存中執(zhí)行。加載函數(shù)到SRAM中與加載實(shí)時(shí)數(shù)據(jù)不同,需要通過(guò)指針和枚舉變量來(lái)實(shí)現(xiàn)。首先通過(guò)一個(gè)宏定義設(shè)置每個(gè)函數(shù)大小為4 KB,并使用枚舉變量為函數(shù)分配處理器片內(nèi)SRAM執(zhí)行的起始地址。
SRAMFUNC2=SRAM_BIG_FUNC1+BIG_FUNC_SIZE,…};
在定義完函數(shù)運(yùn)行時(shí)加載的存儲(chǔ)地址之后,把MP3解碼程序中的MPEGSUB_synthesis和imdct_1等函數(shù)通過(guò)字符串拷貝的方式復(fù)制到處理器片內(nèi)SRAM中執(zhí)行,經(jīng)過(guò)編譯、鏈接這些函數(shù)在執(zhí)行時(shí)將會(huì)加載到相應(yīng)的SRAM單元塊中。這樣就減少了處理器執(zhí)行解碼函數(shù)所需的時(shí)間,提高了程序的執(zhí)行效率。
4 性能測(cè)試與分析
為了驗(yàn)證基于處理器片內(nèi)SRAM的優(yōu)化設(shè)計(jì)方案,我們?cè)贛CF5329EVB開(kāi)發(fā)板上對(duì)經(jīng)該方案優(yōu)化過(guò)的MP3解碼器進(jìn)行了驗(yàn)證和測(cè)試。
首先,進(jìn)行功能測(cè)試,應(yīng)用MPEG組織推薦的測(cè)試碼流(128 kb/s,44.1 kHz)。選用一段音頻test.mp3,分別用標(biāo)準(zhǔn)浮點(diǎn)解碼器和本文設(shè)計(jì)的音頻解碼器進(jìn)行本地解碼測(cè)試,并對(duì)其解碼波形進(jìn)行比較分析。從圖4的波形比較可以看到,經(jīng)過(guò)本方案優(yōu)化設(shè)計(jì)的解碼器解碼波形與標(biāo)準(zhǔn)浮點(diǎn)解碼器基本無(wú)差別。經(jīng)人耳測(cè)試,無(wú)法辨別出兩者解碼輸出的差別。所以,從功能上講本文設(shè)計(jì)的基于片內(nèi)SRAM的應(yīng)用程序優(yōu)化方案是可行的。
其次,進(jìn)行性能測(cè)試。在測(cè)試平臺(tái)上分別對(duì)優(yōu)化前后解碼器的MIPS消耗數(shù)和空間消耗量進(jìn)行比較分析,如表2所列。
優(yōu)化前,解碼器MIPS消耗數(shù)為68 MIPS@240MHz;優(yōu)化后,解碼器MIPS消耗數(shù)為39.2 MIPS@240 MHz。在硬件條件允許的情況下,消耗的內(nèi)存雖然有一定的增加,但是經(jīng)過(guò)本文方案優(yōu)化后,解碼效率得到了很大的提高。
結(jié) 語(yǔ)
本文提出了在嵌入式Linux操作系統(tǒng)下基于處理器片內(nèi)SRAM的應(yīng)用程序優(yōu)化設(shè)計(jì)方案。以MP3解碼器為例,通過(guò)從配置音頻驅(qū)動(dòng)程序、實(shí)時(shí)數(shù)據(jù)和函數(shù)到處理器片內(nèi)SRAM中執(zhí)行來(lái)對(duì)解碼器進(jìn)行優(yōu)化設(shè)計(jì),并在ColdFire5329開(kāi)發(fā)平臺(tái)上成功實(shí)現(xiàn)該方案。優(yōu)化后的MP3播放器不僅解碼效率高,而且音質(zhì)好,完全可以在中低端處理器上實(shí)現(xiàn)實(shí)時(shí)播放,使低性能CPU處理復(fù)雜應(yīng)用程序成為可能。該方案有效地提高了應(yīng)用程序的執(zhí)行效率,降低了功耗,對(duì)嵌入式Linux應(yīng)用產(chǎn)品開(kāi)發(fā)有著重要參考價(jià)值。
評(píng)論