一种面向SSD仿真平台错误注入方法及相关装置与流程

文档序号:16087315发布日期:2018-11-27 22:35阅读:181来源:国知局

本发明涉及计算机技术领域,更具体地说,涉及一种面向SSD仿真平台错误注入方法、系统、装置及计算机可读存储介质。



背景技术:

目前,在检测SSD的读/写/擦等操作的错误时,通常利用仿真环境进行。仿真环境需要模拟实现真实环境中出错的场景,用于实现模拟注入错误的功能。注入错误的类型包括读错误、写错误、擦错误,其中读错误要实现数据可纠回错误和不可纠回错误。

现有环境中的注入错误的方式,基本上是在地层接口处返回相应的错误码,并不能真实反映实际情况中的错误。

因此,如何真实反映实际情况中的错误,是本领域技术人员需要解决的问题。



技术实现要素:

本发明的目的在于提供一种面向SSD仿真平台错误注入方法、系统、装置及计算机可读存储介质,以解决现有技术中不能真实反映实际情况中的错误的问题。

为实现上述目的,本发明实施例提供了如下技术方案:

一种面向SSD仿真平台错误注入方法,包括:

确定当前目标操作信息;

判断所述目标操作信息是否与预设错误表中的错误数据匹配;其中,所述预设错误表包括至少一条错误信息,所述错误信息包括错误类型、错误数据;

若是,则返回目标错误信息对应的错误码,其中,所述目标信息为与所述目标操作信息匹配的错误数据对应的错误信息。

其中,所述错误信息还包括:触发次数,则所述方法还包括:

当任一错误信息对应的错误被触发次数等于对应的错误信息中的触发次数时,将对应的错误信息在所述错误表中删除。

其中,所述预设错误表包括LBA错误表和PBA错误表。

其中,所述判断所述目标操作信息是否与预设错误表中的错误数据匹配,包括:

当所述目标操作为host数据读取操作对应的信息时,判断读取的所述host数据是否与LBA错误表中预设读取数据匹配。

其中,所述判断所述目标操作信息是否与预设错误表中的错误数据匹配,包括:

当所述目标操作为垃圾回收数据或后台block数据的读操作时,判断读取的垃圾回收数据或后台block数据是否与所述PBA错误表中预设读取数据匹配。

其中,所述判断所述目标操作信息是否与预设错误表中的错误数据匹配,包括:

当所述目标操作为数据写操作或数据擦操作时,判断数据写操作或数据擦操作对应的PBA是否与所述PBA错误表中预设PBA匹配。

本申请还提供了一种面向SSD仿真平台错误注入系统,包括:

确定模块,用于确定当前目标操作信息;

匹配模块,用于判断所述目标操作信息是否与预设错误表中的错误数据匹配;

返回模块,用于当所述目标操作信息与预设错误表中的错误数据匹配时,返回与所述目标操作信息匹配的错误信息对应的错误码;其中,所述错误信息包括错误类型、错误数据。

其中,所述错误信息还包括:触发次数,则所述系统还包括:

更新模块,用于判断目标错误信息对应的错误被触发次数是否等于所述目标错误信息中的触发次数,若是,则将所述目标错误信息在所述错误表中删除。

本申请还提供了一种一种面向SSD仿真平台错误注入装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如所述面向SSD仿真平台错误注入方法的步骤。

本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如所述面向SSD仿真平台错误注入方法的步骤。

通过以上方案可知,本申请提供的一种面向SSD仿真平台错误注入方法,包括:确定当前目标操作信息;判断所述目标操作信息是否与预设错误表中的错误数据匹配;其中,所述预设错误表包括至少一条错误信息,所述错误信息包括错误类型、错误数据;若是,则返回目标错误信息对应的错误码,其中,所述目标信息为与所述目标操作信息匹配的错误数据对应的错误信息。

由此可见,本申请实施例提供的一种面SSD仿真平台错误注入方法,可以在对nand进行操作时,确定操作对应的目标操作信息,并将目标操作信息与预设错误表中的错误数据进行匹配,而预设错误表中包括至少一条错误信息,错误信息是根据实际出错情况预设错误类型、对应的错误数据等,因此在匹配到时,返回目标错误信息对应的错误码即可确定实际情况发生的错误,真实有效地模拟实际情况中发生的错误,而且由于可以预设错误类型、错误数据等,可以更多组合的模拟情况,提高对SSD测试的质量。

本申请还提供了一种面向SSD仿真平台错误注入系统、装置及计算机可读存储介质。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例公开的一种面向SSD仿真平台错误注入方法流程图;

图2为本发明实施例公开的一种具体的面向SSD仿真平台错误注入方法流程图;

图3为本发明实施例公开的一种面向SSD仿真平台错误注入系统结构示意图;

图4为本发明实施例公开的一种具体的面向SSD仿真平台错误注入系统结构示意图;

图5为本发明实施例公开的一种面向SSD仿真平台错误注入装置结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种面向SSD仿真平台错误注入方法、系统、装置及计算机可读存储介质,以解决现有技术中不能真实反映实际情况中的错误的问题。

参见图1,本发明实施例提供的一种面向SSD仿真平台错误注入方法,具体包括:

S101,确定当前目标操作信息。

具体地,首先系统确定对nand(计算机闪存设备)的操作信息,具体操作信息可以是读操作、写操作、擦操作,操作信息中还包括读操作的读取到的数据、数据的地址;进行写操作、擦操作的地址信息,如PBA(物理区块地址)。

需要说明的是,在每次对nand进行操作时,进行实时匹配预设错误表。

S102,判断所述目标操作信息是否与预设错误表中的错误数据匹配;其中,所述预设错误表包括至少一条错误信息,所述错误信息包括错误类型、错误数据。

具体地,判断目标操作信息是否与预设错误表中的错误数据匹配。

需要说明的是,在本方案中可以根据实际情况预设错误表。用户可以根据实际情况中发生的错误,预设错误的类型、具体出错信息等,然后在触发这些预设的错误。错误表中包括至少包括一条错误信息,错误信息包括错误类型,即读操作或写操作或擦操作、对应的错误数据,错误数据可以是地址信息、具体操作对应的数据等。

在本方案中,可以通过对Nand不同的操作类型(读/写/擦)以及不同数据类型(host数据、后台数据)进行区分,利用两种方式进行注入错误,预设两种不同的错误表,即LBA对应的错误表,和PBA对应的错误表,具体注入方式的区分在下述实施例做具体介绍,此处不再赘述。

此外,错误信息中还包括触发次数,即对应每条错误信息的触发次数,当对nand的操作中,某一条错误信息对应的错误被触发多次,而次数等于该错误信息对应的触发次数时,则可以更新错误表,将该错误信息删除,即不再检测这条错误,也可以节省错误表占用的空间。

S103,若是,则返回目标错误信息对应的错误码,其中,所述目标信息为与所述目标操作信息匹配的错误数据对应的错误信息。

具体地,如果目标操作信息与预设错误表中的某一条错误信息中的错误数据匹配时,则证明该操作出错,返回对应的目标错误信息对应的错误码。

由此可见,本申请实施例提供的一种面SSD仿真平台错误注入方法,可以在对nand进行操作时,确定操作对应的目标操作信息,并将目标操作信息与预设错误表中的错误数据进行匹配,而预设错误表中包括至少一条错误信息,错误信息是根据实际出错情况预设错误类型、对应的错误数据等,因此在匹配到时,返回目标错误信息对应的错误码即可确定实际情况发生的错误,真实有效地模拟实际情况中发生的错误,而且由于可以预设错误类型、错误数据等,可以更多组合的模拟情况,提高对SSD测试的质量。

下面对本申请提供的一种具体的面向SSD仿真平台错误注入方法进行介绍,下文描述的一种具体的面向SSD仿真平台错误注入方法与上述实施例可以相互参照。

参见图2,本申请实施例提供的一种具体的面向SSD仿真平台错误注入方法,具体包括:

S201,确定当前目标操作信息;

S202,当所述目标操作为host数据读取操作对应的信息时,判断读取的所述host数据是否与LBA错误表中预设读取数据匹配;若是,则执行S205。

在本方案中,可以通过对Nand不同的操作类型(读/写/擦)以及不同数据类型(host数据、后台数据)进行区分,利用两种方式进行注入错误,预设两种不同的错误表,即LBA(逻辑区块地址)对应的错误表,和PBA对应的错误表。

需要说明的是,预设错误时,可以预设两种类型的错误表,即,PBA错误表和LBA错误表,其中,LBA错误表的错误信息可以设置错误的类型、触发次数、出错的LBA等一些特定的信息,例如预设读取数据,其中读取数据包括具体操作的内容(如读取的数据内容),以及LBA信息;PBA错误表的错误信息可以设置错误的类型、触发次数、出错的PBA等一些特定的信息,例如,PBA、操作对应的数据等。

当目标操作是host数据的读取操作时,判断读取的host数据是否与LBA错误表中的预设读取数据匹配,如果是,则执行S205。

具体地,当目标操作时host数据的读操作时,注入有以下两个步骤:

(1)设置错误的类型,出错次数,出错的LBA等一些特定的信息,将这些信息保存在LBA错误表中,以便后期查询。

(2)上层用写数据的方式访问nand,同时将预设错误的元素中的错误类型保存到nand数据中。

触发错误:

(1)读取上层数据。

(2)检测nand数据中预设的错误,检查LBA错误表中是否存在此元素。

(3)如果存在此元素,待错误全部触发完成后,更新该错误表,即删除此元素对应的错误信息。

(4)根据元素中的错误类型、错误次数去返回相应的错误码。

S203,当所述目标操作为垃圾回收数据或后台block数据的读操作时,判断读取的垃圾回收数据或后台block数据是否与所述PBA错误表中预设读取数据匹配;若是,则执行S205。

当目标操作是垃圾回收数据或者后台block数据的读操作时,则需要利用PBA错误表进行判断,即判断读取的数据是否与PBA错误表中的预设读取数据匹配,若是,则执行S205。

S204,当所述目标操作为数据写操作或数据擦操作时,判断数据写操作或数据擦操作对应的PBA是否与所述PBA错误表中预设PBA匹配;若是,则执行S205。

其中,所述预设错误表包括至少一条错误信息,所述错误信息包括错误类型、错误数据。

具体地,当目标操作时数据的写擦操作时,即可利用PBA错误表进行判断,而且只需要知道操作对应的PBA而不需要确定对应的具体数据。判断写、擦操作对应的PBA是否与PBA错误表中预设的PBA匹配,若是,则执行S205。

具体地,当PBA注入错误时,适合底层擦写操作,进行一下操作:

预设错误:

(1)设置错误的类型、出错次数、出错的PBA等一些特定的信息,将这些信息保存在PBA错误表中,以便后期查询。

触发错误:

(1)底层nand进行写、擦其中的操作。

(2)将nand发下来的PBA去PBA错误表中进行查询是否存在此元素。

(3)如果存在此元素,待错误全部触发完成后,更新特定的错误表。

(4)根据元素中的错误类型、错误次数去返回相应的错误码。

S205,返回目标错误信息对应的错误码,其中,所述目标信息为与所述目标操作信息匹配的错误数据对应的错误信息。

由此可见,本申请实施例提供的一种具体的面向SSD仿真平台注入错误的方法采用LBA和PBA两种注入错误的方式,能够快速注入错误,在SSD开发期间可以进行单元测试,快速发现开发算法中存在的问题和不足,及时进行更正,并且容易使用,缩短了开发人员和测试人员的学习周期,加快了开发进度。同时可以提供多种注入方法和多种错误类型,真实有效的模拟真实情况中发生的错误,并且可以利用本申请的方法进一步提供触发错误时自行处理错误的接口,实现更多组合的模拟情况。

下面对本申请实施例提供的一种面向SSD仿真平台错误注入系统进行介绍,下文描述的一种面向SSD仿真平台错误注入系统与上述任一实施例可以相互参照。

参见图3,本申请实施例提供的一种面向SSD仿真平台错误注入系统,具体包括:

确定模块301,用于确定当前目标操作信息;

匹配模块302,用于判断所述目标操作信息是否与预设错误表中的错误数据匹配;

返回模块303,用于当所述目标操作信息与预设错误表中的错误数据匹配时,返回与所述目标操作信息匹配的错误信息对应的错误码;其中,所述错误信息包括错误类型、错误数据。

本实施例的面向SSD仿真平台错误注入系统用于实现前述的面向SSD仿真平台错误注入方法,因此面向SSD仿真平台错误注入系统中的具体实施方式可见前文中的面向SSD仿真平台错误注入方法的实施例部分,例如,确定模块301,匹配模块302,返回模块303,分别用于实现上述面向SSD仿真平台错误注入方法中步骤S101,S102,S103,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

下面对本申请实施例提供的一种具体的面向SSD仿真平台错误注入系统进行介绍,与上述实施例可以相互参照。

参见图4,本申请实施例提供的一种具体的面向SSD仿真平台错误注入系统,具体包括:

确定模块301,用于确定当前目标操作信息。

第一匹配模块401,用于当所述目标操作为host数据读取操作对应的信息时,判断读取的所述host数据是否与LBA错误表中预设读取数据匹配,若是,调用返回模块303。

第二匹配模块402,用于当所述目标操作为垃圾回收数据或后台block数据的读操作时,判断读取的垃圾回收数据或后台block数据是否与所述PBA错误表中预设读取数据匹配,若是,调用返回模块303。

第三匹配模块403,用于当所述目标操作为数据写操作或数据擦操作时,判断数据写操作或数据擦操作对应的PBA是否与所述PBA错误表中预设PBA匹配,若是,调用返回模块303。

返回模块303,用于返回与所述目标操作信息匹配的错误信息对应的错误码;其中,所述错误信息包括错误类型、错误数据。

本实施例的面向SSD仿真平台错误注入系统用于实现前述的面向SSD仿真平台错误注入方法,因此面向SSD仿真平台错误注入系统中的具体实施方式可见前文中的面向SSD仿真平台错误注入方法的实施例部分,例如,确定模块301,第一匹配模块401,第二匹配模块402,第三匹配模块403,返回模块303,分别用于实现上述面向SSD仿真平台错误注入方法中步骤S201,S202,S203,S204,S205。所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

本申请还提供了一种数据采集设备,参见图5,本发明实施例提供的一种数据采集设备的结构图,如图5所示,包括:

存储器100,用于存储计算机程序;

处理器200,用于执行所述计算机程序时可以实现上述实施例所提供的步骤。

具体的,存储器100包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机可读指令,该内存储器为非易失性存储介质中的操作系统和计算机可读指令的运行提供环境。处理器200为数据采集设备提供计算和控制能力,可以实现上述任一数据采集方法实施例所提供的步骤。

在上述实施例的基础上,作为优选实施方式,所述数据采集设备还包括:

输入接口300,用于获取外部导入的计算机程序、参数和指令,经处理器控制保存至存储器中。该输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是键盘、触控板或鼠标等。具体的,在本实施例中,用户可以通过输入接口预设错误表,预设不同类型的错误表即对应的错误信息。

显示单元400,用于显示处理器发送的数据。该显示单元40可以为PC机上的显示屏、液晶显示屏或者电子墨水显示屏等。具体的,在本实施例中,显示单元400可以显示返回的错误码等信息。

网络端口500,用于与外部各终端设备进行通信连接。该通信连接所采用的通信技术可以为有线通信技术或无线通信技术,如移动高清链接技术(MHL)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术等。在本实施例中,可以利用网络借口500传输预设错误表或错误码。

本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1