CN111240586B - 存储器系统及其操作方法 - Google Patents
存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN111240586B CN111240586B CN201910988848.2A CN201910988848A CN111240586B CN 111240586 B CN111240586 B CN 111240586B CN 201910988848 A CN201910988848 A CN 201910988848A CN 111240586 B CN111240586 B CN 111240586B
- Authority
- CN
- China
- Prior art keywords
- block
- memory
- level
- blocks
- garbage collection
- 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.)
- Active
Links
Classifications
-
- 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
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0629—Configuration or reconfiguration of storage systems
-
- 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/0653—Monitoring storage devices or systems
-
- 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/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- 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
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及一种存储器系统,该存储器系统可包括:存储器装置,包括多个存储块;以及控制器,被配置成控制存储器装置,其中控制器包括:块级别管理器,被配置成基于将数据写入到存储器装置的写入历史来确定多个存储块中的每一个的级别,并基于该级别来管理冷块;以及垃圾收集管理器,被配置成基于空闲块计数与第一阈值的比较结果来确定垃圾收集紧急级别,并且基于所确定的垃圾收集紧急级别来管理是否对冷块执行垃圾收集操作。
Description
相关申请的交叉引用
本申请要求于2018年11月29日提交的申请号为10-2018-0150684的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
本发明的各个实施例总体涉及一种存储器装置。特别地,实施例涉及一种存储器系统及其操作方法。
背景技术
近来,计算机环境的范例已经转变为允许随时随地使用计算机系统的普适计算。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用已经迅速增加。通常,这种便携式电子装置使用一种包括存储器装置的存储器系统,也就是数据存储装置。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
发明内容
各个实施例涉及一种非易失性存储器装置的内部操作方法,且更特别地,涉及一种操作存储器系统的方法及存储器系统,该方法用于对非易失性存储器装置中包括的非易失性存储块有效地执行垃圾收集操作,存储器系统包括存储器控制器和能够执行该方法的非易失性存储器装置。
在实施例中,存储器系统可包括:存储器装置,包括多个存储块;以及控制器,被配置成控制存储器装置,其中控制器包括:块级别管理器,被配置成基于将数据写入到存储器装置的写入历史来确定多个存储块中的每一个的级别,并基于该级别来管理冷块;以及垃圾收集管理器,被配置成基于空闲块计数与第一阈值的比较结果来确定垃圾收集紧急级别,并且基于所确定的垃圾收集紧急级别来管理是否对冷块执行垃圾收集操作。
在实施例中,一种操作存储器系统的方法,该存储器系统包括存储器装置和控制器,存储器装置包括多个存储块,控制器被配置成控制存储器装置,该方法可包括:基于将数据写入到存储器装置的写入历史来确定多个存储块中的每一个的级别,并且基于该级别来管理冷块;并且基于空闲块计数与第一阈值的比较结果来确定垃圾收集紧急级别,并且基于所确定的垃圾收集紧急级别来管理是否对冷块执行垃圾收集操作。
在实施例中,一种控制器的操作方法,该操作方法可包括:识别存储器装置内的多个存储块之中比第二存储块具有更早的写入历史的第一存储块;并且控制存储器装置以通过根据垃圾收集操作的紧急性而选择第一存储块之中的牺牲块来执行第一垃圾收集操作。
附图说明
图1是示意性地示出根据实施例的包括存储器系统的数据处理系统的框图。
图2是示出在图1所示的存储器系统中采用的存储器装置的配置的示意图。
图3是示出根据实施例的关于存储器系统中的存储器装置的数据处理操作的示图。
图4是示出根据实施例的存储器系统中使用的超级存储块的概念的示图。
图5是更详细地示出图1的处理器的框图。
图6A和图6B是用于描述根据实施例的块级别管理器的操作的示图。
图7至图10是用于描述根据实施例的操作存储器系统的方法的示图。
图11是用于描述根据实施例的执行垃圾收集操作的方法的示图。
图12至图20是示出根据本发明的实施例的存储器系统的应用的示图。
具体实施方式
以下参照附图更详细地描述本发明的各个实施例。然而,注意的是,本发明可以不同的形式来实现。此外,本发明的方面和特征可被配置或布置成不同于所示实施例中所示出的。因此,本发明不应被解释为限于本文中阐述的实施例。相反,提供所描述的实施例使得本公开透彻且完整,并将本发明充分地传达给本发明所属领域的技术人员。而且,在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
将进一步理解的是,当元件被称为“连接到”或“联接到”另一元件时,其可直接在其它元件上、连接到或联接到其它元件,或者可存在一个或多个中间元件。此外,还将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。除非另有说明或上下文另有指示,否则两个元件之间的通信,无论直接或间接连接/联接,可以是有线的或无线的。
如本文所使用的,除非上下文另有明确说明,否则单数形式也可包括复数形式,反之亦然。除非另有说明或从上下文清楚地指向单数形式,否则本说明书和所附权利要求书中使用的冠词“一”和“一个”通常应被解释为表示“一个或多个”。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,但不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任意和全部组合。
以下参照附图详细地描述本发明的各个实施例。
图1是示出根据实施例的包括存储器系统的数据处理系统100的框图。
参照图1,数据处理系统100可包括主机102和存储器系统110。
主机102可由例如以下的各种电子装置中的任意一种来实现:诸如移动电话、MP3播放器、膝上型计算机、台式计算机、游戏机、电视(TV)、投影仪的电子装置,也就是有线和无线电子装置。
而且,主机102包括至少一个操作系统(OS)。操作系统通常管理和控制主机102的功能和操作,并且使用数据处理系统100或存储器系统110提供主机102与用户之间的互操作性。操作系统支持与用户的使用目的和操作系统的使用相对应的功能和操作。例如,根据例如主机102的移动性的设计,操作系统可以是通用操作系统或移动操作系统。根据例如用户的使用环境的设计,通用操作系统可以是个人操作系统或企业操作系统。例如,被配置成支持对普通用户的服务提供功能的个人操作系统可包括Windows和Chrome,并且被配置成确保和支持高性能的企业操作系统可包括Windows Server、Linux和Unix。被配置成支持对用户的移动服务提供功能和系统节能功能的移动操作系统可包括Android、iOS、Windowsmobile等。主机102可包括多个操作系统,并且对应于用户请求运行操作系统以利用存储器系统110执行操作。主机102将对应于用户请求的多个命令传送到存储器系统110,因此,存储器系统110执行对应于命令的操作,也就是对应于用户请求的操作。
存储器系统110响应于主机102的请求进行操作,并且特别地,存储待由主机102访问的数据。换言之,存储器系统110可用作主机102的主存储器装置或辅助存储器装置。根据与主机102联接的主机接口协议,存储器系统110可被实施为各种类型的存储装置中的任意一种。例如,存储器系统110可被实施为以下中的任意一种:固态驱动器(SSD)、多媒体卡(例如,MMC、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)和微型MMC)、安全数字卡(例如,SD、迷你SD和微型SD)、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑式闪存(CF)卡、智能媒体卡和记忆棒。
实施存储器系统110的存储装置中的任意一种可以是易失性存储器装置。作为示例而非限制,易失性存储器装置可包括动态随机存取存储器(DRAM)和/或静态随机存取存储器(SRAM)。或者,实施存储器系统110的存储装置中的任意一种可以是非易失性存储器装置,作为示例而非限制,非易失性存储器装置可包括只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电随机存取存储器(FRAM)、相变RAM(PRAM)、磁性RAM(MRAM)和/或电阻式RAM(RRAM)。
存储器系统110包括存储待由主机102访问的数据的存储器装置150,以及控制数据在存储器装置150中的存储的控制器130。
控制器130和存储器装置150可集成到一个半导体装置中。例如,控制器130和存储器装置150可集成到一个半导体装置中,并且配置固态驱动器(SSD)。在存储器系统110用作SSD的情况下,联接到存储器系统110的主机102的操作速度可提高。控制器130和存储器装置150可集成到一个半导体装置中以形成诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)卡、紧凑式闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC和微型MMC)、安全数字卡(例如,SD、迷你SD、微型SD和SDHC)和/或通用闪存(UFS)装置。
在另一实施例中,存储器系统110可被设置在计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航装置、黑盒、数码相机、数字多媒体广播(DMB)播放器、3维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境下发送和接收信息的装置、配置家庭网络的各种电子装置之一、配置计算机网络的各种电子装置之一、配置远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或配置计算系统的各种组成元件之一中。
即使不供应电力,存储器装置150也可保持所存储的数据。特别地,存储器装置150通过写入操作存储从主机102提供的数据,并且通过读取操作将所存储的数据提供到主机102。存储器装置150包括多个存储器管芯1501至150n。
多个存储器管芯1501至150n中的每一个包括多个存储块BLK1至BLKz,多个存储块BLK1至BLKz中的每一个包括多个页面。页面中的每一个包括与多个字线(WL)联接的多个存储器单元。而且,存储器装置150包括多个平面,多个平面中的每一个包括多个存储块,例如块BLK1至BLKz。特别地,存储器装置150可包括多个存储器管芯1501至150n,多个存储器管芯1501至150n中的每一个包括多个平面。存储器装置150可以是非易失性存储器装置,例如闪速存储器。闪速存储器可具有三维(3D)堆叠结构。
控制器130响应于来自主机102的请求控制存储器装置150。例如,控制器130将从存储器装置150读取的数据提供到主机102,并将从主机102提供的数据存储在存储器装置150中。为此,控制器130控制存储器装置150的操作,诸如读取操作、写入操作、编程操作和擦除操作。
根据实施例,控制器130包括主机接口(I/F)132、处理器134、存储器接口(I/F)142和存储器144。
主机接口132用于处理从主机102传送的命令、数据等。作为示例而非限制,主机接口132可包括命令队列。命令队列可顺序地存储从主机102传送的命令、数据等中的至少一些,并且以它们存储的顺序来将其输出到高速缓存控制器。
主机接口132处理主机102的命令和数据,并且可被配置成通过诸如以下的各种接口协议中的至少一种来与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)和移动工业处理器接口(MIPI)。主机接口132可通过被称为主机接口层(HIL)的固件来驱动,主机接口层是与主机102交换数据的区域。
存储器接口142用作执行控制器130与存储器装置150之间的接口连接的存储器接口和/或存储装置接口,以允许控制器130响应于来自主机102的请求控制存储器装置150。在存储器装置150是闪速存储器的情况下,特别是在存储器装置150是NAND闪速存储器的情况下,存储器接口142根据诸如NAND闪速控制器(NFC)的处理器134的控制来生成用于存储器装置150的控制信号并处理数据。存储器接口142可支持在控制器130与存储器装置150之间处理命令和数据的接口,例如NAND闪存接口的操作,特别是支持控制器130与存储器装置150之间的数据输入/输出。存储器接口142可通过被称为闪存接口层(FIL)的固件来驱动,闪存接口层是与存储器装置150交换数据的区域。
诸如存储器系统110和控制器130的工作存储器的存储器144存储用于驱动存储器系统110和控制器130的数据。例如,当控制器130响应于来自主机102的请求控制存储器装置150时,控制器130可将从存储器装置150读取的数据提供到主机102,并且/或者将从主机102提供的数据存储在存储器装置150中。为此,当控制器130控制存储器装置150的诸如读取操作、写入操作、编程操作和擦除操作的操作时,存储器144存储允许待由存储器系统110执行的这些操作,也就是待在控制器130与存储器装置150之间执行的这些操作所需的数据。
存储器144可由易失性存储器来实现。例如,存储器144可由静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)来实现。此外,如图1所示,存储器144可设置在控制器130内。可选地,存储器144可在控制器130的外部,并且在这方面,存储器144可被实现为通过存储器接口与控制器130通信的单独的外部易失性存储器。
如上所述,存储器144存储在主机102与存储器装置150之间执行数据读取和写入操作的数据,以及在执行数据读取和写入操作时的数据。对于这种数据存储,存储器144可包括程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
处理器134控制存储器系统110的各个操作。特别地,处理器134响应于来自主机102的写入请求或读取请求来控制对存储器装置150的编程操作或读取操作。处理器134驱动被称为闪存转换层(FTL)的固件,以控制存储器系统110的一般操作。处理器134可以是多于一个的处理器,每个处理器可由微处理器或中央处理单元(CPU)来实现。
例如,控制器130在存储器装置150中执行从主机102请求的操作,也就是通过由微处理器或中央处理单元(CPU)实现的处理器134,利用存储器装置150来执行与从主机102接收的命令相对应的命令操作。控制器130可执行诸如与从主机102接收的命令相对应的命令操作的前台操作。例如,前台操作包括与写入命令相对应的编程操作、与读取命令相对应的读取操作、与擦除命令相对应的擦除操作或者与作为设置命令的设置参数命令或设置特征命令相对应的参数设置操作。
根据实施例,处理器134可包括块级别管理器135和垃圾收集管理器136。块级别管理器135和垃圾收集管理器136可由处理器134驱动。
通常,非易失性存储器装置的非易失性存储器区域中存储的无效数据的量通常可由于迭代的写入命令而增加。为了重新使用存储无效数据的存储块,可执行内部操作(例如,垃圾收集操作和损耗均衡操作)。例如,控制器130可执行垃圾收集操作,以将存储无效数据的存储块改变为空闲块。详细地,执行垃圾收集操作的方法可包括:由控制器在多个源块之中选择包括数量小于预定阈值的有效页面的牺牲块。此处,选择具有较少数量的有效页面的牺牲块的原因在于:在将牺牲块中包括的有效页面复制到目标块以将有效页面中包括的数据改变为无效数据的进程期间,如果有效页面的数量相对较大,则执行垃圾收集操作所需的时间和成本可能增加。在牺牲块中包括的有效页面被复制到为空闲块的目标块之后,牺牲块可变成空闲块。此处,为了有效地执行垃圾收集操作,在存储器装置的存储器区域中需要裕量空间。裕量空间可被称为“过度配置(OP)空间”。OP空间是通过以预定比率将一个或多个页面设置为块中的裕量空间而获得的空间。OP空间可以是针对SSD的操作,为了可靠地执行例如损耗均衡操作、垃圾收集操作和坏块管理操作的必要操作而准备的预留空间。然而,如果未将包括OP空间的源块选择为牺牲块,则可能不会使用源块中包括的OP空间,并且该源块的性能可能会逐渐降低。
为了解决这个问题,处理器134可通过块级别管理器135,根据存储块的写入历史来设置每个存储块的级别,并且管理冷块。此外,处理器134还可通过垃圾收集管理器136,根据空闲块计数来对冷块执行垃圾收集操作。在这方面,将参照图5和图6详细描述块级别管理器135和垃圾收集管理器136。
各个实施例可提供一种与主机互锁的存储器系统,该存储器系统包括至少一个处理器和包括编程命令的至少一个存储装置。例如,该至少一个处理器和包括编程命令的该至少一个存储装置可被实施为控制器130中包括的存储器144和处理器134。
图2是示出在图1所示的存储器系统中采用的存储器装置的配置的示意图。
参照图2,存储器装置150包括多个存储块,例如,第一块BLK1、第二块BLK2、第三块BLK3和第(z)块BLKz。块BLK1至BLKz中的每一个可包括多个页面,例如2M个或M个页面。页面中的每一个包括与多个字线(WL)联接的多个存储器单元。
根据待存储在一个存储器单元中或由一个存储器单元表示的位的数量,存储器装置150可包括单层单元(SLC)存储块和/或多层单元(MLC)存储块。SLC存储块包括由每个存储1位的存储器单元实现的多个页面,并且具有高数据计算性能和高耐久性。MLC存储块包括由存储器单元实现的多个页面,每个存储器单元存储多位数据(例如,2位或更多位),并且具有比SLC存储块更大的数据存储空间,也就是能够被高度集成。特别地,存储器装置150可包括作为MLC存储块的MLC存储块、三层单元(TLC)存储块、四层单元(QLC)存储块或多层单元存储块,其中MLC存储块包括由每个能够存储2位数据的存储器单元实现的多个页面,TLC存储块包括由每个能够存储3位数据的存储器单元实现的多个页面,QLC存储块包括由每个能够存储4位数据的存储器单元实现的多个页面,多层单元存储块包括由每个能够存储5位或更多位数据的存储器单元实现的多个页面。
虽然作为示例描述了存储器装置150由诸如闪速存储器(例如,NAND闪速存储器)的非易失性存储器实现,但应当注意的是,存储器装置150可被实施为诸如以下的多种类型的存储器中的任意一种:相变存储器(即,相变随机存取存储器(PCRAM))、电阻式存储器(即,电阻式随机存取存储器(RRAM或ReRAM))、铁电存储器(即,铁电随机存取存储器(FRAM))和自旋转移力矩磁性存储器(即,自旋转移力矩磁性随机存取存储器(STT-RAM或STT-MRAM))。
存储块BLK1至BLKz中的每一个通过写入操作存储从图1的主机102提供的数据,并且通过读取操作将所存储的数据提供到主机102。
图3是示出根据实施例的关于存储器系统中的存储器装置的数据处理操作的示图。
参照图3,控制器130执行与从主机102接收的命令相对应的命令操作,例如与编程命令相对应的编程操作。控制器130将对应于编程命令的用户数据编程并存储在存储器装置150的存储块BLK1至BLKz中的多个页面中。控制器130生成并更新用户数据的元数据,并将该元数据编程并存储在存储器装置150的存储块BLK1至BLKz中。元数据可包括存储块BLK1至BLKz中存储的用户数据的逻辑到物理(逻辑/物理或L2P)信息和物理到逻辑(物理/逻辑或P2L)信息。而且,元数据可包括:关于与从主机102接收的命令相对应的命令数据的信息、关于对应于命令的命令操作的信息、关于待对其执行命令操作的存储器装置150的存储块的信息、以及关于对应于命令操作的映射数据的信息。元数据可包括各种信息以及与从主机102接收的命令相对应的、除了用户数据之外的数据。
例如,控制器130将与从主机102接收的编程命令相对应的用户数据高速缓存和缓冲在控制器130的第一缓冲器510中。也就是说,控制器130将用户数据的数据段512存储在作为数据缓冲器/高速缓存的第一缓冲器510中。第一缓冲器510可被包括在控制器130的存储器144中。此后,控制器130将第一缓冲器510中存储的数据段512编程并存储在存储器装置150的存储块BLK1至BLKz中包括的页面中。
当用户数据的数据段512被编程并存储在存储块BLK1至BLKz中的页面中时,控制器130生成L2P段522和P2L段524作为元数据。控制器130可将L2P段522和P2L段524存储在控制器130的第二缓冲器520中。第二缓冲器520可被包括在控制器130的存储器144中。在第二缓冲器520中,L2P段522和P2L段524可以列表的形式来存储。然后,控制器130通过映射清除操作将L2P段522和P2L段524编程并存储在存储块BLK1至BLKz中的页面中。
控制器130执行与从主机102接收的命令相对应的命令操作。例如,控制器130执行对应于读取命令的读取操作。控制器130通过将对应于读取命令的用户数据的L2P段522和P2L段524加载到第二缓冲器520中来对它们进行检查。然后,控制器130从通过检查所获得的存储位置读取用户数据的数据段512。也就是说,控制器130从存储块BLK1至BLKz之中的特定存储块的特定页面中读取数据段512。然后,控制器130将数据段512存储在第一缓冲器510中,并将数据段512提供到主机102。
如在本公开中使用的,术语“组件”可指代以下的所有内容:(a)仅硬件电路实施方案(诸如仅以模拟和/或数字组件的实施方案)以及(b)电路与软件(和/或固件)的组合,诸如(如适用于):(i)处理器的组合或(ii)处理器/软件(包括一起工作以使诸如移动电话或服务器的设备执行各种功能的数字信号处理器、软件和存储器)的部分;以及(c)需要软件或固件来进行操作的电路,诸如微处理器或微处理器的一部分,即使该软件或固件并非物理地存在。“组件”的这种定义适用于在本申请中、包括在任意权利要求中该术语的所有使用。作为进一步的示例,如在本申请中所使用的,术语“组件”还将覆盖仅处理器(或多个处理器)或处理器的部分及其(或它们)的附带软件和/或固件的实施方案。例如并且如果适于特定的权利要求元素,术语“组件”还将覆盖用于存储装置的集成电路。
图4是示出根据实施例的存储器系统中使用的超级存储块的概念的示图。
图4示出根据实施例的存储器系统110的组件之中、包括在诸如图1的存储器装置150的存储器装置中的存储器管芯1501至150n。例如,存储器装置150可包括第一存储器管芯1501和第二存储器管芯1502。
第一存储器管芯1501和第二存储器管芯1502中的每一个可包括多个平面。例如,第一存储器管芯1501可包括第一平面PLANE00和第二平面PLANE01,第二存储器管芯1502可包括第三平面PLANE10和第四平面PLANE11。平面中的每一个可包括多个块。例如,第一平面PLANE00可包括第一至第N存储块BLOCK000至BLCOK00N,第二平面PLANE01可包括第一至第N存储块BLOCK010至BLCOK01N。第三平面PLANE10可包括第一至第N存储块BLOCK100至BLCOK10N,并且第四平面PLANE11可包括第一至第N存储块BLOCK110至BLCOK11N。
第一存储器管芯1501能够通过第零通道CH0输入/输出数据,并且第二存储器管芯1502能够通过第一通道CH1输入/输出数据。第零通道CH0和第一通道CH1可以交错方案输入/输出数据。
第一存储器管芯1501包括分别对应于多个通路WAY0和WAY1的多个平面PLANE00和PLANE01,多个通路WAY0和WAY1能够通过共享第零通道CH0以交错方案输入/输出数据。
第二存储器管芯1502包括分别对应于多个通路WAY2和WAY3的多个平面PLANE10和PLANE11,多个通路WAY2和WAY3能够通过共享第一通道CH1以交错方案输入/输出数据。
存储器装置150中的多个存储块可基于使用相同通路或通道的物理位置而被划分成组。
虽然图4的实施例作为示例示出了存储器装置150的配置,在该配置中存在两个管芯,每个管芯具有两个平面,但本发明不限于该配置。基于系统设计考虑,可使用任何适当的管芯和平面配置。每个平面中存储块的数量也可变化。
控制器130可基于不同管芯或不同平面中的多个存储块之中可被同时选择的存储块的物理位置,将它们进行分组,并将存储块组作为超级存储块进行管理。
控制器130将存储块分组为超级存储块并管理超级存储块的方案可根据设计者的选择而以各种方式来执行。下面作为示例描述了三种方案。
例如,第一方案是控制器130将存储器装置150中的多个存储器管芯1501和1502的第一存储器管芯中的第一平面PLANE00的任意存储块BLOCK000和第二平面PLANE01的任意存储块BLOCK010进行分组,并且将所分组的存储块BLOCK000和BLOCK010作为单个超级存储块A1进行管理。当对存储器装置150中的第二存储器管芯1502应用第一方案时,控制器130可将第二存储器管芯1502中的第一平面PLANE10的任意存储块BLOCK100和第二平面PLANE11的任意存储块BLOCK110进行分组,并将所分组的存储块BLOCK100和BLOCK110作为单个超级存储块A2进行管理。
例如,第二方案是控制器130对第一存储器管芯1501的第一平面PLANE00中的任意存储块BLOCK002和第二存储器管芯1502的第一平面PLANE10中的任意存储块BLOCK102进行分组,并将所分组的存储块BLOCK002和BLOCK102作为单个超级存储块B1进行管理。另外,根据第二方案,控制器130可将第一存储器管芯1501的第二平面PLANE01中的任意存储块BLOCK012和第二存储器管芯1502的第二平面PLANE11中的任意存储块BLOCK112进行分组,并将所分组的存储块BLOCK012和BLOCK112作为单个超级存储块B2进行管理。
例如,第三方案是控制器130对第一存储器管芯1501的第一平面PLANE00中的任意存储块BLOCK001、第一存储器管芯1501的第二平面PLANE01中包括的任意存储块BLOCK011、第二存储器管芯1502的第一平面PLANE10中的任意存储块BLOCK101和第二存储器管芯1502的第二平面PLANE11中的任意存储块BLOCK111进行分组,并将所分组的存储块BLOCK001、BLOCK011、BLOCK101和BLOCK111作为单个超级存储块C进行管理。
因此,通过例如通道交错方案、存储器管芯交错方案、存储器芯片交错方案或通路交错方案的交错方案,超级存储块的每一个中包括的可同时选择的存储块可基本上被同时选择。
图5是更详细地示出诸如图1的处理器134的处理器的框图。图6A和图6B是用于描述根据实施例的块级别管理器的操作的示图。
参照图5,块级别管理器135可包括块排列组件135A、块级别确定组件135B和存储装置135C。存储器装置150中包括的多个存储块可被划分成空闲块、开放或活动块以及源块。此处,空闲块可指代其中未存储数据的块,开放块可指代其中存储数据并且保留仍然能够向其写入数据的页面的块,并且源块可指代其中存储数据并且已用尽能够向其写入数据的所有页面的块。也就是说,源块中不存在能够写入数据的空页面。
块排列组件135A可基于存储器装置的写入历史按升序将序列号(SN)分配到多个相应的源块。将序列号分配到多个源块中的每一个,以便通过用作时间戳的序列号来指示多个源块的写入历史。此处,每次开放块变成源块时,块排列组件135A可将序列号SN分配到源块,或者将序列号SN重新分配到已提供有序列号SN的源块之中被更新的源块。源块可在源块的元数据改变时被更新。例如,当源块中存储的数据被更新并因此被编程到另一块中时,源块中存储的数据可能变得无效,并且可更新源块的元数据以反映源块中存储的数据无效。块排列组件135A可根据由序列号表示的源块的写入历史按升序将序列号SN分配到多个存储块中的每一个。每次序列号SN被分配到源块中的每一个时,序列号SN增加1。以这种方式,序列号SN可被分配到源块。源块的序列号SN可指示源块的写入历史。
块级别确定组件135B可根据相应的序列号SN来对每个源块设置级别。块级别确定组件135B可基于表示写入历史的序列号来对源块设置多个级别中的一个。例如,可将多个级别分为级别1部分、级别2部分和级别3部分。较低级别的源块可属于级别部分之中的较低级别部分。如上所述,块排列组件135A可根据由序列号表示的源块的写入历史按升序将序列号SN分配到多个存储块中的每一个。因此,随着级别接近级别1部分,相应的源块可接近冷块。级别1部分可以是每个具有最早写入历史的源块所属的部分。最近改变的源块可作为热块属于级别3部分。可以各种方式来设置将级别分类为各个部分的标准。首先,通过为每个级别设置预定的更新时段,可将级别部分分类为级别1部分至级别3部分。详细地,最近变成的源块可属于级别3部分。在属于级别3部分的源块之中,在第一预定时段内没有改变的源块的级别可被改变为属于级别2部分。同样,在属于级别2部分的源块之中,在第二预定时段内没有改变的源块的级别可属于级别1部分。
其次,可为各个级别部分定义预定数量的源块。也就是说,最近改变的源块可属于级别3部分。如果对于级别3部分,将源块的数量定义为3,并且级别3已满,则级别3部分的源块之中最早写入历史的源块可被改变为属于级别2部分。同样,如果对于级别2部分,将源块的数量定义为3,并且级别2已满,则级别2部分的源块之中最早写入历史的源块可被改变为属于级别1部分。
此处,上述块级别分类操作仅用于说明的目的,并且本公开的范围不限于此。例如,可进一步细分由块级别确定组件135B所确定的块级别。
此处,将参照图6A描述通过块排列组件135A和块级别确定组件135B而被提供有序列号和级别的源块。图6A是示出根据实施例的被提供有序列号SN并由块级别管理器135设置为属于级别部分的源块的时序图。
参照图6A,多个源块可被提供有序列号SN,并且通过块级别管理器135基于写入历史来设置相应的级别。
此处,分别被提供有序列号1(SN1)至序列号3(SN3)的源块12(BL12)、源块20(BL20)和源块31(BL31)可属于级别1部分。分别被提供有序列号4(SN4)至序列号6(SN6)的源块4(BL4)、源块54(BL54)和源块6(BL6)可属于级别2部分。分别被提供有序列号7(SN7)至序列号9(SN9)的源块73(BL73)、源块80(BL80)和源块91(BL91)可属于级别3部分。属于级别1部分的源块12、源块20和源块31可以是每个具有最早写入历史的块,并且可以是冷块。属于级别3部分的源块73、源块80和源块91可以是最近被改变的源块,并且可以是热块。
以这种方式,块级别确定组件135B可根据表示写入历史的序列号来确定多个源块的级别,然后通过存储装置135C来将所确定的级别相关信息写入到存储器144中包括的块级别列表700。参照图6B,块级别列表700存储源块的序列号、块信息和块级别信息。下面要描述的垃圾收集管理器可使用该块级别列表来执行垃圾收集操作。
重新参照图5,垃圾收集管理器136可包括垃圾收集级别确定组件136A、第一垃圾收集组件136B和第二垃圾收集组件136C。
垃圾收集级别确定组件136A可基于存储器装置150中包括的空闲块的数量来确定垃圾收集紧急级别。基于空闲块的数量,可将垃圾收集紧急级别确定为高级别或低级别。确定垃圾收集紧急级别,以便根据垃圾收集紧急级别来选择冷块中包括的源块作为牺牲块,并执行垃圾收集操作。也就是说,如果根据垃圾收集紧急级别确定该垃圾收集紧急级别为低级别,则确定垃圾收集紧急级别以选择属于被设置为冷块的级别1部分的源块作为牺牲块并执行垃圾收集操作,并且如果根据垃圾收集紧急级别确定垃圾收集紧急级别为高级别,则选择具有较小数量的有效页面的源块作为牺牲块并在最短时间内执行垃圾收集操作。此处,上述垃圾收集紧急级别分类仅用于说明的目的,并且本公开的范围不限于此。例如,可进一步细分由垃圾收集级别确定组件所确定的垃圾收集紧急级别。
垃圾收集级别确定组件136A可通过将空闲块计数(FBC)与第一阈值TH1进行比较来确定垃圾收集级别。也就是说,垃圾收集级别确定组件136A将FBC与第一阈值TH1进行比较。作为比较的结果,如果FBC小于第一阈值TH1(FBC<TH1),则确定垃圾收集紧急级别为高级别。如果FBC等于或大于第一阈值TH1(FBC≥TH1),则确定垃圾收集紧急级别为低级别。根据通过垃圾收集级别确定组件136A所确定的垃圾收集紧急级别的结果,垃圾收集管理器136可确定将在下面描述的第一垃圾收集组件136B或第二垃圾收集组件136C,并且执行垃圾收集操作。
首先,将描述当确定垃圾收集紧急级别为低级别时将进行操作的第一垃圾收集组件136B。
第一垃圾收集组件136B可包括冷块选择器CBS、第一牺牲块选择器VBS1和第一垃圾收集执行器GCO1。
如果通过垃圾收集级别确定组件136A确定垃圾收集紧急级别为低级别,则冷块选择器CBS可从块级别列表中选择属于冷块级别部分(即,级别1部分)的源块。例如,垃圾收集级别确定组件136A可从块级别列表中选择属于级别1部分的源块12、源块20和源块31。在下文中,也可将源块12、源块20和源块31分别表示为冷块12、冷块20和冷块31。
第一牺牲块选择器VBS1可从通过冷块选择器CBS所选择的多个冷块之中选择牺牲块,以执行垃圾收集操作。由第一牺牲块选择器VBS1从多个冷块之中选择牺牲块的方法可分为两种方法。第一种,第一牺牲块选择器VBS1可选择多个冷块之中具有等于或大于第二阈值TH2的有效页面数量的冷块作为垃圾收集操作的牺牲块。例如,在从多个冷块之中选择每个具有等于或大于第二阈值TH2的有效页面数量的冷块的情况下,将基于所选择的冷块为冷块12和冷块20来进行描述。
第二种,第一牺牲块选择器VBS1可选择多个冷块之中具有小于预定的第三阈值TH3的有效页面数量的冷块作为垃圾收集操作的牺牲块。例如,在从多个冷块之中选择每个具有小于第三阈值TH3的有效页面数量的冷块的情况下,将基于所选择的冷块为冷块31来进行描述。
第一牺牲块选择器VBS1可以前述方式来选择牺牲块。
第一垃圾收集执行器GCO1可将由第一牺牲块选择器VBS1选择的牺牲块的有效页面复制到空闲块的空页面。接下来,第一垃圾收集执行器GCO1可擦除牺牲块并将经擦除的牺牲块设置为空闲块。例如,将描述由第一牺牲块选择器VBS1通过第一种方法选择为牺牲块的冷块12和冷块20。第一垃圾收集执行器GCO1可将被选择为牺牲块的冷块12和冷块20的有效页面复制到空闲块的空页面。接下来,在已擦除冷块12和冷块20中包括的所有页面之后,可将冷块12和冷块20设置为空闲块。接下来,将描述由第一牺牲块选择器VBS1通过第二种方法选择为牺牲块的冷块31。第一垃圾收集执行器GCO1可将被选择为牺牲块的冷块31的有效页面复制到空闲块的空页面。接下来,在已擦除冷块31中包括的所有页面之后,可将冷块31设置为空闲块。
在通过上述方法对冷块执行垃圾收集操作的情况下,因为冷块也可变成空闲块,所以可利用传统技术中无法使用的冷块的OP空间。
接下来,将描述当确定垃圾收集紧急级别为高级别时将进行操作的第二垃圾收集组件136C。
在垃圾收集级别确定组件136A确定垃圾收集紧急级别为高级别的情况下,可选择并操作第二垃圾收集组件136C,以便在短时间内生成空闲块。
第二垃圾收集组件136C可包括第二牺牲块选择器VBS2和第二垃圾收集执行器GCO2。
第二牺牲块选择器VBS2可从整个源块中选择牺牲块,以便在短时间内执行垃圾收集操作。第二牺牲块选择器VBS2可在多个源块之中选择具有小于第四阈值TH4的有效页面数量的源块作为垃圾收集操作的牺牲块。
第二垃圾收集执行器GCO2可将由第二牺牲块选择器VBS2选择的牺牲块的有效页面复制到空闲块的空页面。接下来,第二垃圾收集执行器GCO2可擦除牺牲块并将经擦除的牺牲块设置为空闲块。
图7至图10是用于描述根据实施例的操作存储器系统的方法的示图。图7是用于描述针对待更新的每个源块确定块级别的方法的示图。
参照图7,在步骤S701中,块级别管理器135可基于写入历史按升序将序列号(SN)分配到多个相应的源块。将序列号分配到多个源块中的每一个,以便通过用作时间戳的序列号来指示多个源块的写入历史。此处,每次开放块变成源块时,块级别管理器135可将序列号SN分配到源块,或者将序列号SN重新分配到已提供有序列号SN的源块之中被更新的源块。块排列组件135A可根据由序列号表示的源块的写入历史按升序将序列号SN分配到多个存储块中的每一个。每次将序列号SN分配到源块中的每一个时,序列号SN增加1。以这种方式,序列号SN可被分配到源块。源块的序列号SN可指示源块的写入历史。
在步骤S703中,块级别管理器135可根据相应的序列号SN来确定每个源块的级别。也就是说,块级别管理器135可基于表示写入历史的序列号来对源块设置多个级别中的一个。例如,将基于将多个级别设置为级别1部分、级别2部分和级别3部分来进行描述。较低级别的源块可属于级别部分之中的较低级别部分。如上所述,块排列组件135A可根据由序列号表示的源块的写入历史按升序将序列号SN分配到多个存储块中的每一个。因此,随着级别接近级别1部分,相应的源块可接近冷块。级别1部分可以是每个具有最早写入历史的源块所属的部分。最近变成的源块可作为热块属于级别3部分。可以各种方式来设置将级别分类为各个部分的标准。首先,通过为每个级别设置预定的更新时段,可将级别部分分为级别1部分至级别3部分。详细地,最近变成的源块可属于级别3部分。在属于级别3部分的源块之中,在第一预定时段内没有改变的源块的级别可变成属于级别2部分。同样,在属于级别2部分的源块之中,在第二预定时段内没有改变的源块的级别可变成属于级别1部分。
其次,可为各个级别部分定义预定数量的源块。换言之,最近变成的源块可属于级别3部分。如果对于级别3部分,将源块的数量定义为3,并且该数量已满,则级别3部分的源块之中最早写入历史的源块可变成属于级别2部分。同样,如果对于级别2部分,将源块的数量定义为3,并且该数量已满,则级别2部分的源块之中最早写入历史的源块可变成属于级别1部分。
在步骤S705中,每次更新每个源块时,将所分配的序列号和级别信息写入到存储器144中包括的块级别列表。块级别列表存储序列号、块信息和块级别信息。
图8至图10是用于描述根据实施例的执行垃圾收集操作的方法的示图。
参照图8,在步骤S801中,垃圾收集管理器136可基于存储器装置150中包括的空闲块的数量来确定垃圾收集紧急级别。基于空闲块的数量,可将垃圾收集紧急级别确定为高级别或低级别。确定垃圾收集紧急级别,以便根据垃圾收集紧急级别来选择冷块中包括的源块作为牺牲块,并执行垃圾收集操作。也就是说,如果根据垃圾收集紧急级别确定该垃圾收集紧急级别为低级别,则确定垃圾收集紧急级别以选择属于被设置为冷块的级别1部分的源块作为牺牲块并执行垃圾收集操作,并且如果根据垃圾收集紧急级别确定该垃圾收集紧急级别为高级别,则选择具有较小数量的有效页面的源块作为牺牲块并在最短时间内执行垃圾收集操作。此处,上述垃圾收集紧急级别分类仅用于说明的目的,并且本公开的范围不限于此。例如,可进一步细分由垃圾收集级别确定组件所确定的垃圾收集紧急级别。在本实施例中,通过比较空闲块计数(FBC)与预定计数例如第一阈值TH1来确定垃圾收集紧急级别。
在步骤S803中,垃圾收集管理器136执行比较操作,检查空闲块计数(FBC)是否小于第一阈值TH1。作为比较的结果,如果FBC等于或大于第一阈值TH1(FBC≥TH1)(即步骤S803处为否),则在步骤S805中,确定垃圾收集紧急级别为低级别。
在确定垃圾收集紧急级别为低级别的情况下,在步骤S807中,可从块级别列表中的冷块之中选择牺牲块,并且可执行垃圾收集操作。此处,将参照图9和图10描述从冷块之中选择牺牲块的方法。
参照图9,如果确定垃圾收集紧急级别为低级别,则在步骤S901中,垃圾收集管理器136可从块级别列表中选择属于冷块级别部分(即,级别1部分)的源块。
在步骤S903中,在步骤S901中选择的多个冷块之中具有等于或大于第二阈值TH2的有效页面数量的冷块可被选择为垃圾收集操作的牺牲块。此处,所有的冷块可被选择为牺牲块。
在步骤S905中,垃圾收集管理器136可将所选择的牺牲块的有效页面复制到空闲块的空页面。
此后,在步骤S907中,垃圾收集管理器136可擦除牺牲块并将经擦除的牺牲块设置为空闲块。
参照图10,如果确定垃圾收集紧急级别为低级别,则在步骤S1001中,垃圾收集管理器136可从块级别列表中选择属于冷块级别部分(即,级别1部分)的源块。
在步骤S1003中,在步骤S1001中选择的多个冷块之中具有小于第三阈值TH3的有效页面数量的冷块可被选择为垃圾收集操作的牺牲块。此处,所有的冷块可被选择为牺牲块。
在步骤S1005中,垃圾收集管理器136可将所选择的牺牲块的有效页面复制到空闲块的空页面。
此后,在步骤S1007中,垃圾收集管理器136可擦除牺牲块并将经擦除的牺牲块设置为空闲块。
重新参照图8,在步骤S803中,如果FBC小于第一阈值TH1(FBC<TH1)(是),则在步骤S811中,垃圾收集管理器136确定垃圾收集紧急级别为高级别。
在步骤S813中,当确定垃圾收集紧急级别为高级别时,为了在短时间中生成空闲块,基于整个源块中包括的有效页面选择牺牲块。也就是说,垃圾收集管理器136可选择多个源块之中具有小于第四阈值TH4的有效页面数量的源块作为牺牲块。
在步骤S815中,垃圾收集管理器136可将所选择的牺牲块的有效页面复制到空闲块的空页面。此后,在步骤S817中,垃圾收集管理器136可擦除牺牲块并将经擦除的牺牲块设置为空闲块。
图11是用于描述根据实施例的执行垃圾收集操作的方法的示图。
参照图11,在步骤S1101中,控制器130可识别存储器装置150内的多个存储块之中比第二存储块具有更早的写入历史的第一存储块。在实施例中,步骤S1101可对应于参照图7描述的进程。在实施例中,第一存储块可对应于冷块,并且第二存储块对应于热块。在实施例中,如参照图5和图6A所述,冷块可比热块具有更早的写入历史。
在步骤S1103中,控制器130可基于多个存储块之中的空闲块的数量来确定垃圾收集操作的紧急性。在实施例中,如参照图8的步骤S803所述,当空闲块的数量大于第三参考值时,可确定垃圾收集操作的紧急性为低,否则为高。
在步骤S1105中,如参照图8的步骤S801至S807以及图9和图10的步骤所述,当确定垃圾收集操作的紧急性为低时,控制器130可控制存储器装置150以通过根据垃圾收集操作的紧急性来选择第一存储块之中的牺牲块来执行第一垃圾收集操作。在实施例中,牺牲块可具有比第一参考值更多的有效页面数量。在实施例中,牺牲块可具有比第二参考值更少的无效页面数量。
在步骤S1107中,如参照图8的步骤S811至S817所述,当确定垃圾收集操作的紧急性为高时,控制器130可控制存储器装置150以通过选择第二存储块之中的牺牲块来执行第二垃圾收集操作。在实施例中,牺牲块可具有比第四参考值更少的有效页面数量。
图12至图20是示出根据本发明的实施例的存储器系统的应用的示图。
图12是示出根据实施例的包括存储器系统的数据处理系统的示图。图12示出应用了存储器系统的存储卡系统6100。
参照图12,存储卡系统6100包括连接器6110、存储器控制器6120和存储器装置6130。
存储器控制器6120与被实施为非易失性存储器(NVM)的存储器装置6130连接以对存储器装置6130进行访问。例如,存储器控制器6120控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120提供存储器装置6130和主机(未示出)之间的接口,并驱动固件以控制存储器装置6130。也就是说,存储器控制器6120可对应于上面参照图1描述的存储器系统110中的控制器130,并且存储器装置6130可对应于上面参照图1描述的存储器系统110中的存储器装置150。
因此,存储器控制器6120可包括诸如随机存取存储器(RAM)、处理器、主机接口、存储器接口和错误校正组件的组件。
存储器控制器6120可通过连接器6110与例如上面参照图1描述的主机10的外部装置通信。例如,如上面参照图1所述,存储器控制器6120可被配置成通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WiFi或Wi-Fi以及蓝牙。因此,根据实施例的存储器系统和数据处理系统可应用于有线和/或无线电子设备,特别是移动电子设备。
存储器装置6130可由诸如以下的非易失性存储器来实施:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和/或自旋力矩转移磁性RAM(STT-MRAM)。
控制器6120和存储器装置6130可被集成到一个半导体装置中以形成固态驱动器(SSD)或诸如以下的存储卡:PC卡(例如,个人计算机存储卡国际协会(PCMCIA))、紧凑式闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC和eMMC)、安全数字(SD)卡(例如,SD、迷你SD、微型SD和SDHC)或通用闪存(UFS)。
图13是示出根据实施例的包括存储器系统的数据处理系统6200的示图。
参照图13,数据处理系统6200包括通过至少一个非易失性存储器(NVM)实施的存储器装置6230和控制存储器装置6230的存储器控制器6220。数据处理系统6200可以是诸如存储卡(例如,CF、SD和微型SD)的存储介质。存储器装置6230可对应于上面参照图1描述的存储器系统110中的存储器装置150,并且存储器控制器6220可对应于上面参照图1描述的存储器系统110中的控制器130。
存储器控制器6220响应于来自主机6210的请求来控制对存储器装置6230的读取操作、写入操作和擦除操作。存储器控制器6220包括至少一个CPU 6221、例如RAM 6222的缓冲存储器、ECC电路6223、主机接口6224和例如NVM接口6225的存储器接口。
CPU 6221可控制存储器装置6230的一般操作,例如读取操作、写入操作、文件系统管理操作、坏页面管理操作等。RAM 6222根据CPU6221的控制进行操作,并且可被用作工作存储器、缓冲存储器、高速缓存存储器等。在将RAM 6222用作工作存储器的情况下,由CPU6221处理的数据被临时存储在RAM 6222中。在将RAM 6222用作缓冲存储器的情况下,RAM6222用于缓冲待从主机6210传送到存储器装置6230的数据或待从存储器装置6230传送到主机6210的数据。在将RAM 6222用作高速缓存存储器的情况下,RAM 6222可用于使存储器装置6230能够以较高的速度运转。
ECC电路6223生成用于校正从存储器装置6230接收的数据中的失败位或错误位的错误校正码(ECC)。而且,ECC电路6223对待提供到存储器装置6230的数据执行错误校正编码,并且生成具有添加的奇偶校验位的数据。奇偶校验位可存储在存储器装置6230中。ECC电路6223可对从存储器装置6230输出的数据执行错误校正解码。ECC电路6223可通过使用奇偶校验位来校正错误。例如,ECC电路6223可通过使用诸如LDPC码、BCH码、turbo码、里德-所罗门(Reed-Solomon)码、卷积码、RSC、TCM和BCM的各种编码调制来校正错误。
存储器控制器6220通过主机接口6224与主机6210交换数据,并且通过NVM接口6225与存储器装置6230交换数据。主机接口6224可通过PATA总线、SATA总线、SCSI、USB、PCIe或NAND接口与主机6210连接。进一步地,当实施无线通信功能或者诸如WiFi或长期演进(LTE)的移动通信协议时,存储器控制器6220可通过与例如主机6210或另一外部装置的外部装置连接来发送和接收数据。具体地,由于存储器控制器6220被配置成通过各种通信协议之中的至少一种与外部装置进行通信,因此根据实施例的存储器系统和数据处理系统可应用于有线和/或无线电子设备,特别是移动电子设备。
图14是示出根据实施例的包括存储器系统的数据处理系统的示图。图14示出应用了存储器系统的固态驱动器(SSD)6300。
参照图14,SSD 6300包括控制器6320和包括多个非易失性存储器(NVM)的存储器装置6340。控制器6320可对应于上面参照图1描述的存储器系统110中的控制器130,并且存储器装置6340可对应于上面参照图1描述的存储器系统110中的存储器装置150。
控制器6320通过多个通道CH1、CH2、CH3、……和CHi与存储器装置6340连接。控制器6320包括至少一个处理器6321、ECC电路6322、主机接口6324、缓冲存储器6325以及例如非易失性存储器接口6326的存储器接口。
缓冲存储器6325临时存储从主机6310接收的数据或从存储器装置6340中包括的多个闪速存储器NVM接收的数据,或者临时存储多个闪速存储器NVM的元数据,例如,包括映射表的映射数据。缓冲存储器6325可由易失性存储器或非易失性存储器来实现,其中易失性存储器包括但不限于:DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM,非易失性存储器包括但不限于:FRAM、ReRAM、STT-MRAM和PRAM。虽然在图14中示出缓冲存储器6325设置在控制器6320的内部,但缓冲存储器6325可设置在控制器6320的外部。
ECC电路6322在编程操作中计算待编程到存储器装置6340中的数据的错误校正码值。ECC电路6322在读取操作中基于错误校正码值对从存储器装置6340读取的数据执行错误校正操作。ECC电路6322在针对失败数据的恢复操作中对从存储器装置6340恢复的数据执行错误校正操作。
主机接口6324提供对于例如主机6310的外部装置的接口功能,并且非易失性存储器接口6326提供对于通过多个通道CH1、CH2、CH3、……和CHi连接的存储器装置6340的接口功能。
当使用各自应用了存储器系统110的多个SSD 6300时,可实施例如独立磁盘冗余阵列(RAID)系统的数据处理系统。在RAID系统中,可包括多个SSD 6300和用于控制多个SSD6300的RAID控制器。在通过从主机6310接收写入命令来执行编程操作的情况下,RAID控制器可在多个RAID级别之中,也就是在多个SSD 6300之中选择与所接收的写入命令的RAID级别信息相对应的至少一个存储器系统,也就是至少一个SSD 6300,并且可将对应于写入命令的数据输出到所选择的SSD 6300。而且,在通过从主机6310接收读取命令来执行读取操作的情况下,RAID控制器可在多个RAID级别之中,也就是在多个SSD 6300之中选择与所接收的读取命令的RAID级别信息相对应的至少一个存储器系统,也就是至少一个SSD 6300,并且可将从所选择的SSD 6300输出的数据提供到主机6310。
图15是示出根据实施例的包括存储器系统的数据处理系统的示图。图15示出应用了存储器系统的嵌入式多媒体卡(eMMC)6400。
参照图15,eMMC 6400包括控制器6430和存储器装置6440,该存储器装置6440由至少一个NAND闪速存储器来实施。控制器6430可对应于上面参照图1描述的存储器系统110中的控制器130,并且存储器装置6440可对应于上面参照图1描述的存储器系统110中的存储器装置150。
控制器6430通过多个通道与存储器装置6440连接。控制器6430包括至少一个内核6432、主机接口(I/F)6431以及存储器接口,即NAND接口(I/F)6433。
内核6432控制eMMC 6400的一般操作。主机接口6431提供控制器6430和主机6410之间的接口功能。NAND接口6433提供存储器装置6440与控制器6430之间的接口功能。例如,如上参照图1所述,主机接口6431可以是并行接口,例如MMC接口,或者可以是串行接口,例如超高速(UHS)-I/UHS-II和/或UFS接口。
图16至图19是示出根据实施例的包括存储器系统的数据处理系统的示例的示图。图16至图19中的每一个示出应用了存储器系统的通用闪存(UFS)。
参照图16至图19,各个UFS系统6500、6600、6700和6800可分别包括主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830。各个主机6510、6610、6710和6810可以是有线和/或无线电子设备,特别是移动电子设备等的应用处理器。各个UFS装置6520、6620、6720和6820可以是嵌入式UFS装置。各个UFS卡6530、6630、6730和6830可以是外部嵌入式UFS装置或可移动UFS卡。
在各个UFS系统6500、6600、6700和6800中,主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过UFS协议与外部装置通信,例如与有线和/或无线电子设备,特别是移动电子设备等通信。UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可被实施为上面参照图1描述的存储器系统110。例如,在各个UFS系统6500、6600、6700和6800中,UFS装置6520、6620、6720和6820可以上面参照图13至图15描述的数据处理系统6200、SSD 6300或eMMC 6400的形式来实施,并且UFS卡6530、6630、6730和6830可以上面参照图12描述的存储卡系统6100的形式来实施。
在各个UFS系统6500、6600、6700和6800中,主机6510、6610、6710和6810,UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过例如移动工业处理器接口(MIPI)中的MIPI M-PHY和MIPI统一协议(UniPro)的通用闪存(UFS)接口来执行通信。UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可通过除UFS协议之外的另一协议来执行通信,例如,诸如以下的各种卡协议中的任意一种:通用串行总线(USB)、闪存驱动器(UFD)、多媒体卡(MMC)、安全数字(SD)、迷你SD和微型SD。
在图16所示的UFS系统6500中,UniPro存在于主机6510、UFS装置6520和UFS卡6530的每一个中。主机6510执行交换操作,以执行与UFS装置6520和UFS卡6530中的每一个的通信。特别地,主机6510通过UniPro中的链路层交换,例如L3交换来执行与UFS装置6520或UFS卡6530的通信。UFS装置6520和UFS卡6530可通过在主机6510的UniPro中的链路层交换来执行通信。虽然作为示例描述了一个UFS装置6520和一个UFS卡6530联接到主机6510,但注意的是,多个UFS装置和多个UFS卡可以并行或星型布置联接到主机6510。而且,多个UFS卡可以并行、星型、串行或链型布置中的任意一种联接到UFS装置6520。
在图17所示的UFS系统6600中,UniPro存在于主机6610、UFS装置6620和UFS卡6630的每一个中。主机6610通过执行交换操作的交换组件6640,特别是在UniPro中执行链路层交换,例如L3交换操作的交换组件6640,来执行与UFS装置6620或UFS卡6630的通信。UFS装置6620和UFS卡6630可通过交换组件6640的UniPro中的链路层交换来执行通信。虽然作为示例描述了一个UFS装置6620和一个UFS卡6630联接到交换组件6640,但注意的是,多个UFS装置和多个UFS卡可以并行型或星型布置联接到交换组件6640。而且,多个UFS卡可以并行、星型、串行或链型布置中的任意一种联接到UFS装置6620。
在图18所示的UFS系统6700中,UniPro存在于主机6710、UFS装置6720和UFS卡6730的每一个中。主机6710通过执行交换操作的交换组件6740,特别是在UniPro中执行链路层交换,例如L3交换操作的交换组件6740,来执行与UFS装置6720或UFS卡6730的通信。UFS装置6720和UFS卡6730可通过交换组件6740的UniPro中的链路层交换来执行通信。交换组件6740可在UFS装置6720内部或外部与UFS装置6720作为一个组件实施。虽然作为示例描述了一个UFS装置6720和一个UFS卡6730联接到交换组件6740,但注意的是,分别实施交换组件6740和UFS装置6720的多个电路可以并行型或星型布置联接到主机6710。而且,各个电路可以串行型或链型布置联接,或者多个UFS卡可以并行型或星型布置联接到交换组件6740。
在图19所示的UFS系统6800中,M-PHY和UniPro存在于主机6810、UFS装置6820和UFS卡6830的每一个中。UFS装置6820执行交换操作以执行与主机6810和UFS卡6830的通信。特别地,UFS装置6820通过用于与主机6810通信的M-PHY和UniPro电路和用于与UFS卡6830通信的M-PHY和UniPro电路之间的交换,例如目标标识符(ID)交换,来执行与主机6810或UFS卡6830的通信。主机6810和UFS卡6830可通过UFS装置6820的M-PHY和UniPro电路之间的目标ID交换来执行通信。虽然作为示例描述了一个UFS装置6820联接到主机6810,且一个UFS卡6830联接到一个UFS装置6820,但注意的是,多个UFS装置可以并行型或星型布置联接到主机6810。而且,多个UFS卡可以并行、星型、串行或链型布置中的任意一种联接到一个UFS装置6820。
图20是示出根据实施例的包括存储器系统的数据处理系统的示图。图20示出应用了存储器系统的用户系统6900。
参照图20,用户系统6900包括用户接口6910、存储器组件6920、应用处理器6930、网络组件6940和存储组件6950。
应用处理器6930驱动用户系统6900中包括的组件和操作系统(OS)。例如,应用处理器6930可包括用于控制用户系统6900包括中的组件的控制器、接口、图形引擎和其它组件。应用处理器6930可被设置为片上系统(SoC)。
存储器组件6920可作为用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓存存储器来操作。存储器组件6920可包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和/或LPDDR3 SDRAM的易失性随机存取存储器,或者诸如PRAM、ReRAM、MRAM和/或FRAM的非易失性随机存取存储器。例如,应用处理器6930和存储器组件6920可作为堆叠式封装(PoP)来安装。
网络组件6940可与外部装置通信。例如,网络组件6940不仅可支持有线通信,而且可支持各种无线通信,诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、全球微波接入互操作性(Wimax)、无线局域网(WLAN)、超宽带(UWB)、蓝牙、无线显示(WI-DI)等,从而可与有线和/或无线电子设备,特别是移动电子设备通信。因此,存储器系统和数据处理系统可应用于有线和/或无线电子设备。网络组件6940可被包括在应用处理器6930中。
存储组件6950可存储数据,例如从应用处理器6930接收的数据,并且将其中存储的数据传送到应用处理器6930。存储组件6950可通过诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(ReRAM)、NAND闪速存储器、NOR闪速存储器和3维NAND闪速存储器的非易失性存储器中的任意一种来实施。而且,存储组件6950可被设置为诸如用户系统6900的存储卡或外部驱动器的可移动存储介质。也就是说,存储组件6950可对应于上面参照图1描述的存储器系统110,并且可被实施为上面参照图12至图17描述的SSD、eMMC以及UFS。
用户接口6910可包括用于向应用处理器6930输入数据或命令或者用于将数据输出到外部装置的接口。例如,用户接口6910可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口,以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监控器的用户输出接口。
在上面参照图1描述的存储器系统110被应用于根据实施例的用户系统6900的移动电子设备的情况下,应用处理器6930控制移动电子设备的一般操作,并且如上所述,作为通信组件的网络组件6940控制与外部装置的有线和/或无线通信。作为移动电子设备的显示和触摸组件的用户接口6910显示由应用处理器6930处理的数据或支持从触摸面板的数据输入。
在各个实施例中,可基于存储块的写入历史来确定多个存储块的级别,并且可基于所确定的级别来管理冷块。当多个存储块中的空闲块的数量等于或大于阈值时,可对冷块执行垃圾收集操作。因此,可有效地使用冷块中包括的过度配置(OP)空间。
虽然为了说明的目的已经描述各个实施例,但是对于本领域技术人员将显而易见的是,在不脱离如所附权利要求中限定的本发明的精神和范围的情况下,可以进行各种改变和变型。
Claims (28)
1.一种存储器系统,包括:
存储器装置,包括多个存储块;以及
控制器,控制所述存储器装置,
其中所述控制器包括:
块级别管理器,基于将数据写入到所述存储器装置的写入历史来确定所述多个存储块中的每一个的级别,并基于所述级别来管理冷块;以及
垃圾收集管理器,将空闲块计数与第一阈值进行比较,当所述空闲块计数等于或大于所述第一阈值时,在所述多个存储块之中选择基于将数据写入到所述存储器装置的写入历史而确定的冷块,并且对所选择的冷块执行垃圾收集操作。
2.根据权利要求1所述的存储器系统,其中所述块级别管理器包括:
块排列组件,基于所述写入历史向所述多个存储块中的每一个分配序列号;
块级别确定组件,根据所述序列号对所述多个存储块中的每一个设置多个级别中的一个;以及
存储装置,在块级别列表中存储与序列号和所设置的级别相对应的关于所述存储块的信息。
3.根据权利要求2所述的存储器系统,其中所述块排列组件根据所述写入历史按升序为所述多个存储块中的每一个分配所述序列号。
4.根据权利要求2所述的存储器系统,
其中所述多个级别包括第一级别部分至第N级别部分,
其中所述块级别管理器确定所述多个存储块中的每一个的级别和级别部分,使得具有所分配的序列号之中的较低序列号的存储块属于所述第一级别部分至第N级别部分之中的较低级别部分,并且
其中所述冷块属于第一级别部分,并且热块属于所述第N级别部分。
5.根据权利要求4所述的存储器系统,其中所述块级别管理器基于所述存储块的写入历史和所述第一级别部分至第N级别部分的预定数量中的一个来调整所述多个存储块中的每一个的级别部分。
6.根据权利要求4所述的存储器系统,其中所述垃圾收集管理器包括:
垃圾收集级别确定组件,通过将所述空闲块计数与所述第一阈值进行比较来确定垃圾收集紧急级别;
第一垃圾收集组件,当确定结果指示所述空闲块计数等于或大于所述第一阈值时,执行第一垃圾收集操作;以及
第二垃圾收集组件,当所述确定结果指示所述空闲块计数小于所述第一阈值时,执行第二垃圾收集操作。
7. 根据权利要求6所述的存储器系统,其中所述第一垃圾收集组件包括:
第一牺牲块选择器,在对应于所述第一级别部分的冷块之中选择一个或多个牺牲块;以及
第一垃圾收集执行器,将所述牺牲块中包括的有效页面复制到空闲块的空页面,擦除所述牺牲块并将经擦除的牺牲块设置为空闲块。
8.根据权利要求7所述的存储器系统,其中所述第一牺牲块选择器在所述冷块之中选择一个或多个冷块作为所述牺牲块,所述一个或多个冷块中的每一个具有等于或大于第二阈值的有效页面数量或者具有小于第三阈值的有效页面数量。
9. 根据权利要求6所述的存储器系统,其中所述第二垃圾收集组件包括:
第二牺牲块选择器,在所述多个存储块之中选择一个或多个牺牲块;以及
第二垃圾收集执行器,将所述牺牲块中包括的有效页面复制到空闲块的空页面,擦除所述牺牲块并将经擦除的牺牲块设置为空闲块。
10.根据权利要求9所述的存储器系统,其中所述第二牺牲块选择器在所述多个存储块之中选择一个或多个存储块作为所述牺牲块,所述一个或多个存储块中的每一个具有小于第四阈值的有效页面数量。
11. 一种操作存储器系统的方法,所述存储器系统包括存储器装置和控制器,所述存储器装置包括多个存储块,所述控制器控制所述存储器装置,所述方法包括:
基于将数据写入到所述存储器装置的写入历史来确定所述多个存储块中的每一个的级别,并基于所述级别来管理冷块;并且
基于空闲块计数与第一阈值的比较结果来确定垃圾收集紧急级别,当所述空闲块计数等于或大于所述第一阈值时选择所述冷块,并且对所选择的冷块执行垃圾收集操作。
12.根据权利要求11所述的方法,其中基于将数据写入到所述存储器装置的写入历史来确定所述多个存储块中的每一个的级别并基于所述级别来管理冷块包括:
基于所述写入历史向所述多个存储块中的每一个分配序列号;
根据所述序列号对所述多个存储块中的每一个设置多个级别中的一个;并且
在块级别列表中存储与序列号和所设置的级别相对应的关于所述存储块的信息。
13.根据权利要求12所述的方法,其中基于所述写入历史向所述多个存储块中的每一个分配序列号包括:
根据所述写入历史按升序为所述多个存储块中的每一个分配所述序列号。
14.根据权利要求12所述的方法,
其中所述多个级别包括第一级别部分至第N级别部分,
其中确定所述多个存储块中的每一个的级别和级别部分,使得所分配的序列号之中的较低序列号的存储块属于所述第一级别部分至第N级别部分之中的较低级别部分,并且
其中所述冷块属于第一级别部分,并且热块属于所述第N级别部分。
15.根据权利要求14所述的方法,其中基于所述存储块的写入历史和所述第一级别部分至第N级别部分的预定数量中的一个来调整所述多个存储块中的每一个的级别部分。
16.根据权利要求14所述的方法,其中基于所确定的垃圾收集紧急级别来管理是否对所述冷块执行垃圾收集操作包括:
通过将所述空闲块计数与所述第一阈值进行比较来确定所述垃圾收集紧急级别;
当确定结果指示所述空闲块计数等于或大于所述第一阈值时,执行第一垃圾收集操作;并且
当所述确定结果指示所述空闲块计数小于所述第一阈值时,执行第二垃圾收集操作。
17. 根据权利要求16所述的方法,其中执行第一垃圾收集操作包括:
在对应于所述第一级别部分的冷块之中选择一个或多个牺牲块;并且
将所述牺牲块中包括的有效页面复制到空闲块的空页面,擦除所述牺牲块并将经擦除的牺牲块设置为空闲块。
18.根据权利要求17所述的方法,其中在冷块之中选择一个或多个牺牲块包括:在所述冷块之中选择一个或多个冷块作为牺牲块,所述一个或多个冷块中的每一个具有等于或大于第二阈值的有效页面数量或者具有小于第三阈值的有效页面数量。
19. 根据权利要求16所述的方法,其中执行第二垃圾收集操作包括:
在所述多个存储块之中选择一个或多个牺牲块;并且
将所述牺牲块中包括的有效页面复制到空闲块的空页面,擦除所述牺牲块并将经擦除的牺牲块设置为空闲块。
20.根据权利要求19所述的方法,其中选择所述一个或多个牺牲块包括:在所述多个存储块之中选择一个或多个存储块作为所述牺牲块,所述一个或多个存储块中的每一个具有小于第四阈值的有效页面数量。
21. 一种控制器的操作方法,所述操作方法包括:
识别存储器装置内的多个存储块之中比第二存储块具有更早的写入历史的第一存储块;并且
在空闲块计数等于或大于第一阈值时,控制所述存储器装置以通过根据垃圾收集操作的紧急性在所述第一存储块之中选择牺牲块来执行第一垃圾收集操作。
22.根据权利要求21所述的操作方法,其中所述牺牲块具有比第一参考值更多的有效页面数量。
23.根据权利要求21所述的操作方法,其中所述牺牲块具有比第二参考值更少的无效页面数量。
24.根据权利要求21所述的操作方法,进一步包括:基于所述多个存储块之中的空闲块的数量来确定所述垃圾收集操作的紧急性。
25.根据权利要求24所述的操作方法,其中当所述空闲块的数量大于第三参考值时,确定所述垃圾收集操作的紧急性为低,否则为高。
26.根据权利要求25所述的操作方法,控制所述存储器装置以在确定所述垃圾收集操作的紧急性为低时执行所述第一垃圾收集操作。
27.根据权利要求25所述的操作方法,进一步包括:当确定所述垃圾收集操作的紧急性为高时,控制所述存储器装置以通过在所述第二存储块之中选择所述牺牲块来执行第二垃圾收集操作。
28.根据权利要求27所述的操作方法,其中所述牺牲块具有比第四参考值更少的有效页面数量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0150684 | 2018-11-29 | ||
KR1020180150684A KR20200064499A (ko) | 2018-11-29 | 2018-11-29 | 메모리 시스템 및 메모리 시스템의 동작방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111240586A CN111240586A (zh) | 2020-06-05 |
CN111240586B true CN111240586B (zh) | 2023-09-12 |
Family
ID=70850062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910988848.2A Active CN111240586B (zh) | 2018-11-29 | 2019-10-17 | 存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11086537B2 (zh) |
KR (1) | KR20200064499A (zh) |
CN (1) | CN111240586B (zh) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11893265B2 (en) * | 2017-05-02 | 2024-02-06 | Google Llc | Garbage collection for data storage |
CN112997162A (zh) * | 2018-11-20 | 2021-06-18 | 华为技术有限公司 | 一种删除内存中索引项的方法、装置 |
KR20200085513A (ko) * | 2019-01-07 | 2020-07-15 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템 |
US11113270B2 (en) | 2019-01-24 | 2021-09-07 | EMC IP Holding Company LLC | Storing a non-ordered associative array of pairs using an append-only storage medium |
WO2021012162A1 (zh) * | 2019-07-22 | 2021-01-28 | 华为技术有限公司 | 存储系统数据压缩的方法、装置、设备及可读存储介质 |
US11604759B2 (en) | 2020-05-01 | 2023-03-14 | EMC IP Holding Company LLC | Retention management for data streams |
US11599546B2 (en) | 2020-05-01 | 2023-03-07 | EMC IP Holding Company LLC | Stream browser for data streams |
US11599420B2 (en) | 2020-07-30 | 2023-03-07 | EMC IP Holding Company LLC | Ordered event stream event retention |
US11567665B2 (en) * | 2020-08-31 | 2023-01-31 | Micron Technology, Inc. | Data dispersion-based memory management |
US11513871B2 (en) | 2020-09-30 | 2022-11-29 | EMC IP Holding Company LLC | Employing triggered retention in an ordered event stream storage system |
US11755555B2 (en) | 2020-10-06 | 2023-09-12 | EMC IP Holding Company LLC | Storing an ordered associative array of pairs using an append-only storage medium |
US11599293B2 (en) | 2020-10-14 | 2023-03-07 | EMC IP Holding Company LLC | Consistent data stream replication and reconstruction in a streaming data storage platform |
KR20220060385A (ko) * | 2020-11-04 | 2022-05-11 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
KR20220086934A (ko) * | 2020-12-17 | 2022-06-24 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 시스템의 저널링 제어 장치 및 방법 |
US11816065B2 (en) | 2021-01-11 | 2023-11-14 | EMC IP Holding Company LLC | Event level retention management for data streams |
US11404133B1 (en) * | 2021-03-09 | 2022-08-02 | Micron Technology, Inc. | Valid translation unit count-based memory management |
US20220291858A1 (en) * | 2021-03-15 | 2022-09-15 | Pure Storage, Inc. | Utilizing programming page size granularity to optimize data segment storage in a storage system |
US11775197B2 (en) * | 2021-03-25 | 2023-10-03 | Kyocera Document Solutions Inc. | Single command for reading then clearing dynamic random access memory |
US11740828B2 (en) * | 2021-04-06 | 2023-08-29 | EMC IP Holding Company LLC | Data expiration for stream storages |
US12001881B2 (en) | 2021-04-12 | 2024-06-04 | EMC IP Holding Company LLC | Event prioritization for an ordered event stream |
US11954537B2 (en) | 2021-04-22 | 2024-04-09 | EMC IP Holding Company LLC | Information-unit based scaling of an ordered event stream |
US11681460B2 (en) | 2021-06-03 | 2023-06-20 | EMC IP Holding Company LLC | Scaling of an ordered event stream based on a writer group characteristic |
US11543993B1 (en) * | 2021-06-17 | 2023-01-03 | Western Digital Technologies, Inc. | Fast garbage collection in zoned namespaces SSDs |
US11735282B2 (en) | 2021-07-22 | 2023-08-22 | EMC IP Holding Company LLC | Test data verification for an ordered event stream storage system |
US11733893B2 (en) * | 2021-07-28 | 2023-08-22 | International Business Machines Corporation | Management of flash storage media |
US11907564B2 (en) * | 2021-08-03 | 2024-02-20 | Yadro International Ltd. | Method of and system for initiating garbage collection requests |
CN113918091B (zh) * | 2021-09-13 | 2022-06-07 | 北京得瑞领新科技有限公司 | Nand闪存中物理块的控制方法、装置及ssd设备 |
US11922047B2 (en) * | 2021-09-16 | 2024-03-05 | EMC IP Holding Company LLC | Using RPO as an optimization target for DataDomain garbage collection |
JP2023044330A (ja) * | 2021-09-17 | 2023-03-30 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11847334B2 (en) * | 2021-09-23 | 2023-12-19 | EMC IP Holding Company LLC | Method or apparatus to integrate physical file verification and garbage collection (GC) by tracking special segments |
US11971850B2 (en) | 2021-10-15 | 2024-04-30 | EMC IP Holding Company LLC | Demoted data retention via a tiered ordered event stream data storage system |
KR20230059911A (ko) | 2021-10-26 | 2023-05-04 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
CN114327254A (zh) * | 2021-11-16 | 2022-04-12 | 三星(中国)半导体有限公司 | 存储数据的方法和装置 |
US20230195351A1 (en) * | 2021-12-17 | 2023-06-22 | Samsung Electronics Co., Ltd. | Automatic deletion in a persistent storage device |
US12019899B2 (en) * | 2022-03-03 | 2024-06-25 | Western Digital Technologies, Inc. | Data relocation with protection for open relocation destination blocks |
US11886735B2 (en) * | 2022-03-22 | 2024-01-30 | Micron Technology, Inc. | Data movement based on address table activity |
US11934656B2 (en) * | 2022-04-11 | 2024-03-19 | Netapp, Inc. | Garbage collection and bin synchronization for distributed storage architecture |
US11941297B2 (en) | 2022-04-11 | 2024-03-26 | Netapp, Inc. | Garbage collection and bin synchronization for distributed storage architecture |
US11947452B2 (en) * | 2022-06-01 | 2024-04-02 | Micron Technology, Inc. | Controlling variation of valid data counts in garbage collection source blocks |
US20240012579A1 (en) * | 2022-07-06 | 2024-01-11 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for data placement in a storage device |
US20240036725A1 (en) * | 2022-07-28 | 2024-02-01 | Micron Technology, Inc. | Temporal metric driven media management scheme |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012158521A1 (en) * | 2011-05-17 | 2012-11-22 | Sandisk Technologies Inc. | Non-volatile memory and method having block management with hot/cold data sorting |
CN106250052A (zh) * | 2015-06-05 | 2016-12-21 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN107632777A (zh) * | 2016-07-18 | 2018-01-26 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN108628763A (zh) * | 2017-03-21 | 2018-10-09 | 西部数据技术公司 | 用于高效垃圾收集的预测块分配的存储系统和方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8799561B2 (en) * | 2012-07-27 | 2014-08-05 | International Business Machines Corporation | Valid page threshold based garbage collection for solid state drive |
US10162748B2 (en) * | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US9582193B2 (en) | 2014-09-02 | 2017-02-28 | Sandisk Technologies Llc | Triggering a process to reduce declared capacity of a storage device in a multi-storage-device storage system |
KR101539895B1 (ko) | 2014-09-30 | 2015-07-27 | 홍익대학교 산학협력단 | 오버 프로비저닝 스페이스 사이즈를 결정하는 컴퓨팅 방법 및 장치 |
US10318414B2 (en) * | 2014-10-29 | 2019-06-11 | SK Hynix Inc. | Memory system and memory management method thereof |
US9996297B2 (en) * | 2014-11-14 | 2018-06-12 | SK Hynix Inc. | Hot-cold data separation method in flash translation layer |
US10339048B2 (en) * | 2014-12-23 | 2019-07-02 | International Business Machines Corporation | Endurance enhancement scheme using memory re-evaluation |
US10296452B2 (en) * | 2015-05-11 | 2019-05-21 | SK Hynix Inc. | Data separation by delaying hot block garbage collection |
KR102509540B1 (ko) | 2015-06-30 | 2023-03-14 | 삼성전자주식회사 | 저장 장치 및 그것의 가비지 컬렉션 방법 |
US10489291B2 (en) * | 2018-01-23 | 2019-11-26 | Goke Us Research Laboratory | Garbage collection method for a data storage apparatus by finding and cleaning a victim block |
-
2018
- 2018-11-29 KR KR1020180150684A patent/KR20200064499A/ko not_active Application Discontinuation
-
2019
- 2019-09-19 US US16/575,642 patent/US11086537B2/en active Active
- 2019-10-17 CN CN201910988848.2A patent/CN111240586B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012158521A1 (en) * | 2011-05-17 | 2012-11-22 | Sandisk Technologies Inc. | Non-volatile memory and method having block management with hot/cold data sorting |
CN106250052A (zh) * | 2015-06-05 | 2016-12-21 | 爱思开海力士有限公司 | 存储系统及其操作方法 |
CN107632777A (zh) * | 2016-07-18 | 2018-01-26 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN108628763A (zh) * | 2017-03-21 | 2018-10-09 | 西部数据技术公司 | 用于高效垃圾收集的预测块分配的存储系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20200174668A1 (en) | 2020-06-04 |
CN111240586A (zh) | 2020-06-05 |
US11086537B2 (en) | 2021-08-10 |
KR20200064499A (ko) | 2020-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111240586B (zh) | 存储器系统及其操作方法 | |
CN108121669B (zh) | 存储器系统及其操作方法 | |
CN107797882B (zh) | 存储器系统及其操作方法 | |
CN110858180B (zh) | 数据处理系统及其操作方法 | |
CN109144408B (zh) | 存储器系统及其操作方法 | |
CN110825318B (zh) | 控制器及其操作方法 | |
CN109426449B (zh) | 存储器系统及其操作方法 | |
US20190278518A1 (en) | Memory system and operating method thereof | |
CN109656837B (zh) | 存储器系统及其操作方法 | |
CN110928807B (zh) | 用于检查存储器系统中的有效数据的设备和方法 | |
CN108108308B (zh) | 存储器系统及其操作方法 | |
CN110570894B (zh) | 存储器系统及该存储器系统的操作方法 | |
CN110825659B (zh) | 用于检查存储器系统中的块中的有效数据的设备和方法 | |
CN109656749B (zh) | 存储器系统及其操作方法 | |
CN110968522B (zh) | 存储器系统及其操作方法、包括存储器系统的数据库系统 | |
US11675543B2 (en) | Apparatus and method for processing data in memory system | |
CN108733616B (zh) | 包括多处理器的控制器及其操作方法 | |
CN110895449B (zh) | 用于在存储器系统中管理有效数据的装置和方法 | |
CN111352858B (zh) | 存储器系统及其操作方法 | |
CN111290970B (zh) | 存储器系统及其操作方法 | |
CN110888819B (zh) | 存储器系统及其操作方法 | |
CN115543860A (zh) | 数据处理系统及其操作方法 | |
CN109407968B (zh) | 存储器系统及其操作方法 | |
CN110032329B (zh) | 控制器和其操作方法以及存储器系统 | |
KR20230018831A (ko) | 메모리 시스템 및 그 동작 방법 |
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 |