CN110603531A - 垃圾收集 - Google Patents

垃圾收集 Download PDF

Info

Publication number
CN110603531A
CN110603531A CN201880030170.0A CN201880030170A CN110603531A CN 110603531 A CN110603531 A CN 110603531A CN 201880030170 A CN201880030170 A CN 201880030170A CN 110603531 A CN110603531 A CN 110603531A
Authority
CN
China
Prior art keywords
block
data
mode
blocks
memory
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
CN201880030170.0A
Other languages
English (en)
Other versions
CN110603531B (zh
Inventor
K·K·穆什赫拉
S·K·拉特南
P·菲利
M·G·米勒
D·J·哈伯德
R·C·帕迪利亚
A·马尔谢
H·R·辛吉迪
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.)
Micron Technology Inc
Original Assignee
Micron Technology 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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN110603531A publication Critical patent/CN110603531A/zh
Application granted granted Critical
Publication of CN110603531B publication Critical patent/CN110603531B/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/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/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
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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/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)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供一种用于垃圾收集的实例设备,其可包含存储器,所述存储器包含多个混合模式块。所述实例设备可包含控制器。所述控制器可经配置以在单级存储器单元SLC模式中将顺序主机数据的第一部分写入到所述存储器的所述多个混合模式块。所述控制器可经配置以在XLC模式中将顺序主机数据的第二部分写入到所述多个混合模式块。所述控制器可经配置以通过执行垃圾收集操作来写入顺序主机数据的所述第二部分。所述垃圾收集操作可包含将比与将顺序主机数据的所述第二部分写入到所述多个混合模式块相关联地被写入到的块的数量多的块添加到自由块池。

Description

垃圾收集
技术领域
本发明一般来说涉及半导体存储器及方法,且更特定来说涉及垃圾收集。
背景技术
存储器装置通常作为内部半导体集成电路及/或外部可移除装置设置在计算机或其它电子装置中。存在包含易失性存储器及非易失性存储器的许多不同类型的存储器。易失性存储器可需要电力来维持其数据,且可包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)等等。非易失性存储器可在未被供电时保持存储数据,且可包含NAND闪速存储器、NOR闪速存储器、相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)及磁性随机存取存储器(MRAM)等等。
存储器装置可组合在一起以形成固态驱动器(SSD)。SSD可包含非易失性存储器(例如NAND闪速存储器及/或NOR闪速存储器),及/或可包含易失性存储器(例如DRAM及/或SRAM)以及各种其它类型的非易失性及易失性存储器。例如,闪速存储器装置可包含将数据存储在例如浮动栅极的电荷存储结构中的存储器单元,且可用作用于广泛电子应用的非易失性存储器。闪速存储器装置通常使用允许高存储器密度、高可靠性及低电力消耗的单晶体管存储器单元。
SSD可用于替换作为计算机的主存储卷的硬盘驱动器,这是因为固态驱动器可在性能、大小、重量、耐用性、操作温度范围及电力消耗方面优于硬盘驱动器。例如,SSD可由于其缺乏移动部件而具有比磁盘驱动器优异的性能,这可避免与磁盘驱动器相关联的寻道时间、时延及其它机电延迟。
一些存储器单元(例如闪速存储器单元、相变存储器单元等等)能够在单级存储器单元(SLC)模式及额外级存储器单元(XLC)模式(例如2位模式、3位模式、4位模式等等)两者中被操作(例如编程、读取、擦除等等)。此类存储器单元可被称为“混合模式”存储器单元。SLC存储器单元可指经编程到两种不同数据状态中的目标数据状态且经配置以存储单个数据单元(例如1个位)的存储器单元。XLC存储器单元可指经编程到两种以上不同数据状态中的目标数据状态使得其经配置以存储单个以上数据单元(例如2个位、2.5个位、3个位、4个位等等)的存储器单元。XLC存储器单元可被称为多状态存储器单元、多单元存储器单元或多级存储器单元。XLC可提供较高密度存储器而不增加存储器单元的数目,这是因为每一存储器单元可表示一个以上数据单元。
在各种情况下,SSD可经配置以在SLC模式中写入主机数据。然而,随着可用存储器空间填满,会在XLC模式中重写SLC模式中所写入的数据以释放空间。垃圾收集过程可用于选择特定块以供擦除,及/或用于选择SLC模式中所写入的数据将被“折叠”到XLC块中的方式。垃圾收集过程会导致数据分段。例如,垃圾收集会导致按顺序写入的工作负载被重新定位(例如到不同块),使得不再按顺序存储数据(例如使得以逻辑上非顺序方式存储数据)。
附图说明
图1绘示根据本发明的数个实施例的具有数个物理块的存储器阵列的部分的图解。
图2是根据本发明的数个实施例的呈包括存储器系统的计算系统的形式的设备的框图。
图3绘示根据本发明的数个实施例的控制器的图解。
图4A到4B各自绘示根据本发明的数个实施例的与垃圾收集相关联的图解。
图5A到5F各自绘示根据本发明的数个实施例的存储数据的各种部分的存储器的图解。
图6A到6L各自绘示根据本发明的数个实施例的与垃圾收集相关联的图解。
图7绘示根据本发明的数个实施例的与垃圾收集相关联的实例流程图。
具体实施方式
用于垃圾收集的实例设备可包含存储器,存储器包含多个混合模式块。实例设备可包含控制器。控制器可经配置以在单级存储器单元(SLC)模式中将顺序主机数据的第一部分写入到存储器的多个混合模式块。控制器可经配置以在XLC模式中将顺序主机数据的第二部分写入到多个混合模式块。控制器可经配置以通过执行垃圾收集操作来写入顺序主机数据的第二部分。垃圾收集操作可包含将比与将顺序主机数据的第二部分写入到多个混合模式块相关联地被写入到的块的数量多的块添加到自由块池。垃圾收集操作可释放数量比被写入到的块的数量大的块。顺序主机数据的第一部分可为一定量的顺序主机数据。顺序主机数据的第二部分可为其余的顺序主机数据。
根据本发明的存储在存储器中的数据的垃圾收集可增加存储器的性能(例如增加速度、增加可靠性等等),及/或增加存储器的耐久性(例如增加寿命),以及其它益处。例如,当很可能对存储器执行大文件(例如操作系统(OS)文件、游戏文件、视频文件及/或其它程序安装)时,根据本发明的垃圾收集方案可在存储器的寿命早期(例如在存储器的寿命开始时)增加存储器的性能。
垃圾收集可增加与存储器相关联的写入放大,这会减少例如SSD的寿命。写入放大可指所写入的物理数据的数量是意图被写入的逻辑数量的倍数的现象。写入放大可由于以下事实而发生:闪速存储器必须在被重写之前被擦除,常常是使用粒度比写入操作粗略的擦除操作。在各种情况下,可能会擦除及重写比被写入的新数据的量实际上所需要的大的闪速存储器部分。此倍增效应会增加SSD的寿命内的写入次数,这会缩短SSD的寿命。
当SSD按顺序写入大量数据时,写入放大可等于1,这是因为写入到驱动器的物理数据的量与意图被写入的逻辑数据的量相同。例如,如果需要删除按顺序写入的文件,那么可将整个(若干)块标记为无效且无需重新定位(若干)块的部分(例如经由垃圾收集)。然而,在各种情况下,会因动态单级存储器单元(SLC)高速缓冲存储(例如在数据的首次填充期间)而引入数据分段。数据分段可由于主机数据(其是顺序的)与垃圾收集数据(其可能不是顺序的)一起被写入以使目的地块为非顺序的而发生。为了使数据再次为顺序的,可进行数据的若干逻辑填充以消除块中的数据的随机性且使数据为顺序的,如下文联合图4A进一步所描述。用于从分段恢复的填充的次数(其可被称为恢复速率)可为首次填充(例如,例如联合图4A所描述的首次填充)期间所引入的分段的强函数。
在一些先前方法中,可在将自由块计数(例如可用块的数量)减少到特定值时启动垃圾收集。在此类方法中,垃圾收集可旨在释放数量与被消耗的数量相同的自由块。在下文所描述的数个实例中,垃圾收集可旨在有意地产生块消耗与释放速率之间的失衡。例如,在垃圾收集期间被释放为自由块的块的数目可超过经消耗以引起执行垃圾收集的块的数目。
与先前垃圾收集方法相比,根据本发明的垃圾收集方案可增加存储器的性能及/或耐久性。例如,数种先前垃圾收集方法可利用除本发明中联合动态SLC高速缓冲存储器及强制SLC高速缓冲存储器所描述的存储器块填充及擦除之外的额外存储器块填充及额外擦除。如本文中所使用,“动态SLC高速缓冲存储器”是指可被动态地重设大小的高速缓冲存储器。例如,可在操作期间(例如“在运作中”)改变动态SLC高速缓冲存储器的大小(例如块的数目)以适应对存储器的各种需求。如本文中所使用,“强制SLC高速缓冲存储”是指包含主机数据(例如从主机接收以写入到存储器的数据)应在SLC模式中被写入的要求的高速缓冲存储。如本文中所使用,“强制SLC高速缓冲存储”可指包含主机数据(例如从主机接收以写入到存储器的数据)应在将数据移动到TLC模式之前在SLC模式中被写入的要求的高速缓冲存储。
与一些方法相比,本发明的实施例可提供减少的存储器填充,同时执行垃圾收集且由此减少对存储器所执行的读取及写入的次数。所述实施例可提供减少的稳态顺序工作负载填充,即,无空闲时间的连续顺序写入。以此方式,可减少垃圾收集之前的驱动器填充的次数。例如,在将数据首次填充到存储器中(例如在SLC模式中将数据写入到处于新鲜出炉(FOB)状态的存储器)时,可以比先前方法更具逻辑上顺序的方式对数据排序。减少填充次数以逻辑上对数据排序可减少读取及写入且增加存储器的长期性能。
如本文中所使用,“数个”事物可指一或多个此类事物。例如,数个存储器单元可指一或多个存储器单元。另外,如本文中所使用,标示符“N”、“B”、“R”及“S”(尤其是关于附图中的参考数字)指示:如此标示的数个特定特征可包含在本发明的数个实施例中。
本文中的图遵循编号惯例,其中首位或前几位数字对应于附图图号且剩余数字标识附图中的元件或组件。可通过使用类似数字来标识不同图之间的类似元件或组件。例如,210可指图2中的元件“10”,且类似元件在图3中可被编号为310。
图1绘示根据本发明的数个实施例的具有数个物理块的存储器阵列100的部分的图解。存储器阵列100可为例如NAND闪速存储器阵列。然而,本发明的实施例不限于特定类型的存储器或存储器阵列。例如,存储器阵列100可为DRAM阵列、RRAM阵列或PCRAM阵列,以及其它类型的存储器阵列。此外,尽管图1中未展示,但存储器阵列100可连同与其操作相关联的各种外围电路一起位于特定半晶体裸片上。
如图1中所展示,存储器阵列100具有存储器单元的数个物理块116-0(块0)、116-1(块1)、…、116-B(块B)。存储器单元可为可操作为SLC及/或XLC的混合模式存储器单元。存储器阵列100中的物理块的数目可为128个块、512个块或1,024个块,但实施例不限于128的特定倍数或不限于存储器阵列100中的物理块的任何特定数目。可将第一数目个块116-0、116-1、…、116-B分配为存储器块的第一部分,可将第二数目个块116-0、116-1、…、116-B分配为存储器块的第二部分,及/或可将第三数目个块116-0、116-1、…、116-B分配为存储器块的第三部分。存储器的不同部分可用作用于垃圾收集目的的动态SLC高速缓冲存储器。例如,可随着对存储器的需求增大及/或减小且垃圾收集减少这些需求而动态地增大及/或减小存储器的不同部分的大小。
存储器单元的数个物理块(例如块116-0、116-1、…、116-B)可包含在存储器单元的平面中,且存储器单元的数个平面可包含在裸片上。例如,在图1中所展示的实例中,每一物理块116-0、116-1、…、116-B可为单个裸片的部分。即,图1中所绘示的存储器阵列100的部分可为存储器单元的裸片。
如图1中所展示,每一物理块116-0、116-1、…、116-B含有耦合到存取线(例如字线)的存储器单元的数个物理行(例如120-0、120-1、…、120-R)。每一物理块中的行(例如字线)的数目可为32,但实施例不限于每物理块的特定数目个行120-0、120-1、…、120-R。此外,尽管图1中未展示,但存储器单元可耦合到感测线(例如数据线及/或数字线)。
每一行120-0、120-1、…、120-R可包含存储器单元的数个页(例如物理页)。物理页是指编程及/或感测的单位(例如作为功能群组被一起编程及/或感测的存储器单元的数目)。在图1中所展示的实施例中,每一行120-0、120-1、…、120-R包括存储器单元的一个物理页。然而,本发明的实施例不受到如此限制。例如,在数个实施例中,每一行可包括存储器单元的多个物理页(例如耦合到偶数位线的存储器单元的一或多个偶数页及耦合到奇数位线的存储器单元的一或多个奇数页)。另外,对于包含XLC的实施例,存储器单元的物理页可存储数据的多个页(例如逻辑页),例如数据的上页及数据的下页,其中物理页中的每一存储器单元将一或多个位存储向数据的上页且将一或多个位存储向数据的下页。
在本发明的数个实施例中,且如图1中所展示,存储器单元的页可包括数个物理扇区122-0、122-1、…、122-S(例如存储器单元的子集)。存储器单元的每一物理扇区122-0、122-1、…、122-S可存储数据(例如数据字)的数个逻辑扇区。另外,数据的每一逻辑扇区可对应于数据的特定页的部分。作为实例,存储在特定物理扇区中的数据的第一逻辑扇区可对应于与数据的第一页对应的逻辑扇区,且存储在特定物理扇区中的数据的第二逻辑扇区可对应于数据的第二页。每一物理扇区122-0、122-1、…、122-S可存储系统及/或用户数据,及/或可包含开销数据,例如错误校正码(ECC)数据、逻辑块地址(LBA)数据及重复错误数据。
逻辑块寻址是可由主机用于标识数据的逻辑扇区的方案。例如,每一逻辑扇区可对应于唯一逻辑块地址(LBA)。另外,LBA还可对应于物理地址。数据的逻辑扇区可为数据的数个字节(例如256个字节、512个字节或1,024个字节)。然而,实施例不限于这些实例。
应注意,物理块116-0、116-1、…、116-B、行120-0、120-1、…、120-R、扇区122-0、122-1、…、122-S及页的其它配置是可能的。例如,物理块116-0、116-1、…、116-B的行120-0、120-1、…、120-R可各自存储对应于单个逻辑扇区的数据,所述单个逻辑扇区可包含例如数据的512个以上或512个以下字节。
图2是根据本发明的数个实施例的呈包括存储器系统204的计算系统201的形式的设备的框图。如本文中所使用,存储器系统、控制器及/或存储器装置可单独地为“设备”。
存储器系统204可为例如固态驱动器(SSD)。在图2中所绘示的实施例中,存储器系统204包含主机接口206、存储器(例如数个存储器装置210-1、210-2、…、210-N),及耦合到物理主机接口206及存储器装置210-1、210-2、…、210-N的控制器208(例如SSD控制器)。
存储器装置210-1、210-2、…、210-N可包含例如数个非易失性存储器阵列(例如非易失性存储器单元的阵列)。例如,存储器装置210-1、210-2、…、210-N可包含类似于先前结合图1所描述的存储器阵列100的数个存储器阵列。
在一些实施例中,存储器装置210-1、…、210-N可包含存储器单元(例如非易失性存储器单元)的数个阵列。所述阵列可为具有例如NAND架构的闪速存储器阵列。然而,实施例不限于特定类型的存储器阵列或阵列架构。如上文结合图1所描述,存储器单元可例如分组为包含存储器单元的数个物理页的数个块。在数个实施例中,块是指作为单元被一起擦除的存储器单元的群组。数个块可包含在存储器单元的平面中,且阵列可包含数个平面。作为一个实例,存储器装置可经配置以存储每页8KB(千字节)的用户数据、每块128页的用户数据、每平面2048个块,及每装置16个平面。
在操作中,数据可作为例如数据的页被写入到存储器系统的存储器装置(例如存储器系统204的存储器装置210-1、…、210-N)及/或从存储器系统的存储器装置(例如存储器系统204的存储器装置210-1、…、210-N)被读取。因而,数据的页可被称为存储器系统的数据传送大小。数据可呈被称为扇区(例如主机扇区)的数据段被传送到主机202/从主机202被传送。因而,数据的扇区可被称为主机的数据传送大小。在一些实施例中,NAND块可被称为擦除块,其中块是擦除的单位且页是读取及/或写入的度量。
主机接口206可用于在存储器系统204与例如主机202的另一装置之间传达信息。主机202可包含存储器存取装置(例如处理器)。如本文中所使用,“处理器”可意指数个处理器,例如并行处理系统、数个协处理器等等。实例主机可包含个人膝上型计算机、桌上型计算机、数字相机、数字记录及回放装置、移动(例如智能)电话、PDA、存储卡读取器、接口集线器等等。
主机接口206可呈标准化物理接口的形式。例如,当存储器系统204用于计算系统201中的信息存储时,主机接口206可为串行高级技术附件(SATA)物理接口、外围组件互连快速(PCIe)物理接口或通用串行总线(USB)物理接口,以及其它物理连接器及/或接口。然而,一般来说,主机接口206可提供接口以在存储器系统204与具有用于主机接口206的兼容接受器的主机(例如主机202)之间传递控制、地址、信息(例如数据)及其它信号。
控制器208可包含例如控制电路及/或逻辑(例如硬件及固件)。控制器208可与存储器210-1、210-2、…、210-N包含在同一物理装置(例如同一裸片)上。例如,控制器208可为耦合到包含物理主机接口206及存储器210-1、210-2、…、210-N的印刷电路板的专用集成电路(ASIC)。替代地,控制器208可包含在以通信方式耦合到包含存储器210-1、210-2、…、210-N的物理装置的单独物理装置上。在数个实施例中,控制器208的组件可作为分布式控制器跨多个物理装置而散布(例如,一些组件与存储器位于同一裸片上,且一些组件位于不同裸片、模块或板上)。
控制器208可与存储器装置210-1、210-2、…、210-N通信以感测(例如读取)、编程(例如写入)及/或擦除信息,以及进行其它操作。控制器208可具有可为数个集成电路及/或离散组件的电路。在数个实施例中,控制器208中的电路可包含用于控制跨存储器装置210-1、210-2、…、210-N的存取的控制电路,及/或用于在主机202与存储器系统204之间提供转换层(例如闪速存储器转换层)的电路。
控制器208可控制作为(例如配置每一相应存储器装置210-1、210-2、…、210-N的部分以操作为)静态(例如专用)单级存储器单元(SLC)高速缓冲存储器及/或动态SLC高速缓冲存储器的每一相应存储器装置210-1、210-2、…、210-N的专用区域(例如块寻址部分)的操作。例如,每一相应存储器装置210-1、210-2、…、210-N的部分可经配置以操作为SLC模式中的静态高速缓冲存储器及/或SLC模式中的动态高速缓冲存储器。每一相应存储器装置210-1、210-2、…、210-N的此部分可为例如每一相应存储器中的存储器单元的第一多个块(例如物理块),如本文中将进一步所描述(例如结合图3),且可在本文中被称为存储器的第一部分。另外,每一相应存储器装置210-1、210-2、…、210-N的部分可包含第二多个块、第三多个块等等。
每一相应存储器210-1、210-2、…、210-N的第二部分可为例如每一相应存储器中的存储器单元的第二多个块(例如物理块),如本文中将进一步所描述(例如结合图3)。控制器208可在SLC或XLC模式中对第二部分的存储器单元执行擦除操作以及编程及感测操作。
每一相应存储器210-1、210-2、…、210-N的第二部分的大小可对应于由所述存储器用于将存储在存储器的SLC中的数据编程到存储器的XLC(例如用于将SLC数据折叠成XLC)的存储器单元的数量。一般来说,与整个驱动器密度相比,第一部分的大小较小。
图2中所绘示的实施例可包含为了不模糊本发明的实施例而未绘示的额外电路、逻辑及/或组件。例如,存储器装置204可包含用于锁存通过I/O电路提供在I/O连接器上的地址信号的地址电路。地址信号可由行解码器及列解码器接收及解码,以存取存储器210-1、210-2、…、210-N。
图3绘示根据本发明的数个实施例的控制器308的图解。所述控制器可类似于图2中所绘示的控制器208,且可耦合到主机接口及/或多个存储器装置,如本文中在图2中所绘示。控制器308可包含存储器管理组件340,存储器管理组件340可包括耗损均衡342组件、垃圾收集344组件、映射346组件及擦除块跟踪348组件。
在一些实施例中,耗损均衡342组件可经配置以对与(若干)存储器装置(例如图2中所绘示的存储器装置210-1、…、210-N)相关联的一或多个块实施耗损均衡以控制此类存储器装置的耗损率。耗损均衡可通过在整个存储器阵列及/或存储器装置上更均匀地散布对块的特定群组所执行的过程循环(例如编程及/或擦除循环)来减少此类循环的次数。耗损均衡可包含静态耗损均衡及/或动态耗损均衡以最小化经移动以回收块的有效块的量。例如,静态耗损均衡可包含将静态数据写入到具有高编程/擦除计数的块以延长块的寿命。在一些实施例中,耗损均衡可包含可由垃圾收集344组件实施的垃圾收集操作。
垃圾收集可包含回收(例如擦除且使可用于编程)在(若干)存储器装置中的块当中具有最多无效页的块。在一些实施例中,垃圾收集可包含回收具有超过阈值量(例如数量)的无效页的块。然而,如果存在足够自由块用于编程操作,那么可能不会发生垃圾收集操作。垃圾收集一般可在后台(例如在存储器的空闲时间期间)执行;然而,在一些实施例中,垃圾收集可例如响应于自由块的量已减少到低于阈值自由块计数的确定而在前台执行。
在一些实施例中,存储器管理340组件可包含可经配置以控制(若干)存储器装置中的存储器块的映射的映射346组件。例如,映射346组件可经配置以将在耗损均衡及/或垃圾收集操作期间发现的坏块映射到仍可接受有效数据的块。
在一些实施例中,控制器308可经配置以利用可由擦除块跟踪348组件确定的信息来控制耗损均衡。例如,擦除块跟踪348组件可经配置以响应于块被写入及/或擦除而使与每一块相关联的计数器递增。
图4A及4B绘示与垃圾收集相关联的相应图解403及405。列428包含对应于存储器单元的块432的物理地址(PA)。列434-1指示存储“折叠”数据(例如重写到块的先前写入的主机数据)的块。列434-2指示存储尚未折叠的主机数据的块。在图4A及4B中所展示的实例中,所述块是TLC块,使得每一块可在SLC模式中存储单个数据单元或在TLC模式中存储3个数据单元。在各种实施例中,在SLC模式中写入主机数据,直到驱动器达到阈值饱和水平,此时发生折叠及/或在XLC模式(例如在此实例中为TLC模式)中写入数据。
作为实例,每一PA可对应于驱动器上的块。在这种情况下,可将垃圾收集及主机数据两者写入到同一块。在此实例中,可在SLC模式中写入1个数据单元。可在TLC模式中写入三(3)个数据单元。可将数据的垃圾收集分量写入到块,由434-1表示,且可将数据的主机分量写入到块,由434-2表示。响应于在SLC模式中写入主机数据,可将一(1)个主机数据单元写入到每一PA。响应于在TLC模式中写入数据,可将三(3)个数据单元写入到每一PA。在图解400-1中,在SLC模式中将主机数据写入在PA 432-1到432-9中。在TLC模式中将主机数据写入在PA 432-10及432-11中。此时,在此实例中,可完全使用所有块。为了写入额外主机数据,可对块执行垃圾收集。列434-3中表示写入到块的垃圾收集数据的量。
图4A与根据先前方法的垃圾收集相关联。在一些先前方法中,存储器或存储器的部分可用作SLC高速缓冲存储器及/或XLC高速缓冲存储器。存储器400-1及400-2可表示例如先前结合例如图1所描述的阵列100的存储器阵列的部分。
如图4A中所展示,存储器400-1、400-2是执行垃圾收集的至少先前方法的实例。例如,存储器400-1是数据的首次填充(例如存储)的绘示。主机可将第一数据单元“1”存储在存储器块的列434-2的第一块中。第一数据单元“1”可为首先存储在存储器400-1中的数据单元。第一数据单元“1”可与为“1”的第一物理地址(“PA”)432-1相关联。可在SLC模式中存储第一数据单元“1”,且因此将不使用被称为“折叠”的列434-1,这是因为无数据被折叠(出于说明性目的而包含以与下文联合存储器400-2且在存储器400-1中所展示的描述相关,以重申在最初存储来自主机的数据时不发生折叠)。为了清楚起见,同一PA中的数据的“折叠”及“主机”部分位于同一块中。此外,作为实例,如果块是首次顺序填充,那么其可不具有“折叠”数据。
同样地,第二数据单元“2”可由主机存储在存储器块的列434-2的第二块(与PA434-2(例如“2”)相关联)中。可按第二次序且在存储第一数据单元之后存储第二数据单元“2”。第三数据单元“3”到第九数据单元“9”可在SLC模式中存储在存储器块的列434-2的第三块(与PA 432-3(例如“3”)相关联)到第九块(与PA 432-9(例如“9”)相关联)中。可按从第三到第九的递增次序且在第一数据单元及第二数据单元之后存储第三数据单元到第九数据单元。
在一些实施例中,使用动态SLC高速缓冲存储方法可包含最初在SLC模式中将主机数据写入到能够进行XLC模式的存储器块,直到自由(例如空白)块被用完。这可提供较快数据存取,直到在XLC模式中存储数据以保留数据存储容量。例如,当在SLC模式中使用XLC存储器单元时,使用从存储器单元容量大小的1/2、1/3到1/4的任何大小(取决于XLC模式是指多存储器单元模式(一个存储器单元中存储2个数据值)、三级存储器单元模式(一个存储器单元中存储3个数据值)还是四级模式(一个存储器单元中存储4个数据值))。因此,如果在已达到存储器块的全存储容量之前使用SLC模式,那么可填充存储器的自由块。垃圾收集可指将在SLC模式中写入的主机数据移动到在XLC模式中写入的数据以产生额外存储容量。如果在未执行垃圾收集的情况下如此操作,那么可启动写入保护模式以避免故障。
随着存储器的数据存储容量变得有限,在动态SLC高速缓冲存储方法中,可最初在XLC模式中写入额外主机数据。例如,如图4A中所绘示,可在XLC模式中将第十数据单元“10”、第十一数据单元“11”及第十二数据单元“12”存储在与PA 432-10(例如“10”)相关联的列434-2的第十块中。例如,第十数据单元“10”可为第十块的上页数据单元,第十一数据单元“11”可为第十块的中间页数据单元,且第十二数据单元“12”可为第十块的下页数据单元。可在XLC模式中将第十三数据单元“13”、第十四数据单元“14”及第十五数据单元“15”存储在与PA 432-11(例如“11”)相关联的列434-2的第十一块中。例如,第十三数据单元“13”可为第十一块的上页数据单元,第十四数据单元“14”可为第十一块的中间页数据单元,且第十五数据单元“15”可为第十一块的下页数据单元。
虽然为了此实例而如每一块中所展示般绘示了单个数据单元,但实施例不受到如此限制。可在存储器块中存储任何数目个数据单元,且每次填充可使用任何数目个数据单元。例如,最初将数据单元“1”到“15”存储在存储器400-1中,且随着主机通过垃圾收集来继续存储数据单元“16”到“30”,将数据单元“1”到“30”存储在存储器400-2中。然而,实施例不限于每次填充总共30个数据单元。
随着将额外主机数据写入到存储器块,可将主机数据及已经垃圾收集的数据一起写入到存储器块。这可产生数据的逻辑上非顺序存储,即使主机数据被按顺序传送也如此。由于由此动态SLC高速缓冲存储引入的数据分段,可使用若干逻辑填充来消除数据的逻辑随机性。用于从分段恢复的填充的次数可为第一初始写入中所引入的分段的函数。根据下文所描述的实施例,描述在已被写入到的存储器块的数目与经释放以供写入到的块的数目之间产生失衡的垃圾收集。换句话说,被释放的存储器块比被写入到的存储器块多。为了完成此目标,减少用主机数据及垃圾收集数据填充的块的数目。
可对存储在存储器400-1中的数据执行436-1处所绘示的垃圾收集,且所述垃圾收集产生如存储器400-2中所绘示而存储的数据。例如,在SLC模式中存储在存储器400-1中的第一数据单元“1”可被垃圾收集及折叠,如由列434-3所绘示,而第十六数据单元“16”及第十七数据单元“17”由主机写入到与物理地址“1”432-1相关联的存储器400-2的第一块。折叠可指将数据单元从在SLC模式中存储改变成在XLC模式中存储在存储器单元内的新位置中。折叠列434-3用于绘示在垃圾收集期间哪些数据单元从先前位置折叠。同样地,在SLC模式中存储在存储器400-1中的第二数据单元“2”可与第十八数据单元及第十九数据单元一起被垃圾收集及折叠以在XLC模式中一起合并写入在与PA 432-2(例如“2”)相关联的第二块中,第三数据单元“3”可与第二十数据单元及第二十一数据单元合并,…,第八数据单元可与第三十数据单元及第三十一数据单元合并。存储在与PA 432-9、432-10、432-11(例如“9”、“10”及“11”)相关联的块中的数据单元(“9”、“10”、“11”、“12”、“13”、“14”及“15”)可保持不变。在此垃圾收集之后存储在存储器400-2中的数据可被称为首次“填充”。
在联合图4A所描述的此实例中,存储在存储器400-2中的数据包含在同一块内具有“折叠”及“主机”数据的许多块。例如,第一块、第二块、第三块、第四块、第五块、第六块、第七块及第八块全部包含分段数据(且是经历了垃圾收集的仅有块)。此分段可增加将用于在同一块内提供顺序数据的后续填充的次数。通过执行产生更多顺序块的首次填充,可使用较少后续填充来提供较大数目个顺序块且实现SSD的稳态顺序模式,如将联合图4B所描述。
图4B绘示根据本发明的数个实施例的与垃圾收集相关联的图解405。在一些实施例中,存储器或存储器的部分可用作动态SLC高速缓冲存储器。存储器400-1及400-3可类似于先前结合图2所描述的存储器装置210-1、210-2、…、210-N,或可为先前结合图2所描述的存储器装置210-1、210-2、…、210-N的部分。在一些实施例中,存储器400-1及400-3可包含类似于先前结合图1所描述的存储器阵列100的数个存储器阵列。
如图4B中所展示,存储器400-1、400-3是执行垃圾收集的绘示。如上文联合图4A所描述,第一数据单元“1”可由主机存储在与列432-2的PA 432-1相关联的第一块中,第二数据单元“2”可由主机存储在与存储器块的列434-2的PA 432-2(例如“2”)相关联的第二块中。可按第二次序且在存储第一数据单元之后存储第二数据单元“2”。可在SLC模式中将第三数据单元“3”到第九数据单元“9”存储在存储器块的列434-2的第三块(与PA 432-3(例如“3”)相关联)到第九块(与PA 432-9(例如“9”)相关联)中。可按从第三到第九的递增次序且在第一数据单元及第二数据单元之后存储第三数据单元到第九数据单元。
随着存储器的数据存储容量变得有限,在动态SLC高速缓冲存储方法中,可最初在XLC模式中写入额外主机数据。例如,如图4A中所绘示,可在XLC模式中将第十数据单元“10”、第十一数据单元“11”及第十二数据单元“12”存储在与PA 432-10(例如“10”)相关联的列434-2的第十块中。例如,第十数据单元“10”可为第十块的上页数据单元,第十一数据单元“11”可为第十块的中间页数据单元,且第十二数据单元“12”可为第十块的下页数据单元。可在XLC模式中将第十三数据单元“13”、第十四数据单元“14”及第十五数据单元“15”存储在与PA 432-11(例如“11”)相关联的列434-2的第十一块中。例如,第十三数据单元“13”可为第十一块的上页数据单元,第十四数据单元“14”可为第十一块的中间页数据单元,且第十五数据单元“15”可为第十一块的下页数据单元。
可对存储在存储器400-1中的数据执行436-2处所绘示的垃圾收集,且所述垃圾收集产生如存储器400-3中所绘示而存储的数据。例如,随着436-2处所绘示的垃圾收集开始,第一数据单元“1”及第二数据单元“2”可被垃圾收集以通过在XLC模式中存储在第一块中来释放列434-5及434-6中与PA 432-1(例如“1”)相关联的第一块中的存储器空间。随着由主机发送第十六数据单元“16”,第十六数据单元“16”可在XLC模式中与第一数据单元“1”及第二数据单元“2”一起存储在第一块中。随着垃圾收集释放与PA 432-2(例如“2”)相关联的第一块及第二块两者中的存储器空间,第十七数据单元“17”、第十八数据单元“18”及第十九数据单元“19”从主机被接收,且可在XLC模式中存储在第二块中。此实例绘示释放比被消耗的块多的块的垃圾收集,且在垃圾收集时维持较大数目个顺序块。数据单元“1”、“2”及“16”可在本文中被称为顺序主机数据的第一部分,且数据单元“17”、“18”及“19”可在本文中被称为顺序主机数据的第二部分。数据单元“1”可在本文中被称为第一部分的第一组,且数据单元“2”可在本文中被称为第一部分的第二组。如下文将进一步所描述,更一般来说,第一组可指从不同块(例如与PA1 432-1相关联的“1”及与PA 2 432-2相关联的“2”)收集的数据单元,且第二组可指从主机与第一组的数据单元写入到同一块的数据单元。
为了从主机接收第二十数据单元“20”,通过在XLC模式中将第三数据单元“3”及第四数据单元“4”折叠到第三块中来执行垃圾收集以释放块,如存储器400-3中的PA 432-3(例如“3”)处所绘示。此释放了要存储在第三块中的额外数据单元,如由存储在那里的从主机接收的第二十数据单元“20”所绘示,且还释放了第四块。随着接收第二十一数据单元“21”、第二十二数据单元“22”及第二十三数据单元“23”,其可按顺序存储在第四块中。另外,为了接收第二十四数据单元“24”,折叠第五数据单元及第六数据单元以与第二十四数据单元一起存储在第五块(与PA 432-5(例如“5”))中,且将随后接收的第二十五数据单元、第二十六数据单元及第二十七数据单元按顺序存储在第六块(与PA 432-6(例如“6”))中。此外,为了接收第二十八数据单元“28”,将第七数据单元及第八数据单元折叠为在XLC模式中存储在第七块中,且将随后接收的第二十九数据单元“29”及第三十数据单元“30”按顺序存储在第八块(与PA 432-8(例如“8”))中。
以此方式,与先前以非顺序方式存储数据单元“2”、“18”及“19”(如图4A中所绘示)相比,全块(第二块)是顺序的且不包含非顺序数据单元。另外,数据单元“3”、“4”及“20”经合并以存储在与PA 432-3(例如“3”)相关联的第三块中,数据单元“21”、“22”及“23”经合并以存储在与PA 432-4(例如“4”)相关联的第四块中,以此类推,直到将数据单元“29”及“30”存储在与PA 432-8(例如“8”)相关联的第八块中。数据单元“9”到“15”保持存储在与PA432-9(例如“9”)到PA 432-11(例如“11”)相关联的第九块到第十一块中。以此方式,第二块、第四块、第六块、第八块、第十块及第十一块存储顺序数据。
图5A到5C各自绘示根据本发明的数个实施例的存储数据的各种部分的存储器的图解。图5A绘示包含七个存储器块560-0到560-6(其被称为动态SLC高速缓冲存储器)的存储器。然而,此实例不限于七个存储器块。如所绘示,每一存储器块包含被绘示为563-1、563-2及563-3的三个存储器单元。每一存储器单元可在XLC模式中存储高达三个数据单元(例如数据位),被绘示为与第零块560-0的第一存储器单元563-1的上页位相关联的数据位置562-0、与第零块560-0的第一存储器单元563-1的中间页位相关联的数据位置562-1,及与第零块560-0的第一存储器单元563-1的下页位相关联的数据位置562-2。数据位置562-3与第零块560-0的第二存储器单元563-2的上页位相关联,数据位置562-4与第零块560-0的第二存储器单元563-2的中间页数据位相关联,且数据位置562-5与第零块560-0的第二存储器单元563-2的下页位相关联。数据位置562-6与第零块560-0的第三存储器单元563-3的上页位相关联,数据位置562-7与第零块560-0的第三存储器单元563-3的中间页位相关联,且数据位置562-8与第零块560-0的第三存储器单元563-3的下页位相关联。数据单元可在存储在第零块560-0中时为逻辑上顺序的。例如,将数据单元“1”存储在最左位置(最高有效位(MSB)位置)562-0中,将数据单元“2”存储在第二MSB位置562-1中,将数据单元“3”存储在第三MSB位置562-2中,以此类推,直到将数据单元“9”存储在最低有效位(LSB)位置562-8中,以填充第零块560-0。
以类似方式,可将数据单元“10”到“18”逻辑上顺序存储在三个存储器单元563-1(与数据位置562-0到562-2相关联)、563-2(与数据位置562-3到562-4相关联)及563-3(与数据位置562-6到562-8相关联)中的第一块560-1中。可将数据单元“19”到“27”逻辑上顺序存储在第二块560-2中,可将数据单元“28”到“36”逻辑上顺序存储在第三块560-3中,且可将数据单元“37”到“42”逻辑上顺序存储在第四块560-4中。第五块560-5及第六块560-6可为自由的(例如空白的)且可用于存储额外数据单元。
图5B绘示包含七个存储器块560-0到560-6的存储器。图5B是从主机发送到存储器的数据的首次填充的实例,其包含擦除先前数据。例如,将数据单元“1”到“3”写入到第四块560-4的第三存储器单元563-3。将数据单元“4”到“12”写入到第五块560-5的第三存储器单元563-3。由于先前将数据单元“1”到“12”写入到第零块560-0及第一块560-1,因此所述数据单元被覆写(在图5B中被指示为删除线)且现在自由地被写入。
图5C绘示包含七个存储器块560-0到560-6的存储器。图5C是将数据单元“13”到“21”写入到第六块560-6的主机数据的实例。随着写入数据单元“13”到“21”,先前写入到第一块560-1及第二块560-2的数据单元“13”到“21”现在为无效的且可被覆写(如由删除线所指示)。
图5D绘示包含七个存储器块560-0到560-6的存储器。图5D是将数据单元“22”到“30”写入到第零块560-0的主机数据的实例。随着写入数据单元“22”到“30”,先前写入到第二块560-2及第三块560-3的数据单元“22”到“30”现在为无效的且可被覆写(如由删除线所指示)。
图5E绘示包含七个存储器块560-0到560-6的存储器。图5E是将数据单元“31”到“39”写入到第一块560-1的主机数据的实例。随着写入数据单元“31”到“39”,第一块560-1及第二块560-2中的先前写入的数据单元“13”到“21”现在为无效的且可被覆写(如由删除线所指示)。
图5F绘示包含七个存储器块560-0到560-6的存储器。图5F是将数据单元“40”到“42”写入到第二块560-2的主机数据的实例。随着写入数据单元“40”到“42”,先前写入到第四块560-4的数据单元“40”到“42”可被覆写(如由删除线所指示)。以此方式,随着将主机数据写入到存储器块,自由存储器块置于其之前,且无需在XLC模式中写入时进行垃圾收集。然而,在一些实施例中,主机可限于最初在SLC模式中写入,这会使更难以在避免垃圾收集时维持足够块空间。
图6A到6I各自绘示根据本发明的数个实施例的存储数据的各种部分的存储器的图解。图6A到6I是强制SLC模式高速缓冲存储器的实例。例如,最初在SLC模式中存储从主机发送到存储器块的数据。为了释放额外存储器空间,在SLC模式中存储的数据可在由主机进行初始存储之后被垃圾收集到XLC模式中。在一些实施例中,固件可选择具有最少量的有效数据的块且将其重新定位到XLC块以释放存储器。由主机在SLC模式中写入的数据可被垃圾收集以在XLC模式中进行存储。在XLC模式中写入的数据还可被垃圾收集以按逻辑上顺序方式对数据排序或将数据重新组织为更有效。
根据本发明的实例实施例包含优化垃圾收集方法。这是通过基于有效数据的量及块型式(例如SLC块或XLC块)对块排序来完成。可通过响应于具有最低有效数据的块(例如最低有效块(LV块)、最无效块(MV块)、底部块)处于SLC模式而选择用于垃圾收集的块来选择存储器块用于垃圾收集。响应于最低有效块处于XLC模式而检查块列表中的下一块。例如,最低有效块可指具有较大量的无效数据的块。下一块可为具有次多无效数据的下一最低有效块。响应于下一最低有效块也处于XLC模式而选择最低有效块。响应于下一最低有效块处于SLC模式而选择下一最低有效块。以此方式,可执行选择用于垃圾收集的块的有效方法。
图6A绘示根据本发明的数个实施例的存储数据的各种部分的存储器的图解。图6A是在SLC模式中存储在七个存储器块664-0到664-6中的数据单元(例如数据位)“1”到“18”的实例。例如,将数据单元“1”到“3”存储在第零块664-0中,将数据单元“4”到“6”存储在第一块664-0中,将数据单元“7”到“9”存储在第二块664-2中,将数据单元“10”到“12”存储在第三块664-3中,将数据单元“13”到“15”存储在第四块664-4中,将数据单元“16”到“18”存储在第五块664-5中,且第六块664-6是自由的且准备好供写入。然而,为了写入到额外块,在一些实例中,存储器系统(例如存储器系统204)可能要求至少一个块是空白的且能够被写入以写入到额外块。例如,在图6A中,除第六块664-6以外,额外存储器块还将需要为可写入的,以写入到第六块664-6。
图6B绘示根据本发明的数个实施例的存储数据的各种部分的存储器的图解。图6B是经执行以释放额外块来供主机写入的第一垃圾收集的实例。随着执行垃圾收集,可将在SLC模式中存储的数据转换成在XLC模式中存储的数据。如图6B中所绘示,数据单元“1”到“9”被垃圾收集以从在SLC模式中存储在第零块664-0到第二块664-2中转换成在XLC模式中存储在第六块664-6中。
出于说明性目的,针对所有图6A到6J,具有三个方格的存储器块绘示处于SLC模式的三个存储器单元,例如在图6B中,其中列660-0到666-2中的存储器单元位于第零块664-0中且处于SLC模式。如图6B中所绘示,具有九个方格的存储器块绘示各自包含三个数据单元(上页、中间页及下页)的在XLC模式中的三个存储器单元,例如在图6B中,第六块664-6包含与第一存储器单元的数据单元位置666-0相关联的上页数据单元、与第一存储器单元的数据单元位置666-1相关联的中间页数据单元,及与第一存储器单元的数据单元位置666-2相关联的下页数据单元。此外,数据单元位置666-3到666-5与第二存储器单元相关联,且数据单元位置666-6到666-8与第三存储器单元相关联。随着数据单元“1”到“9”被垃圾收集以存储在第六块664-6中,先前存储在第零块664-0到第二块664-2中的数据单元“1”到“9”可被指示为无效的且被覆写(以删除线绘示)。
图6C绘示根据本发明的数个实施例的存储数据的各种部分的存储器的图解。图6C是写入到第零块664-0及第一块664-1的额外数据单元“19”到“24”的实例。由于这仅留下第二块664-2作为供写入的空白块,因此可执行第二垃圾收集以释放额外块来供主机写入。随着执行垃圾收集,可将在SLC模式中存储在第三块664-3到第五块664-5中的数据单元“10”到“18”转换成在XLC模式中存储在第二块664-2中的数据。先前存储的数据单元“10”到“18”可被指示为无效的且被覆写(由删除线指示)。
图6D绘示根据本发明的数个实施例的存储数据的各种部分的存储器的图解。图6D是在SLC模式中由主机写入到第三块664-3及第四块664-4的额外数据单元“25”到“30”的实例。由于这仅留下第五块664-5作为供写入的空白块,因此可执行第三垃圾收集以释放额外块来供主机写入。随着执行垃圾收集,可将在SLC模式中存储在第零块664-0、第一块664-1及第三块664-3中的数据单元“19”到“27”(包含最新写入的数据单元“25”到“27”)转换成在XLC模式中存储在第五块664-5中的数据。先前存储的数据单元“19”到“27”可被指示为无效的且被覆写(由删除线指示)。
图6E绘示根据本发明的数个实施例的存储数据的各种部分的存储器的图解。图6E是在SLC模式中由主机写入到第零块664-0及第一块664-1的额外数据单元“31”到“36”的实例。由于这仅留下第三块664-3作为供写入的空白块,因此可执行第四垃圾收集以释放额外块来供主机写入。图6F绘示根据本发明的数个实施例的存储数据的各种部分的存储器的图解。图6F是第四垃圾收集的实例,其经执行以可将在SLC模式中存储在第四块664-4、第零块664-0及第一块664-1中的数据单元“28”到“36”(包含最新写入的数据单元“31”到“36”)转换成在XLC模式中存储在第三块664-3中的数据。先前存储的数据单元“28”到“36”可被指示为无效的且被覆写(由删除线指示)。
图6G绘示根据本发明的数个实施例的存储数据的各种部分的存储器的图解。图6G是在SLC模式中由主机分别写入到第四块664-4及第零块664-0的额外数据单元“37”到“42”的实例。这仅留下第一块664-1作为供写入的空白块。图6H绘示根据本发明的数个实施例的存储数据的各种部分的存储器的图解。图6H是可经执行以释放额外块(例如第零块664-0及第四块664-4)来供主机写入的第五垃圾收集的实例。随着执行垃圾收集,可将在SLC模式中存储在第四块664-4及第零块664-0中的数据单元“37”到“42”转换成在XLC模式中存储在第一块664-1中的数据。先前存储在第四块664-4及第零块664-0中的数据单元“37”到“42”可被指示为无效的且被覆写(由删除线指示)。
图6I绘示根据本发明的数个实施例的存储数据的各种部分的存储器的图解。图6I是在SLC模式中由主机写入到第四块664-4的额外数据单元“42”到“45”的实例。在第六垃圾收集结束时,由主机发送以存储在存储器块中的所有45个数据单元已存储在七个存储器块中,而未将存储器系统发送到写入保护模式中。由于这仅留下第零块664-0作为供写入的空白块,因此可执行第六垃圾收集以释放额外块来供主机写入,如联合图6J所描述。
图6J绘示根据本发明的数个实施例的存储数据的各种部分的存储器的图解。如图6J中所展示,第六垃圾收集包含将在SLC模式中存储在第四块664-4中的数据单元“43”到“45”转换成在XLC模式中与列666-6、666-7及666-8相关联地存储在第一块664-1中。先前存储的数据单元“43”到“45”可被指示为无效的且被覆写(由删除线指示)。此外,如图6J中所展示,在第六垃圾收集之后,可在SLC模式中将新写入的数据单元“1”、“2”及“3”写入到第零块664-0。由于这仅留下第零块664-0作为供写入的空白块,因此可执行第六垃圾收集以释放额外块来供主机写入,如联合图6K所描述。
图6K绘示根据本发明的数个实施例的存储数据的各种部分的存储器的图解。如图6K中所展示,第七垃圾收集包含将在SLC模式中存储在第零块664-0中的数据单元“1”到“3”转换成在SLC模式中存储在第四块664-4中。先前存储的数据单元“1”到“3”可被指示为无效的且被覆写(由第零块664-0中的删除线指示)。
图6L绘示根据本发明的数个实施例的存储数据的各种部分的存储器的图解。如图6L中所展示,将新写入的数据单元“4”到“6”写入到第零块664-0。第六块664-6中的先前写入的数据单元“4”到“6”现在为无效的且被覆写(如由删除线所指示)。由于这未留下空白块且留下部分无效的第六块664-6,因此可执行垃圾收集。然而,确定是否对第零块664-0或第六块664-6进行垃圾收集。由于第六块664-6是较旧数据,因此一些先前方法可选择第六块664-6来进行垃圾收集。这些先前方法可导致对最近已经垃圾收集的数据进行垃圾收集。对于顺序数据模式,对此最近垃圾收集的数据进行垃圾收集可能会降低系统性能。这可能是由于主机数据被垃圾收集到XLC块,所述XLC块接着被自动地覆写,但恰好在其将要被覆写之前被垃圾收集。例如,对可随后在不久的将来再次被垃圾收集的存储在XLC块中的“折叠”数据进行垃圾收集可能会降低系统性能。这可通过选择源块用于垃圾收集来避免,所述源块在可能时为SLC块而非XLC块,以降低其将在不久的将来再次被垃圾收集的可能性。
为了在可能时实现选择SLC块而非XLC块用于垃圾收集,根据本文中的描述,可基于最低有效(“LV”)块(在此实例中为第六块664-6)处于SLC模式还是TLC模式来作出确定。如果LV块处于SLC模式,那么对最低有效块进行垃圾收集。然而,如果LV块(664-6)处于TLC模式,那么执行下一LV块(在此实例中为第零块664-0)处于SLC模式还是TLC模式的确定。由于LV块(664-6)处于TLC模式且下一LV块(664-0)处于SLC模式,因此选择下一LV块(664-0)用于垃圾收集。图7绘示根据本发明的数个实施例的用于存储器管理的实例流程图707。流程图707可包含:在790处,按存储器块内的有效数据的量对块排序。例如,随着将数据从主机写入到存储器块,可针对存储器的多个混合模式块中的每一者指示无效(例如冗余)数据的量。可相较于具有更少冗余(且因此更少无效及更多有效)数据的块对用更多冗余(且因此更多无效)数据填充的块排序。
在791处,可基于下一块的模式(例如SLC模式或XLC模式)的确定来选择用于垃圾收集的下一块。下一块可指具有次高数量的无效数据的块。在792处,可执行最低有效(“LV”)块是否处于SLC模式的确定。响应于最低有效块处于SLC模式而选择最低有效块作为要被垃圾收集的下一块。在793处,可执行最低有效块是否处于XLC模式的确定。响应于最低有效块处于XLC模式而检查下一最低有效(“LV”)块。在794处,响应于下一最低有效块处于XLC模式而选择最低有效块用于垃圾收集。在795处,响应于下一最低有效块处于SLC模式而选择下一最低有效块用于垃圾收集。以此方式,可选择存储器块用于垃圾收集,其最有效地提供额外存储器空间,而不减慢处理资源且使用较少资源。
尽管已在本文中绘示及描述了具体实施例,但所属领域的一般技术人员将了解,经计算以实现相同结果的布置可取代所展示的具体实施例。本发明意图涵盖本发明的数个实施例的调适或变动。应理解,已以说明性而非限制性方式进行上文描述。所属领域的一般技术人员将在审查上文描述后就明白上述实施例的组合及本文中未具体描述的其它实施例。本发明的数个实施例的范围包含其中使用上述结构及方法的其它应用。因此,应参考所附权利要求书以及此权利要求书所授权的等效物的全范围来确定本发明的数个实施例的范围。
在前文具体实施方式中,为了简化本发明而将一些特征一起分组在单个实施例中。本发明的方法不应被解释为反映本发明的所揭示实施例必须使用比每一权利要求中明确叙述的特征多的特征的意图。确切来说,如所附权利要求书所反映,发明主题旨在具有单个所揭示实施例的非所有特征。因此,所附权利要求书由此并入到具体实施方式中,其中每一权利要求自身独立作为单独实施例。

Claims (23)

1.一种设备,其包括:
存储器,其包括多个混合模式块;
控制器,其经配置以:
在单级存储器单元SLC模式中将顺序主机数据的第一部分写入到所述存储器的所述多个混合模式块;及
在XLC模式中将顺序主机数据的第二部分写入到所述多个混合模式块;
其中写入顺序主机数据的所述第二部分包含执行垃圾收集操作,所述垃圾收集操作包含将比与将顺序主机数据的所述第二部分写入到所述多个混合模式块相关联地被写入到的块的数量多的块添加到自由块池。
2.根据权利要求1所述的设备,其中所述控制器经配置以执行所述垃圾收集操作包括所述控制器经配置以执行引起所述多个混合模式块的至少一半是逻辑上顺序的垃圾收集操作。
3.根据权利要求1到2中任一权利要求所述的设备,其中所述控制器经配置以通过对存储在所述多个混合模式块的第一块中的第一组数据及存储在所述多个混合模式块的第二块中的第二组数据进行垃圾收集且将所述第一组及所述第二组写入到所述第一块,对顺序主机数据的所述第一部分进行垃圾收集。
4.根据权利要求3所述的设备,其中所述第一组数据及所述第二组数据相对于彼此是逻辑上顺序的。
5.根据权利要求3所述的设备,其中所述控制器经进一步配置以将第三组主机数据写入到所述第一块,其中所述第一块存储所述第一组、所述第二组及所述第三组。
6.根据权利要求5所述的设备,其中所述第三组相对于所述第一组及所述第二组不是逻辑上顺序的。
7.根据权利要求6所述的设备,其中存储所述第一组、所述第二组及所述第三组的所述第一块是逻辑上分段块。
8.根据权利要求5所述的设备,其中所述控制器经进一步配置以将第四组主机数据写入到所述第二块。
9.根据权利要求8所述的设备,其中存储所述第四组的所述第二块是逻辑上顺序的。
10.根据权利要求8所述的设备,其中所述第四组包括三个数据单元,且其中所述三个数据单元相对于彼此是逻辑上顺序的。
11.一种方法,其包括:
在单级存储器单元SLC模式中将主机数据的第一部分写入到存储器的多个混合模式块;
在额外级存储器单元XLC模式中将主机数据的第二部分写入到所述多个混合模式块;
其中写入主机数据的所述第二部分包括执行垃圾收集操作,所述垃圾收集操作包含将所述第一部分的至少两个数据单元与所述第二部分的至少一个数据单元折叠到同一块中。
12.根据权利要求11所述的方法,其包括在XLC模式中将主机数据的第三部分写入到先前存储了所述第一部分的所述至少两个数据单元中的一者的块。
13.根据权利要求11所述的方法,其中写入数据的所述第二部分包括响应于阈值数目个块是空白的而对在SLC模式中存储的第一块及第二块进行垃圾收集以在XLC模式中存储在所述第一块中。
14.根据权利要求13所述的方法,其中写入数据的所述第二部分包括将主机数据写入到所述第二块,其中响应于在存在所述阈值数目个空白块时发送所述主机数据而触发所述垃圾收集操作。
15.一种设备,其包括:
存储器,其包括多个混合模式块;
控制器,其经配置以:
在单级存储器单元SLC模式中将顺序主机数据写入到所述存储器的所述多个混合模式块;及
对存储在所述多个混合模式块中的至少一者中的所述顺序主机数据的一部分数据执行垃圾收集操作,且响应于所述多个混合模式块的阈值数量的混合模式块存储有效数据而在XLC模式中存储所述一部分数据。
16.根据权利要求15所述的设备,其中所述控制器经配置以基于所述多个混合模式块中的每一者中的有效数据的量的确定来确定应对所述一部分数据执行所述垃圾收集操作。
17.根据权利要求15所述的设备,其中所述控制器经配置以基于特定块是否为SLC模式块的确定来确定所述顺序主机数据的哪一组数据要执行所述垃圾收集操作。
18.根据权利要求17所述的设备,其中所述控制器经配置以响应于所述特定块是XLC模式块的确定而确定具有下一最多量的无效数据的下一最低有效块是否为XLC模式块。
19.根据权利要求18所述的设备,其中所述控制器经配置以:
响应于确定所述下一最低有效块是XLC模式块而选择所述特定块以对其执行所述垃圾收集;及
响应于确定所述下一最低有效块是SLC模式块而选择所述下一最低有效以对其执行所述垃圾收集。
20.一种方法,其包括:
在单级存储器单元SLC模式中将顺序主机数据写入到存储器的多个混合模式块;
响应于所述多个混合模式块中能够被写入到的块的数量达到阈值数量而对所述多个混合模式块中的至少一者执行垃圾收集操作;
其中基于与所述多个混合模式块中的每一者相关联的有效数据的量来选择所述多个混合模式块中的所述至少一者用于执行所述垃圾收集操作。
21.根据权利要求20所述的方法,其中基于所述多个混合模式块中的所述至少一者是否处于SLC模式来选择所述多个混合模式块中的所述至少一者。
22.根据权利要求20到21中任一权利要求所述的方法,其中基于响应于具有最高数量的无效数据的块是XLC模式块而确定次高无效数据块是否为SLC模式块来选择所述多个混合模式块中的所述至少一者。
23.根据权利要求22所述的方法,其中:
响应于所述次高无效数据块处于XLC模式而选择所述最高数量的无效数据块;及
响应于所述次高无效数据块是SLC模式块而选择所述次高无效数据块。
CN201880030170.0A 2017-04-04 2018-03-16 垃圾收集 Active CN110603531B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/478,631 2017-04-04
US15/478,631 US10380018B2 (en) 2017-04-04 2017-04-04 Garbage collection
PCT/US2018/022804 WO2018187016A1 (en) 2017-04-04 2018-03-16 Garbage collection

Publications (2)

Publication Number Publication Date
CN110603531A true CN110603531A (zh) 2019-12-20
CN110603531B CN110603531B (zh) 2022-10-04

Family

ID=63671799

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880030170.0A Active CN110603531B (zh) 2017-04-04 2018-03-16 垃圾收集

Country Status (6)

Country Link
US (3) US10380018B2 (zh)
EP (1) EP3607449B1 (zh)
KR (1) KR102382887B1 (zh)
CN (1) CN110603531B (zh)
TW (1) TWI676132B (zh)
WO (1) WO2018187016A1 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180165037A1 (en) * 2015-04-23 2018-06-14 Hewlett Packard Enterprise Development Lp Storage Reclamation in a Thin Provisioned Storage Device
US10732838B2 (en) * 2017-11-29 2020-08-04 Western Digital Technologies, Inc. Logical grouping for hybrid dual write
KR20190091035A (ko) * 2018-01-26 2019-08-05 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US10733114B2 (en) * 2018-08-28 2020-08-04 International Business Machines Corporation Data cache performance
KR102516246B1 (ko) * 2018-10-29 2023-03-30 마이크론 테크놀로지, 인크. Slc 캐시 할당
KR102593541B1 (ko) * 2018-11-29 2023-10-25 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
CN111562880A (zh) * 2019-02-14 2020-08-21 英韧科技(上海)有限公司 一种数据存储装置、系统及数据写入方法
JP7401193B2 (ja) * 2019-04-17 2023-12-19 キヤノン株式会社 情報処理装置及びその制御方法並びにプログラム
CN112100087B (zh) 2019-06-17 2024-04-02 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112099985B (zh) 2019-06-17 2023-09-12 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112130750B (zh) 2019-06-25 2023-11-07 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112130749B (zh) * 2019-06-25 2023-12-22 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
TWI688956B (zh) * 2019-08-28 2020-03-21 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
CN112445418B (zh) * 2019-09-05 2023-02-24 群联电子股份有限公司 存储器控制方法、存储器存储装置及存储器控制电路单元
CN111177021A (zh) * 2019-12-04 2020-05-19 东信和平科技股份有限公司 Java卡碎片管理方法及其存储装置
US11640262B2 (en) * 2020-05-07 2023-05-02 Micron Technology, Inc. Implementing variable number of bits per cell on storage devices
KR20210144249A (ko) 2020-05-22 2021-11-30 에스케이하이닉스 주식회사 저장 장치 및 이의 동작 방법
JP2022030146A (ja) 2020-08-06 2022-02-18 キオクシア株式会社 メモリシステムおよび書き込み制御方法
US11354052B2 (en) * 2020-08-25 2022-06-07 Micron Technology, Inc. Memory sub-system media management operation threshold
US11467763B2 (en) * 2021-01-20 2022-10-11 Micron Technology, Inc. Valid data aware media reliability scanning for memory sub-blocks
US11599286B2 (en) * 2021-06-03 2023-03-07 Micron Technology, Inc. Data age and validity-based memory management
US11520510B1 (en) 2021-07-21 2022-12-06 International Business Machines Corporation Extending the lifespan of a flash-based storage device
US11593032B1 (en) * 2021-08-06 2023-02-28 Micron Technology, Inc. Memory sub-system data migration
KR20230059911A (ko) 2021-10-26 2023-05-04 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US11875061B2 (en) * 2022-04-22 2024-01-16 Micron Technology, Inc. Enhanced write performance utilizing program interleave
US11960722B2 (en) * 2022-07-25 2024-04-16 Micron Technology, Inc. Memory device programming technique for increased bits per cell
JP2024043337A (ja) 2022-09-16 2024-03-29 キオクシア株式会社 メモリシステム
US20240302957A1 (en) * 2023-03-10 2024-09-12 Western Digital Technologies, Inc. Protocol for solid state drive with high quality of service

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101266828A (zh) * 2008-03-25 2008-09-17 祥硕科技股份有限公司 混合型闪存存储装置及其操作方法
US20120005415A1 (en) * 2010-07-02 2012-01-05 Samsung Electronics Co., Ltd. Memory system selecting write mode of data block and data write method thereof
WO2012158514A1 (en) * 2011-05-17 2012-11-22 Sandisk Technologies Inc. Non-volatile memory and method with small logical groups distributed among active slc and mlc memory partitions
US20130282955A1 (en) * 2012-04-19 2013-10-24 Liam M. Parker System and method for limiting fragmentation
US20140003142A1 (en) * 2012-06-29 2014-01-02 Samsung Electronics Co., Ltd. Nonvolatile memory device performing garbage collection
CN104126178A (zh) * 2011-12-29 2014-10-29 桑迪士克科技股份有限公司 Slc-mlc损耗平衡
US8886877B1 (en) * 2014-05-15 2014-11-11 Sandisk Technologies Inc. In-situ block folding for nonvolatile memory
US20150085572A1 (en) * 2012-04-09 2015-03-26 Sk Hynix Memory Solutions Inc. Storage of read thresholds for nand flash storage using linear approximation
US20160098213A1 (en) * 2014-10-03 2016-04-07 International Business Machines Corporation Hybrid storage system employing reconfigurable memory

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8078794B2 (en) 2000-01-06 2011-12-13 Super Talent Electronics, Inc. Hybrid SSD using a combination of SLC and MLC flash memory arrays
US6732221B2 (en) 2001-06-01 2004-05-04 M-Systems Flash Disk Pioneers Ltd Wear leveling of static areas in flash memory
KR100877104B1 (ko) 2007-06-26 2009-01-07 주식회사 하이닉스반도체 멀티 레벨 셀 플래시 메모리소자의 프로그램 방법
US8639877B2 (en) 2009-06-30 2014-01-28 International Business Machines Corporation Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks
WO2012060824A1 (en) 2010-11-02 2012-05-10 Hewlett-Packard Development Company, L.P. Solid-state disk (ssd) management
US9176864B2 (en) 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
US8832506B2 (en) 2012-01-20 2014-09-09 International Business Machines Corporation Bit error rate based wear leveling for solid state drive memory
US9146851B2 (en) 2012-03-26 2015-09-29 Compellent Technologies Single-level cell and multi-level cell hybrid solid state drive
US10359933B2 (en) * 2016-09-19 2019-07-23 Micron Technology, Inc. Memory devices and electronic systems having a hybrid cache including static and dynamic caches with single and multiple bits per cell, and related methods
US10452282B2 (en) * 2017-04-07 2019-10-22 Micron Technology, Inc. Memory management
US10956317B2 (en) * 2019-02-11 2021-03-23 International Business Machines Corporation Garbage collection in non-volatile memory that fully programs dependent layers in a target block

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101266828A (zh) * 2008-03-25 2008-09-17 祥硕科技股份有限公司 混合型闪存存储装置及其操作方法
US20120005415A1 (en) * 2010-07-02 2012-01-05 Samsung Electronics Co., Ltd. Memory system selecting write mode of data block and data write method thereof
WO2012158514A1 (en) * 2011-05-17 2012-11-22 Sandisk Technologies Inc. Non-volatile memory and method with small logical groups distributed among active slc and mlc memory partitions
CN104126178A (zh) * 2011-12-29 2014-10-29 桑迪士克科技股份有限公司 Slc-mlc损耗平衡
US20150085572A1 (en) * 2012-04-09 2015-03-26 Sk Hynix Memory Solutions Inc. Storage of read thresholds for nand flash storage using linear approximation
US20130282955A1 (en) * 2012-04-19 2013-10-24 Liam M. Parker System and method for limiting fragmentation
US20140003142A1 (en) * 2012-06-29 2014-01-02 Samsung Electronics Co., Ltd. Nonvolatile memory device performing garbage collection
US8886877B1 (en) * 2014-05-15 2014-11-11 Sandisk Technologies Inc. In-situ block folding for nonvolatile memory
US20160098213A1 (en) * 2014-10-03 2016-04-07 International Business Machines Corporation Hybrid storage system employing reconfigurable memory

Also Published As

Publication number Publication date
US11416391B2 (en) 2022-08-16
US20210133099A1 (en) 2021-05-06
TW201842444A (zh) 2018-12-01
US10380018B2 (en) 2019-08-13
US10949344B2 (en) 2021-03-16
CN110603531B (zh) 2022-10-04
EP3607449A1 (en) 2020-02-12
WO2018187016A1 (en) 2018-10-11
KR20190127980A (ko) 2019-11-13
EP3607449A4 (en) 2020-12-16
US20180285258A1 (en) 2018-10-04
EP3607449B1 (en) 2022-06-29
US20190272098A1 (en) 2019-09-05
KR102382887B1 (ko) 2022-04-06
TWI676132B (zh) 2019-11-01

Similar Documents

Publication Publication Date Title
CN110603531B (zh) 垃圾收集
US11586357B2 (en) Memory management
JP5728672B2 (ja) ハイブリッドメモリ管理
US8762629B2 (en) Data conditioning to improve flash memory reliability
JP5823875B2 (ja) 固体メモリフォーマッティング
US11288019B2 (en) Memory management method and storage controller
US10754585B2 (en) Method for performing writing management in a memory device, and associated memory device and controller thereof
US8694748B2 (en) Data merging method for non-volatile memory module, and memory controller and memory storage device using the same
US8943264B2 (en) Data storing method, and memory controller and memory storage apparatus using the same
US9830077B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US10896004B2 (en) Data storage device and control method for non-volatile memory, with shared active block for writing commands and internal data collection
KR20220130526A (ko) 메모리 시스템 및 그 동작 방법
CN112988069A (zh) 存储器管理方法、存储器存储装置及存储器控制器
US20200394134A1 (en) Data storage device and operating method thereof
US20240143187A1 (en) Storage device, controller and method for performing global wear-leveling
US20240354019A1 (en) Storage device distibuting bad memory units in super memory block and operating method of the storage device
US20210406169A1 (en) Self-adaptive wear leveling method and algorithm
CN116737059A (zh) 快闪存储器控制器的控制方法、快闪存储器控制器以及电子装置
CN113253917A (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