一种分支流水线结构的ECC译码系统及方法技术方案

技术编号:26762038 阅读:20 留言:0更新日期:2020-12-18 23:06
本发明专利技术属于通信数据存储技术领域,公开了一种分支流水线结构的ECC译码方法及系统,主要包括BCH译码器、数据输出、分支流水线控制和RAM存储阵列四个模块。根据16位并行输入数据计算伴随式,判断输入数据是否出错,形成两个数据流水分支:当数据无错时,跳过BCH译码器的后续模块,直接读取RAM存储阵列进行数据输出;当数据出错时,在经过错误位置多项式求解模块和错误定位器模块确定出错误图样后,根据16位宽的错误图样,进行数据纠错输出,不同数据单元之间构成两级分支流水。本发明专利技术采用16位并行、两级分支流水结构,极大地提高了数据总线传输速率,加快整体译码速度,节约时钟周期。

【技术实现步骤摘要】
一种分支流水线结构的ECC译码系统及方法
本专利技术属于通信数据存储
,尤其涉及一种分支流水线结构的ECC译码系统及方法。
技术介绍
目前,对于卫星通信,星载交换系统必不可少,且在宇宙的特殊环境中,网络交换数据在许多情况下不能及时传输,需要暂存,NANDFLASH以其体积小、容量大、寿命长、掉电不易失等特点,适用于星载交换系统的数据存储。但是,NandFlash的物理特性使得其数据读写过程中会产生漂移效应(DriftingEffects)、编程干扰错误(Program-DisturbErrors)和读操作干扰错误(Read-DisturbErrors)等问题,从而发生一定几率的位翻转。为了保证数据的可靠性,需要有对应的错误检测和纠正的机制,即ECC(ErrorCheckingandCorrection)。卫星通信对数据的可靠性有很高要求,需要保存更长时间,SLC类型的NANDFLASH传输速度更快,功率消耗更低,满足卫星通信需求。在通常应用中,对于SLC类型的NANDFLASH,一般使用汉明码来进行ECC错误检测和纠正,但是汉明校验纠错能力弱、编码效率低等缺陷会严重影响星载交换系统数据存储的可靠性。与之相比,BCH码要更适用于该应用场景下的NANDFLASH错误检测和纠正。NandFlash的ECC实现主要分为两部分:编码、译码与纠错。其中,基于BCH的ECC编码主要通过多个移位寄存器实现,较为简单。基于BCH的ECC译码与纠错过程,主要包括三步:伴随式求解、错误位置多项式求解、chien氏搜索。目前对ECC译码与纠错过程的研究主要集中于伴随式求解、错误位置多项式求解或chien氏搜索中,重点在于单个模块的内部算法优化和相应的硬件电路改善,很少考虑ECC译码系统的整体结构,整体译码速度仍有改进空间。在现有专利技术中,对于ECC译码系统的整体结构设计主要有两种:非流水的BCH译码结构、普通两级流水的BCH译码结构,且多仅为8位并行译码,普通两级流水结构虽然相比于非流水结构,在译码速度上有提升,但在数据译码过程中仍存在功能冗余,对于无错数据,仍需经历错误位置多项式求解和chien氏搜索的纠错过程,路径延时很大,功耗很高,译码速度仍可改善。通过上述分析,现有技术存在的问题及缺陷为:现有ECC译码系统的在数据译码过程中仍存在功能冗余,路径延时大,译码速度仍可改善。解决以上问题及缺陷的难度为:译码流程的算法实现已经趋于完善,从外围系统的整体控制来提升速度是一个新的改善方向;此外,要尽可能加快速度,就需要无错数据尽可能避开纠错算法的实现路径,必然会导致不同扇区数据最优译码路线不同,流水线不同步等问题,考虑的情况更为复杂,设计难度大大增加。解决以上问题及缺陷的意义为:为ECC系统设计提供一种新方向,加快译码速度,提升系统性能,该系统可移植型强,使用范围广,除了可满足于上述星载交换系统的特殊情景之外,对于日常或者商用SLC类型和MLC类型的NANDFLASH也适用。
技术实现思路
针对现有技术存在的问题,本专利技术提供了一种分支流水线结构的ECC译码系统及方法。所述分支流水线结构的ECC译码系统包括:BCH译码器模块,数据输出模块、分支流水线控制模块、RAM存储阵列;缓存输入的纯数据,每个RAM对应一个扇区的数据,多个扇区轮询写入。由输入的预译码数据,计算出相应伴随式,根据伴随式判断输入数据是否出错;数据出错时,由伴随式求解错误位置多项式,并检测到误码数;根据求解的错误位置多项式,确定错误位置,将逐个16位宽的错误图样移出,每组错误图样对应一组数据错误位置;当伴随式求解模块判断出数据无错时,跳过BCH译码器的后续模块,直接进行数据输出;当数据出错时,在经过错误位置多项式求解模块和错误定位器模块确定出错误图样后,根据错误图样,进行数据纠错输出;整个译码系统进行两级分支流水线操作,第一级流水为伴随式求解,根据伴随式求解结果选择第二级流水分支,两个分支对应数据出错和不出错两种情况;进一步,所述分支流水线结构的ECC译码系统及方法根据BCH码决定一组编译码数据单元,一组编译码数据单元对应FLASH的一个扇区,一个扇区的数据译码过程如下:数据输入时分为两路,一路丢弃校验位,将纯数据存入轮询到的一个RAM中;另一路输入数据与校验位一起进行伴随式求解,根据伴随式判断数据是否出错;当数据无错时,从同一RAM中读取正确数据,直接输出;当数据出错时,通过iBM算法和chien氏搜索算法进行错误定位,读取同一RAM中的数据与定位的错误进行异或,完成错误位的位翻转,并将正确数据输出。进一步,所述分支流水线结构的ECC译码系统及方法对于一个扇区的数据译码,有四个阶段:伴随式求解阶段syn、错误位置多项式求解阶段iBM、错误定位阶段chien和数据输出阶段tx,根据伴随式判断数据是否出错,将产生两个不同译码分支。进一步,NANDFLASH读写以page为单位,对于1page的数据,要进行多次单扇区的译码操作,不同扇区数据译码形成两级分支流水线结构,第一级流水线不依赖于两个第二级流水线;所有数据都需要经过伴随式求解阶段syn,将该阶段定义为第一级流水线syn;对于出错数据,将经历错误位置多项式求解阶段iBM、错误定位阶段chien和相应纠错输出阶段tx,将三个阶段组成一个分支的第二级流水线ibm_chien_tx;对于无错数据,只经历数据输出阶段tx,将该阶段定义为为另一个分支的第二级流水线tx。进一步,所述分支流水线结构的ECC译码系统及方法对于BCH(4200,4096,8)码,第一级流水syn占用263个时钟周期,错误数据的第二级流水线ibm_chien_tx占用275个时钟周期,无错数据的第二级流水线tx占用时钟周期取决于有效数据长度,对于每个扇区4096bit满负荷时,占用258个时钟周期,对于有效数据长度不足4096bit时,只占用个时钟周期。进一步,所述分支流水线结构的ECC译码方法对于两级流水线占用时钟周期不等的情况,进行了流水线同步;两级流水线同时进行时,占用时钟周期短的流水线需要等待长周期的流水线完成后,再向下流动;当读取的1page数据中,所有扇区都无错时,流水线只经过第一级流水syn和第二级流水tx,达到该分支流水译码系统的性能上限;当读取的1page数据中,所有扇区都出错时,流水线则只经过第一级流水syn和第二级流水ibm_chien_tx,达到该分支流水译码系统的性能下限。本专利技术的另一目的在于提供一种分支流水线结构的ECC译码系统,搭载于星载交换系统中。结合上述的所有技术方案,本专利技术所具备的优点及积极效果为:一般NANDFLASH的ECC操作位宽为8bit,本专利技术将位宽拓展至16位,实现了16位并行ECC操作,增加了数据总线传输的速率。通过把伴随式求解拓展为16位并行,使用16位并行chien氏搜索,完成整个ECC译码系统的位宽拓展。本专利技术新提出了一种有分支的流水线结构,通过有选本文档来自技高网
...

【技术保护点】
1.一种分支流水线结构的ECC译码方法,其特征在于,所述分支流水线结构的ECC译码方法包括:/n缓存输入的纯数据,每个RAM对应一个扇区的数据,多个扇区轮询写入;/n由输入的预译码数据,计算出相应伴随式,根据伴随式判断输入数据是否出错;/n当数据出错时,由伴随式求解错误位置多项式,并检测到误码数;/n根据求解的错误位置多项式,确定错误位置,将逐个16位宽的错误图样移出;根据错误图样,进行数据纠错输出;/n当伴随式求解模块判断出数据无错时,跳过BCH译码器的后续模块,直接进行数据输出。/n

【技术特征摘要】
1.一种分支流水线结构的ECC译码方法,其特征在于,所述分支流水线结构的ECC译码方法包括:
缓存输入的纯数据,每个RAM对应一个扇区的数据,多个扇区轮询写入;
由输入的预译码数据,计算出相应伴随式,根据伴随式判断输入数据是否出错;
当数据出错时,由伴随式求解错误位置多项式,并检测到误码数;
根据求解的错误位置多项式,确定错误位置,将逐个16位宽的错误图样移出;根据错误图样,进行数据纠错输出;
当伴随式求解模块判断出数据无错时,跳过BCH译码器的后续模块,直接进行数据输出。


2.如权利要求1所述的分支流水线结构的ECC译码方法,其特征在于,所述分支流水线结构的ECC译码方法根据BCH码决定一组编译码数据单元,一个扇区的数据译码过程如下:
数据输入时分为两路,一路丢弃校验位,将纯数据存入轮询到的一个RAM中;另一路输入数据与校验位一起进行伴随式求解,根据伴随式判断数据是否出错;
当数据无错时,从同一RAM中读取正确数据,直接输出;
当数据出错时,通过iBM算法和chien氏搜索算法进行错误定位,读取同一RAM中的数据与定位的错误进行异或,完成错误位的位翻转,并将正确数据输出。


3.如权利要求2所述的分支流水线结构的ECC译码方法,其特征在于,所述分支流水线结构的ECC译码方法对于一个扇区的数据译码,有四个阶段:伴随式求解阶段syn、错误位置多项式求解阶段iBM、错误定位阶段chien和数据输出阶段tx,根据伴随式判断数据是否出错,将产生两个不同译码分支。


4.如权利要求3所述的分支流水线结构的ECC译码方法,其特征在于,NANDFLASH读写以page为单位,对于1page的数据,要进行多次单扇区的译码操作,不同扇区数据译码形成两级分支流水线结构,第一级流水线不依赖于两个第二级流水线;所有数据都需要经过伴随式求解阶段syn,该阶段为第一级流水线syn;对于出错数据,将经历错误位置多项式求解阶段iBM、错误定位阶段chien和相应纠错输出阶段tx,三个阶段组成错误数据分支的第二级流水线ibm_chien_tx;对于无错数据,只经历数据输出阶段tx,该阶段为无错数据分支的第二级流水线tx,整个译码过程形成一个有分支的两级流水线结构,第一级流水线不依赖于两个第二级流水线。


5.如权利要求1所述的分支流水线结构的ECC译码方法,其特征在于,所述分支流水线结构的ECC译码方法对于BCH(4200,4096,8)码,第一级流水syn占用263个时钟周期,错误数据的第二级流水线ibm_chien_tx占用275个时钟周期,无错数据的第二级流水线tx占用时钟周期取决于有效数据长度,对于每个扇区4096bit满负荷时,占用258个时钟周...

【专利技术属性】
技术研发人员:潘伟涛肖洪邱智亮张仲禹
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西;61

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

1