CN111597072A - 差错控制编码ecc系统及包括ecc系统的存储器设备 - Google Patents

差错控制编码ecc系统及包括ecc系统的存储器设备 Download PDF

Info

Publication number
CN111597072A
CN111597072A CN202010375909.0A CN202010375909A CN111597072A CN 111597072 A CN111597072 A CN 111597072A CN 202010375909 A CN202010375909 A CN 202010375909A CN 111597072 A CN111597072 A CN 111597072A
Authority
CN
China
Prior art keywords
crc
bch
data
decoder
decoding
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
CN202010375909.0A
Other languages
English (en)
Other versions
CN111597072B (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.)
Institute of Microelectronics of CAS
Original Assignee
Institute of Microelectronics of CAS
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 Institute of Microelectronics of CAS filed Critical Institute of Microelectronics of CAS
Priority to CN202010375909.0A priority Critical patent/CN111597072B/zh
Publication of CN111597072A publication Critical patent/CN111597072A/zh
Application granted granted Critical
Publication of CN111597072B publication Critical patent/CN111597072B/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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0064Concatenated codes
    • H04L1/0065Serial concatenated codes
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明公开了一种差错控制编码ECC系统,包括循环冗余码校验CRC编码器、BCH编码器、BCH译码器和CRC译码器;CRC编码器连接BCH编码器,BCH译码器连接CRC译码器,BCH编码器与BCH译码器建立通信连接;CRC编码器用于对待编码数据进行CRC编码,获得CRC码;BCH编码器用于对CRC码进行BCH编码,获得BCH码,并将BCH码发送至BCH译码器;BCH译码器用于接收BCH码并进行译码,获得BCH译码数据;CRC译码器用于对BCH译码数据进行CRC译码,获得CRC译码数据和CRC校验结果,CRC校验结果用于判断BCH译码数据中是否存在错误数据。上述ECC系统能够通过CRC校验及时检测和判断待BCH解码的数据中的数据错误量是否溢出了BCH码纠错能力,保证了输出数据的可靠性。

Description

差错控制编码ECC系统及包括ECC系统的存储器设备
技术领域
本申请涉及通信技术领域,尤其涉及差错控制编码ECC系统及包括ECC系统的存储器设备。
背景技术
随着数字技术的不断发展,目前社会正处于一个大数据的时代,大量数据需要进行可靠的存储和传输,这就需要差错控制编码(ECC)技术的支持,以保证数据在传输和存储过程中较高的正确率。现有的ECC系统通常基于BCH编码技术,BCH码是在1959年由Bose、Chaudhuri及Hocquenghem各自独立发现的二元线性循环码,是一种得到广泛应用的线性分组码,它具有多比特纠错能力,其硬件电路实现相对简单;人们可以根据需求的纠错能力,构造具有特定纠错范围的BCH码的ECC系统。
BCH编码数据在存储或传输过程中会产生错误,除此之外,BCH编码、译码过程本身也存在一定的误码率,对于大数据传输中的ECC系统,BCH码的误码率导致数据出错的次数会随着数据量的增加而显著增多;当数据中的错误数据量超出了该BCH码的纠错能力范围时,经过BCH译码电路译码后的数据可能会出现更多的错误,而此时BCH译码电路本身并没有可以检测出数据的出错量是否溢出纠错范围的情况,且对超出纠错能力的数据无法实现正确纠错。虽然在设计BCH码时,已经综合考虑了纠错能力设计与信息传输效率(码率)、硬件资源占用之间的矛盾,尽可能的确定出最佳的纠错能力设计,但在BCH编码后的数据存储或传输过程中的不确定因素,会导致BCH编码后的数据随机出现大量突发性的软错误,容易超过常用的BCH码的纠错能力设计,导致解码后的数据中存在错误,而在BCH解码过程中并不能检测或确定出这一问题的存在;此时若继续增加BCH码的纠错能力,则将消耗大量硬件资源;而维持原先纠错能力设计,则可能输出错误数据;而在系统级应用中,错误数据的输出可能会直接导致系统出错,导致事故和经济损失。
发明内容
本发明提供了一种差错控制编码ECC系统及包括ECC系统的存储器设备,以解决或者部分解决现有的基于BCH码技术的ECC系统无法判断待解码数据中的错误量是否超过了BCH码的纠错能力设计,造成解码后的数据准确度存疑,影响系统稳定的技术问题。
为解决上述技术问题,本发明提供了一种差错控制编码ECC系统,包括循环冗余码校验CRC编码器、BCH编码器、BCH译码器和CRC译码器;CRC编码器连接BCH编码器,BCH译码器连接CRC译码器,BCH编码器与BCH译码器建立通信连接;
CRC编码器用于对待编码数据进行CRC编码,获得CRC码;
BCH编码器用于对CRC码进行BCH编码,获得BCH码,并将BCH码发送至BCH译码器;
BCH译码器用于接收BCH码并进行译码,获得BCH译码数据;
CRC译码器用于对BCH译码数据进行CRC译码,获得CRC译码数据和CRC校验结果,CRC校验结果用于判断BCH译码数据中是否存在错误数据。
可选的,ECC系统还包括ECC控制器,ECC控制器与CRC译码器建立通信连接;
ECC控制器用于从CRC译码器中获取CRC校验结果,并根据CRC校验结果,判断BCH译码数据中是否存在错误数据。
进一步的,当CRC校验结果为校验正确结果时,ECC控制器判断BCH译码数据中不存在错误数据,ECC控制器输出数据正确状态信号,并控制CRC译码器将CRC译码数据发出。
进一步的,当CRC校验结果为校验错误结果时,ECC控制器判断BCH译码数据中存在错误数据,ECC控制器控制CRC译码器删除CRC译码数据;
ECC控制器发出数据重读信号,以使BCH译码器重新接收BCH码并进行译码,CRC译码器重新对BCH译码数据进行CRC译码,ECC控制器重新根据CRC校验结果,判断BCH译码数据中是否存在错误数据。
可选的,在ECC控制器连续发出n次数据重读信号后,判断BCH译码数据中仍然存在错误数据时,ECC控制器输出数据错误状态信号,并控制CRC译码器将CRC译码数据发出;其中,n≥2且为正整数。
如上述的技术方案,CRC编码器用于将待编码数据分为m块第一信息序列,m≥2且为正整数;对m块第一信息序列进行CRC编码,生成m块CRC子码;将m块CRC子码合并为CRC码;
CRC译码器用于将BCH码分块,获得m块第二信息序列;对m块第二信息序列进行CRC译码,获得m块CRC译码子数据和m个CRC校验结果;其中,CRC译码子数据的信息长度与CRC子码的信息长度相同;将m块CRC译码子数据合并为CRC译码数据;
ECC控制器根据m个CRC校验结果中是否包括一个以上的校验错误结果,判断BCH译码数据中是否存在错误数据。
基于前述技术方案相同的发明构思,本发明还提供了一种存储器设备,包括差错控制编码ECC系统和存储器,ECC系统包括CRC编码器、BCH编码器、BCH译码器和CRC译码器;BCH编码器连接在CRC编码器与存储器之间,BCH译码器连接在CRC译码器与存储器之间;
CRC编码器用于对待编码数据进行CRC编码,获得CRC码;
BCH编码器用于对CRC码进行BCH编码,获得BCH码,并将BCH码发送至存储器;
BCH译码器用于从存储器中读取BCH码并进行译码,获得BCH译码数据;
CRC译码器用于对BCH译码数据进行CRC译码,获得CRC译码数据和CRC校验结果,CRC校验结果用于判断BCH译码数据中是否存在错误数据。
可选的,存储器设备还包括ECC控制器,ECC控制器与CRC译码器建立通信连接;
ECC控制器用于从CRC译码器中获取CRC校验结果,并根据CRC校验结果,判断BCH译码数据中是否存在错误数据。
进一步的,ECC控制器与存储器建立通信连接;
当CRC校验结果为校验错误结果时,ECC控制器判断BCH译码数据中存在错误数据,ECC控制器控制CRC译码器删除CRC译码数据;
ECC控制器向存储器发送数据重读信号;存储器根据数据重读信号,重新读取BCH码并向BCH译码器发送重读后的BCH码,BCH译码器重新对BCH码进行译码,CRC译码器重新对BCH译码数据进行CRC译码,ECC控制器重新根据CRC校验结果,判断BCH译码数据中是否存在错误数据。
可选的,在ECC控制器连续发出n次数据重读信号后,判断BCH译码数据中仍然存在错误数据时,ECC控制器输出数据错误状态信号,并控制CRC译码器将CRC译码数据发出;其中,n≥2且为正整数。
通过本发明的一个或者多个技术方案,本发明具有以下有益效果或者优点:
本发明提供了一种基于BCH与CRC的二级编码和译码的ECC系统,通过在编码阶段时先进行CRC编码再进行BCH编码,译码阶段时先进行BCH译码再进行CRC译码,以增加很小的编译码复杂度和电路成本,使数据在译码阶段能够通过CRC校验及时检测BCH解码后的数据中是否含有错误数据,从而进一步确定待BCH解码的数据中的数据错误量是否溢出了BCH码纠错能力,以保证输出数据的可靠性和系统的稳定性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的ECC系统的结构示意图;
图2示出了根据本发明一个实施例的包括ECC控制器的ECC系统的结构示意图;
图3示出了根据本发明一个实施例的现有技术中的传统ECC存储设备的结构示意图;
图4示出了根据本发明一个实施例的包括了本申请的ECC系统的存储设备结构示意图;
附图标记说明:
1、CRC编码器;2、BCH编码器;3、BCH译码器;4、CRC译码器;5、ECC控制器;6、存储器。
具体实施方式
为了使本申请所属技术领域中的技术人员更清楚地理解本申请,下面结合附图,通过具体实施例对本申请技术方案作详细描述。在整个说明书中,除非另有特别说明,本文使用的术语应理解为如本领域中通常所使用的含义。因此,除非另有定义,本文使用的所有技术和科学术语具有与本发明所属领域技术人员的一般理解相同的含义。若存在矛盾,本说明书优先。除非另有特别说明,本发明中用到的各种设备等,均可通过市场购买得到或者可通过现有方法制备得到。
传统的采用BCH编码的ECC系统,需要保证数据出错量在BCH解码器的设计纠错能力范围内,对于出错量超出BCH解码器纠错能力的数据,无法保证数据的正确性,并且BCH解码时也无法检测和判断数据的出错量是否溢出了纠错范围。另外在一些特殊应用场景,如航天领域,由于空间环境更加错综复杂,如磁场、高能粒子、宇宙射线等,不仅会显著增加数据的出错量,还存在数据错误波动无规律、随机突发大量数据软错误的情况,表现在某一时刻下数据中的误码率急剧增加,因此无法通过设计一套基于BCH编码的具有“最佳”纠错能力的ECC系统,以适应复杂多变的航天空间数据通信。
为了解决这个问题,本申请提出了一种结合循环冗余校验(Cyclic RedundancyCheck,CRC)技术和BCH编码技术的差错控制编码ECC系统,CRC码性能优良且易于实现,码率和实现代价都较小,是一种通用的检错编码方案。但是CRC只能检验数据是否出错,不能定位并纠正错误,因此单独使用CRC码无法实现数据纠错以降低误码率。故而,在一个可选的实施例中,将BCH编码与CRC编码结合,提出了一种新的ECC系统,其整体思路如下:
一种差错控制编码ECC系统,如图1所示,包括循环冗余码校验CRC编码器1、BCH编码器2、BCH译码器3和CRC译码器4;CRC编码器1连接BCH编码器2,BCH译码器3连接CRC译码器4,BCH编码器2与BCH译码器3建立通信连接;
CRC编码器1用于对待编码数据进行CRC编码,获得CRC码;
BCH编码器2用于对CRC码进行BCH编码,获得BCH码,并将BCH码发送至BCH译码器3;
BCH译码器3用于接收BCH码并进行译码,获得BCH译码数据;
CRC译码器4用于对BCH译码数据进行CRC译码,获得CRC译码数据和CRC校验结果,CRC校验结果用于判断BCH译码数据中是否存在错误数据。
具体的,上述ECC系统,通过在发送设备端设置CRC编码器1、BCH编码器2,对待编码的数据依次进行CRC编码和BCH编码;在接收设备端设置BCH译码器3和CRC译码器4,依次对从发送设备端接收到的待译码数据依次进行BCH译码和CRC译码。
在发送设备端的数据编码阶段,CRC编码器1和BCH编码器2的工作原理均可以归纳成:在待编码数据中加入一定量的校验/监督码元,然后在接收设备端对校验码元进行校验。
对于CRC编码,以二进制数据为例,一种可选的编码方式是:确定一个r1+1位标准除数,然后在待编码的k位信息元后,使用标准除数以一定的规则生成一个校验用的r1位监督码(CRC校验元);例如,在要发送的数据(k1位)后面加上r1位0,然后将这个新数(k1+r1位)以模2除法的方式除以前述的标准除数,所得到的r1位余数即为CRC校验码;将CRC校验码附在第一信息序列之后,构成了一个新的二进制信息序列,即CRC码,CRC码中包括k1位信息元和r1位CRC校验元。根据上述的编码原理,可构建出相应的CRC编码电路,即CRC编码器1。
对于BCH编码,其定义为:BCH码是可以纠正多个随机错误的循环码,由于循环码是模xn-1剩余代数中的一个以g(x)作生成元的理想,每一个码多项式都是g(x)的倍式,因此可以用生成多项式g(x)的根描述:
给定任意一个有限域GF(q)及其扩展域GF(qm),其中q是素数或素数的幂,m为正整数。若码元取自扩展域GF(q)上的一循环码,它的生成多项式g(x)的根基合R中含有δ-1个连续的根:
m0m0+1,…,αm0m0+δ-2}∈R;
则由生成多项式g(x)生成的循环码称为q进制的BCH码。
设mi(x)和ei分别是αm0+i(i=0,1,…,δ-2)元素的最小多项式和级,则BCH码的生成多项式和码长分别是:
g(x)=LCM[m0(x),m1(x),…,mδ-2(x)];
n=LCM(e0,e0,…,eδ-2);
其中,LCM为最小公倍式,若g(x)的根中有一个GF(qm)的本原域元素,则码长n=qm-1,称为本原BCH码,否则称为非本原BCH码。
以实际中应用最多的码元取自GF(2)中的二进制BCH码为例,一种可选的BCH码的编码原理如下:
根据定义,对任意一个正整数m,一定可以构建出以下的二进制码:
取m0=1,δ=2t+1,又设α是GF(2m)的本原域元素,则根据BCH码的定义,若以α,α2,…,α2t为根,则二进制BCH码的生成多项式为
g(x)=LCM[m1(x),m2(x),…,m2t(x)]
mi(x)是αi(1≤i≤2t)的最小多项式,该BCH码一定能纠正t个错误。
由于在特征为2的GF(2m)域上,α2i的最小多项式与αi的相同,所以生成多项式可以写成:
g(x)=m1(x)m3(x)…m2t-1(x)
因此,构建的二进制BCH码以α,α3,α5,…,α2t-1为根,码长:n=LCM(e1,e3,…,e2t-1);
码的校验矩阵H:
Figure BDA0002479888070000081
由g(x)生成的BCH码的最小码距d≥d0=2t+1,d0为设计码距,它至少可以纠正t个随机独立差错,因此t也称之为纠错能力。BCH码可以记为[n,k,d],其中,n为码长,k为BCH码的信息元长度,即有效信息位的长度;n-k为BCH码的校验位长度;k/n为编码效率(码率)。
根据上述编码过程和获得的生成多项式g(x),即可构建相应的BCH编码电路,即BCH编码器进行编码。在本实施例中,在CRC码的基础上进行BCH编码,若CRC码为的数据位长度为k1,校验位长度为r1,则对应的BCH码的数据位长度k2=k1+r1;BCH校验位长度r2=n-k2
在接收设备端的数据译码阶段,先对待译码的数据进行BCH译码并纠错。
一种BCH码的译码原理可以是:
(1)根据接收到的R(x)计算出伴随式S;
(2)由伴随式找出错误图样E(x);
(3)由R(x)-E(x)得到最可能发送的码字C(x),完成译码。
其中,对于GF(q)上的[n,k,d]BCH码,它的生成多项式为g(x)。发送设备端发送的码字C(x)=q(x)g(x),接收的n重为R(x)=C(x)+E(x),错误图样为E(x);
由伴随式的定义可知:
ST=H·RT=H·ET;H为BCH码的校验矩阵。
根据上述译码原理可构建相应的BCH译码电路,即BCH译码器以实施BCH译码。
接下来,再对BCH译码后的数据进行CRC译码,以校验经过BCH译码后的数据中是否存在错误。
CRC译码过程包括CRC校验,利用发送设备端在生成CRC校验元的标准除数在接收设备端进行CRC校验。例如,对于二进制编码,可以将每一块第二信息序列以模2除法计算此选定的标准除数,若余数为0,则说明接收到的信息序列正确,获得校验正确结果;若除数不为0,则说明接收到的信息序列错误与发送的信息序列不一致,则获得校验错误结果。
同时,CRC译码过程还包括有效数据的还原,即去掉r1位CRC校验元,保留k1位数据元。
根据上述译码原理,可构建相应的CRC译码电路,即CRC译码器实施CRC译码。
本实施例中的BCH码可以是本原BCH码,还可以是BCH缩短码的形式。
本实施例提供了一种基于BCH与CRC的二级编码和译码的ECC系统,通过先进行CRC编码,然后再将CRC码进行BCH编码;而在译码时,首先通过BCH译码过程,纠正数据中的错误信息,接着进行CRC译码,根据CRC译码后的校验结果,即可判断出经BCH译码后的数据中是否存在错误;从而可以进一步判断出在BCH译码前,BCH译码器接收到的数据中的错误数据量是否超过了BCH码的设计纠错能力,因为只有当接收到的BCH编码数据中的错误数据量超过了BCH码的设计纠错能力,才会在BCH译码后的数据中发现错误数据。
总的来说,上述的ECC系统通过先CRC编码再BCH编码,以增加很小的编译码复杂度和电路成本,使数据在译码阶段能够通过CRC校验及时检测BCH解码后的数据中是否含有错误数据,从而进一步确定待BCH解码的数据中的数据错误量是否溢出了BCH码纠错能力,以保证输出数据的可靠性和系统的稳定性。上述的ECC系统尤其适用于在复杂多变的空间环境下的通信场景。
基于前述实施例相同的发明构思,在另一个可选的实施例中,如图2所示,ECC系统还包括ECC控制器5,ECC控制器5与CRC译码器4建立通信连接;
ECC控制器5用于从CRC译码器4中获取CRC校验结果,并根据CRC校验结果,判断BCH译码数据中是否存在错误数据。
本实施例中的ECC控制器5中包括逻辑运算单元,用于根据CRC校验结果判断BCH译码后的数据中是否存在错误。
可选的,当CRC校验结果为校验正确结果时,ECC控制器5判断BCH译码数据中不存在错误数据,ECC控制器5输出数据正确状态信号,并控制CRC译码器4将CRC译码数据发出。
具体的,ECC控制器5根据数据正确的判断结果,生成发送数据指令发送CRC译码器4,以使CRC译码器4将译码后的数据发往下级设备处理,如信源译码器,将二进制的信息序列转化成语言、图像等实际数据。同时,ECC控制器5也将生成表征“数据正确”的状态信号。
可选的,当CRC校验结果为校验错误结果时,ECC控制器5判断BCH译码数据中存在错误数据,ECC控制器5控制CRC译码器4删除CRC译码数据;
ECC控制器5发出数据重读信号,以使BCH译码器3重新接收BCH码并进行译码,CRC译码器4重新对BCH译码数据进行CRC译码,ECC控制器5重新根据CRC校验结果,判断BCH译码数据中是否存在错误数据。
即,若根据CRC校验结果判断BCH译码后的数据中存在错误,则说明BCH译码前的数据中的错误数量已经超过了BCH译码器3的纠错能力,为了保证数据的准确性,应当删除或抛弃CRC译码数据,并且控制BCH译码器3重读数据重新译码,原因在于:在一些特殊环境或特殊情况下,编码后的数据在存储或传输过程中随机出现的突发性的大量数据软错误,此类错误无明显规律,且容易超出常用的BCH纠错能力设计,使BCH译码器3无法正确纠错;若因此继续增加BCH译码器3的纠错能力,则会消耗大量的硬件资源,降低信息的编码效率。而根据上述方案,当从校验结果中检验到一个以上的错误时,则重新对接收到BCH码进行译码、分块、CRC校验,直至结果显示所有的CRC校验结果均正确为止。为达到上述目的,ECC控制器5可与存储BCH码的外部存储介质建立通信连接,使存储介质再次向BCH译码器3发送待译码的数据。
之所以重读数据并进行译码,是由于在当前时刻可能已经不再存在会导致突发性数据错误的内外因素,待译码的BCH码中的错误数据量没有超过BCH译码器3的纠错能力,可以正常的通过BCH译码纠错,从而在节省了硬件资源消耗、保证信息传输效率的同时,可以显著降低由于突发性的出错量溢出导致的ECC系统将错误数据当成正确数据进行处理的情况,从而提高了数据可靠性。
但在一些情况下,重读并BCH译码数据多次,依然在译码后的数据中校验出错误,说明导致数据突发大量错误的因素仍然存在,而无限制的重读显然也是不可取的。故而,进一步的,在ECC控制器5连续发出n次数据重读信号后,判断BCH译码数据中仍然存在错误数据时,ECC控制器5输出数据错误状态信号,并控制CRC译码器4将CRC译码数据发出;其中,n≥2且为正整数。即ECC控制器5将CRC译码后的有效数据输出,同时将数据状态信号置为“数据错误”的状态值,可将数据状态信号和CRC译码数据交于下一级处理装置视情况处理。n的可选取值为3~8,既可以避免突发因素的影响,且不至于增加太多的重读-译码的硬件资源占用。
本实施例提供了一种包括ECC控制器的ECC系统,ECC控制器根据CRC校验结果,对CRC译码后的数据的正确或错误进行判断,并根据判断结果选择是否输出CRC译码数据,以保证输出数据的可靠性和系统的稳定性。
目前随着数据量的爆发式增长,作为输入的信息序列的长度急剧增大,为了提高BCH、CRC译码的效率和准确性,基于前述实施例相同的发明构思,在又一个可选的实施例中,CRC编码器1用于将待编码数据分为m块第一信息序列,m≥2且为正整数;对m块第一信息序列进行CRC编码,生成m块CRC子码;将m块CRC子码合并为CRC码;
CRC译码器4用于将BCH码分块,获得m块第二信息序列;对m块第二信息序列进行CRC译码,获得m块CRC译码子数据和m个CRC校验结果;其中,CRC译码子数据的信息长度与CRC子码的信息长度相同;将m块CRC译码子数据合并为CRC译码数据;
ECC控制器5根据m个CRC校验结果中是否包括一个以上的校验错误结果,判断BCH译码数据中是否存在错误数据。
实际上,在BCH编码前合并CRC子码的功能也可以在BCH编码器2中实现,而将BCH译码后的数据分块的功能,也可以在BCH译码器3中实现,可根据实际需要调整,在此不作具体限定。
之所以在CRC编码前进行分块,是因为:在当数据量呈现爆发式增长时,为了提高数据处理效率,每一组需要进行BCH编码的原始信息序列也随之显著增长,而CRC码在校验数据时,信息元k越长,需要保证良好的校验准确性的CRC校验位长度随之增加,从而在传输过程中CRC校验位的信息出错的概率增加,若在经过BCH译码后,校验位出现了错误信息,将无法实现正确的CRC码检错功能。而通过分块可以良好的解决这个问题,可选的,第一信息序列的长度的取值范围为128~1024,即分块后进行CRC编码的信息元长度为128~1024比特,校验位的长度可选为1~2比特。
可选的,采用m段串行编码或m段并行编码的方式,对m块第一信息序列进行CRC编码,以提高CRC编码的效率。
可选的,采用m段串行译码或m段并行译码的方式,对m块第二信息序列进行CRC译码,以提高CRC译码的效率。
上述一组实施例中介绍了差错控制编码ECC系统,在接下来的实施例中,介绍ECC系统在存储器领域中的应用,传统的基于BCH技术的ECC存储器结构图3所示。ECC部分包括编码器和译码器。待写入的数据,通过编码器编码后的存储于存储器中,存储器中的数据由实际有效数据和校验数据两部分组成。当读取数据时,读出的数据通过译码器后,经过纠错后的数据直接发送到下一级接口。为保证数据的正确性,存储器中的数据(包括实际有效数据和校验码)中的错误量不能超过该BCH译码器可纠错数据量的最大值。
传统的基于BCH技术的ECC存储器存在两方面的问题:其一,由于BCH码本身存在一定的误码率,即:存在特定的数据出错模式,使BCH码无法正确检测并纠正全部错误数据,使ECC模块的可靠性较差;其二,对于随机出现的突发性的大量数据软错误,容易超出常用的纠错能力,使译码器无法正确纠错,使数据出错;由于不具备检测错误是否超过BCH译码器的纠错能力的功能,因此针对这类突发性的大量随机错误,需要加大BCH码的纠错能力,将增加电路更多的消耗,从而使ECC系统在长时间处于不饱和的工作状态,增加了冗余的功耗和面积代价;若保持BCH纠错能力不变,则无法保证数据的正确性,无法满足存储数据的误码率要求。
为了解决ECC存储器的上述问题,基于前述实施例相同的发明构思,在另一个可选的实施例中,提供了一种存储器设备,包括差错控制编码ECC系统和存储器6,ECC系统包括CRC编码器1、BCH编码器2、BCH译码器3和CRC译码器4;BCH编码器2连接在CRC编码器1与存储器6之间,BCH译码器3连接在CRC译码器4与存储器6之间;
CRC编码器1用于对待编码数据进行CRC编码,获得CRC码;
BCH编码器2用于对CRC码进行BCH编码,获得BCH码,并将BCH码发送至存储器6;
BCH译码器3用于从存储器6中读取BCH码并进行译码,获得BCH译码数据;
CRC译码器4用于对BCH译码数据进行CRC译码,获得CRC译码数据和CRC校验结果,CRC校验结果用于判断BCH译码数据中是否存在错误数据。
即,数据在写入存储器6之前,先进行CRC编码再BCH编码;在读取数据时,先进行BCH译码,再通过CRC译码进行检验,据CRC译码后的校验结果,即可判断出经BCH译码后的数据中是否存在错误。本实施例中提供的ECC存储器设备,可以监测待BCH译码的数据中的数据错误量是否溢出了BCH码的纠错能力,因为只有当BCH译码前的数据中的错误量超过了BCH的纠错能力设计,才会在BCH译码后的数据中检测到错误。因此,通过对BCH译码后的数据的CRC校验,可以保证存储器6输出数据的可靠性和系统的稳定性。上述的ECC存储器6尤其适用于在复杂多变、容易产生大量突发性的数据软错误的空间环境下的通信场景,如航空航天领域。
可选的,存储器6可以是非易失性存储器,包括但不限于:可编程只读内存PROM,电可擦可编程只读内存EEPROM,可擦可编程只读内存,EPROM;快闪式存储器Flash Memory,阻变存储器RRAM等。
可选的,存储器设备还包括ECC控制器5,ECC控制器5与CRC译码器4建立通信连接;ECC控制器5用于从CRC译码器4中获取CRC校验结果,并根据CRC校验结果,判断BCH译码数据中是否存在错误数据。
进一步的,ECC控制器5与存储器6建立通信连接;当CRC校验结果为校验错误结果时,ECC控制器5判断BCH译码数据中存在错误数据,ECC控制器5控制CRC译码器4删除CRC译码数据;
ECC控制器5向存储器6发送数据重读信号;存储器6根据数据重读信号,重新读取BCH码并向BCH译码器3发送重读后的BCH码,BCH译码器3重新对BCH码进行译码,CRC译码器4重新对BCH译码数据进行CRC译码,ECC控制器5重新根据CRC校验结果,判断BCH译码数据中是否存在错误数据。
即,在根据CRC校验结果判断出BCH译码数据中存在错误时,说明在BCH译码前数据中存在的错误数量已经超过了BCH的纠错能力设计,因此,这里的方案给出了在这种情况下的具体处理方式,即重读数据重新译码,可以减少随机性的软错误数据导致的译码失败的情况,提高数据的准确性和ECC存储器的可靠性,尤其是在空间环境中应用的ECC存储器。
可选的,在ECC控制器5连续发出n次数据重读信号后,判断BCH译码数据中仍然存在错误数据时,ECC控制器5输出数据错误状态信号,并控制CRC译码器4将CRC译码数据发出;其中,n≥2且为正整数。
与前述ECC系统的实施例同理,无限制的重读显然也是不可取的。n的可选取值为3~8,既可以避免突发因素的影响,且不至于增加太多的重读-译码的硬件资源占用。
可选的,与前述ECC系统的实施例同理,在输入数据的信息序列很长时,可以在CRC编码前先分为n块,以提高CRC校验过程中的准确性,具体方案如下:
CRC编码器1用于将待编码数据分为m块第一信息序列,m≥2且为正整数;对m块第一信息序列进行CRC编码,生成m块CRC子码;将m块CRC子码合并为CRC码;
CRC译码器4用于将BCH码分块,获得m块第二信息序列;对m块第二信息序列进行CRC译码,获得m块CRC译码子数据和m个CRC校验结果;其中,CRC译码子数据的信息长度与CRC子码的信息长度相同;将m块CRC译码子数据合并为CRC译码数据;
ECC控制器5根据m个CRC校验结果中是否包括一个以上的校验错误结果,判断BCH译码数据中是否存在错误数据。
通过本发明的一个或者多个实施例,本发明具有以下有益效果或者优点:
本发明提供了一种基于BCH与CRC的二级编码和译码的ECC系统,通过在编码阶段时先进行CRC编码再进行BCH编码,译码阶段时先进行BCH译码再进行CRC译码,以增加很小的编译码复杂度和电路成本,使数据在译码阶段能够通过CRC校验及时检测BCH解码后的数据中是否含有错误数据,从而进一步确定待BCH解码的数据中的数据错误量是否溢出了BCH码纠错能力,以保证输出数据的可靠性和系统的稳定性;
基于上述ECC系统,本发明还提供了一种ECC存储器设备,能够监测待BCH解码的数据中的数据错误量是否溢出了BCH码的纠错能力,减少随机性的软错误数据导致的译码失败的情况,保证存储器输出数据的可靠性和系统的稳定性。
尽管已描述了本申请的优选实施例,但本领域内的普通技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种差错控制编码ECC系统,其特征在于,包括循环冗余码校验CRC编码器、BCH编码器、BCH译码器和CRC译码器;所述CRC编码器连接所述BCH编码器,所述BCH译码器连接所述CRC译码器,所述BCH编码器与所述BCH译码器建立通信连接;
所述CRC编码器用于对待编码数据进行CRC编码,获得CRC码;
所述BCH编码器用于对所述CRC码进行BCH编码,获得BCH码,并将所述BCH码发送至所述BCH译码器;
所述BCH译码器用于接收所述BCH码并进行译码,获得BCH译码数据;
所述CRC译码器用于对所述BCH译码数据进行CRC译码,获得CRC译码数据和CRC校验结果,所述CRC校验结果用于判断所述BCH译码数据中是否存在错误数据。
2.如权利要求1所述的ECC系统,其特征在于,还包括ECC控制器,所述ECC控制器与所述CRC译码器建立通信连接;
所述ECC控制器用于从所述CRC译码器中获取所述CRC校验结果,并根据所述CRC校验结果,判断所述BCH译码数据中是否存在错误数据。
3.如权利要求2所述的ECC系统,其特征在于,当所述CRC校验结果为校验正确结果时,所述ECC控制器判断所述BCH译码数据中不存在错误数据,所述ECC控制器输出数据正确状态信号,并控制所述CRC译码器将所述CRC译码数据发出。
4.如权利要求2所述的ECC系统,其特征在于,当所述CRC校验结果为校验错误结果时,所述ECC控制器判断所述BCH译码数据中存在错误数据,所述ECC控制器控制所述CRC译码器删除所述CRC译码数据;
所述ECC控制器发出数据重读信号,以使所述BCH译码器重新接收所述BCH码并进行译码,所述CRC译码器重新对所述BCH译码数据进行CRC译码,所述ECC控制器重新根据所述CRC校验结果,判断所述BCH译码数据中是否存在错误数据。
5.如权利要求4所述的ECC系统,其特征在于,在所述ECC控制器连续发出n次数据重读信号后,判断所述BCH译码数据中仍然存在错误数据时,所述ECC控制器输出数据错误状态信号,并控制所述CRC译码器将所述CRC译码数据发出;其中,n≥2且为正整数。
6.如权利要求4所述的ECC系统,其特征在于,所述CRC编码器用于将所述待编码数据分为m块第一信息序列,m≥2且为正整数;对所述m块第一信息序列进行CRC编码,生成m块CRC子码;将所述m块CRC子码合并为所述CRC码;
所述CRC译码器用于将所述BCH码分块,获得m块第二信息序列;对所述m块第二信息序列进行CRC译码,获得m块CRC译码子数据和m个CRC校验结果;其中,所述CRC译码子数据的信息长度与所述CRC子码的信息长度相同;将所述m块CRC译码子数据合并为所述CRC译码数据;
所述ECC控制器根据所述m个CRC校验结果中是否包括一个以上的校验错误结果,判断所述BCH译码数据中是否存在错误数据。
7.一种存储器设备,其特征在于,包括差错控制编码ECC系统和存储器,所述ECC系统包括CRC编码器、BCH编码器、BCH译码器和CRC译码器;所述所述BCH编码器连接在所述CRC编码器与所述存储器之间,所述BCH译码器连接在所述CRC译码器与所述存储器之间;
所述CRC编码器用于对待编码数据进行CRC编码,获得CRC码;
所述BCH编码器用于对所述CRC码进行BCH编码,获得BCH码,并将所述BCH码发送至所述存储器;
所述BCH译码器用于从所述存储器中读取所述BCH码并进行译码,获得BCH译码数据;
所述CRC译码器用于对所述BCH译码数据进行CRC译码,获得CRC译码数据和CRC校验结果,所述CRC校验结果用于判断所述BCH译码数据中是否存在错误数据。
8.如权利要求7所述的存储器设备,其特征在于,还包括ECC控制器,所述ECC控制器与所述CRC译码器建立通信连接;
所述ECC控制器用于从所述CRC译码器中获取所述CRC校验结果,并根据所述CRC校验结果,判断所述BCH译码数据中是否存在错误数据。
9.如权利要求8所述的存储器设备,其特征在于,所述ECC控制器与所述存储器建立通信连接;
当所述CRC校验结果为校验错误结果时,所述ECC控制器判断所述BCH译码数据中存在错误数据,所述ECC控制器控制所述CRC译码器删除所述CRC译码数据;
所述ECC控制器向所述存储器发送数据重读信号;所述存储器根据所述数据重读信号,重新读取所述BCH码并向所述BCH译码器发送重读后的所述BCH码,所述BCH译码器重新对所述BCH码进行译码,所述CRC译码器重新对所述BCH译码数据进行CRC译码,所述ECC控制器重新根据所述CRC校验结果,判断所述BCH译码数据中是否存在错误数据。
10.如权利要求9所述的存储器设备,其特征在于,在所述ECC控制器连续发出n次数据重读信号后,判断所述BCH译码数据中仍然存在错误数据时,所述ECC控制器输出数据错误状态信号,并控制所述CRC译码器将所述CRC译码数据发出;其中,n≥2且为正整数。
CN202010375909.0A 2020-05-07 2020-05-07 差错控制编码ecc系统及包括ecc系统的存储器设备 Active CN111597072B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010375909.0A CN111597072B (zh) 2020-05-07 2020-05-07 差错控制编码ecc系统及包括ecc系统的存储器设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010375909.0A CN111597072B (zh) 2020-05-07 2020-05-07 差错控制编码ecc系统及包括ecc系统的存储器设备

Publications (2)

Publication Number Publication Date
CN111597072A true CN111597072A (zh) 2020-08-28
CN111597072B CN111597072B (zh) 2024-03-12

Family

ID=72191016

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010375909.0A Active CN111597072B (zh) 2020-05-07 2020-05-07 差错控制编码ecc系统及包括ecc系统的存储器设备

Country Status (1)

Country Link
CN (1) CN111597072B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112468267A (zh) * 2020-11-26 2021-03-09 展讯通信(上海)有限公司 下行接收数据的处理方法及装置、存储介质、终端
CN113241110A (zh) * 2021-05-10 2021-08-10 上海航天测控通信研究所 多通道的nand flash差错控制方法
CN115173995A (zh) * 2022-07-01 2022-10-11 华北电力大学 一种基于crc和bch编码的重型燃气轮机控制系统数据容错方法
CN115567165A (zh) * 2022-10-18 2023-01-03 天津津航计算技术研究所 一种编码纠错方法、系统、终端设备及可读存储介质
WO2023202541A1 (zh) * 2022-04-22 2023-10-26 华为技术有限公司 一种信息传输方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4151510A (en) * 1978-04-27 1979-04-24 Honeywell Information Systems Method and apparatus for an efficient error detection and correction system
CN107947902A (zh) * 2017-12-04 2018-04-20 郑州云海信息技术有限公司 一种高速接口芯片的数据差错处理系统及方法
CN108958963A (zh) * 2018-06-01 2018-12-07 杭州电子科技大学 一种基于ldpc和循环冗余校验码的nand flash差错控制方法
CN109935263A (zh) * 2019-03-27 2019-06-25 翰顺联电子科技(南京)有限公司 非易失性存储器的编译码方法及存储系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4151510A (en) * 1978-04-27 1979-04-24 Honeywell Information Systems Method and apparatus for an efficient error detection and correction system
CN107947902A (zh) * 2017-12-04 2018-04-20 郑州云海信息技术有限公司 一种高速接口芯片的数据差错处理系统及方法
CN108958963A (zh) * 2018-06-01 2018-12-07 杭州电子科技大学 一种基于ldpc和循环冗余校验码的nand flash差错控制方法
CN109935263A (zh) * 2019-03-27 2019-06-25 翰顺联电子科技(南京)有限公司 非易失性存储器的编译码方法及存储系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112468267A (zh) * 2020-11-26 2021-03-09 展讯通信(上海)有限公司 下行接收数据的处理方法及装置、存储介质、终端
WO2022111353A1 (zh) * 2020-11-26 2022-06-02 展讯通信(上海)有限公司 下行接收数据的处理方法及装置、存储介质、终端
CN112468267B (zh) * 2020-11-26 2022-08-19 展讯通信(上海)有限公司 下行接收数据的处理方法及装置、存储介质、终端
CN113241110A (zh) * 2021-05-10 2021-08-10 上海航天测控通信研究所 多通道的nand flash差错控制方法
WO2023202541A1 (zh) * 2022-04-22 2023-10-26 华为技术有限公司 一种信息传输方法和装置
CN115173995A (zh) * 2022-07-01 2022-10-11 华北电力大学 一种基于crc和bch编码的重型燃气轮机控制系统数据容错方法
CN115567165A (zh) * 2022-10-18 2023-01-03 天津津航计算技术研究所 一种编码纠错方法、系统、终端设备及可读存储介质

Also Published As

Publication number Publication date
CN111597072B (zh) 2024-03-12

Similar Documents

Publication Publication Date Title
CN111597072B (zh) 差错控制编码ecc系统及包括ecc系统的存储器设备
CN111628780B (zh) 数据编码、解码方法及数据处理系统
US5428630A (en) System and method for verifying the integrity of data written to a memory
US8713411B2 (en) Encoding and/or decoding memory devices and methods thereof
US7146553B2 (en) Error correction improvement for concatenated codes
US20060085726A1 (en) Apparatus and method for decoding Reed-Solomon code
US8429489B2 (en) Data retrieval from a storage device using a combined error correction and detection approach
JPH11508712A (ja) ディスクドライブバッファ内のデータを保護するための方法および装置
JPH0812612B2 (ja) 誤り訂正方法及び装置
US8806295B2 (en) Mis-correction and no-correction rates for error control
US20050193312A1 (en) System for error correction coding and decoding
US8032812B1 (en) Error correction decoding methods and apparatus
WO2006062607A1 (en) Error detection and correction
US6009550A (en) PBA recovery apparatus and method for interleaved reed-solomon codes
KR101314232B1 (ko) 에러 정정 코드의 부호화 및 복호화 방법 그리고 코덱
US6868517B1 (en) Method and apparatus for checking read errors with two cyclic redundancy check stages
US5809042A (en) Interleave type error correction method and apparatus
CN113168882B (zh) 一种编码方法、译码方法以及存储控制器
JPH0691471B2 (ja) 誤り訂正回路
JP2684031B2 (ja) データの復号化方法
WO2023197935A1 (zh) 存储数据的方法、读取数据的方法和相关设备
WO2009069087A1 (en) Apparatus and method for decoding concatenated error correction codes
JPS6260319A (ja) 誤り訂正回路
JPH07112160B2 (ja) 誤り訂正符号の復号方法
JPH0636286B2 (ja) 誤り訂正方法及び装置

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