CN105242982A - 用于采用了nand flash的电力采集终端的纠错方法 - Google Patents
用于采用了nand flash的电力采集终端的纠错方法 Download PDFInfo
- Publication number
- CN105242982A CN105242982A CN201510689479.9A CN201510689479A CN105242982A CN 105242982 A CN105242982 A CN 105242982A CN 201510689479 A CN201510689479 A CN 201510689479A CN 105242982 A CN105242982 A CN 105242982A
- Authority
- CN
- China
- Prior art keywords
- error correction
- electric power
- algorithm
- acquisition terminal
- power acquisition
- 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
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明公开了用于采用了NAND?FLASH的电力采集终端的纠错方法,确立采用BCH?CODE算法实现数据纠错;在BCH?CODE算法中,确立最小纠错单元固定为512字节,纠错位数固定为4位;利用最小纠错单元固定为512字节,纠错位数固定为4位这一规则,生成一张用于纠错位翻转的索引表;将索引表存储在电力采集终端的所需的代码的存储区ROM中;电力采集终端上的应用程序对Nand?Flash进行读取数据操作,出现1或者2或者3或者4位位翻转,BCH?CODE算法利用步骤四中存储在存储区ROM中的索引表,通过BCH算法实现数据纠正。本发明的优点是在断电后又能够调用备用电源实现卫生间的灯正常照明。
Description
技术领域
本发明涉及用于采用了NANDFLASH的电力采集终端的纠错方法。
背景技术
目前市面上的电力采集终端通常使用NANDFLASH作为存储设备,NANDFLASH存在两种架构方式,分别是SLC架构以及MLC架构,SLC架构的特点是成本高、容量小、读写速度快;MLC架构的特点是容量大、成本低,但是读写速度相对偏慢,此类存储器,由于工艺问题,最小写入单元(通常情况下为512字节)会产生1个或多个位变位,其中,SLC工艺容量相对小,通常512字节只会产生1位位翻转;MLC工艺容量大,通常512字节容易产生4位位翻转。现有市面上的电力采集终端大多数采用1GbitSLC架构的NANDFLASH,相对来说SLC架构的NANDFLASH出错概率比较低,所采用的纠错算法只需纠错1位,因此使用一个纠错能力不强的Hanming纠错码就可以了,其占用资源较小。
随着大数据时代的到来,电力采集系统逐步升级,电力采集终端所需要的存储芯片的容量要求越来越大。电力采集终端需要升级到2GbitNANDFLASH,若升级到2GbitNANDFLASH,会带来以下技术难度、风险:升级到2GbitNANDFLASH,需要采用4位纠错算法(针对4位位翻转现象),其中4位纠错算法,一般采用的是BCH纠错算法,但是由于BCH纠错算法在动态运行时由输入参数决定纠错基本单元字节数、纠错位数,能够针对纠错位数分别为4位,8位,16位,纠错位数为4位是指能够纠错1、2、3和4位位翻转的情况,由于参数可变,构建索引表会占用较大的内存,针对512字节4位纠错时,至少需要70kRAM,在内存较小的嵌入式平台运行代价太大,然而现有电力采集终端存在大内存(arm+linnux平台,外扩数十兆内存)、小内存(cortexM3/M4平台,无外扩RAM)两种。上述该纠错算法无法在小内存平台、无外扩内存平台运行。必须提高其内存容量,才能运行BCH纠错算法,最终才能升级到2GbitMLCNANDFLASH,但是这样子一来提高了电力采集终端的生产成本。
发明内容
本发明要解决的技术问题是,提供一种占用电力采集终端系统RAM内存较小,运行速度快的用于采用了NANDFLASH的电力采集终端的纠错方法。
为解决上述技术问题,本发明提供的技术方案为:用于采用了MLC型的NANDFLASH的电力采集终端的纠错方法,步骤一:确立采用BCHCODE算法实现数据纠错;
步骤二:在BCHCODE算法中,确立最小纠错单元固定为512字节,纠错位数固定为4位;
步骤三:利用最小纠错单元固定为512字节,纠错位数固定为4位这一规则,生成一张用于纠错位翻转的索引表;
步骤四:将索引表存储在电力采集终端的所需的代码的存储区ROM中;
步骤五:当电力采集终端上的应用程序向NandFlash写入数据操作,BCH算法通过写入的数据和该索引表计算生成ECC校验,其中,按照每写入512字节的数据生成7字节ECC校验码这一规则生成;
步骤六:电力采集终端上的应用程序对NandFlash进行读取数据操作,按照512字节数据长度,7字节ECC校验码分4次进行BCHCODE纠错运算,若没有出现位翻转,BCH算法运行结束,若其中512字节出现1或者2或者3或者4位位翻转,BCHCODE算法利用步骤四中存储在存储区ROM中的索引表,通过BCH算法实现数据纠正。
采用上述方法后,本发明与现有技术相比,具有以下优点:其中,最主要的改进点包括了两点,我们截取了BCHCODE算法只针对4位位翻转的部分,使得BCHCODE算法得到了精简,算法本身容量变小,其运行内存缩小到40K左右,其次的话,我们的BCHCODE算法所生成的一张用于纠错4位位翻转的索引表,将该索引表固化在电力采集终端的ROM区后,电力采集终端每次上电首先需要初始化索引表指针,将内存中的索引表指针,指向ROM中的索引表,然后才能开始调用,无需动态创建索引表,降低算法运行负载,提高了纠错算法的运行速率,当NANDFLASH存读取数据时候出现位翻转(1位,2位,3位或者4位)时候,通过BCH算法实现数据纠正,进一步解决了电力采集终端的RAM的空间,最终本纠错算法使得占用电力采集终端系统RAM内存较小,最终使得小内存(cortexM3/M4平台,无外扩RAM)的电力采集终端,能够运行BCHCODE算法,实现纠错。
作为一种优选,在步骤六中,电力采集终端在上电后,BCHCODE算法通过初始化索引表指针,将内存中的索引表指针,指向固化在ROM中的索引表,然后开始使用固化在ROM中的索引表。采用这样子设计的目的是BCHCODE算法,运行过程中只需要调用固化在ROM中的索引表,无需再创建了索引表,提高了BCHCODE算法的运行速率。
附图说明
图1是本发明的流程图。
具体实施方式
下面结合附图1对本发明做进一步的详细说明。
如附图1所示,本发明用于采用了MLC型的NANDFLASH的电力采集终端的纠错方法,
步骤一:确立采用BCHCODE算法实现数据纠错;
步骤二:在BCHCODE算法中,确立最小纠错单元固定为512字节,纠错位数固定为4位;
步骤三:利用最小纠错单元固定为512字节,纠错位数固定为4位这一规则,生成一张用于纠错位翻转的索引表;
步骤四:将索引表存储在电力采集终端的所需的代码的存储区ROM中;
步骤五:当电力采集终端上的应用程序向NandFlash写入数据操作,BCH算法通过写入的数据和该索引表计算生成ECC校验,生成ECC校验按照每写入512字节的数据生成7字节ECC校验码这一规则生成;
步骤六:电力采集终端上的应用程序对NandFlash进行读取数据操作,按照512字节数据长度,7字节ECC校验码分4次进行BCHCODE纠错运算,若没有出现位翻转,BCH算法运行结束,若其中512字节出现1或者2或者3或者4位位翻转,BCHCODE算法利用步骤四中存储在存储区ROM中的索引表,通过BCH算法实现数据纠正,其中,BCH算法利用索引表实现数据纠,是BCH算法自身所能够解决的,只要确立采用BCHCODE算法实现数据纠错,再找到所需的索引表,就能够达到纠错的目的。
在步骤六中,电力采集终端在上电后,BCHCODE算法通过初始化索引表指针,将内存中的索引表指针,指向固化在ROM中的索引表,然后开始使用固化在ROM中的索引表。
本申请的工作原理分析如下:BCHCODE算法,能够纠错针对1—16位翻转的情况,实现数据纠错,我们简单地去理解就相当于精简了BCHCODE算法,只保留了针对1—4位翻转的情况,并且将精简了的BCHCODE算法生成的索引表,固化后存储在存储区ROM中,而并非像原本的BCHCODE算法一样,每次纠错过程需要动态生成索引表,也并非将索引表存储在RAM中(原本的BCHCODE算法生成的索引表存储在RAM中,每次运行均需重新生成,),通过固化后存储在存储区ROM中的索引表,只需要建立指针,等需要用到索引表时候,通过指针指引,找到索引表就好。上述过程不仅提高了BCHCODE算法的运算效率,减小了BCHCODE算法所需平台的内存容量,拓展了BCHCODE算法的应用范围。
以上仅就本发明的最佳实施例作了说明,但不能理解为是对权利要求的限制。本发明不仅限于以上实施例,凡在本发明独立权利要求的保护范围内所作的各种变化均在本发明的保护范围内。
Claims (2)
1.用于采用了NANDFLASH的电力采集终端的纠错方法,步骤一:确立采用BCHCODE算法实现数据纠错;其特征在于:
步骤二:在BCHCODE算法中,确立最小纠错单元固定为512字节,纠错位数固定为4位;
步骤三:利用最小纠错单元固定为512字节,纠错位数固定为4位这一规则,生成一张用于纠错位翻转的索引表;
步骤四:将索引表存储在电力采集终端的所需的代码的存储区ROM中;
步骤五:当电力采集终端上的应用程序向NandFlash写入数据操作,BCH算法通过写入的数据和该索引表生成ECC校验,其中,按照每写入512字节的数据生成7字节ECC校验码这一规则生成;
步骤六:电力采集终端上的应用程序对NandFlash进行读取数据操作,按照512字节数据长度,7字节ECC校验码分4次进行BCHCODE算法运算,若没有出现位翻转,BCHCODE算法运行结束,若其中512字节出现1或者2或者3或者4位位翻转,BCHCODE算法利用步骤四中存储在存储区ROM中的索引表,通过BCHCODE算法实现数据纠正。
2.根据权利要求1所述的用于采用了NANDFLASH的电力采集终端的纠错方法,其特征在于:在步骤六中,电力采集终端在上电后,通过初始化索引表指针,将内存中的索引表指针,指向固化在ROM中的索引表,然后开始使用固化在ROM中的索引表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510689479.9A CN105242982B (zh) | 2015-10-22 | 2015-10-22 | 用于采用了nand flash的电力采集终端的纠错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510689479.9A CN105242982B (zh) | 2015-10-22 | 2015-10-22 | 用于采用了nand flash的电力采集终端的纠错方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105242982A true CN105242982A (zh) | 2016-01-13 |
CN105242982B CN105242982B (zh) | 2018-05-15 |
Family
ID=55040636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510689479.9A Active CN105242982B (zh) | 2015-10-22 | 2015-10-22 | 用于采用了nand flash的电力采集终端的纠错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105242982B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073469A (zh) * | 2016-11-18 | 2018-05-25 | 爱思开海力士有限公司 | 用于通用产品代码的数据映射方案 |
CN112540723A (zh) * | 2020-11-06 | 2021-03-23 | 深圳市民德电子科技股份有限公司 | 一种NOR Flash坏点补偿的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459431A (zh) * | 2008-12-30 | 2009-06-17 | 北京大学 | 一种信道纠错码bch码和rs码的译码方法 |
CN101848001A (zh) * | 2010-03-22 | 2010-09-29 | 苏州国芯科技有限公司 | Flash控制器中BCH编译码的数据长度扩展方法 |
US7962836B1 (en) * | 2000-01-06 | 2011-06-14 | Supertalent Electronics, Inc. | Electronic data flash card with bose, ray-chaudhuri, hocquenghem (BCH) error detection/correction |
CN102929736A (zh) * | 2012-10-23 | 2013-02-13 | 忆正科技(武汉)有限公司 | 一种闪存交织校验纠错方法及闪存控制器 |
-
2015
- 2015-10-22 CN CN201510689479.9A patent/CN105242982B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7962836B1 (en) * | 2000-01-06 | 2011-06-14 | Supertalent Electronics, Inc. | Electronic data flash card with bose, ray-chaudhuri, hocquenghem (BCH) error detection/correction |
CN101459431A (zh) * | 2008-12-30 | 2009-06-17 | 北京大学 | 一种信道纠错码bch码和rs码的译码方法 |
CN101848001A (zh) * | 2010-03-22 | 2010-09-29 | 苏州国芯科技有限公司 | Flash控制器中BCH编译码的数据长度扩展方法 |
CN102929736A (zh) * | 2012-10-23 | 2013-02-13 | 忆正科技(武汉)有限公司 | 一种闪存交织校验纠错方法及闪存控制器 |
Non-Patent Citations (1)
Title |
---|
邱晓华 等: "一种扩展部分BCH码纠错能力的方法", 《东南大学学报》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108073469A (zh) * | 2016-11-18 | 2018-05-25 | 爱思开海力士有限公司 | 用于通用产品代码的数据映射方案 |
CN108073469B (zh) * | 2016-11-18 | 2021-06-25 | 爱思开海力士有限公司 | 用于通用产品代码的数据映射方案 |
CN112540723A (zh) * | 2020-11-06 | 2021-03-23 | 深圳市民德电子科技股份有限公司 | 一种NOR Flash坏点补偿的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105242982B (zh) | 2018-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20110072333A1 (en) | Control method for flash memory based on variable length ecc | |
CN102394114B (zh) | 具有自适应纠错能力的bch码纠错方法 | |
TWI540582B (zh) | 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置 | |
CN109426441B (zh) | 数据储存装置以及其操作方法 | |
US20140337681A1 (en) | Data writing method, memory storage device, and memory controller | |
CN104282340A (zh) | 一种固态盘闪存芯片阈值电压感知方法及系统 | |
CN103187104A (zh) | 存储器的纠错方法 | |
CN103531246B (zh) | 快速以读代写的存储器纠错方法 | |
CN103218271B (zh) | 一种数据纠错方法及装置 | |
CN102760099A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN103594120A (zh) | 以读代写的存储器纠错方法 | |
WO2020135412A1 (zh) | 用于nvdimm的数据备份和恢复方法、nvdimm控制器以及nvdimm | |
US9519541B2 (en) | Data storage device and data checking and correction for volatile memory | |
US10733094B2 (en) | Memory system, controller, method of operating a controller, and method of operating a memory system for processing big data by using compression and decompression | |
CN105511803A (zh) | 一种存储介质的擦除中断处理方法 | |
CN105242982A (zh) | 用于采用了nand flash的电力采集终端的纠错方法 | |
US20170004034A1 (en) | Systems and methods for providing error code detection using non-power-of-two flash cell mapping | |
US9594629B2 (en) | Data error correction from cached error correction information | |
US10642684B1 (en) | Memory command interleaving | |
CN109491828A (zh) | 解码方法、存储器存储装置及存储器控制电路单元 | |
CN105095101A (zh) | 向存储器写入数据的方法及装置、智能卡 | |
CN103810297B (zh) | 基于重删技术的写方法、读方法、写装置和读装置 | |
US11409646B2 (en) | Method for releasing memory | |
CN102541677A (zh) | 提高nandflash存储设备对照表加载速度的实现方法 | |
CN105354107A (zh) | NOR Flash的数据传输方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |