掌桥专利:专业的专利平台
掌桥专利
首页

具有时变错误率的存储器中的抢先式读取刷新

文献发布时间:2023-06-19 09:51:02


具有时变错误率的存储器中的抢先式读取刷新

技术领域

本发明的实施例大体上涉及存储器子系统,且更具体来说,涉及具有时变错误率的存储器中的抢先式读取刷新。

背景技术

存储器子系统可为存储系统、存储器模块或存储装置和存储器模块的混合。存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可以是例如非易失性存储器组件和易失性存储器组件。一般来说,主机系统可利用存储器子系统以在存储器组件处存储数据且从存储器组件检索数据。

发明内容

在一个方面中,本发明涉及一种系统,其包括:存储器组件;以及处理装置,其以操作方式与所述存储器组件耦合以进行以下操作:从主机系统接收读取请求,所述读取请求识别存储于存储器组件的片段中的数据;使用第一读取电压电平对所述存储器组件的所述片段执行第一读取操作;确定存储于所述存储器组件的所述片段中且在所述第一读取操作期间读取的所述数据是否成功地经解码;响应于存储于所述存储器组件的所述片段中且在所述第一读取操作期间读取的所述数据成功地经解码,确定所述存储器组件的所述片段的写读延迟时间;确定所述片段的所述写读延迟时间是否落在所述存储器组件的多个写读延迟范围中的第一写读延迟范围内,其中所述第一写读延迟范围表示对应于所述第一读取电压电平的第一多个写读延迟时间;以及响应于所述片段的所述写读延迟时间不落在所述第一写读延迟范围内,使用适用读取电压电平对所述存储器组件的所述片段的至少一部分执行读取刷新操作。

在另一方面中,本发明涉及一种存储器子系统的操作的方法,其包括:使用第一读取电压电平对存储器组件的片段执行第一读取操作;确定使用所述第一读取电压电平的所述第一读取操作成功,但所述第一读取电压电平不满足读取电平准则;识别满足所述读取电平准则的适用读取电压电平;以及使用所述适用读取电压电平对所述存储器组件的所述片段的至少一部分执行读取刷新操作。

在又一方面中,本发明涉及一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时使所述处理装置进行以下操作:从主机系统接收读取请求,所述读取请求识别存储于存储器组件的片段中的数据;使用第一读取电压电平对所述存储器组件的所述片段执行第一读取操作;确定存储于所述存储器组件的所述片段中且在所述第一读取操作期间读取的所述数据是否成功地经解码;响应于存储于所述存储器组件的所述片段中且在所述第一读取操作期间读取的所述数据成功地经解码,确定所述存储器组件的所述片段的写读延迟时间;确定所述片段的所述写读延迟时间是否落在所述存储器组件的多个写读延迟范围中的第一写读延迟范围内,其中所述第一写读延迟范围表示对应于所述第一读取电压电平的第一多个写读延迟时间;以及响应于所述片段的所述写读延迟时间不落在所述第一写读延迟范围内,使用适用读取电压电平对所述存储器组件的所述片段的至少一部分执行读取刷新操作。

附图说明

根据下文给出的详细描述和本发明的各种实施例的附图,将更充分地理解本发明。

图1说明根据本发明的一些实施例的包含存储器子系统的实例计算环境。

图2是根据本发明的一些实施例的在具有时变错误率的存储器中执行抢先式读取刷新的实例方法的流程图。

图3是说明根据本发明的一些实施例的针对三个读取电压电平随着写读延迟(write-to-read delay)而变的位错误率的曲线图。

图4A和4B是根据本发明的一些实施例的在具有时变错误率的存储器中执行抢先式读取刷新的实例方法的流程图。

图5是可在其中操作本发明的实施例的实例计算机系统的框图。

具体实施方式

本发明的方面是针对具有时变错误率的存储器中的抢先式读取刷新。存储器子系统可为存储装置、存储器模块,或存储装置和存储器模块的混合。结合图1描述存储装置和存储器模块的实例。通常,主机系统可以利用包含一或多个存储器组件的存储器子系统。主机系统可提供数据以存储于存储器子系统处并且可请求从存储器子系统检索数据。

存储器子系统可包含可存储来自主机系统的数据的多个存储器组件。当对存储器组件的存储器单元写入数据和/或从其擦除数据时,存储器单元会在某一程度上损坏。随着对存储器单元执行的写入操作和/或擦除操作的数目增加,存储在存储器单元处的数据包含错误的概率增加,且存储器单元逐渐损坏。增加数目的读取和写入操作可导致存储在存储器单元处的数据的较高错误率。这会增加错误恢复操作的使用,所述操作包含但不限于读取重试(即,再次感测存储器组件)和RAID(独立磁盘冗余阵列)以用于对存储器单元执行的后续数据操作(例如,读取和/或写入)。错误恢复操作的增加的使用可导致常规存储器子系统的性能的降低。另外,随着错误率持续增加,它可能甚至超出存储器子系统的错误恢复能力,从而导致数据的不可修复的损失。此外,由于存储器子系统的较多资源用以执行错误恢复操作,因此较少资源可用于执行其它读取操作或写入操作。

对于某些存储器类型(即,对于采用某些类型的存储媒体的存储器子系统),错误率可随时间变化。确切地说,一些非易失性存储器具有根据时间移动(下文称为‘本征移动’)的阈值电压(Vt)分布。在给定读取电平(即,作为读取操作的部分施加于存储器单元的电压),如果Vt分布移动,那么某些可靠性统计数据也会受影响。可靠性统计数据的一个实例是原始位错误率(RBER)。RBER可经定义为错误位的数目与存储于存储器子系统的单元中的所有数据位的数目的比率,其中所述单元可为整个存储器子系统、存储器组件的裸片、一系列码字,或存储器子系统的任何其它有意义的部分。对于在一时间例项处的任何Vt分布,可存在最小化预期RBER的最佳读取电压电平(或读取电平范围)。确切地说,Vt分布和RBER可随着写读(W2R)延迟(即,在当数据写入到存储器组件时与当从存储器组件读取数据时之间经过的时间周期)而变。由于RBER的此时变性质,以及存储器中的其它噪声机制,单个读取电平可能不足以实现满足某些系统可靠性目标的错误率。因此,某些存储器子系统可具有若干预编程读取电压电平,每一电平对应于W2R延迟时间的不同范围。举例来说,第一读取电压电平可用以读取具有落在第一对应范围内的W2R延迟时间的数据,而第二读取电压电平可用以读取具有落在第二对应范围内的W2R延迟时间的数据,等等。

由于Vt分布会受到自身或相邻小区的干扰、电路系统噪声、温度等恒定地影响,因此可执行各种刷新操作以将Vt分布恢复到所需状态。举例来说,写入刷新操作可包含将存储器单元的数据重写到相同或不同物理存储器位置,以便为小区给出不含Vt分布的严重本征移动、干扰效应和噪声的清洁状态。小区可根据其当前状态被重写一次或多次(即,逻辑‘0’重写为逻辑‘0’且逻辑‘1’重写为逻辑‘1’)或者以交替状态重写某个偶数次数(即,在第一次重写上反转且在第二次重写上恢复)。然而,写入刷新操作在子系统性能和存储器组件耐久性方面是昂贵的,因此在常规存储器子系统中,读取刷新操作在某些情形中可为优选的。读取刷新操作涉及读取存储器单元的内容以利用随着读取操作发生的部分写入效果。对于某些类型的存储器组件,读取操作可改变存储器单元的Vt分布,这也被称为部分写入效果。举例来说,在读取操作中,低于和/或接近于所施加读取电压的任何小区电压可在物理上被推动更远离读取电压的点。在最佳读取电压下执行的读取刷新的结果是Vt分布的恢复及其之间的额外分离、较大的读取窗口预算(RWB)以及改进的RBER和稳健性。然而,由于当次优读取电压电平用于读取刷新操作时,有可能由于Vt分布的本征移动、存储器单元上的耗损以及对存储器单元的物理和/或电特性的改变,最佳读取电压可逐渐随时间移位,因此部分写入效果的益处减少。因此,Vt分布的分离无法改进,进而抵消优点且使读取刷新操作低效。这可导致存储器子系统的性能的降低,以及存储器子系统的功率消耗的增加。系统带宽和其它资源也可被绑定较长的时间周期,从而妨碍那些资源用于其它功能性。

本发明的方面通过在具有时变错误率的存储器中执行抢先式读取刷新操作而解决上述和其它缺陷。在一个实施方案中,当(例如,从连接到存储器子系统的主机)接收到读取请求时,存储器子系统使用第一读取电压电平(例如,当多个读取电压电平可用时的最低读取电压电平)读取相关存储器片段且尝试对读取的数据进行解码。如果解码成功,那么存储器子系统可基于经解码数据中存在的写入时戳确定W2R延迟时间且针对W2R延迟时间识别最佳读取电压电平(即,适用的读取电压电平)。如果第一读取电压电平不匹配最佳读取电压电平,那么存储器子系统可以对存储器片段的至少一部分执行读取刷新操作。此读取刷新操作是使用最佳适用读取电压电平执行的另一读取操作且可视为抢先式的,因为即使在第一读取操作期间读取的数据已成功经解码且可返回到请求者,也会执行此读取刷新操作。另外,读取刷新操作可作为针对读取失败的规避措施来执行,而不是作为在片段的读取失败已发生之后执行的修复操作来执行。可使用最佳读取电压电平执行此读取刷新操作以便利用可归功于读取刷新操作的部分写入效果。因此,可改进Vt分布的分离,且存储器片段更充分地刷新,使得其较不容易受后续干扰和其它噪声影响。另外,抢先式读取刷新操作通过降低RBER和需要的读取重试率,以及提供到主机的服务质量,例如改进的处理量、时延和可靠性,而改进了存储器子系统的总体健康度。此外,与常规的写入刷新和不充分读取刷新技术相比,对系统性能和耐久性的减损得以最小化。

图1说明根据本发明的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类的组合。

存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储装置(UFS)驱动器以及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)以及非易失性双列直插式存储器模块(NVDIMM)。

计算环境100可包含耦合到一或多个存储器子系统110的主机系统120。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。主机系统120使用存储器子系统110以例如将数据写入到存储器子系统110和从存储器子系统110读取数据。如本文所使用,“耦合到”大体上指代组件之间的连接,其可为间接通信连接或直接通信连接(例如,无介入组件),无论是有线的还是无线的,包含例如电学、光学、磁性等连接。

主机系统120可为计算装置,例如台式计算机、手提式计算机、网络服务器、移动装置、嵌入式计算机(例如,包含在车辆、工业设备或连网的商业装置中的计算机),或包含存储器和处理装置的这类计算装置。主机系统120可包含或耦合到存储器子系统110使得主机系统120可从存储器子系统110读取数据或将数据写入到存储器子系统110。主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(Serial Attached SCSI;SAS)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120还可利用NVM高速(NVMe)接口来存取存储器装置130。物理主机接口可提供接口以用于在存储器子系统110与主机系统120之间传送控制、地址、数据以及其它信号。

存储器装置可以包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储装置140)可为(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。

非易失性存储器装置(例如,存储器装置130)的实例包含三维交叉点(“3D交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于闪存的存储器对比,交叉点非易失性存储器可进行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。

虽然描述了例如3D交叉点类型存储器的非易失性存储器组件,但存储器装置130可以基于任何其它类型的非易失性存储器,例如“与非”(NAND)、只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电随机存取存储器(FeRAM)、磁性随机存取存储器(MRAM)、“或非”(NOR)快闪存储器,以及电可擦除可编程只读存储器(EEPROM)。

单元可每单元存储一或多个位。在一个实施例中,存储器装置130中的每一个可包含存储器单元的一或多个阵列,例如单电平单元(SLC)、多电平单元(MLC)、三电平单元(TLC)或四电平单元(QLC),或此类的组合。在一些实施例中,特定存储器组件可包含存储器单元的SLC部分、MLC部分、TLC部分或QLC部分。存储器单元中的每一个可存储由主机系统120使用的数据的一或多个位。此外,存储器装置130的存储器单元可经分组为存储器页,存储器页可指用以存储数据的存储器组件的单元。一些非易失性存储器装置可在裸片和通道上分组页以形成管理单元(MU)。

存储器子系统控制器115可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。存储器子系统控制器115可为微控制器、专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或其它合适的处理器。

存储器子系统控制器115可包含处理器(处理装置)117,其经配置以执行存储在本地存储器119中的指令。在所示的实例中,存储器子系统控制器115的本地存储器119包含嵌入式存储器,其经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流和例程的指令,包含处置存储器子系统110与主机系统120之间的通信。

在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然在图1中的实例存储器子系统110已示出为包含存储器子系统控制器115,但在本发明的另一实施例中,存储器子系统110可不包含存储器子系统控制器115,且可改为依靠外部控制(例如,由外部主机或者由与存储器子系统分开的处理器或控制器提供)。

通常,存储器子系统控制器115可从主机系统120接收命令或操作,并且可以将命令或操作转换成指令或适当的命令以实现对存储器装置130的所需存取。存储器子系统控制器115可以负责其它操作,例如损耗均衡操作、垃圾回收操作、错误检测和错误校正码(ECC)操作、加密操作、缓存操作,以及与存储器装置130相关联的逻辑块地址和物理块地址之间的地址转换。存储器子系统控制器115还可包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收到的命令转换成存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。

存储器子系统110还可包含未示出的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓冲存储器或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器115接收地址且对地址进行解码以存取存储器装置130。

在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器单元执行操作。

在一些实施例中,存储器装置130是受管理的存储器装置(例如,受管理NAND),其为与本地控制器(例如,本地控制器135)组合的原始存储器装置以用于同一存储器装置封装内的存储器管理。

存储器子系统110包含可用以对具有时变错误率的存储器装置130执行抢先式读取刷新操作的读取刷新控制组件113。在一个实施方案中,存储器子系统110中的控制器115可从主机系统120、从连接到存储器子系统110的某一其它装置或从存储器子系统110内的某一其它组件接收读取请求。所述读取请求可识别存储于存储器装置130中的一个的片段中的数据。片段可以是存储器组件的任何物理或逻辑部分,例如一个或一系列码字或例如管理单元。

读取刷新控制组件113可在适当时对存储器装置130的相关片段执行抢先式读取刷新操作以便改进存储器子系统110中的性能。举例来说,控制器115可从主机系统120接收读取请求,所述读取请求识别存储于存储器装置130中的一个的片段中的数据。读取刷新控制组件113可使用第一读取电压电平对存储器组件的片段执行第一读取操作。第一读取电压电平可为例如存储器子系统110中的多个可用读取电压电平中的最低读取电压电平。读取刷新控制组件113确定存储于存储器组件的片段中且在第一读取操作期间读取的数据是否成功经解码(即,存储于存储器组件的片段中且在第一读取操作期间读取的数据中的错误电平是否小于存储器子系统110的错误校正能力)。如果存储于存储器组件的片段中且在第一读取操作期间读取的数据成功经解码,那么读取刷新控制组件113可将经解码数据返回到主机系统120,确定存储器组件的片段的写读延迟时间,且确定所述片段的写读延迟时间是否落在对应于第一读取电压电平的第一写读延迟范围内。在一个实施例中,写读延迟时间表示当数据写入到片段时的第一时间与当识别数据的读取请求发出到存储器组件时的第二时间之间的差。如果片段的写读延迟时间未落在第一写读延迟范围内,那么读取刷新控制组件113使用适用读取电压电平对存储器组件的片段执行读取刷新操作。执行读取刷新操作以利用在适用读取电压电平下发生的部分写入效果。由于存储器组件的物理特性,部分写入效果可使经编程于一个状态(例如,逻辑高或低)的电压在物理上被推动更远离其它状态中的电压,从而得到Vt分布之间的额外分离、较大读取窗口预算(RWB)以及改进的RBER和稳健性。下文描述关于读取刷新控制组件113的操作的另外细节。

图2是根据本发明的一些实施例的在具有时变错误率的存储器中执行抢先式读取刷新的实例方法的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法200由图1的读取刷新控制组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改所述处理程序的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序进行,且一些过程可并行进行。另外,在各个实施例中可以省略一或多个过程。因此,在每一实施例中并非需要全部过程。其它过程流也是可能的。

在操作210,处理逻辑使用第一读取电压电平对存储器装置130中的一个的片段执行第一读取操作。在一个实施方案中,第一读取电压电平是存储器子系统110中可用的多个读取电压电平当中的最低读取电压电平。在一个实施方案中,执行读取操作可包含将具有第一读取电压电平的信号施加到待读取片段中的一或多个存储器单元,且确定存储器单元的状态,其中此状态可经解码以提供存储于其中的数据。

在操作220,处理逻辑确定使用第一读取电压电平执行的第一读取操作是否成功。在一个实施方案中,读取刷新控制组件113尝试对在第一读取操作期间读取的数据进行解码,且如果解码成功,那么确定第一读取操作成功。当读取数据中的错误水平小于控制器115的错误校正能力时数据大体上能够经解码。

如果使用第一读取电压电平执行的第一读取操作不成功,那么在操作225,处理逻辑使用下一读取电压电平执行另一读取操作(例如,第二读取操作)以尝试再次恢复数据。在一个实施方案中,下一读取电压电平是与前一读取操作中使用的读取电压电平相比在多个读取电压电平当中的下一最高读取电压电平。举例来说,如果第一读取操作不成功,那么读取刷新控制组件113可以使用第二读取电压电平进行读取且尝试再次恢复数据。此过程可以额外读取电压电平(例如,第三读取电压电平、第四读取电压电平等)继续直到读取操作成功地执行。如果在读取操作未成功执行的情况下使用存储器子系统中可用的所有读取电压电平,那么过程会失败。

一旦读取操作成功地执行,在操作230,处理逻辑就确定对应读取电压电平是否满足读取电平准则。在一个实施方案中,读取电平准则有关于存储器组件的片段的写读延迟时间,如图3中所图示。图3是说明根据本发明的一些实施例的针对三个读取电压电平随着写读(W2R)延迟而变的位错误率(BER)的曲线图300。如本文所描述,Vt分布可随时间移位。举例来说,对于给定读取电压电平,例如第一读取电压电平(经标记为读取电平1),由于Vt分布的本征移动,当使用此读取电压电平执行读取操作时经历的位错误率可随时间改变。类似地,第二读取电压电平(经标记为读取电平2)或第三读取电压电平(经标记为读取电平3)的对应位错误率也可随时间改变。在这些或其它情形中,Vt分布和位错误率可随着W2R延迟而变。曲线图300示出对应于W2R延迟时间的不同范围的三个读取电压电平中的每一个,所述不同范围例如W2R范围310、W2R范围320和W2R范围330,其可为存储器子系统规范的设计目标。在其它实施例中,可能存在任何其它数目的W2R延迟时间的范围和相关联读取电压电平。在曲线图300中,针对使用指定读取电压电平执行的读取操作显示测得的BER。举例来说,BER曲线312表示针对在不同W2R延迟时间的片段上使用读取电平1执行的读取操作测得的BER,BER曲线322表示针对在不同W2R延迟时间的片段上使用读取电平2执行的读取操作测得的BER,且BER曲线332表示针对在不同W2R延迟时间的片段上使用读取电平3执行的读取操作测得的BER。从曲线图300显而易见,使用读取电平1导致对具有落在W2R范围310内的W2R延迟时间的存储器组件的片段执行的读取操作的较低BER,使用读取电平2导致对具有落在W2R范围320内的W2R延迟时间的存储器组件的片段执行的读取操作的较低BER,且使用读取电平3导致对具有落在W2R范围330内的W2R延迟时间的存储器组件的片段执行的读取操作的较低BER。曲线图300还说明针对单个读取电平(例如,读取电平2),BER在较低W2R延迟时间(即,W2R范围310)和在较高W2R延迟时间(即,W2R范围330)增加。在一个实施方案中,读取电平1是最低电压,读取电平2具有比读取电平1高的电压,且读取电平3具有比读取电平2高的电压。读取电平1、读取电平2和读取电平3的值可在存储器组件的生产期间设定,但可任选地在存储器组件的使用寿命期间调整。

再次参考图2,为了在操作230确定对应读取电压电平是否满足读取电平准则,处理逻辑可确定片段的写读延迟时间是否落在对应于读取电压电平的写读延迟范围内。举例来说,假定在操作220处理逻辑确定读取电平1用以成功地执行读取操作,那么处理逻辑可确定片段的写读延迟时间是否落在W2R范围310内。如果片段的写读延迟时间落在W2R范围310内,那么读取刷新控制组件113可确定满足读取电平准则。然而,如果片段的写读延迟时间落在W2R范围310外(例如,W2R范围320或W2R范围330中),那么读取刷新控制组件113可确定不满足读取电平准则。如果使用其它读取电压电平(例如,读取电平2、读取电平3),那么读取刷新控制组件113可在写读延迟时间落在对应写读延迟范围(即,分别W2R范围320和W2R范围330)内的情况下确定满足读取电平准则。

如果读取刷新控制组件113确定不满足读取电平准则,那么在操作240,处理逻辑识别确实满足读取电平准则的适用读取电压电平。在一个实施方案中,读取刷新控制组件113识别具有对应写读延迟范围的适用读取电压电平,片段的写读延迟时间落在所述范围内。举例来说,在以读取电平1成功地解码读取数据之后,如果所确定的片段的写读延迟时间落在W2R范围320中,那么读取刷新控制组件113可将读取电平2识别为满足存储器装置130的此片段的读取电平准则(且因此使用读取电平2作为适用读取电压电平)。类似地,如果片段的写读延迟时间落在W2R范围330中,那么读取刷新控制组件113可将读取电平3识别为满足读取电平准则。

在操作250,处理逻辑使用在操作240识别的适用读取电压电平(例如,读取电平2)对存储器装置130中的一个的片段的至少一部分执行读取刷新操作。在一个实施方案中,执行读取刷新操作可包含将具有适用读取电压电平的信号施加到待读取片段中的一或多个存储器单元。执行读取刷新操作以利用随着读取操作发生的部分写入效果。部分写入效果可使经编程于一个状态(例如,逻辑高或低)的电压在物理上被推动更远离其它状态中的电压,从而得到Vt分布之间的额外分离、较大读取窗口预算(RWB)以及改进的RBER和稳健性。

取决于实施例,读取刷新控制组件113可对整个存储器片段或对存储器片段的一部分执行读取刷新操作。举例来说,在实施独立磁盘冗余阵列(RAID)的存储器子系统中,RAID条带可包含来自多个LUN的片段或片段的部分(例如,码字)或单独的存储器组件。在一个实施例中,读取刷新控制组件113可对RAID条带中的一或多个个别码字(例如,对RAID条带中的多个码字的子集中的一个)执行抢先式读取刷新操作。举例来说,由于存储器裸片之间的变化或温度改变,RAID条带中的仅某些码字可能经历错误。因此,如果RAID条带中的一个码字未能进行ECC解码,但使用RAID方案经恢复,那么读取刷新控制组件113可仅对所述一个码字执行抢先式读取刷新操作。此外,在对应于不同读取电压电平(例如,读取电平1和读取电平2)的W2R延迟范围之间可存在一些重叠量。在此重叠区中,对于执行读取刷新操作,不同读取电压电平都无法视为最佳的。因此,读取刷新控制组件113可对满足某一准则(例如,ECC解码状态等)的仅一个或多个码字执行读取刷新操作。

如果读取刷新控制组件113在操作230确定满足读取电平准则,那么在操作260,处理逻辑确定不执行读取刷新操作。

图4A和4B是根据本发明的一些实施例的在具有时变错误率的存储器中执行抢先式读取刷新的实例方法的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法400由图1的读取刷新控制组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改所述处理程序的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序进行,且一些过程可并行进行。另外,在各个实施例中可以省略一或多个过程。因此,在每一实施例中并非需要全部过程。其它过程流也是可能的。

在操作405,处理逻辑从主机系统120或从存储器子系统110的某一其它组件接收读取请求。在一个实施方案中,读取请求识别存储于存储器组件的片段中的数据。片段可以是存储器组件的任何物理或逻辑部分,例如一个或多个码字。

在操作410,处理逻辑使用最低读取电压电平(例如,读取电平1)对存储器组件的片段执行第一读取操作。在一个实施方案中,执行读取操作可包含将具有最低读取电压电平的信号施加到待读取片段中的一或多个存储器单元并确定存储器单元的状态,其中此状态可经解码以提供存储于其中的数据。

在操作415,处理逻辑尝试对在第一读取操作期间读取的数据进行解码且确定解码是否成功。通常,当读取数据中的错误水平小于控制器115的错误校正能力时解码成功。如果读取数据未成功地经解码(即,如果读取数据中的错误水平超过控制器115的错误校正能力),那么处理前进到“A”且在图4B中进一步示出。然而,如果读取数据成功地经解码,那么处理前进到操作420。

在操作420,处理逻辑将存储于存储器组件的片段中且在第一读取操作期间读取的数据返回到主机系统120(且任选地通过错误校正码(ECC)进行处理以检测和校正任何数据损坏)且确定存储于片段中的数据的写读延迟时间。在一个实施方案中,读取刷新控制组件113读取与存储器组件的片段中的数据一起存储的时戳,所述时戳指示数据写入的时间。在另一实施方案中,数据写入的时间存储于与存储器组件分开的某一其它数据存储区中,例如控制器115的本地存储器119中。在任一情况下,读取刷新控制组件113可确定由时戳指示的写入时间与当前时间(或当在操作405接收到读取请求时的时间)之间的差,其中所述差表示片段的写读延迟时间。

在操作425,处理逻辑确定片段的写读延迟时间是否落在对应于第一读取电压电平(例如,读取电平1)的第一写读延迟范围(例如,W2R范围310)内。在一个实施方案中,读取刷新控制组件113将在操作420确定的写读延迟时间与第一写读延迟范围进行比较。如果所述写读延迟时间大于或等于W2R范围310的下边界且小于或等于W2R范围310的上边界,那么读取刷新控制组件113可确定写读延迟时间落在W2R范围310内。如果所述写读延迟时间小于W2R范围310的下边界或大于W2R范围310的上边界,那么读取刷新控制组件113可确定写读延迟时间不落在W2R范围310内。

如果读取刷新控制组件113确定写读延迟时间不落在W2R范围310内,那么在操作430,处理逻辑确定片段的写读延迟时间是否落在对应于下一读取电压电平(例如,读取电平2)的下一写读延迟范围(例如,W2R范围320)内。在一个实施方案中,下一读取电压电平是与前一读取操作中使用的读取电压电平相比的下一最高读取电压电平。如果片段的写读延迟时间落在下一写读延迟范围(例如,W2R范围320)内,那么在操作435,处理逻辑使用下一读取电压电平(例如,读取电平2)对存储器片段的至少一部分执行读取刷新操作。应注意此处下一读取电压电平也是适用读取电压电平。在一个实施方案中,执行读取刷新操作可包含将具有下一读取电压电平的信号施加到待读取片段中的一或多个存储器单元。执行此读取刷新操作以利用随着读取操作发生的部分写入效果。如果片段的写读延迟时间不落在下一写读延迟范围(例如,W2R范围320)内,那么处理可返回到操作430且检查任何额外的写读延迟范围(例如,W2R范围330)和对应读取电压电平(例如,读取电平3)。如果读取刷新控制组件113确定写读延迟时间落在这些额外写读延迟范围中的一个内,那么读取刷新控制组件113可使用具有写读延迟范围的对应(适用)读取电压电平执行读取刷新操作,片段的写读延迟时间落在所述写读延迟范围内。取决于实施例,读取刷新控制组件113可对整个存储器片段或对存储器片段的仅一部分(例如,对RAID条带中的一或多个个别码字)执行抢先式读取刷新操作。

如果读取刷新控制组件113在操作425确定片段的写读延迟时间落在W2R范围310内,那么在操作440,处理逻辑确定不执行读取刷新操作。

参考图4B,如果读取数据在操作415未成功地经解码,那么处理前进到“A”和操作450。在操作450,处理逻辑使用下一读取电压电平(例如,读取电平2)对存储器组件的片段执行第二读取操作。在一个实施方案中,下一读取电压电平是与前一读取操作中使用的读取电压电平相比的下一最高读取电压电平。在一个实施方案中,执行读取操作可包含将具有读取电平2的信号施加到待读取片段中的一或多个存储器单元并确定存储器单元的状态,其中此状态可经解码以提供存储于其中的数据。

在操作455,处理逻辑尝试对在第二读取操作期间读取的数据进行解码且确定解码是否成功。通常,当读取数据中的错误水平小于控制器115的错误校正能力时解码成功。如果读取数据未成功地经解码(即,如果读取数据中的错误水平超过控制器115的错误校正能力),那么在操作457,处理逻辑使用下一读取电压电平执行另一读取操作(例如,第三读取操作)。在一个实施方案中,下一读取电压电平是与前一读取操作中使用的读取电压电平相比在多个读取电压电平当中的下一最高读取电压电平。举例来说,读取刷新控制组件113可以使用第三读取电压电平以再次读取和恢复数据以用于第三读取操作。此过程可以额外读取电压电平(例如,第四读取电压电平、第五读取电压电平等)继续直到读取操作成功地执行。如果在读取操作未成功执行的情况下使用存储器子系统中可用的所有读取电压电平,那么过程会失败。一旦读取数据成功地经解码,那么处理前进到操作460。

在操作460,处理逻辑将存储于存储器组件的片段中且在第二读取操作期间读取的数据返回到主机系统120(且任选地通过错误校正码(ECC)进行处理以检测和校正任何数据损坏)且确定存储于片段中的数据的写读延迟时间。在操作465,处理逻辑确定片段的写读延迟时间是否落在对应于第二读取电压电平(例如,读取电平2)的第二写读延迟范围(例如,W2R范围320)内。

如果读取刷新控制组件113确定写读延迟时间不落在W2R范围320内,那么在操作470,处理逻辑确定片段的写读延迟时间是否落在对应于下一读取电压电平(例如,读取电平3)的下一写读延迟范围(例如,W2R范围330)内。在一个实施方案中,下一读取电压电平是与前一读取操作中使用的读取电压电平相比的下一最高读取电压电平。如果片段的写读延迟时间落在W2R范围330内,那么在操作475,处理逻辑使用读取电平3对存储器片段的至少一部分执行读取刷新操作。执行此读取刷新操作以利用随着读取操作发生的部分写入效果。如果片段的写读延迟时间不落在W2R范围330内,那么处理逻辑可返回到操作470且检查任何额外的写读延迟范围和对应读取电压电平。取决于实施例,读取刷新控制组件113可对整个存储器片段或对存储器片段的仅一部分(例如,对RAID条带中的一或多个个别码字)执行抢先式读取刷新操作。

如果读取刷新控制组件113在操作465确定片段的写读延迟时间落在W2R范围320内,那么在操作480,处理逻辑确定不执行读取刷新操作。上文关于图4A和4B所描述的实例与具有三个单独读取电压电平的存储器子系统相关。应理解,虽然出于解释的目的描述特定读取电压电平和写读延迟范围,但可使用其它读取电压电平和写读延迟范围执行相似操作。举例来说,在具有额外读取电压电平的存储器子系统中,可执行方法400的某些操作以评估给定读取电压电平和对应写读延迟范围的适当性,且可使用那些额外读取电压电平中的任一个执行读取刷新操作。

如上文所描述,用以确定何时对存储器组件的片段执行抢先式读取刷新操作(以及是否使用最佳读取电压电平)的一个度量是写读延迟时间。然而,在其它实施方案中,可使用存储器子系统中可用的其它元数据来做出相似确定。举例来说,另外或在替代方案中,读取刷新控制组件113可考虑温度数据,例如当写入片段时的温度、当读取片段时的温度,或当写入片段与读取片段时之间的温度历史。读取刷新控制组件113可进一步考虑对片段执行的其它操作以及在写入片段与读取片段时之间所述操作发生的次序,或耗损均衡(即,对片段执行的总操作的数目)。此元数据可嵌入于片段的元数据区段中(即,与数据一起存储)或在别处可用,例如存储器管理系统。这些其它元数据参数中的任一个或多个的组合可在具有或不具有写读延迟信息的情况下使用,以确定是否已执行不充分读取刷新、是否应当执行抢先式读取刷新以及应当使用何种读取电压电平。

图5说明计算机系统500的实例机器,在所述实例机器内可执行用于使得机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统500可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用以执行控制器的操作(例如,执行操作系统以执行对应于图1的读取刷新控制组件113的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。

机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器、或能够(依序或以其它方式)执行指定由机器采取的动作的一组指令的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多个)指令集以进行本文中所论述的方法中的任何一或多种。

实例计算机系统500包含处理装置502、主存储器504(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器506(例如,快闪存储器、静态随机存取存储器(SRAM)等),及数据存储系统518,它们经由总线530彼此通信。

处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元等等。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置502也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理装置502经配置以执行指令526以用于执行本文中所论述的操作和步骤。计算机系统500可另外包含网络接口装置508以在网络520上通信。

数据存储系统518可包含机器可读存储媒体524(也称为计算机可读媒体),其上存储有一或多个指令集526或体现本文中所描述的任何一或多种方法或功能的软件。指令526还可在由计算机系统500执行期间完全或至少部分地驻存在主存储器504内和/或处理装置502内,主存储器504和处理装置502也构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518和/或主存储器504可对应于图1的存储器子系统110。

在一个实施例中,指令526包含用以实施对应于图1的读取刷新控制组件113的功能性的指令。尽管在实例实施例中将机器可读存储媒体524展示为单个媒体,但是应认为术语“机器可读存储媒体”包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本发明的方法中的任何一种或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体以及磁性媒体。

已关于计算机存储器内的数据位的操作的算法和符号表示而呈现先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给本领域的其它技术人员的方式。算法在这里并且通常被认为是导致期望的结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目或类似物是方便的。

然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本发明可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。

本发明还涉及用于执行本文中的操作的设备。此设备可以出于所需目的而专门构造,或其可以包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。

本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种各样的这些系统的结构。此外,并不参考任何特定编程语言来描述本发明。应了解,可使用各种编程语言来实施本文中所描述的本发明的教示。

本发明可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本发明的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。

在前述说明书中,已参考其特定实例实施例描述了本发明的实施例。将显而易见的是,可在不脱离如所附权利要求书中阐述的本发明的实施例的更广精神和范围的情况下对本发明进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

相关技术
  • 具有时变错误率的存储器中的抢先式读取刷新
  • 具有时变位错误率的存储器中的缺陷检测
技术分类

06120112321674