TW201905701A - 管理快閃記憶體模組的方法及相關的快閃記憶體控制器 - Google Patents
管理快閃記憶體模組的方法及相關的快閃記憶體控制器Info
- Publication number
- TW201905701A TW201905701A TW107100021A TW107100021A TW201905701A TW 201905701 A TW201905701 A TW 201905701A TW 107100021 A TW107100021 A TW 107100021A TW 107100021 A TW107100021 A TW 107100021A TW 201905701 A TW201905701 A TW 201905701A
- Authority
- TW
- Taiwan
- Prior art keywords
- temporary storage
- data
- storage block
- flash memory
- block
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000013507 mapping Methods 0.000 claims description 30
- 238000011084 recovery Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 7
- 239000010410 layer Substances 0.000 description 6
- 238000012937 correction Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明揭露一種管理一快閃記憶體模組的方法,其中該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含多個第一暫存區塊以及多個第二暫存區塊,每一個第一暫存區塊及第二暫存區塊包含了多個資料頁,以及該方法包含有:將一資料寫入至該多個第二暫存區塊中的一第二暫存區塊中;當該快閃記憶體模組的存取符合一特定條件時,將儲存於該第二暫存區塊中的該資料搬移至該多個第一暫存區塊中的一第一暫存區塊,並在該第一暫存區塊中記錄目前該第二暫存區塊之第一個空白資料頁的資訊。
Description
本發明係有關於快閃記憶體,尤指一種管理快閃記憶體模組的方法及相關的快閃記憶體控制器。
在採用立體NAND型快閃記憶體(3D NAND-type flash)的架構中,當快閃記憶體控制器需要將資料寫入至快閃記憶體模組中的多層式儲存(Multiple-Level Cell,MLC)區塊或是三層式儲存(Triple-Level Cell,TLC)區塊時,一次寫入的資料量必須要很大,例如64千位元組(KB)或是128KB,然而,若是快閃記憶體控制器需要寫入的資料具有很小資料量(例如,4KB)的隨機資料時,則快閃記憶體控制器需要加入60KB或是124KB的虛擬無效資料(dummy data)至4KB的隨機資料中,以使得一次寫入的資料量為64KB或是128KB。在這種情況下,若是具有很小資料量的隨機資料量很多的時候,每一個區塊的大部分內容都會是無效資料,因此會使得快閃記憶體模組的空間會很快地不足,進而需要頻繁地進行垃圾資料回收(garbage collection)操作,影響到系統效能。
為了避免上述情況,可以在快閃記憶體模組中另外設置一暫存區塊,其用來收集這些具有很小資料量的隨機資料,等到收集到足夠資料量的時候再從該暫存區塊寫回到上述的多層式儲存區塊或是三層式儲存區塊。然而,若是在這種資料寫入的過程中發生斷電後回復(power off recovery,POR)或是突發斷電後回復(sudden power off recovery,SPOR)狀況時,則會無法判斷暫存區塊與多層式儲存區塊或是三層式儲存區塊中的資料的新舊,進而造成後續重新建立位址映射表上的問題。
因此,本發明的目的之一在於提供一種管理快閃記憶體模組的方法,其可以在發生斷電後回復或是突發斷電後回復狀況時,仍然可以正確地判斷出暫存區塊與多層式儲存區塊或是三層式儲存區塊中的資料的新舊,以順利地重新建立位址映射表,以解決先前技術中的問題。
在本發明的一個實施例中,揭露了一種管理一快閃記憶體模組的方法,其中該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含多個第一暫存區塊以及多個第二暫存區塊,每一個第一暫存區塊及第二暫存區塊包含了多個資料頁,以及該方法包含有:將一第一資料寫入至該多個第二暫存區塊中的一第二暫存區塊中;當該快閃記憶體模組的存取符合一特定條件時,將儲存於該第二暫存區塊中的該第一資料搬移至該多個第一暫存區塊中的一第一暫存區塊,並在該第一暫存區塊中記錄目前該第二暫存區塊之第一個空白資料頁的資訊。
在本發明的另一個實施例中,揭露了一種管理一快閃記憶體模組的方法,其中該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含多個第一暫存區塊以及多個第二暫存區塊,每一個第一暫存區塊及第二暫存區塊包含了多個資料頁,以及該方法包含有:當發生斷電後回復狀況時,讀取一第一暫存區塊中一資料頁的備用區域的內容,並決定出一資料頁序號;判斷一第二暫存區塊中位於該資料頁序號之前的所有資料頁為無效資料頁;以及判斷該第二暫存區塊中包含該資料頁序號及之後的所有資料頁為有效資料頁。
在本發明的另一個實施例中,揭露了一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含多個第一暫存區塊以及多個第二暫存區塊,每一個第一暫存區塊及第二暫存區塊包含了多個資料頁,且該快閃記憶體控制器包含有一唯讀記憶體以及一微處理器,其中該唯讀記憶體用來儲存一程式碼,且該微處理器用來執行該程式碼以控制對該快閃記憶體模組之存取;其中該微處理器將一第一資料寫入至該多個第二暫存區塊中的一第二暫存區塊中;以及當該快閃記憶體模組的存取符合一特定條件時,該微處理器將儲存於該第二暫存區塊中的該第一資料搬移至該多個第一暫存區塊中的一第一暫存區塊,並在該第一暫存區塊中記錄目前該第二暫存區塊之第一個空白資料頁的資訊。
在本發明的另一個實施例中,揭露了一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含多個第一暫存區塊以及多個第二暫存區塊,每一個第一暫存區塊及第二暫存區塊包含了多個資料頁,且該快閃記憶體控制器包含有一唯讀記憶體以及一微處理器,其中該唯讀記憶體用來儲存一程式碼,且該微處理器用來執行該程式碼以控制對該快閃記憶體模組之存取;其中當發生斷電後回復狀況時,該微處理器讀取一第一暫存區塊中一資料頁的備用區域的內容,並決定出一資料頁序號;以及該微處理器判斷一第二暫存區塊中位於該資料頁序號之前的所有資料頁為無效資料頁,且判斷該第二暫存區塊中包含該資料頁序號及之後的所有資料頁為有效資料頁。
參考第1圖,第1圖為依據本發明一實施例之一記憶裝置100的示意圖。記憶裝置100包含有一快閃記憶體模組120以及一快閃記憶體控制器110,且快閃記憶體控制器110用來存取快閃記憶體模組120。依據本實施例,快閃記憶體控制器110包含一微處理器112、一唯讀記憶體(Read Only Memory, ROM)112M、一控制邏輯114、一緩衝記憶體116、與一介面邏輯118。唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對快閃記憶體模組120之存取(Access)。控制邏輯114包含了一編碼器132以及一解碼器134,其中編碼器132用來對寫入到快閃記憶體模組120中的資料進行編碼以產生對應的校驗碼(或稱,錯誤更正碼(Error Correction Code),ECC),而解碼器134用來將從快閃記憶體模組120所讀出的資料進行解碼。
於典型狀況下,快閃記憶體模組120包含了多個快閃記憶體晶片,而每一個快閃記憶體晶片包含複數個區塊(Block),而該控制器(例如:透過微處理器112執行程式碼112C之快閃記憶體控制器110)對快閃記憶體模組120進行抹除資料運作係以區塊為單位來進行。另外,一區塊可記錄特定數量的資料頁(Page),其中該控制器(例如:透過微處理器112執行程式碼112C之記憶體控制器110)對快閃記憶體模組120進行寫入資料之運作係以資料頁為單位來進行寫入。在本實施例中,快閃記憶體模組120為一立體NAND型快閃記憶體(3D NAND-type flash)。
實作上,透過微處理器112執行程式碼112C之快閃記憶體控制器110可利用其本身內部之元件來進行諸多控制運作,例如:利用控制邏輯114來控制快閃記憶體模組120之存取運作(尤其是對至少一區塊或至少一資料頁之存取運作)、利用緩衝記憶體116進行所需之緩衝處理、以及利用介面邏輯118來與一主裝置(Host Device)130溝通。
在一實施例中,記憶裝置100可以是可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主裝置130為一可與記憶裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦…等等。而在另一實施例中,記憶裝置100可以設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主裝置130可以是該電子裝置的一處理器。
參考第2圖,其為根據本發明一實施例之管理快閃記憶體模組120的流程圖。在步驟200中,流程開始。在步驟202中,快閃記憶體控制器110接收來自主裝置130的一寫入命令,以將一資料寫入至快閃記憶體模組120的一區塊中。在本實施例中,參考第3A圖,快閃記憶體模組120包含了多個快閃記憶體晶片310、320,每一個快閃記憶體晶片包含了多個資料區塊DB_0~DB_M、多個第二暫存區塊TB_SLC_0~TB_SLC_N及多個第一暫存區塊TB_MLC_0~TB_MLC_K,而每一個區塊均包含了多個資料頁。在本實施例中,第二暫存區塊TB_SLC_0~TB_SLC_N為單層式儲存 (Single-Level Cell,SLC)區塊,且資料區塊DB_0~DB_M以及第一暫存區塊TB_MLC_0~TB_MLC_K為多層式儲存(MLC)區塊,但不以此為限,於其他實施例中資料區塊DB0~DB_M及/或第一暫存區塊TB_MLC_0~TB_MLC_K可為三層式儲存(TLC)區塊。在一實施例中,第二暫存區塊TB_SLC_0~TB_SLC_N亦可使用多層式儲存區塊來做為單層式儲存區塊來使用。在快閃記憶體模組120的實際操作中,可以“超級區塊”來作為資料寫入的模式,具體來說,參考第3B圖,其為根據本發明一實施例之超級區塊的示意圖。如第3B圖所示,假設每一個快閃記憶體晶片310、320中的區塊均分為兩個平面(plane),且快閃記憶體模組120僅包含兩個快閃記憶體晶片310、320,故快閃記憶體晶片310、320中位於不同平面的四個區塊便可以構成一超級區塊。在第3B圖中,快閃記憶體晶片310、320中的資料區塊DB_0、DB_1構成一超級區塊352、快閃記憶體晶片310、320中的第二暫存區塊TB_SLC_0、TB_SLC_1構成一超級區塊354、且快閃記憶體晶片310、320中的第一暫存區塊TB_MLC_0、TB_MLC_1構成一超級區塊356…以此類推。當資料需要寫入到快閃記憶體模組120時,每一次都需要寫入到超級區塊中的每一個資料頁、亦即四個區塊的一個資料頁中,舉例來說,假設一區塊中的一個資料頁的大小為16KB,則快閃記憶體控制器110一次需要寫入64KB的資料至一超級區塊356的一個資料頁,亦即將這64KB的資料依序寫入到快閃記憶體晶片310中第一暫存區塊TB_MLC_0的一個資料頁、快閃記憶體晶片310中第一暫存區塊TB_MLC_1的一個資料頁、快閃記憶體晶片320中第一暫存區塊TB_MLC_0的一個資料頁、以及快閃記憶體晶片320中第一暫存區塊TB_MLC_1的一個資料頁。於其他實施例中,快閃記憶體控制器110一次需要寫入128KB的資料至一超級區塊356的二個資料頁,亦即將這128KB的資料寫入到快閃記憶體晶片310中第一暫存區塊TB_MLC_0的二個資料頁、快閃記憶體晶片310中第一暫存區塊TB_MLC_1的二個資料頁、快閃記憶體晶片320中第一暫存區塊TB_MLC_0的二個資料頁、以及快閃記憶體晶片320中第一暫存區塊TB_MLC_1的二個資料頁。
在本實施例中,當資料需要寫入至快閃記憶體模組120時,快閃記憶體控制器110會由第一暫存區塊TB_MLC_0~TB_MLC_K中選擇一個來進行儲存,而由於快閃記憶體控制器110對於第一暫存區塊TB_MLC_0~TB_MLC_K一次寫入的資料量需要大於一臨界值(例如,上述的64KB),因此,在步驟204中,快閃記憶體控制器110判斷快閃記憶體模組120的存取是否符合一特定條件,若否,流程進入步驟206;若是,則流程進入至步驟208。具體來說,該特定條件指的是步驟202中所述之寫入命令所對應的資料以及目前儲存在第二暫存區塊中且尚未搬移至第一暫存區塊之資料的資料量總和是否到達該臨界值。
在步驟206中,快閃記憶體控制器110將步驟202中所述之寫入命令所對應的資料寫入至該第一暫存區塊中。在步驟208中,快閃記憶體控制器110將步驟202中所述之寫入命令所對應的資料,連同目前儲存在該第二暫存區塊中且尚未搬移至該第一暫存區塊之資料,一併寫入至該第一暫存區塊中,此外,在該第一暫存區塊中記錄目前該第二暫存區塊之第一個空白資料頁的資訊。接著,流程回到步驟202。
以下透過第4圖來舉一例子來詳細說明第2圖所示之流程圖,需注意的是,為了方便理解,第4圖係以第二暫存區塊TB_SLC_0以及第一暫存區塊TB_MLC_0來做為說明,但本領域技術人員應能了解上述暫存區塊在實作上可以是第3B圖所示的超級區塊。首先,快閃記憶體控制器110自主裝置130接收到一第一寫入命令,假設該第一寫入命令所對應之資料為隨機資料(例如4KB)且資料量不到該臨界值,則快閃記憶體控制器110將該第一寫入命令所對應之資料寫入至第二暫存區塊TB_SLC_0的第一個資料頁P0中;接著,快閃記憶體控制器110自主裝置130依序接收到一第二寫入命令及一第三寫入命令,假設該第二、第三寫入命令所對應之資料亦為隨機資料(例如4KB),則快閃記憶體控制器110會依序將該第二、第三寫入命令所對應之資料寫入至第二暫存區塊TB_SLC_0的資料頁P1、P2中。接著,快閃記憶體控制器110自主裝置130接收到一第四寫入命令,而假設該第四寫入命令所對應之資料為連續資料,且該資料的資料量為大於該臨界值的548KB,則由於待寫入至第一暫存區塊TB_MLC_0的資料量大於該臨界值,則快閃記憶體控制器110此時會先將第二暫存區塊TB_SLC_0之資料頁P0~P2的的有效資料(共12KB)連同該第四寫入命令所對應之資料(548KB)一起寫入至第一暫存區塊TB_MLC_0的資料頁P0~P34中。在本實施例中,快閃記憶體控制器110在將資料寫入到第一暫存區塊TB_MLC_0的過程中,會在每一個資料頁P0~P34的一備用區域中記錄目前第二暫存區塊TB_SLC_0的第一個空白資料頁的資訊(亦即資料頁P3)。在本實施例中,該備用區域的大小通常是64B或是128B,且一般是用來儲存檔案系統的管理資訊。
一般而言,當快閃記憶體控制器110接收到該第一、第二、第三寫入命令所對應之資料時,係先將該第一、第二、第三寫入命令所對應之資料暫存於緩衝記憶體116中,而當快閃記憶體控制器110將該第一、第二、第三寫入命令所對應之資料寫入至第二暫存區塊TB_SLC_0的資料頁P0、P1、P2後,將刪除緩衝記憶體116中暫存的對應資料。於此實施例中,當快閃記憶體控制器110將該第一、第二、第三寫入命令所對應之資料寫入至第二暫存區塊TB_SLC_0的資料頁P0、P1、P2後,係不刪除暫存於緩衝記憶體116中之該第一、第二、第三寫入命令所對應之資料。當收到該第四寫入命令時,快閃記憶體控制器110將該第四寫入命令所對應之資料暫存於緩衝記憶體116後,直接從緩衝記憶體116中讀取該第一至第四寫入命令所對應之資料,將其一併寫入至第一暫存區塊TB_MLC_0的資料頁P0~P34中,接著再刪除緩衝記憶體116中暫存之該第一至第四寫入命令所對應之資料。於其他實施例中,當快閃記憶體控制器110將該第一、第二、第三寫入命令所對應之資料寫入至第二暫存區塊TB_SLC_0的資料頁P0、P1、P2後,係刪除暫存於緩衝記憶體116中之該第一、第二、第三寫入命令所對應之資料。當收到該第四寫入命令時,快閃記憶體控制器110將該第四寫入命令所對應之資料暫存於緩衝記憶體116後,從第二暫存區塊TB_SLC_0的資料頁P0、P1、P2讀取資料至緩衝記憶體116之後,再從緩衝記憶體116中讀取該第一至第四寫入命令所對應之資料,將其一併寫入至第一暫存區塊TB_MLC_0的資料頁P0~P34中。
需注意的是,在上述的實施例中,第一暫存區塊TB_MLC_0中所記錄之第二暫存區塊TB_SLC_0的第一個空白資料頁的資訊是資料頁P3,但本發明並不以此為限,在其他實施例中,所謂“第二暫存區塊TB_SLC_0的第一個空白資料頁的資訊”可以是任何可以關聯到並據以決定出資料頁P3的內容,例如第二暫存區塊TB_SLC_0之最後一個有資料寫入之資料頁的序號,這些設計上的變化應隸屬於本發明的範疇。
接著,快閃記憶體控制器110自主裝置130接收到一第五寫入命令及一第六寫入命令,假設該第五、第六寫入命令所對應之資料為隨機資料,則快閃記憶體控制器110會依序將該第五、第六寫入命令所對應之資料寫入至第二暫存區塊TB_SLC_0的資料頁P3、P4中。在本實施例中,係假設第二暫存區塊TB_SLC_0的資料頁P4所儲存的資料是用來更新第二暫存區塊TB_SLC_0的資料頁P1所儲存的資料,亦即第二暫存區塊TB_SLC_0的資料頁P1、P4與第一暫存區塊TB_MLC_0的資料頁P1對應到相同的邏輯位址。
在第2~4圖的實施例中,在第一暫存區塊TB_MLC_0中的資料頁P0~P34的備用區域中記錄在其資料寫入過程中第二暫存區塊TB_SLC_0的第一個空白資料頁的資訊的目的是為了避免後續發生斷電後回復(POR)或是突發斷電後回復(SPOR)狀況時無法判斷第一暫存區塊TB_MLC0與第二暫存區塊TB_SLC_0中的資料新舊問題,而造成錯誤。以下第5、6圖所示的實施例將說明如何利用第一暫存區塊TB_MLC_0所記錄之第二暫存區塊TB_SLC_0的第一個空白資料頁的資訊來正確地判斷第一暫存區塊TB_MLC_0與第二暫存區塊TB_SLC_0中的資料新舊。
參考第5圖,其為根據本發明一實施例之管理快閃記憶體模組120的方法的流程圖。在步驟500中,記憶裝置100遭遇到斷電後回復(POR)或是突發斷電後回復(SPOR)的狀況,因此,原本儲存在緩衝記憶體116中的位址映射表均已遺失。在步驟502中,快閃記憶體控制器110讀取第一暫存區塊的最後一個有資料寫入的資料頁的備用區域的內容,以決定出第二暫存區塊的一資料頁序號。在步驟504中,快閃記憶體控制器110判斷第二暫存區塊中從該資料頁序號開始的資料是最新的資料,而該資料頁序號之前的都是舊資料(無效資料)。在步驟506中,快閃記憶體控制器110根據步驟504的判斷結果來重新建立位址映射表。
具體來說,接續著第4圖所示的實施例,並同時參考第6圖,當記憶裝置100遭遇到斷電後回復(POR)或是突發斷電後回復(SPOR)的狀況後,快閃記憶體控制器110會需要重新建立分別對應到第二暫存區塊TB_SLC_0以及第一暫存區塊TB_MLC_0的位址映射表。此時,快閃記憶體控制器110會直接至第一暫存區塊TB_MLC_0的最後一個有資料寫入的資料頁(亦即,P34)的備用區域讀取內容,並得到一個資料頁序號(亦即,P3),而在建立第二暫存區塊TB_SLC_0之位址映射表的過程中,快閃記憶體控制器110會直接判斷第二暫存區塊TB_SLC_0從資料頁P3開始以後的資料才是新的資料,而資料頁P3之前的資料都是舊的資料,因此,第二暫存區塊TB_SLC_0的位址映射表只會記錄有關於資料頁P3、P4的實體位址及對應的邏輯位址,而並不會記錄有關於資料頁P0~P2的位址資訊。
此外,關於第一暫存區塊TB_MLC_0的位址映射表,快閃記憶體控制器110則會循序地讀取第一暫存區塊TB_MLC_0中每一個資料頁的資訊以重新建立出第一暫存區塊TB_MLC_0中每一個資料頁P0~P34的實體位址及對應的邏輯位址。
在以上的實施例中,由於在斷電後回復或是突發斷電後回復的狀況後所重新建立之第二暫存區塊TB_SLC_0的位址映射表僅會包含最新的資訊,因此若是第二暫存區塊TB_SLC_0與第一暫存區塊TB_MLC_0的位址映射表具有一相同的邏輯位址,例如第6圖所示之第二暫存區塊TB_SLC_0之資料頁P4與第一暫存區塊TB_MLC_0之資料頁P1具有相同的邏輯位址(LBA_001),則可以直接地判斷第二暫存區塊TB_SLC_0之資料頁P4是最新的資料,亦即第二暫存區塊TB_SLC_0之資料頁P4的資料是用來更新第一暫存區塊TB_MLC_0之資料頁P1的內容。在一實施例中,若是此時快閃記憶體控制器110接收到一要求讀取邏輯位址LBA_001的讀取命令,則快閃記憶體控制器110會直接先從第二暫存區塊TB_SLC_0的位址映射表來取得對應的實體位址,並自第二暫存區塊TB_SLC_0之資料頁P4來讀取資料,而並不需要去讀取第一暫存區塊TB_MLC_0之位址映射表的內容。
在一實施例中,當多個第一暫存區塊完成資料寫入之後,可以對該些第一暫存區塊進行垃圾收集(garbage collection)操作,以將其中的有效資料搬移至至少一資料區塊(例如,DB_0)中,而該些第一暫存區塊之後則便可以被釋放出來以繼續供資料寫入之用。
簡要歸納本發明,在本發明之管理快閃記憶體模組的方法中,係使用兩個暫存區塊(第一暫存區塊以及第二暫存區塊)來儲存寫入至快閃記憶體模組中的資料,其中第一暫存區塊主要是用來儲存資料量大於一臨界值(例如,64KB)的資料,而第二暫存區塊則是用來儲存資料量小於該臨界值的隨機資料。另外,透過在第一暫存區塊中記錄目前第二暫存區塊的最後一個空白資料頁的資訊,可以在發生斷電後回復或是突發斷電後回復的狀況後能夠準確地判斷出第二暫存區塊與第一暫存區塊中的資料新舊,特別是當第一暫存區塊與第二暫存區塊中有資料頁具有相同邏輯位址的情況,以確實解決先前技術的問題。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100‧‧‧記憶裝置
110‧‧‧快閃記憶體控制器
112‧‧‧微處理器
112C‧‧‧程式碼
112M‧‧‧唯讀記憶體
114‧‧‧控制邏輯
116‧‧‧緩衝記憶體
118‧‧‧介面邏輯
120‧‧‧快閃記憶體模組
130‧‧‧主裝置
132‧‧‧編碼器
134‧‧‧解碼器
200~208、500~506‧‧‧步驟
310、320‧‧‧快閃記憶體晶片
352、534、536‧‧‧超級區塊
DB_0~DB_M‧‧‧資料區塊
TB_MLC_0~TB_MLC_K‧‧‧第一暫存區塊
TB_SLC0~TB_SLC_N‧‧‧第二暫存區塊
P0~P34‧‧‧資料頁
LBA_001、LBA_XXX‧‧‧邏輯位址
第1圖為依據本發明一實施例之一記憶裝置的示意圖。 第2圖為根據本發明一實施例之管理快閃記憶體模組的流程圖。 第3A圖為管理快閃記憶體模組的示意圖。 第3B圖為根據本發明一實施例之超級區塊的示意圖。 第4圖為根據本發明一實施例之將資料寫入至暫存區塊以及資料區塊的示意圖。 第5圖為根據本發明另一實施例之管理快閃記憶體模組的流程圖。 第6圖為根據本發明一實施例之重新建立暫存區塊以及資料區塊的位址映射表的示意圖。
Claims (20)
- 一種管理一快閃記憶體模組的方法,其中該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含多個第一暫存區塊以及多個第二暫存區塊,每一個第一暫存區塊及第二暫存區塊包含了多個資料頁,以及該方法包含有: 將一第一資料寫入至該多個第二暫存區塊中的一第二暫存區塊中; 當該快閃記憶體模組的存取符合一特定條件時,將儲存於該第二暫存區塊中的該第一資料搬移至該多個第一暫存區塊中的一第一暫存區塊,並在該第一暫存區塊中記錄目前該第二暫存區塊之第一個空白資料頁的資訊。
- 如申請專利範圍第1項所述之方法,其中該第二暫存區塊為一單層式儲存 (Single-Level Cell,SLC)區塊,且該第一暫存區塊為多層式儲存(Multiple-Level Cell,MLC)區塊或是三層式儲存(Triple-Level Cell,TLC)區塊。
- 如申請專利範圍第1項所述之方法,其中該第二暫存區塊之第一個空白資料頁的資訊為該第二暫存區塊之第一個空白資料頁的序號,或是該第二暫存區塊之最後一個有資料寫入之資料頁的序號。
- 如申請專利範圍第1項所述之方法,其中將儲存於該第二暫存區塊中的該第一資料搬移至該第一暫存區塊,並在該第一暫存區塊中記錄該第二暫存區塊中有關於第一個空白資料頁之序號的資訊的步驟包含有: 將儲存於該第二暫存區塊中的該第一資料搬移至該第一暫存區塊的多個資料頁中,並在該多個資料頁中每一個資料頁的一備用區域中記錄目前該第二暫存區塊之第一個空白資料頁的資訊。
- 如申請專利範圍第4項所述之方法,另包含有: 將一第二資料寫入至該第二暫存區塊中; 當該第二資料寫入的過程中發生斷電後回復(power off recovery,POR)狀況時,自該第一暫存區塊中最後一個有資料寫入之資料頁的備用區域中讀取該第二暫存區塊之第一個空白資料頁的資訊,並根據該資訊來判斷該第二暫存區塊中那些資料頁是無效資料頁,以及那些資料頁的內容尚未搬移到該第一暫存區塊中,以供建立邏輯實體位址映射表。
- 如申請專利範圍第5項所述之方法,其中該第二暫存區塊之第一個空白資料頁的資訊係為一資料頁序號,以及根據該資訊來判斷該第二暫存區塊中那些資料頁是無效資料頁,以及那些資料頁的內容尚未搬移到該第一暫存區塊中的步驟包含有: 判斷該第二暫存區塊中位於該資料頁序號之前的所有資料頁為無效資料頁;以及 判斷該第二暫存區塊中包含該資料頁序號及之後的所有資料頁為有效資料頁,且該些有效資料頁的內容為該快閃記憶體模組中最新的資料。
- 一種管理一快閃記憶體模組的方法,其中該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含多個第一暫存區塊以及多個第二暫存區塊,每一個第一暫存區塊及第二暫存區塊包含了多個資料頁,以及該方法包含有: 當發生斷電後回復(power off recovery,POR)狀況時,讀取一第一暫存區塊中一資料頁的備用區域的內容,並決定出一資料頁序號; 判斷一第二暫存區塊中位於該資料頁序號之前的所有資料頁為無效資料頁;以及 判斷該第二暫存區塊中包含該資料頁序號及之後的所有資料頁為有效資料頁。
- 如申請專利範圍第7項所述之方法,其中該第二暫存區塊為一單層式儲存 (Single-Level Cell,SLC)區塊,且該第一暫存區塊為多層式儲存(Multiple-Level Cell,MLC)區塊或是三層式儲存(Triple-Level Cell,TLC)區塊。
- 如申請專利範圍第7項所述之方法,其中讀取該第一暫存區塊中該資料頁的備用區域的內容,並決定出該資料頁序號的步驟包含有: 讀取該第一暫存區塊中最後一個有資料寫入之資料頁的備用區域,以決定出該資料頁序號,其中該資料頁序號為當該第一暫存區塊最後一次資料寫入時該第二暫存區塊之第一個空白資料頁的資訊。
- 如申請專利範圍第7項所述之方法,另包含有: 重新建立一位址映射表,其中該位址映射表不包含該第二暫存區塊中位於該資料頁序號之前的所有資料頁的邏輯位址及實體位址。
- 如申請專利範圍第7項所述之方法,另包含有: 建立一第一位址映射表,其中該第一位址映射表記錄了該第一暫存區塊中有資料寫入之所有資料頁的邏輯位址及實體位址;以及 建立一第二位址映射表,其中該第二位址映射表僅記錄了該第二暫存區塊中包含該資料頁序號及之後的所有資料頁的邏輯位址及實體位址。
- 如申請專利範圍第11項所述之方法,另包含有: 當該第一位址映射表與該第二位址映射表中具有相同的一特定邏輯位址時,判斷該第二位址映射表中對應於該特定邏輯位址之一特定實體位址為最新的資料。
- 一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含多個第一暫存區塊以及多個第二暫存區塊,每一個第一暫存區塊及第二暫存區塊包含了多個資料頁,且該快閃記憶體控制器包含有: 一唯讀記憶體,用來儲存一程式碼;以及 一微處理器,用來執行該程式碼以控制對該快閃記憶體模組之存取; 其中該微處理器將一第一資料寫入至該多個第二暫存區塊中的一第二暫存區塊中;以及當該快閃記憶體模組的存取符合一特定條件時,該微處理器將儲存於該第二暫存區塊中的該第一資料搬移至該多個第一暫存區塊中的一第一暫存區塊,並在該第一暫存區塊中記錄目前該第二暫存區塊之第一個空白資料頁的資訊。
- 如申請專利範圍第13項所述之快閃記憶體控制器,其中該第二暫存區塊為一單層式儲存 (Single-Level Cell,SLC)區塊,且該第一暫存區塊為多層式儲存(Multiple-Level Cell,MLC)區塊或是三層式儲存(Triple-Level Cell,TLC)區塊。
- 如申請專利範圍第13項所述之快閃記憶體控制器,其中該第二暫存區塊之第一個空白資料頁的資訊為該第二暫存區塊之第一個空白資料頁的序號,或是該第二暫存區塊之最後一個有資料寫入之資料頁的序號。
- 如申請專利範圍第13項所述之快閃記憶體控制器,其中該微處理器將儲存於該第二暫存區塊中的該第一資料搬移至該第一暫存區塊的多個資料頁中,並在該多個資料頁中每一個資料頁的一備用區域中記錄目前該第二暫存區塊之第一個空白資料頁的資訊。
- 一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,該快閃記憶體模組包含了多個快閃記憶體晶片,每一個快閃記憶體晶片包含多個第一暫存區塊以及多個第二暫存區塊,每一個第一暫存區塊及第二暫存區塊包含了多個資料頁,且該快閃記憶體控制器包含有: 一唯讀記憶體,用來儲存一程式碼;以及 一微處理器,用來執行該程式碼以控制對該快閃記憶體模組之存取; 其中當發生斷電後回復(power off recovery,POR)狀況時,該微處理器讀取一第一暫存區塊中一資料頁的備用區域的內容,並決定出一資料頁序號;以及該微處理器判斷一第二暫存區塊中位於該資料頁序號之前的所有資料頁為無效資料頁,且判斷該第二暫存區塊中包含該資料頁序號及之後的所有資料頁為有效資料頁。
- 如申請專利範圍第17項所述之快閃記憶體控制器,其中該微處理器讀取該第一暫存區塊中最後一個有資料寫入之資料頁的備用區域,以決定出該資料頁序號,其中該資料頁序號為當該第一暫存區塊最後一次資料寫入時該第二暫存區塊之第一個空白資料頁的資訊。
- 如申請專利範圍第17項所述之快閃記憶體控制器,其中該微處理器另建立一第一位址映射表,其中該第一位址映射表記錄了該第一暫存區塊中有資料寫入之所有資料頁的邏輯位址及實體位址;以及建立一第二位址映射表,其中該第二位址映射表記錄僅記錄了該第二暫存區塊中包含該資料頁序號及之後的所有資料頁的邏輯位址及實體位址。
- 如申請專利範圍第19項所述之快閃記憶體控制器,其中當該第一位址映射表與該第二位址映射表中具有相同的一特定邏輯位址時,該微處理器判斷該第二位址映射表中對應於該特定邏輯位址之一特定實體位址為最新的資料。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810444354.3A CN109117383B (zh) | 2017-06-25 | 2018-05-10 | 管理闪存模块的方法和闪存控制器 |
| US16/009,174 US10866751B2 (en) | 2017-06-25 | 2018-06-14 | Method for managing flash memory module and associated flash memory controller |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201762524602P | 2017-06-25 | 2017-06-25 | |
| US62/524,602 | 2017-06-25 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201905701A true TW201905701A (zh) | 2019-02-01 |
| TWI657339B TWI657339B (zh) | 2019-04-21 |
Family
ID=66213345
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW107100021A TWI657339B (zh) | 2017-06-25 | 2018-01-02 | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器 |
Country Status (1)
| Country | Link |
|---|---|
| TW (1) | TWI657339B (zh) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112099731A (zh) * | 2019-06-17 | 2020-12-18 | 慧荣科技股份有限公司 | 数据储存装置与数据处理方法 |
| TWI721666B (zh) * | 2019-03-11 | 2021-03-11 | 華邦電子股份有限公司 | 半導體儲存裝置 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI425523B (zh) * | 2008-03-25 | 2014-02-01 | Asmedia Technology Inc | 混合型快閃儲存裝置及其操作方法 |
| TWI368229B (en) * | 2008-05-06 | 2012-07-11 | Apacer Technology Inc | Method of managing storage unit and storage medium therefor |
| TWI509617B (zh) * | 2012-06-04 | 2015-11-21 | Silicon Motion Inc | 快閃記憶體裝置及快閃記憶體的資料存取方法 |
| TWI520153B (zh) * | 2013-11-05 | 2016-02-01 | 威盛電子股份有限公司 | 非揮發性記憶體裝置及其操作方法 |
-
2018
- 2018-01-02 TW TW107100021A patent/TWI657339B/zh active
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI721666B (zh) * | 2019-03-11 | 2021-03-11 | 華邦電子股份有限公司 | 半導體儲存裝置 |
| CN112099731A (zh) * | 2019-06-17 | 2020-12-18 | 慧荣科技股份有限公司 | 数据储存装置与数据处理方法 |
| CN112099731B (zh) * | 2019-06-17 | 2023-12-08 | 慧荣科技股份有限公司 | 数据储存装置与数据处理方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| TWI657339B (zh) | 2019-04-21 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109117383B (zh) | 管理闪存模块的方法和闪存控制器 | |
| TWI692690B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
| TWI650644B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 | |
| TWI720588B (zh) | 用以在記憶裝置中進行存取管理的方法、相關記憶裝置及其控制器以及相關電子裝置 | |
| US10372619B2 (en) | Data backup method, data recovery method and storage controller | |
| CN110058795B (zh) | 管理闪存模块的方法及相关的闪存控制器及电子装置 | |
| CN110908925B (zh) | 高效能垃圾收集方法以及数据存储装置及其控制器 | |
| TWI592800B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
| CN109697170B (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
| TWI592799B (zh) | 映射表更新方法、記憶體控制電路單元及記憶體儲存裝置 | |
| CN107590080B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
| CN111338562B (zh) | 数据存储装置与数据处理方法 | |
| US11748011B2 (en) | Control method of flash memory controller and associated flash memory controller and storage device | |
| CN113885808B (zh) | 映射信息记录方法以及存储器控制电路单元与存储装置 | |
| CN110633047A (zh) | 管理闪存模块的方法及相关的闪存控制器及电子装置 | |
| TWI574274B (zh) | 循環區塊模式下的資料存取方法以及使用該方法的裝置 | |
| CN113903383B (zh) | 存储装置、快闪存储器控制器及其存取方法 | |
| TWI657339B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器 | |
| CN109273033B (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
| CN113377282B (zh) | 数据存储装置与数据处理方法 | |
| TWI852599B (zh) | 記憶裝置、快閃記憶體控制器及其控制方法 | |
| TW201908957A (zh) | 資料寫入方法、記憶體控制電路單元及記憶體儲存裝置 | |
| TW201337553A (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
| TWI670598B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 | |
| TWI908450B (zh) | 快閃記憶體控制器的控制方法、快閃記憶體控制器及相關的記憶裝置 |