一种校验Flash存储数据的方法

文档序号:6503489阅读:1512来源:国知局
一种校验Flash存储数据的方法
【专利摘要】本发明公开了一种校验Flash存储数据的方法,其属于数据校验【技术领域】,采用Flash驱动装置对Flash存储数据进行校验,校验方法包括:数据写入单元向Flash存储设备的一个存储块中写入一段数据块;每段数据块具有一个唯一的标识信息;数据写入单元提取数据块的标识信息并保存至存储单元中;数据读取单元读取刚写入数据块的存储块中保存的数据,每个存储块中保存的数据具有一个唯一的验证信息;数据读取单元提取验证信息,并将验证信息与标识信息进行比对,若验证信息与标识信息一致,则判断数据块写入正确;上述技术方案的有益效果是:在数据写入的过程中及时发现错误并及时解决,并不影响其他存储块中的数据写入;且校验过程对使用者不透明。
【专利说明】-种校验Flash存储数据的方法

【技术领域】
[0001] 本发明涉及数据校验【技术领域】,尤其涉及一种校验Flash存储数据的方法。

【背景技术】
[0002] 在传统的校验机制中,经常会对整个文件进行校验,即在对整个系统镜像升级完 成之后,再回读写入的系统镜像文件,获取按照一定规则编写的校验码,并与原始的校验码 进行比对,如果不一致,则表明数据写入过程中被写入的数据发生了错误,此时需要重新进 行整体的数据写入操作。这样的校验方式意味着整个过程中如果有任何数据产生错误,都 会导致整个数据写入过程的失败,从而需要重新开始进行数据写入操作。一方面,这种校验 方法需要上层应用软件开发人员引入额外的校验程序,另一方面又在整体的重复输入数据 上消耗了大量时间,而且对于普通用户来说这个过程是可以被感知到的,降低了用户体验 的流畅度。
[0003] 中国专利(CN102932332A)公开了一种数据校验系统和数据校验方法,包括:加载 单元,用于将校验规则库加载至服务器并缓存至内存中;获取单元,用于在服务器接收到客 户端的数据后,从校验规则库中获取数据对应的窗体的校验规则,以及在服务器接收到客 户端的页面请求后,从校验规则库中获取所请求页面包含的窗体的校验规则;校验单元,用 于按数据对应的窗体的校验规则对数据进行校验,以及按照校验脚本对客户端的数据进行 校验;脚本生成单元,用于按所请求页面包含的窗口的校验规则生成校验脚本并发送至客 户端。上述技术方案采用多种数据校验规则,并根据需要选择一种数据校验规则,而并未涉 及到关于Flash存储数据的分段校验。
[0004] 中国专利(CN101183565)公开了一种存储介质中的数据校验方法,包括:组织ECC 数据矩阵;对数据编码,产生行校验码和列校验码;在对ECC数据矩阵进行数据操作时,使 用行校验码和列校验码对数据进行校验。上述技术方案并未涉及在Flash存储介质中对块 数据进行校验的方法。


【发明内容】

[0005] 根据现有技术中存在的缺陷,现提供一种校验Flash存储数据的方法,具体包括:
[0006] -种校验Flash存储数据的方法,适用于Flash存储设备;所述Flash存储设备中 包括多个相同大小的存储块;其中,采用Flash读写驱动装置校验写入Flash存储设备中的 存储数据,所述Flash读写驱动装置将所述Flash存储数据分为多个数据块,并将每段所述 数据块保存入一个所述存储块中;
[0007] 所述Flash读写驱动单元包括数据写入单元、数据读取单元和存储单元;所述存 储单元分别连接所述数据读取单元和所述数据写入单元;
[0008] 校验Flash存储数据的方法具体包括:
[0009] 所述Flash读写驱动装置开始对一个所述存储块进行数据写入操作;
[0010] 所述数据写入单元向所述Flash存储设备的一个所述存储块中写入一段所述数 据块;每个所述数据块具有一个唯一的标识信息;所述数据写入单元提取所述数据块的所 述标识信息并保存至所述存储单元中;
[0011] 所述数据读取单元读取刚写入所述数据块的所述存储块中保存的数据,每个所述 存储块中保存的所述数据具有一个唯一的验证信息;
[0012] 所述数据读取单元提取所述验证信息,并将所述验证信息与所述标识信息进行比 对,若所述验证信息与所述标识信息一致,则判断所述数据块写入正确;
[0013] 所述Flash读写驱动装置结束对所述存储块的所述数据写入操作。
[0014] 优选的,该校验Flash存储数据的方法,其中,若所述验证信息与所述标识信息不 一致,则判断所述数据块写入错误。
[0015] 优选的,该校验Flash存储数据的方法,其中,当所述数据写入单元向所述Flash 存储设备的一个所述存储块中写入一段所述数据块时,所述数据写入单元同时将所述数据 块写入一个数据缓存单元中;所述数据缓存单元分别连接所述数据写入单元和所述数据读 取单元。
[0016] 优选的,该校验Flash存储数据的方法,其中,当所述验证信息与所述标识信息不 一致时,所述数据写入单元从所述数据缓存单元中重新读取所述数据块并重新写入到相应 的所述存储块中。
[0017] 优选的,该校验Flash存储数据的方法,其中,当所述数据写入单元重新写入所述 数据块达到预定的次数时,所述数据写入单元停止重新写入所述数据块,所述Flash读写 驱动装置判断所述数据块写入错误。
[0018] 优选的,该校验Flash存储数据的方法,其中,所述数据写入单元重新向所述 Flash存储设备中写入数据前,所述Flash读写驱动装置预先擦除所述Flash存储设备的所 有所述存储块中的数据。
[0019] 优选的,该校验Flash存储数据的方法,其中,当所述数据写入单元第一次向所述 Flash存储设备中写入数据前,所述Flash读写驱动装置不预先擦除所述Flash存储设备的 所有所述存储块中的数据。
[0020] 优选的,该校验Flash存储数据的方法,其中,所述标识信息和所述验证信息均为 MD5信息。
[0021] 上述技术方案的有益效果是:在数据写入的过程中及时发现错误并及时解决,并 不影响其他存储块中的数据写入;且校验过程不对使用者透明,使用者并不会感知到数据 写入过程中的修复操作。

【专利附图】

【附图说明】
[0022] 图1是本发明的实施例中,对Flash存储数据进行校验的基础装置结构示意图;
[0023] 图2是本发明的实施例中,校验Flash存储数据的流程示意图。

【具体实施方式】
[0024] 下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
[0025] Flash (闪存)存储设备是是存储芯片的一种,通过特定的程序可以修改里面的数 据。Flash存储设备是一种块存储设备,即整个存储芯片的存储空间被分为若干个相同大小 的存储块(Sector),对于Flash存储芯片的数据写入操作实质上是对若干个存储块的数据 写入操作。因此可以针对上述特征,采用对每个存储块进行数据校验的方式校验整个数据 写入操作的正确性,从而避免由于微小的错误导致的重新写入整段数据。
[0026] 本发明的实施例中对Flash存储数据进行校验时,采用如图1所示的校验装置。该 校验装置的核心是Flash数据读写驱动装置;驱动装置与上层的应用程序连接。驱动装置 包括数据写入单元、数据读取单元和数据存储单元,其中数据写入单元和数据读取单元分 别连接数据存储单元。驱动程序还包括一个数据缓存单元,数据缓存单元与数据写入单元 连接。上述数据写入和数据读取单元分别负责数据的写入和读取,数据存储单元中保存有 数据的验证标识,数据缓存单元中暂时保存已经写入存储块中的相应数据。
[0027] 由于Flash存储设备是分块存储的,因此存入Flash存储设备中的数据也是分段 的。因此相应的,对Flash存储数据进行校验的方法具体如图2所示:
[0028] 下述对Flash存储数据的校验过程均在Flash存储数据写入操作过程中进行。
[0029] 数据写入单元向每个存储块中写入相应的数据块;每个数据块中包括一个标识信 息,一个数据块与一个标识信息一一对应,标识信息起到唯一标识该数据块完整性的作用; 数据写入单元在写入每个数据块的同时,提取该数据块的标识信息并存入数据存储单元 中;
[0030] 同时,数据写入单元将对应写入的数据块暂时存入数据缓存单元中。
[0031] 当一个存储块中的数据块全部写入后,数据读取单元读取该存储块中保存的数 据,存储块中保存的数据也具有一个唯一的验证信息;驱动装置比对对应同一个存储块的 上述验证信息和标识信息;若验证信息与标识信息相同,则判断保存在存储块中的数据即 为刚被写入的数据块,数据写入过程未出现差错;若验证信息与标识信息不符,则判断存储 块中的数据与被写入的数据块不一致,不一致的原因可能为在写入过程中发生错误,或者 未擦除存储块中原本存储的数据等。
[0032] 当判断出数据错误后,数据写入单元擦除出现错误的存储块中的数据,并重新写 入暂存在数据缓存单元中的相应数据块;驱动装置重新对该存储块中的数据进行校验,并 判断数据写入是否发生错误;若仍然发生错误,则数据写入单元继续重写数据;
[0033] 上述重写数据的次数可由系统限定,或者由使用者自行设置;在本发明的实施例 中,上述重写次数为3次。当重写次数达到3次后,经过数据校验仍然发现数据写入错误, 则驱动装置上报该错误信息,并由上层应用进行相应处理。
[0034] 数据写入单元重写数据前,首先擦除存储设备中所有存储块内保存的数据。
[0035] 当数据写入单元重写数据成功后,数据写入单元擦除保存于数据缓存单元中的相 应数据块。
[0036] 在本发明的实施例中,当驱动装置首次向Flash存储设备中写入数据时(即不是 重写过程时),由于此时Flash存储设备的相应存储块中并没有存储数据,因此无需进行擦 除步骤。
[0037] 本发明的实施例中,上述标识信息和验证信息可以是MD5校验码,换言之,本发 明的实施例中,可以采用MD5校验方法,在对Flash存储设备进行写入操作时对所写入的 Flash存储数据进行分块校验。当然,在本发明的其他实施例中,也可以采用其他校验方法 进行校验,并不仅限于MD5这一种校验方法。
[0038] 本发明的实施例中所述的Flash存储数据分段式校验方法,综合来讲是在普通的 Flash驱动程序中添加自动的基于Flash存储块的分段式校验功能,而使上层应用软件的 开发人员无需单独进行数据的校验工作,同时,由于校验过程在底层的驱动程序中进行,对 于普通用户而言是隐藏的。而校验失败后进行的数据块修复仅针对个别特定的数据块,而 不是整个Flash存储空间,可以节约修复时间,提高存储效率,节省上层开发人员的工作时 间。
[0039] 以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范 围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的 等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
【权利要求】
1. 一种校验Flash存储数据的方法,适用于Flash存储设备;所述Flash存储设备中 包括多个相同大小的存储块;其特征在于,采用Flash读写驱动装置校验写入Flash存储设 备中的Flash存储数据,所述Flash读写驱动装置将所述Flash存储数据分为多个数据块, 并将每段所述数据块保存入一个所述存储块中; 所述Flash读写驱动单元包括数据写入单元、数据读取单元和存储单元;所述存储单 元分别连接所述数据读取单元和所述数据写入单元; 校验Flash存储数据的方法具体包括: 所述Flash读写驱动装置开始对一个所述存储块进行数据写入操作; 所述数据写入单元向所述Flash存储设备的一个所述存储块中写入一段所述数据块; 每段所述数据块具有一个唯一的标识信息;所述数据写入单元提取所述数据块的所述标识 信息并保存至所述存储单元中; 所述数据读取单元读取刚写入所述数据块的所述存储块中保存的数据,每个所述存储 块中保存的所述数据具有一个唯一的验证信息; 所述数据读取单元提取所述验证信息,并将所述验证信息与所述标识信息进行比对, 若所述验证信息与所述标识信息一致,则判断所述数据块写入正确; 所述Flash读写驱动装置结束对所述存储块的所述数据写入操作。
2. 如权利要求1所述的校验Flash存储数据的方法,其特征在于,若所述验证信息与所 述标识信息不一致,则判断所述数据块写入错误。
3. 如权利要求1所述的校验Flash存储数据的方法,其特征在于,当所述数据写入单元 向所述Flash存储设备的一个所述存储块中写入一段所述数据块时,所述数据写入单元同 时将所述数据块写入一个数据缓存单元中;所述数据缓存单元分别连接所述数据写入单元 和所述数据读取单元。
4. 如权利要求2或3所述的校验Flash存储数据的方法,其特征在于,当所述验证信息 与所述标识信息不一致时,所述数据写入单元从所述数据缓存单元中重新读取所述数据块 并重新写入到相应的所述存储块中。
5. 如权利要求4所述的校验Flash存储数据的方法,其特征在于,当所述数据写入单元 重新写入所述数据块达到预定的次数时,所述数据写入单元停止重新写入所述数据块,所 述Flash读写驱动装置判断所述数据块写入错误。
6. 如权利要求5所述的校验Flash存储数据的方法,其特征在于,所述数据写入单元重 新向所述Flash存储设备中写入数据前,所述Flash读写驱动装置预先擦除所述Flash存 储设备的所有所述存储块中的数据。
7. 如权利要求6所述的校验Flash存储数据的方法,其特征在于,当所述数据写入单 元第一次向所述Flash存储设备中写入数据前,所述Flash读写驱动装置不预先擦除所述 Flash存储设备的所有所述存储块中的数据。
8. 如权利要求1所述的校验Flash存储数据的方法,其特征在于,所述标识信息和所述 验证信息均为MD5信息。
【文档编号】G06F11/07GK104216791SQ201310209256
【公开日】2014年12月17日 申请日期:2013年5月30日 优先权日:2013年5月30日
【发明者】陈辉, 刘启林 申请人:上海斐讯数据通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1