CN110058796A - 数据储存装置 - Google Patents

数据储存装置 Download PDF

Info

Publication number
CN110058796A
CN110058796A CN201810715599.5A CN201810715599A CN110058796A CN 110058796 A CN110058796 A CN 110058796A CN 201810715599 A CN201810715599 A CN 201810715599A CN 110058796 A CN110058796 A CN 110058796A
Authority
CN
China
Prior art keywords
item
block
data
mapping table
microcontroller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810715599.5A
Other languages
English (en)
Other versions
CN110058796B (zh
Inventor
林圣勋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN110058796A publication Critical patent/CN110058796A/zh
Application granted granted Critical
Publication of CN110058796B publication Critical patent/CN110058796B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, 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)方法。
背景技术
数据储存装置所采用的非挥发性存储器有多种形式─例如,快闪存储器(flashmemory)、磁阻式随机存取存储器(Magnetoresistive RAM)、铁电随机存取存储器(Ferroelectric RAM)、电阻式随机存取存储器(Resistive RAM)、自旋转移力矩随机存取存储器(Spin Transfer Torque-RAM,STT-RAM)…等,用于长时间数据保存。
在非挥发性存储器上储存数据时,往往藉由垃圾回收程序来回收不具有有效数据的区块,使该区块经抺写之后可以重新用来储存数据。随着时间的演进,非挥发性存储器的区块的物理结构愈来愈复杂,数据的储存能力也愈来愈巨大,因此,如何在不拖累系统资源的前提下,如何有效率地执行垃圾回收程序成为一项重要课题。
发明内容
本发明提供一种数据储存装置,包括:一快闪存储器,包括多个物理区块;以及一微控制器,自该多个物理区块中选择一来源区块以及一目的区块,并依据相应于该来源区块的一检查表进行一垃圾回收处理以将该来源区块中之一或多个有效物理地址所储存的数据复制至该目的区块。
本发明还提供一种数据储存装置,包括:一快闪存储器,包括多个物理区块;以及一微控制器,自该多个物理区块中选择一来源区块以及一目的区块,并将该来源区块划分为多个虚拟区块,其中该微控制器是选择该多个虚拟区块之其中一者,并依据所选择的该虚拟区块相应的一检查表以进行一垃圾回收处理,藉以将所选择的该虚拟区块中之一或多个有效物理地址所储存的数据复制至该目的区块。
本发明还提供一种数据储存装置,包括:一快闪存储器,包括多个物理区块;以及一微控制器,自该多个物理区块中选择一来源区块以及一目的区块,并将该来源区块划分为多个虚拟区块,其中该微控制器是选择该多个虚拟区块之其中一者,并取得所选择的该虚拟区块的一虚拟有效数据总数,其中当该微控制器判断该虚拟有效数据总数等于所选择的该虚拟区块所能储存的数据数量的一最大值,该微控制器是进行一垃圾回收处理以将所选择的该虚拟区块中的多个物理地址所储存的数据依序复制至该目的区块。
附图说明
图1是显示一快闪存储器的物理储存空间规划的示意图。
图2是显示垃圾回收的概念的示意图。
图3是显示依据本发明一实施例中的数据储存装置的功能方块图。
图4是显示依据本发明一实施例中逻辑至物理分组映射表、物理至逻辑地址映射表、及检查表的关系的示意图。
图5A-5B是显示依据本发明一实施例中的部份垃圾回收方法的流程图;
图6A-6B是显示依据本发明一实施例中用于虚拟区块的部份垃圾回收方法的流程图;
图7是显示依据本发明一实施例中的部份垃圾回收方法的流程图。
符号说明
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~步骤。
具体实施方式
以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求书来界定。
非挥发性存储器可以是快闪存储器(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 BlockAddress,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为储存媒体,常用来实现记忆卡(MemoryCard)、通用串行总线闪存装置(USB Flash Device)、固态硬碟(SSD)…等产品。有一种应用是采多芯片封装、将快闪存储器100与其控制器包装在一起─称为嵌入式快闪存储器模组(如eMMC)。
快闪存储器100的数据更新并非对同样储存空间作复写,而是将更新数据储存在闲置空间。至于原储存空间的储存内容则转为无效。频繁的写入操作容易致使储存空间充斥无效的储存内容。对于充斥无效物理页的物理区块,快闪存储器100具有垃圾回收(Garbage Collection)设计。
图2是显示垃圾回收的概念的示意图。斜线标示无效数据。来源区块(SourceBlocks)的有效数据将被复制至目的区块(Destination Block)。当复制完成后,可直接对来源区块执行抹除(Erase)动作并将其定义(或变更)为闲置区块(Spare Block);或者,将此来源区块定义为闲置区块,当闲置区块被选取以储存数据时,再对此闲置区块执行抹除动作。为了有效率地执行垃圾回收程序,本发明揭露以分段方式执行垃圾回收程序,并于分段之间执行来自于主机的指令,避免系统资源被垃圾回收程序所独占而造成系统效能低落。
图3是显示依据本发明一实施例中的数据储存装置300的功能方块图。数据储存装置300包括一快闪存储器100以及一控制单元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.一种数据储存装置,包括:
一快闪存储器,包括多个物理区块;以及
一微控制器,自该多个物理区块中选择一来源区块以及一目的区块,并依据相应于该来源区块的一检查表进行一垃圾回收处理以将该来源区块中之一或多个有效物理地址所储存的数据复制至该目的区块。
2.如权利要求1所述的数据储存装置,其特征在于,该检查表是记录该来源区块所相应的一物理至逻辑地址映射表中的各物理地址是否已与相应之一或多个逻辑至物理分组映射表比对映射关系。
3.如权利要求1所述的数据储存装置,其特征在于,该微控制器系选择该来源区块的一物理至逻辑地址映射表中的一第一项目,并将该第一项目所记录的一特定逻辑地址相应的一逻辑至物理分组映射表读取至一随机存取存储器,其中该第一项目为一非虚置项目。
4.如权利要求3所述的数据储存装置,其特征在于,该微控制器检查该物理至逻辑地址映射表中的多个项目以取得相应于该逻辑至物理分组映射表的至少一第二项目,其中该至少一第二项目包括该第一项目。
5.如权利要求4所述的数据储存装置,其特征在于,该微控制器分别选取在该物理至逻辑映射表中对应至该逻辑至物理分组映射表的各第二项目,并判断所选取的该第二项目是否有效。
6.如权利要求5所述的数据储存装置,其特下在于:
当所选取的该第二项目有效,该微控制器是在该检查表标记已检查的该第二项目相应的一检查位元;以及
当所选取的该第二项目无效,该微控制器是无效化已检查的该第二项目所记录的逻辑地址,并在该检查表标记已检查的该第二项目相应的一检查位元。
7.如权利要求6所述的数据储存装置,其特征在于,当在该物理至逻辑映射表中的各第二项目均已检查过,依序复制在该物理至逻辑映射表中于该检查表中已标记且有效的该至少一第二项目的数据至该目的区块,并将在该物理至逻辑映射表中已复制数据的该至少一第二项目所记录的逻辑地址无效化。
8.如权利要求7所述的数据储存装置,其特征在于,该微控制器是以先进先出的方式将所读取的该至少一第二项目的数据写入该目的区块,并完成该垃圾回收处理。
9.如权利要求7所述的数据储存装置,其特征在于,该微控制器是等待所读取的该至少一第二项目的数据累积至一预定数量,再将累积的数据写入该目的区块并完成该垃圾回收处理。
10.一种数据储存装置,包括:
一快闪存储器,包括多个物理区块;以及
一微控制器,自该多个物理区块中选择一来源区块以及一目的区块,并将该来源区块划分为多个虚拟区块;
其中该微控制器系选择该多个虚拟区块之其中一者,并依据所选择的该虚拟区块相应的一检查表以进行一垃圾回收处理,藉以将所选择的该虚拟区块中之一或多个有效物理地址所储存的数据复制至该目的区块。
11.如权利要求10所述的数据储存装置,其特征在于,该检查表记录该来源区块中所选择的该虚拟区块所相应的一虚拟物理至逻辑地址映射表中的各物理地址是否已与相应之一或多个逻辑至物理分组映射表比对映射关系。
12.如权利要求11所述的数据储存装置,其特征在于,该微控制器选择该虚拟区块的该虚拟物理至逻辑地址映射表中的一第一项目,并将该第一项目所对应的一特定逻辑地址相应的一逻辑至物理分组映射表读取至一随机存取存储器,其中该第一项目为一非虚置项目。
13.如权利要求12所述的数据储存装置,其特征在于,该微控制器是检查该虚拟物理至逻辑地址映射表中的多个项目以取得相应于该逻辑至物理分组映射表的至少一第二项目,其中该至少一第二项目包括该第一项目。
14.如权利要求13所述的数据储存装置,其特征在于,该微控制器分别选取在该虚拟物理至逻辑映射表中对应至该逻辑至物理分组映射表的各第二项目,并判断所选取的该第二项目是否有效。
15.如权利要求14所述的数据储存装置,其特征在于:
当所选取的该第二项目有效,该微控制器是在该检查表标记已检查的该第二项目相应的一检查位元;以及
当所选取的该第二项目无效,该微控制器无效化已检查的该第二项目所记录的逻辑地址,并在该检查表标记已检查的该第二项目相应的一检查位元。
16.如权利要求15所述的数据储存装置,其特征在于,当在该虚拟物理至逻辑映射表中的各第二项目均已检查过,依序复制在该虚拟物理至逻辑映射表中于该检查表中已标记且有效的该至少一第二项目的数据至该目的区块,并将在该虚拟物理至逻辑映射表中已复制数据的该至少一第二项目所记录的逻辑地址无效化。
17.如权利要求16所述的数据储存装置,其特征在于,该微控制器以先进先出的方式将所读取的该至少一第二项目的数据写入该目的区块,并完成该垃圾回收处理。
18.如权利要求16所述的数据储存装置,其特征在于,该微控制器是等待所读取的该至少一第二项目的数据累积至一预定数量,再将累积的数据写入该目的区块并完成该垃圾回收处理。
19.一种数据储存装置,包括:
一快闪存储器,包括多个物理区块;以及
一微控制器,自该多个物理区块中选择一来源区块以及一目的区块,并将该来源区块划分为多个虚拟区块;
其中该微控制器选择该多个虚拟区块之其中一者,并取得所选择的该虚拟区块的一虚拟有效数据总数;
其中当该微控制器判断该虚拟有效数据总数等于所选择的该虚拟区块所能储存的数据数量的一最大值,该微控制器是进行一垃圾回收处理以将所选择的该虚拟区块中的多个物理地址所储存的数据依序复制至该目的区块。
20.如权利要求19所述的数据储存装置,其特征在于,当该微控制器判断该虚拟有效数据总数等于零,该微控制器结束该垃圾回收处理。
CN201810715599.5A 2018-01-18 2018-07-03 数据储存装置 Active CN110058796B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW107101841A TWI670594B (zh) 2018-01-18 2018-01-18 資料儲存裝置
TW107101841 2018-01-18

Publications (2)

Publication Number Publication Date
CN110058796A true CN110058796A (zh) 2019-07-26
CN110058796B CN110058796B (zh) 2022-06-24

Family

ID=67213985

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810715599.5A Active CN110058796B (zh) 2018-01-18 2018-07-03 数据储存装置

Country Status (3)

Country Link
US (1) US10657047B2 (zh)
CN (1) CN110058796B (zh)
TW (1) TWI670594B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110597741A (zh) * 2019-08-23 2019-12-20 苏州浪潮智能科技有限公司 一种l2p表的读写、更新方法及l2p表
CN110688325A (zh) * 2019-09-05 2020-01-14 苏州浪潮智能科技有限公司 一种固态硬盘的垃圾回收方法、装置、设备及存储介质
CN111930301A (zh) * 2020-06-29 2020-11-13 深圳佰维存储科技股份有限公司 垃圾回收优化方法、装置、存储介质及电子设备
CN113885808A (zh) * 2021-10-28 2022-01-04 合肥兆芯电子有限公司 映射信息记录方法以及存储器控制电路单元与存储装置
CN115858407A (zh) * 2023-02-16 2023-03-28 浪潮电子信息产业股份有限公司 一种数据存储方法、装置、设备、可读存储介质及服务器
CN116610596A (zh) * 2023-07-19 2023-08-18 合肥康芯威存储技术有限公司 一种存储器件及其数据处理方法

Families Citing this family (14)

* Cited by examiner, † Cited by third party
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 慧榮科技股份有限公司 映射表更新方法
CN110895513B (zh) * 2018-09-12 2024-09-17 华为技术有限公司 一种系统垃圾回收方法和固态硬盘中的垃圾回收方法
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
TWI724550B (zh) * 2019-09-19 2021-04-11 慧榮科技股份有限公司 資料儲存裝置以及非揮發式記憶體控制方法
CN113467697B (zh) * 2020-03-30 2024-08-09 瑞昱半导体股份有限公司 存储器控制器与数据处理方法
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
JP2022042762A (ja) 2020-09-03 2022-03-15 キオクシア株式会社 不揮発性メモリ、メモリシステム、および、不揮発性メモリの制御方法
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 合肥兆芯电子有限公司 存储器管理方法、存储器控制电路单元与存储器存储装置
CN117891415B (zh) * 2024-03-18 2024-05-24 深圳星火半导体科技有限公司 一种存储装置的p2l数据管理方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130166822A1 (en) * 2011-12-23 2013-06-27 International Business Machines Corporation Solid-state storage management
US20140075095A1 (en) * 2012-09-13 2014-03-13 Sandisk Technologies Inc. Optimized fragmented block compaction with a bitmap
US20140101369A1 (en) * 2012-10-05 2014-04-10 Western Digital Technologies, Inc. Methods, devices and systems for physical-to-logical mapping in solid state drives
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
CN104750616A (zh) * 2013-12-26 2015-07-01 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
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
US8762627B2 (en) * 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
US9852066B2 (en) * 2013-12-20 2017-12-26 Sandisk Technologies Llc Systems and methods of address-aware garbage collection
KR20170044781A (ko) * 2015-10-15 2017-04-26 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20170053278A (ko) * 2015-11-06 2017-05-16 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
TWI609323B (zh) * 2016-01-29 2017-12-21 捷鼎國際股份有限公司 資料儲存方法及其系統

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US20130166822A1 (en) * 2011-12-23 2013-06-27 International Business Machines Corporation Solid-state storage management
US20140075095A1 (en) * 2012-09-13 2014-03-13 Sandisk Technologies Inc. Optimized fragmented block compaction with a bitmap
US20140101369A1 (en) * 2012-10-05 2014-04-10 Western Digital Technologies, Inc. Methods, devices and systems for physical-to-logical mapping in solid state drives
CN104750616A (zh) * 2013-12-26 2015-07-01 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110597741A (zh) * 2019-08-23 2019-12-20 苏州浪潮智能科技有限公司 一种l2p表的读写、更新方法及l2p表
CN110597741B (zh) * 2019-08-23 2021-09-10 苏州浪潮智能科技有限公司 一种l2p表的读写、更新方法及l2p表
CN110688325A (zh) * 2019-09-05 2020-01-14 苏州浪潮智能科技有限公司 一种固态硬盘的垃圾回收方法、装置、设备及存储介质
CN110688325B (zh) * 2019-09-05 2021-12-03 苏州浪潮智能科技有限公司 一种固态硬盘的垃圾回收方法、装置、设备及存储介质
CN111930301A (zh) * 2020-06-29 2020-11-13 深圳佰维存储科技股份有限公司 垃圾回收优化方法、装置、存储介质及电子设备
CN113885808A (zh) * 2021-10-28 2022-01-04 合肥兆芯电子有限公司 映射信息记录方法以及存储器控制电路单元与存储装置
CN113885808B (zh) * 2021-10-28 2024-03-15 合肥兆芯电子有限公司 映射信息记录方法以及存储器控制电路单元与存储装置
CN115858407A (zh) * 2023-02-16 2023-03-28 浪潮电子信息产业股份有限公司 一种数据存储方法、装置、设备、可读存储介质及服务器
CN115858407B (zh) * 2023-02-16 2023-05-16 浪潮电子信息产业股份有限公司 一种数据存储方法、装置、设备、可读存储介质及服务器
CN116610596A (zh) * 2023-07-19 2023-08-18 合肥康芯威存储技术有限公司 一种存储器件及其数据处理方法
CN116610596B (zh) * 2023-07-19 2023-10-03 合肥康芯威存储技术有限公司 一种存储器件及其数据处理方法

Also Published As

Publication number Publication date
US10657047B2 (en) 2020-05-19
US20190220396A1 (en) 2019-07-18
TWI670594B (zh) 2019-09-01
CN110058796B (zh) 2022-06-24
TW201933101A (zh) 2019-08-16

Similar Documents

Publication Publication Date Title
CN110058796A (zh) 数据储存装置
TWI653533B (zh) 資料儲存裝置以及其操作方法
US10838859B2 (en) Recency based victim block selection for garbage collection in a solid state device (SSD)
CN108664418A (zh) 数据储存装置以及其操作方法
US9965198B2 (en) Internally preconditioning solid state drives for various workloads
CN103080911B (zh) 存储器块的先占式垃圾回收
CN108733510A (zh) 数据储存装置及映射表重建方法
US8452940B2 (en) Optimized memory management for random and sequential data writing
CN109977034B (zh) 数据储存装置以及非挥发式存储器操作方法
CN106776376B (zh) 缓冲存储器管理方法、存储器控制电路单元及存储装置
CN108280032B (zh) 数据储存装置以及快闪存储器控制方法
TW201413451A (zh) 非揮發性記憶體的資料收集方法
CN107632942A (zh) 一种固态硬盘实现lba级别trim命令的方法
US20090172269A1 (en) Nonvolatile memory device and associated data merge method
CN109669889B (zh) 一种轻量型Nor Flash闪存控制方法和装置
CN106598504B (zh) 数据存储方法及装置
CN109521944A (zh) 数据储存装置以及数据储存方法
CN108733577A (zh) 存储器管理方法、存储器控制电路单元及存储器存储装置
CN106257432A (zh) 数据储存设备及其操作方法
JP4488048B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
CN110245092A (zh) 存储器系统、其操作方法以及电子装置
TWI724550B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
CN106201932B (zh) 数据写入方法、存储器控制电路单元与存储器存储装置
CN109558271A (zh) 数据备份方法、数据恢复方法以及存储控制器
CN111966302B (zh) 一种基于逻辑物理映射表的SPI Nand数据写入方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant