專利名稱::閃存數(shù)據(jù)的存取方法及其儲存系統(tǒng)與控制系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明是有關(guān)于一種用于閃存的數(shù)據(jù)存取方法及使用此方法的閃存儲存系統(tǒng)與閃存控制器。
背景技術(shù):
:數(shù)字相機(jī)、手機(jī)相機(jī)與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由于閃存(FlashMemory)具有數(shù)據(jù)非易失性、省電、體積小與無機(jī)械結(jié)構(gòu)等的特性,適合可攜式應(yīng)用,最適合使用于這類可攜式由電池供電的產(chǎn)品上。固態(tài)硬盤就是一種以NAND閃存作為儲存媒體的儲存裝置?!銇碚f,閃存儲存系統(tǒng)的閃存芯片(chip)會劃分為多個實體區(qū)塊,其中實體區(qū)塊更劃分為多個頁,而實體區(qū)塊是閃存的抹除單位并且頁是閃存的寫入單位。由于在程序化閃存的記憶單元時,僅能執(zhí)行單向的程序化(即,僅能將記憶單元的值由1程序化為0),因此無法對已程序化的頁(B卩,存有舊數(shù)據(jù)的頁)直接進(jìn)行寫入,而是必須先將此頁抹除后方可重新程序化。特別是,由于閃存的抹除是以實體區(qū)塊為單位,因此當(dāng)欲將存有舊數(shù)據(jù)的頁執(zhí)行抹除運作時,必須對此頁所屬的整個實體區(qū)塊進(jìn)行抹除。因此,傳統(tǒng)上閃存的寫入機(jī)制會以實體區(qū)塊為基礎(chǔ)來進(jìn)行。例如,在傳統(tǒng)寫入方法中會將此些實體區(qū)塊會界定為數(shù)據(jù)區(qū)(dataarea)與備用區(qū)(sparearea),其中歸類為數(shù)據(jù)區(qū)的實體區(qū)塊中會儲存由寫入指令所寫入的有效數(shù)據(jù),而備用區(qū)中的實體區(qū)塊是用以在執(zhí)行寫入指令時替換數(shù)據(jù)區(qū)中的實體區(qū)塊。具體來說,當(dāng)閃存儲存系統(tǒng)接受到主機(jī)系統(tǒng)的寫入指令而欲對數(shù)據(jù)區(qū)的實體區(qū)塊進(jìn)行寫入時,閃存儲存系統(tǒng)會從備用區(qū)中提取實體區(qū)塊并且將在數(shù)據(jù)區(qū)中欲更新的實體區(qū)塊中的有效舊數(shù)據(jù)與欲寫入的新數(shù)據(jù)寫入至從備用區(qū)中提取的實體區(qū)塊并且將已寫入新數(shù)據(jù)的實體區(qū)塊關(guān)聯(lián)為數(shù)據(jù)區(qū),并且將原本數(shù)據(jù)區(qū)的實體區(qū)塊進(jìn)行抹除并關(guān)聯(lián)為備用區(qū)。為了能夠讓主機(jī)系統(tǒng)能夠順利地存取以輪替方式儲存數(shù)據(jù)的實體區(qū)塊,閃存儲存系統(tǒng)會配置邏輯區(qū)塊以供主機(jī)系統(tǒng)進(jìn)行存取,其中邏輯區(qū)塊是根據(jù)實體區(qū)塊以一個或多個實體區(qū)塊的大小來配置。也就是說,閃存儲存系統(tǒng)會建立邏輯區(qū)塊-實體區(qū)塊對映表(logicalblock-physicalblockmappingtable),并且在此表中記錄與更新邏輯區(qū)塊與數(shù)據(jù)區(qū)的實體區(qū)塊之間的對映關(guān)系來反映實體區(qū)塊的輪替,所以主機(jī)系統(tǒng)僅需要針對所提供邏輯區(qū)塊進(jìn)行存取而閃存儲存系統(tǒng)會依據(jù)邏輯區(qū)塊_實體區(qū)塊對映表來對所對映的實體區(qū)塊進(jìn)行實際地讀取或?qū)懭霐?shù)據(jù)。因此當(dāng)主機(jī)系統(tǒng)僅更新一個邏輯區(qū)塊中的一部分?jǐn)?shù)據(jù)時,上述數(shù)據(jù)存取方法除了寫入新數(shù)據(jù)的動作之外還必須包括搬移實體區(qū)塊內(nèi)的有效舊數(shù)據(jù)的動作。特別是,當(dāng)更新的數(shù)據(jù)量越小,致使所需要搬移的有效舊數(shù)據(jù)量越多時,完成上述寫入動作的所需時間會大幅的增加。特別是,目前計算機(jī)發(fā)展的趨勢已逐漸將閃存(即,固態(tài)硬盤)作為計算機(jī)系統(tǒng)的主硬盤,同時計算機(jī)操作系統(tǒng)具有頻繁地更新少量數(shù)據(jù)的特性,因此閃存芯片的寫入速度將嚴(yán)重影響整體計算機(jī)系統(tǒng)的運作效率。因此,有需要發(fā)展一套可減少數(shù)據(jù)搬移的數(shù)據(jù)存取方法,以提升寫入數(shù)據(jù)至閃存的速度。
發(fā)明內(nèi)容本發(fā)明提供一種數(shù)據(jù)存取方法,其能夠在寫入數(shù)據(jù)至閃存芯片時減少數(shù)據(jù)搬移動作,進(jìn)而提升閃存的數(shù)據(jù)寫入速度。本發(fā)明提供一種控制器系統(tǒng),其能夠在寫入數(shù)據(jù)至閃存芯片時減少數(shù)據(jù)搬移動作,進(jìn)而提升閃存的數(shù)據(jù)寫入速度。本發(fā)明提供一種閃存儲存系統(tǒng),其在寫入數(shù)據(jù)時可減少數(shù)據(jù)搬移動作,進(jìn)而提升閃存的數(shù)據(jù)寫入速度。本發(fā)明提出一種數(shù)據(jù)存取方法,其是由一閃存控制器執(zhí)行以在至少一閃存芯片的多個實體區(qū)塊的多個實體頁地址(physicalpageaddress)中寫入數(shù)據(jù)。此數(shù)據(jù)存取方法包括提供主機(jī)系統(tǒng)多個邏輯頁地址(logicalpageaddress),建立邏輯頁轉(zhuǎn)實體頁對映表(logicalpagetophysicalpagemappingtable)以分另U土也記錄邏車茸頁t也址所X寸映的實體頁地址,以及建立實體頁轉(zhuǎn)邏輯頁對映表(physicalpagetologicalpagem即pingtable)以分別地記錄實體頁地址所對映的邏輯頁地址。此數(shù)據(jù)存取方法也包括從此主機(jī)系統(tǒng)接收一欲寫入數(shù)據(jù)及一欲寫入邏輯頁地址;寫入此欲寫入數(shù)據(jù)于一實體頁地址;在上述邏輯頁轉(zhuǎn)實體頁對映表中更新此欲寫入邏輯頁地址是對映寫入此數(shù)據(jù)的實體頁地址;并且在上述實體頁轉(zhuǎn)邏輯頁對映表中更新寫入此欲寫入數(shù)據(jù)的實體頁地址是對映此欲寫入邏輯頁地址。此數(shù)據(jù)存取方法亦包括比對邏輯頁轉(zhuǎn)實體頁對映表與實體頁轉(zhuǎn)邏輯頁對映表來判斷已寫入數(shù)據(jù)的實體頁地址之中無效的實體頁地址與有效的實體頁地址。在本發(fā)明的一實施例中,上述的數(shù)據(jù)存取方法更包括建立實體區(qū)塊無效頁地址計數(shù)表以記錄每一實體區(qū)塊中無效的實體頁地址的數(shù)目,以及在此實體區(qū)塊無效頁地址計數(shù)表中更新在上述欲寫入邏輯頁地址原始對映的實體頁地址中無效的實體頁地址的數(shù)目。在本發(fā)明的一實施例中,上述的數(shù)據(jù)存取方法更包括建立實體區(qū)塊有效頁地址計數(shù)表以記錄每一實體區(qū)塊中有效的實體頁地址的數(shù)目,以及在此實體區(qū)塊有效頁地址計數(shù)表中更新在上述欲寫入邏輯頁地址原始對映的實體頁地址中有效的實體頁地址的數(shù)目。在本發(fā)明的一實施例中,上述的數(shù)據(jù)存取方法更包括判斷未寫入數(shù)據(jù)的該些實體區(qū)塊的數(shù)目是否少于一無數(shù)據(jù)實體區(qū)塊數(shù)門檻值,其中當(dāng)未寫入數(shù)據(jù)的實體區(qū)塊的數(shù)目少于此無數(shù)據(jù)實體區(qū)塊數(shù)門檻值時,則執(zhí)行一無效數(shù)據(jù)抹除程序,其中此無效數(shù)據(jù)抹除程序包括依據(jù)上述實體區(qū)塊無效頁地址計數(shù)表從已寫入數(shù)據(jù)的實體區(qū)塊之中選擇至少一第一實體區(qū)塊;從未寫入數(shù)據(jù)的實體區(qū)塊之中選擇至少一第二實體區(qū)塊;將此第一實體區(qū)塊中有效的實體頁地址中的數(shù)據(jù)復(fù)制至屬于第二實體區(qū)塊的實體頁地址中;更新上述邏輯頁轉(zhuǎn)實體頁對映表、實體頁轉(zhuǎn)邏輯頁對映表與實體區(qū)塊無效頁地址計數(shù)表;以及抹除此第一實體區(qū)塊。在本發(fā)明的一實施例中,其中在已寫入數(shù)據(jù)的實體區(qū)塊之中上述第一實體區(qū)塊存有最少數(shù)目的有效的實體頁地址。在本發(fā)明的一實施例中,上述的數(shù)據(jù)存取方法更包括建立一無數(shù)據(jù)實體區(qū)塊管理表,以記錄未寫入數(shù)據(jù)的實體區(qū)塊。在本發(fā)明的一實施例中,上述的比對該邏輯頁轉(zhuǎn)實體頁對映表與該實體頁轉(zhuǎn)邏輯頁對映表判斷已寫入數(shù)據(jù)的該些實體頁地址之中無效的該些實體頁地址與有效的該些實體頁地址的步驟包括從實體頁面地址之中選擇一待判斷實體頁地址;依據(jù)實體頁轉(zhuǎn)邏輯頁對映表查詢待判斷實體頁地址對映的邏輯頁地址;依據(jù)邏輯頁轉(zhuǎn)實體頁對映表查詢所對映的邏輯頁地址對映的實體頁地址;判斷所查詢的實體頁地址是否相同于待測實體頁地址。在此判斷中倘若所查詢的實體頁地址相同于待測實體頁地址,則待判斷實體頁地址為有效,并且倘若所查詢的實體頁地址不同于待測實體頁地址,則待判斷實體頁地址為無效。在本發(fā)明的一實施例中,上述的數(shù)據(jù)存取方法更包括依據(jù)上述實體區(qū)塊無效頁地址計數(shù)表判斷在已寫入數(shù)據(jù)的實體區(qū)塊之中至少一第一實體區(qū)塊內(nèi)無效的實體頁地址占其所有實體頁地址的比例是否超過一無效實體頁地址門檻值,其中當(dāng)此第一實體區(qū)塊內(nèi)無效的實體頁地址占其所有實體頁地址的比例超過此無效實體頁地址門檻值時,則執(zhí)行一無效數(shù)據(jù)抹除程序,其中此無效數(shù)據(jù)抹除程序包括從未寫入數(shù)據(jù)的實體區(qū)塊之中選擇至少一第二實體區(qū)塊;將此第一實體區(qū)塊中有效的該些實體頁地址中的數(shù)據(jù)復(fù)制至屬于此第二實體區(qū)塊的實體頁地址中;更新上述邏輯頁轉(zhuǎn)實體頁對映表、實體頁轉(zhuǎn)邏輯頁對映表與實體區(qū)塊無效頁地址計數(shù)表;以及抹除此第一實體區(qū)塊。在本發(fā)明的一實施例中,上述的數(shù)據(jù)存取方法更包括依據(jù)上述實體區(qū)塊無效頁地址計數(shù)表判斷在已寫入數(shù)據(jù)的實體區(qū)塊之中至少一第一實體區(qū)塊內(nèi)是否無任何有效的該些實體頁地址,其中當(dāng)此第一實體區(qū)塊內(nèi)無有效的實體頁地址時,則抹除第一實體區(qū)塊并且更新上述實體區(qū)塊無效頁地址計數(shù)表。在本發(fā)明的一實施例中,上述的數(shù)據(jù)存取方法更包括建立一可寫入實體頁指針,以標(biāo)記下一個可寫入的實體頁地址。本發(fā)明提出一種控制器系統(tǒng),適用在至少一閃存芯片的多個實體區(qū)塊的多個實體頁地址中寫入數(shù)據(jù),此控制器系統(tǒng)包括微處理器單元、用以連接主機(jī)系統(tǒng)的主機(jī)接口單元、用以連接閃存芯片的閃存接口單元,用以暫存數(shù)據(jù)的緩沖存儲器、邏輯頁轉(zhuǎn)實體頁對映表、實體頁轉(zhuǎn)邏輯頁對映表以及頁管理模塊。微處理器單元用以從主機(jī)系統(tǒng)接收一欲寫入數(shù)據(jù)及一欲寫入邏輯頁地址,邏輯頁轉(zhuǎn)實體頁對映表是用以記錄邏輯頁地址所對映的實體頁地址,而實體頁轉(zhuǎn)邏輯頁對映表是用以記錄實體頁地址所對映的邏輯頁地址。頁管理模塊用以寫入此欲寫入數(shù)據(jù)于一實體頁地址,在上述邏輯頁轉(zhuǎn)實體頁對映表中更新此欲寫入邏輯頁地址是對映寫入此數(shù)據(jù)的實體頁地址,并且在上述實體頁轉(zhuǎn)邏輯頁對映表中更新寫入此欲寫入數(shù)據(jù)的實體頁地址是對映此欲寫入邏輯頁地址。此外,頁管理模塊會比對邏輯頁轉(zhuǎn)實體頁對映表與實體頁轉(zhuǎn)邏輯頁對映表判斷已寫入數(shù)據(jù)的實體頁地址之中無效的實體頁地址與有效的實體頁地址。在本發(fā)明的一實施例中,上述的控制器系統(tǒng)更包括一實體區(qū)塊無效頁地址計數(shù)表,用以記錄每一實體區(qū)塊中無效的實體頁地址的數(shù)目,其中頁管理模塊更用以在此實體區(qū)塊無效頁地址計數(shù)表中更新在上述欲寫入邏輯頁地址原始對映的實體頁地址中無效的實體頁地址的數(shù)目。在本發(fā)明的一實施例中,上述的控制器系統(tǒng)更包括一實體區(qū)塊有效頁地址計數(shù)表,用以記錄每一實體區(qū)塊中有效的實體頁地址的數(shù)目,其中頁管理模塊更用以在此實體區(qū)塊有效頁地址計數(shù)表中更新在上述欲寫入邏輯頁地址原始對映的實體頁地址中有效的實體頁地址的數(shù)目。在本發(fā)明的一實施例中,上述的頁管理模塊更用以判斷未寫入數(shù)據(jù)的實體區(qū)塊的數(shù)目是否少于一無數(shù)據(jù)實體區(qū)塊數(shù)門檻值,其中當(dāng)未寫入數(shù)據(jù)的該些實體區(qū)塊的數(shù)目少于該無數(shù)據(jù)實體區(qū)塊數(shù)門檻值時,該頁管理模塊更用以依據(jù)上述實體區(qū)塊無效頁地址計數(shù)表從已寫入數(shù)據(jù)的實體區(qū)塊之中選擇至少一第一實體區(qū)塊,從未寫入數(shù)據(jù)的實體區(qū)塊之中選擇至少一第二實體區(qū)塊,將此第一實體區(qū)塊中有效的實體頁地址中的數(shù)據(jù)復(fù)制至屬于此第二實體區(qū)塊的實體頁地址中,更新上述邏輯頁轉(zhuǎn)實體頁對映表、實體頁轉(zhuǎn)邏輯頁對映表與實體區(qū)塊無效頁地址計數(shù)表,并且抹除此第一實體區(qū)塊。在本發(fā)明的一實施例中,在已寫入數(shù)據(jù)的該些實體區(qū)塊之中上述的第一實體區(qū)塊與第二實體區(qū)塊存有最少數(shù)目的有效的實體頁地址。在本發(fā)明的一實施例中,上述的控制器系統(tǒng)更包括一無數(shù)據(jù)實體區(qū)塊管理表,用以記錄未寫入數(shù)據(jù)的實體區(qū)塊。在本發(fā)明的一實施例中,上述的頁管理模塊是通過從實體頁面地址的中選擇一待判斷實體頁地址,依據(jù)上述實體頁轉(zhuǎn)邏輯頁對映表查詢此待判斷實體頁地址對映的邏輯頁地址,依據(jù)此邏輯頁轉(zhuǎn)實體頁對映表查詢所對映的邏輯頁地址對映的實體頁地址,以及判斷所查詢的實體頁地址是否相同于此待測實體頁地址來判斷無效的實體頁地址與有效的實體頁地址,其中倘若所查詢的實體頁地址相同于此待測實體頁地址,則此待判斷實體頁地址為有效,并且倘若所查詢的實體頁地址不同于此待測實體頁地址,則此待判斷實體頁地址為無效。在本發(fā)明的一實施例中,上述的頁管理模塊更用以依據(jù)上述實體區(qū)塊無效頁地址計數(shù)表來判斷在已寫入數(shù)據(jù)的實體區(qū)塊之中至少一第一實體區(qū)塊內(nèi)無效的實體頁地址占其所有實體頁地址的比例是否超過一無效實體頁地址門檻值,其中當(dāng)此第一實體區(qū)塊內(nèi)無效的該些實體頁地址占其所有該些實體頁地址的比例超過該無效實體頁地址門檻值時上述頁管理模塊更用以從未寫入數(shù)據(jù)的實體區(qū)塊之中選擇至少一第二實體區(qū)塊,將此第一實體區(qū)塊中有效的實體頁地址中的數(shù)據(jù)復(fù)制至屬于此第二實體區(qū)塊的實體頁地址中,更新上述邏輯頁轉(zhuǎn)實體頁對映表、實體頁轉(zhuǎn)邏輯頁對映表與實體區(qū)塊無效頁地址計數(shù)表,并且抹除此第一實體區(qū)塊。在本發(fā)明的一實施例中,上述的頁管理模塊更用以依據(jù)上述實體區(qū)塊無效頁地址計數(shù)表來判斷在已寫入數(shù)據(jù)的該些實體區(qū)塊之中至少一第一實體區(qū)塊內(nèi)是否無任何有效的該些實體頁地址,其中當(dāng)此第一實體區(qū)塊內(nèi)無有效的該些實體頁地址時上述頁管理模塊更用以抹除此第一實體區(qū)塊并且更新上述實體區(qū)塊無效頁地址計數(shù)表。在本發(fā)明的一實施例中,上述的控制器系統(tǒng)更包括一可寫入實體頁指針,用以標(biāo)記下一個可寫入的實體頁地址。本發(fā)明提出一種閃存儲存系統(tǒng),其包括屬于多個實體區(qū)塊的多個實體頁地址、用以連接主機(jī)系統(tǒng)的連接器、電性連接至實體頁地址與此連接器的閃存控制器、邏輯頁轉(zhuǎn)實體頁對映表以及實體頁轉(zhuǎn)邏輯頁對映表。邏輯頁轉(zhuǎn)實體頁對映表是用以記錄邏輯頁地址所對映的實體頁地址,而實體頁轉(zhuǎn)邏輯頁對映表是用以記錄實體頁地址所對映的邏輯頁地址。閃存控制器用以從此主機(jī)系統(tǒng)接收一欲寫入數(shù)據(jù)及一欲寫入邏輯頁地址。此外,閃存用以寫入此欲寫入數(shù)據(jù)于一實體頁地址,在上述邏輯頁轉(zhuǎn)實體頁對映表中更新此欲寫入邏輯頁地址是對映寫入此數(shù)據(jù)的實體頁地址,并且在上述實體頁轉(zhuǎn)邏輯頁對映表中更新寫入此欲寫入數(shù)據(jù)的實體頁地址是對映此欲寫入邏輯頁地址。此外,閃存控制器用以比對邏輯頁轉(zhuǎn)實體頁對映表與實體頁轉(zhuǎn)邏輯頁對映表判斷已寫入數(shù)據(jù)的實體頁地址之中無效的實體頁地址與有效的實體頁地址。在本發(fā)明的一實施例中,上述的閃存儲存系統(tǒng)更包括一實體區(qū)塊無效頁地址計數(shù)表,用以記錄每一實體區(qū)塊中無效的實體頁地址的數(shù)目,其中當(dāng)上述閃存控制器更用以在此實體區(qū)塊無效頁地址計數(shù)表中更新在欲寫入邏輯頁地址原始對映的實體頁地址中無效的實體頁地址的數(shù)目。在本發(fā)明的一實施例中,上述的閃存儲存系統(tǒng),更包括一實體區(qū)塊有效頁地址計數(shù)表,用以記錄每一實體區(qū)塊中有效的該些實體頁地址的數(shù)目,其中閃存控制器更用以在此實體區(qū)塊有效頁地址計數(shù)表中更新在欲寫入邏輯頁地址原始對映的實體頁地址中有效的實體頁地址的數(shù)目。在本發(fā)明的一實施例中,上述的閃存控制器更以判斷未寫入數(shù)據(jù)的實體區(qū)塊的數(shù)目是否少于一無數(shù)據(jù)實體區(qū)塊數(shù)門檻值,其中當(dāng)未寫入數(shù)據(jù)的該些實體區(qū)塊的數(shù)目少于該無數(shù)據(jù)實體區(qū)塊數(shù)門檻值時,閃存控制器更用以依據(jù)上述實體區(qū)塊無效頁地址計數(shù)表從已寫入數(shù)據(jù)的實體區(qū)塊之中選擇至少一第一實體區(qū)塊,從未寫入數(shù)據(jù)的實體區(qū)塊之中選擇至少一第二實體區(qū)塊,將此第一實體區(qū)塊中有效的實體頁地址中的數(shù)據(jù)復(fù)制至屬于此第二實體區(qū)塊的實體頁地址中,更新上述邏輯頁轉(zhuǎn)實體頁對映表、實體頁轉(zhuǎn)邏輯頁對映表與實體區(qū)塊無效頁地址計數(shù)表,并且抹除此第一實體區(qū)塊。在本發(fā)明的一實施例中,上述的閃存控制器是通過從實體頁面地址之中選擇一待判斷實體頁地址,依據(jù)上述實體頁轉(zhuǎn)邏輯頁對映表查詢此待判斷實體頁地址對映的邏輯頁地址,依據(jù)此邏輯頁轉(zhuǎn)實體頁對映表查詢所對映的邏輯頁地址對映的實體頁地址,以及判斷所查詢的實體頁地址是否相同于此待測實體頁地址來判斷無效的實體頁地址與有效的實體頁地址,其中倘若所查詢的實體頁地址相同于此待測實體頁地址,則此待判斷實體頁地址為有效,并且倘若所查詢的實體頁地址不同于此待測實體頁地址,則此待判斷實體頁地址為無效。基于上述,本發(fā)明使用邏輯頁轉(zhuǎn)實體頁對映表與實體頁轉(zhuǎn)邏輯頁對映表來記錄邏輯頁地址與實體頁地址的對映關(guān)系,由此可以頁為基礎(chǔ)對閃存芯片進(jìn)行寫入,可有效地提升閃存儲存系統(tǒng)的效能。為讓本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉實施例,并配合附圖作詳細(xì)說明如下。圖1是根據(jù)本發(fā)明一實施例繪示閃存儲存系統(tǒng)的概要方塊圖。圖2是根據(jù)本發(fā)明一范例實施例繪示閃存芯片的概要方塊圖。圖3是根據(jù)本發(fā)明范例實施例繪示閃存芯片中儲存區(qū)的概要示意圖。圖4A圖4C是根據(jù)本發(fā)明一范例實施例繪示邏輯頁轉(zhuǎn)實體頁對映表及實體頁轉(zhuǎn)邏輯頁對映表的范例。圖5是根據(jù)本發(fā)明一范例實施例所繪示閃存儲存系統(tǒng)的存取運作的流程圖。圖6是根據(jù)本發(fā)明另一實施例繪示閃存儲存系統(tǒng)的概要方塊圖。圖7是根據(jù)本發(fā)明一范例實施例繪示實體區(qū)塊無效頁地址計數(shù)表的范例。11圖8是根據(jù)本發(fā)明另一范例實施例所繪示閃存儲存系統(tǒng)的存取運作的流程圖。圖9是根據(jù)本發(fā)明另一范例實施例所繪示閃存儲存系統(tǒng)的存取運作的流程圖。圖10是根據(jù)本發(fā)明另一范例實施例所繪示閃存統(tǒng)的存取運作的流程圖。具體實施例方式圖1是根據(jù)本發(fā)明一實施例繪示閃存儲存系統(tǒng)的概要方塊圖。請參照圖1,閃存儲存系統(tǒng)100具有連接器110、閃存芯片120、以及包括閃存控制器130、邏輯頁轉(zhuǎn)實體頁對映表140與實體頁轉(zhuǎn)邏輯頁對映表150的控制器系統(tǒng)。通常閃存儲存系統(tǒng)100會與主機(jī)系統(tǒng)200—起使用,以使主機(jī)系統(tǒng)200可將數(shù)據(jù)寫入至閃存儲存系統(tǒng)100或從閃存儲存系統(tǒng)100中讀取數(shù)據(jù)。在本范例實施例中,閃存儲存系統(tǒng)100為固態(tài)硬盤(SolidStateDrive,SSD)。但必須了解的是,在本發(fā)明另一實施例中閃存儲存系統(tǒng)100亦可以是存儲卡或隨身碟。連接器110是電性連接至閃存控制器130,并且用以透過總線300連接主機(jī)系統(tǒng)200。在本范例實施例中,連接器110為SATA連接器。然而,必須了解的是本發(fā)明不限于此,連接器110亦可以是USB連接器、IEEE1394連接器、PCIExpress連接器、MS連接器、匪C連接器、SD連接器、CF連接器、IDE連接器或其它適合的連接器。閃存芯片120是電性連接至閃存控制器130并且用以儲存數(shù)據(jù)。在本范例實施中閃存芯片120為多層記憶單元(MultiLevelCell,MLC)NAND閃存。然而,必須了解的是,本發(fā)明不限于此,在本發(fā)明另一實施例中,單層記憶單元(SingleLevelCell,SLC)NAND閃存亦可應(yīng)用于本發(fā)明。圖2是根據(jù)本發(fā)明一范例實施例繪示閃存芯片的概要方塊圖。必須了解的是,在此描述閃存芯片的運作時以"選擇"、"搬移"、"劃分"、"替換"、"輪替"、"分組"等詞來操作閃存芯片120的實體區(qū)塊是邏輯上的概念。也就是說,閃存的實體區(qū)塊的實際位置并未更動,而是邏輯上對閃存的實體區(qū)塊進(jìn)行操作。值得一提的是,閃存芯片120的運作(例如,寫入、讀取、抹除等運作)是由閃存控制器130來控制。請參照圖2,閃存芯片120具有多個實體區(qū)塊(physicalblock)120-0120_N。一般而言,在閃存中,實體區(qū)塊為抹除的最小單位。亦即,每一實體區(qū)塊含有最小數(shù)目之一并被抹除的記憶單元。在本范例實施例中實體區(qū)塊120-0120-N分別具有128個頁(page),其中頁為程序化(program)的最小單元。換言的,頁為寫入數(shù)據(jù)或讀取數(shù)據(jù)的最小單元。每一頁包括使用者數(shù)據(jù)區(qū)D與冗余區(qū)R。使用者數(shù)據(jù)區(qū)D用以儲存使用者數(shù)據(jù),而冗余區(qū)R用以儲存系統(tǒng)的數(shù)據(jù)(例如,ECC碼、實體頁地址所對映的邏輯頁地址等)。在本范例實施例中,使用者數(shù)據(jù)區(qū)D為512字節(jié),而冗余區(qū)R為16字節(jié)。實體區(qū)塊120-0120-N會在邏輯上分組為系統(tǒng)區(qū)210、儲存區(qū)220與替代區(qū)230。分組為系統(tǒng)區(qū)210的實體區(qū)塊120-0實體區(qū)塊120-S是用以儲存系統(tǒng)數(shù)據(jù),此系統(tǒng)數(shù)據(jù)包括邏輯頁轉(zhuǎn)實體頁對映表140、實體頁轉(zhuǎn)邏輯頁對映表150、閃存芯片120的實體區(qū)塊數(shù)、每一實體區(qū)塊的頁地址數(shù)、記錄邏輯頁地址與實體頁地址的關(guān)系等。分組為儲存區(qū)220的實體區(qū)塊120-(S+l)實體區(qū)塊120-(S+D)是用以儲存主機(jī)系統(tǒng)200所寫入的數(shù)據(jù)。也就是說,閃存儲存系統(tǒng)100會使用分組為儲存區(qū)220的實體區(qū)塊120-(S+l)實體區(qū)塊120-(S+D)來實際地儲存主機(jī)系統(tǒng)200所寫入的數(shù)據(jù)。分組為替代區(qū)230中的實體區(qū)塊120-(S+D)實體區(qū)塊120-N是替代實體區(qū)塊。具體來說,閃存芯片120于出廠時會預(yù)留4%的實體區(qū)塊作為更換使用,也就是說,當(dāng)儲存區(qū)220中的實體區(qū)塊損毀時,預(yù)留于替代區(qū)230中的實體區(qū)塊可用以取代損壞的實體區(qū)塊。因此,倘若當(dāng)儲存區(qū)220中的實體區(qū)塊發(fā)生損毀且替代區(qū)230中仍存有可用的實體區(qū)塊時,閃存控制器130可從替代區(qū)230中提取可用的實體區(qū)塊來更換損毀的實體區(qū)塊。倘若當(dāng)儲存區(qū)220中的實體區(qū)塊發(fā)生損毀且替代區(qū)230中無可用的實體區(qū)塊時,閃存儲存系統(tǒng)100將會被宣告無法再使用。圖3是根據(jù)本發(fā)明范例實施例繪示閃存芯片中儲存區(qū)的概要示意圖。請參照圖3,儲存區(qū)220的每一實體區(qū)塊包括127個實體頁地址,因此儲存區(qū)220的實體區(qū)塊120-(S+1)實體區(qū)塊120-(S+D)共包括(127XD)個實體頁地址,其中實體頁地址0實體頁地址127屬于實體區(qū)塊120-(S+l),實體頁地址128實體頁地址254屬于實體區(qū)塊120-(S+2),實體頁地址255實體頁地址381屬于實體區(qū)塊120-(S+3),...,實體頁地址(127(D-l)+l)實體頁地址127D屬于實體區(qū)塊120-(S+D)。此外,在本發(fā)明范例實施例中,閃存統(tǒng)100100會提供對映儲存區(qū)220的實體頁地址的邏輯頁地址0邏輯頁地址L給主機(jī)系統(tǒng)200以進(jìn)行存取。在本發(fā)明范例實施例中,S、D與L為整數(shù),其是依據(jù)閃存芯片120的容量由設(shè)計者來設(shè)定,一般來說,實體頁地址的數(shù)目是大于邏輯頁地址的數(shù)目。請再參照圖1,閃存控制器130會執(zhí)行以硬件型式、軟件型式或固件型式實作的多個指令來與連接器110和閃存芯片120—起完成數(shù)據(jù)的儲存、讀取與抹除等運作。閃存控制器130包括微處理器單元130a、緩沖存儲器130b、主機(jī)接口單元130c與閃存塊130130d。微處理器單元130a用以控制閃存控制器130的運作,例如與緩沖存儲器130b、主機(jī)接口單元130c、閃存接口模塊130d和頁管理模塊130e等協(xié)同合作以對閃存儲存系統(tǒng)100進(jìn)行寫入、讀取、抹除等指令。緩沖存儲器130b是耦接至微處理器單元130a并且用以暫時地儲存系統(tǒng)數(shù)據(jù)或者主機(jī)系統(tǒng)200所讀取或?qū)懭氲臄?shù)據(jù)。在本范例實施例中,緩沖存儲器130b為靜態(tài)隨機(jī)存取內(nèi)存(staticrandomaccessmemory,SRAM)。然而,必須了解的是,本發(fā)明不限于此,動態(tài)隨機(jī)存取內(nèi)存(DynamicRandomAccessmemory,DRAM)、磁阻式內(nèi)存(MagnetoresistiveRandomAccessMemory,M廳)、相變化內(nèi)存(PhaseChangeRandomAccessMemory,PRAM)或其它適合的內(nèi)存亦可應(yīng)用于本發(fā)明。主機(jī)接口單元130c是耦接至微處理器單元130a并且用以接收與識別主機(jī)系統(tǒng)200所傳送的指令。也就是,主機(jī)系統(tǒng)200所傳送的指令與數(shù)據(jù)會透過主機(jī)接口單元130c來傳送至微處理器單元130a。在本范例實施例中,主機(jī)接口單元130c為SATA接口。然而,必須了解的是本發(fā)明不限于此,主機(jī)接口單元130c亦可以是USB接口、IEEE1394接口、PCIExpress接口、MS接口、匪C接口、SD接口、CF接口、IDE接口或其它適合的數(shù)據(jù)傳輸接口。特別是,主機(jī)接口單元130c會與連接器110相對應(yīng)。也就是,主機(jī)接口單元130c必須與連接器110互相搭配。閃存接口模塊130d是耦接至微處理器單元130a并且用以存取閃存芯片120。也就是,欲寫入至閃存芯片120的數(shù)據(jù)會經(jīng)由閃存接口模塊130d轉(zhuǎn)換為閃存芯片120所能接受的格式。具體來說,閃存接口模塊130d可支持閃存接口信號,例如,閃存接口信號包含芯片使能信號/CE,命令閂鎖信號/CLE,地址閂鎖信號/ALE,數(shù)據(jù)讀取控制信號/RE,數(shù)據(jù)寫入13控制信號/WE,寫入保護(hù)信號/WP,芯片狀態(tài)信號R/B及多個數(shù)據(jù)輸出入信號/10等。頁管理模塊130e是用以在微處理單元130a單元的控制下管理閃存芯片120。在本發(fā)明范例實施例中,頁管理模塊130e以一固件型式實作在閃存控制器130中。例如,將包括多個程序指令的頁管理模塊130e燒錄至一程序內(nèi)存(例如,只讀存儲器(ReadOnlyMemory,ROM))中并且將此程序內(nèi)存嵌入在閃存控制器130中,其中當(dāng)閃存儲存系統(tǒng)100運作時,微處理器單元130a會從此程序內(nèi)存中加載頁管理模塊130e來對閃存芯片120執(zhí)行抹除、讀取、寫入等運作。此外,在本發(fā)明另一范例實施例中,頁管理模塊130e亦可以是以軟件型式儲存于閃存芯片120的特定區(qū)域(例如,在閃存芯片120中的系統(tǒng)區(qū)210)中,其中當(dāng)閃存儲存系統(tǒng)100運作時,頁管理模塊130e會被加載至緩沖存儲器130b中并且由微處理器單元130a來執(zhí)行以進(jìn)行抹除、讀取、寫入等運作。再者,在本發(fā)明另一實施例中,頁管理模塊130e亦可以一硬件型式(例如,邏輯閘)直接地布局(layout)在閃存控制器130中。此外,雖未繪示于本范例實施例,但閃存控制器130亦可更包括錯誤校正模塊與電源管理模塊等用于控制閃存的一般功能模塊。邏輯頁轉(zhuǎn)實體頁對映表140是由微處理器單元130a經(jīng)由執(zhí)行頁管理模塊130e來操作以記錄邏輯頁地址0邏輯頁地址L所對映的實體頁地址,而實體頁轉(zhuǎn)邏輯頁對映表150是由微處理器單元130a經(jīng)由執(zhí)行頁管理模塊130e來操作以記錄實體頁地址0實體頁地址127D所對映的邏輯頁地址。例如,邏輯頁轉(zhuǎn)實體頁對映表140與實體頁轉(zhuǎn)邏輯頁對映表150是儲存在閃存芯片120的系統(tǒng)區(qū)210中,并且在閃存儲存系統(tǒng)100運作時,邏輯頁轉(zhuǎn)實體頁對映表140與實體頁轉(zhuǎn)邏輯頁對映表150會被加載至緩沖存儲器130b中并且由頁管理模塊130e來操作,并且會不定時地被回存至閃存芯片120的系統(tǒng)區(qū)210,以避免閃存儲存系統(tǒng)100不正常地斷電,而遺失其中已更新的內(nèi)容。具體來說,在本發(fā)明范例實施例中,當(dāng)主機(jī)系統(tǒng)200在任意邏輯頁地址0邏輯頁地址L中寫入數(shù)據(jù)時,微處理器單元130a所閃存控制器130所執(zhí)行的頁管理模塊130e的程序指令的程序指令會在實體區(qū)塊120-(S+1)實體區(qū)塊120-(S+D)中將數(shù)據(jù)依序地寫入至實體頁地址中。具體來說,當(dāng)頁管理模塊130e的程序指令的程序指令開始使用實體區(qū)塊120-(S+1)來儲存主機(jī)系統(tǒng)200欲寫入的數(shù)據(jù)時,不管主機(jī)系統(tǒng)200是寫入那個邏輯頁地址,頁管理模塊130e的程序指令的程序指令都會將數(shù)據(jù)依序地寫入至實體頁地址0實體頁地址127;而當(dāng)頁管理模塊130e的程序指令的程序指令開始使用實體區(qū)塊120-(S+2)來儲存主機(jī)系統(tǒng)200欲寫入的數(shù)據(jù)時,不管主機(jī)系統(tǒng)200是寫入那個邏輯頁地址,頁管理模塊130e的程序指令的程序指令都會將數(shù)據(jù)依序地寫入至實體頁地址128實體頁地址254。也就是說,在寫入主機(jī)系統(tǒng)200欲寫入的數(shù)據(jù)時,頁管理模塊130e的碼程序指令依序地使用一個實體區(qū)塊內(nèi)的實體頁地址來寫入數(shù)據(jù),并且當(dāng)此實體區(qū)塊內(nèi)的實體頁地址被使用完后才會再選擇另一個無數(shù)據(jù)的實體區(qū)塊,并且在新選擇的實體區(qū)塊的實體頁地址中繼續(xù)依序地寫入數(shù)據(jù)。特別是,在頁管理模塊130e的程序指令將數(shù)據(jù)寫入至實體頁地址后,頁管理模塊130e的程序指令會更新邏輯頁轉(zhuǎn)實體頁對映表140與實體頁轉(zhuǎn)邏輯頁對映表150以正確地記錄邏輯頁地址與實體頁地址的對映關(guān)系。值得一提的是,在本發(fā)明一范例實施例中,在頁管理模塊130e中更包括一可寫入實體頁指針(AvailablePhysicalPagePointer),用以指示下一個可寫入的實體頁地址,基此,當(dāng)閃存控制器130執(zhí)行頁管理模塊130e的程序指令來寫入主機(jī)系統(tǒng)200欲寫入的數(shù)據(jù)時,可依據(jù)可寫入實體頁指針的標(biāo)記依序地將數(shù)據(jù)寫入至閃存芯片120的實體頁地址中。此外,值得說明的是,在另一實施例中,當(dāng)閃存芯片120為多層記憶單元(MultilevelCell,MLC)NAND閃存芯片,且寫入方式是指定寫入實體區(qū)塊中的寫入速度較同一實體區(qū)塊中的上頁(u卯erpage)快的下頁(lowerpage)時,由于該等下頁的實體頁地址并非連續(xù),故頁管理模塊130e的程序指令會依據(jù)該實體區(qū)塊中的下頁的實體頁地址,由小至大地寫入數(shù)據(jù),而該可寫入實體頁指針也會依據(jù)下頁的實體頁地址由小至大的指示下一個可寫入的實體頁地址。此外,當(dāng)此實體頁指針欲從一實體區(qū)塊改指向另一實體區(qū)塊時,可在無數(shù)據(jù)狀態(tài)的實體區(qū)塊之中依該等實體區(qū)塊被抹除的次序選擇最早被抹除的實體區(qū)塊的最小實體頁地址為下一欲寫入數(shù)據(jù)的實體頁地址,其中該等實體區(qū)塊被抹除的次序可由一區(qū)塊抹除次序記錄(未繪示)得知。圖4A圖4C是根據(jù)本發(fā)明一范例實施例繪示邏輯頁轉(zhuǎn)實體頁對映表及實體頁轉(zhuǎn)邏輯頁對映表的范例。請參照圖4A,假設(shè)邏輯頁地址0邏輯頁地址L是分別地對映實體頁地址0實體頁地址L,也就是,實體頁地址0實體頁地址L是分別儲存主機(jī)系統(tǒng)200在邏輯頁地址0邏輯頁地址L中寫入的數(shù)據(jù)。因此,邏輯頁轉(zhuǎn)實體頁對映表140以及實體頁轉(zhuǎn)邏輯頁對映表150會記錄此些對映關(guān)系,并且此時可寫入實體頁指針會指向?qū)嶓w頁地址(L+l)。倘若主機(jī)系統(tǒng)200欲寫入數(shù)據(jù)至邏輯頁地址1時,頁管理模塊130e的程序指令會依據(jù)可寫入實體頁指針將主機(jī)系統(tǒng)200欲寫入的數(shù)據(jù)寫入至實體頁地址(L+l)中,并且將可寫入實體頁指針改為指向?qū)嶓w頁地址(L+2)。此時,頁管理模塊130e的程序指令會在邏輯頁轉(zhuǎn)實體頁對映表140中將邏輯頁地址1的對映更新為實體頁地址(L+l),并且在實體頁轉(zhuǎn)邏輯頁對映表150中將實體頁地址(L+l)的對映更新為邏輯頁地址1(如圖4B所示)。接著,倘若主機(jī)系統(tǒng)200欲寫入數(shù)據(jù)至邏輯頁地址129時,頁管理模塊130e的程序指令會依據(jù)可寫入實體頁指針將主機(jī)系統(tǒng)200欲寫入的數(shù)據(jù)寫入至實體頁地址(L+2)中,并且將可寫入實體頁指針改為指向?qū)嶓w頁地址(L+3)。此時,頁管理模塊130e的程序指令會在邏輯頁轉(zhuǎn)實體頁對映表140中將邏輯頁地址129的對映更新為實體頁地址(L+2),并且在實體頁轉(zhuǎn)邏輯頁對映表150中將實體頁地址(L+2)的對映更新為邏輯頁地址129(如圖4C所示)。圖5是根據(jù)本發(fā)明一范例實施例所繪示閃存儲存系統(tǒng)100的存取運作的流程圖。請參照圖5,當(dāng)閃存儲存系統(tǒng)100與主機(jī)系統(tǒng)200連接并激活時,在步驟S501中會提供多個邏輯頁地址以供主機(jī)系統(tǒng)200存取。接著,在步驟S503中會建立邏輯頁轉(zhuǎn)實體頁對映表140與實體頁轉(zhuǎn)邏輯頁對映表150。之后,在步驟S505中會待命并且判斷所接收的指令。倘若在步驟S505中接收到讀取指令時,則在步驟S507中會根據(jù)欲讀取的邏輯頁地址從邏輯頁轉(zhuǎn)實體頁對映表140中讀出對映的實體頁地址,并且在步驟S509中從對映的15實體頁地址讀取數(shù)據(jù)并且將此數(shù)據(jù)傳送給主機(jī)系統(tǒng)。之后,返回步驟S505待命。例如,當(dāng)在閃存芯片140的儲存區(qū)220是處于圖4的(b)的狀態(tài)并且主機(jī)系統(tǒng)200欲讀取邏輯頁地址1的數(shù)據(jù)時,頁管理模塊130e的程序指令會從邏輯頁轉(zhuǎn)實體頁對映表140中讀出對映邏輯頁地址1的實體頁地址為實體頁地址(L+l),并且從實體頁地址(L+l)中讀取數(shù)據(jù)并將數(shù)據(jù)傳送給主機(jī)系統(tǒng)200。倘若在步驟S505中接收到寫入指令時,則在步驟S511中會將數(shù)據(jù)寫入至可寫入實體頁指針?biāo)赶虻膶嶓w頁地址。然后,在步驟S513中會在邏輯頁轉(zhuǎn)實體頁對映表140中將欲寫入數(shù)據(jù)的邏輯頁地址所對映的實體頁地址更新為可寫入實體頁指針?biāo)赶虻膶嶓w頁地址。接著,在步驟S515中在實體頁轉(zhuǎn)邏輯頁對映表150中更新寫入此數(shù)據(jù)的實體頁地址所對映的邏輯頁地址,并且在步驟S517中將可寫入實體頁指針指向下一個可寫入的實體頁地址。最后,在步驟S519中判斷與記錄有效實體頁地址與無效的實體頁地址,之后返回步驟S505。例如,當(dāng)在閃存芯片140的儲存區(qū)220是處于圖4B的狀態(tài)并且主機(jī)系統(tǒng)200欲寫入數(shù)據(jù)至邏輯頁地址129時,頁管理模塊130e的程序指令會將數(shù)據(jù)寫入至實體頁地址(L+2)中并且如圖4C所示更新邏輯頁轉(zhuǎn)實體頁對映表140與實體頁轉(zhuǎn)邏輯頁對映表150。值得一提的是,在本發(fā)明范例實施例中,頁管理模塊130e的程序指令會通過比對邏輯頁轉(zhuǎn)實體頁對映表140以及實體頁轉(zhuǎn)邏輯頁對映表150中的記錄來判斷哪些實體頁地址為無效的實體頁地址與有效的實體頁地址,其中所謂無效的實體頁地址是指其中所儲存的數(shù)據(jù)為無效的舊數(shù)據(jù),而有效的實體頁地址是指其中所儲存的數(shù)據(jù)是對映目前邏輯頁地址的有效數(shù)據(jù)。例如,以圖4C為例,當(dāng)欲判斷實體頁地址0是否為有效的實體頁地址時,頁管理模塊130e的程序指令會從實體頁轉(zhuǎn)邏輯頁對映表150中讀出實體頁地址0是對映邏輯頁地址0,并且依據(jù)邏輯頁地址0從邏輯頁轉(zhuǎn)實體頁對映表140讀出邏輯頁地址0是對映實體頁地址0,因此實體頁地址0為有效的實體頁地址。另外,當(dāng)欲判斷實體頁地址1是否為有效的實體頁地址時,頁管理模塊130e的程序指令會從實體頁轉(zhuǎn)邏輯頁對映表150中讀出實體頁地址1是對映邏輯頁地址1,并且依據(jù)邏輯頁地址1從邏輯頁轉(zhuǎn)實體頁對映表140讀出邏輯頁地址1是對映實體頁地址(L+l),因此實體頁地址1為無效的實體頁地址。類似地,當(dāng)欲判斷實體頁地址129是否為有效的實體頁地址時,頁管理模塊130e的程序指令會從實體頁轉(zhuǎn)邏輯頁對映表150中讀出實體頁地址129是對映邏輯頁地址129,并且依據(jù)邏輯頁地址129從邏輯頁轉(zhuǎn)實體頁對映表140讀出邏輯頁地址129是對映實體頁地址(L+2),因此實體頁地址129為無效的實體頁地址。也就是說,頁管理模塊130e的程序指令會依據(jù)待判斷的實體頁地址透過實體頁轉(zhuǎn)邏輯頁對映表150與邏輯頁轉(zhuǎn)實體頁對映表140查詢待判斷的實體頁地址對映的邏輯頁地址所對映的實體頁地址,倘若待判斷的實體頁地址和所查詢的實體頁地址相符時,則此待判斷的實體頁地址為有效的實體頁地址,反的則為無效的實體頁地址。值得一提的是,由于閃存芯片120是以實體區(qū)塊作為抹除的最小單位,因此頁管理模塊130e的程序指令可透過上述比對將有效的實體頁地址中的數(shù)據(jù)進(jìn)行合并以釋放無效的實體頁地址來寫入新的數(shù)據(jù)。例如,頁管理模塊130e的程序指令可將至少一個實體區(qū)塊中有效實體頁地址中的數(shù)據(jù)復(fù)制到未寫入任何數(shù)據(jù)的實體區(qū)塊的實體頁地址中,并且將此實體區(qū)塊進(jìn)行抹除運作,由此可將分散的有效數(shù)據(jù)合并并且將無效的實體頁地址釋放出16來(以下稱為無效數(shù)據(jù)抹除程序)。值得一提的是,在進(jìn)行有效數(shù)據(jù)合并以釋放無效的實體頁地址后,頁管理模塊130e的程序指令會更新實體頁轉(zhuǎn)邏輯頁對映表150與邏輯頁轉(zhuǎn)實體頁對映表140中邏輯頁地址與實體頁地址的對映關(guān)系。在本發(fā)明一范例實施例中,控制器系統(tǒng)更包括實體區(qū)塊無效頁地址計數(shù)表170(如圖6的閃存儲存系統(tǒng)100'所示)以記錄每一實體區(qū)塊120-0140-(S+D)中無效的實體頁地址的數(shù)目,以作為將有效的實體頁地址中的數(shù)據(jù)進(jìn)行合并以釋放無效的實體頁地址的依據(jù)。類似地,是儲存在閃存芯片120的系統(tǒng)區(qū)210中,并且在閃存儲存系統(tǒng)100運作時,實體區(qū)塊無效頁地址計數(shù)表170會被加載至緩沖存儲器130b中并且由閃存控制器130執(zhí)行頁管理模塊130e的程序指令來操作,并且會不定時地被回存至閃存芯片120的系統(tǒng)區(qū)210,以避免閃存儲存系統(tǒng)100不正常地斷電,而遺失其中已更新的內(nèi)容。圖7是根據(jù)本發(fā)明一范例實施例繪示實體區(qū)塊無效頁地址計數(shù)表的范例,其中實體區(qū)塊無效頁地址計數(shù)表170是對應(yīng)圖4的范例。請參照圖7的(a)與圖4A,在對應(yīng)圖4A所示的狀態(tài)下,實體區(qū)塊無效頁地址計數(shù)表170會記錄每一實體區(qū)塊120-0120-(S+D)的無效實體頁地址的計數(shù)值為0。請參照圖7的(b)與圖4B,在對應(yīng)圖4B所示的狀態(tài)下,由于主機(jī)系統(tǒng)200欲寫入的邏輯頁地址1的數(shù)據(jù)被寫入至實體頁地址(L+l),因此頁管理模塊130e的程序指令會更新邏輯頁轉(zhuǎn)實體頁對映表140中邏輯頁地址1的對映以及實體頁轉(zhuǎn)邏輯頁對映表150中實體頁地址(L+l)的對映。特別是,在頁管理模塊130e的程序指令更新邏輯頁轉(zhuǎn)實體頁對映表140之前會讀出邏輯頁地址1原對映的實體頁地址為實體頁地址1并且在實體區(qū)塊無效頁地址計數(shù)表170中將關(guān)于實體頁地址1所屬的實體區(qū)塊120-(S+l)的無效實體頁地址的計數(shù)值加1。類似地,請參照圖7的(c)與圖4C,在對應(yīng)圖4C所示的狀態(tài)下,由于主機(jī)系統(tǒng)200欲寫入的邏輯頁地址129的數(shù)據(jù)被寫入至實體頁地址(L+2),因此頁管理模塊130e的程序指令會更新邏輯頁轉(zhuǎn)實體頁對映表140中邏輯頁地址129的對映以及實體頁轉(zhuǎn)邏輯頁對映表150中實體頁地址(L+2)的對映。特別是,在頁管理模塊130e的程序指令更新邏輯頁轉(zhuǎn)實體頁對映表140之前會讀出邏輯頁地址129原對映的實體頁地址為實體頁地址129并且在實體區(qū)塊無效頁地址計數(shù)表170中將關(guān)于實體頁地址129所屬的實體區(qū)塊120-(S+l)的無效實體頁地址的計數(shù)值加1。例如,在本發(fā)明一范例實施例中,當(dāng)進(jìn)行無效數(shù)據(jù)抹除程序時會依據(jù)實體區(qū)塊無效頁地址計數(shù)表170選擇存有最少數(shù)目的有效實體頁地址的至少一個實體區(qū)塊來進(jìn)行數(shù)據(jù)合并程序。值得一提的是,上述范例實施例是以建立實體區(qū)塊無效頁地址計數(shù)表170來計數(shù)實體區(qū)塊中無效的實體頁地址的數(shù)目。然而,在本發(fā)明另一實施例中,亦可以建立實體區(qū)塊有效頁地址計數(shù)表來計數(shù)實體區(qū)塊中有效的實體頁地址的數(shù)目,以在進(jìn)行無效數(shù)據(jù)抹除程序由此選擇有效數(shù)據(jù)數(shù)據(jù)最少的實體區(qū)塊來數(shù)據(jù)合并。此外,在本發(fā)明一范例實施例中,控制器系統(tǒng)更新包括無數(shù)據(jù)實體區(qū)塊管理表(未繪示)以記錄未寫入任何數(shù)據(jù)的實體區(qū)塊。也就是說,記錄在無數(shù)據(jù)實體區(qū)塊管理表中的實體區(qū)塊是已被抹除可供寫入數(shù)據(jù)的實體區(qū)塊。特別是,頁管理模塊130e的程序指令可依據(jù)無數(shù)據(jù)實體區(qū)塊管理表中的信息來更新可寫入實體頁指針。例如,在可寫入實體頁指17針已指向?qū)嶓w頁地址127D并執(zhí)行寫入指令時,頁管理模塊130e的程序指令會依據(jù)無數(shù)據(jù)實體區(qū)塊管理表中可寫入實體頁指針指向其中一個未寫入任何數(shù)據(jù)的實體區(qū)塊的第一個實體頁地址。特別是,如上所述當(dāng)進(jìn)行無效數(shù)據(jù)抹除程序中需要未寫入任何數(shù)據(jù)的實體區(qū)塊來寫入有效實體頁地址中的數(shù)據(jù),因此在本發(fā)明一范例實施例中,頁管理模塊130e的程序指令會依據(jù)無數(shù)據(jù)實體區(qū)塊管理表中判斷僅剩1個未寫入任何數(shù)據(jù)的實體區(qū)塊時,則會進(jìn)行無效數(shù)據(jù)抹除程序以釋放無效的實體頁地址。值得一提的是,本發(fā)明不限于在剩l個未寫入任何數(shù)據(jù)的實體區(qū)塊時進(jìn)行無效數(shù)據(jù)抹除。此外,在本發(fā)明另一范例實施例中,頁管理模塊130e的程序指令亦可根據(jù)實體區(qū)塊無效頁地址計數(shù)表170中的計數(shù)值判斷當(dāng)有至少一個實體區(qū)塊內(nèi)無效實體頁地址的比例超過一無效實體頁地址門檻值時,則進(jìn)行數(shù)據(jù)合并以釋放無效的實體頁地址的程序。在此,此無效實體頁地址門檻值是可由使用者自行設(shè)定,其中當(dāng)此無效實體頁地址門檻值越低時,則執(zhí)行數(shù)據(jù)合并程序的頻率越高,反之,則越低。在本發(fā)明一范例實施例中,此無效實體頁地址門檻值是設(shè)定為80%。另外,在本發(fā)明另一范例實施例中,頁管理模塊130e的程序指令亦可根據(jù)實體區(qū)塊無效頁地址計數(shù)表170中的計數(shù)值判斷當(dāng)有任一實體區(qū)塊內(nèi)無任何有效實體頁地址時,則將此無任何有效實體頁地址的實體區(qū)塊執(zhí)行抹除運作以釋放無效的實體頁地址,并且將此實體區(qū)塊記錄在無數(shù)據(jù)實體區(qū)塊管理表中。圖8是根據(jù)本發(fā)明一范例實施例所繪示閃存儲存系統(tǒng)100'的存取運作的流程圖。請參照圖8,當(dāng)閃存儲存系統(tǒng)100與主機(jī)系統(tǒng)200連接并激活時,在步驟S801中會提供多個邏輯頁地址以供主機(jī)系統(tǒng)200存取。接著,在步驟S803中會建立邏輯頁轉(zhuǎn)實體頁對映表140、實體頁轉(zhuǎn)邏輯頁對映表150與實體區(qū)塊無效頁地址計數(shù)表170。之后,在步驟S805中會待命并且判斷所接收的指令。倘若在步驟S805中接收到讀取指令時,則在步驟S807中會根據(jù)欲讀取的邏輯頁地址從邏輯頁轉(zhuǎn)實體頁對映表140讀出對映的實體頁地址,并且在步驟S809中從對映的實體頁地址讀取數(shù)據(jù)并且將此數(shù)據(jù)傳送給主機(jī)系統(tǒng)。之后,返回步驟S805待命。倘若在步驟S805中接收到寫入指令時,則在步驟S811中會將數(shù)據(jù)寫入至可寫入實體頁指針?biāo)赶虻膶嶓w頁地址。然后,在步驟S813中會在實體區(qū)塊無效頁地址計數(shù)表170中將欲寫入數(shù)據(jù)的邏輯頁地址目前所對映的實體區(qū)塊的無效實體頁地址的計數(shù)值加1。之后,在步驟S815中會在邏輯頁轉(zhuǎn)實體頁對映表140中將欲寫入數(shù)據(jù)的邏輯頁地址所對映的實體頁地址更新為可寫入實體頁指針?biāo)赶虻膶嶓w頁地址。接著,在步驟S817中在實體頁轉(zhuǎn)邏輯頁對映表150中更新寫入此數(shù)據(jù)的實體頁地址所對映的邏輯頁地址,并且在步驟S819中將可寫入實體頁指針指向下一個可寫入的實體頁地址。特別是在完成寫入動作之后,在步驟S821中會判斷未寫入數(shù)據(jù)的實體區(qū)塊的數(shù)目是否少于無數(shù)據(jù)實體區(qū)塊數(shù)門檻值(例如,如上所述,本范例實施例是設(shè)定為1)。倘若在步驟S821中判斷未寫入數(shù)據(jù)的實體區(qū)塊少于無數(shù)據(jù)實體區(qū)塊數(shù)門檻值時,則會執(zhí)行無效數(shù)據(jù)抹除程序。例如,在步驟S823中會依據(jù)實體區(qū)塊無效頁地址計數(shù)表170從已寫入數(shù)據(jù)的實體區(qū)塊中選擇2個實體區(qū)塊。例如,所選擇的2個實體區(qū)塊是已寫入數(shù)據(jù)的實體區(qū)塊之中存有最少數(shù)目的有效實體頁地址的2個實體區(qū)塊,并且在步驟S825中比對邏輯頁轉(zhuǎn)實體頁對映表140與實體頁轉(zhuǎn)邏輯頁對映表150以判斷所選擇的2個實體區(qū)塊中的有效實體頁地址。然后,在步驟S827中會從閃存芯片120中選擇1個未寫入數(shù)據(jù)的實體區(qū)塊,并且在步驟S829中將在步驟S825中所判斷的有效實體頁地址內(nèi)的數(shù)據(jù)復(fù)制到在步驟S827中所選擇的實體區(qū)塊的實體頁面地址中。接著,在步驟S831中將步驟S823中所選擇的2個實體區(qū)塊進(jìn)行抹除運作以釋放可用的儲存空間。最后,在步驟S833中更新邏輯頁轉(zhuǎn)實體頁對映表140、實體頁轉(zhuǎn)邏輯頁對映表150與實體區(qū)塊無效頁地址計數(shù)表170,而完成無效數(shù)據(jù)抹除程序并返回步驟S805待命。必須了解的是,雖然圖8是選擇已寫入數(shù)據(jù)的2個實體區(qū)塊以1個未寫入數(shù)據(jù)的實體區(qū)塊來進(jìn)行無效數(shù)據(jù)抹除程序,然而本發(fā)明不限于此,當(dāng)進(jìn)行無效數(shù)據(jù)抹除程序時可選擇1個或多個已寫入數(shù)據(jù)的實體區(qū)塊來進(jìn)行無效數(shù)據(jù)抹除,并且可選擇1個或多個未寫入數(shù)據(jù)的實體區(qū)塊來儲存所合并的有效數(shù)據(jù)。圖9是根據(jù)本發(fā)明另一范例實施例所繪示閃存儲存系統(tǒng)100'的存取運作的流程圖。i青參照圖9,步驟S901、S903、S905、S907、S909、S911、S913、S915、S917與S919是相同于步驟S801、S803、S805、S807、S809、S811、S813、S815、S817與S819,在此不再贅述。在步驟S921中,會依據(jù)實體區(qū)塊無效頁地址計數(shù)表170判斷是否有實體區(qū)塊內(nèi)無效實體頁地址的比例超過無效實體頁地址門檻值(例如,本范例實施例是設(shè)定80%)。倘若在步驟S921中判斷有至少1個實體區(qū)塊內(nèi)無效實體頁地址的比例超過無效實體頁地址門檻值時,則會執(zhí)行一無效數(shù)據(jù)抹除程序(例如,步驟S923S929)。在步驟S923中會比對邏輯頁轉(zhuǎn)實體頁對映表140與實體頁轉(zhuǎn)邏輯頁對映表150來判斷此實體區(qū)塊中的有效實體頁地址。然后,在步驟S925中會依據(jù)所判斷無效實體頁地址的比例超過無效實體頁地址門檻值的實體區(qū)塊數(shù)目從閃存芯片120中選擇至少1個未寫入數(shù)據(jù)的實體區(qū)塊,并且在步驟S927中將在步驟S923中所判斷的有效實體頁地址內(nèi)的數(shù)據(jù)復(fù)制到在步驟S925中所選擇的實體區(qū)塊的實體頁面地址中。接著,在步驟S927中將步驟S921中所判斷的實體區(qū)塊進(jìn)行抹除運作以釋放可用的儲存空間。最后,在步驟S929中更新邏輯頁轉(zhuǎn)實體頁對映表140、實體頁轉(zhuǎn)邏輯頁對映表150與實體區(qū)塊無效頁地址計數(shù)表170,而完成無效數(shù)據(jù)抹除程序并返回步驟S905待命。圖10是根據(jù)本發(fā)明另一范例實施例所繪示閃存儲存系統(tǒng)100'的存取運作的流程圖。i青參照圖IO,步驟S1001、S1003、S1005、S1007、S1009、S1011、S1013、S1015、S1017與S1019是相同于步驟S801、S803、S805、S807、S809、S811、S813、S815、S817與S819,在此不再贅述。在步驟S1021中,會依據(jù)實體區(qū)塊無效頁地址計數(shù)表170判斷是否存有任何其的實體頁地址皆為無效的實體區(qū)塊。倘若在步驟S1021中判斷存有實體頁地址皆為無效的實體區(qū)塊時,則在步驟S1023中會將實體頁地址皆為無效的實體區(qū)塊執(zhí)行抹除運作以釋放可用的儲存空間。最后,在步驟S1025中更新實體區(qū)塊無效頁地址計數(shù)表,而完成數(shù)據(jù)合并程序并返回步驟S1005待命。19必須了解的是,在上述圖5、圖8、圖9與圖IO中雖未繪示結(jié)束運作的步驟,然而此領(lǐng)域技術(shù)人員可輕易了解在閃存儲存系統(tǒng)停止運作此些流程會終止。此外,本范例實施例圖5、圖8、圖9與圖IO所述步驟的順序并非限定本發(fā)明,此領(lǐng)域熟知技藝者可根據(jù)本發(fā)明的精神輕易地以非本范例實施例所述的順序來實作本發(fā)明。綜上所述,本發(fā)明使用邏輯頁轉(zhuǎn)實體頁對映表與實體頁轉(zhuǎn)邏輯頁對映表來記錄邏輯頁地址與實體頁地址的對映關(guān)系,由此可以頁為基礎(chǔ)對閃存芯片進(jìn)行寫入,可有效地提升閃存儲存系統(tǒng)的效能。此外,透過比對邏輯頁轉(zhuǎn)實體頁對映表與實體頁轉(zhuǎn)邏輯頁對映表即可判定無效的實體頁地址與有效的實體頁地址而進(jìn)行數(shù)據(jù)合并以釋放無效的實體頁地址。再者,本發(fā)明使用實體區(qū)塊無效頁地址計數(shù)表來記錄每一實體區(qū)塊內(nèi)無效實體頁地址的數(shù)目,由此可快速地判斷能夠在抹除后釋放較多空間的實體區(qū)塊,以提升閃存儲存系統(tǒng)的效能。雖然本發(fā)明已以實施例揭露如上,然其并非用以限定本發(fā)明,任何所屬
技術(shù)領(lǐng)域:
中具有通常知識者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的更動與潤飾,故本發(fā)明的保護(hù)范圍當(dāng)以權(quán)利要求所界定的為準(zhǔn)。權(quán)利要求一種數(shù)據(jù)存取方法,其由一閃存控制器執(zhí)行以在至少一閃存芯片的多個實體區(qū)塊的多個實體頁地址中存取數(shù)據(jù),該數(shù)據(jù)存取方法包括提供多個邏輯頁地址,以供一主機(jī)系統(tǒng)存??;建立一邏輯頁轉(zhuǎn)實體頁對映表以分別地記錄該些邏輯頁地址所對映的該些實體頁地址;建立一實體頁轉(zhuǎn)邏輯頁對映表以分別地記錄該些實體頁地址所對映的該些邏輯頁地址;從該主機(jī)系統(tǒng)接收一欲寫入數(shù)據(jù)及一欲寫入邏輯頁地址,寫入該欲寫入數(shù)據(jù)于一實體頁地址,并在該邏輯頁轉(zhuǎn)實體頁對映表中更新該欲寫入邏輯頁地址是對映寫入該數(shù)據(jù)的實體頁地址,并且在該實體頁轉(zhuǎn)邏輯頁對映表中更新寫入該欲寫入數(shù)據(jù)的實體頁地址是對映該欲寫入邏輯頁地址;以及比對該邏輯頁轉(zhuǎn)實體頁對映表與該實體頁轉(zhuǎn)邏輯頁對映表判斷已寫入數(shù)據(jù)的該些實體頁地址之中無效的該些實體頁地址與有效的該些實體頁地址。2.如權(quán)利要求1所述的數(shù)據(jù)存取方法,其特征在于,更包括建立一實體區(qū)塊無效頁地址計數(shù)表以記錄每一該些實體區(qū)塊中無效的該些實體頁地址的數(shù)目;以及在該實體區(qū)塊無效頁地址計數(shù)表中更新在該欲寫入邏輯頁地址原始對映的實體頁地址中無效的該些實體頁地址的數(shù)目。3.如權(quán)利要求1所述的數(shù)據(jù)存取方法,其特征在于,更包括建立一實體區(qū)塊有效頁地址計數(shù)表以記錄每一該些實體區(qū)塊中有效的該些實體頁地址的數(shù)目;以及在該實體區(qū)塊有效頁地址計數(shù)表中更新在該欲寫入邏輯頁地址原始對映的實體頁地址中有效的該些實體頁地址的數(shù)目。4.如權(quán)利要求2所述的數(shù)據(jù)存取方法,其特征在于,更包括判斷未寫入數(shù)據(jù)的該些實體區(qū)塊的數(shù)目是否少于一無數(shù)據(jù)實體區(qū)塊數(shù)門檻值,其中當(dāng)未寫入數(shù)據(jù)的該些實體區(qū)塊的數(shù)目少于該無數(shù)據(jù)實體區(qū)塊數(shù)門檻值時,則執(zhí)行一無效數(shù)據(jù)抹除程序,該無效數(shù)據(jù)抹除程序包括依據(jù)該實體區(qū)塊無效頁地址計數(shù)表從已寫入數(shù)據(jù)的該些實體區(qū)塊之中選擇至少一第一實體區(qū)塊;從未寫入數(shù)據(jù)的該些實體區(qū)塊之中選擇至少一第二實體區(qū)塊;將該至少一第一實體區(qū)塊中有效的該些實體頁地址中的數(shù)據(jù)復(fù)制至屬于該至少一第二實體區(qū)塊的該些實體頁地址中;更新該邏輯頁轉(zhuǎn)實體頁對映表、該實體頁轉(zhuǎn)邏輯頁對映表與該實體區(qū)塊無效頁地址計數(shù)表;以及抹除該至少一第一實體區(qū)塊。5.如權(quán)利要求4所述的數(shù)據(jù)存取方法,其特征在于,在已寫入數(shù)據(jù)的該些實體區(qū)塊之中該至少一第一實體區(qū)塊存有最少數(shù)目的有效的該些實體頁地址。6.如權(quán)利要求4所述的數(shù)據(jù)存取方法,其特征在于,更包括建立一無數(shù)據(jù)實體區(qū)塊管理表,以記錄未寫入數(shù)據(jù)的該些實體區(qū)塊。7.如權(quán)利要求1所述的數(shù)據(jù)存取方法,其特征在于,比對該邏輯頁轉(zhuǎn)實體頁對映表與該實體頁轉(zhuǎn)邏輯頁對映表判斷已寫入數(shù)據(jù)的該些實體頁地址之中無效的該些實體頁地址與有效的該些實體頁地址的步驟包括從該些實體頁面地址之中選擇一待判斷實體頁地址;依據(jù)該實體頁轉(zhuǎn)邏輯頁對映表查詢該待判斷實體頁地址對映的邏輯頁地址;依據(jù)該邏輯頁轉(zhuǎn)實體頁對映表查詢所對映的邏輯頁地址對映的實體頁地址;判斷所查詢的實體頁地址是否相同于該待測實體頁地址,其中倘若所查詢的實體頁地址相同于該待測實體頁地址,則該待判斷實體頁地址為有效,并且倘若所查詢的實體頁地址不同于該待測實體頁地址,則該待判斷實體頁地址為無效。8.如權(quán)利要求2所述的數(shù)據(jù)存取方法,其特征在于,更包括依據(jù)該實體區(qū)塊無效頁地址計數(shù)表判斷在已寫入數(shù)據(jù)的該些實體區(qū)塊的中至少一第一實體區(qū)塊內(nèi)無效的該些實體頁地址占其所有該些實體頁地址的比例是否超過一無效實體頁地址門檻值,其中當(dāng)該至少一第一實體區(qū)塊內(nèi)無效的該些實體頁地址占其所有該些實體頁地址的比例超過該無效實體頁地址門檻值時,則執(zhí)行一無效數(shù)據(jù)抹除程序,該無效數(shù)據(jù)抹除程序包括從未寫入數(shù)據(jù)的該些實體區(qū)塊之中選擇至少一第二實體區(qū)塊;將該至少一第一實體區(qū)塊中有效的該些實體頁地址中的數(shù)據(jù)復(fù)制至屬于該至少一第二實體區(qū)塊的該些實體頁地址中;更新該邏輯頁轉(zhuǎn)實體頁對映表、該實體頁轉(zhuǎn)邏輯頁對映表與該實體區(qū)塊無效頁地址計數(shù)表;以及抹除該至少一第一實體區(qū)塊。9.如權(quán)利要求2所述的數(shù)據(jù)存取方法,其特征在于,更包括依據(jù)該實體區(qū)塊無效頁地址計數(shù)表判斷在已寫入數(shù)據(jù)的該些實體區(qū)塊之中至少一第一實體區(qū)塊內(nèi)是否無任何有效的該些實體頁地址,其中當(dāng)該至少一第一實體區(qū)塊內(nèi)無有效的該些實體頁地址時,則抹除該至少一第一實體區(qū)塊并且更新該實體區(qū)塊無效頁地址計數(shù)表。10.如權(quán)利要求1所述的數(shù)據(jù)存取方法,其特征在于,更包括建立一可寫入實體頁指針,以標(biāo)記下一個可寫入的該些實體頁地址。11.一種控制器系統(tǒng),適用在至少一閃存芯片的多個實體區(qū)塊的多個實體頁地址中寫入數(shù)據(jù),該控制器系統(tǒng)包括一主機(jī)接口單元,用以連接一主機(jī)系統(tǒng);一微處理器單元,用以從該主機(jī)系統(tǒng)接收一欲寫入數(shù)據(jù)及一欲寫入邏輯頁地址;一閃存接口單元,用以連接該至少一閃存芯片;一緩沖存儲器,用以暫存數(shù)據(jù);一邏輯頁轉(zhuǎn)實體頁對映表,用以記錄該些邏輯頁地址所對映的該些實體頁地址;一實體頁轉(zhuǎn)邏輯頁對映表,用以記錄該些實體頁地址所對映的該些邏輯頁地址;以及一頁管理模塊,用以寫入該欲寫入數(shù)據(jù)于一實體頁地址,并在該邏輯頁轉(zhuǎn)實體頁對映表中更新該欲寫入邏輯頁地址是對映寫入該數(shù)據(jù)的實體頁地址,并且在該實體頁轉(zhuǎn)邏輯頁對映表中更新寫入該欲寫入數(shù)據(jù)的實體頁地址是對映該欲寫入邏輯頁地址,其中該頁管理模塊比對該邏輯頁轉(zhuǎn)實體頁對映表與該實體頁轉(zhuǎn)邏輯頁對映表來判斷已寫入數(shù)據(jù)的該些實體頁地址之中無效的該些實體頁地址與有效的該些實體頁地址。12.如權(quán)利要求11所述的控制器系統(tǒng),其特征在于,更包括一實體區(qū)塊無效頁地址計數(shù)表,用以記錄每一該些實體區(qū)塊中無效的該些實體頁地址的數(shù)目,其中該頁管理模塊更用以在該實體區(qū)塊無效頁地址計數(shù)表中更新在該欲寫入邏輯頁地址原始對映的實體頁地址中無效的該些實體頁地址的數(shù)目。13.如權(quán)利要求11所述的控制器系統(tǒng),其特征在于,更包括一實體區(qū)塊有效頁地址計數(shù)表,用以記錄每一該些實體區(qū)塊中有效的該些實體頁地址的數(shù)目,其中該頁管理模塊更用以在該實體區(qū)塊有效頁地址計數(shù)表中更新在該欲寫入邏輯頁地址原始對映的實體頁地址中有效的該些實體頁地址的數(shù)目。14.如權(quán)利要求12所述的控制器系統(tǒng),其特征在于,該頁管理模塊更用以判斷未寫入數(shù)據(jù)的該些實體區(qū)塊的數(shù)目是否少于一無數(shù)據(jù)實體區(qū)塊數(shù)門檻值,其中當(dāng)未寫入數(shù)據(jù)的該些實體區(qū)塊的數(shù)目少于該無數(shù)據(jù)實體區(qū)塊數(shù)門檻值時,該頁管理模塊更用以依據(jù)該實體區(qū)塊無效頁地址計數(shù)表從已寫入數(shù)據(jù)的該些實體區(qū)塊之中選擇至少一第一實體區(qū)塊,從未寫入數(shù)據(jù)的該些實體區(qū)塊之中選擇至少一第二實體區(qū)塊,將該至少一第一實體區(qū)塊中有效的該些實體頁地址中的數(shù)據(jù)復(fù)制至屬于該至少一第二實體區(qū)塊的該些實體頁地址中,更新該邏輯頁轉(zhuǎn)實體頁對映表、該實體頁轉(zhuǎn)邏輯頁對映表與該實體區(qū)塊無效頁地址計數(shù)表,并且抹除該至少一第一實體區(qū)塊。15.如權(quán)利要求14所述的閃存控制器,其特征在于,在已寫入數(shù)據(jù)的該些實體區(qū)塊之中該至少一第一實體區(qū)塊存有最少數(shù)目的有效的該些實體頁地址。16.如權(quán)利要求14所述的控制器系統(tǒng),其特征在于,更包括一無數(shù)據(jù)實體區(qū)塊管理表,用以記錄未寫入數(shù)據(jù)的該些實體區(qū)塊。17.如權(quán)利要求11所述的閃存控制器,其特征在于,該頁管理模塊是通過從該些實體頁面地址之中選擇一待判斷實體頁地址,依據(jù)該實體頁轉(zhuǎn)邏輯頁對映表查詢該待判斷實體頁地址對映的邏輯頁地址,依據(jù)該邏輯頁轉(zhuǎn)實體頁對映表查詢所對映的邏輯頁地址對映的實體頁地址,以及判斷所查詢的實體頁地址是否相同于該待測實體頁地址來判斷無效的該些實體頁地址與有效的該些實體頁地址,其中倘若所查詢的實體頁地址相同于該待測實體頁地址,則該待判斷實體頁地址為有效,并且倘若所查詢的實體頁地址不同于該待測實體頁地址,則該待判斷實體頁地址為無效。18.如權(quán)利要求12所述的控制器系統(tǒng),其特征在于,該頁管理模塊更用以依據(jù)該實體區(qū)塊無效頁地址計數(shù)表判斷在已寫入數(shù)據(jù)的該些實體區(qū)塊之中至少一第一實體區(qū)塊內(nèi)無效的該些實體頁地址占其所有該些實體頁地址的比例是否超過一無效實體頁地址門檻值,其中當(dāng)該至少一第一實體區(qū)塊內(nèi)無效的該些實體頁地址占其所有該些實體頁地址的比例超過該無效實體頁地址門檻值時,該頁管理模塊更用以從未寫入數(shù)據(jù)的該些實體區(qū)塊之中選擇至少一第二實體區(qū)塊,將該至少一第一實體區(qū)塊中有效的該些實體頁地址中的數(shù)據(jù)復(fù)制至屬于該至少一第二實體區(qū)塊的該些實體頁地址中,更新該邏輯頁轉(zhuǎn)實體頁對映表、該實體頁轉(zhuǎn)邏輯頁對映表與該實體區(qū)塊無效頁地址計數(shù)表,并且抹除該至少一第一實體區(qū)塊。19.如權(quán)利要求12所述的控制器系統(tǒng),其特征在于,該頁管理模塊更用以依據(jù)該實體區(qū)塊無效頁地址計數(shù)表判斷在已寫入數(shù)據(jù)的該些實體區(qū)塊之中至少一第一實體區(qū)塊內(nèi)是否無任何有效的該些實體頁地址,其中當(dāng)該至少一第一實體區(qū)塊內(nèi)無有效的該些實體頁地址時,該頁管理模塊更用以抹除該至少一第一實體區(qū)塊并且更新該實體區(qū)塊無效頁地址計數(shù)表。20.如權(quán)利要求11所述的控制器系統(tǒng),其特征在于,更包括一可寫入實體頁指針,用以標(biāo)記下一個可寫入的該些實體頁地址。21.—種閃存儲存系統(tǒng),包括多個實體頁地址,其中該些實體頁地址屬于多個實體區(qū)塊;一連接器,用以連接一主機(jī)系統(tǒng);一邏輯頁轉(zhuǎn)實體頁對映表,用以記錄該些邏輯頁地址所對映的該些實體頁地址;一實體頁轉(zhuǎn)邏輯頁對映表,用以記錄該些實體頁地址所對映的該些邏輯頁地址;以及一閃存控制器,電性連接至該些實體頁地址與該連接器,并且用以從該主機(jī)系統(tǒng)接收一欲寫入數(shù)據(jù)及一欲寫入邏輯頁地址,其中該閃存控制器更用以寫入該欲寫入數(shù)據(jù)于一實體頁地址,并在該邏輯頁轉(zhuǎn)實體頁對映表中更新該欲寫入邏輯頁地址是對映寫入該數(shù)據(jù)的實體頁地址,并且在該實體頁轉(zhuǎn)邏輯頁對映表中更新寫入該欲寫入數(shù)據(jù)的實體頁地址是對映該欲寫入邏輯頁地址,其中該閃存控制器比對該邏輯頁轉(zhuǎn)實體頁對映表與該實體頁轉(zhuǎn)邏輯頁對映表來判斷已寫入數(shù)據(jù)的該些實體頁地址之中無效的該些實體頁地址與有效的該些實體頁地址。22.如權(quán)利要求21所述的閃存儲存系統(tǒng),其特征在于,更包括一實體區(qū)塊無效頁地址計數(shù)表,用以記錄每一該些實體區(qū)塊中無效的該些實體頁地址的數(shù)目,其中該閃存控制器更用以在該實體區(qū)塊無效頁地址計數(shù)表中更新在該欲寫入邏輯頁地址原始對映的實體頁地址中無效的該些實體頁地址的數(shù)目。23.如權(quán)利要求21所述的閃存儲存系統(tǒng),其特征在于,更包括一實體區(qū)塊有效頁地址計數(shù)表,用以記錄每一該些實體區(qū)塊中有效的該些實體頁地址的數(shù)目,其中該閃存控制器更用以在該實體區(qū)塊有效頁地址計數(shù)表中更新在該欲寫入邏輯頁地址原始對映的實體頁地址中有效的該些實體頁地址的數(shù)目。24.如權(quán)利要求22所述的閃存儲存系統(tǒng),其特征在于,該閃存控制器更用以判斷未寫入數(shù)據(jù)的該些實體區(qū)塊的數(shù)目是否少于一無數(shù)據(jù)實體區(qū)塊數(shù)門檻值,其中當(dāng)未寫入數(shù)據(jù)的該些實體區(qū)塊的數(shù)目少于該無數(shù)據(jù)實體區(qū)塊數(shù)門檻值時,該閃存控制器更用以依據(jù)該實體區(qū)塊無效頁地址計數(shù)表從已寫入數(shù)據(jù)的該些實體區(qū)塊之中選擇至少一第一實體區(qū)塊,從未寫入數(shù)據(jù)的該些實體區(qū)塊之中選擇至少一第二實體區(qū)塊,將該至少一第一實體區(qū)塊中有效的該些實體頁地址中的數(shù)據(jù)復(fù)制至屬于該至少一第二實體區(qū)塊的該些實體頁地址中,更新該邏輯頁轉(zhuǎn)實體頁對映表、該實體頁轉(zhuǎn)邏輯頁對映表與該實體區(qū)塊無效頁地址計數(shù)表,并且抹除該至少一第一實體區(qū)塊。25.如權(quán)利要求21所述的閃存儲存系統(tǒng),其特征在于,該閃存控制器是通過從該些實體頁面地址之中選擇一待判斷實體頁地址,依據(jù)該實體頁轉(zhuǎn)邏輯頁對映表查詢該待判斷實體頁地址對映的邏輯頁地址,依據(jù)該邏輯頁轉(zhuǎn)實體頁對映表查詢所對映的邏輯頁地址對映的實體頁地址,以及判斷所查詢的實體頁地址是否相同于該待測實體頁地址來判斷無效的該些實體頁地址與有效的該些實體頁地址,其中倘若所查詢的實體頁地址相同于該待測實體頁地址,則該待判斷實體頁地址為有效,并且倘若所查詢的實體頁地址不同于該待測實體頁地址,則該待判斷實體頁地址為無效。全文摘要本發(fā)明公開了一種閃存數(shù)據(jù)的存取方法及其儲存系統(tǒng)與控制系統(tǒng),用以在閃存芯片的多個實體區(qū)塊的多個實體頁地址中寫入數(shù)據(jù)。此數(shù)據(jù)存取方法包括提供主機(jī)系統(tǒng)多個邏輯頁地址,建立邏輯頁轉(zhuǎn)實體頁對映表與實體頁轉(zhuǎn)邏輯頁對映表以記錄邏輯頁地址與實體頁地址的對映。此數(shù)據(jù)存取方法也包括當(dāng)主機(jī)系統(tǒng)寫入數(shù)據(jù)至邏輯頁地址時,在實體頁地址中寫入數(shù)據(jù),并且更新邏輯頁轉(zhuǎn)實體頁對映表與實體頁轉(zhuǎn)邏輯頁對映表。此數(shù)據(jù)存取方法亦包括比對邏輯頁轉(zhuǎn)實體頁對映表與實體頁轉(zhuǎn)邏輯頁對映表來判斷已寫入數(shù)據(jù)的實體頁地址之中無效的實體頁地址與有效的實體頁地址。文檔編號G06F12/08GK101788955SQ20091000987公開日2010年7月28日申請日期2009年1月23日優(yōu)先權(quán)日2009年1月23日發(fā)明者朱健華申請人:群聯(lián)電子股份有限公司