本發(fā)明的實(shí)現(xiàn)方式和實(shí)施例涉及存儲(chǔ)空間的管理,尤其是存儲(chǔ)器管理單元或本領(lǐng)域技術(shù)人員通常稱作的MMU,并且更特別地涉及用于管理虛擬存儲(chǔ)緩沖器和物理存儲(chǔ)器(例如直接存取存儲(chǔ)器(隨機(jī)存取存儲(chǔ)器或RAM)或可以形成這些易失性存儲(chǔ)器的擴(kuò)展的海量存儲(chǔ)設(shè)備(諸如硬盤))之間的可變大小的虛擬存儲(chǔ)空間的動(dòng)態(tài)分配的可應(yīng)用的存儲(chǔ)空間管理設(shè)備。
背景技術(shù):
這些動(dòng)態(tài)分配是由于源自控制裝置(諸如微處理器或直接存儲(chǔ)器存取(DMA)控制器,但是不限于這些示例)的例如分配虛擬存儲(chǔ)空間的請(qǐng)求。
通常而言,傳統(tǒng)的存儲(chǔ)空間管理設(shè)備通常將虛擬存儲(chǔ)空間分區(qū)成相同大小的多個(gè)頁(yè)面。因此,每個(gè)虛擬地址是包括第一字段和第二字段的對(duì),第一字段指示虛擬地址頁(yè)號(hào),第二字段表示與所述頁(yè)號(hào)相對(duì)應(yīng)的虛擬地址頁(yè)面內(nèi)的偏移。易失性存儲(chǔ)器通常包括被分區(qū)成與虛擬地址頁(yè)面具有相同大小的多個(gè)幀的物理地址空間。
這樣的設(shè)備還具有被配置用于將虛擬地址轉(zhuǎn)換成物理地址的頁(yè)面表。所述頁(yè)面表實(shí)際上使頁(yè)號(hào)與對(duì)應(yīng)的幀號(hào)相關(guān)聯(lián)。
由于虛擬地址頁(yè)面與物理地址幀具有相同的大小,所以這樣的設(shè)備通常沒(méi)有阻止可能的內(nèi)部碎片。
另外,響應(yīng)于對(duì)于虛擬存儲(chǔ)空間的分配請(qǐng)求,這樣的設(shè)備通常分配與易失性存儲(chǔ)器內(nèi)的合適的物理存儲(chǔ)空間相對(duì)應(yīng)的虛擬存儲(chǔ)空間中的一個(gè)或多個(gè)連續(xù)的虛擬緩沖器存儲(chǔ)器。由于大的緩沖器存儲(chǔ)器通常需要多個(gè)分配,所以在虛擬地址空間中會(huì)逐漸出現(xiàn)碎片,這 可能阻止給定大小的虛擬存儲(chǔ)空間的新的分配,即使空閑虛擬地址空間的大小之和大于所述給定大小。這種稱為“外部碎片”的問(wèn)題對(duì)本領(lǐng)域技術(shù)人員是已知的。
通常提供了基于包括不同大小的虛擬緩沖器存儲(chǔ)器或使用具體算法(諸如聯(lián)合算法)的虛擬存儲(chǔ)空間管理設(shè)備的多個(gè)解決方案,用于克服內(nèi)部碎片的問(wèn)題或者外部碎片的問(wèn)題。
然而,所提供的這些解決方案仍然存在以下缺陷中的至少一個(gè):內(nèi)部碎片、外部碎片和對(duì)應(yīng)設(shè)備中的微處理器處理。
技術(shù)實(shí)現(xiàn)要素:
因此,根據(jù)一個(gè)實(shí)現(xiàn)方式和實(shí)施例,提供了一種用于管理虛擬存儲(chǔ)空間的設(shè)備,其包括不同的虛擬地址機(jī)制用于明顯減少內(nèi)部碎片和外部碎片而沒(méi)有使用需要微處理器處理的具體算法。
根據(jù)另一實(shí)現(xiàn)方式和實(shí)施例,提供這樣的設(shè)備而沒(méi)有對(duì)硅表面積要求有太多影響。
根據(jù)一方面,提供了一種存儲(chǔ)空間管理方法。該方法包括響應(yīng)于針對(duì)虛擬存儲(chǔ)器內(nèi)具有給定存儲(chǔ)大小的虛擬存儲(chǔ)空間的分配請(qǐng)求,所述虛擬存儲(chǔ)器被分區(qū)為虛擬分區(qū),每個(gè)分區(qū)被細(xì)分為虛擬子分區(qū),每個(gè)子分區(qū)與物理存儲(chǔ)器的相同或不同大小的多個(gè)扇區(qū)的組合相對(duì)應(yīng),
a)選擇空閑分區(qū),
b)選擇與具有覆蓋要分配的虛擬存儲(chǔ)空間的所述給定存儲(chǔ)大小的最小總大小的扇區(qū)的組合相對(duì)應(yīng)的虛擬子分區(qū),
c)選擇與所述所選擇的組合相對(duì)應(yīng)的物理存儲(chǔ)器的空閑扇區(qū),
d)確定所選擇的虛擬分區(qū)與所述所選擇的空閑扇區(qū)的初始物理地址之間的對(duì)應(yīng)關(guān)系表,以及
e)生成虛擬地址,虛擬地址包括用于標(biāo)識(shí)所述所選擇的虛擬子分區(qū)的第一部分、以及意圖包含所述虛擬子分區(qū)內(nèi)所分配的所述虛擬存儲(chǔ)空間的不同地址的第二部分。
因此,可以有利地減少內(nèi)部碎片,因?yàn)檫@樣的方法支持可變大小的扇區(qū)。因此,可以向這樣的虛擬存儲(chǔ)器的虛擬分區(qū)(即虛擬緩沖器存儲(chǔ)器)分配最佳地與分配請(qǐng)求的給定存儲(chǔ)大小相對(duì)應(yīng)的不同大小的扇區(qū)。
另外,虛擬分區(qū)與多個(gè)非連續(xù)扇區(qū)相關(guān)聯(lián)的這一事實(shí)因此幫助減少外部碎片,因?yàn)樗鎏摂M緩沖器存儲(chǔ)器從處理器來(lái)看通常連續(xù)。在這樣的方法中不需要諸如聯(lián)合算法等具體算法,并且處理這樣的方法因此很快。
因此,標(biāo)識(shí)所選擇的扇區(qū)的信息被合并到所生成的虛擬地址中。
根據(jù)一個(gè)實(shí)現(xiàn)方式,第一部分包括用于標(biāo)識(shí)所述空閑分區(qū)的第一子部分、以及用于標(biāo)識(shí)所述空閑分區(qū)內(nèi)所選擇的子分區(qū)的第二子部分
扇區(qū)的大小可以從增加的參考大小的集合中來(lái)選擇。子分區(qū)的扇區(qū)的組合可以對(duì)應(yīng)于將扇區(qū)的第一數(shù)目與所述集合中第一大小相關(guān)聯(lián)、以及可選地對(duì)應(yīng)于將扇區(qū)的至少一個(gè)第二數(shù)目與緊鄰(immediately)在第一大小以上的所述集合中第二大小相關(guān)聯(lián)。第二子部分可以包括意圖標(biāo)識(shí)所述第一數(shù)目和可選地所述第二數(shù)目的第一字段、以及意圖標(biāo)識(shí)所述第一大小和可選地所述第二大小的第二字段。
當(dāng)沒(méi)有足夠的與所述所選擇的組合相對(duì)應(yīng)的第一大小的空閑扇區(qū)時(shí),則所述方法還可以包括在步驟c)之后的步驟b)的第一迭代,以確定與第一已調(diào)節(jié)組合相對(duì)應(yīng)的第一已調(diào)節(jié)子分區(qū),以使得第二字段關(guān)于所述所選擇的組合的第二字段遞增并且第一字段最小,所述方法還包括在步驟c)之后的步驟c)的第一迭代,用于選擇與所述第一已調(diào)節(jié)組合相對(duì)應(yīng)的空閑扇區(qū)。
如果沒(méi)有足夠的與所述第一已調(diào)節(jié)組合相對(duì)應(yīng)的第一大小的空閑扇區(qū),則所述方法還可以包括例如在步驟c)的第一迭代之后的步驟b)的第二迭代,以確定與第二已調(diào)節(jié)組合相對(duì)應(yīng)的第二已調(diào)節(jié)子分區(qū),以使得第二字段關(guān)于所述所選擇的組合的第二字段被遞增并 且第一字段最小,所述方法還包括在步驟c)之后的步驟c)的第二迭代,用于選擇與所述第二已調(diào)節(jié)組合相對(duì)應(yīng)的空閑物理扇區(qū)。
有利地,對(duì)應(yīng)關(guān)系表針對(duì)每個(gè)虛擬分區(qū)包括多個(gè)扇區(qū)索引,每個(gè)扇區(qū)索引意圖用所選擇的空閑扇區(qū)之一的初始物理地址來(lái)填充。
根據(jù)一個(gè)實(shí)現(xiàn)方式,扇區(qū)索引首先并首要地用具有最大存儲(chǔ)大小的所選擇的空閑扇區(qū)的初始物理地址來(lái)填充。
所生成的虛擬地址的所述第二部分可以包括例如多個(gè)索引字段,每個(gè)索引字段與專用于參考大小的所述集合中的不同大小的扇區(qū)的扇區(qū)索引相對(duì)應(yīng)。
該方法還可以包括根據(jù)在所述對(duì)應(yīng)關(guān)系表內(nèi),指定與從所述第一子部分中選擇的虛擬分區(qū)、所述第一參數(shù)、和表示所述對(duì)應(yīng)關(guān)系表的開(kāi)始地址的基本地址相對(duì)應(yīng)的扇區(qū)索引中的一個(gè)扇區(qū)索引。
通過(guò)非限制性示例,該方法包括在初始物理地址存儲(chǔ)在所述扇區(qū)索引中的所述所選擇的物理扇區(qū)內(nèi),根據(jù)所述第二參數(shù)和所述初始物理地址來(lái)指定與所述虛擬地址相對(duì)應(yīng)的絕對(duì)物理地址。
根據(jù)一個(gè)實(shí)現(xiàn)方式,參考大小的集合包括4個(gè)不同的參考大小,并且所述第二部分可以包括4個(gè)對(duì)應(yīng)的索引字段。
每個(gè)分布可以細(xì)分為例如32個(gè)虛擬子分區(qū)。
每個(gè)子分區(qū)可以與至多可以包括8個(gè)扇區(qū)的組合相對(duì)應(yīng)。
根據(jù)另一方面,提供了一種存儲(chǔ)空間管理設(shè)備。該設(shè)備包括:
虛擬存儲(chǔ)器和處理裝置,虛擬存儲(chǔ)器被分區(qū)成虛擬分區(qū),每個(gè)分區(qū)被細(xì)分為虛擬子分區(qū),物理存儲(chǔ)器包括多個(gè)扇區(qū),每個(gè)子分區(qū)對(duì)應(yīng)于與相同或不同大小的多個(gè)扇區(qū)的組合相對(duì)應(yīng),并且處理裝置被配置用于執(zhí)行:
選擇空閑分區(qū),
選擇與具有覆蓋要分配的虛擬存儲(chǔ)空間的所述給定存儲(chǔ)大小的最小總大小的扇區(qū)的組合相對(duì)應(yīng)的虛擬子分區(qū),
選擇與所述所選擇的組合相對(duì)應(yīng)的物理存儲(chǔ)器的空閑扇區(qū),
確定所選擇的虛擬分區(qū)與所述所選擇的空閑扇區(qū)的初始物理地 址之間的對(duì)應(yīng)關(guān)系表,以及
生成虛擬地址,虛擬地址包括用于標(biāo)識(shí)所述所選擇的虛擬子分區(qū)的第一部分、以及意圖包含所述虛擬子分區(qū)內(nèi)所分配的所述虛擬存儲(chǔ)空間的不同地址的第二部分。
根據(jù)一個(gè)實(shí)施例,第一部分包括用于標(biāo)識(shí)所述空閑分區(qū)的第一子部分、以及用于標(biāo)識(shí)所述空閑分區(qū)內(nèi)所選擇的子分區(qū)的第二子部分。
根據(jù)另一實(shí)施例,處理裝置還被配置用于從增加的參考大小的集合中來(lái)選擇扇區(qū)的大小,子分區(qū)的扇區(qū)的組合對(duì)應(yīng)于將扇區(qū)的第一數(shù)目與所述集合中第一大小相關(guān)聯(lián)、以及可選地將扇區(qū)的至少一個(gè)第二數(shù)目與對(duì)應(yīng)于緊鄰在第一大小以上的所述集合中第二大小相關(guān)聯(lián),第二子部分包括意圖標(biāo)識(shí)所述第一數(shù)目和可選地所述第二數(shù)目的第一字段、以及意圖標(biāo)識(shí)所述第一大小和可選地所述第二大小的第二字段。
當(dāng)沒(méi)有足夠的與所述所選擇的組合相對(duì)應(yīng)的第一大小的空閑扇區(qū)時(shí),處理裝置還可以被配置用于確定對(duì)應(yīng)于第一已調(diào)節(jié)組合的第一已調(diào)節(jié)子分區(qū),以使得第二字段關(guān)于所述所選擇的組合的第二字段被遞增并且第一字段最小,并且處理裝置還可以被配置用于選擇與所述第一已調(diào)節(jié)組合相對(duì)應(yīng)的空閑扇區(qū)。
另外,當(dāng)沒(méi)有足夠的與所述第一已調(diào)節(jié)組合相對(duì)應(yīng)的第一大小的空閑扇區(qū)時(shí),處理裝置還可以被配置用于確定與第二已調(diào)節(jié)組合相對(duì)應(yīng)的第二已調(diào)節(jié)子分區(qū),以使得第二字段關(guān)于所述所選擇的組合的第二字段被遞增并且第一字段最小,并且處理裝置還可以被配置用于選擇與所述第二已調(diào)節(jié)組合相對(duì)應(yīng)的空閑扇區(qū)。
有利地,對(duì)應(yīng)關(guān)系表可以被合并到物理存儲(chǔ)器中并且針對(duì)每個(gè)虛擬分區(qū)包括多個(gè)扇區(qū)索引,每個(gè)扇區(qū)索引意圖用所選擇的空閑扇區(qū)中的一個(gè)空閑扇區(qū)的初始物理地址來(lái)填充。
根據(jù)一個(gè)實(shí)施例,扇區(qū)索引首先并首要地用具有最大存儲(chǔ)大小的所選擇的空閑扇區(qū)的初始物理地址來(lái)填充。
所述第二部分的每個(gè)地址包括例如多個(gè)索引字段,每個(gè)索引字段與專用于參考大小的所述集合中的不同大小的扇區(qū)的扇區(qū)索引相對(duì)應(yīng)。
處理裝置還可以被配置用于根據(jù)所述索引字段和所述第二子部分生成第一扇區(qū)參數(shù)和第二扇區(qū)參數(shù)。
物理存儲(chǔ)器還可以包括指示所述對(duì)應(yīng)關(guān)系表的開(kāi)始地址的基本地址,處理裝置可以被配置用于在所述對(duì)應(yīng)關(guān)系表內(nèi),指定與從所述第一子部分中選擇的虛擬分區(qū)、所述第一參數(shù)、和所述基本地址(AB)相對(duì)應(yīng)的扇區(qū)索引中的一個(gè)扇區(qū)索引。
處理裝置可以被配置用于在初始物理地址存儲(chǔ)在所述扇區(qū)索引中的所述所選擇的物理扇區(qū)內(nèi),根據(jù)所述第二參數(shù)和所述初始物理地址指定與所述虛擬地址相對(duì)應(yīng)的絕對(duì)物理地址。
根據(jù)一個(gè)實(shí)施例,參考大小的集合包括4個(gè)不同的參考大小,并且所述第二部分可以包括4個(gè)對(duì)應(yīng)的索引字段。每個(gè)分布可以細(xì)分為32個(gè)虛擬子分區(qū)。每個(gè)子分區(qū)可以與至多可以包括8個(gè)扇區(qū)的組合相對(duì)應(yīng)。
附圖說(shuō)明
在研究作為非限制性示例給出并且通過(guò)附圖圖示的實(shí)現(xiàn)方式和實(shí)施例的詳細(xì)說(shuō)明之后將很清楚本發(fā)明的其他的優(yōu)點(diǎn)和特征,在附圖中:
圖1到10涉及本發(fā)明的不同的實(shí)現(xiàn)方式和實(shí)施例。
具體實(shí)施方式
圖1圖示例如低能耗通信系統(tǒng)類型的電子裝置AE的非常示意性的一個(gè)示例,其包括根據(jù)本發(fā)明的存儲(chǔ)空間管理設(shè)備DIS。
所述設(shè)備DIS包括虛擬存儲(chǔ)器MV,MV包括虛擬存儲(chǔ)空間。所述虛擬存儲(chǔ)器MV被分區(qū)為形成虛擬緩沖器存儲(chǔ)器的多個(gè)虛擬分區(qū)PV0到PVN(圖2中圖示)。
所述設(shè)備DIS還包括物理存儲(chǔ)器MP,MP包括相同或不同大小的多個(gè)扇區(qū)SMP0到SMPM以及對(duì)應(yīng)關(guān)系表TC。
所述物理扇區(qū)SMP0到SMPM具有多個(gè)(例如4個(gè))不同的大小。物理存儲(chǔ)器MP針對(duì)每個(gè)給定扇區(qū)大小包括多個(gè)扇區(qū)SMPk。
物理存儲(chǔ)器MP還包括4個(gè)扇區(qū)索引表TIS1到TIS4,每個(gè)扇區(qū)索引表對(duì)應(yīng)于所述不同大小之一的扇區(qū)。這些扇區(qū)索引表TIS1到TIS4被配置用于檢測(cè)對(duì)應(yīng)大小的扇區(qū)SMPk的空閑特征等。
所述設(shè)備DIS還包括與所述虛擬存儲(chǔ)器MV和所述物理存儲(chǔ)器MP通信的處理裝置MT。
處理裝置MT被配置用于接收源自控制裝置(諸如微處理器或DMA控制器)的對(duì)于虛擬存儲(chǔ)器MV內(nèi)具有給定存儲(chǔ)大小的虛擬存儲(chǔ)空間的分配請(qǐng)求DA。
響應(yīng)于這一分配請(qǐng)求DA,處理裝置MT被配置用于遞送虛擬地址AV,以使得控制裝置MC能夠?qū)ぶ芬严蚱浞峙涞奶摂M存儲(chǔ)空間。
如下面更詳細(xì)地可見(jiàn),虛擬地址AV尤其使得能夠?qū)ぶ放c物理存儲(chǔ)器MP中相同或不同大小的多個(gè)扇區(qū)SMP0到SMPM的組合相對(duì)應(yīng)的所述虛擬存儲(chǔ)器MV的空閑虛擬分區(qū)PV。
處理裝置MT可以在微處理器內(nèi)用軟件形式來(lái)實(shí)現(xiàn)。
應(yīng)當(dāng)注意,控制裝置MC、虛擬存儲(chǔ)器MV和處理裝置MT處理虛擬地址,而物理存儲(chǔ)器MP處理物理地址。
物理存儲(chǔ)器MP的所述對(duì)應(yīng)關(guān)系表TC影響處理裝置MT所選擇的虛擬分區(qū)PVi與向所述所選擇的虛擬分區(qū)PVi分配的扇區(qū)的初始物理地址API之間的對(duì)應(yīng)關(guān)系。
下面詳述所述設(shè)備的每個(gè)部件的架構(gòu)和操作。
虛擬存儲(chǔ)器MV的每個(gè)分區(qū)PVi包括分區(qū)編號(hào)。所述虛擬存儲(chǔ)器MV具有虛擬分區(qū)索引表TIPV,虛擬分區(qū)索引表TIPV用所述分區(qū)編號(hào)來(lái)索引并且指示每個(gè)分區(qū)PV的可用性的狀態(tài)。虛擬分區(qū)的數(shù)目由可以被請(qǐng)求的虛擬緩沖器存儲(chǔ)器的最大數(shù)目來(lái)定義。
如以上所指出的,處理裝置MT被配置用于響應(yīng)于對(duì)于具有給 定大小的虛擬存儲(chǔ)空間的分配請(qǐng)求DA來(lái)選擇空閑分區(qū)PV。
如果沒(méi)有分區(qū)PVi空閑,則處理裝置MT向控制裝置MC指示其分配請(qǐng)求不能被滿足。
現(xiàn)在參考圖2以更詳細(xì)地說(shuō)明虛擬存儲(chǔ)器MV的架構(gòu)。
每個(gè)虛擬分區(qū)PVi細(xì)分為虛擬子分區(qū)SPVj,每個(gè)子分區(qū)與相同或不同大小的多個(gè)物理扇區(qū)SMPk的不同組合相對(duì)應(yīng)。
作為非限制性示例,每個(gè)虛擬分區(qū)PVi占用512KB的虛擬存儲(chǔ)空間,并且包括32個(gè)子分區(qū),每個(gè)子分區(qū)與16KB的虛擬存儲(chǔ)空間相對(duì)應(yīng)。
處理裝置MT還被配置用于選擇與扇區(qū)SMPk的組合相對(duì)應(yīng)的虛擬子分區(qū)SPVj。每個(gè)子分區(qū)SPVj與最多可以包括8個(gè)扇區(qū)SMPk的組合相對(duì)應(yīng)。扇區(qū)SMPk的這一組合被配置用于具有覆蓋要分配虛擬存儲(chǔ)空間的所述給定存儲(chǔ)大小的最小總大小以減小內(nèi)部碎片。
另外,由于可以向控制裝置MC分配的最大物理存儲(chǔ)大小與虛擬子分區(qū)SPVi的大小(即16KB)相對(duì)應(yīng),所以將所述設(shè)備DIS的外部碎片有利地減小為零。
換言之,在此,對(duì)于所述設(shè)備DIS內(nèi)的虛擬存儲(chǔ)空間的分配請(qǐng)求具有從不大于虛擬緩沖器存儲(chǔ)器的大小。
對(duì)于每個(gè)虛擬分區(qū)PVi,對(duì)應(yīng)關(guān)系表TC包括虛擬分區(qū)索引IPV1。每個(gè)索引IPV1與8個(gè)扇區(qū)索引IPV1IS0到IPV1IS7相關(guān)聯(lián)。每個(gè)扇區(qū)索引IS0到IS7能夠用針對(duì)所述對(duì)應(yīng)虛擬分區(qū)PVi選擇的空閑物理扇區(qū)SMPk中的一個(gè)空閑物理扇區(qū)的初始物理地址API來(lái)填充。
處理裝置MT被配置用于根據(jù)所述扇區(qū)索引表TIS1到TIS4的內(nèi)容來(lái)選擇與所述所選擇的組合相對(duì)應(yīng)的空閑扇區(qū)SMPk。一旦選擇扇區(qū),則處理裝置MT還通過(guò)使用所述所選擇的扇區(qū)的初始物理地址填充對(duì)應(yīng)扇區(qū)索引來(lái)確定所述對(duì)應(yīng)關(guān)系表TC。
例如,從圖2可知,扇區(qū)IPV0SMP0到IPV0SMP5被選擇,但是其余扇區(qū)IPV0SMP6到IPV0SMP7沒(méi)有使用。
一旦已經(jīng)選擇扇區(qū)IPV0SMP0到IPV0SMP5,處理裝置就被配 置用于在與第一虛擬分區(qū)PV0相對(duì)應(yīng)的第一虛擬分區(qū)索引IPV0的扇區(qū)索引IS0到IS5中分別寫入這些扇區(qū)IPV0SMP0到IPV0SMP5的初始物理地址API。
應(yīng)當(dāng)注意,扇區(qū)IPV0SMP0的大小大于與虛擬分區(qū)索引IPV0相對(duì)應(yīng)的其他扇區(qū)IPV0SMP1到IPV0SMP7的大小,因?yàn)樯葏^(qū)索引IS0到IS7首先并首要地用具有最大存儲(chǔ)大小的本示例中的所選擇的空閑扇區(qū)的初始物理地址被填充。
現(xiàn)在參考圖3以進(jìn)一步詳細(xì)說(shuō)明虛擬地址AV的組成的示例。
作為非限制性示例,圖3中在此圖示的虛擬地址AV包括適合在32比特系統(tǒng)中實(shí)現(xiàn)的32比特字。當(dāng)然,根據(jù)其中應(yīng)用所述設(shè)備DIS的系統(tǒng),也可以提供48比特或64比特的虛擬地址AV。
虛擬地址AV的前四個(gè)最高有效位28到31在向虛擬存儲(chǔ)器MV分配的總線上定義地址幀,并且通常保持恒定,例如等于0011。
這些比特的數(shù)目可以根據(jù)設(shè)想的應(yīng)用來(lái)變化。通常,可以有利地提供最大虛擬范圍,而不與已經(jīng)向總線上存在的其他外圍設(shè)備分配的現(xiàn)有的范圍沖突。
以下14個(gè)最高有效位14到27形成用于標(biāo)識(shí)所述所選擇的子分區(qū)SPVi的第一部分P1,并且14個(gè)最低有效位0到13形成意圖包含所述虛擬子分區(qū)SPVi內(nèi)所分配的所述虛擬存儲(chǔ)空間的不同地址的第二部分P2。這14個(gè)比特對(duì)應(yīng)于16KB的大小。
另外,第一部分P1的前9個(gè)最高有效位19到27形成用于標(biāo)識(shí)所述空閑分區(qū)PV的第一子部分SP1。實(shí)際上,第一子部分SP1中包含的二進(jìn)制值與在虛擬分區(qū)索引表TIPV中找到的空閑虛擬分區(qū)的分區(qū)數(shù)目相對(duì)應(yīng)。
第一部分P1的5個(gè)最低有效位14到18形成第二子部分SP2,該第二子部分SP2包括三個(gè)比特14到16的第一字段C1以及兩個(gè)比特17和18的第二字段C2。這兩個(gè)字段C1和C2意圖標(biāo)識(shí)扇區(qū)的組合。
更精確地,扇區(qū)的大小選自增加的參考大小的集合JTF,其包括 4個(gè)不同的參考大小,例如:4個(gè)字節(jié),32個(gè)字節(jié),256個(gè)字節(jié)和2048個(gè)字節(jié)(即2KB),如圖4中圖示。
子分區(qū)的扇區(qū)的組合由將所述集合JTF中的第一大小T1與扇區(qū)的第一數(shù)目N1相關(guān)聯(lián)、以及可選地將緊鄰在第一大小T1以上的所述集合JTF中的第二大小T2與扇區(qū)的第二數(shù)目N2相關(guān)聯(lián)來(lái)定義。
如圖4中圖示的,所述第一字段C1意圖標(biāo)識(shí)所述第一數(shù)目N1以及可選地所述第二數(shù)目N2,注意,第一數(shù)目N1和第二數(shù)目N2之和恒定并且在此等于8。因此,當(dāng)?shù)谝蛔侄蜟1的二進(jìn)制等于111時(shí),第一數(shù)目N1和第二數(shù)目N2分別等于8和0。
所述第二字段C2意圖標(biāo)識(shí)所述第一大小T1和可選地所述第二大小T2。如圖4中可見(jiàn),在本示例中,當(dāng)所述第二字段C2具有最大二進(jìn)制值11時(shí),不存在第二大小T2的物理扇區(qū)。
所生成的虛擬地址AV的所述第二部分P2還包括(圖3)多個(gè)索引字段,在此例如為4個(gè)索引字段CI4、CI32、CI256和CI2048,每個(gè)索引字段與專用于所述參考大小的集合JTF中的不同大小(4字節(jié)、32字節(jié)、256字節(jié)和2048字節(jié))的扇區(qū)的扇區(qū)索引IS0到IS7相對(duì)應(yīng)。每個(gè)索引字段CI4、CI32、CI256和CI2048分別具有3個(gè)相鄰比特2到4、5到7、8到10和11到13。
第二部分P2的最低有效位0和1是偏移比特D,其有助于分配給定大小的扇區(qū)內(nèi)的可能位置。
因此,0和1比特是針對(duì)大小為4字節(jié)的扇區(qū)的偏移比特,比特0到4是針對(duì)大小為32字節(jié)的扇區(qū)的偏移比特。作為類比,比特0到7是針對(duì)大小為256字節(jié)的扇區(qū)的偏移比特,比特0到10是針對(duì)大小為2048字節(jié)的扇區(qū)的偏移比特。
基于所述第二子部分SP2的所述索引字段CI4、CI32、CI256和CI2048以及字段C1和C2,圖5圖示第一扇區(qū)參數(shù)PS1和第二扇區(qū)參數(shù)PS2的生成。
當(dāng)?shù)诙侄蜟2等于00時(shí),第一扇區(qū)參數(shù)PS1等于與大小為32字節(jié)的扇區(qū)相對(duì)應(yīng)的索引字段CI32,并且如果第一字段C1大于索 引字段CI32,則第二扇區(qū)參數(shù)PS2取第二部分P2的5個(gè)最低有效位的二進(jìn)制值。
否則,第一扇區(qū)參數(shù)PS1等于索引字段CI32與索引字段CI4之和,并且第二扇區(qū)參數(shù)PS2取第二部分P2的2個(gè)最低有效位的二進(jìn)制值。
當(dāng)?shù)诙侄蜟2等于01時(shí),第一扇區(qū)參數(shù)PS1等于與大小為256比特的扇區(qū)相對(duì)應(yīng)的索引字段CI256,并且如果第一字段C1大于索引字段CI256,則第二扇區(qū)參數(shù)PS2取第二部分P2的8個(gè)最低有效位的二進(jìn)制值。
否則,第一扇區(qū)參數(shù)PS1等于索引字段CI256與索引字段CI32之和,并且第二扇區(qū)參數(shù)PS2取第二部分P2的5個(gè)最低有效位的二進(jìn)制值。
當(dāng)?shù)诙侄蜟2等于10時(shí),第一扇區(qū)參數(shù)PS1等于與大小為2048比特的扇區(qū)相對(duì)應(yīng)的索引字段CI2048,并且如果第一字段C1大于索引字段CI2048,則第二扇區(qū)參數(shù)PS2取第二部分P2的11個(gè)最低有效位的二進(jìn)制值。
否則,第一扇區(qū)參數(shù)PS1等于索引字段CI2048與索引字段CI256之和,并且第二扇區(qū)參數(shù)PS2取第二部分P2的8個(gè)最低有效位的二進(jìn)制值。
當(dāng)?shù)诙侄蜟2等于11時(shí),第一扇區(qū)參數(shù)PS1等于與大小為2048比特的扇區(qū)相對(duì)應(yīng)的索引字段CI2048,并且第二扇區(qū)參數(shù)PS2取第二部分P2的11個(gè)最低有效位的二進(jìn)制值。
圖6圖示所述對(duì)應(yīng)關(guān)系表TC內(nèi)的扇區(qū)索引指示符的操作。
如圖2中已經(jīng)圖示的,對(duì)應(yīng)關(guān)系表TC包括多個(gè)虛擬分區(qū)索引IPV0到IPVN。每個(gè)虛擬分區(qū)索引IPV0到IPVN包括8個(gè)扇區(qū)索引IS0到IS7,并且每個(gè)虛擬分區(qū)索引的大小為8*4個(gè)字節(jié)。因此,每個(gè)扇區(qū)索引的大小是4個(gè)字節(jié)或者32個(gè)比特。
寄存器還包括指示所述對(duì)應(yīng)關(guān)系表TC的開(kāi)始地址的基本地址AB。
使用所述第一子部分SP1、所述第一扇區(qū)參數(shù)PS1和物理存儲(chǔ)器MP的所述基本地址AB,處理裝置MT被配置用于分配與所選擇的虛擬分區(qū)PVi相對(duì)應(yīng)的扇區(qū)索引ISl之一。SP1的內(nèi)容指定對(duì)應(yīng)的索引IPVi。所述第一參數(shù)PS1指定所選擇的虛擬分區(qū)索引IPVi內(nèi)的扇區(qū)索引數(shù)目ISj。
例如,等于2的第一子部分SP1對(duì)應(yīng)于索引IPV1,等于3的第一參數(shù)PS1對(duì)應(yīng)于扇區(qū)索引IS2。包含在索引IPV1中的這一扇區(qū)索引IS2包含所選擇的物理扇區(qū)IPV1SMP2的初始物理地址API。
為了獲取與所述虛擬地址AV相對(duì)應(yīng)的絕對(duì)物理地址APA,處理裝置MT還被配置用于由于初始物理地址API而指定(圖7)所選擇的扇區(qū)IPV1SMP2的開(kāi)始。第二參數(shù)PS2與所選擇的物理扇區(qū)IPV1SMP2內(nèi)的偏移相對(duì)應(yīng)。
現(xiàn)在參考圖8到10以說(shuō)明根據(jù)本發(fā)明的存儲(chǔ)空間管理方法的示例。
處理裝置MT接收對(duì)于大小例如為850字節(jié)的虛擬存儲(chǔ)空間的分配請(qǐng)求DA。
如圖8中所圖示的,處理裝置MT首先檢查虛擬分區(qū)索引表TIPV以便選擇空閑虛擬分區(qū)PVi。
在圖示的示例中,虛擬分區(qū)索引表TIPV包括分別與32個(gè)不同的虛擬分區(qū)PV0到PV31相對(duì)應(yīng)的32個(gè)虛擬分區(qū)索引。
索引的非零值表示對(duì)應(yīng)的虛擬分區(qū)PVi空閑。因此,處理裝置MT例如檢查所述表TIPV的每個(gè)比特,直到它們找到非零值。該示例假定處理裝置MT選擇與虛擬分區(qū)索引表TIPV中的編號(hào)30(數(shù)值)相對(duì)應(yīng)的空閑虛擬分區(qū)PV30。
處理裝置MT然后執(zhí)行計(jì)算以確定具有覆蓋850個(gè)字節(jié)的最小總大小的物理扇區(qū)SMPk的組合。
首先,處理裝置MT執(zhí)行計(jì)算以確定具有第二大小T2的扇區(qū)SMP。在這一點(diǎn)上,850個(gè)字節(jié)的給定大小按照緊鄰在給定大小以下的扇區(qū)大小被劃分,在此,給定大小為對(duì)應(yīng)于所述大小T2的256字 節(jié)。通過(guò)將結(jié)果向下取舍到最大整數(shù),獲取十進(jìn)位值等于3并且二進(jìn)制值等于011的第一字段C1。
因此,參考圖4,可見(jiàn),N2=3,其與大小為T2的3個(gè)扇區(qū)相對(duì)應(yīng)。另外,N1等于5。
其次,處理裝置MT確定大小小于256字節(jié)(即在此為32字節(jié))的扇區(qū)的數(shù)目。通過(guò)將(850-256*3)/32的結(jié)果向上取舍到最小整數(shù),大小為32字節(jié)的扇區(qū)的數(shù)目為3。因此,在N1(=5)個(gè)可能的扇區(qū)中,僅使用大小為T1(32字節(jié))的3個(gè)扇區(qū)。
然后處理裝置MT如下計(jì)算所分配的虛擬存儲(chǔ)大?。?56*3+32*3=864字節(jié)。參考圖4,還可見(jiàn),C2的十進(jìn)位值等于1(二進(jìn)制值等于01)。
如果不能滿足扇區(qū)SMP的所述所選擇的組合CS(字段C1和C2),則所述計(jì)算還具有兩個(gè)迭代步驟,如圖10中圖示的。
在第一步驟E1,處理裝置MT檢查是否有足夠的與所述所選擇的組合CS相對(duì)應(yīng)的小的大小T1的空閑物理扇區(qū)SMP,即在此為32字節(jié)的扇區(qū)SMP。
如果檢查結(jié)果為否定,則處理裝置MT再次確定第二字段C2增加(2而非1)并且第一字段C1最小(0)的第一已調(diào)節(jié)組合CA1。處理裝置MT然后選擇與所述第一已調(diào)節(jié)組合CA1相對(duì)應(yīng)的空閑扇區(qū)SMP。
在第二步驟E2,處理裝置MT再次檢查是否有足夠的與所述第一已調(diào)節(jié)組合CA1相對(duì)應(yīng)的小的大小T1的空閑扇區(qū)SMP,即在此為256字節(jié)的扇區(qū)SMP。
如果檢查結(jié)果仍然為否定,則處理裝置MT再次確定第二字段C2增加(3而非2)并且第一字段C1最小(0)的第二已調(diào)節(jié)組合CA2。處理裝置MT然后通過(guò)查詢對(duì)應(yīng)大小的一個(gè)或兩個(gè)扇區(qū)索引表TIS1到TIS4來(lái)選擇與所述第一已調(diào)節(jié)組合CA2相對(duì)應(yīng)的空閑扇區(qū)SMP。
當(dāng)在物理存儲(chǔ)器MP中找到空閑扇區(qū)SMP時(shí),使用這些扇區(qū) IPV30SMP0到IPV30SMP7的初始物理地址API來(lái)填充與所述所選擇的扇區(qū)PV30相對(duì)應(yīng)的虛擬分區(qū)索引IPV30內(nèi)的扇區(qū)索引IS0到IS7。
應(yīng)當(dāng)注意,扇區(qū)索引IS0到IS7在此首先并首要地用具有更大的大小T2的扇區(qū)SMP的初始物理地址API來(lái)填充。
如果有足夠的空閑的大的大小T2并且空閑的小的T2的扇區(qū)SMP,圖9中圖示處理裝置MT生成的虛擬地址AV。
向控制裝置MC返回的所述虛擬地址AV包括來(lái)自第一部分P1的指示所選擇的空閑虛擬分區(qū)PV30和所選擇的組合CS(兩個(gè)字段C1和C2)的數(shù)目(用二進(jìn)制表示)的信息以及第二部分P2。第二部分P2被設(shè)置為0,其與所分配的第一扇區(qū)IPV30SMP0的初始物理地址API相對(duì)應(yīng),即在此為與虛擬分區(qū)IPV30相對(duì)應(yīng)的第一扇區(qū)索引IPV30IS0。這一扇區(qū)IPV30IS0包含大小為256字節(jié)的所選擇的扇區(qū)IPV30SMP 0的初始物理地址API。
控制裝置(例如處理器CPU)然后增加部分P2,并且處理器增加的每個(gè)虛擬地址與將對(duì)應(yīng)關(guān)系表TC考慮在內(nèi)的物理存儲(chǔ)器MP中的物理地址相對(duì)應(yīng)。
虛擬地址AV的生成非常迅速,并且需要非常少的處理器時(shí)鐘周期。
還減小了這樣的設(shè)備DIS上的硅表面空間的要求,因?yàn)閷?duì)應(yīng)關(guān)系表和索引表TIPV、TIS1到TIS4被合并在物理存儲(chǔ)器MP內(nèi)。
虛擬分區(qū)PV(換言之虛擬緩沖器存儲(chǔ)器)可以根據(jù)應(yīng)用具有不同大小。
本發(fā)明不限于已經(jīng)描述的實(shí)現(xiàn)方式和實(shí)施例,而是包括其所有變型。
因此,雖然已經(jīng)描述了具有兩個(gè)不同大小的增加的參考大小的集合JTR,但是所述集合可以包括多于兩個(gè)大小,其還可以按照任何大小順序來(lái)布置,只要這一順序已知。
因此,子分區(qū)SPVj的扇區(qū)SMPk的組合可以對(duì)應(yīng)于將所述集合 JTR中第一大小T1與扇區(qū)SMPk的第一數(shù)目N1相關(guān)聯(lián)、以及可選地將對(duì)應(yīng)于按照大小順序與第一大小T1緊鄰的所述集合JTR中第二大小T2與扇區(qū)SMPk的至少一個(gè)第二數(shù)目N2相關(guān)聯(lián)。
第二子部分SP2因此可以包括意圖標(biāo)識(shí)所述第一數(shù)目N1和可選地至少所述第二數(shù)目N2的第一字段C1、以及意圖標(biāo)識(shí)所述第一大小T1和可選地至少所述第二大小T2的第二字段C2。
因此能夠具有第三數(shù)目以及第四數(shù)目的扇區(qū)SMPk,并且因此可以使用3個(gè)不同大小或甚至更多大小的多個(gè)扇區(qū)SMPk來(lái)構(gòu)造所述子分區(qū)SPVi。這取決于針對(duì)給定配置向所述第二子部分SP2分配的比特的數(shù)目。在32比特系統(tǒng)上,能夠在想要支持的數(shù)目和配置靈活性與虛擬緩沖器存儲(chǔ)器的最大大小(即向所述第二部分P2分配的比特的數(shù)目)之間進(jìn)行選擇。
另外,如果沒(méi)有足夠的對(duì)應(yīng)大小的空閑扇區(qū),則可以提供與扇區(qū)組合相對(duì)應(yīng)的虛擬子分區(qū)的選擇、以及與所述所選擇的組合相對(duì)應(yīng)的物理存儲(chǔ)器的空閑扇區(qū)的選擇的一個(gè)或多個(gè)迭代。
應(yīng)當(dāng)注意,每個(gè)迭代確定與至少一個(gè)已調(diào)節(jié)組合CAi對(duì)應(yīng)的至少一個(gè)已調(diào)節(jié)子分區(qū)SPVAi,以使得第二字段C2關(guān)于所述所選擇的組合CS的第二字段C2被校正、并且第一字段C1在不存在所述第一大小T1和可選地至少所述第二大小T2中的最小大小的足夠的空閑扇區(qū)SMPk的情況下被校正。
所述第二字段C2例如被校正以增加所述第一大小T1、并且可選地由第二字段C2在校正之前標(biāo)識(shí)的至少所述第二大小T2。所述第一字段C1例如被校正以僅根據(jù)所述第一大小T1和可選地至少所述第二大小T2來(lái)標(biāo)識(shí)具有最小大小的扇區(qū)SMPk編號(hào)。
最后,首先并首要地使用具有所述大小的集合JTR中的大小之一(例如最大或最小存儲(chǔ)大小)的所選擇的空閑扇區(qū)SMPk的初始物理地址API來(lái)填充扇區(qū)索引IS。
因此,諸如不同大小的數(shù)目、索引字段的數(shù)目、每個(gè)分區(qū)的虛擬子分區(qū)的數(shù)目、填充物理扇區(qū)的初始物理地址的優(yōu)先級(jí)、以及扇 區(qū)參數(shù)的數(shù)目等參數(shù)取決于實(shí)現(xiàn)方式的選擇。