具体实施方式
依据本发明,可以提供无需扩展Vth window就可充分防止因Vth起伏而产生的读出错误的半导体存储装置。
下面,就本发明的实施例用附图进行说明。再者,图中相同或相当的部分上带有相同的标记,不再重复其说明。
<第1实施例>
[结构与基本动作]
图1是表示本发明第1实施例的半导体存储装置的结构图。
参照图1,半导体装置设有:存储体100、多路转接器6、列地址计数器7、输入数据控制器8、数据输入缓冲器9、页面地址缓冲器10、控制电路11、读出电压生成电源电路12、读写/程序/擦除控制器13、数据输出缓冲器14、控制信号缓冲器15。
存储体100包含:存储器阵列1、数据寄存器2、Y选通器3、Y译码器4、X译码器5。本实施例的半导体存储装置设有1个以上的存储体100。
存储器阵列1包含多个通常存储单元。另外,存储器阵列1包含具有与通常存储单元同样的结构的1个以上的RMC(Reference MemoryCell:参考存储单元)。
数据寄存器2、Y选通器、Y译码器4及X译码器5构成读出/写入部50,对存储器阵列1的存储单元进行读出和写入。
从外部输入的地址信号通过多路转接器6向页面地址缓冲器10及列地址计数器7输出。另外,从外部输入的数据通过多路转接器6、数据输入缓冲器9及输入数据控制器8向Y选通器3输出。从存储器阵列1读出的数据通过数据寄存器2、Y选通器3、数据输出缓冲器14及多路转接器6向外部输出。
页面地址缓冲器10将相应于作为可以以1次进行数据写入为单位按页面向X译码器5输出地址信号。
X译码器5将从页面地址缓冲器10接受的地址信号进行译码,并选择对应于存储器阵列1的特定的存储单元的字线。而且,X译码器5将已选择的字线以恒定的电压驱动。这里,X译码器5在数据的读出时,用从后述的读出电压生成电源电路12供给的读出电压来驱动字线。各存储单元的控制栅连接在字线上,读出电压通过字线加在各存储单元的控制栅上。
列地址计数器7将按页面的地址信号向Y译码器4输出。另外,列地址计数器7将从特定的地址依次加一的地址信号向Y译码器4输出。
Y译码器4将从列地址计数器7接受的地址信号译码并生成选择信号,向Y选通器3输出。
Y选通器3在从Y译码器4接受的选择信号表示的数据寄存器2的地址上,保存从输入数据控制器8接受的数据,或者,在从Y译码器4接受的选择信号表示的数据寄存器2的地址上,取得所保存的数据。
数据寄存器2选择对应于选择信号表示的数据寄存器2的地址的存储器阵列1的位线。通过由X译码器5产生的字线的选择和由数据寄存器2、Y选通器3及Y译码器4产生的位线的选择,写入对象的存储单元及作为读出对象的存储单元被指定。
这里,对存储单元的数据的写入通过例如向存储单元的控制栅、漏极及源极外加规定的电压,通过在浮栅上注入电子并缓缓地使阈值电压上升来进行。亦即,数据寄存器2、Y选通器3、Y译码器4及X译码器5通过将写入对象的存储单元的阈值电压作为对应于从输入数据控制器8接受的数据的逻辑电平的阈值电压,进行数据的写入。
另外,从存储单元的数据读出是这样进行的,即,通过例如在存储单元的控制栅上,施加对应于各逻辑电平的读出电压,并以在存储单元的源极、漏极间是否流过电流来判断数据的逻辑电平。用这样的方法从作为读出对象的存储单元读出的数据被保存在数据寄存器2上,通过Y选通器3、数据输出缓冲器14及多路转接器6向外部输出。
读出/程序/擦除控制器13通过控制信号缓冲器15并根据从外部输入的命令信号,对各电路进行使其对存储单元写入、读出及擦除的控制。
控制电路11根据RMC的存储的数据确定读出电压值,并将表示已确定的读出电压值的修整数据向读出电压生成电流电路12输出。
读出电压生成电源电路12根据从控制电路11接受的修整数据生成读出电压,并供给X译码器5。
图2表示传统半导体存储装置在存储2位的数据时的存储单元的阈值电压。
参照图2,电压最低的阈值电压分布对应于逻辑电平“11”。下面,将该状态称为擦除状态。通过对存储单元进行写入,将阈值电压比擦除状态增高,得到对应于逻辑电平“10”、“01”、及“00”的阈值电压。以下,将该状态称为写入状态。
另外,在存储1位数据时,该半导体存储装置的擦除状态对应于逻辑电平“1”,写入状态对应于逻辑电平“0”。
再者,阈值电压与逻辑电平的对应不限定于上述的情况,例如,也可以是与上述的逻辑电平反相的对应关系。
另外,α表示Vth window的宽度,β表示相对于阈值电压分布的读出电压的容限,γ表示阈值电压分布的宽度,Ra、Rb、及Rc表示读出电压。再者,β是由实验等得到的值,设定可以防止由Vth起伏产生的读出错误的值。另外,在传统半导体存储装置中,将对阈值电压分布的读出电压的容限固定为β。
下面,就有关各种快闪存储器,将配置RMC的存储器阵列1的结构用附图进行说明。
图3表示一例本实施例的半导体存储装置中存储器阵列1的结构。参照图3,存储器阵列1是NAND型快闪存储器的存储器阵列。另外,图4表示另一例本实施例的半导体存储装置中的存储器阵列1的结构。参照图4,存储器阵列1是NOR型快闪存储器的存储器阵列。
在图3、图4中,虚线圆包围的存储单元表示作为读出对象的存储单元,箭头表示读出时的电流通路。参照图3及图4,存储器阵列1包含通常存储单元、RMC、选择栅(STMOS)。另外,在各字线上配置1个RMC。
图5~图7表示在各本实施例的半导体存储装置中,存储器阵列1的结构。实线表示的布线表示扩散层布线或金属布线,虚线表示的布线表示反转层布线,虚线圆包围的存储单元表示作为读出对象的存储单元,箭头表示读出时的电流通路,另外,存储单元的数字表示页面号。
参照图5~图7,存储器阵列1是AG-AND型快闪存储器的存储器阵列。AG-AND型快闪存储器的存储器阵列中,存储单元晶体管的位线不是用扩散层来形成,而是在辅助栅(AG)上施加电压时,用形成在半导体基板的主表面上的反转层来形成。于是,不必在存储单元区域上形成用以形成位线的杂质区域,可以谋求非易失性半导体存储装置的小型化。这样的技术,被记载于例如公知文献(Y.Sasago,et.al.,:”90-nm-node multi-leve AG-AND type flash memorywithcell size of true 2F2/bit and programming throughput of 10MB/s”,IEDM Tech.Dig.,(2003)p.823.)上。
在图5~图7中,存储器阵列1包含通常存储单元、RMC、选择栅(STMOS)。RMC在各字线上,在对应于页面0~页面3各配置4个。
再者,RMC的配置不限定于图3~图7所示的配置,而如图3~图7所示的那样,各字线的RMC对应于共同的选择栅来配置是理想的结构,因为这样可以简化对RMC的读出控制及写入控制。另外,也不限定于在所有的字线上配置RMC的结构,也可以是仅配置为防止由特定存储单元的Vth起伏而产生的读出错误所需的RMC之结构。
图8A表示本实施例的半导体存储装置中写入时及读出时的数据的流动和生成读出电压的动作。斜线部分表示对应于RMC的部分。另外,图8B是表示控制电路11的详图。
参照图8A,从外部输入的数据,通过Y选通器3、数据寄存器2、主放大器及读出闩锁电路写入到存储器阵列1上。
另外,从存储器阵列读出的数据,通过读出闩锁电路、主放大器、数据寄存储器2及Y选通器3向外部输出。
主放大器在图1中未示出,它配置在存储器阵列1及数据寄存器2之间,对写入在存储器阵列1的数据及从存储器阵列1读出的数据进行放大。读出放大器在图1中未示出,它包含在数据寄存器2中,放大从存储器阵列1读出的、从寄存器2向Y选通器3输出的数据。
这里,在对应于Y选通器3及Y译码器4的RMC的部分(RMC选通器及RMC译码器)上,不存在与外部的数据通路。亦即,不论从外部输入怎样的信号,也不能对RMC进行读出及写入。由于这样的结构,可以防止半导体存储装置以来自外部的操作而发生误动作。另外,用户无需对半导体存储装置进行特别的操作,就可以防止由Vth起伏产生的读出错误。
在对存储单元进行写入来设为写入状态的场合,数据寄存器2、Y选通器3、Y译码器4和X译码器5也对与写入对象的存储单元对应的RMC进行写入来设为写入状态。例如,在图3所示的NAND型的存储器阵列中,数据寄存器2、Y选通器3、Y译码器4及X译码器5在作为对字线WL-A的存储单元进行写入来设置写入状态时,也对字线WL-A的RMC进行写入来设置写入状态。
这里,被写入到RMC上的数据的逻辑电平也可以是表示RMC的擦除状态的逻辑电平以外的电平,没有特别的限定,而该半导体存储装置在存储1位数据的场合,表示写入状态的逻辑电平“0”的数据被写入在RMC上。例如,Y选通器3及Y译码器4在该半导体存储装置的起动时,在对应于数据寄存器2的RMC的地址上保存逻辑电平“0”的数据。由于这样的结构,在对RMC进行写入时,总是写入逻辑电平“0”的数据。
控制电路11在对存储单元进行读出之前,进行使数据寄存器2、Y选通器3、Y译码器4及X译码器5从对应于邻接的存储单元的RMC读出的控制。而且,控制电路11从Y选通器3接受读出的数据,在对应于邻接存储单元的RMC是写入状态时,修正通常的读出电压,将表示修正后的电压值的修整数据向读出电压生成电源电路12输出(图8B)。
而且,读出电压生成电源电路12将修正后的读出电压供给X译码器5。
[动作]
图9是规定本实施例的半导体存储装置进行数据读出时的动作步骤的流程图。以下,假定字线WL-A及字线WL-B相邻接,另外,作为读出对象的存储单元连接在字线WL-B上来进行说明。
首先,半导体存储装置从外部输入地址信号及表示数据读出的命令信号(步骤S1~S3)。
接着,数据寄存器2、Y选通器3、Y译码器4和X译码器5在从作为读出对象的存储单元读出数据之前,对邻接于字线WL-B的字线WL-A的RMC进行数据读出(步骤S4)。
更详细地说,在X译码器5将从页面地址缓冲器10接受的地址信号进行译码,并在选择对应于作为读出对象的存储单元的字线WL-B之前,选择邻接于字线WL-B的字线WL-A。另外,在Y译码器4将对应于作为读出对象的存储单元的选择信号向Y选通器3输出之前,将对应于邻接于字线WL-B的字线WL-A的RMC的选择信号向Y选通器输出。而且,对RMC进行前述那样的数据读出。
控制电路11在RMC是写入状态时(步骤S4的NO),将表示在通常的读出电压上加上β/2后的电压的修整数据,向读出电压生成电源电路12输出(S5)。
另一方面,控制电路11在RMC是擦除状态时(步骤S4的YES),将表示通常的读出电压的修整数据向读出电压生成电源电路12输出(S5)。
然后,数据寄存器2、Y选通器3、Y译码器4及X译码器5用读出电压生成电源电路12供给的读出电压从作为读出对象的存储单元读出数据,并向外部输出(S6及S7)。
控制电路11或者也可说成具有以下那样的结构与动作。亦即,控制电路11存储数据逻辑电平的判定位置,即每个对应于各逻辑电平的阈值电压分布的边界上多个读出电压(通常的读出电压以及在通常的读出电压上加上β/2后的读出电压),字线WL-A的RMC根据是写入状态或是擦除状态,将这些读出电压的任一方作为对字线WL-B的存储单元选择为读出电压。
图10A~10C表示由邻接存储单元产生的Vth起伏及本实施例的半导体存储装置进行的读出电压修正。这里,就字线WL-A上因邻接存储单元的影响而在字线WL-B的存储单元上产生的Vth起伏进行说明。再者,为简单起见,说明中假定读出电压相对于阈值电压分布的的容限在字线WL-A上固定于β。另外,Ra、Rb、及Rc是通常的读出电压,亦即是初期状态中的读出电压。还有,实线的读出电压是现在使用的读出电压,虚线的读出电压是现在不使用的读出电压。另外,斜线表示的阈值电压是在各状态中的存储单元的当前阈值电压分布。
首先,字线WL-A的存储单元及字线WL-B的存储单元在初期状态,即擦除状态时不产生Vth起伏,因此不进行读出电压的修正,可以用通常的读出电压对字线WL-B的存储单元进行数据读出(图10A)。
接着,对字线WL-B的存储单元进行写入来设置写入状态。由于字线WL-A继续为擦除状态,在字线WL-B的存储单元上不产生Vth起伏,。因而,可以不进行读出电压的修正,对字线WL-B的存储单元进行数据读出(图10B)。
接着,对字线WL-A的存储单元进行写入来设置写入状态。这时,也对字线WL-A的RMC进行写入来设置写入状态。由于字线WL-A的存储单元成为写入状态,由FG-FG耦合产生的Vth起伏在字线WL-B的存储单元上产生(图10C)。
这是因为:如果对字线WL-A的存储单元进行写入,亦即在字线WL-A的存储单元FG上注入电子,则由于字线WL-B的存储单元的电位上升,字线WL-B的存储单元的阈值电压分布向正方向扩展。
但是,在本实施例的半导体存储装置中,在对字线WL-B的存储单元进行读出之前,对字线WL-A的RMC进行读出。而且,判断为:在字线WL-A的RMC是写入状态时,字线WL-B的存储单元上Vth起伏产生,并在通常的读出电压Ra、Rb、及Rc上进行修正,亦即,用在通常的读出电压Ra、Rb、及Rc上加上β/2后的读出电压来对字线WL-B的存储单元进行读出。因而,即使在字线WL-B的存储单元上有Vth起伏产生时,也可对字线WL-B的存储单元进行正常读出。
因而,由于可以通过对字线WL-A的RMC进行读出来判断字线WL-B的存储单元上是否产生Vth起伏,在字线WL-B的存储单元的初期状态下,可以将读出电压比图2所示的传统半导体存储装置的读出电压减小β/2(图10A)。
图11A~11D表示由邻接存储单元产生的Vth起伏及本实施例的半导体存储装置进行的读出电压的修正。这些图的判读方法与图10相同。另外,由于图11A与图10A一样,这里不重复说明。
后接图11A所示的状态,对字线WL-A的存储单元进行写入来设置写入状态。这时,与图10C一样,基于FG-FG耦合的Vth起伏在字线WL-B的存储单元上产生(图11B)。
虽然字线WL-B的存储单元的阈值电压分布向正方向扩展,但是在本实施例的半导体存储装置中,由于在字线WL-B的存储单元上判断为Vth起伏产生,并在通常的读出电压Ra、Rb、及Rc上进行修正,可以对字线WL-B的存储单元进行正常的读出。
接着,对字线WL-B的存储单元进行写入来设置写入状态。这时,在对字线WL-B的存储单元的写入前后,由于字线WL-A的存储单元的状态不变化,因此Vth起伏不产生(图11C)。
这里,虽然在字线WL-B的存储单元上不产生Vth起伏,但是如在图11B中说明过的那样,对字线WL-B的存储单元的读出电压作了修正,阈值电压分布的低电压一侧的读出电压也增大β/2。这里,在本实施例的半导体存储装置中,对于阈值电压分布的低电压一侧的读出电压的容限与图2所示的传统半导体存储装置的设定一样,在初期状态中确保为β。因而,对阈值电压分布的低电压一侧的读出电压的容限确保β/2,可以对字线WL-B的存储单元正常地进行读出。
接着,将字线WL-A的存储单元设为擦除状态。这时,字线WL-A的RMC也成为擦除状态。由于字线WL-A的存储单元从写入状态变成了擦除状态,由FG-FG耦合产生的Vth起伏产生在字线WL-B的存储单元上(图11D)。
这样,字线WL-A的存储单元从写入状态变成了擦除状态,亦即,如果从字线WL-A的存储单元的FG提取电子,则由于字线WL-B的存储单元的电位下降,所以,字线WL-B的存储单元的阈值电压分布向负方向扩展。
这时,由于字线WL-A的RMC是擦除状态,不进行对字线WL-B的存储单元的读出电压的修正,读出电压保持Ra~Rc原样不动。这里,在本实施例的半导体存储装置中,对阈值电压分布的低电压一侧的读出电压的容限与图2所示的传统半导体存储装置的设定一样,在初期状态确保β。因而,确保对于阈值电压分布的低电压一侧的读出电压的容限,对于字线WL-B的存储单元,可以正常地进行读出。
图12是传统半导体存储装置和本实施例的半导体存储装置的Vth窗口宽度比较图。
参照图12,传统半导体存储装置将相对于阈值电压分布的读出电压的容限固定,Vth窗口宽度是β×7+γ×3。对此,在本实施例的的半导体存储装置中,将初期状态中的读出电压比图2所示的传统半导体存储装置的读出电压减小β/2,亦即将对于阈值电压分布的高电压一侧的读出电压的容限取为β/2。而且,仅在判断为在存储单元上Vth起伏产生时,将读出电压在图2所示的传统半导体存储装置的读出电压上进行修正。亦即,将阈值电压分布的高电压一侧的读出电压的容限修正为β。因而,在本实施例的半导体存储装置中,在初期状态下,Vth窗口宽度成为(β/2)×11+γ×3,与传统半导体存储装置相比较,可以将Vth窗口宽度变窄(β/2)×3。
可是,在专利文献1记载的半导体存储装置中,由于其构成为防止由因同一字线中邻接存储单元的影响产生的Vth起伏而引起的读出错误,不能防止由因邻接字线中邻接存储单元的影响产生的Vrh起伏而引起的读出错误。但是,在本实施例的半导体存储装置中,在对于作为读出对象的字线WL-B的存储单元进行读出之前,对邻接的字线WL-A的RMC进行读出。而且,在字线WL-A的RMC是写入状态时,判断为在字线WL-B的存储单元上Vth起伏产生,用修正后的读出电压来对字线WL-B的存储单元进行读出。因而,可以防止在邻接字线中由因邻接存储单元的影响产生的Vth起伏引起的读出错误。
另外,在专利文献1记载的半导体存储装置中,不能防止由存储1位(而不是多位)的数据的存储单元的Vth起伏产生的读出错误。但是,在本实施例的半导体存储装置中,在存储单元存储1位数据时,将对于对应于写入状态的逻辑电平“0”的阈值电压分布的高电压一侧的读出电压的容限作为β/2,仅在判断为在存储单元上Vth起伏产生时,将对于阈值电压分布的高电压一侧的读出电压的容限修正至β。因而,在本实施例的半导体存储装置中,可以防止由存储1位(而不是多位)的数据的存储单元的Vth起伏产生的读出错误。
于是,在本实施例的半导体存储装置中,可以不扩展Vth Window而充分防止由Vth起伏产生的读出错误。
下面,就本发明的其它实施例用附图进行说明。再者,图中相同或相当部分带有相同的标志,不再重复其说明。
<第2实施例>
本实施例涉及防止由在两侧的邻接字线上,因存储单元的影响产生的Vth起伏而产生的读出错误的半导体存储装置。本实施例的半导体存储装置的结构与基本动作和第1实施例的半导体存储装置相同。
[动作]
图13是规定本发明第2实施例的半导体存储装置进行数据读出时的动作步骤的流程图。以下,字线WL-A、WL-B、WL-C相邻接,另外,说明中假定作为读出对象的存储单元连接在字线WL-B上。
首先,半导体存储装置从外部输入地址信号以及表示数据读出的命令信号(步骤S11~S13)。
接着,在从作为读出对象的存储单元读出数据之前,数据寄存器2、Y选通器3、Y译码器4及X译码器5对邻接于字线WL-B的字线WL-A的RMC及字线WL-C的RMC进行数据读出(步骤S14)。
在字线WL-A的RMC和字线WL-C的RMC的任一方是写入状态时(步骤S14中是YES、步骤S15中YES),控制电路11将表示在通常的读出电压上加上β/2后的电压的修整数据,向读出电压生成电源电路12输出(S16)。
另外,在字线WL-A的RMC和字线WL-C的RMC的两方都是写入状态时(步骤S14中YES、步骤S15中NO),控制电路11将表示在通常的读出电压上加上β后的电压的修整数据,向读出电压生成电源电路12输出(S17)。
另一方面,在字线WL-A的RMC和字线WL-C的RMC的两方都是擦除状态时,控制电路11将表示通常的读出电压的修整数据,向读出电压生成电源电路12输出(步骤S14中NO)。
而且,数据寄存器2、Y选通器3、Y译码器4及X译码器5用读出电压生成电源电路12供给的读出电压来从作为读出对象的存储单元读出数据,向外部输出(S18及S19)。
图14A~14C表示由字线WL-B的存储单元的邻接存储单元的影响而产生的阈值电压的变动以及本实施例的半导体存储装置进行的读出电压的修正。这里,就在字线WL-A及字线WL-C中,因邻接存储单元的影响在字线WL-B的存储单元上产生的Vth起伏进行说明。另外,说明中因一方的邻接字线上的邻接存储单元的影响而产生的Vth起伏被假定为β/2。图的其它方面可以与图10相同地理解。
首先,在传统半导体存储装置中,对阈值电压分布的读出电压的容限固定在β(图14(A))。这里,图14(B)是对应于示于图11(A)的逻辑电平“10”的阈值电压分布的扩展图。例如,在初期状态,对字线WL-B的存储单元进行写入来设置写入状态,然后,如果对字线WL-A的存储单元及字线WL-C的存储单元的任一方进行写入来设置写入状态,则Vth起伏在字线WL-B的存储单元上仅产生β/2(图14B的阈值电压分布t1)。再者,如果对于擦除状态的字线WL-A的存储单元或字线WL-C的存储单元进行写入来设置写入状态,则Vth起伏在字线WL-B的存储单元上产生β(图14B的阈值电压分布t2)。因而,传统半导体存储装置中,将对阈值电压分布的读出电压的容限至少需要常时确保β。
但是,在本实施例的半导体存储装置中,由于能够通过对字线WL-A的RMC和字线WL-C的RMC进行读出来判断在字线WL-B的存储单元上Vth起伏是否产生,在字线WL-B的存储单元的初期状态下,可以将读出电压比图2所示的传统半导体存储装置的读出电压减小β(图14C)。
图15是传统半导体存储装置和本实施例的半导体存储装置的Vth窗口宽度比较图。
参照图15,传统半导体存储装置中对阈值电压分布的读出电压的容限被固定,Vth窗口宽度是β×7+γ×3。与此形成对照,在本实施例的半导体存储装置中,初期状态的读出电压比图2示出的传统半导体存储装置的读出电压减小β,亦即,对阈值电压分布的高电压一侧的读出电压的容限设为β。而且,仅在判断为存储单元上Vth起伏产生时,将对阈值电压分布的高电压一侧的读出电压的容限修正至β/2或β。因而,在本实施例的半导体存储装置中,在初期状态的Vth窗口宽度为β×4+γ×3,与传统半导体存储装置相比,可以将Vth窗口宽度变窄β×3,对于第1实施例的半导体存储装置,更可以提供质量高的半导体存储装置。
下面,就本发明的其它实施例用附图进行说明。再者,在图中相同或相当部分上带有相同标记,不重复其说明。
<第3实施例>
本实施例涉及防止由因两侧的邻接字线及同一字线上的存储单元的影响产生的Vth起伏而引起的读出错误的半导体存储装置。
图16表示本发明第3实施例的半导体存储装置中的存储器阵列1的概略结构。
参照图16,存储器阵列1包含字线WL-A、WL-B及WL-C。字线WL-A、WL-B及WL-C相互邻接。在各字线上配置对应于页面0~3的存储单元及RMC。以下说明中,假定作为读出对象的存储单元是对应于WL-B的页面0的存储单元。其它的结构与基本动作与第1实施例的半导体存储装置相同。
[动作]
图17是规定本发明第3实施例的半导体存储装置中的控制电路11进行读出电压的修正时的动作步骤的流程图。
在本实施例的半导体存储装置中,与第1实施例和第2实施例的半导体存储装置一样,在从作为读出对象的存储单元读出数据之前,对与邻接存储单元对应的RMC进行数据读出。
首先,对与字线WL-A和字线WL-C上的页面0对应的RMC(由图16的(1)表示的RMC)进行数据读出(步骤S21和步骤S23)。控制电路11在这些RMC的任一方是写入状态时,在通常的读出电压上加上+x的补偿。另外,控制电路11在两方RMC均为写入状态时,在通常的读出电压上加上+x×2的补偿(步骤S21~S24)。
下面,对与字线WL-B上的页面1和页面3对应的RMC(由图16的(2)示出的RMC)进行数据读出(步骤S25和步骤S27)。控制电路11在这些RMC的任一方是写入状态时,在通常的读出电压上再加上+y的补偿。另外,控制电路11在两方的RMC均为写入状态时,在通常的读出电压上再加上+y×2的补偿(步骤S25~S28)。
接着,对与字线WL-A及字线WL-C上的页面1及页面3对应的RMC(由图16的(3)示出的RMC)进行数据的读出(步骤S29、S31、S33及S35)。控制电路11在这些RMC之中的任何1个、2个、3个或全部4个是写入状态时,在各自通常的读出电压上加+z、+z×2、+z×3或+z×4的补偿(步骤S29~S36)。
而且,控制电路11将表示在通常的读出电压上加了这些补偿的电压的修整数据向读出电压生成电源电路12输出(S37)。这里,与邻接存储单元对应的所有的RMC(由图16的(1)~(3)示出的RMC)在擦除状态时,补偿是0。
因而,在Vth起伏被判断为最大时,就在通常的读出电压上加x×2+y×2+z×4的补偿。
再者,被加在通常的读出电压上的补偿x、y及z是通过实验等得到的值,于是可防止因Vth起伏产生的读出错误的值被设定。
从而,在本实施例的半导体存储装置中,对于第1实施例和第2实施例的半导体存储装置,可以更进一步地防止因邻接字线上的存储单元(由图16(3)示出的存储单元)的影响产生的Vth起伏而引起的读出错误,这些存储单元是与作为读出对象的存储单元相同字线上的邻接存储单元(由图16的(2)示出的存储单元),以及作为读出对象的存储单元和邻接于图16中倾斜(对角线)方向的存储单元。
[变形例]
本发明不限定于上述实施例,例如,也包含以下的变形例。
(1)RMC的存储数据的位数
在本发明的实施例的半导体存储装置中,对RMC的存储数据的位数并无特别限定,可以采用RMC存储的位数比存储单元存储的数据位数少的结构。由于这样的结构,可以谋求对RMC的读出动作的高速化。另外,也有由于邻接的RMC和邻接的存储单元的影响而在RMC上产生Vth起伏的情况,通过减少RMC存储的数据位数,可以将读出电压的容限相对于阈值电压分布的设定得大。可以提高RMC的读出结果的可靠性。
再者,为了判断是否因邻接的存储单元的影响而产生Vth起伏,只要知道RMC是写入状态或擦除状态即足够,RMC用2值进行判断,亦即,RMC可以采用存储1位数据的结构。由于这样的结构,可以将对RMC的读出动作进一步高速化,而且,进一步提高RMC的读出结果的可靠性。
(2)RMC的数量
在本发明中,为了判断某一存储单元是否使邻接存储单元产生Vth起伏,可参照的RMC不限定于1个,也可以是多个。这时,控制电路11通过例如各RMC的读出的多个结果来判断在作为读出对象的存储单元上是否产生Vth起伏。由于这样的结构,可以提高RMC读出结果的可靠性。
(3)存储器的种类
以上就本发明实施例的半导体存储装置的存储器阵列,以快闪存储器的存储器阵列为例作了说明,但存储器的种类并不受此限制凡是用阈值电压的不同来存储数据的非易失性存储器均适用于本发明。例如,可以采用NROM(Nitride Read Only Memory:氮化物只读存储器)、以及快闪存储器以外的EEPROM(Electrically ErasableProgrammable Read-only Memory:电可擦可编程只读存储器)等。
以上详细说明了本发明,而这些仅为示例,而不是限定,当知,本发明的精神和范围仅由所附的权利要求书加以规定。