具体实施方式
现在将参照附图来描述一种半导体存储器测试方法和一种半导体存储器的实施例,在附图中相同的参考数字始终指代相同的元件。
(第一实施例)
图1是根据第一实施例的半导体存储器测试方法的示例。
此外,图2是根据第一实施例的半导体存储器的示例。将首先描述图2。
半导体存储器1例如是非易失性存储器,诸如快闪存储器,并且包括存储核心2、命令生成电路3、测试控制电路4、操作控制电路5、地址控制器6、地址生成电路7,以及数据输入输出电路8。
存储核心2包括存储单元阵列2a、参考单元阵列2b、选择电路2c以及读写电路2d。
多个存储单元在存储单元阵列2a中被布置成矩阵的样子。参考单元阵列2b包括在测试时与存储单元阵列2a中所包括的存储单元(下文简称作“单元”)进行比较的参考单元。例如,流到参考单元的电流在擦除测试时与流到存储单元阵列2a中作为擦除测试的对象的存储单元的电流进行比较。选择电路2c根据所输入的地址来选择存储单元阵列2a中的单元,并且施加确定的电压。读写电路2d从所选单元读出数据或将数据写入到所选单元。
命令生成电路3响应于控制信号或从外部输入的地址而生成读取命令、写入命令、擦除命令、测试模式等。
测试控制电路4响应于由命令生成电路3指定的测试模式而执行写入测试、读取测试、擦除测试或类似测试。
响应于由命令生成电路3生成的命令或来自测试控制电路4的信号,操作控制电路5生成用于控制存储核心2的信号,并且将其供应到选择电路2c和读写电路2d。
响应于由命令生成电路3生成的命令或来自测试控制电路4的信号,地址控制器6控制由地址生成电路7生成的内部地址(列地址和行地址)。
地址生成电路7接受来自外部的地址并且在地址控制器6的控制下生成内部地址。
数据输入输出电路8输出从存储单元阵列2a读出的数据或输入将被写入到存储单元阵列2a的数据。
在图2中,未图示生成内部电压的电路部分或执行用于用正常的单元来替换存储单元阵列2a中的坏单元的冗余功能的电路部分。
现在将使用图1和2来描述在擦除测试时半导体存储器1的操作。
如图1所示,在这个实施例中,擦除测试包括两个步骤。
(步骤S1:第一擦除测试)
测试控制电路4通过施加擦除脉冲来对存储单元阵列2a中包括的并且被分成多个组的存储单元系列执行第一擦除测试,直到出现被做出擦除完成的确定的组为止。
图1图示被分成A和B两个组的存储单元系列。所述存储单元系列是存储单元阵列2a中的一部分单元。在图1的示例中,图示在列方向和行方向倾斜布置的存储单元系列。
测试控制电路4使操作控制电路5生成具有确定的宽度的擦除脉冲并且将其施加到例如包括每个组中的一系列存储单元并且被看成擦除单元(扇区)的存储单元系列。
为了确定是否对所述存储单元系列的每个单元完成擦除,测试控制电路4随后控制地址控制器6以使地址生成电路7生成用于从参考单元阵列2b中选择用于擦除测试的参考单元的地址。此外,测试控制电路4向地址控制器6给出生成用于在每个组A和B中选择一系列存储单元的地址的指令。
如果选择在图1的示例中的存储单元系列,那么地址控制器6向地址生成电路7给出递增或递减行地址和列地址的指令。这样做,会在每个组A和B中按次序选择在同一行地址处的单元。测试控制电路4随后使操作控制电路5输出用于执行读取存储核心2的操作的控制信号。
读写电路2d包括例如感测放大器,用于将从参考单元读出的值(例如,漏极-源极电流值)与从在一系列存储单元中选出的单元读出的值进行比较。基于比较结果,测试控制电路4确定是否对所选单元完成擦除。例如,如果所选单元中的电流值大于参考单元中的电流值,那么测试控制电路4确定擦除完成(通过)。如果所选单元中的电流值小于参考单元中的电流值,那么测试控制电路4确定擦除未完成(未通过)。
如果在每个组A和B中的一系列存储单元间存在未通过验证的单元,那么测试控制电路4一个接一个地施加擦除脉冲直到组A和B中出现擦除完成的组为止,并且相同的验证如上所述重复。
如图1所示,例如,假定当擦除脉冲的数目是X时,组A中的所有存储单元系列都通过验证。在这种情况下,即便在擦除脉冲的数目为X时未通过验证的单元或尚未经验证的单元仍在组B中,测试控制电路4也终止第一擦除测试。测试控制电路4保持此时的擦除脉冲的数目(X)。
(步骤S2:第二擦除测试)
基于在检测到其中有一系列存储单元首先被完成擦除的组时的擦除脉冲的数目,测试控制电路4对包括上述存储单元系列在内的其他存储单元系列(例如,扇区中的所有存储单元)执行第二擦除测试。
如上所述,例如,如果首先对组A中的存储单元系列完成擦除,那么此时的擦除脉冲的数目(=X)被应用于第二擦除测试中。测试控制电路4以上述的相同方式来对扇区中的所有存储单元执行擦除测试。例如,测试控制电路4将所述扇区中的所有存储单元与参考单元进行比较。在图1的示例中,通过此擦除测试检测出未通过验证的两个单元。例如,可以通过稍后描述的冗余技术用正常的单元来替换这些单元。
通过将在第一擦除测试中获得的擦除脉冲的数目(X)与系数相乘而获得的值可被用作在第二擦除测试中应用的擦除脉冲的数目。
在第二擦除测试中,在基于正应用的、第一擦除测试中获得的擦除脉冲数目的擦除脉冲时被执行了擦除的单元通过验证。因此,可以肯定地说在第一擦除测试中获得的擦除脉冲数目是在第二擦除测试时的验证阈值。
在执行第一擦除测试时,可能存在由于例如处理导致的问题而需要特别长时间才能擦除的单元(例如,图1的组B中未通过验证的单元)。甚至在所述情况下,上述技术仍可以防止在第二擦除测试中应用的擦除脉冲数目受其影响而增加。也就是说,可以防止由于一部分单元需要长时间才能擦除而导致在第二擦除测试时验证阈值升高和验证标准放松。
因此,可以准确地验证出需要长时间才能擦除的单元。凭借通过稍后描述的冗余技术用正常的单元来替换此种单元,可以减少用于半导体存储器的实际擦除时间。此外,可以防止由验证标准的放松造成半导体存储器的可靠性降低。
在以上描述中,通过使用参考单元来执行验证。然而,验证方法不限于此。测试控制电路4可以从例如待测试的单元的端子处的电压的改变来验证擦除是否被正确地执行。
(第二实施例)
图3是根据第二实施例的半导体存储器的示例。
根据第二实施例的半导体存储器10例如是快闪存储器。半导体存储器10包括存储核心11、命令生成电路12、内建自测试(BIST)控制电路13、操作控制电路14、地址控制器15、地址生成电路16,以及数据输入输出电路17。另外,半导体存储器10包括内部电压生成电路18、冗余内容可寻址存储器(CAM)19、CAM存取控制电路20以及总线控制电路21。
存储核心11包括存储单元阵列111、参考单元阵列112、X控制电路113、Y控制电路114、读写放大器115以及冗余电路116。
多个单元在存储单元阵列111中被布置成矩阵的样子。存储单元阵列111包括冗余存储单元阵列111a。在测试时与存储单元阵列111中包括的单元进行比较的参考单元被包括在参考单元阵列112中。
响应于由地址生成电路16生成的行地址和来自操作控制电路14的控制信号,X控制电路113将确定的电压施加到(例如)存储单元阵列111a中包括的单元的栅极。
响应于由地址生成电路16生成的列地址和来自操作控制电路14的控制信号,Y控制电路114将确定的电压施加到存储单元阵列111a中包括的存储单元的位线,并且读写放大器115执行读取或写入操作。
冗余电路116对冗余存储单元阵列111a具有Y控制电路114和读写放大器115的功能。
命令生成电路12连接到外部端子CEX、WEX和CLK以及地址端子ADD。响应于芯片启用信号、写入启用信号、时钟信号以及从这些端子输入的地址,命令生成电路12生成读取命令、写入命令、擦除命令、测试模式等。
BIST控制电路13具有图2所示的测试控制电路4的功能并且根据由命令生成电路12指定的测试模式执行写入测试、读取测试、擦除测试或类似测试。BIST控制电路13具有确定在擦除测试中擦除是否被正确地执行的功能。此外,BIST控制电路13包括用于对擦除脉冲数目进行计数的计数器13a以及用于存储在擦除测试时未通过的单元的地址的寄存器13b。计数器13a和寄存器13b可放置在BIST控制电路13之外。
响应于由命令生成电路12生成的命令或来自BIST控制电路13的信号,操作控制电路14生成用于控制存储核心11的信号,并且将其供应到X控制电路113、Y控制电路114以及读写放大器115。
响应于由命令生成电路12生成的命令或来自BIST控制电路13的信号,地址控制器15控制由地址生成电路16生成的内部地址(列地址和行地址)。
地址生成电路16输入来自地址端子ADD的外部地址并且根据来自地址控制器15的指令来生成内部地址。存在多个地址端子ADD(未图示)。
数据输入输出电路17连接到输入输出端子IO。数据输入输出电路17输出从存储单元阵列111读出的数据或输入将被写入到存储单元阵列111的数据。存在多个输入输出端子IO(未图示)。
内部电压生成电路18基于从BIST控制电路13供应的控制信号来生成各种内部电压并且将其供应到冗余CAM19、X控制电路113以及存储单元阵列111。
冗余CAM19保持被替换的坏单元的地址。CAM存取控制电路20基于来自BIST控制电路13的控制信号来控制对冗余CAM19的写入存取、读取存取等。
总线控制电路21被连接在数据输入输出电路17与读写放大器115之间并且控制由总线22携带的数据。
(由半导体存储器10进行的擦除测试)
图4是擦除测试的示例的流程图。
如图4中指示,擦除测试包括三个步骤。
(步骤S10:第一擦除测试)
对作为扇区的一部分的存储单元系列执行第一擦除测试,所述扇区是存储单元阵列111中的擦除单元。作为所述扇区的一部分的存储单元系列被分成多个组。在出现其中擦除被完成的第一组时,应用于扇区的擦除脉冲数目被保持,并且对扇区的第一擦除测试终止。
(步骤S11:第二擦除测试)
对所有扇区中的所有单元执行第二擦除测试。基于通过将在步骤S10中找出的每个扇区中的擦除脉冲数目与确定的系数相乘而获得的值(在下文被称作“最大脉冲数目”),对每个扇区中的所有单元执行擦除测试。使用系数来做乘法的原因如下:第一擦除测试是对扇区中的一部分存储单元执行的,因此就有可能没有反映出所述扇区中的所有单元的状态。这个系数是基于例如过去的擦除测试的结果凭经验来设定的。
在第二擦除测试中,指示包括通过其数目对应于最大脉冲数目的擦除脉冲不能对其执行擦除的单元的扇区的信息(标志值)被存储在BIST控制电路13的寄存器13b中。
(步骤S12:验证和冗余处理)
对包括通过其数目对应于最大脉冲数目的擦除脉冲不能对其执行擦除的单元的扇区中的所有单元执行验证。随后用冗余存储单元阵列111a中包括的单元来替换未通过验证的单元。可以用冗余存储单元阵列111a中包括的一系列单元来替换包括未通过验证的单元的扇区。
现在将详细地描述每个步骤。
(第一擦除测试)
在第一擦除测试中,由BIST控制电路13控制的地址控制器15按以下方式来选择例如每个扇区中包括的一部分单元。
图5是在第一擦除测试中指定的扇区中的地址序列的示例。
扇区30包括例如各自包括多个单元的块BK0、……、BK15、BK16、……、BK31以及各自包括冗余单元的块BK32和BK33。例如,块BK0到BK31对应于32个输入输出端子IO,并且从这些输入输出端子IO输入的数据被写入到块BK0到BK31。
在上述扇区30中,地址控制器15递增或递减每个块BK0到BK33中的列地址和行地址以在倾斜方向上指定地址,如图5所示。例如,假定箭头A1指示列地址减小的方向,而箭头A2指示行地址减小的方向。随后,通过递减列地址和行地址两者来指定图5中所指示的地址。这样做,会在每个块BK0到BK33中按次序选择在同一行地址处的单元。
用于选择每个扇区中的一部分单元的方法不限于上述示例。例如,可以选择在扇区的角落处的单元。
在以下描述中,假定BIST控制电路13将在块BK0到BK15中选择的一系列单元视为组G1,将在块BK16到BK33中选择的一系列单元视为组G2,并且执行擦除测试。
然而,分组的方法不限于此示例。分组可以在行方向上执行。在这种情况下,可以通过递增或递减列地址和行地址并且在每个组中选择在同一列地址处的单元来执行擦除测试。
此外,假定存储单元阵列111中的单元在第一擦除测试开始时是处于写入状态。
图6指示就在第一擦除测试开始之后每个单元的状态。
图6指示作为验证的对象并且被包括在属于图5所示的组G1的块BK0以及属于图5所示的组G2的块BK16中的单元的状态。黑色的单元指示其未通过验证。白色的单元指示尚未对其执行验证。
首先,BIST控制电路13对块BK0和BK16中每一个的左上角的单元执行擦除验证。然而,在其中未施加擦除脉冲的状态下,验证结果是未通过,如图6中指示。直到为每个块中的第一单元获得通过的验证结果之前,BIST控制电路13都添加将要施加给扇区中的所有单元的擦除脉冲并且通过计数器13a对擦除脉冲的数目进行计数。
图7是擦除验证的示例。
在擦除验证时,图3所示的存储单元阵列111中包括的并且作为擦除验证的对象的单元40以及参考单元阵列112中包括的用于擦除验证的参考单元50被连接到感测放大器60,并且进行电流比较。感测放大器60被包括在例如图3所示的存储核心11的读写放大器115中。参考单元50和单元40到感测放大器60的连接是通过例如Y控制电路114来控制的。
在图7的示例中,参考单元50和单元40是快闪存储单元。源极区43和53以及漏极区44和54形成在p井42和52中,p井42和52分别形成在深n井41和51中。另外,形成浮栅45和55以及控制栅46和56。
为了在擦除验证时将参考单元50和单元40置于读取状态,连接到深n井41、p井42和源极区43的源极端子S以及连接到深n井51、p井52和源极区53的源极端子Sr被设为例如0V。此外,0.9V的电压被施加到连接到漏极区44的漏极端子D以及连接到漏极区54的漏极端子Dr。3.5V的电压被施加到连接到控制栅46的控制栅端子CG以及连接到控制栅56的控制栅端子CGr。
图8是用于擦除验证的确定标准的示例。水平轴指示栅极-源极电压Vgs,而垂直轴指示漏极-源极电流Ids。
在参考单元50的Vgs-Ids特征中,假定在栅极-源极电压Vgs是3.5V时,漏极-源极电流Ids是Idsr。如果作为擦除验证的对象的单元40的漏极-源极电流Ids高于Idsr,那么感测放大器60输出“1”,并且BIST控制电路13确定单元40已通过验证。如果作为擦除验证的对象的单元40的漏极-源极电流Ids低于Idsr,那么感测放大器60输出“0”,并且BIST控制电路13确定单元40未通过验证。
例如,当BIST控制电路13检测到每个块BK0到BK33中的第一单元的验证结果是“通过”时,BIST控制电路13使地址控制器15在图5所示的倾斜方向上指定地址。BIST控制电路13随后对基于所指定的地址而选择的单元执行擦除验证。如果在组中检测到未通过验证的单元,那么BIST控制电路13将所述单元的地址存储在寄存器13b中。直到在组G1和G2中都检测到未通过验证的单元之前,BIST控制电路13都使地址控制器15指定地址。
图9图示在所有组中未通过验证的单元在被检测时的状态。图9图示作为擦除验证的对象并且属于图5所示的组G1的块BK0以及属于图5所示的组G2的块BK16中包括的单元的状态。其中划有斜线的单元指示其已通过验证。黑色的单元指示其未通过验证。白色的单元指示尚未对其执行验证。
如果在属于组G2的块BK16中检测到未通过验证的单元70时在属于组G1的每个块中作为擦除验证的对象的单元已全部通过验证,那么单元70的地址被存储在寄存器13b中并且随后地址被指定。在属于组G1的块BK0中,如图9所示,对单元71、72和73执行擦除验证。在图9的示例中,做出单元73未通过验证的确定。
当以这种方式在所有组中检测到未通过验证的单元时,BIST控制电路13使操作控制电路14添加擦除脉冲。之后,BIST控制电路13读出所存储的单元70的地址。BIST控制电路13从块BK0到BK33中的、作为擦除验证的对象并且其行地址与单元70的行地址相同的单元重新开始验证,并且存储首先被做出验证未通过的确定的单元的地址。BIST控制电路13随后使地址控制器15指定地址,直到BIST控制电路13在组G1和G2中都检测到未通过验证的单元为止。
图10是在第一擦除测试期间每个单元的状态的示例。图10指示在图9中指示的状态下添加擦除脉冲之后每个单元的状态。
通过添加擦除脉冲,属于组G2的块BK16中的单元70通过验证。然而,属于组G1的块BK0中的单元73仍未通过验证。如果行地址与单元73的行地址相同的组G2中的块BK16到BK33中的单元已全部通过验证,那么BIST控制电路13存储单元73的地址并且使地址控制器15指定地址。
如图10所示,对组G2中的块BK16中的单元74和75执行擦除验证。在图10的示例中,做出单元75未通过验证的确定。因此,BIST控制电路13使操作控制电路14再次添加擦除脉冲。之后,BIST控制电路13读出所存储的单元73的地址。BIST控制电路13从块BK0到BK33中的、作为擦除验证的对象并且其行地址与单元73的行地址相同的单元重新开始验证。
通过继续做上述处理,组中的块中作为擦除验证的对象的所有单元都通过验证。
图11图示其中组中的块中作为擦除验证的对象的所有单元已通过验证的状态。
在图11的示例中,组G1中的块BK0中作为擦除验证的对象的所有单元都处于已通过验证的状态。当组G1中的另一个块中作为擦除验证的对象的所有单元也处于已通过验证的状态时,即便组G2包括未通过验证的单元75,对扇区30的第一擦除测试也终止。BIST控制电路13保持此时的擦除脉冲数目。
对存储单元阵列111中的所有扇区执行上述第一擦除测试。
在上文的描述中,首先未通过验证的单元的地址被存储在BIST控制电路13中包括的寄存器13b中。然而,可以存储未通过验证的所有单元的地址。
现在将通过使用流程图来描述第一擦除测试的流程。
图12是第一擦除测试的示例的流程图。
在第一擦除测试开始时,BIST控制电路13控制地址控制器15以使其重置由地址生成电路16生成的地址。因此,在图5的示例中,在扇区30中的块BK0到BK33中指定左上角的地址。因此,选择通过这些地址指定的单元。
(步骤S20)BIST控制电路13将计数器13a的计数器值PC设为0。计数器值指示擦除脉冲的数目。
(步骤S21)BIST控制电路13从CAM存取控制电路20获取保持在冗余CAM19中的坏单元的地址。(用冗余存储单元阵列111a中的单元)替换通过这些地址来指定的单元,所以BIST控制电路13确定所述单元的验证结果是“通过”。
(步骤S22)BIST控制电路13通过例如图7所示的方法来执行擦除验证。对每个组中所选的单元按次序执行擦除验证。在图5的示例中,例如,在地址重置之后对属于组G1和G2的块BK0到BK33中的第一单元执行擦除验证。然而,BIST控制电路13在步骤S21中确定其验证结果是“通过”的单元被省略。
如果BIST控制电路13在一个或多个组中检测到未通过验证的单元,那么BIST控制电路13前进到步骤S25。如果BIST控制电路13检测到所有组中的所有单元都通过验证,那么BIST控制电路13前进到步骤S23。
(步骤S23)BIST控制电路13确定对扇区中作为擦除验证的对象的所有单元(在图5的示例中,为通过由箭头指示的地址所指定的在块BK0到BK33中的所有单元)的擦除验证是否已终止。如果BIST控制电路13确定对扇区中作为擦除验证的对象的所有单元的擦除验证已终止,那么BIST控制电路13前进到步骤S34。如果BIST控制电路13确定对扇区中作为擦除验证的对象的所有单元的擦除验证还未终止,那么BIST控制电路13前进到步骤S24。
(步骤S24)如果BIST控制电路13确定对扇区中作为擦除验证的对象的所有单元的擦除验证还未终止,那么BIST控制电路13使地址控制器15指定扇区中接下来的地址。在步骤S24之后,处理从步骤S22起重复。
(步骤S25)BIST控制电路13将在步骤S22中的擦除验证中首先未通过验证的单元的地址存储在寄存器13b中。BIST控制电路13可以根据组来包括一个寄存器13b或多个寄存器13b。
(步骤S26)BIST控制电路13确定在所有组中是否检测到未通过验证的单元。如果在所有组中检测到未通过验证的单元,那么BIST控制电路13前进到步骤S27。如果在所有组中未检测到未通过验证的单元,那么BIST控制电路13前进到步骤S31。
(步骤S27)BIST控制电路13确定计数器13a的计数器值PC是否小于或等于MAX。MAX是擦除脉冲数目的上限值。如果PC≤MAX,那么BIST控制电路13前进到步骤S28。如果PC>MAX,那么BIST控制电路13前进到步骤S34。
(步骤S28)BIST控制电路13使操作控制电路14将具有确定的宽度的擦除脉冲施加到扇区中的所有单元。由于擦除脉冲的施加,例如,-9.3V的电压被施加到每个单元的控制栅极,并且+9.3V的电压被施加到其p井。
(步骤S29)BIST控制电路13将计数器13a的计数器值PC加1。
(步骤S30)BIST控制电路13读出未通过验证的单元的、在步骤S25中存储在寄存器13b中的地址。随后,在这些地址处,处理从步骤S21起重复。
(步骤S31)如果在步骤S26中做出组中的所有单元都通过验证的确定,那么BIST控制电路13使地址控制器15指定扇区中接下来的地址。
(步骤S32)BIST控制电路13对在其中未检测到未通过验证的单元的组中的每个块中的单元执行擦除验证。如果一个或多个组中的所有单元都通过验证,那么BIST控制电路13前进到步骤S33。如果在所有组中检测到未通过验证的单元,那么BIST控制电路13前进到步骤S27。在图9的示例中,例如,做出组G1中的块BK0中的单元73未通过验证的确定。此时,在所有组中检测到未通过验证的单元。因此,执行上述步骤S27。
(步骤S33)BIST控制电路13确定对扇区中作为擦除验证的对象的所有单元的擦除验证是否已终止。如果BIST控制电路13确定对扇区中作为擦除验证的对象的所有单元的擦除验证已终止,那么BIST控制电路13前进到步骤S34。如果BIST控制电路13确定对扇区中作为擦除验证的对象的所有单元的擦除验证还未终止,那么BIST控制电路13前进到步骤S31。
(步骤S34)BIST控制电路13将指示应用上述处理的扇区中的擦除脉冲数目的值SPTCNT[sector]保持在BIST控制电路13的寄存器13b中作为计数器值PC。变量“sector”是例如扇区的数目或扇区编号。
(步骤S35)BIST控制电路13确定对所有扇区的擦除验证是否已终止。例如,BIST控制电路13参考变量“sector”。如果sector=1,那么BIST控制电路13确定对所有扇区的擦除验证已终止,并且终止第一擦除测试。如果BIST控制电路13确定对所有扇区的擦除验证还未终止,那么BIST控制电路13前进到步骤S36。
(步骤S36)为了对下扇区执行第一擦除测试,BIST控制电路13从变量“sector”的值减去1。BIST控制电路13随后对下扇区从步骤S20起执行处理。
(第二擦除测试)
对所有扇区中的所有单元执行第二擦除测试。基于指示通过第一擦除测试找出的每个扇区中的擦除脉冲数目的值SPTCNT[sector]来对每个扇区中的所有单元执行擦除测试。
图13是第二擦除测试的示例的流程图。
在第二擦除测试开始时,BIST控制电路13控制地址控制器15以使其重置由地址生成电路16生成的地址。因此,选择扇区中通过第一地址指定的单元。
此外,扇区中的每个单元都处于已通过上述第一擦除测试施加了数目由SPTCNT[sector]指示的擦除脉冲的状态下。
(步骤S40)BIST控制电路13针对将被执行第二擦除测试的第一扇区在第一计数器13a中设定指示通过第一擦除测试获得的擦除脉冲数目的SPTCNT[sector]。也就是说,BIST控制电路13使PC等于SPTCNT[sector]。
(步骤S41)BIST控制电路13从CAM存取控制电路20获取保持在冗余CAM19中的坏单元的地址。通过这些地址来指定的单元被替换,所以BIST控制电路13确定所述单元的验证结果是“通过”。
(步骤S42)BIST控制电路13通过例如图7所示的方法来执行擦除验证。在第二擦除测试中,对每个扇区中的所有单元按次序执行擦除验证。然而,BIST控制电路13在步骤S41中确定其验证结果是“通过”的单元被省略。如果所选单元未通过擦除验证,那么BIST控制电路13前进到步骤S45。如果所选单元通过擦除验证,那么BIST控制电路13前进到步骤S43。
(步骤S43)BIST控制电路13确定对扇区中的所有单元的擦除验证是否已终止。如果BIST控制电路13确定对扇区中的所有单元的擦除验证已终止,那么BIST控制电路13前进到步骤S49。如果BIST控制电路13确定对扇区中的所有单元的擦除验证还未终止,那么BIST控制电路13前进到步骤S44。
(步骤S44)如果BIST控制电路13确定对扇区中的所有单元的擦除验证还未终止,那么BIST控制电路13使地址控制器15指定扇区中接下来的地址。在步骤S44之后,处理从步骤S42起重复。
(步骤S45)BIST控制电路13确定计数器13a的计数器值PC是否小于或等于MAXPC。MAXPC是通过(SPTCNT[sector]×n(所确定的系数))来指示的最大脉冲数目。如果MAXPC大于或等于擦除脉冲数目的上限值MAX,那么认为MAXPC等于MAX。如果PC≤MAXPC,那么BIST控制电路13前进到步骤S46。如果PC>MAXPC,那么BIST控制电路13前进到步骤S48。或者,MAXPC可以通过((SPTCNT[sector]+V(所确定的固定值))×n)来指示(参见稍后描述的修改)。
(步骤S46)BIST控制电路13使操作控制电路14将具有确定的宽度的擦除脉冲施加到扇区中的所有单元。由于擦除脉冲的施加,例如,-9.3V的电压被施加到每个单元的控制栅极,并且+9.3V的电压被施加到其p井。
(步骤S47)BIST控制电路13将计数器13a的计数器值PC加1并且从步骤S41起重复处理。
(步骤S48)如果PC>MAXPC,那么BIST控制电路13将例如存储在寄存器13b中的标志值flag[sector]设为H,并且前进到步骤S49。
(步骤S49)BIST控制电路13确定对所有扇区的擦除验证是否已终止。例如,BIST控制电路13参考变量“sector”。如果sector=1,那么BIST控制电路13确定对所有扇区的擦除验证已终止,并且终止第二擦除测试。如果BIST控制电路13确定对所有扇区的擦除验证还未终止,那么BIST控制电路13前进到步骤S50。
(步骤S50)为了对下扇区执行第二擦除测试,BIST控制电路13从变量“sector”的值减去1。BIST控制电路13随后对下一个扇区从步骤S40起执行处理。
(验证和冗余处理)
对标志值flag[sector]为H的扇区中的所有单元执行验证和冗余处理。
图14是验证和冗余处理的示例的流程图。
在验证和冗余处理开始时,BIST控制电路13控制地址控制器15以使其重置由地址生成电路16生成的地址。因此,指定扇区中的第一地址,并且选择通过这些地址指定的单元。
(步骤S60)BIST控制电路13从例如寄存器13b读出扇区的标志值flag[sector]并且确定flag[sector]是否为H。如果flag[sector]为H,那么BIST控制电路13前进到步骤S62。如果flag[sector]不为H,那么BIST控制电路13前进到步骤S61。
(步骤S61)BIST控制电路13从变量“sector”的值减去1。BIST控制电路13随后针对下一个扇区对标志值flag[sector]做出在步骤S60中描述的确定。
(步骤S62)BIST控制电路13从CAM存取控制电路20获取保持在冗余CAM19中的坏单元的地址。通过在所选扇区中的这些地址来指定的单元被替换,所以BIST控制电路13确定所述单元的验证结果是“通过”。
(步骤S63)BIST控制电路13通过例如图7所示的方法来执行擦除验证。对flag[sector]为H的扇区中的所有单元按次序地执行擦除验证。然而,BIST控制电路13在步骤S62中确定其验证结果是“通过”的单元被省略。如果所选单元未通过擦除验证,那么BIST控制电路13前进到步骤S66。如果所选单元通过擦除验证,那么BIST控制电路13前进到步骤S64。
(步骤S64)BIST控制电路13确定对扇区中的所有单元的擦除验证是否已终止。如果BIST控制电路13确定对扇区中的所有单元的擦除验证已终止,那么BIST控制电路13前进到步骤S68。如果BIST控制电路13确定对扇区中的所有单元的擦除验证还未终止,那么BIST控制电路13前进到步骤S65。
(步骤S65)如果BIST控制电路13确定对扇区中的所有单元的擦除验证还未终止,那么BIST控制电路13使地址控制器15指定扇区中接下来的地址。在步骤S65之后,处理从步骤S63起重复。
(步骤S66)BIST控制电路13询问CAM存取控制电路20是否可以替换未通过验证的单元。例如,如果在冗余存储单元阵列111a中仍有替换单元,那么CAM存取控制电路20确定可以替换未通过验证的单元。因此,执行步骤S67。例如,如果未留有替换单元,那么CAM存取控制电路20确定不可以替换未通过验证的单元,并且验证和冗余处理终止(故障停止)。
(步骤S67)在BIST控制电路13的控制下,CAM存取控制电路20执行冗余处理以用于用冗余存储单元阵列111a中的单元来替换未通过验证的单元。此时,未通过验证的单元的地址被存储在冗余CAM19中。当指定此单元的地址时,冗余电路116在冗余存储单元阵列111a中选择用来替换此单元的单元。
(步骤S68)BIST控制电路13确定对所有扇区的擦除验证是否已终止。例如,BIST控制电路13参考变量“sector”。如果sector=1,那么BIST控制电路13确定对flag[sector]为H的所有扇区的擦除验证已终止,并且终止验证和冗余处理。如果BIST控制电路13确定对flag[sector]为H的所有扇区的擦除验证还未终止,那么BIST控制电路13前进到步骤S69。
(步骤S69)BIST控制电路13从变量“sector”的值减去1,并且对下一个扇区从步骤S60起执行处理。
当执行第一擦除测试时,可能存在需要特别长时间才能擦除的单元。甚至在这种情况下,上述技术仍可以防止在第二擦除测试中应用的擦除脉冲数目受其影响而增加。也就是说,可以防止由于一部分单元需要长时间才能擦除而导致在第二擦除测试时验证阈值升高和验证标准放松。
因此,可以准确地验证出需要长时间才能擦除的单元。凭借通过冗余处理来替换此种单元,可以减少用于半导体存储器的实际擦除时间。此外,可以提高半导体存储器的可靠性。
另外,如图5所示,例如,地址控制器15在第一擦除测试时通过同一种方法(通过递增或递减列地址和行地址)来指定扇区30中的块BK0到BK33中的地址。因此,通过地址控制器15执行的处理可以得到简化,并且可以控制电路规模的增加。
(修改)
图15图示根据第二实施例的半导体存储器的修改。图15中与图3所示的半导体存储器10的那些部件相同的部件用相同的数字来标记。
除了计数器13a和寄存器13b之外,半导体存储器10a中包括的BIST控制电路130还包括加法器13c。加法器13c可以位于BIST控制电路130之外。
加法器13c将固定的脉冲数目加到SPTCNT[sector]上,SPTCNT[sector]是通过第一擦除测试获得的擦除脉冲数目。例如,将被加到SPTCNT[sector]上的固定值可以经由端子IN从外部被设为大于或等于0的值。如果使用固定的值,那么通过将(SPTCNT[sector]+(固定值))与(系数n)相乘而获得的值被用作第二擦除测试中的最大脉冲数目(MAXPC)。
例如,如果一个组中的单元通过第一擦除测试中的验证远早于另一个组中的单元,那么SPTCNT[sector]的值过小。因此,可能会出现许多在第二擦除测试中未通过验证的单元。因此,会涉及到被替换的单元的数目等。如果这个数目过大,那么将固定的值加到SPTCNT[sector]上。这样做,可以控制用作第二擦除测试中的验证阈值的擦除脉冲数目。所述固定值基于(例如)过去的擦除测试的结果凭经验来设定。
根据所公开的半导体存储器测试方法和半导体存储器,可以防止因需要长时间才能擦除的存储单元的影响而造成擦除测试时的验证标准的放松,并且可以防止半导体存储器的可靠性降低。