一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

结合存储器访问的有缺陷的位线管理的制作方法

2021-03-09 09:10:00 来源:中国专利 TAG:存储器 牵涉 示例 缺陷 本文


1.本文描述的各示例涉及牵涉有缺陷的位线的存储器访问。


背景技术:

2.存储器阵列(例如,nand闪存存储器阵列)典型地由一组可以通过位线(列)和字线(行)阵列读取的单元构成。由于制造缺陷的原因,在存储器阵列中可能存在缺陷。这些缺陷中的一些对于共享同一位线的所有或大量单元而言可能是公共的。这样的“全局”列缺陷的示例是位线到位线电短路(短接)、位线到字线短接、位线到选择栅极短接、以及电开路的位线。
3.如果未适当地管理列缺陷,列缺陷会增加存储器阵列的总误码率(ber)中。此外,根据这些缺陷的性质(例如,开路或短接),可能无法对连接到它们的单元进行擦除或编程。擦除和编程算法典型地包括验证规程,以确保大部分单元被适当地擦除或编程。有缺陷的位线的存在可能会由于错误地增加擦除或编程通过或失败的单元数量而妨碍这样的验证规程。
附图说明
4.图1示出了根据一些实施例的nand闪存存储器阵列的示例性部分。
5.图2a示出了示例性系统。
6.图2b示出了示例性存储器系统的图示。
7.图3示出了单元阈值电压的分布的示意图。
8.图4示出了具有开路的位线检查规程的擦除操作的过程。
9.图5示出了执行编程和编程验证操作的过程。
10.图6示出了单元的阈值电压在重复施加的编程脉冲下可能如何进展的示意图。
11.图7示出了在计算初始编程电压幅值时考虑开路的bl数量的过程。
12.图8示出了单元的阈值电压分布和3选通软读取操作(被示为(a))和5选通软读取操作(示为(b))中的读取操作的示例。
13.图9示出了阈值电压分布和用(a)3选通sbr和(b)5选通sbr确定软位信息的读取操作的示意图。
14.图10绘示了可以用于识别弱数据以便进行软位读取校正的过程。
15.图11绘示了一种系统。
16.图12绘示了一种环境。
具体实施方式
17.管理列缺陷的已知方式是向存储器阵列添加冗余列(位线),并且使用一种机制来检测有缺陷的列,并且用冗余列的子集替换有缺陷的列。这样的机制可能涉及在制作和制造设施(例如,代工厂)运行特殊的测试以及建立为每个有缺陷的列分配冗余列的查找表。
有缺陷的位线的数量大于所分配的冗余位线的管芯可以被标记为失败的,并且被排除在最终产品中使用或不被销售。
18.查找表可以存储在非易失性存储器中,例如,在维持与存储器管芯用于分配供使用的冗余列(位线)的操作相关的信息的特殊块中。在存储器操作期间,在控制器接收到映射到有缺陷的列的地址的任何时候,存储器控制器都将该地址转换成对应的冗余替换列。
19.这样的修复测略可能具有若干缺点。首先,管理列修复所需要的查找表和附加的硬件可能会增加阵列的总面积和存储器管芯的成本。其次,冗余列的数量是针对最差的可修复状况设计的。在存在较低数量的有缺陷的列时,冗余列的一部分可能维持不被使用。冗余列的未使用的部分本来可以用于存储附加数据(例如可以用于错误校正的附加奇偶数据),但并未被使用。
20.各种实施例提供了一种存储器系统,该存储器系统包括存储器阵列和控制器,该控制器能够检测和管理存储器阵列中的列缺陷。控制器能够在操作期间识别有缺陷的列并且修改编程、擦除或读取操作以考虑有缺陷的列。作为编程、擦除或读取操作的一部分,存储器控制器可以执行感测操作以检测有缺陷的列(即,开路或短接的位线)。例如,可以在判断擦除操作是否已经成功完成时,在擦除验证期间考虑有缺陷的列的数量。可以为编程操作考虑有缺陷的列的数量以禁止那些列并且不允许对那些列进行编程或不考虑与那些有缺陷的列相关联的任何编程验证。可以在读取操作中考虑有缺陷的列的数量,以在软位读取(sbr)数据错误校正期间识别将被视为弱值的数据。
21.各种实施例可以不使用用于使用冗余列的查找表或附加硬件来实现列修复,并且因此可以减小存储器管芯的尺寸和存储器管芯的成本。此外,不在存储器系统中提供用于修复的冗余列,这可以减小为存储器阵列分配的面积。各种实施例可以用于任何类型的存储器阵列以检测有缺陷的位线或有缺陷的字线,例如动态随机存取存储器(dram)、电阻式ram、存储类存储器、nand存储装置、三维(3d)nand存储装置或任何类型的易失性或非易失性存储器。
22.在制作或制造设施中,仍然可以执行测试以识别并且对存储器阵列中的有缺陷的列(例如,短路或开路)进行计数,并且存储有缺陷的列的数量,并且识别存储区域中的有缺陷的列。该信息可以用于识别实际有缺陷的列的数量,从而使得在编程、擦除或读取操作期间,可以预先确定有缺陷的列的数量而无需在编程、擦除或读取操作期间再次确定。然而,一些实施例允许结合编程、擦除或读取操作来确定有缺陷的位线。
23.图1示出了根据一些实施例的nand闪存存储器阵列100的示例性部分。nand闪存存储器阵列100可以包括多个布置成列(例如串行串104)的非易失性存储单元102。在各种实施例中,存储单元102可以包括具有浮置栅极的晶体管,所述浮置栅极存储表示一个或多个位值的电荷。在串行串104中,单元102的漏极区(除顶部单元之外)耦合到另一个单元102的源极区。
24.阵列100还包括字线106。字线106可以跨越多个串行串104(例如,字线可以耦合到每个串行串104的一个存储单元),并且字线106连接到阵列100的一行的每个存储单元102的控制栅极并用于使该行中存储单元102的控制栅极偏置。位线108均通过漏极选择栅极114和感测电路120耦合到串行串104,感测电路120通过感测特定的位线108上的电压或电流来检测每个单元的状态。
25.存储单元的多个串行串104通过源极选择栅极112耦合到源极线110,并且通过漏极选择栅极114耦合到各个位线108。源极选择栅极112由源极选择栅极控制线116控制,并且漏极选择栅极114由漏极选择栅极控制线118控制。
26.在各种实施例中,可以根据单电平单元(slc)、多电平单元(mlc)、三电平单元(tlc)、四电平单元(qlc)或其他编码方案中的一个或多个对每个存储单元102进行编程。每个单元的阈值电压(vt)指示存储在单元中的数据。例如,图3示出了针对八个状态或电平的tlc nand闪存存储单元102的状态的示例性编程。电平0对应于擦除状态111,电平1对应于第一编程电平011。再次参考图1,在向存储器100中写入数据(例如,一个或多个页)时,可以将多个单元编程到编程电平。
27.在各种实施例中,被设置为存储多个位的单元状态可以形成多个不同的页的一部分,其中单元的每个位对应于不同页。例如,对于要进入存储2位的状态(例如,使用mlc编码方案)的单元,一个位可以对应于上部页(up),并且另一个位可以对应于下部页(lp)。对于要进入存储3位的状态(例如,使用tlc编码方案)的单元,一个位可以对应于lp,一个位可以对应于up,并且另一个位可以对应于额外页(xp)。对于要存储4位(例如,使用qlc编码方案)的单元,一个位可以对应于lp,另一个位可以对应于up,另一个位可以对应于xp,并且最后一位可以对应于顶部页(tp)。每一页(例如,lp、up、xp或tp)可以包括由字线的多个不同单元存储的对应位的集合。
28.一组单元的编程序列可以包括将所有的期望的页编程到该组单元中。编程序列可以包括一个或多个编程轮次。编程轮次(其可以包括一个或多个编程循环)可以对一个或多个页进行编程。编程轮次可以包括向要编程的单元施加一个或多个有效编程电压,接着向这些单元施加一个或多个验证电压,以判断哪些单元已完成编程(后续编程轮次通常将不向已完成编程的单元施加有效编程电压和/或验证电压)。向单元施加有效编程电压可以包括改变单元的控制栅极和沟道之间的电压差,以便改变单元的阈值电压。因此,可以设置单元的(耦合到目标单元的控制栅极的)字线和/或沟道的电压,以便实行有效编程电压的施加。由于通常使用编程电压表示施加到字线的电压,所以有效编程电压可以是单元的控制栅极和沟道之间的电压差(在沟道保持在0v的实例中,将与编程电压(v)同义)。
29.在一些情况下,位线可能有缺陷,并且表现出开路,或者短接到另一位线、字线、选择栅极或另一结构。表现出短接或开路故障的位线。例如,位线108a可能被导电耦合到位线108b,使得位线108a被认为短接到位线108b,并且位线108b被认为短接到位线108a。例如,位线108a可能表现出开路,使得电流不流过的位线108a的一部分。在位线或字线中有其他示例性缺陷也是可能的。
30.图2a示出了示例性系统。存储器器件200可以使用相应的接口220和256与计算平台250通信。存储介质202可以是可以在存储单元中存储一个或多个位的存储器或存储介质。例如,存储介质202可以包括非易失性和/或易失性类型的存储器。非易失性类型的存储器可以是即使中断器件电力也确定其状态的存储器类型。在一些示例中,存储介质202可以是块可寻址存储器器件,例如nand或nor技术。存储介质202还可以包括非易失性类型的存储器,例如3d交叉点存储器(3dxp)或其他字节可寻址非易失性存储器。存储介质202可以包括存储器器件,所述存储器器件使用硫属元素化物相变材料(例如,硫属元素化物玻璃)、多阈值电平nand闪存存储器、nor闪存存储器、单电平或多电平相变存储器(pcm)、电阻式存储
器、纳米线存储器、铁电晶体管随机存取存储器(fetram)、并入了忆阻器技术的磁阻随机存取存储器(mram)、或自旋转移矩mram(stt-mram)、或以上任何类型的组合或其他存储器类型。存储介质202可以包括单电平单元(slc)nand存储器器件、多电平单元(mlc)nand存储器器件、三电平单元(tlc)nand存储器器件、四电平单元(qlc)存储器器件。
31.根据一些示例,存储介质202中包括的易失性类型的存储器可以包括但不限于随机存取存储器(ram)、动态ram(d-ram)、双数据速率同步动态ram(ddr sdram)、静态随机存取存储器(sram)、晶闸管ram(t-ram)或零电容器ram(z-ram)。易失性类型的存储器可以与若干存储器技术兼容,所述存储器技术例如为ddr4(ddr版本4,jedec在2012年9月发布的初始规范)、lpddr4(低功率双倍数据速率(lpddr)版本4,jesd209-4,jedec在2014年8月首次发布)、wio2(宽带i/o 2(wideio2),jesd229-2,jedec在2014年8月首次发布)、hbm(高带宽存储器dram,jesd235,jedec在2013年10月首次发布)、ddr5(ddr版本5,jedec当前讨论中)、lpddr5(lpddr版本5,jedec当前讨论中)、hbm2(hbm版本2,jedec当前讨论中)和/或其他技术、以及基于这样的规范的衍生或扩展的技术。
32.在一些示例中,存储器器件200可以被划分成块,并且块可以被细分成页。在一些示例中,页可以是控制器204可寻址的数据的最小粒度。例如,页的大小可以是512、2048或4096字节,但也可以使用其他大小。
33.控制器204可以使用接口220利用互连、网络、织构或总线与计算平台(例如计算平台250)耦合或被配置为以此方式与计算平台耦合。控制器204可以与计算平台250的元件通信,以从存储介质202读取数据或向存储介质202写入数据。控制器204可以被配置为从计算平台250接收关于存储介质202的使用的命令(例如,读取数据、写入数据、指示误码率)。控制器204可以耦合到存储介质202的字线,以选择字线之一,施加读取电压,施加与位线电位电平组合的编程电压,或施加擦除电压。控制器204可以耦合到存储介质202的位线,以读取存储在存储单元中的数据,在编程操作期间确定存储单元的状态,并且控制位线的电位电平以促成或禁止编程和擦除。可以使用其他电路向存储介质202施加选定的读取电压和其他信号。
34.控制器204可以包括或访问传输缓冲区203,以执行已经写入到存储介质202的数据的错误检查和校正,并且从存储介质202读取。传输缓冲区203可以是易失性存储器,例如静态随机存取存储器(sram)。传输缓冲区203可以包括不同于sram的某种其他类型的易失性存储器。
35.在一些示例中,控制器204可以使用错误校正码(ecc)205进行编码或解码。对于编码,ecc 205可以包括逻辑和/或特征以产生码字,从而保护要写入到存储器202的数据的区域。对于解码,ecc 205可以包括逻辑和/或特征以检测并且尝试校正数据的ecc编码的区域中所包括的错误。根据一些示例,用于对数据编码的ecc可以包括但不限于低密度奇偶校验(ldpc)码,或者在一些情况下,reed-solomon(rs)码或bose、chaudhuriand hocquenghem(bch)码。错误校正码(ecc)可以用于恢复数据,可能需要应用于存储器的读取和重新读取操作以成功读取数据。ldpc可以使用软决策解码以对数据进行解码,这可以校正错误。
36.阈值电压块206可以为存储介质202中的单元存储阈值电压,并且为控制器204提供可施加的阈值电压(vt),以施加到存储介质202中的存储单元,以使得单元的状态进入多种状态之一。例如,通过向存储介质202中的存储单元施加阈值电压,存储单元被编程从而
进入特定的状态,以存储一个或多个位。
37.对于擦除操作,可以通过向选定块的位线施加具有大电压(例如,20v)的擦除脉冲,然后向选定块的字线(wl)(行)施加小电压(例如,0v),同时保持未选定块的wl浮置,来擦除属于该块的单元。然后将选定块中的单元的阈值电压与擦除验证目标比较。然后对阈值电压高于擦除验证电平的单元的数量进行计数以确定擦除验证失败的位线的计数值。如果这个计数值(数量)高于特定的失败的位的计数值,则施加典型地具有更高的幅值的另一个擦除脉冲。然而,在存在开路的位线的情况下,使用重复且增大的擦除脉冲幅值可能导致控制器204不必要地施加更高的擦除脉冲并且导致其余单元被过度擦除。如果开路的位线的数量高于最大允许的失败的位的计数值,则控制器204可以报告擦除状态失败。
38.在一些实施例中,存储器控制器204可以被配置为检测与被请求擦除、编程或读取的存储器区域相关联的有缺陷的位线。在一些示例中,用于擦除存储器器件的可寻址区域的命令可以使得擦除控制器210在执行擦除和擦除验证操作之前确定有缺陷的位线。在一些实施例中,在施加擦除脉冲之前,擦除控制器210通过向给定块的所有wl施加高于单元的最大阈值电压的电压并且感测bl,来执行位线开路测试。开路的bl将被读取为0,而其余bl将被读取为1。擦除控制器210然后可以将0的数量计数为n
开路
,并且如果没有开路的bl,则这个数量为零。
39.在施加擦除脉冲之后,典型地,通过检查所有单元的阈值电压是否低于擦除验证电压,来执行擦除验证操作。擦除控制器210然后可以对擦除验证失败的bl的数量n
擦除_失败
进行计数,并且将该数量与擦除失败的位的预定允许数量进行比较。如果存在开路的位线,并且未通过将它们映射到冗余bl而被修复,那么它们在擦除验证期间将被识别为失败的位。开路的位线始终显示出高阈值器件,无论施加了多少次擦除验证,并且位线始终失败。
40.在擦除验证期间,擦除控制器210从擦除失败的位的数量减去开路的bl的数量(n
擦除_失败

n
开路
),并且将(n
擦除_失败

n
开路
)与允许擦除失败的位的预定阈值数量(例如,基于允许多少错误(例如,0.1%)并且可以使用诸如ecc或软位读取进行校正)进行比较。如果(n
擦除_失败

n
开路
)大于擦除失败的位的预定允许数量,擦除控制器210可以施加具有更大幅值(小于最大许可电压)的另一个擦除脉冲并且重复验证操作。重复这一过程,直到擦除验证失败的单元的数量小于所指定的失败的位的计数值(许可的失败数量),但不考虑开路的位线。然而,如果已经出现了最大数量的所施加的擦除电压,或者擦除电压是比最大许可电压更大的幅值,则认为擦除操作失败。
41.各种实施例可以为多个页识别开路的bl,并且不通过结合每次擦除操作向字线施加电压来确定bl开路。开路的bl的数量可以被存储在未使用的锁存器、寄存器或缓冲区中。在确定开路的位线的数量之后,存储器的页的开路的位线的数量可以被存储并且用于将来的擦除操作中,使得针对同一页的一个或多个后续擦除操作可以使用预定数量的开路的位线。
42.对于编程操作而言,存储器控制器204可以使用编程控制器212来管理编程和编程验证操作。在一些示例中,用于对存储器器件的可寻址区域进行编程的命令可以使得编程控制器212在执行编程和编程验证操作之前或结合执行编程和编程验证操作,来确定有缺陷的位线。例如,为了确定有缺陷的位线,编程控制器212可以确定短接到另一位线、栅极或其他结构的位线的数量。
43.在一些实施例中,奇数编号的bl连接到小电压(例如,0v或地),而偶数编号的bl被预先充电到较高电压(例如,0.5v)。例如,参考图1,位线108a可以被认为是偶数编号的位线,而位线108b可以被认为是奇数编号的位线。nand串的选择栅极保持关断(例如,通过使那些晶体管的栅极接地)。在没有bl-bl短接的情况下,几乎没有电流流动,并且偶数编号的bl将在读取操作的发展时间期间维持其电压并且被读取为0。短接到其相邻的奇数编号的bl或短接到选择栅极的偶数编号的bl将在发展时间期间被有效连接到地并且被读取为1。接下来,偶数编号的bl连接到小电压(例如,0v)的地,并且奇数编号的bl被预先充电到较高电压(例如,0.5v),且以与针对偶数编号的bl确定相似的方式检测短接的奇数编号的bl。
44.对于编程操作,向对应于要编程的页地址的选定字线(wl)施加具有越来越大幅值的一系列编程脉冲。例如,根据来自提供给nand的数据的三个页的对应的位,可以将每单元三电平(tlc)nand存储单元编程到八个可能的阈值电压电平l0到l7中的一个。对于tlc nand器件而言,在每个编程脉冲之后,基于将对应的bl编程到的电平,将单元的阈值电压与一组编程验证电压(pv1到pvn,其中,n为0到7)进行比较。对于mlc或slc nand存储器器件而言,使用编程验证电压的相应的4个电平和2个电平。支持阈值分布的其他电平,包括qlc。阈值电压高于对应的pv的bl可以被标记为禁止,而阈值电压低于pv的bl保持在编程桶中并且被认为是已编程的。
45.根据一些实施例,在编程序列开始时(或在施加编程信号之前)识别短接的bl,并且在施加第一编程脉冲之前将所述短接的bl标记为禁止。在一些实施例中,对于缺陷(短接的)bl而言,控制器204可以在施加第一编程脉冲之前,设置将禁止信息维持到1(不编程)的对应的锁存器218。在一些实施例中,控制器204可以修改要为缺陷bl编程的数据,以将它们置于l0状态(例如,通过将对应于缺陷bl的所有数据锁存器218设置到1)。然后通过向选定的wl施加编程脉冲,并且然后针对所指定的验证电压的集合验证未禁止的单元的阈值电压,从而执行编程的其余部分。
46.编程控制器212可以为多个页识别(一个或多个)短接的位线,并且在每次编程操作之前不确定(一个或多个)短接的位线。在为页确定短接的位线之后,存储器的页的短接的位线的数量可以被存储并且用于将来的编程操作中,使得针对同一页的一个或多个后续编程操作可以使用预定数量的短接的位线。在一些实施例中,在所有页的编程操作开始时,应用识别短接的bl的规程。在一些实施例中,可以每组页(例如针对属于给定块的所有页)应用一次识别短接的bl的规程,并且在一些暂时位置(例如在保存页缓冲区数据的一些锁存器或sram位置中)维持该信息。共享短接的bl信息的编程操作然后可以从锁存器或sram位置检索该信息,并且在施加第一编程脉冲之前更新禁止信息。
47.在后续编程脉冲期间,禁止的bl接收到较大电压(例如,vcc),而要编程的bl接收到较小的电压(例如,0v)。此外,其阈值电压未通过对应pv但接近的bl可以在验证期间被识别,并且在后续编程脉冲期间(例如,使用选择性缓慢编程收敛(sspc))接收中间电压(例如,1v)。
48.编程控制器212可以将通过的位线的数量减少短接的位线的数量,并且将通过的位线的减少数量与阈值水平比较,以判断通过的位线的数量对于相关电平(例如,对于tlc为l0到l7,或者对于mlc为l0到l3,等等)是否可接受。如果调节后的失败的位线的数量大于允许的失败的数量,则增大栅极电压并且重复编程和编程验证,直到阈值数量的bl通过其
对应的pv,满足最大允许数量的编程循环,或达到最大编程脉冲幅值。如果阈值数量的位线在最大允许数量的编程循环内并且在最大编程脉冲幅值内通过其pv,则编程控制器212将编程操作识别为通过。如果满足最大允许数量的编程重试或者达到最大编程脉冲幅值,而阈值数量的bl未通过其对应的pv,则编程控制器212将编程操作识别为失败。
49.在一些实施例中,编程控制器212可以基于开路的位线的数量确定起始编程电压幅值以用于存储器的页。编程方案可以包含例程以自动调节起始编程脉冲幅度。改变起始编程电压幅值可以补偿不同的wl之间最优编程起始电压的变化并且补偿循环或时间以及存储器器件使用时的变化。可以从一组共享同一wl的页来为样本页计算电压幅值。其余的页然后可以使用最优起始编程电压,该最优起始编程电压是基于采样页中的单元的阈值电压如何对编程脉冲作出响应来计算的。
50.编程控制器212可以为页确定编程电压,在该编程电压处,通过的位线的数量减去开路的位线的数量处于或高于通过的位线的阈值接受水平,并且将所确定的编程电压存储在编程电压(pv)213中。编程电压213可以存储默认起始编程电压并且被所确定的编程电压盖写。为了确定编程电压,编程控制器212可以继续到编程电压电平,直到通过的位线的数量减去开路的位线的数量处于或高于通过的位线的阈值接受水平,只是编程电压电平不能超过最大值且编程电压电平增大的次数有上限。如果通过的位线的数量减去开路的位线的数量在编程电压电平达到最大值或编程电压电平的次数达到上限之前不满足通过的位线的阈值接受水平,则使用默认编程电压。
51.存储器控制器204可以使用读取控制器214来向存储器的区域(例如存储器的页)执行读取请求。读取请求可以返回来自读取的结果,并且在一些情况下,使用软位读取(sbr)207来校正数据中的错误。对于需要使用错误校正编码进行校正的读取数据,读取控制器214可以判断特定的读取数据中是否有读取涉及使用开路的位线或短接的位线,并且结合在软位读取错误校正中使用而将读取数据涉及的作为开路的位线或短接的位线的位线识别为“弱”0值,以避免对读取数据值过度信任。软位读取207可以执行以下中的一者或多者:经由多个选通多次读取数据、获得可靠性信息、以及映射对数似然无线电(llr)对应值。
52.图2b示出了示例性存储器系统260的图示。存储器系统260可以包括控制器262、控制电路264和存储器阵列266。在一些示例中,由存储器阵列266执行的各种存储器操作可以通过行控制268、p阱控制270、c源控制272和列控制274进行控制。存储器阵列266的总体操作可以由控制器262和/或控制电路264控制或引导。数据输入/输出缓冲器276可以被配置为至少暂时存储写入到存储器阵列266的数据或从存储器阵列266读取的数据。
53.在一些示例中,存储器阵列266可以包括本文列出或未列出的非易失性类型的存储器和/或易失性类型的存储器。根据一些示例,行控制268可以耦合到存储器阵列266的字线。对于这些示例,行控制268可以经由字线耦合以选择字线之一,施加读取电压,施加与由列控制274控制的位线电位电平组合的编程电压,以及施加擦除电压。而且,列控制274可以耦合到存储器阵列266的位线,以读取存储在存储单元中的数据,在编程操作期间确定存储单元的状态,以及控制位线的电位电平以促成或禁止编程和擦除。p阱控制270可以控制存储器阵列266的p阱电压,并且c源控制272可以控制耦合到存储器阵列266的公共源极线。可以使用其他电路向存储器阵列266施加选定的读取电压和其他信号。
54.在一些示例中,列控制274可以被配置为读出存储或维持在存储器阵列266中的数据,并且该数据可以经由数据i/o缓冲器276输出到外部i/o数据线。对于这些示例而言,可以经由外部i/o数据线向数据i/o缓冲器276输入要存储在存储器阵列266的存储单元中的编程数据,并且然后将所述编程数据传输到列控制274。如图2b中所示,在一些示例中,外部i/o数据线可以耦合到控制器262或由控制器262管理。
55.根据一些示例,可以经由耦合到控制电路264的控制线从控制器262中继用于存储器系统260(例如存储器阵列266)的控制元件的命令数据。例如,控制数据可以通知存储器系统260的元件所请求的操作。
56.在一些示例中,控制器262可以与主机系统耦合或被配置为与主机系统耦合,所述主机系统例如是具有处理器、加速器装置等的计算平台或计算装置。控制器262可以与计算平台的元件通信,以从存储器阵列266读取数据或向存储器阵列266写入数据。控制器262可以被配置为从计算平台接收命令并且将命令转发到控制电路264。控制器262还可以被配置为控制存储器系统260和计算平台之间的i/o数据线。
57.根据一些示例,存储器系统260可以作为包括单个电路板或其他类型的集成封装上的控制器262的集成系统被并入。对于这些示例而言,该集成系统可以包括多个存储器阵列266和关联的控制电路。该集成系统可以作为计算平台的一部分被嵌入,或者可以以一种可以可移除地耦合到计算平台的配置被包括。这种配置可以包括图2b中所绘示的存储器系统260的所有元件,或者仅包括图2b中所示的虚线上方的元件。因此,控制器262可以被嵌入计算平台中,或者可以被包括在可以从计算平台移除的存储器系统中。
58.图3针对三电平单元(tlc)nand闪存存储器示出了单元阈值电压的分布的示意图。对于连接到开路的位线的单元,阈值电压分布的一部分延伸到右侧并且超过电压电平rmax。例如,处于电平l0、l2、l5和l7的单元的阈值电压分布因为开路的位线而呈现出超过rmax的分布。在一些实施例中,可以使用字线被设置到rmax(显著高于非缺陷单元的阈值电压)的感测操作来检测开路的bl。
59.图4示出了具有开路位线检查流程的擦除操作的过程。该过程可以例如由存储器控制器来执行。在402,在存储器控制器处接收擦除命令和存储器的关联块或可寻址区域。可以从通过网络、织构、互连或总线本地或远程连接到存储器系统的主机系统接收擦除命令。在404,执行感测操作以识别开路的位线(bl)。例如,识别开路的位线可以包括:向给定块的所有wl施加高于单元的最大阈值电压的电压、以及感测bl。开路的bl将被读取为0,而被擦除的bl将被读取为1。在406,对开路的位线(bl)的数量进行计数。
60.在408,可以设置擦除脉冲幅值。例如,可以将存储器控制器中配置的起始擦除电压用作擦除脉冲幅值。在410,可以向存储器的与擦除命令相关联的块或其他区域施加擦除电压。在412,针对存储器的该块或区域执行擦除验证操作。擦除验证可以包括验证至少阈值数量的单元具有低于擦除验证电压(v
擦除_验证
)的阈值电压(v
th
)。
61.在414,确定擦除验证失败的位线的数量(n
擦除_失败
)。例如,擦除验证失败的位线的数量可以与阈值电压(v
th
)大于擦除验证电压(v
擦除_验证
)的单元相关联。在416,判断经调节的擦除验证失败的位线的数量是否小于或等于阈值。经调节的擦除验证失败的位线的数量可以是擦除验证失败的位线的数量减去开路的位线的数量。如果经调节的擦除验证失败的位线的数量小于阈值,则在430,响应于擦除命令确定擦除通过状态。例如,可以将擦除通过状
态提供给主机系统。如果经调节的擦除验证失败的位线的数量等于或大于阈值,则接着进行418。
62.在418,判断是否已经执行了具有擦除验证的所施加擦除脉冲的最大次数迭代。如果已经执行了具有擦除验证的所施加擦除脉冲的最大次数迭代,在440,给出擦除失败状态。可以将擦除失败状态提供给主机系统或擦除操作的请求方。如果已经执行了具有擦除验证的所施加擦除脉冲的少于最大次数迭代,则接着进行420。在一些实施例中,418可以包括判断所施加的擦除电压如果增大到下一电平,是否会处于或高于阈值。如果增大的所施加擦除电压会处于或高于阈值,则可以接着进行440。如果增大的所施加擦除电压不会处于阈值且不高于阈值,则接着可以进行410,其中在420施加增大的所施加擦除电压。
63.在420,将擦除电压的幅值增大编程的递增值,并且用增大的擦除电压幅值再次执行410。
64.图5示出了执行考虑有缺陷的位线的编程和编程验证操作的过程。存储器控制器可以执行图5的过程。可以使用该过程识别短接到一个或多个其他位线或栅极(或其他结构)的若干或特定位线,并且在判断编程失败或成功时考虑短接的位线的数量。在502,可以接收编程命令和关联的地址和数据。地址可以指定存储器的页或其他区域。可以从本地或远程装置接收编程命令。在504,可以执行感测操作,以识别短接到另一位线或选择栅极或其他结构的位线。
65.例如,为了识别短接的位线,可以使用以下技术。在一些实施例中,奇数编号的bl连接到小电压(例如地),而偶数编号的bl被预先充电到较高电压(例如,0.5v)。nand串的选择栅极保持关断,例如,通过使那些晶体管的栅极接地。在没有bl-bl短接的情况下,几乎没有电流流动,并且偶数编号的bl将在读取算法的发展时间期间维持其电压并且因此被读取为0。短接到其相邻的奇数编号的bl或短接到选择栅极的偶数编号的bl将在发展时间期间被有效连接到地并且被读取为1。接下来,偶数编号的bl连接到小电压(例如地),奇数编号的bl被预先充电到较高电压(例如,0.5v),并且被感测,以便以与针对偶数编号的bl进行确定相似的方式来检测短接的奇数编号的bl。
66.在506,可以禁止被识别为短接的位线。例如,禁止位线可以包括向被禁止的位线施加较大电压,例如vcc。在508,可以针对未禁止的位线执行编程和编程验证操作。编程操作可以包括施加具有由存储器控制器设定的幅值的编程电压脉冲。编程验证操作可以包括确定其阈值电压超过编程验证电压电平的单元数量。在一些示例中,用幅值增大的编程电压脉冲重复编程和编程验证操作,直到验证编程了阈值数量的位线。但如果编程电压脉冲幅值达到处于或高于阈值的电平或者达到峰值数量的重复/重试,则确定编程失败。
67.图6示出了单元的阈值电压在重复施加的编程脉冲下可以如何进展的示意图。将一组具有增大的幅值的编程脉冲施加到选定的wl,并且将单元的阈值电压与验证电平(例如pv1)进行比较,对通过pv1的单元的数量进行计数。在存在开路的bl的情况下,迭代/重复施加编程脉冲的次数可能很高,并且引起起始编程电压幅值的保守计算。
68.图7示出了在计算初始编程电压幅值时考虑开路的bl数量的过程。该过程可以由耦合到存储器器件的存储器控制器来执行。例如,可以在将存储器系统向用户发布之前,在工厂或制造设施处执行该过程。可以在客户使用之后,在操作性存储器系统中执行该过程。在702,可以接收具有地址和关联的数据的编程命令。地址可以指定页或其他区域。可以从
本地或远程计算系统接收编程命令。在704,可以执行感测操作以识别开路的位线的数量。例如,识别开路的位线的数量可以类似于404(图4)。在706,对开路的位线的数量进行计数。例如,对开路的位线进行计数可以类似于406(图4)。在一些示例中,在执行编程操作之前在擦除操作中执行404和406,并且存储开路的位线的数量以在编程操作中使用,并且用从存储装置或存储器读取开路的位线的数量替换动作704和706。
69.在708,可以使用起始编程幅度设置编程脉冲幅值。起始编程幅度可以是存储器控制器使用的默认编程电压值。起始编程电压可以是由制造商或主机设置的默认电压电平。在710,可以将具有起始编程电压幅度的编程脉冲施加到与地址相关联的选定的字线,所述地址与编程命令相关联。
70.在712,可以执行编程验证操作。可以将尝试被编程的单元的阈值电压与编程验证电平(pv1)进行比较。在714,确定通过编程验证电平的位线的数量的计数值。要编程的每个单元可以连接到对应的位线,使得通过编程验证的单元数量对应于位线的数量。在716,判断经调节的通过的位线的数量是否满足或超过阈值数量。经调节的通过的位线的数量可以是比所确定的开路的位线的数量小的通过的位线的数量。如果经调节的通过的位线的数量达到或超过阈值,可以认为编程通过,并且接着进行718。如果经调节的通过的位线的数量未满足且未超过阈值水平,则可以接着进行720。
71.在718,确定要在708的下一次迭代中施加的编程电压幅值。例如,可以进行708的下一次迭代,以便于对共享同一wl的另一页进行编程。计算(或确定)的编程起始的编程电压可以是使得经调节的通过的位线的数量达到或超过阈值数量的编程脉冲幅值。该编程电压可以被存储以在后续编程操作中用作初始编程脉冲幅值,从而尝试减少对存储器的某一区域编程所花费的时间。
72.在720,可以增大编程电压幅值,并且可以递增循环计数值。可以在动作720之后再次执行动作710,但使用增大的编程电压幅值。
73.只要坏列(例如,短接或开路的bl)的数量与错误校正码(ecc)能力相比较小,就可以忽略与所述坏列相关联的额外原始误码率(rber)。然而,存储器系统常常使用软读取信息来提供更高的校正能力。在这样的情况下,存储器器件接收特定的读取命令以执行软读取操作。存储器器件在接近参考读取电压并且以参考读取电压为中心的一系列电压下执行额外的感测操作。对于阈值电压接近参考电压的单元的读取结果将在一系列读取操作之间跳跃。这样的单元被读取为“弱”0或1状态。相比之下,阈值电压远离参考电压的单元的读取结果不在一系列读取操作之间跳跃,并且这样的单元被读取为1状态的“强”0。
74.图8示出了单元的阈值电压分布和3选通软读取操作(被示为(a))和5选通软读取操作(示为(b))中的读取操作的示例。指向右的尾部是由开路的位线(0)引起的。尾部被示为“强”0,因为阈值电压在电压r δ(示为r d)的右方。在没有列修复的情况下,可能会将使用有缺陷的列的数据读取不正确地标记为“强”位。由于这些位可能完全错误,所以向ecc引擎传递作为强0或1的信息可能会显著降低错误校正能力。
75.在示例性3选通软读取中,对于每个读取参考,例如,在参考电平r下方的偏移差量(δ)和参考电平r上方的偏移差量(δ)处执行三次读取操作。在示例中,阈值电压低于r的单元被读取为1,并且阈值电压高于r的单元被读取为0,以产生硬位读取(hbr)数据。阈值电压在r-δ(r-d)和r δ(r d)之间的单元被标记为弱位,在软位读取(sbr)数据中由0表示。
阈值电压低于r-δ(r-d)或高于r δ(r d)的单元被标记为强单元,在sbr数据中由1表示。
76.在5选通软读取中,例如,在r-2δ(r-2d)和r 2δ(r 2d)下发生两次更多的读取操作。阈值电压在r-2δ和r-δ以及r δ和r 2δ之间的单元被标记在弱和强0和1之间某处,并且该信息由第二软位(sbr)数据编码。
77.图9示出了阈值电压分布和用(a)3选通sbr和(b)5选通sbr确定软位信息的读取操作的示意图。根据一些实施例,存储器器件(或其存储器控制器)可以执行读取操作,并且识别有缺陷的列(例如,开路或短接的bl(作为读取操作的一部分)),并且将使用有缺陷的列检索的数据识别为软位读取(sbr)中的“弱”类别数据。根据一些实施例,使用开路的位线读取的数据被标记为sbr数据中的“弱”0。
78.根据一些实施例,bl检查可以作为sbr操作的一部分被执行,以识别短接到其邻居或选择栅极晶体管(或其他结构)的bl,并且通过将对应的sbr数据标记为“弱”0来将使用这些识别的bl所读取的数据放在“弱”桶中。
79.图10绘示了可以用于识别弱数据以便进行软位读取校正的过程。在1002,识别用于确定有缺陷的位线的触发。触发可以是读取请求或对执行软位读取操作以校正从缺陷或潜在缺陷存储单元或具有有缺陷的位线或字线的存储单元检索的数据的请求。
80.在1004,检测有缺陷的位线。在一些实施例中,可以通过向给定块的所有字线施加高于单元的最大阈值电压的电压并且感测位线,来识别开路的位线作为读取操作的一部分。开路的bl将被读取为0。可以使用图5的504将位线识别为短接到其他结构(例如,位线、栅极或其他结构)。在识别出开路或短接的位线的一些示例中,可以访问表格以识别开路和短接的位线两者,并且使用开路或短接的位线检索的数据可以被识别为弱“0”。
81.在1006,对于软位读取数据而言,将使用有缺陷的位线读取的数据识别为弱,以便进行错误校正。之后,可以进行软位读取校正,以尝试校正使用(一个或多个)有缺陷的位线读取的数据。
82.图11绘示了一种系统。该系统可以使用本文描述的实施例来擦除、编程或读取本地或远程存储器系统中的数据。系统1100包括处理器1110,其为系统1100提供处理、操作管理和指令的执行。处理器1110可以包括用于为系统1100提供处理的任何类型的微处理器、中央处理单元(cpu)、图形处理单元(gpu)、处理内核或其他处理硬件,或者可以包括处理器的组合。处理器1110控制系统1100的总体操作,并且可以是或包括一个或多个可编程通用或专用微处理器、数字信号处理器(dsp)、可编程控制器、专用集成电路(asic)、可编程逻辑器件(pld)等,或这样的器件的组合。
83.在一个示例中,系统1100包括耦合到处理器1110的接口1112,接口1112可以代表用于需要更高带宽连接的系统部件(例如存储器子系统1120或图形界面部件1140或加速器1142)的更高速度的接口或高吞吐量接口。接口1112代表可以是独立部件或集成到处理器管芯上的接口电路。在存在的情况下,图形接口440对接到图形部件,以便向系统1100的用户提供视觉显示。在一个示例中,图形接口1140可以驱动向用户提供输出的高清晰度(hd)显示器。高清晰度可以指像素密度大约为100ppi(每英寸像素数)或更大的显示器,并且可以包括诸如全hd(例如,1080p)、视网膜显示器、4k(超高清晰度或uhd)等格式。在一个示例中,显示器可以包括触摸屏显示器。在一个示例中,图形接口1140基于存储器1130中存储的数据或基于处理器1110执行的操作或基于两者,生成显示。在一个示例中,图形接口1140基
于存储器1130中存储的数据或基于处理器1110执行的操作或基于两者,生成显示。
84.加速器1142可以是处理器1110可访问或使用的固定功能卸载引擎。例如,加速器1142中的加速器可以提供压缩(dc)能力、加解密服务(例如公共密钥加密(pke)、密文、散列/认证能力、解密)或其他能力或服务。在一些实施例中,另外地或替代地,加速器1142中的加速器提供如本文所述的字段选择控制器能力。在一些情况下,加速器1142可以被集成到cpu插座中(例如,通往主板或电路板的连接器,主板或电路板包括cpu并且提供与cpu的电接口)。例如,加速器1142可以包括单核或多核处理器、图形处理单元、逻辑执行单元、单级或多级高速缓存、可用于独立执行程序或线程的功能单元、专用集成电路(asic)、神经网络处理器(nnp)、可编程控制逻辑单元和可编程处理元件,例如现场可编程门阵列(fpga)。加速器1142可以提供多个神经网络、cpu、处理器内核、通用图形处理单元、或者可供人工智能(ai)或机器学习(ml)模型使用的图形处理单元。例如,ai模型可以使用或包括以下中的任一种或组合:强化学习方案、q学习方案、深度q学习或异步优势执行器-评价器算法(a3c)、组合神经网络、回归组合神经网络或其他ai或ml模型。可以使多个神经网络、处理器内核或图形处理单元供ai或ml模型使用。
85.存储器子系统1120代表系统1100的主存储器,并且为要由处理器1110执行的代码或要在执行例程时使用的数据值提供存储。存储器子系统1120可以包括一个或多个存储器器件1130,例如只读存储器(rom)、闪存存储器、随机存取存储器(ram)的一个或多个变体(例如dram)、或其他存储器器件、或这样的器件的组合。存储器1130存储并且托管操作系统(os)1132等,以提供用于在系统1100中执行指令的软件平台。此外,应用程序1134可以在来自存储器1130的os 1132的软件平台上被执行。应用程序1134代表具有其自身的操作逻辑以进行一个或多个功能的执行的程序。过程1136代表向os 1132或一个或多个应用程序1134或组合提供辅助功能的代理或例程。os 1132、应用程序1134和过程1136提供软件逻辑以为系统1100提供功能。在一个示例中,存储器子系统1120包括存储器控制器1122,存储器控制器1122是生成命令并且向存储器1130发出命令的存储器控制器。应当理解,存储器控制器1122可以是处理器1110的物理部分或接口1112的物理部分。例如,存储器控制器1122可以是集成到具有处理器1110的电路上的集成存储器控制器。
86.尽管未具体示出,但应当理解,系统1100可以在器件之间包括一个或多个总线或总线系统,例如存储器总线、图形总线、接口总线等。总线或其他信号线路可以将部件通信地或电气地耦合在一起,或者将部件通信地和电气地耦合。总线可以包括物理通信线路、点对点连接部、桥接器、适配器、控制器或其他电路或组合。总线可以包括例如系统总线、外围部件互连(pci)总线、超级传输或行业标准架构(isa)总线、小型计算机系统接口(scsi)总线、通用串行总线(usb)或电气电子工程师协会(ieee)标准1394总线(firewire)中的一种或多种。
87.在一个示例中,系统1100包括可以耦合到接口1112的接口1114。在一个示例中,接口1114代表包括独立部件和集成电路的接口电路。在一个示例中,多个用户接口部件或外围部件或两者耦合到接口1114。网络接口1150为系统1100提供通过一个或多个网络与远程装置(例如,服务器或其他计算装置)通信的能力。网络接口1150可以包括以太网适配器、无线互连部件、蜂窝网络互连部件、usb(通用串行总线)或其他基于有线或无线标准的接口或专用接口。网络接口1150可以向处在同一数据中心或机架中的装置或远程装置传输数据,
这可以包括发送存储在存储器中的数据。网络接口1150可以从远程装置接收数据,这可以包括将所接收的数据存储到存储器中。可以结合网络接口1150、处理器1110和存储器子系统1120使用各种实施例。
88.在一个示例中,系统1100包括一个或多个输入/输出(i/o)接口1160。i/o接口1160可以包括一个或多个接口部件,用户通过所述一个或多个接口部件与系统1100交互(例如,音频、数字字母混合、触觉/触摸或其他交互)。外围设备接口1170可以包括上文未明确提到的任何硬件接口。外围设备通常是指从属连接到系统1100的装置。从属连接是这样的连接:其中,系统1100提供操作执行所在的、且用户与之交互的软件平台或硬件平台或两者。
89.在一个示例中,系统1100包括以非易失性方式存储数据的存储子系统1180。在一个示例中,在某些系统实施方式中,存储子系统1180的至少某些部件可以与存储器子系统1120的部件重叠。存储子系统1180包括(一个或多个)存储装置1184,存储装置1184可以是或包括用于以非易失性方式存储大量数据的任何常规介质,例如一种或多种基于磁性、固态或光学的盘、或组合。存储装置1184以永久性状态保存代码或指令和数据1186(即,即使系统1100的电源中断,值也会被保留)。存储装置1184可以被一般性认为是“存储器”,尽管存储器1130典型地是向处理器1110提供指令的执行或操作存储器。尽管存储装置1184是非易失性的,但存储器1130可以包括易失性存储器(即,如果中断系统1100的电源,数据的值或状态是不确定的)。在一个示例中,存储子系统1180包括与存储装置1184对接的控制器1182。在一个示例中,控制器1182是接口1114或处理器1110的物理部分,或者可以包括位于处理器1110和接口1114两者中的电路或逻辑单元。
90.易失性存储器是如果器件断电则其状态(并且因此存储在其中的数据)不确定的存储器。动态易失性存储器需要刷新存储在器件中的数据以保持状态。动态易失性存储器的一个示例包括dram(动态随机存取存储器)或一些变体,例如同步dram(sdram)。本文所述的存储器子系统可以兼容若干种存储器技术,例如ddr3(双倍数据速率版本3,jedec(电子器件工程联合会)于2007年6月27日初次发布)、ddr4(ddr版本4,jedec于2012年9月发布的初始规范)、ddr4e(ddr版本4)、lpddr3(低功耗ddr版本3,jesd209-3b,jedec,2013年8月)、lpddr4(lpddr版本4,jesd209-4,jedec于2014年8月初次发布)、wio2(宽带输入/输出版本2,jedec于2014年8月初次发布的jesd229-2)、hbm(高带宽存储器,jesd325,jedec于2013年10月初次发布)、lpddr5(jedec当前讨论中)、hbm2(hbm版本2,jedec当前讨论中),或其他存储器技术或组合,以及基于这样的规范的衍生物或扩展的技术。jedec标准可在www.jedec.org获取。
91.非易失性存储(nvm)器件是即使中断器件电力其状态也是确定的存储器。在一个实施例中,nvm器件可以包括块可寻址存储器器件(例如nand技术),或更一般地,多阈值电平nand闪存存储器(例如,单电平单元(“slc”)、多电平单元(“mlc”)、四电平单元(“qlc”)、三电平单元(“tlc”)或某种其他nand)。nvm器件也可以包括字节可寻址原地写入三维交叉点存储器器件或其他字节可寻址原地写入nvm器件(也称为永久性存储器),例如单电平或多电平相变存储器(pcm)或具有开关的相变存储器(pcms)、使用硫属元素化物相变材料(例如,硫属元素化物玻璃)的nvm器件、包括金属氧化物基体、氧空位基体的电阻式存储器以及导电桥随机存取存储器(cb-ram)、纳米线存储器、铁电随机存取存储器(feram,fram)、结合了忆阻器技术的磁阻随机存取存储器(mram)、自旋转移矩(stt)-mram、基于自旋电子磁结
存储器的器件、基于磁隧道结(mtj)的器件、基于dw(磁畴壁)和sot(自旋轨道转移)的器件、基于晶闸管的存储器器件、或以上任何器件的组合、或其他存储器。
92.电源(未示出)向系统100的部件提供电力。更具体而言,电源典型地对接到系统1100中的一个或多个供电装置,以向系统1100的部件提供电力。在一个示例中,电源包括插到墙壁插座中的ac到dc(交流到直流)适配器。这样的ac电力可以是可再生能源(例如,太阳能)电源。在一个示例中,电源包括dc电源,例如外部ac到dc转换器。在一个示例中,电源或供电装置包括无线充电硬件,以通过接近充电场来充电。在一个示例中,电源可以包括内部电池、交流供电装置、基于运动的供电装置、太阳能供电装置、或燃料电池电源。
93.在示例中,可以使用处理器、存储器、存储装置、网络接口和其他部件的互连计算雪橇(sled)来实施系统1100。可以使用高速互连,例如至少与以太网、pcie、英特尔快速路径互连(qpi)、英特尔超路径互连(upi)、英特尔片上系统织构(iosf)、全路径(omnipath)、计算快速链接(cxl)、超传输、高速织构、nvlink、高级微控制器总线体系结构(amba)互连、opencapi、gen-z、ccix、3gpp长期演进(lte)(4g)、3gpp 5g及其变体兼容的高速互连。通信可以与远程直接存储器存取(rdma)、无线宽带、因特网广域rdma协议(iwarp)、快速udp因特网连接(quic)或聚合以太网上的rdma(roce)兼容。可以使用虚拟化存储节点,使用诸如织构上nvme(nvme-of)之类的协议来存储和访问数据和日志。
94.可以在各种类型的计算和联网设备(例如,交换机、路由器、机架和刀片式服务器,例如数据中心和/或服务器群环境中采用的那些)中实施本文的实施例。数据中心和服务器群中使用的服务器包括阵列化服务器配置,例如,基于机架的服务器或刀片式服务器。这些服务器经由各种网络设施通信互连,例如将服务器集合划分成在lan之间具有适当交换和路由设施的局域网(lan)以形成私有内部网。例如,云托管设施典型地可以采用具有多个服务器的大型数据中心。刀片包括被配置为执行服务器类型的功能的独立计算平台,换言之,“卡上服务器”。因此,每个刀片包括常规服务器公共的部件,包括主印刷电路板(主板),其提供用于耦合适当的集成电路(ic)和安装到板上的其他部件的内部线路(即,总线)。
95.图12绘示了一种包括多个计算机架1202的环境1200,每个计算机架1202包括架顶式(tor)交换机1204、pod管理器1206和多个池聚系统抽屉。各个实施例都可以使用用于远程或本地存储器擦除、编程或读取操作的实施例。一般来讲,池聚系统抽屉可以包括池聚计算抽屉和池聚存储抽屉。任选地,池聚系统抽屉还可以包括池聚存储器抽屉和池聚输入/输出(i/o)抽屉。在图示的实施例中,池聚系统抽屉包括池聚计算机抽屉1208和atom
tm
池聚计算抽屉1210、池聚存储抽屉1212、池聚存储器抽屉1214和池聚i/o抽屉1216。每个池聚系统抽屉都经由高速链路1218,例如40吉位/秒(gb/s)或100gb/s以太网链路或100 gb/s硅光子(siph)光学链路连接到tor交换机1204。在一个实施例中,高速链路1218包括800gb/s的siph光学链路。
96.多个计算机架1200可以经由其tor交换机1204进行互连(例如,连接到pod级交换机或数据中心交换机),如通往网络1220的连接所示。在一些实施例中,将计算机架1202的组作为独立的pod经由一个或多个pod管理器1206管理。在一个实施例中,使用单个pod管理器管理pod中的所有机架。或者,可以使用分布式pod管理器进行pod管理操作。
97.环境1200还包括用于管理环境的各方面的管理接口822。这包括管理机架配置,其
中对应的参数被存储为机架配置数据824。
98.可以使用硬件元件、软件元件或两者的组合来实现各种示例。在一些示例中,硬件元件可以包括装置、部件、处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、asic、pld、dsp、fpga、存储单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。在一些示例中,软件元件可以包括软件部件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、流程、软件界面、api、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任意组合。确定是否使用硬件元件和/或软件元件实施示例可以根据任意数量的因素而变化,例如期望的计算速率、功率水平、热公差、处理循环预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束,具体期望因素取决于给定的实施方式。要指出的是,在本文中,硬件、固件和/或软件元件可以被统称为或单独称为“模块”、“逻辑单元”、“电路”或“电路系统”。处理器可以是硬件状态机、数字控制逻辑单元、中央处理单元或任何硬件、固件和/或软件元件中的一种或多种组合。
99.可以使用或作为制品或至少一个计算机可读介质来实施一些示例。计算机可读介质可以包括用于存储逻辑单元的非暂态存储介质。在一些示例中,该非暂态存储介质可以包括一种或多种类型的能够存储电子数据的计算机可读存储介质,包括易失性存储器或非暂态存储器、可移除或不可移除存储器、可擦除或不可擦除存储器、可写入或可重新写入的存储器等。在一些示例中,逻辑单元可以包括各种软件元件,例如软件部件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、流程、软件界面、api、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任意组合。
100.根据一些示例,一种计算机可读介质可以包括用于存储或保持指令的非暂态存储介质,所述指令在被机器、计算装置或系统执行时,使得所述机器、计算装置或系统执行根据所述示例的方法和/或操作。指令可以包括任何适当类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码等。可以根据预定义计算机语言、方式或句法实施指令,以用于指示机器、计算装置或系统执行特定功能。指令可以使用任何适当的高级、低级、面向对象的、视觉、编译的和/或解释的编程语言来实施。
101.可以由存储在至少一种机器可读介质上的表示性指令来实施至少一个示例的一个或多个方面,该指令表示处理器之内的各种逻辑单元,其在由机器、计算装置或系统读取时,使得所述机器、计算装置或系统制造用于执行本文描述的技术的逻辑单元。这样的表示(称为“ip内核”)可以被存储在有形机器可读介质上并且被供应给各种客户或制造设施,以加载到实际制造逻辑单元或处理器的制造机器中。
102.出现的短语“一个示例”或“示例”不一定全是指同一示例或实施例。本文描述的任何方面可以与本文描述的任何其他方面或类似方面组合,无论这些方面是否是结合同一幅图或元件描述的。划分、省略或包括附图中绘示的块功能并不暗示用于实施这些功能的硬件部件、电路、软件和/或元件必然在实施例中被划分、省略或包括。
103.可以使用表述“耦合”和“连接”连同其衍生词来描述一些示例。这些术语未必意图作为彼此的同义词。例如,使用术语“连接”和/或“耦合”的描述可以表示两个或更多元件彼此直接物理或电接触。然而,术语“耦合”还可以表示两个或更多个元件彼此不直接接触,但
仍然彼此合作或交互。
104.本文的术语“第一”、“第二”等不表示任何次序、数量或重要性,而是用于将一个元件与另一个元件区分开。这里的术语“一”和“一个”不表示对数量的限制,而是表示存在至少一个所提到的项目。这里针对信号使用的术语“使
……
有效”表示信号的一种状态,其中信号是活动的,并且可以通过向信号施加任何逻辑电平,逻辑0或逻辑1来实现这一点。术语“以后”或“之后”可以指在某个其他事件或某些其他事件紧后面或后面。根据可供选择的实施例也可以执行其他步骤序列。此外,可以根据具体应用添加或去除附加步骤。可以使用变化的任意组合,并且受益于本公开的本领域普通技术人员将会理解其很多变化、修改和替代实施例。
105.除非明确做出其他表述,否则诸如短语“x、y或z中的至少一个”之类的析取语言在本语境中被理解为一般用于代表:项目、项等可以是x、y或z中的任一者或其任意组合(例如,x、y和/或z)。于是,这样的析取语言并且非一般意在,且不应暗示特定实施例要求至少一个x、至少一个y或至少一个z均存在。此外,除非明确做出其他表述,否则诸如短语“x、y和z中的至少一个”之类的连接语言也应当被理解为表示x、y、z或其任意组合,包括“x、y和/或z”。
106.下文提供了本文公开的装置、系统和方法的例示性示例。装置、系统和方法的实施例可以包括下文所述示例的任何一个或多个及其任意组合。
107.示例1包括一种存储器控制器,该存储器控制器包括至存储器阵列的接口、以及控制器,控制器用于:在存储器阵列区域中执行存储器访问和验证操作,其中执行存储器访问和验证操作包括:在施加存储器访问信号之前,确定存储器阵列区域中的有缺陷的位线的数量;确定存储器访问失败的数量;以及基于所确定的存储器访问失败数量减去存储器阵列区域中的所确定的有缺陷的位线的数量与接受的位线失败的阈值数量的比较,判断存储器访问操作是否有缺陷。
108.示例2包括任何示例,其中存储器访问和验证操作包括以下中的一者或多者:擦除和擦除验证或编程和编程验证,并且其中存储器访问信号包括非零擦除或编程电压信号。
109.示例3包括任何示例,其中确定存储器阵列区域中的有缺陷的位线的数量包括确定开路的位线的数量。
110.示例4包括任何示例,其中确定存储器阵列区域中的有缺陷的位线的数量包括:向该区域的字线施加高于单元的最大阈值电压的电压;以及确定被读取为逻辑零的位线。
111.示例5包括任何示例,其中确定存储器阵列区域中的有缺陷的位线的数量包括确定短接的位线的数量。
112.示例6包括任何示例,其中确定短接的位线的数量包括确定至少短接到相邻的位线或短接到选择栅极的位线。
113.示例7包括任何示例,其中在施加存储器访问信号之前,确定存储器阵列区域中的有缺陷的位线的数量包括:识别短接的位线;以及在施加编程信号之前禁止短接的位线。
114.示例8包括任何示例,其中存储器访问信号包括编程信号,并且其中控制器用于基于编程电压幅值确定编程信号的起始幅值,该编程电压幅值基于存储器阵列区域中的所确定的有缺陷的位线的数量从编程验证获得通过的位线的数量。
115.示例9包括任何示例,并且包括耦合到接口的存储器阵列,该存储器阵列包括以下
中的一者或多者:单电平单元(slc)nand存储装置、多电平单元(mlc)nand存储装置、三电平单元(tlc)nand存储装置、四电平单元(qlc)存储装置、使用硫属元素化物相变材料的存储器器件、nor闪存存储器、单电平或多电平相变存储器(pcm)、电阻式存储器、纳米线存储器、铁电晶体管随机存取存储器(fetram)、结合了忆阻器技术的磁阻随机存取存储器(mram)、自旋转移矩mram(stt-mram)、随机存取存储器(ram)、动态ram(d-ram)、双倍数据率同步动态ram(ddr sdram)、静态随机存取存储器(sram)、晶闸管ram(t-ram)或零电容器ram(z-ram)。
116.示例10包括任何示例,其中控制器在存储器阵列区域的读取操作期间,将读取结果识别为弱,以便针对使用开路或短路的位线的读取操作进行软位读取校正。
117.示例11包括一种方法,包括:在存储器区域访问操作期间,确定存储器区域中的有缺陷的位线的数量;执行存储器区域访问验证操作,以便进行存储器区域访问操作,其中存储器区域访问验证操作包括基于存储器区域中的有缺陷的位线的数量,确定针对所施加访问电压的失败的位线的数量;以及在存储器区域访问包括擦除操作时,基于失败的位线的数量减去有缺陷的位线(的数量)与可接受失败的位线的阈值水平的比较,将擦除操作识别为失败或成功。
118.示例12包括任何示例,其中在存储器区域访问操作包括编程操作时,执行:确定短接的位线;禁止被识别为短接的位线;以及执行编程和验证操作。
119.示例13包括任何示例,其中确定存储器区域中的有缺陷的位线的数量包括:通过向该区域的字线施加高于单元的最大阈值电压的电压并确定被读取为逻辑零的位线来确定开路的位线的数量。
120.示例14包括任何示例,其中确定存储器区域中的有缺陷的位线的数量包括通过确定短接到相邻的位线或短接到选择栅极的位线来确定短接的位线的数量。
121.示例15包括任何示例,并且包括:在存储器区域的读取操作期间,将读取结果识别为弱,以便针对使用开路或短接的位线的读取操作进行软位读取校正。
122.示例16包括任何示例,其中存储器区域包括以下中的一者或多者的区域:单电平单元(slc)nand存储装置、多电平单元(mlc)nand存储装置、三电平单元(tlc)nand存储装置、四电平单元(qlc)存储装置、使用硫属元素化物相变材料的存储器器件、nor闪存存储器、单电平或多电平相变存储器(pcm)、电阻式存储器、纳米线存储器、铁电晶体管随机存取存储器(fetram)、结合了忆阻器技术的磁阻随机存取存储器(mram)、自旋转移矩mram(stt-mram)、随机存取存储器(ram)、动态ram(d-ram)、双倍数据率同步动态ram(ddr sdram)、静态随机存取存储器(sram)、晶闸管ram(t-ram)或零电容器ram(z-ram)。
123.示例17包括一种系统,包括:包括处理器的计算平台;存储器器件;以及通信地耦合到存储器器件和计算平台的存储器控制器,其中存储器控制器用于:接收要访问存储器器件的区域的请求,该请求用于访问存储器器件的区域以使得存储器控制器确定有缺陷的位线;执行存储器访问操作;并且执行存储器访问操作的验证,其中执行存储器访问操作的验证包括使用有缺陷的位线的数量来确定存储器访问操作是成功还是失败。
124.示例18包括任何示例,其中存储器访问操作包括擦除或编程操作。
125.示例19包括任何示例,其中存储器控制器用于接收执行读取操作的命令,其中为了执行读取操作,存储器控制器用于执行读取操作并且将与有缺陷的位线相关联的读取数
据识别为弱结果,以便进行软位读取校正。
126.示例20包括任何示例,其中存储器器件包括以下中的一者或多者:单电平单元(slc)nand存储装置、多电平单元(mlc)nand存储装置、三电平单元(tlc)nand存储装置、四电平单元(qlc)存储装置、使用硫属元素化物相变材料的存储器器件、nor闪存存储器、单电平或多电平相变存储器(pcm)、电阻式存储器、纳米线存储器、铁电晶体管随机存取存储器(fetram)、结合了忆阻器技术的磁阻随机存取存储器(mram)、自旋转移矩mram(stt-mram)、随机存取存储器(ram)、动态ram(d-ram)、双倍数据率同步动态ram(ddr sdram)、静态随机存取存储器(sram)、晶闸管ram(t-ram)或零电容器ram(z-ram)。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜