测试方法和装置与流程

文档序号:13699480阅读:184来源:国知局
技术领域本发明涉及计算机技术领域,尤其涉及一种测试方法和装置。

背景技术:
闪存(FlashMemory,全称是闪烁存储器)的读写单位为页,而页的大小一般为4KB或8KB,但操作系统读写数据是按HDD(HardDiskDrive,硬盘驱动器)的扇区尺寸进行的(如512Byte(字节)),闪存擦除以块作单位,而且未擦除就无法写入,这导致操作系统现在使用的文件系统根本无法管理SSD(SolidStateDisk,固态硬盘),需要更换更先进、复杂的文件系统去解决这个问题,但这样就会加重操作系统的负担。而为了不加重操作系统的负担,SSD采用软件的方式把闪存的操作虚拟成磁盘的独立扇区操作,这就是闪存映射转换层FTL。因FTL存在于文件系统和物理介质(闪存)之间,操作系统只需跟原来一样操作LBA(LogicalBlockAddress,逻辑区块地址,简称逻辑地址)即可,而LBA到PBA(PhysicsBlockAddress,物理区块地址,简称物理地址)的所有转换工作,就全交由FTL负责。依据前述的内容可知,FTL是介于NAND(与非门)闪存芯片(是固态硬盘的机芯芯片)与基础文件系统(如FAT32)之间的一个转换层,它使操作系统和文件系统能够像访问硬盘一样访问NAND闪存设备。随着对存储设备读写性能要求的增加,面对不同数据及数据长度组成的存储数据,对FTL的稳定性和效率有更高的要求。通常,为了确保FTL的正确性,除了使用特定测试用例针对FTL某个功能模块进行功能性测试外,还需要对其进行长时间,大数据量的逻辑写读测试,也称为逻辑老化测试。现有技术中,对存储器中FTL的测试,是将存储器硬件与外界的PC进行连接,对存储器进行逻辑测试,判断FTL的正确性,测试效率低。

技术实现要素:
本发明的主要目的在于提供一种测试方法和装置,旨在解决FTL测试效率低的技术问题。为实现上述目的,本发明提出一种测试方法,所述测试方法包括:将待测试的闪存映射转换层程序移植到主机;在主机将测试数据写入所述待测试的闪存映射转换层程序计算得到的物理地址对应的存储区域;读取写入的所述测试数据作为读出数据;对比所述测试数据和所述读出数据,根据对比结果,判断所述闪存映射转换层程序是否正确。可选地,在主机将测试数据写入所述待测试的闪存映射转换层程序计算得到的物理地址对应的存储区域的步骤包括:根据所述待测试的闪存映射转换层程序,计算得到用于写入所述测试数据的存储区域的物理块地址;将所述物理块地址重定向到主机的高速存储设备的存储区域的物理地址;将所述测试数据写入所述高速存储设备的存储区域的物理地址对应区域。可选地,所述根据对比结果,判断所述闪存映射转换层程序是否正确的步骤包括:在所述测试数据和所述读出数据的对比结果相同时,判断所述待测试的闪存映射转换层程序正确;在所述测试数据和所述读出数据的对比结果不同时,判断所述待测试的闪存映射转换层程序错误。可选地,在对多个不同的闪存映射转换层程序进行测试时,所述将待测试的闪存映射转换层程序移植到主机的步骤包括:将待测试的多个不同闪存映射转换层程序移植到主机;所述在主机将测试数据写入所述待测试的闪存映射转换层程序计算得到的物理地址对应的存储区域的步骤还包括:在主机将测试数据写入所述不同的待测试的闪存映射转换层程序计算得到的物理地址对应的存储区域;所述读取写入的所述测试数据作为读出数据的步骤包括:读取写入不同物理地址的所述测试数据作为读出数据。可选地,所述测试数据存储在主机的可读写本地文件中,或者在所述主机创建可读写本地文件存储所述测试数据;所述测试数据通过主机的系统响应机制在激励发送端和所述闪存映射转换层程序之间传输。本发明进一步提供一种测试装置,所述测试装置包括:移植模块,用于将待测试的闪存映射转换层程序移植到主机;写入模块,用于在主机将测试数据写入所述待测试的闪存映射转换层程序计算得到的物理地址对应的存储区域;读取模块,用于读取写入的所述测试数据作为读出数据;判断模块,用于对比所述测试数据和所述读出数据,根据对比结果,判断所述闪存映射转换层程序是否正确。可选地,所述写入模块包括:计算单元,用于所述待测试的闪存映射转换层程序计算得到用于写入所述测试数据的存储区域的物理块地址;重定向单元,用于将所述物理块地址重定向到主机的高速存储设备的存储区域的物理地址;写入单元,用于将所述测试数据写入所述高速存储设备的存储区域的物理地址对应区域。可选地,所述判断模块包括:对比单元,对比所述测试数据和所述读出数据是否相同;判断单元,用于在所述测试数据和所述读出数据的对比结果相同时,判断所述待测试的闪存映射转换层程序正确;以及在所述测试数据和所述读出数据的对比结果不同时,判断所述待测试的闪存映射转换层程序错误。可选地,在对多个不同的闪存映射转换层程序进行测试时,所述移植模块包括:多程序移植单元,用于将待测试的多个不同闪存映射转换层程序移植到主机;所述写入模块还包括:多程序写入单元,用于在主机将测试数据写入所述不同的待测试的闪存映射转换层程序计算得到的物理地址对应的存储区域;所述读取模块包括:多程序读取单元,用于读取写入不同物理地址的所述测试数据作为读出数据。可选地,所述测试数据存储在主机的可读写本地文件中,或者在所述主机创建可读写本地文件存储所述测试数据;所述测试数据通过主机的系统响应机制在激励发送端和所述闪存映射转层换程序之间传输。本发明提出的测试方法和装置,将闪存映射转换层FTL算法程序在主机进行测试,在主机进行测试数据的传输,通过主机的高性能处理器进行FTL算法程序的运算,提高运算效率,省去真实测试环境的物理测试时间,优化了测试通路,测试效率高。附图说明图1为本发明测试方法第一实施例的流程示意图;图2为图1中写入测试数据的步骤的细化流程示意图;图3为图1中判断待测试的闪存映射转换层程序是否正确的步骤的细化流程示意图;图4为本发明测试方法第二实施例的流程示意图;图5为本发明测试装置第一实施例的功能模块示意图;图6为图5中写入模块的细化功能模块示意图;图7为图5中判断模块的细化功能模块示意图;图8为本发明测试装置第二实施例的功能模块示意图。本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。本发明提供一种测试方法,参照图1,图1为本发明测试方法的第一实施例的流程示意图,所述测试方法包括:步骤S10,将待测试的闪存映射转换层程序移植到主机;在本实施例中,所述待测试的闪存映射转层程序由闪存的存储芯片移植到主机的测试环境,进行大数据量,长时间的逻辑写读测试,或者也可称为逻辑老化测试,在所述主机进行测试省去真实环境下闪存到主机的测试步骤,即存储设备通过USB/SATA等接口与主机进行测试的过程。可以理解的是,所述测试数据通过主机的系统消息、事件或中断等响应机制在激励发送端和所述闪存映射转层换程序之间传输,在所述激励发送端和所述待测试的闪存映射转换层程序之间的测试类似于系统中线程或进程与线程或进程之间的通信,涉及到的数据在主机系统的内存或存储设备中进行交换,而不是通过外部存储设备与主机之间通过物理通路进行数据交换,节省了数据的传输时间。步骤S20,在主机将测试数据写入所述待测试的闪存映射转换层程序计算得到的物理地址对应的存储区域;所述闪存映射转换层FTL程序用于将LogicalBlockAddress,逻辑区块地址LBA转换成PhysicalBlockAddress,物理块地址PBA,在本实施例中,所述PBA主要指NandFlash内存的地址,FTL程序将所述LBA转换成PBA的过程涉及到处理芯片的计算,在存储设备中,由存储控制芯片进行FTL程序的运算,由于存储设备的限制,所述存储设备的存储控制芯片与主机的处理芯片相比,运算能力较差,由主机的处理芯片进行所述FTL程序的运算,效率更高。参照图2,所述步骤S20包括:步骤S21,根据所述待测试的闪存映射转换程序,计算得到用于写入所述测试数据的存储区域的物理块地址;步骤S22,将所述物理块地址重定向到主机的高速存储设备的存储区域的物理地址;在本实施例中,将所述待测试的闪存映射转换层程序移植到主机进行逻辑写读测试,利用主机较高运算能力的处理芯片进行FTL程序的运算,完成LBA到PBA的转换,在计算得到PBA后,需要将所述测试数据写入所述PBA对应的物理存储区域,然而在主机进行的是虚拟的逻辑写读测试,不存在所述PBA对应的真实的外部存储设备的存储区域,在本实施例中,计算得到所述PBA后,将所述PBA重定向到主机的高速存储设备的存储区域的物理地址。步骤S23,将所述测试数据写入所述高速存储设备的存储区域的物理地址对应区域。在本实施例中,在对所述待测试的闪存映射转换层程序进行逻辑写入测试时,将所述测试数据写入所述PBA重定向到的所述主机的高速存储设备(如动态随机存取存储器DRAM或固态硬盘SSD)存储区域的物理地址的对应区域。可以理解的是,所述测试数据可以存储在主机的可读写本地文件中,或者在所述主机可以创建可读写本地文件存储所述测试数据。步骤S30,读取写入的所述测试数据作为读出数据;发送控制命令到主机的处理芯片,读取指定位置,即所述测试数据写入的物理地址对应的存储区域的数据,将所述数据作为读出数据。步骤S40,对比所述测试数据和所述读出数据,根据对比结果,判断所述闪存映射转换层程序是否正确。将步骤S30读取的所述读出数据与步骤S20写入的所述测试数据进行对比,确定所述闪存映射转换层程序是否正确。参照图3,步骤S40包括:步骤S41,在所述测试数据和所述读出数据的对比结果相同时,判断所述待测试的闪存映射转换层程序正确;步骤S42,在所述测试数据和所述读出数据的对比结果不同时,判断所述待测试的闪存映射转换层程序错误。在本实施例中,当所述待测试的闪存映射转换层程序发生错误时,可通过主机的测试环境,在所述主机对所述待测试的闪存映射转换层程序进行白盒测试,通过断点调试,逻辑覆盖等测试方法进行错误程序段的定位,进而确定所述待测试的闪存映射转换程序的错误。本实施例提出的测试方法,将待测试的闪存映射转换层程序移植到主机进行测试,在主机系统内部进行测试数据的传输,节省了数据在真实环境下在外部存储设备和主机之间测试的时间,通过主机的较高性能的处理芯片运算所述待测试的闪存映射转换层程序,节省时间,提高效率。进一步地,基于第一实施例本发明还提出测试方法的第二实施例,参照图4,在对多个不同的闪存映射转换层程序进行测试时,所述步骤S10包括:步骤S11,将待测试的多个不同闪存映射转换层程序移植到主机;在本实施例中,在需要对多个不同的待测试的闪存映射转换层程序进行逻辑老化测试时,可将所述多个不同的闪存映射转换层程序移植到主机的测试环境。可以理解的是,在本实施例中,可以采用并行的方式对多个不同的待测试的闪存映射转换层程序同时进行逻辑老化测试。所述步骤S20还包括:步骤S24,在主机将测试数据写入所述不同的待测试的闪存映射转换层程序计算得到的物理地址对应的存储区域;所述步骤S30包括:步骤S31,读取写入不同物理地址的所述测试数据作为读出数据。本实施例提出的测试方法,采用并行的方式,可以同时对不同的待测试的闪存映射转换层程序进行逻辑老化测试,进一步提高测试效率,节省时间。本发明进一步提供一种测试装置。参照图5,图5为本发明测试装置的第一实施例的功能模块的示意图。需要强调的是,对本领域的技术人员来说,图5所示功能模块图仅仅是一个较佳实施例的示例图,本领域的技术人员围绕图5所示的测试装置的功能模块,可轻易进行新的功能模块的补充;各功能模块的名称是自定义名称,仅用于辅助理解测试装置的各个程序功能块,不用于限定本发明的技术方案,本发明技术方案的核心是,各自定义名称的功能模块所要达成的功能。本实施例提出的测试装置,所述测试装置包括:移植模块10,用于将待测试的闪存映射转换层程序移植到主机;在本实施例中,所述待测试的闪存映射转层程序由闪存的存储芯片移植到主机的测试环境,进行大数据量,长时间的逻辑写读测试,或者也可称为逻辑老化测试,在所述主机进行测试省去真实环境下闪存到主机的测试步骤,即存储设备通过USB/SATA等接口与主机进行测试的过程。可以理解的是,所述测试数据通过主机的系统消息、事件或中断等响应机制在激励发送端和所述闪存映射转层换程序之间传输,在所述激励发送端和所述待测试的闪存映射转换层程序之间的测试类似于系统中线程或进程与线程或进程之间的通信,涉及到的数据在主机系统的内存或存储设备中进行交换,而不是通过外部存储设备与主机之间通过物理通路进行数据交换,节省了数据的传输时间。写入模块20,用于在主机将测试数据写入所述待测试的闪存映射转换层程序计算得到的物理地址对应的存储区域;所述闪存映射转换层FTL程序用于将LogicalBlockAddress,逻辑区块地址LBA转换成PhysicalBlockAddress,物理块地址PBA,在本实施例中,所述PBA主要指NandFlash内存的地址,FTL程序将所述LBA转换成PBA的过程涉及到处理芯片的计算,在存储设备中,由存储控制芯片进行FTL程序的运算,由于存储设备的限制,所述存储设备的存储控制芯片与主机的处理芯片相比,运算能力较差,由主机的处理芯片进行所述FTL程序的运算,效率更高。参照图6,所述写入模块20包括:计算单元21,用于根据所述待测试的闪存映射转换程序,计算得到用于写入所述测试数据的存储区域的物理块地址;重定向单元22,用于将所述物理块地址重定向到主机的高速存储设备的存储区域的物理地址;在本实施例中,将所述待测试的闪存映射转换层程序移植到主机进行逻辑写读测试,利用主机较高运算能力的处理芯片进行FTL程序的运算,完成LBA到PBA的转换,在计算得到PBA后,需要将所述测试数据写入所述PBA对应的物理存储区域,然而在主机进行的是虚拟的逻辑写读测试,不存在所述PBA对应的真实的外部存储设备的存储区域,在本实施例中,计算得到所述PBA后,将所述PBA重定向到主机的高速存储设备的存储区域的物理地址。写入单元23,用于将所述测试数据写入所述高速存储设备的存储区域的物理地址对应区域。在本实施例中,在对所述待测试的闪存映射转换层程序进行逻辑写入测试时,将所述测试数据写入所述PBA重定向到的所述主机的高速存储设备(如动态随机存取存储器DRAM或固态硬盘SSD)存储区域的物理地址的对应区域。可以理解的是,所述测试数据可以存储在主机的可读写本地文件中,或者在所述主机可以创建可读写本地文件存储所述测试数据。读取模块30,用于读取写入的所述测试数据作为读出数据;判断模块40,用于对比所述测试数据和所述读出数据,根据对比结果,判断所述闪存映射转换程序是否正确。将读取模块30读取的所述读出数据与写入模块20写入的所述测试数据进行对比,确定所述闪存映射转换层程序是否正确。参照图7,所述判断模块40包括:对比单元41,对比所述测试数据和所述读出数据是否相同;判断单元42,用于在所述测试数据和所述读出数据的对比结果相同时,判断所述待测试的闪存映射转换层程序正确;以及在所述测试数据和所述读出数据的对比结果不同时,判断所述待测试的闪存映射转换层程序错误。在本实施例中,当所述待测试的闪存映射转换层程序发生错误时,可通过主机的测试环境,在所述主机对所述待测试的闪存映射转换层程序进行白盒测试,通过断点调试,逻辑覆盖等测试方法进行错误程序段的定位,进而确定所述待测试的闪存映射转换程序的错误。本实施例提出的测试装置,将待测试的闪存映射转换层程序移植到主机进行测试,在主机系统内部进行测试数据的传输,节省了数据在真实环境下在外部存储设备和主机之间测试的时间,通过主机的较高性能的处理芯片运算所述待测试的闪存映射转换层程序,节省时间,提高效率。进一步地,基于第一实施例本发明还提出测试装置的第二实施例,参照图8,在对多个不同的闪存映射转换层程序进行测试时,所述移植模块10包括:多程序移植单元11,用于将待测试的多个不同闪存映射转换层程序移植到主机;在本实施例中,在需要对多个不同的待测试的闪存映射转换层程序进行逻辑老化测试时,可将所述多个不同的闪存映射转换层程序移植到主机的测试环境。可以理解的是,在本实施例中,可以采用并行的方式对多个不同的待测试的闪存映射转换层程序同时进行逻辑老化测试。所述写入模块20还包括:多程序写入单元24,用于在主机将测试数据写入所述不同的待测试的闪存映射转换层程序计算得到的物理地址对应的存储区域;所述读取模块30包括:多程序读取单元31,用于读取写入不同物理地址的所述测试数据作为读出数据。本实施例提出的测试装置,采用并行的方式,可以同时对不同的待测试的闪存映射转换层程序进行逻辑老化测试,进一步提高测试效率,节省时间。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1