CN101438353B - 在读取操作期间具有后台数据锁存器高速缓存的非易失性存储器及其方法 - Google Patents

在读取操作期间具有后台数据锁存器高速缓存的非易失性存储器及其方法 Download PDF

Info

Publication number
CN101438353B
CN101438353B CN2007800161980A CN200780016198A CN101438353B CN 101438353 B CN101438353 B CN 101438353B CN 2007800161980 A CN2007800161980 A CN 2007800161980A CN 200780016198 A CN200780016198 A CN 200780016198A CN 101438353 B CN101438353 B CN 101438353B
Authority
CN
China
Prior art keywords
page
data
leaf
sensing
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2007800161980A
Other languages
English (en)
Other versions
CN101438353A (zh
Inventor
李彦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Delphi International Operations Luxembourg SARL
Original Assignee
SanDisk Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/381,997 external-priority patent/US7480181B2/en
Application filed by SanDisk Corp filed Critical SanDisk Corp
Priority claimed from PCT/US2007/068069 external-priority patent/WO2007131062A2/en
Publication of CN101438353A publication Critical patent/CN101438353A/zh
Application granted granted Critical
Publication of CN101438353B publication Critical patent/CN101438353B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/304In main memory subsystem
    • G06F2212/3042In main memory subsystem being part of a memory device, e.g. cache DRAM
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2245Memory devices with an internal cache buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Lock And Its Accessories (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

来自存储器读取或写入操作的等待时间的一部分是用于将数据经由I/O总线输入到存储器的数据锁存器或从存储器的数据锁存器输出数据。存在通过允许存储器在存储器核心忙于读取操作时于后台中执行所述数据高速缓存及转移操作中的一些而改进非易失性存储器装置的性能的方法及电路。实施用于高速缓存读取数据的方案,以使得即使对邻近字线上的数据的预先必要的读取必须先于对当前字线上的当前页的读取时,在用于读取先前页的循环中抢先完成所述预先必要的读取连同任何I/O存取,以使得可在所述先前读取的页忙于所述I/O存取的同时执行当前读取。

Description

在读取操作期间具有后台数据锁存器高速缓存的非易失性存储器及其方法
技术领域
本发明大体来说涉及例如电可擦除可编程只读存储器(EEPROM)及快闪EEPROM的非易失性半导体存储器,且特定来说涉及基于允许重叠存储器操作的共享锁存器结构的高速缓存操作。
背景技术
能够进行电荷的非易失性存储(特定来说采取封装为较小形状因数的卡的EEPROM及快闪EEPROM的形式)的固态存储器近来已成为多种移动及手持装置(尤其为信息设备及消费型电子产品)中所选的存储装置。不同于也为固态存储器的RAM(随机存取存储器),快闪存储器为非易失性的,即使在断开功率之后仍保持其存储的数据。尽管成本较高,但快闪存储器越来越多地用于大容量存储应用中。基于例如硬驱动器及软磁盘的旋转磁性媒体的常规大容量存储装置不适于移动及手持环境。这是由于硬驱动器往往体积较大,易于产生机械故障且具有较高等待时间及较高功率要求。所述不合需要的属性使得基于磁盘的存储装置在大多数移动及便携应用中不实用。另一方面,嵌入式及采取可拆卸式卡的形式的快闪存储器由于其较小大小、较低功率消耗、较高速度及较高可靠性的特征而理想地适于移动及手持环境中。
EEPROM及电可编程只读存储器(EPROM)为可经擦除且有新的数据写入或“编程”到存储器单元的非易失性存储器。两者均利用场效晶体管结构中定位于半导体衬底中源极与漏极区域之间的沟道区域上的浮动(未连接)传导栅极。接着在浮动栅极上提供控制栅极。通过保持于浮动栅极上的电荷量来控制晶体管的阈值电压特征。即,对于浮动栅极上的给定的电荷电平,存在必须于“接通”晶体管以允许其源极与漏极区域之间的传导之前施加到控制栅极的对应电压(阈值)。
浮动栅极可保持一定范围的电荷且因此可经编程为阈值电压窗口内的任何阈值电压电平。通过装置的最小及最大阈值电平而对阈值电压窗口的大小定界,所述阈值电平又对应于可编程到浮动栅极上的电荷的范围。阈值窗口一般视存储器装置的特征、操作条件及历史而定。窗口内的每一独特、可解析阈值电压电平范围可(原则上)用以表示单元的明确存储器状态。
通常通过两个机制中的一者将用作存储器单元的晶体管编程为“经编程”状态。在“热电子注入”中,施加到漏极的高电压加速电子跨越衬底沟道区域。同时,施加到控制栅极的高电压经由薄栅极电介质将热电子拉到浮动栅极上。在“隧穿注入”中,相对于衬底向控制栅极施加高电压。以此方式,将电子从衬底拉到介入的浮动栅极。
可通过许多机制而擦除存储器装置。对于EPROM来说,通过以紫外线辐射将电荷从浮动栅极移除而可整体擦除存储器。对于EEPROM来说,通过相对于控制栅极施加高电压到衬底以便诱发浮动栅极中的电子经由薄氧化物而隧穿到衬底沟道区域(即,福勒-诺德海姆隧穿)而可电擦除存储器单元。通常,可逐字节地擦除EEPROM。对于快闪EEPROM来说,可一次全部或每次一个或一个以上块地电擦除存储器,其中一块可由存储器的512或512以上的字节组成。
非易失性存储器单元的实例
存储器装置通常包含可安装于卡上的一个或一个以上存储器芯片。每一存储器芯片包含由例如解码器及擦除、写入及读取电路的外围电路支持的存储器单元的阵列。较为尖端的存储器装置还与执行智能型及较高层级的存储器操作及介接的控制器一同提供。现今正使用许多商业成功的非易失性固态存储器装置。所述存储器装置可使用不同类型的存储器单元,每一类型具有一个或一个以上电荷存储元件。
图1A到图1E示意性地说明非易失性存储器单元的不同实例。
图1A示意性地说明采取具有用于存储电荷的浮动栅极的EEPROM单元的形式的非易失性存储器。电可擦除及可编程只读存储器(EEPROM)具有与EPROM类似的结构,但额外提供用于在施加适当电压时电装载电荷及从其浮动栅极电移除电荷(无需暴露于UV辐射)的机制。美国专利第5,595,924号中给出所述单元的实例及制造其的方法。
图1B示意性地说明具有选择栅极及控制或操纵栅极的快闪EEPROM单元。存储器单元10具有源极14与漏极16扩散之间的“分开沟道(split-channel)”12。用串联的两个晶体管T1及T2有效地形成单元。T1用作具有浮动栅极20及控制栅极30的存储器晶体管。浮动栅极能够存储可选量的电荷。可流过沟道的T1部分的电荷的量视控制栅极30上的电压及驻留于介入的浮动栅极20上的电荷量而定。T2用作具有选择栅极40的选择晶体管。当通过选择栅极40处的电压而接通T2时,其允许沟道的T1部分中的电流穿过源极与漏极之间。选择晶体管提供沿源极-漏极沟道独立于控制栅极处的电压的开关。一优点在于其可用以断开于零控制栅极电压下仍导通的所述单元,零控制栅极电压归因于所述单元在其浮动栅极处的电荷耗尽(正)。另一优点在于其使得能够较易于实施源极侧注入编程。
分开沟道存储器单元的一简单实施例为选择栅极与控制栅极连接到如通过图1B所示的虚线而示意性地指示的同一字线的存储器单元。此通过将电荷存储元件(浮动栅极)定位于沟道的一部分上且将控制栅极结构(其为字线的部分)定位于另一沟道部分以及电荷存储元件上而完成。此用串联的两个晶体管有效地形成单元,一晶体管(存储器晶体管)具有电荷存储元件上的电荷量与字线上的电压的组合,所述组合控制可流过其沟道的部分的电流量,且另一晶体管(选择晶体管)具有单独用作其栅极的字线。美国专利第5,070,032、5,095,344、5,315,541、5,343,063及5,661,053号中给出所述单元的实例、其在存储器系统中的使用及制造其的方法。
图1B所示的分开沟道单元的一较为精细的实施例为选择栅极与控制栅极独立且不由其间的虚线相连接时的实施例。一实施方案具有单元阵列中的一列控制栅极,其连接到垂直于字线的控制(或操纵)线。作用为使得字线无需在读取或编程所选单元时同时执行两个功能。所述两个功能为(1)用作选择晶体管的栅极,因此要求适当电压以接通及断开选择晶体管,及(2)经由耦合于字线与电荷存储元件之间的电场(电容性的)而将电荷存储元件的电压驱动到所要电平。通常难以通过单一电压而以最佳方式执行所述功能的两者。通过对控制栅极与选择栅极的单独控制,字线仅需执行功能(1),而所添加的控制线执行功能(2)。此能力允许较高性能编程的设计,其中使编程电压适应目标数据。独立控制(或操纵)栅极在快闪EEPROM阵列中的使用描述于(例如)美国专利第5,313,421及6,222,762号中。
图1C示意性地说明具有双浮动栅极及独立的选择及控制栅极的另一快闪EEPROM单元。存储器单元10类似于图1B的存储器单元,除了其有效地具有串联的三个晶体管。在此类型的单元中,在其于源极与漏极扩散之间的沟道上包括两个存储元件(即,T1-左及T1-右的存储元件)连同所述两个存储元件之间的选择晶体管T1。存储器晶体管分别具有浮动栅极20及20′,以及控制栅极30及30′。由选择栅极40来控制选择晶体管T2。任何时候仅存取所述对存储器晶体管中的一者用于读取或写入。当存取存储单位T1-左时,接通T2及T1-右以允许沟道的T1-左的部分中的电流通过源极与漏极之间。类似地,当存取存储单位T1-右时,接通T2及T1-左。通过使选择栅极多晶硅的一部分接近于浮动栅极及向选择栅极施加大量正电压(例如,20V)以使得存储于浮动栅极内的电子可隧穿到选择栅极多晶硅而实现擦除。
图1D示意性地说明经组织为NAND单元的一串存储器单元。NAND单元50由一连串存储器晶体管M1、M2......Mn(n=4、8、16或16以上)组成,所述存储器晶体管通过其源极及漏极而经菊式链接。一对选择晶体管S1、S2控制存储器晶体管链经由NAND单元的源极端子54及漏极端子56与外部的连接。在存储器阵列中,当接通源极选择晶体管S1时,源极端子耦合到源极线。类似地,当接通漏极选择晶体管S2时,NAND单元的漏极端子耦合到存储器阵列的位线。链中的每一存储器晶体管具有电荷存储元件以存储给定量的电荷从而表示预期的存储器状态。每一存储器晶体管的控制栅极提供对读取及写入操作的控制。选择晶体管S1、S2中的每一者的控制栅极分别经由NAND单元的源极端子54及漏极端子56而提供对NAND单元的控制存取。
当在编程期间读取并验证NAND单元内的经寻址的存储器晶体管时,向其控制栅极供应适当电压。同时,NAND单元50中未经寻址的存储器晶体管的剩余部分通过在其控制栅极上施加充足电压而完全接通。以此方式,从个别存储器晶体管的源极到NAND单元的源极端子54及同样地针对个别存储器晶体管的漏极到单元的漏极端子56而形成的传导路径为有效的。美国专利第5,570,315、5,903,495、6,046,935号中描述具有所述NAND单元结构的存储器装置。
图1E示意性地说明具有用于存储电荷的介电层的非易失性存储器。替代早先描述的传导浮动栅极元件而使用介电层。利用介电存储元件的所述存储器装置已由埃特恩(Eitan)等人于“NROM:A Novel Localized Trapping,2-Bit Nonvolatile Memory Cell(NROM:新颖的定位捕集、2位非易失性存储器单元),”IEEE Electron Device Letters(IEEE电子器件快报),第21卷,第11号,2000年11月,第543-545页中描述。ONO介电层延伸跨越源极与漏极扩散之间的沟道。将一数据位的电荷定位于介电层中邻近于漏极处,且将另一数据位的电荷定位于介电层中邻近于源极处。举例来说,美国专利第5,768,192及6,011,725号揭示具有夹于两个二氧化硅层之间的捕集电介质的非易失性存储器单元。通过单独读取电介质内的空间分离电荷存储区域的二元状态来实施多状态数据存储。
存储器阵列
存储器装置通常包含布置成行及列且可通过字线及位线寻址的存储器单元的二维阵列。可根据NOR型或NAND型架构而形成阵列。
NOR阵列
图2说明存储器单元的NOR阵列的一实例。已通过图1B或图1C中所说明的类型的单元而实施具有NOR型架构的存储器装置。每一行存储器单元通过其源极及漏极以菊式链接的方式而连接。有时将此设计称作虚接地设计。每一存储器单元10具有源极14、漏极16、控制栅极30及选择栅极40。一行中的单元使其选择栅极连接到字线42。一列中的单元使其源极及漏极分别连接到所选位线34及36。在独立控制存储器单元的控制栅极及选择栅极的一些实施例中,操纵线36还连接一列中的单元的控制栅极。
许多快闪EEPROM装置通过存储器单元而实施,其中每一存储器单元由其连接到一起的控制栅极及选择栅极而形成。在此情形中,不需要操纵线且字线简单地连接沿每一行的单元的所有控制栅极及选择栅极。美国专利第5,172,338及5,418,752号中揭示所述设计的实例。在所述设计中,字线本质上执行两个功能:行选择及向行中的所有单元供应控制栅极电压以进行读取或编程。
NAND阵列
图3说明例如图1D所示的存储器单元的NAND阵列的一实例。沿NAND单元的每一列,位线耦合到每一NAND单元的漏极端子56。沿NAND单元的每一行,源极线可连接所有其源极端子54。沿一行的NAND单元的控制栅极还连接到一连串对应字线。可通过经由所连接的字线以其控制栅极上的适当电压接通所述对选择晶体管(见图1D)而寻址一整行NAND单元。在读取NAND单元的链内的一存储器晶体管时,链中的剩余存储器晶体管经由其相关联的字线而经硬接通以使得流过所述链的电流本质上视存储于所读取的单元中的电荷的电平而定。在美国专利第5,570,315、5,774,397及6,046,935号中可找到NAND架构阵列的一实例及其作为存储器系统的部分的操作。
块擦除
电荷存储存储器装置的编程可仅导致向其电荷存储元件添加更多电荷。因此,在编程操作之前,必须移除(或擦除)电荷存储元件中的现有电荷。提供擦除电路(未图示)以擦除存储器单元的一个或一个以上块。当一同(即,瞬间)电擦除单元的整个阵列或阵列的单元的重要群组时,将例如EEPROM的非易失性存储器称作“快闪”EEPROM。一旦经擦除,则单元的群组可经再编程。可一同擦除的单元的群组可由一个或一个以上可寻址擦除单位组成。擦除单位或块通常存储一个或一个以上数据页,页为编程及读取的单位,但可在单一操作中编程或读取一个以上页。每一页通常存储一个或一个以上扇区的数据,扇区的大小由主机系统来界定。一实例为具有512字节的用户数据(其遵循关于磁盘驱动器而建立的标准)加上某一数目的字节的关于用户数据及/或其存储于的块的开销信息的扇区。
读取/写入电路
在常见双态EEPROM单元中,建立至少一电流断点电平以便将导通窗口分割为两个区域。当通过施加预定、固定电压而读取单元时,其源极/漏极电流通过与断点电平(或参考电流IREF)比较而转变为存储器状态。如果电流读数高于断点电平的读数,则确定单元处于一逻辑状态(例如,“零”状态)。另一方面,如果电流小于断点电平的电流,则确定单元处于另一逻辑状态(例如,“一”状态)。因此,所述双态单元存储一位的数字信息。通常提供可在外部可编程的参考电流源作为存储器系统的部分以产生断点电平电流。
为了增大存储器容量,随着半导体技术的状态进步而制造具有越来越高的密度的快闪EEPROM装置。增大存储容量的另一方法为使得每一存储器单元存储两个以上状态。
对于多状态或多电平EEPROM存储器单元,通过一个以上断点将执行窗口分割为两个以上区域以使得每一单元能够存储一个以上数据位。给定EEPROM阵列可存储的信息因此随每一单元可存储的状态的数目而增加。美国专利第5,172,338号中已描述具有多状态或多电平存储器单元的EEPROM或快闪EEPROM。
实际上,通常通过在向控制栅极施加参考电压时感测跨越单元的源极与漏极电极的传导电流而读取单元的存储器状态。因此,对于单元的浮动栅极上的每一给定电荷,可检测到相对于固定参考控制栅极电压的对应传导电流。类似地,可编程到浮动栅极上的电荷的范围界定对应阈值电压窗口或对应传导电流窗口。
或者,替代检测经分割的电流窗口中的传导电流,在控制栅极处的测试中可能对于给定存储器状态设定阈值电压且检测传导电流是否低于或高于阈值电流。在一实施方案中,通过检查传导电流经由位线的电容而放电的速率来完成对传导电流相对于阈值电流的检测。
图4说明对于浮动栅极于任一时间可选择性地存储的四个不同电荷Q1-Q4的源极-漏极电流ID与控制栅极电压VCG之间的关系。四个实线ID与VCG的关系曲线表示可在存储器单元的浮动栅极上编程的四个可能电荷电平,其分别对应于四个可能存储器状态。作为一实例,一定数目的单元的阈值电压窗口可在0.5V到3.5V的范围中。可通过以各0.5V的间隔将阈值窗口分割为五个区域而划分六个存储器状态。举例来说,如果如图示而使用2μA的参考电流IREF,则可将以Q1而编程的单元视作处于存储器状态“1”中,因为其曲线与IREF相交于阈值窗口的通过VCG=0.5V与1.0V所划分的区域中。类似地,Q4处于存储器状态“5”中。
如从上文的描述可见,使存储器单元存储越多状态,其阈值窗口受到越细致的划分。此将要求编程及读取操作中的较高精确度以便能够实现所需分辨率。
美国专利第4,357,685号揭示编程2-状态EPROM的方法,其中当将单元编程为给定状态时,其经受连续编程电压脉冲,每一次向浮动栅极添加递增的电荷。在脉冲之间,回读或验证单元以确定其相对于断点电平的源极-漏极电流。在已验证当前状态达到所要状态时停止编程。所使用的编程脉冲串可具有递增的周期或振幅。
现有技术的编程电路简单地施加编程脉冲以从擦除状态或基态逐步调试阈值窗口直到达到目标状态。实际上,为了允许足够的分辨率,每一经分割或划分的区域将需要至少约五个编程步骤以横穿。性能对于2-状态存储器单元来说为可接受的。然而,对于多状态单元,所需步骤的数目随分割的数目而增加,且因此,编程精确度或分辨率必然增加。举例来说,16-状态单元可能需要平均至少40个编程脉冲以编程到一目标状态。
图5示意性地说明具有存储器阵列100的通过读取/写入电路170经由行解码器130及列解码器160可存取的典型布置的存储器装置。如结合图2及图3所描述,存储器阵列100中的存储器单元的存储器晶体管可经由一组所选字线及位线而寻址。行解码器130选择一个或一个以上字线且列解码器160选择一个或一个以上位线以便向经寻址的存储器晶体管的相应栅极施加适当电压。提供读取/写入电路170以读取或写入(编程)经寻址的存储器晶体管的存储器状态。读取/写入电路170包含可经由位线连接到阵列中的存储器元件的若干读取/写入模块。
图6A为个别读取/写入模块190的示意性框图。本质上,在读取或验证期间,感测放大器确定流过经由所选位线而连接的经寻址的存储器晶体管的漏极的电流。所述电流视存储于存储器晶体管中的电荷及其控制栅极电压而定。举例来说,在多状态EEPROM单元中,可对其浮动栅极充电到若干不同电平中的一者。对于4-电平单元,其可用以存储两个数据位。通过电平-位转换逻辑而将感测放大器所检测的电平转换为待存储于数据锁存器中的一组数据位。
影响读取/写入性能及准确性的因素
为了改进读取及编程性能,并行地读取或编程阵列中的多个电荷存储元件或存储器晶体管。因此,一同读取或编程存储器元件的逻辑“页”。在现有存储器架构中,一行通常含有若干交错页。将一同读取或编程一页的所有存储器元件。列解码器将选择性地将交错页中的每一者连接到对应数目的读取/写入模块。举例来说,在一实施方案中,将存储器阵列设计为具有532字节(512字节加上20字节的开销)的页大小。如果每一列含有一漏极位线且每一行存在两个交错页,则此量达到8512列,其中每一页与4256列相关联。将存在可连接以并行读取或写入所有偶数位线或奇数位线的4256个感测模块。以此方式,从存储器元件的页读取数据的并行的4256个位(即,532字节)的页或将其编程到存储器元件的页。可将形成读取/写入电路170的读取/写入模块布置为各种架构。
参看图5,将读取/写入电路170组织为成组的读取/写入堆栈180。每一读取/写入堆栈180为读取/写入模块190的堆栈。在存储器阵列中,列间距由占据其的一或两个晶体管的大小而确定。然而,如从图6A可见,读取/写入模块的电路将可能用多得多的晶体管及电路元件而实施且因此将占据越过许多列的空间。为了服务于所占据的列中的一个以上的列,将多个模块堆叠于彼此顶部上。
图6B展示由读取/写入模块190的堆栈按照惯例实施的图5的读取/写入堆栈。举例来说,读取/写入模块可延伸越过十六列,接着可使用具有八个读取/写入模块的堆栈的读取/写入堆栈180来服务并联的八列。读取/写入堆栈可经由列解码器而耦合到组中的八个奇数(1、3、5、7、9、11、13、15)列或八个偶数(2、4、6、8、10、12、14、16)列。
如前文所提及,常规存储器装置通过以整体并行方式一次对所有偶数或所有奇数位线进行操作而改进读取/写入操作。由两个交错页组成的行的此架构将有助于减轻装配读取/写入电路的块的问题。其还由对控制位线到位线的电容耦合的考虑而规定。使用块解码器以将所述组读取/写入模块多路复用到偶数页或奇数页。以此方式,当读取或编程一组位线时,可使交错组接地以最小化紧邻的耦合。
然而,交错页架构在至少三个方面存在缺点。第一,其需要额外多路复用电路。第二,其在性能上较慢。为了完成由字线连接的或一行中的存储器单元的读取或编程,需要两个读取或两个编程操作。第三,其在处理例如浮动栅极电平处的相邻的电荷存储元件之间的场耦合(当例如分别处于奇数与偶数页中的两个相邻元件于不同时间受到编程时)的其它干扰效应中也不是最佳的。
相邻场耦合的问题随着存储器晶体管之间的日益紧密的间距而变得较为显著。在存储器晶体管中,电荷存储元件夹于沟道区域与控制栅极之间。在沟道区域中流动的电流依据由控制栅极与电荷存储元件处的场起作用的合成电场而变。随着日益增加的密度,存储器晶体管越来越紧密地形成在一起。接着来自相邻电荷元件的场变为对受影响的单元的合成场的重要贡献者。相邻场视经编程到相邻者的电荷存储元件中的电荷而定。此扰动场本质上为动态的,因为其随相邻者的编程状态而改变。因此,可视相邻者的改变状态而在不同时间对受影响的单元进行不同的读取。
交错页的常规架构加剧由相邻浮动栅极耦合而造成的误差。由于偶数页与奇数页独立于彼此而经编程及读取,因此可视当时发生于交错页上的情况而在一组条件下编程一页但在一完全不同组的条件下回读所述页。读取误差随着增加的密度将变得较为严重,从而要求较为准确的读取操作及对阈值窗口的较粗分割以用于多状态实施方案。性能将受到损害且多状态实施方案中的潜在能力受到限制。
美国专利公开案第US-2004-0060031-A1号揭示高性能而又紧密的非易失性存储器装置,其具有读取/写入电路的一较大块以并行地读取及写入存储器单元的对应块。具体来说,存储器装置具有将读取/写入电路的块中的冗余度降低到最小的架构。通过将读取/写入模块的块再分配到块读取/写入模块核心部分中而完成空间以及功率的显著节省,所述核心部分在与显著较小组的共同部分以时间多路复用的方式相互作用时并行操作。具体来说,通过共享处理器来执行多个感测放大器与数据锁存器之间的读取/写入电路中的数据处理。
因此,存在对于高性能及高容量非易失性存储器的普遍需要。具体来说,存在对于具有增强的读取及编程性能的紧密非易失性存储器的需要,所述存储器具有紧密且有效而对于处理读取/写入电路中的数据更是高通用的改进处理器。
发明内容
根据本发明的一方面,提出允许在内部存储器处于例如读取、编程或擦除的另一操作中时将数据转移入或转移出存储器的高速缓存操作。具体来说,描述允许所述高速缓存操作的数据锁存器的布置及其使用方法。
描述许多物理页共享数据锁存器的架构。举例来说,读取/写入堆栈与存储器的由多个字线共享的位线相关联。当一操作在存储器中进行时,如果所述锁存器中的任一者空闲,则其可高速缓存数据用于同一或另一字线中的将来的操作,从而节省转移时间,因为此可藏于另一操作之后。此可通过增加对不同操作或操作的不同阶段的管线式操作的量而改进性能。在一实例中,在高速缓存编程操作中,当编程一页数据时,可加载另一页数据以节省转移时间。对于另一实例,在一示范性实施例中,将对一字线的读取操作插入到对另一字线的写入操作中,从而允许来自所述读取的数据在数据写入继续的同时转移出存储器。
根据各种方面,可在写入或其它操作对于第一页数据进行的同时将来自同一块中但不同字线上的另一页的数据切出(toggle out)(以(例如)进行ECC操作)。对操作的此阶段间管线式操作允许数据转移所需的时间藏于对第一页数据的操作之后。更一般地,此允许将一操作的一部分插入于另一操作(通常较长)的阶段之间。另一实例会将感测操作插入于(如)擦除操作的阶段之间,例如在擦除脉冲之前或在用作擦除的稍后部分的软编程阶段之前。
如果正执行一具有不同阶段的相对较长的操作,则主要方面将通过使用读取/写入堆栈的共享锁存器(如果锁存器可用)而插入较快速的操作。举例来说,可将读取插入于编程或擦除操作中,或者可将二进制编程插入于擦除中。主要示范性实施例将在编程操作期间针对一页切入及/或切出数据以用于另一页,所述页共享相同的读取写入堆栈,其中(例如),将对待切出并修改的数据的读取插入于数据写入的验证阶段中。
开放的数据锁存器的可用性可以许多方式而发生。一般来说,对于每单元存储n个位的存储器来说,对于每一位线将需要n个所述数据锁存器;然而,并非总是需要所述锁存器的全部。举例来说,在以上部页/下部页的格式存储数据的每单元两位的存储器中,在编程下部页时将需要一个数据锁存器(如果实施快速通过写入则使用另一锁存器)。在编程上部页时将需要两个数据锁存器(如果实施快速通过写入则使用第三锁存器)。更一般来说,对于存储多个页的存储器来说,仅在编程最高页时将需要全部锁存器。此使得其它锁存器可用于高速缓存操作。此外,即使在写入最高页时,由于从写入操作的验证阶段移除各种状态,因此锁存器将为自由的。特定来说,一旦仅剩最高状态待验证,则仅需单一锁存器用于验证的目的且其它锁存器可用于高速缓存操作。
一示范性实施例基于每单元存储两个位且具有针对每一位线上的数据的两个锁存器及用于快速通过写入的一额外锁存器的四状态存储器。写入下部页或擦除或进行后擦除软编程的操作基本上为二进制操作且其中数据锁存器中的一者为空闲的,可使用其来高速缓存数据。类似地,在进行上部页或全序列写入时,一旦除最高层级之外的所有层级已经验证,则仅单一状态需验证且存储器可释放一锁存器,可使用所述锁存器来高速缓存数据。如何可使用此的一实例为在(例如于复制操作中)编程一页时,对共享同一组的数据锁存器的另一页(例如同一组的位线上的另一字线)的读取可在编程脉冲与写入的验证之间插入。接着可将地址切换到正写入的页,允许写入处理在其停止处处拾起而无需重新开始。在写入继续的同时,在插入的读取期间高速缓存的数据可经切出、检查或修改且转移返回以存在用于在一旦早先写入操作完成时即写回。此种类的高速缓存操作允许将对第二页数据的切出及修改藏于对第一页的编程之后。
读取期间的高速缓存操作——后台读取及写入操作
根据本发明的一方面,提供一读取高速缓存方案以用于具有最小化存储器单元之间的扰动(Yupin效应)的需要的多状态存储器单元的情形。用于高速缓存读取数据的方案如下:即使对于校正视来自相邻物理页或字线的数据而定的读取操作,数据锁存器及I/O总线也有效地用以在当前页正从存储器核心而被感测的同时切出先前读取页。
在优选实施方案中,对于以“LM”编码而编码且以先行(“LA”)校正而读取的存储器使用有效读取高速缓存方案。“LM”编码及“LA”校正两者均需要除仅仅切换读取数据以外的额外锁存器及总线活动。在必须以对邻近字线上的数据的预先必要的读取而先行于对当前字线上的当前页的读取时,所述预先必要的读取连同任何I/O存取在读取先前页的循环中经抢先完成以使得可在先前读取页忙于I/O存取的同时执行当前读取。
根据本发明的另一方面,对于一个以上的位经一同感测的多位存储器单元页实施读取高速缓存方案。在优选实施方案中,一同感测所有多个位。所感测的多位存储器单元页对应于多个二进制页,对于多个位中的每一者存在一个二进制页。在每一循环中输出二进制页,同时在多个循环中执行多位感测。所述多个与多个位中的位的数目相同。
将从以下对于其优选实施例的描述而了解本发明的额外特征及优点,应结合附图而进行所述描述。
附图说明
图1A到图1E示意性地说明非易失性存储器单元的不同实例。
图2说明存储器单元的NOR阵列的一实例。
图3说明例如图1D所示的存储器单元的NAND阵列的一实例。
图4说明对于浮动栅极于任一时间可存储的四个不同电荷Q1-Q4的源极-漏极电流与控制栅极电压之间的关系。
图5示意性地说明通过读取/写入电路经由行及列解码器可存取的存储器阵列的典型布置。
图6A为个别读取/写入模块的示意性框图。
图6B展示由读取/写入模块的堆栈按照惯例实施的图5的读取/写入堆栈。
图7A示意性地说明具有一组经分割的读取/写入堆栈的的紧密存储器装置,其中实施本发明的改进处理器。
图7B说明图7A所示的紧密存储器装置的优选布置。
图8示意性地说明图7A所示的读取/写入堆栈中的基本组件的一般布置。
图9说明图7A及图7B所示的读取/写入电路中的读取/写入堆栈的一优选布置。
图10说明图9所示的共用处理器的改进实施例。
图11A说明图10所示的共用处理器的输入逻辑的优选实施例。
图11B说明图11A的输入逻辑的真值表。
图12A说明图10所示的共用处理器的输出逻辑的优选实施例。
图12B说明图12A的输出逻辑的真值表。
图13为图10的简化版本,其展示在本发明的二位实施例中与当前论述相关的一些特定元件。
图14指示对于其中读入下部页数据的上部页编程的对与图13的相同元件的锁存器指派。
图15说明以单页模式进行的高速缓存编程的方面。
图16展示可用于下部页到全序列转换中的编程波形。
图17说明在具有全序列转换的高速缓存编程操作中的相对时序。
图18描述锁存器在高速缓存页复制操作中的部署。
图19A及图19B说明高速缓存页复制操作中的相对时序。
图20A说明在每一存储器单元使用LM代码存储两个位的数据时4状态存储器阵列的阈值电压分布。
图20B说明使用LM代码在现有2循环编程方案中进行的下部页编程。
图20C说明使用LM代码在现有2循环编程方案中进行的上部页编程。
图20D说明辨别以LM代码编码的4状态存储器的下部位所需的读取操作。
图20E说明辨别以LM代码编码的4状态存储器的上部位所需的读取操作。
图21为下部页编程的示意性时序图,其说明将下一页编程数据加载到未使用的数据锁存器中的后台操作。
图22为展示在使用QWP的4状态上部页或全序列编程的各种阶段期间需跟踪的状态的数目的表。
图23为上部页或全序列编程的示意性时序图,其说明将下一页编程数据加载到未使用的数据锁存器中的后台操作。
图24为说明根据本发明的一般实施例的与当前多阶段存储器操作同时发生的锁存器操作的流程图。
图25为下部页编程的示意性时序图,其说明使用可用锁存器而进行的读取中断操作。
图26为上部页编程的示意性时序图,其说明使用可用锁存器而进行的读取中断操作。
图27说明与典型存储器操作相关联的信息的封装。
图28说明支持简单高速缓存操作的常规存储器系统。
图29为说明多个存储器操作的排队及可能合并的流程图。
图30说明并入有存储器操作队列及存储器操作队列管理器的优选芯片上控制电路的示意性框图。
图31为说明擦除操作期间在后台中的高速缓存操作的示意性流程图。
图32为对存储器阵列进行的擦除操作的示意性时序图,其说明擦除操作的第一擦除阶段期间的编程数据加载操作。
图33为对存储器阵列进行的擦除操作的示意性时序图,其说明擦除操作的软编程/验证阶段期间的编程数据加载操作。
图34为对存储器阵列进行的擦除操作的示意性时序图,其说明插入的读取操作及使用可用锁存器而进行的所得数据输出操作。
图35为说明图31的步骤780中在擦除操作期间在后台中用于读取擦洗应用的特定高速缓存操作的示意性流程图。
图36说明擦除期间的抢先后台读取。
图37示意性地说明典型读取高速缓存方案。
图38A为针对高速缓存读取以LM代码编码的逻辑页的示意性时序图。
图38B为针对以LM代码进行的高速缓存读取在尚未对上部位逻辑页进行编程时读取下部位逻辑页的特殊情形中的示意性时序图。
图39说明对于2位存储器以所有位感测而进行的高速缓存读取的示意性时序图。
图40说明一存储器的实例,其具有2位存储器单元且其中其页以最佳序列编程从而最小化邻近字线上的存储器单元之间的Yupin效应。
图41说明根据图37所示的常规方案对于LM代码连同LA校正的读取高速缓存的实施方案。
图42说明以LM代码及LA校正进行的改进读取高速缓存方案。
图43为说明改进读取高速缓存的示意性流程图。
图44为以进一步的清晰度说明图43的步骤850的示意性流程图。
图45为以进一步的清晰度说明图43的步骤830的示意性流程图。
具体实施方式
图7A示意性地说明具有一组经分割的读取/写入堆栈的紧密存储器装置,其中实施本发明的改进处理器。存储器装置包括存储器单元的二维阵列300、控制电路310及读取/写入电路370。存储器阵列300通过字线经由行解码器330及通过位线经由列解码器360而可寻址。读取/写入电路370经实施为一组经分割的读取/写入堆栈400且允许存储器单元的块(还称作“页”)经并行地读取或编程。在优选实施例中,一页由一行邻接存储器单元构成。在将一行存储器单元分割为多个块或页的另一实施例中,提供块多路复用器350以将读取/写入电路370多路复用到个别块。
控制电路310与读取/写入电路370协作以对存储器阵列300执行存储器操作。控制电路310包括状态机312、芯片上地址解码器314及功率控制模块316。状态机312提供存储器操作的芯片级控制。芯片上地址解码器314提供由主机或存储器控制器所使用的地址与解码器330及370所使用的硬件地址之间的地址接口。功率控制模块316控制在存储器操作期间供应到字线及位线的功率及电压。
图7B说明图7A所示的紧密存储器装置的优选布置。以在阵列的相对侧上对称的方式实施各种外围电路对存储器阵列300的存取,以使得每侧上的存取线及电路减半。因此,将行解码器拆分为行解码器330A及330B且将列解码器拆分为列解码器360A及360B。在将一行存储器单元分割为多个块的实施例中,将块多路复用器350拆分为块多路复用器350A及350B。类似地,将读取/写入电路拆分为从阵列300的底部连接到位线的读取/写入电路370A及从阵列300的顶部连接到位线的读取/写入电路370B。以此方式,读取/写入模块的密度及因此经分割的读取/写入堆栈400的密度本质上减半。
图8示意性地说明图7A所示的读取/写入堆栈中的基本组件的一般布置。根据本发明的一般架构,读取/写入堆栈400包含用于感测k个位线的感测放大器堆栈212、用于数据经由I/O总线231的输入或输出的I/O模块440、用于存储输入或输出数据的数据锁存器堆栈430、用以处理及存储读取/写入堆栈400中的数据的共用处理器500及用于堆栈组件中的通信的堆栈总线421。读取/写入电路370中的堆栈总线控制器经由线411提供控制及定时信号以控制读取/写入堆栈中的各种组件。
图9说明图7A及图7B所示的读取/写入电路中的读取/写入堆栈的一优选布置。每一读取/写入堆栈400对k个位线的群组并行地操作。如果一页具有p=r*k个位线,则将存在r个读取/写入堆栈400-1,......,400-r。
并行操作的经分割的读取/写入堆栈400的整个组允许并行地读取或编程沿一行的p个单元的块(或页)。因此,将存在p个读取/写入模块用于整行单元。由于每一堆栈服务于k个存储器单元,因此通过r=p/k而给出组中的读取/写入堆栈的总数。举例来说,如果r为组中的堆栈的数目,则p=r*k。一实例存储器阵列可具有p=512字节(512x8位),k=8且因此r=512。在优选实施例中,块为整行单元的游程。在另一实施例中,块为行中的单元的子组。举例来说,单元的子组可为整行的一半或整行的四分之一。单元的子组可为一游程的邻接单元或每隔一个的单元或每隔预定数目个的单元。
例如400-1的每一读取/写入堆栈本质上含有并行地服务于k个存储器单元的段的感测放大器212-1到212-k的堆栈。美国专利公开案第2004-0109357-A1号中揭示优选感测放大器,所述公开案的全部揭示内容以引用的方式并入本文中。
堆栈总线控制器410经由线411向读取/写入电路370提供控制及定时信号。堆栈总线控制器自身经由线311视存储器控制器310而定。通过互连堆栈总线431而实现每一读取/写入堆栈400中的通信且通过堆栈总线控制器410而控制所述通信。控制线411从堆栈总线控制器410向读取/写入堆栈400-1的组件提供控制及时钟信号。
在优选布置中,将堆栈总线分割为用于共用处理器500与感测放大器的堆栈212之间的通信的SA总线(SABus)422及用于处理器与数据锁存器的堆栈430之间的通信的D总线(DBus)423。
数据锁存器的堆栈430包含数据锁存器430-1到430-k,对于与堆栈相关联的每一存储器单元存在一者。I/O模块440使得数据锁存器能够经由I/O总线231与外部交换数据。
共用处理器还包括用于输出指示存储器操作的状态(例如误差状况)的状态信号的输出507。状态信号用以驱动线或(Wired-Or)配置中连结到旗标总线(FLAG BUS)509的n晶体管550的栅极。旗标总线优选地通过控制器310而预充电且将在读取/写入堆栈中的任一者断言状态信号时被下拉。
图10说明图9所示的共用处理器的改进实施例。共用处理器500包含用于与外部电路通信的处理器总线P总线(PBUS)505、输入逻辑510、处理器锁存器P锁存器(PLatch)520及输出逻辑530。
输入逻辑510从P总线接收数据且作为视经由信号线411来自堆栈总线控制器410的控制信号而处于逻辑状态“1”、“0”或“Z”(浮动)中的一者的经变换数据输出到BSI节点。设定/重设锁存器P锁存器520接着锁存BSI,导致如MTCH及MTCH*的一对补充输出信号。
输出逻辑530接收MTCH及MTCH*信号且在P总线505上输出视经由信号线411来自堆栈总线控制器410的控制信号而处于逻辑状态“1”、“0”或“Z”(浮动)中的一者的经变换数据。
在任一时刻,共用处理器500处理与给定存储器单元相关的数据。举例来说,图10说明存储器单元耦合到位线1的情形。对应感测放大器212-1包含感测放大器数据出现的节点。在优选实施例中,节点采取存储数据的SA锁存器214-1的形式。类似地,对应组的数据锁存器430-1存储与耦合到位线1的存储器单元相关联的输入或输出数据。在优选实施例中,所述组的数据锁存器430-1包含充足数据锁存器434-1,......,434-n以存储n位的数据。
当通过一对补充信号SAP及SAN而启用转移栅极501时,共用处理器500的P总线505经由S总线422可接近SA锁存器214-1。类似地,当通过一对补充信号DTP及DTN而启用转移栅极502时,P总线505经由D总线423可接近所述组数据锁存器430-1。明确地将信号SAP、SAN、DTP及DTN说明为来自堆栈总线控制器410的控制信号的部分。
图11A说明图10所示的共用处理器的输入逻辑的优选实施例。输入逻辑520在P总线505上接收数据且视控制信号而使得输出BSI为相同、反相或浮动的。输出BSI节点本质上受转移栅极522或包含串联到Vdd的p晶体管524及525的上拉电路或者包含串联接地的n晶体管526及527的下拉电路的输出的影响。上拉电路具有到p晶体管524及525的栅极,其分别由信号P总线及ONE控制。下拉电路具有到n晶体管526及527的栅极,其分别由信号ONEB<1>及P总线控制。
图11B说明图11A的输入逻辑的真值表。由P总线及作为来自堆栈总线控制器410的控制信号的部分的控制信号ONE、ONEB<0>、ONEB<1>而控制逻辑。本质上,支持三个转移模式:通过(PASSTHROUGH)、反相(INVERTED)及浮动(FLOATED)。
在BSI与输入数据相同的通过模式的情形下,信号ONE处于逻辑“1”,ONEB<0>处于“0”且ONEB<1>处于“0”。此将停用上拉或下拉但将启用转移栅极522以在P总线505上将数据传递到输出523。在BSI为输入数据的反相的反相模式的情形下,信号ONE处于“0”,ONEB<0>处于“1”且ONE<1>处于“1”。此将停用转移栅极522。同样,当P总线处于“0”时,将停用下拉电路而启用上拉电路,此导致BSI处于“1”。类似地,当P总线处于“1”时,将停用上拉电路而启用下拉电路,此导致BSI处于“0”。最后,在浮动模式的情形下,可通过使得信号ONE处于“1”,ONEB<0>处于“1”且ONEB<1>处于“0”而使输出BSI浮动。为了完整性而列出浮动模式,但在实际上不使用所述模式。
图12A说明图10所示的共用处理器的输出逻辑的优选实施例。在处理器锁存器P锁存器520中锁存BSI节点处来自输入逻辑520的信号。输出逻辑530从P锁存器520的输出接收数据MTCH及MTCH*且视控制信号而在P总线上以通过、反相或浮动模式输出。换句话说,四个分支充当P总线505的驱动器,主动将其拉到高、低或浮动状态。此通过P总线505的四个分支电路(即两个上拉电路及两个下拉电路)而完成。第一上拉电路包含串联到Vdd的p晶体管531及532,且能够在MTCH处于“0”时上拉P总线。第二上拉电路包含串联到接地的p晶体管533及534,且能够在MTCH处于“1”时上拉P总线。类似地,第一下拉电路包含串联到Vdd的n晶体管535及536,且能够在MTCH处于“0”时下拉P总线。第二上拉电路包含串联到接地的n晶体管537及538,且能够在MTCH处于“1”时上拉P总线。
本发明的一特征为以PMOS晶体管构成上拉电路且以NMOS晶体管构成下拉电路。由于通过NMOS的拉动远强于PMOS的拉动,因此在任何竞争中下拉将总是胜过上拉。换句话说,节点或总线可总是默认为上拉或“1”状态,且必要时可总通过下拉而倒转为“0”状态。
图12B说明图12A的输出逻辑的真值表。通过从输入逻辑锁存的MTCH、MTCH*及作为来自堆栈总线控制器410的控制信号的部分的控制信号PDIR、PINV、NDIR、NINV而控制逻辑。支持四个操作模式:通过、反相、浮动及预充电。
在浮动模式中,停用所有四个分支。此通过使信号PINV=1、NINV=0、PDIR=I、NDIR=0(此也为默认值)而完成。在通过模式中,当MTCH=0时,其将要求P总线=0。此通过仅启用具有n晶体管535及536的下拉分支(其中所有控制信号处于其默认值,除了NDIR=1)而完成。当MTCH=1时,其将要求P总线=1。此通过仅启用具有p晶体管533及534的上拉分支(其中所有控制信号处于其默认值,除了PINV=0)而完成。在反相模式中,当MTCH=0时,其将要求P总线=1。此通过仅启用具有p晶体管531及532的上拉分支(其中所有控制信号处于其默认值,除了PDIR=0)而完成。当MTCH=1时,其将要求P总线=0。此通过仅启用具有n晶体管537及538的下拉分支(其中所有控制信号处于其默认值,除了NINV=1)而完成。在预充电模式中,PDIR=0及PINV=0的控制信号设定将在MTCH=1时启用具有p晶体管531及531的上拉分支或在MTCH=0时启用具有p晶体管533及534的上拉分支。
共用处理器操作在2004年12月29日的美国专利申请案号11/026,536中展开地更为充分,所述申请案的全文以引用的方式并入本文中。
数据锁存器在高速缓存操作中的使用
本发明的若干方面利用上文于图10中描述的读取/写入堆栈的数据锁存器以用于高速缓存操作,所述执行将在内部存储器进行例如读取、写入或擦除的其它操作的同时输入及输出数据。在上文所述的架构中,若干物理页共享数据锁存器。举例来说,由于处于由所有字线所共享的位线的读取/写入堆栈上,因此当一操作进行时,如果所述锁存器中的任一者空闲,则其可高速缓存数据用于同一或另一字线中的将来的操作,从而节省转移时间(因为此可隐藏于另一操作之后)。此可通过增加对不同操作或操作的不同阶段的管线式操作的量而改进性能。在一实例中,在高速缓存编程操作中,当编程一页数据时,可加载另一页数据以节省转移时间。对于另一实例,在一示范性实施例中,将对一字线的读取操作插入到对另一字线的写入操作中,从而允许来自所述读取的数据在数据写入继续的同时转移出存储器。
注意,此允许在写入或其它操作针对第一页数据进行的同时将来自同一块中但不同字线上的另一页的数据切出(以(例如)进行ECC操作)。对操作的此阶段间管线式操作允许数据转移所需的时间藏于对第一页数据的操作之后。更一般地,此允许将一个操作的一部分插入于另一(通常较长)操作的阶段之间。另一实例会将感测操作插入于(如)擦除操作的阶段之间,例如在擦除脉冲之前或在用作擦除的稍后部分的软编程阶段之前。
为了论述操作中的一些所需的相对时间,可将用于上文所述的系统的一组示范性时间值取为:
数据写入:~700μs(下部页~600μs,上部页800μs)
二进制数据写入:~200μs
擦除:~2,500μs
读取:~20-40μs
读取及切出数据:2KB数据,~80μs;4KB~160μs;8KB~320μs
所述值可用于参考以给出对下文的时序图所涉及的相对时间的概念。如果具有一具有不同阶段的较长操作,则主要方面将通过使用读取/写入堆栈的共享锁存器(如果锁存器可用)而插入于较快速的操作中。举例来说,可将读取插入于编程或擦除操作中,或者可将二进制编程插入于擦除中。主要示范性实施例将在编程操作期间针对一页切入及/或切出数据以用于另一页,所述页共享相同的读取写入堆栈,其中(例如)将对待切出并经修改的数据的读取插入于数据写入的验证阶段中。
开放的数据锁存器的可用性可以若干方式而发生。一般来说,对于每单元存储n个位的存储器来说,对于每一位线将需要n个所述数据锁存器;然而,并非总是需要所有所述锁存器。举例来说,在以上部页/下部页的格式存储数据的每单元两位的存储器中,在编程下部页时将需要两个数据锁存器。更一般地,对于存储多个页的存储器来说,仅在编程最高页时将需要所有锁存器。此使得其它锁存器可用于高速缓存操作。此外,即使在写入最高页时,由于从写入操作的验证阶段移除各种状态,因此锁存器将释放。特定来说,一旦仅剩最高状态待验证,则仅需单一锁存器用于验证的目的且其它锁存器可用于高速缓存操作。
以下论述将基于如并入于上文中的题为“数据锁存器在非易失性存储器的多阶段编程中的使用(Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories)”的美国专利申请案中所描述的每单元存储两个位且具有针对每一位线上的数据的两个锁存器及用于快速通过写入的一额外锁存器的四状态存储器,所述申请案与本申请案同时申请。写入下部页或擦除或进行后擦除软编程的操作基本上为二进制操作且其中数据锁存器中的一者为空闲的,可使用其来高速缓存数据。类似地,在进行上部页或全序列写入时,一旦除最高层级的所有层级已经验证,则仅单一状态需验证且存储器可释放一锁存器,可使用所述锁存器来高速缓存数据。如何可使用此的一实例为在(例如于复制操作中)编程一页时,对共享同一组数据锁存器的另一页(例如同一组位线上的另一字线)的读取可在写入的验证阶段期间塞入。接着可将地址切换到正写入的页,从而允许写入处理在其停止之处拾起而无需重新开始。在写入继续的同时,在经内插的读取期间高速缓存的数据可经切出、检查或修改且转移返回以存在用于在一旦早先写入操作完成时即写回。此种类的高速缓存操作允许将对第二页数据的切出及修改藏于对第一页的编程之后。
作为第一实例,用于二位存储器的高速缓存编程操作以单页(下部页/上部页的格式)编程模式而操作。图13为图10的简化版本,其展示在二位实施例中与当前论述相关的一些特定元件,去除其它元件以简化论述。所述包括连接数据I/O线231的数据锁存器DL0 434-0、通过线423而连接到共用处理器500的数据锁存器DL1 434-1、通过线435而与其它数据锁存器共同地连接的数据锁存器DL2 434-2以及通过线422而连接到共用处理器500的感测放大器数据锁存器DLS214。图13的各种元件根据其在对下部页的编程期间的部署而被标记。如题为“数据锁存器在非易失性存储器的多阶段编程中的使用(Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories)”的与本申请案同时申请的美国专利申请案中所描述,锁存器DL2434-2用于快速通过写入模式中的下部验证(VL);对寄存器的包括以及在包括寄存器时对使用快速通过写入的包括为可选的,但示范性实施例将包括此寄存器。
对下部页的编程可包括以下步骤:
(1)处理以将数据锁存器DL0 434-0重设为默认值“1”而开始。此惯例用以简化部分页的编程,因为将禁止对所选行中不待编程的单元进行编程。
(2)沿I/O线231将编程数据供应到DL0 434-0。
(3)编程数据将被转移到DL1 434-1及DL2 434-2(如果包括此锁存器且实施快速通过写入)。
(4)一旦将编程数据转移到DL1 434-1,即可将数据锁存器DL0 434-0重设为“1”且在编程时间期间,可沿I/O线231将下一数据页加载到DL0 434-0,从允许在写入第一页的同时对第二页的高速缓存。
(5)一旦将第一页加载到DL1 434-1中,编程即可开始。使用DL1 434-1数据以将单元从进一步编程锁定。如题为“数据锁存器在非易失性存储器的多阶段编程中的使用(Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories)”的与本申请案同时申请的美国专利申请案中所描述,DL2 434-2数据用于管理向快速通过写入的第二阶段的转变的下部验证锁定。
(6)一旦编程开始,在一编程脉冲之后,下部验证的结果即用以更新DL2434-2;较高验证的结果用以更新DL1 434-1。(此论述基于“常规”编码,其中下部页编程将达到A状态。题为“数据锁存器在非易失性存储器的多阶段编程中的使用(Use of Data Latchesin Multi-Phase Programming of Non-Volatile Memories)”的与本申请案同时申请的美国专利申请案及于2005年3月16日申请的题为“具有功率节省读取及编程验证操作的非易失性存储器及方法(Non-Volatile Memory and Method with Power-S aving Read andProgram-Verify Operations)”的美国专利申请案进一步论述了此及其它编码。当前论述向其它编码的扩展易于随后产生)。
(7)在确定编程是否完成的过程中,仅检查行的单元的DL1434-1寄存器(或编程的适当物理单位)。
一旦写入下部页,则可对上部页进行编程。图14展示与图13相同的元件,但指示对于其中读入下部页数据的上部页编程的锁存器指派。(所述描述再次使用常规编码,使得上部页的编程将达到B及C状态)。对上部页的编程可包括以下步骤:
(1)一旦下部页结束编程,即以来自状态机控制器的信号而开始上部页(或下一页)写入,其中(未执行的)高速缓存编程命令得以保存。
(2)编程数据将被从DL0 434-0(在步骤(3)中下部页写入期间将数据加载到DL0434-0)转移到DL1 434-1及DL2 434-2。
(3)将从阵列读入下部页数据且将其放置于DL0 434-0中。
(4)DL1 434-1及DL2 434-2再次分别用于验证高及验证低锁定数据。锁存器DL0434-0(保持下部页数据)作为编程参考数据而经检查,但并不以验证结果对其加以更新。
(5)作为验证B状态的部分,在于下部验证VBL处感测之后,将在DL2 434-2中相应地更新数据,同时通过高验证VBH结果而更新DL1 434-1数据。类似地,C验证将具有对应命令以通过相应VCL及VCH结果来更新锁存器DL2 434-2及DL1 434-1。
(6)一旦B数据完成,则不需要下部页数据(保持于DL0 434-0中用于参考),因为仅需执行对C状态的验证。将DL0 434-0重设为“1”且可从I/O线231加载另一页的编程数据且在锁存器DL0 434-0中对其进行高速缓存。共用处理器500可设定仅C状态待验证的指示。
(7)在确定上部页编程是否完成的过程中,对于B状态检查锁存器DL1 434-1及DL0434-0两者。一旦将单元编程为B状态且仅验证C状态,则仅需检查锁存器DL1 434-1数据以观察是否存在未经编程的任何位。
注意,在此布置下,在步骤6中,不再需要锁存器DL0 434-0且其可用以高速缓存数据以进行下一编程操作。另外,在使用快速通过写入的实施例中,一旦进入第二缓慢编程阶段,即也可使得锁存器DL2 434-2可用于高速缓存数据,但在实际上,实际情形常为此仅可以此方式可用相当短而无法证明经常需要以实施此特征的额外开销是合理的时间周期。
图15可用以说明上几幅图中已描述的以单页模式进行的高速缓存编程的许多方面。图15展示存储器内部事件发生(下部“真实忙碌”线)与从存储器外部观察(上部“高速缓存忙碌”线)的相对时序。
在时间t0处,将待编程到所选字线(WLn)上的下部页加载到存储器中。此假定先前未曾高速缓存第一下部页的数据,因为其将用于后续页。在时间t1处,完成下部页加载且存储器开始写入下部页。由于这在此点上等效于二进制操作,因此仅需验证状态A(“pvfyA”)且数据锁存器DL0 434-0可用于接收下一页数据,此处将下一页数据取作待在时间t2处经编程到WLn中的上部页,其因此在对下部页的编程期间于锁存器DL0 434-0中经高速缓存。上部页在时间t3处完成加载且可在下部页于t4处一结束时即得以编程。在此布置下,虽然数据的全部(下部及上部页)待写入编程的物理单位(此处为字线WLn)中,但是存储器必须从时间t3等待到时间t4才可写入上部页数据,此不同于下文描述的全序列实施例。
对上部页的编程开始于时间t4,其中最初仅验证B状态(“pvfyB”),在t5处添加C状态(“pvfyB/C”)。一旦于t6处不再验证B状态,则仅C状态需经验证(“pvfyC”)且锁存器DL0 434-0被释放。此允许在上部页完成编程的同时高速缓存下一数据组。
如所提到的,根据如图15所示的关于高速缓存编程的单页算法,即使上部页数据可在时间t3处可用,存储器仍将在开始写入此数据之前等待直到时间t4。在向全序列编程操作的转换(例如在美国专利申请案11/013,125中更为充分展开的转换)中,一旦上部页可用,上部及下部页数据即可同时经编程。
用于全序列(低到全的转换)写入中的高速缓存编程的算法如同上文而以下部页编程开始。因此,步骤(1)到(4)关于以单页编程模式进行的下部页处理:
(1)处理以将数据锁存器DL0 434-0重设为默认值“1”而开始。此惯例用以简化部分页的编程,因为将禁止对所选行中不待编程的单元进行编程。
(2)沿I/O线231将编程数据供应到DL0 434-0。
(3)编程数据将被转移到DL1 434-1及DL2 434-2(如果包括此锁存器且实施快速通过写入)。
(4)一旦将编程数据转移到DL1 434-1,即可将数据锁存器DL0 434-0重设为“1”且在编程时间期间,可沿I/O线231将下一数据页加载到DL0 434-0,从而允许在写入第一页的同时对第二页的高速缓存。
一旦加载第二页数据,则如果对应于正写入的下部页的上部且下部页尚未结束编程,则可实施向全序列写入的转换。此论述集中于数据锁存器在所述算法中的使用,其中许多其它细节较充分地展开于共同待决、共同转让的美国专利申请案11/013,125中。
(5)在将上部页数据加载到锁存器DL0 434-0中之后,将在地址块中进行判断以检查2页是否在同一字线及同一块上,其中一页为下部页且一页为上部页。如果是,则编程状态机将触发下部页编程向全序列编程的转换(如果此为允许的)。在所有未决验证完成之后,接着实现转变。
(6)在编程序列从下部页改变为全序列时通常将改变一些操作参数。在示范性实施例中,所述参数包括:
(i)如果下部页数据尚未经锁定,则对于脉冲验证循环的数目的最大编程循环将从下部页算法的最大编程循环改变为全序列的最大编程循环,但已完成的编程循环的数目将不由转换重设。
(ii)如图16所示,编程波形以用于下部页编程处理中的值VPGM_L开始。如果编程波形已前进到其超过用于上部页处理中的开始值VPGM_U之处,则在向全序列转换时,在使阶梯继续上升之前,阶梯将降回到VPGM_U。
(iii)确定编程脉冲的步长大小及最大值的参数不改变。
(7)应执行对存储器单元的当前状态的全序列读取以保证将编程正确数据用于多级编码。此确保可能之前在下部页编程中已经锁定但需要进一步编程以计及上部页数据的状态在全序列开始时不被禁止编程。
(8)如果启动快速通过写入,则将同样更新锁存器DL2 434-2的数据以反映上部页编程数据,因为锁存器DL2 434-2的数据之前基于仅关于A状态的下部验证。
(9)编程接着以多级、全序列编程算法而恢复。如图16所示,如果下部页处理中的编程波形已增加超过上部页开始电平,则在转换时波形逐步后退到此电平。
图17为下部页向全序列转换写入处理中所涉及的相对时间的示意性表示。直到时间t3,处理与上文关于图15中的处理所描述的相同。在已加载上部页的数据且进行向全序列算法的转变的t3处,切换验证处理以包括B状态连同A状态。一旦锁定A状态的全部,验证处理即在时间t4处切换为检查B及C状态。一旦于t5处已验证B状态,则仅C状态需检查且寄存器可被释放以加载待编程的下一数据,例如如在高速缓存忙碌线上所指示的下一字线(WLn+1)上的下部页。在时间t6处,已高速缓存此下一数据组且一旦对先前组的C数据的编程于t7处结束,此下一数据组即开始编程。另外,在(此处)字线WLn+1上的下部页正编程的同时,可将下一数据(例如对应的上部页数据)加载到开放的锁存器DL0 434-0中。
在全序列写入期间,以独立给出下部页与上部页状态的方式实施状态报告。在编程序列的结尾,如果存在未完成的位,则可执行对物理页的扫描。第一扫描可检查锁存器DL0 434-0以获得未完成的上部页数据,第二扫描可检查DL1 434-1以获得未完成的下部页数据。由于对B状态的验证将改变DL0 434-0及DL1 434-1数据,因此应以如果位的阈值值高于A验证电平则DL1434-1数据“0”将改变为“1”的方式而执行A状态验证。此后验证将检查是否存在任何编程不足的B电平在A电平通过;如果其在A电平通过,则误差仅存在于上部页而不存在于下部页上;如果其在A电平未通过,则下部页及上部页均具有误差。
如果使用高速缓存编程算法,则在编程A及B数据之后,C状态将经转移到锁存器DL1 434-1以完成编程。在此情形下,对锁存器的扫描对于下部页不必要,因为下部页将已通过编程而无任何不合格位。
本发明的另一组示范性实施例关于页复制操作,其中将数据组从一个位置再定位到另一位置。2004年5月13日申请的美国专利申请案第US10/846,289号;2004年12月21日申请的第11/022,462号;及2004年8月9日申请的第US10/915,039号;以及美国专利第6,266,273号中描述了数据再定位操作的各种方面,所述专利的全部以引用的方式并入本文中,所述专利的全部以引用的方式并入本文中。当将数据从一位置复制到另一者时,常将数据切出以对其进行检查(以(例如)寻找误差)、更新(例如更新标头)或两者(例如校正所检测到的误差)。所述转移还为了在垃圾收集操作中使日期固定。本发明的主要方面允许在写入操作的验证阶段期间内插对开放寄存器的数据读取,其中接着随着写入操作继续而将此经高速缓存的数据转移出存储器装置,从而允许用于切出数据的时间藏于写入操作之后。
下文存在高速缓存页复制操作的两个示范性实施例。在两种情形下,均描述使用快速通过写入实施方案的实施方案。图18指示随着处理进行的锁存器的示范性布置的部署。
高速缓存页复制的第一版本将写入到下部页且可包括以下步骤,其中将读取地址标记为M、M+1......且将写入地址标记为N、N+1......:
(1)将待复制的页(“页M”)读取到锁存器DL1434-1中。此可为上部页或下部页的数据。
(2)接着将页M转移到DL0434-0中。
(3)接着切出DL0 434-0中的数据且对其进行修改,在此之后将其转移回锁存器中。
(4)编程序列接着可开始。在将待写入下部页N中的数据转移到DL1 434-1及DL2434-2之后,锁存器DL0 434-0准备好高速缓存数据。将对此下部页进行编程。对于此实施例,编程状态机将停于此处。
(5)接着将待复制的下一页读取到DL0 434-0中。接着编程可恢复。在步骤(4)的结尾停止的状态机将从开始重新开始编程序列。
(6)编程继续直到下部页结束。
复制目的页地址将确定写入是到下部页还是上部页。如果编程地址为上部页地址,则编程序列将不停止直到编程结束且将在写入完成之后执行步骤(5)的读取。
在第二高速缓存页复制方法中,可暂停编程/验证处理以插入读取操作且接着重新开始写入操作(在其停止之处拾起)。接着可切出在此交错的感测操作期间读取的数据,同时经恢复的写入操作继续。同样,此第二处理允许一旦仅C状态正被验证且每一位线上的一个锁存器开放,即在上部页或全序列写入处理中使用页复制机制。第二高速缓存页复制操作以与第一情形中相同的前三个步骤开始,但接着不同。其可包括以下步骤:
(1)将待复制的页(“页M”)读取到锁存器DL1 434-1中。此可为下部或上部页。
(2)接着将来自页M的数据转移到DL0 434-0中。(如同之前一样,N等等将表示写入地址,M等等用于读取地址)。
(3)接着切出DL0 434-0中的数据且对其进行修改,且接着将其转移回锁存器。
(4)状态机编程将进入无限等待状态直到输入命令(读取命令)且接着到锁存器DL0434-0的对另一页(如下一页M+1)的读取将开始。
(5)一旦步骤(4)的读取完成,即将地址切换回字线及块地址以将步骤(1到3)中的数据编程到页N(此处为下部页)且编程得以恢复。
(6)在对页M+1的读取结束之后,可切出数据,对其进行修改且将其返回。如果两页为同一WL上的对应的上部页及下部页,则一旦处理完成,即可将写入转换为全序列操作。
(7)如在早先所述的正常高速缓存编程中一样,一旦在全序列写入中完成A及B电平,即将DL0 434-0中的数据转移到DL1 434-1,且可发出对于另一页(例如,页M+2)的读取命令。如果不存在单页到全序列的转换,则下部页将完成写入且接着上部页将开始。在完全完成B电平状态之后,相同的DL0 434-0到DL1 434-1数据转移将发生,且状态机将进入等待对于页M+2的读取命令的状态。
(8)一旦读取命令到达,即将地址切换到读取地址且读出下一页(页M+2)。
(9)一旦读取完成,即将地址切换回先前的上部页地址(编程地址N+1)直到写入完成。
如上文所提到的,示范性实施例除了包括用于保持可经编程到存储器单元中的每一者中的(此处,2位)数据的锁存器DL0 434-0及DL1 434-1之外还包括用于快速通过写入技术的下部验证的锁存器DL2 434-2。一旦通过下部验证,即锁存器DL2 434-2还可被释放且用以高速缓存数据,但此在示范性实施例中未进行。
图19A及图19B说明第二高速缓存页复制方法的相对时序,其中图19B说明具有全序列写入转换的算法且图19A说明不具有全序列写入转换的算法。(图19A及图19B均由两个部分构成:开始于对应于t0的断续竖直线A处且以对应于t5的断续竖直线B结束的第一上部部分;为上部部分的延续且以对应于t5的断续竖直线B开始的第二下部部分。在两种情形中,时间t5处的线B在上部部分中与在下部部分中相同,两部分中仅存在一接缝以允许将其显示于两条线上)。
图19A展示一过程,其以读取在此实例中取作下部页的第一页(页M)而开始,假定先前尚未高速缓存数据,且以单页模式操作,在开始写入上部页之前等待直到下部页结束写入。过程以时间t0处对页M的读取(感测页M(L))而开始,页M在此处为由此编码中的A及C电平处的读取而感测的下部页。在时间t1处读取完成且可将页M切出且对其进行检查或修改。开始于时间t2,通过于B电平的读取而感测下一页(此处为页M+1,对应于与下部页M相同的物理的上部页),其为结束于时间t3的过程。在此点上,第一页(来源于页M)(下部)准备好被编程返回到存储器中页N处,且从页M+1读取的数据保持于锁存器中且可被转移出以受到修改/检查。所述过程中的两者均可开始于同一时间,在此处为t3。通过使用上文所述的典型时间值,到时间t4为止已切出来自页M+1的数据且已对其进行修改;然而,对于未实施全序列转换的实施例来说,存储器将等待直到页N于时间t5处结束以开始将第二读取页的数据(来源于页M+1)写入到页N+1中。
由于页N+1为上部页,因此其写入最初以B电平处的验证而开始,在时间t6处添加C电平。一旦存储元件于时间t7处使目标状态B全部锁定(或者达到最大计数),即撤销B状态验证。如上文所述,根据本发明的若干主要方面,此允许数据锁存器被释放,中止正在进行的写入操作,插入读取操作(在与经中止的编程/验证操作不同的地址处),写入接着在其停止之处恢复,且可在经恢复的写入操作继续的同时将于经插入的写入操作期间所感测的数据切出。
在时间t7处针对(此处)下部页M+2而执行经插入的写入操作。此感测结束于时间t8,且页N+1的写入重新拾起,且来自页M+2的数据同时经切出及修改。在此实例中,页N+1在页M+2结束于时间t10之前在时间t9结束编程。在时间t10处,源自页M+2的数据的写入可开始;然而,在此实施例中,替代地,首先执行页M+3的读取,此允许将此页的数据切出及修改藏于开始于时间t11处的将源自页M+2的数据写入页N+2中之后。过程接着如图式的早先部分中而继续,但页码移位,其中时间t11对应于时间t3,时间t12对应于时间t4等等,直到复制过程停止。
图19B再次展示以读取下部页(取作下部页的页M)而开始且假定先前未高速缓存数据的过程。图19B不同于图19A在于其于时间t4实施向全序列写入的转换。此一般说来将过程加速了图19A的时间(t5-4)。在时间t4(=图19A中的t5)处,如先前所述而实施与全序列转换相关的各种改变。其它方面,过程类似于图19A的过程,包括在时间t7与t12之间的本发明的所述方面。
在页复制过程及此处描述的涉及写入数据的其它技术中,可遵循以引用的方式并入本文中的美国专利公开案号US-2004-0109362-A1中描述的方法而明智地选择在给定时间验证的状态。举例来说,在全序列写入中,写入过程可开始仅验证A电平。在A验证之后,对其进行检查以观察是否存在已通过的任何位。如果是,则向验证阶段添加B电平。将在所有存储单位以A电平验证作为其目标值验证(或除了基于可设定参数的最大计数)之后将A电平验证移除。类似地,在B电平处的验证之后可添加C电平的验证,其中将在所有存储单位以B电平验证作为其目标值验证(或除了基于可设定参数的最大计数)之后将B电平验证移除。
编程操作期间数据锁存器中的高速缓存操作
关于优选多状态编码而描述具有用于其它操作的后台数据高速缓存的编程操作。
对于4状态存储器的示范性优选“LM”编码
图20A到图20E说明对于以2位逻辑代码(“LM”代码)编码的4状态存储器的编程及读取。此代码提供容错性且减轻归因于Yupin效应的相邻单元耦合。图20A说明在每一存储器单元使用LM代码存储两个的数据位时4状态存储器阵列的阈值电压分布。LM编码不同于常规格雷码(Gray code)在于上部及下部位对于状态“A”及“C”反转。“LM”代码已揭示于美国专利第6,657,891号中且优点在于通过避免需要电荷的较大改变的编程操作而减少邻近浮动栅极之间的场效应耦合。如将于图20B及图20C中所见,每一编程操作导致电荷存储单位中的电荷的适度改变(如从阈值电压VT的适度改变所显而易见)。
对编码进行设计以使得2个位(下部及上部)可单独经编程及读取。当编程下部位时,单元的阈值电平保持于未经编程的区域中或移动到阈值窗口的“中下”区域。当编程上部位时,在所述两个区域中的任一者中的阈值电平进一步前进到稍高(不多于阈值窗口的四分之一)的电平。
图20B说明使用LM代码在现有2循环编程方案中进行的下部页编程。容错LM代码本质上避免任何上部页编程转变越过任何中间状态。因此,第一循环下部页编程使得逻辑状态(1,1)转变为某一中间状态(x,0),如由将“未经编程”的存储器状态“U”编程为以(x,0)表示的具有在大于DA但小于DC的宽广分布中的编程阈值电压的“中间”状态所表示。在编程期间,相对于界线DVA而验证中间状态。
图20C说明使用LM代码在现有2循环编程方案中进行的上部页编程。在将上部页位编程为“0”的第二循环中,如果下部页位处于“1”,则逻辑状态(1,1)转变为(0,1),如由将“未经编程”的存储器状态“U”编程为“A”所表示。在编程为“A”期间,验证是关于DVA。如果下部页位处于“0”,则通过从“中间”状态编程为“B”而获得逻辑状态(0,0)。编程验证是关于界线DVB。类似地,如果上部页将保持于“1”,而下部页已经编程为“0”,则其将需要从“中间”状态向(1,0)的转变,如由将“中间”状态编程为“C”所表示。编程验证是关于界线DVC。由于上部页编程仅涉及向下一邻近存储器状态的编程,因此从一循环到另一循环无大量电荷改变。设计从“U”到大致“中间”状态的下部页编程以节省时间。
在优选实施例中,实施在较早章节中所提到的“快速通过写入”编程技术。举例来说,在图20C中,最初编程验证(“pvfyAL”)关于经设定于低于DVA的边缘处的DVAL。一旦对单元进行于DVAL处的编程验证,则后续编程将以较精细的步长而进行且编程验证(pvfyA)将关于DVA。因此在编程操作期间必须锁存额外转变态ALOW以指示已对单元进行关于DAL的编程验证。类似地,如果实施QPW以编程为“B”状态,则将存在额外转变态BLOW待锁存。对于BLOW的编程验证将关于界线DVBL且对于“B”的编程验证将关于界线DVB。在处于ALOW或BLOW状态中时,对所讨论存储器单元的编程将通过对位线电压的适当偏置或通过修改编程脉冲而被切换到较缓慢(即,较精细)的模式。以此方式,最初可使用较大编程步长以用于在无超出目标状态的危险的情况下快速收敛。2005年12月29日申请且题为“用于非易失性存储器中的改进编程验证操作的方法(Methodsfor Improved Program-Verify Operations in Non-Volatile Memories)”的美国专利申请案序号11/323,596中已揭示“QPW”编程算法,该专利全部揭示内容以引用的方式并入本文中。
图20D说明辨别以LM代码编码的4状态存储器的下部位所需的读取操作。解码将视是否已对上部页进行编程而定。如果已对上部页进行编程,则读取下部页将需要关于划界阈值电压DB的读取B的一遍读取。另一方面,如果尚未对上部页进行编程,则将下部页编程为“中间”状态(图20B),且读取B将引起误差。确切地,读取下部页将需要关于划界阈值电压DA的读取A的一遍读取。为了分辨两种情形,在上部页被编程时在上部页中(通常在开销或系统区中)写入旗标(“LM”旗标)。在读取期间,将首先假定已对上部页进行编程且因此将执行读取B操作。如果LM旗标被读取,则假定正确且完成读取操作。另一方面,如果第一读取未产生旗标,则其将指示尚未对上部页进行编程且因此需通过读取A操作而读取下部页。
图20E说明辨别以LM代码编码的4状态存储器的上部位所需的读取操作。如从图式清楚可见,上部页读取将需要读取A及读取C的2遍读取,其分别关于划界阈值电压DA及DC。类似地,如果尚未对上部页进行编程,则还可通过“中间”状态干扰上部页的解码。再一次,LM旗标将指示是否已对上部页进行编程。如果尚未对上部页进行编程,则读取数据将被重设为“1”而指示未对上部页数据进行编程。
以LM代码及QPW进行的编程操作期间的锁存器利用
如图10所示,每一位线允许读取/写入模块沿存储器阵列的所选行而存取给定存储器单元。存在于一行的存储器单元的一页上并行操作的P个读取/写入模块的页。每一读取/写入模块包含耦合到共用处理器500的感测放大器212-1及数据锁存器430-1。感测放大器212-1经由位线感测存储器单元的传导电流。数据由共用处理器500处理且存储于数据锁存器430-1中。通过耦合到数据锁存器的I/O总线231(见图13及图14)而实现存储器阵列外部的数据交换。在优选架构中,由沿一行的一游程的p个邻接存储器单元形成页,所述存储器单元共享相同字线且可由存储器阵列的p个邻接位线存取。在替代架构中,通过沿一行的偶数或奇数存储器单元而形成页。以足以执行各种所需存储器操作的最少n个锁存器DL1到DLn而实施数据锁存器430-1。图13及图14说明4状态存储器的优选配置,其中存在三个锁存器DL0到DL2。
当前页编程期间的下一页编程数据加载
图21为下部页编程的示意性时序图,其说明将下一页编程数据加载未使用的数据锁存器中的后台操作。同时展示主机、I/O总线、数据锁存器及存储器核心的活动。图20B中说明以LM代码进行的下部页编程,其中将擦除或未经编程的状态(1,1)编程为“中下”或中间状态(X,0)。在此情形下,一位(即,下部位)将足以在未经编程的“1”状态与中间“0”状态之间进行区分。举例来说,DL2(见图13及图14)可用以存储下部位。
在第N页数据待写入时,主机最初向存储器发布写入命令以将所述页数据写入到指定地址。此后为将待经编程的所述页数据发送到存储器。经由I/O总线将编程数据切入且将其锁存到每一读取/写入模块的DL2中。因此,I/O总线在此切入周期(例如可具有300μs的持续时间)期间暂时忙碌。
下部页编程为二进制的且仅需在如通过DVA阈值电平划界的“U”状态与“中间状态”(见图20B)之间区分。施加到字线的每一编程脉冲由读回或编程验证跟随以确定单元是否已达到表示编程数据的目标状态。在此情形下,编程验证为关于DVA的(“pvfyA”)。因此仅需要来自每一读取/写入模块的一锁存器以存储每一单元的一位。
关于数据锁存器,含有编程数据的DL2有效地用于发生于存储器阵列或存储器核心中的当前下部位编程操作。因此,正由核心使用的锁存器的数目为一,而另两个锁存器(即DL0及DL1)仍为闲置的。
在核心处的编程继续的同时,两个闲置的锁存器及空闲的I/O总线可用于设立下一页编程数据。主机可发布另一命令以写入第N+1页数据且经由I/O总线切换数据以锁存于两个空闲的锁存器中的一者(如DL0)中。以此方式,一旦核心完成编程第N页,其即可开始对第N+1页进行编程而无需等待另一300μs而使数据切入。
在此点处,已使用两个锁存器(例如,DL2及DL0),一者用于正在进行的对第N页(下部页)的编程且一者用于高速缓存第N+1页的编程数据。因此,多出一锁存器为空闲的,但对其的利用将视已经高速缓存的第N+1页为上部页还是下部页而定。
如果第N+1页为通常属于相同页单元或字线的上部页,则在优选实施例中,必须保留最后空闲的锁存器以最佳化上部页的后续编程。这是由于“快速通过写入”(“QPW”)编程算法(在早先章节中提及)的实施要求额外锁存器以存储旗标来指示是否已将单元编程为接近于目标状态。
如果第N+1页为属于单元或字线的另一页的另一下部页,则可视情况使用最后空闲的锁存器以在主机提出的情况下对另一第N+2(下部或上部)页数据进行高速缓存。
图22为展示在使用QWP的4状态上部页或全序列编程的各种阶段期间需跟踪的状态的数目的表。图20C中说明以LM代码进行的上部页或全序列编程,其中分别将下部页状态“U”或(1,1)中的一些及“中间”状态(X,0)进一步编程为状态“A”或(0,1)、“B”或(0,0)及“C”或(1,0)。具体来说,状态“A”是由“U”编程而来且状态“B”及“C”是由“中间”编程而来。在实施QWP技术用于状态“A”及“B”但非“C”的情况下,编程最初需要在总计共五个状态的基本状态“A”、“B”及“C”加上“ALOW”及“BLOW”之间进行区分。在三个位处于三个锁存器的情况中,存在23或九个可能代码,其对于在所述六个状态之间进行区分来说是绰绰有余。
编程期间的若干阶段可随编程前进而出现
“A”完成——在已关于DA界线而编程验证目标为“A”状态的页中的所有单元之后。此将需要首先完成关于DAL界线的编程验证。存在四个状态“L”(编程锁定)、“BL”、“B”及“C”需留意。此将需要以两位代码表2CT(“A”)提供的预定编码而存储两个位的两个锁存器。
“B”完成——在已关于DB界线而编程验证目标为“B”状态的页中的所有单元之后。此将需要首先完成关于DBL界线的编程验证。存在四个状态“L”、“AL、“A”及“C”需留意。此将需要以两位代码表2CT(“B”)提供的预定编码而存储两个位的两个锁存器。
“C”完成——在已关于DC界线而编程验证目标为“C”状态的页中的所有单元之后。存在五个状态“L”、“AL”、“A”、“BL”及“B”需留意。此将需要以三位代码表3CT(“C”)提供的预定编码而存储三个位的三个锁存器。
“A”+“B”完成——在已分别关于DA界线及DB界线而编程验证目标为“A”状态及“B”状态的页中的所有单元之后。存在两个状态“L”及“C”需留意。此将需要以一位代码表1CT(“A”+“B”)提供的预定编码而存储一位的一锁存器。
“A”+“C”完成——在已分别关于DA界线及DC界线而编程验证目标为“A”状态及“C”状态的页中的所有单元之后。存在三个状态“L”、“BL”及“B”需留意。此将需要以两位代码表2CT(“A”+“C”)提供的预定编码而存储两个位的两个锁存器。
“B”+“C”完成——在已分别关于DB界线及DC界线而编程验证目标为“B”状态及“C”状态的页中的所有单元之后。存在三个状态“L”、“AL”及“A”需留意。此将需要以两位代码表2CT(“B”+“C”)提供的预定编码而存储两个位的两个锁存器。
“A”+“B”+“C”完成——在已分别关于DA界线、DB界线及DC界线而编程验证目标为“A”状态、“B”状态及“C”状态的页中的所有单元之后。已编程验证页的所有目标状态且完成对所述页的编程。将不需要锁存器。
图23为上部页或全序列编程的示意性时序图,其说明将下一页编程数据加载到未使用的数据锁存器中的后台操作。同时展示主机、I/O总线、数据锁存器及存储器核心的活动。
当上部页数据的第N页待写入时,必须参考先前编程的下部页数据。先前编程的下部页已锁存于每一读取/写入模块的DL2中。关于上部页数据的第N页,主机最初向存储器发布写入命令以将所述页数据写入到指定地址。此后为将待经编程的所述页数据发送到存储器。经由I/O总线将编程数据切入且将其锁存到每一读取/写入模块的DL0中。因此,I/O总线在此切入周期(例如可具有300μs的持续时间)期间暂时忙碌。
上部页或全序列编程为多状态的,其中状态“A”、“B”及“C”分别由DA、DB及DC划界(见图20C)。施加到字线的每一编程脉冲由读回或编程验证跟随以确定单元是否已达到表示编程数据的目标状态。
如图22中所示,在编程期间需要的锁存器的数目关于编程已进行到何阶段而变化。举例来说,最初使用所有三个锁存器。当已编程验证所有“A”状态(“A”完成)时,在后续编程期间存储器核心仅需要两个锁存器(例如,DL2及DL1)以存储四个可能状态。此使得一锁存器(例如,DL0)空闲以用于高速缓存操作。
在核心处的编程继续的同时,空闲的锁存器及空闲的I/O总线可用于设立下一页编程数据。主机可发布另一命令以写入第N+1页数据(下部页数据)且经由I/O总线切换数据以锁存于空闲的锁存器DL0中。以此方式,一旦核心完成编程第N页,其即可开始对第N+1页进行编程而无需等待另一300μs而使数据切入。将相同考虑应用于如图22所示存在至少一空闲的锁存器的其它编程阶段中。
另一可能性为当编程进入仅需一锁存器以进行操作且因此具有两个空闲的锁存器用于高速缓存操作的阶段时。举例来说,如图22所示,此发生于已编程验证“A”及“B”状态两者时。在此点处,两个锁存器可用。如果为了加载(N+1)下部页数据而用尽一锁存器,则剩余一者可用以加载(N+2)上部或下部页数据。
如果第N+1页为通常属于相同页单元或字线的上部页,则在优选实施例中,必须保留最后空闲的锁存器以最佳化上部页的后续编程。这是由于“快速通过写入”(“QPW”)编程算法(在早先章节中提及)的实施要求额外锁存器以存储一或两个旗标来指示是否已将单元编程为接近于目标状态。
如果第N+1页为属于单元或字线的另一页的另一下部页,则可视情况使用最后空闲的锁存器以在主机提出的情况下对另一第N+2(下部或上部)页数据进行高速缓存。
根据本发明的一方面,当写入操作的多个阶段关于待跟踪的状态的数目而变化时,阶段相关的编码启用对可用数据锁存器的有效利用,从而允许最大量的剩余锁存器用于后台高速缓存操作。
图24为说明根据本发明的一般实施例的与当前多阶段存储器操作同时发生的锁存器操作的流程图。
步骤600:开始操作具有一具有可寻址的存储器单元页的存储器阵列的存储器。
步骤610:向经寻址的页的每一存储器单元提供一组具有锁存预定数目的位的能力的数据锁存器。
存储器阵列中的当前多阶段存储器操作
步骤620:对存储器阵列执行当前存储器操作,所述存储器操作具有一个或一个以上阶段,每一阶段与一组预定操作状态相关联。
通过有效的阶段相关的编码而释放锁存器
步骤622:为每一阶段提供一阶段相关的编码,以使得对于阶段中的至少一些来说,其一组操作状态以大致最小量的位编码从而有效地利用所述组数据锁存器且释放一子组空闲数据锁存器。
同时发生的锁存器操作
步骤624:与当前存储器操作同时地以与对存储器阵列进行的一个或一个以上后续存储器操作相关的数据对所述子组空闲数据锁存器执行操作。
当前编程期间的读取中断
图25为下部页编程的示意性时序图,其说明使用可用锁存器而进行的读取中断操作。同时展示主机、I/O总线、数据锁存器及存储器核心的活动。
在第N页数据待写入时,主机最初向存储器发布写入命令以将所述页数据写入到指定地址。此后为将待经编程的所述页数据发送到存储器。经由I/O总线将编程数据切入且将其锁存到每一读取/写入模块的DL2中(见图13及图14)。因此,I/O总线在此切入周期(例如可具有300μs的持续时间)期间暂时忙碌。
下部页编程为二进制的且仅需在如通过DA阈值电平划界的“U”状态与“中间状态”(见图20A)之间区分。施加到字线的每一编程脉冲由读回或编程验证跟随以确定单元是否已达到表示编程数据的目标状态。在此情形下,编程验证为关于DA的(“pvfyA”)。因此,仅需要来自每一读取/写入模块的一锁存器以存储每一单元的一位。
关于数据锁存器,含有编程数据的DL2有效地用于发生于存储器阵列或存储器核心中的当前下部位编程操作。因此,正由核心使用的锁存器的数目为一,而另两个锁存器(即DL0及DL1)仍为闲置的。
在核心处的编程继续的同时,两个闲置的锁存器及空闲的I/O总线可用于读取操作。读取操作需要已由当前编程操作先占的存储器核心(即,存储器阵列)自身中的感测。然而,读取操作的实际感测阶段通常远远短于编程操作(通常为编程时间的十分之一),从而可中断后者而插入感测操作而不引起性能的较大损失。在感测之后,将读取数据锁存于空闲数据锁存器中的一者或一者以上中。用户接着可将读取数据切出到I/O总线。此处可节省时间,因为其与存储器阵列中的编程操作同时发生。
因此,在对下部页进行编程的同时,主机可发布读取命令以中断编程同时应暂停的要求将编程状态保存于数据锁存器中。感测另一页数据且将其锁存于两个空闲锁存器中的一者(如DL0)中。接着编程可以所存储的编程状态而恢复。在存储器阵列仍由恢复的编程所占据的同时可将数据锁存器中的读取数据切出到I/O总线。
如早先所描述,在四状态(2位)存储器的实例中,对于所述页的每一存储器单元来说优选锁存器数目为三。仅需要用以存储下部页编程数据的一锁存器用于下部页编程。此留下两个空闲锁存器。在通常的读取操作中仅需一个空闲锁存器来锁存经感测的数据位。在优选先行(“LA”)读取操作中,需要两个空闲锁存器。将在稍后章节中对此进行更详细描述。
图26为上部页编程的示意性时序图,其说明使用可用锁存器而进行的读取中断操作。同时展示主机、I/O总线、数据锁存器及存储器核心的活动。已结合图23描述了多阶段编程,其导致在不同阶段期间不同数目的空闲的数据锁存器可用。举例来说,在已对状态“A”进行编程验证之后,一个数据锁存器空闲,且在已对状态“A”及状态“B”进行编程验证之后,两个数据锁存器空闲。
因此,在已对状态“A”进行编程验证之后,单一空闲锁存器可用以锁存从常规读取感测的数据。另一方面,如果已对状态“A”及状态“B”进行编程验证,则两个可用锁存器将能够支持上文所解释的LA读取。
对多个经高速缓存命令的管理
需管理同时发生的存储器操作以支持高速缓存操作,其中在存储器的核心中正执行一个存储器操作,同时于数据锁存器处高速缓存或经由I/O总线转移用于额外未决存储器操作的数据。常规存储器装置通常不具有足够数目的空闲数据锁存器来执行高速缓存操作。即使其具有足够数目的空闲数据锁存器,仍仅在已完成当前存储器操作之后执行未决存储器操作(其数据正被高速缓存)。
图27说明与典型存储器操作相关联的信息的封装。当请求存储器执行存储器操作时,其接收表示指定存储器操作开始的前命令。此后为存储器阵列中操作将要发生的地址。在擦除操作的情形下,地址为待擦除的存储器单元的块。在编程或读取操作的情形下,地址为待操作的存储器单元的页。如果所指定的操作为编程操作,则将供应编程数据以加载到数据锁存器中。当编程数据处于适当位置时,将发布执行命令以关于可用编程数据而执行编程操作。如果所指定的操作为读取操作,则将不向存储器发送数据。将发布执行命令以执行读取操作。将感测经寻址的存储器单元的页且将把经感测的数据锁存于数据锁存器中以最后经由I/O总线切出。
图28说明支持简单高速缓存操作的常规存储器系统。存储器系统包括存储器控制器8,其经由存储器控制器8而控制存储器芯片301。存储器芯片具有由芯片上主机接口/控制电路310控制的存储器阵列100。控制电路包括管理存储器阵列的基本存储器操作的状态机。主机6经由执行例如映射及维护的较高级存储器功能的存储器控制器8而啮合存储器系统。
状态信号就绪/忙碌*允许主机或存储器控制器在存储器芯片不忙碌时请求存储器操作。将所请求的存储器操作保持于缓冲器322中且释放到状态机312以在状态机不执行另一存储器操作时执行。举例来说,在存储器阵列中由状态机控制而执行存储器操作MEM OP0。如果存在可用的空闲数据锁存器,则将向控制器发信号以允许将未决存储器操作MEM OP1发送到存储器芯片且在缓冲器322中经缓冲。同时,将与MEM OP1相关联的数据切入存储器芯片且锁存到数据锁存器中。MEM OP0一完成执行,状态机即释放缓冲器中的MEM OP1以开始其执行。因此,在常规存储器系统中,在完成当前存储器操作之后执行未决存储器操作。
在图28所示的实例中,每一命令在其可开始执行之前必须等待直到最后一个完成,但其数据在最后一个的执行期间经高速缓存。因此,在MEM OP0执行于存储器核心中的同时,与MEM OP1相关联的数据1正被锁存。MEM OP1将在完成MEM OP0之后作用于经高速缓存的数据1。类似地,在MEM OP1执行于存储器核心中的同时,与MEMOP2相关联的数据2正被锁存。此方案阻碍加载同一字线的下部及上部逻辑页及有效地在同一编程操作中编程多个位的可能性。
存在影响编程操作(尤其对于连续编程)的性能的两个因素。第一个关于加载编程数据的时间。随着快闪存储器容量变得较大,其页大小也随每一新生代而增加。待被编程的较大页数据因此占用较长时间来加载到数据锁存器中。为了增大编程性能,需要将数据加载时间藏于别处。此通过在存储器核心于前台中忙于一编程操作但使其数据锁存器及I/O总线闲置的同时在后台中高速缓存尽可能多的编程数据而完成。
本发明的一特征为通过在编程期间于后台中将较多页加载到数据锁存器以使得数据锁存器一可用即被用于高速缓存未决编程数据而处理第一因素。此包括允许在同一前台操作期间于后台中高速缓存与一个以上命令相关联的数据。
针对编程性能的第二因素关于编程一页(尤其对于编程具有同一字线的多位单元的页)的时间。如之前所述,可将多位单元的页作为个别单位页的集合而处理。举例来说,可将2位页作为两个稍微独立的单位页(即下部位页及上部位页)而对其进行编程及读取。具体来说,下部位页的编程数据一可用即可对下部位页进行编程。在第二遍中将上部位页编程到存储器单元的同一页且所述编程视已编程于单元中的下部页的值而定。以此方式,可在两个不同时间于两个单独的遍中对两个位进行编程。然而,较为有效且较为准确的方式(具有较少编程干扰)为在称作“所有位”或“全序列”的编程中在单遍中编程两个位。此仅在所有数据位在编程期间可用的情况下为可能的。因此,在实际上,如果所有位可用,则优选地执行所有位编程。另一方面,如果仅下部页数据可用,则将首先对下部页进行编程。稍后如果属于同一字线的上部页数据变得可用,则将在第二遍中对所述页的单元进行编程。或者,如果上部页数据在下部页编程完成之前变得可用,则将需要停止下部页编程且替代地转为执行所有位编程。
图28所示的方案将不支持在后台中将一个以上命令排队且因此不支持高速缓存一个以上页的数据。此外,其无法处理以下情形:下部页编程过早终止且在所有位变得可用时替代地转为执行不同的“所有位”编程。
本发明的另一特征为通过允许高速缓存对于所有位编程为必要的所有位以使得所有位编程可发生而处理第二因素。此外,命令队列管理器管理多个未决命令且允许特定命令(视其相关联的数据的状态而定)在完成之前终止以有利于下一未决命令。
本发明的两个特征合作以通过高速缓存较多编程数据及允许使用较为有效的编程算法而增强编程性能。
根据本发明的一方面,可在将其它多个未决存储器操作排队的同时执行当前存储器操作。此外,当满足特定条件时,所述命令中用于个别操作的一些命令可合并到组合操作中。在一情形中,当满足条件以将队列中的多个未决存储器操作中的一者或一者以上与在执行中的当前存储器操作合并时,当前存储器操作终止且由对经合并操作的操作而替代。在另一情形中,当满足条件以合并队列中的多个未决存储器操作中的两者或两者以上时,对经合并操作的操作将在处于执行中的当前操作完成之后开始。
一个实例为在编程共享一共用字线的若干存储器单元的多位页中。可将多个位中的每一者视作形成二进制逻辑页的位。以此方式,2位存储器单元的页将具有下部逻辑页及上部逻辑页。3位存储器单元的页将具有另外一中部逻辑页。可单独对每一二进制逻辑页进行编程。因此,对于2位存储器单元来说,可在第一遍中对下部逻辑页进行编程且在第二遍中对上部逻辑页进行编程。或者且更为有效地,如果2个位的编程数据可用,则优选地在单遍中对多位页进行编程。
视有多少编程数据位可用而定,对于多个二进制编程或经合并且单遍多位编程来说若干情况为可能的。理想地,如果所有位在编程之前可用,则在单遍中对存储器单元的多位页进行编程。如早先所描述,如果仅下部逻辑页编程数据可用,则对下部逻辑页的单位编程可开始。随后,当上部逻辑页编程数据可用时,可在第二遍中对存储器单元的同一页进行编程。另一可能性为上部页数据在下部页编程完成之前变得可用。在所述情形下,为了利用较为有效的单遍多位或“全序列”编程,终止下部页编程且用多位编程替代。其好像合并或组合对于下部逻辑页与上部页的编程。
对于具有多位单位的存储器,由主机发送的逻辑编程数据的页可为下部、上部或一些其它中间逻辑页的混合物。因此,一般来说,需要高速缓存数据锁存器将允许的尽可能多的编程数据的页。此将增大逻辑页属于存储器单元的同一页以执行多位编程的合并可能性。
图29为说明多个存储器操作的排队及可能合并的流程图。向具有核心阵列及用于锁存与阵列的经寻址的页相关联的数据的数据锁存器的存储器应用用于管理多个存储器操作的算法。
步骤710:提供一先进先出队列以对待执行于核心阵列中的传入的存储器操作进行排序。
步骤720:无论何时数据锁存器可用于高速缓存传入的存储器操作的数据时接受传入的存储器操作进入队列。
步骤730:确定正执行于核心阵列中的存储器操作是否可潜在地与队列中的存储器操作中的任一者合并。如果其潜在地可合并,则前进到步骤740,否则前进到步骤750。
(就“潜在可合并”来说,其意味着可在单遍中对与存储器单元的同一页相关联的至少两个逻辑页一同进行编程。举例来说,在具有2位存储器单元的存储器中,分别用以编程下部逻辑页与编程上部逻辑页的两个操作潜在地可合并。类似地,在具有3位存储器单元的存储器中,用以编程下部逻辑页与中间页的操作潜在地可合并。同样,用于下部、中间及上部逻辑页的编程操作潜在地可合并。返回到2位单元的实例,如果下部逻辑页正在核心阵列中处于执行中,则其在下一编程是编程属于存储器单元的同一页的上部逻辑页的情况下与来自队列未决的下一编程操作潜在地可合并。另一方面,如果上部页正在核心阵列中处于执行中,则其并非潜在可合并的,因为待编程的下一未决页将必须来自于存储器单元的不同页。类似考虑应用于存储器操作为读取操作的情况中)。
步骤740:无论何时来自队列的下一个或一个以上存储器操作与核心阵列中的存储器操作可合并时,
终止核心中对存储器操作的执行且开始替代地执行经合并的存储器操作;
否则
在执行来自队列的下一存储器操作之前等待直到核心中存储器操作完成。前进到步骤720。
(就“可合并”来说,其意味着满足可合并性的条件。在此情形下,下部及上部逻辑页的编程数据在其经锁存于数据锁存器中之后可用。类似地,“合并的存储器操作”将对应于一同编程或感测下部及上部逻辑页)。
步骤750:等待直到核心中的存储器操作完成;及
无论何时来自队列的下两个或两个以上存储器操作可合并时,在核心阵列中执行经合并的存储器操作;
否则
在核心阵列中执行来自队列的下一存储器操作。前进到步骤720。
通过提供由存储器操作队列管理器控制的存储器操作队列而完成对多个命令的管理。优选地将存储器操作队列管理器实施为状态机中控制存储器阵列中的存储器操作的执行的模块。
图30说明并入有存储器操作队列及存储器操作队列管理器的优选芯片上控制电路的示意性框图。芯片上控制电路310′包括用来控制存储器阵列100(也见图28)的基本操作的有限状态机312′。通过先进先出堆栈存储器而实施存储器操作队列330以保持任何传入的存储器操作请求。通常,从主机或存储器控制器(见图28)发布存储器操作请求。
将存储器操作队列管理器332实施为状态机312′中的一模块以管理多个未决及执行的存储器操作。队列管理器332基本上调度队列330中待释放到状态机312′中以执行的未决存储器操作。
当将例如MEM OP0的存储器操作从队列释放到状态机的程序寄存器324中时,将在存储器阵列上由状态机控制而执行MEM OP0。在任何时候,状态机均知晓可用的空闲数据锁存器的数目且此状态经由信号就绪/忙碌*而传达到主机/存储器控制器。如果一个或一个以上空闲的数据锁存器可用,则主机将能够请求例如编程或读取的额外存储器操作。因此容许由主机发送的MEM OP1、MEM OP2等等进入队列330。将通过可用的空闲数据存储器的数目而确定队列中存储器操作的最大数目。
当存储器操作在队列330中处于未决状态时,队列管理器332将控制未决存储器操作从队列330向状态机中的程序寄存器324的释放。此外,其确定是否存储器操作中的任一者可合并到如结合图29而描述的组合操作中。在队列中的两个或两个以上的操作可合并的情形下,队列管理器332将从队列330释放所述可合并操作且将在状态机中的当前操作完成执行之后由状态机312′执行组合的操作。在队列中的一个或一个以上操作可与正由状态机执行的操作合并的情形下,队列管理器将使得状态机终止当前执行的操作且替代地执行组合的操作。因此,存储器操作管理器332与状态机312′的剩余部分协作以调度且(可能地)合并多个存储器操作。
已将本发明描述为使用具有2位存储器的实例。只要在当前存储器操作期间释放数据锁存器,即可使用其以高速缓存更多数据用于任何未决存储器操作。此将允许将更多数据位加载到可用数据锁存器中以及增加合并存储器操作的可能性。所属领域的技术人员将易于能够对具有可各自存储两个以上数据位的单元的存储器(例如,3位或4位存储器)应用相同原理。举例来说,在3位存储器中,可将存储器的页视作具有三个个别位页,即下部、中部及上部位页。可在存储器单元的同一页上于不同时间个别地对所述页进行编程。或者,所有三个位在可用时可以所有位编程模式而一同经编程。此要求将高速缓存编程命令排队用于许多页。在2位存储器中,可在全序列转换为可能时一同执行两个编程命令。类似地,在3位存储器中,三个连续编程命令可在转换为所有位或全序列模式时一同经执行。又,命令队列管理器将跟踪哪一命令已完成或终止且哪一者为下一待执行的。以此方式,在编程期间到达特定存储器状态里程碑时,一些数据锁存器得以释放且可有效地用于高速缓存未决编程数据。
擦除期间的高速缓存操作——后台读取及写入操作
擦除操作的等待时间为快闪存储系统的整体性能开销的主要组成部分中的一者。举例来说,擦除操作的周期可能比编程操作的周期长四或五倍且比读取操作的周期长十倍。为了改进快闪存储器的性能,例如高速缓存操作的后台操作变得非常重要以利用等待擦除操作结束的时间。本发明将在存储器由存储器核心中的擦除操作占用而忙碌时利用数据锁存器及I/O总线。举例来说,可与擦除操作同时执行用于下一编程操作的数据或从读取操作输出的数据。以此方式,当下一编程或读取操作确实发生时,所述操作的数据输入或输出部分已完成,从而减少编程或读取等待时间且增加性能。
可以许多方式而实施擦除操作。美国专利第5,172,338号中揭示的一方法通过交替擦除脉冲继之以验证而擦除。一旦对单元进行了擦除验证,即禁止其不受进一步擦除脉冲的影响。另一擦除操作(优选地用于NAND存储器)包括两个阶段。在第一阶段中,存在通过将电荷从存储器单元的电荷元件移除到预定“擦除”或“接地”状态以下的某一阈值电平而进行的擦除。在第二阶段中,通过一系列关于预定“擦除”阈值的软编程/验证而将经擦除的单元的阈值值收紧为处于适当界定的阈值分布内。
根据本发明的一般方面,在擦除操作发生的同时,任何空闲的数据锁存器均用以高速缓存与另一未决存储器操作相关的数据。
图31为说明擦除操作期间在后台中的高速缓存操作的示意性流程图。
步骤760:向经寻址的页的每一存储器单元提供一组具有锁存预定数目的位的能力的数据锁存器。
步骤770:对指定组的页执行擦除操作。
步骤780:与擦除操作同时地以与对于存储器阵列进行的一个或一个以上后续存储器操作相关的数据对所述组数据锁存器执行操作。
根据本发明的一方面,在擦除操作发生的同时,经由I/O总线而将用于未决编程操作的编程数据加载到数据锁存器中。具体来说,在擦除操作的第一阶段期间移除电荷时,所有数据锁存器均可用于高速缓存编程数据。在擦除操作的第二阶段期间软编程发生时,除一数据锁存器之外的所有数据锁存器可用于高速缓存编程数据,因为需要数据锁存器中的一者来存储成功验证软编程之后所述位置处的编程锁定状况。如果存储器架构支持每单元2个位,则存在至少2个数据锁存器,每一位一个。在优选实施例中,使用额外数据锁存器以存储在操作期间出现的特定状况。因此,视存储器架构而定,对于2位单元存在向每一单元提供的至少两个且优选地三个数据锁存器。所有所述数据锁存器可在擦除的第一阶段期间用于高速缓存用途,且除一者之外的所有所述数据锁存器可在擦除操作的第二阶段期间用于高速缓存用途。因此可视擦除阶段及存储器架构而将一个或一个以上页的编程数据加载到可用数据锁存器中。
图32为对存储器阵列进行的擦除操作的示意性时序图,其说明擦除操作的第一擦除阶段期间的编程数据加载操作。同时展示主机、I/O总线、数据锁存器及存储器核心的活动。如图中所示,存储器核心处的擦除操作包括第一擦除阶段,随后为第二软编程/验证阶段。
在擦除操作的第一阶段期间,存储器阵列或核心被先占,但数据锁存器及I/O总线为空闲以用于后台操作。在此时间期间,可经由I/O总线而将编程数据加载到数据锁存器中。举例来说,在对于每一单元存在三个数据锁存器的优选实施例中,所有所述锁存器在第一擦除阶段期间均可用于高速缓存操作。
举例来说,在第N页数据待写入时,主机最初向存储器发布写入命令以将所述页数据写入到指定地址。此后为将待经编程的所述页数据发送到存储器。经由I/O总线将编程数据切入且将其锁存到每一读取/写入模块的DL2中(见图13及图14)。因此,I/O总线在此切入周期(例如可具有300μs的持续时间)期间暂时忙碌。在三个数据锁存器可用的情况下,原则上可高速缓存高达三页的编程数据。举例来说,在擦除操作进行的同时可加载第N页的下部页部分,或者可顺序地加载第N页的下部及上部页部分。
图33为对存储器阵列进行的擦除操作的示意性时序图,其说明擦除操作的软编程/验证阶段期间的编程数据加载操作。同时展示主机、I/O总线、数据锁存器及存储器核心的活动。
在擦除操作的第二软编程/验证阶段期间,存储器阵列或核心也被先占。然而,如上文所述,除一数据锁存器以外的所有数据锁存器及I/O总线为空闲的。可将编程数据加载到未由擦除操作使用的数据锁存器中。举例来说,在对于每一单元存在三个数据锁存器的优选实施例中,软编程/验证操作仅使用锁存器中的一者。因此仍存在两个空闲的锁存器可用于高速缓存操作。
举例来说,在第N页数据待写入时,主机最初向存储器发布写入命令以将所述页数据写入到指定地址。此后为将待经编程的所述页数据发送到存储器。经由I/O总线将编程数据切入且将其锁存到每一读取/写入模块的DL2中(见图13及图14)。因此,I/O总线在此切入周期(例如可具有300μs的持续时间)期间暂时忙碌。在两个数据锁存器可用的情况下,原则上可高速缓存高达两页的编程数据。举例来说,在擦除操作进行的同时可加载第N页的下部页部分,或者可顺序地加载第N页的下部及上部页部分。
一般来说,可加载到数据锁存器中的页的最大数目依据存储器架构以及并行编程多少平面/组及多少芯片/电路小片及数据传送率的速度而变。
根据本发明的另一方面,在擦除操作发生时,可插入读取操作且可在擦除操作期间输出数据锁存器中的所得读取数据。优选地,在不中断软编程脉冲自身的情形下将读取操作插入于软编程/验证操作之间。一旦将数据感测且锁存到未使用的数据锁存器中,即可在擦除于阵列内部进行时经由I/O总线而将数据输出到主机系统。此特征对于隐藏系统开销以(例如)执行读取擦洗操作及其它系统维护来说为理想的。
在现有技术的系统中,当擦除操作被中断时,其将必须从循环开始处重新开始。此可为非常耗时的(尤其在NAND存储器中)。
可将读取操作插入于软编程与擦除验证脉冲之间。可将与软编程脉冲的数目一样多的读取插入擦除操作中。感测时间为额外时间,但与整体软编程/验证操作相比具有较短持续时间。益处在与正在进行中的编程/验证操作并行发生时切出读取数据中获得。读取操作还可用以在管理内部控制及数据管理时执行后台操作。
读取在快闪存储系统中于擦除期间的一有用应用在于实施读取擦洗操作以将所存储的数据保持于良好状况。周期性地读取存储器的存储数据的部分以检查单元中的编程电荷是否随时间而改变或在其环境中改变。如果是,则通过以适当容限再编程单元而对其进行校正。美国专利第7,012,835号中已揭示读取擦洗的各种方案,所述专利的全部揭示内容以引用的方式并入本文中。由于读取擦洗为主机的操作的外部的系统操作,因此将读取擦洗藏于一些其它操作之后为最佳的,其中存储器无论如何均将为忙碌的。在此情形下,在擦除操作期间,可插入读取擦洗操作以使得可隐藏读取等待时间。
图34为对存储器阵列进行的擦除操作的示意性时序图,其说明插入的读取操作及使用可用锁存器而进行的所得数据输出操作。同时展示主机、I/O总线、数据锁存器及存储器核心的活动。如图中所示,在擦除操作的第二阶段中,操作为软编程/验证。优选地在不中断任何软编程脉冲的完成的情形下插入一个或一个以上读取操作。
在芯片处于擦除操作的第二阶段中时,用于软编程/验证的算法将执行。例如忙碌/就绪*(未图示)的状态信号将以信号表明存储器核心忙于内部擦除操作。同时,如高速缓存忙碌/高速缓存就绪*(未图示)的另一状态信号将从忙碌变为就绪以接受读取命令输入。读取命令一进入,高速缓存忙碌/高速缓存就绪*即转为忙碌以防止另一命令进入。读取命令接着将等待直到当前软编程脉冲在内部完成才可对同一芯片中的另一经寻址的块执行。在读取完成后,将地址变回先前执行的擦除块。软编程/验证操作可对于擦除块而恢复。
同时,可将数据锁存器中的读取数据切出。切出时间通常远长于读取时间。举例来说,读取时间为大约25μs,而切出时间为大约200μs。因此将读取插入于擦除操作中的益处为从原本在等待擦除结束时浪费的时间抢救约200μs。
可在擦除期间在擦除时间允许的情况下将此高速缓存读取插入尽可能多次。然而,过多读取可延长总擦除时间且读取可能招致的擦除操作的时间损失与从读取抢救的切换时间之间的平衡将受到冲击。如果擦除期间在一个或一个以上插入的读取之后仍存在剩余空闲时间,则可如早先章节中所述而使用可用数据锁存器以高速缓存任何编程数据。如果加载编程数据,则编程操作仅可在整个擦除操作完成之后开始。必须保留足够的空闲锁存器用于对编程操作的适当执行,因此在多数情形下在加载编程数据之后其它高速缓存操作将为不可能的。
图35为说明图31的步骤780中在擦除操作期间在后台中用于读取擦洗应用的特定高速缓存操作的示意性流程图。
将图31所示的步骤780进一步清楚表示为如下:
步骤782:暂停擦除操作以感测一指定页。
步骤784:在将用于指定页的数据锁存于数据锁存器中之后恢复擦除操作。
步骤786:在擦除操作期间输出用于指定页的数据。
步骤788:调度指定页以在输出数据含有误差的情况下进行再编程。
到此为止对高速缓存读取的描述大部分关于优选擦除操作的第二阶段而进行。优选擦除操作如下:第一阶段为擦除所有单元到预定阈值以下的某一阈值电平且第二阶段为将单元软编程到预定阈值。如上文所述,此擦除方案优选地用于具有NAND结构的快闪存储器,因为其需要相当准确的基态且通过对N阱偏置而擦除存储器,此耗费时间。因此,优选地在软编程之前一同执行所有擦除。在使用擦除脉冲发出/验证/禁止的方案的另一存储器架构中,还预期高速缓存操作。举例来说,可在循环的验证部分期间插入读取操作。
图36说明擦除期间的抢先后台读取。当读取恰于擦除操作之前发生以使得无需中断擦除操作时,此为更优选的高速缓存读取。此在于擦除操作开始之前已知读取操作的情况下为可能的。举例来说,主机可能具有一未决的读取请求或者如果存储器系统具有经调度的某一读取操作。或者,一智能算法可能预见下一读取可能在何处且调度所述读取。即使稍后弄清楚其为未命中,也将不会招致严重损失。如果其为一命中,则其可利用擦除时间以切出读取数据。
可组合擦除操作期间高速缓存读取数据及高速缓存编程数据的两个方面以提供进一步的灵活性来最小化整体系统或存储器开销。即使在多平面及多芯片数据输入操作的情况下,数据输入时间也可能未充分利用擦除操作所招致的忙碌时间。在所述情形下,还可添加读取操作及或编程操作以充分利用擦除时间。
读取期间的高速缓存操作——后台读取及写入操作
在顺序地读出许多页时通常实施高速缓存读取以节省时间。可在切出先前感测的页的时间期间隐藏对一页的感测以使得用于感测的时间不招致用户的额外等待时间。一常见方案将在切出当前页时感测下一页。
图37示意性地说明典型读取高速缓存方案。在先前循环中感测第(n-1)页且将其锁存于数据锁存器中。在时间t0处,如由T(n-1)所指示而经由I/O总线从数据锁存器切出第(n-1)页。在切换发生的同时,可如S(n)所指示而感测且锁存第n页。在t2处,完成对第(n-1)页的切换且因此其可继之以如由T(n)所指示的从数据锁存器切换第n页的数据。类似地,在切出第n页数据时,可如S(n+1)所指示而感测且锁存第(n+1)页的数据。可紧于第n页完成切换之后切换此第(n+1)页。理想地,数据锁存器及I/O总线在整个读取高速缓存期间完全处于使用中以使得任何闲置时间得以最小化。
根据本发明的一方面,提供读取高速缓存方案用于具有最小化存储器单元之间的扰动(Yupin效应)的需要的多状态存储器单元的情形。在优选实施方案中,使用有效读取高速缓存方案用于以“LM”编码而编码且以先行(“LA”)校正而读取的存储器。“LM”编码及“LA”校正均需要除仅仅切换读取数据以外的额外锁存器及总线活动。结合图37而描述的常规方案的直接应用将不产生最佳读取高速缓存。
随着半导体存储器中的日益提高的集成度,存储器单元之间归因于所存储的电荷的电场的扰动(Yupin效应)在单元间间距正在收缩时变得越来越明显。优选地使用LM编码来对存储器的多状态存储器单元进行编码,以最佳次序编程存储器中的页,且使用LA校正而读取经编程的页。改进的读取操作将实施最佳高速缓存操作。
对于LM代码的高速缓存读取算法
当待读取的页为多状态时,读取高速缓存的实施方案需满足所使用的多状态编码的要求。如之前结合图20A到图20E而描述,用于多状态存储器的LM编码本质上使存储器单元中经编程的电荷在不同遍的编程之间的改变最小化。所示的实例是针对2位存储器,其用于编码每一单元中如由三个不同划界阈值值(例如,DA、DB、DC)而划界的四个可能存储器状态(例如,“U”、“A”、“B”、“C”)。举例来说,在2位存储器单元中,对下部逻辑页的编程至多将阈值电平推进为略低于单元的阈值窗口的中部。后续上部逻辑页编程将现有阈值电平进一步推进约距离的另一四分之一。因此,从第一遍下部到第二遍最终上部编程,净改变至多为阈值窗口的大约四分之一,且此将为单元从其沿一字线的相邻者处可能经历的扰动的最大量。
LM编码的一特征在于可单独地考虑两个位(下部及上部位)中的每一者。然而,对下部位页的解码将视是否已对上部页进行编程而定。如果已对上部页进行编程,则读取下部页将需要关于划界阈值电压DB的读取B的一读取通过。如果尚未对上部页进行编程,则读取下部页将需要关于划界阈值电压DA的读取A的一读取通过。为了区分两种情形,在对上部页进行编程时在上部页中(通常在开销或系统区中)写入旗标(“LM”旗标)。在对下部位页的读取期间,将首先假定已对上部页进行编程且因此将执行读取B操作。如果LM旗标经读取,则假定正确且完成读取操作。另一方面,如果第一读取未产生旗标,则其将指示尚未对上部页进行编程且因此必须通过读取A操作而再读取下部页。
对上部位页读取的解码将需要操作读取A及读取C,其分别关于划界阈值电压DA及DC。类似地,如果尚未对上部页进行编程,则上部页的解码也可被干扰。再一次,LM旗标将指示是否已对上部页进行编程。如果尚未对上部页进行编程,则读取数据将被重设为“1”而指示未对上部页数据进行编程。
在使用LM编码而实施对存储器的高速缓存读取时,存在需要检查与数据存储于同一区上的LM旗标的额外考虑。为了使状态机检查LM旗标,其将必须经由I/O总线而从数据锁存器输出。此将需要对I/O总线进行分配以在具有高速缓存的读取操作期间除了切换所感测的数据以外用于输出LM旗标。
图38A为关于以LM代码编码的逻辑页的高速缓存读取的示意性时序图。在感测当前页的同时切换上一页数据的一般方案类似于图37所示的常规读取的方案。然而,以LM代码进行的感测由于潜在地必须进行两遍感测(LM旗标的检查在其间)而为复杂的。
在时间t0处,如由T(n-1)所指示而将上一循环中所感测的第(n-1)逻辑页从数据锁存器切出到I/O总线。同时,S1(n)感测下一逻辑页(n)。在LM编码的情况下,需区分两种情形:对下部位逻辑页的读取;及对上部位逻辑页的读取。
对于读取下部位逻辑页的情形,优选感测将以对于已对上部逻辑页进行编程的假定而开始,因此第一感测S1(n)将处于关于划界阈值电压DB的读取B处。在t1处完成S1(n)且将产生LM旗标。然而,其仅可在I/O总线完成切换第(n-1)页之后的t2处输出。在将LM旗标传达到状态机之后,对其进行检查以确定上部页是否存在。如果LM旗标经设定,则假定正确且下部位页经正确读取。已锁存的页(n)的数据准备好在下一循环中被切出。
对于读取上部位逻辑页的情形,S1(n)将逐步通过分别关于划界阈值电压DA及DC的读取A及读取C。上部位页的所感测的数据将存储于DL2中且DL0数据锁存器用于切出数据(见图13及图14)。在t2处,将DL2的感测的数据转移到DL0。又,在于第(n-1)页的切换的结尾处输出LM旗标之后对其进行检查。如果上部页经编程,则一切情况良好且锁存器中的所感测的数据(页(n))准备好在下一循环中被切出。
在读取上部位逻辑页时,如果发现LM旗标未经设定,则其将指示上部页未经编程。从S1(n)感测的数据将被重设为“1”以与LM编码适当地一致。感测的数据接着准备好输出。接着将预取出第一字节且随后为下一循环开始时的整页切出。
图38B为关于以LM代码进行的高速缓存读取在尚未对上部位逻辑页进行编程时读取下部位逻辑页的特殊情形中的示意性时序图。又,在t0处开始第一感测S1(n)且在t1处读取LM旗标。输出LM旗标用于t2处的检查。如果发现LM旗标未经设定,则S1(n)在读取B处不正确地读取了下部位页。第二感测S2(n)将开始于t3以在读取A处执行。然而,此额外感测(结束于t4)无法隐藏于第(n-1)页的切换(例如,T(n-1))的时间后,因为在第二感测之前检查来自S1(n)的旗标将需要存取I/O总线且将必须等待直到T(n-1)切换完成。
以所有位感测而进行的高速缓存读取算法
在替代方案中,当在一字线上待读取的页为具有同一物理页上的多个逻辑页的多个位时,可在一感测操作中一同感测所有多个位以节省功率。
图39说明对于2位存储器以所有位感测而进行的高速缓存读取的示意性时序图。在2位的情形下,在同一操作中感测表示四个存储器状态的两个位。此将需要在读取A、读取B及读取C处感测以区分四个状态。在此情形下,感测将在每隔一个的循环中发生。举例来说,感测仅在奇数循环上发生且在偶数循环上将被跳过。将在每一循环顺序地切出在一感测中获得的两个逻辑页。
在存在八个状态(例如“U”、“A”、“B”、“C”、“D”、“E”、“F”及“G”)的3位情形下,所有位感测将涉及在读取A、读取B、读取C、读取D、读取E、读取F及读取G处的感测以区分八个状态。
一般来说,少于所有位的任何多位感测将用来减少读取页的所有位所需感测的次数且将有助于节省功率。结合图30而描述的存储器操作队列及队列管理器可用以通过合并两个或两个以上的二进制页感测而管理所有位感测操作。所有位感测方案可应用于具有LM代码的存储器且还可应用于具有LA校正的存储器(其将在下一章节中得以描述)。
关于LM代码连同LA校正的高速缓存读取算法
关于邻近字线上的存储器单元之间的扰动,其可通过使用优选编程方案而在编程期间得以减轻。此将有效地将扰动减半。还可通过使用优选LA读取方案而在读取期间校正剩余的一半。
优选编程方案将以最佳序列而编程与字线相关联的页。举例来说,在每一物理页保持一页二进制数据的二进制存储器的情形下,优选地沿始终如一的方向(例如从底部到顶部)而顺序地对页进行编程。以此方式,当编程特定页时,其下侧的页已经编程。无论其对于当前页有何扰动效应,在鉴于所述扰动而对当前页进行编程验证时均对其加以计及。本质上,编程页的序列应允许正进行编程的当前页在其经编程之后经历围绕其环境的最小改变。因此,每一经编程的页仅受其上侧的页的扰动且字线到字线的Yupin效应通过此编程序列而有效地减半。
在存储器单元的每一物理页为多状态的存储器的情形下,序列较不直接。举例来说,在2位存储器中,可将与一字线相关联的每一物理页视作具有2位数据的单一页或两个单独的逻辑页(各自具有1位数据的下部及上部位)。因此可在一遍中关于两个位对物理页进行编程,或在两个单独遍中,首先关于下部位页且接着稍后关于上部位页而对物理页进行编程。当将在两个单独遍中对每一物理页进行编程时,经修改的最佳序列为可能的。
图40说明一存储器的实例,其具有2位存储器单元且其中其页以最佳序列编程从而最小化邻近字线上的存储器单元之间的Yupin效应。为了方便,表示法为如下:物理页P0、P1、P2......分别驻留于字线W0、W1、W2......上。对于2位存储器来说,每一物理页具有与其相关联的两个逻辑页,即各自具有二进制数据的下部位及上部位逻辑页。一般来说,通过LP(字线.逻辑_页)而给出特定逻辑页。举例来说,将W0上的P0的下部位及上部位页分别标为LP(0.0)及LP(0.1),且W2上的对应者将为LP(2.0)及LP(2.1)。
本质上,逻辑页的编程将遵循序列n以使得正进行编程的当前页在其经编程之后将经历围绕其环境的最小改变。在此情形下,再次在从底部到顶部的一始终如一的方向上递增地移动将有助于消除来自一侧的扰动。此外,因为每一物理页可能具有两遍编程,所以在编程对于物理页上移时,当前上部位页在已对其邻近的下部位页进行编程之后经编程以使得将在对当前上部位页进行编程时计及所述下部位页的扰动效应将为优选的。因此,如果编程从LP(0.0)开始,则序列将如以将产生LP(0.0)、LP(1.0)、LP(0.1)、LP(2.0)、LP(1.1)、LP(3.0)、LP(2.1)......的页编程次序0、1、2、...n、...而做记号。
关于LM代码连同LA校正的高速缓存读取算法
根据本发明的一方面,实施用于高速缓存读取数据的方案以使得即使对于校正视来自相邻物理页或字线的数据而定的读取操作,数据锁存器及I/O总线也有效地用以在当前页正从存储器核心而被感测的同时切出先前读取页。具体来说,优选读取操作为“先行”(“LA”)读取且对于存储器状态的优选编码为“中下”(“LM”)代码。在必须以对邻近字线上的数据的预先必要的读取而居先于对当前字线上的当前页的读取时,所述预先必要的读取连同任何I/O存取在读取先前页的循环中经抢先完成以使得可在先前读取的页忙于I/O存取的同时执行当前读取。
在2005年4月5日申请的题为“用于包括补偿耦合的非易失性存储装置的读取操作(Read Operations for Non-Volatile Storage that Includes Compensation for Coupling)”的美国专利申请案第11/099,049号中已揭示LA读取方案,所述专利全部揭示内容以引用的方式并入本文中。伴随LA(“先行”)校正的读取基本上检查编程到邻近字线上的单元中的存储器状态且校正其对当前字线上正被读取的存储器单元所造成的任何扰动效应。如果页已根据上文描述的优选编程方案而编程,则邻近字线将来自紧在当前字线上方的字线。LA校正方案将需要邻近字线上的数据先于当前页而经读取。
举例来说,参看图40,如果待读取的当前页(n)处于WLm(例如,WL1)上,则如将由SLA(n)所表示的LA读取将首先读取下一字线WLm+1(例如,WL2)且将数据结果保存于一数据锁存器中。接着,将接着鉴于SLA(n)结果而感测当前页且此将由S1′(n)表示。
如早先结合图40所描述,在具有优选编程序列的LM代码中,下部页(例如,LP(1.0))将经编程到DB或接近于DB(中间状态)。将仅在对WLm+1下部页(例如,LP(2.0))编程之后编程上部页(例如,LP(1.1))。接着将完全消除下部页的WL-WL的Yupin效应。因此,将仅对“A”及“C”状态而不对“U”或“B”状态执行数据相关的校正。
在LA读取的优选实施中,使用锁存器以指示LA读取是否发现“A”或“C”状态或者“U”或“B”状态。在前一情形下需要校正且在后一情形下不需要校正。将通过对感测参数的合适调整(例如提升感测期间的字线电压)而对应地校正当前读取S1(n)中的对应单元。此通过在调整的情况中感测一次且在未调整的情况下感测另一次而对整个当前页进行。接着将根据锁存器是否指示校正而从所述两次感测选择页的每一单元的数据。
以LM代码进行的读取将需要在最终定下读取结果之前检查LM旗标(通过第二遍读取或通过重设读取数据)。LA校正需在读取当前字线之前首先进行下一字线读取。因此,需通过状态机而检查来自下一字线读取的LM旗标及来自当前字线的LM旗标。需在I/O总线不忙于切换读取数据时经由I/O总线将所述两个LM旗标输出到状态机。
图41说明根据图37所示的常规方案的对于LM代码连同LA校正的读取高速缓存的实施方案。基本上,常规方案关于将对当前页的感测藏于所感测的先前页的数据切出时间内。然而,在此情形下,必须以WLm+1上的额外先行读取SLA(n)居先于WLm上的当前页感测S1′(n)。必须在确定所感测的数据之前经由I/O总线输出所述感测中的每一者的LM旗标。鉴于来自SLA(n)的数据而执行当前页感测S1′(n)以产生当前页的经校正的数据。应了解如图38B所示,如果n为下部位页且上部位页尚未经编程,则S1′(n)之后可存在额外S2′(n)。
在开始于t0的下一循环中,接着如T(n)所指示而切出页n的经校正的感测的数据。同时,当前感测现已以必须由SLA(n+1)居先的S1′(n+1)而移动到下一页。然而,来自所述感测的LM旗标的输出必须等待直到对页n的切换T(n)完成。此外,仅可在SLA(n+1)的结果确定之后执行S1(n+1)。因此,S1′(n+1)仅可在数据切换周期之外执行且因此无法藏于其之后。此在未充分利用锁存器及I/O总线时添加额外感测时间,且浪费的时间对于每一后续循环均重复。此实施方案在使用LA校正时使用户的读取性能降级。
以LM代码连同LA校正进行的高速缓存读取的优选实施为以所有感测将藏于数据切换内的方式而对下一字线感测及当前字线感测进行管线式操作。下一字线感测总在当前字线感测之前执行。在每一群组数据切换内,将执行当前字线感测且随后为下下一字线感测。当已结束切出所述群组数据且I/O总线可用时,将首先取出下下一字线LM旗标且对其进行检查。如果LM旗标处于指示上部页未经编程的状态中,则将下下一字线的感测的数据重设为“1”(由于无校正)。随后将检查当前字线LM旗标。视当前字线LM旗标而定,保持所感测的数据或需执行另一感测(在下部页读取的情形下)或者将数据重设为均为“1”(在上部页读取的情形下)。对于具有2位存储器单元的存储器,可通过3个数据锁存器而管理所有所述感测及数据切出。
图42说明以LM代码及LA校正进行的改进读取高速缓存方案。从-t5到t0的第一循环为读取WLm上的当前页(n)的时间且不同于循环的剩余部分。如前所述,LA校正需要在先的读取SLA(n),其中读取A、读取B及读取C将感测WLm+1上的单元状态。来自此读取的LM旗标FLA(n)将于-t4输出且经检查。如果旗标指示上部页在WLm+1上未受到编程,则感测的数据将被重设为均为“1”以指示将不存在校正。如果旗标指示上部页已经编程,则指示校正与否的经锁存的数据将保持为原状。在-t3处,将根据早先描述的LM代码及LA校正方案以S1′(n)及(可能地)S2′(n)感测WLm上的当前页。与图41所说明的方案形成对比,还对于下一页(n+1)执行抢先先行读取。因此,在时间-t2处执行SLA(n+1)且在-t1处输出并检查其LM旗标。
在第一循环之后,在t0处的下一循环的开始时,将如由T(n)所指示而切出先前从S1′(n)感测的数据(现经LA校正)。页地址将首先递增到驻留于由图38所指示的次序给出的字线上的(n+1)。因此,在时间t0处,伴随着T(n)的开始,对第(n+1)页的感测S1’(n+1)可立刻开始,因为其预先必要的先行SLA(n+1)已在先前循环中完成。在t1处的S1′(n+1)的结尾处,将取出并检查LM旗标F(n+1)且任何额外动作将视LM旗标而跟随。经校正的页(n+1)的数据接着将准备好在下一循环中切换。同时,虽然仍在切出页(n),但可预先且在T(n)的切换周期内执行对下一页的先行感测SLA(n+2)。
T(n)(对页(n)的切换)一完成,下一循环即开始且T(n+1)以对经LA校正的页(n+1)的数据的切出而跟随。对于页(n+1)的循环以与对于页(n)的循环相似的方式而继续。重要特征在于在早先循环中抢先执行对于给定页的先行读取。
图43为说明改进读取高速缓存的示意性流程图:
步骤810:在每一读取循环(其中将从存储器感测来自一系列页中的一页)中,在当前循环中输出在上一循环中感测的先前页。
步骤830:在所述输出先前页期间感测当前页,所述感测当前页执行于当前字线上且需要在邻近字线处的预先必要的感测以校正来自于邻近字线上的数据的任何扰动效应。
步骤850:在早于当前循环的循环中抢先地执行与当前页相关的邻近字线的所述预先必要的感测。
图44为以进一步的清晰度说明图41的步骤850的示意性流程图:
步骤852:输出作为来自所述预先必要的感测的数据的部分而获得的第一旗标。
步骤854:根据输出的第一旗标而调整来自所述预先必要的感测的数据。
步骤856:锁存数据以指示是否需要对于跟随的对当前页的所述感测而进行校正。
图45为以进一步的清晰度说明图41的步骤830的示意性流程图:
步骤832:以或不以来自预先必要的感测的校正而执行对当前页的所述感测。
步骤834:输出作为来自所述当前感测的数据的部分而获得的第二旗标。
步骤836:响应于第二旗标,通过将数据保持为不改变或将数据调整一预定值或者在另一组感测条件下重复对当前页的所述感测而获得新数据来修订来自所述当前感测的数据。
步骤838:锁存根据来自预先必要的感测的数据是指示校正还是无校正而经校正或未经校正的修订数据。
已使用2位LM代码而描述以上的算法。算法为对于3个或3个以上的位同样地可应用的LM代码。
虽然已关于特定实施例而描述本发明的各种方面,但应了解,本发明有权保护所附权利要求书的全部范围。

Claims (27)

1.一种非易失性存储器装置,其具有在相关联字线上的可寻址的存储器单元页,所述非易失性存储器装置包含:
为经寻址页的每一存储器单元提供的一组数据锁存器,所述组数据锁存器具有用于锁存预定数目的位的能力;
控制对指定群组的页进行的读取操作的状态机;
所述状态机在一系列读取循环中的每一者中感测并锁存数据页,其中在当前读取循环中的所述感测及锁存针对于当前字线上的当前页的数据,且响应于来自邻近字线的预先必要的数据而执行以校正从其产生的任何扰动效应;
所述状态机在所述当前读取循环之前抢先地感测并锁存所述当前页的所述预先必要的数据;且
所述状态机在所述当前读取循环而非第一读取循环中执行对所述当前页的所述感测及锁存,同时输出在刚刚过去的读取循环中感测并锁存的先前页。
2.根据权利要求1所述的存储器装置,其中所述存储器单元每一者存储一个数据位。
3.根据权利要求1所述的存储器装置,其中所述存储器单元每一者存储一个以上数据位,且字线上的每一存储器单元页与一个以上二进制数据页相关联,所述二进制数据页对应于每一存储器单元的个别位。
4.根据权利要求3所述的存储器装置,其中所述状态机对所述当前页的所述预先必要的数据执行的抢先感测及锁存进一步包含:
输出作为来自所述抢先感测的所述预先必要的数据的一部分而获得的第一旗标;
响应于所述第一旗标而调整所述预先必要的数据;及
锁存经调整的所述预先必要的数据以指示是否需要对所述当前页进行校正。
5.根据权利要求4所述的存储器装置,其中所述第一旗标指示是否已就所有所述位对所述邻近字线上的预先必要的存储器单元页进行编程。
6.根据权利要求5所述的存储器装置,其中:
当所述第一旗标指示所述邻近字线尚未就所有所述位而进行编程时,所述预先必要的数据经调整以指示不需要校正。
7.根据权利要求5所述的存储器装置,其中:
当所述第一旗标指示所述邻近字线已就所有所述位而进行编程时,所述预先必要的数据经调整以指示需要校正。
8.根据权利要求3所述的存储器装置,其中对当前页的所述状态机感测及锁存进一步包含:
通过来自经调整的所述预先必要的数据的校正而执行对所述当前页的所述感测;
输出作为所述当前页的一部分而获得的第二旗标以用于所述状态机;
响应于所述第二旗标,所述状态机通过将所述页保持为不改变或将所述页调整到预定值或者以通过在另一组感测条件下重复对所述当前页的所述感测而获得的新页进行替换来刷新所述当前页;及
锁存经刷新的所述当前页以用于在下一读取循环中输出。
9.根据权利要求8所述的存储器装置,其中对那些存储器单元的如经调整的所述预先必要的数据所指示需要校正的所述当前页的所述状态机感测是以具有预定升压的字线电压执行的。
10.根据权利要求8所述的存储器装置,其中所述第二旗标指示是否已就所有所述位对所述当前字线上的存储器单元的所述当前页进行编程。
11.根据权利要求10所述的存储器装置,其中:
当所述第二旗标指示所述邻近字线已就所有所述位而进行编程时,所述状态机通过将所述当前页保持为不改变而在空值操作中刷新所述当前页。
12.根据权利要求10所述的存储器装置,其中:
所述存储器单元每一者存储两个数据位;
所述存储器单元页由下部位页及上部位页构成;且
当所述第二旗标指示所述邻近字线尚未就所有所述位而进行编程且正被感测的所述当前页为上部位页时,所述刷新所述当前页是通过将所述当前页全部重设为指示所述上部位页尚未进行编程的预定位而进行。
13.根据权利要求10所述的存储器装置,其中:
所述存储器单元每一者存储两个数据位;
所述存储器单元页由下部位页及上部位页构成;且
当所述第二旗标指示所述邻近字线尚未就所有所述位而进行编程且正被感测的所述当前页为下部位页时,所述刷新所述当前页是通过相对于另一预定参考来感测所述当前页而进行。
14.一种非易失性存储器装置,其具有在相关联的字线上的可寻址的存储器单元页,所述非易失性存储器装置包含:
为经寻址页的每一存储器单元提供的一组数据锁存器,所述组数据锁存器具有用于锁存预定数目的位的能力;
用于控制对指定群组的页进行的读取操作的构件;
用于在一系列读取循环中的每一者中感测并锁存数据页的构件,其中用于当前读取循环中的所述感测及锁存的所述构件针对于当前字线上的当前页的数据,且响应于来自邻近字线的预先必要的数据以校正从其产生的任何扰动效应;
用于在所述当前读取循环之前抢先地感测并锁存所述当前页的所述预先必要的数据的构件;且
所述用于在所述当前读取循环而非第一读取循环中感测并锁存的构件感测并锁存所述当前页,同时输出在刚刚过去的读取循环中感测并锁存的先前页。
15.一种读取具有在相关联的字线上的可寻址的存储器单元页的非易失性存储器的方法,其包含:
在一系列读取循环中的每一者中感测并锁存数据页,其中在当前读取循环中的所述感测及锁存针对于当前字线上的当前页的数据,且响应于来自邻近字线的预先必要的数据而执行以校正从其产生的任何扰动效应;
在所述当前读取循环之前抢先地感测并锁存所述当前页的所述预先必要的数据;及
在所述当前读取循环而非第一读取循环中执行对所述当前页的所述感测及锁存,同时输出在刚刚过去的读取循环中感测并锁存的先前页。
16.根据权利要求15所述的方法,其中所述存储器单元每一者存储一个数据位。
17.根据权利要求15所述的方法,其中所述存储器单元每一者存储一个以上数据位,且字线上的每一存储器单元页与一个以上二进制数据页相关联,所述二进制数据页对应于每一存储器单元的个别位。
18.根据权利要求17所述的方法,其中对所述当前页的所述预先必要的数据的所述抢先地感测及锁存进一步包含:
输出作为来自所述抢先地感测的所述预先必要的数据的一部分而获得的第一旗标;
响应于所述第一旗标而调整所述预先必要的数据;及
锁存经调整的所述预先必要的数据以指示是否需要对所述当前页进行校正。
19.根据权利要求18所述的方法,其中所述第一旗标指示是否已就所有所述位对所述邻近字线上的预先必要的存储器单元页进行编程。
20.根据权利要求19所述的方法,其中:
当所述第一旗标指示所述邻近字线尚未就所有所述位而进行编程时,调整所述预先必要的数据以指示不需要校正。
21.根据权利要求19所述的方法,其中:
当所述第一旗标指示所述邻近字线已就所有所述位而进行编程时,调整所述预先必要的数据以指示需要校正。
22.根据权利要求17所述的方法,其中对当前页的所述感测及锁存进一步包含:
通过来自经调整的所述预先必要的数据的校正而执行对所述当前页的所述感测;
输出作为所述当前页的一部分而获得的第二旗标;
响应于所述第二旗标,通过将所述页保持为不改变或将所述页调整到预定值或者以通过在另一组感测条件下重复对所述当前页的所述感测而获得的新页进行替换来刷新所述当前页;及
锁存经刷新的所述当前页以用于在下一读取循环中输出。
23.根据权利要求22所述的方法,其中以具有预定升压的字线电压执行对那些存储器单元的如经调整的所述预先必要的数据所指示需要校正的所述当前页的所述感测。
24.根据权利要求22所述的方法,其中所述第二旗标指示是否已就所有所述位对所述当前字线上的存储器单元的所述当前页进行编程。
25.根据权利要求24所述的方法,其中:
当所述第二旗标指示所述邻近字线已就所有所述位而进行编程时,所述刷新所述当前页是通过将所述当前页保持为不改变的空值操作。
26.根据权利要求24所述的方法,其中:
所述存储器单元每一者存储两个数据位;
所述存储器单元页由下部位页及上部位页构成;且
当所述第二旗标指示所述邻近字线尚未就所有所述位而进行编程且正被感测的所述当前页为上部位页时,所述刷新所述当前页是通过将所述当前页全部重设为指示所述上部位页尚未经编程的预定位而进行。
27.根据权利要求24所述的方法,其中:
所述存储器单元每一者存储两个数据位;
所述存储器单元页由下部位页及上部位页构成;且
当所述第二旗标指示所述邻近字线尚未就所有所述位而进行编程且正被感测的所述当前页为下部位页时,所述刷新所述当前页是通过相对于另一预定参考来感测所述当前页而进行。
CN2007800161980A 2006-05-05 2007-05-02 在读取操作期间具有后台数据锁存器高速缓存的非易失性存储器及其方法 Expired - Fee Related CN101438353B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/381,997 2006-05-05
US11/381,994 2006-05-05
US11/381,994 US7447078B2 (en) 2005-04-01 2006-05-05 Method for non-volatile memory with background data latch caching during read operations
US11/381,997 US7480181B2 (en) 2005-04-01 2006-05-05 Non-volatile memory with background data latch caching during read operations
PCT/US2007/068069 WO2007131062A2 (en) 2006-05-05 2007-05-02 Non-volatile memory with background data latch caching during read operations and methods therefor

Publications (2)

Publication Number Publication Date
CN101438353A CN101438353A (zh) 2009-05-20
CN101438353B true CN101438353B (zh) 2012-10-03

Family

ID=40227503

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800161980A Expired - Fee Related CN101438353B (zh) 2006-05-05 2007-05-02 在读取操作期间具有后台数据锁存器高速缓存的非易失性存储器及其方法

Country Status (6)

Country Link
US (1) US7447078B2 (zh)
JP (1) JP4814995B2 (zh)
KR (1) KR101400999B1 (zh)
CN (1) CN101438353B (zh)
AT (1) ATE531048T1 (zh)
TW (1) TWI348699B (zh)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US7849381B2 (en) 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
US7463521B2 (en) * 2005-04-01 2008-12-09 Sandisk Corporation Method for non-volatile memory with managed execution of cached data
US7206230B2 (en) * 2005-04-01 2007-04-17 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
US7502921B2 (en) * 2005-08-02 2009-03-10 Sandisk Corporation Situation sensitive memory performance
JP4989872B2 (ja) * 2005-10-13 2012-08-01 ルネサスエレクトロニクス株式会社 半導体記憶装置および演算処理装置
WO2007131062A2 (en) * 2006-05-05 2007-11-15 Sandisk Corporation Non-volatile memory with background data latch caching during read operations and methods therefor
US7471562B2 (en) * 2006-05-08 2008-12-30 Macronix International Co., Ltd. Method and apparatus for accessing nonvolatile memory with read error by changing read reference
US7773421B2 (en) * 2006-05-08 2010-08-10 Macronix International Co., Ltd. Method and apparatus for accessing memory with read error by changing comparison
US8077516B2 (en) * 2006-05-08 2011-12-13 Macronix International Co., Ltd. Method and apparatus for accessing memory with read error by changing comparison
US7734861B2 (en) 2006-09-08 2010-06-08 Sandisk Corporation Pseudo random and command driven bit compensation for the cycling effects in flash memory
US7885112B2 (en) 2007-09-07 2011-02-08 Sandisk Corporation Nonvolatile memory and method for on-chip pseudo-randomization of data within a page and between pages
US7606966B2 (en) * 2006-09-08 2009-10-20 Sandisk Corporation Methods in a pseudo random and command driven bit compensation for the cycling effects in flash memory
US7616506B2 (en) * 2006-12-28 2009-11-10 Sandisk Corporation Systems for complete word line look ahead with efficient data latch assignment in non-volatile memory read operations
WO2008083132A2 (en) * 2006-12-28 2008-07-10 Sandisk Corporation Complete word line look ahead with efficient data latch assignment in non-volatile memory read operations
US7616505B2 (en) * 2006-12-28 2009-11-10 Sandisk Corporation Complete word line look ahead with efficient data latch assignment in non-volatile memory read operations
KR100888695B1 (ko) 2007-02-27 2009-03-16 삼성전자주식회사 과표본화 읽기 동작을 수행하는 플래시 메모리 장치 및그것의 데이터 독출 방법
US7499320B2 (en) 2007-03-07 2009-03-03 Sandisk Corporation Non-volatile memory with cache page copy
WO2008109411A1 (en) * 2007-03-07 2008-09-12 Sandisk Corporation Non-volatile memory and method for cache page copy
US7502255B2 (en) 2007-03-07 2009-03-10 Sandisk Corporation Method for cache page copy in a non-volatile memory
US7817073B2 (en) * 2007-06-15 2010-10-19 Micron Technology, Inc. Integrators for delta-sigma modulators
US7538702B2 (en) 2007-06-15 2009-05-26 Micron Technology, Inc. Quantizing circuits with variable parameters
US7818638B2 (en) * 2007-06-15 2010-10-19 Micron Technology, Inc. Systems and devices including memory with built-in self test and methods of making and using the same
US7733262B2 (en) * 2007-06-15 2010-06-08 Micron Technology, Inc. Quantizing circuits with variable reference signals
US9135962B2 (en) * 2007-06-15 2015-09-15 Micron Technology, Inc. Comparators for delta-sigma modulators
US8068367B2 (en) 2007-06-15 2011-11-29 Micron Technology, Inc. Reference current sources
US8117520B2 (en) * 2007-06-15 2012-02-14 Micron Technology, Inc. Error detection for multi-bit memory
US7839703B2 (en) 2007-06-15 2010-11-23 Micron Technology, Inc. Subtraction circuits and digital-to-analog converters for semiconductor devices
US7830729B2 (en) * 2007-06-15 2010-11-09 Micron Technology, Inc. Digital filters with memory
US7768868B2 (en) 2007-06-15 2010-08-03 Micron Technology, Inc. Digital filters for semiconductor devices
US7969783B2 (en) * 2007-06-15 2011-06-28 Micron Technology, Inc. Memory with correlated resistance
US20080320366A1 (en) * 2007-06-25 2008-12-25 Lin Jason T Methods of reading nonvolatile memory
US7849383B2 (en) * 2007-06-25 2010-12-07 Sandisk Corporation Systems and methods for reading nonvolatile memory using multiple reading schemes
WO2009002940A2 (en) * 2007-06-25 2008-12-31 Sandisk Corporation Systems and methods of reading nonvolatile memory
KR101379820B1 (ko) 2007-10-17 2014-04-01 삼성전자주식회사 멀티-비트 프로그래밍 장치와 메모리 데이터 검출 장치
US7849275B2 (en) * 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency
US7961512B2 (en) * 2008-03-19 2011-06-14 Sandisk Corporation Adaptive algorithm in cache operation with dynamic data latch requirements
US7986554B2 (en) 2008-03-19 2011-07-26 Sandisk Technologies Inc. Different combinations of wordline order and look-ahead read to improve non-volatile memory performance
US8832353B2 (en) * 2009-04-07 2014-09-09 Sandisk Technologies Inc. Host stop-transmission handling
US8132045B2 (en) * 2009-06-16 2012-03-06 SanDisk Technologies, Inc. Program failure handling in nonvolatile memory
US8307241B2 (en) 2009-06-16 2012-11-06 Sandisk Technologies Inc. Data recovery in multi-level cell nonvolatile memory
JP2011123964A (ja) * 2009-12-11 2011-06-23 Toshiba Corp 半導体記憶装置
KR101618311B1 (ko) 2010-02-08 2016-05-04 삼성전자주식회사 플래시 메모리 장치 및 그것의 읽기 방법
KR101635506B1 (ko) 2010-03-29 2016-07-04 삼성전자주식회사 데이터 저장 시스템 및 그것의 읽기 방법
US8416624B2 (en) 2010-05-21 2013-04-09 SanDisk Technologies, Inc. Erase and programming techniques to reduce the widening of state distributions in non-volatile memories
JP2011248682A (ja) 2010-05-27 2011-12-08 Toshiba Corp メモリデバイス
CN101880662B (zh) * 2010-06-13 2013-12-11 安徽大学 东方白鹳的微卫星标记位点引物及遗传学个体识别方法
US8472280B2 (en) 2010-12-21 2013-06-25 Sandisk Technologies Inc. Alternate page by page programming scheme
CN103262050B (zh) 2010-12-24 2016-12-21 美光科技公司 对存储器的连续页面读取
US8819328B2 (en) 2010-12-30 2014-08-26 Sandisk Technologies Inc. Controller and method for performing background operations
US8843693B2 (en) 2011-05-17 2014-09-23 SanDisk Technologies, Inc. Non-volatile memory and method with improved data scrambling
KR101821604B1 (ko) * 2011-07-25 2018-01-24 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
KR20140028582A (ko) * 2012-08-29 2014-03-10 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
US9286964B2 (en) * 2012-12-21 2016-03-15 Intel Corporation Method, apparatus and system for responding to a row hammer event
KR20140093855A (ko) 2013-01-18 2014-07-29 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 제어 방법
US9116824B2 (en) 2013-03-15 2015-08-25 Sandisk Technologies Inc. System and method to reduce read latency of a data storage device
US9037902B2 (en) 2013-03-15 2015-05-19 Sandisk Technologies Inc. Flash memory techniques for recovering from write interrupt resulting from voltage fault
KR102174030B1 (ko) * 2014-05-13 2020-11-05 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법
US20160098197A1 (en) 2014-10-06 2016-04-07 SanDisk Technologies, Inc. Nonvolatile memory and method with state encoding and page-by-page programming yielding invariant read points
KR102282196B1 (ko) 2015-04-28 2021-07-27 삼성전자 주식회사 비휘발성 메모리 장치, 메모리 시스템 및 그것의 동작 방법
CN106325764B (zh) * 2015-07-08 2021-02-26 群联电子股份有限公司 存储器管理方法、存储器控制电路单元与存储器存储装置
JP6490018B2 (ja) * 2016-02-12 2019-03-27 東芝メモリ株式会社 半導体記憶装置
US9767914B1 (en) 2016-10-10 2017-09-19 Wingyu Leung Durable maintenance of memory cell electric current sense window following program-erase operations to a non-volatile memory
US9811269B1 (en) 2016-12-30 2017-11-07 Intel Corporation Achieving consistent read times in multi-level non-volatile memory
KR102328226B1 (ko) * 2017-07-05 2021-11-18 에스케이하이닉스 주식회사 페이지 버퍼를 구비하는 메모리 장치
JP2019057342A (ja) 2017-09-20 2019-04-11 東芝メモリ株式会社 半導体記憶装置
CN109935252B (zh) * 2017-12-15 2021-03-30 旺宏电子股份有限公司 存储器装置及其操作方法
CN108647162B (zh) * 2018-04-20 2020-05-19 华中科技大学 一种基于程序存储器地址总线系统的低功耗方法
KR20200034312A (ko) * 2018-09-21 2020-03-31 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
TWI688960B (zh) * 2019-04-18 2020-03-21 旺宏電子股份有限公司 記憶體裝置
KR20210152750A (ko) * 2020-06-09 2021-12-16 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US20230410921A1 (en) * 2022-06-21 2023-12-21 Sandisk Technologies Llc Three-bit-per-cell programming using a four-bit-per-cell programming algorithm

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1466150A (zh) * 2002-06-05 2004-01-07 力旺电子股份有限公司 快闪存储器的分页缓冲器
CN1480950A (zh) * 2002-09-05 2004-03-10 力旺电子股份有限公司 即时多路复用且可快速复制数据的闪速存储器装置

Family Cites Families (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1224062B (it) 1979-09-28 1990-09-26 Ates Componenti Elettron Metodo di programmazione per una memoria a semiconduttore non volatile elettricamente alterabile
US4785427A (en) 1987-01-28 1988-11-15 Cypress Semiconductor Corporation Differential bit line clamp
US5034922A (en) 1987-12-21 1991-07-23 Motorola, Inc. Intelligent electrically erasable, programmable read-only memory with improved read latency
US5093806A (en) 1988-02-16 1992-03-03 Tran Hiep V Sensing and decoding scheme for a bicmos read/write memory
US5095344A (en) 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5070032A (en) 1989-03-15 1991-12-03 Sundisk Corporation Method of making dense flash eeprom semiconductor memory structures
EP0617363B1 (en) 1989-04-13 2000-01-26 SanDisk Corporation Defective cell substitution in EEprom array
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
JP2646850B2 (ja) 1990-11-30 1997-08-27 日本電気株式会社 半導体メモリ回路
US5343063A (en) 1990-12-18 1994-08-30 Sundisk Corporation Dense vertical programmable read only memory cell structure and processes for making them
US5218569A (en) 1991-02-08 1993-06-08 Banks Gerald J Electrically alterable non-volatile memory with n-bits per memory cell
KR960000619B1 (ko) 1991-12-27 1996-01-10 후지쓰 가부시끼가이샤 일괄소거형의 불휘발성 반도체 기억장치 및 그의 구동제어회로
US5313421A (en) 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5532962A (en) 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
US5315541A (en) 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
US5509134A (en) 1993-06-30 1996-04-16 Intel Corporation Method and apparatus for execution of operations in a flash memory array
US5519847A (en) 1993-06-30 1996-05-21 Intel Corporation Method of pipelining sequential writes in a flash memory
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5661053A (en) 1994-05-25 1997-08-26 Sandisk Corporation Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers
US5680347A (en) 1994-06-29 1997-10-21 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device
US5692165A (en) 1995-09-12 1997-11-25 Micron Electronics Inc. Memory controller with low skew control signal
JP3941149B2 (ja) 1996-12-03 2007-07-04 ソニー株式会社 半導体不揮発性記憶装置
US5893135A (en) 1995-12-27 1999-04-06 Intel Corporation Flash memory array with two interfaces for responding to RAS and CAS signals
US5724303A (en) 1996-02-15 1998-03-03 Nexcom Technology, Inc. Non-volatile programmable memory having an SRAM capability
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
US5860082A (en) 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
FR2749682B1 (fr) 1996-06-10 1998-07-10 Bull Sa Circuit pour transborder des donnees entre memoires distantes et calculateur comprenant un tel circuit
US5768192A (en) 1996-07-23 1998-06-16 Saifun Semiconductors, Ltd. Non-volatile semiconductor memory cell utilizing asymmetrical charge trapping
JP3897388B2 (ja) 1996-12-27 2007-03-22 シャープ株式会社 シリアルアクセス方式の半導体記憶装置
US6097638A (en) 1997-02-12 2000-08-01 Kabushiki Kaisha Toshiba Semiconductor memory device
KR100272037B1 (ko) 1997-02-27 2000-12-01 니시무로 타이죠 불휘발성 반도체 기억 장치
US5870335A (en) 1997-03-06 1999-02-09 Agate Semiconductor, Inc. Precision programming of nonvolatile memory cells
US5872739A (en) 1997-04-17 1999-02-16 Radiant Technologies Sense amplifier for low read-voltage memory cells
US6768165B1 (en) 1997-08-01 2004-07-27 Saifun Semiconductors Ltd. Two bit non-volatile electrically erasable and programmable semiconductor memory cell utilizing asymmetrical charge trapping
US5867429A (en) 1997-11-19 1999-02-02 Sandisk Corporation High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates
US6333871B1 (en) 1998-02-16 2001-12-25 Hitachi, Ltd. Nonvolatile semiconductor memory including a controller for providing an improved reprogram operation
US5969986A (en) 1998-06-23 1999-10-19 Invox Technology High-bandwidth read and write architectures for non-volatile memories
US5949720A (en) 1998-10-30 1999-09-07 Stmicroelectronics, Inc. Voltage clamping method and apparatus for dynamic random access memory devices
US6567302B2 (en) 1998-12-29 2003-05-20 Micron Technology, Inc. Method and apparatus for programming multi-state cells in a memory device
US6282145B1 (en) 1999-01-14 2001-08-28 Silicon Storage Technology, Inc. Array architecture and operating methods for digital multilevel nonvolatile memory integrated circuit system
US6356485B1 (en) 1999-02-13 2002-03-12 Integrated Device Technology, Inc. Merging write cycles by comparing at least a portion of the respective write cycle addresses
US6253250B1 (en) 1999-06-28 2001-06-26 Telocity, Incorporated Method and apparatus for bridging a plurality of buses and handling of an exception event to provide bus isolation
JP3863330B2 (ja) 1999-09-28 2006-12-27 株式会社東芝 不揮発性半導体メモリ
JP2001184881A (ja) 1999-12-28 2001-07-06 Toshiba Corp 不揮発性半導体メモリの読み出し回路
JP3983969B2 (ja) * 2000-03-08 2007-09-26 株式会社東芝 不揮発性半導体記憶装置
US6856568B1 (en) 2000-04-25 2005-02-15 Multi Level Memory Technology Refresh operations that change address mappings in a non-volatile memory
US6396741B1 (en) 2000-05-04 2002-05-28 Saifun Semiconductors Ltd. Programming of nonvolatile memory cells
US6504757B1 (en) 2000-08-11 2003-01-07 Advanced Micro Devices, Inc. Double boosting scheme for NAND to improve program inhibit characteristics
US6266273B1 (en) 2000-08-21 2001-07-24 Sandisk Corporation Method and structure for reliable data copy operation for non-volatile memories
JP2002100192A (ja) 2000-09-22 2002-04-05 Toshiba Corp 不揮発性半導体メモリ
US6252803B1 (en) 2000-10-23 2001-06-26 Advanced Micro Devices, Inc. Automatic program disturb with intelligent soft programming for flash cells
US6349056B1 (en) 2000-12-28 2002-02-19 Sandisk Corporation Method and structure for efficient data verification operation for non-volatile memories
US6407953B1 (en) 2001-02-02 2002-06-18 Matrix Semiconductor, Inc. Memory array organization and related test method particularly well suited for integrated circuits having write-once memory arrays
KR100381956B1 (ko) 2001-02-02 2003-04-26 삼성전자주식회사 플래시 메모리 장치의 감지 증폭 회로
US6738289B2 (en) 2001-02-26 2004-05-18 Sandisk Corporation Non-volatile memory with improved programming and method therefor
JP3957985B2 (ja) 2001-03-06 2007-08-15 株式会社東芝 不揮発性半導体記憶装置
US6570810B2 (en) 2001-04-20 2003-05-27 Multi Level Memory Technology Contactless flash memory with buried diffusion bit/virtual ground lines
JP2003036681A (ja) * 2001-07-23 2003-02-07 Hitachi Ltd 不揮発性記憶装置
US7177197B2 (en) 2001-09-17 2007-02-13 Sandisk Corporation Latched programming of memory and method
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
JP4454896B2 (ja) 2001-09-27 2010-04-21 シャープ株式会社 仮想接地型不揮発性半導体記憶装置
KR100454119B1 (ko) 2001-10-24 2004-10-26 삼성전자주식회사 캐쉬 기능을 갖는 불 휘발성 반도체 메모리 장치 및 그것의 프로그램, 읽기, 그리고 페이지 카피백 방법들
US6687158B2 (en) 2001-12-21 2004-02-03 Fujitsu Limited Gapless programming for a NAND type flash memory
US6700820B2 (en) 2002-01-03 2004-03-02 Intel Corporation Programming non-volatile memory devices
US6542407B1 (en) 2002-01-18 2003-04-01 Sandisk Corporation Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells
JP4004811B2 (ja) 2002-02-06 2007-11-07 株式会社東芝 不揮発性半導体記憶装置
US6987693B2 (en) 2002-09-24 2006-01-17 Sandisk Corporation Non-volatile memory and method with reduced neighboring field errors
US6983428B2 (en) 2002-09-24 2006-01-03 Sandisk Corporation Highly compact non-volatile memory and method thereof
US7046568B2 (en) 2002-09-24 2006-05-16 Sandisk Corporation Memory sensing circuit and method for low voltage operation
US7196931B2 (en) 2002-09-24 2007-03-27 Sandisk Corporation Non-volatile memory and method with reduced source line bias errors
US7443757B2 (en) * 2002-09-24 2008-10-28 Sandisk Corporation Non-volatile memory and method with reduced bit line crosstalk errors
US6940753B2 (en) 2002-09-24 2005-09-06 Sandisk Corporation Highly compact non-volatile memory and method therefor with space-efficient data registers
US6657891B1 (en) 2002-11-29 2003-12-02 Kabushiki Kaisha Toshiba Semiconductor memory device for storing multivalued data
US7073103B2 (en) 2002-12-05 2006-07-04 Sandisk Corporation Smart verify for multi-state memories
US6829167B2 (en) 2002-12-12 2004-12-07 Sandisk Corporation Error recovery for nonvolatile memory
JP3920768B2 (ja) * 2002-12-26 2007-05-30 株式会社東芝 不揮発性半導体メモリ
JP3913704B2 (ja) * 2003-04-22 2007-05-09 株式会社東芝 不揮発性半導体記憶装置及びこれを用いた電子装置
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7372730B2 (en) * 2004-01-26 2008-05-13 Sandisk Corporation Method of reading NAND memory to compensate for coupling between storage elements
JP4170952B2 (ja) 2004-01-30 2008-10-22 株式会社東芝 半導体記憶装置
US7158421B2 (en) 2005-04-01 2007-01-02 Sandisk Corporation Use of data latches in multi-phase programming of non-volatile memories
US7120051B2 (en) 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
US7251160B2 (en) 2005-03-16 2007-07-31 Sandisk Corporation Non-volatile memory and method with power-saving read and program-verify operations
US7206230B2 (en) * 2005-04-01 2007-04-17 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
US7187585B2 (en) * 2005-04-05 2007-03-06 Sandisk Corporation Read operation for non-volatile storage that includes compensation for coupling
US7224614B1 (en) 2005-12-29 2007-05-29 Sandisk Corporation Methods for improved program-verify operations in non-volatile memories

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1466150A (zh) * 2002-06-05 2004-01-07 力旺电子股份有限公司 快闪存储器的分页缓冲器
CN1480950A (zh) * 2002-09-05 2004-03-10 力旺电子股份有限公司 即时多路复用且可快速复制数据的闪速存储器装置

Also Published As

Publication number Publication date
TW200811866A (en) 2008-03-01
US20060221696A1 (en) 2006-10-05
US7447078B2 (en) 2008-11-04
JP2009536424A (ja) 2009-10-08
KR101400999B1 (ko) 2014-05-29
TWI348699B (en) 2011-09-11
ATE531048T1 (de) 2011-11-15
KR20090026748A (ko) 2009-03-13
CN101438353A (zh) 2009-05-20
JP4814995B2 (ja) 2011-11-16

Similar Documents

Publication Publication Date Title
CN101438353B (zh) 在读取操作期间具有后台数据锁存器高速缓存的非易失性存储器及其方法
CN101171641B (zh) 操作非易失性存储器装置的方法
CN101512668B (zh) 对于快闪存储器中的循环效应的伪随机及命令驱动位补偿及其方法
CN100590743C (zh) 具有锁存器的非易失性存储器装置
US7463521B2 (en) Method for non-volatile memory with managed execution of cached data
CN102318007A (zh) 用于对一页内和多页间的数据进行芯片上伪随机化的非易失性存储器和方法
US7606966B2 (en) Methods in a pseudo random and command driven bit compensation for the cycling effects in flash memory
EP2070090B1 (en) Pseudo random and command driven bit compensation for the cycling effects in flash memory and methods therefor
EP2016590B1 (en) Non-volatile memory with background data latch caching during read operations and methods therefor
TWI427637B (zh) 在程式執行期間具有背景資料鎖存快取的非揮發性記憶體及方法
TW200809863A (en) Non-volatile memory with background data latch caching during erase operations and methods therefor

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: SANDISK TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: SANDISK CORP.

Effective date: 20130204

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20130204

Address after: American Texas

Patentee after: Sandisk Corp.

Address before: American California

Patentee before: Sandisk Corp.

C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: American Texas

Patentee after: DELPHI INT OPERATIONS LUX SRL

Address before: American Texas

Patentee before: Sandisk Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121003

Termination date: 20200502

CF01 Termination of patent right due to non-payment of annual fee