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