




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、嵌入式系統(tǒng)中的內(nèi)存壓縮技術(shù) 摘要:介紹內(nèi)存壓縮技術(shù)和一個(gè)基于硬件的內(nèi)存壓縮系統(tǒng)模型,探討內(nèi)存壓縮技術(shù)在嵌入式系統(tǒng)中的應(yīng)用;重點(diǎn)介紹內(nèi)存壓縮系統(tǒng)的硬件要求及操作系統(tǒng)對(duì)內(nèi)存壓縮機(jī)制的支持;簡(jiǎn)單介紹內(nèi)存壓縮中常用的算法Lempel-Ziv,并就內(nèi)存壓縮技術(shù)在嵌入式系統(tǒng)中的應(yīng)用問題作一些探討。 關(guān)鍵詞:嵌入式系統(tǒng) 內(nèi)存壓縮 壓縮內(nèi)存控制器 Lempel-Ziv算法1 內(nèi)存壓縮技術(shù)介紹為節(jié)省存儲(chǔ)空間或傳輸帶寬,人們已經(jīng)在計(jì)算機(jī)系統(tǒng)中廣泛地使用了數(shù)據(jù)壓縮技術(shù)。在磁介質(zhì)存儲(chǔ)數(shù)據(jù)或網(wǎng)絡(luò)傳輸數(shù)據(jù)時(shí),人們使用基于硬件或軟件的各種
2、壓縮技術(shù)。當(dāng)壓縮技術(shù)在各個(gè)領(lǐng)域都很流行時(shí),內(nèi)存壓縮技術(shù)卻由于其復(fù)雜性而一直未得到廣泛使用。近年來,由于在并行壓縮一解壓算法以及在硅密度及速度方面取得的進(jìn)展,使得內(nèi)存壓縮技術(shù)變得可行。內(nèi)存壓縮技術(shù)的主要思想是將數(shù)據(jù)按照一定的算法壓縮后存入壓縮內(nèi)存中,系統(tǒng)從壓縮內(nèi)存中找到壓縮過的數(shù)據(jù),將其解壓后即可以供系統(tǒng)使用。這樣既可以增加實(shí)際可用的內(nèi)存空間,又可以減少頁面置換所帶來的開銷,從而以較小的成本提高系統(tǒng)的整體性能。blank' class='infotextkey'>管理內(nèi)存大小變化以及壓縮比率變化的功能。 target='_blank' class=&
3、#39;infotextkey'>管理的實(shí)際內(nèi)存大小和頁框數(shù)目是基于內(nèi)存的壓縮比率來確定的。這里的實(shí)現(xiàn)內(nèi)存是指操作系統(tǒng)可的內(nèi)存大小,它與物理內(nèi)存的關(guān)系如下:假設(shè)PM是物理內(nèi)存,RM(t)是系統(tǒng)在t時(shí)刻的實(shí)際內(nèi)存,而CR(t)是壓縮比率,在給定時(shí)刻t可支持的最大實(shí)際內(nèi)存為RM(t)=CR1(t)×PM。然而,由于應(yīng)用程序的數(shù)據(jù)壓縮率是不依賴于OS而動(dòng)態(tài)變化的,未壓縮的數(shù)據(jù)可能會(huì)耗盡物理內(nèi)存,因此當(dāng)物理內(nèi)存接近耗盡時(shí),操作系統(tǒng)必須采取行動(dòng)來解決這個(gè)問題。2 內(nèi)存壓縮系統(tǒng)的硬件模型目前由于內(nèi)存壓縮的思想越來越引起人們的注意市場(chǎng)上也出現(xiàn)了一些基于軟件的內(nèi)存壓縮器。這些內(nèi)存壓縮器
4、主要是通過軟件對(duì)數(shù)據(jù)進(jìn)行壓縮,但由于訪問壓縮數(shù)據(jù)帶來的延遲,它在系統(tǒng)性能方面改進(jìn)并不明顯,有些甚至降低了系統(tǒng)性能。本節(jié)介紹一種基于硬件的內(nèi)存壓縮系統(tǒng)模型。圖1是一個(gè)典型的內(nèi)存壓縮系統(tǒng)的硬件模型,包括了壓縮內(nèi)存、L3高速緩沖、壓縮內(nèi)存控制器等硬件部分。其中壓縮內(nèi)存(133MHz SDRAM)包含了壓縮數(shù)據(jù)。L3高速緩沖是一個(gè)共享的、32MB、4路組相聯(lián)、可回寫的高速緩沖,每行大小為1KB,由兩倍數(shù)據(jù)率(DDR)SDRAM制定。L3高速緩沖包含了未壓縮的緩沖行,由于大部分的訪問都可以在L3高速緩沖中命中,因此它隱藏了訪問壓縮主存引起的延遲。L3高速緩沖對(duì)于存儲(chǔ)分級(jí)體系中的上層而言就是主存,它的操作
5、對(duì)于其它硬件,包括處理器和I/O來說都是透明的。壓縮內(nèi)存控制器是整個(gè)內(nèi)存壓縮系統(tǒng)的控制中心,它負(fù)責(zé)數(shù)據(jù)的壓縮/解壓,監(jiān)控物理內(nèi)存的使用情況以及實(shí)際地址到物理地址的尋址過程。數(shù)據(jù)壓縮過程是這樣的:壓縮內(nèi)存控制將1KB的高速緩沖行壓縮后寫入壓縮內(nèi)存中,然后將它們從壓縮內(nèi)存中讀出后解壓。其壓縮算法就是Lempel-Ziv算法,我們會(huì)在下一部分介紹這個(gè)算法。壓縮機(jī)制將壓縮的數(shù)據(jù)塊以不同的長(zhǎng)度格式存放到內(nèi)存中。壓縮內(nèi)存的存儲(chǔ)單元是一個(gè)256字節(jié)的區(qū)域。按照壓縮比率不同,一個(gè)1KB的內(nèi)存塊(正好是L3每行的大小)可以占據(jù)04個(gè)壓縮區(qū)域。壓縮內(nèi)存控制器必須根據(jù)長(zhǎng)度格式的不同將系統(tǒng)總線上的實(shí)際地址翻譯成物理內(nèi)
6、存的中的物理地址。實(shí)際地址是出現(xiàn)在處理器外部總線上常規(guī)地址。篁 址用來錄十壓縮內(nèi)存的256字節(jié)區(qū)域。實(shí)際地址空間存在于L1/L2/L3高速緩沖中,用于立即訪問。而其余的內(nèi)存內(nèi)容部分以壓縮形式存在于物理內(nèi)存中。內(nèi)存控制器通過查詢壓縮翻譯表(CTT)執(zhí)行從實(shí)際地址到物理地址的翻譯,這個(gè)表被保留在物理內(nèi)存的某個(gè)位置。圖2是CTT表的格式及內(nèi)存控制器的尋址模式。每個(gè)1KB內(nèi)存塊的實(shí)際地址映射到CTT的一項(xiàng),而CTT每項(xiàng)共16字節(jié),包括四個(gè)物理區(qū)域地址,每個(gè)地址指向物理內(nèi)存聽一個(gè)256字節(jié)區(qū)域。對(duì)于少于120位的塊,如一個(gè)全為零的塊,則使用一種特殊的CTT格式,稱為通用行格式。在這種格式中,壓縮數(shù)據(jù)全部
7、存放在CTT項(xiàng)中,代替了四個(gè)地址指針。因此,一個(gè)1KB的通用塊僅占用物理內(nèi)存中的16字節(jié),其壓縮比率達(dá)到64:1。壓縮內(nèi)存控制器中有一系列的寄存器用于監(jiān)控物理內(nèi)存使用。Sectors Used Register(SUR)向操作系統(tǒng)報(bào)告壓縮內(nèi)存的使用情況。The Sectors Used Threshold Registers,SUTHR和SUTLR,用于設(shè)置內(nèi)存耗盡情況的中斷入口點(diǎn)。SUTLR寄存器是PCI中斷電路INTA的入口,而SUTHR寄存器是NMI中斷的入口。當(dāng)SUR超過了SUTLR的值,內(nèi)存控制器產(chǎn)生一個(gè)中斷,則操作系統(tǒng)采取措施來阻止內(nèi)存消耗。在實(shí)際地址到物理地址的轉(zhuǎn)換中,一個(gè)有用的
8、方法是快速頁操作。它允許控制器僅修改CTT項(xiàng)的四個(gè)指針,從而將4KB的頁面內(nèi)容換出或清空。快速頁操作通過將與4KB頁面相關(guān)的CTT項(xiàng)全部修改通用行格式(即全為零),從而將這4KB頁面的內(nèi)容全部清空。同樣,一對(duì)頁面可以通過交換它們相關(guān)的CTT項(xiàng)的區(qū)域指針來交換頁面內(nèi)容。由于沒有大量的數(shù)據(jù)移動(dòng)發(fā)生,快速頁面操作速度相當(dāng)快。壓縮內(nèi)存控制器的壓縮/解壓功能是基于LempelZiv算法來進(jìn)行的,因此下一節(jié)將簡(jiǎn)單介紹一下該算法的思想。3 內(nèi)存壓縮算法Lempel-Ziv絕大多數(shù)的壓縮算法,包括用得特別流行的Lempel-Ziv壓縮算法家庭,都是基于對(duì)原子記錄(Token)字符串的完全重復(fù)檢測(cè)。這個(gè)算法雖然
9、不是最好的算法,但是,Lempel-Ziv算法強(qiáng)調(diào)的是算法的簡(jiǎn)單與取得高壓縮率的速率,因此它還是在內(nèi)存壓縮中得到了廣泛的應(yīng)用。Lemple-Ziv算法(簡(jiǎn)稱LZ)是編碼時(shí)將一個(gè)位串分成詞組,然后將數(shù)據(jù)流描述成一系列的對(duì)。每個(gè)對(duì)組成一個(gè)新的詞組,它包含一個(gè)數(shù)字(前一個(gè)詞組的標(biāo)識(shí))和一個(gè)位(被附加到前一個(gè)詞組上)。這種編碼方式很龐大,可是一旦應(yīng)用到適合的字符串,它就是相當(dāng)有效率的編碼方式。下面舉例說明這種算法是如何編碼的。+表示連接(010+1=0101),U=0010001101是未被壓縮的字符串。C是壓縮后的字符串。P(x)表示詞組數(shù)x。先看一下U=0010001101發(fā)現(xiàn),它可以被寫為U=0
10、+010001101,因此得到P(1)=P(0)+0。現(xiàn)在繼續(xù)將其寫為U=0+02+0001101,可得到P(2)=P(1)+1。現(xiàn)在我們已經(jīng)將P(2)描述為上一詞組和一個(gè)新的位的組合。下一步,U=0+01+00+01101,并得到P(3)=P(1)+0。現(xiàn)在我們注意到,有U=0+01+00+011+01,而P(4)=011=P(2)+1,最后得到P(5)=P(1)+1。運(yùn)算的步驟如表1所列。Lempel-Ziv字符串的解碼是很簡(jiǎn)單的,就是抓住其中的對(duì),對(duì)照表1進(jìn)行重構(gòu)。表1 編碼過程步 驟值公 式U0-P(0)001000110110P(1)=P(0)+00+0100
11、01101201P(2)=P(1)+10+01+00+01101300P(3)=P(1)+00+01+00+011014011P(4)=P(2)+10+01+00+011+01501P(5)=P(1)+10+01+00+011+01表2 如何創(chuàng)建編碼字符串公 式P(1)=P(0)+0P(2)=P(1)+1P(3)=P(1)+0P(4)=P(2)+1P(5)=P(1)+1對(duì)00+0=00001+1=01101+0=01010=+1=10101+1=011C000+011+010+101+011=0000110101010114 操作系統(tǒng)對(duì)內(nèi)存壓縮的支持由于內(nèi)存壓縮是一個(gè)比較新的概念,
12、一般的情況作系統(tǒng)都沒有這樣的機(jī)制來區(qū)分實(shí)際地址和物理地址,也不能處理“物理內(nèi)存耗盡”的情況。不過,只要對(duì)操作系統(tǒng)內(nèi)核做一些小的改動(dòng)或者在操作系統(tǒng)之上增加一個(gè)設(shè)備驅(qū)動(dòng)程序,即可達(dá)到目的。(1)監(jiān)控物理內(nèi)存使用情況(2)回收內(nèi)存以及清空空閑頁面內(nèi)容以減少使用if(nr_free_pages<freepages.min)/*內(nèi)存太少,回收頁面*/else/*可以進(jìn)行分配*/在內(nèi)存壓縮系統(tǒng)中,通過增加一個(gè)新變量nr_rsrv_pages來完成此功能。這樣就使最小空閑頁面數(shù)量變?yōu)椋篺reepages.min'=freepages.min+nr_rsrv_pages。(3)阻塞CPU周期以減
13、少物理內(nèi)存使用率當(dāng)物理內(nèi)存使用超過監(jiān)界值mc_th_interrupt,控制器就中斷處理器,nr_rsrv_pages進(jìn)一步增加,然后CPU blocker就開始運(yùn)行。我們?cè)谳喸儥C(jī)制的基礎(chǔ)上還使用了中斷機(jī)制,因?yàn)橹袛鄼C(jī)制比輪詢機(jī)制更加快速。如果在10ms的間隔中,物理內(nèi)存使用突然上升,硬件中斷會(huì)比輪詢例程更早檢測(cè)到這一情況。為了更加安全,我們使用CPUblocker來阻塞引起物理內(nèi)存使用的進(jìn)程。CPU blocker是空閑線程,它們可以使CPU空忙。由于頁面被置換到磁盤是以機(jī)器速度運(yùn)行的,而物理內(nèi)存使用卻可以以內(nèi)存訪問速度運(yùn)行,速度從而得到增加。當(dāng)牧師內(nèi)存使用持續(xù)增加,以至換頁也無法緩解時(shí),進(jìn)
14、程需要被阻塞。我們就通過啟動(dòng)CPUblocker來阻塞CPU周期直到換頁機(jī)制能有效地降低物理內(nèi)存使用。CPUblocker不會(huì)阻塞中斷,而且每40ms它就會(huì)讓出CPU以免其它進(jìn)程被餓死。5 內(nèi)存壓縮技術(shù)在嵌入式系統(tǒng)中的應(yīng)用嵌入式系統(tǒng)是一種特殊的計(jì)算機(jī)系統(tǒng),它是一個(gè)更大的系統(tǒng)或設(shè)備的一部分。通常,一個(gè)嵌入式系統(tǒng)是駐留在單處理機(jī)底板上的,其應(yīng)用程序存儲(chǔ)在ROM中。事實(shí)上,所有具有數(shù)字接口的設(shè)備監(jiān)視器、微波爐、VCRs、汽車等,都使用了嵌入式系統(tǒng)。一些嵌入式系統(tǒng)包含了操作系統(tǒng),稱為嵌入式操作系統(tǒng)。為了滿足嵌入式應(yīng)用的特殊要求,嵌入式微處理器雖然在功能上和標(biāo)準(zhǔn)微處理器基本是一樣的,但和工業(yè)控制計(jì)算機(jī)相
15、比,嵌入式微處理器具有體積小、重量輕、成本低、可靠性中,內(nèi)存仍然是珍貴的資源,因此研究?jī)?nèi)存壓縮技術(shù)在嵌入式系統(tǒng)中的應(yīng)用具有一定的價(jià)值。內(nèi)存壓縮的思想在一些嵌入式操作系統(tǒng)中,實(shí)際上已經(jīng)得到了體現(xiàn)。例如在VxWorks中,當(dāng)操作系統(tǒng)下載到目標(biāo)機(jī)上時(shí),其中一種方式是將引導(dǎo)程序和VxWorks映像都存放在ROM中。為了將其解壓后再從ROM拷貝到RAM。這種基于軟件的壓縮方式,可以節(jié)省ROM空間,但其引導(dǎo)過程相對(duì)較慢。以上的內(nèi)存壓縮技術(shù)在ROM中得到了應(yīng)用,但對(duì)于RAM來講,基于軟件內(nèi)存壓縮技術(shù),由于其訪問壓縮數(shù)據(jù)可能造成的延遲和不確定性,會(huì)對(duì)嵌入式系統(tǒng)的實(shí)時(shí)性造成和。因此它與虛擬內(nèi)存技術(shù)一樣,在嵌入式系統(tǒng)中未得到廣泛應(yīng)用。本文所介紹的內(nèi)存壓縮系統(tǒng)是基于硬件的。在相同基準(zhǔn)下,測(cè)試結(jié)果顯示出,該系統(tǒng)的運(yùn)行速度比標(biāo)準(zhǔn)系統(tǒng)的運(yùn)行速度快1.3倍。如果要實(shí)現(xiàn)相同大小的內(nèi)存,采用內(nèi)存壓縮系統(tǒng)的硬件費(fèi)用比購買RAM的費(fèi)用要低,而且內(nèi)存越大
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育信息化背景下的跨學(xué)科教學(xué)協(xié)作
- 河北能源職業(yè)技術(shù)學(xué)院《藝術(shù)形式語言研究》2023-2024學(xué)年第一學(xué)期期末試卷
- 攝影后期處理技巧讓照片更出彩
- 遼寧生態(tài)工程職業(yè)學(xué)院《植物細(xì)胞工程綜合實(shí)驗(yàn)技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 平?jīng)雎殬I(yè)技術(shù)學(xué)院《社會(huì)查理論與方法》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東財(cái)經(jīng)大學(xué)《形式與政策》2023-2024學(xué)年第一學(xué)期期末試卷
- 影視文化產(chǎn)業(yè)的發(fā)展與挑戰(zhàn)
- 寧夏職業(yè)技術(shù)學(xué)院《英語閱讀專業(yè)理論教學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 教學(xué)效率與教師培訓(xùn)的關(guān)系研究
- 建筑設(shè)計(jì)與地方戲曲文化的結(jié)合
- 個(gè)體工商戶轉(zhuǎn)讓協(xié)議(2篇)
- 胸痛中心胸痛隨訪數(shù)據(jù)采集表
- 體檢機(jī)構(gòu)服務(wù)流程
- 水工混凝土建筑物修補(bǔ)加固技術(shù)規(guī)程
- 經(jīng)皮冠狀動(dòng)脈介入治療術(shù)術(shù)后健康飲食宣教
- 【語文】福建省廈門市演武小學(xué)小學(xué)二年級(jí)下冊(cè)期末試題
- 2021-2022學(xué)年山東省東營市廣饒縣七年級(jí)(下)期末英語試卷(五四學(xué)制)(附答案詳解)
- 臥式常壓熱水鍋爐使用說明書
- (完整版)新人教版英語七年級(jí)下冊(cè)單詞聽寫表
- 酒店住宿水單模板2020
- 物業(yè)公司權(quán)責(zé)手冊(cè)市場(chǎng)拓展
評(píng)論
0/150
提交評(píng)論