[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN115145755A - 用于重新映射存储器子系统中的不良块的系统和方法 - Google Patents

用于重新映射存储器子系统中的不良块的系统和方法 Download PDF

Info

Publication number
CN115145755A
CN115145755A CN202210342434.4A CN202210342434A CN115145755A CN 115145755 A CN115145755 A CN 115145755A CN 202210342434 A CN202210342434 A CN 202210342434A CN 115145755 A CN115145755 A CN 115145755A
Authority
CN
China
Prior art keywords
block
stripe
memory
blocks
replacement
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.)
Pending
Application number
CN202210342434.4A
Other languages
English (en)
Inventor
A·巴德瓦杰
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.)
Micron Technology Inc
Original Assignee
Micron Technology 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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN115145755A publication Critical patent/CN115145755A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • 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/0793Remedial or corrective actions
    • 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/0727Error 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 storage system, e.g. in a DASD or network based storage system
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • 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
    • G11C29/40Response verification devices using compression techniques
    • 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/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
    • G11C29/4401Indication or identification of errors, e.g. for repair for self 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/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • G11C29/765Masking faults in memories by using spares or by reconfiguring using address translation or modifications in solid state disks
    • 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
    • G11C29/40Response verification devices using compression techniques
    • G11C2029/4002Comparison of products, i.e. test results of chips or with golden chip

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本公开涉及用于重新映射存储器子系统中的不良块的系统和方法。公开一种系统,其包含:存储器装置,其包含多个存储器平面;以及处理装置,其以操作方式与所述存储器装置耦合以执行包括以下的操作:产生所述存储器装置的块条带,其中所述块条带包含跨越所述多个存储器平面布置的多个块;确定所述块条带的所述多个块中的第一块与错误条件相关联,其中所述第一块与所述多个平面中的第一平面相关联;以及响应于确定所述块条带的所述多个块中的所述第一块与所述错误条件相关联,对所述多个块执行错误恢复操作以利用所述块条带中的替换块替换所述第一块。

Description

用于重新映射存储器子系统中的不良块的系统和方法
技术领域
本公开的实施例大体上涉及一种存储器子系统,且更确切地说,涉及重新映射存储器子系统中的不良块。
背景技术
存储器子系统可包括存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。
发明内容
本公开的一方面涉及一种系统,其包含:存储器装置,其包含多个存储器平面;以及处理装置,其以操作方式与所述多个存储器装置耦合以执行包含以下的操作:产生所述存储器装置的块条带,其中所述块条带包含跨越所述多个存储器平面布置的多个块;确定所述块条带的所述多个块中的第一块与错误条件相关联,其中所述第一块与所述多个平面中的第一平面相关联;以及响应于确定所述块条带的所述多个块中的所述第一块与所述错误条件相关联,对所述多个块执行错误恢复操作以利用所述块条带中的替换块替换所述第一块。
本公开的另一方面涉及一种方法,其包含产生包含多个存储器平面的存储器装置的块条带,其中所述块条带包含跨越所述多个存储器平面布置的多个块;确定所述块条带的所述多个块中的第一块与错误条件相关联,其中所述第一块与所述多个平面中的第一平面相关联;以及响应于确定所述块条带的所述多个块中的所述第一块与所述错误条件相关联,对所述多个块执行错误恢复操作以利用所述块条带中的替换块替换所述第一块。
本公开的又一方面涉及一种包含指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时使得所述处理装置执行包含以下的操作:产生包含多个存储器平面的存储器装置的块条带,其中所述块条带包含跨越所述多个存储器平面布置的多个块,且其中所述存储器装置包含配置为SLC存储器的第一部分和配置为QLC存储器的第二部分;确定所述块条带的所述多个块中的第一块与错误条件相关联,其中所述第一块与所述多个平面中的第一平面相关联;响应于确定所述块条带的所述多个块中的所述第一块与所述错误条件相关联,对所述多个块执行错误恢复操作以利用所述块条带中的替换块替换所述第一块;以及响应于执行所述错误恢复操作以利用所述块条带中的所述替换块替换所述第一块,执行写入操作以将第一数据从配置为SLC存储器的所述第一部分中的所述块条带写入到配置为QLC存储器的所述第二部分。
附图说明
根据下文给出的详细描述且根据本公开的各种实施例的随附图式将更加充分地理解本公开。然而,图式不应视为将本公开限于特定实施例,而是仅用于解释和理解。
图1说明根据本公开的一些实施例的包括存储器子系统的实例计算系统。
图2A为说明根据本公开的一些实施例的实施重新映射存储器装置中的不良块的存储器子系统的框图。
图2B示意性地说明根据本公开的一些实施例的实例不良块替换表。
图3为说明根据本公开的一些实施例的跨越多平面存储器装置的块条带中的块集合的框图。
图4为根据本公开的一些实施例的重新映射存储器子系统中的不良块的实例方法400的流程图。
图5为根据本公开的一些实施例的重新映射存储器子系统中的不良块的实例方法500的流程图。
图6为可在其中操作本公开的实施例的实例计算机系统的框图。
具体实施方式
本公开的各方面是针对重新映射存储器子系统中的不良块。存储器子系统可为存储装置、存储器模块,或存储装置和存储器模块的组合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用存储器子系统,所述存储器子系统包括一或多个组件,例如存储数据的存储器装置。主机系统可提供将存储在存储器子系统处的数据,且可请求将从存储器子系统检索的数据。
存储器子系统可包括高密度非易失性存储器装置,其中当没有电力供应到存储器装置时需要数据的保持。非易失性存储器装置的一个实例为“与非”(NAND)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置为一或多个裸片的封装。每一裸片可由一或多个平面组成。对于一些类型的非易失性存储器装置(例如,NAND装置),每一平面由物理块的集合组成。每一块由页的集合组成。每一页由存储器单元(“单元”)的集合组成。单元为存储信息的电子电路。取决于单元类型,单元可存储二进制信息的一或多个位,且具有与正存储的位数目相关的各种逻辑状态。逻辑状态可由二进制值(例如,“0”和“1”)或这种值的组合表示。
裸片在下文也称为逻辑单元(LUN)。LUN可含有一或多个平面。存储器子系统可使用分带方案在执行数据操作(例如,写入、读取、擦除)时将数据的各个集合处理为单元。LUN条带为在写入、读取或擦除数据时处理为一个单元的平面的集合。LUN条带中的每一平面可并行地进行LUN条带中的所有其它平面的相同操作。块条带为处理为单元的块的集合(LUN条带中的每一平面一个)。块条带中的块在其相应平面中具有相同块识别符(例如,块编号)。
存储器子系统可包括可存储来自主机系统的数据的多个存储器装置。每一存储器装置可包括不同类型的媒体。媒体的实例包括但不限于非易失性存储器的交叉点阵列和基于快闪的存储器,例如单层级单元(SLC)存储器、三层级单元(TLC)存储器和四层级单元(QLC)存储器。不同类型的媒体可具有不同数据密度。数据密度对应于可每存储器装置的存储器单元存储的数据量(例如,数据位)。使用基于快闪的存储器的实例,四层级单元(QLC)可存储四个数据位,而单层级单元(SLC)可存储一个数据位。因此,包括QLC存储器单元的存储器装置将具有比包括SLC存储器单元的存储器装置更高的数据密度。
常规存储器子系统包括具有不良块的存储器装置。不良块为无法可靠地存储数据的块(即,存储器装置中的一或多个存储器单元的群组)。举例来说,不良块可指代满足如下文进一步详细描述的错误条件的块。由于制造过程中的非均一性和变化,常规存储器子系统最初包括较小百分比的不良块(下文称为“工厂错误不良块”)。另外,当块在存储器子系统的寿命期间和/或由于存储器单元的损坏或缺陷而磨损时,良好块(即,未被分类为不良块且最初能可靠地存储数据的块)可能成为不良块(下文称为“生长不良块”)。举例来说,在擦除操作期间,存储在不良块的一或多个存储器单元中的数据可能无法被恰当地擦除。因此,在常规存储器子系统中,不良块不用于存储数据。替代地,常规存储器子系统跟踪不良块以便避免在不良块处存储任何数据。因此,随着更多块变得不可靠且因此不用于数据存储,常规存储器子系统的存储器容量可减小。
实施QLC存储器的某些存储器子系统使用标准的16-16粗略-精细的两遍次编程算法。由于QLC存储器单元存储四个数据位,因此存在16种可能的编程级别(即,24),表示那四个数据位的可能值。通过在第一遍次中粗略地编程所有16种级别开始编程字线。这种“粗略”第一遍次的目标是将所有单元快速地编程为略低于其最终目标编程级别。在较慢的“精细”第二遍次期间,存储器单元编程为略高的最终目标编程电压。这类两遍次编程使单元到单元(C2C)干扰降到最低,这是因为当执行精细编程遍次时,每一单元和其相邻单元几乎处于其最终目标编程电压,且仅需要“略微修改”即可。不需要第一遍次中的精度编程与最小化的C2C耦合的组合实现具有高读取窗口预算(RWB)的快速编程。然而,这类标准的16-16粗略-精细编程在第一遍次之前需要首先将所有数据写入到单层级单元(SLC)存储器(即,每单元存储一位数据的存储器单元),以防止发生异步电力损耗(APL)以及限制缓冲器利用且保持可用于主机读取的数据。
数据可接着经由芯片上回拷操作(下文称为“回拷操作”)从SLC存储器移动到其它存储器,例如MLC存储器、TLC存储器、QLC存储器等。回拷操作可涉及例如使用高速缓存寄存器将数据从SLC存储器移动到QLC存储器。因而,数据不必首先从存储器装置中写入。然而,回拷操作具有仅同一平面内的数据可在SLC存储器与QLC存储器之间移动的限制。因此,如果条带内存在跨越不同平面扩散的任何不良块,那么存储器子系统将不能够使用回拷操作以在SLC存储器与QLC存储器之间移动数据。替代地,存储器子系统可采用芯片外回拷操作、芯片上回拷操作与芯片外回拷操作的组合、或芯片上回拷操作,其中如果那些平面内存在任何不良块,那么利用虚设数据填补所述平面。然而,在所有这些选项中,由于较高等待时间,性能和服务质量(QoS)降低。
举例来说,本公开的各方面通过具有存储器子系统来解决以上及其它不足,所述存储器子系统重新映射存储器子系统的块条带中的不良块以便执行回拷操作以在SLC存储器与QLC存储器之间移动数据。确切地说,本公开的各方面可避免必须使用芯片外回拷操作、芯片上回拷操作与芯片外回拷操作的组合、或具有填补虚设数据的芯片上回拷操作将数据从SLC存储器移动到QLC存储器,如本文中以上所描述。这可通过创建不含不良块的块条带实现,其数据可从SLC存储器移动到QLC存储器。在本公开的一些实施例中,可在存储器装置的平面的特定块条带上识别不良块(工厂错误不良块或生长不良块)。不良块的地址可存储在数据结构(例如表)中。不良块可接着利用驻留在与不良块相同的平面上的替换块(例如良好块)替换。替换块为既不是工厂错误不良块也不是生长不良块的块。替换块的地址可存储在数据结构(例如,存储不良块的地址的表)中。因而,可识别不良块且接着利用替换块替换,因此产生不含不良块的块条带。接着可执行回拷操作,使得可将数据从SLC存储器移动到QLC存储器。
本公开的优点包括但不限于改进回拷操作中的性能和QoS,以将数据从SLC存储器移动到QLC存储器。由于数据不再需要使用芯片外回拷操作、芯片上回拷操作与芯片外回拷操作的组合、或具有填补数据的芯片上回拷操作从SLC存储器移动到QLC存储器,因此由于等待时间的减少,性能和QoS得到改进。
图1说明根据本公开的一些实施例的包括存储器子系统110的实例计算系统100。存储器子系统110可包括媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或这些的组合。
存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的组合。存储装置的实例包括固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡和硬盘驱动器(HDD)。存储器模块的实例包括双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)和各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统100可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、启用物联网(IoT)的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包括的嵌入式计算机),或包括存储器和处理装置的这类计算装置。
计算系统100可包括耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中所使用,“耦合到”或“与…耦合”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如不具有中间组件),无论有线还是无线,包括例如电连接、光学连接、磁性连接等连接。
主机系统120可包括处理器芯片组和由处理器芯片组执行的软件堆栈。处理器芯片组可包括一或多个核心、一或多个高速缓存器、存储器控制器(例如,NVDIMM控制器)和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110,例如以将数据写入到存储器子系统110和从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包括但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)、双数据速率(DDR)存储器总线、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。在存储器子系统110通过物理主机接口(例如,PCIe总线)与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据和其它信号的接口。图1说明存储器子系统110作为实例。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
存储器装置130、140可包括不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可为但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包括与非(NAND)型快闪存储器和就地写入存储器,例如三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器单元的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来进行位存储。另外,与多个基于快闪的存储器相比,交叉点非易失性存储器可进行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。NAND型快闪存储器包括例如二维NAND(2D NAND)和三维NAND(3D NAND)。
存储器装置130中的每一个可包括一或多个存储器单元阵列。一种类型的存储器单元,例如,单层级单元(SLC)可每单元存储一个位。其它类型的存储器单元,例如多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五层级单元(PLC)可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包括一或多个存储器单元阵列,例如SLC、MLC、TLC、QLC、PLC或这些的任何组合。在一些实施例中,特定存储器装置可包括存储器单元的SLC部分和MLC部分、TLC部分、QLC部分或PLC部分。存储器装置130的存储器单元可分组为可指代用于存储数据的存储器装置的逻辑单元的页。在一些类型的存储器(例如,NAND)的情况下,页可分组以形成块。
尽管描述了非易失性存储器组件,例如3D交叉点非易失性存储器单元阵列和NAND型快闪存储器(例如,2D NAND、3D NAND),但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、“或非”(NOR)快闪存储器或电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置130通信以执行例如在存储器装置130处读取数据、写入数据或擦除数据的操作以及其它这类操作。存储器子系统控制器115可包括硬件,例如一或多个集成电路和/或离散组件、缓冲存储器,或其组合。硬件可包括具有进行本文中所描述的操作的专用(即,硬译码)逻辑的数字电路系统。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
存储器子系统控制器115可包括处理装置,所述处理装置包括配置成执行存储在本地存储器119中的指令的一或多个处理器(例如,处理器117)。在所说明实例中,存储器子系统控制器115的本地存储器119包括配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包括处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。
在一些实施例中,本地存储器119可包括存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包括用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已说明为包括存储器子系统控制器115,但在本公开的另一实施例中,存储器子系统110不包括存储器子系统控制器115,而是可替代地依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
一般来说,存储器子系统控制器115可从主机系统120接收命令或操作,且可将命令或操作转换为指令或适当命令以实现对存储器装置130的期望存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作以及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、名字空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可进一步包括主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收的命令转换为命令指令以存取存储器装置130,以及将与存储器装置130相关联的响应转换为主机系统120的信息。
存储器子系统110还可包括未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包括高速缓存器或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址且解码地址以存取存储器装置130。
在一些实施例中,存储器装置130包括本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子系统110为受管理存储器装置,其为具有裸片上的控制逻辑(例如,本地媒体控制器135)和用于相同存储器装置封装内的媒体管理的控制器(例如,存储器子系统控制器115)的原始存储器装置130。受管理存储器装置的实例为受管理NAND(MNAND)装置。
存储器子系统110包括可处置存储器子系统控制器115与存储器子系统110的存储器装置(例如,存储器装置130)的交互的存储器接口组件113。举例来说,存储器接口组件113可从存储器装置130接收数据,例如响应于回拷操作或成功地执行回拷操作的确认而检索到的数据。举例来说,存储器子系统控制器115可包括处理器117(处理装置),所述处理器配置成执行存储在本地存储器119中的指令以用于执行本文中所描述的操作。
在一些实施例中,存储器装置130包括配置成执行回拷操作的编程管理器134。在一些实施例中,本地媒体控制器135包括编程管理器134的至少一部分且配置成执行本文中所描述的功能性。在一些实施例中,使用固件、硬件组件或上述组合在存储器装置130上实施编程管理器134。在一个实施例中,编程管理器134从例如存储器接口组件113的请求者接收对存储器装置130的存储器阵列执行回拷操作的请求。在一个实施例中,存储器阵列可包括配置为SLC存储器的第一部分和配置为QLC存储器的第二部分。在一个实施例中,为了能够执行回拷操作,编程管理器134可利用替换块识别和替换存储器阵列中的不良块。编程管理器134可进一步映射不良块替换表(例如,图2A和图2B中的不良块替换表256)中的不良块和替换块的地址。在一些实施例中,存储器子系统控制器115包括编程管理器134的至少一部分。在一些实施例中,编程管理器134为主机系统110、应用程序或操作系统的部分。在其它实施例中,本地媒体控制器135包括编程管理器134的至少一部分且配置成执行本文中所描述的功能性。下文描述关于编程管理器134的操作的其它细节。
图2A为说明根据本公开的一些实施例的实施重新映射存储器装置中的不良块的存储器子系统的框图。在一个实施例中,存储器装置130以操作方式与存储器装置130耦合。在一个实施例中,存储器装置130包括编程管理器134、不良块替换表256和存储器阵列250,所述存储器阵列250为图3中所说明的平面372(0)到372(3)的存储单元阵列的一个实例。存储器阵列250可包括形成于字线和位线的相交点处的存储器单元阵列。在一个实施例中,存储器单元分组到块中,且所述块进一步分组到跨越平面的块条带中,例如跨越图3中的平面372(0)到372(3)的块条带360到367。在一个实施例中,可存在存储器阵列250的所述块配置为SLC存储器的第一部分252,和存储器阵列250的所述块配置为QLC存储器的第二部分254。在其它实施例中,第二部分254可包括以不同方式配置的块,例如MLC存储器、TLC存储器或某一其它类型的存储器。
在一个实施例中,编程管理器134可通过确定块条带中的一或多个块与错误条件相关联而识别块条带中的一或多个不良块,如下文中更详细描述。编程管理器134可对块条带中的一或多个不良块执行错误恢复操作。错误恢复操作可包括利用块条带中的替换块替换一或多个不良块,如下文中更详细描述。
在一个实施例中,编程管理器134可将数据从配置为SLC存储器的块条带中的块移动到配置为QLC存储器的块条带。编程管理器134可通过执行写入操作以将数据从SLC块条带写入到QLC块条带而移动数据,如下文中更详细描述。编程管理器134可响应于执行错误恢复操作而移动数据以利用替换块替换SLC块条带中的不良块,如下文中更详细描述。
图2B示意性地说明根据本公开的一些实施例的实例不良块替换表256。在一个实施例中,当编程管理器134执行错误恢复操作时,如上文图2A中及下文中更详细描述,编程管理器134可识别与不良块相关联的块偏移地址。编程管理器134可将块偏移存储在数据结构(例如,不良块替换表256)中的条目中。块偏移可与不良块所位于的块条带相关联。在一个实施例中,当编程管理器134利用替换块替换不良块时,编程管理器134可识别与不良块相关联的替换块偏移地址。编程管理器134可将替换块偏移作为条目存储在不良块替换表256中。编程管理器134可使替换块偏移与替换块所位于的块条带相关联。在一个实施例中,不良块和替换块可位于同一平面内的块条带上。在一个实施例中,不良块替换表256可包括于存储器装置(例如,图1中的存储器装置130)上。
图3为说明根据本公开的一些实施例的跨越多平面存储器装置的块条带中的块集合的框图。多平面存储器装置中的每一平面可包括一或多个块条带。块条带为处理为单个单元的块的集合(每一平面一个)。块条带中的块在其相应平面中具有相同块识别符(例如,块编号)。平面的第一部分可配置为SLC存储器,且平面的第二部分可配置为QLC存储器。举例来说,块条带360和361可配置为SLC存储器,且块条带362和363可配置为QLC存储器。在回拷操作期间,数据可从SLC存储器中的块条带360移动到QLC存储器中的块条带362。由于回拷操作限制,仅同一平面内的块可从SLC存储器移动到QLC存储器,例如驻留在平面372(0)上的块382A必须移动到驻留在平面372(0)上的块382C。本公开的各方面创建完美SLC块条带(例如,不含有不良块的块条带),使得可执行回拷操作,而不执行芯片外回拷操作、芯片外回拷与芯片上回拷操作的组合、或使用含有不良块的块条带的填补虚设数据的芯片上回拷操作,如上文中更详细描述。
在本公开的一个实施例中,编程管理器134可识别位于平面内的块条带上的不良块,例如,平面372(0)内的块条带360的块382A。编程管理器134还可识别位于与所识别不良块相同的平面内的块条带上的替换块,例如平面372(0)的块条带364的替换块382E。替换块可为不与错误条件相关联的块,即良好块。在本公开的一个实施例中,编程管理器134可利用替换块替换所识别不良块。
图4为根据本公开的一些实施例的重新映射存储器子系统中的不良块的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包括硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法400由图1的编程管理器134执行。尽管以特定序列或次序展示,但除非另外规定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序执行,并且一些过程可并行执行。另外,可在各种实施例中省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流是可能的。
在操作405处,处理逻辑产生包括多个存储器平面的存储器装置(例如,存储器装置130)的块条带。可通过识别跨越存储器平面的多个块且将所述块处理为单个单元而产生块条带。每一块可驻留在多个存储器平面的平面上。产生块条带可进一步包括扫描存储器装置的块条带及确定块条带的每一块是否与工厂错误相关联。工厂错误可为与工厂级不良块相关联的错误,所述不良块为由于制造过程中的非均一性和变化而具有缺陷的块。在一个实施例中,如果处理逻辑确定块条带的块与工厂错误相关联,那么处理逻辑将含有与工厂错误相关联的块的块条带收回到数据结构,例如表(下文称为“所收回块表”)。在说明性实例中,收回块条带可包括确定对应于块条带的每一块的块偏移。块偏移可为对应于块条带的每一块的块地址。处理逻辑可将块条带的每一块的块偏移作为条目存储在所收回块表中。在一个实施例中,处理逻辑通过识别跨越存储器平面的其它块且将所述块处理为单个单元而产生存储器装置的另一块条带。处理逻辑接着重复扫描块条带且确定块条带的每一块是否与工厂级不良块相关联的过程。如果块条带的块都不与工厂错误相关联,那么处理逻辑接着将块条带分配到存储器装置的块条带的池。在一个实施例中,操作405可在存储器装置130的低电平格式化期间发生。在一个实施例中,存储器装置包括配置为SLC存储器的第一部分和配置为QLC存储器的第二部分。在一个实施例中,块条带配置为SLC存储器。
在操作410处,处理逻辑确定块条带的块与错误条件相关联。在一个实施例中,确定块条带的块与错误条件相关联可包括确定与所述块相关联的存储器存取操作的失败。存储器存取操作可为对所述块执行的擦除操作、编程操作或读取操作中的一个。在一个实施例中,错误条件可为与生长不良块相关联的错误,如上文中所描述。
在操作415处,处理逻辑对块条带执行错误恢复操作以响应于确定块与错误条件相关联而利用块条带中的替换块替换块条带的所述块。在一个实施例中,对块条带执行错误恢复操作包括确定对应于与错误条件相关联的块的块偏移。块偏移可为对应于所述块的块地址。处理逻辑可将块偏移作为条目存储在与块条带相关联的数据结构中。数据结构可为例如图2B的不良块替换表256。在一个实施例中,对块条带执行错误恢复操作可进一步包括从存储器装置上的替换块的池中识别替换块。替换块可为不与错误条件相关联的块,即良好块。替换块可与其中驻留有与错误条件相关联的块的平面相关联,例如,替换块可在与同错误条件相关联的第一块相同的平面内。处理逻辑可利用替换块替换块条带的与错误条件相关联的块。举例来说,处理逻辑可利用与平面372(0)相关联的替换块382F替换与平面372(0)相关联的块382A,如图3中所说明。处理逻辑可将对应于替换块的第二块偏移存储在与块条带相关联的数据结构中。第二块偏移可为对应于替换块的块地址。在一个实施例中,第二块偏移可存储在图2B的不良块替换表256中。在一个实施例中,响应于执行错误恢复操作以利用块条带中的替换块替换块,处理逻辑执行写入操作以将数据从配置为SLC存储器的第一部分中的块条带写入到配置为QLC存储器的第二部分。写入操作可与回拷操作相关联。因为不良块由替换块(例如,良好块)替换,所以可使用回拷操作将数据从完美SLC块条带成功地移动到QLC块条带。
图5为根据本公开的一些实施例的重新映射存储器子系统中的不良块的实例方法500的流程图。方法500可由处理逻辑执行,所述处理逻辑可包括硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法500由图1的编程管理器134执行。尽管以特定序列或次序展示,但除非另外规定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序执行,并且一些过程可并行执行。另外,可在各种实施例中省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流是可能的。
在操作505处,处理逻辑产生包括多个存储器平面的存储器装置(例如,存储器装置130)的块条带。可通过识别跨越存储器平面的多个块且将所述块处理为单个单元而产生块条带。每一块可驻留在多个存储器平面的平面上。产生块条带可进一步包括扫描存储器装置的块条带及确定块条带的每一块是否与工厂错误相关联。工厂错误可为与工厂级不良块相关联的错误,所述不良块为由于制造过程中的非均一性和变化而具有缺陷的块。在一个实施例中,如果处理逻辑确定块条带的块与工厂错误相关联,那么处理逻辑将含有与工厂错误相关联的块的块条带收回到数据结构,例如表(下文称为“所收回块表”)。在说明性实例中,收回块条带可包括确定对应于块条带的每一块的块偏移。块偏移可为对应于块条带的每一块的块地址。处理逻辑可将块条带的每一块的块偏移作为条目存储在所收回块表中。在一个实施例中,处理逻辑通过识别跨越存储器平面的其它块且将所述块处理为单个单元而产生存储器装置的另一块条带。处理逻辑接着重复扫描块条带且确定块条带的每一块是否与工厂级不良块相关联的过程。如果块条带的块都不与工厂错误相关联,那么处理逻辑接着将块条带分配到存储器装置的块条带的池。在一个实施例中,操作505可在存储器装置130的低电平格式化期间发生。在一个实施例中,存储器装置包括配置为SLC存储器的第一部分和配置为QLC存储器的第二部分。在一个实施例中,块条带配置为SLC存储器。
在操作510处,处理逻辑确定与块条带的块相关联的存储器存取操作的失败。存储器存取操作可为对所述块执行的擦除操作、编程操作或读取操作中的一个。
在操作515处,处理逻辑确定对应于所述块的块偏移。块偏移可为对应于所述块的块地址。
在操作520处,处理逻辑将对应于所述块的块偏移存储在与块条带相关联的数据结构中。数据结构可为例如图2B的不良块替换表256。
在操作525处,处理逻辑从替换块的池中识别替换块。替换块可为不与错误条件相关联的块,即良好块。替换块可与其中驻留有与错误条件相关联的块的平面相关联,例如,替换块可在与同错误条件相关联的所述块相同的平面内。
在操作530处,处理逻辑通过将不良块与所识别替换块重新映射而利用块条带中的所识别替换块替换块条带的块。举例来说,处理逻辑可利用与平面372(0)相关联的替换块382F替换与平面372(0)相关联的块382A,如图3中所说明。
在操作535处,处理逻辑将对应于替换块的第二块偏移存储在与块条带相关联的数据结构中。第二块偏移可为对应于替换块的块地址。在一个实施例中,第二块偏移可存储在图2B的不良块替换表256中。在一个实施例中,响应于执行错误恢复操作以利用块条带中的替换块替换块,处理逻辑执行写入操作以将数据从配置为SLC存储器的第一部分中的块条带写入到配置为QLC存储器的第二部分。写入操作可与回拷操作相关联。因为不良块由替换块(例如,良好块)替换,所以可使用回拷操作将数据从完美SLC块条带成功地移动到QLC块条带。
图6说明计算机系统600的实例机器,在所述实例机器内可执行用于使机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统600对应于主机系统(例如,图1的主机系统120),其包括、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的编程管理器134的操作)。在替代实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中进行操作。
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或桥接器,或能够执行指定待由所述机器进行的动作的指令的集合(依序或以其它方式)的任何机器。此外,虽然说明单个机器,但还应认为术语“机器”包括机器的任何集合,所述集合单独地或共同地执行指令的一(或多个)集合以执行本文中所论述的方法中的一或多种。
实例计算机系统600包括经由总线630彼此通信的处理装置602、主存储器604(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),如同步DRAM(SDRAM)或RDRAM等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(SRAM)等)和数据存储系统618。
处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等。更明确地说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置602配置成执行指令626以用于执行本文中所论述的操作和步骤。计算机系统600可进一步包括用以经由网络620通信的网络接口装置608。
数据存储系统618可包括机器可读存储媒体624(也称为计算机可读媒体),其上存储有指令626的一或多个集合或体现本文中所描述的方法或功能中的任何一或多种的软件。指令626也可在其由计算机系统600执行期间完全或至少部分地驻留在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可对应于图1的存储器子系统110。
在一个实施例中,指令626包括实施对应于编程管理器组件(例如,图1的编程管理器134)的功能性的指令。虽然在实例实施例中将机器可读存储媒体624展示为单个媒体,但术语“机器可读存储媒体”应被认为包括存储指令的一或多个集合的单个媒体或多个媒体。还应认为术语“机器可读存储媒体”包括能够存储或编码供机器执行的指令的集合且使得机器执行本公开的方法中的一或多种的任何媒体。因此应认为术语“机器可读存储媒体”包括但不限于固态存储器、光学媒体和磁性媒体。
已依据计算机存储器内的数据位的操作的算法和符号表示呈现了先前详细描述的一些部分。这些算法描述和表示为数据处理领域的技术人员用于将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法在这里且通常被认为是引起所需结果的操作的自洽序列。所述操作为需要对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。已经证明主要出于通用的原因,有时将这些信号称为位、值、元件、符号、字符、术语、数目等是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可以指将计算机系统的寄存器和存储器内的表示为物理(电子)量的数据操控和变换为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。此设备可出于所需目的而专门构造,或其可包括通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这类计算机程序可存储在计算机可读存储媒体中,所述计算机可读存储媒体例如但不限于各自耦合到计算机系统总线的包括软盘、光盘、CD-ROM和磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁性卡或光学卡的任何类型的磁盘或适合于存储电子指令的任何类型的媒体。
本文中呈现的算法和显示器并非在本质上与任何特定计算机或其它设备有关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。另外,不参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施本文中所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,其可包括在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包括用于以机器(例如计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如计算机可读)媒体包括机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,本公开的实施例已参考其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中所阐述的本公开的实施例的更广泛精神和范围的情况下对本公开进行各种修改。因此,说明书和图式应以说明性意义而非限制性意义看待。

Claims (20)

1.一种系统,其包含:
存储器装置,其包含多个存储器平面;以及
处理装置,其以操作方式与所述多个存储器装置耦合以执行包含以下的操作:
产生所述存储器装置的块条带,其中所述块条带包含跨越所述多个存储器平面布置的多个块;
确定所述块条带的所述多个块中的第一块与错误条件相关联,其中所述第一块与所述多个平面中的第一平面相关联;以及
响应于确定所述块条带的所述多个块中的所述第一块与所述错误条件相关联,对所述多个块执行错误恢复操作以利用所述块条带中的替换块替换所述第一块。
2.根据权利要求1所述的系统,其中产生所述存储器装置的所述块条带包含:
扫描所述存储器装置的所述块条带;
响应于确定所述块条带的所述多个块中的所述第一块与工厂错误相关联,跳过所述块条带;以及
将所述块条带分配到所述存储器装置的块条带的池。
3.根据权利要求1所述的系统,其中确定所述块条带的所述多个块中的所述第一块与所述错误条件相关联包含:
确定与所述第一块相关联的存储器存取操作的失败,其中所述存储器存取操作包含擦除操作、编程操作或读取操作中的一个。
4.根据权利要求1所述的系统,其中对所述块条带的所述多个块执行所述错误恢复操作包含:
确定对应于与所述错误条件相关联的所述第一块的第一块偏移;以及
将所述第一块偏移存储在与所述块条带相关联的数据结构中。
5.根据权利要求1所述的系统,其中对所述块条带的所述多个块执行所述错误恢复操作进一步包含:
从所述存储器装置上的替换块的池中识别所述替换块,其中所述替换块与所述多个平面中的所述第一平面相关联;
利用所述块条带中的所述替换块替换所述块条带的所述多个块中的与所述错误条件相关联的所述第一块,其中所述替换块不与错误条件相关联;以及
将对应于所述替换块的第二块偏移存储在与所述块条带相关联的所述数据结构中。
6.根据权利要求1所述的系统,其中所述存储器装置包含配置为SLC存储器的第一部分和配置为QLC存储器的第二部分,且其中所述处理装置将执行进一步包含以下的操作:
响应于执行所述错误恢复操作以利用所述块条带中的所述替换块替换所述第一块,执行写入操作以将第一数据从配置为SLC存储器的所述第一部分中的所述块条带写入到配置为QLC存储器的所述第二部分。
7.根据权利要求1所述的系统,其中所述块条带配置为单层级单元SLC存储器。
8.一种方法,其包含:
产生包含多个存储器平面的存储器装置的块条带,其中所述块条带包含跨越所述多个存储器平面布置的多个块;
确定所述块条带的所述多个块中的第一块与错误条件相关联,其中所述第一块与所述多个平面中的第一平面相关联;以及
响应于确定所述块条带的所述多个块中的所述第一块与所述错误条件相关联,对所述多个块执行错误恢复操作以利用所述块条带中的替换块替换所述第一块。
9.根据权利要求8所述的方法,其中产生所述存储器装置的所述块条带包含:
扫描所述存储器装置的所述块条带;
响应于确定所述块条带的所述多个块的所述块条带与工厂错误相关联,跳过所述块条带;以及
将所述块条带分配到所述存储器装置的块条带的池。
10.根据权利要求8所述的方法,其中确定所述块条带的所述多个块中的所述第一块与所述错误条件相关联包含:
确定与所述第一块相关联的存储器存取操作的失败,其中所述存储器存取操作包含擦除操作、编程操作或读取操作中的一个。
11.根据权利要求8所述的方法,其中对所述块条带的所述多个块执行所述错误恢复操作包含:
确定对应于与所述错误条件相关联的所述第一块的第一块偏移;以及
将所述第一块偏移存储在与所述块条带相关联的数据结构中。
12.根据权利要求8所述的方法,其中对所述块条带的所述多个块执行所述错误恢复操作进一步包含:
从所述存储器装置上的替换块的池中识别所述替换块,其中所述替换块与所述多个平面中的所述第一平面相关联;
利用所述块条带中的所述替换块替换所述块条带的所述多个块中的与所述错误条件相关联的所述第一块,其中所述替换块不与错误条件相关联;以及
将对应于所述替换块的第二块偏移存储在与所述块条带相关联的所述数据结构中。
13.根据权利要求8所述的方法,其中所述存储器装置包含配置为SLC存储器的第一部分和配置为QLC存储器的第二部分,且其中所述处理装置将执行进一步包含以下的操作:
响应于执行所述错误恢复操作以利用所述块条带中的所述替换块替换所述第一块,执行写入操作以将第一数据从配置为SLC存储器的所述第一部分中的所述块条带写入到配置为QLC存储器的所述第二部分。
14.根据权利要求8所述的方法,其中所述块条带配置为单层级单元SLC存储器。
15.一种包含指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时使得所述处理装置执行包含以下的操作:
产生包含多个存储器平面的存储器装置的块条带,其中所述块条带包含跨越所述多个存储器平面布置的多个块,且其中所述存储器装置包含配置为SLC存储器的第一部分和配置为QLC存储器的第二部分;
确定所述块条带的所述多个块中的第一块与错误条件相关联,其中所述第一块与所述多个平面中的第一平面相关联;
响应于确定所述块条带的所述多个块中的所述第一块与所述错误条件相关联,对所述多个块执行错误恢复操作以利用所述块条带中的替换块替换所述第一块;以及
响应于执行所述错误恢复操作以利用所述块条带中的所述替换块替换所述第一块,执行写入操作以将第一数据从配置为SLC存储器的所述第一部分中的所述块条带写入到配置为QLC存储器的所述第二部分。
16.根据权利要求15所述的非暂时性计算机可读存储媒体,其中产生所述存储器装置的所述块条带包含:
扫描所述存储器装置的所述块条带;
响应于确定所述块条带的所述多个块的所述块条带与工厂错误相关联,跳过所述块条带;以及
将所述块条带分配到所述存储器装置的块条带的池。
17.根据权利要求15所述的非暂时性计算机可读存储媒体,其中确定所述块条带的所述多个块中的所述第一块与所述错误条件相关联包含:
确定与所述第一块相关联的存储器存取操作的失败,其中所述存储器存取操作包含擦除操作、编程操作或读取操作中的一个。
18.根据权利要求15所述的非暂时性计算机可读存储媒体,其中对所述块条带的所述多个块执行所述错误恢复操作包含:
确定对应于与所述错误条件相关联的所述第一块的第一块偏移;以及
将所述第一块偏移存储在与所述块条带相关联的数据结构中。
19.根据权利要求15所述的非暂时性计算机可读存储媒体,其中对所述块条带的所述多个块执行所述错误恢复操作进一步包含:
从所述存储器装置上的替换块的池中识别所述替换块,其中所述替换块与所述多个平面中的所述第一平面相关联;
利用所述块条带中的所述替换块替换所述块条带的所述多个块中的与所述错误条件相关联的所述第一块,其中所述替换块不与错误条件相关联;以及
将对应于所述替换块的第二块偏移存储在与所述块条带相关联的所述数据结构中。
20.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述块条带配置为单层级单元SLC存储器。
CN202210342434.4A 2021-03-31 2022-03-31 用于重新映射存储器子系统中的不良块的系统和方法 Pending CN115145755A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/218,385 2021-03-31
US17/218,385 US11605439B2 (en) 2021-03-31 2021-03-31 Remapping bad blocks in a memory sub-system

Publications (1)

Publication Number Publication Date
CN115145755A true CN115145755A (zh) 2022-10-04

Family

ID=83407279

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210342434.4A Pending CN115145755A (zh) 2021-03-31 2022-03-31 用于重新映射存储器子系统中的不良块的系统和方法

Country Status (2)

Country Link
US (2) US11605439B2 (zh)
CN (1) CN115145755A (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11626183B2 (en) * 2021-08-09 2023-04-11 Western Digital Technologies, Inc. Method and storage system with a non-volatile bad block read cache using partial blocks
US12061819B2 (en) * 2021-12-06 2024-08-13 Micron Technology, Inc. Managing single-level and multi-level programming operations
US12026372B2 (en) * 2022-10-28 2024-07-02 Micron Technology, Inc. Runtime storage capacity reduction avoidance in sequentially-written memory devices

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5388976B2 (ja) * 2010-09-22 2014-01-15 株式会社東芝 半導体記憶制御装置
US8578208B2 (en) * 2011-01-13 2013-11-05 Micron Technology, Inc. Determining location of error detection data
GB2507961A (en) * 2012-11-14 2014-05-21 Ibm Back-up and restoration of data between volatile and flash memory
GB2517435A (en) * 2013-08-19 2015-02-25 Ibm Fast data back-up and restore between volatile and flash memory
US9766837B2 (en) * 2015-06-10 2017-09-19 Micron Technology, Inc. Stripe mapping in memory
US10437667B2 (en) * 2016-03-29 2019-10-08 International Business Machines Corporation Raid system performance enhancement using compressed data
TWI661299B (zh) * 2018-04-30 2019-06-01 大陸商深圳大心電子科技有限公司 記憶體管理方法以及儲存控制器
KR102517681B1 (ko) * 2018-06-05 2023-04-05 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US10884889B2 (en) * 2018-06-22 2021-01-05 Seagate Technology Llc Allocating part of a raid stripe to repair a second raid stripe
US10983885B2 (en) * 2018-11-29 2021-04-20 International Business Machines Corporation Recovering storage devices in a storage array having errors
US10726936B2 (en) * 2018-12-20 2020-07-28 Micron Technology, Inc. Bad block management for memory sub-systems
US11373729B2 (en) * 2020-06-16 2022-06-28 Micron Technology, Inc. Grown bad block management in a memory sub-system
US11210168B1 (en) * 2020-06-25 2021-12-28 Micron Technology, Inc. Error handling optimization in memory sub-system mapping
US11556261B2 (en) * 2020-08-14 2023-01-17 Micron Technology, Inc. Memory stripe coding management

Also Published As

Publication number Publication date
US20220319622A1 (en) 2022-10-06
US11605439B2 (en) 2023-03-14
US20240256132A1 (en) 2024-08-01

Similar Documents

Publication Publication Date Title
US11735274B2 (en) Proactive read disturb mitigation
US11682446B2 (en) Selective wordline scans based on a data state metric
US20240256132A1 (en) Remapping bad blocks in a memory sub-system
US11728006B2 (en) Grown bad block management in a memory sub-system
CN114097033A (zh) 存储器子系统的被取消映射分配单元的管理
US11847065B2 (en) Memory sub-system management of firmware block record and device block record
CN113127254A (zh) 存储器子系统中多平面奇偶校验数据的存储管理
US20240126467A1 (en) Managing a memory sub-system using a cross-hatch cursor
US20230393736A1 (en) Managing quad-level cell compaction strategy of a memory device
CN115437558A (zh) 存储器系统中的对角页映射
CN115048040A (zh) 基于有效数据的比率的媒体管理操作
CN113555058A (zh) 存储器装置中使用嵌入式伺服单元的读取电平校准
US20240192875A1 (en) Remapping bad blocks in a memory sub-system
US12079517B2 (en) Buffer allocation for reducing block transit penalty
US12001721B2 (en) Multiple-pass programming of memory cells using temporary parity generation
US20230207028A1 (en) Managing an adaptive data path selection threshold for a memory sub-system
US11934685B2 (en) Performing memory access operations based on quad-level cell to single-level cell mapping table
US12051479B2 (en) Memory block programming using defectivity information
US12062394B2 (en) Performing data integrity checks to identify defective wordlines
US11989600B2 (en) Method for an internal command from a plurality of processing cores with memory sub-system that cache identifiers for access commands
US20240118971A1 (en) Temporary parity buffer allocation for zones in a parity group
CN115480695A (zh) 存储器装置中的基于层面的媒体管理操作
CN113126899A (zh) 完全多平面操作启用

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination