TWI413931B - 快閃記憶體資料之存取方法及其儲存系統與控制系統 - Google Patents
快閃記憶體資料之存取方法及其儲存系統與控制系統 Download PDFInfo
- Publication number
- TWI413931B TWI413931B TW098101405A TW98101405A TWI413931B TW I413931 B TWI413931 B TW I413931B TW 098101405 A TW098101405 A TW 098101405A TW 98101405 A TW98101405 A TW 98101405A TW I413931 B TWI413931 B TW I413931B
- Authority
- TW
- Taiwan
- Prior art keywords
- physical
- page
- data
- page address
- address
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
Description
本發明是有關於一種用於快閃記憶體的資料存取方法及使用此方法的快閃記憶體儲存系統與快閃記憶體控制器。
數位相機、手機相機與MP3在這幾年來的成長十分迅速,使得消費者對儲存媒體的需求也急速增加。由於快閃記憶體(Flash Memory)具有資料非揮發性、省電、體積小與無機械結構等的特性,適合可攜式應用,最適合使用於這類可攜式由電池供電的產品上。固態硬碟就是一種以NAND快閃記憶體作為儲存媒體的儲存裝置。
一般來說,快閃記憶體儲存系統的快閃記憶體晶片(chip)會劃分為多個實體區塊,其中實體區塊更劃分為多個頁,而實體區塊是快閃記憶體的抹除單位並且頁是快閃記憶體的寫入單位。由於在程式化快閃記憶體之記憶胞時,僅能執行單向的程式化(即,僅能將記憶胞的值由1程式化為0),因此無法對已程式化的頁(即,存有舊資料的頁)直接進行寫入,而是必須先將此頁抹除後方可重新程式化。特別是,由於快閃記憶體的抹除是以實體區塊為單位,因此當欲將存有舊資料的頁執行抹除運作時,必須對此頁所屬的整個實體區塊進行抹除。因此,傳統上快閃記憶體的寫入機制會以實體區塊為基礎來進行。例如,在傳統寫入
方法中會將此些實體區塊會界定為資料區(data area)與備用區(spare area),其中歸類為資料區的實體區塊中會儲存由寫入指令所寫入的有效資料,而備用區中的實體區塊是用以在執行寫入指令時替換資料區中的實體區塊。具體來說,當快閃記憶體儲存系統接受到主機系統的寫入指令而欲對資料區的實體區塊進行寫入時,快閃記憶體儲存系統會從備用區中提取實體區塊並且將在資料區中欲更新之實體區塊中的有效舊資料與欲寫入的新資料寫入至從備用區中提取的實體區塊並且將已寫入新資料的實體區塊關聯為資料區,並且將原本資料區的實體區塊進行抹除並關聯為備用區。為了能夠讓主機系統能夠順利地存取以輪替方式儲存資料的實體區塊,快閃記憶體儲存系統會配置邏輯區塊以供主機系統進行存取,其中邏輯區塊是根據實體區塊以一個或多個實體區塊的大小來配置。也就是說,快閃記憶體儲存系統會建立邏輯區塊-實體區塊對映表(logical block-physical block mapping table),並且在此表中記錄與更新邏輯區塊與資料區的實體區塊之間的對映關係來反映實體區塊的輪替,所以主機系統僅需要針對所提供邏輯區塊進行存取而快閃記憶體儲存系統會依據邏輯區塊-實體區塊對映表來對所對映的實體區塊進行實際地讀取或寫入資料。
因此當主機系統僅更新一個邏輯區塊中的一部分資料時,上述資料存取方法除了寫入新資料的動作之外還必須包括搬移實體區塊內之有效舊資料的動作。特別是,當更
新的資料量越小,致使所需要搬移的有效舊資料量越多時,完成上述寫入動作的所需時間會大幅的增加。特別是,目前電腦發展的趨勢已逐漸將快閃記憶體(即,固態硬碟)作為電腦系統的主硬碟,同時電腦作業系統具有頻繁地更新少量資料的特性,因此快閃記憶體晶片的寫入速度將嚴重影響整體電腦系統的運作效率。因此,有需要發展一套可減少資料搬移的資料存取方法,以提升寫入資料至快閃記憶體的速度。
本發明提供一種資料存取方法,其能夠在寫入資料至快閃記憶體晶片時減少資料搬移動作,進而提升快閃記憶體的資料寫入速度。
本發明提供一種控制器系統,其能夠在寫入資料至快閃記憶體晶片時減少資料搬移動作,進而提升快閃記憶體的資料寫入速度。
本發明提供一種快閃記憶體儲存系統,其在寫入資料時可減少資料搬移動作,進而提升快閃記憶體的資料寫入速度。
本發明提出一種資料存取方法,其是由一快閃記憶體控制器執行以在至少一快閃記憶體晶片的多個實體區塊的多個實體頁位址(physical page address)中寫入資料。此資料存取方法包括提供主機系統多個邏輯頁位址(logical page address),建立邏輯頁轉實體頁對映表(logical page to
physical page mapping table)以分別地記錄邏輯頁位址所對映的實體頁位址,以及建立實體頁轉邏輯頁對映表(physical page to logical page mapping table)以分別地記錄實體頁位址所對映的邏輯頁位址。此資料存取方法也包括:從此主機系統接收一欲寫入資料及一欲寫入邏輯頁位址;寫入此欲寫入資料於一實體頁位址;在上述邏輯頁轉實體頁對映表中更新此欲寫入邏輯頁位址是對映寫入此資料的實體頁位址;並且在上述實體頁轉邏輯頁對映表中更新寫入此欲寫入資料的實體頁位址是對映此欲寫入邏輯頁位址。此資料存取方法亦包括比對邏輯頁轉實體頁對映表與實體頁轉邏輯頁對映表來判斷已寫入資料的實體頁位址之中無效的實體頁位址與有效的實體頁位址。
在本發明之一實施例中,上述之資料存取方法更包括建立實體區塊無效頁位址計數表以記錄每一實體區塊中無效的實體頁位址的數目,以及在此實體區塊無效頁位址計數表中更新在上述欲寫入邏輯頁位址原始對映的實體頁位址中無效的實體頁位址的數目。
在本發明之一實施例中,上述之資料存取方法更包括建立實體區塊有效頁位址計數表以記錄每一實體區塊中有效的實體頁位址的數目,以及在此實體區塊有效頁位址計數表中更新在上述欲寫入邏輯頁位址原始對映的實體頁位址中有效的實體頁位址的數目。
在本發明之一實施例中,上述之資料存取方法更包括判斷未寫入資料的該些實體區塊的數目是否少於一無資料
實體區塊數門檻值,其中當未寫入資料的實體區塊的數目少於此無資料實體區塊數門檻值時,則執行一無效資料抹除程序,其中此無效資料抹除程序包括:依據上述實體區塊無效頁位址計數表從已寫入資料的實體區塊之中選擇至少一第一實體區塊;從未寫入資料的實體區塊之中選擇至少一第二實體區塊;將此第一實體區塊中有效的實體頁位址中的資料複製至屬於第二實體區塊的實體頁位址中;更新上述邏輯頁轉實體頁對映表、實體頁轉邏輯頁對映表與實體區塊無效頁位址計數表;以及抹除此第一實體區塊。
在本發明之一實施例中,其中在已寫入資料的實體區塊之中上述第一實體區塊存有最少數目之有效的實體頁位址。
在本發明之一實施例中,上述之資料存取方法更包括建立一無資料實體區塊管理表,以記錄未寫入資料的實體區塊。
在本發明之一實施例中,上述之比對該邏輯頁轉實體頁對映表與該實體頁轉邏輯頁對映表判斷已寫入資料的該些實體頁位址之中無效的該些實體頁位址與有效的該些實體頁位址的步驟包括:從實體頁面位址之中選擇一待判斷實體頁位址;依據實體頁轉邏輯頁對映表查詢待判斷實體頁位址對映的邏輯頁位址;依據邏輯頁轉實體頁對映表查詢所對映的邏輯頁位址對映的實體頁位址;判斷所查詢的實體頁位址是否相同於待測實體頁位址。在此判斷中倘若所查詢的實體頁位址相同於待測實體頁位址,則待判斷實
體頁位址為有效,並且倘若所查詢的實體頁位址不同於待測實體頁位址,則待判斷實體頁位址為無效。
在本發明之一實施例中,上述之資料存取方法更包括依據上述實體區塊無效頁位址計數表判斷在已寫入資料的實體區塊之中至少一第一實體區塊內無效的實體頁位址佔其所有實體頁位址的比例是否超過一無效實體頁位址門檻值,其中當此第一實體區塊內無效的實體頁位址佔其所有實體頁位址的比例超過此無效實體頁位址門檻值時,則執行一無效資料抹除程序,其中此無效資料抹除程序包括:從未寫入資料的實體區塊之中選擇至少一第二實體區塊;將此第一實體區塊中有效的該些實體頁位址中的資料複製至屬於此第二實體區塊的實體頁位址中;更新上述邏輯頁轉實體頁對映表、實體頁轉邏輯頁對映表與實體區塊無效頁位址計數表;以及抹除此第一實體區塊。
在本發明之一實施例中,上述之資料存取方法更包括依據上述實體區塊無效頁位址計數表判斷在已寫入資料的實體區塊之中至少一第一實體區塊內是否無任何有效的該些實體頁位址,其中當此第一實體區塊內無有效的實體頁位址時,則抹除第一實體區塊並且更新上述實體區塊無效頁位址計數表。
在本發明之一實施例中,上述之資料存取方法更包括建立一可寫入實體頁指標,以標記下一個可寫入的實體頁位址。
本發明提出一種控制器系統,適用在至少一快閃記憶
體晶片的多個實體區塊的多個實體頁位址中寫入資料,此控制器系統包括微處理器單元、用以連接主機系統的主機介面單元、用以連接快閃記憶體晶片的快閃記憶體介面單元,用以暫存資料的緩衝記憶體、邏輯頁轉實體頁對映表、實體頁轉邏輯頁對映表以及頁管理模組。微處理器單元用以從主機系統接收一欲寫入資料及一欲寫入邏輯頁位址,邏輯頁轉實體頁對映表是用以記錄邏輯頁位址所對映的實體頁位址,而實體頁轉邏輯頁對映表是用以記錄實體頁位址所對映的邏輯頁位址。頁管理模組用以寫入此欲寫入資料於一實體頁位址,在上述邏輯頁轉實體頁對映表中更新此欲寫入邏輯頁位址是對映寫入此資料的實體頁位址,並且在上述實體頁轉邏輯頁對映表中更新寫入此欲寫入資料的實體頁位址是對映此欲寫入邏輯頁位址。此外,頁管理模組會比對邏輯頁轉實體頁對映表與實體頁轉邏輯頁對映表判斷已寫入資料的實體頁位址之中無效的實體頁位址與有效的實體頁位址。
在本發明之一實施例中,上述之控制器系統更包括一實體區塊無效頁位址計數表,用以記錄每一實體區塊中無效的實體頁位址的數目,其中頁管理模組更用以在此實體區塊無效頁位址計數表中更新在上述欲寫入邏輯頁位址原始對映的實體頁位址中無效的實體頁位址的數目。
在本發明之一實施例中,上述之控制器系統更包括一實體區塊有效頁位址計數表,用以記錄每一實體區塊中有效的實體頁位址的數目,其中頁管理模組更用以在此實體
區塊有效頁位址計數表中更新在上述欲寫入邏輯頁位址原始對映的實體頁位址中有效的實體頁位址的數目。
在本發明之一實施例中,上述之頁管理模組更用以判斷未寫入資料的實體區塊的數目是否少於一無資料實體區塊數門檻值,其中當未寫入資料的該些實體區塊的數目少於該無資料實體區塊數門檻值時,該頁管理模組更用以依據上述實體區塊無效頁位址計數表從已寫入資料的實體區塊之中選擇至少一第一實體區塊,從未寫入資料的實體區塊之中選擇至少一第二實體區塊,將此第一實體區塊中有效的實體頁位址中的資料複製至屬於此第二實體區塊的實體頁位址中,更新上述邏輯頁轉實體頁對映表、實體頁轉邏輯頁對映表與實體區塊無效頁位址計數表,並且抹除此第一實體區塊。
在本發明之一實施例中,在已寫入資料的該些實體區塊之中上述之第一實體區塊與第二實體區塊存有最少數目之有效的實體頁位址。
在本發明之一實施例中,上述之控制器系統更包括一無資料實體區塊管理表,用以記錄未寫入資料的實體區塊。
在本發明之一實施例中,上述之頁管理模組是藉由從實體頁面位址之中選擇一待判斷實體頁位址,依據上述實體頁轉邏輯頁對映表查詢此待判斷實體頁位址對映的邏輯頁位址,依據此邏輯頁轉實體頁對映表查詢所對映的邏輯頁位址對映的實體頁位址,以及判斷所查詢的實體頁位址是否相同於此待測實體頁位址來判斷無效的實體頁位址與
有效的實體頁位址,其中倘若所查詢的實體頁位址相同於此待測實體頁位址,則此待判斷實體頁位址為有效,並且倘若所查詢的實體頁位址不同於此待測實體頁位址,則此待判斷實體頁位址為無效。
在本發明之一實施例中,上述之頁管理模組更用以依據上述實體區塊無效頁位址計數表來判斷在已寫入資料的實體區塊之中至少一第一實體區塊內無效的實體頁位址佔其所有實體頁位址的比例是否超過一無效實體頁位址門檻值,其中當此第一實體區塊內無效的該些實體頁位址佔其所有該些實體頁位址的比例超過該無效實體頁位址門檻值時上述頁管理模組更用以從未寫入資料的實體區塊之中選擇至少一第二實體區塊,將此第一實體區塊中有效的實體頁位址中的資料複製至屬於此第二實體區塊的實體頁位址中,更新上述邏輯頁轉實體頁對映表、實體頁轉邏輯頁對映表與實體區塊無效頁位址計數表,並且抹除此第一實體區塊。
在本發明之一實施例中,上述之頁管理模組更用以依據上述實體區塊無效頁位址計數表來判斷在已寫入資料的該些實體區塊之中至少一第一實體區塊內是否無任何有效的該些實體頁位址,其中當此第一實體區塊內無有效的該些實體頁位址時上述頁管理模組更用以抹除此第一實體區塊並且更新上述實體區塊無效頁位址計數表。
在本發明之一實施例中,上述之控制器系統更包括一可寫入實體頁指標,用以標記下一個可寫入的實體頁位址。
本發明提出一種快閃記憶體儲存系統,其包括屬於多個實體區塊的多個實體頁位址、用以連接主機系統的連接器、電性連接至實體頁位址與此連接器的快閃記憶體控制器、邏輯頁轉實體頁對映表以及實體頁轉邏輯頁對映表。邏輯頁轉實體頁對映表是用以記錄邏輯頁位址所對映的實體頁位址,而實體頁轉邏輯頁對映表是用以記錄實體頁位址所對映的邏輯頁位址。快閃記憶體控制器用以從此主機系統接收一欲寫入資料及一欲寫入邏輯頁位址。此外,快閃記憶體控制器用以寫入此欲寫入資料於一實體頁位址,在上述邏輯頁轉實體頁對映表中更新此欲寫入邏輯頁位址是對映寫入此資料的實體頁位址,並且在上述實體頁轉邏輯頁對映表中更新寫入此欲寫入資料的實體頁位址是對映此欲寫入邏輯頁位址。此外,快閃記憶體控制器用以比對邏輯頁轉實體頁對映表與實體頁轉邏輯頁對映表判斷已寫入資料的實體頁位址之中無效的實體頁位址與有效的實體頁位址。
在本發明之一實施例中,上述之快閃記憶體儲存系統更包括一實體區塊無效頁位址計數表,用以記錄每一實體區塊中無效的實體頁位址的數目,其中當上述快閃記憶體控制器更用以在此實體區塊無效頁位址計數表中更新在欲寫入邏輯頁位址原始對映的實體頁位址中無效的實體頁位址的數目。
在本發明之一實施例中,上述之快閃記憶體儲存系統,更包括一實體區塊有效頁位址計數表,用以記錄每一
實體區塊中有效的該些實體頁位址的數目,其中快閃記憶體控制器更用以在此實體區塊有效頁位址計數表中更新在欲寫入邏輯頁位址原始對映的實體頁位址中有效的實體頁位址的數目。
在本發明之一實施例中,上述之快閃記憶體控制器更以判斷未寫入資料的實體區塊的數目是否少於一無資料實體區塊數門檻值,其中當未寫入資料的該些實體區塊的數目少於該無資料實體區塊數門檻值時,快閃記憶體控制器更用以依據上述實體區塊無效頁位址計數表從已寫入資料的實體區塊之中選擇至少一第一實體區塊,從未寫入資料的實體區塊之中選擇至少一第二實體區塊,將此第一實體區塊中有效的實體頁位址中的資料複製至屬於此第二實體區塊的實體頁位址中,更新上述邏輯頁轉實體頁對映表、實體頁轉邏輯頁對映表與實體區塊無效頁位址計數表,並且抹除此第一實體區塊。
在本發明之一實施例中,在已寫入資料的該些實體區塊之中上述之第一實體區塊存有最少數目之有效的實體頁位址。
在本發明之一實施例中,上述之快閃記憶體儲存系統更包括一無資料實體區塊管理表,用以記錄未寫入資料的實體區塊。
在本發明之一實施例中,上述之快閃記憶體控制器是藉由從實體頁面位址之中選擇一待判斷實體頁位址,依據上述實體頁轉邏輯頁對映表查詢此待判斷實體頁位址對映
的邏輯頁位址,依據此邏輯頁轉實體頁對映表查詢所對映的邏輯頁位址對映的實體頁位址,以及判斷所查詢的實體頁位址是否相同於此待測實體頁位址來判斷無效的實體頁位址與有效的實體頁位址,其中倘若所查詢的實體頁位址相同於此待測實體頁位址,則此待判斷實體頁位址為有效,並且倘若所查詢的實體頁位址不同於此待測實體頁位址,則此待判斷實體頁位址為無效。
在本發明之一實施例中,上述之快閃記憶體控制器更用以依據上述實體區塊無效頁位址計數表來判斷在已寫入資料的實體區塊之中至少一第一實體區塊內無效的實體頁位址佔其所有實體頁位址的比例是否超過一無效實體頁位址門檻值,其中當此第一實體區塊內無效的該些實體頁位址佔其所有實體頁位址的比例超過無效實體頁位址門檻值時上述快閃記憶體控制器會從未寫入資料的實體區塊之中選擇至少一第二實體區塊,將此第一實體區塊中有效的實體頁位址中的資料複製至屬於此第二實體區塊的實體頁位址中,更新上述邏輯頁轉實體頁對映表、實體頁轉邏輯頁對映表與實體區塊無效頁位址計數表,並且抹除此第一實體區塊。
在本發明之一實施例中,上述之快閃記憶體控制器更用以依據上述實體區塊無效頁位址計數表來判斷在已寫入資料的該些實體區塊之中至少一第一實體區塊內是否無任何有效的該些實體頁位址,其中當此第一實體區塊內無有效的該些實體頁位址時上述快閃記憶體控制器會抹除此第
一實體區塊並且更新上述實體區塊無效頁位址計數表。
在本發明之一實施例中,上述之快閃記憶體儲存系統更包括一可寫入實體頁指標,用以標記下一個可寫入的實體頁位址。
基於上述,本發明使用邏輯頁轉實體頁對映表與實體頁轉邏輯頁對映表來記錄邏輯頁位址與實體頁位址的對映關係,由此可以頁為基礎對快閃記憶體晶片進行寫入,可有效地提升快閃記憶體儲存系統的效能。
為讓本發明之上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
圖1是根據本發明一實施例繪示快閃記憶體儲存系統的概要方塊圖。請參照圖1,快閃記憶體儲存系統100具有連接器110、快閃記憶體晶片120、以及包括快閃記憶體控制器130、邏輯頁轉實體頁對映表140與實體頁轉邏輯頁對映表150的控制器系統。
通常快閃記憶體儲存系統100會與主機系統200一起使用,以使主機系統200可將資料寫入至快閃記憶體儲存系統100或從快閃記憶體儲存系統100中讀取資料。在本範例實施例中,快閃記憶體儲存系統100為固態硬碟(Solid State Drive,SSD)。但必須瞭解的是,在本發明另一實施例中快閃記憶體儲存系統100亦可以是記憶卡或隨身碟。
連接器110是電性連接至快閃記憶體控制器130,並
且用以透過匯流排300連接主機系統200。在本範例實施例中,連接器110為SATA連接器。然而,必須瞭解的是本發明不限於此,連接器110亦可以是USB連接器、IEEE 1394連接器、PCI Express連接器、MS連接器、MMC連接器、SD連接器、CF連接器、IDE連接器或其他適合的連接器。
快閃記憶體晶片120是電性連接至快閃記憶體控制器130並且用以儲存資料。在本範例實施中快閃記憶體晶片120為多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體。然而,必須瞭解的是,本發明不限於此,在本發明另一實施例中,單層記憶胞(Single Level Cell,SLC)NAND快閃記憶體亦可應用於本發明。
圖2是根據本發明一範例實施例繪示快閃記憶體晶片的概要方塊圖。必須瞭解的是,在此描述快閃記憶體晶片的運作時以“選擇”、“搬移”、“劃分”、“替換”、“輪替”、”分組”等詞來操作快閃記憶體晶片120的實體區塊是邏輯上的概念。也就是說,快閃記憶體之實體區塊的實際位置並未更動,而是邏輯上對快閃記憶體的實體區塊進行操作。值得一提的是,快閃記憶體晶片120的運作(例如,寫入、讀取、抹除等運作)是由快閃記憶體控制器130來控制。
請參照圖2,快閃記憶體晶片120具有多個實體區塊(physical block)120-0~120-N。一般而言,在快閃記憶體中,實體區塊為抹除之最小單位。亦即,每一實體區塊含有最小數目之一併被抹除之記憶胞。在本範例實施例中實體區
塊120-0~120-N分別具有128個頁(page),其中頁為程式化(program)的最小單元。換言之,頁為寫入資料或讀取資料的最小單元。每一頁包括使用者資料區D與冗餘區R。使用者資料區D用以儲存使用者資料,而冗餘區R用以儲存系統的資料(例如,ECC碼、實體頁位址所對映之邏輯頁位址等)。在本範例實施例中,使用者資料區D為512位元組,而冗餘區R為16位元組。
實體區塊120-0~120-N會在邏輯上分組為系統區210、儲存區220與替代區230。
分組為系統區210的實體區塊120-0~實體區塊120-S是用以儲存系統資料,此系統資料包括邏輯頁轉實體頁對映表140、實體頁轉邏輯頁對映表150、快閃記憶體晶片120的實體區塊數、每一實體區塊的頁位址數、記錄邏輯頁位址與實體頁位址的關係等。
分組為儲存區220的實體區塊120-(S+1)~實體區塊120-(S+D)是用以儲存主機系統200所寫入的資料。也就是說,快閃記憶體儲存系統100會使用分組為儲存區220的實體區塊120-(S+1)~實體區塊120-(S+D)來實際地儲存主機系統200所寫入的資料。
分組為替代區230中的實體區塊120-(S+D)~實體區塊120-N是替代實體區塊。具體來說,快閃記憶體晶片120於出廠時會預留4%的實體區塊作為更換使用,也就是說,當儲存區220中的實體區塊損毀時,預留於替代區230中的實體區塊可用以取代損壞的實體區塊。因此,倘若當儲
存區220中的實體區塊發生損毀且替代區230中仍存有可用之實體區塊時,快閃記憶體控制器130可從替代區230中提取可用的實體區塊來更換損毀的實體區塊。倘若當儲存區220中的實體區塊發生損毀且替代區230中無可用之實體區塊時,快閃記憶體儲存系統100將會被宣告無法再使用。
圖3是根據本發明範例實施例繪示快閃記憶體晶片中儲存區的概要示意圖。
請參照圖3,儲存區220的每一實體區塊包括128個實體頁位址,因此儲存區220的實體區塊120-(S+1)~實體區塊120-(S+D)共包括(128×D)個實體頁位址,其中實體頁位址0~實體頁位址127屬於實體區塊120-(S+1),實體頁位址128~實體頁位址255屬於實體區塊120-(S+2),實體頁位址256~實體頁位址383屬於實體區塊120-(S+3),...,實體頁位址128(D-1)~實體頁位址128D-1屬於實體區塊120-(S+D)。此外,在本發明範例實施例中,快閃記憶體儲存系統100會提供對映儲存區220之實體頁位址的邏輯頁位址0~邏輯頁位址L給主機系統200以進行存取。在本發明範例實施例中,S、D與L為整數,其是依據快閃記憶體晶片120的容量由設計者來設定,一般來說,實體頁位址的數目是大於邏輯頁位址的數目。
請再參照圖1,快閃記憶體控制器130會執行以硬體型式、軟體型式或韌體型式實作的多個指令來與連接器
110和快閃記憶體晶片120一起完成資料的儲存、讀取與抹除等運作。快閃記憶體控制器130包括微處理器單元130a、緩衝記憶體130b、主機介面單元130c與快閃記憶體介面模組130d。
微處理器單元130a用以控制快閃記憶體控制器130的運作,例如與緩衝記憶體130b、主機介面單元130c、快閃記憶體介面模組130d和頁管理模組130e等協同合作以對快閃記憶體儲存系統100進行寫入、讀取、抹除等指令。
緩衝記憶體130b是耦接至微處理器單元130a並且用以暫時地儲存系統資料或者主機系統200所讀取或寫入的資料。在本範例實施例中,緩衝記憶體130b為靜態隨機存取記憶體(static random access memory,SRAM)。然而,必須瞭解的是,本發明不限於此,動態隨機存取記憶體(Dynamic Random Access memory,DRAM)、磁阻式記憶體(Magnetoresistive Random Access Memory,MRAM)、相變化記憶體(Phase Change Random Access Memory,PRAM)或其他適合的記憶體亦可應用於本發明。
主機介面單元130c是耦接至微處理器單元130a並且用以接收與識別主機系統200所傳送的指令。也就是,主機系統200所傳送的指令與資料會透過主機介面單元130c來傳送至微處理器單元130a。在本範例實施例中,主機介面單元130c為SATA介面。然而,必須瞭解的是本發明不限於此,主機介面單元130c亦可以是USB介面、IEEE 1394介面、PCI Express介面、MS介面、MMC介面、SD
介面、CF介面、IDE介面或其他適合的資料傳輸介面。特別是,主機介面單元130c會與連接器110相對應。也就是,主機介面單元130c必須與連接器110互相搭配。
快閃記憶體介面模組130d是耦接至微處理器單元130a並且用以存取快閃記憶體晶片120。也就是,欲寫入至快閃記憶體晶片120的資料會經由快閃記憶體介面模組130d轉換為快閃記憶體晶片120所能接受的格式。具體來說,快閃記憶體介面模組130d可支援快閃記憶介面訊號,例如,快閃記憶體介面訊號包含晶片致能訊號/CE,命令閂鎖訊號/CLE,位址閂鎖訊號/ALE,資料讀取控制訊號/RE,資料寫入控制訊號/WE,寫入保護訊號/WP,晶片狀態訊號R/B及複數個資料輸出入訊號/IO等。
頁管理模組130e是用以在微處理單元130a單元的控制下管理快閃記憶體晶片120。
在本發明範例實施例中,頁管理模組130e以一韌體型式實作在快閃記憶體控制器130中。例如,將包括多個程式指令的頁管理模組130e燒錄至一程式記憶體(例如,唯讀記憶體(Read Only Memory,ROM))中並且將此程式記憶體嵌入在快閃記憶體控制器130中,其中當快閃記憶體儲存系統100運作時,微處理器單元130a會從此程式記憶體中載入頁管理模組130e來對快閃記憶體晶片120執行抹除、讀取、寫入等運作。
此外,在本發明另一範例實施例中,頁管理模組130e亦可以是以軟體型式儲存於快閃記憶體晶片120的特定區
域(例如,在快閃記憶體晶片120中的系統區210)中,其中當快閃記憶體儲存系統100運作時,頁管理模組130e會被載入至緩衝記憶體130b中並且由微處理器單元130a來執行以進行抹除、讀取、寫入等運作。
再者,在本發明另一實施例中,頁管理模組130e亦可以一硬體型式(例如,邏輯閘)直接地佈局(lay out)在快閃記憶體控制器130中。
此外,雖未繪示於本範例實施例,但快閃記憶體控制器130亦可更包括錯誤校正模組與電源管理模組等用於控制快閃記憶體的一般功能模組。
邏輯頁轉實體頁對映表140是由微處理器單元130a經由執行頁管理模組130e來操作以記錄邏輯頁位址0~邏輯頁位址L所對映的實體頁位址,而實體頁轉邏輯頁對映表150是由微處理器單元130a經由執行頁管理模組130e來操作以記錄實體頁位址0~實體頁位址128D-1所對映的邏輯頁位址。例如,邏輯頁轉實體頁對映表140與實體頁轉邏輯頁對映表150是儲存在快閃記憶體晶片120的系統區210中,並且在快閃記憶體儲存系統100運作時,邏輯頁轉實體頁對映表140與實體頁轉邏輯頁對映表150會被載入至緩衝記憶體130b中並且由頁管理模組130e來操作,並且會不定時地被回存至快閃記憶體晶片120的系統區210,以避免快閃記憶體儲存系統100不正常地斷電,而遺失其中已更新的內容。
具體來說,在本發明範例實施例中,當主機系統200
在任意邏輯頁位址0~邏輯頁位址L中寫入資料時,微處理器單元130a所快閃記憶體控制器130所執行之的頁管理模組130e的程式指令會在實體區塊120-(S+1)~實體區塊120-(S+D)中將資料依序地寫入至實體頁位址中。具體來說,當頁管理模組130e的程式指令開始使用實體區塊120-(S+1)來儲存主機系統200欲寫入的資料時,不管主機系統200是寫入那個邏輯頁位址,頁管理模組130e的程式指令都會將資料依序地寫入至實體頁位址0~實體頁位址127;而當頁管理模組130e的程式指令開始使用實體區塊120-(S+2)來儲存主機系統200欲寫入的資料時,不管主機系統200是寫入那個邏輯頁位址,頁管理模組130e的程式指令都會將資料依序地寫入至實體頁位址128~實體頁位址255。也就是說,在寫入主機系統200欲寫入的資料時,頁管理模組130e的程式指令依序地使用一個實體區塊內的實體頁位址來寫入資料,並且當此實體區塊內的實體頁位址被使用完後才會再選擇另一個無資料的實體區塊,並且在新選擇之實體區塊的實體頁位址中繼續依序地寫入資料。
特別是,在頁管理模組130e的程式指令將資料寫入至實體頁位址後,頁管理模組130e的程式指令會更新邏輯頁轉實體頁對映表140與實體頁轉邏輯頁對映表150以正確地記錄邏輯頁位址與實體頁位址的對映關係。
值得一提的是,在本發明一範例實施例中,在頁管理
模組130e中更包括一可寫入實體頁指標(Available Physical Page Pointer),用以指示下一個可寫入的實體頁位址,基此,當快閃記憶體控制器130執行頁管理模組130e的程式指令來寫入主機系統200欲寫入的資料時,可依據可寫入實體頁指標的標記依序地將資料寫入至快閃記憶體晶片120的實體頁位址中。
此外,值得說明的是,在另一實施例中,當快閃記憶體晶片120為多層記憶胞(Multi Level Cell,MLC)NAND快閃記憶體晶片,且寫入方式是指定寫入實體區塊中之寫入速度較同一實體區塊中之上頁(upper page)快之下頁(lower page)時,由於該等下頁之實體頁位址並非連續,故頁管理模組130e的程式指令會依據該實體區塊中之下頁的實體頁位址,由小至大地寫入資料,而該可寫入實體頁指標也會依據下頁的實體頁位址由小至大的指示下一個可寫入的實體頁位址。
此外,當此實體頁指標欲從一實體區塊改指向另一實體區塊時,可在無資料狀態之實體區塊之中依該等實體區塊被抹除的次序選擇最早被抹除之實體區塊的最小實體頁位址為下一欲寫入資料的實體頁位址,其中該等實體區塊被抹除的次序可由一區塊抹除次序記錄(未繪示)得知。
圖4A~圖4C是根據本發明一範例實施例繪示邏輯頁轉實體頁對映表及實體頁轉邏輯頁對映表的範例。
請參照圖4A,假設邏輯頁位址0~邏輯頁位址L是分別地對映實體頁位址0~實體頁位址L,也就是,實體頁位
址0~實體頁位址L是分別儲存主機系統200在邏輯頁位址0~邏輯頁位址L中寫入的資料。因此,邏輯頁轉實體頁對映表140以及實體頁轉邏輯頁對映表150會記錄此些對映關係,並且此時可寫入實體頁指標會指向實體頁位址(L+1)。
倘若主機系統200欲寫入資料至邏輯頁位址1時,頁管理模組130e的程式指令會依據可寫入實體頁指標將主機系統200欲寫入的資料寫入至實體頁位址(L+1)中,並且將可寫入實體頁指標改為指向實體頁位址(L+2)。此時,頁管理模組130e的程式指令會在邏輯頁轉實體頁對映表140中將邏輯頁位址1的對映更新為實體頁位址(L+1),並且在實體頁轉邏輯頁對映表150中將實體頁位址(L+1)的對映更新為邏輯頁位址1(如圖4B所示)。
接著,倘若主機系統200欲寫入資料至邏輯頁位址129時,頁管理模組130e的程式指令會依據可寫入實體頁指標將主機系統200欲寫入的資料寫入至實體頁位址(L+2)中,並且將可寫入實體頁指標改為指向實體頁位址(L+3)。此時,頁管理模組130e的程式指令會在邏輯頁轉實體頁對映表140中將邏輯頁位址129的對映更新為實體頁位址(L+2),並且在實體頁轉邏輯頁對映表150中將實體頁位址(L+2)的對映更新為邏輯頁位址129(如圖4C所示)。
圖5是根據本發明一範例實施例所繪示快閃記憶體儲存系統100之存取運作的流程圖。
請參照圖5,當快閃記憶體儲存系統100與主機系統
200連接並啟動時,在步驟S501中會提供多個邏輯頁位址以供主機系統200存取。接著,在步驟S503中會建立邏輯頁轉實體頁對映表140與實體頁轉邏輯頁對映表150。之後,在步驟S505中會待命並且判斷所接收的指令。
倘若在步驟S505中接收到讀取指令時,則在步驟S507中會根據欲讀取的邏輯頁位址從邏輯頁轉實體頁對映表140中讀出對映的實體頁位址,並且在步驟S509中從對映的實體頁位址讀取資料並且將此資料傳送給主機系統。之後,返回步驟S505待命。例如,當在快閃記憶體晶片140的儲存區220是處於圖4的(b)的狀態並且主機系統200欲讀取邏輯頁位址1的資料時,頁管理模組130e的程式指令會從邏輯頁轉實體頁對映表140中讀出對映邏輯頁位址1的實體頁位址為實體頁位址(L+1),並且從實體頁位址(L+1)中讀取資料並將資料傳送給主機系統200。
倘若在步驟S505中接收到寫入指令時,則在步驟S511中會將資料寫入至可寫入實體頁指標所指向的實體頁位址。然後,在步驟S513中會在邏輯頁轉實體頁對映表140中將欲寫入資料之邏輯頁位址所對映的實體頁位址更新為可寫入實體頁指標所指向的實體頁位址。接著,在步驟S515中在實體頁轉邏輯頁對映表150中更新寫入此資料的實體頁位址所對映的邏輯頁位址,並且在步驟S517中將可寫入實體頁指標指向下一個可寫入的實體頁位址。最後,在步驟S519中判斷與記錄有效實體頁位址與無效的實體頁位址,之後返回步驟S505。例如,當在快閃記憶
體晶片140的儲存區220是處於圖4B的狀態並且主機系統200欲寫入資料至邏輯頁位址129時,頁管理模組130e的程式指令會將資料寫入至實體頁位址(L+2)中並且如圖4C所示更新邏輯頁轉實體頁對映表140與實體頁轉邏輯頁對映表150。
值得一提的是,在本發明範例實施例中,頁管理模組130e的程式指令會藉由比對邏輯頁轉實體頁對映表140以及實體頁轉邏輯頁對映表150中的記錄來判斷哪些實體頁位址為無效的實體頁位址與有效的實體頁位址,其中所謂無效的實體頁位址是指其中所儲存的資料為無效的舊資料,而有效的實體頁位址是指其中所儲存的資料是對映目前邏輯頁位址的有效資料。
例如,以圖4C為例,當欲判斷實體頁位址0是否為有效的實體頁位址時,頁管理模組130e的程式指令會從實體頁轉邏輯頁對映表150中讀出實體頁位址0是對映邏輯頁位址0,並且依據邏輯頁位址0從邏輯頁轉實體頁對映表140讀出邏輯頁位址0是對映實體頁位址0,因此實體頁位址0為有效的實體頁位址。另外,當欲判斷實體頁位址1是否為有效的實體頁位址時,頁管理模組130e的程式指令會從實體頁轉邏輯頁對映表150中讀出實體頁位址1是對映邏輯頁位址1,並且依據邏輯頁位址1從邏輯頁轉實體頁對映表140讀出邏輯頁位址1是對映實體頁位址(L+1),因此實體頁位址1為無效的實體頁位址。類似地,當欲判斷實體頁位址129是否為有效的實體頁位址時,頁
管理模組130e的程式指令會從實體頁轉邏輯頁對映表150中讀出實體頁位址129是對映邏輯頁位址129,並且依據邏輯頁位址129從邏輯頁轉實體頁對映表140讀出邏輯頁位址129是對映實體頁位址(L+2),因此實體頁位址129為無效的實體頁位址。也就是說,頁管理模組130e的程式指令會依據待判斷之實體頁位址透過實體頁轉邏輯頁對映表150與邏輯頁轉實體頁對映表140查詢待判斷之實體頁位址對映之邏輯頁位址所對映之實體頁位址,倘若待判斷之實體頁位址和所查詢之實體頁位址相符時,則此待判斷之實體頁位址為有效的實體頁位址,反之則為無效的實體頁位址。
值得一提的是,由於快閃記憶體晶片120是以實體區塊作為抹除的最小單位,因此頁管理模組130e的程式指令可透過上述比對將有效的實體頁位址中的資料進行合併以釋放無效的實體頁位址來寫入新的資料。例如,頁管理模組130e的程式指令可將至少一個實體區塊中有效實體頁位址中的資料複製到未寫入任何資料之實體區塊的實體頁位址中,並且將此實體區塊進行抹除運作,由此可將分散的有效資料合併並且將無效的實體頁位址釋放出來(以下稱為無效資料抹除程序)。值得一提的是,在進行有效資料合併以釋放無效的實體頁位址後,頁管理模組130e的程式指令會更新實體頁轉邏輯頁對映表150與邏輯頁轉實體頁對映表140中邏輯頁位址與實體頁位址的對映關係。
在本發明一範例實施例中,控制器系統更包括實體區
塊無效頁位址計數表170(如圖6的快閃記憶體儲存系統100’所示)以記錄每一實體區塊120-0~140-(S+D)中無效的實體頁位址的數目,以作為將有效的實體頁位址中的資料進行合併以釋放無效的實體頁位址的依據。類似地,是儲存在快閃記憶體晶片120的系統區210中,並且在快閃記憶體儲存系統100運作時,實體區塊無效頁位址計數表170會被載入至緩衝記憶體130b中並且由快閃記憶體控制器130執行頁管理模組130e的程式指令來操作,並且會不定時地被回存至快閃記憶體晶片120的系統區210,以避免快閃記憶體儲存系統100不正常地斷電,而遺失其中已更新的內容。
圖7是根據本發明一範例實施例繪示實體區塊無效頁位址計數表的範例,其中實體區塊無效頁位址計數表170是對應圖4的範例。
請參照圖7的(a)與圖4A,在對應圖4A所示的狀態下,實體區塊無效頁位址計數表170會記錄每一實體區塊120-0~120-(S+D)之無效實體頁位址的計數值為0。
請參照圖7的(b)與圖4B,在對應圖4B所示的狀態下,由於主機系統200欲寫入之邏輯頁位址1的資料被寫入至實體頁位址(L+1),因此頁管理模組130e的程式指令會更新邏輯頁轉實體頁對映表140中邏輯頁位址1的對映以及實體頁轉邏輯頁對映表150中實體頁位址(L+1)的對映。特別是,在頁管理模組130e的程式指令更新邏輯頁轉實體頁對映表140之前會讀出邏輯頁位址1原對映的實體
頁位址為實體頁位址1並且在實體區塊無效頁位址計數表170中將關於實體頁位址1所屬之實體區塊120-(S+1)的無效實體頁位址的計數值加1。
類似地,請參照圖7的(c)與圖4C,在對應圖4C所示的狀態下,由於主機系統200欲寫入之邏輯頁位址129的資料被寫入至實體頁位址(L+2),因此頁管理模組130e的程式指令會更新邏輯頁轉實體頁對映表140中邏輯頁位址129的對映以及實體頁轉邏輯頁對映表150中實體頁位址(L+2)的對映。特別是,在頁管理模組130e的程式指令更新邏輯頁轉實體頁對映表140之前會讀出邏輯頁位址129原對映的實體頁位址為實體頁位址129並且在實體區塊無效頁位址計數表170中將關於實體頁位址129所屬之實體區塊120-(S+1)的無效實體頁位址的計數值加1。
例如,在本發明一範例實施例中,當進行無效資料抹除程序時會依據實體區塊無效頁位址計數表170選擇存有最少數目之有效實體頁位址的至少一個實體區塊來進行資料合併程序。
值得一提的是,上述範例實施例是以建立實體區塊無效頁位址計數表170來計數實體區塊中無效的實體頁位址的數目。然而,在本發明另一實施例中,亦可以建立實體區塊有效頁位址計數表來計數實體區塊中有效的實體頁位址的數目,以在進行無效資料抹除程序由此選擇有效資料資料最少的實體區塊來資料合併。
此外,在本發明一範例實施例中,控制器系統更新包
括無資料實體區塊管理表(未繪示)以記錄未寫入任何資料的實體區塊。也就是說,記錄在無資料實體區塊管理表中的實體區塊是已被抹除可供寫入資料的實體區塊。特別是,頁管理模組130e的程式指令可依據無資料實體區塊管理表中的資訊來更新可寫入實體頁指標。例如,在可寫入實體頁指標已指向實體頁位址128D-1並執行寫入指令時,頁管理模組130e的程式指令會依據無資料實體區塊管理表中可寫入實體頁指標指向其中一個未寫入任何資料的實體區塊的第一個實體頁位址。
特別是,如上所述當進行無效資料抹除程序中需要未寫入任何資料之實體區塊來寫入有效實體頁位址中的資料,因此在本發明一範例實施例中,頁管理模組130e的程式指令會依據無資料實體區塊管理表中判斷僅剩1個未寫入任何資料之實體區塊時,則會進行無效資料抹除程序以釋放無效的實體頁位址。值得一提的是,本發明不限於在剩1個未寫入任何資料之實體區塊時進行無效資料抹除。
此外,在本發明另一範例實施例中,頁管理模組130e的程式指令亦可根據實體區塊無效頁位址計數表170中的計數值判斷當有至少一個實體區塊內無效實體頁位址的比例超過一無效實體頁位址門檻值時,則進行資料合併以釋放無效的實體頁位址的程序。在此,此無效實體頁位址門檻值是可由使用者自行設定,其中當此無效實體頁位址門檻值越低時,則執行資料合併程序的頻率越高,反之,則越低。在本發明一範例實施例中,此無效實體頁位址門檻
值是設定為80%。
另外,在本發明另一範例實施例中,頁管理模組130e的程式指令亦可根據實體區塊無效頁位址計數表170中的計數值判斷當有任一實體區塊內無任何有效實體頁位址時,則將此無任何有效實體頁位址的實體區塊執行抹除運作以釋放無效的實體頁位址,並且將此實體區塊記錄在無資料實體區塊管理表中。
圖8是根據本發明一範例實施例所繪示快閃記憶體儲存系統100’之存取運作的流程圖。
請參照圖8,當快閃記憶體儲存系統100與主機系統200連接並啟動時,在步驟S801中會提供多個邏輯頁位址以供主機系統200存取。接著,在步驟S803中會建立邏輯頁轉實體頁對映表140、實體頁轉邏輯頁對映表150與實體區塊無效頁位址計數表170。之後,在步驟S805中會待命並且判斷所接收的指令。
倘若在步驟S805中接收到讀取指令時,則在步驟S807中會根據欲讀取的邏輯頁位址從邏輯頁轉實體頁對映表140讀出對映的實體頁位址,並且在步驟S809中從對映的實體頁位址讀取資料並且將此資料傳送給主機系統。之後,返回步驟S805待命。
倘若在步驟S805中接收到寫入指令時,則在步驟S811中會將資料寫入至可寫入實體頁指標所指向的實體頁位址。然後,在步驟S813中會在實體區塊無效頁位址計數表170中將欲寫入資料之邏輯頁位址目前所對映之實
體區塊的無效實體頁位址的計數值加1。之後,在步驟S815中會在邏輯頁轉實體頁對映表140中將欲寫入資料之邏輯頁位址所對映的實體頁位址更新為可寫入實體頁指標所指向的實體頁位址。接著,在步驟S817中在實體頁轉邏輯頁對映表150中更新寫入此資料的實體頁位址所對映的邏輯頁位址,並且在步驟S819中將可寫入實體頁指標指向下一個可寫入的實體頁位址。
特別是在完成寫入動作之後,在步驟S821中會判斷未寫入資料的實體區塊的數目是否少於無資料實體區塊數門檻值(例如,如上所述,本範例實施例是設定為1)。倘若在步驟S821中判斷未寫入資料的實體區塊少於無資料實體區塊數門檻值時,則會執行無效資料抹除程序。例如,在步驟S823中會依據實體區塊無效頁位址計數表170從已寫入資料的實體區塊中選擇2個實體區塊。例如,所選擇的2個實體區塊是已寫入資料的實體區塊之中存有最少數目之有效實體頁位址的2個實體區塊,並且在步驟S825中比對邏輯頁轉實體頁對映表140與實體頁轉邏輯頁對映表150以判斷所選擇的2個實體區塊中的有效實體頁位址。
然後,在步驟S827中會從快閃記憶體晶片120中選擇1個未寫入資料的實體區塊,並且在步驟S829中將在步驟S825中所判斷之有效實體頁位址內的資料複製到在步驟S827中所選擇之實體區塊的實體頁面位址中。接著,在步驟S831中將步驟S823中所選擇的2個實體區塊進行抹除運作以釋放可用的儲存空間。最後,在步驟S833中
更新邏輯頁轉實體頁對映表140、實體頁轉邏輯頁對映表150與實體區塊無效頁位址計數表170,而完成無效資料抹除程序並返回步驟S805待命。
必須瞭解的是,雖然圖8是選擇已寫入資料的2個實體區塊以1個未寫入資料的實體區塊來進行無效資料抹除程序,然而本發明不限於此,當進行無效資料抹除程序時可選擇1個或多個已寫入資料的實體區塊來進行無效資料抹除,並且可選擇1個或多個未寫入資料的實體區塊來儲存所合併的有效資料。
圖9是根據本發明另一範例實施例所繪示快閃記憶體儲存系統100’之存取運作的流程圖。
請參照圖9,步驟S901、S903、S905、S907、S909、S911、S913、S915、S917與S919是相同於步驟S801、S803、S805、S807、S809、S811、S813、S815、S817與S819,在此不再贅述。
在步驟S921中,會依據實體區塊無效頁位址計數表170判斷是否有實體區塊內無效實體頁位址的比例超過無效實體頁位址門檻值(例如,本範例實施例是設定80%)。倘若在步驟S921中判斷有至少1個實體區塊內無效實體頁位址的比例超過無效實體頁位址門檻值時,則會執行一無效資料抹除程序(例如,步驟S923~S929)。
在步驟S923中會比對邏輯頁轉實體頁對映表140與實體頁轉邏輯頁對映表150來判斷此實體區塊中的有效實體頁位址。
然後,在步驟S925中會依據所判斷無效實體頁位址的比例超過無效實體頁位址門檻值之實體區塊數目從快閃記憶體晶片120中選擇至少1個未寫入資料的實體區塊,並且在步驟S927中將在步驟S923中所判斷之有效實體頁位址內的資料複製到在步驟S925中所選擇之實體區塊的實體頁面位址中。接著,在步驟S929中將步驟S921中所判斷的實體區塊進行抹除運作以釋放可用的儲存空間。最後,在步驟S931中更新邏輯頁轉實體頁對映表140、實體頁轉邏輯頁對映表150與實體區塊無效頁位址計數表170,而完成無效資料抹除程序並返回步驟S905待命。
圖10是根據本發明另一範例實施例所繪示快閃記憶體儲存系統100’之存取運作的流程圖。
請參照圖10,步驟S1001、S1003、S1005、S1007、S1009、S1011、S1013、S1015、S1017與S1019是相同於步驟S801、S803、S805、S807、S809、S811、S813、S815、S817與S819,在此不再贅述。
在步驟S1021中,會依據實體區塊無效頁位址計數表170判斷是否存有任何其之實體頁位址皆為無效的實體區塊。倘若在步驟S1021中判斷存有實體頁位址皆為無效的實體區塊時,則在步驟S1023中會將實體頁位址皆為無效的實體區塊執行抹除運作以釋放可用的儲存空間。最後,在步驟S1025中更新實體區塊無效頁位址計數表,而完成資料合併程序並返回步驟S1005待命。
必須瞭解的是,在上述圖5、圖8、圖9與圖10中雖
未繪示結束運作的步驟,然而此領域技術人員可輕易瞭解在快閃記憶體儲存系統停止運作此些流程會終止。此外,本範例實施例圖5、圖8、圖9與圖10所述步驟的順序並非限定本發明,此領域熟知技藝者可根據本發明的精神輕易地以非本範例實施例所述的順序來實作本發明。
綜上所述,本發明使用邏輯頁轉實體頁對映表與實體頁轉邏輯頁對映表來記錄邏輯頁位址與實體頁位址的對映關係,由此可以頁為基礎對快閃記憶體晶片進行寫入,可有效地提升快閃記憶體儲存系統的效能。此外,透過比對邏輯頁轉實體頁對映表與實體頁轉邏輯頁對映表即可判定無效的實體頁位址與有效的實體頁位址而進行資料合併以釋放無效的實體頁位址。再者,本發明使用實體區塊無效頁位址計數表來記錄每一實體區塊內無效實體頁位址的數目,由此可快速地判斷能夠在抹除後釋放較多空間的實體區塊,以提升快閃記憶體儲存系統的效能。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧快閃記憶體儲存系統
110‧‧‧連接器
120‧‧‧快閃記憶體晶片
120-0~120-N‧‧‧實體區塊
130‧‧‧快閃記憶體控制器
130a‧‧‧微處理器單元
130b‧‧‧緩衝記憶體
130c‧‧‧主機介面單元
130d‧‧‧快閃記憶體介面單元
140‧‧‧控制程式
150‧‧‧邏輯頁轉實體頁對映表
160‧‧‧實體頁轉邏輯頁對映表
170‧‧‧實體區塊無效頁位址計數表
200‧‧‧主機系統
210‧‧‧系統區
220‧‧‧儲存區
230‧‧‧替代區
300‧‧‧匯流排
S501、S503、S505、S507、S509、S511、S513、S515、S517、S519‧‧‧資料存取步驟
S801、S803、S805、S807、S809、S811、S813、S815、S817、S819、S821、S823、S825、S827、S829、S831、S833‧‧‧資料存取步驟
S901、S903、S905、S907、S909、S911、S913、S915、S917、S919、S921、S923、S925、S927、S929、S931‧‧‧資料存取步驟
S1001、S1003、S1005、S1007、S1009、S1011、S1013、S1015、S1017、S1019、S1021、S1023、S1025‧‧‧資料存取步驟
圖1是根據本發明一實施例繪示快閃記憶體儲存系統的概要方塊圖。
圖2是根據本發明一範例實施例繪示快閃記憶體晶片
的概要方塊圖。
圖3是根據本發明範例實施例繪示快閃記憶體晶片中儲存區的概要示意圖。
圖4A~圖4C是根據本發明一範例實施例繪示邏輯頁轉實體頁對映表及實體頁轉邏輯頁對映表的範例。
圖5是根據本發明一範例實施例所繪示快閃記憶體儲存系統之存取運作的流程圖。
圖6是根據本發明另一實施例繪示快閃記憶體儲存系統的概要方塊圖。
圖7是根據本發明一範例實施例繪示實體區塊無效頁位址計數表的範例。
圖8是根據本發明另一範例實施例所繪示快閃記憶體儲存系統之存取運作的流程圖。
圖9是根據本發明另一範例實施例所繪示快閃記憶體儲存系統之存取運作的流程圖。
圖10是根據本發明另一範例實施例所繪示快閃記憶體儲存系統之存取運作的流程圖。
S501、S503、S505、S507、S509、S511、S513、S515、S517、S519‧‧‧資料存取步驟
Claims (30)
- 一種資料存取方法,其由一快閃記憶體控制器執行以在至少一快閃記憶體晶片的多個實體區塊的多個實體頁位址中存取資料,該資料存取方法包括:提供多個邏輯頁位址,以供一主機系統存取;建立一邏輯頁轉實體頁對映表以分別地記錄該些邏輯頁位址所對映的該些實體頁位址;建立一實體頁轉邏輯頁對映表以分別地記錄該些實體頁位址所對映的該些邏輯頁位址;從該主機系統接收一欲寫入資料及一欲寫入邏輯頁位址,寫入該欲寫入資料於一實體頁位址,並在該邏輯頁轉實體頁對映表中更新該欲寫入邏輯頁位址是對映寫入該欲寫入資料的實體頁位址,並且在該實體頁轉邏輯頁對映表中更新寫入該欲寫入資料的實體頁位址是對映該欲寫入邏輯頁位址;以及比對該邏輯頁轉實體頁對映表與該實體頁轉邏輯頁對映表判斷已寫入資料的該些實體頁位址之中無效的該些實體頁位址與有效的該些實體頁位址。
- 如申請專利範圍第1項所述之資料存取方法,更包括:建立一實體區塊無效頁位址計數表以記錄每一該些實體區塊中無效的該些實體頁位址的數目;以及在該實體區塊無效頁位址計數表中更新在該欲寫入邏輯頁位址原始對映的實體頁位址中無效的該些實體頁位 址的數目。
- 如申請專利範圍第1項所述之資料存取方法,更包括:建立一實體區塊有效頁位址計數表以記錄每一該些實體區塊中有效的該些實體頁位址的數目;以及在該實體區塊有效頁位址計數表中更新在該欲寫入邏輯頁位址原始對映的實體頁位址中有效的該些實體頁位址的數目。
- 如申請專利範圍第2項所述之資料存取方法,更包括:判斷未寫入資料的該些實體區塊的數目是否少於一無資料實體區塊數門檻值,其中當未寫入資料的該些實體區塊的數目少於該無資料實體區塊數門檻值時,則執行一無效資料抹除程序,該無效資料抹除程序包括:依據該實體區塊無效頁位址計數表從已寫入資料的該些實體區塊之中選擇至少一第一實體區塊;從未寫入資料的該些實體區塊之中選擇至少一第二實體區塊;將該至少一第一實體區塊中有效的該些實體頁位址中的資料複製至屬於該至少一第二實體區塊的該些實體頁位址中;更新該邏輯頁轉實體頁對映表、該實體頁轉邏輯頁對映表與該實體區塊無效頁位址計數表;以及 抹除該至少一第一實體區塊。
- 如申請專利範圍第4項所述之資料存取方法,其中在已寫入資料的該些實體區塊之中該至少一第一實體區塊存有最少數目之有效的該些實體頁位址。
- 如申請專利範圍第4項所述之資料存取方法,更包括建立一無資料實體區塊管理表,以記錄未寫入資料的該些實體區塊。
- 如申請專利範圍第1項所述之資料存取方法,其中比對該邏輯頁轉實體頁對映表與該實體頁轉邏輯頁對映表判斷已寫入資料的該些實體頁位址之中無效的該些實體頁位址與有效的該些實體頁位址的步驟包括:從該些實體頁面位址之中選擇一待判斷實體頁位址;依據該實體頁轉邏輯頁對映表查詢該待判斷實體頁位址對映的邏輯頁位址;依據該邏輯頁轉實體頁對映表查詢對映該待判斷實體頁位址之邏輯頁位址對映的實體頁位址;判斷所查詢的實體頁位址是否相同於該待判斷實體頁位址,其中倘若所查詢的實體頁位址相同於該待判斷實體頁位址,則該待判斷實體頁位址為有效,並且倘若所查詢的實體頁位址不同於該待判斷實體頁位址,則該待判斷實體頁位址為無效。
- 如申請專利範圍第2項所述之資料存取方法,更包括:依據該實體區塊無效頁位址計數表判斷在已寫入資 料的該些實體區塊之中至少一第一實體區塊內無效的該些實體頁位址佔其所有該些實體頁位址的比例是否超過一無效實體頁位址門檻值,其中當該至少一第一實體區塊內無效的該些實體頁位址佔其所有該些實體頁位址的比例超過該無效實體頁位址門檻值時,則執行一無效資料抹除程序,該無效資料抹除程序包括:從未寫入資料的該些實體區塊之中選擇至少一第二實體區塊;將該至少一第一實體區塊中有效的該些實體頁位址中的資料複製至屬於該至少一第二實體區塊的該些實體頁位址中;更新該邏輯頁轉實體頁對映表、該實體頁轉邏輯頁對映表與該實體區塊無效頁位址計數表;以及抹除該至少一第一實體區塊。
- 如申請專利範圍第2項所述之資料存取方法,更包括:依據該實體區塊無效頁位址計數表判斷在已寫入資料的該些實體區塊之中至少一第一實體區塊內是否無任何有效的該些實體頁位址,其中當該至少一第一實體區塊內無有效的該些實體頁位址時,則抹除該至少一第一實體區塊並且更新該實體區塊無效頁位址計數表。
- 如申請專利範圍第1項所述之資料存取方法,更 包括建立一可寫入實體頁指標,以標記下一個可寫入的該些實體頁位址。
- 一種控制器系統,適用在至少一快閃記憶體晶片的多個實體區塊的多個實體頁位址中寫入資料,該控制器系統包括:一主機介面單元,用以連接一主機系統,其中多個邏輯頁位址被提供以供該主機系統存取;一微處理器單元,用以從該主機系統接收一欲寫入資料及一欲寫入邏輯頁位址;一快閃記憶體介面單元,用以連接該至少一快閃記憶體晶片;一緩衝記憶體,用以暫存資料;一邏輯頁轉實體頁對映表,用以記錄該些邏輯頁位址所對映的該些實體頁位址;一實體頁轉邏輯頁對映表,用以記錄該些實體頁位址所對映的該些邏輯頁位址;以及一頁管理模組,用以寫入該欲寫入資料於一實體頁位址,並在該邏輯頁轉實體頁對映表中更新該欲寫入邏輯頁位址是對映寫入該欲寫入資料的實體頁位址,並且在該實體頁轉邏輯頁對映表中更新寫入該欲寫入資料的實體頁位址是對映該欲寫入邏輯頁位址,其中該頁管理模組比對該邏輯頁轉實體頁對映表與該實體頁轉邏輯頁對映表來判斷已寫入資料的該些實體頁位址之中無效的該些實體頁位址與有效的該些實體頁位 址。
- 如申請專利範圍第11項所述之控制器系統,更包括一實體區塊無效頁位址計數表,用以記錄每一該些實體區塊中無效的該些實體頁位址的數目,其中該頁管理模組更用以在該實體區塊無效頁位址計數表中更新在該欲寫入邏輯頁位址原始對映的實體頁位址中無效的該些實體頁位址的數目。
- 如申請專利範圍第11項所述之控制器系統,更包括一實體區塊有效頁位址計數表,用以記錄每一該些實體區塊中有效的該些實體頁位址的數目,其中該頁管理模組更用以在該實體區塊有效頁位址計數表中更新在該欲寫入邏輯頁位址原始對映的實體頁位址中有效的該些實體頁位址的數目。
- 如申請專利範圍第12項所述之控制器系統,其中該頁管理模組更用以判斷未寫入資料的該些實體區塊的數目是否少於一無資料實體區塊數門檻值,其中當未寫入資料的該些實體區塊的數目少於該無資料實體區塊數門檻值時,該頁管理模組更用以依據該實體區塊無效頁位址計數表從已寫入資料的該些實體區塊之中選擇至少一第一實體區塊,從未寫入資料的該些實體區塊之中選擇至少一第二實體區塊,將該至少一第一實體區塊中有效的該些實體頁位址中的資料複製至屬於該至少一第二實體區塊的該些實體頁位址中,更新該邏輯頁轉實體頁對映表、該實體頁轉邏輯頁對映表與該實體區塊無效頁 位址計數表,並且抹除該至少一第一實體區塊。
- 如申請專利範圍第14項所述之控制器系統,其中在已寫入資料的該些實體區塊之中該至少一第一實體區塊存有最少數目之有效的該些實體頁位址。
- 如申請專利範圍第14項所述之控制器系統,更包括一無資料實體區塊管理表,用以記錄未寫入資料的該些實體區塊。
- 如申請專利範圍第11項所述之控制器系統,其中該頁管理模組是藉由從該些實體頁面位址之中選擇一待判斷實體頁位址,依據該實體頁轉邏輯頁對映表查詢該待判斷實體頁位址對映的邏輯頁位址,依據該邏輯頁轉實體頁對映表查詢所對映的邏輯頁位址對映的實體頁位址,以及判斷所查詢的實體頁位址是否相同於該待判斷實體頁位址來判斷無效的該些實體頁位址與有效的該些實體頁位址,其中倘若所查詢的實體頁位址相同於該待判斷實體頁位址,則該待判斷實體頁位址為有效,並且倘若所查詢的實體頁位址不同於該待判斷實體頁位址,則該待判斷實體頁位址為無效。
- 如申請專利範圍第12項所述之控制器系統,其中該頁管理模組更用以依據該實體區塊無效頁位址計數表判斷在已寫入資料的該些實體區塊之中至少一第一實體區塊內無效的該些實體頁位址佔其所有該些實體頁位址的比例是否超過一無效實體頁位址門檻值,其中當該至少一第一實體區塊內無效的該些實體頁 位址佔其所有該些實體頁位址的比例超過該無效實體頁位址門檻值時,該頁管理模組更用以從未寫入資料的該些實體區塊之中選擇至少一第二實體區塊,將該至少一第一實體區塊中有效的該些實體頁位址中的資料複製至屬於該至少一第二實體區塊的該些實體頁位址中,更新該邏輯頁轉實體頁對映表、該實體頁轉邏輯頁對映表與該實體區塊無效頁位址計數表,並且抹除該至少一第一實體區塊。
- 如申請專利範圍第12項所述之控制器系統,其中該頁管理模組更用以依據該實體區塊無效頁位址計數表判斷在已寫入資料的該些實體區塊之中至少一第一實體區塊內是否無任何有效的該些實體頁位址,其中當該至少一第一實體區塊內無有效的該些實體頁位址時,該頁管理模組更用以抹除該至少一第一實體區塊並且更新該實體區塊無效頁位址計數表。
- 如申請專利範圍第11項所述之控制器系統,更包括一可寫入實體頁指標,用以標記下一個可寫入的該些實體頁位址。
- 一種快閃記憶體儲存系統,包括:多個實體頁位址,其中該些實體頁位址屬於多個實體區塊;一連接器,用以連接一主機系統,其中多個邏輯頁位址被提供以供該主機系統存取;一邏輯頁轉實體頁對映表,用以記錄該些邏輯頁位址所對映的該些實體頁位址; 一實體頁轉邏輯頁對映表,用以記錄該些實體頁位址所對映的該些邏輯頁位址;以及一快閃記憶體控制器,電性連接至該些實體頁位址與該連接器,並且用以從該主機系統接收一欲寫入資料及一欲寫入邏輯頁位址,其中該快閃記憶體控制器更用以寫入該欲寫入資料於一實體頁位址,並在該邏輯頁轉實體頁對映表中更新該欲寫入邏輯頁位址是對映寫入該欲寫入資料的實體頁位址,並且在該實體頁轉邏輯頁對映表中更新寫入該欲寫入資料的實體頁位址是對映該欲寫入邏輯頁位址,其中該快閃記憶體控制器比對該邏輯頁轉實體頁對映表與該實體頁轉邏輯頁對映表來判斷已寫入資料的該些實體頁位址之中無效的該些實體頁位址與有效的該些實體頁位址。
- 如申請專利範圍第21項所述之快閃記憶體儲存系統,更包括一實體區塊無效頁位址計數表,用以記錄每一該些實體區塊中無效的該些實體頁位址的數目,其中該快閃記憶體控制器更用以在該實體區塊無效頁位址計數表中更新在該欲寫入邏輯頁位址原始對映的實體頁位址中無效的該些實體頁位址的數目。
- 如申請專利範圍第21項所述之快閃記憶體儲存系統,更包括一實體區塊有效頁位址計數表,用以記錄每一該些實體區塊中有效的該些實體頁位址的數目,其中該快閃記憶體控制器更用以在該實體區塊有效 頁位址計數表中更新在該欲寫入邏輯頁位址原始對映的實體頁位址中有效的該些實體頁位址的數目。
- 如申請專利範圍第22項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器更用以判斷未寫入資料的該些實體區塊的數目是否少於一無資料實體區塊數門檻值,其中當未寫入資料的該些實體區塊的數目少於該無資料實體區塊數門檻值時,該快閃記憶體控制器更用以依據該實體區塊無效頁位址計數表從已寫入資料的該些實體區塊之中選擇至少一第一實體區塊,從未寫入資料的該些實體區塊之中選擇至少一第二實體區塊,將該至少一第一實體區塊中有效的該些實體頁位址中的資料複製至屬於該至少一第二實體區塊的該些實體頁位址中,更新該邏輯頁轉實體頁對映表、該實體頁轉邏輯頁對映表與該實體區塊無效頁位址計數表,並且抹除該至少一第一實體區塊。
- 如申請專利範圍第24項所述之快閃記憶體儲存系統,其中在已寫入資料的該些實體區塊之中該至少一第一實體區塊存有最少數目之有效的該些實體頁位址。
- 如申請專利範圍第24項所述之快閃記憶體儲存系統,更包括一無資料實體區塊管理表,用以記錄未寫入資料的該些實體區塊。
- 如申請專利範圍第21項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器是藉由從該些實體頁面位址之中選擇一待判斷實體頁位址,依據該實體頁轉邏輯頁 對映表查詢該待判斷實體頁位址對映的邏輯頁位址,依據該邏輯頁轉實體頁對映表查詢所對映的邏輯頁位址對映的實體頁位址,以及判斷所查詢的實體頁位址是否相同於該待判斷實體頁位址來判斷無效的該些實體頁位址與有效的該些實體頁位址,其中倘若所查詢的實體頁位址相同於該待判斷實體頁位址,則該待判斷實體頁位址為有效,並且倘若所查詢的實體頁位址不同於該待判斷實體頁位址,則該待判斷實體頁位址為無效。
- 如申請專利範圍第22項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器更用以依據該實體區塊無效頁位址計數表判斷在已寫入資料的該些實體區塊之中至少一第一實體區塊內無效的該些實體頁位址佔其所有該些實體頁位址的比例是否超過一無效實體頁位址門檻值,其中當該至少一第一實體區塊內無效的該些實體頁位址佔其所有該些實體頁位址的比例超過該無效實體頁位址門檻值時,該快閃記憶體控制器更用以從未寫入資料的該些實體區塊之中選擇至少一第二實體區塊,將該至少一第一實體區塊中有效的該些實體頁位址中的資料複製至屬於該至少一第二實體區塊的該些實體頁位址中,更新該邏輯頁轉實體頁對映表、該實體頁轉邏輯頁對映表與該實體區塊無效頁位址計數表,並且抹除該至少一第一實體區塊。
- 如申請專利範圍第22項所述之快閃記憶體儲存系統,其中該快閃記憶體控制器更用以依據該實體區塊無 效頁位址計數表判斷在已寫入資料的該些實體區塊之中至少一第一實體區塊內是否無任何有效的該些實體頁位址,其中當該第一實體區塊內無有效的該些實體頁位址時,該快閃記憶體控制器更用以抹除該第一實體區塊並且更新該實體區塊無效頁位址計數表。
- 如申請專利範圍第21項所述之快閃記憶體儲存系統,更包括一可寫入實體頁指標,用以標記下一個可寫入的該些實體頁位址。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098101405A TWI413931B (zh) | 2009-01-15 | 2009-01-15 | 快閃記憶體資料之存取方法及其儲存系統與控制系統 |
US12/397,643 US8180953B2 (en) | 2009-01-15 | 2009-03-04 | Data accessing method for flash memory, and storage system and controller system thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098101405A TWI413931B (zh) | 2009-01-15 | 2009-01-15 | 快閃記憶體資料之存取方法及其儲存系統與控制系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201027420A TW201027420A (en) | 2010-07-16 |
TWI413931B true TWI413931B (zh) | 2013-11-01 |
Family
ID=42319869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098101405A TWI413931B (zh) | 2009-01-15 | 2009-01-15 | 快閃記憶體資料之存取方法及其儲存系統與控制系統 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8180953B2 (zh) |
TW (1) | TWI413931B (zh) |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8151060B2 (en) * | 2006-11-28 | 2012-04-03 | Hitachi, Ltd. | Semiconductor memory system having a snapshot function |
TWI427476B (zh) * | 2009-02-24 | 2014-02-21 | Silicon Motion Inc | 快閃記憶體的存取方法及快閃記憶體裝置 |
JP4800415B2 (ja) * | 2009-08-17 | 2011-10-26 | 富士通株式会社 | 中継装置、macアドレス検索方法 |
TWI450271B (zh) * | 2009-09-02 | 2014-08-21 | Silicon Motion Inc | 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器 |
US9104326B2 (en) * | 2010-11-15 | 2015-08-11 | Emc Corporation | Scalable block data storage using content addressing |
TWI423022B (zh) * | 2011-02-15 | 2014-01-11 | Phison Electronics Corp | 記憶體管理方法、記憶體控制器與記憶體儲存裝置 |
US9251055B2 (en) * | 2012-02-23 | 2016-02-02 | Kabushiki Kaisha Toshiba | Memory system and control method of memory system |
US9213632B1 (en) * | 2012-02-29 | 2015-12-15 | Marvell International Ltd. | Systems and methods for data storage devices to use external resources |
US9116792B2 (en) | 2012-05-18 | 2015-08-25 | Silicon Motion, Inc. | Data storage device and method for flash block management |
TWI448891B (zh) * | 2012-09-06 | 2014-08-11 | Silicon Motion Inc | 資料儲存裝置與快閃記憶體控制方法 |
US9495287B2 (en) | 2012-09-26 | 2016-11-15 | International Business Machines Corporation | Solid state memory device logical and physical partitioning |
US9208074B2 (en) | 2013-08-30 | 2015-12-08 | Silicon Motion, Inc. | Updating address mapping in sub-intervals in a flash memory data storage device |
US9418131B1 (en) | 2013-09-24 | 2016-08-16 | Emc Corporation | Synchronization of volumes |
US9378106B1 (en) | 2013-09-26 | 2016-06-28 | Emc Corporation | Hash-based replication |
US9208162B1 (en) | 2013-09-26 | 2015-12-08 | Emc Corporation | Generating a short hash handle |
US9037822B1 (en) | 2013-09-26 | 2015-05-19 | Emc Corporation | Hierarchical volume tree |
US9367398B1 (en) | 2014-03-28 | 2016-06-14 | Emc Corporation | Backing up journal data to a memory of another node |
US9442941B1 (en) | 2014-03-28 | 2016-09-13 | Emc Corporation | Data structure for hash digest metadata component |
US9606870B1 (en) | 2014-03-31 | 2017-03-28 | EMC IP Holding Company LLC | Data reduction techniques in a flash-based key/value cluster storage |
US9342465B1 (en) | 2014-03-31 | 2016-05-17 | Emc Corporation | Encrypting data in a flash-based contents-addressable block device |
KR102254392B1 (ko) | 2014-05-12 | 2021-05-25 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템 |
KR102430198B1 (ko) | 2014-06-12 | 2022-08-05 | 삼성전자주식회사 | 플래시 저장 장치의 어드레스 매핑 테이블 정리 방법 |
US9396243B1 (en) | 2014-06-27 | 2016-07-19 | Emc Corporation | Hash-based replication using short hash handle and identity bit |
US10025843B1 (en) | 2014-09-24 | 2018-07-17 | EMC IP Holding Company LLC | Adjusting consistency groups during asynchronous replication |
US9304889B1 (en) | 2014-09-24 | 2016-04-05 | Emc Corporation | Suspending data replication |
US9740632B1 (en) | 2014-09-25 | 2017-08-22 | EMC IP Holding Company LLC | Snapshot efficiency |
US9990278B2 (en) * | 2014-10-20 | 2018-06-05 | Cypress Semiconductor Corporation | Overlaid erase block mapping |
KR102282952B1 (ko) | 2014-12-15 | 2021-07-30 | 삼성전자주식회사 | 스토리지 장치의 동작 방법 |
KR102449192B1 (ko) * | 2015-09-10 | 2022-09-29 | 삼성전자주식회사 | 데이터 저장 장치의 작동 방법과 이를 포함하는 데이터 처리 시스템의 작동 방법 |
TWI646461B (zh) * | 2016-10-12 | 2019-01-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
TWI537729B (zh) | 2015-10-15 | 2016-06-11 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
US10073769B2 (en) | 2015-10-15 | 2018-09-11 | Silicon Motion, Inc. | Data storage device and data maintenance method thereof |
TW201723820A (zh) * | 2015-12-22 | 2017-07-01 | an-song Wang | 具環保可調式之高速運動控制系統 |
US10101925B2 (en) * | 2015-12-23 | 2018-10-16 | Toshiba Memory Corporation | Data invalidation acceleration through approximation of valid data counts |
US10152527B1 (en) | 2015-12-28 | 2018-12-11 | EMC IP Holding Company LLC | Increment resynchronization in hash-based replication |
TWI609323B (zh) * | 2016-01-29 | 2017-12-21 | 捷鼎國際股份有限公司 | 資料儲存方法及其系統 |
US10324635B1 (en) | 2016-03-22 | 2019-06-18 | EMC IP Holding Company LLC | Adaptive compression for data replication in a storage system |
US10310951B1 (en) | 2016-03-22 | 2019-06-04 | EMC IP Holding Company LLC | Storage system asynchronous data replication cycle trigger with empty cycle detection |
US10565058B1 (en) | 2016-03-30 | 2020-02-18 | EMC IP Holding Company LLC | Adaptive hash-based data replication in a storage system |
US9959063B1 (en) | 2016-03-30 | 2018-05-01 | EMC IP Holding Company LLC | Parallel migration of multiple consistency groups in a storage system |
US10095428B1 (en) | 2016-03-30 | 2018-10-09 | EMC IP Holding Company LLC | Live migration of a tree of replicas in a storage system |
US9959073B1 (en) | 2016-03-30 | 2018-05-01 | EMC IP Holding Company LLC | Detection of host connectivity for data migration in a storage system |
US10216415B2 (en) * | 2016-05-18 | 2019-02-26 | Intel Corporation | Computer program product, system, and method for dynamically increasing the capacity of a storage device |
US9983937B1 (en) | 2016-06-29 | 2018-05-29 | EMC IP Holding Company LLC | Smooth restart of storage clusters in a storage system |
US10152232B1 (en) | 2016-06-29 | 2018-12-11 | EMC IP Holding Company LLC | Low-impact application-level performance monitoring with minimal and automatically upgradable instrumentation in a storage system |
US10083067B1 (en) | 2016-06-29 | 2018-09-25 | EMC IP Holding Company LLC | Thread management in a storage system |
US10048874B1 (en) | 2016-06-29 | 2018-08-14 | EMC IP Holding Company LLC | Flow control with a dynamic window in a storage system with latency guarantees |
CN107765989B (zh) * | 2016-08-16 | 2020-08-11 | 上海磁宇信息科技有限公司 | 一种存储设备控制芯片、存储设备及存储设备管理方法 |
US10402340B2 (en) * | 2017-02-21 | 2019-09-03 | Micron Technology, Inc. | Memory array page table walk |
TWI692690B (zh) * | 2017-12-05 | 2020-05-01 | 慧榮科技股份有限公司 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
KR20200030245A (ko) * | 2018-09-12 | 2020-03-20 | 에스케이하이닉스 주식회사 | 메모리 시스템에서의 유효 데이터 관리 방법 및 장치 |
CN110058817A (zh) * | 2019-04-11 | 2019-07-26 | 深圳大普微电子科技有限公司 | 一种固态硬盘垃圾处理方法及其固态硬盘 |
CN112148203B (zh) * | 2019-06-27 | 2023-12-05 | 龙芯中科技术股份有限公司 | 存储器管理方法、装置、电子设备及存储介质 |
CN110427285B (zh) * | 2019-08-06 | 2023-05-09 | 北京中电华大电子设计有限责任公司 | 一种高性能的智能卡镜像保护方法 |
TWI721660B (zh) * | 2019-11-22 | 2021-03-11 | 財團法人工業技術研究院 | 控制資料讀寫裝置與方法 |
US11733895B2 (en) * | 2021-03-31 | 2023-08-22 | Silicon Motion, Inc. | Control method of flash memory controller and associated flash memory controller and storage device |
US11748011B2 (en) * | 2021-03-31 | 2023-09-05 | Silicon Motion, Inc. | Control method of flash memory controller and associated flash memory controller and storage device |
CN113094294B (zh) * | 2021-04-12 | 2024-02-13 | 深圳忆联信息系统有限公司 | Ssd异常掉电处理方法、装置、计算机设备及存储介质 |
CN114415942B (zh) * | 2021-12-21 | 2022-11-04 | 联芸科技(杭州)股份有限公司 | L2p映射表重建方法及固态硬盘 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI240861B (en) * | 2002-01-11 | 2005-10-01 | Integrated Circuit Solution In | Data access method and architecture of flash memory |
TW200643713A (en) * | 2005-03-31 | 2006-12-16 | Tokyo Electron Device Ltd | Storage device, memory managing apparatus, memory managing method, and program |
US20080172523A1 (en) * | 2007-01-11 | 2008-07-17 | Hitachi, Ltd. | Flash memory module, storage apparatus using flash memory module as storage medium, and address translation table verification method for flash memory module |
US20080183955A1 (en) * | 2007-01-25 | 2008-07-31 | Genesys Logic, Inc. | Flash translation layer apparatus |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8131912B2 (en) * | 2007-09-27 | 2012-03-06 | Kabushiki Kaisha Toshiba | Memory system |
-
2009
- 2009-01-15 TW TW098101405A patent/TWI413931B/zh active
- 2009-03-04 US US12/397,643 patent/US8180953B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI240861B (en) * | 2002-01-11 | 2005-10-01 | Integrated Circuit Solution In | Data access method and architecture of flash memory |
TW200643713A (en) * | 2005-03-31 | 2006-12-16 | Tokyo Electron Device Ltd | Storage device, memory managing apparatus, memory managing method, and program |
US20080172523A1 (en) * | 2007-01-11 | 2008-07-17 | Hitachi, Ltd. | Flash memory module, storage apparatus using flash memory module as storage medium, and address translation table verification method for flash memory module |
US20080183955A1 (en) * | 2007-01-25 | 2008-07-31 | Genesys Logic, Inc. | Flash translation layer apparatus |
TW200832440A (en) * | 2007-01-25 | 2008-08-01 | Genesys Logic Inc | Flash memory translation layer system |
Also Published As
Publication number | Publication date |
---|---|
US8180953B2 (en) | 2012-05-15 |
US20100180145A1 (en) | 2010-07-15 |
TW201027420A (en) | 2010-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI413931B (zh) | 快閃記憶體資料之存取方法及其儲存系統與控制系統 | |
TWI537728B (zh) | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI681295B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI584122B (zh) | 緩衝記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 | |
TWI454911B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US9176865B2 (en) | Data writing method, memory controller, and memory storage device | |
TWI405209B (zh) | 資料管理方法及使用此方法的快閃儲存系統與控制器 | |
TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI470431B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI436212B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI584189B (zh) | 記憶體控制器、記憶體儲存裝置與資料寫入方法 | |
TWI656531B (zh) | 平均磨損方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI582776B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI421870B (zh) | 用於快閃記憶體的資料寫入方法及其控制器與儲存系統 | |
US8037236B2 (en) | Flash memory writing method and storage system and controller using the same | |
TWI447579B (zh) | 程式碼載入與存取方法、記憶體控制器與記憶體儲存裝置 | |
TWI438630B (zh) | 用於非揮發性記憶體的資料合併方法、控制器與儲存裝置 | |
TWI540428B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TW201344434A (zh) | 記憶體格式化方法、記憶體控制器及記憶體儲存裝置 | |
TWI448892B (zh) | 資料搬移方法、記憶體控制器與記憶體儲存裝置 | |
TWI501244B (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US9778862B2 (en) | Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus | |
TWI446170B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI436209B (zh) | 記憶體管理表處理方法、記憶體控制器與記憶體儲存裝置 |