CN101572125A - 错误更正电路及其方法 - Google Patents
错误更正电路及其方法 Download PDFInfo
- Publication number
- CN101572125A CN101572125A CN200810096068.9A CN200810096068A CN101572125A CN 101572125 A CN101572125 A CN 101572125A CN 200810096068 A CN200810096068 A CN 200810096068A CN 101572125 A CN101572125 A CN 101572125A
- Authority
- CN
- China
- Prior art keywords
- sign indicating
- indicating number
- data segment
- data
- check
- 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
Images
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/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
- H03M13/356—Unequal error protection [UEP]
-
- 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/1068—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 in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3707—Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3707—Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
- H03M13/3715—Adaptation to the number of estimated errors or to the channel state
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
- G11B2020/1836—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a Reed Solomon [RS] code
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/60—Solid state media
- G11B2220/61—Solid state media wherein solid state memory is used for storing A/V content
-
- 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
-
- 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/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/1515—Reed-Solomon 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
Abstract
本发明提供一种错误更正电路及其方法,适用于在一储存媒体上存取一数据。该方法的步骤如下:首先,将部分的数据以及全部的数据编码,以针对部分的数据内容来产生一部分查核码,且针对全部的数据内容产生一全部查核码;之后,使用部分查核码对相对应的部分的数据以及部分查核码进行解码,进而从解码结果修正部分的数据以及部分查核码的错误位;随后再使用全部查核码对数据以及全部查核码进行解码,进而修正数据以及全部查核码的错误位;最后将已更错的数据输出。每个所产生的查核码皆对所对应的数据内容有相同的更错能力,藉此在不增加硬件或软件的复杂度的前提下,达到倍数地提高错误更正能力的目的。
Description
技术领域
本发明是关于一种储存媒体的错误更正电路及其方法,尤指一种提高更正错误位数目的电路及其方法。
背景技术
随着科技的发展,许多作业程序渐渐使用数字方式处理,为了储存与日俱增的数字数据以及成本的考虑下,纷纷以研发大容量、体积小的储存媒体为目标,以因应市场需求。
然而,数据传递于储存媒体之间的过程,可能会因为外部干扰或杂讯使得数据的内容产生错误,例如将数据储存于电子产品里的快闪存储器的过程中,数据内的若干位(bit)因杂讯的干扰而改变其值后储存于快闪存储器,之后若从存储器读取该数据时,便接收到错误的数据。为了解决上述问题,因而发展出错误更正码(Error Correcting Code)的技术,利用将数据运算后产生的查核码(Parity)达到检测或更正错误位的功效。
请参考图1,该图是为采用已知的错误更正码来处理数据流的一具体实施例示意图。目前提出的错误更正编码方法,以BCH Code演算法为例,将一欲储存于存储器中的数据流先分割为多个固定长度的数据段,如图1所示,数据流分割成N+1个数据段A0,A1,...,AN,每个数据段的长度皆为k位,其经过错误更正码运算后产生(n-k)位的查核码A0#,A1#,...,AN#,其中每一数据段Ai会附加其相对应的查核码Ai#以形成n位的码字(codeword)。当欲从储存媒体中读取该数据流时,会先读取第一个码字并进行解码程序,即利用查核码A0#对数据段A0进行侦错及更错动作,之后针对每个码字重复上述解码程序,最后才将修正过后的数据段A0,A1,...,AN依序合并为数据流输出。
已知的BCH Code错误更正编码演算法设计成有t位的错误更正能力,即表示利用查核码最多可更正每一码字中t个错误位(包括查核码Ai#和数据段Ai的位),其中t值为本发明所属领域技术人员所公知的,因而于此不予以赘述。
即使有上述错误更正码的辅助,在现今半导体制造工艺技术不断的提升下,储存媒体的单位体积的储存容量不断扩充,但亦相对造成单位容量下的错误率提高。因此,如何提升错误更正能力(Error Correction Capability)且不会使得硬件的复杂度相对提升,又在不增加硬件的制造成本的前提下,实现一个简易的硬件修正及软件的错误更正能力实作方法,为一有待解决的议题。
发明内容
有鉴于此,本发明提出的一种错误更正方法,是将数据段中的一部分内容进行编码以产生一部分查核码,并将数据段编码后产生一全部查核码,该部分查核码与该全部查核码具有等量位的除错能力,期在不增加硬件或软件的复杂度的前提下,能倍数地提高错误更正能力。
因此,本发明的目的在于提供一种错误更正方法,其能提升数据流的错误更正能力。
本发明揭示一种错误更正电路,其应用于一储存媒体存取一数据流,该错误更正电路特别包括有多个移位暂存器以及多个辅助移位暂存器。该移位暂存器接收该数据流以产生一全部查核码;而该辅助移位暂存器用来接收部分的该数据流以产生一部分查核码。储存媒体利用该全部查核码以及该部分查核码来更正该数据流。
本发明又揭示一种错误更正方法,其适用于在一储存媒体上存取一数据。该方法的步骤如下:首先,当欲将该数据储存于储存媒体时,会进行一编码程序,其包括将部分的数据以及全部的数据编码,以针对部分的数据内容来产生一部分查核码,且针对全部的数据内容产生一全部查核码;之后若欲从储存媒体中读取该数据时,即进行一解码程序,其包括以下步骤:先使用部分查核码对相对应的部分的数据以及部分查核码进行解码,进而从解码结果修正部分的数据以及部分查核码的错误位;随后再使用全部查核码对数据(包括已修正的部分数据内容)以及全部查核码进行解码,进而修正数据以及全部查核码的错误位;最后将已更错的数据输出。
于本发明的一具体实施例中,错误更正方法适用于将一原始数据流存取于储存媒体中,因而在进行编码程序之前,会先将原始数据流分割成至少一相同长度的数据段,其中该数据段即为上述的数据。数据段会一一地按照本发明所揭露的编码解码方法来处理,并于解码步骤之后,将所有已修正后的数据段依序合并为原始数据流输出。
于本发明之一具体实施例中,其中于进行该解码程序步骤中,还包括将部分的数据、部分查核码、数据以及全部查核码储存于储存媒体中的步骤。
于本发明的一具体实施例中,其中编码程序以及解码程序是采用博斯-查德胡里-霍昆格姆编码(Bose-Chaudhuri-Hocquenghem Code,BCH Code)演算法、里德所罗门编码(Reed-Solomon Code,RS Code)演算法或任一循环码(Cyclic Codes)。
于本发明的一具体实施例中,增加多个暂存器来暂存将部分的数据运算后产生的部分查核码,亦可利用编程控制的软件来对部分的数据运算后产生所述的部分查核码。
于本发明的一具体实施例中,其中所述的数据(数据段)的除错位数目会与数据经过分成若干部分后产生的部分查核码的数目成正比。
本发明的错误更正方法,将数据段分为至少一部分编码,再分别针对每一个部分内容的数据段以及全部数据段编码后产生部分查核码以及全部查核码,进而利用部分查核码以及全部查核码对所对应的数据段内容进行解码、除错的动作。其中每个所产生的查核码皆对所对应的数据内容有相同的更错能力,藉此在不增加硬件或软件的复杂度的前提下,达到倍数地提高错误更正能力的目的。
以上的概述与接下来的详细说明及附图,皆是为了能进一步说明本发明为达成预定目的所采取的方式、手段及功效。而有关本发明的其他目的及优点,将在后续的说明及图式中加以阐述。
附图说明
图1是为采用已知的错误更正码来处理数据流的一具体实施例示意图;
图2是为本发明所揭示的错误更正码的一具体实施例的电路架构图;
图3是为本发明所揭示数据段储存格式的一具体实施例示意图;以及
图4是为本发明所揭示错误更正方法的步骤流程图。
附图标号:
已知
A0、A1、Ai、AN:数据段
A0#、A1#、Ai#、AN#:查核码
本发明
A0、A1、Ai、AN:数据段
A0#、A1#、Ai#、AN#:查核码
XOR0、XOR1、XORi、XORn-k-1:XOR闸
g1、g2、gn-k-1:逻辑闸
b0、b1、bi、bn-k-1:移位暂存器(shift register)
b0’、b1’、bi’、bn-k-1’:辅助移位暂存器
a00、a01、a02、aij:数据段
a00#、a01#:部分查核码
SW:开关
31:数据段区块
33:查核码区块
S401~S435:各个步骤流程
具体实施方式
本发明提出的一种错误更正方法,是将数据段分为若干部分编码,其中分别针对部分内容的数据段以及全部数据段编码后产生部分查核码以及全部查核码,进而利用部分查核码以及全部查核码对所对应的数据段内容进行解码、除错的动作,进而在不增加硬件或软件的复杂度的前提下,能倍数地提高错误更正能力。
本发明主要技术特征在于利用错误更正码电路来对数据段作处理的方式,其是有关于数据段存取于一储存媒体的流程,以下就仅提出必要的硬件架构及其动作,然而,本领域技术人员得知,除了以下所提及的构件、特征,将数据段记录于储存媒体的行为当然涉及其他的必要步骤及元件,因此,不应以本实施例揭露者为限。
一般常见的错误更正编码技术(如BCH Code,以下皆以BCH Code来举例说明)是利用循环查核码来修正错误位,BCH Code定义了参数(n,k,t),其表示每次编码的数据段的长度必须固定为k位,且经过BCH Code运算后会产生(n-k)位的查核码,其中每一数据段会附加其相对应的查核码以形成n位的码字(codeword)。BCH Code具有t位的错误更正能力,即表示利用查核码最多可更正每一码字中t个错误位(包括查核码和数据段的位),上述的BCHCode运作方式是为本发明所属领域技术人员所公知的,因而于此不予以赘述。
首先,请参阅图2,该图是为本发明所揭示的错误更正码的一具体实施例的电路架构图。当欲将一原始数据流记录于储存媒体上时,会先将原始数据流分成若干个数据段来做处理,为求方便说明,以下以原始数据流分割后的第一个数据段A0的处理流程来举例。如图2所示,该电路包括n-k个XOR闸XOR0,XOR1,...,XORn-k-1、n-k个移位暂存器(shift register)b0,b1,...,bn-k-1以及n-k个辅助移位暂存器b0’,b1’,...,bn-k-1’,其中上述每一暂存器能存放1位的数据,且移位暂存器bi与XOR闸XORi互相间隔地设置。
在编码的过程中,数据段A0特别取其中一部分的数据段a00同时处理,一具体实施例中,部分的数据段a00可定义为数据段A0前半部分的内容。当数据段A0以序列方式输入于电路时,经过移位暂存器b0,b1,...,bn-k-1的运算会对整个数据段A0产生一全部查核码A0#,且经过辅助移位暂存器b0’,b1’,...,bn-k-1’的运算会对部分的数据段a00产生一部分查核码a00#。一具体实施例中,是于电路中增加n-k个开关SW,当电路判断流经的数据内容为数据段a00时,则导通开关SW使辅助移位暂存器bi’得以运作,以产生部分查核码a00#。编码完成后,即可将全部查核码A0#、部分查核码a00#接在数据段A0的后面输出。
于本发明的一具体实施例中,除了增加辅助移位暂存器b0’,b1’,...,bn-k-1’来暂存部分查核码a00#,亦可使用原有的架构而利用一编程码控制的软件运算求出部分查核码a00#后储存使用。具体来说,编程码中提供一暂存阵列变数,用来暂存所接收的数据段A0以对其进行编解码运算,其中该暂存阵列变数的大小与数据段A0的大小相同。在编码时,暂存阵列变数会将前半部分填入0,而将其后半部分储存数据段A0的前半部数据段a00,以形成一暂时数据段,随即进行编码运算以对数据段A0的前半部分的数据段a00产生部分查核码a00#;而后暂存阵列变数接收整个数据段A0来进行编码运算,即产生全部查核码A0#。在解码时,利用部分查核码a00#来对暂存阵列变数中的数据先行查核,即对由0和数据段A0的前半部数据段a00所合成的暂时数据段做一除错,利用部分查核码a00#来对此时的暂存阵列变数内容进行修正,之后再利用全部查核码A0#将修正后的a00内容加上后半段的数据段a01进行解码即可。本发明亦可以依此方式对各个数据段做一除错的动作。
于本发明的一具体实施例中,其中所述的储存媒体选自于快闪存储器(Flash Memory)、及闸式快闪存储器(AND-Flash Memory)、或闸式快闪存储器(OR-Flash Memory)、反及闸式快闪存储器(NAND-Flash Memory)、只读存储器(Read Only Memory,ROM)、可擦除只读存储器(Erasable Read OnlyMemory,EROM)、电可擦除只读存储器(Electrically Erasable Read OnlyMemory,EEROM)、可擦除可编程只读存储器(Erasable Programmable ReadOnly Memory,EPROM)、或电可擦除可编程只读存储器(Electrically ErasableProgrammable Read Only Memory,EEPROM)的群组组合之一。
于本发明的一具体实施例中,错误更正码电路达成的编码程序以及解码程序是采用博斯-查德胡里-霍昆格姆编码(Bose-Chaudhuri-HocquenghemCode,BCH Code)演算法、里德所罗门编码(Reed-Solomon Code,RS Code)演算法或任一循环码(Cyclic Codes)。
接着,请参阅图3,该图是为本发明所揭示数据段储存格式的一具体实施例示意图。相关的编码电路及其运作流程请一并参考图2。如图3所示,储存媒体中会针对每一数据段提供数据段区块31以及查核码区块33的空间,以分别储存数据段内容以及查核码内容。数据段A0经过编码过程后,会将数据段A0(包括部分的数据段a00)储存于数据段区块31中,并把部分查核码a00#以及全部查核码A0#储存于查核码区块33中。其中部分查核码a00#对部分的数据段a00有t位的错误更正能力,全部查核码A0#亦对数据段A0有t位的错误更正能力。
于本发明的一具体实施例中,除了依照图3的储存格式{a00,a01,a00#,A0#},数据段以及查核码的储存顺序亦可以{a00,a01,A0#,a00#}、{a00,a00#,a01,A0#}等格式储存,甚至可以把所有编码产生的查核码另外记录于其他储存空间,而不与数据段内容相连接。具体来说,可将数据段存至一储存媒体内划分的一分页中,而将所有数据段经编码后产生的查核码集中地储存至上述同一个储存媒体内的另一分页中;或将数据段以及所有数据段经编码后产生的查核码分别储存至不同的储存媒体中,其储存格式的态样不应以本发明揭露者为限。
最后,请参阅图4,该图是为本发明所揭示错误更正方法的步骤流程图。按,其中相关的电路与数据处理的态样请同时参阅图2以及图3。又,本实施例主要是针对单一数据段的处理流程做说明,如图4所示,所述的错误更正方法包括有下列步骤:
首先,接收一欲储存于储存媒体中的原始数据流(步骤S401);编码电路会定义当接收到特定长度的数据流时,即开始编码,因而在接收原始数据流的过程中,会将原始数据流依序分成至少一数据段来处理(步骤S403),每一数据段为相同长度(k-bit),在此任一数据段,同样以数据段A0为例;当接收数据段A0的(前半)部分内容时,即利用图2的编码电路对部分的数据段a00编码以得到一部分查核码a00#(步骤S405);随后依照图3的格式将部分的数据段a00以及部分查核码a00#储存于储存媒体中(步骤S407);
接着,接收剩余的数据段a01,等得到数据段A0的全部数据后,便对数据段A0编码以得到一全部查核码A0#(步骤S409),随后依照图3的格式将剩余的数据段a01以及全部查核码A0#储存于储存媒体中(步骤S411),如此即完成单一数据段的编码程序,当然,之后亦须针对其他数据段Ai重复执行步骤S405~步骤S411作处理;
再来,储存媒体会判断是否接收一读取原始数据流的指令(步骤S413),若是,则先从储存媒体中读取部分查核码a00#的内容,利用部分查核码a00#对数据段a00以及部分查核码a00#进行解码程序(步骤S415);在解码过程中,会先判断是否有错误产生(步骤S417);若没有错误产生,便再利用全部查核码A0#对数据段A0以及全部查核码A0#进行解码程序(步骤S425);若有错误产生,部分查核码a00#再判断是否可以更正错误位(步骤S419);若错误位超过错误更正能力,则会发出错误处理信号告知使用者目前读取的数据有损毁情形(步骤S421);若错误位没超过错误更正能力,即将数据段a00以及部分查核码a00中错误的位修正(步骤S423);
随后继续利用全部查核码A0#对数据段A0以及全部查核码A0#进行解码程序(步骤S425),事实上,此时数据段A0中的数据段a00内容皆已经是正确的,所以此步骤是欲知晓剩余的数据段a01以及全部查核码A0#中的内容是否有误。在解码过程中,会先判断是否有错误产生(步骤S427);若没有错误产生,便将正确的数据段A0输出(步骤S435),否则,再判断是否可以更正错误位(步骤S429);若错误位超过错误更正能力,则会发出错误处理信号告知使用者目前读取的数据有损毁情形(步骤S431);否则即将数据段A0以及全部查核码A0#中错误的位修正(步骤S433);如此即完成单一数据段的解码程序。
当然,之后亦须针对其他数据段Ai重复执行步骤S415~步骤S433作处理;最后,将修正过后的数据段A0,A1,...,AN合并为原始数据流输出即可。
于本发明另一较佳实施例中,于步骤S413之后可先利用全部查核码A0#对数据段A0以及全部查核码A0#进行解码程序,若有错误产生,才开始从步骤S415往下执行,否则就直接将各数据段Ai合并输出。
又本发明的另一实施例中,于步骤S413之后可先进行步骤S425至步骤S433,利用全部查核码A0#对数据段A0以及全部查核码A0#进行解码并除错的程序,再执行步骤S415至步骤S433,以将各数据段Ai合并输出。
此实施例是考虑依目前半导体制造工艺的技术下,数据出错的情况仍属少见,因而先判断全部数据段Ai是否有错误,再视情况针对部分的数据段aij除错,如此可节省许多时间。
于本发明的一具体实施例中,亦可将每一数据段分为多个部分编码,进而倍数提升错误更正能力。具体来说,若将数据段A0分为三个部分的数据段a00、a01、a02,可产生两个部分查核码a00#、a01#以及一个全部查核码A0#,其中部分查核码a00#对数据段a00以及部分查核码a00#有t位的更错能力,部分查核码a01#对数据段a00~a01以及部分查核码a01#有t位的更错能力,以此类推,全部查核码A0#亦有t位的更错能力,相较于已知编码技术,着实提供三倍的错误更正能力。
为了达到将数据段A0分为多个部分个别编码处理,于电路硬件的实作上,可将原本图2中的辅助移位暂存器b0’,b1’,...,bn-k-1’改增设成一暂存区,其中该暂存区内提供多组辅助移位暂存器,通过开关SW的控制,使每组辅助移位暂存器个别暂存不同部分的数据段所产生的部分查核码,以供日后解码之用。藉此,仅需增加成本较少的移位暂存器,即可倍数提高除错率。
通过以上实例详述,当可知悉本发明的错误更正方法,将数据段分为至少一部分编码,再分别针对每一个部分内容的数据段以及全部数据段编码后产生部分查核码以及全部查核码,进而利用部分查核码以及全部查核码对所对应的数据段内容进行解码、除错的动作。其中每个所产生的查核码皆对所对应的数据内容有相同的更错能力,藉此在不增加硬件或软件的复杂度的前提下,达到倍数地提高错误更正能力的目的。
以上所述,仅为本发明的具体实施例的详细说明及图式而已,并非用以限制本发明,本发明的所有范围应以权利要求为准,任何本领域技术人员在本发明的领域内,可轻易思及的变化或修饰皆可涵盖在权利要求的范围内。
Claims (10)
1.一种错误更正方法,是应用于一储存媒体存取一数据流中,其中一数据流可分割为多个相同长度的数据段,其特征在于,所述方法包括下列步骤:
进行一编码程序,包括下列步骤:
将每一所述数据段至少分割成两部分数据段;
将每一所述部分数据段编码,以针对每一所述部分数据段对应产生一部分查核码;以及
将每一所述数据段编码,以对应产生一全部查核码;以及
进行一解码程序,包括下列步骤:
使用每一所述部分查核码对相对应的所述部分数据段以及所述部分查核码进行解码;
修正所述部分数据段以及所述部分查核码中的错误位;
使用每一所述全部查核码对相对应的所述数据段以及所述全部查核码进行解码;以及
修正每一所述数据段以及所述全部查核码的错误位。
2.如权利要求1所述的错误更正方法,其特征在于,于进行所述解码程序步骤之后还包括下列步骤:
将所有已修正后的多个所述数据段合并为所述数据流输出。
3.如权利要求1所述的错误更正方法,其特征在于,于进行所述解码程序步骤中,若所述部分数据段或所述数据段解码后有错误产生,才执行修正所述部分数据段或所述数据段的步骤。
4.如权利要求1所述的错误更正方法,其特征在于,利用编程码将每一所述部分数据段运算后以产生相对应的每一所述部分查核码。
5.如权利要求1所述的错误更正方法,其特征在于,所述数据段的总除错位数目会与所述数据段所包含所述部分查核码的数目成正比。
6.一种错误更正方法,应用于一储存媒体存取一数据流中,其中一数据流可分割为多个相同长度的数据段,其特征在于,所述方法包括下列步骤:
进行一编码程序,包括下列步骤:
将每一所述数据段至少分割成两部分数据段;
将每一所述部分数据段编码,以针对每一所述部分数据段对应产生一部分查核码;以及
将每一所述数据段编码,以对应产生一全部查核码;以及
进行一解码程序,包括下列步骤:
使用所述全部查核码对相对应的所述数据段以及所述全部查核码进行解码;以及
若所述数据段通过所述全部查核码解码后,其错误位超出错误更正能力的位数,则执行以下步骤:
使用每一所述部分查核码对相对应的所述部分数据段以及所述部分查核码进行解码;
修正所述部分数据段以及所述部分查核码的错误位;
使用所述全部查核码对相对应的所述数据段以及所述全部查核码进行解码;以及
修正所述数据段以及所述全部查核码的错误位。
7.如权利要求6所述的错误更正方法,其特征在于,于进行所述解码程序步骤中,若所述部分数据段有错误产生,才执行修正所述部分数据段的步骤。
8.如权利要求6所述的错误更正方法,其特征在于,利用编程码将每一所述部分数据段运算后以产生相对应的每一所述部分查核码。
9.如权利要求6所述的错误更正方法,其特征在于,所述数据段的总除错位数目会与所述数据段所包含所述部分查核码的数目成正比。
10.一种错误更正电路,应用于一储存媒体存取一数据流,其特征在于,所述错误更正电路特别包括有:
多个移位暂存器,接收所述数据流以产生一全部查核码;以及
多个辅助移位暂存器,接收部分的所述数据流以产生一部分查核码;
其中,所述储存媒体利用所述全部查核码以及所述部分查核码来更正所述数据流。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810096068.9A CN101572125B (zh) | 2008-04-30 | 2008-04-30 | 错误更正电路及其方法 |
US12/351,989 US20090276680A1 (en) | 2008-04-30 | 2009-01-12 | Error correction circuit and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810096068.9A CN101572125B (zh) | 2008-04-30 | 2008-04-30 | 错误更正电路及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101572125A true CN101572125A (zh) | 2009-11-04 |
CN101572125B CN101572125B (zh) | 2013-02-27 |
Family
ID=41231446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810096068.9A Expired - Fee Related CN101572125B (zh) | 2008-04-30 | 2008-04-30 | 错误更正电路及其方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20090276680A1 (zh) |
CN (1) | CN101572125B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541675A (zh) * | 2010-12-23 | 2012-07-04 | 慧荣科技股份有限公司 | 提升错误更正能力的方法、记忆装置及其控制器 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101286819B (zh) * | 2008-05-07 | 2010-05-12 | 中兴通讯股份有限公司 | 一种数据接收方法及装置 |
DE102009031310B4 (de) * | 2008-07-24 | 2019-12-19 | Atmel Corp. | Speichersystem, Leseverstärker, Verwendung und Verfahren zur Fehlerdetektion mittels Parity-Bits eines Blockcodes |
US8504847B2 (en) * | 2009-04-20 | 2013-08-06 | Cleversafe, Inc. | Securing data in a dispersed storage network using shared secret slices |
US8307261B2 (en) * | 2009-05-04 | 2012-11-06 | National Tsing Hua University | Non-volatile memory management method |
JP2013222272A (ja) * | 2012-04-13 | 2013-10-28 | Lapis Semiconductor Co Ltd | 半導体装置、機密データ管理システム、及び機密データ管理方法 |
US9619318B2 (en) * | 2013-02-22 | 2017-04-11 | Intel Deutschland Gmbh | Memory circuits, method for accessing a memory and method for repairing a memory |
JP6275427B2 (ja) * | 2013-09-06 | 2018-02-07 | 株式会社東芝 | メモリ制御回路およびキャッシュメモリ |
US9979507B1 (en) | 2014-07-30 | 2018-05-22 | Marvell International Ltd. | Methods and network device for generating communication frames in 1000BASE-T1 ethernet |
WO2018031952A1 (en) * | 2016-08-12 | 2018-02-15 | Cohere Technologies | Iterative multi-level equalization and decoding |
CN108228081B (zh) * | 2016-12-21 | 2021-03-02 | 伊姆西Ip控股有限责任公司 | 用于数据保护的方法和设备 |
CN107025948B (zh) * | 2017-05-17 | 2023-08-15 | 西安紫光国芯半导体有限公司 | 具有标志位指示数据长度的纠错功能的存储器和纠错方法 |
KR20190031787A (ko) * | 2017-09-18 | 2019-03-27 | 삼성전자주식회사 | 병렬 리드-모디파이-라이트 동작을 수행하는 메모리 장치 |
US11586503B2 (en) * | 2019-07-02 | 2023-02-21 | Dell Products L.P. | Faster rebuilding of 2-disk failure in raid by efficient, modular, diagonal, concurrent parity |
JP2022047393A (ja) * | 2020-09-11 | 2022-03-24 | キオクシア株式会社 | メモリシステム、半導体記憶装置及びデータ読み出し方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0636469A (ja) * | 1992-06-16 | 1994-02-10 | Sony Corp | 記録媒体および記録媒体記録方法 |
JP4784030B2 (ja) * | 2001-09-21 | 2011-09-28 | ソニー株式会社 | 記録装置、再生装置、記録方法、再生方法 |
US7055082B2 (en) * | 2002-10-29 | 2006-05-30 | Victor Company Of Japan, Ltd. | Information recording and reproducing apparatus |
US7197685B2 (en) * | 2003-01-02 | 2007-03-27 | Samsung Electronics, Co., Ltd. | Robust signal transmission in digital television broadcasting |
-
2008
- 2008-04-30 CN CN200810096068.9A patent/CN101572125B/zh not_active Expired - Fee Related
-
2009
- 2009-01-12 US US12/351,989 patent/US20090276680A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541675A (zh) * | 2010-12-23 | 2012-07-04 | 慧荣科技股份有限公司 | 提升错误更正能力的方法、记忆装置及其控制器 |
Also Published As
Publication number | Publication date |
---|---|
US20090276680A1 (en) | 2009-11-05 |
CN101572125B (zh) | 2013-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101572125B (zh) | 错误更正电路及其方法 | |
US7900118B2 (en) | Flash memory system and method for controlling the same | |
CN101882467B (zh) | Ecc参数可配置的存储器控制装置 | |
US9098445B2 (en) | Selection of redundant storage configuration based on available memory space | |
CN104115126A (zh) | 使用代数码的多阶段ecc编码 | |
CN101826368B (zh) | 数据扫描方法和扫描装置 | |
CN101183565A (zh) | 存储介质中数据校验方法 | |
CN101573694A (zh) | 用于小数据结构的ecc保护的方法、系统和装置 | |
CN108399109A (zh) | 软解码调度 | |
CN102298969A (zh) | 多重错误更正码的可配置编码系统及方法 | |
CN105808170B (zh) | 一种能够修复单磁盘错误的raid6编码方法 | |
CN101281788A (zh) | 闪存系统及其控制方法 | |
CN103238139A (zh) | 解码包含集成的数据和信头保护的编码数据 | |
CN110457160B (zh) | 一种纠错方法及装置 | |
CN101794623B (zh) | 存储设备的纠错装置及方法 | |
CN102236585A (zh) | 提升错误更正能力的方法以及相关的记忆装置及其控制器 | |
CN101800560A (zh) | Flash控制器中BCH编译码的纠错能力扩展方法 | |
CN101499325B (zh) | 一种具有可变纠错能力的非易失性存储系统及方法 | |
CN101908378B (zh) | 闪存的控制器以及于闪存存取数据的方法 | |
CN102057580A (zh) | 针对多标准的可重新配置的Turbo交织器 | |
CN110518919B (zh) | 低密度奇偶校验码的分层译码方法和系统 | |
CN102063342A (zh) | 一种闪存存储设备数据的管理方法及系统 | |
CN110113058B (zh) | 编译码方法、装置、设备及计算机可读存储介质 | |
CN104681095B (zh) | 储存装置及其操作方法 | |
JP6818667B2 (ja) | メモリシステム |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130227 Termination date: 20150430 |
|
EXPY | Termination of patent right or utility model |