用于采用了nandflash的电力采集终端的纠错方法

文档序号:9489344阅读:351来源:国知局
用于采用了nand flash的电力采集终端的纠错方法
【技术领域】
[0001 ] 本发明涉及用于采用了 NAND FLASH的电力采集终端的纠错方法。
【背景技术】
[0002]目前市面上的电力采集终端通常使用NAND FLASH作为存储设备,NAND FLASH存在两种架构方式,分别是SLC架构以及MLC架构,SLC架构的特点是成本高、容量小、读写速度快;MLC架构的特点是容量大、成本低,但是读写速度相对偏慢,此类存储器,由于工艺问题,最小写入单元(通常情况下为512字节)会产生1个或多个位变位,其中,SLC工艺容量相对小,通常512字节只会产生1位位翻转;MLC工艺容量大,通常512字节容易产生4位位翻转。现有市面上的电力采集终端大多数采用1Gbit SLC架构的NAND FLASH,相对来说SLC架构的NAND FLASH出错概率比较低,所采用的纠错算法只需纠错1位,因此使用一个纠错能力不强的Hanming纠错码就可以了,其占用资源较小。
[0003]随着大数据时代的到来,电力采集系统逐步升级,电力采集终端所需要的存储芯片的容量要求越来越大。电力采集终端需要升级到2GbitNAND FLASH,若升级到2Gbit NANDFLASH,会带来以下技术难度、风险:升级到2Gbit NAND FLASH,需要采用4位纠错算法(针对4位位翻转现象),其中4位纠错算法,一般采用的是BCH纠错算法,但是由于BCH纠错算法在动态运行时由输入参数决定纠错基本单元字节数、纠错位数,能够针对纠错位数分别为4位,8位,16位,纠错位数为4位是指能够纠错1、2、3和4位位翻转的情况,由于参数可变,构建索引表会占用较大的内存,针对512字节4位纠错时,至少需要70k RAM,在内存较小的嵌入式平台运行代价太大,然而现有电力采集终端存在大内存(arm+linnux平台,外扩数十兆内存)、小内存(cortex M3/M4平台,无外扩RAM)两种。上述该纠错算法无法在小内存平台、无外扩内存平台运行。必须提高其内存容量,才能运行BCH纠错算法,最终才能升级到2Gbit MLC NAND FLASH,但是这样子一来提高了电力采集终端的生产成本。

【发明内容】

[0004]本发明要解决的技术问题是,提供一种占用电力采集终端系统RAM内存较小,运行速度快的用于采用了 NAND FLASH的电力采集终端的纠错方法。
[0005]为解决上述技术问题,本发明提供的技术方案为:用于采用了 MLC型的NANDFLASH的电力采集终端的纠错方法,步骤一:确立采用BCH CODE算法实现数据纠错;
步骤二:在BCH CODE算法中,确立最小纠错单元固定为512字节,纠错位数固定为4
位;
步骤三:利用最小纠错单元固定为512字节,纠错位数固定为4位这一规则,生成一张用于纠错位翻转的索引表;
步骤四:将索引表存储在电力采集终端的所需的代码的存储区ROM中;
步骤五:当电力采集终端上的应用程序向Nand Flash写入数据操作,BCH算法通过写入的数据和该索引表计算生成ECC校验,其中,按照每写入512字节的数据生成7字节ECC校验码这一规则生成;
步骤六:电力采集终端上的应用程序对Nand Flash进行读取数据操作,按照512字节数据长度,7字节ECC校验码分4次进行BCH CODE纠错运算,若没有出现位翻转,BCH算法运行结束,若其中512字节出现1或者2或者3或者4位位翻转,BCH CODE算法利用步骤四中存储在存储区ROM中的索引表,通过BCH算法实现数据纠正。
[0006]采用上述方法后,本发明与现有技术相比,具有以下优点:其中,最主要的改进点包括了两点,我们截取了 BCH CODE算法只针对4位位翻转的部分,使得BCH CODE算法得到了精简,算法本身容量变小,其运行内存缩小到40K左右,其次的话,我们的BCH CODE算法所生成的一张用于纠错4位位翻转的索引表,将该索引表固化在电力采集终端的ROM区后,电力采集终端每次上电首先需要初始化索引表指针,将内存中的索引表指针,指向ROM中的索引表,然后才能开始调用,无需动态创建索引表,降低算法运行负载,提高了纠错算法的运行速率,当NAND FLASH存读取数据时候出现位翻转(1位,2位,3位或者4位)时候,通过BCH算法实现数据纠正,进一步解决了电力采集终端的RAM的空间,最终本纠错算法使得占用电力采集终端系统RAM内存较小,最终使得小内存(cortex M3/M4平台,无外扩RAM)的电力采集终端,能够运行BCH CODE算法,实现纠错。
[0007]作为一种优选,在步骤六中,电力采集终端在上电后,BCH CODE算法通过初始化索引表指针,将内存中的索引表指针,指向固化在ROM中的索引表,然后开始使用固化在ROM中的索引表。采用这样子设计的目的是BCH CODE算法,运行过程中只需要调用固化在ROM中的索引表,无需再创建了索引表,提高了 BCH CODE算法的运行速率。
【附图说明】
[0008]图1是本发明的流程图。
【具体实施方式】
[0009]下面结合附图1对本发明做进一步的详细说明。
[0010]如附图1所示,本发明用于采用了 MLC型的NAND FLASH的电力采集终端的纠错方法,
步骤一:确立采用BCH CODE算法实现数据纠错;
步骤二:在BCH CODE算法中,确立最小纠错单元固定为512字节,纠错位数固定为4
位;
步骤三:利用最小纠错单元固定为512字节,纠错位数固定为4位这一规则,生成一张用于纠错位翻转的索引表;
步骤四:将索引表存储在电力采集终端的所需的代码的存储区ROM中;
步骤五:当电力采集终端上的应用程序向Nand Flash写入数据操作,BCH算法通过写入的数据和该索引表计算生成ECC校验,生成ECC校验按照每写入512字节的数据生成7字节ECC校验码这一规则生成;
步骤六:电力采集终端上的应用程序对Nand Flash进行读取数据操作,按照512字节数据长度,7字节ECC校验码分4次进行BCH CODE纠错运算,若没有出现位翻转,BCH算法运行结束,若其中512字节出现1或者2或者3或者4位位翻转,BCH CODE算法利用步骤四中存储在存储区ROM中的索引表,通过BCH算法实现数据纠正,其中,BCH算法利用索引表实现数据纠,是BCH算法自身所能够解决的,只要确立采用BCH CODE算法实现数据纠错,再找到所需的索引表,就能够达到纠错的目的。
[0011]在步骤六中,电力采集终端在上电后,BCH CODE算法通过初始化索引表指针,将内存中的索引表指针,指向固化在ROM中的索引表,然后开始使用固化在ROM中的索引表。
[0012]本申请的工作原理分析如下:BCH CODE算法,能够纠错针对1一16位翻转的情况,实现数据纠错,我们简单地去理解就相当于精简了 BCH CODE算法,只保留了针对1一4位翻转的情况,并且将精简了的BCH CODE算法生成的索引表,固化后存储在存储区ROM中,而并非像原本的BCH CODE算法一样,每次纠错过程需要动态生成索引表,也并非将索引表存储在RAM中(原本的BCH CODE算法生成的索引表存储在RAM中,每次运行均需重新生成,),通过固化后存储在存储区ROM中的索引表,只需要建立指针,等需要用到索引表时候,通过指针指引,找到索引表就好。上述过程不仅提高了 BCH CODE算法的运算效率,减小了 BCHCODE算法所需平台的内存容量,拓展了 BCH CODE算法的应用范围。
[0013]以上仅就本发明的最佳实施例作了说明,但不能理解为是对权利要求的限制。本发明不仅限于以上实施例,凡在本发明独立权利要求的保护范围内所作的各种变化均在本发明的保护范围内。
【主权项】
1.用于采用了NANDFLASH的电力采集终端的纠错方法,步骤一:确立采用BCH CODE算法实现数据纠错;其特征在于: 步骤二:在BCH CODE算法中,确立最小纠错单元固定为512字节,纠错位数固定为4位; 步骤三:利用最小纠错单元固定为512字节,纠错位数固定为4位这一规则,生成一张用于纠错位翻转的索引表; 步骤四:将索引表存储在电力采集终端的所需的代码的存储区ROM中; 步骤五:当电力采集终端上的应用程序向Nand Flash写入数据操作,BCH算法通过写入的数据和该索引表生成ECC校验,其中,按照每写入512字节的数据生成7字节ECC校验码这一规则生成; 步骤六:电力采集终端上的应用程序对Nand Flash进行读取数据操作,按照512字节数据长度,7字节ECC校验码分4次进行BCH CODE算法运算,若没有出现位翻转,BCH CODE算法运行结束,若其中512字节出现I或者2或者3或者4位位翻转,BCH CODE算法利用步骤四中存储在存储区ROM中的索引表,通过BCH CODE算法实现数据纠正。2.根据权利要求1所述的用于采用了NAND FLASH的电力采集终端的纠错方法,其特征在于:在步骤六中,电力采集终端在上电后,通过初始化索引表指针,将内存中的索引表指针,指向固化在ROM中的索引表,然后开始使用固化在ROM中的索引表。
【专利摘要】本发明公开了用于采用了NAND?FLASH的电力采集终端的纠错方法,确立采用BCH?CODE算法实现数据纠错;在BCH?CODE算法中,确立最小纠错单元固定为512字节,纠错位数固定为4位;利用最小纠错单元固定为512字节,纠错位数固定为4位这一规则,生成一张用于纠错位翻转的索引表;将索引表存储在电力采集终端的所需的代码的存储区ROM中;电力采集终端上的应用程序对Nand?Flash进行读取数据操作,出现1或者2或者3或者4位位翻转,BCH?CODE算法利用步骤四中存储在存储区ROM中的索引表,通过BCH算法实现数据纠正。本发明的优点是在断电后又能够调用备用电源实现卫生间的灯正常照明。
【IPC分类】G06F11/10
【公开号】CN105242982
【申请号】CN201510689479
【发明人】郑坚江, 刘宁, 陈杰
【申请人】宁波三星医疗电气股份有限公司
【公开日】2016年1月13日
【申请日】2015年10月22日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1