嵌入式系統(tǒng)代碼壓縮技術(shù)的研究
發(fā)布時(shí)間:2020-05-30 07:02
【摘要】:在消費(fèi)電子市場(chǎng)需求的有力推動(dòng)下,嵌入式系統(tǒng)的功能日益強(qiáng)大,其軟件開發(fā)的復(fù)雜程度也隨之越來(lái)越高,嵌入式軟件的代碼量以平均每?jī)赡陼r(shí)間翻一番的速度增長(zhǎng)。由于嵌入式系統(tǒng)在成本、體積、功耗等多方面受到制約,代碼量的增長(zhǎng)將成為嵌入式系統(tǒng)發(fā)展的一個(gè)瓶頸。因此,代碼壓縮技術(shù)將成為今后嵌入式系統(tǒng)發(fā)展的一項(xiàng)關(guān)鍵技術(shù)。 本文從基本的數(shù)據(jù)壓縮理論入手,分析了典型的數(shù)據(jù)壓縮和代碼壓縮的各自特點(diǎn)以及它們之間的內(nèi)在聯(lián)系與區(qū)別,結(jié)合對(duì)當(dāng)今代碼壓縮技術(shù)的發(fā)展現(xiàn)狀的介紹,總結(jié)出了代碼壓縮技術(shù)的評(píng)價(jià)標(biāo)準(zhǔn)。基于對(duì)ARMv4指令集的研究分析,我們提出了通過(guò)字典壓縮的方法對(duì)程序代碼進(jìn)行壓縮以減小其冗余度的方案。我們對(duì)字典壓縮的問(wèn)題進(jìn)行了數(shù)學(xué)抽象和描述,進(jìn)而對(duì)字典壓縮方案中的各種參數(shù)的設(shè)計(jì)進(jìn)行了數(shù)學(xué)分析以論證所采用的代碼壓縮方案的正確性與合理性。本文對(duì)我們所設(shè)計(jì)的代碼壓縮方案的步驟、代碼壓縮中的難點(diǎn)問(wèn)題的解決等細(xì)節(jié)以及主要的算法流程均做了詳盡的敘述。最終,使用我們所設(shè)計(jì)的代碼壓縮方案,我們對(duì)MiBench基準(zhǔn)測(cè)試程序中的6個(gè)典型程序進(jìn)行了壓縮實(shí)驗(yàn),獲得了平均81.1%的壓縮比。 在代碼壓縮方案設(shè)計(jì)的基礎(chǔ)上,我們對(duì)解壓縮系統(tǒng)的硬件設(shè)計(jì)進(jìn)行了討論,并對(duì)解壓縮系統(tǒng)中的主要部分提出了優(yōu)化的硬件設(shè)計(jì)方案。為了驗(yàn)證代碼壓縮方案的正確性,我們搭建了一個(gè)系統(tǒng)驗(yàn)證平臺(tái),其中包括:Verilog HDL描述的解壓縮模塊和壓縮指令內(nèi)存模型,以及PLI形式的ARM指令模擬器。通過(guò)與ARM公司的標(biāo)準(zhǔn)模擬器ARMulator的輸出結(jié)果進(jìn)行對(duì)比,我們完成了驗(yàn)證系統(tǒng)的自動(dòng)化測(cè)試。 最后,我們對(duì)壓縮實(shí)驗(yàn)的結(jié)果進(jìn)行了深入的分析研究,總結(jié)了影響代碼壓縮的因素,并對(duì)未來(lái)工作做了進(jìn)一步探討。
【圖文】:
圖3.10MIBeneh基準(zhǔn)測(cè)試程序我們選取了基準(zhǔn)測(cè)試程序MIBench中的sha、eer32、dijksart、rijndael、arweaudio(dapem.eneode)、wardaudio(adpem.deeode)進(jìn)行測(cè)試,指令集為ARMv4,編譯器、鏈接器均為ADsl.2中的amrcc和amrlikn。實(shí)驗(yàn)結(jié)果如圖3.fl所示:
圖3.11MIBnehc程序指令重復(fù)性統(tǒng)計(jì)從6個(gè)基準(zhǔn)測(cè)試程序的分析結(jié)果中可以看出:二進(jìn)制指令代碼中僅僅出現(xiàn)一次的指令只占全部程序的40%左右,在rijdael中這一比例更是小到24%左右。同Leufgyr等人基于sPEcc創(chuàng)T95的指令重復(fù)性研究相比,,我們所采用的MBInehc典型程序的指令重復(fù)性并不明顯,這主要是由于我們所使用的指令集和編譯器不同所造成的。ARMv4指令集本身是針對(duì)嵌入式系統(tǒng)所設(shè)計(jì)的,其代碼密度比PowerPC的指令集要高,所以指令的冗余度較小。而對(duì)于編譯器、鏈接器以及鏈接程序庫(kù),ADS對(duì)代碼大小做過(guò)特別的優(yōu)化,其生成的代碼在密度上要優(yōu)于Gcc生成的代碼。BunroDeBusl’刀等人在其研究過(guò)程中對(duì)比過(guò)ADs與GCC生成的代碼大小,其結(jié)果表明:ADS生成的二進(jìn)制代碼平均要比GCC生成的代碼小320KB,這主要是因?yàn)锳DS的編譯器編譯出的代碼非常緊湊,且ADS的標(biāo)準(zhǔn)程序庫(kù)也是經(jīng)過(guò)特別優(yōu)化的。
【學(xué)位授予單位】:浙江大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2006
【分類號(hào)】:TP368.1
本文編號(hào):2687765
【圖文】:
圖3.10MIBeneh基準(zhǔn)測(cè)試程序我們選取了基準(zhǔn)測(cè)試程序MIBench中的sha、eer32、dijksart、rijndael、arweaudio(dapem.eneode)、wardaudio(adpem.deeode)進(jìn)行測(cè)試,指令集為ARMv4,編譯器、鏈接器均為ADsl.2中的amrcc和amrlikn。實(shí)驗(yàn)結(jié)果如圖3.fl所示:
圖3.11MIBnehc程序指令重復(fù)性統(tǒng)計(jì)從6個(gè)基準(zhǔn)測(cè)試程序的分析結(jié)果中可以看出:二進(jìn)制指令代碼中僅僅出現(xiàn)一次的指令只占全部程序的40%左右,在rijdael中這一比例更是小到24%左右。同Leufgyr等人基于sPEcc創(chuàng)T95的指令重復(fù)性研究相比,,我們所采用的MBInehc典型程序的指令重復(fù)性并不明顯,這主要是由于我們所使用的指令集和編譯器不同所造成的。ARMv4指令集本身是針對(duì)嵌入式系統(tǒng)所設(shè)計(jì)的,其代碼密度比PowerPC的指令集要高,所以指令的冗余度較小。而對(duì)于編譯器、鏈接器以及鏈接程序庫(kù),ADS對(duì)代碼大小做過(guò)特別的優(yōu)化,其生成的代碼在密度上要優(yōu)于Gcc生成的代碼。BunroDeBusl’刀等人在其研究過(guò)程中對(duì)比過(guò)ADs與GCC生成的代碼大小,其結(jié)果表明:ADS生成的二進(jìn)制代碼平均要比GCC生成的代碼小320KB,這主要是因?yàn)锳DS的編譯器編譯出的代碼非常緊湊,且ADS的標(biāo)準(zhǔn)程序庫(kù)也是經(jīng)過(guò)特別優(yōu)化的。
【學(xué)位授予單位】:浙江大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2006
【分類號(hào)】:TP368.1
【參考文獻(xiàn)】
相關(guān)期刊論文 前1條
1 馬義德,劉映杰,張新國(guó);嵌入式系統(tǒng)的現(xiàn)狀及發(fā)展前景[J];信息技術(shù);2001年12期
本文編號(hào):2687765
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/2687765.html
最近更新
教材專著