一种闪存的数据存储方法和装置以及设备制造方法及图纸

技术编号:22295144 阅读:14 留言:0更新日期:2019-10-15 04:20
本发明专利技术公开了一种闪存的数据存储方法和装置以及设备。其中,所述方法包括:接收系统逻辑写命令,和根据该接收的系统逻辑写命令,检测该接收的系统逻辑写命令中携带的数据信息所对应的数据是否重复写入存储中得到检测结果,和根据该得到的检测结果,在该得到的检测结果是该接收的系统逻辑写命令中携带的数据信息所对应的数据是没有重复写入存储中时,存储预设数量的该数据信息所对应的数据并写入热数据区,以及更新映射表,同时记录该页中该数据信息所对应的数据的数量。通过上述方式,能够实现通过写入多份数据备份存储,在有数据出错时,能够通过备份存储的数据进行数据还原,提高了系统数据的稳定性。

A data storage method, device and device for flash memory

【技术实现步骤摘要】
一种闪存的数据存储方法和装置以及设备
本专利技术涉及存储
,尤其涉及一种闪存的数据存储方法和装置以及设备。
技术介绍
非易失性存储器(NandFlash),简称闪存,具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、音频随身听记忆卡、体积小巧的移动存储盘等。由于闪存速度快,同时比机械硬盘稳定,导致现在大量使用闪存作为系统的存储设备,但是各类系统对于存储设备的操作还是保留了原来机械硬盘的特性,例如windows(微软视窗操作系统)系统中FAT(FAT,文件配置表)文件系统,写入数据时需要更新三部分内容,包括:1为FAT表,512B(Byte,字节)为单位,2为FDT(FileDirectoryTable,文件目录表)表,4096B为单位,3才是用户数据,其中1与2会被反复更新。对于机械硬盘而言,可以以512B作为单位在原地址进行数据更新,更新极为方便,但是闪存则不行,一旦有数据更新,需要先将旧数据读出,再从接口接收新数据后再写到一个新地址,同时更新映射表记录,操作极为复杂。闪存编程的最小单位通常为16K(Kilobyte,千字节),但是系统操作的最小单位通常为512B或者4096B即4K,闪存映射表管理通常以4096B或者页作为逻辑页单位,假如以4K做为逻辑页单位,那么一个闪存物理页则可以保存16K/4096B=4个逻辑页的数据。系统更新512B时需要将原来的4K数据读出,再将512B数据更新到相应的位置后,暂存在控制器的RAM(RandomAccessMemory,随机存取存储器)中,一旦存满够4个逻辑页数据后再写入闪存中,假如不够4个逻辑页的数据,则在一定时间后填充无效数据后写入闪存中。但是,专利技术人发现现有技术中至少存在如下问题:现有的闪存的数据存储方案,一般系统操作的最小单位通常为512B或者4096B即4K,闪存映射表管理通常以4096B即4K或者页作为逻辑页单位,对于这些最小单位例如512B或者4K的系统数据通常都为系统关键性数据,一旦出错,会导致系统数据直接出错,系统数据稳定性降低。
技术实现思路
有鉴于此,本专利技术的目的在于提出一种闪存的数据存储方法和装置以及设备,能够实现通过写入多份数据备份存储,在有数据出错时,能够通过备份存储的数据进行数据还原,提高了系统数据的稳定性。根据本专利技术的一个方面,提供一种闪存的数据存储方法,包括:接收系统逻辑写命令;其中,所述系统逻辑写命令中携带有数据信息包括数据长度和数据地址;根据所述接收的系统逻辑写命令,检测所述接收的系统逻辑写命令中携带的数据信息所对应的数据是否重复写入存储中得到检测结果;根据所述得到的检测结果,在所述得到的检测结果是所述接收的系统逻辑写命令中携带的数据信息所对应的数据是没有重复写入存储中时,存储预设数量的所述数据信息所对应的数据并写入热数据区;更新映射表,同时记录所述页中所述数据信息所对应的数据的数量。其中,所述根据所述接收的系统逻辑写命令,检测所述接收的系统逻辑写命令中携带的数据信息所对应的数据是否重复写入存储中得到检测结果,包括:根据所述接收的系统逻辑写命令,检测所述接收的系统逻辑写命令中携带的数据信息中的数据地址是否是热数据地址和数据长度是否不大于预设的数据长度值,在检测出所述接收的系统逻辑写命令中携带的数据信息中的数据地址是热数据地址且数据长度是不大于预设的数据长度值时,得到所述接收的系统逻辑写命令中携带的数据信息所对应的数据是没有重复写入存储中的检测结果;在检测出所述接收的系统逻辑写命令中携带的数据信息中的数据地址不是热数据地址和/或数据长度是小于于预设的数据长度值时,得到所述接收的系统逻辑写命令中携带的数据信息所对应的数据是有重复写入存储中的检测结果。其中,所述根据所述得到的检测结果,在所述得到的检测结果是所述接收的系统逻辑写命令中携带的数据信息所对应的数据是没有重复写入存储中时,存储预设数量的所述数据信息所对应的数据并写入热数据区,还包括:根据所述得到的检测结果,在所述得到的检测结果是所述接收的系统逻辑写命令中携带的数据信息所对应的数据是有重复写入存储中时,更新映射表,同时记录所述页中所述数据信息所对应的数据的数量。其中,在所述更新映射表,同时记录所述页中所述数据信息所对应的数据的数量之后,还包括:根据所述更新的映射表,对所述更新后的映射表中所记录的所述页中所述数据信息所对应的数据进行错误检查和纠正,并将所述经错误检查和纠正后的数据信息更新到映射表。其中,所述根据所述更新映射表,对所述更新后的映射表中所记录的所述页中所述数据信息所对应的数据进行错误检查和纠正,并将所述经错误检查和纠正后的数据信息更新到映射表,包括:根据所述更新映射表,采用比特整合方式,对所述更新后的映射表中所记录的所述页中所述数据信息所对应的数据进行错误检查和纠正,并将所述经错误检查和纠正后的数据信息更新到映射表。根据本专利技术的另一个方面,提供一种闪存的数据存储装置,包括:接收模块、检测模块、存储模块和更新模块;所述接收模块,用于接收系统逻辑写命令;其中,所述系统逻辑写命令中携带有数据信息包括数据长度和数据地址;所述检测模块,用于根据所述接收的系统逻辑写命令,检测所述接收的系统逻辑写命令中携带的数据信息所对应的数据是否重复写入存储中得到检测结果;所述存储模块,用于根据所述得到的检测结果,在所述得到的检测结果是所述接收的系统逻辑写命令中携带的数据信息所对应的数据是没有重复写入存储中时,存储预设数量的所述数据信息所对应的数据并写入热数据区;所述更新模块,用于更新映射表,同时记录所述页中所述数据信息所对应的数据的数量。其中,所述检测模块,具体用于:根据所述接收的系统逻辑写命令,检测所述接收的系统逻辑写命令中携带的数据信息中的数据地址是否是热数据地址和数据长度是否不大于预设的数据长度值,在检测出所述接收的系统逻辑写命令中携带的数据信息中的数据地址是热数据地址且数据长度是不大于预设的数据长度值时,得到所述接收的系统逻辑写命令中携带的数据信息所对应的数据是没有重复写入存储中的检测结果;在检测出所述接收的系统逻辑写命令中携带的数据信息中的数据地址不是热数据地址和/或数据长度是小于于预设的数据长度值时,得到所述接收的系统逻辑写命令中携带的数据信息所对应的数据是有重复写入存储中的检测结果。其中,所述闪存的数据存储装置,还包括:纠正模块,用于根据所述更新的映射表,对所述更新后的映射表中所记录的所述页中所述数据信息所对应的数据进行错误检查和纠正,并将所述经错误检查和纠正后的数据信息更新到映射表。其中,所述纠正模块,具体用于:根据所述更新映射表,采用比特整合方式,对所述更新后的映射表中所记录的所述页中所述数据信息所对应的数据进行错误检查和纠正,并将所述经错误检查和纠正后的数据信息更新到映射表。根据本专利技术的又一个方面,提供一种闪存的数据存储设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任一项所述的闪存的数据存储。根据本专利技术的再一个方面,提供一种计算机可读存储介本文档来自技高网
...

【技术保护点】
1.一种闪存的数据存储方法,其特征在于,包括:接收系统逻辑写命令;其中,所述系统逻辑写命令中携带有数据信息包括数据长度和数据地址;根据所述接收的系统逻辑写命令,检测所述接收的系统逻辑写命令中携带的数据信息所对应的数据是否重复写入存储中得到检测结果;根据所述得到的检测结果,在所述得到的检测结果是所述接收的系统逻辑写命令中携带的数据信息所对应的数据是没有重复写入存储中时,存储预设数量的所述数据信息所对应的数据并写入热数据区;更新映射表,同时记录所述页中所述数据信息所对应的数据的数量。

【技术特征摘要】
1.一种闪存的数据存储方法,其特征在于,包括:接收系统逻辑写命令;其中,所述系统逻辑写命令中携带有数据信息包括数据长度和数据地址;根据所述接收的系统逻辑写命令,检测所述接收的系统逻辑写命令中携带的数据信息所对应的数据是否重复写入存储中得到检测结果;根据所述得到的检测结果,在所述得到的检测结果是所述接收的系统逻辑写命令中携带的数据信息所对应的数据是没有重复写入存储中时,存储预设数量的所述数据信息所对应的数据并写入热数据区;更新映射表,同时记录所述页中所述数据信息所对应的数据的数量。2.如权利要求1所述的闪存的数据存储方法,其特征在于,所述根据所述接收的系统逻辑写命令,检测所述接收的系统逻辑写命令中携带的数据信息所对应的数据是否重复写入存储中得到检测结果,包括:根据所述接收的系统逻辑写命令,检测所述接收的系统逻辑写命令中携带的数据信息中的数据地址是否是热数据地址和数据长度是否不大于预设的数据长度值,在检测出所述接收的系统逻辑写命令中携带的数据信息中的数据地址是热数据地址且数据长度是不大于预设的数据长度值时,得到所述接收的系统逻辑写命令中携带的数据信息所对应的数据是没有重复写入存储中的检测结果;在检测出所述接收的系统逻辑写命令中携带的数据信息中的数据地址不是热数据地址和/或数据长度是小于于预设的数据长度值时,得到所述接收的系统逻辑写命令中携带的数据信息所对应的数据是有重复写入存储中的检测结果。3.如权利要求1所述的闪存的数据存储方法,其特征在于,所述根据所述得到的检测结果,在所述得到的检测结果是所述接收的系统逻辑写命令中携带的数据信息所对应的数据是没有重复写入存储中时,存储预设数量的所述数据信息所对应的数据并写入热数据区,还包括:根据所述得到的检测结果,在所述得到的检测结果是所述接收的系统逻辑写命令中携带的数据信息所对应的数据是有重复写入存储中时,更新映射表,同时记录所述页中所述数据信息所对应的数据的数量。4.如权利要求1所述的闪存的数据存储方法,其特征在于,在所述更新映射表,同时记录所述页中所述数据信息所对应的数据的数量之后,还包括:根据所述更新的映射表,对所述更新后的映射表中所记录的所述页中所述数据信息所对应的数据进行错误检查和纠正,并将所述经错误检查和纠正后的数据信息更新到映射表。5.如权利要求4所述的闪存的数据存储方法,其特征在于,所述根据所述更新映射表,对所述更新后的映射表中所记录的所述页中所述数据信息所对应的数据进行错误检查和纠正,并将所述经错误检查和纠正后的数据信息更新到映射表,包括:根据所述更新映射...

【专利技术属性】
技术研发人员:李虎罗胜
申请(专利权)人:深圳市德名利电子有限公司
类型:发明
国别省市:广东,44

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

1