TW201933101A - 資料儲存裝置 - Google Patents
資料儲存裝置 Download PDFInfo
- Publication number
- TW201933101A TW201933101A TW107101841A TW107101841A TW201933101A TW 201933101 A TW201933101 A TW 201933101A TW 107101841 A TW107101841 A TW 107101841A TW 107101841 A TW107101841 A TW 107101841A TW 201933101 A TW201933101 A TW 201933101A
- Authority
- TW
- Taiwan
- Prior art keywords
- item
- mapping table
- physical
- block
- data
- 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
- 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/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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/1016—Performance 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/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/15—Use in a specific computing environment
- G06F2212/152—Virtualized environment, e.g. logically partitioned system
-
- 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/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—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/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明係提供一種資料儲存裝置,包括:一快閃記憶體,包括複數個物理區塊;以及一微控制器,自該複數個物理區塊中選擇一來源區塊以及一目的區塊,並依據相應於該來源區塊之一檢查表進行一垃圾回收處理以將該來源區塊中之一或多個有效物理位址所儲存之資料複製至該目的區塊。
Description
本發明係有關於資料儲存裝置,特別有關於一種資料儲存裝置及部份垃圾回收(garbage collection)方法。
資料儲存裝置所採用的非揮發性記憶體有多種形式一例如,快閃記憶體(flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式隨機存取記憶體(Resistive RAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM,STT-RAM)…等,用於長時間資料保存。
在非揮發性記憶體上儲存資料時,往往藉由垃圾回收程序來回收不具有有效資料的區塊,使該區塊經抺寫之後可以重新用來儲存資料。隨著時間的演進,非揮發性記憶體的區塊的物理結構愈來愈複雜,資料的儲存能力也愈來愈巨大,因此,如何在不拖累系統資源的前提下,如何有效率地執行垃圾回收程序成為一項重要課題。
本發明係提供一種資料儲存裝置,包括:一快閃記憶體,包括複數個物理區塊;以及一微控制器,自該複數個物理區塊中選擇一來源區塊以及一目的區塊,並依據相應
於該來源區塊之一檢查表進行一垃圾回收處理以將該來源區塊中之一或多個有效物理位址所儲存之資料複製至該目的區塊。
本發明更提供一種資料儲存裝置,包括:一快閃記憶體,包括複數個物理區塊;以及一微控制器,自該複數個物理區塊中選擇一來源區塊以及一目的區塊,並將該來源區塊劃分為複數個虛擬區塊,其中該微控制器係選擇該複數個虛擬區塊之其中一者,並依據所選擇之該虛擬區塊相應的一檢查表以進行一垃圾回收處理,藉以將所選擇之該虛擬區塊中之一或多個有效物理位址所儲存之資料複製至該目的區塊。
本發明更提供一種資料儲存裝置,包括:一快閃記憶體,包括複數個物理區塊;以及一微控制器,自該複數個物理區塊中選擇一來源區塊以及一目的區塊,並將該來源區塊劃分為複數個虛擬區塊,其中該微控制器係選擇該複數個虛擬區塊之其中一者,並取得所選擇之該虛擬區塊之一虛擬有效資料總數,其中當該微控制器判斷該虛擬有效資料總數等於所選擇之該虛擬區塊所能儲存的資料數量之一最大值,該微控制器係進行一垃圾回收處理以將所選擇之該虛擬區塊中之複數個物理位址所儲存之資料依序複製至該目的區塊。
100‧‧‧快閃記憶體
200‧‧‧主機
300‧‧‧資料儲存裝置
302‧‧‧控制單元
304‧‧‧動態隨機存取記憶體
310‧‧‧線上燒錄區塊池
312‧‧‧系統資訊區塊池
314‧‧‧閒置區塊池
316‧‧‧資料區塊池
320‧‧‧微控制器
322‧‧‧隨機存取記憶空間
324‧‧‧唯讀記憶體
Active_Blk‧‧‧主動區塊
GC_D‧‧‧垃圾回收之目的區塊
BLK#1、BLK#2、BLK#Z‧‧‧物理區塊
S502-S516、S602-S618、S702-S714‧‧‧步驟
第1圖係顯示一快閃記憶體的物理儲存空間規劃之示意
圖。
第2圖係顯示垃圾回收之概念的示意圖。
第3圖係顯示依據本發明一實施例中之資料儲存裝置的功能方塊圖。
第4圖係顯示依據本發明一實施例中邏輯至物理分組映射表、物理至邏輯位址映射表、及檢查表之關係的示意圖。
第5A-5B圖係顯示依據本發明一實施例中之部份垃圾回收方法的流程圖;第6A-6B圖係顯示依據本發明一實施例中用於虛擬區塊之部份垃圾回收方法的流程圖;第7圖係顯示依據本發明一實施例中之部份垃圾回收方法的流程圖。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
非揮發性記憶體可以是快閃記憶體(Flash memory)、磁阻式隨機存取記憶體(Magnetoresistive RAM)、鐵電隨機存取記憶體(Ferroelectric RAM)、電阻式記憶體(Resistive RAM,RRAM)、自旋轉移力矩隨機存取記憶體(Spin Transfer Torque-RAM,STT-RAM)等具有長時間資料保存之記憶體裝置。以下特別以快閃記憶體(Flash memory)為例進行討論。
第1圖係顯示一快閃記憶體(Flash memory)100的
物理儲存空間規劃之示意圖。快閃記憶體100係劃分為複數個物理區塊(physical blocks)BLK#1、BLK#2…BLK#Z等,Z為正整數。各物理區塊包括複數物理頁(physical pages),例如:256個物理頁。每一物理頁包括一個可儲存預設長度的資料區,例如:可儲存16KB長度的資料區;除此之外,每一物理頁更具有一個備用區,並利用此備用區來儲存元資料(metadata)。多個物理頁,例如三個,可被同一條字元線(word line)所存取或管理。每一物理頁的資料區可劃分為複數個儲存單元,例如:每一儲存單元用以儲存4KB大小的資料,並將此資料的邏輯區塊位址(Logical Block Address,LBA)(例如:LBA#0)儲存於備用區;或者,每一儲存單元最多可儲存8個512B大小的資料,並將其LBA(例如:LBA#0~LBA#7)儲存於備用區。為了簡化說明,在本發明中每一儲存單元可儲存一筆4KB大小的資料。資料所對應的物理位址(由主機所分配)以及資料儲存於快閃記憶體100的位置/位址(物理位址)之間的映射關係可以記錄至一個映射表L2P(例如可稱為邏輯至物理位址映射表,Logical-to-Physical Address Mapping Table),以進行資料的管理。映射表L2P較佳是以LBA為索引依序建立,每個項目(Entry)的內容記錄一個PBA,但不以此為限,映射表L2P也可以依資料儲存至快閃記憶體的先後順序來建立。除了映射表L2P之外,使用者可建立其他類型的映射表以管理快閃記憶體100所儲存的資料,並作為映射表L2P重建的依據。例如,映射表P2L(例如可稱為物理至邏輯位址映射表,Physical-to-Logical Address Mapping Table)記錄資料儲
存於快閃記憶體100的位置/位址以及資料所對應的LBA之間的映射關係,即以PBA為索引依序建立,每個項目的內容記錄一個LBA。
現今資料儲存裝置常以快閃記憶體100為儲存媒體,常用來實現記憶卡(Memory Card)、通用序列匯流排閃存裝置(USB Flash Device)、固態硬碟(SSD)...等產品。有一種應用是採多晶片封裝、將快閃記憶體100與其控制器包裝在一起-稱為嵌入式快閃記憶體模組(如eMMC)。
快閃記憶體100之資料更新並非對同樣儲存空間作複寫,而是將更新資料儲存在閒置空間。至於原儲存空間的儲存內容則轉為無效。頻繁的寫入操作容易致使儲存空間充斥無效的儲存內容。對於充斥無效物理頁的物理區塊,快閃記憶體100具有垃圾回收(Garbage Collection)設計。
第2圖係顯示垃圾回收之概念的示意圖。斜線標示無效資料。來源區塊(Source Blocks)的有效資料將被複製至目的區塊(Destination Block)。當複製完成後,可直接對來源區塊執行抹除(Erase)動作並將其定義(或變更)為閒置區塊(Spare Block);或者,將此來源區塊定義為閒置區塊,當閒置區塊被選取以儲存資料時,再對此閒置區塊執行抹除動作。為了有效率地執行垃圾回收程序,本案揭露以分段方式執行垃圾回收程序,並於分段之間執行來自於主機之指令,避免系統資源被垃圾回收程序所獨佔而造成系統效能低落。
第3圖係顯示依據本發明一實施例中之資料儲存裝置300的功能方塊圖。資料儲存裝置300包括一快閃記憶體
`00以及一控制單元302。控制單元302係耦接於一主機200與該快閃記憶體100之間,包括根據主機200所下達的指令操作該快閃記憶體100。
圖示快閃記憶體100之儲存空間規劃包括:線上燒錄區塊池310、系統資訊區塊池312、閒置區塊池314、資料區塊池316、主動區塊Active_Blk以及因應垃圾回收需求而產生的目的區塊GC_D。線上燒錄區塊池310之區塊儲存線上燒錄(In-System Programming,ISP)的程式。系統資訊區塊池312之區塊儲存系統資訊一如,映射表L2P。主動區塊Active_Blk係由閒置區塊池314供應,負責接收來自於主機200的資料,待完成資料儲存後即推入資料區塊池316或定義為資料區塊池316的資料區塊。垃圾回收程序中之目的區塊GC_D係由閒置區塊池314供應。垃圾回收程序中之來源區塊GC_S則可選自該資料區塊池316。來源區塊GC_S的有效內容完全複製至該目的區塊GC_D後,來源區塊GC_S則定義為閒置區塊。
控制單元302包括一微控制器320、一隨機存取記憶體322以及一唯讀記憶體324。隨機存取記憶體322例如為一靜態隨機存取記憶體(SRAM)。隨機存取記憶體322例如可與微控制器320置於同一個晶粒(Die)。唯讀記憶體324係儲存一唯讀程式碼(例如ROM Code)。微控制器320執行該唯讀記憶體324所載之唯讀程式碼或/以及該快閃記憶體100之該線上燒錄區塊池310所載之線上燒錄的程式,以進行運作。舉例來說,微控制器320係具有快閃記憶轉譯層(Flash Translation Layer,FTL)之功能。
當主動區塊Active_Blk完成資料儲存後,在推入資料區塊池316或定義為資料區塊池316的資料區塊之前,微控制器320會儲存映射表P2L至主動區塊Active_Blk的尾部,較佳為最後一個或複數個資料頁。當微控制器320產生映射表P2L時,會再度檢視主動區塊Active_Blk所儲存的資料是否仍為有效資料。如果主動區塊Active_Blk所儲存的資料為無效資料時,則在映射表P2L中該資料所對應的邏輯位址的數值會被設定為預設值或一特定位址,例如:0xFFFFFFFF,其中上述預設值或特定位址可視實際情況調整。
當主動區塊Active_Blk開始儲存資料,或完成資料儲存而成為資料區塊之後,微控制器320監視主動區塊Active_Blk或資料區塊中有效資料的數目,並記錄至有效資料總數。資料的有效性判斷較佳以一個儲存單元為單位,亦可以一個資料頁為單位,當主動區塊Active_Blk資料區塊所儲存的資料不再是有效資料時,有效資料總數減1。當執行垃圾回收程序時,微控制器320較佳從資料區塊池316中選取一個具有最小有效資料總數的資料區塊作為來源區塊GC_S。
在一實施例中,邏輯至物理位址映射表(以下簡稱為映射表)L2P可分割成複數個分組映射表L2P_G,例如分組映射表L2P_G#0~分組映射表L2P_G#4095。每一分組映射表L2P_G的大小較佳等於一個資料頁或儲存單元的大小,以利分組映射表L2P_G的儲存及管理,但不以此為限。微控制器320可利用該隨機存取記憶體322動態整理映射表L2P或分組映射表L2P_G。至於主動區塊Active_Blk以及目的區塊GC_D各
自的物理至邏輯位址映射表(以下亦簡稱為映射表)P2L,微控制器320也可在該隨機存取記憶體322上進行動態整理。為了便於說明,邏輯至物理位址映射表以及物理至邏輯位址映射表均簡稱為映射表,但其標號不同以做為區隔。
進行垃圾回收時,控制單元302會先進行資料的有效性判斷,才開始進行資料(有效資料)的複製。控制單元302除了取得來源區塊GC_S的映射表P2L_S之外,也需將映射表L2P上傳至隨機存取記憶體322,或是外部隨機存取記憶體。因為動態隨機存取記憶體322或外部隨機存取記憶體之空間有限,故微控制器320並無法讀取整張映射表L2P至隨機存取記憶體322或外部隨機存取記憶體,而是讀取一份或複數份分組映射表L2P_G至隨機存取記憶體322或外部隨機存取記憶體。為了簡化說明,將以隨機存取記憶體322作為分組映射表L2P_G的儲存媒體,並不以此為限。另外,控制單元302亦在隨機存取記憶體322建立目的區塊GC_D的映射表P2L_D。當目的區塊GC_D寫滿資料後,控制單元302會將映射表P2L_D寫入目的區塊GC_D的區塊關閉(End of Block,EOB)資訊中,並將目的區塊GC_D定義為資料區塊。
一般而言,在傳統的垃圾回收過程中,在對資料區塊,即來源區塊GC_S,進行垃圾回收時,快閃記憶體轉換層(FTL)需確認來源區塊GC_S之映射表P2L_S所記錄的物理位址(PBA)以及所相應的邏輯位址(LBA)與分組映射表L2P_G所記錄的邏輯位址以及所對應之物理位址是否一致。若映射關係一致則表示來源區塊GC_S中該物理位址所儲存的資料為有
效資料。若映射關係不一致表示來源區塊GC_S中該物理位址所儲存的資料為無效資料。因為資料可能以隨機的方式儲存於來源區塊GC_S,因此,來源區塊GC_S所記錄的複數物理位址可對應至多個分組映射表L2P_G,而同一個分組映射表L2P_G可能對應至來源區塊GC_S中的複數物理位址。在隨機存取記憶體322無法同時容納完整的映射表L2P的情況下,在進行垃圾回收時,控制單元302需不斷地置換在隨機存取記憶體322中之分組映射表L2P_G,由於數筆物理位址可能先後對應至同一個分組映射表L2P_G,這會導致相同的分組映射表L2P_G在垃圾回收的過程中被重複讀取多次,這需額外的讀取時間,也會降低系統效能。
第4圖係顯示依據本發明一實施例中邏輯至物理分組映射表、物理至邏輯位址映射表、及檢查表之關係的示意圖。如第4圖所示,本發明控制單元302建立一檢查表(Bitmap)以標記來源區塊GC_S之映射表P2L_S中可對應至分組映射表L2P_G的每一項目,其中,檢查表的每一檢查位元的初始值為”0”;當進行標記時,檢查位元的值變更為”1”。如第4圖所示,映射表P2L_S的第一個項目的內容為LBA#0x01000000,而LBA#0x01000000乃為分組映射表L2P_G#256的其中之一LBA,則將此項目標記至檢查表的對應檢查位元的值變更為”1”。另外,為了避免日後重覆讀取分組映射表L2P_G#256,控制單元302標記映射表P2L_S中對應至分組映射表L2P_G#256的所有項目。因此,除了第一個項目之外,映射表P2L_S還有其他項目可對應至分組映射表
L2P_G#256,包括:LBA#0x01000003、#0x01000001、#0x0100FFFB以及#0x0100FFFD,控制單元302將這些項目全部都標記至檢查表中相應的檢查位元,即將檢查表的對應檢查位元的值皆變更為”1”。應注意的是,此標記過程的目的乃在於標記映射表P2L_S中對應至分組映射表L2P_G的所有項目,避免於垃圾回收過程中重覆讀取同一分組映射表L2P_G,至於被標記項目的物理位置所儲存的資料是否有效,可於資料搬移時再進行確認。
由圖4中可知,檢查表的每一個檢查位元可分別對應至映射表P2L_S的一個項目。當控制單元302選取一分組映射表L2P_G時,較佳可挑選檢查表中最先或最後或隨機地一個檢查位元”0”所對應的映射表P2L_S的非虛置項目(non-dummy entry),例如其內容(LBA)不等於0xFFFFFFFF,再依此非虛置項目的內容來決定該讀取哪一個分組映射表L2P_G。需了解的是,當在映射表P2L_S中之一或多個項目所記錄之邏輯位址為0xFFFFFFFF時,此表示此類項目係記錄無效資料,此類項目亦可稱為虛置項目(Dummy Entry),且映射表P2L_S中的此類虛置項目並不會被控制單元302挑選,且虛置項目在檢查表中所相應的檢查位元也不會被控制單元302改變(即檢查位元保持為0)。重覆上述步驟以檢查並標記在映射表P2L_S中對應至分組映射表L2P_G之其他非虛置項目。當檢查表中由映射表P2L_S映射至分組映射表L2P_G中之非虛置項目的檢查位元皆為”1”,表示映射表P2L_S已完成標記,這表示來源區塊GC_S已無任何有效資料了,因此,來源區塊GC_S可定義
為閒置區塊,或直接進行抹寫處理。
垃圾回收程序中,控制單元302每將映射表P2L_S中可對應至分組映射表L2P_G的非虛置項目標記完後,即對檢查表中檢查位元為”1”所對應的映射表P2L_S的非虛置項目進行資料有效性的判斷,藉以得知儲存有效資料之非虛置項目,此類項目亦可稱為有效項目。控制單元302並將在映射表P2L_S中之有效項目的物理位址所儲存有效資料複製至目的區塊GC_D,並更新映射表P2L_D。由上述可知,每一分組映射表L2P_G最多僅需讀取一次,而非多次,因此可以提高垃圾回收程序的執行效率。
資料有效性的判斷乃比對分組映射表L2P_G與映射表P2L_S所記錄的內容之映射關係是否一致。例如:映射表P2L_S的第一個項目(例如為一非虛置項目)的內容為LBA#0x01000000,而分組映射表L2P_G#256記錄LBA#0x01000000~0x0100FFFF所對應的PBA,在分組映射表L2P_G中,LBA#0x01000000的項目的內容為PBA#0x00010000,而PBA#0x00010000亦對應至映射表P2L_S的第一個項目。因此,對於映射表P2L_S的第一個項目來說,分組映射表L2P_G與映射表P2L_S的映射關係具有一致性,故來源區塊GC_S的此物理位址(即PBA#0x00010000)所儲存的資料為有效資料(以雙向箭頭標示)。接著,控制單元302將此物理位址所儲存的資料複製至目的區塊GC_D,並將P2L_S的第一個項目的內容(LBA)無效化,例如,變更為0xFFFFFFFF。相反的,映射表P2L_S的其中之一非虛置項目的內容為
LBA#0x0100FFFB,而LBA#0x0100FFFB亦對應至分組映射表L2P_G#256的其中之一項目,此項目的內容為PBA#0x110101AB,PBA#0x110101AB卻未對應至映射表P2L_S的任何一個項目。分組映射表L2P_G與映射表P2L_S記錄不具有一致性,這表示來源區塊GC_S的此項目之物理位址所儲存的資料為無效資料(以單向箭頭標示),此時,控制單元302也可將映射表P2L_S中此項目的內容無效化,例如,變更為0xFFFFFFFF,此時在映射表P2L_S中已無效化的項目亦可稱為無效項目(Invalid Entry)或虛置項目。另外,當比對分組映射表L2P_G與映射表P2L_S所記錄的內容時,如果映射表P2L_S的項目的內容已無效化(例如為一虛置項目,即其內容為0xFFFFFFFF),則控制單元302跳過此項目的比對,亦不會標記其在檢查表中相應的檢查位元。
第5A-5B圖係顯示依據本發明一實施例中之部份垃圾回收方法的流程圖。在步驟S502,選取一來源區塊GC_S。在步驟S504,讀取來源區塊GC_S之映射表P2L_S。微控制器320較佳選取有效資料總數(例如在一資料區塊中之有效頁面的數量)最小的資料區塊作為來源區塊GC_S,並將來源區塊GC_S的映射表P2L_S儲存至隨機存取記憶體322。
在步驟S506,選擇映射表P2L_S中之一第一項目。其中,該第一項目例如為一非虛置項目,意即該第一項目所記錄之邏輯位址並未被無效化(例如不等於0xFFFFFFFF),且該第一項目在檢查表中所對應的檢查位元為預設值(例如0)。此外,微控制器320較佳使用指標(Pointer)來
指向選取的物理位址,且指標的值較佳以遞增或遞減的方式來指向另一物理位址,如此一來,可避免重覆指向同一物理位址。
在步驟S508,讀取所選取之該第一項目所記錄之一邏輯位址相應的分組映射表L2P_G。當映射表P2L_S中的該第一項目(例如對應於PBA#0x00010000)被選取之後,依據映射表P2L_S中之該第一項目所記錄的邏輯位址(例如:LBA#0x01000000)就能得知此邏輯位址相應的分組映射表L2P_G,例如:分組映射表L2P_G#256。微控制器320並自快閃記憶體100讀取此分組映射表L2P_G#256,並將分組映射表L2P_G#256儲存至隨機存取記憶體322。
在步驟S509,檢查映射表P2L_S中之各項目以取得相應於該分組映射表L2P_G之至少一第二項目。其中該至少一第二項目包括該第一項目。舉例來說,微控制器320會先依據在映射表P2L_S中各項目所記錄之邏輯位址以判斷有那些項目是對應至已讀取之分組映射表L2P_G。
在步驟S510,分別選取在映射表P2L_S中對應至分組映射表L2P_G的各第二項目。舉例來說,檢查表的每一個檢查位元可分別對應至映射表P2L_S的一個項目,且映射表P2L_S可能有一或多個非虛置項目(例如第二項目)之邏輯位址均對應至分組映射表L2P_G。微控制器320係分別選取在映射表P2L_S中對應至分組映射表L2P_G之各非虛置項目(例如第二項目)。需注意的是,微控制器320並不會重複選取在映射表P2L_S中的第二項目。
在步驟S511,檢查所選取的該第二項目是否有效。若所選取的該第二項目有效,則執行步驟S5101;若否,則執行步驟S5102。舉例來說,檢查所選取的該項目之有效性係可依據前述實施例將映射表P2L_S及分組映射表L2P_G中之映射關係進行比對,若映射關係一致,則表示已檢查的該第二項目的物理位址係儲存有效資料,此類項目亦可稱為有效項目。若映射關係不一致,則表示已檢查的該第二項目的物理位址並未儲存有效資料。判斷資料有效性的方法可參考第4圖之實施例,例如可將所選取的第二項目的物理位址(PBA#0x00010000)與內容(LBA#0x01000000)和分組映射表L2P_G#256中的邏輯位址(LBA#0x01000000)與內容(PBA#0x00010000)進行比對以判斷映射關係是否一致。若映射關係一致,這表示此項目的物理位址儲存有效資料;反之則為無效資料。
在步驟S5101,於該檢查表標記已檢查之該第二項目相應的一檢查位元。舉例來說,若所選取的第二項目相應之物理位址儲存有效資料,則微控制器320可直接在檢查表標記已檢查之該第二項目相應的一檢查位元,例如可將檢查位元設定為1。
在步驟S5102,無效化已檢查之該第二項目所記錄之一邏輯位址。舉例來說,若所選取的第二項目相應之物理位址並未儲存有效資料,微控制器320係將所選取的第二項目所記錄的邏輯位址無效化,例如設定為0xFFFFFFFF。接著,執行步驟S5101以於該檢查表標記已檢查之該第二項目的
檢查位元。詳細而言,無論檢查的第二項目相應之物理位址是否儲存有效資料,其相應的檢查位元均會被微控制器320設定為1。
在步驟S5103,判斷在映射表P2L_S中對應至分組映射表L2P_G的各第二項目是否均已檢查過。若是,則執行步驟S512;若否,則執行步驟S510以選擇在映射表P2L_S中對應至分組映射表L2P_G的其他第二項目。
在步驟S512,依序複製在映射表P2L_S中於檢查表中已標記且有效的該至少一第二項目之資料至一目的區塊。因為在上述流程中已得知在映射表P2L_S中對應至分組映射表L2P_G的已檢查過且有效的第二項目,故可將這些已檢查過且有效的第二項目之資料依序複製至目的區塊GC_D。在本發明中,微控制器320亦可以先進先出(First-In First-Out,FIFO)的方式將步驟S514所複製的有效資料暫存至隨機存取記憶體322中,等到有效資料累積至一預定數量,例如,4筆,才會將有效資料寫入至目的區塊GC_D的資料頁中,可增加寫入的效率,並降低資料儲存空間的使用量。
在步驟S514,將在映射表P2L_S中已複製資料之該至少一第二項目所記錄的邏輯位址無效化。在一實施例中,每當微控制器320將已檢查過且有效的第二項目的資料複製至目的區塊後,微控制器320則會將已複製之該第二項目所記錄的邏輯位址無效化,例如修改為0xFFFFFFFF。
在步驟S516,判斷映射表P2L_S中於檢查表中已標記且有效的該至少一第二項目的資料是否均已複製。若
是,則結束此流程;若否,則執行步驟S512。
另外,每次執行步驟S512之後,微控制器320可將已複製之有效資料的新物理位置(目地區塊GC_D)更新至分組映射表L2P_G。或者,可在結束本發明部份垃圾回收的方法之前,再依序將有效資料的新物理位置更新至分組映射表L2P_G。或者,可在目地區塊GC_D寫滿資料後,再依序將有效資料的新物理位置更新至分組映射表L2P_G。
假設來源區塊GC_S的映射表P2L_S的不同項目所記錄的邏輯位址(LBA)係對應至複數個分組映射表L2P_G,則重覆執行本發明第5圖之部份垃圾回收方法即能將來源區塊GC_S所儲存的資料複製至目的區塊GC_D,且相應於來源區塊之每一分組映射表L2P_G僅被讀取一次,達到本發明的目的。
另外,微控制器320可將來源區塊GC_S劃分成數個虛擬區塊,以簡化資料的管理。第6A-6B圖係顯示依據本發明一實施例中用於虛擬區塊之部份垃圾回收方法的流程圖,本發明部份垃圾回收方法亦可適於虛擬區塊,如圖6A-6B所示,並簡述如下。
在步驟S602,選擇一來源區塊並將該來源區塊劃分為複數個虛擬區塊。舉例來說,微控制器320係可將來源區塊GC_S劃分成複數個虛擬區塊,例如:4個虛擬區塊,且每一虛擬區塊皆有一個對應的虛擬映射表VP2L_S,微控制器320較佳記錄每一虛擬區塊的虛擬有效資料總數。舉例來說,虛擬有效資料總數係指該虛擬區塊中之虛擬有效頁面的數
量。
在步驟S604,選擇該來源區塊之該複數個虛擬區塊之其中一者所相應的虛擬映射表VP2L_S,其中,微控制器320較佳依序選取來源區塊之虛擬區塊。
在步驟S606,選擇此虛擬映射表VP2L_S中之一第一項目。步驟S604及S606類似步驟S502及S504,主要差別在於步驟S604選取的是來源區塊GC_S的其中之一虛擬區塊的虛擬映射表VP2L_S。
在步驟S608,讀取所選取之該第一項目所記錄之一邏輯位址相應的分組映射表L2P_G。步驟S608及S508類似,故不多作說明。
在步驟S609,檢查虛擬映射表VP2L_S中之各項目以取得相應於該分組映射表L2P_G之至少一第二項目。步驟S609及S509類似,故不多作說明。
在步驟S610,分別選取在虛擬映射表VP2L_S中對應至分組映射表L2P_G的各第二項目。步驟S610及S510類似,故不多作說明。
在步驟S611,檢查所選取的該第二項目是否有效。步驟S611及S511類似,故不多作說明。
在步驟S6101,於該檢查表標記已檢查之該第二項目相應的一檢查位元。舉例來說,若所選取的第二項目相應之物理位址儲存有效資料,則微控制器320可直接在檢查表標記已檢查之該第二項目相應的一檢查位元,例如可將檢查位元設定為1。
在步驟S6102,無效化已檢查之該第二項目所記錄之一邏輯位址。舉例來說,若所選取的第二項目相應之物理位址並未儲存有效資料,微控制器320係將所選取的第二項目所記錄的邏輯位址無效化,例如設定為0xFFFFFFFF。接著,執行步驟S6101以於該檢查表標記已檢查之該第二項目的檢查位元。詳細而言,無論檢查的第二項目相應之物理位址是否儲存有效資料,其相應的檢查位元均會被微控制器320設定為1。
在步驟S6103,判斷在虛擬映射表VP2L_S中對應至分組映射表L2P_G的各第二項目是否均已檢查過。若是,則執行步驟S612;若否,則執行步驟S610以選擇在映射表P2L_S中對應至分組映射表L2P_G的其他第二項目。
在步驟S612,依序複製在虛擬映射表VP2L_S中於檢查表中已標記且有效的該至少一第二項目之資料至一目的區塊GC_D。步驟S612及S512類似,主要差別在於步驟S612是複製在虛擬映射表VP2L_S中已標記且有效之第二項目的資料至目的區塊GC_D。
在步驟S614,將在虛擬映射表VP2L_S中已複製資料之該至少一第二項目所記錄的邏輯位址無效化。步驟S614及S514類似,主要差別在於步驟S614是將此標記所對應的虛擬映射表VP2L_S的項目的邏輯位址無效化。
在步驟S616,判斷虛擬映射表VP2L_S中於檢查表中已標記且有效的該至少一第二項目的資料是否均已複製。若是,則執行步驟S618;若否,則回到步驟S612。
在步驟S618,判斷來源區塊中之各虛擬區塊的虛擬映射表VP2L_S是否均已被選取。若是,則結束部分垃圾回收方法;若否,則回到步驟S604,選取一個尚未被選取過的虛擬區塊的虛擬映射表VP2L_S。
另外,每次執行步驟S612之後,微控制器320可將已複製之有效資料的新物理位置(目地區塊GC_D)更新至分組映射表L2P_G。或者,可在結束本發明部份垃圾回收的方法之前,依序將有效資料的新的物理位置更新至分組映射表L2P_G。
另外,針對極端的例子,即來源區塊中之一虛擬區塊中所有資料皆有效或皆無效時,本發明部份垃圾回收方法可予以簡化,如圖7所示,並簡述如下。步驟S702係類似於步驟S602。
在步驟S704,讀取來源區塊之其中之一虛擬區塊。
在步驟S706,讀取此虛擬區塊的虛擬有效資料總數。舉例來說,虛擬有效資料總數係指該虛擬區塊中之虛擬有效頁面的數量。
在步驟S708,判斷虛擬有效資料總數是否等於0,如果是則執行步驟S704,選取另一個當未選取過的虛擬區塊。如果否,則執行步驟S710。
在步驟S710,判斷虛擬有效資料總數是否等於最大值MAX,如果是則執行步驟S712,如果否則結束本發明部份垃圾回收方法的執行。舉例來說,虛擬有效資料總數的最
大值MAX等於所選取的該虛擬區塊所能儲存資料的總數值(例如在虛擬區塊中之所有頁面的數量),如果步驟S710的判斷為是,這表示此虛擬區塊所儲存的資料皆是有效資料。
在步驟S712,將該虛擬區塊所儲存的資料依序複製至目的區塊。
在步驟S714,判斷來源區塊中之各虛擬區塊的虛擬映射表VP2L_S是否均已被選取。若是,則結束本發明部份垃圾回收的方法。若否,則執行步驟S704,選取一個尚未被選取過的虛擬區塊的虛擬映射表VP2L_S。
另外,每次執行步驟S714之後,微控制器320可將有效資料的新的物理位置(目地區塊GC_D)更新至分組映射表L2P_G。或者,可在結束本發明部份垃圾回收的方法之前,依序將有效資料的新的物理位置更新至分組映射表L2P_G。
綜上所述,本發明係提供一種資料儲存裝置及部份垃圾回收方法,其可經由一檢查表(或虛擬檢查表)來確認在垃圾回收之過程中之來源區塊的各物理位址的有效性,並可避免在垃圾回收之過程中重複讀取相同的分組映射表L2P_G,進而提高系統執行效率。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (20)
- 一種資料儲存裝置,包括:一快閃記憶體,包括複數個物理區塊;以及一微控制器,自該複數個物理區塊中選擇一來源區塊以及一目的區塊,並依據相應於該來源區塊之一檢查表進行一垃圾回收處理以將該來源區塊中之一或多個有效物理位址所儲存之資料複製至該目的區塊。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該檢查表係記錄該來源區塊所相應之一物理至邏輯位址映射表中之各物理位址是否已與相應之一或多個邏輯至物理分組映射表比對映射關係。
- 如申請專利範圍第1項所述之資料儲存裝置,其中該微控制器係選擇該來源區塊之一物理至邏輯位址映射表中之一第一項目,並將該第一項目所記錄之一特定邏輯位址相應的一邏輯至物理分組映射表讀取至一隨機存取記憶體,其中該第一項目為一非虛置項目。
- 如申請專利範圍第3項所述之資料儲存裝置,其中該微控制器係檢查該物理至邏輯位址映射表中之複數個項目以取得相應於該邏輯至物理分組映射表之至少一第二項目,其中該至少一第二項目包括該第一項目。
- 如申請專利範圍第4項所述之資料儲存裝置,其中該微控制器係分別選取在該物理至邏輯映射表中對應至該邏輯至物理分組映射表的各第二項目,並判斷所選取的該第二項目是否有效。
- 如申請專利範圍第5項所述之資料儲存裝置,其中:當所選取的該第二項目有效,該微控制器係在該檢查表標記已檢查之該第二項目相應的一檢查位元;以及當所選取的該第二項目無效,該微控制器係無效化已檢查之該第二項目所記錄之邏輯位址,並在該檢查表標記已檢查之該第二項目相應的一檢查位元。
- 如申請專利範圍第6項所述之資料儲存裝置,其中當在該物理至邏輯映射表中之各第二項目均已檢查過,依序複製在該物理至邏輯映射表中於該檢查表中已標記且有效的該至少一第二項目之資料至該目的區塊,並將在該物理至邏輯映射表中已複製資料之該至少一第二項目所記錄的邏輯位址無效化。
- 如申請專利範圍第7項所述之資料儲存裝置,其中該微控制器係以先進先出之方式將所讀取之該至少一第二項目的資料寫入該目的區塊,並完成該垃圾回收處理。
- 如申請專利範圍第7項所述之資料儲存裝置,其中該微控制器係等待所讀取的該至少一第二項目之資料累積至一預定數量,再將累積的資料寫入該目的區塊並完成該垃圾回收處理。
- 一種資料儲存裝置,包括:一快閃記憶體,包括複數個物理區塊;以及一微控制器,自該複數個物理區塊中選擇一來源區塊以及一目的區塊,並將該來源區塊劃分為複數個虛擬區塊; 其中該微控制器係選擇該複數個虛擬區塊之其中一者,並依據所選擇之該虛擬區塊相應的一檢查表以進行一垃圾回收處理,藉以將所選擇之該虛擬區塊中之一或多個有效物理位址所儲存之資料複製至該目的區塊。
- 如申請專利範圍第10項所述之資料儲存裝置,其中該檢查表係記錄該來源區塊中所選擇的該虛擬區塊所相應之一虛擬物理至邏輯位址映射表中之各物理位址是否已與相應之一或多個邏輯至物理分組映射表比對映射關係。
- 如申請專利範圍第11項所述之資料儲存裝置,其中該微控制器係選擇該虛擬區塊之該虛擬物理至邏輯位址映射表中之一第一項目,並將該第一項目所對應之一特定邏輯位址相應的一邏輯至物理分組映射表讀取至一隨機存取記憶體,其中該第一項目為一非虛置項目。
- 如申請專利範圍第12項所述之資料儲存裝置,其中該微控制器係檢查該虛擬物理至邏輯位址映射表中之複數個項目以取得相應於該邏輯至物理分組映射表之至少一第二項目,其中該至少一第二項目包括該第一項目。
- 如申請專利範圍第13項所述之資料儲存裝置,其中該微控制器係分別選取在該虛擬物理至邏輯映射表中對應至該邏輯至物理分組映射表的各第二項目,並判斷所選取的該第二項目是否有效。
- 如申請專利範圍第14項所述之資料儲存裝置,其中:當所選取的該第二項目有效,該微控制器係在該檢查表標記已檢查之該第二項目相應的一檢查位元;以及 當所選取的該第二項目無效,該微控制器係無效化已檢查之該第二項目所記錄之邏輯位址,並在該檢查表標記已檢查之該第二項目相應的一檢查位元。
- 如申請專利範圍第15項所述之資料儲存裝置,其中當在該虛擬物理至邏輯映射表中之各第二項目均已檢查過,依序複製在該虛擬物理至邏輯映射表中於該檢查表中已標記且有效的該至少一第二項目之資料至該目的區塊,並將在該虛擬物理至邏輯映射表中已複製資料之該至少一第二項目所記錄的邏輯位址無效化。
- 如申請專利範圍第16項所述之資料儲存裝置,其中該微控制器係以先進先出之方式將所讀取之該至少一第二項目的資料寫入該目的區塊,並完成該垃圾回收處理。
- 如申請專利範圍第16項所述之資料儲存裝置,其中該微控制器係等待所讀取的該至少一第二項目之資料累積至一預定數量,再將累積的資料寫入該目的區塊並完成該垃圾回收處理。
- 一種資料儲存裝置,包括:一快閃記憶體,包括複數個物理區塊;以及一微控制器,自該複數個物理區塊中選擇一來源區塊以及一目的區塊,並將該來源區塊劃分為複數個虛擬區塊;其中該微控制器係選擇該複數個虛擬區塊之其中一者,並取得所選擇之該虛擬區塊之一虛擬有效資料總數;其中當該微控制器判斷該虛擬有效資料總數等於所選擇之該虛擬區塊所能儲存的資料數量之一最大值,該微控制器 係進行一垃圾回收處理以將所選擇之該虛擬區塊中之複數個物理位址所儲存之資料依序複製至該目的區塊。
- 如申請專利範圍第19項所述之資料儲存裝置,其中當該微控制器判斷該虛擬有效資料總數等於零,該微控制器係結束該垃圾回收處理。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107101841A TWI670594B (zh) | 2018-01-18 | 2018-01-18 | 資料儲存裝置 |
US16/026,917 US10657047B2 (en) | 2018-01-18 | 2018-07-03 | Data storage device and method of performing partial garbage collection |
CN201810715599.5A CN110058796B (zh) | 2018-01-18 | 2018-07-03 | 数据储存装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107101841A TWI670594B (zh) | 2018-01-18 | 2018-01-18 | 資料儲存裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201933101A true TW201933101A (zh) | 2019-08-16 |
TWI670594B TWI670594B (zh) | 2019-09-01 |
Family
ID=67213985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107101841A TWI670594B (zh) | 2018-01-18 | 2018-01-18 | 資料儲存裝置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10657047B2 (zh) |
CN (1) | CN110058796B (zh) |
TW (1) | TWI670594B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113467697A (zh) * | 2020-03-30 | 2021-10-01 | 瑞昱半导体股份有限公司 | 存储器控制器与数据处理方法 |
TWI784424B (zh) * | 2020-09-03 | 2022-11-21 | 日商鎧俠股份有限公司 | 非揮發性記憶體、記憶體系統及非揮發性記憶體之控制方法 |
TWI785876B (zh) * | 2021-10-28 | 2022-12-01 | 大陸商合肥兆芯電子有限公司 | 映射資訊記錄方法、記憶體控制電路單元與記憶體儲存裝置 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10795828B2 (en) * | 2018-08-10 | 2020-10-06 | Micron Technology, Inc. | Data validity tracking in a non-volatile memory |
TWI703438B (zh) * | 2018-09-11 | 2020-09-01 | 慧榮科技股份有限公司 | 映射表更新方法 |
CN110895513A (zh) * | 2018-09-12 | 2020-03-20 | 华为技术有限公司 | 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法 |
US10942909B2 (en) * | 2018-09-25 | 2021-03-09 | Salesforce.Com, Inc. | Efficient production and consumption for data changes in a database under high concurrency |
KR20200099897A (ko) * | 2019-02-15 | 2020-08-25 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US11281387B2 (en) * | 2019-07-01 | 2022-03-22 | EMC IP Holding Company LLC | Multi-generational virtual block compaction |
CN110597741B (zh) * | 2019-08-23 | 2021-09-10 | 苏州浪潮智能科技有限公司 | 一种l2p表的读写、更新方法及l2p表 |
CN110688325B (zh) * | 2019-09-05 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 一种固态硬盘的垃圾回收方法、装置、设备及存储介质 |
TWI724550B (zh) | 2019-09-19 | 2021-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及非揮發式記憶體控制方法 |
CN111930301A (zh) * | 2020-06-29 | 2020-11-13 | 深圳佰维存储科技股份有限公司 | 垃圾回收优化方法、装置、存储介质及电子设备 |
US11550724B2 (en) * | 2020-08-14 | 2023-01-10 | Samsung Electronics Co., Ltd. | Method and system for logical to physical (L2P) mapping for data-storage device comprising nonvolatile memory |
US11360888B1 (en) * | 2021-02-16 | 2022-06-14 | Micron Technology, Inc. | Host system notification based on entry miss |
US11494299B2 (en) | 2021-02-18 | 2022-11-08 | Silicon Motion, Inc. | Garbage collection operation management with early garbage collection starting point |
CN113096713B (zh) * | 2021-04-12 | 2024-05-07 | 合肥兆芯电子有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
CN115858407B (zh) * | 2023-02-16 | 2023-05-16 | 浪潮电子信息产业股份有限公司 | 一种数据存储方法、装置、设备、可读存储介质及服务器 |
CN116610596B (zh) * | 2023-07-19 | 2023-10-03 | 合肥康芯威存储技术有限公司 | 一种存储器件及其数据处理方法 |
CN117891415B (zh) * | 2024-03-18 | 2024-05-24 | 深圳星火半导体科技有限公司 | 一种存储装置的p2l数据管理方法及装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8161226B2 (en) * | 2005-12-27 | 2012-04-17 | Intel Corporation | Methods and apparatus to share a thread to reclaim memory space in a non-volatile memory file system |
US8725931B1 (en) * | 2010-03-26 | 2014-05-13 | Western Digital Technologies, Inc. | System and method for managing the execution of memory commands in a solid-state memory |
US8762627B2 (en) * | 2011-12-21 | 2014-06-24 | Sandisk Technologies Inc. | Memory logical defragmentation during garbage collection |
US9740439B2 (en) * | 2011-12-23 | 2017-08-22 | International Business Machines Corporation | Solid-state storage management |
US8892815B2 (en) * | 2012-09-13 | 2014-11-18 | Sandisk Technologies Inc. | Optimized fragmented block compaction with a bitmap |
US9268682B2 (en) * | 2012-10-05 | 2016-02-23 | Skyera, Llc | Methods, devices and systems for physical-to-logical mapping in solid state drives |
US9852066B2 (en) * | 2013-12-20 | 2017-12-26 | Sandisk Technologies Llc | Systems and methods of address-aware garbage collection |
US9632880B2 (en) * | 2013-12-26 | 2017-04-25 | Silicon Motion, Inc. | Data storage device and flash memory control method |
KR20170044781A (ko) * | 2015-10-15 | 2017-04-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR20170053278A (ko) * | 2015-11-06 | 2017-05-16 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
TWI609323B (zh) * | 2016-01-29 | 2017-12-21 | 捷鼎國際股份有限公司 | 資料儲存方法及其系統 |
-
2018
- 2018-01-18 TW TW107101841A patent/TWI670594B/zh active
- 2018-07-03 US US16/026,917 patent/US10657047B2/en active Active
- 2018-07-03 CN CN201810715599.5A patent/CN110058796B/zh active Active
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113467697A (zh) * | 2020-03-30 | 2021-10-01 | 瑞昱半导体股份有限公司 | 存储器控制器与数据处理方法 |
TWI805937B (zh) * | 2020-03-30 | 2023-06-21 | 瑞昱半導體股份有限公司 | 記憶體控制器與資料處理方法 |
TWI784424B (zh) * | 2020-09-03 | 2022-11-21 | 日商鎧俠股份有限公司 | 非揮發性記憶體、記憶體系統及非揮發性記憶體之控制方法 |
TWI822407B (zh) * | 2020-09-03 | 2023-11-11 | 日商鎧俠股份有限公司 | 非揮發性記憶體之控制方法 |
US11847050B2 (en) | 2020-09-03 | 2023-12-19 | Kioxia Corporation | Nonvolatile memory, memory system, and control method of nonvolatile memory |
TWI785876B (zh) * | 2021-10-28 | 2022-12-01 | 大陸商合肥兆芯電子有限公司 | 映射資訊記錄方法、記憶體控制電路單元與記憶體儲存裝置 |
US11748026B2 (en) | 2021-10-28 | 2023-09-05 | Hefei Core Storage Electronic Limited | Mapping information recording method, memory control circuit unit, and memory storage device |
Also Published As
Publication number | Publication date |
---|---|
US10657047B2 (en) | 2020-05-19 |
CN110058796A (zh) | 2019-07-26 |
CN110058796B (zh) | 2022-06-24 |
TWI670594B (zh) | 2019-09-01 |
US20190220396A1 (en) | 2019-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI670594B (zh) | 資料儲存裝置 | |
TWI653533B (zh) | 資料儲存裝置以及其操作方法 | |
CN106874217B (zh) | 存储器系统及控制方法 | |
CN106874211B (zh) | 存储器系统及非易失性存储器的控制方法 | |
CN109240938B (zh) | 存储系统以及控制非易失性存储器的控制方法 | |
TWI639917B (zh) | 資料儲存裝置及映射表重建方法 | |
EP2530612B1 (en) | Mount-time unmapping of unused logical addresses in non-volatile memory systems | |
US10481837B2 (en) | Data storage device and method for operating data storage device with efficient trimming operations | |
JP5907255B2 (ja) | Lsb及びmsbページにおける選択的データ記憶 | |
TWI692690B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
US20160062885A1 (en) | Garbage collection method for nonvolatile memory device | |
TWI676103B (zh) | 記憶系統 | |
US11762591B2 (en) | Memory system and method of controlling nonvolatile memory by controlling the writing of data to and reading of data from a plurality of blocks in the nonvolatile memory | |
US11409467B2 (en) | Memory system and method of controlling nonvolatile memory and for reducing a buffer size | |
JP2010287049A (ja) | メモリシステムおよびメモリシステムの管理方法 | |
TW201917578A (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
US9552300B2 (en) | Cache system using solid state drive | |
JP4242245B2 (ja) | フラッシュrom制御装置 | |
US8972650B2 (en) | Methods and systems for performing efficient page reads in a non-volatile memory | |
JP2012068765A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
KR20150139383A (ko) | 반도체 장치 | |
TWI644207B (zh) | Method for garbage collection of data storage device | |
JP5967308B2 (ja) | 情報処理装置、制御回路、制御プログラム、及び制御方法 | |
CN109840219B (zh) | 大容量固态存储设备的地址转换系统与方法 | |
JP2020170477A (ja) | 記憶装置、その制御方法、及びプログラム |