CN104583964A - 与用于编码的数据的纠错相关联的技术 - Google Patents

与用于编码的数据的纠错相关联的技术 Download PDF

Info

Publication number
CN104583964A
CN104583964A CN201380045212.5A CN201380045212A CN104583964A CN 104583964 A CN104583964 A CN 104583964A CN 201380045212 A CN201380045212 A CN 201380045212A CN 104583964 A CN104583964 A CN 104583964A
Authority
CN
China
Prior art keywords
ecc
data
error
code
coding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380045212.5A
Other languages
English (en)
Other versions
CN104583964B (zh
Inventor
Z.S.郭
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN104583964A publication Critical patent/CN104583964A/zh
Application granted granted Critical
Publication of CN104583964B publication Critical patent/CN104583964B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • 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
    • 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/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
    • 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/159Remainder calculation, e.g. for encoding and syndrome calculation
    • 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
    • H03M13/3715Adaptation to the number of estimated errors or to the channel state

Abstract

公开了示例,所述示例针对于用于编码的数据的纠错相关联的技术。在某些示例中,可接收用于纠错码(ECC)编码的数据的ECC信息,其指示ECC编码的数据包括一个或多个错误。可进行关于ECC编码的数据是否包括单个错误或超过一个错误的确定。如果ECC编码的数据包括单个错误,则识别该错误的错误位置。如果ECC编码的数据包括超过一个错误,则可针对超过一个错误识别单独的错误位置。可纠正所述单个错误或超过一个错误,并且然后可将ECC编码的数据解码。描述了其他示例并要求保护。

Description

与用于编码的数据的纠错相关联的技术
背景技术
纠错码(ECC)可用来保护数据或从与经由其发射或存储数据的介质有关的错误恢复。例如,可使用ECC对数据进行编码以可能从与有线/无线通信、到存储器设备/介质的存储或诸如2维条形码读取器之类的光学读取器相关联的错误恢复。通过从存储器设备/介质或条形码读取数据接收到或经由有线/无线通信信道接收到的ECC编码的数据可能能够识别和纠正给定数目的错误。通常,ECC编码的数据可包括具有数据和冗余或奇偶位或符号的组合的代码字。根据给定代码字的大小和期望的保护水平,代码字可在大小方面改变,并且还可在用来从可能错误中恢复的算法的复杂性方面改变。
可将给定时间段中的错误称为误码率(BER)。已大大地增加数据传输速度的数字信号传输中的技术进步也已增加较高BER的可能性。并且,存储器存储/介质技术已导致越来越稠密的存储,其也可导致较高BER的增加的可能性。为了减少可能较高BER的影响,可用较大的代码字对数据进行编码。这些较大代码字可具有更多奇偶位。具有更多奇偶位的大的代码字可要求用增加的计算资源量实现的复杂算法。
附图说明
图1图示出示例存储器系统。
图2图示出示例存储系统。
图3图示出示例纠错码(ECC)系统。
图4图示出示例单错系统。
图5图示出示例单/多错系统。
图6图示出示例设备。
图7图示出示例逻辑流程。
图8图示出示例存储介质。
图9图示出示例计算平台。
具体实施方式
如在本公开中设想的,具有更多奇偶位的大的代码字可要求用增加的计算资源量实现的复杂算法以便减小BER。在某些实施例中,存储器存储技术的用户寻求减小BER、但仍使由使用增加的计算资源量(例如,处理器时钟周期)而可能引起的延迟最小化之间的平衡。诸如与非易失性存储器(例如,相变存储器)相关联的那些之类的某些存储器存储技术可具有相对快速的数据访问时间,但是非易失性存储器的固有物理特性可导致用于BER的较高潜在性。因此,使用相对大的代码字来保护数据并抵消用于BER的较高潜在性。然而,当检测到错误时,可使用更多的计算资源来将这些大的代码字解码。更多计算资源可将访问时间增加至对于至少某些类型的非易失存储器(例如,二级存储器(2LM)或固态驱动器(SSD))的某些期望使用而言不可接受的水平。相对于这些及其他挑战而言需要本文所述的示例。
在某些示例中,可实现与用于编码的数据的纠错相关联的技术。这些技术可包括在处理器电路处接收用于ECC编码的数据的纠错码(ECC)信息,其指示ECC编码的数据中的一个或多个错误。然后可进行关于ECC编码的数据是否包括单个错误的确定。基于该确定,可识别用于ECC编码的数据中的单个错误的错误位置,或者可生成标志以指示ECC编码的数据已超过一个错误。对于包括超过一个错误的ECC编码的数据的示例而言,可识别单独的错误位置。然后可纠正一个或多个错误,并可将ECC编码的数据解码。
图1图示出示例存储器系统100。如图1中所示,存储器系统100包括控制器110和存储器120。根据某些示例,控制器110可经由通信链路130来接收和/或履行读/写请求。虽然在图1中未示出,但在某些示例中,通信链路130可将控制器110通信耦合到与用于计算设备的操作系统相关联的元件或特征。对于这些示例而言,存储器系统100可以是用于计算设备的存储器设备。作为存储器设备,存储器系统100可充当二级存储器(2LM)系统或用于计算设备的固态驱动器(SSD)。
在某些示例中,如图1中所示,控制器110可包括纠错码(ECC)编码器112和ECC解码器114。ECC编码器112可包括用以生成代码字以保护要写入存储器120的数据的逻辑和/或特征。如下面更详细地描述的,ECC解码器114可包括将对包括在ECC编码的数据中的错误进行检测、定位、可能评估和纠正的逻辑和/或特征。根据某些示例,用来对数据进行编码的ECC可包括但不限于Reed-Solomon(RS)码或二进制Bose, Chaudhuri, Hocquenghem(BCH)码。
在某些示例中,存储器120可包括非易失性和/或易失性类型的存储器。非易失性类型的存储器可包括但不限于相变存储器(PCM)、PCM和开关(PCMS)、闪速存储器、铁电存储器、硅氧化物氮化物氧化物硅(SONOS)存储器、诸如铁电聚合物存储器之类的聚合物存储器、纳米线、铁电晶体管随机访问存储器(FeTRAM或FeRAM)、双向开关半导体(ovonic)存储器或电可擦可编程只读存储器(EEPROM)。易失性类型的存储器可包括但不限于动态随机访问存储器(DRAM)或静态RAM(SRAM)。
在某些示例中,存储器120还可包括存储介质类型,诸如光盘,包括但不限于紧凑式盘(CD)、数字多功能盘( DVD)、高清晰度DVD(HD DVD)或蓝光盘。
根据其中将存储器系统100配置为2LM系统的某些示例,存储器系统100可充当用于计算设备的主存储器。对于这些示例而言,存储器120可包括存储器的两级,包括系统盘级储存器的高速缓存子集。在此配置中,主存储器可包括被布置成包括易失性类型存储器的“近存储器”和被布置成包括易失性或非易失性类型存储器的“远存储器”。远存储器可包括比包括在近存储器中的易失性存储器更大且可能更慢的易失性或非易失性存储器。可向用于计算设备的操作系统(OS)将远存储器呈现为“主存储器”,而近存储器是用于对于OS而言透明的远存储器的高速缓存。2LM系统的管理可由经由用于计算设备的控制器110和/或处理电路(例如,CPU)执行的逻辑和模块的组合完成。可经由高带宽、低延迟装置将近存储器耦合到处理电路以用于高效处理。可经由低带宽、高延迟装置将远存储器耦合到处理电路。
图2图示出示例存储系统。在某些示例中,如图2中所示,存储系统200包括压缩/加密单元205、ECC编码器112、加扰器单元210、存储器120、解扰器单元205、ECC解码器114和解密/解压缩单元220。
根据某些示例,如图2中所示,压缩/加密单元205处的数据的压缩/加密可导致“u”。ECC编码器112可接收u并使用ECC代码(例如,二进制BCH或RS)来生成代码字“x”。 加扰器单元210可接收x并使得x被编程或写到存储器120。可从存储器120读取代码字并由解扰器单元205解扰以导致代码字“y”。如图2中所示,y=x + en,其中,“en”表示在x的写然后从存储器120读取期间可能引入的错误,并且“n”表示在写和从存储器120读取期间引入的错误的数目。ECC解码器114可接收y且可能纠正所识别的错误以生成“d”。如图2中所示,如果错误是可纠正的,则d=u。解密/解压缩单元220然后可将u解密/解压缩以生成最初被压缩/加密单元205压缩/加密的数据。
在某些示例中,ECC解码器114可包括将接收具有en的ECC编码的数据y的逻辑和/或特征。ECC解码器114可确定en是包括单个错误还是多个错误。对于这些示例而言,如果en包括单个错误,则ECC解码器114可包括将识别ECC编码的数据y中的错误位置和/或错误值的逻辑和/或特征或生成将指示y包括超过一个错误的标志。如果生成标志,则ECC解码器114可经历更加计算资源密集的ECC过程以单独地识别y中的错误位置和/或值。在尝试识别y中的多个错误位置和/或值之前识别用于y中的单个错误的位置和/或错误值的此过程可基本上减少用于当在ECC编码的数据中检测到错误时主要具有单个错误的存储器类型的纠错延迟。
根据某些示例,当用来将y解码的ECC是RS码或二进制BCH码时识别y中的所述多个错误en可使用若干处理器时钟周期来识别可能错误。例如,可由包括多个计算以生成错误位置多项式的ECC解码器114的逻辑和/或特征来实现Berlekamp-Massey算法(BMA)。然后可由ECC解码器114来实现Chien搜索以对错误进行定位。并且,如果用来将y解码的ECC是RS码,则可使用附加处理器时钟周期来识别用于已定位错误的错误值。
虽然图2描述了具有可能由向存储器120写入/读取数据引起的错误的ECC编码的数据。还可设想其他类型的ECC编码的数据,诸如与有线/无线通信相关联的ECC编码的数据或与用于2维条形码读取器的光学读取器相关联的ECC编码的数据。
在某些示例中,单错识别过程可基于用来将u编码和将y解码两者的ECC代码的类型。例如,对于二进制BCH码而言,当存在一个错误时,识别y中的错误的部分伴随式(syndrome)可具有例如以下等式(1)所示的性质,其中,j是错误的位置。
示例等式(1)
根据某些示例,为了纠正单个位错误,可进行查看该部分伴随式是否形成几何级数的检查。可基于示例算法或等式(2)来确定错误位置j。
示例等式(2):
在某些示例中,ECC解码器114可包括将经由查找表或对数计算单元的使用来实现示例等式(2)的逻辑和/或特征。
根据某些示例,在二进制BCH中,偶部分伴随式完全由奇部分伴随式确定,因此,可不需要检查偶部分伴随式。对于这些示例而言,示例等式(3)可检查:
示例等式(3)
并且,为了检查几何级数,可由示例等式(5)示出:
示例等式(4):
然而,使用示例等式(4)来检查几何级数可要求许多除法,其在计算资源(例如,时钟周期)方面可能是相对昂贵的。替代地,可使用示例等式(5)来检查:
示例等式(5):
示例等式(5)将显示第一t奇部分伴随式且第二t奇部分伴随式是对称的。然后可使用示例等式(6)来仅检查第一t奇部分伴随式形成几何级数。
示例等式(6):
使用示例等式(6)的检查将显示第一[t/2]奇部分伴随式和第二[t/2]奇部分伴随式是对称的。然后,可使用示例等式(7)来仅检查第一[t/2]奇部分伴随式形成几何级数并继续进行分步解决(divide and conquer)直至可以显示S1、S3和S5形成几何级数为止。
示例等式(7):
此外,为了检查形成几何级数的部分伴随式与示例等式(3)中的形式匹配,检查满足示例等式(8):
示例等式(8):
根据某些示例,用于二进制BCH码的单错纠正可要求(t-1)个Galois域恒定功率函数和Galois域乘法器。解码器114处的逻辑和/或特征可包括(t-1)个m位比较器和至少一个查找表或对数计算单元的使用。根据某些其他示例,解码器114处的逻辑和/或特征可包括约t个乘法器和t个比较器或者至少t-1个乘法器和t-1个比较器以将奇部分部分伴随式相乘以检查奇部分伴随式是否形成几何级数。
在某些示例中,对于基于RS码的单错纠正而言,当存在一个错误时,识别y中的错误的部分伴随式可具有例如以下等式(9)所示的性质,其中,j是错误的位置且e是错误值。
示例等式(9):
根据某些示例,为了纠正单个错误,可使用示例等式(10)来检查部分伴随式形成几何级数且然后针对e和j求解。
示例等式(10):
然而,使用示例等式(10)来检查几何级数可要求许多除法,其在计算资源方面是相对昂贵的。替代地,可使用示例等式(11)来检查:
示例等式(11):
示例等式(11)将显示第一t奇部分伴随式且第二t部分伴随式是对称的。然后可使用示例等式(12)来仅检查第一t奇部分伴随式形成几何级数。
示例等式(12):
使用示例等式(12)的检查将显示第一[t/2]部分伴随式和第二[t/2]部分伴随式是对称的。然后,可使用示例等式(13)来仅检查第一[t/2]部分伴随式形成几何级数并继续进行分步解决直至可以显示S1、S3和S5形成几何级数为止。
示例等式(13):
在某些示例中,然后可使用示例等式(14)来针对e和j求解。
示例等式(14):
根据某些示例,解码器114可包括将实现用于RS码的单错纠正的逻辑和/或特征。该逻辑和/或特征可包括约2t个乘法器和2t个比较器或者至少2t-1个乘法器和2t-1个比较器以将部分伴随式相乘以检查该部分伴随式是否形成几何级数。逻辑和/或特征还可以能够进行常数平方、Galois域求逆,并且具有两个乘法器以计算e和j。
图3图示出示例性纠错码(ECC)系统300。在某些示例中,如图3中所示,ECC系统300包括ECC编码器112、存储器120和ECC解码器114。并且,ECC解码器114被示为包括错误检测器/伴随式计算器305、错误识别单元315、纠正器单元325和代码字缓冲器335。
在某些示例中,可由ECC编码器112使用可包括二进制BCH码或RS码的ECC代码来对数据进行编码(可能已加密/压缩)。然后可将结果得到的代码字存储到存储器120。根据某些示例,可从存储器120读取所存储的代码字且其可包括可能的错误。如图3中所示,可将具有可能错误的代码字转发至代码字缓冲器335。可将代码字缓冲器335配置成至少临时地存储代码字,而ECC解码器114的其他元件识别用于可能包括在代码字中的每个错误的位置和/或值。
根据某些示例,可将错误检测器/伴随式计算器305配置成确定代码字是否包括任何错误。对于这些示例而言,如果未检测到错误,则ECC解码器114可包括指示纠正器单元325或代码字缓冲器335转发存储在代码字缓冲器335处的代码字的逻辑和/或特征。然而,如果检测到错误,则错误检测器/伴随式计算器305可计算用于ECC编码的数据的部分伴随式并将该计算的部分伴随式转发到错误识别单元315。然后可由错误识别模块315来识别错误位置和/或值。如下面更多地描述的,可使用单错电路或多错电路来识别错误位置和/或值。
在某些示例中,如图3中所示,可从错误识别电路315向纠正器单元325提供错误位置和/或值。对于这些示例而言,可将纠正器单元325配置成基于错误位置和/或值来纠正所识别的错误。还可将纠正器单元325配置成将代码字解码且然后转发数据以用于可能的解压缩/解密并最后递送到读请求的源。
图4图示出示例单个错误系统。在某些示例中,如图4中所示,单错系统400包括错误检测器/伴随式计算器305以向单错电路410提供部分伴随式。对于这些示例而言,单错电路410可以是上文针对图3所述的错误识别单元315的一部分。
根据某些示例,如图4中所示,单错电路410包括伴随式乘法器412、乘积比较器414、对数单元415、求逆计算器416和伴随式乘法器418。在某些示例中,如果用来对ECC编码的数据进行编码的ECC包括二进制BCH码,则可使用伴随式乘法器412、乘积比较器414和对数单元415来确定ECC编码的数据是否包括单个错误并基于此确定对该单个错误进行定位。对于这些示例而言,如果所使用的ECC尝试防止t个错误,则可将伴随式乘法器412布置成执行(t-1)Galois域恒定功率函数,如上所述,例如等式(7)。可将乘积比较器414布置成具有(t-1)个m位比较器,也如上所述,例如等式(7)。并且可将对数单元415布置成基于从错误检测器/伴随式计算器305接收的部分伴随式和示例等式(2)的实现以针对j求解来确定单个错误位置。
在某些示例中,如果用来对ECC编码的数据进行编码的ECC包括BCH代码,则可使用伴随式乘法器412、乘积比较器414、对数单元415、求逆计算器416和伴随式乘法器418来确定ECC编码的数据是否包括单个错误,基于此确定对该单个错误进行定位并识别用于该单个错误的值。对于这些示例而言,如果所使用的ECC尝试防止t个错误,则可将伴随式乘法器412布置成包括t个乘法器,并且可将乘积比较器414布置成包括至少t个比较器,如上所述,例如等式(14)。并且,可将求逆计算器416布置成根据示例等式(14)来执行Galois域求逆,并且伴随式乘法器418可包括至少两个乘法器以计算用于j的值以确定单个错误的位置。根据某些示例,在伴随式乘法器412/乘积比较器414和对数单元415/求逆计算器416/伴随式乘法器418处执行的操作可并行地发生,并且因此可用组合电路来实现。
在某些示例中,如果用来对ECC编码的数据进行编码的ECC包括RS代码,则可使用伴随式乘法器412、乘积比较器414、求逆计算器416和伴随式乘法器418来确定ECC编码的数据是否包括单个错误,基于此确定对该单个错误进行定位并识别用于该单个错误的值。对于这些示例而言,如果所使用的ECC尝试防止t个错误,则可将伴随式乘法器412布置成包括2t个乘法器,并且可将乘积比较器414布置成包括至少2t个比较器,如上所述,例如等式(14)。并且,可将求逆计算器416布置成根据示例等式(14)来执行Galois域求逆,并且伴随式乘法器418可包括至少两个乘法器以计算用于e和j的值以确定单个错误的值和位置。根据某些示例,在伴随式乘法器412/乘积比较器414和对数单元415/求逆计算器416/伴随式乘法器418处执行的操作可并行地发生,并且因此可用组合电路来实现。
根据某些示例,如果识别到超过一个错误,则可将单错电路410配置或布置成生成多错标志。如下面更多地所述,响应于多错标志,可将多错电路配置成对由所使用的特定ECC保护的t个可能错误的全部数目进行定位和/或识别其值。
图5图示出示例单/多错误系统500。在某些示例中,如图5中所示,单/多错系统500包括错误检测器/伴随式计算器305、错误识别单元315、多错电路510、复用器(MUX)520和纠正器单元335。对于这些示例而言,多错电路510在图5中被示为包括Berlekamp-Massey算法(BMA)单元516、Chien搜索单元518和错误评估器519。
根据某些示例,错误检测器/伴随式计算器305可检测到在ECC编码的数据中可包括一个或多个错误,并生成指示所述一个或多个错误的部分伴随式。对于这些示例而言,单错电路410可快速地确定部分伴随式是否指示单个错误并识别用于该单个错误的错误位置和/或值。可将MUX 520布置成允许来自单错电路410的信息默认地传递至纠正器单元335,例如在MUX 520上未声称的选择器位。然而,如果在ECC编码的数据中发现多个错误,则单错电路410可生成多错标志,其可导致MUX 520将从单错电路410输入到MUX 520的任何信号阻塞(blocking)。错误识别单元315然后可激活多错电路510。
在某些示例中,可能已使用能够保护编码的数据免于t个错误的二进制BCH码来保护ECC编码的数据。对于这些示例而言,可将BMA单元516和Chien搜索单元518布置成识别包括在ECC编码的数据中的错误的单独位置直至至少t个错误为止。由于生成了多错标志,所以可将MUX 520布置成允许多错电路510将指示所识别错误位置的信息传递/转发至纠正器单元335。
在某些示例中,可能已使用能够保护编码的数据免于t个错误的RS码来保护ECC编码的数据。对于这些示例而言,可将BMA单元516、Chien搜索单元518和错误评估器519布置成识别包括在ECC编码的数据中错误的单独位置和值直至至少t个错误为止。如上所述,可将MUX 520布置成允许多错电路510将指示所识别错误位置和值的信息传递/转发至纠正器单元335。
在某些示例中,可使用其他算法方案来识别ECC编码的数据中的错误位置和/或值。这些其他算法可包括但不限于Peterson-Goresntein-Zierler算法或欧几里德算法。
图6图示出示例设备600。虽然图6中所示的设备600在某个拓扑中具有有限数目的元件,但可认识到的是设备600可针对给定实施根据期望在替代拓扑中包括更多或更少的元件。
设备600可包括计算机实现设备,其可包括上文针对ECC解码器114所述的逻辑和/或特征中的至少某些,如上文针对图1—5所述。可将计算机实现设备600布置成执行一个或多个软件部件622-a。值得注意的是如本文所使用的“a”和“b”和“c”和类似标志符(designator)意图是表示任何正整数的变量。因此,例如,如果实施设定用于a=5的值,则一整套软件部件622-a可包括模块622-1、622-2、622-3、622-4或622-5。在此背景下实施例不受限制。
根据某些示例,设备600可能能够与用于存储器系统的控制器或ECC解码器一起定位,例如作为诸如存储器系统100之类的存储器系统的一部分。对于这些示例而言,可将设备600包括在处理器、处理器电路、微控制器电路或专用集成电路(ASIC)中或由它们实现。在其他示例中,可将设备600实现为固件(BIOS)的一部分或实现为中间件应用。在此背景下示例不受限制。
在某些示例中,如果在处理器中实现,则一般地可将处理器布置成执行一个或多个软件部件622-a。处理器可以是各种市售处理器中的任何一个,在没有限制的情况下包括AMD® Athlon®、Duron®和Opteron®处理器;ARM®应用、嵌入式和安全处理器;IBM®和Motorola® DragonBall®和PowerPC®处理器;IBM和Sony® Cell处理器;Intel® Celeron®、Core(2)Duo®、Core i3、Core i5、Core i7、Pentium®和XScale®处理器;以及类似处理器。还可采用多核处理器及其他多处理器架构来实现设备600。
根据某些示例,设备600可包括检错部件622-1。检错部件622-1可被布置成用于由处理器电路620执行以确定经由代码字610接收到的ECC编码的数据可具有一个或多个错误。对于这些示例而言,检错部件622-1可计算部分伴随式,其可导致指示ECC编码的数据中的错误的非零值。这些部分伴随式可至少临时地被检错部件622-2保持(例如,存储在诸如寄存器之类的数据结构中)。在某些示例中,部分伴随式可基于用于纠错的代码,诸如二进制BCH码或RS码。
在某些示例中,设备600还可包括单错部件622-1。单错部件622-2可被布置成用于由处理器电路620执行以接收用于ECC编码的数据的ECC信息,其指示ECC编码的数据中的一个或多个错误(例如,包括在部分伴随式中)。还可将单错部件622-2布置成确定ECC编码的数据是否包括单个错误,如果ECC编码的数据被确定为具有单个错误,则识别该单个错误的位置和/或值。如果ECC信息指示多个错误,则单错部件622-2可被布置成生成将指示多个错误的标志。
根据某些示例,单错部件622-2可至少临时地保持伴随式乘法/比较626-b和错误评估626-c(例如,在诸如寄存器之类的数据结构中)。对于这些示例而言,如果用来对ECC编码的数据进行编码的ECC是二进制BCH码,则乘法/比较626-b可包括用于该单个错误的错误位置信息。如果用来对ECC编码的数据进行编码的ECC是RS码,则错误评估626-c可包括用于该单个错误的错误位置信息和错误值两者。
在某些示例中,设备600还可包括多错部件622-3。可将多错部件622-3布置成用于由处理器电路620执行以接收用于ECC编码的数据的ECC信息,指示多个错误。可将多错部件622-3布置成单独地识别用于每个错误的错误位置和/或值直至至少t个为止。
根据某些示例,多错电路622-3可至少临时地保持BMA结果626-d、Chien搜索结果626-e和错误评估626-f,例如在诸如寄存器之类的数据结构中。对于这些示例而言,如果用来对ECC编码的数据进行编码的ECC是RS码或二进制BCH码,则BMA结果626-d和Chien搜索结果626-e可被多错部件622-3用来识别单独的错误位置。如果所使用的ECC是RS码,则错误评估626-f可包括与单独识别的错误位置相关联的错误值。
设备600还可包括缓冲器部件622-4。可将缓冲器部件622-4布置成用于由处理器电路620执行以保持能够临时地存储在代码字610中接收到的ECC编码的数据的存储器。
根据某些示例,设备600还可包括纠正器部件622-5。可将纠正器部件622-5布置成用于由处理器电路620执行以接收用于来自单错部件622-2的单个错误的所识别位置或者用于由多错部件622-3识别的多个错误的单独识别错误位置。还可将纠正器部件622-5布置成从由缓冲器部件622-4保持的存储器获得ECC编码的数据且然后纠正包括在代码字610中的ECC编码的数据。然后可将已纠正的ECC编码的数据解码。
在这里包括一组逻辑流程,其表示用于执行公开架构的新颖方面的示例方法。虽然为了说明的简单起见将这里所示的一个或多个方法示出并描述为一系列动作,但本领域的技术人员将理解并认识到该方法不受动作顺序的限制。据此,某些动作可按照与本文所示和所述的不同的顺序和/或与其他动作同时地发生。例如,本领域的技术人员将理解并认识到的是可以替代地将该方法表示为一系列的互相关状态或事件,诸如用状态图。此外,对于新颖实施而言并非方法中所示的所有动作都可能是要求的。
可用软件、固件和/或硬件来实现逻辑流程。在软件和固件实施例中,可用存储在至少一个非临时计算机可读介质或机器可读介质(诸如光学、磁或半导体储存器)上的计算机可执行指令来实现逻辑流程。在此背景下实施例不受限制。
图7图示出逻辑流程700。逻辑流程700可表示由本文所述的一个或多个逻辑、特征或器件,诸如设备600,执行的某些或所有操作。更特别地,可用检错部件622-1、单错部件622-2、多错部件622-3、缓冲器部件622-4或纠正器部件622-5来实现逻辑流程700。
根据某些示例,在方框702处,逻辑流程700可接收用于ECC编码的数据的ECC信息,指示ECC编码的数据中的一个或多个错误。对于这些示例而言,单错部件622-2可接收ECC信息作为具有至少某些非零值的部分伴随式,其指示ECC编码的数据中的一个或多个错误。
在某些示例中,在方框704处,逻辑流程700可确定编码的数据是否包括单个错误。
根据某些示例,基于ECC编码的数据是否包括单个错误的确定,在方框706处,逻辑流程700可识别用于ECC编码的数据中的单个错误的错误位置,或者生成将指示ECC编码的数据具有超过一个错误的标志。如果确定单个错误,则在方框708处,逻辑流程可基于所识别的错误位置来纠正单个错误并将ECC编码的数据解码。
在某些示例中,在方框710处,逻辑流程700可响应于生成的标志而识别用于ECC编码的数据中的超过一个错误的单独错误位置。对于这些示例而言,单错部件622-2可能已生成将指示超过一个错误的多错标志。并且,单独错误位置的识别可包括使用保持在多错部件622-3处的BMA信息626-d和Chien搜索信息626-e。
根据某些示例,在方框712处,逻辑流程700可基于单独识别的错误位置来纠正超过一个错误并将ECC编码的数据解码。对于这些示例而言,纠正器部件622-5可接收单独识别的错误位置并纠正可能已被临时地存储在由缓冲器部件622-4保持的存储器处的ECC编码的数据。然后可由纠正器部件622-5将已纠正的ECC编码的数据解码。
图8图示出存储介质800的实施例。存储介质800可包括制品。在某些示例中,存储介质800可包括任何非临时计算机可读介质或机器可读介质,诸如光学、磁或半导体储存器。存储介质800可存储各种类型的计算机可执行指令,诸如用以实现逻辑流程700的指令。计算机可读或机器可读存储介质的示例可包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦或不可擦存储器、可写或可重写存储器等。计算机可执行指令的示例可包括任何适当类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、面向对象代码、可视代码等。在此背景下示例不受限制。
图9图示出示例计算平台900。在某些示例中,如图9中所示,计算平台900可包括存储器系统930、处理部件940、其他平台部件950或通信接口960。根据某些示例,可在计算设备中实现计算平台900。
根据某些示例,存储器系统930可类似于存储器系统100。对于这些示例而言,驻留于存储器系统930处或与之一起定位的逻辑和/或特征(例如,包括在ECC解码器/控制器中)可执行用于设备600的至少某些处理操作或逻辑。并且,存储器系统930可包括易失性或非易失性类型的存储器(未示出),其可存储以与如上所述类似的方式被写入包括在存储器系统100中的存储器120或从其读取的ECC编码的数据。
根据某些示例,处理部件940还可执行用于设备600和/或存储介质800的至少某些处理操作。处理部件910可包括各种硬件元件、软件元件或两者的组合。硬件元件的示例可包括器件、逻辑器件、部件、处理器、微处理器、电路、处理器电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可包括软件部件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序/机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、程序、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定是否使用硬件元件和/或软件元件来实现示例可根据许多因素而改变,按照给定示例所期望的,诸如期望计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
在某些示例中,其他平台部件950可包括公共计算元件,诸如一个或多个处理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、声卡、多媒体输入/输出(I/O)部件(例如,数字显示器)、电源等。与其他平台部件950或存储器系统930相关联的存储器单元的示例在没有限制的情况下可包括采取一个或多个高速存储器单元形式的各种类型的计算机可读和机器可读存储介质,诸如只读存储器(ROM)、RAM、DRAM、双倍数据速率DRAM(DDR AM)、同步DRAM(SDRAM)、SRAM、可编程ROM(PROM)、可擦可编程序ROM(EPROM)、电可擦可编程ROM(EEPROM)、闪速存储器、纳米线、铁电晶体管随机访问存储器(FeTRAM或FeRAM)、聚合物存储器,诸如铁电聚合物存储器、双向开关半导体存储器、相变或铁电存储器、硅氧化物氮化物氧化物硅(SONOS)存储器、磁或光学卡、器件阵列,诸如独立磁盘冗余阵列(RAID)驱动器、固态存储器设备(例如,USB存储器)、固态驱动器(SSD)和适合于存储信息的任何其他类型的存储介质。
在某些示例中,通信接口960可包括将支持通信接口的逻辑和/或特征。对于这些示例而言,通信接口960可包括一个或多个通信接口,其根据各种通信协议或标准进行操作以在直接或网络通信链路上进行通信。直接通信可经由在一个或多个行业标准(包括后代和变体)中所述的通信协议或标准的使用发生,诸如与系统管理总线(SMBus)规范、PCI快速规范、串行高级技术附着(SAT A)规范、串行附着SCSI(SAS)或通用串行总线(USB)规范相关联的那些。网络通信可经由通信协议或标准的使用发生,诸如在以太网标准中所述的那些。
计算平台900可以是计算设备的一部分,其可以是例如用户设备、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板电脑、智能电话、嵌入式电子装置、游戏控制台、服务器、服务器阵列或服务器场、web服务器、网络服务器、因特网服务器、工作站、微型计算机、主机计算机、超级计算机、网络器械、web设备、分布式计算系统、多处理器系统、基于处理器的系统或其组合。因此,按照适当的期望,可在计算平台900的各种实施例中包括或省略本文所述的计算平台900的功能和/或特定配置。
可使用分立电路、专用集成电路(ASIC)、逻辑门和/或单片架构的任何组合来实现计算平台900的部件和特征。此外,可使用微控制器、可编程逻辑阵列和/或微处理器或者在合适地适当的情况下前述各项的任何组合来实现计算平台900的特征。应注意的是在本文中可将硬件、固件和/或软件元件共同地或单独地称为“逻辑”或“电路”。
应认识到的是图9的框图中所示的示例性计算平台900可表示许多潜在实施的一个功能描述示例。因此,附图中所描述的方框功能的划分、省略或包括并不推断用于实现这些功能的硬件部件、电路、软件和/或元件将必须被划分、省略或包括在实施例中。
可用存储在至少一个机器可读介质上的典型指令来实现至少一个示例的一个或多个方面,该典型指令表示处理器内的各种逻辑,其在被机器、计算设备或系统读取时使得机器、计算设备或系统制造将执行本文所述技术的逻辑。可将称为“IP核”的此类表示存储在有形、机器可读介质上并供应给各种客户或制造机构以加载到实际上实现逻辑或处理器的制造机器。
可使用硬件元件、软件元件或两者的组合来实现各种示例。在某些示例中,硬件元件可包括设备、处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。在某些示例中,软件元件的示例可包括软件部件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、程序、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定是否使用硬件元件和/或软件元件来实现示例可根据许多因素而改变,按照给定实施方式的期望,诸如期望计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
某些示例可包括制品或至少一个计算机可读介质。计算机可读介质可包括将存储逻辑的非临时存储介质。在某些示例中,非临时存储介质可包括能够存储电子数据的一个或多个类型的计算机可读存储介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦或不可擦存储器、可写或可重写存储器等。在某些示例中,所述逻辑可包括各种软件元件,诸如软件部件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、程序、软件接口、API、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。
根据某些示例,计算机可读介质可包括将存储或保持指令的非临时存储介质,该指令在被机器、计算设备或系统执行时使得机器、计算设备或系统执行根据所述示例的方法和/或操作。所述指令可包括任何适当类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码等。可根据预定义计算机语言、方式或语法来实现该指令以便命令机器、计算设备或系统执行某个功能。可使用任何适当的高级、低级、面向对象、可视、编译和/或解释编程语言来实现指令。
可使用表述“在一个示例中”或“示例”连同它们的派生词来描述某些示例。这些术语意味着结合示例所述的特定特征、结构或特性被包括在至少一个示例中。短语“在一个示例中”在本说明书中的不同地方的出现不一定全部指相同示例。
可使用表述“耦合”和“连接”连同它们的派生词来描述某些示例。这些术语并不一定意图作为用于彼此的同义词。例如,使用术语“连接”和/或“耦合”的描述可指示两个或更多元件和相互进行直接的物理或电接触。然而,术语“耦合”还可意指两个或更多元件并未相互进行直接接触,但是仍相互合作或彼此交互。
在某些示例中,示例方法可包括在处理器电路处接收用于ECC编码的数据的ECC信息,其指示ECC编码的数据中的一个或多个错误。可进行关于ECC编码的数据是否包括单个错误的确定。基于该确定,可识别用于ECC编码的数据中的单个错误的错误位置,或者可生成标志以指示ECC编码的数据已超过一个错误。
根据用于示例方法的某些示例,可基于所识别的错误位置来纠正单个错误,并且然后可将ECC编码的数据解码。
在用于示例方法的某些示例中,ECC可包括RS码或二进制BCH码中的一个。
根据用于示例方法的某些示例,识别与所识别错误位置相关联的错误值可基于包括RS码的ECC。
在用于示例方法的某些示例中,确定ECC编码的数据具有一个或多个错误可基于与RS码或二进制BCH码中的一个相关联的伴随式检查。
根据用于示例方法的某些示例,响应于生成的标志而识别用于包括在ECC编码的数据中的超过一个错误的单独错误位置可包括基于单独识别的错误位置来纠正超过一个错误且然后将ECC编码的数据解码。对于这些示例而言,ECC可包括RS码或二进制BCH码中的一个。并且,如果是RS码,则识别与所识别错误位置相关联的错误值。并且,对于这些示例而言,确定ECC编码的数据具有一个或多个错误可基于与RS码或二进制BCH码中的一个相关联的伴随式检查。
在用于示例方法的某些示例中,响应于生成的标志而识别用于包括在ECC编码的数据中的超过一个错误的单独错误位置可包括基于单独识别的错误位置来纠正超过一个错误且将ECC编码的数据解码。对于这些示例而言,ECC可包括一个或RS码或二进制BCH码。并且,用于超过一个错误的单独错误位置可包括实现BMA和Chien搜索以单独地识别错误值和位置。并且,对于这些示例而言,识别与给定识别错误位置相关联的错误值可基于包括RS码的ECC。
根据用于示例方法的某些示例,识别用于单个错误的错误值和给定识别错误位置可基于实现包括的算法,其中e是错误值、j是给定的识别错误位置,S表示包括在接收到的ECC信息中的部分伴随式且n表示任何正整数。
在用于示例方法的某些示例中,可使用二进制BCH码对已编码的ECC编码的数据进行编码。识别用于单个错误的错误位置可基于实现包括j=logS1的算法,其中,j是给定的识别错误位置且S表示包括在接收到的ECC信息中的部分伴随式。
在用于示例方法的某些示例中,可使ECC编码的数据与存储到存储器设备、存储到存储介质、无线通信或2维条形码读取器中的一个相关联。
根据用于示例方法的某些示例,存储器设备可包括非易失性存储器,诸如PCM、PCMS、闪速存储器、铁电存储器、SONOS存储器、聚合物存储器、纳米线、FeTRAM、FeRAM或EEPROM。
根据某些示例,至少一个机器可读介质包括多个指令,其响应于在系统上被执行而使得系统执行如上所述的示例方法。
根据某些示例,示例设备可包括处理器电路单错部件,其被布置成用于由处理器电路执行以接收用于ECC编码的数据的ECC信息,其指示ECC编码的数据中的一个或多个错误。还可将单错部件布置成确定编码的数据是否包括单个错误,当ECC编码的数据被确定为具有单个错误时,识别ECC编码的数据中的错误的位置,或者生成将指示ECC编码的数据具有多个错误的标志。示例设备还可包括多错部件,其被布置成用于由处理器电路执行以接收指示一个或多个错误的用于ECC编码的数据的ECC信息,并单独地识别用于每个错误的错误位置。示例设备还可包括纠正器部件,其被布置成用于由处理器电路执行以接收用于单个错误的所识别位置或用于多个错误的单独识别错误位置,并纠正ECC编码的数据中的一个或多个错误。
在某些示例中,示例设备还可包括缓冲器部件,其被布置成用于由处理器电路执行以保持能够临时地存储ECC编码的数据以便由纠正器部件纠正的存储器。
在某些示例中,示例设备还可包括检错部件,其被布置成用于由处理器电路执行以确定ECC编码的数据具有一个或多个错误,并生成将指示ECC编码的数据中的一个或多个错误的ECC信息。
根据用于示例设备的某些示例,ECC可包括RS码或二进制BCH码的一个。
在用于示例设备的某些示例中,多错部件能够实现BMA和Chien搜索以单独地识别错误位置。
根据用于示例设备的某些示例,单错部件和多错部件被配置成基于使用RS码编码的ECC编码的数据来识别与给定的识别错误位置相关联的错误值。
在用于示例设备的某些示例中,可将单错部件配置成基于实现包括的算法来识别用于单个错误的错误值和给定识别错误位置,其中,e是错误值、j是给定识别错误位置,S表示包括在接收到的ECC信息中的部分伴随式且n表示任何正整数。
根据用于示例设备的某些示例,可使用二进制BCH码对ECC编码的数据进行编码。对于这些示例而言,可将单错部件配置成基于实现包括j=logS1的算法来识别ECC编码的数据中的错误的位置,其中,j是给定识别错误位置且S表示包括在接收到的ECC信息中的部分伴随式。
在用于示例设备的某些示例中,可使ECC编码的数据与存储到存储器设备、存储到存储介质、无线通信或2维条形码读取器中的一个相关联。
根据用于示例设备的某些示例,存储器设备将包括非易失性存储器,包括PCM、PCMS、闪速存储器、铁电存储器、SONOS存储器、聚合物存储器、纳米线、FeTRAM、FeRAM或EEPROM。
在用于示例设备的某些示例中,存储器设备可以是用于计算设备的二级存储器(2LM)系统。对于这些示例而言,2LM系统还可包括易失性存储器。
应强调的是提供本公开的摘要是为了服从37 C.F.R.第1.72节(b),要求将允许读者快速地确定本技术公开的性质的摘要。其是在这样的条件下提交的,即其将不用来解释或限制权利要求的范围或意义。另外,在前述详细描述中,可以看到出于使本公开流畅的目的而在单个示例中将各种特征分组在一起。不应将本公开方法解释为反映要求保护的示例要求比在每个权利要求中明确地叙述的更多的特征的意图。相反地,如以下权利要求所反映的,发明主题在于少于单个公开示例的所有特征中。因此,以下权利要求因此被结合到详细描述中,每个权利要求独立地作为单独示例存在。在所附权利要求中,术语“包括”和“其中”分别地被用作各术语“包含”和“在其中”的口语英语等价物。此外,术语“第一”、“第二”、“第三”等仅仅被用作标签,并且并不意图对其对象施加数值要求。
虽然已用结构特征和/或方法动作特定的语言描述了主题,但应理解的是在所附权利要求中定义的主题不一定局限于上述特定特征或动作。相反地,上文描述的特定特征和动作是作为实现权利要求的示例性形式而公开的。

Claims (21)

1.一种设备,包括:
处理器电路;
单错部件,被布置成用于由处理器电路执行以接收用于ECC编码的数据的纠错码(ECC)信息,其指示ECC编码的数据中的一个或多个错误,确定编码的数据是否包括单个错误,当ECC编码的数据被确定为具有单个错误时,识别ECC编码的数据中的错误的位置,或者生成将指示ECC编码的数据具有多个错误的标志;
多错部件,其被布置成用于由处理器电路执行以接收指示一个或多个错误的用于ECC编码的数据的ECC信息,并单独地识别用于每个错误的错误位置;以及
纠正器部件,其被布置成用于由处理器电路执行以接收用于单个错误的所识别位置或用于多个错误的单独识别的错误位置,并纠正ECC编码的数据中的一个或多个错误。
2.权利要求1的设备,包括:
缓冲器部件,其被布置成用于由处理器电路执行以保持能够临时地存储ECC编码的数据以便由纠正器部件纠正的存储器。
3.权利要求1的设备,包括ECC将包括Reed-Solomon(RS)码或二进制Bose, Chaudhuri, Hocquenghem(BCH)码中的一个。
4.权利要求3的设备,包括多错部件,其能够实现Berlekamp-Massey算法(BMA)和Chien搜索以单独地识别错误位置。
5.权利要求3的设备,包括单错部件和多错部件,被配置成基于使用RS码编码的ECC编码的数据来识别与给定识别错误位置相关联的错误值。
6.权利要求5的设备,包括单错部件,其被配置成基于实现包括 的算法来识别用于单个错误的错误值和给定识别错误位置,其中,e是错误值、j是给定识别错误位置,S表示包括在接收到的ECC信息中的部分伴随式且n表示任何正整数。
7.权利要求3的设备,包括使用二进制BCH码编码的ECC编码的数据和所述单错部件,所述单错部件被配置成基于实现包括j=logS1的算法来识别ECC编码的数据中的错误的位置,其中,j是给定识别错误位置且S表示包括在接收到的ECC信息中的部分伴随式。
8.权利要求3的设备,包括与存储到存储器设备、存储到存储介质、无线通信或2维条形码读取器中的一个相关联的ECC编码的数据。
9.权利要求1的设备,包括:
检错部件,其被布置成用于由处理器电路执行以确定ECC编码的数据具有一个或多个错误,并生成将指示ECC编码的数据中的一个或多个错误的ECC信息。
10.一种方法,包括:
在处理器电路处接收用于ECC编码的数据的纠错码(ECC)信息,其指示ECC编码的数据中的一个或多个错误;
确定ECC编码的数据是否包括单个错误;以及
基于该确定,识别用于ECC编码的数据中的单个错误的错误位置,或者生成标志以指示ECC编码的数据具有超过一个错误。
11.权利要求10的方法,包括:
基于所识别的错误位置来纠正所述单个错误;以及
将ECC编码的数据解码。
12.权利要求10的方法,包括ECC将包括Reed-Solomon(RS)码或二进制Bose, Chaudhuri, Hocquenghem(BCH)码中的一个。
13.权利要求12的方法,包括:
基于包括RS码的ECC来识别与所识别错误位置相关联的错误值。
14.权利要求12的方法,包括:
基于与RS码或二进制BCH码中的一个相关联的伴随式检查来确定ECC编码的数据具有一个或多个错误。
15.权利要求10的方法,包括:
响应于生成的标志而识别用于包括在ECC编码的数据中的超过一个错误的单独错误位置;
基于单独识别的错误位置来纠正所述超过一个错误;以及
将ECC编码的数据解码。
16.权利要求15的方法,包括ECC将包括Reed-Solomon(RS)码或二进制Bose, Chaudhuri, Hocquenghem(BCH)码中的一个。
17.权利要求16的方法,识别用于超过一个错误的单独错误位置包括实现Berlekamp-Massey算法(BMA)和Chien搜索以单独地识别错误值和位置。
18.权利要求12的方法,包括:
基于包括RS码的ECC来识别与给定识别错误位置相关联的错误值;以及
基于实现包括的算法识别用于单个错误的错误值和给定识别错误位置,其中e是错误值、j是给定识别错误位置,S表示包括在接收到的ECC信息中的部分伴随式且n表示任何正整数。
19.权利要求16的方法,包括ECC编码的数据被使用二进制BCH码编码,并且基于实现包括j=logS1的算法来识别用于单个错误的错误位置,其中,j是给定识别错误位置且S表示包括在接收到的ECC信息中的部分伴随式。
20.至少一个机器可读介质,包括多个指令,其响应于在计算设备上被执行而使得计算设备执行根据权利要求10到19中的任一项所述的方法。
21.一种包括用于执行权利要求10至19中的任一项的方法的装置的设备。
CN201380045212.5A 2012-09-28 2013-06-27 与用于编码的数据的纠错相关联的方法和设备 Active CN104583964B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/629688 2012-09-28
US13/629,688 US8990655B2 (en) 2012-09-28 2012-09-28 Techniques associated with error correction for encoded data
PCT/US2013/048086 WO2014051797A1 (en) 2012-09-28 2013-06-27 Techniques associated with error correction for encoded data

Publications (2)

Publication Number Publication Date
CN104583964A true CN104583964A (zh) 2015-04-29
CN104583964B CN104583964B (zh) 2018-02-02

Family

ID=50386462

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380045212.5A Active CN104583964B (zh) 2012-09-28 2013-06-27 与用于编码的数据的纠错相关联的方法和设备

Country Status (3)

Country Link
US (1) US8990655B2 (zh)
CN (1) CN104583964B (zh)
WO (1) WO2014051797A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106128510A (zh) * 2015-05-07 2016-11-16 爱思开海力士有限公司 控制器、半导体存储系统及其操作方法
CN106528321A (zh) * 2015-09-09 2017-03-22 株式会社东芝 数据恢复电路、半导体存储装置及数据恢复方法
CN110380738A (zh) * 2019-07-19 2019-10-25 广东省新一代通信与网络创新研究院 参数软件可配置的rs编码器ip核电路结构及其编码方法
CN110688246A (zh) * 2018-07-06 2020-01-14 旺宏电子股份有限公司 集成电路及用以操作集成电路上的存储器的方法
CN113272907A (zh) * 2018-11-26 2021-08-17 美光科技公司 纠错位翻转方案

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8869008B2 (en) 2013-01-17 2014-10-21 Apple Inc. Adaptation of analog memory cell read thresholds using partial ECC syndromes
US20150169406A1 (en) * 2013-12-16 2015-06-18 Sandisk Technologies Inc. Decoding techniques for a data storage device
US9553608B2 (en) 2013-12-20 2017-01-24 Sandisk Technologies Llc Data storage device decoder and method of operation
US10072199B2 (en) * 2015-03-17 2018-09-11 Halliburton Energy Services, Inc. Metalate-based additives for use in subterranean formations
US9680509B2 (en) 2015-03-27 2017-06-13 Intel Corporation Errors and erasures decoding from multiple memory devices
US9594629B2 (en) 2015-06-03 2017-03-14 King Abdulaziz City For Science And Technology Data error correction from cached error correction information
JP2019205067A (ja) * 2018-05-23 2019-11-28 日本電信電話株式会社 信号処理装置及び信号処理方法
TWI751620B (zh) * 2020-07-23 2022-01-01 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
JP2023044544A (ja) * 2021-09-17 2023-03-30 キオクシア株式会社 メモリシステム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6640327B1 (en) * 2000-11-01 2003-10-28 Sharp Laboratories Of America, Inc. Fast BCH error detection and correction using generator polynomial permutation
US20040237022A1 (en) * 2000-03-08 2004-11-25 Dave Karpuszka System and method for providing error check and correction in memory systems
US7865809B1 (en) * 2004-03-11 2011-01-04 Super Talent Electronics, Inc. Data error detection and correction in non-volatile memory devices
TW201145292A (en) * 2010-06-10 2011-12-16 Global Unichip Corp A hardware module as XOR parity control
CN102567134A (zh) * 2012-01-06 2012-07-11 威盛电子股份有限公司 存储器模块的错误检查与校正系统以及方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6990624B2 (en) * 2001-10-12 2006-01-24 Agere Systems Inc. High speed syndrome-based FEC encoder and decoder and system using same
US20030101406A1 (en) * 2001-10-12 2003-05-29 Leilei Song Low complexity and low power FEC supporting high speed parallel decoding of syndrome-based FEC codes
US20040153902A1 (en) 2003-01-21 2004-08-05 Nexflash Technologies, Inc. Serial flash integrated circuit having error detection and correction
US7206992B2 (en) * 2003-03-04 2007-04-17 Broadcom Corporation Decoding a received BCH encoded signal
KR100833600B1 (ko) * 2006-08-25 2008-05-30 삼성전자주식회사 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치
WO2010077313A1 (en) 2008-12-17 2010-07-08 Sand9, Inc. Mechanical resonating structures including a temperature compensation structure
JP2010218634A (ja) 2009-03-17 2010-09-30 Toshiba Corp 誤り検出訂正器、メモリコントローラおよび半導体記憶装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040237022A1 (en) * 2000-03-08 2004-11-25 Dave Karpuszka System and method for providing error check and correction in memory systems
US6640327B1 (en) * 2000-11-01 2003-10-28 Sharp Laboratories Of America, Inc. Fast BCH error detection and correction using generator polynomial permutation
US7865809B1 (en) * 2004-03-11 2011-01-04 Super Talent Electronics, Inc. Data error detection and correction in non-volatile memory devices
TW201145292A (en) * 2010-06-10 2011-12-16 Global Unichip Corp A hardware module as XOR parity control
CN102567134A (zh) * 2012-01-06 2012-07-11 威盛电子股份有限公司 存储器模块的错误检查与校正系统以及方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106128510A (zh) * 2015-05-07 2016-11-16 爱思开海力士有限公司 控制器、半导体存储系统及其操作方法
CN106128510B (zh) * 2015-05-07 2020-08-25 爱思开海力士有限公司 控制器、半导体存储系统及其操作方法
TWI728955B (zh) * 2015-05-07 2021-06-01 韓商愛思開海力士有限公司 控制器、半導體記憶體系統及其操作方法
CN106528321A (zh) * 2015-09-09 2017-03-22 株式会社东芝 数据恢复电路、半导体存储装置及数据恢复方法
CN106528321B (zh) * 2015-09-09 2019-06-07 株式会社东芝 数据恢复电路、半导体存储装置及数据恢复方法
CN110688246A (zh) * 2018-07-06 2020-01-14 旺宏电子股份有限公司 集成电路及用以操作集成电路上的存储器的方法
CN113272907A (zh) * 2018-11-26 2021-08-17 美光科技公司 纠错位翻转方案
CN110380738A (zh) * 2019-07-19 2019-10-25 广东省新一代通信与网络创新研究院 参数软件可配置的rs编码器ip核电路结构及其编码方法
CN110380738B (zh) * 2019-07-19 2023-01-31 广东省新一代通信与网络创新研究院 参数软件可配置的rs编码器ip核电路结构及其编码方法

Also Published As

Publication number Publication date
CN104583964B (zh) 2018-02-02
US8990655B2 (en) 2015-03-24
WO2014051797A1 (en) 2014-04-03
US20140095958A1 (en) 2014-04-03

Similar Documents

Publication Publication Date Title
CN104583964A (zh) 与用于编码的数据的纠错相关联的技术
US9246516B2 (en) Techniques for error correction of encoded data
US9729171B2 (en) Techniques for soft decision decoding of encoded data
US9197247B2 (en) Memory system and error correction method
US9673840B2 (en) Turbo product codes for NAND flash
JP7276742B2 (ja) メモリエラーを訂正するための共有パリティチェック
US20170177259A1 (en) Techniques to Use Open Bit Line Information for a Memory System
US7865809B1 (en) Data error detection and correction in non-volatile memory devices
US9940457B2 (en) Detecting a cryogenic attack on a memory device with embedded error correction
TW201618119A (zh) 於非依電性記憶體中之回復演算法
JP2015507409A (ja) 代数符号を用いるマルチフェーズecc符号化
EP1907933A2 (en) Flash memory error correction
US8464136B2 (en) Data transfer protection apparatus for flash memory controller
CN104541253A (zh) 与保护写入到非易失性存储器的系统关键数据相关联的技术
TW201331946A (zh) 使用錯誤校正碼編碼以驗證錯誤校正碼解碼操作
US9979417B2 (en) Enhanced chip-kill schemes by using ECC syndrome pattern
US20170093433A1 (en) Error locator polynomial decoder and method
US9431132B2 (en) Data managing method, memory control circuit unit and memory storage apparatus
CN105931673A (zh) 数据储存器件及其操作方法
CN109669800B (zh) 用于写入路径错误的高效数据恢复
US10523240B2 (en) Methods and apparatus to determine and apply polarity-based error correction code
US10956259B2 (en) Error correction code memory device and codeword accessing method thereof
US20160336969A1 (en) Miscorrection avoidance for turbo product codes
CN111989745A (zh) 通用高和低随机位纠错逻辑
US9455746B2 (en) Variable speed Chien search architecture

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant