CN114579040A - 用于保持在存储器系统中存储的数据的设备和方法 - Google Patents
用于保持在存储器系统中存储的数据的设备和方法 Download PDFInfo
- Publication number
- CN114579040A CN114579040A CN202110031993.9A CN202110031993A CN114579040A CN 114579040 A CN114579040 A CN 114579040A CN 202110031993 A CN202110031993 A CN 202110031993A CN 114579040 A CN114579040 A CN 114579040A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- chunk
- 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
- 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
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of 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/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]
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)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明涉及一种存储器系统,该存储器系统包括:存储器装置,包括第一存储块和第二存储块,其中第一存储块存储具有第一大小的第一数据组块并且第二存储块存储具有第二大小的第二数据组块,并且第一大小小于第二大小;以及控制器,可操作地联接到存储器装置,其中控制器被配置为从第二存储块读取第二数据组块,当检测到至少一个错误时校正第二数据组块中的至少一个错误,并且将第二数据组块的一部分复制到第一存储块,其中第二数据组块的一部分是经错误校正的并且具有第一大小。
Description
技术领域
本公开涉及一种存储器系统,更具体地,涉及一种用于保持存储器系统中存储的数据的设备和方法。
背景技术
近来,计算环境范例已转变为普适计算,这使得可几乎随时随地访问计算机系统。因此,诸如移动电话、数码相机、笔记本计算机等的便携式电子装置的使用正在迅速增长。这种便携式电子装置通常使用或者包括存储器系统,即数据存储装置,该存储器系统使用或嵌入至少一个存储器装置。数据存储装置可以用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘不同,使用非易失性半导体存储器装置的数据存储装置的优点在于,因为数据存储装置不具有机械驱动部件(例如,机械臂),所以具有优异的稳定性和耐用性,并且具有高数据访问速度和低功耗。在具有这样的优点的存储器系统的背景下,示例性数据存储装置包括USB(通用串行总线)存储器装置、具有各种接口的存储卡、固态驱动器(SSD)等。
发明内容
本公开的实施例可以提供一种数据处理系统以及用于操作该数据处理系统的方法,该数据处理系统包括诸如存储器系统和主机的组件和资源并且能够基于组件和资源的使用来动态地分配用于组件之间的数据通信的多个数据路径。
本公开的实施例可以提供一种基于保留时间来保持、保护或保留在非易失性存储器装置中存储的数据的设备和/或方法,以提高存储器系统的操作可靠性。当数据已经被编程在非易失性存储器装置内的特定位置中很长时间时,存储器系统可以将数据重新编程到非易失性存储器装置内的另一位置以进行数据保护,即避免保留损失。
当应当经常将非易失性存储器装置中存储的大量数据重新编程在另一位置时,该重新编程操作可能会影响非易失性存储器装置的耐用性,即关于存储块的编程/擦除(P/E)周期。存储器系统可以采用用于地址转换的多种类型的映射信息(例如,第一映射信息和第二映射信息),来访问在非易失性存储器装置中存储的数据。当与第一映射信息相关联的数据的大小不同于与第二映射信息相关联的数据的大小时,存储器系统可以将数据中的、具有保留损失的可能性的一些数据,而不是全部数据重新编程到非易失性存储器装置内的另一位置。例如,用于在存储器系统中保持、保留或保护数据的设备和方法可以根据错误级别或错误可能性,来在对应于第二映射数据的第二数据组块之中确定或选择至少一个第一数据组块,并且将该至少一个第一数据组块复制到高速缓存存储块。与用于将所有数据组块复制到高速缓存存储块以进行数据保护的方法相比,该设备和方法可以减少存储器系统中的用于确保数据安全性的资源消耗。在本文中,数据的组块或数据组块可以是位序列。例如,数据组块可以包括文件的内容、文件的一部分、存储器中的页面、面向对象程序中的对象、数字消息、数字扫描图像、视频或音频信号的一部分或任何其他可由位序列表示的实体。根据实施例,数据组块可以包括离散的对象。根据另一实施例,数据组块可以包括两个不同组件之间的传输包内的信息单位。
在实施例中,一种存储器系统可以包括:存储器装置,包括第一存储块和第二存储块,其中第一存储块存储具有第一大小的第一数据组块并且第二存储块存储具有第二大小的第二数据组块,并且第一大小小于第二大小;以及控制器,可操作地联接到存储器装置,其中控制器被配置为从第二存储块读取第二数据组块,当检测到至少一个错误时,校正第二数据组块中的至少一个错误,并且将第二数据组块的一部分复制到第一存储块,其中第二数据组块的一部分是经错误校正的并且具有第一大小。
存储器装置可以进一步被配置为存储与第一数据组块相关联的第一映射数据段以及与第二数据组块相关联的第二映射数据段。控制器可以进一步被配置为检查第二存储块的操作状态以确定是否从第二存储块读取第二数据组块,并且该控制器进一步被配置为基于第二映射数据段从第二存储块读取第二数据组块。
可以基于第二存储块的保留时间和编程/擦除周期(P/E周期)来确定第二存储块的操作状态。
在第一存储块中包括的非易失性存储器单元中存储的位的数量可以小于在第二存储块中的非易失性存储器单元中存储的位的数量。
第一存储块可以用作高速缓存存储器,并且第二存储块可以用作主存储装置。控制器可以进一步被配置为在访问第二存储块之前,首先对第一存储块执行读取操作。
控制器可以被配置为基于检测到的错误的量和用于校正在第二数据组块中检测到的错误的过程中的至少一个来确定第二数据组块的错误级别,并且当第二数据组块的错误级别大于或等于阈值时,将第二数据组块的经错误校正的部分复制到第一存储块。
控制器被配置为当错误级别小于阈值时刷新第二存储块。
控制器可以进一步被配置为基于第二存储块的操作状态、控制器的错误校正能力以及存储器系统的性能中的至少一个来确定阈值。
控制器可以进一步被配置为在进入空闲状态之后,确定是否读取第二数据组块。
第一映射数据段可以存储在第一存储块中,并且第二映射数据段可以存储在第二存储块中。
第一映射数据段和第二映射数据段可以存储在第三存储块中,该第三存储块不同于第一存储块和第二存储块中的任何一个。
在另一实施例中,一种操作存储器系统的方法可以包括:从第二存储块读取第二数据组块;当检测到至少一个错误时,校正第二数据组块中的至少一个错误;并且将第二数据组块的一部分复制到第一存储块。第一存储块可以存储具有第一大小的第一数据组块,并且第二存储块可以存储具有第二大小的第二数据组块。第一大小可以小于第二大小。第二数据组块的一部分可以是经错误校正的并且具有第一大小。
该方法可以进一步包括:存储与第一数据组块相关联的第一映射数据段以及与第二数据组块相关联的第二映射数据段;并且检查第二存储块的操作状态以确定是否读取在第二存储块中存储的第二数据组块。可以基于第二映射数据段从第二存储块读取第二数据组块。
可以基于第二存储块的保留时间和编程/擦除周期(P/E周期)来确定第二存储块的操作状态。
在第一存储块中包括的非易失性存储器单元中存储的位的数量可以小于在第二存储块中包括的非易失性存储器单元中存储的位的数量。
该方法可以进一步包括:在访问第二存储块之前,首先对第一存储块执行读取操作,其中第一存储块用作高速缓存存储器,并且第二存储块用作主存储装置。
该方法可以进一步包括:基于检测到的错误的量和用于校正在第二数据组块中检测到的错误的过程中的至少一个来确定第二数据组块的错误级别。复制第二数据组块的经错误校正的部分包括:当第二数据组块的错误级别大于或等于阈值时,将第二数据组块的一部分复制到第一存储块。
复制第二数据组块的一部分可以进一步包括:当错误级别小于阈值时,刷新第二存储块。
该方法可以进一步包括:基于第二存储块的操作状态、控制器的错误校正能力以及存储器系统的性能中的至少一个来确定阈值。
该方法可以进一步包括:在进入空闲状态之后,确定是否读取第二数据组块。
该方法可以进一步包括:将第一映射数据段单独地存储在第一存储块中,并且将第二映射数据段单独地存储在第二存储块中。
该方法可以进一步包括:将第一映射数据段和第二映射数据段存储在第三存储块中,该第三存储块不同于第一存储块和第二存储块中的任何一个。
在另一实施例中,一种可以有形地存储在非暂时性计算机可读介质上的计算机程序产品。该计算机程序产品可以包括使多核处理器装置执行以下过程的指令,其中多核处理器装置包括多个处理器内核,每个处理器内核包括处理器和将处理器联接到存储器装置的电路,该存储器装置包括第一存储块和第二存储块,第一存储块存储具有第一大小的第一数据组块并且第二存储块存储具有第二大小的第二数据组块:从第二存储块读取第二数据组块;当检测到至少一个错误时,校正第二数据组块中的至少一个错误;并且将第二数据组块的一部分复制到第一存储块。第二数据组块的一部分可以是经错误校正的并且具有第一大小。第一大小可以小于第二大小。
该计算机程序产品可以进一步包括:使多核处理器执行以下操作的指令:检查第二存储块的操作状态以确定是否读取第二存储块中的第二数据组块,并且基于在第二数据组块中检测到的错误的量和用于校正在第二数据组块中检测到的错误的过程中的至少一个,以基于第二数据组块的错误级别来将第二数据组块中的经错误校正的部分复制到另一存储块或者刷新第二数据组块。
在另一实施例中,一种控制器的操作方法,该控制器控制包括第一存储块和第二存储块的存储器装置,该操作方法可以包括:控制存储器装置以第二数据大小为单位从第二存储块读取多条数据;对所读取的数据条中的一个或多个进行错误校正;并且控制存储器装置以第一数据大小为单位将经错误校正的数据条存储到第一存储块中,其中相比于第二存储块,第一存储块由更小存储容量的存储器单元配置,并且其中第一数据大小小于第二数据大小。
附图说明
本文中的描述参考了附图,其中在整个附图中,相同的附图标记指代相同的部件。
图1示出根据本公开的实施例的存储器系统;
图2示出根据本公开的实施例的数据处理系统;
图3示出根据本公开的实施例的存储器系统;
图4示出根据本公开的实施例的在存储器装置中存储的数据组块和映射数据段;
图5描述根据本公开的实施例的操作存储器系统的方法的第一示例;
图6示出基于数据保留时间来保持、保护或复制在存储器装置中存储的数据组块的过程;
图7示出根据本公开的实施例的操作存储器系统的方法的第二示例;
图8描述存储器装置的数据保留时间和耐久性;
图9示出根据本公开的实施例的操作存储器系统的方法的第三示例;
图10示出如何确定通过读取操作访问的数据组块中的错误级别的示例;
图11示出用于刷新存储器装置中的非易失性存储器单元的操作的示例。
具体实施方式
下面参照附图描述本公开的各个实施例。然而,本公开的元件和特征可以不同地被配置或布置以形成其它实施例,其它实施例可以是任何所公开的实施例的变型。
在本公开中,对“一个实施例”、“示例性实施例”、“实施例”、“另一实施例”、“一些实施例”、“各个实施例”、“其他实施例”、“可选实施例”等中包括的各种特征(例如,元件、结构、模块、组件、步骤、操作、特性等)的引用旨在表示本公开的一个或多个实施例中包括任何这样的特征,但是可以或可能不一定在相同的实施例中进行组合。
在本公开中,术语“包含”、“包含有”、“包括”和“包括有”是开放式的。如在本文中所使用的,这些术语指定存在所陈述元件/组件,并且不排除存在或添加一个或多个其它元件/组件。
在本公开中,可以将各种单元、电路或其他组件描述或要求为“被配置为”执行一个或多个任务。在这样的语境中,“被配置为”用于通过指示块/单元/电路/组件包括在操作期间执行一个或多个任务的结构(例如,电路)来表示结构。因此,即使当指定的块/单元/电路/组件当前不操作(例如,未接通)时,也可以说该块/单元/电路/组件被配置为执行任务。与“被配置为”一起使用的块/单元/电路/组件包括硬件,例如电路、存储可运行的程序指令以实现操作的存储器等。记载块/单元/电路/组件“被配置为”执行一个或多个任务显然旨在该块/单元/电路/组件的清楚性。此外,“被配置为”可以包括由软件和/或固件(例如,运行软件的FPGA或通用处理器)操纵,以能够执行所讨论的(多个)任务的方式进行操作的通用结构(例如,通用电路)。“被配置为”还可以包括使制造过程(例如,半导体制造设施)适应于制造适于实现或执行一个或多个任务的装置(例如,集成电路)。
如本公开中所使用的,术语“电路”指代以下的任何和所有内容:(a)纯硬件电路实施方案(诸如仅以模拟和/或数字电路的实施方案)以及(b)电路和软件(和/或固件)的组合,诸如(如适用于):(i)(多个)处理器的组合,或(ii)处理器/软件(包括一起工作以使诸如移动电话或服务器的设备执行各种功能的数字信号处理器、软件和存储器)的部分,以及(c)需要软件或固件来操作的电路,诸如(多个)微处理器或(多个)微处理器的一部分,即使该软件或固件物理上不存在。“电路”的这种定义适用于本申请中、包括在任何权利要求中的该术语的所有使用。作为进一步的示例,如在本申请中所使用的,术语“电路”还涵盖仅处理器(或多个处理器)或处理器的一部分以及它的(或它们的)附带软件和/或固件的实施方案。例如,如果适用于特定的权利要求要素,术语“电路”还涵盖存储装置的集成电路。
如在本文中所使用的,这些术语“第一”、“第二”、“第三”等被用作它们之后的名词的标签,并且不表示任何类型的排序(例如,空间、时间、逻辑等)。术语“第一”和“第二”不一定表示第一值必须写在第二值之前。进一步地,尽管在本文中这些术语可以用于标识各种元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另外具有相同或相似名称的另一个元件区分开。例如,可以将第一电路与第二电路区分开。
进一步地,术语“基于”用于描述影响确定结果的一个或多个因素。该术语不排除可影响确定结果的其它因素。也就是说,确定结果可仅基于那些因素或至少部分地基于那些因素。考虑短语“基于B确定A”。尽管在这种情况下,B是影响A的确定结果的因素,但是这种短语不能排除A的确定结果也基于C。在其他情况下,可以仅基于B来确定A。
下面参照附图描述了本公开的实施例,其中相同的附图标记表示相同的元件。
图1示出根据本公开的实施例的存储器系统。
参照图1,存储器系统110可以包括存储器装置150和控制器130。存储器系统110中的存储器装置150和控制器130可以是物理上分开的元件。在这种情况下,存储器装置150和控制器130可以经由可包括通道和/或通路的至少一个数据路径连接。
在另一实施例中,存储器装置150和控制器130可以物理地集成,但是在功能上分开。进一步地,根据实施例,存储器装置150和控制器130可以利用单个芯片或多个芯片来实施。
存储器装置150可以包括多个存储块60,示出了多个存储块60中的两个存储块62、66。存储块60中的每一个可以包括一组非易失性存储器单元,可通过单次擦除操作一起擦除一组非易失性存储器单元中的数据。尽管未示出,但是每个存储块可以包括页面,其中页面是在单次编程操作期间一起存储数据或者在单次读取操作期间一起输出数据的一组非易失性存储器单元。每个存储块可以包括多个页面。
根据实施例,在多个存储块60之中,存储块62可以是第一高速缓存存储块。例如,包括多个非易失性存储器单元的第一高速缓存存储块62可以用于支持快速的数据输入/输出操作,并且/或者减少或减轻由于存储器系统110中的组件之间的操作速度的差异而导致的瓶颈。第二存储块66可以用于存储从外部源输入的数据。为了向存储器装置150提供增加的存储容量以适应用户的需求,第二存储块66可以包括能够存储多位数据的非易失性存储器单元。例如,将第一高速缓存存储块62作为临时存储数据的高速缓存存储器,而将第二存储块66用作主存储装置。
根据实施例,相比于第二存储块66,第一高速缓存存储块62可以以更高的速度进行操作以存储或输出数据。另外,相比于将数据存储在第二存储块66中或从第二存储块66删除数据,可以将数据存储在第一高速缓存存储块62中或从第一高速缓存存储块62删除数据更多次。因此,相比于第二存储块66中包括的非易失性存储器单元,第一高速缓存存储块62中包括的非易失性存储器单元可以存储更少量的数据(例如,具有更少数量的位的数据)。进一步地,通过单次编程操作或单次读取操作而输入或输出的数据的大小可以不同。与第一高速缓存存储块62相比,从第二存储块66输出/输入到第二存储块66的数据大小可以更大。
多个存储块60中的每一个可以包括从外部装置传输并存储在存储器装置150中的用户数据组块以及与用户数据组块相关联的、用于内部操作的元数据组块。例如,元数据组块可以包括映射信息以及与存储器装置150的操作状态有关的信息。此处,映射信息包括将外部装置使用的逻辑地址映射到在存储器装置150中使用的物理地址的数据。为了在多个存储块60的每一个中存储更多的用户数据组块,存储器系统110可以减小元数据组块的大小。进一步地,与在第一高速缓存存储块62中存储的映射信息相对应的用户数据组块的大小可以不同于与在第二存储块66中存储的映射信息相对应的用户数据组块的大小。例如,与第一高速缓存存储块62的映射信息相关联的用户数据组块的大小可小于与第二存储块66的映射信息相对应的用户数据组块的大小。下面参照图4描述与映射信息相关联的用户数据组块的大小。
尽管在图1中未示出,但是存储器装置150可以包括多个存储器平面或多个存储器管芯。根据实施例,存储器平面可以被认为是逻辑或物理分区,该逻辑或物理分区包括至少一个存储块60、能够控制包括多个非易失性存储器单元的阵列的驱动电路以及可以临时存储输入到非易失性存储器单元或从非易失性存储器单元输出的数据的缓冲器。
另外,根据实施例,存储器管芯可以包括至少一个存储器平面。存储器管芯可以被理解为在物理上可区分的衬底上实施的一组组件。每个存储器管芯可以通过数据路径连接到控制器130。每个存储器管芯可以包括与控制器130交换数据条和信号的接口。
根据实施例,存储器装置150可以包括至少一个存储块60、至少一个存储器平面或至少一个存储器管芯。根据存储器系统110的性能,图1所示的存储器装置150的内部配置可以不同。因此,本发明不限于图1所示的内部配置。
参照图1,存储器装置150可以包括能够将至少一个电压供应给存储块62、66的电压供应电路70。电压供应电路70可以向存储块60中的非易失性存储器单元供应读取电压Vrd、编程电压Vprog、通过电压Vpass或擦除电压Vers。例如,在读取存储块60中的所选择非易失性存储器单元中存储的数据的读取操作期间,电压供应电路70可以将读取电压Vrd供应给所选择非易失性存储器单元。在将数据存储在存储块62、66中包括的非易失性存储器单元中的编程操作期间,电压供应电路70可以将编程电压Vprog供应给所选择非易失性存储器单元。而且,在对所选择非易失性存储器单元执行的读取操作或编程操作期间,电压供应电路70可以将通过电压Vpass供应给未选择非易失性存储器单元。在擦除存储块62、66中的非易失性存储器单元中存储的数据的擦除操作期间,电压供应电路70可以将擦除电压Vers供应到存储块60中。
为了响应于外部装置(例如,主机102,参见图2-图3)的请求,将数据存储在包括非易失性存储器单元的存储空间中,存储器系统110可以执行将由主机102使用的文件系统与包括非易失性存储器单元的存储空间相关联的地址转换。例如,指示根据由主机102使用的文件系统的数据的地址可以被称为逻辑地址或逻辑块地址,而指示在包括非易失性存储器单元的存储空间中存储的数据的地址可以被称为物理地址或物理块地址。当主机102将逻辑地址与读取请求一起传输到存储器系统110时,存储器系统110搜索对应于该逻辑地址的物理地址,然后将在由该物理地址指示的位置中存储的数据传输到主机102。在该进程期间,可以由存储器系统110执行地址转换,以搜索与从主机102输入的逻辑地址相对应的物理地址。
响应于从外部装置输入的请求,控制器130可以执行数据输入/输出操作。例如,当控制器130响应于从外部装置输入的读取请求而执行读取操作时,在存储器装置150中的多个非易失性存储器单元中存储的数据被输出到控制器130。对于读取操作,控制器130可以执行关于从外部装置输入的逻辑地址的地址转换,然后经由收发器198将读取请求传输到与通过地址转换获得的物理地址相对应的存储器装置150。收发器198可以将读取请求传输到存储器装置150,并且接收从存储器装置150输出的数据。收发器198可以将从存储器装置150输出的数据存储在存储器144中。控制器130可以将在存储器144中存储的数据作为对应于读取请求的结果而输出到外部装置。
另外,控制器130可以通过收发器198将来自外部装置的、与写入请求一起输入的数据传输到存储器装置150。在将数据存储在存储器装置150中之后,控制器130可以将对写入请求的响应或应答传输到外部装置。控制器130可以更新将物理地址与和写入请求一起输入的逻辑地址相关联的映射数据,该物理地址指示存储器装置150中的存储数据的位置。
数据在存储器装置150中的非易失性存储器单元中存储的保留时间是有限的。随着与存储容量或输入/输出速度有关的存储器装置150的性能提高或非易失性存储器单元的大小减小,数据保留时间可能减小。数据的保留时间还可以基于存储器装置150的内部温度和耐用性而改变。另外,特定数据的保留时间可以根据数据在存储器装置150中的存储位置、数据的值等而改变。这是因为将对应于数据的电子完全限制在非易失性存储器单元的浮栅中是非常困难的。下面参照图8描述数据的保留时间。
为了操作可靠性和数据安全性,控制器130可以估计存储器装置150中存储的数据的保留时间。而且,控制器130可以监测或检查存储器装置150中的非易失性存储器单元的耐用性。根据实施例,控制器130可以逐块地确定、跟踪、控制或管理保留时间和耐用性。
控制器130中包括的保留控制电路192可以收集存储器装置150的操作信息,并且确定或检查在存储器装置150中存储的数据的安全性。例如,保留控制电路192可以收集关于存储器装置150中的多个存储块60的操作信息(保留时间、P/E周期等)。保留控制电路192可以基于操作信息,在多个存储块60之中选择存储块。因此,可以选择数据安全性受到怀疑或存在问题的存储块。保留控制电路192可以通过收发器198从所选择存储块扫描或读取数据的至少一部分,并且将从存储块读取的数据存储在存储器144中。关于由保留控制电路192读取的数据,错误校正电路138可以检查在存储器144中存储的数据中是否存在错误。当错误校正电路138确定所读取数据中没有错误时,保留控制电路138可以读取在所选择存储块中存储的数据的另一部分。当在所读取数据中检测到错误时,错误校正电路138可以校正错误并恢复数据。当错误校正电路138指示基于在数据中检测到的错误而确定的错误级别时,保留控制电路192可以确定是将恢复的数据复制到另一存储块还是将数据保留在原位置。根据实施例,保留控制电路192可以刷新在原始位置中存储的数据。也就是说,保留控制电路138可以基于在数据中检测到的错误级别来确定用于保持和管理数据的方法。下面参照图10描述数据中的错误级别。
根据实施例,当保留控制电路192读取在所选择存储块中存储的数据组块时,可以根据与在存储块中存储的数据组块相关联的映射数据段,来确定控制器130可以一次(例如,作为单位)读取的数据组块的大小。例如,根据映射数据段,控制器130可从第二存储块66一次读取的数据组块的大小大于控制器130可从第一高速缓存存储块62一次读取的数据组块的大小。尽管可以分别逐页地从第一高速缓存存储块62和第二存储块66读取或编程第一用户数据组块和第二用户数据组块,但是单个第二映射数据段(L2P段)可以对应于或者相关联于在第二存储块66的多个页面中存储的多个数据组块。可在控制器130从第二存储块66一次读取的数据组块的一部分中,但不是全部中检测到错误。例如,在数据组块之中的至少一个数据组块中发生错误。如果即使当在数据组块的一部分,但不是全部中检测到错误时,也将所读取的数据组块全部复制到存储器装置150中的另一位置,则这种操作会显著增加存储器装置150的用于确保数据保护或数据安全性的资源消耗。进一步地,在不考虑由外部装置请求的数据输入/输出操作的情况下,将大量数据复制到存储器装置150中的另一位置的操作可能需要用于读取或编程操作的较宽(或较长)余量(例如,操作定时余量),该余量通常与数据组块的大小成比例,这增加了存储器系统110的开销。
然而,在实施例中,保留控制电路192可以仅将在所读取数据中的检测到错误的一些部分而不是全部复制到第一高速缓存存储块62。例如,即使控制器130可从第二存储块66一次读取的读取数据的大小是8MB或216MB,但是从8MB或216MB的读取数据中的8KB或16KB的数据组块检测到错误,在校正了8KB或16KB的数据组块中检测到的错误之后,保留控制电路192可以仅将具有8KB或16KB大小的数据组块复制到第一高速缓存存储块62。可以根据与在第一高速缓存存储块62中存储的数据组块相关联的映射数据段来确定由保留控制电路192复制到第一高速缓存存储块62的数据组块的大小。为了数据安全性或数据保护,保留控制电路192不必将控制器130从第二存储块66一次读取的所有8MB或216MB的读取数据复制到另一存储块(诸如,第一高速缓存存储块62)。而是,保留控制电路192仅将8MB或216MB的读取数据中的8KB或16KB的数据组块复制到第一高速缓存存储块62。在当仅将数据组块的一些而非全部复制到第一高速缓存存储块62中的情况下,可以减少关于没有错误的数据的一些部分的编程操作,从而减少存储器系统110的开销并且降低存储器装置150的耐用性劣化(即,避免存储器装置150中的P/E周期的增加)。
根据实施例,与在存储块中存储的数据组块相关联的映射数据段可以存储在与存储数据组块相同的存储块中。在另一实施例中,可以将映射数据段存储在可与存储数据组块的存储块区分开的另一存储块中。
在下文中,参照图2和图3,详细描述由存储器系统110执行的一些操作。
参照图2,描述了根据本公开的实施例的数据处理系统100。参照图2,数据处理系统100可以包括与存储器系统110接合或可操作地联接到存储器系统110的主机102。
例如,主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的便携式电子装置,或者诸如台式计算机、游戏机、电视(TV)、投影仪等的非便携式电子装置。
主机102还包括通常可以管理和控制在主机102中执行的功能和操作的至少一个操作系统(OS)。OS可以提供与存储器系统110接合的主机102与存储器系统110的用户之间的互操作性。OS可以支持对应于用户的请求的功能和操作。作为示例而非限制,根据主机102的移动性,可将OS分类为通用操作系统和移动操作系统。根据系统要求或用户环境,可以将通用操作系统分为个人操作系统和企业操作系统。企业操作系统可以专门用于获得和支持高性能计算。移动操作系统可以倾向于支持用于移动性的服务或功能(例如,省电功能)。主机102可以包括多个操作系统。对应于用户的请求,主机102可以运行与存储器系统110联接的多个操作系统。主机102可以将对应于用户的请求的多个命令传输到存储器系统110中,从而在存储器系统110内执行对应于命令的操作。
存储器系统110中的控制器130可以响应于从主机102输入的请求或命令来控制存储器装置150。例如,控制器130可以执行读取操作以将从存储器装置150读取的数据条提供到主机102,并且执行写入操作(或编程操作)以将从主机102输入的数据条存储在存储器装置150中。为了执行数据输入/输出(I/O)操作,控制器130可以控制和管理用于数据读取、数据编程、数据擦除等的内部操作。
根据实施例,控制器130可以包括主机接口132、处理器134、错误校正电路138、电源管理单元(PMU)140、存储器接口142和存储器144。图2所示的控制器130中包括的组件可以根据与存储器系统110的操作或用途有关的实施方案、期望操作性能或者其他特性或考虑而变化。例如,根据主机接口的协议,可以利用可与主机102电联接的各种类型的存储装置中的任何一种来实施存储器系统110。合适的存储装置的非限制性示例包括固态驱动器(SSD)、嵌入式MMC(eMMC)的多媒体卡(MMC)、缩小尺寸的MMC(RS-MMC)、微型MMC、安全数字(SD)卡、迷你SD卡、微型SD卡、通用串行总线(USB)存储装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体(SM)卡、记忆棒等。如上所述,基于存储器系统110的实施方案,可以省略控制器130中的一个或多个组件或者可以添加其他组件。
主机102和存储器系统110可以包括用于在特定协议下传输和接收信号、数据条等的控制器或接口。例如,存储器系统110中的主机接口132可以被配置为将信号、数据条等传输到主机102和/或接收从主机102输出的信号、数据条等。
控制器130中的主机接口132可以接收从主机102输出的信号、命令(或请求)或数据条。也就是说,主机102和存储器系统110可以使用设定的协议来交换数据。由主机102和存储器系统110支持的、用于交换数据的协议或接口的示例包括:通用串行总线(USB)、多媒体卡(MMC)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、高速外围组件互连(PCIE)、串列SCSI(SAS)、串行高级技术附件(SATA)、移动工业处理器接口(MIPI)等。根据实施例,主机接口132是一种用于与主机102交换数据条的层,并且由称为主机接口层(HIL)的固件来实施或驱动。
电子集成驱动器(IDE)或高级技术附件(ATA)是用于传输和接收数据条的一种接口,并且可以使用包括40条并行连接的布线的电缆来支持主机102与存储器系统110之间的数据传输和接收。当多个存储器系统110连接到单个主机102时,可以通过使用多个存储器系统110连接到的位置或指拨开关(dip switch),将多个存储器系统110划分为主设备和从设备。设置为主设备的存储器系统110可以用作主存储器装置。IDE(ATA)已发展为快速-ATA、ATAPI和增强型IDE(EIDE)。
串行高级技术附件(SATA)是一种与由电子集成驱动器(IDE)装置使用的、各种ATA标准的并行数据通信接口兼容的串行数据通信接口。可以将IDE接口中的40条布线减少到SATA接口中的6条布线。例如,用于IDE的40个并行信号可以被转换为用于SATA的6个串行信号,以在彼此之间传输。由于SATA具有更快的数据传输和接收速率以及在主机102中的用于数据传输和接收的较少资源消耗,所以SATA已被广泛使用。SATA可以支持将多达30个外部装置连接到主机102中包括的单个收发器。另外,SATA可以支持热插拔(hot plug),该热插拔允许即使在主机102和另一装置之间正在执行数据通信时,也可将外部装置附接到主机102或将外部装置与主机102分离。因此,即使当主机102接通电源时,存储器系统110也可以像通用串行总线(USB)支持的装置那样,作为附加装置被连接或断开。例如,在具有eSATA端口的主机102中,存储器系统110可以像外部硬盘一样自由地被分离。
小型计算机系统接口(SCSI)是一种用于在计算机、服务器和/或其它外围装置之间进行连接的串行数据通信接口。与诸如IDE和SATA的其它接口相比,SCSI可以提供较高的传输速度。在SCSI中,主机102和至少一个外围装置(例如,存储器系统110)串联连接,但是可以通过并行数据通信来执行主机102和每个外围装置之间的数据传输和接收。在SCSI中,很容易将诸如存储器系统110的装置连接到主机102或与主机102断开。SCSI可以支持将15个其它装置连接到主机102中包括的单个收发器。
串列SCSI(SAS)可以被理解为SCSI的串行数据通信版本。在SAS中,不仅主机102和多个外围装置串联连接,而且主机102和每个外围装置之间的数据传输和接收可以以串行数据通信方案来执行。SAS可以通过串行电缆,而不是并行电缆来支持主机102和外围装置之间的连接,从而容易地使用SAS管理设备,并且增强或提高操作可靠性和通信性能。SAS可以支持将八个外部装置连接到主机102中包括的单个收发器。
高速非易失性存储器(NVMe)是一种至少基于高速外围组件互连(PCIe)的接口,该高速外围组件互连(PCIe)被设计为提高配备有非易失性存储器系统110的主机102、服务器、计算装置等的性能和设计灵活性。此处,PCIe可以使用插槽或专用电缆来连接诸如计算装置的主机102和诸如外围装置的存储器系统110。例如,PCIe可以使用多个引脚(例如,18个引脚、32个引脚、49个引脚、82个引脚等)和至少一条布线(例如,x1、x4、x8、x16等)以实现每秒数百MB以上(例如250MB/s、500MB/s、985MB/s、1969MB/s等)的高速数据通信。根据实施例,PCIe方案可以实现每秒数十至数百千兆位(Giga bits)的带宽。使用NVMe的系统可以最大程度地利用诸如SSD的非易失性存储器系统110的操作速度,其中非易失性存储器系统110以比硬盘更高的速度进行操作。
根据实施例,主机102和存储器系统110可以通过通用串行总线(USB)连接。通用串行总线(USB)是一种可扩展的、可热插式即插即用的串行接口,并且可以在主机102和诸如以下的外围装置之间提供经济高效的标准连接:键盘、鼠标、操纵杆、打印机、扫描仪、存储装置、调制解调器、摄像机等。诸如存储器系统110的多个外围装置可以联接到主机102中包括的单个收发器。
参照图2,错误校正电路138可以对待在存储器装置150中处理并且从存储器装置150输出的数据的错误位进行校正,错误校正电路138可以包括错误校正码(ECC)编码器和ECC解码器。此处,ECC编码器可以对待编程到存储器装置150中的数据执行错误校正编码,以生成添加奇偶校验位的经编码数据,并且将经编码数据存储在存储器装置150中。当控制器130读取存储器装置150中存储的数据时,ECC解码器可以检测和校正从存储器装置150读取的数据中包含的错误。换言之,在对从存储器装置150读取的数据执行错误校正解码之后,错误校正电路138可以确定错误校正解码是否成功并且输出指令信号(例如,校正成功信号或校正失败信号)。错误校正电路138可以使用在ECC编码过程中生成的奇偶校验位来校正所读取数据中的错误位。当错误位的数量大于或等于可校正错误位的阈值数量时,错误校正电路138可以不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
根据实施例,错误校正电路138可以基于诸如以下的编码调制来执行错误校正操作:低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(BCH)码、turbo码、里德-所罗门(RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)、分组编码调制(BCM)等。错误校正电路138可以包括基于上述代码中的至少一种来执行错误校正操作的任何和所有电路、模块、系统和/或装置。
例如,ECC解码器可以对从存储器装置150传输的数据执行硬判决解码和/或软判决解码。此处,硬判决解码可以被理解为针对错误校正而在广义上分类的两种方法(即,硬判决解码和软判决解码)中的一种。硬判决解码可以包括通过以下方式来校正错误的操作:将从存储器装置150中的非易失性存储器单元读取的数字数据的每个位或每条数字数据读取为“0”或“1”,并且基于已知的距离指示器进行校正。因为硬判决解码处置二进制逻辑信号,所以执行这种解码的电路或算法的设计和/或配置可以较为简单,并且处理速度可以比软判决解码更快。
软判决解码可以通过两个或更多个量化值(例如,多位数据、近似值、模拟值等)来量化存储器装置150中的非易失性存储器单元的阈值电压,以基于两个或更多个量化值来校正错误。控制器130可以从存储器装置150中的多个非易失性存储器单元接收两个或更多个量化值,然后基于通过将量化值表示为诸如条件概率或可能性的信息的组合而生成的信息来执行解码。
根据实施例,在针对软判决解码而设计的方法之中,ECC解码器可以使用低密度奇偶校验和生成器矩阵(LDPC-GM)码。此处,低密度奇偶校验(LDPC)码使用一种算法,该算法可以根据可靠性以若干位从存储器装置150读取数据的值,而不是像硬判决解码那样简单地读取数据1或0,并且通过消息交换来迭代地重复该过程以提高值的可靠性,然后最终将位确定为1或0。例如,使用LDPC码的解码算法可以被理解为概率解码。在硬判决解码中,从非易失性存储器单元输出的值被编码为0或1。与硬判决解码相比,软判决解码可以基于随机信息来确定在非易失性存储器单元中存储的值。关于位翻转,其中位翻转可被认为是在存储器装置150中可能出现的错误,软判决解码可以提高校正错误和恢复数据的可能性,以及提供经校正数据的可靠性和稳定性。LDPC-GM码可以具有内部LDGM码可以与高速LDPC码串联的方案。
根据实施例,在针对软判决解码而设计的方法之中,ECC解码器可以使用已知的低密度奇偶校验卷积码(LDPC-CC)。此处,LDPC-CC可以采用基于可变块长度和移位寄存器的线性时间编码和管线解码。
根据实施例,在针对软判决解码而设计的方法之中,ECC解码器可以使用对数似然比Turbo码(LLR-TC)。此处,对数似然比(LLR)可以被计算为非线性函数,以获得采样值与理想值之间的距离。另外,Turbo码(TC)可以包括二维或三维的简单码(例如,汉明码),并且在行方向和列方向上重复解码以提高值的可靠性。
电源管理单元(PMU)140可以控制控制器130中提供的电力。PMU 140可以监测供应给存储器系统110的电力(例如,供应给控制器130的电压),并且将电力提供给控制器130中的组件。当供应给存储器系统110的电力不稳定时,PMU 140不仅可以检测接通电源或断开电源,还可以生成触发信号,以使存储器系统110能够紧急备份当前状态。根据实施例,PMU140可以包括能够累积可以在紧急情况下使用的电力的装置或组件。
存储器接口142可以用作用于处置在控制器130和存储器装置150之间传输的命令和数据的接口,以允许控制器130响应于从主机102输入的命令或请求而控制存储器装置150。在当存储器装置150是闪速存储器时的情况下,存储器接口142可以在处理器134的控制下生成用于存储器装置150的控制信号,并且可以处理输入到存储器装置150或从存储器装置150输出的数据。例如,当存储器装置150包括NAND闪速存储器时,存储器接口142包括NAND闪存控制器(NFC)。存储器接口142可以提供用于处置控制器130和存储器装置150之间的命令和数据的接口。根据实施例,存储器接口142可以通过称为闪存接口层(FIL)的固件来实现或由其驱动,作为与存储器装置150交换数据的组件。
根据实施例,存储器接口142可以支持开放式NAND闪存接口(ONFi)、Toggle模式等,以用于与存储器装置150进行数据输入/输出。例如,ONFi可以使用数据路径(例如,通道、通路等),该数据路径包括至少一条能够支持以8位或16位数据为单位进行双向传输和接收的信号线。控制器130与存储器装置150之间的数据通信可以通过关于异步单倍数据速率(SDR)、同步双倍数据速率(DDR)和Toggle双数据速率(DDR)的至少一个接口来实施。
存储器144可以是存储器系统110或控制器130中的工作存储器,并且存储针对存储器系统110和控制器130中的操作而接收或传递的临时数据或事务数据。例如,在响应于来自主机102的请求而将从存储器装置150输出的读取数据条输出到主机102之前,存储器144可以临时存储该读取数据条。另外,控制器130可以在将从主机102输入的写入数据条编程到存储器装置150之前,将该写入数据条临时存储在存储器144中。当控制器130控制存储器装置150的诸如数据读取、数据写入、数据编程、数据擦除等的操作时,可以将在存储器系统110的控制器130和存储器装置150之间传输或生成的数据条存储在存储器144中。除了读取数据条或写入数据条之外,存储器144还可以存储用于执行在主机102和存储器装置150之间输入或输出数据条的操作的信息(例如,映射数据、读取请求、编程请求等)。根据实施例,存储器144可以包括命令队列、程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。
在实施例中,存储器144可以利用易失性存储器来实施。例如,存储器144可以利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或这两者来实施。尽管图1和图2示出了例如存储器144设置在控制器130内,但是本发明不限于该布置。在另一实施例中,存储器144可以设置在控制器130的外部。例如,存储器144可以由具有在存储器144和控制器130之间传送数据和/或信号的存储器接口的外部易失性存储器来实现。
处理器134可以控制存储器系统110的全部操作。例如,处理器134可以响应于从主机102输入的写入请求或读取请求而控制对存储器装置150的编程操作或读取操作。根据实施例,处理器134可以运行固件以控制对存储器系统110的编程操作或读取操作。在本文中,固件可以称为闪存转换层(FTL)。下面参照图3详细描述了FTL的示例。根据实施例,处理器134可以利用微处理器或中央处理单元(CPU)来实施。
根据实施例,存储器系统110可以利用至少一个多核处理器来实施。多核处理器是一种集成了被视为不同的处理区域的两个或更多个内核的电路或芯片。例如,当多核处理器中的多个内核独立地驱动或运行多个闪存转换层(FTL)时,可以提高存储器系统110的数据输入/输出速度(或性能)。根据实施例,可以通过多核处理器中的不同内核来独立地执行存储器系统110中的数据输入/输出(I/O)操作。
控制器130中的处理器134可以执行与从主机102输入的请求或命令相对应的操作。进一步地,存储器系统110可以独立于从诸如主机102的外部装置输入的命令或请求进行操作。通常,控制器130响应于从主机102输入的请求或命令而执行的操作可以被视为前台操作,而由控制器130独立地(例如,在没有从主机102输入的请求或命令的情况下)执行的操作可以被视为后台操作。控制器130可以在存储器装置150中执行针对数据条的读取、写入或编程、擦除等的前台操作或后台操作。另外,与作为从主机102传输的设置命令的设置参数命令或设置特征命令相对应的参数设置操作可以被视为前台操作。作为后台操作,控制器130可以执行垃圾收集(GC)、损耗均衡(WL)、坏块管理等,其中坏块管理用于识别和处理存储器装置150中的多个存储块152、154、156中的坏块。
根据实施例,基本相似的操作可以作为前台操作和后台操作两者来执行。例如,当存储器系统110响应于从主机102输入的请求或命令而执行垃圾收集(例如,手动GC)时,垃圾收集可以被视为前台操作。然而,当存储器系统110独立于主机102执行垃圾收集(例如,自动GC)时,垃圾收集可以被视为后台操作。
当存储器装置150具有包括非易失性存储器单元的多个管芯(或多个芯片)时,控制器130可以被配置为执行关于从主机102输入的多个请求或命令的并行处理,以提高存储器系统110的性能。例如,所传输的请求或命令可以被分配给存储器装置150中的多个管芯或多个芯片,并且同时进行处理。控制器130中的存储器接口142可以通过至少一个通道和至少一个通路来连接到存储器装置150中的多个管芯或芯片。当控制器130响应于与包括非易失性存储器单元的多个页面相关联的请求或命令,通过每个通道或每个通路将数据条分布和存储在多个管芯中时,可以同时或并行执行与该请求或命令相对应的多个操作。这种处理方法或方案可以被视为交错方法。因为利用交错方法进行操作的存储器系统110的数据输入/输出速度可以比未利用交错方法进行操作的存储器系统110的数据输入/输出速度更快,所以可以提高存储器系统110的数据I/O性能。
作为示例而非限制,控制器130可以识别关于与存储器装置150中的多个存储器管芯相关联的多个通道(或通路)中的每个的状态。对于每个通道/通路,控制器130可以将其确定为具有忙碌状态、就绪状态、活动状态、空闲状态、正常状态和/或异常状态。由控制器对通过哪个通道或通路来传递指令(和/或数据)的确定可以与物理块地址相关联,例如指令(和/或数据)被传递到哪个(哪些)管芯中。对于这种确定,控制器130可以参考从存储器装置150传递的描述符。描述符可以包括描述关于存储器装置150的特性等的块参数或页面参数,描述符是具有设定格式或结构的数据。例如,描述符可以包括装置描述符、配置描述符、单元描述符等。控制器130可以参考或使用描述符来确定经由哪个通道(哪些通道)或哪个通路(哪些通路)来交换指令或数据。
参照图2,存储器系统110中的存储器装置150可以包括多个存储块152、154、156。多个存储块152、154、156中的每一个包括多个非易失性存储器单元。根据实施例,存储块可以是一起被擦除的一组非易失性存储器单元。每个存储块152、154、156可以包括多个页面,页面是一起读取或编程的一组非易失性存储器单元。尽管在图2中未示出,但是每个存储块152、154、156可以具有三维堆叠结构以实现高集成度。进一步地,存储器装置150可以包括多个管芯,每个管芯包括多个平面,每个平面包括多个存储块。根据存储器系统110的性能或用途,存储器装置150的配置可以不同。多个存储块152、154、156可以被包括在图1所示的多个存储块60中。
在图2中示出的存储器装置150中,根据给定存储块的一个存储器单元中可以存储或代表的位的数量,多个存储块152、154、156可以是诸如以下的不同类型的存储块中的任意一种:单层单元(SLC)存储块、多层单元(MLC)存储块等。此处,SLC存储块包括由每个存储一位数据的存储器单元实施的多个页面。SLC存储块可以具有较高的数据I/O操作性能和较高的耐用性。MLC存储块包括由每个存储多位(例如,两位或更多位)数据的存储器单元实施的多个页面。与SLC存储块相比,在相同的空间内,MLC存储块可以具有更大的存储容量。在存储容量方面,MLC存储块可以被高度集成。在实施例中,存储器装置150可以利用诸如以下的MLC存储块来实施:双层单元(DLC)存储块、三层单元(TLC)存储块、四层单元(QLC)存储块或其组合。双层单元(DLC)存储块可以包括由每个能够存储2位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可以包括由每个能够存储3位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可以包括由每个能够存储4位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可以利用包括由每个能够存储5位或更多位数据的存储器单元实施的多个页面的块来实施。
根据实施例,控制器130可以将存储器装置150中的多层单元(MLC)存储块用作在一个存储器单元中存储一位数据的SLC存储块。多层单元(MLC)存储块的数据输入/输出速度可比SLC存储块的数据输入/输出速度慢。也就是说,当MLC存储块用作SLC存储块时,可以增加执行读取或编程操作的速度。当将多层单元(MLC)存储块用作SLC存储块时,控制器130可以利用多层单元(MLC)存储块的更快的数据输入/输出速度。例如,因为缓冲器可能需要较高的数据输入/输出速度来提高存储器系统110的性能,所以控制器130可以将MLC存储块用作缓冲器来临时存储数据条。
进一步地,根据实施例,控制器130可以将数据条多次地编程在多层单元(MLC)中,而无需对存储器装置150中的特定MLC存储块执行擦除操作。通常,非易失性存储器单元具有不支持数据重写的特点。然而,控制器130可以使用多层单元(MLC)可以存储多位数据的特点,以便将多条1位数据多次地编程到MLC中。对于MLC的重写操作,当将1位数据条编程到非易失性存储器单元中时,控制器130可以将编程次数存储为单独的操作信息。根据实施例,在将另一数据条重写到相同的非易失性存储器单元中之前,可以实施用于均匀地均衡非易失性存储器单元的阈值电压的操作。
在本公开的实施例中,存储器装置150可以被实现为诸如闪速存储器的非易失性存储器,例如,被实现为NAND闪速存储器、NOR闪速存储器等。可选地,存储器装置150可以由以下中的至少一种来实施:相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋注入磁性存储器(STT-RAM)和自旋转移力矩磁性随机存取存储器(STT-MRAM)等。
参照图3,描述根据本公开的另一实施例的存储器系统110中的控制器130。控制器130与主机102和存储器装置150协作。如图所示,控制器130包括闪存转换层(FTL)240以及图2的主机接口132、存储器接口142和存储器144。
尽管图3中未示出,但是根据实施例,图2中示出的ECC 138可以被包括在闪存转换层(FTL)240中。在另一实施例中,ECC 138可以被实施为被包括在控制器130中的或与控制器130相关联的分开的模块、电路、固件等。
主机接口132用于处置从主机102传输的命令、数据等。作为示例而非限制,主机接口132可以包括命令队列56、缓冲器管理器52和事件队列54。命令队列56可以顺序地存储从主机102接收的命令、数据等,并且以命令、数据等被存储的顺序将命令、数据等输出到缓冲器管理器52。缓冲器管理器52可以对从命令队列56接收的命令、数据等进行分类、管理或调整。事件队列54可以顺序地传输用于处理从缓冲器管理器52接收的命令、数据等的事件。
可以从主机102传输相同类型的多个命令或数据(例如,读取命令或写入命令),或者可以在由主机102将不同类型的命令和数据混合或打乱之后,将它们传输到存储器系统110。例如,可以将用于读取数据的多个命令(读取命令)传递到存储器系统110,或者可以将用于读取数据的命令(读取命令)和用于编程/写入数据的命令(写入命令)交替地传输到存储器系统110。主机接口132可以将从主机102传输的命令、数据等顺序地存储到命令队列56。此后,主机接口132可以根据已经从主机102接收的命令、数据等的类型来估计或预测控制器130将执行哪种内部操作。主机接口132可以至少基于命令、数据等的特性来确定它们的处理顺序和优先级。根据从主机102传输的命令、数据等的特性,主机接口132中的缓冲器管理器52可以被配置为确定缓冲器管理器52是否应将命令、数据等存储在存储器144中,或者确定缓冲器管理器52是否应将命令、数据等传递到闪存转换层(FTL)240中。事件队列54可以接收来自缓冲器管理器52的事件,这些事件将响应于从主机102传输的命令、数据等而被存储器系统110或控制器130内部地运行和处理,以便以接收的顺序将事件传递到闪存转换层(FTL)240。
根据实施例,图3所示的闪存转换层(FTL)240可以实施多线程方案以执行数据输入/输出(I/O)操作。可以通过控制器130中包括的使用多线程的多核处理器来实施多线程FTL。
根据实施例,闪存转换层(FTL)240可以包括主机请求管理器(HRM)46、映射管理器(MM)44、状态管理器42和块管理器48。主机请求管理器(HRM)46可以管理从事件队列54输入的事件。映射管理器(MM)44可以处置或控制映射数据。状态管理器42可以执行垃圾收集(GC)或损耗均衡(WL)。块管理器48可以对存储器装置150中的块运行命令或指令。状态管理器42可以包括图1所示的保留控制电路192。尽管图3中未示出,但是根据实施例,图1和图2中描述的错误校正电路138可以被包括在闪存转换层(FTL)240中。根据实施例,错误校正电路138可以实施为控制器130中的单独模块、电路或固件。
另外,根据实施例,闪存转换层(FTL)240可以包括图1中描述的保留控制电路192,存储器接口142可以包括图1中描述的收发器198。
作为示例而非限制,主机请求管理器(HRM)46可以根据从主机接口132传递的读取命令和编程命令以及事件,使用映射管理器(MM)44和块管理器48来处置或处理请求。主机请求管理器(HRM)46可以将查询请求发送到映射管理器(MM)44,以确定对应于与事件相关联的逻辑地址的物理地址。主机请求管理器(HRM)46可以将读取请求与物理地址一起发送到存储器接口142,以处理该读取请求(处置事件)。另一方面,主机请求管理器(HRM)46可以将编程请求(写入请求)发送到块管理器48,以将数据编程到存储器装置150中的特定空页面(没有数据的页面),然后可以将与编程请求相对应的映射更新请求传输到映射管理器(MM)44,以便更新属于用于将逻辑-物理地址彼此相互映射或相关联的信息的、与所编程的数据有关的项目或组块。
块管理器48可以将从主机请求管理器(HRM)46、映射管理器(MM)44和/或状态管理器42传递的编程请求转换为用于存储器装置150的闪存编程请求,以管理存储器装置150中的闪存块。为了最大化或增强存储器系统110(见图2)的编程或写入性能,块管理器48可以收集编程请求并将用于多平面和单触发(one-shot)编程操作的闪存编程请求发送到存储器接口142。在实施例中,块管理器48将若干闪存编程请求发送到存储器接口142,以增强或最大化多通道和多方向闪存控制器的并行处理。
另一方面,块管理器48可以被配置为根据有效页面的数量来管理存储器装置150中的块,当需要空闲块时,选择并擦除没有有效页面的块,并且当确定需要或期望执行垃圾收集时,选择包括最少数量的有效页面的块。状态管理器42可以执行垃圾收集以将有效数据移动到空块,并且擦除被移动了有效数据的(多个)块,使得块管理器48可以具有足够的空闲块(没有数据的空块)。当块管理器48将关于待擦除的块的信息提供到状态管理器42时,状态管理器42可以检查待擦除的块中的所有闪存页面以确定每个页面是否有效。例如,为了确定每个页面的有效性,状态管理器42可以识别每个页面的带外(OOB)区域中记录的逻辑地址。为了确定每个页面是否有效,状态管理器42可以将页面的物理地址与被映射到从查询请求获得的逻辑地址的物理地址进行比较。针对每个有效页面,状态管理器42将编程请求发送到块管理器48。当编程操作完成时,可以通过更新映射管理器44来更新映射表。
映射管理器44可以管理逻辑-物理映射表。映射管理器44可以处理由主机请求管理器(HRM)46或状态管理器42生成的、诸如查询、更新等的请求。映射管理器44可以将整个映射表存储在存储器装置150(例如,闪存/非易失性存储器)中,并且根据存储器144的存储容量来高速缓存映射条目。当在处理查询或更新请求的同时发生映射高速缓存未命中时,映射管理器44可以将读取请求发送到存储器接口142以加载存储器装置150中存储的相关映射表。当映射管理器44中的脏高速缓存块的数量超过某个阈值时,可以将编程请求发送到块管理器48,从而生成干净的高速缓存块,并且可以将脏映射表存储在存储器装置150中。
另一方面,当执行垃圾收集时,状态管理器42将(多个)有效页面复制到空闲块中,并且主机请求管理器(HRM)46可以对相同逻辑地址的页面编程最新版本的数据,并且即时地发出更新请求。当状态管理器42在(多个)有效页面的复制尚未正确完成的状态下请求映射更新时,映射管理器44可不执行映射表更新。这是因为如果状态管理器42请求映射更新并且稍后才完成有效页面复制时,发出的是具有旧物理信息的映射请求。仅当最新映射表仍指向旧物理地址的情况下,映射管理器44才可以执行映射更新操作以确保准确性。
图4示出根据本公开的实施例的在存储器装置中存储的数据组块和映射数据段。
参照图1至图4,存储器装置150中的多个存储块60可以包括第一高速缓存存储块62和第二存储块66。例如,第一高速缓存存储块62可以用作用于临时存储数据的高速缓存存储器,第二存储块66可以用作用于永久存储数据的主存储装置。尽管高速缓存存储器可以具有比主机102的操作速度更慢的操作速度,但是高速缓存存储器可以比用作主存储装置的第二存储块66更快地操作。可以将高速缓存存储器分配为加载或存储可以由主机102或控制器130频繁使用的应用程序、固件、数据、操作信息等。在实施例中,主机102或控制器130可以频繁地访问高速缓存存储器。另一方面,可以将包括第二存储块66的主存储装置分配为永久地或长时间地存储由主机102和控制器130生成或传输的数据。主机102或控制器130可以在访问主存储装置之前首先访问高速缓存存储器,并且主机102或控制器130可以使用具有比在主存储装置中存储的数据更高优先级的、在高速缓存存储器中存储的数据。
相比于第二存储块66,第一高速缓存存储块62可以请求更快的数据输入/输出。第一高速缓存存储块62可以存储第一用户数据组块以及与第一用户数据组块相关联的第一映射数据段,并且第二存储块66可以存储第二用户数据组块以及与第二用户数据组块相关联的第二映射数据段。当从第一高速缓存存储块62读取或编程到第一高速缓存存储块62的第一用户数据组块的大小小于从第二存储块66读取或编程到第二存储块66的第二用户数据组块的大小时,第一高速缓存存储块62的操作速度可以比第二存储块66的操作速度更快。因此,对应于第一映射数据段的第一用户数据组块的大小可以小于对应于第二映射数据段的第二用户数据组块的大小。即使可以分别逐页地从第一高速缓存存储块62和第二存储块66读取第一用户数据组块和第二用户数据组块或者可以将第一用户数据组块和第二用户数据组块分别逐页地编程到第一高速缓存存储块62和第二存储块66,但是单个第二映射数据段(L2P段)可对应于在第二存储块66的多个页面中存储的多个数据组块或与在第二存储块66的多个页面中存储的多个数据组块相关联。
根据实施例,第一映射数据段和第二映射数据段可以存储在第三存储块(未示出)中,该第三存储块可与第一高速缓存存储块62和第二存储块66区分开。
另一方面,根据实施例,相比于第二存储块66,可以请求第一高速缓存存储块62执行更快的数据输入/输出操作,因此第一高速缓存存储块62和第二存储块66可以具有不同的内部配置。例如,第一高速缓存存储块62可以包括单层存储器单元(SLC),而第二存储块66可以包括多层存储器单元(MLC)。如果第一高速缓存存储块62是单层单元(SLC)存储块,则在激活单个字线WL_a时,可以输出或输入具有一个页面大小的第一数据组块。当第一映射数据段对应于在单个页面中存储的第一数据组块时,可以在将第一数据组块存储在一个页面中之后,更新单个第一映射数据段。
例如,当第二存储块66是四层存储器单元(QLC)类型时,在激活单个字线WL_b同时,可以输出具有四个页面(4个页面)大小的第二用户数据组块。即使可以从第二存储块66逐页地读取或编程第二用户数据组块,单个第二映射数据段(L2P段)也可以对应于、相关联于在第二存储块66的多个页面中存储的多个数据组块。在第二存储块66中,第二映射数据段可以与对应于多个字线的数据相关联,以将更多的数据组块存储在第二存储块66中。当单个第二映射数据段对应于具有16个页面大小的第二用户数据组块(例如,在经由四条字线联接的四层存储器单元中存储的数据组块)时,可以在对第二用户数据组块进行编程之后,更新第二映射数据段。
如上所述,至少基于以下,一次编程(通过一次编程操作)的数据组块的大小可以不同:第一高速缓存存储块62和第二存储块66的内部配置;与在第一高速缓存存储块62和第二存储块66中存储的第一数据组块和第二数据组块相关联的第一映射数据段和第二映射数据段;或者,与从第一高速缓存存储块62或第二存储块66读取或编程到第一高速缓存存储块62或第二存储块66的数据组块相对应的字线的数量。
参照图1和图4,可以读取在由保留控制电路192选择的第二存储块66中存储的第二数据组块并且将其存储在存储器144中,该第二数据组块具有与单个第二映射数据段相对应的16个页面大小。错误校正电路138可以检查在具有16个页面大小的数据组块中是否存在错误。假设错误校正电路138在具有16个页面大小的第二数据组块的段,即一部分中检测到错误,并且该段(该部分)仅对应于一个页面,并且在第二用户数据组块的剩余的15个页面中未发现错误。错误校正电路138可以校正检测到的错误。当将具有16个页面大小的第二用户数据组块全部存储在存储器装置160中的另一第二存储块66中时,待编程在存储器装置150中的数据量较大。另一方面,在本公开的实施例中,由于第二用户数据组块的16个页面中的15个页面中没有错误,因此在第二存储块66中存储的15个页面的数据无需被改变或者复制到另一位置。可以仅将检测到并校正了错误的单个页面复制到第一高速缓存存储块62中。通过该过程,可以减小存储器系统110的写入放大因子(WAF)。可以减少由于复制整个数据组块的操作而导致的存储器系统110的开销。进一步地,可以减少或更缓慢地增加存储器装置150中的第二存储块66的编程/擦除周期(P/E周期)。因此,可以提高存储器装置150的耐用性或耐久性。
图5描述根据本公开的实施例的操作存储器系统的方法的第一示例。
参照图5,操作存储器系统110的方法可以包括选择存储块,例如图1所示的第二存储块66,以基于存储器装置中的所选择存储块的操作状态来检查数据安全性(342),确定在所选择存储块中存储的数据的错误级别(344),并且基于该错误级别,将经错误校正的数据存储在高速缓存存储块,例如图1所示的第一高速缓存存储块62中(346)。
参照图1至图5,控制器130可以检查第二存储块66的操作状态,以提高在存储器装置150中的第二存储块66中存储的数据的安全性。例如,控制器130可以检查每个第二存储块66的编程/擦除周期(P/E周期)和数据保留时间。控制器130使用与存储器装置150中的多个存储块60之中的每个第二存储块66相对应的编程/擦除周期和数据保留时间,来选择数据安全性相对较低的第二存储块66(342)。
在读取所选择第二存储块66中存储的数据之后,控制器130可以检查所读取数据是否包括错误(344)。参照图4,控制器130可以基于第二映射数据段来读取在第二存储块66中存储的第二用户数据组块,然后将所读取的第二用户数据组块存储在存储器144中。参照图1和图2,控制器130中的错误校正电路138可以检查在存储器144中存储的第二用户数据组块是否包括错误。根据实施例,控制器130可以基于在第二用户数据组块中检测到的错误,来将第二用户数据组块的错误级别确定为四种类型之一:不可校正的错误、高级别错误、非高级别错误以及没有错误。下面参照图10描述错误级别。
当确定第二用户数据组块的错误级别时,控制器130可以基于该错误级别将第二用户数据组块中的一些复制到另一位置(346)。根据实施例,为了提高第二用户数据组块的安全性,控制器130可以将经错误校正的数据编程到新位置(例如,第一高速缓存存储块62)或刷新原始存储经错误校正的数据的第二存储块66的多个存储器单元,而无需擦除操作。具体地,当将第二用户数据组块中的经错误校正的数据编程到新位置(例如,第一高速缓存存储块62或另一第二存储块66)时,控制器130可以根据第二用户数据组块中的、检测到错误的范围,来确定将全部第二用户数据组块还是仅将第二用户数据组块的一部分编程在新位置中。例如,在读取对应于16个页面的第二用户数据组块之后,当在数据的相对较大部分中,即10个页面中发现错误时,可以将与所有16个页面相对应的全部第二用户数据组块编程在主存储装置中的新的第二存储块66中,从而增加数据稳定性。另一方面,当在数据的相对较小部分中,即全部16个页面中的一个页面或两个页面中发现错误时,控制器130可以不编程全部第二用户数据组块。相反,控制器130可以仅将与检测到错误的一个或两个页面相对应的部分编程在第一高速缓存存储块62中,其中该第一高速缓存存储块62被指定为新位置。
根据实施例,在校正第二用户数据组块中的检测到的错误之后,控制器130可以响应于第二用户数据组块的错误级别,将全部第二用户数据组块复制到主存储装置中的新位置或将数据的一部分复制第一高速缓存存储块62中而不是主存储装置中。可以根据在第二用户数据组块中发现的错误级别和与待存储在第一高速缓存存储块62中的第一用户数据组块相对应的第一映射数据段,来设置确定控制器130是否将第二用户数据组块的一部分复制在第一高速缓存存储块62中的标准。例如,当在少于所读取的第二用户数据组块的20%中检测到并校正错误时,控制器130可以仅将经校正的部分复制到第一高速缓存存储块62中。相反地,当在超过第二用户数据组块的20%中发现并校正错误时,控制器130可以将全部第二用户数据组块复制到主存储装置中的另一第二存储块66中,以提高数据安全性或数据保护。进一步地,可以基于存储器系统110中的错误校正能力和存储器装置150中的第二存储块66的操作状态(例如,数据保留时间、耐用性/耐久性等),来设置标准(即,所读取的第二用户数据组块的错误级别)。存储器系统110可以响应于存储块的编程/擦除周期(P/E周期),来不定期地或动态地改变标准,其中存储块的编程/擦除周期(P/E周期),是一种关于存储器装置150的操作信息。再例如,当映射数据段可与待存储在高速缓存存储块中的、具有两个页面大小的数据组块相关联时,在校正了在第二用户数据组块的单个页面处检测到的错误之后,控制器130可以选择第二用户数据组块的对应于两个页面的部分。第二用户数据组块的、包括单个页面的经错误校正数据的该部分可以作为数据组块而被编程在高速缓存存储块中。因此,可以基于高速缓存存储块中的映射数据段的配置,来设置标准(例如,待存储在第一高速缓存存储块62中的、与第一映射数据段相对应的第一数据组块的大小)。
图6示出基于数据保留时间来保持、保护或复制在存储器装置中存储的数据组块的过程。
参照图6,假设图1所示的存储器装置150中包括多个第二存储块66(例如,QLC块)和多个第一高速缓存存储块62(例如,SLC块)。第一高速缓存存储块62的第一映射数据段(例如,L2P段)可以将逻辑地址与第一用户数据组块的物理地址相关联,其中第一用户数据组块小于第二存储块66中的第二用户数据组块。第二存储块66的第二映射数据段可以使逻辑地址与第二存储块66中存储的、由16个页面配置的第二用户数据组块的物理地址相关联,并且第一高速缓存存储块62的第一映射数据段可以使逻辑地址与第一高速缓存存储块62中存储的、由单个页面配置的第一用户数据组块的物理地址相关联。此处,第二存储块66用作主存储装置,而第一高速缓存存储块62用作高速缓存存储块。即使可以分别逐页地将第一用户数据组块和第二用户数据组块编程在第一高速缓存存储块62和第二存储块66中,与在第二存储块66中存储的第二用户数据组块相关联的单个第二映射数据段(L2P段)也可以对应于被编程在配置第二存储块66的多个页面中的数据组块。控制器130可以顺序地读取在第二存储块66的多个页面中存储的第二用户数据组块中的、关闭的数据组块,并且检查与单个第二映射数据段(L2P段)相对应的、在多个页面中存储的第二用户数据组块中是否存在错误。在从多个页面读取的第二用户数据组块的一部分中可能已经发生超过阈值的错误,因此存储器系统110执行用于数据安全性或保护的操作,第二用户数据组块的该部分可具有多个页面之中的单个页面的大小。
在实施例中,控制器130可以不将在第二存储块66中存储的全部第二用户数据组块复制到另一第二存储块66,但是可以仅将第二用户数据组块中的、具有单个页面大小的经错误校正的部分(即,第二用户数据组块的该部分)作为第一用户数据组块而复制到第一高速缓存存储块62。通过仅将第二用户数据组块的、检测到错误的一部分复制到第一高速缓存存储块62,而不是复制全部第二用户数据组块,可以减小存储器系统110的写入放大因子(WAF)。可以减少在将数据复制到另一位置的同时在存储器系统110中产生的开销。进一步地,因为可推迟对第二存储块66的垃圾收集,所以可以避免增加存储器装置150中的第二存储块66的编程/擦除周期(P/E周期)。因此,可以提高存储器装置150的耐久性。
图7示出根据本公开的实施例的操作存储器系统110的方法的第二示例。
参照图7,操作存储器系统110的方法可以包括:确定存储器系统110是否处于空闲状态(412);检查第二存储块66的数据保留时间和编程/擦除周期(P/E周期)(414);基于数据保留时间(保留时间)和编程/擦除周期(P/E周期)来选择用于读取操作的第二存储块66(416);并且,从所选择第二存储块66读取第二用户数据组块并且执行用于数据保护的保留刷新或高速缓存编程(418)。
当从外部装置(例如,图2至图3所示的主机102)接收到数据输入/输出操作的请求时,存储器系统110可以执行对应于该请求的操作。如果没有来自外部装置的请求,则存储器系统110可以进入空闲状态。在存储器系统110进入空闲状态之后,存储器系统110可以执行后台操作以提高存储器系统110的操作性能(412)。作为一种后台操作,存储器系统110可以检查在第二存储块66中存储的第二用户数据组块中是否存在错误,以提高第二用户数据组块的保护或安全性。
为了使控制器130保持或提高在第二存储块66中存储的第二用户数据组块的安全性,可以检查第二存储块66的操作状态(414)。例如,第二存储块66的操作状态可以由数据保留时间、编程/擦除周期(P/E周期)等来表示。存储器装置150可以包括图1所示的多个第二存储块66。当控制器130顺序地读取和检查所有的多个第二存储块66中存储的第二用户数据组块时,操作效率可能降低。存储器装置150中的存储块可以具有正在编程数据的开放状态、所有页面被编程有数据的关闭状态以及删除了所有数据的擦除状态。为了保持或提高第二用户数据组块的安全性,控制器130可以基于处于关闭状态的时间长度,来在处于关闭状态的第二存储块66之中,首先选择具有最长数据保留时间的第二存储块66(416)。
根据实施例,存储器装置150中的多个第二存储块66可以具有不同的编程/擦除周期(P/E周期)。控制器130可以执行损耗均衡操作,以减少每个第二存储块66的编程/擦除周期(P/E周期)之间的差的增加,其中该编程/擦除周期(P/E周期)可以用于指示每个第二存储块66的耐久性。然而,第二存储块66的编程/擦除周期(P/E周期)可能不相同。例如,当处于关闭状态的多个第二存储块66的数据保留时间相同或基本相同(无显著差异)时,控制器130可以在处于关闭状态的多个第二存储块66之中选择具有较大编程/擦除周期(P/E周期)的第二存储块66(416)。
在控制器130选择第二存储块66以用于检查或监测数据安全性之后,可以读取在所选择第二存储块66中存储的第二用户数据组块(418)。例如,可以基于与在所选择第二存储块66中存储的第二用户数据组块相关联的映射数据段,来顺序地读取所选择第二存储块66中的第二用户数据组块。映射数据段可以包括图4所示的、与在第二存储块66中存储的至少一个第二用户数据组块相关联的一个或多个第二映射数据段。在基于第二映射数据段来读取在所选择第二存储块66中存储的第二用户数据组块之后,控制器130可以检查在所读取的第二用户数据组块中是否存在错误,并且确定所读取的第二用户数据组块的错误级别。响应于所读取的第二用户数据组块的错误级别,控制器130可以确定是否刷新存储该第二用户数据组块的所选择第二存储块66中的多个存储器单元,或者是否将经错误校正的数据组块复制或编程到第一高速缓存存储块62中(418)。
图8以图表形式示出相对于存储器装置的耐久性的数据保留时间。特别地,图8示出存储器装置150中的第二存储块66的耐久性与数据保留时间之间的关系。将图8所示的数值作为示例给出以帮助理解。在实施例中,该值可以根据特定存储块的内部配置和操作状态而改变。此处,耐久性和数据保留时间可以用作关于存储器装置150的相关性能指标。
参照图8,当存储器装置150的P/E周期为0至3000时,数据保留时间可以是若干年(X年)。也就是说,在存储器装置150中存储的数据组块可被保持若干年(X年),直到存储器装置150的编程/擦除周期(P/E周期)达到大约3000为止。例如,对于约1、3或5年的数据保留时间,存储器装置150可以安全地保持数据组块。
在存储器装置150的编程/擦除周期(P/E周期)在3000至8000的范围内时,在存储器装置150中存储的数据组块的数据保留时间可以是若干月(X月)。例如,在约1、3或5个月的数据保留时间期间,可以安全地保持在存储器装置150中存储的数据组块。
当存储器装置150的编程/擦除周期(P/E周期)在8000至20000的范围内时,在存储器装置150中存储的数据组块的数据保留时间可以是若干周(X周)。例如,对于约1、3或5周的保留时间,存储器装置150可以安全地保持数据组块。
在存储器装置150的编程/擦除周期(P/E周期)处于在20000至150000的范围内时,在存储器装置150中存储的数据组块的数据保留时间可以是若干天(X天)。例如,在约1、3或5天的数据保留时间期间,可以安全地保持在存储器装置150中存储的数据组块。
参照图8,基于存储器装置150的耐久性,可以安全地保留数据的数据保留时间可以显著地不同。因此,控制器130可以执行基于存储器装置150的耐久性来提高数据安全性的操作。
图9示出根据本公开的实施例的操作存储器系统110的方法的第三示例。
参照图9,操作存储器系统110的方法可以包括基于标准来选择第二存储块66(422)。在本文中,可以分配第二存储块66,以将数据组块存储在主存储装置中而不是第一高速缓存存储块62中。参照图7至图8,控制器130可以基于第二存储块66的操作状态来选择待检查数据安全性的第二存储块66。
操作存储器系统110的方法可以包括从第二存储块66读取对应于第二映射数据段的第二用户数据组块(424)。响应于与在所选择第二存储块66中存储的第二用户数据组块相关联的第二映射数据段,可以确定通过单次读取操作而读取的(第二用户数据组块内的)数据组块的量(或数量)。例如,为了增加存储器装置150的操作效率,控制器130可以增加待存储在第二存储块66中的(第二用户数据组块内的)数据组块的量,并且第二映射数据段可以与在第二存储块66中的多个页面中存储的第二用户数据组块相关联。在实施例中,可以将数据组块存储在联接到多条字线的多个非易失性存储器单元中。控制器130可以从第二存储块66顺序地读取第二用户数据组块,每个第二用户数据组块对应于每个第二映射数据段(424)。
操作存储器系统110的方法可以包括检查通过读取操作而从第二存储块66读取的第二用户数据组块中是否存在错误(426)。在读取对应于单个第二映射数据段的第二用户数据组块之后,控制器130可以检查在该第二用户数据组块中是否存在错误。如果在第二用户数据组块中不存在错误(无错误),则控制器130可以检查该第二映射数据段是否是所选择第二存储块66中的第二映射数据段之中的最后一个(434)。
当该第二映射数据段是最后一个(操作434中为“是”)时,控制器130可以基于标准来选择另一第二存储块66(422)。如果该第二映射数据段不是所选择第二存储块66中的第二映射数据段中的最后一个(操作434中为“否”),则控制器130可以选择所选择第二存储块66中的第二映射数据段中的下一第二映射数据段(436)。当选择了所选择第二存储块66中的第二映射数据段中的下一第二映射数据段时,控制器130可以通过操作424来读取与所选择第二映射数据段相对应的另一数据组块。
控制器130可以检查在所选择第二存储块66中存储的第二用户数据组块中是否存在错误(426),并且确定在第二用户数据组块中可能包括错误(426中的“错误”)。当第二用户数据组块包括错误时,控制器130可以校正错误以恢复第二用户数据组块(428)。进一步地,在校正错误的进程中,控制器130可以确定第二用户数据组块的错误级别。例如,可以基于第二用户数据组块中的发生错误的范围、校正错误所消耗的资源等来确定错误级别。当控制器130可以通过简单的操作来校正错误时,可以确定错误级别不高(428中的“非高级别错误”)。另一方面,当控制器130可能通过复杂操作或算法来校正错误(这将消耗大量资源以进行错误校正)时,控制器130可以确定错误级别较高(428中的“高级别错误”)。下面参照图10描述错误级别。
当确定错误级别不高时,控制器130可以保持第二用户数据组块所存储的当前位置(即,所选择第二存储块66)(432)。此处,保持第二用户数据组块所存储的当前位置可以表示不将第二用户数据组块复制到新位置。根据实施例,即使当在第二用户数据组块的当前位置中发现错误,但该错误不严重(例如,容易校正)时,控制器130也可以基于经校正的第二用户数据组块来刷新布置在相应位置处的非易失性存储器单元。
当确定错误级别较高时,控制器130可以将数据组块复制到新位置(430)。例如,当在第二用户数据组块的一部分中检测到的高级别错误被校正时,控制器130可以将经错误校正的数据组块复制到被分配为高速缓存存储器的第一高速缓存存储块62(430)。尽管未示出,但是当在第二用户数据组块中检测到的高级别错误较大时,控制器130可以将全部第二用户数据组块复制到用作主存储装置的另一第二存储块66。
在校正数据组块中包括的错误之后(428),控制器130可以基于错误级别,对新位置执行编程操作(430)或者刷新当前位置处的非易失性存储器单元(432)。然后,控制器130可以检查映射数据段是否是所选择第二存储块66中的第二映射数据段中的最后一个(434)。当映射数据段是最后一个(操作434中为“是”)时,控制器130可以选择另一第二存储块66以确保数据安全性或数据保护。当映射数据段不是所选择第二存储块66中的第二映射数据段中的最后一个(操作434中为“否”)时,控制器130可以读取所选择第二存储块66中的、与下一第二映射数据段或另一第二映射数据段相对应的另一第二用户数据组块(436)。当选择了所选择第二存储块66中的第二映射数据段中的下一第二映射数据段时,控制器130可以通过操作424来读取与所选择第二映射数据段相对应的另一第二用户数据组块。
图10示出如何确定第二用户数据组块中的所读取数据组块的错误级别的示例。
参照图10,可以将错误级别分类为四种类型之一。首先,存在数据组块中不存在错误的情况(无错误)。控制器130读取第二存储块66中存储的第二用户数据组块并且检查该数据组块中是否包括错误(扫描和检查)。当不存在错误时,控制器130可以仅执行扫描和检查操作。
另外,作为错误级别之一,存在不可校正ECC(UECC)错误。即使将控制器130可以执行的最大错误恢复能力用于校正在数据组块中检测到的错误(ECC最大性能),也可能无法校正错误并且可能无法恢复数据组块。当将错误级别确定为不可校正错误(UECC错误)时,控制器130可以向主机102(参见图2至图3)通知关于数据组块的这种信息。在根据本公开的实施例的操作存储器系统110的方法中,控制器130可以尝试周期性地执行用于检查数据安全性的操作,从而避免来自第二存储块66中存储的第二用户数据组块的不可校正错误(UECC错误)。
还存在高级别错误和非高级别错误。在错误级别不高的情况下,控制器130可以检测到数据组块中的错误,但是可以容易地校正该错误。另一方面,当错误级别校高时,控制器130可使用大量资源(时间、功率等)来校正在数据组块中检测到的错误。可以基于存储器系统110的操作性能和设计目的、存储器装置150的操作特性或存储器系统110的保证性(warranty)或耐久性,来建立用于在高级别错误和非高级别错误之间进行区分的标准。例如,可以基于控制器130中包括的错误校正电路138的性能来确定高级别错误的标准。另外,当控制器130支持用于错误校正的芯片猎杀解码或擦除编码时,可以根据是否执行相应的操作来确定高级别错误。另外,根据实施例,可以在存储器系统110的测试过程期间设置用于确定高级别错误的标准。进一步地,控制器130可以基于存储器装置150的寿命或耐用性来动态地(即,在运行期间)设置或确定标准。可以将所确定的标准存储在存储器装置150中。
图11示出用于刷新存储器装置中的非易失性存储器单元的操作的示例。作为示例而非限制,描述了以下情况:当在读取存储器装置150(参照图1至图3)中包括的MLC块中存储的数据组块之后,校正了错误时,可以执行刷新操作。
参照图11,假设非易失性存储器单元可以存储2位数据。可以将2位数据分类为四种类型:“11”、“10”、“01”和“00”。可以形成对应于每种类型的、非易失性存储器单元的阈值电压分布。当通过图1所示的电压供应电路70将多个读取电压REF1、REF2、REF3供应到非易失性存储器单元时,可以识别在非易失性存储器单元中存储的2位数据。
在将数据存储在非易失性存储器单元中之后,随着时间流逝,非易失性存储器单元的阈值电压可能发生偏移。也就是说,随着数据保留时间增加,非易失性存储器单元的阈值电压分布可能向左偏移或移动。因此,当通过电压供应电路70将读取电压REF1、REF2、REF3供应到非易失性存储器单元时,在非易失性存储器单元的一些中可能发生保留错误。
在本公开的实施例中,当数据组块的错误级别不高(非高级别错误)时,可以不将经校正的数据组块编程到新位置(图9中的操作432)。然而,当控制器130根据数据保留时间确定由于非易失性存储器单元的阈值电压分布的偏移或改变而已经发生错误时,控制器130可以执行用于保持或提高数据安全性或数据保护的操作。在实施例中,控制器130可以执行基于内部编程的闪存校正和刷新(FCR)机制以提高数据安全性。
例如,为了减少当将数据块复制到新位置时,由于重新映射操作而产生的开销,其中该重新映射操作用于生成和更新映射数据段,控制器130可以保持数据组块的位置,但是通过增量步进脉冲编程(ISPP)技术来刷新在原始位置处的非易失性存储器单元,以达到与重新编程经校正的数据基本相似的效果。因为可以在不改变数据组块位置的情况下,基于经校正的数据组块、利用原位重新编程来执行ISPP技术,所以可以减少由于重新映射操作而导致的开销。
通常,擦除在非易失性存储器单元中存储的所有值,以将数据编程到非易失性存储器单元中。通过该擦除操作,可以去除被捕获在非易失性存储器单元的浮栅中的电荷,从而可以将非易失性存储器单元的阈值电压设置为初始值。当对非易失性存储器单元进行编程时,供应到控制栅极的高正电压使得将电子捕获在浮栅中,并且非易失性存储器单元的偏移的阈值电压可以理解为数据,即编程的值。类似地,ISPP技术可以用于将对应于经校正的数据的电荷量注入到浮栅中。通过ISPP技术,可以使用逐步编程和验证操作来逐步地或重复地对浮栅进行编程。在执行每个编程步骤之后,可以增加非易失性存储器单元的阈值电压。然后,可以感测增加的非易失性存储器单元的阈值电压,然后与目标值(例如,经校正的数据)进行比较。当非易失性存储器单元的阈值电压高于与目标值相对应的电平时,可以停止或暂停逐步编程和验证操作。否则,可以再一次对非易失性存储器单元进行编程,从而可以将更多电子捕获在浮栅中,以增加阈值电压。可以重复地执行逐步编程和验证操作,直到非易失性存储器单元的阈值电压达到与目标值相对应的电平为止。ISPP技术可以用于以从低到高的电子计数的方向(例如,图11中的右箭头)来改变被捕获在非易失性存储器单元中的电荷的量。
在数据保留时间期间,非易失性存储器单元的阈值电压可以沿左箭头的方向(浮栅中的电荷的量减少的方向)偏移。控制器130可以执行ISPP技术,以使非易失性存储器单元的阈值电压分布沿右方向偏移。控制器130可以基于经错误校正的数据组块,通过该ISPP技术来刷新非易失性存储器单元,而不进行擦除操作,从而提高数据安全性。
在实施例中,存储器系统可以提高在非易失性存储器装置中存储的数据安全性或保护以及非易失性存储器装置的耐用性。
在另一实施例中,存储器系统可以减少用于在非易失性存储器装置中存储的数据安全性或保护而执行的操作的开销,从而提高存储器系统的性能或输入/输出(I/O)吞吐量。
尽管已经针对特定实施例示出和描述了本教导,但是对于本领域技术人员而言将显而易见的是,在不脱离如所附利要求书中限定的本发明的精神和范围的情况下,可以进行各种改变和修改。
Claims (20)
1.一种存储器系统,包括:
存储器装置,包括第一存储块和第二存储块,其中所述第一存储块存储具有第一大小的第一数据组块并且所述第二存储块存储具有第二大小的第二数据组块,并且所述第一大小小于所述第二大小;以及
控制器,可操作地联接到所述存储器装置,
其中所述控制器从所述第二存储块读取所述第二数据组块,当检测到至少一个错误时校正所述第二数据组块中的所述至少一个错误,并且将所述第二数据组块的一部分复制到所述第一存储块,并且
其中所述第二数据组块的一部分是经错误校正的并且具有所述第一大小。
2.根据权利要求1所述的存储器系统,
其中所述存储器装置进一步存储与所述第一数据组块相关联的第一映射数据段以及与所述第二数据组块相关联的第二映射数据段,并且
其中所述控制器进一步检查所述第二存储块的操作状态以确定是否从所述第二存储块读取所述第二数据组块,并且
其中所述控制器进一步基于所述第二映射数据段来从所述第二存储块读取所述第二数据组块。
3.根据权利要求2所述的存储器系统,其中基于所述第二存储块的保留时间和编程/擦除周期,即P/E周期来确定所述第二存储块的操作状态。
4.根据权利要求1所述的存储器系统,其中在所述第一存储块中的非易失性存储器单元中存储的位的数量小于在所述第二存储块中的非易失性存储器单元中存储的位的数量。
5.根据权利要求1所述的存储器系统,
其中所述第一存储块用作高速缓存存储器并且所述第二存储块用作主存储装置,并且
其中所述控制器进一步在访问所述第二存储块之前,首先对所述第一存储块执行读取操作。
6.根据权利要求1所述的存储器系统,其中所述控制器进一步基于在所述第二数据组块内检测到的错误的量和用于校正在所述第二数据组块中检测到的错误的过程中的至少一个来确定所述第二数据组块的错误级别,并且当所述第二数据组块的错误级别大于或等于阈值时,将所述第二数据组块的经错误校正的部分复制到所述第一存储块。
7.根据权利要求6所述的存储器系统,其中当所述错误级别小于所述阈值时,所述控制器刷新所述第二存储块。
8.根据权利要求7所述的存储器系统,其中所述控制器进一步基于所述第二存储块的操作状态、所述控制器的错误校正能力以及所述存储器系统的性能中的至少一个来确定所述阈值。
9.根据权利要求1所述的存储器系统,其中所述控制器进一步在进入空闲状态之后,确定是否读取所述第二数据组块。
10.根据权利要求2所述的存储器系统,其中将所述第一映射数据段存储在所述第一存储块中,并且将所述第二映射数据段存储在所述第二存储块中。
11.根据权利要求2所述的存储器系统,其中将所述第一映射数据段和所述第二映射数据段存储在第三存储块中,所述第三存储块不同于所述第一存储块和所述第二存储块中的任何一个。
12.一种操作存储器系统的方法,包括:
从第二存储块读取第二数据组块;
当检测到至少一个错误时,校正所述第二数据组块中的所述至少一个错误;并且
将所述第二数据组块的一部分复制到第一存储块,
其中所述第一存储块存储具有第一大小的第一数据组块,并且所述第二存储块存储具有第二大小的所述第二数据组块,
其中所述第一大小小于所述第二大小,并且
其中所述第二数据组块的一部分是经错误校正的并且具有所述第一大小。
13.根据权利要求12所述的方法,进一步包括:
存储与所述第一数据组块相关联的第一映射数据段以及与所述第二数据组块相关联的第二映射数据段;并且
检查所述第二存储块的操作状态以确定是否读取所述第二存储块中存储的所述第二数据组块,并且
其中基于所述第二映射数据段从所述第二存储块读取所述第二数据组块。
14.根据权利要求13所述的方法,其中基于所述第二存储块的保留时间和编程/擦除周期,即P/E周期来确定所述第二存储块的操作状态。
15.根据权利要求12所述的方法,其中所述第一存储块中包括的非易失性存储器单元中存储的位的数量小于所述第二存储块中包括的非易失性存储器单元中存储的位的数量。
16.根据权利要求12所述的方法,进一步包括:
在访问所述第二存储块之前,首先对所述第一存储块执行读取操作,
其中所述第一存储块用作高速缓存存储器,并且所述第二存储块用作主存储装置。
17.根据权利要求15所述的方法,进一步包括:
基于在所述第二数据组块中检测到的错误的量和用于校正在所述第二数据组块中检测到的错误的过程中的至少一个来确定所述第二数据组块的错误级别,
其中复制所述第二数据组块的一部分包括:当所述第二数据组块的错误级别大于或等于阈值时,将所述第二数据组块中的经错误校正的部分复制到所述第一存储块。
18.根据权利要求17所述的方法,其中复制所述第二数据组块的一部分进一步包括:当所述错误级别小于所述阈值时,刷新所述第二存储块,并且
所述方法进一步包括:基于所述第二存储块的操作状态、控制器的错误校正能力以及所述存储器系统的性能中的至少一个来确定所述阈值。
19.根据权利要求12所述的方法,进一步包括:
在进入空闲状态之后,确定是否读取所述第二数据组块;
将所述第一映射数据段单独地存储在所述第一存储块中,并且将所述第二映射数据段单独地存储在所述第二存储块中;或者
将所述第一映射数据段和所述第二映射数据段存储在第三存储块中,所述第三存储块不同于所述第一存储块和所述第二存储块中的任何一个。
20.一种有形地存储在非暂时性计算机可读介质上的计算机程序产品,所述计算机程序产品包括使多核处理器装置执行以下过程的指令,所述多核处理器装置包括多个处理器内核,每个处理器内核包括处理器和将所述处理器联接到存储器装置的电路,所述存储器装置包括第一存储块和第二存储块,所述第一存储块存储具有第一大小的第一数据组块并且所述第二存储块存储具有第二大小的第二数据组块:
从所述第二存储块读取所述第二数据组块;
当检测到至少一个错误时,校正所述第二数据组块中的所述至少一个错误;并且
将所述第二数据组块的一部分复制到所述第一存储块,
其中所述第二数据组块的一部分是经错误校正的并且具有所述第一大小,并且
其中所述第一大小小于所述第二大小。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/108,568 US20220171564A1 (en) | 2020-12-01 | 2020-12-01 | Apparatus and method for maintaining data stored in a memory system |
US17/108,568 | 2020-12-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114579040A true CN114579040A (zh) | 2022-06-03 |
Family
ID=81752616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110031993.9A Withdrawn CN114579040A (zh) | 2020-12-01 | 2021-01-11 | 用于保持在存储器系统中存储的数据的设备和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220171564A1 (zh) |
KR (1) | KR20220077041A (zh) |
CN (1) | CN114579040A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115080455A (zh) * | 2022-08-22 | 2022-09-20 | 华控清交信息科技(北京)有限公司 | 一种计算机芯片、计算机板卡、存储空间分配方法及装置 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116679887B (zh) * | 2023-07-24 | 2023-10-24 | 合肥奎芯集成电路设计有限公司 | 用于NAND Flash的通用控制模块及方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101893145B1 (ko) * | 2011-12-06 | 2018-10-05 | 삼성전자주식회사 | 메모리 시스템들 및 그것들의 블록 복사 방법들 |
US9229644B2 (en) * | 2013-11-25 | 2016-01-05 | Sandisk Technologies Inc. | Targeted copy of data relocation |
WO2015106162A1 (en) * | 2014-01-09 | 2015-07-16 | SanDisk Technologies, Inc. | Selective copyback for on die buffered non-volatile memory |
US9858009B2 (en) * | 2015-10-26 | 2018-01-02 | Sandisk Technologies Llc | Data folding in 3D nonvolatile memory |
-
2020
- 2020-12-01 US US17/108,568 patent/US20220171564A1/en not_active Abandoned
- 2020-12-08 KR KR1020200170577A patent/KR20220077041A/ko unknown
-
2021
- 2021-01-11 CN CN202110031993.9A patent/CN114579040A/zh not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115080455A (zh) * | 2022-08-22 | 2022-09-20 | 华控清交信息科技(北京)有限公司 | 一种计算机芯片、计算机板卡、存储空间分配方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20220077041A (ko) | 2022-06-08 |
US20220171564A1 (en) | 2022-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113342705A (zh) | 在存储器系统中执行垃圾收集的设备和方法 | |
US20210279180A1 (en) | Apparatus and method for controlling map data in a memory system | |
CN113867995A (zh) | 处理坏块的存储器系统及其操作方法 | |
US11756643B2 (en) | Apparatus and method for correcting an error in data transmission of a data processing system | |
US11373709B2 (en) | Memory system for performing a read operation and an operating method thereof | |
US11762734B2 (en) | Apparatus and method for handling a data error in a memory system | |
CN114333953A (zh) | 存储器系统中用于控制读取电压的装置和方法 | |
CN111435321A (zh) | 处理存储器系统的易失性存储器中的错误的设备和方法 | |
CN112988054A (zh) | 存储器系统及其操作方法 | |
CN113010098A (zh) | 用于提高存储器系统的输入/输出吞吐量的设备和方法 | |
US20220171564A1 (en) | Apparatus and method for maintaining data stored in a memory system | |
US11620213B2 (en) | Apparatus and method for handling data stored in a memory system | |
CN114661226A (zh) | 用于传输由非易失性存储器系统生成的元数据的装置和方法 | |
CN113553631A (zh) | 用于在存储器系统中保护数据的设备和方法 | |
US20230376212A1 (en) | Apparatus and method for recovering data in a memory system | |
US11798648B2 (en) | Apparatus and method for recovering data in a memory system | |
CN109918315B (zh) | 存储器系统及存储器系统的操作方法 | |
US20230153032A1 (en) | Apparatus and method for improving data input/output performance of storage | |
US11941289B2 (en) | Apparatus and method for checking an error of a non-volatile memory device in a memory system | |
US20220075542A1 (en) | Calibration apparatus and method for data communication in a memory system | |
US20210365183A1 (en) | Apparatus and method for increasing operation efficiency in data processing system | |
CN116010157A (zh) | 用于编程数据的存储器装置和存储器系统 | |
CN114153372A (zh) | 在存储器系统中控制和存储映射数据的设备和方法 | |
CN114647594A (zh) | 非易失性存储器系统中的日志记录设备和方法 | |
US11775426B2 (en) | Apparatus and method for securing a free memory block in a memory system |
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: 20220603 |
|
WW01 | Invention patent application withdrawn after publication |