CN103426482A - 存储器控制器、存储装置及纠错方法 - Google Patents

存储器控制器、存储装置及纠错方法 Download PDF

Info

Publication number
CN103426482A
CN103426482A CN2012103333712A CN201210333371A CN103426482A CN 103426482 A CN103426482 A CN 103426482A CN 2012103333712 A CN2012103333712 A CN 2012103333712A CN 201210333371 A CN201210333371 A CN 201210333371A CN 103426482 A CN103426482 A CN 103426482A
Authority
CN
China
Prior art keywords
check bit
mentioned
user data
error correction
bit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2012103333712A
Other languages
English (en)
Inventor
鸟井修
菅野伸一
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Publication of CN103426482A publication Critical patent/CN103426482A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution

Abstract

本发明提供存储器控制器、存储装置及纠错方法,可根据错误的规模适当地改变用于纠错的校验位数。存储器控制器具备:按每个用户数据生成第1校验位,对2个以上的用户数据和对应的第1校验位,生成第2校验位的编码部;控制第1校验位及第2校验位向非易失存储器的写入及从非易失性存储器的读出的存储器接口部;以及使用从非易失性存储器读出的用户数据、第1校验位及第2校验位进行纠错解码处理的解码部;其中,使用第1校验位和第2校验位的两方的纠错解码处理对2个以上的用户数据、第1校验位和第2校验位具有至少A(第1校验位的纠正能力)+B(第2校验位的纠正能力)比特的纠正能力。

Description

存储器控制器、存储装置及纠错方法
关联申请的参照
本申请享受2012年5月14日申请的美国专利申请号61/646,490的优先权,该美国申请的全内容在本申请中援用。
技术领域
本实施方式涉及存储器控制器、存储装置及纠错方法。
背景技术
可能产生从存储器读出存储器所存储的用户数据时变化为不同于本来值的值,或者,发送装置所发送的数据由接收装置接收时接收的数据变化为不同于本来值的值等的现象。
为了应对该问题,一般采用将用户数据纠错编码,生成校验位数据,以用户数据和校验位数据为组进行管理的方法。纠错码例如有BCH码和/或RS(里德-索罗门)码。
专利文献1:美国专利第7418644号说明书
专利文献2:日本特开2005-56397号公报
专利文献3:日本特开2009-211209号公报
发明内容
但是,传统技术中,对用户数据,无法根据错误的规模进行变更处理量的适当纠错。
因而,本发明所要解决的问题是提供对用户数据可以根据错误的规模进行变更处理量的适当纠错的存储器控制器、存储装置及纠错方法。
根据本实施方式的存储器控制器,是一种控制非易失性存储器的存储器控制器,其特征在于,具备:编码部,其使用同一生成多项式对2个以上的用户数据分别进行纠错编码处理,按每个用户数据生成第1校验位,对上述2个以上的用户数据和对应的上述第1校验位进行纠错编码处理,从而生成第2校验位;存储器接口部,其控制上述用户数据、上述第1校验位及上述第2校验位向上述非易失存储器的写入及从上述非易失性存储器的读出;以及解码部,其使用从上述非易失性存储器读出的上述用户数据、上述第1校验位及上述第2校验位进行纠错解码处理,
其中,上述第1校验位的纠正能力设为A(A是1以上的整数)比特,上述第2校验位的纠正能力设为B(B是1以上的整数)比特时,使用上述第1校验位和上述第2校验位的两方的上述纠错解码处理,对上述2个以上的用户数据、对应的上述第1校验位和对应的上述第2校验位,具有至少A+B比特的纠正能力。
根据其他实施方式的存储装置,其特征在于,具备:非易失性存储器;编码部,其使用同一生成多项式对2个以上的用户数据分别进行纠错编码处理,按用户数据生成第1校验位,对上述2个以上的用户数据和对应的上述第1校验位进行纠错编码处理,从而生成第2校验位;存储器接口部,其控制上述用户数据、上述第1校验位及上述第2校验位向上述非易失存储器的写入及从上述非易失性存储器的读出;以及解码部,其使用从上述非易失性存储器读出的上述用户数据、上述第1校验位及上述第2校验位进行纠错解码处理,
其中,上述第1校验位的纠正能力设为A(A是1以上的整数)比特,上述第2校验位的纠正能力设为B(B是1以上的整数)比特时,使用上述第1校验位和上述第2校验位的两方的上述纠错解码处理,对上述2个以上的用户数据、对应的上述第1校验位和对应的上述第2校验位,具有至少A+B比特的纠正能力。
另外,根据其他实施方式的纠错方法,是控制非易失性存储器的存储器控制器中的纠错方法,其特征在于,包含:使用同一生成多项式对2个以上的用户数据分别进行纠错编码处理,按每个用户数据生成第1校验位的步骤;对上述2个以上的用户数据和对应的上述第1校验位进行纠错编码处理,从而生成第2校验位的步骤;将上述用户数据、上述第1校验位及上述第2校验位写入上述非易失性存储器的步骤;从上述非易失性存储器读出上述用户数据、上述第1校验位及上述第2校验位的步骤;以及使用从上述非易失性存储器读出的上述用户数据、上述第1校验位及上述第2校验位进行纠错解码处理的步骤,
其中,上述第1校验位的纠正能力设为A(A是1以上的整数)比特,上述第2校验位的纠正能力设为B(B是1以上的整数)比特时,采用上述第1校验位和上述第2校验位的两方的上述纠错解码处理,对上述2个以上的用户数据、对应的上述第1校验位和对应的上述第2校验位,具有至少A+B比特的纠正能力。
根据上述构成的存储器控制器、存储装置及纠错方法,对用户数据,可以根据错误的规模,进行变更处理量的适当纠错。
附图说明
图1是第1实施方式的半导体存储装置的构成例的方框图。
图2是第1实施方式的编码运算的概念示图。
图3是第1实施方式的解码运算的概念示图。
图4是第1实施方式的编码运算顺序的一例流程图。
图5是第1实施方式的解码运算顺序的一例流程图。
图6是3阶段生成校验位的场合的编码运算的概念示图。
图7是3阶段生成校验位的场合的编码运算的另一例示图。
图8是第2实施方式的纠错方法及校验位存储方法的一例示图。
图9是第3实施方式的纠错方法及校验位存储方法的一例示图。
具体实施方式
以下参照附图,详细说明实施方式的存储器控制器、存储装置及纠错方法。另外,这些实施方式不是限定本发明。
(第1实施方式)
图1是第1实施方式的半导体存储装置(存储装置)的构成例的方框图。本实施方式的半导体存储装置1具备存储器控制器2和半导体存储器部(非易失性存储器)3。存储装置1可与主机4连接,图1表示了与主机4连接的状态。主机4例如是个人电脑、便携终端等的电子设备。
半导体存储器部3是非易失存储数据的非易失性存储器,例如是NAND存储器。另外,这里,作为半导体存储器部3,说明了NAND存储器的例,但是,作为半导体存储器部3,也可以采用NAND存储器以外的存储手段(存储器)。NAND存储器中,一般存在称为页(page)的写入单位(最小写入),按页单位进行写入。
存储器控制器2按照来自主机4的写入指令(请求),控制对半导体存储器部3的写入,按照来自主机4的读出指令(请求),控制从NAND存储器3的读出。存储器控制器2具备主机I/F(接口)21、存储器I/F22、控制部23、编码/解码部24。编码/解码部24具备编码部25和解码部26。主机I/F21、存储器I/F22、控制部23、编码部25及解码部26通过内部总线20连接。
主机I/F21实施按照与主机4之间的接口规格(标准)的处理,向内部总线20输出从主机4接收的命令、用户数据等。另外,主机I/F21向主机4发送从半导体存储器部3读出的用户数据、来自控制部23的响应等。
存储器I/F22根据控制部23的指示,控制将写入数据写入半导体存储器部3的处理及从半导体存储器部3的读出处理。
控制部23是统一地控制半导体存储装置1的各构成要素的控制部。控制部23从主机4经由主机I/F21接受命令的场合,按照该命令进行控制。例如,控制部23按照来自主机4的命令,指示存储器I/F22进行对半导体存储器部3的用户数据及校验位的写入、来自半导体存储器部3的用户数据及校验位的读出等。
编码部25根据在内部总线20传送的数据,实施纠错编码处理,生成校验位。纠错码可以采用任何码,例如,可以采用BCH码和/或RS(Reed-Solomon)码等。以下的说明中,说明了采用BCH码的例,但是对纠错码的种类没有限定,优选编码后可分离为信息数据和校验位的码。
解码部26根据从半导体存储器部3读出的用户数据及校验位,实施解码处理。用户数据无错误的场合,将从半导体存储器部3读出的用户数据直接向内部总线20输出,用户数据有错误的场合,用校验位纠错后,向内部总线20输出用户数据。
在进行纠错编码,保护在半导体存储器部3存储的用户数据时,根据用户数据,有可靠性不同,错误的发生概率不同的情况。为了保护可靠性低的用户数据,期望生成纠错能力高的校验位,而纠错能力高的校验位的尺寸变大。对可靠性高的用户数据,不需要纠错能力高的校验位,若与可靠性低的用户数据匹配,对全部用户数据生成纠错能力高的校验位,则在半导体存储器部3存储的校验位的数据量变多。另外,即使可靠性低的用户数据,在实际的大多数场合,往往无错误或错误数比最大的假定数少,用与可靠性高的用户数据对应的纠错能力就可充分应对。
本实施方式中,作为纠错码,采用可通过追加提高纠错能力的量的校验位阶段地进行提高纠错能力的编码的码。首先,实施第1阶段的纠错编码处理,按预订尺寸的用户数据生成校验位后,作为第2阶段的校验位,生成与多个用户数据和该用户数据所分别对应的多个第1阶段的校验位对应的校验位。而且,生成与第2阶段的校验位对应的校验位。这样,本实施方式中,逐个阶段改变作为编码对象的用户数据的数(第1阶段为一个,第2阶段为多个)。
通过根据多个用户数据和该用户数据所分别对应的多个第1阶段的校验位,生成第2阶段的校验位,在用户数据间存在错误数的差的场合,可以向可靠性低的一方的用户数据适当地采用第2阶段的校验位。例如,第1阶段的校验位生成为具有一定的纠错能力的场合,设为用户数据#1与用户数据#2比,错误数多,用户数据#2可用第1阶段的校验位纠正,用户数据#1不可用第1阶段的校验位纠正。该场合,合用第1阶段的校验位和第2阶段的校验位时的纠错能力若在用户数据#1及第1阶段的校验位内的错误数以上,则若用第1阶段的校验位和纠错后的第2阶段的校验位进行纠错处理,即使对用户数据#1也可以进行纠错。同样,用户数据#2的一方错误数多的场合,对用户数据#2,可以采用第1阶段的校验位和纠错后的第2阶段的校验位进行纠错处理。这样,本实施方式中,可以向错误数多的用户数据动态分配多的校验位,特别地,在用户数据间的可靠度的差(假定错误数的差)存在不明或者变化的可能性的场合,可以防止校验位的数据量的增大,提高纠错能力。另外,即使第1阶段的纠错在用户数据#1的纠错和用户数据#2的纠错的两方都失败的场合,也可能通过采用第1阶段的校验位和第2阶段的校验位进行纠错处理来纠错。
分多个阶段生成校验位的方法也可以考虑阶段地进行独立的编码处理的方法。例如,也可以考虑作为第1阶段,对用户数据生成具有预订的纠错能力的校验位A。作为第2阶段,根据用户数据,通过其他编码处理生成具有比预订的纠错能力高的纠错能力的校验位B。但是,该场合,校验位B与校验位A完全独立生成,因此,在采用校验位B的解码时,无法采用校验位A。另一方面,若采用本实施方式所述的追加提高纠错能力的量的校验位的码,则在采用第2阶段的校验位的解码时也可以采用第1阶段的校验位。从而,若合计的校验位尺寸(大小)相同,追加提高纠错能力的量的校验位的码与独立的多阶段的编码比,具有更高纠错能力,另外,若为相同纠错能力,则追加提高纠错能力的量的校验位的码的校验位的尺寸可减少。
例如,以2阶段生成校验位的场合,将第1阶段的校验位的纠正能力设为A(A是1以上的整数)比特,第2阶段的校验位的纠正能力设为B(B是1以上的整数)比特时,本实施方式中,通过采用第1阶段的校验位和第2阶段的校验位的两方,对第1阶段的校验位、该校验位的保护对象的用户数据和第2阶段的校验位,具有A+B比特以上的纠正能力。另外,如上述,预先生成第2阶段的校验位的校验位(后述的外部校验位),解码时,若采用利用外部校验位实施纠错后的第2阶段的校验位,则在第2阶段的校验位不含错误,因此,对于第1阶段的校验位和该校验位的保护对象的用户数据+第1阶段的校验位,具有A+B比特的纠正能力。
另外,以下,本实施方式中,主要说明以2阶段生成校验位的方法,但是,也可以3阶段以上实施同样的纠错处理及解码处理。n(n是2以上的整数)阶段生成校验位的场合,本实施方式中,第i(i是2以上n以下的整数)阶段的校验位的尺寸比以具有与利用第1至i阶段的全部校验位进行纠错时同等的纠错能力的方式而单独生成的校验位的尺寸小。
以下,说明本实施方式的纠错编码处理(以下,简称编码运算)及解码运算。图2是本实施方式的编码运算的概念示图。图2表示2阶段计算校验位的例。本实施方式的编码部25作为编码运算,如下按2阶段计算校验位,而且计算第2阶段的校验位的校验位(外部校验位)。
(1)用用户数据#1,通过G1(x)计算第1阶段的校验位(第1校验位)即校验位#1,用用户数据#2,通过G1(x)计算第1阶段的校验位即校验位#2。
(2)用用户数据#1+校验位#1+用户数据#2+校验位#2,通过生成多项式G2(x)计算第2阶段的校验位(第2校验位)即校验位#3。
(3)用校验位#3,通过Gp(x)计算校验位#4。
另外,Gi(x)(i=0,1,2)是生成多项式,Gi(x)将后述。
另外,图2中,将第1阶段计算校验位的用户数据的数,即成为第2阶段的校验位的保护对象的用户数据的数设为2个,但是,成为第2阶段的校验位的保护对象的用户数据的数也可以是3个以上。成为第2阶段的校验位的保护对象的用户数据若为m(m是2以上的整数)个,则(1)中,对m个用户数据分别计算校验位,(2)中,用用户数据#1+校验位#1+…+用户数据#m+校验位#m,通过生成多项式G2(x)计算第2阶段的校验位即可。
另外,这里,不是本实施方式所述的多阶段地生成的校验位,而由与G1(x)、G2(x)、…无关地选择的生成多项式Gp(x)生成的校验位称为外部校验位。
图3是本实施方式的解码运算的概念示图。图3中,表示进行图2所示的编码运算时的解码运算的顺序。本实施方式的解码部26作为解码运算,如下实施纠错。
(1)用校验位#1,实施用户数据#1+校验位#1的纠错,用校验位#2,实施用户数据#2+校验位#2的纠错。
(2)在(1)的纠错失败的场合,用校验位#4,实施校验位#3的纠错。
(3)用校验位#1、#2和纠错后的#3,实施用户数据#1+校验位#1+用户数据#2+校验位#2的纠错。另外,用户数据#1、用户数据#2中,若通过(1)的纠错而纠错成功,则对于该用户数据,也可以在(3)的处理中采用纠错后的用户数据及校验位。
另外,用校验位#1、校验位#2,分别实施用户数据#1+校验位#1、用户数据#2+校验位#2的解码处理时,对无错误的用户数据不实施纠错,直接输出读出的用户数据。另外,也可以预先向用户数据附加错误检测码,用错误检测码判定用户数据的错误的有无。
这里,说明本实施方式的生成多项式的选择方法。为了使与利用从校验位#1到校验位#i进行纠错相比,利用从校验位#1到校验位#(i+1)进行纠错具有更强的纠错能力,本实施方式中,例如,采用以下的生成多项式。
另外,以下的说明中,说明了采用BCH码时的编码运算方法及解码运算方法,但是不限于BCH码。
首先,进行BCH码的一般说明。用户数据、校验位、码字等是0或1的值的列,为了表现这些,存在各种方法,这里,用多项式表现说明。例如,用户数据10101通过多项式表现,可以表现为用户数据多项式x4+x2+1。
编码运算时,对用户数据多项式实施采用称为生成多项式的多项式的四则运算,计算校验位的多项式表现即校验位多项式。然后,通过组合用户数据多项式和校验位多项式,计算码多项式。
上述四则运算根据
·伽罗瓦体GF(2)
·伽罗瓦扩展域GF(2m)
·原始多项式
·最小多项式
进行,但是这些的详细情况省略。
伽罗瓦扩展域GF(2m)具有2m种的元,它们表现为0,1,α,α2,α3,…,αM-1,αM(M=2m-2)。
向用生成多项式计算的码多项式附加错误后,以作为结果(随着时间的经过而接受各种压力(stress)的结果)获得的多项式为接收多项式时,为了根据接收多项式计算错误多项式,用错误多项式可计算码多项式,必须适切选择生成多项式。
具体地说,为了可计算t比特的错误,生成多项式=0是设r为任意的整数,具有αr,αr+1,αr+2,…,α2t+r-2,α2t+r-1的2t个根即可(BCH界限)。
接着,根据以上的BCH码的说明,说明本实施方式中的生成多项式的选择方法。这里,设为进行n阶段的纠错编码处理,将第i(i=1,2,…,n)阶段的纠错编码处理所采用的生成多项式设为Gi(x)。另外,以下,在上标文字(指数的肩)和/或下标(下标文字)中采用附标注的文字(r1,bb1等)时,虽然用非上标或非下标的记号(r1,bb1等)记载,但是两者是相同的。
此时,
(1)将r1设为整数,G1(x)=0具有αr1,αr1+1,αr1+2,…,α2t1+r1-2,α2t1+r1-1的2t1(=2×t1)个根,
(2)将r2设为整数,G1(x)*G2(x)=0具有αr2,αr2+1,αr2+2,…,α2t2+r2-2,α2t2+r2-1的2t2个根,…
(n)将rn设为整数,G1(x)*G2(x)…*Gn(x)=0具有αrn,αrn+1,αrn+2,…,α2tn+rn-2,α2tn+rn-1的2tn个根,
以满足这样的n种条件的方式,选择n个生成多项式G1(x),G2(x),…,Gn(x)。另外,r1,r2,…,rn满足以下的关系。
·r2≤r1、r1+2t1-1≤r2+2t2-1
·r3≤r2、r2+2t2-1≤r3+2t3-1
·rn≤rn-1、rn-1+2tn-1-1≤rn+2tn-1
从而,tn>tn-1>…>t2>t1
进行上述的生成多项式选择后,t0=0、bi=ti-ti-1(1≤i≤n)时,通过Gi(x)计算的第i个校验位具有bi比特的纠正能力。
另外,进行上述的生成多项式选择后,对一个用户数据,若采用从第1阶段的校验位到第i阶段的校验位,则在用户数据+第1阶段的校验位+第2阶段的校验位+…+第i阶段的校验位内,存在到ti比特为止的错误时,可以纠正用户数据内的错误,获得用户数据本来应该取的值。
从而,进行上述的生成多项式选择后,若采用从第1阶段的校验位到第n阶段的校验位,则在用户数据+第1阶段的校验位+第2阶段的校验位+…+第n阶段的校验位内,存在到tn比特为止的错误时,可以纠正用户数据内的错误,获得用户数据本来应该取的值。
作为为了满足上述的n-1种的条件而选择的生成多项式的一例,说明r1=r2=…=rn=1的例。将以αi为根的GF(2)上的最小多项式置为Mi(x)。对于满足0<bb1<bb2<bb3<…<bbn的任意的整数bb1、bb2、bb3、…、bbn,如以下的式(1)那样,设置GGi(x)。
GGi(x)=M1(x)*M3(x)*M5(x)*…*M2bbi-1(x)(1≤i≤n)(1)
此时,以GGi(x)作为生成多项式的BCH码可进行到bbi比特为止的纠错。
如以下的式(2),若设置Gi(x),则
G0(x)=1、
Gi(x)=GGi(x)/GGi-1(x)
=M2bb(i-1)+1(x)*M2bb(i-1)+3(x)*…*M2bbi-1(1≤i≤n)(2)
另外,设为bb(i-1)=bbi-1
式(2)表示的生成多项式成为为了满足上述的n-1种的条件而选择的生成多项式的一例,上述的n-1种的条件中,设为bi=bbi-bbi-1,与设为ti=bbi的例相当。
图4是本实施方式的编码运算顺序的一例流程图。图4所示顺序如图2所示,表示了2阶段生成校验位时的编码运算顺序的一例。另外,图4中,将图2所示的用户数据#1、#2和校验位#1~#4设为一个编码处理单位,记载了一个编码处理单位的处理。首先,对于编码处理单位内的全部用户数据,用生成多项式G1(x)按每个用户数据分别计算第1阶段的校验位(图2的校验位#1、#2)(步骤S1)。接着,用生成多项式G2(x)计算用户数据#1+校验位#1+用户数据#2+校验位#2的校验位(校验位#3)(步骤S2)。用生成多项式Gp(x)计算校验位#3的校验位(校验位#4)(步骤S3)。
以上生成的各校验位与用户数据一起在半导体存储器部3存储。然后,从半导体存储器部3读出用户数据时,与用户数据一起读出对应的校验位。本实施方式中,对向半导体存储器部3的用户数据及校验位的存储方法及从半导体存储器部3的读出方法没有特别制约。但是,对于第2阶段的校验位和外部校验位,在用第1阶段的校验位可纠错对应的编码处理单位的全部用户数据的场合,不需要读出。因而,首先,对于用户数据,读出第1阶段的校验位,在通过第1阶段的校验位不可纠正的场合,也可以读出对应的第2阶段的校验位和外部校验位。
图5是本实施方式的解码运算顺序的一例流程图。图5所示顺序如图2所示,表示了2阶段生成校验位时的解码运算顺序的一例。另外,图5记载了一个编码处理单位的处理。
对于编码处理单位内的全部用户数据,用第1阶段的校验位(图2的校验位#1、#2)分别进行用户数据的纠错(步骤S11)。判断对编码处理单位内的全部用户数据的纠错是否成功(步骤S12),成功时(步骤S12Yes)结束处理。
另外,这里,合并以下的2个情况,仅仅表现为纠错成功。
·不用进行纠错,错误也不存在的情况
·错误存在,通过纠错可纠正错误的情况
编码处理单位内,纠错不成功的用户数据即使存在一个的场合(步骤S12No),也用外部校验位(校验位#4)进行第2阶段的校验位的纠错(步骤S13)。然后,用编码处理单位内的全部第1阶段的校验位(图2的校验位#1、#2)和纠错后的第2阶段的校验位进行纠错(步骤S14)。
步骤S14中,纠错失败的场合,解码部26向控制部23通知纠错失败。控制部23实施纠错失败时的预订顺序(例如,通知主机4读出的用户数据有错误等)。另外,即使步骤S13中纠错失败的场合,也向控制部23通知纠错失败。
另外,步骤S14的纠错中的纠正对象是用户数据#1+校验位#1+用户数据#2+校验位#2,而步骤S11中存在纠错成功的用户数据的场合,作为步骤S14的纠错处理的处理对象,若采用纠正后的用户数据+校验位,则实质的纠错处理对象成为纠错失败的用户数据+对应的第1阶段的校验位。例如,步骤S14中,也可以首先以没有进行采用第1阶段的校验位的纠错的用户数据和第1阶段的校验位作为处理对象,进行纠错处理,该纠错处理的纠错失败时,对于步骤S11中纠错成功的用户数据,作为处理对象,采用纠正后的用户数据+校验位,进行采用第2阶段的校验位的纠错处理。
例如,设第1阶段的校验位的纠错能力为K1比特,在用户数据#1+校验位#1内存在E1个错误,在用户数据#2+校验位#2内存在E2(E1<E2)个错误。设为用户数据#1用第1阶段的校验位纠错成功。该场合,若第2阶段的校验位的纠错能力设为K2比特,则用第1段的校验位及第2段的校验位(纠错后)可纠正的比特数为K1+K2比特。设为用户数据#1纠正完毕时,若E2为K1+K2以下,则用户数据#2的错误可纠正。另外,即使用户数据#1、#2的两方都在采用第1阶段的校验位的纠错中失败,若E1+E2<=K1+K2,则采用第1阶段的校验位和第2阶段的校验位也可以进行用户数据#1、#2的纠错。
以上的说明中,主要说明2阶段生成校验位的例,但是,3阶段以上也可以同样生成校验位。图6是3阶段生成校验位时的编码运算的概念示图。图6的例中,由用户数据#1~#4和校验位#1~#9构成纠错的编码处理单位。
(1)用用户数据#1,通过G1(x)计算第1阶段的校验位即校验位#1,用用户数据#2,通过G1(x)计算第1阶段的校验位即校验位#2,用用户数据#3,通过G1(x)计算第1阶段的校验位即校验位#3,用用户数据#4,通过G1(x)计算第1阶段的校验位即校验位#4。
(2)将用户数据#1+校验位#1+用户数据#2+校验位#2设为用户数据组#1-1,将用户数据#3+校验位#3+用户数据#4+校验位#4设为用户数据组#1-2。用用户数据组#1-1,通过生成多项式G2(x)计算第2阶段的校验位即校验位#5,用用户数据组#1-2,通过生成多项式G2(x)计算第2阶段的校验位即校验位#6。
(3)用校验位#5、#6,通过Gp1(x)计算校验位#7。
(4)用用户数据组#1-1+用户数据组#1-2,通过生成多项式G3(x)计算第3阶段的校验位即校验位#8。
(5)用校验位#8,通过Gp2(x)计算校验位#9。另外,Gi(x)(i=1,2,3)是上述生成多项式。Gp1(x)、Gp2(x)与上述的Gp(x)同样,是与Gi(x)无关地选择的生成多项式。
图6的例中,将用户数据#1~#4和校验位#1~#4设为用户数据组#2-1。例如,4阶段以上生成校验位的场合,与用户数据组#2-1同样,预先生成用户组#2-2,用用户数据组#2-1,通过生成多项式G3(x)生成第3阶段的校验位。然后,可以用用户数据组#2-2,通过生成多项式G3(x)生成第3阶段的校验位,用用户数据组#2-1+用户数据组#2-2,通过生成多项式G4(x)生成第4阶段的校验位,…,依次按阶段生成校验位。
另外,外部校验位如图6的例,可以按阶段生成外部校验位,也可以对图7所示第2阶段以上的校验位一次生成,也可以分几次生成。另外,图6的例中,也可以对校验位#5、#6、#8个别生成外部校验位。
图7是3阶段生成校验位时的编码运算的另一例示图。图7的例中,通过以下的顺序实施编码运算。图7的例中,对第2阶段以上的校验位,一次生成外部校验位。
(1)用用户数据#1,通过G1(x)计算第1阶段的校验位即校验位#1,用用户数据#2,通过G1(x)计算第1阶段的校验位即校验位#2,用用户数据#3,通过G1(x)计算第1阶段的校验位即校验位#3,用用户数据#4,通过G1(x)计算第1阶段的校验位即校验位#4。
(2)将用户数据#1+校验位#1+用户数据#2+校验位#2设为用户数据组#1-1,将用户数据#3+校验位#3+用户数据#4+校验位#4设为用户数据组#1-2。用用户数据组#1-1,通过生成多项式G2(x)计算第2阶段的校验位即校验位#5,用用户数据组#1-2,通过生成多项式G2(x)计算第2阶段的校验位即校验位#6。
(3)用用户数据组#1-1+校验位#5+用户数据组#1-2+校验位#6,通过生成多项式G3(x)计算第3阶段的校验位即校验位#7。
(4)用校验位#5、#6、#7,通过Gp(x)计算校验位#8。另外,Gi(x)(i=1,2,3)是上述的生成多项式。
解码运算时,按以下的顺序实施纠错。
(1)用校验位#1,实施用户数据#1+校验位#1的纠错,用校验位#2,实施用户数据#2+校验位#2的纠错,用校验位#3,实施用户数据#3+校验位#3的纠错,用校验位#4,实施用户数据#4+校验位#4的纠错。
(2)在(1)的纠错失败的场合,用校验位#8,实施校验位#5、#6、#7的纠错。另外,这里,在编码处理单位内的全部用户数据(用户数据#1~#4)纠错成功的场合,设为纠错成功,编码处理单位内即使用户数据中有一个发生纠错失败的场合,也设为纠错失败。
(3)用校验位#1、#2和纠错后的#5,实施用户组#2-1的纠错,用校验位#3、#4和纠错后的#6,实施用户组#2-2的纠错。另外,对于用户组内的全部用户数据中(1)的纠错成功的用户组,也可以不实施(3)的处理。另外,用户数据#1~#4中,若通过(1)的纠错而成功纠错,则对于该用户数据,在(3)的处理中也可以采用纠错后的用户数据及校验位。
(4)在(3)的纠错失败的场合,用校验位#1、#2和纠错后的#5、6、7,实施校验位#7的纠错。
4阶段以上生成校验位的场合,如下生成校验位。将用户数据组#1-1、#1-2设为第1用户组,用户数据组#2-1、#2-2设为第2用户组。j设为4以上的整数时,将一个以上的第(j-3)用户组及第(j-1)阶段的校验位(第(j-1)校验位)设为第(j-2)用户组。然后,通过对一个以上的第(j-2)用户组进行纠错编码处理,生成第j校验位。这些从j=4到j=k(k为4以上的整数)反复进行,从而生成从第4阶段到第k阶段的校验位。解码时,在采用用户数据、第1阶段至第(j-1)阶段的校验位的纠错解码处理失败的场合,用用户数据、第1阶段至第(j-1)阶段的校验位实施纠错解码处理。
另外,本实施方式中,对第2阶段以上的校验位生成外部校验位,解码时使第2阶段以上的校验位不含错误,但是,也可以不对第2阶段以上的校验位生成外部校验位。不生成外部校验位的场合,解码时,设为在第2阶段以上的校验位可能包含错误,实施纠错处理。
如上所述,本实施方式中,作为纠错码,采用可通过追加提高纠错能力的量的校验位进行阶段地进行提高纠错能力的编码的码,实施第1阶段的纠错编码处理,按预订尺寸的用户数据生成校验位后,作为第2阶段的校验位,生成与多个用户数据和该用户数据所分别对应的多个第1阶段的校验位对应的校验位。因而,可以向错误数多的用户数据动态分配多的校验位,防止校验位的数据量的增大,提高纠错能力。
(第2实施方式)
图8是第2实施方式的纠错方法及校验位存储方法的一例示图。本实施方式的半导体存储装置1的构成与第1实施方式同样。
图8中,表示了以半导体存储器部3作为NAND存储器时的用户数据及各校验位的存储方法的例。这里,设为在一个存储单元存储3bit的数据,向该3bit分配互异的页,将在1字线存储的页分别称为lower(L)页(下部页)、middle(M)页(中间页)、upper(U)页(上部页),但是,构成半导体存储器部3的NAND存储器不限于这样类型的存储器。图8的例中,在U页存储的用户数据设为用户数据U,在M页存储的用户数据设为用户数据M,在L页存储的用户数据设为用户数据L。
本实施方式中,编码部25按以下的顺序实施编码运算。
(1)用用户数据M,通过第1实施方式所述的生成多项式G1(x)生成第1阶段的校验位即校验位M,用用户数据L,通过生成多项式G1(x)生成第1阶段的校验位即校验位L。
(2)用用户数据M+校验位M+用户数据L+校验位L,通过第1实施方式所述的生成多项式G2(x)生成第2阶段的校验位即ML共同校验位。
(3)用用户数据U+ML共同校验位,通过生成多项式Gp(x),生成成为「用户数据U+ML共同校验位」的外部校验位的校验位U。另外,生成多项式Gp(x)与第1实施方式同样,是任意的生成多项式。
这样,本实施方式中,校验位U是用户数据U的校验位,同时也是与用户数据M及用户数据L对应的第2阶段的校验位即ML共同校验位的外部校验位。
上述生成的各校验位和各用户数据在半导体存储器部3存储时存储在图8的左下所示各页。即,在U页存储用户数据U、ML共同校验位及校验位U,在M页存储用户数据M及校验位M,在L页存储用户数据L及校验位L。
接着,说明本实施方式的解码运算。本实施方式的解码部26根据从半导体存储器部3读出的用户数据及校验位,实施纠错。读出用户数据U的场合,用校验位U实施用户数据U的纠错。读出用户数据M、L的场合,按以下的顺序实施纠错。这里,说明对用户数据M、L进行解码运算的例。
(1)用校验位M实施用户数据M+校验位M的纠错,用校验位L实施用户数据L+校验位L的纠错。
(2)在(1)的纠错失败的场合,用校验位U实施ML共同校验位的纠错。
(3)用校验位M、L和纠错后的ML共同校验位,实施用户数据M+校验位M+用户数据L+校验位L的纠错。另外,用户数据M、用户数据L中,若通过(1)的纠错成功纠错,则对于该用户数据,在(3)的处理中采用纠错后的用户数据及校验位。从而,采用ML共同校验位的纠错的纠正对象成为图8的右侧所示纠错失败的页(即错误率高的页)的用户数据。
通过以上的处理,ML共同校验位可以在M页的错误率高的场合用于M页纠正,ML共同校验位可以在L页的错误率高的场合用于L页纠正。这样,可以动态地在错误多的页的纠错中利用第2阶段的校验位,因此,例如,在M及L页的错误率比U页高的场合,即使M页的错误率和L页的错误率的比变化(或不明)时,也可以有效用校验位实现高纠错能力。另外,一般,各页的尺寸设为相同,各页的用户数据的尺寸相同,因此各页的校验位区域(为了存储校验位而分配的区域)的尺寸相同。根据本实施方式,在U页的错误率和M、L页的错误率显著不同的场合,在各页的尺寸设为同一,各页的用户数据的尺寸设为相同的情况下,可以将页的校验位存储区域用作M、L页的校验位存储区域,在页间的错误率存在差异的场合,可以根据错误率,有效使用校验位存储区域。
另外,以上的说明中,说明了对用户数据M、L进行解码运算的例,但是,仅仅对用户数据M,或仅仅对用户数据L进行解码运算的场合,上述的解码运算的(1)中,对解码运算对象的用户数据实施解码运算即可。
另外,对于从半导体存储器部3读出用户数据及校验位的顺序,例如,可以按如下顺序进行读出及解码运算。在读出仅仅M页、仅仅L页或M及L页的场合,在采用第1阶段的校验位的纠错(解码运算的(1))中,将读出对象的页从半导体存储器部3读出,作为解码运算对象。然后,在解码运算的(1)中纠错失败的场合,读出U页,用校验位U实施ML共同校验位的纠错(解码运算的(2))。读出及解码运算的顺序不限于该例,也可以在与进行用户数据M的第1阶段的纠错的同时,进行用户数据L的第1阶段的纠错。
另外,这里,将ML共同校验位存储在U页,但是,也可以将ML共同校验位、外部校验位存储在U页以外的其他页或不同于半导体存储器部3的其他存储装置。例如,也可以设置校验位专用页,在校验位专用页存储ML共同校验位、外部校验位。另外,例如,在假定U页的错误率与M、L页的错误率没有太大差别的场合等,对于U页,也可以与M、L页同样,生成第1阶段的校验位,将第2阶段的校验位作为UML共同校验位并进而使用用户数据U+校验位U生成。例如,也可以在校验位专用页存储UML共同校验位和UML共同校验位的外部校验位。以上所述以外的本实施方式的动作与第1实施方式同样。
如上所述,本实施方式中,将第2阶段的校验位(ML共同校验位)存储在与该校验位的保护对象的用户数据的存储页(M、L页)不同的页(U页)。因而,可以在错误多的页的纠错中动态利用第2阶段的校验位。另外,页之间的错误率存在差异的场合,可以根据错误率,有效使用校验位存储区域。
(第3实施方式)
图9是第3实施方式的纠错方法及校验位存储方法的一例示图。本实施方式的半导体存储装置1的构成与第1实施方式同样。
第2实施方式中,按在1页存储的用户数据单位生成第1阶段的校验位,而本实施方式中,将在1页存储的用户数据分割为多个用户数据,对分割的用户数据分别生成第1阶段的校验位。
图9的例中,将页内的用户数据分割为用户数据#1和用户数据#2的2个。编码运算中,如第1实施方式所述,作为第1阶段的校验位,通过G1(x),求出用户数据#1、用户数据#2的各自的校验位(校验位#1,#2)。校验位#3、#4的生成方法与第1实施方式同样。本实施方式的解码运算与第1实施方式同样。
本实施方式中,分割页内的用户数据,对分割的用户数据分别生成第1阶段的校验位,如第1实施方式所述,用用户数据#1+校验位#1+用户数据#2+校验位#2,通过G2(x)生成第2阶段的校验位(校验位#3),因此,在页内,用户数据的错误数不平衡的场合,可以在错误数多的分割的用户数据动态地采用多的校验位量。
另外,对1页的用户数据赋予校验位,根据该校验位进行纠错的场合,往往采用按每个1024B的用户数据的单位赋予校验位的方法和/或按每个2048B的用户数据的单位赋予校验位的方法等,即,按每个2的乘方的用户数据的单位赋予校验位,按每个该单位进行纠错。这里,若将上述单位的尺寸设为2倍,则可提高纠正能力,但是,存在纠正的成本(纠正电路的尺寸等)增加的问题。因而,传统的纠错方式中,有1024B单位的纠错中(要求的成本虽然可实现)要求的纠正能力无法实现,而2048B单位的纠错中(要求的纠正能力虽然可实现)要求的成本无法实现等、无法同时满足纠正能力和纠正成本的情况多的问题。本实施方式公开的校验位赋予和按多个单位进行纠错的方式中,与传统的纠错方式比较,可以自由设计纠正能力和纠正成本的平衡,同时满足纠正能力和纠正成本的可能性进一步提高。
另外,本实施方式中,将第2阶段的校验位即校验位#3和外部校验位即校验位#4与对应的用户数据存储在同一页,但是,也可以将校验位#3、校验位#4的两方或校验位#4存储在其他页和/或其他存储装置。
虽然说明了本发明的几个实施方式,但是这些实施方式只是例示,而不是限定发明的范围。这些新实施方式可以各种方式实施,在不脱离发明的要旨的范围,可以进行各种省略、置换、变更。这些实施方式及其变形是发明的范围和要旨所包含的,也是权利要求书记载的发明及其均等的范围所包含的。

Claims (11)

1.一种控制非易失性存储器的存储器控制器,其特征在于,具备:
编码部,其使用同一生成多项式对2个以上的用户数据分别进行纠错编码处理,按每个用户数据生成第1校验位,并通过对上述2个以上的用户数据和对应的上述第1校验位进行纠错编码处理,生成第2校验位;
存储器接口部,其控制上述用户数据、上述第1校验位及上述第2校验位向上述非易失存储器的写入及从上述非易失性存储器的读出;以及
解码部,其使用从上述非易失性存储器读出的上述用户数据、上述第1校验位及上述第2校验位进行纠错解码处理;
其中,上述第1校验位的纠正能力设为A(A是1以上的整数)比特,上述第2校验位的纠正能力设为B(B是1以上的整数)比特时,使用上述第1校验位和上述第2校验位的两方的上述纠错解码处理,对上述2个以上的用户数据、对应的上述第1校验位和对应的上述第2校验位,具有至少A+B比特的纠正能力。
2.根据权利要求1所述的存储器控制器,其特征在于,
上述解码部根据上述用户数据及上述第1校验位进行纠错解码处理,在该纠错解码处理失败的场合,使用上述用户数据、上述第1校验位及上述第2校验位实施纠错解码处理。
3.根据权利要求1或2所述的存储器控制器,其特征在于,
上述2个以上的用户数据按每个用户数据存储在上述非易失性存储器上的不同页。
4.根据权利要求1或2所述的存储器控制器,其特征在于,
上述2个以上的用户数据存储在上述非易失性存储器上的同一页。
5.根据权利要求1或2所述的存储器控制器,其特征在于,
上述第2校验位存储在与用于生成该第2校验位的用户数据不同的页。
6.根据权利要求1或2所述的存储器控制器,其特征在于,
上述编码部通过对上述第2校验位进行纠错解码处理,生成外部校验位,
上述解码部使用上述外部校验位进行上述第2校验位的纠错解码处理,
在使用上述用户数据、上述第1校验位及上述第2校验位的纠错解码处理中,使用纠错解码处理后的上述第2校验位。
7.根据权利要求1或2所述的存储器控制器,其特征在于,
上述编码部,将与一个上述第2校验位对应的上述用户数据、上述第1校验位及上述第2校验位设为第1用户数据组,通过对一个以上的上述第1用户数据组进行纠错编码处理,生成第3校验位,上述解码部在使用上述用户数据、上述第1校验位及上述第2校验位的纠错解码处理失败的场合,使用上述用户数据、上述第1校验位、上述第2校验位及上述第3校验位实施纠错解码处理。
8.根据权利要求7所述的存储器控制器,其特征在于,
上述编码部,在j设为4以上的整数时,通过从j=4到j=k(k是4以上的整数)为止反复进行以下处理生成第4至第k校验位:将一个以上的第(j-3)用户组及第(j-1)校验位设为第(j-2)用户组,通过对一个以上的第(j-2)用户组进行纠错编码处理,生成第j校验位;
上述解码部,在使用上述用户数据、上述第1至第(j-1)校验位的纠错解码处理失败的场合,使用上述用户数据、上述第1至第j校验位,实施纠错解码处理。
9.根据权利要求1或2所述的存储器控制器,其特征在于,
在生成第1至第n(n是2以上的整数)校验位的场合,用于生成上述第i校验位(i是1以上n以下的整数)的生成多项式Gi(x),在ri,ti设为整数的场合,如下选择,
r1,r2,…,rn满足以下的关系,
r2≤r1、r1+2t1-1≤r2+2t2-1
r3≤r2、r2+2t2-1≤r3+2t3-1
rn≤rn-1n-1+2tn-1-1≤rn+2tn-1
G1(x)×G2(x)×…×Gi(x)=0具有αri,αri+1,αri+2,…,α2ti+ri-2,α2ti+ri-1的2×ti个根。
10.一种存储装置,其特征在于,具备:
非易失性存储器;
编码部,其使用同一生成多项式对2个以上的用户数据分别进行纠错编码处理,按每个用户数据生成第1校验位,并通过对上述2个以上的用户数据和对应的上述第1校验位进行纠错编码处理,生成第2校验位;
存储器接口部,其控制上述用户数据、上述第1校验位及上述第2校验位向上述非易失存储器的写入及从上述非易失性存储器的读出;以及
解码部,其使用从上述非易失性存储器读出的上述用户数据、上述第1校验位及上述第2校验位进行纠错解码处理;
其中,上述第1校验位的纠正能力设为A(A是1以上的整数)比特,上述第2校验位的纠正能力设为B(B是1以上的整数)比特时,使用上述第1校验位和上述第2校验位的两方的上述纠错解码处理,对上述2个以上的用户数据、对应的上述第1校验位和对应的上述第2校验位,具有至少A+B比特的纠正能力。
11.一种纠错方法,是控制非易失性存储器的存储器控制器中的纠错方法,其特征在于,包含:
使用同一生成多项式对2个以上的用户数据分别进行纠错编码处理,按每个用户数据生成第1校验位的步骤;
通过对上述2个以上的用户数据和对应的上述第1校验位进行纠错编码处理,生成第2校验位的步骤;
将上述用户数据、上述第1校验位及上述第2校验位写入上述非易失性存储器的步骤;
从上述非易失性存储器读出上述用户数据、上述第1校验位及上述第2校验位的步骤;以及
使用从上述非易失性存储器读出的上述用户数据、上述第1校验位及上述第2校验位进行纠错解码处理的步骤;
其中,上述第1校验位的纠正能力设为A(A是1以上的整数)比特,上述第2校验位的纠正能力设为B(B是1以上的整数)比特时,使用上述第1校验位和上述第2校验位的两方的上述纠错解码处理,对上述2个以上的用户数据、对应的上述第1校验位和对应的上述第2校验位,具有至少A+B比特的纠正能力。
CN2012103333712A 2012-05-14 2012-09-10 存储器控制器、存储装置及纠错方法 Pending CN103426482A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261646490P 2012-05-14 2012-05-14
US61/646,490 2012-05-14

Publications (1)

Publication Number Publication Date
CN103426482A true CN103426482A (zh) 2013-12-04

Family

ID=49549606

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012103333712A Pending CN103426482A (zh) 2012-05-14 2012-09-10 存储器控制器、存储装置及纠错方法

Country Status (3)

Country Link
US (1) US9128864B2 (zh)
CN (1) CN103426482A (zh)
TW (1) TW201346922A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105245325A (zh) * 2014-07-04 2016-01-13 罗伯特·博世有限公司 用于处理数据的方法和设备
CN105895162A (zh) * 2016-03-30 2016-08-24 上海华虹宏力半导体制造有限公司 只读存储器及其数据读取方法
CN111048140A (zh) * 2018-10-15 2020-04-21 爱思开海力士有限公司 错误校正电路、存储器控制器及存储器系统
CN113485866A (zh) * 2021-07-02 2021-10-08 海光信息技术股份有限公司 译码方法及相关装置、电子设备和存储介质

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5674700B2 (ja) 2012-03-22 2015-02-25 株式会社東芝 符号化装置および符号化装置の制御方法、ならびに、記憶装置
US9311187B2 (en) * 2013-01-04 2016-04-12 Cleversafe, Inc. Achieving storage compliance in a dispersed storage network
US10013203B2 (en) * 2013-01-04 2018-07-03 International Business Machines Corporation Achieving storage compliance in a dispersed storage network
US9160371B2 (en) 2013-09-05 2015-10-13 Kabushiki Kaisha Toshiba Memory controller, storage device and memory control method
US20150074496A1 (en) * 2013-09-10 2015-03-12 Kabushiki Kaisha Toshiba Memory controller, storage device, and memory control method
US9405624B2 (en) * 2014-06-19 2016-08-02 Seagate Technology Llc On-die error detection and correction during multi-step programming
US20160070507A1 (en) * 2014-09-08 2016-03-10 Kabushiki Kaisha Toshiba Memory system and method of controlling memory device
WO2017040996A1 (en) 2015-09-02 2017-03-09 Astrapi Corporation Spiral polynomial division multiplexing
US10069664B2 (en) * 2015-09-02 2018-09-04 Astrapi Corporation Spiral polynomial division multiplexing
US11824694B2 (en) 2015-09-02 2023-11-21 Astrapi Corporation Systems, devices, and methods employing instantaneous spectral analysis in the transmission of signals
US10223198B2 (en) * 2016-02-18 2019-03-05 Micron Technology, Inc. Error rate reduction
CN109479043B (zh) 2016-05-23 2021-12-14 埃斯莱普有限公司 波形带宽压缩传输数据的方法和系统
US10977119B2 (en) * 2018-09-28 2021-04-13 Apple Inc. Techniques for utilizing volatile memory buffers to reduce parity information stored on a storage device
US10848364B2 (en) 2019-03-06 2020-11-24 Astrapi Corporation Devices, systems, and methods employing polynomial symbol waveforms
US10931403B2 (en) 2019-05-15 2021-02-23 Astrapi Corporation Communication devices, systems, software and methods employing symbol waveform hopping
US11184201B2 (en) 2019-05-15 2021-11-23 Astrapi Corporation Communication devices, systems, software and methods employing symbol waveform hopping
US11164652B2 (en) 2019-06-21 2021-11-02 Micron Technology, Inc. Two-layer code with low parity cost for memory sub-systems
CN111580750B (zh) * 2020-03-24 2022-08-23 浙江工商大学 一种解决stt-ram缓存写失败的方法
US11296729B2 (en) 2020-07-23 2022-04-05 Micron Technology, Inc. Data reliability for extreme temperature usage conditions in data storage

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080104481A1 (en) * 2006-10-30 2008-05-01 Fujitsu Limited Encoding device, decoding device, encoding/decoding device and recording/reproducing device magnetic head and method of producing the same
CN102201266A (zh) * 2010-03-24 2011-09-28 株式会社东芝 半导体存储器装置
US20110289358A1 (en) * 2010-05-19 2011-11-24 Cleversafe, Inc. Storing data in multiple dispersed storage networks

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4525838A (en) 1983-02-28 1985-06-25 International Business Machines Corporation Multibyte error correcting system involving a two-level code structure
JPS60120623A (ja) 1983-12-02 1985-06-28 Mitsubishi Electric Corp 復号化システム
US20050028067A1 (en) 2003-07-31 2005-02-03 Weirauch Charles R. Data with multiple sets of error correction codes
US7418644B2 (en) 2004-03-01 2008-08-26 Hewlett-Packard Development Company, L.P. System for error correction coding and decoding
US7844877B2 (en) 2005-11-15 2010-11-30 Ramot At Tel Aviv University Ltd. Method and device for multi phase error-correction
US8271848B2 (en) * 2006-04-06 2012-09-18 Alcatel Lucent Method of decoding code blocks and system for concatenating code blocks
JP5166074B2 (ja) 2008-02-29 2013-03-21 株式会社東芝 半導体記憶装置、その制御方法、および誤り訂正システム
US8230300B2 (en) * 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8321752B1 (en) * 2008-11-12 2012-11-27 Marvell International Ltd. Integrated 2-level low density parity check (LDPC) codes
JP5467270B2 (ja) * 2010-04-28 2014-04-09 国立大学法人 東京大学 データ入出力制御装置および半導体記憶装置システム
US8645789B2 (en) * 2011-12-22 2014-02-04 Sandisk Technologies Inc. Multi-phase ECC encoding using algebraic codes
JP5768022B2 (ja) 2012-03-19 2015-08-26 株式会社東芝 メモリコントローラ、記憶装置、誤り訂正装置および誤り訂正方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080104481A1 (en) * 2006-10-30 2008-05-01 Fujitsu Limited Encoding device, decoding device, encoding/decoding device and recording/reproducing device magnetic head and method of producing the same
CN102201266A (zh) * 2010-03-24 2011-09-28 株式会社东芝 半导体存储器装置
US20110289358A1 (en) * 2010-05-19 2011-11-24 Cleversafe, Inc. Storing data in multiple dispersed storage networks

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105245325A (zh) * 2014-07-04 2016-01-13 罗伯特·博世有限公司 用于处理数据的方法和设备
CN105245325B (zh) * 2014-07-04 2021-07-02 罗伯特·博世有限公司 用于处理数据的方法和设备
CN105895162A (zh) * 2016-03-30 2016-08-24 上海华虹宏力半导体制造有限公司 只读存储器及其数据读取方法
CN105895162B (zh) * 2016-03-30 2019-10-11 上海华虹宏力半导体制造有限公司 只读存储器及其数据读取方法
CN111048140A (zh) * 2018-10-15 2020-04-21 爱思开海力士有限公司 错误校正电路、存储器控制器及存储器系统
CN113485866A (zh) * 2021-07-02 2021-10-08 海光信息技术股份有限公司 译码方法及相关装置、电子设备和存储介质
CN113485866B (zh) * 2021-07-02 2023-05-09 海光信息技术股份有限公司 译码方法及相关装置、电子设备和存储介质

Also Published As

Publication number Publication date
TW201346922A (zh) 2013-11-16
US20130305120A1 (en) 2013-11-14
US9128864B2 (en) 2015-09-08

Similar Documents

Publication Publication Date Title
CN103426482A (zh) 存储器控制器、存储装置及纠错方法
CN103392172B (zh) 纠正存储阵列中的擦除
US8645789B2 (en) Multi-phase ECC encoding using algebraic codes
US8954828B2 (en) Memory controller
US8874995B2 (en) Partial-maximum distance separable (PMDS) erasure correcting codes for storage arrays
US8635508B2 (en) Systems and methods for performing concatenated error correction
EP1183605B1 (en) System and method for protecting data and correcting bit errors due to component failures
CN102024501A (zh) 存储器系统以及对存储器系统的控制方法
US9787329B2 (en) Efficient coding with single-error correction and double-error detection capabilities
CN104246706A (zh) 使用存储器特定奇偶校验矩阵的数据编码器和解码器
US11086716B2 (en) Memory controller and method for decoding memory devices with early hard-decode exit
WO2011150152A1 (en) Outer code protection for solid state memory devices
US6393597B1 (en) Mechanism for decoding linearly-shifted codes to facilitate correction of bit errors due to component failures
US5535227A (en) Digital information error correcting apparatus for single error correcting (SEC), double error detecting (DED), single byte error detecting (SBED), and odd numbered single byte error correcting (OSBEC)
US8627183B1 (en) Systems and methods for storing variable rate product codes
US9280412B2 (en) Memory with error correction configured to prevent overcorrection
CN107402860A (zh) 用于执行内建式自我测试的独立磁盘冗余数组译码系统
US11650877B2 (en) Detecting address errors
CN101931415B (zh) 编码装置及方法、译码装置及方法和纠错系统
Kim et al. Hamming product code with iterative process for NAND flash memory controller
US11711099B1 (en) Low gate-count encoding algorithm and hardware of flexible rate GLDPC ECC
CN105095012A (zh) 控制器、存储装置及控制方法
US8819331B2 (en) Memory system and memory controller
US11689219B1 (en) Method and system for error correction in memory devices using irregular error correction code components
US11892906B2 (en) Method for memory storage and access

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20131204