利用数据产生器模块来提高存储设备读写测试效率的方法

文档序号:6736987阅读:147来源:国知局
专利名称:利用数据产生器模块来提高存储设备读写测试效率的方法
技术领域
本发明涉及存储设备的读写测试方法,特别涉及一种利用数据产生器模块来提高存储设备读写测试效率的方法。所谓存储设备是指υ盘、存储卡(SD,CF, MMC等)、SSD硬盘、 普通硬盘等。
背景技术
存储设备是一种用于储存信息的设备,比如U盘、存储卡以及移动硬盘等。如图1 所示,现有存储设备1通常由接口 2、控制器3、临时存储器4和存储器5等组成,对于这类设备一般在产品出厂之前需要对存储设备做一个读写正确性测试,也就是将存储设备所有可用的容量写满数据,然后再将数据读出与原来写入的数据进行比对,如果写入的数据与读出的数据完全一致,表示当前的存储设备产品属于合格品,可以出货进行销售;否则就是不合格品。传统的读写测试方法是先将一台测试电脑6通过USB接口、串行接口或其它接口分别与各存储设备1相连(见图2所示),然后对存储设备进行数据读写测试。通常数据读写测试的过程如下
第一步,测试电脑6依次向存储设备1发送测试的写入地址(LBA号)和对应的用户数据,存储设备1中的控制器3接到命令后进行解析,并将用户数据先存放到临时存储器4 (RAM)中,再根据写入地址(LBA号)计算出要写到的存储器5的实际物理位置,然后将临时存储器4中的用户数据写到存储器5的对应位置中,直到将存储设备1所有可用的容量写满为止;
第二步,测试电脑6依次向存储设备1发送测试的读出地址(LBA号),存储设备1中的控制器3根据读出地址(LBA号)计算出要读的用户数据在存储器5的实际物理位置,然后将用户数据从存储器5读出到临时存储器4中,再从临时存储器4中传送给测试电脑6, 直到将所有写满的用户数据全部读出为止;
第三步,在测试电脑6上将从存储设备1读出的用户数据与向存储设备1写入的原始用户数据进行对比,如果所有数据都完全相同,则通过测试,对应的存储设备1是合格产品;否则测试失败,对应的存储设备1为不合格产品,不能销售。传统读写测试方法最突出的问题是由于测试过程需要在测试电脑与存储设备之间大量传送数据,需要耗费大量时间。随着存储设备的容量越来越大,需要写入的数据量和读出的数据量越来越大,测试时间会变得越来越长,导致测试效率低下,不适应工业化批量生产的需要。为了提高测试速度,中国专利CN101740137A公开了一件名称为《存储器的测试方法》的发明专利申请案。该专利尽管公开了一种可以大幅度减少测试电脑与存储器之间数据传送量,从而加速存储器测试速度的方法,但是该专利技术方案是针对存储器本身实际物理块、页好坏的测试,与本发明需要测试存储设备产品逻辑块、页读写操作的正确性有所不同。进一步说,该专利是用来衡量存储器中实际物理存储块、页的好坏,而本发明是用来衡量U盘、存储卡以及移动硬盘等存储设备产品整体是否合格,产品整体不仅要求检测存储器的好坏,同时需要检测其它模块的好坏。另外,该专利技术方案的实现方式是测试电脑发出测试指令以及程序代码至测试设备中的控制器,然后由控制器产生测试数据,直接对闪存进行数据的写入、读出以及比对的操作,并将测试结果传送回测试电脑。这种方式只能产生特定格式的测试数据,对于模拟用户实际操作而针对扇区产生不同数据的逻辑读写测试很难实现,因此该专利技术方案实际上并不适用于对存储设备整体做逻辑读写正确性测试。为此,如何针对存储设备整体进行快速的逻辑读写正确性测试,以提高测试效率是本发明研究的问题。发明内容
本发明提供一种利用数据产生器模块来提高存储设备读写测试效率的方法,旨在提高存储设备的逻辑读写测试速度,解决以往测试效率低的问题,以适应批量化产生大容量存储设备产品的读写测试需要。
为达到上述目的,本发明采用的技术方案是一种利用数据产生器模块来提高存储设备读写测试效率的方法,所述存储设备包括接口、控制器、临时存储器以及存储器,其创新在于在所述存储设备中预先设置一个由软件或/和硬件构成的数据产生器模块,该数据产生器模块由一组具有不同数学模型的数据模式子模块组成,每种数据模式子模块均定义有一个唯一的数据模式代码,输入定义的数据模式代码将激活对应的数据模式子模块按自身数学模型产生相应的数据;在对存储设备进行读写测试时,先将被测试的存储设备通过所述接口与测试电脑进行连接,然后按以下步骤进行操作第一步,测试电脑向存储设备发送测试的写命令,该写命令中包含写操作指令、写操作的逻辑地址以及写操作的数据模式代码,其中,对于存储器的每个扇区来说,写命令中的逻辑地址与数据模式代码存在一对一的对应关系;当控制器收到写命令后,根据写命令中逻辑地址与数据模式代码的对应关系依次将写操作的数据模式代码送入数据产生器模块产生对应的摸拟用户写入数据,并将该摸拟用户写入数据存放在临时存储器中,控制器再根据对应的写操作的逻辑地址计算出要写到的存储器的实际物理位置,然后将临时存储器中的摸拟用户写入数据写到存储器的实际物理位置上,其中,每次写入存储器的摸拟用户写入数据量为扇区的整数倍,直到将存储设备所有可用的容量写满为止;第二步,测试电脑向存储设备发送测试的读命令,该读命令中包含读操作指令、读操作的逻辑地址以及读操作的数据模式代码,其中,对于存储器的每个扇区来说,读命令中的逻辑地址与数据模式代码存在一对一的对应关系,而且对于同一个存储器的同一个扇区来说,写操作的数据模式代码与读操作的数据模式代码相同;当控制器收到读命令后,根据读命令中逻辑地址与数据模式代码的对应关系依次将读操作的数据模式代码送入数据产生器模块产生与摸拟用户写入数据相同的测试对比数据,并将该测试对比数据存放在临时存储器中;接着,控制器再根据对应的读操作的逻辑地址计算出要读的存储器的实际物理位置,然后将存储在该位置的摸拟用户写入数据读出到临时存储器中,与相同逻辑地址的测试对比数据进行比对,如果这两组数据的比对结果是完全相同,则进行下一轮次比对,每一轮次比对的数据量为扇区的整数倍,直到将写满存储设备所有可用容量的摸拟用户写入数据读出后全部比对完,而且比对结果均完全相同,则结束测试,表示测试通过;如果在比对过程中只要出现有一个轮次的比对结果不一致,则退出测试,表示测试失败。上述技术方案中的有关内容解释如下
1.上述方案中,所述“存储设备”是指U盘、存储卡(SD,CF,MMC等)、SSD硬盘、普通硬盘等设备。所述“临时存储器”是指存储设备内部用于临时存放数据的存储器,比如随机存储器(RAM)等。所述“存储器”是指存储设备内部用于存放用户信息的存储器,比如闪存 (Flash)等。2.上述方案中,所述“数据模式代码”不是指一段代码程序,而是指一个可以用二进制数字表示的代号,这种代码可以人为任意定义,但是一个数据模式代码只能代表一种数据模式子模块,因此数据模式代码与数据模式子模块中的数学模型存在一对一的对应关系。3.上述方案中,所述“数学模型”是指数据模式子模块中用于产生数据的模型或数学公式。这种模型或数学公式可以根据实际需要来定义,产生的数据可以包括零的常数,也可是随设定参数变化的变量。即使是变量在同一个数学模型中参数也是事先确认的,因此对于同一个数据模式子模块来说,只要参数相同每次产生的数据也一定相同。本发明设计原理和效果是预先在被测试的存储设备中设置一个数据产生器模块,当采用测试电脑对存储设备进行读写测试时,所有的读写测试数据不需要在测试电脑与存储设备之间传送,测试电脑只要向存储设备发送测试的写命令和测试的读命令,存储设备内部的数据产生器模块便可以按照写命令和读命令中的逻辑地址和数据模式代码产生对应数据,并进行相应的读写操作和比对。由此可见,本发明方法减少了批量数据的传递时间,大大提高了数据的读写速度,特别是在批量化产生大容量存储设备时,极大的提高了存储设备产品的整体读写测试效率。


附图1为现有存储设备原理图; 附图2为传统存储设备读写测试示意图; 附图3为本发明存储设备原理附图4为本发明存储设备读写测试示意图; 附图5为本发明存储设备读写测试的写流程图; 附图6为本发明存储设备读写测试的读和比对流程图; 附图7为本发明采用软件方式的数据产生器模块流程图; 附图8为本发明采用硬件方式的数据产生器模块原理图。以上附图中1.现有存储设备;2.接口 ;3.控制器;4.临时存储器;5.存储器; 6.测试电脑;7.本发明存储设备;8.数据产生器模块。
具体实施例方式下面结合附图及实施例对本发明作进一步描述
实施例一种利用数据产生器模块来提高存储设备读写测试效率的方法如图3所示,本发明存储设备7不仅包括接口 2、控制器3、临时存储器4以及存储器 5,还在存储设备内部设置一个数据产生器模块8,该数据产生器模块8由软件或/和硬件构成。所述数据产生器模块8由一组具有不同数学模型的数据模式子模块组成,每种数据模式子模块均定义有一个唯一的数据模式代码,输入定义的数据模式代码将激活对应的数据模式子模块按自身数学模型产生相应的数据。本发明存储设备7是指各种电磁式存储设备,比如U盘、存储卡(SD,CF,MMC等)、SSD硬盘、普通硬盘等。
如图4所示,在对本发明存储设备7进行读写测试时,先将被测试的存储设备7通过所述接口 2与测试电脑6进行连接,然后按以下步骤进行操作第一步,如图5所示,测试电脑6向存储设备7发送测试的写命令,该写命令中包含写操作指令、写操作的逻辑地址以及写操作的数据模式代码,其中,对于存储器5的每个扇区来说,写命令中的逻辑地址与数据模式代码存在一对一的对应关系;当控制器3收到写命令后,根据写命令中逻辑地址与数据模式代码的对应关系依次将写操作的数据模式代码送入数据产生器模块8产生对应的摸拟用户写入数据,并将该摸拟用户写入数据存放在临时存储器4中,控制器3再根据对应的写操作的逻辑地址计算出要写到的存储器5的实际物理位置,然后将临时存储器4中的摸拟用户写入数据写到存储器5的实际物理位置上,其中,每次写入存储器5的摸拟用户写入数据量为扇区的整数倍,直到将存储设备7所有可用的容量写满为止。
第二步,如图6所示,测试电脑6向存储设备7发送测试的读命令,该读命令中包含读操作指令、读操作的逻辑地址以及读操作的数据模式代码,其中,对于存储器5的每个扇区来说,读命令中的逻辑地址与数据模式代码存在一对一的对应关系,而且对于同一个存储器5的同一个扇区来说,写操作的数据模式代码与读操作的数据模式代码相同;当控制器3收到读命令后,根据读命令中逻辑地址与数据模式代码的对应关系依次将读操作的数据模式代码送入数据产生器模块8产生与摸拟用户写入数据相同的测试对比数据,并将该测试对比数据存放在临时存储器4中;接着,控制器3再根据对应的读操作的逻辑地址计算出要读的存储器5的实际物理位置,然后将存储在该位置的摸拟用户写入数据读出到临时存储器5中,与相同逻辑地址的测试对比数据进行比对,如果这两组数据的比对结果是完全相同,则进行下一轮次比对,每一轮次比对的数据量为扇区的整数倍,直到将写满存储设备7所有可用容量的摸拟用户写入数据读出后全部比对完,而且比对结果均完全相同, 则结束测试,表示测试通过;如果在比对过程中只要出现有一个轮次的比对结果不一致,则退出测试,表示测试失败。
关于本发明存储设备内部的数据产生器模块说明如下1.数据产生器模块由软件构成如图7所示,这种数据产生器模块由软件构成,并且事先存贮在存储设备内部。该数据产生器模块由一组具有不同数学模型的数据模式子模块组成,每种数据模式子模块均定义有一个数学模型以及一个与该数学模型对应的数据模式代码,各个数学模型均不相同,数据模式代码与数学模型之间的关系具有唯一性。当数据产生器模块接收到发来的数据模式代码时,首先要判断该数据模式代码是否符合数据产生器模块所定义的数据模式类型,如果不是,说明数据产生器模块不支持,则退出操作。如果是,说明数据产生器模块支持这种数据模式类型,则转入下一步选择对应的数据模式,并按照该数据模式的数学模型产生相应的数据。2.数据产生器模块由硬件构成
如图8所示,这种数据产生器模块由硬件构成,并且事先设置在存储设备内部。该数据产生器模块由一个配置寄存器组和一组数据产生电路组成,其中,配置寄存器组由一组寄存器构成数据位,比如图8中的ΒΙ ΧΓΒΙΤ7 (8位二进制代码)。一组数据产生电路如图8 所示,由第一数据产生电路、第二数据产生电路、第三数据产生电路、第四数据产生电路、第五数据产生电路、第六数据产生电路、……、第η数据产生电路构成。配置寄存器的输出端与一组数据产生电路的选通端连接。当数据产生器模块接收到发来的数据模式代码时,由控制器向配置寄存器组配置数据位,该数据位输出的信号选通对应的一个数据产生电路, 比如图8中的第三数据产生电路,在启动信号作用下,第三数据产生电路按自身的数学模型产生相应的数据,并从输出端输出数据。如使用型号为74198的八位移位寄存器,当13 脚接低电平时,输出即为00000000 (0x00),当13脚接高电平,1脚和23脚接低电平,同时 3、5、7、9、15、17、19、21脚接高电平时,输出即为11111111 (OxFF)0至于每个数据产生电路的具体结构可以根据数学模型由硬件电路设计来实现,这是本领域技术人员在现有技术基础上可以做到的。硬件数据产生器模块相对软件数据产生器模块的优点是产生数据的速度快,但不足是增加了芯片的制作面积,硬件成本有所增加。3.数据产生器模块由软件与硬件结合构成
这种数据产生器模块由软件与硬件结合构成,并且软件和硬件均事先设置在存储设备内部。将上述软件数据产生器模块中的一组具有不同数学模型的数据模式子模块,与上述硬件数据产生器模块中的配置寄存器组进行组合,则可以构成一种软件与硬件结合的数据产生器模块。当数据产生器模块接收到发来的数据模式代码时,先根据数据模式代码向配置寄存器组配置数据位,然后通过读数据位来选择对应的数据模式,并按照该数据模式的数学模型产生相应的数据。4.数据产生器模块中的数据模式
数据产生器模块中的每种数据模式由一个数学模型来决定,而数学模型可以根据需要灵活设计。下面给一些数据模式以说明情况,但本发明中数据模式不局限于此。
数据模式代码数学模型说明0x00该数据模式产生每个扇区为全“0x00 ” (16进制表示)的数据,即存储器中所有的测试数据都为0x00。0x01该数据模式产生每个扇区为全“ΟχΙΨ” (16进制表示)的数据,即存储器中所有的测试数据都为OxFF。0x02该数据模式产生每个扇医为固定常数的数据,常数的值等于逻辑地址号。例如,逻辑地址为0x00时,这个扇医512个字节的数据全为0x00,当逻辑地址为0x01时, 这个扇E 512个字节的数据全为0x01,依次类推。0x03该数据模式产生每个扇医为固定常数的数据,常数的值等于输入的参数的值。比如传递给数据产生器模块的参数是0x55,则产生这个扇医全为0x55的数据。0x04该数据模式产生随机数,这些随机数不随逻辑地址号变化,即数据模式固定为4,则每个逻辑地址对应的扇医数据是一样的,但扇医内的数据是随机的和不同的。0x05该数据模式产生随机数,这些随机数随逻辑地址号变化,即数据模式固定为5,扇医数据会随逻辑地址变化产生不同的随机数,但逻辑地址固定,则每次产生的每个扇医的数据是一样的,不同逻辑地址产生的数据是不一样的。其它暂未定义的数据产生方式。 上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
权利要求
1.一种利用数据产生器模块来提高存储设备读写测试效率的方法,所述存储设备包括接口、控制器、临时存储器以及存储器,其特征在于在所述存储设备中预先设置一个由软件或/和硬件构成的数据产生器模块,该数据产生器模块由一组具有不同数学模型的数据模式子模块组成,每种数据模式子模块均定义有一个唯一的数据模式代码,输入定义的数据模式代码将激活对应的数据模式子模块按自身数学模型产生相应的数据;在对存储设备进行读写测试时,先将被测试的存储设备通过所述接口与测试电脑进行连接,然后按以下步骤进行操作第一步,测试电脑向存储设备发送测试的写命令,该写命令中包含写操作指令、写操作的逻辑地址以及写操作的数据模式代码,其中,对于存储器的每个扇区来说,写命令中的逻辑地址与数据模式代码存在一对一的对应关系;当控制器收到写命令后,根据写命令中逻辑地址与数据模式代码的对应关系依次将写操作的数据模式代码送入数据产生器模块产生对应的摸拟用户写入数据,并将该摸拟用户写入数据存放在临时存储器中,控制器再根据对应的写操作的逻辑地址计算出要写到的存储器的实际物理位置,然后将临时存储器中的摸拟用户写入数据写到存储器的实际物理位置上,其中,每次写入存储器的摸拟用户写入数据量为扇区的整数倍,直到将存储设备所有可用的容量写满为止;第二步,测试电脑向存储设备发送测试的读命令,该读命令中包含读操作指令、读操作的逻辑地址以及读操作的数据模式代码,其中,对于存储器的每个扇区来说,读命令中的逻辑地址与数据模式代码存在一对一的对应关系,而且对于同一个存储器的同一个扇区来说,写操作的数据模式代码与读操作的数据模式代码相同;当控制器收到读命令后,根据读命令中逻辑地址与数据模式代码的对应关系依次将读操作的数据模式代码送入数据产生器模块产生与摸拟用户写入数据相同的测试对比数据,并将该测试对比数据存放在临时存储器中;接着,控制器再根据对应的读操作的逻辑地址计算出要读的存储器的实际物理位置,然后将存储在该位置的摸拟用户写入数据读出到临时存储器中,与相同逻辑地址的测试对比数据进行比对,如果这两组数据的比对结果是完全相同,则进行下一轮次比对,每一轮次比对的数据量为扇区的整数倍,直到将写满存储设备所有可用容量的摸拟用户写入数据读出后全部比对完,而且比对结果均完全相同,则结束测试,表示测试通过;如果在比对过程中只要出现有一个轮次的比对结果不一致,则退出测试,表示测试失败。
2.根据权利要求1所述的方法,其特征在于所述数据产生器模块由软件构成,并且事先存贮在存储设备内部,当数据产生器模块接收到发来的数据模式代码时,首先要判断该数据模式代码是否符合数据产生器模块所定义的数据模式类型,如果不是,说明数据产生器模块不支持,则退出操作;如果是,说明数据产生器模块支持这种数据模式类型,则转入下一步选择对应的数据模式,并按照该数据模式的数学模型产生相应的数据。
3.根据权利要求1所述的方法,其特征在于所述数据产生器模块由硬件构成,并且事先设置在存储设备内部,该数据产生器模块由一个配置寄存器组和一组数据产生电路组成,其中,配置寄存器组由一组寄存器构成数据位,配置寄存器的输出端与一组数据产生电路的选通端连接;当数据产生器模块接收到发来的数据模式代码时,由控制器向配置寄存器组配置数据位,该数据位输出的信号选通对应的一个数据产生电路,在启动信号作用下, 该选通的数据产生电路按自身的数学模型产生相应的数据,并从输出端输出数据。
4.根据权利要求1所述的方法,其特征在于所述数据产生器模块由软件和硬件结合构成,并且软件和硬件均事先设置在存储设备内部,所述软件为一组具有不同数学模型的数据模式子模块,所述硬件为一个配置寄存器组;当数据产生器模块接收到发来的数据模式代码时,先根据数据模式代码向配置寄存器组配置数据位,然后通过读数据位来选择对应的数据模式子模块,并按照该数据模式子模块的数学模型产生相应的数据。
全文摘要
一种利用数据产生器模块来提高存储设备读写测试效率的方法,其特征在于预先在被测试的存储设备中设置一个数据产生器模块,当采用测试电脑对存储设备进行读写测试时,所有的读写测试数据不需要在测试电脑与存储设备之间传送,测试电脑只要向存储设备发送测试的写命令和测试的读命令,存储设备内部的数据产生器模块便可以按照写命令和读命令中的逻辑地址和数据模式代码产生对应数据,并进行相应的读写操作和比对。本发明减少了批量数据的传递时间,大大提高了数据的读写速度,特别是在批量化产生大容量存储设备时,极大的提高了存储设备产品的整体读写测试效率。
文档编号G11C29/56GK102522123SQ201110400460
公开日2012年6月27日 申请日期2011年12月6日 优先权日2011年12月6日
发明者匡启和, 王廷平, 肖佐楠, 薛毅, 郑茳 申请人:苏州国芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1