CN110347528A - 用于坏块管理的存储器系统及方法 - Google Patents

用于坏块管理的存储器系统及方法 Download PDF

Info

Publication number
CN110347528A
CN110347528A CN201811289494.4A CN201811289494A CN110347528A CN 110347528 A CN110347528 A CN 110347528A CN 201811289494 A CN201811289494 A CN 201811289494A CN 110347528 A CN110347528 A CN 110347528A
Authority
CN
China
Prior art keywords
bad
block
page
piece
page face
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201811289494.4A
Other languages
English (en)
Other versions
CN110347528B (zh
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
Hynix Semiconductor 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 Hynix Semiconductor Inc filed Critical Hynix Semiconductor Inc
Publication of CN110347528A publication Critical patent/CN110347528A/zh
Application granted granted Critical
Publication of CN110347528B publication Critical patent/CN110347528B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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
    • G06F11/1032Simple parity
    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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
    • 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
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • 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
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • 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
    • G11C29/88Masking faults in memories by using spares or by reconfiguring with partially good memories
    • G11C29/883Masking faults in memories by using spares or by reconfiguring with partially good memories using a single defective memory device with reduced capacity, e.g. half capacity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Abstract

本发明提供一种控制存储系统的方法,该存储系统可包括多个存储器单元和存储器控制器,其中多个存储器单元被布置在块中,存储器控制器联接到多个存储器单元,且用于控制多个存储器单元中的数据写入和数据读取。该方法包括:如果块中坏页面的计数为零,则将该块识别为好块;如果坏页面的计数低于阈值数量,则将该块识别为劣块;并且如果坏页面的计数大于或等于阈值数量,则将该块识别为坏块。该方法包括使用好块和劣块进行读取操作和编程操作,而不使用坏块进行读取操作和编程操作。

Description

用于坏块管理的存储器系统及方法
相关申请的交叉引用
本申请求于2018年4月3日提交的申请号为62/652,177,名称为“坏块管理(BADBLOCK MANAGEMENT)”的临时申请的优先权,该临时申请被转让给本申请的受让人,并且该临时申请的全部内容通过引用而明确地并入本文。
技术领域
本发明总体涉及一种用于存储装置的系统和方法,且特别地,涉及提高非易失性存储器装置的性能。
背景技术
固态存储器被广泛的用于各种电子系统,包括例如消费电子装置(例如,移动电话、摄像机、计算机等)和企业计算系统(例如,硬盘驱动器、随机存取存储器(RAM)等)。固态存储器由于延迟、吞吐量、抗冲击性、封装和其它考虑因素已比机械或其它存储器存储技术更受欢迎。在这些非易失性存储器装置中,NAND闪速存储器装置由于其高度集成而带来的低制造成本而广受欢迎。
基于闪速存储器的固态硬盘(SSD)驱动器可包括许多闪速存储器管芯。每一个闪存管芯可以具有数千个物理块。每一个块可包括多个闪存页面。在SSD的生命周期中,闪存块的可靠性质量可能会随着时间的推移而劣化,并且一些块可能会被识别为坏块,并从可用闪存块列表中去除。在一些常规系统中,每当在块中的任何地方发现坏页面或坏字线时,该块被标记为坏块,并且不再被使用。如下所述,这种做法可能会导致存储器装置受到不期望的限制。
发明内容
在常规的坏块管理方法中,块中的单个坏页面会导致整个块不再被使用。发明人已经认识到,这种实践可以减少预留空间(OP)并导致更多的写入放大(WA),如下文进一步解释的,这可能降低存储器装置的可靠性。本发明的一些实施例提供了当块内的坏字线的数量小于某个阈值时,介于物理块从好块变为坏块之间的中间状态。这种技术可以延迟数据块引退,增加预留空间,并减少不必要的后台操作。一些实施例还包括群集块类型和对劣块编程的技术。
根据一些实施例,系统包括布置在块中的存储器单元,每一个块包括多个页面,并且每一个页面具有多个存储器单元。该系统还包括联接到存储器单元的存储器控制器,用于控制存储器单元的擦除操作、编程操作和读取操作。存储器控制器配置成:如果块中坏页面的计数为零,则存储器控制器将该块识别为好块;如果坏页面的计数小于阈值数量,则将该块识别为劣块;并且如果坏页面的计数大于或等于阈值数量,则将该块识别为坏块。存储器控制器配置成使用好块和劣块进行读取操作和编程操作,而不使用坏块进行读取操作和编程操作。
在一些实施例中,系统还包括劣块的表,对于每一个劣块,该表列出劣块中坏页面的计数和劣块中坏页面的位置。存储器控制器配置成接收关于坏页面的信息,并确定坏页面是处于好块还是处于劣块中。在确定坏页面处于好块中时,好块被识别为劣块,并在劣块的表中创建条目。在确定坏页面处于劣块中时,存储器控制器在劣块的表中定位劣块,增加劣块中坏页面的计数,并记录坏页面的位置。存储器控制器还确定坏页面的计数是否大于阈值数量。在确定坏页面的计数大于阈值数量时,该块被确定为坏块。
在一些实施例中,接收关于坏页面的信息包括在目标页面地址处执行读取操作,并且确定是否已经发生读取失败。在检测到读取失败时,该页面被识别为坏页面。系统在目标页面地址恢复页面中的正确数据,并将正确数据复制到好块。
在一些实施例中,存储器控制器配置成接收编程操作的目标页面地址,并且确定目标页面地址是处于好块、坏块还是处于劣块中。在确定目标页面地址处于好块中时,系统就在目标页面地址处执行编程操作。在确定目标页面地址处于坏块中时,系统就在替换块中执行编程操作。在确定目标页面地址在劣块中时,系统确定目标页面地址是否指向坏页面。在确定目标页面地址没有指向坏页面时,系统就在目标页面地址处执行编程操作。在确定目标页面地址指向坏页面时,系统就在替换页面地址处执行编程操作。
在一些实施例中,系统包括多个超级块。每一个超级块包括多个块,多个块中的一个块作为奇偶校验块,而其它块作为数据块。奇偶校验块配置成存储数据块的奇偶校验信息。存储器控制器配置成确定超级块是否包括劣块,并且在确定超级块包括劣块时,将劣块配置为超级块的奇偶校验块。
在一些实施例中,系统包括多个超级页面。每一个超级页面包括多个页面且具有来自超级块中每一个块的一个页面。超级页面中的多个页面中的一个页面作为奇偶校验页面,而其它页面作为数据页面。奇偶校验页面配置成存储数据页面的奇偶校验信息。存储器控制器配置成确定超级页面是否包括坏页面,并且在确定超级页面包括坏页面时,存储器控制器将坏页面排除在操作之外,并且将剩余页面中的一个页面配置为奇偶校验页面,并将其它剩余页面配置为数据页面。
在一些实施例中,系统包括多个超级块,每一个超级块包括多个块。存储器控制器配置成对多个块按照可靠性质量进行等级排序,并且将具有最低的可靠性的块配置为奇偶校验块,将其它块配置为数据块。奇偶校验块配置成存储数据块的奇偶校验信息。
根据一些实施例,提供了一种用于控制存储系统的方法,该存储系统可包括多个存储器单元和存储器控制器,其中多个存储器单元被布置在块中,存储器控制器联接到多个存储器单元,且用于控制多个存储器单元中的数据写入和数据读取。该方法包括:如果块中坏页面的计数为零,则将该块识别为好块;如果坏页面的计数小于阈值数量,则将该块识别为劣块;并且如果坏页面的计数大于或等于阈值数量,则将该块识别为坏块。该方法包括使用好块和劣块进行读取操作和编程操作,而不使用坏块进行读取操作和编程操作。
附图说明
图1是根据本发明的一些实施例的存储器装置的简化框图;
图2是示出根据本发明的一些实施例的存储器装置中的写入放大和预留空间之间的相关性的简化图;
图3A和图3B是示出根据本发明的一些实施例的坏块管理方法的简化图;
图4是示出根据本发明的一些实施例的劣块管理方法的简化流程图;
图5是示出根据本发明的实施例的用于在劣块中编程的过程的简化流程图;
图6是示出根据本发明的一些实施例的用于操作超级块的方法的简化图;
图7是示出根据本发明的一些实施例的用于操作包括劣块的超级块的方法的简化图;
图8示出了根据本发明的一些实施例的用于操作包括超级页面的非易失性数据存储装置的方法;
图9是示出根据本发明的一些实施例的固态存储系统的简化框图;并且
图10是示出可用于实施根据本发明的各个实施例的设备的简化框图。
具体实施方式
图1是根据本发明的一些实施例的存储器装置的简化框图。在该示例中,闪速存储器装置100包括具有多个非易失性存储器单元的存储器单元阵列110。在一些实施例中,存储器单元被布置在多个存储块中。每一个存储块可包括多个非易失性存储器单元,每一个存储块与相应的地址相关联。存储器装置100还包括解码器120,例如行解码器。在示例中,解码器120接收用于存储器操作的具有地址ADDR 130的命令,例如具有读取地址的读取命令。地址130可以是逻辑地址。在实施例中,诸如读取操作、写入或编程操作、擦除操作等存储器操作被引导至一组存储器单元,例如被引导至页面、扇区或块。如上所述,块可包括多个页面。读取或编程命令通常指向页面,并且擦除命令可以指向块。根据实施例,页面或扇区可以是0.5千字节到4千字节,或不同的大小。根据实施例,页面或扇区可包括联接到相同字线的存储器单元。在这种情况下,解码器120基于与用于选择存储页面的ADDR 130相关的信息来选择字线(WL)140,该存储页面可以是联接到所选择的字线的一行存储器单元。因此,页面和字线可交换地使用。
读出放大器块150通过位线152联接到存储器单元阵列110。缓冲块160联接到读出放大器块150并将输出数据提供给外部装置。在读取操作中,读出放大器块150感测存储在存储器单元阵列110的每一个存储器单元中的数据,并将该数据提供给缓冲块160。在写入或编程操作中,缓冲块160将待写入或编程的数据提供给存储器单元阵列110。
在存储器读取操作期间,读出通过字线选择的非易失性存储器单元中的电荷。存储器单元的单元阈值电压可以根据存储在存储器单元中的电荷而变化。可以使用高于单元阈值电压的读取电压来确定存储在存储器单元中的数据。在一些实施例中,每一个非易失性存储器单元可以是多层存储器单元,并且使用多个阈值电压来确定存储器单元的数据状态,如通过位模式进行表示。在这些情况下,可以使用提供读取阈值178的阈值控制电路170来控制阈值电压。
基于闪速存储器的固态硬盘(SSD)驱动器可包括许多闪速存储器管芯。每一个闪存管芯可以包括数千个物理块。每一个块可包括数百或数千个闪存页面。在一些情况下,闪存块是用于擦除操作的原子单位(即,最小的可寻址单位),并且闪存页面可以是用于读取或编程操作的原子单位。换言之,在这些情况下,一次对一个块执行擦除操作,一次对一个页面执行读取或编程操作。
在SSD的生命周期中,闪存块的可靠性可能会随着时间的推移而劣化,并且一些块可能会被识别为坏块,并从可用闪存块列表中去除。去除坏块可以减少整个SSD的实际预留空间,从而导致更大的写入放大。
在诸如固态驱动器(SSD)的数据存储装置中,预留空间表示包括额外的存储容量。SSD预留空间可以通过随时间将写入和擦除的总数量分布在更大数量上的NAND闪存块和页面上来提高固态驱动器的耐用性。预留空间还可以通过为闪存控制器提供另外的缓冲空间来管理编程/擦除(P/E)周期并且提高写入操作立即访问预擦除块的可能性,从而提高性能。额外的容量作为可用存储对主机不可见。
因为闪速存储器必须在其可以被重新写入之前被擦除,与写入操作相比,擦除操作的粒度要粗得多,所以执行这些操作的过程导致不止一次地移动(或重新写入)用户数据和元数据。因此,重新写入一些数据要求闪存中已使用过的部分被读取、更新并被写入新的位置,而如果新的位置先前在某个时间点被使用过,则首先擦除新的位置;由于闪存的工作方式,必须擦除和重新写入比新数据的量实际需要的闪存部分大得多的闪存部分。这种被称为写入放大(WA)的倍增效应可能增加SSD寿命期间所需的写入次数,导致SSD能够进行可靠操作的时间缩短。增加的写入也会消耗闪速存储器的带宽,这主要会降低SSD的随机写入性能。写入放大可以通过闪速存储器进行的写入与来自主机系统的写入的比率来测量。
图2是示出根据本发明的一些实施例的存储器装置中的写入放大和预留空间之间的相关性的简化图。X轴是预留空间(OP),Y轴是写入放大(WA)。在图2中,横轴是以百分比表示的预留空间。竖轴是写入放大,其通常用写入放大系数(WAF)表示,可以是1到N之间的数字。从图2中可以看出,随着预留空间的增加,写入放大减少。通常,坏块越多,预留空间越小,这往往会导致更大的写入放大。增加的写入放大会导致闪存块磨损得更快,并且会导致整个驱动器快速报废。在一些常规系统中,每当在块中的任何地方发现坏字线或坏页面时,该块被标记为坏块,并且不再被使用。这种做法会加剧减少预留空间和增加写入放大的问题。
图3A和图3B是示出根据本发明的一些实施例的坏块管理方法的简化图。在一些实施例中,SSD内的所有块被分类为三种类型或类别:好块、劣块和坏块。图3A示出了存储器单元的三个块,包括好块310、劣块320和坏块330。每一个块具有N个页面,从1、2……至N。图3A中还示出了许多坏页面。诸如块310的好块是没有坏页面(或者,由对应的坏字线标识)的块。诸如块330的坏块是具有大量的坏页面(例如,超过阈值数量)并且被标记为不可用并被从服务中去除的块。诸如块320的劣块是具有特定数量的坏页面(或坏字线)的块,但坏页面的数量小于特定阈值。劣块被保留用于存储器操作。
在一些实施例中,存储装置可维护跟踪块的表。在一些实施例中,该装置可以维护用于三种类型的块的表。存储器装置中的控制器可以用硬件、软件、固件或其组合来实施。在一些实施例中,表可以被实施为哈希表。如本领域所知,哈希表是实现为关联阵列的数据结构,是可以将密钥映射到值的结构。哈希表使用哈希函数计算桶或槽阵列中的索引,从哈希表中可以找到所需的值。每一个表条目可包括块编号、块中坏页面的编号以及一列坏页面的位置。
图3B示出了劣块的示例性列表,该列表列出了坏块的块编号(例如,B1、B2、B3、……)、每一个块中坏页面的编号(例如,N1、N2、N3、……)以及每一个块中坏页面的位置(例如,L1、L2、L3、……)。坏页面的位置可以是块中坏页面的页面编号。例如,{1,11,1332,等}的表条目表示块#1是劣块,其具有11个坏页面,并且页面#1332是坏页面中的一个。
图4是示出根据本发明的一些实施例的劣块管理方法的简化流程图。在固态硬盘(SSD)装置中,页面是通常表示与字线相关联的存储器单元的逻辑单位。因此,术语“页面”和“字线”可交换地使用。当在块中检测到读取失败时,联接到对应字线的页面中的数据通过例如软LDPC解码、RAID恢复等错误恢复流程恢复。一旦数据被恢复,坏字线中的数据被复制到好的开放块中,并且块中坏字线的总数量增加1。如果总坏字线的计数大于某个阈值,则该块被分类为坏块。否则,将该块添加到劣块表中,并记录关于对应的新坏字线的信息。在一些情况下,劣块表中坏页面的数量会增加,并且新的坏页面的位置会被存储在表中。
如图4所示,方法400描述了处理系统中的劣块的过程。系统包括劣块的表,对于每一个劣块,该表列出劣块中坏页面的计数和劣块中坏页面的位置。该方法包括:在410中,接收关于坏页面的信息,并且在420中,确定坏页面处于好块中还是处于劣块中。在430中,在确定坏页面处于好块中时,该好块被识别为劣块,并且在劣块的表中创建条目。表条目可以包括块编号、坏页面的位置或对应的字线的编号,以及坏页面或坏字线的计数,在这种情况下,对于该新的劣块,坏页面或坏字线的计数是“1”。在440中,在确定坏页面处于劣块中时,在劣块的表中定位该劣块,劣块中坏页面的计数增加,并且记录坏页面的位置。在450中,将坏页面的计数与阈值数量进行比较,以确定坏页面的计数是否大于阈值数量。如果坏页面的计数大于阈值数量,则在460中,确定该块为坏块,并且将当前块添加到坏块表中。在470中,如果坏页面的计数小于阈值数量,则该块保持为劣块,并且劣块的表被更新以包括新的坏页面计数和坏页面在劣块中的位置。
图5是示出根据本发明的实施例的用于在劣块中编程的过程的简化流程图。在编程操作期间,系统首先检查目标块的状况。坏块不会被选择为目标块。如果目标块是好块,则数据被编程到目标块中。如果目标块是劣块,则系统会检查劣块的表中目标页面的条目。如果目标页面是坏页面,则系统可以将数据编程到好的页面中。系统可以首先将随机数据编程到坏页面及与其直接相邻的页面中,或者跳过坏页面及与其直接相邻的页面。
图5中的流程图总结了在劣块中编程的方法500。在510中,系统接收用于编程操作的目标页面地址。在520中,系统确定目标页面地址是处于好块、处于坏块还是处于劣块中。在530中,在确定目标页面地址处于好块中时,系统就在目标页面地址处执行编程操作。在550中,在确定目标页面地址处于坏块中时,系统就在替换块中执行编程操作。在550中,在确定目标页面地址处于坏块中时,系统就在替换块处执行编程。在560中,确定目标页面地址是否指向坏页面。在570中,在确定目标页面地址没有指向坏页面时,系统就在目标页面地址处执行编程操作,在580中,在确定目标页面地址指向坏页面时,系统在替换页面地址处执行编程操作。
图6是示出根据本发明的一些实施例的用于操作超级块的方法的简化图。如图6所示,非易失性数据存储装置600包括多个存储器管芯,标记为管芯#1、管芯#2、管芯#3、……、管芯#N。在示例中,超级块601可以包括来自每一个管芯的块,例如来自管芯#1的块#1、来自管芯#2的块#2、来自管芯#3的块#3、……、来自管芯#N的块#N。在其它实施例中,超级块包括多个块,但超级块中的块并不限定于来自不同的管芯。超级块可以用作存储器操作中的逻辑单位。例如,在超级块中,块中的一个块可以用作存储奇偶校验位的奇偶校验块,剩余块可以用作存储数据的数据块。作为示例,奇偶校验块可以存储通过数据块中对应数据位的异或(XOR)操作获得的奇偶校验位。
图7是示出根据本发明的一些实施例的用于操作包括劣块的超级块的方法的简化图。如果形成超级块(SB)的一条块包括劣块,则劣块可以被选择为存储奇偶校验数据的目标块,而其它的好块可以被用作数据块并存储正常数据。在一些实施例中,如果超级块中存在任何劣化的物理块,则每一个超级块元数据可以记录奇偶校验物理块编号,并且奇偶校验物理块可以使用劣化的物理块来存储。
图7中示出了具有劣块的超级块的示例。在此示例中,存储装置700包括N个存储器管芯,管芯#1、管芯#2、管芯#3、管芯#4、……、以及管芯#N。图中示出了四个超级块,SB0、SB1、SB2和SB3,每一个超级块包括来自每一个管芯的块。将四个劣块示出为阴影块,而好的块示出为没有阴影的块。劣块可以被优先处理为奇偶校验块。如果超级块中不存在劣化的物理块,则可以从好块中的一个来选择作为奇偶校验物理块。如果仅存在一个劣块,则可以将该劣块选作为奇偶校验块。如果存在不止一个劣块,则可以选择劣块中的一个作为奇偶校验块,而剩余的劣块和其它的好块可以用作数据块。因为正常用户数据可以首先被编程到条带中的非奇偶校验物理块中,然后被编程的用户数据(例如,来自XOR操作)的奇偶校验数据可以被编程到所选择的奇偶校验块,所以这种设计不会影响编程延迟。在图7的示例中,SB0中的好块(在管芯#N中)被用作奇偶校验块,SB1(在管芯#3中)、SB2(在管芯#1中)和SB3(在管芯#3中)中每一个中的劣块被用作奇偶校验块。SB4具有两个劣块(在管芯#1和管芯#3中);在管芯#3中的一个劣块用作奇偶校验块,而在管芯#1中的另一劣块用作存储用户数据的数据块。除非在其它块中出现错误,否则通常不会读取奇偶校验块。因此,在用作奇偶校验块时,劣块的较低可靠性并不那么危险。因为对正常数据的读取重试次数较少,所以这种设计可以改善读取延迟。
上述方案可用于增强现有的超级块操作。在包括超级块的非易失性数据存储装置中,每一个超级块包括多个块。存储装置可以根据可靠性对多个块进行等级排序,并且将具有最低的可靠性的块配置为奇偶校验块,将其它块配置为数据块。奇偶校验块用于存储数据块的奇偶校验信息。例如,在不存在任何劣块的SB中,其中所有的块都是好块,可以在超级块中对物理块的可靠性进行等级排序。在一些实施例中,可以记录具有较低可靠性的物理块,例如具有较高的原始BER(位错误率)的物理块,并且这种块可以被选择为芯片删除奇偶校验块。然后,正常的用户数据可以被存储在相对高质量的块上。可以降低读取重试率和芯片删除触发率,并且可以缩短读取延迟。
图8示出了根据本发明的一些实施例的用于操作包括超级页面的非易失性数据存储装置的方法。超级页面可以具有作为存储器操作的逻辑单位的多个页面。在一些情况下,每一个页面可以被设置在不同的块中。在一些情况下,块可以设置在不同的管芯中。然而,也可以存在其它的物理布置。在一些实施例中,页面中的一个页面可以被用作奇偶校验页面,用于将例如通过XOR操作从其它页面中的数据导出的奇偶校验位存储在超级页面中。如图8所示,非易失性数据存储装置800包括多个存储块,标记为块#1、块#2、块#3、……、块#N。在示例中,超级页面801可以包括来自每一个的页面,例如来自块#1的页面#1、来自块#2的页面#2、来自块#3的页面#3、……、来自块#N的页面#N。
劣块可能具有一个或多个坏页面。如同奇偶校验块那样,如果劣块中存在坏页面,则不使用该坏页面,并且使用超级页面中的好页面中的一个。在这种情况下,该超级页面比好的超级页面少一个数据页面。如上所述,劣块可以用作奇偶校验块。因此,作为奇偶校验页面,可以降低超级页面中少一个数据页面的风险。
在一些实施例中,非易失性数据存储装置可以配置成确定超级页面是否包括坏页面。在确定超级页面包括坏页面时,存储装置将坏页面排除在操作之外,并且将剩余页面中的一个页面配置为奇偶校验页面,并将其它剩余页面配置为数据页面。
本发明的一些实施例提供了当块内的坏字线的数量小于某个阈值时,介于物理块从好块变为坏块之间的中间状态。这可以延迟数据块的引退,增加预留空间(OP),并减少不必要的后台操作。一些实施例还包括群集化块类型的技术和对劣块编程的技术。
一些实施例还包括使用劣化物理块作为奇偶校验块来降低对正常用户数据读取时的读取重试率的技术。这可以减少读取重试时间,从而减少读取延迟。
图9是示出根据本发明的一些实施例的固态存储系统的简化框图。如图所示,固态存储系统900可包括固态存储装置950和存储控制器960。例如,固态存储装置950可包括如图1所示的闪速存储器装置100。又被称为存储器控制器的存储控制器960是执行本文所述的技术的系统的一个示例。在一些实施例中,存储控制器960可在诸如ASIC或FPGA的半导体装置上实施。一些功能也可以在固件中实施。
控制器904可以包括用于执行上述控制功能的一个或多个处理器906和存储器908。存储控制器960还可以包括查找表910,查找表910可以包括劣块的表和坏块的表等。寄存器914可以用于存储用于控制功能的数据,例如劣块计数的阈值等。
控制器904可以通过存储接口902联接到固态存储器950。错误校正解码器912(例如,LDPC解码器或BCH解码器)可以对读取数据执行错误校正解码,并且将校正的数据发送到控制器904。控制器904将具有读取失败的页面标识给垃圾收集器916,该垃圾收集器916对这些页面执行校正处理(例如,通过将数据经过或不经过错误校正解码而复制到新位置)。
图10描述了可以使用本公开的实施例的系统的一个可能的实施方案。图10仅仅是对结合本公开的实施例的说明,并不限制如权利要求所述的本发明的范围。本领域的普通技术人员将认识到其它的变化、修改和替换。在一个实施例中,计算机系统1000通常包括监视器1010、计算机1020、用户输出装置1030、用户输入装置1040、通信接口1050等。
如图10所示,计算机1020可包括经由总线子系统1090与多个外围装置通信的处理器1060。这些外围装置可包括用户输出装置1030、用户输入装置1040、通信接口1050以及诸如随机存取存储器(RAM)1070和磁盘驱动器1080的存储子系统。作为示例,磁盘驱动器可以包括利用例如为图1所示的具有上述特征的存储器装置100的非易失性存储器装置实施的固态硬盘(SSD)。
用户输入装置1040包括用于将信息输入到计算机1020的所有可能类型的装置和机构。这些装置和机构可包括键盘、小键盘、结合到显示器中的触摸屏、诸如语音识别系统和麦克风的音频输入装置以及其它类型的输入装置。在各个实施例中,用户输入装置1040通常被实施为计算机鼠标、轨迹球、跟踪板、操纵杆、无线遥控器、绘图板、语音命令系统、眼动追踪系统等。用户输入装置1030通常允许用户经由诸如点击按钮等命令来选择出现在监视器1010上的对象、图标、文本等。
用户输出装置1030包括用于从计算机1020输出信息的所有可能类型的装置和机构。这些装置和机构可包括显示器(例如,监视器1010)、诸如音频输出装置的非视觉显示器等。
通信接口1050提供到其它通信网络和装置的接口。通信接口1050可用作从其它系统接收数据和向其它系统发送数据的接口。通信接口1050的实施例通常包括以太网卡、调制解调器(电话、卫星、电缆、ISDN)、(异步)数字用户线(DSL)单元、火线接口、USB接口等。例如,通信接口1050可联接到计算机网络,联接到火线总线等。在其它实施例中,通信接口1050可被物理地集成在计算机1020的主板上,并且可以是诸如软DSL的软件程序等。
在各个实施例中,计算机系统1000还可包括能够通过诸如HTTP、TCP/IP、RTP/RTSP协议等的网络进行通信的软件。在本发明的可选实施例中,也可使用其它通信软件和传输协议,例如IPX、UDP等。在一些实施例中,计算机1020包括来自英特尔的一个或多个Xeon微处理器作为处理器1060。进一步地,在一个实施例中,计算机1020包括基于UNIX的操作系统。
RAM 1070和磁盘驱动器1080是诸如本发明的实施例的配置成存储包括可执行计算机代码、人类可读代码等的数据的有形介质的示例。其它类型的有形介质包括软盘,可移动硬盘,诸如CD-ROM、DVD和条形码的光学存储介质,诸如闪速存储器、非瞬态只读存储器(ROM)的半导体存储器,电池支持的易失性存储器,网络存储装置等。RAM 1070和磁盘驱动器1080可配置成存储提供本发明的功能的基本编程和数据结构。
提供本发明的功能的软件代码模块和指令可被存储在RAM 1070和磁盘驱动器1080中。这些软件模块可由处理器1060执行。RAM 1070和磁盘驱动器1080还可提供用于存储根据本发明使用的数据的存储库。
RAM 1070和磁盘驱动器1080可包括多个存储器,其包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)和其中存储固定的非瞬态指令的只读存储器(ROM)。RAM 1070和磁盘驱动器1080可包括为程序和数据文件提供持久(非易失性)存储的文件存储子系统。RAM 1070和磁盘驱动器1080还可包括诸如可移除闪速存储器的可移除存储系统。
总线子系统1090提供用于使计算机1020的各个部件和子系统按预期彼此通信的机构。虽然总线子系统1090被示意性地示出为单个总线,但总线子系统的可选实施例可利用多个总线。总线系统1090可以是可以使用本公开的PCIe PHY实施例实施的高速PCI总线。
图10是能够实现本发明的计算机系统的代表。对于本领域普通技术人员将显而易见的是,许多其它硬件和软件配置适用于本发明。例如,计算机可以是台式、便携式、机架安装或平板配置的计算机。另外,计算机可以是一系列联网的计算机。进一步地,可考虑使用其它微处理器,诸如奔腾TM或安腾TM微处理器、AMD公司(Advanced Micro Device,Inc,)的皓龙TM或速龙XPTM微处理器等。进一步地,可考虑其它类型的操作系统,诸如微软公司的 等,太阳微系统公司的Solaris、LINUX、UNIX等。在其它实施例中,上述技术可在芯片或辅助处理板上实施。
本发明的各个实施例可以软件或硬件中的逻辑或两者的组合的形式来实施。逻辑可作为一组指令存储在计算机可读或机器可读的非瞬态存储介质中,该组指令适于引导计算机系统的处理器执行在本发明的实施例中公开的一组步骤。逻辑可形成适于引导信息处理装置执行在本发明的实施例中公开的一组步骤的计算机程序产品的一部分。基于本文提供的公开内容和教导,本领域普通技术人员将理解实施本发明的其它方式和/或方法。
本文描述的数据结构和代码可被部分地或完全地存储在计算机可读存储介质和/或硬件模块和/或硬件设备上。计算机可读存储介质包括但不限于易失性存储器,非易失性存储器,诸如磁盘驱动器、磁带、CD(光盘)、DVD(数字通用光盘或数字视频光盘)的磁性和光学存储装置或现在已知或以后开发的能够存储代码和/或数据的其它介质。本文描述的硬件模块或设备包括但不限于专用集成电路(ASIC)、现场可编程门阵列(FPGA)、专用或共享处理器和/或现在已知或以后开发的其它硬件模块或设备。
本文描述的方法和过程可被部分地或完全地实施为存储在计算机可读存储介质或装置中的代码和/或数据,使得当计算机系统读取和执行代码和/或数据时,计算机系统执行相关的方法和过程。这些方法和过程也可被部分地或完全地实施在硬件模块或设备中,使得当硬件模块或设备被激活时,它们执行相关的方法和过程。本文公开的方法和过程可使用代码、数据和硬件模块或设备的组合来实施。
本文公开的实施例在范围上不受本文所述的具体实施例的限制。除了本文描述的本发明的实施例的各种修改之外,根据上文的描述和附图,本发明的实施例的各种修改对于本领域普通技术人员而言是显而易见的。进一步地,虽然已经在特定环境中针对特定目的的特定实施方案的上下文中描述了本发明的一些实施例,但是本领域的普通技术人员将认识到的是,本发明的有用性不限于此,并且本发明的实施例可以在任何数量的环境中针对任何数量的目的而有益地实施。

Claims (20)

1.一种非易失性数据存储装置,包括:
存储器单元,其布置在块中,每一个块包括多个页面,并且每一个页面具有多个存储器单元;
存储器控制器,其联接到所述存储器单元,且用于控制所述存储器单元的擦除操作、编程操作和读取操作;
其中基于所述块中坏页面的计数,每一个块被识别为好块、劣块或坏块,并且每一个块以如下方式被识别:
如果坏页面的计数为零,则块被识别为好块;
如果坏页面的计数小于阈值数量,则块被识别为劣块;并且
如果坏页面的计数大于或等于所述阈值数量,则块被识别为坏块;
劣块的表,对于每一个劣块,所述劣块的表列出所述劣块中坏页面的计数和所述劣块中坏页面的位置;
其中所述存储器控制器:
接收关于坏页面的信息;
确定所述坏页面是处于好块中还是处于劣块中;
在确定所述坏页面处于好块中时,将所述好块标识为劣块,并且在所述劣块的表中创建条目;
在确定所述坏页面处于劣块中时,在所述劣块的表中定位所述劣块,增加所述劣块中所述坏页面的计数,并且记录所述坏页面的位置;
确定所述坏页面的计数是否大于所述阈值数量;
在确定所述坏页面的计数大于所述阈值数量时,确定所述块为坏块;
其中所述存储器控制器使用好块和劣块进行读取操作和编程操作,而不使用坏块进行读取操作和编程操作。
2.根据权利要求1所述的非易失性数据存储装置,其中接收关于坏页面的信息包括:
在目标页面地址处执行读取操作;
确定是否已经发生了读取失败;
在检测到读取失败时,将所述页面识别为坏页面;
在所述目标页面地址处恢复所述页面中的正确数据;
将所述正确数据复制到好块。
3.根据权利要求1所述的非易失性数据存储装置,其中所述存储器控制器:
接收用于编程操作的目标页面地址;
确定所述目标页面地址是处于好块中、处于坏块中还是处于劣块中;
在确定所述目标页面地址处于好块中时,在所述目标页面地址处执行所述编程操作;
在确定所述目标页面地址处于坏块中时,在替换块中执行所述编程操作;
在确定所述目标页面地址在处于劣块中时,确定所述目标页面地址是否指向坏页面;
在确定所述目标页面地址没有指向坏页面时,在所述目标页面地址处执行所述编程操作;并且
在确定所述目标页面地址指向坏页面时,在替换页面地址处执行所述编程操作。
4.根据权利要求1所述的非易失性数据存储装置,其进一步包括多个超级块,每一个超级块包括多个块,其中所述多个块中的一个块配置为奇偶校验块且其它块配置为数据块,所述奇偶校验块存储所述数据块的奇偶校验信息;
其中所述存储器控制器:
确定超级块是否包括劣块;并且
在确定所述超级块包括劣块时,将所述劣块用于所述超级块的奇偶校验块。
5.根据权利要求4所述的非易失性数据存储装置,其进一步包括多个超级页面,每一个超级页面包括多个页面且具有来自所述超级块中每一个块的一个页面,其中所述超级页面中的所述多个页面中的一个页面配置为奇偶校验页面且其它页面配置为数据页面,所述奇偶校验页面存储所述数据页面的奇偶校验信息;
其中所述存储器控制器:
确定超级页面是否包括坏页面;并且
在确定所述超级页面包括坏页面时,将所述坏页面排除在操作之外,并且将剩余页面中的一个页面配置为奇偶校验页面,并将其它剩余页面配置为数据页面。
6.根据权利要求1所述的非易失性数据存储装置,其进一步包括多个超级块,每一个超级块包括多个块,其中所述存储器控制器:
对所述多个块按照可靠性进行等级排序;并且
将具有最低的可靠性的块配置为奇偶校验块,并且将其它块配置为数据块,所述奇偶校验块存储所述数据块的奇偶校验信息。
7.根据权利要求1所述的非易失性数据存储装置,其中每一个块包括联接到相同字线的多个存储器单元。
8.一种系统,包括:
存储器单元,其布置在块中,每一个块包括多个页面,并且每一个页面具有多个存储器单元;
存储器控制器,其联接到所述存储器单元,且用于控制所述存储器单元的擦除操作、编程操作和读取操作;
其中所述存储器控制器:
如果所述块中坏页面的计数为零,则将块识别为好块;
如果坏页面的计数小于阈值数量,则将块识别为劣块;并且
如果坏页面的计数大于或等于所述阈值数量,则将块识别为坏块;
其中所述存储器控制器使用好块和劣块进行读取操作和编程操作,而不使用坏块进行读取操作和编程操作。
9.根据权利要求8所述的系统,其中所述系统进一步包括劣块的表,对于每一个劣块,所述劣块的表列出所述劣块中坏页面的计数和所述劣块中坏页面的位置;
其中所述存储器控制器:
接收关于坏页面的信息;
确定所述坏页面是处于好块中还是处于劣块中;
在确定所述坏页面处于好块中时,将所述好块标识为劣块,并且在所述劣块的表中创建条目;
在确定所述坏页面处于劣块中时,在所述劣块的表中定位所述劣块,增加所述劣块中所述坏页面的计数,并且记录所述坏页面的位置;
确定所述坏页面的计数是否大于所述阈值数量;
在确定所述坏页面的计数大于所述阈值数量时,确定所述块为坏块。
10.根据权利要求8所述的系统,其中所述存储器控制器:
接收用于编程操作的目标页面地址;
确定所述目标页面地址是处于好块、处于坏块还是处于劣块中;
在确定所述目标页面地址处于好块中时,在所述目标页面地址处执行所述编程操作;
在确定目标页面地址处于坏块中时,在替换块中执行所述编程操作;
在确定所述目标页面地址处于劣块中时,
确定所述目标页面地址是否指向坏页面;
在确定所述目标页面地址没有指向坏页面时,在所述目标页面地址处执行所述编程操作;并且
在确定目标页面地址指向坏页面时,在替换页面地址处执行所述编程操作。
11.根据权利要求8所述的系统,进一步包括多个超级块,每一个超级块包括多个块,其中所述多个块中的一个块配置为奇偶校验块且其它块配置为数据块,所述奇偶校验块存储所述数据块的奇偶校验信息;
其中所述存储器控制器:
确定超级块是否包括劣块;并且
在确定所述超级块包括劣块时,将所述劣块用于所述超级块的所述奇偶校验块。
12.根据权利要求11所述的系统,进一步包括多个超级页面,每一个超级页面包括多个页面且具有来自所述超级块中每一个块的一个页面,其中超级页面中的所述多个页面中的一个页面配置为奇偶校验页面且其它页面配置为数据页面,所述奇偶校验页面存储所述数据页面的奇偶校验信息;
其中所述存储器控制器:
确定超级页面是否包括坏页面;并且
在确定所述超级页面包括坏页面时,将所述坏页面排除在操作之外,并且将剩余页面中的一个页面配置为奇偶校验页面,并将其它剩余页面配置为数据页面。
13.根据权利要求8所述的系统,进一步包括多个超级块,每一个超级块包括多个块,其中所述存储器控制器:
对所述多个块按照可靠性进行等级排序;并且
将具有最低的可靠性的块配置为奇偶校验块,并且将其它块配置为数据块,所述奇偶校验块存储所述数据块的奇偶校验信息。
14.一种控制存储系统的方法,所述存储系统包括多个存储器单元和存储器控制器,所述多个存储器单元布置在块中,所述存储器控制器联接到所述多个存储器单元且用于控制所述多个存储器单元中的数据写入和数据读取,所述方法包括:
如果所述块中坏页面的计数为零,则将块识别为好块;
如果坏页面的计数小于阈值数量,则将块识别为劣块;
如果坏页面的计数大于或等于所述阈值数量,则将块识别为坏块;并且
使用好块和劣块进行读取操作和编程操作,而不使用坏块进行读取操作和编程操作。
15.根据权利要求14所述的方法,其中所述存储系统进一步包括劣块的表,对于每一个劣块,所述劣块的表列出所述劣块中坏页面的计数和所述劣块中坏页面的位置,所述方法包括:
接收关于坏页面的信息;
确定所述坏页面是处于好块中还是处于劣块中;
在确定所述坏页面处于好块中时,将所述好块标识为劣块,并且在所述劣块的表中创建条目;
在确定所述坏页面处于劣块中时,在所述劣块的表中定位所述劣块,增加所述劣块中所述坏页面的计数,并且记录所述坏页面的位置;
确定所述坏页面的计数是否大于所述阈值数量;
在确定所述坏页面的计数大于所述阈值数量时,确定所述块为坏块。
16.根据权利要求14所述的方法,进一步包括:
接收用于编程操作的目标页面地址;
确定所述目标页面地址是处于好块、处于坏块还是处于劣块中;
在确定所述目标页面地址处于好块中时,在所述目标页面地址处执行所述编程操作;
在确定目标页面地址处于坏块中时,在替换块中执行所述编程操作;
在确定所述目标页面地址处于劣块中时,
确定所述目标页面地址是否指向坏页面;
在确定目标页面地址没有指向坏页面时,在所述目标页面地址处执行所述编程操作;并且
在确定目标页面地址指向坏页面时,在替换页面地址处执行所述编程操作。
17.根据权利要求14所述的方法,所述存储系统进一步包括多个超级块,每一个超级块包括多个块,其中所述多个块中的一个块配置为奇偶校验块且其它块配置为数据块,所述奇偶校验块存储所述数据块的奇偶校验信息,所述方法包括:
确定超级块是否包括劣块;并且
在确定所述超级块包括劣块时,将所述劣块用于所述超级块的所述奇偶校验块。
18.根据权利要求14所述的方法,其中所述存储系统进一步包括多个超级页面,每一个超级页面包括多个页面且具有来自所述超级块中每一个块的一个页面,其中超级页面中的所述多个页面中的一个页面配置为奇偶校验页面,并且其它页面配置为数据页面,所述奇偶校验页面存储所述数据页面的奇偶校验信息,所述方法进一步包括:
确定超级页面是否包括坏页面;并且
在确定所述超级页面包括坏页面时,将所述坏页面排除在操作之外,并且将剩余页面中的一个页面配置为奇偶校验页面,并将其它剩余页面配置为数据页面。
19.根据权利要求14所述的方法,所述存储系统进一步包括多个超级块,每一个超级块包括多个块,其中所述方法进一步包括:
对所述多个块按照可靠性进行等级排序;并且
将具有最低的可靠性的块配置为奇偶校验块,并且将其它块配置为数据块,所述奇偶校验块存储所述数据块的奇偶校验信息。
20.根据权利要求14所述的方法,其中每一个块包括联接到相同字线的多个存储器单元。
CN201811289494.4A 2018-04-03 2018-10-31 用于坏块管理的存储器系统及方法 Active CN110347528B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862652177P 2018-04-03 2018-04-03
US62/652,177 2018-04-03
US16/022,451 US10672497B2 (en) 2018-04-03 2018-06-28 Memory system and method for bad block management
US16/022,451 2018-06-28

Publications (2)

Publication Number Publication Date
CN110347528A true CN110347528A (zh) 2019-10-18
CN110347528B CN110347528B (zh) 2023-06-13

Family

ID=68057159

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811289494.4A Active CN110347528B (zh) 2018-04-03 2018-10-31 用于坏块管理的存储器系统及方法

Country Status (2)

Country Link
US (1) US10672497B2 (zh)
CN (1) CN110347528B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110570894A (zh) * 2018-06-05 2019-12-13 爱思开海力士有限公司 存储器系统及该存储器系统的操作方法
CN111007992A (zh) * 2020-03-04 2020-04-14 广东电网有限责任公司佛山供电局 一种磁盘数据存储表示方法、系统、存储介质
CN113220508A (zh) * 2021-05-08 2021-08-06 联芸科技(杭州)有限公司 存储器块的管理方法、存储器的写操作方法以及存储器
CN114281271A (zh) * 2022-03-07 2022-04-05 北京得瑞领新科技有限公司 判断nand闪存数据可靠性的方法、存储介质及存储设备
CN114461137A (zh) * 2021-12-23 2022-05-10 天翼云科技有限公司 一种基于固体硬盘的写入方法及装置

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10936456B1 (en) * 2019-02-20 2021-03-02 Apple Inc. Handling malfunction in a memory system comprising a nonvolatile memory by monitoring bad-block patterns
KR20200114354A (ko) * 2019-03-28 2020-10-07 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20210030599A (ko) * 2019-09-10 2021-03-18 에스케이하이닉스 주식회사 데이터를 분산 리드할 수 있는 메모리 시스템 및 메모리 시스템의 동작방법
KR20210043314A (ko) * 2019-10-11 2021-04-21 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 동작 방법
CN113110794B (zh) * 2020-01-10 2023-09-08 株洲中车时代电气股份有限公司 一种用于NandFlash的数据存储方法与系统
CN111933199B (zh) * 2020-08-07 2021-03-30 深圳市纵维立方科技有限公司 基于存储器的数据读写方法、装置及存储介质
US11354190B2 (en) 2020-08-13 2022-06-07 Western Digital Technologies, Inc. Using over provisioning space for selectively storing block parity
CN112162936B (zh) * 2020-09-30 2023-06-30 武汉天喻信息产业股份有限公司 一种动态增强flash擦写次数的方法及系统
US20210141703A1 (en) * 2020-12-24 2021-05-13 Intel Corporation Persistent data structure to track and manage ssd defects
CN113053450A (zh) * 2021-03-05 2021-06-29 深圳三地一芯电子有限责任公司 一种应用于Flash智能分析检测的检测方法、系统、智能终端以及计算机可读存储介质
US11599416B1 (en) * 2021-09-01 2023-03-07 Micron Technology, Inc. Memory sub-system using partial superblocks
US11966607B2 (en) * 2021-09-29 2024-04-23 Silicon Motion, Inc. Method and non-transitory computer-readable storage medium and apparatus for accessing to encoding-history information
US20230197186A1 (en) * 2021-12-21 2023-06-22 Micron Technology, Inc. Preserving blocks experiencing program failure in memory devices

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080082736A1 (en) * 2004-03-11 2008-04-03 Chow David Q Managing bad blocks in various flash memory cells for electronic data flash card
US20120215962A1 (en) * 2011-02-18 2012-08-23 Synopsys Inc. Partitioning pages of an electronic memory
JP2012212487A (ja) * 2011-03-30 2012-11-01 Toshiba Corp メモリシステム
US20120284587A1 (en) * 2008-06-18 2012-11-08 Super Talent Electronics, Inc. Super-Endurance Solid-State Drive with Endurance Translation Layer (ETL) and Diversion of Temp Files for Reduced Flash Wear
JP2013125513A (ja) * 2011-12-16 2013-06-24 Samsung Electronics Co Ltd 不揮発性半導体記憶装置及びその管理方法
CN103176752A (zh) * 2012-07-02 2013-06-26 晶天电子(深圳)有限公司 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器
US20150106556A1 (en) * 2008-06-18 2015-04-16 Super Talent Electronics, Inc. Endurance Translation Layer (ETL) and Diversion of Temp Files for Reduced Flash Wear of a Super-Endurance Solid-State Drive

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7661054B2 (en) 2005-09-30 2010-02-09 Intel Corporation Methods and arrangements to remap degraded storage blocks
US9671973B2 (en) 2013-12-20 2017-06-06 Empire Technology Development Llc Data storage in degraded solid state memory
US10223018B2 (en) * 2017-04-19 2019-03-05 Sandisk Technologies Llc Bad page and bad block management in memory
US10223216B1 (en) * 2017-10-30 2019-03-05 Western Digital Technologies, Inc. Non-volatile storage system that reclaims bad blocks

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080082736A1 (en) * 2004-03-11 2008-04-03 Chow David Q Managing bad blocks in various flash memory cells for electronic data flash card
US20120284587A1 (en) * 2008-06-18 2012-11-08 Super Talent Electronics, Inc. Super-Endurance Solid-State Drive with Endurance Translation Layer (ETL) and Diversion of Temp Files for Reduced Flash Wear
US20150106556A1 (en) * 2008-06-18 2015-04-16 Super Talent Electronics, Inc. Endurance Translation Layer (ETL) and Diversion of Temp Files for Reduced Flash Wear of a Super-Endurance Solid-State Drive
US20120215962A1 (en) * 2011-02-18 2012-08-23 Synopsys Inc. Partitioning pages of an electronic memory
JP2012212487A (ja) * 2011-03-30 2012-11-01 Toshiba Corp メモリシステム
JP2013125513A (ja) * 2011-12-16 2013-06-24 Samsung Electronics Co Ltd 不揮発性半導体記憶装置及びその管理方法
CN103176752A (zh) * 2012-07-02 2013-06-26 晶天电子(深圳)有限公司 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110570894A (zh) * 2018-06-05 2019-12-13 爱思开海力士有限公司 存储器系统及该存储器系统的操作方法
CN110570894B (zh) * 2018-06-05 2023-09-26 爱思开海力士有限公司 存储器系统及该存储器系统的操作方法
CN111007992A (zh) * 2020-03-04 2020-04-14 广东电网有限责任公司佛山供电局 一种磁盘数据存储表示方法、系统、存储介质
CN113220508A (zh) * 2021-05-08 2021-08-06 联芸科技(杭州)有限公司 存储器块的管理方法、存储器的写操作方法以及存储器
CN114461137A (zh) * 2021-12-23 2022-05-10 天翼云科技有限公司 一种基于固体硬盘的写入方法及装置
CN114461137B (zh) * 2021-12-23 2024-01-02 天翼云科技有限公司 一种基于固体硬盘的写入方法及装置
CN114281271A (zh) * 2022-03-07 2022-04-05 北京得瑞领新科技有限公司 判断nand闪存数据可靠性的方法、存储介质及存储设备
CN114281271B (zh) * 2022-03-07 2022-05-13 北京得瑞领新科技有限公司 判断nand闪存数据可靠性的方法、存储介质及存储设备

Also Published As

Publication number Publication date
CN110347528B (zh) 2023-06-13
US20190304562A1 (en) 2019-10-03
US10672497B2 (en) 2020-06-02

Similar Documents

Publication Publication Date Title
CN110347528A (zh) 用于坏块管理的存储器系统及方法
US11176036B2 (en) Endurance enhancement scheme using memory re-evaluation
US10956317B2 (en) Garbage collection in non-volatile memory that fully programs dependent layers in a target block
US11430540B2 (en) Defective memory unit screening in a memory system
US11676671B1 (en) Amplification-based read disturb information determination system
US10126970B2 (en) Paired metablocks in non-volatile storage device
CN109427406A (zh) 用于3-d nand存储器的具有自适应阈值的读取干扰检测和恢复
TWI651721B (zh) 解碼方法以及儲存控制器
US20230236761A1 (en) Read-disturb-based logical storage read temperature information identification system
CN110349616A (zh) 针对nand闪存中的位线故障的动态交织器变化
US11922019B2 (en) Storage device read-disturb-based block read temperature utilization system
CN112673356B (zh) 快速非易失性存储装置恢复技术
US11922067B2 (en) Read-disturb-based logical storage read temperature information maintenance system
CN109545261A (zh) 在读取操作后选择用于刷新的闪速存储块的方法
US11152071B1 (en) Erase operation reattempt to recover misidentified bad blocks resulting from consecutive erase failures
US20210373764A1 (en) System To Identify Aggressor Blocks Causing Back To Back Erase Failure
US10942662B2 (en) Relocating and/or re-programming blocks of storage space based on calibration frequency and resource utilization
US11983424B2 (en) Read disturb information isolation system
US11763898B2 (en) Value-voltage-distirubution-intersection-based read disturb information determination system
US11929135B2 (en) Read disturb information determination system
US11914494B2 (en) Storage device read-disturb-based read temperature map utilization system
US20230229327A1 (en) Read disturb information isolation system
US11983431B2 (en) Read-disturb-based read temperature time-based attenuation system
US11907063B2 (en) Read-disturb-based physical storage read temperature information identification system
US11922035B2 (en) Read-disturb-based read temperature adjustment 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
GR01 Patent grant
GR01 Patent grant