一种极快速纠错译码方法及装置与流程

文档序号:22118569发布日期:2020-09-04 15:53阅读:296来源:国知局
一种极快速纠错译码方法及装置与流程

本发明属于通信领域的磁盘存储技术,尤其涉及一种极快速纠错译码方法,还涉及一种极快速纠错译码装置。



背景技术:

在通信领域、磁盘存储领域需要解决信息传输、存取错误的问题。目前广泛采用能够纠正“单个多位突发错误”的法尔(fire)码作为理论基础来解决这一问题。运用该码制及相关算法,实现在信息码流中找到发生错误的地方并进行纠正。

但目前的法尔码纠错移码方法存在如下问题:

1、效率不高,完成计算需要耗费数百个时钟周期。如计算4080位法尔码纠错译码时,需要的自发操作最多需要270个时钟周期。

2、速度不稳定,速差极大。由于信息码流中突发错误的随机性,在进行纠错译码时,完成计算所需的时钟周期为十几个到数百个不等。

3、速度不稳定造成在硬件纠错电路/芯片设计上不得不向“低速”看齐。即,必须按最慢(时钟周期消耗最多)的情况来设计纠错电路/芯片,拉低了整个信息系统的处理速度。



技术实现要素:

本发明的目的就在于克服现有技术存在的缺点和不足,是在于提供了一种极快速纠错译码方法,还提供一种极快速纠错译码装置,利用循环码的循环特性提供一种更加简洁的纠错译码,完全消除了既有方案中的n2自发操作时间,将自发操作由最多需要270个时钟周期(以下简称为clk)减少到最多只需要15个clk,极大的提高了纠错译码的速度。在相同条件下本发明的纠错译码处理速度比既有方案提升了18倍。

为了实现上述的目的,本发明采用以下技术措施:

现有的fire码纠错分为以下三个步骤:

步骤1、求错误模式值b(x),n1值。

由于初级移位译码电路((x16+1)电路)以16为周期,此时对于不大于8位的突发错误,将初级移位译码电路在无输入条件下作不大于15次自发操作,电路的高8位必为全零,那么低8位存放的就是错误模式值b(x)。再将自发次数n1的值放到硬件4位(bit)的n1计数器中保存。

步骤2、求n2值,自发操作次数为n2。

初级移位译码电路停止,错误模式值b(x)固定在初级移位译码电路的低8位。然后对次级移位译码电路进行自发操作,用了n2次(n2取值为0至255中间的某值)。当出现次级移位译码电路的内容等于错误模式值b(x)时(通过全等比较电路进行对比),当前的自发操作次数值即为n2的取值。将n2的值放在图1的硬件“n2位计数器(8位计数器)”中保存。

步骤3、计算突发错误的位置。

将n2(8位)的高4位和低4位进行交叉换位得到新的8位二进制数,再用该数拼接n1(4bit位)的值得到一个12bit位的二进制数,即为信息码流中发生突发错误的位置。即,求得了b(x)的位置i的值。至此,完成了纠错译码过程。

本发明跟现有方案一样,均利用“中国剩余定理”进行法尔(fire)码的纠错译码,采用同样的计数器拼装方法避免使用乘法和加法运算,保证译码速度且易于实现。

不同之处在于,本发明对既有方案进行了进一步的改进和完善。即,利用循环码的循环特性去实现法尔(fire)码的极快速译码。如图2所示:

本发明的在硬件上取消了全等比较(8位)电路和“n2位计数器(8位计数器)”。在算法上完全取消了所需的n2自发操作时间。

一种极快速纠错译码方法,包括以下步骤:

步骤1、初级移位译码电路和次级移位译码电路同时接收发送端的信息码流d(x);

步骤2、初级移位译码电路接收到信息码流d(x)后,在无输入条件下做不大于15次的自发操作直至全零检测电路测得的初级移位译码电路的高8位全为0,在初级移位译码电路做自发操作的同时,次级移位译码电路也同步做自发操作,n1计数器对自发操作的次数进行计数获得n1值,初级移位译码电路的低8位的数据为错误模式值b(x),

步骤3、将错误模式值和次级移位译码电路的值,拼接为一个16bit的寻址地址,存储器中对应上述寻址地址的存储单元存储有对应的8bit码字间的距离值,即n2值,

n2值的高8位和低8位互换获得n2’值,n2’值作为高8位,n1值作为低4位拼接为错误位置i。

一种极快速纠错译码装置,包括初级移位译码电路,还包括全零检测电路、次级移位译码电路、n1计数器、存储器和控制器。

初级移位译码电路和次级移位译码电路同时接收发送端的信息码流,

初级移位译码电路接收到信息码流后,在无输入条件下做不大于15次的自发操作直至全零检测电路测得的初级移位译码电路的高8位全为0,在初级移位译码电路做自发操作的同时,次级移位译码电路也同步做自发操作,n1计数器对自发操作的次数进行计数获得n1值,

控制器读取初级移位译码电路的低8位的数据作为错误模式值,

控制器将错误模式值和次级移位译码电路的值,拼接为一个16bit的寻址地址,存储器中对应上述寻址地址的存储单元存储有对应的8bit码字间的距离值,即n2值,控制器读取n2值,

控制器将n2值的高8位和低8位互换获得n2’值,n2’值作为高8位,n1值作为低4位拼接为错误位置i。

通过上述的技术措施:解决了如下技术问题和难点,a、本发明所述的利用循环码的循环特性去实现法尔(fire)码的极快速译码的方法。b、本发明所述的免除n2自发操作时间的方法。c、本发明无需既有方案中的8位比较电路和8位n2计数器,纠错译码电路更简洁高效。d、本发明“纠错译码时间”及“随机波动性”远小于既有方案,仅受0≤n1≤15自发操作影响,而完全不受0≤n2≤255操作的影响。因而译码速度更快、译码速度波动性更小,这意味着应用本发明后,信息纠错、信息通信速率得以显著提升。

既有方案的自发操作次数范围是0≤max(n1+n2)≤270(15+255);而本发明的自发操作次数范围是0≤max(n1)≤15;若每次自发操作占用1个时钟周期(clk),则按最坏情况考虑,既有方案将耗时270clk,而本发明仅需15clk。同时,在纠错系统设计中,必须考虑最坏情况即“短板效应”。因此,在电路时序设计上,既有方案的设计速度只能为270clk,而采用本发明后的设计速度可以达到15clk,时序速度提升了18倍。

本发明与现有技术相比,具有以下优点和积极效果:

本发明利用循环码的循环特性提供了一种更加简洁的纠错译码方案,完全消除了既有方案中的n2自发操作时间,将自发操作由最多需要270个时钟周期(以下简称为clk)减少到最多只需要15个clk,极大的提高了纠错译码的速度。在相同条件下本发明的纠错译码处理速度比既有方案提升了18倍。

本发明的硬件设计取消了现有方案采用的8位比较电路和8位的n2计数器电路,本发明电路更加简洁。

本发明在纠错译码处理时间上的随机波动性比现有方案小得多,本方案的随机波动性为0~15个时钟周期;而原方案为0~270个时钟周期;波动性只有原方案的1/18(15/270)。仅受0≤n1≤15自发操作的影响,而完全不受0≤n2≤255操作的影响。现有方案的译码处理时间随机波动范围是:0至270;而本发明的随机波动范围仅有0至15。

附图说明

图1为现有的fire纠错译码方案示意图;

图2为一种极快速纠错译码装置的结构示意图;

图3为一种极快速纠错译码方法的纠错译码实例数据图。

具体实施方式

为了便于本领域普通技术人员理解和实施本发明,下面结合实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。

实施例1:

一种极快速纠错译码装置,包括初级移位译码电路((x16+1)电路)、全零检测电路、次级移位译码电路(p(x)电路)、n1计数器、存储器和控制器。

初级移位译码电路和次级移位译码电路同时接收发送端的信息码流,

初级移位译码电路接收到信息码流后,在无输入条件下做不大于15次的自发操作直至全零检测电路测得的初级移位译码电路的高8位全为0,在初级移位译码电路做自发操作的同时,次级移位译码电路也同步做自发操作,n1计数器对自发操作的次数进行计数获得n1值,

控制器读取初级移位译码电路的低8位的数据作为错误模式值,

控制器将错误模式值和次级移位译码电路的值,拼接为一个16bit的寻址地址,存储器中对应上述寻址地址的存储单元存储有对应的8bit码字间的距离值,即n2值,控制器读取n2值,

控制器将n2值的高8位和低8位互换获得n2’值,n2’值作为高8位,n1值作为低4位拼接为错误位置i。

一种极快速纠错译码方法,包括以下步骤:

步骤1、初级移位译码电路和次级移位译码电路同时接收发送端的信息码流d(x),来自发送端的信息码流d(x)包含原信息码c(x)和突发错误e(x),表示的是经过传输后,包含突发错误的接收码流。

本发明纠错译码过程分为两个阶段,分别是求错误模式码b(x)和求错误位置i。即得到“怎么错的”和“哪里错了”。

步骤2、求错误模式值b(x),具体为:

初级移位译码电路接收到信息码流d(x)后,在无输入条件下做不大于15次的自发操作直至全零检测电路测得的初级移位译码电路的高8位全为0,在初级移位译码电路做自发操作的同时,次级移位译码电路也同步做自发操作,n1计数器对自发操作的次数进行计数获得n1值,初级移位译码电路的低8位的数据为错误模式值b(x),

信息码流d(x)进入初级移位译码电路和次级移位译码电路后,初级移位译码电路((x16+1)电路)以16为周期,对于不大于8位的突发错误,将初级移位译码电路在无输入条件下做不大于15次的自发操作,初级移位译码电路的高8位必为全零,初级移位译码电路的低8位存放的就是错误模式值b(x)。

例如,若d(x)中的错误发生在第43位至第36位(如图3所示),其中第43、42、39、38、36位发生了错误。则错误多项式可表示为:

e(x)=x43+x42+x39+x38+x36

=x36(x7+x6+x3+x2+x0)

=x36(11001101)2

=x36(cd)h

其中错误模式值b(x)=(cd)h,且错误位置i=36。

当d(x)=c(x)+e(x)=x36(cd)h,次级移位译码电路也同步做自发操作后,在次级移位译码电路中存留的内容为(46)h,在初级移位译码电路中存留的内容是(0cd0)h。

在本阶段,将初级移位译码电路无输入条件下做不大于15次的自发操作,n1=12时,初级移位译码电路的内容变为(00cd)h,此时初级移位译码电路的高8位全为0(由全零检测电路检出),初级移位译码电路低8位存放的内容即为错误模式值b(x)=(cd)h。于此相对应的次级移位译码电路也同步自发操作了n1次,次级移位译码电路的内容变为(b9)h。自发次数n1(12次)在进行自发操作时,由n1计数器自动累加记录。

步骤3、求错误位置i,具体包括以下步骤:

将错误模式值和次级移位译码电路的值,拼接为一个16bit的寻址地址,存储器中对应上述寻址地址的存储单元,存储有对应的8bit码字间的距离值,即n2值,

n2值的高8位和低8位互换获得n2’值,n2’值作为高8位,n1值作为低4位拼接为错误位置i。

或者,步骤3为:将错误模式值和次级移位译码电路的值,拼接为一个16bit的寻址地址,存储器中对应上述寻址地址的存储单元存储有对应的8bit码字间的距离值的高4位和低4位交叉的n2’值,n2’值作为高8位,n1值作为低4位拼接为错误位置i。

次级移位译码电路的值=(b9)h和错误模式值b(x)=(cd)h,拼接为一个16bit位的存储器的寻址地址(如图2所示的ad0-7,ad8-15拼接为内存寻址地址),如(b9cd)h或(cdb9)h。然后在存储器的上述寻址地址的存储单元中直接硬件寻址取出n2值。存储器为64kb的nvram或norflash或其它类型的随机访问存储器。其中存储的是本原多项式p(x)=(x8+x4+x3+x2+1)码字间的距离值,即为现有方案中所描述的n2值,表示从一个码字变为另一个码字需要经过的自发次数。见表1。

表1:本原多项式p(x)=(x8+x4+x3+x2+1)码字间的距离

如上例,次级移位译码电路的值=(b9)h和错误模式值b(x)=(cd)h所对应的n2值为(cf)h。

将n2值的高4位和低4位互换,如n2=(cf)h,互换后的值为n2’=(fc)h。再将该值拼接上n1计数器的值构成一个12bit位的新值,该值即为突发错误发生的位置i。

如本例n1=(12)d=(c)h,n2=(cf)h,拼接后得到i=(fcc)h=4044。该值表示错误模式b(x)=(cd)h=(11001101)2的零次项到x4079的距离是4044位,到x0的距离是35位(出错位置的起点为第36位),与题设正确相符。

由此,本发明所述方案相比于既有方案,只用了n1(=12)次自发操作即完成了整个纠错译码处理。一般情况下的自发次数范围0≤n1≤15。而既有方案的自发次数n范围是[0,n1max+n2max],即0≤n≤270(15+255)。

图2中存储器可以优化为一个十六位寄存器,该十六位寄存器可由地址锁存器或类似功能的逻辑器件实现,向“上位机”输出n2值的地址码。“表1”由上位机存储于自身内存中,并由上位机根据n2值的地址码自行查表使用。可节省存储器的硬件成本,或更灵活的满足上位机的纠错应用。

“表1”内存储的n2值也可以转换成n2交叉码,即直接存储n2’值,这样可以免除后期n2码的高4位与低4位交叉置换步骤。即,在本发明所述的阶段二中,通过内存寻址访问取出的是已经交叉置换后的n2码,无需在硬件电路上做额外的交叉置换操作,更快速。

最后应当说明的是,以上实施例仅用以说明本发明的技术方案而非对本发明保护范围的限制,尽管参照较佳实施例对本发明作了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的实质和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1