1.本公开的实施例大体上涉及
存储器子系统,且更具体来说,涉及实施连续存储器编程
操作。
背景技术:
2.存储器子系统可以包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。
技术实现要素:
3.本公开的一实施例提供一种存储器装置,其包括:存储器阵列,其包括电耦合到多个导电线的多个存储器
单元;和控制器,其耦合到
所述存储器阵列,所述控制器执行包括以下各项的操作:相对于所述存储器阵列的存储器单元集执行存储器编程操作,其中所述存储器编程操作包括施加至与所述存储器单元集电耦合的一或多个导电线的编程脉冲序列;响应于接收到执行存储器存取操作的命令,在执行所述编程脉冲序列中的当前编程脉冲之后暂停所述存储器编程操作,其中所述当前编程脉冲在第一电压电平下执行;发起所述存储器存取操作;和通过在超过所述第一电压电平的第二电压电平下执行下一编程脉冲来重新开始所述存储器编程操作。
4.本公开的另一实施例提供一种包括可执行指令的非暂时性计算机可读存储媒体,所述可执行指令在由管理包括多个存储器单元的存储器阵列的控制器执行时致使所述控制器执行包括以下各项的操作:相对于所述存储器阵列的存储器单元集执行存储器编程操作,其中所述存储器编程操作包括施加至与所述存储器单元集电耦合的一或多个导电线的第一编程脉冲序列;响应于接收到执行存储器存取操作的命令,在执行所述编程脉冲序列中的当前编程脉冲之后暂停所述存储器编程操作,其中所述当前编程脉冲在第一电压电平下执行;发起所述存储器存取操作;通过执行施加至所述一或多个导电线的第二编程脉冲序列来重新开始所述存储器编程操作;和通过将从所述存储器装置读取的一或多个数据项存储于与所述存储器单元集相关联的输入/输出(i/o)缓冲器中来完成所述存储器存取操作,其中所述i/o缓冲器不被所述存储器编程操作利用。
5.本公开的又一实施例提供一种方法,其包括:通过处理装置相对于存储器阵列的存储器单元集执行存储器编程操作,其中所述存储器编程操作包括施加至与所述存储器单元集电耦合的一或多个导电线的编程脉冲序列;响应于接收到执行存储器存取操作的命令,在执行所述编程脉冲序列中的当前编程脉冲之后暂停所述存储器编程操作,其中所述当前编程脉冲在第一电压电平下执行;发起所述存储器存取操作;和通过在超过所述第一电压电平的第二电压电平下执行下一编程脉冲来重新开始所述存储器编程操作。
附图说明
6.根据下文提供的具体实施方式和本公开的各种实施例的附图将更加充分地理解本公开。
7.图1说明根据本公开的一些实施例的包含存储器子系统的实例计算系统。
8.图2是根据实施例的与存储器子系统的存储器子系统控制器通信的存储器装置的框图。
9.图3a示意性地说明布置于存储器装置中的存储器单元集。
10.图3b示意性地说明源极-漏极电流对用于两个存储器单元的控制栅极电压的相依性。
11.图3c示意性地说明用于存储器单元的阈值控制栅极电压的实例分布。
12.图4示意性地示出实例存储器阵列。
13.图5示意性地说明根据本公开的方面的实例连续存储器编程操作。
14.图6是根据本公开的实施例的执行连续存储器编程操作的实例方法的流程图。
15.图7是其中可操作本公开的实施例的实例计算机系统的框图。
具体实施方式
16.本公开的方面针对于实施连续存储器编程操作。一或多个存储器装置可为存储器子系统的部分,其可为存储装置、存储器模块或存储装置与存储器模块的混合。结合图1描述存储装置和存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如存储数据的存储器装置)的存储器子系统。主机系统可提供数据以存储于存储器子系统处,且可请求从存储器子系统检索数据。
17.存储器子系统可以包含高密度非易失性存储器装置,其中当没有电力被供应到存储器装置时需要数据的保持。非易失性存储器装置的一个实例为与非(nand)存储器装置。下文结合图1描述非易失性存储器装置的其它实例。非易失性存储器装置是一或多个裸片的封装。每一裸片可包含两个或更多个平面。对于一些类型的非易失性存储器装置(例如,nand装置),每个平面包含物理块集。在一些实施方案中,每一块可包含多个子块。每一平面承载形成到硅晶片上并且通过被称为字线和位线的导体连结的存储器单元矩阵,使得字线连结形成存储器单元矩阵的行的多个存储器单元,而位线连结形成存储器单元矩阵的列的多个存储器单元。
18.取决于单元类型,每一存储器单元可存储一或多个二进制信息位,并且具有与正存储的位数目相关的各种逻辑状态。逻辑状态可以由二进制值(例如,“0”和“1”或这类值的组合)表示。可在单个操作中例如通过选择连续字线一起编程被称为存储器页的存储器单元集。
19.可响应于从主机接收到写入命令而相对于存储器单元集(例如,页)执行的编程操作可涉及将编程电压脉冲依序施加到所选字线。在一些实施方案中,编程脉冲电压可从初始电压值(例如,0v)依序斜升到最终电压值(例如,v
max
)。未被选字线可在编程操作期间在小于编程电压的特定电压(例如,传递电压)下被加偏压。
20.在说明性实例中,具有递增量值(例如,递增预定义的脉冲步长)的电压电平的一系列高振幅脉冲施加至所选字线以便增加与那个字线连接的存储器单元集的电荷电平,且
进而增加阈值电压。在每一编程脉冲之后,或在特定数目的编程脉冲之后,可执行编程验证操作以确定存储器单元集的阈值电压是否已增加到所要编程电平。
21.在一些实施方案中,存储器子系统控制器可暂停正在进行中的编程操作以便执行更高优先级的存储器存取操作(例如,读取操作)。在完成更高优先级的存储器存取操作之后,控制器可即刻接收重新开始编程命令,所述重新开始编程命令指示被更高优先级的存储器存取操作占用的资源已变得可用,且因此暂停的编程操作可重新开始。暂停的持续时间是不可预测的,因此引起先验未知的电荷损失,所以将需要通过以下操作来重新开始编程操作:执行编程验证操作,接着发出将在低于暂停前一编程操作时所处的电压电平的电压电平处开始的一系列编程脉冲。因此,可能需要在重新开始编程操作之后即刻重复编程脉冲中的至少一些,这将进一步增加编程操作的持续时间。考虑到任何编程操作可能暂停不止一次,可归因于由更高优先级的存储器存取操作引起的暂停而显著增加存储器子系统中的编程操作的总持续时间。
22.本公开的实施方案通过实施连续编程操作来解决上文提及的缺陷以及各种常见技术的其它缺陷。连续编程操作可被更高优先级的存储器存取操作中断,但将在发起更高优先级的存储器存取操作之后(而非在更高优先级的存储器存取操作完成之后)即刻自动重新开始。为了允许立即重新开始编程操作,在编程操作与居间的更高优先级的存储器存取(例如,读取)操作之间不应存在共享的输入/输出(i/o)缓冲器。这类缓冲器解除联系可通过以下操作来实现:实施用于存储执行编程操作必需的数据的额外存储器元件,因此释放由次级数据高速缓存器(sdc)实施的用于执行居间的更高优先级的存储器存取操作的i/o缓冲器,如本文中在下文更详细描述。
23.虽然本文所描述的实例涉及单层层级单元(slc)编程,但在各种其它实施方案中,可实施用于编程n个存储器单元以每单元存储两个或更多个位的类似技术。
24.因此,此方法的优点包含但不限于通过实施连续编程操作来提高存储器编程操作的效率,所述连续编程操作在被更高优先级的存储器存取操作中断之后,将在发起更高优先级的存储器存取操作之后立即自动重新开始。
25.图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类的组合。
26.存储器子系统110可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含固态驱动器(ssd)、快闪驱动器、通用串行总线(usb)快闪驱动器、嵌入式多媒体控制器(emmc)驱动器、通用快闪存储器(ufs)驱动器、安全数字(sd)和硬盘驱动器(hdd)。存储器模块的实例包含双列直插式存储器模块(dimm)、小外形dimm(so-dimm),以及各种类型的非易失性双列直插式存储器模块(nvdimm)。
27.计算系统100可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、支持物联网(iot)的装置、嵌入式计算机(例如,包含在运载工具、工业设备或联网市售装置中的计算机),或这类包含存储器和处理装置的计算装置。
28.计算系统100可包含主机系统120,所述主机系统耦合到一或多个存储器子系统110。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一
个存储器子系统110的主机系统120的一个实例。如本文所使用,“耦合到
……”
或“与
……
耦合”大体上指代组件之间的连接,其可为间接通信连接或直接通信连接(例如,无居间组件),无论是有线还是无线的,包含例如电学、光学、磁性等连接。
29.主机系统120可包括处理器芯片组和由所述处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存器、存储器控制器(例如,nvdimm控制器),和存储协议控制器(例如,pcie控制器、sata控制器)。主机系统120使用例如存储器子系统110将数据写入到存储器子系统110并从存储器子系统110读取数据。
30.主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行连接的scsi(sas)、双数据速率(ddr)存储器总线、小型计算机系统接口(scsi)、双列直插式存储器模块(dimm)接口(例如,支持双数据速率(ddr)的dimm套接接口)等。物理主机接口可以用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过物理主机接口(例如,pcie总线)与主机系统120耦合时,主机系统120可以进一步使用nvm高速(nvme)接口存取组件(例如,存储器装置130)。物理主机接口可以提供在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。图1作为实例示出存储器子系统110。一般来说,主机系统120可经由同一通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。
31.存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(ram),例如动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。
32.非易失性存储器装置(例如,存储器装置130)的一些实例包含“与非”(nand)型快闪存储器和就地写入存储器,例如三维交叉点(“3d交叉点”)存储器装置,其为非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来进行位存储。另外,与许多基于闪存的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。nand型快闪存储器包括例如二维nand(2d nand)和三维nand(3d nand)。
33.存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如,单层级单元(slc)可每单元存储一个位。其它类型的存储器单元(例如多层级单元(mlc)、三层级单元(tlc)、四层级单元(qlc)和五到层级单元(plc))可每单元存储多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,例如slc、mlc、tlc、qlc或此类存储器单元阵列的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的slc部分、mlc部分、tlc部分、qlc部分或plc部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,nand),页可进行分组以形成块。
34.虽然描述了非易失性存储器组件,例如3d交叉点非易失性存储器单元阵列和nand型快闪存储器(例如,2d nand、3d nand),但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(rom)、相变存储器(pcm)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(fetram)、铁电随机存取存储器(feram)、磁随机存取存
储器(mram)、自旋转移力矩(stt)-mram、导电桥接ram(cbram)、电阻性随机存取存储器(rram)、基于氧化物的rram(oxram)、或非(nor)快闪存储器、电可擦除可编程只读存储器(eeprom)。
35.存储器子系统控制器115(为简单起见,控制器115)可与存储器装置130通信以进行操作,例如在存储器装置130处读取数据、写入数据或擦除数据和其它此类操作。存储器子系统控制器115可以包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路系统以执行本文所描述的操作。存储器子系统控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等),或其它合适的处理器。
36.存储器子系统控制器115可为处理装置,其包括配置成执行存储在本地存储器119中的指令的一或多个处理器(例如,处理器117)。在所说明的实例中,存储器子系统控制器115的本地存储器119包括配置成存储指令的嵌入式存储器,所述指令用于进行控制存储器子系统110的操作(包括处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。
37.在一些实施例中,本地存储器119可包含存储存储器指针、提取的数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(rom)。虽然在图1中的实例存储器子系统110已说明为包含存储器子系统控制器115,但在本公开的另一个实施例中,存储器子系统110不包含存储器子系统控制器115,而是替代地可依靠外部控制(例如,由外部主机或由与存储器子系统分开的处理器或控制器提供)。
38.通常,存储器子系统控制器115可从主机系统120接收命令或操作,且可将所述命令或操作转换为指令或适当命令来实现对存储器装置130的所要存取。存储器子系统控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测及错误校正码(ecc)操作、加密操作、高速缓存操作,及与存储器装置130相关联的逻辑地址(如,逻辑块地址(lba)、名称空间)与物理地址(例如,物理块地址)之间的地址转换。存储器子系统控制器115可另外包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可以将从主机系统接收到的命令转换成存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换成用于主机系统120的信息。
39.存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可以包含高速缓存器或缓冲器(例如,dram)和地址电路系统(例如,行解码器和列解码器),其可从存储器子系统控制器115接收地址且对地址进行解码以存取存储器装置130。
40.在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子系统控制器115操作以在存储器装置130的一或多个存储器单元上执行操作。外部控制器(例如,存储器系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器子系统110为受管理存储器装置,其包含具有裸片上的控制逻辑(例如,本地媒体控制器135)和相同存储器装置封装内用于媒体管理的控制器(例如,存储器子系统控制器115)的原始存储器装置130。受管理存储器装置的实例是受管理nand(mnand)装置。
41.在一个实施例中,存储器子系统110包含存储器接口组件113。存储器接口组件113
负责处理存储器子系统控制器115与存储器子系统110的存储器装置(例如,存储器装置130)的交互。举例来说,存储器接口组件113可将与从主机系统120接收的请求相对应的存储器存取命令发送到存储器装置130,所述存储器存取命令例如编程命令、读取命令或其它命令。另外,存储器接口组件113可从存储器装置130接收数据,例如响应于读取命令或成功执行编程命令的确认而检索的数据。举例来说,存储器子系统控制器115可以包含处理器117(处理装置),其被配置成执行存储在本地存储器119中的指令以用于执行本文中所描述的操作。
42.在一个实施例中,存储器装置130包含被配置成响应于从存储器接口113接收到存储器存取命令而进行对应存储器存取操作的编程管理器134。在一些实施例中,本地媒体控制器135包含编程管理器134的至少一部分并且被配置成执行本文中所描述的功能性。在一些实施例中,使用固件、硬件组件或上述组合在存储器装置130上实施编程管理器134。在一个实施例中,编程管理器134从例如存储器接口113的请求者接收对将数据编程到存储器装置130的存储器阵列的请求。存储器阵列可包含形成于字线和位线的相交点处的存储器单元阵列。在一个实施例中,举例来说,存储器单元分组成块,所述块可进一步划分成子块,其中跨数个子块共享给定字线。在一个实施例中,每一子块对应于存储器阵列中的单独平面。与子块内的字线相关联的存储器单元组被称为物理页。
43.在各种实施例中,存储器阵列可包含多个部分,包含例如其中子块被配置成slc存储器的一或多个部分和/或其中子块被配置成多层级单元(mlc)存储器(即,包含可每单元存储两个或更多个信息位的存储器单元,例如tlc单元)的一或多个部分。tlc存储器中的存储器单元的电压电平形成8个编程分布的集合,其表示存储在每一存储器单元中的三个位的8个不同组合。取决于其如何配置,一个子块中的每一物理页可包含多个页类型。举例来说,由单层级单元(slc)形成的物理页具有称为下部逻辑页(lp)的单个页类型。多层级单元(mlc)物理页类型可包括lp和上部逻辑页(up),tlc物理页类型为lp、up和额外逻辑页(xp),且qlc物理页类型为lp、up、xp和顶部逻辑页(tp)。例如,由qlc存储器类型的存储器信元形成的物理页可具有总共四个逻辑页,其中每个逻辑页可存储不同于存储在与所述物理页相关联的其它逻辑页中的数据的数据。
44.在说明性实例中,编程管理器134可接收将被编程到存储器装置130的一或多个数据项。作为响应,编程管理器134可执行编程操作,所述编程操作将逐步增加的编程电压电平序列施加到一或多个字线。编程操作可被更高优先级的存储器存取操作中断,并且将在发起更高优先级的存储器存取操作之后即刻自动重新开始,如本文中在下文更详细描述。
45.图2是根据实施例的呈存储器装置130形式的第一设备与呈存储器子系统的存储器子系统控制器115(例如,图1的存储器子系统110)形式的第二设备通信的简化框图。电子系统的一些实例包含个人计算机、个人数字助理(pda)、数码相机、数字媒体播放器、数字记录器、游戏、电气设备、交通工具、无线装置、移动电话等等。存储器子系统控制器115(例如,存储器装置130外部的控制器)可为存储器控制器或其它外部主机装置。
46.存储器装置130包含逻辑上布置成行和列的存储器单元阵列104。逻辑行的存储器单元通常连接到同一存取线(例如,字线),而逻辑列的存储器单元通常选择性地连接到同一数据线(例如,位线)。单个存取线可与超过一个逻辑行的存储器单元相关联,且单个数据线可与超过一个逻辑列相关联。存储器单元阵列104的至少一部分的存储器单元(图2中未
示出)能够被编程到至少两个目标数据状态中的一个。
47.提供行解码电路系统108和列解码电路系统111以对地址信号进行解码。接收地址信号并对地址信号进行解码以存取存储器单元阵列204。存储器装置130还包含输入/输出(i/o)控制电路系统112,其用以管理命令、地址和数据到存储器装置130的输入以及数据和状态信息从存储器装置130的输出。地址寄存器114与i/o控制电路系统112和行解码电路系统108以及列解码电路系统111通信以在解码之前锁存地址信号。命令寄存器124与i/o控制电路系统112和本地媒体控制器135通信以锁存传入命令。
48.控制器(例如,存储器装置130内部的本地媒体控制器135)响应于命令控制对存储器单元阵列104的存取,并生成外部存储器子系统控制器115的状态信息,即,本地媒体控制器135被配置成对存储器单元阵列204执行存取操作(例如,读取操作、编程操作和/或擦除操作)。本地媒体控制器135与行解码电路系统108和列解码电路系统111通信,以响应于地址控制行解码电路系统108和列解码电路系统111。在一个实施例中,本地媒体控制器135包含编程管理器134,所述编程管理器可相对于存储器装置130实施存储器编程操作,如本文中所描述。
49.本地媒体控制器135还与高速缓存寄存器218通信。高速缓存寄存器118按照本地媒体控制器135的指示锁存传入或传出的数据,以在存储器单元阵列104分别忙于写入或读取其它数据时临时存储数据。在编程操作(例如,写入操作)期间,数据可以从高速缓存寄存器118传递到数据寄存器121以传送到存储器单元阵列204;然后新数据可以从i/o控制电路系统212锁存在高速缓存寄存器118中。在读取操作期间,数据可以从高速缓存寄存器118传递到i/o控制电路系统112以输出到存储器子系统控制器115;然后可以将新数据从数据寄存器121传递到高速缓存寄存器218。高速缓存寄存器118和/或数据寄存器121可以形成存储器装置130的页缓冲器(例如,可以形成所述页缓冲器的一部分)。页缓冲器可另外包含感测装置(图2中未示出),用于例如通过感测连接到存储器单元阵列204的存储器单元的数据线的状态来感测那个存储器单元的数据状态。状态寄存器122可与i/o控制电路系统112和本地存储器控制器135通信,以锁存状态信息以输出到存储器子系统控制器115。
50.存储器装置130在存储器子系统控制器115处通过控制链路132从本地媒体控制器135接收控制信号。例如,控制信号可包含芯片启用信号ce#、命令锁存启用信号cle、地址锁存启用信号ale、写入启用信号we#、读取启用信号re#和写入保护信号wp#。依据存储器装置130的性质,可通过控制链路132进一步接收额外或替代的控制信号(未示出)。在一个实施例中,存储器装置130通过多路复用输入/输出(i/o)总线136从存储器子系统控制器115接收命令信号(其表示命令)、地址信号(其表示地址)和数据信号(其表示数据),并通过i/o总线136将数据输出到存储器子系统控制器115。
51.例如,可经由输入/输出(i/o)控制电路系统112处的i/o总线136的i/o引脚[7:0]接收命令,接着可将命令写入到命令寄存器224中。可经由输入/输出(i/o)控制电路系统112处的i/o总线136的i/o引脚[7:0]接收地址,接着可将地址写入到地址寄存器214中。可经由输入/输出(i/o)引控制电路系统112处用于8位装置的i/o引脚[7:0]或用于16位装置的i/o引脚[15:0]接收数据,然后可将数据写入到高速缓存寄存器218中。随后可将数据写入到数据寄存器121中以用于对存储器单元阵列204进行编程。
[0052]
在实施例中,可省略高速缓存寄存器118,且可将数据直接写入到数据寄存器220
中。还可通过用于8位装置的输入/输出(i/o)引脚[7:0]或用于16位装置的输入/输出(i/o)引脚[15:0]输出数据。虽然可参考i/o引脚,但其可包含实现通过外部装置(例如,存储器子系统控制器115)电连接到存储器装置130的任何导电节点,例如常用的导电衬垫或导电凸块。
[0053]
在一些实施方案中,可提供额外电路系统和信号,且图2的存储器装置130已简化。应认识到,参考图2所描述的各种块组件的功能可不必分到集成电路装置的不同组件或组件部分。举例来说,集成电路装置的单个组件或组件部分可适于执行图2的多于一个块组件的功能性。替代地,可组合集成电路装置的一或多个组件或组件部分以进行图2的单个块组件的功能。此外,尽管根据各种信号的接收和输出的流行惯例描述了特定i/o引脚,但应注意,可在各种实施例中使用i/o引脚(或其它i/o节点结构)的其它组合或其它数目个i/o引脚(或其它i/o节点结构)。
[0054]
存储器子系统100的一或多个存储器装置可例如由利用构建在半导体芯片上的晶体管阵列的nand存储器装置表示。如图3a中示意性所示,存储器装置的存储器单元可以是晶体管,例如金属氧化物半导体场效应晶体管(mosfet),其具有源(s)电极和漏(d)电极以使电流从中通过。源极电极和漏极电极可连接到导电位线(bl),所述导电位线可由多个存储器单元共享。存储器装置可包含连接到多个字线(wl)和多个位线(bl)的阵列或存储器单元,如通过图4示意性地说明。存储器装置可另外包含用于选择性地将wl和bl耦合到提供控制栅极和源极-漏极信号的电压源的电路系统,其出于清楚和简明起见从图4中省略。
[0055]
再次参考图3a,存储器单元302和304可分别连接到相同的位线n和两个不同的导电字线m和m+1。存储器单元可进一步具有控制栅极(cg)电极以接收电压信号v
cg
,从而控制在源极电极与漏极电极之间流动的电流的量值。更具体地说,可存在阈值控制栅极电压v
t
(在本文中也被称为“阈值电压”或简称为“阈值”),使得对于v
cg
《v
t
,源极-漏极电流可能较低,但一旦控制栅极电压超过阈值电压,即v
cg
》v
t
,则可大体上增加。同一存储器装置的晶体管可通过其阈值电压的分布来表征,即p(v
t
)=dw/dv
t
,因此dw=p(v
t
)dv
t
表示任何给定晶体管的阈值电压在区间[v
t
,v
t
+dv
t
]内的可能性。举例来说,图3b示意性地说明源极-漏极电流i
sd
对用于具有不同阈值控制栅极电压的两个存储器单元,例如存储器单元302(实线)和存储器单元304(虚线)的控制栅极电压的依赖性。
[0056]
为了使存储器单元为非易失性的,单元可进一步装备有导电岛-电荷存储节点,其可通过绝缘层(在图3a中描绘为虚线区)与控制栅极、源极电极和漏极电极电隔离。响应于恰当选择的正(相对于源极电势)控制栅极电压v
cg
,电荷存储节点可接收电荷q,所述电荷甚至在存储器单元通电之后也可永久地存储于其上,且因此停止源极-漏极电流。电荷q可影响阈值电压p(v
t
,q)的分布。一般来说,与不带电的电荷存储节点的分布p(v
t
)相比,电荷q的存在使阈值电压的分布朝向更高的电压移动。发生这种情况的原因是,可能需要更强的正控制栅极电压v
cg
来克服电荷存储节点电荷q的负电势。如果可以选择将电荷序列qk(其中1≤k≤2n)的任何电荷编程(然后在读取操作期间进行检测)到存储器单元中,则存储器单元可用作n位存储器单元。电荷qk优选地被选择为彼此足够不同,以使得任何两个邻近的电压分布p(v
t
,qk)和p(v
t
,q
k+1
)不重叠而由谷值裕度分隔开,从而2n个分布p(v
t
,qk)与2
n-1个谷值裕度间隔开。
[0057]
图3c示意性地说明通过将存储器单元编程为至少八个电荷状态而能够存储三位
数据的存储器单元的阈值控制栅极电压的分布,所述至少八个电荷状态相差单元的电荷存储节点上的电荷量。图3c展示以2
3-1=7个谷值裕度vmk分隔开的三层级单元(tlc)的2n=8个不同电荷状态的阈值电压p(v
t
,qk)的分布。因此,编程成第k电荷状态(即,具有沉积在其充电存储节点上的电荷qk)的存储器单元可存储n位的特定组合(例如,对于n=4,0110)。此电荷状态qk可以在读出操作期间通过检测出谷值裕度vmk内的控制栅极电压v
cg
足以使单元向源极-漏极电流开放而前一谷线容限vm
k-1
内的控制栅极电压不足以使单元向源极-漏极电流开放而确定。
[0058]
存储器装置可通过存储器的每一单元所存储的位数目分类。举例来说,单层级单元(slc)存储器具有可各自存储一位数据(n=1)的单元。a多级单元(mlc)存储器具有可各自存储最多两位数据(n=2)的单元,三级单元(tlc)存储器具有可各自存储最多三位数据(n=3)的单元,并且四级单元(qlc)存储器具有可各自存储最多四位数据(n=4)的单元。一般来说,本文中所描述的操作可应用于具有n位(其中n》1)存储器单元的存储器装置。
[0059]
例如,tlc可能够处于至少八个电荷状态qk中的一者(其中第一状态可以是不带电状态q1=0),其阈值电压分布由谷值裕度vmk分隔开,可以用于读出存储在存储器单元中的数据。举例来说,如果在读取操作期间确定读取阈值电压处于2
n-1个谷值裕度的特定谷值裕度内,则可以确定存储器单元处于2n个可能的电荷状态中的特定电荷状态。通过识别单元的右谷值裕度,可确定其所有n位具有什么值。谷值裕度的识别符(例如其坐标,例如中心和宽度的位置)可存储在存储器控制器215的读取电平阈值寄存器中。
[0060]
如上文中所提及,存储器控制器215可对存储器单元的状态进行编程,并且接着读取可通过将存储器单元的读取阈值电压v
t
与一或多个读取电平阈值进行比较来读取此状态。可在通过先前编程操作将存储器单元置于其带电状态中的一个中之后执行读取操作,所述先前编程操作可包含一或多个编程遍次。每一编程遍次会将适当编程电压应用于给定字线,以便将适当电荷放置在连接到字线的存储器单元的电荷存储节点上。
[0061]
编程操作涉及应用于所选(目标)字线(即,电耦合到目标存储器单元的字线)的编程电压脉冲序列。再次参考图3a,存储器单元的源(s)电极和漏(d)电极可连接到被多个存储器单元共享的导电位线。编程操作将经由对应字线(wl)将编程电压脉冲序列应用于控制栅极(cg)。每一编程电压脉冲将感应将电子拉动到电荷存储节点上的电场。在将每一编程脉冲应用于所选字线之后,可通过读取存储器单元来执行验证操作,以便确定存储器单元的阈值电压v
t
是否已达到所要值(电压验证电平)。如果存储器单元的阈值电压v
t
已达到与所要状态相关联的验证电压,则存储器单元所连接的位线可在编程禁止电压下被加偏压,从而禁止耦合到位线的存储器单元进一步编程,即,以防止存储器单元的阈值电压v
t
响应于应用于所选字线的后续编程脉冲进一步向上移位。
[0062]
图5示意性地说明根据本公开的方面的实例连续存储器编程操作。如图5示意性地说明,可响应于从主机接收到写入命令而相对于存储器单元集(例如,页)执行编程操作500。编程操作500可涉及将编程电压脉冲510a-510k依序施加到所选字线,以便增加与那个字线连接的存储器单元集的电荷电平,且进而增加阈值电压。
[0063]
在一些实施方案中,编程脉冲电压可从初始电压值(例如,0v)依序斜升到最终电压值(例如,v
pgm
)。未被选字线可在编程操作期间在小于编程电压的特定电压(例如,传递电压)下被加偏压。
[0064]
在每一编程脉冲510a-510z之后,或在特定数目个编程脉冲之后,可执行编程验证操作520a-520z,这可涉及用于确定存储器单元集的阈值电压是否已增加到所要编程电平的一或多个读取操作。
[0065]
如本文中在上文所提及,存储器子系统控制器可暂停正在进行中的编程操作以便执行更高优先级的存储器存取操作(例如,读取操作)。在图5的说明性实例中,存储器装置控制器可响应于接收到较高优先级的存储器存取命令(例如,读取命令),在施加当前编程脉冲510k并执行对应编程验证操作520k之后发起居间的读取操作530。存储器装置控制器可将编程操作状态(例如,编程脉冲序列号或对应电压电平、块地址,以及编程验证操作参数)保存于状态寄存器中(例如,存储器装置的页缓冲器锁存器中)。在保存编程操作状态之后,存储器装置控制器可即刻发起读取操作530,这涉及从存储器装置读取一或多个所请求的数据项。
[0066]
在发起更高优先级的存储器存取操作530之后,存储器装置控制器可即刻自动重新开始中断的编程操作500,而无需等待居间的读取操作530完成。存储器装置控制器无需外部发起的重新开始命令来重新开始中断的编程操作500。为了重新开始中断的编程操作500,存储器装置控制器通过读取状态寄存器恢复先前保存的编程操作状态(例如,编程脉冲序列号或对应电压电平、块地址,以及编程验证操作参数)。
[0067]
为了允许在发起更高优先级的存储器存取操作530之后立即重新开始编程操作500,已通过读取命令从存储器装置读取的数据存储于不被编程操作500利用的输入/输出(i/o)缓冲器(例如,次级数据高速缓存器(sdc))中。为了释放sdc以专用于读取操作,将编程操作数据存储于单独的存储器元件中,例如每位线一个位,可在页缓冲器锁存器中分配所述单独的存储器元件。
[0068]
由于被中断且自动重新开始的编程操作500在发起居间的读取操作之后即刻自动重新起动,且重新起动的操作继续施加编程电压,所述编程电压跟在中断之前施加的最后一个编程电压脉冲之后,因此发起居间的读取操作的额外时延相较于典型编程操作的总时延来说是微不足道的。
[0069]
图6是根据本公开的实施例的在覆写模式中执行连续存储器编程操作的实例方法的流程图。方法600可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,方法600由编程管理器组件134执行,所述编程管理器组件134可由图1的存储器子系统控制器115和/或本地媒体控制器135实施。虽然以特定序列或次序来示出,但是除非另外规定,否则可修改操作的次序。因此,所说明实施例应仅作为实例理解,且所说明操作可以不同次序执行,并且一些操作可并行地执行。另外,可在各种实施例中省略一或多个操作。因此,并非在每一实施例中需要所有操作。
[0070]
在操作610处,实施所述方法的控制器识别将由存储器装置的一部分存储的数据项。在说明性实例中,由图1的本地媒体控制器135实施的编程管理器134可从存储器子系统控制器115的存储器接口113接收对相对于存储器装置的指定部分执行编程操作(例如,写入操作)的请求。存储器装置的部分可包含电耦合到字线和一或多个位线的存储器单元集。在一个实施例中,存储器单元集可以由块表示。将写入到存储器装置的数据项通过图2的i/o数据路径112被接收并且通过控制器路由到存储器装置。在一个实施例中,将被编程的数
据可存储于与存储器单元集相关联的页缓冲器中,如本文中在上文更详细描述。
[0071]
在操作620处,控制器相对于存储器单元集执行存储器编程操作。存储器编程操作涉及将编程脉冲序列施加到与存储器单元集电耦合的字线。在一个实施例中,编程操作可涉及基于对应存储器单元的所要电荷电平选择性地抑制位线,同时将一或多个编程脉冲施加到所选字线。每一编程脉冲可后跟着编程验证操作,这涉及读取存储器单元集以便确认存储器单元已经达到所要电荷电平,如本文中在上文更详细描述。
[0072]
在操作630处,控制器接收执行较高优先级的存储器存取操作(例如,读取操作)的命令,如本文中在上文更详细描述。
[0073]
在操作640处,控制器暂停存储器编程操作。在一个实施例中,暂停存储器编程操作涉及完成编程脉冲序列中的当前编程脉冲并且执行后续读取验证操作。暂停存储器编程操作还涉及将编码编程操作状态的元数据(例如,编程脉冲序列号或对应电压电平、块地址,以及编程验证操作参数)存储于存储器装置的状态寄存器中,如本文中在上文更详细描述。
[0074]
在操作650处,控制器发起请求的存储器存取操作(例如,读取操作),这涉及从存储器单元集读取一或多个数据项,如本文中在上文更详细描述。
[0075]
在操作660处,控制器重新开始中断的存储器编程操作。重新开始存储器编程操作涉及从状态寄存器恢复编码编程操作状态的元数据(例如,编程脉冲序列号或对应电压电平、块地址,以及编程验证操作参数),如本文中在上文更详细描述。在一个实施例中,控制器通过继续将编程脉冲序列施加到与存储器单元集电耦合的字线来重新开始中断的存储器编程操作,所述编程脉冲序列在紧跟在已在中断编程操作之前施加的最后一个电压脉冲之后的下一编程脉冲处开始,如本文中在上文更详细描述。
[0076]
在操作670处,控制器在执行重新开始的存储器编程操作的同时,完成请求的存储器存取操作(例如,读取操作)。控制器将从存储器装置读取的一或多个数据项存储于与存储器单元集相关联的输入/输出(i/o)缓冲器中。在一个实施例中,i/o缓冲器由与存储器单元集相关联的次级数据高速缓存器(sdc)表示,如本文中在上文更详细描述。
[0077]
图7说明可在其内执行用于致使机器执行本文中所论述的方法的指令集的计算机系统1100的实例机器。在一些实施例中,计算机系统1100对应于主机系统(例如图1的主机系统120),其包含、耦合到或利用存储器子系统(例如图1的存储器子系统110)或可用以执行控制器的操作(例如以执行操作系统来执行对应于图1的编程管理器134的操作)。在替代性实施例中,机器可连接(例如联网)到lan、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
[0078]
所述机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行(依序或以其它方式)指定将由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以进行本文中所论述的方法中的任何一或多种。
[0079]
实例计算机系统1100包含处理装置1102、主存储器1104(例如,只读存储器(rom)、闪存存储器、动态随机存取存储器(dram)例如同步dram(sdram)或rambus dram(rdram)
等)、静态存储器1106(例如,闪存存储器、静态随机存取存储器(sram)等),以及数据存储系统1118,其经由总线1130彼此通信。
[0080]
处理装置1102表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置1102也可以是一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等等。处理装置1102被配置成执行指令1126以用于执行本文中所论述的操作和步骤。计算机系统1100可另外包含网络接口装置1108以在网络1120上通信。
[0081]
数据存储系统1118可包含机器可读存储媒体1114(也称为计算机可读媒体,例如非暂时性计算机可读媒体),其上存储有一或多个指令集1126或体现本文中所描述的方法或功能中的任一或多种的软件。指令1126还可在由计算机系统1100执行期间完全或至少部分地驻存在主存储器1104内和/或处理装置1102内,主存储器1104和处理装置1102也构成机器可读存储媒体。机器可读存储媒体1124、数据存储系统1118和/或主存储器1104可对应于图1的存储器子系统110。
[0082]
在一个实施例中,指令1126包含用于实施对应于图1的编程管理器134的功能性的指令。虽然在实例实施例中将机器可读存储媒体1124展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何媒体。术语“机器可读存储媒体”因此应被视为包含但不限于固态存储器、光学媒体和磁性媒体。
[0083]
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。
[0084]
然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
[0085]
本公开还涉及用于执行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,如但不限于任何类型的盘(包含软盘、光盘、cd-rom和磁性光盘)、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
[0086]
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另
外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
[0087]
本公开可提供为计算机程序产品或软件,其可包含在其上储存有可用以编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、闪存存储器组件等。
[0088]
在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。
技术特征:
1.一种存储器装置,其包括:存储器阵列,其包括电耦合到多个导电线的多个存储器单元;和控制器,其耦合到所述存储器阵列,所述控制器执行包括以下各项的操作:相对于所述存储器阵列的存储器单元集执行存储器编程操作,其中所述存储器编程操作包括施加至与所述存储器单元集电耦合的一或多个导电线的编程脉冲序列;响应于接收到执行存储器存取操作的命令,在执行所述编程脉冲序列中的当前编程脉冲之后暂停所述存储器编程操作,其中所述当前编程脉冲在第一电压电平下执行;发起所述存储器存取操作;和通过在超过所述第一电压电平的第二电压电平下执行下一编程脉冲来重新开始所述存储器编程操作。2.根据权利要求1所述的存储器装置,其中用于所述编程操作的编程操作数据存储于与所述存储器单元集相关联的页缓冲器中。3.根据权利要求1所述的存储器装置,其中所述操作另外包括:通过将从所述存储器装置读取的一或多个数据项存储于与所述存储器单元集相关联的输入/输出i/o缓冲器中,完成所述存储器存取操作。4.根据权利要求1所述的存储器装置,其中所述i/o缓冲器是由与所述存储器单元集相关联的次级数据高速缓存器sdc表示。5.根据权利要求1所述的存储器装置,其中暂停所述存储器编程操作另外包括:将所述编程操作的状态存储于与所述存储器单元集相关联的页缓冲器中。6.根据权利要求1所述的存储器装置,其中所述存储器编程另外包括将所述存储器单元集的阈值电压电平与至少一个预定义的阈值电压电平进行比较的一或多个编程验证操作。7.根据权利要求1所述的存储器装置,其中所述操作另外包括:与执行所述重新开始的存储器编程操作的一或多个编程脉冲同时地完成所述存储器存取操作。8.根据权利要求1所述的存储器装置,其中所述存储器存取操作是读取操作。9.根据权利要求1所述的存储器装置,其中所述存储器单元集是所述存储器阵列的块。10.一种包括可执行指令的非暂时性计算机可读存储媒体,所述可执行指令在由管理包括多个存储器单元的存储器阵列的控制器执行时致使所述控制器执行包括以下各项的操作:相对于所述存储器阵列的存储器单元集执行存储器编程操作,其中所述存储器编程操作包括施加至与所述存储器单元集电耦合的一或多个导电线的第一编程脉冲序列;响应于接收到执行存储器存取操作的命令,在执行所述编程脉冲序列中的当前编程脉冲之后暂停所述存储器编程操作,其中所述当前编程脉冲在第一电压电平下执行;发起所述存储器存取操作;通过执行施加至所述一或多个导电线的第二编程脉冲序列来重新开始所述存储器编程操作;和通过将从所述存储器装置读取的一或多个数据项存储于与所述存储器单元集相关联的输入/输出i/o缓冲器中来完成所述存储器存取操作,其中所述i/o缓冲器不被所述存储
器编程操作利用。11.根据权利要求10所述的非暂时性计算机可读存储媒体,其中用于所述编程操作的编程操作数据存储于与所述存储器单元集相关联的页缓冲器中。12.根据权利要求10所述的非暂时性计算机可读存储媒体,其中所述i/o缓冲器由与所述存储器单元集相关联的次级数据高速缓存器sdc表示。13.根据权利要求10所述的非暂时性计算机可读存储媒体,其中暂停所述存储器编程操作另外包括:将所述编程操作的状态存储于与所述存储器单元集相关联的页缓冲器中。14.根据权利要求10所述的非暂时性计算机可读存储媒体,其中所述存储器编程另外包括将所述存储器单元集的阈值电压电平与至少一个预定义的阈值电压电平进行比较的一或多个编程验证操作。15.根据权利要求10所述的非暂时性计算机可读存储媒体,其中所述操作另外包括:与执行所述重新开始的存储器编程操作的一或多个编程脉冲同时地完成所述存储器存取操作。16.根据权利要求10所述的非暂时性计算机可读存储媒体,其中所述存储器存取操作是读取操作。17.根据权利要求10所述的非暂时性计算机可读存储媒体,其中所述存储器单元集是所述存储器阵列的块。18.一种方法,其包括:通过处理装置相对于存储器阵列的存储器单元集执行存储器编程操作,其中所述存储器编程操作包括施加至与所述存储器单元集电耦合的一或多个导电线的编程脉冲序列;响应于接收到执行存储器存取操作的命令,在执行所述编程脉冲序列中的当前编程脉冲之后暂停所述存储器编程操作,其中所述当前编程脉冲在第一电压电平下执行;发起所述存储器存取操作;和通过在超过所述第一电压电平的第二电压电平下执行下一编程脉冲来重新开始所述存储器编程操作。19.根据权利要求18所述的方法,其中所述存储器存取操作是读取操作。20.根据权利要求18所述的方法,其中所述存储器单元集是所述存储器阵列的块。
技术总结
本申请案涉及连续存储器编程操作。一种实例存储器装置包括:存储器阵列,其包括电耦合到多个导电线的多个存储器单元;和控制器,其耦合到所述存储器阵列。所述控制器执行包括以下各项的操作:相对于所述存储器阵列的存储器单元集执行存储器编程操作,其中所述存储器编程操作包括施加至与所述存储器单元集电耦合的一或多个导电线的编程脉冲序列;响应于接收到执行存储器存取操作的命令,在执行所述编程脉冲序列中的当前编程脉冲之后暂停所述存储器编程操作,其中所述当前编程脉冲在第一电压电平下执行;发起所述存储器存取操作;和通过在超过所述第一电压电平的第二电压电平下执行下一编程脉冲来重新开始所述存储器编程操作。作。作。
技术研发人员:
莫斯基亚诺 A
受保护的技术使用者:
美光科技公司
技术研发日:
2022.08.31
技术公布日:
2023/3/3