專利名稱:用于閃存的數(shù)據(jù)寫入方法及其控制器與儲存系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于閃存的數(shù)據(jù)寫入方法,且特別是涉及一種能夠有效率地將數(shù) 據(jù)寫入至閃存的數(shù)據(jù)寫入方法及其控制器與儲存系統(tǒng)。
背景技術(shù):
由于閃存(Flash Memory)具有數(shù)據(jù)非揮發(fā)性、省電、體積小與無機械結(jié)構(gòu)等的特 性,最適合使用于由電池供電的可攜式電子產(chǎn)品上。例如,固態(tài)硬盤就是一種以NAND閃存 作為儲存媒體的儲存裝置,并且已廣泛配置于筆記本電腦中作為主要的儲存裝置。一般來說,閃存儲存裝置的閃存芯片(chip)會劃分為多個實體區(qū)塊,其中實體區(qū) 塊還可劃分為多個實體頁面,而實體區(qū)塊是閃存的抹除單位并且實體頁面是閃存的寫入單 位。由于在程序化閃存的存儲單元時,僅能執(zhí)行單向的程序化(即,僅能將存儲單元的值由 1程序化為0),因此無法對已程序化的實體頁面(即,存有舊數(shù)據(jù)的頁面)直接進行寫入, 而是必須先將此實體頁面抹除后方可重新程序化。特別是,由于閃存的抹除是以實體區(qū)塊 為單位,所以,當欲將存有舊數(shù)據(jù)的實體頁面執(zhí)行抹除運作時,必須對此實體頁面所屬的整 個實體區(qū)塊進行抹除。基于閃存以實體頁面為寫入的單元而以實體區(qū)塊為抹除的單元的特 性,一般來說,在閃存裝置中閃存芯片的實體區(qū)塊會被區(qū)分為數(shù)據(jù)區(qū)與備用區(qū),其中數(shù)據(jù)區(qū) 的實體區(qū)塊是已被使用來儲存數(shù)據(jù)的實體區(qū)塊,而備用區(qū)中的實體區(qū)塊是未被使用的實體 區(qū)塊。當主機系統(tǒng)欲寫入數(shù)據(jù)至閃存儲存裝置時,閃存儲存裝置的控制電路會從備用區(qū)中 提取實體區(qū)塊來寫入數(shù)據(jù),并且將所提取的實體區(qū)塊關(guān)聯(lián)至數(shù)據(jù)區(qū)。并且,在將對數(shù)據(jù)區(qū)的 實體區(qū)塊執(zhí)行抹除運作(erase operation)之后將已抹除的實體區(qū)塊關(guān)聯(lián)至備用區(qū)。由于主機系統(tǒng)是以邏輯地址為單位來進行寫入的,并且主機系統(tǒng)寫入數(shù)據(jù)至邏輯 地址時往往不會依據(jù)邏輯地址的順序來寫入。因此,主機系統(tǒng)所寫入的數(shù)據(jù)會零散地儲存 于多個實體區(qū)塊中?;?,當閃存儲存裝置需要對實體區(qū)塊進行抹除運作時,閃存儲存裝置 需要花費相當多的時間來整理實體區(qū)塊中的有效數(shù)據(jù)與無效數(shù)據(jù),因此,造成閃存儲存裝 置的寫入速度無法有效地提升。因此,如何提升在閃存所寫入數(shù)據(jù)的速度是此領(lǐng)域技術(shù)人 員所致力的目標。
發(fā)明內(nèi)容
本發(fā)明提供一種用于閃存的數(shù)據(jù)寫入方法,其能夠有效地降低每一實體區(qū)塊中數(shù) 據(jù)的零散程度,縮短整理閃存的實體區(qū)塊中有效數(shù)據(jù)與無效數(shù)據(jù)的時間,進而提升寫入數(shù) 據(jù)至閃存的速度。本發(fā)明提供一種閃存控制器,其能夠有效地降低每一實體區(qū)塊中數(shù)據(jù)的零散程 度,縮短整理閃存的實體區(qū)塊中有效數(shù)據(jù)與無效數(shù)據(jù)的時間,進而提升寫入數(shù)據(jù)至閃存的 速度。本發(fā)明提供一種閃存儲存系統(tǒng),其能夠有效地降低每一實體區(qū)塊中數(shù)據(jù)的零散程 度,縮短整理閃存的實體區(qū)塊中有效數(shù)據(jù)與無效數(shù)據(jù)的時間,進而提升寫入數(shù)據(jù)至閃存的速度。本發(fā)明實施例提出一種用于閃存的數(shù)據(jù)寫入方法,用于將來自于一主機系統(tǒng)的數(shù) 據(jù)寫入至一閃存芯片中,其中此閃存芯片包括多個實體區(qū)塊。本數(shù)據(jù)寫入方法包括配置多 個邏輯存取地址,以及從主機系統(tǒng)中接收一寫入數(shù)據(jù),其中此寫入數(shù)據(jù)欲被寫入至至少一 邏輯存取地址。本數(shù)據(jù)寫入方法也包括判斷是否存有至少一已開啟實體區(qū)塊,并且當實體 區(qū)塊之中無存有已開啟實體區(qū)塊時,則從實體區(qū)塊之中提取一實體區(qū)塊,將此寫入數(shù)據(jù)寫 入至所提取的實體區(qū)塊中,并且將此至少一邏輯存取地址的其中之一設(shè)定為所提取的實體 區(qū)塊的一地址中心。本發(fā)明實施例提出一種閃存控制器,用于將來自于一主機系統(tǒng)的數(shù)據(jù)寫入至一閃 存芯片中,其中此閃存芯片包括多個實體區(qū)塊。本閃存控制器包括微處理器單元、閃存接口 單元、主機接口單元與存儲器管理單元。閃存接口單元電性連接至微處理器單元,并且用以 電性連接至閃存芯片。主機接口單元電性連接至微處理器單元,并且用以電性連接至主機 系統(tǒng)。存儲器管理單元電性連接至微處理器單元,并且用以配置多個邏輯存取地址。此外, 主機接口單元從主機系統(tǒng)中接收一寫入數(shù)據(jù),其中寫入數(shù)據(jù)欲被寫入至至少一邏輯存取地 址。存儲器管理單元判斷是否存有至少一已開啟實體區(qū)塊,其中實體區(qū)塊之中無存有已開 啟實體區(qū)塊時,則存儲器管理單元從實體區(qū)塊之中提取一實體區(qū)塊,將此寫入數(shù)據(jù)寫入至 所提取的實體區(qū)塊中,并且將此至少一邏輯存取地址的其中之一設(shè)定為所提取的實體區(qū)塊 的一地址中心。本發(fā)明實施例提出一種閃存儲存系統(tǒng),其包括閃存芯片、連接器與閃存控制器。閃 存芯片具有多個實體區(qū)塊。連接器用以電性連接至一主機系統(tǒng)。閃存控制器電性連接至閃 存芯片與連接器,并且用以配置多個邏輯存取地址。此外,閃存控制器從主機系統(tǒng)中接收一 寫入數(shù)據(jù),其中此寫入數(shù)據(jù)是欲被寫入至至少一邏輯存取地址。閃存控制器判斷是否存有 至少一已開啟實體區(qū)塊。并且,當實體區(qū)塊之中無存有已開啟實體區(qū)塊時,則閃存控制器從 實體區(qū)塊之中提取一實體區(qū)塊,將此寫入數(shù)據(jù)寫入至所提取的實體區(qū)塊中,并且將此至少 一邏輯存取地址的其中之一設(shè)定為所提取的實體區(qū)塊的一地址中心?;谏鲜觯景l(fā)明實施例能夠有效地提升寫入數(shù)據(jù)至閃存的速度。為讓本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉實施例,并配合附圖作詳 細說明如下。
圖IA是根據(jù)本發(fā)明第一實施例所示的使用閃存儲存裝置的主機系統(tǒng);圖IB是根據(jù)本發(fā)明實施例所示的電腦、輸入/輸出裝置與閃存儲存裝置的示意 圖;圖IC是根據(jù)本發(fā)明另一實施例所示的主機系統(tǒng)與閃存儲存裝置的示意圖;圖ID是圖IA所示的閃存儲存裝置的結(jié)構(gòu)示意圖;圖2是根據(jù)本發(fā)明另一實施例所示的閃存控制器的結(jié)構(gòu)示意圖;圖3A是根據(jù)本發(fā)明第一實施例所示的閃存芯片的結(jié)構(gòu)示意圖;圖3B是根據(jù)本發(fā)明第一實施例所示的邏輯頁地址與實體頁地址的映射示意圖;圖4A與圖4B是根據(jù)本發(fā)明第一實施例所示的邏輯頁轉(zhuǎn)實體頁映射表及實體頁轉(zhuǎn)邏輯頁映射表的示意圖;圖5A與圖5B是根據(jù)本發(fā)明第一實施例所示的對應(yīng)一數(shù)據(jù)寫入范例的邏輯頁轉(zhuǎn)實 體頁映射表及實體頁轉(zhuǎn)邏輯頁映射表的示意圖;圖6A與圖6B是根據(jù)本發(fā)明第一實施例所示的對應(yīng)另一數(shù)據(jù)寫入范例的邏輯頁轉(zhuǎn) 實體頁映射表及實體頁轉(zhuǎn)邏輯頁映射表的示意圖;圖7A與圖7B是根據(jù)本發(fā)明第一實施例所示的對應(yīng)又一數(shù)據(jù)寫入范例的邏輯頁轉(zhuǎn) 實體頁映射表及實體頁轉(zhuǎn)邏輯頁映射表的示意圖;圖8A與圖8B是根據(jù)本發(fā)明第一實施例所示的對應(yīng)再一數(shù)據(jù)寫入范例的邏輯頁轉(zhuǎn) 實體頁映射表及實體頁轉(zhuǎn)邏輯頁映射表的示意圖;圖9是根據(jù)本發(fā)明第一實施例所示的數(shù)據(jù)寫入方法的流程圖;圖10是圖9的步驟S907的詳細步驟;圖11是根據(jù)本發(fā)明第二實施例所示的邏輯頁地址的分組示意圖;圖12A與圖12B是根據(jù)本發(fā)明第二實施例所示的對應(yīng)一數(shù)據(jù)寫入的邏輯頁轉(zhuǎn)實體 頁映射表及實體頁轉(zhuǎn)邏輯頁映射表的示意圖;圖13A與圖13B是根據(jù)本發(fā)明第二實施例所示的對應(yīng)另一數(shù)據(jù)寫入的邏輯頁轉(zhuǎn)實 體頁映射表及實體頁轉(zhuǎn)邏輯頁映射表的示意圖;圖14A與圖14B是根據(jù)本發(fā)明第二實施例所示的對應(yīng)又一數(shù)據(jù)寫入的邏輯頁轉(zhuǎn)實 體頁映射表及實體頁轉(zhuǎn)邏輯頁映射表的示意圖15是根據(jù)本發(fā)明第二實施例所示的數(shù)據(jù)寫入方法的流程圖 圖16是圖15的步驟S1507的詳細步驟。 附圖中主要元件符號說明
1000-主機系統(tǒng); 1102-微處理器; 1106-輸入/輸出裝置; 1110-數(shù)據(jù)傳輸接口 ; 1204-鍵盤; 1208-打印機; 1214-記憶卡; 1310-數(shù)碼相機; 1314-MMC 卡; 1318-CF 卡; 100-閃存儲存裝置; 104、104,-閃存控制器
1100-電腦; 1104-隨機存取存儲器 1108-系統(tǒng)總線; 1202鼠標; 1206-顯示器; 1212-隨身盤; 1216-固態(tài)硬盤; 1312-SD 卡; 1316-記憶棒; 1320-嵌入式儲存裝置 102-連接器; 106-閃存芯片;122-(0) 122-(N)-實體區(qū)塊;202--微處理器單元
204-存儲器管理單元; 206-主機接口單元;
208-閃存接口單元;252-緩沖存儲器;
254-電源管理單元;256-錯誤校正單元;
302-系統(tǒng)區(qū);304-儲存區(qū);
304a-數(shù)據(jù)區(qū);304b-_備用區(qū);
306-取代區(qū);410-邏輯頁轉(zhuǎn)實體頁映射表;420-實體頁轉(zhuǎn)邏輯頁映射表;LAA (0) LAA (H)-邏輯存取地址;LPA (0) LPA (L)-邏輯頁地址;PPA (0) PPA (K)-實體頁地址;LPAG (0) LPAG (U)-邏輯頁地址群組;S901、S903、S905、S907、S100U S1003、S1005、S1007、S1009、SlOlU S1013、 S1015-數(shù)據(jù)寫入步驟;S1501、S1503、S1505、S1507、S1601、S1603、S1605、S1607、S1609、S1611、S1613、 S1615、S1617、S1619、S1621、S1623、S1625、S1627-數(shù)據(jù)寫入步驟。
具體實施例方式閃存儲存裝置一般而言包括閃存芯片與控制器(也稱為,控制電路)。通常閃存儲 存裝置會與主機系統(tǒng)一起使用,以使主機系統(tǒng)可將數(shù)據(jù)寫入至閃存儲存裝置或從閃存儲存 裝置中讀取數(shù)據(jù)。另外,還有閃存儲存裝置是包括嵌入式閃存與可執(zhí)行于主機系統(tǒng)上以實 質(zhì)地作為此嵌入式閃存的控制器的軟件。[第一實施例]圖IA是根據(jù)本發(fā)明第一實施例所示的使用閃存儲存裝置的主機系統(tǒng)。圖IB是根據(jù)本發(fā)明實施例所示的電腦、輸入/輸出裝置與閃存儲存裝置的示意 圖。圖IC是根據(jù)本發(fā)明另一實施例所示的主機系統(tǒng)與閃存儲存裝置的示意圖。請參照圖1A,主機系統(tǒng)1000包括電腦1100與輸入/輸出(input/output,I/O)裝 置1106。電腦1100包括微處理器1102、隨機存取存儲器(random accessmemory, RAM) 1104、 系統(tǒng)總線1108以及數(shù)據(jù)傳輸接口 1110。輸入/輸出裝置1106包括如圖IB所示的鼠標 1202、鍵盤1204、顯示器1206與打印機1208。必須了解的是,圖IB所示的裝置不限制輸入 /輸出裝置1106,輸入/輸出裝置1106還可包括其他裝置。在本發(fā)明實施例中,閃存儲存裝置100是通過數(shù)據(jù)傳輸接口 1110與主機系統(tǒng)1000 的其他元件電性連接。通過微處理器1102、隨機存取存儲器1104與輸入/輸出裝置1106 的處理主機系統(tǒng)1000可將數(shù)據(jù)寫入至閃存儲存裝置100或從閃存儲存裝置100中讀取數(shù) 據(jù)。例如,閃存儲存裝置100可以是如圖IB所示的隨身盤1212、記憶卡1214或固態(tài)硬盤 (Solid State Drive, SSD)1216。一般而言,主機系統(tǒng)1000為可儲存數(shù)據(jù)的任意系統(tǒng)。雖然在本實施例中,主機 系統(tǒng)1000是以電腦系統(tǒng)來作說明,然而,在本發(fā)明另一實施例中,主機系統(tǒng)1000還可以 是數(shù)碼相機、攝影機、通信裝置、音頻播放器或視頻播放器等系統(tǒng)。例如,在主機系統(tǒng)為數(shù) 碼相機1310時,閃存儲存裝置則為其所使用的SD卡1312、MMC卡1314、記憶棒(memory stick)1316、CF卡1318或嵌入式儲存裝置1320 (如圖IC所示)。嵌入式儲存裝置1320包 括嵌入式多媒體卡(Embedded MMC, eMMC)。值得一提的是,嵌入式多媒體卡是直接電性連 接于主機系統(tǒng)的基板上。圖ID是圖IA所示的閃存儲存裝置的結(jié)構(gòu)示意圖。請參照圖1D,閃存儲存裝置100包括連接器102、閃存控制器104與閃存芯片106。連接器102電性連接至閃存控制器104并且用以電性連接至主機系統(tǒng)1000。在 本實施例中,連接器102為串行高級技術(shù)附件(Serial AdvancedTechnology Attachment,SATA)連接器。然而,必須了解的是本發(fā)明不限于此,連接器102還可以是并行高級 技術(shù)附件(Parallel Advanced TechnologyAttachment, PATA)連接器、通用串行總線 (Universal Serial Bus,USB)連接器、電氣和電子工程師協(xié)會(Institute of Electrical and Electronic Engineers, IEEE) 1394 連接器、高速周邊零件連接接口(Peripheral Component InterconnectExpress, PCI Express)連接器、安全數(shù)石馬(secure digital, SD)接口連接器、記憶棒(Memory Sick, MS)接口連接器、多媒體儲存卡(Multi Media Card, MMC)接口連接器、小型快閃(Compact Flash, CF)接口連接器、集成設(shè)備電路接口 (Integrated Device Electronics, IDE)連接器或其他適合的連接器。閃存控制器104會執(zhí)行以硬件形式或固件形式實作的多個邏輯門或控制指令,并 且根據(jù)主機系統(tǒng)1000的指令在閃存芯片106中進行數(shù)據(jù)的寫入、讀取與抹除等運作。閃存 控制器104包括微處理器單元202、存儲器管理單元204、主機接口單元206、閃存接口單元 208。微處理器單元202為閃存控制器104的主控單元,用以與存儲器管理單元204、主 機接口單元206與閃存接口單元208等協(xié)同合作以進行閃存儲存裝置100的各種運作。存儲器管理單元204電性連接至微處理器單元202,用以執(zhí)行根據(jù)本實施例的數(shù) 據(jù)寫入機制與區(qū)塊管理機制,存儲器管理單元204的運作將于以下配合附圖作詳細說明。在本實施例中,存儲器管理單元204以一固件形式實作在閃存控制器104中。例 如,將包括多個控制指令的存儲器管理單元204燒錄至一程序存儲器(例如,只讀存儲器 (Read Only Memory, ROM))中并且將此程序存儲器嵌入在閃存控制器104中,當閃存儲存 裝置100運作時,存儲器管理單元204的多個控制指令會由微處理器單元202來執(zhí)行以完 成根據(jù)本發(fā)明實施例的數(shù)據(jù)寫入機制與區(qū)塊管理機制。在本發(fā)明另一實施例中,存儲器管理單元204的控制指令還可以程序代碼的形式 儲存于閃存芯片106的特定區(qū)域(例如,閃存芯片中專用于存放系統(tǒng)數(shù)據(jù)的系統(tǒng)區(qū))中。同 樣的,當閃存儲存裝置100運作時,存儲器管理單元204的多個控制指令會由微處理器單元 202來執(zhí)行。此外,在本發(fā)明另一實施例中,存儲器管理單元204還可以一硬件形式實作在 閃存控制器104中。主機接口單元206電性連接至微處理器單元202并且用以接收與識別主機系統(tǒng) 1000所傳送的指令與數(shù)據(jù)。也就是說,主機系統(tǒng)1000所傳送的指令與數(shù)據(jù)會通過主機接口 單元206來傳送至微處理器單元202。在本實施例中,主機接口單元206對應(yīng)連接器102為 SATA接口。然而,必須了解的是本發(fā)明不限于此,主機接口單元206還可以是PATA接口、 USB 接口、IEEE 1394 接口、PCI Express 接口、SD 接口、MS 接口、MMC 接口、CF 接口、IDE 接 口或其他適合的數(shù)據(jù)傳輸接口。閃存接口單元208電性連接至微處理器單元202并且用以存取閃存芯片106。也 就是說,欲寫入至閃存芯片106的數(shù)據(jù)會經(jīng)由閃存接口單元208轉(zhuǎn)換為閃存芯片106所能 接受的格式。在本發(fā)明另一實施例中,閃存控制器還可包括其他功能模組。圖2是根據(jù)本發(fā)明 另一實施例所示的閃存控制器的結(jié)構(gòu)示意圖。請參照圖2,除了微處理器單元202、存儲器管理單元204、主機接口單元206與閃 存接口單元208之外,閃存控制器104'還包括緩沖存儲器252、電源管理單元254與錯誤校正單元256。緩沖存儲器252電性連接至微處理器單元202并且用以暫存來自于主機系統(tǒng)1000 的數(shù)據(jù)與指令或來自于閃存芯片106的數(shù)據(jù)。電源管理單元254電性連接至微處理器單元202并且用以控制閃存儲存裝置100 的電源。錯誤校正單元256電性連接至微處理器單元202并且用以執(zhí)行一錯誤校正程序以 確保數(shù)據(jù)的正確性。具體來說,當存儲器管理單元204從主機系統(tǒng)1000中接收到主機寫入 指令時,錯誤校正單元256會為對應(yīng)此主機寫入指令的寫入數(shù)據(jù)產(chǎn)生對應(yīng)的錯誤檢查與校 正碼(Error Checking and Correcting Code, ECC Code),并且存儲器管理單元204會將此 寫入數(shù)據(jù)與對應(yīng)的錯誤校正碼寫入至閃存芯片106中。之后,當存儲器管理單元204從閃 存芯片106中讀取數(shù)據(jù)時會同時讀取此數(shù)據(jù)對應(yīng)的錯誤校正碼,并且錯誤校正單元256會 依據(jù)此錯誤校正碼對所讀取的數(shù)據(jù)執(zhí)行錯誤校正程序。請再參照圖1D,閃存芯片106電性連接至閃存控制器104并且用以儲存數(shù)據(jù)。閃存 芯片106具有實體區(qū)塊122-(0) 122-(N)。實體區(qū)塊為抹除的最小單位。也就是說,每一 實體區(qū)塊含有最小數(shù)目之一并被抹除的存儲單元。每一實體區(qū)塊具有128個實體頁面(即, 實體頁地址)。在本實施例中,實體頁面為程序化的最小單元。換言之,實體頁面為寫入數(shù) 據(jù)或讀取數(shù)據(jù)的最小單元。每一實體頁面通常包括使用者數(shù)據(jù)區(qū)與冗余區(qū)。使用者數(shù)據(jù)區(qū) 用以儲存使用者的數(shù)據(jù),而冗余區(qū)用以儲存系統(tǒng)的數(shù)據(jù)(例如,錯誤檢查與校正碼)。然而, 必須了解,本發(fā)明不限于每一實體區(qū)塊具有128個實體頁面,在本發(fā)明另一實施例中,實體 區(qū)塊的實體頁面數(shù)還可以是64、256或其他適當數(shù)目。在本實施例中,閃存芯片106為多層 存儲單元(Multi Level Cell,MLC)NAND閃存芯片。然而,本發(fā)明不限于此,閃存芯片106 還可是單層存儲單元(Single LevelCel 1,SLC) NAND閃存芯片。圖3A是根據(jù)本發(fā)明第一實施例所示的閃存芯片的結(jié)構(gòu)示意圖。圖3B是根據(jù)本發(fā) 明第一實施例所示的邏輯頁地址與實體頁地址的映射示意圖。必須了解的是,在此描述閃 存的實體區(qū)塊的運作時,以“提取”、“交換”、“分組”、“輪替”等詞來操作實體區(qū)塊是邏輯上 的概念。也就是說,閃存的實體區(qū)塊的實際位置并未更動,而是邏輯上對閃存的實體區(qū)塊進 行操作。請參照圖3A,存儲器管理單元204會將實體區(qū)塊122- (0) 122- (N)邏 輯地分組為系統(tǒng)區(qū)(system area)302、儲存區(qū)(storage area)304與取代區(qū) (replacementarea)306。邏輯上屬于系統(tǒng)區(qū)302的實體區(qū)塊122_(0) 122_(S)用以記錄系統(tǒng)數(shù)據(jù),此系 統(tǒng)數(shù)據(jù)包括關(guān)于閃存芯片的制造商與型號、每一閃存芯片的區(qū)域數(shù)、每一區(qū)域的實體區(qū)塊 的數(shù)目、每一實體區(qū)塊的實體頁面數(shù)等。邏輯上屬于儲存區(qū)304的實體區(qū)塊122-(S+1) 122-(A)用以主機系統(tǒng)1000所寫 入的數(shù)據(jù)。也就是說,閃存儲存裝置100會使用分組為儲存區(qū)304的實體區(qū)塊來實際地儲存 主機系統(tǒng)1000所寫入的數(shù)據(jù)。更詳細來說,儲存區(qū)304的實體區(qū)塊122-(S+1) 122_(A) 還分組為數(shù)據(jù)區(qū)304a與備用區(qū)304b,其中數(shù)據(jù)區(qū)304a的實體區(qū)塊122-(S+1) 122-(D) 是已被寫滿數(shù)據(jù)的實體區(qū)塊,而備用區(qū)304b的實體區(qū)塊122-(D+1) 122-(A)是未被使用 來儲存數(shù)據(jù)的實體區(qū)塊。具體來說,當存儲器管理單元204從備用區(qū)304b提取實體區(qū)塊并且將所提取的實體區(qū)塊寫滿數(shù)據(jù)時,所提取的實體區(qū)塊會被關(guān)聯(lián)至數(shù)據(jù)區(qū)304a,并且當關(guān) 聯(lián)至數(shù)據(jù)區(qū)304a的實體區(qū)塊被執(zhí)行抹除運作之后,已抹除的實體區(qū)塊會被關(guān)聯(lián)至備用區(qū) 304b。邏輯上屬于取代區(qū)306中的實體區(qū)塊122-(A+1) 122-(N)是替代實體區(qū)塊。例 如,閃存芯片106于出廠時會預(yù)留4%的實體區(qū)塊作為更換使用。也就是說,當系統(tǒng)區(qū)302 與儲存區(qū)304中的實體區(qū)塊損毀時,預(yù)留于取代區(qū)306中的實體區(qū)塊可用以取代損壞的實 體區(qū)塊(S卩,壞實體區(qū)塊(bad block))。因此,倘若取代區(qū)306中仍存有可用的實體區(qū)塊且 發(fā)生實體區(qū)塊損毀時,存儲器管理單元204會從取代區(qū)306中提取可用的實體區(qū)塊來更換 損毀的實體區(qū)塊。倘若取代區(qū)306中無可用的實體區(qū)塊且發(fā)生實體區(qū)塊損毀時,則閃存儲 存裝置100將會被宣告為寫入保護(write protect),而無法再寫入數(shù)據(jù)。必須了解的是,在閃存儲存裝置100的運作中,實體區(qū)塊122_(0) 122_(N)被分 組為系統(tǒng)區(qū)302、數(shù)據(jù)區(qū)304a、備用區(qū)304b與取代區(qū)306的映射關(guān)系會動態(tài)地變動。也就 是說,當存儲器管理單元204將數(shù)據(jù)寫入至原本屬于備用區(qū)304b的實體區(qū)塊(例如,實體 區(qū)塊122-(D+2))后,此實體區(qū)塊會被關(guān)聯(lián)至數(shù)據(jù)區(qū)304a。或者,當數(shù)據(jù)區(qū)304a(或備用區(qū) 304b)中的實體區(qū)塊損壞時而被取代區(qū)306的實體區(qū)塊取代時,則原本取代區(qū)306的實體區(qū) 塊會被關(guān)聯(lián)至數(shù)據(jù)區(qū)304a (或備用區(qū)304b)。由于閃存儲存裝置100以輪替地使用儲存區(qū)304的實體區(qū)塊來儲存主機系統(tǒng)1000 欲寫入的數(shù)據(jù),因此存儲器管理單元204會提供邏輯存取地址LAA(O) LAA(H)給主機系 統(tǒng)1000以進行數(shù)據(jù)存取。特別是,在本實施例中,存儲器管理單元204會將邏輯存取地址 LAA (0) LAA (H)分組為邏輯頁地址LPA (0) LPA (L),并且將邏輯頁地址LPA (0) LPA (L) 映射至儲存區(qū)304的實體區(qū)塊的實體頁地址(如圖3B所示)。在本實施例中,存儲器管理 單元204會使用一運算規(guī)則來設(shè)定每一邏輯存取地址所映射的邏輯頁地址。在本實施例 中,每一邏輯頁地址由4個邏輯存取地址所組成,例如,邏輯存取地址LAA(O) LAA(3)屬 于邏輯頁地址LPA(O);邏輯存取地址LAA (4) LAA (7)屬于邏輯頁地址LPA(I);邏輯存取 地址LAA(S) LAA(Il)屬于邏輯頁地址LPA(2)...等。在此,邏輯存取地址可以是扇區(qū) (sector)、叢集(cluster)等。此外,存儲器管理單元204會維護邏輯頁轉(zhuǎn)實體頁映射表以 及實體頁轉(zhuǎn)邏輯頁映射表來記錄邏輯頁地址與實體頁地址之間的映射關(guān)系。也就是說,當 主機系統(tǒng)1000欲在邏輯存取地址中存取數(shù)據(jù)時,存儲器管理單元204會確認此邏輯存取地 址所映射的邏輯頁地址,并且在此邏輯頁地址所映射的實體頁地址中來存取數(shù)據(jù)。在本實施例中,存儲器管理單元204會為已被寫入數(shù)據(jù)的實體區(qū)塊記錄一地址中 心與一地址半徑,并且依據(jù)主機系統(tǒng)1000欲寫入數(shù)據(jù)的邏輯存取地址(也稱為被寫入邏輯 存取地址)、已開啟實體區(qū)塊的地址中心與地址半徑來將數(shù)據(jù)寫入至閃存芯片106中。具體來說,實體區(qū)塊的地址中心是指在此實體區(qū)塊中被寫入的第一筆數(shù)據(jù)所對應(yīng) 的邏輯頁地址中的第一個邏輯存取地址。也就是說,當存儲器管理單元204從備用區(qū)304b 提取一個實體區(qū)塊并且將數(shù)據(jù)寫入至所提取的實體區(qū)塊時,所提取實體區(qū)塊的地址中心會 被設(shè)定為此數(shù)據(jù)所對應(yīng)的邏輯頁地址中的第一個邏輯存取地址。然而,必須了解的是本發(fā) 明不限于此,實體區(qū)塊的地址中心還可以在此實體區(qū)塊中被寫入的第一筆數(shù)據(jù)所對應(yīng)的邏 輯頁地址中的任一邏輯存取地址來設(shè)定。此外,實體區(qū)塊的地址半徑用以控制儲存于實體 區(qū)塊中的數(shù)據(jù)的零散程度,每一實體區(qū)塊的地址半徑是預(yù)定的任意適當值,且每一實體區(qū)塊的地址半徑可以是相同或不同。在本實施例中,每一實體區(qū)塊的地址半徑皆被設(shè)定為130 個頁地址。特別是,在本實施例中,每一實體區(qū)塊內(nèi)所儲存的數(shù)據(jù)所對應(yīng)的邏輯存取地址的 其中之一與此實體區(qū)塊的地址中心之間的距離(即,每一實體區(qū)塊內(nèi)所儲存的數(shù)據(jù)所對應(yīng) 的邏輯存取地址的其中之一減去此實體區(qū)塊的地址中心的一絕對值)必須小于或等于此 實體區(qū)塊的地址半徑(如公式(1)所示)I LPA (PPA (t)) -C (PPA (t)) | 彡 R (PPA (t))公式(1)其中,LPA(PPA(t))表示在閃存芯片106中第t個實體頁地址中所儲存的數(shù)據(jù)所 對應(yīng)的邏輯存取地址,C(PPA(t))表示第t個實體頁地址所屬的實體區(qū)塊的地址中心,并且 R(PPA(t))表示第t個實體頁地址所屬的實體區(qū)塊的地址半徑。在本實施例中,存儲器管理 單元204是通過維護具有實體區(qū)塊索引欄位與地址中心欄位的實體區(qū)塊地址中心表(未示 出)來記錄實體區(qū)塊的地址中心。在本實施例中,當主機系統(tǒng)1000欲將數(shù)據(jù)寫入至邏輯存取地址LAA(O) LAA(H) 中時,存儲器管理單元204會將數(shù)據(jù)寫入至已開啟實體區(qū)塊中。在此,所謂已開啟實體區(qū)塊 是指其中部分實體頁地址已被寫入數(shù)據(jù)的實體區(qū)塊。也就是說,當存儲器管理單元204從 備用區(qū)304b中提取一個實體區(qū)塊,且在此所提取的實體區(qū)塊的部分實體頁地址中寫入數(shù) 據(jù)時,此實體區(qū)塊會被視為已開啟實體區(qū)塊。在閃存儲存裝置100中存有已開啟實體區(qū)塊 的狀態(tài)下,當主機系統(tǒng)1000欲將數(shù)據(jù)寫入至邏輯存取地址LAA(O) LAA(H)中時,存儲器 管理單元204會在滿足上述公式(1)的狀態(tài)下依序地在已開啟實體區(qū)塊的實體頁地址中寫 入來自于主機系統(tǒng)的數(shù)據(jù);而在閃存儲存裝置100中未存有已開啟實體區(qū)塊的狀態(tài)下,當 主機系統(tǒng)1000欲將數(shù)據(jù)寫入至邏輯存取地址LAA(O) LAA(H)中時,存儲器管理單元204 會從備用區(qū)304b中提取一個實體區(qū)塊作為已開啟實體區(qū)塊以寫入主機系統(tǒng)1000欲寫入的 數(shù)據(jù)。例如,當存儲器管理單元204開始使用實體區(qū)塊122_(D+1)來儲存主機系統(tǒng)1000 欲寫入的數(shù)據(jù)時,即使主機系統(tǒng)1000所寫入邏輯存取地址所屬的邏輯頁地址為非連續(xù)的, 只要滿足上述公式(1)的狀態(tài)下,存儲器管理單元204仍會依序地使用實體區(qū)塊122-Φ+1) 的實體頁地址來寫入來自于主機系統(tǒng)1000的寫入數(shù)據(jù)。也就是說,在滿足上述公式(1)的 狀態(tài)下,存儲器管理單元204會依序地使用一個實體區(qū)塊內(nèi)的實體頁地址來寫入來自于主 機系統(tǒng)1000的數(shù)據(jù),并且當已開啟實體區(qū)塊內(nèi)的實體頁地址都被使用完后存儲器管理單 元204才會再選擇另一個無儲存數(shù)據(jù)的實體區(qū)塊(即,再從備用區(qū)304b中提取一個實體區(qū) 塊),并且在新選擇的實體區(qū)塊的實體頁地址中繼續(xù)依序地寫入數(shù)據(jù)。在本實施例中,在存 儲器管理單元204將數(shù)據(jù)寫入至實體頁地址后,存儲器管理單元204會更新邏輯頁轉(zhuǎn)實體 頁映射表與實體頁轉(zhuǎn)邏輯頁映射表以正確地記錄邏輯頁地址與實體頁地址的映射關(guān)系。值得一提的是,在本發(fā)明實施例中,在閃存儲存裝置100運作期間,上述已開啟實 體區(qū)塊的數(shù)目必須小于一已開啟實體區(qū)塊數(shù)門檻值。更詳細來說,由于閃存儲存裝置100 的資源(例如,緩沖存儲器的大小或閃存芯片中實體區(qū)塊)是有限的,因此,存儲器管理單 元204所使用的已開啟實體區(qū)塊的數(shù)目必須受到限制。在本實施例中,已開啟實體區(qū)塊數(shù) 門檻值為5 (即,存儲器管理單元204最多可使用4個已開啟實體區(qū)塊),然而,必須了解的 是,本發(fā)明不限于此。圖4A與圖4B是根據(jù)本發(fā)明第一實施例所示的邏輯頁轉(zhuǎn)實體頁映射表及實體頁轉(zhuǎn)邏輯頁映射表的示意圖,其中儲存區(qū)304的實體區(qū)塊的實體頁地址PPA(O) PPA(K)是以 輪替的方式映射至邏輯頁地址LPA(O) LPA(L)的。在本實施例中,邏輯頁轉(zhuǎn)實體頁映射 表410具有邏輯頁索引欄位與實體頁地址欄位來記錄每一邏輯頁地址所映射的實體頁地 址,并且實體頁轉(zhuǎn)邏輯頁映射表420具有實體頁索引欄位與邏輯頁地址欄位來記錄每一實 體頁地址所映射的邏輯頁地址。請參照圖4A與4B,假設(shè)邏輯頁地址LPA (0) 邏輯頁地址LPA (L)是分別映射實 體頁地址PPA(O) 實體頁地址PPA(L)的,也就是說,實體頁地址PPA(O) 實體頁地址 PPA(L)已分別儲存主機系統(tǒng)1000在邏輯頁地址LPA(O) 邏輯頁地址LPA(L)中所寫入的 數(shù)據(jù)。此外,在閃存儲存裝置100中目前無已開啟實體區(qū)塊。圖5A與圖5B是根據(jù)本發(fā)明第一實施例所示的對應(yīng)一數(shù)據(jù)寫入范例的邏輯頁轉(zhuǎn)實 體頁映射表及實體頁轉(zhuǎn)邏輯頁映射表的示意圖。請參照圖5A與5B,當在圖4A與圖4B所示的狀態(tài)下主機系統(tǒng)1000欲寫入數(shù)據(jù)至 邏輯存取地址LAA (4) LAA (6)時,存儲器管理單元204會確認邏輯存取地址LAA (4) LAA(6)是屬于邏輯頁地址LPA(I)的;接著從備用區(qū)304b中提取一個實體區(qū)塊,例如,具有 實體頁地址PPA(L+1) PPA(L+128)的實體區(qū)塊122_(D+1);并且將主機系統(tǒng)1000欲寫入 的數(shù)據(jù)寫入至實體頁地址PPA(L+1)中。另外,存儲器管理單元204會在邏輯頁轉(zhuǎn)實體頁映 射表410中將邏輯頁地址LPA(I)的映射更新為實體頁地址PPA (L+1),并且在實體頁轉(zhuǎn)邏輯 頁映射表420中將實體頁地址PPA (L+1)的映射更新為邏輯頁地址LPA(I)。此時,實體區(qū)塊 122-(D+1)會成為閃存儲存裝置100中的已開啟實體區(qū)塊,并且已開啟實體區(qū)塊122-(D+1) 的地址中心會被設(shè)定為邏輯存取地址LAA (4)。在此,邏輯頁地址LPA(I)的第一個邏輯存取 地址(即,邏輯存取地址LAA(4))被用來作為已開啟實體區(qū)塊122-(D+1)的地址中心。然 而,本發(fā)明不限于此,在本發(fā)明另一實施例中,可使用邏輯存取地址LAA(4) LAA(7)中的 任何一個來作為已開啟實體區(qū)塊的地址中心。此外,必須了解的是,由于閃存的存取是以 “頁”為單位,因此盡管主機系統(tǒng)1000僅欲寫入數(shù)據(jù)至邏輯存取地址LAA(4) LAA(6)中, 但存儲器管理單元204會將整個邏輯頁地址LPA(I)的數(shù)據(jù)(即,邏輯存取地址LAA(4) LAA(7)的數(shù)據(jù))寫入至對應(yīng)的實體頁地址中。圖6A與圖6B是根據(jù)本發(fā)明第一實施例所示的對應(yīng)另一數(shù)據(jù)寫入范例的邏輯頁轉(zhuǎn) 實體頁映射表及實體頁轉(zhuǎn)邏輯頁映射表的示意圖。請參照圖6A與6B,當在圖5A與圖5B的狀態(tài)下主機系統(tǒng)1000欲寫入數(shù)據(jù)至邏輯 存取地址LAA(13)時,存儲器管理單元204會確認邏輯存取地址LAA(13)是屬于邏輯頁地 址LPA(3)的;判斷邏輯存取地址LAA(13)與已開啟實體區(qū)塊122_(D+1)的地址中心(即, 邏輯存取地址LAA (4))的距離是小于實體區(qū)塊122-(D+1)的地址半徑(即,130個邏輯存取 地址)的,因此,存儲器管理單元204會將主機系統(tǒng)1000欲寫入的數(shù)據(jù)寫入至實體頁地址 PPA(L+2)中。此外,存儲器管理單元204會在邏輯頁轉(zhuǎn)實體頁映射表410中將邏輯頁地址 LPA (3)的映射更新為實體頁地址PPA (L+2),并且在實體頁轉(zhuǎn)邏輯頁映射表420中將實體頁 地址PPA(L+2)的映射更新為邏輯頁地址LPA(3)。圖7A與圖7B是根據(jù)本發(fā)明第一實施例所示的對應(yīng)又一數(shù)據(jù)寫入范例的邏輯頁轉(zhuǎn) 實體頁映射表及實體頁轉(zhuǎn)邏輯頁映射表的示意圖。請參照圖7A與7B,當在圖6A與圖6B的映射關(guān)系下主機系統(tǒng)1000欲寫入數(shù)據(jù)至邏輯頁存取地址LAA (518)時,存儲器管理單元204會確認邏輯存取地址LAA (518)屬于邏輯 頁地址LPA(129);判斷邏輯存取地址LAA(518)與已開啟實體區(qū)塊122-(D+1)的地址中心 (即,邏輯存取地址LAA(4))之間的距離大于實體區(qū)塊122-(D+1)的地址半徑(即,130個邏 輯存取地址)。因此,在閃存儲存裝置100中無任何已開啟實體區(qū)塊可在滿足公式(1)的情 況下被用來儲存欲寫入至邏輯頁地址LPA(129)的寫入數(shù)據(jù)。在此中,存儲器管理單元204 會從備用區(qū)304b中提取一個實體區(qū)塊,例如,具有實體頁地址PPA(L+129) PPA(L+256) 的實體區(qū)塊122- (D+2),并且存儲器管理單元204會將主機系統(tǒng)1000欲寫入的數(shù)據(jù)寫入至 實體頁地址PPA(L+129)中。此外,存儲器管理單元204會在邏輯頁轉(zhuǎn)實體頁映射表410中 將邏輯頁地址LPA(129)的映射更新為實體頁地址PPA(L+129),并且在實體頁轉(zhuǎn)邏輯頁映 射表420中將實體頁地址PPA(L+129)的映射更新為邏輯頁地址LPA(129)。此時,實體區(qū) 塊122-Φ+2)會成為閃存儲存裝置100中的另一個已開啟實體區(qū)塊,并且已開啟實體區(qū)塊 122-(D+2)的地址中心被設(shè)定為邏輯存取地址LAA(516)。圖8A與圖8B是根據(jù)本發(fā)明第一實施例所示的對應(yīng)再一數(shù)據(jù)寫入范例的邏輯頁轉(zhuǎn) 實體頁映射表及實體頁轉(zhuǎn)邏輯頁映射表的示意圖。請參照圖8A與8B,當在圖7A與圖7B的狀態(tài)下主機系統(tǒng)1000欲寫入數(shù)據(jù)至邏輯 存取地址LAA (84) LAA (87)時,存儲器管理單元204會確認邏輯存取地址LAA (84)屬于邏 輯頁地址LPA(21);判斷邏輯存取地址LAA(84)與已開啟實體區(qū)塊122-(D+1)的地址中心 (即,邏輯存取地址LAA(4))之間的距離小于實體區(qū)塊122-(D+1)的地址半徑(即,130個邏 輯存取地址),而邏輯存取地址LAA(84)與已開啟實體區(qū)塊122-(D+2)的地址中心(即,邏 輯存取地址LAA(516))之間的距離大于實體區(qū)塊122-Φ+2)的地址半徑(即,130個邏輯存 取地址)。因此,在此中,存儲器管理單元204會將主機系統(tǒng)1000欲寫入的數(shù)據(jù)寫入至已開 啟實體區(qū)塊122-(D+1)的實體頁地址PPA(L+3)中。此外,存儲器管理單元204會在邏輯頁 轉(zhuǎn)實體頁映射表410中將邏輯頁地址LPA (21)的映射更新為實體頁地址PPA (L+3),并且在 實體頁轉(zhuǎn)邏輯頁映射表420中將實體頁地址PPA (L+3)的映射更新為邏輯頁地址LPA (21)。在本實施例中,存儲器管理單元204會比對邏輯頁轉(zhuǎn)實體頁映射表410以及實體 頁轉(zhuǎn)邏輯頁映射表420中的記錄來判斷哪些實體頁地址為無效的實體頁地址與有效的實 體頁地址,其中所謂無效的實體頁地址是指其中所儲存的數(shù)據(jù)為無效的舊數(shù)據(jù),而有效的 實體頁地址是指其中所儲存的數(shù)據(jù)是映射目前邏輯頁地址的有效數(shù)據(jù)。例如,以圖8A與8B 為例,當欲判斷實體頁地址PPA(O)是否為有效的實體頁地址時,存儲器管理單元204會從 實體頁轉(zhuǎn)邏輯頁映射表420中讀出實體頁地址PPA (0)是映射邏輯頁地址LPA (0),并且依據(jù) 邏輯頁地址LPA(O)從邏輯頁轉(zhuǎn)實體頁映射表410讀出邏輯頁地址LPA(O)是映射實體頁地 址PPA(O),因此,存儲器管理單元204會判斷實體頁地址PPA(O)為有效的實體頁地址。另 外,當欲判斷實體頁地址PPA(I)是否為有效的實體頁地址時,存儲器管理單元204會從實 體頁轉(zhuǎn)邏輯頁映射表420中讀出實體頁地址PPA(I)是映射邏輯頁地址LPA(I),并且依據(jù)邏 輯頁地址LPA(I)從邏輯頁轉(zhuǎn)實體頁映射表410讀出邏輯頁地址LPA(I)是映射實體頁地址 PPA(L+1),因此,存儲器管理單元204會判斷實體頁地址PPA(I)為無效的實體頁地址。也 就是說,存儲器管理單元204會依據(jù)待判斷的實體頁地址,通過實體頁轉(zhuǎn)邏輯頁映射表420 與邏輯頁轉(zhuǎn)實體頁映射表410查詢待判斷的實體頁地址映射的邏輯頁地址所映射的實體 頁地址,倘若待判斷的實體頁地址和所查詢得到的實體頁地址相符時,則此待判斷的實體頁地址為有效的實體頁地址,反之則為無效的實體頁地址。值得一提的是,如上所述,在本實施例中,存儲器管理單元204最多能使用的已開 啟實體區(qū)塊的數(shù)目會受到已開啟實體區(qū)塊數(shù)門檻值的限制,因此,當存儲器管理單元204 需從備用區(qū)304b提取實體區(qū)塊作為已開啟實體區(qū)塊時,存儲器管理單元204會判斷目前已 開啟實體區(qū)塊的數(shù)目是否小于已開啟實體區(qū)塊數(shù)門檻值。特別是,倘若目前已開啟實體區(qū) 塊的數(shù)目非小于已開啟實體區(qū)塊數(shù)門檻值時,存儲器管理單元204會執(zhí)行數(shù)據(jù)整理程序以 將其中一個已開啟實體區(qū)塊中未寫入數(shù)據(jù)的實體頁地址填滿有效數(shù)據(jù),并且執(zhí)行無效數(shù)據(jù) 抹除程序以將至少一個儲存無效數(shù)據(jù)的實體區(qū)塊進行抹除,由此將所抹除的實體區(qū)塊關(guān)聯(lián) 至備用區(qū)304b,以釋放儲存無效數(shù)據(jù)的實體區(qū)塊。具體來說,在數(shù)據(jù)整理程序中,存儲器管 理單元204會通過上述比對將其他實體區(qū)塊中有效的實體頁地址內(nèi)的數(shù)據(jù)復(fù)制到已開啟 實體區(qū)塊中,以使得其中一個已開啟實體區(qū)塊的實體頁地址都被寫入數(shù)據(jù)而被關(guān)聯(lián)至數(shù)據(jù) 區(qū)304a。此外,由于閃存芯片106是以實體區(qū)塊作為抹除的最小單位的,因此,在無效數(shù)據(jù) 抹除程序中存儲器管理單元204會通過上述比對將有效的實體頁地址內(nèi)的數(shù)據(jù)進行整理 以使數(shù)據(jù)區(qū)304a中的至少一個實體區(qū)塊的實體頁地址中的數(shù)據(jù)都成為無效數(shù)據(jù),由此,僅 儲存無效數(shù)據(jù)的實體區(qū)塊就可被抹除并被關(guān)聯(lián)至備用區(qū)304b。例如,存儲器管理單元204 可將一個實體區(qū)塊中有效的實體頁地址內(nèi)的數(shù)據(jù)復(fù)制到其他實體區(qū)塊的實體頁地址中,并 且對此實體區(qū)塊進行抹除運作,由此可將零散的有效數(shù)據(jù)集中并且將存有無效數(shù)據(jù)的實體 區(qū)塊釋放出來。例如,在進行有效數(shù)據(jù)整理以釋放存有無效數(shù)據(jù)的實體區(qū)塊后,存儲器管理單元 204會更新實體頁轉(zhuǎn)邏輯頁映射表420,以將所抹除之實體區(qū)塊的實體頁地址的映射關(guān)系 更新為空值(例如,“NULL”)。必須注意的是,在執(zhí)行數(shù)據(jù)整理程序與無效數(shù)據(jù)抹除程序而 搬移有效數(shù)據(jù)時,存儲器管理單元204還會使每一實體區(qū)塊中所儲存得數(shù)據(jù)所對應(yīng)的邏輯 頁地址盡量滿足上述公式(1)的限制。依據(jù)上述,當閃存控制器104的主機接口單元206從主機系統(tǒng)1000接收到主機寫 入指令與寫入數(shù)據(jù)時,存儲器管理單元204會依據(jù)欲寫入此寫入數(shù)據(jù)的被寫入邏輯存取地 址,來判斷已開啟實體區(qū)塊之中是否存有在符合公式(1)的限制下可寫入此寫入數(shù)據(jù)的至 少一可寫入實體區(qū)塊,其中當存有至少一可寫入實體區(qū)塊時,存儲器管理單元204會將此 寫入數(shù)據(jù)寫入至這些可寫入實體區(qū)塊的其中之一中;反之,存儲器管理單元204會從備用 區(qū)304b中提取一個實體區(qū)塊作為已開啟實體區(qū)塊來寫入此寫入數(shù)據(jù)。以下將配合附圖詳 細描述本發(fā)明實施例的數(shù)據(jù)寫入方法。圖9是根據(jù)本發(fā)明第一實施例所示的數(shù)據(jù)寫入方法的流程圖。請參照圖9,在步驟S901中主機接口單元206經(jīng)由連接器102從主機系統(tǒng)1000中 接收主機寫入指令與寫入數(shù)據(jù)。之后,在步驟S903中存儲器管理單元204判斷主機寫入指 令對應(yīng)的被寫入邏輯頁地址(即,主機系統(tǒng)1000欲寫入數(shù)據(jù)的邏輯頁地址),并且在步驟 S905中判斷已開啟實體區(qū)塊。最后,在步驟S907中存儲器管理單元204會依據(jù)被寫入邏 輯存取地址以及已開啟實體區(qū)塊的地址中心與地址半徑來將寫入數(shù)據(jù)寫入至閃存芯片106 的實體頁地址中。圖10是圖9的步驟S907的詳細步驟。請參照圖10,在步驟S1001中存儲器管理單元204判斷已開啟實體區(qū)塊之中是否存有可寫入實體區(qū)塊,其中此可寫入實體區(qū)塊的地址半徑是大于被寫入邏輯存取地址的其 中之一與此可寫入實體區(qū)塊的地址中心之間的距離的(即,滿足上述公式(1))。倘若在步驟S1001中判斷已開啟實體區(qū)塊之中存有可寫入實體區(qū)塊時,則在步驟 S1003中將所接收到的寫入數(shù)據(jù)寫入至此可寫入實體區(qū)塊的實體頁地址中。接著,在步驟 S1005中存儲器管理單元204會更新實體頁轉(zhuǎn)邏輯頁映射表420與邏輯頁轉(zhuǎn)實體頁映射表 410中的映射關(guān)系(例如,如圖8A與8B所示),并且結(jié)束圖10的流程。值得一提的是,倘若在步驟S1001中判斷存有多個可寫入實體區(qū)塊時,存儲器管 理單元204可任意選擇其中一個可寫入實體區(qū)塊來寫入所接收到的寫入數(shù)據(jù),或者依據(jù)被 寫入邏輯存取地址與每一可寫入實體區(qū)塊的地址中心之間的距離來選擇距離最短的可寫 入實體區(qū)塊來寫入所接收到的寫入數(shù)據(jù)。倘若在步驟S1001中判斷已開啟實體區(qū)塊之中未存有可寫入實體區(qū)塊時,則在步 驟S1007中存儲器管理單元204會判斷已開啟實體區(qū)塊的數(shù)目是否小于已開啟實體區(qū)塊數(shù) 門檻值。在步驟S1007中判斷已開啟實體區(qū)塊的數(shù)目非小于已開啟實體區(qū)塊數(shù)門檻值時, 則在步驟S1009中執(zhí)行數(shù)據(jù)整理程序以將已開啟實體區(qū)塊的其中之一關(guān)聯(lián)至數(shù)據(jù)區(qū)30 , 并且在步驟SlOll中執(zhí)行無效數(shù)據(jù)抹除程序以抹除數(shù)據(jù)區(qū)30 中的至少一個實體區(qū)塊及 將所抹除的實體區(qū)塊關(guān)聯(lián)至備用區(qū)304b。之后,在步驟S1013中存儲器管理單元204從備用區(qū)304b中提取一個實體區(qū)塊, 并且將寫入數(shù)據(jù)寫入至所提取的實體區(qū)塊的實體頁地址中。然后,在步驟S1015中存儲器 管理單元204更新所提取的實體區(qū)塊的地址中心。具體來說,在步驟S1015中存儲器管理 單元204會將在步驟SlOll中所提取的實體區(qū)塊的地址中心設(shè)定為步驟S903中所判斷的 被寫入邏輯頁地址中的其中一個邏輯存取地址,且將在步驟SlOll中已抹除實體區(qū)塊的地 址中心設(shè)為空值(例如,“NULL”)。在步驟S1015之后,步驟S1005會被執(zhí)行并結(jié)束圖10的 流程。[第二實施例]本發(fā)明第二實施例的閃存儲存裝置與主機系統(tǒng)本質(zhì)上相同于第一實施例的閃存 儲存裝置與主機系統(tǒng),其中差異在于第二實施例的存儲器管理單元會將邏輯頁地址分組為 多個邏輯頁地址群組,并且以邏輯頁地址群組為單位來寫入來自于主機系統(tǒng)的寫入數(shù)據(jù)。 以下將配合第一實施例的圖1A、圖ID與圖3來描述第二實施例。圖11是根據(jù)本發(fā)明第二實施例所示的邏輯頁地址的分組示意圖。請參照圖11,在本實施例中,存儲器管理單元204會將邏輯頁地址LPA(O) LPA(L)分組為邏輯頁地址群組LPAG(O) LPAG(U),其中每一邏輯頁地址群組是由4個邏 輯頁地址所組成,然而,必須需了解的是,本發(fā)明不限于此。特別是,在本實施例中,存儲器管理單元204會以所分組的邏輯頁地址群組為 單位來寫入數(shù)據(jù)。具體來說,在主機系統(tǒng)1000僅欲寫入數(shù)據(jù)至邏輯存取地址LAA(4) LAA(7),且邏輯頁地址LPA(O) LPA(3)屬于同一個邏輯頁地址群組LPAG(0)的例子中,存 儲器管理單元204會判斷邏輯存取地址LAA (4) LAA (7)是屬于邏輯頁地址LPA (1);依據(jù) 實體頁轉(zhuǎn)邏輯頁映射表420與邏輯頁轉(zhuǎn)實體頁映射表410從閃存芯片106中讀取屬于邏輯 頁地址LPA(O)、LPA⑵與LPA(3)的數(shù)據(jù);并且將來自于主機系統(tǒng)1000的數(shù)據(jù)和所讀取的數(shù)據(jù)以邏輯頁地址群組LPAG(O)為單位寫入至閃存芯片106中。圖12A與圖12B是根據(jù)本發(fā)明第二實施例所示的對應(yīng)一數(shù)據(jù)寫入的邏輯頁轉(zhuǎn)實體 頁映射表及實體頁轉(zhuǎn)邏輯頁映射表的示意圖。請參照圖12A與12B,當在圖4A與圖4B所示的狀態(tài)下主機系統(tǒng)1000欲寫入數(shù)據(jù) 至邏輯存取地址LAA (4) LAA (7)時,存儲器管理單元204會判斷主機系統(tǒng)1000僅欲寫入 數(shù)據(jù)至邏輯存取地址LAA (4) LAA (7)所屬的邏輯頁地址LPA(I),而非整個邏輯頁地址群 組。在此中,存儲器管理單元204會從實體頁地址PPA(O)、實體頁地址PPA ( 與實體頁地 址PPA (3)中讀取屬于邏輯頁地址LPA(O)、邏輯頁地址LPA O)與邏輯頁地址LPA (3)的數(shù) 據(jù);從備用區(qū)304b中提取一個實體區(qū)塊,例如,具有實體頁地址PPA (L+1) PPA(L+128)的 實體區(qū)塊122-Φ+1);并且將所讀取的屬于邏輯頁地址LPA(O)的數(shù)據(jù)、主機系統(tǒng)1000欲寫 入的屬于邏輯頁地址LPA(I)的數(shù)據(jù)、所讀取的屬于邏輯頁地址LPAO)的數(shù)據(jù)與所讀取的 屬于邏輯頁地址LPA (3)的數(shù)據(jù)依序地寫入至實體頁地址PPA (L+1)、實體頁地址PPA (L+2)、 實體頁地址PPA(L+;3)與實體頁地址PPA (L+4)中。此外,存儲器管理單元204會在邏輯頁轉(zhuǎn) 實體頁映射表410中將邏輯頁地址LPA(O)的映射更新為實體頁地址PPA(L+1);將邏輯頁 地址LPA(I)的映射更新為實體頁地址PPA(L+2);將邏輯頁地址LPA(2)的映射更新為實體 頁地址PPA(L+3);以及將邏輯頁地址LPA(3)的映射更新為實體頁地址PPA(L+4)。并且,存 儲器管理單元204會在實體頁轉(zhuǎn)邏輯頁映射表420中將實體頁地址PPA(L+1)的映射更新 為邏輯頁地址LPA(O);將實體頁地址PPA (L+2)的映射更新為邏輯頁地址LPA(1);將實體 頁地址PPA (L+3)的映射更新為邏輯頁地址LPA (2);以及將實體頁地址PPA (L+4)的映射更 新為邏輯頁地址LPA (3)。在此中,實體區(qū)塊122-(D+1)會成為閃存儲存裝置100中的已開 啟實體區(qū)塊,并且已開啟實體區(qū)塊122-(D+1)的地址中心會被設(shè)為邏輯存取地址LAA0)。圖13A與圖1 是根據(jù)本發(fā)明第二實施例所示的對應(yīng)另一數(shù)據(jù)寫入的邏輯頁轉(zhuǎn)實 體頁映射表及實體頁轉(zhuǎn)邏輯頁映射表的示意圖。請參照圖13A與13B,當在圖12A與圖12B所示的狀態(tài)下主機系統(tǒng)1000欲寫入 數(shù)據(jù)至邏輯存取地址LAA (516) LAA (519)時,存儲器管理單元204會判斷邏輯存取地址 LAA (516)與已開啟實體區(qū)塊122-Φ+1)的地址中心(即,邏輯存取地址LAA )的距離 大于實體區(qū)塊122-(D+1)的地址半徑(即,130個邏輯存取地址)。因此,在閃存儲存裝置 100中無任何已開啟實體區(qū)塊可在滿足公式(1)的情況下被用來儲存欲寫入至邏輯存取地 址LAA(516) LAA(519)的寫入數(shù)據(jù)。此外,存儲器管理單元204會判斷主機系統(tǒng)1000 僅欲寫入數(shù)據(jù)至邏輯存取地址LAA (516) LAA (519)所屬的邏輯頁地址LPA (1 ),而非整 個邏輯頁地址群組。在此中,存儲器管理單元204會從實體頁地址PPA(US)、實體頁地址 PPA(130)與實體頁地址PPA(131)中讀取屬于邏輯頁地址LPA(128)、邏輯頁地址LPA(130) 與邏輯頁地址LPA(131)的數(shù)據(jù);從備用區(qū)304b中提取一個實體區(qū)塊,例如,具有實體頁 地址PPA(L+U9) PPA(L+256)的實體區(qū)塊122_(D+2);并且將所讀取的屬于邏輯頁地址 LPA(128)的數(shù)據(jù)、主機系統(tǒng)1000欲寫入的屬于邏輯頁地址LPA(U9)的數(shù)據(jù)、所讀取的屬 于邏輯頁地址LPA (130)的數(shù)據(jù)與所讀取的屬于邏輯頁地址LPA (131)的數(shù)據(jù)依序地寫入至 實體頁地址PPA(L+U9)、實體頁地址PPA(L+130)、實體頁地址PPA(L+131)與實體頁地址 PPA(L+132)中。此時,存儲器管理單元204會在邏輯頁轉(zhuǎn)實體頁映射表410中將邏輯頁地 址LPA(US)的映射更新為實體頁地址PPA(L+U9);將邏輯頁地址LPA(1 )的映射更新為實體頁地址PPA(L+130);將邏輯頁地址LPA(130)的映射更新為實體頁地址PPA(L+131); 以及將邏輯頁地址LPA(131)的映射更新為實體頁地址PPA(L+132)。并且,存儲器管理單 元204會在實體頁轉(zhuǎn)邏輯頁映射表420中將實體頁地址PPA(L+U9)的映射更新為邏輯頁 地址LPA(U8);將實體頁地址PPA(L+130)的映射更新為邏輯頁地址LPA(1 );將實體頁 地址PPA(L+131)的映射更新為邏輯頁地址LPA (130);以及將實體頁地址PPA (L+132)的映 射更新為邏輯頁地址LPA(131)。在此中,實體區(qū)塊122-Φ+2)會成為閃存儲存裝置100中 的另一已開啟實體區(qū)塊,并且已開啟實體區(qū)塊122-(D+2)的地址中心會被設(shè)為邏輯存取地 址 LAA (516)。圖14A與圖14B是根據(jù)本發(fā)明第二實施例所示的對應(yīng)又一數(shù)據(jù)寫入的邏輯頁轉(zhuǎn)實 體頁映射表及實體頁轉(zhuǎn)邏輯頁映射表的示意圖。請參照圖14A與14B,當在圖13A與圖1 所示的狀態(tài)下主機系統(tǒng)1000欲寫入數(shù)據(jù) 至邏輯存取地址LAA (80) LAA(%)時,存儲器管理單元204會判斷邏輯存取地址LAA (80) 與已開啟實體區(qū)塊122-Φ+1)的地址中心(即,邏輯存取地址LAAG))之間的距離小于實 體區(qū)塊122-(D+1)的地址半徑(即,130個邏輯存取地址),而邏輯存取地址LAA(SO)與已 開啟實體區(qū)塊122-(D+2)的地址中心(S卩,邏輯存取地址LAA (516))之間的距離大于實體 區(qū)塊122-(D+2)的地址半徑(即,130個邏輯存取地址)。此外,存儲器管理單元204會判 斷主機系統(tǒng)1000欲寫入數(shù)據(jù)至整個邏輯頁地址群組LPAG ( 。因此,在此中,存儲器管理 單元204會將主機系統(tǒng)1000欲寫入的屬于邏輯頁地址LPA00)的數(shù)據(jù)、屬于邏輯頁地址 LPA(21)的數(shù)據(jù)、屬于邏輯頁地址LPA02)的數(shù)據(jù)與屬于邏輯頁地址LPAQ3)的數(shù)據(jù)依序 地寫入至實體頁地址PPA (L+5)、實體頁地址PPA (L+6)、實體頁地址PPA (L+7)與實體頁地址 PPA(L+8)中。此外,存儲器管理單元204會在邏輯頁轉(zhuǎn)實體頁映射表410中將邏輯頁地址 LPA(20)的映射更新為實體頁地址PPA(L+5);將邏輯頁地址LPAQl)的映射更新為實體頁 地址PPA(L+6);將邏輯頁地址LPA 02)的映射更新為實體頁地址PPA (L+7);以及將邏輯頁 地址LPA03)的映射更新為實體頁地址PPA(L+8)。并且,存儲器管理單元204會在實體頁 轉(zhuǎn)邏輯頁映射表420中將實體頁地址PPA (L+5)的映射更新為邏輯頁地址LPA 00);將實體 頁地址PPA(L+6)的映射更新為邏輯頁地址LPA;將實體頁地址PPA(L+7)的映射更新 為邏輯頁地址LPA 02);以及將實體頁地址PPA (L+8)的映射更新為邏輯頁地址LPA Q3)。圖15是根據(jù)本發(fā)明第二實施例所示的數(shù)據(jù)寫入方法的流程圖。請參照圖15,在步驟S1501中閃存控制器104的主機接口單元206經(jīng)由連接器102 從主機系統(tǒng)1000中接收主機寫入指令與寫入數(shù)據(jù)。之后,在步驟S1503中存儲器管理單元 204判斷此主機寫入指令對應(yīng)的被寫入邏輯頁地址(即,主機系統(tǒng)1000欲寫入數(shù)據(jù)的邏輯 頁地址),并且在步驟S1505中判斷已開啟實體區(qū)塊。最后,在步驟S1507中存儲器管理單 元204會依據(jù)被寫入邏輯存取地址、已開啟實體區(qū)塊的地址中心與地址半徑來以邏輯頁地 址群組為單位將寫入數(shù)據(jù)寫入至閃存芯片106的實體頁地址中。圖16是圖15的步驟S1507的詳細步驟。請參照圖16,在步驟S1601中存儲器管理單元204判斷已開啟實體區(qū)塊之中是否 存有可寫入實體區(qū)塊,其中此可寫入實體區(qū)塊的地址半徑是大于被寫入邏輯存取地址的其 中之一與此可寫入實體區(qū)塊的地址中心的距離的(即,滿足上述公式(1))。倘若在步驟S1601中判斷已開啟實體區(qū)塊之中存有可寫入實體區(qū)塊時,則在步驟S1603中存儲器管理單元204判斷所接收到的寫入數(shù)據(jù)是否對應(yīng)整個邏輯頁地址群組,其 中倘若所接收到的寫入數(shù)據(jù)非對應(yīng)整個邏輯頁地址群組時,則在步驟S1605中存儲器管理 單元204會從實體頁地址中讀取對應(yīng)的數(shù)據(jù),并且在步驟S1607中存儲器管理單元204將 所接收到的寫入數(shù)據(jù)和所讀取的數(shù)據(jù)寫入至此可寫入實體區(qū)塊的實體頁地址中。倘若在步驟S1603中判斷所接收到的寫入數(shù)據(jù)是對應(yīng)整個邏輯頁地址群組時,則 在步驟S1609中存儲器管理單元204將所接收到的寫入數(shù)據(jù)寫入至此可寫入實體區(qū)塊的實 體頁地址中。之后,在步驟S1611中存儲器管理單元204會更新實體頁轉(zhuǎn)邏輯頁映射表420與 邏輯頁轉(zhuǎn)實體頁映射表410中的映射關(guān)系(例如,如圖14A與14B所示),并且結(jié)束圖16的 流程。倘若在步驟S1601中判斷已開啟實體區(qū)塊之中未存有可寫入實體區(qū)塊時,則在步 驟S1613中存儲器管理單元204會判斷已開啟實體區(qū)塊的數(shù)目是否小于已開啟實體區(qū)塊數(shù) 門檻值。在步驟S1613中判斷已開啟實體區(qū)塊的數(shù)目未小于已開啟實體區(qū)塊數(shù)門檻值時, 則在步驟S1615中執(zhí)行數(shù)據(jù)整理程序以將已開啟實體區(qū)塊的其中之一關(guān)聯(lián)至數(shù)據(jù)區(qū)30 , 并且在步驟S1617中執(zhí)行無效數(shù)據(jù)抹除程序以抹除數(shù)據(jù)區(qū)30 中的至少一個實體區(qū)塊并 將所抹除的實體區(qū)塊關(guān)聯(lián)至備用區(qū)MOb。然后,在步驟S1619中存儲器管理單元204判斷所接收到的寫入數(shù)據(jù)是否對應(yīng)整 個邏輯頁地址群組,其中倘若所接收到的寫入數(shù)據(jù)未對應(yīng)整個邏輯頁地址群組時,則在步 驟S1621中存儲器管理單元204會從實體頁地址中讀取對應(yīng)的數(shù)據(jù)。之后,在步驟S1623 中存儲器管理單元204從備用區(qū)304b中提取一個實體區(qū)塊,并且將所接收到的寫入數(shù)據(jù)和 所讀取的數(shù)據(jù)寫入至所提取的實體區(qū)塊的實體頁地址中。倘若在步驟S1619中判斷所接收到的寫入數(shù)據(jù)對應(yīng)整個邏輯頁地址群組時,則在 步驟S1625中存儲器管理單元204從備用區(qū)304b中提取一個實體區(qū)塊,并且將所接收到的 寫入數(shù)據(jù)寫入至所提取的實體區(qū)塊的實體頁地址中。然后,在步驟S1627中存儲器管理單元204會更新實體區(qū)塊的地址中心,并且步驟 S1611會被執(zhí)行。綜上所述,本發(fā)明實施例的數(shù)據(jù)寫入方法通過設(shè)定實體區(qū)塊的地址中心與地址半 徑以及依據(jù)欲寫入數(shù)據(jù)之邏輯存取地址和實體區(qū)塊的地址中心與地址半徑來選擇適當?shù)?實體頁地址來寫入數(shù)據(jù),由此使得連續(xù)的邏輯頁地址的數(shù)據(jù)能較集中地儲存于同一實體區(qū) 塊內(nèi),以致于減少整理實體區(qū)塊中有效數(shù)據(jù)與無效數(shù)據(jù)的時間,并且提升在閃存中寫入數(shù) 據(jù)的速度。最后應(yīng)說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡 管參照前述實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解其依然 可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替 換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精 神和范圍。
權(quán)利要求
1.一種用于閃存的數(shù)據(jù)寫入方法,用于將來自于一主機系統(tǒng)的數(shù)據(jù)寫入至一閃存芯片 中,其中該閃存芯片包括多個實體區(qū)塊,該數(shù)據(jù)寫入方法包括配置多個邏輯存取地址;從該主機系統(tǒng)中接收一寫入數(shù)據(jù),其中該寫入數(shù)據(jù)欲被寫入至至少一邏輯存取地址;判斷是否存有至少一已開啟實體區(qū)塊;以及當所述實體區(qū)塊之中無存有該至少一已開啟實體區(qū)塊時,則從所述實體區(qū)塊之中提取 一實體區(qū)塊,將該寫入數(shù)據(jù)寫入至所提取的實體區(qū)塊中,并且將該至少一邏輯存取地址的 其中之一設(shè)定為所提取的實體區(qū)塊的一地址中心。
2.根據(jù)權(quán)利要求1所述的用于閃存的數(shù)據(jù)寫入方法,還包括維護一實體區(qū)塊地址中心 表來記錄所設(shè)定的地址中心。
3.根據(jù)權(quán)利要求1所述的用于閃存的數(shù)據(jù)寫入方法,其中當所述實體區(qū)塊之中存有該 至少一已開啟實體區(qū)塊時,判斷該至少一已開啟實體區(qū)塊之中是否存有至少一可寫入實體 區(qū)塊,其中當該至少一已開啟實體區(qū)塊之中存有該至少一可寫入實體區(qū)塊時,則將該寫入數(shù) 據(jù)寫入至該至少一可寫入實體區(qū)塊中,其中該至少一可寫入實體區(qū)塊的一地址半徑大于該 至少一邏輯存取地址的其中之一與該至少一可寫入實體區(qū)塊的地址中心之間的一距離。
4.根據(jù)權(quán)利要求3所述的用于閃存的數(shù)據(jù)寫入方法,當該至少一已開啟實體區(qū)塊之中 無存有該至少一可寫入實體區(qū)塊時,判斷該至少一已開啟實體區(qū)塊的數(shù)目是否小于一已開 啟實體區(qū)塊數(shù)門檻值,其中當該至少一已開啟實體區(qū)塊的數(shù)目小于該已開啟實體區(qū)塊數(shù)門檻值時,則從所述 實體區(qū)塊之中提取一實體區(qū)塊,將該寫入數(shù)據(jù)寫入至所提取的實體區(qū)塊中,并且將該至少 一邏輯存取地址的其中之一設(shè)定為所提取的實體區(qū)塊的地址中心。
5.根據(jù)權(quán)利要求4所述的用于閃存的數(shù)據(jù)寫入方法,其中當該至少一已開啟實體區(qū)塊 的數(shù)目不小于該已開啟實體區(qū)塊數(shù)門檻值時,執(zhí)行一數(shù)據(jù)整理程序以抹除所述實體區(qū)塊的 其中之一。
6.根據(jù)權(quán)利要求1所述的用于閃存的數(shù)據(jù)寫入方法,還包括將所述邏輯存取地址分組為多個邏輯頁地址;以及將所述邏輯頁地址分組為多個邏輯頁地址群組。
7.根據(jù)權(quán)利要求6所述的用于閃存的數(shù)據(jù)寫入方法,其中將該寫入數(shù)據(jù)寫入至所提取 的實體區(qū)塊中的步驟包括以所述邏輯頁地址群組的其中之一為單位將該寫入數(shù)據(jù)寫入至該閃存芯片中。
8.根據(jù)權(quán)利要求7所述的用于閃存的數(shù)據(jù)寫入方法,其中以所述邏輯頁地址群組的其 中之一為單位將該寫入數(shù)據(jù)寫入至該閃存芯片中的步驟包括判斷該寫入數(shù)據(jù)的該至少一邏輯存取地址是否對應(yīng)整個所述邏輯頁地址群組的其中 之一;當該寫入數(shù)據(jù)的該至少一邏輯存取地址是對應(yīng)整個所述邏輯頁地址群組的其中之一 時,則將該寫入數(shù)據(jù)寫入至該閃存芯片中;以及當該寫入數(shù)據(jù)的該至少一邏輯存取地址未對應(yīng)整個所述邏輯頁地址群組的其中之一 時,則從所述實體區(qū)塊中讀取對應(yīng)該至少一邏輯存取地址所屬的邏輯頁地址群組的其他數(shù)據(jù),并且將該寫入數(shù)據(jù)和該其他數(shù)據(jù)一起寫入至該閃存芯片中。
9.一種閃存控制器,用于將來自于一主機系統(tǒng)的數(shù)據(jù)寫入至一閃存芯片中,其中該閃 存芯片包括多個實體區(qū)塊,該閃存控制器包括一微處理器單元;一閃存接口單元,電性連接至該微處理器單元,用以電性連接至該閃存芯片;一主機接口單元,電性連接至該微處理器單元,用以電性連接至該主機系統(tǒng);以及一存儲器管理單元,電性連接至該微處理器單元,用以配置多個邏輯存取地址,其中該主機接口單元從該主機系統(tǒng)中接收一寫入數(shù)據(jù),其中該寫入數(shù)據(jù)欲被寫入至至 少一邏輯存取地址,其中該存儲器管理單元判斷是否存有至少一已開啟實體區(qū)塊,其中當所述實體區(qū)塊之 中無存有該至少一已開啟實體區(qū)塊時,則該存儲器管理單元從所述實體區(qū)塊之中提取一實 體區(qū)塊,將該寫入數(shù)據(jù)寫入至所提取的實體區(qū)塊中,并且將該至少一邏輯存取地址的其中 之一設(shè)定為所提取的實體區(qū)塊的一地址中心。
10.根據(jù)權(quán)利要求9所述的閃存控制器,其中該存儲器管理單元維護一實體區(qū)塊地址 中心表來記錄所設(shè)定的地址中心。
11.根據(jù)權(quán)利要求9所述的閃存控制器,其中當所述實體區(qū)塊之中存有該至少一已開 啟實體區(qū)塊時,則該存儲器管理單元判斷該至少一已開啟實體區(qū)塊之中是否存有至少一可 寫入實體區(qū)塊,其中當該至少一已開啟實體區(qū)塊之中存有該至少一可寫入實體區(qū)塊時,則該存儲器管 理單元將該寫入數(shù)據(jù)寫入至該至少一可寫入實體區(qū)塊中,其中該至少一可寫入實體區(qū)塊的 一地址半徑大于該至少一邏輯存取地址的其中之一與該至少一可寫入實體區(qū)塊的地址中 心之間的一距離。
12.根據(jù)權(quán)利要求11所述的閃存控制器,其中當該至少一已開啟實體區(qū)塊之中無存有 至少一可寫入實體區(qū)塊時,則該存儲器管理單元判斷該至少一已開啟實體區(qū)塊的數(shù)目是否 小于一已開啟實體區(qū)塊數(shù)門檻值,其中當該至少一已開啟實體區(qū)塊的數(shù)目小于該已開啟實體區(qū)塊數(shù)門檻值時,則該存儲 器管理單元從所述實體區(qū)塊之中提取一實體區(qū)塊,將該寫入數(shù)據(jù)寫入至所提取的實體區(qū)塊 中,并且將該至少一邏輯存取地址的其中之一設(shè)定為所提取的實體區(qū)塊的地址中心。
13.根據(jù)權(quán)利要求12所述的閃存控制器,其中當該至少一已開啟實體區(qū)塊的數(shù)目不小 于該已開啟實體區(qū)塊數(shù)門檻值時,則該存儲器管理單元執(zhí)行一數(shù)據(jù)整理程序以抹除所述實 體區(qū)塊的其中之一。
14.根據(jù)權(quán)利要求9所述的閃存控制器,其中該存儲器管理單元將所述邏輯存取地址 分組為多個邏輯頁地址,并且將所述邏輯頁地址分組為多個邏輯頁地址群組。
15.根據(jù)權(quán)利要求14所述的閃存控制器,其中該存儲器管理單元以所述邏輯頁地址群 組的其中之一為單位將該寫入數(shù)據(jù)寫入至該閃存芯片中。
16.根據(jù)權(quán)利要求15所述的閃存控制器,其中該存儲器管理單元判斷該寫入數(shù)據(jù)的該 至少一邏輯存取地址是否對應(yīng)整個所述邏輯頁地址群組的其中之一,其中當該寫入數(shù)據(jù)的該至少一邏輯存取地址是對應(yīng)整個所述邏輯頁地址群組的其中 之一時,則該存儲器管理單元將該寫入數(shù)據(jù)寫入至該閃存芯片中,其中當該寫入數(shù)據(jù)的該至少一邏輯存取地址未對應(yīng)整個所述邏輯頁地址群組的其中 之一時,則該存儲器管理單元從所述實體區(qū)塊中讀取對應(yīng)該至少一邏輯存取地址所屬的邏 輯頁地址群組的其他數(shù)據(jù),并且將該寫入數(shù)據(jù)和該其他數(shù)據(jù)一起寫入至該閃存芯片中。
17.—種閃存儲存系統(tǒng),包括一閃存芯片,具有多個實體區(qū)塊;一連接器,用以電性連接至一主機系統(tǒng);以及一閃存控制器,電性連接至該閃存芯片與該連接器,用以配置多個邏輯存取地址,其中該閃存控制器從該主機系統(tǒng)中接收一寫入數(shù)據(jù),其中該寫入數(shù)據(jù)欲被寫入至至少 一邏輯存取地址,其中該閃存控制器判斷是否存有至少一已開啟實體區(qū)塊,其中當所述實體區(qū)塊之中無 存有該至少一已開啟實體區(qū)塊時,則該閃存控制器從所述實體區(qū)塊之中提取一實體區(qū)塊, 將該寫入數(shù)據(jù)寫入至所提取的實體區(qū)塊中,并且將該至少一邏輯存取地址的其中之一設(shè)定 為所提取的實體區(qū)塊的一地址中心。
18.根據(jù)權(quán)利要求17所述的閃存儲存系統(tǒng),其中該閃存控制器維護一實體區(qū)塊地址中 心表來記錄所設(shè)定的地址中心。
19.根據(jù)權(quán)利要求17所述的閃存儲存系統(tǒng),其中當所述實體區(qū)塊之中存有該至少一已 開啟實體區(qū)塊時,則該閃存控制器判斷該至少一已開啟實體區(qū)塊之中是否存有至少一可寫 入實體區(qū)塊,其中當該至少一已開啟實體區(qū)塊之中存有該至少一可寫入實體區(qū)塊時,則該閃存控制 器將該寫入數(shù)據(jù)寫入至該至少一可寫入實體區(qū)塊中,其中該至少一可寫入實體區(qū)塊的一地 址半徑大于該至少一邏輯存取地址的其中之一與該至少一可寫入實體區(qū)塊的地址中心之 間的一距離。
20.根據(jù)權(quán)利要求19所述的閃存儲存系統(tǒng),其中當該至少一已開啟實體區(qū)塊之中無存 有該至少一可寫入實體區(qū)塊時,則該閃存控制器判斷該至少一已開啟實體區(qū)塊的數(shù)目是否 小于一已開啟實體區(qū)塊數(shù)門檻值,其中當該至少一已開啟實體區(qū)塊的數(shù)目小于該已開啟實體區(qū)塊數(shù)門檻值時,則該閃存 控制器從所述實體區(qū)塊之中提取一實體區(qū)塊,將該寫入數(shù)據(jù)寫入至所提取的實體區(qū)塊中, 并且將該至少一邏輯存取地址的其中之一設(shè)定為所提取的實體區(qū)塊的地址中心。
21.根據(jù)權(quán)利要求20所述的閃存儲存系統(tǒng),其中當該至少一已開啟實體區(qū)塊的數(shù)目不 小于該已開啟實體區(qū)塊數(shù)門檻值時,則該閃存控制器執(zhí)行一數(shù)據(jù)整理程序以抹除所述實體 區(qū)塊的其中之一。
22.根據(jù)權(quán)利要求17所述的閃存儲存系統(tǒng),其中該閃存控制器將所述邏輯存取地址分 組為多個邏輯頁地址,并且將所述邏輯頁地址分組為多個邏輯頁地址群組。
23.根據(jù)權(quán)利要求22所述的閃存儲存系統(tǒng),其中該閃存控制器以所述邏輯頁地址群組 的其中之一為單位將該寫入數(shù)據(jù)寫入至該閃存芯片中。
24.根據(jù)權(quán)利要求23所述的閃存儲存系統(tǒng),其中該閃存控制器判斷該寫入數(shù)據(jù)的該至 少一邏輯存取地址是否對應(yīng)整個所述邏輯頁地址群組的其中之一,其中當該寫入數(shù)據(jù)的該至少一邏輯存取地址是對應(yīng)整個所述邏輯頁地址群組的其中 之一時,則該閃存控制器將該寫入數(shù)據(jù)寫入至該閃存芯片中,其中當該寫入數(shù)據(jù)的該至少一邏輯存取地址未對應(yīng)整個所述邏輯頁地址群組的其中 之一時,則該閃存控制器從所述實體區(qū)塊中讀取對應(yīng)該至少一邏輯存取地址所屬的邏輯頁 地址群組的其他數(shù)據(jù),并且將該寫入數(shù)據(jù)和該其他數(shù)據(jù)一起寫入至該閃存芯片中。
全文摘要
本發(fā)明提供了一種用于閃存的數(shù)據(jù)寫入方法及其控制器與儲存系統(tǒng),用于將來自于主機系統(tǒng)的數(shù)據(jù)寫入至具有多個實體區(qū)塊的閃存芯片中。本數(shù)據(jù)寫入方法包括配置多個邏輯存取地址及記錄實體區(qū)塊的一地址中心與一地址半徑。本數(shù)據(jù)寫入方法也包括接收欲寫入至邏輯存取地址的數(shù)據(jù);取得實體區(qū)塊之中的已開啟實體區(qū)塊;及依據(jù)欲寫入數(shù)據(jù)的邏輯存取地址和已開啟實體區(qū)塊的地址中心與地址半徑來將數(shù)據(jù)寫入至閃存芯片中?;耍緮?shù)據(jù)寫入方法可有效地降低每一實體區(qū)塊中數(shù)據(jù)的零散程度,減少整理有效數(shù)據(jù)所需的時間,并且提升寫入數(shù)據(jù)的速度。
文檔編號G06F12/06GK102063381SQ200910206460
公開日2011年5月18日 申請日期2009年11月13日 優(yōu)先權(quán)日2009年11月13日
發(fā)明者朱健華 申請人:群聯(lián)電子股份有限公司