專(zhuān)利名稱(chēng):儲(chǔ)存單元管理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明有關(guān)于一種儲(chǔ)存單元管理方法及系統(tǒng),且特別有關(guān) 于一種可以將儲(chǔ)存單元的實(shí)體區(qū)塊進(jìn)行分類(lèi)管理的儲(chǔ)存單元管 理方法及系統(tǒng)。
背景技術(shù):
目前來(lái)說(shuō),非易失性存儲(chǔ)器,如快閃存儲(chǔ)器已經(jīng)非常廣泛
的使用。其特點(diǎn)在于以頁(yè)面(Page)為單位讀寫(xiě)、以區(qū)塊(Block) 為單位刪除以及在寫(xiě)之前必須刪除。由于上述特點(diǎn),使得主機(jī) 或是應(yīng)用程序所4吏用的邏輯區(qū)塊地址(Logic Block Address, LBA)的讀寫(xiě)指令非常難以管理,且難以將邏輯地址轉(zhuǎn)換為實(shí)體 地址,以存取非易失性存儲(chǔ)器的實(shí)體區(qū)塊。因此,通常在主機(jī) 的文件系統(tǒng)與非易失性存儲(chǔ)器之間會(huì)使用 一 轉(zhuǎn)換層來(lái)管理來(lái)自 主機(jī)的讀寫(xiě)命令,以存取存儲(chǔ)器中的數(shù)據(jù)。在現(xiàn)有技術(shù)中對(duì)于 非易失性存儲(chǔ)器進(jìn)行儲(chǔ)存管理時(shí),數(shù)據(jù)通常依據(jù)頁(yè)面映射(Page Mapping)或區(qū)塊映射(Block Mapping)等模式進(jìn)行存取與定位。
在頁(yè)面映射模式中,儲(chǔ)存單元中的數(shù)據(jù)以邏輯頁(yè)面為單位 進(jìn)行儲(chǔ)存,且具有相應(yīng)的頁(yè)面映射表。頁(yè)面映射表中以邏輯頁(yè) 面的編號(hào)為索引,且以實(shí)體頁(yè)面的地址為表項(xiàng)(項(xiàng)目?jī)?nèi)容)。當(dāng) 采用頁(yè)面映射的儲(chǔ)存系統(tǒng)處理讀寫(xiě)命令時(shí),則可以直接查找以 及更新頁(yè)面映射表以完成相關(guān)數(shù)據(jù)頁(yè)面的定位。在區(qū)塊映射模 式中,儲(chǔ)存單元中的數(shù)據(jù)以邏輯區(qū)塊為單位進(jìn)行儲(chǔ)存,且具有 相應(yīng)的區(qū)塊映射表。區(qū)塊映射表中以邏輯區(qū)塊的編號(hào)為索引, 且以實(shí)體區(qū)塊的地址為表項(xiàng)。當(dāng)采用區(qū)塊映射的儲(chǔ)存系統(tǒng)處理 讀寫(xiě)命令時(shí),則可以直接查找以及更新區(qū)塊映射表以完成相關(guān)
數(shù)據(jù)頁(yè)面的定位。
近年來(lái),隨著集成電路技術(shù)的發(fā)展,儲(chǔ)存單元的頁(yè)面/區(qū)塊
尺寸已經(jīng)大幅提高。此外,高密度儲(chǔ)存單元,如NAND(與非) 快閃存儲(chǔ)器中每個(gè)區(qū)塊的各個(gè)頁(yè)面必須依照順序?qū)懭耄荒茈S 機(jī)寫(xiě)入。另外,由于NAND快閃存儲(chǔ)器具有以頁(yè)面為單位讀寫(xiě)、 以區(qū)塊為單位刪除以及在寫(xiě)之前必須刪除的特點(diǎn)。因此,當(dāng)采 用區(qū)塊映射的儲(chǔ)存系統(tǒng)處理寫(xiě)入命令時(shí),必須先分配一個(gè)區(qū)塊, 以將要求的頁(yè)面寫(xiě)入分配的區(qū)塊中。之后,再將屬于相應(yīng)此要
求頁(yè)面的邏輯區(qū)塊中其他的頁(yè)面復(fù)制至此分配的區(qū)塊中,其中 此分配的區(qū)塊中的原有數(shù)據(jù)必須先被刪除。因此,特別是對(duì)于 可能包括頻繁被主機(jī)存取的熱數(shù)據(jù)的要求頁(yè)面而言,當(dāng)區(qū)塊尺 寸增大后,將導(dǎo)致寫(xiě)入性能大大降低。在頁(yè)面映射模式中,數(shù) 據(jù)的分布非常復(fù)雜與繁亂。當(dāng)空閑區(qū)塊用盡時(shí),數(shù)據(jù)合并以獲 取新空閑區(qū)塊的過(guò)程將會(huì)非常復(fù)雜。
因此,一些儲(chǔ)存管理系統(tǒng)提出可以結(jié)合區(qū)塊映射與頁(yè)面映 射的混合型映射模式。在這些系統(tǒng)中,儲(chǔ)存單元中可以包括相 應(yīng)區(qū)塊映射與頁(yè)面映射的區(qū)域,且各區(qū)域的使用僅能通過(guò)數(shù)據(jù) 合并操作來(lái)進(jìn)行切換。雖然具有混合型映射模式的儲(chǔ)存管理系 統(tǒng)可以提供較大的彈性來(lái)儲(chǔ)存數(shù)據(jù),然而,在實(shí)際使用上,儲(chǔ)
多未利用的實(shí)體頁(yè)面,進(jìn)而使得儲(chǔ)存單元中數(shù)據(jù)的分布非常復(fù) 雜與繁亂。類(lèi)似地,進(jìn)行相關(guān)數(shù)據(jù)合并時(shí)亦會(huì)造成系統(tǒng)的效能
負(fù)擔(dān)。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供儲(chǔ)存單元管理方法及系統(tǒng)。 本發(fā)明所述的儲(chǔ)存單元管理方法,用以管理包括多個(gè)實(shí)體
區(qū)塊的儲(chǔ)存單元,其中每一實(shí)體區(qū)塊具有多個(gè)區(qū)塊種類(lèi)定義中 的一個(gè)區(qū)塊種類(lèi)定義。首先,取得至少一邏輯寫(xiě)入命令,其中 邏輯寫(xiě)入命令要求對(duì)于相應(yīng)至少 一邏輯區(qū)塊的至少 一邏輯頁(yè)面
進(jìn)行數(shù)據(jù)寫(xiě)入操作。判斷儲(chǔ)存單元中是否存在具有多個(gè)區(qū)塊種 類(lèi)定義中的一第一區(qū)塊定義的一候選區(qū)塊,其中依據(jù)第一區(qū)塊 定義邏輯區(qū)塊的邏輯頁(yè)面無(wú)法映射至候選區(qū)塊。若具有該第一 區(qū)塊定義的該候選區(qū)塊存在,將第一區(qū)塊定義轉(zhuǎn)換為區(qū)塊種類(lèi) 定義中的一第二區(qū)塊定義。將一數(shù)據(jù)寫(xiě)入具有該第二區(qū)塊定義 的候選區(qū)塊中的 一 特定頁(yè)面,且記錄邏輯區(qū)塊的邏輯頁(yè)面與候 選區(qū)塊的特定頁(yè)面的 一映射關(guān)系。
本發(fā)明所述的儲(chǔ)存單元管理系統(tǒng)包括一儲(chǔ)存單元與一處理 模塊。儲(chǔ)存單元包括多個(gè)實(shí)體區(qū)塊,每一實(shí)體區(qū)塊具有多個(gè)區(qū) 塊種類(lèi)定義中的一個(gè)區(qū)塊種類(lèi)定義。處理模塊取得至少一邏輯 寫(xiě)入命令,其中邏輯寫(xiě)入命令要求對(duì)于相應(yīng)至少一邏輯區(qū)塊的
至少 一 邏輯頁(yè)面進(jìn)行數(shù)據(jù)寫(xiě)入操作。處理模塊判斷儲(chǔ)存單元中 是否存在具有多個(gè)區(qū)塊種類(lèi)定義中的一第一區(qū)塊定義的一候選
區(qū)塊,其中依據(jù)第一區(qū)塊定義邏輯區(qū)塊的邏輯頁(yè)面無(wú)法映射至 候選區(qū)塊。若具有該第一區(qū)塊定義的該候選區(qū)塊存在,處理模 塊將第一區(qū)塊定義轉(zhuǎn)換為區(qū)塊種類(lèi)定義中的一第二區(qū)塊定義, 且將一數(shù)據(jù)寫(xiě)入具有該第二區(qū)塊定義的候選區(qū)塊中的一特定頁(yè) 面,并記錄邏輯區(qū)塊的邏輯頁(yè)面與候選區(qū)塊的特定頁(yè)面的一映 射關(guān)系。
當(dāng)程序碼被機(jī)器載入且執(zhí)行時(shí),機(jī)器變成用以實(shí)行本發(fā)明的裝 置。
本發(fā)明所述的儲(chǔ)存單元管理方法及系統(tǒng),可以將儲(chǔ)存單元 的實(shí)體區(qū)塊進(jìn)行分類(lèi)管理,以更有效率地利用儲(chǔ)存單元。
圖l為一示意圖系顯示依據(jù)本發(fā)明實(shí)施例的儲(chǔ)存單元管理 系統(tǒng)。
圖2為 一示意圖系顯示依據(jù)本發(fā)明實(shí)施例的儲(chǔ)存單元中的 實(shí)體區(qū)塊。
圖3為一示意圖系顯示依據(jù)本發(fā)明實(shí)施例的映射目錄項(xiàng)目 的格式。
圖4為一示意圖系顯示依據(jù)本發(fā)明實(shí)施例的區(qū)塊映射表項(xiàng) 目的格式。
圖5為一示意圖系顯示依據(jù)本發(fā)明實(shí)施例的頁(yè)面映射區(qū)塊 表項(xiàng)目的格式。
圖6為一示意圖系顯示依據(jù)本發(fā)明實(shí)施例的頁(yè)面映射表項(xiàng) 目的格式。
圖7A至圖7D為流程圖系顯示依據(jù)本發(fā)明實(shí)施例的儲(chǔ)存單 元管理方法。
圖8為一示意圖系顯示依據(jù)本發(fā)明實(shí)施例的寫(xiě)入命令中包 含的邏輯區(qū)塊地址(Logic Block Address, LBA)的格式。
具體實(shí)施例方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文 特舉實(shí)施例,并配合所附圖示,詳細(xì)說(shuō)明如下。
圖l顯示依據(jù)本發(fā)明實(shí)施例的儲(chǔ)存單元管理系統(tǒng)。 依據(jù)本發(fā)明實(shí)施例的儲(chǔ)存單元管理系統(tǒng)10 0包括 一 儲(chǔ)存單 元110、 一存儲(chǔ)器120與一處理模塊130。儲(chǔ)存單元110可以是一 非易失性存儲(chǔ)器,如NAND快閃存儲(chǔ)器。儲(chǔ)存單元110中的數(shù)據(jù) 可以以區(qū)塊映射模式與頁(yè)面映射模式分別以區(qū)塊與頁(yè)面為單位 進(jìn)行儲(chǔ)存。值得注意的是,在本發(fā)明中儲(chǔ)存單元110的實(shí)體區(qū)塊
可以具有不同的區(qū)塊種類(lèi)定義,以分類(lèi)進(jìn)行管理。圖2顯示儲(chǔ)存 單元110的實(shí)體區(qū)塊。在此實(shí)施例中,區(qū)塊種類(lèi)定義可以包括一 數(shù)據(jù)區(qū)塊定義、 一連續(xù)區(qū)塊定義、 一奉獻(xiàn)區(qū)塊定義與一共享區(qū) 塊定義。儲(chǔ)存單元110中的每一實(shí)體區(qū)塊可以分別具有上述區(qū)塊 種類(lèi)定義中的一個(gè),且可以進(jìn)行轉(zhuǎn)換。其中,具有數(shù)據(jù)區(qū)塊定 義的實(shí)體區(qū)塊lll是依據(jù)區(qū)塊映射模式儲(chǔ)存數(shù)據(jù),且實(shí)體區(qū)塊中 的所有頁(yè)面都已經(jīng)被寫(xiě)入數(shù)據(jù)。具有連續(xù)區(qū)塊定義的實(shí)體區(qū)塊 112中,從第一個(gè)頁(yè)面開(kāi)始的多個(gè)頁(yè)面是依據(jù)區(qū)塊映射模式儲(chǔ)存 數(shù)據(jù),且實(shí)體區(qū)塊112中存在至少一個(gè)未寫(xiě)入數(shù)據(jù)的頁(yè)面。具有 奉獻(xiàn)區(qū)塊定義的實(shí)體區(qū)塊113中的數(shù)據(jù)皆是對(duì)應(yīng)至同 一個(gè)邏輯 區(qū)塊,從第一個(gè)頁(yè)面開(kāi)始的多個(gè)頁(yè)面是依據(jù)區(qū)塊映射模式儲(chǔ)存 數(shù)據(jù),且存在至少一頁(yè)面并不依據(jù)區(qū)塊映射模式儲(chǔ)存數(shù)據(jù)。具 有共享區(qū)塊定義的實(shí)體區(qū)塊114中的數(shù)據(jù)是依據(jù)頁(yè)面映射模式 儲(chǔ)存數(shù)據(jù),且對(duì)應(yīng)至至少二特定邏輯區(qū)塊。值得注意的是,儲(chǔ) 存單元110亦可包括并未指定區(qū)塊種類(lèi)定義的空閑實(shí)體區(qū)塊(未 顯示)。區(qū)塊種類(lèi)定義間的轉(zhuǎn)換將于后進(jìn)行說(shuō)明。
另外,儲(chǔ)存單元110亦包括一映射目錄、多個(gè)區(qū)塊映射表、 多個(gè)頁(yè)面映射區(qū)塊表以及多個(gè)頁(yè)面映射表。存儲(chǔ)器120可以是一 隨機(jī)存取存儲(chǔ)器(Random Access Memory, RAM),在該儲(chǔ)存單 元管理系統(tǒng)100正常運(yùn)作時(shí),用于存儲(chǔ)從儲(chǔ)存單元110加載的映 射目錄、區(qū)塊映射表、頁(yè)面映射區(qū)塊表以及頁(yè)面映射表。而映 射目錄、區(qū)塊映射表、頁(yè)面映射區(qū)塊表以及頁(yè)面映射表將于下 說(shuō)明。
圖3顯示依據(jù)本發(fā)明實(shí)施例的映射目錄的其中一項(xiàng)目的格 式。映射目錄是映射用戶(hù)數(shù)據(jù)的根目錄。映射目錄包含多個(gè)如 圖3所示的項(xiàng)目,且每一項(xiàng)目可以指向包含一部分區(qū)塊映射表的 一頁(yè)面,該頁(yè)面包含的區(qū)塊映射表與一既定大小,如256MB的
用戶(hù)數(shù)據(jù)相對(duì)應(yīng)。如圖3所示,映射目錄項(xiàng)目300包括一 "MappingDirectoryNumber"欄位340、 一"blnCache"欄位310、 一 "CachedBmtNumber"欄位320與一"BmtPageLocation"欄4立330。 "MappingDirectoryNumber"欄位340記錄一映射目錄編號(hào),用以 作為此映射目錄項(xiàng)目300的索引。"blnCache"欄位310記錄相應(yīng) 的區(qū)塊映射表頁(yè)面是否已經(jīng)由儲(chǔ)存單元110載入存儲(chǔ)器120中。 舉例來(lái)說(shuō),若區(qū)塊映射表頁(yè)面已經(jīng)載入存儲(chǔ)器120中,則 "blnCache"欄位310中記錄"l";若區(qū)塊映射表頁(yè)面尚未載入至 存儲(chǔ)器120中,則"blnCache"欄位310中記錄"0"。對(duì)于已經(jīng)載入 至存儲(chǔ)器120中的區(qū)塊映射表頁(yè)面,"CachedBmtNumber"欄位 320記錄相應(yīng)此區(qū)塊映射表頁(yè)面在存儲(chǔ)器120中的地址。對(duì)于尚 未載入至存儲(chǔ)器120中的區(qū)塊映射表頁(yè)面,則 "CachedBmtNumber,,欄位320為"Invalid",且區(qū)塊映射表頁(yè)面在 儲(chǔ)存單元110上的實(shí)體儲(chǔ)存地址被記錄在"BmtPageLocation"欄 位330中。
圖4顯示依據(jù)本發(fā)明實(shí)施例的區(qū)塊映射表的其中一項(xiàng)目的 格式。區(qū)塊映射表包含多個(gè)如圖4所示的項(xiàng)目,其中每一項(xiàng)目記 錄相應(yīng)此邏輯區(qū)塊的數(shù)據(jù)的存儲(chǔ)位置信息。如圖4所示,區(qū)塊映 射表項(xiàng)目400包括一"BlockOffset,,欄位430、 一"bPageMapped" 欄位410與一"Blocklnfo"欄位420。 "BlockOffset"欄位430記錄一 區(qū)塊偏移(offset),用以作為區(qū)塊映射表項(xiàng)目400的索引。如前 所述,儲(chǔ)存單元110中的數(shù)據(jù)可以是以區(qū)塊映射模式或頁(yè)面映射 模式進(jìn)行儲(chǔ)存。因此,"bPageMapped"欄位410記錄擁有此區(qū)塊 映射表的一邏輯區(qū)塊所采用的映射模式。舉例來(lái)說(shuō)。若此邏輯 區(qū)塊是采用區(qū)塊映射模式,則"bPageMapped"欄位410中記錄 "0";若此邏輯區(qū)塊是采用頁(yè)面映射模式,則"bPageMapped"欄 位410中記錄"1" 。 "Blocklnfo"欄位420則記錄詳細(xì)的映射信息。
其中,對(duì)于采用區(qū)塊映射模式的邏輯區(qū)塊,"Blocklnfo"欄位420 中記錄相應(yīng)數(shù)據(jù)區(qū)塊的實(shí)體位置,如實(shí)體區(qū)塊編號(hào)。對(duì)于采用 頁(yè)面映射才莫式的邏輯區(qū)塊,"Blocklnfo"欄位420中記錄 一 頁(yè)面映 射區(qū)塊編號(hào),用以表示此邏輯區(qū)塊為第幾個(gè)頁(yè)面映射區(qū)塊。
目的格式。頁(yè)面映射區(qū)塊表包含多個(gè)如圖5所示的項(xiàng)目,其中每
始地址。如圖5所示,頁(yè)面映射區(qū)塊表項(xiàng)目500包括一 "PageMappedBlockNum,,欄 >[立510與一 "PageMappingTablelnfo" 欄位520。其中,"PageMappedBlockNum,,欄位510用以記錄頁(yè)面 映射區(qū)塊編號(hào),當(dāng)邏輯區(qū)塊使用頁(yè)面映射模式時(shí), "PageMappedBlockNum,,欄位510中的頁(yè)面映射區(qū)塊編號(hào)對(duì)應(yīng)至 區(qū)塊映射表項(xiàng)目400的"Blocklnfo,,欄位420所記錄的數(shù)據(jù)。且 "PageMappingTablelnfo"欄位520用以記錄相應(yīng)此邏輯區(qū)塊的頁(yè) 面映射表在存儲(chǔ)器120中的起始地址。
每一采用頁(yè)面映射模式的邏輯區(qū)塊與一頁(yè)面映射區(qū)塊表項(xiàng) 目500相對(duì)應(yīng),并擁有由"PageMappingTablelnfo,,欄位520定址的 一頁(yè)面映射表。圖6顯示依據(jù)本發(fā)明實(shí)施例的頁(yè)面映射表的一項(xiàng) 目的格式。頁(yè)面映射表包含多個(gè)如圖6所示的項(xiàng)目。如圖6所示, 頁(yè)面映射表項(xiàng)目600包括一"PageOffset"欄位610與一"Pagelnfo" 欄位620。其中,"PageOffset"欄位610用以記錄頁(yè)面偏移(offset), 用以作為頁(yè)面映射表項(xiàng)目600的索引;"Pagelnfo,,欄位620用以 記錄相應(yīng)此邏輯區(qū)塊中邏輯頁(yè)面的實(shí)體儲(chǔ)存位置,如裝置編號(hào)、 實(shí)體區(qū)塊編號(hào)與實(shí)體頁(yè)面偏移等。注意的是,在一些實(shí)施例中, 頁(yè)面映射表中的項(xiàng)目數(shù)目等于一個(gè)邏輯區(qū)塊中所包含的頁(yè)面數(shù)
請(qǐng)繼續(xù)參考圖l。處理模塊130可以由上層,如主機(jī)的應(yīng)用
程序等接收寫(xiě)入命令,將寫(xiě)入命令分解為以頁(yè)面為單位的至少
一邏輯寫(xiě)入命令,該邏輯寫(xiě)入命令包括一邏輯區(qū)塊地址(Logic Block Address, LBA)。處理才莫塊130依據(jù)映射目錄、區(qū)塊映射
體寫(xiě)入命令,即將該邏輯區(qū)塊地址(L B A)轉(zhuǎn)換為 一 實(shí)體地址, 以存取儲(chǔ)存單元110的實(shí)體頁(yè)面,且執(zhí)行寫(xiě)入命令與轉(zhuǎn)換實(shí)體區(qū) 塊的區(qū)塊種類(lèi)定義,以將數(shù)據(jù)寫(xiě)入儲(chǔ)存單元110中特定實(shí)體區(qū)塊 的特定頁(yè)面中。另外,下文所述的判斷步驟還可由處理模塊130 完成,但并不以此為限。
圖7A至圖7D顯示依據(jù)本發(fā)明實(shí)施例的儲(chǔ)存單元管理方法。 首先,如步驟S702(圖7A),由上層,如應(yīng)用程序等接收一寫(xiě) 入命令,且如步驟S704,將接收的寫(xiě)入命令分解為以邏輯頁(yè)面 為單位的至少一邏輯寫(xiě)入命令。其中,該邏輯寫(xiě)入命令可以包 括一邏輯區(qū)塊地址(Logic Block Address, LBA),其中該邏輯區(qū) 塊地址包4舌一映射目錄編號(hào)(Mapping Directory Number)、 一區(qū) 塊偏移(Block Offset)、 一頁(yè)面偏移(Page Offset)、 一裝置編號(hào) (Device Number)與/或一磁區(qū)偏移(Sector Offset)。圖8顯示依據(jù) 本發(fā)明實(shí)施例的邏輯區(qū)塊地址(LBA)的格式。如圖8所示,邏輯 區(qū)塊地址(LBA)800包括一"MDN"欄位、一"BO"欄位、一"PO" 欄位、"DN"欄位與一"SO"欄位。其中,"MDN"欄位記錄映射 目錄編號(hào)(Mapping Directory Number), "BO"欄位記錄區(qū)塊偏移 (Block Offset), "PO"欄位記錄頁(yè)面偏移(Page Offset), "DN,,欄 位記錄裝置編號(hào)(Device Number),且"SO"欄位記錄磁區(qū)偏移 (Sector Offset)。值得注意的是,通過(guò)邏輯寫(xiě)入命令可以得知數(shù) 據(jù)欲寫(xiě)入至少一邏輯區(qū)塊的至少一邏輯頁(yè)面。如步驟S706,依 據(jù)邏輯寫(xiě)入命令中的"MDN"欄位由映射目錄中的多個(gè)區(qū)塊映 射表中定位一特定區(qū)塊映射表。如步驟S708,判斷此特定區(qū)塊
映射表是否已經(jīng)載入于存儲(chǔ)器中。提醒的是,判斷特定區(qū)塊映 射表是否已經(jīng)載入于存儲(chǔ)器中可以依據(jù)與邏輯區(qū)塊地址
(LBA)800中的映射目錄編號(hào)對(duì)應(yīng)的如圖3所示的項(xiàng)目300中的 "blnCache"欄位310的數(shù)據(jù)來(lái)判斷。若特定區(qū)塊映射表不在存儲(chǔ) 器中(步驟S708的否),如步驟S710,由已經(jīng)載入存儲(chǔ)器中的區(qū) 塊映射表中選擇一候選區(qū)塊映射表,且如步驟S712,將特定區(qū) 塊映射表載入存儲(chǔ)器中以取代候選區(qū)塊映射表。值得注意的是, 在一些實(shí)施例中,當(dāng)存儲(chǔ)器空間不足時(shí),才需要進(jìn)行選擇候選 區(qū)塊映射表的操作,且候選區(qū)塊映射表可以依據(jù)一最久未使用 (LRU)演算法來(lái)進(jìn)行選擇。若存儲(chǔ)器仍具有空間,則可以直接 將特定區(qū)塊映射表載入存儲(chǔ)器中。將特定區(qū)塊映射表載入之后 可以執(zhí)行步驟S714。
若特定區(qū)塊映射表已經(jīng)在存儲(chǔ)器中(步驟S708的是),執(zhí)行 步驟S714。如步驟S714,依據(jù)邏輯寫(xiě)入命令中的邏輯區(qū)塊地址 (LBA)800中的區(qū)塊偏移(記錄在"BO"欄位)由特定區(qū)塊映射表 中定位一第一特定項(xiàng)目(如圖4所示的一區(qū)塊映射表項(xiàng)目400), 其中第一特定項(xiàng)目包括一映射模式設(shè)定("bPageMapped"欄位 410的數(shù)據(jù))與 一 區(qū)塊信息("Blocklnfo,,欄位420的數(shù)據(jù))。如步驟 S716,依據(jù)映射模式設(shè)定判斷相應(yīng)區(qū)塊的映射模式是否為頁(yè)面 映射模式。若映射模式為區(qū)塊映射模式時(shí)(步驟S716的否),執(zhí) 行步驟S718。如步驟S718,判斷頁(yè)面映射區(qū)塊表中是否有空閑 的項(xiàng)目(如圖5所示的頁(yè)面映射區(qū)塊表項(xiàng)目500)。若頁(yè)面映射區(qū) 塊表中有空閑的項(xiàng)目(步驟S718的是),進(jìn)行步驟S n的操作。 若頁(yè)面映射區(qū)塊表中沒(méi)有空閑的項(xiàng)目(步驟S718的否),如步驟 S720,進(jìn)行數(shù)據(jù)頁(yè)面的數(shù)據(jù)合并操作,以由頁(yè)面映射區(qū)塊表中 取得至少一空閑的項(xiàng)目。如步驟S722,將與邏輯寫(xiě)入命令相對(duì) 應(yīng)的空閑項(xiàng)目加入頁(yè)面映射區(qū)塊表中,并進(jìn)行步驟S724的操
作。若映射模式為頁(yè)面映射模式時(shí)(步驟S716的是),執(zhí)行步驟 S724 。如步驟S724 ,依據(jù)第 一 特定項(xiàng)目中的區(qū)塊信息 ("Blocklnfo"欄位420中包括的頁(yè)面映射區(qū)塊編號(hào))由 一 頁(yè)面映 射區(qū)塊表中定位一第二特定項(xiàng)目(如頁(yè)面映射區(qū)塊表項(xiàng)目500), 且如步驟S726,依據(jù)該第二特定項(xiàng)目由多個(gè)頁(yè)面映射表中定位 一特定頁(yè)面映射表,其中該特定頁(yè)面映射表對(duì)應(yīng)于一采用該頁(yè) 面映射模式的邏輯區(qū)塊。
定位該特定頁(yè)面映射表以后,首先判斷該儲(chǔ)存單元110中是 否存在如圖2中所示的區(qū)塊種類(lèi)定義中之一的候選區(qū)塊,即,判 斷是否存在第一區(qū)塊定義的候選區(qū)塊,其中依據(jù)該第一區(qū)塊定 義,欲寫(xiě)入數(shù)據(jù)的邏輯區(qū)塊的邏輯頁(yè)面無(wú)法映射至該候選區(qū)塊。 其中無(wú)法映射的情形,舉例而言為當(dāng)該第一區(qū)塊定義為如圖2 中所示的連續(xù)區(qū)塊定義112,而欲寫(xiě)入的邏輯頁(yè)面包含相應(yīng)此邏 輯區(qū)塊的第一個(gè)頁(yè)面時(shí)的情形。由于依據(jù)連續(xù)區(qū)塊定義112,該 候選區(qū)塊從第一個(gè)頁(yè)面開(kāi)始的多個(gè)頁(yè)面是依據(jù)區(qū)塊映射模式儲(chǔ) 存數(shù)據(jù),則此情形下要寫(xiě)入數(shù)據(jù)的邏輯頁(yè)面無(wú)法映射至該候選 區(qū)塊。再舉例而言,無(wú)法映射的情況為當(dāng)該第一區(qū)塊定義為如 圖2中所示的連續(xù)區(qū)塊定義112,而欲寫(xiě)入的邏輯頁(yè)面的邏輯區(qū) 塊地址LBA與該候選區(qū)塊中已寫(xiě)入數(shù)據(jù)的頁(yè)面中的最后一個(gè)頁(yè) 面的地址不連續(xù)的情形。由于依據(jù)連續(xù)區(qū)塊定義112,該候選區(qū) 塊依據(jù)區(qū)塊映射模式儲(chǔ)存數(shù)據(jù)(即是說(shuō),其中存儲(chǔ)數(shù)據(jù)的邏輯 頁(yè)面的邏輯地址LBA應(yīng)連續(xù)),因此也無(wú)法將數(shù)據(jù)寫(xiě)到該候選區(qū) 塊剩余的空白頁(yè)面中。
當(dāng)發(fā)生上述欲寫(xiě)入數(shù)據(jù)的邏輯區(qū)塊的邏輯頁(yè)面無(wú)法映射至 該候選區(qū)塊的情況時(shí),本發(fā)明是將該第 一 區(qū)塊定義轉(zhuǎn)換為所述 區(qū)塊種類(lèi)定義中的一第二區(qū)塊定義。舉例而言,是將如圖2中所 示的連續(xù)區(qū)塊定義112轉(zhuǎn)換為奉獻(xiàn)區(qū)塊定義113,或?qū)⒎瞰I(xiàn)區(qū)塊
定義113轉(zhuǎn)換為共享區(qū)塊定義114,并將要寫(xiě)入的數(shù)據(jù)寫(xiě)入該候 選區(qū)塊中的一特定頁(yè)面。更詳細(xì)的iJL明可參考下面圖7B至圖7D 說(shuō)明內(nèi)容。
如步驟S728 (圖7A),依據(jù)邏輯寫(xiě)入命令判斷其欲寫(xiě)入的 邏輯頁(yè)面是否包含該邏輯區(qū)塊的第一個(gè)頁(yè)面。若是(步驟S728 的是),如步驟S730(圖7B),判斷儲(chǔ)存單元中是否存在具有連續(xù) 區(qū)塊定義的一候選區(qū)塊。若儲(chǔ)存單元中不存在具有連續(xù)區(qū)塊定 義的候選區(qū)塊(步驟S730的否),如步驟S732,判斷儲(chǔ)存單元中 是否存在具有奉獻(xiàn)區(qū)塊定義的一候選區(qū)塊。若儲(chǔ)存單元中存在 具有奉獻(xiàn)區(qū)塊定義的候選區(qū)塊(步驟S732的是),則如步驟S733, 將此候選區(qū)塊由奉獻(xiàn)區(qū)塊定義轉(zhuǎn)換為共享區(qū)塊定義,之后執(zhí)行 步驟S738 (圖7B)。如步驟S738,重新配置一空閑區(qū)塊為具有 連續(xù)區(qū)塊定義的候選區(qū)塊,并如步驟S740,依據(jù)邏輯寫(xiě)入命令 產(chǎn)生相應(yīng)儲(chǔ)存單元的實(shí)體寫(xiě)入命令,以將數(shù)據(jù)寫(xiě)入至具有連續(xù) 區(qū)塊定義的候選區(qū)塊中的特定頁(yè)面中。之后,進(jìn)行步驟S774(圖 7D)的操作。若儲(chǔ)存單元中不存在具有奉獻(xiàn)區(qū)塊定義的候選區(qū) 塊(圖7B的步驟S732的否),則直接執(zhí)行步驟S738與S740 (圖 7B )。
若儲(chǔ)存單元中存在具有連續(xù)區(qū)塊定義的候選區(qū)塊(圖7B的 步驟S730的是),如步驟S742,判斷此候選區(qū)塊是否已經(jīng)或是接 近滿(mǎn)了。若候選區(qū)塊已經(jīng)或是接近滿(mǎn)了(步驟S742的是),如步 驟S744,將此候選區(qū)塊由連續(xù)區(qū)塊定義轉(zhuǎn)換為數(shù)據(jù)區(qū)塊定義, 并進(jìn)行步驟S738與S740 (圖7B)的操作。若候選區(qū)塊并未滿(mǎn)了 或是并未接近滿(mǎn)了 (圖7B的步驟S742的否),如步驟S746,將此 候選區(qū)塊由連續(xù)區(qū)塊定義轉(zhuǎn)換為奉獻(xiàn)區(qū)塊定義,并如步驟S748 (圖7B),依據(jù)邏輯寫(xiě)入命令產(chǎn)生相應(yīng)儲(chǔ)存單元的一實(shí)體寫(xiě)入 命令,以將數(shù)據(jù)寫(xiě)入至具有奉獻(xiàn)區(qū)塊定義的候選區(qū)塊中的特定
頁(yè)面中。之后,如步驟S750,判斷具有奉獻(xiàn)區(qū)塊定義的候選區(qū) 塊是否已經(jīng)滿(mǎn)了 。若具有奉獻(xiàn)區(qū)塊定義的候選區(qū)塊已經(jīng)滿(mǎn)了(步 驟S750的是),進(jìn)行步驟S734與S736的操作。如步驟S734,將 此候選區(qū)塊由奉獻(xiàn)區(qū)塊定義轉(zhuǎn)換為共享區(qū)塊定義,并如步驟 S736,依據(jù)邏輯寫(xiě)入命令產(chǎn)生相應(yīng)儲(chǔ)存單元的一實(shí)體寫(xiě)入命 令,以將數(shù)據(jù)寫(xiě)入至具有共享區(qū)塊定義的其它候選區(qū)塊中的特 定頁(yè)面中,也就是說(shuō),剩下的欲寫(xiě)入的邏輯頁(yè)面,會(huì)寫(xiě)入至其 它具有共享區(qū)塊定義的候選區(qū)塊中,與屬于其它邏輯區(qū)塊的頁(yè)
面共用該具有共享區(qū)塊定義的候選區(qū)塊的實(shí)體存儲(chǔ)空間。之后, 進(jìn)行步驟S774 (圖7D)的操作。若具有奉獻(xiàn)區(qū)塊定義的候選區(qū) 塊并未滿(mǎn)了(圖7B的步驟S750的否),直接進(jìn)行步驟S774(圖7D ) 的操作。值得注意的是,由于邏輯寫(xiě)入命令欲寫(xiě)入的邏輯頁(yè)面 的數(shù)目可能超過(guò)具有奉獻(xiàn)區(qū)塊定義的候選區(qū)塊可以提供的頁(yè)面 數(shù)目,因此必須進(jìn)行步驟S750的判斷。
的第一個(gè)頁(yè)面(圖7八中步驟8728的否),如步驟S"^圖7C),判 斷儲(chǔ)存單元中是否存在具有連續(xù)區(qū)塊定義的一候選區(qū)塊。若儲(chǔ) 存單元中不存在具有連續(xù)區(qū)塊定義的候選區(qū)塊(步驟S752的 否),如步驟S754,判斷儲(chǔ)存單元中是否存在具有奉獻(xiàn)區(qū)塊定義 的一候選區(qū)塊。若儲(chǔ)存單元中并未存在具有奉獻(xiàn)區(qū)塊定義的候 選區(qū)塊(步驟S754的否),進(jìn)行步驟S762 (圖7C)的操作。若儲(chǔ) 存單元中存在具有奉獻(xiàn)區(qū)塊定義的候選區(qū)塊(圖7C的步驟S754 的是),如步驟S756 (圖7C),依據(jù)邏輯寫(xiě)入命令產(chǎn)生相應(yīng)儲(chǔ)存 單元的一實(shí)體寫(xiě)入命令,以將數(shù)據(jù)寫(xiě)入至具有奉獻(xiàn)區(qū)塊定義的 候選區(qū)塊中的特定頁(yè)面中。之后,如步驟S758,判斷具有奉獻(xiàn) 區(qū)塊定義的候選區(qū)塊是否已經(jīng)滿(mǎn)了 。若具有奉獻(xiàn)區(qū)塊定義的候 選區(qū)塊已經(jīng)滿(mǎn)了(步驟S758的是),如步驟S760,將此候選區(qū)塊
由奉獻(xiàn)區(qū)塊定義轉(zhuǎn)換為共享區(qū)塊定義,并如步驟S762,依據(jù)邏 輯寫(xiě)入命令產(chǎn)生相應(yīng)儲(chǔ)存單元的一實(shí)體寫(xiě)入命令,以將數(shù)據(jù)寫(xiě)
入至其它具有共享區(qū)塊定義的候選區(qū)塊中的特定頁(yè)面中,也就 是說(shuō),剩下的欲寫(xiě)入的邏輯頁(yè)面,會(huì)寫(xiě)入至其它具有共享區(qū)塊 定義的候選區(qū)塊中,與其它邏輯區(qū)塊的頁(yè)面共用該具有共享區(qū) 塊定義的候選區(qū)塊的實(shí)體存儲(chǔ)空間。之后,進(jìn)行步驟S774 (圖 7D)的操作。若具有奉獻(xiàn)區(qū)塊定義的候選區(qū)塊并未滿(mǎn)了(圖7C 的步驟S758的否),直接進(jìn)行步驟S774的4喿作。
若儲(chǔ)存單元中存在具有連續(xù)區(qū)塊定義的候選區(qū)塊時(shí)(圖7C 的步驟S752的是),如步驟S764,判斷邏輯寫(xiě)入命令欲寫(xiě)入的邏 輯頁(yè)面與此候選區(qū)塊中具有數(shù)據(jù)的最后 一 頁(yè)面是否相連續(xù)。若 相連續(xù)(步驟S764的是),如步驟S766,依據(jù)邏輯寫(xiě)入命令產(chǎn)生 相應(yīng)儲(chǔ)存單元的一實(shí)體寫(xiě)入命令,以將數(shù)據(jù)寫(xiě)入至具有連續(xù)區(qū) 塊定義的候選區(qū)塊中的特定頁(yè)面中。若不連續(xù)(步驟S764的否), 如步驟S768,判斷該邏輯寫(xiě)入命令欲寫(xiě)入的邏輯頁(yè)面與具有連 續(xù)區(qū)塊定義的候選區(qū)塊中具有數(shù)據(jù)的最后 一 頁(yè)面的地址是否發(fā)
于候選區(qū)塊中具有數(shù)據(jù)的頁(yè)面中的最后 一個(gè)頁(yè)面的地址)。若并 未發(fā)生沖突(步驟S768的否),進(jìn)行步驟S762 (圖7C )的操作, 由于現(xiàn)在的高密度儲(chǔ)存單元,如NAND(與非)快閃存儲(chǔ)器中每個(gè) 區(qū)塊的各個(gè)頁(yè)面必須依照順序?qū)懭?,不能隨才幾寫(xiě)入,因此當(dāng)LBA 未發(fā)生突沖時(shí)(即當(dāng)欲寫(xiě)入的邏輯頁(yè)面的邏輯區(qū)塊地址LBA大 于候選區(qū)塊中具有數(shù)據(jù)的頁(yè)面中的最后 一個(gè)頁(yè)面的地址時(shí)),應(yīng) 將數(shù)據(jù)寫(xiě)入至具有共享區(qū)塊定義的其它候選區(qū)塊中的特定頁(yè)面
中,即執(zhí)行步驟S762。若發(fā)生沖突(圖7C的步驟S768的是),如 步驟S770,將此候選區(qū)塊由連續(xù)區(qū)塊定義轉(zhuǎn)換為奉獻(xiàn)區(qū)塊定 義,并如步驟S772,依據(jù)邏輯寫(xiě)入命令產(chǎn)生相應(yīng)儲(chǔ)存單元的一
實(shí)體寫(xiě)入命令,以將數(shù)據(jù)寫(xiě)入至具有奉獻(xiàn)區(qū)塊定義的候選區(qū)塊
中的特定頁(yè)面中。之后,進(jìn)行步驟S758 (圖7C)的操作。
之后,如步驟S774(圖7D),執(zhí)行產(chǎn)生的實(shí)體寫(xiě)入命令,以 將數(shù)據(jù)寫(xiě)入儲(chǔ)存單元中的候選區(qū)塊中的特定頁(yè)面。值得注意的 是,如前所述,該邏輯寫(xiě)入命令中的LBA更可以包括裝置編號(hào) (DN)與/或磁區(qū)偏移(SO)。當(dāng)邏輯寫(xiě)入命令包括裝置編號(hào)與/或 磁區(qū)偏移時(shí),則更可以依據(jù)裝置編號(hào)與/或,茲區(qū)偏移將數(shù)據(jù)寫(xiě)入 儲(chǔ)存單元中。如步驟S776,依據(jù)相應(yīng)邏輯寫(xiě)入命令欲寫(xiě)入的邏 輯區(qū)塊的邏輯頁(yè)面與實(shí)際儲(chǔ)存單元中候選區(qū)塊的特定頁(yè)面的映 射關(guān)系,更新頁(yè)面映射表與/或特定區(qū)塊映射表。如步驟S778, 判斷步驟S776的映射表更新是否牽涉區(qū)塊等級(jí)的映射表更新。 若否(步驟S778的否),結(jié)束整個(gè)寫(xiě)入流程。若是(步驟S778的是),
如步驟S780,將更新后的特定區(qū)塊映射表寫(xiě)入至儲(chǔ)存單元中。
有鑒于此,通過(guò)本發(fā)明的儲(chǔ)存單元管理方法及系統(tǒng)可以將 儲(chǔ)存單元的實(shí)體區(qū)塊進(jìn)行分類(lèi)管理,以更有效率地利用儲(chǔ)存單
元o
本發(fā)明的方法、特定型態(tài)或其部分,可以以在主機(jī)文件系 統(tǒng)與非易失性存儲(chǔ)器之間的軟件轉(zhuǎn)換層的型態(tài)包含于實(shí)體介 質(zhì),如軟盤(pán)、光盤(pán)片、硬盤(pán)或是任何其他機(jī)器可讀取(如計(jì)算機(jī) 可讀取)儲(chǔ)存介質(zhì),其中,當(dāng)程序碼被機(jī)器,如計(jì)算機(jī)載入且執(zhí) 行時(shí),此機(jī)器變成用以參與本發(fā)明的裝置。本發(fā)明的方法與裝 置也可以以程序碼型態(tài)通過(guò)一些傳送介質(zhì),如電線或電纜、光 纖或是任何傳輸型態(tài)進(jìn)行傳送,其中,當(dāng)程序碼被機(jī)器,如計(jì) 算機(jī)接收、載入且執(zhí)行時(shí),此機(jī)器變成用以參與本發(fā)明的裝置。 當(dāng)在一般用途處理器實(shí)作時(shí),程序碼結(jié)合處理器提供一操作類(lèi) 似于專(zhuān)用集成電路的獨(dú)特裝置。
以上所述僅為本發(fā)明較佳實(shí)施例,然其并非用以限定本發(fā)
明的范圍,任何熟悉本項(xiàng)技術(shù)的人員,在不脫離本發(fā)明的精神 和范圍內(nèi),可在此基礎(chǔ)上做進(jìn)一步的改進(jìn)和變化,因此本發(fā)明 的保護(hù)范圍當(dāng)以本申請(qǐng)的權(quán)利要求書(shū)所界定的范圍為準(zhǔn)。
附圖中符號(hào)的筒單說(shuō)明如下
100:儲(chǔ)存單元管理系統(tǒng)
110儲(chǔ)存單元
111:數(shù)據(jù)區(qū)塊定義的區(qū)塊
112:連續(xù)區(qū)塊定義的區(qū)塊
113.奉獻(xiàn)區(qū)塊定義的區(qū)塊
114:共享區(qū)塊定義的區(qū)塊
120存儲(chǔ)器
130處理模塊
300映射目錄項(xiàng)目
310"blnCache"欄位
320"CachedBmtNumber"欄位
330:"BmtPageLocation"欄位
340:"MappingDirectoryNumber,,欄位
400:區(qū)塊映射表項(xiàng)目
410:"bPageMapped,,欄位
420:"Blocklnfo"欄位
430:"BlockOffset"欄位
500:頁(yè)面映射區(qū)塊表項(xiàng)目
510:"PageMappedBlockNum"欄位
520:"PageMappingTablelnfo,,欄位
600:頁(yè)面映射表項(xiàng)目
610:"PageOffset"欄位
620:"Pagelnfo"欄位
S702、 S704..... S780:步驟
800:邏輯區(qū)塊地址 MDN:映射目錄編號(hào)欄位 BO:區(qū)塊偏移欄位 PO:頁(yè)面偏移欄4立 DN:裝置編號(hào)欄位 SO:》茲區(qū)偏移欄位。
權(quán)利要求
1. 一種儲(chǔ)存單元管理方法,其特征在于,包括下列步驟:提供一儲(chǔ)存單元,其中該儲(chǔ)存單元包括多個(gè)實(shí)體區(qū)塊,每一所述實(shí)體區(qū)塊具有多個(gè)區(qū)塊種類(lèi)定義中的一個(gè)區(qū)塊種類(lèi)定義;取得至少一邏輯寫(xiě)入命令,其中該邏輯寫(xiě)入命令要求對(duì)于相應(yīng)至少一邏輯區(qū)塊的至少一邏輯頁(yè)面進(jìn)行數(shù)據(jù)寫(xiě)入操作;判斷該儲(chǔ)存單元中是否存在具有所述多個(gè)區(qū)塊種類(lèi)定義中的一第一區(qū)塊定義的一候選區(qū)塊,其中依據(jù)該第一區(qū)塊定義,該邏輯區(qū)塊的該邏輯頁(yè)面無(wú)法映射至該候選區(qū)塊;若具有該第一區(qū)塊定義的該候選區(qū)塊存在,將該第一區(qū)塊定義轉(zhuǎn)換為所述區(qū)塊種類(lèi)定義中的一第二區(qū)塊定義;以及將一數(shù)據(jù)儲(chǔ)寫(xiě)入具有該第二區(qū)塊定義的該候選區(qū)塊中的一特定頁(yè)面,且記錄該邏輯區(qū)塊的該邏輯頁(yè)面與該候選區(qū)塊的該特定頁(yè)面的一映射關(guān)系。
2. 根據(jù)權(quán)利要求l所述的儲(chǔ)存單元管理方法,其特征在于, 該邏輯寫(xiě)入命令至少包括一映射目錄編號(hào)、 一區(qū)塊偏移與一頁(yè)面偏移,且該儲(chǔ)存單元管理方法還包括下列步驟依據(jù)該映射目錄編號(hào)由多個(gè)區(qū)塊映射表中定位至一特定區(qū) 塊映射表;依據(jù)該區(qū)塊偏移由該特定區(qū)塊映射表中定位一第一特定項(xiàng) 目,其中該第一特定項(xiàng)目包括一映射模式設(shè)定與一區(qū)塊信息;當(dāng)該映射模式設(shè)定為一頁(yè)面映射模式時(shí),依據(jù)該區(qū)塊信息 由一頁(yè)面映射區(qū)塊表中定位一第二特定項(xiàng)目,且依據(jù)該第二特 定項(xiàng)目由多個(gè)頁(yè)面映射表中定位一特定頁(yè)面映射表,其中該特 定頁(yè)面映射表對(duì)應(yīng)于一采用該頁(yè)面映射模式的邏輯區(qū)塊;以及依據(jù)該映射關(guān)系更新該特定區(qū)塊映射表或該頁(yè)面映射表。
3. 根據(jù)權(quán)利要求2所述的儲(chǔ)存單元管理方法,其特征在于, 還包括下列步驟依據(jù)該映射目錄編號(hào)判斷該特定區(qū)塊映射表是否已經(jīng)載入 于一存儲(chǔ)器中;以及若該特定區(qū)塊映射表并未載入于該存儲(chǔ)器中,由已經(jīng)載入 該存儲(chǔ)器中的所述區(qū)塊映射表中選擇一候選區(qū)塊映射表;以及將該特定區(qū)塊映射表載入該存儲(chǔ)器中以取代該候選區(qū)塊映 射表。
4. 根據(jù)權(quán)利要求2所述的儲(chǔ)存單元管理方法,其特征在于, 當(dāng)該映射模式設(shè)定為一區(qū)塊映射模式時(shí),新增一空閑項(xiàng)目至該 頁(yè)面映射區(qū)塊表。
5. 根據(jù)權(quán)利要求l所述的儲(chǔ)存單元管理方法,其特征在于, 還包括下列步驟依據(jù)該映射關(guān)系將該邏輯寫(xiě)入命令轉(zhuǎn)換為相應(yīng)該儲(chǔ)存單元 的至少一實(shí)體寫(xiě)入命令;以及執(zhí)行該實(shí)體寫(xiě)入命令,以將該數(shù)據(jù)寫(xiě)入至該儲(chǔ)存單元中該 候選區(qū)塊中的該特定頁(yè)面。
6. 根據(jù)權(quán)利要求l所述的儲(chǔ)存單元管理方法,其特征在于, 所述區(qū)塊種類(lèi)定義包括一數(shù)據(jù)區(qū)塊定義、 一連續(xù)區(qū)塊定義、一 奉獻(xiàn)區(qū)塊定義與一共享區(qū)塊定義,其中,具有該數(shù)據(jù)區(qū)塊定義 的該實(shí)體區(qū)塊是依據(jù)一 區(qū)塊映射模式儲(chǔ)存數(shù)據(jù),且該實(shí)體區(qū)塊 中的所有頁(yè)面都已經(jīng)被寫(xiě)入數(shù)據(jù),具有該連續(xù)區(qū)塊定義的該實(shí) 體區(qū)塊中從第一個(gè)頁(yè)面開(kāi)始的多個(gè)頁(yè)面是依據(jù)該區(qū)塊映射模式 儲(chǔ)存數(shù)據(jù),且該實(shí)體區(qū)塊中存在至少一個(gè)未寫(xiě)入數(shù)據(jù)的頁(yè)面, 具有該奉獻(xiàn)區(qū)塊定義的該實(shí)體區(qū)塊中的數(shù)據(jù)皆是對(duì)應(yīng)至一特定 邏輯區(qū)塊,從第一個(gè)頁(yè)面開(kāi)始的多個(gè)頁(yè)面是依據(jù)該區(qū)塊映射模 式儲(chǔ)存數(shù)據(jù),且存在至少一頁(yè)面并不依據(jù)該區(qū)塊映射模式儲(chǔ)存 數(shù)據(jù),具有該共享區(qū)塊定義的該實(shí)體區(qū)塊中的數(shù)據(jù)是依據(jù)一 頁(yè) 面映射模式儲(chǔ)存數(shù)據(jù),且對(duì)應(yīng)至至少二特定邏輯區(qū)塊。
7. 根據(jù)權(quán)利要求6所述的儲(chǔ)存單元管理方法,其特征在于, 還包括下列步驟判斷該至少 一邏輯頁(yè)面是否包含該邏輯區(qū)塊的第 一 個(gè)頁(yè)面;若該至少一邏輯頁(yè)面包含該邏輯區(qū)塊的第一個(gè)頁(yè)面,判斷 該儲(chǔ)存單元中是否存在具有該連續(xù)區(qū)塊定義的該候選區(qū)塊;若該儲(chǔ)存單元中存在具有該連續(xù)區(qū)塊定義的該候選區(qū)塊, 將該候選區(qū)塊由該連續(xù)區(qū)塊定義轉(zhuǎn)換為該奉獻(xiàn)區(qū)塊定義,以將 該數(shù)據(jù)儲(chǔ)存至具有奉獻(xiàn)區(qū)塊定義的該候選區(qū)塊中的該特定頁(yè)面 中;以及若該儲(chǔ)存單元中不存在具有該連續(xù)區(qū)塊定義的該候選區(qū) 塊,配置一空閑區(qū)塊為具有該連續(xù)區(qū)塊定義的該候選區(qū)塊,以 將該數(shù)據(jù)儲(chǔ)存至具有連續(xù)區(qū)塊定義的該候選區(qū)塊中的該特定頁(yè) 面中。
8. 根據(jù)權(quán)利要求7所述的儲(chǔ)存單元管理方法,其特征在于, 當(dāng)該儲(chǔ)存單元中不存在具有該連續(xù)區(qū)塊定義的該候選區(qū)塊時(shí), 該儲(chǔ)存單元管理方法還包括下列步驟判斷該儲(chǔ)存單元中是否存在具有該奉獻(xiàn)區(qū)塊定義的該候選 區(qū)塊;以及若該儲(chǔ)存單元中存在具有該奉獻(xiàn)區(qū)塊定義的該候選區(qū)塊, 將該候選區(qū)塊由該奉獻(xiàn)區(qū)塊定義轉(zhuǎn)換為該共享區(qū)塊定義。
9. 根據(jù)權(quán)利要求7所述的儲(chǔ)存單元管理方法,其特征在于, 當(dāng)該儲(chǔ)存單元中存在具有該連續(xù)區(qū)塊定義的該候選區(qū)塊,且將 該候選區(qū)塊由該連續(xù)區(qū)塊定義轉(zhuǎn)換為該奉獻(xiàn)區(qū)塊定義之后,該 儲(chǔ)存單元管理方法還包括下列步驟判斷具有該奉獻(xiàn)區(qū)塊定義的該候選區(qū)塊是否已經(jīng)滿(mǎn)了 ;以 及若具有該奉獻(xiàn)區(qū)塊定義的該候選區(qū)塊已經(jīng)滿(mǎn)了 ,將該候選 區(qū)塊由該奉獻(xiàn)區(qū)塊定義轉(zhuǎn)換為該共享區(qū)塊定義,以將該數(shù)據(jù)儲(chǔ) 存至具有共享區(qū)塊定義的其它候選區(qū)塊中的該特定頁(yè)面中。
10. 根據(jù)權(quán)利要求6所述的儲(chǔ)存單元管理方法,其特征在于, 更包括下列步驟判斷該至少 一邏輯頁(yè)面是否包含該邏輯區(qū)塊的第 一 個(gè)頁(yè)面;若該至少一邏輯頁(yè)面不包含該邏輯區(qū)塊的第一個(gè)頁(yè)面,判斷該儲(chǔ)存單元中是否存在具有該連續(xù)區(qū)塊定義的該候選區(qū)塊; 若該儲(chǔ)存單元中不存在具有該連續(xù)區(qū)塊定義的該候選區(qū) 塊,判斷該儲(chǔ)存單元中是否存在具有該奉獻(xiàn)區(qū)塊定義的該候選 區(qū)塊;若該儲(chǔ)存單元中存在具有該奉獻(xiàn)區(qū)塊定義的該候選區(qū)塊, 直接將該數(shù)據(jù)儲(chǔ)存至該候選區(qū)塊中的該特定頁(yè)面中;以及若該儲(chǔ)存單元中不存在具有該奉獻(xiàn)區(qū)塊定義的該候選區(qū) 塊,將該數(shù)據(jù)儲(chǔ)存至具有奉獻(xiàn)區(qū)塊定義的該儲(chǔ)存單元中具有一 共享區(qū)塊定義的其它候選區(qū)塊中的該特定頁(yè)面中。
11. 根據(jù)權(quán)利要求io所述的儲(chǔ)存單元管理方法,其特征在 于,當(dāng)該儲(chǔ)存單元中存在具有該奉獻(xiàn)區(qū)塊定義的該候選區(qū)塊時(shí), 該儲(chǔ)存單元管理方法還包括下列步驟判斷具有該奉獻(xiàn)區(qū)塊定義的該候選區(qū)塊是否已經(jīng)滿(mǎn)了 ;以及若具有該奉獻(xiàn)區(qū)塊定義的該候選區(qū)塊已經(jīng)滿(mǎn)了,將該候選 區(qū)塊由該奉獻(xiàn)區(qū)塊定義轉(zhuǎn)換為該共享區(qū)塊定義,以將該數(shù)據(jù)儲(chǔ) 存至具有共享區(qū)塊定義的其它候選區(qū)塊中的該特定頁(yè)面中。
12. 根據(jù)權(quán)利要求10所述的儲(chǔ)存單元管理方法,其特征在 于,當(dāng)該儲(chǔ)存單元中存在具有該連續(xù)區(qū)塊定義的該候選區(qū)塊時(shí),該儲(chǔ)存單元管理方法還包括下列步驟判斷該邏輯頁(yè)面與具有該連續(xù)區(qū)塊定義的該候選區(qū)塊中具 有數(shù)據(jù)的最后一頁(yè)面是否相連續(xù);若該邏輯頁(yè)面與具有該連續(xù)區(qū)塊定義的該候選區(qū)塊中具有 數(shù)據(jù)的最后 一 頁(yè)面相連續(xù),直接將該數(shù)據(jù)儲(chǔ)存至具有連續(xù)區(qū)塊 定義的該候選區(qū)塊中的該特定頁(yè)面中;若該邏輯頁(yè)面與具有該連續(xù)區(qū)塊定義的該候選區(qū)塊中具有 數(shù)據(jù)的最后 一 頁(yè)面并非相連續(xù),判斷該邏輯頁(yè)面與具有該連續(xù) 區(qū)塊定義的該候選區(qū)塊中具有數(shù)據(jù)的最后 一 頁(yè)面的地址是否發(fā) 生沖突;若該邏輯頁(yè)面與具有該連續(xù)區(qū)塊定義的該候選區(qū)塊中具有 數(shù)據(jù)的最后 一 頁(yè)面的地址并未發(fā)生沖突,將該數(shù)據(jù)儲(chǔ)存至具有 共享區(qū)塊定義的其它候選區(qū)塊中的該特定頁(yè)面中;以及若該邏輯頁(yè)面與具有該連續(xù)區(qū)塊定義的該候選區(qū)塊中具有 數(shù)據(jù)的最后 一 頁(yè)面的地址發(fā)生沖突,將該候選區(qū)塊由該連續(xù)區(qū) 塊定義轉(zhuǎn)換為該奉獻(xiàn)區(qū)塊定義,以將該數(shù)據(jù)儲(chǔ)存至具有奉獻(xiàn)區(qū) 塊定義的該候選區(qū)塊中的該特定頁(yè)面中。
13. 根據(jù)權(quán)利要求12所述的儲(chǔ)存單元管理方法,其特征在 于,在將該數(shù)據(jù)儲(chǔ)存至具有奉獻(xiàn)區(qū)塊定義的該候選區(qū)塊中的該 特定頁(yè)面中的步驟之后,該儲(chǔ)存單元管理方法還包括下列步驟判斷具有該奉獻(xiàn)區(qū)塊定義的該候選區(qū)塊是否已經(jīng)滿(mǎn)了 ;以及若具有該奉獻(xiàn)區(qū)塊定義的該候選區(qū)塊已經(jīng)滿(mǎn)了 ,將該候選 區(qū)塊由該奉獻(xiàn)區(qū)塊定義轉(zhuǎn)換為該共享區(qū)塊定義,以將該數(shù)據(jù)儲(chǔ) 存至具有共享區(qū)塊定義的其它候選區(qū)塊中的該特定頁(yè)面中。
14. 根據(jù)權(quán)利要求1所述的儲(chǔ)存單元管理方法,其特征在于, 還包括將更新后的該特定區(qū)塊映射表寫(xiě)入至該儲(chǔ)存單元中。
15. —種儲(chǔ)存單元管理系統(tǒng),其特征在于,包括 一儲(chǔ)存單元,包括多個(gè)實(shí)體區(qū)塊,每一所述實(shí)體區(qū)塊具有多個(gè)區(qū)塊種類(lèi)定義中的一個(gè)區(qū)塊種類(lèi)定義;以及一處理模塊,取得至少一邏輯寫(xiě)入命令,其中該邏輯寫(xiě)入 命令要求對(duì)于相應(yīng)至少 一 邏輯區(qū)塊的至少 一 邏輯頁(yè)面進(jìn)行數(shù)據(jù) 寫(xiě)入操作,判斷該儲(chǔ)存單元中是否存在具有所述多個(gè)區(qū)塊種類(lèi) 定義中的一第一區(qū)塊定義的一候選區(qū)塊,其中依據(jù)該第一區(qū)塊 定義該邏輯區(qū)塊的該邏輯頁(yè)面無(wú)法映射至該候選區(qū)塊,若具有 該第一區(qū)塊定義的該候選區(qū)塊存在,將該第一區(qū)塊定義轉(zhuǎn)換為 所述區(qū)塊種類(lèi)定義中的一第二區(qū)塊定義,將一數(shù)據(jù)寫(xiě)入具有該 第二區(qū)塊定義的該候選區(qū)塊中的一特定頁(yè)面,且記錄該邏輯區(qū) 塊的該邏輯頁(yè)面與該候選區(qū)塊的該特定頁(yè)面的 一 映射關(guān)系。
16. 根據(jù)權(quán)利要求15所述的儲(chǔ)存單元管理系統(tǒng),其特征在 于,該邏輯寫(xiě)入命令至少包括一映射目錄編號(hào)、 一區(qū)塊偏移與 一頁(yè)面偏移,且該處理模塊還依據(jù)該映射目錄編號(hào)由多個(gè)區(qū)塊 映射表中定位至一特定區(qū)塊映射表,依據(jù)該區(qū)塊偏移由該特定 區(qū)塊映射表中定位一第一特定項(xiàng)目,其中該第一特定項(xiàng)目包括 一映射模式設(shè)定與一區(qū)塊信息,當(dāng)該映射模式設(shè)定為一頁(yè)面映 射模式時(shí),依據(jù)該區(qū)塊信息由 一 頁(yè)面映射區(qū)塊表中定位一 第二 特定項(xiàng)目,依據(jù)該第二特定項(xiàng)目由多個(gè)頁(yè)面映射表中定位一特 定頁(yè)面映射表,其中該特定頁(yè)面映射表對(duì)應(yīng)于一采用該頁(yè)面映 射模式的邏輯區(qū)塊,且依據(jù)該映射關(guān)系更新該特定區(qū)塊映射表 或該頁(yè)面映射表。
17. 根據(jù)權(quán)利要求16所述的儲(chǔ)存單元管理系統(tǒng),其特征在 于,該處理模塊還依據(jù)該映射目錄編號(hào)判斷該特定區(qū)塊映射表 是否已經(jīng)載入于一存儲(chǔ)器中,若該特定區(qū)塊映射表并未載入于 該存儲(chǔ)器中,由已經(jīng)載入該存儲(chǔ)器中的所述區(qū)塊映射表中選擇 一候選區(qū)塊映射表,且將該特定區(qū)塊映射表載入該存儲(chǔ)器中以 取代該候選區(qū)塊映射表。
18. 根據(jù)權(quán)利要求16所述的儲(chǔ)存單元管理系統(tǒng),其特征在 于,該處理模塊還當(dāng)該映射模式設(shè)定為一區(qū)塊映射模式時(shí),若 頁(yè)面映射區(qū)塊表中沒(méi)有空閑項(xiàng)目,新增一空閑項(xiàng)目至該頁(yè)面映 射區(qū)塊表。
19. 根據(jù)權(quán)利要求15所述的儲(chǔ)存單元管理系統(tǒng),其特征在 于,該處理模塊還依據(jù)該映射關(guān)系將該邏輯寫(xiě)入命令轉(zhuǎn)換為相 應(yīng)該儲(chǔ)存單元的至少一實(shí)體寫(xiě)入命令,且執(zhí)行該實(shí)體寫(xiě)入命令, 以將該數(shù)據(jù)寫(xiě)入至該儲(chǔ)存單元中該候選區(qū)塊中的該特定頁(yè)面。
20. 根據(jù)權(quán)利要求15所述的儲(chǔ)存單元管理系統(tǒng),其特征在 于,所述區(qū)塊種類(lèi)定義包括一數(shù)據(jù)區(qū)塊定義、 一連續(xù)區(qū)塊定義、 一奉獻(xiàn)區(qū)塊定義與一共享區(qū)塊定義,其中,具有該數(shù)據(jù)區(qū)塊定 義的該實(shí)體區(qū)塊是依據(jù)一區(qū)塊映射模式儲(chǔ)存數(shù)據(jù),且該實(shí)體區(qū) 塊中的所有頁(yè)面都已經(jīng)被寫(xiě)入數(shù)據(jù),具有該連續(xù)區(qū)塊定義的該 實(shí)體區(qū)塊中從第一個(gè)頁(yè)面開(kāi)始的多個(gè)頁(yè)面是依據(jù)該區(qū)塊映射模 式儲(chǔ)存數(shù)據(jù),且該實(shí)體區(qū)塊中存在至少一個(gè)未寫(xiě)入數(shù)據(jù)的頁(yè)面, 具有該奉獻(xiàn)區(qū)塊定義的該實(shí)體區(qū)塊中的數(shù)據(jù)皆是對(duì)應(yīng)至 一 特定 邏輯區(qū)塊,從第一個(gè)頁(yè)面開(kāi)始的多個(gè)頁(yè)面是依據(jù)該區(qū)塊映射模 式儲(chǔ)存數(shù)據(jù),且存在至少一頁(yè)面并不依據(jù)該區(qū)塊映射模式儲(chǔ)存 數(shù)據(jù),具有該共享區(qū)塊定義的該實(shí)體區(qū)塊中的數(shù)據(jù)是依據(jù)一頁(yè) 面映射模式儲(chǔ)存數(shù)據(jù),且對(duì)應(yīng)至至少二特定邏輯區(qū)塊。
21. 根據(jù)權(quán)利要求20所述的儲(chǔ)存單元管理系統(tǒng),其特征在 于,該處理模塊還判斷該至少一邏輯頁(yè)面是否包含該邏輯區(qū)塊 的第一個(gè)頁(yè)面,若該至少一邏輯頁(yè)面包含該邏輯區(qū)塊的第一個(gè) 頁(yè)面,判斷該儲(chǔ)存單元中是否存在具有該連續(xù)區(qū)塊定義的該候 選區(qū)塊,若該儲(chǔ)存單元中存在具有該連續(xù)區(qū)塊定義的該候選區(qū) 塊,將該候選區(qū)塊由該連續(xù)區(qū)塊定義轉(zhuǎn)換為該奉獻(xiàn)區(qū)塊定義, 以將該數(shù)據(jù)儲(chǔ)存至具有奉獻(xiàn)區(qū)塊定義的該候選區(qū)塊中的該特定 頁(yè)面中,若該儲(chǔ)存單元中不存在具有該連續(xù)區(qū)塊定義的該候選 區(qū)塊,配置一空閑區(qū)塊為具有該連續(xù)區(qū)塊定義的該候選區(qū)塊, 以將該數(shù)據(jù)儲(chǔ)存至具有連續(xù)區(qū)塊定義的該候選區(qū)塊中的該特定 頁(yè)面中。
22. 根據(jù)權(quán)利要求21所述的儲(chǔ)存單元管理系統(tǒng),其特征在 于,當(dāng)該儲(chǔ)存單元中不存在具有該連續(xù)區(qū)塊定義的該候選區(qū)塊 時(shí),該處理模塊更判斷該儲(chǔ)存單元中是否存在具有該奉獻(xiàn)區(qū)塊 定義的該候選區(qū)塊,若該儲(chǔ)存單元中存在具有該奉獻(xiàn)區(qū)塊定義 的該候選區(qū)塊,將該候選區(qū)塊由該奉獻(xiàn)區(qū)塊定義轉(zhuǎn)換為該共享 區(qū)塊定義。
23. 根據(jù)權(quán)利要求21所述的儲(chǔ)存單元管理系統(tǒng),其特征在 于,當(dāng)該儲(chǔ)存單元中存在具有該連續(xù)區(qū)塊定義的該候選區(qū)塊, 且將該候選區(qū)塊由該連續(xù)區(qū)塊定義轉(zhuǎn)換為該奉獻(xiàn)區(qū)塊定義之 后,該處理模塊還判斷具有該奉獻(xiàn)區(qū)塊定義的該候選區(qū)塊是否 已經(jīng)滿(mǎn)了,若具有該奉獻(xiàn)區(qū)塊定義的該候選區(qū)塊已經(jīng)滿(mǎn)了 ,將 該候選區(qū)塊由該奉獻(xiàn)區(qū)塊定義轉(zhuǎn)換為該共享區(qū)塊定義,并將該 數(shù)據(jù)儲(chǔ)存至具有共享區(qū)塊定義的其它候選區(qū)塊中的該特定頁(yè)面 中。
24. 根據(jù)權(quán)利要求20所述的儲(chǔ)存單元管理系統(tǒng),其特征在 于,該處理模塊更判斷該至少 一 邏輯頁(yè)面是否包含該邏輯區(qū)塊 的第一個(gè)頁(yè)面,當(dāng)該至少一邏輯頁(yè)面不包含該邏輯區(qū)塊的第一 個(gè)頁(yè)面時(shí),該處理模塊還判斷該儲(chǔ)存單元中是否存在具有該連 續(xù)區(qū)塊定義的該候選區(qū)塊,若該儲(chǔ)存單元中不存在具有該連續(xù) 區(qū)塊定義的該候選區(qū)塊,判斷該儲(chǔ)存單元中是否存在具有該奉 獻(xiàn)區(qū)塊定義的該候選區(qū)塊,若該儲(chǔ)存單元中存在具有該奉獻(xiàn)區(qū) 塊定義的該候選區(qū)塊,直接將該數(shù)據(jù)儲(chǔ)存至具有奉獻(xiàn)區(qū)塊定義 的該候選區(qū)塊中的該特定頁(yè)面中,若該儲(chǔ)存單元中不存在具有 該奉獻(xiàn)區(qū)塊定義的該候選區(qū)塊,將該數(shù)據(jù)儲(chǔ)存至該儲(chǔ)存單元中 具有一共享區(qū)塊定義的其它候選區(qū)塊中的該特定頁(yè)面中。
25. 根據(jù)權(quán)利要求24所述的儲(chǔ)存單元管理系統(tǒng),其特征在 于,當(dāng)該儲(chǔ)存單元中存在具有該奉獻(xiàn)區(qū)塊定義的該候選區(qū)塊時(shí), 該處理模塊還判斷具有該奉獻(xiàn)區(qū)塊定義的該候選區(qū)塊是否已經(jīng) 滿(mǎn)了,若具有該奉獻(xiàn)區(qū)塊定義的該候選區(qū)塊已經(jīng)滿(mǎn)了 ,將該候 選區(qū)塊由該奉獻(xiàn)區(qū)塊定義轉(zhuǎn)換為該共享區(qū)塊定義,以將該數(shù)據(jù) 儲(chǔ)存至具有共享區(qū)塊定義的其它候選區(qū)塊中的該特定頁(yè)面中。
26. 根據(jù)權(quán)利要求24所述的儲(chǔ)存單元管理系統(tǒng),其特征在 于,當(dāng)該儲(chǔ)存單元中存在具有該連續(xù)區(qū)塊定義的該候選區(qū)塊時(shí), 該處理模塊還判斷該邏輯頁(yè)面與具有該連續(xù)區(qū)塊定義的該候選 區(qū)塊中具有數(shù)據(jù)的最后一頁(yè)面是否相連續(xù),若該邏輯頁(yè)面與具 有該連續(xù)區(qū)塊定義的該候選區(qū)塊中具有數(shù)據(jù)的最后一頁(yè)面相連 續(xù),直接將該數(shù)據(jù)儲(chǔ)存至具有連續(xù)區(qū)塊定義的該候選區(qū)塊中的 該特定頁(yè)面中,若該邏輯頁(yè)面與具有該連續(xù)區(qū)塊定義的該候選 區(qū)塊中具有數(shù)據(jù)的最后一頁(yè)面并非相連續(xù),判斷該邏輯頁(yè)面與 具有該連續(xù)區(qū)塊定義的該候選區(qū)塊中具有數(shù)據(jù)的最后 一 頁(yè)面的 地址是否發(fā)生沖突,若該邏輯頁(yè)面與具有該連續(xù)區(qū)塊定義的該 候選區(qū)塊中具有數(shù)據(jù)的最后 一 頁(yè)面的地址并未發(fā)生沖突,將該 數(shù)據(jù)儲(chǔ)存至具有共享區(qū)塊定義的其它候選區(qū)塊中的該特定頁(yè)面 中,若該邏輯頁(yè)面與具有該連續(xù)區(qū)塊定義的該候選區(qū)塊中具有 數(shù)據(jù)的最后一頁(yè)面的地址發(fā)生沖突,將該候選區(qū)塊由該連續(xù)區(qū) 塊定義轉(zhuǎn)換為該奉獻(xiàn)區(qū)塊定義,以將該數(shù)據(jù)儲(chǔ)存至具有奉獻(xiàn)區(qū) 塊定義的該候選區(qū)塊中的該特定頁(yè)面中。
27. 根據(jù)權(quán)利要求26所述的儲(chǔ)存單元管理系統(tǒng),其特征在 于,在將該數(shù)據(jù)儲(chǔ)存至具有奉獻(xiàn)區(qū)塊定義的該候選區(qū)塊中的該 特定頁(yè)面中之后,該處理模塊還判斷具有該奉獻(xiàn)區(qū)塊定義的該 候選區(qū)塊是否已經(jīng)滿(mǎn)了 ,若具有該奉獻(xiàn)區(qū)塊定義的該候選區(qū)塊 已經(jīng)滿(mǎn)了 ,將該候選區(qū)塊由該奉獻(xiàn)區(qū)塊定義轉(zhuǎn)換為該共享區(qū)塊 定義,以將該數(shù)據(jù)儲(chǔ)存至具有共享區(qū)塊定義的其它候選區(qū)塊中 的該特定頁(yè)面中。
28. 根據(jù)權(quán)利要求15所述的儲(chǔ)存單元管理系統(tǒng),其特征在 于,該處理模塊還將更新后的該特定區(qū)塊映射表寫(xiě)入至該儲(chǔ)存 單元中。
全文摘要
一種儲(chǔ)存單元管理方法及系統(tǒng),用以管理包括多個(gè)實(shí)體區(qū)塊的儲(chǔ)存單元,每一實(shí)體區(qū)塊具有多個(gè)區(qū)塊種類(lèi)定義中的一區(qū)塊種類(lèi)定義。首先,取得至少一邏輯寫(xiě)入命令,邏輯寫(xiě)入命令要求對(duì)于相應(yīng)至少一邏輯區(qū)塊的至少一邏輯頁(yè)面進(jìn)行數(shù)據(jù)寫(xiě)入操作。判斷儲(chǔ)存單元中是否存在具有多個(gè)區(qū)塊種類(lèi)定義中的第一區(qū)塊定義的候選區(qū)塊,依據(jù)第一區(qū)塊定義,邏輯區(qū)塊的邏輯頁(yè)面無(wú)法映射至候選區(qū)塊。若具有第一區(qū)塊定義的候選區(qū)塊存在,將第一區(qū)塊定義轉(zhuǎn)換為區(qū)塊種類(lèi)定義中的第二區(qū)塊定義。將數(shù)據(jù)寫(xiě)入具有第二區(qū)塊定義的候選區(qū)塊中的特定頁(yè)面,記錄邏輯區(qū)塊的邏輯頁(yè)面與候選區(qū)塊的特定頁(yè)面的映射關(guān)系。本發(fā)明將儲(chǔ)存單元的實(shí)體區(qū)塊進(jìn)行分類(lèi)管理,以更有效率地利用儲(chǔ)存單元。
文檔編號(hào)G06F12/02GK101382873SQ20081017020
公開(kāi)日2009年3月11日 申請(qǐng)日期2008年10月9日 優(yōu)先權(quán)日2008年3月7日
發(fā)明者蔣培軍 申請(qǐng)人:威盛電子股份有限公司