用于确定读取阈值电压的变化的系统和方法与流程

阅读: 评论:0



1.本公开的实施例涉及一种用于确定是否改变存储器系统中的读取阈值电压的方案。


背景技术:



2.计算机环境范例已经转变为可以随时随地使用的普适计算系统。因此,诸如移动电话、数码相机、笔记本电脑的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有存储器装置的存储器系统,即数据存储装置。数据储存装置用作便携式电子装置的主存储器装置或辅助存储器装置。
3.由于使用存储器装置的存储器系统不具有移动部件,因此它们提供优异的稳定性、耐久性、高信息访问速度和低功耗。具有这些优点的存储器系统的示例包括通用串行总线(usb)存储器装置、诸如通用闪存(ufs)的具有各种接口的存储卡以及固态驱动器(ssd)。存储器系统可以使用各种读取阈值来执行读取操作


技术实现要素:



4.本发明的方面包括使用深度学习基于错误信息确定是否将改变读取阈值电压的系统和方法。
5.一方面,一种存储器系统包括存储器装置和控制器,该存储器装置包括多个存储器单元,该控制器包括解码器。控制器可以基于与使用历史读阈值电压的读取操作相关联的失败位计数、解码器的错误校正能力和解码器中队列的利用率,确定除了作为先前成功的读取操作中使用的读取阈值电压的历史读取阈值电压之外的读取阈值电压是否将用于下一次读取操作。当确定历史读取阈值电压不用于下一次读取操作时,控制器确定与使用多个读取阈值电压对多个存储器单元的读取操作相关联的失败位计数。控制器基于失败位计数确定最佳读取阈值电压,最佳读取阈值电压在多个读取重试阈值电压之中具有最低的失败位计数。控制器将包括与设置最佳读取阈值电压相关联的参数的第一命令传输到存储器装置。
6.另一方面,一种用于操作存储器系统的方法,该存储器系统包括存储器装置和控制器,该控制器联接到该存储器装置并且包括解码器,该方法包括:基于与使用历史读阈值电压的读取操作相关联的失败位计数、解码器的错误校正能力和解码器中队列的利用率,确定除了作为先前成功的读取操作中使用的读取阈值电压的历史读取阈值之外的读取阈值电压是否将用于下一次读取操作;当确定历史读取阈值电压不用于下一次读取操作时,确定与使用多个读取阈值电压对存储器装置的多个存储器单元的读取操作相关联的失败位计数;基于失败位计数确定最佳读取阈值电压,该最佳读取阈值电压在多个读取阈值电压之中具有最低的失败位计数;并且将包括与设置最佳读取阈值电压相关联的参数的第一命令传输到存储器装置。
7.本发明的其他方面将从以下描述中变得显而易见。
附图说明
8.图1是示出根据本发明实施例的数据处理系统的框图。
9.图2是示出根据本发明实施例的存储器系统的框图。
10.图3是示出根据本发明实施例的存储器装置的存储块的电路图。
11.图4是示出存储器装置的不同类型的单元的状态分布的示图。
12.图5a是示出多层单元(mlc)的gray编码的示例的示图。
13.图5b是示出多层单元(mlc)的页面的状态分布的示图。
14.图6a是示出三层单元(tlc)的gray编码的示例的示图。
15.图6b是示出三层单元(tlc)的页面的状态分布的示图。
16.图7示出了基于所公开技术的一些实施例实施的用于数据存储性能优化的深度神经网络架构的示例。
17.图8示出了包括输入神经元、隐藏神经元、输出神经元和突触层的计算神经网络的示例配置。
18.图9示出了基于所公开技术的一些实施例实施的用于数据存储优化的深度神经网络的训练方法的示例。
19.图10示出了基于所公开技术的一些实施例实施的用于数据存储优化的深度神经网络的推理方法的示例。
20.图11示出了基于所公开技术的一些实施例实施的用于数据存储优化的深度神经网络系统的示例。
21.图12a至图12c示出了根据本发明实施例的深度神经网络的架构。
22.图13是示出存储器系统中的错误恢复算法的流程的示图。
23.图14是示出根据本发明实施例的包括深度神经网络的存储器系统的示图。
24.图15和图16是示出根据本发明实施例的读取阈值变化确定器的示图。
25.图17是示出根据本发明实施例的存储器系统的操作的流程图。
具体实施方式
26.下面参考附图更详细地描述各个实施例。然而,本发明可以以不同的形式实施,并且因此不应被解释为限于本文阐述的实施例。相反,提供这些实施例是为了使本公开是彻底且完整的,并将本发明的范围充分传达给本领域技术人员。此外,本文对“实施例”、“另一实施例”等的引用不一定仅针对一个实施例,并且对任何这种短语的不同引用不一定针对相同的实施例。此处使用的术语“实施例”不一定指代所有实施例。在整个公开内容中,相同的附图标记指代本发明的附图和实施例中的相同部分。
27.本发明可以以多种方式实施,包括:作为方法;设备:系统;在计算机可读存储介质上实施的计算机程序产品;和/或处理器,例如适合于运行存储在联接到处理器的存储器和/或由联接到处理器的存储器提供的指令的处理器。在本说明书中,这些实施方式或本发明可以采用的任何其他形式可以称为技术。通常,在本发明的范围内,可以改变所公开的方法的步骤的顺序。除非另有说明,否则被描述为适合于执行任务的诸如处理器或存储器的组件可以被实现为临时被配置为在给定时间执行任务的通用组件或被制造为执行该任务的特定组件。如本文所使用的,术语“处理器”等指的是适合于处理诸如计算机程序指令的
数据的一个或多个装置、电路和/或处理内核。
28.下面提供了对本发明实施例的详细描述以及说明本发明各方面的附图。结合这些实施例描述了本发明,但本发明不限于任何实施例。本发明的范围仅由权利要求书限定。本发明包涵盖权利要求范围内的许多替代、修改和等同方案。在以下描述中阐述了许多具体细节以提供对本发明的透彻理解。提供这些细节是为了示例的目的;本发明可以根据权利要求书来实践,而无需这些具体细节中的一些或全部。为了清楚起见,未详细描述与本发明相关的技术领域中已知的技术材料,以免不必要地模糊本发明。
29.图1是示出根据本发明实施例的数据处理系统2的框图。
30.参照图1,数据处理系统2可以包括主机装置5和存储器系统10。存储器系统10可以从主机装置5接收请求并且响应于接收到的请求而操作。例如,存储器系统10可以存储待由主机装置5访问的数据。
31.主机装置5可以利用各种电子装置中的任意一种来实施。在各个实施例中,主机装置5可以包括诸如以下的电子装置:台式计算机、工作站、三维(3d)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器和/或数字视频记录器和数字视频播放器。在各个实施例中,主机装置5可以包括诸如以下的便携式电子装置:移动电话、智能电话、电子书、mp3播放器、便携式多媒体播放器(pmp)和/或便携式游戏机。
32.存储器系统10可以利用诸如固态驱动器(ssd)和存储卡的各种存储装置中的任意一种来实施。在各个实施例中,存储器系统10可以被设置为诸如以下的电子装置中的各种组件中的一种:计算机、超移动个人计算机(pc)(umpc)、工作站、上网本pc、个人数字助理(pda)、便携式计算机、网络平板pc、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(pmp)、便携式游戏装置、导航装置、黑盒、数码相机、数字多媒体广播(dmb)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境中接收和传输信息的装置、射频识别(rfid)装置、以及家庭网络的各种电子装置之一、计算机网络的各种电子装置之一、远程通信网络的电子装置之一或计算系统的各种组件之一。
33.存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器控制器100可以控制半导体存储器装置200的全部操作。
34.半导体存储器装置200可以在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可以通过输入/输出线接收命令cmd、地址addr和数据data。半导体存储器装置200可以通过电源线接收电力pwr,并且通过控制线接收控制信号ctrl。控制信号ctrl可以包括命令锁存使能信号、地址锁存使能信号、芯片使能信号、写入使能信号、读取使能信号以及根据存储器系统10的设计和配置的其他操作信号。
35.存储器控制器100和半导体存储器装置200可以集成在诸如固态驱动器(ssd)的单个半导体装置中。ssd可以包括用于存储数据的存储装置。当半导体存储器系统10用于ssd中时,联接到存储器系统10的主机装置(例如,图1的主机装置5)的操作速度可以显著提高。
36.存储器控制器100和半导体存储器装置200可以集成在诸如存储卡的单个半导体器装置中。例如,存储器控制器100和半导体存储器装置200可以如此集成以配置个人计算机存储卡国际协会(pcmcia)的个人计算机(pc)卡、紧凑型闪存(cf)卡、智能媒体(sm)卡、记忆棒、多媒体卡(mmc)、尺寸减小的多媒体卡(rs-mmc)、微型尺寸版本的mmc(微型mmc)、安全
数字(sd)卡、迷你安全数字(迷你sd)卡、微型安全数字(微型sd)卡、安全数字高容量(sdhc)和/或通用闪存(ufs)。
37.图2是示出根据本发明实施例的存储器系统的框图。例如,图2的存储器系统可以描绘图1中所示的存储器系统10。
38.参照图2,存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器系统10可以响应于来自主机装置(例如,图1的主机装置5)的请求而操作,并且特别地,存储待由主机装置访问的数据。
39.半导体存储器装置200可以存储待由主机装置访问的数据。
40.半导体存储器装置200可以利用诸如动态随机存取存储器(dram)和/或静态随机存取存储器(sram)的易失性存储器装置或者诸如只读存储器(rom)、掩膜rom(mrom)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、铁电随机存取存储器(fram)、相变ram(pram)、磁阻ram(mram)和/或电阻式ram(rram)的非易失性存储器装置来实施。
41.存储器控制器100可以控制数据在半导体存储器装置200中的存储。例如,存储器控制器100可以响应于来自主机装置的请求来控制半导体存储器装置200。存储器控制器100可以将从半导体存储器装置200读取的数据提供给主机装置,并且可以将从主机装置提供的数据存储到半导体存储器装置200中。
42.存储器控制器100可以包括通过总线160联接的存储器110、控制组件120(其可以被实施为诸如中央处理单元(cpu)的处理器)、错误校正码(ecc)组件130、主机接口(i/f)140和存储器接口(i/f)150。
43.存储装置110可以用作存储器系统10和存储器控制器100的工作存储器,并且存储用于驱动存储器系统10和存储器控制器100的数据。当存储器控制器100控制半导体存储器装置200的操作时,存储装置110可以存储由存储器控制器100和半导体存储器装置200用于诸如读取操作、写入操作、编程操作和擦除操作的操作所使用的数据。
44.存储装置110可以利用诸如静态随机存取存储器(sram)或动态随机存取存储器(dram)的易失性存储器来实施。如上所述,存储装置110可以将主机装置所使用的数据存储在半导体存储器装置200中以用于读取操作和写入操作。为了存储数据,存储装置110可以包括程序存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。
45.控制组件120可以响应于来自主机装置的写入请求或读取请求来控制存储器系统10的一般操作以及针对半导体存储器装置200的写入操作或读取操作。控制组件120可以驱动被称为闪存转换层(ftl)的固件来控制存储器系统10的一般操作。例如,ftl可以执行诸如逻辑到物理(l2p)映射、损耗均衡、垃圾收集和/或坏块处理的操作。l2p映射被称为逻辑块寻址(lba)。
46.ecc组件130可以在读取操作期间检测并校正从半导体存储器装置200读取的数据中的错误。当错误位的数量大于或等于可校正错误位的阈值数量时,ecc组件130可以不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
47.在各个实施例中,ecc组件130可以基于诸如以下的编码调制来执行错误校正操作:低密度奇偶校验(ldpc)码、博斯-查德胡里-霍昆格姆(bose-chaudhuri-hocquenghem,bch)码、turbo码、turbo乘积码(tpc)、里德-所罗门(reed-solomon,rs)码、卷积码、递归系
统码(rsc)、网格编码调制(tcm)或分组编码调制(bcm)。然而,错误校正不限于这些技术。因此,ecc组件130可以包括用于合适的错误校正操作的任何和所有电路、系统或装置。
48.主机接口140可以通过诸如以下的各种接口协议中的一种或多种与主机装置通信:通用串行总线(usb)、多媒体卡(mmc)、高速外围组件互连(pci-e或pcie)、小型计算机系统接口(scsi)、串列scsi(sas)、串行高级技术附件(sata)、并行高级技术附件(pata)、增强型小磁盘接口(esdi)和电子集成驱动器(ide)。
49.存储器接口150可以提供存储器控制器100和半导体存储器装置200之间的接口,以允许控制器100响应于来自主机装置的请求来控制半导体存储器装置200。存储器接口150可以在控制组件120的控制下生成用于半导体存储器装置200的控制信号并处理数据。当半导体存储器装置200是诸如nand闪速存储器的闪速存储器时,存储器接口150可以在控制组件120的控制下生成用于存储器的控制信号并处理数据。
50.半导体存储器装置200可以包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、页面缓冲器阵列250(其可以是页面缓冲器阵列的形式)、列解码器260以及输入和输出(输入/输出)电路270。存储器单元阵列210可以包括可以存储数据的多个存储块211。电压生成电路230、行解码器240、页面缓冲器阵列250、列解码器260和输入/输出电路270可以形成存储器单元阵列210的外围电路。外围电路可以对存储器单元阵列210执行编程操作、读取操作、或擦除操作。控制电路220可以控制外围电路。
51.电压生成电路230可以生成各种电平的操作电压。例如,在擦除操作中,电压生成电路230可以生成各种电平的操作电压,诸如擦除电压和通过电压。
52.行解码器240可以与电压生成电路230和多个存储块211电连通。行解码器240可以响应于由控制电路220生成的行地址,选择多个存储块211之中的至少一个存储块,并且将从电压生成电路230提供的操作电压传输到所选择的存储块。
53.页面缓冲器阵列250可以通过位线bl(如图3所示)与存储器单元阵列210联接。页面缓冲器阵列250可以响应于由控制电路220生成的页面缓冲器控制信号,利用正电压对位线bl进行预充电,在编程操作和读取操作中将数据传输到所选择的存储块和从所选择的存储块接收数据,或者临时存储所传输的数据。
54.列解码器260可以向页面缓冲器阵列250传输数据和从页面缓冲器250接收数据,或者向输入/输出电路270传输数据和从输入/输出电路270接收数据。
55.输入/输出电路270可以向控制电路220传输从外部装置(例如,图1的存储器控制器100)接收的命令和地址,将来自外部装置的数据传输到列解码器260,或者通过输入/输出电路270将数据从列解码器260输出到装置外部装置。
56.控制电路220可以响应于命令和地址来控制外围电路。
57.图3是示出根据本发明实施例的半导体存储器装置的存储块的电路图。例如,图3所示的存储块可以是图2所示的存储器单元阵列210的存储块211中的任意一个。
58.参照图3,示例性存储块211可以包括连接到行解码器240的多条字线wl0至wln-1、漏极选择线dsl和源极选择线ssl。这些线可以与dsl和ssl之间的多条字线平行布置。
59.示例性存储块211可以进一步包括分别联接到位线bl0至blm-1的多个单元串221。每一列的单元串可以包括一个或多个漏极选择晶体管dst和一个或多个源极选择晶体管sst。在所示的实施例中,每个单元串具有一个dst和一个sst。在单元串中,多个存储器单元
或存储器单元晶体管mc0至mcn-1可以串联联接在选择晶体管dst和sst之间。存储器单元中的每一个可以形成为多层单元。例如,存储器单元中的每一个可以形成为存储1位数据的单层单元(slc)。存储器单元中的每一个可以形成为存储2位数据的多层单元(mlc)。存储器单元中的每一个可以形成为存储3位数据的三层单元(tlc)。存储器单元中的每一个可以形成为存储4位数据的四层单元(qlc)。
60.每个单元串中的sst的源极可以联接到公共源极线csl,并且每个dst的漏极可以联接到相应的位线。单元串中的sst的栅极可以联接到ssl,并且单元串中的dst的栅极可以联接到dsl。跨单元串的存储器单元的栅极可以联接到相应的字线。也就是说,存储器单元mc0的栅极连接到相应的字线wl0,存储器单元mc1的栅极连接到相应的字线wl1,等等。联接到特定字线的存储器单元组可以被称为物理页面。因此,存储块211中的物理页面的数量可以对应于字线的数量。
61.页面缓冲器阵列250可以包括联接到位线bl0至blm-1的多个页面缓冲器251。页面缓冲器251可以响应于页面缓冲器控制信号而操作。例如,页面缓冲器251可以在读取操作或验证操作期间临时存储通过位线bl0至blm-1接收的数据或感测位线的电压或电流。
62.在一些实施例中,存储块211可以包括nand型闪速存储器单元。然而,存储块211不限于这种单元类型,而是可以包括nor型闪速存储器单元。存储器单元阵列210可以被实施为组合了两种或更多种类型的存储器单元的混合闪速存储器,或者控制器被嵌入在存储器芯片内部的one-nand闪速存储器。
63.图4是示出存储器装置的不同类型的单元的状态或编程电压(pv)电平的分布的示图。
64.参照图4,存储器单元中的每一个可以利用特定类型的单元来实施,例如存储1位数据的单层单元(slc)、存储2位数据的多层单元(mlc)、存储3位数据的三层单元(tlc)或存储4位数据的四层单元(qlc)。通常,特定存储器装置中的所有存储器单元都是相同类型,但这不是必需的。
65.slc可以包括两种状态p0和p1。p0可以表示擦除状态,p1可以表示编程状态。由于slc可以被设置为两种不同状态中的一种,因此每个slc可以根据设定的编码方法来对1个位进行编程或存储1个位。mlc可以包括四种状态p0、p1、p2和p3。在这些状态中,p0可以表示擦除状态,p1至p3可以表示编程状态。由于mlc可以被设置为四种不同状态中的一种,因此每个mlc可以根据设定的编码方法来对2个位进行编程或存储2个位。tlc可以包括八种状态p0到p7。在这些状态中,p0可以表示擦除状态,p1至p7可以表示编程状态。由于tlc可以被设置为八种不同状态中的一种,因此每个tlc可以根据设定的编码方法来对3个位进行编程或存储3个位。qlc可以包括16种状态p0至p15。在这些状态中,p0可以表示擦除状态,p1至p15可以表示编程状态。由于qlc可以被设置为十六种不同状态中的一种,因此每个qlc可以根据设定的编码方法来对4个位进行编程或存储4个位。
66.返回参照图2和图3,半导体存储器装置200可以包括多个存储器单元(例如,nand闪速存储器单元)。存储器单元按行和列的阵列布置,如图3所示。每一行的单元连接到字线(例如,wl0),而每一列的单元连接到位线(例如,bl0)。这些字线和位线用于读取和写入操作。在写入操作期间,在字线为高电平(asserted)时,将待写入的数据(“1”或“0”)提供在位线处。在读取操作期间,字线再次为高电平,可以从位线获取每个单元的阈值电压。多个页
面可以共享属于(即,联接到)相同字线的存储器单元。当利用mlc实施存储器单元时,多个页面包括最高有效位(msb)页面和最低有效位(lsb)页面。当利用tlc实施存储器单元时,多个页面包括msb页面、中间有效位(csb)页面和lsb页面。当利用qlc实施存储器单元时,多个页面包括msb页面、中间最高有效位(cmsb)页面、中间最低有效位(clsb)页面和lsb页面。可以使用编码方案(例如,gray编码)对存储器单元进行编程,以增加诸如ssd的存储器系统10的容量。
67.图5a是示出用于多层单元(mlc)的编码的示例的示图。
68.参照图5a,可以使用设定编码来对mlc进行编程。mlc可以具有4种编程状态,包括擦除状态e(或pv0)和第一编程状态pv1至第三编程状态pv3。擦除状态e(或pv0)可以对应于“11”。第一编程状态pv1可以对应于“10”。第二编程状态pv2可以对应于“00”。第三编程状态pv3可以对应于“01”。
69.在mlc中,如图5b所示,存在两种类型的页面,包括lsb页面和msb页面。可以应用1个或2个阈值,以从mlc检索数据。对于msb页面,单个阈值是vt1。vt1区分第一编程状态pv1和第二编程状态pv2。对于lsb页面,2个阈值包括阈值vt0和阈值vt2。vt0区分擦除状态e和第一编程状态pv1。vt2区分第二编程状态pv2和第三编程状态pv3。
70.图6a是示出用于三层单元(tlc)的gray编码的示例的示图。
71.参照图6a,可以使用gray编码对tlc进行编程。tlc可以具有8种编程状态,包括擦除状态e(或pv0)和第一编程状态pv1至第七编程状态pv7。擦除状态e(或pv0)可以对应于“110”。第一编程状态pv1可以对应于“011”。第二编程状态pv2可以对应于“001”。第三编程状态pv3可以对应于“000”。第四编程状态pv4可以对应于“010”。第五编程状态pv5可以对应于“110”。第六编程状态pv6可以对应于“100”。第七编程状态pv7可以对应于“101”。
72.在tlc中,如图6b所示,存在3种类型的页面,包括lsb页面、csb页面和msb页面。可以应用2个或3个阈值,以从tlc检索数据。对于msb页面,2个阈值包括区分擦除状态e和第一编程状态pv1的阈值vt0以及区分第四编程状态pv4和第五编程状态pv5的阈值vt4。对于csb页面,3个阈值包括vt1、vt3和vt5。vt1区分第一编程状态pv1和第二编程状态pv2。vt3区分第三编程状态pv3和第四编程状态pv4。vt5区分第四编程状态pv5和第六编程状态pv6。对于lsb页面,2个阈值包括vt2和vt6。vt2区分第二编程状态pv2和第三编程状态pv3。vt6区分第六编程状态pv6和第七编程状态pv7。
73.在如图5a和6a所示对包括多个存储器单元的存储器阵列进行编程之后,当使用诸如读取阈值(即,读取电压电平)的特定电压参考值对存储器阵列执行读取操作时,将存储器单元的电荷电平(例如,存储器单元的晶体管的阈值电压电平)与一个或多个电压参考值(也被称为“读取电压电平”或“读取阈值”)进行比较,以确定单个存储器单元的状态。例如,当特定读取阈值被施加到存储器阵列时,那些阈值电压电平高于特定电压参考值的存储器单元被导通并且被检测为“导通”单元,而那些阈值电压电平低于特定电压参考值的存储器单元被关断并被检测为“关断”单元。因此,每个读取阈值被布置在对应于不同编程状态的相邻阈值电压分布窗口之间,使得每个读取阈值可以通过导通或关断存储器单元晶体管来区分这些编程状态。
74.当使用mlc技术对数据存储装置中的存储器单元执行读取操作时,将存储器单元的阈值电压电平与多个读取阈值电平进行比较以确定单个存储器单元的状态。读取错误可
能由失真或重叠的阈值电压分布引起。由于例如编程和擦除(p/e)周期、单元间干扰和数据保留错误,理想的存储器单元阈值电压分布可能会明显地失真或重叠。例如,随着编程/擦除周期的增加,不同编程状态的相邻阈值电压分布之间的裕量减小,最终分布开始重叠。因此,具有落在相邻分布的重叠范围内的阈值电压的存储器单元可能被读取为被编程为不同于原始目标值的值,从而导致读取错误。在大多数情况下,可以通过使用错误校正码(ecc)来管理这种读取错误。当读取操作的错误位数量超过数据存储的ecc错误校正能力时,读取操作失败。
75.某些情况或操作条件,例如随时间推移的电荷泄漏和装置使用磨损,会导致阈值电压偏移。这种阈值电压偏移会产生读取错误,因为若干“关断”单元可能由于阈值电压偏移而导致阈值电压高于读取阈值。各种情况会导致阈值电压偏移产生读取错误。例如,低耐久性的存储器装置可能比高耐久性的存储器装置产生更多的读取错误。这种阈值电压偏移可能由操作条件引起,例如存储器阵列的编程/擦除周期的数量增加和数据存储装置的工作温度增加。还可以考虑读取干扰和存储器芯片或存储块的位置来确定阈值电压是否可能发生偏移。
76.闪速存储器的耐久性可以指示闪存能够成功执行的编程/擦除操作的最大次数。在每个存储器单元可能无法使用之前,每个存储器单元只能被编程和擦除有限的次数。在所公开技术的一些实施例中,闪速存储器的耐久性指示每个设定周期(例如,天)的编程/擦除操作的最大次数。闪速存储器的耐久性会受到结构问题(例如高存储器密度)和操作条件(例如高编程电压)的影响。
77.数据保留可以指与存储器单元保持正确编程状态的时间有关的操作条件。数据保留可以根据工作温度和对存储器单元执行的编程/擦除周期的数量而变化。使存储器单元经受高温和大量编程/擦除操作往往会降低它们的数据保留。
78.读取干扰表示其中从闪存单元读取数据会导致相同块中的其他未读取单元的阈值电压偏移到不同的(例如,更高的)值的现象。虽然单个阈值电压偏移较小,但随着时间的推移执行读取操作时,阈值电压偏移最终会变得足够大以改变存储器单元的状态。
79.管芯、块和字线索引可以表示待读取的存储器单元的物理位置。数据存储装置可以由多个存储器芯片管芯组成,每个存储器芯片管芯包括多个存储块。每个存储块包括多个存储器单元,并且每个存储器单元由与每个存储器单元联接的字线来选择。存储器控制器可以被配置为跟踪数据跨多个管芯和多个块的移动。基于数据的移动,存储器控制器可以确定某个存储器管芯或某个存储块已经执行了多少编程/擦除操作。可以参考管芯索引、块索引以及字线索引来存储该信息,以识别编程/擦除操作集中的位置。当从这些位置中的任意一个读取数据时,读取错误的可能性会更高。
80.然而,可以通过修改读取阈值来最小化这种读取错误。在所公开技术的一些实施例中,基于闪速存储器的数据存储ssd装置可能会根据读取错误的操作条件来修改读取阈值。这些操作条件包括但不限于存储器装置的耐久性、数据保留、读取干扰、相关联的存储装置的使用年限、数据存储装置的工作温度以及待读取的存储器单元的位置(其可以由管芯索引、块索引和/或字线索引指示)。
81.诸如ssd的数据存储装置的性能(例如,每秒的输入/输出操作和吞吐量)在很大程度上取决于进行第一次读取操作时应用的读取阈值设置(即,读取电压设置)。如果读取阈
值未优化,则性能可能会下降,因为这种未优化的读取阈值电压会导致读取错误。读取阈值电压的优化取决于某些操作条件,例如数据的物理位置、装置耐久性、数据保留时间、操作温度、读取干扰和装置使用年限。然而,人工地考虑不同操作条件的所有可能组合来修改读取阈值是不现实的。如果操作条件经常变化,手动获得优化的读取阈值将更加困难。因此,需要提供一种使用深度学习来优化读取阈值的系统和方法。深度学习的一种实施方式具有如图7、图8和图11所示的结构,并且执行如图9和图10所示的操作。在题为“使用深度学习的存储装置性能优化(storage device performance optimization using deep learning)”、序列号为16/717,888的美国专利申请中描述了这种结构,该美国专利申请通过引用并入本文。
82.在所公开技术的一些实施例中,可以通过如下方式来最小化读取错误:通过使用深度神经网络以基于上面所讨论的操作条件来识别在数据存储装置的存储器单元阵列中可能发生的阈值电压偏移的特定影响。在所公开技术的一些实施方式中,将促使可导致读取错误的阈值电压偏移的操作条件进行分类,并且使用深度神经网络对这种操作条件进行量化。所公开技术的一些实施方式包括确定将读取阈值设置为特定值必须满足的标准。例如,当确定不满足最佳读取阈值的标准时(例如,当来自存储器装置的错误数量或错误指示接近不希望的较高值,温度值接近较低或较高阈值等等时),存储器控制器可以使用深度学习神经网络引擎生成的值,基于感测到的操作条件来获得新值以修改读取阈值。操作条件,包括数据的物理位置、数据存储装置的耐久性、数据保留、操作温度、读取干扰和数据存储装置的使用年限,可用于估计或预测阈值电压偏移。可以基于从大量闪速存储器芯片管芯收集的输入数据来训练深度神经网络。例如,可以基于有限的操作条件组合来训练深度神经网络。在实施方式中,优化的读取阈值电压是从经训练的深度神经网络引擎计算出来的。在另一实施方式中,由经训练的神经网络引擎获得的值可以存储在数据存储装置的存储器(例如,查表)中,并且数据存储装置中的存储器控制器可以基于该值修改读取阈值电压。
83.在所公开技术的一些实施例中,深度神经网络用于从存储装置的操作条件预测最佳读取阈值。在一个示例中,深度学习网络可用于插值与从离线存储器装置特征描述获得的训练数据集中不存在的操作条件相关联的最佳读取阈值。在所公开技术的一些实施例中,可以从基于操作条件的有限组合的离线计算过程中获得用于优化读取阈值电压的经训练的深度神经网络。基于更大的一组操作条件,可以由经训练的深度学习网络计算出针对所有可能的操作条件的组合的最佳读取阈值,从而可以在存储器装置的实际读取操作期间使用优化结果。
84.图7示出了基于所公开技术的一些实施例而实施的用于数据存储性能优化的深度神经网络架构的示例。用于数据存储性能优化的深度神经网络架构700包括多个输入节点710、第一连接层720和第二连接层760、多个连接节点730和750以及深度神经网络740和多个输出节点770。此处,第一和第二连接层720和760可以是全连接层。例如,第一连接层720可以被配置为将所有输入节点710连接到深度神经网络740的所有连接节点730。同样地,第二连接层760可以被配置为将所有输出节点770连接到深度神经网络740的所有连接节点750。在所公开技术的一些实施例中,输入节点710和输出节点770可以是输入神经元和输出神经元,并且第一连接层720和第二连接层760可以是突触层,如下面将讨论。
85.已经过训练的深度神经网络740通过多个输入节点710、第一连接层720和第一连
接节点730,接收导致读取错误的操作条件,例如耐久性、保留、读取干扰、管芯索引、块索引、字线索引、数据存储驱动器的使用年限和/或温度。深度神经网络740使用一组读取阈值在操作条件的组合下测量存储器装置中的数据。例如,深度神经网络740可以在输入的操作条件组合下从数据存储装置的某个存储器单元中读出数据,操作条件包括该存储器单元所属的存储器装置的耐久性、该存储器单元所属的存储器装置的数据保留、与该存储器单元相关联的预期读取干扰、数据存储装置的使用年限、数据存储装置的工作温度以及该存储器单元的物理位置(可以基于管芯索引、块索引和字线索引确定)。对于具有连续值的操作条件,所公开的深度神经网络的一些实施方式示例仅选择或提取离散值。以这种方式,可以从已经过训练的深度神经网络中得到最佳的读取阈值。在实施方式中,对应于操作条件的每个组合而优化的阈值电压可以存储在存储装置的存储器(例如,sram)中。
86.图8示出了包括输入神经元810、隐藏神经元820、输出神经元830以及突触层840和850的计算神经网络的示例配置。例如,突触层840可以包括多个权重w
11
、w
12
、w
13
、w
14
、w
21
、w
22
、w
23
、w
24
、w
31
、w
32
、w
33
和w
34
。输入神经元810接收一些值并且将它们传播到网络的隐藏神经元820。来自一层或多层隐藏神经元820的加权和最终被传播到输出神经元830。此处,神经元的输出通常被称为激活,突触通常被称为权重。每层的计算示例可以表示为:
[0087][0088]
其中wji、xi和yj分别是权重、输入激活和输出激活。
[0089]
在所公开技术的一些实施例中,诸如耐久性、保留、读取干扰、管芯索引、块索引、字线索引、数据存储驱动器的使用年限和温度等输入参数被馈送到深度神经网络的第一层中,并且该层的输出可以被解释为表示导致阈值电压偏移的不同特征的存在。在随后的层中,这些特征然后被组合成更高级别特征的可能存在的度量,这些特征被进一步组合,以提供这些高级特征需要读取阈值修改的概率。
[0090]
在所公开的技术的一些实施例中,用于数据存储性能优化的神经网络算法包括确定神经网络中的权重(和偏差)的值,并且被称为训练网络。训练后,程序可以通过使用训练过程中确定的权重计算神经网络的输出来执行其任务。使用这些权重运行程序称为推理。有多种方法可以训练权重。监督学习是一种所有训练样本都被标记的方法。无监督学习是另一种所有训练样本都不标记的方法,本质上其目标是到数据中的结构或集。半监督学习介于两种方法之间,其中只有一小部分训练数据被标记。
[0091]
图9示出了基于所公开技术的一些实施例实施的用于数据存储优化的深度神经网络的训练方法900的示例。首先,在操作条件具有连续值的情况下,从导致数据存储装置中的读取错误的操作条件的连续值中选择离散值。在步骤910,使用第一组读取阈值电压,在操作条件的某些组合下读出存储器装置中的数据。例如,使用第一组读取阈值电压,在操作条件的某些组合下测量存储器装置的存储器单元的阈值电压。在实施方式中,使用一组读取阈值电压,在操作条件的离散值的某些组合下测量存储器单元的阈值电压。在步骤920,到合适的读取阈值以产生被标记的训练数据集。在步骤930,基于存储器装置的特性,确定层数和每层的大小以构建深度神经网络引擎。例如,层数和每层的大小被确定为深度神经网络引擎的超参数。深度神经网络引擎的一些示例可以包括至少两层、n个输入节点和m个输出节点。此处,n是所考虑的条件数量,m是所考虑的不同读取阈值设置的数量。层数和每层的大小取决于存储器单元的特性。在确定层数和每层的大小后,配置深度神经网络引
擎的层和输入/输出节点。在步骤940,使用对应于最佳读取阈值的被标记的训练数据集对深度神经网络引擎进行训练。在步骤950,经训练的深度神经网络引擎用于在更大的一组操作条件下计算读取阈值电压值。
[0092]
在所公开技术的一些实施例中,用于数据存储性能优化的深度神经网络引擎可以被设计成帮助识别在确定阈值电压偏移量中最有影响的操作条件,以为给定阈值电压分布窗口选择优化的读取阈值。基于这些特征,可以利用机器学习技术来决定优化的读取阈值,从而最大限度地减少读取错误。在实施方式中,与被标记的训练数据集相关联的优化的读取阈值可以存储在存储装置的存储器(例如,sram)中。
[0093]
图10示出了基于所公开技术的一些实施例实施的用于数据存储优化的深度神经网络的推理方法1000的示例。在步骤1010,将当前操作条件馈送到经训练的深度神经网络的输入节点。在步骤1020,从经训练的深度神经网络的输出节点获得最佳读取阈值。在步骤1030,读取阈值被修改为最佳读取阈值。在步骤1040,可以使用最佳读取阈值从存储器单元读出数据。
[0094]
图11示出了基于所公开技术的一些实施例实施的用于数据存储优化的深度神经网络系统1100的示例。深度神经网络1100可以包括一个或多个处理器1110以及可操作地联接到一个或多个处理器1110的一个或多个存储器装置1120。一个或多个处理器1110可操作以接收导致数据存储装置中的读取错误的多个操作条件。导致数据存储装置中的读取错误的操作条件中的一些包括耐久性、保留、读取干扰、管芯索引、块索引、字线索引、数据存储驱动器的使用年限和工作温度。一个或多个处理器1110可操作以根据存储装置的操作条件预测最佳读取阈值。例如,一个或多个处理器可以利用深度学习算法插值与操作条件相关联的最佳读取阈值,这些操作条件不存在于从离线存储器装置特征描述获得的训练数据集中。
[0095]
在所公开技术的一些实施例中,一个或多个处理器1110可用于在操作条件的某些组合下测量存储器单元的阈值电压。一个或多个处理器1110可用于为每个阈值电压分布到最佳读取阈值,从而产生被标记的训练数据集。在一个示例中,一个或多个处理器1110可以包括被配置为产生被标记的训练数据集的被标记训练数据准备模块1112。一个或多个处理器1110可用于配置用于接收的输入节点1130以及输出节点1140。例如,一个或多个处理器1110可用于配置n个输入节点和m个输出节点,其中n是所考虑的操作条件的数量,m是所考虑的不同读取阈值设置的数量。一个或多个处理器1110可以用于决定深度神经网络的超参数。一个或多个处理器可用于基于被标记的训练数据集进行训练。在一个示例中,一个或多个处理器1110可以包括训练模块1114,训练模块1114被配置为基于被标记的训练数据集进行训练。在所公开技术的一些实施例中,一个或多个存储器装置1120可以被配置为存储训练模型的一组超参数1122和读取阈值1124。
[0096]
一个或多个处理器1110可用于从输出节点获得与被馈送到输入节点的操作条件的组合相对应的最佳读取阈值。最佳读取阈值及其相应的操作条件组合可用于计算数据存储装置中的存储器装置的最佳阈值电压。在实施方式中,数据存储装置可用于使用经训练的深度神经网络引擎来决定读取阈值。
[0097]
如上所述,为了优化读取阈值电压值,深度学习框架的一种实施方式具有如图7示的结构。图7的深度学习框架使用诸如nand条件(即,耐久性、保留、读取干扰、驱动器的使用
年限、温度)和数据的物理位置(即管芯索引、块索引、wl索引)等特征。深度学习框架的另一种实施方式具有如图12a至图12c所示的结构。除了图7的特征之外,图12a至图12c的深度学习框架还使用错误信息(例如,失败位计数(fbc))。在序列号为16/937,939、题为“使用深度学习的读取阈值估计系统和方法(read threshold estimation systems and methods using deep learning)”并通过引用并入本文的美国专利申请专利中描述了这种结构。
[0098]
图12a至图12c示出了根据本发明实施例的深度神经网络1100的架构。
[0099]
参照图12a至图12c,深度神经网络(dnn)1100可以接收导致数据存储装置(例如,图2的存储器系统)中的读取错误的多个操作条件。操作条件可以包括诸如以下的相关联的存储器装置(即,nand)的条件:耐久性、保留、读取干扰、数据存储装置(或驱动器)的使用年限和工作温度以及待读取的数据的物理位置(例如管芯索引、块索引和字线索引),如图7所示。进一步,操作条件可以包括读取阈值电压集和与使用该读取阈值电压集从存储器装置读取的数据相关联的错误信息。在图12a所示的示例中,对于tlc的lsb页面,读取阈值电压集可以是[vt2,vt6]。在图12b所示的示例中,对于tlc的msb页面,读取阈值电压集可以是[vt0,vt4]。在图12c所示的示例中,对于tlc的csb页面,读取阈值电压集可以是[vt1,vt3,vt5]。在一些实施例中,错误信息可以是失败位计数(fbc),失败位计数(fbc)是从使用提供给dnn 1100的读取阈值电压集对来自存储器装置的读取数据进行解码获得的。因此,深度神经网络1100可以具有回归深度学习框架,其可用于从包括读取阈值电压集和错误信息的操作条件以及其他操作条件预测最佳读取阈值,如图7所示。例如,深度神经网络1100可以利用深度学习算法插值与从离线存储器装置特征描述获得的训练数据集中的操作条件相关联的最佳读取阈值,其中最佳读取阈值不存在于训练数据集中。
[0100]
根据典型的读取方案,可以被配置为实施图11的深度神经网络模型的图2的控制组件120可以使用默认读取阈值电压来控制对存储器单元的读取操作。当使用默认读取阈值电压的读取操作失败时,控制组件120可以控制如图13所示的错误恢复算法1300。
[0101]
参照图13,控制组件120可以使用以设定顺序施加的一个或多个读取阈值电压对存储器单元执行一个或多个读取重试操作(1310)。例如,读取阈值电压可以包括n(例如,n是50)个读取阈值电压(或读取电压电平),包括第一读取阈值电压至第n读取阈值电压。第一读取阈值电压可以是先前使用的读取阈值电压(即,历史读取阈值电压)。历史读取阈值电压可以是上次成功解码中使用的读取阈值电压,即在读取重试操作之前执行的读取通过的读取操作中使用的读取电压。控制组件120可以执行读取重试操作,直到确定与相应的读取重试操作相关联的解码成功为止。
[0102]
当使用读取阈值电压的所有读取重试操作都失败时,控制组件120可以执行额外的恢复操作。例如,额外的恢复操作可以包括最佳读取阈值电压搜索(1320)、使用错误校正码(ecc)的软解码(1330)和独立磁盘冗余阵列(raid)恢复(1340)。
[0103]
如上所述,错误恢复算法1300记录最后成功的读取阈值记录并将其更新作为历史读取阈值电压。然而,根据待读取的页面的条件,历史读取阈值电压有时可能与下一次读取操作的最佳读取阈值电压相差甚远。当历史读取阈值电压与最佳读取阈值之间的差距(或差异)较大时,与读取数据的解码相关的错误可能较大,并且超过了在解码读取数据中使用的错误校正码(ecc)方案的错误校正能力。因此,应该被估计和被用于下一次读取操作的是最佳读取阈值电压而不是历史读取阈值电压。这样做可以降低下一次读取操作的解码失败
的概率。然而,最佳读取阈值电压可根据包括存储器装置200的条件或状态的各种因素频繁改变。读取阈值电压的频繁改变导致从控制器100传输更多的设置命令来通知存储器装置200读取阈值的变化。传输设置命令可能会增加整体读取延迟,从而降低存储器系统的读取操作的服务质量(qos)。因此,各个实施例提供了一种方案,该方案用于基于错误信息(例如,失败位计数)和解码器中的队列的利用率,确定是否将在下一次读取操作中使用另一个读取阈值电压,而不是历史读取阈值电压。当满足特定条件时,实施例可以确定被将用于下一次读取操作的是另一个读取阈值电压,而不是历史读取阈值电压,该特定条件是基于错误信息和利用率而确定的。因此,实施例可以降低读取阈值电压改变的频率以及关于这种改变的从控制器到存储器装置的相应传输,从而改善存储器系统中读取操作的整体读取延迟和服务质量(qos)。
[0104]
图14是示出根据本发明实施例的包括深度神经网络的存储器系统10的示图。
[0105]
参照图14,存储器系统10可以包括控制器100和存储器装置200。存储器装置200可以包括多个存储器单元(例如,nand闪速存储器单元)210和被配置为生成用于对存储器单元210进行各种操作的操作电压的电压生成电路230。存储器单元按行和列的阵列布置,如图3示。每一行的单元连接到字线(例如,wl0),每一列的单元连接到位线(例如,bl0)。这些字线和位线用于读取操作和写入操作。在写入操作期间,在字线为高电平时,待写入的数据(“1”或“0”)被提供到位线处。在读取操作期间,字线再次为高电平,然后可以从位线获取每个单元的阈值电压。多个页面可以共享属于(即,联接到)相同字线的存储器单元。当存储器单元利用mlc实现时,多个页面包括最高有效位(msb)页面和最低有效位(lsb)页面。当存储器单元利用tlc实现时,多页面包括msb页面、中间有效位(csb)页面和lsb页面。当存储器单元利用qlc实现时,多个页面包括msb页面、中间最高有效位(cmsb)页面、中间最低有效位(clsb)页面和lsb页面。可以使用编码方案(例如,gray编码)对存储器单元进行编程,以增加诸如ssd的存储器系统10的容量。
[0106]
控制器100可以包括深度神经网络(dnn)1100、解码器1410和读取阈值变化确定器1420。这些组件可以利用图2的控制组件120的内部组件(即,固件(fw))来实现。虽然未在图5示出,但是控制器100和存储器装置200可以包括如图2示的各种其他组件。
[0107]
在图11示的实施例中,深度神经网络1100可以包括一个或多个处理器1110和可操作地联接到一个或多个处理器1110的一个或多个存储器装置1120。深度神经网络1100可以控制各种操作,例如对存储器单元210操作,并且使用诸如nand条件(即,耐久性、保留、读取干扰、驱动器的使用年限、温度)和数据的物理位置(即,管芯索引、块索引、wl索引)等特征优化读取阈值电压值。在一些实施例中,深度神经网络1100可以包括存储多个读取阈值电压(或读取电压电平)的读取电平表,并且使用从读取电平表中选择的读取阈值电压来控制对存储器单元210的读取操作。
[0108]
解码器1410可以包括用于存储从存储器单元210读取的数据的队列。队列的利用率可以根据从存储器单元210读取的数据的量而改变。解码器1410可以对存储在队列中的数据进行解码并且生成与解码结果相对应的错误信息(即,失败位计数(fbc))。在一些实施例中,解码器1410可以利用使用低密度奇偶校验(ldpc)码作为错误校正码(ecc)的解码器,即ldpc解码器来实现。
[0109]
当确定初始读取操作失败时,深度神经网络1100可以使用历史读取阈值电压来对
存储器单元210执行读取重试操作。当确定使用历史读取阈值电压的读取重试操作失败时,深度神经网络1100可以使用一个或多个其他读取阈值电压来对存储器单元210执行一个或多个额外的读取重试操作。多个读取重试阈值电压(例如,图13中的多个读取阈值电压条目)可以包括待用于第一次读取重试操作的历史读取阈值电压和待用于额外的读取重试操作的一个或多个其他读取阈值电压。
[0110]
在一些实施例中,深度神经网络1100可以确定和保持与使用多个读取重试阈值电压对多个存储器单元的读取操作的解码结果相关联的错误信息(即,失败位计数(fbc))。
[0111]
读取阈值变化确定器1420可以确定是否将改变历史读取阈值电压,即,将使用另一个读取阈值电压。当确定不需要这种改变时,历史读取阈值电压可以用于下一次读取操作。当确定将使用除历史读取阈值电压之外的读取阈值电压时,可以估计最佳读取阈值电压并将其用于下一次读取操作。
[0112]
深度神经网络1100可以基于与从存储器单元210读取的数据的解码相关联的失败位计数来估计多个读取阈值电压之中的下一次读取操作的最佳读取阈值电压。例如,最佳读取阈值电压可以是多个读取重试阈值之中的具有最低失败位计数的读取阈值电压。
[0113]
在一些实施例中,读取阈值变化确定器1420可以基于失败位计数、解码器的错误校正能力和解码器中的队列的利用率来确定是否使用除历史读取阈值电压之外的读取阈值电压。
[0114]
当确定历史读取阈值电压将不用于下一次读取操作时,深度神经网络1100可以向存储器装置200传输包括与设置最佳读取阈值相关联的参数的命令。当确定历史读取阈值电压将用于下一次读取操作时,深度神经网络1100可以向存储器装置200传输指示不改变历史读取阈值电压的命令。可选地,当确定历史读取阈值电压将用于下一次读取操作时,深度神经网络1100可以不向存储器装置200传输任何命令。
[0115]
图15和图16是示出根据本发明实施例的读取阈值变化确定器1420的示图。
[0116]
参照图15,读取阈值变化确定器1420可以从深度神经网络1100接收失败位计数(fbc)并且从解码器1410接收队列的利用率。进一步,读取阈值变化确定器1420可以从深度神经网络1100固件接收历史读取(hr)阈值电压,并且从解码器1410接收错误校正能力和利用率阈值。可选地,可以预先将错误校正能力和利用率阈值提供给读取阈值变化确定器1420。
[0117]
读取阈值变化确定器1420可以基于失败位计数(fbc)、解码器1410的错误校正能力和解码器1410中队列的利用率,来确定历史读取阈值电压是否将用于下一次读取操作,即历史读取阈值电压是否将被改变。
[0118]
当确定将进行这样的改变时,读取阈值变化确定器1420可以向存储器装置200传输第一命令。在一些实施例中,第一命令可以指示将用于下一次读取操作的读取阈值电压从历史读取阈值电压改变为最佳读取阈值电压,并且包括为使用最佳读取阈值电压而设置的参数。例如,第一命令可以是设置参数命令,用于在存储器装置200的电压生成电路230中更新将用于下一次读取操作的是最佳读取阈值电压,而不是历史读取阈值电压。
[0119]
当确定将在下一次读取操作中使用历史读取阈值电压时,读取阈值变化确定器1420可以向存储器装置200传输第二命令。在一些实施例中,第二命令可以指示不改变历史读取阈值电压,因此不对存储器装置200执行改变操作。可选地,当确定将在下一次读取操
作中使用历史读取阈值电压时,读取阈值变化确定器1420可以不向存储器装置200传输任何命令。
[0120]
当与历史读取阈值电压相对应的失败位计数小于解码器1410的错误校正能力的一部分时,读取阈值变化确定器1420可以确定将在下一次读取操作中使用历史读取阈值电压。在一些实施例中,该部分可以是代码错误校正能力的75%。例如,对于可以校正200个位错误的代码,该部分是150。在这种情况下,深度神经网络1100可以为下一次读取操作选择历史读取阈值。
[0121]
当队列的利用率大于设定利用率阈值或当与历史读取阈值电压相对应的失败位计数大于或等于解码器错误校正能力的一部分时,读取阈值变化确定器1420可以确定在下一次读取操作中将不使用历史读取阈值电压,即在下一次读取操作中将改变历史读取阈值电压。在一些实施例中,可以将最大队列大小的百分比用作利用率阈值,例如,将利用率阈值设置为最大队列大小的80%。在这些情况下,深度神经网络1100可以为下一次读取操作选择最佳读取阈值。
[0122]
参照图16,读取阈值变化确定器1420可以包括第一比较器1422、第二比较器1424和命令输出组件1426。第一比较器1422可以将队列的利用率与设定利用率阈值进行比较。第二比较器1424可以将与历史读取阈值相对应的失败位计数(即,fbchr)与错误校正能力的一小部分进行比较。命令输出组件1426可以基于第一比较器1422和第二比较器1422的输出,即,比较结果,来选择第一命令和第二命令中的一个,并且将所选择的命令传输到存储器装置200。
[0123]
命令输出组件1426可以包括逻辑门1426a和选择器1426b。逻辑门1426a可接收第一比较器1422和第二比较器1424的比较结果并对比较结果执行逻辑运算。在一些实施例中,逻辑门1426a可以利用或门来实现。选择器1426b可以响应于逻辑门1426a的逻辑运算来选择第一命令和第二命令中的一个,并且将所选择的命令传输到存储器装置200。
[0124]
在一些实施例中,第一命令可以是与针对最佳读取阈值设置的参数相关联的设置参数命令,并且第二命令可以指示不对存储器装置200执行改变操作。
[0125]
如上所述,可以针对当前历史读取阈值电压估计失败位计数。当所估计的失败位计数低于解码器错误校正能力的一小部分时,可以保持和使用历史读取阈值电压的设置。否则,可以通过设置参数命令来选择具有最低估计失败位计数的最佳读取阈值电压,并使用它来代替历史读取阈值电压。根据实施例,当确定将改变历史读取阈值电压时,会发生从历史读取阈值电压到最佳读取阈值电压的改变。
[0126]
读取阈值变化确定器1420可以从深度神经网络1100接收所有候选读取重试阈值(rrt)的估计失败位计数。读取阈值变化确定器1420还可以接收由固件记录的当前历史读取阈值电压。该历史读取阈值电压应包含在候选rrt中。读取阈值变化确定器1420可以接收与用于对相关页面进行解码的错误校正码相对应的解码器的校正能力。读取阈值变化确定器1420还可接收解码器中队列的当前利用率。当队列的当前利用率(占其总利用率的百分比)较大时,通过设置参数命令选择接近最佳的读取阈值电压有利于降低下一次读取的解码延迟。因此,即使由于设置参数命令导致的延迟增加,但整体读取延迟也可以更小。
[0127]
在一些实施方式中,可以由固件根据驱动器的当前工作负载、所需的读取qos和nand条件(例如,保留、已完成的程序擦除周期)通过寄存器动态地修改利用率阈值。在其他
实施方式中,深度神经网络1100可以提供估计的失败位计数(fbc)的置信度,并且置信度值用于在读取阈值变化确定器1420中做出更好的决定。在一些变型中,如果关于fbc
opt
(即,最佳读取阈值电压的失败位计数)的置信度较高(或较低),则读取阈值变化确定器1420可以选择(或不选择)设置参数命令。在一些变型中,如果深度神经网络1100选择相同的读取阈值电压作为超过物理页面的设定部分(例如,2个页面)的最佳读取阈值电压,则读取阈值变化确定器1420可以选择设置参数命令,其中对于物理页面的设定部分,读取操作在相应的存储器装置(例如,nand闪存管芯)中挂起。
[0128]
图17是示出根据本发明实施例的存储器系统的操作1700的流程图。操作1700可以由包括图14中的深度神经网络1100的控制器100的固件来执行。
[0129]
参照图17,在操作1710,控制器100可以基于与使用历史读取阈值电压的读取操作相关联的失败位计数、解码器的错误校正能力和/或解码器中队列的利用率,来确定除了历史读取阈值电压之外的读取阈值电压是否将用于下一次读取操作。历史读取阈值电压可以是在先前成功的读取操作中使用的读取阈值电压。
[0130]
在操作1720,当确定历史读取阈值电压不用于下一次读取操作(即,历史读取阈值电压将被改变)时,控制器100可以确定与使用多个读取阈值电压对多个存储器单元进行的读取操作相关联的失败位计数。
[0131]
在操作1730,控制器100可以基于失败位计数确定最佳读取阈值电压,该最佳读取阈值电压在多个读取阈值电压之中具有最低的失败位计数。
[0132]
在操作1740,控制器100可以将第一命令传输到存储器装置,第一命令指示从历史读取阈值电压到最佳读取阈值电压的改变并且包括针对最佳读取阈值设置的参数。
[0133]
在一些实施例中,当确定历史读取阈值电压将用于下一次读取操作时,控制器100可以向存储器装置传输指示不改变历史读取阈值电压和不对存储器装置进行相应的改变操作的第二命令。
[0134]
在一些实施例中,当与历史读取阈值电压相对应的失败位计数小于解码器的错误校正能力的一小部分(例如,75%)时,控制器100可以确定历史读取阈值电压将用于下一次读取操作。
[0135]
在一些实施例中,当与历史读取阈值电压相对应的失败位计数大于或等于解码器的错误校正能力的一小部分(例如,75%)时,控制器100可以确定历史读取阈值电压不用于下一次读取操作。
[0136]
在一些实施例中,当队列的利用率大于设定利用率阈值时,控制器100可以确定历史读取阈值电压不用于下一次读取操作。
[0137]
如上所述,实施例提供了一种方案,用于基于错误信息(例如,失败位计数)来确定是否改变历史读取阈值电压(即,历史读取阈值电压是否将用于下一次读取操作),并且在确定历史读取阈值电压不用于下一次读取操作时,估计最佳读取阈值电压。根据实施例,在特定条件下,即,当确定将进行这种改变时,将历史读取阈值电压改变为最佳读取阈值电压。因此,实施例可以降低读取阈值电压改变的频率以及关于这种改变的从控制器到存储器装置的相应传输,从而改善存储器系统中读取操作的整体读取延迟和服务质量(qos)。
[0138]
虽然为了清楚和理解的目的已经对前述实施例进行了一些详细的说明和描述,但是本发明不限于所提供的细节。如本领域技术人员根据前述公开将理解的,存在实施本发
明的许多替代方式。因此,所公开的实施例是说明性的,而非限制性的。本发明旨在包括落入权利要求范围内的所有修改方案和替代方案。

技术特征:


1.一种存储器系统,包括:存储器装置,包括多个存储器单元;以及控制器,包括解码器,并且:基于与使用历史读取阈值电压的读取操作相关联的失败位计数、所述解码器的错误校正能力和所述解码器中队列的利用率,确定除了作为在先前成功的读取操作中使用的读取阈值电压的历史读取阈值电压之外的读取阈值电压是否将用于下一次读取操作;当确定所述历史读取阈值电压不用于所述下一次读取操作时,确定与使用多个读取阈值电压对所述多个存储器单元的读取操作相关联的失败位计数;基于所述失败位计数,确定最佳读取阈值电压,所述最佳读取阈值电压在所述多个读取阈值电压之中具有最低的失败位计数;并且将包括与设置所述最佳读取阈值电压相关联的参数的第一命令传输到所述存储器装置。2.根据权利要求1所述的存储器系统,其中当确定所述历史读取阈值电压将用于下一次读取操作时,所述控制器向所述存储器装置传输指示不改变所述历史读取阈值电压的第二命令。3.根据权利要求2所述的存储器系统,其中当与所述历史读取阈值电压相对应的失败位计数小于所述解码器的错误校正能力的一部分时,所述控制器确定所述历史读取阈值电压将用于下一次读取操作,并且选择所述历史读取阈值电压。4.根据权利要求3所述的存储器系统,其中当与所述历史读取阈值电压相对应的失败位计数大于或等于所述解码器的错误校正能力的一部分时,所述控制器确定所述历史读取阈值电压将不用于下一次读取操作。5.根据权利要求4所述的存储器系统,其中当所述队列的利用率大于设定利用率阈值时,所述控制器确定所述历史读取阈值电压不用于下一次读取操作。6.根据权利要求5所述的存储器系统,其中所述控制器包括:第一比较器,将所述队列的利用率与所述设定利用率阈值进行比较;以及第二比较器,将对应于所述历史读取阈值电压的失败位计数与所述错误校正能力的一部分进行比较。7.根据权利要求6所述的存储器系统,其中所述控制器进一步包括:命令输出组件,基于所述第一比较器和所述第二比较器的输出,选择所述第一命令和所述第二命令中的一个,并且将所选择的命令传输到所述存储器装置。8.根据权利要求7所述的存储器系统,其中所述命令输出组件包括:逻辑门,接收所述第一比较器和所述第二比较器的输出,并且输出比较结果的逻辑运算;以及选择器,响应于所述逻辑运算选择所述第一命令和所述第二命令中的一个,并且将所选择的命令传输到所述存储器装置。9.根据权利要求8所述的存储器系统,其中所述逻辑门包括:或门,接收所述第一比较器和所述第二比较器的输出,并且对所述输出执行或运算。10.一种操作存储器系统的方法,所述存储器系统包括存储器装置和控制器,所述控制器联接到所述存储器装置并且包括解码器,所述方法包括:
基于与使用历史读取阈值电压的读取操作相关联的失败位计数、所述解码器的错误校正能力和所述解码器中队列的利用率,确定除了作为在先前成功的读取操作中使用的读取阈值电压的历史读取阈值电压之外的读取阈值电压是否将用于下一次读取操作;当确定所述历史读取阈值电压不用于下一次读取操作时,确定与使用多个读取阈值电压对所述存储器装置的多个存储器单元的读取操作相关联的失败位计数;基于所述失败位计数,确定最佳读取阈值电压,所述最佳读取阈值电压在所述多个读取阈值电压之中具有最低的失败位计数;并且将包括与设置所述最佳读取阈值电压相关联的参数的第一命令传输到所述存储器装置。11.根据权利要求10所述的方法,进一步包括:当确定所述历史读取阈值电压将用于下一次读取操作时,向所述存储装置传输指示不改变所述历史读取阈值电压并且不对所述存储器装置进行操作的第二命令。12.根据权利要求11所述的方法,其中确定是否将使用所述历史读取阈值电压包括:当对应于所述历史读取阈值电压的失败位计数小于所述解码器的错误校正能力的一部分时,确定所述历史读取阈值电压将用于下一次读取操作。13.根据权利要求12所述的方法,其中确定是否将使用所述历史读取阈值电压包括:当对应于所述历史读取阈值电压的失败位计数大于或等于所述解码器的错误校正能力的一部分时,确定所述历史读取阈值电压将不用于下一次读取操作。14.根据权利要求13所述的方法,其中确定是否使用所述历史读取阈值电压包括:当所述队列的利用率大于设定利用率阈值时,确定不使用所述历史读取阈值电压。15.根据权利要求14所述的方法,进一步包括:通过第一比较器将所述队列的利用率与所述设定利用率阈值进行比较;以及通过第二比较器将对应于所述历史读取阈值电压的失败位计数与所述错误校正能力的一部分进行比较。16.根据权利要求15所述的方法,进一步包括:基于所述第一比较器和所述第二比较器的输出,选择所述第一命令和所述第二命令中的一个。17.根据权利要求16所述的方法,其中所述选择所述第一命令和所述第二命令中的一个包括:对所述比较结果执行逻辑运算;以及响应所述逻辑运算,选择所述第一命令和所述第二命令中的一个。18.根据权利要求17所述的方法,其中所述逻辑运算包括或运算。

技术总结


本申请涉及一种存储器系统,该存储器系统包括存储器装置和控制器。控制器基于与读取操作相关联的失败位计数、解码器的错误校正能力和解码器中队列的利用率,确定除了作为先前成功的读取操作中使用的读取阈值电压的历史读取阈值电压之外的读取阈值电压是否将用于下一次读取操作。当确定历史读取阈值电压不用于下一次读取操作时,控制器确定与使用读取阈值电压对存储器装置的存储器单元的读取操作相关联的失败位计数;控制器基于失败位计数确定最佳读取阈值电压。控制器将包括与设置最佳读取阈值电压相关联的参数的第一命令传输到存储器装置。储器装置。储器装置。


技术研发人员:

哈曼

受保护的技术使用者:

爱思开海力士有限公司

技术研发日:

2021.10.13

技术公布日:

2022/5/20

本文发布于:2023-03-06 02:04:57,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/67343.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:阈值   存储器   电压   操作
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图