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

文档序号:6364395阅读:108来源:国知局
专利名称:一种基于非易失存储芯片的存储及查询方法
技术领域
本发明涉及一种基于非易失存储芯片的存储及查询方法。
背景技术
现在非易失存储芯片(如flash、e2rom等)作为嵌入式系统数据保存器件应用不断扩大,但此类芯片固有的存储区分级、均匀磨损、搽除后写、成区搽除特点,使存取算法变得复杂,存储利用率降低,查询时间增长。

发明内容
本发明的目的是为解决现有非易失存储芯片存取算法复杂,存储利用率低,查询时间过长,提供一种基于非易失存储芯片的存储及查询方法。

为解决上述技术问题,本发明提供一种基于非易失存储芯片的存储方法,该存储方法具体步骤如下
O.将非易失存储芯片分配为S个扇区,每个扇区等分为Q个页面,每个页面等分成B个块,一次擦除一页;
2).毎次对时和新页开始时写下一时间戳,该时间戳包括存储开始时间、每条数据记录的时间间隔、上次对时的时间戳位置Last和下次对时的时间戳位置Next ;
3).判断该非易失存储芯片是否连续工作,当非易失存储芯片连续工作时,将待存储的数据按顺序写入非易失存储芯片的存储块内,并判断存储块所在的页面是否为新,如果不为新,直接将数据按顺序写入存储块内,如果为新,对该页面进行擦除操作,并在该页面的结束位置写入一时间戳,再将数据按顺序写入该页面的存储块内,当对时或机器重启时,查找最新的一次数据记录的位置P,设最后一个对时时写下的时间戳的位置为R,数据记录长度为L,在最新的数据记录P的位置之后的新的存储块内写入一时间戳,该时间戳中的Last为R,将数据记录按顺序存入该时间戳之后的存储区域内,同时修改时间戳位置R的Next值为P+1 ik, R到P的每页的时间戳中的Next都为P+1块。所述的时间戳中的上次对时的时间戳位置Last如果没有的话就保持OXFF值,下次对时时间戳位置Next如果没有的话就保持OXFF值。所述的非易失存储芯片非连续工作指的是与非易失存储芯片相连的上位机因为对时或重启导致非易失存储芯片断电的情况。本发明还提供了一种基于非易失存储芯片的查询方法,该查询方法的具体步骤如下
O.将非易失存储芯片分配为S个扇区,每个扇区等分为Q个页面,每个页面等分成B个块,一次擦除一页;
2).毎次对时和新页开始时写下一时间戳,该时间戳包括存储开始时间、每条数据记录的时间间隔、上次对时的时间戳位置Last和下次对时的时间戳位置Next ;
3).判断该非易失存储芯片是否连续工作,当非易失存储芯片连续工作时,将待存储的数据按顺序写入非易失存储芯片的存储块内,并判断存储块所在的页面是否为新,如果不为新,直接将数据按顺序写入存储块内,如果为新,对该页面进行擦除操作,并在该页面的结束位置写入一时间戳,再将数据按顺序写入该页面的存储块内,当对时或机器重启时,查找最新的一次数据记录的位置P,设最后一个对时时写下的时间戳的位置为R,数据记录长度为L,在最新的数据记录P的位置之后的新的存储块内写入一时间戳,该时间戳中的Last为R,将数据记录按顺序存入该时间戳之后的存储区域内,同时修改时间戳位置R的Next值为P+1 ±夹,R到P的每页的时间戳中的Next都为P+1块;
4).根据查询命令,判断所要查询的数据记录类型;
5).如果查询命令为查找最新的一条数据记录的位置,则从第O扇区、第O页、第O块开始,利用时间戳向前向后找到最新的和最旧时间戳位置,再用二分法快速找到最新记录的位置P ;
6).如果查询命令为查找给定时间的时间记录时,从第O扇区、第O页、第O块开始,根据时间戳时间和所要查询数据记录的给定时间的先后,向前或向后找到最新的小于给定时 间的时间戳,若没有最新的小于等于给定时间的时间戳则发出给定时间错误信息,若有,根据找到的时间戳,确定存储开始的时间和数据存储时间间隔,确定所要查询数据记录的位置,所要查询的数据记录位置的扇区号和页面号与所找到的时间戳位置的扇区号和页面号一祥,所要查询数据记录位置的块号=((查询数据记录的给定时间-时间戳中存储开始时间)/时间间隔)+所找到的时间戳位置的块号。所述的时间戳中的上次对时的时间戳位置Last如果没有的话就保持OXFF值,下次对时时间戳位置Next如果没有的话就保持OXFF值。本发明的有益效果是本发明利用时间戳跟踪数据记录的开始结束位置,方便数据记录的查询和存储,且存取方法简单易实现。本发明能够减少对对存储空间的占用,数据维护操作简单,并能实现高效的数据查找。


图I是基于非易失存储芯片的存储方法的流程图。
具体实施例方式本发明的一种基于非易失存储芯片的顺序存储方法的实施例该存储方法的具体步骤如下
1.将非易失存储芯片分配为S个扇区,每个扇区等分为Q个页面,每个页面等分成B个块,一次擦除一页;
2.毎次对时和新页开始时写下一时间戳,该时间戳包括存储开始时间、每条数据记录的时间间隔、上次对时的时间戳位置Last (没有保持OXFF值)和下次对时的时间戳位置Next (没有保持OXFF值);
3.当非易失存储芯片连续工作时,把第一个待存储的数据写入到非易失存储芯片第一个存储扇区的第一个存储页面的第一个存储块,并在该存储页面的最后位置写入ー时间戳,存储开始时间、每条数据记录的时间间隔、上次对时的时间戳位置Last (没有保持OXFF值)和下次对时的时间戳位置Next (没有保持OXFF值),随着时间的推移,存储芯片数据存储位置也依次向前推进,第一个存储页面达到其设定的存储数据量后自动转换到下ー个存储页,每开始在一个新的存储页面存储吋,首先要对该页面进行擦除操作,然后在该页面的最后位置写入一时间戳,再将数据按顺序该页面的存储数据块内,依次类推,当第一个储扇区存储满后,自动转向第二个扇区,待整个扇区存储满后,再从第一个扇区开始新的ー个周期的数据存储;
4.当对时或机器重启时,查找最新的一次数据记录的位置为P (I扇区、J页、B块),设最后ー个对时时写下的时间戳的位置为R,数据记录长度为L,在最新的数据记录P的位置之后的新的存储块内写入ー时间戳,时间戳中的Last为R,同时修改时间戳位置R的Next值为P+ (I块)(I扇区、J页、B+1块),R到P的每页的时间戳中的Next都为P+ (I块)(I扇区、J页、B+1块),将数据记录按顺序存入该时间戳之后的存储区域内。本发明的一种基于非易失存储芯片的顺序查询方法的实施例 首先将数据按照上述实施例中所述的存储方法存储到非易失存储芯片中,在这里就不再重复描述,下面对以此存储方法为基础的查询方法进行说明,该查询方法包括如下步骤
1.根据查询命令,判断所要查询的数据记录类型;
2.如果查询命令为查找最新的一条数据记录的位置,则从第O扇区、第O页、第O块开始,利用时间戳向前向后找到最新的和最旧时间戳位置,再用二分法快速找到最新记录的位置P;
3.如果查询命令为查找给定时间的时间记录吋,从第O扇区、第O页、第O块开始,根据时间戳时间和所要查询数据记录的给定时间的先后,向前或向后找到最新的小于给定时间的时间戳,若没有最新的小于等于给定时间的时间戳则发出给定时间错误信息,若有,根据找到的时间戳,查询存储开始的时间和数据存储时间间隔;
4.确定所要查询数据记录的位置,所要查询的数据记录位置的扇区号和页面号与所找到的时间戳位置的扇区号和页面号一祥,所要查询数据记录位置的块号=((查询数据记录的给定时间-时间戳中存储开始时间)/时间间隔)+所找到的时间戳位置的块号。
权利要求
1.一种基于非易失存储芯片的存储方法,其特征在于该存储方法的步骤如下 1).将非易失存储芯片分为S个扇区,每个扇区等分为Q个页面,每个页面等分成B个块,一次擦除一页; 2).每次对时和新页开始时写下一时间 戳,该时间戳包括存储开始时间、每条数据记录的时间间隔、上次对时的时间戳位置Last和下次对时的时间戳位置Next ; 3).判断该非易失存储芯片是否连续工作,当非易失存储芯片连续工作时,将待存储的数据按顺序写入非易失存储芯片的存储块内,并判断存储块所在的页面是否为新,如果不为新,直接将数据按顺序写入存储块内,如果为新,对该页面进行擦除操作,并在该页面的结束位置写入一时间戳,再将数据按顺序写入该页面的存储块内,当对时或机器重启时,查找最新的一次数据记录的位置P,设最后一个对时时写下的时间戳的位置为R,数据记录长度为L,在最新的数据记录P的位置之后的新的存储块内写入一时间戳,该时间戳中的Last为R,将数据记录按顺序存入该时间戳之后的存储区域内,同时修改时间戳位置R的Next值为P+l ik, R到P的每页的时间戳中的Next都为P+1块。
2.根据权利要求I所述的非易失存储芯片的存储方法,其特征在于所述的时间戳中的上次对时的时间戳位置Last如果没有的话就保持OXFF值,下次对时时间戳位置Next如果没有的话就保持OXFF值。
3.一种基于非易失存储芯片的查询方法,其特征在于该查询方法的步骤如下 1).将非易失存储芯片分为S个扇区,每个扇区等分为Q个页面,每个页面等分成B个块,一次擦除一页; 2).每次对时和新页开始时写下一时间戳,该时间戳包括存储开始时间、每条数据记录的时间间隔、上次对时的时间戳位置Last和下次对时的时间戳位置Next ; 3).判断该非易失存储芯片是否连续工作,当非易失存储芯片连续工作时,将待存储的数据按顺序写入非易失存储芯片的存储块内,并判断存储块所在的页面是否为新,如果不为新,直接将数据按顺序写入存储块内,如果为新,对该页面进行擦除操作,并在该页面的结束位置写入一时间戳,再将数据按顺序写入该页面的存储块内,当对时或机器重启时,查找最新的一次数据记录的位置P,设最后一个对时时写下的时间戳的位置为R,数据记录长度为L,在最新的数据记录P的位置之后的新的存储块内写入一时间戳,该时间戳中的Last为R,将数据记录按顺序存入该时间戳之后的存储区域内,同时修改时间戳位置R的Next值为P+l ik, R到P的每页的时间戳中的Next都为P+1块; 4).根据查询命令,判断所要查询的数据记录类型; 5).如果查询命令为查找最新的一条数据记录的位置,则从第0扇区、第0页、第0块开始,利用时间戳向前向后找到最新的和最旧时间戳位置,再用二分法快速找到最新记录的位置P ; 6).如果查询命令为查找给定时间的时间记录时,从第0扇区、第0页、第0块开始,根据时间戳时间和所要查询数据记录的给定时间的先后,向前或向后找到最新的小于给定时间的时间戳,若没有最新的小于等于给定时间的时间戳则发出给定时间错误信息,若有,根据找到的时间戳,确定存储开始的时间和数据存储时间间隔,确定所要查询数据记录的位置,所要查询的数据记录位置的扇区号和页面号与所找到的时间戳位置的扇区号和页面号一样,所要查询数据记录位置的块号=((查询数据记录的给定时间-时间戳中存储开始时间)/时间间隔)+所找到的时间戳位置的块号。
4.根据权利要求3所述的基于非易失存储芯片的查询方法,其特征在于所述的时间戳中的上次对时的时间戳位置Last如果没有的话就保持OXFF值,下次对时时间戳位置Next如果没有的话就保持OXFF值。
全文摘要
本发明涉及一种基于非易失存储芯片的存储及查询方法。本发明采用时间戳,在每次对时和新页(一次搽除一页)开始时写下一时间戳,时间戳包括下面信息,存储开始时间、每条数据记录的时间间隔、上次对时的时间戳位置Last(没有保持0XFF值)、下次对时时间戳位置Next(没有保持0XFF值),查询时根据时间戳时间和给定时间先后,查找最新的小于给定时间的时间戳,获得存储开始时间和时间间隔,并计算出数据记录位置,方便数据记录的查询和存储,且存取算法简单易实现。本发明能够减少对对存储空间的占用,数据维护操作简单,并能实现高效的数据查找。
文档编号G06F12/02GK102819493SQ20121002741
公开日2012年12月12日 申请日期2012年2月8日 优先权日2011年11月30日
发明者滕奕甬, 滕奕刚, 周锋 申请人:凯迈(洛阳)环测有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1