一种基于FLASH存储器的数据存储方法技术

技术编号:33851768 阅读:55 留言:0更新日期:2022-06-18 10:38
本发明专利技术公开了一种基于FLASH存储器的数据存储方法,包括以下步骤:将FLASH存储器空间分为两半;当存储器空间的前一半已经写满,则进行垃圾回收,把更新的数据库写入存储器空间的后一半开头,并擦除原有的前一半缓冲区数据;继续在存储器空间的后一半写入数据,当存储器空间的后一半已经写满,把更新的数据库写入存储器空间的前一半开头,并擦除原有的后一半缓冲区数据,继续在存储器空间的前一半写入数据,如此循环。本发明专利技术基于空间利用率的垃圾回收的日志型文件系统数据存储方法,具有开机速度快、避免了缓冲区耗尽导致的文件系统损坏和缓冲区的擦除、写入均衡、使用寿命长特点。使用寿命长特点。使用寿命长特点。

【技术实现步骤摘要】
一种基于FLASH存储器的数据存储方法


[0001]本专利技术涉及电子、通信和计算机
,具体涉及一种基于FLASH存储器的数据存储方法。

技术介绍

[0002]FLASH存储器是一种非易失性存储器,即掉电后仍可长久地保存数据的存储器,被广泛应用于各类便携式数字设备和通信基础设施,例如手机、照相机、音乐播放器、对讲机等。NOR FLASH和NAND FLASH是市场上主流的两种FLASH,两者的区别是存储单元的不同。其中NAND FLASH更具成本优势,使用的范围也更广泛。
[0003]参见图1,以KIOXIA公司的TC58BVG0S3HBAI4芯片为例,说明NAND FLASH的结构和读写操作。它是存储容量为1G比特的NAND FLASH,包含1024块,每块包含64页,每页包含2048字节的信息位,和64字节的校验位。字节和比特的换算关系是1字节等于8比特。
[0004]读写操作遵循以下原则:
[0005]1.读写以页为单位;
[0006]2.每比特可以从1写为0,但是不能从0写为1;
[0007]3.擦除操作以块为单位,擦除后该块数据全部变为1。
[0008]实际应用中必然有从0写为1的需求,这通过先擦除该块数据,再把为0的数据写回FLASH。由于芯片的物理限制,FLASH可擦写的次数大概是10万次,近年来成本低廉的多层工艺FLASH,可擦写次数只有3千次,因此对FLASH的写操作,不可能像计算机内的易失性存储器如SRAM、DDR那样随便。
[0009]为了简便FLASH的读写操作,先后出现了YAFFS、YAFFS2和JFFS、JFFS2等专门用于FLASH的嵌入式文件系统。大大简化了FLASH的读写操作,并提高了FLASH的使用寿命。
[0010]JFFS2采用日志的方式记录数据的操作(增加、删除、修改),当便携式设备不断电长时间工作后,由于数据的变化,例如录音录像或者地理信息的存储,导致存储的数据越来越大。下次开机需要全部载入,耗费的时间较多,导致开机速度变慢。所以JFFS2多用于对开机速度不敏感的通信基础设施。便携式嵌入式设备不常用该文件系统。
[0011]从YAFFS2设计的原理来看,它大部分时间通过日志的方式记录数据的操作,并以较低的频率(即基于时间)进行一个基于YAFFS2在FLASH中的缓存进行的垃圾回收操作,把缓冲数据精简后写入一个新的块,并将缓存集中擦除。这可使便携式嵌入式设备开机读取FLASH时,不需要读取全部的FLASH,开机速度较快。并且将擦写FLASH的操作均摊到每个块中,提高了FLASH的使用寿命。
[0012]但由于YAFFS2是一个通用的文件系统,在面向具体问题时,有时候面临垃圾回收不及时导致缓冲耗尽、文件系统被破坏的局面。虽然YAFFS2提供一些可修改的参数配置以优化此问题,但重现问题耗时长、数据被破坏后难以恢复历史操作用于分析等问题。

技术实现思路

[0013]本专利技术的主要目的是,针对现有技术的问题,提供一种基于FLASH存储器的数据存储方法,具有开机速度快、避免了缓冲区耗尽导致的文件系统损坏和缓冲区的擦除、写入均衡、使用寿命长特点。
[0014]本专利技术采用的技术方案如下:
[0015]一种基于FLASH存储器的数据存储方法,FLASH存储器存储容量为flash[M][N][L]字节,包含M偶数个块,每个块包含N页,每页包含L字节,数据库存储容量为data[m][n]字节,存放记录,每次数据库操作记录大小为k字节,FLASH存储器存储容量M
×
N
×
L/2为数据库存储容量n
×
k的整数倍,所述基于FLASH存储器的数据存储方法包括以下步骤:
[0016]S201、将FLASH存储器空间对半分为包含第1块至第M/2块的第一存储器空间和包含第M/2+1块至第M块的第二存储器空间;
[0017]S202、从第一存储器空间的第1块第1页开始写入k字节最新数据库操作记录,第一存储器空间的第1块第1页写满后再从第一存储器空间的第1块第2页开始,直至第一存储器空间的第N页写满;
[0018]S203、第一存储器空间的第1块写满后,下次从第一存储器空间的第2块第1页开始写入数据库操作记录,直至第一存储器空间的第M/2块写满;
[0019]S204、将第一存储器空间第1块至第M/2块中数据库操作记录最新状态一次性写入第二存储器空间的第M/2+1块,擦除第一存储器空间的第1块至第M/2块;
[0020]S205、继续从第二存储器空间的第M/2+1块未使用的部分写入数据库操作记录;
[0021]S206、第二存储器空间的第M/2+1块写满后,下次从第二存储器空间的第M/2+2块第1页开始写入数据库操作记录,直至第二存储器空间的第M块写满;
[0022]S207、将第二存储器空间的第M/2+1块至第M块中数据库操作记录最新状态一次性写入第一存储器空间的第1块,擦除第二存储器空间的第M/2+1块至第M块,跳转至第S202。
[0023]可选的,所述数据库操作为数据库记录增加或删除或修改。
[0024]可选的,所述FLASH存储器存储容量为flash[6][64][2048]字节,数据库存储容量为data[1024][128]字节,每次数据库操作记录大小为k=128字节。
[0025]可选的,所述FLASH存储器每页包含L=P+Q字节,其中P为信息位,Q为校验位。
[0026]可选的,所述FLASH存储器存储容量为flash[6][64][2048+64]字节,其中,每页包含2048字节信息位,64字节校验位,数据库存储容量为data[1024][128]字节,每次数据库操作记录大小为k=128字节。
[0027]可选的,所述校验位采用前向纠错码进行检错纠错。
[0028]可选的,所述FLASH存储器采用NAND FLASH实现。
[0029]可选的,所述NAND FLASH采用TC58BVG0S3HBAI4芯片实现。
[0030]从以上技术方案可以看出,本专利技术具有以下优点:基于空间利用率的垃圾回收的日志型文件系统的数据存储方法,具有开机速度快、避免了缓冲区耗尽导致的文件系统损坏和缓冲区的擦除、写入均衡、使用寿命长特点。
附图说明
[0031]为了更清楚地说明本专利技术实施例技术方案,下面将对实施例和现有技术描述中所
需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0032]图1是本专利技术1Gb NAND FLASH存储阵列结构示意图;
[0033]图2本专利技术一实施例基于FLASH存储器的数据存储方法流程图;
[0034]图3本专利技术一实施例基于1Gb NAND FLASH数据存储方法流程本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于FLASH存储器的数据存储方法,FLASH存储器存储容量为flash[M][N][L]字节,包含M偶数个块,每个块包含N页,每页包含L字节,数据库存储容量为data[m][n]字节,存放记录,每次数据库操作记录大小为k字节,FLASH存储器存储容量M
×
N
×
L/2为数据库存储容量n
×
k的整数倍,其特征在于,所述基于FLASH存储器的数据存储方法包括以下步骤:S201、将FLASH存储器空间对半分为包含第1块至第M/2块的第一存储器空间和包含第M/2+1块至第M块的第二存储器空间;S202、从第一存储器空间的第1块第1页开始写入k字节最新数据库操作记录,第一存储器空间的第1块第1页写满后再从第一存储器空间的第1块第2页开始,直至第一存储器空间的第N页写满;S203、第一存储器空间的第1块写满后,下次从第一存储器空间的第2块第1页开始写入数据库操作记录,直至第一存储器空间的第M/2块写满;S204、将第一存储器空间第1块至第M/2块中数据库操作记录最新状态一次性写入第二存储器空间的第M/2+1块,擦除第一存储器空间的第1块至第M/2块;S205、继续从第二存储器空间的第M/2+1块未使用的部分写入数据库操作记录;S206、第二存储器空间的第M/2+1块写满后,下次从第二存储器空间的第M/2+2块第1页开始写入数据库操作记录,直至第二存储器空间的第M块写满;S207、将第二存储器空间的第M/2+...

【专利技术属性】
技术研发人员:宋洋军赖镜灵
申请(专利权)人:福建科立讯通信有限公司
类型:发明
国别省市:

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

1