基于NANDFLASH的文件数据存取方法、装置、设备及存储介质制造方法及图纸

技术编号:35643190 阅读:16 留言:0更新日期:2022-11-19 16:35
本申请涉及一种基于NAND FLASH的文件数据存取方法、装置、设备及存储介质,涉及文件存储的技术领域,其方法包括:获取文件数据;基于块属性从NAND FLASH中选取一可写入存储块作为当前存储块;将文件数据中未写入NAND FLASH的数据写入当前存储块;判断文件数据中未写入NAND FLASH的数据是否全部写入当前存储块;若否,则重复从NAND FLASH中选取一可写入存储块作为当前存储块的步骤,直至文件全部写入NAND FLASH为止;若依次选取多个可写入存储块作为当前存储块,则选取的第一个可写入存储块为文件头块,选取的最后一个可写入存储块为文件尾块,其余选取的可写入模块为普通存储块。本申请具有提高NAND FLASH磨损均衡的性能的效果。FLASH磨损均衡的性能的效果。FLASH磨损均衡的性能的效果。

【技术实现步骤摘要】
基于NAND FLASH的文件数据存取方法、装置、设备及存储介质


[0001]本申请涉及文件存储的
,尤其是涉及一种基于NAND FLASH的文件数据存取方法、装置、设备及存储介质。

技术介绍

[0002]NAND FLASH是一种大容量的存储芯片,其特点是容量密度大,制造成本低,访问速度快,在业界应用广泛,通常作为U盘、固态盘、存储卡等设备上的存储芯片。
[0003]NAND FLASH的擦除是按照块进行擦除,而读和写是可以按照最小字节长度来进行读写,文件数据的写入需要先将写入区域所在的存储块进行擦除操作,然后再进行写入操作,例如,需要写入一个字节的数据,要对整个存储块进行擦除操作。而每次写入文件数据时,都需要对NAND FLASH的文件目录区所在的存储块进行擦除和重新写入,使得文件目录区所在的存储块擦写频率较高。
[0004]这样不均衡的擦写可能会使得文件目录区的存储块过早的被写坏,出现坏块,从而缩短了NAND FLASH文件系统的使用寿命,甚至会导致整个NAND FLASH文件系统损毁。

技术实现思路

[0005]为了提高NAND FLASH磨损均衡的性能,从而提高NAND FLASH的使用寿命,本申请提供一种基于NAND FLASH的文件数据存取方法、装置、设备及存储介质。
[0006]第一方面,本申请提供一种基于NAND FLASH的文件数据存取方法,采用如下的技术方案:一种基于NADA FLASH的文件数据存取方法,包括:获取文件数据;基于块属性从NAND FLASH中选取一可写入存储块作为当前存储块;将所述文件数据中未写入NAND FLASH的数据写入所述当前存储块;判断所述文件数据中未写入NAND FLASH的数据是否全部写入所述当前存储块;若否,则重复所述从NAND FLASH中选取一可写入存储块作为当前存储块的步骤,直至所述文件全部写入NAND FLASH为止;若依次选取多个可写入存储块作为当前存储块,则选取的第一个可写入存储块为文件头块,选取的最后一个可写入存储块为文件尾块,其余选取的可写入模块为普通存储块;其中,所述当前存储块具有索引信息位,所述文件头块的索引信息位包括文件名称位、块属性位、下一个存储块的块序号位和最后一个存储块的数据长度位;所述文件尾块的索引信息位包括块属性位;所述普通存储块的索引信息位包括块属性位和下一个存储块的块序号位;若所述当前存储块为所述文件头块,则在所述基于块属性从NAND FLASH中选取一可写入存储块作为当前存储块之后,基于所述文件头块的下一个存储块的块序号更新所述
文件头块的索引信息;若所述当前存储块为普通存储块,则在所述基于块属性从NAND FLASH中选取一可写入存储块作为当前存储块之后,基于所述普通头块的下一个存储块的块序号更新所述普通头块的索引信息;若所述当前存储块为文件尾块,则在所述基于块属性从NAND FLASH中选取一可写入存储块作为当前存储块之后,则写入文件数据直至所述文件全部写入NAND FLASH为止。
[0007]通过采用上述技术方案,通过将文件数据采用链式存储块的结构存储,且链式结构为不连续存储块的方式,通过采用链式结构将文件数据分摊到每一个存储块中,进行分布式存储,无需在NAND FLASH设置关键区(例如文件目录区)的存储块,通过文件头块的索引信息可以查询整个文件数据,在对文件数据进行改写时,降低了对关键区存储块的擦写次数而使得整个NAND FLASH发生损坏的可能性,提高了NAND FLASH磨损均衡的性能,从而提高NAND FLASH的使用寿命。
[0008]可选的,所述块属性包括空闲、写入中、有效和脏数据;当对所述当前存储块进行擦除操作后,更新所述当前存储块的块属性为空闲;当对所述文件数据进行写入所述当前存储块时,更新所述当前存储块的块属性为写入中;当将所述文件数据写入所述当前存储块时,更新所述当前存储块的块属性为有效;当进行文件自检时,若所述当前存储块的块数据无效,则更新所述当前存储块的块属性为脏数据。
[0009]通过采用上述技术方案,利用储存块的块属性查询可写入的存储块,保证存储块均衡使用,降低存储块浪费的可能性。
[0010]可选的,所述基于块属性从NAND FLASH中选取一可写入存储块作为当前存储块包括:查询是否存在块属性为空闲的存储块,若存在块属性为空闲的存储块,则从块属性为空闲的存储块中选取任意一个所述存储块作为当前存储块;若不存在块属性为空闲的存储块,则查询是否存在块属性为脏数据的存储块;若存在块属性为脏数据的存储块,则从块属性为脏数据的存储块中选取任意一个所述存储块;擦除所述存储块,并将擦除后的存储块作为当前存储块。
[0011]通过采用上述技术方案,优先使用未被写入的块属性为空闲的存储块,在所有空闲的存储块都已被写入后,擦除已被写入的块属性为脏数据的存储块进行写入,使得每个存储块擦写次数的均衡分配,提高了NAND FLASH的磨损均衡的性能。
[0012]可选的,所述文件数据包括文件名称,在基于块属性从NAND FLASH中选取一可写入存储块作为当前存储块之前,还包括:基于所述文件名称查询是否存在所述文件数据的历史数据;若所述NAND FLASH中存在所述文件数据的历史数据,则将所述文件数据按照存储块的大小切割成N个数据块;将所述N个数据块与所述历史数据对应存储块的块数据作比较,确定所述N个数据
块写入和/或改写的存储块,并将所述存储块对应的所述文件数据的数据块写入和/或改写至所述存储块。
[0013]通过采用上述技术方案,在文件数据写入时,只有对历史数据进行改写时才会擦除,否则不对NAND FLASH的存储块进行擦除,而是直接写入历史数据的存储块或NAND FLASH中可写入存储块,降低了对历史数据的全部存储块擦除的次数,不仅提高了文件数据读写效率,还降低了NAND FLASH擦除的操作次数,对于只是追加文件数据的文件,不对历史数据的存储块进行擦除,大大提高了对文件数据写入的性能。
[0014]可选的,所述基于所述文件名称查询是否存在所述文件数据的历史数据包括:基于所述文件名称查询是否存在所述文件数据的文件头块;若存在所述文件数据的文件头块,则基于所述文件头块的索引信息查询所述文件数据普通数据块或文件尾块;基于所述普通数据块的索引信息查询所述文件数据的下一个普数据块或文件尾块,直至确认所述文件数据的全部存储块;读取所述文件数据的全部存储块,得到所述文件数据的历史数据。
[0015]通过采用上述技术方案,文件数据采用链式存储块的结构储存至NAND FLASH,通过索引信息查找识别文件数据的不同的存储块,便于查找和自检。
[0016]可选的,所述将所述N个数据块与所述历史数据对应存储块的块数据作比较,确定所述N个数据块写入和/或改写的存储块,并将所述存储块对应的所述文件数据的数据块写入和/或改写至所述存储块包括:标识当前写入所述文件数据的数据块的块数量为0;从所述N个数据块中选取一所述数据块,将其设本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于NAND FLASH的文件数据存储方法,其特征在于,包括:获取文件数据;基于块属性从NAND FLASH中选取一可写入存储块作为当前存储块;将所述文件数据中未写入NAND FLASH的数据写入所述当前存储块;判断所述文件数据中未写入NAND FLASH的数据是否全部写入所述当前存储块;若否,则重复所述从NAND FLASH中选取一可写入存储块作为当前存储块的步骤,直至所述文件全部写入NAND FLASH为止;若依次选取多个可写入存储块作为当前存储块,则选取的第一个可写入存储块为文件头块,选取的最后一个可写入存储块为文件尾块,其余选取的可写入模块为普通存储块;其中,所述当前存储块具有索引信息位,所述文件头块的索引信息位包括文件名称位、块属性位、下一个存储块的块序号位和最后一个存储块的数据长度位;所述文件尾块的索引信息位包括块属性位;所述普通存储块的索引信息位包括块属性位和下一个存储块的块序号位;若所述当前存储块为所述文件头块,则在所述基于块属性从NAND FLASH中选取一可写入存储块作为当前存储块之后,基于所述文件头块的下一个存储块的块序号更新所述文件头块的索引信息;若所述当前存储块为普通存储块,则在所述基于块属性从NAND FLASH中选取一可写入存储块作为当前存储块之后,基于所述普通头块的下一个存储块的块序号更新所述普通头块的索引信息;若所述当前存储块为文件尾块,则在所述基于块属性从NAND FLASH中选取一可写入存储块作为当前存储块之后,写入文件数据直至所述文件全部写入NAND FLASH为止。2.根据权利要求1所述的方法,其特征在于,所述块属性包括空闲、写入中、有效和脏数据;当对所述当前存储块进行擦除操作后,更新所述当前存储块的块属性为空闲;当对所述文件数据进行写入所述当前存储块时,更新所述当前存储块的块属性为写入中;当将所述文件数据写入所述当前存储块时,更新所述当前存储块的块属性为有效;当进行文件自检时,若所述当前存储块的块数据无效,则更新所述当前存储块的块属性为脏数据。3.根据权利要求2所述的方法,其特征在于,所述基于块属性从NAND FLASH中选取一可写入存储块作为当前存储块包括:查询是否存在块属性为空闲的存储块,若存在块属性为空闲的存储块,则从块属性为空闲的存储块中选取任意一个所述存储块作为当前存储块;若不存在块属性为空闲的存储块,则查询是否存在块属性为脏数据的存储块;若存在块属性为脏数据的存储块,则从块属性为脏数据的存储块中选取任意一个所述存储块;擦除所述存储块,并将擦除后的存储块作为当前存储块。4.根据权利要求1所述的方法,其特征在于,所述文件数据包括文件名称,在基于块属性从NAND FLASH中选取一可写入存储块作为当前存储块之前,还包括:
基于所述文件名称查询是否存在所述文件数据的历史数据;若所述NAND FLASH中存在所述文件数据的历史数据,则将所述文件数据按照存储块的大小切割成N个数据块;将所述N个数据块与所述历史数据对应存储块的块数据作比较,确定所述N个数据块写入和/或改写的存储块,并将所述存储块对应的所述文件数据的数据块写入和/或改写至所述存储块。5.根据权利要求4所述的方法,其特征在于,所述基于所述文件名称查询是否存在所述文件数据的历史数据包括:基于所述文件名称查询是否存在所述文件数据的文件头块;若存在所述文件数据的文件头块,则基于所述文件头块的索引信息查询所述文件数据普通数据块或文件尾块;基于所述普通数据块的索引信息查询所述文件数据的下一个普数据块或文件尾块,直至确认所述文件数据的全部存储块;读取所述文件数据的全部存储块,得到所述文件数据的历史数据。6.根据权利要求4所述的方法,其特征在于,所述将所述N个数据块与所述历史数据对应存储块的块数据作比较,确定所述N个数据块写入和/或改写的存储块,并将所述存储块对应的所述文件数据的数据块写入和/或改写至所述存储块包括:标识当前...

【专利技术属性】
技术研发人员:王心侠林杯淋
申请(专利权)人:惠尔丰信息系统有限公司
类型:发明
国别省市:

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

1