专利名称:在非易失性存储器器件内将以二进制格式存储的数据折叠为多状态格式的利记博彩app
技术领域:
本发明通常涉及非易失性半导体存储器,比如电可擦除可编程只读存储器 (EEPROM)和快闪EEPR0M,且具体地涉及用于在这种存储器器件上将数据从二进制格式重写为多状态格式的技术。
背景技术:
能够非易失性地存储电荷的固态存储器、特别是被封装为小型卡的EEPROM和快闪EEPROM形式的固态存储器最近成为各种移动和手持设备、特别是信息装置和消费电子产品中的存储选择。不同于也是固态存储器的RAM(随机存取存储器),闪存是非易失性的, 并且即使在切断电源之后仍保持它所存储的数据。尽管成本更高,但是闪存正被更多地用于海量存储应用中。基于诸如硬盘或软盘之类的旋转磁介质的传统海量存储不适合于移动和手持环境。这是因为磁盘倾向于体积大,易出现机械故障,并且具有高等待时间和高功率要求。这些不希望的属性使得基于盘的存储在大部分移动和便携式应用中不实用。另一方面,嵌入式和可移动卡形式这两种的闪存由于其小尺寸、低功耗、高速和高可靠性特征而理想地适合于移动和手持环境。EEPROM和电可编程只读存储器(EPROM)是可以被擦除且使得新数据写入或〃编程"到其存储器单元中的非易失性存储器。在场效应晶体管结构中,两者利用在源极和漏极区域之间的、位于半导体衬底中的沟道区之上的浮置(未连接)导电栅极。然后,控制栅极被提供在浮置栅极上。晶体管的阈值电压特性受浮置栅极上保留的电荷量控制。也就是说,对于在浮置栅极上的给定水平的电荷,存在必须在“导通”晶体管之前施加到控制栅极以允许在其源极和漏极区之间导电的相应电压(阈值)。浮置栅极可以保持一个范围的电荷,且因此可以被编程到阈值电压窗内的任何阈值电压电平。由器件的最小和最大阈值电平来界定(delimit)阈值电压窗的尺寸,该最小和最大阈值电平又对应于可以被编程到浮置栅极上的电荷的范围。阈值窗通常取决于存储器器件的特性、工作条件和历史。在该窗内的每个不同的可分辨的阈值电压电平范围原则上可以用于指定单元的明确的存储器状态。通常通过两种机制之一来将充当存储器单元的晶体管编程到“已编程”状态。在 “热电子注入”中,施加到漏极的高电压加速了穿过衬底沟道区的电子。同时,施加到控制栅极的高电压拉动热电子经过薄栅极电介质到浮置栅极上。在“隧穿注入”中,相对于衬底, 高电压被施加到控制栅极。以此方式,将电子从衬底拉到中间的(intervening)浮置栅极。可以通过多种机制来擦除存储器器件。对于EPR0M,可通过紫外线辐射从浮置栅极移除电荷而大量擦除该存储器。对于EEPR0M,可通过相对于控制栅极向衬底施加高电压以便诱导浮置栅极中的电子遂穿过薄氧化物到衬底沟道区(即,i^owler-Nordheim隧穿)而电擦除存储器单元。通常,EEPROM可逐字节擦除。对于快闪EEPR0M,在块可由存储器的512 字节或更多组成的情况下,该存储器可一次性电擦除或一次一个或多个块地电擦除。
6
非易失件存储器单元的例子存储器器件通常包括可以被安装在卡上的一个或多个存储器芯片。每个存储器芯片包括由诸如解码器和擦除、写和读电路的外围电路支持的存储器单元的阵列。更复杂的存储器器件还与进行智能和更高级的存储器操作和接口的控制器一起出现。存在当今正使用的许多商业成功的非易失性固态存储器器件。这些存储器器件可以使用不同类型的存储器单元,每个类型具有一个或多个电荷存储元件。图1A-1E示意性地图示非易失性存储器单元的不同例子。图IA示意性地图示具有用于存储电荷的浮置栅极的EEPROM单元的形式的非易失性存储器。电可擦除可编程只读存储器(EEPROM)具有类似于EPROM的结构,但另外提供了用于在施加适当的电压时电学地加载和从其浮置栅极移除电荷而不需要暴露于UV辐射的机制。在美国专利no. 5,595,924中给出这种单元和制造它们的方法的例子。图IB示意性地图示具有选择栅极和控制或操纵栅极两者的快闪EEPROM单元。存储器单元10具有在源极14和漏极16扩散之间的〃划分沟道(split-channel)" 12。用串联的两个晶体管Tl和T2有效地形成单元。Tl用作具有浮置栅极20和控制栅极30的存储器晶体管。该浮置栅极能够存储可选的电荷量。可以流过沟道的Tl的部分的电流量取决于在控制栅极30上的电压和驻留在中间的浮置栅极20上的电荷量。T2用作具有选择栅极40的选择晶体管。当T2通过在选择栅极40处的电压而导通时,其允许在沟道的Tl的部分中的电流在源极和漏极之间通过。该选择晶体管提供沿源极-漏极沟道、与控制栅极处的电压无关的开关。一个优点是,其可以用于截止由于在其浮置栅极处的其电荷消耗(正的)而在零控制栅极电压处仍然导电的那些单元。另一优点是,其允许更容易地实现源极侧注入编程。划分沟道存储器单元的一个简单的实施例是其中选择栅极和控制栅极连接到相同字线,如图IB所示的虚线示意性地指示的。这通过具有位于沟道的一部分上的电荷存储元件(浮置栅极)和位于另一沟道部分以及电荷存储元件上的控制栅极结构(其是字线的部分)来实现。这有效地形成具有串联的两个晶体管的单元,一个(存储器晶体管)具有在电荷存储元件上的电荷量和控制可以流过其沟道部分的电流量的字线上的电压的组合,且另一个(选择晶体管)具有单独用作其栅极的字线。在美国专利号5,070,032,5,095,344, 5,315,541,5,343,063和5,661,053中给出了这种单元、其在存储器系统中的使用和制造它们的方法的例子。图IB所示的划分沟道单元的更确切的实施例是当选择栅极和控制栅极是独立的且不通过它们之间的虚线来连接时。一个实施方式使单元的阵列中的一列的控制栅极连接到垂直于字线的控制(或操纵)线。效果是免除字线在读或编程所选单元时同时需要执行两个功能。那两个功能是(1)用作选择晶体管的栅极,因此需要适当电压导通和截止选择晶体管,和( 通过字线和电荷存储元件之间耦合的电场(电容)来驱动电荷存储元件的电压到期望的电平。通常难以以最佳方式用单个电压进行这两个功能。通过对控制栅极和选择栅极的分别控制,字线仅需要执行功能(1),而添加的控制线执行功能O)。该能力允许设计更高性能的编程,其中,使编程电压适应于(gear)目标数据。例如,在美国专利号 5,313,421和6,222,762中描述了在快闪EEPROM阵列中的独立控制(或操纵)栅极的使用。
图IC示意性地图示具有双浮置栅极和独立的选择和控制栅极的另一快闪EEPROM 单元。除了存储器单元10有效地具有串联的三个晶体管以外,存储器单元10类似于图IB 的存储器单元。在这类单元中,两个存储元件(即,Tl-左和Tl-右的储存元件)被包括在源极和漏极扩散之间的其沟道上,选择晶体管Tl在它们之间。这些存储器晶体管分别具有浮置栅极20和20'和控制栅极30和30'。由选择栅极40来控制选择晶体管T2。在任一时间,仅存储器晶体管对中的一个存储器晶体管被访问用于读或写。当存储单元Tl-左正被访问时,T2和Tl-右两者被导通以允许在沟道的Tl-左的部分中的电流在源极和漏极之间通过。类似地,当存储单元Tl-右正被访问时,T2和Tl-左被导通。通过使得选择栅极多晶硅的一部分紧密靠近浮置栅极且向选择栅极施加富足的(substantial)正电压(例如 20V)以便在浮置栅极内存储的电子可以遂穿到选择栅极多晶硅,来实施擦除。图ID示意性地图示了被组织为NAND单元的存储器单元的串。NAND单元50由通过其源极和漏极菊链链接的一系列存储器晶体管M1,M2,...构成。一对选择晶体管S1、S2 控制存储器晶体管链经由NAND单元的源极端M和漏极端56与外部的连接。在存储器阵列中,当导通源极选择晶体管Sl时,源极端耦接到源极线。类似地,当导通漏极选择晶体管 S2时,NAND单元的漏极端耦接到存储器阵列的位线。在该链中的每个存储器晶体管具有电荷存储元件来存储给定量的电荷以便表示意图的存储器状态。每个存储器晶体管的控制栅极提供对读和写操作的控制。选择晶体管Si、S2的每个的控制栅极分别经由其源极端M 和漏极端56提供对NAND单元的控制访问。当在NAND单元内的被寻址的存储器晶体管在编程期间被读取和验证时,其控制栅极被供应了适当的电压。同时,NAND单元50中的剩余未被寻址的存储器晶体管通过在其控制栅极上施加足够的电压而充分导通。以此方式,有效地6建立从各个的储器晶体管的源极到NAND单元的源极端M的导电路径,且对各个存储器晶体管的漏极到该单元的漏极端56类似。在美国专利5,570,315,5,903,495,6,046,935中描述了具有这种NAND单元结构的存储器器件。图IE示意性地图示了具有用于存储电荷的电介质层的非易失性存储器。取代先前描述的导电浮置栅极元件,使用电介质层。使用电介质存储元件的这种存储器器件已经由Eitan等人的“NROM :A Novel Localized Trapping,2-Bit Nonvolatile Memory Cell,,, IEEE Electron Device Letters,vol. 21,no. 11,2000 年 11 月,543-545 页描述。0N0 电介质层延伸穿过在源极和漏极扩散之间的沟道。一个数据位的电荷局限在与漏极相邻的电介质层中,且另一数据位的电荷被局限在与源极相邻的电介质层中。例如,美国专利5,768,192 和6,011,725公开了具有夹在两个二氧化硅层之间的俘获电介质(trapping dielectric) 的非易失性存储器单元。通过分别读取电介质内的空间上分开的电荷存储区的二进制状态来实现多状态数据存储。存储器阵列存储器器件通常包括以行和列布置且可由字线和位线寻址的存储器单元的二维阵列。可以根据NOR类型或NAND类型架构来形成该阵列。NOR 阵列图2图示了存储器单元的NOR阵列的例子。已经通过图IB或IC所示类型的单元实现了具有NOR类型架构的存储器器件。每行存储器单元通过其源极和漏极以菊链方式连接。该设计有时称为虚拟地设计。每个存储器单元10具有源极14、漏极16、控制栅极30 和选择栅极40。一行中的单元使得其选择栅极连接到字线42。一列中的单元使得其源极和漏极分别连接到所选位线34和36。在其中存储器单元使得其控制栅极和选择栅极独立地被控制的一些实施例中,操纵线36也连接一列中的单元的控制栅极。利用存储器单元来实现许多快闪EEPROM器件,其中每个存储器单元用连接到一起的其控制栅极和选择栅极来形成。在该情况下,不需要操纵线,且字线简单地连接沿着每行的单元的所有控制栅极和选择栅极。在美国专利号5,172,338和5,418,752中公开了这些设计的例子。在这些设计中,字线主要进行两个功能行选择和向该行中的所有单元供应控制栅极电压用于读或编程。NAND 阵列图3图示了诸如图ID所示的存储器单元的NAND阵列的例子。沿NAND单元的每列,位线耦接到每个NAND单元的漏极端56。沿着NAND单元的每行,源极线可以连接所有其源极端M。而且,沿一行的NAND单元的控制栅极连接到一系列相应的字线。可以通过经由连接的字线用选择晶体管对的控制栅极上的适当电压来导通该对选择晶体管(见图1D), 来寻址整行NAND单元。当在NAND单元链内的存储器晶体管正被读时,在该链中的剩余存储器晶体管经由其相关字线而硬导通(turn on hard),以便流过该链的电流主要取决于在正被读的单元中存储的电荷水平。作为存储器系统的部分的NAND架构阵列及其操作的例子在美国专利号5,570,315,5, 774,397和6,046,935中找到。块擦除电荷存储存储器器件的编程可以仅导致向其电荷存储元件添加更多的电荷。因此,在编程操作之前,必须移除(或擦除)在电荷存储元件中已有的电荷。提供擦除电路(未示出)来擦除一块或更多块存储器单元。当整个单元阵列、或该阵列的大量组的单元一起(即,在一次快闪中)被电擦除时,诸如EEPROM的非易失性存储器被称为"快闪"EEPR0M。一旦被擦除,则可以重新编程该组单元。一起可擦除的该组单元可以构成一个或多个可寻址擦除单元。擦除单元或块通常存储一页或多页数据,页是编程和读的单位, 虽然可以在单个操作中编程或读多于一页。每页通常存储一个或多个扇区的数据,扇区的尺寸由主机系统定义。一个例子是遵循随磁盘驱动器建立的标准的512字节用户数据的扇区加上关于用户数据和/或其所存储在的块的开销(overhead)信息的一些数量的字节。读/写电路在通常的两状态EEPROM单元中,建立至少一个电流分界点(breakpoint)水平以便将导电窗划分为两个区域。当通过施加预定的固定电压来读单元时,通过与分界点水平 (或参考电流IREF)相比较,其源极/漏极电流被解析为存储器状态。如果读取的电流高于分界点水平的电流,则该单元被确定为处于一个逻辑状态(例如"零"状态)。另一方面, 如果该电流小于分界点水平的电流,则该单元被确定为处于另一逻辑状态(例如"一"状态)。因此,这种两状态单元存储一位数字信息。可以外部地编程的参考电流源通常被提供作为存储器系统的部分,以生成分界点水平电流。为了增加存储器容量,随着半导体技术状态的进步,快闪EEPROM正被制造得越来越高密度。增加存储容量的另一方法是使得每个存储器单元存储多于两个状态。对于多状态或多级EEPROM存储器单元,通过多于一个分界点将导电窗划分为多于两个区域,以便每个单元能够存储多于一位的数据。因此给定EEPROM阵列可以存储的信息随着每个单元可以存储的状态的数量而增加。已经在美国专利No. 5,172,338中描述了具有多状态或多级存储器单元的EEPROM或快闪EEPR0M。实际上,通常通过当向控制栅极施加参考电压时感测穿过单元的源极和漏极的导电电流来读该单元的存储器状态。因此,对于单元的浮置栅极上的每个给定的电荷,可以检测关于固定参考控制栅极电压的相应导电电流。类似地,可编程到浮置栅极上的电荷的范围定义了对应的阈值电压窗或对应的导电电流窗。或者,代替检测在划分的电流窗之间的导电电流,能够在控制栅极处为在测试下的给定存储器状态设置阈值电压,并检测导电电流是低于还是高于阈值电流。在一个实施方式中,通过检查导电电流经过位线的电容而放电的速率来实现相对于阈值电流对导电电流的检测。图4图示了对于浮置栅极可以在任何一个时间选择性地存储的四个不同的电荷 Q1-Q4的源极-漏极电流Id和控制栅极电压Vra之间的关系。四条实线Id对VCG曲线表示分别对应于四个可能的存储器状态的、可以被编程到存储器单元的浮置栅极上的四个可能的电荷水平。作为例子,全体(population)单元的阈值电压窗可以是从0. 5V到3. 5V的范围。可以通过将阈值窗划分为每个以0.5V为间隔的五个区域来界定六个存储器状态。例如,如果如所示地使用2μ A的参考电流Ikef,则用Ql编程的单元可以被视为处于存储器状态〃 1〃,因为其曲线与Ikef在由Vra = O. 5V和1. OV界定的阈值窗的区域中相交。类似地, Q4处于存储器状态"5"。如可以从上述描述看见的,使得存储器单元存储的状态越多,其阈值窗划分得越精细。这将需要在编程和读操作中的更高的精度以便能够实现需要的分辨率。美国专利No. 4,357,685公开了编程2状态EPROM的方法,其中当单元被编程到给定状态时,其经历连续的编程电压脉冲,每次向浮置栅极添加增加的电荷。在脉冲之间,该单元被读回或验证以相对于分界点水平来确定其源极-漏极电流。当已经验证当前状态达到期望的状态时,编程停止。所使用的编程脉冲串可以具有增加的周期或幅度。现有技术编程电路简单地施加编程脉冲来步经(st印through)从擦除或地状态起的阈值窗直到到达目标状态。实际上,为了允许足够的分辨率,每个划分或界定的区域将需要至少大约五个编程步来遍历(transverse)。该性能对2状态存储器单元是可接受的。 但是,对于多状态单元,所需步的数量随划分的数量而增加,因此,必须增加编程精度或分辨率。例如,16状态单元可能需要平均至少40个编程步脉冲来编程到目标状态。图5示意性地图示了具有可由读/写电路170经由行解码器130和列解码器160 访问的存储器阵列100的典型布置的存储器器件。如结合图2和3所述的,在存储器阵列 100中的存储器单元的存储器晶体管可经由一组所选字线和位线来寻址。行解码器130选择一个或多个字线,且列解码器160选择一个或多个位线,以便向被寻址的存储器晶体管的各个栅极施加适当的电压。提供读/写电路170来读或写(编程)所寻址存储器晶体管的存储器状态。读/写电路170包括经由位线可连接到阵列中的存储器元件的大量读/写模块。图6A是单个读/写模块190的示意方框图。实质上,在读或验证期间,感测放大器确定流过经由所选位线连接的所寻址存储器晶体管的漏极的电流。该电流取决于在存储
10器晶体管中存储的电荷和其控制栅极电压。例如,在多状态EEPROM单元中,其浮置栅极可以被充电到若干不同水平之一。对于4水平单元,可以使用其来存储两位数据。通过水平到位(level-to-bits)转换逻辑来将感测放大器检测的水平转换为要在数据锁存器中存储的一组数据位。影响读/写件能和准确度的因素为了改善读和编程性能,并行读或编程在阵列中的多个电荷存储元件或存储器晶体管。因此,存储器元件的逻辑"页"被一起读或编程。在现有存储器架构中,一行通常包含若干交织的页。一页的所有存储器元件将一起被读或编程。列解码器将选择性地将交织页的每一页连接到对应数量的读/写模块。例如,在一个实施方式中,设计存储器阵列具有 532字节的页尺寸(512字节加上开销的20字节)。如果每列包含漏极位线且每行存在两个交织页,则这总计8512列,其中每页与4256列相关。将存在可连接以并行读或写所有偶数位线或奇数位线的4256个传感模块。以此方式,并行地从存储器元件的页读或向其编程一页4256位(即532字节)的数据。形成读/写电路170的读/写模块可以被布置为各种架构。参考图5,读/写电路170被组织为读/写堆叠180的堆(bank)。每个读/写堆叠180是读/写模块190的堆叠。在存储器阵列中,列间隔由占据其的一个或两个晶体管的尺寸来确定。但是,如可以从图6A看出,读/写模块的电路将很可能用多得多的晶体管和电路元件来实现,且因此将占用超过许多列的空间。为了服务在所占用的列中的多于一列,多个模块在彼此之上堆叠起来。图6B示出由读/写模块190的堆叠传统地实现的图5的读/写堆叠。例如,读/ 写模块可以延伸过六个列,则具有八个读/写模块的堆叠的读/写堆叠180可以用于并行地服务八个列。读/写堆叠可以经由列解码器而耦接到在该堆中的八个奇数(1,3,5,7,9, 11,13,15)列或八个偶数(2,4,6,8,10,12,14,16)列。如前所述,传统的存储器器件通过以大规模地并行方式一次对所有偶数或所有奇数位线操作来改善读/写操作。由两个交织页构成一行的该架构将有助于减轻配合读/写电路的块的问题。还通过控制位线与位线电容性耦合的考虑来对其管理。使用块解码器来将读/写模块组复用到偶数页或奇数页。以此方式,无论何时正读或编程一组位线时,可以将该交织的组接地以最小化中间的相邻耦合。但是,交织页架构在至少三个方面是不利的。首先,其需要另外的复用电路。其次, 其在性能上慢。为了完成由字线连接的或在一行中的存储器单元的读或编程,需要两个读或两个编程操作。第三,其在解决当在不同时间编程两个相邻者、比如分别在奇数和偶数页中的两个相邻者时的诸如在浮置栅极电平处的相邻电荷存储元件之间的场耦合的其他干扰影响方面不是最优的。相邻场耦合的问题随着在存储器晶体管之间的不断更近的间隔而变得更明显。在存储器晶体管中,电荷存储元件被夹在沟道区域和控制栅极之间。在沟道区域中流动的电流是由在控制栅极和电荷存储元件处的场引起的得到电场的函数。随着日益增长的密度, 存储器晶体管被形成得越来越靠近在一起。则来自相邻电荷元件的场变为对受影响的单元的得到场的重要贡献者。相邻场取决于被编程到相邻者的电荷存储元件中的电荷。该干扰场自然是动态的,因为其随相邻者的编程状态而改变。因此,取决于相邻者的改变状态,受影响的单元可能在不同时间不同地进行读取。交织页的传统架构加剧了由相邻浮置栅极耦合引起的误差。由于偶数页和奇数页彼此独立地被编程和读,因此可以在一组条件下编程一页,而在完全不同的一组条件下读回该页,这取决于同时对中间的页发生了什么。随着密度的增加、需要更准确的读操作和对于多状态实施方式的对阈值窗的更粗略的划分,读误差将变得更严重。性能将受损害,且多状态实施方式中的可能容量受限制。美国专利公开No. US-2004-0060031-A1公开了具有大的读/写电路块以并行读和写对应的存储器单元块的高性能又紧凑的非易失性存储器器件。具体地,存储器器件具有将读/写电路块中的冗余降低到最小的架构。通过将读/写模块的块重新分布为并行操作同时以时间复用方式与充分更小组的公共部分交互的读/写模块核心部分的块,来实现空间上以及功耗的显著节省。具体地,由共享的处理器来进行在多个感测放大器和数据锁存器之间的读/写电路之中的数据处理。因此,存在对高性能和高容量非易失性存储器的普遍需求。具体地,需要具有增强的读和编程性能的紧凑非易失性存储器,其具有紧凑又有效的、且可高度通用于在读/写电路之间处理数据的改进的处理器。
发明内容
描述了包括非易失性存储器电路的非易失性存储器系统,该非易失性存储器电路具有沿多个字线和多个位线形成的非易失性存储器单元的阵列,其中所述位线形成每个可连接到对应的数据寄存器集的多个子集。根据一组方面,数据以二进制格式沿着第一字线被写到第一多个存储器单元中,所述第一多个存储器单元沿着对应的第一多个位线形成。 来自该第一多个存储器单元的数据被读入到与第一多个位线对应的寄存器集中并在所述寄存器集内重新布置,由此数据被布置到与第二多个位线对应的寄存器集中,该第二多个位线少于该第一多个位线。随后该重新布置的数据以多状态格式被从与该第二多个位线对应的寄存器写到沿第二字线的并沿着第二位线集形成的第二多个存储器单元中。根据另一组方面,沿着第一字线从第一多个存储器单元读取以每单元N位的格式存储的数据,其中N > 1,其中所述第一多个存储器单元沿着对应的第一多个位线而形成。 从第一多个存储器单元的每个读取的每单元N位的数据被存储到与第一多个位线对应的寄存器集的第一寄存器中,且来自该第一寄存器的每个的数据在相同寄存器集的N个其他寄存器中重新布置。然后,数据按在被存储在存储器上之前在存储器上被接收的顺序从这 N个其他寄存器中传输出去。根据另一组方面,一种非易失性存储器系统包括控制器电路和非易失性存储器电路,该非易失性存储器电路具有沿多个字线和多个位线形成的非易失性存储器单元的阵列。在控制器处接收数据,且生成该数据的对应纠错码。该数据和该对应纠错码被传输到存储器并以二进制格式沿第一字线被写。在该存储器内,该数据和该对应纠错码随后以多状态格式沿第二字线被重写,其中,该对应纠错码依赖于数据如何被布置为多状态格式而生成。在其他方面中,给出了具有存储器阵列的非易失性存储器电路,该存储器阵列具有沿着多个字线和多个位线形成的多个非易失性存储器单元。该非易失性存储器电路还
12具有可连接到所述存储器阵列的读电路,该读电路包括多个感测放大器,每个感测放大器可连接到位线中的一个或多个,以进行二进制读操作;以及写电路,可连接到所述存储器阵列,以进行多状态编程操作。该读电路和该写电路可访问数据寄存器堆叠,且该数据寄存器堆叠包括第一寄存器,可连接以接收感测放大器的输出,以接收并保存来自N个或更多位线的在第一字线上的二进制感测操作的输出,N是大于1的整数;N个第二寄存器,可连接到所述第一寄存器,用于在其之间传输内容;以及处理电路,可连接到第一和第二寄存器,由此与在第一寄存器中保存的在第一字线上的N个二进制感测操作的输出对应的值每个可以被传输到N个第二寄存器中的对应一个,以用在对第二字线上的单元的每单元N位的编程操作中。另外的方面包括一种非易失性存储器电路,其包括具有沿字线和位线形成的非易失性存储器单元的存储器阵列、可连接到该存储器阵列的读和写电路、以及可连接到该读和写电路用于向和从该存储器阵列传输数据的输入/输出数据总线。该读和写电路包括多个读/写堆叠,每个可连接到位线的对应子集,且每个堆叠具有感测放大器,可连接到位线的对应子集;堆叠总线;一组数据锁存器,连接到所述总线;堆叠处理电路,连接到所述堆叠总线,用于控制在数据锁存器和感测放大器之间的沿堆叠总线的数据传输;以及输入 /输出模块,连接到输入/输出总线和堆叠总线,以在其之间传输数据。该读和写电路还包括连接在读/写堆叠的子集的堆叠总线之间的内部数据总线,由此可以在读/写堆叠的子集中的不同子集的数据锁存器之间传输数据。其他方面给出了用于操作包括非易失性存储器电路的非易失性存储器系统的方法,该非易失性存储器电路具有沿多个字线和多个位线形成的非易失性存储器单元的阵列,其中所述位线形成每个可连接到对应的数据寄存器集的多个子集。该方法包括将以二进制格式沿着N个第一字线存储在沿着N个子集形成的第一多个存储器单元中的数据读到对应的N个数据寄存器集的每个数据寄存器集中的N个寄存器中,其中,N是大于1的整数。 该方法随后沿着本地数据总线在该N个数据寄存器集的寄存器之间混洗数据。另外,然后沿第二字线以每单元N位的格式将混洗的数据从这些寄存器写到存储器单元中。本发明的各种方面、优点、特征和实施例被包括在其示例例子的以下描述中,该描述应该与附图结合。在此引用的所有专利、专利申请、文章、其他出版物、文献和事物为了所有目的全部被引用附于此。至于在并入的出版物、文档或事物的任一个和本申请之间的术语的定义或使用中的任何不一致或冲突,应以本申请中的为准。
图1A-1E示意性地图示非易失性存储器单元的不同例子。图2图示了存储器单元的NOR阵列的例子。图3图示诸如图ID所示的存储器单元的NAND阵列的例子。图4图示了浮置栅极在任意时间可以存储的四个不同电荷Q1-Q4的源极-漏极电流和控制栅极电压之间的关系。图5示意性地图示了可由读/写电路经由行和列解码器访问的存储器阵列的典型布置。图6A是单个读/写模块的示意方框图。
图6B示出了由读/写模块的堆叠传统实现的图5的读/写堆叠。图7A示意性地图示了具有一堆划分的读/写堆叠的紧凑存储器器件,其中实施本发明的改进的处理器。图7B图示图7A所示的紧凑存储器器件的优选布置。图8示意性地图示了在图7A中示出的读/写堆叠中的基本组件的一般布置。图9图示了图7A和7B所示的读/写电路之间的读/写堆叠的一个优选布置。图10图示了图9所示的公共处理器的改进实施例。图IlA图示了图10所示的公共处理器的输入逻辑的优选实施例。图IlB图示了图IlA的输入逻辑的真值表。图12A图示了图10所示的公共处理器的输出逻辑的优选实施例。图12B图示了图12A的输出逻辑的真值表。图13概述了存储器上的折叠处理,其中,来自多个字线的以二进制格式写入的数据被重写为多状态格式。图14更详细地图示了折叠处理的方面。图15是适用于折叠操作的寄存器结构的方框图。图16A-C示出了数据在寄存器之间的重新布置的例子。图17是对于存储器的几个区块的图15的寄存器结构的方框图。图18在这些区块的子集的堆叠总线之间添加了本地数据总线。图19图示了几个二进制页的读处理。图20是如何在锁存器中内部地折叠数据的例子。图21A-M图示了使用图18的结构的数据折叠的示例序列。
具体实施例方式图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的相对两侧实现各种外围电路对存储器阵列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个位线操作。如果一页具有ρ = r*k个位线,则将存在 r个读/写堆叠400-1...... 400-r。并行地工作的整堆被划分的读/写堆叠400允许沿着一行的一块(页)的P个单元被并行被读取或编程。因此,对整行单元,将存在P个读/写模块。由于每个堆叠服务于 k个存储器单元,因此,在该堆中的读/写堆叠的总数由r = p/k给出。例如,如果r是在该堆中的堆叠的数量,则P = r*k。一个示例存储器阵列可以具有ρ = 512字节(512X8位), k = 8,因此r = 512。在一个优选实施例中,块是一连串(rim)的整行单元。在另一实施例中,块是行中的单元的子集。例如,单元的子集可能是整行的一半或整行的四分之一。单元的子集可以是一连串连续单元或每隔一个的单元,或每隔预定数量的单元。诸如400-1的每个读/写堆叠主要包含并行地服务于一段(segment) k个存储器单元的感测放大器212-1到212-k的堆叠。在美国专利公开号2004-0109357-A1中公开了优选的感测放大器,其全部公开被引用附于此。堆叠总线控制器410经由线路411向读/写电路370提供控制和定时信号。该堆叠总线控制器本身经由线路311而依赖于存储器控制器310。每个读/写堆叠400之间的通信受互连的堆叠总线431影响并由堆叠总线控制器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 相联系的η晶体管550的栅极。标记总线优选地被控制器310预充电,且在任何读/写堆叠对状态信号赋值(asserted)时将被拉低。图10图示了图9所示的公共处理器的改进实施例。公共处理器500包括用于与外部电路通信的处理器总线PBUS 505、输入逻辑510、处理器锁存器PLatch 520和输出逻辑 530。
输入逻辑510从PBUS接收数据,并将其输出到BSI节点,作为取决于经由信号线 411来自堆叠总线控制器410的控制信号而处于逻辑状态"1",“ 0",或"Z"(浮置) 之一的变换的数据。然后,设置/复位锁存器PLatch 520锁存BSI,得到作为MTCH和MTCH* 的一对互补输出信号。输出逻辑530接收MTCH和MTCH*信号,且在PBUS 505上输出取决于经由信号线 411来自堆叠总线控制器410的控制信号而处于逻辑状态"1"," 0",或"Z"(浮置) 之一的变换的数据。在任一时间,公共处理器500处理与给定存储器单元相关的数据。例如,图10图示了耦接到位线1的存储器单元的情况。对应的感测放大器212-1包括感测放大器数据出现的节点。在优选实施例中,该节点假设存储数据的SA锁存器214-1的形式。类似地,对应的数据锁存器集430-1存储与耦接到位线1的存储器单元相关的输入或输出的数据。在优选实施例中,该数据锁存器集430-1包括用于存储η位数据的足够的数据锁存器434-1,..., 434-η。当由一对互补信号SAP和SAN来使能传输栅极(transfer gate) 501时,公共处理器500的PBUS 505具有经由SBUS 422对SA锁存器214-1的访问。类似地,当由一对互补信号DTP和DTN来使能传输栅极502时,PBUS 505具有经由DBUS 423对数据锁存器集 430-1的访问。信号SAP,SAN,DTP和DTN被明确示出为来自堆叠总线控制器410的控制信号的部分。图IlA图示图10所示的公共处理器的输入逻辑的优选实施例。输入逻辑520接收在PBUS 505上的数据,且取决于控制信号,具有相同的、或反相的或浮置的输出BSI。输出BSI节点主要受传输栅极522或包括与Vdd串联的ρ晶体管5M和525的上拉电路、或包括与地串联的η晶体管5 和527的下拉电路的输出的影响。上拉电路具有分别由信号 PBUS和ONE控制的ρ晶体管5M和525的栅极。下拉电路具有分别由信号0NEB<1>和PBUS 控制的η晶体管5 和527的栅极。图IlB图示了图IlA的输入逻辑的真值表。该逻辑由PBUS和作为来自堆叠总线控制器410的控制信号的部分的控制信号ΟΝΕ、0ΝΕΒ<0>、0NEB<1>来控制。实质上,支持三个传输模式PASSTHR0UGH(直通)、INVERTED (反相)和FLOATED (浮置)。在BSI与输入数据相同的PASSTHR0UGH模式的情况下,信号ONE处于逻辑〃 1〃, 0ΝΕΒ<0>处于〃 0〃,且0NEB<1>处于逻〃 0〃。这将禁用上拉或下拉,但使能传输栅极522 将在PBUS 505上的数据传递到输出523。在BSI是输入数据的反相的INVERTED模式的情况下,信号ONE处于〃 0〃,0ΝΕΒ<0>处于〃 1〃,且0NE<1>处于〃 1〃。这将禁用传输栅极522。而且,当PBUS处于"0"时,下拉电路将被禁用,而上拉电路被使能,导致BSI处于"1"。类似地,当PBUS处于"1"时,上拉电路将被禁用,而下拉电路被使能,导致BSI 处于〃 0〃。最后,在FLOATED模式的情况下,可以使得信号ONE处于〃 1〃,0ΝΕΒ<0>处于"1〃且0NEB<1>处于〃 0〃来浮置输出BSI。为了完整性而列出FLOATED模式,尽管实践中并不使用它。图12A图示了图10所示的公共处理器的输出逻辑的优选实施例。来自输入逻辑520的在BSI节点处的信号被锁存在处理器锁存器PLatch 520中。输出逻辑530从 PLatch 520的输出接收数据MTCH和MTCH*,且取决于控制信号,在PBUS上输出为处于PASSTHROUGH、INVERTED或FLOATED模式。换句话说,四个分支用作PBUS 505的驱动器,有效地将其拉到HIGH(高),L0W(低)或FLOATED(浮置)状态。这通过四个分支电路、即PBUS 505的两个下拉和两个下拉电路来实现。第一上拉电路包括串联到Vdd的ρ晶体管531和 532,且能够当MTCH处于〃 0〃时上拉PBUS。第二上拉电路包括串联到地的ρ晶体管533 和534,且能够当MTCH处于〃 1〃时上拉PBUS。类似地,第一下拉电路包括串联到Vdd的η 晶体管535和536,能够当MTCH处于〃 0〃时下拉PBUS。第二下拉电路包括串联到地的η 晶体管537和538,能够当MTCH处于〃 1 “时下拉PBUS。本发明的一个特征是构造具有PMOS晶体管的上拉电路和具有NMOS晶体管的下拉电路。由于NMOS的拉动比PMOS的拉动强得多,因此在任何连接中,下拉将总是超过上拉。 换句话说,节点或总线可以总是默认为上拉或"1"状态,且如果期望,则可以总是通过下拉而翻转到〃 0〃状态。图12B图示了图12A的输出逻辑的真值表。该逻辑由从输入逻辑锁存的MTCH, MTCH*和作为来自堆叠总线控制器410的控制信号的部分的控制信号PDIR、PINV、NDIR, NINV 来控制。支持四个 PASSTHROUGH、INVERTED、FLOATED、和 PRECHARGE (预充电)。在FLOATED模式中,禁用所有四个分支。这通过使得信号PINV = 1、NINV = 0、 PDIR = 1、NDIR = 0——这些也是默认值——来实现。在PASSTHROUGH模式中,当MTCH = 0时,将需要PBUS = 0。这通过仅使能具有η晶体管535和536的下拉分支、除了 NWR = 1之外所有控制信号处于其默认值来实现。当MTCH = 1时,将需要PBUS = 1。这通过仅使能具有P晶体管533和534的上拉分支、除了 PINV = 0之外所有控制信号处于其默认值来实现。在INVERTED模式,当MTCH = 0时,将需要PBUS = 1。这通过仅使能具有ρ晶体管 531和532的上拉分支、除了 PWR = 0之外所有控制信号处于其默认值来实现。当MTCH = 1时,将需要PBUS = 0。这通过仅使能具有η晶体管537和538的下拉分支、除了 NINV = 1之外所有控制信号处于其默认值来实现。在PRECHARGE模式中,PDIR = 0和PINV = 0的控制信号设置将在MTCH = 1时使能具有ρ晶体管531和532的上拉分支,或在MTCH = 0 时使能具有P晶体管533和534的上拉分支。在2004年12月20日的美国专利申请号11/026,536中更完整地公开了公共处理器操作,其全部被引用附于此。将数据在存储器上折叠(on-memoir folding)成多状态格式上述各类非易失性存储器存在,且可以以二进制形式和多状态(或多级)形式来操作。一些存储器系统以二进制和多状态格式两者存储数据;例如,由于通常以二进制形式可以更快地且具有更少的临界容限(critical tolerance)地写数据,因此存储器可以在其从主机接收时初始地以二进制形式写数据,且稍后为了更大的存储密度而以多状态格式重写该数据。在这种存储器中,一些单元可以用在二进制格式中,其他的用在多状态格式中,或可以操作相同单元来存储不同数量的位。在美国专利号6,456,528、美国专利公开号 2009/0089481 和以下美国专利申请号 61/142,620、12/348,819,12/348, 825、12/348,891、 12/348,895和12/348,899中更详细地讨论了这种系统的例子。在此部分中描述的技术涉及在存储器器件本身上执行的"折叠(fold)"处理中将数据从二进制格式重写为多状态格式,而不需要向控制器传输回数据用于重定格式(reformat)。还可以以特殊方式使用存储器上折叠处理,以管理纠错码(ECC),其中当考虑到最可能的误差是在相邻状态之间的转
17变时,在存储器单元中的数据当按多状态形式存储时的相对状态被纳入考虑。该系统还可以使用不考虑状态信息且基于单页信息来管理ECC的ECC管理。(注意,即使ECC位被编程在相同的物理单元集上作为数据位,也分离地管理ECC。)更具体地,在示例实施例中,由于从控制器向存储器传递数据,因此按二进制格式沿存储器阵列的字线来写数据。随后,则将数据读到与该阵列相关的寄存器中,其中,数据被重新布置以便其可以按多状态形式被写回到阵列中。例如,取每单元三位的情况,三个字线的内容每个将被读到寄存器结构中,被重新布置以对应于将被存储在每个单元中的三位,且然后按每单元3位的格式被重写回到阵列的单个字线。在如此描述的布置中,然后, 单个字线的二进制数据内容在字线的第1/N上结束,且按每单元N位的格式存储。对于数据的最终的N位存储使用采用多状态与单元的关系的纠错码(ECC)的情况,可以在控制器中确定该ECC,且将其与对应数据一起传输,且在数据(和对应的ECC)按多状态格式重写之前按二进制格式存储。对于每单元3位的例子,可以用图13来图示将数据从二进制折叠为多状态或MLC 格式的思想。如由箭头示出,从控制器(或主机)接收数据,且将其按二进制格式写在存储器的块611中。明确示出块611的被写字线中的三个(613,615,617)。然后,沿块621的单个字线623按每单元3位的格式重写这三个字线的内容,在存储器本身上实现"折叠"处理。(更普遍地,如果按每单元N位的格式沿621写数据,则二进制内容的N个字线的内容将按此方式被折叠起来。该块611可以具体地被分配为仅以二进制模式操作或可以是可由例如可在物理页上存储的多个逻辑页的仅最低页以MLC模式操作的块。类似地,块621可以被分配为仅用于多状态操作,或也可以按二进制模式操作。在图14中示出关于示例实施例如何将数据从多个二进制格式字线折叠到单个字线中的某些细节。在图14的顶部的是三个字线613、615、和617,其每个被划分为沿着位线的相应三分之一的单元的三分之一的三个部分(a,b,c)(在此取为邻接的)。在字线623 上,第一字线(613a-c)的三个三分之一被布置到该字线的第一个第三上;类似地,第二二进制字线615被折叠且写到623的中间的三分之一,且来自二进制块617的第三字线被写到623的最后的三分之一。图14所示的处理以多种方式概括。这些中的第一方式在于按多状态格式每单元存储的状态的数量。虽然图13和14示出三页数据从三个物理页被重写为单个物理页上的多状态格式的情况,但是可以使用其他数量的存储密度。(例如,为了简化以下讨论,特别是涉及寄存器结构的讨论,每单元2位的情况通常将被用作示例实施例。)而且,虽然示出全部字线(在此每个对应于一页),在允许部分页操作的系统中,可以使用部分页。(以下讨论用于二进制存储的部分页的写入,且多状态部分页操作也是可能的,虽然因为这可能导致更多磨损(wear)、该磨损在多状态操作的通常更收紧的容限的情况下可能是有问题的而因此通常不是优选的。)另外,虽然图14示出其中沿字线的单元被划分为沿连续位线的组用于折叠的情况,但是可以使用其他布置。如上所述,对存储器本身进行折叠处理,以便一旦从控制器(或主机)传入数据且以二进制格式写入,其就被重写到阵列中而不将其传输出存储器。示例的实施例通过将多个二进制字线(例如613,615,617)的数据读入到与该阵列相关的对应的寄存器(或寄存器)中、在这些寄存器中被重写布置为多状态编程所需的形式、然后重写到多状态块的单个字线(例如623)中来实现此。因此,在图14的布置下,在相同字线上、但沿不同位线的几个(在此为3个)单元的二进制内容被读入到相关数据寄存器中,然后被重写布置以与在对应单个位线上的单个单元的多个位对应,其中数据可以从该对应单个位线被写入。可以在美国专利7,170,802 ;7, 420, 847 ;7, 158,421 ;和 7, 206, 230 ;以及美国专利申请号12/051,462以及12/051,492中找到关于可以结合以下描述的技术使用的寄存器结构的更多细节。为了简化,将主要关于每单元2位的例子来讨论该寄存器结构。图15是将用于给出示例寄存器结构的一些细节的方框图,且图16A-C图示可以如何将数据从二进制重新布置为此结构内的2位格式。图15粗略地对应于以上关于图8-10讨论的读/写堆叠,但是强调了对于在每单元2位的背景下的当前讨论更相关的一些元件。感测放大器SA 701可连接到底部的多个位线(BLO-BLn),比如BL0703。每个位线可以使得其内容沿对应的堆叠总线(SBUSO-SBUSm)而传输出到堆叠之一,比如沿着SBUS0705到控制该总线的处理电路(SBUS0705的TOOX 707)。 如在以上列出的参考文献中详细讨论的,内容可以从YBOX 707沿总线DBUS 717传输到较低位数据锁存器LDL 713、较高位数据锁存器UDL 711或数据锁存器)(DL 709中。在示例实施例中,可以在》)L 709以及UDL 711和LDL 713之一之间传输内容,但仅)(DL 709可以向或从外部总线XBUS 715传输数据。该布置可以与不同数量的位线(在BLn中的η的值)和不同数量的寄存器堆叠(在SBUSm中的值m) —起来使用,其中,m和η可以不同。原则上, 可以使用任何整数值,但主要设计该布置为η是m的某个整数倍,其中,当该整数大于1时, 每个寄存器将具有条目的(n/m)级或层(tier),以便存储被分配给沿堆叠总线的给定寄存器集的多个位线的每个的感测放大器结果。图16A-C使用n = 64且m = 8的例子,以便层的数量是(n/m) =8。虽然可以使用η和m的各种值,但是这些数量(基于用于多状态存储的状态的数量)的某些值(或比率)更容易允许进行折叠处理,如以下讨论的。图16A-C图示可以如何在与持有二进制块611(图13)和多状态块621两者的与阵列相关的寄存器内执行折叠处理的例子。在该例子中,存在八个》)L/UDL/LDL寄存器集 (m = 8),每个具有在图16B-C中被标为T0-T7的八个层(n/m = 8),且八列对应于每个)(DL/ UDL/LDL集上的值。因此,每行是1字节宽。图16A概念地示出如何执行N = 2折叠一旦将数据从字线读出到》)L 709中,一半的行被传输到LDL 713中,且另一半被传输到UDL 711 中,从那里可以将其沿字线传输为较低位和较高位。因为这将仅一半地填充LDL和UDL的可用行,因此》)L可以被再次被填充,且使得其内容在编程开始之前传输到LDL和UDL中。 注意,因为》)L中的行的数量被划分为两半用于折叠处理,因此如果)(DL具有偶数数量的层,则这是优选的。更通常,如果要将数据编程为N位格式,则优选寄存器行的数量是N的倍数;例如,对于N = 3,可以存在9或6行,而对于N = 4,可以再次使用8行。对于折叠处理,则来自》)L的第1/N行将被传输出到对应于N多位的每个的寄存器。可以以多种方式实现将数据从)(DL折叠到LDL和UDL中。在图16B中,这通过按页将数据读到》)L寄存器中、在这之后将偶数层的字节大小的行放入LDL的顶部四层中并将奇数层的字节大小的行放入UDL的顶部四行中来实现。为了填充物理页用于2位编程,在图 16C中,来自第二二进制页的数据被从感测放大器读到)(DL中,将偶数层再次被传输到LDL 中,且奇数层被传输到UDL中。可以根据各种指针方案、比如在美国专利号7,170,802中描述的方案、或许是仅仅按顺序跨越所有位线的指针的最简单版本来实现将数据从位线传输到感测放大器中。一旦数据在寄存器中被折叠为多状态格式,则就可以将其编程回到存储器阵列的块中,其中,多状态编程的细节可以如以上列出的各种参考文献的任一个中那样。 当读回数据时,数据可以被展开(unfold)以倒转图16A-C的处理,数据被读出到)(DL寄存器中,然后被展开到LDL和UDL寄存器中,以便然后可以将其从存储器传输回去。然后,可以以其从主机初始地移动的相同顺序或数据结构来将数据从存储器移回。(注意,通过折叠可能改变逻辑到物理地址映射,且因此这需要解决。)回到图13,在以上描述的折叠处理中,在寄存器结构中将沿字线613的数据页折叠起来以被编程到字线623的仅三分之一上,如图14示意所示。(应该注意,图13和图14 是用于N = 3的实施例的。)对沿字线615和617的数据也进行类似折叠。以此方式,来自对应于位线的三个不同数据锁存器的二进制数据沿单个字线最终被以N =3的多状态形式写在字线623的单个位线上的单个单元上。或者,对于多个字线的每个的沿着单个位线的单元可以被映射到沿字线623的该相同位线上的单个单元上,而不用在先前段中描述的折叠处理;但是,当以多状态格式所写的数据使用采用在单元上存储的多状态之间的物理关系的纠错码(ECC)时可以有效地使用在此部分中给出的这类存储器上的折叠布置。即使使用更传统的ECC编码方法,在此给出的技术也可以增强系统的ECC能力。当在存储器单元中出现误差时,一些误差比其他的更有可能。例如,在其中数据状态对应于在浮置栅极上存储的电荷量的浮置栅极存储器(见以上图4)的情况下,如果在单元中发生误差,则相比于更远的状态,数据状态更可能偏移到相邻状态。存储器器件的物理特征的这种知识可以被并入纠错码(ECC)中。例如,在单元中可能发生的不同可能的误差转变可以根据其相对物理似然性而被加权,且这些加权因子可以被并入ECC计算中。以下, 这类ECC将被称为"强ECC"或"SECC"。关于这些主题的另外的背景细节、包括考虑到单元的各种状态之间的关系的ECC、以及在纠错码中可以如何使用它,可以在以下美国专利、 专利公开和专利申请号中找到:2009/0094482 ;7,502,254 ;2007/0268745 ;2007/0283081 ; 7,310,347 ;7,493,457 ;7,426,623 ;2007/0220197 ;2007/0065119 ;2007/0061502 ; 2007/0091677 ;2007/0180346 ;2008/0181000 ;2007/0260808 ;2005/0213393 ;6,510,488 ; 7,058,818 ;2008/0244338 ;2008/0244367 ;2008/0250300 ;和 2008/0104312。在优选实施例中,当将数据从二进制重写为多状态格式时,将使用状态独立的强 ECC(SECC)。为了计算SECC,系统需要知道一旦数据以多状态格式写如则将如何存储该数据,且为了知道这个,所有该数据需要可用。在在此给出以及在图13和14中概述的折叠布置中,在数据进来时,其沿字线613以二进制格式被写如,其后是在字线615上的下一逻辑页,等等,遍历剩余数据集。每个字线具有在折叠之后将沿物理多状态页的1/N被写为N位多状态格式的所有数据;例如,在图14中,要在字线623的左边1/3中存储的所有数据是字线613。根据在此给出的另一方面,在控制器(或主机)中计算与如何将逻辑页随后存储为多状态形式对应的强ECC,且将其与数据一起传输,且以二进制形式写入。因此,在图13 中,例如,在字线613上的数据将已经具有与该逻辑页的数据将如何被存储在字线623的一部分上对应的SECC。注意,在二进制块中存储的用户数据的逻辑页将因此以二进制格式被写入,但与该用户数据一起被写到物理页(或字线)上的对应ECC将基于其最终的多状态设置,即使其还没有以此方式被写入。相反,如果N个位线沿N个字线被写为二进制格式,然后在维持位线对应性的单个
20字线上以N位格式重写,而不用折叠操作(例如,对于3个不同二进制块字线的在相同位线上的3个单元最终在多状态块621中的相同单元中),则控制器不能计算强ECC,除非其同时具有所有N个逻辑页。因此,其将需要在将它们写为二进制形式之前积累它们,去除在数据被接收时以二进制格式快速写数据的能力;或者需要以二进制格式进行N个逻辑页的第一次写,随后回来将这些页读回到控制器,且计算对应的SECC,将它们以二进制格式与 SECC 一起重写,且然后将该数据和SECC写在多状态块中。虽然该后一布置将仍然允许快速初始二进制写,但是其将需要额外的读和传输回到控制器,其后传输到存储器以及第二二进制写。注意,除了在该处理中涉及的额外传输时间以外,在每N个逻辑页最终以多状态格式存储之前,其还将经历二进制写的字线的数量加倍(从N到2N)。在二进制块中使用许多 (2N)个字线来在每单元N位的块上写一个字线的另一缺点是,闪存的可靠性可能受二进制块的可靠性限制;而且,对于二进制编程使用太多块将留下更少的存储器容量来存储用户数据。如上所述,在数据从主机进来时,可以以二进制格式来写该数据,在二进制块中积累,直到最终在多状态块中重写。但是,数据分组将以通常不对应于整数数量的逻辑页的各种大小从主机到达。当主机负载少于整个逻辑页时,优选实施例仍然可以将该数据传输到存储器,且使用部分页编程将其编程到二进制块中而没有ECC。控制器还可以为该部分页保持积累的数据,直到其具有对应于整个逻辑页的量,基于该整个页计算强ECC,然后写该整个积累的逻辑页的SECC,此最后的组块(chunk)被编程进去,以填充在字线上的逻辑页。 二进制页内的SECC位置可能是重要的,以便可以留下一些位空间用于最后的编程以填充所有SECC空间。例如,在一些情况下,主机可能不具有足够的数据来填充整页。在该情况下,可以首先与二进制ECC码一起在二进制块中写现有的部分页数据。当接下来的数据进来时,编程的二进制部分页可以被读回,且与进来的数据一起形成整页,且与SECC—起被编程到另一二进制字线。还可能需要考虑缺陷作为折叠处理的部分。具体地,由于折叠处理从二进制块得到多个位线上的数据,且将它们折叠到单个位线上,因此存储器阵列的源(二进制)块的任何列缺陷将反映在折叠处理中。(在美国专利7,170,802中给出缺陷列的讨论和用于处理其的方法。)例如,在一个布置中,返回参考图14,如果正跳入缺陷列、例如613a中,则要与坏列一起折叠到字线623上的在61 和613c中的对应列在61 和613c被写时将需要被跳过。在二进制页编程期间,应该跳过二进制块中的坏列。如果在第1/N页中存在坏列,则二进制页数据应该在二进制页编程中跳过N位。将仅需要在二进制页编程中注意在字线的其他区域中的另外的坏列。本地总线在数据折》中的使用此部分给出向上述种类的存储器结构添加更多数据传输能力的结构。返回参考以上的图15,这示出在示例实施例中使用读/写堆叠之一。在该部分中给出的实施例添加了连接到不同堆叠的S总线705的本地内部数据总线,以便可以在不同堆叠的寄存器之间传输数据。在读出二进制数据、然后以每单元3位将其编程回去的示例实施例中,读/写堆叠被划分为三组,其中,每组中的堆叠的内部堆叠总线通过这样的本地总线而连接。如上所述,存储多状态(MLC)数据的页的编程被重新布置,以便来自一个二进制页的数据分布到不同MLC页。如先前所述,在现有技术布置中,控制器读出数据,在控制器中重新布置数据,然后将数据写回到存储器用于编程。此部分和先前部分给出通过在存储器内部重新布置数据来消除将数据传输出并传输回到存储器中的需要的技术,由此改进存储器性能。上述的另一益处是,该布置可以免除系统在编程强ECC(SECC) 二进制页之前用标准ECC来编程二进制页,从而以2为因子减少对二进制缓存块的容限需求。在美国专利申请号12/478,997中进一步展开的先前部分中,诸如图4所示的折叠数据的方法不对应于控制器通常如何编码数据。在该部分中介绍的结构允许以对控制器来说可能更有益的方式来布置数据。稍进一步回顾先前呈现的方法,不使用内部数据折叠机制,为了使用强ECC(SECC) 系统将二进制数据重写为多状态格式,首先使用标准或轻ECC(LECC)页首先将来自主机的数据写为二进制格式。一旦存在足够的LECC页,则将数据读回到控制器,控制器将把LECC 页转换为SECC 二进制页。一旦存在足够的SECC 二进制页,则二进制页被"折叠"到MLC 页中。例如,对于每单元3位的多状态格式,需要3个SECC 二进制页以便折叠成一个3位的页。类似地,对于每单元4位,需要4个SECC 二进制页以便折叠为一个D4页。该机制被称为背景内部折叠(Background Internal Folding,BGIF)。先前的部分给出了其中可以对存储器进行折叠而不将数据传输出到控制器的实施方式。相反,在堆叠总线(SBus和DBus 717,图15)内进行折叠。当前部分介绍了在一组少量读/写堆叠的组内的本地总线,以便可以在不同堆叠之间混洗(shuffle)数据,而不需要数据输入或数据输出操作。这种布置可能在寄存器中使用的级或层的数量(如以上参考图15和16所述)不可被MLC状态的数量除尽时(例如,对于MLC模式下的8个层和每单元3位的存储)特别有用。图17示出对于情况M= 15的读/写堆叠中的几个,其每个对应于图15,但为了此讨论的目的,已经上下颠倒这些元件,图15的感测放大器SA 701未明确示出,且现在包括连接到输入/输出总线(也未在此示出,但参见以上的图8-10)的输入/输出模块YCOM 821。不同于图15的锁存器对UDL 711和LDL 713,图17中的每个堆叠具有三个锁存器ADL 81UBDL 813和⑶L 815的集,且当前讨论将基于其中多级写将存储每单元3位的实施例。 存储器的位线被划分为部分(section),每个部分具有其自己的堆叠。例如,每个堆叠可以负责128个位线,对应于图15中的N= 128。图17示出了这些部分中的三个(在此,部分 0、1、2)的堆叠,但存储器通常将具有多得多的部分。在3位MLC设计中,通常将存在通过 DBUS/XBUS 817/819而连接到一起的示出的4个数据锁存器或更多。如之前讨论的,阵列的数据传输操作是通过YBOX 807的。XBUS 819也连接到YCOM 821,用于数据输入和数据输出操作。在该布置下,数据不能穿过不同部分而传输。图18重复类似编号的图17的元件,但添加了在多个读/写堆叠的子集的堆叠总线之间的本地数据总线,为存储器给出在不同部分或列之间传输数据的能力。这增加了可以没有控制器的干涉地在存储器本身内重新布置和混洗数据的方式。在示例实施例中,该本地数据总线连接三个堆叠的堆叠总线。(再次,仅示出三个部分,但将贯穿三个堆叠的子集的每个来重复此布置。)该本地总线在图18中示出为LBUS 951,其宽度(在此为16位)匹配于堆叠总线的宽度。信号XSWO,XSffl, XSW2是独立的控制信号,像在953-0处的SO、在953-1处的Sl 和在953-2处的S2那样,这些信号选择如何在不同部分之间连接总线(XBUS和LBUS)。信号XSO,XS1,XS2也是控制哪个部分的)(DL可以从其他部分接收数据的独立信号。通过控制这些信号的定时,来自一个部分的数据可以被传输到另一部分中。在部分之间的水平数据传输能力与先前描述的在部分内的寄存器之间的垂直数据传输能力组合为存储器给出了利用锁存器ADL 811, BDL 813,⑶L 815, XDL 809的数据传输和重新布置的更多灵活性。 (虽然未在图18中明确示出,但是TOOX 907和堆叠的感测放大器通常还包括锁存器。)现在给出当使用图18的布置将三个二进制页按每单元3位的格式重写到存储器的一个(物理)页时的期望的数据重新布置的例子。为了编程3位的数据页,需要从二进制块中读取三页二进制数据并将其放入AD、BDL和CDL中,如图19所示。从顶部线开始,处理通过在感测放大器处感测第一二进制页(页0)而开始,且在)(DL锁存器中锁存结果。部分0、1、2 (SO、Si、S2)的结果被标记为L0、MO、UO,对应于它们要被重新布置到的较低、中间和较高。然后,将它们从》)L寄存器传输到每个堆叠的ADL寄存器中。随后是第二二进制页(页1),且其被存储在BDL中,且第三二进制页(页幻从)(DL传输到⑶L。在处理的末尾,三个部分的每个的ADL、BDL和⑶L锁存器的内容在图20的左侧示出。在进一步讨论图20之前,重新考虑折叠处理。返回参考图14,这示出其中二进制页、例如对应于字线613的页0被划分为三等分、以便当页在折叠且在字线623上以3位MLC 格式重写时、部分613a最终在较高页上、中间部分61 最终在中间页上、且613c最终在较低页上的折叠操作。对于给定的单元,在图14的折叠布置下,虽然较高、中间和较低位来自相同字线,但它们所来自的二进制单元由字线的三分之一分离。这通常不是控制器如何编码该数据。更普通地,控制器处理以一个字节或几个字节或字为单位编码的数据。例如,考虑当控制器以2字节为单位编码数据时的情况。由于此,将优选将二进制字线切分为2字节单位,而不是三等分,且基于这些更小的单位来折叠该页。因此,当被折叠时,N = 3字线 623的第一(物理)2字节片段将使得其较高、中间和较低字节分别取自二进制字线613的第一、第二和第三个2字节,且类似地将三个二进制字线的剩余折叠为两个字节单位。可以通过使用LBUS 951来实现基于存储器单元的更小单位的此折叠。该更精细粒度(grained)的折叠也有助于促进通过强ECC对数据的编码。为了用 SECC来编码数据,控制器需要知道要以MLC格式在单元上存储的所有数据的最终数据值。 当以三等分折叠二进制页时,控制器将不具有意图用于给定的MLC单元的所有数据,直到其来自二进制页的最后三分之一的位到来。如果而是以更小单位折叠数据,则要折叠到给定MLC单元中的所有数据更紧密靠近地到达,由此促进SECC生成处理。(再次,这是在3位 MLC例子的背景下。)返回图20,在以上参考图19所述的二进制的结尾处,部分0、1、2(S0、S1、S2)的被读入到寄存器ADL、BDL和⑶L的数据如图20的左侧示出。在右侧示出了在折叠处理的结尾处期望的结果,且每个部分的较低、中间和较高数据现在分别在该部分的ADL、BDL和CDL 寄存器中。通过使用连接三个部分的如图18所示的LBUS 951在各部分之间传输数据来进行元件的调换。二进制页0、1、2的剩余将类似地被读出到其他部分的寄存器中,且类似地在部分的每个子集中被折叠。一旦已经折叠了数据,则其可以按MLC块被编程到字线中,作为较低、中间和较高页。进行该数据折叠的可能序列之一在图21A-M中示出。在读取二进制页数据之后, 数据锁存器具有如图21A所示的初始数据,其中,)(DL和感测放大器(SA)的锁存器仍保持读取的最后页的数据。在第一对步骤中,通过使用在内部堆叠总线之间的本地内部数据总线(LBUS)的部分内(intra-section)传输,将UO从部分2的ADL移动到部分0的)(DL锁存器(图21B),且将Ul从S2的BDL锁存器移动到部分1的)(DL锁存器。由于对所有部分较高页单元在》)L中完成,因此它们被上移到CDL中(图21D)。在在此使用的示例序列中, 锁存器在堆叠处理电路(YBOX)中,在图21E中,BDL锁存器的内容被移动到其中。然后与中间页对应的数据从部分1的ADL(图21F)、部分1的SA锁存器(图21G) 和部分1的BDL锁存器(图21H)移动到)(DL中。然后,中间页被上移到BDL锁存器(图 211)。然后,与较低页对应的数据从部分0的感测放大器锁存器(图21J)、部分0的TOOX 锁存器(图21K)和部分0的ADL锁存器(图21L)移动到)(DL中。然后,较低页被上移到 ADL锁存器(图21M)。在这些步骤之后,数据被如此重新布置,且其后可以被编程到每单元3位的MLC块中。由于不需要从存储器向控制器移出和移入数据,因此再次改善了写性能,对于控制器更有利地对数据编码。在此处给出的例子中,使用三个部分来简化本发明的描述;更通常的, N个部分可以被分组在一起,其中N可以是2、3、4、5等。在该组内,数据可以从一个部分传输到另一部分,且使用各部分的堆叠总线之间的内部总线在各部分的这些子集的每个中重新布置。虽然用于该讨论的示例实施例是对于3位较低/中间/较高页数据折叠,但可以通过使用这些技术的其他实施例在闪存内部类似地实现不同的数据重新布置,来改善存储器性能。Mrk虽然已经关于某些实施例描述了本发明的各种方面,但是理解,本发明被授权在所附权利要求的全部范围内进行保护。
2权利要求
1.一种操作非易失性存储器系统的方法,该非易失性存储器系统包括非易失性存储器电路,该非易失性存储器电路具有沿多个字线和多个位线形成的非易失性存储器单元的阵列,所述位线形成每个可连接到对应的数据寄存器集的多个子集,所述方法包括以二进制格式沿着第一字线向第一多个存储器单元写数据,所述第一多个存储器单元沿着对应的第一多个位线形成;将来自该第一多个存储器单元的数据读入到与第一多个位线对应的寄存器集中; 在所述寄存器集内重新布置来自该第一多个存储器单元的数据,由此将数据布置到与第二多个位线对应的寄存器集中,该第二多个位线少于该第一多个位线;以及随后以多状态格式将来自与该第二多个位线对应的寄存器的重新布置的数据写到沿第二字线的并沿着第二位线集形成的第二多个存储器单元中。
2.根据权利要求1的方法,其中,所述多状态格式是每单元N位的格式,N是大于一的整数,且该第一多个位线的数量是该第二多个位线的数量的N倍。
3.根据权利要求2的方法,还包括在沿着第一字线写进一步的数据之后,且在沿着第二字线写重新布置的数据之前以二进制格式将另外的数据写到字线中的(N-I)个另外的字线中,将来自字线中的所述(N-I)个另外的字线的进一步的数据读入到所述寄存器集中,以及在所述寄存器集内重新布置该进一步的数据,其中,沿着第二字线写重新布置的数据还包括同时沿该第二字线写重新布置的进一步的数据。
4.根据权利要求1的方法,其中,所述存储器阵列由多个各自可擦除的块形成,以及该第一字线在擦除块的第一个中,且该第二字线在擦除块的第二个中。
5.根据权利要求1的方法,其中,所述非易失性存储器系统还包括控制器电路,所述方法还包括在沿着第一字线写数据之前,将数据从控制器电路传输到存储器电路。
6.一种非易失性存储器电路,包括存储器阵列,具有沿着多个字线和多个位线形成的多个非易失性存储器单元; 读和写电路,可连接到所述存储器阵列;以及输入/输出数据总线,可连接到所述读和写电路,用于向和从所述存储器阵列传输数据,其中,所述读和写电路包括多个读/写堆叠,每个可连接到相应的位线的子集,且每个堆叠具有 感测放大器,可连接到位线中的对应子集; 堆叠总线;数据锁存器集,连接到所述总线;堆叠处理电路,连接到所述堆叠总线,用于控制在数据锁存器和感测放大器之间的沿堆叠总线的数据传输;以及输入/输出模块,连接到输入/输出总线和堆叠总线以在其之间传输数据;以及本地内部数据总线,连接在多个读/写堆叠的子集的堆叠总线之间,由此可以在多个读/写堆叠的子集中的不同子集的数据锁存器之间传输数据。
7.根据权利要求6的非易失性存储器电路,其中,所述读和写电路可连接到所述存储器阵列以对其进行多状态编程操作。
8.根据权利要求7的非易失性存储器电路,其中,所述多状态格式是每单元N位的格式,且所述子集中的读/写堆叠的数量是N。
9.根据权利要求7的非易失性存储器电路,其中,所述读和写电路可连接到所述存储器阵列以对其进行二进制读操作。
10.根据权利要求9的非易失性存储器电路,其中,所述存储器阵列包括以多状态格式存储数据的一个或多个块和以二进制格式存储数据的一个或多个块。
11.根据权利要求9的非易失性存储器电路,其中,每个读/写堆叠的数据寄存器集包括第一寄存器,可连接以接收感测放大器的输出,以接收并保存来自N个或更多位线的在第一字线上的二进制感测操作的输出,N是大于一的整数;以及N个第二寄存器,可连接到所述第一寄存器,用于在其之间传输内容。
12.根据权利要求11的非易失性存储器电路,其中,所述堆叠总线和所述内部数据总线具有L字节的宽度,其中L是正整数。
13.根据权利要求11的非易失性存储器电路,其中,所述感测放大器和堆叠处理电路包括数据锁存器。
14.一种操作非易失性存储器系统的方法,该非易失性存储器系统包括非易失性存储器电路,该非易失性存储器电路具有沿多个字线和多个位线形成的非易失性存储器单元的阵列,所述位线形成每个可连接到对应的数据寄存器集的多个子集,所述方法包括沿第一字线从第一多个存储器单元读取以每单元N位的格式存储的数据,其中,N大于 1,且所述第一多个存储器单元是沿着对应的第一多个位线形成的;将从第一多个存储器单元的每个读取的每单元N位的数据存储到与该第一多个位线对应的寄存器集中的第一寄存器中;在相同寄存器集内的N个其他寄存器中重新布置来自每个第一寄存器的数据;以及按在存储器上存储数据之前在存储器上接收数据的顺序,从与该第一多个位线对应的寄存器集中的N个其他寄存器传输出数据。
15.根据权利要求14的方法,其中,所述非易失性存储器系统还包括控制器电路,且其中,传输出数据包括从存储器电路向控制器电路传输数据。
16.根据权利要求14的方法,其中,所述非易失性存储器系统还包括控制器电路,且其中,所述方法还包括在读取数据之前按所述顺序,从控制器电路向存储器电路传输数据; 以及将数据存储在所述存储器电路上。
17.根据权利要求16的方法,其中所述存储包括以二进制格式将数据存储在存储器电路上;以及随后在第一多个存储器单元中以每单元N位的格式存储数据。
18.根据权利要求14的方法,其中,所述第一多个存储器单元对应于物理页的第1/N, 且数据对应于逻辑页。
19.一种操作非易失性存储器系统的方法,该非易失性存储器系统包括控制器电路和非易失性存储器电路,该非易失性存储器电路具有沿多个字线和多个位线形成的非易失性存储器单元的阵列,所述方法包括 在所述控制器处接收数据; 在所述控制器内生成数据的对应纠错码; 将该数据和该对应纠错码输出到所述存储器; 以二进制格式,沿第一字线写该数据和该对应纠错码;在该存储器内,随后以多状态格式沿第二字线重写该数据和该对应纠错码,其中,所述对应纠错码依赖于如何将数据布置为多状态格式而生成。
20.根据权利要求19的方法,其中,所述存储器阵列由多个各自可擦除的块形成,以及第一字线在擦除块的第一个中,且第二字线在擦除块的第二个中。
21.根据权利要求19的方法,其中,所述多状态格式是每单元N位的格式,N是大于1 的整数,所述方法还包括在沿着第一字线写数据和对应纠错码之后,且在沿着第二字线重写数据和对应纠错码之前以二进制格式,沿字线中的(N-I)个另外的字线写进一步的数据和对应纠错码,其中,所述重写包括以多状态格式沿第二字线同时重写该进一步的数据和该进一步的数据的对应纠错码,所述进一步的数据的对应纠错码依赖于如何将该进一步的数据布置为多状态格式。
22.—种非易失性存储器电路,包括存储器阵列,具有沿着多个字线和多个位线形成的多个非易失性存储器单元; 读电路,可连接到所述存储器阵列,包括多个感测放大器,每个感测放大器可连接到所述位线中的一个或多个,以进行二进制读操作;写电路,可连接到所述存储器阵列,以进行多状态编程操作;以及该读电路和该写电路可访问的数据寄存器堆叠,包括第一寄存器,可连接以接收感测放大器的输出,以接收并保存来自N个或更多位线的在第一字线上的二进制感测操作的输出,N是大于1的整数;N个第二寄存器,可连接到所述第一寄存器,用于在其之间传输内容;以及处理电路,可连接到第一和第二寄存器,由此与在第一寄存器中保存的在第一字线上的N个二进制感测操作的输出对应的值每个可以被传输到N个第二寄存器中的对应一个, 以用在对第二字线上的单元的每单元N位的编程操作中。
23.根据权利要求22的非易失性存储器电路,其中,所述第一寄存器可以接收并保存来自M倍的N个位线的在第一字线上的二进制感测操作的输出,且所述处理电路能够将M 个值传输到每个第二寄存器,以用在第二字线的沿M个位线的M个单元的同时的每单元N 位的编程操作中。
24.一种操作非易失性存储器系统的方法,该非易失性存储器系统包括非易失性存储器电路,该非易失性存储器电路具有沿多个字线和多个位线形成的非易失性存储器单元的阵列,所述位线形成每个可连接到对应的数据寄存器集的多个子集,所述方法包括将以二进制格式沿着第一字线存储在沿着N多个子集形成的第一多个存储器单元中的数据读到对应的N个数据寄存器集的每个中的第一寄存器中;以及随后沿本地内部数据总线向该N个寄存器集的第一寄存器集中的寄存器中传输来自其他(N-I)个寄存器集的第一寄存器的数据。
25.根据权利要求M的方法,还包括随后以每单元N位的格式沿第二字线,将来自N个数据寄存器集的第一寄存器集的寄存器的数据写到沿着与该N个数据寄存器集的第一寄存器集对应的位线的存储器单元中。
26.根据权利要求M的方法,其中,所述存储器阵列由多个各自可擦除的块形成,以及该第一字线在擦除块的第一个中,且该第二字线在擦除块的第二个中。
27.根据权利要求M的方法,其中,所述非易失性存储器系统还包括控制器电路,所述方法还包括在沿着第一字线在第一多个存储器单元中写数据之前,从控制器电路向存储器电路传输数据。
28.根据权利要求27的方法,还包括在从控制器电路向存储器电路传输数据之前在所述控制器处接收数据;在该控制器内生成该数据的对应纠错码,其中该对应纠错码依赖于数据在被编程到第二字线中时如何被布置为多状态格式而生成;以及其中,该对应纠错码与该数据同时被传输到存储器并以二进制格式沿第一字线被写。
29.一种操作非易失性存储器系统的方法,该非易失性存储器系统包括非易失性存储器电路,该非易失性存储器电路具有沿多个字线和多个位线形成的非易失性存储器单元的阵列,所述位线形成每个可连接到对应的数据寄存器集的多个子集,所述方法包括将以二进制格式沿着N个第一字线存储在沿着子集中的N个子集形成的存储器单元中的数据读到对应的N个数据寄存器集的每个数据寄存器集中的N个寄存器中,其中,N是大于1的整数;随后使用连接该N个数据寄存器集的本地内部数据总线,在该N个数据寄存器集的不同寄存器集的寄存器之间混洗数据;以及随后以每单元N位的格式,沿第二字线写来自该N个数据寄存器集的混洗的数据。
30.根据权利要求四的方法,其中,所述存储器阵列由多个各自可擦除的块形成,以及该第一字线在擦除块的第一个中,且该第二字线在擦除块的第二个中。
31.根据权利要求四的方法,其中,所述非易失性存储器系统还包括控制器电路,所述方法还包括在沿着第一字线写数据之前,从控制器电路向存储器电路传输数据。
32.根据权利要求31的方法,还包括在从控制器电路向存储器电路传输数据之前在所述控制器处接收数据;在该控制器内生成该数据的对应纠错码,其中该对应纠错码依赖于数据在被编程到第二字线中时如何被布置为多状态格式而生成;以及其中,该对应纠错码与该数据同时被传输到存储器并以二进制格式沿第一字线被写。
全文摘要
描述了在多状态非易失性存储器中读和写数据的技术。数据以二进制格式被写入存储器中,被读入到存储器上的数据寄存器中,且在寄存器内被″折叠″,然后以多状态格式被写回到存储器中。在折叠操作中,来自单个字线的二进制数据被折叠为多状态格式,且当以多状态形式重写时仅被写到另一字线的一部分中。还描述了其中数据被″展开″的对应的读技术。该技术还允许在控制器上用纠错码(ECC)编码数据,该控制器考虑到其在将数据传输到存储器以便以二进制形式写之前的最终多状态存储。还给出了允许这种″折叠″操作的寄存器结构。一组实施例包括本地内部数据总线,其允许在不同读/写堆叠的寄存器之间传输数据,其中,该内部总线可以用在内部数据折叠处理中。
文档编号G11C16/10GK102460584SQ201080024547
公开日2012年5月16日 申请日期2010年5月11日 优先权日2009年6月5日
发明者A.K-T.马克, B.刘, C.Q.特林, E.J.塔姆, K-H.金, 李艳, 王琪铭 申请人:桑迪士克科技股份有限公司