CN103295632A - 防止意外掉电引起线性累计数据突变的方法 - Google Patents
防止意外掉电引起线性累计数据突变的方法 Download PDFInfo
- Publication number
- CN103295632A CN103295632A CN201310204640XA CN201310204640A CN103295632A CN 103295632 A CN103295632 A CN 103295632A CN 201310204640X A CN201310204640X A CN 201310204640XA CN 201310204640 A CN201310204640 A CN 201310204640A CN 103295632 A CN103295632 A CN 103295632A
- Authority
- CN
- China
- Prior art keywords
- data
- memory block
- net result
- storage area
- memory
- 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.)
- Pending
Links
Images
Abstract
本发明公开了一种防止意外掉电引起线性累计数据突变的方法,旨在提供一种能够在不增加硬件成本和电路复杂度的情况下,防止线性累计数据突变的方法。本发明通过下述技术方案予以实现:在非易失性存储器中,根据待存储的线性累计数据特性划分三级存储区;数据读取时,当三个存储区上的数据都相同时,数据读取判决模块将相同的数据判定为最终结果数据;当只有两个存储区上的数据相同时,数据读取判决模块将相同的数据判定为最终结果数据,三级存储区同步模块将最终结果数据写入到与最终结果数据不相同的另一个的存储区上;当三个存储区上的数据都不相同时,数据读取判决模块将主存储区的数据判定为最终结果数据,三级存储区同步模块将最终结果数据写入到第一备存储区和第二备存储区上。
Description
技术领域
本发明涉及一种防止意外掉电引起线性累计数据突变的方法。
背景技术
电子设备上电次数、累计工作时间,以及交通工具中电子仪表累计里程等都是线性变化的数据,并且每次改变后都将存入非易失性存储器(如FLASH、EEPROM)中,像这类线性变化且每次改变都需要存储的数据就是线性累计数据,可表示为式1。
V(n+1)=V(n)+ΔV (式1)
其中,V(n)表示第n次的值,V(n+1)表示第n+1的值,ΔV为常量。
由式1可知,线性累计数据当前值是上一次的值加上一个常量ΔV,这个常量ΔV就是该线性累计数据变化的最小单位精度(电子设备的上电次数最小单位精度为1次,每5分钟更新一次的电子设备累计工作时间的最小单位精度为5分钟,每公里更新一次的电子仪表累计里程的最小单位精度为1公里)。线性累计数据的每一次改变都是需要先读出上一次的值再加上最小单位精度,然后存入非易失性存储器。
常用的非易失性存储器为FLASH和EEPROM,它们在写数据操作之前都需要先进行擦除操作,只是FLASH是按照块为单位擦除,而EEPROM时按照字节为单位擦除。如果擦除或者写FLASH或EEPROM操作时突然掉电,这时FLASH或EEPROM正在被擦除或者写入的单元的内容将会是随机的,下一次上电后,读出该单元的数据将是个随机值。因此,如果当正在存储线性累计数据时意外掉电,非易失性存储器中的内容将是随机值,从而导致线性累计数据是随机值。对于实际应用来说,线性累计数据有几次未能及时更新是可接受的,如电子设备的上电次数少了几次、电子设备的累计工作时间少了几分钟以及电子仪表累计里程少了几公里都是能够接受的,但是不能是随机值,因为随机值会引起线性累计数据突变。
为了避免意外掉电引起的线性累计数据的突变,基本上都是采用在硬件电路中添加储能器件,为意外掉电提供额外电源保证处理器完成对非易失性存储器的操作,避免线性累计数据突变。该方法虽然可以解决数据突变问题,但是增加了硬件成本和电路复杂度。
发明内容
本发明的目的在于提供一种能够在不增加硬件成本和电路复杂度的情况下,防止意外掉电引起线性累计数据突变的方法。
本发明的上述目的可以通过以下措施来达到,一种防止意外掉电引起线性累计数据突变的方法,其特征在于包括如下步骤:
(1)在非易失性存储器中,根据待存储的线性累计数据特性划分主存储区、第一备存储区和第二备存储区,三级存储区;
(2)数据读取时,分为三种情况处理:
①当三个存储区上的数据都相同时,数据读取判决模块将相同的数据判定为最终结果数据;
②当只有两个存储区上的数据相同时,数据读取判决模块将相同的数据判定为最终结果数据,三级存储区同步模块将最终结果数据写入到与最终结果数据不相同的另一个的存储区上;
③当三个存储区上的数据都不相同时,数据读取判决模块将主存储区的数据判定为最终结果数据,三级存储区同步模块将最终结果数据写入到第一备存储区和第二备存储区上。
(3)数据更新时,分为三步:
①采用数据读取判决模块获取最终结果数据;
②用三级存储区同步模块同步三级存储区中的数据,使三级存储区中的数据都等于最终结果数据;
③用线性累计数据更新存储模块将最终结果数据增加一个最小单位,然后将增加后的数据按照先主存储区,再第一备存储区,最后第二备存储区的顺序写入三级存储区。
本发明相比于现有技术具有如下有益效果:
本发明采用三级存储区划分方法、数据更新存储流程、数据读取判定原则方法和三个存储区的数据不一致时的数据同步方法,在不增加额外硬件的情况下,防止意外掉电引起的线性累计数据突变,降低硬件成本和复杂度。最坏情况下只会损失线性累计数据一个最小单位的精度。
附图说明
下面结合附图进一步说明本发明的技术方案,但本发明所保护的内容不局限于以下所述。
图1为本发明的针对线性累计数据的三级冗余备份容错方法软件模块的组成示意图;
图2为本发明的数据读取判决模块及三级存储区同步模块流程示意图;
图3为本发明的线性累计数据更新模块的线性累计数据更新流程示意图。
具体实施方式
参阅图1。在以下描述的实施例中,所用存储器可以是非易失性存储器,如FLASH或者EEPROM。所存数据为线性累计特性数据。
根据数据特性,在非易失性存储器中划分主存储区、第一备存储区和第二备存储区三级存储区,三级存储区大小相同,都等于线性累计数据长度,即主存储区、第一备存储区和第二备存储区的三级存储区大小相同并等于线性累计数据长度。如果采用的非易失性存储器是FLASH,由于FLASH的擦除操作是按块进行,则三个存储区需要分布在不同的块上;如果采用的非易失性存储器是EEPROM,由于EEPROM的擦除操作是按字节进行,则三个存储区的分布无特殊要求。
数据读取时,分为三种情况处理:
①当三个存储区上的数据都相同时,数据读取判决模块将相同的数据判定为最终结果数据;
②当只有两个存储区上的数据相同时,数据读取判决模块将相同的数据判定为最终结果数据,三级存储区同步模块将最终结果数据写入到与最终结果数据不相同的另一个的存储区上;
③当三个存储区上的数据都不相同时,数据读取判决模块将主存储区的数据判定为最终结果数据,三级存储区同步模块将最终结果数据写入到第一备存储区和第二备存储区上。
参阅图2。以下描述的主存储区图中简称主、第一备存储区图中简称备1和第二备存储区图中简称备2。
数据读取判决模块依据多数原则判决最终结果数据,当有两个及两个以上的存储区上的数据相同时,相同的数据判定为最终结果数据,三级存储区同步模块将三级存储区的内容都同步成最终结果数据。数据读取判决及三级存储区同步时,分为三个存储区上的数据都相同、只有两个存储区上的数据相同和三个存储区上的数据都不相同三种情况进行处理,而只有两个存储区上的数据相同的情况有可分为主存储区和第一备存储区相同,而与第二备存储区不同、主存储区和第二备存储区相同,而与第一备存储区不同以及第一备存储区和第二备存储区相同而与主存储区不同三种情况,因此数据读取判决及三级存储区同步时可分为五种具体情况进行处理:
①当三个存储区上的数据都相同时,数据读取判决模块将相同的数据判定为最终结果数据;
②当主存储区和第一备存储区相同而与第二备存储区不同时,数据读取判决模块将主存储区的数据判定为最终结果数据,三级存储区同步模块将最终结果数据写入到第二备存储区上。
③当主存储区和第二备存储区相同而与第一备存储区不同时,数据读取判决模块将主存储区的数据判定为最终结果数据,三级存储区同步模块将最终结果数据写入到第一备存储区上。
④当第一备存储区和第二备存储区相同而与主存储区不同时,数据读取判决模块将第一备存储区的数据判定为最终结果数据,三级存储区同步模块将最终结果数据写入到主存储区上。
⑤当三个存储区上的数据都不相同时,数据读取判决模块将主存储区的数据判定为最终结果数据,三级存储区同步模块将最终结果数据写入到第一备存储区和第二备存储区上。
参阅图3。数据更新时,分为三步:
①采用数据读取判决模块获取最终结果数据;
②用三级存储区同步模块同步三级存储区中的数据,使三级存储区中的数据都等于最终结果数据;
③用线性累计数据写入存储模块将最终结果数据增加一个最小单位,然后将增加后的数据按照先主存储区,再第一备存储区,最后第二备存储区的顺序写入三级存储区。
比如:上电次数更新,上电时首先读取存储的上电次数,并同步三级存储区,然后上电次数增加1,最后将增加1以后的上电次数顺序写入主存储区、第一备存储区和第二备存储区三级存储区。
Claims (7)
1.一种防止意外掉电引起线性累计数据突变的方法,其特征在于包括如下步骤:
在非易失性存储器中,根据待存储的线性累计数据特性划分主存储区、第一备存储区和第二备存储区三级存储区。数据读取时,分为三种情况处理:①当三个存储区上的数据都相同时,数据读取判决模块将相同的数据判定为最终结果数据;②当只有两个存储区上的数据相同时,数据读取判决模块将相同的数据判定为最终结果数据,三级存储区同步模块将最终结果数据写入到与最终结果数据不相同的另一个的存储区上;③当三个存储区上的数据都不相同时,数据读取判决模块将主存储区的数据判定为最终结果数据,三级存储区同步模块将最终结果数据写入到第一备存储区和第二备存储区上。
数据更新时,分为三步:①采用数据读取判决模块获取最终结果数据;②用三级存储区同步模块同步三级存储区中的数据,使三级存储区中的数据都等于最终结果数据;③用线性累计数据写入存储模块将最终结果数据增加一个最小单位,然后将增加后的数据按照先主存储区,再第一备存储区,最后第二备存储区的顺序写入三级存储区。
2.根据权利要求1所述的防止意外掉电引起线性累计数据突变的方法,其特征在于,所用存储器是非易失性存储器FLASH或者EEPROM。
3.根据权利要求1所述的防止意外掉电引起线性累计数据突变的方法,其特征在于,主存储区、第一备存储区和第二备存储区的三级存储区大小相同并等于线性累计数据长度。
4.根据权利要求1所述的防止意外掉电引起线性累计数据突变的方法,其特征在于,如果采用的非易失性存储器是FLASH,则三个存储区需要分布在不同的块上;如果采用的非易失性存储器是EEPROM,则三个存储区的分布无特殊要求。
5.根据权利要求1所述的防止意外掉电引起线性累计数据突变的方法,其特征在于,当主存储区和第一备存储区相同而与第二备存储区不同时,数据读取判决模块将主存储区的数据判定为最终结果数据,三级存储区同步模块将最终结果数据写入到第二备存储区上。
6.根据权利要求1所述的防止意外掉电引起线性累计数据突变的方法,其特征在于,当主存储区和第二备存储区相同而与第一备存储区不同时,数据读取判决模块将主存储区的数据判定为最终结果数据,三级存储区同步模块将最终结果数据写入到第一备存储区上。
7.根据权利要求1所述的防止意外掉电引起线性累计数据突变的方法,其特征在于,当第一备存储区和第二备存储区相同而与主存储区不同时,数据读取判决模块将第一备存储区的数据判定为最终结果数据,三级存储区同步模块将最终结果数据写入到主存储区上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310204640XA CN103295632A (zh) | 2013-05-28 | 2013-05-28 | 防止意外掉电引起线性累计数据突变的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310204640XA CN103295632A (zh) | 2013-05-28 | 2013-05-28 | 防止意外掉电引起线性累计数据突变的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103295632A true CN103295632A (zh) | 2013-09-11 |
Family
ID=49096360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310204640XA Pending CN103295632A (zh) | 2013-05-28 | 2013-05-28 | 防止意外掉电引起线性累计数据突变的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103295632A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105448339A (zh) * | 2015-12-07 | 2016-03-30 | 中国电子科技集团公司第十研究所 | 非易失性存储器意外掉电线性累计数据突变的防避方法 |
CN105488913A (zh) * | 2015-12-16 | 2016-04-13 | 西安航天计量测试研究所 | 一种一卡多表的多模式收费射频卡预付费智能水表及计费方法 |
CN106383775A (zh) * | 2015-08-18 | 2017-02-08 | 上海景格科技股份有限公司 | 设备使用时间记录方法及其装置 |
CN107256197A (zh) * | 2017-05-18 | 2017-10-17 | 深圳市晟碟半导体有限公司 | 一种数据存储方法、存储装置及智能终端 |
CN107273241A (zh) * | 2016-04-06 | 2017-10-20 | 北京航天发射技术研究所 | 一种重要参数的冗余备份和自动恢复方法 |
CN108153486A (zh) * | 2017-11-27 | 2018-06-12 | 深圳市有方科技股份有限公司 | 嵌入式系统的工作参数保护方法以及相关设备 |
CN110554888A (zh) * | 2018-05-30 | 2019-12-10 | 北京兆易创新科技股份有限公司 | 一种非易失性半导体存储器参数上电读取方法及装置 |
WO2022120940A1 (zh) * | 2020-12-11 | 2022-06-16 | 武汉新芯集成电路制造有限公司 | 单调计数器及其计数方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040172509A1 (en) * | 2003-02-27 | 2004-09-02 | Hitachi, Ltd. | Data processing system including storage systems |
CN1567261A (zh) * | 2003-06-13 | 2005-01-19 | 鸿富锦精密工业(深圳)有限公司 | 闪存文件系统及方法 |
US20070094574A1 (en) * | 2005-10-25 | 2007-04-26 | Fujitsu Limited | Method and device for storing data |
CN101470666A (zh) * | 2007-12-24 | 2009-07-01 | 比亚迪股份有限公司 | 一种数据存储方法 |
CN102890647A (zh) * | 2012-07-04 | 2013-01-23 | 漳州科能电器有限公司 | 一种数据的存储与更新方法及装置 |
-
2013
- 2013-05-28 CN CN201310204640XA patent/CN103295632A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040172509A1 (en) * | 2003-02-27 | 2004-09-02 | Hitachi, Ltd. | Data processing system including storage systems |
CN1567261A (zh) * | 2003-06-13 | 2005-01-19 | 鸿富锦精密工业(深圳)有限公司 | 闪存文件系统及方法 |
US20070094574A1 (en) * | 2005-10-25 | 2007-04-26 | Fujitsu Limited | Method and device for storing data |
CN101470666A (zh) * | 2007-12-24 | 2009-07-01 | 比亚迪股份有限公司 | 一种数据存储方法 |
CN102890647A (zh) * | 2012-07-04 | 2013-01-23 | 漳州科能电器有限公司 | 一种数据的存储与更新方法及装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106383775A (zh) * | 2015-08-18 | 2017-02-08 | 上海景格科技股份有限公司 | 设备使用时间记录方法及其装置 |
CN106383775B (zh) * | 2015-08-18 | 2019-03-08 | 上海景格科技股份有限公司 | 设备使用时间记录方法及其装置 |
CN105448339A (zh) * | 2015-12-07 | 2016-03-30 | 中国电子科技集团公司第十研究所 | 非易失性存储器意外掉电线性累计数据突变的防避方法 |
CN105488913A (zh) * | 2015-12-16 | 2016-04-13 | 西安航天计量测试研究所 | 一种一卡多表的多模式收费射频卡预付费智能水表及计费方法 |
CN107273241A (zh) * | 2016-04-06 | 2017-10-20 | 北京航天发射技术研究所 | 一种重要参数的冗余备份和自动恢复方法 |
CN107256197A (zh) * | 2017-05-18 | 2017-10-17 | 深圳市晟碟半导体有限公司 | 一种数据存储方法、存储装置及智能终端 |
CN107256197B (zh) * | 2017-05-18 | 2019-02-01 | 深圳市晟碟半导体有限公司 | 一种数据存储方法、存储装置及智能终端 |
CN108153486A (zh) * | 2017-11-27 | 2018-06-12 | 深圳市有方科技股份有限公司 | 嵌入式系统的工作参数保护方法以及相关设备 |
CN110554888A (zh) * | 2018-05-30 | 2019-12-10 | 北京兆易创新科技股份有限公司 | 一种非易失性半导体存储器参数上电读取方法及装置 |
WO2022120940A1 (zh) * | 2020-12-11 | 2022-06-16 | 武汉新芯集成电路制造有限公司 | 单调计数器及其计数方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103295632A (zh) | 防止意外掉电引起线性累计数据突变的方法 | |
US9645920B2 (en) | Adaptive cache memory controller | |
US8959280B2 (en) | Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear | |
US9547589B2 (en) | Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive | |
US9177638B2 (en) | Methods and devices for avoiding lower page corruption in data storage devices | |
CN102841851B (zh) | 闪存管理方法和闪存设备 | |
US9575844B2 (en) | Mass storage device and method of operating the same to back up data stored in volatile memory | |
CN101419841B (zh) | 一种flash存储器擦写方法 | |
US20110283048A1 (en) | Structured mapping system for a memory device | |
US9529537B2 (en) | Storage system and storage method | |
CN102567146B (zh) | 一种实现日志备份的方法及其装置、智能卡 | |
CN109358804A (zh) | 一种数据处理方法、装置及闪存设备 | |
CN106681934A (zh) | 一种固态硬盘垃圾回收的方法、系统和固态硬盘控制器 | |
KR101579711B1 (ko) | 플래시 변환 층(ftl) 데이터베이스 저널링 기법들 | |
CN102169727B (zh) | 基于随机游走的固态硬盘磨损均衡方法 | |
EP3223160A1 (en) | Managing backup of logical-to-physical translation information to control boot-time and write amplification | |
CN109992202A (zh) | 数据存储设备、其操作方法以及包括其的数据处理系统 | |
CN107861687B (zh) | 在flash存储器上实现电表电量小数的按位存储的方法 | |
CN108255630A (zh) | 一种降低固态硬盘异常掉电处理时间的方法 | |
CN103677674A (zh) | 一种数据处理方法及装置 | |
CN101499313A (zh) | 一种确保数据安全的方法、设备及存储系统 | |
US20160210210A1 (en) | Solid-state storage system, apparatus and method of writing data | |
CN109101437A (zh) | 一种数据存储方法与终端 | |
CN110515542A (zh) | 数据存储方法、装置、计算设备、存储系统及存储介质 | |
CN106294217A (zh) | 一种ssd系统及其掉电保护方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130911 |