一种嵌入式系统flash数据快速查询方法及装置与流程

文档序号:33624139发布日期:2023-03-25 14:27阅读:94来源:国知局
一种嵌入式系统flash数据快速查询方法及装置与流程

1.本发明涉及嵌入式系统数据检索领域,特别涉及一种嵌入式系统flash数据快速查询方法及装置。


背景技术:

2.在嵌入式产品设计中,一般要保存一些参数、运行信息等数据,尤其是使用单片机,资源比较匮乏,无法使用文件系统对数据进行管理。需要开发人员编写软件对flash的数据进行管理,受flash读写速度的限制,常规读写方法无法满足需求。
3.现有的技术方案主要通过二分法进行查找。读取flash的次数和存储数据块的关系是2n=m,检索到数据的时间t=t*n;解释:m是存储数据块的个数,n是查询的次数,t是查询数据的总时间,t是一次读写flash数据块的时间;若m=65536则n=16,一次读写flash数据块时间t=100ms,则t=n*t=16*100ms=1600ms,对于实时性要求比较高的系统,这么长的查询时间是不能满足系统要求的。


技术实现要素:

4.本发明实施例的目的是提供一种嵌入式系统flash数据快速查询方法及装置,通过对嵌入式系统中flash的数据块进行编码并提取关键信息,减少了索引表的存储空间,实现了索引表加载至ram中,通过索引表对数据进行检索,提升了数据查找效率,缩短了数据查找时间。
5.为解决上述技术问题,本发明实施例的第一方面提供了一种嵌入式系统flash数据快速查询方法,包括如下步骤:
6.获取嵌入式系统ram中的索引表,所述ram中的索引表与所述flash中的索引表相对应;
7.依据所述嵌入式系统flash中数据的数据标志,获取所述ram中的索引表与所述数据标志相对应的flash地址;
8.依据所述flash地址,读取所述flash中对应地址存储的数据。
9.进一步地,所述将所述索引表加载至所述ram之前,还包括:
10.计算flash数据的所述数据标志和对应的所述flash地址;
11.将所述flash数据的所述数据标志和所述flash地址存储至所述flash中的所述索引表中。
12.进一步地,所述将所述flash数据的所述数据标志和所述flash地址存储至所述flash中的所述索引表中之后,还包括:
13.将所述ram中的所述索引表与所述flash中的所述索引表进行同步。
14.相应地,本发明实施例的第二方面提供了一种嵌入式系统flash数据快速查询装置,包括:
15.索引表读取模块,其用于获取嵌入式系统ram中的索引表,所述ram中的索引表与
所述flash中的索引表相对应
16.地址获取模块,其用于依据所述嵌入式系统flash中数据的数据标志,获取所述ram中的索引表与所述数据标志相对应的flash地址;
17.数据读取模块,其用于依据所述flash地址,读取所述flash中对应地址存储的数据。
18.进一步地,所述嵌入式系统flash数据快速查询装置还包括:数据写入模块,所述数据写入模块包括:
19.数据计算单元,其用于计算flash数据的所述数据标志和对应的所述flash地址;
20.数据存储单元,其用于将所述flash数据的所述数据标志和所述flash地址存储至所述flash中的所述索引表中。
21.所述数据写入模块还包括:索引同步单元,其用于将所述ram中的所述索引表与所述flash中的所述索引表进行同步。
22.相应地,本发明实施例的第三方面提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器连接的存储器;其中,所述存储器存储有可被所述一个处理器执行的指令,所述指令被所述一个处理器执行,以使所述至少一个处理器执行如上述任一嵌入式系统flash数据快速查询方法。
23.相应地,本发明实施例的第四方面提供了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述任一嵌入式系统flash数据快速查询方法。
24.本发明实施例的上述技术方案具有如下有益的技术效果:
25.通过对嵌入式系统中flash的数据块进行编码并提取关键信息,减少了索引表的存储空间,实现了索引表加载至ram中,通过索引表对数据进行检索,提升了数据查找效率,缩短了数据查找时间。
附图说明
26.图1是本发明实施例提供的嵌入式系统flash数据快速查询方法流程图;
27.图2是本发明实施例提供的索引示意图;
28.图3是本发明实施例提供的数据写入流程图;
29.图4是本发明实施例提供的数据读取流程图;
30.图5是本发明实施例提供的嵌入式系统flash数据快速查询装置模块框图;
31.图6是本发明实施例提供的数据查询模块框图。
32.附图标记:
33.1、索引表读取模块,2、地址获取模块,3、数据读取模块,4、数据写入模块,41、数据计算单元,42、数据存储单元,43、索引同步单元。
具体实施方式
34.为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
35.请参照图1和图2,本发明实施例的第一方面提供了一种嵌入式系统flash数据快速查询方法,包括如下步骤:
36.步骤s200,获取嵌入式系统ram中的索引表,ram中的索引表与flash中的索引表相对应。
37.步骤s300,依据嵌入式系统flash中数据的数据标志,获取ram中的索引表与数据标志相对应的flash地址;
38.步骤s400,依据flash地址,读取flash中对应地址存储的数据。
39.进一步地,请参照图3,将索引表加载至ram之前,还包括:
40.步骤s110,计算flash数据的数据标志和对应的flash地址;
41.步骤s120,将flash数据的数据标志和flash地址存储至flash中的索引表中。
42.进一步地,步骤s120中的将flash数据的数据标志和flash地址存储至flash中的索引表中之后,还包括:
43.步骤s130,将ram中的索引表与flash中的索引表进行同步。
44.具体的,如图3所示,具体的,系统上电后,先把索引表的信息加载到ram中;准备数据写入,对数据块标志进行提取;根据数据块标志,查找一个新的flash地址用于数据的存储;把数据块写入对应的flash地址;把ram中的索引表和flash中的索引表更新同步。
45.具体的,系统上电后,先把索引表的信息加载到ram中;根据数据标志,用ram中的索引表进行检索,查找对应数据标志的flash地址;根据返回的flash地址,直接读取flash中的数据块。
46.通过上述方法,索引表通过二分法查询,在ram中查询索引表的次数和存储数据块的关系是2
n1
=m1,检索到数据的时间t1=t1*n1+t;其中:m1是存储数据块的个数,n1是查询的次数,t1是查询数据的总时间,t1是一次ram读取时间,t是一次读写flash数据块的时间。若m1=65536则n1=16,一次读写flash数据块时间t=100ms,读取ram的时间可以忽略不计,t1=0则t1=n1*t1+t=16*0ms+100ms=100ms。相比较现在的查询方式t=1600ms,新的算法时间t1=100ms,检索效率有明显的提升
47.相应地,请参照图5,本发明实施例的第二方面提供了一种嵌入式系统flash数据快速查询装置,包括:
48.索引表读取模块1,其用于获取嵌入式系统ram中的索引表,ram中的索引表与flash中的索引表相对应
49.地址获取模块2,其用于依据嵌入式系统flash中数据的数据标志,获取ram中的索引表与数据标志相对应的flash地址;
50.数据读取模块3,其用于依据flash地址,读取flash中对应地址存储的数据。
51.进一步地,请参照图6,嵌入式系统flash数据快速查询装置,还包括:数据写入模块4,数据写入模块包括:
52.数据计算单元41,其用于计算flash数据的数据标志和对应的flash地址;
53.数据存储单元42,其用于将flash数据的数据标志和flash地址存储至flash中的索引表中。
54.进一步地,数据写入模块4还包括:
55.索引同步单元43,其用于对ram中的索引表与flash中的索引表进行同步。
56.相应地,本发明实施例的第三方面提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器连接的存储器;其中,存储器存储有可被一个处理器执行的指令,指令被一个处理器执行,以使至少一个处理器执行如上述任一嵌入式系统flash数据快速查询方法。
57.相应地,本发明实施例的第四方面提供了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述任一嵌入式系统flash数据快速查询方法。
58.本发明实施例旨在保护一种嵌入式系统flash数据快速查询方法及装置,具备如下效果:
59.通过对嵌入式系统中flash的数据块进行编码并提取关键信息,减少了索引表的存储空间,实现了索引表加载至ram中,通过索引表对数据进行检索,提升了数据查找效率,缩短了数据查找时间。
60.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
61.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
62.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
63.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
64.最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1