[发明专利]基于闪存的数据存储方法和装置有效
申请号: | 201810361678.0 | 申请日: | 2018-04-20 |
公开(公告)号: | CN108710578B | 公开(公告)日: | 2022-07-26 |
发明(设计)人: | 余朝亮;艾骏 | 申请(专利权)人: | 深圳市战音科技有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 樊思远 |
地址: | 518000 广东省深圳市宝安区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 闪存 数据 存储 方法 装置 | ||
本发明提供了基于闪存的数据存储方法,闪存分为索引区和数据区,写入用户数据的操作包括以下步骤:基于索引表获取数据区的起始块的位置、第一个空闲页的位置和剩余空闲页数;如果待写入的用户数据的大小小于数据区的剩余空闲页的大小,则从数据区的第一个空闲页起写入该用户数据;否则将先备份有效数据,再从数据区的起始块起顺次擦除相当于所述闪存的数据区所占块数的所有的块,再将备份的有效数据写入从数据区的起始块起的页,再将所述待写入的用户数据写入后续空闲页;更新索引表。还提供了基于闪存的数据存储装置,以克服闪速存储器的数据管理系统读取慢,大幅降低存储器寿命的问题。
技术领域
本发明涉及存储器管理方法,特别涉及一种基于闪存的数据存储方法和装置。
背景技术
随着物联网的兴起,智能硬件给人们生活带来很多便利。智能硬件需要在本地储存一些设备数据,因考虑成本,其中很多智能硬件都是使用RTOS实时操作系统,挂载SPIFLASH来作为储存介质。但是因为SPI FLASH的一些特性(例如在基于NOR FLASH或者NANDFLASH技术的SPI FLASH芯片中,“块”是擦除操作的基本单位,每块大小一般是4KB,在擦除操作时将快内所有的位置置“1”;页是读写操作的最小单位,然后每块又分成页,每页大小一般是256字节,要修改SPI FLASH芯片中一个字节,必须重写整个数据块。不能直接覆盖写入,只能是擦除后再写),导致储存本地数据时,需要执行以下4个步骤:将闪存中的数据块读入内存;在内存中修改数据;擦除闪存的数据块;将修改后的内存中的数据存入闪存中的数据块。最终才能完成数据保存。这样操作方式具有以下缺点:耗时,由于SPI FLASH的最小块为4K,在修改的数据量较小时,需要同时操作以4K为单位的数据(即一整个数据块);降低SPI FLASH的寿命,由于SPI FLASH的块寿命是由擦除与写入的次数决定,传统的文件管理;容易丢失数据,由于这类产品随时都可能掉电,如果在擦除完成,还没有写入时掉电的话,将会丢失所有数据。
综上所述,智能硬件产品需要一种高效、稳定、可靠的存储管理方法来对小型文件(数据)的存储和读取进行管理。
发明内容
本公开的目的在于提供一种基于闪存的数据存储方法和装置,克服SPI FLASH等基于闪速存储器(闪存)的数据(文件)管理方法大幅降低存储器寿命的技术问题。
为了解决上述问题,根据本公开的第一个方面,提供了一种基于闪存的数据存储方法,其中闪存的存储空间被分为索引区和数据区,索引区和数据区分别包括不同的块,索引区包括具有1个以上的索引项的索引表,索引项包括用户数据标识、用户数据大小和用户数据位置;其中,写入用户数据的操作包括以下步骤:A1.基于索引表,获取数据区的起始块的位置、第一个空闲页的位置和剩余空闲页数;A2.比较待写入的用户数据的大小和数据区的剩余空闲页的大小,如果待写入的用户数据的大小小于数据区的剩余空闲页的大小,则从数据区的第一个空闲页起写入该用户数据;否则将先备份有效数据,再从数据区的起始块起顺次擦除相当于所述闪存的数据区所占块数的所有的块,再将备份的有效数据写入从数据区的起始块起的页,再将所述待写入的用户数据写入后续空闲页;A3.更新索引表。
进一步地,更新索引表的步骤包括以下子步骤:B1.读取索引区内的索引表;B2.查找在索引表内是否存在其用户数据标识对应为写入的用户数据分配的标识的索引项,如果存在该查找的索引项,则基于为写入的用户数据分配的大小和位置而更新该查找的索引项,以形成新的索引表;如果不存在该查找的索引项,则基于为写入的用户数据分配的标识、大小和位置而创建新的索引项;B3.在创建新的索引项时,如果索引表的索引项数未达到上限,则在索引表的最后一项后添加所述新的索引项,以形成新的索引表;否则将索引表中有效的索引项读入内存,再擦除索引区,并从索引区的起始页起写入有效的索引项和所述新的索引项,以形成新的索引表;B4.更新索引区。
进一步地,读取用户数据操作包括以下步骤:C1.读取索引区内的索引表;C2.查找在索引表内其用户数据标识对应待读取的用户数据的标识的索引项;C3.基于该查找的索引项的用户数据大小和用户数据位置,读取对应的用户数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市战音科技有限公司,未经深圳市战音科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810361678.0/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置