使用解码数据的软位参考电平校准
背景技术:1.便携式消费电子设备需求的强劲增长推动了对高容量存储设备的需求。非易失性半导体存储器设备(在本文中也称为“非易失性存储器系统”)诸如闪存存储卡广泛用于满足对数字信息存储和交换的日益增长的需求。它们的便携性、多功能性和坚固耐用的设计以及它们的高可靠性和大容量,使得此类存储器设备理想地用于多种主机电子设备中,包括例如数字相机、数字音乐播放器、视频游戏控制器、pda、蜂窝电话、台式计算机、膝上型计算机以及笔记本电脑。通常,主机电子设备向非易失性存储器系统提供电力。
2.在单个非易失性存储器单元中存储多个信息位通常包括将位的序列映射到非易失性存储器单元的状态。例如,位“110”的第一序列可以对应于非易失性存储器单元的第一状态并且位“010”的第二序列可以对应于非易失性存储器单元的第二状态。在确定位的序列要存储到特定非易失性存储器单元中之后,可以将非易失性存储器单元编程到对应于位的该序列的状态。
3.一旦存储器设备中的存储器单元已经被编程,可以通过感测存储器单元的编程状态从存储器单元读取数据。在一种技术中,在一个或多个“硬位参考电压”感测存储器单元。硬位参考电压用于区分两种状态。然而,由于一个或多个因素,感测到的状态有时可以不同于写入的编程状态。错误检测和校正解码可用于检测和校正由不匹配写入的已编程状态的感测到的状态产生的数据错误。一些错误校正解码使用仅“硬位”,其从在硬位参考电压的感测导出。
4.可通过使用软位解码数据来实现改善的纠错能力。通过在一组“软位参考电压”感测存储器单元来导出软位。软位可指示针对每个存储器单元的硬位的可靠性。为了说明,软位可与ecc(纠错码)解码一起使用,以增强可能经历存储器单元错误和内部传输错误的非易失性存储器系统中的纠错能力。例如,与仅基于使用硬位的解码方案相比,可通过使用低密度奇偶校验(ldpc)码并包括软位值作为解码器的输入来实现改善的纠错能力。
5.在一些技术中,在每个硬位参考电压的每一侧上存在一个或多个软位参考电压。例如,在略微低于硬位参考电压的电压可能存在软位参考电压,以及在略微高于硬位参考电压的电压可能存在软位参考电压。在一些情况下,在硬位参考电压的每一侧上存在两个软位参考电压。在一些情况下,在硬位参考电压的每一侧上存在三个软位参考电压。
6.然而,错误校正能力取决于软可靠性信息的质量。使用未在正确位置(例如,正确的电压电平)中感测的软位可以降低软可靠性信息的质量并降低其信息性。设定软位阈值的位置是一个权衡。如果软位参考电压太接近硬位参考电压,则许多误差不被标记为低可靠性。另一方面,如果软位参考电压太远离硬位参考电压,则太多正确的位被标记为不可靠。
附图说明
7.类似编号的元件是指不同附图中的共同部件。
8.图1a是连接到主机的存储器系统的一个实施方案的框图。
9.图1b是前端处理器电路的一个实施方案的框图。
10.图2a是后端处理器电路的一个实施方案的框图。
11.图2b是存储器封装件的一个实施方案的框图。
12.图3a是存储器管芯的一个实施方案的功能框图。
13.图3b是集成存储器组件的一个实施方案的功能框图。
14.图3c是集成存储器组件的读/写电路和ecc的一个实施方案的框图。
15.图4a描绘了堆叠在衬底上的集成存储器组件的一个实施方案的侧视图。
16.图4b描绘了堆叠在衬底上的集成存储器组件的一个实施方案的侧视图。
17.图5是描述用于对组织成阵列的存储器单元的nand串进行编程的过程的一个实施方案的流程图。
18.图6a示出了当每个存储器单元存储三位数据时用于存储器阵列的示例性阈值电压分布。
19.图6b描绘了其中每个存储器单元存储四位数据的阈值电压分布。
20.图7a描绘了其中软位阈值可能被设置为太接近硬位阈值的示例。
21.图7b描绘了其中软位阈值可能被设置为太远离硬位阈值的示例。
22.图8a描绘了误码率(ber)与误块率(bler)的曲线。
23.图8b描绘了针对软位参考电平的不同位置的ber与bler的曲线。
24.图9描绘了校准软位参考电平的过程的一个实施方案的流程图。
25.图10描绘了具有与硬位参考电平相关联的候选软位参考电平的阈值分布。
26.图11是其中基于信道跃迁矩阵计算互信息的过程的一个实施方案的流程图。
27.图12a至图12e示出了针对五个不同的候选软位参考电平的仓计数的示例。
28.图13是其中基于llr计算互信息的过程的一个实施方案的流程图。
29.图14是在一组减小的候选软位参考电压感测以及确定互信息的过程的一个实施方案的流程图。
30.图15描绘了具有针对与硬位参考电平相关联的候选软位参考电平的互信息的阈值分布。
31.图16描绘了具有相关联的软位和硬位参考电压的阈值分布。
32.图17是模拟软位读取的过程的实施方案的流程图。
33.图18示出了来自发送到存储器控制器的页面的两个阈值分布和信息,以便说明软位读取的数字模拟的实施方案。
34.图19是描绘在校准软位参考电平期间传输数据的过程的一个实施方案的流程图。
具体实施方式
35.现在将参考附图来描述本发明的技术,在各实施方案中,这些附图涉及校准非易失性存储器系统中的软位参考电平。校准软位参考电平意味着校准硬位参考电平与相关联的软位参考电平之间的间距。硬位参考电平与软位参考电平之间的间距在本文中可以称为“软位δ”。在本文中,将提供许多实施例,其中硬位和软位参考电平是参考电压电平,但是参考电平可以是其他物理参数,诸如电流电平。校准软位参考电平提高了从在软位参考电平感测非易失性存储器单元导出的可靠性信息(例如,软位)的质量。因此,改善了基于软位
的错误校正。
36.在一个实施方案中,基于编程到非易失性存储器单元中的数据来校准软位参考电平(或软位δ)。当校准软位参考电平时,从存储器单元的组读取编码数据。对该编码数据进行解码和错误校正。因此,复原编程到该存储器单元中的原始数据。在候选软位参考电平和可能的其他电平感测存储器单元的组,其生成数组数据。候选软位参考电平在相关联的硬位参考电平的一侧,并且接近相关联的硬位参考电平。需注意,感测也可以在其他参考电平发生,诸如硬位参考电平和其他软位参考电平,以便生成数据。结果包括针对每个候选软位参考电平的数据。针对每个候选软位参考电平,确定原始编程数据与针对该候选软位参考电平的数据之间的互信息。如本文所用的术语互信息常见于概率和信息理论中,其中两个变量的互信息是两个变量之间的相互依赖的量度。互信息用作来自在候选软位参考电平读取的软信息将有助于解码数据的程度的良好量度。在一个实施方案中,选择数个候选中具有最高互信息的软位参考电平作为针对硬位参考电平的一侧的新软位参考电平。以类似的方式,可以确定针对硬位参考电平的另一侧的新软位参考电平。此外,可以确定针对其他硬位参考电平的新的软位参考电平。因此,基于错误校正数据校准软位参考电平提高了可靠性信息(例如,软位)的质量。当读取测试的存储器单元的组以及其他存储器单元时,可以使用这些新软位参考电平。
37.应当理解,本发明可体现为许多不同形式并且不应解释为限于本文所阐述的实施方案。相反,提供了这些实施方案,使得本公开将是周密且完整的,并且将充分地将本发明传达给本领域的技术人员。实际上,本发明旨在覆盖这些实施方案的另选方案、修改和等同物,这些均包括在由所附权利要求书所限定的本发明的范围和实质内。此外,在本发明的以下具体实施方式中,给出了许多具体细节,以便提供对本发明的周密理解。然而,对于本领域的普通技术人员将显而易见的是,本发明可在没有此类具体细节的情况下被实施。
38.图1a至图4b描述了可用于实现本文所公开的软位参考电平校准的实施方案的存储器系统的一个示例。图1a是连接到主机系统120的存储器系统100的一个实施方案的框图。存储器系统100可实现本文所公开的技术。许多不同类型的存储器系统可与本文所公开的技术一起使用。一个示例性存储器系统为固态驱动器(“ssd”);然而,也可以使用其他类型的存储器系统。存储器系统100包括存储器控制器102、用于存储数据的存储器封装件104和本地存储器(例如,dram/reram)106。存储器控制器102包括前端处理器电路(fep)110和一个或多个后端处理器电路(bep)112。在一个实施方案中,fep电路110在asic上实现。在一个实施方案中,每个bep电路112在单独asic上实现。用于bep电路112和fep电路110中的每一者的asic在同一半导体上实现,使得存储器控制器102被制造为片上系统(“soc”)。fep 110和bep 112均包括其本身的处理器。在一个实施方案中,fep 110和bep 112按主从配置运行,其中fep 110是主设备,并且每个bep 112是从设备。例如,fep电路110实现闪存转换层,该闪存转换层执行存储器管理(例如,垃圾收集、损耗均衡等)、逻辑到物理地址转换、与主机的通信、dram(本地易失性存储器)的管理以及ssd(或其他非易失性存储系统)的整体操作的管理。bep电路112根据fep电路110的请求来管理集成存储器组件/管芯中的存储器操作。在一些实施方案中,集成存储器组件被称为存储器封装件。例如,bep电路112可进行读取、擦除和编程过程。另外,bep电路112可执行缓冲器管理,设置fep电路110所需的特定电压电平,执行纠错(ecc),控制到存储器封装的切换模式接口等。在一个实施方案中,每个
bep电路112负责其本身的一组存储器封装。存储器控制器102可以基于存储在存储器封装件104中的存储器单元中的解码数据来执行软位参考校准的实施方案的一部分。在一些实施方案中,存储器控制器解码数据以校正从存储器单元读取的编码数据中的任何错误,从而复原编程到存储器单元中的原始数据。
39.在一个实施方案中,存在多个存储器封装件104。每个存储器封装件104可包括一个或多个存储器管芯。在一个实施方案中,存储器封装件104中的每个存储器管芯利用nand闪存存储器(包括二维nand闪存存储器和/或三维nand闪存存储器)。在其他实施方案中,存储器封装件104可以包括其他类型的存储器;例如,存储器封装件可以包括相变存储器(pcm)存储器。
40.在一个实施方案中,存储器控制器102使用接口130与主机系统120通信,该接口通过pci express(pcie)实现nvm express(nvme)。为了与存储器系统100一起工作,主机系统120包括在总线128上通信的主机处理器122、主机存储器124和pcie接口126。主机存储器124是主机的物理存储器,并且可以是dram、sram、非易失性存储器或另一类型的存储装置。主机系统120在存储器系统100外部并且分开。在一个实施方案中,存储器系统100嵌入在主机系统120中。
41.图1b是fep电路110的一个实施方案的框图。图1b示出了与主机系统120通信的pcie接口150,以及与该pcie接口通信的主机处理器152。主机处理器152可以是本领域中已知的适于实现的任何类型的处理器。主机处理器152与片上网络(noc)154通信。noc是集成电路上的通信子系统,通常在soc中的核心之间。noc可跨越同步和异步时钟域,或者使用非时钟的异步逻辑。noc技术将网络理论和方法应用于片上通信,并且与常规总线和交叉开关互连相比带来了显著的改善。与其他设计相比,noc提高了soc的可扩展性以及复杂soc的电源效率。noc的导线和链路由许多信号共享。由于noc中的所有链路可在不同的数据分组上同时运行,因此实现了高度并行。因此,随着集成子系统的复杂性不断增大,与先前的通信架构(例如,专用的点对点信号线、共享总线或具有桥的分段总线)相比,noc提供增强的性能(诸如吞吐量)和可扩展性。连接到noc 154并且与noc 154通信的是存储器处理器156、sram 160和dram控制器162。dram控制器162用于操作dram(例如,dram 106)并且与该dram通信。sram 160是由存储器处理器156使用的本地ram存储器。存储器处理器156用于运行fep电路并且执行各种存储器操作。与noc通信的还有两个pcie接口164和166。在图1b的实施方案中,存储器控制器102包括两个bep电路112;因此,存在两个pcie接口164/166。每个pcie接口与bep电路112中的一个通信。在其他实施方案中,可存在多于或少于两个bep电路112;因此,可存在多于两个pcie接口。
42.图2a是bep电路112的一个实施方案的框图。图2a示出了用于与fep电路110通信(例如,与图1b的pcie接口164和166中的一者通信)的pcie接口200。pcie接口200与两个noc 202和204通信。在一个实施方案中,两个noc可被组合成一个大的noc。每个noc(202/204)经由xor引擎(224/254)、ecc引擎(226/256)和读取参考电压校准引擎(225/255)连接到sram(230/260)、缓冲器(232/262)、处理器(220/250)和数据路径控制器(222/252)。在一个实施方案中,读取参考电压校准引擎(225/255)被配置为校准软位参考电压。读取参考电压校准引擎还可以校准硬位参考电压。不需要在存储器控制器102中校准参考电压,诸如软位参考电压。在一些实施方案中,在存储器封装件104内校准软位参考电压。
43.ecc引擎226/256用于执行纠错,如本领域所知。在本文中,ecc引擎226/256可被称为控制器ecc引擎。在一些实施方案中,ecc引擎226/256用于在软位参考电压校准期间解码从存储器封装件104中的存储器单元读取的编码数据。ecc引擎226/256校正编码数据中的任何错误,从而复原编程到存储器单元中的原始数据。在一些实施方案中,存储器控制器102向存储器封装件104发送该经复原的数据,该存储器封装件在校准软位参考电平时使用经复原的数据。
44.xor引擎224/254用于对数据执行xor,使得可在存在编程错误的情况下以可恢复的方式组合和存储数据。数据路径控制器222连接到存储器接口228,以用于经由四个信道与集成存储器组件通信。因此,顶部noc202与用于与集成存储器组件通信的四个信道的存储器接口228相关联,并且底部noc 204与用于与集成存储器组件通信的四个附加信道的存储器接口258相关联。在一个实施方案中,每个存储器接口228/258都包括四个切换模式接口(tm接口)、四个缓冲器和四个调度器。对于信道中的每一个存在一个调度器、缓冲器和tm接口。处理器可以是本领域中已知的任何标准处理器。数据路径控制器222/252可以是处理器、fpga、微处理器、或其他类型的控制器。xor引擎224/254、ecc引擎226/256和读取参考电压校准引擎(225/255)是被称为硬件加速器的专用硬件电路。在其他实施方案中,xor引擎224/254、ecc引擎226/256可在软件中实现。调度器、缓冲器和tm接口是硬件电路。在其他实施方案中,存储器接口(用于与存储器管芯通信的电路)可以为与图2a所描绘不同的结构。另外,具有与图1b和图2a不同的结构的控制器也可以与本文描述的技术一起使用。
45.图2b是包括连接到存储器总线(数据线和芯片使能线)322的多个存储器管芯300的存储器封装件104的一个实施方案的框图。存储器总线322连接到切换模式接口228以用于与bep电路112的tm接口通信(参见例如图2a)。在一些实施方案中,存储器封装件可以包括连接到存储器总线和tm接口的小控制器。存储器封装件可以具有一个或多个存储器管芯。在一个实施方案中,每个存储器封装件包括八个或16个存储器管芯;然而,也可以实现其他数量的存储器管芯。本文描述的技术不限于任何特定数量的存储器管芯。
46.图3a是存储器管芯300的一个实施方案的功能框图。图2b的一个或多个存储器管芯300中的每个管芯都可以实现为图3a的存储器管芯300。图3a中描绘的部件为电路。在一个实施方案中,每个存储器管芯300包括存储器结构326、控制电路310、读/写电路328和解码器324/332,所有这些都是电路。存储器结构326能够经由行解码器324由字线来寻址,并且经由列解码器332由位线来寻址。读/写电路328包括多个感测块350(该多个感测块包括sb1,sb2,...,sbp(感测电路))并且允许多个存储器单元中的一个(或多个)页面的数据被并行读取或并行编程。在一个实施方案中,每个感测块都包括感测放大器和连接到位线的一组锁存器。锁存器存储要写入的数据和/或已读取的数据。感测块包括位线驱动器。
47.命令和数据经由存储器控制器接口315在存储器控制器102与存储器管芯300之间传输。存储器控制器接口315是用于与存储器控制器102通信的电接口。存储器控制器接口315的示例包括切换模式接口和开放nand闪存接口(onfi)。也可以使用其他i/o接口。例如,存储器控制器接口315可实现切换模式接口,该切换模式接口连接到存储器控制器102的存储器接口228/258的切换模式接口。在一个实施方案中,存储器控制器接口315包括连接到通信信道322(在本文中也称为存储器总线)的一组输入和/或输出(i/o)引脚。在一个实施方案中,通信信道322作为切换模式接口的一部分连接到存储器控制器102。
48.控制电路310与读/写电路328协作以在存储器结构326上执行存储器操作(例如,写入、读取、擦除等)。在一个实施方案中,控制电路310包括状态机312、片上地址解码器314、功率控制模块316、存储器控制器接口315、存储区318、ecc引擎330和软位参考电压校准334。
49.软位参考电压校准334执行一些或全部功能以校准软位参考电压334。在一些实施方案中,一些或全部软位参考电压校准334集成到状态机312中。在一个实施方案中,软位参考电压校准334能够计算编程到存储器结构中的数据与在候选软位参考电平感测到的数据之间的互信息。在一个实施方案中,选择最终软位参考电平以使互信息最大化。使互信息最大化导致最终软位参考电平,该最终软位参考电平提供最有用信息,用于解码存储在存储器结构326中的数据。
50.ecc引擎330是任选的,并且可以用于解码编程到存储器结构326中的数据。以此方式,可以校正数据中的任何错误以便复原编程到存储器结构中的原始数据。当校准软位参考电平时,可以使用经复原的原始数据。如上所述,ecc引擎330是任选的。在软位参考电压校准的一些实施方案中,存储器管芯300向存储器控制器102发送编码数据进行解码。然后,存储器控制器102可以基于错误校正数据校准软位参考电平,或者可以向存储器管芯300发送经复原的数据,使得存储器管芯(例如,软位参考电压校准334)可以使用错误校正数据来校准软位参考电平。
51.状态机312提供存储器操作的管芯级控制。在一个实施方案中,状态机312可由软件编程。在其他实施方案中,状态机312不使用软件并且完全地在硬件(例如,电子电路)中实现。在一些实施方案中,状态机312可以被微控制器或微处理器替换。在一个实施方案中,控制电路310包括缓冲器,诸如寄存器、rom熔丝和用于存储默认值(诸如基极电压和其他参数)的其他存储设备。默认值和其他参数可存储在存储器结构326的区域中(例如,结构参数存储装置326a)。
52.片上地址解码器314提供控制器102所用的地址和解码器324和332所用的硬件地址之间的地址接口。功率控制模块316控制在存储器操作期间提供给字线和位线的功率和电压。功率控制模块316可以包括用于产生电压的充电泵。
53.存储区318可用于存储用于操作存储器结构326的参数。存储区318可包括易失性或非易失性存储器。在一些实施方案中,参数包括软位参考电平。参数还可以包括硬位参考电平。存储器结构326具有存储区326a,该存储区也可包含用于操作存储器结构326的参数的副本。在一些实施方案中,当存储器管芯300通电时,参数从存储区326a复制到存储区318。
54.在一个实施方案中,控制电路310单独地或与读/写电路328和解码器324/332相结合地被配置为连接到存储器结构326。控制电路310单独地或与读/写电路328和解码器324/332相结合地是执行下面在流程图中描述的功能的一个或多个控制电路的一个示例。在一个实施方案中,包括存储器控制器102和控制电路310的一个或多个控制电路执行下面在流程图中描述的功能。在另一个实施方案中,一个或多个控制电路单独地或与存储器控制器102相结合地包括状态机312(和/或微控制器和/或微处理器)。在另一个替代方案中,一个或多个控制电路包括存储器控制器102、控制电路310、读/写电路328和解码器324/332,它们执行下面在流程图中描述的功能。如本文所用的术语装置可包括但不限于存储器管芯
300、存储器封装件104、存储器系统100或包括存储器系统100的主机系统120。
55.在一个实施方案中,存储器结构326包括非易失性存储器单元的单片三维存储器阵列,其中多个存储器级形成在单个衬底诸如晶圆上方。存储器结构可以包括在存储器单元阵列的一个或多个物理层中单片地形成的任何类型的非易失性存储器,其具有设置在硅(或其他类型)衬底上方的有源区域。在一个示例中,存储器结构326的非易失性存储器单元包括具有电荷捕集材料的竖直nand串,诸如例如在美国专利9,721,662中所述的,该专利全文以引用方式并入本文。在另一个实施方案中,存储器结构326包括非易失性存储器单元的二维存储器阵列。在一个示例中,非易失性存储器单元是利用浮栅的nand闪存存储器单元,诸如例如在美国专利9,082,502中所述的,该专利全文以引用方式并入本文。也可使用其他类型的存储器单元(例如,nor型闪存存储器)。
56.包括在存储器结构326中的存储器阵列架构或存储器单元的确切类型不限于上述示例。许多不同类型的存储器阵列架构或存储器单元技术可用于形成存储器结构326。实现本文提出的要求保护的新实施方案不需要特定的非易失性存储器技术。适用于存储器结构326的存储器单元的技术的其他示例包括reram存储器、磁阻存储器(例如,mram、自旋转移扭矩mram、自旋轨道扭矩mram)、相变存储器(例如,pcm)等。用于存储器结构326的架构的合适技术的示例包括二维阵列、三维阵列、交叉点阵列、堆叠二维阵列、竖直位线阵列等。
57.reram、或pcmram、交叉点存储器的一个示例包括可逆电阻切换元件,其布置在由x线和y线(例如,字线和位线)访问的交叉点阵列中。在另一个实施方案中,存储器单元可包括导电桥存储器元件。导电桥存储器元件也可称为可编程金属化单元。基于固体电解质内的离子的物理重新定位,导电桥存储器元件可用作状态改变元件。在一些情况下,导电桥存储器元件可包括两个固体金属电极,一个是相对惰性的(例如,钨),而另一个是电化学活性的(例如,银或铜),在两个电极之间具有固体电解质的薄膜。随着温度升高,离子的迁移率也增加,这导致导电桥存储器单元的编程阈值降低。因此,导电桥存储器元件可在整个温度范围内具有宽范围的编程阈值。
58.磁阻存储器(mram)通过磁存储元件存储数据。元件由两个铁磁板形成,每个铁磁板可保持磁化,由薄的绝缘层隔开。两个板中的一个是设置为特定极性的永磁体;可以改变另一个板的磁化以匹配外磁场的磁化来存储内存。存储设备由此类存储器单元的网格构建。在用于编程的一个实施方案中,每个存储器单元位于一对写入线之间,该对写入线被布置成彼此成直角,与单元平行,一个在单元上方并且一个在单元下方。当电流通过它们时,产生感应磁场。
59.相变存储器(pcm)利用了硫属化合物玻璃的独特性能。一个实施方案使用ge2sb2te5合金,以通过电加热相变材料来实现相变。编程剂量是不同幅值和/或长度的电脉冲,从而导致相变材料的不同电阻值。
60.本领域普通技术人员将认识到,本文所述的技术不限于单个特定存储器结构,但涵盖了在本文所述和如本领域普通技术人员所理解的技术实质与范围内的许多相关的存储器结构。
61.图3b描绘了集成存储器组件306的一个实施方案的功能框图。集成存储器组件306可用于存储器系统100中的存储器封装件104中。在一个实施方案中,集成存储器组件306包括两种类型的半导体管芯(或更简洁地,“管芯”)。存储器结构管芯302包括存储器结构326。
存储器结构326可包含非易失性存储器单元。控制管芯304包括控制电路310。在一些实施方案中,控制管芯304被配置为连接到存储器结构管芯302中的存储器结构326。例如,控制电路310被配置为连接到存储器结构管芯302中的存储器结构326中的非易失性存储器单元。在一些实施方案中,存储器结构管芯302和控制管芯304接合在一起。控制电路310包括状态机312、地址解码器314、功率控制电路316、存储器控制器接口315、存储区318、软位参考电压校准334和ecc引擎330。上文已经关于图3a描述了控制电路310中的各种元件。
62.控制电路310还包括读/写电路328。在另一个实施方案中,读/写电路328的一部分位于控制管芯304上,并且读/写电路328的一部分位于存储器结构管芯302上。
63.控制管芯304的控制电路310中的组件的任何子组可以被认为是一个或多个控制电路,其可以执行下面在流程图中描述的功能。在另一个替代方案中,一个或多个控制电路包括控制器102以及控制管芯304的控制电路310,它们执行下面在流程图中描述的功能。一个或多个控制电路可以仅包括硬件或者包括硬件和软件(包括固件)的组合。例如,由固件编程的控制器是控制电路的一个示例。一个或多个控制电路可以包括处理器、pga(可编程门阵列)、fpga(现场可编程门阵列)、asic(专用集成电路)、集成电路或其他类型的电路。如本文所用的术语装置可以包括但不限于控制管芯304和集成存储器组件306。
64.通路352是控制电路310中的一个或多个部件和存储器结构管芯302上的存储器结构之间的通路。通路可用于提供或接收信号(例如,电压、电流)。通路包括导电路径。通路可以包括但不限于可以传输或载送电信号的接合焊盘、金属互连件、通孔、晶体管、导电材料和其他材料中的一者或多者。
65.在一个实施方案中,集成存储器组件306包括连接到通信信道322(在本文中也称为存储器总线)的一组输入和/或输出(i/o)引脚。通信信道322被描绘为连接到控制管芯304。通信信道322可连接到存储器结构管芯302和/或控制管芯304中的任一者或两者。在一个实施方案中,通信信道322将存储器控制器102直接连接到控制管芯304。
66.图3b是控制管芯304的读/写电路328和ecc引擎330的一个实施方案的框图。读/写电路328具有感测放大器350和锁存器360。锁存器360可包括数据锁存器360a和奇偶校验锁存器360b。在一个实施方案中,数据锁存器360a存储码字的数据位,而奇偶校验锁存器存储码字的奇偶校验位。不需要存在用于数据位和用于奇偶校验位的特定锁存器。图3c描绘了四组数据锁存器360(1)、360(2)、360(3)、360(4)。每一组可用于存储不同页面的码字。在每个存储器单元存储四位的实施方案中,将四个页面存储在一组存储器单元中。这四个页面可被称为下页面(lp)、中下页面(lmp)、中上页面(ump)和上页面(up)。在另一个实施方案中,感测放大器350位于存储器结构管芯302上,但锁存器360位于控制管芯304上。
67.管芯上ecc引擎330能够对从存储器控制器102接收的数据位进行编码。在一个实施方案中,管芯上ecc引擎330形成码字,每个码字包含数据位和奇偶校验位。在一个实施方案中,存储器控制器102将码字提供给控制管芯304。控制电路310将这些码字存储到存储器结构326中的非易失性存储器单元中。管芯上ecc引擎330解码和错误校正从存储器结构326读取的码字。在一些实施方案中,在软位参考电压校准期间使用管芯上ecc引擎330以复原编程到存储器结构326中的数据。
68.在一些实施方案中,管芯上ecc引擎330为所存储的每个数据单元(例如,页面)计算奇偶校验位。奇偶校验位(也称为纠错码)可以与数据单元(例如,页)一起存储。数据单元
及其相关联的奇偶校验位的组合被称为码字。在一个实施方案中,奇偶校验位远离数据单元(例如,页面)被存储。
69.管芯上ecc引擎330包括编码器380和解码器390。编码器380被配置为使用ecc方案对数据进行编码,ecc方案诸如reed solomon编码器、bose-chaudhuri-hocquenghem(bch)编码器、低密度奇偶校验(ldpc)编码器、涡轮码编码器、被配置为对一个或多个其他ecc编码方案进行编码的编码器或它们的任何组合。编码器380可形成码字,该码字包含数据位382和奇偶校验位384。数据位可由存储器控制器102提供。
70.在一个实施方案中,数据位382存储在数据锁存器360a中,并且奇偶校验位384存储在奇偶校验锁存器360b中。基于锁存器360中的位,当非易失性存储器单元正被编程时,感测放大器350可控制存储器结构326中的位线电压。这样,码字可被编程到存储器结构326中的非易失性存储器单元中。应当理解,也可将其他电压施加到存储器结构326,诸如向被选择用于编程的存储器单元施加编程电压。
71.解码器390被配置为对存储在存储器结构管芯302中的码字进行解码。在一个实施方案中,感测放大器350感测存储器结构326中的位线以便读取码字。感测放大器350可将所读取的码字存储到锁存器360中。解码器390能够检测和校正码字中的错误。
72.在一些实施方案中,集成存储器组件306中存在多于一个控制管芯304和多于一个存储器结构管芯302。在一些实施方案中,集成存储器组件306包括多个控制管芯304和多个存储器结构管芯302的堆叠。图4a描绘了堆叠在衬底402上的集成存储器组件306(例如,包括控制管芯304和存储器结构管芯302的堆叠)的一个实施方案的侧视图。集成存储器组件306具有三个控制管芯304和三个存储器结构管芯302。在一些实施方案中,存在多于三个存储器结构管芯302和多于三个控制管芯304。
73.每个控制管芯304附连(例如,接合)到存储器结构管芯302中的至少一个存储器结构管芯。描绘了接合焊盘470、474中的一些接合焊盘。可能有更多的接合焊盘。接合在一起的两个管芯302、304之间的空间填充有固态层448,该固态层可由环氧树脂或其他树脂或聚合物形成。该固态层448保护了管芯302、304之间的电连接,并进一步将管芯固定在一起。各种材料可用作固体层448。
74.集成存储器组件306可例如以阶梯式偏移堆叠,使得每一级处的接合焊盘不被覆盖并且能够从上方触及。连接到接合焊盘的引线接合部406将控制管芯304连接到衬底402。多个此类引线接合部可在每个控制管芯304的宽度上形成(即,形成到图4a的页面中)。
75.存储器结构管芯硅通孔(tsv)412可用于将信号路由穿过存储器结构管芯302。控制管芯硅通孔(tsv)414可用于将信号路由穿过控制管芯304。可在半导体管芯302、304中的集成电路形成之前、期间或之后形成tsv 412、414。可通过蚀刻穿过晶圆的孔来形成tsv。然后,可将这些孔衬有防金属扩散的阻挡。阻挡层又可以衬有种子层,并且种子层可以镀有电导体,诸如铜,尽管可以使用其他合适的材料,诸如铝、锡、镍、金、掺杂的多晶硅以及合金或其组合。
76.焊球408可任选地附连到衬底402的下表面上的接触焊盘410。焊球408可用于将集成存储器组件306以电气方式和机械方式耦接到主机设备诸如印刷电路板。在集成存储器组件306将用作lga封装件的情况下,可省略焊球408。焊球408可形成集成存储器组件306与存储器控制器102之间的接口的一部分。
77.图4b描绘了堆叠在衬底402上的集成存储器组件306的一个实施方案的侧视图。集成存储器组件306具有三个控制管芯304和三个存储器结构管芯302。在一些实施方案中,存在多于三个存储器结构管芯302和多于三个控制管芯304。在该示例中,每个控制管芯304接合到至少一个存储器结构管芯302。任选地,控制管芯304可接合到两个存储器结构管芯302。
78.描绘了接合焊盘470、474中的一些接合焊盘。可能有更多的接合焊盘。接合在一起的两个管芯302、304之间的空间填充有固态层448,该固态层可由环氧树脂或其他树脂或聚合物形成。与图4a中的示例相比,图4b中的集成存储器组件306没有阶梯式偏移。存储器结构管芯硅通孔(tsv)412可用于将信号路由穿过存储器结构管芯302。控制管芯硅通孔(tsv)414可用于将信号路由穿过控制管芯304。
79.焊球408可任选地附连到衬底402的下表面上的接触焊盘410。焊球408可用于将集成存储器组件306以电气方式和机械方式耦接到主机设备诸如印刷电路板。在集成存储器组件306将用作lga封装件的情况下,可省略焊球408。
80.如上面已经简要讨论的,控制管芯304和存储器结构管芯302可接合在一起。每个管芯302、304上的接合焊盘可用于将两个管芯接合在一起。在一些实施方案中,在所谓的cu-cu接合工艺中,接合焊盘在没有焊料或其他附加材料的情况下直接彼此接合。在cu-cu接合工艺中,接合焊盘被控制为高度平坦的,并且形成在高度受控的环境中,该环境基本上没有环境颗粒,否则该环境颗粒可能沉积在接合焊盘上并阻止紧密接合。在这种适当控制的条件下,接合焊盘对准并彼此压靠,以基于表面张力形成相互接合。这种接合可以在室温下形成,尽管也可以施加热量。在使用cu-cu接合的实施方案中,接合焊盘可以是大约5μm见方,并且以5μm到5μm的间距彼此隔开。虽然该工艺在本文中被称为cu-cu接合,但是该术语也可以适用于接合焊盘由除铜之外的材料形成的情况。
81.当接合焊盘的面积小时,可能难以将半导体管芯接合在一起。通过在包括接合焊盘的半导体管芯的表面上提供膜层,可以进一步减小接合焊盘的尺寸和间距。膜层设置在接合焊盘周围。当管芯被放在一起时,接合焊盘可以彼此接合,并且各个管芯上的膜层可以彼此接合。这种接合技术可以称为混合接合。在使用混合接合的实施方案中,接合焊盘可以是大约5μm见方,并且以1μm到5μm的间距彼此隔开。可以使用接合技术来提供具有更小尺寸和间距的接合焊盘。
82.一些实施方案可以在管芯302、304的表面上包括膜。如果最初没有提供这样的膜,则可以用环氧树脂或其他树脂或聚合物在底部填充管芯之间的空间。底部填充材料可作为液体施加,然后使其硬化为固态层。该底部填充的步骤保护了管芯302、304之间的电连接,并进一步将管芯固定在一起。各种材料可用作底部填充材料。
83.图5是描述用于对组织成阵列的存储器单元的nand串进行编程的过程500的一个实施方案的流程图。图5的过程可在状态机312的方向上执行。在一个示例性实施方案中,使用上述控制电路310(和读/写电路328以及解码器332/324)在存储器管芯300上执行图5的过程。在一个示例性实施方案中,使用上述控制电路310通过集成存储器组件306来执行图5的过程。该过程包括多个循环,每个循环包括编程阶段(例如,步骤504至步骤508)和验证阶段(例如,步骤510至步骤518)。
84.在许多具体实施中,编程脉冲的幅值随每个连续脉冲而增大预确定的步长。在图5
的步骤502中,将编程电压(vpgm)初始化为起始幅值(例如,约12v至16v,或另一个合适的电平),并且将由状态机312维持的编程计数器pc初始化为1。
85.在一个实施方案中,被选择为编程的一组存储器单元(在本文中被称为选择的存储器单元)被同时编程并且全部连接至相同的字线(选择的字线)。可能有其他未选择用于编程的存储器单元(未选择的存储器单元)也连接至选择的字线。也就是说,所选择的字线也将连接至应该禁止编程的存储器单元。此外,当存储器单元达到它们预期的目标数据状态时,它们将被禁止进一步编程。这些nand串(例如,未选择nand串)使其信道升压以禁止编程,这些串包括连接至所选择的字线的要被禁止编程的存储器单元。当信道具有升高的电压时,信道和字线之间的电压差不足以引起编程。为了帮助升压,在步骤504中,存储器系统将对包括连接到将被禁止编程的所选择的字线的存储器单元的nand串的信道预充电。
86.在一个实施方案中,步骤504是编程操作的开始。在一些实施方案中,不同组的存储器单元被同时编程。例如,不同存储器结构326中的存储器单元的编程可以同时执行。在一些实施方案中,并发编程操作(例如,步骤504)的开始是交错的,使得对于不同的存储器结构326,步骤504在不同的时间发生。
87.在步骤506中,包括连接到将被禁止编程的所选择的字线的存储器单元的nand串使其信道升压以禁止编程。此类nand串在本文中被称为“未选择的nand串”。在一个实施方案中,未选择字线接收一个或多个升压电压(例如,约7伏至11伏)以执行升压方案。编程禁止电压被施加到耦接未选择nand串的位线。
88.在步骤508中,将编程信号vpgm的编程脉冲施加到所选择的字线(被选择用于编程的字线)。在一个实施方案中,如果nand串上的存储器单元应该被编程,则对应的位线被偏置在编程启用电压。在本文中,此类nand串被称为“所选择的nand串”。
89.在步骤508中,将编程脉冲同时施加到连接到所选择的字线的所有存储器单元,使得同时对连接到所选择的字线的所有存储器单元进行编程(除非它们被禁止编程)。也就是说,它们在同一时间上或在重叠时间期间(两者都被视为是同时的)进行编程。以此方式,连接至所选择的字线的所有存储器单元将同时具有其阈值电压变化,除非它们被禁止编程。
90.在步骤510中,已经达到其目标状态的存储器单元被锁定而不能进一步编程。步骤510可包括按一个或多个验证参考电平执行验证。在一个实施方案中,通过测试被选择用于编程的存储器单元的阈值电压是否已经达到适当验证参考电压来执行验证过程。
91.在步骤510中,在存储器单元已经被验证(通过vt的测试)存储器单元已经达到其目标状态之后,存储器单元可以被锁定。
92.如果在步骤512中,确定所有存储器单元都已经达到其目标阈值电压(通过),则该编程过程完成并且成功,因为所有选择的存储器单元都被编程并验证到其目标状态。在步骤514中,报告“通过”状态。否则,如果在512中确定不是所有存储器单元都已经达到其目标阈值电压(失败),则该编程过程将继续到步骤516。
93.在步骤516中,该存储器系统对尚未达到其相应的目标阈值电压分布的存储器单元的数量进行计数。即,该系统对目前为止无法达到其目标状态的存储器单元的数量进行计数。该计数可以由状态机312、存储器控制器102或其他逻辑来完成。在一个具体实施中,感测块中的每个感测块将存储其相应的单元的状态(通过/失败)。在一个实施方案中,存在一个总计数,其反映了最后一个验证步骤已经失败的当前正在编程的存储器单元的总数。
在另一个实施方案中,为每个数据状态保留单独计数。
94.在步骤518中,确定来自步骤516的计数是否小于或等于预确定的极限。在一个实施方案中,预确定的极限是在存储器单元的页面的读取过程期间可通过纠错码(ecc)校正的位的数量。如果失败单元的数量小于或等于预确定的极限,则该编程过程可停止并且在步骤514中报告“通过”状态。在这种情况下,足够的存储器单元被正确地编程,使得可以在读取过程期间使用ecc来校正校正尚未完全地编程的剩余几个存储器单元。在一些实施方案中,在步骤518中使用的预确定的极限低于在读取过程期间可由纠错码(ecc)校正的位数,以允许未来/附加的错误。当对页面的少于所有的存储器单元进行编程、或比较仅一个数据状态(或少于所有的状态)的计数时,预确定的极限就可以是在存储器单元的页面的读取过程期间ecc可校正的位的数量的一部分(按比例或不按比例)。在一些实施方案中,该极限不是预确定的。相反,它基于已经为页面计数的错误数量、所执行的编程擦除周期数量或其他标准来改变。
95.如果失败存储器单元的数量不小于预确定的极限,则该编程过程在步骤520处继续并且对照编程极限值(pl)检查编程计数器pc。编程极限值的示例包括1、12、16、19和30;然而,可以使用其他值。如果编程计数器pc不小于编程极限值pl,则认为该编程过程已经失败并且在步骤524中报告“失败”状态。如果编程计数器pc小于编程极限值pl,则该过程在步骤522处继续,在此期间,编程计数器pc递增了1,并且编程电压vpgm被步进到下一幅值。例如,下一脉冲将具有比前一脉冲大一个步长(例如,0.1伏至1.0伏的步长)的幅值。在步骤522之后,该过程循环回到步骤504,并且另一个编程脉冲被施加到所选择的字线,使得执行图5的编程过程的另一个迭代(步骤504至步骤522)。
96.在成功编程过程结束时,在适当时,存储器单元的阈值电压应当在用于编程的存储器单元的阈值电压的一个或多个分布内或在经擦除的存储器单元的阈值电压的分布内。图6a示出了当每个存储器单元存储三位数据时用于存储器阵列的示例性阈值电压分布。然而,其他实施方案可以使用每一存储器单元其他数据容量(例如,诸如每一存储器单元一位数据、二位数据、四位数据或五位数据)。图6a示出了八个阈值电压分布,其对应于八个数据状态。第一个阈值电压分布(数据状态)er表示被擦除的存储器单元。其他七个阈值电压分布(数据状态)a-g表示被编程的存储器单元,并且因此也被称为已编程状态。每个阈值电压分布(数据状态)对应于一组数据位的预确定值。编程到存储器单元中的数据与该单元的阈值电压电平之间的具体关系取决于该单元所采纳的数据编码方案。在一个实施方案中,使用格雷码分配将数据值分配到阈值电压范围,使得如果存储器的阈值电压错误地移位到其相邻物理状态,那么将仅影响一个位。
97.图6a示出了七个读取参考电压vra、vrb、vrc、vrd、vre、vrf和vrg,用于从存储器单元读取数据。通过测试(例如,执行感测操作)给定存储器单元的阈值电压是高于还是低于七个读取参考电压,系统可以确定存储器单元所处于的数据状态(即,a、b、c、d、
……
)。
98.图6a还示出了七个验证参考电压vva、vvb、vvc、vvd、vve、vvf和vvg。在一些实施方案中,当将存储器单元编程到数据状态a时,系统将测试这些存储器单元是否具有大于或等于vva的阈值电压。当将存储器单元编程到数据状态b时,系统将测试这些存储器单元是否具有大于或等于vvb的阈值电压。当将存储器单元编程到数据状态c时,系统将确定这些存储器单元是否具有大于或等于vvc的阈值电压。当将存储器单元编程到数据状态d时,系统
将测试这些存储器单元是否具有大于或等于vvd的阈值电压。当将存储器单元编程到数据状态e时,系统将测试这些存储器单元是否具有大于或等于vve的阈值电压。当将存储器单元编程到数据状态f时,系统将测试这些存储器单元是否具有大于或等于vvf的阈值电压。当将存储器单元编程到数据状态g时,系统将测试这些存储器单元是否具有大于或等于vvg的阈值电压。图6a还示出了vev,其为用以测试存储器单元是否已被正确擦除的电压电平。
99.在被称为全序列编程的一个实施方案中,可将存储器单元从擦除数据状态er直接编程到编程数据状态a至g中的任一种编程数据状态。例如,可首先擦除待编程的一组存储器单元,使得该组中的所有存储器单元处于擦除数据状态er。然后,使用编程过程将存储器单元直接编程到数据状态a、b、c、d、e、f和/或g。例如,虽然一些存储器单元正从数据状态er编程到数据状态a,但其他存储器单元正从数据状态er编程到数据状态b和/或从数据状态er编程到数据状态c,以此类推。图6a的箭头表示全序列编程。在一些实施方案中,数据状态a-g可重叠,其中控制管芯304和/或存储器控制器102依赖错误校正来识别正在存储的正确数据。
100.除了全序列编程之外,本文所述的技术还可与其他类型的编程(包括但不限于多级编程/多相编程)一起使用。在多级编程/多相编程的一个实施方案中,在第一阶段中,要以数据状态d至g中的任一个数据状态结束的所有存储器单元被编程到不高于d的中间状态。在第一阶段中,要以数据状态er至c中的任一个数据状态结束的存储器单元不接收编程。在第二阶段中,要以任一个数据状态b或c结束的存储器单元被编程到不高于b的状态;以数据状态f或g结束的存储器单元被编程到不高于f的状态。在第三阶段中,存储器单元被编程到其最终状态。在一个实施方案中,在第一阶段中编程第一页,在第二阶段中编程第二页,并且在第三阶段中编程第三页。本文中,一旦一个页面已被编程到一组存储器单元中,则可返回读取存储器单元以检索该页面。因此,与多相编程相关联的中间状态在本文中被认为是编程状态。
101.一般来讲,在验证操作和读取操作期间,将所选择的字线连接到电压(参考信号的一个示例),该电压的电平针对每个读取操作(例如,参见图6a的读取比较电平vra、vrb、vrc、vrd、vre、vrf和vrg)或验证操作(例如,参见图6a的验证目标电平vva、vvb、vvc、vvd、vve、vvf和vvg)指定,以便确定相关存储器单元的阈值电压是否已经达到这个电平。在施加字线电压之后,测量存储器单元的传导电流以确定该存储器单元是否响应于施加到字线的电压而接通(被传导电流)。如果传导电流被测量为大于特定值,那么假设存储器单元被接通并且施加到字线的电压大于存储器单元的阈值电压。如果传导电流未测量为大于特定值,那么假设存储器单元未接通并且施加到字线的电压不大于存储器单元的阈值电压。在读取或验证过程期间,未选择存储器单元在其控制栅极处被提供有一个或多个读取通过电压(也称为旁路电压),使得这些存储器单元将作为通过栅极操作(例如,不管这些存储器单元是被编程还是被擦除都传导电流)。
102.有许多方法来在读取或验证操作期间测量存储器单元的传导电流。在一个示例中,以存储器单元对感测放大器中的专用电容器放电或充电的速率来测量该存储器单元的传导电流。在另一个示例中,选择的存储器单元的传导电流允许(或不允许)包括存储器单元的nand串对对应位线放电。在某时间段之后测量位线上的电压,以查看其是否已经放电。需注意,本文所述的技术可以与本领域中已知的用于验证/读取的不同方法一起使用。也可
以使用本领域中已知的其他读取和验证技术。
103.图6b描绘了当每个存储器单元存储四位数据时的阈值电压分布和一个页面映射方案。图6b描绘了数据状态s0至s15之间可能存在一些重叠。该重叠可由于诸如存储器单元丢失电荷(并因此阈值电压下降)的因素而发生。编程干扰可无意地增大存储器单元的阈值电压。同样,读取干扰可无意地增大存储器单元的阈值电压。随着时间的推移,阈值电压分布的位置可改变。此类改变可增大误码率,从而增加解码时间或甚至使得不可能解码。然而,通过重新校准软位参考电平,如本文所公开的,解码时间和成功率得到改善。
104.如上所述,图6b描绘了每个存储器单元存储四个位的示例。因此,四个页面可存储在一组存储器单元中。描绘了十五个硬位(hb)读取参考电平(vr1至vr15)。该组存储器单元可连接到相同的字线。每个hb读取参考电平用于区分两个相邻阈值电压分布。换句话讲,每个hb读取参考电平用于区分两个相邻的数据状态。例如,hb读取参考电平vr4用于区分数据状态s3和s4。
105.图6b还描绘了与四个hb参考电平相关联的软位(sb)参考电平。这四个hb参考电平可以是用于感测一个页面的数据的那些hb参考电平。在vr1、vr4、vr6和vr11中的每一者周围分组有一组sb参考电平。例如,一组sb参考电平vr1_s1、vr1_s2、vr1_s3和vr1_s4被分组在hb参考电平vr1周围;一组sb参考电平vr4_s1、vr4_s2、vr4_s3和vr4_s4被分组在hb参考电平vr4周围;一组sb参考电平vr6_s1、vr6_s2、vr6_s3和vr6_s4被分组在hb参考电平vr6周围;并且一组sb参考电平vr11_s1、vr11_s2、vr11_s3和vr11_s4被分组在hb参考电平vr11周围。可以存在与其他hb参考电平相关联的sb参考电平,但其未在图6b中描绘。在图6b中,存在四个sb参考电平与每个对应的hb参考电平相关联,但可能存在更多或更少的sb参考电平与hb参考电平相关联。在图6b中,在对应的hb参考电平的每一侧上存在相等数量的sb参考电平,但这不是必需的。例如,在对应的hb参考电平的仅一侧上的sb参考电平的感测可以提供有用的可靠性信息。
106.需注意,尽管本文所公开的一些实施方案涉及状态由存储器单元的阈值电压(vt)来表示的存储器单元,但存储器单元的状态可由另一个物理参数表示,包括但不限于电阻或电导。例如,在图6a和图6b中,数据状态由vt分布表示。然而,对于其他类型的存储器单元,数据状态可由电阻分布或电导分布来表示。
107.在一些实施方案中,当ecc引擎不能够使用利用hb参考电压感测到的数据来解码存储在存储器单元中的码字时,sb参考电压用于读取存储器单元中的数据。通常,针对每个hb参考电压存在一组sb参考电压。sb参考电压处于比对应的hb参考电压略高的电压或略低的电压。在本文中,处于比对应的hb参考电压略高的电压的sb参考电压被称为“上sb参考电压”。在本文中,处于比对应的hb参考电压略低的电压的sb参考电压被称为“下sb参考电压”。在一些实施方案中,针对对应的hb参考电压存在一个或多个上sb参考电压和一个或多个下sb参考电压。一个实施方案是单侧sb读取,其中仅使用上sb参考电压或仅使用下sb参考电压。例如,可以针对每个hb参考电压在一个或多个下sb参考电压进行感测。另选地,可以针对每个hb参考电压在一个或多个上sb参考电压进行感测。
108.该组sb参考电压用于生成“软”可靠性信息,这增加了解码器的错误校正能力。在sb参考电压进行感测生成针对每个存储器单元的一个或多个“软位”,该一个或多个“软位”指示存储器单元的物理参数(例如,vt、电阻)是否接近hb参考电平,从而使得该存储器单元
的hb不太可靠,或者是否远离hb参考电平,从而使得hb更可靠。换句话讲,如果软可靠性信息指示存储器单元具有其值接近hb参考电平的物理参数,则与如果软可靠性信息指示存储器单元具有其值远离hb参考电平的物理参数相比,这被认为不太可靠。
109.然而,该校正能力取决于软可靠性信息的质量。使用未在正确位置(例如,正确的电压电平)中感测的软位可以降低软可靠性信息的质量并降低其信息性。设置sb阈值的位置是一个权衡。如果sb阈值太接近hb阈值,则许多误差不被标记为低可靠性。图7a描绘了其中sb参考电平可能被设置为太接近hb阈值的示例。图7a描绘了两个相邻的存储器单元分布702、704。这两个相邻的存储器单元分布702、704对应于两个相邻的数据状态。在一个实施方案中,每个存储器单元分布702、704是vt分布。在一个实施方案中,每个存储器单元分布702、704是电阻分布。水平轴线被标记为“感测电压”以指示在一些实施方案中,电压用于感测存储器单元。感测电压可以用于测试存储器单元的物理参数,例如vt、电阻或电导。感测存储器单元的物理参数不限于使用电压。
110.硬位参考电平706用于区分两个相邻的存储器单元分布702、704。换句话讲,hb参考电平706用于区分两个相邻的数据状态。描绘了两个sb参考电平708a、708b。在一个实施方案中,hb参考电平706是用于区分两个vt分布的电压。在一个实施方案中,hb参考电平706是用于区分两个电阻分布的电压。因此,取决于正在测试的存储器单元的物理参数,hb参考电平706可以对应于存储器单元的vt、存储器单元的电阻或存储器单元的一些其他物理参数。类似的推理适用于sb参考电平708。
111.区710对应于存储器单元分布704中的存储器单元的一部分,该部分是错误的,因为它们具有比hb参考电平706低的物理参数(例如,vt、电阻)的值。换句话说,区710对应于旨在被编程到与存储器单元分布704相关联的数据状态的存储器单元的一部分,但现在具有比hb参考电平706低的物理参数的值。然而,由于区710中的存储器单元还具有比sb参考电平708a低的物理参数的值,因此它们落入高可靠性类别。然而,期望此类存储器单元被标记为低可靠性。需注意,短语诸如“存储器单元具有比hb参考电平706低的电阻”意味着存储器单元的电阻低于由hb参考电平706测试的电阻。需注意,短语诸如“存储器单元具有比hb参考电平706低的vt”意味着存储器单元的vt低于由hb参考电平706测试的vt。
112.区712对应于存储器单元分布702中的存储器单元的一部分,该部分是错误的,因为它们具有比hb参考电平706高的物理参数的值。换句话说,区712对应于旨在被编程到与存储器单元分布702相关联的数据状态的存储器单元的一些存储器单元,但现在具有比hb参考电平706高的物理参数的值。然而,由于区712中的存储器单元还具有比sb参考电平708b高的物理参数的值,因此它们落入高可靠性类别。然而,期望此类存储器单元被标记为低可靠性。
113.另一方面,如果sb阈值太远离hb参考电压,则太多正确的位被标记为不可靠。图7b描绘了其中sb阈值可能被设置为太远离hb阈值的示例。图7b描绘了两个相邻的存储器单元分布702、704。硬位(hb)参考电平706用于区分两个相邻的存储器单元分布702、704。描绘了两个sb参考电平714a、714b。区716对应于存储器单元分布702中的存储器单元的一部分,该部分是正确的,因为它们具有比hb参考电平706低的物理参数的值。然而,由于区716中的存储器单元还具有比sb参考电平714a高的物理参数的值,因此它们落入低可靠性类别。然而,期望较少的非错误存储器单元被标记为低可靠性。换句话说,sb参考电平714a被设置得太
远低于hb参考电平706。区718对应于存储器单元分布704中的存储器单元的一部分,该部分是正确的,因为它们具有比hb参考电平706高的物理参数的值。然而,由于区718中的存储器单元还具有比sb参考电平714b低的物理参数的值,因此它们落入低可靠性类别。然而,期望较少的非错误存储器单元被标记为低可靠性。换句话说,sb参考电平714b被设置得太远高于hb参考电平706。
114.如上所述,sb可以指示针对每个存储器单元的hb的可靠性。图8a描绘了误块率(bler)与误码率(ber)的曲线。垂直轴线针对误块率(bler),其是解码器解码码字失败的概率。期望错误校正导致低bler。水平轴线针对误码率(ber),其是码字中的错误量。期望能够校正具有较高ber的数据的错误校正。换句话说,期望针对高ber具有低bler。曲线802对应于在错误校正期间仅使用hb。曲线804对应于在错误校正期间使用hb和sb两者。对于曲线804,假设以合适的电平建立sb参考电平以进行良好的错误校正。曲线802、804说明使用hb和sb两者显著增强错误校正能力。例如,对于曲线802、804上具有相同bler的两个点,曲线804对应于较高ber。因此,曲线804说明使用hb和sb两者可比仅使用hb校正具有较高ber的数据,同时实现相同的bler。
115.然而,sb参考电平的位置对sb改善错误校正的能力具有显著影响。图8b描绘了针对sb参考电平的不同位置的ber与bler的曲线。垂直轴线针对误块率(bler)。水平轴线针对误码率(ber)。然而,需注意,图8b中ber的比例(值)不一定对应于图8a中的那些ber的比例(值)。曲线812表示sb参考电平的最佳位置,曲线814表示所描绘的那些sb参考电平的第二最佳位置,曲线816表示所描绘的那些sb参考电平的第三最佳位置,并且曲线818表示所描绘的那些sb参考电平的最差位置。这些曲线812至曲线818指示如果未正确选择sb参考电平的位置,则错误校正能力降低。
116.图9描绘了基于编程到非易失性存储器单元中的原始数据来校准sb参考电平的过程900的一个实施方案的流程图。可以通过解码存储在存储器单元中的编码数据来获得原始数据。解码编码数据校正数据中的任何错误,从而生成编程到存储器单元中的原始数据。基于原始数据校准sb参考电平提高了从在校准的软位参考电平感测非易失性存储器单元导出的可靠性信息(例如,软位)的质量。
117.过程900可以用于存储每单元一个位(例如,slc)或每单元多个位(例如,每单元两个位、三个位、四个位或更多个位)的存储器单元。通常,一组一个或多个sb参考电平与hb参考电平相关联(例如,分组在其周围)。该组中可以存在任何数量的sb参考电平。在一个实施方案中,最终校准的sb参考电平在对应的hb参考电平的每一侧上具有一个sb参考电平。在一个实施方案中,最终校准的sb参考电平在对应的hb参考电平的每一侧上具有两个sb参考电平。在一个实施方案中,最终校准的sb参考电平在对应的hb参考电平的每一侧上具有三个sb参考电平。单侧sb参考电平也是可能的。在一个实施方案中,最终校准的sb参考电平针对每个对应的hb参考电平具有一个或多个下sb参考电平(不需要上sb参考电平)。在一个实施方案中,最终校准的sb参考电平针对每个对应的hb参考电平具有一个或多个上sb参考电平(不需要下sb参考电平)。过程900可以用于校准与用于读取一个页面的数据的hb参考电平相关联的sb参考电平。例如,关于图6b中的示例,过程900可以用于校准与vr1、vr4、vr6和vr11相关联的sb参考电平。然而,为了便于解释,可以讨论与hb参考电平中的一个hb参考电平相关联的sb参考电平的校准。在一些实施例中,讨论将关注校准在hb参考电压的一侧上
的sb参考电压。
118.在一个实施方案中,响应于不能解码从某组存储器单元读取的数据来触发过程900。例如,在存储器单元的块中可能存在解码失败。例如,使用hb和sb两者进行解码可能失败。在过程900中的校准sb参考电平之后,可以进行另一次尝试以使用hb和sb解码数据。校准sb参考电平有助于从初始失败中复原以使用hb和sb两者进行解码。然而,可以在没有解码失败的情况下执行过程900。
119.步骤902包括从一组非易失性存储器单元感测数据。在一个实施方案中,读取至少一个页面的数据。该页面的数据可以作为ecc码字存储在存储器单元中。需注意,在解码失败触发过程900的一个实施方案中,此解码失败是针对与步骤902中感测到的码字不同的码字。例如,在步骤902中感测到的组可以是与存在解码失败的组不同的一组存储器单元。如果存储器单元的组存储多个码字,则在步骤902中感测的码字可以是与组中解码失败的码字不同的码字。可以在一个或多个hb参考电平感测存储器单元。例如,关于图6b,可以在vr1、vr4、vr6和vr11感测存储器单元以感测一个页面的数据。因此,读取一个ecc码字。可以针对存储在存储器单元中的其他页面的数据重复过程900。例如,可以在hb参考电平针对页面中的一个页面发生感测,然后在hb参考电平针对另一个页面发生感测等等。在针对一个页面进行感测之后,可以针对每个存储器单元确定hb。hb可以由感测块350确定。将hb提供给ecc解码器。ecc解码器可以位于存储器控制器102中、控制管芯304上或存储器管芯300上。
120.任选地,在步骤902中,可以在sb参考电平的当前电平感测存储器单元。如果使用sb参考电平,则感测块350可以针对每个存储器单元确定一个或多个sb。将sb提供给ecc解码器。
121.步骤904包括解码编码数据以复原编程到存储器单元的组中的原始数据。步骤904可以包括解码存储在存储器单元中的ecc码字。ecc解码器将校正编码数据中的任何错误。在ecc解码器无法仅使用hb校正所有错误的情况下,可以使用sb的当前值。任选地,如果难以解码码字,则可以选择不同的一组存储器单元。例如,可以选择同一块中的不同组,其中重复步骤902至步骤904。步骤904导致原始编程数据的复原。
122.步骤906包括在候选sb参考电平感测非易失性存储器单元的组。图10描绘了与hb参考电平相关联的候选sb参考电平的示例。需注意,在该示例中,存在下候选sb参考电压1018a和上候选sb参考电压1018b。针对每个hb参考电平可以存在一组候选sb参考电平。在下侧sb实施方案中,存在下候选sb参考电压1018a(不需要上候选1018b)。在上侧sb实施方案中,存在上候选sb参考电压1018b(不需要下候选1018a)。在一些情况下,过程900用于校准在读取一个页面的数据时使用的sb参考电平。当存在每单元多于一个位时,读取页面可以涉及在多于一个hb参考电平读取,每个参考电平具有其自身的sb参考电平。在这种情况下,步骤906可以包括针对读取页面所需的hb参考电平中的每一个hb参考电平在一组候选sb参考电平进行感测。在一个实施方案中,步骤906由存储器管芯300上的控制电路310执行。在一个实施方案中,步骤906由控制管芯304上的控制电路310执行。
123.步骤906导致针对每个候选sb参考电平的数据。针对每个候选sb参考电平的数据基于在相应候选sb参考电平的感测,但也可以基于在其他参考电平的感测。例如,参考图10,针对候选sb参考电平1026的数据可以基于在sb参考电平1026、hb参考电平1020和sb参
考电平1028下的感测。
124.步骤908包括计算经复原的编程数据与针对候选sb参考电平感测到的数据之间的互信息(mi)。该mi用作该组候选sb参考电平将有助于解码数据的程度的良好量度。因此,基于mi校准sb参考电平提高了可靠性信息(例如,软位)的质量。在一个实施方案中,mi基于信道跃迁矩阵。关于图11和图12a至图12e,示出和描述了基于信道跃迁矩阵计算mi的实施方案的进一步细节。在一个实施方案中,mi基于对数似然比。关于图13,示出和描述了基于对数似然比计算mi的实施方案的进一步细节。
125.步骤910包括基于mi选择新的sb参考电平。在一个实施方案中,在一组候选sb参考电平中选择其mi为最高的候选sb参考电平。可以针对每个hb参考电平的下候选sb参考电压1018a和上候选sb参考电压1018b单独进行该选择。例如,在图10中,sb参考电平1026可以选自下候选sb参考电平1018a。相似地,sb参考电平1028可以选自上候选sb参考电平1018b。新的sb参考电平不需要是候选sb参考电平中的一个候选sb参考电平。例如,新的sb参考电平可以位于两个候选sb参考电平中间。在一个实施方案中,步骤910由存储器管芯300上的控制电路310执行。在一个实施方案中,步骤910由控制管芯304上的控制电路310执行。在一个实施方案中,步骤910由存储器控制器102执行。
126.现在进一步详细论述图10。图10描绘了两个存储器单元分布1012、1014。图10还描绘了mi 1016与sb参考电压的图。两个存储器单元分布1012、1014可以是针对其中存储器单元各自存储一个位(slc)的情况的两个存储器单元分布,或者是当每个存储器单元存储每单元多个位(例如,每单元两个位、三个位、四个位)时的两个存储器单元分布。在一个实施方案中,两个存储器单元分布1012、1014是图6b中的两个相邻的分布。例如,分布1012可以对应于s3并且分布1014可以对应于s4。
127.描绘了一个hb参考电压1020和十个候选sb参考电压1018。在图9中的步骤906的一个实施方案中,在十个sb参考电压1018感测存储器单元。可能存在多于或少于十个候选sb电压1018。存在五个下候选sb参考电压1018a,其各自具有比hb参考电压1020低的电压。存在五个上候选sb参考电压1018b,其各自具有比hb参考电压1020高的电压。对一个实施例进行讨论,其中在hb参考电压1020的每一侧上的候选中的一个候选将被选择为新的sb参考电压。然而,新的sb参考电压可以是具有两个最高mi值的两个候选的加权平均数。权重可以基于两个候选的mi。例如,如果两个候选中的一个候选的mi略高,则新的sb参考电平可以更接近该候选。新的sb参考电压可以是例如图6b中的vr4_s2和vr4_s3。然而,在一些实施方案中,针对给定hb参考电压可以使用多于两个sb参考电压。例如,在图6b中,还存在与vr4相关联的vr4s1和vr4s4。在一些实施方案中,这些附加的sb参考电压另外与校准vr4_s2和vr4_s3分开校准。
128.互信息(mi)1016具有针对每个sb参考电平1018的mi。针对特定sb参考电压1018的mi是与该sb参考电压相关联的可靠性信息(例如,软位)如何有用的统计量度。换句话讲,mi指示sb参考电压将如何有助于解码数据。mi越高,来自对应的sb参考电压的可靠性信息将更有用。
129.互信息1022对于任何下候选sb参考电平1018a都是最高的。互信息1022对应于sb参考电平1026。因此,这是使用hb参考电平1020和sb参考电平1026感测到的数据与编程到存储器单元中的原始数据之间的mi。因此,可以选择sb参考电平1026作为新的sb参考电平。
130.互信息1024对于任何上候选sb参考电平1018b都是最高的。互信息1024对应于sb参考电平1028。因此,这是使用hb参考电平1020和sb参考电平1028感测到的数据与编程到存储器单元中的原始数据之间的mi。因此,可以选择sb参考电平1028作为新的sb参考电平。
131.因此,返回到对图9的步骤910的讨论,可以选择新的下sb参考电平1026。同样,可以选择新的上sb参考电平1028。需注意,可以独立于上sb参考电平1028选择下sb参考电平1026,使得两者可以处于相对于hb参考电压1020的不同电压间隙(或软位δ)。此外,可以针对与在步骤902中从存储器单元读取的该页面的数据相关联的每个hb参考电压选择下和上sb参考电平。
132.在一些实施方案中,基于信道跃迁矩阵计算mi。图11是其中基于信道跃迁矩阵计算mi的过程1100的一个实施方案的流程图。过程1100提供了步骤908的一个实施方案的进一步细节。步骤1102包括在当前未校准的hb参考电压的一侧上固定sb参考电压。固定sb参考电压意味着在过程1100期间sb参考电压未改变。在图12a至图12e的实施例中,下sb参考电压被校准(相对于候选1018a)。上sb参考电压固定在上sb参考电压1206。
133.步骤1104包括在正被校准的hb参考电压的一侧上选择候选sb参考电压。参考图12a至图12e,在每种情况下,从下候选sb参考电压1018a选择了不同的候选。
134.步骤1106包括从在候选sb参考电压的感测来访问数据。该数据可以基于在不只是候选sb参考电压的感测。例如,对于图12a,候选是下候选sb参考电压1204。然而,数据也可以基于在hb参考电压1020和固定上sb参考电压1206的感测。
135.步骤1110包括计算每个sb仓中被编程到位0的位数。步骤1112包括计算每个sb仓中被编程到位1的位数。出于讨论的目的,将假设被编程到1的存储器单元应具有低于hb参考电压1020的vt,并且编程到0的存储器单元应具有高于hb参考电压1020的vt。例如,图12a示出了分布1012,其表示被编程到“1”的存储器单元。那些存储器单元中的大多数确实具有低于hb参考电压1020的vt,但少数具有高于hb参考电压1020的vt。同样,图12a示出了分布1014,其表示被编程到“0”的存储器单元。那些存储器单元中的大多数具有高于hb参考电压1020的vt,但少数具有低于hb参考电压1020的vt。
136.图12a至图12e示出了针对五个不同的候选sb参考电平的仓计数的示例。图12a示出了针对分析sb参考电压1204时的八个仓。在该示例中,sb参考电压1206是固定的。四个仓1202a表示最初被编程到“1”的存储器单元计数。四个仓1202b表示最初被编程到“0”的存储器单元计数。基于参考电压来限定每个仓1202。仓0用于计数具有低于sb参考电压1204的vt的存储器单元。需注意,出于解释的目的,测试了测试存储器单元的阈值电压的示例,但是可以针对不同类型的存储器单元测试诸如电阻等不同参数。仓1用于计数具有在sb参考电压1204与hb参考电压1020之间的阈值电压的存储器单元。仓2用于计数具有在hb参考电压1020与sb参考电压1206之间的阈值电压的存储器单元。仓3用于计数具有高于sb参考电压1206的阈值电压的存储器单元。
137.图12b示出了针对分析sb参考电压1208时的仓1202a、1202b。图12c示出了针对分析sb参考电压1210时的仓1202a、1202b。图12d示出了针对分析sb参考电压1212时的仓1202a、1202b。图12e示出了针对分析sb参考电压1214时的仓1202a、1202b。需注意,在每种情况下,使用sb参考电压1206。因此,当测试下候选sb参考电压1018a时,上sb参考电压1018b是固定的。需注意,在sb参考电压1206对其进行固定是一个示例。上sb参考电压1018b
可以在不同的电平进行固定。
138.可以使用以下公式来实施步骤1110和1112。在以下公式中,对页面中的全部位(或码字)进行求和。
139.n[仓=i,编程位=x]
[0140][0141]
其中i=1:#仓,并且x=0,1
[0142][0143]
在以上公式中,1
[condition]
是指指示函数。n[i,x]是给定sb仓中被编程到某一值(即,1或0)的位(例如,存储器单元)的数量。图12a至图12e中的仓1202a、1202b提供n[i,x]的视觉表示。
[0144]
步骤1114包括计算信道跃迁矩阵。可以使用以下公式计算信道跃迁矩阵n[i,x]。
[0145][0146]
其中
[0147]
步骤1116包括计算mi。可以使用以下公式计算mi。
[0148]
mi=h(p
y|x
·
p
x
)-h(p
y|x
)
[0149]
在以上公式中,h是shannon熵函数,并且p
x
是编程数据为0/1的概率。可以根据以下公式计算概率。
[0150][0151]
在数据被加扰的情形下,概率可以简化为p0=p1=0.5。
[0152]
步骤1118是确定是否存在要分析的另一个候选sb参考电压。如果是,则对下一个候选sb参考电压重复步骤1104至步骤1116。例如,在计算针对sb参考电压1204的mi之后(参见图12a),可以计算针对sb参考电压1208的mi(参见图12b)。在分析针对全部下部候选sb参考电压1018a的mi之后,执行步骤1120。步骤1120包括选择使mi最大化的sb参考电压电平。因此,可以选择步骤1116中的mi针对其为最高的sb参考电压。因此,步骤1120可用于例如从下候选sb参考电压1018a选择sb参考电压1026(参见图10)。在一个实施方案中,新的sb参考电压基于具有最高mi的两个候选sb参考电压电平。例如,可以使用两个候选sb参考电压电平的加权平均数,其中权重基于针对mi的相应值。
[0153]
然后可以针对上sb参考电压1018b重复过程1100。该过程对于下sb参考电压1018a是类似的。然而,仓1202将不同于图12a至图12e中所描绘的仓。对于所有情况,下sb参考电压1018a是固定的,其中在每种情况下,上sb参考电压1018b不相同。以这种方式,针对上sb
参考电压1018b中的每个上sb参考电压确定mi。再次参考图10,执行过程1100是用于确定mi 1016的一种技术。
[0154]
在一些实施方案中,基于对数似然比(llr)计算mi。图13是其中基于llr计算mi的过程1300的一个实施方案的流程图。过程1300提供了过程900的步骤908的一个实施方案的进一步细节。步骤1302包括在当前未校准的hb参考电压的一侧上固定sb参考电压。固定sb参考电压意味着在过程1300期间sb参考电压未改变。步骤1304包括在正被校准的hb参考电压的一侧上选择候选sb参考电压。
[0155]
步骤1306包括基于在候选sb参考电压的感测来访问数据。该数据可以基于在不只是候选sb参考电压的感测。例如,数据还可以基于在hb参考电压以及一个或多个其他sb参考电压的感测。这类似于步骤1106中的讨论,其中针对候选下候选sb参考电压1204的数据也可以基于在hb参考电压1020和固定上sb参考电压1206的感测。数据还可以基于在与读取页面(或ecc码字)所需的其他hb相关联的sb参考电压的感测。在一个实施方案中,从存储器管芯300或控制管芯304向存储器控制器102发送数据。
[0156]
步骤1308包括基于在候选sb参考电压的感测来确定针对数据的llr。llr是具有给定值的解码位的概率。llr的符号通常提供位估计(即,正llr对应于为0的位,并且负llr对应于为1的位)。llr的量值提供估计的可靠性(即,|llr|=0意味着估计完全不可靠,并且|llr|=∞意味着估计完全可靠并且位值是已知的)。llr可以由ecc解码器确定。在一些实施方案中,llr由低密度奇偶校验(ldcp)解码器确定。在一些实施方案中,llr由存储器控制器102确定。然而,llr可以由例如控制管芯304或存储器管芯300上的ecc引擎330确定。
[0157]
步骤1310包括基于llr和编程数据估计mi。在一个实施方案中,使用以下公式计算mi。
[0158][0159]
在以上公式中,e[]是期望函数。pb是从0/1转换到+/-1的编程数据。例如,pb=1-2x,其中x是编程位。换句话讲,0可以表示为1,并且1可以表示为-1。在以上公式中,对码字中的全部位进行求和。因此,在该示例中,码字中存在n个位。在以上求和中,如果llr与编程位(pb)一致,则它将高度有助于mi。
[0160]
步骤1312是确定是否存在要考虑的多个候选sb参考电压。如果是,则重复步骤1304至步骤1310以确定针对下一个候选sb参考电压的mi。在确定针对所有候选sb参考电压的mi之后,在步骤1314中选择候选sb参考电压中的一个候选sb参考电压。步骤1314包括选择使mi最大化的候选sb参考电压。因此,步骤1314可用于例如从下候选sb参考电压1018a选择sb参考电压1026(参见图10)。相似地,步骤1314可用于例如从上候选sb参考电压1018b选择sb参考电压1028(参见图10)。在一个实施方案中,新的sb参考电压基于具有最高mi的两个候选sb参考电压。例如,可以使用两个候选sb参考电压的加权平均数,其中权重基于针对mi的相应值。
[0161]
在一些实施方案中,在预先确定的一组候选sb参考电压执行感测。例如,参考图10,可以在十个候选sb参考电压1018中的每一个候选sb参考电压发生感测,以便校准下和上sb参考电压两者。在另一个实施方案中,通过避免在一个或多个候选sb参考电压进行感
测来节省时间和/或电力。可以通过假设针对一组候选sb参考电压的mi为具有单峰的单峰函数来避免感测。该方法在本文中可被称为梯度方法。
[0162]
图14是在感测和确定mi时梯度方法的过程1400的一个实施方案的流程图。过程1400是过程900的步骤906和步骤908的一个实施方案。步骤1402包括将mi跟踪器设置为0。这是用于跟踪mi的变量。如将看到,如果mi不能从一个候选sb参考电平增加到下一个候选sb参考电平,则该过程停止检查新的候选sb参考电平。
[0163]
步骤1404包括设置初始sb参考电平。将参考图15讨论过程1400。将讨论计算针对下候选sb参考电平1018a的mi的示例。初始sb参考电平可以是候选sb参考电平1502。
[0164]
步骤1406包括在初始候选sb参考电平进行感测。第一感测可以在候选sb参考电平1502发生。需注意,在过程1400之前,可以在hb参考电平1020执行感测。在一些实施方案中,还在上sb参考电平1018b中的一个上sb参考电平执行感测。可以执行其他感测以生成至少部分地基于在下候选参考电平1018a的感测的数据。
[0165]
步骤1408包括确定针对该候选sb参考电平的mi。在一个实施方案中,基于信道跃迁矩阵确定mi,如上文结合过程1100所述。在一个实施方案中,如过程1100的步骤1104至步骤1116中所述确定mi。在一个实施方案中,基于llr确定mi,如上文结合过程1300所述。在一个实施方案中,如过程1300的步骤1304至步骤1310中所述确定mi。
[0166]
步骤1410是确定mi是否增加。在过程1400的第一次迭代中,mi将增加。在步骤1412中,改变候选sb参考电平。在一个实施方案中,sb参考电平的电压降低。例如,sb参考电平改变为sb参考电平1504。mi跟踪器被更新为当前mi,其是指在步骤1408中计算的mi。然后,再次执行步骤1406和步骤1408。参考图15中的示例,mi 1216针对sb参考电平1504增加,因此再次执行步骤1412。这时,sb参考电平被设置为sb参考电平1026。mi跟踪器被更新为当前mi,其是指在步骤1408中计算的mi。然后,再次执行步骤1406和步骤1408。参考图15中的示例,mi针对sb参考电平1026增加,因此再次执行步骤1412。这时,sb参考电平被设置为sb参考电平1506。mi跟踪器被更新为当前mi,其是指在步骤1408中计算的mi。然后,再次执行步骤1406和步骤1408。参考图15中的示例,相对于sb参考电平1026,mi不会针对sb参考电平1506增加。因此,没有针对下候选sb参考电平1018a执行更多感测。
[0167]
在步骤1414中,选择使mi最大化的sb参考电平。在图15的示例中,sb参考电平1026具有针对下候选sb参考电平1018a的最大mi,并且因此被选择。在一个实施方案中,新的sb参考电平基于具有最高mi的两个候选sb参考电平。例如,可以使用两个候选sb参考电平的加权平均数,其中权重基于针对mi的相应值。
[0168]
可以针对上候选sb参考电平1018b重复过程1400。需注意,图15中mi 1216的白色箭头表示增加mi 1216,并且块箭头指示减小mi 1216。针对上候选sb参考电平1018b,感测可以仅在三个候选sb参考电平进行,其中基于具有最大mi来选择sb参考电平1028。
[0169]
一个实施方案包括模拟sb读取。模拟sb读取可以用于从相对少数的候选sb读取生成附加的sb。图16描绘了具有相关联的sb和hb参考电压的阈值分布。图16描绘了八个存储器单元分布1601至1608,其对应于八个数据状态。因此,存储器单元各自存储三个位,或针对组的三个页面。在一个实施方案中,每个页面被存储为ecc码字。hb参考电压1630、1632和1634用于读取数据的页面中的一个页面。在一个实施方案中,如果存储器单元被读取为具有低于hb参考电压1630的vt,则位报告为1。如果存储器单元被读取为具有在hb参考电压
1630与hb参考电压1632之间的vt,则位报告为0。如果存储器单元被读取为具有在hb参考电压1632与hb参考电压1634之间的vt,则位报告为1。如果存储器单元被读取为具有高于hb参考电压1634的vt,则位报告为0。图16中未示出用于读取其他页面的hb参考电压。
[0170]
与本文的其他实施例一致,针对每个hb参考电压描绘了十个候选sb参考电压。下候选sb电压1620a和上候选sb电压1620b由hb参考电压1630描绘。下候选sb电压1622a和上候选sb电压1622b由hb参考电压1632描绘。下候选sb电压1624a和上候选sb电压1624b由hb参考电压1634描绘。
[0171]
图17是数字模拟sb读取的过程1700的一个实施方案的流程图。步骤1702包括针对页面的数据设定初始的一组候选sb参考电压。参考图16,初始组可以包括与每个hb参考电压相关联的最左候选sb参考电压。因此,在步骤1702的一个实施方案中选择总共三个候选sb参考电压。
[0172]
步骤1704包括感测存储器单元的组是候选sb参考电压的组。
[0173]
步骤1706包括确定针对每个存储器单元的sb。在一个实施方案中,步骤1706以与确定hb类似的方式确定sb。然而,代替使用hb参考电平1630、1632和1634,使用三个候选sb参考电平。
[0174]
步骤1708包括向存储器控制器102发送针对每个存储器单元的sb。因此,可以向存储器控制器102发送一个页面的位。
[0175]
步骤1710是确定是否要感测多个候选sb参考电压。在图16的示例中,将感测总共10组候选sb参考电压。每个组将针对每个hb参考电压具有一个候选sb参考电压。步骤1712包括改变每个候选sb参考电压。例如,可以选择在每个先前候选sb参考电压右边的下一个候选sb参考电压(即,较高电压)。在图16的示例中,过程1700将循环十次,使得向存储器控制器102发送针对每个存储器单元的十个sb。换句话讲,向存储器控制器102发送到十个页面的sb。
[0176]
步骤1714包括存储器控制器102模拟sb参考电压的许多可能的组合。参考图16,需注意,存在sb参考电压的许多可能的组合,假设一个sb参考电压用于每个hb参考电压。在一个实施方案中,数字模拟了具有每个hb参考电压一个sb参考电压的全部可能的组合。数字模拟基于发送到存储器控制器102的十个页面中所含的信息。
[0177]
图18示出了来自发送到存储器控制器102的页面的两个阈值分布和信息,以便说明sb读取的数字模拟的实施方案。描绘来自图16的分布1602和分布1603,以及下候选sb参考电压1620a和上候选sb参考电压1620b。十个读取是指过程1700中的读数十个页面的sb。如果存储器单元在两个sb参考电压之间的“仓”中,则数字1和0指示该存储器单元是否应被读取为0或1。例如,如果存储器单元在仓1802中,则其将针对读取1至读取7被读取为0,并且针对读取8至读取10被读取为1。类似的推理适用于图18中的其他仓。
[0178]
此技术还可以用于与图16中的其他hb参考电压相关联的sb仓。然而,针对读取1至读取7被读取为0并且针对读取8至读取10被读取为1的存储器单元也可以在与hb参考电压1634相关联的sb仓中。例如,在hb参考电压1632的读取可以解决这两种情况之间的任何歧义。
[0179]
因此,数字模拟可以确定每个存储器单元在哪个sb仓中。从这个sb仓信息,存储器控制器102可以“模拟”在sb参考电压的任何组合(具有每个hb参考电压一个sb参考电压)的
sb读取。因此,不必在sb参考电压的所有这些组合物理地读取存储器单元。此外,不必针对sb参考电压的每个组合向存储器控制器102发送sb的页面。
[0180]
图19是描绘在校准软位参考电平期间传输数据的过程1900的一个实施方案的流程图。步骤1902包括从半导体管芯向存储器控制器102提供针对码字的未解码(或原始)数据。在一个实施方案中,从控制管芯304向存储器控制器102提供未解码数据。在一个实施方案中,从存储器管芯300向存储器控制器102提供未解码数据。这是可在图9的步骤902中读取的数据。
[0181]
步骤1904包括解码该数据的存储器控制器102。因此,存储器控制器102校正该数据中的任何错误以复原原始数据。步骤1904是图9的步骤904的一个实施方案。
[0182]
步骤1906包括存储器控制器102将解码(和错误校正)数据传输到半导体管芯。在一个实施方案中,向控制管芯304提供解码数据。在一个实施方案中,向存储器管芯300提供解码数据。
[0183]
步骤1908包括半导体管芯上的控制电路在校准sb参考电压时使用该错误校正数据。控制电路可以执行图9的步骤906至步骤910、过程1100、过程1300和/或过程1400,但不限于此。控制电路可以包括例如软位参考电压校准334。控制电路可以包括其他元件,例如状态机312、解码器314、功率控件316和/或读/写电路328中的一者或多者。
[0184]
鉴于上述内容,可以看出,第一方面包括一种装置,该装置包括:存储器控制器接口;和一个或多个控制电路,该一个或多个控制电路被配置为连接到包括非易失性存储器单元的存储器结构。一个或多个控制电路被配置为读取来自非易失性存储器单元的组的编码数据。读取码字可以包括在一个或多个硬位参考电平感测该组。一个或多个控制电路被配置为向数据解码器提供编码数据。一个或多个控制电路被配置为接收来自数据解码器的错误校正数据,以复原编程到组中的原始数据。一个或多个控制电路被配置为在与一个或多个硬位参考电平相关联的候选软位参考电平感测该组,从而生成针对每个相应候选软位参考电平的数据。一个或多个控制电路被配置为针对每个候选软位参考电平,计算错误校正数据与针对相应候选软位参考电平的数据之间的互信息。一个或多个控制电路被配置为基于该互信息建立用于感测存储器结构中的非易失性存储器单元的软位参考电平。
[0185]
在第二方面,并且为了促进第一方面,建立用于感测存储器结构中的非易失性存储器单元的软位参考电平包括一个或多个控制电路选择候选软位参考电平,该候选软位参考电平具有错误校正数据与针对相应候选软位参考电平的数据之间的最大互信息。
[0186]
在第三方面,并且为了促进第一方面或第二方面,针对每个候选软位参考电平,计算错误校正数据与针对相应候选软位参考电平的数据之间的互信息包括一个或多个控制电路:基于在相应候选软位参考电平感测到的数据来计算针对每个相应候选软位参考电平的信道跃迁矩阵;以及计算每个信道跃迁矩阵与错误校正数据之间的互信息。
[0187]
在第四方面,并且为了促进第一方面或第二方面,针对每个候选软位参考电平,计算错误校正数据与针对相应候选软位参考电平的数据之间的互信息包括一个或多个控制电路:基于在相应候选软位参考电平感测到的数据来确定针对每个相应候选软位参考电平的对数似然比;以及计算错误校正数据与针对每个相应候选软位参考电平的对数似然比之间的互信息。
[0188]
在第五方面,并且为了促进第一方面至第四方面中的任一个方面,在候选软位参
考电平控制感测组包括一个或多个控制电路在预先确定的一组候选软位参考电平中的每一个候选软位参考电平感测非易失性存储器单元的组。
[0189]
在第六方面,并且为了促进第一方面至第五方面中的任一个方面,在候选软位参考电平感测组以及计算互信息包括一个或多个控制电路:a)在候选软位参考电平感测非易失性存储器单元的组;b)计算错误校正数据与在候选软位参考电平感测到的数据之间的互信息;以及c)针对不同的候选软位参考电平重复a)和b),直到互信息不再增加为止。
[0190]
在第七方面,并且为了促进第一方面至第六方面中的任一个方面,在候选软位参考电平感测组包括一个或多个控制电路:感测针对多组候选软位参考电平的数据,其中每个组包括针对与页面的数据相关联的每个硬位的一个候选软位电平;指示所述存储器控制器接口经通信信道向存储器控制器发送针对每组候选软位参考电平的针对所述组中的每个存储器单元的软位;以及由存储器控制器基于针对每组候选软位参考电平的针对组中的每个存储器单元的软位,模拟针对页面的候选软位参考电平的组合。
[0191]
在第八方面,并且为了促进第一方面至第七方面中的任一个方面,该装置包括:包含数据解码器的半导体管芯,该半导体管芯包括一个或多个控制电路,该一个或多个控制电路被配置为:计算错误校正数据与针对每个候选软位参考电平的数据之间的互信息;以及基于该互信息,建立用于感测存储器结构中的非易失性存储器单元的软位参考电平。
[0192]
在第九方面,并且为了促进第一方面至第八方面中的任一个方面,该装置包括:半导体管芯,该半导体管芯包括存储器控制器接口和一个或多个控制电路,该一个或多个控制电路被配置为连接到存储器结构;以及存储器控制器,该存储器控制器经通信信道与半导体管芯通信,其中该存储器控制器包括数据解码器;其中所述存储器控制器接口被配置为经所述通信信道向所述数据解码器提供所述编码数据。
[0193]
在第十方面,并且为了促进第九方面,半导体管芯的一个或多个控制电路被配置为:接收来自存储器控制器的错误校正数据,以复原编程到组中的原始数据;计算所述错误校正数据与针对所述相应候选软位参考电平的所述数据之间的所述互信息;以及基于该互信息,建立用于感测存储器结构中的非易失性存储器单元的软位参考电平。
[0194]
在第十一方面,并且为了促进第九方面,存储器控制器:接收来自数据解码器的错误校正数据,以复原编程到组中的原始数据;计算所述错误校正数据与针对所述相应候选软位参考电平的所述数据之间的所述互信息;以及基于该互信息,建立用于感测存储器结构中的非易失性存储器单元的软位参考电平。
[0195]
在第十二方面,并且为了促进第一方面至第十一方面中的任一个方面,一个或多个硬位参考电平是一个或多个硬位参考电压;在所述候选软位参考电平感测所述组包括所述一个或多个控制电路在针对所述一个或多个硬位参考电压中的每一个硬位参考电压的下候选软位参考电压和上候选软位参考电压感测所述组;计算所述互信息包括所述一个或多个控制电路针对每个下候选软位参考电压和针对每个上候选软位参考电压计算所述错误校正数据与基于所述候选软位参考电压感测到的所述数据之间的互信息;建立软位参考电平包括一个或多个控制电路:i)针对每个硬位参考电压,选择具有最高互信息的下候选软位参考电压作为校准的下软位参考电压;以及ii)针对每个硬位参考电压,选择具有最高互信息的上候选软位参考电压作为校准的上软位参考电压。
[0196]
一个实施方案包括操作非易失性存储装置的方法。该方法包括在一个或多个hb参
考电压感测非易失性存储器单元的组以生成编码数据。该方法包括解码和错误校正编码数据以复原编程到组中的数据。该方法包括在针对一个或多个硬位参考电压中的每一个硬位参考电压的下候选软位参考电压和上候选软位参考电压感测组。该方法包括针对每个下候选软位参考电压和针对每个上候选软位参考电压,计算错误校正数据与基于候选软位参考电压感测到的数据之间的互信息。该方法包括针对每个硬位参考电压,选择具有最高互信息的下候选软位参考电压作为校准的下软位参考电压。该方法包括针对每个硬位参考电压,选择具有最高互信息的上候选软位参考电压作为校准的上软位参考电压。
[0197]
一个实施方案包括一种包括存储器结构的非易失性存储器系统,该存储器结构包括非易失性存储器单元。存储器系统包括感测装置,该感测装置用于基于一个或多个硬位参考电平从非易失性存储器单元的组读取码字。该感测装置进一步用于在候选软位参考电压感测组,从而基于在相应候选软位参考电压和与相应候选软位参考电压相关联的硬位参考电压的感测来生成针对每个相应候选软位参考电压的数据。存储器系统包括解码装置,该解码装置用于解码和错误校正码字以复原编程到组中的原始数据。存储器系统包括软位校准装置,该软位校准装置用于基于原始数据与针对每个候选软位参考电压的数据之间的最高互信息选择校准的软位参考电压。
[0198]
在一个实施方案中,感测装置包括状态机312、地址解码器314、功率控件316、读/写电路328和/或感测块350中的一者或多者。在一个实施方案中,感测装置执行过程1100的步骤1102至步骤1106。在一个实施方案中,感测装置执行过程1300的步骤1302至步骤1306。在一个实施方案中,感测装置执行过程1700的步骤1702至步骤1708。
[0199]
在一个实施方案中,解码装置包括ecc 226/256、ecc引擎330和/或解码器390中的一者或多者。
[0200]
在一个实施方案中,软位校准装置包括读取参考电压校准引擎(225/255)、软位参考电压校准334中的一者或多者。在一个实施方案中,软位校准装置执行过程1100的步骤1110至步骤1120。在一个实施方案中,软位校准装置执行过程1300的步骤1308至步骤1314。在一个实施方案中,软位校准装置执行过程1400的步骤1406至步骤1414。
[0201]
已出于例证和描述的目的提出本发明的上述具体实施方式。它并非旨在是穷尽的或将本发明限制为所公开的精确形式。根据以上教导内容,很多修改和变型都是可能的。选择所述实施方案是为了最佳地阐明本发明的原理以及其实际应用,以由此使得本领域的其他技术人员能够最佳地在各种实施方案中使用具有适合于所构想的特定用途的各种修改的本发明。本发明的范围旨在由所附权利要求书限定。