存储器单元感测电路中的亚阈值摆动的动态检测和动态调整的制作方法

文档序号:30582443发布日期:2022-06-29 13:08阅读:212来源:国知局
存储器单元感测电路中的亚阈值摆动的动态检测和动态调整的制作方法

1.描述总体上与存储器单元相关,并且更具体地,描述与存储器单元感测电路中的亚阈值摆动相关。


背景技术:

2.为了增加存储器装置或存储装置中的位密度,可以将阵列布置为具有处于垂直堆叠体中的位单元的三维(3d)存储器阵列。传统阵列是平面的,位单元布置在水平面上。3d装置可以包括水平面的垂直堆叠体。垂直堆叠可以增加每单位集成电路面积的位密度,因为可以在垂直沟道周围而不是仅在水平沟道周围形成单元。
3.3d nand存储器阵列通过提供在存储器单元中注入电荷的脉冲序列来对页中的数据进行编程。每个编程脉冲之后通常是一系列编程验证脉冲,以检查每个单元是否俘获了期望量的电荷。一旦单元通过了与单元的期望编程电平相对应的验证,控制器就在后续脉冲禁止该单元进行附加的电荷注入。
4.一些单元比串上的其他单元编程得更快,这可能导致它们俘获更多电荷。附加的电荷使该单元处于比其他单元更高电荷的状态,这导致该单元在后续编程脉冲中充电得更快。因此,单元往往会俘获更多电荷,从而在每个后续编程中拓宽阈值电压(vt)的分布。
5.选择性慢速编程收敛(sspc)允许编程调制位线电压以限制在被检测为接近通过的单元中注入多少电荷。对电荷的限制可以有效地为sspc单元创建较弱的脉冲。应作为sspc单元处理的单元的检测取决于亚阈值斜率(ss),其取决于字线在串中的位置、操作温度以及单元先前经历的编程/擦除应力的量。
附图说明
6.下面的描述包括对具有通过实施例的示例的方式给出的图示的图片的讨论。附图应以示例的方式而非限制方式来理解。如本文所用,对一个或多个示例的引用应理解为描述包括在本发明的至少一种实施方式中的特定特征、结构或特性。本文出现的诸如“在一个示例中”或“在替代示例中”的短语提供了本发明的实施方式的示例,并且不一定都指代相同的实施方式。然而,它们也不一定是相互排斥的。
7.图1是利用基于sspc检测执行编程验证的感测电路来感测单元的存储器的示例的框图。
8.图2是示出sspc检测的vt分布的图解表示。
9.图3是具有扩展编程验证的sspc检测的示例的表示。
10.图4是具有非sspc单元的检测的sspc检测的示例的表示。
11.图5a是用于sspc单元的单元转移特性的示例的图解表示。
12.图5b是选择vboost的示例的图解表示。
13.图6是具有不同的第一遍和后续遍操作的sspc检测的示例的表示。
14.图7a是用于检测sspc亚阈值的二进制搜索的示例的图解表示。
15.图7b是用于检测sspc亚阈值的线性搜索的示例的图解表示。
16.图8是用于利用sspc检测的编程验证的过程的示例的流程图。
17.图9a是具有固态驱动器(ssd)的硬件视图的系统的示例的框图,该固态驱动器(ssd)带有具有执行sspc检测的感测电路的非易失性阵列。
18.图9b是具有固态驱动器(ssd)的系统的逻辑视图的示例的框图,该固态驱动器(ssd)带有具有执行sspc检测的感测电路的非易失性阵列。
19.图10是其中可以实施具有执行sspc检测的感测电路的非易失性阵列的存储器子系统的示例的框图。
20.图11是其中可以实施具有执行sspc检测的感测电路的非易失性阵列的计算系统的示例的框图。
21.图12是其中可以实施具有执行sspc检测的感测电路的非易失性阵列的移动装置的示例的框图。
22.如下是某些细节和实施方式的描述,包括对附图的非限制性描述,附图可以描绘一些或所有示例、以及其他可能的实施方式。
具体实施方式
23.如本文所述,对于诸如通过编程和编程验证操作写入的nand介质的非易失性(nv)存储介质,系统可以针对页的特定条件确定用于页单元的sspc(选择性慢速编程收敛)单元的预期数量。该系统可以基于单元的亚阈值斜率(ss)执行sspc检测。与仅添加温度检测而不能考虑对阵列位置和循环的依赖性的常规方法相反,ss取决于字线在串中的位置、操作温度以及单元先前经历的编程/擦除应力的量。因此,相对于使用大修整空间、大量调节和降低写入性能的传统方法,用ss检测sspc可以改进检测并使得能够更容易地调整装置的操作。
24.系统可以在页的第一次写入中利用用于sspc单元检测的第一字线(wl)选择电压执行编程验证,以检测sspc单元的预期数量。基于所确定的sspc单元的预期数量,系统可以设置升压电压以在编程验证操作期间捕获预期数量的sspc单元。系统在页的后续写入中利用较高wl选择电压执行编程验证,以执行针对标准单元的编程验证,并且然后利用从第一次写入确定的升压电压执行sspc编程验证。
25.在一个示例中,升压电路生成升压电压。升压电压的生成可以包括生成一系列sspc升压电压以确定合适的升压电压以捕获大致预期数量的sspc单元。因此,系统可以有效地动态检测亚阈值摆动,并将相关修整设置为将检测sspc单元的预期数量的值。动态检测以及对感测进行设置以捕获正确数量的单元显著改进了nand装置的整个寿命的电平放置。在3dnand存储器中,改进的电平放置带来了更好的耐用性或更快的性能或更好的耐用性和更快的性能的组合。
26.图1是利用基于sspc检测执行编程验证的感测电路来感测单元的存储器的示例的框图。系统100包括耦合到固态驱动器(ssd)120的主机110。主机110表示在ssd 120中存储数据的计算系统平台。ssd 120表示系统100的存储装置。例如,计算系统平台可以是膝上型计算机或其他计算机、游戏系统、平板电脑或其他手持系统或其他计算系统。
27.主机110包括处理器112,其表示用于系统100的计算装置的主机处理器或主处理
器。处理器112可以是任何类型的处理器,例如中央处理单元(cpu)、片上系统(soc)、图形处理单元(gpu)、或执行触发对ssd 120上的存储资源的访问的操作的其他处理器或控制器。
28.主机110包括接口116,其表示用于访问ssd 120的接口。接口116可以包括硬件,例如信号线、驱动器、接收器或用于与ssd 120通信的其他硬件。ssd 120包括用于与主机110通信的主机接口122。在一个示例中,接口116和主机接口122可以经由非易失性存储器快速(nvme)标准进行通信。nvme标准为主机软件定义了寄存器级接口,以通过外围部件互连快速(pcie)(一种高速串行计算机扩展总线)与ssd进行通信。nvm快速标准可在www.nvmexpress.org上获得。pcie标准可在pcisig.com上获得。
29.在一个示例中,主机110包括存储控制器114,其表示用于管理主机对ssd 120的访问的主机侧控制器。存储控制器114可以管理接口116以使得主机110能够与ssd 120通信。存储控制器114从处理器112或主机110上的另一部件接收对存储在ssd 120上的数据的请求。该请求可以是访问特定位置处的数据的读取请求,或者是将数据发送到ssd 120以进行存储的写入或编程请求。
30.在一个示例中,ssd 120包括介质控制器124,其表示用于管理主机接口122并生成内部操作以对来自主机110的请求做出响应的存储侧控制器。介质控制器124表示ssd装置本身的控制器,并且可以控制对nvm(非易失性存储器)管芯130的访问。
31.在一个示例中,nvm管芯130表示三维(3d)nand存储器,例如3d nand闪存装置。nvm管芯130是非易失性存储器,即使存储器装置的电力中断,其也维持确定状态。
32.nvm管芯130包括阵列132,其表示单元134的阵列。在一个示例中,ssd 120包括多个nvm管芯130。阵列132包括字线(wl)和位线(bl)。对于3d存储装置,阵列132包括3d堆叠体中的多层wl,并且可以包括3d堆叠体中的bl,具有垂直延伸穿过该堆叠体的沟道。单元134表示bl和wl的相交点处的存储节点或存储位置。wl可以响应于行地址被充电,并且bl可以响应于列地址被充电。单元134表示在各个wl和bl的相交点处的多个单元,其可以被称为位单元、存储单元或存储器单元。
33.bl的底部处的箭头表示至感测电路的输出线136。当选择bl和wl时,在输出线136上将来自单元的电荷提供给感测电路144。感测电路144表示确定存储在单元中的值的电路,例如用于单电平单元(slc)的零或一,或者例如用于多电平单元(例如,三电平单元(tlc)或四电平单元(qlc))的电压电平。
34.阵列132的可编程单元是可通过选择字线来访问的页。在一个示例中,阵列132的每个单元134通过存储2^n个电压电平或电荷电平之一来存储位(n)的二进制数。例如,qlc单元每单元存储4位,其需要16个可区分的编程电平。编程包括施加到选定字线的一系列编程脉冲,以将电子注入单元的电荷存储部分(例如,电荷俘获或浮置栅极)中。
35.编程脉冲之后是一系列验证或验证脉冲或编程验证(pv)脉冲,其有效地读取单元以检测单元是否已达到其期望的编程电平。如果单元没有达到期望的编程电平,则其应当保持被选择以进行编程(以注入更多电荷);否则,它将被禁止用于后续的编程脉冲。禁止单元可以包括关闭用于选择栅极结的位线以禁止附加的编程。
36.在一个示例中,介质控制器124包括sspc检测器126。sspc检测器126可以检测接近通过验证的单元134并且可以扩宽编程电平的分布,这可能由于与相邻编程电平的电压窗口重叠而引起干扰。响应于检测到sspc单元,介质控制器124可以调整编程序列的操作以用
sspc电压触发单元,以允许单元达到期望的编程电平并在完成对相同编程电平的其他单元的编程之前被禁止。在一个示例中,介质控制器124控制升压电压的施加或控制位线电压以限制在下一脉冲中注入的电荷的量。因此,sspc单元可以用较低的电压来触发,这导致较弱的电荷注入。
37.在一个示例中,介质控制器124使用sspc检测器126来检测在具有通过第一电平的pv(pv_l1)的单元的第一脉冲期间的sspc的理想设置。在一个示例中,sspc检测器126执行类似于pv的操作,其检测放置在(pv_l1-gs/2)上方的单元,其中pv_l1指代第一电平编程验证,并且gs指代后续pv脉冲之间的栅极步长或电压步长或电压差异。因此,在一个示例中,具有vt(电压阈值)或触发单元的读取的电压、处于pv_l1的pv增量电压(gs/2)的一半内的单元(即,具有介于(pv_l1

gs/2)和(pv_l1)之间的vt的单元)应该理想地被检测为sspc单元。介质控制器124包括一个或多个计数器以跟踪在检测操作期间检测到的单元sspc单元的数量。
38.在检测操作之后,介质控制器124可以触发pv_l1的正常验证并且计数或跟踪在正常验证操作中通过的单元的数量。理想情况下应为sspc的单元的数量可以被计数为通过pv_l1的单元与通过(pv_l1

gs/2)的单元之间的差异。在一个示例中,介质控制器124用sspc检测修整编程验证触发第二选通。为了区分sspc编程验证与针对电平的编程,sspc pv可以被称为预编程验证(ppv),其指的是在针对电平的编程验证之前对sspc单元执行编程验证。应当理解,sspc操作可以用不同的名称来指代。
39.在一个示例中,sspc pv或ppv的脉冲或选通表示sspc电平的最佳估计,其可以针对温度变化进行温度校准或调整。如果将ppv设置为理想值,它将检测到在检测中识别的单元的数量。如果初始ppv值不理想,则将导致位计数高于或低于理想设置,并且在一个示例中,介质控制器124可以执行计算或线性搜索或二进制搜索以校准ppv。搜索可以包括选通和计数的重复。在一个示例中,在确定理想sspc计数与使用初始ppv设置获得的计数之间的差异之后,介质控制器124可以执行列表调整或其他计算以设置新的ppv值。
40.在一个示例中,如果系统100包括用于计算复杂操作的计算资源,则介质控制器124可以基于初始设置和检测到的sspc单元的数量来计算理想ppv。在一个示例中,理想ppv可以解析地表示为感测修整和亚阈值斜率的函数,其中亚阈值斜率(ss)取决于温度和wl位置,并随着循环而变化。在一个示例中,介质控制器124可以根据来自pv和ppv的双选通的计数来计算ss。在一个示例中,可以在第一脉冲上动态地执行该计算,或利用初始电压(例如,动态起始电压(dsv))来计算并存储该计算。
41.在一个示例中,nvm管芯130包括用于感测电路144的升压电路升压器142。升压电路可以是或可以包括升压电容器。升压器142向感测电路144提供电荷以偏置感测电路。电压调节器140表示用于向升压器142提供偏置电压或充电电压的电路。在一个示例中,电压调节器140对升压器142充电,并且升压器142可以对感测电路144施加升压电压,其中升压电压是sspc单元电平所特定的,由sspc检测器126确定。
42.因此,对于第一编程周期,系统100可以执行验证脉冲以执行对sspc性质的检测。在确定sspc单元的数量后,介质控制器可以确定理想的ppv以触发预期数量的sspc单元的vt。检测和计算可以被认为是动态检测,其考虑了不同的系统条件。因此,系统100可以基于系统的条件动态地调整编程验证。
43.sspc单元的数量的检测和ppv的计算可能导致性能损失,这将很小,因为其仅在编程序列的开始执行一次,以将sspc计算重新用于对该wl或一组wl的后续编程操作。取决于系统设计,额外的感测(例如,检测和ppv计算)的性能损失也有可能改进其余的编程并减少错误,从而在系统中存在整体性能提高。不管有没有损失,预期ssd 120的可靠性将提高。
44.图2是示出sspc检测的vt分布的图解表示。示图200示出了以毫伏(mv)为单位的单元vt对比vt分布(σ)。示图200可以表示根据系统100的示例的系统的nvm单元的vt分布。
45.曲线210表示电平#i的单元vt的vt分布曲线。曲线210可以表示映射多电平单元的所有编程电平的分布的图表的一部分。理想情况240表示低于编程电平的期望vt(线220)的gs/2内的单元。线230和线220之间的单元应标记为sspc。减慢理想情况240内的单元可以有助于缩窄给定gs或给定编程电平的状态宽度。
46.理想ppv处的第二选通由线230示出,其在(pv_li-gs/2)处,其中i是整数,表示正在执行哪个电平的编程。在一个示例中,通过对升压电压的调整而设置的理想编程电压是比wl编程电压低的编程步长电压的大致一半。gs指的是栅极步长,它是编程步长电压。pv_li由线220表示,它是用于电平li的编程步长电压。将ppv电压设置为线230处的值将捕获具有处于(pv_li

gs/2)到(pv_li)的电压范围内的vt的sspc单元。
47.图3是具有扩展编程验证的sspc检测的示例的表示。示图300表示根据系统100的示例的用于标准单元和sspc单元的编程验证的电压响应曲线。曲线310表示选定wl节点的随时间变化的电压响应。曲线320表示感测节点的随时间变化的电压响应。曲线330表示升压节点的随时间变化的电压响应。
48.示图300顶部的线示出了电平li的验证时间。曲线310表示选择的wl节点的曲线。在312处,wl节点被提升到pv_sspc_li。当wl节点处于pv_sspc_li以用于sspc检测时,感测节点和升压节点上出现第一脉冲。在一个示例中,曲线在314处提升到pv_li。当wl节点处于pv_li以用于正常单元或非sspc单元验证,并且升压设置用于sspc验证时,感测节点和升压节点上出现第二脉冲。
49.曲线320表示感测节点的电压响应。感测节点被标记为“tc节点”,其可以指感测电路架构,其中感测节点是临时电容器(tc)的端子。曲线330表示升压节点或升压电路的电压响应,其将使感测节点升压。在一个示例中,升压节点开始于0v。曲线332表示vboost的升压电压。
50.在一个示例中,对于曲线320,感测节点初始被充电至vcc。响应于升压节点上的vboost,感测节点增加vboost至vcc+vboost,如曲线322所示。在一个示例中,当wl处于pv_sspc_li时的vboost电压是这样的电压,其不足以使非sspc单元生成足够的电流来放电至足以达到感测放大器跳闸电压sa vtrip。
51.在tsense之后,系统施加反向升压以将升压带回到0v,如曲线332所示。在tsense期间,感测节点放电。标准单元或pv单元将不会以大电流放电,如曲线322的实线所示。sspc单元将以某一电流放电,以提供如曲线322的虚线所示的理想sspc放电。在tsense期间虚线放电了dv。响应于反向升压,pv单元仍高于感测放大器跳闸电压。
52.如326处的针对选通sspc的虚线所示,sspc单元能够被感测放大器检测到。曲线322处的第一脉冲检测到sspc单元,但不使pv单元跳闸。因此,介质控制器可以对跳闸的sspc单元的数量进行计数,以确定应该用sspc升压检测到的sspc单元的数量。
53.虽然曲线322示出了对sspc的读取,但是曲线324示出了当提供对非sspc单元的读取时系统将需要推送多少sspc单元。升压节点上的曲线334再次将升压节点提升至vboost,其在324处被施加到感测节点。wl上的电压高于dvt_sspc,其指代sspc单元的差分电压阈值。
54.在较高的wl电压下,感测节点升压导致pv单元在tsense期间跳闸并以理想的放电电流放电。pv单元将放电dv。如虚线所示,sspc单元放电dv_sspc。响应于反向升压以使升压节点降压回到0v,如在328处所见,实线示出选通pv将使sa vtrip跳闸。
55.将理解,所示的示图300表示理想情况,其中第一验证脉冲用于确定理想的sspc验证。本质上,示图300示出了每个验证操作的验证次数加倍。对于任何环路中的每个电平,将在常规验证操作之前执行针对pv_sspc的附加验证。将验证次数加倍的性能损失对于系统实施方式是不切实际的。
56.图4是具有非sspc单元检测的sspc检测的示例的表示。示图400表示根据系统100的示例的用于标准单元和sspc单元的编程验证的电压响应曲线。曲线410表示选定wl节点的随时间变化的电压响应。曲线420表示感测节点的随时间变化的电压响应。曲线430表示升压节点的随时间变化的电压响应。
57.示图400顶部的线示出了用于li电平的验证时间。曲线410表示用于选择的wl节点的曲线。在412处,wl节点被提升到pv_li。曲线420表示感测节点的电压响应。检测节点被标记为用于输出临时电容器的tc节点。曲线430表示升压节点或升压电路的电压响应,其将使感测节点升压。在一个示例中,升压节点开始于0v。曲线432表示vboost的升压电压。
58.在一个示例中,对于曲线420,感测节点初始充电至vcc。响应于升压节点上的vboost,感测节点增加vboost至vcc+vboost,如曲线422所示。在一个示例中,当wl处于pv_li时的vboost电压导致pv单元在tsense期间放电dv。如实线所示,放电对于pv单元是理想的。如424处的虚线所示,sspc单元放电dv_sspc。
59.在tsense之后,升压节点可以施加负升压以将节点带回到0v,如在424处所示,实线示出选通pv将使sa vtrip跳闸。在一个示例中,升压节点在曲线430的434处返回到vboost_sspc。响应于vboost_sspc,感测节点将供给sspc单元以将它们至少推到检测水平,如选通pv和选通sspc所示。在没有检测的情况下,不能保证vboost_sspc的提升量是理想的。
60.如果示图400表示常规的sspc提升场景,则系统将在434处具有固定量的vboost_sspc。固定的sspc提升将基于条件和因素的平均值来设置。如果示图400表示在检测到sspc单元的数量之后的验证操作,则将特定于在给定条件下处于系统中的sspc单元的数量来计算vboost_sspc。然后可以特定于所述条件来设置vboost_sspc,以检测特定数量的sspc单元。
61.如在422处所见,sspc单元具有较低的vt,导致较高的串电流,其在感测时间tsense内提供大得多的dv_sspc。示图400没有示出将独立验证投入到示图300中执行的sspc检测。施加独立验证来执行sspc检测使得系统能够动态适应亚阈值摆动的变化,以了解多少vboost使得sspc单元回升到感测放大器阈值。
62.图5a是sspc单元的单元转移特性的示例的图解表示。通过调整感测放大器的升压节点电压,系统可以将单元检测为具有高于pv_sspc的vt的sspc单元,而不仅仅是pv。示图
502表示根据系统100中的单元的示例的在新生的sspc单元和eol sspc单元之间的差异。
63.与基于中值情况或基于最坏情况场景设置ppv的常规方法相反,介质控制器可以动态地检测sspc单元的预期数量并且基于检测到的数量来设置ppv。动态方法允许系统随着系统条件变化来调整ppv。
64.考虑示图502,其示出了sspc单元的单元转移特性。示图502示出了单元520的第一曲线和单元530的第二曲线。单元520是当其为新的或新生的单元时的sspc单元。单元530是当其接近寿命终结(eol)时的sspc单元。由于在单元的整个寿命周期内系统中的循环和其他条件的变化的新生的单元与eol单元具有不同的特性。
65.对于多电平单元的编程的每个电平,存在应被视为sspc单元以避免在单元中放置过多电荷的某些单元。理想的sspc升压将捕获应该是sspc单元的单元,而不会捕获过多的单元或捕获过少的单元。应被视为sspc单元的单元可以被认为是“sspc存储桶”的一部分。
66.用于设置ppv的常规方法是尝试固定对单元520和单元530都起作用的ppv值。如示图502中所见,随着周期计数增加,单元以更浅的亚阈值摆动劣化。循环通常导致氧化物俘获和退化,这导致存储器单元特性的较浅(即,较大)的ss。
67.sspc存储桶可以由将捕获理想数量的sspc单元的vt电压定义。较浅的ss意味着对于由dvt_sspc=gs/2定义的sspc存储桶,与寿命开始时相比,sspc存储桶的较低vt侧的单元在寿命终结时表现出明显更小的单元电流。
68.与新生条件相比,sspc存储桶的理想边界在寿命终结时在pv和ppv单元之间将具有较小电流差异(因为ss已经退化),这表明在vboost_sspc(ppv)电压中将有较低的压降。在一个示例中,介质控制器提供了vboost_ss(ppv)的适当减少以实现最佳放置或窗口裕量。
69.isense_pv 510表示pv单元的感测电流。isense_pv线在点514处与单元520的曲线相交,并在点512处与单元530的曲线相交。isense_sspc 522表示sspc单元520的感测电流。isense_sspc 522在点524处与单元520的曲线相交。点514和点524之间的电压差异是dvt_sspc。从单元530的曲线的点512开始,并且然后返回dvt_sspc,确定了单元530的曲线上的点534。
70.在一个示例中,isense_sspc 522比isense_pv 510大4倍,这指示当存储器阵列是新生的时,有4倍的差异。在一个示例中,isense_sspc 532仅比isense_pv 510大3倍,这指示eol单元应得到与新生的单元不同的处理。在一个示例中,介质控制器可以动态调整vboost_sspc以反映理想sspc感测电流的差异。
71.图5b是选择vboost的示例的图解表示。示图504提供了vboost_sspc相对于窗口裕量的示例。曲线540表示示图502的单元520的示例的曲线。曲线550表示示图502的单元530的示例的曲线。
72.曲线540和曲线550的峰值表示不同单元的理想sspc vboost。线542表示新单元的理想vboost_sspc。线552表示eol单元的理想vboost_sspc。
73.曲线540在点560处与曲线550相交。传统的固定vboost_sspc会将线562设置为选定的vboost_sspc。与两条曲线之间的固定折衷点相反,介质控制器可以将新单元的sspc升压调整为ideal_new 542,并将接近寿命终结的单元的sspc升压调整为ideal_eol 552。
74.图6是具有不同的第一遍和后续遍操作的sspc检测的示例的表示。示图600表示根
据系统100的示例的用于标准单元和sspc单元的编程验证的电压响应曲线。示图600示出了根据示图300的示例的sspc检测。示图600示出了根据示图400的示例的sspc升压。
75.示图600允许介质控制器产生适应计算系统中的条件的ppv。因此,示图600中的ppv可以取决于亚阈值摆动检测和调整,从而允许系统基于块或页在存储器装置中的位置、它经历了多少周期、温度和其他条件来调整ppv。示图600示出了在不需要针对每个编程操作的附加脉冲的情况下,在对任何页进行编程的开始时执行的检测。
76.示图300顶部的线示出了li电平的验证时间。曲线310表示选择的wl节点的随时间变化的电压响应曲线。在612处,wl节点被提升到pv_sspc_li。当wl节点处于pv_sspc_li以用于sspc检测时,感测节点和升压节点上出现第一脉冲。在一个示例中,曲线在614处提升到pv_li。pv_li被示为高于pv_sspc_li的dvt_sspc。当wl节点处于pv_li以用于正常单元或非sspc单元验证,以及处于一连串或一系列升压以用于sspc单元验证时,感测节点和升压节点上出现第二脉冲。
77.曲线620表示感测节点的随时间变化的电压响应。感测节点被标记为“tc节点”,其可以指感测电路架构,其中感测节点是临时电容器(tc)的端子。曲线630表示升压节点或升压电路的随时间变化的电压响应,其将使感测节点升压。在一个示例中,升压节点开始于0v。曲线642表示vboost的升压电压。
78.在一个示例中,对于曲线620,感测节点初始被充电至vcc。响应于升压节点上的vboost,感测节点增加vboost至vcc+vboost,如曲线622所示。在一个示例中,当wl处于pv_sspc_li时的vboost电压是这样的电压,其不足以使非sspc单元生成足够的电流来放电至足以达到感测放大器跳闸电压sa vtrip。
79.在tsense之后,系统施加负升压以将升压节点带回到0v,如曲线642所示。在tsense期间,感测节点放电。如曲线622的实线所示,标准单元或pv单元不会以大电流放电。sspc单元将以一定电流放电以提供曲线622的虚线所示的理想sspc放电。虚线示出在tsense期间dv的sspc放电。响应于反向升压,pv单元仍高于感测放大器跳闸电压,而感测放大器可读取sspc节点,如在626处所见,其中选通sspc处于sa vtrip。因此,升压脉冲将读取sspc单元而不是非sspc的单元,从而使得介质控制器能够检测并计数理想数量的sspc单元。介质控制器可以使用理想数量作为用于后续操作的sspc单元的预期数量。
80.虽然曲线622示出了sspc检测,但是曲线624示出了系统将如何施加sspc提升来触发预期数量的sspc单元。升压节点上的曲线644再次将升压节点提升至vboost,vboost在624处被施加到感测节点。wl上的电压高于dvt_sspc,其指代sspc单元的差分电压阈值。
81.在较高的wl电压下,感测节点升压导致pv单元在tsense期间跳闸并以理想的放电电流放电。pv单元将放电dv。如虚线所示,sspc单元放电dv_sspc。响应于反向升压以将升压节点驱动回到0v,如在628处所见,实线示出选通pv将使sa vtrip跳闸。
82.在一个示例中,介质控制器触发升压节点上的升压电压以将sspc单元带回到sa vtrip电平。示图600示出了二进制搜索,但是应当理解可以使用其他类型的搜索,或者系统可以执行复杂的计算来确定要施加的理想vboost。
83.在一个示例中,升压节点在646处由vboost_sspc1提升,随后在648处由vboost_sspc2提升,随后在650处由vboost_sspc3提升。将理解,可以使用不同数量的sspc升压电压将sspc单元推入/推出由vboost和vboost_sspc《n》定义的sspc存储桶,其中n=1,2,3...。
介质控制器可以在每个vboost_sspc《n》之后的选通时读取sspc单元的数量,以确定哪个sspc提升提供了将捕获处于pv_li和pv_li

gs/2之间的单元的理想存储桶。
84.在一个示例中,响应于vboost_sspc1,曲线620提升以在630处选通sspc1,其仍低于sa vtrip。响应于vboost_sspc2,曲线620提升以在632处选通sspc2,其超过sa vtrip。响应于vboost_sspc3,曲线620提升以在634处选通sspc3,其表示实现sa vtrip的理想vboost_sspc。
85.根据示图600的示例,介质控制器可以检测应该在理想存储桶中的sspc单元的数量,并且为sspc单元设置了第一vboost和放电。在利用第一升压的理想情况下,介质控制器可以获得预期通过ppv的单元的计数。
86.在一个示例中,介质控制器可以用第二选通来执行正常验证。在一个示例中,第二选通利用ppv的初始猜测或初始估计。鉴于从检测中知道sspc的理想计数,介质控制器可以引起对ppv的适当增加或减少以触发sspc单元的理想计数。示图600表示用于校准ppv的二进制搜索的示例。vboost_sspc1表示适当提升的初始估计。通过二进制搜索,vboost_sspc2表示vboost的增量(δ)增加,其表示vboost_sspc1太小,导致sspc的计数低于预期计数或理想计数的事实。vboost_sspc3表示分频重复选通的减少,例如,δ/2,其表示vboost_sspc2导致升压过高的事实。示图600中的搜索被理解为为了示例的目的而被简化;在实际系统中可能需要更复杂的搜索。
87.应当理解,在634找到适当的vboost_sspc之后,介质控制器可以对相同页或相同块或具有相同特性的其他部分的后续编程重新使用相同的升压。因此,后续的编程操作可以继续,如示图400所示。针对预期sspc计数施加sspc动态检测和vboost的动态设置的系统因此可以适应于介质装置中的动态条件。在一个示例中,系统可以适应于温度变化,或适应于不同的字线位置,或适应于循环计数的变化,或适应于不同的变化,或适应于变化条件的组合。
88.图7a是用于检测sspc亚阈值的二进制搜索的示例的图解表示。示图702示出了以毫伏(mv)为单位的单元vt对比vt分布(σ)。示图702可以表示用于根据系统100的示例的系统的理想ppv的搜索的vt分布,或者可以为根据示图200的示例的分布设置理想的ppv。
89.曲线710表示电平#i的单元vt的vt分布曲线。曲线710可以表示映射多电平单元的所有编程电平的分布的图表的一部分。pv 722表示电平#i的pv电压。ppv 724可以表示pv 722的sspc单元的理想ppv。在pv 722和ppv 724之间的测量的sspc表示在pv 722和根据检测操作期间检测到的sspc单元的数量的sspc pv的理想放置之间的差异。
90.考虑基于用于sspc检测的pv电压电平,介质控制器确定线732应该是二进制搜索序列的起点以确定理想的ppv。介质控制器可以通过二进制搜索操作对sspc单元迭代执行编程验证,以检测理想的sspc电平。
91.因此,介质控制器可以在将pv设置为线732的值的情况下执行编程验证。介质控制器可以确定检测到的sspc单元计数是高于还是低于检测操作所预期的计数。然后,介质控制器可以在将pv设置为线734的值的情况下执行编程验证,假设线732导致sspc计数过高。如果线734导致sspc计数过低,则介质控制器可以在线736的电平处进行下一编程验证遍。线736与ppv 724相同,或在ppv 724的可接受范围或容差内。介质控制器然后可以将线736设置为用于与曲线710施加到的线具有相同条件的后续sspc pv操作的值。
92.图7b是用于检测sspc亚阈值的线性搜索的示例的图解表示。示图704示出了以毫伏(mv)为单位的单元vt对比vt分布(σ)。示图704可以表示用于根据系统100的示例的系统的理想ppv的搜索的vt分布,或者可以为根据示图200的示例的分布设置理想的ppv。
93.曲线710表示电平#i的单元vt的vt分布曲线。曲线710可以表示映射多电平单元的所有编程电平的分布的图表的一部分。pv 742表示电平#i的pv电压。ppv 744可以表示pv 742的sspc单元的理想ppv。在pv 742和ppv 744之间的测量的sspc表示在pv 742和根据检测操作期间检测到的sspc单元的数量的sspc pv的理想放置之间的差异。
94.考虑基于用于sspc检测的pv电压电平,介质控制器确定线752应该是线性搜索序列的起点以确定理想的ppv。介质控制器可以通过线性搜索操作对sspc单元迭代执行编程验证,以检测理想的sspc电平。
95.因此,介质控制器可以在将pv设置为线752的值的情况下执行编程验证。介质控制器可以确定检测到的sspc单元计数是高于还是低于检测操作所预期的计数。然后,介质控制器可以在将pv设置为线754的值的情况下执行编程验证,假设线752导致sspc计数过高。
96.在一个示例中,介质控制器将用线性搜索步长之间的差异或预定步长来进行预定次数的遍(示图704中示出了七遍)。因此,介质控制器可以在线754、线756、线758、线760、线762和线764利用pv值执行若干遍。控制器可以计数为每一遍确定的sspc单元的数量并选择最接近ppv 774的线的电平。线758被示为最接近ppv 744。因此,介质控制器将选择线758作为sspc pv值,以用于与曲线710所施加到的线具有相同条件的后续sspc pv操作。
97.图8是用于利用sspc检测的编程验证的过程的示例的流程图。过程800表示可以由根据系统100的示例的系统执行的编程验证的过程。过程800可以由介质控制器执行以执行根据示图600的示例的检测和编程验证。
98.在一个示例中,在802处,介质控制器确定该写入是否是对页的第一次写入。页被提及,但可以是将具有影响sspc单元的亚阈值摆动的相同条件的任何存储器段。如果该写入不是第一次写入,则在804处的否分支,在一个示例中,介质控制器在814处向字线施加标准wl选择电压。
99.如果该写入是第一次写入,则在804处的是分支,在一个示例中,介质控制器在806处向字线施加sspc选择电压。sspc选择电压可以低于标准wl选择电压。在一个示例中,在808处,介质控制器执行sspc检测以针对编程电平确定sspc单元的数量。
100.在一个示例中,在确定存在多少sspc单元之后,在810处,介质控制器可以施加标准字线选择电压。在一个示例中,在812处,介质控制器利用升压来执行编程验证,包括确定用于捕获预期数量的sspc单元的sspc升压。然后可以提供所确定的vboost_sspc以用于后续验证。在816处,介质控制器可以利用针对其他编程验证操作所确定的用于该页的sspc升压来执行标准编程验证和sspc编程验证。
101.图9a是具有固态驱动器(ssd)的硬件视图的系统的示例的框图,该固态驱动器(ssd)带有具有执行sspc检测的感测电路的非易失性阵列。系统902表示根据本文的任何示例的可以根据系统100的示例实施sspc升压检测的非易失性存储系统的部件。
102.系统902包括与主机910耦合的ssd 920。主机910表示连接到ssd 920的主机硬件平台。主机910包括cpu(中央处理单元)912或其他处理器作为主机处理器或主机处理器装置。cpu 912表示生成对访问存储在ssd920上的数据的请求的任何主机处理器,以读取数据
或将数据写入存储设备。这样的处理器可以包括单核或多核处理器、用于计算装置的主处理器、图形处理器、外围处理器、或补充或辅助处理器、或组合。cpu 912可以执行主机os和其他应用程序以引起系统902的操作。
103.主机910包括芯片组914,其表示可以包括在cpu 912和ssd 920之间的连接中的硬件部件。例如,芯片组914可以包括互连电路和逻辑单元以实现对ssd 920的访问。因此,主机平台910可以包括硬件平台驱动互连以将ssd 920耦合到主机910。主机910包括互连到ssd的硬件。同样,ssd 920包括对应的硬件以互连到主机910。
104.主机910包括控制器916,其表示主机侧上的存储控制器或存储器控制器以控制对ssd 920的访问。在一个示例中,控制器916被包括在芯片组914中。在一个示例中,控制器916被包括在cpu 912中。控制器916可以被称为nv存储器控制器以使得主机910能够调度并组织到ssd 920的命令以读取和写入数据。
105.ssd 920表示固态驱动器或其他存储系统或模块,其包括非易失性(nv)介质930以存储数据。ssd 920包括hw(硬件)接口922,其表示与主机910接口连接的硬件部件。例如,hw接口922可以与一个或多个总线接口连接以实施诸如nvme(非易失性存储器快速)或pcie(外围部件互连快速)的高速接口标准。
106.在一个示例中,ssd 920包括nv(非易失性)介质930作为ssd 920的主存储设备。在一个示例中,nv介质930是或包括块可寻址存储器技术,例如nand或nor。在一个示例中,nv介质930可以包括非易失性块可寻址介质、非易失性字节可寻址介质、或可以是字节可寻址或块可寻址的非易失性介质。在一个示例中,nv介质930包括3d nand单元。
107.在一个示例中,nv介质930被实施为多个管芯,被示为n个管芯,管芯[0:{n-1)]。n可以是任何数量的装置,并且通常是二进制数。ssd 920包括控制器940以控制对nv介质930的访问。控制器940表示ssd 920内的硬件和控制逻辑单元以执行对介质的控制。控制器940在非易失性存储装置或模块内部,并且与主机910的控制器916分开。nv介质930的nv管芯包括nv阵列932。在一个示例中,nv阵列932是3d存储器阵列。
[0108]
在一个示例中,nv阵列932包括用于感测存储在nv阵列的存储器单元中的值的感测电路934。在一个示例中,控制器940根据上面描述的内容实施sspc单元检测和sspc升压以使得感测电路934能够适当地读取预期数量的sspc单元。sspc单元的检测和基于检测到的sspc单元的数量的动态sspc升压电压的施加使得系统902能够适应于nv阵列932内的变化的条件。
[0109]
图9b是具有固态驱动器(ssd)的系统的逻辑视图的示例的框图,该固态驱动器(ssd)带有具有执行sspc检测的感测电路的非易失性阵列。系统904示出了根据图9a的系统902的示例的具有非易失性存储器阵列的系统。
[0110]
系统904示出了根据系统902的硬件平台的主机和ssd的逻辑层。系统904可以表示系统902的示例的软件和固件部件、以及物理部件。在一个示例中,主机950提供了主机910的一个示例。在一个示例中,ssd 960提供了ssd 920的一个示例。
[0111]
在一个示例中,主机950包括主机os 952,其表示主机的主机操作系统或软件平台。主机os 952可以包括应用程序、服务、代理和/或其他软件在其上执行并且由处理器执行的平台。文件系统954表示用于控制对nv介质的访问的控制逻辑单元。文件系统954可以管理使用什么地址或存储器位置来存储什么数据。有许多已知的文件系统,并且文件系统
954可以实施已知的文件系统或其他专有系统。在一个示例中,文件系统954是主机os 952的一部分。
[0112]
存储驱动器956表示控制主机950的硬件的一个或多个系统级模块。在一个示例中,驱动器956包括用于控制到ssd 960的接口的软件应用程序,从而控制ssd 960的硬件。存储驱动器956可以在主机和ssd之间提供通信接口。
[0113]
ssd 960的控制器970包括固件974,其表示控制器的控制软件/固件。在一个示例中,控制器970包括主机接口972,其表示到主机950的接口。在一个示例中,控制器970包括介质接口976,其表示到nand管芯962的接口。nand管芯962表示nv介质的具体示例,并且包括相关联的3dnand阵列964。nand阵列964包括存储器单元阵列。
[0114]
介质接口976表示在控制器970的硬件上执行的控制。应该理解,控制器970包括与主机950接口的硬件,主机950可以被认为是由主机接口软件/固件974控制的。同样,将理解,控制器970包括与nand管芯962接口连接的硬件。在一个示例中,主机接口972的代码可以是固件974的一部分。在一个示例中,介质接口976的代码可以是固件974的一部分。
[0115]
在一个示例中,控制器970包括错误控制980以处理访问的数据中的数据错误,以及在遵守信令和通信接口方面的极端情况。错误控制980可以包括采用硬件或固件的实施方式,或者硬件和软件的组合。
[0116]
在一个示例中,nand管芯962包括用于感测存储在nand阵列的存储器单元中的值的感测电路966。在一个示例中,控制器970根据上面描述的内容实施sspc单元检测和sspc升压,以使得感测电路966能够适当地读取预期数量的sspc单元。sspc单元的检测和基于检测到的sspc单元的数量的动态sspc升压电压的施加使得系统904能够适应于nand阵列964内的变化的条件。
[0117]
图10是其中可以实施具有执行sspc检测的感测电路的非易失性阵列的存储器子系统的示例的框图。系统1000包括计算装置中的处理器和存储器子系统的元件。
[0118]
在一个示例中,非易失性存储设备1060包括用于感测存储在非易失性存储阵列的存储器单元中的值的感测电路1062。在一个示例中,控制器1050根据上面描述的内容实施sspc单元检测和sspc升压,以使得感测电路1062能够适当地读取预期数量的sspc单元。sspc单元的检测和基于检测到的sspc单元的数量的动态sspc升压电压的施加使得系统1000能够适应于非易失性存储设备1060内的变化的条件。
[0119]
处理器1010表示可以执行操作系统(os)和应用程序的计算平台的处理单元,所述操作系统(os)和应用程序可以被统称为存储器的主机或用户。os和应用程序执行导致存储器访问的操作。处理器1010可以包括一个或多个单独的处理器。每个单独的处理器可以包括单个处理单元、多核处理单元或多核处理器、或组合。处理单元可以是诸如cpu(中央处理单元)等主处理器、诸如gpu(图形处理单元)等外围处理器、或组合。存储器访问也可以由诸如网络控制器或硬盘控制器等装置发起。这种装置可以与某些系统中的处理器集成或经由总线(例如pci快速)附接到处理器,或组合。系统1000可以实施为soc(片上系统),或者用独立部件实施。
[0120]
对存储器装置的引用可以适用于不同的存储器类型,包括非易失性存储器装置,即使装置的电力中断,该非易失性存储器装置的状态也是确定的。在一个示例中,非易失性存储器装置是块可寻址存储器装置,例如nand或nor技术。
[0121]
存储器控制器1020表示系统1000的一个或多个存储器控制器电路或装置。存储器控制器1020表示响应于由处理器1010执行操作而生成存储器访问命令的控制逻辑单元。存储器控制器1020访问一个或多个存储器装置1040。存储器装置1040耦合到存储器控制器1020。耦合可以指电耦合、通信耦合、物理耦合或这些的组合。物理耦合可以包括直接接触。电耦合包括允许部件之间的电流流动、或允许部件之间的信号发送或两者的接口或互连。通信耦合包括使部件能够交换数据的连接,包括有线或无线。
[0122]
存储器控制器1020包括i/o接口逻辑单元1022以耦合到存储器总线,例如上面提到的存储器沟道。i/o接口逻辑单元1022(以及存储器装置1040的i/o接口逻辑单元1042)可以包括引脚、焊盘、连接器、信号线、迹线或导线、或连接装置的其他硬件、或这些的组合。i/o接口逻辑单元1022可以包括硬件接口。如图所示,i/o接口逻辑单元1022至少包括信号线的驱动器/收发器。通常,集成电路接口内的导线与焊盘、引脚或连接器耦合以将装置之间的信号线或迹线或其他导线接口连接。i/o接口逻辑单元1022可以包括驱动器、接收器、收发器或终端、或其他电路或电路的组合,以在装置之间的信号线上交换信号。信号的交换包括发射或接收中的至少一种。虽然被示为将来自存储器控制器1020的i/o 1022耦合到存储器装置1040的i/o 1042,但将理解,在并行访问一组存储器装置1040的系统1000的实施方式中,多个存储器装置可以包括到存储器控制器1020的相同接口的i/o接口。在包括一个或多个存储器模块1070的系统1000的实施方式中,除了存储器装置本身上的接口硬件之外,i/o 1042还可以包括存储器模块的接口硬件。其他存储器控制器1020将包括到其他存储器装置1040的单独的接口。
[0123]
存储器控制器1020和存储器装置1040之间的总线可以实施为将存储器控制器1020耦合到存储器装置1040的多个信号线。总线通常可以至少包括时钟(clk)1032、命令/地址(cmd)1034、以及写入数据(dq)和读取数据(dq)1036,以及零个或多个其他信号线1038。在一个示例中,存储器控制器1020和存储器之间的总线或连接可以被称为存储器总线。cmd的信号线使得存储器控制器1020能够向存储器装置1040提供命令。dq 1036使能装置之间的数据交换,并且可以被称为“数据总线”。在一个示例中,独立沟道具有不同的时钟信号、c/a总线、数据总线和其他信号线。因此,在独立的接口路径可以被认为是单独的总线的意义上,系统1000可以被认为具有多个“总线”。应当理解,除了明确示出的线之外,总线还可以包括选通信号线、警报线、辅助线或其他信号线中的至少一个、或者组合。还将理解,串行总线技术可以用于存储器控制器1020和存储器装置1040之间的连接。其他信号1038,例如选通线dqs,可以伴随总线或子总线。
[0124]
在一个示例中,存储器装置1040直接设置在计算装置的母板或主机系统平台(例如,其上设置处理器1010的pcb(印刷电路板))上。在一个示例中,存储器装置1040可以被组织成存储器模块1070。在一个示例中,存储器模块1070表示双列直插式存储器模块(dimm)。在一个示例中,存储器模块1070表示多个存储器装置的其他组织以共享访问或控制电路的至少一部分,其可以是与主机系统平台分离的电路、分离的装置或分离的板。存储器模块1070可以包括多个存储器装置1040,并且存储器模块可以包括针对设置在其上的所包括的存储器装置的多个单独沟道的支持。在另一个示例中,可以例如通过诸如多芯片模块(mcm)、叠层封装、穿硅过孔(tsv)的技术或其他技术或组合将存储器装置1040并入与存储器控制器1020相同的封装中。类似地,在一个示例中,多个存储器装置1040可以并入存储器
模块1070中,其本身可以并入与存储器控制器1020相同的封装中。应当理解,对于这些和其他实施方式,存储器控制器1020可以是主机处理器1010的部分。
[0125]
存储器装置1040均包括非易失性存储设备1060,其表示数据的存储器位置或存储位置的各个阵列。通常,非易失性存储设备1060作为数据行被管理,经由字线(行)和位线(行内的各个位)控制来访问。非易失性存储设备1060可以被组织为单独的沟道或存储器排。沟道是指到存储器装置1040内的存储位置的独立控制路径。排是指跨多个存储器装置的公共位置(例如,不同装置内的相同行地址)。
[0126]
在一个示例中,存储器装置1040包括一个或多个寄存器1044。寄存器1044表示一个或多个存储装置或存储位置,其提供用于存储器装置的操作的配置或设置。在一个示例中,作为控制或管理操作的一部分,寄存器1044可以为存储器装置1040提供存储位置以存储供存储器控制器1020访问的数据。在一个示例中,寄存器1044包括一个或多个模式寄存器。在一个示例中,寄存器1044包括一个或多个多用途寄存器。寄存器1044内的位置的配置可以将存储器装置1040配置为在不同“模式”下操作,其中命令信息可以基于模式来触发存储器装置1040内的不同操作。另外,或者替代地,不同的模式也可以取决于模式而触发来自地址信息或其他信号线的不同操作。寄存器1044的设置可以指示i/o设置的配置(例如,时序、终止或odt(片上终止)、驱动器配置或其他i/o设置)。
[0127]
存储器装置1040包括控制器1050,其表示存储器装置内的控制逻辑单元以控制存储器装置内的内部操作。例如,控制器1050解码由存储器控制器1020发送的命令并生成内部操作以执行或满足命令。控制器1050可以被称为内部控制器,并且与主机的存储器控制器1020分开。控制器1050可以基于寄存器1044确定选择何种模式,并对操作的内部执行进行配置以用于访问非易失性存储设备1060或其他基于所选模式的操作。控制器1050生成控制信号以控制存储器装置1040内的位的布线,以提供用于所选模式的适当接口并将命令引导至适当的存储器位置或地址。控制器1050包括命令逻辑单元1052,其可以对在命令和地址信号线上接收的命令编码进行解码。因此,命令逻辑单元1052可以是或包括命令解码器。通过命令逻辑单元1052,存储器装置可以识别命令并生成内部操作以执行所请求的命令。
[0128]
再次参考存储器控制器1020,存储器控制器1020包括命令(cmd)逻辑单元1024,其表示生成命令以发送到存储器装置1040的逻辑单元或电路。命令的生成可以指在调度、或准备好要发送的排队命令之前的命令。一般而言,存储器子系统中的信令包括在命令内或伴随命令的地址信息以指示或选择其中存储器装置应当执行命令的一个或多个存储器位置。响应于存储器装置1040的事务的调度,存储器控制器1020可以经由i/o 1022发出命令以使存储器装置1040执行命令。在一个示例中,存储器装置1040的控制器1050接收并解码经由i/o 1042从存储器控制器1020接收的命令和地址信息。基于接收的命令和地址信息,控制器1050可以控制存储器装置1040内的逻辑单元和电路的操作时序以执行命令。控制器1050负责遵守存储器装置1040内的标准或规范,例如时序和信令要求。存储器控制器1020可以通过访问调度和控制来实现符合标准或规范。
[0129]
存储器控制器1020包括调度器1026,其表示用以生成并排序事务以发送到存储器装置1040的逻辑单元或电路。从一个角度来看,存储器控制器1020的主要功能可以被说成调度存储器访问和其他事务到存储器装置1040。这样的调度可以包括生成事务本身以实施处理器1010对数据的请求并维持数据的完整性(例如,诸如与刷新相关的命令)。事务可以
包括一个或多个命令,并导致在一个或多个时序周期(例如时钟周期或单位间隔)上传输命令或数据或两者。事务可以用于诸如读取或写入的访问或相关命令或组合,并且其他事务可以包括用于配置、设置、数据完整性的存储器管理命令或其他命令或组合。
[0130]
存储器控制器1020通常包括诸如调度器1026的逻辑单元以允许事务的选择和排序以提高系统1000的性能。因此,存储器控制器1020可以选择应以何种顺序将哪些未完成事务发送到存储器装置1040,这通常是通过比简单的先进先出算法复杂得多的逻辑来实现的。存储器控制器1020管理事务到存储器装置1040的传输,并管理与事务相关联的时序。在一个示例中,事务具有确定性时序,其可以由存储器控制器1020管理并用于确定如何利用调度器1026调度事务。
[0131]
图11是其中可以实施具有执行sspc检测的感测电路的非易失性阵列的计算系统的示例的框图。系统1100表示根据本文任何示例的计算装置,并且可以是膝上型计算机、台式计算机、平板计算机、服务器、游戏或娱乐控制系统、嵌入式计算装置或其他电子装置。
[0132]
系统1100提供了系统的示例,该系统可以包括根据系统902或系统904的ssd,或另一存储装置。在一个示例中,系统1100包括具有nv阵列1188的存储设备1184。nv阵列1188可以是例如3d nand阵列。nv阵列1188包括感测以表示感测1190,其表示用于感测存储在非易失性存储阵列的存储器单元中的值的感测电路。在一个示例中,控制器1182根据上面描述的内容实施sspc单元检测和sspc升压以使感测1190能够适当地读取预期数量的sspc单元。sspc单元的检测和基于检测到的sspc单元的数量的动态sspc升压电压的施加使得系统1100能够适应于nv阵列1188内的变化的条件。
[0133]
系统1100包括处理器1110,其可以包括任何类型的微处理器、中央处理单元(cpu)、图形处理单元(gpu)、处理核心、或其他处理硬件、或组合,以为系统1100提供指令的处理或执行。处理器1110可以是主机处理器装置。处理器1110控制系统1100的整体操作,并且可以是或包括一个或多个可编程通用或专用微处理器、数字信号处理器(dsp)、可编程控制器、专用集成电路(asic)、可编程逻辑装置(pld)或这种装置的组合。
[0134]
系统1100包括启动/配置1116,其表示用于存储启动代码(例如,基本输入/输出系统(bios))、配置设置的存储设备、安全硬件(例如,受信平台模块(tpm))或在主机os外部操作的其他系统级硬件。启动/配置1116可以包括非易失性存储装置,例如只读存储器(rom)、闪存或其他存储器装置。
[0135]
在一个示例中,系统1100包括耦合到处理器1110的接口1112,其可以表示用于需要更高带宽连接的系统部件(例如存储器子系统1120或图形接口部件1140)的更高速度接口或高吞吐量接口。接口1112表示接口电路,它可以是独立部件或集成到处理器管芯上。接口1112可以作为电路集成到处理器管芯上或作为部件集成在片上系统上。在存在的情况下,图形接口1140与图形部件接口连接以向系统1100的用户提供视觉显示。图形接口1140可以是独立部件或集成到处理器管芯或片上系统上。在一个示例中,图形接口1140可以驱动向用户提供输出的高清(hd)显示器或超高清(uhd)显示器。在一个示例中,显示器可以包括触摸屏显示器。在一个示例中,图形接口1140基于存储在存储器1130中的数据或基于处理器1110执行的操作或两者来生成显示。
[0136]
存储器子系统1120表示系统1100的主存储器,并且为要由处理器1110执行的代码或要在执行例程中使用的数据值提供存储。存储器子系统1120可以包括随机存取存储器
(ram)的一种或多种变体,例如dram或其他存储器装置,或者这些装置的组合。存储器1130存储并接管操作系统(os)1132以及其他,以提供用于在系统1100中执行指令的软件平台。此外,应用程序1134可以从存储器1130在os 1132的软件平台上执行。应用程序1134表示具有自己的操作逻辑以执行对一个或多个功能的执行的程序。程序1136表示向os 1132或一个或多个应用程序1134或组合提供辅助功能的代理或例程。os 1132、应用程序1134和程序1136提供软件逻辑来为系统1100提供功能。在一个示例中,存储器子系统1120包括存储器控制器1122,其是用于生成并向存储器1130发出命令的存储器控制器。应当理解,存储器控制器1122可以是处理器1110的物理部分或接口1112的物理部分。例如,存储器控制器1122可以是集成存储器控制器,其集成到具有处理器1110的电路上,例如集成到处理器管芯或片上系统上。
[0137]
虽然没有具体示出,但是应当理解,系统1100可以在装置之间包括一个或多个总线或总线系统,例如存储器总线、图形总线、接口总线等。总线或其他信号线可以将部件通信或电耦合在一起,或将部件通信和电耦合。总线可以包括物理通信线、点对点连接、桥接器、适配器、控制器或其他电路或组合。例如,总线可以包括系统总线、外围部件互连(pci)总线、超级传输或工业标准架构(isa)总线、小型计算机系统接口(scsi)总线、通用串行总线(usb)、或其他总线、或组合。
[0138]
在一个示例中,系统1100包括接口1114,其可以耦合到接口1112。接口1114可以是比接口1112低速的接口。在一个示例中,接口1114表示接口电路,其可以包括独立部件和集成电路。在一个示例中,多个用户接口部件或外围部件或两者耦合到接口1114。网络接口1150为系统1100提供通过一个或多个网络与远程装置(例如,服务器或其他计算装置)通信的能力。网络接口1150可以包括以太网适配器、无线互连部件、蜂窝网络互连部件、usb(通用串行总线)或其他基于有线或无线标准的接口或专有接口。网络接口1150可以与远程装置交换数据,这可以包括发送存储在存储器中的数据或接收要存储在存储器中的数据。
[0139]
在一个示例中,系统1100包括一个或多个输入/输出(i/o)接口1160。i/o接口1160可以包括一个或多个接口部件,用户通过这些接口部件与系统1100(例如,音频、字母数字、触觉/触摸或其他接口)交互。外围接口1170可以包括上面没有具体提到的任何硬件接口。外围装置通常是指从属地连接到系统1100的装置。从属连接是系统1100提供软件平台或硬件平台或两者的连接,操作在所述软件平台或硬件平台或两者上执行并且用户与所述软件平台或硬件平台或两者交互。
[0140]
在一个示例中,系统1100包括存储子系统1180以用于以非易失性方式存储数据。在一个示例中,在某些系统实施方式中,存储设备1180的至少某些部件可以与存储器子系统1120的部件重叠。存储子系统1180包括(多个)存储装置1184,其可以是或包括用于以非易失性方式存储大量数据的任何常规介质,例如一个或多个基于磁性、固态或光学的磁盘,或组合。存储设备1184以持久状态(即,尽管系统1100的电力中断,但仍保留值)保持代码或指令和数据1186。存储设备1184一般可以被认为是“存储器”,尽管存储器1130通常是向处理器1110提供指令的执行或操作存储器。而存储设备1184是非易失性的,存储器1130可以包括易失性存储器(即,如果系统1100的电力中断,则数据的值或状态是不确定的)。在一个示例中,存储子系统1180包括与存储设备1184接口的控制器1182。在一个示例中,控制器1182是接口1114或处理器1110的物理部分,或者可以包括处理器1110和接口1114两者中的
电路或逻辑单元。
[0141]
电源1102向系统1100的部件提供电力。更具体地,电源1102通常与系统1100中的一个或多个供电源1104接口连接以向系统1100的部件提供电力。在一个示例中,供电源1104包括ac到dc(交流到直流)适配器以插入墙壁插座。这种ac电力可以是可再生能量(例如太阳能)电源1102。在一个示例中,电源1102包括dc电源,例如外部ac到dc转换器。在一个示例中,电源1102或供电源1104包括无线充电硬件以通过靠近充电场进行充电。在一个示例中,电源1102可以包括内部电池或燃料电池源。
[0142]
图12是其中可以实施具有执行sspc检测的感测电路的非易失性阵列的移动装置的示例的框图。系统1200表示移动计算装置,例如计算平板电脑、移动电话或智能电话、可穿戴计算装置、或其他移动装置、或嵌入式计算装置。将理解,某些部件被一般性地示出,并且并非这样的装置的所有部件都在系统1200中示出。
[0143]
系统1200提供了系统的示例,该系统可以包括根据系统902或系统904的ssd,或者另一个存储装置。在一个示例中,系统1200包括具有nv阵列1266的存储器1262。nv阵列1266可以是例如3d nand阵列。nv阵列1266包括感测以表示感测1290,其表示用于感测存储在非易失性存储阵列的存储器单元中的值的感测电路。在一个示例中,控制器1264根据上面描述的内容实施sspc单元检测和sspc升压以使感测1290能够适当地读取预期数量的sspc单元。sspc单元的检测和基于检测到的sspc单元的数量的动态sspc升压电压的施加使得系统1200能够适应于nv阵列1266内的变化的条件。
[0144]
系统1200包括处理器1210,其执行系统1200的主要处理操作。处理器1210可以是主机处理器装置。处理器1210可以包括一个或多个物理装置,例如微处理器、应用处理器、微控制器、可编程逻辑装置或其他处理设备。由处理器1210执行的处理操作包括在其上执行应用程序和装置功能的操作平台或操作系统的执行。处理操作包括与人类用户或与其他装置的i/o(输入/输出)相关的操作、与电力管理相关的操作、与将系统1200连接到另一装置相关的操作、或组合。处理操作还可以包括与音频i/o、显示i/o或其他接口相关的操作或组合。处理器1210可以执行存储在存储器中的数据。处理器1210可以写入或编辑存储在存储器中的数据。
[0145]
在一个示例中,系统1200包括一个或多个传感器1212。传感器1212表示嵌入式传感器或到外部传感器的接口,或组合。传感器1212使系统1200能够监测或检测其中实施系统1200的环境或装置的一个或多个条件。传感器1212可以包括环境传感器(例如温度传感器、运动检测器、光检测器、相机、化学传感器(例如,一氧化碳、二氧化碳或其他化学传感器))、压力传感器、加速度计、陀螺仪、医学或生理学传感器(例如,生物传感器、心率监测器或其他检测生理属性的传感器)、或其他传感器、或组合。传感器1212还可以包括用于诸如指纹识别系统、面部检测或识别系统、或检测或识别用户特征的其他系统的生物统计系统的传感器。传感器1212应该被广义地理解,并且不限于可以与系统1200一起实施的许多不同类型的传感器。在一个示例中,一个或多个传感器1212经由与处理器1210集成的前端电路耦合到处理器1210。在一个示例中,一个或多个传感器1212经由系统1200的另一部件耦合到处理器1210。
[0146]
在一个示例中,系统1200包括音频子系统1220,其表示与向计算装置提供音频功能相关联的硬件(例如,音频硬件和音频电路)和软件(例如,驱动器、编解码器)部件。音频
功能可以包括扬声器或耳机输出,以及麦克风输入。用于这种功能的装置可以集成到系统1200中,或连接到系统1200。在一个示例中,用户通过提供由处理器1210接收和处理的音频命令来与系统1200交互。
[0147]
显示子系统1230表示提供视觉显示以呈现给用户的硬件(例如,显示装置)和软件部件(例如,驱动器)。在一个示例中,显示器包括触觉部件或触摸屏元件以供用户与计算装置交互。显示子系统1230包括显示接口1232,其包括用于向用户提供显示的特定屏幕或硬件装置。在一个示例中,显示接口1232包括与处理器1210(例如图形处理器)分开的逻辑单元以执行与显示相关的至少一些处理。在一个示例中,显示子系统1230包括向用户提供输出和输入两者的触摸屏装置。在一个示例中,显示子系统1230包括向用户提供输出的高清晰度(hd)或超高清晰度(uhd)显示器。在一个示例中,显示子系统包括或驱动触摸屏显示器。在一个示例中,显示子系统1230基于存储在存储器中的数据或基于处理器1210执行的操作或两者来生成显示信息。
[0148]
i/o控制器1240表示与用户交互相关的硬件装置和软件部件。i/o控制器1240可以操作用于管理作为音频子系统1220或显示子系统1230或两者的部分的硬件。此外,i/o控制器1240示出了用于连接到系统1200的附加装置的连接点,用户可以通过该连接点与系统交互。例如,可以附接到系统1200的装置可以包括麦克风装置、扬声器或立体声系统、视频系统或其他显示装置、键盘或小键盘装置、按钮/开关、或用于特定应用的其他i/o装置,例如读卡器或其他装置。
[0149]
如上所述,i/o控制器1240可以与音频子系统1220或显示子系统1230或两者交互。例如,通过麦克风或其他音频装置的输入可以为系统1200的一个或多个应用或功能提供输入或命令。此外,可以提供音频输出来代替显示输出或除了显示输出之外还提供音频输出。在另一个示例中,如果显示子系统包括触摸屏,则显示装置还充当输入装置,其可以至少部分地由i/o控制器1240管理。系统1200上还可以有附加的按钮或开关以提供由i/o控制器1240管理的i/o功能。
[0150]
在一个示例中,i/o控制器1240管理诸如加速度计、相机、光传感器或其他环境传感器、陀螺仪、全球定位系统(gps)或可以包括在系统1200中的其他硬件、或传感器1212的装置。输入可以是直接用户交互的一部分,以及为系统提供环境输入以影响其操作(例如过滤噪声、针对亮度检测调整显示器、为相机应用闪光灯或其他特征)。
[0151]
在一个示例中,系统1200包括管理电池电力使用、电池充电、以及与节电操作相关的特征的电力管理1250。电力管理1250管理来自电源1252的电力,电源1252向系统1200的部件提供电力。在一个示例中,电源1252包括ac到dc(交流到直流)适配器以插入墙壁插座。这种ac电力可以是可再生能量(例如太阳能、基于运动的电力)。在一个示例中,电源1252仅包括dc电力,其可以由诸如外部ac到dc转换器的dc电源提供。在一个示例中,电源1252包括无线充电硬件以通过靠近充电场进行充电。在一个示例中,电源1252可以包括内部电池或燃料电池源。
[0152]
存储器子系统1260包括用于在系统1200中存储信息的(多个)存储器装置1262。存储器子系统1260可以包括非易失性(如果存储器装置的电力中断,则状态不会改变)或易失性(如果存储器装置的电力中断,则状态不确定)存储器装置,或组合。存储器1260可以存储应用数据、用户数据、音乐、照片、文档或其他数据,以及与系统1200的应用和功能的执行相
关的系统数据(无论是长期的还是临时的)。在一个示例中,存储器子系统1260包括存储器控制器1264(其也可以被认为是系统1200的控制的一部分,并且可以潜在地被认为是处理器1210的一部分)。存储器控制器1264包括调度器以用于生成并发出命令来控制对存储器装置1262的访问。
[0153]
连接1270包括硬件装置(例如,无线或有线连接器和通信硬件,或有线和无线硬件的组合)和软件部件(例如,驱动器、协议栈)以使系统1200能够与外部装置通信。外部装置可以是单独的装置,例如其他计算装置、无线接入点或基站,并且外部装置也可以是外围装置,例如耳机、打印机或其他装置。在一个示例中,系统1200与外部装置交换数据以存储在存储器中或显示在显示装置上。交换的数据可以包括要存储在存储器中的数据,或者已经存储在存储器中的数据,以读取、写入或编辑数据。
[0154]
连接1270可以包括多种不同类型的连接。概括地说,系统1200被图示为具有蜂窝连接1272和无线连接1274。蜂窝连接1272通常是指由无线运营商提供的蜂窝网络连接,例如通过gsm(全球移动通信系统)或变体或派生物、cdma(码分多址)或变体或衍生物、tdm(时分复用)或变体或衍生物、lte(长期演进——也称为“4g”)、5g或其他蜂窝服务标准。无线连接1274是指非蜂窝的无线连接,并且可以包括个域网(如蓝牙)、局域网(如wifi)或广域网(如wimax)、或其他无线通信、或组合。无线通信是指通过非固体介质使用经调制的电磁辐射来传输数据。有线通信通过固体通信介质进行。
[0155]
外围连接1280包括硬件接口和连接器,以及软件部件(例如,驱动器、协议栈)以进行外围连接。应当理解,系统1200既可以是都其他计算装置的外围装置(“至”1282),也可以具有连接到它的外围装置(“来自”1284)。系统1200通常具有“对接”连接器以连接到其他计算装置以用于诸如管理(例如,下载、上传、改变、同步)系统1200上的内容的目的。另外,对接连接器可以允许系统1200连接到某些外围设备,其允许系统1200控制例如输出到视听或其他系统的内容。
[0156]
除了专有对接连接器或其他专有连接硬件之外,系统1200还可以经由通用或基于标准的连接器进行外围连接1280。常见类型可以包括通用串行总线(usb)连接器(其可以包括多种不同硬件接口中的任一种)、包括迷你显示端口(mdp)的显示端口、高清晰度多媒体接口(hdmi)或其他类型。
[0157]
总的来说,关于本文的描述,在一个示例中,一种设备包括:非易失性(nv)存储介质,其将通过用于对单元进行编程并且然后执行单元的编程验证的操作而被写入,nv存储介质将作为页单元被写入;以及控制器,其在所述页单元的第一次写入中利用用于sspc(选择性慢速编程收敛)单元检测的第一字线(wl)选择电压执行编程验证,以检测sspc单元的预期数量,以及在所述页单元的后续写入中利用高于第一wl选择电压的第二wl选择电压执行编程验证,以执行用于标准单元的编程验证,并且然后利用从第一次写入确定的升压电压执行sspc编程验证,以捕获大致预期数量的sspc单元。
[0158]
在该设备的一个示例中,在一个示例中,第一wl选择电压包括比wl编程电压低编程步长电压的大致一半的电压。根据该设备的任何前述示例,在一个示例中,该设备包括:升压电路,其生成升压电压,包括生成sspc升压电压的序列以确定用于捕获大致预期数量的sspc单元的升压电压。根据该设备的任何前述示例,在一个示例中,sspc升压电压的序列包括线性搜索序列。根据该设备的任何前述示例,在一个示例中,sspc升压电压的序列包括
二进制搜索序列。根据该设备的任何前述示例,在一个示例中,控制器用于针对nv存储介质的变化的条件基于sspc单元的预期数量来计算升压电压以捕获大致预期数量的sspc单元。根据该设备的任何前述示例,在一个示例中,变化的条件包括温度变化。根据该设备的任何前述示例,在一个示例中,变化的条件包括不同的字线位置。根据该设备的任何前述示例,在一个示例中,变化的条件包括循环计数的变化。根据该设备的任何前述示例,在一个示例中,该单元包括3d(三维)nand存储器单元。
[0159]
总的来说,关于本文的描述,在一个示例中,一种系统包括:处理器;耦合到处理器的固态驱动器(ssd),ssd包括非易失性(nv)存储介质,其将通过用于对单元进行编程并且然后执行单元的编程验证的操作而被写入,nv存储介质将作为页单元被写入;以及控制器,其在所述页单元的第一次写入中利用用于sspc(选择性慢速编程收敛)单元检测的第一字线(wl)选择电压执行编程验证,以检测sspc单元的预期数量,以及在所述页单元的后续写入中利用高于第一wl选择电压的第二wl选择电压执行编程验证,以执行用于标准单元的编程验证,并且然后利用从第一次写入确定的升压电压执行sspc编程验证,以捕获大致预期数量的sspc单元。
[0160]
在系统的一个示例中,在一个示例中,第一wl选择电压包括比wl编程电压低编程步长电压的大致一半的电压。根据系统的任何前述示例,在一个示例中,系统包括:升压电路,其生成升压电压,包括生成sspc升压电压的序列以确定用于捕获大致预期数量的sspc单元的升压电压。根据系统的任何前述示例,在一个示例中,sspc升压电压的序列包括线性搜索序列。根据系统的任何前述示例,在一个示例中,sspc升压电压的序列包括二进制搜索序列。根据系统的任何前述示例,在一个示例中,控制器用于针对nv存储介质的变化的条件基于sspc单元的预期数量来计算升压电压以捕获大致预期数量的sspc单元。根据系统的任何前述示例,在一个示例中,变化的条件包括温度变化。根据系统的任何前述示例,在一个示例中,变化的条件包括不同的字线位置。根据系统的任何前述示例,在一个示例中,变化的条件包括循环计数的变化。根据系统的任何前述示例,在一个示例中,该单元包括3d(三维)nand存储器单元。
[0161]
总的来说,关于本文的描述,在一个示例中,一种用于单元的编程验证的方法包括:在非易失性(nv)存储介质的页单元的第一次写入中利用用于sspc(选择性慢速编程收敛)单元检测的第一字线(wl)选择电压执行编程验证,以检测sspc单元的预期数量;以及在所述页单元的后续写入中利用高于第一wl选择电压的第二wl选择电压执行编程验证,以执行用于标准单元的编程验证,并且然后利用从第一次写入确定的升压电压执行sspc编程验证,以捕获大致预期数量的sspc单元。
[0162]
在该方法的一个示例中,在一个示例中,第一wl选择电压包括比wl编程电压低编程步长电压的大致一半的电压。根据该方法的任何前述示例,在一个示例中,该方法包括:生成升压电压,包括生成sspc升压电压的序列以确定用于捕获大致预期数量的sspc单元的升压电压。根据该方法的任何前述示例,在一个示例中,sspc升压电压的序列包括线性搜索序列。根据该方法的任何前述示例,在一个示例中,sspc升压电压的序列包括二进制搜索序列。根据该方法的任何前述示例,在一个示例中,该方法包括针对nv存储介质的变化的条件基于sspc单元的预期数量来计算升压电压以捕获大致预期数量的sspc单元。根据该方法的任何前述示例,在一个示例中,变化的条件包括温度变化。根据该方法的任何前述示例,在
一个示例中,变化的条件包括不同的字线位置。根据该方法的任何前述示例,在一个示例中,变化的条件包括循环计数的变化。根据该方法的任何前述示例,在一个示例中,该单元包括3d(三维)nand存储器单元。
[0163]
如本文所示的流程图提供了各种过程动作的序列的示例。流程图可以指示要由软件或固件例程执行的操作以及物理操作。流程图可以示出有限状态机(fsm)的状态的实施方式的示例,其可以以硬件和/或软件实施。尽管以特定的序列或顺序示出,除非另有说明,否则可以修改动作的顺序。因此,示出的示图应该仅作为示例来理解,并且可以以不同的顺序执行该过程,并且可以并行执行一些动作。此外,可以省略一个或多个动作;因此,并非所有实施方式都将执行所有操作。
[0164]
在本文描述了各种操作或功能的程度上,它们可以被描述或定义为软件代码、指令、配置和/或数据。内容可以是直接可执行的(“对象”或“可执行”形式)、源代码或差异代码(“增量”或“补丁”代码)。本文描述的软件内容可以经由具有存储在其上的内容的制品来提供,或者经由操作通信接口以经由通信接口发送数据的方法提供。机器可读存储介质可以使机器执行所描述的功能或操作,并且包括以机器(例如,计算装置、电子系统等)可访问的形式存储信息的任何机制,例如可记录/非可记录介质(例如,只读存储器(rom)、随机存取存储器(ram)、磁盘存储介质、光存储介质、闪存装置等)。通信接口包括与硬连线、无线、光学等介质中的任一种接口连接以与另一装置通信的任何机制,例如存储器总线接口、处理器总线接口、互联网连接、磁盘控制器等。可以通过提供配置参数和/或发送信号来配置通信接口以使通信接口准备好提供描述软件内容的数据信号。可以经由发送到通信接口的一个或多个命令或信号来访问通信接口。
[0165]
本文描述的各种部件可以是用于执行所描述的操作或功能的设备。本文描述的每个部件包括软件、硬件或这些的组合。这些部件可以实施为软件模块、硬件模块、专用硬件(例如,专用硬件、专用集成电路(asic)、数字信号处理器(dsp)等)、嵌入式控制器、硬连线电路等。
[0166]
除了本文描述的内容之外,在不脱离本发明的范围的情况下,可以对本发明公开的内容和实施方式进行各种修改。因此,本文的说明和示例应该被解释为说明性的,而不是限制性的。本发明的范围应仅通过参考所附权利要求来衡量。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1