System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及flash,特别是涉及一种flash数据管理方法及装置。
技术介绍
1、flash是微控制单元(microcontroller unit,mcu)的重要组成部分,用于存储代码、数据等信息。flash是存储芯片的一种,flash存储器又称闪存,它结合了rom(只读存储器)和ram(随机存储器)的长处,不仅具备电子可擦除可编程的性能,还可以快速读取数据,使数据不会因为断电而丢失,常用于存储代码、数据等信息。例如:对于汽车控制器来说,flash存储的数据和代码保证了汽车控制器每次重新上电之后,汽车控制器的控制行为能够满足用户预期。
2、对于flash来说,如何在flash上定位到最新的数据块是一个重要的性能问题。当前技术中,常用的方式是在mcu上电后,预先对flash存储的数据块进行遍历,为每一个数据块建立一个缓存索引表,并将每个数据块建立的一个缓存索引表存储到缓存空间,以便于后续根据每个数据块对应的缓存索引表,实现对flash存储的数据块的定位。
3、综上所述,为每一个数据块建立一个缓存索引表,会占用大量的缓存空间,从而使得mcu可用缓存空间减少,导致mcu性能下降。
技术实现思路
1、基于上述问题,本申请提供了一种flash数据管理方法及装置,减少所占用的缓存空间,保证mcu可用缓存的空间,提升mcu的性能。
2、本申请实施例公开了如下技术方案:
3、第一方面,本申请提供了一种flash数据管理方法,包括:预先将flash存储
4、可选的,所述存储所述第一级表,包括:
5、将所述第一级表存储到flash存储空间或rom存储空间中。
6、可选的,所述子空间包括第一空间和第二空间;所述第一空间的存储空间与所述第二空间的存储空间相同;
7、所述为每个子空间划分出用于存储第二级表的存储空间,包括:
8、为每个子空间的第一空间和第二空间分别划分出用于存储第二级表的存储空间。
9、可选的,所述操作命令包括:写命令;所述解析后的写命令携带待写入数据块的数据;
10、所述基于所述第一级表和所述第二级表,执行解析后的操作命令,包括:
11、基于所述第一级表,确定所述待写入数据块对应的子空间;
12、判断所述对应的子空间是否存在已存储的数据;
13、当所述对应的子空间不存在已存储的数据时,将所述待写入数据块的数据写入所述对应的子空间的第一空间,并将所述待写入数据块的索引号顺序记录到所述对应的子空间的第一空间的第二级表中,所述待写入数据块的索引号位于所述第二级表的首位。
14、可选的,所述方法还包括:
15、当所述对应的子空间存在已存储的数据时,判断所述对应的子空间的剩余空间是否满足存储条件;
16、当所述对应的子空间的剩余空间满足存储条件时,将所述待写入数据块的数据顺序写入所述对应的子空间的第一目标空间,并将所述待写入数据块的索引号顺序记录到所述第一目标空间的第二级表中;所述第一目标空间为所述对应的子空间的第一空间和第二空间中存在已存储的数据的空间。
17、可选的,所述方法还包括:
18、当所述对应的子空间的剩余空间不满足存储条件时,将所述待写入数据块的数据写入所述对应的子空间的第二目标空间,并将所述待写入数据块的索引号顺序记录到所述第二目标空间的第二级表中;所述第二目标空间为所述对应的子空间的第一空间和第二空间中不存在已存储的数据的空间。
19、基于所述对应的子空间的第一目标空间的第二级表,执行所述第一目标空间中存储的其他数据块的搬移。
20、可选的,所述基于所述对应的子空间的第一目标空间的第二级表,执行所述第一目标空间中存储的其他数据块的搬移,包括:
21、基于所述对应的子空间的第一目标空间的第二级表,将所述第一目标空间中存储的其他数据块的最新数据,顺序搬移到所述对应的子空间的第二目标空间,并将所述其他数据块的索引号按照搬移顺序记录到所述第二目标空间的第二级表中;
22、清空所述对应的子空间的第一目标空间中存储的所有数据,并清空所述第一目标空间的第二级表。
23、可选的,所述判断所述对应的子空间的剩余空间是否满足存储条件,包括:
24、判断所述对应的子空间的剩余空间是否大于写入存储空间;所述写入存储空间是根据所述待写入数据块所占用的存储空间和所述对应的子空间的存储空间确定的;所述写入存储空间是所述对应的子空间的存储空间的一半与所述待写入数据块所占用的存储空间之和;
25、当所述对应的子空间的剩余空间大于所述写入存储空间,则所述对应的子空间的剩余空间满足存储条件;
26、当所述对应的子空间的剩余空间不大于所述写入存储空间,则所述对应的子空间的剩余空间不满足存储条件。
27、可选的,所述操作命令包括:读命令;所述解析后的读命令携带待读取数据块;
28、所述基于所述第一级表和所述第二级表,执行解析后的操作命令,包括:
29、基于所述第一级表,确定所述待读取数据块对应的子空间;
30、基于所述对应的子空间的第二级表,确定所述待读取数据块的最新数据的地址信息;
31、基于所述地址信息,读取所述待读取数据块的最新数据。
32、第二方面,本申请提供了一种flash数据管理装置,包括:
33、子空间划分模块,用于预先将flash存储空间划分为多个子空间;
34、子空间分配模块,用于为预设数据块分配对应的子空间,并为一个子空间对应的预设数据块分配索引号;
35、第一级表构建模块,用于根据所述预设数据块、所述对应的子空间以及所述预设数据块的索引号,构建第一级表,并存储所述第一级表;
36、第二级表存储模块,用于为每个子空间划分出用于存储第二级表的存储空间,所述第二级表用于顺序记录写入对应的子空间的数据块的索引号;
37、操作命令接收模块,用于接收操作命令并解析;
38、操作命令执行模块,用于基于所述第一级表和所述第二级表,执行解析后的操作命令。
39、可选的,第一级表构建模块,具体用于将第一级表存储到flash存储空间或rom存储空间中。
40、可选的,子空间包括第一空间和第二空间;第一空间的存储空间与第二空间的存储空间相同;第二级表存储模块,具体用于为每个子空间的第一空间和第二空间分别划分本文档来自技高网...
【技术保护点】
1.一种flash数据管理方法,其特征在于,预先将flash存储空间划分为多个子空间;为预设数据块分配对应的子空间,并为一个子空间对应的预设数据块分配索引号;根据所述预设数据块、所述对应的子空间以及所述预设数据块的索引号,构建第一级表,并存储所述第一级表;为每个子空间划分出用于存储第二级表的存储空间,所述第二级表用于顺序记录写入对应的子空间的数据块的索引号;所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述存储所述第一级表,包括:
3.根据权利要求1所述的方法,其特征在于,所述子空间包括第一空间和第二空间;所述第一空间的存储空间与所述第二空间的存储空间相同;
4.根据权利要求3所述的方法,其特征在于,所述操作命令包括:写命令;所述解析后的写命令携带待写入数据块的数据;
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
7.根据权利要求6所述的方法,其特征在于,所述基于所述对应的子空间的第一目标空间的第二级表,执行所述第一目标空间
8.根据权利要求5-7任意一项所述的方法,其特征在于,所述判断所述对应的子空间的剩余空间是否满足存储条件,包括:
9.根据权利要求1所述的方法,其特征在于,所述操作命令包括:读命令;所述解析后的读命令携带待读取数据块;
10.一种flash数据管理装置,其特征在于,所述装置包括:
...【技术特征摘要】
1.一种flash数据管理方法,其特征在于,预先将flash存储空间划分为多个子空间;为预设数据块分配对应的子空间,并为一个子空间对应的预设数据块分配索引号;根据所述预设数据块、所述对应的子空间以及所述预设数据块的索引号,构建第一级表,并存储所述第一级表;为每个子空间划分出用于存储第二级表的存储空间,所述第二级表用于顺序记录写入对应的子空间的数据块的索引号;所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述存储所述第一级表,包括:
3.根据权利要求1所述的方法,其特征在于,所述子空间包括第一空间和第二空间;所述第一空间的存储空间与所述第二空间的存储空间相同;
4.根据权利要求3所述的方法,其特征在于,所述操作命令包括...
【专利技术属性】
技术研发人员:芦蓉,王庆林,黄钧,
申请(专利权)人:北京紫光芯能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。