CN109508253B - 错误校正电路、其操作方法以及包括其的数据存储装置 - Google Patents

错误校正电路、其操作方法以及包括其的数据存储装置 Download PDF

Info

Publication number
CN109508253B
CN109508253B CN201811056766.6A CN201811056766A CN109508253B CN 109508253 B CN109508253 B CN 109508253B CN 201811056766 A CN201811056766 A CN 201811056766A CN 109508253 B CN109508253 B CN 109508253B
Authority
CN
China
Prior art keywords
codeword
flips
data block
decoder controller
decoding operation
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
CN201811056766.6A
Other languages
English (en)
Other versions
CN109508253A (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.)
SK Hynix Inc
Original Assignee
SK Hynix 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 SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN109508253A publication Critical patent/CN109508253A/zh
Application granted granted Critical
Publication of CN109508253B publication Critical patent/CN109508253B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • 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/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2963Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/45Soft decoding, i.e. using symbol reliability information
    • H03M13/451Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
    • H03M13/453Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明提供一种解码器控制器。该解码器控制器可以包括翻转次数管理部,其被配置为在对第一方向的码字的解码操作成功之后,减少与第一方向的码字相交并且具有错误可能区域的第二方向的所有码字的翻转次数。

Description

错误校正电路、其操作方法以及包括其的数据存储装置
相关申请的交叉引用
本申请要求于2017年9月14日提交的申请号为10-2017-0117535的韩国申请的优先权,其通过引用整体并入本文。
技术领域
各个实施例总体涉及一种解码器控制器、错误校正电路,并且更特别地,涉及一种应用于数据存储装置的解码器控制器和/或错误校正电路。
背景技术
数据存储装置可以被配置为响应于来自外部装置的写入请求来存储从外部装置提供的数据。而且,数据存储装置可以被配置为响应于来自外部装置的读取请求向外部装置提供存储的数据。作为能够处理数据的电子装置的外部装置可以包括计算机、数码相机或移动电话。数据存储装置可以通过内置在外部装置中来操作,或者可以通过以可分离的形式制造并且联接到外部装置来操作。
数据存储装置可以包括错误校正电路。错误校正电路可以对从外部装置传输的数据执行编码操作,并且数据存储装置可以存储通过编码操作而添加有奇偶校验数据的数据。而且,当外部装置请求存储的数据时,错误校正电路可以对存储的数据执行解码操作,并且数据存储装置可以将通过解码操作而错误校正的数据传输到外部装置。
错误校正电路的错误校正能力和错误校正操作的快速完成性可直接与数据存储装置的数据可靠性和操作性能相关联。
发明内容
在实施例中,可以提供一种错误校正电路。错误校正电路可以包括:解码器控制器,其被配置为接收包括多个数据块的数据区块(chunk),多个数据块中的每个被包括在第一方向的相应码字和第二方向的相应码字中。错误校正电路可以包括:解码器,其被配置为根据解码器控制器的控制,对第一方向的第一码字执行第一解码操作。解码器控制器可以根据第一解码操作的结果调整第二方向的第二码字的翻转次数,并且可以基于翻转次数对第二码字执行追踪解码处理(chase decoding process)。
在实施例中,可以提供一种操作错误校正电路的方法。该方法可以包括接收包括多个数据块的数据区块。多个数据块中的每个可以被包括在第一方向的相应码字和第二方向的相应码字中。方法可以包括对第一方向的第一码字执行第一解码操作。方法可以包括根据第一解码操作的结果,调整第二方向的第二码字的翻转次数。方法可以包括基于翻转次数,对第二码字执行追踪解码处理。
在实施例中,可以提供一种数据存储装置。数据存储装置可以包括非易失性存储器装置,其被配置为读取和输出包括多个数据块的数据区块。多个数据块中的每个可以被包括在第一方向的相应码字和第二方向的相应码字中。数据存储装置可以包括错误校正电路,该错误校正电路包括:解码器控制器;以及解码器,其被配置为根据解码器控制器的控制对第一方向的第一码字执行第一解码操作。解码器控制器可以根据第一解码操作的结果调整第二方向的第二码字的翻转次数,并且可以基于翻转次数对第二码字执行追踪解码处理。
在实施例中,可以提供一种解码器控制器。解码器控制器可以包括翻转次数管理部,其被配置为在对第一方向的码字的解码操作成功之后,减少与第一方向的码字相交并且具有错误可能区域的第二方向的所有码字的翻转次数。
附图说明
图1是示出根据实施例的错误校正电路的示例代表的框图。
图2是示出基于TPC算法的数据区块的示例代表的示图。
图3是帮助解释图1的错误校正电路执行追踪解码处理的方法的示图的示例代表。
图4是帮助解释图1的翻转次数管理部根据解码操作的结果来调整翻转次数的方法的示图的示例代表。
图5是帮助解释图1的翻转次数管理部根据解码操作的结果调整翻转次数的方法的示图的示例代表。
图6是帮助解释用于操作图1的错误校正电路的方法的流程图的示例代表。
图7是示出根据实施例的数据存储装置的示例代表的框图。
图8是示出根据实施例的固态硬盘(SSD)的示例代表的框图。
图9是示出应用根据实施例的数据存储装置的数据处理系统的示例代表的框图。
具体实施方式
在下文中,将通过实施例的示例参考附图描述错误校正电路、错误校正电路的操作方法以及包括错误校正电路的数据存储装置。然而,本实施例可以以不同的形式呈现并且不应被解释为限于本文阐述的实施例。
应当理解的是,本说明书的实施例不限于附图中所示的细节,并且附图不一定按比例绘制,并且在一些情况下可能会夸大其比例,以便更清楚地描绘某些特征。虽然使用特定术语,但是应当理解的是,使用的术语仅用于描述特定实施例,并不旨在限制本公开的范围。
将进一步理解的是,当一个元件被称为“连接至”或“联接至”另一元件时,它可以直接在其它元件上、连接至或联接至其它元件,或可存在一个或多个中间元件。另外,也将理解的是,当元件被称为在两个元件“之间”时,两个元件之间可以仅有一个元件或也可存在一个或多个中间元件。
当短语“......和......中的至少一个”在本文中与项目列表一起使用时,是指列表中的单个项目或列表中项目的任何组合。例如,“A、B和C中的至少一个”是指只有A、或只有B、或只有C、或A、B和C的任何组合。
如本文使用的术语“或”是指两个或更多个可选方案中的一个,而不是两者,也不是其任何组合。
如本文使用的,单数形式也旨在包括复数形式,除非上下文另有清楚地说明。将进一步理解的是,当在该说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,它们指定阐述元件的存在而不排除一个或多个其它元件的存在或增加。如本文使用的,术语“和/或”包括一个或多个相关所列项目的任何一个和所有组合。
除非另有限定,否则本文所使用的包括技术术语和科学术语的所有术语具有与本实施例所属领域中普通技术人员通常理解的含义相同的含义。将进一步理解的是,诸如在常用词典中限定的那些术语的术语应被理解为具有与它们在本公开的上下文和相关领域中的含义一致的含义并且将不以理想化或过于正式的意义来解释,除非本文如此明确地限定。
在以下描述中,为了提供对本公开的全面理解,阐述了许多具体细节。本公开可以在没有一些或全部这些具体细节的情况下被实施。在其它情况下,为了不使本说明书被不必要模糊,未详细地描述公知的进程结构和/或进程。
也注意的是,在一些情况下,对相关领域的技术人员显而易见的是,结合一个实施例描述的、也可被称为特征的元件可单独使用或与另一实施例的其它元件结合使用,除非另有明确说明。
在下文中,将参照附图描述各个实施例。
图1是示出根据实施例的错误校正电路10的示例代表的框图。
错误校正电路10可以接收数据区块DCH,对数据区块DCH执行错误校正操作,并且输出校正的数据区块DCH。
数据区块DCH可以是基于TPC(涡轮乘积码)算法而生成的数据。数据区块DCH可以包括多个数据块,并且数据块中的每一个可以被包括在第一方向的相应码字和第二方向的相应码字中。第一方向和第二方向可以是行方向和列方向,或者相反。因此,数据区块DCH可以包括行方向的码字和列方向的码字,其中行方向的码字即行码字以及列方向的码字即列码字。将参照图2描述数据区块DCH的结构。
错误校正电路10可以包括解码器控制器11和解码器12。在实施例中,解码器控制器11可以利用软件、硬件或其任何组合来实施。在实施例中,解码器12可以利用软件、硬件或其任何组合来实施。
解码器控制器11可以在数据区块DCH中选择待被执行解码操作的码字,并且可以将所选择码字提供至解码器12。解码器控制器11可以控制解码器12在解码操作中对成功可能性高的码字执行解码操作。
解码器控制器11可以对数据区块DCH执行预解码处理。在预解码处理中,解码器12可以根据解码器控制器11的控制对包括在数据区块DCH中的码字中的每一个执行解码操作。虽然可以基于例如BCH算法来对码字中的每一个执行解码操作,但是应当注意,实施例不限于此。解码器12可以通过预解码处理成功地完成对数据区块DCH的错误校正操作,或者可能对数据区块DCH的一些码字的解码操作失败。
解码器控制器11可以对数据区块DCH执行追踪解码处理。解码器控制器11可以对在预解码处理中解码操作已经失败的码字执行追踪解码处理。可以通过重复翻转操作和解码操作来对特定码字执行追踪解码处理,直到解码操作成功并且码字被解码。在实施例中,例如,当码字中不再包括任何错误并且包括在码字中的所有数据块中不存在错误时,对特定码字的解码操作成功。解码器控制器11可以在码字中选择的预定翻转范围内执行翻转操作。每当重复解码操作时,解码器控制器11可以通过翻转包括在翻转范围中的不同位的组合来执行翻转操作。翻转范围内的、待翻转的位的数量可以限于预定翻转次数,并且如果在使用相应预定翻转次数进行解码操作而仍然失败的情况下,则可以增加翻转次数。翻转次数的增加可能过度增加了解码时间。虽然还可以基于例如BCH算法来执行追踪解码处理中的解码操作,但是应当注意,实施例不限于此。
解码器控制器11可以包括翻转次数管理部15。翻转次数管理部15可以管理数据区块DCH的第一方向和第二方向的码字的翻转次数。当通过使用预定翻转次数对特定码字执行追踪解码处理中的解码操作的结果为失败时,翻转次数管理部15可以增加相应码字的翻转次数。在实施例中,翻转次数管理部15可以利用软件、硬件或其任何组合来实施。
而且,翻转次数管理部15可以根据对第一方向的码字的解码操作的结果,来调整第二方向的码字的翻转次数。例如,当对第一方向的码字执行的追踪解码处理中的解码操作成功时,翻转次数管理部15可以在第一方向的码字中识别至少一个校正数据块,并且可以减少包括校正数据块的第二方向的码字的翻转次数。因此,解码器12可以基于减少的翻转次数来对第二方向的码字执行追踪解码处理。
根据实施例,当对第一方向的码字执行的追踪解码处理中的解码操作成功时,翻转次数管理部15可以计算在第一方向的码字中校正的数据块的校正率。翻转次数管理部15可以确定对应于校正率的调整值。校正率越高,调整值可能越大。翻转次数管理部15可以通过确定的调整值来减少包括校正数据块的第二方向的码字的翻转次数。
解码器12可以对由解码器控制器11选择的码字执行解码操作。解码器12可以向解码器控制器11通知解码操作是成功还是失败。解码器12可以基于BCH算法对码字执行解码操作。
图2是示出基于TPC算法的数据区块DCH的示例代表的示图。
参照图2,基于TPC算法生成的数据区块DCH可以包括多个数据块。虽然未示出,但是数据块中的每一个可以包括多个数据位。可以组合数据块来配置行码字RC1至RC4和列码字CC1至CC4。某个数据块可以被包括在某个行码字中并且同时可以被包括在某个列码字中。行方向的码字可以表示行码字RC1至RC4,并且列方向的码字可以表示列码字CC1至CC4。虽然图2示出数据区块DCH由四个行码字RC1至RC4和四个列码字CC1至CC4配置,但是应当注意的是,包括在数据区块DCH中的行码字的数量和列码字的数量不限于此。
行码字RC1至RC4可以包括行奇偶校验数据块RP1至RP4。行码字RC1至RC4中的每一个可以包括由于相应数据块被编码而生成的行奇偶校验数据块。例如,行码字RC2可以包括由于数据块D21至D24被编码而生成的行奇偶校验数据块RP2。虽然可以基于例如BCH算法执行编码操作以生成行奇偶校验数据块RP1至RP4中的每一个,但是应当注意的是,在本实施例中,编码操作不限于此并且可以基于各种ECC算法来执行编码操作。
列码字CC1至CC4可以包括列奇偶校验数据块CP1至CP4。列码字CC1至CC4中的每一个可以包括由于相应数据块被编码而生成的列奇偶校验数据块。例如,列码字CC1可以包括由于数据块D11至D41被编码而生成的列奇偶校验数据块CP1。虽然可以基于例如BCH算法执行编码操作以生成列奇偶校验数据块CP1至CP4中的每一个,但是应当注意的是,在本实施例中,编码操作不限于此并且可以基于各种ECC算法来执行编码操作。
数据区块DCH可以进一步包括附加奇偶校验数据块PP。当行奇偶校验数据块RP1至RP4和列奇偶校验数据块CP1至CP4被编码时,可以生成附加奇偶校验数据块PP。附加奇偶校验数据块PP可以被用于校正在行奇偶校验数据块RP1至RP4和列奇偶校验数据块CP1至CP4中出现的错误。
解码器12可以基于行奇偶校验数据块RP1至RP4对行码字RC1至RC4执行解码操作。例如,可以基于相应行奇偶校验数据块,通过校正包括在相应数据块中的错误来对行码字RC1至RC4中的每一个执行解码操作。例如,可以基于行奇偶校验数据块RP2,通过校正包括在数据块D21至D24中的错误来对行码字RC2执行解码操作。
类似地,解码器12可以基于列奇偶校验数据块CP1至CP4对列码字CC1至CC4执行解码操作。例如,可以基于相应列奇偶校验数据块,通过校正包括在相应数据块中的错误来对列码字CC1至CC4中的每一个执行解码操作。例如,可以基于列奇偶校验数据块CP1,通过校正包括在数据块D11至D41中的错误来对列码字CC1执行解码操作。
在数据区块DCH中,可以通过对相应行码字的解码操作或对相应列码字的解码操作来校正包括在相同数据块中的错误。因此,即使包括在相同数据块中的错误没有通过对相应行码字的解码操作来校正,包括在相同数据块中的错误也可以通过对相应列码字的解码操作来校正,或者反之亦然。
图3是帮助解释图1的错误校正电路10执行追踪解码处理的方法的示图的示例代表。图3示出在预解码处理中解码操作已经失败的行码字RC2和RC3以及列码字CC2和CC4。假设对数据区块DCH的其它码字的解码操作已经成功。
参照图3,错误可以被定位在数据块D22、D24、D32和D34中,即,在行码字RC2和RC3与列码字CC2和CC4的交叉区域(intersection)处。由于在预解码处理中,对图3中未示出的码字的解码操作已经成功,因此除了交叉区域D22、D24、D32和D34之外的位置不包括错误。交叉区域D22、D24、D32和D34中的每一个可以不必须包括至少一个错误。错误可能仅存在于数据块D22、D24、D32和D34中的一些中。
因此,当对行码字RC2和RC3以及列码字CC2和CC4中的每一个执行追踪解码处理时,可以在可能存在错误的数据块D22、D24、D32和D34中的、待被执行解码操作的码字中包括的交叉区域执行翻转操作。行码字RC2和RC3以及列码字CC2和CC4中的每一个的交叉区域可以是相应码字的翻转范围。可以通过在属于翻转范围的位中寻找包括翻转次数个位的不同组合并且通过翻转相应组合来执行翻转操作。翻转次数可以从“1”开始。对于特定码字,如果即使在尝试了所有预定翻转次数的组合之后解码操作也没有成功,则可以增加相应码字的翻转次数。当即使翻转次数被增加到预定阈值数量,解码操作的结果也是失败时,对相应码字的追踪解码处理可以作为失败而结束。
翻转次数管理部15可以管理翻转次数表FLIPNUM。翻转次数表FLIPNUM可以包括分别与待被执行追踪解码处理的行码字RC2和RC3以及列码字CC2和CC4相对应的翻转次数。翻转次数管理部15可以根据解码操作的结果调整翻转次数表FLIPNUM中的翻转次数。
例如,解码器控制器11可以如下对行码字RC2执行追踪解码处理。首先,在行码字RC2的翻转范围内,即在交叉区域D22和D24翻转不同的一位,直到解码操作成功,可重复对行码字RC2的解码操作。行码字RC2的翻转次数krc2可以被存储为“1”。在即使所有位被分别翻转而解码操作也不成功的情况下,则行码字RC2的翻转次数krc2可以增加到“2”并被存储为“2”。与此类似,解码器控制器11可以对行码字RC3以及列码字CC2和CC4执行追踪解码处理。
对于翻转次数“1”,解码器控制器11可以对行码字RC2和RC3以及列码字CC2和CC4中的所有码字执行一次追踪解码处理。此后,基于行码字RC2的翻转次数krc2“2”,解码器控制器11可以通过在交叉区域D22和D24翻转两个位的不同组合来对行码字RC2执行追踪解码处理。
因此,通过使用预定翻转次数“k”而对特定码字的重复解码操作的次数是在相应码字中包括的一个或多个交叉区域的所有“n”个位之中,选择“k”个不同位的组合的数量,并且成为“nCk”。由于在预定范围内,当翻转次数“k”增加时,“nCk”也增加,因此可能延长追踪解码处理的执行时间。
图4是帮助解释图1的翻转次数管理部15根据解码操作的结果来调整翻转次数的方法的示图的示例代表。在图4中,假设情况是基于各个翻转次数krc2、krc3、kcc2和kcc4,来对行码字RC2和RC3以及列码字CC2和CC4执行追踪解码处理。
参照图4,可以基于翻转次数krc2对行码字RC2执行追踪解码处理,并且解码操作可以成功。响应于此,翻转次数管理部15可以移除行码字RC2的翻转次数krc2,使得不再对行码字RC2执行追踪解码处理。例如,翻转次数管理部15可以将行码字RC2的翻转次数krc2存储为“0”。
接下来,翻转次数管理部15可以识别在行码字RC2中校正的数据块D22和D24。例如,翻转次数管理部15可以知道将对行码字RC2和RC3以及列码字CC2和CC4执行追踪解码处理,并且可以将包括在行码字RC2中的交叉区域D22和D24识别为校正数据块。又例如,翻转次数管理部15可以通过比较执行解码操作之前的行码字RC2和执行解码操作之后的行码字RC2,来识别校正数据块D22和D24。同时,根据情况,可能与图4的示出不同,仅交叉区域D22和D24的一部分可以是校正数据块。
翻转次数管理部15可以将包括校正数据块D22和D24的列码字CC2和CC4的翻转次数kcc2和kcc4减小“1”。原因在于,由于通过对行码字RC2的解码操作,使得包括在列码字CC2和CC4中的错误在结果上被减少,因此即使当翻转次数kcc2和kcc4减少,列码字CC2和CC4的解码操作也可能成功。通过减少翻转次数kcc2和kcc4,可以缩短追踪解码处理的执行时间。
虽然图4的操作示出了当针对行方向上的码字的解码操作成功时调整列方向上的码字的翻转次数的情况,但是应当注意的是,当对列方向上的码字的解码操作成功时,可以调整行方向上的码字的翻转次数。
图5是帮助解释图1的翻转次数管理部15根据解码操作的结果调整翻转次数的方法的示图的示例代表。图5中示出的情况可以与图4中示出的情况相同。然而,翻转次数管理部15可以通过调整值来减少所选择码字的翻转次数,其中调整值等于或大于“2”。
例如,当对行码字RC2的解码操作成功时,翻转次数管理部15可以确定校正数据块D22和D24的校正率。校正率可以表示在相应校正数据块中的多少错误被校正。可以基于相应校正数据块中的校正错误的数量来确定校正率。例如,校正了两个错误的数据块D24的校正率可以高于校正了一个错误的数据块D22的校正率。
翻转次数管理部15可以确定对应于各个校正率的调整值。校正率越高,调整值可能越大。翻转次数管理部15可以通过确定的调整值来减少翻转次数。因此,翻转次数管理部15可以将包括具有较高校正率的数据块D24的列码字CC4的翻转次数kcc4减小例如“2”。
同时,翻转次数管理部15可以基于等于或大于“1”的调整值,将翻转次数调整为“0”。如果特定码字的翻转次数被调整为“0”,则解码器12可以对相应码字执行解码操作,而不执行翻转操作。
根据实施例,当对第一方向的特定码字的解码操作成功时,翻转次数管理部15可以减少与相应码字相交的、第二方向的所有码字的翻转次数。即,当对第一方向的特定码字的解码操作成功时,翻转次数管理部15可以减少包括作为错误可能区域的交叉区域的、第二方向的所有码字的翻转次数。
图6是帮助解释用于操作图1的错误校正电路10的方法的流程图的示例代表。图6示出错误校正电路10根据对第一码字的解码操作的结果来调整翻转次数的方法。
参照图6,在步骤S110处,解码器控制器11可以在数据区块DCH中选择第一方向的第一码字。
在步骤S120处,解码器控制器11可以对第一码字执行追踪解码处理。解码器控制器11可以基于预定翻转次数重复对第一码字的翻转操作,并且解码器12可以重复对第一码字的解码操作。
在步骤S130处,解码器控制器11可以确定对第一码字的解码操作是否已经成功。当确定解码操作已经成功时,进程可以进行到步骤S140。
在步骤S140处,翻转次数管理部15可以在第一码字中识别至少一个校正数据块。在实施例中,例如,在步骤S140处,翻转次数管理部15可以确定校正数据块的校正率。校正率可以表示在应校正数据块中的多少错误被校正。可以基于相应校正数据块中的校正错误的数量来确定校正率。
在步骤S150处,翻转次数管理部15可以调整包括校正数据块的第二方向的码字的翻转次数。翻转次数管理部15可以减少第二方向的码字的翻转次数。根据实施例,翻转次数管理部15可以对应于校正数据块的校正率来确定调整值,并且通过调整值来减少翻转次数。根据实施例,例如,翻转次数管理部15可以确定用于第二方向上的交叉码字的、与校正数据块的校正率相对应的调整值,并且通过调整值减少翻转次数。
然而,当在步骤S130处确定解码操作在结果上已经失败时,进程可以进行到步骤S160。
在步骤S160处,翻转次数管理部15可以增加第一码字的翻转次数。在对第一码字的下一个追踪解码处理中,增加后的第一码字的翻转次数可以变为步骤S120的第一码字的预定翻转次数。同时,根据对第二方向上的其它码字的追踪解码处理的结果,可以减少增加后的第一码字的翻转次数。
在实施例中,翻转次数管理部15可以确定第一码字的翻转次数是否大于或等于预定阈值数量。如果翻转次数被增加到预定阈值数量或者大于或等于预定阈值数量,则对相应码字的追踪解码处理可以作为失败而结束。
图7是示出根据实施例的数据存储装置100的示例代表的框图。
数据存储装置100可以被配置为响应于来自外部装置的写入请求来存储从外部装置提供的数据。而且,数据存储装置100可以被配置为响应于来自外部装置的读取请求向外部装置提供存储的数据。
数据存储装置100可以被配置为个人计算机存储卡国际协会(PCMCIA)卡、标准闪存(CF)卡、智能媒体卡、记忆棒、各种多媒体卡(MMC、eMMC、RS-MMC和微型-MMC)、各种安全数字卡(SD、迷你-SD和微型-SD)、通用闪存(UFS)、固态硬盘(SSD)等。
数据存储装置100可以包括控制器110和非易失性存储器装置120。
控制器110可以控制数据存储装置100的一般操作。控制器110可以响应于从外部装置传输的写入请求来将数据存储在非易失性存储器装置120中,并且可以响应于从外部装置传输的读取请求来读取存储在非易失性存储器装置120中的数据并且将读取数据输出到外部装置。
控制器110可以包括错误校正单元111。错误校正单元111可以以与图1的错误校正电路10基本相同的方式配置。错误校正单元111可以对从非易失性存储器装置120读取的数据区块DCH执行如上参照图1至图6所述的错误校正操作。
根据控制器110的控制,非易失性存储器装置120可以存储从控制器110传输的数据以及读出存储的数据且将读出数据传输到控制器110。
非易失性存储器装置120可以包括诸如NAND闪存或NOR闪存的闪速存储器、铁电随机存取存储器(FeRAM)、相变随机存取存储器(PCRAM)、磁阻式随机存取存储器(MRAM)、电阻式随机存取存储器(ReRAM)等。
虽然在图7中示出数据存储装置100包括一个非易失性存储器装置120,但是应当注意的是,包括在数据存储装置100中的非易失性存储器装置的数量不限于此。
图8是示出根据实施例的固态硬盘(SSD)1000的示例代表的框图。
SSD 1000可以包括控制器1100和存储介质1200。
控制器1100可以控制主机装置1500和存储介质1200之间的数据交换。控制器1100可以包括通过内部总线1170联接的处理器1110、RAM1120、ROM 1130、ECC单元1140、主机接口(IF)1150和存储介质接口1160。
处理器1110可以控制控制器1100的一般操作。根据来自主机装置1500的数据处理请求,处理器1110可以将数据存储在存储介质1200中并且从存储介质1200读取存储的数据。为了高效地管理存储介质1200,处理器1110可以控制SSD 1000的诸如合并操作、损耗均衡操作等的内部操作。
RAM 1120可以存储待由处理器1110使用的程序和编程数据。RAM1120可以在将从主机接口1150传输的数据传送到存储介质1200之前临时存储从主机接口1150传输的数据,并且可以在将从存储介质1200传输的数据传送到主机装置1500之前临时存储从存储介质1200传输的数据。
ROM 1130可以存储待由处理器1110读取的编程代码。编程代码可以包括由处理器1110处理的命令,以用于处理器1110控制控制器1100的内部单元。
ECC单元1140可以对待存储在存储介质1200中的数据进行编码,并且可以对从存储介质1200读取的数据进行解码。ECC单元1140可以根据ECC算法来检测和校正数据中出现的错误。ECC单元1140可以以与图1的错误校正电路10基本相同的方式配置。ECC单元1140可以执行如上参照图1至图6描述的错误校正操作。
主机接口1150可以与主机装置1500交换数据处理请求、数据等。
存储介质接口1160可以将控制信号和数据传输到存储介质1200。存储介质接口1160可以接收从存储介质1200传输的数据。存储介质接口1160可以通过多个通道CH0至CHn与存储介质1200联接。
存储介质1200可以包括多个非易失性存储器装置NVM0至NVMn。多个非易失性存储器装置NVM0至NVMn中的每一个可以根据控制器1100的控制来执行写入操作和读取操作。
图9是示出根据实施例的数据处理系统2000的示例代表的框图。
数据处理系统2000可以包括计算机、膝上型计算机、上网本、智能电话、数字TV、数码相机、导航仪等。数据处理系统2000可以包括主处理器2100、主存储器装置2200、数据存储装置2300和输入/输出装置2400。数据处理系统2000的内部单元可以通过系统总线2500交换数据、控制信号等。
主处理器2100可以控制数据处理系统2000的一般操作。例如,主处理器2100可以是诸如微处理器的中央处理单元。主处理器2100可以执行主存储器装置2200上的诸如操作系统、应用程序、装置驱动器等的软件。
主存储器装置2200可以存储待由主处理器2100使用的程序和编程数据。主存储器装置2200可以临时存储待传输到数据存储装置2300和输入/输出装置2400的数据。
数据存储装置2300可以包括控制器2310和存储介质2320。数据存储装置2300可以基本上类似于图7的数据存储装置100或图8的SSD1000来被配置和操作。
输入/输出装置2400可以包括键盘、扫描仪、触摸屏、屏幕监视器、打印机、鼠标等,其能够与用户交换数据,诸如从用户接收用于控制数据处理系统2000的命令或将处理结果提供给用户。
根据实施例,数据处理系统2000可以通过诸如LAN(局域网)、WAN(广域网)、无线网络等的网络2600与至少一个服务器2700通信。数据处理系统2000可以包括访问网络2600的网络接口(未示出)。
虽然上面已经描述各个实施例,但是本领域技术人员将理解,描述的实施例仅是示例。因此,不应基于描述的实施例来限制错误校正电路、错误校正电路的操作方法以及包括错误校正电路的数据存储装置。

Claims (26)

1.一种错误校正电路,包括:
解码器控制器,接收包括多个数据块的数据区块,所述多个数据块中的每个被包括在第一方向的相应码字和第二方向的相应码字中,其中所述第一方向和所述第二方向中的一个是行方向,并且另一个是列方向;以及
解码器,根据所述解码器控制器的控制,对所述数据区块中包括的码字执行解码操作,
其中所述解码器控制器管理与每个的解码操作失败的码字相对应的翻转次数;当针对所述第一方向的第一码字的解码操作成功时,识别所述第一码字中的至少一个校正数据块;选择包括所述至少一个校正数据块的、所述第二方向的第二码字;调整翻转次数中的所述第二码字的翻转次数,并且基于所述第二码字的翻转次数对所述第二码字执行追踪解码处理。
2.根据权利要求1所述的错误校正电路,其中当调整所述翻转次数时,所述解码器控制器减少所述翻转次数。
3.根据权利要求1所述的错误校正电路,其中所述解码器控制器确定与所述至少一个校正数据块的校正率相对应的调整值,并且通过所述调整值调整所述翻转次数。
4.根据权利要求3所述的错误校正电路,其中所述校正率对应于在所述至少一个校正数据块中校正的错误的数量。
5.根据权利要求3所述的错误校正电路,其中如果所述校正率增加,则所述调整值增加。
6.根据权利要求1所述的错误校正电路,其中所述解码器控制器确定与所述第一码字中的、与所述第二码字相交的校正数据块相对应的调整值,并且通过所述调整值调整所述翻转次数。
7.根据权利要求1所述的错误校正电路,
其中当执行所述追踪解码处理时,所述解码器控制器通过翻转所述第二码字的翻转范围内的所述翻转次数个位的不同组合来执行翻转操作,以及
其中所述解码器对被执行所述翻转操作的第二码字重复解码操作。
8.根据权利要求1所述的错误校正电路,其中当针对所述第一码字的解码操作失败时,所述解码器控制器增加翻转次数中的所述第一码字的翻转次数。
9.一种操作错误校正电路的方法,包括:
利用所述错误校正电路接收数据区块,所述数据区块包括多个数据块,所述多个数据块中的每个被包括在第一方向的相应码字和第二方向的相应码字中,其中所述第一方向和所述第二方向中的一个是行方向,并且另一个是列方向;
利用解码器控制器管理与每个的解码操作失败的码字相对应的翻转次数;
当针对所述第一方向的第一码字的解码操作成功时,利用所述解码器控制器识别所述第一码字中的至少一个校正数据块;
利用所述解码器控制器选择包括所述至少一个校正数据块的、所述第二方向的第二码字;
利用所述解码器控制器调整翻转次数中的所述第二码字的翻转次数;并且
基于所述第二码字的所述翻转次数,利用所述解码器控制器对所述第二码字执行追踪解码处理。
10.根据权利要求9所述的方法,其中所述翻转次数的调整包括:
减少所述翻转次数。
11.根据权利要求9所述的方法,其中所述翻转次数的调整包括:
确定与所述至少一个校正数据块的校正率相对应的调整值;并且
通过所述调整值调整所述翻转次数。
12.根据权利要求11所述的方法,其中所述校正率对应于在所述至少一个校正数据块中校正的错误的数量。
13.根据权利要求11所述的方法,其中如果所述校正率增加,则所述调整值也增加。
14.根据权利要求9所述的方法,其中所述翻转次数的调整包括:
确定与所述第一码字中的、与所述第二码字相交的校正数据块相对应的调整值;并且
通过所述调整值调整所述翻转次数。
15.根据权利要求9所述的方法,其中执行所述追踪解码处理包括:
通过翻转所述第二码字的翻转范围内的所述翻转次数个位的不同组合来执行翻转操作;并且
对被执行所述翻转操作的第二码字重复解码操作。
16.根据权利要求9所述的方法,进一步包括:
当针对所述第一码字的解码操作失败时,增加翻转次数中的所述第一码字的翻转次数。
17.一种数据存储装置,包括:
非易失性存储器装置,读取并输出包括多个数据块的数据区块,所述多个数据块中的每个被包括在第一方向的相应码字和第二方向的相应码字中,其中所述第一方向和所述第二方向中的一个是行方向,并且另一个是列方向;以及
错误校正电路,包括解码器控制器和解码器,所述解码器根据所述解码器控制器的控制对所述数据区块中包括的码字执行解码操作,
其中所述解码器控制器管理与每个的解码操作失败的码字相对应的翻转次数;当针对所述第一方向的第一码字的解码操作成功时,识别所述第一码字中的至少一个校正数据块;选择包括所述至少一个校正数据块的、所述第二方向的第二码字;调整翻转次数中的所述第二码字的翻转次数,并且基于所述第二码字的翻转次数对所述第二码字执行追踪解码处理。
18.根据权利要求17所述的数据存储装置,其中当调整所述翻转次数时,所述解码器控制器减少所述翻转次数。
19.根据权利要求17所述的数据存储装置,其中所述解码器控制器确定与所述至少一个校正数据块的校正率相对应的调整值,并且通过所述调整值调整所述翻转次数。
20.根据权利要求19所述的数据存储装置,其中所述校正率对应于在所述至少一个校正数据块中校正的错误的数量。
21.根据权利要求19所述的数据存储装置,其中如果所述校正率增加,则所述调整值增加。
22.根据权利要求17所述的数据存储装置,其中所述解码器控制器确定与所述第一码字中的、与所述第二码字相交的校正数据块相对应的调整值,并且通过所述调整值调整所述翻转次数。
23.根据权利要求17所述的数据存储装置,
其中当执行所述追踪解码处理时,所述解码器控制器通过翻转所述第二码字的翻转范围内的所述翻转次数个位的不同组合来执行翻转操作,以及
其中所述解码器对被执行所述翻转操作的第二码字重复解码操作。
24.根据权利要求17所述的数据存储装置,其中当针对所述第一码字的解码操作失败时,所述解码器控制器增加翻转次数中的所述第一码字的翻转次数。
25.一种解码器控制器,包括:
翻转次数管理部,在对第一方向的码字的解码操作成功之后,减少每个均与所述第一方向的所述码字相交并且具有所述码字的校正数据块的第二方向的所有码字的翻转次数,其中所述第一方向和所述第二方向中的一个是行方向,并且另一个是列方向。
26.根据权利要求25所述的解码器控制器,其中如果对所述第一方向的所述码字的错误校正操作完成并且所述第一方向的所述码字的所有数据块被解码,则对所述第一方向的所述码字的解码操作成功。
CN201811056766.6A 2017-09-14 2018-09-11 错误校正电路、其操作方法以及包括其的数据存储装置 Active CN109508253B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170117535A KR20190030294A (ko) 2017-09-14 2017-09-14 에러 정정 회로, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치
KR10-2017-0117535 2017-09-14

Publications (2)

Publication Number Publication Date
CN109508253A CN109508253A (zh) 2019-03-22
CN109508253B true CN109508253B (zh) 2022-07-29

Family

ID=65631728

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811056766.6A Active CN109508253B (zh) 2017-09-14 2018-09-11 错误校正电路、其操作方法以及包括其的数据存储装置

Country Status (3)

Country Link
US (1) US10680658B2 (zh)
KR (1) KR20190030294A (zh)
CN (1) CN109508253B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210326320A1 (en) * 2018-10-15 2021-10-21 Ocient Inc. Data segment storing in a database system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102623067A (zh) * 2011-01-28 2012-08-01 马维尔国际贸易有限公司 用于基于闪存的存储器系统的软解码系统和方法
CN104218955A (zh) * 2014-09-28 2014-12-17 河南科技大学 基于比特翻转的ldpc码局部搜索译码方法
US9231623B1 (en) * 2013-09-11 2016-01-05 SK Hynix Inc. Chase decoding for turbo-product codes (TPC) using error intersections

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8042029B2 (en) * 2006-05-21 2011-10-18 Ramot At Tel Aviv University Ltd. Error correction decoding by trial and error
US9600364B2 (en) 2015-03-09 2017-03-21 Kabushiki Kaisha Toshiba Memory controller, storage device and decoding method
US9935659B2 (en) * 2015-05-18 2018-04-03 SK Hynix Inc. Performance optimization in soft decoding for turbo product codes
US10523245B2 (en) * 2016-03-23 2019-12-31 SK Hynix Inc. Soft decoder for generalized product codes
US10547332B2 (en) * 2017-02-01 2020-01-28 Tsofun Algorithm Ltd. Device, system and method of implementing product error correction codes for fast encoding and decoding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102623067A (zh) * 2011-01-28 2012-08-01 马维尔国际贸易有限公司 用于基于闪存的存储器系统的软解码系统和方法
US9231623B1 (en) * 2013-09-11 2016-01-05 SK Hynix Inc. Chase decoding for turbo-product codes (TPC) using error intersections
CN104218955A (zh) * 2014-09-28 2014-12-17 河南科技大学 基于比特翻转的ldpc码局部搜索译码方法

Also Published As

Publication number Publication date
US10680658B2 (en) 2020-06-09
US20190081644A1 (en) 2019-03-14
CN109508253A (zh) 2019-03-22
KR20190030294A (ko) 2019-03-22

Similar Documents

Publication Publication Date Title
CN106856103B (zh) 用于与非闪存的涡轮乘积码
US9898363B2 (en) Data storage device and operating method thereof
US10102066B2 (en) Data processing device and operating method thereof
US10396827B2 (en) Data storage device
KR20170039795A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20180086816A (ko) 사전-검사된 에러율에 따른 적응형 에러정정을 수행하는 메모리장치 및 전자장치와, 메모리장치의 동작방법
US20190056991A1 (en) Error correction circuit, operating method thereof and data storage device including the same
US10514980B2 (en) Encoding method and memory storage apparatus using the same
US20230049851A1 (en) Ecc memory chip encoder and decoder
US20150149856A1 (en) Decoding with log likelihood ratios stored in a controller
US10431324B2 (en) Data storage device for performing decoding operation and operating method thereof
CN109508253B (zh) 错误校正电路、其操作方法以及包括其的数据存储装置
JP6491482B2 (ja) 複数のフラッシュ面にわたってコード語をインターリーブするための方法および/または装置
US10511334B2 (en) Error correction circuit, operating method thereof and data storage device including the same
US10484014B2 (en) Controller, semiconductor memory system and operating method thereof
US11269704B2 (en) Memory system and control method thereof
US10985781B2 (en) Error correction circuit, operating method thereof and data storage device including the same
CN105915234B (zh) 避免对涡轮乘积码误校正的方案
KR20210116034A (ko) 반도체장치
CN106788465B (zh) 用于涡轮乘积码的装置和方法
US20220374152A1 (en) Low latency ssd read architecture with multi-level error correction codes (ecc)
US11336296B2 (en) Controller and memory system having the controller

Legal Events

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