專利名稱:數(shù)字電視中的存儲(chǔ)器管理方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)數(shù)字電視的存儲(chǔ)器管理方法的一個(gè)內(nèi)容。尤其是存儲(chǔ)管理與數(shù)字電視相關(guān)的存儲(chǔ)數(shù)據(jù)用數(shù)據(jù)的可變長度存儲(chǔ)器管理方法中利用兩個(gè)位影像(bitmap)來管理被分配的存儲(chǔ)器的起始地址和大小值,借以減小管理信息存儲(chǔ)器大小的數(shù)字電視存儲(chǔ)器管理方法。
背景技術(shù):
一般來說,數(shù)字電視是在模擬電視中裝有可以接收數(shù)字廣播信號(hào)的裝置,是從地面波(空中波)、電纜或衛(wèi)星接收信號(hào),并進(jìn)行顯示的一個(gè)系統(tǒng)。
這樣的數(shù)字廣播是以信息包為單位的圖象、語音、數(shù)據(jù)及廣播信息,按時(shí)間段以多路數(shù)字信號(hào)的傳輸流(transporu stream)形式進(jìn)行傳送的。
數(shù)字電視為了支援模擬電視所不能擁有的多種功能(因特網(wǎng)、雙向廣播等),內(nèi)部安裝了與電腦相同的運(yùn)行體系。通常,運(yùn)行體系以存儲(chǔ)器管理方法,使用可變長度管理方法和固定長度管理方法。
這里的可變長度管理方法是根據(jù)需求的存儲(chǔ)器大小,按需分配使用的方法;固定長度管理方法是預(yù)先把將要管理的存儲(chǔ)器按一定大小的單元(unit)進(jìn)行分割,如果有需求,就一個(gè)一個(gè)地分配該單元的方法。這兩種方法各有各的優(yōu)缺點(diǎn),因而可按系統(tǒng)使用目的分開存儲(chǔ)器,各自分別使用。這時(shí),按存儲(chǔ)器領(lǐng)域,如果適用可變長度管理方法的,就叫可變長度管理領(lǐng)域;如果適用固定長度管理方法的,就叫固定長度管理領(lǐng)域。
更詳細(xì)地說,固定長度管理方法是預(yù)先將管理的存儲(chǔ)器按一定大小的單元分割使用的,因此在運(yùn)行體系里執(zhí)行程序時(shí),事先得知所需存儲(chǔ)器分配大小的時(shí)候,可以按各種大小的單元制作固定長度管理領(lǐng)域,并適當(dāng)?shù)胤峙浯鎯?chǔ)器就可以非常方便地進(jìn)行管理。但是在無從得知分配大小的可變情況下就有了問題。即在固定長度管理領(lǐng)域中,因?yàn)橐呀?jīng)決定了分配的單元大小,所以,在所需的存儲(chǔ)器大小小于單元大小時(shí)就會(huì)導(dǎo)致存儲(chǔ)器的浪費(fèi)現(xiàn)象。而且,大于單元的時(shí)候,就會(huì)無法分配存儲(chǔ)器。這時(shí),要另行準(zhǔn)備可變長度管理領(lǐng)域進(jìn)行使用。
而在可變長度管理領(lǐng)域中,可以按所需大小分配存儲(chǔ)器,所以,在存儲(chǔ)器使用效率方面,與固定長度管理領(lǐng)域相比,要高。但是,要另行擁有關(guān)于分配的存儲(chǔ)器起始地址和大小的管理信息,所以在存儲(chǔ)器的負(fù)擔(dān)方面,與固定長度管理領(lǐng)域相比要大。
例如,在用于系統(tǒng)內(nèi)裝型的實(shí)時(shí)運(yùn)行體系-pSOS中,使用固定長度管理方法的時(shí)候,存儲(chǔ)管理信息的存儲(chǔ)器大小占管理存儲(chǔ)器領(lǐng)域的2-3%左右;但是,使用可變長度管理方法的時(shí)候,有時(shí)會(huì)出現(xiàn)占管理存儲(chǔ)器領(lǐng)域的20%,所以在可變長度管理方法里,存儲(chǔ)管理信息的負(fù)擔(dān)非常繁重。
如此,在傳統(tǒng)技術(shù)的存儲(chǔ)器管理方法中,尤其是在可變長度管理方法方面,管理領(lǐng)域占存儲(chǔ)器領(lǐng)域的20%。因而在實(shí)際數(shù)字電視里,按這種可變長度管理方法管理存儲(chǔ)器時(shí),由于管理用信息的存儲(chǔ)器很大,會(huì)產(chǎn)生不能全盤有效地利用存儲(chǔ)器的問題。
發(fā)明內(nèi)容本發(fā)明就是為了解決上述問題而開發(fā)的在數(shù)字電視中的存儲(chǔ)器管理方法。其目的在存儲(chǔ)管理數(shù)字電視相關(guān)的數(shù)據(jù)的可變長度存儲(chǔ)器管理方法中,利用兩個(gè)位影像(bitmap)來管理被分配的存儲(chǔ)器起始地址和大小值,因而可以減小利用可變長度管理方法中的管理信息存儲(chǔ)器大小。
為了達(dá)到上述目的,本發(fā)明數(shù)字式TV中的存儲(chǔ)器管理方法是由存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器領(lǐng)域,存儲(chǔ)器領(lǐng)域中表示分配的存儲(chǔ)器領(lǐng)域的第一bitmap,分配的存儲(chǔ)器領(lǐng)域中顯示第一位起始地址的第二bitmap構(gòu)成的管理情報(bào)領(lǐng)域來區(qū)分管理存儲(chǔ)器的可變長度管理方法中,如果存儲(chǔ)數(shù)據(jù)而需要存儲(chǔ)器,那么在第1位bitmap中,把對應(yīng)于所需存儲(chǔ)器長度之領(lǐng)域的對應(yīng)比特,按所需的存儲(chǔ)器長度設(shè)定為1;在第2位bitmap中,對應(yīng)于第1位bitmap的第一個(gè)起始地址的比特,設(shè)定為1,進(jìn)行管理存儲(chǔ)器分配的階段。存儲(chǔ)數(shù)據(jù)時(shí)要求的存儲(chǔ)變化所要求的話,計(jì)算反還存儲(chǔ)器領(lǐng)域的第一的長度信息;根據(jù)計(jì)算結(jié)果,在第1位bitmap中,把將要返還的存儲(chǔ)器領(lǐng)域設(shè)定的比特1轉(zhuǎn)換成0;將把對應(yīng)于轉(zhuǎn)換為0的第1位bitmap第一個(gè)起始地址的第2位bitmap比特1轉(zhuǎn)換成0后變換上述管理存儲(chǔ)的階段而組成為特點(diǎn)。
本發(fā)明是在存儲(chǔ)器的可變長度管理方法中,利用兩個(gè)位影像(bitmap)來減小管理信息存儲(chǔ)器的大小的。以bitmap來表現(xiàn)管理信息的分配存儲(chǔ)器起始地址和大小值,從而減小管理信息存儲(chǔ)器的大小。這時(shí),用一個(gè)bitmap來表示分配存儲(chǔ)器領(lǐng)域的起始地址;而用另一個(gè)bitmap則表示分配的領(lǐng)域。
在本發(fā)明提出的可變長度管理方法中,將要存入的管理信息有如下的基本內(nèi)容首先,有表示管理存儲(chǔ)器起始地址值的start-addr和表示管理存儲(chǔ)器長度的mem-length,還有表示被分配的管理領(lǐng)域存儲(chǔ)器字節(jié)大小的allocation-unit和表示分配領(lǐng)域時(shí)所使用的used-bitmap及表示分配領(lǐng)域里第一個(gè)起始地址時(shí)所用的start-bitmap。
在這里,表示分配的管理領(lǐng)域存儲(chǔ)器字節(jié)大小的allocation-unit,例如需要6字節(jié)存儲(chǔ)器的時(shí)候,如果allocation-unit為1(即分配的存儲(chǔ)器單元可為1字節(jié)),就將分配6個(gè)單元的6字節(jié);如果allocation-unit為4(即分配的存儲(chǔ)器單元可為4字節(jié)),就將分配包括6字節(jié)的兩個(gè)單元即8字節(jié)。通常,存儲(chǔ)器地址是以4字節(jié)單位來進(jìn)行存取(access)的;因此,在本發(fā)明里,將把a(bǔ)llocation-unit值設(shè)定為4來舉例說明。
對于used-bitmap,表示分配存儲(chǔ)器領(lǐng)域時(shí),初始值全由0來組成,與分配存儲(chǔ)器領(lǐng)域相對應(yīng)的比特則設(shè)定為1。利用這個(gè)bitmap可以掌握所需大小的可分配存儲(chǔ)器位置。還有,start-bitmap用來表示分配存儲(chǔ)器領(lǐng)域的起始地址,初始值是用0來填充的,只是對應(yīng)分配領(lǐng)域初始單位的比特設(shè)定為1。
下面利用兩個(gè)位影像的一部分來舉例說明used-bitmap和start-bitmap的用法。首先,在本發(fā)明的數(shù)字電視可變長度存儲(chǔ)器管理方法中,兩個(gè)位影像的初始狀態(tài)如下used-bitmap 0000 0000 0000 0000start-bitmap0000 0000 0000 0000.
下面,參照附圖就本發(fā)明的實(shí)例,加以詳細(xì)說明。
圖1是說明數(shù)字電視存儲(chǔ)器分配方法的流程圖。
圖2是說明本發(fā)明的數(shù)字電視存儲(chǔ)器返還方法的流程圖。
圖3是用來說明計(jì)算分配存儲(chǔ)器大小的流程圖。
具體實(shí)施方式參見圖1,在分配存儲(chǔ)器的時(shí)候,如果需求與字節(jié)單位的大小相對應(yīng)的存儲(chǔ)器(S1),那么將所需求的大小轉(zhuǎn)換成單元的個(gè)數(shù),并查找是否在used-bitmap中有0的連續(xù)個(gè)數(shù)為上述個(gè)數(shù)的部分(S2),并去判斷是否存在相對應(yīng)的領(lǐng)域(S3)。
判斷結(jié)果(S3),如果在used-bitmap中沒有相對應(yīng)的領(lǐng)域,就表示不能分配存儲(chǔ)器,因此要返還空(NULL)值(S4)。
但是,判斷結(jié)果(S3),如果存在相對應(yīng)的領(lǐng)域,就要分配所需的存儲(chǔ)器,并在used-bitmap中,按單元的個(gè)數(shù),將把相應(yīng)的比特轉(zhuǎn)換為1(S5)。
即在上面所提到的初始狀態(tài)中,如果首先需要16個(gè)存儲(chǔ)器領(lǐng)域中兩個(gè)單元的存儲(chǔ)器領(lǐng)域,那么在used-bitmap中,要去查找連續(xù)兩個(gè)比特值為0的部分(未使用的部分),并把相對應(yīng)的比特設(shè)定為1。而在start-bitmap中,只是把與起始地址相對應(yīng)的比特設(shè)定為1。因此,初始狀態(tài)的bitmap,將轉(zhuǎn)換為如下。
used-bitmap1100 0000 0000 0000隨后,在start-bitmap中,把相對應(yīng)領(lǐng)域的第一個(gè)比特轉(zhuǎn)換為1(S6)。
start-bitmap1000 0000 0000 0000.
然后,如果需要四個(gè)單元的分配存儲(chǔ)器,那么在used-bitmap中,要查找連續(xù)的兩個(gè)比特值為0的部分(未使用的部分)并把相對應(yīng)的比特設(shè)定為1。而在start-bitmap中,只把對應(yīng)于起始地址的比特設(shè)定為1。接著前面分配的領(lǐng)域,將分配used-bitmap和start-bitmap,于是bitmap變?yōu)槿缦聽顟B(tài)used-bitmap 1111 1100 0000 0000start-bitmap1010 0000 0000 0000.
而且,管理信息的內(nèi)容,就是管理存儲(chǔ)器的信息。因此若給出了start-addr和mem-length、allocation-unit,那么,要計(jì)算出bitmap大小,并用兩個(gè)bitmap來使用存儲(chǔ)器的一定領(lǐng)域。實(shí)際上,在上面加以說明的一個(gè)管理信息的bitmap大小如下men-length/allocation-unit/8
例如,如果管理的存儲(chǔ)器為1MB,allocation-unit值為4,那么,bitmap大小為1MB/4/8=32768=32KB。這里最后的的8是為了表示Byte單位的。
這時(shí),需要兩個(gè)bitmap;而對管理存儲(chǔ)器大小的管理信息負(fù)擔(dān)而言,除了bitmap以外,還有其他因素(start-addr,mem-length和allocation-unit)。現(xiàn)假設(shè)這些因素各自占4字節(jié),那么,為((32KB×2)+(4×3))/1MB,大約占6.25%。
這時(shí),假設(shè)allocation-unit是8(Bytes),那么管理信息大小的負(fù)擔(dān)是3.12%。
參見圖2,本發(fā)明的數(shù)字電視存儲(chǔ)器返還方法是在返還已經(jīng)使用完畢的存儲(chǔ)器的時(shí)候,在給出存儲(chǔ)器起始地址值(pmemphysical memory)的狀態(tài)下,如果要求返還對應(yīng)與起始地址值的存儲(chǔ)器(S11),那么要檢查起始地址值(pmem)是否是一個(gè)分配的存儲(chǔ)器起始地址(S12)。
這時(shí),在start-bitmap中,要查找與起始地址值(pmem)相對應(yīng)的比特,并判斷這個(gè)比特是否已經(jīng)設(shè)定為1(S13)。
判斷結(jié)果,如果相對應(yīng)的比特是設(shè)定為0,那么,就表示不能返還起始地址值(pmem),因此將返還差錯(cuò)(S14)。
但是,判斷結(jié)果(S13),在start-bitmap中,與起始地址值(pmem)相對應(yīng)的比特已被設(shè)定為1,而被判斷為起始地址值(pmem),那么,要按單元個(gè)數(shù)來計(jì)算起始地址值的分配大小(size)(S15)。
如果已經(jīng)求得分配的大小,那么要從對應(yīng)于used-bitmap起始地址值(pmem)位置的比特中,把對應(yīng)個(gè)數(shù)的比特轉(zhuǎn)換成0(S16);在start-bitmap中,則把對應(yīng)與起始地址值(pmem)位置的比特轉(zhuǎn)換成0(S17)。
在圖2中說明過bitmap轉(zhuǎn)換。下面對bitmap進(jìn)行返還變更做說明。在兩個(gè)領(lǐng)域和四個(gè)領(lǐng)域所分配的bitmap中,如果返還頭兩個(gè)領(lǐng)域,那么在used-bitmap中,要把頭兩個(gè)比特轉(zhuǎn)換為0;在start-bitmap中,則把頭比特轉(zhuǎn)換為0,其結(jié)果如下used-bitmap 0011 1100 0000 0000start-bitmap0010 0000 0000 0000.
參見圖3,曾在圖2的S15階段里提到分配存儲(chǔ)器大?。粓D3將說明計(jì)算該存儲(chǔ)器大小的方法。它將去比較used-bitmap和start-bitmap的同時(shí),對其大小進(jìn)行計(jì)算。
即在used-bitmap中,被分配的領(lǐng)域,設(shè)定為1;在start-bitmap中,除了第一個(gè)比特外,其它則被設(shè)定為0。而在兩個(gè)bitmap中,要查找不滿足這個(gè)條件的start-bitmap位置(i)(S21,22);而后,若在i位置中減掉used-bitmap的第一個(gè)比特位置(j),就會(huì)得出分配的存儲(chǔ)器大小(S23,S24),并將其結(jié)果進(jìn)行返還(S25)。
如同上述說明,在本發(fā)明的數(shù)字電視存儲(chǔ)器管理方法中,利用兩個(gè)bitmap,進(jìn)行可變長度存儲(chǔ)器管理,借以可獲得降低管理信息大小的效果。
權(quán)利要求
1.一種數(shù)字電視中的存儲(chǔ)器管理方法,其特征是將存儲(chǔ)器分成存儲(chǔ)數(shù)據(jù)的領(lǐng)域和在上述領(lǐng)域中設(shè)置一個(gè)管理信息的領(lǐng)域來進(jìn)行管理的。后者由表示分配存儲(chǔ)器領(lǐng)域的第1bitmap及表示起始地址的第2bitmap構(gòu)成。該可變長度管理方法由以下階段組成。即在第一階段,將按下述的方法分配管理存儲(chǔ)器。即,如果有要求存入數(shù)據(jù)的存儲(chǔ)器,那么在第1bitmap中,把對應(yīng)于所需存儲(chǔ)器長度之領(lǐng)域的對應(yīng)比特,按所需的存儲(chǔ)器長度設(shè)定為1;在第2bitmap中,對應(yīng)于第1bitmap的第一個(gè)起始地址的比特,設(shè)定為1。在第二階段,將按下述的方法返還管理存儲(chǔ)器。即,如果要求返還存儲(chǔ)數(shù)據(jù)所需的存儲(chǔ)器,那么就要去計(jì)算將要返還的存儲(chǔ)器領(lǐng)域的第1bitmap長度信息;根據(jù)計(jì)算結(jié)果,在第1bitmap中,把將要返還的存儲(chǔ)器領(lǐng)域設(shè)定的比特1轉(zhuǎn)換成0;將把對應(yīng)于轉(zhuǎn)換為0的第1bitmap第一個(gè)起始地址的第2bitmap比特1轉(zhuǎn)換成0。
全文摘要
本發(fā)明涉及數(shù)字電視存儲(chǔ)器的管理方法。該管理方法是如果為存儲(chǔ)數(shù)據(jù)而需要存儲(chǔ)器,那么在第1位中,把對應(yīng)于所需存儲(chǔ)器長度之領(lǐng)域的對應(yīng)比特,按所需的存儲(chǔ)器長度設(shè)定為1;在第2位bitmap中,對應(yīng)于第1位bitmap的第一個(gè)起始地址的比特,設(shè)定為1,進(jìn)行管理存儲(chǔ)器分配的階段。存儲(chǔ)數(shù)據(jù)時(shí)要求的存儲(chǔ)變化的話,計(jì)算反還存儲(chǔ)器領(lǐng)域的第一的長度信息;根據(jù)計(jì)算結(jié)果,在第1位bitmap中,把將要返還的存儲(chǔ)器領(lǐng)域設(shè)定的比特1轉(zhuǎn)換成0;將把對應(yīng)于轉(zhuǎn)換為0的第1位bitmap第一個(gè)起始地址的第2位bitmap的比特1轉(zhuǎn)換成0。這樣將可獲得減小管理信息存儲(chǔ)器大小的效果。本發(fā)明適合于數(shù)字電視存儲(chǔ)器中。
文檔編號(hào)H04N5/76GK1510916SQ0215690
公開日2004年7月7日 申請日期2002年12月23日 優(yōu)先權(quán)日2002年12月23日
發(fā)明者禹承均 申請人:樂金電子(沈陽)有限公司