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

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

Info

Publication number
CN101345606A
CN101345606A CNA2008101472061A CN200810147206A CN101345606A CN 101345606 A CN101345606 A CN 101345606A CN A2008101472061 A CNA2008101472061 A CN A2008101472061A CN 200810147206 A CN200810147206 A CN 200810147206A CN 101345606 A CN101345606 A CN 101345606A
Authority
CN
China
Prior art keywords
hamming error
correcting code
error correcting
hamming
information bit
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
CNA2008101472061A
Other languages
English (en)
Other versions
CN101345606B (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.)
Actions Technology Co Ltd
Original Assignee
Actions Semiconductor 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 Actions Semiconductor Co Ltd filed Critical Actions Semiconductor Co Ltd
Priority to CN2008101472061A priority Critical patent/CN101345606B/zh
Publication of CN101345606A publication Critical patent/CN101345606A/zh
Application granted granted Critical
Publication of CN101345606B publication Critical patent/CN101345606B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

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

Description

一种确定汉明纠错码校验位的方法与装置
技术领域
本发明涉及数据传输,尤其涉及对传输数据进行纠错处理的一种确定汉明纠错码校验位的方法及一种确定汉明纠错码校验位的装置。
背景技术
目前,与非(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字节,具体取决于应用环境对汉明纠错码算法的要求)。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (9)

1、一种确定汉明纠错码校验位的方法,其特征在于,包括:
对传输的数据量进行计数;
将计数结果与设定的汉明纠错码信息位长度的整数倍进行比较;
当传输的数据量每次达到设定的汉明纠错码信息位长度的整数倍时,获取当前已传输的全部数据进行汉明纠错码编码后的编码结果;以及
将所述编码结果与之前各次确定出的与所述设定的汉明纠错码信息位长度对应的汉明纠错码校验位进行异或运算,确定出本次与所述设定的汉明纠错码信息位长度对应的汉明纠错码校验位。
2、如权利要求1所述的方法,其特征在于,当传输数据量第一次达到所述设定的汉明纠错码信息位长度时,其之前各次确定出的汉明纠错码校验位设置为全0。
3、如权利要求1或2所述的方法,其特征在于,还包括:
存储各次与所述设定的汉明纠错码信息位长度对应的汉明纠错码校验位。
4、如权利要求3所述的方法,其特征在于,所述设定的汉明纠错码信息位长度为2的整数次方字节。
5、一种确定汉明纠错码校验位的装置,其特征在于,包括:汉明纠错码编码单元、异或运算单元、控制单元和至少两个存储单元;
所述汉明纠错码编码单元,用于将当前已传输的全部数据进行汉明纠错码编码,实时输出编码结果给所述异或运算单元;
所述异或运算单元,用于获取所述汉明纠错码编码单元实时输出的编码结果和所述存储单元存储的之前各次确定出的与设定的汉明纠错码信息位长度对应的汉明纠错码校验位,并进行异或运算,将异或运算结果作为本次与所述设定的汉明纠错码信息位长度对应的汉明纠错码校验位输出给所述存储单元其中之一;
所述控制单元,用于对传输的数据量进行计数;将计数结果与设定的汉明纠错码信息位长度的整数倍进行比较,当传输的数据量每次达到所述设定的汉明纠错码信息位长度的整数倍时,控制所述存储单元其中之一存储所述异或运算单元当前输出的与所述设定的汉明纠错码信息位长度对应的汉明纠错码校验位;
所述存储单元,用于接受所述控制单元的控制,存储所述异或运算单元当前输出的与所述设定的汉明纠错码信息位长度对应的汉明纠错码校验位。
6、如权利要求5所述的装置,其特征在于,所述控制单元包括信号发送电路;
当传输的数据量每次达到所述设定的汉明纠错码信息位长度的整数倍时,所述信号发送电路发送持续一个数据传输时钟周期的存储使能信号给所述存储单元其中之一;
所述存储单元其中之一接收到所述存储使能信号后,存储所述异或运算单元当前输出的与所述设定的汉明纠错码信息位长度对应的汉明纠错码校验位。
7、如权利要求6所述的装置,其特征在于,所述控制单元还包括计数器和比较电路;
所述计数器,用于对传输的数据量进行计数,并将计数结果输出给所述比较电路;
所述比较电路,用于将计数结果与所述设定的汉明纠错码信息位长度的整数倍进行比较,当传输的数据量每次达到所述设定的汉明纠错码信息位长度的整数倍时,启动所述信号发送电路。
8、如权利要求5、6或7所述的装置,其特征在于,所述存储单元存储的初始值为全0。
9、如权利要求8所述的装置,其特征在于,所述存储单元的数量由每次数据传输量和所述设定的汉明纠错码信息位长度确定。
CN2008101472061A 2008-08-21 2008-08-21 一种确定汉明纠错码校验位的方法与装置 Active CN101345606B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101472061A CN101345606B (zh) 2008-08-21 2008-08-21 一种确定汉明纠错码校验位的方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101472061A CN101345606B (zh) 2008-08-21 2008-08-21 一种确定汉明纠错码校验位的方法与装置

Publications (2)

Publication Number Publication Date
CN101345606A true CN101345606A (zh) 2009-01-14
CN101345606B CN101345606B (zh) 2011-03-09

Family

ID=40247505

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101472061A Active CN101345606B (zh) 2008-08-21 2008-08-21 一种确定汉明纠错码校验位的方法与装置

Country Status (1)

Country Link
CN (1) CN101345606B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103197986A (zh) * 2013-03-19 2013-07-10 西安华芯半导体有限公司 内存数据中监督位快速生成方法
WO2018132982A1 (zh) * 2017-01-18 2018-07-26 深圳市汇顶科技股份有限公司 码字生成方法、错误位确定方法及其电路

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010057145A (ko) * 1999-12-18 2001-07-04 윤종용 Xor 코드, 이를 이용한 직렬 연접 부호기 및 복호기
JP4031954B2 (ja) * 2002-06-11 2008-01-09 富士通株式会社 集積回路の診断装置および診断方法
CN1182657C (zh) * 2002-12-20 2004-12-29 清华大学 用于降低乘积码译码所需存储量和复杂度的方法
CN101145117B (zh) * 2007-10-30 2010-10-13 华为技术有限公司 检错处理方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103197986A (zh) * 2013-03-19 2013-07-10 西安华芯半导体有限公司 内存数据中监督位快速生成方法
WO2014146488A1 (zh) * 2013-03-19 2014-09-25 西安华芯半导体有限公司 用于将数据写入存储器的过程的方法
WO2018132982A1 (zh) * 2017-01-18 2018-07-26 深圳市汇顶科技股份有限公司 码字生成方法、错误位确定方法及其电路
US10992319B2 (en) 2017-01-18 2021-04-27 Shenzhen GOODIX Technology Co., Ltd. Code word generating method, erroneous bit determining method, and circuits thereof

Also Published As

Publication number Publication date
CN101345606B (zh) 2011-03-09

Similar Documents

Publication Publication Date Title
CN102017425B (zh) 用于执行级联纠错的方法和系统
CN102377437B (zh) 一种准循环低密度奇偶校验码编码方法和装置
CN101882467B (zh) Ecc参数可配置的存储器控制装置
EP4058942A1 (en) Recurrent neural networks and systems for decoding encoded data
CN101227194B (zh) 用于并行bch编码的电路、编码器及方法
CN102314949A (zh) 数据读取方法、控制电路与存储器控制器
CN104750570A (zh) 数据储存装置及其错误校正方法
CN101488369B (zh) Bch码控制器接口电路
CN101834617B (zh) 一种rs纠错码解码器
CN101345606B (zh) 一种确定汉明纠错码校验位的方法与装置
CN104601180A (zh) 一种基于扩展汉明码的二维乘积码编码装置及编码方法
CN102354535A (zh) 逻辑单元复用系统
CN101499325A (zh) 一种具有可变纠错能力的非易失性存储系统及方法
CN101908378A (zh) 闪存的控制器以及于闪存存取数据的方法
CN103137213A (zh) 具有低密度奇偶校验码译码能力的存储器控制装置及方法
CN102355331A (zh) 一种通用多模式译码装置
CN101452722B (zh) 错误检测码产生电路和使用该电路的编码电路及相关方法
CN104052500A (zh) Ldpc码译码器及实现方法
CN103916138B (zh) 一种钱搜索电路及基于该钱搜索电路的ecc解码装置及方法
CN102594334B (zh) 一种流水线型fpga回读帧ecc电路
CN101873143A (zh) 一种rs纠错码解码器中的伴随式计算电路及其计算方法
CN101931415B (zh) 编码装置及方法、译码装置及方法和纠错系统
CN111651118B (zh) 存储器系统、控制方法和控制装置
CN102568605A (zh) 系统总线检错纠错方法和nand flash控制器
CN105049057A (zh) 一种面向128位并行输入的crc-32校验电路

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170605

Address after: 519085 C District, 1# workshop, No. 1, science and technology No. four road, hi tech Zone, Zhuhai, Guangdong, China

Patentee after: ACTIONS (ZHUHAI) TECHNOLOGY Co.,Ltd.

Address before: 519085 No. 1, unit 15, building 1, 1 Da Ha Road, Tang Wan Town, Guangdong, Zhuhai

Patentee before: Juli Integrated Circuit Design Co., Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 519085 High-tech Zone, Tangjiawan Town, Zhuhai City, Guangdong Province

Patentee after: ACTIONS TECHNOLOGY Co.,Ltd.

Address before: 519085 High-tech Zone, Tangjiawan Town, Zhuhai City, Guangdong Province

Patentee before: ACTIONS (ZHUHAI) TECHNOLOGY Co.,Ltd.