首页> 中国专利> 使用机器学习估计由存储器子系统所存储的数据的位错误率

使用机器学习估计由存储器子系统所存储的数据的位错误率

摘要

本公开描述用于估计存储在一组存储器单元中的数据的原始位错误率的技术。从一组存储器单元读取编码数据。基于所述组存储器单元中的第一数目个存储器单元具有在第一读取电压范围内的读取电压而获得第一总体值,每一读取电压表示所述编码数据的一或多个位。确定所述数据的所估计原始位错误率满足第一阈值。使用第一经训练机器学习模型且部分地基于第一总体值来做出所述确定。响应于所述所估计原始位错误率满足所述第一阈值的所述确定,启动第一媒体管理操作。

著录项

  • 公开/公告号CN113841122A

    专利类型发明专利

  • 公开/公告日2021-12-24

    原文格式PDF

  • 申请/专利权人 美光科技公司;

    申请/专利号CN202080034363.0

  • 发明设计人 S·谢里菲·德黑兰尼;

    申请日2020-05-12

  • 分类号G06F11/10(20060101);G06N20/00(20190101);

  • 代理机构11287 北京律盟知识产权代理有限责任公司;

  • 代理人王龙

  • 地址 美国爱达荷州

  • 入库时间 2023-06-19 13:48:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-05-17

    实质审查的生效 IPC(主分类):G06F11/10 专利申请号:2020800343630 申请日:20200512

    实质审查的生效

说明书

技术领域

本公开大体上涉及存储器子系统,且更具体地,涉及使用机器学习估计由所述存储器子系统所存储的数据的位错误率。

背景技术

存储器子系统可为存储系统,例如固态驱动器(SSD)或硬盘驱动器(HDD)。存储器子系统可为存储器模块,例如双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)或非易失性双列直插式存储器模块存储器模块(NVDIMM)。存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可为例如非易失性存储器组件及易失性存储器组件。通常,主机系统可利用存储器子系统来将数据存储在存储器组件处并从存储器组件检索数据。

附图说明

从下文给出的详细描述且从本公开的各种实施例的附图将更全面理解本公开。然而,不应将图式用于将本公开限制于特定实施例,而仅为了解释及理解。

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

图2根据本公开的一些实施例说明可用于预测位错误率的数据总体特征的实例。

图3根据本公开的一些实施例说明可用于预测位错误率的数据总体特征的另一实例。

图4根据本公开的一些实施例说明用于训练机器学习模型以预测位错误率的实例技术。

图5根据本公开的一些实施例说明用于训练机器学习模型以预测位错误率的另一实例技术。

图6根据本公开的一些实施例说明训练模型的实例实施方案。

图7为根据本公开的一些实施例的用以训练及使用位错误率估计模型的实例方法的流程图。

图8为其中本公开的实施例可操作的实例计算机系统的框图。

具体实施方式

本公开的方面涉及存储器子系统中的原始位错误率(RBER)估计器。存储器子系统在下文中也被称作为“存储器装置”。存储器子系统的实例是存储器模块,所述存储器模块经由存储器总线连接到中央处理单元(CPU)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)、非易失性双列直插式新模块(NVDIMM)等等。存储器子系统的另一实例是经由外围互连(例如,输入/输出总线、存储区域网络等等)连接到中央处理单元(CPU)的存储装置。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器及硬盘驱动器(HDD)。在一些实施例中,存储器子系统是混合存储器/存储子系统。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供待存储在存储器子系统处的数据,且可请求待从存储器子系统检索的数据。

存储器子系统将数据存储在媒体上,所述媒体可建模为噪声通信信道。也就是说,从媒体读取的数据可与写入到媒体的数据不匹配,此归因于与读取及写入操作相关联的噪声、由于时间及/或使用所致媒体的物理特性的改变、媒体保持限制等等。为了解决写入操作与读取操作之间的数据改变,存储器子系统通常采用纠错码(ECC)。当将数据写入到媒体时,存储器子系统对待存储的数据进行编码(例如,用ECC编码器)以包含一些冗余并将编码数据写入到媒体。应注意,编码数据有时被称为码字。当从媒体读取数据时,存储器子系统对所读取码字进行解码(例如,用ECC解码器)以获得存储数据,利用码字的冗余来纠正与打算存储的数据有关的任何改变。位改变的数目通常被称为原始位错误率(RBER)。例如,如果码字包含512个字节的数据,且在解码操作期间改变12个位,那么RBER将为12/4,096或大约0.00293。

许多媒体管理操作,例如本文中所描述的那些,以RBER为条件。传统上,获得给定码字或码字组的RBER需要对码字进行解码以识别改变位的数目。ECC解码操作在等待时间及功率两者方面较昂贵:ECC解码操作在从媒体读取数据与获得RBER之间引入延迟,且通常涉及导致功率使用提高的许多计算。如果执行读取以确定是否触发媒体管理操作且所获得RBER不值得媒体管理操作的执行,那么读取仍然占用ECC解码器(无论其是软件过程还是硬件组件)一段时间,这可阻挡其它ECC解码操作(例如,由主机系统启动的那些操作)且导致存储器子系统的功率使用的增加。

本公开的方面通过引入用于估计RBER的技术而不招致与ECC解码操作相关联的成本来解决上述及其它缺陷。特定来说,存储器子系统包含RBER估计器,其采用使用机器学习技术训练的一或多个模型以根据存储器子系统可用的或由存储器子系统生成的一或多个特征来预测RBER。实例性特征包含与存储某些值的多个存储器单元、存储器单元在媒体上的位置等等有关的总体数据。预测可基于预测RBER的估计的回归模型或预测RBER是高于或低于阈值还是在一或多个阈值范围内的分类模型。存储器子系统可利用RBER估计器的预测来推迟更昂贵的ECC解码操作,以获得实际的RBER及/或各种媒体管理操作。

图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如存储器组件112A到112N。存储器组件112A到112N可为易失性存储器组件、非易失性存储器组件或此类组合。在一些实施例中,存储器子系统为存储系统。存储系统的实例是SSD。在一些实施例中,存储器子系统110是混合存储器/存储子系统。通常,计算环境100可包含使用存储器子系统110的主机系统120。例如,主机系统120可将数据写入到存储器子系统110并从存储器子系统110读取数据。

主机系统120可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置,或包含存储器及处理装置的此类计算装置。主机系统120可包含或耦合到存储器子系统110,以使得主机系统120可从存储器子系统110读取数据或将数据写入到存储器子系统110。主机系统120可经由物理主机接口耦合到存储器子系统110。如本文中所使用,“耦合到”通常是指组件之间的连接,所述连接可为间接通信连接或直接通信连接(例如,无需中间组件),无论有线还是无线的,包含例如电、光学、磁性等等连接。物理主机接口的实例包含但不限于串行先进技术总线附属(SATA)接口、快速外围组件互连(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接SCSI(SAS)等等。物理主机接口可用于在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用高速NVM(NVMe)接口来存取存储器组件112A到112N。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。

存储器组件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的存储器单元可经分组为存储器页或数据块,所述数据块可指代用于存储数据的存储器组件的单元。

如所说明,实例性媒体层次结构包含多个存储器组件112A到112N。多个存储器组件的存储器单元可基于单元如何被存取而在物理上及/或逻辑上分组。例如,由于具有并行存取电路系统结构,可并行存取不同组的存储器单元(例如,用于读取、写入及/或擦除操作)。在此实例媒体层次结构中,每一存储器组件112包含单个裸片或多个裸片130A到130R。每一裸片130包含存储器单元的一或多个块132A到132Q。每一块132包含存储器单元的一或多个页134A到134P。每一页134存储一或多个码字136A到136M。码字136是ECC编码的,以允许校正由于噪声源所致的存储数据的任何改变。

存储器系统控制器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,且替代地可依赖于外部控制(例如,由外部主机,或由与存储器子系统分离的处理器或控制器提供)。

通常,控制器115可从主机系统120接收命令或操作,且可将命令或操作转换为指令或适当的命令,以实现对存储器组件112A到112N的期望存取。控制器115可负责与存储器组件112A到112N相关联的其它媒体管理操作,例如损耗均衡操作、无用信息收集操作、检错及ECC操作、加密操作、高速缓存操作以及逻辑块地址与物理块地址之间的地址转换。控制器115可负责其它媒体管理操作,例如校准电压阈值以区分由存储器单元存储的电压表示的多个值,检查单元电压的分布的谷值的运行状况,通过检查不久前写入的数据是否具有值得解码及重新写入到媒体的提高的RBER来管理数据保留等等。控制器115可进一步包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收的命令转换为命令指令以存取存储器组件112A到112N,以及将与存储器组件112A至112N相关联的响应转换为用于主机系统120的信息。

存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓冲存储器或缓冲器(例如,DRAM)及地址电路系统(例如,行解码器及列解码器),其可从控制器115接收地址并解码所述地址以存取存储器组件112A到112N。

存储器子系统110包含RBER估计器113,其可相对于传统ECC操作以相对低的功率及等待时间来预测RBER。在一些实施例中,控制器115包含RBER估计器113的至少一部分。例如,控制器115可包含处理器117(处理装置),所述处理器经配置以执行存储在本地存储器119中的指令以执行本文中所描述的操作。在其它实施例中,RBER估计器113是主机系统120、应用程序或操作系统的一部分。在其它实施例中,RBER估计器113被合并到存储器组件112(未展示)的逻辑或本地控制器中。例如,每一存储器组件112可具有存取逻辑或本地控制器,控制器115可向其发出从存储器组件112读取数据或将数据写入存储器组件112的操作。特定存储器组件112的RBER估计器113可向控制器115提供RBER预测,作为用读取操作提供的元数据的一部分或响应于获得RBER预测的单独操作。

RBER估计器113基于可用于存储器子系统或由存储器子系统生成的且无需执行ECC解码操作的一或多个特征来预测存储在媒体上的数据的逻辑分组的RBER。下文描述关于各种特征、RBER估计器113的训练及RBER估计器113的操作的进一步细节。

图2根据本公开的一些实施例说明可用于预测位错误率的数据总体特征的实例。当控制器115从媒体读取一组存储器单元时,控制器在存取单元时获得与读取或感测电压有关的总体数据。所获得的总体数据可由控制器115累积或直接从与存储器组件112(未展示)相关联的另一控制器获得。所述组存储器单元是可作为单元(例如,码字136、页134、块132等等)读取的一组单元,且总体数据相对于一或多个读取阈值指示哪些感测电压应解释为哪些值。例如,在基于NAND的SLC中,单个阈值区分0及1(例如,高于阈值的读取电压被解释为0,且低于阈值的读取电压被解释为1)。如果控制器115读取一组1,000个存储器单元,那么总体数据可指示读取电压指示700个存储器单元存储0且300个存储器单元存储1。应注意,总体数据可基于单元的总数目进行归一化(例如,针对0及1分别为0.7及0.3)。

如实例理想化电压分布220中所说明,标绘来自每单元存储两位的一组基于NAND的MLC的读取电压的分布。在此实例中,三个读取阈值222VTH1、VTH2及VTH3区分两位值00、01、10及11。具体来说,小于VTH1的读取电压对应于值11,VTH1与VTH2之间的读取电压对应于值10,VTH2与VTH3之间的读取电压对应于值00,VTH3或超过其的读取电压对应于值01。值得注意的是,在此理想化实例中,表示11个值的曲线不延伸超过VTH1,表示10的曲线不延伸低于VTH1或高于VTH2,等等。其它类型MLC的媒体具有不同数目的读取阈值(例如,SLC具有至少一个读取阈值;每单元2个位的MLC具有至少三个读取阈值;每单元3个位的TLC具有至少7个读取阈值,每单元四个位的QLC具有至少15个读取阈值等等)。

实际上,如在实例实际电压分布240中所说明,分布曲线是连续的且读取阈值222导致存储一个两位值的一些单元被解释为存储不同的两位值—RBER的来源。如跨越VTH1的谷值的分解图中所说明,11分布的尾部在VTH1上方延伸,且10分布的尾部在VTH1下方延伸。因此,落入在应被解释为存储值10的读取电压区域242的单元被解释为存储值11,且落入在应被解释为存储值11的读取电压区域244的单元被解释为存储值10。在不以执行ECC解码操作为代价的情况下,控制器不知道哪些单元具有落在区域242、244内的读取电压。

为了避免或减少使用ECC解码操作的频率,控制器115获得总体数据250,如上文所描述且此处说明为P1、P2、P3及P4,其中P1对应于具有小于VTH1的读取电压的存储器单元的数目、P2对应于具有在VTH1与小于VTH2的读取电压的存储器单元的数目,P3对应于具有在VTH2与小于VTH3之间的读取电压的存储器单元的数目,且P4对应于具有处于或高于VTH3的读取电压的存储器单元的数目。总体数据可为与单元数目有关的原始计数数据,或基于组中读取的单元数目归一化。

控制器115将来自总体数据250的值中的一或多个作为特征282提供给RBER估计器113,所述RBER估计器又为所述组存储器单元提供RBER的预测286。在一些实施例中,在RBER估计器113执行分类以指示RBER是高于还是低于阈值254的状况下,控制器115还向RBER估计器113提供RBER阈值284。下文参考图4及5提供关于这些特征的额外细节。

图3根据本公开的一些实施例说明可用于预测位错误率的数据总体特征的另一实例。特定来说,图3说明可以除实例实际电压分布240中所说明的方式以外的不同方式对总体数据进行采样。在实例实际电压分布390中,总体数据350基于由定义分布的预期谷值位置的两端(bookend)的读取阈值限界的所有总体的子集。例如,P1对应于具有小于VTH1的读取电压的存储器单元的数目,P2对应于具有在VTH2与VTH3之间的读取电压的存储器单元的数目,P3对应于具有在VTH4和VTH5之间的读取电压的存储器单元的数目,P4对应于具有在VTH6与VTH7之间的读取电压的存储器单元的数目,且P5对应于具有大于VTH8的读取电压的存储器单元的数目。总体数据可基于分布的其它部分而不是图2及3中所说明的那些部分,例如峰值、峰值与谷值的组合、其它估计特征,例如拟合分布的曲线的峰值与谷值之间的梯度,等等。

图4及5说明根据本公开的一些实施例的用于训练机器学习模型以预测位错误率的实例技术。在高层次上,机器学习技术将模型拟合到数据。可将数据拆分为训练数据集以训练机器学习模型,所述机器学习模型可使用验证数据集进行细化,并使用测试数据集测量其性能。然后可部署学习模型以基于新数据进行相关预测。为了增加使用RBER估计器113相对于执行昂贵的ECC解码操作的益处,与ECC解码操作相比,RBER估计器113优选地在计算上是廉价的(在速度及/或等待时间及/或功耗方面)。可由RBER估计器113实施的一种廉价模型是决策树分类器,所述决策树分类器可提供所估计RBER是高于或低于阈值(在二叉决策树的状况下)还是高于许多RBER阈值中的一个(在多类决策树的状况下)的指示。此类决策树可使用级联逻辑门在硬件中或使用条件语句在软件中实施。例如,图4说明可用于生成决策树模型407的训练技术。如所说明,使用机器学习算法405从训练数据集401训练模型407。计算机系统(未展示)可执行模型训练。

训练数据集401包含许多样本,每一样本包含与一组存储器单元的给定读取操作相关联的特征282,其中实际RBER是已知的(例如,基于ECC解码)。通常,训练数据集401中的样本的数目越高,所得模型越稳健,只要所述模型不过度拟合。实例特征282包含与一组存储器单元相关联的总体数据(例如,总体数据250或350)且可包含其它特征413,例如PEC特征(与所述组单元相关联的编程-擦除计数),WL特征(字线;在一些架构中,某些字线可展现更高的RBER),指示块132或含有单元组的存储器层次结构中的一些其它逻辑或物理分组的特征,指示主机(例如,如果存储器子系统并入到多核或多处理器系统中,其中不同核心或处理器具有不同主机标识符)等等。当然,可用于模型训练的特征282可包含比所说明的更多、更少或不同的特征。

机器学习算法405查看特征282及已知RBER并尝试迭代地生成最大化如由成本函数表征的信息增益的决策。例如,如果正在训练的模型407是二叉决策树分类器以估计给定一组特征的RBER是高于还是低于阈值284,且成本函数经设置为机器学习算法试图最小化的错误总数(或错误率)。例如,第一决策可基于至少一个特征及决策阈值将训练数据集401中的样本划分为两个子集,使得一个子集具有超过阈值RBER的样本与不超过阈值RBER的样本的高比率,且另一子集具有超过阈值RBER的样本与未超过阈值的样本的低比率。

实例性决策树机器学习算法405包含ID3 (迭代二分器3)、C4.5(ID3的扩展)、CART(分类及回归树)、CHAID (卡方自动交互检测)及所属领域的普通技术人员已知的其它算法。在高层次上,机器学习算法405通过基于导致最低成本的一或多个输入特征将训练数据集401拆分/划分成子集来逐渐学习决策树模型407。根据限制树大小的各种参数,以递归方式在每一派生子集上重复拆分过程。实例性参数包含最小叶大小(即,不再细分的最小子集)、决策数目(例如,树中的决策的总数目)、树的深度(例如,树的第一决策或根与提供预测的决策之间决策的最大数目)等等。

可取决于模型407应如何优化来规定成本函数。例如,可定义成本函数来限制总错误率、假阳性数目、假阴性数目。使用哪个错误率的决策可基于给定的存储器子系统对所述类型错误的敏感性。由于被触发的后续操作(例如,ECC解码操作、媒体管理操作)的数目,一些存储器子系统可对假阳性错误(例如,不正确地估计RBER大于输入阈值)比对假阴性错误(例如,不正确地估计RBER小于输入阈值)更敏感,而其它存储器子系统可对假阴性(例如,冒数据丢失的风险)更敏感。其它成本函数可被定义为某一错误(假阳性、假阴性或总错误率)与一或多个非错误参数(例如,树中的决策的数目)的组合,以优化错误以及树的实施复杂度两者。

图5说明另一模型训练技术。与作为整体评估训练数据集401中的整个样本总体或整个样本子集以便识别每一决策的决策树机器学习算法相比,其它机器学习技术迭代地评估训练数据集的个别样本401来完善模型。如所说明,模型507是从训练数据集401训练。计算机系统(未展示)可执行模型训练。使用所说明技术训练的实例性模型是逻辑回归模型。例如,逻辑回归模型507可根据以下方程式预测RBER:

所估计RBER=w

其中,f

在训练期间,模型507处理样本并生成预测586。成本函数511将预测586与来自训练数据集401的样本相关联的实际RBER进行比较。模型优化器513评估成本函数的输出—有时被称为错误—并更新模型507的参数。实例性成本函数511计算与来自训练数据集401的样本相关联的所估计RBER与实际RBER之间的差异。实例性模型优化器513可采用随机梯度下降算法来迭代地减少错误。

一旦经过训练,模型(例如,模型407、507)可被实施为RBER估计器113的一部分。应注意,与训练数据集401中可用的特征相比,训练模型可取决于更少的特征282。即,训练模型可对图4及5中所说明的实例特征282的某一子集(例如,四个总体值中的三个及PEC)敏感。

图6根据本公开的一些实施例说明训练模型的实例实施方案。如所说明,RBER估计器113可实施一或多个模型607A到607S(例如,例如模型407、507)。在具有多个模型的RBER估计器113中,不同模型607可用于不同的目的。例如,可响应于不同估计RBER阈值284来触发一些媒体管理操作。RBER估计器113可将一个模型607用于一个RBER阈值284,并将另一模型607用于不同的RBER阈值284。此外,不同的模型607可生成不同类型的预测。作为分类器,一个模型607可生成所估计RBER是高于阈值284还是在某一范围内的预测。在回归上下文中,另一模型607可生成RBER的估计值。另外,不同的模型607可取决于不同的输入特征682(例如,决策树分类器模型可对与逻辑回归模型不同的一组特征敏感)。

如所说明,模型607A是确定RBER是高于还是低于阈值284的二叉决策树分类器(例如,模型407)。所说明模型607A包含若干层级的决策节点602,所述决策节点导致指示RBER是高于还是低于阈值284的叶604。每一条件可评估一或多个特征。例如,如果“特征A”大于0.1且“特征B”大于0.3,那么估计RBER超过阈值284。作为另一实例,如果“特征A”小于0.1且“特征G”小于1.2,那么估计RBER不超过阈值284。例如,可使用级联比较器在硬件中实施此类二叉决策树分类器。

图7为根据本公开的一些实施例的用以训练及使用位错误率估计模型的实例方法700的流程图。方法700可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑,微码,装置的硬件,集成电路等),软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法700的过程中的一或多个由图1的RBER估计器113执行。尽管以特定的顺序或次序展示,但除非另有规定,否则可修改过程的次序。因此,所说明的实施例应仅理解为实例,且所说明的过程可以不同次序执行,且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一实施例中需要所有过程。其它过程流程也是可能的。

在操作705处,例如计算机系统的处理器之类的第一处理装置使用训练数据集来训练机器学习模型。如本文中所描述,可使用训练模型来基于训练数据集中所包含的一或多个特征生成与存储在存储器子系统的一组存储器单元中的数据相关联的RBER的预测。此类特征可包含表示可归一化的多组存储器单元的读取电压的总体数据。额外特征包含PEC及与给定组存储器单元的位置有关的各种标识,例如其块、页、字线及/或发起所存储数据的主机系统。可使用各种机器学习技术来训练模型,包含上文参考图4及5所描述的那些。

在操作710处,第二处理装置,例如控制器115或存储器组件112的逻辑或本地控制器,从存储器子系统的一组存储器单元读取编码数据。此类组存储器单元可存储表示编码数据或受ECC保护的数据的一或多个码字。每一单元的电气特性,例如读取电压,表示所存储的编码数据的一或多个位(1及0)。应注意,在一些实施例中,第二处理装置可为第一处理装置,例如在其中主机系统处理器用作存储器子系统的控制器的系统中。

在操作715处,第二处理装置基于所述组存储器单元中的第一数目个存储器单元具有在第一读取电压范围内的读取电压而获得第一总体值,其中每一读取电压表示编码数据的一或多个位。如本文中所描述,可使用总体数据来表示包含一定范围内的电特性的一组单元内的单元的计数或频率。例如,如上文针对图2及3所说明及描述的总体数据250及总体数据350包含表示各种读取电压阈值之间的单元的计数或频率的值。

在操作720处,第二处理装置使用第一经训练机器学习模型部分地基于第一总体值确定数据的所估计原始位错误率超过第一阈值。在操作705处训练的机器学习模型可被加载到存储器子系统的控制器115且使用软件及/或固件的组合来实施。在一个实施例中,机器学习模型被实施为控制器115的RBER估计器组件113。机器学习模型接受与一组存储器单元相关联的一或多个特征作为输入,并生成RBER预测。对于估计RBER值的模型,控制器115可将所估计RBER值与一或多个阈值进行比较。对于基于输入阈值对RBER进行分类的模型,控制器115从RBER估计器组件113获得所述模型是否预测所述组存储器单元的RBER超过输入阈值的指示。在任一状况下,当所预测RBER没有超过阈值时,第二处理可避免执行ECC解码操作。

应注意,在各种实施例中,可使用表示原始位错误率的参数及相应地评估不同的阈值。例如,一些机器学习模型可生成与RBER负相关的参数(例如,所述参数随着RBER的增加而减少)。在此类情景中,第二处理装置可确定参数已下降低于阈值(而不是RBER超过阈值)。通常,第二处理装置使用第一经训练机器学习模型确定RBER或指示RBER的某个参数已满足阈值。

在操作725处,第二处理装置响应于确定所估计原始位错误率超过第一阈值而启动第一媒体管理操作。如上文所描述,在不执行昂贵的ECC解码操作的情况下实施预测RBER的机制可降低功耗并提高存储器子系统的性能。响应于提高的RBER触发各种媒体管理操作,例如可执行读取电压阈值校准及数据保留算法以改进读取阈值位置并避免数据丢失,如本文中所描述。通常会触发此类媒体管理操作的ECC解码操作可推迟,直到所预测RBER超过在操作720处确定的阈值。例如,如果RBER预测指示提高的RBER,那么控制器115可使用ECC解码器对编码数据进行解码以纠正任何错误、重新编码解码数据并将新编码数据重新写入到媒体。作为另一实例,控制器115可获得多个RBER预测,同时调整读取电压阈值以在不调用ECC解码的情况下朝向最小RBER预测优化读取电压阈值。控制器115可从具有第一组一或多个读取电压阈值的媒体读取数据并获得相关联RBER预测。控制器115然后可从具有第二组一或多个读取电压阈值的媒体读取相同数据,相对于第一组中的对应读取电压阈值调整第二组的至少一个读取电压阈值。参考图2,控制器115可使用VTH1、VTH2及VTH3作为第一组读取阈值电压以及VTH1+n、VTH2及VTH3作为第二组读取阈值电压来读取数据,其中n为偏移量。重复所述过程,控制器115可迭代地调整读取阈值电压直到达到最小RBER预测并且在从媒体读取数据时使用所述组读取阈值电压。

应注意,虽然本公开参考使用机器学习模型来估计RBER,但可训练机器学习模型以做出与其它媒体数据质量度量有关的预测。此类度量可与RBER有关或随RBER而变。例如,可使用机器学习模型预测高可靠性错误率(HRER),所述高可靠性错误率表示对数似然比(LLR)具有高量级的错误的位数。

图8说明计算机系统800的实例机器,在所述计算机系统内可执行用于致使机器执行本文中所论述的方法中的任何一或多个的指令集。在一些实施例中,计算机系统800可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到,或利用存储器子系统(例如,图1的存储器子系统110),或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的RBER估计器113的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内联网、外联网及/或因特网中的其它机器。机器可在客户端-服务器网络环境中以服务器或客户端机器的身份运行,作为对等(或分布式)网络环境中的对等机器运行,或作为云计算基础设施或环境中的服务器或客户端机器运行。

所述机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络器具、服务器、网络路由器、交换机或网桥,或能够执行规定由所述机器进行的动作的指令集(按顺序或其它方式)的任何机器。此外,虽然说明单个机器,但术语“机器”还应被视为包含单独或联合执行一(或多个)指令集以执行本文中所论述的方法中的任何一或多个的任何机器集合。

实例计算机系统800包含经由总线830彼此通信的处理装置802、主存储器804(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM)例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等等)、静态存储器806(例如,快闪存储器、静态随机存取存储器(SRAM)等等)以及数据存储系统818。

处理装置802表示一或多个通用处理装置,例如微处理器、中央处理单元,等等。更具体地,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集组合的处理器。处理装置802还可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器,等等。处理装置802经配置以执行用于执行本文中所论述的操作及步骤的指令826。计算机系统800可进一步包含网络接口装置808以经由网络820进行通信。

数据存储系统818可包含机器可读存储媒体824(也被称作为计算机可读媒体),其上存储体现本文中所描述的方法或功能中的任何一或多个的一或多个指令826集或软件。指令826还可在计算机系统800执行所述指令期间完全或至少部分地驻留在主存储器804内及/或处理装置802内,主存储器804及处理装置802也构成机器可读存储媒体。机器可读存储媒体824、数据存储系统818及/或主存储器804可对应于图1的存储器子系统110。

在一个实施例中,指令826包含用于以实施对应于RBER估计器(例如,图1的RBER估计器113)的功能性的指令。虽然机器可读存储媒体824在实例实施例中被展示为单个媒体,但术语“机器可读存储媒体”应被视为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被视为包含能够存储或编码指令集以供机器执行且使机器执行本公开的方法中的任何一或多个的任何媒体。因此,术语“机器可读存储媒体”应被视为包含(但不限于)固态存储器、光学媒体及磁媒体。

已在计算机存储器内的算法及数据位的操作的符号表示的形式来呈现前面的详细描述的一些部分。这些算法描述及表示为由所属数据处理领域的技术人员用于以向所属领域的其它技术人员传达其工作的本质的方式。算法此处且通常被认为导致所要结果的自洽操作序列。操作为需要物理操纵物理量的操作。通常,但非必需地,这些量可采取能够存储、组合、比较或以其它方式操纵的电或磁信号的形式。将这些信号称作位、值、元素、符号、字符、项、数字等等有时已证明是便利的(主要出于共用的原因)。

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

本公开还涉及用于执行本文中操作的设备。此设备可为特定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。例如,计算机系统或其它数据处理系统,例如控制器115,可响应于其处理器执行包含在存储器或其它非暂时性机器可读存储媒体中的计算机程序(例如,一系列指令)实施计算机实施方法700的部分。此计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的磁盘,包含软盘、光盘、CD-ROM及磁光盘,只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适用于存储电子指令的任何类型的媒体,每一媒体耦合到计算机系统总线。

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

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

在上述各种实施例及以下权利要求中,除非另有特别说明,例如短语“A、B或C”之类的析取语言旨在应被理解为意指A、B或C,或其任一组合(例如,A、B及/或C)。因此,析取语言不打算且不应被理解为暗示给定实施例需要A中的至少一个、B中的至少一个或C中的至少一个各自存在,或仅存在A、B或C中的一个。

在上述说明书中,本公开的实施例已参考其特定实例实施例进行描述。显而易见的是,在不脱离所附权利要求书中所阐明的本公开的实施例的更广泛的精神及范围的情况下,可对其进行各种修改。因此,本说明书及附图应被视为是说明性的,而非限制性的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号