[发明专利]基于闪存的数据存储方法和装置有效
申请号: | 201810361678.0 | 申请日: | 2018-04-20 |
公开(公告)号: | CN108710578B | 公开(公告)日: | 2022-07-26 |
发明(设计)人: | 余朝亮;艾骏 | 申请(专利权)人: | 深圳市战音科技有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 樊思远 |
地址: | 518000 广东省深圳市宝安区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 闪存 数据 存储 方法 装置 | ||
1.基于闪存的数据存储方法,其特征在于:
所述闪存的存储空间被分为索引区和数据区,索引区和数据区分别包括不同的块,所述索引区包括具有1个以上的索引项的索引表,所述索引项包括用户数据标识、用户数据大小和用户数据位置;
其中,写入用户数据的操作包括以下步骤:
A1.基于索引表,获取数据区的起始块的位置、第一个空闲页的位置和剩余空闲页数;
A2.比较待写入的用户数据的大小和所述数据区的剩余空闲页的大小,如果待写入的用户数据的大小小于数据区的剩余空闲页的大小,则从数据区的第一个空闲页起写入该用户数据;否则将先备份有效数据,再从数据区的起始块起顺次擦除相当于所述闪存的数据区所占块数的所有的块,再将备份的有效数据写入从数据区的起始块起的页,再将所述待写入的用户数据写入后续空闲页;
A3.更新索引表;
查找在索引表内是否存在其用户数据标识对应为写入的用户数据分配的标识的索引项,如果不存在该查找的索引项,则基于为写入的用户数据分配的标识、大小和位置而创建新的索引项;
B3.在创建新的索引项时,如果索引表的索引项数未达到上限,则在索引表的最后一项后添加所述新的索引项,以形成新的索引表;否则将索引表中有效的索引项读入内存,再擦除索引区,并从索引区的起始页起写入有效的索引项和所述新的索引项,以形成新的索引表。
2.根据权利要求1所述的方法,其中,更新索引表的步骤包括以下子步骤:
B1.读取索引区内的索引表;
B2.查找在所述索引表内是否存在其用户数据标识对应为写入的用户数据分配的标识的索引项,如果存在该查找的索引项,则基于为写入的用户数据分配的大小和位置而更新该查找的索引项,以形成新的索引表;
B4.更新索引区。
3.根据权利要求1所述的方法,其中,读取用户数据操作包括以下步骤:
C1.读取索引区内的索引表;
C2.查找在所述索引表内其用户数据标识对应待读取的用户数据的标识的索引项;
C3.基于该查找的索引项的用户数据大小和用户数据位置,读取对应的用户数据。
4.根据权利要求1所述的方法,其特征在于:在写入用户数据时,如果待写入的用户数据的大小大于所述数据区的剩余空闲页的大小的次数大于预设的阈值,且剩余空闲页的大小大于索引区的大小时,将索引项写入剩余空闲页,以作为新的索引区。
5.根据权利要求1-4中任一项所述的方法,其中,所述索引项的用户数据大小为用户数据的页数;所述索引项的所述用户数据位置为所述用户数据的起始页距离所述数据区的起始页的偏移页数。
6.基于闪存的数据存储装置,其特征在于:
所述闪存的存储空间被分为索引区和数据区,索引区和数据区分别包括不同的块,索引区包括具有1个以上的索引项的索引表,所述索引项包括用户数据标识、用户数据大小和用户数据位置,
所述数据存储装置包括用户数据写入模块,
所述用户数据写入模块包括以下子模块:
第一写入子模块,用于基于索引表,获取数据区的起始块的位置、第一个空闲页的位置和剩余空闲页数;
第二写入子模块,用于比较待写入的用户数据的大小和所述数据区的剩余空闲页的大小,如果待写入的用户数据的大小小于数据区的剩余空闲页的大小,则从数据区的第一个空闲页起写入该用户数据;否则将先备份有效数据,再从数据区的起始块起顺次擦除相当于所述闪存的数据区所占块数的所有的块,再将备份的有效数据写入从数据区的起始块起的页,再将所述待写入的用户数据写入后续空闲页;
第三写入子模块,用于更新索引表。
7.根据权利要求6所述的装置,其中,所述数据存储装置还包括索引表更新模块,
所述索引表更新模块包括以下子模块:
第一更新子模块,用于读取索引区内的索引表;
第二更新子模块,用于查找在所述索引表内是否存在其用户数据标识对应为写入的用户数据分配的标识的索引项,如果存在该查找的索引项,则基于为写入的用户数据分配的大小和位置而更新该查找的索引项,以形成新的索引表;如果不存在该查找的索引项,则基于为写入的用户数据分配的标识、大小和位置而创建新的索引项;
第三更新子模块,用于在创建新的索引项时,如果索引表的索引项数未达到上限,则在索引表的最后一项后添加所述新的索引项,以形成新的索引表;否则将索引表中有效的索引项读入内存,再擦除索引区,并从索引区的起始页起写入有效的索引项和所述新的索引项,以形成新的索引表;
第四更新子模块,用于更新索引区。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市战音科技有限公司,未经深圳市战音科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810361678.0/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置