式的情况下,第2逻辑电路204仅针对读出数据R0为“1”状态的比特且写入数据DIN为“0”的比特,输出设定了“0”的改写比特信息D02。此外,在模式控制信号MODE为“ 1 ”、即为校验模式的情况下,第2逻辑电路204仅针对读出数据R0为“1”状态的比特且保持在第2内部存储电路206中的上次改写动作所使用的改写比特信息DIN2被设定“0”的比特,输出设定了 “0”的改写比特信息D02。
[0028]第1内部存储电路205将第1逻辑电路203的输出D01作为输入,且具有至少能够保持1个地址的量的改写比特信息的结构,在第1写入使能信号BUF1_EN被设为有效(asserted)的情况下,取入第1逻辑电路203的输出D01。第2内部存储电路206将第2逻辑电路204的输出D02作为输入,且具有至少能够保持1个地址的量的改写比特信息的结构,在第2写入使能信号BUF2_EN被设为有效的情况下取入第2逻辑电路204的输出D02。
[0029]图4是表示图1的非易失性半导体存储装置的改写动作的流程图。若开始改写,则首先,写入地址通过行解码电路101X以及列解码电路101Y而被解码,写入对象的存储单元被选择。然后,通过读出放大器102,实施在写入地址所指定的存储单元中写入的数据的读出动作、即回读动作(步骤S1)。此时,第1选择电路201以及第2选择电路202均输出写入数据DIN。
[0030]第1逻辑电路203结合图2的真值表基于写入数据DIN和读出数据R0,针对应执行从“0”状态向“1”状态的改写的比特,输出设定了 “0”的改写比特信息、针对不需要从“0”状态向“1”状态的改写的比特,输出设定了“1”的改写比特信息。第2逻辑电路204结合图3的真值表基于写入数据DIN和读出数据R0,针对应执行从“1”状态向“0”状态的改写的比特,输出设定了“0”的改写比特信息、针对不需要从“1”状态向“0”状态的改写的比特,输出设定了 “1”的改写比特信息。第1写入使能信号BUF1_EN以及第2写入使能信号BUF2_EN被设为有效,第1逻辑电路203的输出D01以及第2逻辑电路204的输出D02分别被缓存(buffered)至第1内部存储电路205以及第2内部存储电路206 (步骤S2)。
[0031]第1逻辑电路203以及第2逻辑电路204中的数据判定、和向第1内部存储电路205以及第2内部存储电路206的数据存储分别能够同时实施,因此能够实现从“0”状态向“1”状态的改写比特信息、和从“1”状态向“0”状态的改写比特信息的同时生成以及同时存储。
[0032]在改写比特信息生成后,在从“0”状态向“1”状态的改写比特信息为“0”的情况下,通过数据改写电路103,来实施从该存储单元的“0”状态向“1”状态的电改写(以下,称作“1”写入动作)(步骤S3)。
[0033]在“1”写入动作实施后,进行存储单元是否如期被改写的判定动作(以下,称作“1”校验动作)(步骤S4)。此时,由于模式控制信号MODE被设定为“1”,因此第1选择电路201选择第1内部存储电路205的输出。
[0034]第1逻辑电路203结合图2的真值表基于第1内部存储电路205所输出的上次的改写比特信息和读出数据R0,针对应再次执行从“0”状态向“1”状态的改写的比特,输出设定了“0”的改写比特信息。然后,第1写入使能信号BUF1_EN被设为有效,第1逻辑电路203的输出D01被缓存至第1内部存储电路205 (步骤S5)。由于第2写入使能信号BUF2_ΕΝ为无效状态(negate state),因此第2内部存储电路206的保持数据不被更新。
[0035]在“1”校验动作后,在存在需要从“0”状态向“1”状态的再次的改写动作的比特的情况下,结合从“ 0 ”状态向“ 1 ”状态的改写比特信息,返回步骤S3来实施“ 1 ”写入动作。“1”写入动作和“1”校验动作被反复实施,在没有了需要从“0”状态向“1”状态的改写的比特的时间点、即在构成保存在第1内部存储电路205中的改写比特信息的所有比特已变为“1”的时间点,“1”写入完成(步骤S6)。
[0036]在“1”写入完成后,结合从“1”状态向“0”状态的改写比特信息,通过数据改写电路103,来实施从该存储单元的“1”状态向“0”状态的电改写(以下,称作“0”写入动作)(步骤S7)。
[0037]在“0”写入动作实施后,进行存储单元是否如期被改写的判定动作(以下,称作“0”校验动作)(步骤S8)。此时,由于模式控制信号MODE被设定为“1”,因此第2选择电路202选择第2内部存储电路206的输出。
[0038]第2逻辑电路204结合图3的真值表基于第2内部存储电路206所输出的上次的改写比特信息和读出数据R0,针对应再次执行从“1”状态向“0”状态的改写的比特,输出设定了 “0”的改写比特信息。第2写入使能信号BUF2_EN被设为有效,第2逻辑电路204的输出被缓存至第2内部存储电路206 (步骤S9)。由于第1写入使能信号BUF1_EN为无效状态,因此第1内部存储电路205的保持数据不被更新。
[0039]在“0”校验动作后,存在需要从“1”状态向“0”状态的再次的改写动作的比特的情况下,结合从“ 1 ”状态向“ 0 ”状态的改写比特信息,返回步骤S7来实施“ 0 ”写入动作。“ 0 ”写入动作和“0”校验动作被反复实施,在没有了需要从“ 1 ”状态向“0”状态的改写的比特的时间点、即在构成保持在第2内部存储电路206中的改写比特信息的所有比特已变为“1”的时间点,“0”写入完成(步骤S10)。
[0040]如上,在“1”写入以及“0”写入完成的时间点,非易失性半导体存储装置的改写动作完成。另外,虽然进行了假定在“1”写入后进行“0”写入的流程的说明,但也可以在“0”写入后进行“1”写入。
[0041](第2实施方式)
[0042]图5是表示本发明的第2实施方式所涉及的非易失性半导体存储装置的构成的图。图5中的改写比特信息生成电路200,除了图1中的构成之外,还具备逻辑输出选择电路300和内部存储选择电路301。
[0043]逻辑输出选择电路300根据第1选择控制信号SELA,选择第1逻辑电路203的输出D01或第2逻辑电路204的输出D02中的任意一方,并将其与第2内部存储电路206的输入连接。内部存储选择电路301根据第2选择控制信号SELB,选择第1内部存储电路205的输出或第2内部存储电路206的输出中的任意一方,并将其与第1选择电路201的一方的输入以及第2选择电路202的一方的输入连接。
[0044]在第2实施方式中,在通常改写时,将逻辑输出选择电路300和内部存储选择电路301控制为能够实施与第1实施方式同样的动作的连接,高速地实现从“0”状态向“1”状态的改写比特信息生成以及从“1”状态向“0”状态的改写比特信息生成。关于通常改写的情况下的其他电路动作,由于在第1实施方式中进行了说明,因此省略说明。
[0045]作为第2实施方式中的改写的流程,以下针对如下情况进行说明:在要写入的存储器区域的写入状态一样的情况、写入数据DIN—样的情况下等,存在从“0”状态向“ 1”状态的改写,或者从“1”状态向“0”状态的改写之中未实施的改写的情况。以下的说明,是在图5所示的第2实施方式中,仅实施从“0”状态向“1”状态的改写的情况下的动作例。
[0046]若开始改写,贝首先,通过读出放大器102,实施在写入地址所指定的存储单元中写入的数据的读出动作。此时,第1选择电路201输出写入数据DIN。
[0047]第1逻辑电路203结合图2的真值表基于写入数据DIN和读出数据R0,针对应执行从“0”状态向“1”状态的改写的比特,输出设定了 “0”的改写比特信息、针对不需要从“0”状态向“1”状态的改写的比特,输出设定了“1”的改写比特信息。第1写入使能信号BUF1_EN被设为有效,第1逻辑电路203的输出D01被缓存至第1内部存储电路205。
[0048]接着,通过读出放大器102,实施在与之前的写入地址不同的作为写入对象的地址的存储单元中写入的数据的读出动作。此时,第2选择电路202输出写入数据DIN。
[0049]第1逻辑电路203结合图2的真值表基于写入数据DIN和读出数据R0,针对应执行从“0”状态向“1”状态的改写的比特,输出设定了 “0”的改写比特信息、针对不需要从“0”状态向“1”状态的改写的比特,输出设定了 “1”的改写比特信息。逻辑输出选择电路300选择第1逻辑电路203的输出D01,与第2内部存储电路206连接。第2写入使能信号BUF2_EN被设为有效,第1逻辑电路203的输出D01被缓存至第2内部存储电路206。
[0050]通过逻辑输出选择电路300,能够将第1逻辑电路203的输出D01保持在第1内部存储电路205以及第2内部存储电路206中,能够扩展写入缓存器