CN113867995A - 处理坏块的存储器系统及其操作方法 - Google Patents

处理坏块的存储器系统及其操作方法 Download PDF

Info

Publication number
CN113867995A
CN113867995A CN202110020847.6A CN202110020847A CN113867995A CN 113867995 A CN113867995 A CN 113867995A CN 202110020847 A CN202110020847 A CN 202110020847A CN 113867995 A CN113867995 A CN 113867995A
Authority
CN
China
Prior art keywords
memory
block
memory block
data
blocks
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
Application number
CN202110020847.6A
Other languages
English (en)
Inventor
朴振
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN113867995A publication Critical patent/CN113867995A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0787Storage of error reports, e.g. persistent data storage, storage using memory protection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding 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 codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0626Reducing size or complexity of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time

Abstract

本发明涉及一种存储器系统。该存储器系统包括:存储器装置,包括多个非易失性存储块;以及控制器,被配置为在将多个非易失性存储块之中的第一存储块确定为坏块之后,确定该第一存储块是否可再使用,并且将与包括第二编程顺序号的第二存储块相关联的第二块信息复制到第一存储块的第一块信息,该第二编程顺序号在第一存储块中的第一编程顺序号的设定范围内。

Description

处理坏块的存储器系统及其操作方法
相关申请的交叉引用
本专利申请要求于2020年6月29日提交的申请号为10-2020-0079297的韩国专利申请的优先权,该韩国专利申请的全部公开通过引用并入本文。
技术领域
本公开涉及一种存储器系统,并且更具体地,涉及一种用于确保存储器系统中的数据保护的设备和方法。
背景技术
近来,计算环境范例已经转变为能够几乎随时随地访问计算机系统的普适计算。因此,诸如移动电话、数码相机、笔记本计算机等的便携式电子装置的使用正在迅速增加。这种便携式电子装置通常使用或者包括使用或嵌入至少一个存储器装置的存储器系统,即数据存储装置。数据存储装置可以用作便携式电子装置的主存储装置或辅助存储装置。
与硬盘不同,使用非易失性半导体存储器装置的数据存储装置的优点在于,由于它不具有机械驱动部件(例如,机械臂),所以具有优异的稳定性和耐久性,并且具有高数据访问速度和低功耗。在具有这些优点的存储器系统的背景下,示例性数据存储装置包括通用串行总线(USB)存储装置、具有各种接口的存储卡、固态驱动器(SSD)等。
发明内容
本公开的实施例提供一种数据处理系统和操作该数据处理系统的方法,该数据处理系统包括诸如存储器系统和主机的组件和资源,并且能够基于组件和资源的使用来动态地分配用于组件之间的数据通信的多个数据路径。
本公开的实施例可以提供一种用于在执行运行时坏块管理之后,检查可再使用存储块以更新关于用于数据输入/输出操作的存储块的信息的设备和方法。当存储器系统响应于从主机输入的请求而执行数据输入/输出操作时或之后,可以执行运行时坏块管理。运行时坏块管理可区别于坏块测试,其中坏块测试是在将例如存储器系统的设备提供给用户之前由制造商来执行。
即使存储块可在以后被确定处于健康状态并可以再次使用,存储块也可通过运行时坏块管理操作而被确定为坏块。当通过运行时坏块管理操作而删除了关于被确定为坏块的存储块的信息时,根据本公开的实施例的设备和方法可以估计损耗率,该损耗率可以反映在通过运行时坏块管理操作被确定为坏块之前,可再使用存储块的先前使用状态。因为估计或计算了可再使用存储块的状态,并且可以基于该状态来使用该可再使用存储块,所以可以提高存储器系统的操作稳定性和可靠性。
在实施例中,一种存储器系统可以包括:存储器装置,包括多个非易失性存储块;以及控制器,被配置为在将多个非易失性存储块之中的第一存储块确定为坏块之后,确定该第一存储块是否可再使用,并且将与包括第二编程顺序号的第二存储块相关联的第二块信息复制到第一存储块的第一块信息,该第二编程顺序号在第一存储块的第一编程顺序号的设定范围内。
控制器可以进一步被配置为:对多个非易失性存储块之中的至少一个存储块执行数据输入/输出操作;并且当在数据输入/输出操作期间,至少一个存储块满足设定条件时,确定至少一个存储块为坏块。
数据输入/输出操作可以包括读取操作、写入操作和擦除操作中的至少一个。
第一块信息和第二块信息中的每一个可以包括相应存储块的编程/擦除(P/E)周期。
控制器可以进一步被配置为:在搜索存储块时,通过将第一编程顺序号中的设定数量的最高有效位与存储块中的每一个的编程顺序号中的设定数量的最高有效位进行比较,来找到第二存储块。
当多个候选存储块具有该设定数量的最高有效位时,控制器可以被配置为通过以下步骤来找到第二存储块:对第一存储块和多个候选存储块中的每一个执行测试读取操作;并且将多个候选存储块之中的单个存储块确定为第二存储块,单个存储块的操作状态与第一存储块的操作状态最相似。
控制器可以进一步被配置为:当将第一存储块确定为坏块时,擦除第一存储块的第一块信息。
控制器可以进一步被配置为:通过在没有从外部装置输入的请求的情况下,在存储器系统中执行的用于损耗均衡或坏块管理的操作,来将第一存储块确定为坏块。
在另一实施例中,一种操作存储器系统的方法可以包括:在将存储器装置中包括的多个非易失性存储块之中的第一存储块确定为坏块之后,确定第一存储块是否可再使用;搜索包括第二编程顺序号的第二存储块,该第二编程顺序号在第一存储块的第一编程顺序号的设定范围内;以及将与第二存储块相关联的第二块信息复制到第一存储块的第一块信息。
该方法可以进一步包括:对多个非易失性存储块之中的至少一个存储块执行数据输入/输出操作;并且当在数据输入/输出操作期间,至少一个存储块满足设定条件时,确定至少一个存储块为坏块。
数据输入/输出操作可以包括读取操作、写入操作和擦除操作中的至少一个。
第一块信息和第二块信息中的每一个可以包括相应存储块的编程/擦除(P/E)周期。
在搜索存储块时,可以通过将第一编程顺序号中的设定数量的最高有效位与存储块中的每一个的编程顺序号中的设定数量的最高有效位进行比较,来找到第二存储块。
当多个存储块候选具有相同数量的最高有效位时,搜索第二个存储块可以进一步包括:对第一存储块和多个候选存储块执行测试读取操作;并且将多个候选存储块之中的单个存储块确定为第二存储块,单个存储块的操作状态与第一存储块的操作状态最相似。
该方法可以进一步包括:当将第一存储块确定为坏块时,擦除第一存储块的第一块信息。
该方法可以进一步包括:通过在没有从外部装置输入的请求的情况下,在存储器系统中执行的用于损耗均衡或坏块管理的操作,来将第一存储块确定为坏块。
在另一实施例中,一种控制器,其可以监视多个存储块的操作状态,并且当多个存储块中的第一存储块的操作状态满足设定条件时,确定第一存储块为坏块。该控制器可以被配置为:在将第一存储块确定为坏块之后,确定该第一存储块是否可再使用;并且将与包括第二编程顺序号的第二存储块相关联的第二块信息复制到第一存储块的第一块信息,该第二编程顺序号在第一存储块中的第一编程顺序号的设定范围内。
该控制器可以进一步被配置为:对多个非易失性存储块之中的至少一个存储块执行数据输入/输出操作;并且当在数据输入/输出操作期间,至少一个存储块满足设定条件时,确定至少一个存储块为坏块。
该控制器可以被配置为:在搜索存储块时,通过将第一编程顺序号中的设定数量的最高有效位与存储块中的每一个的编程顺序号中的设定数量的最高有效位进行比较,来找到第二存储块。
当多个候选存储块具有相同设定数量的最高有效位时,该控制器可以被配置为通过以下步骤找到第二存储块:对第一存储块和多个候选存储块执行测试读取操作;并且将多个候选存储块之中的单个存储块确定为第二存储块,单个存储块的操作状态与第一存储块的操作状态最相似。
在另一实施例中,控制器可以控制包括多个非易失性存储块之中的运行时坏块的存储器装置。控制器的操作方法包括:将非易失性存储块之中的第一正常存储块的编程/擦除周期的信息解释为运行时坏块的信息,第一正常存储块和运行时坏块的各自的编程顺序号在设定范围内;并且将具有该信息的运行时坏块解释为第二正常存储块。
附图说明
本文参照附图进行描述,其中在所有附图中,相同的附图标记指代相同的部件。
图1示出根据本公开的实施例的用于执行运行时坏块管理的方法。
图2示出根据本公开的另一实施例的数据处理系统。
图3示出根据本公开的另一实施例的存储器系统。
图4是示出根据本公开的另一实施例的坏块管理进程的流程图。
图5示出根据本公开的另一实施例的非易失性存储器装置。
图6示出根据本公开的另一实施例的块参数。
图7示出根据本公开的实施例的用于再使用存储块的方法。
图8示出根据本公开的另一实施例的在存储器系统中执行的运行时坏块管理操作。
具体实施方式
下面参照附图描述本公开的各个实施例。然而,本公开的元件和特征可以不同地配置或布置以形成可以是所公开实施例中的任意一个的变型的其他实施例。
在本公开中,对“一个实施例”、“示例实施例”、“实施例”、“另一实施例”、“一些实施例”、“各个实施例”、“其他实施例”、“可选实施例”等中包括的各种特征(例如,元件、结构、模块、组件、步骤、操作、特征等)的参考旨在表示任意这种特征包括在本公开的一个或多个实施例中,但是可以或可能不一定在相同的实施例中进行组合。
在本公开中,术语“包含”、“包含有”、“包括”和“包括有”是开放式的。如本文所使用时,这些术语说明所陈述元件/组件的存在,并不排除一个或多个其他元件/组件的存在或添加。
在本公开中,各种单元、电路或其他组件可以被描述或要求保护为“被配置为”执行一个或多个任务。在这样的语境下,“被配置为”用于通过指示块/单元/电路/组件包括在操作期间执行一个或多个任务的结构(例如,电路)来表示结构。这样,即使所指定的块/单元/电路/组件当前不工作(例如,未接通),也可以说该块/单元/电路/组件被配置为执行任务。与“被配置为”一起使用的块/单元/电路/组件包括硬件,例如电路、存储可执行以实施操作的程序指令的存储器等。记载块/单元/电路/组件“被配置为”执行一个或多个任务显然旨在该块/单元/电路/组件的清楚性。另外,“被配置为”可以包括由软件和/或固件(例如,执行软件的FPGA或通用处理器)操纵,来以能够执行所讨论的(多个)任务的方式操作的通用结构(例如,通用电路)。“被配置为”还可以包括使制造过程(例如,半导体制造设施)适于制造适于实施或执行一个或多个任务的装置(例如,集成电路)。
如本公开中所使用的,术语“电路”是指以下所有内容:(a)纯硬件电路实施方式(例如仅以模拟和/或数字电路的实施方式),以及(b)电路和软件(和/或固件)的组合,例如(如适用的话):(i)(多个)处理器的组合,或(ii)处理器/软件(包括一起工作以使诸如移动电话或服务器的设备执行各种功能的数字信号处理器、软件和存储器)的部分,以及(c)需要软件或固件来操作的电路,诸如(多个)微处理器或(多个)微处理器的部分,即使该软件或固件物理上不存在。“电路”的这种定义适用于该术语在本申请中的所有应用,包括在任意权利要求中的应用。作为另一示例,如在本申请中所使用的,术语“电路”还涵盖仅处理器(或多个处理器)或处理器的部分以及处理器(或多个处理器)所附带的软件和/或固件的实施方式。例如,如果适用于特定权利要求要素,则术语“电路”还涵盖用于存储装置的集成电路。
如本文所用的,这些术语“第一”、“第二”、“第三”等被用作它们之后的名词的标签,并且不暗示任何类型的排序(例如,空间、时间、逻辑等)。术语“第一”和“第二”不一定暗示必须在第二值之前写入第一值。此外,虽然这些术语可以在本文使用来标识各种元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与另外具有相同或相似名称的另一元件区分开。例如,可以将第一电路与第二电路区分开。
此外,术语“基于”用于描述影响确定结果的一个或多个因素。该术语不排除可能影响确定结果的其他因素。也就是说,确定结果可以仅基于那些因素或者至少部分地基于那些因素。考虑短语“基于B确定A”。虽然在这种情况下,B是影响A的确定结果的因素,但这种短语不排除A的确定结果也基于C。在其他情况下,可以仅基于B确定A。
下面参照附图描述本公开的实施例,其中相同的附图标记指代相同的元件。
图1示出根据本公开的实施例的用于执行运行时坏块(RTB块)管理的方法。运行时坏块管理包括:在存储器系统的操作期间或之后,基于存储块的操作状态来确定相应存储块中的哪个存储块是坏块。在本文中,根据特定标准或准则,存储块可以是存储器系统中的一组非易失性存储器单元。例如,存储块可以是在单个擦除操作中一起被擦除的一组非易失性存储器单元。下面参照图2至图3描述存储器系统的内部配置。
参照图1,用于执行运行时坏块管理的方法可以包括:响应于主机的请求,对特定存储块执行数据输入/输出(I/O)操作(例如,读取操作/写入操作(编程操作)/擦除操作)(912)。存储器系统110(在图2至图3中示出)可以接收从主机102(在图2至图3中示出)输入的读取请求、写入请求或擦除请求。读取请求、写入请求或擦除请求与存储在或待存储在存储器系统110中的特定数据有关。例如,读取请求可以使存储器系统110将存储在特定位置的数据输出到主机102,并且写入请求可以使存储器系统110存储与写入请求一起传输的数据。响应于读取请求、写入请求或擦除请求,存储器系统110可以执行数据输入/输出(I/O)操作。
用于执行运行时坏块管理的方法可以包括:检测在对特定存储块执行的数据输入/输出操作期间发生的错误(914)。例如,存储器系统110中的控制器130(在图2至图3中示出)使用存储器装置150(在图2至图3中示出)中的至少一个开放块或空闲块来执行与写入请求相对应的写入操作。对存储器装置150中的特定存储块执行的编程操作可能没有正常执行(例如,编程失败)。当编程操作失败时,控制器130可以将与写入请求一起传输的数据编程在除了该特定存储块之外的另一存储块中。
用于执行运行时坏块管理的方法可以进一步包括:确定未正常执行数据输入/输出操作的存储块是运行时坏块,并且更新坏块表(916)以反映该信息(例如,将存储块的块地址添加到坏块表中)。坏块表具有标识存储器装置150中包括的所有存储块之中的(多个)坏块(或当前不可使用的(多个)块)的数据结构。例如,当对特定存储块的用于将数据编程在存储器系统110中的写入操作失败时,存储器系统110可以将数据编程在另一存储块中,并且将该特定存储块确定为运行时坏块。
在将特定存储块确定为坏块之后,存储器系统110可以将关于该特定存储块的信息(例如,块地址)添加到坏块表中。坏块表可以包括关于由运行时坏块管理所确定的坏块的位置信息。当分配用于编程新数据的存储块时,存储器系统110可以排除由坏块表标识的(多个)存储块。根据实施例,存储器系统110可以将关于多个存储块的块信息存储在存储器装置150中。下面参照图6描述块信息的示例。因为存储器系统110不使用坏块表中的任意存储块,所以可不再需要与由坏块表标识的任意这种存储块相对应的块信息。因此,存储器系统110可以删除关于由坏块表标识的坏存储块的块信息。另一方面,当在被添加到坏块表的存储块中存储了有效数据时,存储器系统110可以将有效数据复制到另一存储块,然后更新所复制的数据的映射数据(或元数据)。
关于为什么在存储器装置150中出现运行时坏块,存在多种原因。例如,特定存储块的严重损耗可能导致这种存储块不能执行数据输入/输出,在这种情况下,存储器系统110可以将该特定存储块确定为坏块。作为另一示例,即使基于特定存储块的编程/擦除周期而处于该特定存储块的非严重损耗状态下,编程操作也可能由于干扰等原因而暂时失败。为了避免数据输入/输出操作中的延迟,当对特定存储块的编程操作失败时,存储器系统110可以将数据编程在另一存储块中,并且通知主机102编程操作已成功完成。
当由于临时原因,例如干扰而导致在坏块表中包括存储块时,可由于不再使用该存储块而降低资源效率。因此,用于执行运行时坏块管理的方法可以包括:检查运行时坏块是否可再使用(918)。存储器系统可以自主地,即在没有从诸如主机102的外部装置输入的命令或请求的情况下执行该检查。因此,根据实施例,作为后台操作,存储器系统110可以检查运行时坏块是否可再使用。也就是说,当没有数据输入/输出操作正在执行时,存储器系统110可以检查基于坏块表的运行时坏块是否可再使用。
根据实施例,存储器系统110可以仅对坏块表中包括的存储块之中的运行时坏块检查是否再使用。例如,可在存储器装置的制造后检查过程期间检测到缺陷,这表明一些存储块是有缺陷的。存储器系统110可以扫描存储器装置150中的所有存储块,以识别有缺陷的存储块,然后可以将有缺陷的存储块添加到坏块表中。因此,可以将运行时坏块与在将存储器系统110提供给用户之前,由制造商最初确定的坏块区分开。在检查运行时坏块是否可再使用的过程中,存储器系统110可以跳过在制造存储器装置150时被确定为有缺陷的缺陷存储块。为此,坏块表可以包括与坏块表中的存储块相关联的标识符,该标识符用于指示存储块是运行时坏块还是在制造过程期间被确定为有缺陷的缺陷坏块。
根据实施例,在存储器系统的后台操作(例如,损耗均衡操作、垃圾收集操作等)期间,而不是在与从主机102输入的请求相对应的数据输入/输出操作期间,存储器系统110检查被确定为坏块的存储块是否可再使用。在后台操作期间进行可再使用的确定时,存储器系统110检查与各个块相关联的指示符,以确定存储块是运行时坏块还是由于在制造过程期间发生的缺陷而导致的坏块。即使运行时坏块的操作状态不健康,也可能在经过一段时间之后恢复到可使用水平。在后台操作期间,检查是否再使用被确定为运行时坏块的存储块可以有利地增加存储器装置150中的可用资源。
在下文中,描述了数据处理系统100的各个实施例。具体地,图2至图3示出了响应于来自主机102的请求而执行数据输入/输出操作的存储器系统110,或存储器系统110和存储器系统110中包括的组件为了提高数据输入/输出操作的效率而执行的操作。
图2示出根据本公开的实施例的数据处理系统。
参照图2,数据处理系统100可以包括与存储器系统110可操作地接合的主机102。主机102可以包括(或被实施为)包括便携式电子装置(例如,移动电话、MP3播放器、膝上型计算机等)或非便携式电子装置(例如,台式计算机、游戏机、电视、投影仪等)的各种装置中的任意一种。
主机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可以包括主机接口(I/F)132、处理器134、错误校正电路(即,ECC)138、电源管理单元(PMU)140、存储器接口142和存储器144。控制器130不限于图2所示的特定配置。相反,控制器130的配置可以根据存储器系统110的结构、功能、操作性能等而变化。例如,根据主机接口的协议,存储器系统110可以利用可以与主机102电联接的各种类型的存储装置中的任意一种来实施。合适的存储装置的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)、微型MMC、安全数字(SD)卡、迷你SD、微型SD、通用串行总线(USB)存储装置、通用闪存(UFS)装置、标准闪存(CF)卡、智能媒体(SM)卡、记忆棒等。根据存储器系统110的特定实施方式,控制器130中的具体组件集合可以不同。
主机102和存储器系统110可以包括控制器或接口,以根据一种或多种通信协议来传输和接收信号、数据等。例如,存储器系统110中的主机接口132可以包括能够与主机102交换信号、数据等的组件。
主机接口132可以接收从主机102输入的信号、命令(或请求)和/或数据。例如,主机102和存储器系统110可以使用通信协议在彼此之间传输和接收数据。由主机102和存储器系统110支持的、用于发送和接收数据的协议或接口的示例包括:通用串行总线(USB)、多媒体卡(MMC)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、高速外围组件互连(PCIE或PCIe)、串列SCSI(SAS)、串行高级技术附件(SATA)、移动工业处理器接口(MIPI)等。根据实施例,主机接口132是一种用于与主机102交换数据的层,并且利用被称为主机接口层(HIL)的固件来实施或由被称为主机接口层(HIL)的固件来驱动。
在一些实施例中,电子集成驱动器(IDE)或高级技术附件(ATA)可以用作用于在主机102和存储器系统110之间传输和接收数据的接口中的一个。例如,IDE或ATA可以使用包括40条并联连接的布线的电缆,以支持主机102和存储器系统110之间的数据传输和接收。当多个存储器系统110连接到单个主机102时,可以通过使用与多个存储器系统110连接的位置或指拨开关(dip switch),将多个存储器系统110划分为主设备和从设备。设置为主设备的多个存储器系统110中的一个可以用作主存储器装置,而其他的存储器系统110可以用作辅助存储器装置。例如,IDE或ATA可以包括快速-ATA、ATAPI和增强型IDE(EIDE)。
串行高级技术附件(SATA)是一种与电子集成驱动器(IDE)装置所使用的、各种ATA标准的并行数据通信接口兼容的串行数据通信接口。IDE接口中的40条布线可以减少为SATA接口中的6条布线。例如,用于IDE的40个并行信号可以被转换为用于SATA的6个串行信号,以在彼此之间传输。SATA由于其更快的数据传输和接收速率以及在主机102中使用更少资源消耗进行数据传输和接收而已经得到广泛使用。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)的接口,并且被设计为提高配备有非易失性存储器系统110的主机102、服务器、计算装置等的性能和设计灵活性。PCIe可以使用插槽或专用电缆来将主机102(例如,计算装置)和存储器系统110(例如,外围装置)连接。例如,PCIe可以使用多个引脚(例如,18个引脚、32个引脚、49个引脚、82个引脚等)和至少一条布线(例如,x1、x4、x8、x16等)以实现每秒超过数百MB(例如,250MB/s、500MB/s、984.6250MB/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)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem,BCH)码、turbo码、里德-所罗门(Reed-Solomon)码、卷积码、递归系统码(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能够紧急地备份当前状态的触发信号。根据实施例,PMU 140可以包括能够累积可以在紧急情况下使用的电力的装置或组件。
存储器接口142可以用作用于处置在控制器130和存储器装置150之间传送的命令和数据的接口,以允许控制器130响应于从主机102输入的命令或请求来控制存储器装置150。在存储器装置150是闪速存储器的情况下,存储器接口142可以在处理器134的控制下生成用于存储器装置150的控制信号,并且可以处理输入到存储器装置150或从存储器装置150输出的数据。例如,当存储器装置150包括NAND闪速存储器时,存储器接口142包括NAND闪存控制器(NFC)。存储器接口142可以提供用于处置在控制器130和存储器装置150之间的命令和数据的接口。根据实施例,存储器接口142可以通过被称为闪速接口层(FIL)的固件来实施或由被称为闪速接口层(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可以临时存储该读取数据。另外,在将从主机102输入的写入数据编程在存储器装置150中之前,控制器130可以将该写入数据临时存储在存储器144中。当控制器130控制存储器装置150的诸如数据读取、数据写入、数据编程或数据擦除的操作时,可以将在存储器系统110的控制器130和存储器装置150之间传输或生成的数据条存储在存储器144中。
除了读取数据或写入数据之外,存储器144可以存储用于在主机102和存储器装置150之间输入或输出数据的信息(例如,映射数据、读取请求、编程请求等)。根据实施例,存储器144可以包括命令队列、程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存、映射缓冲器/高速缓存等。控制器130可以针对用于执行数据输入/输出操作的组件分配存储器144中的一些存储空间。例如,存储器144中的写入缓冲器可以用于临时存储进行编程操作的目标数据。
在实施例中,存储器144可以利用易失性存储器来实施。例如,存储器144可以利用静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或两者来实施。虽然图2示出了设置在控制器130内的存储器144,但是实施例不限于此。存储器144可以位于控制器130内部或外部。例如,存储器144可以通过具有在存储器144和控制器130之间传送数据和/或信号的存储器接口的外部易失性存储器来实施。
处理器134可以控制存储器系统110的全部操作。例如,处理器134可以响应于从主机102输入的写入请求或读取请求来控制对存储器装置150的编程操作或读取操作。根据实施例,处理器134可以运行固件来控制对存储器系统110的编程操作或读取操作。在本文中,固件可以被称为闪存转换层(FTL)。下面参照图3详细描述FTL的示例。根据实施例,处理器134可以利用微处理器或中央处理单元(CPU)来实施。
根据实施例,可以利用至少一个多核处理器来实施存储器系统110。多核处理器是一种集成了被认为是不同的处理区域的两个或更多个内核的电路或芯片。例如,当多核处理器中的多个内核独立地驱动或运行多个闪存转换层(FTL)时,可以提高存储器系统110的数据输入/输出速度(或性能)。根据实施例,可以通过多核处理器中的不同内核独立地执行存储器系统110中的数据输入/输出(I/O)操作。
处理器134可以执行与从主机102输入的请求或命令相对应的操作。此外,存储器系统110可以在没有从诸如主机102的外部装置输入的命令或请求的情况下执行操作。控制器130响应于从主机102输入的请求或命令而执行的操作可以认为是前台操作,而由控制器130独立地(例如,在没有从主机102输入的请求或命令的情况下)执行的操作可以认为是后台操作。控制器130可以在存储器装置150中执行关于数据的读取、写入或编程、擦除等的前台操作或后台操作。另外,与作为从主机102传输的设定命令的设定参数命令或设定特征命令相对应的参数设定操作可以认为是前台操作。作为后台操作,即不响应于从主机102传输的命令,控制器130可以执行垃圾收集(GC)、损耗均衡(WL)、用于识别并处理存储器装置150中的多个存储块152、154、156中的坏块的坏块管理。
根据实施例,基本相似的操作可作为前台操作和后台操作两者来执行。例如,当存储器系统110响应于从主机102输入的请求或命令而执行垃圾收集(例如,手动GC),垃圾收集可以被认为是前台操作。当存储器系统110独立于主机102而执行垃圾收集(例如,自动GC)时,垃圾收集可以被认为是后台操作。
当存储器装置150具有包括非易失性存储器单元的多个管芯(或多个芯片)时,控制器130可以被配置为执行关于从主机102输入的多个请求或命令的并行处理,以提高存储器系统110的性能。例如,所传输的请求或命令可以被分配到存储器装置150中的多个管芯或多个芯片并且同时被处理。存储器接口142可以通过至少一个通道和至少一个通路连接到存储器装置150中的多个管芯或芯片。当控制器130响应于与包括非易失性存储器单元的多个页面相关联的请求或命令,通过(多个)通道或(多个)通路将数据分配和存储在多个管芯中时,可以同时地或并行地执行与该请求或命令相对应的多个操作。这种处理方法或方案可以被认为是交错方法。因为利用交错方法进行操作的存储器系统110的数据输入/输出速度可比没有利用交错方法进行操作的存储器系统110的数据输入/输出速度更快,所以可以提高存储器系统110的数据I/O性能。
通过示例而非限制的方式,控制器130可以识别关于与存储器装置150中的多个存储器管芯相关联的多个通道(或通路)的状态。控制器130可以将每个通道或每个通路的状态确定为例如以下的一种:忙碌状态、就绪状态、活动状态、空闲状态、正常状态和/或异常状态。控制器130确定通过哪个通道或通路来传递指令(和/或数据)可以与物理块地址相关联,例如指令(和/或数据)被传递到哪个(哪些)管芯中。控制器130可以参考从存储器装置150传递的描述符。描述符可以包括描述关于存储器装置150的相关特性的块参数或页面参数;每个参数都是具有设定格式或结构的数据。例如,描述符可以包括装置描述符、配置描述符、单元描述符等。控制器130可以参考或使用描述符来确定经由哪个(哪些)通道或通路来交换指令或数据。
存储器装置150可以包括多个存储块152、154、156,多个存储块152、154、156中的每一个包括多个非易失性存储器单元。根据实施例,一个存储块可以是一起被擦除的一组非易失性存储器单元。存储块152、154、156可以包括多个页面,多个页面中的每一个是一起被读取或编程的一组非易失性存储器单元。在一个实施例中,每个存储块152、154、156可具有用于高度集成的三维堆叠结构。此外,存储器装置150可以包括多个管芯,每个管芯包括多个平面,每个平面包括多个存储块,例如存储器装置150中的所有存储块152、154、156中的一些。对于存储器系统110的不同期望性能,存储器装置150的配置可以不同。
根据多个存储块152、154、156中的每一个的一个存储器单元中可以存储或表达的位的数量,该块可以是单层单元(SLC)存储块,或者是多层单元(MLC)存储块。SLC存储块包括由每个存储1位数据的存储器单元实施的多个页面。SLC存储块可以具有较高的数据I/O操作性能和较高的耐用性。MLC存储块包括由每个存储多位数据(例如,2位或更多位)的存储器单元实施的多个页面。针对相同的空间,MLC存储块可以比SLC存储块具有更大的存储容量。因此,在存储容量方面,MLC存储块可以高度集成。
在实施例中,存储器装置150可以利用诸如双层单元(DLC)存储块、三层单元(TLC)存储块、四层单元(QLC)存储块或其组合的MLC存储块来实施。双层单元(DLC)存储块可以包括由每个能够存储2位数据的存储器单元实施的多个页面。三层单元(TLC)存储块可以包括由每个能够存储3位数据的存储器单元实施的多个页面。四层单元(QLC)存储块可以包括由每个能够存储4位数据的存储器单元实施的多个页面。在另一实施例中,存储器装置150可以利用每个包括由每个能够存储5位或更多位的数据的存储器单元实施的多个页面的一个或多个块来实施。
根据实施例,控制器130可以将存储器装置150中的多层单元(MLC)存储块用作SLC存储块。多层单元(MLC)存储块的数据输入/输出速度可小于SLC存储块的数据输入/输出速度。也就是说,当将MLC存储块用作SLC存储块时,可以减小用于读取操作或编程操作的余量(例如,操作定时余量)。当将MLC存储块用作SLC存储块时,控制器130可以利用更快的数据输入/输出速度。例如,因为缓冲器可能需要较高的数据输入/输出速度以提高存储器系统110的性能,所以控制器130可以将MLC存储块用作临时存储数据条的缓冲器。
根据实施例,控制器130可以将多条数据多次编程在多层单元(MLC)中,而无需对存储器装置150中的相应MLC存储块执行擦除操作。非易失性存储器单元具有不支持数据重写的特点。然而,控制器130可以使用MLC可以存储多位数据的特点,以便将多条1位数据多次编程在MLC中。对于MLC的重写操作,当将单条1位数据编程在非易失性存储器单元中时,控制器130可以将编程次数作为单独操作信息进行存储。根据实施例,可以在将另一条数据重写到相同的非易失性存储器单元中之前,执行用于均匀地均衡非易失性存储器单元的阈值电压的操作。
在实施例中,存储器装置150可以被实施为诸如闪速存储器的非易失性存储器,例如NAND闪速存储器、NOR闪速存储器等。在一个实施例中,存储器装置150可以由相变随机存取存储器(PCRAM)、铁电随机存取存储器(FRAM)、自旋注入磁性存储器和自旋转移扭矩磁性随机存取存储器(STT-MRAM)等中的至少一个来实施。
参照图3,存储器系统中的控制器130与主机102和存储器装置150一起操作。如图所示,除了先前结合图2所标识的主机接口132、存储器接口142和存储器144之外,控制器130还包括闪存转换层(FTL)240。
根据实施例,图2中的错误校正电路138可以包括在闪存转换层(FTL)240中。在另一实施例中,错误校正电路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是否应将命令和数据传递给闪存转换层240。事件队列54可以接收来自缓冲器管理器52的事件,这些事件将响应于从主机102传输的命令和数据而被存储器系统110或控制器130内部地执行和处理,以便以接收的顺序将事件传递到闪存转换层240。
根据实施例,图3所示的闪存转换层(FTL)240可以实施多线程方案以执行数据输入/输出(I/O)操作。可以通过控制器130中的使用多线程的多核处理器来实施多线程FTL。
根据实施例,闪存转换层240可以包括主机请求管理器(HRM)46、映射管理器(MM)44、状态管理器42和块管理器48。主机请求管理器(HRM)46可以管理来自事件队列54的事件。映射管理器(MM)44可以处置或控制映射数据。状态管理器42可以执行垃圾收集(GC)或损耗均衡(WL)。块管理器48可以对存储器装置150中的块执行命令或指令。
通过示例而非限制的方式,主机请求管理器(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的编程或写入性能,块管理器48可以收集编程请求并且将用于多平面和单触发(one-shot)编程操作的闪存编程请求发送到存储器接口142。在实施例中,块管理器48可以将若干闪存编程请求发送到存储器接口142,以提高或最大化多通道和多方向闪存控制器的并行处理。
在实施例中,块管理器48可以被配置为根据有效页面的数量来管理存储器装置150中的块,在需要空闲块时选择并擦除没有有效页面的块,并且当确定将执行垃圾收集时,选择包括最少数量的有效页面的块。状态管理器42可以执行垃圾收集以将有效数据从所选择的(多个)块移动到空块,并且擦除包含被移动的有效数据的(多个)块,使得块管理器48可以具有足够的空闲块(即,没有数据的空块)。当块管理器48将关于待擦除的块的信息提供到状态管理器42时,状态管理器42可以检查待擦除的块中的所有闪存页面以确定每个页面是否有效。
例如,为了确定每个页面的有效性,状态管理器42可以识别每个页面的带外(OOB)区域中记录的逻辑地址。为了确定每个页面是否有效,状态管理器42可以将页面的物理地址与映射到从查询请求获得的逻辑地址的物理地址进行比较。状态管理器42针对每个有效页面,将编程请求发送到块管理器48。当编程操作完成时,可以通过更新映射管理器44来更新映射表。
映射管理器44可以管理逻辑到物理(L2P)映射表。映射管理器44可以处理由主机请求管理器(HRM)46或状态管理器42生成的、诸如查询和更新的请求。映射管理器44可以将整个映射表存储在存储器装置150(例如,闪速存储器/非易失性存储器)中,并且根据存储器144的存储容量来高速缓存映射条目。当在处理查询或更新请求时发生映射高速缓存未命中时,映射管理器44可以将读取请求发送到存储器接口142以加载存储器装置150中存储的相关映射表。当映射管理器44中的脏高速缓存块的数量超过特定阈值时,可以将编程请求发送到块管理器48,以便形成干净高速缓存块并且可以将脏映射表存储在存储器装置150中。
当执行垃圾收集时,状态管理器42将(多个)有效页面复制到空闲块中,并且主机请求管理器46可以针对相同逻辑地址的页面编程最新版本的数据,并且即时地发出更新请求。当状态管理器42在(多个)有效页面的复制尚未正常完成的状态下请求映射更新时,映射管理器44可以不执行映射表更新。这是因为当状态管理器42请求映射更新并且稍后才完成有效页面复制时,发出的是具有旧物理信息的映射请求。当最新映射表仍指向旧物理地址时,或者仅在最新映射表仍然指向旧物理地址的情况下,映射管理器44才可以执行映射更新操作以确保准确性。
图4是示出根据本公开的另一实施例的坏块管理进程的流程图。图4中描述的坏块管理的示例可以当存储器系统110(在图2至图3中示出)最初运行时执行,或者可以当存储器系统110处于空闲状态或重启时执行。
参照图4,可以在不降低存储器系统110中执行的数据输入/输出操作的性能的范围(例如,操作余量)内执行坏块管理(812)。存储器系统110可以顺序地检查存储器装置150(参见图2至3)中的所有存储块是否是坏块。存储器系统110可以对多个存储块之中的第一存储块Block0(例如,经受坏块管理的存储块)开始坏块管理(814)。
存储器系统110可以检查第一存储块Block0是否满足坏块条件,该坏块条件可以是预设条件(816)。此处,根据实施例,可以以各种方式来设定坏块条件。例如,如果在制造存储器装置150之后在测试过程中发现缺陷,则可以指示特定存储块(有缺陷的存储块)具有缺陷。控制器130(参照图2至图3)可以通过检查坏块信息来将第一存储块Block0确定为坏块,其中坏块信息指示在第一存储块Block0的特定位置处是否存在缺陷。进一步地,根据实施例,在控制器130对第一存储块Block0执行写入/编程操作之后,可以检查执行写入/编程操作所花费的时间。当写入/编程操作花费的时间长于第一标准,或者对第一存储块Block0的写入/编程操作失败,然后对另一存储块执行写入/编程操作时,存储器系统110可以将第一存储块Block0确定为坏块。在另一实施例中,控制器130可以检查与第一存储块Block0相关联的编程/擦除周期。当第一存储块Block0的编程/擦除周期大于第二标准时,控制器130可以将第一存储块Block0确定为坏块。
当确定第一存储块Block0满足坏块条件(在操作816中为“是”)时,存储器系统110可以通过将第一存储块Block0添加到坏块表来执行更新(818)。
另一方面,如果确定第一存储块Block0不满足坏块条件(在步骤816中为“否”),则可以确定第一存储块Block0是否为存储器装置150中的最后存储块(820)。因为第一存储块Block0不是存储器装置150中的最后存储块(在操作820中为“否”),所以存储器系统110可以递增块地址(822)。存储器系统110可以检查与所递增的块地址相对应的另一存储块是否满足坏块条件(816)。
在上述方法中,存储器系统110检查存储器装置150中的所有存储块以确定每个存储块是否满足坏块条件。当特定存储块满足坏块条件时,存储器系统110将相应存储块添加到坏块表中(818)。在确定存储器装置150中的所有存储块是否满足坏块条件之后,可以终止坏块管理(824)。图4中所示的坏块管理进程可以由于中断而停止。当从存储器装置150中的第一存储块到最后存储块的坏块管理未完成时,存储器系统110可以存储哪个存储块经受随后执行的下一坏块管理。
图5示出根据本公开的另一实施例的非易失性存储器装置。
参照图5,存储器装置150(在图2至图3中示出)可以包括至少一个平面402。平面402可以包括多个存储块404和页面缓冲器。多个存储块404中的每一个可以包括多个页面406。此处,多个页面406中的每一个可以被理解为由存储器系统110同时执行读取/写入操作的一组非易失性存储器单元(参见图2至图3)。多个存储块404中的每一个是由存储器系统110同时执行擦除操作的一组非易失性存储器单元。另外,平面402包括能够临时存储与读取/写入操作有关的数据的页面缓冲器。因此,平面402可以理解为用于支持在存储器系统110中执行的交错操作或多个数据输入/输出操作的并行处理的结构。
多个页面406中的每一个可以包括用于存储用户数据的数据区域DATA_AREA和用于存储附加信息或系统信息以支持数据输入/输出操作的备用区域SPARE_AREA。图5示出了数据区域的大小为2048字节,备用区域的大小为64字节,但是这些大小中的每一个可以根据存储器装置150的制造方法、装置设计、I/O性能等而不同。备用区域也可以称为块外(OOB)区域。
用户待存储的数据可以被编程在数据区域DATA_AREA中。图5所示的数据区域DATA_AREA可以被划分为每个大小为512字节的多个数据帧DATA_FRAME。单个页面中的数据区域DATA_AREA可以被划分为第一至第四数据帧FRAME0至FRAME3。根据实施例,划分数据区域DATA_AREA的数据帧的数量可以根据在存储器系统110中执行的操作而变化。例如,数据帧的数量可以根据由存储器系统110采用的错误检查和校正(ECC)技术而不同。
类似于数据区域DATA_AREA,备用区域SPARE_AREA可以被划分为多个备用帧SPARE_FRAME。在图5中,大小为64字节的备用区域被划分成每个大小为16字节的四个备用帧,但是本发明不限于此。在备用区域SPARE_AREA中,可以存储用于错误检查和校正(ECC)技术的信息以及用于控制数据输入/输出的元数据。例如,作为关于检查和校正(ECC)技术的信息,在1位汉明码的情况下,可以在备用区域(SPARE_AREA)中存储3字节的信息。根据实施例,在BCH-4码的情况下,可以在备用区域(SPARE_AREA)中存储7字节的信息。进一步地,备用区域SPARE_AREA中的用于存储关于错误检查和校正(ECC)技术的信息的位置可以根据存储器装置150的设计和配置而变化。
备用区域(SPARE_AREA)中存储的元数据的示例是诸如坏块信息(BI)或坏块标记(BBM)的坏块标识符。当确定由于存储块包含任意缺陷或问题而不能对特定存储块完全执行数据输入/输出时,相应存储块的操作状态可以通过坏块标识符来表示。例如,坏块标识符的大小可以为1字节。当存储块或页面的大小足够时,可以将与存储块或页面中的多个区域相对应的多个坏块标识符包括在备用区域SPARE_AREA中。根据实施例,坏块标识符可以被写入存储块的第一页面或最后页面中包括的备用区域(SPARE_AREA)(或存储块的另一设定位置)中。参照图4,存储器系统110可以检查关于存储器装置150中包括的所有存储块的坏块信息。备用区域(SPARE_AREA)中存储的坏块标识符(BI或BBM)可以理解为坏块信息。
根据实施例,编程顺序号(PSN)可以存储在备用区域SPARE_AREA中。在将用户数据编程在页面的数据区域中之后,存储器系统110可以将编程顺序号(PSN)存储在备用区域中,该编程顺序号(PSN)是与在存储块内执行的编程操作相对应的序列号。例如,当执行第100次编程操作以将数据编程在特定页面的数据区域时,可以将数字“100”作为编程顺序号(PSN)而存储在存储块内的相应页面的备用区域中。此后,当将另一数据编程在存储块内的下一页面时,相应的编程操作是第101次编程操作,因此可以将数字“101”存储为与在下一页面中执行的相应编程操作相对应的另一编程顺序号(PSN)。例如,可以以通过单个编程操作进行编程的每个存储单位来记录编程顺序号(PSN)。当逐个块地执行编程操作时,可以在存储块中记录一次编程顺序号(PSN)。当逐个页面地执行编程操作时,可以在每个页面中记录编程顺序号(PSN)。根据实施例,可以记录编程操作完成的实际时间,而不是编程顺序号(PSN)。
根据实施例,编程顺序号(PSN)可以用于估计存储器装置150中的特定存储块或特定页面的操作状态。通过编程顺序号(PSN),存储器系统110可以识别在最长时间之前被编程数据的页面、最近被编程数据的页面等。此外,当与两个不同页面或两个不同块相对应的编程顺序号(PSN)相似(例如,彼此接近)时,这可以指示数据在相似的时间被分配和存储在存储器装置150中的两个不同页面或两个不同块中。而且,根据实施例,可以通过编程顺序号(PSN)来估计被编程在页面中的数据的保留时间。
图6示出根据本公开的另一实施例的块参数。
参照图6,关于每个存储块的参数可以包括指示相应存储块的操作状态的信息。例如,存储块的参数可以包括页面编程时间、块擦除时间、编程/擦除(P/E)周期和/或数据保留。给定存储块的参数可以存储在存储块的备用区域中。根据实施例,可以收集存储块的参数以用于块分配、损耗均衡、垃圾收集等。
页面编程时间可以指将数据编程在相应存储块的页面中所花费的时间。例如,可以以微秒(μs)来记录编程操作所花费的时间。当执行编程操作所花费的时间(页面编程时间)没有落入设定范围内或设定标准(例如,操作时间余量)内时,存储器系统110(在图2至图3中示出)可以确定相应存储块的操作状态不佳(即,相应存储块不健康)。可能存在多种原因导致对特定存储块执行编程操作所花费的时间未落入设定范围内,即不满足设定标准。为了确定相应存储块的错误或失败是由于永久原因还是暂时原因所导致,存储器系统110可以执行在不同时间将数据多次编程到相应存储块的测试操作。
块擦除时间可以指擦除存储块中存储的数据所花费的时间。例如,可以以毫秒(ms)来记录执行擦除操作所花费的时间。当执行擦除操作所花费的时间(块擦除时间)大于设定参考时间或没有落入设定范围内时,存储器系统110(在图2至图3中示出)可以确定相应存储块的操作状态不佳。可能存在多种原因导致执行擦除操作所花费的时间未落入设定范围内。为了确定关于相应存储块的错误或失败是由于永久原因还是暂时原因所导致,存储器系统110可以执行在不同时间多次擦除相应存储块中的数据的测试操作。
编程/擦除(P/E)周期可以指示将数据编程在存储块中然后擦除存储块中的数据的操作已经执行了多少次。P/E周期可以用作用于确定相应存储块的损耗的标准。当从存储块的第一页面到最后页面,已经编程了数据之后,存储块中存储的数据不再有效时,存储器系统110可以对相应存储块执行擦除操作以确保存储空间。当将任何数据编程到存储块中时可以开始每个周期,并且当擦除了相应存储块中的所有数据时可以结束每个周期。存储器系统110可以基于与存储块相关联的P/E周期来估计关于每个存储块的损耗程度。较高的P/E周期可以指示较高的损耗程度。根据实施例,存储器系统110可以使用擦除计数,而不是P/E周期。
数据保留(或数据保留时间)可以指数据被编程在存储块中的时间点(例如,年、月或日)。理论上,即使当不供应电力时,存储块中的非易失性存储器单元中存储的数据也不会消失。然而,实际上,当数据存储了较长时间,即超过设定时间段时,可能难以确保数据是可靠的。存储器系统110可以检查存储块的数据保留。如果这种检查表明数据已在该存储块中存储了太长时间,则存储器系统110可以在数据的可靠性存在问题或可能存在问题之前,将相应存储块中存储的有效数据复制或移动到另一存储块,使得存储器系统110可以提高所存储的数据的可靠性。
图7示出根据本公开的实施例的用于再使用存储块的方法。
参照图7,当将存储块确定为坏块并且分类为由于暂时原因所导致时,用于再使用存储块的方法可以通过再次使用存储块来增加存储器装置150(参照图2至图3)的资源效率或提高存储器装置150(参照图2至图3)的耐用性。参照图1,在存储器系统110(参照图2至图3)中执行的运行时坏块管理操作包括检查运行时坏块是否可再使用(918)。在操作918中,存储器系统110可以执行确定运行时坏块是否可以正常操作的测试操作。例如,可以对特定存储块执行测试读取、编程或擦除操作。存储器系统110可以确定测试操作是否满足诸如操作时间余量的设定标准或条件。当确定运行时坏块可再使用时,可以开始用于恢复运行时坏块的操作(712)。
存储器系统110可以检查被确定为可再使用的运行时坏块中的编程顺序号(PSN或写入SN)(714)。当确定特定存储块为运行时坏块时,存储器系统110可以将相应存储块中存储的所有有效数据复制到另一存储块,并且更新所复制数据的映射信息。通过此过程,有效数据可不再保留在运行时坏块中。由于通常可能不再使用运行时坏块,因此无需擦除运行时坏块中的任何数据。进一步地,可能尚未擦除保留在运行时坏块中的、与数据相关联的元数据(诸如编程顺序号(PSN或写入SN))。也就是说,因为不需要擦除元数据,所以元数据可以保留在运行时坏块中。当存储器系统110确定运行时坏块可再使用时,可以通过相应运行时坏块中的第一编程顺序号(PSN或写入SN)来估计在可再使用坏块中执行编程操作的时间点。
存储器系统110可以在存储器装置150的另一存储块中搜索与第一编程顺序号(写入SN或PSN)相似、接近或相邻,即在第一编程顺序号(写入SN或PSN)的一定范围内的另一编程顺序号(相似SN)(716)。根据实施例,如果对存储器装置150的存储块内的页面完全执行了顺序编程操作,则存储器装置150中存储的编程顺序号可以是顺序地记录和递增的唯一编号。当存储器装置150中的不同存储块中存储的编程顺序号彼此相似时,这可指示在相似的时间执行了在相应存储块中执行的编程操作。例如,如果可再使用存储块中存储的编程顺序号是100,并且另一存储块中存储的编程顺序号是102,则可识别到将数据编程在可再使用存储块和另一存储块两者中的定时彼此接近。
虽然未示出,但是响应于用户的请求或内部操作,可以将数据顺序地编程在存储器装置150中,但是以离散时间来擦除存储器装置150中的数据。可以分阶段地执行找到相似编程顺序号的过程。例如,如果可再使用存储块中存储的编程顺序号是“100”,则存储器系统110可以首先搜索“95”至“105”的编程顺序号。当在存储器装置150中没有找到在“95”与“105”之间的编程顺序号时,存储器系统110可以扩展搜索范围,以找到在“90”与“110”之间的编程顺序号。根据实施例,存储器装置150中存储的编程顺序号可以是由设定数量的位表示的信息。例如,当编程顺序号是16位数据时,存储器系统110可以首先搜索具有16位之中的、从最高有效位开始的相同的13位的编程顺序号,即忽略3个最低有效位。当没有找到这样的编程顺序号时,存储器系统110可以将搜索标准细化为具有16位之中的、相同的11个最高有效位的编程顺序号。根据实施例,存储器系统110可以调整或确定关于编程顺序号的搜索范围。
在找到具有处于搜索范围内的编程顺序号的另一存储块之后,存储器系统110可以对可再使用存储块和在搜索中找到的存储块执行测试读取操作(718)。例如,当找到包括处于搜索范围内的编程顺序号的多个存储块时,存储器系统110可以通过测试读取操作,从候选存储块中选择具有与可再使用存储块最相似的操作状态的存储块(718)。可以基于各个存储块的读取时间来确定操作状态的相似性。读取时间最接近于可再使用存储块的读取时间的存储块可以被认为具有与可再使用存储块最相似的操作状态。
当确定了操作状态与可再使用存储块(RTB块)的操作状态最相似的存储块(目标存储块)(718)时,存储器系统110可以使这两个存储块的操作信息同步,即将目标存储块的操作信息复制到可再使用存储块中(720)。例如,如果存储器装置150中的第十一存储块具有与可再使用存储块的操作状态最相似的操作状态,则可以将关于第十一存储块的信息复制到可再使用存储块。所复制的信息可以与关于可再使用存储块的其他信息集成在一起。此处,待复制的关于存储块的信息可以包括编程/擦除(P/E)周期或擦除计数。参照图6,存在每个存储块的各种类型的信息(即,参数)。因为应当对可再使用存储块执行擦除操作以存储新数据,所以除了编程/擦除周期之外,存储器系统110可不复制其他信息,即关于特性的信息。
即使在确定特定存储块为运行时坏块时,擦除了关于相应存储块的损耗信息和健康信息,也可以通过上述过程来估计和恢复关于由坏块表标识的运行时坏块之中的可再使用存储块的损耗信息和健康信息。通过该过程,存储器系统110可以高效地改善对可再使用存储块的管理和控制。
图8示出根据本公开的另一实施例的在存储器系统中执行的运行时坏块管理操作。具体地,图8描述了将存储器装置150(参见图2至图3)中包括的第三存储块514确定为运行时坏块,然后以后再使用的过程。
参照图8,存储器系统110(参照图2至图3)可以包括第三存储块514和与第三存储块514相关联的操作信息524。假定在第三存储块514中发生运行时缺陷(RUNTIME DEFECT)。操作信息524可以包括图6所示的多个参数。根据实施例,控制器130可以从存储器装置150中包括的每个存储块收集操作信息,并且将所收集的操作信息用于块分配、损耗均衡、垃圾收集等。
存储器系统110可以确定第三存储块514是运行时坏块,并且将关于第三存储块BLK3的信息添加到坏块表550。由于关于第三存储块BLK3的信息被添加到坏块表550,所以存储器系统110可以擦除与第三存储块514相关联的操作信息524,以减少用于控制/管理的操作负担。
存储器系统110可以以后对第三存储块514执行测试操作,并且确定第三存储块514是否可再使用。当存储器系统110确定第三存储块514可再使用时,可以从坏块表550中移除关于第三存储块514的位置信息。
存储器系统110可以搜索存储器装置150的另一存储块中的、与保留在第三存储块514中的第一编程顺序号PSN相似,即在第一编程顺序号PSN的设定范围内的编程顺序号。因此,存储器系统110可以确定存储器装置150的第十一存储块516中记录的第二编程顺序号PSN'处于第一编程顺序号PSN的设定范围内。在对第三存储块514和第十一存储块516执行测试读取操作之后,存储器系统110可以基于测试结果(例如,读取时间tRD之间的差小于阈值),来确定第三存储块514和第十一存储块516具有相似的操作状态。
当存储器系统110确定第三存储块514和第十一存储块516的操作状态相似时,将第十一存储块516的操作信息526复制作为与第三存储块514相关联的操作信息524,其中该操作信息524在将第三存储块514添加到坏块表550时已经被擦除。所复制的信息可以被视为与第三存储块514相关联的操作信息524。因此,可以恢复先前擦除的操作信息524。
此后,存储器系统110可以对第三存储块514执行擦除操作。通过该过程,可以将存储器装置150中的第三存储块514改变为可以编程新数据的状态。
如上所述,存储器系统110可以将存储器装置150中的特定存储块确定为运行时坏块,确定运行时坏块是否以后可以再使用,然后基于在基于编程顺序号的搜索中找到的另一存储块的信息,来确定关于可再使用存储块的信息。通过该过程,估计待再使用的存储块的操作状态,从而可以减少或避免当再使用存储块被指示为具有与该再使用存储块的实际状态不同的初始化操作状态或不合适操作状态时可能出现的问题或故障。
在实施例中,根据本公开的实施例的存储器系统可以基于所估计的状态来再使用已经被确定为坏块的存储块,从而增加非易失性存储器装置的寿命并且避免减少非易失性存储器装置中的可用存储容量。
另外,根据本公开的另一实施例的存储器系统可以估计坏块之中的可再使用存储块的状态,从而提高对可再使用存储块执行的数据输入/输出操作的安全性和可靠性。
虽然已经针对具体实施例说明和描述了本教导,但是根据本公开,对于本领域技术人员显而易见的是,可以在不脱离如所附权利要求中限定的本发明的精神和范围的情况下进行各种改变和修改。

Claims (20)

1.一种存储器系统,包括:
存储器装置,包括多个非易失性存储块;以及
控制器:
在将所述多个非易失性存储块之中的第一存储块确定为坏块之后,确定所述第一存储块是否可再使用,并且
将与包括第二编程顺序号的第二存储块相关联的第二块信息复制到所述第一存储块的第一块信息,所述第二编程顺序号在所述第一存储块的第一编程顺序号的设定范围内。
2.根据权利要求1所述的存储器系统,其中所述控制器进一步:
对所述多个非易失性存储块之中的至少一个存储块执行数据输入/输出操作;并且
当在所述数据输入/输出操作期间,所述至少一个存储块满足设定条件时,确定所述至少一个存储块为所述坏块。
3.根据权利要求1所述的存储器系统,其中所述数据输入/输出操作包括读取操作、写入操作和擦除操作中的至少一个。
4.根据权利要求1所述的存储器系统,其中所述第一块信息和所述第二块信息中的每个包括相应存储块的编程/擦除周期,即P/E周期。
5.根据权利要求1所述的存储器系统,其中所述控制器进一步:在搜索存储块时,通过将所述第一编程顺序号中的设定数量的最高有效位与所述存储块中的每个的编程顺序号中的设定数量的最高有效位进行比较,来找到所述第二存储块。
6.根据权利要求5所述的存储器系统,其中当多个候选存储块具有所述设定数量的最高有效位时,所述控制器通过以下步骤找到所述第二存储块:
对所述第一存储块和所述多个候选存储块中的每个执行测试读取操作;并且
将所述多个候选存储块之中的单个存储块确定为所述第二存储块,所述单个存储块的操作状态与所述第一存储块的操作状态最相似。
7.根据权利要求1所述的存储器系统,其中所述控制器进一步:当将所述第一存储块确定为所述坏块时,擦除所述第一存储块的所述第一块信息。
8.根据权利要求1所述的存储器系统,其中所述控制器进一步:通过在没有来自外部装置的请求的情况下,在所述存储器系统中执行的用于损耗均衡或坏块管理的操作,来将所述第一存储块确定为所述坏块。
9.一种操作存储器系统的方法,包括:
在将存储器装置中的多个非易失性存储块之中的第一存储块确定为坏块之后,确定所述第一存储块是否可再使用;
搜索包括第二编程顺序号的第二存储块,所述第二编程顺序号在所述第一存储块的第一编程顺序号的设定范围内;并且
将与所述第二存储块相关联的第二块信息复制到所述第一存储块的第一块信息。
10.根据权利要求9所述的方法,进一步包括:
对所述多个非易失性存储块之中的至少一个存储块执行数据输入/输出操作;并且
当在所述数据输入/输出操作期间,所述至少一个存储块满足设定条件时,确定所述至少一个存储块为所述坏块。
11.根据权利要求10所述的方法,其中所述数据输入/输出操作包括读取操作、写入操作和擦除操作中的至少一个。
12.根据权利要求9所述的方法,其中所述第一块信息和所述第二块信息中的每个包括相应存储块的编程/擦除周期,即P/E周期。
13.根据权利要求9所述的方法,其中在搜索存储块时,通过将所述第一编程顺序号中的设定数量的最高有效位与所述存储块中的每个的编程顺序号中的设定数量的最高有效位进行比较,来找到所述第二存储块。
14.根据权利要求13所述的方法,其中当多个候选存储块具有相同数量的最高有效位时,搜索所述第二存储块包括:
对所述第一存储块和所述多个候选存储块中的每个执行测试读取操作;并且
将所述多个候选存储块之中的单个存储块确定为所述第二存储块,所述单个存储块的操作状态与所述第一存储块的操作状态最相似。
15.根据权利要求9所述的方法,进一步包括:
当将所述第一存储块确定为所述坏块时,擦除所述第一存储块的所述第一块信息。
16.根据权利要求9所述的方法,进一步包括:通过在没有来自外部装置的请求的情况下,在所述存储器系统中执行的用于损耗均衡或坏块管理的操作,来将所述第一存储块确定为所述坏块。
17.一种控制器,监视多个存储块的操作状态,并且当所述多个存储块之中的第一存储块的操作状态满足设定条件时,确定所述第一存储块为坏块,其中所述控制器:
在将所述第一存储块确定为所述坏块之后,确定所述第一存储块是否可再使用;并且
将与包括第二编程顺序号的第二存储块相关联的第二块信息复制到所述第一存储块的第一块信息,所述第二编程顺序号在所述第一存储块的第一编程顺序号的设定范围内。
18.根据权利要求17所述的控制器,其中所述控制器进一步:
对所述多个存储块之中的至少一个存储块执行数据输入/输出操作;并且
当在所述数据输入/输出操作期间,所述至少一个存储块满足所述设定条件时,将所述至少一个存储块确定为所述坏块。
19.根据权利要求17所述的控制器,其中所述控制器进一步:在搜索存储块时,通过将所述第一编程顺序号中的设定数量的最高有效位与所述存储块中的每个的编程顺序号中的设定数量的最高有效位进行比较,来找到所述第二存储块。
20.根据权利要求19所述的控制器,其中当多个候选存储块具有相同设定数量的最高有效位时,所述控制器通过以下步骤找到所述第二存储块:
对所述第一存储块和所述多个候选存储块中的每个执行测试读取操作;并且
将所述多个候选存储块之中的单个存储块确定为所述第二存储块,所述单个存储块的操作状态与所述第一存储块的操作状态最相似。
CN202110020847.6A 2020-06-29 2021-01-08 处理坏块的存储器系统及其操作方法 Withdrawn CN113867995A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0079297 2020-06-29
KR1020200079297A KR20220001222A (ko) 2020-06-29 2020-06-29 베드 블록을 처리하는 메모리 시스템 및 동작 방법

Publications (1)

Publication Number Publication Date
CN113867995A true CN113867995A (zh) 2021-12-31

Family

ID=78989733

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110020847.6A Withdrawn CN113867995A (zh) 2020-06-29 2021-01-08 处理坏块的存储器系统及其操作方法

Country Status (3)

Country Link
US (1) US11474708B2 (zh)
KR (1) KR20220001222A (zh)
CN (1) CN113867995A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116383097A (zh) * 2023-03-27 2023-07-04 深圳市芯存科技有限公司 Spi Nand flash坏块管理方法和系统
CN116383097B (zh) * 2023-03-27 2024-05-17 深圳市芯存科技有限公司 Spi Nand flash坏块管理方法和系统

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220001222A (ko) * 2020-06-29 2022-01-05 에스케이하이닉스 주식회사 베드 블록을 처리하는 메모리 시스템 및 동작 방법
WO2022204928A1 (en) * 2021-03-30 2022-10-06 Yangtze Memory Technologies Co., Ltd. Memory controller with read error handling
US11481123B1 (en) * 2021-04-27 2022-10-25 Micron Technology, Inc. Techniques for failure management in memory systems
US20220392562A1 (en) * 2021-06-08 2022-12-08 Macronix International Co., Ltd. Automatically skip bad block in continuous read or sequential cache read operation
US20230333762A1 (en) * 2022-04-15 2023-10-19 Micron Technology, Inc. Reuse of bad blocks for tasks in a memory sub-system
CN116880782B (zh) * 2023-09-08 2023-12-05 合肥康芯威存储技术有限公司 一种内嵌式存储器及其测试方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3200012B2 (ja) * 1996-04-19 2001-08-20 株式会社東芝 記憶システム
US8959280B2 (en) 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US9804922B2 (en) 2014-07-21 2017-10-31 Sandisk Technologies Llc Partial bad block detection and re-use using EPWR for block based architectures
US9569120B2 (en) 2014-08-04 2017-02-14 Nvmdurance Limited Adaptive flash tuning
US9542286B2 (en) * 2014-09-30 2017-01-10 Sandisk Technologies Llc Failure logging mechanism to reduce garbage collection time in partially reused bad blocks
TWI604308B (zh) * 2015-11-18 2017-11-01 慧榮科技股份有限公司 資料儲存裝置及其資料維護方法
KR102601211B1 (ko) * 2016-06-01 2023-11-10 삼성전자주식회사 빠른 재사용 메모리 블록 검출 방법 및 이를 이용한 메모리 블록 관리 방법
KR20180026876A (ko) * 2016-09-05 2018-03-14 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR20180047329A (ko) * 2016-10-31 2018-05-10 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10459803B2 (en) * 2017-06-28 2019-10-29 Western Digital Technologies, Inc. Method for management tables recovery
US11132247B2 (en) * 2018-07-30 2021-09-28 Micron Technology, Inc. Selective bad block untag and bad block reuse
KR20200113990A (ko) * 2019-03-27 2020-10-07 에스케이하이닉스 주식회사 메모리 시스템 내 메모리 장치의 동작 상태를 확인하는 방법 및 장치
KR20220001222A (ko) * 2020-06-29 2022-01-05 에스케이하이닉스 주식회사 베드 블록을 처리하는 메모리 시스템 및 동작 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116383097A (zh) * 2023-03-27 2023-07-04 深圳市芯存科技有限公司 Spi Nand flash坏块管理方法和系统
CN116383097B (zh) * 2023-03-27 2024-05-17 深圳市芯存科技有限公司 Spi Nand flash坏块管理方法和系统

Also Published As

Publication number Publication date
US20210405888A1 (en) 2021-12-30
US11474708B2 (en) 2022-10-18
KR20220001222A (ko) 2022-01-05

Similar Documents

Publication Publication Date Title
US11429307B2 (en) Apparatus and method for performing garbage collection in a memory system
US11474708B2 (en) Memory system for handling a bad block and operation method thereof
CN112445723A (zh) 用于在存储器系统中的传输映射信息的装置和方法
US11409606B2 (en) Apparatus and method for handling a firmware error in operation of a memory system
US20210279180A1 (en) Apparatus and method for controlling map data in a memory system
US11526298B2 (en) Apparatus and method for controlling a read voltage in a memory system
CN111755039A (zh) 在恢复进程期间减少存储器系统中单元干扰的设备及方法
CN114385407A (zh) 用于校正数据处理系统的数据传输中的错误的设备和方法
CN113495852A (zh) 控制存储器系统中的映射数据的设备和方法
CN113138873A (zh) 处置存储器系统中的数据错误的设备和方法
CN113010098A (zh) 用于提高存储器系统的输入/输出吞吐量的设备和方法
US11620213B2 (en) Apparatus and method for handling data stored in a memory system
CN114661226A (zh) 用于传输由非易失性存储器系统生成的元数据的装置和方法
US11360697B2 (en) Apparatus and method for encoding and decoding operations to protect data stored in a memory system
US20220171564A1 (en) Apparatus and method for maintaining data stored in a memory system
US20230333750A1 (en) Apparatus and method for power-loss data protection in a system
CN112445424A (zh) 提高存储器系统的输入/输出吞吐量的设备和方法
US11941289B2 (en) Apparatus and method for checking an error of a non-volatile memory device in a memory system
US11704281B2 (en) Journaling apparatus and method in a non-volatile memory system
CN115756298A (zh) 用于控制数据处理系统中的共享存储器的设备和方法
CN114153372A (zh) 在存储器系统中控制和存储映射数据的设备和方法
CN113687769A (zh) 用于提高数据处理系统中的操作效率的设备和方法
US11775426B2 (en) Apparatus and method for securing a free memory block in a memory system
US11798648B2 (en) Apparatus and method for recovering data in a memory system
US20230153032A1 (en) Apparatus and method for improving data input/output performance of storage

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
WW01 Invention patent application withdrawn after publication

Application publication date: 20211231