本发明专利技术涉及一种用于嵌入式系统的数据信息存储及快速查询方法,在嵌入式系统的Flash中划分一块区域作为索引区,索引区每段为4byte用来存放数据信息的地址;还划分一块区域为数据信息区每段64byte(可以根据实际应用确定),该区域用来连续存放数据信息,以达到节省空间的目的。查询时先利用信息ID来计算出索引的地址,从索引地址中存储的内容获得数据信息的存放地址,最后根据存放地址到数据信息区获得需要的数据信息,本发明专利技术的方法简单,能够实现快速高效的数据信息查询。
【技术实现步骤摘要】
【专利摘要】本专利技术涉及一种,在嵌入式系统的Flash中划分一块区域作为索引区,索引区每段为4byte用来存放数据信息的地址;还划分一块区域为数据信息区每段64byte(可以根据实际应用确定),该区域用来连续存放数据信息,以达到节省空间的目的。查询时先利用信息ID来计算出索引的地址,从索引地址中存储的内容获得数据信息的存放地址,最后根据存放地址到数据信息区获得需要的数据信息,本专利技术的方法简单,能够实现快速高效的数据信息查询。【专利说明】
本专利技术涉及一种。
技术介绍
查找的目的在于从一些数据中寻找一个特定的值,对于查询方法的要求是具有更高的效率与更方便的操作。在范围较小的时候,无论采取什么方法查找,所花费的时间都相差无几,在这种情况下,算法上简单易行,且对存储格式要求较低的线性查找无疑就可以满足要求。但当所要查找的范围达到了一定程度时,查询方法在耗时,系统处理能力,系统资源消耗问题就逐渐突显,当数据量更大时在嵌入式系统上很难处理。 常用的查询方法,包括:线性查找:线性查找又叫顺序查找,是从数组中第一笔数据开始进行查找比较,如果找到所需的数值则返回该值或该位置,如果没有找到则往下一笔数据进行查找比较,直到查找到最后一笔数据为止。线性查找在思维上简单易行,代码容易实现,是处理少量数据时,很好的一种选择,但是由于其平均状况的时间复杂度为0(n),随着数据量的增大其效率就明显降低,这时就应该选用其他的方法。 折半查找:折半查找法也称为二分查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用0(log η)完成搜索任务。它的基本思想是,将η个元素分成个数大致相同的两半,取a与欲查找的X作比较,如果x=a则找到x,算法终止。如果x〈a,则只要在数组a的左半部继续搜索x(这里假设数组元素呈升序排列)。如果x>a,则只要在数组a的右半部继续搜索X。二分搜索法的应用极其广泛,而且它的思想易于理解,但是数据量大到一定程度时,嵌入式系统需要大量系统资源,或者需要大量的时间来进行排序。 折半查找的变形-Fibonacci查找和插补查找:与折半查找法类似,Fibonacci查找和插补查找都是将数据查找范围切成两半,直至能够确定具体的位置或所查找不在范围之内。但是它们在效率和应用范围上也有一定的区别。 折半查找运用除法运算来减少查找范围,而Fibonacci查找法则利用了Fibonacci数列建立相应的树状结构,在缩小范围的过程中仅用到加减法。在计算机处理运算指令中,加减运算的效率高于乘除运算,所以Fibonacci查找法的效率也会优于折半查找。然而对于不平均分布的数据,其效率并不好,甚至在最坏的状况下,时间复杂度达到了线性查找相同。 对于嵌入式系统来言,复杂而又占用系统资源的查找算法,根本无法实现;但是在数据范围很大的时候,用简单方法来查找又需要用较长时间,交互性差。
技术实现思路
本专利技术目的在于提供一种,用Flash存储空间地址作为索引,提供一个较大的索引区域使索引包含所有的信息ID的个数,索引的空间用来存放数据信息的地址,能快速得到信息存放的地址从而得到信息的内容。数据信息以连续方式存放减小空间的占用,既考虑了快速查询又兼顾了空间的利用。 为了达到上述目的,本专利技术的技术方案是提供一种,在嵌入式系统的Flash中,包含: 数据信息区,其中连续存放有多个数据信息,每个数据信息保存在对应的信息地址下;索引区,其中设有多个索引信息,每个索引信息对应的索引地址下,存放有与该索引信息对应的数据信息的信息地址;其中,每个数据信息的序号n,从I到数据信息的总数中取值;每个索引信息的序号N,从I到索引信息的总数中取值;设每个数据信息对应的信息ID的数值为N-1 ;查询时,从索引区中由信息ID计算获得的索引地址下,得到存放的数据信息的信息地址后,在数据信息区中获得该信息地址下存放的数据信息。 优选地,所述索引区在Flash中所需空间的大小,通过计算索引信息的总数与地址长度的乘积来获得;所述地址长度与任意一个信息地址在索引区中所需的存储空间相对应;所述数据信息区在Flash中所需空间的大小,通过计算数据信息的总数与每条信息的数据长度的乘积来获得。 优选地,所述地址长度为4字节。 优选地,进行添加信息的操作时,包含以下步骤:在数据信息区的首地址上,增加数据信息区当前位置与数据长度乘积的数值,得到新增加数据信息的信息地址;设所述数据信息区当前位置的数值为n-Ι ;在索引区的首地址上,增加信息ID与地址长度乘积的数值,得到相应的索引地址,并在该索引地址下写入新增加数据信息的信息地址。 优选地,在前一次添加信息时获得新增加数据信息的信息地址以后,对数据信息区当前位置的数值做加一操作,使得下一次添加的数据信息增加在数据信息区的末端。 优选地,进行删除信息的操作时,在索引区的首地址上,增加信息ID与地址长度乘积的数值,得到相应的索弓I地址,并将该索引地址下存放的内容修改为FFFFFFFHL 优选地,进行修改信息的操作时,包含以下步骤:在索引区的首地址上,增加信息ID与地址长度乘积的数值,得到相应的索引地址;读取该索引地址下的内容来获得要被替换的数据信息的信息地址,将该信息地址下的数据信息替换为新的数据信息。 优选地,进行查找信息的操作时,包含以下步骤:在索引区的首地址上,增加信息ID与地址长度乘积的数值,得到相应的索引地址;读取该索引地址下的内容来获得要查找的数据信息的信息地址;在数据信息区中,读取并返回该信息地址下的数据信息。 优选地,查找信息时,当读取到索引地址下的内容为FFFFFFFFH时,返回未查到数据信息。 本专利技术所述中,在Flash中划分一块区域作为索引区,索引区每段为4 byte用来存放数据信息的地址;还划分一块区域为数据信息区每段64 byte (可以根据实际应用确定),该区域用来连续存放数据信息,以达到节省空间的目的。查询时先利用信息ID来计算出索引的地址,从索引地址中存储的内容获得数据信息的存放地址,最后根据存放地址到数据信息区获得需要的数据信息,本专利技术的方法简单,能够实现快速高效的数据信息查询。 与现有技术相比,本专利技术所述,其优点在于:1、查找迅速:本专利技术的方法只需要一次计算就能准确的查找到所需要的数据信息。 2、算法简单:本专利技术的方法通过简单的地址计算就可以准确找到所需要的数据信肩、O 3、系统资源开销小:本专利技术的方法通过简单的地址运算就可以实现数据信息的管理、查找,对嵌入式系统十分稀缺的系统资源非常适用。 【专利附图】【附图说明】 图1是本专利技术所述方法中Flash空间分配的示意图;图2是本专利技术所述方法中添加信息的流程图;图3是本专利技术所述方法中删除信息的流程图;图4是本专利技术所述方法中修改信息的流程图;图5是本专利技术所述方法中查找信息的流程图。 【具体实施方式】 以下根据图1?图5具体说明本专利技术的一种较佳实施方式:如图1所示的实例中,假设需要存放信息ID从0-99999 (对应索引信息1-100000)的数据信息10000条,每条数据信息的数据长度为64 byte ;定义一个整数的变量N与索引信息的总数相对应,本例中N从I到本文档来自技高网...
【技术保护点】
一种用于嵌入式系统的数据信息存储及快速查询方法,其特征在于,在嵌入式系统的Flash中,包含:数据信息区,其中连续存放有多个数据信息,每个数据信息保存在对应的信息地址下;索引区,其中设有多个索引信息,每个索引信息对应的索引地址下,存放有与该索引信息对应的数据信息的信息地址;其中,每个数据信息的序号n,从1到数据信息的总数中取值;每个索引信息的序号N,从1到索引信息的总数中取值;设每个数据信息对应的信息ID的数值为N‑1;查询时,从索引区中由信息ID计算获得的索引地址下,得到存放的数据信息的信息地址后,在数据信息区中获得该信息地址下存放的数据信息。
【技术特征摘要】
【专利技术属性】
技术研发人员:陈兴,陈瑜,曾松峰,申存海,
申请(专利权)人:国网上海市电力公司,上海思敦信息科技有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。