CN115248742A - 用于内部读取操作的错误校正 - Google Patents

用于内部读取操作的错误校正 Download PDF

Info

Publication number
CN115248742A
CN115248742A CN202210440235.7A CN202210440235A CN115248742A CN 115248742 A CN115248742 A CN 115248742A CN 202210440235 A CN202210440235 A CN 202210440235A CN 115248742 A CN115248742 A CN 115248742A
Authority
CN
China
Prior art keywords
codeword
data
errors
error control
memory
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
CN202210440235.7A
Other languages
English (en)
Inventor
罗伯特·B·艾森胡特
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 CN115248742A publication Critical patent/CN115248742A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • 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
    • 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
    • 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/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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请涉及用于内部读取操作的错误校正。在一些存储器系统中,存储器装置可执行内部读取操作,其中所述存储器装置读取所述存储器装置内部的数据(例如,在不将所述数据发送到存储器系统控制器的情况下)。为了在内部读取操作期间检测及校正错误,所述存储器装置可使用存储器裸片上的错误控制电路。所述存储器裸片上的所述错误控制电路可与所述存储器系统控制器处的错误控制电路在包含相同数据及相同奇偶校验位的相同码字上操作,从而有效地重复使用用于主机读取操作及内部读取操作的所存储奇偶校验位。为了减少在所述存储器装置处的解码开销,所述存储器裸片上的所述错误控制电路可支持检测比所述存储器系统控制器处的所述错误控制电路更少的错误。

Description

用于内部读取操作的错误校正
交叉引用
本专利申请主张艾森胡特(EISENHUTH)在2021年4月26日提交的标题为“用于内部读取操作的错误校正(ERROR CORRECTION FOR INTERNAL READ OPERATIONS)”的第17/240,471号美国专利申请的权益,所述美国专利申请被转让给本受让人且以引用的方式明确并入本文中。
技术领域
技术领域涉及用于内部读取操作的错误校正。
背景技术
存储器装置广泛地用于将信息存储在例如计算机、用户装置、相机、数字显示器等各种电子装置中。通过将存储器装置内的存储器单元编程为各种状态来存储信息。举例来说,二进制存储器单元可编程到两个支持状态中的一个,通常对应于逻辑1或逻辑0。在一些实例中,单个存储器单元可支持多于两个可能状态,存储器单元可存储所述两个可能状态中的任一个。为了存取由存储器装置存储的信息,组件可读取或感测存储器装置内的一或多个存储器单元的状态。为了存储信息,组件可将存储器装置内的一或多个存储器单元写入或编程到对应状态。
存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻性RAM(RRAM)、快闪存储器、相变存储器(PCM)、三维交叉点存储器(3D交叉点)、或非(NOR)及与非(NAND)存储器装置等。存储器装置可为易失性的或非易失性的。除非由外部电源周期性更新,否则易失性存储器单元(例如,DRAM单元)可随时间推移而丢失其编程状态。非易失性存储器单元(例如,NAND存储器单元)即使在不存在外部电源的情况下仍可在很长一段时间内维持其编程状态。
发明内容
描述一种设备。所述设备包含:存储器裸片,及控制电路,其与所述存储器裸片耦合并且经配置以使所述设备:从所述存储器裸片检索码字作为内部读取操作的一部分,所述内部读取操作独立于从主机系统接收的读取命令而起始,所述码字包含数据及奇偶校验位集;由支持检测第一数量的错误且由所述存储器裸片上的第一错误控制电路实施的第一错误控制操作使用奇偶校验位集识别所述码字的所述数据中的一或多个错误,其中所述码字还经配置以由第二错误控制操作使用,所述第二错误控制操作使用奇偶校验位集支持检测多于第一数量的错误的第二数量的错误;至少部分地基于识别所述一或多个错误而校正所述码字的所述数据中的所述一或多个错误;及至少部分地基于校正所述码字的所述数据中的所述一或多个错误而将信息写入到所述存储器裸片。
描述一种存储代码的非暂时性计算机可读媒体。所述存储代码的非暂时性计算机可读媒体包含指令,所述指令在由电子装置的处理器执行时使所述电子装置:从存储器裸片检索码字作为内部读取操作的一部分,所述内部读取操作独立于从主机系统接收的读取命令而起始,所述码字包含数据及奇偶校验位集;由支持检测第一数量的错误且由所述存储器裸片上的第一错误控制电路实施的第一错误控制操作使用奇偶校验位集识别所述码字的所述数据中的一或多个错误,其中所述码字还经配置以由第二错误控制操作使用,所述第二错误控制操作使用奇偶校验位集支持检测多于第一数量的错误的第二数量的错误;至少部分地基于识别所述一或多个错误而校正所述码字的所述数据中的所述一或多个错误;及至少部分地基于校正所述码字的所述数据中的所述一或多个错误而将信息写入到所述存储器裸片。
描述一种由存储器装置执行的方法。由存储器装置执行的方法包含:从存储器裸片检索码字作为内部读取操作的一部分,所述内部读取操作独立于从主机系统接收的读取命令而起始,所述码字包含数据及奇偶校验位集;由支持检测第一数量的错误且由所述存储器裸片上的第一错误控制电路实施的第一错误控制操作使用奇偶校验位集识别所述码字的所述数据中的一或多个错误,其中所述码字还经配置以由第二错误控制操作使用,所述第二错误控制操作使用奇偶校验位集支持检测多于第一数量的错误的第二数量的错误;至少部分地基于识别所述一或多个错误而校正所述码字的所述数据中的所述一或多个错误;及至少部分地基于校正所述码字的所述数据中的所述一或多个错误而将信息写入到所述存储器裸片。
附图说明
图1说明根据本文所公开的实例的支持用于内部读取操作的错误校正的系统的实例。
图2说明根据本文所公开的实例的支持用于内部读取操作的错误校正的过程流的实例。
图3A及3B说明根据本文所公开的实例的用于生成支持用于内部读取操作的错误校正的校正子的电路的实例。
图4展示根据本文所公开的实例的支持用于内部读取操作的错误校正的存储器装置或存储器系统的框图。
图5展示根据本文所公开的实例的说明支持用于内部读取操作的错误校正的一或多种方法的流程图。
具体实施方式
一些存储器系统可支持存储器装置处的内部读取操作。在一些情况下,可称为“预读取”的内部读取操作可涉及存储器装置从存储器裸片读取数据,及将信息写回到存储器裸片,而不将数据发送到主机系统或存储器系统外部(例如,例如发送到存储器系统控制器)。存储器装置可执行内部读取操作,以便执行回拷操作、垃圾收集操作、用于多层级存储器单元的写入操作、迭代写入操作,或其某一组合的至少一部分。在一些实例中,存储器装置可不在内部读取操作期间应用任何错误控制操作。举例来说,如果错误控制由存储器系统控制器处的错误控制电路处理,则可不将用于内部读取操作的数据发送到错误控制电路以进行错误检查。因此,如果通过内部读取操作从存储器裸片读取的数据包含一或多个错误,则存储器装置可将包含错误的数据写回到存储器裸片。因此,内部读取操作可有效地传播错误,并且在一些情况下,可能无法检测到瞬时错误且可将瞬时错误提交到数据(例如,作为“硬”错误)。在一些实例中,多个内部读取操作可随时间累积错误,从而产生存储于存储器装置中的不可读数据。
为了在内部读取操作期间支持错误的检测及校正,存储器装置可使用存储器裸片上的错误控制电路。错误控制电路可支持检测第一数量的错误,所述第一数量的错误少于可由存储器系统控制器处的错误控制电路检测的第二数量的错误。举例来说,为了减少存储器装置内部的处理开销,与存储器系统控制器处的错误控制电路相比,存储器裸片上的错误控制电路可使用较不复杂的解码逻辑。然而,为了有效地使用存储在存储器裸片处的可用信息,存储器裸片上的错误控制电路可与存储器系统控制器处的错误控制电路在相同的码字上操作,所述相同码字包含相同数据及相同奇偶校验位。存储器裸片上的错误控制电路可在内部读取操作期间检测及校正码字的数据位、奇偶校验位或两者。因此,相同码字可支持两个级别的错误检查:针对内部读取操作的存储器裸片上的有效、相对低开销的错误控制操作,及针对主机读取操作的在存储器系统控制器处的更复杂的错误控制操作。另外或替代地,为了减少在用于内部读取的错误控制操作期间错误校正的可能性,存储器裸片上的错误控制电路可使用额外的校验子来确定要校正的位。举例来说,尽管2T个校正子可支持校正至多个T错误,但是错误控制电路可计算多于2T个校正子以减少错误校正的风险且改进用于内部读取操作的错误校正的可靠性。
最初在如参考图1所描述的系统的上下文中描述本公开的特征。在如参考图2、3A及3B描述的过程流及电路的上下文中进一步描述本公开的特征。由设备图及流程图进一步说明且参考设备图及流程图描述本公开的这些及其它特征,所述设备图及流程图涉及如参考图4及5所描述的用于内部读取操作的错误校正。
图1说明根据本文所公开的实例的支持用于内部读取操作的错误校正的系统100的实例。系统100包含与存储器系统110耦合的主机系统105。
存储器系统110可为或包含任何装置或装置的集合,其中装置或装置的集合包含至少一个存储器阵列。举例来说,存储器系统110可为或包含通用快闪存储(UFS)装置、嵌入式多媒体控制器(eMMC)装置、快闪装置、通用串行总线(USB)快闪装置、安全数字(SD)卡、固态驱动器(SSD)、硬盘驱动器(HDD)、双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM),或非易失性DIMM(NVDIMM),以及其它可能性。
系统100可包含在计算装置中,所述计算装置例如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具物联网(IoT)功能的装置、嵌入式计算机(例如,包含在交通工具、工业设备或联网商业装置中的嵌入式计算机),或包含存储器及处理装置的任何其它计算装置。
系统100可包含可与存储器系统110耦合的主机系统105。在一些实例中,此耦合可包含与主机系统控制器106的接口,所述主机系统控制器可为经配置以使主机系统105根据如本文所描述的实例执行各种操作的控制组件的实例。主机系统105可包含一或多个装置,且在一些情况下可包含处理器芯片组及通过处理器芯片组执行的软件堆栈。举例来说,主机系统105可包含被配置用于与存储器系统110或其中的装置通信的应用程序。处理器芯片组可包含一或多个核心、一或多个高速缓存(例如,主机系统105本地的或包含在主机系统105中的存储器)、存储器控制器(例如,NVDIMM控制器),及存储协议控制器(例如,外围组件互连高速(PCIe)控制器、串行高级技术附件(SATA)控制器)。主机系统105可使用存储器系统110,例如,将数据写入到存储器系统110及从存储器系统110读取数据。尽管图1中展示一个存储器系统110,但是主机系统105可与任何数量的存储器系统110耦合。
主机系统105可经由至少一个物理主机接口而与存储器系统110耦合。在一些情况下,主机系统105及存储器系统110可经配置以使用相关联协议经由物理主机接口通信(例如,以在存储器系统110与主机系统105之间交换或以其它方式传达控制、地址、数据及其它信号)。物理主机接口的实例可包含但不限于SATA接口、UFS接口、eMMC接口、PCIe接口、USB接口、光纤通道接口、小型计算机系统接口(SCSI)、串行连接的SCSI(SAS)、双数据速率(DDR)接口、DIMM接口(例如,支持DDR的DIMM套接接口)、开放NAND快闪接口(ONFI),及低功率双数据速率(LPDDR)接口。在一些实例中,一或多个此类接口可包含在主机系统105的主机系统控制器106与存储器系统110的存储器系统控制器115中或以其它方式在其间得到支持。在一些实例中,主机系统105可经由用于包含在存储器系统110中的每个存储器装置130的相应物理主机接口,或经由用于包含在存储器系统110中的每个类型的存储器装置130的相应物理主机接口与存储器系统110耦合(例如,主机系统控制器106可与存储器系统控制器115耦合)。
存储器系统110可包含存储器系统控制器115及一或多个存储器装置130。存储器装置130可包含任何类型的存储器单元(例如,非易失性存储器单元、易失性存储器单元,或其任何组合)的一或多个存储器阵列。尽管图1的实例中展示两个存储器装置130-a及130-b,但存储器系统110可包含任何数量的存储器装置130。此外,如果存储器系统110包含多于一个存储器装置130,则存储器系统110内的不同存储器装置130可包含相同或不同类型的存储器单元。
存储器系统控制器115可与主机系统105耦合及通信(例如,经由物理主机接口),并且可为经配置以使存储器系统110根据如本文所描述的实例执行各种操作的控制组件的实例。存储器系统控制器115还可与存储器装置130耦合及通信,以在存储器装置130处执行一般可称为存取操作的操作,例如读取数据、写入数据、擦除数据,或刷新数据,以及其它此类操作。在一些情况下,存储器系统控制器115可从主机系统105接收命令且与一或多个存储器装置130通信以执行此些命令(例如,在所述一或多个存储器装置130内的存储器阵列处)。举例来说,存储器系统控制器115可从主机系统105接收命令或操作,并且可将命令或操作转换成指令或适当的命令,以实现对存储器装置130的期望存取。在一些情况下,存储器系统控制器115可与主机系统105及一或多个存储器装置130交换数据(例如,响应于或以其它方式结合来自主机系统105的命令)。举例来说,存储器系统控制器115可将与存储器装置130相关联的响应(例如,数据包或其它信号)转换成用于主机系统105的对应信号。
存储器系统控制器115可经配置用于与存储器装置130相关联的其它操作。举例来说,存储器系统控制器115可执行或管理操作,例如,耗损均衡操作、垃圾收集操作、例如错误检测操作或错误校正操作的错误控制操作、加密操作、高速缓存操作、媒体管理操作、后台刷新、健康监测,及与来自主机系统105的命令相关联的逻辑地址(例如,逻辑块地址(LBA))和与存储器装置130内的存储器单元相关联的物理地址(例如,物理块地址)之间的地址转换。
存储器系统控制器115可包含硬件,例如一或多个集成电路或离散组件、缓冲存储器,或其任何组合。硬件可包含具有专用(例如,硬译码)逻辑的电路系统,以执行本文中归因于存储器系统控制器115的操作。存储器系统控制器115可为或包含微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)、数字信号处理器(DSP)),或任何其它合适的处理器或处理电路系统。
存储器系统控制器115还可包含本地存储器120。在一些情况下,本地存储器120可包含只读存储器(ROM)或其它存储器,其可存储可由存储器系统控制器115执行的操作代码(例如,可执行指令)以执行本文中归因于存储器系统控制器115的功能。在一些情况下,本地存储器120可另外或替代地包含静态随机存取存储器(SRAM)或其它存储器,其可由存储器系统控制器115用于例如与本文中归因于存储器系统控制器115的功能有关的内部存储或运算。另外或替代地,本地存储器120可充当用于存储器系统控制器115的高速缓冲存储器。举例来说,数据可在从存储器装置130读取或写入到存储器装置130的情况下存储在本地存储器120中,且所述数据可在本地存储器120内可用以由主机系统105根据高速缓存策略(例如,以相对于存储器装置130减少的时延)进行后续检索或操纵(例如,更新)。
尽管图1中的存储器系统110的实例已说明为包含存储器系统控制器115,但在一些情况下,存储器系统110可不包含存储器系统控制器115。举例来说,存储器系统110可另外或替代地依赖于外部控制器(例如,由主机系统105实施)或可分别在存储器装置130内部的一或多个本地控制器135,以执行本文中归于存储器系统控制器115的功能。一般来说,本文中归于存储器系统控制器115的一或多个功能可在一些情况下替代地由主机系统105、本地控制器135或其任何组合执行。在一些情况下,至少部分地由存储器系统控制器115管理的存储器装置130可称为受管理存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器装置130可包含非易失性存储器单元的一或多个阵列。举例来说,存储器装置130可包含NAND(例如,NAND快闪)存储器、ROM、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电随机存取存储器(RAM)(FeRAM)、磁性RAM(MRAM)、NOR(例如,NOR快闪)存储器、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻式随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、电可擦除可编程ROM(EEPROM),或其任何组合。另外或替代地,存储器装置130可包含易失性存储器单元的一或多个阵列。举例来说,存储器装置130可包含RAM存储器单元,例如动态RAM(DRAM)存储器单元及同步DRAM(SDRAM)存储器单元。
在一些实例中,存储器装置130可包含(例如,在同一裸片上或在同一封装内)本地控制器135,其可在相应存储器装置130的一或多个存储器单元上执行操作。本地控制器135可结合存储器系统控制器115操作,或可执行本文中归因于存储器系统控制器115的一或多个功能。举例来说,如图1中所说明,存储器装置130-a可包含本地控制器135-a,并且存储器装置130-b可包含本地控制器135-b。
在一些情况下,存储器装置130可为或包含NAND装置(例如,NAND快闪装置)。存储器装置130可为或包含存储器裸片160。举例来说,在一些情况下,存储器装置130可为包含一或多个裸片160的封装。在一些实例中,裸片160可为从晶片切割的一块电子级半导体(例如,从硅晶片切割的硅裸片)。每个裸片160可包含一或多个平面165,并且每个平面165可包含相应的一组块170,其中每个块170可包含相应的一组页面175,并且每个页面175可包含一组存储器单元。
在一些实例中,存储器装置130可使用或根据虚拟块及虚拟页而操作。虚拟块可对应于每一平面165和每一NAND裸片160的一个块170。每个虚拟块可包含多个虚拟页。在一些情况下,多个虚拟页可对应于物理页175(例如,每物理页175四个虚拟页)。在一些实例中,虚拟块可包含数万个虚拟页(例如,取决于存储器装置130的大小)。存储器装置130可根据虚拟块及虚拟页执行读取及写入操作。在一些实例中,一或多个虚拟页、虚拟块、页175、块170或存储器装置130可称为存储器系统110的“分区”或“子集”。
在一些情况下,NAND存储器装置130可包含经配置以各自存储一个信息位的存储器单元,其可被称为单层级单元(SLC)。另外或替代地,NAND存储器装置130可包含经配置以各自存储多个信息位的存储器单元,如果配置成各自存储两个信息位,则其可称为多层级单元(MLC),如果配置成各自存储三个信息位,则其可称为三层级单元(TLC),如果配置成各自存储四个信息位,则其可称为四层级单元(QLC),或更一般地称为多层级存储器单元。多层级存储器单元可相对于SLC存储器单元提供更大的存储密度,但在一些情况下,可能涉及用于支持电路系统的更窄读取或写入裕度或更大复杂度。
在一些情况下,平面165可指块170的群组,并且在一些情况下,并行操作可在不同平面165内进行。举例来说,并行操作可在不同块170内的存储器单元上执行,只要不同块170在不同平面165中。在一些情况下,在不同平面165中执行并行操作可具有一或多个限制,例如相同操作在相应平面165内具有相同页地址的不同页175内的存储器单元上执行(例如,涉及命令解码、页地址解码电路系统或跨平面165共享的其它电路系统)。
在一些情况下,块170可包含组织成行(页175)及列(例如,串(未展示))的存储器单元。举例来说,同一页175中的存储器单元可共享共同字线(例如,与其耦合),并且同一串中的存储器单元可共享共同数字线(其可替代地被称为位线)(例如,与其耦合)。
对于一些NAND架构,存储器单元可在第一粒度级别(例如,在页粒度级别)读取及编程(例如,写入),但可在第二粒度级别(例如,在块粒度级别)擦除。也就是说,页175可为可独立地编程或读取(例如,作为单个编程或读取操作的一部分同时编程或读取)的存储器(例如,存储器单元的集合)的最小单元,且块170可为可独立地擦除(例如,作为单个擦除操作的一部分同时擦除)的存储器(例如,存储器单元的集合)的最小单元。此外,在一些情况下,NAND存储器单元可在其可用新数据重写之前进行擦除。因此,举例来说,在一些情况下,可直到包含页175的整个块170已被擦除才更新所使用的页175。
在一些情况下,为了在块170内更新一些数据,同时保留块170内的其它数据,存储器装置130可将待保留的数据复制到新块170且将更新的数据写入到新块170的一或多个其余页面。存储器装置130(例如,本地控制器135)或存储器系统控制器115可将保持在旧块170中的数据标记或以其它方式表示为无效或过时,并且可更新逻辑到物理(L2P)映射表以使数据的逻辑地址(例如,LBA)与新的有效块170,而不是旧的无效块170相关联。在一些情况下,举例来说由于时延或磨损考虑,可执行此复制及重新映射,而不是擦除及重写整个旧块170。在一些情况下,L2P映射表的一或多个副本可存储在存储器装置130的存储器单元内(例如,一或多个块170或平面165内),以供本地控制器135或存储器系统控制器115使用(例如,参考及更新)。
在一些情况下,可维护L2P映射表且可在页粒度级别上将数据标记为有效或无效,并且页175可包含有效数据、无效数据或不包含数据。无效数据可为由于数据的最新版本或更新版本存储在存储器装置130的不同页面175中而过时的数据。无效数据可能先前已被编程到无效页面175,但是可能不再与有效逻辑地址,例如由主机系统105参考的逻辑地址相关联。有效数据可为存储在存储器装置130上的此数据的最新版本。不包含数据的页面175可为从未被写入或已被擦除的页面175。
在一些情况下,存储器系统控制器115或本地控制器135可执行存储器装置130的操作(例如,作为一或多个媒体管理算法的一部分),例如耗损均衡、后台刷新、垃圾收集、清理、块扫描、健康监测,或其它操作,或其任何组合。举例来说,在存储器装置130内,块170可具有含有有效数据的一些页175及含有无效数据的一些页175。为了避免等待块170中的所有页175具有无效数据以便擦除及重复使用块170,可调用被称作“垃圾收集”的算法,以允许块170被擦除及释放为用于后续写入操作的空闲块。垃圾收集可指一组媒体管理操作,其包含例如选择包含有效及无效数据的块170、选择块中包含有效数据的页175、将来自所选择页175的有效数据复制到新位置(例如,另一块170中的空闲页175)、将先前选择的页175中的数据标记为无效,及擦除所选择块170。因此,可增加已擦除的块170的数量,使得可使用更多的块170来存储后续数据(例如,随后从主机系统105接收到的数据)。
在存储器装置130处执行的一些操作可涉及内部读取操作(例如,在存储器装置130内部)。内部读取操作可涉及在将新数据写入到存储器装置130之前,存储器装置130预读取写入到存储器装置130中的数据。存储器装置130可使用在内部读取操作期间读取的数据,以确定如何将新数据写入到存储器装置130。
在一些实例中,存储器装置130可包含在存储器裸片160处的多层级存储器单元。如果存储器装置130接收将数据写入到多层级存储器单元的写入命令,则存储器装置130可执行内部读取操作以从多层级存储器单元的第一页175读取数据。举例来说,如果存储器装置130支持每单元存储多个位,则存储器装置130可预读取下部页、上部页或两者,以支持通过多遍次编程算法将数据写入到存储器装置130的额外页。存储器装置130可根据从下部页、上部页或两者读取的数据确定如何将数据写入到额外页。
在一些其它实例中,存储器装置130(例如,三维交叉点存储器(3D交叉点))可使用涉及迭代写入操作的写入模式,例如正常写入。举例来说,在将新数据写入到页175之前,存储器装置130可执行内部读取操作以从页175读取数据。代替将所有新数据写入到页175,存储器装置130可确定哪些位在当前存储在页175上的数据(例如,使用内部读取操作确定)与要写入到页175的新数据之间变化。存储器装置130可写入变化的位并且可避免写入其它位以减少由存储器装置130执行的编程-擦除(P/E)循环量。
在又一些其它实例中,存储器装置130可实施内部读取操作以执行各种操作(包含回拷操作)。举例来说,回拷操作可涉及存储器装置130从存储器(例如,NAND快闪存储器)内的第一位置读取数据,及将数据写入到存储器中的第二位置。垃圾收集可为回拷操作的一个实例。回拷操作的另一实例可涉及存储器装置130将数据从一种类型的存储器单元迁移到另一类型的存储器单元。为了执行回拷,存储器装置130可执行内部读取操作以从存储器中的第一位置读取数据。
可在存储器装置130内部执行内部读取操作。举例来说,可不将在内部读取操作从存储器裸片160读取的数据发送到存储器装置130外部的任何组件(例如,存储器系统110的其它组件)。内部读取操作可由存储器装置130的本地控制器135处理,而不是由存储器系统110的存储器系统控制器115处理。此过程可不同于主机读取操作(例如,响应于从主机系统105接收的读取命令执行的读取操作)。主机读取操作可由存储器系统控制器115处理。举例来说,存储器系统110可从主机系统105接收读取命令,从存储器装置130读取所请求的数据,对存储器系统控制器115处的数据解码且执行错误控制操作,及响应于读取命令而将所请求的数据返回到主机系统105。因此,主机读取操作可由从存储器装置130检索数据的存储器系统控制器115处理,而内部读取操作可在存储器装置130内部处理。
对于主机读取操作,可在存储器系统控制器115处执行错误控制处理。如图1中所说明,存储器系统控制器115可包含错误控制电路180-b,所述错误控制电路对从存储器装置130读取的数据执行错误控制操作。存储器系统控制器115可从存储器装置130读取数据,作为包含数据及奇偶校验位的码字(例如,错误控制码,例如错误校正码(ECC))。错误控制电路180-b可对码字进行解码以确定数据。使用奇偶校验位及ECC的一或多个特征,错误控制电路180-b可检测及校正数据中的错误。举例来说,如果由于一或多个条件(例如,温度变化、电或磁干扰),所存储位在位值之间错误地翻转,则错误控制电路180-b可使用用于错误控制电路180的ECC及解码逻辑返回正确位。因此,如果在存储于存储器装置130处的数据中发生错误,则存储器系统控制器115可在将数据发送到主机系统105之前定位错误。
因为内部读取操作不将数据发送到存储器系统控制器115,所以错误控制电路180-b可不对内部地读取的数据执行错误控制操作。如果不针对内部读取操作执行错误校正,则用于内部读取操作的数据中的任何错误可影响写回到存储器装置130的数据。举例来说,即使错误是瞬时的,内部读取操作也可导致存储器装置130将错误写回到存储器裸片160(例如,作为“硬”错误)。在一些情况下,如果在无错误校正的情况下执行多个内部读取操作,则错误可随时间累积。
为了对内部读取操作提供错误校正,存储器装置130可包含内部错误控制电路180-a。错误控制电路180-a可在存储器裸片160上,并且可针对在内部读取操作期间读取的数据提供错误控制保护。为了支持相对较低的处理开销(例如,低于阈值),错误控制电路180-a的校正能力可能相对较低,并且相应地与针对存储器系统控制器115处的错误控制电路180-b相比,在存储器装置130内部的错误控制码解码逻辑可能相对较不复杂。具体来说,因为与存储器装置130相比,存储器系统控制器115可支持用于解码的更多资源及较不严格的时延阈值,所以错误控制电路180-b可支持比错误控制电路180-a更多的解码复杂性。然而,存储额外ECC奇偶校验位以在错误控制电路180-a及错误控制电路180-b处支持不同解码逻辑可增加存储开销并且低效地利用存储器装置130的存储器资源。
存储器装置130可实施特定的错误控制电路180-a,使得错误控制电路180-a可重新使用由错误控制电路180-b使用的ECC奇偶校验位(例如,不管错误控制电路180-a与错误控制电路180-b之间的解码逻辑中的差异如何)。举例来说,存储器装置130可使用码字(例如,ECC)存储数据,所述码字经配置用于由支持检测第一数量的错误的第一错误控制电路180-a及支持检测第二数量的错误的第二错误控制电路180-b两者使用。
为了支持在存储器装置130内部的错误控制电路180-a处解码与在存储器系统控制器115处的错误控制电路180-b处解码之间的这种灵活性,存储器系统110可使用码字生成过程来生成码字,所述码字对相对较大数量的错误校正(例如,高于阈值数量的错误)及相对较小数量的错误校正(例如,低于阈值数量的错误)两者有效。支持此操作的一些实例码字类型可包含博斯-乔赫里-霍克文黑姆(BCH)码字及里德-所罗门码字,尽管存储器系统110可以实施支持这些操作的任何类型的码字。错误控制电路180-a可使用第一代码(例如,相对较小代码)对码字进行解码,而错误控制电路180-b可使用第二代码(例如,相对较大代码)对相同码字进行解码。
存储器系统110可使用特定的第一代码及第二代码来支持对相同码字的解码。举例来说,第一代码及第二代码可共享相同的伽罗瓦域本原多项式。伽罗瓦域本原多项式可确定代码所支持的码字大小的上限。举例来说,X个位的伽罗瓦域可支持包含至多2X-1个位的BCH码字。两个解码器(例如,使用第一代码的错误控制电路180-a及使用第二代码的错误控制电路180-b)可设计有相同的伽罗瓦域本原多项式。
伽罗瓦域本原多项式可进一步定义α值。举例来说,α值可为伽罗瓦域的成员。表示为多项式的有效BCH码字具有α的2T个连续根,其中T指示BCH代码可校正的错误数量。对于共享奇偶校验(例如,支持对具有相同奇偶校验位的相同码字进行解码)的第一代码及第二代码,在第二代码的α的2T个连续根内包含第一代码的α的2T个连续根。因此,可独立于第二代码设计第一代码,但是可根据第一代码的设计来设计第二代码。另外,两个解码器可经设计以识别码字的总大小,以支持码字的错误控制操作。在一些实例中,存储器系统110、存储器装置130或两者可使用设置特征命令来指示码字的总大小。
作为实例,存储器系统110可实施BCH码字以支持错误控制操作。存储器装置130可将第一BCH解码器实施为错误控制电路180-a,以支持使用相对较小量的解码逻辑(例如,一或多个封闭方程)检测及校正相对较小数量的错误(例如,2或3个错误)。另外,存储器系统110可将第二BCH解码器实施为错误控制电路180-b,以支持使用相对大量的解码逻辑(例如,复杂算法解码器)检测及校正相对较大数量的错误(例如,80个错误)。如果如本文所描述,第一BCH解码器及第二BCH解码器配置有共享奇偶校验的第一BCH代码及第二BCH代码,则存储器装置130可在内部读取操作中校正至多相对较小数量的错误(例如,2或3个错误),而存储器装置130不存储任何额外的奇偶校验位(例如,超出经存储以支持在存储器系统控制器115的第二BCH解码器处校正相对较大数量的错误的位)。
BCH代码可校正至多阈值数量T的错误。错误控制电路180-a可使用可校正T1个错误(例如,T1=3)的第一BCH代码,并且错误控制电路180-b可使用可校正T2个错误(例如,T2=80)的第二BCH代码。如本文所描述,表示为多项式的有效BCH码字具有α的2T个连续根,其中α由伽罗瓦域定义。举例来说,第一BCH代码的有效BCH码字可具有通过表达式1给出的因数(例如,根)。
Figure BDA0003613635930000121
然而,α的幂可开始于任何值,使得因数可跨越α的2T个连续根。如果第二BCH代码与第一BCH代码使用相同伽罗瓦域,则如果有效BCH码字与第一BCH代码的有效BCH码字共享相同因数(例如,根),第二BCH代码的有效BCH码字也可对于第一BCH代码有效。举例来说,如果BCH码字具有通过表达式2给出的因数,则BCH码字可对于第一BCH代码及第二BCH代码两者有效,如果T2>T1,则所述因数包含通过表达式1给出的因数。
Figure BDA0003613635930000122
具体来说,如果有效“小”码字(例如,对于第一BCH代码有效的码字)的因数包含在有效“大”码字(例如,对于第二BCH代码有效的码字)的因数中,则“大”码字支持通过第一BCH代码及第二BCH代码两者进行解码。
因此,对于写入操作,存储器系统110可接收数据以写入到存储器装置130,并且可使用生成多项式以使用数据生成码字(例如,BCH码字)。举例来说,除了存储器装置130处的数据之外,生成多项式可生成要存储的奇偶校验位。数据及奇偶校验位可形成对于错误控制电路180-a(例如,使用第一BCH代码)及错误控制电路180-b(例如,使用第二BCH代码)两者有效的码字。
为了执行内部读取操作,存储器装置130可从存储器裸片160检索BCH码字,并且错误控制电路180-a可使用第一BCH代码对BCH码字进行解码。根据使用码字的解码逻辑的设计,错误控制电路180-a处的解码逻辑可校正至多T1个错误。错误控制电路180-a处的解码过程可独立于错误控制电路180-b及第二BCH代码。为了执行主机读取操作,存储器系统110可从存储器裸片160检索相同BCH码字,并且错误控制电路180-b可使用第二BCH代码对码字进行解码。根据使用码字的用于错误控制电路180-b的解码逻辑的设计,错误控制电路180-b可校正至多T2个错误。
系统100可包含支持用于内部读取操作的错误校正的任何数量的非暂时性计算机可读媒体。举例来说,主机系统105、存储器系统控制器115或存储器装置130可包含或以其它方式可存取一或多个非暂时性计算机可读媒体,所述非暂时性计算机可读媒体存储指令(例如,固件)以执行本文中归因于主机系统105、存储器系统控制器115或存储器装置130的功能。举例来说,如果由主机系统105(例如,由主机系统控制器106)、由存储器系统控制器115,或由存储器装置130(例如,由本地控制器135)执行,则此类指令可使主机系统105、存储器系统控制器115或存储器装置130执行如本文中所描述的一或多个相关联功能。
在一些情况下,存储器系统110可利用存储器系统控制器115以提供受管理存储器系统,所述受管理存储器系统可包含例如一或多个存储器阵列及与本地(例如,裸片上或封装中)控制器(例如,本地控制器135)组合的相关电路系统。受管理存储器系统的实例为受管理NAND(MNAND)系统。
尽管本文中参考NAND存储器装置130描述本公开的特征,但应理解,本公开的特征可通过其它存储器装置130或存储器系统110实施。举例来说,本文所描述的本公开的一或多个特征可实施于非易失性存储器或其它存储器装置130中,例如DRAM、FeRAM、基于硫族化物的存储器,或其它类型的存储器技术。
图2说明根据本文所公开的实例的支持用于内部读取操作的错误校正的过程流200的实例。过程流200可由参考图1所描述的存储器装置、存储器系统或两者执行。举例来说,第一组过程255可在存储器装置内部执行,而第二组过程260可使用存储器系统控制器由存储器系统执行。可实施以下内容的替代的实例,其中一些过程以与所描述的次序不同的次序执行或根本不执行。在一些情况下,过程可包含下文未提及的额外特征,或可添加另外的过程。
在205处,触发内部读取操作。内部读取操作可为回拷操作、垃圾收集操作、多层级存储器单元的写入操作、迭代写入操作,或其某一组合的一部分。存储器装置可将内部读取操作执行为“预读取”,以在将信息(例如,新数据、先前存储在存储器裸片处的数据)写回到存储器裸片之前读取写入到存储器裸片的数据。
在210处,从存储器裸片检索码字。存储器装置可从存储器裸片检索码字,所述码字包含数据及奇偶校验位集。举例来说,存储器裸片可将对应于数据(例如,主机数据)的数据位集存储在存储器裸片的第一部分中,并且可将响应于数据位集而生成的奇偶校验位集存储在存储器裸片的第二部分中。数据位集和奇偶校验位集可形成码字,所述码字经配置用于由第一错误控制电路处的第一错误控制操作及第二错误控制电路处的第二错误控制操作两者使用,如参考图1所描述。码字可为BCH码字、里德一所罗门码字或支持用于内部读取操作及主机读取操作两者的错误校正的另一码字的实例。
在215处,由错误控制电路执行错误控制操作。举例来说,存储器裸片(例如,NAND裸片)上的解码器可对所检索码字进行解码。解码器的解码逻辑可支持检测第一数量的错误。第一数量的错误可相对较小(例如,低于阈值,例如4)以支持低复杂性解码。因为解码器在存储器裸片上,所以解码复杂性可对应于存储器裸片出的显著资源及性能节省。解码器(例如,第一错误控制电路)可使用例如对应于第一BCH代码的解码逻辑确定码字是否具有任何错误。
如果码字包含由存储器裸片上的解码器可校正的一定数量的错误,则在220处,校正错误。举例来说,如果第一错误控制电路检测至多第一数量的错误,则第一错误控制电路可定位错误(例如,切换位值)以确定有效码字。在一些情况下,第一错误控制电路可校正数据位、奇偶校验位或两者中的错误。举例来说,因为可执行内部读取操作以便将信息写回到存储器裸片,所以校正奇偶校验位可通过提高后续读取操作的成功解码的可能性来增加值。
如果码字不包含由存储器裸片上的解码器可校正的一定数量的错误,则不校正错误。在一些实例中,码字可具有零错误。在一些其它实例中,码字的错误数量可超过由解码器可校正的第一错误数量。在此类实例中,存储器装置可避免修改码字并且可生成码字具有解码器(例如,第一错误控制电路)不可校正的错误的指示。存储器装置可将不可校正错误的指示存储在具有对应数据指示的记录中,可将不可校正错误的指示显示给存储器系统控制器,或这两者。在一些实例中,不可校正错误可触发存储器装置使用第二错误控制电路将码字发送到存储器系统控制器以进行错误校正,所述第二错误控制电路支持校正多于第一数量的错误的第二数量的错误。举例来说,在一些情况下,存储器裸片上的解码器不可校正的错误可由存储器系统控制器处的解码器校正。
在225处,将信息写回到存储器裸片。举例来说,存储器装置可根据内部读取操作的结果确定待写入到存储器裸片的位。如果执行回拷操作,则存储器装置可将在内部读取操作期间读取的码字(例如,校正码字)写回到更新位置中的存储器装置。如果执行写入操作(例如,用于多层级存储器单元的写入操作或迭代写入操作),则存储器装置可确定要使用在内部读取操作期间读取的码字(例如,校正码字)写入的位及要写入到存储器裸片的输入数据。
在一些实例中,在230处,触发主机读取操作。举例来说,存储器系统可从主机系统接收从存储器裸片读取数据的命令。
在235处,从存储器裸片检索码字。举例来说,存储器系统的存储器系统控制器可检索码字,所述码字包含在读取命令中请求的数据。存储器系统控制器可从存储器装置检索数据,使得可在存储器装置外部对数据进行解码。码字可为在210处检索的相同码字。也就是说,可检索及解码包含数据位及相同奇偶校验位的相同码字,以用于内部读取操作及主机读取操作。在一些实例中,由于用于内部读取操作的错误校正,针对主机读取操作检索的码字可包含更少错误(例如,与不实施用于内部读取的错误校正的系统相比)。
在240处,由错误控制电路执行错误控制操作。举例来说,在存储器系统控制器处的解码器可对检索到的码字进行解码。解码器的解码逻辑可支持检测第二数量的错误。第二错误数量可相对较大(例如,大于阈值,例如50),以支持可靠解码并缓解数据损坏。解码器(例如,第二错误控制电路)可使用例如对应于第二BCH代码的解码逻辑确定码字是否具有任何错误。
如果码字包含由存储器系统控制器处的解码器可校正的一定数量的错误,则在245处,校正错误。举例来说,如果第二错误控制电路检测至多第二数量的错误,则第二错误控制电路可定位错误(例如,切换位值)以确定有效码字。在一些情况下,第二错误控制电路可校正数据位中的错误,但可避免校正奇偶校验位中的错误,因为响应于主机读取命令而将数据(而非奇偶校验位)发送到主机系统。如果码字不包含由存储器裸片上的解码器可校正的一定数量的错误,则不校正错误。
在250处,将经解码数据发送到主机系统。举例来说,存储器系统可响应于从存储器裸片读取数据的命令而将使用第二错误控制电路校正的所请求数据发送到主机系统。
过程流200的方面可由控制器(例如,存储器装置的本地控制器、存储器系统控制器,或两者)以及其它组件实施。另外或替代地,过程流200的各方面可实施为存储在存储器中的指令(例如存储在与存储器装置或存储器系统耦合的存储器中的固件)。举例来说,如果由控制器(例如,存储器装置的本地控制器、存储器系统控制器,或两者)执行,则所述指令可使控制器执行过程流200的操作。
图3A及3B说明根据本文所公开的实例的用于生成支持用于内部读取操作的错误校正的校正子的电路300的实例。电路300可为校正子发生器的实例。电路300可为错误控制电路、解码器或两者的组件或实例。举例来说,电路300可为存储器裸片上的第一错误控制电路的实例,如参考图1及2所描述。电路300可计算校正子作为错误控制操作的一部分,以识别并校正码字中的一或多个错误。
具有相对低复杂性且支持检测相对较小数量的错误(例如,低于阈值数量的错误,例如4)的错误控制电路可能容易发生错误校正。举例来说,此错误控制电路可使用在有效码字之间具有相对小的距离(例如,相对较小的最小距离)的代码(例如,BCH代码)。也就是说,第一有效码字可通过少量的位翻转变成第二有效码字。如果错误控制电路接收到具有比它能够校正的更多错误的码字,则可能发生错误校正,这可能导致错误控制电路错误识别至少一些错误。错误控制电路然后可使用错误识别的错误将码字修改成不同码字。
为了执行错误校正,错误控制电路可使用一组校正子。举例来说,错误控制电路可通过将码字输入到校正子发生器中而生成校正子。如果所生成的校正子具有零值,则码字是有效码字。如果不是,则错误控制电路可修改一或多个位(例如,多达支持检测及校正的位数量)以确定产生导致所生成校正子具有零值的码字。在一些实例中,错误控制电路可翻转一或多个位并重新生成校正子(例如,使用相同的校正子发生器),以检查校正是否产生有效码字(例如,每个生成的校正子具有零值)。在一些其它实例中,错误控制电路可使用校正信息且根据一或多个特定位中的变化来修改校正子。如果错误控制电路通过修改等于或小于错误控制电路可检测的错误数量的位数量来确定有效码字,则可识别可校正错误。如果错误控制电路无法通过修改等于或小于错误控制电路可检测的错误数量的位数量来确定有效码字,则可识别不可校正错误。
错误控制电路可针对错误控制电路可校正的每个错误使用两个校正子。举例来说,为了支持校正T个错误,错误控制电路可生成2T个校正子。然而,对于支持校正相对较小数量的错误(例如,T=3)的错误控制电路,使用类似地少量的校正子(例如,6个校正子)可能会导致代码的最小距离相对较小,并且相应地错误校正的可能性很大。
为了防止错误校正,错误控制电路可计算校验子集合,其总数量大于错误控制操作支持检测的错误数量的两倍。也就是说,错误控制电路可生成额外的校正子(例如,多于2T个校正子)以增加解码器的最小距离并降低错误校正的概率。在一些示例中,错误控制电路可生成额外的奇数校验子并且可避免生成额外的偶数校验子,因为偶数校验子可能不是独立的。举例来说,可通过对低编号的校验子求平方值(例如,S2n=Sn 2)来生成每个偶数校正子。由于与码字相关联的奇偶校验位的数量,如本文所描述的第一错误控制电路可支持生成额外的校正子。奇偶校验位的数量可基于由第二错误控制电路执行的错误控制操作,所述第二错误控制电路可操作以校正比由第一错误控制电路执行的错误控制操作更多的错误。也就是说,因为用于检测至多T1个错误的第一错误控制电路的有效码字也是用于检测至多T2个错误的第二错误控制电路的有效码字,其中T2>T1,所以第一错误控制电路可生成至多2T2个校正子(例如,因为第二错误控制电路支持此数量的校正子)。因此,为了减少在存储器裸片上的解码器处错误校正的可能性,解码器可生成由等式3给出的一定数量的校正子N(包含k个额外校正子)。
N=2T1+k,其中N≤2T2 (3)
另外或替代地,为了防止错误校正,存储器系统可通过码字实施循环冗余校验(CRC)位。然而,为了支持CRC操作,存储器裸片上的第一错误控制电路可与存储器系统控制器处的第二错误控制电路协调,以支持用于不同代码(例如,第一BCH代码及第二BCH代码)的共同CRC。
图3A说明电路300-a的实例,其经配置以一次一位地为码字生成一定数量(n)的校正子。电路300-a可支持使用额外校正子(例如,k个额外校正子)的校正子生成过程。可在305处将码字的位输入到校正子发生器(例如,一次一位),以生成N个校正子的集合中的每个校正子n。校正子发生器设计可取决于用于解码器的伽罗瓦域。举例来说,电路300-a可根据伽罗瓦域宽度b操作。在310处,将具有零位值的字段宽度b的一组位发送到校正子发生器。零位集合可穿过具有数据输入(例如,码字的位)及来自校正子发生器的一组位反馈的多路复用器315,并且所得位可穿过异或门320。电路300-a可进一步包含根据用于解码器的伽罗瓦域确定的锁存器325(例如,d锁存器)及倍增器330(例如,伽罗瓦域倍增器)。倍增器330可包含与门、或门,或两者。电路300-a可响应于输入码字而生成校正子的集合(例如,大于2T1的N个校正子的集合,如本文所描述),以支持错误校正。
图3B说明电路300-b的实例,其经配置以一次w个位地为码字生成一定数量(n)的校正子。电路300-b可为并行化校正子发生器的实例。电路300-b的数据路径宽度w可取决于存储器芯片实施方案。函数f(x)340可包含一或多个与门、或门,或两者。可在335处将码字的位输入到校正子发生器(例如,一次w个位)以生成校正子。w个输入比特可由函数f(x)340处理以产生结果,如同一次一个地将w个位被移位到校正子发生器中一样。电路300-b可进一步包含锁存器345(例如,d锁存器)。电路300-b可响应于输入码字而生成校正子的集合(例如,大于2T1的N个校正子的集合,如本文所描述),以支持错误校正。电路300-b的反馈可具有宽度b,其也可为校正子及伽罗瓦域的宽度。
图4展示根据本文所公开的实例的支持用于内部读取操作的错误校正的存储器装置或存储器系统420的框图400。存储器装置或存储器系统420可为如参考图1到3所描述的存储器装置130或存储器系统110的方面的实例。存储器装置或存储器系统420或其各种组件可为用于执行如本文中所描述的内部读取操作的错误校正的各种方面的装置的实例。举例来说,存储器装置或存储器系统420可包含内部读取组件425、第一错误控制组件430、错误校正组件435、写入组件440、主机读取组件445、第二错误控制组件450、奇偶校验位发生器455、校正子计算组件460、回拷组件465、存储组件470、不可校正错误指示组件475,或其任何组合。这些组件中的每一者可直接或间接地(例如,经由一或多个总线)彼此通信。
存储器装置或存储器系统420可包含设备或可为设备的实例,所述设备包含存储器裸片及与存储器裸片耦合的控制电路。控制电路可经配置以使设备执行本文所描述的一或多个操作。举例来说,例如参考图1所描述的存储器装置130的存储器装置可包含存储器裸片,例如存储器裸片160。存储器装置可在不将数据移动到存储器系统控制器(例如,存储器系统控制器115)的情况下执行内部读取操作。因此,内部读取操作可对应于在存储器装置内部执行的读取操作。例如参考图1所描述的存储器系统110的存储器系统可包含一或多个存储器装置,每个存储器装置包含存储器裸片。因此,存储器系统110可支持在一或多个存储器装置处内部地执行的内部读取操作,以及涉及存储器系统控制器的主机读取操作。
内部读取组件425可经配置为或以其它方式支持用于从存储器裸片检索码字作为内部读取操作的一部分的装置,所述内部读取操作独立于从主机系统接收的读取命令而起始,码字包含数据及奇偶校验位集。第一错误控制组件430可经配置为或以其它方式支持用于由支持检测第一数量的错误且由存储器裸片上的第一错误控制电路实施的第一错误控制操作使用奇偶校验位集识别码字的数据中的一或多个错误的装置,其中码字还经配置以由第二错误控制操作使用,所述第二错误控制操作使用奇偶校验位集(集,相同奇偶校验位集)支持检测多于第一数量的错误的第二数量的错误。错误校正组件435可经配置为或以其它方式支持用于至少部分地基于识别一或多个错误校正码字的数据中的一或多个错误的装置。写入组件440可经配置为或以其它方式支持用于至少部分地基于校正码字的数据中的一或多个错误将信息写入到存储器裸片的装置。
在一些实例中,主机读取组件445可经配置为或以其它方式支持用于从主机系统接收从存储器裸片读取码字的数据的第一命令的装置。在一些实例中,主机读取组件445可经配置或以其它方式支持用于响应于接收到读取数据的第一命令而从存储器裸片检索码字作为读取操作的一部分的装置。在一些实例中,第二错误控制组件450可经配置为或以其它方式支持用于由通过第二错误控制电路实施的第二错误控制操作使用奇偶校验位集识别码字的数据中的一或多个第二错误的装置。在一些实例中,主机读取组件445可经配置为或以其它方式支持用于至少部分地基于识别一或多个第二错误将码字的数据传输到主机系统的装置。
在一些实例中,第一错误控制组件430可经配置为或以其它方式支持用于响应于接收到读取数据的第一命令而避免使用第一错误控制电路对码字执行第一错误控制操作的装置。
在一些实例中,错误校正组件435可经配置为或以其它方式支持用于响应于读取数据的第一命令而避免使用第一错误控制电路校正码字的数据中的错误的装置。在一些实例中,错误校正组件435可经配置为或以其它方式支持用于至少部分地基于使用第二错误控制电路识别一或多个第二错误而校正码字的数据中的一或多个第二错误的装置,其中传输码字的数据至少部分地基于校正一或多个第二错误。
在一些实例中,写入组件440可经配置为或以其它方式支持用于接收将数据写入到存储器裸片的第二命令的装置。在一些实例中,奇偶校验位发生器455可经配置为或以其它方式支持用于使用生成多项式识别与数据相关联的奇偶校验位集的装置。在一些实例中,写入组件440可经配置为或以其它方式支持用于至少部分地基于识别奇偶校验位集将码字写入到存储器裸片的装置。
在一些实例中,为了支持校正码字的数据中的一或多个错误,错误校正组件435可经配置为或以其它方式支持用于修改码字的数据的一或多个数据位、码字的奇偶校验位集的一或多个奇偶校验位,或其组合的装置,其中一或多个数据位、一或多个奇偶校验位,或其组合的总位数量小于或等于第一错误控制操作支持检测的第一错误数量。
在一些实例中,为了支持识别一或多个错误,校正子计算组件460可经配置为或以其它方式支持用于计算码字的校正子集合的装置,所述校正子集合的校正子总数量大于第一错误控制操作支持检测的第一错误数量的两倍。在一些实例中,为了支持识别一或多个错误,校正子计算组件460可经配置为或以其它方式支持用于确定校正子集合中的至少一个校正子包含非零值的装置,所述非零值指示码字中的错误。在一些实例中,为了支持识别一或多个错误,校正子计算组件460可经配置为或以其它方式支持用于修改码字的至少一个位以校正码字的数据中的一或多个错误的装置,所述修改码字的至少一个位使校正子集合中的每个校正子包含零值。
在一些实例中,内部读取组件425可经配置为或以其它方式支持用于从存储器裸片检索第二码字作为第二内部读取操作的一部分的装置。在一些实例中,校正子计算组件460可经配置为或以其它方式支持用于由通过存储器裸片上的第一错误控制电路实施的第一错误控制操作计算用于第二码字的校正子的第二集合的装置,校正子的第二集合的总校正子数量大于第一错误控制操作支持检测的第一错误数量的两倍。在一些实例中,校正子计算组件460可经配置为或以其它方式支持用于未能确定要修改的第二码字的位集的装置,所述位集小于或等于第一错误控制操作支持检测的第一错误数量并且使校正子的第二集合中的每个校正子包含零值。在一些实例中,不可校正错误指示组件475可经配置为或以其它方式支持用于至少部分地基于未能确定要修改的第二码字的位集而生成第二码字具有第一错误控制电路不可校正的第二错误的指示的装置。
在一些实例中,写入组件440可经配置为或以其它方式支持用于接收将第一数据集写入到存储器裸片的多层级存储器单元的第三命令的装置,其中执行内部读取操作以确定写入到多层级存储器单元的第一页的码字的数据。在一些实例中,写入组件440可经配置为或以其它防止支持用于至少部分地基于第一数据集及码字的数据而确定要写入到多层级存储器单元的第二数据集的装置,其中将信息写入到存储器裸片包含将第二数据集写入到多层级存储器单元的第二页。
在一些实例中,写入组件440可经配置为或以其它方式支持用于接收将第一数据集写入到存储器裸片的分区的第四命令的装置,其中执行内部读取操作以确定写入到存储器裸片的分区的码字的数据。在一些实例中,写入组件440可经配置为或以其它方式支持用于确定在第一数据集与码字的数据之间不同的位子集的装置,其中将信息写入到存储器裸片包含覆写存储器裸片的分区处的位子集。
在一些实例中,回拷组件465可经配置为或以其它方式支持用于对码字的数据执行回拷操作的装置,其中执行内部读取操作以确定写入到存储器裸片的第一分区的码字的数据,并且将信息写入到存储器裸片包含将码字的数据写入到存储器裸片的第二分区。
在一些实例中,内部读取操作包含回拷操作、垃圾收集操作、多层级存储器单元的写入操作、迭代写入操作,或其组合的至少一部分。
在一些实例中,存储组件470可经配置为或以其它方式支持用于将对应于码字的数据的数据位集存储在存储器裸片的第一部分中的装置。在一些实例中,存储组件470可经配置为或以其它方式支持用于将码字的奇偶校验位集存储在存储器裸片的第二部分中的装置,其中奇偶校验位集至少部分地基于数据位集。
在一些实例中,内部读取组件425可经配置为或以其它方式支持用于避免将码字发送到包含存储器裸片的存储器系统的控制器作为内部读取操作的一部分的装置。
在一些实例中,第一错误控制操作及第二错误控制操作使用相同伽罗瓦域本原多项式且对相同码字大小操作。在一些实例中,码字包含BCH码字或里德一所罗门码字。
图5展示根据本文所公开的实例的说明支持用于内部读取操作的错误校正的方法500的流程图。方法500的操作可由如本文描述的存储器装置、存储器系统或存储器装置或存储器系统组件实施。举例来说,方法500的操作可由如参考图1到4所描述的存储器装置或存储器系统执行。在一些实例中,存储器装置或存储器系统可执行一组指令以控制装置的功能元件来执行所描述的功能。另外或替代地,存储器装置或存储器系统可使用专用硬件来执行所描述功能的方面。
在505处,所述方法可包含从存储器裸片检索码字作为内部读取操作的一部分,所述内部读取操作独立于从主机系统接收的读取命令而起始,所述码字包含数据及奇偶校验位集。可根据如本文所公开的实例执行505的操作。在一些实例中,505的操作的方面可由如参考图4所描述的内部读取组件425执行。
在510处,所述方法可包含由支持检测第一数量的错误且由存储器裸片上的第一错误控制电路实施的第一错误控制操作使用奇偶校验位集识别码字的数据中的一或多个错误,其中所述码字还经配置以由第二错误控制操作使用,所述第二错误控制操作使用奇偶校验位集支持检测多于第一数量的错误的第二数量的错误。可根据如本文所公开的实例执行510的操作。在一些实例中,可由如参考图4所描述的第一错误控制组件430执行510的操作的方面。
在515处,所述方法可包含至少部分地基于识别一或多个错误校正码字的数据中的一或多个错误。可根据如本文所公开的实例执行515的操作。在一些实例中,515的操作的各方面可由如参考图4所描述的错误校正组件435执行。
在520处,所述方法可包含至少部分地基于校正码字的数据中的一或多个错误将信息写入到存储器裸片。可根据如本文所公开的实例执行520的操作。在一些实例中,520的操作的方面可由如参考图4所描述的写入组件440执行。
在一些实例中,如本文所描述的设备可执行例如方法500的一或多种方法。所述设备可包含用于以下操作的特征、电路系统、逻辑、装置或指令(例如,存储代码的非暂时性计算机可读媒体,所述代码包含可由电子装置的处理器执行的指令):从存储器裸片检索码字作为内部读取操作的一部分,所述内部读取操作独立于从主机系统接收的读取命令而起始,所述码字包含数据及奇偶校验位集;由支持检测第一数量的错误且由所述存储器裸片上的第一错误控制电路实施的第一错误控制操作使用所述奇偶校验位集识别所述码字的所述数据中的一或多个错误,其中所述码字还经配置以由第二错误控制操作使用,所述第二错误控制操作使用所述奇偶校验位集支持检测多于第一数量的错误的第二数量的错误;至少部分地基于识别所述一或多个错误而校正所述码字的所述数据中的所述一或多个错误;及至少部分地基于校正所述码字的所述数据中的所述一或多个错误而将信息写入到所述存储器裸片。
方法500及本文所描述的设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:从主机系统接收从存储器裸片读取码字的数据的第一命令;响应于接收到读取数据的第一命令而从存储器裸片检索码字作为读取操作的一部分;由通过第二错误控制电路实施的第二错误控制操作使用奇偶校验位集识别码字的数据中的一或多个第二错误;及至少部分地基于识别一或多个第二错误将码字的数据传输到主机系统。
方法500及本文所描述的设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:响应于接收到读取数据的第一命令而避免使用第一错误控制电路对码字执行第一错误控制操作。
方法500及本文所描述的设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:响应于读取数据的第一命令而避免使用第一错误控制电路校正码字的数据中的错误;及至少部分地基于使用第二错误控制电路识别一或多个第二错误而校正码字的数据中的一或多个第二错误,其中传输码字的数据可至少部分地基于校正一或多个第二错误。
方法500及本文所描述的设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:接收将数据写入到存储器裸片的第二命令;使用生成多项式识别与数据相关联的奇偶校验位集;及至少部分地基于识别奇偶校验位集将码字写入到存储器裸片。
在方法500及本文所描述的设备的一些实例中,校正码字的数据中的一或多个错误可包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:修改码字的数据的一或多个数据位、码字的奇偶校验位集的一或多个奇偶校验位,或其组合,其中一或多个数据位、一或多个奇偶校验位,或其组合的总位数量可小于或等于第一错误控制操作可支持检测的第一错误数量。
在方法500及本文所描述的设备的一些实例中,识别一或多个错误可包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:计算码字的校正子集合,所述校正子集合的总校正子数量可大于第一错误控制操作可支持检测的第一错误数量的两倍;确定校正子集合中的至少一个校正子包含非零值,所述非零值指示码字中的错误;及修改码字的至少一个位以校正码字的数据中的一或多个错误,修改码字的至少一个位使校正子集合中的每个校正子包含零值。
方法500及本文所描述的设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:从存储器裸片检索第二码字作为第二内部读取操作的一部分;由通过存储器裸片上的第一错误控制电路实施的第一错误控制操作计算用于第二码字的第二校正子集合,所述第二校正子集合的总校正子数量可大于第一错误控制操作可支持检测的第一错误数量的两倍;未能确定要修改的第二码字的位集,所述位集可小于或等于第一错误控制操作可支持检测的第一错误数量并且使第二校正子集合中的每个校正子包含零值;及至少部分地基于未能确定要修改的第二码字的位集而生成第二码字可具有第一错误控制电路不可校正的第二错误的指示。
方法500及本文所描述的设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:接收将第一数据集写入到存储器裸片的多层级存储器单元的第三命令,其中可执行内部读取操作以确定写入到多层级存储器单元的第一页的码字的数据;及至少部分地基于第一数据集及码字的数据而确定要写入到多层级存储器单元的第二数据集,其中将信息写入到存储器裸片包含将第二数据集写入到多层级存储器单元的第二页。
方法500及本文所描述的设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:接收将第一数据集写入到存储器裸片的分区的第四命令,其中可执行内部读取操作以确定写入到存储器裸片的分区的码字的;及确定可在第一数据集与码字的数据之间不同的位子集,其中将信息写入到存储器裸片包含覆写存储器裸片的分区处的位子集。
方法500及本文所描述的设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:对码字的数据执行回拷操作,其中可执行内部读取操作以确定写入到存储器裸片的第一分区的码字的数据,并且将信息写入到存储器裸片包含将码字的数据写入到存储器裸片的第二分区。
在方法500及本文所描述的设备的一些实例中,内部读取操作包含回拷操作、垃圾收集操作、多层级存储器单元的写入操作、迭代写入操作,或其组合的至少一部分。
方法500及本文所描述的设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:将对应于码字的数据的数据位集存储在存储器裸片的第一部分中;将码字的奇偶校验位集存储在存储器裸片的第二部分中,其中奇偶校验位集可至少部分地基于数据位集。
方法500及本文所描述的设备的一些实例可进一步包含用于以下操作的操作、特征、电路系统、逻辑、装置或指令:避免将码字发送到包含存储器裸片的存储器系统的控制器作为内部读取操作的一部分。
在方法500及本文所描述的设备的一些实例中,第一错误控制操作及第二错误控制操作使用相同伽罗瓦域本原多项式且对相同码字大小操作。
在方法500及本文所描述的设备的一些实例中,码字包含BCH码字或里德-所罗门码字。
应注意,上文所描述的方法描述可能的实施方案,且操作及步骤可经重新布置或以其它方式修改,且其它实施方案是可能的。另外,可组合来自所述方法中的两种或更多种的部分。
描述一种设备。所述设备可包含:存储器裸片,及控制电路,其与所述存储器裸片耦合并且经配置以使所述设备:从所述存储器裸片检索码字作为内部读取操作的一部分,所述内部读取操作独立于从主机系统接收的读取命令而起始,所述码字包含数据及奇偶校验位集;由支持检测第一数量的错误且由所述存储器裸片上的第一错误控制电路实施的第一错误控制操作使用所述奇偶校验位集识别所述码字的所述数据中的一或多个错误,其中所述码字还经配置以由第二错误控制操作使用,所述第二错误控制操作使用所述奇偶校验位集支持检测多于第一数量的错误的第二数量的错误;至少部分地基于识别所述一或多个错误而校正所述码字的所述数据中的所述一或多个错误;及至少部分地基于校正所述码字的所述数据中的所述一或多个错误而将信息写入到所述存储器裸片。
在一些实例中,所述设备可包含控制电路,所述控制电路进一步经配置以使设备:从主机系统接收从存储器裸片读取码字的数据的第一命令;响应于接收到读取数据的第一命令而从存储器裸片检索码字作为读取操作的一部分;由通过第二错误控制电路实施的第二错误控制操作使用奇偶校验位集识别码字的数据中的一或多个第二错误;及至少部分地基于识别一或多个第二错误将码字的数据传输到主机系统。
在一些实例中,所述设备可包含控制电路,所述控制电路进一步经配置以使设备:响应于接收到读取数据的第一命令而避免使用第一错误控制电路对码字执行第一错误控制操作。在一些实例中,所述设备可包含控制电路,所述控制电路进一步经配置以使设备:响应于读取数据的第一命令而避免使用第一错误控制电路校正码字的数据中的错误;及至少部分地基于使用第二错误控制电路识别一或多个第二错误而校正码字的数据中的一或多个第二错误,其中传输码字的数据可至少部分地基于校正一或多个第二错误。
在一些实例中,所述设备可包含控制电路,所述控制电路进一步经配置以使设备:接收将数据写入到存储器裸片的第二命令;使用生成多项式识别与数据相关联的奇偶校验位集;及至少部分地基于识别奇偶校验位集将码字写入到存储器裸片。在一些实例中,所述设备可包含控制电路,经配置以使设备校正码字的数据中的一或多个错误的所述控制电路经配置以使设备:修改码字的数据的一或多个数据位、码字的奇偶校验位集的一或多个奇偶校验位,或其组合,其中一或多个数据位、一或多个奇偶校验位,或其组合的总位数量小于或等于第一错误控制操作支持检测的第一错误数量。
在一些实例中,所述设备可包含控制电路,经配置以使设备识别一或多个错误的所述控制电路经配置以使设备:计算码字的校正子集合,所述校正子集合的总校正子数量大于第一错误控制操作支持检测的第一错误数量的两倍;确定校正子集合中的至少一个校正子包含非零值,所述非零值指示码字中的错误;及修改码字的至少一个位以校正码字的数据中的一或多个错误,修改码字的至少一个位使校正子集合中的每个校正子包括零值。
在一些实例中,所述设备可包含控制电路,所述控制电路进一步经配置以使设备:从存储器裸片检索第二码字作为第二内部读取操作的一部分;由通过存储器裸片上的第一错误控制电路实施的第一错误控制操作计算第二码字的第二校正子集合,所述第二校正子集合的总校正子数量大于第一错误控制操作支持检测的第一错误数量的两倍;未能确定要修改的第二码字的位集,所述位集小于或等于第一错误控制操作支持检测的第一错误数量并且使第二校正子集合中的每个校正子包含零值;及至少部分地基于未能确定要改变的第二码字的位集而生成第二码字具有第一错误控制电路不可校正的第二错误的指示。
在一些实例中,所述设备可包含控制电路,所述控制电路进一步经配置以使设备:接收将第一数据集写入到存储器裸片的多层级存储器单元的第三命令,其中执行内部读取操作以确定写入到多层级存储器单元的第一页的码字的数据;及至少部分地基于第一数据集及码字的数据而确定要写入到多层级存储器单元的第二数据集,其中将信息写入到存储器裸片包含将第二数据集写入到多层级存储器单元的第二页。
在一些实例中,所述设备可包含控制电路,所述控制电路进一步经配置以使设备:接收将第一数据集写入到存储器裸片的分区的第四命令,其中执行内部读取操作以确定写入到存储器裸片的分区的码字的数据;及确定在第一数据集与码字的数据之间不同的位子集,其中将信息写入到存储器裸片包含覆写存储器裸片的分区处的位子集。
在一些实例中,所述设备可包含控制电路,所述控制电路进一步经配置以使设备:对码字的数据执行回拷操作,其中执行内部读取操作以确定写入到存储器裸片的第一分区的码字的数据,并且将信息写入到存储器裸片包含将码字的数据写入到存储器裸片的第二分区。在一些实例中,内部读取操作包含回拷操作、垃圾收集操作、多层级存储器单元的写入操作、迭代写入操作,或其组合的至少一部分。
在一些实例中,所述设备可包含控制电路,所述控制电路进一步经配置以使设备:将对应于码字的数据的数据位集存储在存储器裸片的第一部分中;及将码字的奇偶校验位集存储在存储器裸片的第二部分中,其中奇偶校验位集至少部分地基于数据位集。在一些实例中,所述设备可包含控制电路,所述控制电路进一步经配置以使设备:避免将码字发送到包含存储器裸片的存储器系统的控制器作为内部读取操作的一部分。
在一些实例中,第一错误控制操作及第二错误控制操作使用相同伽罗瓦域本原多项式且对相同码字大小操作。在一些实例中,码字包含博斯-乔赫里-霍克文黑姆(BCH)码字或里德一所罗门码字。
可使用多种不同技术及技艺中的任一个来表示本文中所描述的信息及信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号及芯片。一些图式可将信令说明为单个信号;然而,信号可表示信号的总线,其中所述总线可具有多种位宽度。
术语“电子连通”、“导电接触”、“连接”及“耦合”可指代组件之间支持组件之间的信号流的关系。如果组件之间存在可在任何时间支持组件之间的信号流的任何导电路径,则组件被视为彼此电子通信(或彼此导电接触,或彼此连接,或彼此耦合)。在任何给定时间,基于包含所连接组件的装置的操作,彼此电子连通(或导电接触或连接或耦合)的组件之间的导电路径可为开路或闭路。所连接组件之间的导电路径可为组件之间的直接导电路径,或所连接组件之间的导电路径可为可包含例如开关、晶体管或其它组件的中间组件的间接导电路径。在一些实例中,可例如使用例如开关或晶体管的一或多个中间组件来中断所连接组件之间的信号流一段时间。
术语“耦合”是指从组件之间的开路关系移动到组件之间的闭路关系的条件,在开路关系中,信号当前无法通过导电路径在组件之间传达,在闭路关系中,信号能够通过导电路径在组件之间传达。如果例如控制器的组件将其它组件耦合在一起,则组件发起允许信号经由先前不准许信号流动的导电路径在其它组件之间流动的改变。
术语“隔离”是指信号当前不能在组件之间流动的组件之间的关系。如果组件之间存在开路,则组件彼此隔离。举例来说,由定位在两个组件之间的开关间隔开的所述组件在开关断开的情况下彼此隔离。如果控制器将两个组件隔离,则控制器实现以下改变:阻止信号使用先前准许信号流动的导电路径在组件之间流动。
术语“如果”、“当……时”、“基于”,或“至少部分地基于”可互换使用。在一些实例中,如果术语“如果”、“当……时”、“基于”,或“至少部分地基于”用于描述条件性动作、条件性过程,或过程的部分之间的连接,则所述术语可互换。
术语“响应于”可指由于先前条件或动作而至少部分地(如果不完全地)发生的一个条件或动作。举例来说,可进行第一条件或动作,且作为先前条件或动作发生的结果(不管是直接在第一条件或动作之后还是在第一条件或动作之后的一或多个其它中间条件或动作发生之后),第二条件或动作可至少部分地发生。
另外,术语“直接地响应于”或“直接响应于”可指一个条件或动作作为先前条件或动作的直接结果而发生。在一些实例中,可进行第一条件或动作,且可作为与是否发生其它条件或动作无关的先前条件或动作发生的结果而直接发生第二条件或动作。在一些实例中,可进行第一条件或动作,且可作为先前条件或动作发生的结果而直接发生第二条件或动作,使得在较早条件或动作与第二条件或动作之间不发生其它中间条件或动作,或在较早条件或动作与第二条件或动作之间发生有限数量的一或多个中间步骤或动作。除非另外规定,否则本文中描述为“基于”、“至少部分地基于”或“响应于”某一其它步骤、动作、事件或条件进行的任何条件或动作可另外或替代地(例如,在替代实例中)“直接响应于”或“直接地响应于”这种其它条件或动作而进行。
本文中论述的包含存储器阵列的装置可形成于例如硅、锗、硅锗合金、砷化镓、氮化镓等半导体衬底上。在一些实例中,衬底是半导体晶片。在一些其它实例中,衬底可以是绝缘体上硅(SOI)衬底,例如玻璃上硅(SOG)或蓝宝石上硅(SOP),或另一衬底上的半导体材料的外延层。可通过使用包含但不限于磷、硼或砷的各种化学物质的掺杂来控制衬底或衬底的子区的导电性。可在衬底的初始形成或生长期间,通过离子植入或通过任何其它掺杂方法执行掺杂。
本文中所论述的开关组件或晶体管可表示场效应晶体管(FET),且包括包含源极、漏极和栅极的三端装置。所述端子可通过导电材料(例如金属)连接到其它电子元件。源极和漏极可为导电的,且可包括经重掺杂,例如简并,半导体区。源极与漏极可通过经轻掺杂半导体区或沟道分离。如果沟道是n型(即,多数载流子是电子),则FET可称为n型FET。如果沟道是p型(即,多数载流子是空穴),则FET可称为p型FET。沟道可由绝缘栅极氧化物封端。可通过将电压施加到栅极来控制沟道导电性。举例来说,将正电压或负电压分别施加到n型FET或p型FET可导致沟道变得导电。如果大于或等于晶体管的阈值电压的电压施加到晶体管栅极,则晶体管可“接通”或“激活”。如果小于晶体管的阈值电压的电压施加到晶体管栅极,则晶体管可“断开”或“去激活”。
本文结合附图阐述的描述内容描述了实例配置,且并不表示可实施的或在权利要求书的范围内的所有实例。本文所用的术语“示例性”意指“充当实例、例子或说明”,且不比其它实例“优选”或“有利”。详细描述包含具体细节,以提供对所描述技术的理解。然而,可在没有这些具特定细节的情况下实践这些技术。在一些情况下,以框图形式展示熟知结构及装置,以免混淆所描述实例的概念。
在附图中,类似组件或特征可具有相同的参考标记。此外,可通过在参考标记之后跟着短横及在类似组件之间进行区分的第二标记来区分相同类型的各种组件。如果说明书中仅使用第一参考标记,则描述适用于具有相同第一参考标记的类似组件中的任一者,与第二参考标记无关。
本文中所描述的功能可在硬件、由处理器执行的软件、固件或其任何组合中实施。如果以由处理器执行的软件实施,则可将功能作为一或多个指令或代码存储于计算机可读媒体上或经由计算机可读媒体传输。其它实例及实施在本公开及所附权利要求书的范围内。举例来说,由于软件的本质,上文所描述的功能可使用由处理器执行的软件、硬件、固件、硬连线或这些中的任一个的组合来实施。实施功能的特征还可物理上位于各种位置处,包含经分布以使得功能的部分在不同物理位置处实施。
举例来说,结合本文中的公开内容所描述的各种说明性块及组件可使用通用处理器、DSP、ASIC、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或经设计以执行本文中所描述的功能的其任何组合来实施或执行。通用处理器可为微处理器,但在替代方案中,处理器可为任何处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合(例如,DSP与微处理器的组合、多个微处理器、结合DSP核心的一或多个微处理器,或任何其它此配置)。
如本文中所使用,包含在权利要求书中,如在项列表(例如,后加例如“中的至少一个”或“中的一或多个”的短语的项列表)中所使用的“或”指示包含端点的列表,使得例如A、B或C中的至少一个的列表意指A或B或C或AB或AC或BC或ABC(即,A及B及C)。另外,如本文所用,短语“基于”不应理解为提及封闭条件集。举例来说,描述为“基于条件A”的示例性步骤可基于条件A及条件B两者,而不脱离本文所公开的范围。换句话说,如本文所用,短语“基于”应同样地解释为短语“至少部分地基于”。
计算机可读媒体包含非暂时性计算机存储媒体及包含促进将计算机程序从一处传递到另一处的任何媒体的通信媒体两者。非暂时性存储媒体可为可由通用或专用计算机存取的任何可用媒体。借助于实例而非限制,非暂时性计算机可读媒体可包括RAM、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、压缩光盘(CD)ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于携载或存储呈指令或数据结构形式的所要程序代码构件且可由通用或专用计算机或者通用或专用处理器存取的任何其它非暂时性媒体。并且,适当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或例如红外线、无线电及微波的技术从网站、服务器或其它远程源传输软件,则所述同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电及微波的技术包含于媒体的定义中。如本文中所使用,磁盘及光盘包含CD、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各者的组合也包含在计算机可读媒体的范围内。
提供本文中的描述使得所属领域的技术人员能够进行或使用本公开。所属领域技术人员将清楚对本公开的各种修改,且本文中所定义的一般原理可应用于其它变化形式而不会脱离本公开的范围。因此,本公开不限于本文中所描述的实例及设计,而是被赋予与本文公开的原理及新颖特征一致的最宽范围。

Claims (24)

1.一种设备,其包括:
存储器裸片;及
控制电路,其与所述存储器裸片耦合且经配置以使所述设备:
从所述存储器裸片检索码字作为内部读取操作的一部分,所述内部读取操作独立于从主机系统接收的读取命令而起始,所述码字包括数据及奇偶校验位集;
由支持检测第一数量的错误且由所述存储器裸片上的第一错误控制电路实施的第一错误控制操作使用所述奇偶校验位集识别所述码字的所述数据中的一或多个错误,其中所述码字还经配置以由第二错误控制操作使用,所述第二错误控制操作使用所述奇偶校验位集支持检测多于所述第一数量的错误的第二数量的错误;
至少部分地基于识别所述一或多个错误而校正所述码字的所述数据中的所述一或多个错误;及
至少部分地基于校正所述码字的所述数据中的所述一或多个错误而将信息写入到所述存储器裸片。
2.根据权利要求1所述的设备,其中所述控制电路进一步经配置以使所述设备:
从所述主机系统接收从所述存储器裸片读取所述码字的所述数据的第一命令;
响应于接收到读取所述数据的所述第一命令而从所述存储器裸片检索所述码字作为读取操作的一部分;
由通过第二错误控制电路实施的所述第二错误控制操作使用所述奇偶校验位集识别所述码字的所述数据中的一或多个第二错误;及
至少部分地基于识别所述一或多个第二错误而将所述码字的所述数据传输到所述主机系统。
3.根据权利要求2所述的设备,其中所述控制电路进一步经配置以使所述设备:
响应于接收到读取所述数据的所述第一命令而避免使用所述第一错误控制电路对所述码字执行所述第一错误控制操作。
4.根据权利要求2所述的设备,其中所述控制电路进一步经配置以使所述设备:
响应于读取所述数据的所述第一命令而避免使用所述第一错误控制电路校正所述码字的所述数据中的错误;及
至少部分地基于使用所述第二错误控制电路识别所述一或多个第二错误而校正所述码字的所述数据中的所述一或多个第二错误,其中传输所述码字的所述数据至少部分地基于校正所述一或多个第二错误。
5.根据权利要求1所述的设备,其中所述控制电路进一步经配置以使所述设备:
接收将所述数据写入到所述存储器裸片的第二命令;
使用生成多项式识别与所述数据相关联的所述奇偶校验位集;及
至少部分地基于识别所述奇偶校验位集而将所述码字写入到所述存储器裸片。
6.根据权利要求1所述的设备,其中经配置以使所述设备校正所述码字的所述数据中的所述一或多个错误的所述控制电路经配置以使所述设备:
修改所述码字的所述数据的一或多个数据位、所述码字的所述奇偶校验位集的一或多个奇偶校验位,或其组合,其中所述一或多个数据位、所述一或多个奇偶校验位,或其组合的总位数量小于或等于所述第一错误控制操作支持检测的所述第一错误数量。
7.根据权利要求1所述的设备,其中经配置以使所述设备识别所述一或多个错误的所述控制电路经配置以使所述设备:
计算所述码字的校正子集合,所述校正子集合的总校正子数量大于所述第一错误控制操作支持检测的所述第一错误数量的两倍;
确定所述校正子集合中的至少一个校正子包括非零值,所述非零值指示所述码字中的错误;及
修改所述码字中的至少一个位以校正所述码字的所述数据中的所述一或多个错误,修改所述码字的所述至少一个位使所述校正子集合中的每个校正子包括零值。
8.根据权利要求7所述的设备,其中所述控制电路进一步经配置以使所述设备:
从所述存储器裸片检索第二码字作为第二内部读取操作的一部分;
由通过所述存储器裸片上的所述第一错误控制电路实施的所述第一错误控制操作计算所述第二码字的第二校正子集合,所述第二校正子集合的所述总校正子数量大于所述第一错误控制操作支持检测的所述第一错误数量的两倍;
未能确定要修改的所述第二码字的位集,所述位集小于或等于所述第一错误控制操作支持检测的所述第一错误数量并且使所述第二校正子集合中的每个校正子包括所述零值;及
至少部分地基于未能确定要修改的所述第二码字的所述位集而生成所述第二码字具有所述第一错误控制电路不可校正的第二错误的指示。
9.根据权利要求1所述的设备,其中所述控制电路进一步经配置以使所述设备:
接收将第一数据集写入到所述存储器裸片的多层级存储器单元的第三命令,其中执行所述内部读取操作以确定写入到所述多层级存储器单元的第一页的所述码字的所述数据;及
至少部分地基于所述第一数据集及所述码字的所述数据确定要写入到所述多层级存储器单元的第二数据集,其中将所述信息写入到所述存储器裸片包括将所述第二数据集写入到所述多层级存储器单元的第二页。
10.根据权利要求1所述的设备,其中所述控制电路进一步经配置以使所述设备:
接收将第一数据集写入到所述存储器裸片的分区的第四命令,其中执行所述内部读取操作以确定写入到所述存储器裸片的所述分区的所述码字的所述数据;及
确定在所述第一数据集与所述码字的所述数据之间不同的位子集,其中将所述信息写入到所述存储器裸片包括覆写所述存储器裸片的所述分区处的所述位子集。
11.根据权利要求1所述的设备,其中所述控制电路进一步经配置以使所述设备:
对所述码字的所述数据执行回拷操作,其中执行所述内部读取操作以确定写入到所述存储器裸片的第一分区的所述码字的所述数据,并且将所述信息写入到所述存储器裸片包括将所述码字的所述数据写入到所述存储器裸片的第二分区。
12.根据权利要求1所述的设备,其中所述内部读取操作包括回拷操作、垃圾收集操作、多层级存储器单元的写入操作、迭代写入操作,或其组合的至少一部分。
13.根据权利要求1所述的设备,其中所述控制电路进一步经配置以使所述设备:
将对应于所述码字的所述数据的数据位集存储在所述存储器裸片的第一部分中;及
将所述码字的所述奇偶校验位集存储在所述存储器裸片的第二部分中,其中所述奇偶校验位集至少部分地基于所述数据位集。
14.根据权利要求1所述的设备,其中所述控制电路进一步经配置以使所述设备:
避免将所述码字发送到包括所述存储器裸片的存储器系统的控制器作为所述内部读取操作的一部分。
15.根据权利要求1所述的设备,其中所述第一错误控制操作及所述第二错误控制操作使用相同伽罗瓦域本原多项式且对相同码字大小操作。
16.根据权利要求1所述的设备,其中所述码字包括博斯-乔赫里-霍克文黑姆BCH码字或里德-所罗门码字。
17.一种存储包括指令的代码的非暂时性计算机可读媒体,所述指令在由电子装置的处理器执行时使所述电子装置:
从存储器裸片检索码字作为内部读取操作的一部分,所述内部读取操作独立于从主机系统接收的读取命令而起始,所述码字包括数据及奇偶校验位集;
由支持检测第一数量的错误且由所述存储器裸片上的第一错误控制电路实施的第一错误控制操作使用所述奇偶校验位集识别所述码字的所述数据中的一或多个错误,其中所述码字还经配置以由第二错误控制操作使用,所述第二错误控制操作使用所述奇偶校验位集支持检测多于所述第一数量的错误的第二数量的错误;
至少部分地基于识别所述一或多个错误而校正所述码字的所述数据中的所述一或多个错误;及
至少部分地基于校正所述码字的所述数据中的所述一或多个错误而将信息写入到所述存储器裸片。
18.根据权利要求17所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使所述电子装置:
从所述主机系统接收从所述存储器裸片读取所述码字的所述数据的第一命令;
响应于接收到读取所述数据的所述第一命令而从所述存储器裸片检索所述码字作为读取操作的一部分;
由通过第二错误控制电路实施的所述第二错误控制操作使用所述奇偶校验位集识别所述码字的所述数据中的一或多个第二错误;及
至少部分地基于识别所述一或多个第二错误而将所述码字的所述数据传输到所述主机系统。
19.根据权利要求18所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使所述电子装置:
响应于接收到读取所述数据的所述第一命令而避免使用所述第一错误控制电路对所述码字执行所述第一错误控制操作。
20.根据权利要求18所述的非暂时性计算机可读媒体,其中所述指令在由所述电子装置的所述处理器执行时进一步使所述电子装置:
响应于读取所述数据的所述第一命令而避免使用所述第一错误控制电路校正所述码字的所述数据中的错误;及
至少部分地基于使用所述第二错误控制电路识别所述一或多个第二错误而校正所述码字的所述数据中的所述一或多个第二错误,其中传输所述码字的所述数据至少部分地基于校正所述一或多个第二错误。
21.一种由存储器装置执行的方法,所述方法包括:
从存储器裸片检索码字作为内部读取操作的一部分,所述内部读取操作独立于从主机系统接收的读取命令而起始,所述码字包括数据及奇偶校验位集;
由支持检测第一数量的错误且由所述存储器裸片上的第一错误控制电路实施的第一错误控制操作使用所述奇偶校验位集识别所述码字的所述数据中的一或多个错误,其中所述码字还经配置以由第二错误控制操作使用,所述第二错误控制操作使用所述奇偶校验位集支持检测多于所述第一数量的错误的第二数量的错误;
至少部分地基于识别所述一或多个错误而校正所述码字的所述数据中的所述一或多个错误;及
至少部分地基于校正所述码字的所述数据中的所述一或多个错误而将信息写入到所述存储器裸片。
22.根据权利要求21所述的方法,其进一步包括:
从所述主机系统接收从所述存储器裸片读取所述码字的所述数据的第一命令;
响应于接收到读取所述数据的所述第一命令,从所述存储器裸片检索所述码字作为读取操作的一部分;
由通过第二错误控制电路实施的所述第二错误控制操作使用所述奇偶校验位集识别所述码字的所述数据中的一或多个第二错误;及
至少部分地基于识别所述一或多个第二错误而将所述码字的所述数据传输到所述主机系统。
23.根据权利要求22所述的方法,其进一步包括:
响应于接收到读取所述数据的所述第一命令而避免使用所述第一错误控制电路对所述码字执行所述第一错误控制操作。
24.根据权利要求22所述的方法,其进一步包括:
响应于读取所述数据的所述第一命令而避免使用所述第一错误控制电路校正所述码字的所述数据中的错误;及
至少部分地基于使用所述第二错误控制电路识别所述一或多个第二错误而校正所述码字的所述数据中的所述一或多个第二错误,其中传输所述码字的所述数据至少部分地基于校正所述一或多个第二错误。
CN202210440235.7A 2021-04-26 2022-04-25 用于内部读取操作的错误校正 Pending CN115248742A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/240,471 US11789817B2 (en) 2021-04-26 2021-04-26 Error correction for internal read operations
US17/240,471 2021-04-26

Publications (1)

Publication Number Publication Date
CN115248742A true CN115248742A (zh) 2022-10-28

Family

ID=83694259

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210440235.7A Pending CN115248742A (zh) 2021-04-26 2022-04-25 用于内部读取操作的错误校正

Country Status (2)

Country Link
US (1) US11789817B2 (zh)
CN (1) CN115248742A (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69327683T2 (de) * 1992-05-19 2000-07-27 Koninkl Philips Electronics Nv Erweitertes fehlergeschütztes Kommunikationssystem
US9367391B2 (en) * 2013-03-15 2016-06-14 Micron Technology, Inc. Error correction operations in a memory device
US9558066B2 (en) * 2014-09-26 2017-01-31 Intel Corporation Exchanging ECC metadata between memory and host system
US9811420B2 (en) * 2015-03-27 2017-11-07 Intel Corporation Extracting selective information from on-die dynamic random access memory (DRAM) error correction code (ECC)
WO2017192626A1 (en) * 2016-05-02 2017-11-09 Intel Corporation Internal error checking and correction (ecc) with extra system bits

Also Published As

Publication number Publication date
US20220342754A1 (en) 2022-10-27
US11789817B2 (en) 2023-10-17

Similar Documents

Publication Publication Date Title
US11809329B2 (en) Recovery of logical-to-physical table information for a memory device
CN115248743B (zh) 存储器的读取阈值调整技术
CN115248744A (zh) 非二进制存储器单元的读取阈值调整技术
US20240176518A1 (en) Parameter table protection for a memory system
US20230104752A1 (en) Techniques for failure management in memory systems
US11782787B2 (en) Dynamic error control configuration for memory systems
US11716096B2 (en) Memory error correction based on layered error detection
US11789817B2 (en) Error correction for internal read operations
US12001279B2 (en) Error protection for managed memory devices
US20240134740A1 (en) Error protection for managed memory devices
US11860714B1 (en) Error notification using an external channel
US11797385B2 (en) Managing information protection schemes in memory systems
US11995353B2 (en) Storing parity during refresh operations
EP4060501A1 (en) Redundant array management techniques
US11977443B2 (en) Dynamic parity scheme
WO2024040569A1 (en) Data handling during a reflow operation
US11914473B1 (en) Data recovery using ordered data requests
US11875039B2 (en) Temperature-based scrambling for error control in memory systems
US11861177B2 (en) Configurable verify level for a set of data in a memory device
US20240054037A1 (en) Common rain buffer for multiple cursors
US20240061748A1 (en) Memory recovery partitions
CN117174143A (zh) 存储器系统中的平面平衡
CN115718565A (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