TWI721365B - 高效能垃圾收集方法以及資料儲存裝置及其控制器 - Google Patents
高效能垃圾收集方法以及資料儲存裝置及其控制器 Download PDFInfo
- Publication number
- TWI721365B TWI721365B TW108102004A TW108102004A TWI721365B TW I721365 B TWI721365 B TW I721365B TW 108102004 A TW108102004 A TW 108102004A TW 108102004 A TW108102004 A TW 108102004A TW I721365 B TWI721365 B TW I721365B
- Authority
- TW
- Taiwan
- Prior art keywords
- garbage collection
- judgment result
- physical address
- target data
- block
- Prior art date
Links
Images
Landscapes
- Memory System (AREA)
- Storage Device Security (AREA)
Abstract
本發明提供一種高效能垃圾收集方法以及資料儲存裝置及其控制器。該高效能垃圾收集方法可包含:啟動並執行垃圾收集程序;判斷是否有收到來自一主機的一修剪指令;因應收到該修剪指令,判斷該修剪指令的目標資料是否儲存在該垃圾收集程序的一來源區塊;因應該目標資料儲存在該來源區塊,判斷儲存在該來源區塊的該目標資料是否已被複製至該垃圾收集程序的一目的區塊;以及因應儲存在該來源區塊的該目標資料已被複製至該目的區塊,於一邏輯對實體位址映射表中將該修剪指令的該目標資料的至少一實體位址變更為一修剪標籤。
Description
本發明係有關於快閃記憶體(Flash memory)之存取(access),尤指一種高效能垃圾收集方法以及相關之資料儲存裝置及其控制器。
快閃記憶體可廣泛地應用於各種可攜式或非可攜式資料儲存裝置(例如:符合SD/MMC、CF、MS、XD或UFS標準之記憶卡;又例如:固態硬碟;又例如:符合UFS或EMMC規格之嵌入式(embedded)儲存裝置)中。以常用的NAND型快閃記憶體而言,最初有單階細胞(single level cell,SLC)、多階細胞(multiple level cell,MLC)等類型的快閃記憶體。由於記憶體的技術不斷地發展,較新的資料儲存裝置產品可採用三階細胞(triple level cell,TLC)快閃記憶體,甚至四階細胞(quadruple level cell,QLC)快閃記憶體。為了確保資料儲存裝置對快閃記憶體之存取控制能符合相關規範,快閃記憶體的控制器通常備有某些管理機制以妥善地管理其內部運作。
依據快閃記憶體的運作特性,資料儲存裝置可支援修剪(Trim)指令,此修剪指令包括起始邏輯位址以及數量等資訊以表示欲無效化的目標資料,接著,資料儲存裝置再依據修剪指令進行目標資料無效化的處理。然而,執行修剪指令不但花費許多時間,如果修剪指令所欲修剪的目標資料正巧已複製到垃圾收集(Garbage Collection,GC)程序中的目的區塊(Destination Block),這將造成資料管理的複雜度,在特定的情況下,甚至導致資料儲存裝置無法及時完成修剪指令而導致指令超時(Command Timeout)事件的發生。為了避免指
令超時事件的發生,該資料儲存裝置可能被迫立即執行一系列相關操作,這可造成該資料儲存裝置的整體效能降低。因此,需要一種新穎的方法及相關架構,以在沒有副作用或較不可能帶來副作用之狀況下實現具有最佳化效能之資料儲存裝置。
本發明之一目的在於提供一種高效能垃圾收集方法以及相關之資料儲存裝置及其控制器,以解決上述問題。
本發明之另一目的在於提供一種高效能垃圾收集方法以及相關之資料儲存裝置及其控制器,以在沒有副作用或較不可能帶來副作用之狀況下達到最佳化效能。
本發明之至少一實施例提供一種高效能垃圾收集方法,其中該方法係應用於一資料儲存裝置,該資料儲存裝置包含一非揮發性記憶體(non-volatile memory,NV memory),且該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element)。該方法可包含:啟動並執行一垃圾收集程序;判斷是否有收到來自一主機(host device)的一修剪(Trim)指令;因應收到該修剪指令,判斷該修剪指令的目標資料是否儲存在該垃圾收集程序的一來源區塊;因應該目標資料儲存在該來源區塊,判斷儲存在該來源區塊的該目標資料是否已被複製至該垃圾收集程序的一目的區塊;以及因應儲存在該來源區塊的該目標資料已被複製至該目的區塊,於一邏輯對實體位址映射表(logical-to-physical address mapping table,簡稱「L2P表」)中將該修剪指令的該目標資料的至少一實體位址變更為一修剪標籤(Trim tag),其中該修剪標籤指出該目標資料已被無效化。
本發明之至少一實施例提供一種資料儲存裝置,其可包含:一非揮
發性記憶體,用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件;以及一控制器,耦接至該非揮發性記憶體,用來控制該資料儲存裝置之運作。該控制器可包含一處理電路,而該處理電路可依據來自一主機的複數個主機指令(host command)控制該控制器,以容許該主機透過該控制器存取該非揮發性記憶體。例如:該控制器啟動並執行一垃圾收集程序;該控制器判斷是否有收到來自該主機的一修剪指令;因應收到該修剪指令,該控制器判斷該修剪指令的目標資料是否儲存在該垃圾收集程序的一來源區塊;因應該目標資料儲存在該來源區塊,該控制器判斷儲存在該來源區塊的該目標資料是否已被複製至該垃圾收集程序的一目的區塊;以及因應儲存在該來源區塊的該目標資料已被複製至該目的區塊,該控制器於一L2P表中將該修剪指令的該目標資料的至少一實體位址變更為一修剪標籤,其中該修剪標籤指出該目標資料已被無效化。
本發明之至少一實施例提供一種資料儲存裝置之控制器,其中該資料儲存裝置包含該控制器與一非揮發性記憶體,且該非揮發性記憶體包含至少一非揮發性記憶體元件。該控制器可包含一處理電路,而該處理電路可依據來自一主機的複數個主機指令控制該控制器,以容許該主機透過該控制器存取該非揮發性記憶體。例如:該控制器啟動並執行一垃圾收集程序;該控制器判斷是否有收到來自該主機的一修剪指令;因應收到該修剪指令,該控制器判斷該修剪指令的目標資料是否儲存在該垃圾收集程序的一來源區塊;因應該目標資料儲存在該來源區塊,該控制器判斷儲存在該來源區塊的該目標資料是否已被複製至該垃圾收集程序的一目的區塊;以及因應儲存在該來源區塊的該目標資料已被複製至該目的區塊,該控制器於一L2P表中將該修剪指令的該目標資料的至少一實體位址變更為一修剪標籤,其中該修剪標籤指出該目標資料已被無效化。
本發明的好處之一是,透過於至少一管理表中插入一或多個修剪標籤,本發明能針對該控制器的運作進行妥善的控制,尤其,能在使用相同的硬體架構之狀況下順暢地執行各種管理機制(諸如垃圾收集機制、修剪機制等)的操作,且能確保該資料儲存裝置於某一規範所定義之一最大容許時間(例如8秒)以內完成一存取操作,而不發生任何延遲。另外,依據本發明之實施例來實施並不會增加許多額外的成本。因此,相關技術的問題可被解決,且整體成本不會增加太多。相較於相關技術,本發明能在沒有副作用或較不可能帶來副作用之狀況下達到資料儲存裝置之最佳化效能。
50:主機
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯電路
116:緩衝記憶體
116GT:L2P分組表
118:傳輸介面電路
120:非揮發性記憶體
122-1、122-2、...、122-N:非揮發性記憶體元件
120T、200:L2P表
LBA#0、LBA#1、LBA#2、...、LBA#100、LBA#101、LBA#102、...、LBA#1022、LBA#1023、...、LBA#1047553、LBA#1047554、LBA#1047555、...、LBA#1048000、LBA#1048001、LBA#1048002、...、LBA#1048570、LBA#1048571:邏輯區塊位址
BLK#0、BLK#1、BLK#2、...、BLK#12、...:區塊編號
Page#0、Page#1、Page#2、Page#3、Page#4、...、Page#400、Page#401、Page#402、Page#403、Page#404、...、Page#511:頁面編號
300:工作流程
S302、S304、S306、S308、S310、S312、S314、S316:步驟
第1圖為依據本發明一實施例之一種資料儲存裝置與一主機(host device)的示意圖。
第2圖繪示依據本發明一實施例之一L2P表。
第3圖為依據本發明一實施例之一種高效能垃圾收集方法的工作流程。
第4圖繪示第2圖所示之L2P表之一更新版本,其中該更新版本包含一修剪標籤。
第5圖繪示依據本發明一實施例之一實體對邏輯位址映射表(physical-to-logical address mapping table,簡稱「P2L表」)。
第6圖繪示第2圖所示之L2P表之另一更新版本。
第7圖繪示第5圖所示之P2L表之一更新版本。
請參考第1圖,第1圖為依據本發明一第一實施例之一種資料儲存裝置100與一主機(host device)50的示意圖。例如:資料儲存裝置100可為固態硬
碟(Solid State Drive,SSD)。另外,主機50的例子可包含(但不限於):多功能行動電話(multifunctional mobile phone)、平板電腦(tablet)、以及個人電腦(personal computer)諸如桌上型電腦與膝上型電腦。依據本實施例,資料儲存裝置100可包含一控制器諸如記憶體控制器110,且可另包含一非揮發性記憶體(non-volatile memory,NV memory)120,其中該控制器係用來存取(access)非揮發性記憶體120,且非揮發性記憶體120係用來儲存資訊。
非揮發性記憶體120可包含複數個非揮發性記憶體元件(NV memory element)122-1、122-2、...與122-N,其中符號「N」可代表大於一的正整數。例如:非揮發性記憶體120可為一快閃記憶體(Flash memory),而非揮發性記憶體元件122-1、122-2、...與122-N可分別為複數個快閃記憶體晶片(Flash memory chip;可簡稱為快閃晶片)或複數個快閃記憶體裸晶(Flash memory die;可簡稱為快閃裸晶),但本發明並不限於此。此外,資料儲存裝置100可更包括一揮發性記憶體元件以緩存資料,其中,該揮發性記憶體元件較佳為動態隨機存取記憶體(Dynamic Random Access Memory,簡稱DRAM)。揮發性記憶體元件可提供適當的資料暫存空間以緩存資料,或是僅提供小量的資料暫存空間以緩存資料。在下述中將以資料儲存裝置100並未配置揮發性記憶體元件的架構進行說明,但不以此為限。
記憶體控制器110可包含處理電路諸如微處理器112、儲存器諸如一唯讀記憶體(Read Only Memory,ROM)112M、控制邏輯電路114、緩衝記憶體116、與傳輸介面電路118,其中這些元件可透過一匯流排彼此耦接。緩衝記憶體116係以隨機存取記憶體(Random Access Memory,RAM)來實施,較佳為靜態隨機存取記憶體(Static RAM,簡稱SRAM)。記憶體控制器110可利用緩衝記憶體116作為第一外部快取(Cache),並利用該揮發性記憶體元件作為第二外部快取。舉例來說,該揮發性記憶體元件的資料儲存量較佳大於緩衝記憶體116
的資料儲存量,且該揮發性記憶體元件所緩存的資料較佳來自於緩衝記憶體116。
本實施例之唯讀記憶體112M係用來儲存一程式碼112C,而微處理器112則用來執行程式碼112C以控制對非揮發性記憶體120之存取。請注意,程式碼112C亦得儲存在緩衝記憶體116或任何形式之記憶體內。此外,控制邏輯電路114可包含一錯誤更正碼電路(未顯示),以保護資料、及/或進行錯誤更正,而傳輸介面電路118可符合一特定通訊標準(諸如串列高級技術附件(Serial Advanced Technology Attachment,SATA)標準、快捷外設互聯(Peripheral Component Interconnect Express,PCIE)標準或非揮發性記憶體快捷(Non-Volatile Memory Express,NVME)標準)且可依據該特定通訊標準進行通訊。
於本實施例中,主機50可藉由傳送複數個主機指令(Host Command)與對應的邏輯位址,例如:邏輯區塊位址(Logical Block Address,LBA)予記憶體控制器110來間接地存取資料儲存裝置100中之非揮發性記憶體120。記憶體控制器110接收該複數個主機指令與邏輯位址,並將該複數個主機指令分別轉譯成記憶體操作指令(簡稱操作指令),再以操作指令控制非揮發性記憶體120讀取、寫入(Write)/編程(Program)非揮發性記憶體120當中特定實體位址之頁面(Page)。邏輯位址與實體位址的映射關係可記錄於一映射表諸如邏輯對實體位址映射表(簡稱「L2P表」)120T。例如,記憶體控制器110可記錄指出這些映射關係之映射資訊於L2P表120T中,且可於需要時記錄其它資訊於L2P表120T中。於某些實施例中,上述其它資訊可包含一修剪標籤(Trim tag)。
為了方便讀取以及管理L2P表120T,較佳可將L2P表120T分割成複數個L2P分組表,而該複數個L2P分組表中之每一L2P分組表較佳可儲存至一個資料頁或超級資料頁(Super Page)中。第2圖繪示依據本發明一實施例之一L2P表200。L2P表200可作為L2P表120T的一個例子。L2P表200可分割成1024個L2P分
組表(諸如L2P分組表#0、...以及L2P分組表#1023),且這些L2P分組表中之每一個L2P分組表可記錄1024個邏輯區塊位址與實體位址(Physical Address,PBA)的映射關係,其中,實體位址可由通道(Channel)編號、邏輯單元編號(Logical Unit Number,LUN)、平面(Plane)編號、區塊編號、頁面編號以及偏移量(Offset)所組成。在下述中將以區塊編號諸如BLK#0、BLK#1、BLK#2、...等以及頁面編號諸如Page#0、Page#1、Page#2、...等來簡化表示實體位址,其中區塊編號BLK#0、BLK#1、BLK#2、...等可分別代表區塊#0、區塊#1、區塊#2、...等,而頁面編號Page#0、Page#1、Page#2、...等可分別代表頁面#0、頁面#1、頁面#2、...等,但本發明不以此為限。例如,L2P分組表#0可包含分別對應於邏輯區塊位址LBA#0、LBA#1、LBA#2、…、LBA#100、LBA#101、LBA#102、…、LBA#1022與LBA#1023之欄位,以供儲存實體位址。又例如,L2P分組表#1023可包含分別對應於邏輯區塊位址LBA#1047553、LBA#1047554、LBA#1047555、…、LBA#1048000、LBA#1048001、LBA#1048002、…、LBA#1048570、LBA#1048571之欄位,以供儲存實體位址。此外,這些L2P分組表中之每一個L2P分組表的1024個欄位中之每一欄位的初始值可為一預設值或無效值,諸如0xFFFF-FFFF(代表十六進位數之「0x」於第2圖及後續圖示中予以省略,以求簡明)。
在資料儲存裝置100運作的期間,記憶體控制器110可於需要時讀取非揮發性記憶體120所儲存的L2P表120T(例如該複數個L2P分組表),尤其,可讀取L2P表120T的一組L2P分組表,諸如該複數個L2P分組表中的一部分L2P分組表或全部的L2P分組表,並將該組L2P分組表暫存至一記憶體諸如緩衝記憶體116,以執行資料管理相關操作。如第1圖所示之L2P分組表116GT可作為該組L2P分組表的例子。當資料儲存裝置100中有使用者資料需要被新增、修剪或更新時,記憶體控制器110可依據使用者資料的最新映射關係來更新L2P分組表116GT及/或L2P表120T。
由於緩衝記憶體116典型地僅具備有限的資料儲存空間,例如,僅能暫存8個L2P分組表,因此,記憶體控制器110會交換(Swap)緩衝記憶體116所儲的L2P分組表116GT,例如,從非揮發性記憶體120讀取一個新L2P分組表,並以此L2P分組表替代緩衝記憶體116所儲的一個舊L2P分組表。另外,記憶體控制器110較佳建立一個分組位置表以記錄該複數個L2P分組表中的每一L2P分組表在非揮發性記憶體120的實體位址。另外,記憶體控制器110較佳建立一個分組暫存表以標記該組L2P分組表中的每一L2P分組表在緩衝記憶體116的實體位址。其中,該分組位置表以及該分組暫存表可整合至一分組管理表以簡化表格的管理。
一L2P分組表的大小較佳等於非揮發性記憶體元件122-n的一個頁面(Page)的大小,例如16KB。又例如,記憶體控制器110將4個不同區塊的頁面虛擬成一個超級頁面(Super Page),此時一L2P分組表的大小為64KB。另外,記憶體控制器110較佳以一快速編程模式將該複數個L2P分組表編程至非揮發性記憶體120,其中,該快速編程模式例如是SLC編程模式,而預設編程模式可為TLC編程模式或QLC編程模式。其中,此4個區塊可分別置於不同的通道或由不同的晶片致能(Chip Enable,CE)訊號所控制。
記憶體控制器110於執行一垃圾收集程序的期間,可將一來源區塊(Source Block)的有效頁面資料諸如有效頁面的資料(或有效資料)複製至一目的區塊(Destination Block)中。例如,於該目的區塊被關閉(Close)或不再需要寫入有效頁面資料至該目的區塊時,記憶體控制器110產生一實體對邏輯位址映射表(Physical-to-logical address mapping table,簡稱「P2L表」)並將該P2L表儲存至該目的區塊,接著,再以該P2L表更新L2P分組表116GT,之後,依據L2P分組表116GT進一步更新L2P表120T。在該垃圾收集程序中,來源區塊的數量可大於一,且這些來源區塊較佳為具有較少或最少有效頁面資料的資料區
塊,或是具有較冷(例如編程時間最久)的有效頁面資料的資料區塊。此外,當L2P分組表116GT或L2P表120T更新完成後,該垃圾收集程序所涉及的任何來源區塊(例如該來源區塊或這些來源區塊)可被重新定義為閒置區塊以供重複利用。該目的區塊可選自於一閒置區塊池或是多個佇列(Queued)的閒置區塊。這些閒置區塊較佳為閒置區塊池中具有最小抺寫次數(Erase Count)的閒置區塊。
第3圖為依據本發明一實施例之一種高效能垃圾收集方法的工作流程300。例如:在該處理電路諸如微處理器112的控制下,該控制器諸如記憶體控制器110可進行工作流程300的運作。工作流程300中的某些步驟可包含判斷操作,而記憶體控制器110可依據這些判斷操作之各自的判斷結果執行工作流程300中的後續步驟之操作,諸如對應於這些判斷結果之後續操作,以達到資料儲存裝置之最佳化效能。
於步驟S302中,記憶體控制器110啟動並執行垃圾收集程序,其中,啟動垃圾收集程序後,垃圾收集程序可於前景或背景中執行。另外,垃圾收集程序可由記憶體控制器110自主啟動或依主機50的要求而啟動。此外,垃圾收集程序可分段執行或整段執行。於分段執行時,記憶體控制器110將來源區塊(Source Block)的有效頁面資料(或有效資料)分段地複製至目的區塊(Destination Block),並於分段中間執行來自主機50的主機指令。來源區塊例如是區塊#1的資料區塊,並儲存有20筆有效頁面資料;目的區塊例如是區塊#12的閒置區塊,可儲存512筆頁面資料。
於步驟S304中,記憶體控制器110判斷是否有收到來自主機50的修剪指令,如果是則進入步驟S306,如果不是則可因應步驟S312的一判斷結果進入步驟S302,以繼續執行垃圾收集程序。修剪指令的起始邏輯位址例如是邏輯區塊位址LBA#100,數量例如是2,由上述資訊可知修剪指令的二筆目標資料的邏輯位址為邏輯區塊位址LBA#100與LBA#101,由L2P分組表#0可知,第一筆目標
資料的實體位址為{BLK#1,Page#0},其代表區塊#1的頁面#0,第二筆目標資料的實體位址為{BLK#2,Page#0},其代表區塊#2的頁面#0,依此類推。
於步驟S306中,記憶體控制器110判斷修剪指令的目標資料是否儲存在垃圾收集程序的來源區塊,如果是則進入步驟S308,如果不是則進入步驟S302,以繼續執行垃圾收集程序。由以上說明可知,修剪指令的第一筆目標資料儲存在來源區塊,第二筆目標資料並未儲存在來源區塊。
於步驟S308中,記憶體控制器110判斷儲存在來源區塊的目標資料是否已複製至目的區塊,如果是則進入步驟S310,如果不是則進入步驟S302,以繼續執行垃圾收集程序。
於步驟S310中,記憶體控制器110將L2P表200中修剪指令的目標資料的實體位址變更為一修剪標籤(Trim tag),之後,進入步驟S302,以繼續執行垃圾收集程序,其中此修剪標籤可指出此目標資料已被無效化。假設修剪指令的第一筆目標資料已由來源區塊複製至目的區塊,則記憶體控制器110將L2P表200(更精確地說,L2P分組表#0)中LBA#100所映射的實體位址變更為修剪標籤,例如:0xFFFF-FFFE,如第4圖所示。由於第二筆目標資料並未儲存在來源區塊,因此,記憶體控制器110不變更邏輯區塊位址LBA#101在L2P表200中所映射的實體位址。
於步驟S312中,記憶體控制器110判斷是否關閉垃圾收集程序的目的區塊,如果是則進入步驟S314,如果不是,例如目的區塊仍有空間可以寫入有效頁面資料(或有效資料),則進入步驟S302,以繼續執行垃圾收集程序。
於步驟S314中,如果目的區塊的有效頁面資料在L2P表200的實體位址為修剪標籤,則記憶體控制器110將有效頁面資料在L2P表200的實體位址變更為預設值。依據本實施例,記憶體控制器110可檢查是否該目的區塊的有效頁面資料在L2P表200的實體位址為該修剪標籤,以決定是否將該有效頁面資料在L2P
表200的所述實體位址變更為該預設值。例如,在記憶體控制器110建立L2P表200的一開始,L2P表200中之多個欄位(field)中之每一欄位之初始值等於該預設值。
於步驟S316中,記憶體控制器110以其他有效頁面資料在目的區塊的實體位址更新L2P表200。關閉目的區塊時,記憶體控制器110依據目的區塊的實體位址以及於這些實體位址所儲存有效頁面資料的邏輯位址產生一P2L表,諸如第5圖所示者,並以P2L表更新L2P表200。當欲以P2L表更新L2P表200時,記憶體控制器110先判斷L2P表200中欲更新的實體位址的值是否為修剪標籤,如果是,則表示此有效頁面資料在執行垃圾收集程序時已被修剪指令所修剪(無效化),因此,此有效頁面資料已不再有效。在此情況下,針對此有效頁面資料,記憶體控制器110不以目的區塊的實體位址來更新L2P表200,並將修剪標籤(例如第4圖所示之FFFF-FFFE)變更為預設值或無效值,例如:0xFFFF-FFFF,如第6圖所示。如此一來,即使頁面資料已被複製至目的區塊,此頁面資料仍是無效的頁面資料。如果L2P表200中欲更新的實體位址的值不是修剪標籤,則表示此頁面資料是有效頁面資料。在此情況下,記憶體控制器110以P2L表更新L2P表200,更新後的L2P表200如第6圖所示。最後,記憶體控制器110將P2L表寫入目的區塊以關閉目的區塊。
需注意的是,如果處理修剪指令時,步驟S302或垃圾收集程序未被啟動或執行時,記憶體控制器110可依據預設的程序來處理修剪指令,例如,直接將目標資料在L2P表200的實體位址變更為預設值或無效值,或是分段地將L2P表200的這些實體位址變更為預設值或無效值。如果處理修剪指令時,步驟S302或垃圾收集程序已被啟動或執行時,但是步驟S308的判斷結果為否,即來源區塊的目標資料尚未複製至目的區塊,則記憶體控制器110可依據預設的程序來處理修剪指令,例如,直接將目標資料在L2P表200的這些實體位址變更為預設值
或無效值,由於對應於目標資料之這些個實體位址已變更為預設值,之後,記憶體控制器110不會將來源區塊的目標資料複製至目的區塊。
另外,由第5圖中可得知,雖然LBA#100已為無效的頁面資料,但是P2L表仍有記錄。此時,如果主機50更新LBA#100的使用者資料,接著發生電力突然中斷事件。雖然更新的LBA#100已記錄L2P表,記憶體控制器110啟動突然電力中斷回復(Sudden Power Off Recovery,SPOR)程序時,有可能會以目的區塊的P2L表來更新L2P表,造成資料管理的錯誤。因此,步驟S314可更包括:將P2L表中修剪指令的目標資料的邏輯位址變更為預設值或無效值,例如:0xFFFF-FFFF,如第7圖所示。如此一來,即使發生電力突然中斷事件,也不會造成資料管理的錯誤。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
50:主機
100:資料儲存裝置
110:記憶體控制器
112:微處理器
112C:程式碼
112M:唯讀記憶體
114:控制邏輯電路
116:緩衝記憶體
116GT:L2P分組表
118:傳輸介面電路
120:非揮發性記憶體
122-1,122-2,...,122-N:非揮發性記憶體元件
120T:L2P表
Claims (20)
- 一種高效能垃圾收集方法,該高效能垃圾收集方法係應用於一資料儲存裝置,該資料儲存裝置包含一非揮發性記憶體(non-volatile memory,NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element),該高效能垃圾收集方法包含有:啟動並執行一垃圾收集程序;判斷是否有收到來自一主機(host device)的一修剪(Trim)指令;因應收到該修剪指令,判斷該修剪指令的目標資料是否儲存在該垃圾收集程序的一來源區塊;因應該目標資料儲存在該來源區塊,判斷儲存在該來源區塊的該目標資料是否已被複製至該垃圾收集程序的一目的區塊;以及因應儲存在該來源區塊的該目標資料已被複製至該目的區塊,於一邏輯對實體位址映射表(logical-to-physical address mapping table)中將該修剪指令的該目標資料的至少一實體位址變更為一修剪標籤(Trim tag),其中該邏輯對實體位址映射表中的多個欄位(field)中的任一欄位對應於至少三種狀態的其中一種狀態,在該多個欄位中的用以儲存該至少一實體位址的至少一欄位的預設值指出該至少三種狀態中的一第一種狀態,儲存著該至少一實體位址的該至少一欄位指出該至少三種狀態中的一第二種狀態,儲存著該修剪標籤的該至少一欄位指出該至少三種狀態中的一第三種狀態,以及該至少一欄位經歷該至少三種狀態中的至少一部分狀態的狀態切換,以分別滿足該垃圾收集程序以及該修剪指令之各自的需求,藉此提升該資料儲存裝置的整體效能,其中該修剪標籤指出該目標資料已被無效化。
- 如申請專利範圍第1項所述之高效能垃圾收集方法,其另包含:於將該修剪指令的該目標資料的該至少一實體位址變更為該修剪標籤以後,繼續執行該垃圾收集程序。
- 如申請專利範圍第1項所述之高效能垃圾收集方法,其中判斷是否有收到來自該主機的該修剪指令的步驟被執行多次以分別產生一第一判斷結果與一第二判斷結果,其中該第一判斷結果與該第二判斷結果分別指出收到該修剪指令以及未收到該修剪指令;判斷該修剪指令的該目標資料是否儲存在該垃圾收集程序的該來源區塊的步驟是因應該第一判斷結果來進行;以及該方法另包含:因應該第二判斷結果,判斷是否關閉該垃圾收集程序的該目的區塊;以及因應關閉該垃圾收集程序的該目的區塊,檢查是否該目的區塊的有效頁面資料在該邏輯對實體位址映射表的實體位址為該修剪標籤,以決定是否將該有效頁面資料在該邏輯對實體位址映射表的所述實體位址變更為該預設值。
- 如申請專利範圍第3項所述之高效能垃圾收集方法,其另包含:因應該目的區塊的該有效頁面資料在該邏輯對實體位址映射表的所述實體位址為該修剪標籤,將該有效頁面資料在該邏輯對實體位址映射表的所述實體位址變更為該預設值。
- 如申請專利範圍第3項所述之高效能垃圾收集方法,其中在建立該邏輯對實體位址映射表的一開始,該邏輯對實體位址映射表中之該多個欄位中之每一欄位之一初始值等於該預設值。
- 如申請專利範圍第3項所述之高效能垃圾收集方法,其中判斷該修剪指令的該目標資料是否儲存在該垃圾收集程序的該來源區塊的步驟被執行多次以分別產生一第三判斷結果與一第四判斷結果,其中該第三判斷結果與該第四判斷結果分別指出該目標資料儲存在該來源區塊以及該目標資料未儲存在該來源區塊;判斷儲存在該來源區塊的該目標資料是否已被複製至該目的區塊的步驟是因應該第三判斷結果來進行;以及該方法另包含:因應該第四判斷結果,繼續執行該垃圾收集程序。
- 如申請專利範圍第3項所述之高效能垃圾收集方法,其中判斷儲存在該來源區塊的該目標資料是否已被複製至該目的區塊的步驟執行多次以分別產生另一判斷結果與又一判斷結果,其中該另一判斷結果與該又一判斷結果分別指出儲存在該來源區塊的該目標資料已被複製至該目的區塊以及儲存在該來源區塊的該目標資料未被複製至該目的區塊;於該邏輯對實體位址映射表中將該修剪指令的該目標資料的該至少一實體位址變更為該剪標籤的步驟是因應該另一判斷結果來進行;以及該方法另包含:因應該又一判斷結果,繼續執行該垃圾收集程序。
- 如申請專利範圍第3項所述之高效能垃圾收集方法,其中判斷是否關閉該垃圾收集程序的該目的區塊的步驟執行多次以分別產生另一判斷結果與又一判斷結果,其中該另一判斷結果與該又一判斷結果分別指出關閉該垃圾收集程序的該目的區塊以及不關閉該垃圾收集程序的該目的區塊;檢查是否該目的區塊的該有效頁面資料在該邏輯對實體位址映射表的 所述實體位址為該修剪標籤以決定是否將該有效頁面資料在該邏輯對實體位址映射表的所述實體位址變更為該預設值的步驟是因應該另一判斷結果來進行;以及該方法另包含:因應該又一判斷結果,繼續執行該垃圾收集程序。
- 如申請專利範圍第1項所述之高效能垃圾收集方法,其中在建立該邏輯對實體位址映射表的一開始,該邏輯對實體位址映射表中之該多個欄位中之每一欄位之一初始值等於該預設值;以及該修剪標籤代表異於該預設值之一預定值。
- 如申請專利範圍第9項所述之高效能垃圾收集方法,其中該預設值與該預定值中之每一值代表不存在任何一個實體位址與任何一個邏輯位址之間的一映射關係。
- 一種資料儲存裝置,包含有:一非揮發性記憶體(non-volatile memory,NV memory),用來儲存資訊,其中該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element);以及一控制器,耦接至該非揮發性記憶體,用來控制該資料儲存裝置之運作,其中該控制器包含:一處理電路,用來依據來自一主機(host device)的複數個主機指令(host command)控制該控制器,以容許該主機透過該控制器存取(access)該非揮發性記憶體,其中:該控制器啟動並執行一垃圾收集程序; 該控制器判斷是否有收到來自該主機的一修剪(Trim)指令;因應收到該修剪指令,該控制器判斷該修剪指令的目標資料是否儲存在該垃圾收集程序的一來源區塊;因應該目標資料儲存在該來源區塊,該控制器判斷儲存在該來源區塊的該目標資料是否已被複製至該垃圾收集程序的一目的區塊;以及因應儲存在該來源區塊的該目標資料已被複製至該目的區塊,該控制器於一邏輯對實體位址映射表(logical-to-physical address mapping table)中將該修剪指令的該目標資料的至少一實體位址變更為一修剪標籤(Trim tag),其中該邏輯對實體位址映射表中的多個欄位(field)中的任一欄位對應於至少三種狀態的其中一種狀態,在該多個欄位中的用以儲存該至少一實體位址的至少一欄位的預設值指出該至少三種狀態中的一第一種狀態,儲存著該至少一實體位址的該至少一欄位指出該至少三種狀態中的一第二種狀態,儲存著該修剪標籤的該至少一欄位指出該至少三種狀態中的一第三種狀態,以及該至少一欄位經歷該至少三種狀態中的至少一部分狀態的狀態切換,以分別滿足該垃圾收集程序以及該修剪指令之各自的需求,藉此提升該資料儲存裝置的整體效能,其中該修剪標籤指出該目標資料已被無效化。
- 如申請專利範圍第11項所述之資料儲存裝置,其中於將該修剪指令的該目標資料的該至少一實體位址變更為該修剪標籤以後,該控制器繼續 執行該垃圾收集程序。
- 如申請專利範圍第11項所述之資料儲存裝置,其中判斷是否有收到來自該主機的該修剪指令的操作被執行多次以分別產生一第一判斷結果與一第二判斷結果,其中該第一判斷結果與該第二判斷結果分別指出收到該修剪指令以及未收到該修剪指令;判斷該修剪指令的該目標資料是否儲存在該垃圾收集程序的該來源區塊的操作是因應該第一判斷結果來進行;因應該第二判斷結果,該控制器判斷是否關閉該垃圾收集程序的該目的區塊;以及因應關閉該垃圾收集程序的該目的區塊,該控制器檢查是否該目的區塊的有效頁面資料在該邏輯對實體位址映射表的實體位址為該修剪標籤,以決定是否將該有效頁面資料在該邏輯對實體位址映射表的所述實體位址變更為該預設值。
- 如申請專利範圍第13項所述之資料儲存裝置,其中判斷該修剪指令的該目標資料是否儲存在該垃圾收集程序的該來源區塊的操作被執行多次以分別產生一第三判斷結果與一第四判斷結果,其中該第三判斷結果與該第四判斷結果分別指出該目標資料儲存在該來源區塊以及該目標資料未儲存在該來源區塊;判斷儲存在該來源區塊的該目標資料是否已被複製至該目的區塊的操作是因應該第三判斷結果來進行;以及因應該第四判斷結果,該控制器繼續執行該垃圾收集程序。
- 如申請專利範圍第11項所述之資料儲存裝置,其中判斷儲存在該來源區塊的該目標資料是否已被複製至該目的區塊的操作執行多次以分別產生另一判斷結果與又一判斷結果,其中該另一判斷結果與該又一判斷結 果分別指出儲存在該來源區塊的該目標資料已被複製至該目的區塊以及儲存在該來源區塊的該目標資料未被複製至該目的區塊;於該邏輯對實體位址映射表中將該修剪指令的該目標資料的該至少一實體位址變更為該剪標籤的操作是因應該另一判斷結果來進行;以及因應該又一判斷結果,該控制器繼續執行該垃圾收集程序。
- 一種資料儲存裝置之控制器,該資料儲存裝置包含該控制器與一非揮發性記憶體(non-volatile memory,NV memory),該非揮發性記憶體包含至少一非揮發性記憶體元件(NV memory element),該控制器包含有:一處理電路,用來依據來自一主機(host device)的複數個主機指令(host command)控制該控制器,以容許該主機透過該控制器存取(access)該非揮發性記憶體,其中:該控制器啟動並執行一垃圾收集程序;該控制器判斷是否有收到來自該主機的一修剪(Trim)指令;因應收到該修剪指令,該控制器判斷該修剪指令的目標資料是否儲存在該垃圾收集程序的一來源區塊;因應該目標資料儲存在該來源區塊,該控制器判斷儲存在該來源區塊的該目標資料是否已被複製至該垃圾收集程序的一目的區塊;以及因應儲存在該來源區塊的該目標資料已被複製至該目的區塊,該控制器於一邏輯對實體位址映射表(logical-to-physical address mapping table)中將該修剪指令的該目標資料的至少一實體位址變更為一修剪標籤(Trim tag),其中該邏輯對實體位址映射表中的多個欄位(field)中的任一欄位對應於至少三種狀態的 其中一種狀態,在該多個欄位中的用以儲存該至少一實體位址的至少一欄位的預設值指出該至少三種狀態中的一第一種狀態,儲存著該至少一實體位址的該至少一欄位指出該至少三種狀態中的一第二種狀態,儲存著該修剪標籤的該至少一欄位指出該至少三種狀態中的一第三種狀態,以及該至少一欄位經歷該至少三種狀態中的至少一部分狀態的狀態切換,以分別滿足該垃圾收集程序以及該修剪指令之各自的需求,藉此提升該資料儲存裝置的整體效能,其中該修剪標籤指出該目標資料已被無效化。
- 如申請專利範圍第16項所述之控制器,其中於將該修剪指令的該目標資料的該至少一實體位址變更為該修剪標籤以後,該控制器繼續執行該垃圾收集程序。
- 如申請專利範圍第16項所述之控制器,其中判斷是否有收到來自該主機的該修剪指令的操作被執行多次以分別產生一第一判斷結果與一第二判斷結果,其中該第一判斷結果與該第二判斷結果分別指出收到該修剪指令以及未收到該修剪指令;判斷該修剪指令的該目標資料是否儲存在該垃圾收集程序的該來源區塊的操作是因應該第一判斷結果來進行;因應該第二判斷結果,該控制器判斷是否關閉該垃圾收集程序的該目的區塊;以及因應關閉該垃圾收集程序的該目的區塊,該控制器檢查是否該目的區塊的有效頁面資料在該邏輯對實體位址映射表的實體位址為該修剪標籤,以決定是否將該有效頁面資料在該邏輯對實體位址映射表的所述實體位址變更為該預設值。
- 如申請專利範圍第16項所述之控制器,其中判斷該修剪指令的該目標資料是否儲存在該垃圾收集程序的該來源區塊的操作被執行多次以分別產生一第三判斷結果與一第四判斷結果,其中該第三判斷結果與該第四判斷結果分別指出該目標資料儲存在該來源區塊以及該目標資料未儲存在該來源區塊;判斷儲存在該來源區塊的該目標資料是否已被複製至該目的區塊的操作是因應該第三判斷結果來進行;以及因應該第四判斷結果,該控制器繼續執行該垃圾收集程序。
- 如申請專利範圍第16項所述之控制器,其中判斷儲存在該來源區塊的該目標資料是否已被複製至該目的區塊的操作執行多次以分別產生另一判斷結果與又一判斷結果,其中該另一判斷結果與該又一判斷結果分別指出儲存在該來源區塊的該目標資料已被複製至該目的區塊以及儲存在該來源區塊的該目標資料未被複製至該目的區塊;於該邏輯對實體位址映射表中將該修剪指令的該目標資料的該至少一實體位址變更為該剪標籤的操作是因應該另一判斷結果來進行;以及因應該又一判斷結果,該控制器繼續執行該垃圾收集程序。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910120853.1A CN110908925B (zh) | 2018-09-17 | 2019-02-18 | 高效能垃圾收集方法以及数据存储装置及其控制器 |
CN202210006555.1A CN114528226A (zh) | 2018-09-17 | 2019-02-18 | 高效能垃圾收集方法以及数据存储装置及其控制器 |
US16/445,136 US11030093B2 (en) | 2018-09-17 | 2019-06-18 | High efficiency garbage collection method, associated data storage device and controller thereof |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862731993P | 2018-09-17 | 2018-09-17 | |
US62/731,993 | 2018-09-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202013183A TW202013183A (zh) | 2020-04-01 |
TWI721365B true TWI721365B (zh) | 2021-03-11 |
Family
ID=70413522
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108102004A TWI721365B (zh) | 2018-09-17 | 2019-01-18 | 高效能垃圾收集方法以及資料儲存裝置及其控制器 |
TW108109171A TWI684865B (zh) | 2018-09-17 | 2019-03-18 | 用來進行適應性鎖定範圍管理之方法以及資料儲存裝置及其控制器 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108109171A TWI684865B (zh) | 2018-09-17 | 2019-03-18 | 用來進行適應性鎖定範圍管理之方法以及資料儲存裝置及其控制器 |
Country Status (1)
Country | Link |
---|---|
TW (2) | TWI721365B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113641597B (zh) * | 2020-04-27 | 2024-07-12 | 慧荣科技股份有限公司 | 管理数据存储的方法及装置以及计算机可读取存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130275660A1 (en) * | 2012-04-12 | 2013-10-17 | Violin Memory Inc. | Managing trim operations in a flash memory system |
TW201527973A (zh) * | 2014-01-09 | 2015-07-16 | Phison Electronics Corp | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
TW201740265A (zh) * | 2016-05-04 | 2017-11-16 | 群聯電子股份有限公司 | 整理指令處理方法、記憶體控制電路單元與記憶體儲存裝置 |
CN108073522A (zh) * | 2016-11-10 | 2018-05-25 | 慧荣科技股份有限公司 | 可用于数据储存装置的垃圾搜集方法 |
CN108475232A (zh) * | 2016-02-23 | 2018-08-31 | 桑迪士克科技有限责任公司 | 使用xcopy和多逻辑条带的优化的基于主机的垃圾收集策略的高效实现方式 |
TWI634424B (zh) * | 2017-05-08 | 2018-09-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
TW201833777A (zh) * | 2017-03-07 | 2018-09-16 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6141728A (en) * | 1997-09-29 | 2000-10-31 | Quantum Corporation | Embedded cache manager |
US8386537B2 (en) * | 2009-12-15 | 2013-02-26 | Intel Corporation | Method for trimming data on non-volatile flash media |
US8949512B2 (en) * | 2012-02-17 | 2015-02-03 | Apple Inc. | Trim token journaling |
US9703699B2 (en) * | 2014-09-17 | 2017-07-11 | Kabushiki Kaisha Toshiba | Hybrid-HDD policy for what host-R/W data goes into NAND |
EP3394758A4 (en) * | 2017-01-23 | 2019-02-20 | Micron Technology, Inc. | PARTIALLY WRITTEN BLOCK TREATMENT |
US10025534B1 (en) * | 2017-12-20 | 2018-07-17 | Seagate Technology Llc | Shingled magnetic recording trim operation |
-
2019
- 2019-01-18 TW TW108102004A patent/TWI721365B/zh active
- 2019-03-18 TW TW108109171A patent/TWI684865B/zh active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130275660A1 (en) * | 2012-04-12 | 2013-10-17 | Violin Memory Inc. | Managing trim operations in a flash memory system |
TW201527973A (zh) * | 2014-01-09 | 2015-07-16 | Phison Electronics Corp | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
CN108475232A (zh) * | 2016-02-23 | 2018-08-31 | 桑迪士克科技有限责任公司 | 使用xcopy和多逻辑条带的优化的基于主机的垃圾收集策略的高效实现方式 |
TW201740265A (zh) * | 2016-05-04 | 2017-11-16 | 群聯電子股份有限公司 | 整理指令處理方法、記憶體控制電路單元與記憶體儲存裝置 |
CN108073522A (zh) * | 2016-11-10 | 2018-05-25 | 慧荣科技股份有限公司 | 可用于数据储存装置的垃圾搜集方法 |
TW201833777A (zh) * | 2017-03-07 | 2018-09-16 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
TWI634424B (zh) * | 2017-05-08 | 2018-09-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
TW202013183A (zh) | 2020-04-01 |
TW202013194A (zh) | 2020-04-01 |
TWI684865B (zh) | 2020-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110908925B (zh) | 高效能垃圾收集方法以及数据存储装置及其控制器 | |
US11593259B2 (en) | Directed sanitization of memory | |
TWI720588B (zh) | 用以在記憶裝置中進行存取管理的方法、相關記憶裝置及其控制器以及相關電子裝置 | |
US9507711B1 (en) | Hierarchical FTL mapping optimized for workload | |
TWI592800B (zh) | 記憶體管理方法及使用所述方法的儲存控制器 | |
JP4524309B2 (ja) | フラッシュメモリ用のメモリコントローラ | |
TWI698749B (zh) | 資料儲存裝置與資料處理方法 | |
US20220137817A1 (en) | Memory system and method of operating the same | |
CN107590080B (zh) | 映射表更新方法、存储器控制电路单元及存储器存储装置 | |
CN110910944A (zh) | 保持存储器系统中的固件的设备和方法 | |
TWI607309B (zh) | 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN107943710B (zh) | 存储器管理方法及使用所述方法的存储控制器 | |
US20200110543A1 (en) | Flash memory controller, control method of flash memory controller and associated electronic device | |
TWI693520B (zh) | 用來於一記憶裝置中進行系統備份的方法、相關記憶裝置及其控制器、以及相關電子裝置 | |
TWI709975B (zh) | 寫入控制方法以及資料儲存裝置及其控制器 | |
CN113885808A (zh) | 映射信息记录方法以及存储器控制电路单元与存储装置 | |
TWI748542B (zh) | 電子裝置、快閃記憶體控制器及快閃記憶體模組進行垃圾收集操作的方法 | |
TWI748410B (zh) | 用來針對非揮發性記憶體進行區塊管理的方法以及設備 | |
TWI721365B (zh) | 高效能垃圾收集方法以及資料儲存裝置及其控制器 | |
CN111984462A (zh) | 无预警断电复原管理方法、记忆装置、控制器及电子装置 | |
TW202125206A (zh) | 記憶體管理方法與記憶體裝置 | |
TW202125264A (zh) | 非對稱型平面管理方法以及資料儲存裝置及其控制器 | |
TWI852615B (zh) | 藉助於專用資訊控制來進行記憶體裝置的垃圾收集管理之方法、記憶體控制器、記憶體裝置以及電子裝置 | |
TWI686698B (zh) | 邏輯轉實體表更新方法及儲存控制器 | |
US20240231624A1 (en) | Method and apparatus for performing data access management of memory device in predetermined communications architecture with aid of unbalanced table regions |