關(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í),人們使用基于硬件或軟件的各種壓縮技術(shù)。當(dāng)壓縮技術(shù)在各個(gè)領(lǐng)域都很流行時(shí),內(nèi)存壓縮技術(shù)卻由于其復(fù)雜性而一直未得到廣泛使用。近年來(lái),由于在并行壓縮一解壓算法以及在硅密度及速度方面取得的進(jìn)展,使得內(nèi)存壓縮技術(shù)變得可行。
內(nèi)存壓縮技術(shù)的主要思想是將數(shù)據(jù)按照一定的算法壓縮后存入壓縮內(nèi)存中,系統(tǒng)從壓縮內(nèi)存中找到壓縮過(guò)的數(shù)據(jù),將其解壓后即可以供系統(tǒng)使用。這樣既可以增加實(shí)際可用的內(nèi)存空間,又可以減少頁(yè)面置換所帶來(lái)的開(kāi)銷(xiāo),從而以較小的成本提高系統(tǒng)的整體性能。
內(nèi)存壓縮機(jī)制是在系統(tǒng)的存儲(chǔ)層次中邏輯地加入一層——壓縮內(nèi)存層。系統(tǒng)在該層中以壓縮的格式保存物理頁(yè)面,當(dāng)頁(yè)面再次被系統(tǒng)引用時(shí),解壓該壓縮頁(yè)后,即可使用。我們將管理這一壓縮內(nèi)存層的相關(guān)硬件及軟件的集合統(tǒng)稱(chēng)為內(nèi)存壓縮系統(tǒng)。內(nèi)存壓縮系統(tǒng)對(duì)于CPU、I/O設(shè)備、設(shè)備驅(qū)動(dòng)以及應(yīng)用軟件來(lái)說(shuō)是透明的,但是操作系統(tǒng)必須具有管理內(nèi)存大小變化以及壓縮比率變化的功能。
對(duì)于大多數(shù)的操作系統(tǒng)而言,要實(shí)現(xiàn)內(nèi)存壓縮,大部分體系結(jié)構(gòu)都不需要改動(dòng)。在標(biāo)準(zhǔn)的操作系統(tǒng)中,內(nèi)存都是通過(guò)固定數(shù)目的物理頁(yè)框(page frame)來(lái)描述的,由操作系統(tǒng)的VMM來(lái)管理。要支持內(nèi)存壓縮,OS要管理的實(shí)際內(nèi)存大小和頁(yè)框數(shù)目是基于內(nèi)存的壓縮比率來(lá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ù)壓縮率是不依賴(lài)于OS而動(dòng)態(tài)變化的,未壓縮的數(shù)據(jù)可能會(huì)耗盡物理內(nèi)存,因此當(dāng)物理內(nèi)存接近耗盡時(shí),操作系統(tǒng)必須采取行動(dòng)來(lái)解決這個(gè)問(wèn)題。
2 內(nèi)存壓縮系統(tǒng)的硬件模型
目前由于內(nèi)存壓縮的思想越來(lái)越引起人們的注意市場(chǎng)上也出現(xiàn)了一些基于軟件的內(nèi)存壓縮器。這些內(nèi)存壓縮器主要是通過(guò)軟件對(duì)數(shù)據(jù)進(jìn)行壓縮,但由于訪問(wèn)壓縮數(shù)據(jù)帶來(lái)的延遲,它在系統(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)、可回寫(xiě)的高速緩沖,每行大小為1KB,由兩倍數(shù)據(jù)率(DDR)SDRAM制定。L3高速緩沖包含了未壓縮的緩沖行,由于大部分的訪問(wèn)都可以在L3高速緩沖中命中,因此它隱藏了訪問(wèn)壓縮主存引起的延遲。L3高速緩沖對(duì)于存儲(chǔ)分級(jí)體系中的上層而言就是主存,它的操作對(duì)于其它硬件,包括處理器和I/O來(lái)說(shuō)都是透明的。壓縮內(nèi)存控制器是整個(gè)內(nèi)存壓縮系統(tǒng)的控制中心,它負(fù)責(zé)數(shù)據(jù)的壓縮/解壓,監(jiān)控物理內(nèi)存的使用情況以及實(shí)際地址到物理地址的尋址過(guò)程。
數(shù)據(jù)壓縮過(guò)程是這樣的:壓縮內(nèi)存控制將1KB的高速緩沖行壓縮后寫(xiě)入壓縮內(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ù)0~4個(gè)壓縮區(qū)域。
壓縮內(nèi)存控制器必須根據(jù)長(zhǎng)度格式的不同將系統(tǒng)總線上的實(shí)際地址翻譯成物理內(nèi)存的中的物理地址。實(shí)際地址是出現(xiàn)在處理器外部總線上常規(guī)地址。篁 址用來(lái)錄十壓縮內(nèi)存的256字節(jié)區(qū)域。實(shí)際地址空間存在于L1/L2/L3高速緩沖中,用于立即訪問(wèn)。而其余的內(nèi)存內(nèi)容部分以壓縮形式存在于物理內(nèi)存中。內(nèi)存控制器通過(guò)查詢(xún)壓縮翻譯表(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)存聽(tīng)一個(gè)256字節(jié)區(qū)域。對(duì)于少于120位的塊,如一個(gè)全為零的塊,則使用一種特殊的CTT格式,稱(chēng)為通用行格式。在這種格式中,壓縮數(shù)據(jù)全部存放在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超過(guò)了SUTLR的值,內(nèi)存控制器產(chǎn)生一個(gè)中斷,則操作系統(tǒng)采取措施來(lái)阻止內(nèi)存消耗。
在實(shí)際地址到物理地址的轉(zhuǎn)換中,一個(gè)有用的方法是快速頁(yè)操作。它允許控制器僅修改CTT項(xiàng)的四個(gè)指針,從而將4KB的頁(yè)面內(nèi)容換出或清空??焖夙?yè)操作通過(guò)將與4KB頁(yè)面相關(guān)的CTT項(xiàng)全部修改通用行格式(即全為零),從而將這4KB頁(yè)面的內(nèi)容全部清空。同樣,一對(duì)頁(yè)面可以通過(guò)交換它們相關(guān)的CTT項(xiàng)的區(qū)域指針來(lái)交換頁(yè)面內(nèi)容。由于沒(méi)有大量的數(shù)據(jù)移動(dòng)發(fā)生,快速頁(yè)面操作速度相當(dāng)快。
壓縮內(nèi)存控制器的壓縮/解壓功能是基于LempelZiv算法來(lái)進(jìn)行的,因此下一節(jié)將簡(jiǎn)單介紹一下該算法的思想。
3 內(nèi)存壓縮算法Lempel-Ziv
絕大多數(shù)的壓縮算法,包括用得特別流行的Lempel-Ziv壓縮算法家庭,都是基于對(duì)原子記錄(Token)字符串的完全重復(fù)檢測(cè)。這個(gè)算法雖然不是最好的算法,但是,Lempel-Ziv算法強(qiáng)調(diào)的是算法的簡(jiǎn)單與取得高壓縮率的速率,因此它還是在內(nèi)存壓縮中得到了廣泛的應(yīng)用。
Lemple-Ziv算法(簡(jiǎn)稱(chēng)LZ)是編碼時(shí)將一個(gè)位串分成詞組,然后將數(shù)據(jù)流描述成一系列的對(duì)。每個(gè)對(duì)組成一個(gè)新的詞組,它包含一個(gè)數(shù)字(前一個(gè)詞組的標(biāo)識(shí))和一個(gè)位(被附加到前一個(gè)詞組上)。這種編碼方式很龐大,可是一旦應(yīng)用到適合的字符串,它就是相當(dāng)有效率的編碼方式。下面舉例說(shuō)明這種算法是如何編碼的。
++表示連接(010++1=0101),U=0010001101是未被壓縮的字符串。C是壓縮后的字符串。P(x)表示詞組數(shù)x。先看一下U=0010001101發(fā)現(xiàn),它可以被寫(xiě)為U=0++010001101,因此得到P(1)=P(0)++0?,F(xiàn)在繼續(xù)將其寫(xiě)為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所列。
一旦創(chuàng)建了表1,就有了整個(gè)編碼的圖表。要?jiǎng)?chuàng)建Lempel-Ziv數(shù)據(jù)流,則依照公式創(chuàng)建對(duì)。如果公式是P(x)=P(A)++B,則每個(gè)對(duì)為(A++B)。因此P(1)=P(0)++0變?yōu)椋?0++0),P(2)=P(1)++0變?yōu)椋?1++0),依此類(lèi)推,將所有這些對(duì)連接起來(lái),就得到了最后的字符串,結(jié)果如表2所列。這樣,C就變成000011010101011,看來(lái)比U要長(zhǎng)得多。但這里由于U的長(zhǎng)度短,因此未能看出優(yōu)勢(shì),而且包含P(0)的公式都沒(méi)有壓縮,所以也引起了長(zhǎng)度增加。
Lempel-Ziv字符串的解碼是很簡(jiǎn)單的,就是抓住其中的對(duì),對(duì)照表1進(jìn)行重構(gòu)。
表1 編碼過(guò)程
步 驟 | 值 | 公 式 | U |
0 | - | P(0) | 0010001101 |
1 | 0 | P(1)=P(0)++0 | 0++010001101 |
2 | 01 | P(2)=P(1)++1 | 0++01++00++01101 |
3 | 00 | P(3)=P(1)++0 | 0++01++00++01101 |
4 | 011 | P(4)=P(2)++1 | 0++01++00++011++01 |
5 | 01 | P(5)=P(1)++1 | 0++01++00++011++01 |
表2 如何創(chuàng)建編碼字符串
公 式 | P(1)=P(0)++0 | P(2)=P(1)++1 | P(3)=P(1)++0 | P(4)=P(2)++1 | P(5)=P(1)++1 |
對(duì) | 00++0=000 | 01++1=011 | 01++0=010 | 10=++1=101 | 01++1=011 |
C | 000++011++010++101++011=000011010101011 |
4 操作系統(tǒng)對(duì)內(nèi)存壓縮的支持
在壓縮內(nèi)存系統(tǒng)中,內(nèi)存大小指的是實(shí)際內(nèi)存大小,它比物理內(nèi)存大。在引導(dǎo)時(shí),BIOS向操作系統(tǒng)報(bào)告的內(nèi)存大小就比實(shí)際安裝的物理內(nèi)存要大。例如,硬件原型安裝的是512MB的SDRAM,但BIOS向操作系統(tǒng)報(bào)告的內(nèi)存大小為1GB。當(dāng)應(yīng)用程序數(shù)據(jù)以2:1或更高的比率壓縮時(shí),實(shí)際內(nèi)存的工作方式與一般操作系統(tǒng)的內(nèi)存工作方式是相同的。但當(dāng)應(yīng)用程序以未壓縮數(shù)據(jù)來(lái)填充內(nèi)存時(shí)(如一個(gè)zip文件不可能達(dá)到2:1的壓縮比率),由于一般的OS只看到實(shí)際地址空間,因此不能意識(shí)到物理內(nèi)存已經(jīng)耗盡。例如,一個(gè)操作系統(tǒng)的實(shí)際內(nèi)存為1024MB,而牧師內(nèi)存為512MB。這時(shí)實(shí)際內(nèi)存已經(jīng)分配了600MB,系統(tǒng)顯示還有424MB的空閑內(nèi)存。但是由于已分配內(nèi)存的壓縮率很低,此時(shí)物理內(nèi)存的耗用已經(jīng)接近512MB。如果再近一步地分配內(nèi)存,那么系統(tǒng)就會(huì)因?yàn)槲锢韮?nèi)存的耗盡而崩潰,盡管它仍然顯示還有424MB的空閑內(nèi)存。這種情況下,必須由操作系統(tǒng)提供對(duì)壓縮內(nèi)存進(jìn)行管理的支持。
由于內(nèi)存壓縮是一個(gè)比較新的概念,一般的情況作系統(tǒng)都沒(méi)有這樣的機(jī)制來(lái)區(qū)分實(shí)際地址和物理地址,也不能處理“物理內(nèi)存耗盡”的情況。不過(guò),只要對(duì)操作系統(tǒng)內(nèi)核做一些小的改動(dòng)或者在操作系統(tǒng)之上增加一個(gè)設(shè)備驅(qū)動(dòng)程序,即可達(dá)到目的。
一般來(lái)說(shuō),要從以下幾方面對(duì)壓縮內(nèi)存進(jìn)行管理。
(1)監(jiān)控物理內(nèi)存使用情況
通過(guò)輪詢(xún)或中斷法,查看物理內(nèi)存的使用情況,并在物理內(nèi)存耗盡前給出警告。壓縮內(nèi)存管理例程是通過(guò)壓縮內(nèi)存控制器中的一些寄存器來(lái)實(shí)現(xiàn)對(duì)物理內(nèi)存的監(jiān)控。SUR報(bào)告物理內(nèi)存的使用情況,SUTHR和SUTLR用于設(shè)置中斷臨界值。壓縮內(nèi)存管理算法是基于物理內(nèi)存使用的四種狀態(tài),分別為steady、acquire、danger和interrupt,其臨界值的關(guān)系是mc_th_acquire 我們可以使用輪詢(xún)和中斷相結(jié)合的方法進(jìn)行監(jiān)控,并對(duì)物理內(nèi)存使用的變化作出反應(yīng)。通過(guò)時(shí)鐘中斷來(lái)驅(qū)動(dòng)輪例程,該例程每10ms讀取一次SUR的值,并將它與系統(tǒng)設(shè)定的臨界值比較。當(dāng)系統(tǒng)處于steady狀態(tài)時(shí),不用采取任何行動(dòng);當(dāng)使用超過(guò)mc_th_acquire,應(yīng)該增加nr_rsrv_pages來(lái)限制內(nèi)存分配,但這并未引起內(nèi)存缺乏;當(dāng)使用超過(guò)mc_th_danger,應(yīng)該增加nr_rsrv_pages到引起內(nèi)存缺乏,并導(dǎo)致頁(yè)面分配器和置換進(jìn)程回收內(nèi)存頁(yè)面,一旦進(jìn)入到該狀態(tài),物理內(nèi)存管理例程會(huì)喚醒置換進(jìn)程回收內(nèi)存。 (2)回收內(nèi)存以及清空空閑頁(yè)面內(nèi)容以減少使用 以標(biāo)準(zhǔn)的Linux內(nèi)核為例,操作系統(tǒng)中有兩具主要的變量來(lái)管理內(nèi)存太少的情形。這兩個(gè)變量是nr_free_pages和struct freepages。為了檢測(cè)內(nèi)存是否已耗盡,在分配內(nèi)存前要進(jìn)行檢查。 if(nr_free_pages /*內(nèi)存太少,回收頁(yè)面*/ } else {/*可以進(jìn)行分配*/ 在內(nèi)存壓縮系統(tǒng)中,通過(guò)增加一個(gè)新變量nr_rsrv_pages來(lái)完成此功能。這樣就使最小空閑頁(yè)面數(shù)量變?yōu)椋篺reepages.min'=freepages.min+nr_rsrv_pages。 通過(guò)動(dòng)態(tài)地調(diào)整nr_rsrv_pages變量,壓縮內(nèi)存管理例程可以人為地造成內(nèi)存缺乏的現(xiàn)象,從而引起置換進(jìn)程回收頁(yè)面,此時(shí)會(huì)將調(diào)用進(jìn)程暫時(shí)掛起。回收內(nèi)存包含縮減各種緩沖,并將進(jìn)程頁(yè)面置換到磁盤(pán)上。當(dāng)頁(yè)面返回到空閑頁(yè)面池時(shí),它們會(huì)被清零。我們可以使用前面提到的快速頁(yè)面操作來(lái)減少清空頁(yè)面操作所帶來(lái)的開(kāi)銷(xiāo)。 (3)阻塞CPU周期以減少物理內(nèi)存使用率 當(dāng)物理內(nèi)存使用超過(guò)監(jiān)界值mc_th_interrupt,控制器就中斷處理器,nr_rsrv_pages進(jìn)一步增加,然后CPU blocker就開(kāi)始運(yùn)行。我們?cè)谳喸?xún)機(jī)制的基礎(chǔ)上還使用了中斷機(jī)制,因?yàn)橹袛鄼C(jī)制比輪詢(xún)機(jī)制更加快速。如果在10ms的間隔中,物理內(nèi)存使用突然上升,硬件中斷會(huì)比輪詢(xún)例程更早檢測(cè)到這一情況。為了更加安全,我們使用CPUblocker來(lái)阻塞引起物理內(nèi)存使用的進(jìn)程。CPU blocker是空閑線程,它們可以使CPU空忙。由于頁(yè)面被置換到磁盤(pán)是以機(jī)器速度運(yùn)行的,而物理內(nèi)存使用卻可以以?xún)?nèi)存訪問(wèn)速度運(yùn)行,速度從而得到增加。當(dāng)牧師內(nèi)存使用持續(xù)增加,以至換頁(yè)也無(wú)法緩解時(shí),進(jìn)程需要被阻塞。我們就通過(guò)啟動(dòng)CPUblocker來(lái)阻塞CPU周期直到換頁(yè)機(jī)制能有效地降低物理內(nèi)存使用。CPUblocker不會(huì)阻塞中斷,而且每40ms它就會(huì)讓出CPU以免其它進(jìn)程被餓死。 嵌入式系統(tǒng)是一種特殊的計(jì)算機(jī)系統(tǒng),它是一個(gè)更大的系統(tǒng)或設(shè)備的一部分。通常,一個(gè)嵌入式系統(tǒng)是駐留在單處理機(jī)底板上的,其應(yīng)用程序存儲(chǔ)在ROM中。事實(shí)上,所有具有數(shù)字接口的設(shè)備——監(jiān)視器、微波爐、VCRs、汽車(chē)等,都使用了嵌入式系統(tǒng)。一些嵌入式系統(tǒng)包含了操作系統(tǒng),稱(chēng)為嵌入式操作系統(tǒng)。為了滿足嵌入式應(yīng)用的特殊要求,嵌入式微處理器雖然在功能上和標(biāo)準(zhǔn)微處理器基本是一樣的,但和工業(yè)控制計(jì)算機(jī)相比,嵌入式微處理器具有體積小、重量輕、成本低、可靠性中,內(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中。為了將其解壓后再?gòu)腞OM拷貝到RAM。這種基于軟件的壓縮方式,可以節(jié)省ROM空間,但其引導(dǎo)過(guò)程相對(duì)較慢。 以上的內(nèi)存壓縮技術(shù)在ROM中得到了應(yīng)用,但對(duì)于RAM來(lái)講,基于軟件內(nèi)存壓縮技術(shù),由于其訪問(wèn)壓縮數(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)用比購(gòu)買(mǎi)RAM的費(fèi)用要低,而且內(nèi)存越大,其節(jié)省的費(fèi)用越多,可以達(dá)到一半的價(jià)錢(qián)。因此筆者認(rèn)為在內(nèi)存資源極其寶貴的嵌入式系統(tǒng)中,實(shí)現(xiàn)基于硬件的內(nèi)存壓縮系統(tǒng)具有較大的價(jià)值。 結(jié)語(yǔ) 本文介紹的內(nèi)存壓縮系統(tǒng)是基于專(zhuān)門(mén)的硬件支持,即L3高速緩沖和內(nèi)存控制器。在目前大多數(shù)Pentium以上架構(gòu)的硬件平臺(tái)上,只需要對(duì)操作系統(tǒng)內(nèi)核做一些小的屐,或者增加一個(gè)設(shè)備驅(qū)動(dòng)及服務(wù)程序,即可完成此項(xiàng)功能。由于嵌入式系統(tǒng)對(duì)實(shí)時(shí)性的要求,基于硬件的內(nèi)存壓縮技術(shù)可以在增大可用內(nèi)存的同時(shí)不影響系統(tǒng)的實(shí)時(shí)性,其硬件費(fèi)用相對(duì)RAM的價(jià)格更低,具有一定的實(shí)用價(jià)值。 相關(guān)推薦
5 內(nèi)存壓縮技術(shù)在嵌入式系統(tǒng)中的應(yīng)用
嵌入式技術(shù)具有哪些特性應(yīng)用?
嵌入式技術(shù)在醫(yī)療儀器設(shè)備有什么應(yīng)用?
嵌入式技術(shù)在生活中有哪些行業(yè)應(yīng)用?
嵌入式技術(shù)是什么
嵌入式技術(shù)究竟是什么?
嵌入式系統(tǒng)中內(nèi)存的分布情況
嵌入式系統(tǒng)中語(yǔ)音算法的基本原理是什么
嵌入式系統(tǒng)內(nèi)存優(yōu)化使用
嵌入式系統(tǒng)內(nèi)存管理
嵌入式系統(tǒng)EMC的產(chǎn)生原理是什么?
嵌入式系統(tǒng)主要學(xué)什么
嵌入式系統(tǒng)產(chǎn)品有哪些
嵌入式系統(tǒng)和嵌入式電腦有什么區(qū)別?
嵌入式系統(tǒng)在行業(yè)中的應(yīng)用
嵌入式系統(tǒng)開(kāi)發(fā)要素的選擇原則是什么
嵌入式系統(tǒng)是什么 什么叫嵌入式系統(tǒng)
嵌入式系統(tǒng)是什么 什么叫嵌入式系統(tǒng)
嵌入式系統(tǒng)是什么意思
嵌入式系統(tǒng)有什么安全技巧?
嵌入式系統(tǒng)特點(diǎn)詳解 嵌入式系統(tǒng)的六大特點(diǎn)
嵌入式系統(tǒng)特點(diǎn)詳解 嵌入式系統(tǒng)的六大特點(diǎn)
嵌入式系統(tǒng)特點(diǎn)詳解 嵌入式系統(tǒng)的六大特點(diǎn)
嵌入式系統(tǒng)電子的實(shí)時(shí)性是什么?
嵌入式系統(tǒng)的技術(shù)特點(diǎn)及廣泛運(yùn)用
嵌入式系統(tǒng)的發(fā)展歷史
嵌入式系統(tǒng)的實(shí)時(shí)性與快速性有關(guān)
嵌入式系統(tǒng)的知識(shí)體系
嵌入式系統(tǒng)組件的設(shè)計(jì)原則是什么
嵌入式系統(tǒng)設(shè)計(jì)
嵌入式系統(tǒng)設(shè)計(jì)的新發(fā)展及其挑戰(zhàn)是什么
嵌入式GUI系統(tǒng)的特點(diǎn)是什么?
嵌入式Linux系統(tǒng)中內(nèi)核抽象的動(dòng)態(tài)擴(kuò)展技術(shù)
嵌入式Linux系統(tǒng)中內(nèi)核抽象的動(dòng)態(tài)擴(kuò)展技術(shù)
嵌入式Linux系統(tǒng)中內(nèi)核抽象的動(dòng)態(tài)擴(kuò)展技術(shù)
嵌入式Web訪問(wèn)時(shí)的內(nèi)存丟失的問(wèn)題怎么解決?
嵌入式實(shí)時(shí)系統(tǒng)的關(guān)鍵技術(shù)是什么?
嵌入式實(shí)時(shí)系統(tǒng)設(shè)計(jì)模式是什么?
嵌入式實(shí)時(shí)操作系統(tǒng)如何簡(jiǎn)化應(yīng)用軟件的設(shè)計(jì)
嵌入式最小系統(tǒng)的啟動(dòng)架構(gòu)是什么?
嵌入式組態(tài)軟件系統(tǒng)應(yīng)用舉例
嵌入式視覺(jué)技術(shù)是什么?
嵌入式視頻監(jiān)控系統(tǒng)視頻服務(wù)器該怎么設(shè)計(jì)?
ARM嵌入式最小系統(tǒng)的啟動(dòng)架構(gòu)是什么?
FPGA在嵌入式測(cè)試系統(tǒng)中的利與弊
Linux嵌入式系統(tǒng)中內(nèi)核技術(shù)的可動(dòng)態(tài)拓展技術(shù)有哪些
slab分配器在嵌入式系統(tǒng)有什么優(yōu)點(diǎn)?
為什么要選擇嵌入式內(nèi)存數(shù)據(jù)庫(kù)引擎?
什么是嵌入式系統(tǒng)中的外設(shè)?
什么是嵌入式系統(tǒng)技術(shù)的核心DSP器件?
什么是嵌入式系統(tǒng)技術(shù)的核心?
什么是嵌入式系統(tǒng)?
什么是嵌入式系統(tǒng)?嵌入式操作系統(tǒng)有哪幾類(lèi)?
什么是嵌入式系統(tǒng)?深嵌入式系統(tǒng)又是什么
什么是嵌入式Linux系統(tǒng)下的CGI程序設(shè)計(jì)技術(shù)?
什么是嵌入式操作系統(tǒng)內(nèi)存管理技術(shù)?
什么是嵌入式操作系統(tǒng)?嵌入式操作系統(tǒng)有何功能
關(guān)于嵌入式系統(tǒng)的基本知識(shí)都在這里
幾種嵌入式軟件代碼壓縮技術(shù)的比較分析
分析嵌入式系統(tǒng)的技術(shù)特點(diǎn)
在嵌入式系統(tǒng)中怎樣對(duì)內(nèi)存進(jìn)行分配?
在分布式嵌入式系統(tǒng)的過(guò)程中利用Jini技術(shù)有什么優(yōu)勢(shì)?
基于嵌入式WEB的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)該如何去設(shè)計(jì)?
基于嵌入式視頻的多媒體集控系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù)是什么?
基于FPGA的嵌入式系統(tǒng)應(yīng)用
如何使用嵌入式的內(nèi)存分配管理技術(shù)
如何在嵌入式系統(tǒng)設(shè)計(jì)中使用UML技術(shù)?
如何在嵌入式系統(tǒng)設(shè)計(jì)中使用UML技術(shù)?
如何實(shí)現(xiàn)基于Agent技術(shù)的嵌入式智能設(shè)備測(cè)試?
如何設(shè)計(jì)嵌入式無(wú)線視頻監(jiān)控系統(tǒng)?
如何設(shè)計(jì)一種嵌入式網(wǎng)絡(luò)化視頻監(jiān)控系統(tǒng)?
對(duì)嵌入式系統(tǒng)的功耗管理技術(shù)有哪些研究?
工業(yè)嵌入式系統(tǒng)有哪些應(yīng)用?
怎么實(shí)現(xiàn)基于ADV202的嵌入式視頻壓縮系統(tǒng)軟硬件設(shè)計(jì)?
怎么實(shí)現(xiàn)基于Winodws CE的嵌入式網(wǎng)絡(luò)監(jiān)控系統(tǒng)的設(shè)計(jì)?
怎么設(shè)計(jì)嵌入式系統(tǒng)的內(nèi)存管理
我國(guó)嵌入式技術(shù)及應(yīng)用現(xiàn)狀分析
汽車(chē)嵌入式系統(tǒng)發(fā)展歷程介紹
汽車(chē)嵌入式系統(tǒng)發(fā)展歷程回顧
汽車(chē)嵌入式系統(tǒng)的發(fā)展如何?
淺析嵌入式系統(tǒng)中的數(shù)據(jù)無(wú)損壓縮
物聯(lián)網(wǎng)嵌入式系統(tǒng)有什么特征?
請(qǐng)問(wèn)如何使用UML來(lái)設(shè)計(jì)嵌入式系統(tǒng)?
請(qǐng)問(wèn)怎樣去設(shè)計(jì)嵌入式系統(tǒng)啟動(dòng)程序?
談一談嵌入式設(shè)備的壓縮存儲(chǔ)算法
嵌入式系統(tǒng)數(shù)據(jù)無(wú)損壓縮
1
評(píng)論