TWI692690B - 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 - Google Patents
存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 Download PDFInfo
- Publication number
- TWI692690B TWI692690B TW106142465A TW106142465A TWI692690B TW I692690 B TWI692690 B TW I692690B TW 106142465 A TW106142465 A TW 106142465A TW 106142465 A TW106142465 A TW 106142465A TW I692690 B TWI692690 B TW I692690B
- Authority
- TW
- Taiwan
- Prior art keywords
- logical address
- flash memory
- block
- physical
- address
- Prior art date
Links
Images
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
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- 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/7205—Cleaning, compaction, garbage collection, erase control
-
- 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/7207—Details relating to flash memory management management of metadata or control data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明揭露一種存取一快閃記憶體模組的方法,其包含有:建立對應於該快閃記憶體模組中一區塊之一邏輯位址群組記錄表,其中該邏輯位址群組記錄表標註了多個邏輯位址群組的狀態,其中每一個邏輯位址群組的該狀態係用來表示該區塊中所寫入的資料是否有具有位於該邏輯位址群組之中的任一邏輯位址;當該區塊需要進行一垃圾收集操作時,參考該邏輯位址群組記錄表以自該快閃記憶體模組讀取至少一邏輯位址至實體位址對照表;以及根據該至少一邏輯位址至實體位址對照表以決定出該區塊中的有效資料頁及無效資料頁,以供進行該垃圾收集操作。
Description
本發明有關於快閃記憶體,尤指一種存取快閃記憶體模組的方法及相關的快閃記憶體控制器。
當快閃記憶體模組中的空間不足時,快閃記憶體控制器會進行垃圾收集(garbage collection)操作以將多個區塊中的有效資料頁中的資料搬移到新的區塊中,並將原本的區塊內容抹除以釋放更多的儲存空間。然而,在上述的操作中,由於需要正確地判斷出每一個區塊中的有效資料頁及無效資料頁,因此會需要預先儲存相關的位址資訊以供進行比對判斷。然而,隨著區塊的大小增加及所包含的資料頁也跟著變多的情形下,上述位址資訊的資料量也大幅增加,進而影響到快閃記憶體模組中的儲存空間以及快閃記憶體控制器的處理效率。
因此,本發明的目的之一在於提供一種存取快閃記憶體模組的方
法,其可以利用很小的資料量來儲存每一個區塊中的位址資訊,且有效率地判斷出每一個區塊中的有效資料頁及無效資料頁,以解決先前技術中的問題。
在本發明的一個實施例中,揭露一種存取一快閃記憶體模組的方法,其包含有:建立對應於該快閃記憶體模組中一區塊之一邏輯位址群組記錄表,其中該邏輯位址群組記錄表標註了多個邏輯位址群組的狀態,其中每一個邏輯位址群組的該狀態係用來表示該區塊中所寫入的資料是否有具有位於該邏輯位址群組之中的任一邏輯位址;當該區塊需要進行一垃圾收集操作時,參考該邏輯位址群組記錄表以自該快閃記憶體模組讀取至少一邏輯位址至實體位址對照表;以及根據該至少一邏輯位址至實體位址對照表以決定出該區塊中的有效資料頁及無效資料頁,以供進行該垃圾收集操作。
在本發明的另一個實施例中,揭露了一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,且該快閃記憶體控制器包含有一唯讀記憶體、一微處理器以及一記憶體。該唯讀記憶體係用來儲存一程式碼;該微處理器係用來執行該程式碼以控制對該快閃記憶體模組之存取;以及該記憶體係用以儲存對應於該快閃記憶體模組中一區塊之一邏輯位址群組記錄表,其中該邏輯位址群組記錄表標註了多個邏輯位址群組的狀態,其中每一個邏輯位址群組的該狀態係用來表示該區塊中所寫入的資料是否有具有位於該邏輯位址群組之中的任一邏輯位址;其中當該區塊需要進行一垃圾收集操作時,該微處理器參考該邏輯位址群組記錄表以自該快閃記憶體模組讀取至少一邏輯位址至實體位址對照表,並根據該至少一邏輯位址至實體位址對照表以決定出該區塊中的有效資料頁及無效資料頁,以供進行該垃圾收集操作。
在本發明的另一個實施例中,揭露了一種電子裝置,其包含有一快閃記憶體模組以及一快閃記憶體控制器。該快閃記憶體控制器建立對應於該快閃記憶體模組中一區塊之一邏輯位址群組記錄表,其中該邏輯位址群組記錄表標註了多個邏輯位址群組的狀態,其中每一個邏輯位址群組的該狀態係用來表示該區塊中所寫入的資料是否有具有位於該邏輯位址群組之中的任一邏輯位址;以及當該區塊需要進行一垃圾收集操作時,快閃記憶體控制器參考該邏輯位址群組記錄表以自該快閃記憶體模組讀取至少一邏輯位址至實體位址對照表,並根據該至少一邏輯位址至實體位址對照表以決定出該區塊中的有效資料頁及無效資料頁,以供進行該垃圾收集操作。
100:記憶裝置
110:快閃記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯
116:緩衝記憶體
118:介面邏輯
120:快閃記憶體模組
130:主裝置
132:編碼器
134:解碼器
200~210、700~708:步驟
300、600:實體位址至邏輯位址對照表
310、320:快閃記憶體晶片
400:邏輯位址群組記錄表
510、520:邏輯位址至實體位址對照表
B_0~B_M:區塊
P0~PN:資料頁
LBA_0~LBA_1279:邏輯位址
LBAG1~LBAG5:邏輯位址群組
第1圖為依據本發明一實施例之一種記憶裝置的示意圖。
第2圖為根據本發明一實施例之存取快閃記憶體模組的流程圖。
第3圖為實體位址至邏輯位址對照表的示意圖。
第4圖為邏輯位址群組記錄表的示意圖。
第5圖為本發明一實施例之使用實體位址至邏輯位址對照表來更新邏輯位址至實體位址對照表的示意圖。
第6圖為本發明一實施例之使用實體位址至邏輯位址對照表來再次更新邏輯位址至實體位址對照表的示意圖。
第7圖所示為根據本發明一實施例之進行垃圾收集操作的流程圖。
參考第1圖,第1圖為依據本發明一實施例之一種記憶裝置100的示意
圖。記憶裝置100包含有一快閃記憶體(Flash Memory)模組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溝通。緩衝記憶體116係以隨機存取記憶體(Random Access
Memory,RAM)來實施。例如,緩衝記憶體116可以是靜態隨機存取記憶體(Static RAM,SRAM),但本發明不限於此。
在一實施例中,記憶裝置100可以是可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡),且主裝置130為一可與記憶裝置連接的電子裝置,例如手機、筆記型電腦、桌上型電腦...等等。而在另一實施例中,記憶裝置100可以是固態硬碟或符合通用快閃記憶體儲存(Universal Flash Storage,UFS)或嵌入式多媒體記憶卡(Embedded Multi Media Card,EMMC)規格之嵌入式儲存裝置,以設置在一電子裝置中,例如設置在手機、筆記型電腦、桌上型電腦之中,而此時主裝置130可以是該電子裝置的一處理器。
參考第2圖,其為根據本發明一實施例之存取快閃記憶體模組120的流程圖。在步驟200中,流程開始。在步驟200中,流程開始。在步驟202中,快閃記憶體控制器110接收來自主裝置130的至少一寫入命令,以將第一筆資料寫入至快閃記憶體模組120的一區塊中。在本實施例中,參考第3圖,快閃記憶體模組120包含了多個快閃記憶體晶片310、320,每一個快閃記憶體晶片包含了多個區塊B_0~B_M,而每一個區塊包含了N個資料頁P0~PN。在以下的說明中,快閃記憶體控制器110係將資料循序寫入到快閃記憶體晶片310的區塊B_0,然而,需注意的是,上述的“區塊”在實作上也可以是包含了多個晶片之位於不同平面(plane)的多個區塊(一般稱為“超級區塊”),舉例來說,假設快閃記憶體晶片310、320均包含了兩個平面(plane),而區塊B_0及B_M是位於不同的平面,則快閃記憶體晶片310的區塊B_0、B_M以及快閃記憶體晶片320的區塊B_0、B_M可以構成一個超級區塊。
在資料寫入至區塊B_0之前,微處理器112會建立一實體位址至邏輯位址對照表(以下稱P2L對照表)300,並儲存在緩衝記憶體116之中,其中P2L對照表300包含區塊B_0中的連續之資料頁的實體位址P0~PN,以及所對應之邏輯位址。詳細來說,快閃記憶體控制器110首先將來自主裝置130且具有邏輯位址LBA_5的資料寫入至資料頁P0中,接著,依序將來自主裝置130且具有邏輯位址LBA_500、LBA_350、LBA_6、LBA_7、LBA_100的資料分別寫入至資料頁P1~P5。
另一方面,微處理器112另外記錄了如第4圖所示之一邏輯位址群組記錄表400,並儲存在緩衝記憶體116中,其中邏輯位址群組記錄表400標註了多個邏輯位址群組的狀態,其中每一個邏輯位址群組的該狀態係用來表示P2L對照表300中是否有記錄位於該邏輯位址群組之中的任一邏輯位址。在本實施例中,參考第4圖,邏輯位址群組記錄表400至少包含了多個邏輯位址群組LBAG1~LBAG5,而每一個邏輯位址群組係包含了一邏輯位址範圍,例如邏輯位址群組LBAG1包含了邏輯位址LBA_0~LBA_255、邏輯位址群組LBAG2包含了邏輯位址LBA_256~LBA_511、邏輯位址群組LBAG3包含了邏輯位址LBA_512~LBA_767、邏輯位址群組LBAG4包含了邏輯位址LBA_768~LBA_1023、邏輯位址群組LBAG5包含了邏輯位址LBA_1024~LBA_1279;此外,邏輯位址群組記錄表400係用一個位元來表示每一個邏輯位址群組的狀態,例如由於P2L對照表記錄了LBA_5~LBA_7、LBA_100、LBA_350、LBA_500,故邏輯位址群組LBAG1及LBAG2的狀態被設為數位值“1”;而由於P2L對照表並未包含邏輯位址LBA_512~LBA_1279,故邏輯位址群組LBAG3~LBAG5的狀態被設為數位值“0”。
需注意的是第4圖所示的邏輯位址群組記錄表400僅是一個範例說明,而非是作為本發明的限制。只要邏輯位址群組記錄表400可以用來表達P2L對照表300中是否有記錄位於各個邏輯位址群組之中的任一邏輯位址,其細節內容可以有不同的變化,而這些設計上的變化均應隸屬於本發明的範疇。
接著,在步驟204中,微處理器112判斷區塊B_0中的最後一個資料頁PN是否已完成資料寫入(亦即,區塊B_0已經寫滿),若否,則流程進入步驟202以繼續將下一筆資料寫入到區塊B_0;若是,則流程進入步驟206。在步驟206中,微處理器112參考邏輯位址群組記錄表400的內容以自快閃記憶體模組120中讀取一部分的邏輯位址至實體位址對照表(以下稱L2P對照表),並使用P2L對照表300來更新所讀取之L2P對照表的內容。以第3、4圖的實施例來做說明,由於邏輯位址群組記錄表400只記錄了邏輯位址群組LBAG1、LBAG2的狀態為“1”,這代表了只有包含邏輯位址LBA_0~LBA_255以及LBA_256~LBA_511的兩個L2P對照表需要更新(本實施例中,每一個邏輯位址群組對應到一個L2P對照表,其具有相同的邏輯位址範圍),故微處理器112自快閃記憶體模組120中讀取如第5圖所示的兩個L2P對照表510、520。需注意的是,在本實施例中,邏輯位址的序號代表著其順序,而連續的序號代表著連續的邏輯位址。接著,由於P2L對照表300中有4筆對應至邏輯位址範圍LBA_0~LBA_255中的資訊,故微處理器112將L2P對照表510中的邏輯位址LBA_5更新為對應到區塊B_0的資料頁P0、邏輯位址LBA_6更新為對應到區塊B_0的資料頁P3、邏輯位址LBA_7更新為對應到區塊B_0的資料頁P4、且邏輯位址LBA_100更新為對應到區塊B_0的資料頁P5;此外,由於P2L對照表300中有2筆對應至邏輯位址範圍LBA_256~LBA_511中的資訊,故微處理器112將L2P對照表520中的邏輯位址LBA_350更新為對應到區塊B_0的資料頁P2、以及且邏輯位址LBA_500更新為對應到區塊B_0的資料頁P1。
在步驟208中,微處理器112將更新過後的L2P對照表510、520儲存至快閃記憶體模組120中,並將區塊B_0所對應到的P2L對照表300自緩衝記憶體116刪除,且在一實施例中P2L對照表300不會被儲存到快閃記憶體模組120中。此外,在一實施例中,微處理器112將邏輯位址群組記錄表400儲存至快閃記憶體模組120。
在步驟210中,快閃記憶體控制器110選擇下一個區塊(例如,區塊B_1)以供後續的資料寫入,且流程回到步驟202。在一實施例中,假設流程回到步驟202,且快閃記憶體控制器110接收到主裝置130的寫入命令以要求將具有邏輯位址LBA_100的資料更新,則參考第6圖,微處理器112會另外針對區塊B_1建立P2L對照表600,並將L2P對照表510自快閃記憶體模組120中讀取並進行更新,以將邏輯位址LBA_100更新為對應到區塊B_1的資料頁P0,之後再回存到快閃記憶體模組120中。
在以上的實施例中,在區塊B_0的所有資料頁完全寫入之後,具有較大資料量的P2L對照表300可直接刪除以節省空間,而對應到區塊B_0的邏輯位址群組記錄表400會被儲存下來以供用於後續的垃圾收集操作。此外,由於邏輯位址群組記錄表400的資料量很小,故可以大幅節省快閃記憶體模組120的儲存空間。
第7圖所示為根據本發明一實施例之進行垃圾收集操作的流程圖,其中在本實施例中係以對第3圖所示的區塊B_0來進行垃圾收集操作,且相關的內容係以第3~6的實施例來做為範例說明,以方便理解。在步驟700,流程開始,
且快閃記憶體控制器110準備對區塊B_0進行垃圾收集操作。在步驟702,快閃記憶體控制器110自快閃記憶體模組120讀取對應至區塊B_0的邏輯位址群組記錄表400,並暫存在緩衝記憶體116中。在步驟704中,微處理器112參考邏輯位址群組記錄表400的內容,以自快閃記憶體模組120中讀取一或多個L2P對照表。在本實施例中,由於邏輯位址群組記錄表400只記錄了邏輯位址群組LBAG1、LBAG2的狀態為“1”,故微處理器112只需要自快閃記憶體模組120中讀取兩個L2P對照表510、520,而不需要讀取其他的L2P對照表。
接著,在步驟706中,微處理器112讀取區塊B_0的內容,並根據兩個L2P對照表510、520以判斷其中的資料頁為有效資料頁或是無效資料頁。具體來說,針對區塊B0與L2P對照表510、520所共同具有的一特定邏輯位址,微處理器112判斷該特定邏輯位址在L2P對照表510、520中所對應的實體位址是否與在區塊B_0中所對應的實體位址相同,若判斷結果指出兩個實體位址相同,則區塊B_0中具有該實體位址的資料頁為有效資料頁;以及若判斷結果指出兩個實體位址不同,則決定區塊B_0中具有該實體位址的資料頁為無效資料頁。以第3~6圖的實施例來作為說明,由於區塊B_0中對應到邏輯位址LBA_5、LBA_500、LBA_350、LBA_6、LBA_7的資料頁P0~P4與L2P對照表510、520所記錄的一致,故微處理器112可以直接判斷區塊B_0中的資料頁P0~P4是有效資料頁;然而,由於區塊B_0中對應到邏輯位址LBA_100的實體位址為(B_0,P5),但與L2P對照表510所記錄的確是第6圖所示的(B_1,P0),故微處理器112便判斷區塊B_0中的資料頁P5是無效資料頁。
在步驟708中,微處理器112只將區塊B_0中的有效資料頁,例如資料頁P0~P4搬移到快閃記憶體模組120的另外一個區塊中,並將區塊B_0抹除以釋放
更多的儲存空間。
簡要歸納本發明,在本發明之存取快閃記憶體模組的方法中,係另外建立一具有很小資料量的邏輯位址群組記錄表以供用於後續的垃圾收集操作,且當快閃記憶體控制器進行垃圾收集操作時,可以簡單快速地參考該邏輯位址群組記錄表以讀取正確的L2P對照表以供判斷區塊中的有效資料頁及無效資料頁。透過本發明,可以在節省儲存空間的情形下兼顧快閃記憶體控制器的效能。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
200~210:步驟
Claims (18)
- 一種存取一快閃記憶體模組的方法,包含有:建立對應於該快閃記憶體模組中一區塊之一邏輯位址群組記錄表,其中該邏輯位址群組記錄表標註了多個邏輯位址群組的狀態,其中每一個邏輯位址群組的該狀態係用來表示該區塊中所寫入的資料是否有具有位於該邏輯位址群組之中的任一邏輯位址;當該區塊需要進行一垃圾收集(garbage collection)操作時,參考該邏輯位址群組記錄表以自該快閃記憶體模組讀取至少一邏輯位址至實體位址對照表;以及根據該至少一邏輯位址至實體位址對照表以決定出該區塊中的有效資料頁及無效資料頁,以供進行該垃圾收集操作;其中建立對應於該區塊之該邏輯位址群組記錄表的步驟包含有:將該資料寫入至該區塊中,並建立一實體位址至邏輯位址對照表,其包含了該區塊中連續的實體位址及其對應之邏輯位址;以及根據該實體位址至邏輯位址對照表來建立該邏輯位址群組記錄表。
- 如申請專利範圍第1項所述之方法,其中該邏輯位址群組記錄表係用一個位元來表示該邏輯位址群組的狀態,其中該位元的兩個數位值分別用來表示該實體位址至邏輯位址對照表中是否有記錄位於該邏輯位址群組之中的任一邏輯位址。
- 如申請專利範圍第1項所述之方法,其中在該建立該邏輯位址群組記錄表之後,刪除該實體位址至邏輯位址對照表。
- 如申請專利範圍第3項所述之方法,其中該實體位址至邏輯位址對照表不會被儲存至該快閃記憶體模組中。
- 如申請專利範圍第3項所述之方法,另包含有:將該邏輯位址群組記錄表寫入至該快閃記憶體模組中。
- 如申請專利範圍第1項所述之方法,其中每一個邏輯位址群組係包含了一邏輯位址範圍,且該邏輯位址範圍係相同於該快閃記憶體模組所儲存之一邏輯位址至實體位址對照表的範圍。
- 如申請專利範圍第6項所述之方法,其中參考該邏輯位址群組記錄表以自該快閃記憶體模組讀取該至少一邏輯位址至實體位址對照表的步驟包含有:參考該邏輯位址群組記錄表以決定出至少一特定邏輯位址群組,其中該至少一特定邏輯位址群組的狀態為指示該區塊中所寫入的資料具有位於該邏輯位址群組之中的任一邏輯位址;以及只從該快閃記憶體模組讀取對應於該至少一特定邏輯位址群組的該至少一邏輯位址至實體位址對照表,而不讀取其他的邏輯位址至實體位址對照表。
- 如申請專利範圍第1項所述之方法,其中根據該至少一邏輯位址至實體位址對照表以決定出該區塊中的有效資料頁及無效資料頁的步驟包含有:針對該區塊與該至少一邏輯位址至實體位址對照表所共同具有的一特定邏 輯位址,判斷該特定邏輯位址在該至少一邏輯位址至實體位址對照表中所對應的實體位址是否與在該區塊中所對應的實體位址相同;若判斷結果指出兩個實體位址相同,則決定該區塊中具有該實體位址的資料頁為有效資料頁;以及若判斷結果指出兩個實體位址不同,則決定該區塊中具有該實體位址的資料頁為無效資料頁。
- 一種快閃記憶體控制器,其中該快閃記憶體控制器係用來存取一快閃記憶體模組,且該快閃記憶體控制器包含有:一唯讀記憶體,用來儲存一程式碼;一微處理器,用來執行該程式碼以控制對該快閃記憶體模組之存取;以及一記憶體,用以儲存對應於該快閃記憶體模組中一區塊之一邏輯位址群組記錄表,其中該邏輯位址群組記錄表標註了多個邏輯位址群組的狀態,其中每一個邏輯位址群組的該狀態係用來表示該區塊中所寫入的資料是否有具有位於該邏輯位址群組之中的任一邏輯位址;其中當該區塊需要進行一垃圾收集(garbage collection)操作時,該微處理器參考該邏輯位址群組記錄表以自該快閃記憶體模組讀取至少一邏輯位址至實體位址對照表,並根據該至少一邏輯位址至實體位址對照表以決定出該區塊中的有效資料頁及無效資料頁,以供進行該垃圾收集操作;其中在該微處理器將該資料寫入至該區塊時會同時建立一實體位址至邏輯位址對照表,其包含了該區塊中連續的實體位址及其對應之邏輯位址;以及該微處理器根據該實體位址至邏輯位址對照表來建立該邏輯位址群組記錄表。
- 如申請專利範圍第9項所述之快閃記憶體控制器,其中該邏輯位址群組記錄表係用一個位元來表示該邏輯位址群組的狀態,其中該位元的兩個數位值分別用來表示該實體位址至邏輯位址對照表中是否有記錄位於該邏輯位址群組之中的任一邏輯位址。
- 如申請專利範圍第9項所述之快閃記憶體控制器,其中在該建立該邏輯位址群組記錄表之後,該微處理器刪除該實體位址至邏輯位址對照表。
- 如申請專利範圍第11項所述之快閃記憶體控制器,其中該微處理器不會將該實體位址至邏輯位址對照表儲存至該快閃記憶體模組中。
- 如申請專利範圍第11項所述之快閃記憶體控制器,其中該微處理器另將該邏輯位址群組記錄表寫入至該快閃記憶體模組中。
- 如申請專利範圍第9項所述之快閃記憶體控制器,其中每一個邏輯位址群組係包含了一邏輯位址範圍,且該邏輯位址範圍係相同於該快閃記憶體模組所儲存之一邏輯位址至實體位址對照表的範圍。
- 如申請專利範圍第14項所述之快閃記憶體控制器,其中該微處理器參考該邏輯位址群組記錄表以決定出至少一特定邏輯位址群組,其中該至少一特定邏輯位址群組的狀態為指示該區塊中所寫入的資料具有位於該邏輯位址群組之中的任一邏輯位址;以及該微處理器只從該快閃記憶體模組讀取對應於該至少一特定邏輯位址群組的該至少一邏輯位址至實體位址對 照表,而不讀取其他的邏輯位址至實體位址對照表。
- 如申請專利範圍第9項所述之快閃記憶體控制器,其中針對該區塊與該至少一邏輯位址至實體位址對照表所共同具有的一特定邏輯位址,該微處理器判斷該特定邏輯位址在該至少一邏輯位址至實體位址對照表中所對應的實體位址是否與在該區塊中所對應的實體位址相同;若判斷結果指出兩個實體位址相同,該微處理器決定該區塊中具有該實體位址的資料頁為有效資料頁;以及若判斷結果指出兩個實體位址不同,該微處理器決定該區塊中具有該實體位址的資料頁為無效資料頁。
- 一種電子裝置,包含有:一快閃記憶體模組;以及一快閃記憶體控制器,用來存取該快閃記憶體模組;其中該快閃記憶體控制器建立對應於該快閃記憶體模組中一區塊之一邏輯位址群組記錄表,其中該邏輯位址群組記錄表標註了多個邏輯位址群組的狀態,其中每一個邏輯位址群組的該狀態係用來表示該區塊中所寫入的資料是否有具有位於該邏輯位址群組之中的任一邏輯位址;以及當該區塊需要進行一垃圾收集(garbage collection)操作時,快閃記憶體控制器參考該邏輯位址群組記錄表以自該快閃記憶體模組讀取至少一邏輯位址至實體位址對照表,並根據該至少一邏輯位址至實體位址對照表以決定出該區塊中的有效資料頁及無效資料頁,以供進行該垃圾收集操作;其中在該快閃記憶體控制器將該資料寫入至該區塊時會同時建立一實體位址至邏輯位址對照表,其包含了該區塊中連續的實體位址及其對應之 邏輯位址;以及該快閃記憶體控制器根據該實體位址至邏輯位址對照表來建立該邏輯位址群組記錄表。
- 如申請專利範圍第17項所述之電子裝置,其中在該建立該邏輯位址群組記錄表之後,該快閃記憶體控制器刪除該實體位址至邏輯位址對照表,且該實體位址至邏輯位址對照表不會被儲存至該快閃記憶體模組中。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106142465A TWI692690B (zh) | 2017-12-05 | 2017-12-05 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
CN201810596041.XA CN109871333B (zh) | 2017-12-05 | 2018-06-11 | 存取闪存模块的方法及相关的闪存控制器与电子装置 |
US16/011,616 US10698809B2 (en) | 2017-12-05 | 2018-06-18 | Method, associated flash controller and electronic device for accessing flash module with data validity verification |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW106142465A TWI692690B (zh) | 2017-12-05 | 2017-12-05 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201926046A TW201926046A (zh) | 2019-07-01 |
TWI692690B true TWI692690B (zh) | 2020-05-01 |
Family
ID=66658477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106142465A TWI692690B (zh) | 2017-12-05 | 2017-12-05 | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10698809B2 (zh) |
CN (1) | CN109871333B (zh) |
TW (1) | TWI692690B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102395538B1 (ko) * | 2017-04-28 | 2022-05-10 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
CN110895513B (zh) * | 2018-09-12 | 2024-09-17 | 华为技术有限公司 | 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法 |
CN118694968A (zh) * | 2019-06-20 | 2024-09-24 | Jvc建伍株式会社 | 图像编码装置和方法、以及图像解码装置和方法 |
TWI701662B (zh) * | 2019-07-08 | 2020-08-11 | 慧榮科技股份有限公司 | 快閃記憶裝置的資料存取控制方法及電腦程式產品 |
TWI724550B (zh) * | 2019-09-19 | 2021-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
KR20210075731A (ko) | 2019-12-13 | 2021-06-23 | 삼성전자주식회사 | 스토리지 장치 및 이의 동작 방법 |
CN113467697B (zh) * | 2020-03-30 | 2024-08-09 | 瑞昱半导体股份有限公司 | 存储器控制器与数据处理方法 |
CN111399783B (zh) * | 2020-04-22 | 2024-01-16 | Oppo广东移动通信有限公司 | 存储设备的数据写入方法、装置、电子设备及存储介质 |
CN113900582B (zh) * | 2020-06-22 | 2024-08-16 | 慧荣科技股份有限公司 | 数据处理方法及对应的数据储存装置 |
KR102701111B1 (ko) * | 2020-08-18 | 2024-09-02 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20220041593A (ko) | 2020-09-25 | 2022-04-01 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US20220222008A1 (en) * | 2021-01-14 | 2022-07-14 | Silicon Motion, Inc. | Method for managing flash memory module and associated flash memory controller and memory device |
CN116931812A (zh) * | 2022-03-31 | 2023-10-24 | 慧荣科技股份有限公司 | 因应主机丢弃命令的数据存取方法和存储介质和装置 |
TWI810876B (zh) * | 2022-03-31 | 2023-08-01 | 慧榮科技股份有限公司 | 因應主機丟棄命令的資料存取方法及產品電腦程式及裝置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110107015A1 (en) * | 2009-10-30 | 2011-05-05 | Phison Electronics Corp. | Data writing method for a flash memory, and flash memory controller and flash memory storage system using the same |
US20150324284A1 (en) * | 2014-05-12 | 2015-11-12 | Hyun-cheol Kim | Nonvolatile memory system including nonvolatile memory device and memory controller and method of operating the memory controller |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI413931B (zh) * | 2009-01-15 | 2013-11-01 | Phison Electronics Corp | 快閃記憶體資料之存取方法及其儲存系統與控制系統 |
WO2011044154A1 (en) | 2009-10-05 | 2011-04-14 | Marvell Semiconductor, Inc. | Data caching in non-volatile memory |
CN102063381B (zh) * | 2009-11-13 | 2013-01-02 | 群联电子股份有限公司 | 用于闪存的数据写入方法及其控制器与储存系统 |
CN104346103B (zh) * | 2013-08-09 | 2018-02-02 | 群联电子股份有限公司 | 指令执行方法、存储器控制器与存储器储存装置 |
TWI557561B (zh) | 2016-02-05 | 2016-11-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 |
CN107346211B (zh) * | 2016-05-06 | 2020-03-31 | 合肥兆芯电子有限公司 | 映射表加载方法、存储器控制电路单元与存储器储存装置 |
US10489291B2 (en) * | 2018-01-23 | 2019-11-26 | Goke Us Research Laboratory | Garbage collection method for a data storage apparatus by finding and cleaning a victim block |
-
2017
- 2017-12-05 TW TW106142465A patent/TWI692690B/zh active
-
2018
- 2018-06-11 CN CN201810596041.XA patent/CN109871333B/zh active Active
- 2018-06-18 US US16/011,616 patent/US10698809B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110107015A1 (en) * | 2009-10-30 | 2011-05-05 | Phison Electronics Corp. | Data writing method for a flash memory, and flash memory controller and flash memory storage system using the same |
US20150324284A1 (en) * | 2014-05-12 | 2015-11-12 | Hyun-cheol Kim | Nonvolatile memory system including nonvolatile memory device and memory controller and method of operating the memory controller |
Also Published As
Publication number | Publication date |
---|---|
CN109871333B (zh) | 2022-10-18 |
US10698809B2 (en) | 2020-06-30 |
TW201926046A (zh) | 2019-07-01 |
CN109871333A (zh) | 2019-06-11 |
US20190171559A1 (en) | 2019-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI692690B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI650644B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 | |
TWI629591B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI661303B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
TWI659304B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
CN110908925B (zh) | 高效能垃圾收集方法以及数据存储装置及其控制器 | |
CN109117383B (zh) | 管理闪存模块的方法和闪存控制器 | |
TWI726314B (zh) | 資料儲存裝置與資料處理方法 | |
TWI749279B (zh) | 資料儲存裝置與資料處理方法 | |
US20200293441A1 (en) | Data storage devices and data processing methods | |
TW202001565A (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 | |
US9037781B2 (en) | Method for managing buffer memory, memory controllor, and memory storage device | |
TWI707234B (zh) | 資料儲存裝置與資料處理方法 | |
TWI657339B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器 | |
TWI697778B (zh) | 資料儲存裝置與資料處理方法 | |
TWI670598B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 | |
TW201337553A (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI653630B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器及電子裝置 | |
TWI852599B (zh) | 記憶裝置、快閃記憶體控制器及其控制方法 | |
TWI695264B (zh) | 資料儲存裝置與資料處理方法 |