非易失性半导体存储器及其控制方法

文档序号:6760290阅读:104来源:国知局
专利名称:非易失性半导体存储器及其控制方法
技术领域
本发明通常涉及一种非易失性半导体存储器及其控制方法,并且特别涉及一种以多个存储器单元(数据)为单位执行写入和擦除的非易失性半导体存储器及其控制方法。
背景技术
电气可擦除和可编程ROM(EEPROM)公知为电气可擦除和可编程的非易失性存储器。闪存是EEPROM的一种类型,并且是以块为单位可擦除的,它作为用于替代光盘等的存储器具有显著增加的存储容量并引入注目。
在闪存中,存储器单元是由具有浮置栅极和控制栅极的晶体管组成的。通过电气地写入数据将数据记录在存储器单元晶体管上。通过电气地擦除存储器单元晶体管上的数据来进行数据擦除。
在存储器单元晶体管上进行电气写入中,用于写入的高电压被施加到存储器单元晶体管的控制栅极和漏极。从而,将电子注入到浮置栅极,存储器单元晶体管的阈值被设置得较高。
例如,如图17所示,通过一次电气写入来使存储器单元晶体管的阈值在两个电平之间进行切换,并且将数据“0”和“1”存储在一个存储器单元晶体管中的闪存叫做二值闪存。如图18所示,通过多次电气写入来使存储器单元晶体管的阈值在多个电平之间进行切换,并且将诸如数据“0”、“1”、“2”和“3”等多个数据段存储在一个存储器单元晶体管中的闪存叫做多值闪存。尽管使用多值闪存允许存储器容量的增加,但相应地也增加了写入的次数。例如,为了将存储器单元晶体管的状态从存储数据“3”的状态改变到存储数据“0”的状态,图18的闪存需要三次写入。
此外,在将数据写入到存储器单元晶体管之后,执行被称为“校验”的读操作,以便校验存储器单元晶体管的阈值达到目标值。因此,通过自动重复电气写入和校验操作(自动写入)来实施数据写操作,并且需要提供一种用于控制每一个目标存储器单元的重复性的设备。类似地,在数据擦除操作中,需要提供一种用于对每一个目标存储器单元自动重复电气擦除和校验操作的自动擦除控制设备。
这样,在闪存上进行数据的记录和擦除需要诸如自动写入或自动擦除等顺序控制。通过使用合理的流程来减少处理的时间成为决定商业价值的一个因素。
图19示出了现有技术的非易失性半导体存储器的结构。如图19所示,非易失性半导体存储器包括缓冲器901,用于锁定来自外部的外部地址或外部数据;顺序控制器904,用于控制写顺序;存储器单元阵列907,其具有以阵列排列的存储器单元;读电路905,用于从存储器单元阵列907读取数据;写电路906,用于将数据写入到存储器单元阵列907;以及比较器909,用于将从存储器单元阵列907读取的数据与外部数据进行比较。
图20的流程图示出了现有技术的非易失性半导体存储器中的自动写操作。自动写操作是通过顺序控制器904的控制来实施的。
首先,通过外部总线等,将要写入的一个外部地址和一个外部数据作为指令输入,并且存储到缓冲器901中(S901)。然后,在顺序控制器904的控制下,读电路905对存储器单元阵列907的由外部地址指定的存储器单元执行读操作(S902)。然后,比较器909确定读取的数据是否对应于输入的外部数据(S903)。步骤S902和S903的处理是校验操作。
如果在步骤S903中确定数据相互对应,则顺序控制器904结束自动写操作。另一方面,如果在步骤S903中确定数据不对应,则写电路906在顺序控制器904的控制下执行将外部数据写入到存储器单元阵列907的由外部地址指定的存储器单元中的写操作(S904)。之后,处理进一步执行校验操作(S902和S903),并且重复写操作和校验操作,直到存储器单元的数据对应于外部数据。
日本未审专利申请公开第2002-366420和H6-195989号包括有关非易失性半导体存储器的公开内容。这里公开的技术设置了一个标志,用于指示对每一个块或扇区的擦除的完成。
不过,由于对于在一个地址上的每一个写入或擦除,现有非易失性半导体存储器是从外部输入指令(一个地址和一个数据)的,因此它的缺点是写入或擦除的效率低,进行写入和擦除操作花费的时间长。
图21示出了在现有非易失性半导体存储器中以时间顺序写入多个数据段的操作。这是在一次写入中成功校验的情况。
为了写入第一个数据,该操作首先在T101中输入一个地址和一个数据。然后在T102中,在写入之前执行校验(预校验),在T103中将一个数据写入到一个地址的存储器单元中,并且然后在T104中,在写入之后执行校验(后校验)。从而完成第一个数据的写入。然后,为了写入第二个数据,操作进一步输入一个地址和一个数据,并且以与上述相同的方式写入该数据。重复执行T101至T104的操作达到要写入的数据段的数量。
因此,甚至在可以用一个地址来识别其他地址的情况下,诸如当向连续的地址写入大量数据时,需要每次为每一个要写入数据的地址输入地址和数据,从而徒劳地强制执行输入操作。
外部指令通过总线从CPU等输入。随着最近CPU和总线的处理速度、传递速度以及容量的增加,许多情况下输入大量的连续数据段。因此,对每一个地址进行的无用处理会造成总体效率和数据写入或擦除操作的处理时间的明显恶化。

发明内容
根据本发明的一个方面,提供一种非易失性半导体存储器,其具有包含多个存储器单元作为数据擦除操作的最小单位的扇区,该存储器包括输入部件,用于将要写入的数据段批量输入到扇区中的多个地址;标志存储器,用于存储分别与多个地址相对应的各存储器单元的状态;以及地址设置电路,用于根据标志存储器中的信息来确定要选择的地址。
非易失性半导体存储器对多个地址和数据段执行批量输入,从而消除了为多个地址中的每一个地址输入指令的需要。从而,可以提高写/擦除操作效率和减少处理时间。此外,与为每一个扇区设置标志的情况相比,通过为每一个地址设置标志可以更加有效率地对存储器单元执行数据写/擦除操作。
根据本发明的另一个方面,提供一种非易失性半导体存储器,用于以包含多个数据段的数据块为单位来执行写/擦除操作,该存储器包括存储器单元阵列,其包含多个非易失性存储器单元;标志存储器,用于存储为每一个地址提供的、指示与包含在数据块中的多个数据段的每一个地址有关的写/擦除操作的成功/失败的标志;地址选择器,用于根据存储的标志来选择写/擦除操作已经失败的地址;写/擦除部件,用于对位于所选地址中的非易失性存储器单元执行数据段的写/擦除操作;校验部件,用于执行校验操作,以校验对位于所选地址中的非易失性存储器单元执行数据写/擦除操作的成功/失败;以及标志更新部件,用于根据校验操作的结果来更新标志。
非易失性半导体存储器以多个数据段为单位来执行写入和擦除,从而消除了为多个地址中的每一个地址输入指令的需要。从而,可以提高写入和擦除处理效率和减少处理时间。此外,与以多个数据段为单位设置标志的情况相比,通过为要写入或擦除数据的每一个地址设置标志可以更加有效率地执行写入和擦除。
本发明提供一种能够提高写入和擦除处理效率并且减少写入和擦除处理时间的非易失性半导体存储器,以及用于控制该存储器的方法。


从下面结合附图的描述中,本发明的上述和其他目的、优点和特征更加清楚,其中图1为框图,示出了根据本发明的实施例的非易失性半导体存储器的结构;图2是描述了根据本发明的实施例的非易失性半导体存储器的写操作的流程的视图;图3为流程图,示出了根据本发明的实施例的非易失性半导体存储器的写操作;图4A~4C是示出了在根据本发明的实施例的非易失性半导体存储器中使用的写标志的例子的视图;图5A和5B为流程图,示出了根据本发明的实施例的非易失性半导体存储器的写操作;图6为框图,示出了根据本发明的实施例的非易失性半导体存储器的结构;图7为流程图,示出了根据本发明的实施例的非易失性半导体存储器的写操作;图8A和8B为流程图,示出了根据本发明的实施例的非易失性半导体存储器的写操作;
图9为框图,示出了根据本发明的实施例的非易失性半导体存储器的下一个地址计算器的结构;图10为流程图,示出了根据本发明的实施例的非易失性半导体存储器的地址选择操作;图11为流程图,示出了根据本发明的实施例的非易失性半导体存储器的下一个地址计算操作;图12为流程图,示出了根据本发明的实施例的非易失性半导体存储器的最后地址计算操作;图13为电路图,示出了根据本发明的实施例的非易失性半导体存储器的下一个执行地址计算器的结构;图14为电路图,示出了根据本发明的实施例的非易失性半导体存储器的最后地址计算器的结构;图15为曲线图,示出了根据本发明的第一和第二实施例的写操作时间的计算例子;图16为框图,示出了根据本发明的实施例的非易失性半导体存储器的下一个执行地址计算器的结构;图17为曲线图,示出了在典型的二值闪存中的存储器单元的阈值改变;图18为曲线图,示出了在典型的多值闪存中的存储器单元的阈值改变;图19为框图,示出了现有技术的非易失性半导体存储器的结构;图20为流程图,示出了现有技术的非易失性半导体存储器的写操作;以及图21是描述现有技术的非易失性半导体存储器的写操作的流程的视图。
具体实施例方式
现在,将参考解释性实施例来在此讲述本发明。本领域的技术人员都知道,使用本发明的讲述可以实现许多可替换的实施例,并且本发明并不限于为解释性目的而示出的实施例。
第一实施例下面来讲述根据本发明的第一实施例的非易失性半导体存储器。该实施例的非易失性半导体存储器允许具有连续地址的数据段的批量输入。此外,它设置用于指示每一个地址的写入完成的标志,以便计数器依次选择和处理每一个标志。
首先参考图1,下面讲述根据该实施例的非易失性半导体存储器的结构。非易失性半导体存储器是一种包括例如闪存和控制器的半导体器件,并且将要写入的数据序列临时存储到缓冲器中并且然后依次写入数据。
如图1所示,非易失性半导体存储器包括缓冲器1、内部地址计数器2、标志信息存储器3、顺序控制器4、读电路5、写电路6、存储器单元阵列7和比较器9。
缓冲器1临时存储通过外部总线等提供的外部地址和外部数据。外部地址和外部数据是要写入的地址和数据。特别地,在该实施例中,外部数据是包含多个连续数据段的数据块,并且外部地址是外部数据的数据块的首地址。因此,缓冲器1起到输入部件的作用,用于将要写入的数据段一次输入到扇区中的多个地址。
内部地址计数器2根据计数器值来选择要向存储器单元阵列7写入数据或从存储器单元阵列7读出数据的内部地址。内部地址计数器2是地址设置电路(地址选择器)20,它用于根据存储在标志信息存储器3中的写标志来确定要提供给存储器阵列7的地址。例如,计数器值可以是内部地址或自首地址的偏移。内部地址是用于指定存储器单元阵列7中的存储器单元的地址,并且可以与从外部提供的外部地址或从用于写入到存储器单元阵列7的外部地址转换的地址相同。
标志信息存储器(标志存储器)3为存储在缓冲器1中的外部数据的每一个地址(每一个内部地址)存储写标志。写标志与存储器单元阵列7中的存储器单元(数据)的地址有关地存储,并且其指示每一个存储器单元(数据)的状态。写标志指示每一个数据的写入的成功或失败,也就是说,指示是否已经为每一个数据完成了写入。如果写标志被置位,则指示写入失败,这意味着它是写入的目标。另一方面,如果复位或没有置位写标志,则指示写入成功,这意味着它不是写入的目标。
在存储器单元阵列7中,多个存储器单元以阵列形式排列。存储器单元是诸如闪存等非易失性存储器单元。例如,存储器单元阵列7可以被分成几个扇区,每一个扇区都具有多个存储器单元并且是用于擦除的最小单位。读电路5从存储器单元阵列7中的具有由内部地址计数器2选择的内部地址的存储器单元读取数据。写电路6将存储在缓冲器1中的外部数据写入到存储器单元阵列7中的具有由内部地址计数器2选择的内部地址的存储器单元。因此,写电路6是写入或擦除部件22,用于对存储器单元执行数据写或读操作。比较器9将由读电路5从存储器单元阵列7读取的数据与存储在缓冲器1中的外部数据进行比较。因此,比较器9是校验部件23,其执行用于确定数据写入或擦除操作是成功或失败的校验操作。
顺序控制器4控制每一个组件的操作,并且实施一系列自动写入操作。顺序控制器4还起到标志更新部件21的作用,用于根据比较器9的校验结果来更新写标志。例如,顺序控制器4根据标志信息存储器3中的写标志来操作读电路5或写电路6,根据比较器9中的比较结果来更新标志信息存储器3中的写标志,并且更新内部地址计数器2的计数器值。
顺序控制器4包括指令解码器。指令解码器识别用于自动输入操作的指令,这允许连续输入写地址和写数据。
下面参考图2,来示意性地讲述根据该实施例的非易失性半导体存储器的自动写操作。图2按照时间顺序示出了数据写操作的流程。其示出了在一次写入中校验成功的例子。
在T1中,在对指示自动写操作的指令进行解码之后,操作一次性输入地址和数据。因此,多个数据段和首地址被输入和存储在缓冲器1中。同时,该操作将与每一个地址相对应的写标志设置到标志信息存储器3中。
在T2中,操作检查标志信息存储器3中的写标志,并且根据该标志在写入之前执行校验(预校验),然后根据校验结果来更新标志。重复校验操作达到写标志被置位的地址的数目。
在T3中,操作检查标志信息存储器3中的写标志,并且根据该标志将缓冲器1中的数据写入到存储器单元阵列7的存储器单元中。重复写操作达到写标志被置位的地址的数目。
在T4中,操作检查标志信息存储器3中的写标志,并且根据该标志在写入之后执行校验(后校验),然后根据校验结果来更新标志。重复校验操作达到写标志被置位的地址的数目。此外,如果写入失败的地址,即写标志被置位的地址,在校验之后仍然存在,则重复在T3中的写操作和在T4中的校验操作,直到写操作全部成功。
这样,该实施例允许多个数据段和地址的批量输入,从而消除了为每个数据都输入指令(地址和数据)的需要,而这是在图21中所示的现有技术中所需要的。从而,可以减少写操作的处理时间。
然后参考图3的流程图,下面进一步详细讲述根据该实施例的非易失性半导体存储器的自动写操作。自动写操作是通过顺序控制器4的控制来实施的。
首先,在对自动写操作的指令进行解码后,将要写入的外部地址和外部数据作为来自外部的指令一次输入到缓冲器1中(S201)。如上所述,由此多个连续数据段及其首地址也被输入。
然后,输入的外部数据被存储在缓冲器1的相应地址中,并且与要写入数据的地址(内部地址)有关的写标志被存储在标志信息存储器3中(S202)。在第一次校验时,由于在输入外部地址和外部数据之后没有立即执行写入,因此标志信息存储器3中的写标志全部被置位。
之后,顺序控制器4复位内部地址计数器2的计数器值(S203)。通过将计数器值设置为“0”,内部地址计数器2选择存储器单元的首地址。
然后,对于由内部地址计数器2选择的内部地址,顺序控制器4确定写标志是否被置位(S204)。具体地说,它参考存储在标志信息存储器3中的选择的内部地址的写标志,并且确定对该内部地址进行的写入是否成功。
如果在步骤S204中确定写标志被置位,即意味着选择的地址是写入的目标,则顺序控制器4控制读电路5,以便从存储器单元阵列7中的具有由内部地址计数器2选择的内部地址的存储器单元读取数据。
然后,比较器9确定由读电路5读取的数据是否与缓冲器1中的数据匹配(S206)。如果比较器9在步骤S206中确定数据匹配,则意味着校验成功(写入成功),因此顺序控制器4进行更新以清除标志信息存储器3中的相应内部地址的写标志(S207)。另一方面,如果比较器9在步骤S206中确定数据不匹配,则意味着校验失败(写入失败),因此顺序控制器4不更新标志信息存储器3中的相应内部地址的写标志,以便仍然保持置位。
S205和S206的处理是校验操作,用于检查写入是否成功。如果在步骤S204中确定写标志没有被置位,则写入已经成功,因此处理既不执行校验,也不更新标志(S205~S207)。
然后,顺序控制器4确定由内部地址计数器2选择的内部地址是否为最后地址(S208)。具体地说,确定根据计数器值选择的内部地址是否达到标志信息存储器3的最终地址。例如,当内部地址存储器2溢出时,顺序控制器4可以确定它就是最后地址。在该实施例中,最后地址不是要写入的数据的最终地址,而是标志信息存储器3的最终地址,它始终是固定的地址。
如果顺序控制器4在步骤S208中确定由内部地址计数器2选择的内部地址不是最后地址,则顺序控制器4增加内部地址计数器2的计数器值(S209)。之后,对由内部地址计数器2的增加的计数器值选择的内部地址,顺序控制器4检查写标志,执行校验和更新写标志(S204~S207)。重复该处理直到到达最后地址。
另一方面,如果顺序控制器4在步骤S208中确定内部地址是最后地址,则确定是否已经为所有的数据段完成了写入(S210)。如果标志信息存储器3中的所有写标志都被清除(复位),则意味着一系列的缓冲器写入已经完成。如果标志信息存储器3中的至少一个写标志被置位,则意味着写入没有完成。如果顺序控制器4在步骤S210中确定写入已经全部完成,则结束自动写操作。
另一方面,如果顺序控制器4在步骤S210中确定写入没有全部完成,则顺序控制器4如在步骤S203中那样复位内部地址计数器2的计数器值(S211)。然后,如S204那样,对于由内部地址计数器2选择的内部地址,顺序控制器4确定写标志是否被置位(S212)。
如果顺序控制器4在步骤S212中确定标志被置位,则意味着选择的地址是写入的目标。在这种情况下,顺序控制器4控制写电路6,以便将缓冲器1中的相应的外部数据电气地写入到存储器单元阵列7中的具有由内部地址计数器2选择的内部地址的存储器单元中(S213)。另一方面,如果顺序控制器4在步骤S212中确定标志没有被置位,则意味着写入已经成功。在这种情况下,顺序控制器4不执行向存储器单元的写入。
之后,如在S208中那样,顺序控制器4确定由内部地址计数器2选择的内部地址是否为最后地址(S214)。
如果顺序控制器4在步骤S214中确定由内部地址计数器2选择的内部地址不是最后地址,则如S209那样增加内部地址计数器2的计数器值(S215)。
之后,对于根据内部地址计数器2的增加的计数器值选择的内部地址,顺序控制器4重复对写标志的检查和向存储器单元的写入(S212~S213)。重复该处理直到达到最后地址。
另一方面,如果顺序控制器4在步骤S214中确定由内部地址计数器2选择的内部地址是最后地址,则再次复位内部地址计数器2的计数器值(S203)。然后,重复步骤S203之后的处理,直到所有数据的写操作完成。
图4A~4C示出了存储在标志信息存储器3中的内部地址和写标志。
在图4A~4C的例子中,内部地址为2个位,写标志为1个位,并且对具有内部地址(00)b至(11)b的四个数据段进行写入。在该例子中,在三次校验操作中完成了一系列自动写入处理。图4A示出了当完成第一次校验时的内部地址和写标志。图4B示出了当完成第二次校验时的内部地址和写标志。图4C示出了当完成第三次校验时的内部地址和写标志。
当输入外部地址和外部数据时,对于所有的内部地址(00)b至(11)b,写标志被置位。在第一次校验中,没有执行将数据写入到存储器单元,因此当完成了第一次校验时所有的写标志被置位,如图4A所示。在这种状态下,对具有内部地址(00)b至(11)b的存储器单元执行第一次写入。在该例子中,第一次写入在内部地址(01)b和(10)b中成功,而在内部地址(00)b和(11)b中失败。
然后,在第二次校验中,内部地址(01)b和(10)b的写标志被复位为“0”。因此,当完成第二次校验时,仅内部地址(00)b和(11)b的标志被置位,如图4B所示。在这种状态下,对具有内部地址(00)b和(11)b的存储器单元执行第二次写入。在该例子中,第二次写入在内部地址(00)b和(11)b中成功。
然后,在第三次校验中,内部地址(00)b和(11)b的写标志被复位为“0”。因此,当完成第三次校验时,所有的标志都被清除,如图4C所示。从而完成了对内部地址(00)b至(11)b的写操作。
图5A和5B示出了图4A~4C的例子中的校验操作的流程。图5A示出了第一次或第二次校验操作,其中内部地址和写标志处于如图4A所示的状态。
首先,顺序控制器4复位内部地址计数器2的计数器值,并且检查由计数器值“0”选择的内部地址(00)b的写标志(S301)。由于内部地址(00)b的写标志是(1)b,因此对具有内部地址(00)b的存储器单元执行校验操作(S302)。
然后,顺序控制器4增加内部地址计数器2的计数器值,并且检查由计数器值“1”选择的内部地址(01)b的写标志(S303)。由于内部地址(01)b的写标志是(1)b,因此对具有内部地址(01)b的存储器单元执行校验操作(S304)。
此外,以相同的方式,顺序控制器4增加内部地址计数器2的计数器值,检查内部地址(10)b的写标志,执行校验操作,检查内部地址(11)b的写标志,并且执行校验操作(S305~S308)。然后,由内部地址计数器2选择的地址达到最后地址,在这种情况下是内部地址(11)b,并且从而完成了第一或第二次校验操作。通过依次选择内部地址(00)b至(11)b并将数据写入到每一个地址,以与上述相同的方式执行第一次写操作。
图5B示出了第三次校验操作,其中内部地址和写标志处于如图4B所示的状态。
首先,顺序控制器4复位内部地址计数器2的计数器值,并且检查由计数器值“0”选择的内部地址(00)b的写标志(S309)。由于内部地址(00)b的写标志是(1)b,因此对具有内部地址(00)b的存储器单元执行校验操作(S310)。
然后,顺序控制器4增加内部地址计数器2的计数器值,并且检查由计数器值“1”选择的内部地址(01)b的写标志(S311)。由于内部地址(01)b的写标志是(0)b,因此不执行校验操作。
进而,顺序控制器4增加内部地址计数器2的计数器值,并且检查由计数器值“2”选择的内部地址(10)b的写标志(S312)。由于内部地址(10)b的写标志是(0)b,因此不执行校验操作。
进而,顺序控制器4增加内部地址计数器2的计数器值,并且检查由计数器值“3”选择的内部地址(11)b的写标志(S313)。由于内部地址(11)b的写标志是(1)b,因此对具有内部地址(11)b的存储器单元执行校验操作(S314)。然后,由内部地址计数器2选择的地址到达最后地址,在这种情况下是内部地址(11)b,并且从而完成了第三次校验操作。通过依次选择内部地址(00)b至(11)b并将数据写入到内部地址(00)b和(11)b,以与上述相同的方式执行第二次写操作。
如前所述,该实施例一次输入多个数据段和数据段的地址作为来自外部的指令。这消除了为每一个数据段都输入指令的需要,因此允许有效率的写操作,从而减少了用于写操作的时间。
此外,通过为多个地址中的每一个地址设置标志并根据该标志来执行校验或写入,可以对作为写入的单位的数据执行校验或写入操作,从而允许更有效率的操作。
第二实施例下面来讲述根据本发明的第二实施例的非易失性半导体存储器。该实施例的非易失性半导体存储器允许具有连续地址的数据段的批量输入。此外,它为每一个地址设置指示写入完成的标志,并且选择多个标志且基本上同时地对它们进行并行处理。
在上述的第一实施例中,当实施缓冲器操作时会发生冗余地址选择操作,这会引起处理速度的下降。如参考图5A和5B所述的,第一实施例增加计数器值,并且总是依次查找写标志被置位的地址。因此,每一个地址都被选择一次,甚至是写标志没有被置位的非目标地址。由于在第一实施例中总是执行不必要的地址选择而会引起写操作速度下降。
每次执行写操作或读操作时,执行查找写标志的操作。因此,由于操作重复,相应地增加了冗余地址选择时间。随着写目标地址的数量的减少,在写标志查找操作中的冗余地址的数量增加。因此,随着由外部指令指定的地址的数量相对于对于缓冲器大小减少,冗余处理时间增加。
为了克服这种缺点,第二实施例只选择必要的地址,而不是在写标志的查找操作中总是依次选择地址。
然后参考图6,下面讲述根据该实施例的非易失性半导体存储器的结构。在图6中,与图1中相同的元件用相同的标号来表示,这里不再对其进行详细讲述。如图6所示,该实施例的非易失性半导体存储器包括内部地址存储器10而不是内部地址计数器2,并且进一步包括下一个地址计算器8。内部地址存储器10和下一个地址计算器8起到地址设置电路20的作用。
内部地址存储器10存储由顺序控制器4设置的内部地址。它根据设置的内部地址来选择要向存储器单元阵列7写入数据或要从存储器单元阵列7读取数据的地址。因此,尽管内部地址存储器10与第一实施例中的内部地址计数器2具有基本相同的结构,但是只由顺序控制器4在其中执行内部地址的设置而不执行增加。
下一个地址计算器8根据当前被设置到内部地址存储器10的内部地址来计算下一个要选择的地址,该地址下面被称为下一个地址。由于计算的下一个地址是写目标地址,因此不会发生如第一实施例中的不必要的地址选择操作。在第一写标志的查找(选择)操作中,顺序控制器4输入初始设置标志。下一个地址计算器8计算下一个地址并且进一步确定该地址是否为最后地址。如果计算的下一个地址为最后地址,则下一个地址计算器8将最后地址标志输入到顺序控制器4。
在此讲述根据本实施例的非易失性半导体存储器中的自动写操作。由于自动写操作与图2所示的基本相同,因此这里参照图7的流程图来讲述该实施例的自动写操作的细节。
首先,在对自动写操作的指令进行解码后,将要写入的外部地址和外部数据段作为来自外部的指令一次输入到缓冲器1中(S401)。如第一实施例的情况那样,多个连续数据段及其首地址从而被输入。
然后,输入的外部数据被存储在缓冲器1的相应地址中,并且与要写入数据的地址(内部地址)有关的写标志被存储在标志信息存储器3中(S402)。
之后,下一个地址计算器8计算出作为下一个要选择的内部地址的下一个地址,并且进一步计算出计算的内部地址是否为最后地址(S403)。在该计算中,下一个地址计算器8使用来自内部地址存储器10的当前内部地址(初始复位状态)以及标志信息存储器3中的写标志。
然后,顺序控制器4将由下一个地址计算器8计算的下一个地址设置到内部地址存储器10(S404)。由下一个地址计算器8计算的下一个地址从而被设置为当前内部地址,以便内部地址存储器10选择最新设置的内部地址。
顺序控制器4然后控制读电路5,以便从存储器单元阵列7中的具有由内部地址存储器10选择的内部地址的存储器单元读取数据(S405)。
之后,比较器9确定由读电路5读取的数据是否与缓冲器1中的数据匹配(S406)。如果比较器9在步骤S406中确定数据匹配,则意味着校验成功(写入成功),因此顺序控制器4进行更新以清除标志信息存储器3中的相应地址的写标志(S407)。另一方面,如果比较器9在步骤S406中确定数据不匹配,则意味着校验失败(写入失败),因此顺序控制器4不更新标志信息存储器3中的相应地址的写标志,使它仍然保持置位。
然后,顺序控制器4确定由内部地址存储器10选择的内部地址是否为最后地址(S408)。由于下一个地址计算器8已经确定当前内部地址是否为最后地址,并且置位最后地址标志,因此顺序控制器4根据最后地址标志来确定它是否是最后地址。
如果顺序控制器4在步骤S408中根据内部地址存储器10以及标志信息存储器3中的写标志确定由内部地址存储器10选择的地址不是最后地址,则下一个地址计算器8根据作为最后一次设置的地址的当前内部地址再次计算下一个要被选择的地址,并且进一步计算它是否为最后地址(S403)。然后,计算的地址被设置到内部地址存储器10(S404)。之后,顺序控制器4以相同的方式来执行校验和写标志的更新(S405~S407),并且重复该处理,直到到达最后地址。
另一方面,如果顺序控制器4在步骤S408中确定内部地址是最后地址,则它进一步确定是否已经完成对所有数据段的写入(S409)。如果由下一个地址计算器8置位指示它是最后地址的最后地址标志,并且在标志信息存储器3中的写标志被全部清除,则意味着完成了一系列自动写操作。如果在标志信息存储器3中的至少一个写标志被置位,则意味着写操作还没有完成。如果顺序控制器4在步骤S409中确定写入已经全部完成,则它结束自动写操作。
另一方面,如果顺序控制器4在步骤S409中确定写还没有全部完成,则如S403中那样,下一个地址计算器8基于内部地址存储器10中的当前内部地址(复位状态)和标志信息存储器3中的写标志来计算下一个要选择的地址,并且进一步计算它是否为最后地址(S410)。
然后,如在S404中那样,顺序控制器4将由下一个地址计算器8计算出的下一个地址设置到内部地址存储器10(S411)。
然后顺序控制器4控制写电路6,以便将缓冲器1中的相应外部数据写入到存储器单元阵列7中的具有由内部地址存储器10选择的地址的存储单元中(S412)。
然后,如在S408中那样,顺序控制器4确定由内部地址存储器10选择的地址是否为最后地址(S413)。如果顺序控制器4在步骤S413中确定由内部地址存储器10选择的地址不是最后地址并且当下一个地址计算器8没有置位指示最后地址的最后地址标志时,下一个地址计算器8基于内部地址存储器10中的作为最后设置的地址的当前内部地址和标志信息存储器3中的写标志再次计算下一个要选择的地址,并且进一步计算它是否为最后地址(S410)。然后,计算的地址被设置到内部地址存储器10(S411)。之后,顺序控制器4以相同的方式来执行写操作(S412),并且重复该处理,直到到达最后地址为止。
另一方面,如果顺序控制器4在步骤S413中确定由内部地址存储器10选择的地址是最后地址并且当下一个地址计算器8置位指示最后地址的最后地址标志时,下一个地址计算器8再次计算下一个地址(S403)。之后,重复步骤S403之后的处理,直到所有数据段的写入都完成为止。
现在参照图8A和8B,下面讲述根据本实施例的非易失性半导体存储器中的自动写操作的具体例子。如第一实施例中的图5A和5B那样,图8A和8B示出了图4A~4C的例子中的每一个校验操作。
图8A示出了内部地址和写标志处于图4A所示的状态的第一次或第二次校验操作。
由于处于初始状态,因此下一个地址计算器8同时检查内部地址(00)b至(11)b的所有写标志,并且计算写标志被置位的最小内部地址(S501)。由于内部地址(00)b的写标志是(1)b,因此计算出内部地址(00)b并且将其设置到内部地址存储器10,以便选择内部地址(00)b。然后,对具有内部地址(00)b的存储器单元执行校验操作(S502)。
然后,由于在内部地址存储器10中选择了的内部地址(00)b,因此下一个地址计算器8同时检查大于(00)b的内部地址,即内部地址(01)b至(11)b的所有写标志,并且计算写标志被置位的最小内部地址(S503)。由于内部地址(01)b的写标志是(1)b,因此计算出内部地址(01)b并且将其设置到内部地址存储器10,以便选择内部地址(01)b。然后,对具有内部地址(01)b的存储器单元执行校验操作(S504)。
以此方式,当内部地址是(01)b时,处理进一步检查内部地址(10)b和(11)b的写标志,并且校验具有内部地址(10)b的存储器单元(S506)。当内部地址是(10)b时,它进一步检查内部地址(11)b的写标志(S507),并且校验具有内部地址(11)b的存储器单元(S508)。由此,从内部地址存储器10选择的地址达到最后地址,在这种情况下为内部地址(11)b,并且完成第一次或第二次校验操作。通过选择内部地址(00)b至(11)b并将数据写入到每一个地址,以与上述相同的方式执行第一次写操作。
图8B示出了第三次校验操作,其中内部地址和写标志处于如图4B所示的状态。
由于处于初始状态,因此地址计算器8同时检查内部地址(00)b至(11)b的所有写标志,并且计算出写标志被置位的最小内部地址(S509)。由于内部地址(00)b的写标志是(1)b,因此计算出内部地址(00)b并且将其设置到内部地址存储器10,以便选择内部地址(00)b。然后,对具有内部地址(00)b的存储器单元执行校验操作(S510)。
然后,由于在内部地址存储器10中选择了的内部地址(00)b,因此下一个地址计算器8同时检查大于(00)b的地址,即内部地址(01)b至(11)b的所有写标志,并且计算写标志被置位的最小内部地址(S511)。由于内部地址(01)b和(10)b的写标志是(0)b,并且内部地址(11)b的写标志是(1)b,因此计算出内部地址(11)b并且将其设置到内部地址存储器10,以便选择内部地址(11)b。然后,对具有内部地址(11)b的存储器单元执行校验操作(S512)。然后,由内部地址存储器10选择的地址达到最后地址,在这种情况下为内部地址(11)b,从而完成第三次校验操作。通过选择内部地址(00)b至(11)b并且将数据写入到每一个地址,以与上述相同的方式执行第二次写操作。
如前面所述,该实施例仅选择写标志被置位的地址。因此避免了如图5中所示的第一实施例那样总是依次选择地址的情况,从而减少了写标志查找操作的处理时间。
下面来讲述下一个地址计算器8的结构和操作。图9示出了下一个地址计算器8的结构。如图9所示,下一个地址计算器8包括下一个执行地址计算器81和最后地址计算器82。
下一个执行地址计算器81输入当前内部地址、写标志和初始设置标志,计算写标志被置位的要选择的下一个地址,并且将计算的地址输出到顺序控制器4。下一个执行地址计算器81起到下一个执行地址选择器的作用,其基本上同时检查存储在标志信息存储器3中的多个标志,并且针对数据写入、擦除或校验等每一个操作,从多个标志中选择置位标志的地址。最后地址计算器82输入当前内部地址和写标志,计算用于指示内部地址是否为最后地址的最后地址标志,并且将结果输出到顺序控制器4。最后地址计算器82起到最后地址确定器的作用,其在选择地址时基本上同时检查存储在标志信息存储器3中的多个标志,并且当多个标志中的全部都没有被置位时,确定数据写入、擦除或校验操作完成。
在这个例子中,作为写数据最大尺寸的缓冲器1的容量是32个地址。因此,用于指示地址是写入目标的写标志的数目是32,用于选择要在其上写数据的存储器单元所需要的内部地址是5个位(25=32)。
这里将作为被设置到内部地址存储器10的内部地址的当前内部地址称为ADD[4:0],它表示从第0个位至第4个位的5个位。由顺序控制器4生成的且指示第一个地址选择操作的初始设置标志被称为INITFLAG。存储在标志信息存储器3中的且指示写目标的写标志被称为FLAG[31:0]。作为下一个执行地址计算器81的计算结果的下一个地址被称为NEXT ADD[4:0]。作为最后地址计算器82的计算结果的最后地址标志被称为LASTFLAG。
在该实施例中,最后地址不像第一实施例中那样是计数器溢出的最终地址,例如如果是5位的话,则(1_1111)b=(31)d。该实施例中的最后地址是缓冲器1中写标志被置位的地址(要写入数据的地址)的最终地址。因此,最后地址并不意味着它总是(1_1111)b。
然后参考图10的流程图,下面讲述根据该实施例的非易失性半导体存储器中的地址选择操作。图10是从图7的流程图中提取的地址选择操作的流程图。
作为初始设置,顺序控制器4复位内部地址存储器10中的内部地址(ADD[4:0]=(0_0000)b=(0)d),并且置位初始设置标志(INITFLAG=1)(S601)。
然后,下一个执行地址计算器81计算下一个地址NEXT_ADD[4:0](S602)。同时,最后地址计算器82计算最后地址标志LASTFLAG(S603)。后面将详细讲述下一个执行地址计算器81和最后地址计算器82中的计算方法。
之后,顺序控制器4把作为下一个执行地址计算器81的计算结果的下一个地址NEXT_ADD[4:0]设置到内部地址存储器10(ADD[4:0]=NEXT_ADD[4:0])(S604)。从而选择了与计算结果的地址相对应的存储器单元。
然后,顺序控制器4为后续的地址计算复位初始设置标志(INITFLAG=0)(S605)。
然后,顺序控制器4通过作为最后地址计算器82的计算结果的最后地址标志来确定当前内部地址是否为最后地址(LASTFLAG=1)(S606)。如果最后地址标志没有被置位(LASTFLAG=0),则意味着存在下一个要处理的存储器单元。因此,下一个执行地址计算器81再次计算要选择的地址(S602)。另一方面,如果最后地址标志被置位(LASTFLAG=1),则意味着当前内部地址是缓冲器中要处理的最终地址,并且从而完成了地址选择操作。
图10的流程图示出了缓冲器中的一次地址选择操作。在图7中所示的自动写操作流程图中,缓冲器中的地址选择操作(图10的操作)执行了多次(S403~S408,S410~S413)。
现在参考图11的流程图,下面来讲述在下一个执行地址计算器81中的用于计算下一个地址NEXT_ADD[4:0]的方法。下一个执行地址计算器81将当前内部地址ADD[4:0]与写标志FLAG[31:0]的状态进行比较,并且计算下一个要执行的下一个地址NEXT_ADD[4:0]。
图11中的符号“==”表示匹配确定,“<”表示幅度关系确定,“&&”表示逻辑乘积,并且“<=”表示替换。下面的讲述使用符号“=”作为等号。
下一个执行地址计算器81首先确定当前内部地址是否为首地址(ADD[4:0]=(0)d),首地址的写标志是否被置位(FLAG
=1),以及进而初始设置标志是否被置位(INITFLAG=1)(S701)。因此,它确定首地址是否为第一个地址计算中的写目标。如果S701的条件满足,则下一个执行地址计算器81将下一个地址设置为首地址(NEXT_ADD[4:0]<=(0)d)(S707)。
在S701中需要初始设置标志INITFLAG的条件,其原因是因为需要对第一次中的选择的地址是首地址的情况,即在第二个地址计算中当前内部地址为ADD[4:0]=(0)d的情况,与在第一个地址计算中当前内部地址为ADD[4:0]=(0)d的情况进行区分。
此外,步骤S702~S706的确定基本上与步骤S701同时执行。步骤S702~S706确定对于包括标志没有被置位的地址的当前内部地址的下一个地址,写标志是否被置位。
在S702,下一个执行地址计算器81确定当前内部地址是否为ADD[4:0]<(1)d,即首地址(ADD[4:0]=(0)d),以及第一个地址的写标志是否被置位(FLAG[1]=1)。由于S701的确定执行优先于S702的确定执行,因此S702中的条件包括不满足S701的条件。如果S702的条件满足,则下一个地址被设置为第一个地址(NEXT_ADD[4:0]<=(1)d)(S708)。
在S703,下一个执行地址计算器81确定当前内部地址是否为ADD[4:0]<(2)d,即首地址(ADD[4:0]=(0)d)或第一个地址(ADD[4:0]<=(1)d),以及第二个地址的写标志是否被置位(FLAG[2]=1)。由于S701和S702的确定执行优先于S703的确定执行,因此S703中的条件包括不满足S701和S702的条件。如果S703的条件满足,则下一个地址被设置为第二个地址(NEXT_ADD[4:0]<=(2)d)(S709)。
类似地,在当前内部地址为ADD[4:0]<(3)d~(30)d的情况下,下一个执行地址计算器81执行确定(S704、S705),并且设置下一个地址(NEXT_ADD[4:0]<=(3)d~(30)d)。
在S706中,下一个执行地址计算器81确定当前内部地址是否为ADD[4:0]<(31)d,即首地址至第30个地址(ADD[4:0]=(0)d~(30)d),以及第31个地址的写标志是否被置位(FLAG[31]=1)。如果S706的条件满足,则下一个地址被设置为第31个地址(NEXT_ADD[4:0]<=(31)d)(S712)。另一方面,如果S706的条件不满足,则下一个地址被设置为首地址(NEXT_ADD[4:0]<=(0)d)(S713)。因此,在这种情况下复位下一个地址。不过,由于最后地址计算器82确定该地址是最后地址,并且在该条件满足之前结束了处理,因此它通常不被选择。
以此方式,该实施例仅选择写标志被置位的必需地址,从而防止了多余地址的选择。在有些情况下,可以通过跳址来进行选择。
然后,参考图12的流程图,下面来讲述用于在最后地址计算器82中计算最后地址标志LASTFLAG的方法。最后地址计算器82将当前内部地址ADD[4:0]与写标志FLAG[31:0]的状态进行比较,并且计算出选择的内部地址是否为最后地址。在图12中,符号“~”表示逻辑非,并且“|”表示位逻辑和。
最后地址计算器82确定当前内部地址是否为首地址(ADD[4:0)=(0)d),并且对于从第一个至第31个地址的所有地址,写标志都没有被置位(~(|FLAG[31:1]))(S801)。因此,确定对于当前内部地址之后的所有地址,标志都没有被置位。如果S801的条件满足,则意味着当前内部地址是最后一个地址。因此,最后地址计算器81置位最后地址标志(LASTFLAG=1)(S808)。
此外,基本上与S802的确定同时地执行S802至S806的确定。如S801那样,步骤S802至S806确定对于当前内部地址之后的所有地址,标志是否被置位。
在S802中,最后地址计算器82确定当前内部地址是否为第一个地址(ADD[4:0]=(1)d),并且对从第二至第31个地址的所有地址(~(|FLAG[31:2]))写标志都没有被置位(S802)。如果S802的条件满足,则如S801中那样,意味着当前内部地址是最后地址。因此,最后地址计算器82置位最后地址标志(LASTFLAG=1)(S808)。
类似地,最后地址计算器82对当前内部地址为ADD[4:0]=(2)d~(30)d的情况进行比较(S804、S805),并且置位最后地址标志(LASTFLAG=1)(S808)。
此外,在S806中,在当前内部地址是第31个地址(ADD[4:0]=(31)d)时,最后地址计算器82置位最后地址标志(LASTFLAG=1),以指示该内部地址是最后地址而不参考写标志(S808)。如果S806的条件不满足,则意味着当前内部地址ADD[4:0]不是最后地址。因此,最后地址计算器82复位最后地址标志(LASTFLAG=0)(S807)。
通过根据为当前地址之后的地址设置的标志来计算最后地址标志,可以在当到达写标志被置位的必要地址的最后一个时结束该处理,而不对内部地址存储器10的所有位进行计数。从而防止了不必要地址的选择。
进而参考图13和14,下面来讲述下一个执行地址计算器81和最后地址计算器82的详细电路构造。
图13示出了下一个执行地址计算器81的电路构造的例子。该例子输入当前内部地址ADD[1:0],写标志FLAG[3:0]和初始设置标志INITFLAG,并且输出下一个地址NEXT_ADD[1:0]。
如图13所示,下一个执行地址计算器81是由具有由101至118所标示的逻辑门的组合电路组成的,这些逻辑门包括反相器、AND门、NAND门、OR门、NOR门和缓冲器。
初始设置标志INITFLAG被反相,并且输入到NAND门102的一个输入端。写标志FLAG
被输入到NAND门102的另一个输入端。写标志FLAG[1]被输入到反相器103的输入端。写标志FLAG[2]被输入到反相器101的输入端。写标志FLAG[3]被输入到反相器105的输入端。当前地址ADD
被输入到缓冲器104的输入端。当前地址ADD[1]被输入到缓冲器106的输入端。
反相器101、NAND门102、反相器103、缓冲器104、反相器105和缓冲器106的输出,通过AND门107、NOR门108、OR门109、AND门110、AND门111和NOR门112被输入到缓冲器116。缓冲器116的输出是下一个地址NEXT_ADD[1]。此外,反相器101、NAND门102、反相器103、缓冲器104、反相器105和缓冲器106的输出,通过AND门107、NOR门108、OR门109、AND门110、AND门111和NOR门112,并且进而通过AND门113 NOR门114、NAND门115和AND门117被输入到NOR门118。NOR门118的输出是下一个地址NEXT_ADD

下面的表1是真值表,其用于指示图13中所示的下一个执行地址计算器81中的输入和输出。
表1

表1示出了与图11的流程图相同的操作。例如,当输入为当前内部地址ADD[1:0]=(00)b,写标志FLAG
=1并且初始设置标志INITFLAG=1时,下一个执行地址计算器81输出下一个地址NEXT_ADD[1:0]=(00)b。
当输入为当前内部地址ADD[1:0]=(00)b,写标志FLAG[1]=0,写标志FLAG[2]=0,写标志FLAG[3]=1并且初始设置标志INITFLAG=0时,下一个执行地址计算器81输出下一个地址NEXT_ADD[1:0]=(11)b。此时,它选择初始地址(11)b,而不选择内部地址(01)b或(10)b。
当输入为当前内部地址ADD[1:0]=(01)b,写标志FLAG[2]=0,写标志FLAG[3]=1并且初始设置标志INITFLAG=0时,下一个执行地址计算器81输出下一个地址NEXT_ADD[1:0]=(11)b。此时,它选择初始地址(11)b,而不选择内部地址(10)b。
图13的电路可以由其它组合电路组成,只要其如表1所示来工作。
图14示出了最后地址计算器82的电路构造的例子。该例子输入当前内部地址ADD[1:0],写标志FLAG[3:0],并且输出最后地址标志LASTFLAG。
如图14所示,最后地址计算器82是由具有由201至209所示的逻辑门的组合电路组成的,这些逻辑门包括反相器、AND门、NAND门、OR门和NOR门。
由于最后地址计算器82不使用写标志FLAG
,因此写标志FLAG
没有被输入。写标志FLAG[1]被反相,并且被输入到AND门的一个输入端。写标志FLAG[2]被输入到NOR门204的一个输入端。写标志FLAG[3]被输入到OR门207的输入端。当前地址ADD
被输入到反相器201的输入端。当前地址ADD[1]被输入到反相器202的输入端。
这些输入通过反相器201、反相器202、AND门203、NOR门204、反相器205、NOR门206、OR门207和OR门208被输入到NAND门209。NAND门209的输出是最后地址标志LASTFLAG。
下面的表2是真值表,其用于指示图14中所示的最后地址计算器82中的输入和输出。
表2

表2示出了与图12的流程图相同的操作。例如,当输入为当前内部地址ADD[1:0]=(00)b,写标志FLAG[1]=0,写标志FLAG[2]=0并且写标志FLAG[3]=0时,最后地址计算器82输出最后地址标志LASTFLAG=1。此时,它选择初始地址(00)b作为最后地址,而不选择内部地址(01)b、(10)b或(11)b。
当输入为当前内部地址ADD[1:0]=(01)b,写标志FLAG[2]=0并且写标志FLAG[3]=0时,最后地址计算器82输出最后地址标志LASTFLAG=1。此时,它选择初始地址(01)b作为最后地址,而不选择内部地址(10)b或(11)b。
当输入为当前内部地址ADD[1:0]=(10)b并且写标志FLAG[3]=0时,最后地址计算器82输出最后地址标志LASTFLAG=1。此时,它选择初始地址(10)b作为最后地址,而不选择内部地址(11)b。
图14的电路可以由其它组合电路组成,只要其如表2所示工作。
下面来讲述根据第一和第二实施例的自动写操作时间的计算例子。该计算是在闪存的存储器单元为多值和为二值时缓冲器中的写地址的数量为32位的条件下进行的。在使用多值闪存的情况下,写操作在30次写入中结束并且电气写脉冲的宽度为500ns。在使用二值闪存的情况下,写操作在一次写入中结束,并且电气写脉冲的宽度为2us。
在该例子中,在由下面的表达式表示的顺序操作中计算了自动写入时间。下面的表达式1至3分别表示根据第一实施例的预校验、编程(写入)和后校验的处理时间。
表达式1预校验=查找(50ns)*所有地址的数量+校验(200ns)*必要地址的数量表达式2编程=查找(50ns)*所有地址的数量+编程(XX ns)*必要地址的数量表达式3后校验=查找(50ns)*所有地址的数量+校验(200ns)*必要地址的数量下面的表达式4至6分别表示根据第二实施例的预校验、编程(写入)和后校验的处理时间。
表达式4预校验=查找(50ns)*必要地址的数量+校验(200ns)*必要地址的数量表达式5编程=查找(50ns)*必要地址的数量+编程(XX ns)*必要地址的数量表达式6后校验=查找(50ns)*必要地址的数量+校验(200ns)*必要地址的数量下面的表3示出了当写数据段的数量为4至32时,根据上述表达式对二值闪存中的处理时间进行计算的结果。
表3

如表3所示,如果写数据段的数量为32,则数据段被全部存储在缓冲器1中,因此在查找时间上没有差别。因此,在第一实施例和第二实施例之间处理时间相同。由于第二实施例中的查找时间随着写数据段的数量减少而减少,因此总体处理时间相应地下降。如果写数据段的数量为4,则第二实施例中的处理时间为第一实施例中的处理时间的70.8%。
下面的表4示出了当写数据段的数量为4至32时,根据上述表达式对多值闪存中的处理时间进行计算的结果。
表4

图15为曲线图,示出了表3和4中的时间减少效果。如表3和4以及图15所示,如果写数据段的数量为32,则数据段被全部存储在缓冲器1中,因此在查找时间上没有差别。因此,在第一实施例和第二实施例之间处理时间相同,而没有获得时间减少的效果。随着写数据段的数量减少,由于第二实施例可以消除多余的地址选择处理,以减少查找时间,因此总体处理时间相应减少,从而使时间减少效果增加。例如,在二值闪存的情况下,如果写数据段的数量为4,则第一实施例中的处理时间为14.4us,而第二实施例中的处理时间为10.2us,从而第二实施例中的处理时间是第一实施例中的处理时间的70.8%。
由于在多值闪存中重试电气写入的数量和不需要进行写入的地址数量比二值闪存中的大,因此在多值闪存中增加处理速度的效果会更为明显。
例如,当使用多值闪存时,如果对于写数据段的数量为4的情况列出计算公式,则第一实施例中的处理时间可以由下述表达式7~10来表示表达式7预校验=(50ns*32个地址)+(200ns*4个地址)=2.4us表达式8编程=(50ns*32个地址)+(500ns*4个地址)=3.6us表达式9后校验=(50ns*32个地址)+(200ns*4个地址)=2.4us表达式10总计=(表达式7)+(表达式8+表达式9)*30=182.4us在相同条件下第二实施例中的处理时间的计算结果由下面的表达式11至14来表示表达式11预校验=(50ns*4个地址)+(200ns*4个地址)=1.0us表达式12编程=(50ns*4个地址)+(500ns*4个地址)=2.2us表达式13后校验=(50ns*4个地址)+(200ns*4个地址)=1.0us表达式14总计=(表达式11)+(表达式12+表达式13)*30=97.0us因此,第一实施例中的处理时间是182.4us,第二实施例中的处理时间是97.0us。因此,第二实施例中的处理时间减少到第一实施例中的处理时间的53.2%。
如前所述,在查找要校验或要写入的地址的过程中,该实施例不是像在第一实施例中那样依次选择所有的地址,而是只选择写标志被置位的地址。这消除了多余的地址选择操作,并且因此减少了写操作的处理时间,从而增加了写操作的速度。
此外,如果使用多值闪存作为要写入数据的存储器单元,则重试次数增加并且因此执行地址选择操作的次数相应地增加,从而能够进一步增加处理速度。
此外,在选择地址时,如果在存储器单元阵列中存在多余的电压施加,则使用该实施例能够防止施加多余的电介质应力。
第三实施例下面来讲述根据本发明的第三实施例的非易失性半导体存储器。除了下一个地址计算器8之外,该实施例的非易失性半导体存储器与第二实施例的非易失性半导体存储器相同。因此,这里不对其结构进行详细讲述。
第二实施例需要对相对大量的阶段进行比较操作。例如,如果内部地址为2个位,则下一个执行地址计算器81和最后地址计算器82的电路构造如图13和14所示。随着内部地址的位数增加,电路构造变得更加复杂。因此,由于电路操作规格,则比较操作可能会太迟。
为了克服这一缺点,本实施例将包括在下一个地址计算器8中的如图11的流程图所示的下一个执行地址计算器81的处理和如图12的流程图所示的最后地址计算器82的处理分成多个阶段。此外,在最终阶段中提供了选择器,用于选择和输出必要的操作结果。
图16为框图,示出了将处理分成例如两个阶段的情况。在下一个执行地址计算器81中,处理被分成第一个下一个执行地址计算器811和第二个下一个执行地址计算器812。例如,在图11的流程中,对写标志FLAG
至FLAG[15]的确定是由第一个下一个执行地址计算器(第一个下一个执行地址选择器)811来实现的,并且对写标志FLAG[16]至FLAG[31]的确定是由第二个下一个执行地址计算器(第二个下一个执行地址选择器)812来实现的。最后,选择器(第一个确定器)813选择由第一个下一个执行地址计算器811计算的地址或由第二个下一个执行地址计算器812计算的地址中的任何一个,并且输出结果。
类似地,在最后地址计算器82中,处理被分成第一个最后地址计算器821和第二个最后地址计算器822。在图12的流程图中对当前内部地址ADD[4:0]=(0)d~(15)d的确定是在第一个最后地址计算器(第一个最后地址确定器)821中实现的,并且对当前内部地址ADD[4:0]=(16)d~(31)d的确定是在第二个最后地址计算器(第二个最后地址确定器)822中实现的。最后,选择器(第二个确定器)823选择由第一个最后地址计算器821确定的最后地址标志或由第二个最后地址计算器822确定的最后地址标志中的任何一个,并且输出结果。
如前面所述,该实施例将下一个地址计算器的计算处理分成多个电路,从而进一步增加写操作的速度。因此甚至当缓冲器中的地址的数量增加,或者当下一个地址计算器的计算处理时间不满足电路操作规定时,也能够获得足够高的操作速度。
其他实施例尽管在上述实施例中的地址选择操作以从首地址到最后地址的升序来选择地址,但是并不限于此。该操作也可以以降序来选择地址,其具有相同的效果。因此,本发明例如可以适用于由于存储器单元阵列的构造而应该以降序来选择地址的情况,并且不会降低效果。
此外,尽管上述实施例中主要讲述了向存储器单元的数据写操作,但并不限于此,并且本发明可以应用于数据擦除操作。在数据擦除操作中,在擦除之前的写操作、擦除操作、回写操作以及针对这些操作中每一种操作的读操作中实施上述地址选择,并且能够减少擦除操作时间。
很明显,本发明并不限于上述实施例,只要不偏离本发明的范围和精神,可以对其进行修改和变化。
权利要求
1.一种非易失性半导体存储器,其具有包含多个存储器单元的扇区,作为数据擦除操作的最小单位,该存储器包括输入部件,用于把要写入的数据段批量输入到扇区中的多个地址;标志存储器,用于存储分别对应于多个地址的存储器单元的状态;以及地址设置电路,用于根据标志存储器中的信息来确定要选择的地址。
2.一种非易失性半导体存储器,其以包含多个数据段的数据块为单位来执行写/擦除操作,该存储器包括存储器单元阵列,其包含多个非易失性存储器单元;标志存储器,用于存储为每一个地址提供的、指示与包含在数据块中的多个数据段的每一个地址有关的写/擦除操作的成功/失败的标志;地址选择器,用于根据存储的标志来选择写/擦除操作失败的地址;写/擦除部件,用于对位于选择的地址中的非易失性存储器单元执行数据段的写/擦除操作;校验部件,用于执行校验操作,以校验对位于选择的地址中的非易失性存储器单元的数据写/擦除操作的成功/失败;以及标志更新部件,用于根据校验操作的结果来更新标志。
3.如权利要求2所述的非易失性半导体存储器,其中地址选择器通过使用与存储在标志存储器中的地址相对应的计数器来选择地址。
4.如权利要求3所述的非易失性半导体存储器,其中地址选择器在每一个数据写/擦除操作或校验操作中依次更新计数器,并且通过更新的计数器来依次选择地址。
5.如权利要求4所述的非易失性半导体存储器,其中当计数器被更新并且选择可存储在标志存储器中的最终地址时,地址选择器结束数据写/擦除操作或校验操作。
6.如权利要求3所述的非易失性半导体存储器,其中地址选择器包括下一个执行地址选择器,其在每一个数据写/擦除操作或校验操作中基本上同时检查存储在标志存储器中的多个标志,并且从多个标志中选择置位标志的地址。
7.如权利要求6所述的非易失性半导体存储器,其中下一个执行地址选择器检查与大于当前选择的地址的地址相对应的多个标志。
8.如权利要求6所述的非易失性半导体存储器,其中地址选择器包括第一个和第二个下一个执行地址选择器以及第一个确定器,该第一个确定器从由第一个和第二个下一个执行地址选择器选择的地址中确定一个地址,第一个下一个执行地址选择器检查与第一范围的地址相对应的多个标志,并且第二个下一个执行地址选择器检查与第二范围的地址相对应的多个标志。
9.如权利要求6所述的非易失性半导体存储器,其中地址选择器包括最后地址确定器,用于在选择地址时基本上同时检查存储在标志存储器中的多个标志,并且当所有的多个标志不被置位时,确定数据写/擦除操作或校验操作的完成。
10.如权利要求9所述的非易失性半导体存储器,其中最后地址确定器检查与大于当前选择的地址的地址相对应的多个标志。
11.如权利要求9所述的非易失性半导体存储器,其中地址选择器包括第一个和第二个最后地址确定器以及第二个确定器,用于根据从第一个和第二个最后地址确定器的确定选择的一个来确定数据写/擦除操作或校验操作的完成,第一个最后地址确定器检查与第一范围的地址相对应的多个标志,并且第二个最后地址确定器检查与第二范围的地址相对应的多个标志。
12.如权利要求2所述的非易失性半导体存储器,进一步包括缓冲器,用于存储包含在数据块中的多个数据段,其中写/擦除部件将存储在缓冲器中的数据段写入到非易失性存储器中,并且校验部件对存储在缓冲器中的数据段与从非易失性存储器中读出的数据段进行比较,并且根据该比较来校验写入的成功/失败。
13.如权利要求2所述的非易失性半导体存储器,其中校验部件在执行数据写/擦除操作之前执行校验操作,并且在执行数据写/擦除操作之后进一步执行校验操作。
14.如权利要求2所述的非易失性半导体存储器,其中校验部件根据地址选择器的地址选择,从数据块的首地址到最后地址重复校验操作,写/擦除部件在重复校验操作之后,根据地址选择器的地址选择,从数据块的首地址到最后地址重复写/擦除操作;以及校验部件在重复写/擦除操作之后,根据地址选择器的地址选择,从数据块的首地址到最后地址重复校验操作。
15.如权利要求2所述的非易失性半导体存储器,其中非易失性存储器单元是存储三个或更多阈值电平的多值存储器单元。
16.一种非易失性半导体存储器,包括存储器单元阵列;缓冲器,用于响应一个指令来接收多个数据单位;标志存储器,其具有标志位;并且每一个位对应于存储在缓冲器中的每一个数据单位。
17.如权利要求16所述的非易失性半导体存储器,进一步包括顺序控制器,用于根据标志位来跳过地址。
全文摘要
一种非易失性半导体存储器,其包括存储器单元阵列;标志信息存储器,用于存储用于指示与数据块中包含的多个数据段的每一个地址有关的写入成功/失败的写标志;内部地址存储器,用于选择写入失败的地址;写电路,用于执行数据写入;比较器,用于执行校验操作,以校验数据写入的成功/失败;以及顺序控制器,用于根据校验操作的结果来更新写标志。
文档编号G11C16/02GK1855306SQ20061007714
公开日2006年11月1日 申请日期2006年4月27日 优先权日2005年4月27日
发明者蛇岛浩史 申请人:恩益禧电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1