CN106874139A - 一种用于错误检查和纠正的编解码方法、装置及处理器 - Google Patents

一种用于错误检查和纠正的编解码方法、装置及处理器 Download PDF

Info

Publication number
CN106874139A
CN106874139A CN201510920256.9A CN201510920256A CN106874139A CN 106874139 A CN106874139 A CN 106874139A CN 201510920256 A CN201510920256 A CN 201510920256A CN 106874139 A CN106874139 A CN 106874139A
Authority
CN
China
Prior art keywords
data
ldpc
level
bch
code 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.)
Withdrawn
Application number
CN201510920256.9A
Other languages
English (en)
Inventor
刘安生
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MediaTek Singapore Pte Ltd
Original Assignee
MediaTek Singapore Pte 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 MediaTek Singapore Pte Ltd filed Critical MediaTek Singapore Pte Ltd
Priority to CN201510920256.9A priority Critical patent/CN106874139A/zh
Publication of CN106874139A publication Critical patent/CN106874139A/zh
Withdrawn legal-status Critical Current

Links

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
    • G06F11/1068Adding 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

Landscapes

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

Abstract

本申请公开了一种用于错误检查和纠正的编解码方法、装置及处理器,其中,该编码方法包括:存储控制器在接收到数据的写入指令时,分析所述数据的重要程度;在所述数据的重要程度属于第一重要级时,分别采用BCH和LDPC对所述数据进行编码,或采用不高于第一码率的LDPC对所述数据进行编码;在所述数据的重要程度属于第二重要级时,采用所述BCH或者高于所述第一码率的LDPC对所述数据进行编码;将编码后的所述数据写入到存储器中,并保存所述数据的编码信息。通过上述方式,能够针对不同数据智能配置编解码方式。

Description

一种用于错误检查和纠正的编解码方法、装置及处理器
技术领域
本申请涉及存储技术领域,特别是一种用于错误检查和纠正的编解码方法、装置及处理器。
背景技术
NAND存储器是目前使用广泛的数据存储工具。数据在NAND存储器内部的传输和保存的过程中,可能会由于存储器的硬件故障、软件故障、硬盘错误等导致该数据的损坏。故,为了保证用户数据的完整性,则需要对存储数据进行错误检查和纠正(Error Correcting Code,简称:ECC)。
通常,NAND存储器在写入数据时,需要对该数据进行编码使得编码后的该数据可实现错误检查和纠正,再将该可实现错误检查和纠正的数据写入到存储器中。在需要读出数据时,对存储的数据进行对应解码以实现错误检查和纠正,进而输出经过错误检查和纠正得到的准确数据。
然而,现有存储器都是固定采用一种编解码方式,并不能针对不同数据而灵活配置编解码方式。
发明内容
本申请提供一种用于错误检查和纠正的编解码方法、装置及处理器,能够针对不同数据智能配置编解码方式。
本申请第一方面提供一种用于错误检查和纠正的编码方法,包括:存储控制器在接收到数据的写入指令时,分析所述数据的重要程度;在所述数据的重要程度属于第一重要级时,分别采用BCH和低密度奇偶校验码LDPC对所述数据进行编码,或采用不高于第一码率的LDPC对所述数据进行编码;在所述数据的重要程度属于第二重要级时,采用所述BCH或者高于所述第一码率的LDPC对所述数据进行编码,其中,所述第一重要级的重要程度高于所述第二重要级的重要程度;以及将编码后的所述数据写入到存储器中,并保存所述数据的编码信息,其中,所述数据的编码信息包括所述数据采用的编码方式。
其中,所述分析所述数据的重要程度的步骤,包括:分析所述数据的来源、属性及类型中的至少一种,得到所述数据的重要程度值;当所述重要程度值超过第一预设值时,确定所述数据的重要程度属于第一重要级;以及当所述重要程度值不超过所述第一预设值时,确定所述数据的重要程度属于第二重要级。
其中,所述第二重要级包括第一重要子级和第二重要子级;所述当所述重要程度值不超过所述第一预设值时,确定所述数据的重要程度属于第二重要级的步骤包括:当所述重要程度值不超过所述第一预设值且超过第二预设值时,确定所述数据的重要程度属于所述第一重要子级;当所述重要程度值不超过所述第二预设值时,确定所述数据的重要程度属于所述第二重要子级,其中,所述第一预设值大于所述第二预设值;以及所述在所述数据的重要程度属于第二重要级时,采用所述BCH或者高于所述第一码率的LDPC对所述数据进行编码的步骤,包括:在所述数据的重要程度属于所述第一重要子级时,采用高于预设校验位数的BCH或高于所述第一码率且低于第二码率的LDPC对所述数据进行编码,在所述数据的重要程度属于所述第二重要子级时,采用不高于所述预设校验位数的BCH或不低于所述第二码率的LDPC对所述数据进行编码,其中,所述第一码率高于所述第二码率。
其中,所述存储器为SLC、MLC或TLC类型的NAND存储器;在所述将编码后的所述数据写入到存储器中,并保存所述数据的编码信息的步骤之前,所述方法还包括:确定所述存储器的类型,并当所述存储器的类型为SLC时,将LDPC解码中的有限域GF(2^q)中的所述q取值为1;当所述存储器的类型为MLC时,将所述q取值为2;当所述存储器的类型为TLC时,将所述q取值为3;以及所述数据的编码信息还包括所述q的取值。
其中,所述BCH的生成矩阵按照所述BCH的校验位数进行选择,和/或,所述LDPC的生成矩阵按照所述LDPC的码率进行选择。
本申请第二方面提供一种用于错误检查和纠正的解码方法,包括:存储控制器在接收到数据的读取指令时,从存储器中读取所述数据及所述数据的编码信息,其中,所述编码信息包括所述数据采用的编码方式,所述数据采用的编码方式取决于所述数据的重要程度,在所述数据的重要程度为第一重要级时,采用BCH和低密度奇偶校验码LDPC的结合或不高于第一码率的LDPC的编码方式;在所述数据的重要程度为第二重要级时,采用所述BCH或者高于所述第一码率的LDPC的编码方式,所述第一重要级的重要程度大于所述第二重要级的重要程度;根据所述编码信息确定所述数据的编码方式,并采用与所述编码方式对应的解码方式对所述数据进行解码,其中,所述解码方式包括BCH和LDPC的结合、不高于第一码率的LDPC、BCH或者高于所述第一码率的LDPC;以及输出进行所述解码后得到的数据。
其中,所述第二重要级包括第一重要子级和第二重要子级,所述第一重要子级的重要程度大于所述第二重要子级的重要程度;所述数据采用的编码方式还包括在所述数据的重要程度为所述第一重要子级时而采用的高于预设校验位数的BCH或高于所述第一码率且低于第二码率的LDPC的编码方式,在所述数据的重要程度为所述第二重要子级时而采用的不高于所述预设校验位数的BCH或不低于所述第二码率的LDPC的编码方式,其中,所述第一码率高于所述第二码率;以及所述BCH或者高于所述第一码率的LDPC解码方式包括高于预设校验位数的BCH、高于所述第一码率且低于第二码率的LDPC、不高于所述预设校验位数的BCH、或不低于所述第二码率的LDPC的解码方式。
其中,在所述根据所述编码信息确定所述数据的编码方式,并采用与所述编码方式对应的解码方式对所述数据进行解码的步骤之后,所述方法还包括检测到所述BCH的错误比特数超过预设比特值和/或所述LDPC的实际迭代次数超过预设次数时,发出所述存储器中存储所述数据的块出现问题的警报。
其中,所述存储器为SLC、MLC或TLC类型的NAND存储器;所述数据的编码信息还包括q的取值,当所述存储器的类型为SLC时,所述q取值为1,当所述存储器的类型为MLC时,所述q取值为2,当所述存储器的类型为TLC时,所述q取值为3;以及在所述采用与所述编码方式对应的解码方式对所述数据进行解码的步骤中,若进行所述LDPC解码,则将所述编码信息中的所述q的取值作为所述LDPC解码中的有限域GF(2^q)中的q的取值,以进行所述LDPC解码。
其中,所述BCH的校验矩阵按照所述BCH的校验位数进行选择,和/或,所述LDPC的校验矩阵按照所述LDPC的码率进行选择。
本申请第三方面提供一种用于错误检查和纠正的编码装置,包括:分析模块,用于在接收到数据的写入指令时,分析所述数据的重要程度;编码模块,用于在所述数据的重要程度属于第一重要级时,分别采用BCH和低密度奇偶校验码LDPC对所述数据进行编码,或采用不高于第一码率的LDPC对所述数据进行编码;在所述数据的重要程度属于第二重要级时,采用所述BCH或者高于所述第一码率的LDPC对所述数据进行编码,其中,所述第一重要级的重要程度高于所述第二重要级的重要程度;以及写入模块,用于将编码后的所述数据写入到存储器中,并保存所述数据的编码信息,其中,所述数据的编码信息包括所述数据采用的编码方式。
本申请第四方面提供一种用于错误检查和纠正的解码装置,包括:读取模块,用于存储控制器在接收到数据的读取指令时,从存储器中读取所述数据及所述数据的编码信息,其中,所述编码信息包括所述数据采用的编码方式,所述数据采用的编码方式取决于所述数据的重要程度,在所述数据的重要程度为第一重要级时,采用BCH和低密度奇偶校验码LDPC的结合或不高于第一码率的LDPC的编码方式;在所述数据的重要程度为第二重要级时,采用所述BCH或者高于所述第一码率的LDPC的编码方式,所述第一重要级的重要程度大于所述第二重要级的重要程度;解码模块,用于根据所述编码信息确定所述数据的编码方式,并采用与所述编码方式对应的解码方式对所述数据进行解码,其中,所述解码方式包括BCH和LDPC的结合、不高于第一码率的LDPC、BCH或者高于所述第一码率的LDPC;以及输出模块,用于输出进行所述解码后得到的数据。
本申请第五方面提供一种用于错误检查和纠正的编解码处理器,包括上述的编码装置和/或上述的解码装置。
上述方案中,存储控制器通过分析数据的重要程度,并根据不同重要程度为数据配置不同的编码方式及解码方式,即越重要的数据配置错误检查及纠正能力越强的编码方式及解码方式,实现了存储器对数据编解码方式的智能配置,且保证了重要数据的可靠及准确存储。同时,存储控制器对于重要程度低的数据选择错误检查及纠正能力较低的编码方式及解码方式,降低了其所需编码能力及校验码长,提高了编码效率和节省了存储空间。
附图说明
图1是本申请用于错误检查和纠正编码方法一实施方式的流程图;
图2是本申请用于错误检查和纠正的编码方法另一实施方式的流程图;
图3是本申请用于错误检查和纠正的编码方法再一实施方式中保存的编码信息的示意图。
图4是本申请用于错误检查和纠正解码方法一实施方式的流程图;
图5是本申请用于错误检查和纠正的解码方法另一实施方式的流程图;
图6是本申请用于错误检查和纠正的解码方法再一实施方式中的LDPC解码时的LLR概率示意图;
图7a是本申请用于错误检查和纠正的编码装置一实施方式的结构示意图;
图7b是本申请用于错误检查和纠正的编码装置的编译模块一实施方式的结构示意图。
图8是本申请本申请用于错误检查和纠正的解码装置一实施方式的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、接口、技术之类的具体细节,以便透彻理解本申请。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施方式中也可以实现本申请。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
请参阅图1,图1是本申请用于错误检查和纠正的编码方法一实施方式的流程图。本实施方式可由存储器中的存储控制器执行,该方法包括:
S11:存储控制器在接收到数据的写入指令时,分析所述数据的重要程度。
存储控制器先将所需写入的数据划分重要程度级如包括第一重要级和第二重要级,并按照该数据的重要程度选择相应编码方式。例如,存储器作为计算机的存储设备,存储控制器在接收到计算机文件***下发的数据的写入指令时,接收该数据,并分析该数据的重要程度属于第一重要级或第二重要级。
具体地,存储控制器可根据该分析所述数据的参数确定其重要程度。例如,存储器中预存不同数据参数分别对应的重要程度值。在接收到数据的写入指令时,存储控制器在上述预存信息中,查找所述数据的参数对应的重要程度值以得到该数据的重要程度值,并判断该数据的重要程度值是否超过第一预设值,当所述重要程度值超过第一预设值时,确定所述数据的重要程度属于第一重要级;以及当所述重要程度值不超过所述第一预设值时,确定所述数据的重要程度属于第二重要级。其中,该数据的参数可包括数据的来源、属性及类型中的至少一种。
S12:存储控制器在所述数据的重要程度属于第一重要级时,分别采用BCH和LDPC对所述数据进行编码,或采用不高于第一码率的LDPC对所述数据进行编码;在所述数据的重要程度属于第二重要级时,采用所述BCH或者高于所述第一码率的LDPC对所述数据进行编码,其中,所述第一重要级的重要程度高于所述第二重要级的重要程度。
本申请存储控制器可按照数据重要程度采用不同的编码方式。其中,可采用的编码方式包括BCH(取自Bose、Ray-Chaudhuri与Hocquenghem的缩写)、低密度奇偶校验码(英文:Low Density ParityCheck Code,简称:LDPC)、或BCH和LDPC的结合。上述三种编码方式的错误检查和纠正能力由强至弱依序为:BCH和LDPC的结合、LCPD、BCH。而且,存储控制器可自适应采用不同码率(英文:code rate)的LDPC。对于一定码长的原始数据,当采用的LDPC的码率越大,其编码后得到的校验码越多,且其错误检查和纠正能力则越强。
本实施例中,存储控制器对重要级越高的数据,采用错误检查和纠正能力越强的编码方式。具体地,存储控制器在判断所需写入的数据的重要程度属于第一重要级时,分别采用BCH和LDPC(即前述的BCH和LDPC的结合)对所述数据进行编码,其中,该LDPC的码率可为低于或高于该第一码率,且进行BCH、LDPC编码的顺序不限定,如可先进行BCH编码再对BCH编码的输出进行LDPC编码,或先进行LDPC编码再对LDPC编码的输出进行BCH编码;或存储控制器在判断所需写入的数据的重要程度属于第一重要级时,采用不高于第一码率的LDPC对所述数据进行编码。存储控制器在判断所需写入的数据的重要程度属于第二重要级时,采用所述BCH对所述数据进行编码,或者采用高于所述第一码率的LDPC对所述数据进行编码。在实际应用中,该第一码率可由用户配置并保存在存储器中,该第一码率通常取值为0.2-0.7,具体如为0.2、0.3、0.5、0.6或0.7。在采用以上编码方式时,对于同一重要级的数据,存储控制器可根据该数据的重要程度值而具体采用不同码率,如数据的重要程度值越高,其采用的LDPC的码率越低。在一实施例中,存储器可预存16种码率如0.5,0.6,0.650.7,0.75,0.8,0.85,0.9,0.95等,存储控制器根据其重要程度值选择其中一种码率。当然,存储控制器也可对同一重要级的所有数据均采用相同码率。
S13:存储控制器将编码后的所述数据写入到存储器中,并保存所述数据的编码信息,其中,所述数据的编码信息包括所述数据采用的编码方式。
所需写入的数据按照上述S12的编码方式进行编码后,得到的编码后的数据包括原始数据和检验码,并将该编码后的数据写入存储器中。而且,由于本实施例中可根据不同数据配置不同编码方式。为了便于解码,存储控制器还将该数据的编码信息保存在存储器中,或保存在软件层如新技术文件***(英文:New Technology File System,简称:NTFS)、或无排序区块图像文件***(英文:Unsorted Block Image File System,简称:UBIFS)中。存储控制器还可通过列表方式将该数据与其编码信息建立映射关系,以将该数据及其编码信息关联起来。当需要对该编码后数据进行解码时,存储控制器可读取相应编码信息以得到其编码方式,并以对应该编码方式的解码方式进行解码。
请参阅图2,图2是本申请用于错误检查和纠正的编码方法另一实施方式的流程图。本方法包括以下步骤:
S21:存储控制器在接收到数据的写入指令时,分析所述数据的来源、属性及类型中的至少一种,得到所述数据的重要程度值。
例如,存储器预存有该数据不同的来源、属性及类型分别对应的重要程度值。如数据来源为管理员账户,则其重要程度值为80%;数据来源为游客账户,则其重要程度值为30%;数据的类型为引导状态程序(英文:boot loader),则其重要程度值为100%,数据类型为视频或音频,则其重要程度值为20%。存储控制器查找该预存信息,得到数据的重要程度值。其中,当存储控制器分析的数据参数包括两种以上,则由该两种以上数据参数对应的重要程度值的平均值作为该数据重要程度值。如存储控制器分析数据为管理员账号的视频,则数据重要程度值为(80%+30%)/2=55%。
S22:当所述重要程度值超过第一预设值时,存储控制器确定所述数据的重要程度属于第一重要级;以及当所述重要程度值不超过所述第一预设值时,存储控制器确定所述数据的重要程度属于第二重要级。
本实施例以第一预设值为重要程度值的界线,将数据划分包括两个主要重要级:第一重要级和第二重要级。进一步地,本实施例的第二重要级还可包括第一重要子级和第二重要子级。上述S22中,所述当所述重要程度值不超过所述第一预设值时,确定所述数据的重要程度属于第二重要级的步骤包括:当所述重要程度值不超过所述第一预设值且超过第二预设值时,确定所述数据的重要程度属于所述第一重要子级;当所述重要程度值不超过所述第二预设值时,确定所述数据的重要程度属于所述第二重要子级,其中,所述第一预设值大于所述第二预设值。该第一预设值、第二预设值可由用户设置。第一预设值可为50%至80%,第二预设值可为30%至60%。
例如,第一预设值为60%,第二预设值为40%。存储控制器由S21获得需写入数据的重要程度值为55%,未超过60%但超过40%,故确定该数据属于第二重要级,且属于第二重要级中的第一重要子级。
S23:存储控制器在所述数据的重要程度属于第一重要级时,分别采用BCH和LDPC对所述数据进行编码,或采用不高于第一码率的LDPC对所述数据进行编码;在所述数据的重要程度属于所述第一重要子级时,采用高于预设校验位数的BCH或高于所述第一码率且低于第二码率的LDPC对所述数据进行编码,在所述数据的重要程度属于所述第二重要子级时,采用不高于所述预设校验位数的BCH或不低于所述第二码率的LDPC对所述数据进行编码,其中,所述第一重要级的重要程度高于所述第二重要级的重要程度,所述第一码率高于所述第二码率。
基于上一实施方式,存储控制器还可自适应采用不同检验位数的BCH。当采用的BCH的校验位数越多,其错误检查和纠正能力则越强。该预设校验位数可为50bit至500bit。该第一码率通常取值为0.2-0.7,第二码率通常取值为0.7-0.95。
例如,预设检验位数为80bit,第一码率为0.6,第二码率为0.8。存储控制器在需要写入的数据属于第一重要级时,分别采用BCH和LDPC对所述数据进行编码,或采用码率不高于0.6的LDPC对所述数据进行编码;在所述数据的重要程度属于所述第一重要子级时,采用高于80bit校验位的BCH对所述数据进行编码,或采用码率高于0.6且低于0.8的LDPC对所述数据进行编码;在所述数据的重要程度属于所述第二重要子级时,采用不高于80bit校验位的BCH对所述数据进行编码,或采用码率不低于0.8的LDPC对所述数据进行编码。在采用以上编码方式时,存储控制器可根据该数据的重要程度值而具体采用不同码率和不同校验位,如数据的重要程度值越高,其采用的LDPC的码率越低,且采用的BCH的校验位数越多。
其中,该BCH的生成矩阵按照所述BCH的校验位数进行选择,和/或,该LDPC的生成矩阵按照所述LDPC的码率进行选择。例如,存储器可预存分别多个分别对应不同校验位数的BCH的生成矩阵G1,以及多个分别对应不同码率的LDPC的生成矩阵G2。当存储控制器为需写入的数据确定编码方式时,可对应其确定的码率和/或校验位数,读取对应的BCH的生成矩阵G1以进行相应的BCH编码,和/或读取LDPC的生成矩阵G2以进行相应的LDPC编码。进一步地,存储控制器在读取生成矩阵后,可分析该生成矩阵是否存在规律,若存在规律,则将该生成矩阵分成若干个小矩阵,采用该若干个小矩阵对该数据进行编码,以提高编码效率。
可选地,由于不同编码方式,所得到的校验码位数不同,通常,编码方式的纠错能力越强,其校验码位数越多。故,存储控制器还可在按照重要程度确定编码方式时,检查该存储器自身配置的校验码的存储空间大小,预算该校验码存储空间是否足够存放采用选择的编码方式对需写入的数据进行编码所得到的校验码,如果能,则确定采用该编码方式进行编码,否则,提高该LDPC的码率和/或降低BCH的校验位数,以保证与该校验码存储空间大小匹配。
S24:存储控制器确定所述存储器的类型,并当所述存储器的类型为SLC时,将LDPC解码中的有限域GF(2^q)中的所述q取值为1;当所述存储器的类型为MLC时,将所述q取值为2;当所述存储器的类型为TLC时,将所述q取值为3。
本实施例中,该存储器可为单层单元(英文:Single-Level Cell,简称:SLC)、多层单元(英文:Multi-Level Cell,简称:MLC)或三层单元(英文:Trinary-Level_Cell,简称:TLC)类型的NAND存储器,该NAND存储器具体可为Raw Nand、或固态硬盘(英文:Solid State Drives,简称:SSD)等。由于SLC类型为每个单元存储1bit,需划分为21=2个电压状态表示;MLC类型为每个单元存储2bit,需划分为22=4个电压状态表示;TLC类型为每个单元存储3bit,需划分为23=8个电压状态表示。相应地,SLC、MLC、TLC类型存储器对错误检查和纠正的需求不同且为顺序增大。故,针对不同类型存储器的错误检查和纠正需求,存储控制器可预先确定该存储器的类型,并由所述存储器的类型确定该LDPC解码中的有限域GF(2^q)中的所述q的取值,具体为若SLC类型则将q取值为1,若MLC类型则将q取值为2,若TLC类型则将q取值为3。
可以理解的是,该S24未必在执行S21-23之后进行,在其他实施例中,存储控制器可在接收到数据写入指令后至S25步骤之间的任何时刻执行。
S25:存储控制器将编码后的所述数据写入到存储器中,并保存所述数据的编码信息,其中,所述数据的编码信息包括所述数据采用的编码方式和所述q的取值。
例如,该编码信息中的编码方式可由以下组成的码组表示:“是否采用LDPC”、“LDPC的码率”、“是否采用BCH”、“BCH的校验位数”。其中,该是否采用LDPC、是否采用BCH均可由但不限由1bit表示,如0表示是,1表示否。q的取值可由但不限由1bit或2bit表示,如01表示q为1,10表示q为2,11表示q为3。LDPC的码率、BCH的校验位数可由但不限由2bit-6bit表示,如为4bit。可选地,用于记载编码信息的码组还可预留1bit-2bit作为扩展使用。
可以理解的是,该用于记载编码信息的码组可根据实际编码方式进行适应性设置。例如,若在一实施例中,该存储控制器所采用的编码方式只为BCH和LDPC的结合、或不同码率的LDPC,则该用于记载编码信息的码组可为图3所示的格式,即不包含“是否采用LDPC”项,以及“BCH的检验位数”项,该编码信息为每页1byte。
存储控制器在接收到读取该数据的指令时,则可根据该编码信息确定该数据所采用的编码方式,并按照相应解码方式对其进行解码。
上述方案中,存储控制器通过分析数据的重要程度,并根据不同重要程度为数据配置不同的编码方式,即越重要的数据配置错误检查及纠正能力越强的编码方式,实现了存储器对数据编码方式的自适应配置,且保证了重要数据的可靠及准确存储。同时,由于错误检查及纠正能力越强的编码方式,所需的编码能力越强及所需校验码长越多。存储控制器对于重要程度低的数据选择错误检查及纠正能力较低的编码方式,降低了其所需编码能力及校验码长,提高了编码效率和节省了存储空间。
请参阅图4,图4是本申请用于错误检查和纠正的解码方式一实施方式的流程图。本实施方法中,存储控制器进行解码的数据可为由以上实施方式进行编码得到的数据。该方法包括以下步骤:
S41:存储控制器在接收到数据的读取指令时,从存储器中读取所述数据及所述数据的编码信息。
例如,存储器作为计算机的存储设备,存储控制器在接收到计算机文件***下发的数据的读取指令时,获取该读取指令中携带的存储地址,并从存储器的该存储地址中读取该数据,以及通过查表查找到与该数据具有映射关系的编码信息。
其中,所述编码信息包括所述数据采用的编码方式,所述数据采用的编码方式取决于所述数据的重要程度,在所述数据的重要程度为第一重要级时,采用BCH和低密度奇偶校验码LDPC的结合或不高于第一码率的LDPC的编码方式;在所述数据的重要程度为第二重要级时,采用所述BCH或者高于所述第一码率的LDPC的编码方式,所述第一重要级的重要程度大于所述第二重要级的重要程度。例如,该数据和编码信息为图1所示实施方式编码得到的数据以及保存的编码信息。
S42:存储控制器根据所述编码信息确定所述数据的编码方式,并采用与所述编码方式对应的解码方式对所述数据进行解码,其中,所述解码方式包括BCH和LDPC的结合、不高于第一码率的LDPC、BCH或者高于所述第一码率的LDPC。
具体地,存储控制器在确定所述数据的编码方式为BCH和LDPC的结合时,其对应的解码方式则为BCH和LDPC的结合,即分别采用BCH和LDPC对该数据进行解码。其中,进行BCH、LDPC解码的顺序不限定,如可先进行BCH解码再对BCH解码的输出进行LDPC解码,或先进行LDPC解码再对LDPC解码的输出进行BCH解码。存储控制器在确定所述数据的编码方式为不高于第一码率的LDPC编码时,其对应的解码方式则为不高于第一码率的LDPC解码。存储控制器在确定所述数据的编码方式为BCH编码时,其对应的解码方式则为不高于第一码率的BCH解码。存储控制器在确定所述数据的编码方式为高于所述第一码率的LDPC编码时,其对应的解码方式则为高于所述第一码率的LDPC解码。
其中,S41中获取的编码信息包括LDPC的码率,存储控制器将该编码信息中的码率作为LDPC解码时的码率。
S43:存储控制器输出进行所述解码后得到的数据。
由于本实施例解码方法与该数据的编码方式对应,对重要程度高的数据选择错误检查和纠正能力较高的编解码方式,对重要程度低的选择错误检查和纠正能力较低的编解码方式,实现了存储器对数据编解码方式的自适应配置,且保证了重要数据的可靠及准确存储。同时,也降低了重要程度低数据所需的解码能力,提高了解码效率。
请参阅图5,图5是本申请用于错误检查和纠正的解码方法另一实施方式的流程图。本方法包括以下步骤:
S51:存储控制器在接收到数据的读取指令时,从存储器中读取所述数据及所述数据的编码信息。
其中,所述编码信息包括所述数据采用的编码方式,所述数据采用的编码方式取决于所述数据的重要程度为第一重要级或第二重要级,所述第二重要级包括第一重要子级和第二重要子级。在所述数据的重要程度为第一重要级时,采用BCH和低密度奇偶校验码LDPC的结合或不高于第一码率的LDPC的编码方式;在所述数据的重要程度为所述第一重要子级时而采用的高于预设校验位数的BCH或高于所述第一码率且低于第二码率的LDPC的编码方式,在所述数据的重要程度为所述第二重要子级时而采用的不高于所述预设校验位数的BCH或不低于所述第二码率的LDPC的编码方式,所述第一重要级的重要程度大于所述第二重要级的重要程度,所述第一重要子级的重要程度大于所述第二重要子级的重要程度,所述第一码率高于所述第二码率。例如,该数据和编码信息为图2所示实施方式编码得到的数据以及保存的编码信息
S52:存储控制器根据所述编码信息确定所述数据的编码方式,并采用与所述编码方式对应的解码方式对所述数据进行解码,其中,所述解码方式包括BCH和LDPC的结合、不高于第一码率的LDPC、高于预设校验位数的BCH、高于所述第一码率且低于第二码率的LDPC、不高于所述预设校验位数的BCH、或不低于所述第二码率的LDPC的解码方式。
基于图4所示实施方式,本实施方式中的BCH或者高于所述第一码率的LDPC解码方式包括高于预设校验位数的BCH、高于所述第一码率且低于第二码率的LDPC、不高于所述预设校验位数的BCH、或不低于所述第二码率的LDPC的解码方式。具体地,存储控制器在确定所述数据的编码方式为高于预设校验位数的BCH编码时,其对应的解码方式则为高于预设校验位数的BCH解码。存储控制器在确定所述数据的编码方式为高于所述第一码率且低于第二码率的LDPC编码时,其对应的解码方式则为高于所述第一码率且低于第二码率的LDPC解码。存储控制器在确定所述数据的编码方式为不高于所述预设校验位数的BCH编码时,其对应的解码方式则为不高于所述预设校验位数的BCH解码。存储控制器在确定所述数据的编码方式为不低于所述第二码率的LDPC编码时,其对应的解码方式则为不低于所述第二码率的LDPC解码。
其中,该BCH的校验矩阵按照所述BCH的校验位数进行选择,和/或,该LDPC的校验矩阵按照所述LDPC的码率进行选择。例如,存储器可预存分别多个分别对应不同校验位数的BCH的校验矩阵H1,以及多个分别对应不同码率的LDPC的校验矩阵H2。当存储控制器为需写入的数据确定解码方式时,可对应其确定的码率和/或校验位数,读取对应的BCH的校验矩阵H1以进行相应的BCH解码,和/或读取LDPC的校验矩阵H2以进行相应的LDPC解码。
S53:存储控制器检测到所述BCH的错误比特数超过预设比特值和/或所述LDPC的实际迭代次数超过预设次数时,发出所述存储器中存储所述数据的块出现问题的警报。
本实施例中,存储控制器还可对保存该数据的块进行预警。存储控制器在进行BCH解码时,检测该BCH的错误比特数是否超过预设比特值,若在进行LDPC解码时,检测该LDPC的实际迭代次数是否超过预设次数,若上述两种检测中的其中一个为超过,则发出所述存储器中存储所述数据的块出现问题的警报,例如向包含该BCH的错误比特数或LDPC的实际迭代次数的警报消息发送给上层计算机***。其中,该预设比特值、预设次数可由用户设置,该预设比特值具体可为但不限为该数据的数据量的1/1000至5/100中的任意比特值,该预设次数可为但不限为2-10次。
其中,该存储器可为SLC、MLC或TLC类型的NAND存储器,,该NAND存储器具体可为Raw Nand、或SSD等。所述数据的编码信息还包括q的取值,当所述存储器的类型为SLC时,所述q取值为1,当所述存储器的类型为MLC时,所述q取值为2,当所述存储器的类型为TLC时,所述q取值为3。在该S53步骤中,若进行所述LDPC解码,则将所述编码信息中的所述q的取值作为所述LDPC解码中的有限域GF(2^q)中的q的取值,以进行所述LDPC解码。
S54:存储控制器输出进行所述解码后得到的数据。
下面对以上实施例中的LDPC的具体编码及解码进行说明。
1)LDPC编码:
存储器中存储有分别对应不同码率的生成矩阵,存储控制器根据确定的LDPC的码率获取相应的生成矩阵G,由公式v=u·G得到编码后的数据。其中,v为编码过后的码字,包括信息码和校验码;u为需写入的原始数据。
另外,BCH的编码类同于上,即同样由v=u·G得到编码数据。但具体BCH与LDPC的实现不同。在本申请中,BCH编码中的有限域GF(2^q)中的q的取值也可配置,一般来说,为提高抗突发性错误能力,q的取值与NAND的类型相关,如若SLC类型则将q取值为1,若MLC类型则将q取值为2,若TLC类型则将q取值为3,即采用非二进制编码。当然对于任何类型的NAND,q都可以取1,即采用二进制LDPC编码。
2)LDPC解码:
a、初始化:对于每个变量节点(v=1…N),对数似然比(英文:Log-Likelihood Ratio,简称:LLR)消息设为:
b、变量节点更新:每个变量节点有dv个输入消息{Uvp}p=1…dv∈Rq,其中,Rq表示以q为单位构成的集合;
c、校验节点更新:对于每个变量节点,可认为有dc个输入消息{Ucp}p=1…dc∈Rq,其中,Rq表示以q为单位构成的集合;
d、根据校验矩阵H来判断所译出的码字是否正确,如果正确,则停止迭代;否则继续迭代进行译码,直到迭代次数达到所设定的最大次数,如果此时仍未正确译码,则译码失败。该校验矩阵H与该数据编码时的生成矩阵G对偶,即G·H=0。
在以上LDPC解码过程中,通过LLR得到某点的概率,以确定其电压表示的数值,即如图6所示,t点更靠近11的电压范围,即通过LLR得到t点为11的概率最大,故该t点电压表示的数值为11,其中,图6中的P(v)表示概率,Vth表示电压。例如,b0=1的初始LLR可由以下公式计算得出:
请参阅图7a,图7a是本申请用于错误检查和纠正的编码装置一实施方式结构示意图。该编码装置700用于将数据进行编码并写入存储器中。该编码装置700包括分析模块710、编码模块720及写入模块730。
分析模块710用于在接收到数据的写入指令时,分析所述数据的重要程度。
编码模块720用于在所述数据的重要程度属于第一重要级时,分别采用BCH和低密度奇偶校验码LDPC对所述数据进行编码,或采用不高于第一码率的LDPC对所述数据进行编码;在所述数据的重要程度属于第二重要级时,采用所述BCH或者高于所述第一码率的LDPC对所述数据进行编码,其中,所述第一重要级的重要程度高于所述第二重要级的重要程度。
写入模块730用于将编码后的所述数据写入到存储器中,并保存所述数据的编码信息,其中,所述数据的编码信息包括所述数据采用的编码方式。
可选地,分析模块710执行所述分析所述数据的重要程度的步骤包括:分析所述数据的来源、属性及类型中的至少一种,得到所述数据的重要程度值;当所述重要程度值超过第一预设值时,确定所述数据的重要程度属于第一重要级;以及当所述重要程度值不超过所述第一预设值时,确定所述数据的重要程度属于第二重要级。
可选地,所述第二重要级包括第一重要子级和第二重要子级。所述分析模块710执行所述当所述重要程度值不超过所述第一预设值时,确定所述数据的重要程度属于第二重要级的步骤包括:当所述重要程度值不超过所述第一预设值且超过第二预设值时,确定所述数据的重要程度属于所述第一重要子级;当所述重要程度值不超过所述第二预设值时,确定所述数据的重要程度属于所述第二重要子级,其中,所述第一预设值大于所述第二预设值。编码模块720执行所述在所述数据的重要程度属于第二重要级时,采用所述BCH或者高于所述第一码率的LDPC对所述数据进行编码的步骤包括:在所述数据的重要程度属于所述第一重要子级时,采用高于预设校验位数的BCH或高于所述第一码率且低于第二码率的LDPC对所述数据进行编码,在所述数据的重要程度属于所述第二重要子级时,采用不高于所述预设校验位数的BCH或不低于所述第二码率的LDPC对所述数据进行编码,其中,所述第一码率高于所述第二码率。
可选地,所述存储器为SLC、MLC或TLC类型的NAND存储器。该编码装置还可包括取值模块,用于确定所述存储器的类型,并当所述存储器的类型为SLC时,将LDPC解码中的有限域GF(2^q)中的所述q取值为1;当所述存储器的类型为MLC时,将所述q取值为2;当所述存储器的类型为TLC时,将所述q取值为3。而且,所述写入模块730保存的所述数据的编码信息还包括所述q的取值。
可选地,所述BCH的生成矩阵按照所述BCH的校验位数进行选择,和/或,所述LDPC的生成矩阵按照所述LDPC的码率进行选择。
在一应用实施例中,该编码模块720可如图7b所示,包括BCH编码器721、LDPC编码器722、选择器723及控制器724。控制器724用于根据分析模块710得到的数据重要程度确定编码方式,并将是否进行BCH的信号bypass发送至选择器723,将LDPC的码率codrate信号发送至LDPC编码器722。该选择器723用于根据bypass信号,确定是否需要对该数据进行BCH编码,如需要,则选择BCH编码器721的输出连接LDPC编码器722的输入,如不需要,则将原始数据不经BCH编码器721直接输入至LDPC编码器722。BCH编码器721用于对输入进行BCH编码。LDPC编码器722用于根据coderate信号确定码率,并按照确定的码率对输入进行LDPC编码。
请参阅图8,图8是本申请用于错误检查和纠正的解码装置一实施方式的结构示意图。该解码装置800用于从存储器中读取数据并解码。该解码装置800包括读取模块810、解码模块820及输出模块830。
读取模块810用于存储控制器在接收到数据的读取指令时,从存储器中读取所述数据及所述数据的编码信息,其中,所述编码信息包括所述数据采用的编码方式,所述数据采用的编码方式取决于所述数据的重要程度,在所述数据的重要程度为第一重要级时,采用BCH和低密度奇偶校验码LDPC的结合或不高于第一码率的LDPC的编码方式;在所述数据的重要程度为第二重要级时,采用所述BCH或者高于所述第一码率的LDPC的编码方式,所述第一重要级的重要程度大于所述第二重要级的重要程度。
解码模块820用于根据所述编码信息确定所述数据的编码方式,并采用与所述编码方式对应的解码方式对所述数据进行解码,其中,所述解码方式包括BCH和LDPC的结合、不高于第一码率的LDPC、BCH或者高于所述第一码率的LDPC。
输出模块830用于输出进行所述解码后得到的数据。
可选地,所述第二重要级包括第一重要子级和第二重要子级,所述第一重要子级的重要程度大于所述第二重要子级的重要程度。所述数据采用的编码方式还包括在所述数据的重要程度为所述第一重要子级时而采用的高于预设校验位数的BCH或高于所述第一码率且低于第二码率的LDPC的编码方式,在所述数据的重要程度为所述第二重要子级时而采用的不高于所述预设校验位数的BCH或不低于所述第二码率的LDPC的编码方式,其中,所述第一码率高于所述第二码率。所述BCH或者高于所述第一码率的LDPC解码方式包括高于预设校验位数的BCH、高于所述第一码率且低于第二码率的LDPC、不高于所述预设校验位数的BCH、或不低于所述第二码率的LDPC的解码方式。
可选地,该解码装置800还可包括警报模块,用于检测到所述BCH的错误比特数超过预设比特值和/或所述LDPC的实际迭代次数超过预设次数时,发出所述存储器中存储所述数据的块出现问题的警报。
可选地,所述存储器为SLC、MLC或TLC类型的NAND存储器。所述数据的编码信息还包括q的取值,当所述存储器的类型为SLC时,所述q取值为1,当所述存储器的类型为MLC时,所述q取值为2,当所述存储器的类型为TLC时,所述q取值为3。解码模块820在所述采用与所述编码方式对应的解码方式对所述数据进行解码的步骤中,若解码模块820进行所述LDPC解码,则解码模块820具体用于将所述编码信息中的所述q的取值作为所述LDPC解码中的有限域GF(2^q)中的q的取值,以进行所述LDPC解码。
可选地,所述BCH的校验矩阵按照所述BCH的校验位数进行选择,和/或,所述LDPC的校验矩阵按照所述LDPC的码率进行选择。
上述编码装置的各模块具体用于执行上述编码方法中的对应步骤,上述解码装置的各模块具体用于执行上述解码方法中的对应步骤,具体请参阅以上相关说明,在此不作赘述。
本申请还提供一种用于错误检查和纠正的编解码处理器的实施方式,该编解码处理器可设置在存储器中,并该编解码处理器可包括以上实施例中的编码装置和/或以上实施例中的解码装置。例如,在一实施例中,该存储器包括编码装置和解码装置。编码装置为以上实施例中的编码装置。解码装置为以上实施例中的解码装置。
上述方案中,存储控制器通过分析数据的重要程度,并根据不同重要程度为数据配置不同的编码方式,即越重要的数据配置错误检查及纠正能力越强的编码方式,实现了存储器对数据编码方式的自适应配置,且保证了重要数据的可靠及准确存储。同时,存储控制器对于重要程度低的数据选择错误检查及纠正能力较低的编码方式,降低了其所需编码能力及校验码长,提高了编码效率和节省了存储空间。
在本申请所提供的几个实施方式中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

Claims (13)

1.一种用于错误检查和纠正的编码方法,其特征在于,包括:
存储控制器在接收到数据的写入指令时,分析所述数据的重要程度;
在所述数据的重要程度属于第一重要级时,分别采用BCH和LDPC对所述数据进行编码,或采用不高于第一码率的LDPC对所述数据进行编码;在所述数据的重要程度属于第二重要级时,采用所述BCH或者高于所述第一码率的LDPC对所述数据进行编码,其中,所述第一重要级的重要程度高于所述第二重要级的重要程度;以及
将编码后的所述数据写入到存储器中,并保存所述数据的编码信息,其中,所述数据的编码信息包括所述数据采用的编码方式。
2.根据权利要求1所述的用于错误检查和纠正的编码方法,其特征在于,所述分析所述数据的重要程度的步骤,包括:
分析所述数据的来源、属性及类型中的至少一种,得到所述数据的重要程度值;
当所述重要程度值超过第一预设值时,确定所述数据的重要程度属于第一重要级;以及当所述重要程度值不超过所述第一预设值时,确定所述数据的重要程度属于第二重要级。
3.根据权利要求2所述的用于错误检查和纠正的编码方法,其特征在于,所述第二重要级包括第一重要子级和第二重要子级;
所述当所述重要程度值不超过所述第一预设值时,确定所述数据的重要程度属于第二重要级的步骤包括:
当所述重要程度值不超过所述第一预设值且超过第二预设值时,确定所述数据的重要程度属于所述第一重要子级;当所述重要程度值不超过所述第二预设值时,确定所述数据的重要程度属于所述第二重要子级,其中,所述第一预设值大于所述第二预设值;以及
所述在所述数据的重要程度属于第二重要级时,采用所述BCH或者高于所述第一码率的LDPC对所述数据进行编码的步骤,包括:
在所述数据的重要程度属于所述第一重要子级时,采用高于预设校验位数的BCH或高于所述第一码率且低于第二码率的LDPC对所述数据进行编码,在所述数据的重要程度属于所述第二重要子级时,采用不高于所述预设校验位数的BCH或不低于所述第二码率的LDPC对所述数据进行编码,其中,所述第一码率高于所述第二码率。
4.根据权利要求1至3任一项所述的用于错误检查和纠正的编码方法,其特征在于,所述存储器为SLC、MLC或TLC类型的NAND存储器;
在所述将编码后的所述数据写入到存储器中,并保存所述数据的编码信息的步骤之前,所述方法还包括:
确定所述存储器的类型,并当所述存储器的类型为SLC时,将LDPC解码中的有限域GF(2^q)中的所述q取值为1;当所述存储器的类型为MLC时,将所述q取值为2;当所述存储器的类型为TLC时,将所述q取值为3;以及
所述数据的编码信息还包括所述q的取值。
5.根据权利要求1至3任一项所述的用于错误检查和纠正的编码方法,其特征在于,所述BCH的生成矩阵按照所述BCH的校验位数进行选择,和/或,所述LDPC的生成矩阵按照所述LDPC的码率进行选择。
6.一种用于错误检查和纠正的解码方法,其特征在于,包括:
存储控制器在接收到数据的读取指令时,从存储器中读取所述数据及所述数据的编码信息,其中,所述编码信息包括所述数据采用的编码方式,所述数据采用的编码方式取决于所述数据的重要程度,在所述数据的重要程度为第一重要级时,采用BCH和LDPC的结合或不高于第一码率的LDPC的编码方式;在所述数据的重要程度为第二重要级时,采用所述BCH或者高于所述第一码率的LDPC的编码方式,所述第一重要级的重要程度大于所述第二重要级的重要程度;
根据所述编码信息确定所述数据的编码方式,并采用与所述编码方式对应的解码方式对所述数据进行解码,其中,所述解码方式包括BCH和LDPC的结合、不高于第一码率的LDPC、BCH或者高于所述第一码率的LDPC;以及
输出进行所述解码后得到的数据。
7.根据权利要求6所述的用于错误检查和纠正的解码方法,其特征在于,所述第二重要级包括第一重要子级和第二重要子级,所述第一重要子级的重要程度大于所述第二重要子级的重要程度;
所述数据采用的编码方式还包括在所述数据的重要程度为所述第一重要子级时而采用的高于预设校验位数的BCH或高于所述第一码率且低于第二码率的LDPC的编码方式,在所述数据的重要程度为所述第二重要子级时而采用的不高于所述预设校验位数的BCH或不低于所述第二码率的LDPC的编码方式,其中,所述第一码率高于所述第二码率;以及
所述BCH或者高于所述第一码率的LDPC解码方式包括高于预设校验位数的BCH、高于所述第一码率且低于第二码率的LDPC、不高于所述预设校验位数的BCH、或不低于所述第二码率的LDPC的解码方式。
8.根据权利要求6所述的用于错误检查和纠正的解码方法,其特征在于,在所述根据所述编码信息确定所述数据的编码方式,并采用与所述编码方式对应的解码方式对所述数据进行解码的步骤之后,所述方法还包括:
检测到所述BCH的错误比特数超过预设比特值和/或所述LDPC的实际迭代次数超过预设次数时,发出所述存储器中存储所述数据的块出现问题的警报。
9.根据权利要求6或7所述的用于错误检查和纠正的解码方法,其特征在于,所述存储器为SLC、MLC或TLC类型的NAND存储器;所述数据的编码信息还包括q的取值,当所述存储器的类型为SLC时,所述q取值为1,当所述存储器的类型为MLC时,所述q取值为2,当所述存储器的类型为TLC时,所述q取值为3;以及
在所述采用与所述编码方式对应的解码方式对所述数据进行解码的步骤中,若进行所述LDPC解码,则将所述编码信息中的所述q的取值作为所述LDPC解码中的有限域GF(2^q)中的q的取值,以进行所述LDPC解码。
10.根据权利要求6或7所述的用于错误检查和纠正的解码方法,其特征在于,所述BCH的校验矩阵按照所述BCH的校验位数进行选择,和/或,所述LDPC的校验矩阵按照所述LDPC的码率进行选择。
11.一种用于错误检查和纠正的编码装置,其特征在于,包括:
分析模块,用于在接收到数据的写入指令时,分析所述数据的重要程度;
编码模块,用于在所述数据的重要程度属于第一重要级时,分别采用BCH和LDPC对所述数据进行编码,或采用不高于第一码率的LDPC对所述数据进行编码;在所述数据的重要程度属于第二重要级时,采用所述BCH或者高于所述第一码率的LDPC对所述数据进行编码,其中,所述第一重要级的重要程度高于所述第二重要级的重要程度;以及
写入模块,用于将编码后的所述数据写入到存储器中,并保存所述数据的编码信息,其中,所述数据的编码信息包括所述数据采用的编码方式。
12.一种用于错误检查和纠正的解码装置,其特征在于,包括:
读取模块,用于存储控制器在接收到数据的读取指令时,从存储器中读取所述数据及所述数据的编码信息,其中,所述编码信息包括所述数据采用的编码方式,所述数据采用的编码方式取决于所述数据的重要程度,在所述数据的重要程度为第一重要级时,采用BCH和LDPC的结合或不高于第一码率的LDPC的编码方式;在所述数据的重要程度为第二重要级时,采用所述BCH或者高于所述第一码率的LDPC的编码方式,所述第一重要级的重要程度大于所述第二重要级的重要程度;
解码模块,用于根据所述编码信息确定所述数据的编码方式,并采用与所述编码方式对应的解码方式对所述数据进行解码,其中,所述解码方式包括BCH和LDPC的结合、不高于第一码率的LDPC、BCH或者高于所述第一码率的LDPC;以及
输出模块,用于输出进行所述解码后得到的数据。
13.一种用于错误检查和纠正的编解码处理器,其特征在于,包括权利要求11所述的编码装置和/或权利要求12所述的解码装置。
CN201510920256.9A 2015-12-10 2015-12-10 一种用于错误检查和纠正的编解码方法、装置及处理器 Withdrawn CN106874139A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510920256.9A CN106874139A (zh) 2015-12-10 2015-12-10 一种用于错误检查和纠正的编解码方法、装置及处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510920256.9A CN106874139A (zh) 2015-12-10 2015-12-10 一种用于错误检查和纠正的编解码方法、装置及处理器

Publications (1)

Publication Number Publication Date
CN106874139A true CN106874139A (zh) 2017-06-20

Family

ID=59177967

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510920256.9A Withdrawn CN106874139A (zh) 2015-12-10 2015-12-10 一种用于错误检查和纠正的编解码方法、装置及处理器

Country Status (1)

Country Link
CN (1) CN106874139A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107682020A (zh) * 2017-10-26 2018-02-09 北京邮电大学 一种基于Turbo码的编码、解码方法及装置
CN113168562A (zh) * 2019-05-15 2021-07-23 西部数据技术公司 优化的神经网络数据组织

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101119353A (zh) * 2006-07-25 2008-02-06 北京凌讯华业科技有限公司 基于ldpc编码的tds-ofdm通信***发射机
US20090027238A1 (en) * 2007-07-25 2009-01-29 Samsung Electronics Co., Ltd. Apparatuses and methods for encoding and decoding
CN101902296A (zh) * 2010-06-23 2010-12-01 中兴通讯股份有限公司 一种喷泉码的编解码方法和装置
CN101917625A (zh) * 2010-06-03 2010-12-15 北京邮电大学 一种基于联合信源-网络编码的可分级视频流传输方法
CN103067131A (zh) * 2012-12-26 2013-04-24 陈宏滨 一种面向数字航道的传感器网络可靠通信方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101119353A (zh) * 2006-07-25 2008-02-06 北京凌讯华业科技有限公司 基于ldpc编码的tds-ofdm通信***发射机
US20090027238A1 (en) * 2007-07-25 2009-01-29 Samsung Electronics Co., Ltd. Apparatuses and methods for encoding and decoding
CN101917625A (zh) * 2010-06-03 2010-12-15 北京邮电大学 一种基于联合信源-网络编码的可分级视频流传输方法
CN101902296A (zh) * 2010-06-23 2010-12-01 中兴通讯股份有限公司 一种喷泉码的编解码方法和装置
CN103067131A (zh) * 2012-12-26 2013-04-24 陈宏滨 一种面向数字航道的传感器网络可靠通信方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107682020A (zh) * 2017-10-26 2018-02-09 北京邮电大学 一种基于Turbo码的编码、解码方法及装置
CN113168562A (zh) * 2019-05-15 2021-07-23 西部数据技术公司 优化的神经网络数据组织
CN113168562B (zh) * 2019-05-15 2024-03-26 西部数据技术公司 优化的神经网络数据组织

Similar Documents

Publication Publication Date Title
CN104081358B (zh) 用于解码具有多个奇偶校验段的码字的***、方法和设备
US8635508B2 (en) Systems and methods for performing concatenated error correction
KR102155795B1 (ko) 저밀도 패리티-검사(ldpc) 디코더들에서 로그-우도비(llr) 감쇠
CN104282340B (zh) 一种固态盘闪存芯片阈值电压感知方法及***
US9348692B2 (en) Flash memory apparatus, memory controller and method for controlling flash memory
CN102110481A (zh) 具有ecc电路的半导体存储***及其控制方法
CN104572334B (zh) 解码方法、存储器存储装置与存储器控制电路单元
US8549382B2 (en) Storage drive with LDPC coding
CN105023613B (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN105022674B (zh) 解码方法、存储器存储装置、存储器控制电路单元
CN105304142B (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN104733044B (zh) 译码方法、存储器存储装置、存储器控制电路单元
CN107608818A (zh) 解码方法、存储器存储装置及存储器控制电路单元
US10191801B2 (en) Error correction code management of write-once memory codes
US10326473B2 (en) Symbol-based coding for NAND flash devices
CN105304143B (zh) 解码方法、存储器控制电路单元及存储器存储装置
CN106874139A (zh) 一种用于错误检查和纠正的编解码方法、装置及处理器
CN104778975B (zh) 译码方法、存储器存储装置、存储器控制电路单元
CN109901784A (zh) 数据存取方法、存储器控制电路单元以及存储器储存装置
US10884858B2 (en) LDPC decoding device, memory system including the same and method thereof
US20170161141A1 (en) Method and apparatus for correcting data in multiple ecc blocks of raid memory
CN109697134A (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN106897023A (zh) 数据读取方法、存储器控制电路单元及存储器储存装置
CN108154903A (zh) 快闪存储器的写入控制方法及装置、读取控制方法及装置以及存储器***
US20160259595A1 (en) Encoder and decoder design for near-balanced codes

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
WW01 Invention patent application withdrawn after publication

Application publication date: 20170620

WW01 Invention patent application withdrawn after publication