CN111352858A - 存储器系统及其操作方法 - Google Patents
存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN111352858A CN111352858A CN201911226926.1A CN201911226926A CN111352858A CN 111352858 A CN111352858 A CN 111352858A CN 201911226926 A CN201911226926 A CN 201911226926A CN 111352858 A CN111352858 A CN 111352858A
- Authority
- CN
- China
- Prior art keywords
- memory
- garbage collection
- block
- dies
- die
- 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
Links
Images
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/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/122—Replacement control using replacement algorithms of the least frequently used [LFU] type, e.g. with individual count value
-
- 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
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及一种存储器系统,该存储器系统可包括:存储器装置,包括多个存储器管芯,每个存储器管芯具有多个存储块;以及控制器,被配置成控制存储器装置以对存储器管芯中的每一个独立地执行操作,其中控制器控制存储器装置以对存储器管芯之中的第一存储器管芯执行前台操作,同时对存储器管芯之中的第二存储器管芯执行后台操作。
Description
相关申请的交叉引用
本申请要求于2018年12月21日提交的申请号为10-2018-0167584的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
示例性实施例涉及一种半导体装置,且更特别地,涉及一种存储器系统及其操作方法。
背景技术
近来,计算机环境的范例已经转变为允许随时随地使用计算机系统的普适计算。由于这个事实,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用已经迅速增加。通常,这种便携式电子装置使用一种使用存储器装置的存储器系统,也就是数据存储装置。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
发明内容
各个实施例涉及一种用于执行垃圾收集操作的存储器系统的操作方法,以及一种包括执行该操作方法的存储器控制器和存储器装置的存储器系统。
在实施例中,一种存储器系统可包括:存储器装置,包括多个管芯,每个管芯包括多个存储块;以及控制器,包括处理器和存储器,其中处理器包括垃圾收集管理器,该垃圾收集管理器适于:检查多个管芯之中的除了包括开放块的写入目标管芯之外的其它管芯中是否存在多个封闭块,基于检查其它管芯中是否存在多个封闭块的结果,确定是否与对写入目标管芯的写入操作并行地执行对其它管芯的垃圾收集操作,当其它管芯中存在多个封闭块时,在其它管芯之中选择一个或多个垃圾收集目标管芯并且在该垃圾收集目标管芯内的封闭块之中选择牺牲块,以及根据确定的结果,与对写入目标管芯的写入操作并行地执行对垃圾收集目标管芯的垃圾收集操作。
在实施例中,提供了一种存储器系统的操作方法,该存储器系统包括:存储器装置,包括多个管芯,每个管芯具有多个存储块;以及控制器,包括处理器和存储器,该操作方法包括:检查多个管芯之中的除了包括开放块的写入目标管芯之外的其它管芯中是否存在多个封闭块;基于检查的结果,确定是否与对写入目标管芯的写入操作并行地执行对其它管芯的垃圾收集操作;当其它管芯中存在多个封闭块时,在其它管芯之中选择一个或多个垃圾收集目标管芯并且在该垃圾收集目标管芯内的封闭块之中选择牺牲块;并且根据确定的结果,与写入操作并行地执行对垃圾收集目标管芯的垃圾收集操作。
在实施例中,一种存储器系统可包括:存储器装置,包括多个存储器管芯,每个存储器管芯包括多个存储块;以及控制器,被配置成控制存储器装置以对存储器管芯中的每一个独立地执行操作,其中控制器控制存储器装置以对存储器管芯之中的第一存储器管芯执行前台操作,同时对存储器管芯之中的第二存储器管芯执行后台操作。
附图说明
图1是示出根据本发明的实施例的包括存储器系统的数据处理系统的框图。
图2是示意性地示出根据实施例的存储器系统中的存储器装置的示图。
图3是示意性地示出根据实施例的存储器装置中的存储块的存储器单元阵列电路的示图。
图4是示意性地示出根据实施例的存储器系统中的存储器装置的示图。
图5是示出根据实施例的关于存储器系统中的存储器装置的数据处理操作的示图。
图6和图7是用于描述根据实施例的存储器系统的数据处理操作的示图。
图8至图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)的易失性存储器装置,或者诸如只读存储器(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中的每一个包括多个存储块BLK0至BLKz-1,多个存储块BLK0至BLKz-1中的每一个包括多个页面。页面中的每一个包括与多个字线(WL)联接的多个存储器单元。而且,存储器装置150包括多个平面,多个平面中的每一个包括多个存储块,例如块BLK0至BLKz-1。特别地,存储器装置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和高速缓存控制器145。
主机接口单元132用于处理从主机102传送的命令、数据等。作为示例而非限制,主机接口单元132可包括命令队列52。命令队列52可顺序地存储从主机102传送的命令、数据等中的至少一些,并且以它们存储的顺序来将这些命令和数据输出到高速缓存控制器145。
主机接口132处理主机102的命令和数据,并且可被配置成通过诸如以下的各种接口协议中的至少一种来与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)和移动工业处理器接口(MIPI)。可通过被称为主机接口层(HIL)的固件来驱动主机接口132,主机接口层是与主机102交换数据的区域。
存储器接口142用作执行控制器130与存储器装置150之间的接口连接的存储器接口和/或存储接口,以允许控制器130响应于来自主机102的请求控制存储器装置150。在存储器装置150是闪速存储器的情况下,特别是在存储器装置150是NAND闪速存储器的情况下,存储器接口142根据作为NAND闪速控制器(NFC)的处理器134的控制,来生成用于存储器装置150的控制信号并处理数据。存储器接口142可支持在控制器130与存储器装置150之间处理命令和数据的接口,例如NAND闪存接口的操作,特别是支持控制器130与存储器装置150之间的数据输入/输出。可通过被称为闪存接口层(FIL)的固件来驱动存储器接口142,闪存接口层是与存储器装置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通过由微处理器或中央处理单元(CPU)实现的处理器134,来在存储器装置150中执行从主机102请求的操作,也就是利用存储器装置150来执行与从主机102接收的命令相对应的命令操作。控制器130可执行前台操作作为与从主机102接收的命令相对应的命令操作。例如,前台操作包括与写入命令相对应的编程操作、与读取命令相对应的读取操作、与擦除命令相对应的擦除操作或者与作为设置命令的设置参数命令或设置特征命令相对应的参数设置操作。
处理器134可驱动垃圾收集管理器135。
在描述垃圾收集管理器135之前,可考虑以下条件:通过重复的写入命令增加了非易失性存储器装置的非易失性存储器区域中存储的无效数据的量。为了重新使用存储有这种无效数据的存储块,控制器130可执行内部操作(例如,垃圾收集或损耗均衡)。例如,控制器130可执行垃圾收集以将存储有无效数据的存储块改变为空闲块。在垃圾收集操作期间,控制器130在多个封闭块之中选择牺牲块,该牺牲块包括数量小于任意设置的阈值的有效页面。控制器130可将牺牲块中包括的有效页面复制到作为空闲块的目标块中,然后擦除牺牲块以成为空闲块。选择具有较少数量的有效页面的牺牲块的原因在于,在牺牲块具有较大数量的有效页面的情况下,当控制器130将牺牲块中包括的有效页面复制到目标块中,然后使牺牲块中的数据无效时,执行垃圾收集可能需要很多时间和成本。
根据本发明的实施例,处理器134可彼此并行地执行垃圾收集操作和写入操作,以便有效地减少执行垃圾收集所需的时间和成本。也就是说,处理器134可通过垃圾收集管理器135来检查写入操作和垃圾收集操作是否可彼此并行执行,然后基于检查结果来执行垃圾收集操作。将参照图6至图8详细描述这种进程。此时,根据本实施例的存储器装置中包括的多个管芯可由一个或多个通道CHANNEL独立管理。将在假设多个管芯中包括的多个存储块未被配置为超级块的情况下描述本实施例。
在一些实施例中,提供了一种存储器系统,该存储器系统包括一个或多个处理器和一个或多个存储装置,该存储装置包括与主机交互时的编程命令。例如,该一个或多个处理器和包括编程命令的该一个或多个存储装置可被实施为控制器130中包括的存储器144和处理器134。将参照图6至图8详细描述这种配置。下面参照图2至图5详细描述根据本公开的实施例的存储器系统中的存储器装置。
图2是示出存储器系统中的存储器装置的示图,图3是示出存储器装置中的存储块的存储器单元阵列电路的示图,并且图4是示出3维非易失性存储器装置的结构的示图。
参照图2,存储器装置150包括多个存储块,例如第零块(BLOCK0)210、第一块(BLOCK1)220、第二块(BLOCK2)230和第(N-1)块(BLOCKN-1)240。块210、220、230和240中的每一个包括多个页面,例如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))。
存储块210、220、230和240中的每一个通过写入操作存储从图1的主机102提供的数据,并且通过读取操作将所存储的数据提供到主机102。
参照图3,在存储器系统110的存储器装置150中的多个存储块152、154和156之中,每个存储块330可包括多个单元串340,这些单元串340被实现为存储器单元阵列并且分别联接到位线BL0至BLm-1。每列的单元串340可包括至少一个漏极选择晶体管DST和至少一个源极选择晶体管SST。多个存储器单元或存储器单元晶体管MC0至MCn-1可串联地联接在选择晶体管SST和DST之间。各个存储器单元MC0至MCn-1可由多层单元(MLC)构成,多层单元的每一个存储多位的数据或信息。单元串340可分别电联接到相应的位线BL0至BLm-1。
虽然图3作为示例示出了由NAND闪速存储器单元构成的每个存储块330,但注意的是,多个存储块152、154、156中的每一个不限于NAND闪速存储器,并且可通过NOR闪速存储器、其中组合了至少两种类型的存储器单元的混合闪速存储器、或其中控制器被内置在存储器芯片中的One-NAND闪速存储器实现。存储器装置150不仅可被实现为其中电荷存储层由导电浮栅构成的闪速存储器装置,还可被实现为其中电荷存储层由介电层构成的电荷撷取闪速(CTF)存储器装置。
存储器装置150的电压供应电路310可提供待根据操作模式被供应到各个字线的字线电压(例如,编程电压、读取电压和通过电压)以及待供应到形成有存储器单元的体材料(bulk)(例如,阱区)的电压。电压供应电路310的电压生成操作可由控制电路(未示出)的控制来执行。电压供应电路310可生成多个可变读取电压以生成多个读取数据,响应于控制电路的控制选择存储器单元阵列的存储块(或扇区)中的一个,选择所选择的存储块的字线中的一个,并将字线电压提供到所选择的字线和未选择的字线。
存储器装置150的读取/写入电路320由控制电路(未示出)控制,并且可根据操作模式作为读出放大器或写入驱动器而操作。在验证/正常读取操作中,读取/写入电路320可作为用于从存储器单元阵列读取数据的读出放大器而操作。在编程操作中,读取/写入电路320可作为根据待存储在存储器单元阵列中的数据驱动位线的写入驱动器而操作。在编程操作中,读取/写入电路320可从缓冲器(未示出)接收待写入存储器单元阵列中的数据,并且可根据输入的数据来驱动位线。为此,数据读取/写入电路320可包括多个页面缓冲器(PB)322、324和326,其分别对应于列(或位线)或者列对(或位线对),且在页面缓冲器322、324和326的每一个中可包括多个锁存器(未示出)。
存储器装置150可被实现为2维或3维存储器装置。特别地,如图4所示,存储器装置150可被实现为具有三维堆叠结构的非易失性存储器装置。在存储器装置150被实现为三维结构的情况下,存储器装置150可包括多个存储块BLK0至BLKN-1。图4示出图1所示的存储器装置150的存储块152、154和156。存储块152、154和156中的每一个可被实现为3维结构(或垂直结构)。例如,各个存储块152、154和156可被实现为在例如x轴方向、y轴方向和z轴方向的第一至第三方向上延伸的3维结构。
每个存储块330可包括在第二方向上延伸的多个NAND串NS。多个NAND串NS可被设置在第一方向和第三方向上。每个NAND串NS可联接到位线BL、至少一个串选择线SSL、至少一个漏极选择线DSL、多个字线WL、至少一个虚设字线DWL和共源线CSL,并且可包括多个晶体管结构TS。
即,在存储器装置150的多个存储块152、154和156之中,每个存储块330可联接到多个位线BL、多个串选择线SSL、多个漏极选择线DSL、多个字线WL、多个虚设字线DWL和多个共源线CSL,并且相应地,可包括多个NAND串NS。而且,在每个存储块330中,多个NAND串NS可联接到一个位线BL,并且可在一个NAND串NS中实现多个晶体管。每个NAND串NS的漏极选择晶体管DST可联接到相应的位线BL,并且每个NAND串NS的串选择晶体管SST可联接到共源线CSL。存储器单元MC可被设置在每个NAND串NS的串选择晶体管SST和漏极选择晶体管DST之间。即,在存储器装置150的多个存储块152、154和156中,可在每个存储块330中实现多个存储器单元。
图5是示出根据实施例的关于存储器系统中的存储器装置的数据处理操作的示图。
参照图5,控制器130执行与从主机102接收的命令相对应的命令操作,例如与编程命令相对应的编程操作。控制器130将对应于编程命令的用户数据编程并存储在存储器装置150的存储块552、554、562、564、572、574、582和584中的多个页面中。
控制器130生成并更新用户数据的元数据,并将该元数据编程并存储在存储器装置150的存储块552、554、562、564、572、574、582和584中。元数据包括存储块552、554、562、564、572、574、582和584中存储的用户数据的逻辑到物理(逻辑/物理或L2P)信息和物理到逻辑(物理/逻辑或P2L)信息。而且,元数据可包括:关于对应于从主机102接收的命令的命令数据的信息、关于对应于命令的命令操作的信息、关于待对其执行命令操作的存储器装置150的存储块的信息、以及关于对应于命令操作的映射数据的信息。换言之,元数据可包括与从主机102接收的命令相对应的、除用户数据之外的所有信息和数据。
例如,控制器130将与从主机102接收的编程命令相对应的用户数据高速缓存和缓冲在控制器130的第一缓冲器510中。也就是说,控制器130将用户数据的数据段512存储在作为数据缓冲器/高速缓存的第一缓冲器510中。第一缓冲器510可被包括在控制器130的存储器144中。此后,控制器130将第一缓冲器510中存储的数据段512编程并且存储在存储器装置150的存储块552、554、562、564、572、574、582和584中包括的页面中。
当用户数据的数据段512被编程并存储在存储块552、554、562、564、572、574、582和584中的页面中时,控制器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编程并存储在存储块552、554、562、564、572、574、582和584中的页面中。
控制器130执行与从主机102接收的命令相对应的命令操作。例如,控制器130执行对应于读取命令的读取操作。控制器130通过将对应于读取命令的用户数据的L2P段522和P2L段524加载到第二缓冲器520中来对它们进行检查。然后,控制器130从通过检查而知道的存储位置来读取用户数据的数据段512。也就是说,控制器130从存储块552、554、562、564、572、574、582和584之中的特定存储块的特定页面读取数据段512。然后,控制器130将数据段512存储在第一缓冲器510中,并将数据段512提供到主机102。
图6和图7是用于描述根据实施例的存储器系统的数据处理操作的示图。图6示出垃圾收集操作和写入操作可彼此并行执行的情况,图7示出垃圾收集操作和写入操作不能彼此并行执行并且因此在写入操作之后执行垃圾收集操作的情况。本实施例可应用于存储块未被配置为超级存储块的情况,并且将基于这种情况进行以下描述。
参照图6和图7,存储器装置150可包括多个管芯。例如,多个管芯1501至1504可包括第一管芯1501、第二管芯1502、第三管芯1503和第四管芯1504。管芯1501至1504中的每一个可包括多个存储块。多个存储块可包括第一存储块BLK1、第二存储块BLK2、第三存储块BLK3和第四存储块BLK4。然而,本实施例不限于此。可将多个存储块BLK1至BLK4分类为空闲块、开放或活动块以及封闭块。空闲块可指示其中没有存储数据的块,开放块可指示其中存储有数据并且包括可写入数据的备用页面的块,封闭块可指示其中存储有数据但不包括可写入数据的备用页面的块。也就是说,封闭块没有任何可写入数据的空页面。在本文中,封闭块也可被称为源块。基于上述定义,将描述垃圾收集管理器135的处理。
参照图6和图7,垃圾收集管理器135可包括垃圾收集确定单元135a、并行操作确定单元135b、第一垃圾收集单元135c和第二垃圾收集单元135d。
垃圾收集确定单元135a可基于每个预定周期中的存储器装置150内的空闲块计数(FBC)来确定是否执行垃圾收集。也就是说,垃圾收集确定单元135a可检查FBC是否小于第一阈值TH1,以便确定是否执行垃圾收集。第一阈值TH1可对应于用于确定控制器130需要获得一个或多个空闲块的时间点的最小FBC。第一阈值TH1可以是预定值,并且最小FBC可根据存储器系统的操作条件而变化。当FBC小于第一阈值TH1(FBC<TH1)时,垃圾收集确定单元135a可确定发生执行垃圾收集操作的事件,并且进入垃圾收集模式。另一方面,当FBC等于或大于第一阈值TH1(FBC≥TH1)时,可不执行垃圾收集,并且垃圾收集确定单元135a可基于每个预定周期中的FBC来确定是否执行垃圾收集。
当这种垃圾收集事件发生时,并行操作确定单元135b可检查垃圾收集操作和写入操作是否可彼此并行执行。根据通过检查垃圾收集操作和写入操作是否可彼此并行执行而获得的结果,可控制下面将描述的第一和第二垃圾收集单元135c和135d中的任意一个以执行垃圾收集。首先,将参照图6描述可并行执行垃圾收集操作和写入操作的情况。
参照图6,并行操作确定单元135b可检查多个管芯之中的每个具有开放块的一个或多个写入目标管芯,然后检查多个管芯之中的除该一个或多个写入目标管芯之外的剩余管芯,以便确定垃圾收集操作和写入操作是否可彼此并行执行。例如,检查结果显示多个管芯1501至1504之中的具有开放块的管芯为第一管芯1501。而且,检查结果示例了第一管芯1501中包括的多个块中的第一存储块BLK1为开放块。
然后,并行操作确定单元135b可检查其它管芯中是否存在封闭块,也就是除了具有开放块的写入目标管芯之外的剩余管芯中是否存在封闭块。例如,并行操作确定单元135b可检查除了具有开放块的第一管芯1501之外的其它管芯(例如,第二至第四管芯1502至1504)中是否存在封闭块。
当检查结果指示其它管芯中存在封闭块时,并行操作确定单元135b可确定可与对写入目标管芯的写入操作并行地、对一个或多个垃圾收集目标管芯执行垃圾收集操作。例如,第二管芯1502可包括第一封闭块和第三封闭块,第三管芯1503可包括第二封闭块和第三封闭块,并且第四管芯1504可包括第一封闭块和第四封闭块。如上所述,因为其它管芯中包括多个封闭块,所以可操作第一垃圾收集单元135c。
第一垃圾收集单元135c可包括第一牺牲块选择单元VBS1、第一垃圾收集操作单元GCO1和第一更新单元UD1。
第一牺牲块选择单元VBS1可从其它管芯中包括的多个封闭块之中选择一个或多个牺牲块,以便执行垃圾收集。第一牺牲块选择单元VBS1可在多个封闭块之中选择牺牲块,该牺牲块包括数量等于或小于第二阈值TH2的有效页面。换言之,第一牺牲块选择单元VBS1可在多个封闭块之中选择一个或多个牺牲块用于垃圾收集,该一个或多个牺牲块各自包括数量等于或小于第二阈值TH2的有效页面。可将用于选择牺牲块的方法划分为两种方法。第一方法可对应于将第二阈值设置为有效页面比率的情况,第二方法可对应于将第二阈值设置为平均有效页面计数(VPC)的情况。
将首先描述将第二阈值设置为有效页面比率信息的第一方法。第一牺牲块选择单元VBS1可在其它管芯中包括的多个封闭块之中选择封闭块作为牺牲块,该封闭块具有数量等于或小于有效页面比率的有效页面。为便于描述,将基于每个存储块包括100个页面进行以下描述。例如,第一牺牲块选择单元VBS1可在多个封闭块之中选择封闭块作为牺牲块,该封闭块具有等于或小于25%的有效页面比率的VPC。可任意设置有效页面比率。第二管芯1502中包括的第一封闭块具有VPC 10和有效页面比率10%,并且第三封闭块具有VPC 25和有效页面比率25%。第三管芯1503中包括的第二封闭块具有VPC 40和有效页面比率40%,并且第三封闭块具有VPC 30和有效页面比率30%。第四管芯1504中包括的第一封闭块具有VPC 45和有效页面比率45%,并且第四封闭块具有VPC 15和有效页面比率15%。此时,因为第二管芯1502中包括的第一和第三封闭块以及第四管芯1504中包括的第四封闭块具有等于或小于25%的有效页面比率,所以可选择这些封闭块作为牺牲块。
此后,将描述将第二阈值设置为平均VPC的第二方法。为了设置第二阈值,第一牺牲块选择单元VBS1可使用其它管芯中包括的多个封闭块中包括的页面(例如,有效页面)的总数量来计算平均VPC。例如,平均VPC可被计算为28。第一牺牲块选择单元VBS1可选择封闭块作为牺牲块,该封闭块具有数量等于或小于28的有效页面,28是被设置为第二阈值的平均VPC。因为第二管芯1502中包括的第一和第三封闭块以及第四管芯1504中包括的第四封闭块具有数量等于或小于平均VPC“28”的有效页面,所以可选择这些封闭块作为牺牲块。第一牺牲块选择单元VBS1可以上述方式选择牺牲块。
第一垃圾收集操作单元GCO1可将由第一牺牲块选择单元VBS1选择的牺牲块的有效页面复制到目标块的空页面中。然后,第一垃圾收集操作单元GCO1可擦除牺牲块以成为空闲块。例如,第一垃圾收集操作单元GCO1可将通过第一和第二方法由第一牺牲块选择单元VBS1选择作为牺牲块的、第二管芯1502中包括的第一和第三封闭块以及第四管芯1504中包括的第四封闭块的有效页面复制到目标块的空页面中。然后,第一垃圾收集操作单元GCO1可擦除第二管芯1502中包括的第一和第三封闭块以及第四管芯1504中包括的第四封闭块中包括的所有页面,以成为空闲块。
因为当牺牲块中包括的有效页面的有效数据被复制到目标块中时,映射信息被改变,所以第一更新单元UPD1可将经改变的映射信息临时存储在存储器144中包括的第二缓冲器520中。然后,第一更新单元UPD1可使用第二缓冲器520中存储的映射信息来更新存储器装置150的映射表。
当通过上述方法执行垃圾收集操作时,垃圾收集操作可与写入操作并行执行,并且可将在常规存储器系统中不能被选择作为牺牲块的封闭块选择作为牺牲块,这使得可以利用超量配置(over-provisioning)空间。
图7示出与以下情况相关的配置:并行操作确定单元135b检查其它管芯中是否存在多个封闭块,并且检查结果指示其它管芯中不存在多个封闭块。
参照图7,通过并行操作确定单元135b检查其它管芯中是否存在多个封闭块获得的结果可指示多个封闭块不存在于其它管芯中,而是被包括在包括开放块的第一管芯(即,写入目标管芯)中。也就是说,因为其它管芯中不存在可被选择作为牺牲块的封闭块,所以并行操作确定单元135b可确定不能与对写入目标管芯的写入操作并行地执行对写入目标管芯的垃圾收集操作。因此,可通过第二垃圾收集单元135d来执行第二垃圾收集操作。
第二垃圾收集单元135d可包括第二牺牲块选择单元VBS2、第二垃圾收集操作单元GCO2和第二更新单元UD2。
第二牺牲块选择单元VBS2可在写入目标管芯中包括的多个封闭块之中选择一个或多个牺牲块。此时,如果正在对写入目标管芯中包括的开放块执行写入操作,则可在完成对写入目标管芯的写入操作之后对写入目标管芯执行垃圾收集操作。第二牺牲块选择单元VBS2可在包括开放块的第一管芯(即,写入目标管芯)中包括的多个封闭块之中选择牺牲块。例如,第二牺牲块选择单元VBS2可选择第三封闭块和第四封闭块作为牺牲块,该牺牲块具有数量等于或小于第三阈值TH3的有效页面。也就是说,第二牺牲块选择单元VBS2可在多个封闭块之中选择一个或多个牺牲块以用于垃圾收集,该一个或多个牺牲块具有数量大于第三阈值TH3的无效页面或者具有数量小于或等于第三阈值TH3的有效页面。可将用于选择牺牲块的方法划分为两种方法。第一方法可对应于将第三阈值设置为有效页面比率的情况,并且第二方法可对应于将第三阈值设置为平均VPC的情况。因为已参照图6详细描述了第一和第二方法,所以此处将省略对其的详细描述。
根据将第三阈值设置为有效页面比率的第一方法,第二牺牲块选择单元VBS2可在第一管芯中包括的多个封闭块之中选择封闭块作为牺牲块,该封闭块具有数量等于或小于有效页面比率的有效页面。例如,为便于描述,可将被设置为第三阈值的有效页面比率设置为25%。第一管芯1501中包括的第三封闭块具有VPC 10和有效页面比率10%,并且第四封闭块具有VPC 30和有效页面比率30%。此时,可选择有效页面比率小于25%的第三封闭块作为牺牲块。
将描述将第三阈值设置为平均VPC的第二方法。为了设置第三阈值,第二牺牲块选择单元VBS2可使用第一管芯(即,写入目标管芯)中包括的多个封闭块中包括的页面(例如,有效页面)的总数量来计算平均VPC。例如,平均VPC可被计算为20。第二牺牲块选择单元VBS2可选择VPC等于或小于被设置为第三阈值的平均VPC的封闭块作为牺牲块。此时,可选择VPC小于平均VPC“20”的第三封闭块作为牺牲块。第二牺牲块选择单元VBS2可以上述方式来选择牺牲块。
第二垃圾收集操作单元GCO2可将由第二牺牲块选择单元VBS2选择的牺牲块的有效页面复制到目标块的空页面中。然后,第二垃圾收集操作单元GCO2可擦除牺牲块以成为空闲块。例如,可将通过第一和第二方法由第二牺牲块选择单元VBS2选择作为牺牲块的第三封闭块的有效页面复制到目标块的空页面中。然后,第二垃圾收集操作单元GCO2可擦除牺牲块中包括的所有页面,以成为空闲块。
因为当牺牲块中包括的有效页面的有效数据被复制到空闲块中时,映射信息被改变,所以第二更新单元UPD2可将经改变的映射信息临时存储在存储器144中包括的第二缓冲器520中。然后,第二更新单元UPD2可使用第二缓冲器520中存储的映射信息来更新存储器装置150的映射表。
图8是示出根据实施例的存储器系统的操作方法的流程图。
参照图8,在步骤S801,垃圾收集管理器135可基于每个预定周期中的FBC来确定是否执行垃圾收集。也就是说,垃圾收集管理器135可检查FBC是否小于第一阈值TH1,以便确定是否执行垃圾收集。第一阈值TH1可对应于用于确定控制器130需要获得一个或多个空闲块的时间点的最小FBC。第一阈值TH1可以是预定值,并且最小FBC可根据存储器系统的操作条件而变化。
在步骤S803,垃圾收集管理器135可检查FBC是否小于第一阈值TH1。当步骤S803的检查结果指示FBC小于第一阈值TH1(FBC<TH1)时,垃圾收集管理器135可确定发生执行垃圾收集操作的事件,并且执行步骤S805以执行垃圾收集。
另一方面,当步骤S803的检查结果指示FBC等于或大于第一阈值TH1(FBC≥TH1)时,垃圾收集管理器135可不执行垃圾收集,并且返回到步骤S801。
当发生垃圾收集事件时,在步骤S805和S807,垃圾收集管理器135可检查是否可与对写入目标管芯的写入操作并行地、对垃圾收集目标管芯执行垃圾收集操作。根据通过检查是否可与对写入目标管芯的写入操作并行地、对垃圾收集目标管芯执行垃圾收集操作而获得的结果,可确定下面将描述的第一和第二垃圾收集操作中的任意一个以执行垃圾收集。
将参照图9描述用于检查是否可与写入操作并行执行垃圾收集操作的方法。
在步骤S901,垃圾收集管理器135可检查多个管芯之中的各自包括开放块的一个或多个写入目标管芯,然后检查多个管芯之中的、除了一个或多个写入目标管芯之外的其它管芯。
在步骤S903,垃圾收集管理器135可检查在除了包括开放块的一个或多个写入目标管芯之外的其它管芯中是否存在封闭块。当检查结果指示其它管芯中存在封闭块时,垃圾收集管理器135可确定可与对写入目标管芯的写入操作并行地、对垃圾收集目标管芯执行垃圾收集操作。
另一方面,当多个封闭块不存在于其它管芯中,而是存在于包括开放块的一个或多个写入目标管芯中时,这可指示不能在其它管芯之中选择任何的垃圾收集目标管芯。因此,垃圾收集管理器135可确定不能对任何垃圾收集目标管芯执行垃圾收集操作,因此不能与对写入目标管芯的写入操作并行地、对写入目标管芯执行垃圾收集操作。
重新参照图8,当步骤S807的检查结果指示,根据步骤S903的确定结果,可与对写入目标管芯的写入操作并行地对垃圾收集目标管芯执行垃圾收集操作时,在步骤S809,垃圾收集管理器135可对其它管芯中包括的多个封闭块执行第一垃圾收集操作。将参照图10描述第一垃圾收集操作方法。
参照图10,在步骤S1001,垃圾收集管理器135可在其它管芯中包括的多个封闭块之中选择一个或多个牺牲块,以便执行第一垃圾收集操作。垃圾收集管理器135可在多个封闭块之中选择牺牲块,该牺牲块具有数量等于或小于第二阈值TH2的有效页面。可将用于选择牺牲块的方法划分为两种方法。第一方法可对应于将第二阈值设置为有效页面比率的情况,并且第二方法可对应于将第二阈值设置为平均VPC的情况。
将首先描述将第二阈值设置为有效页面比率的第一方法。垃圾收集管理器135可在其它管芯中包括的多个封闭块之中选择封闭块作为牺牲块,该封闭块具有数量等于或小于有效页面比率的有效页面。第二方法可对应于将第二阈值设置为平均VPC的情况。为了设置第二阈值,垃圾收集管理器135可使用其它管芯中包括的多个封闭块中包括的页面的总数量来计算平均VPC。垃圾收集管理器135可将所计算的平均VPC设置为第二阈值,并且选择VPC等于或小于平均VPC的封闭块作为牺牲块。
在步骤S1003,垃圾收集管理器135可将所选择的牺牲块的有效页面复制到目标块的空页面中。
在步骤S1005,垃圾收集管理器135可擦除牺牲块以成为空闲块。当通过上述方法执行垃圾收集操作时,可与对写入目标管芯的写入操作并行地、对垃圾收集目标管芯执行垃圾收集操作,并且也可将在常规存储器系统中不能被选择作为牺牲块的封闭块选择作为牺牲块,这使得可以利用超量配置空间。
重新参照图8,当步骤S807的检查结果指示不能与写入操作并行地执行垃圾收集操作(否)时,在步骤S813,垃圾收集管理器135可对写入目标管芯中包括的封闭块执行第二垃圾收集。将参照图11描述第二垃圾收集方法。
参照图11,在步骤S1101,垃圾收集管理器135可在包括开放块的写入目标管芯中包括的多个封闭块之中选择一个或多个牺牲块。此时,如果正在对写入目标管芯中包括的开放块执行写入操作,则可在完成对写入目标管芯的写入操作之后执行对写入目标管芯的垃圾收集操作。垃圾收集管理器135可在多个封闭块之中选择牺牲块,该牺牲块具有数量等于或小于第三阈值TH3的有效页面。可将用于选择牺牲块的方法划分为两种方法。第一方法可对应于基于有效页面比率来设置第三阈值的情况,并且第二方法可对应于基于平均VPC来设置第三阈值的情况。
将首先描述将第三阈值设置为有效页面比率的第一方法。垃圾收集管理器135可在写入目标管芯中包括的多个封闭块之中选择封闭块作为牺牲块,该封闭块具有数量等于或小于有效页面比率的有效页面。第二方法可对应于将第三阈值设置为平均VPC的情况。为了设置第三阈值,垃圾收集管理器135可使用写入目标管芯中包括的多个封闭块中包括的页面的总数量来计算平均VPC。垃圾收集管理器135可将所计算的平均VPC设置为第三阈值,并且选择VPC等于或小于平均VPC的封闭块作为牺牲块。
在步骤S1103,垃圾收集管理器135可将所选择的牺牲块的有效页面复制到空闲块的空页面中。
在步骤S1105,垃圾收集管理器135可擦除牺牲块以成为空闲块。
重新参照图8,当通过步骤S809或S813执行第一或第二垃圾收集操作时,随着牺牲块中包括的有效页面的有效数据被复制到目标块中,映射信息可被改变。因此,在步骤S811,垃圾收集管理器135可将经改变的映射信息临时存储在存储器144中包括的第二缓冲器520中,并且使用第二缓冲器520中存储的映射信息来更新存储器装置150的映射表。
图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描述的主机102的外部装置通信。例如,如上面参照图1所述,存储器控制器6120可被配置成通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCIe)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WiFi或Wi-Fi以及蓝牙。因此,存储器系统和数据处理系统可应用于有线和/或无线电子设备,特别是移动电子设备。
存储器装置6130可由诸如以下的非易失性存储器来实施:电可擦除可编程ROM(EPROM)、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用作工作存储器的情况下,由CPU6221处理的数据被临时存储在RAM 6222中。在将RAM 6222用作缓冲存储器的情况下,RAM6222用于缓冲待从主机6210传送到存储器装置6230的数据或待从存储器装置6230传送到主机6210的数据。在将RAM 6222用作高速缓冲存储器的情况下,RAM 6222可用于使存储器装置6230能够高速运转。
ECC电路6223对应于控制器130的ECC组件138。ECC电路6223生成用于校正从存储器装置6230接收的数据中的失败位或错误位的错误校正码(ECC)。而且,ECC电路6223对待提供到存储器装置6230的数据执行错误校正编码,并且生成具有添加的奇偶校验位的数据。奇偶校验位可存储在存储器装置6230中。ECC电路6223可对从存储器装置6230输出的数据执行错误校正解码。ECC电路6223可通过使用奇偶校验位来校正错误。例如,如上面参照图1所述,ECC电路6223可通过使用诸如LDPC码、BCH码、涡轮码、里德-所罗门码、卷积码、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的接口功能。
当使用各应用了上面参照图1描述的存储器系统110的多个SSD 6300时,可实施例如独立磁盘冗余阵列(RAID)系统的数据处理系统。在RAID系统中,可包括多个SSD 6300和用于控制多个SSD 6300的RAID控制器。在通过从主机6310接收写入命令来执行编程操作的情况下,RAID控制器可在多个RAID级别之中,也就是在多个SSD 6300之中选择与所接收的写入命令的RAID级别信息相对应的至少一个存储器系统,也就是至少一个SSD 6300,并且可将对应于写入命令的数据输出到所选择的SSD 6300。而且,在通过从主机6310接收读取命令来执行读取操作的情况下,RAID控制器可在多个RAID级别之中,也就是在多个SSD6300之中选择与所接收的读取命令的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可以上面参照图16至图19描述的数据处理系统6200、SSD 6300或eMMC 6400的形式来实施,并且UFS卡6530、6630、6730和6830可以上面参照图15描述的存储卡系统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的非易失性随机存取存储器。例如,可通过基于堆叠式封装(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闪速存储器和3维NAND闪速存储器的非易失性存储器来实施。而且,存储模块6950可被设置为诸如用户系统6900的存储卡以及外部驱动器的可移动存储介质。也就是说,存储模块6950可对应于上面参照图1描述的存储器系统110,并且可被实施为上面参照图16至图19描述的SSD、eMMC以及UFS。
用户接口6910可包括用于向应用处理器6930输入数据或命令或者用于将数据输出到外部装置的接口。例如,用户接口6910可包括诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器和压电元件的用户输入接口,以及诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和监控器的用户输出接口。
在上面参照图1描述的存储器系统110被应用于根据实施例的用户系统6900的移动电子设备的情况下,应用处理器6930控制移动电子设备的一般操作,并且如上所述,作为通信模块的网络模块6940控制与外部装置的有线和/或无线通信。作为移动电子设备的显示和触摸模块的用户接口6910显示由应用处理器6930处理的数据或支持从触摸面板的数据输入。
根据本实施例,存储器系统及其操作方法可确定是否可与写入操作并行地执行垃圾收集操作。当可与写入操作并行地执行垃圾收集操作时,存储器系统及其操作方法可基于确定结果来选择牺牲块,并执行垃圾操作,从而减少执行垃圾收集操作所需的时间。
Claims (21)
1.一种存储器系统,包括:
存储器装置,包括多个管芯,所述多个管芯中的每个包括多个存储块;以及
控制器,包括处理器和存储器,
其中所述处理器包括垃圾收集管理器,所述垃圾收集管理器:
检查所述多个管芯之中的除了包括开放块的写入目标管芯之外的其它管芯中是否存在多个封闭块,
基于检查所述其它管芯中是否存在所述多个封闭块的结果,确定是否与对所述写入目标管芯的写入操作并行地执行对所述其它管芯的垃圾收集操作,
当所述其它管芯中存在所述多个封闭块时,在所述其它管芯之中选择一个或多个垃圾收集目标管芯,并且在所述垃圾收集目标管芯内的封闭块之中选择牺牲块,以及
根据所述确定的结果,与对所述写入目标管芯的写入操作并行地执行对所述垃圾收集目标管芯的垃圾收集操作。
2.根据权利要求1所述的存储器系统,其中当所述其它管芯中不存在所述多个封闭块时,所述垃圾收集管理器进一步在所述写入目标管芯内的封闭块之中选择牺牲块,并且在所述写入操作之后对所述写入目标管芯执行所述垃圾收集操作。
3.根据权利要求2所述的存储器系统,其中所述垃圾收集管理器包括:
垃圾收集确定单元,通过将所述存储器装置内的空闲块计数即FBC与第一阈值进行比较来确定是否执行所述垃圾收集操作;
并行操作确定单元,当所述FBC等于或小于所述第一阈值时检查所述其它管芯,检查所述其它管芯中是否存在所述封闭块,并且基于检查所述其它管芯中是否存在所述多个封闭块的结果,确定是否与所述写入操作并行地执行所述垃圾收集操作;
第一垃圾收集单元,当所述其它管芯中存在所述多个封闭块时,与所述写入操作并行地对所述垃圾收集目标管芯执行所述垃圾收集操作;以及
第二垃圾收集单元,当所述写入目标管芯中存在封闭块时,在所述写入操作之后对所述垃圾收集目标管芯执行所述垃圾收集操作。
4.根据权利要求3所述的存储器系统,其中所述第一垃圾收集单元包括:
第一牺牲块选择单元,在所述垃圾收集目标管芯内的多个封闭块之中选择具有等于或小于第二阈值的有效页面计数即VPC的牺牲块;
第一垃圾收集操作单元,将所述牺牲块中存储的有效数据移动到所述垃圾收集目标管芯内的目标块中,并且擦除所述牺牲块;以及
第一更新单元,根据所述有效数据的移动来更新所述存储器装置的映射表。
5.根据权利要求4所述的存储器系统,其中所述第二阈值代表存储块内的有效页面比率。
6.根据权利要求4所述的存储器系统,其中所述第二阈值代表存储块内的平均VPC。
7.根据权利要求3所述的存储器系统,其中所述第二垃圾收集单元包括:
第二牺牲块选择单元,在所述写入目标管芯中包括的所述多个封闭块之中选择具有等于或小于第三阈值的VPC的牺牲块,其中所述第三阈值指示有效页面比率或平均VPC;
第二垃圾收集操作单元,将所述牺牲块中存储的有效数据移动到所述写入目标管芯内的目标块中,并且擦除所述牺牲块;以及
第二更新单元,根据所述有效数据的移动来更新所述存储器装置的映射表。
8.根据权利要求7所述的存储器系统,其中所述第三阈值代表存储块内的有效页面比率。
9.根据权利要求7所述的存储器系统,其中所述第三阈值代表存储块内的平均VPC。
10.一种存储器系统的操作方法,所述存储器系统包括:存储器装置,包括多个管芯,所述多个管芯中的每个包括多个存储块;以及控制器,包括处理器和存储器,所述操作方法包括:
检查所述多个管芯之中的除了包括开放块的写入目标管芯之外的其它管芯中是否存在多个封闭块;
基于所述检查的结果,确定是否与对所述写入目标管芯的写入操作并行地执行对所述其它管芯的垃圾收集操作;
当所述其它管芯中存在所述多个封闭块时,在所述其它管芯之中选择一个或多个垃圾收集目标管芯,并且在所述垃圾收集目标管芯内的封闭块之中选择牺牲块;并且
根据所述确定的结果,与所述写入操作并行地执行对所述垃圾收集目标管芯的垃圾收集操作。
11.根据权利要求10所述的操作方法,进一步包括:
当所述其它管芯中不存在所述多个封闭块时,在所述写入目标管芯内的封闭块之中选择牺牲块,并且在所述写入操作之后对所述写入目标管芯执行所述垃圾收集操作。
12.根据权利要求10所述的操作方法,其中通过将所述存储器装置内的空闲块计数即FBC与第一阈值进行比较来确定是否执行所述垃圾收集操作。
13.根据权利要求10所述的操作方法,其中确定是否执行所述垃圾收集操作包括:
当所述其它管芯中存在所述多个封闭块时,确定将与所述写入操作并行地执行所述垃圾收集操作;并且
当所述其它管芯中不存在所述多个封闭块并且所述写入目标管芯中存在封闭块时,确定将在所述写入操作之后执行所述垃圾收集操作。
14.根据权利要求13所述的操作方法,其中与所述写入操作并行地执行所述垃圾收集操作包括:
在所述垃圾收集目标管芯内的多个封闭块之中选择具有等于或小于第二阈值的有效页面计数即VPC的牺牲块;
将所述牺牲块中存储的有效数据移动到所述垃圾收集目标管芯内的目标块中;并且
擦除所述牺牲块。
15.根据权利要求14所述的操作方法,其中所述第二阈值代表存储块内的有效页面比率和平均VPC中的一个。
16.根据权利要求13所述的操作方法,其中在所述写入操作之后执行所述垃圾收集操作包括:
在所述写入目标管芯中包括的多个封闭块之中选择具有等于或小于第三阈值的VPC的牺牲块;
将所述牺牲块中存储的有效数据移动到所述写入目标管芯内的目标块中;并且
擦除所述牺牲块。
17.根据权利要求16所述的操作方法,其中所述第三阈值代表存储块内的有效页面比率和平均VPC中的一个。
18.根据权利要求10所述的操作方法,进一步包括根据所述垃圾收集操作的结果来更新所述存储器装置的映射表。
19.一种存储器系统,包括:
存储器装置,包括多个存储器管芯,所述多个存储器管芯中的每个包括多个存储块;以及
控制器,控制所述存储器装置以对所述存储器管芯中的每个独立地执行操作,
其中所述控制器控制所述存储器装置以对所述存储器管芯之中的第一存储器管芯执行前台操作,同时对所述存储器管芯之中的第二存储器管芯执行后台操作。
20.根据权利要求19所述的存储器系统,
其中所述前台操作是写入操作,并且
其中所述后台操作是垃圾收集操作。
21.根据权利要求20所述的存储器系统,
其中所述第一存储器管芯包括作为所述前台操作的对象的开放块,并且
其中所述第二存储器管芯包括作为所述后台操作的对象的封闭块和空闲块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2018-0167584 | 2018-12-21 | ||
KR1020180167584A KR20200078046A (ko) | 2018-12-21 | 2018-12-21 | 메모리 시스템 및 메모리 시스템의 동작방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111352858A true CN111352858A (zh) | 2020-06-30 |
CN111352858B CN111352858B (zh) | 2023-04-14 |
Family
ID=71098201
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911226926.1A Active CN111352858B (zh) | 2018-12-21 | 2019-12-04 | 存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11360889B2 (zh) |
KR (1) | KR20200078046A (zh) |
CN (1) | CN111352858B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI799718B (zh) * | 2020-06-22 | 2023-04-21 | 群聯電子股份有限公司 | 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI741870B (zh) * | 2020-11-10 | 2021-10-01 | 群聯電子股份有限公司 | 資料整併方法、記憶體儲存裝置及記憶體控制電路單元 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080005520A1 (en) * | 2006-06-09 | 2008-01-03 | Siegwart David K | Locality with parallel hierarchical copying garbage collection |
US20160026408A1 (en) * | 2014-07-24 | 2016-01-28 | Fusion-Io, Inc. | Storage device metadata synchronization |
US20170285945A1 (en) * | 2016-04-01 | 2017-10-05 | Sk Hynix Memory Solutions Inc. | Throttling for a memory system and operating method thereof |
US20180211708A1 (en) * | 2017-01-25 | 2018-07-26 | Toshiba Memory Corporation | Memory system and control method |
CN108563586A (zh) * | 2018-04-12 | 2018-09-21 | 华中科技大学 | 一种分离固态盘中垃圾回收数据与用户数据的方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102292198B1 (ko) | 2014-10-15 | 2021-08-25 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 데이터 저장 장치 및 그것의 동작 방법 |
US10078582B2 (en) * | 2014-12-10 | 2018-09-18 | International Business Machines Corporation | Non-volatile memory system having an increased effective number of supported heat levels |
KR102301772B1 (ko) | 2015-03-09 | 2021-09-16 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 가비지 컬렉션 방법 |
US10007451B2 (en) * | 2015-03-20 | 2018-06-26 | SK Hynix Inc. | Scalable SPOR algorithm for flash memories |
US10102146B2 (en) * | 2015-03-26 | 2018-10-16 | SK Hynix Inc. | Memory system and operating method for improving rebuild efficiency |
KR102501751B1 (ko) | 2015-09-22 | 2023-02-20 | 삼성전자주식회사 | 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법 |
CN107209719B (zh) | 2015-12-03 | 2018-10-09 | 华为技术有限公司 | 一种阵列控制器、固态硬盘和控制固态硬盘写数据的方法 |
US9996268B2 (en) * | 2015-12-18 | 2018-06-12 | Toshiba Memory Corporation | Memory system and control method of the same |
JP6524039B2 (ja) * | 2016-09-23 | 2019-06-05 | 東芝メモリ株式会社 | メモリシステム及び制御方法 |
US10474582B2 (en) * | 2017-04-28 | 2019-11-12 | Seagate Technology Llc | NAND flash storage device and methods using non-NAND storage cache |
US10901892B2 (en) * | 2017-05-18 | 2021-01-26 | Western Digital Technologies, Inc. | Locality grouping during garbage collection with flush of buffered write data upon completion of garbage collection operation |
US10740228B2 (en) * | 2017-05-18 | 2020-08-11 | Sandisk Technologies Llc | Locality grouping during garbage collection of a storage device |
KR102233400B1 (ko) * | 2017-05-29 | 2021-03-26 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR20190102790A (ko) * | 2018-02-27 | 2019-09-04 | 에스케이하이닉스 주식회사 | 컨트롤러 및 그 동작 방법과, 이를 포함하는 메모리 시스템 |
-
2018
- 2018-12-21 KR KR1020180167584A patent/KR20200078046A/ko unknown
-
2019
- 2019-11-12 US US16/681,374 patent/US11360889B2/en active Active
- 2019-12-04 CN CN201911226926.1A patent/CN111352858B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080005520A1 (en) * | 2006-06-09 | 2008-01-03 | Siegwart David K | Locality with parallel hierarchical copying garbage collection |
US20160026408A1 (en) * | 2014-07-24 | 2016-01-28 | Fusion-Io, Inc. | Storage device metadata synchronization |
US20170285945A1 (en) * | 2016-04-01 | 2017-10-05 | Sk Hynix Memory Solutions Inc. | Throttling for a memory system and operating method thereof |
US20180211708A1 (en) * | 2017-01-25 | 2018-07-26 | Toshiba Memory Corporation | Memory system and control method |
CN108563586A (zh) * | 2018-04-12 | 2018-09-21 | 华中科技大学 | 一种分离固态盘中垃圾回收数据与用户数据的方法 |
Non-Patent Citations (1)
Title |
---|
YUE YANG .ETC: "Analytical modeling of garbage collection algorithms in hotness-aware flash-based solid state drives" * |
Also Published As
Publication number | Publication date |
---|---|
CN111352858B (zh) | 2023-04-14 |
KR20200078046A (ko) | 2020-07-01 |
US20200201755A1 (en) | 2020-06-25 |
US11360889B2 (en) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110858180B (zh) | 数据处理系统及其操作方法 | |
US10866898B2 (en) | Method and apparatus for migrating data between nonvolatile main memory and first or second caches | |
CN107450845B (zh) | 存储器系统及其操作方法 | |
KR20180076765A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20200084201A (ko) | 컨트롤러 및 컨트롤러의 동작방법 | |
KR102605609B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20190074677A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR102559528B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR102415875B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20190040604A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN109656749B (zh) | 存储器系统及其操作方法 | |
KR20190113443A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20180135188A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN110765029B (zh) | 控制器及用于操作该控制器的方法 | |
KR102322740B1 (ko) | 복수의 프로세서를 포함하는 컨트롤러 및 컨트롤러의 동작방법 | |
KR102646252B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN109656470B (zh) | 存储器系统及其操作方法 | |
KR20200074647A (ko) | 메모리 시스템 및 그것의 동작방법 | |
KR20180076425A (ko) | 컨트롤러 및 컨트롤러의 동작 방법 | |
CN110688060B (zh) | 存储器系统及该存储器系统的操作方法 | |
CN110716881B (zh) | 存储器系统及其操作方法 | |
KR20190069806A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN111352858B (zh) | 存储器系统及其操作方法 | |
KR102579824B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR20200015247A (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 |