CN110347332A - 用于存储器系统的垃圾收集策略及执行该垃圾收集的方法 - Google Patents

用于存储器系统的垃圾收集策略及执行该垃圾收集的方法 Download PDF

Info

Publication number
CN110347332A
CN110347332A CN201910270753.7A CN201910270753A CN110347332A CN 110347332 A CN110347332 A CN 110347332A CN 201910270753 A CN201910270753 A CN 201910270753A CN 110347332 A CN110347332 A CN 110347332A
Authority
CN
China
Prior art keywords
slc
mlc
data
page
spo
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
CN201910270753.7A
Other languages
English (en)
Other versions
CN110347332B (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.)
SK Hynix Inc
Original Assignee
Hynix Semiconductor 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 Hynix Semiconductor Inc filed Critical Hynix Semiconductor Inc
Publication of CN110347332A publication Critical patent/CN110347332A/zh
Application granted granted Critical
Publication of CN110347332B publication Critical patent/CN110347332B/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • 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
    • 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/7207Details relating to flash memory management management of metadata or control data
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明提供了在多次突然断电(SPO)的情况下运行改进的垃圾收集(GC)策略的存储器系统及其组件。这种存储器系统包括:存储器装置,包括单层单元(SLC)存储块和多层单元(MLC)存储块,SLC存储块被分组为SLC超级块(SLC SB),MLC存储块被分组为MLC超级块(MLC SB);以及存储器控制器,运行闪存转换层(FTL)以执行垃圾收集(GC)操作。存储器控制器在突然断电(SPO)之后,通过将在SPO之前开放的、具有用户数据的每个MLC SB确定为不安全超级块(UB),将来自UB中的选择UB中的页面的数据复制到SLC SB中的页面,并且将来自SLC SB中的页面的数据复制到未被确定为UB的选择MLC SB中的页面来执行GC操作。

Description

用于存储器系统的垃圾收集策略及执行该垃圾收集的方法
相关申请的交叉引用
本申请要求于2018年4月4日提交的申请号为62/652,587的美国临时申请的权益,该美国临时申请的全部内容通过引用并入本文。
技术领域
本公开的实施例涉及一种用于存储器系统,特别是基于闪存的存储器系统的垃圾收集策略及执行该垃圾收集的方法。
背景技术
计算机环境范例已经转变成可以被随时随地使用的普适计算系统。因此,诸如移动电话、数码相机以及笔记本计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有存储器装置的存储器系统,即数据存储装置。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
由于使用存储器装置的数据存储装置没有移动部件,因此该数据存储装置提供优良的稳定性、耐用性、高信息访问速度以及低功耗。具有这些优点的数据存储装置的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡和固态硬盘(SSD)。
SSD可以包括闪速存储器组件和控制器,该控制器包括将闪速存储器组件桥接至SSD输入/输出(I/O)接口的电子器件。SSD控制器可以包括运行诸如固件的功能组件的嵌入式处理器。SSD功能组件通常是特定于装置的,并且在大多数情况下可被更新。
两种主要类型的闪速存储器以NAND逻辑门和NOR逻辑门命名。各个闪速存储器单元表现出与其相应栅极的内部特性类似的内部特性。NAND型闪速存储器可以通常远小于整个存储器空间的块(或页面)而被写入和读取。NOR型闪速存储器允许单个机器字(字节)写入到擦除位置或被独立读取。NAND型闪速存储器主要在存储卡、USB闪存驱动器、固态硬盘(SSD)和类似产品中操作,以用于一般的数据存储和传输。
例如NAND型闪速存储器系统的基于闪存的存储装置包括闪存转换层(FTL),FTL为固件,FTL的一个作用是执行存储器装置的逻辑地址和物理地址之间的地址转换,即逻辑至物理(L2P)映射,也称为逻辑块寻址(LBA)。FTL还执行垃圾收集(GC),GC是确保有足够数量的空闲页面以用于写入操作的进程。GC进程通过例如选择超级块(SB)、将有效页面的数据移动到SB并且从SB擦除物理块来在存储器装置中获得可用的空闲区域。为了满足服务质量(QoS)要求,通常在FTL中实施GC触发和节流算法。该算法的主旨是将GC工作分成小部分,以找到主机和GC写入操作之间的平衡。
有时,存储装置会经受电力供应被突然切断或中断的突然断电(SPO)。因此,存储装置通常具有突然断电恢复(SPOR)方法以保持数据一致性和完整性。在NAND型闪速存储装置的情况下,对于SPOR方法有几个考虑因素。一个这样的考虑因素涉及GC。
在此背景下,提出了本发明的实施例。
发明内容
本发明的各方面包括存储器系统,特别是基于闪存的NAND型存储器系统。根据一方面,一种存储器系统包括:存储器装置,包括单层单元(SLC)存储块和多层单元(MLC)存储块,每个存储块包括页面,SLC存储块中的至少一些SLC存储块被分组为SLC超级块(SLCSB),并且MLC存储块中的至少一些MLC存储块被分组为MLC超级块(MLC SB);以及存储器控制器,被配置成运行闪存转换层(FTL)以执行包括垃圾收集(GC)操作的操作。存储器控制器在突然断电(SPO)之后,通过将在SPO之前开放的、具有用户数据的每个MLC SB确定为不安全超级块(UB),将来自UB中的选择UB中的页面的数据复制到SLC SB中的页面,并且将来自SLC SB中的页面的数据复制到未被确定为UB的选择MLC SB中的页面来执行GC操作。
本发明的另一方面包括调用GC操作的方法,该方法可以由存储器控制器及其组件来执行。在这方面,本发明的另一方面提供一种对存储器系统执行垃圾收集(GC)操作的方法,该存储器系统包括存储器装置,该存储器装置包括单层单元(SLC)存储块和多层单元(MLC)存储块,每个存储块包括页面,SLC存储块中的至少一些SLC存储块被分组为SLC超级块(SLC SB),并且MLC存储块中的至少一些MLC存储块被分组为MLC SB。该方法包括:将在多次SPO中的第一次SPO之前开放的、具有用户数据的每个MLC SB确定为不安全SB(UB);在第一次SPO和后续SPO之后的多个重建时间间隔(RTI)中的每一个期间,分别将来自UB中的选择UB中的页面的数据复制到SLC SB中的至少一些SLC SB中的页面,直到选择UB只包含无效数据,每个RTI是从相应SPO之后的通电开始的设定时间;擦除选择UB中的无效数据;并且将来自从选择UB复制了数据的SLC SB中的页面的数据复制到未被确定为UB的选择MLC SB中的页面,直到选择MLC SB已满。
从以下描述中,本发明的其它方面将变得显而易见。
附图说明
图1是示出根据本发明的实施例的存储器系统的框图。
图2是示出根据本发明的实施例的存储器系统的框图。
图3是示出根据本发明的实施例的存储器系统的存储器装置的存储块的电路图。
图4是示出根据本发明的实施例的超级块(SB)结构的示图。
图5是示出根据本发明的实施例的第一次突然断电(SPO)之前多层单元超级块(MLC SB)的状态的示图。
图6是示出根据本发明的实施例的通电之后重建时间间隔(RTI)结束时图5的MLCSB的状态以及第一单层单元超级块(SLC SB)的状态的示图,其中MLC SB被标记为不安全块(UB),UB的某些页面被复制到第一SLC SB。
图7是示出根据本发明的实施例的第二次SPO之前图6的UB和SLC SB的状态的示图。
图8是示出根据本发明的实施例的第五次SPO之后RTI结束时包括UB和第一SLC SB以及第二SLC SB和第三SLC SB的超级块的状态的示图。
图9是示出根据本发明的实施例的第六次SPO之前SB的状态的示图。
图10是示出根据本发明的实施例的第八次SPO之前SB的状态的示图。
图11是示出根据本发明的实施例的第十次SPO之后RTI结束时SB的状态的示图。
图12是示出根据本发明的实施例的第十二次SPO之后RTI结束时SB的状态的示图。
图13是示出根据本发明的实施例的用于执行GC操作策略的进程中的步骤的流程图。
具体实施方式
下面参照附图更详细地描述各个实施例。然而,本发明可以不同的形式实施并且因此不应被解释为限于本文阐述的实施例。而是,提供这些实施例使得本公开彻底且完整,并且向本领域技术人员充分传达本发明的范围。此外,本文对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任意这种短语的不同参考不一定针对相同的实施例。在整个公开中,相同的附图标记在本发明的附图和实施例中表示相同的部件。
本发明可以包括如下列的多种方式来实施:进程;设备;系统;物质的组成;在计算机可读存储介质上实现的计算机程序产品;和/或处理器,诸如适于执行存储在联接至处理器的存储器上和/或由联接至处理器的存储器提供的指令的处理器。在本说明书中,这些实施例或本发明可以采用的任意其它形式可以被称为技术方案。通常,可以在本发明的范围内改变所公开的进程的步骤的顺序。除非另有说明,否则被描述为适于执行任务的、诸如处理器或存储器的组件可以被实施为临时配置为在给定时间执行该任务的通用组件或者被制造为执行该任务的专用组件。如本文所使用的,术语“处理器”等是指适于处理诸如计算机程序指令的数据的一个或多个装置、电路和/或处理内核。
以下与示出本发明的方面的附图一起提供本发明的实施例的详细描述。结合这些实施例来描述本发明,但是本发明不限于任意实施例。本发明的范围仅由权利要求限定。本发明涵盖在权利要求范围内的许多替换方案、修改方案和等同方案。在以下描述中阐述了许多具体细节,以便提供对本发明的透彻理解。提供这些细节是为了示例的目的;本发明可以在没有一些或全部这些具体细节的情况下根据权利要求来实践。为清楚起见,没有详细描述与本发明相关的技术领域中已知的技术材料,以免不必要地模糊本发明。
图1是示意性地示出根据本发明的实施例的存储器系统的框图。
参照图1,存储器系统10可以包括存储器控制器100和半导体存储器装置200,半导体存储器装置200可代表不止一个这种装置。半导体存储器装置200优选地是闪速存储器装置,特别是NAND型闪速存储器装置。
存储器控制器100可以控制半导体存储器装置200的全部操作。
半导体存储器装置200可以在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可以通过输入/输出(I/O)线接收命令CMD、地址ADDR和数据DATA。半导体存储器装置200可以通过电力线接收电力PWR,并且通过控制线接收控制信号CTRL。控制信号CTRL可以包括命令锁存使能(CLE)信号、地址锁存使能(ALE)信号、芯片使能(CE)信号、写入使能(WE)信号、读取使能(RE)信号等。
存储器控制器100和半导体存储器装置200可以被集成在诸如固态硬盘(SSD)的单个半导体装置中。SSD可以包括用于将数据存储在其中的存储装置。当半导体存储器系统10用于SSD中时,联接至存储器系统10的主机(未示出)的操作速度可显著提高。
存储器控制器100和半导体存储器装置200可以被集成在诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可以被如此集成以配置:个人计算机存储卡国际协会(PCMCIA)的PC卡、紧凑式闪存(CF)卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC)、尺寸减小的多媒体卡(RS-MMC)、微型版本的MMC(微型MMC)、安全数字(SD)卡、迷你安全数字(迷你SD)卡、微型安全数字(微型SD)卡、安全数字高容量(SDHC)和/或通用闪存(UFS)。
在另一实施例中,存储器系统10可以被提供作为诸如下列的电子装置中的各种组件中的一种:计算机、超移动PC(UMPC)、工作站、上网本计算机、个人数字助理(PDA)、便携式计算机、网络平板PC、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(PMP)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境中接收和传送信息的装置、射频识别(RFID)装置、以及家庭网络的各种电子装置中的一种、计算机网络的各种电子装置中的一种、远程信息处理网络的电子装置中的一种或计算系统的各种组件中的一种。
图2是示出根据本发明的实施例的存储器系统的详细框图。例如,图2的存储器系统可以描绘图1中所示的存储器系统10。
参照图2,存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器系统10可以响应于来自主机装置的请求而操作,特别地,存储待由主机装置访问的数据。
主机装置可以利用各种电子装置中的任意一种来实施。在一些实施例中,主机装置可以包括诸如下列的电子装置:台式计算机、工作站、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器和/或数字视频记录器和数字视频播放器。在一些实施例中,主机装置可以包括诸如下列的便携式电子装置:移动电话、智能电话、电子书、MP3播放器、便携式多媒体播放器(PMP)和/或便携式游戏机。
存储器装置200可以存储待由主机装置访问的数据。
存储器装置200可以利用诸如动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)的易失性存储器装置或者诸如下列的非易失性存储器装置来实施:只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)和/或电阻式RAM(RRAM)。
控制器100可以控制数据在存储器装置200中的存储。例如,控制器100可以响应于来自主机装置的请求来控制存储器装置200。控制器100可以将从存储器装置200读取的数据提供至主机装置,并且可以将从主机装置提供的数据存储至存储器装置200中。
控制器100可以包括通过总线160联接的存储装置110、控制组件120、错误校正码(ECC)组件130、主机接口(I/F)140和存储器接口(I/F)150,控制组件120可被实施为诸如中央处理单元(CPU)的处理器。
存储装置110可以用作存储器系统10和控制器100的工作存储器,并且存储用于驱动存储器系统10和控制器100的数据。当控制器100控制存储器装置200的操作时,存储装置110可以存储控制器100和存储器装置200用于诸如读取操作、写入操作、编程操作和擦除操作的操作的数据。
存储装置110可以利用诸如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)的易失性存储器来实施。如上所述,存储装置110可以将主机装置使用的数据存储在存储器装置200中以用于读取操作和写入操作。为了存储数据,存储装置110可以包括程序存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。
控制组件120可以控制存储器系统10的一般操作,并且响应于来自主机装置的写入请求或读取请求,控制对存储器装置200的写入操作或读取操作。控制组件120可以驱动被称为闪存转换层(FTL)135的固件,以控制存储器系统10的一般操作。例如,FTL 135可以执行诸如逻辑至物理(L2P)映射、损耗均衡、垃圾收集(GC)和/或坏块处理的操作。FTL 135可以作为固件而被实施在控制组件120或控制器100中。L2P映射被称为逻辑块寻址(LBA)。
在读取操作期间,ECC组件130可以检测并校正从存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC组件130可以不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
ECC组件130可以基于诸如下列的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、trubo码、trubo乘积码(TPC)、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)或分组编码调制(BCM)。ECC组件130可以包括适于错误校正操作的任意和所有电路、系统或装置。
主机接口140可以通过诸如下列的各种接口协议中的一种或多种与主机装置通信:通用串行总线(USB)、多媒体卡(MMC)、外围组件互连高速(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)。
存储器接口150可以提供控制器100和存储器装置200之间的接口,以允许控制器100响应于来自主机装置的请求来控制存储器装置200。存储器接口150可以在控制组件或CPU 120的控制下生成用于存储器装置200的控制信号并且处理数据。当存储器装置200是诸如NAND闪速存储器的闪速存储器时,存储器接口150可以在CPU 120的控制下生成用于存储器的控制信号并且处理数据。
存储器装置200可以包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、可以是页面缓冲器阵列形式的页面缓冲器(阵列)250、列解码器260和输入/输出电路270。存储器单元阵列210可以包括可存储数据的多个存储块211。存储块的子集可以被分组成各个超级块(SB)以用于某些操作。下面更详细地描述SB及其在本发明的实施例的背景下的使用。
电压生成电路230、行解码器240、页面缓冲器(阵列)250、列解码器260和输入/输出电路270可以形成存储器单元阵列210的外围电路。外围电路可以对存储器单元阵列210执行编程操作、读取操作或者擦除操作。控制电路220可以控制外围电路。
电压生成电路230可以生成各种电平的操作电压。例如,在擦除操作中,电压生成电路230可以生成诸如擦除电压和通过电压的各种电平的操作电压。
行解码器240可以与电压生成电路230和多个存储块211电通信。行解码器240可以响应于由控制电路220生成的行地址RADD在多个存储块211之中选择至少一个存储块,并且将从电压生成电路230供应的操作电压传送至选择的存储块。
页面缓冲器(阵列)250可以通过位线BL(图3中示出)与存储器单元阵列210电通信。页面缓冲器(阵列)250可以响应于由控制电路220生成的页面缓冲器控制信号,利用正电压对位线BL预充电、在编程操作中将数据传送至选择的存储块并且在读取操作中从选择的存储块接收数据、或临时存储传送的数据。
列解码器260可以将数据传送至页面缓冲器(阵列)250并且从页面缓冲器(阵列)250接收数据,并且还可以与输入/输出电路270交换数据。
输入/输出电路270可以通过输入/输出电路270,将从外部装置(例如,存储器控制器100)接收的命令和地址传送至控制电路220,将来自外部装置的数据传送至列解码器260,或将来自列解码器260的数据输出至外部装置。
控制电路220可以响应于命令和地址来控制外围电路。
图3是示出根据本发明的实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2中所示的存储器单元阵列210的存储块211中的任意一个。
参照图3,示例性存储块211可以包括联接至行解码器240的多个字线WL0至WLn-1、漏极选择线DSL和源极选择线SSL。这些线并联布置,并且多个字线在DSL和SSL之间。
示例性存储块211可以进一步包括分别联接至位线BL0至BLm-1的多个单元串221。每列的单元串可以包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。在所示的实施例中,每个单元串具有一个DST和一个SST。在单元串中,多个存储器单元或存储器单元晶体管MC0至MCn-1可以串联联接在选择晶体管DST和SST之间。存储器单元中的每一个可以形成为存储多个位数据信息的多层单元(MLC)。
每个单元串中的SST的源极可以联接至公共源极线CSL,并且每个DST的漏极可以联接至相应位线。单元串中的SST的栅极可以联接至SSL,并且单元串中的DST的栅极可以联接至DSL。横跨单元串的存储器单元的栅极可以联接至各个字线。也就是说,存储器单元MC0的栅极联接至相应字线WL0,存储器单元MC1的栅极联接至相应字线WL1,等等。联接至特定字线的一组存储器单元可以被称为物理页面。因此,存储块211中的物理页面的数量可以对应于字线的数量。
如前面提到的,页面缓冲器(阵列)250可以是包括联接至位线BL0至BLm-1的多个页面缓冲器251的页面缓冲器阵列的形式。页面缓冲器251可响应于页面缓冲器控制信号而操作。例如,在读取或验证操作期间,页面缓冲器251可以临时存储通过位线BL0至BLm-1接收的数据或者感测位线的电压或电流。
在一些实施例中,存储块211可以包括NAND型闪速存储器单元。然而,存储块211不限于这种单元类型,而是可以包括NOR型闪速存储器单元。存储器单元阵列210可以被实施为组合两种或更多种类型的存储器单元的混合闪速存储器,或者控制器嵌入在存储器芯片内的1-NAND闪速存储器。
如前面提到的,闪速存储装置有时经受突然断电(SPO),因此应该具有突然断电恢复(SPOR)方法以在这种情况下实施。在NAND型闪速存储器装置的情况下,对于SPOR方法有几个基本要求。(1)在SPOR时必须恢复SPO之前控制器100内的映射表的状态和一些FTL元数据。(2)禁止对SPO之前最后开放的超级块(SB)的写入操作;来自该SB的数据必须被复制到新的SB。(3)SPOR时间有限。FTL 135将在从通电开始的某个重建时间间隔(RTI)之后开始执行主机写入命令,例如,SATA企业的SSD RTI等于~10s。
为了满足第一要求,FTL 135周期性地将其元数据存储至NAND存储器装置200。由于不可能在每次改变之后存储元数据,因此在SPO之后加载的元数据版本可能不完全一致。对于关键元数据,例如映射表,FTL 135提供恢复在SPOR期间加载的这种元数据的方法。然而,对于非关键元数据,可以接受只加载其最后存储的版本,其中FTL 135会丢失一些信息。例如,在每设定数量(TH)的读取操作之后,FTL 135使读取计数器闪烁(flash)。如果在所有读取操作的计数器小于TH时发生SPO,则FTL 135会丢失存储在RAM中的SB的读取计数器的实际版本。这是SPOR方法的第二要求的原因之一。
为了满足第二要求,FTL 135调用对最后开放的SB的GC操作。然而,由于第三要求的时间限制(如下所述),并不总是能够及时地完成GC操作。因此,FTL 135允许执行主机写入命令,并且继续在后台复制来自SPO之前最后开放的SB的数据。然而,在没有足够的时间用于GC操作来完成后台工作时发生多次SPO的情况下,这种策略在连续SPO的情况下不会防止装置劣化(例如,存储器装置耗尽空闲SB)以及用户数据讹误(corruption)。最坏的情况是在每次执行主机写入操作之后发生SPO。
本发明的实施例提供一种在连续SPO的情况下,甚至在最坏的情况下,保持用户数据的一致性并防止装置劣化的GC操作策略。
在现代基于闪存的存储装置中,使用两种类型的物理块:单层单元(SLC)存储块和多层单元(MLC)存储块。SLC存储块具有存储器单元,每个存储器单元能够存储单个位。MLC存储块具有存储器单元,每个存储器单元能够存储多个(两个或更多个)位。具有每个存储三个位的单元的存储块有时被称为三层单元(TLC)存储块,并且具有每个存储四个位的单元的存储块有时被称为四层单元(QLC)存储块。本文中,MLC存储块包括TLC存储块和QLC存储块。同样地,MLC SB包括TLC SB和QLC SB。
用户数据通常存储在MLC物理块中。SLC块更可靠;因此,对于关键数据,例如其元数据、FW图像等,FTL 135使用SLC物理块。而且,SLC块可以用作用户数据的临时存储装置(例如,SLC高速缓存)。
在下面描述的GC操作策略的背景下,在第一次SPO之前开放的MLC SB被定义为不安全块(UB)。
对于GC策略,即使主机从SLC块读取数据,提供对在SPO之前尚未关闭的SLC块的继续写入的可能性是重要的。首先,SLC块的读取干扰阈值远高于MLC块的读取干扰阈值。另外,在SPOR时的GC策略具有有限数量的步骤(取决于UB中数据的大小,SLC高速缓存的大小等)的情况下,在最坏的情况下,FTL 135可以计算SLC块的读取节流级别。利用该读取节流级别,FTL 135可以确保在没有可能存储读取计数器时的最坏情况下使用的SLC块不会达到其读取干扰阈值。
根据本发明的实施例,GC操作策略基于SLC物理块作为来自UB的用户数据的临时存储装置使用。这有助于避免在多次SPO的情况下SB的缺乏或耗尽。新的用户数据也被写入至SLC块。使用合适的GC触发和节流算法以在存储器单元阵列210的SLC区域中为来自UB的数据和来自主机的新数据提供足够的空间。至少部分地基于特定存储器系统的规范和QoS要求来设置GC触发和节流算法或策略。
通常,本发明的GC策略包括两个步骤或阶段:(1)将来自UB的数据复制到SLC区域,例如SLC SB的块中的页面;以及(2)将来自SLC区域的数据复制到新的MLC SB。在任一阶段,如果从主机接收到新的数据,则该新的数据被写入至SLC区域。
在RTI期间,FTL 135首先加载并恢复关键元数据,但是该情况确保有时间用于UB的GC。因此,在多次SPO的情况下,来自UB的所有数据将在第一阶段被复制到SLC区域。在SPO之间,主机可以从UB和SLC区域读取数据,并且FTL 135在下一次SPO之后继续将数据写入至SLC块,甚至是在SPO之前尚未关闭的那些SLC块。
在第二阶段,FTL 135利用GC节流来管理SLC区域中用于新的主机数据的空闲空间。NAND存储器装置200上有两个数据副本;因此,FTL 135确保没有对开放的MLC块的主机读取。在这种情况下,即使在新的SPO之后,FTL 135也可以继续将数据写入至MLC块。考虑到FTL 135复制到MLC块的数据多于主机写入到SLC块的数据,步骤的总数量有限。
在包含两种类型的存储块:SLC块和MLC存储块的基于闪存的存储装置的背景下,用户数据存储在MLC块中,并且MLC物理页面是SLC物理页面的两倍大,超级块(SB)40可以具有如图4所示的结构。也就是说,在所示的实施例中,SB 40包括四(4)个物理块41a、41b、41c和41d,并且每个物理块具有十(10)个页面42a-42j。为清楚起见,仅标记物理块41a中的页面。类似地,在其它附图中所示的SB中,仅标记第一物理块中的页面。
通过示例的方式,当图5中所示的MLC SB 50几乎已经填满了有效用户数据时,发生第一次SPO。具体地,MLC SB 50的4个物理块51a、51b、51c和51d中的每一个中的页面52a-52i已经被写入有效用户数据。物理块51a-51d中的每一个中的最后页面52j尚未被写入。
为了更容易地显示已经写入有效用户数据的页面,在图4以及图5-图11中利用亮点示出这样的页面。
在通电之后,FTL 135将MLC SB 50标记为图6中示出的不安全块(UB)60。注意的是,UB 60的结构与MLC SB 50的结构相同。也就是说,UB 60具有4个物理块61a-61d,每个物理块具有10个页面62a-62j。
因为对UB 60的读取操作的准确数量未知,所以对UB 60的写入操作被禁止。FTL135调用GC操作,以将来自UB 60的数据复制到也在图6中示出的第一SLC SB 65。此处注意的是,SLC SB 65也具有4个物理块66a-66d,每个物理块具有10个页面67a-67j。
假设在RTI期间,FTL 135可以仅将来自每个UB物理块的一个物理页面复制到SLCSB 65。考虑到MLC页面和SLC页面之间的大小差异,需要两个SLC页面来复制来自一个MLC页面的数据。图6示出这种复制操作的结果。也就是说,图6示出了在RTI结束时UB 60和第一SLC SB 65的状态。UB 60的物理块61a-61d中的每一个中的第一页面62a是无效页面,并且SLC SB 65的物理块66a-66d中的每一个的第一页面67a和第二页面67b是被写入页面,而剩余页面67c-67j尚未被写入。UB 60的其它页面,即页面62b-62j保持为如参照图5所示的MLCSB 50的、它们各自对应页面52b-52j所描述的那样。
图6以及图7和图8中的无效页面利用单交叉影线示出。
可以如下定义GC触发和节流策略。如果FTL 135调用的GC操作每块写入四(4)个SLC物理页面,则主机每块写入一个SLC页面。GC触发和节流策略可以根据UB和可用的SLC块的数量以及QoS要求而被容易地调整。考虑到来自SB的块应该被并行地写入,GC写入4*4=16个SLC页面,而主机写入4个SLC页面。因此,在RTI期间,GC写入八(8)个SLC页面(参见图6)。因此,GC应该写入接下来的八(8)个SLC页面以用尽其配额。假设在GC完成其部分工作之后,主机写入四(4)个SLC页面并且发送对SLC块中最近写入的数据的若干读取请求。第二次SPO之前SB的状态如图7所示。
如图7所示,现在除了第一页面62a之外,还有UB 60的物理块61a-61d中的每一个中的第二页面62b是无效页面。而且,作为GC操作的结果,除了第一页面67a和第二页面67b之外,还有SLC SB 65的物理块66a-66d中的每一个中的第三页面67c和第四页面67d是被写入页面。新的主机数据在SLC SB 65的物理块66a-66d中的每一个的第五页面67e中。UB 60和SLC SB 65中的其它页面保持为参照图6所描述的那样。
为了便于识别,将图7和图8至图12中的具有新的主机数据的页面变暗。
在第二次SPO随后的通电之后,FTL 135继续将数据写入到在第二次SPO之前未关闭的SLC SB 65的页面。例如,主机和FTL 135可以执行与它们在第一次SPO和第二次SPO之间所做的动作序列相同的动作序列,这与稍后的相邻SPO之间的动作序列相同。因此,在第五次SPO之后的RTI结束时,来自UB 60的所有用户数据将被复制到图8所示的包括第一SLCSB 65以及第二SLC SB 80和第三SLC SB 85的SLC SB的块中的页面中。
因此,参照图8,写入数据的UB 60的块61a-61d的页面62a-62i现在无效。该数据现在已被复制到第一SLC SB 65、第二SLC SB 80和第三SLC 85的页面。第一SLC SB 65的所有页面现在包含数据,其中块66a-66d的页面67e和67j包含主机数据。对于第二SLC SB 80也是如此。也就是说,作为GC操作的结果,第二SLC SB 80的块81a-81d的页面82a-82d和82f-82i已被写入,并且块81a-81d的页面82e和82j包含主机数据。对于第三SLC SB 85,块86a-86d的页面87a和87b已被写入,并且块86a-86d的页面87c-87j尚未被写入。
由于此时UB 60只包含无效数据,因此UB 60可以被擦除。这意味着GC操作策略的第一通用步骤完成,并且FTL 135可以开始将来自SLC SB的数据复制到MLC SB。通过示例的方式,FTL 135首先处理第一SLC SB 65。而且,根据GC策略的实施例,如果数据已被复制到MLC SB,则其SLC SB版本仍然有效并且用于满足主机读取请求。仅当新的MLC SB关闭时,SLC SB数据才会无效。
继续FTL 135与主机之间相同的动作序列,参照图9描述第六次SPO之前SB的状态。
图9分别示出新的MLC SB 90,以及第一SLC SB 65、第二SLC SB 80和第三SLC SB85。具有SLC版本和MLC版本的数据包含在MLC SB 90的块91a-91d的页面92a以及第一SLCSB 65的块66a-66d的页面67a和67b中。主机数据包含在第一SLC SB 65的块66a-66d的页面67e和67j中,并且所有块中的剩余页面包含通过GC操作写入的数据。对于第二SLC SB 80,主机数据包含在块81a-81d的页面82e和82j中,并且所有块中的剩余页面包含通过GC操作写入的数据。在第三SLC SB 85中,块86a-86d的页面87a和87b已被写入,所有块的页面87c包含主机数据,并且横跨所有块的剩余页面为空。
在图9以及图10至图12中,利用双交叉影线标记包含具有SLC版本和MLC版本的数据的页面。
该进程继续。在第六次SPO之后,因为MLC SB 90的读取计数器为零,所以FTL 135继续对MLC SB 90写入。最终,在第八次SPO之前,来自第一SLC SB 65的所有数据被复制到MLC SB 90。然而,因为MLC SB 90仍然开放,因此第一SLC SB 65不能被无效。
因此,参照图10,SB的当前状态如下。具有SLC版本和MLC版本的数据包含在MLC SB90的所有块的页面92a-92e以及第一SLC SB 65的所有块的所有页面中。第二SLC SB 80和第三SLC SB 85中的每一个具有与图9中相同的状态。
在第十次SPO之后的RTI结束时,继续FTL 135与主机之间相同的动作序列,MLC SB90已满并且可以关闭。因此,第一SLC SB 65和第二SLC SB 80可以被分别擦除。在图11中所示的状态中,MLC SB 90、第一SLC SB 65和第二SLC SB 80的所有块的所有页面包含具有SLC版本和MLC版本的数据。第三SLC SB 85相对于其在图10中的状态已经改变,其中块86a-86d中的页面87f和87g现在包含主机数据。
最后,在第十二次SPO之后的RTI结束时,来自第三SLC SB 85的几乎所有数据已被复制到包括还未被确定为UB的另一个MLC SB 95的MLC SB。参照图12,具有MLC版本和SLC版本的数据在MLC SB 95的块96a-96d的页面97a-97d中,但是其所有块的剩余页面97e-97j为空。在第三SLC SB 85中,块86a-86d的页面87a-87h包含具有MLC版本和SLC版本的数据,而所有块的页面87i包含主机数据,并且所有块的页面87j为空。
在该阶段,来自第三SLC SB 85的剩余数据可以绕过GC触发和节流策略被复制到MLC SB 95。在这种情况下,第三SLC SB 85可以被擦除并且FTL 135允许对未关闭的MLC SB95的主机读取操作。如果再次发生SPO,则FTL 135可以将MLC SB 95标记为不安全并且从开始重复GC策略的步骤。
上述GC策略是示例性的。可以对其进行修改以满足特定要求。例如,如果SLC区域受限或不可用,则可以将来自UB的数据直接复制到MLC块。在这种情况下,利用读取节流,FTL 135可以实现继续对在SPO之前尚未关闭的MLC块写入,并且确保它们不会达到读取干扰阈值。
如果QoS要求灵活,则可以在一定数量的连续SPO之后增加RTI,这相当于增加每次SPO的时间。
可以单独使用这些修改方案中的任意一个,或者可以对它们进行组合。
图13是描述根据本发明的实施例的用于执行GC操作策略的进程中的步骤的流程图。流程图1300中示出的步骤是示例性的。本领域技术人员将理解的是,在不脱离本文公开的发明构思的情况下,可以执行附加步骤和/或替代步骤,或者可以改变步骤的顺序,以实现本发明的各方面。
以下描述假设SB结构如结合图4所描述的。也就是说,SB具有四(4)个物理块,每个物理块具有10(十)个页面。然而,注意的是,该结构仅是示例性的;本发明可以应用于具有不同数量的物理块和页面的SB。
参照图13以及其它附图,在步骤1301中,在MLC SB的每个块中的10个页面中的9个已经被写入有效用户数据时发生第一次SPO。MLC SB的每个块中的最后页面保持为空。该状态如图5所示。
在第一次SPO随后的通电之后,在步骤1302中,在RTI期间,将MLC SB标记为不安全块(UB),并且执行GC操作以将来自UB的数据复制到第一SLC SB。结合图6示出并描述了在第一次SPO之后RTI结束时UB和第一SLC SB的状态以及相关情况。
在步骤1303中,该进程根据先前结合图7描述的GC触发和节流策略继续进行,直到发生第二次SPO。结合图7示出并描述了第二次SPO之前UB和第一SLC SB的状态。
在第二次SPO随后的通电之后,在步骤1304中,该进程继续将数据写入到在第二次SPO之前未关闭的SLC SB,在FTL和主机之间执行与在第一次SPO和第二次SPO之间的动作序列相同的动作序列,这与待在未来相邻SPO之间执行的动作序列相同。结合图8示出并描述了在第五次SPO之后RTI结束时包括UB和第一SLC SB以及第二SLC SB和第三SLC SB的SB的状态。
UB现在只包含无效数据;因此,UB可以被擦除。这意味着GC操作策略的需要将来自UB的数据复制到SLC SB的第一通用步骤完成。因此,该进程继续进行将来自SLC SB的数据复制到新的MLC SB的第二通用步骤。在实施例中,首先处理SLC SB中的第一SLC SB。根据本发明的实施例,复制到新的MLC SB的数据仍然具有用于满足主机读取请求的有效的SLC版本。仅当新的MLC SB关闭时,SLC SB中的数据才会无效。
继续SPO之间的动作序列,结合图9示出并描述了第六次SPO之前SB的状态。
在第六次SPO之后,因为该进程确定新的MLC SB的读取为零,所以该进程继续将数据写入新的MLC SB(图9中所示)。最后,在步骤1305中,在第八次SPO之前,将来自第一SLCSB的数据复制到新的MLC SB,但是因为新的MLC SB仍然开放,所以第一SLC SB不能被无效。结合图10示出并描述了SB的状态。
该进程继续相同的SPO之间的动作序列。在步骤1306中,在第十次SPO之后的RTI结束时,MLC SB已满并被关闭,因此,第一SLC SB和第二SLC SB被擦除。结合图11示出并描述了SB的状态。
然后,在第十二次SPO之后的RTI结束时,已将来自第三SLC SB的几乎所有数据复制到包括还未被确定为UB的另一MLC SB的MLC SB。此时,由步骤1307表示,绕过GC触发和节流策略,将来自第三SLC SB的剩余数据复制到新的MLC SB。在这种情况下,第三SLC SB被擦除并且允许对未关闭的MLC SB的主机读取操作。
如果发生又一次SPO,则返回步骤1301重复该进程。
如前所述,本发明的实施例提供了在发生多次SPO的情况下特别有效的改进的GC操作策略。本发明的GC操作策略能够适应不同的情况,例如,有限的或没有SLC区域,并且可以根据灵活的QoS要求进行修改。根据本发明的实施例,GC操作策略在多次SPO的情况下有利地确保数据一致性并且满足系统要求。
虽然为了清楚和理解的目的已经相当详细地示出并描述了前述实施例,但是本发明不限于所提供的细节。如本领域技术人员根据前述公开内容将理解的是,存在许多实施本发明的替代方式。因此,所公开的实施例是说明性的而非限制性的。

Claims (19)

1.一种存储器系统,包括:
存储器装置,包括单层单元存储块,即SLC存储块和多层单元存储块,即MLC存储块,每个存储块包括页面,所述SLC存储块中的至少一些SLC存储块被分组为SLC超级块,即SLCSB,并且所述MLC存储块中的至少一些MLC存储块被分组为MLC超级块,即MLC SB;以及
存储器控制器,运行闪存转换层,即FTL以执行包括垃圾收集操作,即GC操作的操作,
其中所述存储器控制器在突然断电,即SPO之后,通过将在所述SPO之前开放的、具有用户数据的每个MLC SB确定为不安全超级块,即UB,将来自所述UB中的选择UB中的页面的数据复制到所述SLC SB中的页面,并且将来自所述SLC SB中的页面的数据复制到未被确定为UB的选择MLC SB中的页面来执行所述GC操作。
2.根据权利要求1所述的存储器系统,其中在所述GC操作期间,由所述存储器系统从外部源接收的新的数据被写入到所述SLC SB中的页面。
3.根据权利要求1所述的存储器系统,其中在从所述SPO之后的通电开始的重建时间间隔,即RTI期间,所述存储器控制器加载并恢复先前存储在所述SLC存储块中的关键元数据。
4.根据权利要求3所述的存储器系统,其中所述存储器控制器在后续多次SPO中的每一次之后继续执行所述GC操作,以将来自所述选择UB中的所有页面的所有数据复制到所述SLC SB中的页面。
5.根据权利要求1所述的存储器系统,其中在将来自所述SLC SB中的页面的数据复制到所述选择MLC SB中的页面期间,所述存储器控制器使用GC节流来管理用于外部接收的新的数据的空闲空间。
6.根据权利要求1所述的存储器系统,其中在执行所述GC操作期间,所述存储器控制器不允许从所述MLC存储块之中的开放MLC存储块读取数据。
7.根据权利要求6所述的存储器系统,其中在后续多次SPO中的每一次之后执行所述GC操作期间,所述存储器控制器继续将来自所述SLC SB中的页面的数据复制到所述选择MLCSB中的页面。
8.根据权利要求4所述的存储器系统,其中在所述后续多次SPO中的第m次SPO之后,当所述选择UB只包含无效数据时,所述存储器控制器擦除所述选择UB。
9.根据权利要求8所述的存储器系统,在所述后续多次SPO中的第n次SPO之后,其中n大于m,当所述选择MLC SB已满时,所述选择MLC SB被关闭,并且从其复制了所述选择MLC SB的数据的所述SLC SB被擦除。
10.根据权利要求1所述的存储器系统,其中所述存储器系统是基于闪存的存储器系统。
11.一种对存储器系统执行垃圾收集操作的方法,即对存储器系统执行GC操作的方法,所述存储器系统包括存储器装置,所述存储器装置包括单层单元存储块,即SLC存储块和多层单元存储块,即MLC存储块,每个存储块包括页面,所述SLC存储块中的至少一些SLC存储块被分组为SLC超级块,即SLC SB,并且所述MLC存储块中的至少一些MLC存储块被分组为MLC SB,所述方法包括:
将在多次SPO中的第一次SPO之前开放的、具有用户数据的每个MLC SB确定为不安全SB,即UB;
在所述第一次SPO和后续SPO之后的多个重建时间间隔,即RTI中的每一个期间,分别将来自所述UB中的选择UB中的页面的数据复制到所述SLC SB中的至少一些SLC SB中的页面,直到所述选择UB只包含无效数据,每个RTI是从相应SPO之后的通电开始的设定时间;
擦除所述选择UB中的所述无效数据;并且
将来自从所述选择UB复制了数据的所述SLC SB中的页面的数据复制到未被确定为UB的选择MLC SB中的页面,直到所述选择MLC SB已满。
12.根据权利要求11所述的方法,进一步包括:
当所述选择MLC SB已满时,关闭所述选择MLC SB;并且
擦除从其复制了所述选择MLC SB的数据的所述SLC SB。
13.根据权利要求12所述的方法,进一步包括:
继续将未擦除的SLC SB的数据复制到新的MLC SB中,其中数据从所述选择UB被复制到了所述未擦除的SLC SB。
14.根据权利要求13所述的方法,其中继续复制通过绕过所述存储器系统的GC触发和节流策略来执行。
15.根据权利要求11所述的方法,其中在执行所述GC操作时,由所述存储器系统从外部源接收的新的数据被写入到所述SLC SB中的页面。
16.根据权利要求11所述的方法,其中将来自所述UB中的所述选择UB中的页面的数据复制到所述SLC SB中的至少一些SLC SB中的页面在所述多个RTI中的第一个RTI期间根据所述存储器系统的GC触发和节流策略来执行,直到所述后续SPO中的第一次SPO发生。
17.根据权利要求11所述的方法,进一步包括:
在复制来自所述SLC SB中的页面的数据期间,使用GC节流来管理用于外部接收的新的数据的空闲空间。
18.根据权利要求11所述的方法,其中在执行所述GC操作期间,存储器控制器不允许从所述MLC存储块之中的开放MLC存储块读取数据。
19.根据权利要求11所述的方法,其中所述存储器系统是基于闪存的存储器系统。
CN201910270753.7A 2018-04-04 2019-04-04 用于存储器系统的垃圾收集策略及执行该垃圾收集的方法 Active CN110347332B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862652587P 2018-04-04 2018-04-04
US62/652,587 2018-04-04

Publications (2)

Publication Number Publication Date
CN110347332A true CN110347332A (zh) 2019-10-18
CN110347332B CN110347332B (zh) 2023-06-27

Family

ID=68097202

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910270753.7A Active CN110347332B (zh) 2018-04-04 2019-04-04 用于存储器系统的垃圾收集策略及执行该垃圾收集的方法

Country Status (2)

Country Link
US (1) US11163679B2 (zh)
CN (1) CN110347332B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111897489A (zh) * 2020-06-28 2020-11-06 深圳佰维存储科技股份有限公司 数据写入方法、装置、设备及计算机可读存储介质
CN113268441A (zh) * 2020-02-17 2021-08-17 爱思开海力士有限公司 存储装置及其操作方法
CN113495850A (zh) * 2020-04-08 2021-10-12 慧荣科技股份有限公司 管理垃圾回收程序的方法、装置及计算机可读取存储介质

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190092054A (ko) * 2018-01-30 2019-08-07 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US11550711B2 (en) * 2019-09-09 2023-01-10 Micron Technology, Inc. Dynamically adjusted garbage collection workload
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
KR20210103701A (ko) 2020-02-14 2021-08-24 삼성전자주식회사 메모리 장치 및 그 동작 방법
CN115803719A (zh) * 2020-07-17 2023-03-14 美光科技公司 视频数据和文件系统元数据的存储
KR20220108342A (ko) * 2021-01-27 2022-08-03 에스케이하이닉스 주식회사 메모리 시스템 내 프리 블록을 확보하는 장치 및 방법
JP2023130874A (ja) * 2022-03-08 2023-09-21 キオクシア株式会社 メモリシステムおよび方法
US20230393736A1 (en) * 2022-06-01 2023-12-07 Micron Technology, Inc. Managing quad-level cell compaction strategy of a memory device

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103688247A (zh) * 2011-06-15 2014-03-26 苹果公司 混合slc/mlc存储器中的块管理方案
CN103714856A (zh) * 2012-10-05 2014-04-09 三星电子株式会社 存储器系统及其读取回收方法
US20150106556A1 (en) * 2008-06-18 2015-04-16 Super Talent Electronics, Inc. Endurance Translation Layer (ETL) and Diversion of Temp Files for Reduced Flash Wear of a Super-Endurance Solid-State Drive
US20150135039A1 (en) * 2013-11-14 2015-05-14 Sandisk Technologies Inc. Block closure techniques for a data storage device
CN106484319A (zh) * 2015-09-02 2017-03-08 爱思开海力士有限公司 用于非易失性存储器的支持无效命令
CN106663073A (zh) * 2014-04-16 2017-05-10 桑迪士克科技有限责任公司 用于适应性突发模式的储存模块和方法
US9652382B1 (en) * 2014-09-04 2017-05-16 Sk Hynix Memory Solutions Inc. Look-ahead garbage collection for NAND flash based storage
US20170277245A1 (en) * 2016-03-28 2017-09-28 Apple Inc. Systems and methods for handling sudden power failures in solid state drives
CN107544748A (zh) * 2016-06-28 2018-01-05 光宝电子(广州)有限公司 固态储存装置及其数据写入方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090193184A1 (en) * 2003-12-02 2009-07-30 Super Talent Electronics Inc. Hybrid 2-Level Mapping Tables for Hybrid Block- and Page-Mode Flash-Memory System
US7275140B2 (en) * 2005-05-12 2007-09-25 Sandisk Il Ltd. Flash memory management method that is resistant to data corruption by power loss
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
KR101555022B1 (ko) * 2008-12-02 2015-09-23 삼성전자주식회사 메모리 장치, 그것을 포함한 메모리 시스템 및 그것의 맵핑정보 복원 방법
US9612954B2 (en) * 2008-12-31 2017-04-04 Micron Technology, Inc. Recovery for non-volatile memory after power loss
CN103164345B (zh) 2011-12-08 2016-04-27 光宝科技股份有限公司 固态存储装置遭遇断电后的数据存储方法
US8923045B2 (en) * 2012-05-31 2014-12-30 Seagate Technology Llc Multi-level cell (MLC) update with protected mode capability
US9037820B2 (en) * 2012-06-29 2015-05-19 Intel Corporation Optimized context drop for a solid state drive (SSD)
KR102190399B1 (ko) * 2013-10-11 2020-12-11 삼성전자주식회사 신뢰성을 보장할 수 있는 불휘발성 메모리 장치의 동작 방법 및 상기 방법을 수행하는 메모리 시스템
US9558839B2 (en) * 2015-03-09 2017-01-31 Toshiba Corporation Power fail saving modes in solid state drive with MLC memory
US10008250B2 (en) 2015-03-27 2018-06-26 Intel Corporation Single level cell write buffering for multiple level cell non-volatile memory

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150106556A1 (en) * 2008-06-18 2015-04-16 Super Talent Electronics, Inc. Endurance Translation Layer (ETL) and Diversion of Temp Files for Reduced Flash Wear of a Super-Endurance Solid-State Drive
CN103688247A (zh) * 2011-06-15 2014-03-26 苹果公司 混合slc/mlc存储器中的块管理方案
CN103714856A (zh) * 2012-10-05 2014-04-09 三星电子株式会社 存储器系统及其读取回收方法
US20150135039A1 (en) * 2013-11-14 2015-05-14 Sandisk Technologies Inc. Block closure techniques for a data storage device
CN106663073A (zh) * 2014-04-16 2017-05-10 桑迪士克科技有限责任公司 用于适应性突发模式的储存模块和方法
US9652382B1 (en) * 2014-09-04 2017-05-16 Sk Hynix Memory Solutions Inc. Look-ahead garbage collection for NAND flash based storage
CN106484319A (zh) * 2015-09-02 2017-03-08 爱思开海力士有限公司 用于非易失性存储器的支持无效命令
US20170277245A1 (en) * 2016-03-28 2017-09-28 Apple Inc. Systems and methods for handling sudden power failures in solid state drives
CN107544748A (zh) * 2016-06-28 2018-01-05 光宝电子(广州)有限公司 固态储存装置及其数据写入方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113268441A (zh) * 2020-02-17 2021-08-17 爱思开海力士有限公司 存储装置及其操作方法
CN113495850A (zh) * 2020-04-08 2021-10-12 慧荣科技股份有限公司 管理垃圾回收程序的方法、装置及计算机可读取存储介质
CN113495850B (zh) * 2020-04-08 2024-02-09 慧荣科技股份有限公司 管理垃圾回收程序的方法、装置及计算机可读取存储介质
CN111897489A (zh) * 2020-06-28 2020-11-06 深圳佰维存储科技股份有限公司 数据写入方法、装置、设备及计算机可读存储介质
CN111897489B (zh) * 2020-06-28 2023-06-13 深圳佰维存储科技股份有限公司 数据写入方法、装置、设备及计算机可读存储介质

Also Published As

Publication number Publication date
US11163679B2 (en) 2021-11-02
US20190310936A1 (en) 2019-10-10
CN110347332B (zh) 2023-06-27

Similar Documents

Publication Publication Date Title
CN110347332A (zh) 用于存储器系统的垃圾收集策略及执行该垃圾收集的方法
CN107229577B (zh) 存储系统及其操作方法
KR100672996B1 (ko) 메타 데이터가 저장되는 에프램을 포함하는 메모리 장치
US20140129758A1 (en) Wear leveling in flash memory devices with trim commands
CN109800180A (zh) 用于地址映射的方法和存储器系统
CN104346290A (zh) 存储装置、计算机系统及其操作方法
CN109388594A (zh) 存储器系统及其操作方法
CN109801669A (zh) 具有软读取挂起方案的存储器系统及其操作方法
CN109671465A (zh) 具有自适应读取阈值方案的存储器系统及其操作方法
CN107957959A (zh) 具有文件级安全擦除的存储器系统及其操作方法
CN110457230A (zh) 存储器系统及其操作方法
CN110058797A (zh) 存储器系统及其操作方法
CN110096385A (zh) 存储器系统及其操作方法
CN110310691A (zh) 存储器系统中的工作负载预测及其方法
KR20200137664A (ko) 메모리 시스템 및 메모리 시스템의 동작방법
KR20160050394A (ko) 메모리 시스템 및 상기 메모리 시스템의 동작 방법
CN110442529A (zh) 可配置的存储器系统及配置和使用该存储器系统的方法
CN106445749A (zh) 使用独立磁盘冗余阵列的动态自动调谐的最大延迟的减小
CN110032471A (zh) 存储器系统及其操作方法
CN110489271A (zh) 存储器系统及其操作方法
CN112749101A (zh) 控制器和存储器系统
CN110457242A (zh) 控制器、存储器系统及其操作方法
CN110390988A (zh) 数据存储装置、防止读取干扰的操作方法及存储系统
CN110362423A (zh) 优化恢复性能的数据存储装置、操作方法以及存储系统
CN109727630A (zh) 存储系统及其操作方法

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