读命令的处理方法和装置、存储介质及电子装置

文档序号:1963604 发布日期:2021-12-14 浏览:12次 >En<

阅读说明:本技术 读命令的处理方法和装置、存储介质及电子装置 (Method and device for processing read command, storage medium and electronic device ) 是由 张雪 于 2021-09-14 设计创作,主要内容包括:本申请公开了一种读命令的处理方法和装置、存储介质及电子装置,其中,上述方法包括:接收到主机端的读命令,其中,所述读命令用于读取存储设备中目标逻辑地址上的数据;响应所述读命令,确定与所述目标逻辑地址对应的目标物理地址;按照所述目标物理地址查询目标错误记录表,其中,所述目标错误记录表用于记录所述存储设备中发生不可纠正错误的物理地址;在从所述目标错误记录表中查询到与所述目标物理地址匹配的物理地址的情况下,向所述主机端发送无效数据。通过本申请,解决了相关技术中读命令的处理方式存在需要对异常数据进行多次纠错以及重读操作导致的数据读取效率低的问题。(The application discloses a read command processing method and device, a storage medium and an electronic device, wherein the method comprises the following steps: receiving a read command from a host, wherein the read command is used for reading data at a target logical address in a storage device; responding to the read command, and determining a target physical address corresponding to the target logical address; inquiring a target error record table according to the target physical address, wherein the target error record table is used for recording the physical address of the uncorrectable error in the storage device; and sending invalid data to the host side under the condition that the physical address matched with the target physical address is inquired from the target error record table. By the method and the device, the problem of low data reading efficiency caused by the fact that error correction needs to be carried out on abnormal data for many times and re-reading operation needs to be carried out in a read command processing mode in the related technology is solved.)

读命令的处理方法和装置、存储介质及电子装置

技术领域

本申请涉及存储技术领域,具体而言,涉及一种读命令的处理方法和装置、存储介质及电子装置。

背景技术

存储设备,例如,固态硬盘(Solid State Drive,简称为SSD),可以被广泛应用于数据存储场景。以SSD为例,SSD的配件包括控制芯片、缓存芯片和用于存储数据的闪存芯片(即,Flash)。当Flash中某个块的生命周期接近尾声时,去读取该块中某一物理地址的数据可能会发生数据读取异常,需要执行多次纠错以及重读操作。如果执行多次重读以及纠错操作之后仍然不能读取到正确数据,将会导致数据读取失败。

目前,为了提高读取操作命中率,可以根据物理地址发生重读操作的概率调整物理地址的参考电压偏移值。然而,由于上述数据读取方式是对物理地址上的数据发生可纠错的读取错误时的概率进行统计,修改重读电压进行读取操作,存在多次纠错以及重读之后仍然获取数据失败的可能。

由此可见,相关技术中读命令的处理方式,存在需要对异常数据进行多次纠错以及重读操作导致的数据读取效率低的问题。

发明内容

本申请实施例提供了一种读命令的处理方法和装置、存储介质及电子装置,以至少解决相关技术中读命令的处理方式存在需要对异常数据进行多次纠错以及重读操作导致的数据读取效率低的问题。

根据本申请实施例的一个方面,提供了一种读命令的处理方法,包括:接收到主机端的读命令,其中,所述读命令用于读取存储设备中目标逻辑地址上的数据;响应所述读命令,确定与所述目标逻辑地址对应的目标物理地址;按照所述目标物理地址查询目标错误记录表,其中,所述目标错误记录表用于记录所述存储设备中发生不可纠正错误的物理地址;在从所述目标错误记录表中查询到与所述目标物理地址匹配的物理地址的情况下,向所述主机端发送无效数据。

在一个示例性实施例中,所述目标错误记录表用于记录所述存储设备中发生不可纠正错误的物理页地址;按照所述目标物理地址查询所述目标错误记录表包括:按照所述目标物理地址查询所述目标错误记录表中包含所述目标物理地址的物理页地址。

在一个示例性实施例中,在按照所述目标物理地址查询所述目标错误记录表之后,所述方法还包括:在未从所述目标错误记录表中查询到与所述目标物理地址匹配的物理地址的情况下,读取所述存储设备中所述目标逻辑地址上的数据;在检测到发生不可纠正错误的情况下,在所述目标错误记录表中添加目标记录,其中,所述目标记录用于指示所述目标物理地址所在的物理页发生不可纠正错误。

在一个示例性实施例中,在读取所述存储设备中所述目标逻辑地址上的数据之后,所述方法还包括:在检测到发生数据读取错误的情况下,对所述数据读取错误进行纠正;重新读取所述存储设备中所述目标逻辑地址上的数据,并对重新读取的数据执行校验操作,其中,所述校验操作用于对重新读取的数据进行错误校验;在所述校验操作的校验结果为纠错失败的情况下,确定所述目标逻辑地址上的数据发生不可纠正错误。

在一个示例性实施例中,在所述目标错误记录表中添加所述目标记录之后,所述方法还包括:按照所述目标错误记录表中的各个记录所记录的物理地址的大小,对所述各个记录进行排序。

在一个示例性实施例中,向所述主机端发送所述无效数据包括:向所述主机端发送无效数据和目标指示信息,其中,所述目标指示信息用于指示所述读命令所读取的数据发生不可纠正错误。

在一个示例性实施例中,确定与所述目标逻辑地址对应的所述目标物理地址包括:查询所述存储设备的地址映射表,将所述目标逻辑地址转换为对应的所述目标物理地址,其中,所述地址映射表用于记录所述存储设备内的逻辑地址与物理地址之间的映射关系。

根据本申请实施例的另一方面,还提供了一种读命令的处理装置,包括:接收单元,用于接收到主机端的读命令,其中,所述读命令用于读取存储设备中目标逻辑地址上的数据;第一确定单元,用于响应所述读命令,确定与所述目标逻辑地址对应的目标物理地址;查询单元,用于按照所述目标物理地址查询目标错误记录表,其中,所述目标错误记录表用于记录所述存储设备中发生不可纠正错误的物理地址;发送单元,用于在从所述目标错误记录表中查询到与所述目标物理地址匹配的物理地址的情况下,向所述主机端发送无效数据。

在一个示例性实施例中,所述目标错误记录表用于记录所述存储设备中发生不可纠正错误的物理页地址;所述查询单元包括:查询模块,用于按照所述目标物理地址查询所述目标错误记录表中包含所述目标物理地址的物理页地址。

在一个示例性实施例中,所述装置还包括:第一读取单元,用于在按照所述目标物理地址查询所述目标错误记录表之后,在未从所述目标错误记录表中查询到与所述目标物理地址匹配的物理地址的情况下,读取所述存储设备中所述目标逻辑地址上的数据;添加单元,用于在检测到发生不可纠正错误的情况下,在所述目标错误记录表中添加目标记录,其中,所述目标记录用于指示所述目标物理地址所在的物理页发生不可纠正错误。

在一个示例性实施例中,所述装置还包括:纠正单元,用于在读取所述存储设备中所述目标逻辑地址上的数据之后,在检测到发生数据读取错误的情况下,对所述数据读取错误进行纠正;第二读取单元,用于重新读取所述存储设备中所述目标逻辑地址上的数据;校验单元,用于对重新读取的数据执行校验操作,其中,所述校验操作用于对重新读取的数据进行错误校验;第二确定单元,用于在所述校验操作的校验结果为纠错失败的情况下,确定所述目标逻辑地址上的数据发生不可纠正错误。

在一个示例性实施例中,在所述目标错误记录表中添加所述目标记录之后,所述装置还包括:排序单元,用于在所述目标错误记录表中添加所述目标记录之后,按照所述目标错误记录表中的各个记录所记录的物理地址的大小,对所述各个记录进行排序。

在一个示例性实施例中,所述发送单元包括:发送模块,用于向所述主机端发送无效数据和目标指示信息,其中,所述目标指示信息用于指示所述读命令所读取的数据发生不可纠正错误。

在一个示例性实施例中,所述第一确定单元包括:转换模块,用于查询所述存储设备的地址映射表,将所述目标逻辑地址转换为对应的所述目标物理地址,其中,所述地址映射表用于记录所述存储设备内的逻辑地址与物理地址之间的映射关系。

根据本申请实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述读命令的处理方法。

根据本申请实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的读命令的处理方法。

在本申请实施例中,采用增加记录表对发生过不可纠正错误的物理地址进行记录的方式,通过接收到主机端的读命令,其中,读命令用于读取存储设备中目标逻辑地址上的数据;响应读命令,确定与目标逻辑地址对应的目标物理地址;按照目标物理地址查询目标错误记录表,其中,目标错误记录表用于记录存储设备中发生不可纠正错误的物理地址;在从目标错误记录表中查询到与目标物理地址匹配的物理地址的情况下,向主机端发送无效数据,由于对发生过不可纠正读取错误的数据的物理地址进行记录,在进行数据读取时通过查询该记录表可以确定该物理地址是否已发生过不可纠正读取错误,对于已发生不可纠正读取错误的物理地址无需进行多次纠错以及重读操作,直接返回无效数据,从而可以实现减少不必要的重读以及检错操作的目的,达到了提高数据读取效率、缩短获取数据所需的响应时间的技术效果,进而解决了相关技术中读命令的处理方式存在需要对异常数据进行多次纠错以及重读操作导致的数据读取效率低的问题。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

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

图1是根据本申请实施例的一种可选的读命令的处理方法的流程示意图;

图2是根据本申请实施例的一种可选的存储设备中的物理页的示意图;

图3是根据本申请实施例的另一种可选的读命令的处理方法的流程示意图;

图4是根据本申请实施例的又一种可选的读命令的处理方法的流程示意图;

图5是根据本申请实施例的一种可选的读命令的处理装置的结构框图;

图6是根据本申请实施例的一种可选的电子装置的结构框图。

具体实施方式

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

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

根据本申请实施例的一个方面,提供了一种读命令的处理方法。可选地,在本实施例中,上述读命令的处理方法可以应用于包含主机和存储设备的电子设备上,电子设备可以是终端设备,例如,PC(Personal Computer,个人计算机)、智能终端等,还可以是其他终端设备,本实施例中对此不做限定。

本实施例中的读命令的处理方法可以是由存储设备执行的,也可以是由与存储设备相连的控制设备执行的。以由存储设备执行本实施例中的读命令的处理方法为例,图1是根据本申请实施例的一种可选的读命令的处理方法的流程示意图,如图1所示,该方法的流程可以包括以下步骤:

步骤S102,接收到主机端的读命令,其中,读命令用于读取存储设备中目标逻辑地址上的数据。

本实施例中的读命令的处理方法可以应用在主机读取存储设备中特定逻辑地址中存储的数据的场景,上述主机和存储设备可以位于同一电子设备中,可选地,存储设备也可以是通过数据线连接到该电子设备上的存储设备。该存储设备可以具备数据存储功能的设备,例如,SSD,还可以是其他具有类似数据存储功能的设备,本实施例中以SSD为例进行说明。

SSD内部组件包含控制芯片、缓存芯片以及用于存储数据的闪存芯片(Flash),主机端可以向SSD下发读命令,用于读取SSD内部的Flash芯片中存储的数据。SSD的控制芯片可以接收主机下发的上述读命令。

需要说明的是,在计算机体系中从应用程序角度看到的是内存单元、存储单元以及网络主机的逻辑地址,通过查找存储设备中的逻辑地址来获取所需数据,即,该读命令用于读取存储设备中目标逻辑地址上的数据。

步骤S104,响应读命令,确定与目标逻辑地址对应的目标物理地址。

响应接收到的读命令,控制芯片可以确定与目标逻辑地址对应的目标物理地址。这里,物理地址是由磁盘的柱面、头、段等物理位置所确定的地址,根据接收到的读指令,经过寻址方式的变换将读取到的数据的逻辑地址转换为存储在主机端地址线上对应的物理地址。

需要说明的是,确定与目标逻辑地址对应的物理地址可以采用多种方式,例如,可以是查询存储设备内部的地址映射表,也可以是通过其他的方式,例如,使用逻辑地址与物理地址的变换公式进行计算,本实施例中对此不做限定。

步骤S106,按照目标物理地址查询目标错误记录表,其中,目标错误记录表用于记录存储设备中发生不可纠正错误的物理地址。

在本实施例中,可以使用目标错误记录表来记录存储设备中发生不可纠正错误(Uncorrectable Error,简称为UNC)的物理地址,例如,记录在数据读取时发生错误、且在执行纠错、重读以及检错操作后,仍然无法读取有效数据的物理地址,即,发生不可纠正错误的此类异常数据所对应的物理地址。

控制芯片可以按照目标物理地址查询目标错误记录表,确定目标错误记录表中是否存在与目标物理地址匹配的物理地址。目标错误记录表中的每个记录所记录的可以是物理地址,也可以是物理页地址。对应地,确定目标错误记录表中是否存在与目标物理地址匹配的物理地址可以是确定目标错误记录表中是否存在与目标物理地址相同的物理地址,也可以是确定目标错误记录表中是否存在与目标物理地址位于同一物理页的物理地址,还可以是确定目标错误记录表中是否存在包含目标物理地址的物理页地址。

需要进行说明的是,使用目标错误记录表所记录的是存储设备中已经发生UNC的物理地址,而非逻辑地址,该记录可以一直有效,因此,目标错误记录表也可称为UNC记录表。

步骤S108,在从目标错误记录表中查询到与目标物理地址匹配的物理地址的情况下,向主机端发送无效数据。

如果从目标错误记录表中查询到与目标物理地址匹配的物理地址,例如,相同的物理地址、属于同一物理页的物理地址、包含该目标物理地址的物理页地址等,则表示该目标物理地址上的数据发生过不可纠正错误,即使读取也无法读取到有效数据。在此情况下,控制芯片可以直接向主机端发送无效数据,从而避免多余的纠错、重读以及检错操作,加快了数据读取的响应时间,也延长了存储设备的使用寿命。

例如,当主机端读取的数据对应的物理地址命中UNC记录表中的地址时,直接向主机端返回UNC错误,而不再进行纠错、重读以及检错等处理,可以大大提高读性能,也提升了异常数据反馈的准确性。

通过上述步骤,接收到主机端的读命令,其中,读命令用于读取存储设备中目标逻辑地址上的数据;响应读命令,确定与目标逻辑地址对应的目标物理地址;按照目标物理地址查询目标错误记录表,其中,目标错误记录表用于记录存储设备中发生不可纠正错误的物理地址;在从目标错误记录表中查询到与目标物理地址匹配的物理地址的情况下,向主机端发送无效数据,相关技术中读命令的处理方式存在需要对异常数据进行多次纠错以及重读操作导致的数据读取效率低的问题,提高了数据读取效率,缩短了获取数据所需的响应时间。

在一个示例性实施例中,确定与目标逻辑地址对应的目标物理地址包括:

S11,查询存储设备的地址映射表,将目标逻辑地址转换为对应的目标物理地址,其中,地址映射表用于记录存储设备内的逻辑地址与物理地址之间的映射关系。

在本实施例中,可以使用地址映射表来记录存储设备内的逻辑地址与物理地址之间的映射关系。在确定与目标逻辑地址对应的物理地址时,可以查询该地址映射表,将目标逻辑地址转换为对应的物理地址,即,目标物理地址。

例如,对于SSD,接收到主机命令后,可以查询SSD的内部地址映射表(上述地址映射表的一种示例),获取对应的物理地址。

通过本实施例,通过查询地址映射表,将读取到的数据的逻辑地址转换为对应的物理地址,可以提高地址转换的效率。

在一个示例性实施例中,在进行存储设备内的数据读写时,可以以页(即,物理页)为单位进行读写。一个页的物理状态一般都是一致的,因此,若读取某逻辑地址对应的物理地址发生UNC错误时,则该物理页地址对应的其他逻辑地址再次进行读操作时一般也会发生UNC。基于此,在本实施例中,目标错误记录表可以用于记录存储设备中发生不可纠正错误的物理页地址,即,目标错误记录表所记录的是存储设备中发生不可纠正错误的物理页地址。

以SSD为例,由于SSD内部一般映射的最小粒度为4KB,即,DBU(分贝单位,即电压比的量度),而Flash最小以页为单位进行读写,页的大小一般为16KB或者32KB,一个页中至少对应4个DBU。一般一个页的物理状态都是一致的,所以若读取某逻辑地址对应的物理地址发生UNC错误时,则该物理页地址对应的其他逻辑地址再次进行读操作时一般也会发生UNC。基于此,在SSD内部增加UNC记录表,记录曾经发生UNC的物理页地址。

对应地,在本实施例中,按照目标物理地址查询目标错误记录表可以包括:

S21,按照目标物理地址查询目标错误记录表中包含目标物理地址的物理页地址。

目标错误记录表中记录的是发生UNC错误的物理地址所在的物理页地址。控制芯片可以按照目标物理地址查询UNC记录表中包含目标物理地址的物理页地址。如果查询到(即,命中),则可以确定UNC记录表中存在与该目标物理地址匹配的物理地址;否则(即,未命中),则可以确定UNC记录表中不存在与该目标物理地址匹配的物理地址。

示例性地,Flash中某一页存储的数据分布如图2所示。如果在读取该页的DBUm时发生UNC,则读取DBUx时,由于在同一个物理页上,颗粒状态一致,一般也会发生UNC。在UNC记录表中可以记录该物理页地址,当读操作命中该物理页地址时,可以直接返回无效数据,还可以返回UNC状态。

通过本实施例,通过记录发生UNC错误的物理地址所在的物理页地址,可以提高UNC错误的物理地址判断的准确性,避免无效的数据读取操作,提升数据读取的效率。

在一个示例性实施例中,在按照目标物理地址查询目标错误记录表之后,上述方法还包括:

S31,在未从目标错误记录表中查询到与目标物理地址匹配的物理地址的情况下,读取存储设备中目标逻辑地址上的数据;

S32,在检测到发生不可纠正错误的情况下,在目标错误记录表中添加目标记录,其中,目标记录用于指示目标物理地址所在的物理页发生不可纠正错误。

如果未从UNC记录表中查询到与目标物理地址匹配的物理地址,则可确定该物理地址或者该物理地址所在的物理页地址中未发生过UNC错误,控制芯片可以读取存储设备中目标逻辑地址上的数据。

如果读取到正确数据,控制芯片可以将读取到的正确数据发送给主机端。如果发生了可纠正错误,则可以对发生的错误进行纠正,并将纠正后读取到的正确数据发送给主机端。

可选地,如果检测到发生不可纠正错误,控制芯片可以在UNC记录表中添加一个新的记录,即,目标记录,该目标记录用于指示目标物理地址或者目标物理地址所在的物理页发生不可纠正错误。

例如,对于SSD,接收到主机端的读命令之后,首先查地址映射表,获取该逻辑地址对应的物理地址(block,page,offset);根据块地址和页地址,查找UNC记录表,确定是否命中UNC地址。如果未命中,进行正常的读操作。若进行纠错、重读和检错之后,依然发生UNC,则将该物理地址(block和page)记录到UNC记录表。

通过本实施例,在检测到发生UNC错误时,在UNC记录表中添加新的记录来记录发生该UNC的物理页地址,以对UNC记录表中记录的UNC进行实时更新,提高了异常数据查询匹配的准确性和全面性,也提升了数据的读性能。

在一个示例性实施例中,在读取存储设备中目标逻辑地址上的数据之后,上述方法还包括:

S41,在检测到发生数据读取错误的情况下,对数据读取错误进行纠正;

S42,重新读取存储设备中目标逻辑地址上的数据,并对重新读取的数据执行校验操作,其中,校验操作用于对重新读取的数据进行错误校验;

S43,在校验操作的校验结果为纠错失败的情况下,确定目标逻辑地址上的数据发生不可纠正错误。

在本实施例中,在读取存储设备中目标逻辑地址上的数据时,如果检测到发生数据读取错误,可以对数据进行纠正,并进行数据重读(即,重新读取存储设备中目标逻辑地址上的数据)、以及对重新读取的数据执行校验操作(也就是,上述的检错操作),以判断目标逻辑地址上的数据是否发生UNC。如果校验操作的校验结果为纠错失败,可以确定目标逻辑地址上的数据发生UNC,否则可以确定目标逻辑地址上的数据未发生UNC。

可选地,上述纠正操作、重读操作以及校验操作可以执行多轮(重复执行的次数可以根据需要进行灵活配置),以便确定要读取的数据是否发生UNC。

例如,SSD的控制芯片下发Flash读命令,读取数据。若发生ECC(Error CorrectingCode,错误检测与纠正)错误,则进行重读,根据纠错情况确定是否进行LDPC(Low DensityParity Check,低密度奇偶校验编码),这中间可能需要多次重读以及多次LDPC。如果数据成功纠正,可以向主机返回正确数据以及正确状态;如果发生UNC,则可以向主机返回无效数据,还可以返回UNC状态。

通过本实施例,对发生读取错误的数据进行纠正并重读,可以提高读取操作获得有效数据的概率。

在一个示例性实施例中,在目标错误记录表中添加目标记录之后,上述方法还包括:

S51,按照目标错误记录表中的各个记录所记录的物理地址的大小,对各个记录进行排序。

在添加目标记录时,可以将目标记录直接添加到UNC记录表的尾部或者头部,而不对UNC记录表中的各个记录执行其他处理。可选地,也可以根据UNC记录表中各个记录被匹配到的次数进行排序,例如,按照各个记录被匹配到的次数由多到少进行排序。

在本实施例中,为了保证UNC记录表查找的便捷性,提高查表的效率,在UNC记录表中添加目标记录之后,可以按照UNC记录表中各个记录所记录的物理地址的大小,对各个记录进行排序。

由于UNC记录表中的记录是按照物理地址的大小进行排序的,在进行查表时,可以采用二分法或者其他方式进行快速查表。并且,如果UNC记录表中的记录按照物理地址由小达到的顺序进行排序,在查找到第一个比要查找的物理地址大的物理地址时,没有查找到与要查找的物理地址匹配的物理地址,即可确定未查找到与要查找的物理地址匹配的物理地址。如果UNC记录表中的记录按照物理地址由小达到的顺序进行排序,在查找到第一个比要查找的物理地址小的物理地址时,没有查找到与要查找的物理地址匹配的物理地址,即可确定未查找到与要查找的物理地址匹配的物理地址。

通过本实施例,按地址大小对UNC记录表中的记录进行排序,可以提高查表的效率。

在一个示例性实施例中,向主机端发送无效数据包括:

S61,向主机端发送无效数据和目标指示信息,其中,目标指示信息用于指示读命令所读取的数据发生不可纠正错误。

除了向主机端发送无效数据以外,控制芯片还可以向主机端发送目标指示信息,该目标指示信息可以用于指示读命令所读取的数据发生UNC,例如,目标指示信息可以是UNC状态的指示信息。无效数据和目标指示信息可以是同时发送的,也可以是分别发送的,本实施例中对此不做限定。

可选地,目标指示信息还可以包含与UNC状态相关的信息,例如,发生UNC的时间(该时间可以是在UNC记录表中首次添加与该UNC相关的记录的时间)、物理页地址等相关信息。

通过本实施例,通过将无效数据和读命令所读取的数据发生UNC的指示信息一起发送给主机端,便于主机端基于该指示信息执行后续的处理操作,可以提高信息获取的便捷性。

下面结合可选示例对本申请实施例中的上述读命令的处理方法进行解释说明。在本可选示例中,存储设备为SSD,目标错误记录表为UNC记录表。

对于SSD,读命令的一种可选处理方式可以如图3所示,该读命令的处理方法的流程可以包括以下步骤:

步骤S302,接收主机端的读命令。

SSD的控制芯片接收到主机端的读命令,该读命令用于读取SSD中逻辑地址上的数据。

步骤S304,查表,获取对应的物理地址。

接收到主机命令后,SSD的控制芯片查询内部地址映射表,获取对应的物理地址。

步骤S306,发送Flash读命令读取数据。

控制芯片下发Flash读命令,由Flash芯片根据Flash读命令读取SSD内部存储的数据。

步骤S308,发生ECC错误,进行重读以及LDPC。

若发生ECC错误,则进行重读,根据纠错情况确定是否进行LDPC,这中间可能需要多次重读以及多次LDPC,损耗存储设备的性能。当Flash中某个块的生命周期接近尾声时,去读取某一物理地址上的数据可能会在发生多次重读以及LDPC之后,仍然无法读取到正确数据,从而影响SSD的读性能。

步骤S310,判断纠错是否成功,如果是,执行步骤S312,否则,执行步骤S314。

对发生读取错误的异常数据进行纠错,根据纠错情况执行下一步操作。

步骤S312,向主机端返回正确数据和状态。

若异常数据经过重读以及LDPC操作后,纠错成功,则会读取到正确数据。控制芯片向主机端发送正确数据以及正确状态。

步骤S314,向主机端返回无效数据和UNC状态。

若异常数据经过重读以及LDPC操作后,仍然纠错失败,则确定该异常数据发生UNC。控制芯片向主机端发送无效数据以及UNC状态。

本可选示例中提供的一种提高SSD读性能的方案,通过UNC记录表来记录已经发生UNC的物理地址。当主机端读取的数据对应的物理地址命中UNC记录表中的地址时,直接向主机端返回UNC错误,而不再进行重读以及LDPC处理,大大提高读性能。

结合图4所示,本可选示例中的读命令的处理方法的流程可以包括以下步骤:

步骤S402,主机端下发读命令。

SSD的控制芯片接收到主机端的读命令,该读命令用于读取SSD中逻辑地址上的数据。

步骤S404,查表,获取对应的物理地址。

接收到主机命令后,SSD的控制芯片查询内部地址映射表,获取对应的物理地址。

步骤S406,查询UNC记录表,检测是否命中,如果是,执行步骤S408,否则,执行步骤S410。

由于UNC记录表中记录的是发生UNC错误的物理地址所在的物理页地址,通过查询UNC表中是否有包含物理地址的物理页地址,检测是否命中。如果命中,执行步骤S408,否则,执行步骤S410。

步骤S408,向主机返回无效数据和UNC状态。

若经查表,确定UNC表中查询到了与目标物理地址匹配的物理地址,说明该数据对应的物理地址发生过不可纠正错误,则向主机端发送无效数据以及UNC状态。

步骤S410,进行正常读操作。

若经查表,确定UNC表中没有查询到与目标物理地址匹配的物理地址,说明该数据对应的物理地址未发生过不可纠正错误,则进行正常的读取操作。

步骤S412,判断数据读取是否发生UNC错误,如果是,执行步骤S414,否则,执行步骤S416。

在进行正常读取操作时,可以判断是否读取到正确数据,以及如果发生ECC错误时,经过一轮或多轮重读以及LDPC之后是否读取到正确数据。如果未读取到正确数据,确定数据读取发生UNC,执行步骤S414,否则,如果读取到正确数据,确定数据读取未发生UNC,执行步骤S416。

步骤S414,向主机返回无效数据和UNC状态,并更新UNC记录表。

如果数据读取发生UNC,控制芯片向主机端返回无效数据以及UNC状态,并将此次错误记录更新在UNC记录表中。

步骤S416,向主机返回正确数据和状态。

如果数据读取未发生UNC,说明该数据可进行正常读取,在读取操作后,控制芯片向主机端返回正确数据以及正确状态。

通过本可选示例,记录已经发生UNC的物理地址,将包含该物理地址信息的物理页地址记录在UNC记录表中,该记录一直有效;当主机端读取的数据对应的物理地址命中UNC记录表中的地址时,直接向主机端返回UNC错误,而不再进行重读以及LDPC处理,降低了存储设备的损耗,缩短了数据读取的响应时间,大大提高了SSD的读性能。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

根据本申请实施例的另一个方面,还提供了一种用于实施上述读命令的处理方法的读命令的处理装置。图5是根据本申请实施例的一种可选的读命令的处理装置的结构框图,如图5所示,该装置可以包括:

接收单元502,用于接收到主机端的读命令,其中,读命令用于读取存储设备中目标逻辑地址上的数据;

第一确定单元504,与接收单元502相连,用于响应读命令,确定与目标逻辑地址对应的目标物理地址;

查询单元506,与第一确定单元504相连,用于按照目标物理地址查询目标错误记录表,其中,目标错误记录表用于记录存储设备中发生不可纠正错误的物理地址;

发送单元508,与查询单元506相连,用于在从目标错误记录表中查询到与目标物理地址匹配的物理地址的情况下,向主机端发送无效数据。

需要说明的是,该实施例中的接收单元502可以用于执行上述步骤S102,该实施例中的第一确定单元504可以用于执行上述步骤S104,该实施例中的查询单元506可以用于执行上述步骤S106,该实施例中的发送单元508可以用于执行上述步骤S108。

通过上述模块,接收到主机端的读命令,其中,读命令用于读取存储设备中目标逻辑地址上的数据;响应读命令,确定与目标逻辑地址对应的目标物理地址;按照目标物理地址查询目标错误记录表,其中,目标错误记录表用于记录存储设备中发生不可纠正错误的物理地址;在从目标错误记录表中查询到与目标物理地址匹配的物理地址的情况下,向主机端发送无效数据,相关技术中读命令的处理方式存在需要对异常数据进行多次纠错以及重读操作导致的数据读取效率低的问题,提高了数据读取效率,缩短了获取数据所需的响应时间。

在一个示例性实施例中,上述装置包括:

接收单元,用于接收到主机端的读命令,其中,读命令用于读取存储设备中目标逻辑地址上的数据;

第一确定单元,用于响应读命令,确定与目标逻辑地址对应的目标物理地址;

查询单元,用于按照目标物理地址查询目标错误记录表,其中,目标错误记录表用于记录存储设备中发生不可纠正错误的物理地址;

发送单元,用于在从目标错误记录表中查询到与目标物理地址匹配的物理地址的情况下,向主机端发送无效数据。

在一个示例性实施例中,目标错误记录表用于记录存储设备中发生不可纠正错误的物理页地址;查询单元包括:

查询模块,用于按照目标物理地址查询目标错误记录表中包含目标物理地址的物理页地址。

在一个示例性实施例中,上述装置还包括:

第一读取单元,用于在按照目标物理地址查询目标错误记录表之后,在未从目标错误记录表中查询到与目标物理地址匹配的物理地址的情况下,读取存储设备中目标逻辑地址上的数据;

添加单元,用于在检测到发生不可纠正错误的情况下,在目标错误记录表中添加目标记录,其中,目标记录用于指示目标物理地址所在的物理页发生不可纠正错误。

在一个示例性实施例中,上述装置还包括:

纠正单元,用于在读取存储设备中目标逻辑地址上的数据之后,在检测到发生数据读取错误的情况下,对数据读取错误进行纠正;

第二读取单元,用于重新读取存储设备中目标逻辑地址上的数据;

校验单元,用于对重新读取的数据执行校验操作,其中,校验操作用于对重新读取的数据进行错误校验;

第二确定单元,用于在校验操作的校验结果为纠错失败的情况下,确定目标逻辑地址上的数据发生不可纠正错误。

在一个示例性实施例中,在目标错误记录表中添加目标记录之后,装置还包括:

排序单元,用于在目标错误记录表中添加目标记录之后,按照目标错误记录表中的各个记录所记录的物理地址的大小,对各个记录进行排序。

在一个示例性实施例中,发送单元包括:

发送模块,用于向主机端发送无效数据和目标指示信息,其中,目标指示信息用于指示读命令所读取的数据发生不可纠正错误。

在一个示例性实施例中,第一确定单元包括:

转换模块,用于查询存储设备的地址映射表,将目标逻辑地址转换为对应的目标物理地址,其中,地址映射表用于记录存储设备内的逻辑地址与物理地址之间的映射关系。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。

根据本申请实施例的又一个方面,还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行本申请实施例中上述任一项读命令的处理方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

S1,接收到主机端的读命令,其中,读命令用于读取存储设备中目标逻辑地址上的数据;

S2,响应读命令,确定与目标逻辑地址对应的目标物理地址;

S3,按照目标物理地址查询目标错误记录表,其中,目标错误记录表用于记录存储设备中发生不可纠正错误的物理地址;

S4,在从目标错误记录表中查询到与目标物理地址匹配的物理地址的情况下,向主机端发送无效数据。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例中对此不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

根据本申请实施例的又一个方面,还提供了一种用于实施上述读命令的处理方法的电子装置,该电子装置可以是服务器、终端、或者其组合。

图6是根据本申请实施例的一种可选的电子装置的结构框图,如图6所示,包括处理器602(可以是上述主机的一种示例)、通信接口604、存储器606(可以是上述存储设备的一种示例)和通信总线608,其中,处理器602、通信接口604和存储器606通过通信总线608完成相互间的通信,其中,

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

处理器706,用于执行存储器706上所存放的计算机程序时,实现如下步骤:

S1,接收到主机端的读命令,其中,读命令用于读取存储设备中目标逻辑地址上的数据;

S2,响应读命令,确定与目标逻辑地址对应的目标物理地址;

S3,按照目标物理地址查询目标错误记录表,其中,目标错误记录表用于记录存储设备中发生不可纠正错误的物理地址;

S4,在从目标错误记录表中查询到与目标物理地址匹配的物理地址的情况下,向主机端发送无效数据。

可选地,在本实施例中,通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线、或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子装置与其他设备之间的通信。

存储器可以包括SSD,也可以其他具有数据存储功能的存储部件。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。

作为一种示例,上述存储器606中可以但不限于包括上述读命令的处理装置中的接收单元502、第一确定单元504、查询单元506以及发送单元508。此外,还可以包括但不限于上述读命令的处理装置中的其他模块单元,本示例中不再赘述。

上述处理器可以是通用处理器,可以包含但不限于:CPU(Central ProcessingUnit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(DigitalSignal Processing,数字信号处理器)、ASIC(Application Specific IntegratedCircuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解,图6所示的结构仅为示意,实施上述读命令的处理方法的设备可以是终端设备,该终端设备可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图6其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图6中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图6所示的不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、ROM、RAM、磁盘或光盘等。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中所提供的方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

21页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种电表掉电数据快速存储方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!