一种寄存器及内存中顺序数组的数据编码及校验方法技术

技术编号:21115465 阅读:16 留言:0更新日期:2019-05-16 08:54
一种寄存器或内存中顺序数组的数据校验方法,其包括接收多组数据并按基于栈的后进先出或基于队列的先进先出的顺序存入寄存器或内存中;其中,多组数据来源于一个数据输入通道或多个数据输入通道;从寄存器或内存中按顺序提取N组数据拼接形成一个第一顺序数据组,并采用编/解码协议对第一顺序数据组的数据信息进行编码,形成第二顺序数据组;采用汉明码进行对第二顺序数据组中所有比特位进行校验,判断第二顺序数据组是否出错比特位,从而判断第一顺序数据组或校验位是否有错误;根据判断结果,按照编/解码的校验协议对第一顺序数据组的数据信息进行错误比特位定位和纠错。本发明专利技术确保顺序数据在寄存器或内存间传输时的一致性且实现高可靠性纠错。

【技术实现步骤摘要】
一种寄存器及内存中顺序数组的数据编码及校验方法
本专利技术涉及一种信息安全领域,尤其涉及使用汉明码编码对顺序相邻数据的校验方式,包括编码方式与校验方式。
技术介绍
在通信技术中,大规模集成电路在电磁环境比较恶劣的情况下,常常会受到干扰,甚至导致不能正常工作。特别是像RAM这种利用双稳态进行存储的器件,往往会在强干扰下发生翻转,使原来存储的“0”变为“1”,或者“1”变为“0”,造成的后果往往是很严重的。例如,导致一些控制程序跑飞,存储的关键数据出错等等。随着芯片集成度的增加,发生错误的可能性也在增大。在一些特定的应用中,这已经成为一个不能忽视的问题。目前可以采用的一种方式是奇偶校验的方式进行校验。如果传输过程中有奇数位发生变化,则消息将改变奇偶性,此时可以检测到错误;然而,改变的位可能是奇偶校验位本身,错误将不会被检测到;且奇偶校验即使可以检测到错误,也不能指出错误包含在哪个位上。另一种编码方式是五分之二的代码,它使用恰好由3个0和2个1组成的5位。该方案可以检测所有单个位错误、所有奇数位错误和一些偶数位错误(例如两个1位的翻转)。然而,它仍然不能纠正这些错误。且如果消息中包含更多的纠错位,并且这些位可以被安排成不同的错误位产生不同的错误结果,那么就可以识别出错误位。在这种情况下,我们可以采用错误检测与纠正EDAC(ErrorDetectionAndCorrection)电路来有效地减少或避免这种情况的出现。根据检错、纠错的原理,主要思想是在数据写入时,根据写入的数据生成一定位数的校验码,与相应的数据一起保存起来;当读出的同时,也将校验码读出,进行判决。如果出现一位错误则自动纠正,将正确的数据送出,并同时将改正以后的数据回写覆盖原来错误的数据;如果出现两位错误则产生中断报告,通知CPU进行异常处理。所有这一切动作都是靠硬件设计自动完成的,具有实时性和自动完成的特点。通过这样的EDAC电路,能大大提高系统的抗干扰能力,从而提高系统的可靠性。然而,EDAC电路需要大面积的版图设计,大大提高了成本。例如,冗余设计中的三模冗余可以纠错,但设计硬件代价需要很大TMR。汉明码(HammingCode)是在电信领域的一种线性调试码,以专利技术者理查德.卫斯里.汉明的名字命名。汉明码在传输的消息流中插入验证码,当计算机存储或移动数据时,可能会产生数据位错误,以侦测并更正单一比特错误。由于汉明编码简单,它们被广泛应用于内存(RAM)。与其他的错误校验码类似,汉明码也利用了奇偶校验位的概念,通过在数据位后面增加一些比特,可以验证数据的有效性。利用一个以上的校验位,汉明码不仅可以验证数据是否有效,还能在数据出错的情况下指明错误位置。然而,从上述可以知道,汉明码很好地避免了一些简单的错误检测码方法的问题,但编码校验汉明码设计比较复杂,且传输效率低。请参阅图1,图1所示为现有技术中采用一路数据通道的情况下其传输效率结果示意图;一路数据通道采用汉明码对有效数据msg为8位和对应校验为3位情况下,整个校验和纠错过程中的传输效率为72.72%=8/(8+3)。
技术实现思路
为了克服上述现有技术的缺点,本专利技术给出了一种寄存器或内存中顺序数组的数据校验方法,不仅可以验证数据是否有效,还能在数据出错的情况纠错,且传输效率高。具体地,本专利技术的技术方案如下:一种寄存器或内存中顺序数组的数据校验方法,其包括如下步骤:步骤S1:接收多组数据,并按基于栈的后进先出或基于队列的先进先出的顺序存入寄存器或内存中;其中,所述多组数据来源于一个数据输入通道或多个数据输入通道;步骤S2:从所述寄存器或内存中按顺序提取N组数据拼接形成一个第一顺序数据组,并对所述第一顺序数据组的数据信息采用编/解码协议进行编码,形成第二顺序数据组;其中,所述第二顺序数据组包括所述第一顺序数据组数据信息的比特位加上K比特位校验码信息;步骤S3:采用所述编/解码协议对所述第二顺序数据组中所有比特位进行校验,判断所述第二顺序数据组是否出错比特位,从而判断第一顺序数据组或校验位是否有错误;步骤S4:根据判断结果,按照所述编/解码校验协议对所述第一顺序数据组的数据信息进行错误比特位定位和纠错。进一步地,所述的编/解码为汉明码。进一步地,所述多组数据的每一组数据包括M比特位数据信息,所述第一顺序数据组的数据信息具有N*M比特位。进一步地,所述多组数据的长短决定于一个预设的时间段。进一步地,所述N为数据输入通道的整数倍。进一步地,所述N大于等于4。进一步地,所述多组数据中的数据信息选择自大于等于8比特位数据中的一种或多种。从上述技术方案可以看出,本专利技术使用汉明码编码,利用相邻数据段传输的时序特征对校验码进行复用,即基于栈(后进先出)和队列(先进先出)等数组数据的顺序进出特点,在对数据进行校验纠错时分别可以复用其高位(栈)和低位(队列)数据,即对于有严格顺序的堆栈或队列数据,可以把相邻数据拼接成更长的消息长度,不仅总传输效率将会提高,并且能有更高的校验强度。与现有技术相比较,实施本专利技术的纠错方式,可以减少校验码计算时间,并确保顺序数组传输时的一致性。附图说明通过参照附图详细描述其示例实施方式,本专利技术的上述和其它特征及优点将变得更加明显。图1所示为现有技术中采用一路数据通道的情况下其传输效率结果示意图;一路数据通道采用汉明码对有效数据msg为8位和对应校验为3位情况下,整个校验和纠错过程中的传输效率为72.72%=8/(8+3)图2所示为本专利技术寄存器及内存中顺序数组的数据编码及校验方法一较佳实施例的流程示意图图3所示为所示为本专利技术使用两路数据通道的情况下其传输效率结果示意图;使用两路并行处理后,有效数据msg为16位,对应校验为5位,传输效率为76.19%=16/(16+5)图4所示为所示为本专利技术使用四路数据通道的情况下其传输效率结果示意图;使用四路并行处理后,有效数据msg为32位,对应校验为7位,传输效率为82.05%=32/(32+7)具体实施方式现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。需要说明的是,本专利技术的原理如下:本专利技术涉及的一种顺序数组的纠错方式;该方式针对顺序数组设计,编码采用汉明码。对于严格以特定顺序进出的数组如栈和队列,由于相邻数据段传输的时序特征,同一数据校验码可进行复用,从而减少了纠错时间。也就是说,对于有严格顺序的堆栈或队列数据,可以把相邻数据拼接成更长的消息长度,这样总的传输效率将会提高,或是能有更高的校验强度。具体地,汉明码的校验位数量与数据位的数量之间的例如下:如果数据位是4位,加上3位汉明码是7位,而2的3次幂是8。这其中就存在一个规律,即2^P≥P+D+1,其中P代表汉明码的个数,D代表数据位的个数,比如4位数据,加上1就是5,而能大于5的2的幂数就是3(2^3=8,2^2=4)。这样,我们就能算出任何数据位时所需要的汉明码位数,即7位数据时需要4位汉明码(16>4+7+1),64位数据时就需要7位汉明码(128>64+7+1),可以依此推算。因此,从上面可以看出,在验位数K本文档来自技高网
...

【技术保护点】
1.一种寄存器或内存中顺序数组的数据校验方法,其特征在于,包括如下步骤:步骤S1:接收多组数据,并按基于栈的后进先出或基于队列的先进先出的顺序存入寄存器或内存中;其中,所述多组数据来源于一个数据输入通道或多个数据输入通道;步骤S2:从所述寄存器或内存中按顺序提取N组数据拼接形成一个第一顺序数据组,并采用编/解码协议对所述第一顺序数据组的数据信息进行编码,形成第二顺序数据组;其中,所述第二顺序数据组包括所述第一顺序数据组数据信息的比特位加上K比特位校验码信息;步骤S3:采用所述编/解码协议对所述第二顺序数据组中所有比特位进行校验,判断所述第二顺序数据组是否出错比特位,从而判断第一顺序数据组或校验位是否有错误;步骤S4:根据判断结果,按照所述编/解码的校验协议对所述第一顺序数据组的数据信息进行错误比特位定位和纠错。

【技术特征摘要】
1.一种寄存器或内存中顺序数组的数据校验方法,其特征在于,包括如下步骤:步骤S1:接收多组数据,并按基于栈的后进先出或基于队列的先进先出的顺序存入寄存器或内存中;其中,所述多组数据来源于一个数据输入通道或多个数据输入通道;步骤S2:从所述寄存器或内存中按顺序提取N组数据拼接形成一个第一顺序数据组,并采用编/解码协议对所述第一顺序数据组的数据信息进行编码,形成第二顺序数据组;其中,所述第二顺序数据组包括所述第一顺序数据组数据信息的比特位加上K比特位校验码信息;步骤S3:采用所述编/解码协议对所述第二顺序数据组中所有比特位进行校验,判断所述第二顺序数据组是否出错比特位,从而判断第一顺序数据组或校验位是否有错误;步骤S4:根据判断结果,按照所述编/解码的校验协议对所述第一顺序数据组的数据信息进行错误比特位定位和纠错。2....

【专利技术属性】
技术研发人员:李林温建新
申请(专利权)人:上海微阱电子科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1