專利名稱:存儲空間的地址管理方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機應(yīng)用技術(shù)領(lǐng)域,尤其涉及一種設(shè)備的存儲空間的地址 管理方法和裝置。
背景技術(shù):
在嵌入式設(shè)備中,由于受限于存儲空間的大小,需要充分地提高存儲空
間的利用率。分頁存儲空間管理算法是將存儲空間分為N個各種種類的頁,每 個頁可以有m、大小的存儲單元,m表示一頁中的slot (插槽)個數(shù),n表示一 個slot中的存儲單元個數(shù)。不同種類的頁中的m和/或n不相同。分頁內(nèi)存管理 算法的理論利用率可以達到(N-1廣N/2,而實測利用率可以達到98.5%。在采 用分頁內(nèi)存管理算法來管理存儲空間時,為提高利用率,有可能將存儲空間 d1位置中的信息搬移到d2位置,而存儲空間的上層才莫塊卻不會感知這個梯: 作,導(dǎo)致上層模塊再次訪問d1位置時,獲得了不正確的信息。
為解決上述問題,現(xiàn)有技術(shù)中的一種在發(fā)生存儲空間搬移時的編址方法 為當(dāng)存儲信息從存儲空間d1位置搬移到d2時,需要先將存儲空間d1位置的 信息搬移到d2位置,然后將所有對d1位置的引用修改到對d2位置的引用。而 對于存儲空間的上層模塊,如果已經(jīng)對d1位置產(chǎn)生了引用,則需要將該ch位 置的地址放入到棧中。在存儲空間搬移時,上層模塊需要修改棧中的d1位置 的地址為d2位置的地址,然后,上層模塊可以重新從棧中讀取該d2位置的地 址。
在實現(xiàn)本發(fā)明過程中,發(fā)明人發(fā)現(xiàn)上述編址方法至少存在如下問題在存儲空間發(fā)生搬移時,需要更新對被搬移空間的引用。并且上層模塊 對存儲空間的地址的引用都需要入棧,而在每次重新操作該存儲空間的地址 時,需要考慮從上次引用之后,該存儲空間是否發(fā)生了搬移,以保證對信息 引用的正確性。該方法不但在更新引用時會大量消耗設(shè)備資源,而且大大增 加了上層模塊的操作難度。
發(fā)明內(nèi)容
本發(fā)明實施例提供了 一種存儲空間的地址管理方法和裝置,以實現(xiàn)在發(fā) 生存儲空間搬移時,簡化上層模塊的操作難度,提高設(shè)備的資源利用率。
一種設(shè)備的存儲空間的地址管理方法,包括
給設(shè)備的存儲空間中已經(jīng)使用的存儲元素分配對應(yīng)的地址空間中的地址 元素,所述存儲元素中至少包括一個存儲單元;
當(dāng)所述存儲元素的地址信息發(fā)生變更時,對所述地址元素的地址進^^相 應(yīng)的變更。
一種設(shè)備的存儲空間的地址管理裝置,包括
地址元素分配模塊,用于給設(shè)備的存儲空間中已經(jīng)使用的存儲元素分配 對應(yīng)的地址空間中的地址元素,所述存儲元素中至少包括一個存儲單元;
地址元素變更模塊,用于當(dāng)所述存儲元素的地址信息發(fā)生變更時,對所 述地址元素的地址進行相應(yīng)的變更。
由上述本發(fā)明的實施例提供的技術(shù)方案可以看出,本發(fā)明實施例通過i殳 置和存儲空間對應(yīng)的地址空間,使地址空間中的地址元素和存々者空間中的存 儲元素互相對應(yīng)。實現(xiàn)了當(dāng)存儲空間中發(fā)生存儲元素搬移時,只需要將和該 存儲元素對應(yīng)的地址元素的地址進行相應(yīng)的^f務(wù)改,^t到將存儲元素的地址變 化封裝在存儲空間和地址空間內(nèi)部,降低了上層模塊的操作難度。
為了更清楚地i兌明本發(fā)明實施例的技術(shù)方案,下面將對實施例描述中所 需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā) 明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前 提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種存儲空間的地址管理方法的具體流程圖; 圖2為本發(fā)明實施例提供的一種搬移前的地址元素和存儲元素的對應(yīng)關(guān)系 示意圖3為本發(fā)明實施例提供的一種搬移后的地址元素和存儲元素的對應(yīng)關(guān)系 示意圖4為本發(fā)明實施例提供的一種存儲空間的地址管理裝置的具體實現(xiàn)結(jié)構(gòu)圖。
具體實施例方式
在本發(fā)明實施例中,分配一定數(shù)量的存儲空間和地址空間,所述存儲空 間中的存儲元素的總數(shù)和所述地址空間中的地址元素的總數(shù)相同,所述存儲 空間和地址空間可以設(shè)置在同一個設(shè)備上或不同設(shè)備上。然后,給設(shè)備的存 儲空間中已經(jīng)使用的存儲元素分配對應(yīng)的地址空間中的地址元素,所述存儲 元素中至少包括一個存儲單元,通過地址空間中的地址元素的地址,能夠索 引到存儲空間中的存儲元素,并讀取存儲元素的內(nèi)容。當(dāng)所述存儲元素的地 址信息發(fā)生變更時,對所述地址元素的地址進行相應(yīng)的變更。
為便于對本發(fā)明實施例的理解,下面將結(jié)合附圖以幾個具體實施例為例 做進一步的解釋說明,且各個實施例并不構(gòu)成對本發(fā)明實施例的限定。 實施例一該實施例提供的一種存儲空間的地址管理方法的具體流程如圖1所示,包
括如下處理步驟
步驟11:按照存儲空間的存儲元素總數(shù),分配相應(yīng)的地址空間。
獲取設(shè)備中存儲空間的存儲元素總數(shù),然后,分配地址元素總數(shù)和該存 儲元素總數(shù)相同的地址空間。
比如,當(dāng)設(shè)備中采用分頁存儲空間管理算法時,總共有M個頁,每一頁 包括n^n個存儲單元,m和n的最大值為256。上述m、個存儲單元組成一個行 為m、列為n的矩陣,該矩陣中每一行或一列存儲單元都可以看成存儲空間的 一個存儲元素。當(dāng)采用將一行存儲單元作為存儲空間的一個存儲元素時,則 存儲空間的存儲元素總數(shù)為IVTm。上述每個存儲元素和存儲單元都對應(yīng)一個 地址。
于是,分配IVTm個地址空間,該地址空間中包括IVTm個地址元素。
步驟12:對地址空間中的各個地址元素進4亍地址初始化,并將各個空閑 的地址元素用鏈表串聯(lián)起來。
在開始時,地址空間中的所有地址元素都沒有祐 使用,對地址空間中的 各個地址元素進行初始化,將各個地址元素的最高位置為1,代表該元素還沒 有被使用,在各個地址元素的其它位中記錄相鄰的下一個空閑的地址元素的 索引。于是,根據(jù)上述各個地址元素中記錄的索引,可以將各個空閑的地址 元素用鏈表串聯(lián)起來。
比如,當(dāng)?shù)刂房臻g的地址元素采用32位時,可以將第32bit設(shè)置為1,低 31bit記錄用來下一個空閑地址元素的索引。
步驟13、當(dāng)使用了存儲空間中的一個存儲元素來存儲信息時,從地址空 間中分配一個相應(yīng)的地址元素,該地址元素和上述存l諸元素互相對應(yīng)。當(dāng)使用了存儲空間中的一個存儲元素來存儲信息時,同時需要從地址空 間中分配一個相應(yīng)的地址元素,將該地址元素和上述存儲元素互相對應(yīng),并 且該地址元素的地址指向上述存儲元素中指定位置(比如第一個)的存儲單 元。
比如,當(dāng)設(shè)備中采用分頁存儲空間管理算法,并且將一頁中的一行存儲 單元作為一個存儲元素時, 一種搬移前的地址元素和存儲元素的對應(yīng)關(guān)系示
意圖如圖2所示。在圖2中,第3頁中的3個已經(jīng)使用了的存儲元素的地址分別 為0x100、 0x106和0x112。在地址空間中,序號為1、 5和9的地址元素分別 對應(yīng)上述3個地址為0x100、 0x106和0x112的存儲元素,上述序號為1、 5和9 的地址元素分別采用地址0x100.00、 0x106.00和0x112.00。上述存儲元素和 地址元素的地址采用了 16進制。
上述地址0x100.00的d 、數(shù)點之前的數(shù)字表示該地址元素對應(yīng)的存儲元素 的地址,小數(shù)點之后的數(shù)字表示該地址元素指向的存儲元素中存儲單元的偏 移,"00"表示是第一個存儲單元。如果是指向第3個存儲單元,則小數(shù)點之 后的數(shù)字為"03"。
上述序號為1、 5和9的地址元素分別對應(yīng)一個存儲元素,并且每個地址元 素的地址指向?qū)?yīng)的存儲元素中的第 一 個存儲單元。
在存儲空間的上層模塊中需要存儲上述地址元素和存儲元素的互相對應(yīng) 關(guān)系。
步驟14、當(dāng)存儲空間中發(fā)生存儲元素搬移時,將和該存儲元素對應(yīng)的地 址元素的地址進行相應(yīng)的修改,使修改后的地址元素重新對應(yīng)位于新的位置 的存儲元素。
當(dāng)發(fā)生某個存儲元素中的存儲單元將要被占滿等情況時,需要將該存儲 元素中存儲的信息搬移到新的位置上的新存儲元素中。并且將該存儲元素對應(yīng)的地址元素的地址也進行相應(yīng)的〗務(wù)改,使ff"改后的地址元素重新對應(yīng)上述 新存儲元素,并且使修改后的地址元素的地址指向上述新存儲元素中指定位 置(比如第一個)的存儲單元。
比如,上述圖2中的地址為0x106的存儲元素中的存儲單元將要被占滿
時,將該地址為0x106的存儲元素中存儲的信息搬移到地址為0x118的新存儲
的地址修改為0x118.00。 #般移后的地址元素和存儲元素的對應(yīng)關(guān)系示意圖如 圖3所示,搬移后的序號為5的地址元素對應(yīng)地址為0x118的新存儲元素,并 且序號為1的地址元素的地址指向新存儲元素的第 一個存儲單元。
該實施例實現(xiàn)了當(dāng)存儲空間中發(fā)生存儲元素搬移時,只需要將和該存儲 元素對應(yīng)的地址元素的地址進行相應(yīng)的修改。上層模塊不需要更新對^般移的 存儲元素的引用,不需要修改已經(jīng)存儲的地址元素和存儲元素的對應(yīng)關(guān)系, 仍然可以通過該對應(yīng)關(guān)系獲取新存儲元素對應(yīng)的地址空間中的;也址元素,才艮 據(jù)該地址元素的地址找到被搬移的存儲元素中的信息。從而簡化上層才莫塊的 操作難度,提高設(shè)備的資源利用率。
程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于 一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施 例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(Random Access Memory, RAM)等。
本發(fā)明實施例還提供了 一種存儲空間的地址管理裝置,用于實現(xiàn)上述方 法。其具體實現(xiàn)結(jié)構(gòu)如圖4所示,包括
地址元素分配模塊41,用于給設(shè)備的存儲空間中已經(jīng)使用的 儲元素分 配對應(yīng)的地址空間中的地址元素,所述存儲元素中至少包括一個存儲單元,通過地址空間中的地址元素的地址,能夠索引到存儲空間中的存儲元素,并 讀取存儲元素的內(nèi)容。
地址元素變更模塊42,用于當(dāng)所述存儲元素的地址信息發(fā)生變更時,對
所述地址元素的地址進4于相應(yīng)的變更。
所述的裝置還可以包括
地址空間建立模塊43,用于建立和所述存儲空間互相對應(yīng)的地址空間, 所述存儲空間中的存儲元素的總數(shù)和所述地址空間中的地址元素的總數(shù)相同。
比如,當(dāng)設(shè)備中采用分頁存儲空間管理算法時,總共有M個頁,每一頁 包括m^個存儲單元,m和n的最大值為256。上述m、個存儲單元組成一個行 為m、列為n的矩陣,該矩陣中每一行或一列存儲單元都可以看成存儲空間的 一個存儲元素。當(dāng)采用將一行存儲單元作為存儲空間的一個存儲元素時,則 存儲空間的存儲元素總數(shù)為IVTm。上述每個存儲元素和存儲單元都對應(yīng)一個 地址。
在開始時,地址空間中的所有地址元素都沒有^皮^(吏用,對地址空間中的 各個地址元素進行初始化,將各個地址元素的最高位置為1,代表該元素還沒 有被使用,在各個地址元素的其它位中記錄相鄰的下一個空閑的地址元素的 索引。于是,根據(jù)上述各個地址元素中記錄的索引,可以將各個空閑的地址 元素用鏈表串聯(lián)起來。
所述的地址元素分配模塊41包括
對應(yīng)處理模塊411,用于當(dāng)所述存儲空間中的一個存儲元素被使用時,從 所述地址空間中為所述存儲元素分配一個相應(yīng)的地址元素,將所述地址元素 和所述存儲元素互相對應(yīng);
地址處理模塊412,用于使所述對應(yīng)處理模塊所分配的地址元素的地址指 向所述存儲元素中指定位置(比如第一個)的存儲單元。所述的地址元素變更模塊42包括
對應(yīng)關(guān)系修改模塊421 ,用于當(dāng)將所述存儲元素中存儲的信息搬移到新的 位置上的新存儲元素中時,將所述存儲元素對應(yīng)的所述地址元素的地址進4亍 相應(yīng)^f奮改,佳 修改后的所述地址元素對應(yīng)所述新存4渚元素;
地址修改模塊422,用于使修改后的所述地址元素的地址指向所述新存儲 元素中指定位置的存儲單元。
本發(fā)明實施例可以應(yīng)用到嵌入式設(shè)備。
綜上所述,本發(fā)明實施例通過i殳置和存儲空間對應(yīng)的地址空間,使地址 空間中的地址元素和存儲空間中的存儲元素互相對應(yīng)。實現(xiàn)了當(dāng)存儲空間中 發(fā)生存儲元素搬移時,只需要將和該存儲元素對應(yīng)的地址元素的地址進行相 應(yīng)的修改。而不需要影響外部模塊的操作,做到將存儲元素的地址變化封裝 在存4諸空間和地址空間內(nèi)部。
本發(fā)明實施例實現(xiàn)了上層模塊不需要將存儲單元的地址入棧,不用關(guān)注 存儲元素的地址是否發(fā)生變化。當(dāng)存儲元素的地址發(fā)生變化時,上層模塊不 需要更新對搬移的存儲元素的引用,不需要修改已經(jīng)存儲的地址元素和存儲 元素的對應(yīng)關(guān)系,仍然可以通過該對應(yīng)關(guān)系獲取相應(yīng)的新存4諸元素的地址, 找到被搬移的存儲元素中的信息。從而簡化上層模塊的操作難度,提高設(shè)備 的資源利用率,提高設(shè)備的存儲空間的利用率。
以上所述,僅為本發(fā)明較佳的具體實施方式
,但本發(fā)明的保護范圍并不 局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可 輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明 的保護范圍應(yīng)該以權(quán)利要求的保護范圍為準。
權(quán)利要求
1、一種存儲空間的地址管理方法,其特征在于,包括給設(shè)備的存儲空間中已經(jīng)使用的存儲元素分配對應(yīng)的地址空間中的地址元素,所述存儲元素中至少包括一個存儲單元;當(dāng)所述存儲元素的地址信息發(fā)生變更時,對所述地址元素的地址進行相應(yīng)的變更。
2、 根據(jù)權(quán)利要求1所述的存儲空間的地址管理方法,其特征在于,所述 的給設(shè)備的存儲空間中已經(jīng)使用的存儲元素分配互相對應(yīng)的地址空間中的地 址元素之前,所述方法還包括建立和所述存儲空間互相對應(yīng)的地址空間,所述存儲空間中的存儲元素 的總數(shù)和所述地址空間中的地址元素的總數(shù)相同。
3、 根據(jù)權(quán)利要求2所述的存儲空間的地址管理方法,其特征在于,所述 的給設(shè)備的存儲空間中已經(jīng)使用的存儲元素分配互相對應(yīng)的地址空間中的地 址元素,包括當(dāng)所述存儲空間中的一個存儲元素被使用時,從所述地址空間中為所述 存儲元素分配一個相應(yīng)的地址元素,并且所述地址元素的地址指向所述存儲 元素中指定位置的存儲單元。
4、 根據(jù)權(quán)利要求1至3任一項所述的存儲空間的地址管理方法,其特征在 于,所述的當(dāng)所述存儲元素的地址信息發(fā)生變更時,對所述地址元素的地址 進行相應(yīng)的變更,包括當(dāng)將所述存儲元素中存儲的信息搬移到新的位置上的新存儲元素中時, 將所述存儲元素對應(yīng)的所述地址元素的地址進行相應(yīng)〗多改,4吏修改后的所述 地址元素對應(yīng)所述新存儲元素,并且^吏修改后的所述地址元素的地址指向所 述新存儲元素中指定位置的存儲單元。
5、 根據(jù)權(quán)利要求所述的存儲空間的地址管理方法,其特征在于,所述的 方法適用于嵌入式設(shè)備。
6、 一種存儲空間的地址管理裝置,其特征在于,包括 地址元素分配模塊,用于給設(shè)備的存儲空間中已經(jīng)使用的存儲元素分配對應(yīng)的地址空間中的地址元素,所述存儲元素中至少包括一個存儲單元;地址元素變更模塊,用于當(dāng)所述存儲元素的地址信息發(fā)生變更時,對所 述地址元素的地址進行相應(yīng)的變更。
7、 根據(jù)權(quán)利要求6所述的存儲空間的地址管理裝置,其特征在于,所述 的裝置還包括地址空間建立模塊,用于建立和所述存儲空間互相對應(yīng)的地址空間,所 述存儲空間中的存儲元素的總數(shù)和所述地址空間中的地址元素的總數(shù)相同。
8、 根據(jù)權(quán)利要求6所述的存儲空間的地址管理裝置,其特征在于,所述 的地址元素分配模塊包括對應(yīng)處理模塊,用于當(dāng)所述存儲空間中的一個存儲元素被使用時,從所 述地址空間中為所述存j諸元素分配一個相應(yīng)的地址元素,將所述地址元素和 所述存儲元素互相對應(yīng);地址處理模塊,用于使所述對應(yīng)處理模塊所分配的地址元素的地址指向 所述存儲元素中指定位置的存儲單元。
9、 根據(jù)權(quán)利要求6或7或8所述的存儲空間的地址管理裝置,其特4正在 于,所述的地址元素變更模塊包括對應(yīng)關(guān)系修改模塊,用于當(dāng)將所述存儲元素中存儲的信息搬移到新的位 置上的新存儲元素中時,將所述存儲元素對應(yīng)的所述地址元素的地址進4亍相 應(yīng)修改,使修改后的所述地址元素對應(yīng)所述新存儲元素;地址修改模塊,用于使修改后的所述地址元素的地址指向所述新存儲元 素中指定位置的存儲單元。
全文摘要
本發(fā)明實施例提供了一種存儲空間的地址管理方法和裝置。該方法主要包括給設(shè)備的存儲空間中已經(jīng)使用的存儲元素分配對應(yīng)的地址空間中的地址元素,當(dāng)所述存儲元素的地址信息發(fā)生變更時,對所述地址元素的地址進行相應(yīng)的變更。利用本發(fā)明,實現(xiàn)了當(dāng)存儲空間中發(fā)生存儲元素搬移時,只需要將和該存儲元素對應(yīng)的地址元素的地址進行相應(yīng)的修改,做到將存儲元素的地址變化封裝在存儲空間和地址空間內(nèi)部,降低了上層模塊的操作難度。
文檔編號G06F12/02GK101620571SQ20091015993
公開日2010年1月6日 申請日期2009年7月23日 優(yōu)先權(quán)日2009年7月23日
發(fā)明者商紅章, 猛 李, 郭玲波 申請人:華為技術(shù)有限公司