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

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

Info

Publication number
CN110716880B
CN110716880B CN201910126682.3A CN201910126682A CN110716880B CN 110716880 B CN110716880 B CN 110716880B CN 201910126682 A CN201910126682 A CN 201910126682A CN 110716880 B CN110716880 B CN 110716880B
Authority
CN
China
Prior art keywords
memory
effective page
page reduction
reduction amount
threshold
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
Application number
CN201910126682.3A
Other languages
English (en)
Other versions
CN110716880A (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 CN110716880A publication Critical patent/CN110716880A/zh
Application granted granted Critical
Publication of CN110716880B publication Critical patent/CN110716880B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

本发明涉及一种存储器系统,该存储器系统包括:存储器装置;有效页面计数器,用于对在映射更新操作之前和之后的存储器装置中的每一个封闭块的有效页面的数量进行计数;最大有效页面减少量检测器,用于通过基于每一个封闭存储块的有效页面的数量来计算相应的封闭存储块的有效页面减少量来检测最大有效页面减少量,以便计算有效页面减少量的总和;以及垃圾收集器,用于在存储器装置中的空闲块的数量小于第一阈值且大于第二阈值,并且最大有效页面减少量与有效页面减少量的总和的比率为小于或等于第三阈值时,对存储器装置中的牺牲块执行垃圾收集操作。

Description

存储器系统及其操作方法
相关申请的交叉引用
本申请要求于2018年7月11日提交的申请号为10-2018-0080677的韩国专利申请的优先权,其整体通过引用并入本文。
技术领域
本公开的各个实施例总体涉及一种存储器系统。特别地,实施例涉及一种能够有效地执行垃圾收集操作的存储器系统和该存储器系统的操作方法。
背景技术
计算机环境范例已经转变成使计算系统能够随时随地使用的普适计算。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统来存储数据。存储器系统可用作便携式电子装置的主存储器装置或辅助存储器装置。
由于这种存储器系统不具有移动部件,因此与硬盘驱动器的特性相比,存储器系统提供优良的稳定性和耐久性、高信息访问速度以及低功耗。具有这种优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
本发明的实施例涉及一种能够有效地执行垃圾收集操作的存储器系统。
根据本发明的实施例,一种存储器系统包括:存储器装置;有效页面计数器,适于对在执行映射更新操作之前和之后的存储器装置中的每一个封闭存储块的有效页面的数量进行计数;最大有效页面减少量检测器,适于通过基于每一个封闭存储块的有效页面的计数数量计算相应的封闭存储块的有效页面减少量来检测最大有效页面减少量,以便计算有效页面减少量的总和;以及垃圾收集器,适于在存储器装置中的空闲块的数量小于第一阈值且大于第二阈值,并且最大有效页面减少量与有效页面减少量的总和的比率小于或等于第三阈值时,对存储器装置中的牺牲块执行垃圾收集操作。
根据本发明的另一实施例,一种存储器系统的操作方法包括:在执行映射更新操作之前和之后针对每一个存储块对存储器装置中的每一个封闭存储块的有效页面的数量进行计数;通过基于每一个封闭存储块的有效页面的计数数量计算相应的封闭存储块的有效页面减少量来检测最大有效页面减少量,以便计算有效页面减少量的总和;计算最大有效页面减少量与有效页面减少量的总和的比率,并将该比率与第三阈值进行比较;并且当最大有效页面减少量与有效页面减少量的总和的比率小于或等于第三阈值时,对存储器装置中的牺牲块执行垃圾收集操作。
根据本发明的另一实施例,一种存储器系统包括:存储器装置,包括封闭存储块;以及控制器,适于:针对封闭存储块中的每一个,确定有效页面的数量作为第一值;在确定第一值之后,对存储器装置执行映射更新操作;在执行映射更新操作之后,针对封闭存储块中的每一个,确定有效页面的数量作为第二值;针对封闭存储块中的每一个,确定与第一值和第二值之间的差值相对应的有效页面减少量;基于封闭存储块的有效页面减少量,确定最大有效页面减少量和有效页面减少量的总和;并且基于存储器装置中的空闲块的数量、最大有效页面减少量和有效页面减少量的总和,对存储器装置的牺牲块执行垃圾收集操作。
附图说明
图1是示出包括根据本发明的实施例的存储器系统的数据处理系统的框图。
图2是示出在图1所示的存储器系统中采用的存储器装置的示例性配置的示意图。
图3是示出图1所示的存储器装置中的存储块的存储器单元阵列的示例性配置的电路图。
图4是示出根据本发明的实施例的存储器系统的存储器装置的结构的框图。
图5是示出根据本发明的实施例的存储器系统的结构的框图。
图6是示出根据本发明的实施例的存储器系统的操作的流程图。
图7示出根据本发明的实施例的基于第一阈值和第二阈值的垃圾收集操作的示例。
图8示出根据本发明的实施例的基于第三阈值的垃圾收集操作的示例。
图9至图17是示意性示出根据本发明的各个实施例的数据处理系统的示例性应用的示图。
具体实施方式
以下将参照附图更详细地描述本发明的各个实施例。然而,本发明可以不同形式实现,并且不应被解释为限于本文阐述的实施例。相反地,提供这些实施例以使本公开将是完整且全面的,并且将本发明的范围充分地传达给本领域技术人员。在整个本公开中,相同的附图标记在本发明的各个附图和实施例中表示相同的部件。而且,在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
将理解的是,虽然在本文使用术语“第一”、“第二”、“第三”等识别各种元件,但是这些元件不受这些术语限制。这些术语用于将一个元件与另一个元件区分开,否则一个元件与另一个元件具有相同或相似名称。因此,在不脱离本发明的精神和范围的情况下,一个示例中的第一元件在另一示例中可被称为第二元件或第三元件。
附图不一定按比例绘制,并且在一些情况下,为了清楚地说明实施例的特征,比例可能已经被夸大。当元件被称为连接或联接到另一元件时,应当理解的是,前者可直接连接或联接到后者,或者经由一个或多个中间元件电连接或联接到后者。
将进一步理解的是,当元件被称为“连接到”或“联接到”另一元件时,该元件可直接在另一元件上、直接连接到或联接到另一元件,或者可存在一个或多个中间元件。另外,还将理解的是,当元件被称为在两个元件“之间”时,其可以是这两个元件之间的唯一元件,或者也可存在一个或多个中间元件。除非上下文另有明确说明,否则直接或间接连接/联接的两个元件之间的通信可以是有线的或无线的。
本文使用的术语是为了描述特定实施例,并不旨在限制本发明。
如本文使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式,反之亦然。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,并不排除一个或多个其它元件的存在或添加。如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何和全部组合。
除非另有定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的普通技术人员基于本公开通常理解的含义相同的含义。将进一步理解的是,诸如在常用字典中定义的那些术语的术语应当被解释为具有与其在本公开和相关技术语境中的含义一致的含义,并且将不以理想化或过于正式的意义来解释,除非本文中明确地这样定义。
在下面的描述中,为了提供对本发明的全面理解,阐述了大量具体细节。本发明可在没有一些或全部这些具体细节的情况下被实施。在其它情况下,未详细地描述公知的进程结构和/或进程,以避免不必要地模糊本发明。
还注意的是,在一些情况下,如对于相关领域的技术人员显而易见的是,除非另有明确说明,否则结合一个实施例所描述的特征或元件可单独使用或与另一个实施例的其它特征或元件组合使用。
图1是示出包括根据本发明的实施例的存储器系统110的数据处理系统100的框图。
参照图1,数据处理系统100可包括被可操作地联接至存储器系统110的主机102。
主机102可包括诸如移动电话、MP3播放器和膝上型计算机的各种便携式电子装置中的任何一种或诸如台式电脑、游戏机、电视(TV)和投影仪的各种非便携式电子装置中的任何一种。
主机102可包括至少一个操作系统(OS)或多个操作系统。主机102可运行OS以在存储器系统110上执行对应于用户请求的操作。此处,主机102可向存储器系统110提供对应于用户请求的多个命令。因此,存储器系统110可执行对应于多个命令的某些操作,即执行对应于用户请求的某些操作。OS可管理和控制主机102的全部功能和操作。OS可支持主机102和使用数据处理系统100或存储器系统110的用户之间的操作。
存储器系统110可响应于来自主机102的请求进行操作或执行特定功能或操作。特别地,存储器系统110可存储待由主机102访问的数据。存储器系统110可用作主机102的主存储器系统或辅助存储器系统。根据主机接口的协议,存储器系统110可利用可与主机102电联接的各种类型的存储装置中的任何一种来实施。存储器系统110的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)和嵌入式MMC(eMMC)。
存储器系统110可包括各种类型的存储装置。这种存储装置的非限制性示例包括诸如DRAM动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置和诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM)和闪速存储器的非易失性存储器装置。
存储器系统110可包括控制器130和存储器装置150。
控制器130和存储器装置150可被集成到单个半导体装置中,单个半导体装置可被包括在如上所述的各种类型的存储器系统中的任何一种中。例如,控制器130和存储器装置150可被集成为单个半导体装置以构成SSD,个人计算机存储卡国际协会(PCMCIA)卡,包括迷你-SD、微型-SD和SDHC的安全数字(SD)卡,和/或通用闪存(UFS)装置。存储器系统110可被配置成计算机、智能电话、便携式游戏机或配置计算系统的各个部件之一的一部分。
存储器装置150可以是即使不供应电力也可保留存储的数据的非易失性存储器装置。存储器装置150可以通过写入操作来存储从主机102提供的数据,并且通过读取操作将存储在其中的数据输出给主机102。在实施例中,存储器装置150可包括多个存储器管芯(未示出),并且每一个存储器管芯可包括多个平面(未示出)。每一个平面可包括多个存储块152至156,存储块中的每一个可包括多个页面,页面中的每一个可包括联接到字线的多个存储器单元。在实施例中,存储器装置150可以是具有三维(3D)堆叠结构的闪速存储器。
以下将参照图2至图4详细描述存储器装置150的结构和存储器装置150的3D堆叠结构。
控制器130可响应于来自主机102的请求来控制存储器装置150。例如,控制器130可将从存储器装置150读取的数据提供至主机102,并将从主机102提供的数据存储至存储器装置150中。对于该操作,控制器130可控制存储器装置150的读取操作、写入操作、编程操作和擦除操作。
更具体地,控制器130可包括主机接口(I/F)132、处理器134、错误校正码(ECC)部件138、电源管理单元(PMU)140、存储器接口142以及存储器144,其全部通过内部总线可操作地联接或接合。
主机接口132可处理主机102的命令和数据。主机接口132可通过诸如以下的各种接口协议中的一种或多种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。主机接口132可经由固件来驱动,即经由用于与主机102交换数据的主机接口层(HIL)来驱动。
此外,ECC部件138可校正待通过存储器装置150处理的数据的错误位,并且可包括ECC编码器和ECC解码器。ECC编码器可对待编程到存储器装置150中的数据执行错误校正编码以生成添加了奇偶校验位的数据。包括奇偶校验位的数据可存储在存储器装置150中。ECC解码器可检测并且校正从存储器装置150读取的数据中包含的错误。ECC部件138可通过诸如低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、Turbo码、里德-所罗门(Reed-Solomon,RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)等的编码调制执行错误校正操作。然而,ECC部件138不限于这些错误校正技术。这样,ECC部件138可包括用于执行适当的错误校正的任何和所有电路、模块、系统或装置。
PMU 140可管理在控制器130中使用和提供的电源。
存储器接口142可用作控制器130与存储器装置150之间的存储器/存储接口,使得控制器130可响应于来自主机102的请求来控制存储器装置150。
存储器144可用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。
存储器144可以是易失性存储器。例如,存储器144可以是静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。存储器144可被设置在控制器130的内部或外部。图1示出设置在控制器130内部的存储器144。在另一实施例中,存储器144可以是具有在存储器144和控制器130之间传输数据的存储器接口的外部易失性存储器。
如上所述,存储器144可包括程序存储器、数据存储器、写入缓冲器/高速缓存器、读取缓冲器/高速缓存器、数据缓冲器/高速缓存器以及映射缓冲器/高速缓存器,以存储在主机102和存储器装置150之间执行数据写入和读取操作所需的一些数据以及存储控制器130和存储器装置150执行这些操作所需的其它数据。
处理器134可控制存储器系统110的全部操作。处理器134可使用固件以控制存储器系统110的全部操作。固件可被称为闪存转换层(FTL)。处理器134可利用微处理器或中央处理单元(CPU)来实施。
例如,控制器130可通过处理器134在存储器装置150中执行由主机102请求的操作。而且,控制器130可通过处理器134对存储器装置150执行后台操作。对存储器装置150执行的后台操作可包括:将存储在存储器装置150的存储块152至156之中的一些存储块中的数据复制到其它存储块中并进行处理的操作,例如垃圾收集(GC)操作;在存储块152至156中的一些之间执行交换或在存储块152至156的一些之间交换数据的操作,例如损耗均衡(WL)操作;将存储在控制器130中的映射数据存储在一个或多个存储块152至156中的操作,例如映射清除操作;或者管理存储器装置150的坏块的操作,例如检测和处理存储器装置150中的存储块152至156之中的坏块的坏块管理操作。
参照图2至图4详细描述根据本发明的实施例的存储器系统的存储器装置。
图2是示出存储器装置150的示意图。图3是示出代表存储器装置150中的存储块中的任意一个的存储块330的存储器单元阵列的示例性配置的电路图。图4是说明存储器装置150的示例性三维(3D)结构的示意图。
参照图2,存储器装置150可包括多个存储块BLOCK0至BLOCKN-1,其中N为大于1的整数。块BLOCK0至BLOCKN-1中的每一个可包括多个页面,例如2M或M个页面,页面的数量可根据电路设计而变化,M是大于1的整数。页面中的每一个可包括联接到多个字线WL的多个存储器单元。
各个存储块BLOCK0至BLOCKN-1中的存储器单元可以是存储1位数据的单层单元(SLC)或存储2位数据的多层单元(MLC)中的一个或多个。因此,根据在每一个存储器单元中表示或存储的位的数量,存储器装置150可包括SLC单元或MLC单元的存储块。SLC存储块可包括由每一个都存储一位数据的SLC存储器单元实现的多个页面。SLC存储块通常可比MCL存储块具有更高的数据计算性能和更高的耐用性。MLC存储块可包括多个页面,页面通过每一个存储多位(例如,2位或更多位)数据的MLC存储器单元实现。MLC存储块通常可比SLC存储块具有更大的数据存储空间,即更高的集成度。在另一实施例中,存储器装置150可包括多个三层单元(TLC)存储块。在又一实施例中,存储器装置150可包括多个四层单元(QLC)存储块。TLC存储块可包括由每一个都能够存储3位数据的存储器单元实现的多个页面。QLC存储块可包括由每一个都能够存储4位数据的存储器单元实现的多个页面。
代替非易失性存储器,存储器装置150可通过相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM或ReRAM))、铁电随机存取存储器(FRAM)和自旋转移扭矩磁性随机存取存储器(STT-RAM)中的任何一种来实施。
存储块210、220、230和240可通过编程操作来存储从主机102传输的数据,并且可通过读取操作来将所存储的数据传输到主机102。
参照图3,代表存储块152、154、156中的任意一个的存储块330可包括联接到多个相应位线BL0至BLm-1的多个单元串340。每列的单元串340可包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。在漏极选择晶体管DST和源极选择晶体管SST之间,可串联联接多个存储器单元MC0至MCn-1。在实施例中,存储器单元晶体管MC0至MCn-1中的每一个可以由能够存储多位数据信息的MLC来实现。单元串340中的每一个可电联接到多个位线BL0至BLm-1中的对应位线。例如,如图3所示,第一单元串联接到第一位线BL0,并且最后单元串联接到最后的位线BLm-1。
虽然图3示出NAND闪速存储器单元,但本公开不限于此。注意的是,存储器单元可以是NOR闪速存储器单元,或者包括组合在其中的两种或更多种存储器单元的混合闪速存储器单元。而且,应当注意的是,存储器装置150可以是包括作为电荷存储层的导电浮栅的闪速存储器装置或包括作为电荷存储层的绝缘层的电荷撷取闪存(CTF)存储器装置。
存储器装置150可进一步包括电压供给装置310,电压供给装置310生成包括根据操作模式供应到字线的编程电压、读取电压和通过电压的不同字线电压。电压供给装置310的电压生成操作可由控制电路(未示出)来控制。在控制电路的控制下,电压供给装置310可选择存储器单元阵列的存储块(或扇区)中的至少一个,选择所选择的存储块的字线中的至少一个,并且按需要将字线电压提供给所选择的字线和未选择的字线。
存储器装置150可包括由控制电路控制的读取和写入(读取/写入)电路320。在验证/正常读取操作期间,读取/写入电路320可用作从存储器单元阵列读取(感测和放大)数据的读出放大器。在编程操作期间,读取/写入电路320可用作根据待被存储在存储器单元阵列中的数据向位线供应电压或电流的写入驱动器。在编程操作期间,读取/写入电路320可从缓冲器(未示出)接收待被存储到存储器单元阵列中的数据,并根据接收的数据驱动位线。读取/写入电路320可包括分别对应于列(或位线)或列对(或位线对)的多个页面缓冲器322至326。页面缓冲器322至326中的每一个可包括多个锁存器(未示出)。
存储器150可由2D或3D存储器装置来实现。特别地,如图4所示,存储器装置150可由具有3D堆叠结构的非易失性存储器装置来实施。当存储器装置150具有3D结构时,存储器装置150可包括多个存储块BLK0至BLKN-1。如图4所示,存储器装置150的存储块152、154和156中的每一个可以3D结构(或竖直结构)来实现。例如,存储块152、154和156可以是如图4所示的具有在例如x轴方向、y轴方向和z轴方向的三个相互正交方向上延伸的尺寸的三维结构。
存储器装置150中的每一个存储块330可包括在第二方向上延伸的多个NAND串NS以及在第一方向和第三方向上延伸的多个NAND串NS。在本文中,NAND串NS中的每一个可联接到位线BL、至少一个串选择线SSL、至少一个接地选择线GSL、多个字线WL、至少一个虚设(dummy)字线DWL和公源线CSL,并且NAND串NS中的每一个可包括多个晶体管结构TS。
简而言之,每个存储块330可联接到多个位线BL、多个串选择线SSL、多个接地选择线GSL、多个字线WL、多个虚设字线DWL以及多个共源线CSL,并且每个存储块330可包括多个NAND串NS。而且,在每个存储块330中,一个位线BL可联接到多个NAND串NS,以在一个NAND串NS中实现多个晶体管。而且,每个NAND串NS的串选择晶体管SST可联接到相应位线BL,并且每个NAND串NS的接地选择晶体管GST可联接到共源线CSL。在本文中,存储器单元MC可被设置在每个NAND串NS的串选择晶体管SST和接地选择晶体管GST之间。换言之,可在存储器装置150的存储块152、154和156的每一个存储块330中实现多个存储器单元。
通常,闪速存储器可基于页面来执行编程操作和读取操作,基于块来执行擦除操作,并且可能不支持重写操作,这与硬盘不同。因此,为了对编程到页面中的原始数据进行修改,闪速存储器可将修改的数据编程到新页面中并使原始数据的页面无效。
垃圾收集操作可指将被无效页面周期性地转换为空白页面以防止由于修改数据的过程中的被无效页面导致存储器空间被低效使用的操作。垃圾收集操作可包括将编程在牺牲块的有效页面中的数据复制到目标块的空白页面中。可根据垃圾收集操作来恢复存储器空间。然而,可能使响应于来自主机102的请求而执行的前台操作的性能劣化。
在优先考虑前台操作的性能而非恢复存储器空间的情况下,可通过降低执行垃圾收集操作的频率来防止前台操作的性能劣化。当从主机102提供顺序编程命令或者提供用于连续更新特定文件的命令时,在特定存储块中的无效页面的数量可能密集增加。因为当在特定存储块中密集地执行编程操作时缓慢地产生牺牲块,所以控制器130可通过优先考虑前台操作的性能而非恢复存储器空间来降低执行垃圾收集操作的频率,以提高前台操作的性能。
通常,当空闲块的数量小于预定阈值时,控制器130可无条件地对牺牲块执行垃圾收集操作。因此,不考虑优先维持前台操作的性能而非恢复空闲块的情况。
在各个实施例中,即使在空闲块的数量不足时,控制器130也可通过基于在映射更新操作之前和之后计数的有效页面减少量的总和(即,ΣΔVPC)与最大有效页面减少量ΔVPCMax的比率来动态地改变执行垃圾收集操作的频率来维持前台操作的性能。
图5是示出根据本发明的实施例的存储器系统110的结构的框图。例如,图5示出图1的数据处理系统100中的与本发明的各个方面相关的组成元件。
如上所述,存储器系统110可包括存储器装置150和控制器130。控制器130可控制存储器装置150的编程操作,并且执行垃圾收集操作以恢复存储器空间。
参照图5,控制器130可包括紧急传感器502、有效页面计数器504、映射更新器506、最大有效页面减少量(VPC)检测器508、工作负载检测器510和垃圾收集器512。
紧急传感器502可对空白页面的数量大于或等于阈值的空闲块的数量进行计数,该阈值可以是预定的。当空闲块的计数数量小于第一阈值TH1且大于或等于第二阈值TH2时,紧急传感器502可将触发信号Signaltrig提供到有效页面计数器504。当空闲块的计数数量小于第二阈值TH2时,紧急传感器502可如下所述将触发信号Signaltrig提供到垃圾收集器512。
有效页面计数器504可根据接收的触发信号Signaltrig对存储器装置150中的封闭存储块中的每一个的有效页面数量VPCBefore进行计数。封闭存储块中的每一个可以是具有至少一个有效页面并且不是执行编程操作的开放块的存储块。
映射更新器506可对编程到存储块中的数据(即,主机数据)的地址信息进行更新。映射更新器506可对随编程到页面中的原始数据的修改而改变的地址进行周期性地更新。当已对包括在存储器装置150中的所有存储块执行映射更新操作时,映射更新器506可将完成信号Signalcomplete提供到有效页面计数器504。
基于接收的完成信号Signalcomplete,有效页面计数器504可在执行映射更新操作之后针对每个存储块对存储器装置150中的封闭存储块的有效页面的数量VPCAfter进行计数。有效页面计数器504可将信息infoVPC传输到最大有效页面减少量检测器508。信息infoVPC可包括关于在映射更新操作之前和之后进行计数的封闭存储块中的每一个的有效页面数量(有效页面信息)的信息。
最大有效页面减少量检测器508可基于接收的有效页面信息infoVPC来计算每个存储块的有效页面减少量ΔVPC。最大有效页面减少量检测器508可计算在执行映射更新操作之后计数的封闭存储块的有效页面的数量VPCAfter和在执行映射更新操作之前计数的封闭存储块的有效页面的数量VPCBefore之间的差值,作为有效页面减少量ΔVPC。
最大有效页面减少量检测器508可基于针对每个存储块计算的有效页面减少量ΔVPC来计算有效页面减少量的总和ΣΔVPC。最大有效页面减少量检测器508可计算针对每个存储块计算的多个有效页面减少量ΔVPC的总和,作为有效页面减少量的总和ΣΔVPC。最大有效页面减少量检测器508可将关于有效页面减少量的总和的信息infoΣΔVPC传输到工作负载检测器510。
最大有效页面减少量检测器508可基于针对每个存储块计算的有效页面减少量ΔVPC来检测最大有效页面减少量ΔVPCMax。最大有效页面减少量检测器508可将分别针对存储块计算的多个有效页面减小量ΔVPC彼此进行比较,以检测被表示为最大有效页面减小量ΔVPCMax的最大ΔVPC。最大有效页面减少量检测器508可将关于最大有效页面减少量的信息infoMax传输到工作负载检测器510。
工作负载检测器510可基于关于有效页面减少量的总和的信息infoΣΔVPC和关于最大有效页面减少量的信息infoMax,计算最大有效页面减少量ΔVPCMax与有效页面减少量的总和ΣΔVPC的比率。工作负载检测器510可将最大有效页面减少量ΔVPCMax除以有效页面减少量的总和ΣΔVPC,以获得最大有效页面减少量ΔVPCMax与有效页面减少量的总和ΣΔVPC的比率。
当ΔVPCMax与ΣΔVPC的比率小于或等于第三阈值TH3时,工作负载检测器510可将触发信号Signaltrig传输到垃圾收集器512。当ΔVPCMax与ΣΔVPC的比率大于第三阈值TH3时,工作负载检测器510可将触发信号Signaltrig传输到紧急传感器502。当空闲块的数量小于第二阈值TH2时,紧急传感器502可将触发信号Signaltrig传输到垃圾收集器512。
垃圾收集器512可基于接收的触发信号Signaltrig对牺牲块执行垃圾收集操作。根据本发明的实施例,垃圾收集器512可检测有效页面的数量小于或等于设定或预定阈值的存储块作为牺牲块。垃圾收集器512可将编程在牺牲块的有效页面中的数据复制到目标块的空白页面中。
图6是示出根据本发明的实施例的例如图5的存储器系统110的存储器系统的操作的流程图。
参照图6,在步骤S602中,紧急传感器502可对空闲块的数量进行计数,并且将空闲块的数量与第一阈值TH1进行比较。当空闲块的数量大于或等于第一阈值TH1(步骤S602中为“否”)时,紧急传感器502可连续地或周期性地重复这种计数和比较操作。
在步骤S604中,当空闲块的数量小于第一阈值TH1(步骤S602中为“是”)时,紧急传感器502可将空闲块的数量与第二阈值TH2进行比较。当空闲块的数量小于第二阈值TH2(步骤S604中为“是”)时,紧急传感器502可将触发信号Signaltrig提供到垃圾收集器512。当空闲块的数量等于或大于第二阈值TH2(步骤S604中为“否”)时,紧急传感器502可将触发信号Signaltrig提供到有效页面计数器504。
图7示出根据本发明的实施例的基于第一阈值和第二阈值的垃圾收集操作的示例。
如上所述,根据本发明的实施例,空闲块可以是有效页面数量大于或等于阈值的块,该阈值可以是预定的。例如,当包括在特定存储块中的有效页面数量为100或更多时,存储块可被考虑为空闲块。
在图7的情况1中,存储器装置150中的空闲块701至750的数量(即,#Free BLK)为50,第一阈值TH1(即,1st Th)为100,并且第二阈值值TH2(即,2nd Th)为20。在这些条件下,因为空闲块701至750的数量小于第一阈值TH1且大于或等于第二阈值TH2,所以传感器502可将触发信号Signaltrig传输到有效页面计数器504。以这种方式,可基于有效页面减少量的总和ΣΔVPC与最大有效页面减少量ΔVPCMax的比率来确定是否执行垃圾收集操作。
在图7的情况2中,存储器装置150中的空闲块751至760的数量(即,#Free BLK)为10,第一阈值TH1(即,1st Th)为100,并且第二阈值值TH2(即,2nd Th)为20。在这种情况下,因为空闲块751至760的数量小于第二阈值TH2,所以紧急传感器502可通过将触发信号Signaltrig提供到垃圾收集器512来执行垃圾收集操作。
根据本发明的实施例,即使在空闲块的数量小于第一阈值TH1时,紧急传感器502也不会无条件地执行垃圾收集操作。如稍后所述,如果紧急传感器502基于ΔVPCMax与ΣΔVPC的比率检测在特定块中密集地产生无效页面的工作负载,则在存储器空间不足的情况下优先考虑前台操作的性能时,可通过跳过垃圾收集操作来提高前台操作的性能。然而,当空闲块的数量小于第二阈值TH2时,可通过优先考虑获得存储器空间来无条件地执行垃圾收集操作来获得空白空间。
重新参照图6,在步骤S606中,有效页面计数器504可基于从步骤S604中接收的触发信号Signaltrig,对存储器装置150中的封闭存储块中的每一个的有效页面数量VPCBefore进行计数。封闭存储块中的每一个可以是其有效页面的数量不为零(0)并且不是执行编程操作的开放块的存储块。
在步骤S608中,映射更新器506可对编程在存储块中的数据(即,主机数据)的地址信息进行更新。映射更新器506可对随编程到页面中的原始数据的修改而改变的地址进行周期性地更新。当已对存储器装置150中的所有存储块执行了映射更新操作时,映射更新器506可将完成信号Signalcomplete提供到有效页面计数器504。
在步骤S610中,有效页面计数器504可基于在步骤S608中获得的完成信号Signalcomplete来执行更新操作。然后,有效页面计数器504可对存储器装置150中的封闭存储块中的每一个的有效页面数量VPCAfter进行计数。有效页面计数器504可将有效页面信息infoVPC提供到最大有效页面减少量检测器508。
在步骤S612中,最大有效页面减少量检测器508可基于在步骤S610中提供的有效页面信息infoVPC来计算每一个存储块的有效页面减少量ΔVPC。最大有效页面减少量检测器508可计算在执行映射更新操作之后计数的封闭存储块的有效页面的数量VPCAfter和在执行映射更新操作之前计数的封闭存储块的有效页面的数量VPCBefore之间的差值,作为有效页面减少量ΔVPC。
在步骤S614中,最大有效页面减少量检测器508可基于在步骤S612中针对每一个存储块计算的有效页面减少量ΔVPC来获得有效页面减少量的总和ΣΔVPC。最大有效页面减少量检测器508可获得针对每一个存储块计算的多个有效页面减少量ΔVPC的总和,作为有效页面减少量的总和ΣΔVPC。最大有效页面减少量检测器508可将关于有效页面减少量的总和的信息infoΣΔVPC传输到工作负载检测器510。
在步骤S616中,最大有效页面减少量检测器508可基于在步骤S612中针对每一个存储块计算的有效页面减少量ΔVPC来检测最大有效页面减少量ΔVPCMax。最大有效页面减少量检测器508可将分别针对存储块计算的多个有效页面减少量ΔVPC彼此进行比较,以检测具有最大值的有效页面减少量ΔVPC,作为最大有效页面减少量ΔVPCMax。最大有效页面减少量检测器508可将关于最大有效页面减少量的信息infoMax传输到工作负载检测器510。
在步骤S618中,工作负载检测器510可基于在步骤S614中提供的关于有效页面减少量的总和的信息infoΣΔVPC和在步骤S616中提供的关于最大有效页面减少量的信息infoMax,计算最大有效页面减少量ΔVPCMax与有效页面减少量的总和ΣΔVPC的比率。工作负载检测器510可将最大有效页面减少量ΔVPCMax除以有效页面减少量的总和ΣΔVPC,以获得最大有效页面减少量ΔVPCMax与有效页面减少量的总和ΣΔVPC的比率。
在步骤S620中,当在步骤S618中获得的ΔVPCMax与ΣΔVPC的比率小于或等于第三阈值TH3(步骤S620中为“否”)时,工作负载检测器510可将触发信号Signaltrig传输到垃圾收集器512。当ΔVPCMax与ΣΔVPC的比率大于第三阈值TH3(步骤S620中为“是”)时,工作负载检测器510可返回到步骤S604。
图8示出根据本发明的实施例的基于第三阈值的垃圾收集操作的示例。
参照图8,在图8的情况1中,第三阈值TH3(即,3rd Th)为0.9,并且最大有效页面减小量ΔVPCMax和有效页面减少量的总和ΣΔVPC分别为95和100。因此,最大有效页面减少量ΔVPCMax与有效页面减少量的总和ΣΔVPC的比率为0.95,其大于第三阈值TH3。因此,工作负载检测器510可不执行垃圾收集操作,而是返回到步骤S604。然后,当空闲块的数量小于第二阈值TH2时,工作负载检测器510可执行垃圾收集操作。
在图8的情况2中,第三阈值TH3(即,3rd Th)为0.9,并且最大有效页面减小量ΔVPCMax和有效页面减少量的总和ΣΔVPC分别为25和100。因此,最大有效页面减少量ΔVPCMax与有效页面减少量的总和ΣΔVPC的比率为0.25,其小于第三阈值TH3。因此,工作负载检测器510可通过将触发信号Signaltrig传输到垃圾收集器512来执行垃圾收集操作。
将情况1和情况2彼此进行比较,有效页面减少量的总和ΣΔVPC可以是相同的。然而,可基于最大有效页面减少量ΔVPCMax来确定是否将执行垃圾收集操作。当与映射更新之前和之后的封闭存储块中减少的有效页面的总数量相比,具有最大有效页面减少量的封闭存储块中的有效页面减少量足够大时,工作负载检测器510可确定存在其中在特定块中,即在具有最大有效页面减少量的封闭存储块中密集地产生无效页面的工作负载。进一步地,当在存储器空间不足的情况下优先考虑前台操作的性能时,工作负载检测器510可通过跳过垃圾收集操作来提高前台操作的性能。
重新参照图6,在步骤S622中,垃圾收集器512可基于在步骤S604和S620中提供的触发信号Signaltrig对牺牲块执行垃圾收集操作。垃圾收集器512可通过将编程在牺牲块的有效页面中的数据复制到目标块的空白页面中并恢复牺牲块的存储器空间来执行垃圾收集操作。
如上所述,当空闲块的数量小于第一阈值TH1时,根据本发明的实施例的存储器系统可以不是无条件地执行垃圾收集操作。进一步地,存储器系统可根据最大有效页面减少量ΔVPCMax与有效页面减少量的总和ΣΔVPC的比率来动态地改变执行垃圾收集操作的频率。
当ΔVPCMax与ΣΔVPC的比率大于第三阈值TH3时,存储器系统可确定存在其中在具有最大有效页面减少量的存储块中密集地产生无效页面的工作负载。进一步地,当在存储器空间不足的情况下优先考虑前台操作的性能时,可通过跳过垃圾收集操作来提高前台操作的性能。
将参照图9至图17详细描述应用上面参照图1至图8描述的包括存储器装置150和控制器130的存储器系统110的数据处理系统和电子装置。
图9是示意性地示出包括根据实施例的存储器系统的数据处理系统的另一示例的示图。例如,图9示意性地示出可应用存储器系统的存储卡系统6100。
参照图9,存储卡系统6100可包括存储器控制器6120、存储器装置6130和连接器6110。
更具体地,存储器控制器6120可电连接到由非易失性存储器(NVM)实现的存储器装置6130,并被配置成访问由非易失性存储器(NVM)实现的存储器装置6130。例如,存储器控制器6120可被配置成控制存储器装置6130的读取操作、写入操作、擦除操作和后台操作。存储器控制器6120可被配置成提供存储器装置6130和主机之间的接口并且使用固件控制存储器装置6130。也就是说,存储器控制器6120可对应于参照图1描述的存储器系统110的控制器130,并且存储器装置6130可对应于参照图1描述的存储器系统110的存储器装置150。
因此,存储器控制器6120可包括随机存取存储器(RAM)、处理器、主机接口、存储器接口和错误校正部件。
存储器控制器6120可通过连接器6110与例如图1的主机102的外部装置通信。例如,如参照图1所述,存储器控制器6120可被配置成通过诸如以下的各种通信协议中的一种或多种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行-ATA(SATA)、并行-ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(EDSI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、无线保真(WI-FI或WIFI)以及蓝牙。因此,存储器系统和数据处理系统可以应用于包括移动电子装置的有线/无线电子装置。
存储器装置6130可通过非易失性存储器(NVM)来实施。例如,存储器装置6130可通过诸如以下的各种非易失性存储器装置中的任意一个来实施:可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)以及自旋转移力矩磁性RAM(STT-RAM)。
存储器控制器6120和存储器装置6130可被集成到单个半导体装置中以形成固态驱动器(SSD)。此外,存储器控制器6120和存储器装置6130可被集成以形成诸如以下的存储卡:PC卡(例如,个人计算机存储卡国际协会(PCMCIA))、标准闪存(CF)卡、智能媒体卡(例如,SM和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型-MMC和eMMC)、安全数字(SD)卡(例如,SD、迷你-SD、微型-SD和SDHC)和/或通用闪存(UFS)。
图10是示意性地示出包括根据实施例的存储器系统的数据处理系统6200的另一示例的示图。
参照图10,数据处理系统6200可包括具有一个或多个非易失性存储器(NVM)的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。图10所示的数据处理系统6200可以用作诸如存储卡(例如,CF、SD、微型SD等)或USB装置的存储介质,如参照图1描述的。存储器装置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的数据,反之亦然。当RAM 6222用作高速缓存存储器时,RAM6222可辅助低速存储器装置6230以高速运行。
ECC电路6223可对应于图1所示的控制器130的ECC单元138。如参照图1所述,ECC电路6223可生成用于校正从存储器装置6230提供的数据的失效位或错误位的错误校正码(ECC)。ECC电路6223可对提供给存储器装置6230的数据执行错误校正编码,从而形成具有奇偶校验位的数据。奇偶校验位可被存储在存储器装置6230中。ECC电路6223可对从存储器装置6230输出的数据执行错误校正解码。ECC电路6223可使用奇偶校验位来校正错误。例如,如参照图1所述,ECC电路6223可使用低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、Turbo码、里德-所罗门(RS)码、卷积码、递归系统码(RSC)或诸如网格编码调制(TCM)或分组编码调制(BCM)的编码调制来校正错误。
存储器控制器6220可通过主机接口6224与主机6210交换数据。存储器控制器6220可通过NVM接口6225与存储器装置6230交换数据。主机接口6224可通过并行高级技术附件(PATA)总线、串行高级技术附件(SATA)总线、小型计算机系统接口(SCSI)、通用串行总线(USB)、高速外围组件互连(PCIe)或NAND接口而连接到主机6210。存储器控制器6220可利用诸如无线保真(WiFi)或长期演进(LTE)的移动通信协议具有无线通信功能。存储器控制器6220可连接到外部装置,例如主机6210或另一外部装置,然后向外部装置传送数据/接收来自外部装置的数据。特别地,由于存储器控制器6220被配置成根据各种通信协议中的一种或多种与外部装置通信,因此存储器系统和数据处理系统可被应用于有线/无线电子装置,特别是移动电子装置。
图11是示意性地示出根据实施例的包括存储器系统的数据处理系统的另一示例的示图。例如,图11示出可能应用存储器系统的固态驱动器(SSD)6300。
参照图11,SSD 6300可包括控制器6320和包括多个非易失性存储器(NVM)的存储器装置6340。控制器6320可对应于图1的存储器系统110中的控制器130,并且存储器装置6340可对应于图1的存储器系统中的存储器装置150。
更具体地,控制器6320可通过多个通道CH1至CHi连接到存储器装置6340。控制器6320可包括一个或多个处理器6321、错误校正码(ECC)电路6322、主机接口6324、缓冲存储器6325和例如非易失性存储器接口6326的存储器接口。
缓冲存储器6325可临时存储从主机6310提供的数据或从包括在存储器装置6340中的多个闪速存储器NVM提供的数据。进一步地,缓冲存储器6325可临时存储多个闪速存储器NVM的元数据,例如,包括映射表的映射数据。缓冲存储器6325可由诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、低功率DDR(LPDDR)SDRAM和图形RAM(GRAM)的各种易失性存储器,或者由诸如铁电RAM(FRAM)、电阻式RAM(RRAM或ReRAM)、自旋转移力矩磁性RAM(STT-MRAM)和相变RAM(PRAM)的非易失性存储器中的任意一种实现。图11示出缓冲存储器6325被实现在控制器6320中。然而,缓冲存储器6325可位于控制器6320的外部。
ECC电路6322可在编程操作期间计算待编程到存储器装置6340中的数据的错误校正码(ECC)值,在读取操作期间基于ECC值对从存储器装置6340读取的数据执行错误校正操作,并且在失效数据恢复操作期间对从存储器装置6340恢复的数据执行错误校正操作。
主机接口6324可提供与诸如主机6310的外部装置的接口功能,并且非易失性存储器接口6326可提供与通过多个通道连接的存储器装置6340的接口功能。
此外,可提供可能应用图1的存储器系统110的多个SSD 6300来实施数据处理系统,例如,独立磁盘冗余阵列(RAID)系统。RAID系统可包括多个SSD 6300和用于控制多个SSD 6300的RAID控制器。当RAID控制器响应于从主机6310提供的写入命令执行编程操作时,RAID控制器可根据多个RAID级别,即,从主机6310提供的写入命令的RAID级别信息,在SSD 6300中选择一个或多个存储器系统或SSD 6300,并将对应于写入命令的数据输出到选择的SSD 6300。此外,当RAID控制器响应于从主机6310提供的读取命令执行读取操作时,RAID控制器可根据多个RAID级别,即,从主机6310提供的读取命令的RAID级别信息,在SSD6300中选择一个或多个存储器系统或SSD 6300,并将从所选择的SSD 6300读取的数据提供给主机6310。
图12是示意性地示出包括根据实施例的存储器系统的数据处理系统的另一示例的示图。例如,图12示出可应用存储器系统的嵌入式多媒体卡(eMMC)6400。
参照图12,eMMC 6400可包括控制器6430和通过一个或多个NAND闪速存储器实施的存储器装置6440。控制器6430可对应于图1的存储器系统110中的控制器130。存储器装置6440可对应于图1的存储器系统110中的存储器装置150。
更具体地,控制器6430可通过多个通道连接到存储器装置6440。控制器6430可包括一个或多个内核6432、主机接口6431和诸如NAND接口6433的存储器接口。
内核6432可控制eMMC 6400的全部操作,主机接口6431可提供控制器6430和主机6410之间的接口功能,并且NAND接口6433可提供存储器装置6440和控制器6430之间的接口功能。例如,主机接口6431可用作并行接口,例如参照图1所描述的MMC接口。此外,主机接口6431可用作串行接口,例如超高速(UHS-I/UHS-II)接口。
图13至图16是示意性地示出包括根据实施例的存储器系统的数据处理系统的其它示例的示图。例如,图13至图16示出可应用存储器系统的通用闪存(UFS)系统。
参照图13至图16,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可以参照图10至图12描述的数据处理系统6200、SSD 6300或eMMC 6400的形式来实现,并且UFS卡6530、6630、6730、6830可以参照图9描述的存储卡系统6100的形式来实现。
此外,在UFS系统6500、6600、6700和6800中,主机6510、6610、6710和6810、UFS装置6520、6620、6720和6820以及UFS卡6530、6630、6730和6830可以通过UFS接口,例如移动工业处理器接口(MIPI)中的MIPI M-PHY和MIPI统一协议(UniPro)彼此通信。此外,UFS装置6520、6620、6720和6820与UFS卡6530、6630、6730和6830可通过除UFS协议以外的以下各种协议中的任意一种彼此通信,例如通用存储总线(USB)闪存驱动器(UFD)、多媒体卡(MMC)、安全数字(SD)、迷你SD和微型SD。
在图13所示的UFS系统6500中,主机6510、UFS装置6520以及UFS卡6530中的每一个可包括UniPro。主机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卡可并联地或以星型形式连接到主机6410。星型形式是一种单个装置与多个装置联接以进行集中操作的布置。多个UFS卡可并联地或以星型形式连接到UFS装置6520或者串联地或以链型形式连接到UFS装置6520。
在图14所示的UFS系统6600中,主机6610、UFS装置6620以及UFS卡6630中的每一个可包括UniPro。主机6610可通过执行交换操作的交换模块6640,例如通过在UniPro处执行例如L3交换的链路层交换的交换模块6640,与UFS装置6620或UFS卡6630通信。UFS装置6620和UFS卡6630可通过UniPro处的交换模块6640的链路层交换来彼此通信。在所示实施例中,一个UFS装置6620和一个UFS卡6630连接到交换模块6640。然而,多个UFS装置和UFS卡可并联地或以星型形式连接到交换模块6640。此外,多个UFS卡可串联地或以链型形式连接到UFS装置6620。
在图15所示的UFS系统6700中,主机6710、UFS装置6720和UFS卡6730中的每一个可包括UniPro。主机6710可通过执行交换操作的交换模块6740,例如通过在UniPro处执行例如L3交换的链路层交换的交换模块6740,与UFS装置6720或UFS卡6730通信。UFS装置6720和UFS卡6730可通过UniPro处的交换模块6740的链路层交换来彼此通信。交换模块6740可在UFS装置6720内部或外部与UFS装置6720集成为一个模块。在所示实施例中,一个UFS装置6720和一个UFS卡6730连接到交换模块6740。然而,各自包括交换模块6740和UFS装置6720的多个模块可以并联地或以星型形式连接到主机6710。在另一示例中,多个模块可串联地或以链型形式连接到彼此。此外,多个UFS卡可并联或以星型形式连接到UFS装置6720。
在图16所示的UFS系统6800中,主机6810、UFS装置6820和UFS卡6830中的每一个可包括M-PHY和UniPro。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或者串联地或以链型形式连接到主机6810。多个UFS卡可并联地或以星型形式连接到UFS装置6820或串联地或以链型形式连接到UFS装置6820。
图17是示意性示出包括根据本发明的实施例的存储器系统的数据处理系统的另一示例的示图。例如,图17是示出可应用存储器系统的用户系统6900的示图。
参照图17,用户系统6900可包括用户接口6910、存储器模块6920、应用处理器6930、网络模块6940和存储模块6950。
更具体地,应用处理器6930可驱动例如操作系统(OS)的用户系统6900中的部件,并且包括控制包括在用户系统6900中的部件的控制器、接口、图形引擎。应用处理器6930可被设置为片上系统(SoC)。
存储器模块6920可用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块6920可包括诸如动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)SDRAM、DDR2 SDRAM、DDR3 SDRAM、低功率DDR(LPDDR)SDRAM、LPDDR2 SDRAM或LPDDR3SDRAM的易失性随机存取存储器(RAM),或诸如相变RAM(PRAM)、电阻式RAM(ReRAM)、磁阻RAM(MRAM)或铁电RAM(FRAM)的非易失性RAM。例如,可基于堆叠式封装(POP)来封装和安装应用处理器6930和存储器模块6920。
网络模块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闪存和3D NAND闪存的非易失性半导体存储器装置来实现,并且可被提供为诸如用户系统6900的存储卡或外部驱动器的可移除存储介质。存储模块6950可对应于参照图1描述的存储器系统110。此外,存储模块6950可被实施为如上参照图11至图16所述的SSD、eMMC和UFS。
用户接口6910可包括用于向应用处理器6930输入数据或命令或者用于将数据输出到外部装置的接口。例如,用户接口6910可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口,以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监视器的用户输出接口。
此外,当图1的存储器系统110应用于用户系统6900的移动电子装置时,应用处理器6930可控制移动电子装置的全部操作,并且网络模块6940可用作用于控制与外部装置的有线/无线通信的通信模块。用户接口6910可在移动电子装置的显示/触摸模块上显示通过处理器6930处理的数据或支持从触摸面板接收数据的功能。
根据本发明的实施例,提供了一种存储器系统,其即使在存储器空间不足时也能够通过基于主机工作负载动态地改变垃圾收集操作的周期来提高前台操作的性能。
根据本发明的实施例,提供了一种存储器系统,该存储器系统能够基于主机工作负载来动态地改变垃圾收集操作的周期。
虽然已经针对具体实施例说明并描述了本发明,但是对于本领域技术人员将显而易见的是,根据本公开,在不脱离如权利要求中限定的本发明的精神和范围的情况下,可进行各种改变和修改。

Claims (20)

1.一种存储器系统,包括:
存储器装置;
有效页面计数器,对在执行映射更新操作之前和之后的所述存储器装置中的每一个封闭存储块的有效页面的数量进行计数;
最大有效页面减少量检测器,通过基于每一个封闭存储块的所述有效页面的计数数量计算相应的封闭存储块的有效页面减少量来检测最大有效页面减少量,以便计算有效页面减少量的总和;以及
垃圾收集器,在所述存储器装置中的空闲块的数量小于第一阈值且大于第二阈值,并且所述最大有效页面减少量与所述有效页面减少量的总和的比率小于或等于第三阈值时,对所述存储器装置中的牺牲块执行垃圾收集操作。
2.根据权利要求1所述的存储器系统,进一步包括:
紧急传感器,对所述空闲块的数量进行计数,并且将所述空闲块的数量分别与所述第一阈值和所述第二阈值进行比较。
3.根据权利要求2所述的存储器系统,其中当所述空闲块的数量小于所述第二阈值时,所述垃圾收集器执行所述垃圾收集操作。
4.根据权利要求2所述的存储器系统,其中当所述空闲块的数量小于所述第一阈值且大于所述第二阈值时,所述有效页面计数器对所述封闭存储块中的每一个的所述有效页面的数量进行计数。
5.根据权利要求1所述的存储器系统,其中所述最大有效页面减少量检测器通过针对所述封闭存储块中的每一个,计算在执行所述映射更新操作之后计数的所述有效页面的数量与在执行所述映射更新操作之前计数的所述有效页面的数量之间的差值来计算所述有效页面减少量。
6.根据权利要求5所述的存储器系统,其中所述最大有效页面减少量检测器通过对所述封闭存储块中的每一个的所有有效页面减少量进行求和来计算所述有效页面减少量的总和。
7.根据权利要求5所述的存储器系统,其中所述最大有效页面减少量检测器通过将所述封闭存储块中的每一个的所述有效页面减少量彼此进行比较来检测具有最大值的有效页面减少量作为所述最大有效页面减少量。
8.根据权利要求1所述的存储器系统,其中所述最大有效页面减少量检测器通过将所述最大有效页面减少量除以所述有效页面减少量的总和来计算所述最大有效页面减少量与所述有效页面减少量的总和的比率。
9.根据权利要求1所述的存储器系统,其中所述垃圾收集器通过将所述牺牲块的有效数据复制到目标块的空白页面中来执行所述垃圾收集操作。
10.根据权利要求1所述的存储器系统,其中所述封闭存储块中的每一个具有至少一个有效页面,并且不是执行编程操作的开放块。
11.一种存储器系统的操作方法,包括:
对在执行映射更新操作之前和之后的存储器装置中的每一个封闭存储块的有效页面的数量进行计数;
通过基于每一个封闭存储块的所述有效页面的计数数量计算相应的封闭存储块的有效页面减少量来检测最大有效页面减少量,以便计算有效页面减少量的总和;
计算所述最大有效页面减少量与所述有效页面减少量的总和的比率,并且将所述比率与第三阈值进行比较;并且
当所述最大有效页面减少量与所述有效页面减少量的总和的比率小于或等于所述第三阈值时,对所述存储器装置中的牺牲块执行垃圾收集操作。
12.根据权利要求11所述的方法,进一步包括:
对空闲块的数量进行计数,并且将所述空闲块的数量分别与第一阈值和第二阈值进行比较。
13.根据权利要求12所述的方法,其中当所述空闲块的数量小于所述第二阈值时,对所述牺牲块执行所述垃圾收集操作。
14.根据权利要求12所述的方法,其中当所述空闲块的数量小于所述第一阈值且大于所述第二阈值时,对每一个封闭存储块的有效页面的数量进行计数。
15.根据权利要求11所述的方法,其中在检测所述最大有效页面减少量时,
通过针对每一个封闭存储块,计算在执行所述映射更新操作之后计数的所述有效页面的数量与在执行所述映射更新操作之前计数的所述有效页面的数量之间的差值来计算所述有效页面减少量。
16.根据权利要求15所述的方法,其中在检测所述最大有效页面减少量时,
通过对所述封闭存储块中的每一个的所有有效页面减少量进行求和来计算所述有效页面减少量的总和。
17.根据权利要求15所述的方法,其中在检测所述最大有效页面减少量时,
通过将所述封闭存储块中的每一个的所述有效页面减少量彼此进行比较,检测具有最大值的有效页面减少量作为所述最大有效页面减少量。
18.根据权利要求11所述的方法,其中在检测所述最大有效页面减少量时,
通过将所述最大有效页面减少量除以所述有效页面减少量的总和来计算所述最大有效页面减少量与所述有效页面减少量的总和的比率。
19.根据权利要求11所述的方法,其中通过将所述牺牲块的有效数据复制到目标块的空白页面中来执行所述垃圾收集操作。
20.根据权利要求11所述的方法,其中所述封闭存储块中的每一个具有至少一个有效页面,并且不是执行编程操作的开放块。
CN201910126682.3A 2018-07-11 2019-02-20 存储器系统及其操作方法 Active CN110716880B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180080677A KR102659036B1 (ko) 2018-07-11 2018-07-11 메모리 시스템 및 그것의 동작방법
KR10-2018-0080677 2018-07-11

Publications (2)

Publication Number Publication Date
CN110716880A CN110716880A (zh) 2020-01-21
CN110716880B true CN110716880B (zh) 2023-04-07

Family

ID=69139423

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910126682.3A Active CN110716880B (zh) 2018-07-11 2019-02-20 存储器系统及其操作方法

Country Status (3)

Country Link
US (1) US10678687B2 (zh)
KR (1) KR102659036B1 (zh)
CN (1) CN110716880B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11455245B2 (en) * 2017-12-11 2022-09-27 Micron Technology, Inc. Scheme to improve efficiency of garbage collection in cached flash translation layer
KR20220093982A (ko) 2020-12-28 2022-07-05 삼성전자주식회사 파편화율을 이용하는 메모리 컨트롤러, 및 스토리지 장치 및 이의 동작 방법
US20240069729A1 (en) * 2022-08-31 2024-02-29 Pure Storage, Inc. Optimizing Data Deletion in a Storage System

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102243613A (zh) * 2010-05-12 2011-11-16 西部数据技术公司 管理固态存储器中垃圾收集的系统和方法
CN103927263A (zh) * 2014-04-01 2014-07-16 华为技术有限公司 垃圾回收方法和装置
CN104252476A (zh) * 2013-06-27 2014-12-31 重庆新媒农信科技有限公司 一种降低有效页面遮盖率的显示方法及系统
CN104536906A (zh) * 2011-08-02 2015-04-22 群联电子股份有限公司 数据写入方法、存储器控制器与存储器储存装置
CN106775441A (zh) * 2015-11-23 2017-05-31 爱思开海力士有限公司 存储器系统和存储器系统的操作方法
CN106874221A (zh) * 2015-12-14 2017-06-20 爱思开海力士有限公司 存储器系统及其操作方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
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
CN104598386B (zh) * 2013-10-31 2018-03-27 Lsi公司 通过追踪和利用二级映射索引重复利用固态驱动器块
KR20150139112A (ko) * 2014-06-02 2015-12-11 삼성전자주식회사 가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법
KR102368071B1 (ko) * 2014-12-29 2022-02-25 삼성전자주식회사 레이드 스토리지 시스템에서의 스트라이프 재구성 방법 및 이를 적용한 가비지 컬렉션 동작 방법 및 레이드 스토리지 시스템
KR20170099018A (ko) 2016-02-22 2017-08-31 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작방법
KR102615593B1 (ko) * 2016-05-04 2023-12-21 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102243613A (zh) * 2010-05-12 2011-11-16 西部数据技术公司 管理固态存储器中垃圾收集的系统和方法
CN104536906A (zh) * 2011-08-02 2015-04-22 群联电子股份有限公司 数据写入方法、存储器控制器与存储器储存装置
CN104252476A (zh) * 2013-06-27 2014-12-31 重庆新媒农信科技有限公司 一种降低有效页面遮盖率的显示方法及系统
CN103927263A (zh) * 2014-04-01 2014-07-16 华为技术有限公司 垃圾回收方法和装置
CN106775441A (zh) * 2015-11-23 2017-05-31 爱思开海力士有限公司 存储器系统和存储器系统的操作方法
CN106874221A (zh) * 2015-12-14 2017-06-20 爱思开海力士有限公司 存储器系统及其操作方法

Also Published As

Publication number Publication date
US10678687B2 (en) 2020-06-09
CN110716880A (zh) 2020-01-21
US20200019496A1 (en) 2020-01-16
KR102659036B1 (ko) 2024-04-22
KR20200006828A (ko) 2020-01-21

Similar Documents

Publication Publication Date Title
US11921630B2 (en) Memory system and operating method thereof
CN110750207B (zh) 存储器系统及其操作方法
US10664391B2 (en) Controller and operating method thereof
US20200042242A1 (en) Controller and operation method thereof
CN110489271B (zh) 存储器系统及其操作方法
US10956283B2 (en) Memory system capable of efficiently performing an error correction operation and operating method thereof
CN110765029B (zh) 控制器及用于操作该控制器的方法
US20200210295A1 (en) Memory system and operating method thereof
US20200057724A1 (en) Controller and operating method thereof
US20200125488A1 (en) Memory system and operating method thereof
CN110716880B (zh) 存储器系统及其操作方法
CN110716881B (zh) 存储器系统及其操作方法
US11169721B2 (en) Memory system for flexible map block management and operating method thereof
CN110688060B (zh) 存储器系统及该存储器系统的操作方法
US20180373460A1 (en) Controller and operation method thereof
CN110045914B (zh) 存储器系统及其操作方法
CN109947359B (zh) 存储器系统及其操作方法
CN111241001B (zh) 数据处理系统及其操作方法
US20200174702A1 (en) Memory system, operating method thereof and controller
US20200057577A1 (en) Memory system and operating method thereof
CN111198652B (zh) 存储器系统及其操作方法
CN110716879B (zh) 存储器系统及该存储器系统的操作方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant