CN111831577A - 用于确定存储器系统中的存储块的特性的设备和方法 - Google Patents
用于确定存储器系统中的存储块的特性的设备和方法 Download PDFInfo
- Publication number
- CN111831577A CN111831577A CN201911282533.2A CN201911282533A CN111831577A CN 111831577 A CN111831577 A CN 111831577A CN 201911282533 A CN201911282533 A CN 201911282533A CN 111831577 A CN111831577 A CN 111831577A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- memory blocks
- memory block
- block
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- 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
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/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/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/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/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/1016—Performance 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
- G06F2212/1036—Life time enhancement
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开涉及一种存储器系统。该存储器系统包括:存储器装置,其包括能够存储数据的多个存储块;以及控制器,被配置为确定在操作时段期间存储在存储块中的数据的属性。操作时段的持续时间基于关于多个存储块的参数可改变。调整操作时段的持续时间以提高确定关于存储器装置的使用模式的准确性。
Description
相关申请的交叉引用
本专利申请要求于2019年4月16日提交的申请号为10-2019-0044398的韩国专利申请的优先权,其全部公开内容通过引用并入本文。
技术领域
各个实施例总体涉及一种存储器系统,且更特别地,涉及一种用于确定并利用存储器系统中包括的多个存储块中存储的数据的属性的方法和设备。
背景技术
近来,计算环境的范例已经转换为使得计算机系统可以被随时随地访问的普适计算。因此,诸如移动电话、数码相机、笔记本计算机等的便携式电子装置的使用正在迅速增加。这种便携式电子装置通常使用或包括使用或嵌入至少一个存储器装置即数据存储装置的存储器系统。数据存储装置可以用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘相比,使用非易失性半导体存储器装置的数据存储装置的优点在于,由于其没有机械运动部件(例如,机械臂),因此具有优异的稳定性和耐用性,并且具有高数据访问速度和低功耗。在具有这种优点的存储器系统的背景下,说明性的数据存储装置包括USB(通用串行总线)存储器装置、具有各种接口的存储卡、固态驱动器(SSD)等。
发明内容
本公开的实施例可以提供一种存储器系统、数据处理系统以及操作进程或方法,该存储器系统、数据处理系统以及操作进程或方法可以通过减少存储器系统的操作复杂性和性能劣化来快速且可靠地处理存储器装置中的数据,并且可以提高存储器装置的使用效率。
本公开提供了一种方法和设备,用于动态地确定或改变用于确定存储器系统中的多个存储块中存储的数据的属性的时间点,并且动态地确定用于确定在多个存储块中存储的数据的属性的标准或阈值,以便更准确地确定在多个存储块中存储的数据的属性并且提高存储器系统的性能。
另外,本公开提供了一种方法和设备,用于确定存储器系统中的多个存储块中存储的数据的属性并且阐明指示是否对多个存储块执行损耗均衡操作的阈值或标准,使得可以避免不必要的操作,从而提高存储器系统的性能。
进一步,本公开提供了一种方法和设备,用于基于存储器系统中的多个存储块中存储的数据的属性对多个存储块执行损耗均衡操作,从而基于用户对存储器系统的数据使用模式或访问模式来控制存储器系统的寿命。
在实施例中,一种存储器系统可以包括:存储器装置,包括能够存储数据的多个存储块;以及控制器,被配置为确定在操作时段期间存储在存储块中的数据的属性,操作时段基于关于多个存储块的第一参数可改变。
作为示例而非限制,控制器可以被配置为基于存储在存储块中的数据的属性,对多个存储块执行损耗均衡操作。
该控制器可以被配置为:在擦除第一存储块之后,分配多个存储块之中的第一存储块,以对被确定为具有冷属性的另一数据进行编程,第一存储块先前存储被确定为具有热属性的数据;并且在擦除第二存储块之后,分配多个存储块之中的第二存储块,以对被确定为具有热属性的另一数据进行编程,第二存储块先前存储被确定为具有冷属性的数据。
控制器可以被配置为确定存储在每个存储块中的数据的属性,并且通过将存储在存储块中的数据的属性与关于存储在存储块中的数据条的逻辑地址相关联来估计数据使用模式。
控制器可以被配置为基于数据使用模式来确定分配哪个存储块以对与逻辑地址相关联的数据条进行新的编程。
控制器可以被配置为:当总擦除计数的改变达到预设值时检查多个存储块之中具有改变的擦除计数的存储块的比率;基于该比率调整该预设值;并且基于该预设值,确定用于确定数据的属性的操作时段。
控制器可以被配置为当比率在第一范围内时增加预设值。
控制器可以被配置为当比率在第二范围内时减小预设值。
控制器可以被配置为基于关于存储块的参数中包括的读取计数的改变来确定存储在存储块中的数据的属性。
控制器可以被配置为基于关于多个存储块的读取计数的改变的总和来调整用于确定存储在存储块中的数据的属性的阈值。
在另一实施例中,一种用于操作存储器系统的方法可以包括:对多个存储块之中的存储块执行编程操作、读取操作和擦除操作中的至少一种操作;响应于对存储块执行的至少一种操作,更新关于多个存储块的第一参数和关于存储块的第二参数;基于第一参数和第二参数确定操作时段;并且基于第二参数确定在操作时段期间存储在存储块中的数据的属性。
该方法可以进一步包括:基于存储在存储块中的数据的属性,对多个存储块执行损耗均衡操作。
该损耗均衡操作可以包括:在擦除第一存储块之后,分配多个存储块之中的第一存储块,以对被确定为具有冷属性的另一数据进行编程,第一存储块先前存储被确定为具有热属性的数据;以及在擦除第二存储块之后,分配多个存储块之中的第二存储块,以对被确定为具有热属性的另一数据进行编程,第二存储块先前存储被确定为具有冷属性的数据。
数据的属性可以在每个存储块中确定。该方法可以进一步包括:通过将存储在存储块中的数据的属性与关于存储在存储块中的数据条的逻辑地址相关联来估计数据使用模式。
该方法可以进一步包括:基于数据使用模式确定分配哪个存储块以对与逻辑地址相关联的数据条进行新的编程。
该方法可以进一步包括:当总擦除计数的改变达到预设值时,检查多个存储块之中具有改变的擦除计数的存储块的比率;基于比率调整预设值;并且基于预设值确定操作时段。
作为示例而非限制,当比率在第一范围内时,可以增加预设值。
当比率在第二范围内时,可以减小预设值。
确定数据的属性可以包括:基于包括基于关于存储块的参数中的读取计数的改变来确定存储在存储块中的数据的属性。
确定数据的属性可以进一步包括:基于关于存储块的参数中包括的读取计数的改变的总和,确定存储在存储块中的数据的属性。
现在将参照附图描述本公开的实施例,其中相同的附图标记指代相同的元件。
附图说明
本文参照附图进行描述,其中在所有附图中,相同的附图标记指代相同的部件,并且其中:
图1示出根据本公开的实施例的存储器系统。
图2示出根据本公开的实施例的包括存储器系统的数据处理系统的示例。
图3示出根据本公开的实施例的存储器系统中的控制器。
图4示出根据本公开的实施例的存储器系统的第一进程。
图5示出根据本公开的实施例的确定存储器系统中的存储块的属性的进程。
图6示出根据本公开的实施例的存储器系统的第二进程。
图7示出用于确定存储在存储块中的数据的属性的操作时段增加的示例。
图8示出用于确定存储在存储块中的数据的属性的操作时段减小的示例。
图9示出根据本公开的实施例的用于确定存储在存储块中的数据的属性,特别是确定数据是热还是冷的阈值或标准。
具体实施方式
下面参照附图描述本公开的各个实施例。然而,本公开的元件和特征可以不同地配置或布置以形成可以是任何所公开的实施例的变型的其他实施例。因此,本教导不限于本文阐述的实施例。相反,提供所描述的实施例,使得本公开是彻底的和完整的,并且将本公开的范围充分传达给本教导所属领域的技术人员。注意的是,对“实施例”、“另一实施例”等的参考不一定仅指一个实施例,并且对任何这种短语的不同参考不一定针对相同的实施例。
将理解的是,虽然术语“第一”、“第二”、“第三”等可在本文使用以识别各个元件,但是这些元件不受这些术语限制。这些术语用于将一个元件与另一元件区分开,否则一个元件与另一元件具有相同或相似的名称。因此,在不脱离本教导的精神和范围的情况下,在一个实例中的第一元件也可以在另一实例中被称为第二元件或第三元件。
附图不一定按比例绘制,并且在某些情况下,为了清楚地说明实施例的特征,比例可能已被夸大。当元件被称为连接至或联接到另一元件时,应当理解的是前者可直接连接或联接到后者,或者经由其间的中间元件电连接或联接到后者。另外,还将理解的是,当元件被称为在两个元件“之间”时,两个元件之间可以仅有一个元件或也可存在一个或多个中间元件。
这里使用的术语仅用于描述特定实施例的目的,并不旨在限制。如本文使用的,除非上下文另有清楚地说明,否则单数形式旨在包括复数形式,反之亦然。在本申请和所附权利要求中使用的冠词“一”和“一个”通常应被解释为表示“一个或多个”,除非另有说明或从上下文清楚地指向单数形式。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其指定所陈述元件的存在,并不排除一个或多个其它元件的存在或添加。如本文所使用的,短语“和/或”包括一个或多个相关所列项目的任意和全部组合。
除非另有定义,否则本文使用的包括技术和科学术语的所有术语具有与本领域普通技术人员通常理解的相同含义。将进一步理解的是,诸如在常用词典中限定的那些术语的术语应被理解为具有与它们在本公开和相关领域的背景下的含义一致的含义,并且不以理想化或过于形式化的意义来解释,除非本文明确地如此定义。
在下面的描述中,为了提供对本公开的全面理解,阐述了大量具体细节。可以在没有一些或所有这些具体细节的情况下实践本文所公开的教导。在其他情况下,没有详细描述公知的进程结构和/或进程,以免不必要地模糊本文所公开教导。
还注意的是,在一些情况下,如对于相关领域的技术人员显而易见的是,除非另有明确说明,否则结合一个实施例所描述的特征或元件可单独使用或与另一实施例的其它特征或元件组合使用。
图1示出根据本公开的实施例的存储器系统110。例如,可以将存储器系统110安装在计算装置或移动装置上,然后向与存储器系统110可操作地接合的主机102(参见图2和图3)传送或从主机102接收数据条、命令或指令或者响应。
存储器系统110包括控制器130和存储器装置150。控制器130响应于主机102的请求输出从存储器装置150传递的数据条,或者将从主机102传送的数据条存储在存储器装置150中。存储器装置150可以包括多个存储块,每个存储块包括多个页面,每个页面包括能够存储数据的多个单元。在本文中,存储器装置150的内部配置可以根据存储器装置150的特性、使用存储器系统110的目的或主机102所需的存储器系统110的规格而不同。通过示例而非限制的方式,存储块中的多个单元可以通过擦除操作被一起擦除。页面的多个单元可以通过编程操作被一起编程。
控制器130可以包括存储器144,存储器144可以存储与在存储器系统110中执行的操作相关联或由该操作生成的各种类型的数据、操作信息、信息参数等。在图1中,存储器114被描述为控制器130中包括的组件,但是可以被实施为与控制器130物理上分离的单独的组件。根据实施例,控制器130可以将存储器144划分为多个区域,并且分配多个区域中的每一个以用于存储不同类型的数据、信息和参数。
控制器130可以包括损耗均衡电路198或操作信息管理电路196中的至少一个。操作信息管理电路196可以检查、更新、调整和控制与存储器装置150中包括的多个存储块40_1相关联的操作信息、状态信息、参数信息等。例如,当控制器130对存储器装置150中的特定存储块执行擦除操作时,操作信息管理电路196可以将关于相应存储块的擦除计数增加预设值(例如1、2、0.5等等)。
如本公开中所使用的,术语“电路”可以指以下所有:(a)纯硬件电路实施方式(例如仅在模拟和/或数字电路中的实施方式),以及(b)电路和软件(和/或固件)的组合,例如(如适用):(i)处理器的组合,或(ii)处理器/软件(包括数字信号处理器)、软件和存储器的一部分,一起工作以使诸如移动电话或服务器的设备执行各种功能,以及(c)例如微处理器或微处理器的一部分的电路,其需要软件或固件来操作,即使软件或固件物理上不存在。“电路”的定义适用于该术语在本申请中,包括在任何权利要求中的所有使用。作为另一示例,如在本申请中所使用的,术语“电路”还将涵盖仅处理器(或多个处理器)或处理器的一部分及其(或它们)所附软件和/或固件的实施方式。如果适用于特定的权利要求元件,术语“电路”还将涵盖,例如用于存储装置的集成电路。
除了上述的擦除操作之外,在执行读取存储在存储块中的数据的读取操作或将数据编程在存储块中的编程操作之后,操作信息管理电路196可以修改或更新与所执行的操作相关联的存储块的数据、信息、参数等。例如,操作信息管理电路196可以在每次从存储块读取数据时递增存储块的读取计数,并且可以在每次对存储块的页面进行编程时递增存储块的编程计数。
另外,操作信息管理电路196不仅可以更新、管理和控制与存储器装置150中的多个存储块40_1有关的操作信息、状态信息、信息参数等,而且还可以确定存储在多个存储块40_1中的数据的属性。通过示例而非限制的方式,当访问存储在特定存储块中的数据条的频率高于预设值时,操作信息管理电路196可以将存储在存储块中的数据的属性确定为“热”。另一方面,当访问存储在存储块中的数据的频率等于或小于预设值时,操作信息管理电路196可以将存储在存储块中的数据的属性确定为“冷”。
作为确定数据属性的方法,操作信息管理电路196可以使用存储在存储块中的数据在预设操作时间段(例如,1天、1个月等)期间被读取的次数。但是,在预设操作期间特定存储块中数据读取操作的次数可能会根据用户的数据使用模式而有很大不同。例如,在一周的操作期间内,存储器系统110可以根据用户或主机的请求执行10次读取操作或数十万次读取操作。当操作时段的持续时间固定时,由于响应于用户或主机的请求而执行的操作的数量差异很大,因此确定存储在存储器装置150中包括的多个存储块40_1中的数据的属性可能不准确或不必要。因此,在本公开的实施例中,可以根据存储器系统110的使用,具体地根据存储器装置150中的多个存储块40_1的操作状态来动态地改变或调整用于检查或确定存储在存储块中的数据的属性的操作时段的持续时间。
在本公开的实施例中,操作信息管理电路196可以根据与存储器装置150中的多个存储块40_1相关联的擦除计数的总改变量是否达到预设值来确定操作时段。例如,假设每当在多个存储块40_1之中的特定存储块中执行擦除操作时,特定存储块的擦除计数可以增加“1”。当对存储器装置150中的多个存储块40_1执行100次擦除操作时,与多个存储块40_1相关联的擦除计数的总改变量可以增加100。当上述预设值为100时,当在操作时段期间对多个存储块40_1执行100次擦除操作时,操作时段可以结束。根据实施例,可以根据存储器装置150中包括的存储块40_1的数量来确定上述预设值。当可以基于擦除计数的总改变量来确定操作时段时,可以基于数据使用模式,例如,响应于用户或主机的请求的存储器系统110的使用,来确定操作时段。
根据实施例,除了确定关于存储块40_1的擦除计数的总改变量之外,为了确定是否延长操作时段,操作信息管理电路196还可以确定在操作时段中多个存储块40_1之中被擦除的存储块的数量。例如,当关于存储块40_1的擦除计数的总改变量增加100时,操作信息管理电路196可以确定在操作时段中有多少个存储块40_1已经被执行了擦除操作。也就是说,操作信息管理电路196可以确定多个存储块40_1之中具有擦除计数改变(即,擦除计数增加)的存储块的数量。
例如,如果在存储器系统的100个存储块中已执行100次(总计)擦除操作,使得正好在100个存储块中的每一个中已执行一次擦除操作,则在执行100次擦除操作的操作时段期间,基于对其执行的诸如读取、编程、擦除操作等操作来检查数据使用模式或确定存储在100个存储块中的数据的属性可能没有多大意义。可以假定,当在100个存储块中的每一个中发生一次擦除操作时,存储在存储器装置150中的多个存储块40_1中(即,在100个被擦除的存储块中)的多条数据已经被顺序地擦除。当对多个存储块40_1顺序地执行擦除操作时,延长多个存储器装置150的寿命或提高其操作效率的用于损耗均衡或垃圾收集的操作可能是不必要的,因为多个存储块40_1每个可以具有基本相同数量的编程/擦除(P/E)周期,编程/擦除(P/E)周期可以被视为存储块的寿命或磨损的指标。在这种情况下,可以将操作时段延长到已经执行200次擦除操作而不是执行100次擦除操作的另一时间点。也就是说,基于存储器装置150的操作状态,预设值或预设条件可以从100增加到200。
根据实施例,可以基于在操作时段中已对其执行擦除操作的存储块的数量与预设值或预设条件的第一比率,来确定调整用于确定操作时段的预设值或预设条件的步骤。例如,如果预设值为100,并且执行擦除操作的存储块的数量为91,则第一比率可以为91%。如果第一比率大于或等于预设阈值(例如,90%),则可以调整预设值或预设条件(例如,从100增加到150、200或300)。当增加预设值或预设条件使得对多个存储块执行更多的读取、编程和擦除操作时,当擦除计数的总改变量达到增加后的值时,第一比率有可能会小于预设阈值(例如,90%)。
在实施例中,可以存在建立多个范围的多个预设阈值。例如,根据第一比率属于多个范围中的哪个范围,可以不同地增加预设值或预设条件。作为示例而非限制,当第一比率落入第一范围(例如90至100%)时,预设值或预设条件可以加倍(例如从100至200)。当第一比率落入第二范围(例如70至90%)时,预设值或预设条件可以增加1.5倍(例如,从100至150)。
同时,根据另一实施例,可以将调整用于确定操作时段的预设条件或预设值的步骤确定为对其执行擦除操作的存储块的数量与多个存储块40_1的总数量的第二比率。当多个存储块40_1的总数量是500并且对其执行擦除操作的存储块的数量是50时,第二比率可以是10%。当达到预设条件或预设值并且第二比率小于或等于预设阈值(例如15%)时,可以增加预设条件或预设值。
根据实施例,可以存在建立多个范围的多个预设阈值。例如,根据第二比率属于多个范围中的哪个范围,可以不同地增加预设值或预设条件。作为示例而非限制,当第二比率属于第一范围(例如,0至15%)时,预设值或预设条件可以增加3倍(例如,从100至300)。当第二比率落入第二范围(例如15至30%)时,预设值或预设条件可以加倍(例如,从100至200)。
如上所述,操作信息管理电路196可以基于在存储器系统110中执行的操作或与用户或主机的请求相关联的存储器系统110的数据使用模式,确定作为用于检查存储在存储器装置150的多个存储块40_1中的数据的属性的参考的操作时段。以这种方式,根据在可变的操作时段中的数据使用模式可以更清楚或准确地确定存储在存储器装置150的多个存储块40_1中的数据的属性(例如,根据访问频率的热或冷)。例如,基于在可变的操作时段期间与每个存储块相对应的读取计数的改变量,可以确定被频繁访问超过阈值的存储块中存储的数据具有热属性。可以确定被频繁访问低于阈值的另一存储块中存储的数据可具有冷属性。
控制器130可以包括损耗均衡电路198,该损耗均衡电路198可以基于由操作信息管理电路196确定的存储块中存储的数据的属性来执行损耗均衡操作。因为操作信息管理电路196可以确定存储器装置150中的多个存储块40_1中的每一个中存储的数据的属性,所以损耗均衡电路198可以将多个存储块40_1中的每一个中存储的数据的属性与和逻辑地址匹配的数据条的属性相关联。例如热或冷的数据属性可以与逻辑地址相关联,该逻辑地址指示存储在相应存储块中的数据。对于损耗均衡操作,在擦除预先存储具有冷属性的数据的特定存储块之后,损耗均衡电路198可以分配该特定存储块,以用于对和与热属性相关联的逻辑地址匹配的数据进行新编程。已存储了冷数据(具有冷属性的数据)的存储块可以包括多个存储块40_1之中的编程/擦除(P/E)计数具有很少改变的存储块。相反,损耗均衡电路198可以分配已存储热数据(具有热属性的数据)的存储块以用于指示冷数据条的逻辑地址。其中已存储热数据的存储块可以包括多个存储块40_1之中的编程/擦除(P/E)计数具有很大改变的存储块。
当操作信息管理电路196确定操作时段时,损耗均衡电路198可以基于在该操作时段期间在存储器装置150中执行的操作来执行损耗均衡操作。在操作时段期间执行的操作可以反映在关于存储器装置150中的多个存储块40_1的操作信息、信息参数等之中。在本文中,操作时段是可变的。可以基于关于多个存储块40_1的操作信息、信息参数等来确定操作时段。进一步,可以基于关于多个存储块40_1的操作信息、信息参数等来确定存储在存储块中的数据的属性。还可基于存储在存储块中的数据的属性来执行损耗均衡操作。
在下文中,将参照图2至图9更详细地描述本公开的各个实施例。
图2示出根据本公开的实施例的数据处理系统100。数据处理系统100可以包括存储器系统110和与存储器系统110接合或互锁的主机102。
例如,主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置或诸如台式计算机、游戏机、电视(TV)和投影仪等的电子装置。
主机102包括至少一个操作系统(OS),其通常可以管理和控制在主机102中执行的功能和操作。OS可以提供与存储器系统110接合的主机102和需要并使用存储器系统110的用户之间的互操作性。OS可以支持与用户的请求相对应的功能和操作。作为示例而非限制,可以根据主机102的移动性将OS分类为通用操作系统和移动操作系统。根据系统要求或用户环境,可以将通用操作系统分为个人操作系统和企业操作系统。诸如Microsoft和Google Chrome OSTM操作系统的个人操作系统,可以用于支持用于通用目的的服务。诸如Microsoft Windows服务器、操作系统等的企业操作系统,可以专门用于保护和支持高性能。诸如AndroidTM、或Windows mobile操作系统的移动操作系统可以用于支持用于移动性服务或功能(例如,节电功能)。主机102可以包括多个操作系统。对应于用户的请求,主机102可以运行与存储器系统110互锁的多个操作系统。主机102可以将与用户的请求相对应的多个命令传送到存储器系统110中,从而在存储器系统110内执行与命令相对应的操作。
存储器系统110可以响应于来自主机102的请求而执行特定功能或操作,并且特别地,可以存储待由主机102访问的数据。存储器系统110可用作主机102的主存储器系统或辅助存储器系统。根据主机接口的协议,存储器系统110可利用可与主机102电联接的各种类型的存储装置中的任何一种来实施。合适的存储装置的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、缩小尺寸的MMC(RS-MMC)、微型MMC、安全数字(SD)卡、迷你SD、微型SD、通用串行总线(USB)存储装置、通用闪存(UFS)装置、标准闪存(CF)卡、智能媒体(SM)卡、记忆棒等。
存储器系统110的存储装置可利用例如动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置,和/或诸如只读存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM或ReRAM)和闪速存储器的非易失性存储器装置来实施。
存储器系统110可包括控制器130和存储器装置150。存储器装置150可以存储待由主机102访问的数据。控制器130可以控制将数据存储在存储器装置150中。
控制器130和存储器装置150可被集成到单个半导体装置中,其中单个半导体装置可被包括在以上所述的各种类型的存储器系统中。
作为示例而非限制,控制器130和存储器装置150可以集成到单个半导体装置中。可以将配置SSD的控制器130和存储器装置150集成到单个半导体装置中,以提高操作速度。当将存储器系统110用作SSD时,与利用硬盘实施的主机102相比,可以提高连接到存储器系统110的主机102的操作速度。另外,集成到一个半导体装置中的控制器130和存储器装置150可以形成存储卡。例如,PC卡(PCMCIA)、紧凑型闪存卡(CF)、诸如智能媒体卡(SM、SMC)的存储卡、记忆棒、多媒体卡(MMC、RS-MMC、微型MMC)、SD卡(SD、迷你SD、微型SD、SDHC)、通用闪速存储器等。
存储器系统110可被配置成例如以下的一部分:计算机、超移动PC(UMPC)、工作站、上网本、个人数字助理(PDA)、便携式计算机、网络平板、平板电脑、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航系统、黑盒、数码相机、数字多媒体广播(DMB)播放器、三维(3D)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、配置数据中心的存储装置、能够在无线环境下传送和接收信息的装置、配置家庭网络的各种电子装置之一、配置计算机网络的各种电子装置之一、配置远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或配置计算系统的各种组件之一。
存储器装置150可以是非易失性存储器装置,并且在即使不供应电力时也可保留其中存储的数据。存储器装置150可通过写入操作来存储从主机102提供的数据,同时通过读取操作将存储在其中的数据提供至主机102。存储器装置150可以包括多个存储块,其包括存储块152、154和156。存储块152、154和156中的每一个可以包括多个页面。多个页面中的每一个可包括电联接多个字线(WL)的多个存储器单元。存储器装置150还包括多个存储器管芯,每个存储器管芯包括多个平面,每个平面包括多个存储块。另外,存储器装置150可以是非易失性存储器装置,例如闪速存储器,其中闪速存储器可以是三维堆叠结构。
控制器130可控制存储器装置150的诸如读取操作、写入操作、编程操作和擦除操作的全部操作。例如,控制器130可响应于来自主机102的请求控制存储器装置150。控制器130可以将从存储器装置150读取的数据提供给主机102。控制器130可以将主机102提供的数据存储到存储器装置150中。
控制器130可包括全部通过内部总线可操作地联接的主机接口(I/F)132、处理器134、错误校正电路(ECC)138、电源管理单元(PMU)140、存储器接口(I/F)142以及存储器144。
主机接口132可处理从主机102提供的命令和数据,并可通过诸如以下的各种接口协议中的至少一种与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、高速外围组件互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)以及电子集成驱动器(IDE)。根据实施例,主机接口单元132是用于与主机102交换数据的组件,其可以通过称为主机接口层(HIL)的固件来实施。
ECC 138可以校正待在存储器装置150中处理(例如,从存储器装置150输出)的数据中的错误位。ECC 138可以包括ECC编码器和ECC解码器。这里,ECC编码器可以对待编程到存储器装置150中的数据执行错误校正编码,以生成添加奇偶校验位的经编码数据,并将经编码数据存储在存储器装置150中。当控制器130读取存储在存储器装置150中的数据时,ECC解码器可以检测并校正从存储器装置150读取的数据中包含的错误。换言之,在对从存储器装置150读取的数据执行错误校正解码之后,ECC 138可以确定错误校正解码是否成功并且输出指令信号(例如,校正成功信号或校正失败信号)。ECC 138可以使用在ECC编码进程中生成的奇偶校验位来校正读取数据的错误位。当错误位的数量大于或等于可校正错误位的阈值数量时,ECC 138可以不校正错误位,但是可以输出指示校正错误位失败的错误校正失败信号。
ECC 138可以基于诸如以下的编码调制执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)以及分组编码调制(BCM)等。ECC 138可以包括用于基于上述代码中的至少一种来执行错误校正操作的电路、模块、系统或装置中的全部或一些。
PMU 140可以管理提供在控制器130中的电力。
存储器接口142可用作用于处理在控制器130和存储器装置150之间传送的命令和数据的接口,以允许控制器130响应于从主机102传递的请求来控制存储器装置150。在当存储器装置150是闪速存储器时,并且特别地,当存储器装置150是NAND闪速存储器时的情况下,在处理器134的控制下,存储器接口142可生成用于存储器装置150的控制信号,并且可处理输入到存储器装置150中的或从存储器装置150输出的数据。存储器接口142可以提供用于处理控制器130和存储器装置150之间的命令和数据,例如NAND闪存接口的操作,特别是控制器130和存储器装置150之间的操作的接口。根据实施例,存储器接口142可以通过称为闪存接口层(FIL)的固件来实施,闪存接口层(FIL)作为用于与存储器装置150交换数据的组件。
存储器144可以支持由存储器系统110和控制器130执行的操作。存储器144可以存储用于存储器系统110和控制器130中的操作的临时或事务型数据。控制器130可响应于来自主机102的请求来控制存储器装置150。控制器130可以将从存储器装置150读取的数据传递到主机102。控制器130可以将通过主机102输入的数据存储在存储器装置150内。存储器144可以用于存储控制器130和存储器装置150执行诸如读取操作或编程/写入操作的操作所需的数据。
存储器144可利用易失性存储器来实施。存储器144可以利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或其两者来实施。尽管图1示出设置在控制器130内的第二存储器144,但是实施例不限于此。也就是说,存储器144可位于控制器130的内部或外部。例如,存储器144可以通过外部易失性存储器来实施,该外部易失性存储器具有传送在存储器144和控制器130之间传送的数据和/或信号的存储器接口。
存储器144可以存储用于执行诸如由主机102所请求的数据写入和数据读取的操作的操作,和/或在存储器装置150与控制器130之间传送数据以用于诸如如上所述的垃圾收集和损耗均衡的后台操作所必需的数据。根据实施例,为了支持存储器系统110中的操作,存储器144可以包括编程存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
处理器134可利用微处理器或中央处理单元(CPU)来实施。存储器系统110可包括一个或多个处理器134。处理器134可以控制存储器系统110的全部操作。作为示例而非限制,处理器134可以响应于从主机102输入的写入请求或读取请求来控制存储器装置150的编程操作或读取操作。根据实施例,处理器134可以使用或运行存储在非暂时性计算机可读介质中的固件,以控制存储器系统110的全部操作。在本文中,固件可以被称为闪存转换层(FTL)。FTL可以用作主机102和存储器装置150之间的接口。主机102可通过FTL向存储器装置150传送用于写入和读取操作的请求。
FTL可管理地址映射、垃圾收集、损耗均衡等操作。特别地,FTL可以加载、生成、更新或存储映射数据。因此,控制器130可以通过映射数据将从主机102输入的逻辑地址与存储器装置150的物理地址进行映射。由于地址映射操作,存储器装置150可以看起来像用于执行读取或写入操作的通用存储装置。而且,由于闪速存储器装置的特性,当控制器130操作以更新存储在特定页面中的数据时,控制器130可以通过基于映射数据的地址映射操作,将更新后的数据编程在另一(空)页面上,并且然后使特定页面的旧数据无效(例如,将与更新后的数据的逻辑地址相对应的物理地址从先前的特定页面更新到另一(新编程的)页面)。进一步,控制器130可以将新数据的映射数据存储到FTL中。
例如,当执行由主机102请求的对存储器装置150的操作时,控制器130使用在微处理器或中央处理单元(CPU)等中实施的处理器134。与存储器装置150接合的处理器134能够处理与从主机102输入的命令相对应的指令或命令。控制器130可以执行与从主机102输入的命令相对应的作为命令操作的前台操作,例如,与写入命令相对应的编程操作、与读取命令相对应的读取操作、与擦除/丢弃命令相对应的擦除/丢弃操作以及利用设置命令的与设置参数命令或设置特征命令相对应的参数设置操作。
控制器130还可以使用处理器134对存储器装置150执行后台操作。作为示例而非限制,针对存储器装置150的后台操作包括用于将存储在存储器装置150中的存储块152、154和156之中的任意存储块中的数据复制和存储到另一任意存储块的操作(例如,垃圾收集(GC)操作)。后台操作可以包括在存储在存储器装置150中的存储块152、154和156中的至少一个中的数据之间移动或交换的操作(例如,损耗均衡(WL)操作)。作为后台操作,控制器130使用处理器134将存储在控制器130中的映射数据存储到存储器装置150中的存储块152、154和156中的至少一个中,例如,映射清除(flush)操作。用于检查存储器装置150中包括的多个存储块152、154和156中的坏块的坏块管理操作是由处理器134执行的后台操作的另一示例。
根据实施例,图1所示的控制器130和第二存储器144可以通过图2中描述的控制器130中的至少一个处理器134和至少一个存储器144来实施。
在存储器系统110中,控制器130执行与从主机102接收的多个命令相对应的多个命令操作。例如,当顺序地、随机地或可选地执行与多个编程命令相对应的多个编程操作、与多个读取命令相对应的多个读取操作以及与多个擦除命令相对应的多个擦除操作时,控制器130可以确定将控制器130连接到存储器150中包括的多个存储器管芯的多个通道(或通路)中的哪个或哪些通道或通路对于执行每个操作是合适的或适当的。控制器130可以经由确定的通道或通路发送或传送数据或指令以用于执行每个操作。在每个操作完成之后,包括在存储器装置150中的多个存储管芯可以分别经由相同的通道或通路来传送操作结果。然后,控制器130可以将响应或确认信号传送到主机102。在实施例中,控制器130可以检查每个通道或每个通路的状态。响应于从主机102输入的命令,控制器130可以基于每个通道或每个通路的状态来选择至少一个通道或通路,使得可以经由所选择的通道或通路来与数据一起传递指令和/或操作结果。
作为示例而非限制,控制器130可以识别关于与包括在存储器装置150中的多个存储器管芯相关联的多个通道(或通路)的状态。控制器130可以将每个通道或每个通路确定为繁忙状态、就绪状态、激活状态、空闲状态、正常状态和/或异常状态中的一种。控制器确定的通过哪个或哪些通道或通路传递指令(和/或数据)可以与物理块地址相关联,例如,指令(和/或数据)被传递到哪个管芯。控制器130可以参考从存储器装置150传递的描述符。描述符可以包括描述关于存储器装置150的参数的块或页面,其是具有预定格式或结构的数据。例如,描述符可以包括装置描述符、配置描述符、单元描述符等。控制器130可以参考或使用描述符来确定经由哪个或哪些通道或通路来交换指令或数据。
管理单元(未示出)可以包括在处理器134中。管理单元可以执行存储器装置150的坏块管理。管理单元可以找到存储器装置150中包括的不满足进一步使用条件的坏存储块,并且对坏存储块执行坏块管理。当存储器装置150为例如NAND闪速存储器的闪速存储器时,由于NAND逻辑功能的特性,在写入操作期间,例如在编程操作期间,可能发生编程失败。在坏块管理期间,编程失败的存储块或坏存储块的数据可被编程到新的存储块中。坏块可能严重加剧具有3D堆叠结构的存储器装置150的使用效率和存储器系统110的可靠性。因此,可靠的坏块管理可以提高或改善存储器系统110的性能。
参照图3,详细描述根据本公开的另一实施例的存储器系统中的控制器130。控制器130与主机102和存储器装置150协作。控制器130可以包括主机接口单元132、闪存转换层(FTL)单元40、存储器接口单元142和存储器144。
尽管未在图3中示出,但是根据实施例,图2中描述的ECC 138可以包括在闪存转换层(FTL)单元40中。在另一实施例中,ECC 138可被实施为包括在控制器130中或与控制器130相关联的单独的模块、电路、存储在非暂时性计算机可读介质中并由处理器执行的固件等。
主机接口单元132用于处理从主机102传送的命令、数据等。作为示例而非限制,主机接口单元132可以包括命令队列56、缓冲器管理器52和事件队列54。命令队列56可以顺序地存储从主机102传送的命令、数据等,并且以存储的顺序将它们输出到缓冲器管理器52。缓冲器管理器52可以对从命令队列56传递来的命令、数据等进行分类、管理或调整。事件队列54可以顺序地传送事件,以用于处理从缓冲器管理器52传送的命令、数据等。
可以从主机102连续地传送相同特性的多个命令或数据,或者可以在混合或混杂之后将不同特性的命令或数据传送给存储器系统110。例如,可以传递用于读取数据的多个命令(读取命令),或者可以将用于读取数据的命令(读取命令)和编程/写入数据的命令(写入命令)交替地传送到存储器系统110。主机接口单元132可以将从主机102传送的命令、数据等顺序地存储到命令队列56。之后,主机接口单元132可以根据从主机102传送的命令、数据等的特性来估计或预测控制器130将执行哪种类型的操作。主机接口单元132可以至少基于命令、数据等的特性来确定命令、数据等的处理顺序和优先级。根据从主机102传送的命令、数据等的特征,主机接口单元132中的缓冲器管理器52被配置为确定命令、数据等是否被存储在存储器144中,或者命令、数据等是否被传递到闪存转换层(FTL)单元40中。事件队列54接收从缓冲器管理器52输入的事件,以便按照接收顺序将事件传递到闪存转换层(FTL)单元40中,这些事件待由存储器系统110或控制器130响应于从主机102传送的命令、数据等在内部执行和处理。
根据实施例,闪存转换层(FTL)单元40可以包括主机请求管理器(HRM)46、映射管理器(MM)44、状态管理器42和块管理器48。主机请求管理器(HRM)46可以管理从事件队列54输入的事件。映射管理器(MM)44可以处理或控制映射数据。状态管理器42可以执行垃圾收集或损耗均衡。通过示例而非限制的方式,状态管理器42可以包括图1所示的损耗均衡电路198。块管理器48能够对存储器装置150中的块运行命令或指令。
作为示例而非限制,主机请求管理器(HRM)46可以根据从主机接口单元132传递的读取和编程命令以及事件使用映射管理器(MM)44和块管理器48来处置或处理请求。主机请求管理器(HRM)46可以向映射数据管理器(MM)44发送查询请求,以找出与随事件输入的逻辑地址相对应的物理地址。主机请求管理器(HRM)46可以将具有物理地址的读取请求发送到存储器接口单元142,以处理读取请求(处置事件)。另一方面,主机请求管理器(HRM)46可以向块管理器48发送编程请求(写入请求),以将输入的数据编程到特定的未记录页面(即,自上次擦除包含该页面的块以来尚未编程数据的页面),然后可以将与编程请求相对应的映射更新请求传送到映射管理器(MM)44,以在将逻辑物理地址彼此映射的信息中更新与编程数据有关的项目。
这里,块管理器48可以将从主机请求管理器(HRM)46、映射数据管理器(MM)44和/或状态管理器42传递的编程请求转换为用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了最大化或提高存储器系统110(参见图2)的编程或写入性能,块管理器48可以收集编程请求并将用于多平面和单触发编程操作的闪存编程请求发送到存储器接口单元142。块管理器48可以向存储器接口单元142发送几个闪存编程请求,以提高或最大化多通道和多方向闪存控制器的并行处理。
另一方面,块管理器48可以被配置为根据有效页面数量来管理存储器装置150中的块,当需要空闲块时选择并擦除没有有效页面的块,并且当确定有必要进行垃圾收集时选择包括最少有效页面数量的块。状态管理器42能够执行垃圾收集以将有效数据移动到空块,并擦除包含所移动的有效数据的块,使得块管理器48可以具有足够的空闲块(没有数据的空块)。如果块管理器48将关于待擦除的块的信息提供给状态管理器42,则状态管理器42可以检查待擦除的块的所有闪存页面以确定每个页面是否有效。例如,为了确定每个页面的有效性,状态管理器42能够识别记录在每个页面的带外(OOB)区域中的逻辑地址。为了确定每个页面是否有效,状态管理器42能够将页面的物理地址与映射到从查询请求获得的逻辑地址的物理地址进行比较。状态管理器42针对每个有效页面向块管理器48发送编程请求。当编程操作完成时,映射表能够通过映射管理器44的更新而被更新。
映射管理器44能够管理逻辑到物理映射表。映射管理器44可以处理由主机请求管理器(HRM)46或状态管理器42生成的诸如查询、更新等的请求。映射管理器44可以将整个映射表存储在存储器装置150(例如,闪速存储器/非易失性存储器)中,并根据存储器144的存储容量来高速缓存映射条目。当在处理查询或更新请求时发生映射高速缓存丢失(miss)时,映射管理器44可以向存储器接口单元142发送读取请求以加载存储在存储器装置150中的相关映射表。当映射管理器44中的脏高速缓存块的数量超过某个阈值时,能够将编程请求发送到块管理器48,以便生成清洁高速缓存块,并且可以将脏映射表存储在存储器装置150中。
另一方面,当执行垃圾收集时,状态管理器42将有效页面复制到空闲块中,并且主机请求管理器(HRM)46可以对相同逻辑地址页面的最新版本的数据进行编程,并且当下发出更新请求。当状态管理器42在未正常完成有效页面的复制的状态下请求映射更新时,映射管理器44可能不执行映射表更新。这是因为如果状态管理器42请求更新映射,则映射请求与旧物理信息一起被发出,然后稍后完成有效页面复制。仅当最新的映射表仍然指向旧物理地址时,映射管理器44可以执行映射更新操作以确保准确性。
存储器装置150可以包括多个存储块。根据一个存储器单元中可以存储或表示的位数量,可以将多个存储块分类为不同类型的存储块,例如单层单元(SLC)存储块、多层单元(MLC)存储块等。这里,SLC存储块包括由每个存储一位数据的存储器单元实施的多个页面。SLC存储块可以具有高的数据I/O操作性能和高的耐用性。MLC存储块包括由每个存储多位数据(例如,两位或更多位)的存储器单元实施的多个页面。MLC存储块可以在相同空间中具有比SLC存储块更大的存储容量。MLC存储块可以在存储容量方面高度集成。在实施例中,存储器装置150可以利用诸如MLC存储块、三层单元(TLC)存储块、四层单元(QLC)存储块或其组合的MLC存储块来实施。MLC存储块可以包括由每个能够存储2位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可以包括由每个能够存储3位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可以包括由每个能够存储4位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可以利用包括由每个能够存储5位数据或更多数据的存储器单元实施的多个页面的块来实施。
在本公开的实施例中,存储器装置150被实现为非易失性存储器,例如诸如NAND闪速存储器、NOR闪速存储器等的闪速存储器。在其他实施例中,存储器装置150可以由相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋注入磁性存储器(例如,自旋转移力矩磁性随机存取存储器,STT-MRAM)等中的至少一个来实施。
图4示出根据本公开的实施例的存储器系统的第一进程400。详细地,第一进程400确定用于确定存储器系统的存储器装置中包括的多个存储块中所存储的数据的属性的操作时段。
第一进程400可以包括针对存储器装置中的多个存储块逐块地确定例如热或冷的数据属性(S10)。当存储器装置150首次被使用时,可以在开始时不执行确定热或冷的数据属性(S10)。然而,在存储器装置150已经使用了一定时间之后,可以确定热或冷的数据属性。可以基于在操作时段期间在存储器装置150中执行的操作来执行确定存储在存储器装置150中的多个存储块中的数据的属性或特性。进一步,确定存储在存储器装置150中的多个存储块中的数据的属性或特性可以包括开始另一操作时段的步骤。
第一进程400可以包括:确定关于存储器装置中的多个存储块的总擦除计数的改变是否已达到预设值(S12);当总擦除计数已增加到预设值时,确定多个存储块中已擦除的存储块的比率(S14);基于多个存储块中已擦除的存储块的比率来调整关于总擦除计数的改变的预设值(S16);并且基于预设值和每个存储块的擦除计数来确定操作时段(S18)。在新的操作时段开始之后,可以在存储器装置中执行一个或多个读取、编程、擦除操作等。可以响应于对多个存储块执行的操作来生成和更新关于存储器装置中的多个存储块的信息参数。例如,控制器可以监控关于存储器装置中的多个存储块的擦除计数的改变。多个存储块的总擦除计数可以是分别与多个存储块中的每一个相关联的擦除计数的总和。
例如,当自操作时段开始以来关于多个存储块的总擦除计数已改变100时,这可以指示自操作时段开始以来已对多个存储块执行100次擦除操作。例如,如果预设值为100,则控制器可以确定总擦除计数的改变已达到预设值。响应于总擦除计数的改变达到预设值,可以检查在多个存储块之中已对多少个存储块执行擦除操作。在本文中,总擦除计数的改变可以示出在操作时段期间对多个存储块已执行多少次擦除操作。进一步,因为每个擦除计数可以对应于每个存储块,所以擦除计数改变多少可以示出自操作时段开始以来对其已执行至少一个擦除操作的存储块的数量(即,已擦除的存储块的数量)。控制器可以计算多个存储块中已擦除的存储块的比率(S14)。这里,该比率可以是参照图1描述的第一比率(已擦除的存储块的数量除以预设值)或第二比率(已擦除的存储块的数量除以多个存储块中的存储块的总数量),但是实施例不限于此。
基于所计算的比率,可以调整用作用于检查待监控的总擦除计数的改变的参考或标准的预设值(S16)。当已对其执行擦除操作的存储块的数量远远小于对多个存储块执行的擦除操作的总数量时,可以识别出哪个存储块已被频繁执行擦除操作。然而,如果在操作时段期间关于多个存储块的擦除计数之间没有或几乎没有偏差,则确定存储在存储块中的数据的特性或属性可能是困难的或无用的。因此,为了避免不必要的操作,可以通过改变关于总擦除计数的预设值来调整(例如,延长)操作时段。
调整与总擦除计数的改变相比的预设值可以调整或延长操作时段。可以根据对每个存储块执行的操作基于改变的擦除计数来确定操作时段(S18)。在调整预设值之后,可以延长操作时段,使得存储器系统可以对存储器装置中的多个存储块执行更多的读取、编程、擦除操作等,直到总擦除计数的改变达到调整后的预设值为止。当在存储器装置中的多个存储块中执行更多的读取、编程、擦除操作等时,控制器可以控制、更新或生成关于存储器装置中的多个存储块的信息参数等。当执行读取、编程、擦除操作等并且总擦除计数的改变达到调整后的改变量参考时,可以确定已经经过了操作时段。
当确定已经经过了操作时段时,可以逐块地确定关于存储器装置中的多个块中的每一个的热或冷的数据属性。例如,可以基于与擦除操作相对应的擦除计数来确定操作时段,但是可以基于与读取操作相对应的读取计数来确定数据属性。在确定了操作时段之后,可以基于每个存储块的读取计数的改变来确定存储在存储块中的数据的属性是热还是冷,其对应于在该操作时段期间执行的操作。
图5示出根据本公开的实施例的用于确定存储器系统中的多个存储块的属性的进程。
参照图5,存储器装置150可以包括多个存储块BLK1、BLK2、BLK3、BLK4、……、BLK(K-1)、BLK(K)。可以通过诸如读取计数(RC)、擦除计数(EC)等的参数或操作信息来识别存储器装置150中的多个存储块BLK1、BLK2、BLK3、BLK4、……、BLK(K-1)、BLK(K)的操作状态。
在第一定时点t1,存储器装置150中包括的多个存储块BLK1、BLK2、BLK3、BLK4、……、BLK(K-1)、BLK(K)中的每一个的擦除计数EC可以被使用。在图5的示例中,在第一定时点t1,擦除计数EC(t1)的总和为100。在第一定时点t1之后,对存储器装置150中的多个存储块BLK1、BLK2、BLK3、BLK4、……、BLK(K-1)、BLK(K)执行多个读取、编程和擦除操作。控制器响应于对多个存储块BLK1、BLK2、BLK3、BLK4、……、BLK(K-1)、BLK(K)执行的读取、编程或擦除操作等来更新诸如读取计数(RC)或擦除计数(EC)的信息参数。
在第二定时点t2,关于存储器装置150中包括的多个存储块BLK1、BLK2、BLK3、BLK4、……、BLK(K-1)、BLK(K)的擦除计数EC可以用于确定擦除计数EC(t2)的总和是否已达到200。从第一定时点t1到第二定时点t2,已对从存储器装置150中包括的多个存储块BLK1、BLK2、BLK3、BLK4、……、BLK(K-1)、BLK(K)执行读取、编程、擦除操作等。响应于在第一定时点t1和第二定时点t2之间已执行的读取、编程、擦除操作等,擦除计数EC的总数已从100变为200(改变为100)。响应于关于擦除计数EC的总和的改变达到预设值(例如100),控制器确定在第一定时点t1开始的操作时段可能已在第二定时点t2结束。
可以在第一定时点t1初始化存储器装置150中包括的多个存储块BLK1、BLK2、BLK3、BLK4、……、BLK(K-1)、BLK(K)中的每一个的读取计数RC。在第二定时点t2,多个存储块BLK1、BLK2、BLK3、BLK4、……、BLK(K-1)、BLK(K)中的每一个的读取计数RC可以彼此不同。例如,第一块BLK1的读取计数可以是158,第二块BLK2的读取计数可以是5。在从第一定时点t1到第二定时点t2的操作时段期间,存储器装置150中包括的多个存储块BLK1、BLK2、BLK3、BLK4、……、BLK(K-1)、BLK(K)中的每一个的读取计数RC的改变可以是1380。
根据实施例,当读取计数R.C.的改变超过预设阈值(例如100)并且确定操作时段已经结束时,则可以将存储在相应存储块中的数据分类为热数据。参照图5,由于第一块BLK1的读取计数RC是158,则可以将存储在第一块BLK1中的数据的属性确定为热。但是,当读取计数RC的改变不超过预设阈值(例如100)时,则可以将存储在相应存储块中的数据分类为冷数据。参照图5,由于第二块BLK2的读取计数R.C.是5,则可以将存储在第二块BLK2中的数据的属性确定为冷。
根据实施例,可以存在用于对数据进行分类的多个预设阈值。例如,如果在操作时段中读取计数R.C.的改变大于第一值(例如,100),则可以将存储在相应存储块中的数据分类为热数据。此外,当读取计数R.C.的改变小于第二值(例如,10),则可以将存储在相应存储块中的数据分类为冷数据。此外,当读取计数R.C.的改变落入第一值(例如100)和第二值(例如10)之间时,则存储在相应存储块中的数据可以被分类为暖数据。在这种情况下,从第一时间点t1起到第二时间点t2,作为操作时段,可以基于每个存储块的读取计数RC来确定存储器装置150中包括的多个存储块BLK1、BLK2、BLK3、BLK4、……、BLK(K-1)、BLK(K)中存储的数据的属性。可以将存储在第一块BLK1中的数据的属性确定为热,将存储在第二块BLK2中的数据的属性确定为冷,并且将存储在第K块BLK(K)中的数据的属性确定为暖。
尽管未示出,但是当从第一时间点t1到第二时间点t2,在存储器装置150中包括的多个存储块BLK1、BLK2、BLK3、BLK4、……、BLK(K-1)、BLK(K)之中具有改变的擦除计数EC的已擦除的存储块的数量大于或等于预设值时,可以不确定操作时段在第二时间点t2已结束并且可以延长操作时段。例如,当存储器装置150中包括的多个存储块BLK1、BLK2、BLK3、BLK4、……、BLK(K-1)、BLK(K)中的每一个的擦除计数EC的总和达到300时,可以确定操作时段已经结束。
图6示出根据本公开的实施例的存储器系统的第二进程600。第二进程600可以详细地描述用于确定操作时段并确定数据属性(例如,热/冷)的进程。
参照图6,第二进程600可以包括:基于关于存储器装置中的多个存储块的总擦除计数来确定第一时间点,并且初始化关于多个存储块中的每一个的读取计数(S30);对存储器装置中的多个存储块执行读取、编程或擦除操作(S32);响应于对多个存储块执行的读取、编程或擦除操作来更新计数(S34);当总擦除计数达到预设值时,在第二时间点将已擦除的存储块的数量与预设阈值进行比较(S36);当已擦除的存储块的数量大于预设阈值时,延迟第二时间点(S38);并且当已擦除的存储块的数量等于或小于预设阈值时,确定关于存储器装置中的多个存储块的数据属性(例如,热或冷)(S40)。
可以在参照图5描述的第一时间点t1执行用于初始化关于多个存储块的读取计数的步骤(S30)。例如,第一时间点t1可以是开始使用存储器装置的时间。当存储器装置已经在操作时,可以将与特定条件相对应的时间点确定为第一时间点t1。也就是说,在第一时间点t1之前的时段可以是先前的操作时段,并且第一时间点t1可以被认为是新的操作时段的开始。当确定新的操作时段的开始时,可以初始化(或重置)多个存储块的读取计数。
在确定操作时段的开始之后,可以对存储器装置中的多个存储块执行用于读取数据、编程数据或擦除数据的操作(S32)。响应于对存储器装置中的多个存储块中的一个执行的操作,可以更新与该存储块相对应的信息(例如状态信息、操作信息或信息参数)(S34)。例如,当执行用于读取存储在特定存储块中的数据的操作时,该特定存储块的读取计数可以增加。当存储在特定存储块中的数据被擦除时,该特定存储块的擦除计数可以增加。
在响应于对多个存储块执行的操作而更新状态信息、操作信息或信息参数之后,可以对其进行监视以确定关于多个存储块的总擦除计数是否已增加预设值(S36)。当关于多个存储块的总擦除计数的改变尚未达到预设值时,存储器系统可以不确定存储在存储块中的数据的属性,并且可以对存储器装置中的多个存储块执行附加的读取、编程或擦除操作(S32)。当关于多个存储块的总擦除计数的改变增加预设值时,可以确定第二时间点,使得可以将已执行擦除操作的存储块的数量与作为确定操作时段的参考的预设阈值进行比较。
通过将在操作时段期间执行擦除操作的存储块的数量与预设阈值或参考范围进行比较,可以确定执行擦除操作的存储块的数量是否大于预设阈值或参考范围。当已擦除的存储块的数量大于预设阈值时,可以延迟第二时间点以延长操作时段(S38)。当第二时间点被延迟时,存储器系统对存储器装置中的多个存储块执行读取、编程和擦除操作(S32)。例如,当总擦除计数的改变是100时,可以确定在操作时段期间已对多个存储块执行100次擦除操作。当在90或95个存储块(即,大于预设阈值)中执行100次擦除操作时,可以假定在操作时段期间已顺序地擦除存储在90或95个存储块中的多条数据。由于大多数擦除操作平均分布在90个或95个存储块中(分别具有有10个或5个擦除操作,是在操作时段中先前擦除的存储块),因此很难确定特定的存储块是否具有比其他存储块更严重的磨损,并且因此很难准确地确定是否有必要对多个存储块进行损耗均衡操作。在这种情况下,在存储器系统对多个存储块执行进一步的读取、编程或擦除操作之后,检查或确定存储块之间的磨损差异(即,擦除操作数量的差异)可能是有用的,这可以通过增加与总擦除计数相比的预设值来完成。例如,可以对存储器装置中的多个存储块进一步执行读取、编程和擦除操作,直到总擦除计数的改变达到200,该改变大于100(即,延长操作时段)。
当已擦除的存储块的数量小于预设阈值时,存储器系统可以基于相应存储块的读取计数来确定存储在存储块中的数据的属性(S40)。当执行擦除操作的存储块的数量小于预设阈值(例如,30、40或50个存储块)时,可以假设相对于其他存储块,擦除操作更有可能对少数存储块执行。也就是说,在多个存储块中的存储块之间产生磨损差异。在这种情况下,可以基于响应于用于读取存储在每个存储块中的数据的各个操作而更新的各个读取计数,来确定存储在每个存储块中的数据的属性(诸如,数据是热还是冷)。尽管未示出,但是可以基于存储在存储块中的数据的属性和存储块之间的磨损差异来执行损耗均衡操作。
在确定存储在存储块中的数据的属性之后,可以开始新的操作时段,并且可以与新的操作时段开始一起初始化多个存储块的各个读取计数(S30)。
参照图6,操作时段是从第一时间点到第二时间点,并且可以动态地调整第二时间点以确定操作时段。在确定操作时段之后,存储器系统可以确定存储在多个存储块中的数据的属性。图6示出其中基于已执行擦除操作的存储块的数量来调整或延长第二时间点的实施例。然而,根据实施例,可以减少在特定条件下用于确定第二时间点的预设标准。例如,当总擦除计数的改变是100时,可以确定已对多个存储块执行100次擦除操作。当可以确定100次操作仅对10个或更少的存储块执行时,少数存储块可能会被急剧地或快速地磨损。在这种情况下,可以不延长执行100次擦除操作的第二时间点,并且可以将用于确定下一个操作时段的预设值降低到70、50等,而不是100。如果在操作时段中对非常少数的存储块重复执行擦除操作,则存储块之间的磨损差异可能会增加。在这种情况下,可以降低预设值,从而可以减少操作时段以更频繁地执行损耗均衡操作。
图7示出用于确定存储在存储块中的数据的属性的增加的操作时段的示例。
参照图7,可以基于操作信息、状态信息、信息参数等来确定存储在多个存储块中的数据的属性,操作信息、状态信息、信息参数等根据在从第一时间点t1到第二时间点t2的第一操作时段期间执行的操作而确定。例如,可以确定数据的属性是热还是冷。另外,可以基于数据属性执行损耗均衡操作。
根据实施例,可以通过将冷数据(具有冷属性的数据)存储在严重磨损的存储块中并且将热数据(具有热属性的数据)存储在轻微磨损的存储块中来实施损耗均衡操作。作为示例而非限制,损耗均衡操作可以包括:在擦除第一存储块之后,分配第一存储块以对被确定为具有冷属性的另一数据进行编程,第一存储块先前存储被确定为具有热属性的数据。进一步,损耗均衡操作可以包括:在擦除第二存储块之后,分配第二存储块以对被确定为具有热属性的另一数据进行编程,第二存储块先前存储被确定为具有冷属性的数据。
在确定第一操作时段并且确定存储在多个存储块中的数据的属性之后,可以开始新的操作时段(第二操作时段)。从第二时间点t2到第三时间点t3的第二操作时段可以长于从第一时间点t1到第二时间点t2的第一操作时段。特别地,如参照图6所述,当可以基于在存储器装置中执行擦除操作的存储块的数量来延长确定第二操作时段的第三时间点t3时,第二操作时段可能会长于第一操作时段。
当如第一操作时段一样来确定第二操作时段时,存储器系统可以基于在第二操作时段期间被更新或控制的关于多个存储块的操作信息、状态信息、信息参数等来确定在第二操作时段期间的数据的属性(例如,热/冷)。而且,可以基于对数据属性的分析结果来执行损耗均衡操作。
图8示出用于确定存储在存储块中的数据的属性的减小的操作时段的示例。
参照图8,存储器系统可以基于操作信息、状态信息、信息参数等来确定存储在多个存储块中的数据的属性(例如,热数据或冷数据),操作信息、状态信息、信息参数等根据在从第一时间点t1到第二时间点t2的第一操作时段期间执行的操作来更新或控制。而且,可以响应于对数据属性的分析结果来执行损耗均衡操作。
同时,在第一操作时段中,即从第一时间点t1到第二时间点t2执行的擦除操作的数量可能已对少数存储块(例如,预设数量或更少的存储块)重复地执行。在这种情况下,可以基于存储在多个存储块中的数据的属性来执行损耗均衡操作,该属性是在确定第一操作时段之后确定的。降低用于确定从第二时间点t2开始的第二操作时段的预设标准,从而可以调整第三时间点t3以减小第二操作时段。当在存储器装置中执行操作使得存储块之间的磨损差异迅速增加时,这样的操作可以减小存储块之间的磨损差异。
参照图7和图8,基于对存储器装置中的多个存储块执行的操作,可以动态地改变或确定用于确定存储在多个存储块中的存储块中的数据的属性的时间点、参考等。因此,可以基于使用存储器装置和存储器系统的用户的数据使用模式来动态地确定存储在存储块中的数据的属性,从而提高存储器系统的寿命和操作稳定性。
图9示出根据本公开的实施例的用于确定存储在存储块中的数据的属性是热还是冷的阈值或标准。图7至图8示出可以改变用于确定存储在多个存储块BLK1、BLK2、BLK3、BLK4、……、BLK(K-1)、BLK(K)中的数据的属性和特性的操作时段。图9示出在操作时段中读取计数RC的改变的示例。
参照图9,关于存储器装置中包括的多个存储块BLK1、BLK2、BLK3、BLK4、……、BLK(K-1)、BLK(K)中的每一个的读取计数RC的改变,将描述两种不同的说明性情况(第一种情况,第二种情况)。两种不同的情况(第一种情况和第二种情况)可以在两个持续时间基本相同的操作时段中发生,或者可以在两个持续时间不同的操作时段中发生。
首先,在第一种情况中,多个存储块BLK1、BLK2、BLK3、BLK4、……、BLK(K-1)、BLK(K)中的每一个的读取计数RC的改变总和为1380。在这种情况下,可以将读取计数R.C.超过预定参考或预定值(例如100)的第一块BLK1中存储的数据确定为热数据。
另一方面,在第二种情况下,多个存储块BLK1、BLK2、BLK3、BLK4、……、BLK(K-1)、BLK(K)中的每一个的读取计数RC的总改变为2580。在这种情况下,即使第一块BLK1的读取计数RC的改变超过预定参考或预定值(例如100),也可以将存储在第一块BLK1中的数据确定为冷。然而,可以将具有读取计数R.C.即260的第(K-1)块BLK(K-1)中存储的数据确定为热。
在第一种情况和第二种情况两种情况下,第一块BLK1的读取计数R.C.的改变量等于158。然而,在第一种情况和第二种情况下,多个存储块BLK1、BLK2、BLK3、BLK4、……、BLK(K-1)、BLK(K)中的每一个的读取计数R.C.的总改变分别为1380和2580,这是非常不同的。在本文中,基于读取计数(RC)的总改变的预定比率(例如,10%),而不是预定固定值或预定基准(例如,100),可以用作用于确定存储在特定存储块中的数据的属性为热还是冷的标准或参考。例如,在第一种情况下用于区分热/冷数据的标准可以是138,即1380的10%,并且在第二种情况下,用于区分热/冷数据的标准可以是258,即2580的10%。通过根据比率确定用于确定数据属性的标准,可以基于在各个存储块之间执行的操作的数量的偏差来确定存储在存储块中的数据的属性,比率是根据多个存储块的读取计数R.C.的总改变。以此方式,即使存储在第一块BLK1中的数据在第一种情况和第二种情况下具有相同的读取计数改变的情况下,也可以基于关于多个存储块的读取计数R.C.的总改变将存储在第一块BLK1中的数据的属性确定为热还是冷。
如参照图9所述,可以基于对存储器装置中包括的多个存储块BLK1、BLK2、BLK3、BLK4、BLK(K-1)、……、BLK(K)中的每一个执行的操作的数量来改变用于确定数据属性的标准或参考。基于动态改变的标准或参考,可以根据在操作时段中执行的操作来更有效地或准确地确定数据的特性和属性。
根据本公开的实施例,存储器系统、数据处理系统以及操作该存储器系统或数据处理系统的方法可以基于用户的数据使用模式来动态地确定用于执行损耗均衡操作的阈值或标准,以便改善或提高存储器系统或数据处理系统的寿命。特别地,实施例动态地改变操作时段的持续时间,在此期间收集用于控制损耗均衡操作的信息。
另外,本公开的实施例具有的优点在于,可以通过监控关于多个存储块的参数并基于该参数执行读取回收操作和损耗均衡操作来提高存储器系统中的数据安全性。
虽然已经针对具体实施例说明和描述了本教导,但是本领域技术人员根据本公开将显而易见的是,在不脱离如所附权利要求中确定的本公开的精神和范围的情况下,可以进行各种改变和修改。
Claims (20)
1.一种存储器系统,包括:
存储器装置,包括能够存储数据的多个存储块;以及
控制器,确定在操作时段期间存储在存储块中的数据的属性,
其中所述操作时段的持续时间基于关于所述多个存储块的参数信息可改变。
2.根据权利要求1所述的存储器系统,其中所述控制器基于存储在所述存储块中的所述数据的属性,对所述多个存储块执行损耗均衡操作。
3.根据权利要求2所述的存储器系统,其中所述控制器:
响应于所述多个存储块之中的先前存储被确定为具有热属性的数据的第一存储块,在擦除所述第一存储块之后,分配所述第一存储块以对被确定为具有冷属性的另一数据进行编程,并且
响应于所述多个存储块之中的先前存储被确定为具有冷属性的数据的第二存储块,在擦除所述第二存储块之后,分配所述第二存储块以对被确定为具有热属性的另一数据进行编程。
4.根据权利要求2所述的存储器系统,其中所述控制器:
确定存储在每个存储块中的所述数据的属性;并且
通过将存储在所述存储块中的所述数据的属性与关于存储在所述存储块中的数据条的逻辑地址相关联,来估计数据使用模式。
5.根据权利要求4所述的存储器系统,其中所述控制器基于所述数据使用模式来确定分配哪个存储块以对与所述逻辑地址相关联的数据条进行新的编程。
6.根据权利要求1所述的存储器系统,其中所述控制器:
响应于总擦除计数的改变达到预设值,确定所述多个存储块之中具有改变的擦除计数的存储块的比率;
基于所述比率调整所述预设值,并且
基于所述预设值确定所述操作时段的持续时间。
7.根据权利要求6所述的存储器系统,其中当所述比率在第一范围内时,所述控制器增加所述预设值。
8.根据权利要求7所述的存储器系统,其中当所述比率在小于所述第一范围的第二范围内时,所述控制器减小所述预设值。
9.根据权利要求1所述的存储器系统,其中所述控制器基于关于所述存储块的所述参数信息中包括的读取计数的改变来确定存储在所述存储块中的所述数据的属性。
10.根据权利要求9所述的存储器系统,其中所述控制器基于关于所述多个存储块的读取计数的改变的总和来调整确定存储在所述存储块中的所述数据的属性的阈值。
11.一种操作存储器系统的方法,包括:
对多个存储块之中的存储块执行编程操作、读取操作和擦除操作中的至少一种操作;
响应于对所述存储块执行的所述至少一种操作,更新关于所述多个存储块的第一参数和关于所述存储块的第二参数;
基于所述第一参数和所述第二参数确定操作时段;并且
基于所述第二参数确定在所述操作时段期间存储在所述存储块中的数据的属性。
12.根据权利要求11所述的方法,进一步包括:
基于存储在所述存储块中的所述数据的属性,对所述多个存储块执行损耗均衡操作。
13.根据权利要求12所述的方法,其中所述损耗均衡操作包括:
当确定所述多个存储块之中的第一存储块具有先前存储的被确定为具有热属性的数据时,在擦除所述第一存储块之后,分配所述第一存储块以对被确定为具有冷属性的另一数据进行编程,以及
当确定所述多个存储块之中的第二存储块具有先前存储的被确定为具有冷属性的数据时,在擦除所述第二存储块之后,分配所述第二存储块以对被确定为具有热属性的另一数据进行编程。
14.根据权利要求12所述的方法,其中在每个存储块中确定所述数据的属性,并且所述方法进一步包括:通过将存储在所述存储块中的所述数据的属性与关于存储在所述存储块中的数据条的逻辑地址相关联来估计数据使用模式。
15.根据权利要求14所述的方法,进一步包括:
基于所述数据使用模式,确定分配哪个存储块以对与所述逻辑地址相关联的数据条进行新的编程。
16.根据权利要求11所述的方法,进一步包括:
当总擦除计数的改变达到预设值时,确定所述多个存储块之中具有改变的擦除计数的存储块的比率;
基于所述比率调整所述预设值,并且
基于所述预设值确定所述操作时段。
17.根据权利要求16所述的方法,其中当所述比率在第一范围内时增加所述预设值。
18.根据权利要求17所述的方法,其中当所述比率在小于所述第一范围的第二范围内时减小所述预设值。
19.根据权利要求11所述的方法,其中确定所述数据的属性包括:
基于关于所述存储块的所述第二参数中包括的读取计数的改变,来确定存储在所述存储块中的所述数据的属性。
20.根据权利要求19所述的方法,其中确定所述数据的属性进一步包括:
基于所述多个存储块的读取计数的改变的总和来调整用于确定存储在所述存储块中的所述数据的属性的阈值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190044398A KR20200121621A (ko) | 2019-04-16 | 2019-04-16 | 메모리 시스템 내 복수의 메모리 블록의 특성을 결정하는 방법 및 장치 |
KR10-2019-0044398 | 2019-04-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111831577A true CN111831577A (zh) | 2020-10-27 |
Family
ID=72832475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911282533.2A Withdrawn CN111831577A (zh) | 2019-04-16 | 2019-12-13 | 用于确定存储器系统中的存储块的特性的设备和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11099757B2 (zh) |
KR (1) | KR20200121621A (zh) |
CN (1) | CN111831577A (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI375887B (en) | 2008-10-31 | 2012-11-01 | A Data Technology Co Ltd | Flash memory device with wear-leveling mechanism and controlling method thereof |
US20100174845A1 (en) * | 2009-01-05 | 2010-07-08 | Sergey Anatolievich Gorobets | Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques |
US8612804B1 (en) * | 2010-09-30 | 2013-12-17 | Western Digital Technologies, Inc. | System and method for improving wear-leveling performance in solid-state memory |
TWI454916B (zh) * | 2012-05-08 | 2014-10-01 | Phison Electronics Corp | 儲存單元管理方法、記憶體控制器與記憶體儲存裝置 |
KR102042859B1 (ko) | 2013-10-14 | 2019-11-08 | 에스케이하이닉스 주식회사 | 반도체 장치 및 그 동작 방법 |
US9710176B1 (en) * | 2014-08-22 | 2017-07-18 | Sk Hynix Memory Solutions Inc. | Maintaining wear spread by dynamically adjusting wear-leveling frequency |
US10901658B2 (en) * | 2018-12-28 | 2021-01-26 | Micron Technology, Inc. | Host adaptive memory device optimization |
-
2019
- 2019-04-16 KR KR1020190044398A patent/KR20200121621A/ko unknown
- 2019-11-08 US US16/679,094 patent/US11099757B2/en active Active
- 2019-12-13 CN CN201911282533.2A patent/CN111831577A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
KR20200121621A (ko) | 2020-10-26 |
US11099757B2 (en) | 2021-08-24 |
US20200333958A1 (en) | 2020-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11237742B2 (en) | Apparatus and method for controlling data stored in memory system | |
US11150822B2 (en) | Memory system for determining usage of a buffer based on I/O throughput and operation method thereof | |
US11526438B2 (en) | Memory system capable of increasing storage efficiency and operation method thereof | |
US20200310677A1 (en) | Apparatus and method for controlling write operation of memory system | |
US20210072896A1 (en) | Memory system for distributing and reading data and operating method thereof | |
CN112148632A (zh) | 用于改善存储器系统的输入/输出吞吐量的设备和方法 | |
CN113900586A (zh) | 存储器系统及其操作方法 | |
US11681633B2 (en) | Apparatus and method for managing meta data in memory system | |
US11281574B2 (en) | Apparatus and method for processing different types of data in memory system | |
US11822426B2 (en) | Memory system, data processing system and operation method of the same | |
US20210191625A1 (en) | Apparatus and method for improving input/output throughput of memory system | |
US20220269609A1 (en) | Apparatus and method for improving input/output throughput of memory system | |
CN111752467A (zh) | 传送存储器系统中的垃圾收集状态信息的设备和方法 | |
KR20210038096A (ko) | 메모리 시스템, 데이터 시스템 및 그 동작방법 | |
CN113448503B (zh) | 调整顺序命令的操作时间差的存储器系统及其操作方法 | |
US20220012180A1 (en) | Memory system for meta data management and operating method of memory system | |
US11385998B2 (en) | Memory system, data processing system and operation method of the same | |
CN113050881A (zh) | 提高存储器系统输入/输出吞吐量的设备和方法 | |
US11099757B2 (en) | Apparatus and method for determining characteristics of memory blocks in a memory system | |
US11468926B2 (en) | Apparatus and method for improving input/output throughput of memory system | |
US11379378B2 (en) | Apparatus and method for improving input and output throughput of memory system | |
CN113050879A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201027 |
|
WW01 | Invention patent application withdrawn after publication |