專利名稱:快閃存儲(chǔ)器管理方法與計(jì)算機(jī)系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于一種存儲(chǔ)器裝置的管理方法,特別關(guān)于一種 可優(yōu)化快閃存儲(chǔ)器裝置的讀寫(xiě)操作性能的方法。
背景技術(shù):
快閃存儲(chǔ)器(flash memory)為 一 種特殊種類的非易失性 (nonvolatile)存儲(chǔ)器,其可儲(chǔ)存數(shù)據(jù)以及被電性擦除。以快閃存 儲(chǔ)器為基礎(chǔ)的儲(chǔ)存裝置具有低功率耗損,并且與以磁盤(pán)存儲(chǔ)器 為基礎(chǔ)的儲(chǔ)存裝置相比,具有相對(duì)小的尺寸。因此,快閃存儲(chǔ) 器裝置目前為一些手持電子計(jì)算裝置中經(jīng)常被使用的存儲(chǔ)器裝 置,例如數(shù)字相機(jī)、移動(dòng)電話或個(gè)人數(shù)字助理(personal digital assistants, PDA)等。
在磁盤(pán)存儲(chǔ)器裝置中,新的數(shù)據(jù)可覆寫(xiě)舊的數(shù)據(jù)。然而, 在快閃存儲(chǔ)器裝置中,若要更新先前儲(chǔ)存的數(shù)據(jù),必須先將一 區(qū)塊(block)范圍進(jìn)行擦除,即,快閃存儲(chǔ)器裝置的讀取與寫(xiě)入 操作的單位可以是以頁(yè)(page)或區(qū)段(sector)為基礎(chǔ),而擦除操 作的最小單位為區(qū)塊。因此,擦除操作通常比寫(xiě)入與讀取操作 需要更多的時(shí)間。此外,由于區(qū)塊的大小遠(yuǎn)大于頁(yè)與區(qū)段,即 使區(qū)塊內(nèi)不需被寫(xiě)入的部分也要同時(shí)被擦除。
傳統(tǒng)技術(shù)中改善讀寫(xiě)操作性能的方法為通過(guò)介質(zhì)管理層, 使用映射的方式,當(dāng)需要修改某一區(qū)塊內(nèi)儲(chǔ)存的數(shù)據(jù)時(shí),在系 統(tǒng)內(nèi)取得另 一個(gè)可用區(qū)塊(通常稱此區(qū)塊為log區(qū)塊),用以儲(chǔ)存 該區(qū)塊的修改記錄,如此一來(lái),每當(dāng)需要修改該區(qū)塊的數(shù)據(jù)時(shí), 僅需將修改數(shù)據(jù)儲(chǔ)存至該區(qū)塊對(duì)應(yīng)的1 o g區(qū)塊,即可避免必須擦 除一整個(gè)區(qū)塊的寫(xiě)入操作。然而,在讀取操作時(shí),為了尋找到最近被更新的數(shù)據(jù)內(nèi)容,必須自log區(qū)塊的末端倒序地遍歷(visit) log區(qū)塊內(nèi)所儲(chǔ)存的數(shù)據(jù),這樣一來(lái),增加了許多不必要的數(shù)據(jù)
讀取操作,更降低了讀取的速度。
因此,需要一種新的快閃存儲(chǔ)器管理方法,可優(yōu)化快閃存 儲(chǔ)器裝置的讀寫(xiě)操作性能,使得存儲(chǔ)器裝置的讀寫(xiě)操作速度可
大幅地祐j是升。
發(fā)明內(nèi)容
本發(fā)明所述的快閃存儲(chǔ)器管理方法,用以管理一快閃存儲(chǔ) 器裝置,該快閃存儲(chǔ)器裝置配置至少一映射區(qū)塊、至少一修改
區(qū)塊以及至少一快取區(qū)塊,該快閃存儲(chǔ)器管理方法包括接收 包含一寫(xiě)入邏輯地址與一既定數(shù)據(jù)的一寫(xiě)入指令,用以寫(xiě)入該
既定數(shù)據(jù)至該快閃存儲(chǔ)器裝置;以及若對(duì)應(yīng)于該寫(xiě)入邏輯地址 的映射區(qū)塊的頁(yè)已經(jīng)被使用,則寫(xiě)入該既定數(shù)據(jù)于該映射區(qū)塊 對(duì)應(yīng)的修改區(qū)塊的一空白頁(yè);其中,該寫(xiě)入該既定數(shù)據(jù)于該映 射區(qū)塊對(duì)應(yīng)的修改區(qū)塊的一空白頁(yè)的步驟包括根據(jù)該寫(xiě)入邏 輯地址由 一快取區(qū)塊讀取對(duì)應(yīng)于該修改區(qū)塊的快取頁(yè)至一 隨機(jī) 存取存儲(chǔ)器裝置,于該隨機(jī)存取存儲(chǔ)器裝置內(nèi)依序讀取該快取 頁(yè)的數(shù)據(jù)欄位以獲得該空白頁(yè)于該修改區(qū)塊內(nèi)的位置信息,其 中該快取區(qū)塊的各快取頁(yè)具有多個(gè)數(shù)據(jù)欄位用以依序儲(chǔ)存該修 改區(qū)塊的各非空白頁(yè)所寫(xiě)入的數(shù)據(jù)所對(duì)應(yīng)的位置信息;以及依 據(jù)獲得的該位置信息寫(xiě)入該既定數(shù)據(jù)于該修改區(qū)塊的該空白 頁(yè)。
本發(fā)明所述的快閃存儲(chǔ)器管理方法,用以管理一快閃存儲(chǔ) 器裝置,其中該快閃存儲(chǔ)器裝置配置至少一映射區(qū)塊、至少一 修改區(qū)塊以及至少 一快取區(qū)塊,該快閃存儲(chǔ)器管理方法包括 接收包含一讀取邏輯地址的一讀取指令用以由該快閃存儲(chǔ)器裝置的一頁(yè)讀耳又一既定lt據(jù);以及若對(duì)應(yīng)于該讀耳又邏輯地址的映 射區(qū)塊的頁(yè)的數(shù)據(jù)已經(jīng)被修改過(guò),則于對(duì)應(yīng)于該映射區(qū)塊的修 改區(qū)塊中讀取該既定H據(jù);其中該于對(duì)應(yīng)于該映射區(qū)塊的修改 區(qū)塊中讀取該既定數(shù)據(jù)的步驟包括根據(jù)該讀取邏輯地址由一 快取區(qū)塊讀取對(duì)應(yīng)于該修改區(qū)塊的快取頁(yè)至一 隨機(jī)存取存儲(chǔ)器 裝置,于該隨機(jī)存取存儲(chǔ)器裝置內(nèi)依序讀取該快取頁(yè)的數(shù)據(jù)欄 位以獲得對(duì)應(yīng)于該讀取邏輯地址的頁(yè)于該修改區(qū)塊內(nèi)的 一 位置 信息,其中該快取區(qū)塊的各快取頁(yè)具有多個(gè)數(shù)據(jù)欄位用以依序 儲(chǔ)存該修改區(qū)塊的各非空白頁(yè)所寫(xiě)入的數(shù)據(jù)所對(duì)應(yīng)的位置信 息;以及依據(jù)獲得的該位置信息于該修改區(qū)塊的該頁(yè)讀取該既 定數(shù)據(jù)。
本發(fā)明所述的計(jì)算機(jī)系統(tǒng),包括 一快閃存儲(chǔ)器,配置至 少一映射區(qū)塊、至少一修改區(qū)塊以及至少一快取區(qū)塊; 一隨機(jī) 存取存儲(chǔ)器裝置;以及一處理器,耦接至該快閃存儲(chǔ)器與該隨 機(jī)存取存儲(chǔ)器裝置,該處理器接收包含一寫(xiě)入邏輯地址與既定 數(shù)據(jù)的 一寫(xiě)入指令,若對(duì)應(yīng)于該寫(xiě)入邏輯地址的映射區(qū)塊的頁(yè) 已經(jīng)被使用,則根據(jù)該寫(xiě)入邏輯地址由一快取區(qū)塊讀取對(duì)應(yīng)于 該修改區(qū)塊的快取頁(yè)至該隨機(jī)存取存儲(chǔ)器裝置,并于該隨機(jī)存 取存儲(chǔ)器裝置內(nèi)依序讀取該快取頁(yè)的數(shù)據(jù)欄位以獲得該空白頁(yè) 于該修改區(qū)塊內(nèi)的位置信息,以及依據(jù)該位置信息寫(xiě)入該既定 數(shù)據(jù)于該修改區(qū)塊的該空白頁(yè),其中該快取區(qū)塊的各快取頁(yè)具 有多數(shù)據(jù)欄位用以依序儲(chǔ)存該修改區(qū)塊的各非空白頁(yè)所寫(xiě)入的 數(shù)據(jù)所對(duì)應(yīng)的位置信息。
本發(fā)明所述的計(jì)算機(jī)系統(tǒng),包括 一快閃存儲(chǔ)器,配置至 少一映射區(qū)塊、至少一修改區(qū)塊以及至少一快取區(qū)塊; 一隨機(jī) 存取存儲(chǔ)器裝置;以及一處理器,耦接至該快閃存儲(chǔ)器與該隨 機(jī)存取存儲(chǔ)器裝置,該處理器接收包含一讀取邏輯地址的一讀取指令,若對(duì)應(yīng)于該讀取邏輯位置的該映射區(qū)塊的頁(yè)的數(shù)據(jù)已 經(jīng)被修改過(guò),則才艮據(jù)該讀取邏輯地址由 一 快耳又區(qū)塊讀取對(duì)應(yīng)于 該修改區(qū)塊的快取頁(yè)至該隨機(jī)存取存儲(chǔ)器裝置,并于該隨機(jī)存 取存儲(chǔ)器裝置內(nèi)依序讀取該快取頁(yè)的數(shù)據(jù)欄位以獲得對(duì)應(yīng)于該 讀取邏輯地址的頁(yè)于該修改區(qū)塊內(nèi)的一位置信息,以及依據(jù)該 位置信息于該修改區(qū)塊的該頁(yè)讀取該既定數(shù)據(jù),其中該快取區(qū) 塊的各快取頁(yè)具有多數(shù)據(jù)欄位用以依序儲(chǔ)存該修改區(qū)塊的各非 空白頁(yè)所寫(xiě)入的數(shù)據(jù)所對(duì)應(yīng)的位置信息。
本發(fā)明所述的快閃存儲(chǔ)器管理方法,用以管理一快閃存儲(chǔ) 器裝置,其中該快閃存儲(chǔ)器裝置配置至少一映射區(qū)塊、至少一
修改區(qū)塊以及至少 一快取區(qū)塊,該快閃存儲(chǔ)器管理方法包括 接收一包含一邏輯地址的存取指令,用以于該快閃存儲(chǔ)器裝置 存取 一 既定數(shù)據(jù);以及若對(duì)應(yīng)于該邏輯地址的該映射區(qū)塊的頁(yè) 不適于存取該既定數(shù)據(jù),則于與該映射區(qū)塊對(duì)應(yīng)的修改區(qū)塊中 進(jìn)行存取操作,包括由該快閃存儲(chǔ)器裝置的一快取區(qū)塊讀取 對(duì)應(yīng)于該修改區(qū)塊的 一快取頁(yè)至一 隨機(jī)存取存儲(chǔ)器裝置,于該 隨機(jī)存取存儲(chǔ)器裝置內(nèi)依序讀取該快取頁(yè)的數(shù)據(jù)欄位以獲得該 既定數(shù)據(jù)于該修改區(qū)塊內(nèi)的存取位置信息,其中該快取區(qū)塊的 各快取頁(yè)具有多個(gè)數(shù)據(jù)欄位用以依序儲(chǔ)存該修改區(qū)塊的各非空 白頁(yè)所寫(xiě)入的數(shù)據(jù)所對(duì)應(yīng)的位置信息;以及依據(jù)該存取位置信 息于該快閃存儲(chǔ)器裝置的修改區(qū)塊內(nèi)存取該既定數(shù)據(jù)。
本發(fā)明可大幅度地提升快閃存儲(chǔ)器的寫(xiě)入與讀取速度,且 可占用較少的隨機(jī)存取存儲(chǔ)器空間。
圖1是顯示根據(jù)本發(fā)明的 一 實(shí)施例所述的計(jì)算機(jī)系統(tǒng)。
圖2是顯示根據(jù)本發(fā)明的 一 實(shí)施例所述的快閃存儲(chǔ)器的數(shù)據(jù)結(jié)構(gòu)示意圖。
圖3是顯示根據(jù)本發(fā)明的 一 實(shí)施例所述的邏輯至映射區(qū)塊
對(duì)應(yīng)表的數(shù)據(jù)結(jié)構(gòu)示意圖。
圖4是顯示根據(jù)本發(fā)明的 一 實(shí)施例所述的物理區(qū)塊信息表 的數(shù)據(jù)結(jié)構(gòu)示意圖。
圖5a至圖5b是顯示根據(jù)本發(fā)明的 一 實(shí)施例所述的快取區(qū)塊 索引表的數(shù)據(jù)結(jié)構(gòu)示意圖。
圖6是顯示根據(jù)本發(fā)明的 一 實(shí)施例所述的快閃存儲(chǔ)器管理 方法流程圖。
圖7a至圖7b是顯示根據(jù)本發(fā)明的 一 實(shí)施例所述的快閃存儲(chǔ) 器的寫(xiě)入操作的詳細(xì)流程圖。
圖8a至圖8e是顯示根據(jù)本發(fā)明的一實(shí)施例所述的快閃存儲(chǔ) 器的寫(xiě)入操作的示意圖。
圖9是顯示根據(jù)本發(fā)明的另 一 實(shí)施例所述的快閃存儲(chǔ)器管 理方法流程圖。
圖10是顯示根據(jù)本發(fā)明的 一 實(shí)施例所述的快閃存儲(chǔ)器的讀 取操作的詳細(xì)流程圖。
圖lla至圖lld是顯示根據(jù)本發(fā)明的一實(shí)施例所述的快閃存 儲(chǔ)器的讀取操作的示意圖。
具體實(shí)施例方式
為使本發(fā)明的制造、操作方法、目標(biāo)和優(yōu)點(diǎn)能更明顯易懂, 下文特舉幾個(gè)4交佳實(shí)施例,并配合所附圖式,作詳細(xì)說(shuō)明如下。 實(shí)施例
圖l是顯示根據(jù)本發(fā)明的一實(shí)施例所述的計(jì)算機(jī)系統(tǒng)100, 包括快閃存儲(chǔ)器101、處理器102以及隨機(jī)存取存儲(chǔ)器裝置103。
15處理器102根據(jù)接收到的指令以及通過(guò)執(zhí)行既定的程序碼管理 快閃存儲(chǔ)器IOI。根據(jù)本發(fā)明的一實(shí)施例,快閃存儲(chǔ)器101可以 是具有 一次可擦除數(shù)據(jù)的最小單位大于 一次可寫(xiě)入數(shù)據(jù)的最小 單位的特性的 一 種存儲(chǔ)器裝置,例如NAND型或NOR型快閃存 儲(chǔ)器??扉W存儲(chǔ)器101可被配置至少一映射區(qū)塊、修改區(qū)塊以及 快取區(qū)塊,其中對(duì)于NAND型快閃存儲(chǔ)器而言,映射區(qū)塊、修 改區(qū)塊以及快取區(qū)塊可分別包括多個(gè)頁(yè)(page),而對(duì)于NOR型 快閃存儲(chǔ)器而言,映射區(qū)塊、修改區(qū)塊以及快取區(qū)塊可分別包 括多個(gè)區(qū)段(sector)。為了簡(jiǎn)潔起見(jiàn),本說(shuō)明書(shū)將統(tǒng)一使用"頁(yè)" 進(jìn)行相關(guān)的描述,然而值得注意的是,其并非用以限定本發(fā)明 的范圍,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍 內(nèi),當(dāng)可做一些更動(dòng)與潤(rùn)飾,用以將本發(fā)明的精神應(yīng)用于各種 快閃存儲(chǔ)器。
根據(jù)本發(fā)明的一實(shí)施例,映射區(qū)塊的各頁(yè)用以儲(chǔ)存原始數(shù) 據(jù),并且映射區(qū)塊可具有至少一對(duì)應(yīng)的修改區(qū)塊,用以當(dāng)原始 數(shù)據(jù)需被更改時(shí),于該修改區(qū)塊的各頁(yè)儲(chǔ)存原始數(shù)據(jù)的更新內(nèi) 容,并且各修改區(qū)塊可對(duì)應(yīng)于至少一快取區(qū)塊的一頁(yè),用以儲(chǔ) 存修改區(qū)塊所寫(xiě)入的數(shù)據(jù)的位置信息。圖2是顯示根據(jù)本發(fā)明的 一實(shí)施例所述的快閃存儲(chǔ)器的數(shù)據(jù)結(jié)構(gòu)示意圖。如圖所示,快 閃存儲(chǔ)器200可被配置多個(gè)快取區(qū)塊201、多個(gè)映射區(qū)塊202以及 多個(gè)修改區(qū)塊203??烊^(qū)塊201的各頁(yè)分別包括一數(shù)據(jù)區(qū)域與 一冗余區(qū)域,數(shù)據(jù)區(qū)域可包含多個(gè)數(shù)據(jù)欄位,用以依照對(duì)應(yīng)的 修改區(qū)塊的頁(yè)順序儲(chǔ)存修改區(qū)塊的各非空白頁(yè)的位置信息。以 256兆字節(jié)(MB)的快閃存儲(chǔ)器為例,可配置2048個(gè)區(qū)塊,各區(qū) 塊大小為128KB,并且各區(qū)塊可包含256頁(yè)(或區(qū)段),各頁(yè)的數(shù) 據(jù)區(qū)域大小為512字節(jié)(byte),并具有對(duì)應(yīng)的16byte的冗余區(qū)域。 因此,根據(jù)本發(fā)明的一實(shí)施例,若各數(shù)據(jù)欄位使用2byte記錄位置信息,則快取區(qū)塊201的各頁(yè)的數(shù)據(jù)區(qū)域可分成256個(gè)數(shù)據(jù)欄 位,足以完整記錄一修改區(qū)塊的各頁(yè)的所有位置信息,而快取 區(qū)塊201的冗余區(qū)域則可用以記錄該快取區(qū)塊201的 一快取區(qū)塊
(以下將作詳細(xì)介紹)。此外,如圖2所示,映射區(qū)塊202與修改 區(qū)塊203也可分別包括一數(shù)據(jù)區(qū)域與一冗余區(qū)域,其中映射區(qū)塊 202與修改區(qū)塊203的冗余區(qū)域用以儲(chǔ)存該頁(yè)的數(shù)據(jù)區(qū)域所寫(xiě)入 的數(shù)據(jù)所對(duì)應(yīng)的邏輯區(qū)塊編號(hào)與邏輯頁(yè)編號(hào)(以下將作詳細(xì)介 紹)。
根據(jù)本發(fā)明的一實(shí)施例,當(dāng)寫(xiě)入快閃存儲(chǔ)器101時(shí),處理器 102接收包含一寫(xiě)入邏輯地址與既定數(shù)據(jù)的一寫(xiě)入指令,并根據(jù) 該寫(xiě)入邏輯地址取得對(duì)應(yīng)的一邏輯區(qū)塊編號(hào)LBN以及一邏輯頁(yè) 編號(hào)LSN。例如,假設(shè)寫(xiě)入邏輯地址為90,其中快閃存儲(chǔ)器IOI 的一區(qū)塊包含8頁(yè),并且一頁(yè)大小為10byte,則可得到邏輯區(qū)塊 編號(hào)LBN為90除以80的商數(shù),而邏輯頁(yè)編號(hào)LSN為90除以80的 余數(shù)再除以頁(yè)大小所得到的數(shù)值,即在此范例中,LBN=1, LSN=1,因此處理器102將接收到的既定數(shù)據(jù)存入第l個(gè)邏輯區(qū) 塊的第1頁(yè)。處理器102進(jìn)一 步根據(jù)邏輯區(qū)塊編號(hào)LBN取得對(duì)應(yīng) 的一映射區(qū)塊,其中此映射區(qū)塊為快閃存儲(chǔ)器101中實(shí)際被配置 的一物理區(qū)塊,用以儲(chǔ)存此邏輯區(qū)塊的原始數(shù)據(jù)。當(dāng)處理器102
時(shí),處理器102將既定數(shù)據(jù)寫(xiě)入至該頁(yè),并且當(dāng)該頁(yè)已被寫(xiě)入時(shí), 處理器102進(jìn)一 步取得對(duì)應(yīng)于此映射區(qū)塊的 一修改區(qū)塊,以及對(duì) 應(yīng)于此修改區(qū)塊的 一 快取區(qū)塊,處理器10 2將既定數(shù)據(jù)寫(xiě)入至此 修改區(qū)塊的一空白頁(yè),并且將既定數(shù)據(jù)的邏輯頁(yè)編號(hào)LSN寫(xiě)入 至此快取區(qū)塊的一空白頁(yè)。
根據(jù)本發(fā)明的一實(shí)施例,處理器102更進(jìn)一步在隨機(jī)存取存儲(chǔ)器裝置103內(nèi)建立一邏輯至映射區(qū)塊對(duì)應(yīng)表(第一信息表)、一
物理區(qū)塊信息表(第二信息表)以及一快取區(qū)塊索引表(第三信
息表)。圖3是顯示根據(jù)本發(fā)明的 一 實(shí)施例所述的邏輯至映射區(qū) 塊對(duì)應(yīng)表300的數(shù)據(jù)結(jié)構(gòu)示意圖。根據(jù)本發(fā)明的一實(shí)施例,邏輯 至映射區(qū)塊對(duì)應(yīng)表3 00依照邏輯區(qū)塊編號(hào)的順序依序儲(chǔ)存各邏 輯區(qū)塊所對(duì)應(yīng)的映射區(qū)塊的一物理區(qū)塊編號(hào),例如,對(duì)應(yīng)于邏 輯區(qū)塊編號(hào)LBN二O的 一邏輯區(qū)塊,其映射區(qū)塊的物理區(qū)塊編號(hào) 為0x0002。圖4是顯示根據(jù)本發(fā)明的 一 實(shí)施例所述的物理區(qū)塊信 息表400的數(shù)據(jù)結(jié)構(gòu)示意圖。根據(jù)本發(fā)明的一實(shí)施例,物理區(qū)塊 信息表400依照物理區(qū)塊編號(hào)的順序依序儲(chǔ)存各物理區(qū)塊的一 狀態(tài)與其連結(jié)信息。例如,物理區(qū)塊編號(hào)為O的一物理區(qū)塊為一 空閑區(qū)塊(FB),即,尚未被使用的區(qū)塊,其連結(jié)信息則儲(chǔ)存下 一個(gè)空閑區(qū)塊的物理區(qū)塊編號(hào)。物理區(qū)塊編號(hào)為2的 一物理區(qū)塊 為 一 映射區(qū)塊(MpB),其連結(jié)信息則儲(chǔ)存對(duì)應(yīng)的修改區(qū)塊的物 理區(qū)塊編號(hào)(0x0003)。物理區(qū)塊編號(hào)為3的一物理區(qū)塊為一修改 區(qū)塊(MoB),其連結(jié)信息則儲(chǔ)存對(duì)應(yīng)的快取頁(yè)的一快取區(qū)塊索 引,其中快取區(qū)塊索引可用以指示出對(duì)應(yīng)于此修改區(qū)塊的快取 區(qū)塊的位置以及頁(yè)信息。例如,對(duì)于同樣包含8頁(yè)的快取區(qū)塊, 快取區(qū)塊索引0x0011可指示出快取頁(yè)位于系統(tǒng)配置的第1個(gè)快 取區(qū)塊(l 1除以8的商數(shù))的第3頁(yè)(11除以8的余數(shù))。而物理區(qū)塊 編號(hào)為6的一物理區(qū)塊為一快取區(qū)塊(CB),其連結(jié)信息則儲(chǔ)存此 快取區(qū)塊的快取區(qū)塊編號(hào)。圖5a是顯示根據(jù)本發(fā)明的一實(shí)施例 所述的快取區(qū)塊索引表500的數(shù)據(jù)結(jié)構(gòu)示意圖??烊^(qū)塊索引表 500根據(jù)快取區(qū)塊編號(hào)依序記錄該快取區(qū)塊的物理區(qū)塊編號(hào)與 第一個(gè)空閑的快取頁(yè)(即,快取區(qū)塊的第一個(gè)空白頁(yè))的頁(yè)編號(hào)。 如圖所示,假設(shè)系統(tǒng)最大可配置4個(gè)快取區(qū)塊,并且各快取區(qū)塊 可包含8頁(yè),則快取區(qū)塊索引表500依序記錄這4個(gè)快取區(qū)塊的物理區(qū)塊編號(hào)與第一個(gè)空白頁(yè)的編號(hào)。根據(jù)本發(fā)明的一實(shí)施例, 當(dāng) 一個(gè)快取區(qū)塊的各頁(yè)都被使用過(guò)后,才會(huì)配置下一個(gè)快取區(qū)
塊。如圖5a所示,編號(hào)O的快取區(qū)塊已被存滿數(shù)據(jù),因此目前使 用中的快取區(qū)塊為編號(hào)1的快取區(qū)塊。
圖6是顯示根據(jù)本發(fā)明的 一 實(shí)施例所述的快閃存儲(chǔ)器管理 方法流程圖。如圖所示,處理器102首先接收包含一寫(xiě)入邏輯地 址與一既定數(shù)據(jù)的一寫(xiě)入指令,用以寫(xiě)入該既定數(shù)據(jù)至一快閃 存儲(chǔ)器裝置的一頁(yè)(步驟S601)。接著,當(dāng)該頁(yè)已寫(xiě)入數(shù)據(jù)時(shí), 處理器102取得對(duì)應(yīng)于包含該頁(yè)的 一 映射區(qū)塊的 一修改區(qū)塊,以 及配置對(duì)應(yīng)于該修改區(qū)塊的一快取區(qū)塊(步驟S602)。最后,處 理器102寫(xiě)入該既定數(shù)據(jù)于該修改區(qū)塊的一空白頁(yè),并且寫(xiě)入包 含該修改區(qū)塊的該頁(yè)的位置信息于該快取區(qū)塊的一空白頁(yè)(步 驟S603)。
圖7a至圖7b是顯示根據(jù)本發(fā)明的 一 實(shí)施例所述的快閃存儲(chǔ) 器的寫(xiě)入操作的詳細(xì)流程圖。首先,處理器102根據(jù)接收到的寫(xiě)
編號(hào)LSN(步驟S701)。接著,處理器102查詢邏輯至映射區(qū)塊對(duì)
器102檢查此映射區(qū)塊中對(duì)應(yīng)于此邏輯頁(yè)編號(hào)LSN的一頁(yè)是否 為空白頁(yè)(步驟S703)。若此頁(yè)為一空白頁(yè),則處理器102將既定 數(shù)據(jù)寫(xiě)入此頁(yè)(步驟S704)。若此頁(yè)已存有數(shù)據(jù),則處理器102依 據(jù)物理區(qū)塊信息表查詢映射區(qū)塊是否有對(duì)應(yīng)的修改區(qū)塊(步驟 S705)。若此映射區(qū)塊沒(méi)有對(duì)應(yīng)的修改區(qū)塊,則處理器102為此 映射區(qū)塊分配一修改區(qū)塊(步驟S706)。接著,處理器102將既定 數(shù)據(jù)寫(xiě)入此修改區(qū)塊的第 一 頁(yè)(步驟S707),并且分配快取區(qū)塊 的一頁(yè)給此修改區(qū)塊(步驟S708),用以記錄此既定數(shù)據(jù)的位置 信息(例如,邏輯頁(yè)編號(hào)LSN),并且最后更新物理區(qū)塊信息表(參
19考圖4)與快取區(qū)塊索引表(參考圖5a、 5b)中映射區(qū)塊、修改區(qū)塊 以及快取區(qū)塊的相關(guān)信息(步驟S 709)。
另一方面,若此映射區(qū)塊已有對(duì)應(yīng)的修改區(qū)塊,則處理器 102依據(jù)物理區(qū)塊信息表中映射區(qū)塊的連結(jié)信息取得修改區(qū)塊 所對(duì)應(yīng)的快取頁(yè)的快取區(qū)塊索引(步驟S710)。接著,處理器102 再根據(jù)快取區(qū)塊索引查詢快取區(qū)塊索引表,以取得此快取頁(yè)所 對(duì)應(yīng)的快取區(qū)塊的物理區(qū)塊編號(hào)(步驟S711)。接著,處理器102 將此快取頁(yè)的內(nèi)容載入隨機(jī)存取存儲(chǔ)器裝置103(步驟S712)。接 著,處理器102操作于隨機(jī)存取存儲(chǔ)器裝置103中,自快取頁(yè)的 數(shù)據(jù)尾端倒序遍歷(visit)快取頁(yè)所儲(chǔ)存的數(shù)據(jù),找出此快取頁(yè) 的數(shù)據(jù)區(qū)域中,第一個(gè)未被使用的空白數(shù)據(jù)欄位的索引,以取 得此快取頁(yè)所對(duì)應(yīng)的修改區(qū)塊的第一個(gè)可使用的空白頁(yè)的位置 (步驟S713),并根據(jù)此位置信息將既定數(shù)據(jù)寫(xiě)入修改區(qū)塊所對(duì) 應(yīng)的空白頁(yè)(步驟S714)。接著,處理器102將此既定數(shù)據(jù)的位置
置10 3的快取頁(yè)的下 一 個(gè)空白欄位,并且將此被更新過(guò)的快取頁(yè) 數(shù)據(jù)更新至快閃存儲(chǔ)器101內(nèi)的快取區(qū)塊的下一個(gè)空白頁(yè)(步驟 S715)。最后,處理器102更新物理區(qū)塊信息表(參考圖4)與快取 區(qū)塊索引表(參考圖5a、 5b)中映射區(qū)塊、修改區(qū)塊以及快取區(qū) 塊的相關(guān)信息(步驟S716)。
圖8a至圖8e是顯示根據(jù)本發(fā)明的 一 實(shí)施例所述的快閃存儲(chǔ) 器的寫(xiě)入操作的示意圖。值得注意的是,圖式中的虛線用以區(qū) 隔分別位于快閃存儲(chǔ)器101與隨機(jī)存取存儲(chǔ)器裝置10 3的數(shù)據(jù), 其中虛線的右側(cè)用以顯示快閃存儲(chǔ)器101內(nèi)的數(shù)據(jù)結(jié)構(gòu)。如上 述,假設(shè)處理器102接收到的寫(xiě)入邏輯地址為90,其中寫(xiě)入快閃 存儲(chǔ)器101的一區(qū)塊包含8頁(yè),并且一頁(yè)大小為10byte,則可得 到邏輯區(qū)塊編號(hào)LBN為90除以80的商數(shù),而邏輯頁(yè)編號(hào)LSN為90除以80的余數(shù)再除以頁(yè)大小所得到的數(shù)值,即在此范例中, LBN=1, LSN=1,因此處理器102必須將接收到的既定數(shù)據(jù)存入 第l個(gè)邏輯區(qū)塊的第l頁(yè)。接著,如圖8a所示,處理器102根據(jù)邏 輯區(qū)塊編號(hào)(LBN二1)查找邏輯至映射區(qū)塊對(duì)應(yīng)表801中索引l的 數(shù)據(jù)欄位內(nèi)容,得到對(duì)應(yīng)的映射區(qū)塊的物理區(qū)塊編號(hào)。其中, 根據(jù)本發(fā)明的一實(shí)施例,若該數(shù)據(jù)欄位為空,代表此邏輯區(qū)塊 尚未分配對(duì)應(yīng)的映射區(qū)塊,處理器102可分配映射區(qū)塊給此邏輯 區(qū)塊。若該數(shù)據(jù)欄位不為空,代表此邏輯區(qū)塊已分配有對(duì)應(yīng)的 映射區(qū)塊,例如,在此實(shí)施例中,對(duì)應(yīng)的映射區(qū)塊的物理區(qū)塊 編號(hào)為3,代表此映射區(qū)塊實(shí)際配置為第3個(gè)物理區(qū)塊。處理器 102接著根據(jù)邏輯頁(yè)編號(hào)(LSN=1 )存取映射區(qū)塊803(物理區(qū)塊3) 的第l頁(yè),并且判斷此頁(yè)是否已被使用。根據(jù)本發(fā)明的一實(shí)施例,
此頁(yè)是否已被使用,若無(wú)記錄LBN與LSN,則處理器102可直接 將數(shù)據(jù)寫(xiě)入該頁(yè)。另一方面,若此頁(yè)的冗余區(qū)域已記錄LBN與 LSN,代表此頁(yè)的數(shù)據(jù)區(qū)域已被使用,如圖所示的映射區(qū)塊803 的第1頁(yè),其中被填滿的欄位代表該欄位已被使用。因此,處理 器102接著根據(jù)得到的物理區(qū)塊編號(hào)查找物理區(qū)塊信息表802中 索引3的數(shù)據(jù)欄位內(nèi)容,其中物理區(qū)塊信息表802如上述包含狀 態(tài)與連結(jié)信息兩欄位,狀態(tài)欄位用以記錄此物理區(qū)塊為一空閑 區(qū)塊(FB)、快取區(qū)塊(CB)、映射區(qū)塊(MpB)或修改區(qū)塊(MoB), 而連結(jié)信息如上述分別用以儲(chǔ)存此物理區(qū)塊的連結(jié)信息。根據(jù) 本發(fā)明的一實(shí)施例,若連結(jié)信息為空,代表此映射區(qū)塊內(nèi)所儲(chǔ) 存的數(shù)據(jù)尚未被修改過(guò),處理器102可配置 一修改區(qū)塊以及一快 取區(qū)塊,利用此修改區(qū)塊的一空白頁(yè)儲(chǔ)存在本次寫(xiě)入操作要被 儲(chǔ)存的既定數(shù)據(jù),并且于快取區(qū)塊的一空白頁(yè)儲(chǔ)存此既定數(shù)據(jù) 所對(duì)應(yīng)的邏輯頁(yè)編號(hào)(LSN4)。另一方面,當(dāng)連結(jié)信息不為空,例如圖8a所示,處理器102由物理區(qū)塊信息表802中得知映射區(qū) 塊對(duì)應(yīng)的修改區(qū)塊的物理區(qū)塊編號(hào)為4。
接著,處理器102根據(jù)修改區(qū)塊的物理區(qū)塊編號(hào)查找物理區(qū) 塊信息表802內(nèi)對(duì)應(yīng)的欄位,得到修改區(qū)塊的連結(jié)信息。如上述, 修改區(qū)塊的連結(jié)信息儲(chǔ)存對(duì)應(yīng)的快取頁(yè)的一快取區(qū)塊索引。處 理器102接著根據(jù)快取區(qū)塊索引得到快取區(qū)塊的位置信息,如上 述,在此實(shí)施例中,快取區(qū)塊索引為ll,處理器102因此得知對(duì) 應(yīng)于此修改區(qū)塊的快取頁(yè)位于系統(tǒng)配置的第1個(gè)快取區(qū)塊(l 1除 以8的商數(shù))的第3頁(yè)(11除以8的余數(shù))。請(qǐng)參考圖8b,處理器102
區(qū)塊的物理區(qū)塊編號(hào),得知系統(tǒng)配置的第l個(gè)快取區(qū)塊(快取區(qū) 塊編號(hào)為l)所對(duì)應(yīng)的物理區(qū)塊編號(hào)為2。處理器102接著可存取 系統(tǒng)配置的第l個(gè)快取區(qū)塊805的第3頁(yè)。
值得注意的是,如上述,快取區(qū)塊的冗余區(qū)域同樣會(huì)記錄 對(duì)應(yīng)的修改區(qū)塊的物理區(qū)塊編號(hào),例如快取區(qū)塊8 04與8 0 5的冗 余區(qū)域(右側(cè)欄位)可儲(chǔ)存對(duì)應(yīng)的修改區(qū)塊的物理區(qū)塊編號(hào),用 以顯示出各頁(yè)的數(shù)據(jù)區(qū)域所儲(chǔ)存的位置信息屬于哪個(gè)修改區(qū) 塊。根據(jù)本發(fā)明的一實(shí)施例,當(dāng)處理器102根據(jù)快取區(qū)塊索引找 到對(duì)應(yīng)的快取頁(yè)806時(shí),處理器102將快取頁(yè)806的內(nèi)容載入隨機(jī) 存取存儲(chǔ)器裝置103。
在此實(shí)施例中,由于是要將數(shù)據(jù)寫(xiě)入快閃存儲(chǔ)器,因此處 理器102自快取頁(yè)806的數(shù)據(jù)尾端倒序遍歷(visit)快取頁(yè)806的 內(nèi)容,如圖8c所示,處理器102發(fā)現(xiàn)最后一筆被儲(chǔ)存的邏輯頁(yè)編 號(hào)LSN位于快取頁(yè)806的第5個(gè)欄位。因此,處理器102得知修改 區(qū)塊內(nèi)下一個(gè)可使用的空白頁(yè)為第6頁(yè)。
值得注意的是,在本發(fā)明的實(shí)施例中,由于快取頁(yè)806的內(nèi) 容已被載入隨機(jī)存取存儲(chǔ)器裝置103,因此處理器102可快速得知修改區(qū)塊內(nèi)下一個(gè)可使用的空白頁(yè),因此,與傳統(tǒng)技術(shù)中必 須在快閃存儲(chǔ)器中倒序遍歷修改區(qū)塊的內(nèi)容以找出下一個(gè)空白 頁(yè)等的技術(shù)相比,本發(fā)明所提出的快閃存儲(chǔ)器管理方法實(shí)際上 僅需存取快取區(qū)塊的一頁(yè)(即,上述的快取頁(yè)),以及修改區(qū)塊 的一頁(yè),顯然地可大幅度地提升快閃存儲(chǔ)器的寫(xiě)入速度。
請(qǐng)參考圖8d,由于處理器102已得知修改區(qū)塊807(物理區(qū)塊 4)內(nèi)下一個(gè)可使用的空白頁(yè)為第6頁(yè),因此處理器102接著將既 定數(shù)據(jù)寫(xiě)入該頁(yè),并且在該頁(yè)的冗余區(qū)域?qū)懭脒@筆既定數(shù)據(jù)的 邏輯頁(yè)編號(hào)LSN(以及邏輯區(qū)塊編號(hào)LBN,圖未示)。此外,請(qǐng)參 考回圖8c,由于處理器102已在遍歷過(guò)程中得知快取頁(yè)806下一 個(gè)可被使用的欄位為第6個(gè)欄位,如圖8c中繪出的箭頭所指,處 理器102接著將這筆既定數(shù)據(jù)的邏輯頁(yè)編號(hào)LSN4寫(xiě)入至被載 入隨機(jī)存取存儲(chǔ)器裝置103的快取頁(yè)806第6個(gè)欄位。
值得注意的是,由于實(shí)際上快取區(qū)塊805是被儲(chǔ)存于快閃存 儲(chǔ)器內(nèi),因此處理器102接著將隨機(jī)存取存儲(chǔ)器裝置103內(nèi)被更
空白頁(yè)。根據(jù)本發(fā)明的一實(shí)施例,處理器102根據(jù)快取區(qū)塊索引 表809得知快取區(qū)塊805的下一個(gè)空白頁(yè)為第4頁(yè),因此處理器 102如圖8e所示將被更新的快取頁(yè)806數(shù)據(jù)寫(xiě)入至快取區(qū)塊 805(物理區(qū)塊2)的第4頁(yè),并且將快取區(qū)塊索引表809中此快取 區(qū)塊的第一空白頁(yè)信息更新為5。此外,修改區(qū)塊所對(duì)應(yīng)的快取 區(qū)塊索引變成12,因此處理器102最后于物理區(qū)塊信息表802內(nèi) 將修改區(qū)塊807所對(duì)應(yīng)的快取區(qū)塊索引更新成12。
圖9是顯示根據(jù)本發(fā)明的另 一 實(shí)施例所述的快閃存儲(chǔ)器管 理方法流程圖。首先,處理器102接收包含一讀取邏輯地址的一 讀取指令,并根據(jù)讀取邏輯地址取得一快取區(qū)塊的一快取區(qū)塊 索引(步驟S901)。接著,處理器102根據(jù)快取區(qū)塊索引載入快取區(qū)塊的多個(gè)數(shù)據(jù)欄位所儲(chǔ)存的位置信息至一隨機(jī)存取存儲(chǔ)器裝
置(步驟S902)。接著,處理器102于隨機(jī)存取存儲(chǔ)器裝置內(nèi)自快 取區(qū)塊的數(shù)據(jù)欄位尾端倒序?qū)ふ易x取邏輯地址所對(duì)應(yīng)的 一 位置 信息,以取得讀取邏輯地址最近儲(chǔ)存的位置信息(步驟S 9 0 3)。 最后,處理器102根據(jù)取得的位置信息存取讀取邏輯地址所對(duì)應(yīng) 的修改區(qū)塊內(nèi)所儲(chǔ)存的對(duì)應(yīng)于讀取邏輯地址的數(shù)據(jù)(步驟 S904)。
圖10是顯示根據(jù)本發(fā)明的 一 實(shí)施例所述的快閃存儲(chǔ)器的讀 取操作的詳細(xì)流程圖。首先,處理器102^^艮據(jù)讀取指令的讀取邏 輯地址取得邏輯區(qū)塊編號(hào)LBN與邏輯頁(yè)編號(hào)LSN(步驟SIOOI)。 接著,處理器102查詢邏輯至映射區(qū)塊對(duì)應(yīng)表以取得映射區(qū)塊的 物理區(qū)塊編號(hào)(步驟S1002)。接著,處理器102檢查此映射區(qū)塊 中對(duì)應(yīng)于此邏輯頁(yè)編號(hào)LSN的一頁(yè)是否為空白頁(yè)(步驟S1003)。 若是,處理器102返回空白數(shù)據(jù)(步驟S1004)。若否,處理器102 依據(jù)物理區(qū)塊信息表查詢映射區(qū)塊是否有對(duì)應(yīng)的修改區(qū)塊(步 驟S1005)。若此映射區(qū)塊沒(méi)有對(duì)應(yīng)的修改區(qū)塊,則處理器102 直接返回此頁(yè)所儲(chǔ)存的數(shù)據(jù)(步驟S1006)。若此映射區(qū)塊有對(duì)應(yīng) 的修改區(qū)塊,則處理器102依據(jù)物理區(qū)塊信息表中映射區(qū)塊的連 結(jié)信息取得修改區(qū)塊所對(duì)應(yīng)的快取頁(yè)的快取區(qū)塊索引(步驟
51007) 。接著,處理器102再根據(jù)快取區(qū)塊索引查詢快取區(qū)塊索 引表,
51008) 。接著,
器裝置103(步驟S1009)。接著,處理器102操作于隨機(jī)存取存儲(chǔ) 器裝置103中,自快取頁(yè)的數(shù)據(jù)尾端倒序遍歷(visit)快取頁(yè)所儲(chǔ) 存的數(shù)據(jù),尋找出最新 一筆對(duì)應(yīng)于此邏輯頁(yè)編號(hào)LSN的記錄, 并取得儲(chǔ)存此邏輯頁(yè)編號(hào)LSN的欄位的索引(步驟SIOIO)。最 后,處理器102根據(jù)此索引讀取修改區(qū)塊中對(duì)應(yīng)于此邏輯頁(yè)編號(hào)
24LSN的最新一筆數(shù)據(jù)并返回(步驟S1011)。
圖lla至圖lld是顯示根據(jù)本發(fā)明的一實(shí)施例所述的快閃存 儲(chǔ)器的讀取操作的示意圖。假設(shè)處理器10 2接收到的讀取邏輯地 址為90,則處理器102可得到邏輯區(qū)塊編號(hào)LBN4,邏輯頁(yè)編號(hào) LSN=1。接著,如圖lla所示,處理器102根據(jù)邏輯區(qū)塊編號(hào) (LBN-1)查找邏輯至映射區(qū)塊對(duì)應(yīng)表801中索引l的數(shù)據(jù)欄位內(nèi) 容,得到對(duì)應(yīng)的映射區(qū)塊的物理區(qū)塊編號(hào)。其中,根據(jù)本發(fā)明 的一實(shí)施例,若該數(shù)據(jù)欄位為空,代表此邏輯區(qū)塊尚未分配對(duì) 應(yīng)的映射區(qū)塊,處理器102無(wú)法找到有效的數(shù)據(jù),便可直接返回 此結(jié)果。若該數(shù)據(jù)欄位不為空,代表此邏輯區(qū)塊已分配有對(duì)應(yīng) 的映射區(qū)塊,例如,在此實(shí)施例中,對(duì)應(yīng)的映射區(qū)塊的物理區(qū) 塊編號(hào)為3,代表此映射區(qū)塊實(shí)際配置為第3個(gè)物理區(qū)塊。處理 器102接著根據(jù)邏輯頁(yè)編號(hào)(LSN二1)存取映射區(qū)塊803(物理區(qū)塊 3)的第1頁(yè),并且判斷此頁(yè)是否已被使用。根據(jù)本發(fā)明的一實(shí)施
斷此頁(yè)是否已祐」吏用,若無(wú)記錄LBN與LSN,代表此頁(yè)尚未被 使用,處理器102可返回空數(shù)據(jù)。另一方面,若此頁(yè)的冗余區(qū)域 已記錄LBN與LSN,代表此頁(yè)的數(shù)據(jù)區(qū)域已祐^吏用,如圖所示 的映射區(qū)塊8 0 3的第1頁(yè),其中被填滿的欄位代表該欄位已被使 用。因此,處理器102接著根據(jù)得到的物理區(qū)塊編號(hào)查找物理區(qū) 塊信息表802中索引3的數(shù)據(jù)欄位內(nèi)容。根據(jù)本發(fā)明的一實(shí)施例, 若映射區(qū)塊的連結(jié)信息為空,代表此映射區(qū)塊內(nèi)所儲(chǔ)存的數(shù)據(jù) 尚未被修改過(guò),即,映射區(qū)塊內(nèi)所儲(chǔ)存的數(shù)據(jù)為有效的,處理 器102可直接讀取并返回映射區(qū)塊內(nèi)所儲(chǔ)存的數(shù)據(jù)。另 一方面, 當(dāng)連結(jié)信息不為空,代表此映射區(qū)塊內(nèi)所儲(chǔ)存的數(shù)據(jù)已被修改 過(guò),即,映射區(qū)塊內(nèi)所儲(chǔ)存的數(shù)據(jù)為無(wú)效的。因此,處理器102 進(jìn)一步通過(guò)物理區(qū)塊信息表802中得知映射區(qū)塊所對(duì)應(yīng)的修改區(qū)塊的物理區(qū)塊編號(hào)為4。
接著,處理器10 2根據(jù)修改區(qū)塊的物理區(qū)塊編號(hào)查找物理區(qū) 塊信息表802內(nèi)對(duì)應(yīng)的欄位,得到修改區(qū)塊的連結(jié)信息。如上述, 修改區(qū)塊的連結(jié)信息儲(chǔ)存對(duì)應(yīng)的快取頁(yè)的 一快取區(qū)塊索引,例 如在此實(shí)施例中,快取區(qū)塊索引為12。接著,處理器102根據(jù)快 取區(qū)塊索引得知對(duì)應(yīng)于此修改區(qū)塊的快取頁(yè)位于系統(tǒng)配置的第 1個(gè)快取區(qū)塊(12除以8的商數(shù))的第4頁(yè)(12除以8的余數(shù))。請(qǐng)參考 圖llb,處理器102可進(jìn)一步根據(jù)快取區(qū)塊索引表809取得此快取 頁(yè)所對(duì)應(yīng)的快取區(qū)塊的物理區(qū)塊編號(hào),得知系統(tǒng)配置的第l個(gè)快 取區(qū)塊(快取區(qū)塊編號(hào)為1)所對(duì)應(yīng)的物理區(qū)塊編號(hào)為2。處理器 102接著可存取系統(tǒng)配置的第l個(gè)快取區(qū)塊805的第4頁(yè),并且將 此快取頁(yè)808的內(nèi)容載入隨機(jī)存取存儲(chǔ)器裝置103。
接著,處理器102自快取頁(yè)808的數(shù)據(jù)尾端倒序遍歷快取頁(yè) 808的內(nèi)容,以尋找出最后一筆存有LSN4的數(shù)據(jù)的索引。如上 述,由于快取頁(yè)808的內(nèi)容已被載入隨機(jī)存取存儲(chǔ)器裝置103, 因此處理器102不需遍歷配置于快閃存儲(chǔ)器101內(nèi)的修改區(qū)塊, 僅需通過(guò)遍歷儲(chǔ)存于隨機(jī)存取存儲(chǔ)器裝置103的快取頁(yè),即可得 知修改區(qū)塊內(nèi)最新存有LSN4的數(shù)據(jù)的位置。因此,與傳統(tǒng)技 術(shù)相比,本發(fā)明所提出的快閃存儲(chǔ)器管理方法顯然地可大幅度 地提升快閃存儲(chǔ)器的讀取速度。再者,雖然本實(shí)施例中,處理 器102是從尾端開(kāi)始倒序遍歷隨機(jī)存取存儲(chǔ)器裝置103中快取頁(yè) 的數(shù)據(jù)欄位,但是顯然也可以從頭端開(kāi)始順序遍歷該快取頁(yè)的 數(shù)據(jù)欄位來(lái)獲得需要存取的頁(yè)在該修改區(qū)塊中的位置信息。
如圖llc所示,處理器102發(fā)現(xiàn)最后一筆存有LSN4的數(shù)據(jù) 位于快取頁(yè)808的第6個(gè)欄位。因此,處理器102可得知修改區(qū)塊 的第6頁(yè)儲(chǔ)存著對(duì)應(yīng)于邏輯地址為90的最新數(shù)據(jù)。最后,如圖lld 所示,處理器102存取修改區(qū)塊807(物理區(qū)塊4)的第6頁(yè)的數(shù)據(jù)區(qū)域,并返回讀取的凝:據(jù)。
根據(jù)本發(fā)明的 一 實(shí)施例,快取區(qū)塊的數(shù)量可根據(jù)計(jì)算機(jī)系 統(tǒng)的需求而決定。例如,對(duì)于一快閃存儲(chǔ)器裝置,可配置四個(gè) 快取區(qū)塊,并依序分配快取區(qū)塊編號(hào)(例如,0 3),并且處理器 102于快取區(qū)塊初始化時(shí),可通過(guò)遍歷修改區(qū)塊的冗余區(qū)域所儲(chǔ) 存的位置信息建立出快取區(qū)塊。處理器102接著根據(jù)映射區(qū)塊、
編號(hào)與邏輯頁(yè)編號(hào))建立出如圖3所示的邏輯至映射區(qū)塊對(duì)應(yīng)表 300、如圖4所示的物理區(qū)塊信息表400以及如圖5a所示的快取區(qū) 塊索引表500。根據(jù)本發(fā)明的一實(shí)施例,為了避免不正常關(guān)機(jī)導(dǎo) 致快取區(qū)塊所儲(chǔ)存的數(shù)據(jù)產(chǎn)生錯(cuò)誤,于計(jì)算機(jī)系統(tǒng)初始化時(shí), 處理器102也可先檢查各快取區(qū)塊所儲(chǔ)存的內(nèi)容是否正確,例 如,根據(jù)各快取頁(yè)的數(shù)據(jù)欄位所儲(chǔ)存的位置信息(即,邏輯頁(yè)編
號(hào),比對(duì)該快取頁(yè)的各位置信息是否與此修改區(qū)塊的各頁(yè)的冗 余區(qū)域所儲(chǔ)存的邏輯頁(yè)編號(hào)相符。若符合則保留此快取區(qū)塊, 若不符合,則舍棄此快取區(qū)塊,直接擦除。此外,當(dāng)一個(gè)快取 區(qū)塊存滿數(shù)據(jù)時(shí),處理器102可取出下 一個(gè)預(yù)留的空閑快取區(qū)塊 使用(如圖5a與圖5b所示),并且當(dāng)所有已被使用的快取區(qū)塊達(dá) 到系統(tǒng)規(guī)定的最大可用快取區(qū)塊數(shù)量時(shí),例如,若圖5b所示的 快取區(qū)塊索引表501中4個(gè)快取區(qū)塊的第 一個(gè)空白頁(yè)皆記錄為系 統(tǒng)最大頁(yè)數(shù)8時(shí),處理器102直接擦除所有快取區(qū)塊,以釋放出 有效的空間。
本領(lǐng)域一般技術(shù)人員可以了解,雖然于之前描述中是將讀 取操作與寫(xiě)入操作分開(kāi)說(shuō)明的,但是本發(fā)明讀取與寫(xiě)入操作的
實(shí)質(zhì)特征是相同的。當(dāng)邏輯地址所對(duì)應(yīng)的映射區(qū)塊的數(shù)據(jù)不能 直接進(jìn)行存取時(shí),即在進(jìn)行寫(xiě)入操作時(shí)映射區(qū)塊的該頁(yè)已存儲(chǔ)有數(shù)據(jù)或是在進(jìn)行讀取操作時(shí)映射區(qū)塊的該頁(yè)數(shù)據(jù)并不是最新 的,處理器需要通過(guò)映射區(qū)塊的信息來(lái)獲取與映射區(qū)塊相對(duì)應(yīng) 的修改區(qū)塊的第 一 個(gè)空白頁(yè)的位置信息或是與該邏輯地址相對(duì) 應(yīng)的最新的頁(yè)的位置信息,進(jìn)而才能夠高效而準(zhǔn)確地完成既定 數(shù)據(jù)的寫(xiě)入或讀取操作。
此外,當(dāng)系統(tǒng)對(duì)快閃存儲(chǔ)器執(zhí)行合并(merge)操作時(shí),處理 器102可根據(jù)各修改區(qū)塊的冗余區(qū)域所儲(chǔ)存的邏輯區(qū)塊編號(hào) LBN與邏輯頁(yè)編號(hào)LSN判斷修改區(qū)塊的數(shù)據(jù)區(qū)域是否依照映射 區(qū)塊的數(shù)據(jù)順序被寫(xiě)入數(shù)據(jù)。當(dāng)映射區(qū)塊的各頁(yè)的更新數(shù)據(jù)依 序被寫(xiě)入修改區(qū)塊時(shí),處理器102可直接擦除映射區(qū)塊,并且改 為配置修改區(qū)塊作為映射區(qū)塊。另一方面,當(dāng)映射區(qū)塊的各頁(yè) 的更新數(shù)據(jù)依序未被寫(xiě)入修改區(qū)塊時(shí),處理器102可取得 一 空閑 區(qū)塊,將修改區(qū)塊與映射區(qū)塊的有效數(shù)據(jù)合并至空閑區(qū)塊,擦 除映射區(qū)塊與修改區(qū)塊,并且配置此空閑區(qū)塊作為新的映射區(qū) 塊。
以上所述僅為本發(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)的簡(jiǎn)單說(shuō)明如下
100計(jì)算機(jī)系統(tǒng)
101快閃存儲(chǔ)器
102處理器
103隨機(jī)存取存儲(chǔ)器裝置
200快閃存儲(chǔ)器
201快取區(qū)塊
202映射區(qū)塊203:修改區(qū)塊
300、 801:邏輯至映射區(qū)塊對(duì)應(yīng)表 400、 802:物理區(qū)塊信息表 500、 501、 809:快耳又區(qū)塊索引表 803:映射區(qū)塊 804、 805:快取區(qū)塊 806、 808:快耳又頁(yè) 807:》f改區(qū)塊 LBN:邏輯區(qū)塊編號(hào) LSN:邏輯頁(yè)編號(hào)。
權(quán)利要求
1.一種快閃存儲(chǔ)器管理方法,其特征在于,用以管理一快閃存儲(chǔ)器裝置,該快閃存儲(chǔ)器裝置配置至少一映射區(qū)塊、至少一修改區(qū)塊以及至少一快取區(qū)塊,該快閃存儲(chǔ)器管理方法包括接收包含一寫(xiě)入邏輯地址與一既定數(shù)據(jù)的一寫(xiě)入指令,用以寫(xiě)入該既定數(shù)據(jù)至該快閃存儲(chǔ)器裝置;以及若對(duì)應(yīng)于該寫(xiě)入邏輯地址的映射區(qū)塊的頁(yè)已經(jīng)被使用,則寫(xiě)入該既定數(shù)據(jù)于該映射區(qū)塊對(duì)應(yīng)的修改區(qū)塊的一空白頁(yè);其中,該寫(xiě)入該既定數(shù)據(jù)于該映射區(qū)塊對(duì)應(yīng)的修改區(qū)塊的一空白頁(yè)的步驟包括根據(jù)該寫(xiě)入邏輯地址由一快取區(qū)塊讀取對(duì)應(yīng)于該修改區(qū)塊的快取頁(yè)至一隨機(jī)存取存儲(chǔ)器裝置,于該隨機(jī)存取存儲(chǔ)器裝置內(nèi)依序讀取該快取頁(yè)的數(shù)據(jù)欄位以獲得該空白頁(yè)于該修改區(qū)塊內(nèi)的位置信息,其中該快取區(qū)塊的各快取頁(yè)具有多個(gè)數(shù)據(jù)欄位用以依序儲(chǔ)存該修改區(qū)塊的各非空白頁(yè)所寫(xiě)入的數(shù)據(jù)所對(duì)應(yīng)的位置信息;以及依據(jù)獲得的該位置信息寫(xiě)入該既定數(shù)據(jù)于該修改區(qū)塊的該空白頁(yè)。
2. 根據(jù)權(quán)利要求l所述的快閃存儲(chǔ)器管理方法,其特征在 于,更包括寫(xiě)入包含該修改區(qū)塊的存儲(chǔ)該既定數(shù)據(jù)的頁(yè)的位 置信息于該快取區(qū)塊的一空白頁(yè)。
3. 根據(jù)權(quán)利要求l所述的快閃存儲(chǔ)器管理方法,其特征在 于,更包括根據(jù)該寫(xiě)入邏輯地址取得對(duì)應(yīng)的 一邏輯區(qū)塊編號(hào)以及一邏輯頁(yè)編號(hào);以及寫(xiě)入該邏輯頁(yè)編號(hào)于該快取區(qū)塊,用以作為該修改區(qū)塊的 存儲(chǔ)該既定數(shù)據(jù)的頁(yè)的該位置信息。
4. 根據(jù)權(quán)利要求3所述的快閃存儲(chǔ)器管理方法,其特征在于,更包括于該快取區(qū)塊的各快取頁(yè)分配 一數(shù)據(jù)區(qū)域以及一 冗余區(qū) 域,其中該數(shù)據(jù)區(qū)域包括多個(gè)數(shù)據(jù)欄位用以儲(chǔ)存該邏輯頁(yè)編號(hào), 并且該冗余區(qū)域用以儲(chǔ)存該快取區(qū)塊的一快取區(qū)塊索引以及該 快取區(qū)塊的該快取頁(yè)所對(duì)應(yīng)的該修改區(qū)塊的 一物理區(qū)塊編號(hào)。
5. 根據(jù)權(quán)利要求3所述的快閃存儲(chǔ)器管理方法,其特征在 于,更包括于一隨機(jī)存取存儲(chǔ)器裝置建立一第一信息表,用以儲(chǔ)存各 邏輯區(qū)塊與各映射區(qū)塊的一對(duì)應(yīng)關(guān)系的信息;以及于該隨機(jī)存取存儲(chǔ)器裝置建立一第二信息表,用以儲(chǔ)存各 物理區(qū)塊的 一 狀態(tài)信息與 一 連結(jié)信息。
6. 根據(jù)權(quán)利要求5所述的快閃存儲(chǔ)器管理方法,其特征在 于,更包括儲(chǔ)存該映射區(qū)塊的 一物理區(qū)塊編號(hào)于該第 一信息表;以及 儲(chǔ)存該修改區(qū)塊的 一 物理區(qū)塊編號(hào)以及該快取區(qū)塊的 一 快 取區(qū)塊索引于該第二信息表。
7. 根據(jù)權(quán)利要求5所述的快閃存儲(chǔ)器管理方法,其特征在 于,判斷對(duì)應(yīng)于該寫(xiě)入邏輯地址的映射區(qū)塊的頁(yè)是否已經(jīng)被使 用的步驟包括依據(jù)該邏輯區(qū)塊編號(hào)查詢?cè)摰?一信息表以讀取對(duì)應(yīng)于該邏 輯區(qū)塊編號(hào)的映射區(qū)塊的對(duì)應(yīng)于該邏輯頁(yè)編號(hào)的頁(yè);以及讀取該頁(yè)的 一 冗余區(qū)域以判斷該映射區(qū)塊的該頁(yè)是否已經(jīng) 被使用。
8. 根據(jù)權(quán)利要求5所述的快閃存儲(chǔ)器管理方法,其特征在 于,該根據(jù)該寫(xiě)入邏輯地址由 一快取區(qū)塊讀耳又對(duì)應(yīng)于該修改區(qū) 塊的快取頁(yè)至 一 隨機(jī)存取存儲(chǔ)器裝置的步驟包括若該映射區(qū)塊的該頁(yè)已經(jīng)^皮-使用,依據(jù)該映射區(qū)塊的一物理區(qū)塊編號(hào)查詢?cè)摰诙畔⒈硪垣@得該映射區(qū)塊所對(duì)應(yīng)的該修改區(qū)塊的物理區(qū)塊編號(hào);依據(jù)該修改區(qū)塊的物理區(qū)塊編號(hào)查詢?cè)摰诙畔⒈硪垣@得 該修改區(qū)塊所對(duì)應(yīng)的快取區(qū)塊的快取區(qū)塊索引;以及依據(jù)該快取區(qū)塊索引查詢一第三信息表以將該對(duì)應(yīng)的快取 區(qū)塊的包含該修改區(qū)塊的各非空白頁(yè)所寫(xiě)入的數(shù)據(jù)所對(duì)應(yīng)的該 位置信息的快取頁(yè)讀取至該隨機(jī)存取存儲(chǔ)器裝置,其中該第三信息表用以存儲(chǔ)該快取區(qū)塊的該快取區(qū)塊索引 以及對(duì)應(yīng)的物理區(qū)塊編號(hào)與第 一個(gè)空閑的快取頁(yè)的頁(yè)編號(hào)。
9. 根據(jù)權(quán)利要求l所述的快閃存儲(chǔ)器管理方法,其特征在 于,于該隨機(jī)存取存儲(chǔ)器裝置內(nèi)自該快取頁(yè)的尾端倒序讀取所 述數(shù)據(jù)欄位以獲得對(duì)應(yīng)于該寫(xiě)入邏輯地址的空白頁(yè)于該修改區(qū) 塊內(nèi)的該位置信息。
10. —種快閃存儲(chǔ)器管理方法,其特征在于,用以管理一 快閃存儲(chǔ)器裝置,其中該快閃存儲(chǔ)器裝置配置至少 一映射區(qū)塊、 至少 一修改區(qū)塊以及至少 一快取區(qū)塊,該快閃存儲(chǔ)器管理方法 包括接收包含一讀取邏輯地址的一讀取指令用以由該快閃存儲(chǔ) 器裝置的一頁(yè)讀取一既定數(shù)據(jù);以及改過(guò),則于對(duì)應(yīng)于該映射區(qū)塊的修改區(qū)塊中讀取該既定數(shù)據(jù);其中該于對(duì)應(yīng)于該映射區(qū)塊的^f奮改區(qū)塊中讀^f又該既定凄t據(jù) 的步驟包括才艮據(jù)該讀耳又邏輯地址由 一快取區(qū)塊讀取對(duì)應(yīng)于該^修改 區(qū)塊的快取頁(yè)至 一 隨機(jī)存取存儲(chǔ)器裝置,于該隨機(jī)存取存儲(chǔ)器 裝置內(nèi)依序讀取該快取頁(yè)的數(shù)據(jù)欄位以獲得對(duì)應(yīng)于該讀取邏輯 地址的頁(yè)于該修改區(qū)塊內(nèi)的一位置信息,其中該快取區(qū)塊的各快取頁(yè)具有多個(gè)數(shù)據(jù)欄位用以依序儲(chǔ)存該修改區(qū)塊的各非空白頁(yè)所寫(xiě)入的數(shù)據(jù)所對(duì)應(yīng)的位置信息;以及依據(jù)獲得的該位置信息于該修改區(qū)塊的該頁(yè)讀取該既定數(shù)據(jù)。
11. 根據(jù)權(quán)利要求10所述的快閃存儲(chǔ)器管理方法,其特征 在于,更包括于一隨機(jī)存取存儲(chǔ)器裝置建立一第一信息表,用以儲(chǔ)存各 邏輯區(qū)塊與各映射區(qū)塊的一對(duì)應(yīng)關(guān)系的信息;以及于該隨機(jī)存取存儲(chǔ)器裝置建立一第二信息表,用以儲(chǔ)存各 物理區(qū)塊的一狀態(tài)信息與一連結(jié)信息。
12. 根據(jù)權(quán)利要求ll所述的快閃存儲(chǔ)器管理方法,其特征 在于,更包括儲(chǔ)存各映射區(qū)塊的 一物理區(qū)塊編號(hào)于該第 一信息表;以及 儲(chǔ)存各修改區(qū)塊的 一 物理區(qū)塊編號(hào)、以及各修改區(qū)塊所對(duì) 應(yīng)的 一快取區(qū)塊的 一快取區(qū)塊索引于該第二信息表。
13. 根據(jù)權(quán)利要求ll所述的快閃存儲(chǔ)器管理方法,其特征 在于,判斷對(duì)應(yīng)于該讀取邏輯地址的該映射區(qū)塊的頁(yè)的數(shù)據(jù)是 否已經(jīng)被修改過(guò)的步驟包括根據(jù)該讀取邏輯地址取得對(duì)應(yīng)的一邏輯區(qū)塊編號(hào)以及一邏 輯頁(yè)編號(hào);根據(jù)該邏輯區(qū)塊編號(hào)查詢?cè)摰?一 信息表以獲得對(duì)應(yīng)于該邏 輯區(qū)塊編號(hào)的該映射區(qū)塊的該物理區(qū)塊編號(hào);以及根據(jù)該物理區(qū)塊編號(hào)查詢?cè)摰诙畔⒈硪耘袛嘣撚成鋮^(qū)塊 的該頁(yè)的數(shù)據(jù)是否已經(jīng)被修改過(guò)。
14. 根據(jù)權(quán)利要求ll所述的快閃存儲(chǔ)器管理方法,其特征 在于,該于對(duì)應(yīng)于該映射區(qū)塊的該修改區(qū)塊中讀取該既定數(shù)據(jù) 的步驟包括若該映射區(qū)塊的該頁(yè)的數(shù)據(jù)已經(jīng)被修改過(guò),依據(jù)該映射區(qū) 塊的該物理區(qū)塊編號(hào)查詢?cè)摰诙畔⒈硪垣@得該映射區(qū)塊所對(duì)應(yīng)的該修改區(qū)塊的物理區(qū)塊編號(hào);依據(jù)該修改區(qū)塊的物理區(qū)塊編號(hào)查詢?cè)摰诙畔⒈硪垣@得依據(jù)該快取區(qū)塊索引查詢 一 第三信息表以將該對(duì)應(yīng)的快取 區(qū)塊中包含該修改區(qū)塊的各非空白頁(yè)所寫(xiě)入的數(shù)據(jù)所對(duì)應(yīng)的該 位置信息的快取頁(yè)讀取至該隨機(jī)存取存儲(chǔ)器裝置,其中該第三信息表用以存儲(chǔ)該快取區(qū)塊的該快取區(qū)塊索引 以及對(duì)應(yīng)的物理區(qū)塊編號(hào)與第 一個(gè)空閑的快取頁(yè)的頁(yè)編號(hào)。
15. 根據(jù)權(quán)利要求14所述的快閃存儲(chǔ)器管理方法,其特征 在于,更包括于該快取區(qū)塊的各快取頁(yè)分配 一數(shù)據(jù)區(qū)域以及一 冗余區(qū) 域,其中該數(shù)據(jù)區(qū)域包括多個(gè)數(shù)據(jù)欄位用以儲(chǔ)存邏輯頁(yè)編號(hào), 并且該冗余區(qū)域用以儲(chǔ)存該快取區(qū)塊的該快取區(qū)塊索引以及該 快取區(qū)塊所對(duì)應(yīng)的該修改區(qū)塊的該物理區(qū)塊編號(hào)。
16. 根據(jù)權(quán)利要求14所述的快閃存儲(chǔ)器管理方法,其特征 在于,包括于該隨機(jī)存取存儲(chǔ)器裝置內(nèi)自該快取頁(yè)的尾端倒序 讀取所述數(shù)據(jù)欄位以獲得對(duì)應(yīng)于該讀取邏輯地址的頁(yè)于該修改 區(qū)塊內(nèi)的該位置信息。
17. —種計(jì)算機(jī)系統(tǒng),其特征在于,包括 一快閃存儲(chǔ)器,配置至少一映射區(qū)塊、至少一修改區(qū)塊以及至少一快取區(qū)塊;一隨機(jī)存取存儲(chǔ)器裝置;以及一處理器,耦接至該快閃存儲(chǔ)器與該隨機(jī)存取存儲(chǔ)器裝置, 該處理器接收包含一寫(xiě)入邏輯地址與既定數(shù)據(jù)的一寫(xiě)入指令, 若對(duì)應(yīng)于該寫(xiě)入邏輯地址的映射區(qū)塊的頁(yè)已經(jīng)被使用,則根據(jù)該寫(xiě)入邏輯地址由 一快取區(qū)塊讀取對(duì)應(yīng)于該^修改區(qū)塊的快取頁(yè) 至該隨機(jī)存取存儲(chǔ)器裝置,并于該隨機(jī)存取存儲(chǔ)器裝置內(nèi)依序 讀取該快取頁(yè)的數(shù)據(jù)欄位以獲得該空白頁(yè)于該修改區(qū)塊內(nèi)的位 置信息,以及依據(jù)該位置信息寫(xiě)入該既定數(shù)據(jù)于該修改區(qū)塊的 該空白頁(yè),其中該快取區(qū)塊的各快取頁(yè)具有多數(shù)據(jù)欄位用以依序儲(chǔ)存 該修改區(qū)塊的各非空白頁(yè)所寫(xiě)入的數(shù)據(jù)所對(duì)應(yīng)的位置信息。
18. 根據(jù)權(quán)利要求17所述的計(jì)算機(jī)系統(tǒng),其特征在于,該 快取區(qū)塊的各快取頁(yè)分別包括一數(shù)據(jù)區(qū)域與一冗余區(qū)域,該快 取區(qū)塊的該數(shù)據(jù)區(qū)域包括多個(gè)數(shù)據(jù)欄位用以儲(chǔ)存對(duì)應(yīng)的該修改 區(qū)塊的各頁(yè)所寫(xiě)入的數(shù)據(jù)所對(duì)應(yīng)的邏輯頁(yè)編號(hào),并且該快取區(qū) 塊的該冗余區(qū)域用以儲(chǔ)存該快取區(qū)塊的一快取區(qū)塊索引以及對(duì) 應(yīng)的該修改區(qū)塊的 一物理區(qū)塊編號(hào)。
19. 根據(jù)權(quán)利要求17所述的計(jì)算機(jī)系統(tǒng),其特征在于,該 隨機(jī)存取存儲(chǔ)器裝置耦接至該處理器,且儲(chǔ)存一第一信息表以 及一第二信息表,其中該第一信息表用以儲(chǔ)存各邏輯區(qū)塊與各 映射區(qū)塊的 一對(duì)應(yīng)關(guān)系的信息,該第二信息表用以儲(chǔ)存各物理 區(qū)塊的 一狀態(tài)信息與 一連結(jié)信息。
20. 根據(jù)權(quán)利要求19所述的計(jì)算機(jī)系統(tǒng),其特征在于,于 初始化時(shí),該處理器根據(jù)該映射區(qū)塊、該修改區(qū)塊以及該快取 區(qū)塊的該冗余區(qū)域所儲(chǔ)存的數(shù)據(jù)建立該第 一信息表以及該第二 信息表。
21. 根據(jù)權(quán)利要求19所述的計(jì)算機(jī)系統(tǒng),其特征在于,該 處理器依據(jù)該邏輯區(qū)塊編號(hào)查詢?cè)摰谝恍畔⒈硪宰x取對(duì)應(yīng)于該 邏輯區(qū)塊編號(hào)的映射區(qū)塊的對(duì)應(yīng)于該邏輯頁(yè)編號(hào)的頁(yè),并讀取 該頁(yè)的一冗余區(qū)域以判斷該映射區(qū)塊的該頁(yè)是否已經(jīng)被使用。
22. 根據(jù)權(quán)利要求19所述的計(jì)算機(jī)系統(tǒng),其特征在于,若該映射區(qū)塊的該頁(yè)已經(jīng)被使用,該處理器依據(jù)該映射區(qū)塊的一 物理區(qū)塊編號(hào)查詢?cè)摰诙畔⒈硪垣@得該映射區(qū)塊所對(duì)應(yīng)的該 修改區(qū)塊的物理區(qū)塊編號(hào),依據(jù)該修改區(qū)塊的物理區(qū)塊編號(hào)查 詢?cè)摰诙畔⒈硪垣@得該修改區(qū)塊所對(duì)應(yīng)的快取區(qū)塊的快取區(qū) 塊索引,以及依據(jù)該快取區(qū)塊索引查詢一第三信息表以將該對(duì) 應(yīng)快取區(qū)塊的包含該修改區(qū)塊的各非空白頁(yè)所寫(xiě)入的數(shù)據(jù)所對(duì) 應(yīng)的該位置信息的快取頁(yè)讀取至該隨機(jī)存取存儲(chǔ)器裝置,其中 該第三信息表用以存儲(chǔ)該快取區(qū)塊的該快取區(qū)塊索引以及對(duì)應(yīng) 的物理區(qū)塊編號(hào)與第 一個(gè)空閑的快取頁(yè)的頁(yè)編號(hào)。
23. 根據(jù)權(quán)利要求17所述的計(jì)算機(jī)系統(tǒng),其特征在于,當(dāng) 所有的該快取區(qū)塊存滿數(shù)據(jù)時(shí),該處理器直接抹除該快取區(qū)塊。
24. 根據(jù)權(quán)利要求17所述的計(jì)算機(jī)系統(tǒng),其特征在于,該 快閃存儲(chǔ)器的抹除數(shù)據(jù)的最小單位大于寫(xiě)入數(shù)據(jù)的最小單位。
25. —種計(jì)算機(jī)系統(tǒng),其特征在于,包括 一快閃存儲(chǔ)器,配置至少一映射區(qū)塊、至少一修改區(qū)塊以及至少一快取區(qū)塊;一隨機(jī)存取存儲(chǔ)器裝置;以及一處理器,耦接至該快閃存儲(chǔ)器與該隨機(jī)存取存儲(chǔ)器裝置, 該處理器接收包含一讀取邏輯地址的一讀取指令,若對(duì)應(yīng)于該 讀取邏輯位置的該映射區(qū)塊的頁(yè)的數(shù)據(jù)已經(jīng)被修改過(guò),則根據(jù) 該讀取邏輯地址由 一'決取區(qū)塊讀取對(duì)應(yīng)于該修改區(qū)塊的快取頁(yè) 至該隨機(jī)存取存儲(chǔ)器裝置,并于該隨機(jī)存取存儲(chǔ)器裝置內(nèi)依序 讀取該快取頁(yè)的數(shù)據(jù)欄位以獲得對(duì)應(yīng)于該讀取邏輯地址的頁(yè)于 該修改區(qū)塊內(nèi)的一位置信息,以及依據(jù)該位置信息于該修改區(qū) 塊的該頁(yè)讀:f又該既定數(shù)據(jù);其中該快取區(qū)塊的各快取頁(yè)具有多數(shù)據(jù)欄位用以依序儲(chǔ)存 該修改區(qū)塊的各非空白頁(yè)所寫(xiě)入的數(shù)據(jù)所對(duì)應(yīng)的位置信息。
26. 根據(jù)權(quán)利要求25所述的計(jì)算機(jī)系統(tǒng),其特征在于,該 處理器更于該隨機(jī)存取存儲(chǔ)器裝置內(nèi)建立一第一信息表,用以 儲(chǔ)存各映射區(qū)塊的一物理區(qū)塊編號(hào),以及建立一第二信息表, 用以儲(chǔ)存各修改區(qū)塊的 一 物理區(qū)塊編號(hào)以及各修改區(qū)塊所對(duì)應(yīng) 的一快取區(qū)塊的一快取區(qū)塊索引。
27. 根據(jù)權(quán)利要求26所述的計(jì)算機(jī)系統(tǒng),其特征在于,該 處理器還根據(jù)該讀取邏輯地址取得對(duì)應(yīng)的 一 邏輯區(qū)塊編號(hào)以及 一邏輯頁(yè)編號(hào)、根據(jù)該邏輯區(qū)塊編號(hào)查詢?cè)摰?一 信息表以獲得 對(duì)應(yīng)于該邏輯區(qū)塊編號(hào)的該映射區(qū)塊的該物理區(qū)塊編號(hào)、以及 根據(jù)該物理區(qū)塊編號(hào)查詢?cè)摰诙畔⒈硪耘袛嘣撚成鋮^(qū)塊的該 頁(yè)的數(shù)據(jù)是否已經(jīng)被修改過(guò)。
28. 根據(jù)權(quán)利要求26所述的計(jì)算機(jī)系統(tǒng),其特征在于,若 該映射區(qū)塊的該頁(yè)的數(shù)據(jù)已經(jīng)被修改過(guò),該處理器根據(jù)該映射 區(qū)塊的該物理區(qū)塊編號(hào)查詢?cè)摰诙畔⒈硪垣@得該映射區(qū)塊所 對(duì)應(yīng)的該^修改區(qū)塊的物理區(qū)塊編號(hào)、依據(jù)該^修改區(qū)塊的物理區(qū) 塊編號(hào)查詢?cè)摰诙畔⒈硪垣@得該修改區(qū)塊所對(duì)應(yīng)的快取區(qū)塊 的快取區(qū)塊索引、以及依據(jù)該快取區(qū)塊索引查詢一第三信息表 以將該對(duì)應(yīng)快取區(qū)塊的包含該修改區(qū)塊的各非空白頁(yè)所寫(xiě)入的 數(shù)據(jù)所對(duì)應(yīng)的該位置信息的快取頁(yè)讀取至該隨機(jī)存取存儲(chǔ)器裝 置,其中該第三信息表存儲(chǔ)于該隨機(jī)存取存儲(chǔ)器裝置,用以存 儲(chǔ)該快取區(qū)塊的該快取區(qū)塊索引以及對(duì)應(yīng)的物理區(qū)塊編號(hào)與第 一個(gè)空閑的快取頁(yè)的頁(yè)編號(hào)。
29. —種快閃存儲(chǔ)器管理方法,其特征在于,用以管理一 快閃存儲(chǔ)器裝置,其中該快閃存儲(chǔ)器裝置配置至少 一 映射區(qū)塊、 至少 一修改區(qū)塊以及至少 一快取區(qū)塊,該快閃存儲(chǔ)器管理方法 包括接收一包含一邏輯地址的存取指令,用以于該快閃存儲(chǔ)器裝置存取一既定數(shù)據(jù);以及若對(duì)應(yīng)于該邏輯地址的該映射區(qū)塊的頁(yè)不適于存取該既定 數(shù)據(jù),則于與該映射區(qū)塊對(duì)應(yīng)的修改區(qū)塊中進(jìn)行存取操作,包 括由該快閃存儲(chǔ)器裝置的 一快取區(qū)塊讀取對(duì)應(yīng)于該修改區(qū)塊 的 一快取頁(yè)至一 隨機(jī)存取存儲(chǔ)器裝置,于該隨機(jī)存取存儲(chǔ)器裝 置內(nèi)依序讀取該快取頁(yè)的數(shù)據(jù)欄位以獲得該既定數(shù)據(jù)于該修改 區(qū)塊內(nèi)的存取位置信息,其中該快取區(qū)塊的各快取頁(yè)具有多個(gè) 數(shù)據(jù)欄位用以依序儲(chǔ)存該修改區(qū)塊的各非空白頁(yè)所寫(xiě)入的數(shù)據(jù) 所對(duì)應(yīng)的位置信息;以及依據(jù)該存取位置信息于該快閃存儲(chǔ)器裝置的修改區(qū)塊內(nèi)存 耳又該既定lt才居。
全文摘要
一種快閃存儲(chǔ)器管理方法與計(jì)算機(jī)系統(tǒng),用以管理一快閃存儲(chǔ)器裝置,快閃存儲(chǔ)器管理方法包括接收包含一寫(xiě)入邏輯地址與一既定數(shù)據(jù)的一寫(xiě)入指令,用以寫(xiě)入既定數(shù)據(jù)至快閃存儲(chǔ)器裝置;以及若對(duì)應(yīng)于寫(xiě)入邏輯地址的映射區(qū)塊的頁(yè)已經(jīng)被使用,則寫(xiě)入既定數(shù)據(jù)于映射區(qū)塊對(duì)應(yīng)的修改區(qū)塊的一空白頁(yè),包括根據(jù)該寫(xiě)入邏輯地址由一快取區(qū)塊讀取對(duì)應(yīng)于該修改區(qū)塊的快取頁(yè)至一隨機(jī)存取存儲(chǔ)器裝置,于該隨機(jī)存取存儲(chǔ)器裝置內(nèi)依序讀取該快取頁(yè)的數(shù)據(jù)欄位以獲得該空白頁(yè)于該修改區(qū)塊內(nèi)的位置信息;以及依據(jù)獲得的該位置信息寫(xiě)入該既定數(shù)據(jù)于該修改區(qū)塊的該空白頁(yè)。本發(fā)明可大幅度地提升快閃存儲(chǔ)器的寫(xiě)入與讀取速度,并占用隨機(jī)存取存儲(chǔ)器裝置較少的空間。
文檔編號(hào)G06F12/06GK101539887SQ20091013652
公開(kāi)日2009年9月23日 申請(qǐng)日期2009年5月6日 優(yōu)先權(quán)日2009年5月6日
發(fā)明者榕 李, 王華橋, 金躍峰 申請(qǐng)人:美商威睿電通公司