一种测试存储器件的方法

文档序号:6772881阅读:113来源:国知局
专利名称:一种测试存储器件的方法
技术领域
本发明涉及一种测试存储器件的方法,包括测试存储器件物理地址与逻辑地址是 否一一对应,存放在存储器件中的数据是否可靠。
背景技术
从MP3到手机,掌上电脑,越来越多的人携带的便携设备中都需要大容量的数据 存储器,而在这些设备中,NAND Flash已经成为一种被业界广泛认可和采用的硬件方案。毫 无疑问的说,NAND Flash是便携设备的首选非易失性存储器。高密度,低价格,较快的写入 速度,以及较长的重写入寿命使得NAND Flash特别适用于媒体应用,在这些设备中都需要 快速重复的操作大容量的文件。随着NAND flash存储器件的在电子产品中的广泛运用,NANDflash存储器件在人 们的生产,生活的占有重要的地位。NAND flash存储器件具有速度快、体积小、兼容性好、携 带方便、容量大、寿命长,质量轻;NAND flash存储器件的结构具备不怕震,更抗摔;提供更 快的数据读取速度等,具有其他存储设备无可比拟的优势。NAND flash的特点和问题(1)存在坏块。由于NAND flash生产工艺的原因,出厂芯片中会随机出现坏块。 坏块在出厂时已经被初始化,并在特殊区域中标记为不可用,在使用过程中如果出现坏块, 也需要进行标记。(2)易出现位反转。NAND FLASH更易出现位反转的现象,如果位反转出现在关键 文件上,会导致系统挂机。所以在使用NANDFLASH的同时,建议使用ECC/EDC算法确保可靠 性。(3)存在Spare区。正因为NAND FLASH有着上面的两项特殊的地方,Spare区就 扮演作存放坏块标志,ECC值以及芯片信息和文件信息的作用。(4)多维的空间结构。NAND FLASH—般由block,page,sector等结构组成。所以 在有的文件系统中就衍生出各种分区信息和扇区信息等。

发明内容
本发明提出一种测试存储器件的方法,用于检测存储器件物理地址与逻辑地址是 否一一对应,存放在存储器件中的数据是否可靠。实现本发明的目的所采用的技术方案是一种测试存储器件的方法,用于检测存放在存储器件中的数据是否可靠,该方法 包括如下步骤(1)对存储器件的存储区进行划分,将存储器件划分为多个扇区,再将每个扇区划 分为多个区域;(2)对每个扇区划分的多个区域进行数据填充(2.1)在每个扇区的前N个区域填充一定格式的数据,其中N为正整数;
(2.2)对每个扇区所述前N个区域后面的多个区域依次填充一定格式的数据,其 中,所述后续的多个区域中,第一个区域的数据由前N个区域的数据经预定的算法计算得 到,后面每个区域所填充的数据由其前一个区域的数据通过该算法计算得到;(3)读取上述填充到存储器件各扇区的数据,并进而判断所述存储器件是否正常, 即判断读取出来的前N个区域以及后续区域存储的数据与对应的填充数据是否一致,如果 不一致,则判定该存储器件存在问题。作为本发明的进一步改进,所述的步骤(2. 1)中,所述填充的一定格式的数据包 括扇区所在的起始逻辑地址和系统当前时间;所述扇区所在的起始逻辑地址从所述前N个 区域的第一个字节依次往后存放,所述当前时间存放于所述前N个区域的最后,剩余存储 部分用任意数据填充。作为本发明的进一步改进,所述的步骤(2. 2)中的预定的算法为MD5算法或各种 加密算法。作为本发明的进一步改进,所述的步骤(3)中的具体判断过程为(A)判断从每个扇区所述前N个区域读取的数据与相应的填充数据是否一致,具 体包括判断每个扇区中读取出的地址与扇区的起始逻辑地址是否相同,以及每个扇区的 数据中的时间与写入数据的时间是否一致;(B)判断所述后续各个区域中读取的数据与相应的填充数据是否一致,具体为 将所述后续各个区域中的第一扇区的数据与所述前N个区域的数据经所述算法计算得到 的数据进行比较,将所述第一扇区后面的每个扇区与其前一扇区的数据经所述算法计算得 到的数据进行比较,判断各对应数据是否一致。作为本发明的进一步改进,所述的任意数据可以为00到ff之中任意一个或者组 合的十六进制,扇区所在逻辑地址或者扇区所在逻辑地址根据所述算法计算得到的数据作为本发明的进一步改进,所述的存储器为NAND flash。作为本发明的进一步改进,所述的扇区大小为512字节,所述区域大小为16字节。作为本发明的进一步改进,所述的N为2。本发明的有益效果是(1)使得测试结果更加合理可靠,更能查找到问题和问题所在的位置;(2)写入的各数据单元关联性较弱,防止测试中出现相互的干扰导致某些问题不 能发现。(3)写入NAND flash存储器中的一个测试数据单元中的数据相互关联性强;(4)在测试数据中加入时间可以查找到以前测试中隐藏的问题。


图1是NAND flash存储器件的扇区在测试中分成32个16字节大小的数据块图;图2是写入被测的NAND flash存储器件的每个扇区的数据的生成方式;图3是读取被测的NAND flash存储器件的数据进行分析的方法;
具体实施例方式下面结合附图和具体实施例对本发明作进一步详细说明。
本实施例中的存储器件为NAND flash,本发明的用于测试NANDflash存储器件的 方法,包括如下步骤一、对存储器件的存储区域进行划分本实施例以512字节为一个扇区,将存储器件划分为多个扇区,再将每个扇区划 分为多个区域,例如分为32个16字节区域。详见附图1。划分的扇区大小及区域大小可以 根据实际需要设置和调整。二、对上述划分的多个区域进行数据填充(1)在每个扇区的前部区域写入第一标示数据,如在每个扇区的起始的32个字节 中按如下步骤写入数据1)取扇区所在起始逻辑地址,从32字节的第一个字节依次往后存放。一般地,扇 区的起始逻辑地址长度不超过25个字节长度。2)获取电脑当前时间按照年两个字节,月一个字节,日一个字节,小时一个字节, 分钟一个字节,秒一个字节,放入32字节的最后7字节中。(日期数据使用十进制)3)32字节中没有用到的部分用任意数值填充,记录下填充的数值用于读取这个扇 区的时候做比较。实际测试中可以使用一下几种数据。 填充的字节用使用00到ff任意一个或者组合的较有规律的十六进制。 使用扇区所在逻辑地址循环填充,如果不是逻辑地址字节大小的整数,去掉最 后填充进来的逻辑地址的后面多余数据,或者逻辑地址的前面多余的数据。 将逻辑地址进行MD5计算得到的数据填充,去掉填充后剩余的数据。(2)对每个扇区后续的多个区域依次填充数据,每个区域所填充的数据由前一个 区域的数据通过一定的算法计算得到。所述的算法可以是MD5、各种加密算法等。本实施例中以MD5算法为例,对大小为16字节的区域进行数据填充。具体过程 为将扇区的开始的32字节用MD5算法生成一个16字节的数据写入所测扇区的后续 第一个16字节的数据块中,再将上述第一个16字节数据经过MD5运算得到的16字节的数 据写入下一个16字节的数据块中,依次做同样的操作直到写满扇区为止。测试中可以一次 写入多个扇区的数值。三、读取上述写入到存储器件各扇区的数据,并判断所述存储器件是否正常。即如 果读取出来的第一标识数据以及后续区域存储的数据与写入的对应数据是否一致,具体过程如下(1)如果每个扇区中读取出的地址是否和扇区的首地址相同,不同则可能存在问题。(2)比较每个扇区的数据中的时间与写入数据的时间是否一致,不一致时报告扇 区写入数据的时间,以此判读问题所在。(3) 一个扇区中开始的32字节填充的数据是否正确。(4)将第一个扇区经过MD5计算得到的数据和扇区中第二个16字节数据是否一 致,如此比较下去,知道完成整个扇区数据的比较。(5)测试中可以一次读取多个扇区的数据进行比较,得出结果。通过本发明的方 法,可以测试出存储器件的问题包括
5
(1)逻辑地址在读写数据前后不一致。读取某个扇区的写入数据时的逻辑地址与 读出数据时的逻辑地址不对应问题。(2)时间不一致。读取到的时间与最近一次写入扇区的数据的时间不一致。(3)数据产生错误。一个扇区中分成的32个16字节数据块中数据是具有关联性 的,一旦某个地方的数据产生错误,后续的数据都产生错误,找到错误数据最开始产生错误 的地方。(4)存储问题。数据写入与读出的数据不一致能判别为存储问题。
权利要求
一种测试存储器件的方法,用于检测存放在存储器件中的数据是否可靠,该方法包括如下步骤(1)对存储器件的存储区进行划分,将存储器件划分为多个扇区,再将每个扇区划分为多个区域;(2)对每个扇区划分的多个区域进行数据填充(2.1)在每个扇区的前N个区域填充一定格式的数据,其中N为正整数;(2.2)对每个扇区所述前N个区域后续的多个区域依次填充一定格式的数据,其中,所述后续的多个区域中,第一个区域的数据由前N个区域的数据经预定的算法计算得到,后面每个区域所填充的数据由其前一个区域的数据通过该算法计算得到;(3)读取上述填充到存储器件各扇区的数据,并进而判断所述存储器件是否正常,即判断读取出来的前N个区域以及后续区域存储的数据与对应的填充数据是否一致,如果不一致,则判定该存储器件存在问题。
2.根据权利要求1所述的一种测试存储器件的方法,其特征在于,所述的步骤(2.1) 中,所述填充的一定格式的数据包括扇区所在的起始逻辑地址和系统当前时间;所述扇区 所在的起始逻辑地址从所述前N个区域的第一个字节依次往后存放,所述当前时间存放于 所述前N个区域的最后,剩余存储部分用任意数据填充。
3.根据权利要求1或2所述的一种测试存储器件的方法,其特征在于,所述的步骤 (2.2)中的预定的算法为MD5算法或各种加密算法。
4.根据权利要求1-3之一所述的一种测试存储器件的方法,其特征在于,所述的步骤 (3)中的具体判断过程为(A)判断从每个扇区所述前N个区域读取的数据与相应的填充数据是否一致,具体包 括判断每个扇区中读取出的地址与扇区的起始逻辑地址是否相同,以及每个扇区读取出 的时间与写入的时间是否一致;(B)判断所述后续各个区域中读取的数据与相应的填充数据是否一致,具体为将所 述后续各个区域中的第一扇区的数据与所述前N个区域的数据经所述算法计算得到的数 据进行比较,将所述第一扇区后面的每个扇区与其前一扇区的数据经所述算法计算得到的 数据进行比较,判断各对应数据是否一致。
5.根据权利要求2-4之一所述的一种测试存储器件的方法,其特征在于,所述的任意 数据可以为00到ff之中任意一个或者组合的十六进制,扇区所在逻辑地址或者扇区所在 逻辑地址根据所述算法计算得到的数据。
6.根据权利要求1-5之一所述的一种测试存储器件的方法,其特征在于,所述的存储 器为 NAND flash。
7.根据权利要求1-6之一所述的一种测试存储器件的方法,其特征在于,所述的扇区 大小为512字节,所述区域大小为16字节。
8.根据权利要求1-7之一所述的一种测试存储器件的方法,其特征在于,所述的N为2。
全文摘要
本发明公开了一种测试存储器件的方法,具体为(1)对存储器件的存储区域进行划分,将存储器件划分为多个扇区,并再将每个扇区划分为多个区域;(2)对每个扇区的上述划分的多个区域进行数据填充;(3)读取上述填充到存储器件各扇区的数据,并判断所述存储器件是否正常,即判断读取出来的第一标识数据以及后续区域存储的数据与写入的对应数据是否一致,如果不一致,则判定该存储器件存在问题。
文档编号G11C29/08GK101937721SQ20101024400
公开日2011年1月5日 申请日期2010年8月4日 优先权日2010年8月4日
发明者李晓俊 申请人:武汉天喻信息产业股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1