CN112835811A - 存储器系统及其操作方法 - Google Patents
存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN112835811A CN112835811A CN202011031236.3A CN202011031236A CN112835811A CN 112835811 A CN112835811 A CN 112835811A CN 202011031236 A CN202011031236 A CN 202011031236A CN 112835811 A CN112835811 A CN 112835811A
- Authority
- CN
- China
- Prior art keywords
- target
- memory
- block
- valid
- superblock
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0261—Garbage collection, i.e. reclamation of unreferenced memory using reference counting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及一种控制器的操作方法,该操作方法包括:当确定执行垃圾收集(GC)时,基于完全编程的多个超级块中的每一个的第一有效页面计数,在多个超级块之中选择待执行GC的目标超级块;基于目标超级块中的多个存储块中的每一个的第二有效页面减少量,在多个存储块之中选择第一目标块;以及对第一目标块中的有效页面执行第一复制操作。
Description
相关申请的交叉引用
本申请要求于2019年11月25日提交的、申请号为10-2019-0152272的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
各个实施例涉及一种存储器系统及其操作方法,并且更特别地,涉及一种能够提高存储器装置的存储效率的存储器系统及其操作方法。
背景技术
近来,计算环境的范例已经转变为使得能够随时随地访问计算机系统的普适计算。因此,诸如移动电话、数码相机、笔记本电脑等的便携式电子装置的使用正在迅速增长。这种便携式电子装置通常使用或者包括使用或嵌入至少一个存储器装置的存储器系统,即数据存储装置。数据存储装置可以用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘不同,使用非易失性半导体存储器装置的数据存储装置的优点在于,该数据存储装置由于不具有机械驱动部件(例如,机械臂)而具有优异的稳定性和耐久性,并且具有高数据访问速度和低功耗。在具有这种优点的存储器系统的情况下,示例性数据存储装置包括USB(通用串行总线)存储器装置、具有各种接口的存储卡、固态驱动器(SSD)等。
发明内容
各个实施例针对一种存储器系统及其操作方法,该存储器系统可以基于各自的存储块的有效页面减少量来不同地设置对存储块的有效数据迁移操作的优先级,因此减少低优先级的存储块中的有效页面的数量,从而减少迁移操作对系统造成的负担以及迁移操作所需的时间。
此外,各个实施例针对一种存储器系统及其操作方法,该存储器系统能够基于存储器装置的无效率来确定垃圾收集(GC)的模式。
此外,各个实施例针对一种存储器系统及其操作方法,该存储器系统可以选择超级块作为GC的目标块,从而提高大容量存储器装置的操作效率。
根据实施例,一种控制器的操作方法,包括:当确定执行垃圾收集(GC)时,基于完全编程的多个超级块中的每一个的第一有效页面计数,在该多个超级块之中选择待执行GC的目标超级块;基于目标超级块中的多个存储块中的每一个的第二有效页面减少量,在该多个存储块之中选择第一目标块;以及对第一目标块中的有效页面执行第一复制操作。
该操作可以进一步包括:每当确定执行GC时,计算存储块中的每一个的第二有效页面计数,各自的存储块的第二有效页面计数最近被计算了两次以上;以及基于每个存储块的第二有效页面计数来计算相应的存储块的第二有效页面减少量。
该操作可以进一步包括:当确定执行当前GC时,计算存储块中的每一个的有效页面的第一计数;以及基于第一计数和第二计数来计算存储块中的每一个的第二有效页面减少量,该第二计数代表在确定执行先前GC时相应的存储块中的有效页面的数量。
该操作可以进一步包括:在第一复制操作完成之后,检查多个存储块之中的第二目标块的第二有效页面计数。
该操作可以进一步包括:当第二目标块的第二有效页面计数可以为“0”时,将目标超级块确定为擦除目标超级块,而不对第二目标块中的有效页面执行第二复制操作。
该操作可以进一步包括:在从完成第一复制操作开始经过阈值时间之后,对第二目标块中的有效页面执行第二复制操作;以及将目标超级块确定为擦除目标超级块。
当第二目标块的第二有效页面计数可以等于或大于1且小于阈值时,执行第二复制操作。
该操作可以进一步包括:对擦除目标超级块执行擦除操作。
第一目标块的第二有效页面减少量可以小于参考值,并且第二目标块的第二有效页面减少量可以等于或大于参考值。
在多个存储块之中,第二目标块可以具有最大的第二有效页面减少量。
根据实施例,一种存储器系统的操作方法,该存储器系统具有存储器装置,该操作方法包括:当确定执行垃圾收集(GC)时,基于每个超级块的第一有效页面计数,在多个封闭超级块之中选择待执行GC的目标超级块;当存储器装置中的有效页面的无效率较低时,基于目标超级块中的多个存储块中的每个存储块的第二有效页面减少量,将该多个存储块中的每一个指定为第一目标块或第二目标块;以及在对第二目标块执行第二复制操作之前,对第一目标块执行第一复制操作。
该操作可以进一步包括:每当确定执行GC时,计算存储块中的每一个的第二有效页面计数,各自的存储块的第二有效页面计数最近被计算了两次以上;以及基于每个存储块的第二有效页面计数来计算相应的存储块的第二有效页面减少量。
该操作可以进一步包括:当确定执行当前GC时,计算存储块的每一个中的有效页面的第一计数;以及基于第一计数和第二计数来计算存储块中的每一个的第二有效页面减少量,其中该第二计数代表在确定执行先前GC时相应的存储块中的有效页面的数量。
该操作可以进一步包括:当第二目标块的第二有效页面计数可以为“0”时,将目标超级块确定为擦除目标超级块,而不对第二目标块中的有效页面执行第二复制操作。
该操作可以进一步包括:在从完成第一复制操作开始经过阈值时间之后,对第二目标块中的有效页面执行第二复制操作;以及将目标超级块确定为擦除目标超级块。
当第二目标块的第二有效页面计数可以等于或大于1且小于阈值时,执行第二复制操作。
该操作可以进一步包括:对擦除目标超级块执行擦除操作。
第一目标块的第二有效页面减少量可以小于参考值,并且第二目标块的第二有效页面减少量可以等于或大于参考值。
在多个存储块之中,第二目标块可以具有最高的有效页面减少量。
可以基于超级块中的每一个的有效页面减少量、空闲超级块中的可编程页面的数量以及待执行编程操作的数据的大小中的一个或多个,确定存储器装置中的有效页面的无效率。
该操作可以进一步包括:当存储器装置中的有效页面的无效率可能较高时,对目标超级块执行复制操作;以及将目标超级块确定为擦除目标超级块。
根据实施例,一种存储器系统,包括:存储器装置,包括多个超级块,每个超级块包括多个存储块;以及控制器,适用于在确定执行垃圾收集(GC)时,在待执行GC的目标超级块中包括的多个存储块之中选择第一目标块,并对第一目标块执行第一复制操作,其中控制器基于超级块中的每一个的第一有效页面计数选择目标超级块,并且其中该控制器基于目标超级块中的多个存储块中的每一个的第二有效页面减少量来选择第一目标块。
每当确定执行GC时,该控制器可以基于目标超级块中的存储块中的每一个的第二有效页面计数,计算相应的存储块的第二有效页面减少量,各自的存储块的第二有效页面计数最近被计算了两次以上。
当确定执行当前GC时,该控制器可以计算目标超级块中的存储块中的每一个的有效页面的第一计数,并基于第一计数和第二计数来计算存储块中的每一个的第二有效页面减少量,其中该第二计数代表在确定执行先前GC时目标超级块中相应的存储块中的有效页面的数量。
在第一复制操作完成之后,该控制器可以检查多个存储块之中的第二目标块的第二有效页面计数。
当第二目标块的第二有效页面计数可以为“0”时,该控制器可以将目标超级块确定为擦除目标超级块,而不对第二目标块中的有效页面执行第二复制操作。
该控制器进一步适用于:在从完成第一复制操作开始经过阈值时间之后,对第二目标块中包括的有效页面执行第二复制操作;以及将目标超级块确定为擦除目标超级块。
当第二目标块的第二有效页面计数可以等于或大于1且小于阈值时,该控制器可以执行第二复制操作。
第一目标块的第二有效页面减少量可以小于参考值,并且第二目标块的第二有效页面减少量可以等于或大于参考值。
在目标超级块中的多个存储块之中,第二目标块可以具有最大的有效页面减少量。
根据实施例,一种控制器的操作方法,该操作方法包括:在超级块内确定一个或多个第一目标存储块和一个或多个第二目标存储块;控制存储器装置对一个或多个第一目标存储块中的有效页面执行垃圾收集操作;以及控制存储器装置在对一个或多个第一目标存储块的垃圾收集操作完成之后的设定时间,对保留在一个或多个第二目标存储块中的一个或多个有效页面执行垃圾收集操作,其中第一目标存储块中的每一个的有效页面减少率小于阈值,并且其中第二目标存储块中的每一个的有效页面减少率等于或大于阈值。
附图说明
图1A和图1B分别是用于描述根据实施例的存储器系统和由该存储器系统执行的操作的示图和流程图。
图2是示出根据本发明的实施例的数据处理系统的示意图。
图3是示出根据本发明的另一实施例的数据处理系统的示意图。
图4是示出图2和图3所示的存储器装置的示例的示图。
图5是示出根据实施例的用于选择垃圾收集(GC)模式的方法的示例的流程图。
图6A和图6B是示出根据实施例的存储器装置的状态的示图。
图7是示出根据实施例的用于执行GC的方法的流程图。
图8是示出用于选择待执行GC的目标超级块的方法的示图。
图9是示出针对各自的存储块管理的有效页面的数量和存储块的有效页面减少量的示图。
图10是示出用于将图8的目标超级块中的存储块分类为第一目标块和第二目标块的方法的示图。
图11是示出对图8的目标超级块中的第一目标块执行的数据复制方法的示图。
图12是示出使迁移到图11的第一目标块的有效数据无效的过程的示例的示图。
图13是示出对图11的目标超级块执行GC的擦除操作的过程的示例的示图。
具体实施方式
下面参照附图详细描述实施例。应理解的是,以下描述主要集中于本发明的各个方面和特征;并且省略对已知材料的描述,以免不必要地模糊本发明的主题。在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。术语“实施例”在本文中使用时不一定指所有实施例。
图1A示出了根据实施例的执行垃圾收集(GC)的存储器系统110的示例。图1B示出了图1A所示的存储器系统110执行GC的方法。参照图1A和图1B,描述根据本实施例的存储器系统和由该存储器系统执行的GC过程。
如图1A所示,存储器系统110可以包括控制器130和存储器装置150。
存储器装置150可以包括多个超级块,每个超级块包括多个存储块。多个超级块可以包括目标超级块T_SB、开放超级块OP_SB和空闲超级块FR_SB。
在本实施例中,超级块SB中包括的有效页面的数量简称为“第一有效页面计数nVP_SB”。在本实施例中,超级块SB内的存储块BLK中包括的有效页面的数量简称为“第二有效页面计数nVP_BLK”。在本实施例中,超级块SB中包括的有效页面的减少量简称为“第一有效页面减少量△VP_SB”。在本实施例中,存储块BLK中包括的有效页面的减少量简称为“第二有效页面减少量△VP_BLK”。
在本实施例中,待执行GC的目标超级块T_SB的第一有效页面计数nVP_SB可小于预设目标值。目标超级块T_SB可能在已经完全编程的封闭超级块之中具有最少有效页面。
有效数据和无效数据可以分布在目标超级块T_SB中。存储在目标超级块T_SB中的无效数据可以包括逻辑地址被主机请求改变或未分配的数据。在这种情况下,控制器130可以对存储在目标超级块T_SB中的有效数据执行迁移操作,然后对目标超级块T_SB执行擦除操作,从而确保目标超级块T_SB为空闲超级块FR_SB。与GC的目标块相对应的目标超级块T_SB可以被称为源超级块或牺牲超级块。
空闲超级块FR_SB可以是仅包括已经擦除了数据的经擦除的页面的超级块。开放超级块OP_SB可以包括经擦除的页面和其中编程有数据的经编程的页面。在本实施例中,包括可以编程数据的经擦除的页面的超级块可以被称为开放超级块OP_SB。此外,空闲超级块FR_SB可以用作开放超级块OP_SB,用于对空闲超级块FR_SB进行编程操作。也就是说,开放超级块OP_SB可以是包括可以编程新数据的经擦除的页面的超级块。超级块中包括的存储块可以包括多个页面,并且执行擦除操作的最小单位是存储块。此外,存储块中包括的页面可以包括多个非易失性存储器单元,并且执行编程操作的最小单位是页面。
当对超级块中包括的所有页面完成编程操作时,超级块可以从开放超级块改变为封闭超级块。封闭超级块可以仅包括经编程的页面,并且在没有首先执行擦除操作的情况下不能对其编程新数据。
随着主机请求的数据大小不断增大,存储器系统110基于超级块执行编程操作、擦除操作和读取操作,以增加其操作效率。超级块可以是具有可以以交错的方式执行编程操作和读取操作所在的物理位置的一组存储块。存储器系统110还可以基于超级块执行后台操作,以增加后台操作的效率并减小超级块的元数据(例如,状态信息和映射数据)的大小。因此,根据本实施例的控制器130可以选择待对其执行GC的目标超级块T_SB。也就是说,可以基于超级块执行GC。
根据本实施例的GC可以包括在决定将执行GC操作之后检查各自的封闭超级块的第一有效页面计数nVP_SB。GC可以进一步包括基于各自的封闭超级块的第一有效页面计数nVP_SB选择目标超级块T_SB。GC可以进一步包括迁移分散在目标超级块T_SB中的有效数据。有效数据的迁移操作可以包括将有效数据从目标超级块T_SB复制到可以存储数据的空闲区域中。迁移操作可以包括更新通过复制操作编程的区域的元数据(例如,L2P映射数据)。可以使已经完全执行了迁移操作的目标超级块T_SB无效。被无效的目标超级块T_SB可以变为擦除目标超级块。根据本公开的GC可以进一步包括擦除有效数据已经完全迁移的目标超级块T_SB,以确保空闲块。
根据执行GC的装置,根据本实施例的GC可以是自动的(自动GC)或手动的(手动GC)。在自动GC的情况下,控制器可以在没有主机请求的情况下确定执行GC。在手动GC的情况下,与存储器系统互通的主机可以感测存储器系统的操作状态,并请求存储器系统执行GC。自动GC可以包括在执行数据编程操作时数据存储空间(例如,空闲超级块的数量)不足时执行的运行时GC,以及在存储器系统空闲时对第一有效页面计数nVP_SB相对较低的超级块执行的空闲GC。根据本实施例,控制器130可以确定以设定的频率即固定的时段执行GC。
通过示例,在以下的背景下描述本实施例:一个有效页面可存储单条数据,因此有效页面的数量等于有效数据的条数。然而,本实施例不限于此。
根据本实施例的控制器130可以基于待执行GC的目标超级块T_SB中包括的每个存储块的第二有效页面减少量△VP_BLK,在不同的时间点迁移存储块中的每一个上的有效数据。这可以指示基于目标超级块T_SB中的各自的存储块的有效页面的减少量,在不同时间点对各自的存储块执行有效数据的迁移操作。对于该操作,控制器130可以在执行第二目标块BLK_T2的迁移操作之前执行第一目标块BLK_T1的迁移操作。第一目标块BLK_T1的第二有效页面减少量△VP_BLK小于参考值,该参考值可以预先设置。第二目标块BLK_T2的第二有效页面减少量△VP_BLK等于或大于参考值。
因此,在对第一目标块BLK_T1执行迁移操作时,极有可能使第二目标块BLK_T2中包括的有效页面无效。也就是说,由于第二目标块BLK_T2的第二有效页面减少量△VP_BLK相对较大,因此第二目标块BLK_T2中包括的有效页面很有可能耗尽,因此第二目标块BLK_T2的第二有效页面计数nVP_BLK很有可能会减少。因此,随着第二目标块BLK_T2的第二有效页面计数nVP_BLK减少,对目标超级块T_SB执行迁移操作所需的时间可能减少。
在本发明中,数量和量可以以类似的含义使用。例如,数量的增加可以表示量的增加,数量的减少可以表示量的减少。
当指示与逻辑块相对应的有效数据的存储位置的物理地址由于完成的GC而改变时,可能使物理块的物理地址无效。控制器130可以更新映射数据以将改变后的物理地址而不是被无效的物理地址映射到逻辑地址,从而保持映射数据是最新的。因此,控制器130可以使用通过映射数据管理而保持最新的映射表对存储器装置150执行操作,从而提高存储器装置150的操作速度。
如图1A所示,控制器130可以包括GC组件160、计数器170、计算器190和擦除组件180。计数器170可以保持存储器装置150中的每个存储块BLK的第二有效页面计数nVP_BLK。每当每个存储块BLK的第二有效页面计数nVP_BLK改变时,计数器170可以更新相应的存储块BLK的第二有效页面计数nVP_BLK。
计算器190可以在控制器130的控制下计算目标超级块T_SB中的各自的存储块BLK的第二有效页面减少量△VP_BLK。当在确定执行GC之后选择目标超级块T_SB时,控制器130可以控制计算器190计算目标超级块T_SB中的各自的存储块BLK的第二有效页面减少量△VP_BLK。计算器190可以基于每当确定执行GC时从计数器170接收到的目标超级块T_SB中的存储块BLK的第二有效页面计数nVP_BLK,来计算各个存储块的第二有效页面减少量△VP_BLK。
GC组件160可以包括目标选择器163和数据迁移器167。
目标选择器163可以基于每个超级块SB的第一有效页面计数nVP_SB,在多个封闭超级块之中选择目标超级块T_SB。对于该操作,目标选择器163可以基于超级块,通过对从计数器170接收到的存储块BLK的第二有效页面计数nVP_BLK进行求和来计算第一有效页面计数nVP_SB。
目标选择器163可以基于目标超级块T_SB中包括的多个存储块BLK中的每一个的第二有效页面减少量△VP_BLK,将多个存储块BLK分类为第一目标块BLK_T1和第二目标块BLK_T2。在本实施例中,第一目标块BLK_T1可以是极不可能被无效的存储块BLK,第二目标块BLK_T2可以是极有可能被无效的存储块。可以基于最近执行N次GC操作期间的目标超级块T_SB中的每个存储块BLK的第二有效页面减少量△VP_BLK,来确定存储块BLK将被无效的可能性,其中N是等于或大于“2”的自然数。
因此,在目标超级块T_SB中的多个存储块BLK之中,目标选择器163可以选择第二有效页面减少量△VP_BLK小于参考值的存储块BLK作为第一目标块BLK_T1。
在目标超级块T_SB中的多个存储块BLK之中,目标选择器163可以选择第二有效页面减少量△VP_BLK等于或大于参考值的存储块BLK作为第二目标块BLK_T2。在目标超级块T_SB中包括的多个存储块BLK之中,目标选择器163可以选择具有最大第二有效页面减少量△VP_BLK的至少一个存储块BLK作为第二目标块BLK_T2。目标选择器163可以选择其它存储块BLK作为第一目标块BLK_T1。
数据迁移器167可以将来自第一目标块BLK_T1和第二目标块BLK_T2的有效数据迁移到空闲超级块FR_SB或开放超级块OP_SB。
根据本实施例的数据迁移器167可以在对第二目标块BLK_T2执行有效数据的迁移操作之前对第一目标块BLK_T1执行这种操作。在对第一目标块BLK_T1执行迁移操作的第一时段期间,可能使第二目标块BLK_T2中的有效页面中的至少一些无效。因此,数据迁移器167可以将需要执行迁移操作的有效页面的数量减少第一时段期间第二目标块BLK_T2中变得无效的有效页面的数量。当由于在第一时段期间第二目标块BLK_T2中的所有有效页面都被无效,第二目标块BLK_T2的第二有效页面计数nVP_BLK为“0”时,数据迁移器167不需要对第二目标块BLK_T2执行迁移操作。因此,当执行GC时,根据本实施例的存储器系统110可以减少对第二目标块BLK_T2的迁移操作的负担。
根据本实施例的擦除组件180可以在控制器130的控制下,对控制器130已确定在执行GC之后执行擦除操作的目标超级块T_SB执行擦除操作。当存储器装置150处于空闲状态或者用于基于从主机接收到的写入请求执行编程操作的存储空间不足时,控制器130可以控制擦除组件180对目标超级块T_SB执行擦除操作。
图1B示出了图1A所示的存储器系统110执行GC的方法。
参照图1B的操作S1,在操作S1中,存储器系统110可以基于多个超级块SB中的每一个的第一有效页面计数nVP_SB,在多个超级块SB之中选择目标超级块T_SB。
在操作S1之后,在操作S2中,存储器系统110可以基于目标超级块T_SB中的各自的存储块BLK的第二有效页面减少量△VP_BLK,在目标超级块T_SB中的多个存储块BLK之中选择第一目标块BLK_T1。
在操作S2之后,在操作S3中,存储器系统110可以将来自第一目标块BLK_T1的有效数据复制到空闲超级块FR_SB或开放超级块OP_SB。
在操作S3之后,在操作S4中,存储器系统110可以将来自第二目标块BLK_T2的有效数据复制到空闲超级块FR_SB或开放超级块OP_SB。在操作S4中,如果第二目标块BLK_T2中没有有效页面,则存储器系统110可不执行有效数据的复制操作。
因此,根据本实施例的存储器系统110可以在对第一目标块BLK_T1的有效数据的复制操作之后对第二目标块BLK_T2执行有效数据的复制操作,这使得可以期望第二目标块BLK_T2中的全部或一些有效页面可能被无效。也就是说,由于减少了第二目标块BLK_T2的第二有效页面计数nVP_BLK,因此可以减少对第二目标块BLK_T2的复制操作的负担和执行数据的复制操作的时间。
然而,当存储器系统110在第二目标块BLK_T2的第二有效页面计数nVP_BLK变为零之前不对第二目标块BLK_T2执行复制操作时,执行目标超级块T_SB的GC的时间可以无限期地推迟。
因此,在第一目标块BLK_T1的复制操作完成之后,存储器系统110可以基于第二目标块BLK_T2的第二有效页面计数nVP_BLK,在第一目标块BLK_T1的复制操作完成之后的设定时间(等待时间)或者在对第一目标块BLK_T1的复制操作期间存储器装置150中的有效页面的数量减少一定量时,触发第二目标块BLK_T2的复制操作。
例如,在第一目标块BLK_T1的复制操作完成之后,存储器系统110可以等待对第二目标块BLK_T2执行复制操作,直到第二目标块BLK_T2的第二有效页面计数nVP_BLK变得小于阈值。
在第一目标块BLK_T1的复制操作完成之后,存储器系统110可以等待执行第二目标块BLK_T2的复制操作,直到等待时间变为阈值时间。
当在第一目标块BLK_T1的复制操作期间,存储器装置150的有效页面的减少量小于阈值量时,存储器系统110可以等待执行第二目标块BLK_T2的复制操作。当在第一目标块BLK_T1的复制操作期间,存储器装置150的有效页面的减少量变得大于或等于阈值量时,存储器系统110可以执行第二目标块BLK_T2的复制操作而无需等待。
在执行第一目标块BLK_T1和第二目标块BLK_T2的复制操作之后,在操作S5中,存储器系统110可以基于在操作S3和操作S4中执行的有效数据的复制操作来更新元数据。
因此,根据本实施例的存储器系统110可以调整分别对第一目标块BLK_T1和第二目标块BLK_T2执行的有效数据的复制操作之间的执行间隔,使得对目标超级块T_SB执行复制操作的时间落在特定范围内。因此,可以防止或减少在执行GC时发生的开销。
图2是示出根据本发明的实施例的数据处理系统100的框图。
参照图2,数据处理系统100可以包括与存储器系统110可操作地接合的主机102。
例如,主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的各种便携式电子装置或者诸如台式计算机、游戏机、电视(TV)、投影仪等的非便携式电子装置中的任意一种。
主机102还包括至少一个操作系统(OS),OS通常管理和控制在主机102中执行的功能和操作。OS可以提供与存储器系统110接合的主机102和存储器系统110的用户之间的互操作性。OS可以支持与用户的请求相对应的功能和操作。作为示例而非限制,根据主机102的移动性,OS可以是通用操作系统或移动操作系统。根据系统需求或用户环境,通用操作系统可以分为个人操作系统和企业操作系统。包括Windows和Chrome的个人操作系统可能出于一般目的而需要支持服务。但是企业操作系统可以专门用于保护和支持高性能,包括Windows服务器、Linux、Unix等。此外,移动操作系统可以包括Android、iOS、WindowsMobile等。移动操作系统可能需要支持针对移动性的服务或功能(例如,省电功能)。主机102可以包括多个操作系统。主机102可以对应于用户的请求,与存储器系统110一起运行多个操作系统。主机102可以将与用户的请求相对应的多个命令传输到存储器系统110,从而在存储器系统110内执行与命令相对应的操作。
存储器系统110可以响应于来自主机102的请求而操作或执行特定功能或操作,并且特别地,可以存储待由主机102访问的数据。存储器系统110可以用作主机102的主存储器系统或辅助存储器系统。存储器系统110可以利用可以根据主机接口的协议与主机102电联接的各种类型的存储装置中的任意一种来实施。适用的存储装置的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)、微型MMC、安全数字(SD)卡、迷你SD、微型SD、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体(SM)卡、记忆棒等。
存储器系统110的(多个)存储装置可以利用例如动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置和/或诸如只读存储器(ROM)、掩膜ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)和/或闪速存储器的非易失性存储器装置来实施。
存储器系统110可以包括控制器130和存储器装置150。存储器装置150可以存储待由主机102访问的数据。控制器130可以控制数据在存储器装置150中的存储。
控制器130和存储器装置150可以集成到单个半导体装置中,该单个半导体装置可以包括在以上示例中所讨论的各种类型的存储器系统中的任意一种中。
作为示例而非限制,控制器130和存储器装置150可以集成到SSD中以提高操作速度。当存储器系统110用作SSD时,连接到存储器系统110的主机102的操作速度可以比利用硬盘实施的主机102的操作提高得更多。在另一实施例中,控制器130和存储器装置150可以集成到一个半导体装置中以形成诸如PC卡(PCMCIA)、紧凑型闪存卡(CF)的存储卡,诸如智能媒体卡(SM、SMC)、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC)、SD卡(SD、迷你SD、微型SD、SDHC)、通用闪速存储器等的存储卡。
存储器系统110可以被配置为例如以下各种中的一部分:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑匣子、数码相机、数字多媒体广播(DMB)播放器、三维(3D)电视、智能电视、数字录音机、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境下传输和接收信息的装置、配置家庭网络的各种电子装置之一、配置计算机网络的各种电子装置之一、配置远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或配置计算系统的各种组件之一。
存储器装置150可以是非易失性存储器装置,并且即使在不供应电力的情况下也可以保持其中存储的数据。存储器装置150可以通过写入操作来存储从主机102提供的数据,同时通过读取操作将其中存储的数据提供到主机102。存储器装置150可以包括多个存储块152、154、156,多个存储块152、154、156中的每一个可以包括多个页面。多个页面中的每一个可以包括与多个字线(WL)电联接的多个存储器单元。存储器装置150还包括多个存储器管芯,多个存储器管芯中的每一个包括多个平面,多个平面中的每一个包括多个存储块152、154、156。另外,存储器装置150可以是非易失性存储器装置,例如,闪速存储器,其中闪速存储器可以以三维堆叠结构来实现。
控制器130可以控制存储器装置150的全部操作以及诸如读取操作、写入操作、编程操作和擦除操作的特定操作。例如,控制器130可以响应于来自主机102的请求而控制存储器装置150。控制器130可以将从存储器装置150读取的数据提供到主机102。控制器130还可以将由主机102提供的数据存储到存储器装置150中。
控制器130可以包括全部经由内部总线可操作地联接的主机接口(I/F)132、处理器134、错误校正码(ECC)组件138、电源管理单元(PMU)140、存储器接口(I/F)142和存储器144。
主机接口132可以处理由主机102提供的命令和数据,并且可以通过诸如以下的各种接口协议中的至少一种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小磁盘接口(ESDI)和/或电子集成驱动器(IDE)。根据实施例,主机接口132是用于与主机102交换数据的组件,其可以通过被称为主机接口层(HIL)的固件来实施。
ECC组件138可以校正待在存储器装置150中处理(例如,从存储器装置150输出)的数据的错误位,并且可以包括ECC编码器和ECC解码器。在此,ECC编码器可以对待编程到存储器装置150的数据执行错误校正编码,以生成添加了奇偶校验位的经编码的数据,并且将经编码的数据存储在存储器装置150中。当控制器130读取存储在存储器装置150中的数据时,ECC解码器可以检测并校正从存储器装置150读取的数据中包含的错误。换句话说,在对从存储器装置150读取的数据执行错误校正解码之后,ECC组件138可以确定错误校正解码是否已经成功并输出指令信号(例如,校正成功信号或校正失败信号)。ECC组件138可以使用在ECC编码过程期间生成的奇偶校验位来校正所读取的数据的错误位。当错误位的数量大于或等于可校正错误位的阈值时,ECC组件138可能不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
ECC组件138可以基于诸如以下的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍坤格姆(Bose-Chaudhuri-Hocquenghem(BCH))码、turbo码、里德-所罗门(RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)和/或分组编码调制(BCM)。ECC组件138可以包括基于上述代码中的至少一种执行错误校正操作的任意和所有电路、模块、系统或装置。
PMU 140可以管理控制器130中提供的电力。
存储器接口142可以用作用于处置在控制器130和存储器装置150之间传送的命令和数据的接口,以允许控制器130响应于从主机102传递的请求而控制存储器装置150。在存储器装置150是闪速存储器,特别在存储器装置150是NAND闪速存储器的情况下,存储器接口142可以在处理器134的控制下生成针对存储器装置150的控制信号,并且可以处理输入到存储器装置150中或从存储器装置150输出的数据。存储器接口142可以提供用于处置控制器130和存储器装置150之间的命令和数据的接口,例如,NAND闪存接口的操作,特别是控制器130和存储器装置150之间的操作。根据实施例,存储器接口142可以通过作为用于与存储器装置150交换数据的组件的、被称为闪存接口层(FIL)的固件来实施。
存储器144可以支持由存储器系统110和控制器130执行的操作。存储器144可以存储针对存储器系统110和控制器130中的操作而生成或传递的临时数据或事务数据。控制器130可以响应于来自主机102的请求而控制存储器装置150。控制器130可以将从存储器装置150读取的数据传递到主机102中。控制器130可以将从主机102接收到的数据存储在存储器装置150中。存储器144可以用于存储用于控制器130和存储器装置150执行诸如读取操作或编程/写入操作的操作的数据。
存储器144可以被实施为易失性存储器。存储器144可以利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或两者来实施。尽管作为示例,图2示出了第二存储器144设置在控制器130内,但是实施例不限于此。也就是说,存储器144可以设置在控制器130的内部或外部。例如,存储器144可以由外部易失性存储器来实现,该外部易失性存储器具有在存储器144和控制器130之间传送数据和/或信号的存储器接口。
存储器144可以存储用于执行诸如主机102所请求的数据写入和数据读取的操作的数据,和/或针对诸如如上所述的垃圾收集和损耗均衡的后台操作在存储器装置150与控制器130之间传送的数据。根据实施例,为了支持存储器系统110中的操作,存储器144可以包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
处理器134可以利用微处理器或中央处理单元(CPU)来实施。存储器系统110可以包括一个或多个处理器134。处理器134可以控制存储器系统110的全部操作。作为示例而非限制,处理器134响应于从主机102接收到的写入请求或读取请求而控制存储器装置150的编程操作或读取操作。根据实施例,处理器134可以使用或运行固件来控制存储器系统110的全部操作。本文中,固件可以被称为闪存转换层(FTL)。FTL可以作为主机102和存储器装置150之间的接口而执行操作。主机102可以通过FTL将对写入操作和读取操作的请求传输到存储器装置150。
FTL可以管理地址映射、垃圾收集、损耗均衡等操作。特别地,FTL可以加载、生成、更新或存储映射数据。因此,控制器130可以通过映射数据将从主机102接收到的逻辑地址与存储器装置150的物理地址进行映射。由于地址映射操作,存储器装置150可以像通用存储装置一样操作以执行读取操作或写入操作。此外,通过基于映射数据的地址映射操作,当控制器130试图更新存储在特定页面中的数据时,由于闪速存储器装置的特性,控制器130可以将更新后的数据编程到另一个空白页面上,并且可以使特定页面的旧数据无效(例如,将与更新后的数据的逻辑地址相对应的物理地址从先前的特定页面更新到另一个新编程的页面)。进一步地,控制器130可以将新数据的映射数据存储到FTL中。
例如,当在存储器装置150中执行从主机102请求的操作时,控制器130使用处理器134。与存储器装置150接合的处理器134可以处置与从主机102接收到的命令相对应的指令或命令。控制器130可以对应于从主机102接收到的命令,将前台操作作为命令操作而执行,诸如与写入命令相对应的编程操作、与读取命令相对应的读取操作、与擦除/丢弃命令相对应的擦除/丢弃操作以及与具有设置命令的设置参数命令或设置特征命令相对应的参数设置操作。
又例如,控制器130可以通过处理器134对存储器装置150执行后台操作。作为示例而非限制,对存储器装置150的后台操作包括复制存储块152、154、156之中的存储块中存储的数据并将这些数据存储在另一个存储块中,例如,垃圾收集(GC)操作。后台操作可以包括将存储块152、154、156中的至少一个中存储的数据移动到存储块152、154、156中的至少另一个中,例如,损耗均衡(WL)操作。在后台操作期间,控制器130可以使用处理器134将存储在控制器130中的映射数据存储到存储器装置150中的存储块152、154、156中的至少一个,例如,映射清除操作。在存储块152、154、156之中检查或搜索坏块的坏块管理操作是由处理器134执行的后台操作的另一示例。
在存储器系统110中,控制器130执行与从主机102接收到的多个命令相对应的多个命令操作。例如,当执行与编程命令相对应的编程操作、与读取命令相对应的读取操作以及与擦除命令相对应的擦除操作时,这些操作可以顺序地(即按特定类型的命令的组)、随机地、或者交替地(即在不同类型的命令之间交替)执行,控制器130可以确定将控制器130连接到存储器150中包括的多个存储器管芯的多个通道或通路之中的哪个(哪些)通道或通路适合或适用于执行每个操作。控制器130可以经由所确定的用于执行每个操作的通道或通路来传输数据或指令。在每个操作完成之后,存储器150中的多个存储器管芯可以分别经由相同的通道或通路来传输操作结果。然后,控制器130可以将响应或确认信号传输到主机102。在实施例中,控制器130可以检查每个通道或每个通路的状态。响应于从主机102接收到的命令,控制器130可以基于每个通道或每个通路的状态来选择至少一个通道或通路,使得可以经由所选择的(多个)通道或通路来传递指令和/或操作结果与数据。
作为示例而非限制,控制器130可以识别与多个通道(或通路)有关的状态,该多个通道(或通路)与存储器装置150中包括的多个存储器管芯相关联。控制器130可以将每个通道或每个通路的状态确定为忙碌状态、就绪状态、活动状态、空闲状态、正常状态和/或异常状态。控制器可以与物理块地址相关联地确定通过哪个通道或通路传递指令(和/或数据),例如,指令(和/或数据)传递到哪个(哪些)管芯。控制器130可以参照从存储器装置150传递的描述符。描述符可以包括描述有关存储器装置150的相关信息的参数块或参数页面。例如,描述符可以包括装置描述符、配置描述符、单元描述符等。每个描述符是可以具有设定格式或结构的数据。控制器130可以参照或使用描述符来确定指令或数据在哪个(哪些)通道或通路上交换。
处理器134中可以包括管理单元(未示出)。管理单元可以执行存储器装置150的坏块管理。管理单元可以在存储器装置150中找到不满足进一步使用的条件的坏存储块,并对坏存储块执行坏块管理。当存储器装置150是闪速存储器(例如,NAND闪速存储器)时,由于NAND逻辑功能的特性,在写入操作期间(例如,在编程操作期间)可能发生编程失败。在坏块管理期间,可以将编程失败的存储块或坏存储块的数据编程到新的存储块中。坏块可能使具有3D堆叠结构的存储器装置150的利用率和存储器系统110的可靠性严重恶化。因此,可靠的坏块管理可以增强或提高存储器系统110的性能。
参照图3,描述了根据本公开的另一实施例的存储器系统中的控制器。控制器130与主机102和存储器装置150协作。如图所示,控制器130包括主机接口132、闪存转换层(FTL)40以及先前结合图2所标识的主机接口132、存储器接口142和存储器144。
尽管在图3中未示出,但是根据实施例,参照图2描述的ECC组件138可以包括在闪存转换层(FTL)40中。在另一实施例中,ECC组件138可以被实施为单独的模块、电路、固件等,包括在控制器130中或与控制器130相关联。
主机接口132用于处置从主机102传输的命令、数据等。作为示例而非限制,主机接口132可以包括命令队列56、缓冲管理器52和事件队列54。命令队列56可以顺序地存储从主机102接收到的命令、数据等,并按照它们存储的顺序将它们输出到缓冲管理器52。缓冲管理器52可以对从命令队列56接收到的命令、数据等进行分类、管理或调整。事件队列54可以顺序地传输事件以处理从缓冲管理器52接收到的命令、数据等。
可以从主机102传输相同特性的多个命令或数据,例如,读取命令或写入命令,或者可以在主机102将不同特性的命令和数据混合或混杂之后将其传输到存储器系统110。例如,可以将用于读取数据的多个命令(读取命令)传输到存储器系统110,或者可以将用于读取数据的命令(读取命令)和用于编程/写入数据的命令(写入命令)交替地传输到存储器系统110。主机接口132可以顺序地将从主机102传输的命令、数据等存储到命令队列56。此后,主机接口132可以根据已从主机102接收到的命令、数据等的特性来估计或预测控制器130将执行哪种内部操作。主机接口132可以基于命令、数据等的特性来确定它们的处理顺序和优先级。根据从主机102传输的命令、数据等的特性,主机接口132中的缓冲管理器52被配置为确定缓冲管理器是否应将命令、数据等存储在存储器144中,或者确定缓冲管理器是否应将命令、数据等传递到闪存转换层(FTL)40。事件队列54从缓冲管理器52接收由存储器系统110或控制器130响应于从主机102传输的命令、数据等内部运行和处理的事件,从而以接收到的顺序将事件传递到闪存转换层(FTL)40中。
根据实施例,参照图3描述的主机接口132可以执行参照图1和图2描述的控制器130的一些功能。在图6或图9中示出,主机接口132可以将主机存储器106设置为受控装置,并添加主机存储器106作为可由控制器130控制或使用的附加存储空间。
根据实施例,闪存转换层(FTL)40可以包括主机请求管理器(HRM)46、映射管理器(MM)44、状态管理器(GC/WL)42和块管理器(BM/BBM)48。主机请求管理器46可以管理从事件队列54接收到的事件。映射管理器44可以处置或控制映射数据。状态管理器42可以执行垃圾收集(GC)或损耗均衡(WL)。块管理器48可以在存储器装置150中的块上运行命令或指令。
作为示例而非限制,主机请求管理器46可以使用映射管理器44和块管理器48以根据读取命令和编程命令以及从主机接口132传递的事件来处置或处理请求。主机请求管理器46可以将查询请求传输到映射数据管理器44,以确定与随事件输入的逻辑地址相对应的物理地址。主机请求管理器46可以将读取请求与物理地址传输到存储器接口142,以处理读取请求(处置事件)。另一方面,主机请求管理器46可以将编程请求(写入请求)传输到块管理器48,以将数据编程到存储器装置150中的特定空白页面(没有数据的页面),然后可以将与编程请求相对应的映射更新请求传输到映射管理器44,以更新在将逻辑物理地址相互映射的信息中的、与经编程的数据有关的条目。
在此,块管理器48可以将从主机请求管理器46、映射数据管理器44和/或状态管理器42传递的编程请求转换为用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了最大化或增强存储器系统110(参见图2)的编程或写入性能,块管理器48可以收集编程请求并将针对多个平面和单触发编程操作的闪存编程请求传输到存储器接口142。在实施例中,块管理器48将几个闪存编程请求传输到存储器接口142,以增强或最大化多通道和多向闪存控制器的并行处理。
另一方面,块管理器48可以被配置为根据有效页面的数量来管理存储器装置150中的块,当需要空闲块时选择并擦除没有有效页面的块,并且当确定有必要或应执行垃圾收集时,选择包括最少数量的有效页面的块。状态管理器42可以执行垃圾收集以将有效数据移动到空白块并擦除包含所移动的有效数据的块,从而块管理器48可以具有足够的空闲块(没有数据的空白块)。如果块管理器48将关于待擦除的块的信息提供到状态管理器42,则状态管理器42可以检查待擦除的块的所有闪存页面以确定每个页面是否有效。例如,为了确定每个页面的有效性,状态管理器42可以识别每个页面的带外(OOB)区域中记录的逻辑地址。为了确定每个页面是否有效,状态管理器42可以将页面的物理地址与映射到从查询请求获得的逻辑地址的物理地址进行比较。状态管理器42针对每个有效页面将编程请求传输到块管理器48。当编程操作完成时,可以通过映射管理器44的更新来更新映射表。
映射管理器44可以管理逻辑-物理映射表。映射管理器44可以处理由主机请求管理器46或状态管理器42生成的诸如查询、更新等的请求。映射管理器44可以将整个映射表存储在存储器装置150(例如,闪存/非易失性存储器)中,并根据存储器144的存储容量高速缓存映射条目。当在处理查询请求或更新请求时发生映射高速缓存未命中时,映射管理器44可以将读取请求传输到存储器接口142以加载存储在存储器装置150中的相关映射表。当映射管理器44中的脏高速缓存块的数量超过某个阈值时,可以将编程请求发送到块管理器48,从而得到干净的高速缓存块,并且可以将脏映射表存储在存储器装置150中。
另一方面,当执行垃圾收集时,状态管理器42将(多个)有效页面复制到空闲块中,并且主机请求管理器46可以针对该页面的相同逻辑地址编程最新版本的数据,并当前发出更新请求。当状态管理器42在未正确完成(多个)有效页面的复制的状态下请求映射更新时,映射管理器44可能不执行映射表更新。这是因为,如果状态管理器42请求更新映射,并且稍后完成有效页面复制,则映射请求与旧的物理信息一起发出。映射管理器44可以执行映射更新操作,以仅在最新映射表仍指向旧的物理地址的情况下确保准确性。
根据实施例,状态管理器42、映射管理器44或块管理器48中的至少一个可以包括用于执行其自身的操作的电路。如本公开中所使用的,术语“电路”指以下中的任意与所有:(a)纯硬件电路实施方式(诸如仅在模拟和/或数字电路中的实施方式)和(b)电路与软件(和/或固件)的组合,诸如(如适用于):(i)(多个)处理器的组合或(ii)一起工作以使诸如移动电话或服务器的设备执行各种功能的(多个)处理器/软件(包括(多个)数字信号处理器)、软件和(多个)存储器的一部分,以及(c)电路,诸如(多个)微处理器或(多个)微处理器的一部分,即使软件或固件物理上不存在,也需要软件或固件进行操作。“电路”的这种定义应用于本申请中该术语的所有用途,包括在任意权利要求中。作为另一示例,如在本申请中使用的,术语“电路”还涵盖仅处理器(或多个处理器)或处理器的一部分及其随附软件和/或固件的实施方式。例如,术语“电路”(如果适用于特定的权利要求要素,)还涵盖存储装置的集成电路。
存储器装置150可以包括多个存储块。根据一个存储器单元中可以存储或代表的位的数量,多个存储块可以是诸如单层单元(SLC)存储块、多层单元(MLC)存储块等的不同类型的存储块中的任意一种。在此,SLC存储块包括由每个存储一位数据的存储器单元实施的多个页面。SLC存储块可以具有较高的数据I/O操作性能和较高的耐久性。MLC存储块包括由每个存储多位(例如,两位以上)数据的存储器单元实施的多个页面。与SLC存储块相比,MLC存储块针对相同的空间可以具有更大的存储容量。MLC存储块在存储容量方面可以高度集成。在实施例中,存储器装置150可以利用不同层的MLC存储块中的任意一种来实施,诸如双层存储块、三层单元(TLC)存储块、四层单元(QLC)存储块或其组合。双层存储块可以包括由每个能够存储2位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可以包括由每个能够存储3位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可以包括由每个能够存储4位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可以利用包括由存储器单元实施的多个页面的存储块来实施,每个存储器单元能够存储五位以上的数据。
在本公开的实施例中,存储器装置150被实现为诸如闪速存储器(例如,NAND闪速存储器、NOR闪速存储器等)的非易失性存储器。可选地,存储器装置150可以由相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋转移力矩随机存取存储器(STT-RAM)和自旋转移力矩磁性随机存取存储器(STT-MRAM)等中的至少一种来实施。
图4是示出图2和图3的存储器装置150的配置的示图。作为示例,图4的存储器装置150包括一个存储器管芯,该存储器管芯包括四个平面PLANE1至PLANE4。
参照图4,存储器装置150可以包括第一至第四平面PLANE1至PLANE4。第一至第四平面PLANE1至PLANE4中的每一个可以包括多个存储块BLK,例如,n个存储块BLK1至BLKn。在此,n可以是等于或大于1的自然数。
在第一至第四平面PLANE1至PLANE4中的相同位置处的存储块BLK可以是一个存储块组的一部分,表示为超级块SB。例如,控制器130可以对第一至第四平面PLANE1至PLANE4的第一存储块BLK1进行分组,以形成第一超级块SB1。由于第一至第四平面PLANE1至PLANE4中的每一个包括n个存储块BLK1至BLKn,因此存储器装置150可以包括第一至第n超级块SB1至SBn。可以以交错方式对第一至第n超级块SB1至SBn执行数据编程操作和数据读取操作。
图5示出了根据本实施例的控制器130确定GC模式的过程的示例。图6A和图6B示出了根据本实施例的存储器装置150的状态。
下文中,参照图5、图6A和图6B描述根据本实施例的控制器130基于存储器装置150的状态(例如,存储器装置的无效水平或无效率)选择GC模式的方法的示例。
控制器130确定在各种情况下执行GC,图5示出了控制器130由于存储器装置150中的空闲超级块FR_SB的数量太低即可用空闲空间不足而确定执行GC的情况。然而,本实施例不限于此。
参照图5的S10,控制器130可以基于存储器装置150中的空闲超级块FR_SB的数量来确定是否执行GC。如图6A所示,存储器装置150可以包括“10”个超级块。在这10个超级块之中,六个超级块C_SB1至C_SB6可以是封闭超级块,指示每个这种块已经完全编程。剩下的四个超级块FR_SB7至FR_SB10可以是可以对其编程新数据的空闲超级块。在以下描述中,“C_SB”代表封闭超级块,“FR_SB”代表空闲超级块。
假设用于确定是否执行GC的设定数量为“3”。如图6B所示,空闲超级块FR_SB的数量是“4”。因此,控制器130可以确定不对存储器装置执行GC。
然后,当对空闲超级块FR_SB7执行数据编程操作时,空闲超级块FR_SB7改变为如图6B所示的封闭超级块C_SB7。因此,存储器装置150中的空闲超级块FR_SB的数量减少到“3”。因此,控制器130可以确定执行GC,并且进一步确定待对存储器装置150执行GC的模式。根据本实施例的GC模式可以包括第一模式和第二模式。
在第一GC模式下,基于目标超级块T_SB中的各自的存储块BLK的第二有效页面减少量△VP_BLK,来不同地设置复制操作的优先级。在第一GC模式下,可以将对第二目标块BLK_T2执行的第二复制操作的优先级设置为低于对第一目标块BLK_T1执行的第一复制操作的优先级。第二目标块BLK_T2的第二有效页面减少量△VP_BLK比第一目标块BLK_T1的大。
也就是说,在第一GC模式下,第二复制操作可以晚于第一复制操作执行。此外,在第一GC模式期间,可以在完全执行第一复制操作之后的阈值时间内执行第二复制操作。因此,在第一复制操作的运行时间和阈值时间期间,第二目标块BLK_T2中包括的有效页面中的至少一些可能被无效。因此,可以减少第二目标块BLK_T2中需要执行第二复制操作的有效页面的数量。
在第二GC模式下,针对存储在目标超级块T_SB中的有效数据执行复制操作,而无需考虑目标超级块T_SB的第一有效页面减少量△VP_SB。因此,在第二GC模式期间,需要执行复制操作的有效页面的数量可能比在第一GC模式下更多。然而,第二GC模式不包括第二目标块BLK_T2中的有效页面被无效的阈值时间。因此,相比于第一GC模式,执行第二GC模式的时间可以减少更多。
当确定执行GC时,控制器130可以基于存储器装置150的有效页面减少量、超级块SB中经擦除的页面的数量和待执行编程操作的数据的大小中的一个或多个来确定GC的模式。
在本实施例中,控制器130可以基于存储器装置150的有效页面减少量和存储器装置150中经擦除的页面的数量来确定是否执行GC。例如,当已经完全编程的超级块SB1至SB7的总有效页面减少量小于存储器装置150中包括的经擦除的页面的数量时,控制器130可以不紧急执行GC。因此,即使执行有效数据的复制操作的有效页面的数量减少了,控制器130也可以确定执行包括复制操作的等待时间(阈值时间)的第一GC模式。
另一方面,当已经完全编程的超级块SB1至SB7的总有效页面减少量大于存储器装置150中经擦除的页面的数量时,控制器130需要紧急执行GC。因此,即使执行有效数据的复制操作的有效页面的数量没有减少,控制器130也可以确定执行不包括复制操作的等待时间的第二GC模式。
参照图5的S30,在操作S30中,控制器130可以基于超级块SB的第一有效页面计数nVP_SB来选择待执行GC的目标超级块T_SB。也就是说,如图6B所示,控制器130可以选择第一有效页面计数nVP_SB等于或小于目标值(例如,“30”)的第一超级块SB1作为目标超级块T_SB。此外,控制器130可以选择具有最小的第一有效页面计数nVP_SB“10”的第一超级块SB1作为目标超级块T_SB。
然后,在操作S40中,控制器130可以基于在操作S20中确定的GC模式,对在操作S30中选择的目标超级块T_SB执行GC。
图7示出了已经参照图5、图6A和图6B进行了描述的、控制器130执行第一GC模式的方法的示例。
在操作S200中,控制器130可以基于目标超级块T_SB中包括的各自的存储块BLK的第二有效页面减少量△VP_BLK,将多个存储块BLK分类为第一目标块BLK_T1和第二目标块BLK_T2。
第一目标块BLK_T1的第二有效页面减少量△VP_BLK小于参考值。第二目标块BLK_T2的第二有效页面减少量△VP_BLK等于或大于参考值。第一目标块BLK_T1可以极不可能被无效。第二目标块BLK_T2可以极有可能被无效。第二目标块BLK_T2在多个存储块之中可以具有相对高的第二有效页面减少量△VP_BLK。
在操作S210中,控制器130可以将来自第一目标块BLK_T1的有效数据复制到能够存储数据的空闲超级块FR_SB或开放超级块OP_SB(第一复制操作)。控制器130可以通过第一复制操作进一步更新元数据。
下文中,第二目标块BLK_T2的第二有效页面计数nVP_BLK可以被表示为“nVP_BLK_T2”。
在操作S215中,控制器130可在第一复制操作完成之后检查第二有效页面计数nVP_BLK_T2。在操作S220中,控制器130可以确定第二有效页面计数nVP_BLK_T2是否为“0”。
当操作S220的确定结果指示第二有效页面计数nVP_BLK_T2为“0”(操作S220中为是)时,控制器130可以结束第一GC模式,而不对存储在第二目标块BLK_T2中的有效数据执行第二复制操作。控制器130可以将目标超级块T_SB确定为擦除目标超级块。也就是说,在执行操作S210的第一复制操作的第一时段期间,第二目标块BLK_T2中的所有有效页面可能都被无效。因此,由于控制器130不需要对第二目标块BLK_T2执行第二复制操作,可以减少对第二目标块BLK_T2的第二复制操作的负担。此外,可以减少对目标超级块T_SB的GC操作所需的时间。
当操作S220的确定结果指示第二有效页面计数nVP_BLK_T2不为“0”时,控制器130可以等待执行第二复制操作,直到第二有效页面计数nVP_BLK_T2变为“0”。在这种情况下,对第二目标块BLK_T2执行的GC可能延迟等待时间。
因此,当第二有效页面计数nVP_BLK_T2不为“0”(操作S220中为否)时,在操作S230中,控制器130可以确定是否满足第二复制操作的触发条件。
当满足以下条件中的至少一个时,可以触发第二复制操作。第一条件指示第二目标块BLK_T2中包括的有效页面的数量是否等于或大于1且小于阈值。第二条件指示在第一复制操作完成之后的等待时间是否等于或大于阈值时间。第三条件指示在第一复制操作期间存储器装置150的有效页面的减少量是否等于或大于阈值量。
也就是说,控制器130可以仅等待执行第二复制操作,直到第二有效页面计数nVP_BLK_T2达到阈值。然后控制器130可以对有效页面小于或等于阈值的第二目标块BLK_T2执行第二复制操作。
此外,在第一复制操作完成之后,控制器130可以仅等待执行第二复制操作,直到等待时间达到阈值时间。也就是说,在第一复制操作完成之后经过阈值时间之后,控制器130可以对第二目标块BLK_T2中包括的有效页面执行第二复制操作。然后,当等待时间变得等于或大于阈值时间时,控制器130可以执行第二复制操作。当在执行第一复制操作时存储器装置150中的有效页面的减少量等于或大于阈值量时,控制器130可以执行第二复制操作。
也就是说,根据本实施例的控制器130可以动态地设置阈值、阈值时间和阈值量,从而调整待执行第二复制操作的时间点。因此,使第一复制操作和第二复制操作所需的时间落在特定范围内。因此,可以减少在执行GC时发生的开销。
当操作S230的确定结果指示不满足触发条件(操作S230中为否)时,控制器130返回操作S215。
当操作S230的确定结果指示满足触发条件(操作S230中为是)时,在操作S240中,控制器130复制来自第二目标块BLK_T2的有效数据(第二复制操作)。操作S240的第二复制操作可以包括将来自第二目标块BLK_T2的有效数据复制到超级块FR_SB或OP_SB中,并更新存储了所复制的有效数据的超级块FR_SB或OP_SB的元数据。在第二复制操作完成之后,控制器130可以将目标超级块T_SB确定为擦除目标超级块。
不一定对在操作S200中确定的第二目标块BLK_T2的所有有效页面执行在操作S240中执行的第二复制操作。可以对在操作S230中满足第二复制操作的触发条件的时间点存在的有效页面执行第二复制操作。也就是说,在操作S240中待执行第二复制操作的第二目标块BLK_T2中的有效页面的数量可变得小于在操作S200检测的第二目标块BLK_T2中的有效页面的数量。因此,可以减少对第二目标块BLK_T2的第二复制操作的负担和数据的第二复制操作所需的时间。
此后,参照图8至图13详细描述根据本实施例的控制器130执行第一GC模式的过程。
图8示出了在第一超级块SB1被选择为目标超级块T_SB1之前的状态和在第一超级块SB1被选择为目标超级块T_SB1的时间点的状态。
图9示出了针对每个存储块管理的第二有效页面计数nVP_BLK以及每个存储块的第二有效页面减少量△VP_BLK的表。
图10示出了基于第二有效页面减少量△VP_BLK将目标超级块T_SB1中的多个存储块指定为第一目标块BLK_T1或第二目标块BLK_T2的示例。
图11示出了对目标超级块T_SB1中包括的第一目标块BLK_T1执行第一复制操作的方法。
图12示出了使存储在第二目标块BLK_T2中的所有有效数据无效的过程。
图13示出了对第一目标块BLK_T1和第二目标块BLK_T2执行擦除操作的方法。
参照图8,第一超级块SB1可以包括四个存储块,即,第一平面PLANE1的第一存储块BLK1、第二平面PLANE2的第一存储块BLK1、第三平面PLANE3的第一存储块BLK1和第四平面PLANE4的第一存储块BLK1。
下文中,为了便于描述,第一平面PLANE1的第一存储块BLK1将被称为“第一块PL1_BLK1”,第二平面PLANE2的第一存储块BLK1将被称为“第二块PL2_BLK1”,第三平面PLANE3的第一存储块BLK1将被称为“第三块PL3_BLK1”,第四平面PLANE4的第一存储块BLK1将被称为“第四块PL4_BLK1”。第一至第四块PL1_BLK1至PL4_BLK1可以是物理上彼此独立的存储块。第一至第四块PL1_BLK1至PL4_BLK1中的每一个可以包括“20”个页面。第一超级块SB1可以是包括“80”个页面并且已经完全编程的封闭超级块。控制器130可以根据超级块的第一有效页面计数nVP_SB选择第一超级块SB1作为目标超级块T_SB1。
如图9的左表所示,在第一时间点TP1,PL1_BLK1的第二有效页面计数nVP_BLK可以是“3”,PL2_BLK1的第二有效页面计数nVP_BLK可以是“4”,PL3_BLK1的第二有效页面计数nVP_BLK可以是“4”,PL4_BLK1的第二有效页面计数nVP_BLK可以是“19”。也就是说,第一超级块SB1可以包括“30”个有效页面和“50”个无效页面。
当用于确定目标超级块T_SB1的超级块SB的第一有效页面计数nVP_SB被设置为“24(30%)”时,控制器130可以不选择第一超级块SB1作为目标超级块T_SB1。因为超级块SB的第一有效页面计数nVP_SB为“30”并且等于或大于24(30%)。
然后,如图9的右表所示,如果使PL3_BLK1中的一个有效页面和PL4_BLK1中的八个有效页面无效,则第一超级块SB1可以在第二时间点TP2包括“21”个有效页面和“59”个无效页面。由于“21”小于“24(30%)”,因此控制器130可以在第二时间点TP2选择第一超级块SB1作为目标超级块T_SB1。
第一时间点TP1和第二时间点TP2是控制器130确定是否执行GC的时间点。第一时间点TP1在第二时间点TP2之前出现。
当在第二时间点TP2选择第一超级块SB1作为目标超级块T_SB1时,控制器130可以计算如图9所示的目标超级块T_SB1中的第一至第四块PL1_BLK1至PL4_BLK1中的每一个的第二有效页面减少量△VP_BLK。第二有效页面减少量△VP_BLK可以通过从在第一时间点TP1的第二有效页面计数nVP_BLK中减去在第二时间点TP2的第二有效页面计数nVP_BLK来计算。因此,与第一时间点TP1相比,在第二时间点TP2,控制器130可以确定第三块PL3_BLK1的有效页面计数已经减少了一(-1),并且第四块PL4_BLK1的有效页面计数已经减少了八(-8)。
根据本实施例的控制器130可以在每当确定执行GC时(例如,在TP1和TP2)计算存储块PL1_BLK1至PL4_BLK1中的每一个的第二有效页面计数nVP_BLK。
在第二时间点TP2,控制器130可以基于最近已经计算N次(在这种情况下为TP1和TP2两次)的有效页面计数来计算各个存储块PL1_BLK1至PL4_BLK1中的每一个的第二有效页面减少量△VP_BLK。在该示例中,N是等于或大于2的自然数。
换句话说,根据本实施例的控制器130可以计算在第一时间点TP1的存储块PL1_BLK1至PL4_BLK1中的每一个的第二有效页面计数nVP_BLK(分别为3、4、4和19)和在第二时间点TP2的存储块PL1_BLK1至PL4_BLK1中的每一个的第二有效页面计数nVP_BLK(分别为3、4、3和11)。控制器130可以基于存储块PL1_BLK1至PL4_BLK1中的每一个的第二有效页面计数nVP_BLK(即在第二时间点TP2的3、4、3和11和第一时间点TP1的3、4、4和19),来计算块PL1_BLK1至PL4_BLK1中的每一个的第二有效页面减少量△VP_BLK(分别为0、0、1和8)。
如图10所示,控制器130可以基于目标超级块T_SB1中的块PL1_BLK1至PL4_BLK1中的每一个的第二有效页面减少量△VP_BLK,将多个块PL1_BLK1至PL4_BLK1分类为第一目标块BLK_T1和第二目标块BLK_T2。特别地,控制器130可以将第四块PL4_BLK1确定为第二目标块BLK_T2。第四块PL4_BLK1的第二有效页面减少量△VP_BLK为“8”,是块PL1_BLK1至PL4_BLK1之中最大的。控制器130可以将第一至第三块PL1_BLK1至PL3_BLK1确定为第一目标块BLK_T1。
控制器130可以将具有等于或大于参考值REF(例如,25%或5)的第二有效页面减少量△VP_BLK“8”的第四块PL4_BLK1检测为第二目标块BLK_T2。控制器130可以将第二有效页面减少量△VP_BLK小于参考值REF的第一至第三块PL1_BLK1至PL3_BLK1检测为第一目标块BLK_T1。
如图11所示,控制器130可以将来自第一至第三块PL1_BLK1至PL3_BLK1的有效数据复制到第八空闲超级块FR_SB8(第一复制操作)。由于已经全部复制了第一至第三块PL1_BLK1至PL3_BLK1中的有效数据,因此即使第一至第三块PL1_BLK1至PL3_BLK1全部被无效,也可以保持所复制的有效数据的稳定性。
如图12所示,在对来自第一目标块BLK_T1(=PL1_BLK1至PL3_BLK1)的有效数据的第一复制操作完成之后,控制器130检查第二目标块BLK_T2(=PL4_BLK1)的第二有效页面计数nVP_BLK。返回参照图11,第二目标块BLK_T2(=PL4_BLK1)在第一复制操作执行之前包括“11”个有效页面。然而,如图12所示,在执行第一复制操作时,第二目标块BLK_T2(=PL4_BLK1)中包括的“11”个有效页面可能全部被无效。也就是说,如图12的右表所示,在对第一目标块BLK_T1(=PL1_BLK1至PL3_BLK1)的第一复制操作完成之后第二目标块BLK_T2(=PL4_BLK1)可以包括“0”个有效页面。由于第二目标块BLK_T2(=PL4_BLK1)不包括有效页面,因此控制器130可以不对第二目标块BLK_T2(=PL4_BLK1)执行第二复制操作。
然而,当在第一复制操作完成之后第二目标块BLK_T2(=PL4_BLK1)中的有效页面的数量不为“0”时,控制器130可以等待对第二目标块BLK_T2(=PL4_BLK1)执行第二复制操作,直到满足第二复制操作的触发条件。
当阈值是“5”并且在第一复制操作完成之后第二目标块BLK_T2(=PL4_BLK1)中的有效页面的数量是“8”时,控制器130可以等待对第二目标块BLK_T2(=PL4_BLK1)执行第二复制操作,直到第四块PL4_BLK1中的有效页面的数量变得小于阈值“5”。然后,当第四块PL4_BLK1中的有效页面的数量变为“4”时,控制器130可以将来自第二目标块BLK_T2(=PL4_BLK1)的四个有效页面的有效数据复制到第八空闲超级块FR_SB8中。控制器130不对图11所示的第二目标块BLK_T2(=PL4_BLK1)的所有有效页面即全部“11”个有效页面执行第二复制操作(第二GC模式)。控制器130可以对小于阈值“5”的“4”个有效页面执行第二复制操作。因此,对第二目标块BLK_T2的第二复制操作的负担可以减少多达7个被无效的页面。
因此,在第一复制操作的时间和等待时间的组合时间期间,对第二目标块BLK_T2的第二复制操作的负担可以减少被无效的页面的数量。
当阈值时间是5分钟时,控制器130可以等待执行第二复制操作,直到对第一目标块BLK_T1(=PL1_BLK1至PL3_BLK1)的第一复制操作完成之后经过五分钟。然后,控制器130将来自第四块PL4_BLK1中的有效页面中的有效数据复制到第八空闲超级块FR_SB8中。控制器130不对图11所示的第二目标块BLK_T2(=PL4_BLK1)的所有有效页面即全部“11”个有效页面执行第二复制操作。控制器130在阈值时间期间不对被无效的页面执行第二复制操作。因此,在第一复制操作的时间和等待时间的组合时间期间,对第二目标块BLK_T2的第二复制操作的负担可以减少被无效的页面的数量。
然后,如图13所示,控制器130可以对第一目标块BLK_T1(=PL1_BLK1至PL3_BLK1)和第二目标块BLK_T2(=PL4_BLK1)执行擦除操作。因此,已经完成了擦除操作的目标超级块T_SB1可以变为空闲超级块FR_SB。
尽管已经示出和描述了各个实施例,但对于本领域的技术人员显而易见的是,在不脱离所附权利要求所定义的本发明的思想和范围的情况下,可以进行各种改变和修改。
Claims (31)
1.一种控制器的操作方法,包括:
当确定执行垃圾收集即GC时,基于完全编程的多个超级块中的每个超级块的第一有效页面计数,在所述多个超级块之中选择待执行所述GC的目标超级块;
基于所述目标超级块中的多个存储块中的每个存储块的第二有效页面减少量,在所述多个存储块之中选择第一目标块;以及
对所述第一目标块中的有效页面执行第一复制操作。
2.根据权利要求1所述的操作方法,进一步包括:
每当确定执行所述GC时,计算存储块中的每个存储块的第二有效页面计数,各自的存储块的所述第二有效页面计数最近被计算了两次以上;以及
基于每个存储块的所述第二有效页面计数来计算相应的存储块的第二有效页面减少量。
3.根据权利要求1所述的操作方法,进一步包括:
当确定执行当前GC时,计算每个存储块中的有效页面的第一计数;以及
基于所述第一计数和第二计数来计算存储块中的每个存储块的所述第二有效页面减少量,
其中所述第二计数代表在确定执行先前GC时相应的存储块中的有效页面的数量。
4.根据权利要求1所述的操作方法,进一步包括:
在所述第一复制操作完成之后,检查所述多个存储块之中的第二目标块的第二有效页面计数。
5.根据权利要求4所述的操作方法,进一步包括:
当所述第二目标块的所述第二有效页面计数为“0”时,将所述目标超级块确定为擦除目标超级块,而不对所述第二目标块中的有效页面执行第二复制操作。
6.根据权利要求4所述的操作方法,进一步包括:
在从完成所述第一复制操作开始经过阈值时间之后,对所述第二目标块中的有效页面执行第二复制操作;以及
将所述目标超级块确定为擦除目标超级块。
7.根据权利要求6所述的操作方法,其中当所述第二目标块的所述第二有效页面计数等于或大于1且小于阈值时,执行所述第二复制操作。
8.根据权利要求5所述的操作方法,进一步包括:对所述擦除目标超级块执行擦除操作。
9.根据权利要求4所述的操作方法,其中所述第一目标块的所述第二有效页面减少量小于参考值,并且所述第二目标块的所述第二有效页面减少量等于或大于所述参考值。
10.根据权利要求4所述的操作方法,其中,在所述多个存储块之中,所述第二目标块具有最大的第二有效页面减少量。
11.一种存储器系统的操作方法,所述存储器系统具有存储器装置,所述操作方法包括:
当确定执行垃圾收集即GC时,基于每个超级块的第一有效页面计数,在多个封闭超级块之中选择待执行所述GC的目标超级块;
当所述存储器装置中的有效页面的无效率较低时,基于所述目标超级块中的多个存储块中的每个存储块的第二有效页面减少量,将多个存储块中的每个存储块指定为第一目标块或第二目标块;以及
在对所述第二目标块执行第二复制操作之前,对所述第一目标块执行第一复制操作。
12.根据权利要求11所述的操作方法,进一步包括:
每当确定所述执行所述GC时,计算存储块中的每个存储块的第二有效页面计数,各自的存储块的所述第二有效页面计数最近被计算了两次以上;以及
基于每个存储块的所述第二有效页面计数来计算相应的存储块的第二有效页面减少量。
13.根据权利要求11所述的操作方法,进一步包括:
当确定执行当前GC时,计算每个存储块中的有效页面的第一计数;以及
基于所述第一计数和第二计数来计算存储块中的每个存储块的所述第二有效页面减少量,
其中所述第二计数代表在确定执行先前GC时相应的存储块中的有效页面的数量。
14.根据权利要求11所述的操作方法,进一步包括:当所述第二目标块的第二有效页面计数为“0”时,将所述目标超级块确定为擦除目标超级块,而不对所述第二目标块中的有效页面执行所述第二复制操作。
15.根据权利要求11所述的操作方法,进一步包括:
在从完成所述第一复制操作开始经过阈值时间之后,对所述第二目标块中的有效页面执行所述第二复制操作;以及
将所述目标超级块确定为擦除目标超级块。
16.根据权利要求15所述的操作方法,其中当所述第二目标块的所述第二有效页面计数等于或大于1且小于阈值时,执行所述第二复制操作。
17.根据权利要求14所述的操作方法,进一步包括:对所述擦除目标超级块执行擦除操作。
18.根据权利要求11所述的操作方法,其中所述第一目标块的所述第二有效页面减少量小于参考值,并且所述第二目标块的所述第二有效页面减少量等于或大于所述参考值。
19.根据权利要求11所述的操作方法,其中,在所述多个存储块之中,所述第二目标块具有最高的有效页面减少量。
20.根据权利要求11所述的操作方法,其中基于超级块中的每个超级块的有效页面减少量、空闲超级块中的可编程页面的数量以及待执行编程操作的数据的大小中的一个或多个,确定所述存储器装置中的有效页面的无效率。
21.根据权利要求11所述的操作方法,进一步包括:
当所述存储器装置中的有效页面的无效率较高时,对所述目标超级块执行复制操作;以及
将所述目标超级块确定为擦除目标超级块。
22.一种存储器系统,包括:
存储器装置,包括多个超级块,每个超级块包括多个存储块;以及
控制器,在确定执行垃圾收集即GC时,在待执行所述GC的目标超级块中包括的多个存储块之中选择第一目标块,并对所述第一目标块执行第一复制操作,
其中所述控制器基于每个超级块的第一有效页面计数来选择所述目标超级块,并且
其中所述控制器基于所述目标超级块中的所述多个存储块中的每个存储块的第二有效页面减少量来选择所述第一目标块。
23.根据权利要求22所述的存储器系统,其中每当确定执行所述GC时,所述控制器基于所述目标超级块中的每个存储块的第二有效页面计数,计算相应的存储块的所述第二有效页面减少量,各自的存储块的所述第二有效页面计数最近被计算了两次以上。
24.根据权利要求22所述的存储器系统,
其中当确定执行当前GC时,所述控制器计算所述目标超级块中的每个存储块中有效页面的第一计数,并基于所述第一计数和第二计数来计算存储块中的每个存储块的所述第二有效页面减少量,
其中所述第二计数代表在确定执行先前GC时所述目标超级块中相应的存储块中的有效页面的数量。
25.根据权利要求22所述的存储器系统,其中在所述第一复制操作完成之后,所述控制器检查所述多个存储块之中的第二目标块的第二有效页面计数。
26.根据权利要求25所述的存储器系统,其中当所述第二目标块的所述第二有效页面计数为“0”时,所述控制器将所述目标超级块确定为擦除目标超级块,而不对所述第二目标块中的有效页面执行第二复制操作。
27.根据权利要求25所述的存储器系统,其中所述控制器进一步:
在从完成所述第一复制操作开始经过阈值时间之后,对所述第二目标块中包括的有效页面执行第二复制操作;以及
将所述目标超级块确定为擦除目标超级块。
28.根据权利要求26所述的存储器系统,其中当所述第二目标块的所述第二有效页面计数等于或大于1且小于阈值时,所述控制器执行所述第二复制操作。
29.根据权利要求25所述的存储器系统,其中所述第一目标块的所述第二有效页面减少量小于参考值,并且所述第二目标块的所述第二有效页面减少量等于或大于所述参考值。
30.根据权利要求25所述的存储器系统,其中,在所述目标超级块中的所述多个存储块之中,所述第二目标块具有最大的有效页面减少量。
31.一种控制器的操作方法,所述操作方法包括:
在超级块内确定一个或多个第一目标存储块和一个或多个第二目标存储块;
控制存储器装置对所述一个或多个第一目标存储块中的有效页面执行垃圾收集操作;以及
控制所述存储器装置在对所述一个或多个第一目标存储块的所述垃圾收集操作完成之后的设定时间,对保留在所述一个或多个第二目标存储块中的一个或多个有效页面执行垃圾收集操作,
其中所述第一目标存储块中的每个目标存储块的有效页面减少率小于阈值,并且
其中所述第二目标存储块中的每个目标存储块的有效页面减少率等于或大于所述阈值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0152272 | 2019-11-25 | ||
KR1020190152272A KR20210063764A (ko) | 2019-11-25 | 2019-11-25 | 메모리 시스템의 동작 방법 및 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112835811A true CN112835811A (zh) | 2021-05-25 |
Family
ID=75923461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011031236.3A Withdrawn CN112835811A (zh) | 2019-11-25 | 2020-09-27 | 存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11526438B2 (zh) |
KR (1) | KR20210063764A (zh) |
CN (1) | CN112835811A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024087724A1 (zh) * | 2022-10-28 | 2024-05-02 | 华为技术有限公司 | 垃圾回收的方法、页面存储的方法和电子设备 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258505B (zh) * | 2020-01-21 | 2023-09-26 | 合肥兆芯电子有限公司 | 快闪存储器的数据合并方法、控制电路单元与存储装置 |
KR20210111527A (ko) * | 2020-03-03 | 2021-09-13 | 에스케이하이닉스 주식회사 | 메모리 시스템에서 가비지 컬렉션을 수행하는 장치 및 방법 |
US11599286B2 (en) * | 2021-06-03 | 2023-03-07 | Micron Technology, Inc. | Data age and validity-based memory management |
JP2023044330A (ja) * | 2021-09-17 | 2023-03-30 | キオクシア株式会社 | メモリシステムおよび制御方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101356470B1 (ko) | 2011-05-26 | 2014-01-28 | 에스코어 주식회사 | 플래시 파일 시스템 |
KR101907059B1 (ko) * | 2011-12-21 | 2018-10-12 | 삼성전자 주식회사 | 비휘발성 메모리 장치의 블록 관리 방법 및 블록 관리 시스템 |
US10642663B2 (en) * | 2014-09-10 | 2020-05-05 | Oracle International Corporation | Coordinated garbage collection in distributed systems |
US9898202B2 (en) * | 2015-11-30 | 2018-02-20 | Samsung Electronics Co., Ltd. | Enhanced multi-streaming though statistical analysis |
KR102653401B1 (ko) * | 2016-07-18 | 2024-04-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작방법 |
US10032488B1 (en) * | 2016-12-29 | 2018-07-24 | Sandisk Technologies Llc | System and method of managing data in a non-volatile memory having a staging sub-drive |
US10101942B1 (en) * | 2017-04-17 | 2018-10-16 | Sandisk Technologies Llc | System and method for hybrid push-pull data management in a non-volatile memory |
US11048624B2 (en) * | 2017-04-25 | 2021-06-29 | Samsung Electronics Co., Ltd. | Methods for multi-stream garbage collection |
KR102233400B1 (ko) * | 2017-05-29 | 2021-03-26 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
TWI679534B (zh) * | 2017-09-18 | 2019-12-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及資料儲存方法 |
JP2019057172A (ja) * | 2017-09-21 | 2019-04-11 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
KR20190044798A (ko) | 2017-10-23 | 2019-05-02 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
KR20200100955A (ko) * | 2019-02-19 | 2020-08-27 | 에스케이하이닉스 주식회사 | 메모리 시스템의 맵 데이터 관리 방법 및 장치 |
KR20210094915A (ko) * | 2020-01-22 | 2021-07-30 | 삼성전자주식회사 | 스토리지 컨트롤러, 이를 포함하는 스토리지 장치 및 스토리지 컨트롤러의동작 방법 |
-
2019
- 2019-11-25 KR KR1020190152272A patent/KR20210063764A/ko active Search and Examination
-
2020
- 2020-08-25 US US17/002,210 patent/US11526438B2/en active Active
- 2020-09-27 CN CN202011031236.3A patent/CN112835811A/zh not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024087724A1 (zh) * | 2022-10-28 | 2024-05-02 | 华为技术有限公司 | 垃圾回收的方法、页面存储的方法和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US20210157723A1 (en) | 2021-05-27 |
KR20210063764A (ko) | 2021-06-02 |
US11526438B2 (en) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111290704B (zh) | 用于控制储存在存储系统中的数据的装置和方法 | |
CN110928807B (zh) | 用于检查存储器系统中的有效数据的设备和方法 | |
US10963175B2 (en) | Apparatus and method for searching valid data in memory system | |
US11526438B2 (en) | Memory system capable of increasing storage efficiency and operation method thereof | |
CN110825659B (zh) | 用于检查存储器系统中的块中的有效数据的设备和方法 | |
US11150822B2 (en) | Memory system for determining usage of a buffer based on I/O throughput and operation method thereof | |
CN112148632A (zh) | 用于改善存储器系统的输入/输出吞吐量的设备和方法 | |
CN113900586A (zh) | 存储器系统及其操作方法 | |
CN111581121B (zh) | 用于管理存储器系统中的映射数据的方法和设备 | |
CN110781023A (zh) | 用于在存储器系统中处理数据的设备和方法 | |
CN111752474A (zh) | 控制存储器系统的写入操作的设备和方法 | |
CN112558860A (zh) | 分布和读取数据的存储器系统及其操作方法 | |
CN112286835A (zh) | 管理存储器系统中的元数据的设备和方法 | |
CN111435334B (zh) | 在存储器系统中检查有效数据的设备和方法 | |
CN113010098A (zh) | 用于提高存储器系统的输入/输出吞吐量的设备和方法 | |
CN113448503B (zh) | 调整顺序命令的操作时间差的存储器系统及其操作方法 | |
CN112445424A (zh) | 提高存储器系统的输入/输出吞吐量的设备和方法 | |
CN112667146A (zh) | 有效管理存储块的存储器系统及其操作方法 | |
CN113050881A (zh) | 提高存储器系统输入/输出吞吐量的设备和方法 | |
CN113050882A (zh) | 用于提高存储器系统的输入/输出吞吐量的设备和方法 | |
CN112416818A (zh) | 通过运行时间覆盖管理固件的设备和方法 | |
CN111857565A (zh) | 存储器系统、数据处理系统及其操作方法 | |
US11348646B2 (en) | Apparatus and method for managing program operation time and write latency in memory system | |
CN112230841A (zh) | 提高存储器系统的输入/输出吞吐量的设备和方法 | |
CN111831577A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210525 |
|
WW01 | Invention patent application withdrawn after publication |