基于闪存的数据写入方法技术

技术编号:28622783 阅读:7 留言:0更新日期:2021-05-28 16:18
本申请是一种基于闪存的数据写入方法,其在设置对应索引区与数据区的标签,每一类型的数据对应一个唯一的标签,借此形成数据框架,不但有助于确实在写入数据前进行必要区域擦除操作,在新增一类型存储数据仅需添加对应的新标签与定义其内容的常量,有益于对应需求而扩展或缩减数据整体的架构形式。

【技术实现步骤摘要】
基于闪存的数据写入方法
本专利技术涉及存储器存储技术,特别是关于一种基于闪存的数据写入方法。
技术介绍
一般而言,需要运用到快速存储技术的组件主要有闪存(FlashMemory)及其常应用上的单片机。目前市面上大多数的单片机的内存最大一般都不超过500K,代码空间存储空间大多数都为1M以下。当产品功能复杂,功能所需的数据量大时,内存、编码空间不充足等硬件的限制下,更多地只能通过合适的方法架构和软件优化来解决。当所需产品要有掉电不丢失数据的功能,且数据量较大时需要用到闪存(FlashMemory)这类型的存储器(如智能手环产品需要在无连接APP的情况下,缓存1-2周的运动数据)。现行的闪存大体分为NandFlash和NorFlash,但不论那种类型,在对闪存进行写入操作前,都要先进行擦除操作,而擦除有最小单元的限制,如1K、4K不等,擦写寿命也有限制,常态为10万次,但因应产品与功能需求,也有100万次的级数。由于公司都会对产品成本有所要求,所以闪存的容量选型是越小越好。但由于擦除操作的最小单元都是大于1个字节,所以软件开发时需要权衡闪存的容量、擦除的最小单位、擦写寿命,还有实际数据所需容量、产品设计的寿命和硬件成本来综合开发。最常见的闪存写入数据的作法为,采用数据全部读取并更新、缓存到内存,擦除完闪存对应存储区后再一次性写入的话。但是,这种作法会消耗很大的内存,而且很浪费闪存的擦写寿命。况且产品功能所需的数据容量往往都会大于主控的内存,故实用性较差。
技术实现思路
为了解决上述技术问题,本申请的目的在于,提供一种结合标签而形成框架式数据,且能确实在写入数据前进行必要区域擦除操作的基于闪存的数据写入方法。本申请的目的及解决其技术问题是采用以下技术方案来实现的。依据本申请提出的一种基于闪存的数据写入方法,所述闪存的存储空间划分大小相同或相近的多个区块,所述多个区块分为索引区和数据区,并分别储存对应的数据及其索引值,索引区包括每一类型的数据对应的标签,所述标签至少包括数据存储地址与索引值存储地址。所述方法包括:取得预定储存数据对应的对应标签;判断所述对应标签为有效时,依据所述对应标签记载的数据区起始地址、数据存储地址、索引值存储地址与所述预定储存数据的长度,分析所述预定储存数据的存储地址及索引地址是否会进入所述对应标签在所述索引区与所述数据区中,记载数值区块的次一区块,以决定是否擦除所述次一区块数据;存储所述预定储存数据及更新所述对应标签。本申请解决其技术问题还可采用以下技术措施进一步实现。在本申请的一实施例中,取得预定储存数据对应的对应标签之前,或者,存储所述预定储存数据之前,还包括更新所述对应标签的索引地址,其包括如下步骤:取得所述对应标签在所述索引区的索引地址的更新指示;分析索引更新地址是否介于所述对应标签所记载在所述索引区的起始地址与结束地址,以判定是否更新所述对应标签记载的索引地址。在本申请的一实施例中,所述对应标签记载最新存储数据地址与最旧存储数据地址,其中,取得预定储存数据对应的对应标签之前,或者,存储所述预定储存数据之前,还包括更新所述最新存储数据地址,其包括如下步骤:取得所述最新存储数据地址的更新指示;分析数据更新地址是否介于所述对应标签所记载在所述数据区的可存储范围的起始地址与结束地址,以判定是否更新所述对应标签记载的最新存储数据地址。在本申请的一实施例中,所述对应标签记载最新存储数据地址与最旧存储数据地址,其中,取得预定储存数据对应的对应标签之前,或者,存储所述预定储存数据之前,还包括更新所述最旧存储数据地址,其包括如下步骤:取得所述最旧存储数据地址的更新指示;当判定数据更新地址介于所述对应标签所记载在所述数据区的可存储范围的起始地址与结束地址时,分析所述数据更新地址与所述最新存储数据地址的占用空间是否超过所述数据区的可存储范围的容量;当超出容量时,丢弃所述数据更新地址,并依据所述最新存储数据地址与所述数据区的可存储范围重新定义所述数据更新地址;当未超出容量时,将所述数据更新地址指定至所述最旧存储数据地址。在本申请的一实施例中,当前读取存储数据地址存储于内存,其中,取得预定储存数据对应的对应标签之前,或者,存储所述预定储存数据之后,还包括载入所述当前读取存储数据地址于所述对应标签,其包括如下步骤:当判定自所述内存取得的所述当前读取存储数据地址介于所述对应标签所记载在所述数据区的可存储范围的起始地址与结束地址时,载入所述当前读取存储数据地址于所述对应标签。在本申请的一实施例中,所述对应标签记载最新存储数据地址与最旧存储数据地址,所述方法还包括:当判定所述当前读取存储数据地址及其对应数据被指定删除时,将所述最旧存储数据地址记载至所述当前读取存储数据地址。在本申请的一实施例中,取得预定储存数据对应的对应标签之前,还包括初始化标签步骤:取得标签;分析所述标签记载在所述索引区的起始地址与结束地址的范围内是否存在索引信息;当判断无索引信息时,对所述标签对应在索引区及数据区的地址进行擦除,并将所述标签的索引地址更新为在所述索引区的起始地址,及将所述标签记载的存偖数据地址更新为在所述数据区的起始地址;当判断存在索引信息时,依据所述标签记载的当前读取存储数据地址读取二笔索引信息;当第一笔索引信息为正确,第二笔索引信息为空信息时,依据所述第一笔索引信息更新所述标签的索引地址,最新存储数据地址与最旧存储数据地址,并将所述标签设定为可有效被使用。在本申请的一实施例中,更新所述对应标签的步骤包括:分析所述对应标签是否有效;当所述对应标签为有效时,分析所述索引地址是否会进入所述对应标签在所述索引区中,记载数值区块的次一区块,以决定是否擦除所述次一区块数据;将存储于内存里的存储数据地址,保存至所述对应标签的存储数据地址。在本申请的一实施例中,所述对应标签记载当前读取存储数据地址与最旧存储数据地址,其中,取得预定储存数据对应的对应标签之前,或者,存储所述预定储存数据之后,还包括读取最旧存储数据步骤,其包括如下:取得所述读取最旧存储数据的指示;分析所述对应标签是否有效;当所述对应标签为有效时,分析当前读取标志以决定是否将所述对应标签记载的最旧存储数据地址载入所述当前读取存储数据地址;将所述当前读取存储数据地址载入内存;依据所述对应标签记载的数据长度进行数据偏移,并判断偏移后的地址是否超出所述对应标签记载在所述数据区的可存储范围的结束地址,以决定是否将所述当前读取存储数据地址调整至所述数据区的可存储范围的起始地址;依据结果更新所述当前读取存储数据地址。在本申请的一实施例中,所述对应标签记载最新存储数据地址与最旧存储数据地址,其中,取得预定储存数据对应的对应标签之前,或者,存储所述预定储存数据之后,还包括读取最新存储数据步骤,其包括如下:取得所述读取最新存储数据的指示;分析所述对应标签是否有效;当所述对应标签为有效时,将所述对应标签记载的最新存储数据地址及数据长度载入内存。在本申请的一实施例中,取得预定储存数据对应的对应标签之前,或者,存储所述本文档来自技高网...

【技术保护点】
1.一种基于闪存的数据写入方法,所述闪存的存储空间划分大小相同或相近的多个区块,所述多个区块分为索引区和数据区,并分别储存对应的数据及其索引值,索引区包括每一类型的数据对应的标签,所述标签至少包括数据存储地址与索引值存储地址,其特征在于,所述方法包括:/n取得预定储存数据对应的对应标签;/n判断所述对应标签为有效时,依据所述对应标签记载的数据区起始地址、数据存储地址、索引值存储地址与所述预定储存数据的长度,分析所述预定储存数据的存储地址及索引地址是否会进入所述对应标签在所述索引区与所述数据区中,记载数值区块的次一区块,以决定是否擦除所述次一区块数据;/n存储所述预定储存数据及更新所述对应标签。/n

【技术特征摘要】
1.一种基于闪存的数据写入方法,所述闪存的存储空间划分大小相同或相近的多个区块,所述多个区块分为索引区和数据区,并分别储存对应的数据及其索引值,索引区包括每一类型的数据对应的标签,所述标签至少包括数据存储地址与索引值存储地址,其特征在于,所述方法包括:
取得预定储存数据对应的对应标签;
判断所述对应标签为有效时,依据所述对应标签记载的数据区起始地址、数据存储地址、索引值存储地址与所述预定储存数据的长度,分析所述预定储存数据的存储地址及索引地址是否会进入所述对应标签在所述索引区与所述数据区中,记载数值区块的次一区块,以决定是否擦除所述次一区块数据;
存储所述预定储存数据及更新所述对应标签。


2.如权利要求1所述基于闪存的数据写入方法,其特征在于,取得预定储存数据对应的对应标签之前,或者,存储所述预定储存数据之前,还包括更新所述对应标签的索引地址,其包括如下步骤:
取得所述对应标签在所述索引区的索引地址的更新指示;
分析索引更新地址是否介于所述对应标签所记载在所述索引区的起始地址与结束地址,以判定是否更新所述对应标签记载的索引地址。


3.如权利要求1所述基于闪存的数据写入方法,其特征在于,所述对应标签记载最新存储数据地址与最旧存储数据地址,其中,取得预定储存数据对应的对应标签之前,或者,
存储所述预定储存数据之前,还包括更新所述最新存储数据地址,其包括如下步骤:
取得所述最新存储数据地址的更新指示;
分析数据更新地址是否介于所述对应标签所记载在所述数据区的可存储范围的起始地址与结束地址,以判定是否更新所述对应标签记载的最新存储数据地址。


4.如权利要求1所述基于闪存的数据写入方法,其特征在于,所述对应标签记载最新存储数据地址与最旧存储数据地址,其中,取得预定储存数据对应的对应标签之前,或者,
存储所述预定储存数据之前,还包括更新所述最旧存储数据地址,其包括如下步骤:
取得所述最旧存储数据地址的更新指示;
当判定数据更新地址介于所述对应标签所记载在所述数据区的可存储范围的起始地址与结束地址时,分析所述数据更新地址与所述最新存储数据地址的占用空间是否超过所述数据区的可存储范围的容量;
当超出容量时,丢弃所述数据更新地址,并依据所述最新存储数据地址与所述数据区的可存储范围重新定义所述数据更新地址;
当未超出容量时,将所述数据更新地址指定至所述最旧存储数据地址。


5.如权利要求1所述基于闪存的数据写入方法,其特征在于,当前读取存储数据地址存储于内存,其中,取得预定储存数据对应的对应标签之前,或者,存储所述预定储存数据之后,还包括载入所述当前读取存储数据地址于所述对应标签,其包括如下步骤:
当判定自所述内存取得的所述当前读取存储数据地址介于所述对应标签所记载在所述数据区的可存储范围的起始地址与结束地址时,载入所述当前读取存储数据地址于所述对应标签。


6.如权利要求5所述基于闪存的数据写入方法,其特征在于,所述对应标签记载最新存储数据地址与最旧存储数据地址,所述方法还包括:
当判定所述当前读...

【专利技术属性】
技术研发人员:罗丰泽李振江
申请(专利权)人:广东菲氏科技有限公司
类型:发明
国别省市:广东;44

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1