CN102819493B - 一种基于非易失存储芯片的存储及查询方法 - Google Patents

一种基于非易失存储芯片的存储及查询方法 Download PDF

Info

Publication number
CN102819493B
CN102819493B CN201210027414.4A CN201210027414A CN102819493B CN 102819493 B CN102819493 B CN 102819493B CN 201210027414 A CN201210027414 A CN 201210027414A CN 102819493 B CN102819493 B CN 102819493B
Authority
CN
China
Prior art keywords
timestamp
time
page
data
write
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.)
Active
Application number
CN201210027414.4A
Other languages
English (en)
Other versions
CN102819493A (zh
Inventor
滕奕甬
滕奕刚
周锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kaimai (luoyang) Ltd Measuring Ring
Original Assignee
Kaimai (luoyang) Ltd Measuring Ring
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Kaimai (luoyang) Ltd Measuring Ring filed Critical Kaimai (luoyang) Ltd Measuring Ring
Priority to CN201210027414.4A priority Critical patent/CN102819493B/zh
Publication of CN102819493A publication Critical patent/CN102819493A/zh
Application granted granted Critical
Publication of CN102819493B publication Critical patent/CN102819493B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于非易失存储芯片的存储及查询方法。本发明采用时间戳,在每次对时和新页(一次搽除一页)开始时写下一时间戳,时间戳包括下面信息,存储开始时间、每条数据记录的时间间隔、上次对时的时间戳位置Last(没有保持0XFF值)、下次对时时间戳位置Next(没有保持0XFF值),查询时根据时间戳时间和给定时间先后,查找最新的小于给定时间的时间戳,获得存储开始时间和时间间隔,并计算出数据记录位置,方便数据记录的查询和存储,且存取算法简单易实现。本发明能够减少对存储空间的占用,数据维护操作简单,并能实现高效的数据查找。

Description

一种基于非易失存储芯片的存储及查询方法
技术领域
本发明涉及一种基于非易失存储芯片的存储及查询方法。
背景技术
现在非易失存储芯片(如flash、e2rom等)作为嵌入式系统数据保存器件应用不断扩大,但此类芯片固有的存储区分级、均匀磨损、搽除后写、成区搽除特点,使存取算法变得复杂,存储利用率降低,查询时间增长。
发明内容
本发明的目的是为解决现有非易失存储芯片存取算法复杂,存储利用率低,查询时间过长,提供一种基于非易失存储芯片的存储及查询方法。
为解决上述技术问题,本发明提供一种基于非易失存储芯片的存储方法,该存储方法具体步骤如下:
1).将非易失存储芯片分配为S个扇区,每个扇区等分为Q个页面,每个页面等分成B个块,一次擦除一页;
2).每次对时和新页开始时写下一时间戳,该时间戳包括:存储开始时间、每条数据记录的时间间隔、上次对时的时间戳位置Last和下次对时的时间戳位置Next;
3).判断该非易失存储芯片是否连续工作,当非易失存储芯片连续工作时,将待存储的数据按顺序写入非易失存储芯片的存储块内,并判断存储块所在的页面是否为新,如果不为新,直接将数据按顺序写入存储块内,如果为新,对该页面进行擦除操作,并在该页面的结束位置写入一时间戳,再将数据按顺序写入该页面的存储块内,当对时或机器重启时,查找最新的一次数据记录的位置P,设最后一个对时时写下的时间戳的位置为R,数据记录长度为L,在最新的数据记录P的位置之后的新的存储块内写入一时间戳,该时间戳中的Last为R,将数据记录按顺序存入该时间戳之后的存储区域内,同时修改时间戳位置R的Next值为P+1块,R到P的每页的时间戳中的Next都为P+1块。
所述的时间戳中的上次对时的时间戳位置Last如果没有的话就保持0XFF值,下次对时时间戳位置Next如果没有的话就保持0XFF值。
所述的非易失存储芯片非连续工作指的是与非易失存储芯片相连的上位机因为对时或重启导致非易失存储芯片断电的情况。
本发明还提供了一种基于非易失存储芯片的查询方法,该查询方法的具体步骤如下:
1).将非易失存储芯片分配为S个扇区,每个扇区等分为Q个页面,每个页面等分成B个块,一次擦除一页;
2).每次对时和新页开始时写下一时间戳,该时间戳包括:存储开始时间、每条数据记录的时间间隔、上次对时的时间戳位置Last和下次对时的时间戳位置Next;
3).判断该非易失存储芯片是否连续工作,当非易失存储芯片连续工作时,将待存储的数据按顺序写入非易失存储芯片的存储块内,并判断存储块所在的页面是否为新,如果不为新,直接将数据按顺序写入存储块内,如果为新,对该页面进行擦除操作,并在该页面的结束位置写入一时间戳,再将数据按顺序写入该页面的存储块内,当对时或机器重启时,查找最新的一次数据记录的位置P,设最后一个对时时写下的时间戳的位置为R,数据记录长度为L,在最新的数据记录P的位置之后的新的存储块内写入一时间戳,该时间戳中的Last为R,将数据记录按顺序存入该时间戳之后的存储区域内,同时修改时间戳位置R的Next值为P+1块,R到P的每页的时间戳中的Next都为P+1块;
4).根据查询命令,判断所要查询的数据记录类型;
5).如果查询命令为查找最新的一条数据记录的位置,则从第0扇区、第0页、第0块开始,利用时间戳向前向后找到最新的和最旧时间戳位置,再用二分法快速找到最新记录的位置P;
6).如果查询命令为查找给定时间的时间记录时,从第0扇区、第0页、第0块开始,根据时间戳时间和所要查询数据记录的给定时间的先后,向前或向后找到最新的小于给定时间的时间戳,若没有最新的小于等于给定时间的时间戳则发出给定时间错误信息,若有,根据找到的时间戳,确定存储开始的时间和数据存储时间间隔,确定所要查询数据记录的位置,所要查询的数据记录位置的扇区号和页面号与所找到的时间戳位置的扇区号和页面号一样,所要查询数据记录位置的块号=((查询数据记录的给定时间-时间戳中存储开始时间)/时间间隔)+所找到的时间戳位置的块号。
所述的时间戳中的上次对时的时间戳位置Last如果没有的话就保持0XFF值,下次对时时间戳位置Next如果没有的话就保持0XFF值。
本发明的有益效果是:本发明利用时间戳跟踪数据记录的开始结束位置,方便数据记录的查询和存储,且存取方法简单易实现。本发明能够减少对对存储空间的占用,数据维护操作简单,并能实现高效的数据查找。
附图说明
图1是基于非易失存储芯片的存储方法的流程图。
具体实施方式
本发明的一种基于非易失存储芯片的顺序存储方法的实施例
该存储方法的具体步骤如下:
1.将非易失存储芯片分配为S个扇区,每个扇区等分为Q个页面,每个页面等分成B个块,一次擦除一页;
2.每次对时和新页开始时写下一时间戳,该时间戳包括:存储开始时间、每条数据记录的时间间隔、上次对时的时间戳位置Last(没有保持0XFF值)和下次对时的时间戳位置Next(没有保持0XFF值);
3.当非易失存储芯片连续工作时,把第一个待存储的数据写入到非易失存储芯片第一个存储扇区的第一个存储页面的第一个存储块,并在该存储页面的最后位置写入一时间戳,存储开始时间、每条数据记录的时间间隔、上次对时的时间戳位置Last(没有保持0XFF值)和下次对时的时间戳位置Next(没有保持0XFF值),随着时间的推移,存储芯片数据存储位置也依次向前推进,第一个存储页面达到其设定的存储数据量后自动转换到下一个存储页,每开始在一个新的存储页面存储时,首先要对该页面进行擦除操作,然后在该页面的最后位置写入一时间戳,再将数据按顺序该页面的存储数据块内,依次类推,当第一个储扇区存储满后,自动转向第二个扇区,待整个扇区存储满后,再从第一个扇区开始新的一个周期的数据存储;
4.当对时或机器重启时,查找最新的一次数据记录的位置为P(I扇区、J页、B块),设最后一个对时时写下的时间戳的位置为R,数据记录长度为L,在最新的数据记录P的位置之后的新的存储块内写入一时间戳,时间戳中的Last为R,同时修改时间戳位置R的Next值为P+(1块)(I扇区、J页、B+1块),R到P的每页的时间戳中的Next都为P+(1块)(I扇区、J页、B+1块),将数据记录按顺序存入该时间戳之后的存储区域内。
本发明的一种基于非易失存储芯片的顺序查询方法的实施例
首先将数据按照上述实施例中所述的存储方法存储到非易失存储芯片中,在这里就不再重复描述,下面对以此存储方法为基础的查询方法进行说明,该查询方法包括如下步骤:
1.根据查询命令,判断所要查询的数据记录类型;
2.如果查询命令为查找最新的一条数据记录的位置,则从第0扇区、第0页、第0块开始,利用时间戳向前向后找到最新的和最旧时间戳位置,再用二分法快速找到最新记录的位置P;
3.如果查询命令为查找给定时间的时间记录时,从第0扇区、第0页、第0块开始,根据时间戳时间和所要查询数据记录的给定时间的先后,向前或向后找到最新的小于给定时间的时间戳,若没有最新的小于等于给定时间的时间戳则发出给定时间错误信息,若有,根据找到的时间戳,查询存储开始的时间和数据存储时间间隔;
4.确定所要查询数据记录的位置,所要查询的数据记录位置的扇区号和页面号与所找到的时间戳位置的扇区号和页面号一样,所要查询数据记录位置的块号=((查询数据记录的给定时间-时间戳中存储开始时间)/时间间隔)+所找到的时间戳位置的块号。

Claims (4)

1.一种基于非易失存储芯片的存储方法,其特征在于:该存储方法的步骤如下:
1).将非易失存储芯片分为S个扇区,每个扇区等分为Q个页面,每个页面等分成B个块,一次擦除一页;
2).每次对时和新页开始时写下一时间戳,该时间戳包括:存储开始时间、每条数据记录的时间间隔、上次对时的时间戳位置Last和下次对时的时间戳位置Next;
3).判断该非易失存储芯片是否连续工作,当非易失存储芯片连续工作时,将待存储的数据按顺序写入非易失存储芯片的存储块内,并判断存储块所在的页面是否为新,如果不为新,直接将数据按顺序写入存储块内,如果为新,对该页面进行擦除操作,并在该页面的结束位置写入一时间戳,再将数据按顺序写入该页面的存储块内,当对时或机器重启时,查找最新的一次数据记录的位置P,设最后一个对时时写下的时间戳的位置为R,数据记录长度为L,在最新的数据记录P的位置之后的新的存储块内写入一时间戳,该时间戳中的Last为R,将数据记录按顺序存入该时间戳之后的存储区域内,同时修改时间戳位置R的Next值为P+1块,R到P的每页的时间戳中的Next都为P+1块。
2.根据权利要求1所述的非易失存储芯片的存储方法,其特征在于:所述的时间戳中的上次对时的时间戳位置Last如果没有的话就保持0XFF值,下次对时时间戳位置Next如果没有的话就保持0XFF值。
3.一种基于非易失存储芯片的查询方法,其特征在于:该查询方法的步骤如下:
1).将非易失存储芯片分为S个扇区,每个扇区等分为Q个页面,每个页面等分成B个块,一次擦除一页;
2).每次对时和新页开始时写下一时间戳,该时间戳包括:存储开始时间、每条数据记录的时间间隔、上次对时的时间戳位置Last和下次对时的时间戳位置Next;
3).判断该非易失存储芯片是否连续工作,当非易失存储芯片连续工作时,将待存储的数据按顺序写入非易失存储芯片的存储块内,并判断存储块所在的页面是否为新,如果不为新,直接将数据按顺序写入存储块内,如果为新,对该页面进行擦除操作,并在该页面的结束位置写入一时间戳,再将数据按顺序写入该页面的存储块内,当对时或机器重启时,查找最新的一次数据记录的位置P,设最后一个对时时写下的时间戳的位置为R,数据记录长度为L,在最新的数据记录P的位置之后的新的存储块内写入一时间戳,该时间戳中的Last为R,将数据记录按顺序存入该时间戳之后的存储区域内,同时修改时间戳位置R的Next值为P+1块,R到P的每页的时间戳中的Next都为P+1块;
4).根据查询命令,判断所要查询的数据记录类型;
5).如果查询命令为查找最新的一条数据记录的位置,则从第0扇区、第0页、第0块开始,利用时间戳向前向后找到最新的和最旧时间戳位置,再用二分法快速找到最新记录的位置P;
6).如果查询命令为查找给定时间的时间记录时,从第0扇区、第0页、第0块开始,根据时间戳时间和所要查询数据记录的给定时间的先后,向前或向后找到最新的小于给定时间的时间戳,若没有最新的小于等于给定时间的时间戳则发出给定时间错误信息,若有,根据找到的时间戳,确定存储开始的时间和数据存储时间间隔,确定所要查询数据记录的位置,所要查询的数据记录位置的扇区号和页面号与所找到的时间戳位置的扇区号和页面号一样,所要查询数据记录位置的块号=((查询数据记录的给定时间-时间戳中存储开始时间)/时间间隔)+所找到的时间戳位置的块号;所述给定时间为非易失芯片连续工作时写入数据记录的时间。
4.根据权利要求3所述的基于非易失存储芯片的查询方法,其特征在于:所述的时间戳中的上次对时的时间戳位置Last如果没有的话就保持0XFF值,下次对时时间戳位置Next如果没有的话就保持0XFF值。
CN201210027414.4A 2011-11-30 2012-02-08 一种基于非易失存储芯片的存储及查询方法 Active CN102819493B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210027414.4A CN102819493B (zh) 2011-11-30 2012-02-08 一种基于非易失存储芯片的存储及查询方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201110390008.X 2011-11-30
CN201110390008 2011-11-30
CN201210027414.4A CN102819493B (zh) 2011-11-30 2012-02-08 一种基于非易失存储芯片的存储及查询方法

Publications (2)

Publication Number Publication Date
CN102819493A CN102819493A (zh) 2012-12-12
CN102819493B true CN102819493B (zh) 2015-11-18

Family

ID=47303615

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210027414.4A Active CN102819493B (zh) 2011-11-30 2012-02-08 一种基于非易失存储芯片的存储及查询方法

Country Status (1)

Country Link
CN (1) CN102819493B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103942196B (zh) * 2013-01-17 2019-09-13 腾讯科技(深圳)有限公司 数据查询的方法、设备及系统
CN104391804B (zh) * 2014-10-28 2017-11-28 陕西千山航空电子有限责任公司 一种nand flash数据存储方法
CN110765074B (zh) * 2019-09-20 2022-03-01 国网山东省电力公司青岛供电公司 一种采集终端用电负荷曲线数据的快速存取方法及系统
CN110928890B (zh) * 2019-11-08 2023-01-24 广州华多网络科技有限公司 数据存储方法、装置、电子设备及计算机可读存储介质
CN111025068B (zh) * 2019-12-24 2022-05-20 宁波三星医疗电气股份有限公司 电表负荷曲线数据抄读方法、装置和电子设备
CN113918578B (zh) * 2020-07-10 2024-05-24 成都秦川物联网科技股份有限公司 一种物联网智能燃气表掉电数据补齐存储方法
CN113127377B (zh) * 2021-04-08 2022-11-25 武汉导航与位置服务工业技术研究院有限责任公司 一种非易失存储器件写擦除的磨损均衡方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101326397A (zh) * 2005-12-07 2008-12-17 力克公司 用于针对自动运行机器实现运行安全性的方法
CN101499026A (zh) * 2008-02-01 2009-08-05 凯迈(洛阳)测控有限公司 基于flash rom的数据采集系统小型数据备份方法
CN101751230A (zh) * 2009-12-29 2010-06-23 成都市华为赛门铁克科技有限公司 标定i/o数据的时间戳的设备及方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101326397A (zh) * 2005-12-07 2008-12-17 力克公司 用于针对自动运行机器实现运行安全性的方法
CN101499026A (zh) * 2008-02-01 2009-08-05 凯迈(洛阳)测控有限公司 基于flash rom的数据采集系统小型数据备份方法
CN101751230A (zh) * 2009-12-29 2010-06-23 成都市华为赛门铁克科技有限公司 标定i/o数据的时间戳的设备及方法

Also Published As

Publication number Publication date
CN102819493A (zh) 2012-12-12

Similar Documents

Publication Publication Date Title
CN102819493B (zh) 一种基于非易失存储芯片的存储及查询方法
CN107168647B (zh) Flash数据读写方法及系统
CN102567184B (zh) 一种基于Flash的日志存储方法
US8819367B1 (en) Accelerated translation power recovery
CN101354681A (zh) 存储器系统、非易失性存储器的磨损均衡方法及装置
CN100498796C (zh) 逻辑日志生成方法、数据库备份/恢复方法与系统
CN104050268A (zh) 一种日志空间在线可调整的连续数据保护和恢复方法
CN102831072A (zh) 闪存设备及其管理方法、数据读写方法及读写装置
CN102819468B (zh) 一种基于flash的小型数据备份及查询方法
CN103577335A (zh) 一种内存垃圾回收系统及方法
CN102103596B (zh) 在嵌入式系统中实现文件系统的方法
CN104516959A (zh) 一种管理数据库日志的方法及装置
CN103186471A (zh) 存储设备中坏块的管理方法及系统
CN104834648A (zh) 日志查询方法和装置
CN109669889B (zh) 一种轻量型Nor Flash闪存控制方法和装置
WO2016101145A1 (zh) 一种控制器、识别数据块稳定性的方法和存储系统
CN102890675A (zh) 一种数据存储和查找的方法及装置
CN101901270A (zh) 一种支持海量存储的内存数据库方法
CN102243884B (zh) 一种存储流媒体数据的方法及装置
CN103455284A (zh) 一种读写数据的方法及装置
CN102981977A (zh) 一种可延长flash使用寿命的数据存储方法
KR101226600B1 (ko) 메모리 시스템 및 그의 메모리 맵핑 방법
CN103810246A (zh) 一种索引创建方法和装置以及索引查询方法和装置
US20160350343A1 (en) Data Processing and Writing Method and Related Apparatus
CN102841894A (zh) 一种文件分配表的数据存储方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant