具体实施方式
在下文中,将参照所附附图通过解释本发明的实施例而详细描述本发明。但是,本发明可以以各种形式实施并且不应当被解释为限于在此展示的实施例;而是,这些实施例被提供从而本公开将会是彻底和完整的,并且任一本领域普通技术人员能够完全理解本发明的构思。在此所用的术语是为了描述特定的实施例的目的而不是为了限制本发明。如在此所用的,单数形式的“一”、“一个”、以及“该”也意欲包括复数形式,除了上下文明确指示的除外。
依照本发明实施例的非易失性存储器设备可以指一种甚至当电源切断时还能保留数据的存储器设备。例如,该非易失性存储器设备可以包括闪存存储器、电可擦除可编程只读存储器(EEPROM)、相变随机存取存储器(PRAM)、磁随机存取存储器(MRAM)、或电阻随机存取存储器(PRAM)。闪存还可以指浮动门存储器、电荷捕捉存储器、或二氧化硅氮氧化硅(SONOS)存储器,并且上述名字不限制实施例的范围。
图1A是依照本发明的实施例的在存储器1中写入数据的系统的框图。
主机设备2可经由地址输入线3和数据输入线4连接至包含NAND单元阵列的存储器1。如果主机设备2经由数据输入线4和地址输入线3将要被写的数据和数据的写入位置传送至存储器1,则该数据可被写入存储器1。在这种情况下,地址输入线3和数据输入线4中的每个可被形成作为一条线或多条线。
图1B是依照本发明的另一实施例的用于在存储器1写入数据的系统的框图。
主机设备2可经由输入线5连接至存储器1。如果主机设备2经由输入线5将要被写的数据和数据的写入位置传送至存储器1,则该数据可被写入存储器1。在这种情况下,输入线5可被形成作为一条线或多条线。
图2A是依照本发明的实施例的其中主机设备在用于在存储器中写入数据的系统中将数据写入到包含NAND单元阵列的存储器中的处理的流程图。
在操作S10,主机设备准备要在存储器中写入的数据。在这种情况下,也可以准备用于开始存储数据的开始地址(即,数据的写入位置的开始点)。在操作S11,主机设备可以将所准备的数据和开始地址连同写入指令一起传送至存储器,以及因此可以将数据写入存储器。依照实施例,主机设备还可以传送要写入的数据的长度。
图2B是依照本发明的另一实施例的其中主机设备在用于在存储器中写入数据的系统中在包含NAND单元阵列的存储器中对数据进行编程的处理的流程图。
在操作S20,主机设备准备要在存储器中编程的数据。此后,在操作S21,存储器的相应字线或相应的块被擦除。由于上述擦除操作,鉴于不期望单元的数据会被擦除,在操作S20,主机设备可以预先读取和备份要被擦除的字线或块的数据,并且然后可以用将被编程的数据替换该备份数据的相应部分,从而准备该数据。此后,在操作S22,主机设备可以向存储器传送在操作S20中准备的数据、连同开始地址和编程指令,并且因此可以在存储器中对数据进行编程。依照实施例,该主机设备还可以传送要写入数据的长度。
如果使用了图2A中的写入数据的方法和图2B中的编程数据的方法,则相同的数据可被存储在存储器中。但是,依照图2A的方法,主机设备的操作与图2B的方法相比更简单。
图3是依照本发明的实施例的示出包含NAND单元阵列400的存储器1的结构的示意图。除了图3中所阐述的那些组件以外的组件可能被包含在存储器1中,但是为了解释的方便并未被阐述。
参照图3,存储器1可以包括奇数寄存器100、偶数寄存器200、页缓冲器300、和NAND单元阵列400。在下文中,该奇数寄存器100也可以被称作为第二寄存器100,并且该偶数寄存器200也可以被称作为第一寄存器200。
NAND单元阵列400可以包括多个字线和多个位线。包含在NAND单元阵列400中的一条字线可以对应于一页。每一页可被划分为偶数子页61和奇数子页62。该偶数子页61可被定义为一组偶数位线61,以及该奇数子页62可被定义为一组奇数位线62。该偶数和奇数位线61和62可以以交织结构对齐。在下文中,偶数子页61也可以被称作为第一页61,并且奇数子页62也可以被称作为第二页62。
奇数寄存器100被配置用来存储在特定字线的奇数位线62中存储的数据。偶数寄存器200被配置用来存储在特定字线的偶数位线61中存储的数据。
如果从存储器1外部输入的用于输入“输入数据”(Data-in)的开始地址对应于偶数子页61,则该输入数据可被存储在偶数寄存器200的一部分201中。在这种情况下,偶数子页61的数据可被写入到偶数寄存器200的除了部分201之外的剩余部分202。在这种情况下,偶数子页61的数据可以是剩余部分的数据而不是要被输入数据替代的部分的数据。类似地,如果从存储器1外部提供(输入)的用于输入该输入数据的开始地址对应于奇数子页62,则可以以上述方式执行类似的操作。
现在将参照图3描述在存储器1中写入所述输入数据的处理。图3示出了其中从存储器1外部输入的用于输入“输入数据”(Data-in)的开始地址对应于偶数子页61的示例。在操作S101,从存储器1外部提供的输入数据可被存储在偶数寄存器200的部分201中。在操作S102,存储在偶数子页61中的数据可被读取并存储在页缓冲器300中。在操作S103,在存储在页缓冲器300中的偶数子页61的数据之中,除了要被该输入数据替代的部分之外的剩余部分的数据可被存储在偶数寄存器200的剩余部分202中。在操作S104,存储在奇数子页62中的数据可被读取并存储在页缓冲器300中。在操作S105,存储在页缓冲器300中的奇数子页62的数据可被存储在奇数寄存器100中。在操作S106,可擦除在对应于偶数和奇数子页61和62的字线中写入的所有数据。在操作S107,存储在偶数寄存器200中的数据可被存储在页缓冲器300中。在操作S108,存储在页缓冲器300中的偶数寄存器200的数据可以在偶数子页61中被编程。在操作S109,存储在奇数寄存器100中的数据可被存储在页缓冲器300中。在操作S110,可以在奇数子页62中对存储在页缓冲器300中的奇数寄存器100的数据进行编程。
操作S102、S103、S104、和S105的顺序可以被改变为操作S104、S105、S102、和S103的顺序。同时,操作S107、S108、S109、和S110的顺序可以被改变为操作S109、S110、S107、和S108的顺序。
图4是在图3中所示的在页缓冲器300和NAND单元阵列400之间的结构和连接的示意图。
参照图4,图3中未示出的位选择器500可被进一步放置在页缓冲器300和NAND单元阵列400之间的信号传送路径上。参照所述页缓冲器300、NAND单元阵列400、以及位选择器500的部分401的放大视图,该位选择器500可以选择彼此相邻的偶数位线BLe(i)和奇数位线BLo(i)中的一个,并且可以将所选择的位线连接至页缓冲器300。在这种情况下,如果位选择器500的模块501选择偶数位线BLe(i),则位选择器500的另一模块(举例来说,模块502)还可以选择偶数位线BLe(i+1)。
尽管图3和4示出了依照实施例的单边交织架构,也可以使用双边交织架构。
现在将参照所附附图详细描述依照本发明的实施例的写入数据的方法,。
图5A至5K是依照本发明的实施例的用于描述在存储器中写入数据的方法的示意图。
图5A示出了在被包含在NAND单元中的多个块之中具有索引[i]的块604、偶数寄存器200、奇数寄存器100、以及页缓冲器300的详细结构。
奇数寄存器100、偶数寄存器200、和页缓冲器300中的每个被配置用来存储C个数据。在此,C可以是可写入NAND单元一个子页中写入的位数,例如,C=2048。块604可以包括R条字线,例如,R=16。
图5A至5K示出了从存储器外部提供的输入数据被写入到在具有索引[j]的字线605中包括的偶数子页61之中的具有索引{[s],[s+1],...,[s+n-1]}的NAND单元的处理。在此,在图5A至5K中,0、...、s、...、s+n-1、...、C-1中每个表示数据位的索引。此外,假设从存储器外部输入的数据的长度是自然数n,并且输入数据是要被写入到如下NAND单元的数据,即在包含于字线605的偶数子页61之中的具有索引{[s],...,[s+n-1]}的NAND单元。在下文中,该输入数据可以被标识为{DN[s],...,DN[s+n-1]}。用于写入该输入数据的开始地址可以连同该输入数据一起被输入至存储器。
参照图5A,字线605的偶数和奇数子页61和62可以处于已擦除状态,或由于预先的编程操作,特定数据可被存储在其中。存储在每个NAND单元中的数据可以是“0”或“1”,或可以是三个或更多值之一,该三个或更多值中的每个构成多级信息。
参照图5B,在操作S101,输入数据{DN[s],...,DN[s+n-1]}可以被存储在偶数寄存器200的具有索引{[s],...,[s+n-1]}的单元中。
此后,参照图5C,在操作S102,来自包含在字线605的偶数子页61之中的具有索引{[0],[1],[2],...,[C-1]}的NAND单元的所有数据{DE[0],DE[1],DE[2],...,DE[C-1]}可被存储在页缓冲器300中。
此后,参照图5D,在操作S103,来自存储在页缓冲器300的数据之中的存储为对应于索引{[0],[1],...,[s-1]}和索引{[s+n],...,[C-1]}的数据{DE[0],DE[1],...,DE[s-1]}和数据{DE[s+n],...,DE[C-1]}可被分别存储在偶数寄存器200的具有索引{[0],[1],...,[s-1]}的单元和具有索引{[s+n],...,[C-1]}的单元中。结果,数据{DE[0],DE[1],...,DE[s-1],DN[s],...,DN[s+n-1],DE[s+n],...,DE[C-1]}被存储在偶数寄存器200的具有索引{[0],[1],...,[s-1],[s],...,[s+n-1],[s+r1],...,[C-1]}的单元中。
此后,参照图5E,在操作S104,来自包含在字线605的奇数子页62之中的具有索引{[0],[1],[2],...,[C-1]}的NAND单元的所有数据{DO[0],DO[1],DO[2],...,DO[C-1]}可被存储在页缓冲器300中。
此后,参照图5F,在操作S105,存储在页缓冲器300中的数据被存储在奇数寄存器100中从而对应于相同的索引。结果,数据{DO[0],DO[1],DO[2],...,DO[C-1]}被存储在奇数寄存器100中。
此后,参照图5G,在操作S106,字线605的所有数据被擦除。
此后,参照图5H,在操作S107,存储在偶数寄存器200中的数据{DE[0],DE[1],...,DE[s-1],DN[s],...,DN[s+n-1],DE[s+n],...,DE[C-1]}被存储在页缓冲器300中从而对应于相同的索引。
此后,参照图5I,在操作S108,存储在页缓冲器300中的数据被编程在包含于字线605的偶数子页61中,从而对应于相同的索引。结果,输入数据{DN[s],...,DN[s+n-1]}可被写入到具有索引{[s],...,[s+n-1]}的偶数子页61中,并且图5A的原始数据可被不变地保持在具有其他索引的偶数子页61中。
此后,参照图5J,在操作S109,存储在奇数寄存器100中的数据{DO[0],DO[1],DO[2],...,DO[C-1]}被存储在页缓冲器300中从而对应于相同的索引。
此后,参照图5K,在操作S110,存储在页缓冲器300中的数据被编程在包含于字线605的奇数子页62中从而对应于相同的索引。结果,图5A的原始数据可被不变地保持在奇数子页62中。
通过执行上面结合图5A至5K描述的一系列操作,来自包含在字线605的偶数子页61之中的具有索引{[s],...,[s+n-1]}的NAND单元的数据可由输入数据{DN[s],...,DN[s+n-1]}代替并被写作输入数据。为此,主机设备可仅仅传送一条指令。
类似于图3,在图5A至5K中,操作S102、S103、S104、和S105的顺序可被改变为操作S104、S105、S102、和S103的顺序。同样,操作S107、S108、S109、和S110的顺序可被改变为操作S109、S110、S107、和S108的顺序。
图6是示出依照本发明的另一实施例的存储器1的内部结构的示意图。
与图3中所示的存储器1相比,图6中所示的存储器1还可以包括纠错单元700。可以由该纠错单元700纠错在操作S103中从页缓冲器300移动至偶数寄存器200的数据、在操作S105中从页缓冲器300移动至奇数寄存器100的数据、在操作S107中从偶数寄存器200移动至页缓冲器300的数据、以及在操作S109中从奇数寄存器100移动至页缓冲器300的数据。
此外,存储器1还可以包括控制单元800。控制单元800可以控制奇数寄存器100、偶数寄存器200、页缓冲器300、和/或纠错单元700以执行操作S101至S110。
现在将参照图1至6描述本发明的实施例。
本发明的实施例涉及一种写入数据的方法,该方法包括:将从包含NAND单元阵列400的存储器1外部输入的输入数据(Data-in)保存在被包含在存储器1内部的第一寄存器200的部分201中,并且将存储在NAND单元阵列400的第一页61中的数据的一部分保存在第一寄存器200的剩余部分202。在这种情况下,存储在第一页61中的数据的一部分可以是第一页61的剩余部分而不是输入数据要被编程的部分。该操作可对应于上述的操作S101、S102、和S103。
此后,该方法还可以包括将存储在NAND单元阵列400的第二页62中的数据保存在包含在存储器1内部的第二寄存器100中。这个操作可对应于上面的操作S104和S105。
此后,该方法还可以包括擦除存储在该第一页61和第二页62中的数据。这个操作可对应于上述的操作S106。
此后,该方法还可以包括将存储在第一寄存器200中的数据编程至第一页61。该操作可对应于上述的操作S107和S108。
此后,该方法还可以包括将存储在第二寄存器100中的数据编程至第二页62。该操作可对应于上述的操作S109和S110。
在当前实施例中,在第一寄存器200和第一页61之间移动的数据或在第二寄存器100和第二页62之间移动的数据可以穿过包含在存储器1中的页缓冲器300。
在当前实施例中,在第一页61和第一寄存器200之间移动的数据或在第二页62和第二寄存器100之间移动的数据可以被纠错。
在当前实施例中,第一页61和第二页62可以被包含在NAND单元阵列400的一条字线605中。
在当前实施例中,第一寄存器200和第二寄存器100可以是静态随机存取存储器(SRAM)。
本发明的另一个实施例涉及一种存储器1,包含:NAND单元阵列400;控制单元800;以及被配置用来接收存储在NAND单元阵列400中的数据的第一寄存器200和第二寄存器100。
该控制单元800被配置用来将从存储器1外部提供的输入数据保存在第一寄存器200的部分201中,将存储在NAND单元阵列400的第一页61中的部分数据保存在第一寄存器200的剩余部分202中,以及将存储在NAND单元阵列400的第二页62中的数据保存在第二寄存器100中;接着擦除存储在第一页61和第二页62中的数据;以及接着将存储在第一寄存器200的数据编程至第一页61,以及将存储在第二寄存器100的数据编程至第二页62。
在当前实施例中,存储器1还可以包括页缓冲器300。同样,在第一寄存器200和第一页61之间移动的数据或在第二寄存器100和第二页62之间移动的数据可以穿过页缓冲器300。
在当前实施例中,存储器1还可以包括纠错单元,用于纠错在第一页61和第一寄存器200之间移动的数据或在第二页62和第二寄存器100之间移动的数据。
在当前实施例中,第一页61和第二页62可被包含在NAND单元阵列400的一条字线605中。
本发明的另一个实施例涉及一种在存储器1中写入数据的方法,其中数据输出设备2向包含NAND单元阵列400的存储器1传送数据、用于写入该数据的开始地址、以及写入命令信号,以仅仅通过该传送步骤完成在存储器1中写入数据。
在这种情况下,数据的大小可能等于或小于包含在NAND单元阵列400的一条字线605内的两个或更多页61和62任意一个的大小。此外,开始地址可以包括NAND单元阵列400的块地址、字线地址、以及位线地址。
本发明的另一个实施例涉及一种用于在包含NAND单元阵列400的存储器1中写入数据的系统,该系统包括存储器1;以及被配置用来在存储器1中写入数据的数据输出设备2。在这种情况下,该存储器被配置用来仅仅通过接收数据和用于写入数据的开始地址来完成在存储器中写入数据的处理。
在这种情况下,存储器1还可以包括控制单元800;以及被配置用来接收存储在NAND单元阵列400中的数据的第一和第二寄存器200和100。该控制单元800被配置用来将从存储器1外部提供的输入数据保存在第一寄存器200的部分201中,将存储在NAND单元阵列400的第一页61中的数据的一部分保存在第一寄存器200的剩余部分202中,以及将存储在NAND单元阵列400的第二页62中的数据保存在第二寄存器100中;接着擦除存储在第一页61和第二页62中的数据;以及接着将存储在第一寄存器200内的数据编程在第一页61,以及将存储在第二寄存器100的数据编程在第二页62。
依照本发明实施例的存储器、以及一种用于在存储器中写入数据的系统,可以被用作,例如计算机、蜂窝电话、移动设备、个人数字助理(PDA)、导航设备、或家庭应用中的组件。
尽管已经参照示例性实施例被特别示出和描述本发明,要明白的是,本领域的普通技术人员可以在形式和细节上进行各种改变而不脱离由下述权利要求所限定的本发明的精神和范围。
示例性实施例应当仅被认作是描述性的而不是为了限制的目的。因此,本发明的范围不是由本发明的详细描述而是通过下述权利要求所限定,并且在该范围内的所有差异可以被解释为包含在本发明内。