CN109714062A - 执行迭代解码的解码器和使用该解码器的存储设备 - Google Patents

执行迭代解码的解码器和使用该解码器的存储设备 Download PDF

Info

Publication number
CN109714062A
CN109714062A CN201811247776.8A CN201811247776A CN109714062A CN 109714062 A CN109714062 A CN 109714062A CN 201811247776 A CN201811247776 A CN 201811247776A CN 109714062 A CN109714062 A CN 109714062A
Authority
CN
China
Prior art keywords
data
flag
memory
ecc
flag data
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
Application number
CN201811247776.8A
Other languages
English (en)
Other versions
CN109714062B (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN109714062A publication Critical patent/CN109714062A/zh
Application granted granted Critical
Publication of CN109714062B publication Critical patent/CN109714062B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • 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/085Error detection or correction by redundancy in data representation, e.g. by using checking codes using codes with inherent redundancy, e.g. n-out-of-m codes
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/11Error 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 using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • 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/2948Iterative decoding
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

提供了包括主存储器、标志存储器和解码逻辑器件的解码器。标志存储器被配置为存储标志数据,并且解码逻辑器件被配置为执行迭代。此外,解码逻辑器件被配置为:使用第一数据执行第i次操作,其中,i是自然数,对第二数据进行标志编码,第二数据是通过对第一数据执行第i次操作所获得的结果,如果标志编码成功,则将通过对第二数据执行标志编码所获得的结果作为第一标志数据存储在标志存储器中,并且如果标志编码失败,则将与第二数据的第一标志数据不同的预定第二标志数据存储在标志存储器中。

Description

执行迭代解码的解码器和使用该解码器的存储设备
相关申请的交叉引用
本申请基于并要求于2017年10月26日在韩国知识产权局递交的韩国专利申请No.10-2017-0139976的优先权,其全部公开内容通过引用合并于此。
技术领域
本公开涉及一种用于执行迭代解码的解码器、以及使用该解码器的存储设备。更具体地,本公开涉及一种用于执行迭代解码的解码器,其包括用于在迭代中存储中间值的第一存储器和具有比第一存储器更大的存储容量的第二存储器。
背景技术
低密度奇偶校验(LDPC)解码涉及执行迭代,其中,每次操作的结果值作为中间值存储在存储器中,并且中间值用于执行下一操作。例如,第i次操作过程的结果作为中间值存储在存储器中,并且通过在第(i+1)次操作过程中访问该存储器来读取中间值,以使用中间值执行第(i+1)次操作。
为了执行这种过程,需要在每次操作过程中访问存储器,因此消耗了大量的电力。此外,如果即使存储在存储器中的中间值中的单个比特中存在错误,则也可能花费很长时间来纠错,或者可能无法纠错。
通过简单地减少对存储器的访问次数,可以节省功耗。然而,这会使纠错劣化。为了减少对存储器的访问次数而不使纠错劣化,吞吐量被降低。
发明内容
本公开的各个方面提供了一种解码器,其以低功耗执行迭代解码而不影响吞吐量。
本公开的各个方面还提供了一种解码器,其以低功耗和改进的纠错执行迭代解码。
根据实施例的一个方面,提供了一种解码器,包括:主存储器;标志存储器,被配置为存储标志数据;以及解码逻辑器件,被配置为执行包括以下各项的迭代:使用第一数据执行第i次操作以获得第二数据,i是自然数,对第二数据执行标志编码操作,响应于标志编码操作成功,将通过对第二数据执行标志编码操作所获得的结果作为第一标志数据存储在标志存储器中,以及响应于标志编码操作未成功,将与第二数据的第一标志数据不同的预定第二标志数据存储在标志存储器中。
第一标志数据的大小可以小于第一数据的大小和第二数据的大小,并且第二标志数据的大小可以小于第一数据的大小和第二数据的大小。
标志存储器的存储容量可以小于主存储器的存储容量。
解码逻辑器件还可以被配置为:响应于标志编码操作未成功,将第二数据存储在主存储器中。
解码逻辑器件还可以被配置为:参考存储在标志存储器中的标志数据;当被参考的标志数据是第一标志数据时,通过对第一标志数据进行标志解码来生成第二数据;当被参考的标志数据是第二标志数据时,通过访问主存储器并从主存储器进行读取来生成第二数据;以及使用所生成的第二数据来执行第(i+1)次操作。
解码逻辑器件还可以被配置为:在缓冲器清除期间参考标志数据。
解码逻辑器件还可以被配置为:使用校验子辅助码将具有随机值的数据变换为第一数据。
第一标志数据指示第一数据中具有值1的比特的位置。
可以通过使用游程长度码来执行标志编码操作。
主存储器可以与标志存储器物理分离。
根据另一实施例的一个方面,提供了一种解码器,包括:主存储器;标志存储器,被配置为存储标志数据;以及解码逻辑器件,被配置为执行包括以下各项的迭代:参考存储在标志存储器中的标志数据,以及基于被参考的标志数据生成具有比标志数据的大小更大的大小的第一数据,以及其中,解码逻辑器件还被配置为:响应于确定被参考的标志数据是第一标志数据,通过对第一标志数据执行标志解码操作来生成第一数据,以及响应于确定被参考的标志数据是与第一标志数据不同的预定第二数据,通过访问主存储器并从主存储器进行读取来生成第一数据。
解码逻辑器件还可以被配置为:重复所述参考标志存储器和所述生成第一数据i次,其中,i是自然数。
解码逻辑器件还可以被配置为:当被参考的标志数据为空时,初始化并生成第一数据。
解码逻辑器件还可以被配置为:在缓冲器清除期间参考标志数据。
主存储器可以与标志存储器物理分离。
根据另一实施例的一个方面,提供了一种存储设备,包括:至少一个非易失性存储器;以及校错和纠错(ECC)设备,连接到至少一个非易失性存储器,其中,ECC设备包括:第一存储器;第二存储器,具有比第一存储器更大的存储容量;以及解码逻辑器件,被配置为响应于读取存储在至少一个非易失性存储器中的数据,使用迭代来执行 ECC解码,其中,ECC解码包括以下之一:根据迭代的结果,仅访问第一存储器、以及根据迭代的结果,访问第一存储器和第二存储器二者。
ECC解码还可以包括:对第i次操作的结果执行ECC标志编码操作,i是自然数;基于ECC标志编码操作的结果来生成第一标志数据或第二标志数据;以及将第一标志数据或第二标志数据存储在第一存储器中。
基于ECC标志编码操作的结果是否成功来生成第一标志数据或第二标志数据,其中,响应于ECC标志编码操作成功,生成ECC标志编码操作的结果作为第一标志数据,并且响应于ECC标志编码操作未成功,生成与第一标志数据不同的预定第二标志数据。
存储设备可以包括分别连接到第一非易失性存储器和第二非易失性存储器的第一ECC设备和第二ECC设备,其中,第一ECC设备和第二ECC设备分别执行第一ECC解码和第二ECC解码,以及其中,当第一ECC设备完成第一ECC解码时,第一ECC设备和第二ECC设备一起执行第二ECC解码。
ECC设备还可以被配置为使用校验子辅助码将存储在至少一个非易失性存储器中的数据变换为第一数据。
在阅读以下详细描述和权利要求之后,对于本领域普通技术人员来说,本公开的这些和其他方面、实施例和优点将变得显而易见。
附图说明
通过参照附图详细描述本公开的某些实施例,本公开的以上和其他方面和特征将变得更清楚,在附图中:
图1是根据实施例的解码器的框图。
图2是示出了根据实施例的在迭代解码之前执行的过程的流程图。
图3A是示出了根据实施例的使用校验子辅助码对原始数据进行变换的示例的图。
图3B是示出了根据实施例的使用校验子辅助码对原始数据进行变换的另一示例的图。
图4A是示出了根据实施例的标志编码和标志解码的图。
图4B是示出了根据实施例的标志编码失败的示例的图。
图5是示出了根据实施例的标志编码和标志解码的图。
图6是示出了根据实施例的迭代的过程的流程图。
图7A、图7B、图8A和图8B是示出了根据实施例的迭代过程的图。
图9是示出了根据实施例的在执行迭代的过程中每个元素的操作的时序图。
图10是根据实施例的通过迭代执行纠错的存储设备的框图。
图11是示出了根据实施例的由存储设备使用迭代执行ECC解码的方法的流程图。
图12是示出了根据实施例的接收机的结构的框图。
具体实施方式
图1是根据实施例的解码器的框图。
参考图1,根据实施例的解码器100可以包括解码逻辑器件110、主存储器120、标志存储器130和缓冲器140。解码器100可以执行迭代解码。例如,解码器100可以是低密度奇偶校验(LDPC)解码器。然而,应当理解,本公开的实施例不限于此。例如,解码器100可以是Turbo解码器。
解码逻辑器件110可以包括逻辑门112、标志编码逻辑器件114 和标志解码逻辑器件116。
逻辑门112可以实际上使用数据执行操作。标志编码逻辑器件114 可以执行标志编码以生成比第一数据(例如,0001000000000000)更小的标志数据(例如,01101)。标志编码逻辑器件114可以在其执行标志编码时使用逻辑门112执行操作。标志解码逻辑器件116可以执行标志解码以将标志数据恢复回第一数据。标志解码逻辑器件116可以在其执行标志解码时使用逻辑门112执行操作。
尽管图1将解码逻辑器件110示出为包括标志编码逻辑器件114 和标志解码逻辑器件116,但是本公开的实施例不限于此。例如,标志编码逻辑器件114和标志解码逻辑器件116可以与解码逻辑器件 110分离。此外,标志编码逻辑器件114和标志解码逻辑器件116可以各自包括其自己的逻辑门。标志编码逻辑器件114和标志解码逻辑器件116可以分别使用它们各自的逻辑门来执行标志编码和标志解码。
解码逻辑器件110可以处理整个迭代解码操作。例如,解码逻辑器件110可以访问主存储器120以读取数据。解码逻辑器件110还可以将读取的数据写入缓冲器140。此外,解码逻辑器件110可以使用写入缓冲器140的数据和逻辑门112来执行操作。此外,解码逻辑器件110可以在访问主存储器120之前访问标志存储器130,并且可以确定标志数据的类型以确定是否访问主存储器120。稍后将对其进行更详细的描述。
在接收到从主机发出的命令时,解码逻辑器件110可以执行迭代解码。附加地,在给定的特定情况下,解码逻辑器件110可以执行迭代解码。例如,当向解码器100提供具有预定长度的数据时,解码逻辑器件110可以执行迭代解码。然而,应当理解,本公开的实施例不限于此。
本文使用的术语“解码逻辑器件110”不旨在限制本公开的技术构思。例如,图1的解码逻辑器件110可以实现为中央处理单元(CPU)、微处理器(MPU)、应用处理器(AP)和/或其组合。
主存储器120可以在其中存储数据。例如,主存储器120可以存储第一数据和第二数据。主存储器120可以向缓冲器140提供解码逻辑器件110执行操作所需的数据。存储器120可以是暂时性计算机可读介质。例如,主存储器120可以临时存储数据并且可以由计算机读取,主存储器120例如是寄存器、高速缓存、静态随机存取存储器 (SRAM)和动态随机存取存储器(DRAM)。然而,应当理解,本公开的实施例不限于此。例如,主存储器120可以是半永久地存储数据的介质,例如闪存、CD、DVD、硬盘、蓝光盘、USB和ROM。
标志存储器130可以在其中存储数据。例如,标志存储器130可以存储第一标志数据和第二标志数据。第一标志数据和第二标志数据的大小可以分别小于第一数据和第二数据的大小。因此,标志存储器 130的存储容量可以小于主存储器120的存储容量。结果,用于访问标志存储器130的功耗可以小于用于访问主存储器120的功耗。
标志存储器130可以是与主存储器120物理分离的不同存储器。标志存储器130可以是暂时性计算机可读介质。例如,标志存储器130 可以临时存储数据并且可以由机器读取,标志存储器130例如是寄存器、高速缓存、静态随机存取存储器(SRAM)和动态随机存取存储器 (DRAM)。然而,应当理解,本公开的实施例不限于此。例如,标志存储器130可以是半永久地存储数据的介质,例如闪存、CD、DVD、硬盘、蓝光盘、USB和ROM。
缓冲器140可以是用于临时存储数据以供解码逻辑器件110执行操作的空间。尽管缓冲器140在图1中被示为与解码逻辑器件110分离,但是本公开的实施例不限于此。例如,在某些实施例中,缓冲器 140可以合并到解码逻辑器件110中。即,缓冲器140可以是解码逻辑器件110的内部缓冲存储器。缓冲器140可以是暂时性计算机可读介质。暂时性计算机可读介质可以临时存储数据并且可以由机器读取,暂时性计算机可读介质例如是寄存器、高速缓存、静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。然而,应当理解,本公开的示例实施例不限于此。
图2是用于示出根据实施例的在迭代解码之前执行的过程的流程图。
参考图2,首先,将原始数据变换为第一数据(步骤S210)。将原始数据变换为第一数据可以包括将具有随机值的原始数据变换为具有简单值的第一数据。例如,简单的数据值可以指包含的绝大多数为 1或0的值。例如,000000010000000可以是简单值。
在一些实施例中,校验子辅助码可以用于将原始数据变换为第一数据。校验子辅助码可以表示原始数据中1可能发生错误的位置。将参考图3A和图3B对其进行更详细的描述。
图3A是示出了根据实施例的使用校验子辅助码对原始数据进行变换的示例的图。
图3B是示出了根据实施例的使用校验子辅助码对原始数据进行变换的另一示例的图。
参考图3A,原始数据310可以是0011101010010101。如果估计从最右边的比特起的第13比特的值存在错误,则可以使用校验子辅助码将其表示为0001000000000000。换言之,当使用校验子辅助码将原始数据310变换为第一数据320时,第一数据320可以具有值0001000000000000。
参考图3B,原始数据311可以是0011101010010101。如果估计从最右边的比特起的第7比特和第10比特的值存在错误,则可以使用校验子辅助码将其表示为0000001001000000。换言之,当使用校验子辅助码将原始数据311变换为第一数据321时,第一数据321可以具有值0000001001000000。应当注意,为了便于说明,图3A和图3B中所示的示例中描述的上述值仅是说明性的,并不旨在限制本公开的范围。
尽管在图3A和图3B中所示的示例中,解码逻辑器件110可以分别将原始数据310和原始数据311变换为第一数据320和第一数据 321,但是本公开的实施例不限于此。例如,在某些实施例中,解码器 100外部的处理器可以分别将原始数据310和原始数据311变换为第一数据320和第一数据321。
尽管在前面的描述中使用校验子辅助码将具有随机值的原始数据310和原始数据311变换为具有简单值的第一数据320和第一数据 321,但是本公开的实施例不限于此。可以采用简化某些数据的任何公知技术将原始数据310和原始数据311变换为第一数据320和第一数据321。
在一个实施例中分别将原始数据310和原始数据311变换为第一数据320和第一数据321,以实现无损标志编码和标志解码,这将在后面详细描述。因此,如果原始数据具有简单值,则可以将原始数据指定为第一数据,而不执行将原始数据变换为第一数据的过程。换言之,本文的第一数据可以是绝大多数为1或0的数据,不管具有或不具有中间过程。
再次参考图2,可以使用第一数据执行迭代(步骤S220)。在描述执行迭代的过程之前,将参照图4A、图4B和图5描述根据本公开的某些实施例的标志编码和标志解码。
图4A是示出了根据实施例的标志编码和标志解码的图。
参考图4A,根据实施例的解码逻辑器件110可以对第一数据420 进行标志编码以生成第一标志数据430。例如,第一标志数据430可以指示第一数据420中值1的位置。例如,当第一数据420是 0001000000000000时,通过标志编码生成的第一标志数据430可以是01101。换言之,第一数据420在从最右边的比特起的第13比特具有值1,并且通过标志编码生成的第一标志数据430可以是01101,其表示13。
可以通过反转执行上述标志编码的过程来执行标志解码。因此,为了便于说明,没有描述标志解码的过程。
可以使用图3A中的校验子辅助码来变换图4A的第一数据420,但是本公开的实施例不限于此。
图4B是用于示出根据本公开的一些示例实施例的标志编码失败的示例的图。
参考图4B,根据实施例,可以对第一数据421进行标志编码以生成第二标志数据431。例如,第二标志数据431可以表示第一数据421 的标志编码失败,并且可以是与第一标志数据不同的预定值。例如,如果当对第一数据421进行标志编码时,第一数据421包括两个或更多个1,则可能无法有效地指示1的位置。换言之,如果第一数据421 包括两个或更多个1,则标志编码可能失败。如果标志编码失败,则可以生成具有预定值的第二标志数据431,其与第一标志数据不同并且指示标志编码失败。例如,第二标志数据431可以是11111。
当标志数据是第二标志数据431时,不能执行标志解码。例如,当第一数据421是0000001001000000时,在任一种情况下都可以通过标志编码生成值11111。因此,当第二标志数据431是11111时,它不能恢复到第一数据421。因此,在某些实施例中,如果标志数据是第二标志数据431,则可以不执行标志解码。
可以使用图3B中的校验子辅助码来变换图4B的第一数据421,但是本公开的实施例不限于此。
参考图1、图4A和图4B,当分别将第一数据420和第一数据421 与第一标志数据430和第二标志数据431进行比较时,如果第一数据 420和第一数据421具有2N个比特的大小,则第一标志数据430和第二标志数据431可以具有N+1个比特的大小。例如,如果第一数据420 和第一数据421具有210个比特的大小,则第一标志数据430和第二标志数据431可以具有11个比特的大小。因此,第一标志数据430和第二标志数据431可以比第一数据420和第一数据421小得多。因此,如上所述,存储第一数据420和第一数据421的主存储器120的存储容量可以大于存储第一标志数据430和第二标志数据431的标志存储器130的存储容量。
图5是用于示出根据实施例的标志编码和标志解码的图。
参考图5,根据实施例,可以对第一数据520进行标志编码以生成第一标志数据530。例如,标志编码和标志解码可以使用游程长度码。例如,假设第一数据520是0000000...00111000。此外,假设从最左边的比特起连续0的数量是100。在该示例中,通过标志编码生成的第一标志数据530可以是0(100)1(3)0(3)。各个括号中的每个数字表示括号前的连续数字的数量。即,游程长度码可以指示每个游程(出现相同数据值的序列)的长度。在一些实施例中,通过游程长度码,游程数量越大,第一标志数据530的大小可以越小。例如,假设第一数据520包括M个连续数据1和N个连续0,则第一数据520 的大小可以是M+N。如果使用游程长度码对第一数据520进行标志编码,则第一标志数据530的大小可以是1+log2M+1+log2N。每个1的大小用于指示连续数据的值(例如,1或0)。log2M和log2N分别用于指示连续数据值的数量(例如,M个连续数据值、N个连续数据值)。即,第一标志数据530可以是1(M)0(N)。
可以通过反转执行上述标志编码的过程来执行标志解码。因此,为了便于说明,没有描述标志解码的过程。
在图4A、图4B和图5,已经描述了根据实施例的标志编码和标志解码。然而,应当理解,这仅仅是说明性的。本领域技术人员将能够根据第一数据的类型、形式和错误数量来选择和应用适当的标志编码和标志解码方案。例如,根据实施例,可以使用霍夫曼码或Lempel-Ziv-Welch码来执行标志编码和标志解码。
图6是示出了根据实施例的迭代的过程的流程图。
图7A、图7B、图8A和图8B是示出了根据实施例的迭代过程的图。
为了便于说明,将结合图7A、图7B、图8A和图8B来描述图6 的流程图。
在图7A、图7B、图8A和图8B中,解码逻辑器件110、主存储器120、标志存储器130和缓冲器140可以与图1中的相同。参考图6,首先,当开始迭代过程时,首先参考标志存储器130(步骤S610)。
确定标志存储器130中是否存在标志数据(步骤S620)。如果确定标志存储器130中没有数据(步骤S620中的否),则初始化第一数据以生成第一数据(步骤S622)。初始化第一数据可以是将图3A和图3B的原始数据变换为第一数据的过程。
参考图7A和图7B,解码逻辑器件110可以参考标志存储器130。如果标志存储器130中没有标志数据,即,如果标志存储器130为空 (NULL),则解码逻辑器件110可以初始化第一数据并将其存储在缓冲器140中。例如,假设经初始化的第一数据是0000011010000000(①、②)。
再次参考图6,使用所生成的第一数据来执行操作(步骤S640)。如本文所使用的,为了便于说明,将第一数据的操作结果称为第二数据。
参考图7A,解码逻辑器件110可以使用存储在缓冲器140中的第一数据来执行操作。可以将第一数据的操作结果作为第二数据存储在缓冲器140中。例如,假设由解码逻辑器件110使用第一数据 0000011010000000的操作的结果是第二数据,即,0001000000000000 (图7A中的③)。
参考图7B,解码逻辑器件110可以使用存储在缓冲器140中的第一数据来执行操作。可以将第一数据的操作结果作为第二数据存储在缓冲器140中。例如,假设由解码逻辑器件110使用第一数据 0000011010000000的操作的结果是第二数据,即0000001001000000(图7B中的③)。
再次参考图6,通过对第二数据进行标志编码来生成标志数据(步骤S650)。将所生成的标志数据存储在标志存储器130中(步骤S660)。
参考图7A,解码逻辑器件110可以通过对第二数据进行标志编码来生成第一标志数据。第一标志数据可以是例如01101(图7A中的④)。
图7A中使用的标志编码可以是上面参考图4A描述的标志编码。换言之,可以生成第一标志数据以指示第二数据中1的位置。然而,应当理解,本公开的示例实施例不限于此。
解码逻辑器件110可以将第一标志数据存储在标志存储器130 中。例如,解码逻辑器件110可以将第一标志数据01101存储在标志存储器130中(图7A中的⑤)。
参考图7B,解码逻辑器件110可以通过对第二数据进行标志编码来生成第二标志数据。第二标志数据可以是例如11111(图7B中的④)。
图7B中使用的标志编码可以是上面参考图4B描述的标志编码。换言之,第二标志数据11111可以表示第二数据的标志编码失败。然而,应当理解,本公开的示例实施例不限于此。
解码逻辑器件110可以将第二标志数据存储在标志存储器130 中。例如,解码逻辑器件110可以将第二标志数据11111存储在标志存储器130中(图7B中的⑤)。
再次参考图6,确定所生成的标志数据的类型(步骤S662)。如果确定所生成的标志数据是第一标志数据,则确定是否已经完成迭代 (步骤S670)。如果不是(步骤S670中的否),则再次参考标志存储器130(步骤S610),并且重复上述过程。如果确定已经完成迭代(步骤S670中的是),则过程结束。
如果确定所生成的标志数据是第二标志数据,则将第二数据存储在主存储器120中(步骤S664)。
参考图7B,解码逻辑器件110可以将第二数据存储在主存储器 120中。例如,解码逻辑器件110可以将第二数据00000100100000存储在主存储器120中(图7B中的⑥)。
再次参考图6,确定是否已经完成迭代(步骤S670)。如果确定尚未完成迭代(步骤S670中的否),则再次参考标志存储器(步骤 S610),并且重复上述过程。如果确定已经完成迭代(步骤S670中的是),则过程结束。
确定标志存储器130中是否存在标志数据(步骤S620)。如果确定标志存储器130中存在标志数据(步骤S620中的是),则确定标志存储器130中的标志数据的类型(步骤S630)。如果确定标志存储器 130中的标志数据是第一标志数据,则对第一标志数据进行标志解码以生成第一数据(步骤S632)。随后,使用所生成的第一数据执行操作(步骤S640)。随后,可以以与上述方式相同的方式进行步骤S650 至S670。
参考图8A,解码逻辑器件110可以参考标志存储器130(①)。如果标志存储器130中存在第一标志数据,则解码逻辑器件110可以对第一标志数据进行标志解码以恢复第二数据,并且可以将其存储在缓冲器140中。例如,如果标志存储器130中存在第一标志数据01101,则解码逻辑器件110可以对其进行标志解码以恢复第二数据 0001000000000000,并且可以将其存储在缓冲器140中(②)。解码逻辑器件110可以使用存储在缓冲器140中的第二数据来执行操作 (③)。图8A中使用的标志解码可以是上面参考图4A描述的标志解码。然而,应当理解,这仅仅是说明性的。
再次参考图6,确定标志存储器130中是否存在标志数据(步骤 S620)。如果确定标志存储器130中的标志数据是第二标志数据,则访问主存储器120,以从主存储器120读取第一数据(步骤S634)。随后,使用经读取的第一数据执行操作(步骤S640)。随后,可以以与上述方式相同的方式进行步骤S650至S670。将参考图8A和图8B 详细描述这种过程。
参考图8B,解码逻辑器件110可以参考标志存储器130(①)。如果标志存储器130中存在第二标志数据,则解码逻辑器件110可以访问主存储器120。解码逻辑器件110可以从主存储器120读取第二数据以将其存储在缓冲器140中。例如,如果标志存储器130中存在第二标志数据11111,则解码逻辑器件110可以访问主存储器120。解码逻辑器件110可以从主存储器120读取第二数据 0001000000000000,以将其存储在缓冲器140中(②、③)。解码逻辑器件110可以使用存储在缓冲器140中的第二数据来执行操作(④)。
图9是用于示出根据实施例的在执行迭代的过程中每个元素的操作的时序图。
参考图9,在每次迭代结束时发生缓冲器清除。根据实施例,解码逻辑器件110可以使用存储在缓冲器140中的数据来执行操作,并且可以将操作的结果存储在主存储器120中,或者通过对操作的结果执行标志编码来生成第一标志数据,以将第一标志数据存储在标志存储器130中。随后,需要擦除存储在缓冲器140中的数据以用于后续操作,在本文中被称为缓冲器清除。
当发生缓冲器清除时,解码逻辑器件110可以参考标志存储器 130。通过这样做,可以节省参考标志存储器130所需的时间。因此,在某些实施例中,因为解码逻辑器件110在缓冲器清除期间参考标志存储器130,所以解码逻辑器件110不分配参考标志存储器130的时间,并且因此可以保持总吞吐量。
如果没有标志存储器130,则可以在除了发生缓冲器清除之外的任何时间访问主存储器120。即,如果没有标志存储器130,则在发生缓冲器清除时,可能无法访问主存储器120。
如果存在标志存储器130,则可以一直访问标志存储器130。
如果存在标志存储器130,则可以在从其读取数据或将数据写入其中时访问主存储器120。换言之,仅当标志存储器130中存在第二标志数据时才可以访问主存储器120。
即,当第一标志数据在标志存储器130中时,仅可以访问标志存储器130。此外,当第二标志数据在标志存储器130中时,可以访问主存储器120和标志存储器130二者。随着一遍又一遍地重复操作过程,可以减少对主存储器120的访问次数。然而,应当理解,这仅仅是说明性的。
可以仅当未访问主存储器120时才执行标志解码。即,可以仅当第一标志数据在标志存储器130中时才执行标志解码。
图10是根据实施例的通过迭代执行纠错的存储设备的框图。
参考图10,根据实施例的存储设备1000可以包括非易失性存储器控制器1010、ECC设备1020_1至1020_N和非易失性存储器1030_1 至1030_N。
非易失性存储器控制器1010可以包括处理器1012、控制器1014 和本地存储器1016。
处理器1012可以实现为电路、逻辑、代码或其组合,并且可以控制存储设备1000的整体操作。当向存储设备1000供电时,处理器 1012可以在RAM上运行用于操作存储在ROM中的存储设备1000的固件,从而控制存储设备1000的整体操作。
控制器1014控制布置在存储设备1000中的本地存储器1016。本地存储器1016可以包括ROM或RAM。在某些实施例中,ROM可以存储用于驱动存储设备1000的固件代码。RAM可以存储从主机HOST输入的各种命令或变量。此外,RAM可以存储输入到非易失性存储器1030_1至1030_N或从非易失性存储器1030_1至1030_N输出的数据。此外,可以存储输入到非易失性存储器1030_1至1030_N以及从非易失性存储器1030_1至1030_N输出的各种参数和变量。
如图10所示,ECC设备1020_1至1020_N可以分别包括解码逻辑器件1022_1至1022_N、第一存储器1024_1至1024_N和第二存储器 1026_1至1026_N。解码逻辑器件1022_1至1022_N、第一存储器1024_1 至1024_N和第二存储器1026_1至1026_N可以与图1的解码逻辑器件 110、标志存储器130和主存储器120相同或类似。换言之,第一存储器1024_1至1024_N的存储容量可以小于第二存储器1026_1至1026_N 的存储容量。此外,存储在第一存储器1024_1至1024_N中的数据的大小可以小于存储在第二存储器1026_1至1026_N中的数据的大小。 ECC设备1020_1至1020_N可以使用根据本公开的一些示例实施例的迭代来执行纠错解码(ECC解码)。尽管未在图中示出,但是每个ECC 设备可以包括图1的缓冲器140。
非易失性存储器1030_1至1030_N可以将从非易失性存储器控制器1010接收的数据存储在存储单元中。具体地,非易失性存储器 1030_1至1030_N可以包括用于存储数据的多个单元阵列。单元阵列可以包括多个面。面可以包括多个块。块可以包括多个页。在一些实施例中,非易失性存储器1030_1至1030_N可以是包括电可擦除可编程只读存储器(EEPROM)、铁电随机存取存储器(FRAM)、相变随机存取存储器(PRAM)和磁随机存取存储器(MRAM)的非易失性存储器。
尽管图10中所示的存储设备1000分别包括多个ECC设备1020_1 至1020_N和与其相连的多个非易失性存储器1030_1至1030_N,但是本公开的示例实施例不限于此。例如,多个非易失性存储器1030_1 至1030_N可以连接到单个ECC设备1020_1。此外,例如,存储设备1000可以包括单个ECC设备1020_1和单个非易失性存储器1030_1。因此,本领域技术人员将能够以各种组合实现存储设备。
在某些实施例中,当从主机HOST输入数据读取命令时,非易失性存储器控制器1010可以从非易失性存储器1030_1至1030_N读取数据。在这样做时,ECC设备1020_1至1020_N可以使用上面参考图1 至图9描述的迭代,分别对存储在非易失性存储器1030_1至1030_N 中的数据进行ECC解码。例如,ECC解码可以是LDPC解码。在下文中,将参考图11来描述根据实施例的驱动存储设备的方法。
图11是示出了根据实施例的由存储设备使用迭代执行ECC解码的方法的流程图。为了便于说明,将参考图10进行描述。
参考图10和图11,当从主机HOST输入读取命令时,可以开始对存储在非易失性存储器1030_1至1030_N中的数据进行纠错。备选地,当从主机HOST输入读取命令时,可以分别向ECC设备1020_1至1020_N 发送非易失性存储器1030_1至1030_N中存储的数据,并且ECC设备 1020_1至1020_N中的每一个可以当其接收到预定长度的数据时开始对数据进行纠错。可以使用迭代通过ECC解码来纠正存储数据中的错误(步骤S1100)。为了便于说明,假设使用信号ECC设备1020_1和单个非易失性存储器1030_1执行ECC解码过程。为了便于说明,将省略或简要描述多余的描述。
当ECC解码开始时,解码逻辑器件1022_1首先访问第一存储器 1024_1(步骤S1110)并参考标志数据(步骤S1120)。
确定被参考的标志数据的类型(步骤S1130)。如果确定被参考的标志数据是第二标志数据,则访问第二存储器1026_1(步骤S1132)。在访问第二存储器1026_1之后,执行操作(步骤S1140)。如果确定被参考的标志数据是第一标志数据,则在不访问第二存储器1026_1 的情况下执行操作(步骤S1140)。例如,如果确定被参考的标志数据是第一标志数据,则解码逻辑器件1022_1可以对第一存储器1024_1 的第一标志数据进行标志解码以将其用于操作。例如,如果被参考的标志数据是第二标志数据,则解码逻辑器件1022_1可以读取存储在第二存储器1026_1中的数据以将其用于操作。
对操作的结果进行标志编码并将其存储在第一存储器1024_1中 (步骤S1150)。
确定通过对操作结果进行标志编码而生成的标志数据的类型(步骤S1160)。
如果确定所生成的标志数据是第二标志数据,则访问第二存储器 1026_1,并且将操作的结果存储在第二存储器1026_1中(步骤S1162)。然后,确定是否完成迭代(步骤S1170)。如果确定所生成的标志数据是第一标志数据,则确定是否完成迭代(步骤S1170)。
如果确定已经完成迭代,即,已经完成ECC解码,则可以使用迭代的最终结果来进行纠错(步骤S1180)。
在某些实施例中,可以并行执行ECC解码。此外,例如,当非易失性存储器控制器1010分别从多个非易失性存储器1030_1至1030_N 读取多个数据项时,多个ECC设备1020_1至1020_N中的每一个可以执行ECC解码。
在某些实施例中,在执行ECC解码时,已经完成ECC解码的ECC 设备之一(例如,ECC设备1020_1)可以一起执行尚未完成ECC解码的另一ECC设备(例如,ECC设备1020_2)的操作。例如,当执行读取命令时,第一ECC设备1020_1和第二ECC设备1020_2可以分别对存储在第一非易失性存储器1030_1和第二非易失性存储器1030_2中的数据进行解码。当第一ECC设备1020_1完成ECC解码时,第一ECC 设备1020_1可以向非易失性存储器控制器1010发送指示ECC解码完成的消息。当非易失性存储器控制器1010从第一ECC设备1020_1接收到消息时,非易失性存储器控制器1010可以允许第一ECC设备 1020_1加入由尚未发送指示ECC解码完成的消息的第二ECC设备 1020_2所执行的操作过程。
图12是示出了根据实施例的接收机的结构的框图。将省略或简要描述上述相同元件的描述以避免冗余。
参考图12,根据实施例的接收机1200可以包括天线1210和解码器1220。图12的解码器1220可以与图1至图9的解码器100相同。
天线1210可以接收经编码的数据。例如,经编码的数据可以是经LDPC编码的数据。可以向解码器1220发送由天线1210接收的经编码的数据。解码器1220可以使用迭代解码对经编码的数据进行解码。例如,当从天线1210发送经编码的数据时,解码器1220可以将经编码的数据变换为具有简单值的第一数据。解码器1220可以通过迭代过程对第一数据进行解码。当解码器1220执行迭代时,它可以参考解码器1220中包括的第一存储器1222。解码器1220可以根据存储在第一存储器1222中的数据的类型而仅访问第一存储器1222或者访问第一存储器1222和第二存储器1224二者。第一存储器1222的存储容量可以小于第二存储器1224的存储容量。存储在第一存储器1222中的数据的大小可以小于存储在第二存储器1224中的数据的大小。由解码器 1220执行的迭代解码可以与本文描述的解码方案相同或类似。
尽管已经参照本公开的某些实施例具体示出并描述了本公开,但是本领域普通技术人员将理解,在不脱离如由所附的权利要求所限定的本公开的精神和范围的前提下,可以进行形式和细节的各种改变。应当仅在描述的意义下而非为了限制目的来考虑某些实施例。

Claims (20)

1.一种解码器,包括:
主存储器;
标志存储器,被配置为存储标志数据;以及
解码逻辑器件,被配置为执行包括以下各项的迭代:
使用第一数据执行第i次操作以获得第二数据,i是自然数,
对所述第二数据执行标志编码操作,
响应于所述标志编码操作成功,将通过对所述第二数据执行所述标志编码操作所获得的结果作为第一标志数据存储在所述标志存储器中,以及
响应于所述标志编码操作未成功,将与所述第二数据的所述第一标志数据不同的预定第二标志数据存储在所述标志存储器中。
2.根据权利要求1所述的解码器,其中,所述第一标志数据的大小小于所述第一数据的大小和所述第二数据的大小,并且所述第二标志数据的大小小于所述第一数据的大小和所述第二数据的大小。
3.根据权利要求1所述的解码器,其中,所述标志存储器的存储容量小于所述主存储器的存储容量。
4.根据权利要求1所述的解码器,其中,所述解码逻辑器件还被配置为:响应于所述标志编码操作未成功,将所述第二数据存储在所述主存储器中。
5.根据权利要求4所述的解码器,其中,所述解码逻辑器件还被配置为:
参考存储在所述标志存储器中的标志数据;
当被参考的标志数据是所述第一标志数据时,通过对所述第一标志数据进行标志解码来生成所述第二数据;
当被参考的标志数据是所述第二标志数据时,通过访问所述主存储器并从所述主存储器进行读取来生成所述第二数据;以及
使用所生成的第二数据来执行第(i+1)次操作。
6.根据权利要求5所述的解码器,其中,所述解码逻辑器件还被配置为:在缓冲器清除期间参考所述标志数据。
7.根据权利要求1所述的解码器,其中,所述解码逻辑器件还被配置为:
使用校验子辅助码将具有随机值的数据变换为所述第一数据。
8.根据权利要求7所述的解码器,其中,所述第一标志数据指示所述第一数据中具有值1的比特的位置。
9.根据权利要求1所述的解码器,其中,通过使用游程长度码来执行所述标志编码操作。
10.根据权利要求1所述的解码器,其中,所述主存储器与所述标志存储器物理分离。
11.一种解码器,包括:
主存储器;
标志存储器,被配置为存储标志数据;以及
解码逻辑器件,被配置为执行包括以下各项的迭代:
参考存储在所述标志存储器中的所述标志数据,以及
基于被参考的标志数据生成第一数据,所述第一数据的大小大于所述标志数据的大小,以及
其中,所述解码逻辑器件还被配置为:
响应于确定所述被参考的标志数据是第一标志数据,通过对所述第一标志数据执行标志解码操作来生成所述第一数据,以及
响应于确定所述被参考的标志数据是与所述第一标志数据不同的预定第二数据,通过访问所述主存储器并从所述主存储器进行读取来生成所述第一数据。
12.根据权利要求11所述的解码器,其中,所述解码逻辑器件还被配置为:重复所述参考所述标志存储器和所述生成所述第一数据i次,其中,i是自然数。
13.根据权利要求11所述的解码器,其中,所述解码逻辑器件还被配置为:当所述被参考的标志数据为空时,初始化并生成所述第一数据。
14.根据权利要求11所述的解码器,其中,所述解码逻辑器件还被配置为:在缓冲器清除期间参考所述标志数据。
15.根据权利要求11所述的解码器,其中,所述主存储器与所述标志存储器物理分离。
16.一种存储设备,包括:
至少一个非易失性存储器;以及
校错和纠错ECC设备,连接到所述至少一个非易失性存储器,
其中,所述ECC设备包括:
第一存储器;
第二存储器,具有比所述第一存储器更大的存储容量;以及
解码逻辑器件,被配置为响应于读取存储在所述至少一个非易失性存储器中的数据,使用迭代来执行ECC解码,
其中,所述ECC解码包括以下之一:根据所述迭代的结果,仅访问所述第一存储器,以及根据所述迭代的结果,访问所述第一存储器和所述第二存储器二者。
17.根据权利要求16所述的存储设备,其中,所述ECC解码还包括:对第i次操作的结果执行ECC标志编码操作,i是自然数;
基于所述ECC标志编码操作的结果来生成第一标志数据或第二标志数据;以及
将所述第一标志数据或所述第二标志数据存储在所述第一存储器中。
18.根据权利要求17所述的存储设备,其中,基于所述ECC标志编码操作的结果是否成功来生成所述第一标志数据或所述第二标志数据,
其中,响应于所述ECC标志编码操作成功,生成所述ECC标志编码操作的结果作为所述第一标志数据,并且响应于所述ECC标志编码操作未成功,生成与所述第一标志数据不同的预定第二标志数据。
19.根据权利要求17所述的存储设备,其中,所述存储设备包括分别连接到第一非易失性存储器和第二非易失性存储器的第一ECC设备和第二ECC设备,其中,所述第一ECC设备和所述第二ECC设备分别执行第一ECC解码和第二ECC解码,以及
其中,当所述第一ECC设备完成所述第一ECC解码时,所述第一ECC设备和所述第二ECC设备一起执行所述第二ECC解码。
20.根据权利要求16所述的存储设备,其中,所述ECC设备还被配置为:使用校验子辅助码将存储在所述至少一个非易失性存储器中的数据变换为第一数据。
CN201811247776.8A 2017-10-26 2018-10-24 执行迭代解码的解码器和使用该解码器的存储设备 Active CN109714062B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170139976A KR102467072B1 (ko) 2017-10-26 2017-10-26 반복 연산 과정을 이용하여 디코딩을 수행하는 디코더 및 이를 이용한 스토리지 장치
KR10-2017-0139976 2017-10-26

Publications (2)

Publication Number Publication Date
CN109714062A true CN109714062A (zh) 2019-05-03
CN109714062B CN109714062B (zh) 2024-05-14

Family

ID=66244425

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811247776.8A Active CN109714062B (zh) 2017-10-26 2018-10-24 执行迭代解码的解码器和使用该解码器的存储设备

Country Status (3)

Country Link
US (2) US11031957B2 (zh)
KR (1) KR102467072B1 (zh)
CN (1) CN109714062B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112116036A (zh) * 2019-06-19 2020-12-22 希尔-罗姆服务公司 患者支撑设备跟踪系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101604975A (zh) * 2009-07-08 2009-12-16 复旦大学 一种低功耗多模qc-ldpc码解码器及其工作方法
CN103778961A (zh) * 2012-10-23 2014-05-07 三星电子株式会社 基于存储在待编程存储单元中的数据来编码编程数据
CN106558332A (zh) * 2015-09-25 2017-04-05 爱思开海力士有限公司 数据处理器件及其操作方法
CN107025948A (zh) * 2017-05-17 2017-08-08 西安紫光国芯半导体有限公司 具有标志位指示数据长度的纠错功能的存储器和纠错方法
US9755665B1 (en) * 2014-09-23 2017-09-05 Marvell International Ltd. Systems and methods for an iterative decoding scheme
US9778985B1 (en) * 2016-08-17 2017-10-03 SK Hynix Inc. Operating method of data storage device

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3549519B2 (ja) * 2002-04-26 2004-08-04 沖電気工業株式会社 軟出力復号器
JP4946844B2 (ja) * 2007-12-13 2012-06-06 ソニー株式会社 記録再生装置および記録再生方法
WO2009075143A1 (ja) 2007-12-13 2009-06-18 Nec Corporation 復号装置、データ蓄積装置、データ通信システム、および復号方法
US20100037121A1 (en) 2008-08-05 2010-02-11 The Hong Kong University Of Science And Technology Low power layered decoding for low density parity check decoders
JP5488472B2 (ja) 2008-11-07 2014-05-14 日本電気株式会社 復号装置、この復号装置を有するデータ通信装置およびデータ記憶装置
TWI425519B (zh) 2009-12-09 2014-02-01 Nat Chip Implementation Ct Nat Applied Res Lab 低複雜度低密度同位元檢查碼解碼器之記憶體配置方法及其解碼器結構
CN103155421B (zh) * 2011-01-14 2016-11-09 马维尔国际贸易有限公司 Ldpc多解码器架构
US8677225B1 (en) 2011-02-11 2014-03-18 Marvell International Ltd. Low-density parity-check decoder
KR101267322B1 (ko) 2011-12-29 2013-05-24 한국과학기술원 Ldpc 복호기 및 그 복호방법
US8977937B2 (en) * 2012-03-16 2015-03-10 Lsi Corporation Systems and methods for compression driven variable rate decoding in a data processing system
KR101482684B1 (ko) 2013-10-15 2015-01-16 한국과학기술원 디코딩 방법 및 이를 포함하는 메모리 시스템의 동작 방법
US20150227419A1 (en) 2014-02-12 2015-08-13 Kabushiki Kaisha Toshiba Error correction decoder based on log-likelihood ratio data
US9906327B2 (en) * 2014-07-03 2018-02-27 Sony Semiconductor Solutions Corporation Receiving device, receiving method, and program
US10187086B2 (en) * 2017-03-15 2019-01-22 SK Hynix Inc. State-based decoding of product codes

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101604975A (zh) * 2009-07-08 2009-12-16 复旦大学 一种低功耗多模qc-ldpc码解码器及其工作方法
CN103778961A (zh) * 2012-10-23 2014-05-07 三星电子株式会社 基于存储在待编程存储单元中的数据来编码编程数据
US9755665B1 (en) * 2014-09-23 2017-09-05 Marvell International Ltd. Systems and methods for an iterative decoding scheme
CN106558332A (zh) * 2015-09-25 2017-04-05 爱思开海力士有限公司 数据处理器件及其操作方法
US9778985B1 (en) * 2016-08-17 2017-10-03 SK Hynix Inc. Operating method of data storage device
CN107025948A (zh) * 2017-05-17 2017-08-08 西安紫光国芯半导体有限公司 具有标志位指示数据长度的纠错功能的存储器和纠错方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112116036A (zh) * 2019-06-19 2020-12-22 希尔-罗姆服务公司 患者支撑设备跟踪系统

Also Published As

Publication number Publication date
KR102467072B1 (ko) 2022-11-11
US11791846B2 (en) 2023-10-17
CN109714062B (zh) 2024-05-14
US11031957B2 (en) 2021-06-08
US20210281280A1 (en) 2021-09-09
KR20190046318A (ko) 2019-05-07
US20190132008A1 (en) 2019-05-02

Similar Documents

Publication Publication Date Title
US10103749B2 (en) LDPC decoder, semiconductor memory system and operating method thereof
US9471421B2 (en) Data accessing method, memory storage device and memory controlling circuit unit
US10693496B2 (en) Memory system with LDPC decoder and method of operating such memory system and LDPC decoder
CN111081308A (zh) 用于混合非易失性存储系统的系统和方法
US10103748B2 (en) Decoding method, memory control circuit unit and memory storage device
US20150293811A1 (en) Decoding method, memory storage device and memory controlling circuit unit
WO2015095850A1 (en) Method to distribute user data and error correction data over different page types by leveraging error rate variations
KR102275717B1 (ko) 플래시 메모리 시스템 및 그의 동작 방법
US20150326249A1 (en) Modified trellis-based min-max decoder for non-binary low-density parity-check error-correcting codes
US10200063B2 (en) Memory controller, semiconductor memory system and operating method thereof
CN111756385A (zh) 错误校正解码器
CN111726121A (zh) 错误校正解码器和具有该错误校正解码器的存储器系统
CN108268338B (zh) 逐渐缩减大小的可变节点存储器
US10997021B2 (en) LDPC decoder, semiconductor memory system and operating method thereof
US11005503B2 (en) Memory system with hybrid decoding scheme and method of operating such memory system
US9236886B1 (en) Universal and reconfigurable QC-LDPC encoder
US20190296774A1 (en) Memory system and control method
CN106158046B (zh) 用于turbo乘积码的误校正避免
CN109714062A (zh) 执行迭代解码的解码器和使用该解码器的存储设备
EP3454217B1 (en) Detecting silent data corruption for mass storage devices
JP2020046823A (ja) メモリシステム
US11062758B2 (en) Memory system to process multiple word line failures with limited storage and method of operating such memory system
US20160248447A1 (en) Scheme to avoid miscorrection for turbo product codes
US11394403B1 (en) Error correction based on rate adaptive low density parity check (LDPC) codes with flexible column weights in the parity check matrices
US20230195358A1 (en) Separation of Parity Columns in Bit-Flip Decoding of Low-Density Parity-Check Codes with Pipelining and Column Parallelism

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