CN110955611A - 存储器系统及其操作方法 - Google Patents
存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN110955611A CN110955611A CN201910649474.1A CN201910649474A CN110955611A CN 110955611 A CN110955611 A CN 110955611A CN 201910649474 A CN201910649474 A CN 201910649474A CN 110955611 A CN110955611 A CN 110955611A
- Authority
- CN
- China
- Prior art keywords
- garbage collection
- memory
- collection operation
- controller
- time
- 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
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/0683—Plurality of storage devices
-
- 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
Abstract
本文公开了存储器系统及其操作方法。一种存储器系统,包括:存储器装置;以及控制器,适合于执行:空闲块管理操作,检测将要对其执行垃圾收集操作以生成需要的空闲块的牺牲块;垃圾收集操作时间管理操作,计算针对检测到的牺牲块的估计垃圾收集操作时间;以及垃圾收集操作周期管理操作,基于估计垃圾收集操作时间来动态地改变垃圾收集操作周期,并且在特定时间期间基于垃圾收集操作周期来周期性地执行垃圾收集操作,其中每当更新周期到达时,所述控制器重复执行所述空闲块管理操作、所述垃圾收集操作时间管理操作和所述垃圾收集操作周期管理操作。
Description
相关申请的交叉引用
本申请要求2018年9月27日提交的韩国专利申请No.10-2018-0114941的优先权,其全部内容通过引用合并于此。
技术领域
本发明的示例性实施例涉及存储器系统,更具体地涉及用于有效地执行垃圾收集操作的存储器系统及其操作方法。
背景技术
计算机环境范例已经转移到普适运算,这使得计算系统可以随时随地被使用。结果,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用迅速增加。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统以用于存储数据。存储器系统可以用作便携式电子装置的主存储器装置或辅助存储器装置。
与硬盘装置相比,存储器系统提供出色的稳定性、耐用性、高信息访问速度和低功耗,因为它们没有移动部件。具有这些优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储器卡以及固态驱动器(SSD)。
发明内容
本发明的实施例涉及一种能够基于用于执行垃圾收集操作的估计的时间来动态地改变垃圾收集触发周期的存储器系统。
根据本发明的实施例,一种存储器系统,包括:存储器装置;以及控制器,适合于执行:空闲块管理操作,检测将要对其执行垃圾收集操作以生成需要的空闲块的牺牲块;垃圾收集操作时间管理操作,计算针对检测到的牺牲块的估计垃圾收集操作时间;以及垃圾收集操作周期管理操作,基于所述估计垃圾收集操作时间来动态地改变垃圾收集操作周期,并且在特定时间期间基于所述垃圾收集操作周期来周期性地执行垃圾收集操作,其中每当更新周期到达时,所述控制器重复执行所述空闲块管理操作、所述垃圾收集操作时间管理操作和所述垃圾收集操作周期管理操作。
根据本发明的另一个实施例,一种用于操作存储器系统的方法,包括:空闲块管理操作,检测将要对其执行垃圾收集操作以生成需要的空闲块的牺牲块;垃圾收集操作时间管理操作,计算针对检测到的牺牲块的估计垃圾收集操作时间;以及垃圾收集操作周期管理操作,基于估计所述垃圾收集操作时间来动态地改变垃圾收集操作周期,并且在特定时间期间基于所述垃圾收集操作周期来周期性地执行垃圾收集操作,其中每当更新周期到达时,重复执行所述空闲块管理操作、所述垃圾收集操作时间管理操作和所述垃圾收集操作周期管理操作。
根据本发明的实施例,一种存储器系统包括:存储器装置,包括分别具有预定分布模式的有效页的一个或多个存储器块和一个或多个牺牲块;以及控制器,适合于:测量对所述预定分布模式的有效页的测试垃圾收集操作分别花费的多段时间;基于所述多段时间估计垃圾收集操作时间;基于所估计的垃圾收集操作时间和对所述牺牲块的周期性垃圾收集操作所需要的预定时间来更新所述周期性垃圾收集操作的周期;以及控制所述存储器装置以基于所更新的周期来对所述牺牲块执行所述周期性垃圾收集操作。
附图说明
图1是示出根据本发明实施例的包括存储器系统的数据处理系统的框图。
图2是示出根据本发明实施例的存储器系统中使用的超级存储器块的概念的框图。
图3是示出垃圾收集的基本操作的图。
图4是示出垃圾收集操作的图。
图5是描述根据本发明实施例的存储器系统110的操作的流程图。
图6是描述改变垃圾收集操作周期的操作的流程图。
图7是描述计算估计的垃圾收集操作时间的操作的流程图。
图8是示出基于有效页分布而分类的多个情况的图。
图9是示出针对对应于第一情况VPC_CASE1的超级块802改变读取有效页的方法的操作的框图。
图10是示出垃圾收集操作时间和平均垃圾收集操作时间的表的图。
图11是示出用于计算牺牲块的估计的垃圾收集操作时间的方法的图。
图12是示出根据本发明的实施例的存储器系统110的框图。
图13是示出垃圾收集操作时间管理单元的结构的框图。
图14是示出图1所示的存储器系统中采用的存储器装置的示例性配置的示意图。
图15是示出图1所示的存储器装置中的存储器块的存储器单元阵列的示例性配置的电路图。
图16是示出根据本发明的实施例的存储器系统的存储器装置的结构的框图。
图17至图25是示意性地示出根据本发明的各种实施例的数据处理系统的示例性应用的图。
具体实施方式
下面参考附图更详细地描述本发明的各种实施例。然而,本发明可以以不同形式体现,并且不应被解释为限于这里阐述的实施例。相反,提供这些实施例以使得本公开将彻底和完整并且将本发明的范围完全传达给本领域技术人员。在整个公开内容中,在本发明的各个附图和实施例中,相同的附图标记指代相同的部分。
注意,对“实施例”的引用不一定仅意味着一个实施例,并且对“实施例”的不同引用不一定是指相同实施例。
应当理解,尽管这里使用术语“第一”和/或“第二”来描述各种元件,但是这些元件不受这些术语的限制。这些术语仅用于将一个元件与另一个元件区分开来。因此,在不脱离本公开的教导的情况下,以下讨论的第一元件也可以被称为第二元件。类似地,第二元件也可以被称为第三元件。
应当理解,当一个元件被称为“耦合”或“连接”到另一个元件时,它可以直接耦合或连接到另一个元件,或者可以在它们之间存在中间元件。相反,应该理解,当元件被称为“直接耦合”或“直接连接”到另一个元件时,不存在中间元件。描述元件之间关系的其他表达,例如“在......之间”、“直接在......之间”、“与......相邻”或“与......直接相邻”应该以相同的方式解释。
这里使用的术语仅用于描述特定实施例的目的,而不旨在是限制性的。在本公开中,除非上下文另有明确说明,否则单数形式也旨在包括复数形式。将进一步理解,在本说明书中使用的术语“包括”、“包含”、“具有”等指定所述特征、数字、步骤、操作、元件、部件和/或组合的存在,但不排除存在或添加一个或多个其他特征、数字、步骤、操作、元件、部件和/或其组合。
上述示例性实施例仅用于理解本公开的技术精神的目的,并且本公开的范围不应限于上述示例性实施例。对于本领域技术人员显而易见的是,除了上述示例性实施例之外,还可以基于本公开的技术精神进行其他修改。
除非另外定义,否则本文使用的包括技术和科学术语的所有术语具有与本公开所属的领域中的普通技术人员通常理解的含义相同的含义。除非在本公开中另外定义,否则这些术语不应被解释为理想化或过于形式。
在下文中,将参考附图详细描述本发明的各种实施例。
图1是示出根据本发明实施例的包括存储器系统110的数据处理系统100的框图。
参考图1,数据处理系统100可以包括可操作地耦合到存储器系统110的主机102。
主机102可以包括各种便携式电子装置中的任何一种,诸如移动电话、MP3播放器和膝上型计算机,或者各种非便携式电子装置中的任何一种,诸如台式计算机、游戏机、电视和投影仪。
主机102可以包括至少一个OS(操作系统)或多个操作系统。主机102可以执行OS以在存储器系统110上执行与用户请求相对应的操作。这里,主机102可以向存储器系统110提供与用户请求相对应的多个命令。因此,存储器系统110可以执行与对应于用户请求的多个命令相对应的某些操作。OS可以管理和控制主机102的整体功能和操作。OS可以使用数据处理系统100或存储器系统110来支持主机102和用户之间的操作。
存储器系统110可以响应于来自主机102的请求来操作或执行特定功能或操作,并且特别地,可以存储要由主机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可以包括存储器装置150和控制器130。
控制器130和存储器装置150可以被集成到单个半导体装置中,该半导体装置可以被包括在如上所述的各种类型的存储器系统中的任何一种中。例如,控制器130和存储器装置150可以被集成为单个半导体装置以构成SSD、PCMCIA(个人计算机存储器卡国际协会)卡、包括迷你SD、微型SD和SDHC的SD卡以及UFS器件。存储器系统110可以被配置作为计算机、智能电话、便携式游戏机或构成计算系统的各种部件之一的一部分。
存储器装置150可以是即使没有供电也可以保留存储的数据的非易失性存储器装置。存储器装置150可以存储通过写入操作从主机102提供的数据,并且通过读取操作将存储在其中的数据输出到主机102。在一个实施例中,存储器装置150可以包括多个存储器管芯(未示出),并且每个存储器管芯可以包括多个平面(未示出)。每个平面可以包括多个存储器块152至156,每个存储器块可以包括多个页,每个页可以包括耦合到字线的多个存储器单元。在一个实施例中,存储器装置150可以是具有3维(3D)层叠结构的闪存。
这里,存储器装置150的结构和存储器装置150的三维立体层叠结构将在后面参考图12至图14更详细地描述。
控制器130可以响应于来自主机102的请求来控制存储器装置150。例如,控制器130可以将从存储器装置150读取的数据提供给主机102,并且将从主机102提供的数据存储到存储器装置150中。对于该操作,控制器130可以控制存储器装置150的读取、写入、编程和擦除操作。
更具体地,控制器130可以包括主机接口(I/F)132、处理器134、存储器接口142和存储器144,它们都经由内部总线可操作地耦合或接合。处理器134可以包括空闲块管理器1202、牺牲管理器1204、垃圾收集(GC)操作时间管理器1206、GC周期管理器1208和GC操作器1210,这将在下面参考图12进行描述。
主机接口132可以处理主机102的命令和数据。主机接口132可以通过诸如通用串行总线(USB)、多媒体卡(MMC)、外围部件互连(PCI-E)、小型计算机系统接口(SCSI)、串行连接SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小磁盘接口(ESDI)和集成驱动电子装置(IDE)的各种接口协议中的一个或多个与主机102通信。可以经由固件,即,用于与主机102交换数据的主机接口层(HIL),来驱动主机接口132。
存储器接口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执行由主机102在存储器装置150中请求的操作,处理器134被实现为微处理器、CPU等。而且,控制器130可以通过处理器134对存储器装置150执行后台操作,处理器134可以被实现为微处理器或CPU。在存储器装置150上执行的后台操作可以包括:将存储在存储器装置150的存储器块152至156中的一些存储器块中的数据复制和处理到其他存储器块中的操作,例如垃圾收集(GC)操作;在存储器块152至156之间或在存储器块152至156的数据之间执行交换的操作,例如耗损均衡(WL)操作;将存储在控制器130中的映射数据存储在存储器块152至156中的操作,例如映射刷新操作;或者管理存储器装置150中的坏块的操作,例如检测和处理存储器装置150中的存储器块152至156之中的坏块的坏块管理操作。
图2是示出根据本发明实施例的存储器系统中使用的超级存储器块的概念的图。
图2详细示出了根据本发明实施例的在图1所示的存储器系统110的组成元件之中的存储器装置150的组成元件。
存储器装置150可以包括多个存储器块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N和BLOCK110至BLOCK11N。
另外,存储器装置150可以包括能够通过第零通道CH0输入/输出数据的第一存储器管芯DIE0和能够通过第一通道CH1输入/输出数据的第二存储器管芯DIE1。第零通道CH0和第一通道CH1可以以交织方案输入/输出数据。
第一存储器管芯DIE0可以包括分别对应于多个路径WAY0和WAY1的多个平面PLANE00和PLANE01。路径WAY0和WAY1可以通过共享第零通道CH0以交织方案输入/输出数据。
第二存储器管芯DIE1可以包括分别对应于多个路径WAY2和WAY3的多个平面PLANE10和PLANE11。路径WAY2和WAY3可以通过共享第一通道CH1以交织方案输入/输出数据。
第一存储器管芯DIE0的第一平面PLANE00可以包括多个存储器块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N和BLOCK110至BLOCK11N之中的预定数目的存储器块BLOCK000至BLOCK00N。
第一存储器管芯DIE0的第二平面PLANE01可以包括多个存储器块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N和BLOCK110至BLOCK11N之中的预定数目的存储器块BLOCK010至BLOCK01N。
第二存储器管芯DIE1的第一平面PLANE10可以包括多个存储器块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N和BLOCK110至BLOCK11N之中的预定数目的存储器块BLOCK100至BLOCK10N。
第二存储器管芯DIE1的第二平面PLANE11可以包括多个存储器块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N和BLOCK110至BLOCK11N之中的预定数目的存储器块BLOCK110至BLOCK11N。
以这种方式,存储器装置150中包括的多个存储器块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N以及BLOCK110至BLOCK11N可以根据它们的物理位置以及它们对路径和通道的使用来被分组。
尽管在本发明的实施例中描述了两个存储器管芯DIE0和DIE1被包括在存储器装置150中,两个平面PLANE00和PLANE01/PLANE10和PLANE11被包括在相应的存储器管芯DIE0和DIE1中,并且预定数目的存储器块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N和BLOCK110至BLOCK11N被包括在相应的平面PLANE00和PLANE01/PLANE10和PLANE11中,但是本发明不限于此。实际上,根据系统设计者的决定,在存储器装置150中可以包括比两个更多或更少的存储器管芯,可以在相应的存储器管芯中包括比两个更多或更少的平面。另外,还可以根据系统设计者的决定来不同地调整包括在各个平面中的存储器块的预定数目。
不同于根据诸如存储器管芯DIE0和DIE1或平面PLANE00和PLANE01/PLANE10和PLANE11的它们的物理位置来对存储器装置150中包括的多个存储器块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N和BLOCK110至BLOCK11N进行划分的方式,控制器130可以使用基于被同时选择的存储器块和对这些被选择的存储器块进行的操作来对多个存储器块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N以及BLOCK110至BLOCK11N进行划分的方法。换句话说,控制器130可以通过对能够在多个存储器块之中同时被选择的存储器块进行分组并且从而将分组的存储器块划分为超级存储器块来管理基于它们的物理位置位于不同管芯或不同平面中的多个存储器块。
可以根据系统设计者的决定以各种方式执行由控制器130将存储器块分组为超级存储器块的同时选择方案。这里,三个同时选择方案将举例如下。
第一种方案是对在存储器装置150中包括的存储器管芯DIE0和DIE1之间的第一存储器管芯DIE0的第一平面PLANE00的任意存储器块BLOCK000和第二平面PLANE01的任意存储器块BLOCK010进行分组,并且将分组的存储器块BLOCK000和BLOCK010管理为单个超级存储器块A1。当第一路径被应用于存储器装置150中包括的存储器管芯DIE0和DIE1之间的第二存储器管芯DIE1时,控制器130可以将来自第二存储器管芯DIE1的第一平面PLANE10的任意存储器块BLOCK100和来自第二平面PLANE11的任意存储器块BLOCK110分组,并且将分组的存储器块BLOCK100和BLOCK110管理为单个超级存储器块A2。
第二种方案是将来自第一存储器管芯DIE0的第一平面PLANE00的任意存储器块BLOCK002和来自第二存储器管芯DIE1的第一平面PLANE10的任意存储器块BLOCK102分组,并且将分组的存储器块BLOCK002和BLOCK102管理为单个超级内存块B1。另外,根据第二种方式,控制器130可以将来自第一存储器管芯DIE0的第二平面PLANE01的任意存储器块BLOCK012和来自第二存储器管芯DIE1的第二平面PLANE11的任意存储器块BLOCK112分组,并且将分组的存储器块BLOCK012和BLOCK112管理为单个超级存储器块B2。
第三种方案是将来自第一存储器管芯DIE0的第一平面PLANE00的任意存储器块BLOCK001、来自第一存储器管芯DIE0的第二平面PLANE01的任意存储器块BLOCK011、来自第二存储器管芯DIE1的第一平面PLANE10的任意存储器块BLOCK101和来自第二存储器管芯DIE1的第二平面PLANE11的任意存储器块BLOCK111分组,并且将分组的存储器块BLOCK001、BLOCK011、BLOCK101和BLOCK111管理为单个超级存储器块C。
包括在各个超级存储器块中的同时可选择的存储器块可以由控制器130通过交织方案基本上同时地选择,交织方案例如通道交织方案、存储器管芯交织方案、存储器芯片交织方案或路径交织方案。
图3示出了基本GC操作。
由于非易失性存储器元件的特性,非易失性存储器装置可以基于页执行编程操作和读取操作,基于块执行擦除操作,但与硬盘不同,不支持重写操作。因此,非易失性存储器装置可以将新版本的数据编程到新页中,并且使数据的原始版本的页无效以更新编程到页中的数据。原始版本的数据变为无效数据,并且新版本的数据变为有效数据。存储无效数据的页是无效页。
GC操作可以是周期性地将无效页转换为空白页的操作,以便防止由于在修改数据的过程中产生的无效页而浪费非易失性存储器空间。GC操作可以包括用于读取编程到牺牲块302的有效页312的有效数据的有效数据读取操作、用于将该有效数据编程到目标块304的空白页314的有效数据编程操作、以及用于更新从牺牲块302移动到目标块304的有效数据的映射信息的映射更新操作。尽管牺牲块302和目标块304被示出为单独的块,但是它们可以是超级块,每个超级块包括多个块。
图4示出了根据现有技术的GC操作。
为了便于描述,在特定时间T_F期间存储器装置150所需要的空闲块数目被定义为需要的空闲块数目REQ_FREEBLK,并且在特定时间T_F期间由GC操作生成的空闲块的数目被定义为生成的空闲块数目GEN_FREEBLK。
控制器130可以控制存储器装置150在GC操作时间T_GC期间执行GC操作,该GC操作时间T_GC在第一GC触发点1TRIG_P至第五GC触发点5TRIG_P中的每一个处具有恒定值。根据现有技术,GC操作周期是固定的而不是动态地改变的。GC操作周期可以表示第一GC触发点1TRIG_P至第五GC触发点5TRIG_P之中两个相邻GC触发点之间的间隔,例如,GC操作周期可以表示第一GC触发点1TRIG_P与第二GC触发点2TRIG_P之间的间隔。因此,由于需要的空闲块数目REQ_FREEBLK和生成的空闲块数目GEN_FREEBLK的大小,可能存在不保证存储器空间的问题或不必要地降低前台操作的性能的问题。
例如,需要的空闲块数目REQ_FREEBLK大于生成的空闲块数目GEN_FREEBLK的情况意味着存储器装置150不能通过在特定时间T_F期间执行的GC操作来生成与存储器装置150需要的空闲块的数目一样多的空闲块。因此,可能无法确保足够的存储器空间,这是有问题的。另一方面,需要的空闲块数目REQ_FREEBLK小于生成的空闲块数目GEN_FREEBLK的情况意味着存储器装置150通过在特定时间T_F期间执行GC操作来生成了与需要的空闲块数目REQ_FREEBLK一样多或更多的空闲块。因此,存储器装置150可能比必要的更频繁地执行GC操作。如果存储器装置150频繁地执行诸如GC操作的后台操作,则可能存在可能劣化前台操作的性能的问题。
根据本发明的实施例,控制器130可以检测需要执行GC操作的牺牲块NUM_VICTIM,以生成与需要的空闲块数目REQ_FREEBLK一样多的空闲块。控制器130可以估计对检测到的牺牲块执行GC操作需要的时间。控制器130可以基于估计的时间确定在特定时间T_F期间要执行GC操作的次数,并且可以动态地改变GC操作的周期,使得在特定时间T_F期间可以以相等的间隔执行GC操作。控制器130可以控制存储器装置150以根据改变的GC操作周期执行GC操作,从而在保证存储器空间的同时最小化前台操作的性能劣化。
图5是描述根据本发明实施例的存储器系统110的操作的流程图。
在步骤S502中,控制器130可以控制存储器装置150根据初始GC操作周期INI_TRIG_P执行GC操作。每当初始GC操作周期INI_TRIG_P到达时,控制器130可以控制存储器装置150在具有恒定值的GC操作时间T_GC期间对牺牲块执行GC操作。
在步骤S504中,控制器130可以通过周期性地改变GC操作周期来控制存储器装置150的GC操作。根据本发明的实施例,在步骤S506中,控制器130可以在每当更新周期T_UPDATE到达时控制存储器装置150以执行改变GC操作周期AD_TRIG_P的操作,并且以根据改变的GC操作周期AD_TRIG_P重复执行步骤S508的GC操作。
图6是描述改变GC操作周期的步骤S506的流程图。
在步骤S602中,控制器130可以计算需要的空闲块数目REQ_FREEBLK。如先前在图4中所定义,需要的空闲块数目REQ_FREEBLK可以是在特定时间T_F期间由存储器装置150所需要的空闲块的数目。控制器130可以基于编程命令的大小和存储器装置150中存在的空闲块的数目来计算需要的空闲块数目REQ_FREEBLK。编程命令的大小可以表示响应于编程命令而要编程的数据的大小。例如,随着编程命令的大小变得大于存储器装置150中存在的空闲块的数目,需要的空闲块数目REQ_FREEBLK可能变得更大。相反,随着编程命令的大小变得小于存储器装置150中存在的空闲块的数目,需要的空闲块数目REQ_FREEBLK可以变得更小。
在步骤S604中,控制器130可以检测需要执行GC操作的牺牲块NUM_VICTIM,以生成与在步骤S602中获得的需要的空闲块数目REQ_FREEBLK一样多的空闲块。根据本发明的实施例,当在特定时间T_F内执行一次或多次GC操作时,控制器130可以检测与生成需要的空闲块数目REQ_FREEBLK的空闲块所需要的一样多的牺牲块NUM_VICTIM。
在步骤S606中,控制器130可以估计要对在步骤S604中检测到的牺牲块执行GC操作所花费的GC操作时间TIME_GC_EST。根据本发明的实施例,控制器130可以基于包括在存储器块中的有效页的分布来将存储器块分类为多个情况,并且根据分类的情况来控制存储器装置150对存储器块执行GC操作。控制器130可以针对每个情况测量执行GC操作所需要的时间,并且可以基于测量结果计算估计的GC操作时间TIME_GC_EST。
图7是描述用于计算估计的GC操作时间的操作的流程图。
在步骤S702中,控制器130可以基于存储器块内的有效页分布将存储器块分类为多个情况。根据本发明的实施例,控制器130可以基于超级块内的有效页分布来将超级块分类为第一情况VPC_CASE1至第四情况VPC_CASE4。超级块中的每一个可以包括分别被包括在第一平面PLANE1至第四平面PLANE4中的第一存储器块BLK1至第四存储器块BLK4,并且第一平面PLANE1至第四平面PLANE4可以全部被包括在相同的管芯DIE中。
图8示出了基于有效页分布来被分类的多个情况。
为了描述方便,假设控制器130可以一次读取的页的数目是四。在读取存储在超级块中的数据的情况下,如上面参考图2所述,控制器130可以控制存储器装置150以同时读取在不同存储器块中包括的页之中具有相同索引的页中存储的数据。相同索引的页可以被包括在不同的平面中,并且布置在超级块中包括的页之中的相同行。
根据本发明的实施例,在第一超级块802的情况下,其中四个有效数据位于一个索引上,例如图8所示的第一索引INDEX 1,控制器130可以将第一超级块802分类为第一情况VPC_CASE1。控制器130可以控制存储器装置150通过执行一次的读取操作来读取位于第一超级块802的第一索引INDEX 1上的四个有效数据。
而且,控制器130可以将第二超级块804分类为第二情况VPC_CASE2,其中四个有效数据位于两个索引上,例如第一索引INDEX 1和第二索引INDEX 2。控制器130可以控制存储器装置150以通过执行两次的读取操作来读取位于第二超级块804的第一索引INDEX 1和第二索引INDEX 2上的四个有效数据。
此外,控制器130可以将第三超级块806分类为第三情况VPC_CASE3,其中四个有效数据位于三个索引上,例如,第一索引INDEX 1至第三索引INDEX 3。控制器130可以控制存储器装置150通过执行三次的读取操作来读取位于第三超级块806的第一索引INDEX 1至第三索引INDEX 3上的四个有效数据。
此外,控制器130可以将第四超级块808分类为第四情况VPC_CASE4,其中四个有效数据位于四个索引上,例如,第一索引INDEX 1至第四索引INDEX 4。控制器130可以控制存储器装置150通过执行四次的读取操作来读取位于第四超级块808的第一索引INDEX 1至第四索引INDEX 4上的四个有效数据。
控制器130可以将其中有效页的数目小于预定阈值的超级块检测为牺牲超级块。读取操作可能必须执行更多次,以便在有效页进一步分布在牺牲超级块中时存储器装置150读取相同数目的有效页。因此,根据本发明的实施例,控制器130可以基于超级块内的有效页的分布来将超级块分类为多个情况。有效页的分布可以与需要被执行以读取相同数目的有效页的读取操作的次数有关。
再次参考图7,在步骤S704中,控制器130可以控制存储器装置150对分别与在步骤S702中分类的情况相对应的超级块执行GC操作。具体地,控制器130可以控制存储器装置150对包括在每个超级块中的存储器块执行GC操作。如图8中所示,控制器130可以控制存储器装置150执行读取在分别与第一情况VPC_CASE1至第四情况VPC_CASE4相对应的超级块802至808的有效页中存储的数据的GC操作,并且将读取的有效数据编程到目标超级块。
根据本发明的另一个实施例,当除了与第一情况VPC_CASE1相对应的超级块802之外,存储器装置150不包括与第二情况VPC_CASE2至第四情况VPC_CASE4相对应的第二超级块804至第四超级块808时,与分别针对与第二情况VPC_CASE2至第四情况VPC_CASE4相对应的第二超级块804至第四超级块808需要执行的次数相同地,控制器130可以对与第一情况VPC_CASE1相对应的超级块802执行读取操作,以便估计针对与第二情况VPC_CASE2至第四情况VPC_CASE4相对应的第二超级块804至第四超级块808中的每一个的GC操作时间。如参考图8所述,读取操作被执行一到四次,以分别读取与第一情况VPC_CASE1至第四情况VPC_CASE4相对应的第一超级块802至第四超级块808的有效页,以用于GC操作。当除了与第一情况VPC_CASE1相对应的超级块802之外,存储器装置150不包括与第二情况VPC_CASE2至第四情况VPC_CASE4相对应的第二超级块804至第四超级块808时,可以通过对与第一情况VPC_CASE1相对应的超级块802的读取操作来测量针对与第二情况VPC_CASE2至第四情况VPC_CASE4相对应的第二超级块804至第四超级块808的读取操作时间。针对与第二情况VPC_CASE2至第四情况VPC_CASE4相对应的第二超级块804至第四超级块808的分别测量的读取操作时间可以用于估计针对与第二情况VPC_CASE2至第四情况VPC_CASE4相对应的第二超级块804至第四超级块808中的每一个的GC操作时间。
图9是示出对与第一情况VPC_CASE1相对应的超级块802的GC操作的框图,以便估计针对与第二情况VPC_CASE2相对应的第二超级块804的GC操作时间。
当存储器装置150不包括对应于第二情况VPC_CASE2的超级块804但是包括对应于第一情况VPC_CASE1的超级块802时,控制器130可以使用对应于第一情况VPC_CASE1的超级块802以便估计针对对应于第二情况VPC_CASE2的超级块804的GC操作时间。
如上面参考图3所述,GC操作可以包括有效数据读取操作。有效数据读取操作可以包括读取存储器块的有效数据以及将有效数据缓冲到页缓冲器中的操作、以及向控制器130的存储器144提供缓冲的有效数据的操作。根据本发明的实施例,控制器130可以控制存储器装置150第一次读取存储在与第一情况VPC_CASE1相对应的超级块802中的有效数据910至940,将有效数据910至940缓冲到页中缓冲器902,然后向存储器144提供有效数据910至940之中的有效数据910和920。控制器130可以控制存储器装置150第二次读取存储在与第一情况VPC_CASE1相对应的超级块802中的有效数据910至940,以及将有效数据910至940缓冲到页缓冲器902中。控制器130可以控制存储器装置150以向存储器144提供剩余的有效数据930和940。
如上所述,控制器130可以对与第一情况VPC_CASE1相对应的超级块802执行两次读取操作,并且向存储器144提供读取的有效数据910至940。因此,针对与第二情况VPC_CASE2相对应的超级块804的GC操作时间可以通过针对与第一情况VPC_CASE1相对应的超级块802的GC操作来测量。
以类似的方式,控制器130可以控制存储器装置150对与第一情况VPC_CASE1相对应的超级块802执行三次和四次读取操作,以便分别测量针对与第三情况VPC_CASE3和第四情况VPC_CASE4相对应的超级块806和808的GC操作时间。
再次参考图7,在步骤S706中,控制器130可以测量多个情况VPC_CASE1至VPC_CASE4中的每个情况所需要的GC操作时间GCPT。根据本发明的实施例,控制器130可以测量从分别对与第一情况VPC_CASE1至第四情况VPC_CASE4相对应的超级块802至808执行GC操作的时刻到GC操作完成的时刻的时间,并且该时间可以记录在单独的存储器空间中。例如,控制器130可以通过测量从读取存储在牺牲超级块中的有效数据的时刻到有效数据被编程到目标超级块中并且完成映射更新操作的时刻的时间来计算GC操作时间GCPT。
如上所述,当除了与第一情况VPC_CASE1相对应的超级块802之外,存储器装置150不包括与第二情况VPC_CASE2至第四情况VPC_CASE4相对应的第二超级块804至第四超级块808时,针对与第二情况VPC_CASE2至第四情况VPC_CASE4相对应的第二超级块804至第四超级块808中的每一个的GC操作时间GCPT可以通过对与第一情况VPC_CASE1相对应的超级块802执行两次至四次的读取操作来测量。
在步骤S708中,控制器130可以检查GC操作时间测量计数COUNT是否已经达到预定阈值TH。GC操作时间测量计数COUNT可以表示在与第一情况VPC_CASE1至第四情况VPC_CASE4相对应的超级块802至808中的每一个上测量的垃圾收集操作时间GCPT的次数。当GC操作时间测量计数COUNT没有达到预定阈值TH时(步骤S708中的“否”),控制器130可以返回到步骤S704和步骤S706以重复测量GC操作时间GCPT的操作。对于与情况VPC_CASE1至VPC_CASE4相对应的超级块802至808中的每一个,控制器130可以测量GC操作时间GCPT_1至GCPT_TH与预定阈值TH一样多的次数,并且将测量的GC操作时间GCPT_1至GCPT_TH记录在单独的存储器空间中。
当GC操作时间测量计数COUNT达到预定阈值TH时(步骤S708中的“是”),控制器130可以停止测量GC操作时间GCPT的操作并且进入步骤S710的操作。根据本发明的实施例,控制器130可以与预定阈值TH一样多的次数重复测量针对与第一情况VPC_CASE1至第四情况VPC_CASE4相对应的超级块802至808的GC操作时间GCPT的操作。控制器130可以将测量结果记录在单独的存储器空间中。
在步骤S710中,控制器130可以针对与第一情况VPC_CASE1至第四情况VPC_CASE4相对应的超级块802至808计算GC操作时间GCPT_1至GCPT_TH的平均GC操作时间AVG_GCPT。控制器130可以通过将GC操作时间GCPT_1至GCPT_TH之和除以预定阈值TH来计算平均GC操作时间AVG_GCPT。
图10示出了GC操作时间GCPT_1至GCPT_TH和平均GC操作时间AVG_GCPT的表。
根据本发明的实施例,控制器130可以以表1002的形式将针对分别与第一情况VPC_CASE1至第四情况VPC_CASE4相对应的超级块802至808的GC操作时间GCPT存储在单独的存储器空间中。每当对分别与第一情况VPC_CASE1至第四情况VPC_CASE4相对应的超级块802至808执行GC操作时,控制器130可将测量值记录在表1002中。例如,参考图10中所示的表1002,针对与第一情况VPC_CASE1相对应的超级块802的第一GC操作时间GCPT_1和第二GC操作时间GCPT_2分别为T11和T12。针对分别与第一情况VPC_CASE1至第四情况VPC_CASE4相对应的超级块802至808,控制器130可以计算GC操作时间GCPT_1至GCPT_TH的平均AVG_GCPT。控制器130可以将与第一情况VPC_CASE1至第四情况VPC_CASE4中的每一个相对应的平均GC操作时间AVG_GCPT记录在表1002中。
再次参考图7,在步骤S712中,控制器130可以通过检测在步骤S604中检测到的牺牲块中的情况VPC_CASE1至VPC_CASE4的每个模式来获得估计的GC操作时间TIME_GC_EST。该模式可以指示单个超级块中的有效页分布,如参考图8所述。根据本发明的实施例,控制器130可以分析检测到的牺牲块的有效数据分布,以检测牺牲块中的情况VPC_CASE1至VPC_CASE4的每个模式。控制器130可以通过将针对第一情况VPC_CASE1至第四情况VPC_CASE4中的每一个的平均GC操作时间AVG_GCPT乘以牺牲块中的情况VPC_CASE1至VPC_CASE4的每个模式的检测次数并且求和所有相乘的值,来计算估计的GC操作时间TIME_GC_EST。
图11示出了用于计算牺牲块的估计GC操作时间的方法。
根据本发明的实施例,控制器130可以分析检测到的牺牲块1150的有效页分布,以检测牺牲块1150内的第一情况VPC_CASE1至第四情况VPC_CASE4的每个模式。例如,控制器130可以检测位于牺牲块1150的第一索引INDEX 1的四个有效页1102至1108中的第一情况VPC_CASE1的模式,检测位于第二索引INDEX 2和第三索引INDEX 3的四个有效页1112到1118中的第二情况VPC_CASE2的模式,并且检测位于第四索引INDEX 4至第六索引INDEX 6的四个有效页1122至1128中的第三情况VPC_CASE3的模式。此外,控制器130可以检测位于第七索引INDEX 7至第十索引INDEX 10的四个有效页1132至1138中的第四情况VPC_CASE4的模式。
由于第一情况VPC_CASE1至第四情况VPC_CASE4中的每一个在检测到的牺牲块1150中被检测到一次,控制器130可以计算出通过对针对第一情况VPC_CASE1至第四情况VPC_CASE4的所有平均GC操作时间TAVG1至TAVG4求和而获得的总和值TVICTIM,作为针对牺牲块1050的估计的GC操作时间TIME_GC_EST。控制器130可以通过针对在步骤S604中检测到的牺牲块而计算估计的GC操作时间TIME_GC_EST,来估计为了在特定时间T_F期间获得需要的空闲块而利用检测到的牺牲块执行GC操作所花费的时间。
再次参考图6,在步骤S608中,控制器130可以获得GC操作计数COUNT_GC,其指示在步骤S606中获得的估计的GC操作时间TIME_GC_EST期间要执行的GC操作的数目。如上面参考图4所述,每当GC操作周期到达时,控制器130可以控制存储器装置150在恒定GC操作时间T_G期间执行GC操作。控制器130可以通过将估计的GC操作时间TIME_GC_EST除以GC操作时间T_G来计算GC操作计数COUNT_GC。例如,当估计的GC操作时间TIME_GC_EST是100秒并且具有恒定值的GC操作时间T_G是1秒时,在特定时间T_F期间执行GC操作100次之后就完成对检测到的牺牲块的GC操作。因此,控制器130可以将GC操作计数COUNT_GC计算为100。
在步骤S610中,控制器130可以通过将特定时间T_F除以在步骤S608中获得的GC操作计数COUNT_GC来更新GC操作周期AD_TRIG_P。根据本发明的实施例,控制器130可以通过在特定时间T_F内执行GC操作来生成与存储器装置150需要的一样多的空闲块以便确保存储器空间,同时通过控制存储器装置150在特定时间T_F期间以均匀周期执行GC操作来最小化前台操作的性能恶化。
图12是示出根据本发明实施例的存储器系统110的框图。图12示意性地示出了图1的数据处理系统100中与本发明有关的元件。
前面参考图1描述的处理器134包括:空闲块管理器1202、牺牲管理器1204、GC操作时间管理器1206、GC周期管理器1208和GC操作器1210。
空闲块管理器1202可以获得在特定时间T_F内的需要的空闲块数目REQ_FREEBLK。空闲块管理器1202可以基于编程命令的大小和存在于存储器装置150中的空闲块的数目来获得需要的空闲块数目REQ_FREEBLK。例如,随着编程命令的大小变得大于存储器装置150中存在的空闲块的数目,需要的空闲块数目REQ_FREEBLK可能变得更大。相反,随着编程命令的大小变得小于存储器装置150中存在的空闲块的数目,需要的空闲块数目REQ_FREEBLK可以变得更小。空闲块管理器1202可以向牺牲管理器1204提供关于需要的空闲块数目REQ_FREEBLK的信息INFO_FREE。
牺牲管理器1204可以基于信息INFO_FREE来检测为了生成需要的空闲块数目REQ_FREEBLK的空闲块而需要执行GC操作的牺牲块NUM_VICTIM。根据本发明的实施例,当在特定时间T_F内执行一次或多次GC操作时,控制器130可以检测与生成需要的空闲块数目REQ_FREEBLK的空闲块所需要的一样多的牺牲块NUM_VICTIM。牺牲管理器1204可以向GC执行时间管理器1206提供关于检测到的牺牲块NUM_VICTIM的信息INFO_VICTIM。
GC操作时间管理器1206可以基于信息INFO_VICTIM估计要对检测到的牺牲块执行GC操作所花费的估计GC操作时间TIME_GC_EST。根据本发明的实施例,GC操作时间管理器1206可以基于包括在存储器块中的有效页的分布来将存储器块分类为多个情况,并且控制存储器装置150以对根据分类情况的存储器块执行GC操作。GC操作时间管理器1206可以测量执行每个情况需要的GC操作所花费的时间,并且基于测量结果来计算估计的GC操作时间TIME_GC_EST。
图13是示出GC操作时间管理器1206的结构的框图。
GC操作时间管理器1206可以包括分类器1302、GC表生成器1304和GC操作时间确定器1306。
分类器1302可以基于存储器块内的有效页分布来将存储器块分类为多个情况VPC_CASE1至VPC_CASE4。根据本发明的实施例,分类器1302可以基于超级块内的有效页分布来将超级块分类为第一情况VPC_CASE1至第四情况VPC_CASE4,如上面参考图8所述。分类器1302可以向GC表生成器1304提供关于分类情况的情况信息INFO_CASE。有效页的分布可以与需要执行以读取相同数目的有效页的读取操作的次数有关。
GC表生成器1304可以控制存储器装置150对分别与基于所提供的情况信息INFO_CASE而分类的情况相对应的超级块执行GC操作。如图8所示,GC表生成器1304可以执行GC操作时间测量操作,该操作包括测量从对分别与第一情况VPC_CASE1至第四情况VPC_CASE4相对应的超级块802至808执行GC操作的时刻到GC操作完成的时刻的时间,并且将测量的时间记录到单独的存储器空间中。GC表生成器1304可以与预定阈值TH一样多的次数重复执行测量针对分别与第一情况VPC_CASE1至第四情况VPC_CASE4相对应的超级块802至808的GC操作时间GCPT的操作,并且将测量结果记录在单独的存储器空间中。
GC表生成器1304可以计算针对与第一情况VPC_CASE1至第四情况VPC_CASE4相对应的超级块802至808的GC操作时间GCPT_1至GCPT_TH的平均GC操作时间AVG_GCPT,并且将计算的平均GC操作时间AVG_GCPT记录在表1002中。GC表生成器1304可以向GC操作时间确定器1306提供关于表1002的信息INFO_TABLE。
GC操作时间确定器1306可以通过检测在步骤S604中检测到的牺牲块中的情况VPC_CASE1至VPC_CASE4的每个模式来计算估计的GC操作时间TIME_GC_EST。该模式可以指示单个超级块中的有效页分布,如参考图8所述。根据本发明的实施例,GC操作时间确定器1306可以分析检测到的牺牲块的有效数据,以检测牺牲块中的情况VPC_CASE1至VPC_CASE4的每个模式。GC操作时间确定器1306可以通过将针对第一情况VPC_CASE1至第四情况VPC_CASE4中的每一个的平均GC操作时间AVG_GCPT乘以在牺牲块中的情况VPC_CASE1至VPC_CASE4的每个模式的检测次数,并且对所有相乘的值进行求和,来计算估计的GC操作时间TIME_GC_EST。GC操作时间确定器1306可以向GC周期管理器1208提供关于估计的GC操作时间TIME_GC_EST的信息INFO_TIME。
GC周期管理器1208可以通过将特定时间T_F除以GC操作计数COUNT_GC来更新GC操作周期AD_TRIG_P。根据本发明的实施例,控制器130可以通过改变GC操作周期AD_TRIG_P来生成与需要的一样多的空闲块,使得在特定时间T_F期间需要的空闲块数目REQ_FREEBLK等于生成的空闲块数目GEN_FREEBLK。此外,控制器130可以控制存储器装置150在特定时间T_F期间以均匀周期执行GC操作,以最小化前台操作的性能劣化。
在下文中,将参考图14至图16更详细地描述根据本发明实施例的存储器系统中的存储器装置。
图14是示出存储器装置150的示意图。图15是示出存储器装置150中的存储器块330的存储器单元阵列的示例性配置的电路图。图16是示出存储器装置150的示例性3D结构的示意图。
参考图14,存储器装置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存储器块可以通常具有比MLC存储器块更高的数据计算性能和更高的耐久性。MLC存储器块可以包括由存储器单元实现的多个页,每个存储器单元存储多位数据(例如,2位或更多位)。MLC存储器块可以通常具有比SLC存储器块更大的数据存储空间,即,更高的集成密度。在另一个实施例中,存储器装置150可以包括多个三级单元(TLC)存储器块。在又一个实施例中,存储器装置150可以包括多个四级单元(QLC)存储器块。TLC存储器块可以包括由存储器单元实现的多个页,每个存储器单元能够存储3位数据。QLC存储器块可以包括由存储器单元实现的多个页,每个存储器单元能够存储4位数据。
代替非易失性存储器,存储器装置150可以由相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM(ReRAM))、铁电随机存取存储器(FRAM)和自旋转移力矩磁随机存取存储器(STT-RAM(STT-MRAM))中的任何一个来实现。
存储器块210、220、230、240可以存储通过编程操作从主机102传输的数据,并且可以通过读取操作将存储在其中的数据传输到主机102。
参考图15,存储器块330可以包括耦合到多个对应的位线BL0至BLm-1的多个单元串340。每列的单元串340可以包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。在漏极选择晶体管DST和源极选择晶体管SST之间,多个存储器单元MC0至MCn-1可以串联耦合。在一个实施例中,存储器单元晶体管MC0至MCn-1中的每一个可以由能够存储多位数据信息的MLC实现。每个单元串340可以电耦合到多个位线BL0至BLm-1之中的对应的位线。例如,如图15所示,第一单元串耦合到第一位线BL0,并且最后一个单元串耦合到最后位线BLm-1。
虽然图15示出了NAND闪存单元,但是本公开不限于此。注意,存储器单元可以是NOR闪存单元,或者包括组合在其中的两种或更多种类型的存储器单元的混合闪存单元。此外,应注意,存储器装置150可以是包括导电浮动栅极作为电荷存储层的闪存装置或包括绝缘层作为电荷存储层的电荷陷阱闪存(CTF)装置。
存储器装置150可以进一步包括电压供应310,其根据操作模式生成包括编程电压、读取电压和通过电压的不同字线电压,以提供给字线。电压供应310的电压生成操作可以由控制电路(未示出)控制。在控制电路的控制下,电压供应310可以根据需要选择存储器单元阵列的至少一个存储器块(或区段),选择所选择的存储器块的至少一个字线,以及将字线电压提供至所选择的字线和未选择的字线。
存储器装置150可以包括由控制电路控制的读取/写入电路320。在验证/正常读取操作期间,读取/写入电路320可以作为感测放大器操作,以用于从存储器单元阵列读取(感测和放大)数据。在编程操作期间,读取/写入电路320可以作为写入驱动器操作,以用于根据要存储在存储器单元阵列中的数据来向位线提供电压或电流。在编程操作期间,读取/写入电路320可以从缓冲器(未示出)接收要存储到存储器单元阵列中的数据,并且根据接收的数据驱动位线。读取/写入电路320可以包括分别对应于列(或位线)或列对(或位线对)的多个页缓冲器322至326。页缓冲器322至326中的每一个可以包括多个锁存器(未示出)。
存储器装置150可以由2D或3D存储器装置实现。特别地,如图16中所示,存储器装置150可以由具有3D层叠结构的非易失性存储器装置实现。当存储器装置150具有3D结构时,存储器装置150可以包括多个存储器块BLK0至BLKN-1。在此,图16是示出图1中所示的存储器装置150的存储器块152、154和156的框图。存储器块152、154和156中的每一个可以以3D结构(或垂直结构)实现。例如,存储器块152、154和156可以包括在第一方向至第三方向(例如,x轴方向、y轴方向和z轴方向)上延伸的三维结构的结构。
包括在存储器装置150中的每个存储器块330可以包括在第二方向上延伸的多个NAND串NS以及在第一方向和第三方向上延伸的多个NAND串NS。这里,每个NAND串NS可以耦合到位线BL、至少一个串选择线SSL、至少一个地选择线GSL、多个字线WL、至少一个虚设字线DWL以及公共源极线CSL,并且每个NAND串NS可以包括多个晶体管结构TS。
简而言之,存储器装置150的存储器块152、154和156之中的每个存储器块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中实现多个存储器单元。
在下文中,参考图17至图25详细描述根据本发明实施例的数据处理系统和电子装置,其中应用了包括以上参考图1至图16描述的存储器装置150和控制器130的存储器系统110。
图17是示意性地示出包括根据实施例的存储器系统的数据处理系统的另一示例的图。图17示意性地示出了可以应用存储器系统的存储器卡系统。
参考图17,存储器卡系统6100可以包括存储器控制器6120、存储器装置6130和连接器6110。
更具体地,存储器控制器6120可以电连接到存储器装置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)、增强型小磁盘接口(EDSI)、集成驱动电子装置(IDE)、固件、通用闪存(UFS)、WIFI和蓝牙。因此,根据本实施例的存储器系统和数据处理系统可以应用于有线/无线电子装置或特定移动电子装置。
存储器装置6130可以由非易失性存储器实现。例如,存储器装置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、MMCmicro和eMMC)、SD卡(例如,SD、迷你SD、微型SD和SDHC)和/或通用闪存(UFS)。
图18是示意性地示出包括根据实施例的存储器系统的数据处理系统的另一示例的图。
参考图18,数据处理系统6200可以包括具有一个或多个非易失性存储器的存储器装置6230和用于控制存储器装置6230的存储器控制器6220。图18中示出的数据处理系统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用作高速缓存存储器时,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发送/接收数据。存储器控制器6220可以通过NVM接口6225向/从存储器装置6230发送/接收数据。主机接口6224可以通过PATA总线、SATA总线、SCSI、USB、PCIe或NAND接口连接到主机6210。存储器控制器6220可以具有利用诸如WiFi或长期演进(LTE)的移动通信协议的无线通信功能。存储器控制器6220可以连接到外部装置,例如主机6210或另一外部装置,然后向/从外部装置发送/接收数据。具体地,由于存储器控制器6220被配置为根据各种通信协议中的一个或多个与外部装置通信,根据实施例的存储器系统和数据处理系统可以应用于有线/无线电子装置,特别是移动电子装置。
图19是示意性地示出根据实施例的包括存储器系统的数据处理系统的另一示例的图。图19示意性地示出了可以应用存储器系统的SSD。
参考图19,SSD 6300可以包括控制器6320和包括多个非易失性存储器的存储器装置6340。控制器6320可以对应于图1的存储器系统110中的控制器130,并且存储器装置6340可以对应于图1的存储器系统中的存储器装置150。
更具体地,控制器6320可以通过多个通道CH1至CHi连接到存储器装置6340。控制器6320可以包括一个或多个处理器6321、缓冲存储器6325、ECC电路6322、主机接口6324和存储器接口,例如非易失性存储器接口6326。
缓冲存储器6325可以临时存储从主机6310提供的数据或者从包括在存储器装置6340中的多个闪存NVM提供的数据。此外,缓冲存储器6325可以临时存储多个闪存NVM的元数据,例如,包括映射表的映射数据。缓冲存储器6325可以由诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM和GRAM的各种易失性存储器或者诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器中的任何一种实现。图19示出缓冲存储器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级别(即,SSD 6300中的从主机6310提供的写入命令的RAID级别信息)选择一个或多个存储器系统或SSD 6300,并且将与写入命令相对应的数据输出到所选择的SSD 6300。此外,当RAID控制器响应于从主机6310提供的读取命令而执行读取命令时,RAID控制器可以根据多个RAID级别(SSD 6300中的从主机6310提供的读取命令的RAID级别信息)选择一个或多个存储器系统或SSD 6300,并且将从所选择的SSD 6300读取的数据提供给主机6310。
图20是示意性地示出根据实施例的包括存储器系统的数据处理系统的另一示例的图。图20示意性地示出了可以应用存储器系统的嵌入式多媒体卡(eMMC)。
参考图20,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)接口。
图21至图24是示意性地示出包括根据实施例的存储器系统的数据处理系统的其他示例的图。图21至图24示意性地示出了可以应用存储器系统的UFS(通用闪存)系统。
参见图21至图24,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可以以参考图18至图20描述的数据处理系统6200、SSD 6300或eMMC 6400的形式实现,并且UFS卡6530、6630、6730、6830可以以参考图17描述的存储器卡系统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协议之外的任何各种协议彼此通信,例如UFD、MMC、SD、迷你SD和微型SD。
在图21中所示的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卡可以并联或以星形的形式连接到主机6510。星形的形式是指单个装置与多个装置耦合以进行集中操作的布置。多个UFS卡可以并联或以星形的形式连接到UFS装置6520,或者串联或以链的形式连接到UFS装置6520。
在图22中所示的UFS系统6600中,主机6610、UFS装置6620和UFS卡6630中的每一个可以包括UniPro。主机6610可以通过执行切换操作的切换模块6640与UFS装置6620或UFS卡6630通信,例如通过在UniPro处执行例如L3切换的链路层切换的切换模块6640。UFS装置6620和UFS卡6630可以通过UniPro处的切换模块6640的链路层切换来彼此通信。在所示实施例中,一个UFS装置6620和一个UFS卡6630连接到切换模块6640。然而,多个UFS装置和UFS卡可以并联或以星形的形式连接到切换模块6640。多个UFS卡可以串联或以链的形式连接到UFS装置6620。
在图23中所示的UFS系统6700中,主机6710、UFS装置6720和UFS卡6730中的每一个可以包括UniPro。主机6710可以通过执行切换操作的切换模块6740与UFS装置6720或UFS卡6730通信,例如通过在UniPro处执行例如L3切换的链路层切换的切换模块6740。UFS装置6720和UFS卡6730可以通过UniPro处的切换模块6740的链路层切换来彼此通信。切换模块6740可以与UFS装置6720作为一个模块集成在UFS装置6720内部或UFS装置6720外部。在所示实施例中,一个UFS装置6720和一个UFS卡6730连接到切换模块6740。然而,每个包括切换模块6740和UFS装置6720的多个模块可以并联或以星形的形式连接到主机6710。在另一个示例中,多个模块可以串联或以链的形式彼此连接。此外,多个UFS卡可以并联或以星形的形式连接到UFS装置6720。
在图24中所示的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。
图25是示意性地示出包括根据本发明实施例的存储器系统的数据处理系统的另一示例的图。图25是示意性地示出应用了该存储器系统的用户系统的图。
参考图25,用户系统6900可以包括应用处理器6930、存储器模块6920、网络模块6940、存储模块6950和用户接口6910。
更具体地,应用处理器6930可以驱动用户系统6900中的部件例如OS,并且包括控制用户系统6900中包括的部件的控制器、接口和图形引擎。应用处理器6930可以被提供为片上系统(SoC)。
存储器模块6920可以用作用户系统6900的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块6920可以包括:易失性RAM,例如DRAM、SDRAM、DDR SDRAM、DDR2SDRAM、DDR3 SDRAM、LPDDR SDRAM、LPDDR2 SDRAM或LPDDR3 SDRAM;或者非易失性RAM,例如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闪存和3D NAND闪存,并且可以被提供为可移除存储介质,例如用户系统6900的存储器卡或外部驱动器。存储模块6950可以对应于参考图1描述的存储器系统110。此外,存储模块6950可以实现为SSD、eMMC和UFS,如上面参考图19至图24所述。
用户接口6910可以包括用于向应用处理器6930输入数据或命令或者将数据输出到外部装置的接口。例如,用户接口6910可以包括:用户输入接口,例如键盘、小键盘、按钮、触摸面板、触摸屏、触板、触摸球、相机、麦克风、陀螺仪传感器、振动传感器和压电元件;以及用户输出接口,例如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器和电动机。
此外,当图1的存储器系统110应用于用户系统6900的移动电子装置时,应用处理器6930可以控制移动电子装置的整体操作,并且网络模块6940可以用作用于控制与外部装置的有线和/或无线通信的通信模块。用户接口6910可以在移动电子装置的显示器/触摸模块上显示由处理器6930处理的数据,或者可以支持从触摸面板接收数据的功能。
根据本发明的实施例,存储器系统可以通过动态地改变垃圾收集操作周期来最小化由后台操作引起的前台操作的性能下降。
虽然已经关于特定实施例描述了本发明,但是对于本领域技术人员来说显而易见的是,在不脱离所附权利要求限定的本发明的精神和范围的情况下,可以进行各种改变和修改。
Claims (20)
1.一种存储器系统,包括:
存储器装置;以及
控制器,适合于执行:
空闲块管理操作:检测将要对其执行垃圾收集操作以生成需要的空闲块的牺牲块;
垃圾收集操作时间管理操作:计算针对检测到的所述牺牲块的估计垃圾收集操作时间;以及
垃圾收集操作周期管理操作:基于所述估计垃圾收集操作时间来动态地改变垃圾收集操作周期,并且在特定时间期间基于所述垃圾收集操作周期来周期性地执行垃圾收集操作,
其中每当更新周期到达时,所述控制器重复执行所述空闲块管理操作、所述垃圾收集操作时间管理操作和所述垃圾收集操作周期管理操作。
2.根据权利要求1所述的存储器系统,其中所述控制器对与基于有效页分布而分类的多个情况相对应的存储器块执行测试垃圾收集操作,以测量执行所述测试垃圾收集操作所花费的时间。
3.根据权利要求2所述的存储器系统,其中所述控制器在所述测试垃圾收集操作期间基于需要被执行以便读取所述存储器块中的每个存储器块中包括的所有有效数据的读取操作的次数来确定所述有效页分布。
4.根据权利要求3所述的存储器系统,其中所述控制器通过单个读取操作来读取属于存储器块的单个索引的有效数据。
5.根据权利要求2所述的存储器系统,其中所述控制器与预定阈值一样多的次数重复执行所述测试垃圾收集操作。
6.根据权利要求5所述的存储器系统,其中所述控制器分别计算通过针对所分类的情况中的每个情况与所述预定阈值一样多的次数重复执行所述测试垃圾收集操作而获得的测量结果的平均值。
7.根据权利要求6所述的存储器系统,其中所述控制器通过在检测到的所述牺牲块内检测所分类的情况的一个或多个有效页分布并且对针对检测到的所述有效页分布的所有平均值进行求和来获得所述估计垃圾收集操作时间。
8.根据权利要求1所述的存储器系统,其中所述控制器通过将所述估计垃圾收集操作时间除以具有恒定值的垃圾收集操作时间来获得计数值。
9.根据权利要求8所述的存储器系统,其中所述控制器通过将所述特定时间除以所述计数值来获得所述垃圾收集操作周期。
10.根据权利要求1所述的存储器系统,其中所述需要的空闲块与在所述特定时间期间需要的空闲块一样多。
11.一种用于操作存储器系统的方法,所述方法包括:
空闲块管理操作:检测将要对其执行垃圾收集操作以生成需要的空闲块的牺牲块;
垃圾收集操作时间管理操作:计算针对检测到的所述牺牲块的估计垃圾收集操作时间;以及
垃圾收集操作周期管理操作:基于所述估计垃圾收集操作时间来动态地改变垃圾收集操作周期,并且在特定时间期间基于所述垃圾收集操作周期来周期性地执行垃圾收集操作,
其中每当更新周期到达时,重复执行所述空闲块管理操作、所述垃圾收集操作时间管理操作和所述垃圾收集操作周期管理操作。
12.根据权利要求11所述的方法,其中所述垃圾收集操作时间管理操作包括:对与基于有效页分布而分类的多个情况相对应的存储器块执行测试垃圾收集操作,以测量执行所述测试垃圾收集操作所花费的时间。
13.根据权利要求12所述的方法,其中所述垃圾收集操作时间管理操作包括:在所述测试垃圾收集操作期间基于需要被执行便读取所述存储器块中的每个存储器块中包括的所有有效数据的读取操作的次数来确定所述有效页分布。
14.根据权利要求13所述的方法,其中所述垃圾收集操作时间管理操作包括:通过单个读取操作来读取属于存储器块的单个索引的有效数据。
15.根据权利要求12所述的方法,其中所述垃圾收集操作时间管理操作包括:与预定阈值一样多的次数重复执行所述测试垃圾收集操作。
16.根据权利要求15所述的方法,其中所述垃圾收集操作时间管理操作包括:分别计算通过针对所分类的情况中的每个情况与所述预定阈值一样多的次数重复执行所述测试垃圾收集操作而获得的测量结果的平均值。
17.根据权利要求16所述的方法,其中所述垃圾收集操作时间管理操作包括:通过在检测到的所述牺牲块内检测所分类的情况的一个或多个有效页分布并且对针对检测到的所述有效页分布的所有平均值进行求和来获得所述估计垃圾收集操作时间。
18.根据权利要求11所述的方法,其中所述垃圾收集操作周期管理操作包括:通过将所述估计垃圾收集操作时间除以具有恒定值的垃圾收集操作时间来获得计数值。
19.根据权利要求18所述的方法,其中所述垃圾收集操作周期管理操作包括:通过将所述特定时间除以所述计数值来获得所述垃圾收集操作周期。
20.根据权利要求11所述的方法,其中所述需要的空闲块与在所述特定时间期间需要的空闲块一样多。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180114941A KR102620731B1 (ko) | 2018-09-27 | 2018-09-27 | 메모리 시스템 및 그것의 동작방법 |
KR10-2018-0114941 | 2018-09-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110955611A true CN110955611A (zh) | 2020-04-03 |
CN110955611B CN110955611B (zh) | 2023-04-07 |
Family
ID=69946983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910649474.1A Active CN110955611B (zh) | 2018-09-27 | 2019-07-18 | 存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11036630B2 (zh) |
KR (1) | KR102620731B1 (zh) |
CN (1) | CN110955611B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112908392A (zh) * | 2021-02-09 | 2021-06-04 | 东芯半导体股份有限公司 | 控制非易失性存储器参数的控制方法 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11580016B2 (en) * | 2019-08-30 | 2023-02-14 | Micron Technology, Inc. | Adjustable garbage collection suspension interval |
KR20210157157A (ko) | 2020-06-19 | 2021-12-28 | 삼성전자주식회사 | 메모리 컨트롤러의 구동방법, 호스트의 구동방법 및 스토리지 장치 |
KR20220020008A (ko) | 2020-08-11 | 2022-02-18 | 삼성전자주식회사 | 비휘발성 메모리를 포함하는 메모리 저장 장치 및 전자 장치 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8032724B1 (en) * | 2007-04-04 | 2011-10-04 | Marvell International Ltd. | Demand-driven opportunistic garbage collection in memory components |
CN102722415A (zh) * | 2012-05-22 | 2012-10-10 | 广州晶锐信息技术有限公司 | 基于堆栈体系结构Java SoC系统的垃圾收集方法 |
US8364918B1 (en) * | 2007-04-06 | 2013-01-29 | Marvell International Ltd. | Sensed opportunistic garbage collection in memory components |
US20140032817A1 (en) * | 2012-07-27 | 2014-01-30 | International Business Machines Corporation | Valid page threshold based garbage collection for solid state drive |
JP2015127869A (ja) * | 2013-12-27 | 2015-07-09 | 国立大学法人電気通信大学 | 電子機器、制御方法、及び、プログラム |
CN105335100A (zh) * | 2015-09-29 | 2016-02-17 | 华为技术有限公司 | 一种数据处理方法、装置及闪存设备 |
US20170109276A1 (en) * | 2015-10-15 | 2017-04-20 | SK Hynix Inc. | Memory system and operation method thereof |
CN107025178A (zh) * | 2015-09-22 | 2017-08-08 | 三星电子株式会社 | 存储器控制器、非易失性存储器系统及其操作方法 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4775932A (en) * | 1984-07-31 | 1988-10-04 | Texas Instruments Incorporated | Computer memory system with parallel garbage collection independent from an associated user processor |
JP2002278828A (ja) * | 2001-03-21 | 2002-09-27 | Sony Corp | ガーベージコレクション実行方法、コンピュータプログラム、プログラム格納媒体、および情報処理装置 |
US7627617B2 (en) * | 2004-02-11 | 2009-12-01 | Storage Technology Corporation | Clustered hierarchical file services |
WO2007132456A2 (en) * | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Memory device with adaptive capacity |
US7444461B2 (en) * | 2006-08-04 | 2008-10-28 | Sandisk Corporation | Methods for phased garbage collection |
US7451265B2 (en) * | 2006-08-04 | 2008-11-11 | Sandisk Corporation | Non-volatile memory storage systems for phased garbage collection |
US8626986B2 (en) | 2010-06-30 | 2014-01-07 | Sandisk Technologies Inc. | Pre-emptive garbage collection of memory blocks |
US8713268B2 (en) * | 2010-08-05 | 2014-04-29 | Ut-Battelle, Llc | Coordinated garbage collection for raid array of solid state disks |
CN102147767B (zh) * | 2011-04-26 | 2014-04-02 | 记忆科技(深圳)有限公司 | 固态硬盘垃圾收集参数动态调整方法及其系统 |
KR20140040998A (ko) * | 2012-09-27 | 2014-04-04 | 삼성전자주식회사 | 로그기반 데이터 저장 시스템의 관리방법 |
US9646067B2 (en) * | 2013-05-14 | 2017-05-09 | Actifio, Inc. | Garbage collection predictions |
KR102094902B1 (ko) * | 2013-07-08 | 2020-03-30 | 삼성전자주식회사 | 액티브 상태에서 인터페이스 모드를 전환하는 스토리지 시스템 및 ufs 시스템 |
KR20150139112A (ko) * | 2014-06-02 | 2015-12-11 | 삼성전자주식회사 | 가비지 컬렉션 유닛을 포함하는 메모리 시스템 및 동작 방법 |
KR102292198B1 (ko) | 2014-10-15 | 2021-08-25 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 데이터 저장 장치 및 그것의 동작 방법 |
US9727456B2 (en) * | 2014-11-03 | 2017-08-08 | Pavilion Data Systems, Inc. | Scheduled garbage collection for solid state storage devices |
KR20160075229A (ko) | 2014-12-19 | 2016-06-29 | 삼성전자주식회사 | 가비지 컬렉션 동작 방법 및 이를 적용하는 레이드 스토리지 시스템 |
KR102301772B1 (ko) | 2015-03-09 | 2021-09-16 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 가비지 컬렉션 방법 |
KR20170044781A (ko) * | 2015-10-15 | 2017-04-26 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10324833B2 (en) * | 2015-10-27 | 2019-06-18 | Toshiba Memory Corporation | Memory controller, data storage device, and memory control method |
US10102119B2 (en) * | 2015-10-30 | 2018-10-16 | Sandisk Technologies Llc | Garbage collection based on queued and/or selected write commands |
US10254998B2 (en) * | 2015-11-03 | 2019-04-09 | Samsung Electronics Co., Ltd. | Coordinated garbage collection of flash devices in a distributed storage system |
US20170123700A1 (en) * | 2015-11-03 | 2017-05-04 | Samsung Electronics Co., Ltd. | Io redirection methods with cost estimation |
US10168917B2 (en) * | 2016-04-05 | 2019-01-01 | International Business Machines Corporation | Hotness based data storage for facilitating garbage collection |
JP2019053805A (ja) * | 2017-09-15 | 2019-04-04 | 東芝メモリ株式会社 | メモリシステム |
US10496330B1 (en) * | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
CN110058794B (zh) * | 2018-01-19 | 2022-11-01 | 上海宝存信息科技有限公司 | 用于动态执行垃圾回收数据储存装置与操作方法 |
KR102634631B1 (ko) * | 2018-07-11 | 2024-02-08 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작방법 |
-
2018
- 2018-09-27 KR KR1020180114941A patent/KR102620731B1/ko active IP Right Grant
-
2019
- 2019-05-08 US US16/406,258 patent/US11036630B2/en active Active
- 2019-07-18 CN CN201910649474.1A patent/CN110955611B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8032724B1 (en) * | 2007-04-04 | 2011-10-04 | Marvell International Ltd. | Demand-driven opportunistic garbage collection in memory components |
US8364918B1 (en) * | 2007-04-06 | 2013-01-29 | Marvell International Ltd. | Sensed opportunistic garbage collection in memory components |
CN102722415A (zh) * | 2012-05-22 | 2012-10-10 | 广州晶锐信息技术有限公司 | 基于堆栈体系结构Java SoC系统的垃圾收集方法 |
US20140032817A1 (en) * | 2012-07-27 | 2014-01-30 | International Business Machines Corporation | Valid page threshold based garbage collection for solid state drive |
JP2015127869A (ja) * | 2013-12-27 | 2015-07-09 | 国立大学法人電気通信大学 | 電子機器、制御方法、及び、プログラム |
CN107025178A (zh) * | 2015-09-22 | 2017-08-08 | 三星电子株式会社 | 存储器控制器、非易失性存储器系统及其操作方法 |
CN105335100A (zh) * | 2015-09-29 | 2016-02-17 | 华为技术有限公司 | 一种数据处理方法、装置及闪存设备 |
US20170109276A1 (en) * | 2015-10-15 | 2017-04-20 | SK Hynix Inc. | Memory system and operation method thereof |
Non-Patent Citations (1)
Title |
---|
时正: ""一种基于差分进化的Flash文件系统垃圾回收算法"", 《电子学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112908392A (zh) * | 2021-02-09 | 2021-06-04 | 东芯半导体股份有限公司 | 控制非易失性存储器参数的控制方法 |
CN112908392B (zh) * | 2021-02-09 | 2023-09-15 | 东芯半导体股份有限公司 | 控制非易失性存储器参数的控制方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20200035630A (ko) | 2020-04-06 |
US11036630B2 (en) | 2021-06-15 |
KR102620731B1 (ko) | 2024-01-05 |
US20200104254A1 (en) | 2020-04-02 |
CN110955611B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10466902B2 (en) | Memory system and operation method for the same | |
CN110058797B (zh) | 存储器系统及其操作方法 | |
US10877883B2 (en) | Memory system, controller for performing read reclaim operation, and method for operating the controller | |
CN110955611B (zh) | 存储器系统及其操作方法 | |
US11093390B2 (en) | Memory system and operating method thereof | |
CN110928805B (zh) | 存储器系统及其操作方法 | |
US10885992B2 (en) | Memory system and operating method thereof | |
US20200125292A1 (en) | Memory system and operating method thereof | |
CN111078584A (zh) | 存储器系统及其操作方法 | |
CN110928806B (zh) | 存储器系统及其操作方法 | |
CN111090596B (zh) | 存储器系统及其操作方法 | |
CN111145818B (zh) | 存储器系统及其操作方法 | |
CN110928485B (zh) | 存储器系统及其操作方法 | |
CN110688060B (zh) | 存储器系统及该存储器系统的操作方法 | |
CN110716881B (zh) | 存储器系统及其操作方法 | |
CN110716880B (zh) | 存储器系统及其操作方法 | |
CN110865948B (zh) | 存储系统及其操作方法 | |
KR102513498B1 (ko) | 컨트롤러, 그것의 동작방법 및 컨트롤러를 포함하는 메모리 시스템 | |
CN111258920A (zh) | 存储器系统、存储器系统的操作方法和控制器 | |
CN111176555A (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 |