用于非易失性储存阵列操作的数据寄存器复制的制作方法

文档序号:15235316发布日期:2018-08-21 20:27阅读:168来源:国知局

在各种实施例中,本公开涉及数据储存,并且更特别地涉及在用于非易失性储存阵列的写入或读取操作的数据寄存器之间复制数据。



背景技术:

页寄存器或页缓冲器可以储存用于写入到非易失性储存阵列的数据或已经从非易失性储存阵列读取的数据。储存阵列的列或位线可以耦接到数据寄存器、锁存器、缓冲器等,其储存用于列的读取或写入操作的数据。用于储存阵列的列的多个数据寄存器或锁存器可以提供附加缓存或缓冲。例如,用于阵列的列的第一数据寄存器可以为正在进行的写入操作储存数据,而用于该列的第二数据寄存器接收用于随后写入操作的附加数据。



技术实现要素:

提出了用于非易失性存储阵列的数据寄存器复制的设备。在一个实施例中,设备包含非易失性储存单元的阵列。在某个实施例中,写入缓冲器数据寄存器的集合配置为储存用于阵列的编程操作的目标数据。在其他实施例中,写入缓冲器数据寄存器将目标数据通信到阵列的对应列。在一个实施例中,影子数据寄存器的集合配置为从阵列的外围电路接收目标数据。在某个实施例中,在影子数据寄存器接收目标数据的部分时,由影子数据寄存器接收的目标数据的部分被复制到对应的写入缓冲器数据寄存器。

提出了用于非易失性存储阵列的数据寄存器复制的方法。在一个实施例中,方法包含使用影子数据锁存器接收目标数据,以用于将目标数据写入非易失性存储器单元的阵列的编程操作。在某个实施例中,方法包含在由相邻影子数据锁存器接收附加目标数据之前将目标数据复制到写入缓冲器数据锁存器。在其他实施例中,方法包含将写入目标数据从写入缓冲器数据锁存器写入到阵列。

在另一个实施例中,用于数据寄存器复制的设备包含构件,该构件使用影子数据寄存器的集合来接收目标数据以用于将目标数据写入到非易失性储存单元的阵列的编程操作。在某个实施例中,设备包含用于将目标数据复制到写入缓冲器数据寄存器的集合的构件,使得在由相邻影子数据寄存器接收目标数据的随后部分之前,将由影子数据寄存器接收到的目标数据的部分复制到对应的写入缓冲器数据寄存器。在其他实施例中,设备包含用于将目标数据从写入缓冲器数据寄存器的集合写入到阵列的构件。

附图说明

下面参考附图中图示的具体实施例来包含更特定的描述。应理解,这些附图仅描绘了本公开的某些实施例,并且因此不被认为是对其范围的限制,通过使用附图利用附加特异性和细节来描述和解释本公开,其中:

图1a是图示包括页寄存器部件的系统的一个实施例的示意性框图;

图1b是图示包括页寄存器部件的系统的另一个实施例的示意性框图;

图2a是图示与存储器阵列通信的页寄存器的一个实施例的示意性框图;

图2b是图示影子数据寄存器和写入缓冲器数据寄存器的一个实施例的示意性框图;

图3是图示页寄存器部件的一个实施例的示意性框图;

图4是图示写入缓冲器数据寄存器的一个实施例的电路图;

图5是图示用于数据寄存器复制的方法的一个实施例的示意性流程图;以及

图6是图示用于数据寄存器复制的方法的其他实施例的示意性流程图。

具体实施方式

本公开的各方面可以实施为设备、系统、方法或计算机程序产品。因此,本公开的各方面可以采取完全硬件实施例、完全软件实施例(包含固件、驻留软件、微代码等)或组合软件和硬件方面的实施例的形式,其在本文中可以全部总体上称为“电路”、“模块”、“设备”或“系统”。此外,本公开的各方面可以采取计算机程序产品的形式,该计算机程序产品实施在储存计算机可读和/或可执行程序代码的一个或多个非暂时性计算机可读储存介质中。

本说明书中描述的许多功能单元已被标记为模块,以便更加特别地强调他们的实现方式独立性。例如,模块可以实现为硬件电路(包括定制vlsi电路或门阵列)、现成半导体(诸如逻辑芯片、晶体管)或其他分立部件。模块也可以实现为可编程硬件装置,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑装置等。

模块也可以至少部分地以由各种类型的处理器执行的软件实现。例如,可执行代码的识别模块可以包括计算机指令的一个或多个物理或逻辑块,其可以例如被组织为对象、进程或函数。尽管如此,识别模块的可执行体不需要物理上在一起,而是可以包括储存在不同位置的全异(disparate)指令,当这些指令在逻辑上结合在一起时构成模块并实现模块的所述目的。

事实上,可执行代码的模块可以包含单个指令或许多指令,并且甚至可以分布在数个不同的代码段上、在不同的程序之中、跨越数个存储器装置等。在模块或模块的部分实现为软件的情况下,软件部分可以储存在一个或多个计算机可读和/或可执行储存介质上。可以利用一个或多个计算机可读储存介质的任何组合。计算机可读储存介质可以包含但不限于,例如电子的、磁的、光学的、电磁的、红外的或半导体的系统、设备或装置,或前述的任何适合的组合,但不包含传播的信号。在本文档的上下文中,计算机可读和/或可执行储存介质可以是可以含有或储存程序的任何有形和/或非暂时性介质,该程序可以由指令执行系统、设备、处理器或装置使用或与其有关。

用于实施本公开的各方面的操作的计算机程序代码可以以一种或多种编程语言的任何组合来编写,该编程语言包含面向对象的编程语言(诸如python、java、smalltalk、c++、c#、objectivec等),常规过程编程语言(诸如“c”编程语言、脚本编程语言和/或其他类似编程语言)。程序代码可以部分地或完全地在用户的计算机上和/或数据网络等之上的远程计算机或服务器中的一个或多个上执行。

如本文所使用的部件包含有形的、物理的、非暂时性的装置。例如,部件可以实现为包括定制vlsi电路、门阵列或其他集成电路的硬件逻辑电路;诸如逻辑芯片、晶体管或其他分立装置的现成半导体;和/或其他机械或电气装置。部件也可以实现为可编程硬件装置,诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑装置等。部件可以包括通过印刷电路板(pcb)的电线等与一个或多个其他部件电通信的一个或多个硅集成电路装置(例如,芯片、裸芯、裸芯平面、封装体)或其他分立电气装置。在某些实施例中,本文描述的模块中的每个可以可选地由部件实施或实现为部件。

在整个本说明书对“一个实施例”、“实施例”或类似语言的引用意指结合该实施例描述的特定特征、结构或特性被包含在本公开的至少一个实施例中。因此,除非另有明确说明,在整个本说明书中出现的短语“在一个实施例中”、“在实施例中”以及类似的语言可以但未必都指代相同的实施例,但是意指“一个或多个但不是全部的实施例”。除非另有明确说明,术语“包含”、“包括”、“具有”及其变体意味着“包含但不限于”。除非另有明确说明,列举的项目列表并不暗示项目中的任何或全部是互相排斥的和/或互相包含的。除非另有明确说明,术语“一个(a)”、“个(an)”和“该”也指代“一个或多个”。

以下参考根据本公开的实施例的方法、设备、系统和计算机程序产品的示意性流程图和/或示意性框图来描述本公开的各方面。应该理解,可以通过计算机程序指令来实现示意性流程图和/或示意性框图中的每个框以及示意性流程图和/或示意性框图中的框的组合。这些计算机程序指令可以被提供给计算机的处理器或其他可编程数据处理设备以生产机器,使得经由处理器或其他可编程数据处理设备执行的指令创建用于实现功能的构件,和/或进行在示意性流程图和/或示意性框图的一个或多个框中指定的动作。

还应该注意的是,在一些替代实施方式中,框中提到的功能可以不按照图中提到的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者框有时可以以相反的顺序执行。其他步骤和方法可以设想为在功能、逻辑或效果上等同于所图示的图的一个或多个框或其部分。尽管在流程图和/或框图中可以采用各种箭头类型和线型,但是它们被理解为不限制相应实施例的范围。例如,箭头可以指示所描绘的实施例的枚举步骤之间的未指定持续时间的等待或监测时段。

在以下详细描述中,参考形成其一部分的附图。前述的概述仅仅是说明性的,并不旨在以任何方式进行限制。除了如上所述的说明性方面、实施例和特征之外,通过参考附图和以下详细描述,其他方面、实施例和特征将变得显而易见。每个图中的元件的描述可以指代前面的图的元件。相同的数字可以指代图中的相同元件,包括相同元件的替代实施例。

图1a是包括用于非易失性存储器装置120的页寄存器部件150的系统100的一个实施例的框图。页寄存器部件150可以是非易失性存储器介质控制器126、非易失性存储器元件123、装置驱动器等的部分和/或与其通信。页寄存器部件150可以在计算装置110的非易失性存储器系统102上操作,计算装置110可以包括处理器111、易失性存储器112和通信接口113。处理器111可以包括一个或多个中央处理单元、一个或多个通用处理器、一个或多个应用专用处理器、一个或多个虚拟处理器(例如,计算装置110可以是在主机内操作的虚拟机)、一个或多个处理器核心等。通信接口113可以包括配置为将计算装置110和/或非易失性存储器控制器126通信地耦接到通信网络115的一个或多个网络接口,通信网络为诸如互联网协议(ip)网络、储存区域网络(san)、无线网络,有线网络等。

在各种实施例中,非易失性存储器装置120可以设置在相对于计算装置110的一个或多个不同位置。在一个实施例中,非易失性存储器装置120包括一个或多个非易失性存储器元件123,诸如设置在一个或多个印刷电路板、储存外壳和/或其他机械和/或电支撑结构上的半导体芯片或封装体或其他集成电路装置。例如,非易失性存储器装置120可以包括一个或多个直接内联存储器模块(dimm)卡、一个或多个扩展卡和/或子卡、固态驱动器(ssd)或其他硬盘驱动器装置,和/或可以具有另一个存储器和/或储存形状因数。非易失性存储器装置120可以与计算装置110的母板集成和/或安装在计算装置110的母板上,安装在计算装置110的端口和/或插槽中,安装在网络115上的不同的计算装置110和/或专用储存器具上,通过外部总线(例如,外部硬盘驱动器)与计算装置110通信等。

在一个实施例中,非易失性存储器装置120可以设置在处理器111的存储器总线上(例如,在与易失性存储器112相同的存储器总线上,在与易失性存储器112不同的存储器总线上,代替易失性存储器112等等)。在其他施例中,非易失性存储器装置120可以设置在计算装置110的外围总线上,诸如外围部件互连高速(pciexpress或pcie)总线、串行高级技术附件(sata)总线、并行高级技术附件(pata)总线、小型计算机系统接口(scsi)总线、firewire总线、光纤通道连接、通用串行总线(usb)、pcie高级开关(pcie-as)总线等。在另一个实施例中,非易失性存储器装置120可以设置在数据网络115上,诸如以太网网络、infiniband网络、网络115之上的scsirdma、存储器区域网络(san)、局域网(lan)、诸如因特网的广域网(wan)、另一个有线和/或无线网络115等。

计算装置110还可以包括非临时性计算机可读储存介质114。计算机可读储存介质114可以包括配置为使计算装置110(例如,处理器111)进行本文公开的一个或多个方法的步骤的可执行指令。替代地或附加地,页寄存器部件150可以包含储存在非暂时性储存介质114上的一个或多个计算机可读指令。

在所描绘的实施例中,非易失性存储器系统102包含页寄存器部件150。在一个实施例中,页寄存器部件150配置为使用影子数据锁存器来接收用于编程操作的目标数据,该编程操作将目标数据写入到储存单元的阵列。在某个实施例中,页寄存器部件150配置为,在由相邻影子数据锁存器接收到附加目标数据之前,将目标数据复制到写入缓冲器数据锁存器。在其他实施例中,页寄存器部件150配置为将目标数据从写入缓冲器数据锁存器写入到阵列。在各种实施例中,与在复制操作将数据传输到对应的写入缓冲器数据锁存器之前等待要由多个影子数据锁存器接收的数据相比,在由相邻影子数据锁存器接收附加目标数据之前,将目标数据从影子数据锁存器复制到写入缓冲器数据锁存器可以减少数据传输等待时间。下文关于图2a和图2b进一步详细描述影子数据锁存器和写入缓冲器数据锁存器。

在一个实施例中,页寄存器部件150可以包括一个或多个非易失性存储器装置120的逻辑硬件,诸如非易失性存储器介质控制器126、非易失性存储器元件123、装置控制器、现场可编程门阵列(fpga)或其他可编程逻辑、用于fpga或其他可编程逻辑的固件、用于在微控制器上执行的微代码,专用集成电路(asic)等。在另一个实施例中,页寄存器部件150可以包括储存在计算机可读储存介质114上用于在处理器111上执行的可执行软件代码,诸如装置驱动器等。在其他实施例中,页寄存器部件150可以包含可执行软件代码和逻辑硬件两者的组合。

在一个实施例中,页寄存器部件150配置为经由总线125等从装置驱动器或其他可执行应用程序接收储存请求。页寄存器部件150还可以配置为经由总线125向/从装置驱动器和/或储存客户端116传输数据。因此,在一些实施例中,页寄存器部件150可以包括一个或多个直接存储器存取(dma)模块、远程dma模块、总线控制器、桥接器、缓冲器等和/或与之通信,以促进储存请求和相关联的数据的传输。在另一个实施例中,页寄存器部件150可以从储存客户端116接收作为api调用的储存请求、作为io-ctl命令的储存请求等。

根据各种实施例,包括页寄存器部件150的非易失性存储器控制器126可以管理一个或多个非易失性存储器装置120和/或非易失性存储器元件123。(多个)非易失性存储器装置120可以包括记录、存储器和/或储存装置,诸如(多个)固态储存装置和/或(多个)半导体储存装置,其被布置和/或分割成多个可寻址介质储存位置。如本文所使用的,介质储存位置指代存储器的任何物理单元(例如,非易失性存储器装置120上的任何数量的物理储存介质)。存储器单元可以包含但不限于:页、存储器部分(memorydivisions)、块、扇区、物理储存位置的集合或集(例如,逻辑页、逻辑块)等。

在某些实施例中,装置驱动器和/或非易失性存储器介质控制器126可以将逻辑地址空间134呈现给储存客户端116。如这里所使用的,逻辑地址空间134指代存储器资源的逻辑表示。逻辑地址空间134可以包括多个的逻辑地址(例如,逻辑地址的范围)。如本文所使用的,逻辑地址指代用于引用存储器资源(例如,数据)的任何标识符,包含但不限于:逻辑块地址(lba)、柱面/头/扇区(chs)地址、文件名称、对象标识符、索引节点(inode)、通用唯一标识符(uuid)、全局唯一标识符(guid)、散列码、签名、索引条目、范围、广度(extent)等。

用于非易失性存储器装置120的装置驱动器可以维持元数据135(诸如逻辑到物理地址映射结构)以将逻辑地址空间134的逻辑地址映射到(多个)非易失性存储器装置120上的介质储存位置。装置驱动器可以配置为将储存服务提供给一个或多个储存客户端116。储存客户端116可以包含在计算装置110上操作的本地储存客户端116和/或经由网络115和/或网络接口113可存取的远程储存客户端116。储存客户端116可以包含但不限于:操作系统、文件系统、数据库应用程序、服务器应用程序、内核级进程、用户级进程、应用程序等。

装置驱动器可以通信地耦接到一个或多个非易失性存储器装置120。一个或多个非易失性存储器装置120可以包含不同类型的非易失性存储器装置,包含但不限于:固态储存装置、半导体储存装置、san储存资源等。一个或多个非易失性存储器装置120可以包括一个或多个相应的非易失性存储器介质控制器126和非易失性存储器介质122。装置驱动器可以经由传统块i/o接口131提供对一个或多个非易失性存储器装置120的存取。此外,装置驱动器可以通过scm接口132提供对增强功能的存取。元数据135可以用于管理和/或跟踪通过块i/o接口131、scm接口132、缓存接口133或其他相关接口中的任何接口进行的数据操作。

缓存接口133可以公开经由用于非易失性存储器装置120的装置驱动器可存取的缓存专用特征。另外,在一些实施例中,呈现给储存客户端116的scm接口132提供对由一个或多个非易失性存储器装置120和/或一个或多个非易失性存储器介质控制器126实现的数据转换的存取。

装置驱动器可以通过一个或多个接口向储存客户端116呈现逻辑地址空间134。如上所述,逻辑地址空间134可以包括多个逻辑地址,每个逻辑地址对应于一个或多个非易失性存储器装置120上的相应介质位置。装置驱动器可以维持元数据,包括逻辑地址和介质位置之间的任意到任意映射等。

装置驱动器还可以包括非易失性存储器装置接口139和/或与其通信,该非易失性存储器装置接口139配置为通过总线125将数据、命令和/或查询传输到一个或多个非易失性存储器装置120,该总线125可以包含但不限于:处理器111的存储器总线、外围部件互连高速(pciexpress或pcie)总线、串行高级技术附件(ata)总线、并行ata总线、小型计算机系统接口(scsi)、firewire、光纤通道、通用串行总线(usb)、pcie高级交换(pcie-as)总线、网络115、infiniband、scsirdma等。非易失性存储器装置接口139可以使用(多个)输入-输出控制(io-ctl)命令、(多个)io-ctl命令扩展、远程直接存储器存取等来与一个或多个非易失性存储器装置120通信。

通信接口113可以包括配置为将计算装置110和/或非易失性存储器控制器126通信地耦接到网络115和/或一个或多个远程的、网络可存取的、储存客户端116的一个或多个网络接口。储存客户端116可以包含在计算装置110上操作的本地储存客户端116和/或经由网络115和/或网络接口113可存取的远程储存客户端116。非易失性存储器控制器126是一个或多个非易失性存储器装置120的一部分和/或与其通信。虽然图1a描绘了单个非易失性存储器装置120,但是本公开就此而言不受限制,并且可以适用于整合任何数目的非易失性存储器装置120。

非易失性存储器装置120可以包括非易失性存储器介质122的一个或多个元件123,其可以包含但不限于:reram、忆阻器(memristor)存储器、可编程金属化单元存储器、相变存储器(pcm、pcme、pram、pcram、双向统一(ovonicunified)存储器、硫族化物ram或c-ram)、nand闪速存储器(例如,2dnand闪速存储器、3dnand闪速存储器)、nor闪速存储器、纳米随机存取存储器(纳米ram或nram)、基于纳米晶线的存储器、基于硅氧化物的亚10纳米工艺存储器、石墨烯存储器、硅-氧化物-氮化物-氧化物-硅(sonos)、可编程金属化单元(pmc)、导电桥ram(cbram)、磁阻式ram(mram)、磁储存介质(例如硬盘、磁带),光学储存介质等。在某些实施例中,非易失性存储器介质122的一个或多个元件123包括储存类存储器(scm)。

虽然传统技术(诸如nand闪存)可以是块和/或页可寻址的,但是在一个实施例中,储存类存储器是字节可寻址的。在其他实施例中,储存类存储器可以比nand闪存更快和/或具有更长的寿命(例如耐久性);可以比dram具有更低的成本、使用更少的功率和/或具有更高的储存密度;或者与其他技术相比提供一个或多个其他好处或改善。例如,储存类存储器可以包括reram、忆阻器存储器、可编程金属化单元存储器、相变存储器、纳米ram、基于纳米晶体线的存储器、基于硅氧化物的亚10纳米工艺存储器、石墨烯存储器、sonos存储器、pmc存储器、cbram、mram和/或其变体中的一个或多个非易失性存储器元件123。

虽然非易失性存储器介质122在本文中称为“存储器介质”,但是在各种实施例中,非易失性存储器介质122可以更一般地包括能够记录数据的一个或多个非易失性记录介质,其可以称为非易失性存储器介质、非易失性储存介质等。此外,在各种实施例中,非易失性存储器装置120可以包括非易失性记录装置、非易失性存储器装置、非易失性储存装置等。

非易失性存储器介质122可以包括一个或多个非易失性存储器元件123,其可以包含但不限于:芯片、封装体、平面、裸芯等。非易失性存储器介质控制器126可以配置为管理非易失性存储器介质122上的数据操作,并且可以包括一个或多个处理器、可编程处理器(例如,fpga)、asic、微控制器等。在一些实施例中,非易失性存储器介质控制器126配置为在非易失性存储器介质122上储存数据和/或从非易失性存储器介质122读取数据,以向/从非易失性存储器装置120传输数据等等。

非易失性存储器介质控制器126可以通过总线127通信地耦接到非易失性存储器介质122。总线127可以包括用于向/从非易失性存储器元件123通信数据的i/o总线。总线127还可以包括用于将寻址和其他命令和控制信息通信到非易失性存储器元件123的控制总线。在一些实施例中,总线127可并行地将非易失性存储器元件123通信地耦接到非易失性存储器介质控制器126。此并行存取可以允许将非易失性存储器元件123作为组进行管理,从而形成逻辑存储器元件129。逻辑存储器元件可以分区为相应的逻辑存储器单元(例如逻辑页)和/或逻辑存储器部分(例如逻辑块)。逻辑存储器单元可以由逻辑地组合非易失性存储器元件中的每一个的物理存储器单元而形成。

非易失性存储器控制器126可以包括在计算装置110上执行的装置驱动器和/或与其通信。装置驱动器可以经由一个或多个接口131、132和/或133向储存客户端116提供储存服务。在一些实施例中,装置驱动器提供块-装置i/o接口131,储存客户端116通过该块-装置i/o接口131进行块级i/o操作。替代地或附加地,装置驱动器可以提供储存类存储器(scm)接口132,其可以向储存客户端116提供其他储存服务。在一些实施例中,scm接口132可以包括对块装置接口131的扩展(例如,储存客户端116可以通过对块装置接口131的扩展或添加来存取scm接口132)。替代地或附加地,scm接口132可以作为分开的api、服务和/或库来提供。装置驱动器还可以配置成提供用于使用非易失性存储器系统102来缓存数据的缓存接口133。

如上所述,装置驱动器还可以包括非易失性存储器装置接口139,其配置为通过总线125将数据、命令和/或查询传输到非易失性存储器介质控制器126。

图1b图示了可以包含一个或多个存储器裸芯或芯片212的非易失性存储装置210的实施例。非易失性储存装置210可以实质上类似于参考图1a所描述的非易失性存储器装置120。在一些实施例中,存储器裸芯212包含存储器单元200的阵列(二维或三维)、裸芯控制器220和读取/写入电路230a/230b。在一个实施例中,以对称的形式在阵列的相对侧上由各种外围电路实现对存储器阵列200的存取,使得每一侧上的存取线和电路的密度减少一半。在其他实施例中,读/写电路230a/230b包含多个感测块250,其允许存储器单元的页被并行读取或编程。

在各种实施例中,存储器阵列200是通过字线经由行解码器240a/240b和通过列经由解码器242a/242b而可寻址的。在一些实施例中,控制器244包含于与一个或多个存储器裸芯212相同的存储器装置210(例如,可移除储存卡或封装体)中。命令和数据经由线232在主机与控制器244之间传输,并且经由线234在控制器与一个或多个存储器裸芯212之间传输。一个实现方式可以包含多个芯片212。

在一个实施例中,裸芯控制器220与读取/写入电路230a/230b协作以在存储器阵列200上进行存储器操作。在某些实施例中,裸芯控制器220包括页寄存器部件150、状态机222、芯片上地址解码器224和功率控制电路226。在一个实施例中,页寄存器部件150配置为使用写入缓冲器数据寄存器的集合来储存用于存储器阵列200的编程操作的目标数据。在其他实施例中,页寄存器部件150使用影子数据寄存器的集合来接收目标数据,并且将目标数据从影子数据寄存器透明地复制到写入缓冲器数据寄存器,使得在影子数据寄存器接收目标数据的部分时,由影子数据寄存器接收到的目标数据的部分被复制到对应的写入缓冲器数据寄存器。

在一个实施例中,状态机222提供存储操作的芯片级控制。芯片上地址解码器224提供地址接口,以在由主机或存储器控制器使用的地址与由解码器240a、240b、242a、242b使用的硬件地址之间进行转换。功率控制电路226控制在存储器操作期间提供给字线和位线的功率和电压。在一个实施例中,功率控制电路226包含可以创建大于供电电压的电压的一个或多个电荷泵浦。

在某些实施例中,状态机222包含页寄存器部件150的实施例。在一些实施例中,页寄存器部件150控制在存储器操作期间提供给字线和位线的数据。在一个实施例中,页寄存器部件150包含储存用于编程操作或读取操作的数据的锁存器或数据寄存器。在某些实施例中,页寄存器部件150可以包含装置驱动器的软件、装置控制器244中的硬件、裸芯控制器220和/或状态机222中的硬件,和/或一个或多个感测块250中的硬件。

在一个实施例中,裸芯控制器220、页寄存器部件150、功率控制电路226、解码器电路224、状态机电路222、解码器电路242a、解码器电路242b、解码器电路240a、解码器电路240b、读取/写入电路230a、读取/写入电路230b和/或控制器244中的一个或任何组合可以称为一个或多个管理电路。

图2a描绘了与存储器阵列200通信的页寄存器280的一个实施例。在某个实施例中,如上面关于图1a和图1b所述的页寄存器部件150可以包含一个或多个页寄存器280、用于一个或多个页寄存器280的控制部件等。在所描绘的实施例中,页寄存器280包含与外围电路通信的数据线282、影子数据寄存器284、写入缓冲器数据寄存器286以及与存储器阵列200通信的数据线288。存储器阵列200可以是非易失性储存单元的阵列、非易失性存储器单元阵列等,并且可以实质上如上面关于图1b所描述的。

总体上,在各种实施例中,页寄存器280储存用于存储器阵列200的写入或编程操作或读取操作的数据。诸如写入缓冲器数据寄存器286、影子数据寄存器284等的数据寄存器可以耦接到阵列的列,并且在写入或读取操作期间提供缓存或缓冲。

在某个实施例中,页寄存器280可以支持存取阵列200的一个或多个模式。例如,在一个实施例中,存储器阵列200可以包括诸如reram的电阻式存储器介质、忆阻器存储器、可编程金属化单元存储器、相变存储器(pcm、pcme、pram、pcram、双向统一存储器、硫族化物ram或c-ram)等等,并且页寄存器280可以支持两种存取模式:一种模式,包括传统或兼容模式,其为配置为使用传统存取协议的客户端116模拟nand闪存存取协议(例如,nand闪存触发模式);以及另一种模式,包括本机(native)模式或突发模式,其可以使用电阻式存储器介质特有的特征来提供全速和/或对存储器阵列200的存取。

例如,在实现或模拟nand闪存存取协议的传统存取模式中,页寄存器280可以在将数据页写入到阵列200的行之前,将存数据页(例如4kib)接收并储到缓冲器数据寄存器286中。在另一个实施例中,在突发存取模式中,页寄存器280可以通过将在接收完整数据页之前被写入到阵列200的较小的数据信息(例如,64b)接收并储存来提供高速存取。因此,在某些实施例中,页寄存器280可以缓冲nand闪存页以外的数据量,但仍然可以称为页寄存器或页缓冲器。

在一个实施例中,写入缓冲器数据寄存器286的集合配置为储存用于阵列200的编程操作的目标数据。总体上,在各种实施例中,诸如写入缓冲器数据寄存器286(或写入缓冲器锁存器)、影子数据寄存器284(或影子数据锁存器)的数据寄存器或锁存器可以包含静态锁存器、边缘触发式触发器(edge-triggeredflip-flop)、其他逻辑电路、门、晶体管或能够储存数据的其他电路或部件。由写入缓冲器数据寄存器286储存的目标数据可以指代要被写入或编程到阵列200的任何数据,并且用于阵列200的写入或编程操作可以指代将目标数据储存、写入或编程到阵列200中的任何操作。

在一个实施例中,写入缓冲器数据寄存器286将用于编程操作的目标数据通信到阵列200的对应列。在某个实施例中,每个写入缓冲器数据寄存器286(在图2a中标记为dr0到drn)耦接到阵列200的列。在各种实施例中,阵列200的列可以指代阵列200的储存单元的组,其接收要写入到列的储存单元中的一个单元的数据。例如,在某些实施例中,列可以指代位线、nand串等。在其他实施例中,耦接到阵列200的列的写入缓冲器数据寄存器286可以储存要被编程到列的一位数据,并且可以在编程操作期间将该目标数据的位通信到列。

在一个实施例中,写入缓冲器数据寄存器286可以与阵列200的列一一对应,以使得每列都耦接到一个写入缓冲器数据寄存器286。在另一个实施例中,多个写入缓冲器数据寄存器286可以对应于阵列的一列或与其耦接。例如,如果阵列的储存单元能够储存三位数据,则三个写入缓冲器数据寄存器286可以耦接到阵列200的一列,并且可以储存三位数据以写入列的一个储存单元。

在一个实施例中,影子数据寄存器284(在图2a中标记为shr0至shrn)的集合配置为从用于阵列200的外围电路接收用于编程操作的目标数据。在各种实施例中,用于阵列200的外围电路可以包含裸芯控制器220、状态机222、其他管理电路等,如上面关于图1b描述的。阵列200的外围电路可以经由线路232、234、总线125、127等从客户端116接收数据,或者可以由于梳理(grooming)或垃圾收集操作等而从非易失性存储器装置120中的其他地方接收数据。

总体上,在各种实施例中,影子数据寄存器284与阵列200的外围电路通信,并且写入缓冲器数据寄存器286与阵列200本身通信。例如,在一个实施例中,影子数据寄存器284可以从外围电路接收用于编程或写入操作的目标数据,并且写入缓冲器数据寄存器286可以将目标数据通信到阵列200的列。作为其他示例,在某个实施例中,写入缓冲器数据寄存器286可以从阵列200的列接收读取数据,并且影子数据寄存器284可以将读取的数据通信到外围电路。(然而,在另一个实施例中,读取的数据可以直接从阵列200通信到外围电路,而不储存在写入缓冲器数据寄存器286或影子数据寄存器284中。)

在各种实施例中,影子数据寄存器284与写入缓冲器数据寄存器286通信,并且在影子数据寄存器284和写入缓冲器数据寄存器286之间复制数据。例如,在一个实施例中,由写入缓冲器数据寄存器286接收的用于读取操作的读取的数据被复制到影子数据寄存器284。在另一个实施例中,由影子数据寄存器284接收的用于编程操作的目标数据被复制到写入缓冲器数据寄存器286。

数据线282、288在页寄存器280和外围电路或阵列200之间通信数据。在某些实施例中,为每个写入缓冲器数据寄存器286或为阵列200的每列提供去往阵列200的数据线可能是不切实际的。类似地,在其他实施例中,为每个影子数据寄存器284提供去往外围电路的数据线可能是不切实际的。因此,在一个实施例中,通过将多个写入缓冲器数据寄存器286耦接到与存储器阵列200通信的一条数据线288,可以减少数据线的数目。类似地,在其他实施例中,可以将多个影子数据寄存器284耦接到与外围电路通信的一条数据线282。如本文所使用的,影子数据寄存器284的“集合”或写入缓冲器数据寄存器286的“集合”可以指代耦接到一条数据线282或一条数据线288的数据寄存器的组。

为了便于描述,可以参考写入或编程操作来描述去往影子数据寄存器284或写入缓冲器数据寄存器286的数据线282、288以及数据线282、288的连接。例如,在所描绘的实施例中,数据线282可以称为来自外围电路的输入线,其耦接到影子数据寄存器284的集合的输入。类似地,数据线288可以称为去往阵列200的输出线,其耦接到写入缓冲器数据寄存器286的集合的输出。在另一个实施例中,用于读取操作的数据流可以是写入操作的反向,以使得数据线288将输入提供到写入缓冲器数据寄存器286,并且数据线282从影子数据寄存器284接收输出。数据线282、288相应地作为用于写入操作的输入线或输出线的描述,不限制数据线282、288为读取操作在另一方向上通信数据的能力。

在某些实施例中,耦接到一条输入线或输出线的锁存器的集合或数据寄存器的集合可以配置为一次激活一个以经由输入线或输出线进行通信。例如,在一个实施例中,影子数据寄存器284的集合的输入可以从外围电路耦接到一条输入线282,并且该集合中的影子数据寄存器284可以配置为一次激活一个以经由输入线282进行通信。在其他实施例中,写入缓冲器数据寄存器286的集合的输出可以耦接到去往阵列200的一条输出线288,并且写入缓冲器数据寄存器286可以配置为一次激活一个以经由输出线288进行通信。

作为另一示例,在所描绘的实施例中,影子数据寄存器284和写入缓冲器数据寄存器286包含用于每个数据寄存器284、286的激活输入290。在各种实施例中,响应于通过激活输入290接收到激活信号(例如,对应于二进制一的电压),影子缓冲器数据寄存器284或写入缓冲器数据寄存器286可以经由输入线282或输出线288进行通信。在其他实施例中,在不存在激活信号的情况下,影子缓冲器数据寄存器284或写入缓冲器数据寄存器286可以与输入线282或输出线288电隔离。在某些实施例中,一次一个地激活数据寄存器以经由公共输入线282或公共输出线288进行通信,可以避免如果两个数据寄存器尝试在相同线上同时通信不同数据(例如,不同的电压表示不同的数据值)可能发生的短路或其他电气故障。

在某个实施例中,在激活输入290上接收激活信号可以使影子数据寄存器284能够经由输入线282进行通信,或者可以使写入缓冲器数据寄存器286能够经由输出线288进行通信。然而,在其他实施例中,影子数据寄存器284可以经由单独(例如,非共用)连接而耦接到写入缓冲器数据寄存器286,并且可以在从而耦接的影子数据寄存器284和写入缓冲器数据寄存器286之间传输数据,即使影子数据寄存器284未为经由输入线282进行通信而被激活或者写入缓冲器数据寄存器286未为经由输出线288进行通信而被激活。

因此,在一个实施例中,用于编程操作的目标数据可以经由输入线282一次一个地由影子数据寄存器284接收,并且可以经由输出线284一次一个地从写入缓冲器数据寄存器286写入到阵列200。在将数据从写入缓冲器数据寄存器286编程到阵列200之前,接收数据的数据路径时间可以包含,一个影子数据寄存器284接收数据所花费的时间乘以影子数据寄存器284的集合中正在接收数据的影子数据寄存器284的数目。在某些实施例中,数据路径时间(在编程开始之前)可以附加地包含将数据从影子数据寄存器284复制到写入缓冲器数据寄存器286的时间。

在一些实施例中,耦接到一个输入线282的影子数据寄存器284的集合的大小或耦接到一条输出线288的对应的写入缓冲器数据寄存器286的集合的大小,可以反映数据线282、288的密度与在集合中一次一个地存取数据寄存器284、286所涉及的附加时间之间的平衡。例如,在一个实施例中,影子数据寄存器284的集合可以包含八个影子数据寄存器284,其对应于阵列200的八列。在另一个实施例中,影子数据寄存器284的集合可以包含四个影子数据寄存器284,其对应于阵列200的四列。考虑到本公开,数据寄存器的集合的各种有用大小将是清楚的。

在某个实施例中,将数据从写入缓冲器数据寄存器286编程到阵列200的列可以涉及使能写入缓冲器数据寄存器286(例如,经由激活输入290),直到储存在该写入缓冲器数据寄存器286中的数据被成功地或可验证地编程到阵列286的对应列。在一个写入缓冲器数据寄存器286被激活或使能时,集合中的其余的写入缓冲器数据寄存器286可以保持不被激活,以避免经由共用输出线使写入缓冲器数据寄存器286输出短路。因此,在编程操作期间,即使来自外围电路的输入线282直接连接到写入缓冲器数据寄存器286,写入缓冲器数据寄存器286的集合中的数据也可能对用户或客户端166不可用。

相比之下,在一个实施例中,由影子数据寄存器284的集合接收并复制到写入缓冲器数据寄存器286的数据可以保持在影子数据寄存器284中,使得影子数据寄存器284配置为用于写入缓冲器数据寄存器286的缓存。在某个实施例中,将影子数据寄存器284配置为用于对应的写入缓冲器数据寄存器286的缓存可以允许经由输入线282和外围电路存取和使用数据寄存器284、286中的数据,而与写入缓冲器数据寄存器286中的一个是否被激活以经由输出线288将数据编程到阵列200无关。因此,在其他实施例中,配置为用于写入缓冲器数据寄存器286的缓存的影子数据寄存器284可以将数据维持在影子数据寄存器284中,至少直到数据已经被写入阵列200。

在一些实施例中(例如,在实现或模拟nand闪存协议的传统模式中),在影子数据寄存器284与写入缓冲器数据寄存器286之间复制数据的时间可能显着地影响数据路径等待时间。例如,在一个实施例中,在集合中的一个至八个影子数据寄存器284处一次一个地接收编程操作目标数据可能花费每个影子数据寄存器大约20纳秒(ns),并且即使所有数据一次传输而不是一次一个地传输,将目标数据从多达8个影子数据寄存器284传输到对应的写入缓冲器数据寄存器286的复制操作可能花费大约50ns(例如,用于复制操作的25ns时钟的2个触发)。在这样的实施例中,显式(explicit)复制操作的复制时间可以是外围电路与写入缓冲器数据寄存器286之间的数据路径时间的大约24%至大约71%。

相比之下,在某个实施例中(例如,在实现更高速存取协议的本机模式或突发模式中),影子数据寄存器284的集合可以接收用于编程操作的目标数据,并且在影子数据寄存器284接收目标数据的部分时,由影子数据寄存器284接收的目标数据的部分可以复制到对应的写入缓冲器数据寄存器286。如本文所使用的,如果写入缓冲器数据寄存器286和影子数据寄存器284被耦接以在写入缓冲器数据寄存器286和影子数据寄存器284之间直接数据传输,则写入缓冲器数据寄存器286“对应”于影子数据寄存器284。作为在正在接收数据时复制数据的示例,在所描绘的实施例中,图2a中标记为shr0的影子数据寄存器284可以被激活(经由激活输入290),以经由输入线282接收数据,并且正被写入影子数据寄存器284的目标数据的部分在正由标记为shr0的影子数据寄存器284接收时,可以被写入到图2a中标记为dr0的写入缓冲器数据寄存器286。在其他实施例中,在影子数据寄存器284被激活以经由输入线282接收数据时,即使激活不同的写入缓冲器数据寄存器286以经由输出线288将数据通信到阵列200,由标记为shr0的影子数据寄存器284接收的数据可以被复制到标记为dr0的写入缓冲器数据寄存器286。在各种实施例中,与在数据被接收之后的显式复制操作相比,随着由影子数据寄存器284接收数据,将数据复制到写入缓冲器数据寄存器286可以显着减少数据路径等待时间。

在某个实施例中,由影子数据寄存器284接收的编程操作目标数据可以在由相邻影子数据寄存器284接收附加目标数据之前被复制到写入缓冲器数据寄存器286。在各种实施例中,基于存取数据寄存器284、286的顺序,影子数据寄存器284或写入缓冲器数据寄存器286可以称为相邻、随后、连续等。例如,在所描述的实施例中,如果编程操作目标数据由影子数据寄存器284以从shr0到shr1以此类推直到shrn的顺序接收,则shr0和shr1相邻,并且shr1随后于shr0。类似地,如果目标数据从写入缓冲器数据寄存器286以从dr0到dr1以此类推直到drn的顺序被写入阵列200,则dr0和dr1是相邻,并且dr1随后于dr0。在某个实施例中,无论在影子数据寄存器284接收数据与数据被复制到写入缓冲器数据寄存器286之间是否存在一些延迟(例如,数据可能花费短时间跨过影子数据寄存器284),与在由多个影子数据寄存器284接收数据之后发生的显式复制操作相比,在由相邻影子数据寄存器284接收附加数据之前将数据从一个影子数据寄存器284复制到写入缓冲器数据寄存器286可以显着减少数据路径等待时间。

在一个实施例中,在随后的影子数据寄存器284接收目标数据的随后部分时,编程操作将目标数据的第一部分从第一写入缓冲器数据寄存器286写入到阵列200。例如,在一个实施例中,影子数据寄存器shr0可以接收用于编程操作的目标数据的第一部分,其随着由影子数据寄存器shr0接收而被复制到写入缓冲器数据寄存器dr0,并且在目标数据的第一部分正从写入缓冲器数据寄存器dr0写入到阵列200时,影子数据寄存器shr1可以接收目标数据的下一部分,其随着由影子数据寄存器shr1接收而被复制到写入缓冲器数据寄存器dr1。因此,在某些实施例中,随着接收数据(或在由随后的影子数据寄存器284接收随后的数据之前)而将数据从影子数据寄存器284复制到对应的写入缓冲器数据寄存器286有效地允许在共用输出线288的集合中的随后的写入缓冲器数据寄存器286正在接收随后数据时,第一写入缓冲器数据寄存器286将数据写入到阵列200。

在某个实施例中,读取操作可以实质上与编程操作相反。在一个实施例中,写入缓冲器数据寄存器286的集合可以配置为从阵列200接收读取数据以用于读取操作。读取数据可以指代从阵列200读取的任何数据。作为接收读取数据的示例,在某个实施例中,写入缓冲器数据寄存器286可以经由耦接到数据线288的感测放大器从阵列200的列接收读取数据,其中感测放大器检测表示来自列的储存数据的信号并放大该信号以产生可识别的逻辑电平。在其他实施例中,影子数据寄存器284的对应集合可以配置为将读取数据输出到阵列的外围电路。例如,影子数据寄存器284可以经由数据线282通信读取数据。在一个实施例中,在写入缓冲器数据寄存器286接收读取数据的部分时,由写入缓冲器数据寄存器286接收的读取数据的部分被复制到对应的影子数据寄存器284。在某个实施例中,在由相邻写入缓冲器数据寄存器286接收附加读取数据之前,由写入缓冲器数据寄存器286接收的读取数据被复制到对应的影子数据寄存器284。在各种实施例中,与在由多个写入缓冲器数据寄存器286接收到数据之后复制数据相比,随着接收到读取数据或者在由相邻写入缓冲器数据寄存器286接收到附加数据之前复制读取数据可以显着减少数据等待时间。

在某个实施例中,控制器(诸如裸芯控制器220、控制器244、非易失性存储器介质控制器126、装置驱动器等)可以确定或指示是否为阵列200设定了突发模式。在一个实施例中,可以为在一个芯片、裸芯、平面等上的阵列200设定突发模式,并且可以不为非易失性存储器装置120内的另一个芯片、裸芯、平面等上的阵列200设定突发模式。在另一个实施例中,可以为非易失性存储器装置120设定突发模式,并且因此也为每个非易失性存储器元件123的阵列200设定突发模式。在一个实施例中,阵列200可以在突发模式和诸如传统模式的另一模式之间切换。在另一个实施例中,阵列可以配置为专门用于突发模式,或者专门用于传统模式,而不切换。

在某个实施例中,控制器可以指示突发模式是否已经被设定,或者是处于激活还是在使用中。例如,在一个实施例中,如果为阵列200设定突发模式,则可以由控制器拉高附加数据线,或者如果没有为阵列200设定突发模式,则可以由控制器拉低附加数据线。作为另一个示例,由装置驱动器提供的io-ctl命令可以指示是否为阵列200设定了突发模式。考虑到本公开,指示是否已经设定突发模式的各种类型控制器的各种方式将是清楚的。在另一个实施例中,控制器可以确定是否已经为阵列设定了突发模式。例如,在一个实施例中,控制器可以读取配置数据以确定是否已经设定了突发模式。在另一个实施例中,如果由一个控制器(诸如非易失性存储器介质控制器126)使用附加数据线来指示是否已经设定了突发模式,则可以由另一个控制器感测数据线的状态,诸如裸芯控制器220确定是否已经设定了突发模式。

在一个实施例中,在影子数据寄存器284接收数据时(或在由相邻影子数据寄存器284接收到附加目标数据之前),将由影子数据寄存器284接收的编程操作目标数据的部分复制到对应的写入缓冲器数据寄存器286是响应于控制器确定或指示为阵列设定突发模式。在另一个实施例中,影子数据寄存器284的集合可以配置为,响应于控制器确定或指示未为阵列设定突发模式,在影子数据寄存器284接收目标数据的多个部分之后,将目标数据的多个位或部分复制到对应的写入缓冲器数据寄存器286。因此,在各种实施例中,通过随着由影子数据寄存器284接收到数据(或在由相邻影子数据寄存器284接收附加目标数据之前),将数据复制到写入缓冲器数据寄存器286,突发模式可以提供在由影子数据寄存器284缓存情况下的低等待时间数据传输。相比之下,如果突发模式未设定或在使用中,则传统模式可以通过在影子数据寄存器284接收多位的目标数据之后将多个数据位(例如,页)从影子数据寄存器284复制到写入缓冲器数据寄存器286来实现或模拟nand闪存的预期行为。

图2b是图示影子数据寄存器284和多个写入缓冲器数据寄存器adr292、bdr294和cdr296的一个实施例的示意性框图。影子数据寄存器284和写入缓冲器数据寄存器292、294、296可以实质上类似于上面关于图2a所描述的影子数据寄存器284和写入缓冲器数据寄存器286,包含数据线、激活输入290等。

在所描绘的实施例中,影子数据寄存器284和写入缓冲器数据寄存器292、294、296对应于阵列200的一列。如以上关于图2a所描述的,页寄存器280可以包含多个这样的寄存器,其对应于阵列200的多个列。

在各种实施例中,某些类型的储存单元可以储存每个单元多于一个数据位。例如,在三级单元(tlc)nand闪速存储器中,单元可以储存每个单元三个数据位。因此,在其他实施例中,编程操作可以经由阵列200的一列将多个数据位从多个写入缓冲器数据寄存器292、294、296写入到一个储存单元。因此,在各种实施例中,多个写入缓冲器数据寄存器292、294、296可以对应于阵列200的列。例如,在所描绘的实施例中,写入缓冲器数据寄存器292、294、296耦接到阵列的列:adr292可以配置为储存下部页位,而bdr294储存中间页位,并且cdr296储存上部页位。基于每个单元储存的位数,可以将更少或更多的写入缓冲器数据寄存器耦接到阵列的列。

在某个实施例中,可以由用于列的一个影子数据寄存器284接收与阵列200的列相对应的多个写入缓冲器数据寄存器292、294、296的编程操作目标数据的部分。在各种实施例中,由一个影子数据寄存器284接收的数据可以以各种方式分配给多个写入缓冲器数据寄存器。例如,在一个实施例中,缓冲器选择信号可以指示将数据从影子数据寄存器284复制到写入缓冲器数据寄存器292、294、296中的哪个。在另一个实施例中,多个写入缓冲器数据寄存器292、294、296可以配置为移位寄存器,使得由影子数据寄存器284接收的多个数据位被移位到适当的写入缓冲器数据寄存器292、294、296中。

图3描绘了页寄存器部件150的一个实施例。页寄存器部件150可以实质上类似于上面关于图1a和图1b描述的页寄存器部件150,并且可以包含一个或多个如上面关于图2a所描述的页寄存器280。总体上,如上所述,页寄存器部件150使用影子数据锁存器或影子数据寄存器接收编程操作目标数据,在由相邻影子数据锁存器接收附加目标数据之前,将目标数据复制到写入缓冲器数据锁存器或寄存器,并且将目标数据从写入缓冲器数据锁存器写入到非易失性存储器单元阵列。在所描绘的实施例中,页寄存器部件150包含外围i/o模块302、复制模块304、核心i/o模块306和突发模式模块308。在另一个实施例中,页寄存器部件150包含外围i/o模块302、复制模块304和核心i/o模块306,而没有突发模式模块308。在各种实施例中,外围i/o模块302、复制模块304和核心i/o模块306,而没有突发模式模块308。

在某些实施例中,控制器(诸如,非易失性存储器介质控制器126、裸芯控制器220等)可以包含外围i/o模块302、复制模块304和核心i/o模块306。在一个实施例中,控制器可以包含用于包括非易失性存储器介质122的储存装置的硬件控制器,诸如非易失性存储器介质控制器126。在另一个实施例中,控制器可以包含用于储存装置的装置驱动器,以用于包含非易失性储器介质122的储存装置。在其他实施例中,装置驱动器可以包含逻辑硬件和/或储存在一个或多个计算机可读存储介质的可执行代码。

总体上,在各种实施例中,外围i/o模块302管理或控制用于存储器单元阵列的影子数据锁存器或寄存器与外围电路之间的通信。在一个实施例中,外围i/o模块302配置为使用影子数据锁存器接收目标数据,以将目标数据写入到非易失性存储器单元阵列的编程操作。例如,在一个实施例中,外围i/o模块302可以包含如上面关于图2a和图2b所描述的影子数据锁存器或寄存器的集合,或者与影子数据锁存器或寄存器的集合通信。在其他实施例中,外围i/o模块302可以配置为使用相邻影子数据锁存器来接收附加目标数据。例如,在各种实施例中,外围i/o模块302可以使用共用公共输入线的影子数据锁存器的集合来接收目标数据的多个位。在某个实施例中,通过激活影子数据锁存器以通过由影子数据锁存器的集合共用的输入线来接收目标数据,外围i/o模块302可以使用影子数据锁存器来接收目标数据。

在一个实施例中(例如,在突发模式下),复制模块304配置为在由相邻影子数据锁存器接收附加目标数据之前,将由影子数据锁存器接收的编程操作目标数据复制到写入缓冲器数据锁存器。在另一个实施例中(例如,在传统模式中),复制模块304可以在多个影子数据锁存器接收多位的目标数据之后,将多位的目标数据从多个影子数据锁存器复制到对应的多个写入缓冲器数据锁存器。

在某些实施例中,突发模式模块308可以确定是否为存储器单元的阵列设定了突发模式,并且可以与复制模块304协作,以使得响应于突发模式模块308确定为阵列设定突发模式,复制模块304在由相邻影子数据锁存器接收附加目标数据之前将由影子数据锁存器接收的目标数据复制到写入缓冲器数据锁存器。在其他实施例中,响应于突发模式模块308确定未为阵列设定突发模式,复制模块304可以在由多个影子数据锁存器接收到多个位之后将多位的目标数据复制到写入缓冲器数据锁存器。

在一个实施例中,外围i/o模块302可以使用影子数据锁存器接收阵列的一列的其他目标数据,并且复制模块304可以将其他目标数据复制到用于该列的一个或多个附加写入缓冲器数据锁存器。例如,如上文关于图2b所描述的,多个写入缓冲器数据锁存器可以耦接到阵列的一列,以使得可将多个位写入阵列的一个储存单元,并且复制模块304可以管理进入一个影子数据锁存器的数据,使得正确的数据被复制到多个写入缓冲器数据锁存器中的每个。

总体上,在各种实施例中,核心i/o模块306管理或控制写入缓冲器数据锁存器或寄存器与存储器单元的核心阵列之间的通信。在一个实施例中,核心i/o模块306配置为将目标数据从写入缓冲器锁存器写入阵列,其中目标数据由外围i/o模块302接收并且由复制模块304复制到写入缓冲器数据锁存器。例如,在一个实施例中,核心i/o模块306可以包含如上面关于图2a和图2b所描述的写入缓冲器数据锁存器或寄存器的集合,或者与写入缓冲器数据锁存器或寄存器的集合通信。在其他实施例中,通过激活写入缓冲器数据锁存器以通过由写入缓冲器数据锁存器的集合共用的输出线来写入目标数据,核心i/o模块306可以将目标数据写入阵列。在某个实施例中,核心i/o模块306和外围i/o模块302可以协作,以使得在外围i/o模块302使用相邻影子数据锁存器(例如,对应于阵列的相邻列的影子数据锁存器)接收附加目标数据时,核心i/o模块306将目标数据从写入缓冲器数据锁存器写入到阵列。

在一个实施例中,外围i/o模块302可以将目标数据维持在影子数据锁存器中,使得影子数据锁存器配置为用于写入缓冲器数据锁存器的缓存(由复制模块304将目标数据复制到该缓存)。例如,在一个实施例中,外围i/o模块302可以通过定时或以其他方式控制输入来将目标数据维持在影子数据锁存器中,以使得影子数据锁存器中的目标数据不被覆写,直到核心i/o模块306已经将目标数据从写入缓冲器数据锁存器写入到阵列。

在某个实施例中,读取操作可以实质上与编程或写入操作相反。因此,在一个实施例中,核心i/o模块306可以配置为将数据从阵列读取到写入缓冲器数据锁存器。在一些实施例中,复制模块304可以配置为在由相邻写入缓冲器数据锁存器接收附加读取数据之前将该读取数据复制到影子数据锁存器。在其他实施例中,外围i/o模块302可以配置为将读取数据从影子数据锁存器输出到阵列的外围电路。然而,在另一个实施例中,核心i/o模块306和/或外围i/o模块302可以在不在页寄存器中缓冲数据的情况下将读取数据从阵列提供给外围电路。

图4描绘了写入缓冲器数据寄存器400的一个实施例。在某些实施例中,写入缓冲器数据寄存器400可以实质上类似于上面关于图2a和图2b描述的写入缓冲器数据寄存器286、292、294、296。在所描绘的实施例中,dout线408可以将写入缓冲器数据寄存器400的输出连接到存储器阵列。例如,dout线408可以连接到与阵列通信的共用输出线,诸如图2a的线288。在某个实施例中,可以基于对写入缓冲器数据寄存器400的激活输入(图4中未示出)而使能dout线40。q404线的电压可以对应于写入缓冲器数据寄存器400的储存的数据位,并且反向q线406可以对应于储存的位的相反(inverse)。

在所描绘的实施例中,shr_dr_copy线402控制影子数据寄存器与写入缓冲器数据寄存器400之间的数据复制。对写入缓冲器数据寄存器400的输入还可以由去往q404的附加连接来控制,其中附加晶体管或控制电路与由shr_dr_copy402控制的晶体管串联或并联,这些附加晶体管或控制电路在图4中未示出以便于描述shr_dr_copy402。

总体上,在各种实施例中,如果shr_dr_copy402拉高,则写入缓冲器数据寄存器400(经由由shr_dr_copy402控制的晶体管)连接到影子数据寄存器。因此,在写入操作中,如果影子数据寄存器被使能以接收目标数据,并且shr_dr_copy402线对于对应的写入缓冲器数据寄存器400为高,则在影子数据寄存器接收数据时,数据将被复制到写入缓冲器数据寄存器400。相反,对于读取操作,如果写入缓冲器数据寄存器400被使能以从存储器阵列接收读数据,并且shr_dr_copy402线为高,则在写入缓冲器数据寄存器400接收数据时,数据将被复制到对应的影子数据寄存器。然而,如果shr_dr_copy402为低,则由shr_dr_copy402控制的晶体管将写入缓冲器数据寄存器400与对应的影子数据寄存器之间的连接解耦。在某些实施例中,在影子数据寄存器作为用于写入缓冲器数据寄存器400的缓存而活跃使用时,shr_dr_copy402可以为低,以使得激活或使能影子数据寄存器的缓存操作将不改变写入缓冲器数据寄存器400中的数据。

图5是图示用于数据寄存器复制的方法500的一个实施例的示意性流程图。对于将目标数据写入到非易失性存储器单元的阵列的编程操作,方法500开始并且外围i/o模块302使用影子数据锁存器接收502目标数据。在影子数据锁存器接收502目标数据时,复制模块304将目标数据复制504到写入缓冲器数据锁存器。核心i/o模块306将目标数据从写入缓冲器数据锁存器写入506到阵列,并且方法500结束。

图6是图示用于数据寄存器复制的方法的其他实施例的示意性流程图。对于将目标数据写入到非易失性存储器单元阵列的编程操作,方法600开始并且外围i/o模块302使用影子数据锁存器接收602目标数据。突发模式模块308确定604是否为阵列设定突发模式。如果为阵列设定了突发模式,则在影子数据锁存器接收602目标数据时,复制模块304将目标数据复制606到写入缓冲器数据锁存器。如果未为阵列设定突发模式,则在影子数据锁存器接收602目标数据之后,复制模块304将目标数据复制608到写入缓冲器数据锁存器。核心i/o模块306将目标数据从写入缓冲器数据锁存器写入610到阵列,并且方法600结束。

在各种实施例中,用于接收编程操作的目标数据的构件可以包含外围i/o模块302、页寄存器部件150、页寄存器、影子数据寄存器的集合、用于影子数据寄存器的集合的输入线、处理器、裸芯控制器、裸芯状态机、非易失性存储器控制器、非易失性存储器介质控制器、装置驱动器、其他逻辑硬件和/或储存在计算机可读储存介质上的其他可执行代码。其他实施例可以包含用于接收目标数据的类似或等同构件。

在各种实施例中,用于将目标数据复制到写入缓冲器数据寄存器的集合的构件可以包含复制模块304、页寄存器部件150、页寄存器、影子数据寄存器与写入缓冲器数据寄存器之间的连接的集合、处理器、裸芯控制器、裸芯状态机、非易失性存储器控制器、非易失性存储器介质控制器、装置驱动器,其他逻辑硬件和/或储存在计算机可读储存介质上的其他可执行代码。其他实施例可以包含用于复制目标数据的类似或等同构件。

在各种实施例中,用于将目标数据从写入缓冲器数据寄存器的集合写入到非易失性存储器阵列的构件可以包含核心i/o模块306、页寄存器部件150、页寄存器、写入缓冲器数据寄存器的集合、用于写入缓冲器数据寄存器的集合的输出线、处理器、裸芯控制器、裸芯状态机、非易失性存储器控制器、非易失性存储器介质控制器、装置驱动器、其他逻辑硬件和/或其他储存在计算机可读储存介质上的可执行代码。其他实施例可以包含用于写入目标数据的类似或等同构件。

在各种实施例中,用于确定是否设定突发模式的构件可以包含突发模式模块308、页寄存器部件150、处理器、裸芯控制器、裸芯状态机、非易失性存储器控制器、非易失性存储器介质控制器、装置驱动器、其他逻辑硬件和/或其他储存在计算机可读储存介质上的可执行代码。其他实施例可以包含用于确定是否设定突发模式的类似或等同构件。

本公开可以在不脱离其精神或基本特性的情况下以其他具体形式来实施。所描述的实施例在所有方面仅被认为是说明性的而非限制性的。因此,本公开的范围由所附权利要求而不是由前面的描述来指示。在权利要求的等同的含义和范围内的所有改变都将被包含在其范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1