一种Nandflash内存数据管理的方法技术

技术编号:14904636 阅读:31 留言:0更新日期:2017-03-29 19:35
本发明专利技术公开了一种Nandflash内存数据管理的方法;包括下述步骤:S1:对内存块进行分区并对数据内存块进行初始化;S2:对数据参数进行初始化;S3:对数据进行写入操作;S4:对数据参数进行更新处理;S5:对数据进行读取操作Nandflash用于存储数据,对现在设备普遍要求的大容量存储空间适应性强,且价格大众化能普遍接受。此新型基于Nandflash内存数据管理的方法正是在管理数据应用中有较好的便利性和实用性,针对Nandflash内存分块存储,跨块操作时易出现坏块和频繁擦除内存块,影响重要数据存储的特点,结合实际存储数据内容和大小进行有效的数据分区管理,定义统一操作接口方便代码移植。

【技术实现步骤摘要】
一种Nandflash内存数据管理的方法
本专利技术属于Nandflash内存分区管理
,更具体地,涉及一种Nandflash内存数据管理的方法。
技术介绍
Nandflash写入速度快、芯片面积小,特别是大容量使其优势明显。页是Nandflash中的基本存贮单元,一页一般为512B(也有2kB每页的largepageNandflash),多个页面组成块。不同存储器内的块内页面数不尽相同,通常以16页或32页比较常见。块容量计算公式比较简单,就是页面容量与块内页面数的乘积。根据FLASHMemory容量大小,不同存储器中的块、页大小可能不同,块内页面数也不同。Nandflash存储器由多个块串行排列组成。实际上,Nand型的FlashMemory可认为是顺序读取的设备,仅用8b的I/O端口就可以存取按页为单位的数据。Nandflash在读和擦写文件、特别是连续的大文件时速度相当快,而操作Nandflash时会出现一些异常数据现象导致保存重要数据时容易出现问题,根据设备应用场景会引发一系列问题,最常见问题就是读写数据时内存块损坏导致数据丢失或存储失效。
技术实现思路
针对现有技术的缺陷,本专利技术的目的在于提供一种Nandflash内存数据管理的方法,旨在解决现有技术中读写数据时内存块损坏导致数据丢失或存储失效的问题。本专利技术提供的Nandflash内存数据管理的方法,包括下述步骤:S1:对内存块进行分区并对数据内存块进行初始化;S2:对数据参数进行初始化;S3:对数据进行写入操作;S4:对数据参数进行更新处理;S5:对数据进行读取操作。更进一步地,根据以下原则对内存块进行分区:按照实际需要存储的数据类型进行分类,根据数据容量需求进行单个内存块内最大容量的数据分配,并计算所需求数据容量下的最大内存块数目。更进一步地,所述内存块分为:数据参数区、A类数据区、B类数据区、C类数据区、D类数据区、数据备份区和数据参数备份区;各个区的容量分别为:4K*H、4K*S1、4K*S2、4K*S3、4K*S4、4K*S5和4K*H;其中,其中,K为Kbyte,一千字节,S1、S2、S3、S4、S5分别为当前数据需要存储的容量,H为存储数据类型的数量。更进一步地,在步骤S1中,对数据内存块进行初始化具体为:根据数据内存块分区定义每种数据类型起始地址和结束地址;根据所述起始地址和结束地址来判断初始化是否成功,若是,则对内存块进行擦除操作并创建类型数据参数管理区后结束;若否,则结束。更进一步地,步骤S2中,对数据参数进行初始化具体为:根据数据类型查询当前数据参数管理区当前数据区是否有效且数据块是否损坏,如果正常且数据校验正确,则读取当前数据参数内容返回;如果异常且数据校验错误,则查询当前数据类型对应的备份区域;读取备份区域校验数据,如果异常则重新创建数据参数管理区。更进一步地,步骤S3中,写入数据具体为:从数据参数管理区获取数据参数,根据当前存储的管理参数查找当前存储的地址位置;判断当前待存储数据内容是否超过当前块的剩余存储区域;如果未超过,则获取数据校验值,将当前数据写入备份区域,判断当前块是否损坏,如果损坏则擦除当前数据块,读取备份区域数据,将数据写入到当前数据块中;如果正常则直接写入当前数据块;将数据管理参数更新;如果数据长度超过,则判断存储区域是否超过当前块剩余存储区域,如果成立,则存储地址移动到下一个存储块,写入数据及更新数据管理区;如果未成立则判断是否超过存储地址的最后一个存储块,超过则存储地址移动到第一个存储块首地址,做数据覆盖处理,擦除当前块写入数据及更新数据管理区。更进一步地,步骤S4中,对数据参数进行更新具体为:读取当前数据管理区参数,校验当前数据参数,判断当前存储地址是否超过当前存储块区域,如果超过则将数据写入数据参数备份区域,判断当前块是否损坏,擦除当前数据块,读取备份区域数据参数,写入到当前数据区域。如果未超过当前存储区域,则获取数据校验值,写入到当前数据参数管理区域。更进一步地,步骤S5中,读取数据具体为:从数据区域读取数据时,判断需要读取的数据长度是否超过数据总量,如果超过则返回错误;如果未超过,则从数据管理参数区获取当前数据存储地址和首次存储的数据地址,根据读取的数据地址判断读取操作是否跨内存块,如果跨块,则根据分区数据地址计算当前有效存储起始地址及数据区块号,读取数据到缓存。如果未跨块,则直接读取数据到缓存。本专利技术具有以下几方面的优点:(1)本专利技术在使用过程中根据需要增加新的数据时,可以按照原先定义的分区方式规划数据内存空间,使得数据分区清晰;同时在数据内存管理方面大大降低了开发人员对芯片内存的管理难度,方便增加新的存储数据类型。(2)本专利技术中由于代码为标准C语言类型编写和数据定义,在比如ucos、RTOS、linux等操作系统上可以很好实现兼容,无需对其中的内容做改动便可实现调用,移植性好,方便在其他微处理器系统上使用。(3)本专利技术中由于代码内部按照优化算法处理数据的定义、存储、更新和删除等常用数据管理方法,针对比如数据管理方面并不很熟练的开发人员,因为每个API都有专门详细的注释和定义,所以只需要简单外部调用即可;代码封装性好,方便软件开发人员管理和使用。(4)本专利技术针对Nandflash数据存储特点,在操作内存块时相对容易产生坏块或者数据读写的错误异常,专门编写控制算法来进行数据读写的校验,实现最大程度的降低操作数据时的异常风险,对重要数据实现完好保存并正常读写;大大降低操作Nandflash数据存储时的数据异常风险。附图说明图1为Nandflash内存块分区图;其中,S1、S2、S3、S4、S5为当前数据需要存储的容量;H表示存储数据类型的数量;图2为本专利技术实施例提供的Nandflash内存数据管理的方法中数据内存块初始化流程图;图3为本专利技术实施例提供的Nandflash内存数据管理的方法中数据参数初始化流程图;图4为本专利技术实施例提供的Nandflash内存数据管理的方法中数据写入流程图;图5为本专利技术实施例提供的Nandflash内存数据管理的方法中数据管理参数流程图;图6为本专利技术实施例提供的Nandflash内存数据管理的方法中数据读取流程图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术提供了一种新型基于Nandflash内存数据管理的方法。本专利技术包括Nandflash内存分区,数据内存块初始化,数据管理参数初始化,分区内存数据写入,分区内存数据读取,分区数据管理参数更新;本专利技术以微处理器系统为核心,针对产品所产生的有效数据实现快速的正确的写入与读取。如图1所示,按照实际需要存储的数据类型进行分类,根据数据容量需求进行单个内存块内最大容量的数据分配,计算所需求数据容量下的最大内存块数目。根据数据类型分配一定的数据备份区域以便内存块数据异常时进行数据中转处理。如图2所示,数据内存块初始化处理,根据数据内存块分区定义每种数据类型起始和结束地址,创建数据参数管理区,对应各自数据类型。如图3所示,根据数据类型查询当前数据参数管理区当前数据区是本文档来自技高网...
一种Nandflash内存数据管理的方法

【技术保护点】
一种Nandflash内存数据管理的方法,其特征在于,包括下述步骤:S1:对内存块进行分区并对数据内存块进行初始化;S2:对数据参数进行初始化;S3:对数据进行写入操作;S4:对数据参数进行更新处理;S5:对数据进行读取操作。

【技术特征摘要】
1.一种Nandflash内存数据管理的方法,其特征在于,包括下述步骤:S1:对内存块进行分区并对数据内存块进行初始化;S2:对数据参数进行初始化;S3:对数据进行写入操作;S4:对数据参数进行更新处理;S5:对数据进行读取操作。2.如权利要求1所述的方法,其特征在于,根据以下原则对内存块进行分区:按照实际需要存储的数据类型进行分类,根据数据容量需求进行单个内存块内最大容量的数据分配,并计算所需求数据容量下的最大内存块数目。3.如权利要求2所述的方法,其特征在于,所述内存块分为:数据参数区、A类数据区、B类数据区、C类数据区、D类数据区、数据备份区和数据参数备份区;各个区的容量分别为:4K*H、4K*S1、4K*S2、4K*S3、4K*S4、4K*S5和4K*H;其中,K为Kbyte,S1、S2、S3、S4、S5分别为当前数据需要存储的容量,H为存储数据类型的数量。4.如权利要求1-3任一项所述的方法,其特征在于,在步骤S1中,对数据内存块进行初始化具体为:根据数据内存块分区定义每种数据类型起始地址和结束地址;根据所述起始地址和结束地址来判断初始化是否成功,若是,则对内存块进行擦除操作并创建类型数据参数管理区后结束;若否,则结束。5.如权利要求1所述的方法,其特征在于,步骤S2中,对数据参数进行初始化具体为:根据数据类型查询当前数据参数管理区当前数据区是否有效且数据块是否损坏,如果正常且数据校验正确,则读取当前数据参数内容返回;如果异常且数据校验错误,则查询当前数据类型对应的备份区域;读取备份区域校验数据,如果异常则重新创建数据参数管理区。6.如权利要...

【专利技术属性】
技术研发人员:钟团娟彭文科
申请(专利权)人:易充新能源深圳有限公司
类型:发明
国别省市:广东;44

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

1