首页> 中国专利> 一种确定汉明纠错码校验位的方法与装置

一种确定汉明纠错码校验位的方法与装置

摘要

本发明公开了一种确定汉明纠错码校验位的方法及装置。包括:对传输的数据量进行计数;将计数结果与设定的汉明纠错码信息位长度的整数倍进行比较;当传输的数据量每次达到设定的汉明纠错码信息位长度的整数倍时,获取当前已传输的全部数据进行汉明纠错码编码后的编码结果;以及将所述编码结果与之前各次确定出的与所述设定的汉明纠错码信息位长度对应的汉明纠错码校验位进行异或运算,确定出本次与所述设定的汉明纠错码信息位长度对应的汉明纠错码校验位。本发明无需中断数据传输,无需在数据传输过程中复位确定汉明纠错码校验位的装置,提高了数据传输的效率并使得数据传输的控制更加简单。

著录项

  • 公开/公告号CN101345606A

    专利类型发明专利

  • 公开/公告日2009-01-14

    原文格式PDF

  • 申请/专利权人 炬力集成电路设计有限公司;

    申请/专利号CN200810147206.1

  • 发明设计人 唐杰;

    申请日2008-08-21

  • 分类号H04L1/00(20060101);

  • 代理机构11291 北京同达信恒知识产权代理有限公司;

  • 代理人郭润湘

  • 地址 519085 广东省珠海市唐家湾镇哈工大路1号15栋1单元1号

  • 入库时间 2023-12-17 21:23:40

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-06-23

    专利权的转移 IPC(主分类):H04L1/00 登记生效日:20170605 变更前: 变更后: 申请日:20080821

    专利申请权、专利权的转移

  • 2011-03-09

    授权

    授权

  • 2009-03-04

    实质审查的生效

    实质审查的生效

  • 2009-01-14

    公开

    公开

说明书

技术领域

本发明涉及数据传输,尤其涉及对传输数据进行纠错处理的一种确定汉明纠错码校验位的方法及一种确定汉明纠错码校验位的装置。

背景技术

目前,与非(NAND)型闪存等存储体的读写访问多以扇区(sector)为基本单位,一个扇区的大小为512字节(byte)。数据传输过程中,每个扇区受到独立的纠错码保护。因此,在NAND型闪存等存储体控制器的设计中,纠错码电路是控制器的必要组成部分,其中汉明纠错码电路是纠错码电路的常见一种。

图1是传统的汉明纠错码编码原理图,以其输入数据量为256字节为例,具体解释如下:

cp0是每个字节(byte)的奇数比特位(bit)之间的异或(XOR)运算结果;

cp1是每个字节的偶数比特位之间的异或运算结果;

cp2是每个字节的第一、第二、第五、第六比特位之间的异或运算结果;

cp3是每个字节的第三、第四、第七、第八比特位之间的异或运算结果;

cp4是每个字节低四比特位之间的异或运算结果;

cp5是每个字节高四比特位之间的异或运算结果;

假设输入的数据为data,符号“^”代表异或运算(下同),则:

cp0=data[0]^data[2]^data[4]^data[6]^cp0;

cp1=data[1]^data[3]^data[5]^data[7]^cp1;

cp2=data[0]^data[1]^data[4]^data[5]^cp2;

cp3=data[2]^data[3]^data[6]^data[7]^cp3;

cp4=data[0]^data[1]^data[2]^data[3]^cp4;

cp5=data[4]^data[5]^data[6]^data[7]^cp5;

类似地:

lp0是奇数字节的各个比特位之间的异或运算结果;

lp1是偶数字节的各个比特位之间的异或运算结果;

lp2是第一、第二、第五、第六、...、第253、第254字节的各个比特位之间的异或运算结果;

lp3是第三、第四、第七、第八、...、第255、第256字节的各个比特位之间的异或运算结果;

以此类推,lp14是前128个字节的各个比特位之间的异或运算结果;lp15是后128字节的各个比特位之间的异或运算结果。

因此,256字节的数据编码时总共生成22比特的校验位,记为parity_wr,即:

parity_wr={lp15_wr,lp_14_wr,...,lp0_wr,cp5_wr,cp4_wr,...,cp0_wr}。

这些校验位和有效数据一起在写操作时被写入NAND型闪存等存储体。当从存储体中读数据时,这些校验位也会被一起读回,读数据的过程就是解码的过程。解码过程和编码相似,首先对256字节的有效数据进行和编码运算一样的运算,得到22比特校验位,记为parity_rd,即:

parity_rd={lp15_rd,lp_14_rd,...,lp0_rd,cp5_rd,cp4_rd,...,cp0_rd}。

再对parity_rd,parity_wr作异或运算得到22比特的异或结果,记作parity_xor,即:

parity_xor={lp15_xor,lp14_xor,...,lp0_xor,cp5_xor,cp4_xor,...,cp0_xor}。

对parity_xor的相邻两个比特作异或运算(即parity_xor[0]^parity_xor[1],parity_xor[2]^parity_xor[3],...),得到结果记为parity_flag(位宽为11比特)。

根据parity_xor和parity_flag的值可以纠正256字节数据中一个比特的错误(发现两个比特错误)。具体的纠错方法如下所述:

若parity_xor值为0(22比特全部为0),说明256字节数据没有错误(或者错误个数超过了纠错码的检错能力);

若parity_xor值不为0,但parity_flag的所有比特位均为1,说明256字节数据中有一个比特数据出错,该比特的具体位置由其所在的字节在256字节数据中的位置和该比特位在该字节中的位置共同描述。错误比特所在字节位置是{lp15_xor,lp13_xor,lp11_xor,...,lp1_xor},错误比特在该字节中的位置是{cp5_xor,cp3_xor,cp1_xor}。例如{lp15_xor,lp13_xor,lp11_xor,...,lp1_xor}=10010110,{cp5_xor,cp3_xor,cp1_xor}=001,则说明第151字节第2比特错误。

若parity_xor值不为0,parity_flag的所有比特位不全为1,说明错误比特数超过1(或者产生的校验位出错),但具体为多少比特错误及其错误位置无法求得。

由于对NAND型闪存等存储体的读写数据量大多以512字节为单位,且要求采用的纠错码以上述的256字节为单位,即512字节的数据是分两个256字节独立做纠错码保护的。因此,一次传输实际对应了两次汉明编码或解码运算。

传统的处理方法是在进行第二次编码或解码(即传输后256字节数据)之前,先对汉明纠错码电路复位清零,避免前256字节数据的编(解)码计算结果影响后256字节数据的编(解)码运算。

处理方法一:采用同步设计方法,汉明纠错码电路结构示意图如图2所示,包括:汉明纠错码算法单元,前256字节的汉明纠错码校验位存储单元(parity1)、后256字节的汉明纠错码校验位存储单元(parity2)以及计数器(dma_cnt)和比较电路模块。图2中:

dma_en是数据传输使能信号(高电平有效);

data[7:0]是传输的数据;

ham_parity是汉明纠错码算法单元实时输出的编码结果;

ham_clr_n信号(复位信号,低电平有效)和dma_stop信号(中断信号)由计数器和比较电路模块产生,这两个信号同时有效,ham_clr_n信号用于复位汉明纠错码算法单元,dma_stop信号反馈给数据传输控制单元,使当前数据传输停止一个时钟周期;

load1信号和load2信号分别是前/后256字节对应的汉明纠错码校验位存储使能信号;当计数器dma_cnt的值为255(从0到255,总共传输了256个字节的数据)时,比较电路会使能load1信号(置为高),并只持续一个时钟周期,表明在下一个时钟周期存储前256字节数据对应的汉明纠错码校验位;当计数器dma_cnt的值为511时,比较电路会使能load2信号(置为高),并持续一个时钟周期,表明下一个时钟周期存储后256字节数据对应的汉明纠错码校验位。

图2所示汉明纠错码电路的设计时序图如图3所示,图3中:

clk是数据传输时钟,其余信号与图2相同,不重述。

由图2所示电路及图3所示时序图可知,现有技术采用同步设计方法时,复位动作至少需要一个时钟周期,即数据传输(以512字节为一个单位)在前后256字节的边界处被中断,从而影响了数据传输的效率;且数据传输的控制不仅由数据传输控制单元控制,还要引入汉明纠错码电路的反馈信号(dma_stop信号),增加了控制的复杂度(在清零汉明纠错码算法单元时,数据传输的使能信号dma_en需被置为无效)。

处理方法二:采用异步设计方法,电路的设计时序图如图4所示,参与编(解)码的数据data在时钟的下降沿送至汉明纠错码电路,其对应的编(解)码后的输出ham_parity在上升沿被采集。复位信号在前256字节的最后一个时钟上升沿之后产生,因为这个上升沿采集到前256字节数据对应的汉明纠错码校验位(p_255)之后就可以将汉明纠错码电路清零;但在这个时钟的下降沿之后复位信号必须撤销,因为第二个256字节的编(解)码开始(p’_0,p’_1,...对应第二个256字节纠错码电路输出的结果),整个复位过程持续半个时钟周期。这种异步设计方法虽然不用打断数据传输,但由于复位信号的时序要求很高,因此复位信号生成比较困难,而且异步设计不利于综合和时序分析工具对电路进行综合和时序分析。

发明内容

本发明提供一种无需中断数据传输以及无需复位的确定汉明纠错码校验位的方法及装置。

本发明提供的确定汉明纠错码校验位的方法包括:

对传输的数据量进行计数;

将计数结果与设定的汉明纠错码信息位长度的整数倍进行比较;

当传输的数据量每次达到设定的汉明纠错码信息位长度的整数倍时,获取当前已传输的全部数据进行汉明纠错码编码后的编码结果;以及

将所述编码结果与之前各次确定出的与所述设定的汉明纠错码信息位长度对应的汉明纠错码校验位进行异或运算,确定出本次与所述设定的汉明纠错码信息位长度对应的汉明纠错码校验位。

本发明还提供一种确定汉明纠错码校验位的装置,包括:汉明纠错码编码单元、异或运算单元、控制单元和至少两个存储单元;

所述汉明纠错码编码单元,用于将当前已传输的全部数据进行汉明纠错码编码,实时输出编码结果给所述异或运算单元;

所述异或运算单元,用于获取所述汉明纠错码编码单元实时输出的编码结果和所述存储单元存储的之前各次确定出的与设定的汉明纠错码信息位长度对应的汉明纠错码校验位,并进行异或运算,将异或运算结果作为本次与所述设定的汉明纠错码信息位长度对应的汉明纠错码校验位输出给所述存储单元其中之一;

所述控制单元,用于对传输的数据量进行计数;将计数结果与设定的汉明纠错码信息位长度的整数倍进行比较;当传输的数据量每次达到所述设定的汉明纠错码信息位长度的整数倍时,控制所述存储单元其中之一存储所述异或运算单元当前输出的与所述设定的汉明纠错码信息位长度对应的汉明纠错码校验位;

所述存储单元,用于接受所述控制单元的控制,存储所述异或运算单元当前输出的与所述设定的汉明纠错码信息位长度对应的汉明纠错码校验位。

本发明提供的确定汉明纠错码校验位的方法与装置在设计安全性和可靠性的前提下(整个设计按照同步设计的原则),采用异或运算处理的方式,避免了连续两次(例如每次的数据量为256字节)汉明编(解)码运算之间的算法单元清零动作,提高了数据传输的效率(数据传输在前后256字节的边界处无需中断),使得数据传输的控制更加简单(无需从汉明纠错装置反馈中断信号给数据传输控制模块)。

本发明不仅适用于连续的两个256字节数据传输的情况,还可以是连续的多个256字节数据(每次数据传输量大于512字节)传输情况,而且设定的汉明纠错码信息位长度也可以是256字节或其它2的整数次方字节(如128字节,具体取决于应用环境对汉明纠错码算法的要求)。

附图说明

图1为现有技术汉明纠错码编码原理图;

图2为现有技术采用同步设计时汉明纠错码电路结构示意图;

图3为现有技术采用同步设计时汉明纠错码电路的相关信号时序图;

图4为现有技术采用异步设计时汉明纠错码电路的相关信号时序图;

图5为本发明实施例提供的确定汉明纠错码校验位的方法流程图;

图6为本发明实施例提供的确定汉明纠错码校验位的装置结构示意图之一;

图7为图6所示确定汉明纠错码校验位的装置的信号时序图;

图8为本发明实施例提供的确定汉明纠错码校验位的装置结构示意图之二;

图9为本发明实施例提供的确定汉明纠错码校验位的装置中控制单元内部结构示意图。

具体实施方式

本发明实施例根据汉明纠错码编码的特点,将现有技术中连续两个256字节编(解)码运算之间的纠错码电路复位动作省略,而用一次异或运算来确定出与设定的汉明纠错码信息位长度(可以是2的整数次方字节,例如256字节、128字节等)对应的汉明纠错码校验位,其原理分析如下:

仔细观察异或运算的特点,发现两个相同位宽的二进制数A和B,它们的异或结果记为C,即

C=A^B

如果将结果C和二进制数A再作一次异或运算,就得到二进制数B。同理将结果C和二进制数B异或运算之后就得到二进制数A。这说明想要消除二进制数A或B对异或运算结果C的影响,只要将二进制数A或B再与结果C作一次异或运算即可。

将上述原理推广到更多个数之间的异或运算,设x1,x2,...,xm和y1,y2,...,yn是一批相同位宽的二进制数,Z是它们之间异或运算的结果,即:

Z=x1^x2...^xm^y1^y2...^yn

如果记x1,x2,...,xm之间的异或运算结果为X,记y1,y2,...,yn之间的异或运算结果为Y。那么有:

X=x1^x2...^xm

Y=y1^y2...^yn

则:

Z=X^Y。

根据上述分析可知:Y=Z^X。而如果将x1,x2,...,xm看成是前256字节数据,y1,y2,...,yn为后256字节数据,就可以发现,在不对汉明纠错码运算电路进行复位的条件下,通过异或运算同样可以得到前后256字节的各自的异或运算结果。

根据上述原理分析,本发明实施例提供一种确定汉明纠错码校验位的方法,包括:

当传输的数据量每次达到设定的汉明纠错码信息位长度的整数倍时,获取当前已传输的全部数据进行汉明纠错码编码后的编码结果;将当前输出的编码结果与之前各次确定出的与设定的汉明纠错码信息位长度对应的汉明纠错码校验位进行异或运算,确定出本次与设定的汉明纠错码信息位长度对应的汉明纠错码校验位。

其具体实现流程如图5所示,针对每一次数据传输,执行如下步骤:

步骤S101、对传输数据量进行计数。

例如,采用计数器对当前已传输的数据量(字节数)进行计数。

步骤S102、将计数结果与设定的汉明纠错码信息位长度的整数倍进行比较;当计数结果表明当前已传输数据量达到设定的汉明纠错码信息位长度的整数倍时,继续步骤S103;否则,返回步骤S101。

步骤S103、获取当前输出的汉明纠错码编码结果。

该步骤中,当前输出的汉明纠错码编码结果为当前已传输的全部数据进行汉明纠错码编码后的编码结果。

步骤S104、将当前输出的汉明纠错码编码结果与之前各次确定出的与设定的汉明纠错码信息位长度对应的汉明纠错码校验位进行异或运算,确定出本次与设定的汉明纠错码信息位长度对应的汉明纠错码校验位。

步骤S105、存储本次得到的与设定的汉明纠错码信息位长度对应的汉明纠错码校验位。并返回步骤S101。

以每一次数据传输量为512字节为例,对本发明上述方法说明如下:

假设设定的汉明纠错码信息位长度为256字节,即由256字节参与汉明纠错码编码,也就是说,512字节数据分成两个256字节独立做汉明纠错码保护。在数据传输过程中,对已传输的数据量(字节数)进行计数,当计数值为255(从0开始计数)或511时,表明当前已传输的数据量分别为设定的汉明纠错码信息位长度(256字节)的1倍或2倍。

当传输数据量第一次达到设定的汉明纠错码信息位长度时,其之前各次确定出的汉明纠错码校验位设置为全“0”。

若当前传输数据量为第一次达到256字节,则将当前输出的汉明纠错码编码结果与之前各次确定出的与设定的汉明纠错码信息位长度对应的汉明纠错码校验位进行异或运算;对于一次数据传输来说,当传输量第一次达到设定的汉明纠错码信息位长度时,是不存在之前各次确定出的汉明纠错码校验位的,为了采用同样的计算法则得到每次与设定的汉明纠错码信息位长度对应的汉明纠错码,预先将与设定的汉明纠错码信息位长度对应的汉明纠错码校验位的初始值设为全“0”,这样,当传输数据量第一次达到设定的汉明纠错码信息位长度256字节时,将该时刻输出的汉明纠错码编码结果与全“0”进行异或运算,其结果实际等于该时刻输出的汉明纠错码编码结果。即第一个256字节对应的汉明纠错码校验位等于传输量为256字节时刻输出的汉明纠错码编码结果。

若传输数据量达到512字节后(传输数据量第二次达到设定的汉明纠错码信息位长度),将当前输出的汉明纠错码编码结果与确定出的第一个256字节对应的汉明纠错码校验位进行异或运算,得到本次与设定的汉明纠错码信息位长度(即第二个256字节)对应的汉明纠错码校验位。

实际中,有可能一次传输数据量大于512字节,例如为1024字节,在这种情况下,仍可以采用上述异或运算获得第三个256字节以及第四个256字节对应的汉明纠错码校验位。其中:

第三个256字节对应的汉码纠错码校验位为:传输数据量达到768字节后(传输数据量第三次达到设定的汉明纠错码信息位长度),将当前输出的汉明纠错码编码结果与第一个256字节对应的汉明纠错码校验位和第二个256字节对应的汉明纠错码校验位一起进行异或运算,得到本次与设定的汉明纠错码信息位长度(即第三个256字节)对应的汉明纠错码校验位。

第四个256字节对应的汉码纠错码校验位为:传输数据量达到1024字节后(传输数据量第四次达到设定的汉明纠错码信息位长度),将当前输出的汉明纠错码编码结果与第一个256字节对应的汉明纠错码校验位、第二个256字节对应的汉明纠错码校验位和第三个256字节对应的汉明纠错码校验位一起进行异或运算,得到本次与设定的汉明纠错码信息位长度(即第四个256字节)对应的汉明纠错码校验位。

根据本发明上述实施例提供的确定汉明纠错码校验位的方法,基于同一发明构思,本发明实施例还提供一种确定汉明纠错码校验位的装置,包括:汉明纠错码编码单元、异或运算单元、控制单元和至少两个存储单元;其中:

汉明纠错码编码单元,用于将当前已传输的全部数据进行汉明纠错码编码,实时输出编码结果给异或运算单元;

异或运算单元,用于获取汉明纠错码编码单元实时输出的编码结果和存储单元存储的之前各次确定出的与设定的汉明纠错码信息位长度对应的汉明纠错码校验位,并进行异或运算,将异或运算结果作为本次与所述设定的汉明纠错码信息位长度对应的汉明纠错码校验位输出给存储单元其中之一;

控制单元,用于对传输的数据量进行计数;将计数结果与设定的汉明纠错码信息位长度的整数倍进行比较;当传输的数据量每次达到设定的汉明纠错码信息位长度的整数倍时,控制存储单元其中之一存储异或运算单元当前输出的与设定的汉明纠错码信息位长度对应的汉明纠错码校验位;

存储单元,用于接受控制单元的控制,存储异或运算单元当前输出的与所述设定的汉明纠错码信息位长度对应的汉明纠错码校验位。

以一次传输数据量为512字节为例,其对应的确定汉明纠错码校验位的装置结构示意图如图6所示。包括:汉明纠错码编码单元11、异或运算单元12、控制单元13和第一存储单元14和第二存储单元15;其中:

当进行数据传输时,dma_en信号有效,同时数据通过data[7:0]信号线同步地送至汉明纠错码编码单元11,在这个过程中,汉明纠错码编码单元11将当前已传输的全部数据采用汉明纠错码编码原理进行编码,实时输出汉明纠错码编码结果给异或运算单元12。同时,控制单元13在dma_en有效的条件下开始根据传输数据量(字节数)自增计数,它的计数值表明当前已经传输完成的数据量(即已经参与编(解)码运算的数据量)。当计算值为255(从0到255总共256个时钟周期,表明已传输256个字节数据)时,将第一存储使能信号(load1信号)置为高,并持续一个时钟周期,表明在下一个时钟周期存储前256字节数据对应的汉明纠错码校验位。当计数值为511时,将第二存储使能信号(load2信号)置为高,并持续一个时钟周期,表明下一个时钟周期存储后256字节数据对应的汉明纠错码校验位。其中:

由于当传输数据量第一次达到设定的汉明纠错码信息位长度(256字节)时,其之前各次确定出的汉明纠错码校验位设置为全“0”,即第一次达到设定的汉明纠错码信息位长度256字节时,将该时刻输出的汉明纠错码编码结果与全“0”进行异或运算,其结果实际等于该时刻输出的汉明纠错码编码结果,因此,前256字节对应的汉明纠错码在load1信号有效时可以直接从汉明纠错码编码单元的输出结果ham_parity中获得,即:存储到第一存储单元14中的与第一个256字节对应的汉明纠错码校验位PP1为:

pp1=p_255

后256字节数据对应的汉明纠错码校验位通过在load2有效时,汉明纠错码编码单元的输出结果(p_511)和已经存储在第一存储单元14中的前256字节数据对应的汉明纠错码校验位PP1作异或运算后得到,即存储到第二存储单元15中的与第二个256字节对应的汉明纠错码校验位PP2为:

pp2=p_511^pp_1

这样,在没有对确定汉明纠错码校验位的装置中的汉明纠错码编码单元进行复位的情况下,得到了前后256字节数据各自对应的汉明纠错码校验位。

图7为与图6所示确定汉明纠错码校验位的装置的对应信号时序图。图7中:

clk信号:为数据传输时钟;

dam_en:是数据传输有效信号,高电平有效;

data:为传输的数据(以字节为单位);

ham_parity:为汉明纠错码编码单元11实时输出的汉明纠错码编码结果(位宽22比特);

dam_cnt:为控制单元13的计数值(从0开始计数);

load1:为第一存储使能信号,高电平有效,持续一个时钟周期限,用于控制第一存储单元存储前256字节数据对应的汉明纠错码校验位PP1;

parity1:第一存储单元在接收到load1信号后,存储前256字节数据对应的汉明纠错码校验位PP1;

load2:为第二存储使能信号,高电平有效,持续一个时钟周期限,用于控制第二存储单元存储后256字节数据对应的汉明纠错码校验位PP2;

parity2:第二存储单元在接收到load2信号后,存储后256字节数据对应的汉明纠错码校验位PP2。

图6是以一次传输512字节,且设定的汉明纠错码信息位长度为256字节时对应的确定汉明纠错码校验位的装置结构示意图。

不失一般性,当一次传输数据量大于512字节时(或设定的汉明纠错码信息位长度不为256字节时,例如128字节),其对应的存储单元数量就不止两个,存储单元的具体数量由每次数据传输量和设定的汉明纠错码信息位长度确定。

例如:假设一次传输数据量为1024字节,设定的汉明纠错码信息位长度为128字节,则存储单元的数量为:1024/128等于8个。

一种包含N(N为大于等于2的正整数)个存储单元的确定汉明纠错码校验位的装置结构示意图如图8所示。包括:汉明纠错码编码单元11、异或运算单元12、控制单元13和第一存储单元14_1,第二存储单元14_2,第三存储单元14_3......,以及第N存储单元14_N;其中:

当进行数据传输时,dma_en信号有效,同时数据通过data[7:0]信号线同步地送至汉明纠错码编码单元11,在这个过程中,汉明纠错码编码单元11将当前已传输的全部数据采用汉明纠错码编码原理进行编码,实时输出汉明纠错码编码结果给异或运算单元12。同时,控制单元13在dma_en有效的条件下开始根据传输数据量(字节数)自增计数,它的计数值表明当前已传输的数据量。

当控制单元13的计数值表明当前已传输数据量第一次达到设定的汉明纠错码信息位长度时,使第一存储使能信号(load1信号)有效,控制第一存储单元14_1存储异或运算单元12当前输出的与第一个设定的汉明纠错码信息位长度对应的汉明纠错码校验位;

当控制单元13的计数值表明当前已传输数据量第二次达到设定的汉明纠错码信息位长度时,使第二存储使能信号(load2信号)有效,控制第二存储单元14_2存储异或运算单元12当前输出的与第二个设定的汉明纠错码信息位长度对应的汉明纠错码校验位;

当控制单元13的计数值表明当前已传输数据量第三次达到设定的汉明纠错码信息位长度时,使第三存储使能信号(load3信号)有效,控制第三存储单元14_3存储异或运算单元12当前输出的与第三个设定的汉明纠错码信息位长度对应的汉明纠错码校验位;

......

当控制单元13的计数值表明当前已传输数据量第N次达到设定的汉明纠错码信息位长度时,使第N存储使能信号(loadN信号)有效,控制第N存储单元14_N存储异或运算单元12当前输出的与第N个设定的汉明纠错码信息位长度对应的汉明纠错码校验位。

上述图6或图8中的控制单元13的内部结构可以是如图9所示,包括:计数器131、比较电路132和信号发送电路133;其中:

计数器131,用于对传输的数据量进行计数,并将计数结果输出给比较电路132;

比较电路132,用于将计数结果与设定的汉明纠错码信息位长度的整数倍进行比较,当传输的数据量达到设定的汉明纠错码信息位长度的整数倍时,启动信号发送电路133;

信号发送电路133,用于发送持续一个数据传输时钟周期的存储使能信号给各存储单元其中之一。

综上所述,本发明实施例提供的确定汉明纠错码校验位的方法与装置在设计安全性和可靠性的前提下(整个设计按照同步设计的原则),采用异或运算处理的方法,避免了连续两次或多次汉明编(解)码运算之间的算法单元复位(清零)动作,提高了数据传输的效率,且使得数据传输的控制更加简单(无需从汉明纠错电路反馈中断信号给数据传输控制模块)。

本发明不仅适用于连续的两个256字节数据传输的情况,还可以是连续的多个256字节数据(每次数据传输量大于512字节)传输情况,而且设定的汉明纠错码信息位长度也可以是256字节或其它2的整数次方字节(如128字节,具体取决于应用环境对汉明纠错码算法的要求)。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号