CN101957782B - 避免数据储存装置的数据发生移位错误的方法及控制器 - Google Patents

避免数据储存装置的数据发生移位错误的方法及控制器 Download PDF

Info

Publication number
CN101957782B
CN101957782B CN 200910055003 CN200910055003A CN101957782B CN 101957782 B CN101957782 B CN 101957782B CN 200910055003 CN200910055003 CN 200910055003 CN 200910055003 A CN200910055003 A CN 200910055003A CN 101957782 B CN101957782 B CN 101957782B
Authority
CN
China
Prior art keywords
code
bug patch
data
patch code
flash memory
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.)
Active
Application number
CN 200910055003
Other languages
English (en)
Other versions
CN101957782A (zh
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.)
Huiguo (Shanghai) Software Technology Co Ltd
Silicon Motion Inc
Original Assignee
Huiguo (Shanghai) Software Technology Co Ltd
Silicon Motion Inc
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 Huiguo (Shanghai) Software Technology Co Ltd, Silicon Motion Inc filed Critical Huiguo (Shanghai) Software Technology Co Ltd
Priority to CN 200910055003 priority Critical patent/CN101957782B/zh
Publication of CN101957782A publication Critical patent/CN101957782A/zh
Application granted granted Critical
Publication of CN101957782B publication Critical patent/CN101957782B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)
  • Stored Programmes (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供一种避免数据储存装置的数据发生移位错误的方法。首先,编码一数据为一错误修正码。接着,以一扰乱程序加扰该错误修正码,以得到一扰乱码供储存于一存储器中。接着,自该存储器读取该扰乱码,以得到一第一读出码。接着,以一解扰程序解扰该第一读出码,以得到一第一解扰错误修正码。接着,解码该第一解扰错误修正码,并决定是否该第一解扰错误修正码带有无法修正的错误。若该第一解扰错误修正码带有无法修正的错误,重新自该存储器读取该扰乱码以得到无移位错误的一第二读出码,解扰该第二读出码以得到一第二解扰错误修正码,并解码该第二解扰错误修正码。

Description

避免数据储存装置的数据发生移位错误的方法及控制器
技术领域
本发明有关快闪存储器,特别是有关于快闪存储器所输出的数据的移位错误。
背景技术
一般而言,为了避免数据在存储器中储存时发生的损毁,数据储存装置通常会于数据写入存储器之前事先将数据编码为错误修正码(error correction code,ECC)。因此,数据是以错误修正码的型态储存于存储器中。当数据储存装置将错误修正码自存储器读出时,必须将错误修正码解码,以还原错误修正码为数据。若错误修正码在解码过程中发现带有数据错误,数据储存装置便可在解码过程更正错误,而产生正确的数据。
图1是一数据储存装置104的区块图。数据储存装置104耦接至一主机102。数据储存装置104包括一控制器106及一快闪存储器108。当主机102要求数据储存装置104读取数据时,控制器106会先发送一芯片致能信号CE以致能快闪存储器108。当快闪存储器108启动后,接着控制器106会向快闪存储器108发送一连串的读取致能脉波RE。快闪存储器108会依据读取致能脉波RE的驱动将其中所储存的错误修正码数据输出至控制器106。控制器106收到错误修正码后,便会解码错误修正码,以还原数据。若错误修正码带有数据错误,控制器106可修正数据错误而得到正确的数据。最后,控制器106将数据传送至主机102,而完成数据的读取。
一般的错误修正码,例如BCH码(Bose,Ray-Chaudhuri,and Hocquenghem code)及RS码(Reed-Solomon code),皆为循环码(cyclic code)。循环码可修正一般的数据错误。然而,当循环码带有移位错误(shift errors)时,控制器106通常无法检测到循环码的移位错误,而将带有移位错误的循环码视为正确的数据。这样会严重影响数据的正确性,从而使数据储存装置的效能下降。
图2为图1的控制器106自快闪存储器108所接收的错误修正码发生移位错误的示意图。于时点t1,控制器106向快闪存储器108发送芯片致能信号CE,以启动快闪存储器108。在经过时间T后,控制器106于时点t2向快闪存储器108发送第一个读取脉波202。一般而言,快闪存储器108应在收到读取脉波202后读取其内的错误修正码数据并向控制器106回传读取所得的错误修正码的一个位组。然而,部分快闪存储器108可能因为工艺上的偏移需要较长的充电时间,而无法于时点t2前启动完毕,导致未收到读取脉波202。因此,控制器102于时点t2~t3间读取控制器106与快闪存储器108的数据总线,仅会得到错误的第一个位组210。
接着,控制器106于时点t3向快闪存储器108发送第二个读取脉波204,并读取快闪存储器108响应的错误修正码的位组D01。控制器106接着向快闪存储器108发送第三个读取脉波206,并读取快闪存储器108响应的错误修正码的位组D02。如此一来,控制器106所接收的错误修正码依序为错误位组210、正确位组D01、正确位组D02、…。由于控制器106并不知道所接收的第一个位组210是错误的,因此控制器106会得到具有一位组的移位错误的错误修正码。
图3A为快闪存储器108中原本储存的一页数据的示意图。假设快闪存储器108所储存的一页数据大小为8K位组,该8K位组的错误修正码分为8个1K位组大小的错误修正码字(code word)C1、C2、…、C8。每一错误修正码字C1、C2、…、C8分别包括数据部分M1、M2、…、M8及检查码P1、P2、…、P8。图3B为控制器106自快闪存储器108所接收的发生移位错误的一页数据的示意图。假设控制器106自快闪存储器108所接收的一页错误修正码包括8个1K位组大小的错误修正码字C1’、C2’、…、C8’。由于控制器106接收到错误的第一位组E,因此错误修正码字C1’包括错误位组E、数据M1、以及检查码P1的前一部分P11,而错误修正码字C2’包括检查码P1的最后一位P12、数据M2、以及检查码P2的前一部分P21。如此则控制器106所得到的每一错误修正码字C1’、C2’、…、C8’皆包含一位组的移位错误,但由于错误修正码字C1’、C2’、…、C8’为循环码,控制器106仅将移位错误E、P12、…、P72视为可修正的错误,而将带有移位错误的数据视为正确的数据。这样会严重影响数据的正确性,从而使数据储存装置104的效能下降。
发明内容
有鉴于此,本发明的目的在于提供一种避免数据储存装置的数据发生移位错误的方法,以解决现有技术存在的问题。首先,自一主机接收欲储存至该数据储存装置的一数据。接着,编码该数据为一错误修正码。接着,以一扰乱程序加扰(scramble)该错误修正码,以得到一扰乱码供储存于该数据储存装置的一存储器中。当该主机向该数据储存装置要求该数据时,自该存储器读取该扰乱码,以得到一第一读出码。接着,以一解扰程序解扰(descramble)该第一读出码,以得到一第一解扰错误修正码。接着,解码该第一解扰错误修正码,并决定是否该第一解扰错误修正码带有无法修正的错误。若该第一解扰错误修正码带有无法修正的错误,重新自该存储器读取该扰乱码以得到无移位错误的一第二读出码,解扰该第二读出码以得到一第二解扰错误修正码,并解码该第二解扰错误修正码。最后,将成功地解码该第一解扰错误修正码或该第二解扰错误修正码所得到的该数据传送至该主机。
本发明还提供一种避免数据储存装置的数据发生移位错误的方法。首先,自一主机接收欲储存至该数据储存装置的一数据。接着,编码该数据为一错误修正码。接着,以一交错(interleave)程序处理该错误修正码,以得到一交错码供储存于该数据储存装置的一存储器中。当该主机向该数据储存装置要求该数据时,自该存储器读取该交错码,以得到一第一读出码。接着,以一解交错(deinterleave)程序处理该第一读出码,以得到一第一解交错错误修正码。接着,解码该第一解交错错误修正码,并决定是否该第一解交错错误修正码带有无法修正的错误。若该第一解交错错误修正码带有无法修正的错误,重新自该存储器读取该交错码以得到无移位错误的一第二读出码,解交错该第二读出码以得到一第二解交错错误修正码,并解码该第二解交错错误修正码。最后,将成功地解码该第一解交错错误修正码或该第二解交错错误修正码所得到的该数据传送至该主机。
本发明还提供一种控制器,可避免一数据储存装置的数据发生移位错误。于一实施例中,该控制器包括一错误修正码编码器、一扰乱器(scrambler)、一解扰器(descrambler)、一错误修正码解码器、以及一控制模块。该错误修正码编码器将该数据储存装置自一主机接收的一数据编码为一错误修正码。该扰乱器以一扰乱程序加扰(scramble)该错误修正码,以得到一扰乱码供储存于该数据储存装置的一存储器中。当该主机向该数据储存装置要求该数据时,该解扰器以一解扰程序解扰(descramble)该存储器读取该扰乱码所输出的一第一读出码,以得到一第一解扰错误修正码。该错误修正码解码器解码该第一解扰错误修正码以得到该数据供传送至该主机,并决定是否该第一解扰错误修正码带有无法修正的错误。若该第一解扰错误修正码带有无法修正的错误,该控制模块指示该存储器重新读取该扰乱码以输出无移位错误的一第二读出码,指示该解扰器解扰该第二读出码以得到一第二解扰错误修正码,并指示该错误修正码解码器解码该第二解扰错误修正码以得到该数据供传送至该主机。
本发明还提供一种控制器,可避免一数据储存装置的数据发生移位错误。于一实施例中,该控制器包括一错误修正码编码器、一交错器(interleaver)、一解交错器(deinterleaver)、一错误修正码解码器、以及一控制模块。该错误修正码编码器将该数据储存装置自一主机接收的一数据编码为一错误修正码。该交错器以一交错(interleave)程序处理该错误修正码,以得到一交错码供储存于该数据储存装置的一存储器中。当该主机向该数据储存装置要求该数据时,该解交错器以一解交错(deinterleave)程序处理该存储器读取该交错码所输出的一第一读出码,以得到一第一解交错错误修正码。该错误修正码解码器解码该第一解交错错误修正码以得到该数据供传送至该主机,并决定是否该第一解交错错误修正码带有无法修正的错误。若该第一解交错错误修正码带有无法修正的错误,该控制模块指示该存储器重新读取该交错码以输出无移位错误的一第二读出码,指示该解交错器解交错该第二读出码以得到一第二解交错错误修正码,并指示该错误修正码解码器解码该第二解交错错误修正码以得到该数据供传送至该主机。
附图说明
为了让本发明的上述和其它目的、特征、和优点能更明显易懂,下面将配合附图对本发明的较佳实施例作详细说明,其中:
图1是一数据储存装置的区块图;
图2为图1的控制器自快闪存储器所接收的错误修正码发生移位错误的示意图;
图3A为快闪存储器中原本储存的一页数据的示意图;
图3B为控制器自快闪存储器所接收的发生移位错误的一页数据的示意图;
图4为依据本发明的避免数据发生移位错误的数据储存装置的区块图;
图5A为依据本发明的图4的控制器执行的数据储存方法的流程图;
图5B为依据本发明的图4的控制器执行的数据读取方法的流程图;
图6A为图5A的数据储存方法的一实施例的示意图;
图6B为图5B的数据读取方法在未发生数据移位错误情况下的一实施例的示意图;
图6C为图5B的数据读取方法在发生数据移位错误情况下的一实施例的示意图;
图7为依据本发明的避免数据发生移位错误的数据储存装置的另一实施例的区块图;
图8A为依据本发明的图7的控制器执行的数据储存方法的流程图;
图8B为依据本发明的图7的控制器执行的数据读取方法的流程图;
图9A为图8A的数据储存方法的一实施例的示意图;以及
图9B为图8B的数据读取方法在发生数据移位错误情况下的一实施例的示意图。
具体实施方式
图4为依据本发明的避免数据发生移位错误的数据储存装置404的区块图。于一实施例中,数据储存装置404为一存储卡。数据储存装置404耦接至一主机402,为主机402储存并读取数据。数据储存装置404包括一控制器406及一快闪存储器408。控制器406依据主机402的指示储存数据至快闪存储器408或自快闪存储器408读取数据。于一实施例中,控制器406包括错误修正码编码器412、扰乱器(scrambler)414、解扰器(descrambler)416、错误修正码解码器418、以及控制模块420。控制器406的运作将于后续详细叙述。
图5A为依据本发明的控制器406储存数据的方法500的流程图。首先,控制器406自主机接收一数据D1(步骤502)。接着,错误修正码编码器412编码数据D1为一错误修正码C1(步骤504)。于一实施例中,该错误修正码C1为BCH码(Bose,Ray-Chaudhuri,and Hocquenghem code)或RS码(Reed-Solomon code)等循环码。接着,扰乱器414以一扰乱程序加扰该错误修正码C1以得到一扰乱码S1(步骤506)。于一实施例中,该扰乱程序为一随机化(Randomize)程序。于另一实施例中,扰乱器414包括一虚拟干扰噪声码产生器及一XOR运算器。虚拟干扰噪声码产生器产生一虚拟干扰噪声码(Pesudo Noise),而XOR运算器对错误修正码C1及该虚拟干扰噪声码进行XOR运算,以产生该扰乱码S1。接着,控制器406将扰乱码S1储存于快闪存储器408中(步骤508),从而完成数据的储存动作。
图5B为依据本发明的控制器406读取数据的方法550的流程图。首先,控制器406指示快闪存储器408读取扰乱码,以得到一读出码S2(步骤552)。接着,解扰器416以一解扰程序解扰该读出码S2,以得到一错误修正码C2(步骤554)。于一实施例中,该解扰程序为一去随机化(Derandomize)程序。于另一实施例中,解扰器416包括一虚拟干扰噪声码产生器及一XOR运算器。虚拟干扰噪声码产生器产生一虚拟干扰噪声码(Pesudo Noise),而XOR运算器对读出码S2及该虚拟干扰噪声码进行XOR运算,以产生错误修正码C2。此时,若读出码S2带有移位错误,因为虚拟干扰噪声码产生器产生的虚拟干扰噪声码并无移位,因此XOR运算得到的错误修正码C2会带有许多错误位组。接着,错误修正码解码器418解码该错误修正码C2,以还原数据D2(步骤556)。
若读出码S2带有移位错误,错误修正码解码器418进行解码时会发现该错误修正码C2带有无法修正的错误(步骤558),便发出信号K通知控制模块420。控制模块420接着指示快闪存储器408重新读取该扰乱码,以得到无移位错误的一读出码S2(步骤560),并指示解扰器416解扰该读出码S2以得到正确的错误修正码C2(步骤554),以及指示错误修正码解码器418解码该错误修正码C2以还原数据D2(步骤552)。最后,控制器406将错误修正码C2解码所得的数据D2传送至主机402,以完成数据读取动作。
图6A为图5A的数据储存方法500的一实施例的示意图。假设控制器406的错误修正码编码器412编码所得的3位组的错误修正码C1为[11010010][00011010][10110101],而扰乱器414的虚拟干扰噪声码产生器产生的3位组的虚拟干扰噪声码为[10110010][00110101][10001110]。因此,扰乱器414的XOR运算器对错误修正码C1及该虚拟干扰噪声码进行XOR运算而产生的3位组的扰乱码S1为[01100000][00101111][00111011],该扰乱码S1接着被储存于快闪存储器408。图6B为图5B的数据读取方法550在未发生数据移位错误情况下的一实施例的示意图。由于未发生数据移位错误,控制器406自快闪存储器408收到的读出扰乱码S2为[01100000][00101111][00111011]。假设解扰器416的虚拟干扰噪声码产生器产生的虚拟干扰噪声码为[10110010][00110101][10001110],因此,解扰器416的XOR运算器对读出扰乱码S2及该虚拟干扰噪声码进行XOR运算所产生的正确的错误修正码C2为[11010010][00011010][10110101]。
图6C为图5B的数据读取方法550在发生数据移位错误情况下的一实施例的示意图。由于发生1位组的数据移位错误,使控制器406自快闪存储器408收到的读出扰乱码S2为[00111011][01100000][00101111],其中[00111011]为图2中时点t2~t3间在数据总线上的噪声。假设解扰器416的虚拟干扰噪声码产生器产生的虚拟干扰噪声码为[10110010][00110101][10001110],因此,解扰器416的XOR运算器对读出扰乱码S2及该虚拟干扰噪声码进行XOR运算所产生的错误修正码C2为[10001001][01011010][10100001]。与图6B中的正确的错误修正码C2相比较,图6C中的错误修正码C2的三个位组共带有8个错误位,若错误修正码解码器418的更正能力低于8位,例如:4位,则此是无法修正的错误。因此,控制模块420便指示快闪存储器408重新读取该扰乱码,以得到无移位错误的一读出码S2,从而去除移位错误。与现有技术相比,本发明提供的数据储存方法500与数据读取方法550可避免循环码不易检测到移位错误的缺陷,从而提升数据储存装置404的效能。
图7为依据本发明的避免数据发生移位错误的数据储存装置704的另一实施例的区块图。于一实施例中,数据储存装置704为一存储卡。数据储存装置704耦接至一主机702,为主机702储存并读取数据。数据储存装置704包括一控制器706及一快闪存储器708。控制器706依据主机702的指示储存数据至快闪存储器708或自快闪存储器708读取数据。于一实施例中,控制器706包括错误修正码编码器712、交错器(interleaver)714、解交错器(deinterleaver)716、错误修正码解码器718、以及控制模块720。控制器706的运作将于后续详细叙述。
图8A为依据本发明的控制器706储存数据的方法800的流程图。首先,控制器706自主机接收一数据D1(步骤802)。接着,错误修正码编码器712编码数据D1为一错误修正码C1(步骤804)。于一实施例中,该错误修正码C1为BCH码(Bose,Ray-Chaudhuri,and Hocquenghem code)或RS码(Reed-Solomon code)等循环码。接着,交错器714以一交错程序处理该错误修正码C1,以得到一交错码I1(步骤806)。于一实施例中,该交错程序将该错误修正码C1包含的多个位组的顺序改变,以得到该交错码I1。接着,控制器706将交错码I1储存于快闪存储器708中(步骤808),从而完成数据的储存动作。
图8B为依据本发明的控制器706读取数据的方法850的流程图。首先,控制器706指示快闪存储器708读取扰乱码,以得到一读出码I2(步骤852)。接着,解交错器716以一解交错程序处理该读出码I2,以得到一错误修正码C2(步骤854)。于一实施例中,该解交错程序将该读出码I2包含的多个位组的顺序还原,以得到该错误修正码C2。此时,若读出码I2带有移位错误,因为解交错器716执行的解交错程序仍将该读出码I2的多个位组依原本未移位前的位组顺序还原,因此解交错得到的错误修正码C2会带有许多错误位组。接着,错误修正码解码器718解码该错误修正码C2,以还原数据D2(步骤856)。
若读出码I2带有移位错误,错误修正码解码器718进行解码时会发现该错误修正码C2带有无法修正的错误(步骤858),便发出信号K通知控制模块720。控制模块720接着指示快闪存储器708重新读取该扰乱码,以得到无移位错误的一读出码I2(步骤860),并指示解交错器716解交错该读出码I2以得到正确的错误修正码C2(步骤854),以及指示错误修正码解码器718解码该错误修正码C2以还原数据D2(步骤852)。最后,控制器706将错误修正码C2解码所得的数据D2传送至主机702,以完成数据读取动作。
图9A为图8A的数据储存方法800的一实施例的示意图。假设控制器706的错误修正码编码器712编码所得的4位组的错误修正码C1为[11010010][00011010][10110101][01010000],而交错器714是将错误修正码C1所包含的位组的顺序①②③④调换为③①④②。因此,交错器714对错误修正码C1进行交错运算而产生的交错码I1为[10110101][11010010][01010000][00011010],该交错码I1接着被储存于快闪存储器708。图9B为图8B的数据读取方法850在发生数据移位错误情况下的一实施例的示意图。由于发生1位组的数据移位错误,使控制器706自快闪存储器708收到的4位组的读出交错码I2为[00011010][10110101][11010010][01010000],其中[00011010]为图2中时点t2~t3间在数据总线上的噪声。假设解交错器716是将读出交错码I2所包含的位组的顺序③①④②调换还原为①②③④。因此,解交错器716的解交错运算对读出交错码I2进行解交错运算所产生的错误修正码C2为[10110101][01010000][00011010][11010010]。与图9A中的原本的错误修正码C1相比较,图9B中的错误修正码C2的4个位组带有10个错误位,若错误修正码解码器718的更正能力低于10位,例如:8位,则此是无法修正的错误。因此,控制模块720便指示快闪存储器708重新读取该交错码,以得到无移位错误的一读出码I2,从而去除移位错误。与现有技术相比,本发明提供的数据储存方法800与数据读取方法850可避免循环码不易检测到移位错误的缺陷,从而提升数据储存装置704的效能。
因此,本发明提供一种避免数据储存装置的数据发生移位错误的方法。数据被编码为循环的错误修正码后,会先以扰乱(scramble)程序转换为扰乱码,或先以交错(interleave)程序转换为交错码,再储存于存储器中。当存储器读取扰乱码或交错码而产生一读取码时,若读取码带有移位错误,会再进行解扰乱程序或解交错程序后还原为带有许多错误位组的错误修正码。因此,得到的错误修正码带有无法修正的错误,从而指示数据储存装置重新自存储器读取数据,以避免移位错误。
虽然本发明已以较佳实施例揭露如上,然而其并非用以限定本发明,任何熟悉此项技术者,在不脱离本发明的精神和范围内,当可作出种种等同的改变或替换,因此本发明的保护范围当视后附的本申请权利要求所界定的为准。

Claims (20)

1.一种避免快闪存储器的数据发生移位错误的方法,包括下列步骤:
自一主机接收欲储存至该快闪存储器的一数据;
编码该数据为一错误修正码;
以一扰乱程序加扰该错误修正码,以得到一扰乱码供储存于该快闪存储器的一存储器中;
当该主机向该快闪存储器要求该数据时,自该存储器读取该扰乱码,以得到一第一读出码;
以一解扰程序解扰该第一读出码,以得到一第一解扰错误修正码;
解码该第一解扰错误修正码,并决定是否该第一解扰错误修正码带有无法修正的错误;
若该第一解扰错误修正码带有无法修正的错误,重新自该存储器读取该扰乱码以得到无移位错误的一第二读出码,解扰该第二读出码以得到一第二解扰错误修正码,并解码该第二解扰错误修正码;以及
将成功地解码该第一解扰错误修正码或该第二解扰错误修正码所得到的该数据传送至该主机。
2.根据权利要求1所述的避免快闪存储器的数据发生移位错误的方法,其特征在于该扰乱程序为一随机化程序,而该解扰程序为一去随机化程序。
3.根据权利要求1所述的避免快闪存储器的数据发生移位错误的方法,其特征在于该错误修正码的加扰步骤包括:
产生一虚拟干扰噪声码;以及
对该错误修正码及该虚拟干扰噪声码进行XOR运算,以产生该扰乱码。
4.根据权利要求3所述的避免快闪存储器的数据发生移位错误的方法,其特征在于该第一读出码的解扰步骤包括:
重新产生该虚拟干扰噪声码;以及
对该第一读出码及该虚拟干扰噪声码进行XOR运算,以得到该第一解扰错误修正码。
5.根据权利要求1所述的避免快闪存储器的数据发生移位错误的方法,其特征在于该错误修正码为一循环型错误更正码。
6.根据权利要求1所述的避免快闪存储器的数据发生移位错误的方法,其特征在于该错误修正码为BCH码或RS码。
7.一种避免快闪存储器的数据发生移位错误的方法,包括下列步骤:
自一主机接收欲储存至该快闪存储器的一数据;
编码该数据为一错误修正码;
以一交错程序处理该错误修正码,以得到一交错码供储存于该快闪存储器的一存储器中;
当该主机向该快闪存储器要求该数据时,自该存储器读取该交错码,以得到一第一读出码;
以一解交错程序处理该第一读出码,以得到一第一解交错错误修正码;
解码该第一解交错错误修正码,并决定是否该第一解交错错误修正码带有无法修正的错误;
若该第一解交错错误修正码带有无法修正的错误,重新自该存储器读取该交错码以得到无移位错误的一第二读出码,解交错该第二读出码以得到一第二解交错错误修正码,并解码该第二解交错错误修正码;以及
将成功地解码该第一解交错错误修正码或该第二解交错错误修正码所得到的该数据传送至该主机。
8.根据权利要求7所述的避免快闪存储器的数据发生移位错误的方法,其特征在于该交错程序将该错误修正码包含的多个字节的顺序改变,以得到该交错码。
9.根据权利要求7所述的避免快闪存储器的数据发生移位错误的方法,其特征在于该解交错程序将该第一读出码包含的多个位组的顺序还原,以得到该第一解交错错误修正码。
10.根据权利要求7所述的避免快闪存储器的数据发生移位错误的方法,其特征在于该交错程序将该错误修正码以四个位组为单位将其顺序改变,以得到该交错码。
11.根据权利要求7所述的避免快闪存储器的数据发生移位错误的方法,其特征在于该错误修正码为BCH码或RS码。
12.一种控制器,避免一快闪存储器的数据发生移位错误,包括:
一错误修正码编码器,将该快闪存储器自一主机接收的一数据编码为一错误修正码;
一扰乱器,以一扰乱程序加扰该错误修正码,以得到一扰乱码供储存于该快闪存储器的一存储器中;
一解扰器,当该主机向该快闪存储器要求该数据时,以一解扰程序解扰该存储器读取该扰乱码所输出的一第一读出码,以得到一第一解扰错误修正码;
一错误修正码解码器,解码该第一解扰错误修正码以得到该数据供传送至该主机,并决定是否该第一解扰错误修正码带有无法修正的错误;以及
一控制模块,若该第一解扰错误修正码带有无法修正的错误,指示该存储器重新读取该扰乱码以输出无移位错误的一第二读出码,指示该解扰器解扰该第二读出码以得到一第二解扰错误修正码,并指示该错误修正码解码器解码该第二解扰错误修正码以得到该数据供传送至该主机。
13.根据权利要求12所述的控制器,其特征在于该扰乱程序为一随机化程序,而该解扰程序为一去随机化程序。
14.根据权利要求12所述的控制器,其特征在于该扰乱器包括:
一第一虚拟干扰噪声码产生器,产生一虚拟干扰噪声码;以及
一第一XOR运算器,对该错误修正码及该虚拟干扰噪声码进行XOR运算,以产生该扰乱码。
15.根据权利要求14所述的控制器,其特征在于解扰器包括:
一第二虚拟干扰噪声码产生器,重新产生该虚拟干扰噪声码;以及
一第二XOR运算器,对该第一读出码及该虚拟干扰噪声码进行XOR运算,以得到该第一解扰错误修正码。
16.根据权利要求12所述的控制器,其特征在于该错误修正码为一循环型错误更正码。
17.根据权利要求12所述的控制器,其特征在于该错误修正码为BCH码或RS码。
18.一种控制器,可避免一快闪存储器的数据发生移位错误,包括:
一错误修正码编码器,将该快闪存储器自一主机接收的一数据编码为一错误修正码;
一交错器,以一交错程序处理该错误修正码,以得到一交错码供储存于该快闪存储器的一存储器中;
一解交错器,当该主机向该快闪存储器要求该数据时,以一解交错程序处理该存储器读取该交错码所输出的一第一读出码,以得到一第一解交错错误修正码;
一错误修正码解码器,解码该第一解交错错误修正码以得到该数据供传送至该主机,并决定是否该第一解交错错误修正码带有无法修正的错误;以及
一控制模块,若该第一解交错错误修正码带有无法修正的错误,指示该存储器重新读取该交错码以输出无移位错误的一第二读出码,指示该解交错器解交错该第二读出码以得到一第二解交错错误修正码,并指示该错误修正码解码器解码该第二解交错错误修正码以得到该数据供传送至该主机。
19.根据权利要求18所述的控制器,其特征在于该交错程序将该错误修正码包含的多个位组的顺序改变,以得到该交错码。
20.根据权利要求19所述的控制器,其特征在于该解交错程序将该第一读出码包含的多个位组的顺序还原,以得到该第一解交错错误修正码。
CN 200910055003 2009-07-17 2009-07-17 避免数据储存装置的数据发生移位错误的方法及控制器 Active CN101957782B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910055003 CN101957782B (zh) 2009-07-17 2009-07-17 避免数据储存装置的数据发生移位错误的方法及控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910055003 CN101957782B (zh) 2009-07-17 2009-07-17 避免数据储存装置的数据发生移位错误的方法及控制器

Publications (2)

Publication Number Publication Date
CN101957782A CN101957782A (zh) 2011-01-26
CN101957782B true CN101957782B (zh) 2013-05-01

Family

ID=43485122

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910055003 Active CN101957782B (zh) 2009-07-17 2009-07-17 避免数据储存装置的数据发生移位错误的方法及控制器

Country Status (1)

Country Link
CN (1) CN101957782B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102866972B (zh) * 2012-08-30 2016-05-18 北京中科晶上科技有限公司 支持数据解扰的访存控制器及访存控制器解扰方法
CN109213625B (zh) * 2017-06-30 2022-02-11 慧荣科技股份有限公司 降低快闪储存介面中传收数据错误方法及装置
CN107957917A (zh) * 2017-10-25 2018-04-24 深圳市致存微电子企业(有限合伙) 数据处理方法、主机、存储设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6680870B2 (en) * 2002-01-29 2004-01-20 Matsushita Electric Industrial Co., Ltd. Memory device, data processing method and data processing program
CN1819046A (zh) * 2004-12-01 2006-08-16 恩益禧电子股份有限公司 加扰器、去扰器和方法,以及盘片设备
CN101206897A (zh) * 2006-12-21 2008-06-25 松下电器产业株式会社 数据传输装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6680870B2 (en) * 2002-01-29 2004-01-20 Matsushita Electric Industrial Co., Ltd. Memory device, data processing method and data processing program
CN1819046A (zh) * 2004-12-01 2006-08-16 恩益禧电子股份有限公司 加扰器、去扰器和方法,以及盘片设备
CN101206897A (zh) * 2006-12-21 2008-06-25 松下电器产业株式会社 数据传输装置

Also Published As

Publication number Publication date
CN101957782A (zh) 2011-01-26

Similar Documents

Publication Publication Date Title
US8381046B2 (en) Method for preventing data shift errors and controller using the same
US7389465B2 (en) Error detection and correction scheme for a memory device
US9037941B2 (en) Systems and methods for error checking and correcting for memory module
US8645789B2 (en) Multi-phase ECC encoding using algebraic codes
KR101686980B1 (ko) 비휘발성 메모리 내의 데이터 저장 방법
US8359518B2 (en) 2D product code and method for detecting false decoding errors
US11327837B2 (en) Method and system for identifying erased memory areas
CN105740088B (zh) 闪存数据纠错方法及装置
US9100054B2 (en) Data processing systems and methods providing error correction
KR102143353B1 (ko) 메모리 소자로부터 액세스된 데이터의 오류를 정정하는 장치 및 방법
US8621290B2 (en) Memory system that supports probalistic component-failure correction with partial-component sparing
CN105340022A (zh) 用于校正数据错误的电路、设备及方法
US20180167088A1 (en) Error-Correcting Code Method and System with Hybrid Block Product Codes
CN110768751B (zh) 译码的方法与电路、存储器控制器、储存装置、控制器
CN101957782B (zh) 避免数据储存装置的数据发生移位错误的方法及控制器
WO2008045292A2 (en) Error correction decoding methods and apparatus
US10956259B2 (en) Error correction code memory device and codeword accessing method thereof
US20150200686A1 (en) Encoding device, decoding device, and operating method thereof
US8627183B1 (en) Systems and methods for storing variable rate product codes
CN110492889A (zh) 检测纠正两位错误的编码解码方法、编码解码器及处理器
US10521133B2 (en) Method and apparatus for real-time blank page detection in data transmission
CN113168882B (zh) 一种编码方法、译码方法以及存储控制器
CN110489269A (zh) 检测纠正三位错误的编码解码方法、编码解码器及处理器
JP7438859B2 (ja) メモリシステムおよび方法
US20150067453A1 (en) Memory controller, storage device and memory control method

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