CN101131876A - 误差校正电路和方法、包含该电路的半导体存储装置 - Google Patents
误差校正电路和方法、包含该电路的半导体存储装置 Download PDFInfo
- Publication number
- CN101131876A CN101131876A CNA2007101397390A CN200710139739A CN101131876A CN 101131876 A CN101131876 A CN 101131876A CN A2007101397390 A CNA2007101397390 A CN A2007101397390A CN 200710139739 A CN200710139739 A CN 200710139739A CN 101131876 A CN101131876 A CN 101131876A
- Authority
- CN
- China
- Prior art keywords
- error
- data
- bit
- pattern
- correction
- 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
Links
- 238000012937 correction Methods 0.000 title claims abstract description 94
- 238000000034 method Methods 0.000 title claims abstract description 29
- 239000004065 semiconductor Substances 0.000 title claims abstract description 23
- 208000011580 syndromic disease Diseases 0.000 claims abstract description 40
- 238000004364 calculation method Methods 0.000 claims description 14
- 230000014509 gene expression Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- 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
-
- 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
- G11C2029/0411—Online error correction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/10—Aspects relating to interfaces of memory device to external buses
- G11C2207/104—Embedded memory devices, e.g. memories with a processing device on the same die or ASIC memory designs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Error Detection And Correction (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
提供了一种误差校正电路、误差校正方法和包含该误差校正电路的半导体存储装置。误差校正电路包括:局部校正子发生器、第一和第二误差位置检测器、系数计算器和确定器。局部校正子发生器计算至少两个局部校正子。第一误差位置检测器使用部分局部校正子计算第一误差位置。系数计算器使用局部校正子计算误差位置方程的系数。确定器基于系数确定误差类型。第二误差位置检测器基于误差类型选择地计算第二误差位置。半导体存储装置包括:误差校正电路;ECC编码器,基于信息数据产生编码的数据并通过将校正子数据和信息数据结合产生编码的数据;存储核,存储编码的数据。多比特ECC性能被保持,并且可对预定(1或2)或更少数量的误差比特快速执行ECC。
Description
技术领域
本发明涉及误差校正,更具体地讲,涉及一种误差校正电路、误差校正方法以及包含该误差校正电路的半导体存储装置。
本申请要求于2006年8月25日提交到韩国知识产权局的第10-2006-0080854号韩国专利申请的利益,该申请的公开通过引用全部包含于此。
背景技术
随着半导体存储装置的存储容量的增加,需要可以恢复存储单元(memory cell)中的误差的误差校正电路。传统的误差校正电路可以被分为使用冗余存储单元的电路和使用误差检查和校正(ECC)的电路。
包含使用冗余存储单元的误差校正电路的半导体存储装置包括一般存储单元和冗余存储单元,并且在写入和/或读取数据时,用冗余存储单元替换具有误差的缺陷存储单元。使用冗余存储单元的误差校正电路通常用于动态随机存取存储器(DRAM)。
包含使用ECC的误差校正电路的半导体存储装置产生并存储冗余数据(称为奇偶校验数据(parity data)或校正子数据(syndrome data)),并使用冗余数据检测并校正数据比特中出现的误差。使用ECC的误差校正电路通常用于只读存储器(ROM),尤其是常用于包含电可擦写可编程ROM(EEPROM)单元(cell)的闪存。
图1是包含传统ECC电路120的半导体存储装置100的示意性框图。半导体存储装置100包括存储核110、ECC电路120以及主机接口和逻辑单元130。
存储核110是包括用于存储数据的存储单元阵列的块。ECC电路120包括ECC编码器121和ECC解码器123。主机接口和逻辑单元130执行主机200(例如,移动装置中的控制器)和存储核110之间的数据交接(interface)。主机接口和逻辑单元130可以将d比特并行数据(这里,“d”为2或大于2的整数)发送到主机200或者从主机200接收d比特并行数据。
ECC编码器121通过主机接口和逻辑单元130接收k比特数据,使用接收到的k比特数据产生(n-k)比特的校正子数据,并将(n-k)比特校正子数据加上k比特数据。因此,由接收到的k比特数据和(n-k)比特校正子数据构成的n比特数据(可以被称为ECC字)被输入到存储核110中。
当存储在存储核110中的数据被输出时,由k比特数据和(n-k)比特校正子数据构成的ECC字被从存储核110中读出。ECC解码器123将ECC字除以预定的模式数据(pattern data),产生校正子数据,并使用校正子数据确定是否存在误差。当确定存在误差时,ECC解码器123检测误差的位置,即,具有误差的比特的位置,并校正该误差比特。误差比特的校正可以由半导体存储装置100中的单元(例如,主机接口和逻辑单元130)中包含的误差校正器或由主机200执行。
图2是示出传统误差校正的时序图。传统误差校正包括在时间T0和T1之间时间段Tt中的数据读取/校正子计算、时间T1和T2之间的时间段Tcoeff中的系数计算以及时间T2和T3之间的时间段Tcse中的误差位置计算。
在数据读取/校正子计算过程中,ECC字(即,信息数据和校正子数据)被从存储单元阵列中读取,并且局部校正子S0至S2n-1被计算。数据读取/校正子计算需要预定读取时间Tt。在系数计算过程中,计算用于产生误差位置方程所需的系数σ0至σn,并且需要预定的系数计算时间Tcoeff。在误差位置计算过程中,求解误差位置方程以获得解,从而检测误差位置。误差位置计算需要预定的误差位置计算时间Tcse。因此,误差校正周期(或ECC周期)相应于时间段Tt、Tcoeff和Tcse的和,并且不管误差比特的数量如何,几乎总是为常数。
用于多比特ECC的公知电路和方法具有很多缺点。例如,基于可校正的误差比特数的最大数量来设计和实现传统ECC解码器。传统多比特ECC解码器比单比特ECC解码器需要更多的处理时间。而且,误差校正周期直接和数据存取时间(主机从半导体存储装置读取数据的时间)有关。结果,传统多比特ECC电路和方法从存储器读取数据的速度显著变慢。因此,需要更快的多比特ECC电路和方法。
发明内容
本发明的实施例基于检测到的误差比特数,通过选择地执行可选误差位置计算,降低数据读取时间并提高读取性能。
本发明的实施例提供了一种误差校正电路,包括:至少两个误差位置检测器,被配置为并行操作,并具有不同的误差位置计算时间;确定器,被配置为确定误差类型;主控制器,结合到所述至少两个误差位置检测器和所述确定器上,所述主控制器被配置为基于误差类型和所述至少两个误差位置检测器的输出来确定最终误差位置。
本发明的另一实施例提供了一种包括上述误差校正电路的半导体存储装置。所述半导体存储装置还可包括:误差检查和校正(ECC)编码器,被配置为基于信息数据生成校正子数据并通过将校正子数据加上信息数据来生成误差校正编码的数据;存储核,结合到所述ECC编码器,被配置为存储所述编码的数据。
本发明的进一步实施例提供了一种误差校正方法,包括:读取编码的数据;使用所述编码的数据计算多个局部校正子;使用所述多个局部校正子计算多个比特位置方程系数。
附图说明
通过参照附图对本发明的示例性实施例的详细描述,本发明的上述和其他特点和优点将会变得更加清楚,其中:
图1是包括传统误差检查和校正(ECC)电路的半导体存储装置的示意性框图;
图2是示出传统误差校正的时序图;
图3是根据本发明一些实施例的半导体存储装置的框图;
图4是示出根据本发明一些实施例的图3中的ECC编码器的操作的逻辑图;
图5是根据本发明一些实施例的误差校正方法的流程图;
图6是根据本发明一些实施例示出如何在时域执行误差校正的时序图。
具体实施方式
以下,将参照附图更全面地描述本发明,其中,在附图中示出了本发明的实施例。然而,本发明可以以很多不同的形式被实现,不应该被理解为限于这里阐述的实施例。相反,提供这些实施例是为了使本发明的公开更彻底和完整,并且将本发明的范围全面传达给本领域的技术人员。在附图中,相同的标号始终指示相同的部件。
应该理解的是,当元件被称为“连接”或“结合”到另一元件时,该元件可以直接连接或结合到其他元件,或者可存在中间元件。相反,当元件被称为“直接连接”或“直接结合”到另一元件时,不存在中间元件。如这里所使用的,术语“和/或”包括所列出的一个或多个相关术语的任何组合或所有组合,可以缩写为“/”。
图3是根据本发明一些实施例的半导体存储装置300的框图。半导体存储装置300包括存储核310、误差检查和校正(ECC)电路320以及主机接口和逻辑单元330。ECC电路320被结合在存储核310与主机接口和逻辑单元330之间。
存储核310包括用于存储数据的存储单元阵列。存储单元阵列可包括(例如)具有浮动栅极(floating gate)的电可擦写可编程只读存储器(EEPROM)单元,但是本发明不限于此。
主机接口和逻辑单元330执行控制以及主机200(例如,移动装置或计算机中的控制器)和ECC电路320之间的交接(interface)的缓冲。主机接口和逻辑单元330可包括误差校正器(未示出),所述误差校正器基于ECC电路320执行的误差检测的结果校正编码的数据中的误差。
主机接口和逻辑单元330可包括存储器(未示出),如静态随机存储存储器(SRAM)。在这种情况下,当主机200将数据写入SRAM中时,由ECC电路320将数据编码,然后编码的数据被记录在存储核310(例如,闪存核)中。然后,通过ECC电路320检测并校正从存储核310读取的数据中的误差,误差校正后的数据被存储在SRAM中。结果,主机200读取存储在SRAM中的误差校正后的数据。主机接口和逻辑单元330可以将d比特并行数据(其中,“d”为2或大于2的整数)发送到主机200或从主机200接收d比特并行数据。
ECC电路320包括结合到ECC编码器420和ECC解码器430的ECC包装器(wrapper)410。ECC包装器410从主机接口和逻辑单元330接收k比特信息数据(其中,“k”为2或大于2的整数)。ECC包装器410然后将(n-k)比特的空数据(dummy data)加上k比特信息数据。“n-k”为1或大于1的整数,并且所述空数据的每个比特具有预定的逻辑值。ECC包装器410然后串行或并行地将n比特数据输出到ECC编码器420。例如,k比特信息数据可以是4096比特,(n-k)比特空数据可以是53比特,n比特数据可以是4149比特。
图4是示出根据本发明的一些实施例的图3中的ECC编码器420的操作的逻辑示图。参照图4,ECC编码器420包括校正子发生器421和异或(XOR)算子423。
校正子发生器421从ECC包装器410接收n比特数据并将接收到的n比特数据除以预定的数据以生成(n-k)比特余数(或校正子)数据。所述预定数据通常被称为发生器多项式G(x)。基于可校正的误差比特的最大数量和/或可检测到的误差比特的最大数量来确定整数“n-k”。
XOR算子423对从ECC包装器410接收到的n比特数据以及校正子数据执行XOR运算,以生成n比特编码的数据。当分别用I(x)、S(x)和C(x)表示信息数据、校正子数据和编码的数据时,这些数据之间的关系由方程(1)来表示:
S(x)=Ix(n-k)(x)%G(x),
C(x)=x(n-k)I(x)+S(x)=Q(x)G(x),(1)
其中,x(n-k)(x)是通过将k比特信息数据I(x)在最高有效位(MSB)方向上移位(n-k)比特后获得的值,%G(x)指示对G(x)取模,Q(x)是当C(x)除以G(x)时的商。当“n-k”为53时,G(x)是53阶多项式,S(x)是52阶多项式。
n比特编码的数据(也称为ECC字)被输入到存储核310中。存储核310的单元阵列区域可以被分为用于存储信息数据的区域和用于存储校正子数据的区域。可选地,n比特编码的数据可以被存储在存储单元阵列中,而不用标识信息数据区域和校正子数据区域。
当存储在存储核310中的编码的数据被输出时,n比特编码的数据(包括k比特信息数据和(n-k)比特奇偶校验数据)被从存储核310中读出,然后被输入到ECC包装器410中。ECC包装器410可缓冲n比特编码的数据,并将n比特编码的数据输出到ECC解码器430。
ECC解码器430确定在从ECC包装器410接收到的编码的数据中是否存在误差比特,并且还检测误差位置,即,所述误差比特的位置。在可选实施例中,ECC解码器430还可基于检测到的误差位置校正编码的数据中的误差比特。在这些情况下,误差校正器(未示出)可以被包含在ECC解码器430中。
在示出的实施例中,ECC解码器430包括第一至第四局部校正子发生器431、433、435和437、系数计算器441、1比特误差位置检测器451、多比特误差位置监测器452、误差确定器442和主控制器443。ECC解码器430还可包括奇偶校验检验器444,所述奇偶校验检验器可以是偶数奇偶校验检验器或奇数奇偶校验检验器。
第一至第四局部校正子发生器431、433、435和437被结合到系数计算器441。1比特误差位置检测器451被结合到第一校正子发生器431和主控制器443。多比特误差位置检测器452和误差确定器442均结合到系数计算器441和主控制器443。
尽管第一至第四局部校正子发生器431、433、435和437被描述为单独的部件,但是,它们也可以统一被描述为具有多个局部校正子输出的单个局部校正子发生器。第一至第四局部校正子发生器431、433、435和437将从存储核310输出的n比特编码的数据分别除以它们预定的数据,从而生成局部校正子S1、S3、S5和S7。当用R(x)表示从存储核310输出的n比特编码的数据,并用m1(x)、m3(x)、m5(x)和m7(x)表示预定数据,即,第一至第四局部校正子发生器431、433、435和437各自的局部生成多项式时,数据之间的关系可以由方程(2)来表示:
S1(x)=R(x)%m1(x),
S3(x)=f{R(x)%m3(x)},
S5(x)=f{R(x)%m5(x)},
S7(x)=f{R(x)%m7(x)},(2)
其中,S1(x)、S3(x)、S5(x)和S7(x)分别对应于由第一至第四局部校正子发生器431、433、435和437产生的局部校正子S1、S3、S5和S7,%表示取模运算。如方程(2)中所示,可以从R(x)%m1(x)直接计算S1(x)。可以分别使用R(x)%m3(x)、R(x)%m5(x)和R(x)%m7(x)计算S3(x)、S5(x)和S7(x)。
此外,包含在ECC编码器420中的校正子发生器421的生成多项式G(x)和第一至第四局部校正子发生器431、433、435和437的局部生成多项式m1(x)、m3(x)、m5(x)和m7(x)之间的关系可以被定义为方程(3):
G(x)=m1(x)*m3(x)*m5(x)*m7(x),(3)
其中,“*”表示伽瓦罗(Galois)乘法。当G(x)是53阶多项式并且S(x)是52阶多项式时,m1(x)、m3(x)、m5(x)和m7(x)均为13阶多项式,S1(x)、S3(x)、S5(x)和S7(x)均为12阶多项式。
当第一至第四局部校正子S1、S3、S5和S7均为0时,则编码的数据中不存在误差。如果第一至第四局部校正子S1、S3、S5和S7中的任何一个或多个不为0,则在编码的数据的至少一个比特中存在误差。当出现误差时,系数计算器441使用局部校正子S1、S3、S5和S7开始计算误差位置方程的系数σ1、σ2、σ3和σ4。同时,1比特误差位置检测器451仅使用第一局部校正子S1开始计算1比特误差的位置。1比特误差位置检测器451可以由简单电路实现,从而1比特误差位置检测器451可以在多比特误差位置检测器452能够完成多比特误差位置计算之前完成计算。尽管1比特位置检测器451可以先于系数计算器441完成操作,但是因为他们基本上同时开始操作,因此,也可以认为这些部件并行操作。
误差位置方程具有作为根的误差比特的倒数。可以使用多种算法来获得误差位置方程的系数σ1、σ2、σ3和σ4与局部校正子S1、S3、S5和S7之间的关系。方程(4)和(5)是表达这种关系的示例性误差位置方程。
方程(4)是用于1比特误差校正的误差位置方程的示例:
σ1x+1=0(4)
其中,σ1=S1,满足一阶方程(4)的根的倒数表示1比特误差位置。
方程(5)是用于2比特误差校正的误差位置方程的例子:
σ2x2+σ1x+1=0(5)
其中,σ1=S1,σ2=(S1 3+S3)/S1,满足二阶方程(5)的根的倒数表示2比特误差位置。
对于3比特或更多比特的误差校正,可以以上述相似的方式来计算误差位置方程的系数。
根据本发明的一些实施例,系数计算器441根据能够校正最多4比特误差的误差位置方程来计算系数σ1、σ2、σ3和σ4。
误差确定器442基于由系数计算器441计算的系数σ1、σ2、σ3和σ4来确定误差类型。具体地说,误差确定器442确定检测到的误差是1比特误差(即,第一误差类型)还是多比特误差(即,第二误差类型)。例如,当一阶方程的系数σ1不为0并且其他阶方程的系数σ2、σ3和σ4均为0时,则误差位置方程为一阶方程,误差比特数为1。如果二阶方程的系数σ2不为0,并且三阶和四阶方程的系数σ3和σ4为0,则误差位置方程为二阶方程,并且误差比特数为2。
当误差确定器422确定存在1比特误差时,由1比特误差位置检测器451确定误差比特的位置。在这种情况下,多比特误差位置检测器452可以不运行。由1比特误差位置检测器451计算出的1比特误差位置可以被称为第一误差位置。
当误差确定器422检测出存在多比特误差时,则由多比特误差位置检测器452确定误差比特的位置。由多比特误差位置检测器452计算出的多比特误差位置可以被称为第二误差位置。
1比特误差位置检测器451和多比特误差位置检测器452可以基于误差位置方程来检测误差比特的位置。
1比特误差位置检测器451是对于1比特ECC最优化的快速误差位置计算器,并且是用于1比特误差检测的专用电路。1比特误差位置检测器451基于一阶误差位置方程(例如,方程(4))检测在n比特编码的数据中具有误差的一个比特的位置。由于一阶误差位置方程的系数σ1与第一局部校正子S1相同,因此,一旦由第一局部校正子发生器431生成第一局部校正子S1,则可以确定一阶误差位置方程,而不管系数计算器441的计算结果。因此,一旦第一局部校正子S1生成,1比特误差位置检测器451可以开始与系数计算器441并行操作。
多比特误差位置检测器452使用系数计算器441计算的系数σ1、σ2、σ3和σ4来检测2个或更多误差比特的位置。根据本发明的一些实施例,多比特误差位置检测器452是能够检测至少2个误差比特和至多4个误差比特的位置的误差位置计算器。
多比特误差位置检测器452可以使用误差位置方程来检测误差位置。在这种情况下,需要根据误差比特数求解i阶误差位置方程(其中,i=1、2、3或4)。由于难于获得四阶误差位置方程的通解,可以使用Chien搜索算法来确定多项式的根。Chien搜索算法利用这些根将为原始元素α的幂的事实。测试根因此被表达为在j=0到j=(n-1)范围内的α-j:α-0、α-1、α-2、α-3...α-(n-1)。当α-j满足误差位置方程时,第j比特被确定为具有误差。为了确定将j(在0至n-1范围内改变j)带入误差位置方程重复n次是否满足方程,可以对大小为n的每个代码执行这种操作。
主控制器443基于1比特误差位置检测器451的检测结果(即,第一误差位置)或多比特误差位置检测器452的检测结果(即,第二误差位置)来确定最终误差比特位置。当误差确定器422确定第一误差类型时,主控制器443根据第一误差位置确定最终误差比特位置,当误差确定器422确定第二误差类型时,主控制器433根据第二误差位置来确定最终误差比特位置,而忽略1比特误差位置检测器451的检测结果。此外,为了更准确地确定误差是否存在以及误差位置,主控制器443还可参照从奇偶校验检验器444输出的信号。
在主控制器443确定了最终误差比特位置之后,主控制器443可将确定的最终误差比特位置提供给主机接口和逻辑单元330。然后,主机接口和逻辑单元330可通过反转一个或多个错误比特的逻辑值,来校正一个或更多比特误差。
可选地,主机接口和逻辑单元330可将误差位置信息和n比特编码的数据(或只是k比特信息数据)发送到主机200。在这种情况下,主机200可基于来自主控制器443的误差比特位置信息,通过反转比特的逻辑值,校正一个或多个误差。
图5是根据本发明一些实施例的误差校正方法的流程图。图5中所示的误差校正方法可以由图3中示出的ECC电路320来执行。将在下面参照图3至图5描述该误差校正方法。
在操作610之前,通过将校正子数据和信息数据结合来生成编码的数据,编码的数据已被存储在存储核310中。在操作610,编码的数据被从存储核310中读取。在操作620中,使用编码的数据生成第一至第四局部校正子S1、S3、S5和S7。操作620中的计算可以由第一至第四局部校正子发生器431、433、435和437来执行。
在1比特误差校正(即,1比特ECC)的情况下,可以仅使用第一局部校正子S1立即检测出误差位置。因此,一旦在操作620中计算出第一局部校正子S1,1比特误差位置检测器451就可在操作621开始计算误差位置。在操作622中,系数计算器441可计算误差位置方程的系数,操作621和622可以同时执行。在系数计算器441完成误差位置方程的系数的计算之后,基于在操作622中计算的系数来在操作630中确定误差类型。误差确定器442可执行操作630。如果误差类型被确定为1比特误差,即,第一误差类型,则基于已经在操作621中计算出的1比特误差位置信息来在操作640中校正1比特误差。如果误差类型被确定为多比特,即,第二误差类型,则在操作650中,多比特误差检测器452可计算多比特误差位置,并且在操作660中,校正多比特误差。主机接口和逻辑单元330和/或主机200可以执行操作640和660。
尽管上面参照图3中示出的组件描述了图5中示出的方法,但是根据设计选择,其他组件的组合也可用于实现本方法。此外,图5中示出的方法可以用软件或者硬件和软件的结合来实现。同样,可以用软件来实现参照图3中的半导体存储装置300示出的任何一个或多个功能性组件。
图6是示出根据本发明的一些实施例如何在时域中执行误差校正的时序图。
在时间T0和T1之间的数据读取和校正子计算过程中,ECC字(即,信息数据和校正子数据)被从存储单元阵列中读取,局部校正子S0、S1、S2...S2n-1被计算。该操作需要预定的读取持续时间Tt。然而,根据本发明的一些实施例,系数计算和1比特误差位置计算在时间T1同时开始。
基于计算出的系数σ0至σn确定误差类型。如果确定为1比特误差,则省略多比特误差计算。因此,在1比特误差的情况下,ECC周期可在时间T4结束。在这种情况下,ECC周期时间对应于用于数据读取和校正子计算的时间Tt以及用于1比特误差位置计算的时间Tcs1的和,即Tt+Tcs1,该时间比出现2比特或更多比特误差的情形需要的时间短很多。
在多比特误差的情况下,ECC周期对应于“Tt+Tcoeff+Tcse”。然而,与传统ECC周期相比,由于在本发明的实施例中用于1比特误差校正的ECC周期被显著减小,因此平均ECC周期时间也显著小于多比特误差和单个比特误差的结合的情况。
在本发明的上述实施例中,误差校正电路包含专门计算1比特误差位置的计算器。换句话说,误差被分类为1比特误差和多比特误差。在本发明的可选实施例中,1比特或2比特误差可以被归类为第一误差类型,3比特或更多比特误差可以被归类为第二误差类型。在该实施例中,当1比特或2比特误差出现时,可以基于方程(5)使用2比特误差位置计算器来快速地检测到误差比特的位置。当出现3比特或更多比特误差时,可以使用多比特误差位置检测器(如,多比特误差位置检测器452)来检测误差位置。
在本发明的进一步实施例中,误差可以被分类为三种类型或更多种类型,例如,第一误差类型、第二误差类型和第三误差类型,并且可以设置用于每个误差类型的误差位置检测器,从而对于第一误差类型,最快地检测到误差位置,并且对于第二误差类型,第二快速地检测到误差位置。用于各个误差类型的误差位置检测器可以并行操作,并且可以具有不同的误差位置检测时间。
根据本发明的实施例,维持了多比特ECC性能,而不用附加的奇偶校验数据,并且可以快速地对预定数量(例如,1或2)或更少数量的误差比特执行ECC。结果,平均ECC周期时间被减小,数据读取速度加快。
尽管已经参照本发明的示例性实施例示出和描述了本发明,但是本领域的普通技术人员应该理解,在不脱离由权利要求限定的本发明的精神和范围的情况下,可以作出各种形式和细节上的改变。
Claims (20)
1.一种误差校正电路,包括:
至少两个误差位置检测器,被配置为并行操作并具有不同的误差位置计算时间;
确定器,被配置为确定误差类型;
主控制器,结合到所述至少两个误差位置检测器和所述确定器上,所述主控制器被配置为基于误差类型和所述至少两个误差位置检测器的输出来确定最终误差位置。
2.如权利要求1所述的误差校正电路,还包括:
局部校正子发生器,被配置为使用误差校正编码的数据来计算至少两个局部校正子;
系数计算器,结合到所述局部校正子发生器上,被配置为使用所述至少两个局部校正子来计算误差位置方程的系数,
其中,所述至少两个误差位置检测器包括:
第一误差位置检测器,结合到所述局部校正子发生器上,被配置为使用所述至少两个局部校正子的一部分来计算第一误差位置;
第二误差位置检测器,结合到所述系数计算器上,被配置为基于误差类型选择性地计算第二误差位置。
3.如权利要求2所述的误差校正电路,其中,所述误差类型是第一误差类型和第二误差类型之一,其中,确定器基于计算出的误差位置方程的系数来确定误差类型。
4.如权利要求3所述的误差校正电路,其中,第一误差位置检测器被配置为使用所述至少两个局部校正子中的一个来计算编码的数据中的一个误差比特的位置,
其中,第二误差位置检测器被配置为当误差类型是第二误差类型时,计算编码的数据中的至少两个误差比特的位置。
5.如权利要求3所述的误差校正电路,其中,第一误差位置检测器被配置为计算编码的数据中的两个或更少的误差比特的位置,
其中,第二误差位置检测器被配置为当误差类型是第二误差类型时,计算编码的数据中的至少三个误差比特的位置。
6.如权利要求3所述的误差校正电路,还包括:误差校正器,结合到主控制器上,被配置为基于第一误差位置和第二误差位置之一来校正编码的数据。
7.如权利要求6所述的误差校正电路,其中,第二误差位置检测器被配置为在误差类型是第一误差类型时不运行,其中,误差校正器被配置为当误差类型时第一误差类型时,基于由第一误差位置检测器计算出的第一误差位置来校正编码的数据。
8.如权利要求6所述的误差校正电路,其中,误差校正器被配置为当误差类型时第二误差类型时,基于由第二误差位置检测器计算出的第二误差位置来校正编码的数据。
9.如权利要求3所述的误差校正电路,其中,第一误差位置检测器和系数计算器被配置为并行操作。
10.一种半导体存储装置,包括权利要求2中的误差校正电路,所述半导体存储装置还包括:
误差检查和校正(ECC)编码器,被配置为基于信息数据生成校正子数据,并通过将校正子数据加上所述信息数据来生成误差校正编码的数据;
存储核,结合到所述ECC编码器上,并被配置为存储所述编码的数据。
11.如权利要求10所述的半导体存储装置,其中,所述存储核包括电可擦写可编程只读存储器(EEPROM)单元。
12.如权利要求10所述的半导体存储装置,还包括:主机接口和逻辑单元,被结合到主控制器和ECC编码器上,所述主机接口和逻辑单元被配置为将从存储核读取的编码的数据和误差位置数据发送到主机,
其中,所述主机被配置为基于所述误差位置数据来校正编码的数据。
13.一种误差校正方法,包括:
读取编码的数据;
使用所述编码的数据计算多个局部校正子;
使用所述多个局部校正子的一部分计算第一误差比特位置数据;
使用所述多个局部校正子来计算多个比特位置方程系数。
14.如权利要求13所述的方法,其中,第一误差比特位置数据的计算至少部分地与所述多个比特位置方程系数的计算同时执行。
15.如权利要求14所述的方法,还包括:基于所述多个比特位置方程系数,确定误差类型是第一误差类型还是第二误差类型。
16.如权利要求15所述的方法,其中,第一误差类型指具有单个比特误差的误差,第二误差类型指具有多个比特误差的误差。
17.如权利要求15所述的方法,其中,第一误差类型指具有两个或更少比特误差的误差,第二误差类型指具有三个或更多比特误差的误差。
18.如权利要求15所述的方法,还包括:如果误差类型是第一误差类型,则基于第一误差位置数据校正编码的数据。
19.如权利要求15所述的方法,还包括:如果误差类型是第二误差类型,则基于所述多个比特位置方程系数计算第二误差比特位置数据。
20.如权利要求19所述的方法,还包括:基于第二误差比特位置数据校正编码的数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060080854A KR100833600B1 (ko) | 2006-08-25 | 2006-08-25 | 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치 |
KR1020060080854 | 2006-08-25 | ||
KR10-2006-0080854 | 2006-08-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101131876A true CN101131876A (zh) | 2008-02-27 |
CN101131876B CN101131876B (zh) | 2013-10-16 |
Family
ID=38973457
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101397390A Active CN101131876B (zh) | 2006-08-25 | 2007-07-30 | 误差校正电路和方法、包含该电路的半导体存储装置 |
Country Status (5)
Country | Link |
---|---|
US (2) | US8069389B2 (zh) |
JP (1) | JP5043562B2 (zh) |
KR (1) | KR100833600B1 (zh) |
CN (1) | CN101131876B (zh) |
DE (1) | DE102007038114A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101425958B1 (ko) * | 2007-09-06 | 2014-08-04 | 삼성전자주식회사 | 멀티-비트 데이터를 저장하는 메모리 시스템 및 그것의읽기 방법 |
US7945825B2 (en) * | 2007-11-25 | 2011-05-17 | Spansion Isreal, Ltd | Recovery while programming non-volatile memory (NVM) |
KR101437396B1 (ko) * | 2008-02-27 | 2014-09-05 | 삼성전자주식회사 | 레이턴시를 줄일 수 있는 에러 정정 블록을 포함하는메모리 시스템 및 그것의 에러 정정 방법 |
JP2010097600A (ja) * | 2008-09-22 | 2010-04-30 | Panasonic Corp | 半導体記録装置 |
EP2299362A3 (en) * | 2009-08-18 | 2011-05-04 | ViaSat, Inc. | Forward error correction for memories |
CN102279776B (zh) * | 2010-06-11 | 2015-06-24 | 无锡中星微电子有限公司 | 一种错误检查与纠正能力的测试方法及装置 |
US8739006B2 (en) * | 2010-06-30 | 2014-05-27 | International Business Machines Corporation | Reduced circuit implementation of encoder and syndrome generator |
JP6072449B2 (ja) * | 2012-07-09 | 2017-02-01 | ルネサスエレクトロニクス株式会社 | 半導体記憶回路及びその動作方法 |
US8640002B1 (en) * | 2012-07-10 | 2014-01-28 | Micron Technology, Inc. | Resolving trapping sets |
US8990655B2 (en) * | 2012-09-28 | 2015-03-24 | Intel Corporation | Techniques associated with error correction for encoded data |
US9065483B2 (en) | 2013-01-21 | 2015-06-23 | Micron Technology, Inc. | Determining soft data using a classification code |
KR102143517B1 (ko) | 2013-02-26 | 2020-08-12 | 삼성전자 주식회사 | 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법 |
US10041993B2 (en) * | 2013-09-05 | 2018-08-07 | Nxp Usa, Inc. | Safe operating area checking method and apparatus |
US10073731B2 (en) * | 2013-11-27 | 2018-09-11 | Intel Corporation | Error correction in memory |
US9306600B2 (en) | 2014-01-06 | 2016-04-05 | Micron Technology, Inc. | Read threshold calibration for LDPC |
CN107918571B (zh) * | 2016-10-08 | 2021-04-30 | 上海宝存信息科技有限公司 | 测试储存单元的方法以及使用该方法的装置 |
KR102579014B1 (ko) | 2018-11-06 | 2023-09-15 | 삼성전자주식회사 | 에러 정정 코드 디코더, 반도체 메모리 장치 및 메모리 시스템 |
US11709734B2 (en) * | 2021-04-30 | 2023-07-25 | Micron Technology, Inc. | Error correction with syndrome computation in a memory device |
US11694761B2 (en) | 2021-09-17 | 2023-07-04 | Nxp B.V. | Method to increase the usable word width of a memory providing an error correction scheme |
KR102387463B1 (ko) | 2021-10-21 | 2022-04-15 | 삼성전자주식회사 | 메모리 장치, 전자 장치 및 메모리 장치의 동작 방법 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61338U (ja) * | 1984-06-06 | 1986-01-06 | クラリオン株式会社 | 復号装置 |
JP2696212B2 (ja) * | 1987-05-06 | 1998-01-14 | セイコーエプソン株式会社 | 誤り訂正装置 |
US4961192A (en) * | 1988-07-29 | 1990-10-02 | International Business Machines Corporation | Data error detection and correction |
KR930002854B1 (ko) * | 1990-12-27 | 1993-04-12 | 삼성전자 주식회사 | 오류 정정방법 및 장치 |
JP3069389B2 (ja) * | 1991-05-27 | 2000-07-24 | 富士通株式会社 | Atmセル誤り処理システム |
US5383201A (en) * | 1991-12-23 | 1995-01-17 | Amdahl Corporation | Method and apparatus for locating source of error in high-speed synchronous systems |
JP3154607B2 (ja) * | 1993-12-28 | 2001-04-09 | 三菱電機株式会社 | 誤り訂正復号装置及び誤り訂正復号方法 |
US5577054A (en) * | 1994-09-13 | 1996-11-19 | Philips Electronics North America Corporation | Device and method for performing error detection on an interleaved signal portion, and a receiver and decoding method employing such error detection |
JP3272903B2 (ja) * | 1995-03-16 | 2002-04-08 | 株式会社東芝 | 誤り訂正検出回路と半導体記憶装置 |
KR0159216B1 (ko) * | 1995-12-28 | 1999-02-18 | 김광호 | 에러 정정 방법 |
KR100213254B1 (ko) * | 1996-10-18 | 1999-08-02 | 윤종용 | 에러 정정 방법 및 장치 |
JPH10229343A (ja) * | 1997-02-14 | 1998-08-25 | Hitachi Ltd | 誤り訂正処理方法 |
JP2000020409A (ja) | 1998-07-07 | 2000-01-21 | Seiko Epson Corp | 半導体記憶装置 |
KR100685360B1 (ko) * | 2000-01-31 | 2007-02-22 | 산요덴키가부시키가이샤 | 회로 규모를 억제하며 고속의 오류 정정을 행하는 것이 가능한 오류 정정 장치 및 복호 장치 |
US6691203B1 (en) * | 2000-08-30 | 2004-02-10 | Mosel Vitelic Corporation | Integrated controller to process both optical reads and optical writes of multiple optical media |
JP4112849B2 (ja) * | 2001-11-21 | 2008-07-02 | 株式会社東芝 | 半導体記憶装置 |
JP4154197B2 (ja) * | 2002-09-20 | 2008-09-24 | キヤノン株式会社 | 位置検出方法、位置検出装置及び露光装置 |
JP4299558B2 (ja) * | 2003-03-17 | 2009-07-22 | 株式会社ルネサステクノロジ | 情報記憶装置および情報処理システム |
JP2005011386A (ja) | 2003-06-16 | 2005-01-13 | Renesas Technology Corp | 誤り訂正装置 |
JP3743915B2 (ja) | 2003-12-15 | 2006-02-08 | 国立大学法人東京工業大学 | スポッティバイト誤り訂正・検出方法及び装置 |
US7228490B2 (en) * | 2004-02-19 | 2007-06-05 | Quantum Corporation | Error correction decoder using cells with partial syndrome generation |
JP2005242797A (ja) | 2004-02-27 | 2005-09-08 | Oki Electric Ind Co Ltd | エラー訂正回路 |
JP2006179131A (ja) | 2004-12-22 | 2006-07-06 | Fujitsu Ltd | メモリシステム及び半導体記憶装置 |
-
2006
- 2006-08-25 KR KR1020060080854A patent/KR100833600B1/ko active IP Right Grant
-
2007
- 2007-07-12 US US11/776,727 patent/US8069389B2/en active Active
- 2007-07-30 CN CN2007101397390A patent/CN101131876B/zh active Active
- 2007-07-30 DE DE102007038114A patent/DE102007038114A1/de not_active Withdrawn
- 2007-08-27 JP JP2007220270A patent/JP5043562B2/ja active Active
-
2011
- 2011-09-22 US US13/239,534 patent/US20120072810A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JP2008052743A (ja) | 2008-03-06 |
CN101131876B (zh) | 2013-10-16 |
US20080052564A1 (en) | 2008-02-28 |
US20120072810A1 (en) | 2012-03-22 |
DE102007038114A1 (de) | 2008-02-28 |
KR100833600B1 (ko) | 2008-05-30 |
JP5043562B2 (ja) | 2012-10-10 |
KR20080018560A (ko) | 2008-02-28 |
US8069389B2 (en) | 2011-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101131876B (zh) | 误差校正电路和方法、包含该电路的半导体存储装置 | |
JP4988731B2 (ja) | フラッシュエラー訂正 | |
US7562283B2 (en) | Systems and methods for error correction using binary coded hexidecimal or hamming decoding | |
US8010875B2 (en) | Error correcting code with chip kill capability and power saving enhancement | |
JP3234130B2 (ja) | 誤り訂正符号復号化方法およびこの方法を用いる回路 | |
US9246516B2 (en) | Techniques for error correction of encoded data | |
CN101211667A (zh) | 降低误纠概率的纠错电路和方法和包括该电路的存储设备 | |
CN104798047A (zh) | 错误检测和校正装置及方法 | |
US20120144272A1 (en) | Probabilistic multi-tier error correction in not-and (nand) flash memory | |
US10635528B2 (en) | Memory controller and method of controlling memory controller | |
Pontarelli et al. | Low delay single symbol error correction codes based on reed solomon codes | |
EP1463995A2 (en) | Double error correcting code system | |
CN102017425A (zh) | 用于执行级联纠错的方法和系统 | |
US20140089768A1 (en) | Error location search circuit, and error check and correction circuit and memory device including the same | |
US10243588B2 (en) | Error correction code (ECC) decoders sharing logic operations, memory controllers including the error correction code decoders, and methods of decoding error correction codes | |
KR102064508B1 (ko) | 오류 검출 정정 회로 및 이를 포함하는 메모리 장치 | |
US10523240B2 (en) | Methods and apparatus to determine and apply polarity-based error correction code | |
CN110908827A (zh) | 用于NAND Flash闪存纠错的并行BCH解码方法 | |
US20160283325A1 (en) | Errors and erasures decoding from multiple memory devices | |
CN112286716A (zh) | 一种1024字节的存储系统差错控制模块 | |
CN103151078A (zh) | 一种存储器检错纠错码生成方法 | |
KR102021560B1 (ko) | 오류 위치 탐색 회로, 그리고 그것을 포함하는 오류 검출 정정 회로 및 메모리 장치 | |
US20230089736A1 (en) | Single-cycle byte correcting and multi-byte detecting error code | |
JP2820124B2 (ja) | 主記憶装置 | |
Gherman et al. | Sequential Decoders for Binary Linear Block ECCs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |