[0001]
本公开的实施例大体上涉及一种存储器子系统,且更具体地说,涉及存储器子系统处的错误控制操作的优先级排序。
背景技术:[0002]
存储器子系统可为存储装置、存储器模块,以及存储装置和存储器模块的混合。存储器子系统可以包含存储数据的一或多个存储器组件。存储器组件可以是例如非易失性存储器组件和易失性存储器组件。一般来说,主机系统可利用存储器子系统以在存储器组件处存储数据且从存储器组件检索数据。
技术实现要素:[0003]
在一个方面中,本申请案针对于一种系统,其包括:存储器组件;和处理装置,其以操作方式与所述存储器组件耦合以进行以下操作:确定存储器存取操作已失败;确定第一错误控制操作的执行是否已补救所述存储器存取操作的所述失败;和响应于确定所述第一错误控制操作已补救所述存储器存取操作的所述失败,基于已补救所述失败的所述第一错误控制操作来针对已失败的后续存储器存取操作改变多个经优先级排序错误控制操作中的一或多个经优先级排序错误控制操作的执行次序。
[0004]
在另一方面中,本申请案针对于一种方法,其包括:接收对存储器存取操作已失败的指示;确定多个经优先级排序错误控制操作中的经优先级排序错误控制操作的执行是否已补救所述存储器存取操作的所述失败;响应于确定所述经优先级排序错误控制操作的所述执行未补救所述失败,通过处理装置确定与所述经优先级排序错误控制操作中的一或多个相关联的成功度量是否满足阈值成功度量;和响应于确定已经满足了所述阈值成功度量,从所述多个经优先级排序错误控制操作去除一或多个经优先级排序错误控制操作。
[0005]
在另一方面中,本申请案针对于一种包括指令的非暂时性计算机可读媒体,所述指令在由处理装置执行时致使所述处理装置进行以下操作:确定存储器存取操作已失败;确定第一错误控制操作的执行是否已补救所述存储器存取操作的所述失败;和响应于确定所述第一错误控制操作已补救所述存储器存取操作的所述失败,基于已补救所述失败的所述第一错误控制操作来针对已失败的后续存储器存取操作改变多个经优先级排序错误控制操作中的一或多个经优先级排序错误控制操作的执行次序。
附图说明
[0006]
根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。然而,附图不应被视为将本公开限制于具体实施例,而是仅用于解释和理解。
[0007]
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算环境。
[0008]
图2是根据本公开的一些实施例的基于存储器存取操作失败来执行错误处置的实例方法的流程图。
[0009]
图3a说明根据本公开的一些实施例的实例预定错误控制操作集和实例经优先级排序错误控制操作集。
[0010]
图3b说明根据本公开的一些实施例的实例经优先级排序错误控制操作集的执行次序的改变。
[0011]
图4是根据本公开的一些实施例的基于存储器存取操作失败来执行错误处置的实例方法的流程图。
[0012]
图5a说明根据本公开的一些实施例的实例经优先级排序错误控制操作集。
[0013]
图5b说明根据本公开的一些实施例的实例经优先级排序错误控制操作集的重置。
[0014]
图5c说明根据本公开的一些实施例,从实例经优先级排序错误控制操作集去除经优先级排序错误控制操作。
[0015]
图5d说明根据本公开的一些实施例的经优先级排序错误控制操作的去除和实例经优先级排序错误控制操作集的执行次序的改变。
[0016]
图5e说明根据本公开的一些实施例,从实例经优先级排序错误控制操作集去除与低成功率相关联的一或多个经优先级排序错误控制操作。
[0017]
图6是本公开的实施方案可在其中操作的实例计算机系统的框图。
具体实施方式
[0018]
本公开的方面针对于存储器子系统处的错误控制操作的优先级排序。存储器子系统可为存储装置、存储器模块,或存储装置和存储器模块的混合。结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个存储器组件(下文还被称为“存储器装置”)的存储器子系统。主机系统可提供数据以存储于存储器子系统处并且可请求从存储器子系统检索数据。
[0019]
常规存储器子系统可执行关于包含在存储器子系统中的一或多个存储器组件的各种操作。举例来说,可在一或多个存储器组件处执行读取操作、程式化(即,写入)操作和擦除操作。在常规存储器子系统中,可在执行这些各种操作中的一个时发生失败。举例来说,可在一或多个存储器组件处执行的读取操作期间发生失败。失败可由于在检索数据时发生错误引起,所述错误可在执行读取操作期间造成数据的位的一或多个值从
‘0’
改变为
‘1’
(或从
‘1’
改变为
‘0’
)。存储器子系统可检测到读取操作失败并且可通过执行从一系列可用的错误控制操作所识别的一或多个错误控制操作来补救所述失败。成功地补救所述失败的读取操作的错误控制操作可记录到错误控制数据结构。多个错误控制操作可作为用以补救后续失败的读取操作的不同错误控制操作记录到错误控制数据结构。当检测到后续读取操作失败时,存储器子系统可在执行不包含在错误控制数据结构上的另一可用的错误控制操作之前,执行从所述错误控制数据结构所识别的一或多个先前成功的错误控制操作以补救所述后续失败。
[0020]
虽然记录到错误控制数据结构的错误控制操作已成功地补救至少一个先前读取操作失败,但在错误控制数据结构中指定的错误控制操作可能不会有效地补救后续读取操作失败。举例来说,如果先前成功的错误控制操作选自补救读取操作失败的错误控制数据结构,但成功的错误控制操作尚未成功地补救任何后续读取操作失败,那么读取操作可延迟直到存储器子系统可识别可成功地补救失败的读取操作的不同错误控制操作。在另一实
例中,存储器子系统可识别并执行来自错误控制数据结构的错误控制操作,这是由于所执行的错误控制操作成功地补救了最新读取操作失败。然而,所识别的错误控制操作可能不会成功地补救任何后续读取操作失败,且因此,读取操作可延迟直到存储器子系统可识别可成功地补救失败操作的不同错误控制操作。由上述实例所导致的读取操作执行延迟可引起常规存储器子系统的额外读取时延。
[0021]
本公开的方面通过动态地维持用于补救读取操作失败的经优先级排序错误控制操作集来解决上述和其它缺陷。举例来说,错误控制操作可成功地补救读取操作失败。成功的错误控制操作可被识别为经优先级排序错误控制操作,其中所有经优先级排序错误控制操作在未经优先级排序错误控制操作之前由存储器子系统执行。随着识别更多的经优先级排序错误控制操作,存储器子系统可组织执行用以补救读取操作失败的经优先级排序错误控制操作的次序,使得较成功的经优先级排序错误控制操作在较不成功的经优先级排序错误控制操作之前执行。举例来说,存储器子系统可将经优先级排序错误控制操作的执行重新排序,使得较成功的经优先级排序错误控制操作在较不成功的经优先级排序错误控制操作之前执行。在另一实例中,存储器子系统可在通过经优先级排序错误控制操作补救一或多个读取操作失败的成功率低于阈值成功率的情况下去除对经优先级排序错误控制操作的识别。
[0022]
本公开的优点包含但不限于改进存储器子系统的性能,这是因为读取操作可以较少时间成功地执行。举例来说,如果在执行读取操作期间发生失败,那么一或多个经优先级排序错误控制操作可在未经优先级排序错误控制操作之前执行。由于一或多个经优先级排序错误控制操作在补救先前读取操作失败中与未经优先级排序错误控制操作相比具有较高成功率,因此通过所述一或多个经优先级排序错误控制操作补救读取操作失败的可能性较高。因此,通过执行经优先级排序错误控制操作来补救读取操作失败,与仅执行未经优先级排序错误控制操作来补救读取操作失败相比,可以较少时间成功地执行读取操作。因而,由于可以较少时间执行读取操作,因此可减小存储器子系统的读取时延。读取时延减小可使得存储器子系统能够满足服务质量(qos)要求,所述要求指定当在存储器子系统处执行读取操作时的各种操作要求。
[0023]
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如存储器组件、非易失性存储器组件或这类的组合。在一些实施例中,存储器子系统是存储系统。存储系统的实例是ssd。在一些实施例中,存储器子系统110是混合式存储器/存储装置子系统。一般来说,计算环境100可包含使用存储器子系统110的主机系统120。举例来说,主机系统120可将数据写入到存储器子系统110以及从存储器子系统110读取数据。
[0024]
主机系统120可以是计算装置,如台式计算机、手提式计算机、网络服务器、移动装置或包含存储器和处理装置的这类计算装置。主机系统120可包含或耦合到存储器子系统110使得主机系统120可从存储器子系统110读取数据或将数据写入到存储器子系统110。主机系统120可经由物理主机接口耦合到存储器子系统110。如本文中所使用,“耦合到”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如不具有介入组件),无论有线或无线,包含例如电连接、光学连接、磁连接等连接。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接
口、光纤通道(fc)、串行连接的scsi(sas)等。物理主机接口可用于在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过pcie接口与主机系统120耦合时,主机系统120还可利用nvm高速(nvme)接口来存取存储器组件112a到112n。物理主机接口可提供接口以用于在存储器子系统110与主机系统120之间传送控制、地址、数据以及其它信号。
[0025]
存储器组件112a到112n可包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(nand)类型闪存存储器。存储器组件112a到112n中的每一个可包含存储器单元的一或多个阵列,所述存储器单元如单层级单元(slc)或多层级单元(mlc)(例如,三层级单元(tlc)或四层级单元(qlc))。在一些实施例中,特定存储器组件可包含存储器单元的slc部分和mlc部分两者。存储器单元中的每一个可存储供主机系统120使用的一或多个数据位(例如,数据块)。虽然描述如nand类型快闪存储器的非易失性存储器组件,但存储器组件112a到112n可基于任何其它类型的存储器,如易失性存储器。在一些实施例中,存储器组件112a到112n可以是但不限于随机存取存储器(ram)、只读存储器(rom)、动态随机存取存储器(dram)、同步动态随机存取存储器(sdram)、相变存储器(pcm)、磁随机存取存储器(mram)、或非(nor)闪存存储器、电可擦除可编程只读存储器(eeprom)以及非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于闪存的存储器对比,交叉点非易失性存储器可进行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。此外,存储器组件112a到112n的存储器单元可分组为存储器页或数据块,其可指代用于存储数据的存储器组件的单元。
[0026]
存储器系统控制器115(下文称为“控制器”)可与存储器组件112a到112n通信以执行操作,例如在存储器组件112a到112n处读取数据、写入数据或擦除数据,以及其它此类操作。控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器,或其组合。控制器115可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或其它合适的处理器。控制器115可包含被配置成执行存储在本地存储器119中的指令的处理器(处理装置)117。在所说明的实例中,控制器115的本地存储器119包含被配置成存储指令以用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程以及例程的嵌入式存储器。在一些实施例中,本地存储器119可以包含存储器寄存器,其存储存储器指针、提取的数据等。本地存储器119还可以包含用于存储微码的只读存储器(rom)。虽然图1中的实例存储器子系统110已说明为包含控制器115,但在本公开的另一实施例中,存储器子系统110可能不包含控制器115,且可改为依靠(例如由外部主机或由与存储器子系统分离的处理器或控制器提供的)外部控制。
[0027]
一般来说,控制器115可从主机系统120接收命令或操作且可将所述命令或操作转换成指令或适合的命令以实现对存储器组件112a到112n的所需存取。控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作和在与存储器组件112a到112n相关联的逻辑块地址与物理块地址之间的地址转译。控制器115还可包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换成命令指令以存取存储器组件112a
到112n,以及将与存储器组件112a到112n相关联的响应转换成用于主机系统120的信息。
[0028]
存储器子系统110还可以包含未说明的附加电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲(例如dram)和地址电路系统(例如行解码器和列解码器),其可从控制器115接收地址且对地址进行解码以存取存储器组件112a到112n。
[0029]
存储器子系统110包含可用以执行对存储器子系统110的失败的存储器操作的错误处置的错误控制组件113。在一些实施例中,存储器子系统控制器115包含错误控制组件113的至少一部分。举例来说,存储器子系统控制器115可包含处理器117(处理装置),其被配置成执行存储在本地存储器119中的指令以用于执行本文中所描述的操作。在一些实施例中,错误控制组件113是主机系统120、应用程序或操作系统的部分。
[0030]
错误控制组件113可接收对存取存储器子系统110的存储器组件112a到112n操作已失败的指示。错误控制组件113可执行错误控制操作以尝试补救存储器存取操作的失败。基于错误控制操作成功地补救存储器存取操作的失败,错误控制组件113可针对后续失败的存储器存取操作改变一或多个经优先级排序错误控制操作的执行次序,或从经优先级排序错误控制操作群组去除一或多个经优先级排序错误控制操作。下文描述关于错误控制组件113的操作的另外细节。
[0031]
图2是根据本公开的一些实施例的基于存储器存取操作失败来执行错误处置的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200是由图1的错误控制组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改所述过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序进行,且一些过程可并行进行。另外,在各种实施例中可省去一或多个过程。因此,在每一实施例中并非需要全部过程。其它过程流也是可能的。
[0032]
在操作210处,处理装置确定存储器存取操作已失败。可从在主机系统上执行的应用程序接收存储器存取操作。在一个实施例中,存储器存取操作可为读取请求。在操作220处,处理装置确定第一错误控制操作的执行是否已补救存储器存取操作的失败。错误控制操作可包含错误检测和错误校正。举例来说,可针对已从存储器子系统检索的数据来执行错误控制操作。在一些实施例中,错误控制操作可从检索到的数据检测任何错误(例如,由噪声或其它这类损害引起),当从存储器子系统读取数据时,所述错误可引起所述数据的位的一或多个值从
‘0’
改变为
‘1’
(或从
‘1’
改变为
‘0’
)。错误控制操作随后可校正数据的位的已经改变的值。错误控制操作可能够校正检索到的数据的特定位数。如果错误控制操作能够校正检索到的数据中的所有所检测到的错误,那么错误控制操作可被视为补救已请求数据的存储器存取操作的失败。否则,如果错误控制操作不能够校正检索到的数据中的的所检测到的错误(例如,存在比错误控制操作可校正的更多的位的错误),那么错误控制操作可被视为不补救存储器存取操作的失败。处理装置可从一系列可用的错误控制操作识别第一错误控制操作。第一错误控制操作可包含以下各项中的至少一个:静态偏移操作(即,在存储器组件处将不同读取电压应用于检索数据)、自动校准操作(即,通过在存储器组件处将不同读取电压应用于检索数据来确定最优读取电压的操作)、硬解码操作(即,通过接收码字中的每一位的二进制通道输出来解码行和/或列的用户数据)、一位软解码操作(即,识
别一或多个低置信度和高置信度位并且基于所识别的位估计数据)、多位软解码操作,或非相依nand(rain)操作的冗余阵列(即,用于产生和写入异或(xor)数据到媒体的数据保护方案)。处理装置可组合来自所述系列的错误控制操作的上述所识别的错误控制操作中的两个或更多个作为第一错误控制操作。处理装置可通过执行第一错误控制操作来确定第一错误控制操作是否已补救存储器存取操作的失败,并且检测第一错误控制操作是否成功地补救所述失败。如果处理装置检测到第一错误控制操作未成功地补救所述失败,那么处理装置可识别第二错误控制操作,执行第二错误控制操作,并且检测所述第二错误控制操作是否已成功地补救所述失败。
[0033]
在操作230处,响应于检测到第一错误控制操作成功地补救失败的存储器存取操作,处理装置针对后续失败的存储器存取操作改变一或多个经优先级排序错误控制操作的执行次序。举例来说,可改变经优先级排序错误控制操作集的次序。经优先级排序错误控制操作集中的每一经优先级排序错误控制操作可包含已成功地补救至少一个先前存储器存取操作失败的可用错误控制操作。每一经优先级排序错误控制操作可按经优先级排序错误控制操作成功地补救先前存储器存取操作失败的次序添加到经优先级排序错误控制操作集。举例来说,在初始化存储器子系统时,经优先级排序错误控制操作集可为空。在存储器子系统操作时并且在发生存储器存取操作失败时,处理装置可执行一或多个可用的错误控制操作以补救存储器存取操作失败。由于可用的错误控制操作成功地补救了存储器存取操作失败,因此成功的错误控制操作可添加到经优先级排序错误控制操作集。在后续存储器存取操作失败后,处理装置可在执行未经优先级排序错误控制操作之前首先执行经优先级排序错误控制操作。在一个实施例中,第一错误控制操作可为在成功地补救操作210的存储器存取操作的第一错误控制操作之前的经优先级排序错误控制操作。
[0034]
在一些实施方案中,经优先级排序错误控制操作集可包含在经优先级排序错误控制数据结构(例如列表或表)中。经优先级排序错误控制数据结构可含有特定数目的条目,其中每一条目是与一个经优先级排序错误控制操作相关联。根据本公开的实施例,因为经优先级排序错误控制数据结构可含有特定数目的条目,所以当所有条目经填充时,除非有条目被去除,否则处理装置无法将额外错误控制条目添加到经优先级排序错误控制数据结构。在一些实施例中,改变包含在经优先级排序错误控制数据结构中的一或多个经优先级排序错误控制操作的执行次序可包含将经优先级排序错误控制数据结构的条目重新排序。
[0035]
在一些实施方案中,经优先级排序错误控制操作集中的每一经优先级排序错误控制操作可与指示相应的经优先级排序错误控制操作补救至少一个先前存储器存取操作失败的成功率的成功度量相关联。每一经优先级排序错误控制操作的成功标准可高于与其它可用的错误控制操作相关联的成功度量。处理装置可基于每一错误控制操作的成功度量,改变经优先级排序错误控制操作集的执行次序。举例来说,处理装置可通过确定第一错误控制操作的成功度量是否高于经优先级排序错误控制操作集的经优先级排序错误控制操作的成功度量,改变经优先级排序错误控制操作集的执行次序。如果第一错误控制操作的成功度量高于经优先级排序错误控制操作的成功度量,那么处理装置可指示在针对后续失败的存储器存取操作执行经优先级排序错误控制操作之前执行第一错误控制操作。在一个实施例中,处理装置可通过改变经优先级排序错误控制数据结构的条目的次序,指示在针对后续失败的存储器存取操作执行经优先级排序错误控制操作之前执行第一错误控制操
作。
[0036]
如上文所论述,处理装置可改变经优先级排序错误控制操作集中的一或多个经优先级排序错误控制操作的执行次序。在其它实施例中,处理装置可改变每一经优先级排序错误控制操作的执行次序,使得与最高成功度量相关联的经优先级排序错误控制操作可在其它补救后续存储器存取操作失败的经优先级排序错误控制操作之前执行。
[0037]
在某些实施方案中,处理装置可基于每一经优先级排序错误控制操作的时延(即,存储器存取操作请求的响应时间),改变经优先级排序错误控制操作的执行次序。在一些实施例中,所述时延可基于特定错误控制操作的执行完成所需的时间量。举例来说,处理装置可确定第一经优先级排序错误控制操作的第一成功度量与第二经优先级排序错误控制操作的第二成功度量对应(例如,相等或类似)。响应于确定第一经优先级排序错误控制操作的第一时延低于第二经优先级排序错误控制操作的第二时延,处理装置接着可指示在针对后续失败的存储器存取操作执行第二经优先级排序错误控制操作之前执行第一经优先级排序错误控制操作。
[0038]
图3a说明根据本公开的一些实施例的实例系列的可用错误控制操作310和实例经优先级排序错误控制操作集320。经优先级排序错误控制操作集320中的经优先级排序错误控制操作330可为成功地补救至少一个存储器存取操作失败的所述系列的可用错误控制操作中的错误控制操作。可通过处理逻辑识别经优先级排序错误控制操作330,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,来自所述系列的可用错误控制操作310的错误控制操作的优先级排序是由图1的错误控制组件113执行。
[0039]
如图3a中所展示,所述系列的可用错误控制操作310可指定可在存储器子系统处执行的各种错误控制操作。说明八个可用错误控制操作,但任何数目个可用错误控制操作310可包含在存储器子系统中。所述系列的可用错误控制操作310可包含静态偏移操作、自动校准操作、硬解码操作、一位软解码操作、多位软解码操作、rain操作或任何其它类型的可用以促进错误检测和校正的操作中的至少一个。在确定存储器存取操作已失败后,处理装置即刻可通过从所述系列的可用错误控制操作310选择和执行可用的错误控制操作,确定第一错误控制操作的执行已补救所述失败。举例来说,处理装置可从所述系列的可用错误控制操作310选择错误控制操作4来补救存储器存取失败。处理装置可通过执行错误控制操作4并且检测错误控制操作4是否成功地补救存储器存取失败(例如,成功地校正所有检测到的错误),确定错误控制操作4是否成功地补救所述失败。
[0040]
如先前所论述,在确定第一错误控制操作成功地补救了存储器存取操作失败后,处理装置即刻改变经优先级排序错误控制操作集320中的一或多个经优先级排序错误控制操作330的执行次序。经优先级排序错误控制操作集320可包含已成功地补救了至少一个先前存储器存取操作失败的一或多个错误控制操作。经优先级排序错误控制操作集320可另外包含对将被执行以补救后续存储器存取操作失败的一或多个错误控制操作330的执行排序。举例来说,可在尝试执行错误控制操作4来补救存储器存取操作失败之前,执行错误控制操作1以尝试补救存储器存取操作失败。在一个实施例中,第一错误控制操作可为在成功地补救存储器存取操作失败的第一错误控制操作之前的经优先级排序错误控制操作330。
举例来说,错误控制操作4可为经优先级排序错误控制操作集320中的在存储器存取操作失败之前的经优先级排序错误控制操作330。
[0041]
经优先级排序错误控制操作集320中的每一经优先级排序错误控制操作330可与成功度量340相关联。成功度量340可指示补救至少一个先前存储器存取操作失败的每一经优先级排序错误控制操作的成功率。如下文关于图3b所论述,处理装置可通过确定第一错误控制操作的成功度量是否高于经优先级排序错误控制操作集320中的经优先级排序错误控制操作的成功度量,改变经优先级排序错误控制操作集320的执行次序。
[0042]
图3b说明根据本公开的一些实施例的实例经优先级排序错误控制操作集320的执行次序的改变。如上文所论述,处理装置在确定第一错误控制操作成功地补救了存储器存取操作失败后即刻改变经优先级排序错误控制操作集320中的一或多个经优先级排序错误控制操作330的执行次序。处理装置可基于与每一经优先级排序错误控制操作330相关联的成功度量340,改变经优先级排序错误控制操作集320的执行次序。举例来说,处理装置可确定与错误控制操作7相关联的成功度量340高于与错误控制操作4相关联的成功度量340。处理装置也可确定错误控制操作4与错误控制操作7相比在经优先级排序错误控制操作集320中具有较前次序(例如,错误控制操作4可在执行错误控制操作7以补救后续存储器存取操作失败之前执行)。在确定与错误控制操作7相关联的成功度量340高于与错误控制操作4相关联的成功度量340后,处理装置即刻可改变经优先级排序错误控制操作集320的排序,使得错误控制操作7与错误控制操作4相比在经优先级排序错误控制操作集320中具有较前次序。举例来说,错误控制操作7可在执行错误控制操作4以补救后续存储器存取操作失败之前执行。
[0043]
在一些实施例中,处理装置可周期性地改变错误控制操作集的经优先级排序错误校正操作330的执行次序。处理装置可确定存储器存取操作的数目满足存储器存取操作的阈值数目。举例来说,处理装置可确定已发生一百万个存储器存取操作,这可满足存储器存取操作的阈值数目。当已由存储器子系统执行的存储器存取操作的数目等于或超过存储器存取操作的阈值数目时,可满足存储器存取操作的阈值数目。在确定存储器存取操作的数目满足存储器存取操作的阈值数目后,处理装置即刻可改变经优先级排序错误控制操作集320的每一经优先级排序错误校正操作330的执行次序,使得首先执行具有最高成功度量的经优先级排序错误控制操作。
[0044]
图4是根据本公开的一些实施例的基于存储器存取操作失败来执行错误处置的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400是由图1的错误控制组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改所述过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序进行,且一些过程可并行进行。另外,在各种实施例中可省去一或多个过程。因此,在每一实施例中并非需要全部过程。其它过程流也是可能的。
[0045]
在操作410处,处理装置接收对存储器存取操作已失败的指示。可当检索的用于存储器存取操作的数据包含至少一个错误时接收到所述指示。存储器存取操作可从在主机系统上执行的应用程序接收。在一个实施例中,存储器存取操作可为读取请求。在操作420处,
处理装置确定经优先级排序错误控制操作的执行是否已补救存储器存取操作的失败。经优先级排序错误控制操作可为包含已成功地补救了至少一个先前存储器存取操作失败的一或多个错误控制操作的经优先级排序错误控制操作集中的经优先级排序错误控制操作。
[0046]
在操作430处,响应于确定经优先级排序错误控制操作的执行未补救所述失败,处理装置确定与经优先级排序错误控制操作中的一或多个相关联的成功度量是否满足阈值成功度量。在一个实施例中,所述成功度量可指示补救至少一个先前存储器存取操作的失败的每一经优先级排序错误控制操作的成功率。在另一实施例中,所述成功度量可指示通过经优先级排序错误控制操作集中的任何经优先级排序错误控制操作补救至少一个存储器存取操作的失败的成功率。当补救失败的成功率等于或超过阈值成功率时,经优先级排序错误控制操作可被视为满足阈值成功度量。
[0047]
在操作440处,响应于确定已经满足阈值成功度量,处理装置从经优先级排序错误控制操作集去除一或多个经优先级排序错误控制操作。在一个实施例中,成功度量可指示补救至少一个先前存储器存取操作的失败的每一经优先级排序错误控制操作的成功率。处理装置可确定与特定经优先级排序错误控制操作相关联的成功度量满足阈值成功度量(例如,成功度量低于阈值成功度量)。在确定已经满足了阈值度量后,处理装置即刻可从经优先级排序错误控制操作集去除经优先级排序错误控制操作。
[0048]
在另一实施例中,成功度量可指示通过经优先级排序错误控制操作集中的任何经优先级排序错误控制操作补救至少一个存储器存取操作的失败的成功率。处理装置可确定与经优先级排序错误控制操作集相关联的成功度量满足阈值成功度量(例如,成功度量低于阈值成功度量)。在确定已经满足了阈值度量后,处理装置即刻可从经优先级排序错误控制操作集去除每一经优先级排序错误控制操作。
[0049]
在某些实施方案中,处理装置可从经优先级排序错误控制操作集去除与较低成功率相关联的一或多个经优先级排序错误控制操作。在一个实施例中,处理装置可确定存储器存取操作的数目满足存储器存取操作的阈值数目。在确定存储器存取操作的数目满足存储器存取操作的阈值数目后,处理装置即刻可从经优先级排序错误控制操作集去除一或多个经优先级排序错误控制操作。处理装置可通过识别与最低成功度量(即,成功地补救至少一个存储器存取操作失败的最低成功率)相关联的一或多个错误控制操作,识别从错误控制操作集去除的一或多个经优先级排序错误控制操作。
[0050]
在一些实施例中,处理装置可识别从错误控制操作集去除的一或多个经优先级排序错误控制操作,其中与所识别的经优先级排序错误控制操作相关联的成功度量大致相等。在这类实施例中,处理装置可进一步基于一或多个经优先级排序错误控制操作的时延,从经优先级排序错误控制操作集去除一或多个经优先级排序错误控制操作。举例来说,处理装置可确定第一经优先级排序错误控制操作的第一成功度量与第二经优先级排序错误控制操作的第二成功度量对应(例如,相等)。处理装置可确定第一经优先级排序错误控制操作的第一时延低于第二经优先级排序错误控制操作的第二时延。处理装置接着可从经优先级排序错误控制操作集去除第二经优先级排序错误控制操作,这是因为第二经优先级排序错误控制操作与第一经优先级排序错误控制操作相比和较高时延相关联。
[0051]
图5a说明根据本公开的一些实施例的实例经优先级排序错误控制操作集510。经优先级排序错误控制操作集510可与图3a和3b的经优先级排序错误控制操作集320对应。类
似地,与经优先级排序错误控制操作集510中的每一经优先级排序错误控制操作相关联的成功度量520可对应于与错误控制操作集320中的每一经优先级排序错误控制操作相关联的成功度量340。总成功度量530可另外与经优先级排序错误控制操作集510相关联。总成功度量530可指示通过经优先级排序错误控制操作集510中的任何经优先级排序错误控制操作补救至少一个存储器操作的失败的成功率。举例来说,当经优先级排序错误控制操作集510中的经优先级排序错误控制操作成功地补救存储器存取操作失败时,总成功度量530可递增。
[0052]
图5b说明根据本公开的一些实施例的实例经优先级排序错误控制操作集510的重置。在一个实施例中,处理装置可确定总成功度量530低于阈值成功度量。举例来说,当总成功度量530大致为零(例如,经优先级排序错误控制操作集510中没有经优先级排序错误控制操作成功地补救了阈值数目的失败存储器存取操作)时,总成功度量530可低于阈值成功度量。在确定总成功度量530低于阈值成功度量后,处理装置即刻可从经优先级排序错误控制操作集510去除每一经优先级排序错误控制操作。在已从经优先级排序错误控制操作集510去除每一经优先级排序错误控制操作之后,处理装置可在确定可用的错误控制操作成功地补救了存储器存取操作失败后,即刻将所述可用的错误控制操作添加到经优先级排序错误控制操作集510。
[0053]
图5c说明根据本公开的一些实施例,从实例经优先级排序错误控制操作集510去除经优先级排序错误控制操作。在一个实施例中,处理装置可确定与经优先级排序错误控制操作集510中的经优先级排序错误控制操作相关联的成功度量520低于阈值并且从经优先级排序错误控制操作集510去除所述经优先级排序错误控制操作。举例来说,处理装置可确定图5a中所说明的经优先级排序错误控制操作集510的错误控制操作5与低于阈值的成功度量520相关联。处理装置可从经优先级排序错误控制操作集510去除错误控制操作5。通过从经优先级排序错误控制操作集510去除经优先级排序错误控制操作,处理装置可在确定可用的错误控制操作已成功地补救了存储器存取操作失败后,即刻将所述可用的错误控制操作添加到经优先级排序错误控制操作集510。图5d说明根据本公开的一些实施例的经优先级排序错误控制操作的去除和实例经优先级排序错误控制操作集510的执行次序的改变。在一个实施例中,根据先前所公开的实施例,在从经优先级排序错误控制操作集510去除经优先级排序错误控制操作后,处理装置即刻可改变一或多个经优先级排序错误控制操作的执行次序。
[0054]
图5e说明根据本公开的一些实施例,从实例经优先级排序错误控制操作集510去除与较低成功率相关联的一或多个经优先级排序错误控制操作。在一个实施例中,处理装置可确定存储器存取操作的数目满足存储器存取操作的阈值数目。在确定存储器存取操作的数目满足存储器存取操作的阈值数目后,处理装置即刻可从经优先级排序错误控制操作集510去除一或多个经优先级排序错误控制操作。处理装置可通过识别与最低成功度量520相关联的一或多个经优先级排序错误控制操作,识别将从经优先级排序错误控制操作集510去除的一或多个经优先级排序错误控制操作。举例来说,处理装置可确定从经优先级排序错误控制操作集510去除两个经优先级排序错误控制操作。处理装置可确定从图5a中所说明的的经优先级排序错误控制操作集510去除错误控制操作5和错误控制操作2,这是因为与错误控制操作5和错误控制操作2两者相关联的成功度量520均低于与其它错误控制操
作(例如,错误控制操作1、错误控制操作4和错误控制操作7)相关联的成功度量520。在一个实施例中,在从经优先级排序错误控制操作集510去除错误控制操作5和错误控制操作2后,处理装置可在确定可用的错误控制操作成功地补救了存储器存取操作失败后即刻将所述可用的错误控制操作添加到经优先级排序错误控制操作集510。
[0055]
图6说明计算机系统600的实例机器,可执行所述计算机系统600内的用于致使所述机器执行本文中所论述的方法中的任一种或多种方法的指令集。在一些实施例中,计算机系统600可对应于包含、耦合到或使用存储器子系统(例如,图1的存储器子系统110)或可用以执行控制器的操作(例如,执行操作系统以执行对应于图1的错误控制组件113的操作)的主机系统(例如,图1的主机系统120)。在替代性实施例中,机器可连接(例如,网络连接)到lan、内联网、外联网或互联网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
[0056]
机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器或能够(依序或以其它方式)执行指定由机器采取的动作的一组指令的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多个)指令集以进行本文中所论述的方法中的任何一或多种。
[0057]
实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(rom)、闪存存储器、动态随机存取存储器(dram)例如同步dram(sdram)或rdram等)、静态存储器606(例如,闪存存储器、静态随机存取存储器(sram)等),以及数据存储系统618,其经由总线630彼此通信。
[0058]
处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602也可为一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置602被配置成执行指令626以用于执行本文中所论述的操作和步骤。计算机系统600可另外包含网络接口装置608以在网络620上通信。
[0059]
数据存储系统618可包含机器可读存储媒体624(也称为计算机可读媒体),其上存储有一或多个指令集626或体现本文中所描述的方法或功能中的任一或多种的软件。指令626还可在其由计算机系统600执行期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可对应于图1的存储器子系统110。
[0060]
在一个实施例中,指令626包含用以实施对应于错误控制组件(例如,图1的错误控制组件113)的功能性的指令。尽管在实例实施例中将机器可读存储媒体624展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一组或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体以及磁性媒体。
[0061]
已关于计算机存储器内的数据位的操作的算法和符号表示而呈现先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法在这里并且通常被认为是导致期望的结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、项、数目等是方便的。
[0062]
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
[0063]
本公开还涉及用于执行本文中的操作的设备。此设备可以出于所需目的而专门构造,或其可以包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,如但不限于任何类型的盘(包含软盘、光盘、cd-rom和磁性光盘)、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。
[0064]
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些系统的结构。此外,并不参考任何特定编程语言来描述本公开。应了解,可以使用各种编程语言来实施如本文所描述的本公开的教示内容。
[0065]
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、闪存存储器组件等。
[0066]
在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。应显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。