CN102819493A - 一种基于非易失存储芯片的存储及查询方法 - Google Patents
一种基于非易失存储芯片的存储及查询方法 Download PDFInfo
- Publication number
- CN102819493A CN102819493A CN2012100274144A CN201210027414A CN102819493A CN 102819493 A CN102819493 A CN 102819493A CN 2012100274144 A CN2012100274144 A CN 2012100274144A CN 201210027414 A CN201210027414 A CN 201210027414A CN 102819493 A CN102819493 A CN 102819493A
- Authority
- CN
- China
- Prior art keywords
- timestamp
- time
- page
- data
- storage
- 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
Images
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值。
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 | 2011-11-30 | ||
CN201110390008.X | 2011-11-30 | ||
CN201210027414.4A CN102819493B (zh) | 2011-11-30 | 2012-02-08 | 一种基于非易失存储芯片的存储及查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102819493A true CN102819493A (zh) | 2012-12-12 |
CN102819493B 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) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942196A (zh) * | 2013-01-17 | 2014-07-23 | 腾讯科技(深圳)有限公司 | 数据查询的方法、设备及系统 |
CN104391804A (zh) * | 2014-10-28 | 2015-03-04 | 陕西千山航空电子有限责任公司 | 一种nand flash数据存储方法 |
CN110765074A (zh) * | 2019-09-20 | 2020-02-07 | 国网山东省电力公司青岛供电公司 | 一种采集终端用电负荷曲线数据的快速存取方法及系统 |
CN110928890A (zh) * | 2019-11-08 | 2020-03-27 | 广州华多网络科技有限公司 | 数据存储方法、装置、电子设备及计算机可读介质 |
CN111025068A (zh) * | 2019-12-24 | 2020-04-17 | 宁波三星医疗电气股份有限公司 | 电表负荷曲线数据抄读方法、装置和电子设备 |
CN113127377A (zh) * | 2021-04-08 | 2021-07-16 | 武汉导航与位置服务工业技术研究院有限责任公司 | 一种非易失存储器件写擦除的磨损均衡方法 |
CN113918578A (zh) * | 2020-07-10 | 2022-01-11 | 成都秦川物联网科技股份有限公司 | 一种物联网智能燃气表掉电数据补齐存储方法 |
Citations (3)
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数据的时间戳的设备及方法 |
-
2012
- 2012-02-08 CN CN201210027414.4A patent/CN102819493B/zh active Active
Patent Citations (3)
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数据的时间戳的设备及方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103942196A (zh) * | 2013-01-17 | 2014-07-23 | 腾讯科技(深圳)有限公司 | 数据查询的方法、设备及系统 |
CN103942196B (zh) * | 2013-01-17 | 2019-09-13 | 腾讯科技(深圳)有限公司 | 数据查询的方法、设备及系统 |
CN104391804A (zh) * | 2014-10-28 | 2015-03-04 | 陕西千山航空电子有限责任公司 | 一种nand flash数据存储方法 |
CN104391804B (zh) * | 2014-10-28 | 2017-11-28 | 陕西千山航空电子有限责任公司 | 一种nand flash数据存储方法 |
CN110765074A (zh) * | 2019-09-20 | 2020-02-07 | 国网山东省电力公司青岛供电公司 | 一种采集终端用电负荷曲线数据的快速存取方法及系统 |
CN110928890A (zh) * | 2019-11-08 | 2020-03-27 | 广州华多网络科技有限公司 | 数据存储方法、装置、电子设备及计算机可读介质 |
CN110928890B (zh) * | 2019-11-08 | 2023-01-24 | 广州华多网络科技有限公司 | 数据存储方法、装置、电子设备及计算机可读存储介质 |
CN111025068A (zh) * | 2019-12-24 | 2020-04-17 | 宁波三星医疗电气股份有限公司 | 电表负荷曲线数据抄读方法、装置和电子设备 |
CN113918578A (zh) * | 2020-07-10 | 2022-01-11 | 成都秦川物联网科技股份有限公司 | 一种物联网智能燃气表掉电数据补齐存储方法 |
CN113918578B (zh) * | 2020-07-10 | 2024-05-24 | 成都秦川物联网科技股份有限公司 | 一种物联网智能燃气表掉电数据补齐存储方法 |
CN113127377A (zh) * | 2021-04-08 | 2021-07-16 | 武汉导航与位置服务工业技术研究院有限责任公司 | 一种非易失存储器件写擦除的磨损均衡方法 |
CN113127377B (zh) * | 2021-04-08 | 2022-11-25 | 武汉导航与位置服务工业技术研究院有限责任公司 | 一种非易失存储器件写擦除的磨损均衡方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102819493B (zh) | 2015-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102819493B (zh) | 一种基于非易失存储芯片的存储及查询方法 | |
CN107168647B (zh) | Flash数据读写方法及系统 | |
CN101354681B (zh) | 存储器系统、非易失性存储器的磨损均衡方法及装置 | |
CN102567184B (zh) | 一种基于Flash的日志存储方法 | |
WO2015185002A1 (zh) | 一种数据写入方法及装置 | |
US9208074B2 (en) | Updating address mapping in sub-intervals in a flash memory data storage device | |
CN102541757B (zh) | 写缓存方法、缓存同步方法和装置 | |
CN100498796C (zh) | 逻辑日志生成方法、数据库备份/恢复方法与系统 | |
CN102819468B (zh) | 一种基于flash的小型数据备份及查询方法 | |
CN102306125A (zh) | 一种flash存储器的数据擦写方法 | |
CN103577338A (zh) | 一种回收垃圾数据的方法及存储设备 | |
US8996794B2 (en) | Flash memory controller | |
CN107015763A (zh) | 混合存储系统中ssd管理方法及装置 | |
CN111158604B (zh) | 一种闪存颗粒阵列的物联网时间序列数据存储与检索方法 | |
CN104050268A (zh) | 一种日志空间在线可调整的连续数据保护和恢复方法 | |
US11593262B1 (en) | Garbage collection command scheduling | |
CN101334756A (zh) | 非易失性存储器的控制装置及其控制方法以及存储装置 | |
US20130067147A1 (en) | Storage device, controller, and read command executing method | |
CN103186471A (zh) | 存储设备中坏块的管理方法及系统 | |
CN104516959A (zh) | 一种管理数据库日志的方法及装置 | |
CN102831072A (zh) | 闪存设备及其管理方法、数据读写方法及读写装置 | |
CN112307049A (zh) | 数据库的读写分离方法、装置、设备及可读存储介质 | |
CN102981977A (zh) | 一种可延长flash使用寿命的数据存储方法 | |
CN104391804B (zh) | 一种nand flash数据存储方法 | |
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 |