CN111240586A - 存储器系统及其操作方法 - Google Patents

存储器系统及其操作方法 Download PDF

Info

Publication number
CN111240586A
CN111240586A CN201910988848.2A CN201910988848A CN111240586A CN 111240586 A CN111240586 A CN 111240586A CN 201910988848 A CN201910988848 A CN 201910988848A CN 111240586 A CN111240586 A CN 111240586A
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.)
Granted
Application number
CN201910988848.2A
Other languages
English (en)
Other versions
CN111240586B (zh
Inventor
边谕俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN111240586A publication Critical patent/CN111240586A/zh
Application granted granted Critical
Publication of CN111240586B publication Critical patent/CN111240586B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller 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、Windows mobile等。主机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根据CPU 6221的控制进行操作,并且可被用作工作存储器、缓冲存储器、高速 缓存存储器等。在将RAM 6222用作工作存储器的情况下,由CPU 6221 处理的数据被临时存储在RAM 6222中。在将RAM 6222用作缓冲存储 器的情况下,RAM 6222用于缓冲待从主机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和用于控制多个SSD 6300的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.根据权利要求1所述的存储器系统,其中所述垃圾收集管理器包括:
垃圾收集级别确定组件,通过将所述空闲块计数与所述第一阈值进行比较来确定所述垃圾收集紧急级别;
第一垃圾收集组件,当确定结果指示所述空闲块计数等于或大于所述第一阈值时,执行第一垃圾收集操作;以及
第二垃圾收集组件,当所述确定结果指示所述空闲块计数小于所述第一阈值时,执行第二垃圾收集操作。
7.根据权利要求6所述的存储器系统,其中所述第一垃圾收集组件包括:
第一牺牲块选择器,在对应于所述第一级别的冷块之中选择一个或多个牺牲块;以及
第一垃圾收集执行器,将所述牺牲块中包括的有效页面复制到空闲块的空页面,擦除所述牺牲块并将经擦除的牺牲块设置为空闲块。
8.根据权利要求7所述的存储器系统,其中所述第一牺牲块选择器在所述冷块之中选择一个或多个冷块作为所述牺牲块,所述一个或多个冷块中的每一个具有等于或大于第二阈值的有效页面数量或者具有小于第三阈值的有效页面数量。
9.根据权利要求6所述的存储器系统,其中所述第二垃圾收集组件包括:
第二牺牲块选择器,在所述多个存储块之中选择一个或多个牺牲块;以及
第二垃圾收集执行器,将所述牺牲块中包括的有效页面复制到空闲块的空页面,擦除所述牺牲块并将经擦除的牺牲块设置为空闲块。
10.根据权利要求9所述的存储器系统,其中所述第二牺牲块选择器在所述多个存储块之中选择一个或多个存储块作为所述牺牲块,所述一个或多个存储块中的每一个具有小于第四阈值的有效页面数量。
11.一种操作存储器系统的方法,所述存储器系统包括存储器装置和控制器,所述存储器装置包括多个存储块,所述控制器控制所述存储器装置,所述方法包括:
基于将数据写入到所述存储器装置的写入历史来确定所述多个存储块中的每一个的级别,并基于所述级别来管理冷块;并且
基于空闲块计数与第一阈值的比较结果来确定垃圾收集紧急级别,并且基于所确定的垃圾收集紧急级别来管理是否对所述冷块执行垃圾收集操作。
12.根据权利要求11所述的方法,其中基于将数据写入到所述存储器装置的写入历史来确定所述多个存储块中的每一个的级别并基于所述级别来管理冷块包括:
基于所述写入历史向所述多个存储块中的每一个分配序列号;
根据所述序列号对所述多个存储块中的每一个设置多个级别中的一个;并且
在块级别列表中存储与序列号和所设置的级别相对应的关于所述存储块的信息。
13.根据权利要求12所述的方法,其中基于所述写入历史向所述多个存储块中的每一个分配序列号包括:
根据所述写入历史按升序为所述多个存储块中的每一个分配所述序列号。
14.根据权利要求12所述的方法,
其中所述多个级别包括第一级别部分至第N级别部分,
其中确定所述多个存储块中的每一个的级别和级别部分,使得所分配的序列号之中的较低序列号的存储块属于所述第一级别部分至第N级别部分之中的较低级别部分,并且
其中所述冷块属于第一级别部分,并且热块属于所述第N级别部分。
15.根据权利要求14所述的方法,其中基于所述存储块的写入历史和所述第一级别部分至第N级别部分的预定数量中的一个来调整所述多个存储块中的每一个的级别部分。
16.根据权利要求11所述的方法,其中基于所确定的垃圾收集紧急级别来管理是否对所述冷块执行垃圾收集操作包括:
通过将所述空闲块计数与所述第一阈值进行比较来确定所述垃圾收集紧急级别;
当确定结果指示所述空闲块计数等于或大于所述第一阈值时,执行第一垃圾收集操作;并且
当所述确定结果指示所述空闲块计数小于所述第一阈值时,执行第二垃圾收集操作。
17.根据权利要求16所述的方法,其中执行第一垃圾收集操作包括:
在对应于所述第一级别的冷块之中选择一个或多个牺牲块;并且
将所述牺牲块中包括的有效页面复制到空闲块的空页面,擦除所述牺牲块并将经擦除的牺牲块设置为空闲块。
18.根据权利要求17所述的方法,其中在冷块之中选择一个或多个牺牲块包括:在所述冷块之中选择一个或多个冷块作为牺牲块,所述一个或多个冷块中的每一个具有等于或大于第二阈值的有效页面数量或者具有小于第三阈值的有效页面数量。
19.根据权利要求16所述的方法,其中执行第二垃圾收集操作包括:
在所述多个存储块之中选择一个或多个牺牲块;并且
将所述牺牲块中包括的有效页面复制到空闲块的空页面,擦除所述牺牲块并将经擦除的牺牲块设置为空闲块。
20.根据权利要求19所述的方法,其中选择所述一个或多个牺牲块包括:在所述多个存储块之中选择一个或多个存储块作为所述牺牲块,所述一个或多个存储块中的每一个具有小于第四阈值的有效页面数量。
21.一种控制器的操作方法,所述操作方法包括:
识别存储器装置内的多个存储块之中比第二存储块具有更早的写入历史的第一存储块;并且
控制所述存储器装置以通过根据垃圾收集操作的紧急性在所述第一存储块之中选择牺牲块来执行第一垃圾收集操作。
22.根据权利要求21所述的操作方法,其中所述牺牲块具有比第一参考值更多的有效页面数量。
23.根据权利要求21所述的操作方法,其中所述牺牲块具有比第二参考值更少的无效页面数量。
24.根据权利要求21所述的操作方法,进一步包括:基于所述多个存储块之中的空闲块的数量来确定所述垃圾收集操作的紧急性。
25.根据权利要求24所述的操作方法,其中当所述空闲块的数量大于第三参考值时,确定所述垃圾收集操作的紧急性为低,否则为高。
26.根据权利要求25所述的操作方法,控制所述存储器装置以在确定所述垃圾收集操作的紧急性为低时执行所述第一垃圾收集操作。
27.根据权利要求25所述的操作方法,进一步包括:当确定所述垃圾收集操作的紧急性为高时,控制所述存储器装置以通过在所述第二存储块之中选择所述牺牲块来执行第二垃圾收集操作。
28.根据权利要求27所述的操作方法,其中所述牺牲块具有比第四参考值更少的有效页面数量。
CN201910988848.2A 2018-11-29 2019-10-17 存储器系统及其操作方法 Active CN111240586B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180150684A KR20200064499A (ko) 2018-11-29 2018-11-29 메모리 시스템 및 메모리 시스템의 동작방법
KR10-2018-0150684 2018-11-29

Publications (2)

Publication Number Publication Date
CN111240586A true CN111240586A (zh) 2020-06-05
CN111240586B 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220197862A1 (en) * 2020-12-17 2022-06-23 SK Hynix Inc. Journaling apparatus and method in a non-volatile memory system

Families Citing this family (41)

* Cited by examiner, † Cited by third party
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
EP3993273A4 (en) * 2019-07-22 2022-07-27 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR DATA COMPRESSION IN A STORAGE SYSTEM, DEVICE AND READABLE STORAGE MEDIUM
US11599546B2 (en) 2020-05-01 2023-03-07 EMC IP Holding Company LLC Stream browser for data streams
US11604759B2 (en) 2020-05-01 2023-03-14 EMC IP Holding Company LLC Retention management 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 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11816065B2 (en) 2021-01-11 2023-11-14 EMC IP Holding Company LLC Event level retention management for data streams
US12099513B2 (en) 2021-01-19 2024-09-24 EMC IP Holding Company LLC Ordered event stream event annulment in an ordered event stream storage system
US11404133B1 (en) 2021-03-09 2022-08-02 Micron Technology, Inc. Valid translation unit count-based memory management
US12099742B2 (en) * 2021-03-15 2024-09-24 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 三星(中国)半导体有限公司 存储数据的方法和装置
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
US12045461B2 (en) * 2022-07-28 2024-07-23 Micron Technology, Inc. Temporal metric driven media management scheme
US20240295981A1 (en) * 2023-03-03 2024-09-05 Western Digital Technologies, Inc. Data Storage Device and Method for Host-Assisted Efficient Handling of Multiple Versions of Data

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120297122A1 (en) * 2011-05-17 2012-11-22 Sergey Anatolievich Gorobets Non-Volatile Memory and Method Having Block Management with Hot/Cold Data Sorting
US20140032817A1 (en) * 2012-07-27 2014-01-30 International Business Machines Corporation Valid page threshold based garbage collection for solid state drive
US20150347296A1 (en) * 2014-05-30 2015-12-03 Sandisk Enterprise Ip Llc Prioritizing Garbage Collection and Block Allocation Based on I/O History for Logical Address Regions
US20160124848A1 (en) * 2014-10-29 2016-05-05 Sk Hynix Memory Solutions Inc. Memory system and memory management method thereof
US20160139812A1 (en) * 2014-11-14 2016-05-19 Sk Hynix Memory Solutions Inc. Hot-cold data separation method in flash translation layer
US20160179412A1 (en) * 2014-12-23 2016-06-23 International Business Machines Corporation Endurance enhancement scheme using memory re-evaluation
US20160335179A1 (en) * 2015-05-11 2016-11-17 Sk Hynix Memory Solutions Inc. Data separation by delaying hot block garbage collection
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 홍익대학교 산학협력단 오버 프로비저닝 스페이스 사이즈를 결정하는 컴퓨팅 방법 및 장치
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

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120297122A1 (en) * 2011-05-17 2012-11-22 Sergey Anatolievich Gorobets Non-Volatile Memory and Method Having Block Management with Hot/Cold Data Sorting
WO2012158521A1 (en) * 2011-05-17 2012-11-22 Sandisk Technologies Inc. Non-volatile memory and method having block management with hot/cold data sorting
US20140032817A1 (en) * 2012-07-27 2014-01-30 International Business Machines Corporation Valid page threshold based garbage collection for solid state drive
US20150347296A1 (en) * 2014-05-30 2015-12-03 Sandisk Enterprise Ip Llc Prioritizing Garbage Collection and Block Allocation Based on I/O History for Logical Address Regions
US20160124848A1 (en) * 2014-10-29 2016-05-05 Sk Hynix Memory Solutions Inc. Memory system and memory management method thereof
US20160139812A1 (en) * 2014-11-14 2016-05-19 Sk Hynix Memory Solutions Inc. Hot-cold data separation method in flash translation layer
US20160179412A1 (en) * 2014-12-23 2016-06-23 International Business Machines Corporation Endurance enhancement scheme using memory re-evaluation
US20160335179A1 (en) * 2015-05-11 2016-11-17 Sk Hynix Memory Solutions Inc. Data separation by delaying hot block garbage collection
CN106250052A (zh) * 2015-06-05 2016-12-21 爱思开海力士有限公司 存储系统及其操作方法
CN107632777A (zh) * 2016-07-18 2018-01-26 爱思开海力士有限公司 存储器系统及其操作方法
CN108628763A (zh) * 2017-03-21 2018-10-09 西部数据技术公司 用于高效垃圾收集的预测块分配的存储系统和方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220197862A1 (en) * 2020-12-17 2022-06-23 SK Hynix Inc. Journaling apparatus and method in a non-volatile memory system
US11704281B2 (en) * 2020-12-17 2023-07-18 SK Hynix Inc. Journaling apparatus and method in a non-volatile memory system

Also Published As

Publication number Publication date
US11086537B2 (en) 2021-08-10
CN111240586B (zh) 2023-09-12
US20200174668A1 (en) 2020-06-04
KR20200064499A (ko) 2020-06-08

Similar Documents

Publication Publication Date Title
CN111240586B (zh) 存储器系统及其操作方法
CN110858180B (zh) 数据处理系统及其操作方法
KR102533072B1 (ko) 블록의 상태에 따라 사용 여부를 결정하는 메모리 시스템 및 메모리 시스템의 동작 방법
CN109426449B (zh) 存储器系统及其操作方法
CN110806984B (zh) 在存储器系统中搜索有效数据的设备和方法
US20190278518A1 (en) Memory system and operating method thereof
CN110928807B (zh) 用于检查存储器系统中的有效数据的设备和方法
CN110825318B (zh) 控制器及其操作方法
US11675543B2 (en) Apparatus and method for processing data in memory system
CN110825659B (zh) 用于检查存储器系统中的块中的有效数据的设备和方法
US10747469B2 (en) Memory system and operating method of the same
KR102646252B1 (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
KR102692901B1 (ko) 메모리 시스템에서의 비휘발성 메모리 블록 내 데이터를 삭제하는 방법 및 장치
CN110806837A (zh) 数据处理系统及其操作方法
CN110895449B (zh) 用于在存储器系统中管理有效数据的装置和方法
CN110895447A (zh) 控制器及其操作方法
CN111352858B (zh) 存储器系统及其操作方法
CN110888819B (zh) 存储器系统及其操作方法
KR102708925B1 (ko) 메모리 시스템에서의 유효 데이터 체크 방법 및 장치
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