CN116469451A - 存储器系统中的迭代错误校正 - Google Patents
存储器系统中的迭代错误校正 Download PDFInfo
- Publication number
- CN116469451A CN116469451A CN202310048831.5A CN202310048831A CN116469451A CN 116469451 A CN116469451 A CN 116469451A CN 202310048831 A CN202310048831 A CN 202310048831A CN 116469451 A CN116469451 A CN 116469451A
- Authority
- CN
- China
- Prior art keywords
- mtb
- hamming code
- code logic
- binary hamming
- binary
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 102
- 238000012937 correction Methods 0.000 title claims abstract description 42
- 238000000034 method Methods 0.000 claims abstract description 41
- 238000012546 transfer Methods 0.000 claims abstract description 41
- 230000006870 function Effects 0.000 claims abstract description 14
- 238000005192 partition Methods 0.000 claims description 13
- 238000001514 detection method Methods 0.000 claims description 10
- 231100000331 toxic Toxicity 0.000 claims description 3
- 230000002588 toxic effect Effects 0.000 claims description 3
- 238000011084 recovery Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 239000002356 single layer Substances 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000010410 layer Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/098—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit using single parity bit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/0023—Address circuits or decoders
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/1733—Controllable logic circuits
- H03K19/1737—Controllable logic circuits using multiplexers
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/1171—Parity-check or generator matrices with non-binary elements, e.g. for non-binary LDPC codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/1174—Parity-check or generator matrices built from sub-matrices representing known block codes such as, e.g. Hamming codes, e.g. generalized LDPC codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2927—Decoding strategies
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/134—Non-binary linear block codes not provided for otherwise
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
呈现一种用于检测并校正CXL组件中的存储器错误的系统和方法。所述方法包含将存储器传送块MTB接收到解码器中,其中所述MTB包括数据和奇偶校验信息,其中所述MTB以第一维度和第二维度布置。在所述第一维度中使用所述解码器内的二进制汉明码逻辑对所述MTB执行错误检查和校正功能。在所述第二维度中使用所述解码器内的非二进制汉明码逻辑对所述MTB执行错误检查和校正功能。此外,所述二进制汉明码逻辑和所述非二进制汉明码逻辑同时对所述MTB执行所述错误检查。
Description
相关申请的交叉引用
本申请主张2022年1月19日申请的标题为“迭代低功率芯片杀伤(Iterative LowPower Chip Kill)”的第63/301,028号美国临时申请的优先权,所述美国临时申请特此以全文引用的方式明确地并入本文中。
技术领域
本公开大体上涉及用于存储器的一或多个系统和方法,尤其涉及存储器内的错误校正。
背景技术
存储器装置广泛用于将信息存储在例如计算机、用户装置、无线通信装置、相机、数字显示器等各种电子装置中。通过将存储器装置内的存储器单元编程为各种状态来存储信息。举例来说,二进制存储器单元可编程为通常对应于逻辑1或逻辑0的两种支持状态中的一种。在一些实例中,单个存储器单元可支持多于两个可能的状态,所述状态中的任一者可由存储器单元存储。为了存取由存储器装置存储的信息,组件可读取或感测存储器装置内的一或多个存储器单元的状态。为了存储信息,组件可将存储器装置内的一或多个存储器单元写入或编程到对应状态。
存在各种类型的存储器装置,包含磁性硬盘、随机存取存储器(RAM)、只读存储器(ROM)、动态RAM(DRAM)、同步动态RAM(SDRAM)、静态RAM(SRAM)、铁电RAM(FeRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、快闪存储器、相变存储器(PCM)、3维交叉点存储器(3D交叉点)、“或非”(NOR)和“与非”(NAND)存储器装置等。存储器装置可为易失性或非易失性的。除非由外部电源周期性地刷新,否则易失性存储器单元(例如,DRAM单元)可能随时间推移而丢失其编程状态。非易失性存储器单元(例如,NAND存储器单元)即使在不存在外部电源的情况下仍可在很长一段时间内维持其编程状态。
一些存储器可经配置以支持计算高速链路(CXL),其为用于高速处理器与装置或存储器之间的连接的开放标准。在存储器装置中,包含使用CXL标准的那些存储器装置,可在读取或写入期间发生错误。在此类情况下,可使用错误校正技术来校正错误。
发明内容
附图说明
并入本文中并且形成说明书的一部分的附图说明本公开,并且与描述一起进一步用以解释本公开的原理并且使得相关领域的技术人员能够制作和使用本公开。
另外,参考标号的最左数字识别参考标号首次出现的图式(例如,参考标号“310”指示如此编号的元件首次被标记或首次出现在图3中)。另外,具有相同参考标号,后接字母表的不同字母或其它独特标记(例如,撇号)的元件指示在结构、操作或形式上可相同但可被识别为处于不同状态、空间中的位置或在不同时间点重复的元件(例如,参考标号“110a”和“110b”可指示可在功能上相同但可在方法中位于不同点的两个不同输入装置,或“210′”和“210″”可指示在不同时间点的装置)。
图1说明根据本公开的实施例的控制器和含有存储器阵列的组件的功能框图。
图2说明根据本公开的实施例的存储器阵列的功能框图。
图3说明根据本公开的实施例的存储器传送块的功能框图。
图4说明根据本公开的实施例的低功率芯片杀伤解决方案的功能框图。
图5说明根据本公开的实施例的在低功率芯片杀伤解决方案中交叠的码字的功能框图。
图6说明根据本公开的实施例的存储器传送块上的前馈低功率芯片杀伤解码器的功能框图。
图7说明根据本公开的实施例的存储器传送块上具有多路复用器的前馈低功率芯片杀伤解码器的功能框图。
图8说明根据本公开的实施例的具有多路复用器的存储器传送块错误校正系统的功能框图,所述多路复用器说明快速路径解码。
图9说明根据本公开的实施例的具有多路复用器的存储器传送块错误校正系统的功能框图,所述多路复用器说明前馈解码路径。
图10说明根据本公开的实施例的具有多路复用器的存储器传送块错误校正系统的功能框图,所述多路复用器说明迭代解码路径。
图11说明根据本公开的实施例的解码期间的存储器传送块的错误状态图。
图12A和12B说明根据本公开的实施例的迭代解码期间的存储器传送块的错误状态图。
图13A和13B说明根据本公开的实施例的迭代解码期间的存储器传送块的错误状态图。
图14A和14B说明根据本公开的实施例的具有错误暂停的迭代解码期间的存储器传送块的错误状态图。
图15为根据本公开的实施例的用于迭代错误校正解码的实例方法的流程图。
下文参考附图描述本公开的其它实施例、特征和优点以及本公开的各种实施例的操作。
具体实施方式
虽然本文中所描述的实施例是用于特定应用的说明性实施例,但应理解,本公开不限于此。可获得本文中所提供的教示内容的所属领域的技术人员将认识到其范围内的额外应用、修改和实施例以及其中本公开可能明显实用的额外领域。
本文中所描述的实施例在说明书中被称作“一个实施例”、“一实施例”、“实例实施例”等。这些引用指示所描述的实施例可包含特定特征、结构或特性,但每一实施例未必包含每一所描述的特征、结构或特性。此外,当结合实施例来描述特定特征、结构或特性时,应理解,无论是否予以明确描述,结合其它实施例来影响此类特征、结构或特性均在所属领域的技术人员的知识范围内。
一些接口(例如,计算高速链路(“CXL”接口)经设计以在主机系统与一或多个存储器系统之间使用。举例来说,存储器系统可跨越主机系统和存储器系统相干地使用存储器。在存储器芯片失效的情况下,其它系统组件可用于保护计算机存储器系统,其还可被称作在CXL装置中的芯片杀伤保护。本公开内的此类芯片杀伤保护可被称作低功率芯片杀伤(“LPCK”)。
下文参考图1到15论述系统和方法的各种实施例。然而,所属领域的技术人员将容易理解,本文中关于这些图给出的具体实施方式仅出于解释性目的且不应被解释为限制性的。
图1说明根据实施例的LPCK流动系统100。如图1中所展示,LPCK流动系统100可包含CXL控制器110和组件120。CXL控制器110可包含多个编码器和多个解码器,例如循环冗余检查(CRC)编码器112、LPCK编码器114和错误校正码(ECC)编码器116。
在实施例中,存储存储器传送块(未展示)的过程可包含通过CRC编码器112在CXL控制器110中接收存储器传送块。CRC编码通常接收数据字,且接着产生额外位,通常被称作冗余位,以产生码字。存储器传送块通常由多个码字组成,其中每一码字表示存储器传送块内的数据的行或列。
接着将存储器传送块传递到LPCK编码器114。LPCK编码器114可使用在软件或电路中实施的非二进制汉明码(例如,汉明码逻辑)来将所接收的数据编码到码字中。在实施例中,由LPCK编码器114产生的码字是在存储器传送块内的多行数据上完成的。一旦经编码,便将存储器传送块传递到ECC编码器116。
ECC编码器116在所接收的存储器传送块上使用在软件或电路中实施的二进制汉明码,例如汉明码逻辑,并且通常基于存储器传送块内的多列数据产生相关联的码字。此外,码字可包含具有额外组件的数据位。额外组件可包含CRC、ECC和LPCK奇偶校验位。另外,额外组件可包含例如元数据等其它数据。存储器传送块接着可传递到组件120,所述组件还可包含存储存储器传送块的存储器阵列125。
在实施例中,读取例如上文所描述的所存储的存储器传送块等数据时,使用类似过程。举例来说,可从存储器阵列125检索存储器传送块且将其转发到ECC解码器113。首先使用在软件或电路中实施的ECC二进制汉明码(例如,汉明码逻辑)对所接收的存储器传送块进行解码。如所属领域的技术人员已知,存在多种类型的ECC编码/解码算法,例如可检测并校正单位错误的ECC-1算法和可检测并校正双位错误的ECC-2算法。因此,如果ECC解码器113检测到其能够校正的错误,那么其将校正所述错误。
ECC解码器113的输出接着被传递到在软件或电路中实施的LPCK解码器,例如汉明码逻辑,其使用非二进制汉明码可经配置以检测并校正错误。通常,LPCK解码器115可经配置以检测并校正符号错误,其中符号可由字(例如,多个位或字节)组成。接着可将LPCK解码器115的输出传送到CRC校验117,所述CRC校验可用码字内的所存储的CRC奇偶校验值执行CRC奇偶校验。CRC校验117是针对静默数据损坏的进一步保护。
图2说明根据实施例的用于存储系统存储器传送块的存储器阵列200的功能框图。系统存储器传送块可存储在展示为组件210的存储器组件的阵列中。组件210可由多个存储器芯片电路组成,所述存储器芯片电路还可被称作存储器裸片。组件210说明存储器裸片的布局,其中每一行组件可被称作排,例如第一行为排215。
此外,一组组件可划分成多个列,如列220所说明。存储器阵列200展示为8+2布局的实例,其中展示为元件225的八个列含有数据。在实施例中,每一组件可经配置以存储8位信息。然而,每一组件可经配置以保持任何量的数据,图2中所展示的配置仅为说明性的。
在实施例中,组件210说明8+2布局,其中展示为元件225的前八个列含有数据。展示为元件230的最后两个列含有额外数据,例如奇偶校验位。因此,排215中的前八个组件含有数据,其中排215中的最右两个组件含有由含有数据的排215中的前八个组件产生的奇偶校验位。虽然图2可表示单个LPCK通道,可按类似方式配置任何数目个通道。另外,多个LPCK通道可以并行配置工作,从而增加带宽。
图3说明根据实施例的存储器传送块300的功能框图。存储器传送块300可包含数据信息315和其它信息,例如奇偶校验320。在实施例中,例如CRC、元数据、密钥ID和媒体接入控制(MAC)地址等数据信息可存储于每一组件的额外区域中。数据可通过“DQ”衬垫存取,而额外信息可通过DMI衬垫存取。在实施例中,标准DRAM装置可包含用于每八个DQ衬垫的单个DMI衬垫。举例来说,x8模式组件可存在八个DQ衬垫和单个DMI衬垫。存储器传送块300包含多行数据,每一行数据被称作单层,其中单层325被展示为一实例。在实施例中,在存储器传送块300中存在32个行,其可被称作具有32位的突发长度的存储器传送块。在此实施例中,每一层或每一行信息含有64位的数据以及另外16位的奇偶校验数据,在单层内总共80位。在另一实施例中,数据和奇偶校验的长度可采用所属领域的一般技术人员已知的任何长度。因此,存储器传送块300的特征为具有32位的突发长度的80位宽。
图4说明根据实施例的LPCK解决方案系统400的功能框图。在实施例中,LPCK系统400可包含展示为裸片410-1到410-10且还标记为裸片1到裸片10的十个单独存储器芯片组件。在实施例中,每一裸片410-1到410-10可含有两个4位符号。系统存储器传送块的数据部分可展示为裸片410-1到410-8中所含有的4位符号415-1到415-16。
因此,举例来说,裸片410-1可含有4位符号415-1和415-2,裸片410-2可含有4位符号415-3和415-4,直到裸片410-8含有4位符号415-15和415-16。此外,在此实施例中,系统存储器传送块的奇偶校验信息将存储在含有4位符号420-1、420-2、420-3和420-4的裸片410-9和410-10中。因此,裸片410-9可含有4位符号420-1和420-2,且裸片410-10可含有4位符号420-3和420-4。应注意,在其它实施例中,4位符号415和420可替换为含有其它数目个位的符号。
在实施例中,LPCK系统400根据4位符号415和420产生码字430和码字440。这些码字可用于检测并校正系统存储器传送块中的各种错误,如将进一步详细地论述。码字430可通过使用每一裸片410的第一符号(例如,符号415和符号420)产生。因此,码字430可含有表示为415-1、415-3、415-5、415-7、415-9、415-11、415-13和415-15的数据的第一4位符号,以及表示为420-1和420-3的奇偶校验的第一4位符号。以类似方式,码字440可含有表示为415-2、415-4、415-6、415-8、415-10、415-12、415-14和415-16的数据的第二4位符号,以及表示为420-2和420-4的奇偶校验的第二4位符号。
图5说明根据实施例的在LPCK解决方案系统500中交叠的码字的功能框图。LPCK系统500可含有存储器传送块510,如图3中所描述,所述存储器传送块可含有数据和奇偶校验位的阵列。举例来说,存储器传送块(“MTB”)510可含有由n位组成的多行数据,其中每一行由总共80位的数据位(例如,64位)和额外数目个奇偶校验位(例如,16位)组成。此外,存储器传送块510可具有N的突发长度,例如,如图3中所展示,其中突发长度为32位。
LPCK系统500说明符号,例如图4中所描述的那些符号。举例来说,LPCK-1可包含存储器传送块的水平分区中的码字,例如从符号Sym-1-1到Sym-1-n导出的码字430和440。并且,以类似方式,LPCK-2可包含从Sym-2-1到Sym-2-n导出的码字,以此类推,直到LPCK-N具有从Sym-N-1到Sym-N-n导出的码字。
虽然MTB 510基于数据和奇偶校验的水平分析说明LPCK-1到LPCK-N码字,但存储器传送块510还可基于数据和奇偶校验信息的正交或竖直分析说明码字。因此,如所展示,以柱状方式使用符号产生ECC码字。举例来说,ECC-1码字可使用符号Sym-1-1到Sym-N-1,其中每一符号包含数据和奇偶校验信息。如稍后将论述,ECC算法通常可检测并校正单位错误。
还存在可用于校正双位错误的ECC算法。此外,LPCK算法经配置以检测并校正单字节(例如,八位)错误。因此,图5中所描绘的LPCK系统500配置可用于使用ECC算法和使用LPCK算法来检测并校正多列信息上的单位错误,以校正存储器传送块的逐行或水平分区上的单字节错误。此外,如所展示,特定ECC码字与特定LPCK码字的相交为单个符号。举例来说,LPCK-3与ECC-2的相交为符号Sym-3-2。
图6说明根据实施例的前馈LPCK解码器系统600。LPCK解码器系统600说明MTB610到错误校正码解码器620和LPCK解码器630的递送。如先前所论述,诸如MTB 610之类的存储器传送块可由一定量的数据加上诸如奇偶校验和/或元数据之类的冗余数据组成,并且可具有所属领域的一般技术人员已知的任何大小和配置。
LPCK解码器系统600以串行方式对其错误检测和校正进行预成型。举例来说,MTB610由对MTB 610的竖直部分执行错误检测和校正的ECC解码器620接收。一旦ECC解码器620完成其检测和可能的校正,便将MTB 610转发到对MTB 610的水平部分执行检测和可能的校正的LPCK解码器630。一旦完成,便将MTB 610输出到装置(未展示),例如存储阵列或其它组件。
ECC解码器620可基于来自呈MTB 610形式的每一裸片(例如,裸片410)的所接收数据流上的二进制汉明码而执行其检测和校正。LPCK解码器630可基于使用作用于突发层的子集(例如,图3的单层325)的非二进制汉明码而执行其检测和校正。并且,应注意,LPCK解码器系统600以串行方式操作,首先执行ECC二进制汉明码解码,且接着执行LPCK非二进制汉明码解码。
图7说明根据实施例的具有多路复用器的前馈LPCK解码器系统700。LPCK解码器系统700经配置以经由到ECC解码器720的路径710-1且经由到LPCK解码器730的路径710-2同时接收MTB 710流。对MTB 710的同时接收与由ECC解码器620且接着由LPCK解码器630串行接收MTB 610形成对比,如图6中所论述。
ECC 720还可包含错误标记输出722,其中在实施例中,如果MTB 710中的ECC解码器720检测到错误,那么错误标记输出722被设置为零,例如,Oe=0。相反地,如果ECC解码器720未检测到错误,那么错误标记输出722为一,例如,Oe=1。以类似方式,LPCK解码器730还可包含错误标记输出732,其中在实施例中,如果MTB 710中的LPCK解码器730检测到错误,那么错误标记输出732被设置为零,例如,OE=0。
相反地,如果LPCK解码器730未检测到错误,那么错误标记输出722为一,例如,OE=1。通过在ECC解码器720和LPCK解码器730两者处同时接收MTB 710,LPCK解码器系统700可能够各自确定MTB 710是否含有错误。与串行地检测错误的前馈LPCK系统600相比,此类方法减少确定MTB 710内的错误的等待时间。
LPCK解码器系统700还可含有用于转发MTB 710的多个路径。举例来说,路径710-1和710-2可用于同时将MTB 710转发到ECC 720和LPCK解码器730,或MTB 710可经由路径710-3直接转发到多路复用器MUX 740。LPCK解码器系统700还可包含用于MUX 740的控制逻辑,例如“与”逻辑710,其展示将确定控制MUX 740的选择的“与”输出750-1的错误标记输出722和错误标记输出732作为其输入。除了通过ECC解码器720和LPCK解码器730的迭代路由之外,还沿着将MTB 710流路由到各种组件的各种其它路径,如将在图8、9和10中更详细地解释。
图8说明根据实施例的在快速路径解码的情况下的LPCK解码器系统700。LPCK解码器系统700可接收MTB 710,其中ECC解码器720和LPCK解码器730均基于MTB710流内所含有的不存在错误的奇偶校验和/或其它信息而确定。在此情形下,错误标记输出722和错误标记输出732均被设置为逻辑“1”,指示两个解码器均未检测到MTB 710流中的错误。因此,MUX740经启用以通过路径710-3传递MTB 710流且通过输出路径740-1输出MTB 710流。在此情况下,不需要对MTB 710流进行进一步检测和解码,且因此,在将MTB 710流转发到存储阵列或其它组件(例如,CXL装置)时几乎不存在延迟或等待时间。
图9说明根据实施例的在标准前馈路径解码的情况下的LPCK解码器系统700。LPCK解码器系统700可接收MTB 710,其中ECC解码器720和LPCK解码器730中的任一者或两者确定MTB 710流中存在错误。在此情形下,MTB 710流通过路径710-1路由到ECC解码器720,其中ECC解码器720检测并校正MTB 710流的竖直部分中的错误(如果可能的话)。可被称作MTB710′流的输出通过路径720-1和710-2路由到LPCK解码器730。LPCK解码器730检测并校正MTB 710′流的水平部分中的错误(如果可能的话),所述流接着通过路径730-2且通过MUX740和输出路径740-1作为MTB 710″流输出到存储阵列或其它组件。
图10说明根据实施例的在迭代解码前馈路径的情况下的LPCK解码器系统700。LPCK解码器系统700可接收MTB 710流,其中ECC解码器720和LPCK解码器730中的任一者或两者检测MTB 710流中的错误。如果ECC解码器720检测到错误,那么其将产生初始错误标记输出722,其中0e=0,或其中LPCK解码器730检测到错误并产生初始错误标记输出732,其中0E=0。如在图9中所描述,ECC解码器720将处理MTB710流,且在可能的情况下输出转发到LPCK解码器730的经校正的MTB 710′流。LPCK解码器730接着将处理MTB 710′流且在可能的情况下输出经校正的MTB 710″流。
此时,系统可确定迭代解码循环是否适当。因此,如果LPCK解码器730检测到MTB710″流的任何水平部分中的任何错误,那么产生1E的错误标记输出732,或如果ECC 720检测到MTB 710″流的竖直部分中的任何错误,那么产生1e的错误标记输出722,因而解码的另一迭代可为适当的。
迭代循环将包含使用路径730-1和路径710-1将MTB 710″流转发回到ECC解码器720。ECC解码器720接着将处理MTB 710″流且在可能的情况下输出经校正的MTB 710″′流,所述流将使用路径720-1和710-2被引导到LPCK解码器730。接着,在可能的情况下,LPCK解码器将校正任何剩余错误,且将MTB 710″′输出到MUX 740以经由路径740-1输出到存储阵列或组件。
在一些情形中,如将在图14中所展示,ECC解码器720和LPCK解码器730可能不能够校正MTB 710″″流中的所有错误。在此情况下,MTB将被视为其中错误校正过程被暂停的“毒化”,这意味着无法校正所有错误,且进一步的迭代处理将无法解决错误。在此情形下,可能需要进一步的动作。
图11说明根据实施例的解码期间的存储器传送块的错误状态图1100。块1110表示初始MTB流。水平行说明LPCK码字,且竖直行说明ECC码字。所展示的实例使用10×16阵列,但这仅出于说明性目的且可具有任何大小。块1110指示第3、4、10、12和14行中存在检测到的错误。块1110还指示这些错误位于第1、5和9列中。应注意,在第3行中存在多个错误,且在第1列和第5列中存在多个错误。在此实施例中,所使用的ECC算法可仅校正1位错误,因此如果列含有多个错误,那么ECC算法将不能够校正所有错误。此外,在一些情形中,ECC算法在校正一些错误时可能产生一或多个额外错误。
块1120说明处理初始MTB流的结果,所述初始MTB流对应于MTB 710′流且由图7到10中所论述的ECC解码器720处理。应注意,ECC解码器能够校正第9列中的单位错误,但不能够校正第1列和第5列中的多位错误。此外,在第1列第7行中产生由棋盘图案指示的额外错误。应进一步注意,剩余的错误,虽然多列包含多个错误,但所有错误都在不同的行中。
块1130说明由LPCK解码器处理从ECC解码器输出的MTB流的结果,所述MTB流对应于MTB 710″流。由于在多行MTB中的任一者中不存在多个错误,因此LPCK解码器可校正错误,从而产生如块1130中所展示的透明状态。因此,这是可以在如图9中所展示的标准前馈路径解码中进行校正的情况。
图12A说明根据实施例的解码期间的存储器传送块的错误状态图1200。块1210表示在第1、5和9列中具有错误的初始MTB流。这些错误位于第3、4、10、12和14行中。MTB流首先由ECC解码器处理,所述ECC解码器校正列中的任何单错误。因此,如块1220中所展示,对应于MTB 710′流,校正第9列中的单列错误。然而,在尝试校正第1列中的错误的过程中,如棋盘图案所指示,在第8行中产生额外错误。
块1230说明由LPCK解码器处理从ECC解码器输出的MTB流的结果,所述MTB流对应于MTB 710″流。LPCK解码器能够校正第4、8、10、12和14行中的单字节错误。然而,LPCK解码器不能够校正第3行中的多个错误,且实际上产生第3行第7列中的额外错误。并且,应注意,由LPCK解码器产生的额外错误不是单位,而是作为LPCK解码器在字节级处工作而不是作为ECC解码器在位级处工作的字节。因此,当块1230并不表示透明状态时,MTB流被转发用于迭代解码循环,其中MTB流被发送回到ECC解码器,如图12B中所描绘。
块1240表示ECC解码器的输出,其对应于图10中所论述的MTB 710″′流。应注意,ECC解码器可校正第1列和第5列中的单位错误,但不校正第7列中的字节错误。然而,当ECC解码器的输出由LPCK解码器处理时,字节或符号错误经校正,从而产生块1250中所展示的对应于MTB 710″″流的透明状态。
图13A说明根据实施例的解码期间的存储器传送块的错误状态图1300。块1310表示在第1、5和9列中具有错误的初始MTB流。这些错误位于第1、2、3、4、6、7、8、9和14行中。MTB流首先由ECC解码器处理,所述ECC解码器校正列中的任何单错误。因此,如块1320中所展示,对应于MTB 710′流,校正第9列中的单列错误。然而,在尝试校正第1列中的错误的过程中,如棋盘图案所指示,在第12行中产生额外错误。
块1330说明由LPCK解码器处理从ECC解码器输出的MTB流的结果,所述MTB流对应于MTB 710″流。LPCK解码器能够校正第1、2、3、4、6、8、9和12行中的单字节错误。然而,LPCK解码器不能够校正第7行中的多个错误,且实际上产生第7行第8列中的额外错误。并且,应注意,由LPCK解码器产生的额外错误不是单位,而是作为LPCK解码器在字节级处工作而不是作为ECC解码器在位级处工作的字节。因此,当块1330并不表示透明状态时,MTB流被转发用于迭代解码循环,其中MTB流被发送回到ECC解码器,如图13B中所描绘。
块1340表示ECC解码器的输出,其对应于图10中所论述的MTB 710″′流。应注意,ECC解码器可校正第1列和第5列中的单位错误,但不校正第8列中的字节错误。此外,在执行校正时,在第7列中产生额外的位错误。然而,当ECC解码器的输出由LPCK解码器处理时,字节或符号错误和位错误经校正,从而产生块1350中所展示的对应于MTB 710″″流的透明状态。
图14A说明根据实施例的解码期间的存储器传送块的错误状态图1400。块1410表示在第1、5、7和9列中具有错误的初始MTB流。这些错误位于第3、4、10、11、12和14行中。MTB流首先由ECC解码器处理,所述ECC解码器校正列中的任何单错误。因此,如块1420中所展示,仅校正第9列中的单列错误,对应于MTB 710′流。
块1430说明由LPCK解码器处理从ECC解码器输出的MTB流的结果,所述MTB流对应于MTB 710″流。LPCK解码器能够校正第10、11、12和14行中的单字节错误。然而,LPCK解码器不能够校正第3和4行中的多个错误,且实际上产生第4行第9列中的额外错误。并且,应注意,由LPCK解码器产生的额外错误不是单位,而是作为LPCK解码器在字节级处工作而不是作为ECC解码器在位级处工作的字节。因此,当块1430并不表示透明状态时,MTB流被转发用于迭代解码循环,其中MTB流被发送回到ECC解码器,如图14B中所描绘。
块1440表示对应于MTB 710″′流的ECC解码器的输出。应注意,ECC解码器可校正第7列中的单位错误,但不校正第1列和第5列中的多个错误或第9列中的字节错误。然而,当ECC解码器的输出由LPCK解码器处理时,仅存在多错误行,如第3行和第4行中所展示。因此,对应于MTB 710″″流的块1450未能说明透明状态,且MTB被分类为毒化的,其中由ECC解码器和LPCK解码器实行的进一步处理将无法解决错误。
图15展示用于检测并校正存储器错误的方法1500的示例性实施例。方法1500在步骤1505处开始,其中将存储器传送块接收到解码器中,其中MTB包括数据和奇偶校验信息,且其中MTB以第一维度和第二维度布置。举例来说,如图7中所论述,LPCK解码器系统700经配置以经由到ECC解码器720的路径710-1且经由到LPCK解码器730的路径710-2接收MTB710流。此外,如图5中所论述,MTB 510基于数据和奇偶校验的水平分析(例如,第一维度)和数据和奇偶校验信息的正交或竖直分析(例如,第二维度)说明码字。
步骤1510包含在第一维度中使用解码器内的二进制汉明码逻辑对MTB执行错误检查和校正功能。如关于图1所论述,可实施于软件或电路中的ECC编码器可在所接收的存储器传送块上使用二进制汉明码,且通常基于存储器传送块内的多列数据产生相关联的码字。此外,可从存储器阵列125检索存储器传送块,且将其转发到ECC解码器113,其中首先使用ECC二进制汉明码对所接收的存储器传送块进行解码,再次可在软件或电路中实施所述ECC二进制汉明码。
步骤1515包含在第二维度中使用解码器内的非二进制汉明码逻辑对MTB执行错误检查和校正功能。如关于图1所论述,LPCK解码器可在软件或电路中实施,且可使用可经配置以通常基于存储器传送块内的多行数据检测并校正错误的非二进制汉明码。此外,如关于图5所论述,LPCK系统500配置可用于使用ECC算法和使用LPCK算法来检测并校正一列信息上的单位错误,以校正存储器传送块的一行或水平分区上的单字节错误。
步骤1520包含其中二进制汉明码逻辑和非二进制汉明码逻辑同时对MTB执行错误检查。如关于图7所论述,LPCK解码器系统700经配置以经由到ECC解码器720的路径710-1且经由到LPCK解码器730的路径710-2同时接收存储器传送块。应注意,对MTB 710的同时接收与ECC解码器620对MTB 610的串行接收以及ECC解码器620到LPCK解码器630的输出的后续接收形成对比,如图6中所展示。
步骤1525包含使用二进制汉明码逻辑基于MTB的竖直分区产生第一码字,且使用非二进制汉明码逻辑基于MTB的水平分区产生第二码字。如关于图5所论述,MTB 510说明基于存储器传送块510的数据和奇偶校验的水平分析的LPCK-1到LPCK-N码字。MTB 510还说明基于数据和奇偶校验信息的正交或竖直分析的码字。因此,如所展示,以列方式使用符号产生ECC码字,且以水平或行方式使用符号产生LPCK码字。
步骤1530说明在二进制汉明码逻辑或非二进制汉明码逻辑在初始地接收到MTB后确定MTB含有一或多个初始错误并且确定执行初始解码的情况下,包含将MTB转发到二进制汉明码逻辑以进行错误校正,从二进制汉明码逻辑输出MTB′,将MTB′转发到非二进制汉明码逻辑以进行错误校正,且从非二进制汉明码逻辑输出MTB″。如关于图9所论述,LPCK解码器系统700说明标准前馈路径解码的情况。
LPCK解码器系统700可接收MTB 710,其中ECC解码器720和LPCK解码器730中的任一者或两者确定MTB 710流中存在错误。在此情形下,MTB 710流通过路径710-1路由到ECC解码器720,其中ECC解码器720检测并校正MTB 710流的竖直部分中的错误(如果可能的话)。可被称作MTB 710′流的输出通过路径720-1和710-2路由到LPCK解码器730。LPCK解码器730检测并校正MTB 710′流的水平部分中的错误(如果可能的话),所述流接着通过路径730-2且通过MUX 740和输出路径740-1作为MTB 710″流输出到存储阵列或其它组件。
步骤1535说明迭代解码,其包含在从非二进制汉明码逻辑输出MTB″之后作出确定,如果二进制汉明码逻辑或非二进制汉明码逻辑确定MTB″仍含有剩余的错误或新错误,那么解码过程通过执行包含以下的迭代解码继续:将MTB″引导回到二进制汉明码逻辑以进行校正;从二进制汉明码逻辑输出MTB″′;将MTB″′转发到非二进制汉明码逻辑以进行校正;将MTB″″从非二进制汉明码逻辑输出到多路复用器;及将MTB″″从多路复用器输出到CXL组件。
如所论述,迭代循环将包含使用路径730-1和路径710-1将MTB 710″流转发回到ECC解码器720。ECC解码器720接着将处理MTB 710″流且在可能的情况下输出经校正的MTB710″′流,所述流将使用路径720-1和710-2被引导到LPCK解码器730。接着,在可能的情况下,LPCK解码器将校正任何剩余错误,且将MTB 710″″输出到MUX 740以经由路径740-1输出到存储阵列或组件。
本说明书和摘要部分可阐述如由发明人预期的本公开的一或多个但非全部示例性实施例,且因此,并不意图以任何方式限制本公开和所附权利要求书。
上文已经借助于说明指定功能的实施及其关系的功能构建块来描述本公开的实施例。为便于描述,本文已任意定义了这些功能构建块的边界。只要可适当地执行指定功能及其关系,便可定义替代边界。
对特定实施例的前述描述将如此充分地揭示本公开的一般性质,以至于其他人可以通过应用本领域技术内的知识在不脱离本公开的一般概念的情况下,容易地修改和/或适应于诸如具体实施例的各种应用,而无需过度的实验。因此,基于本文所呈现的教示和指导,此类调适和修改意图在所公开实施例的等效物的含义和范围内。应理解,本文的措辞或术语用于描述而非限制目的,使得本说明书的术语或措辞由所属领域的技术人员根据教示和指导进行解释。
本公开的广度和范围不应受任何上述示例性实施例限制。
已呈现本公开的示例性实施例。本公开不限于这些实例。出于说明的目的而非限制,本文中呈现这些实例。基于本文中所含有的教示,替代方案(包含本文中所描述的那些替代方案的等效物、扩展、变化、偏差等)对于相关领域的技术人员来说将为显而易见的。此类替代方案落入本公开的范围和精神内。
本文中所含有的公开内容包含例如实例1,其为一种关于存储器检测和校正的设备,所述设备包含经配置以接收存储器传送块(MTB)的解码器,其中MTB包括数据和奇偶校验信息,其中MTB以第一维度和第二维度布置。解码器内的二进制汉明码逻辑可经配置以对第一维度中的MTB执行错误检查和校正功能。解码器内的非二进制汉明码逻辑可经配置以对第二维度中的MTB执行错误检查和校正功能。此外,二进制汉明码逻辑和非二进制汉明码逻辑经配置以同时对MTB执行错误检查。
实例2为根据任一前述条款所述的设备,其中二进制汉明码逻辑包括ECC逻辑,且非二进制汉明码逻辑包括LPCK逻辑。实例3为根据任一前述条款所述的设备,其中二进制汉明码逻辑进一步经配置以基于MTB的竖直分区产生码字。实例4为根据任一前述条款所述的设备,其中非二进制汉明码逻辑进一步经配置以基于MTB的水平分区产生码字。
实例5为根据任一前述条款所述的设备,其中,如果二进制汉明码逻辑和非二进制汉明码逻辑各自在接收到MTB后确定所述MTB不含存储器错误,那么解码器进一步包括多路复用器,所述多路复用器绕过所述二进制汉明码逻辑和所述非二进制汉明码逻辑将所述MTB直接转发到CXL组件。实例6为根据任一前述条款所述的设备,其中MTB进一步包括元数据。
实例7为根据任一前述条款所述的设备,其中,如果二进制汉明码逻辑或非二进制汉明码逻辑在接收到MTB后确定所述MTB含有一或多个初始错误,那么将所述MTB前馈到二进制汉明码逻辑,由二进制汉明码逻辑修改且作为MTB′输出,其中将所述MTB′前馈到非二进制汉明码逻辑,且由非二进制汉明码逻辑修改,且作为MTB″输出。
实例8为根据任一前述条款所述的设备,其中,如果二进制汉明码逻辑或非二进制汉明码逻辑在从所述非二进制汉明码逻辑输出MTB″之后确定所述MTB″仍含有剩余的错误或新错误,那么通过将所述MTB″引导回到所述二进制汉明码逻辑、由所述二进制汉明码逻辑修改且作为MTB″′输出来执行迭代解码,且其中所述MTB″″被前馈到所述非二进制汉明码逻辑,由所述非二进制汉明码逻辑修改且作为MTB″″从所述非二进制汉明码逻辑输出到多路复用器,且从所述多路复用器输出到CXL组件。
实例9为根据任一前述条款所述的设备,其中,如果非二进制汉明码逻辑和二进制汉明码逻辑确定MTB″不含错误,那么将所述MTB″输出到多路复用器且从所述多路复用器输出到CXL组件。实例10为根据任一前述条款所述的设备,其中输出到多路复用器的MTB″″由二进制汉明码逻辑和/或非二进制汉明码逻辑确定为含有多个错误,那么所述MTB″″被识别为毒。
实例11为根据任一前述条款所述的设备,其中二进制汉明码逻辑经配置以校正单位错误。实例12为根据任一前述条款所述的设备,其中非二进制汉明码逻辑经配置以校正单字节错误。
本文中所含有的公开内容可包含例如用于存储器错误检测和恢复的实例13的方法,其包括将MTB接收到解码器中,其中所述MTB包括数据和奇偶校验信息,其中所述MTB以第一维度和第二维度布置。所述方法包含在第一维度中使用解码器内的二进制汉明码逻辑对MTB执行错误检查和校正功能。
所述方法还包含在第二维度中使用解码器内的非二进制汉明码逻辑对MTB执行错误检查和校正功能。此外,所述方法包含二进制汉明码逻辑和非二进制汉明码逻辑同时对MTB执行错误检查的情况。
实例14为根据任一前述条款所述的方法,其中二进制汉明码逻辑包括ECC逻辑,且非二进制汉明码逻辑包括LPCK逻辑。实例15为根据任一前述条款所述的方法,其中所述方法可进一步包括使用二进制汉明码逻辑基于MTB的竖直分区产生码字。
实例16为根据任一前述条款所述的方法,其中所述方法可进一步包括使用非二进制汉明码逻辑基于MTB的水平分区产生码字。实例17为根据任一前述条款所述的方法,其中所述方法可进一步包括:如果二进制汉明码逻辑和非二进制汉明码逻辑在接收到MTB后各自确定所述MTB不含存储器错误,那么绕过所述二进制汉明码逻辑和所述非二进制汉明码逻辑将所述MTB直接转发到CXL组件。
实例18为根据任一前述条款所述的方法,其中所述方法可进一步包括:如果二进制汉明码逻辑或非二进制汉明码逻辑在初始地接收到MTB后确定MTB含有一或多个初始错误,那么执行初始解码,其包括将所述MTB转发到所述二进制汉明码逻辑,从所述二进制汉明码逻辑输出MTB′,将所述MTB′转发到所述非二进制汉明码逻辑,且从所述非二进制汉明码逻辑输出MTB″。
实例19为根据任一前述条款所述的方法,其中所述方法可进一步包括:在从所述非二进制汉明码逻辑输出MTB之后作出确定,如果二进制汉明码逻辑或非二进制汉明码逻辑确定所述MTB仍含有剩余的错误或新错误,那么执行迭代解码,其包括将MTB″引导回到所述二进制汉明码逻辑,从所述二进制汉明码逻辑输出MTB″″,将所述MTB″″转发到所述非二进制汉明码逻辑,将MTB″″从所述非二进制汉明码逻辑输出到多路复用器,及将所述MTB″″从所述多路复用器输出到CXL组件。
实例20为根据任一前述条款所述的方法,其中,如果非二进制汉明码逻辑和二进制汉明码逻辑确定MTB″不含错误,那么将所述MTB″输出到多路复用器且从所述多路复用器输出到CXL组件。
提供本文中的描述以使所属领域的技术人员能够制造或使用本公开。对于所属领域的技术人员来说,对本公开的各种修改将变得显而易见,并且本文所定义的一般原理可在不脱离本公开范围的情况下应用于其它变化形式。因此,本公开不限于本文中所描述的实例和设计,而是被赋予与本文中所公开的原理和新颖特征一致的最广泛范围。
Claims (20)
1.一种设备,其包括:
解码器,其经配置以接收存储器传送块MTB,其中所述MTB包括数据和奇偶校验信息,其中所述MTB以第一维度和第二维度布置;
所述解码器内的二进制汉明码逻辑,其经配置以执行错误检查;及
校正功能,其在所述第一维度中的所述MTB上;
所述解码器内的非二进制汉明码逻辑,其经配置以对所述第二维度中的所述MTB执行错误检查和校正功能;且
其中所述二进制汉明码逻辑和所述非二进制汉明码逻辑经配置以同时对所述MTB执行所述错误检查。
2.根据权利要求1所述的设备,其中所述二进制汉明码逻辑包括错误校正编码ECC逻辑,且所述非二进制汉明码逻辑包括低功率芯片杀伤LPCK逻辑。
3.根据权利要求1所述的设备,其中所述二进制汉明码逻辑进一步经配置以基于所述MTB的竖直分区产生码字。
4.根据权利要求1所述的设备,其中所述非二进制汉明码逻辑进一步经配置以基于所述MTB的水平分区产生码字。
5.根据权利要求1所述的设备,其中,如果所述二进制汉明码逻辑和所述非二进制汉明码逻辑各自在接收到所述MTB后确定所述MTB不含存储器错误,那么所述解码器进一步包括多路复用器,所述多路复用器绕过所述二进制汉明码逻辑和所述非二进制汉明码逻辑将所述MTB直接转发到CXL组件。
6.根据权利要求1所述的设备,其中所述MTB进一步包括元数据。
7.根据权利要求1所述的设备,其中,如果所述二进制汉明码逻辑或所述非二进制汉明码逻辑在接收到所述MTB后确定所述MTB含有一或多个初始错误,那么将所述MTB前馈到所述二进制汉明码逻辑、由所述二进制汉明码逻辑修改且作为MTB′输出,
其中所述MTB′被前馈到所述非二进制汉明码逻辑,且由所述非二进制汉明码逻辑修改且作为MTB″输出。
8.根据权利要求7所述的设备,其中,如果所述二进制汉明码逻辑或所述非二进制汉明码逻辑在从所述非二进制汉明码逻辑输出所述MTB″之后确定所述MTB″仍含有剩余错误或新错误,那么通过将所述MTB″引导回到所述二进制汉明码逻辑、由所述二进制汉明码逻辑修改且作为MTB″′输出来执行迭代解码,且
其中所述MTB″′被前馈到所述非二进制汉明码逻辑、由所述非二进制汉明码逻辑修改且作为MTB″″从所述非二进制汉明码逻辑输出到多路复用器,且从所述多路复用器输出到CXL组件。
9.根据权利要求7所述的设备,其中,如果所述非二进制汉明码逻辑和所述二进制汉明码逻辑确定所述MTB″不含错误,那么将所述MTB″输出到多路复用器且从所述多路复用器输出到CXL组件。
10.根据权利要求8所述的设备,其中输出到所述多路复用器的所述MTB″″由所述二进制汉明码逻辑和/或所述非二进制汉明码逻辑确定为含有多个错误,那么所述MTB″″被识别为毒。
11.根据权利要求1所述的设备,其中所述二进制汉明码逻辑经配置以校正单位错误。
12.根据权利要求1所述的设备,其中所述非二进制汉明码逻辑经配置以校正单字节错误。
13.一种用于存储器错误检测和恢复的方法,其包括:
将存储器传送块MTB接收到解码器中,其中所述MTB包括数据和奇偶校验信息,其中所述MTB以第一维度和第二维度布置;
在所述第一维度中使用所述解码器内的二进制汉明码逻辑对所述MTB执行错误检查和校正功能;
在所述第二维度中使用所述解码器内的非二进制汉明码逻辑对所述MTB执行错误检查和校正功能;且
其中所述二进制汉明码逻辑和所述非二进制汉明码逻辑同时对所述MTB执行所述错误检查。
14.根据权利要求13所述的方法,其中所述二进制汉明码逻辑包括错误校正编码ECC逻辑,且所述非二进制汉明码逻辑包括低功率芯片杀伤LPCK逻辑。
15.根据权利要求13所述的方法,其进一步包括使用所述二进制汉明码逻辑基于所述MTB的竖直分区产生码字。
16.根据权利要求13所述的方法,其进一步包括使用所述非二进制汉明码逻辑基于所述MTB的水平分区产生码字。
17.根据权利要求13所述的方法,其进一步包括:如果所述二进制汉明码逻辑和所述非二进制汉明码逻辑各自在接收到所述MTB后确定所述MTB不含存储器错误,那么绕过所述二进制汉明码逻辑和所述非二进制汉明码逻辑将所述MTB直接转发到CXL组件。
18.根据权利要求13所述的方法,其进一步包括:如果所述二进制汉明码逻辑或所述非二进制汉明码逻辑在初始地接收到所述MTB后确定所述MTB含有一或多个初始错误,那么执行包括以下的解码:
将所述MTB转发到所述二进制汉明码逻辑以进行校正;
从所述二进制汉明码逻辑输出MTB′;
将所述MTB′转发到所述非二进制汉明码逻辑以进行校正;及
从所述非二进制汉明码逻辑输出MTB″。
19.根据权利要求18所述的方法,其进一步包括:在从所述非二进制汉明码逻辑输出所述MTB之后作出确定,如果所述二进制汉明码逻辑或所述非二进制汉明码逻辑确定所述MTB仍含有剩余错误或新错误,那么执行迭代解码,其包括:
将所述MTB″引导回到所述二进制汉明码逻辑以进行校正;
从所述二进制汉明码逻辑输出MTB″′;
将所述MTB″′转发到所述非二进制汉明码逻辑以进行校正;
将MTB″″从所述非二进制汉明码逻辑输出到多路复用器;及
将所述MTB″″从所述多路复用器输出到CXL组件。
20.根据权利要求18所述的方法,其中,如果所述非二进制汉明码逻辑和所述二进制汉明码逻辑确定所述MTB″不含错误,那么将所述MTB″输出到多路复用器且从所述多路复用器输出到CXL组件。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263301028P | 2022-01-19 | 2022-01-19 | |
US63/301,028 | 2022-01-19 | ||
US17/843,171 US11949428B2 (en) | 2022-01-19 | 2022-06-17 | Iterative error correction in memory systems |
US17/843,171 | 2022-06-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116469451A true CN116469451A (zh) | 2023-07-21 |
Family
ID=87161365
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310048831.5A Pending CN116469451A (zh) | 2022-01-19 | 2023-01-17 | 存储器系统中的迭代错误校正 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11949428B2 (zh) |
CN (1) | CN116469451A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12081237B2 (en) * | 2019-09-23 | 2024-09-03 | SK Hynix Inc. | Processing-in-memory (PIM) devices |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013214212A (ja) * | 2012-04-02 | 2013-10-17 | Toshiba Corp | メモリコントローラ、半導体記憶装置および復号方法 |
WO2016122515A1 (en) * | 2015-01-29 | 2016-08-04 | Hewlett Packard Enterprise Development Lp | Erasure multi-checksum error correction code |
US20210119848A1 (en) * | 2019-10-22 | 2021-04-22 | Nvidia Corporation | Parallel de-rate-matching and layer demapping for physical uplink shared channel |
KR20210121654A (ko) * | 2020-03-31 | 2021-10-08 | 에스케이하이닉스 주식회사 | 메모리 시스템의 데이터 에러를 복구하는 장치 및 방법 |
WO2022139850A1 (en) * | 2020-12-26 | 2022-06-30 | Intel Corporation | Cryptographic computing including enhanced cryptographic addresses |
-
2022
- 2022-06-17 US US17/843,171 patent/US11949428B2/en active Active
-
2023
- 2023-01-17 CN CN202310048831.5A patent/CN116469451A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11949428B2 (en) | 2024-04-02 |
US20230231573A1 (en) | 2023-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101750662B1 (ko) | 데이터 에러 교정용 회로, 장치, 및 방법 | |
KR102102828B1 (ko) | 메모리에서 에러 정정 코드(ecc) 연산 | |
US8977813B2 (en) | Implementing RAID in solid state memory | |
US8239725B2 (en) | Data storage with an outer block code and a stream-based inner code | |
US10795763B2 (en) | Memory system and error correcting method thereof | |
US10803971B2 (en) | Device for supporting error correction code and test method thereof | |
US8266495B2 (en) | Systems and methods for performing concatenated error correction | |
JP2005202957A (ja) | エラー訂正のためのデータの分割 | |
US9003264B1 (en) | Systems, methods, and devices for multi-dimensional flash RAID data protection | |
EP3462318B1 (en) | Memory controller error checking process using internal memory device codes | |
US11438015B2 (en) | Two-level error correcting code with sharing of check-bits | |
US9696923B2 (en) | Reliability-aware memory partitioning mechanisms for future memory technologies | |
CN110349616B (zh) | 针对nand闪存中的位线故障的动态交织器变化 | |
KR20170112630A (ko) | 반도체장치 및 반도체시스템 | |
CN116745849A (zh) | 存储器装置保护 | |
KR20160084232A (ko) | 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법 | |
US20230049851A1 (en) | Ecc memory chip encoder and decoder | |
CN116469451A (zh) | 存储器系统中的迭代错误校正 | |
CN116266473A (zh) | 存储器装置交叉矩阵奇偶校验 | |
JP2009157515A (ja) | 半導体メモリコントローラおよび半導体メモリ | |
US11003528B2 (en) | Memory system including an error correction function | |
JP2021520555A (ja) | 階層デコーダを使用したエラー訂正 | |
CN112017724B (zh) | 存储系统和在存储系统中纠正错误的方法 | |
US10951238B1 (en) | Memory system and method for controlling non-volatile memory | |
US9104596B2 (en) | Memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |