1.本发明的实施例涉及测试三维存储器单元阵列的方法和存储器电路。
背景技术:2.半导体集成电路(ic)工业已经生成了各种各样的数字器件,以解决许多不同领域中的问题。这些数字器件中的一些(例如存储器宏)配置为用于数据存储。随着ic变得越来越小和越来越复杂,这些数字器件中的导线的电阻也发生了变化,从而影响了这些数字器件的工作电压和整体ic性能。
技术实现要素:3.根据本发明的实施例,提供了一种测试三维(3d)存储器单元阵列的方法,包括:将数据写入3d存储器单元阵列中的存储器单元的每个层;在至少一个3d存储器单元阵列的第一支列中同时执行每个存储器单元的读取操作,第一支列包括在3d存储器单元阵列的每个对应层上的存储器单元;确定3d存储器单元阵列中的存储器单元是否响应于读取操作而发生故障;以及响应于确定3d存储器单元阵列中的存储器单元发生故障,用备用存储器单元替换3d存储器单元阵列中的至少一个故障存储器单元。
4.根据本发明的实施例,还提供了一种测试三维(3d)存储器单元阵列的方法,包括:将数据写入3d存储器单元阵列中的存储器单元的每个层;同时执行3d存储器单元阵列的第一层中的每个存储器单元的读取操作;响应于3d存储器单元阵列的第一层的读取操作,确定3d存储器单元阵列的第一层中的第一存储器单元是否已经故障;和响应于确定3d存储器单元阵列的第一层中的第一存储器单元已经发生故障,用第一备用存储器单元替换3d存储器单元阵列的第一层中的至少一个故障存储器单元。
5.根据本发明的实施例,还提供了一种存储器电路,包括:第一存储器单元阵列,位于第一层上;第二存储器单元阵列,位于与第一层不同的第二层上;第一解码器电路,通过字线组耦合到第一存储器单元阵列和第二存储器单元阵列;第二解码器电路,通过位线组和源极线组耦合到第一存储器单元阵列和第二存储器单元阵列,第一解码器电路和第二解码器电路被配置为同时执行第一存储器单元阵列和第二存储器单元阵列中的每个存储器单元的写入操作;和读取电路,至少耦合到第一存储器单元阵列和第二存储器单元阵列,并且被配置为同时执行第一存储器单元阵列和第二存储器单元阵列中的每个存储器单元的读取操作。
附图说明
6.当结合附图进行阅读取时,从以下详细描述可最佳理解本发明的各个方面。应该强调,根据工业中的标准实践,各个部件未按比例绘制并且仅用于说明的目的。实际上,为了清楚的讨论,各个部件的尺寸可以任意地增大或减小。
7.图1是根据一些实施例的存储器电路的电路图。
8.图2是根据一些实施例的存储器电路的立体图。
9.图3是根据一些实施例的存储器单元的电路图。
10.图4是根据一些实施例的存储器电路的电路图。
11.图5是根据一些实施例的存储器电路的电路图。
12.图6是根据一些实施例的测试电路的方法的流程图。
13.图7是根据一些实施例的测试电路的方法的流程图。
14.图8是根据一些实施例的系统的示意图。
具体实施方式
15.以下公开内容提供了许多用于实现本发明的不同特征不同的实施例或实例。下面描述了组件和布置的具体实施例或实例以简化本发明。当然,这些仅是实例而不旨在限制。例如,在以下描述中,在第二部件上方或者上形成第一部件可以包括第一部件和第二部件直接接触形成的实施例,并且也可以包括在第一部件和第二部件之间可以形成额外的部件,从而使得第一部件和第二部件可以不直接接触的实施例。此外,本发明可以在各个示例中重复参考数字和/或字母。该重复是为了简单和清楚的目的,并且其本身不指示讨论的各个实施例和/或配置之间的关系。
16.此外,为了便于描述,本文中可以使用诸如“在
…
下方”、“在
…
下面”、“下部”、“在
…
上面”、“上部”等的间隔关系术语,以描述如图中所示的一个元件或部件与另一元件或部件的关系。除了图中所示的方位外,间隔关系术语旨在包括器件在使用或操作工艺中的不同方位。装置可以以其它方式定位(旋转90度或在其它方位),并且在本文中使用的间隔关系描述符可以同样地作相应地解释。
17.根据一些实施例,一种测试三维(3d)存储器单元阵列的方法包括:将数据同时写入到3d存储器单元阵列中的存储器单元的每个层;并且同时执行3d存储器单元阵列中的每个层中的每个存储器单元中的读取操作。
18.在一些实施例中,测试3d存储器单元阵列的方法还包括响应于读取操作确定3d存储器单元阵列中的存储器单元是否已经发生故障,响应于确定3d存储器单元阵列中的存储器单元发生故障,用备用存储器单元替换3d存储器中的至少一个故障存储器单元。
19.在一些实施例中,通过同时将数据写入3d存储器单元阵列中的存储器单元的每个层,与其他方法相比,减少了3d存储器单元阵列上的测试时间,从而提高了测试效率。
20.在一些实施例中,通过同时执行3d存储器单元阵列中的每个层中的每个存储器单元的读取操作,与其他方法相比,减少了3d存储器单元阵列上的测试时间,从而提高了测试效率。
21.图1是根据一些实施例的存储器电路100的电路图。在图1的实施例中,集成电路100是存储器宏。
22.存储器电路100包括存储器单元阵列102、x解码器电路104、y解码器电路106和读取电路108。存储器单元阵列102通过字线wl耦合到x解码器电路104。存储器单元阵列102至少通过位线bl或源极线sl耦合到y解码器电路104。存储器单元阵列102耦合到读取电路108。在一些实施例中,存储器单元阵列102至少通过位线bl或源极线sl耦合到读取电路108。
23.存储器单元阵列102包括具有m个行、c个列和f个层的存储器单元的三维(3d)阵列,其中m、c和f为正整数(如图2所示)。
24.存储器单元阵列102包括存储器单元阵列102a和备用存储器单元阵列102b。存储器单元阵列102a在一层或多层上包括一个或多个行以及一个或多个列存储器单元。备用存储器单元阵列102b在一层或多层上包括个或多个行以及一个或多个列的备用存储器单元。在一些实施例中,备用存储器单元是冗余存储器单元。在一些实施例中,备用存储器单元最初被配置为不存储数据,但是之后可以被改变为存储数据。例如,在一些实施例中,备用存储器单元最初被配置为在测试存储器单元阵列102之前不存储数据。在一些实施例中,在测试存储器单元阵列102之后,一个或多个备用存储器单元替换一个或多个对应的测试故障的存储器单元,因此配置为存储数据。
25.为了简洁和易于图示,示出了具有耦合到读取电路108的单个存储器单元102a1的存储器单元阵列102a。然而,存储器单元阵列102a中的每个存储器单元和备用存储器单元阵列102b中的每个备用存储器单元被耦合到读取电路108。在一些实施例中,存储器单元阵列102a中的每个存储器单元通过至少相应的源极线或相应的位线耦合到读取电路108,并且备用存储器单元阵列102b中的每个备用存储器单元通过至少相应的源极线或位线耦合到读取电路108。
26.在一些实施例中,存储器单元阵列102a中的每个存储器单元被配置为存储1位的数据。在一些实施例中,存储器单元阵列102a中的每个存储器单元被配置为存储多于1位的数据。在一些实施例中,备用存储器单元阵列102b中的每个备用存储器单元能够被配置为存储1位的数据。在一些实施例中,备用存储器单元阵列102b中的每个备用存储器单元能够被配置为存储多于1位的数据。
27.在一些实施例中,存储器单元阵列102是非易失性随机存取存储器(nvram)阵列。在一些实施例中,存储器单元阵列102中的每个存储器单元对应于闪存存储器单元。在一些实施例中,存储器单元阵列102中的每个存储器单元对应于nor(或非)存储器单元。在一些实施例中,存储器单元阵列102中的每个存储器单元对应于nand(与非)存储器单元。
28.存储器单元阵列102中的不同类型的存储器单元在本公开的预期范围内。例如,在一些实施例中,存储器单元阵列102中的每个存储器单元是磁阻随机存取存储器(mram)。在一些实施例中,存储器单元阵列102中的每个存储器单元对应于铁电随机存取存储器(feram)单元。在一些实施例中,存储器单元阵列102中的每个存储器单元对应于铁电场效应晶体管(fefet)单元。在一些实施例中,存储器单元阵列102中的每个存储器单元对应于相变随机存取存储器(pcram)单元。在一些实施例中,存储器单元阵列102中的每个存储器单元对应于电阻式随机存取存储器(rram)单元。在一些实施例中,存储器单元阵列102中的每个存储器单元对应于动态随机存取存储器(dram)单元。在一些实施例中,存储器单元阵列102中的每个存储器单元对应于一次性可编程(otp)存储器单元。在一些实施例中,存储器单元阵列102中的每个存储器单元对应于静态随机存取存储器(sram)单元。存储器单元阵列102的其他配置在本公开的范围内。
29.x解码器电路104耦合到存储器单元阵列102和读取电路108。在一些实施例中,x解码器电路104不耦合到读取电路108。x解码器电路104被配置为向存储器单元阵列102在相应字线wl上生成字线信号(未示出)。在一些实施例中,x解码器电路104包括耦合到字线wl
的字线驱动器电路(未示出),并且字线驱动器电路(未示出)被配置为生成被发送到存储器单元阵列102的字线信号。
30.在一些实施例中,字线驱动器电路(未示出)对存储器单元阵列102中的存储器单元的行地址进行解码,该存储器单元被选择为在读取操作、写入操作或擦除操作中被访问。在一些实施例中,字线驱动器电路(未示出)然后将电压提供给与解码的行地址相对应的所选字线,并将不同的电压提供给其他未选择的字线。
31.在一些实施例中,x解码器电路104被配置为从读取电路108接收控制信号组cs1。在一些实施例中,x解码器电路104被配置为响应于来自读取电路108的控制信号组cs1而生成字线信号。x解码器电路104的其他配置在本公开的范围之内。
32.y解码器电路106耦合到存储器单元阵列102和读取电路108。在一些实施例中,y解码器电路106不耦合到读取电路108。y解码器电路106被配置为向存储器单元阵列102上在相应位线bl上生成位线信号(未示出),并且被配置为向存储器单元阵列102在相应源极线sl上生成源极线信号(未示出)。
33.在一些实施例中,y解码器电路106包括耦合到位线bl的位线驱动器电路(未示出),并且位线驱动器电路(未示出)被配置为生成发送到存储器单元阵列102的位线信号。在一些实施例中,y解码器电路106包括耦合到源极线sl的源极线驱动器电路(未示出),并且位线驱动器电路(未示出)被配置为生成发送到存储器单元阵列102的源极线信号。
34.在一些实施例中,位线驱动器电路(未示出)对在读取操作、写入操作或擦除操作中被选择访问的存储器单元阵列102中的存储器单元的列地址进行解码。在一些实施例中,位线驱动器电路(未示出)然后将电压提供给与解码的列地址相对应的所选位线,并将不同的电压提供给其他未选位线。
35.在一些实施例中,源极线驱动器电路(未示出)向与存储器单元阵列102中的所选存储器单元相对应的所选源极线提供电压,并且向其他未选源极线提供不同的电压。
36.在一些实施例中,y解码器电路106被配置为从读取电路108接收控制信号组cs2。在一些实施例中,y解码器电路106被配置为响应于来自读取电路108的控制信号组cs2而至少生成位线信号或源极线信号。y解码器电路106的其他配置在本公开的范围内。
37.在一些实施例中,x解码器电路104和y解码器电路106被配置为同时执行存储器单元阵列102的每个层中的每个存储器单元的写入操作。换句话说,在一些实施例中,x解码器电路104和y解码器电路106被配置为同时将数据写入存储器单元阵列102的每个层中的每个存储器单元。
38.读取电路108耦合到存储器单元阵列102、x解码器电路104和y解码器电路106。读取电路108被配置为读取存储在存储器单元阵列102中的数据。在一些实施例中,读取电路108包括一个或多个感测放大器,其被配置为读取存储在存储器单元阵列102中的数据。在一些实施例中,系统800对应于感测放大器。
39.在一些实施例中,读取电路108被配置为执行存储器单元阵列102的测试。在一些实施例中,读取电路108被配置为生成控制信号组cs1和控制信号组cs2。在一些实施例中,在存储器单元阵列102的测试期间,读取电路108被配置为确定存储器单元阵列102a中的故障存储器单元,并且用备用存储器单元阵列102b中的对应备用存储器单元替换存储器单元阵列102a中的故障存储器单元。在一些实施例中,通过在读取操作期间测量存储器单元阵
列102a中的每个层的读取电流,读取电路108可以识别出故障的存储器单元。
40.在一些实施例中,读取电路108被配置为同时执行存储器单元阵列102或202(图2)的每个层中的每个存储器单元的读取操作。换句话说,在一些实施例中,读取电路108被配置为同时从存储器单元阵列102或202的每个层中的每个存储器单元读取数据。
41.在一些实施例中,读取电路108被配置为同时执行存储器单元阵列102或202的单层中的每个存储器单元的读取操作。换句话说,在一些实施例中,读取电路108被配置为同时从存储器单元阵列102或202的单个层中的每个存储器单元读取数据。
42.在一些实施例中,通过存储器电路100同时执行存储器单元阵列102的每个层中的每个存储器单元的写入操作,与其他方法相比,减少了在存储器单元阵列102上的测试时间。
43.在一些实施例中,通过存储器电路100同时执行存储器单元阵列102的每个层中的每个存储器单元的读取操作,与其他方法相比,减少了在存储器单元阵列102上的测试时间。
44.在一些实施例中,至少x解码器电路104、y解码器电路106和读取电路108中的两个或更多个被组合成单个外围电路。读取电路108的其他配置在本公开的范围内。
45.存储器电路100的其他配置在本公开的范围内。
46.图2是根据一些实施例的存储器电路200的立体图。
47.存储器电路200涉及图1的存储器电路100。存储器电路200是存储器单元阵列102的实施例,并且省略类似的详细描述。
48.与图1至图8(如下所示)中的一个或多个相同或相似的部件被赋予相同的附图标记,因此省略其详细描述。在一些实施例中,图1至图8包括图1至图8中未示出的附加元件。
49.存储器电路200包括存储器单元阵列202。存储器单元阵列202包括具有布置在存储器电路200的f个层上的m个行和c个列的三维(3d)存储器单元阵列,其中m、c和f是正整数。在一些实施例中,存储器单元阵列202是存储器单元阵列102的实施例,并且省略类似的详细描述。
50.存储器单元阵列202中的存储器单元的列c(统称为“存储器单元mc”)在第一方向y上布置。存储器单元阵列202中的存储器单元mc的行r在第二方向x上布置。存储器单元阵列202中的存储器单元mc的层f沿第三方向z布置。
51.第一方向y、第二方向x或第三方向z中的至少一个不同于至少第一方向y、第二方向x或第三方向z中的另一个。在一些实施例中,至少一个第一方向y、第二方向x或第三方向z中的至少一个垂直于至少第一方向y、第二方向x或第三方向z中的另一个。
52.存储器单元阵列202包括布置在存储器单元阵列202的层f的对应层0,...,f
‑
1上的存储器单元阵列202[0],...,202[f
‑
1]。例如,每个单元阵列202[0],
…
,202[f
‑
1]包括布置在层f的相应层0,
…
,f
‑
1上的存储器单元mc的阵列。这里的存储器单元阵列202由202[层或楼层号]指示。
[0053]
存储器单元阵列202的每个存储器单元阵列202[0],...,202[f
‑
1]与存储器单元阵列202的另一个存储器单元阵列202[0],...,202[f
‑
1]在第三方向z上通过绝缘区域220分离。
[0054]
存储器单元阵列202的每个存储器单元阵列202[0],
…
,202[f
‑
1]包括在层f的相
应层0,
…
,f
‑
1上具有m个行和c个列的存储器单元mc[0,0,层],mc[1,0,层],...,mc[c
‑
1,0,层],
…
,mc[0,m
‑
1,层],mc[1,m
‑
1,层],
…
,mc[c
‑
1,m
‑
1,层]的阵列。存储器单元mc在这里由mc[列号,行号,层或楼层号]表示。例如,存储器单元阵列202[0]包括在相应的层0上的存储器单元mc[0,0,0],mc[1,0,0],
…
,mc[c
‑
1,0,0],
…
,mc[0,m
‑
1,0],mc[1,m
‑
1,0],
…
,mc[c
‑
1,m
‑
1,0]的阵列。
[0055]
每个存储器单元阵列202[0],...,202[f
‑
1]中的存储器单元mc的行沿第二方向x布置。每个存储器单元阵列202[0],...,202[f
‑
1]中的存储器单元mc的列沿第一方向y布置。在一些实施例中,存储器单元阵列202中的每个存储器单元mc被配置为存储数据的对应位。在一些实施例中,存储器单元阵列202中的每个存储器单元mc被配置为存储多于相应的数据位。
[0056]
在一些实施例中,存储器单元阵列202的至少一个存储器单元阵列202[0],...,202[f
‑
1]与至少另一存储器单元阵列202[0],...,202[f
‑
1]相同。在一些实施例中,存储器单元阵列202的至少一个存储器单元阵列202[0],
…
,202[f
‑
1]不同于至少另一存储器单元阵列202[0],...,202[f
‑
1]。
[0057]
在一些实施例中,支列包括在特定行和特定列内的存储器单元阵列202的每个层中的存储器单元。例如,位于存储器电路200的行0和列0中的第三方向z上的支列(未标记)对应于存储器单元阵列202的每个层的第0行和第0列中的存储器单元202[0,0,0],202[0,0,1],
…
,202[0,0,f
‑
1]。
[0058]
存储器单元阵列202的每个对应层中的每个存储器单元阵列还包括在第二方向x上延伸的m个字线(统称为“字线wl”)。字线wl以wl[行号]_fl[楼层号]表示。在存储器单元阵列202的每个层内,m个字线耦合到存储器单元阵列202[0],
…
,202[f
‑
1]的相应行的存储器单元。例如,存储器单元阵列202[0]还包括耦合到存储器单元阵列202的层0中的相应行存储器单元的m个字线wl[0]_fl[0],wl[1]_fl0.…
,wl[m
‑
1]_fl[0]。类似地,存储器单元阵列202[f
‑
1]还包括耦合到存储器单元阵列202的层f
‑
1中的相应存储器单元行的m个字线wl[0]_fl[f
‑
1],wl[1]_fl[f
‑
1]
…
,wl[m
‑
1]_fl[f
‑
1]。存储器单元阵列202具有f*m个字线wl。
[0059]
存储器单元阵列202[0]中的每行存储器单元与存储器单元阵列202的层0中的字线wl[0]_fl[0],wl[1]_fl0.…
,wl[m
‑
1]_fl[0]的对应字线相关联。类似地,存储器单元阵列202中的每行存储器单元与存储器单元阵列202的层f
‑
1中的字线wl[0]_fl[f
‑
1],wl[1]_fl[f
‑
1]
…
,wl[m
‑
1]_fl[f
‑
1]的对应字线相关联。字线wl的其他配置在本发明的范围内披露。
[0060]
存储器单元阵列202还包括位线bl[0,0],bl[1,0],
…
,bl[c
‑
1,0],
…
,bl[0,m
‑
1],bl[1,m
‑
。1],
…
,bl[c
‑
1,m
‑
1](统称为“位线bl”),其耦合到存储器单元阵列202中的存储器单元的对应列和对应行。此处,位线bl表示为bl[列号,行号]。为了便于说明,在图2中未示出存储器单元阵列202中的一些位线。存储器单元阵列202具有c*m个位线bl。在一些实施例中,位线bl也被称为局部位线。
[0061]
存储器单元阵列202中的每列和每行与对应的位线相关联。每个位线bl在第三方向z上延伸。位线bl将位于存储器单元阵列202的不同层上的对应存储器单元彼此电耦合。例如,存储器单元阵列202的第0行和第0列中的每个存储器单元通过位线bl[0,0]电耦合在
一起。类似地,存储器单元阵列202的行m
‑
1和列c
‑
1中的每个存储器单元通过位线bl[c
‑
1,m
‑
1]电耦合在一起。位线bl的其他配置在本公开的范围内。
[0062]
存储器单元阵列202还包括源极线sl[0,0],sl[1、0],
…
,sl[c
‑
1、0],
…
,sl[0,m
‑
1],sl[1,m
‑
1],
…
,sl[c
‑
1,m
‑
1](统称为“源极线sl”),其耦合到存储器单元阵列202中的存储器单元的对应列和对应行。源极线sl这里用sl[列号,行号]表示。为了便于说明,在图2中未示出存储器单元阵列202中的一些源极线。存储器单元阵列202具有c*m个源极线sl。在一些实施例中,源极线sl也被称为局部源极线。
[0063]
存储器单元阵列202中的每列和每行与对应的源极线相关联。每个源极线sl在第三方向z上延伸。源极线sl将位于存储器单元阵列202的不同层上的对应存储器单元彼此电耦合。例如,存储器单元阵列202的第0行和第0列中的每个存储器单元通过源极线sl[0,0]电耦合在一起。类似地,存储器单元阵列202的行m
‑
1和列c
‑
1中的每个存储器单元通过源极线sl[c
‑
1,m
‑
1]电耦合在一起。源极线sl的其他配置在本公开的范围内。
[0064]
存储器单元阵列202的其他配置在本公开的范围内。在一些实施例中,至少位线bl或源极线sl在第一方向y上而不是在第三方向z上延伸。在一些实施例中,在每个层的位线bl在第一方向y上延伸的情况下,位线每个层的bl通过在第三方向z上延伸的一个或多个导电结构(未示出)电耦合在一起。在一些实施例中,在每个层的源极线sl在第一方向y上延伸的情况下,每个层的源极线sl通过在第三方向z上延伸的一个或多个导电结构(未示出)电耦合在一起。
[0065]
存储器电路200的其他配置在本公开的范围内。在一些实施例中,存储器单元阵列202是nand存储器单元阵列,并且存储器电路200还包括在f个层上方的位线选择晶体管阵列(未示出)和在0层下方的接地选择晶体管阵列(未示出)。在这些实施例中,在f个层以上的位线选择晶体管阵列(未示出)和在0层以下的接地选择晶体管阵列(未示出)的细节与存储器单元阵列202的细节相似,为简洁起见,省略了类似的描述。
[0066]
图3是根据一些实施例的存储器单元300的电路图。
[0067]
存储器单元300是至少存储器单元阵列102或202中的一个或多个存储器单元的实施例,因此省略类似的详细描述。
[0068]
存储器单元300包括通过耦合电容器308耦合到位线bl的第一端子302、耦合到源极线sl的第二端子304、和耦合到字线wl的控制端子306。在一些实施例中,省略耦合电容器308。在一些实施例中,用电压体(bulk)来偏压存储器单元300的衬底。在一些实施例中,电压体是地或vss。
[0069]
在一些实施例中,例如,在关于图2描述的存储器件200中,存储器单元300对应于存储器单元阵列102或202中的存储器单元mc中的一个,位线bl对应于位线bl[0,0],
…
,bl[m
‑
1,c
‑
1]中的一个,源极线sl对应于源极线sl[0,0],
…
,sl[m
‑
1,c
‑
1]中的一个,而字线wl对应于字线wl[0]_fl[0],...,wl[m
‑
1]_fl[f
‑
1]中的一个。
[0070]
在一些实施例中,存储器单元300包括晶体管。例如,第一端子302是晶体管的漏极,第二端子204是晶体管的源极,并且控制端子306是晶体管的栅极。在一些实施例中,控制端子306包括具有浮置栅极或电荷俘获层的栅极结构。在一些实施例中,存储器单元300是浮栅晶体管。在一些实施例中,存储器单元300是氧化硅
‑
氮化物
‑
氧化硅(sonos)单元。
[0071]
在一些实施例中,存储器单元300的阈值电压取决于存储在存储器单元mc中的数
据的逻辑状态。例如,在一些实施例中,对于单级存储器单元(例如,被配置为存储1位数据的存储器单元),与存储器单元300处于编程状态时(即,存储器单元存储逻辑“0”)相比,当存储器单元300处于擦除逻辑状态(即,存储器单元存储逻辑“1”)时的阈值电压低。
[0072]
对于多级存储器单元(例如,被配置为存储多于一位数据的存储器单元),存储器单元300具有与多级存储器单元的多于两个逻辑状态相对应的多于两个的阈值电压。存储器单元300可在逻辑状态之间切换,并具有与逻辑状态相对应的不同阈值电压。
[0073]
在一些实施例中,在写入或编程操作中,将编程位线电压、编程字线电压和编程源极线电压提供给相应的位线bl、字线wl和源极线sl以引起电荷载流子(诸如电子)被注入或隧穿到控制端子306的栅极结构中,从而提高了存储器单元300的阈值电压。结果,存储器单元300具有编程逻辑状态或逻辑“0”。
[0074]
在一些实施例中,在擦除操作中,将擦除位线电压、擦除字线电压和擦除源极线电压提供给相应的位线bl、字线wl和源极线sl以引起电荷载流子(诸如电子)被注入或隧穿出控制端子306的栅极结构,从而降低了存储器单元300的阈值电压。结果,存储器单元300具有擦除逻辑状态或逻辑“1”。
[0075]
在一些实施例中,在读取操作中,将读取的位线电压、读取的字线电压和读取的源极线电压提供给相应的位线bl、字线wl和源极线sl,并且电流读取电路(例如,读取电路108)测量流过存储器单元300中的电流,以确定存储器单元300的逻辑状态(例如,“0”或“1”)。
[0076]
在一些实施例中,对于编程操作,字线wl电压的范围为约2伏(v)至约4v,位线bl电压的范围为约0v至约2v,源极线sl的电压范围为约0v至约2v。在一些实施例中,对于读取操作,字线wl电压的范围为约0.7v至约1.5v,位线bl电压的范围为约0v至约1v,并且源极线sl电压的范围为约0至约1v。其他电压值在本公开的范围内。
[0077]
在一些实施例中,通过相应的位线驱动器(未示出)、字线驱动器(未示出)和源极线将编程、擦除和读取电压提供给位线bl、字线wl和源极线sl,如参照图1所描述的。
[0078]
存储器单元300的其他配置和类型在本公开的范围内。
[0079]
图4是根据一些实施例的存储器电路400的电路图。
[0080]
存储器电路400是图1的存储器电路100的实施例。图1以示意图表示,因此省略类似的详细描述。例如,存储器电路400是其中存储器单元阵列402是nor架构存储器单元阵列的实施例。
[0081]
存储器电路400包括存储器单元阵列402、x解码器电路404、y解码器电路406和读取电路408。
[0082]
存储器单元阵列402是图1的存储器单元阵列102或图2的存储器单元阵列202的实施例,x解码器电路404是图1的x解码器电路104的实施例,y解码器电路406是图1的y解码器电路106的实施例,读取电路408是图1的读取电路108的实施例,因此省略类似的详细描述。
[0083]
为了易于说明,简化了图4。例如,为了便于说明,存储器单元阵列402在第三方向z上示出了存储器单元(例如,存储器单元402a、402b、402c)的一个支列,但是存储器单元阵列402包括来自存储器单元阵列202的存储器单元的每个支列。
[0084]
存储器单元阵列402包括存储器单元402a、402b和402c。在一些实施例中,存储器单元402a、402b和402c是图2的对应的存储器单元202[0,0,0],202[0,0,1],
…
,202[0,0,f
‑
1],因此省略类似的详细描述。
[0085]
存储器单元阵列402是nor架构存储器单元阵列。换句话说,以nor配置来配置存储器单元402a、402b和402c。例如,在一些实施例中,每个存储器单元402a、402b和402c的漏极耦合到位线bl[0,0],并且每个存储器单元402a、402b和402c的源极耦合到源极线sl[0,0]。
[0086]
存储器单元402a、402b和402c的栅极通过对应的字线wl[0]_fl[0],wl[0]_fl[1],
…
,wl[0]_fl[f
‑
1]耦合到x解码器电路404。
[0087]
在每个支列内,存储器单元阵列402的每个层上的每个相应存储器单元的漏极通过支列中的位线bl耦合在一起,并且还耦合至y解码器电路406。
[0088]
在每个支列内,存储器单元阵列402的每个层上的每个相应存储器单元的源极通过支列中的源极线sl耦合在一起,并且还耦合至读取电路408。
[0089]
存储器单元阵列402的每个层上的每个相应存储器单元的栅极通过每个层上的对应的字线wl耦合到x解码器电路404。
[0090]
存储器单元阵列402的每个层中的每个存储器单元402a、402b、402c具有对应的电流i0,i1,
…
,if
‑
1,当被启用或接通时,电流i0,i1,...,if
‑
1流过对应的存储器单元。在一些实施例中,在读取操作期间启用存储器单元阵列402中的存储器单元402a、402b和402c。读取电路408被配置为从存储器单元402a接收电流i0,从存储器单元402b接收电流i1,以及从存储器单元402c接收电流if
‑
1。
[0091]
在测试存储器单元阵列402期间,读取电路408被配置为测量来自存储器单元阵列402的每个层和每个支列的总电流itl,以确定存储器单元阵列402中的故障存储器单元。在测试存储器单元阵列402时,读取电路408被配置为测量来自相应支列y中的存储器单元阵列402的每个层的支列电流ipy,以逐个支列为基础确定存储器单元阵列402中的故障存储器单元。例如,在一些实施例中,在存储器单元阵列402的读取操作期间测量支列0的支列电流ip0。在一些实施例中,在存储器单元阵列402的读取操作期间测量支列电流ipy对应于来自支列y中存储器单元阵列402的每个对应层上的每个存储器单元的总电流i0,i1,...,if
‑
1的总和。换句话说,支列电流ipy对应于存储器单元阵列402中的存储器单元的一个支列(例如,支列y)的电流i0,i1,...,if
‑
1的总和。支列y的支列电流ipy由公式(1)表示。
[0092][0093]
其中ipy是支列y的支列电流,i0对应于存储器单元阵列402的层0和支列y中的存储器单元的电流,i1对应于存储器单元阵列402的层1和支列y中的存储器单元的电流,if
‑
1对应于存储器单元阵列402的层f
‑
1和支列y中的存储器单元的电流。
[0094]
总电流it1对应于来自存储器单元阵列402的所有层中的每个支列的存储器单元的总电流ip0,ip1,...,ip
p
‑1的总和。所有支列的总电流it1用公式(2)表示。
[0095][0096]
其中p对应于存储器单元阵列402中支列的数量,ip0对应于支列0中的存储器单元阵列402的每个层中的每个存储器单元的总电流,ip1对应于支列1中的存储器单元阵列402的每个层中的每个存储器单元的总电流,ip
p
‑1对应于支列p
‑
1中的存储器单元阵列402的每个层中的每个存储器单元的总电流。
[0097]
在一些实施例中,在存储器单元阵列402的测试期间,x解码器电路404和y解码器
电路406被配置为同时执行存储器单元阵列402的每个层中的每个存储器单元的写入操作,并且读取电路408被配置为通过测量存储器单元阵列402的所有层的总电流it1来同时执行存储器单元阵列402的每个层中的每个存储器单元的读取操作。
[0098]
在一些实施例中,如果总电流itl等于预期读取电流irl,则存储器单元阵列402通过测试过程,并且确定存储器单元阵列中的每个存储器单元是完全可操作的。在一些实施例中,如果总电流it1不等于预期读取电流ir1,则存储器单元阵列402未通过测试过程,并且一个或多个发生故障的存储器单元被相应的备用存储器单元代替。在图6的方法600和图7的方法700中进一步讨论了测试过程的一个或多个实施例的更多细节。
[0099]
在一些实施例中,在存储器单元阵列402的测试期间,x解码器电路404和y解码器电路406被配置为同时执行存储器单元阵列402的每个层中的每个存储器单元的写入操作,并且读取电路408被配置为通过测量来自存储器单元阵列402的对应层的总电流it1来同时执行存储器单元阵列402的对应层中的每个存储器单元的读取操作。可以同时读取的层的数量等于一层或多层。例如,在一些实施例中,读取电路408被配置为同时执行存储器单元阵列402的单层中的每个存储器单元的读取操作。例如,在一些实施例中,读取电路408被配置为同时执行存储器单元阵列402的两个层中的每个存储器单元的读取操作。
[0100]
在一些实施例中,通过存储器电路400同时执行存储器单元阵列402的每个层中的每个存储器单元的写入操作,与其他方法相比,减少了存储器单元阵列402上的测试时间,从而提高了测试效率。在一些实施例中,通过存储器电路400同时执行存储器单元阵列402的每个层中的每个存储器单元的读取操作,与其他方法相比,减少了存储器单元阵列402上的测试时间,从而提高了测试效率。
[0101]
图5是根据一些实施例的存储器电路500的电路图。
[0102]
存储器电路500是图1的存储器电路100的实施例,因此省略类似的详细描述。例如,存储器电路500是其中存储器单元阵列502是nand架构存储器单元阵列的实施例。
[0103]
存储器电路500包括存储器单元阵列502、x解码器电路504、y解码器电路506和读取电路508。
[0104]
存储器单元阵列502是图1的存储器单元阵列102或图2的存储器单元阵列202的实施例,x解码器电路504是图1的x解码器电路104的实施例,y解码器电路506是图1的y解码器电路106的实施例,读取电路508是图1的读取电路108的实施例,因此省略类似的详细描述。
[0105]
为了易于说明,图5被简化。例如,为了便于图示,存储器单元阵列502在第三方向z上示出了存储器单元(例如,存储器单元502a、502b、502c、502d、502e、502f、502g、502h和502i)的三个支列(例如,支列503a、503b和503c),但是存储器单元阵列502包括来自图2中的存储器单元阵列202的存储器单元的每个支列。
[0106]
存储器单元阵列502包括存储器单元502a、502b、502c、502d、502e、502f、502g、502h和502i。在一些实施例中,存储器单元502a、502b和502c是图2的对应的存储器单元202[0,0,0],202[0,0,1],
…
,202[0,0,f
‑
1],存储器单元502d、502e和502f是图2的对应的存储器单元202[0,1,0],202[0,1,1],
…
,202[0,c
‑
1,f
‑
1],存储器单元502g、502h和502i是图2的对应的存储器单元202[0,c
‑
1,0],202[0,c
‑
1,1],
…
,202[0,c
‑
1,f
‑
1],因此省略类似的详细描述。
[0107]
存储器单元阵列502是nand架构存储器单元阵列。换句话说,以nand配置来配置存
储器单元502a、502b、502c、502d、502e、502f、502g、502h和502i。例如,在一些实施例中,存储器单元502a、502b和502c是支列503a的部分,并且串行地耦合到位线bl[0,0]和源极线sl[0,0]。类似地,在一些实施例中,存储器单元502d、502e和502f是支列503b的部分,并且串联耦合到位线bl[0,1]和源极线sl[0,1],而存储器单元502g,502h和502i是支列503b的部分,并且串联耦合到位线bl[0,c
‑
1]和源极线sl[0,c
‑
1]。
[0108]
存储器单元502a、502d和502g的栅极通过字线wl[0]_fl[0]耦合到x解码器电路504。存储器单元502b、502e和502h的栅极通过字线wl[0]_fl[1]耦合到x解码器电路504。存储器单元502c、502f和502i的栅极通过字线wl[0]_fl[f
‑
1]耦合到x解码器电路504。
[0109]
在每个支列内,存储器单元阵列502的每个层上的一个或多个存储器单元通过对应的位线bl被串联耦合到y解码器电路506,并且进一步通过相应的源极线sl串联耦合到x解码器电路504。
[0110]
存储器单元阵列502的每个支列中的每个存储器单元具有对应的电流ib0,ib1,...,ibc
‑
1,当被启用或导通时,电流ib0,ib1,...,ibc
‑
1流过相应的支列。例如,支列503a中的存储器单元502a、502b和502c具有电流ib0,当被启用或导通时,电流ib0流过支列503a中的存储器单元502a、502b和502c。类似地,当启用或开启时,支列503b中的存储器单元502d、502e和502f具有流过支列503b中的存储器单元502d、502e和502f的电流ib1,并且支列503c中的存储器单元502g、502h和502i具有电流ibc
‑
1。当启用或接通时,流过支列503c中的存储器单元502g、502h和502i。在一些实施例中,在读取操作期间启用存储器单元502a、502b、502c、502d、502e、502f、502g、502h和502i。读取电路508被配置为从支列503a接收电流ib0,从支列503b接收电流ib1,以及从支列503c接收电流ibc
‑
1。
[0111]
在存储器单元阵列502的测试期间,读取电路508被配置为测量来自存储器单元阵列502的每个层的总电流it2,以确定存储器单元阵列502中的故障存储器单元。在一些实施例中,在存储器单元阵列502的读取操作期间测量总电流it2。总电流it2对应于来自存储器单元阵列502的每个对应层上的每个存储器单元的总电流ib0,ib1,...,ibc
‑
1的总和。总电流it2对应于来自存储器单元阵列502中的存储器单元的每个对应支列的总电流ib0,ib1,...,ibc
‑
1的总和。总电流it2由公式(3)表示。
[0112][0113]
其中ib0对应于存储器单元阵列502的支列503a中的层0至层f
‑
1中的每个存储器单元的总电流,ib1对应于存储器单元的支列503b中的层0至层f
‑
1中的每个存储器单元的总电流阵列502,并且ibc
‑
1对应于存储器单元阵列502的支列503c中的层0至层f
‑
1中的每个存储器单元的总电流。
[0114]
在一些实施例中,在存储器单元阵列502的测试期间,x解码器电路504和y解码器电路506被配置为同时执行存储器单元阵列502的每个层中的每个存储器单元的写入操作,并且读取电路508被配置为通过测量来自存储器单元阵列502的每个支列和每个层的总电流it2来同时执行存储器单元阵列502的每个层中的每个存储器单元的读取操作。
[0115]
在一些实施例中,如果总电流it2等于预期读取电流ir2,则存储器单元阵列502通过测试过程,并且确定存储器单元阵列中的每个存储器单元是完全可操作的。在一些实施例中,如果总电流it2不等于预期读取电流ir2,则存储器单元阵列502未通过测试过程,并
且一个或多个故障存储器单元被相应的备用存储器单元代替。在图6的方法600和图7的方法700中进一步讨论了测试过程的一个或多个实施例的更多细节。
[0116]
在一些实施例中,在存储器单元阵列502的测试期间,x解码器电路504和y解码器电路506被配置为同时执行存储器单元阵列502的每个层中的每个存储器单元的写入操作,并且读取电路508被配置为通过测量来自存储器单元阵列502的对应的支列x的总电流ibx,在逐个支列的基础上来同时执行存储器单元阵列502的对应的支列中的每个存储器单元的读取操作。在一些实施例中,可被同时读取的支列的数量等于一个或多个支列。例如,在一些实施例中,读取电路508被配置为同时执行存储器单元阵列502的单个列中的每个存储器单元的读取操作。例如,在一些实施例中,读取电路508被配置为同时执行读取操作存储器单元阵列502的两个支列中的每个存储器单元的存储器单元。
[0117]
在一些实施例中,通过存储器电路500同时执行存储器单元阵列502的每个层中的每个存储器单元的写入操作,与其他方法相比,减少了存储器单元阵列502上的测试时间,从而提高了测试效率。在一些实施例中,通过存储器电路500同时执行存储器单元阵列502的每个层中的每个存储器单元的读取操作,与其他方法相比,减少了在存储器单元阵列502上的测试时间,从而提高了测试效率。
[0118]
图6是根据一些实施例的测试电路的方法600的流程图。
[0119]
在一些实施例中,图6是图1、图4或图5的测试相应电路的存储器电路100、400或500的方法的流程图。在一些实施例中,图6是测试图1、图2、图4或图5的对应的存储器单元阵列102、202、402或502的方法的流程图。可以理解,可以在图6中描绘的方法600之前、期间和/或之后执行附加操作。在图6中仅示出了一些其他操作,并且这里仅简要描述一些其他操作。在一些实施例中,方法600的其他操作顺序在本公开的范围内。方法600包括示例性操作,但是这些操作不一定以所示的顺序执行。根据所公开的实施例的精神和范围,可以适当地增加、替换、改变顺序和/或消除操作。应当理解,方法600利用存储器电路100、200、400和500以及存储器单元300中的一个或多个的特征。
[0120]
在方法600的操作602中,接收第一组控制信号和第二组控制信号。在一些实施例中,方法600或700的第一组控制信号包括控制信号组cs1,第二组控制信号包括控制信号组cs2。在一些实施例中,第一组控制信号由至少x解码器电路104、404或504接收。在一些实施例中,第二组控制信号由至少y解码器电路106、406或506接收。
[0121]
在一些实施例中,操作602还包括生成第一组控制信号和第二组控制信号。在一些实施例中,第一组控制信号和第二组控制信号至少由读取电路108、408或508生成。
[0122]
在方法600的操作604中,将数据同时写入3d存储器单元阵列中的存储器单元的每个层。在一些实施例中,方法600或700的3d存储器单元阵列至少包括存储器单元阵列102、202、402或502。在一些实施例中,相同的数据(例如,逻辑“0”或“1”)被写入每个存储器单元。在一些实施例中,操作604包括同时被写入3d存储器单元阵列中的至少两层存储器单元的数据。
[0123]
在一些实施例中,至少由x解码器电路104、404或504或y解码器电路106、406或506执行操作604。
[0124]
在一些实施例中,操作604包括向3d存储器单元阵列中的所有层中的每个存储器单元的每个字线同时施加第一字线电压,同时向3d存储器单元阵列的所有层中的每个存储
器单元的每个位线施加第一位线电压,将第一源极线电压同时施加到3d存储器单元阵列的所有层中的每个存储器单元的每个源极线。
[0125]
在一些实施例中,方法600的3d存储器单元阵列中的所有层中的每个存储器单元包括存储器单元阵列102、202、402或502中的每个存储器单元。在一些实施例中,方法600或700的第一字线电压包括字线wl的电压。在一些实施例中,方法600或700的第一位线电压包括位线bl的电压。在一些实施例中,方法600或700的第一源极线电压包括源极线sl的电压。
[0126]
在方法600的操作606中,同时对3d存储器单元阵列中所有层中的每个存储器单元执行读取操作。
[0127]
在一些实施例中,操作606至少由读取电路108、408或508执行。在一些实施例中,操作606由系统800执行。
[0128]
在一些实施例中,操作606还包括测量3d存储器单元阵列中的所有层中的每个存储器单元的总读取电流。在一些实施例中,方法600的总读取电流至少包括总电流it1或总电流it2。
[0129]
在方法600的操作608中,确定3d存储器单元阵列中的存储器单元是否响应于读取操作而发生故障。在一些实施例中,操作608包括操作610。在一些实施例中,方法600的3d存储器单元阵列中的存储器单元包括存储器单元阵列102、202、402或502中的一个或多个存储器单元。
[0130]
在一些实施例中,操作608至少由读取电路108、408或508执行。在一些实施例中,操作608由系统800执行。
[0131]
在方法600的操作610中,将3d存储器单元阵列中所有层中每个存储器单元的总读取电流与预期总读取电流进行比较。在一些实施例中,方法600的预期总读取电流至少包括预期读取电流ir1或预期读取电流ir2。在一些实施例中,操作610至少由读取电路108、408或508执行。在一些实施例中,操作610由系统800执行。
[0132]
在一些实施例中,针对每个支列分别执行操作606和608。例如,在一些实施例中,操作606还包括测量3d存储器单元阵列中的单个支列(例如,支列y或支列503a)中的每个存储器单元的读取电流(例如,支列电流ipy或支列503a的总电流ib0),并且操作608还包括通过将支列y(或支列503a)中的读取电流(例如,支列电流ipy或支列503a的总电流ib0)与来自支列y(或支列503a)的预期读取电流进行比较,来确定单个支列(例如,支列y或支列503a)中的存储器单元是否发生故障。在这些实施例中,针对每个支列分别执行操作606、608、610、614和616,然后针对每个支列重复执行操作606、608、610、614和616。
[0133]
在一些实施例中,操作610还包括确定3d存储器单元阵列中的所有层中的每个存储器单元的总读取电流是否等于预期总读取电流。在一些实施例中,如果3d存储器中的所有层中的每个存储器单元的总读取电流与预期总读取电流相差约5%,则方法600确定3d存储器单元阵列中的所有层中的每个存储器单元的总读取电流等于预期总读取电流。在一些实施例中,如果彼此相差5%或更小,则将彼此比较的两个项目确定为彼此相等。在一些实施例中,如果彼此相差超过5%,则将彼此比较的两个项目确定为彼此不相等。其他公差值在本公开的范围内。
[0134]
在一些实施例中,操作610还包括系统800,其被配置为将模拟电流值转换为数字电流值。在一些实施例中,将数字电流值与预期总读取电流值进行比较,例如预期读取电流
ir1和ir2。在一些实施例中,预期总读取电流值(例如,预期读取电流ir1和ir2)作为电流值816存储在系统中的存储器804中。在一些实施例中,预期读取总电流值基于设计参数预先已知。
[0135]
在一些实施例中,响应于操作608的读取操作来确定3d存储器单元阵列中的存储器单元是否发生故障包括确定3d存储器单元阵列中的所有层中的每个存储器单元的总读取电流是否为等于操作610的预期总读取电流。
[0136]
在一些实施例中,如果3d存储器单元阵列中所有层中每个存储器单元的总读取电流等于预期总读取电流,则没有存储器单元发生故障,并且操作608的结果为“否”或操作610的结果为“是”,并且方法600进行到操作612。
[0137]
在一些实施例中,如果3d存储器单元阵列中的所有层中的每个存储器单元的总读取电流不等于预期总读取电流,则至少一个存储器单元发生故障,并且操作结果608如果是“是”或操作610的结果是“否”,则方法600进行到操作614。
[0138]
在方法600的操作612中,不将3d存储器单元阵列中的存储器单元替换为备用存储器单元。在一些实施例中,响应于确定3d存储器单元阵列中的存储器单元没有发生故障,3d存储器单元阵列中的存储器单元不被备用存储器单元代替。
[0139]
在一些实施例中,操作612包括方法600保持在空闲状态。在一些实施例中,空闲状态对应于方法600等待操作602
‑
616的参数中的一个的更新。在一些实施例中,方法600保持在空闲状态,直到执行附加的读取或写入操作或擦除操作为止。在一些实施例中,如果执行附加的读取或写入操作或擦除操作,则操作612可以返回(图6中未示出)到操作602或604。在一些实施例中,操作612的空闲状态可以包括方法600的结束。
[0140]
在方法600的操作614中,逐层执行3d存储器单元阵列的每个层中每个存储器单元的读取操作。在一些实施例中,执行操作614的读取操作以识别包括故障存储器单元的一个或多个故障层,然后在每个故障层内执行进一步的读取操作以识别故障层内的故障存储器单元。
[0141]
在一些实施例中,识别故障层内的故障存储器单元包括基于单个存储器单元的预期读取电流值来执行每个单个存储器单元的读取操作。在一些实施例中,如果单个存储器单元的读取电流不等于单个存储器单元的预期读取电流,则该单个存储器单元是故障存储器单元。在一些实施例中,每个单个的存储器单元的读取操作包括设置耦合到单个的存储器单元的相应位线、字线和源极线的电压。
[0142]
在一些实施例中,逐层执行的操作614的3d存储器单元阵列的每个层中的每个存储器单元的读取操作包括在3d存储器单元阵列的第一层中执行每个存储器单元的读取操作,执行3d存储器单元阵列第二层中每个存储器单元的读取操作,然后随后对3d存储器单元阵列中每个其余层重复读取操作。在一些实施例中,方法600或700的第一层包括存储器单元阵列202的层0,方法600或700的第二层包括存储器单元阵列202的层1,方法600或700的其余层包括层2至层f
‑
1。
[0143]
在一些实施例中,执行3d存储器单元阵列的第一层中的每个存储器单元的读取操作包括测量3d存储器单元阵列的第一层中的每个存储器单元的第一读取电流。
[0144]
在一些实施例中,执行3d存储器单元阵列的第一层中的每个存储器单元的读取操作还包括响应于3d存储器单元阵列的第一层中的每个存储器单元的第一读取电流不等于
第一预期读取电流而确定3d存储器单元阵列的第一层中的第一存储器单元发生故障。在一些实施例中,第一预期读取电流等于预期读取电流ir1除以层数f(例如,ir1/f)。在一些实施例中,方法600或700的第一读取电流包括电流i0。
[0145]
在一些实施例中,执行3d存储器单元阵列的第一层中的每个存储器单元的读取操作还包括:响应于3d存储器单元阵列的第一层中的每个存储器单元的第一读取电流等于第一预期读取电流,确定3d存储器单元阵列的第一层中没有存储器单元发生故障。
[0146]
在一些实施例中,执行3d存储器单元阵列的第一层中的每个存储器单元的读取操作还包括响应于3d存储器单元阵列的第一层中的每个字线上的第二字线电压而启用3d存储器单元阵列的第一层中的每行存储器单元,并响应于在3d存储器单元阵列的第一层中的每个位线上的第二位线电压和3d存储器单元阵列的第一层中的每个源极线上的第二源极线电压,启用3d存储器单元阵列的第一层中的每列存储器单元。
[0147]
在一些实施例中,方法600或700的第二字线电压包括字线wl的电压。在一些实施例中,方法600或700的第二位线电压包括位线bl的电压。在一些实施例中,方法600或700的第二源极线电压包括源极线sl的电压。在一些实施例中,第二字线电压等于第一字线电压。在一些实施例中,第二位线电压等于第一位线电压。在一些实施例中,第二源极线电压等于第一源极线电压。
[0148]
在一些实施例中,执行3d存储器单元阵列的第一层中的每个存储器单元的读取操作还包括响应于3d存储器单元阵列的其他层中的每个字线上的第三字线电压而禁用3d存储器单元阵列的其他层中的每行存储器单元,并响应于3d存储器单元阵列的其他层中的每个位线上的第三位线电压和3d存储器单元阵列的其他层中每个源极线上的第三源极线电压,禁用3d存储器单元阵列的其他层中的每列存储器单元。
[0149]
在一些实施例中,在3d存储器单元阵列的其他层中的每行存储器单元包括不在3d存储器单元阵列的层0中的存储器单元的行。在一些实施例中,在3d存储器单元阵列的其他层中的每列存储器单元包括不在3d存储器单元阵列的层0中的存储器单元的列。
[0150]
在一些实施例中,方法600或700的第三字线电压包括字线wl的电压。在一些实施例中,方法600或700的第三位线电压包括位线bl的电压。在一些实施例中,方法600或700的第三源极线电压包括源极线sl的电压。在一些实施例中,第三字线电压不等于第一字线电压或第二字线电压。在一些实施例中,第三位线电压不等于第一位线电压或第二位线电压。在一些实施例中,第三源极线电压不等于第一源极线电压或第二源极线电压。
[0151]
对3d存储器单元阵列的每个其余层重复614的操作。例如,在一些实施例中,执行3d存储器单元阵列的第二层中的每个存储器单元的读取操作类似于执行3d存储器单元阵列的第一层中的每个存储器单元的读取操作,为了简洁起见而不重复说明。在一些实施例中,执行3d存储器单元阵列的其余层中的每个存储器单元的读取操作类似于执行3d存储器单元阵列的第一层中的每个存储器单元的读取操作,为了简洁起见而不重复说明。
[0152]
在方法600的操作616中,响应于确定3d存储器单元阵列中的至少一个存储器单元发生故障,将3d存储器单元阵列中的至少一个故障存储器单元替换为备用存储器单元。在一些实施例中,方法600或700的备用存储器单元包括图1的备用存储器单元阵列102b中的备用存储器单元。在一些实施例中,通过用备用存储器单元替换存储器单元,被替换的存储器单元被配置为不存储数据,并且备用存储器单元被配置为存储数据。
[0153]
在操作616之后,方法600返回操作606以执行其他读取操作。在一些实施例中,在操作606中执行附加读取操作,以确定修改后的存储器单元阵列是否仍然包括故障存储器单元或新的故障存储器单元。在一些实施例中,附加读取操作包括在用备用存储器单元替换3d存储器单元阵列中的至少一个故障存储器单元之后,同时对3d存储器单元阵列中的所有层中的每个存储器单元执行另一读取操作。
[0154]
通过执行方法600,对存储器电路进行测试以实现上面相对于存储器电路100、400和500所讨论的益处。参照图1、图2、图3、图4和图8讨论了方法60,应当理解,方法600利用了图5和图8中的一个或多个特征。
[0155]
图7是根据一些实施例的测试电路的方法700的流程图。
[0156]
在一些实施例中,图7是测试对应图1、图4或图5的存储器电路100、400或500的方法的流程图。图7是测试相应图1、图2、图4或图5的存储器单元阵列102、202、402或502的方法的流程图。可以理解,可以在图7中描绘的方法700之前、期间和/或之后执行附加的操作。在图7中示出了其他操作,并且这里仅简要描述一些其他操作。在一些实施例中,方法700的其他操作顺序在本公开的范围内。方法700包括示例性操作,但是这些操作不一定以所示的顺序执行。根据所公开的实施例的精神和范围,可以适当地增加、替换、改变顺序和/或消除操作。应当理解,方法700利用存储器电路100、200、400和500以及存储器单元300中的一个或多个特征。
[0157]
方法700是方法600的一种变型。与图6的方法600相比,方法700不包括操作606、608和610,因此省略类似的详细描述。
[0158]
与图600的方法600相比,参照图6,方法700包括操作602、604、614、616和612,并且因此省略类似的详细描述。为简洁起见,与方法600相比,省略了方法700的操作602、604、614、616和612的相似方面的细节。
[0159]
在方法700的操作602中,接收第一组控制信号和第二组控制信号。方法700的操作602的细节在方法600的操作602中类似地描述,因此为简洁起见,省略了类似的详细描述。
[0160]
在方法700的操作604中,将数据同时写入3d存储器单元阵列中的存储器单元的每个层。方法700的操作604的细节在方法600的操作604中类似地描述,因此,为简洁起见,省略了类似的详细描述。
[0161]
在方法700的操作614中,逐层执行3d存储器单元阵列的每个层中的每个存储器单元的读取操作。方法700的操作614的细节在方法600的操作614中类似地描述,因此为简洁起见,省略了类似的详细描述。
[0162]
在方法700的操作616中,响应于确定3d存储器单元阵列中的至少一个存储器单元已经发生故障,将3d存储器单元阵列中的至少一个发生故障的存储器单元替换为备用存储器单元。方法700的操作616的细节在方法600的操作616中类似地描述,因此为简洁起见,省略了类似的详细描述。
[0163]
在方法700的操作612中,不将3d存储器单元阵列中的存储器单元中的存储器单元替换为备用存储器单元。在一些实施例中,操作612包括方法700保持在空闲状态。方法700的操作612的细节在方法600的操作612中类似地描述,并且因此为简洁起见省略类似的详细描述。
[0164]
通过操作方法700,对存储器电路进行测试以实现以上关于存储器电路100、400和
500所讨论的益处。参照图1、图2、图3、图4和图8讨论了方法700,应当理解,方法700利用图5中的一个或多个特征。
[0165]
图8是根据一些实施例的系统800的示意图。在一些实施例中,系统800是至少图1的读取电路108、图4的读取电路408或图5的读取电路508的实施例,因此省略类似的详细描述。
[0166]
在一些实施例中,系统800被配置为控制存储器单元阵列102、202、402或502,x解码器电路104、404或504或y解码器电路106、406或506中的一个或多个。在一些实施例中,系统800被配置为测量至少来自存储器单元阵列102、202、402或502的读取电流(例如,总电流it1或总电流it2)。在一些实施例中,系统800被配置为将来自至少存储器单元阵列102、202、402或502的读取电流(例如,至少总电流it1或总电流it2)与至少预期读取电流ir1或ir2进行比较。
[0167]
系统800包括硬件处理器802和用计算机程序代码806(即一组可执行指令806)编码(即存储)的非暂时性计算机可读取存储介质804(例如,存储器804)。可读取存储介质804被配置为与至少存储器电路100、400或500接口以至少测试存储器单元阵列102、202402或502。处理器802通过总线808电耦合至计算机可读取存储介质804。处理器802还通过总线808电耦合到i/o接口810。网络接口812也通过总线808电耦合到处理器802。网络接口812被连接到网络814,以便处理器802和计算机可读取存储介质804能够通过网络814连接到外部元件。处理器802被配置为执行编码在计算机可读取存储介质804中的计算机程序代码806,以便执行以下操作:系统800可用于执行至少在方法600或700中所述的部分或全部操作。
[0168]
在一些实施例中,处理器802是中央处理单元(cpu)、多处理器、分布式处理读取电路、专用集成电路(asic)和/或合适的处理单元。
[0169]
在一些实施例中,计算机可读取存储介质804是电、磁、光、电磁、红外和/或半导体读取电路(或装置或器件)。例如,计算机可读取存储介质804包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(ram)、只读取存储器(rom)、刚性磁盘和/或光盘。在使用光盘的一些实施例中,计算机可读取存储介质804包括光盘只读取存储器(cd
‑
rom)、光盘读取/写入光盘(cd
‑
r/w)和/或数字视频光盘(dvd)。
[0170]
在一些实施例中,存储介质804存储计算机程序代码806,该计算机程序代码806被配置为使系统800执行至少方法600或700的一个或多个操作。在一些实施例中,存储介质804还存储用于执行至少方法600或700的信息以及在执行至少方法600或700期间生成的信息,例如电流值816、用户界面818和控制信号820和/或一组可执行指令,以执行至少方法600或700的操作。
[0171]
在一些实施例中,存储介质804存储用于至少与存储器电路100、400或500接口的指令(例如,计算机程序代码806)。该指令(例如,计算机程序代码806)使处理器802能够生成可被读取的测试指令。至少读取电路108、408或508或存储器电路100、400或500以在测试过程期间有效地实现至少方法600或700的一种或多种操作。
[0172]
系统800包括i/o接口810。i/o接口810耦合到外部电路。在一些实施例中,i/o接口810包括键盘、小键盘、鼠标、轨迹球、轨迹板和/或光标方向键,用于将信息和命令传达给处理器802。
[0173]
系统800还包括耦合到处理器802的网络接口812。网络接口812允许系统800与网
络814通信,一个或多个其他计算机读取电路连接到网络814。网络接口812包括诸如蓝牙,wifi、wimax、gprs或wcdma的无线网络接口;或有线网络接口,例如ethernet、usb或ieee
‑
994。在一些实施例中,至少方法600或700在两个或更多个读取电路800中实现,并且诸如电流值、用户界面和控制信号之类的信息通过网络814在不同的读取电路800之间交换。
[0174]
系统800被配置为通过i/o接口810或网络接口812接收与电流值有关的信息。该信息通过总线808传输到处理器802,以便在存储器单元的读取操作期间确定、测量或比较电流值阵列102、202、402或502。电流值然后作为电流值816存储在计算机可读取介质804中。在一些实施例中,电流值816包括总电流it1,总电流it2,电流i0,i1,...,if
‑
1,电流ib0,ib1,...,ibc
‑
1,预期电流ir1或ir2中的一个或多个。系统800被配置为通过i/o接口810或网络接口812接收与用户接口有关的信息。该信息作为用户接口818被存储在计算机可读取介质804中。系统800被配置为通过i/o接口810或网络接口812接收与控制信号有关的信息。该信息作为控制信号820存储在计算机可读取介质804中。在一些实施例中,控制信号至少包括控制信号组cs1或cs2。
[0175]
在一些实施例中,至少方法600或700被实现为用于由处理器执行的独立软件应用。在一些实施例中,至少方法600或700被实现为作为附加软件应用的部分的软件应用。在一些实施例中,至少方法600或700被实现为软件应用程序的插件。在一些实施例中,至少方法600或700被实现为作为测试工具的部分的软件应用。在一些实施例中,至少方法600或700被实现为测试工具所使用的软件应用。在一些实施例中,测试工具用于至少测试存储器电路100、400或500。
[0176]
在一些实施例中,至少方法600或700由诸如存储器电路100、400或500的存储器电路实现,以使用控制信号组cs1或cs1至少测试存储器单元阵列102、202、402或502。cs2或预期读取电流ir1或ir2基于系统800生成的一条或多条指令。
[0177]
在一些实施例中,系统800被配置为将模拟电流值转换为数字电流值。在一些实施例中,将数字电流值与预期读取电流值,例如预期读取电流ir1和ir2进行比较。
[0178]
在一些实施例中,不执行方法600或700的一个或多个操作。此外,图3
‑
图5中所示的各种n型晶体管具有特定的掺杂剂类型(例如,n型或p型)是为了说明的目的。本公开的实施例不限于特定的晶体管类型,并且图3至图5中所示的一个或多个n型晶体管可以用不同晶体管/掺杂类型的对应晶体管代替。类似地,以上描述中使用的各种信号的低或高逻辑值也用于说明。当信号被激活和/或去激活时,本公开的实施例不限于特定的逻辑值。选择不同的逻辑值在各种实施例的范围内。在图3
‑
图5中选择不同数量的晶体管在各种实施例的范围内。
[0179]
本领域的普通技术人员将容易地看到,所公开的实施例中的一个或多个实现了以上阐述的一个或多个优点。在阅读取了前述说明书之后,本领域普通技术人员将能够影响本文广泛公开的各种变化,等同物的替代以及各种其他实施例。因此,旨在于此授予的保护仅受所附权利要求及其等同物中所包含的定义的限制。
[0180]
本说明书的一个方面涉及一种测试三维(3d)存储器单元阵列的方法。该方法包括:将数据写入3d存储器单元阵列中的存储器单元的每个层;在至少一个3d存储器单元阵列的第一支列中同时执行每个存储器单元的读取操作,第一支列包括在3d存储器单元阵列的每个对应层上的存储器单元;确定3d存储器单元阵列中的存储器单元是否响应于读取操
作而发生故障;以及响应于确定3d存储器单元阵列中的存储器单元发生故障,用备用存储器单元替换3d存储器单元阵列中的至少一个故障存储器单元。
[0181]
在上述方法中,还包括:在用备用存储器单元替换3d存储器单元阵列中的至少一个故障存储器单元之后,同时执行3d存储器单元阵列的第一支列中的每个存储器单元的另一读取操作。
[0182]
在上述方法中,同时执行3d存储器单元阵列的第一支列中的每个存储器单元的读取操作包括:测量3d存储器单元阵列的第一支列中的每个存储器单元的总读取电流。
[0183]
在上述方法中,确定3d存储器单元阵列中的存储器单元是否已经故障还包括:确定3d存储器单元阵列的第一支列中的每个存储器单元的总读取电流不等于预期总读取电流。
[0184]
在上述方法中,还包括:执行3d存储器单元阵列的第一层中的每个存储器单元的读取操作,其中,执行3d存储器单元阵列的第一层中的每个存储器单元的读取操作包括:测量3d存储器单元阵列的第一层中的每个存储器单元的第一读取电流,以及以下至少一项操作:响应于3d存储器单元阵列的第一层中的每个存储器单元的第一读取电流不等于第一预期读取电流,确定3d存储器单元阵列的第一层中的第一存储器单元发生故障;或者响应于3d存储器单元阵列的第一层中的每个存储器单元的第一读取电流等于第一预期读取电流,确定3d存储器单元阵列的第一层中没有存储器单元发生故障。
[0185]
在上述方法中,执行3d存储器单元阵列的第一层中的每个存储器单元的读取操作包括:响应于3d存储器单元阵列的第一层中每个字线上的第一字线电压,启用3d存储器单元阵列的第一层中的每行存储器单元;和响应于3d存储器单元阵列的第一层中的每个位线上的第一位线电压和3d存储器单元阵列的每个源极线上的第一源极线电压,启用3d存储器单元阵列的第一层中的每列存储器单元。
[0186]
在上述方法中,执行3d存储器单元阵列的第一层中的每个存储器单元的读取操作还包括:响应于3d存储器单元阵列的其他层中的每个字线上的第二字线电压,禁用3d存储器单元阵列的其他层中的每行存储器单元;和响应于3d存储器单元阵列的其他层中的每个位线上的第二位线电压和3d存储器单元阵列中的每个源极线上的第二源极线电压,禁用3d存储器单元阵列的其他层中的每列存储器单元。
[0187]
在上述方法中,还包括:执行与3d存储器单元阵列的第一层不同的3d存储器单元阵列的第二层中的每个存储器单元的读取操作,其中,执行3d存储器单元阵列的第二层中的每个存储器单元的读取操作包含:测量3d存储器单元阵列的第二层中的每个存储器单元的第二读取电流,以及以下至少一项操作:响应于3d存储器单元阵列的第二层中的每个存储器单元的第二读取电流不等于第二预期读取电流,确定3d存储器单元阵列的第二层中的第二存储器单元发生故障;或者响应于3d存储器单元阵列的第二层中每个存储器单元的第二读取电流等于第二预期读取电流,确定3d存储器单元阵列的第二层中没有存储器单元发生故障。
[0188]
在上述方法中,还包括:确定3d存储器单元阵列中的存储器单元没有发生故障。
[0189]
在上述方法中,确定3d存储器单元阵列中的存储器单元没有发生故障包括:确定3d存储器单元阵列的第一支列中的每个存储器单元的总读取电流等于预期总读取电流。
[0190]
在上述方法中,还包括:响应于确定3d存储器单元阵列中的存储器单元没有发生
故障,不通过备用存储器单元替换3d存储器单元阵列中的存储器单元。
[0191]
在上述方法中,将数据写入3d存储器单元阵列中的存储器单元的每个层包括:同时向3d存储器单元阵列中所有层中的每个存储器单元的每个字线施加第一字线电压;同时向3d存储器单元阵列中的所有层中的每个存储器单元的每个位线施加第一位线电压;同时将第一源极线电压施加到3d存储器单元阵列中的所有层中的每个存储器单元的每个源极线。
[0192]
在上述方法中,同时执行至少3d存储器单元阵列的第一支列中的每个存储器单元的读取操作包括:同时向3d存储器单元阵列的第一支列中的每个存储器单元的每个字线施加第一字线电压;同时将第一位线电压施加到3d存储器单元阵列的第一支列的第一位线;同时将第一源极线电压施加到3d存储器单元阵列的第一支列的第一源极线。
[0193]
本说明书的另一方面涉及一种测试三维(3d)存储器单元阵列的方法。该方法包括:将数据写入3d存储器单元阵列中的存储器单元的每个层;同时执行3d存储器单元阵列的第一层中的每个存储器单元的读取操作;响应于3d存储器单元阵列的第一层的读取操作,确定3d存储器单元阵列的第一层中的第一存储器单元是否已经故障;响应于确定3d存储器单元阵列的第一层中的第一存储器单元已经发生故障,用第一备用存储器单元替换3d存储器单元阵列的第一层中的至少一个故障存储器单元。
[0194]
在上述方法中,同时执行3d存储器单元阵列的第一层中的每个存储器单元的读取操作包括:测量3d存储器单元阵列的第一层中每个存储器单元的第一读取电流,以及以下至少一项操作:响应于3d存储器单元阵列的第一层中的每个存储器单元的第一读取电流不等于第一预期读取电流,确定3d存储器单元阵列的第一层中的第一存储器单元发生故障;或者响应于3d存储器单元阵列的第一层中的每个存储器单元的第一读取电流等于第一预期读取电流,确定3d存储器单元阵列的第一层中的第一存储器单元没有发生故障。
[0195]
在上述方法中,还包括:在与3d存储器单元阵列的第一层不同的第二层中执行对3d存储器单元阵列的第二层中的每个存储器单元的读取操作;响应于3d存储器单元阵列的第二层的读取操作,确定3d存储器单元阵列的第二层中的第二存储器单元是否已经故障;响应于确定3d存储器单元阵列的第二层中的第二存储器单元已经发生故障,用第二备用存储器单元替换3d存储器单元阵列的第二层中的至少一个发生故障的存储器单元。
[0196]
在上述方法中,同时执行3d存储器单元阵列的第二层中的每个存储器单元的读取操作包括:测量3d存储器单元阵列的第二层中每个存储器单元的第二读取电流,以及以下至少一项操作:响应于3d存储器单元阵列的第二层中的每个存储器单元的第二读取电流不等于第二预期读取电流,确定3d存储器单元阵列的第二层中的第二存储器单元发生故障;或者响应于3d存储器单元阵列的第二层中的每个存储器单元的第二读取电流等于第二预期读取电流,确定3d存储器单元阵列的第二层中的第二存储器单元没有发生故障。
[0197]
在上述方法中,执行对3d存储器单元阵列的第一层中的每个存储器单元的读取操作包括:响应于3d存储器单元阵列的第一层中每个字线上的第一字线电压,启用3d存储器单元阵列的第一层中的每行存储器单元;响应于3d存储器单元阵列的第一层中的每个位线上的第一位线电压和3d存储器单元阵列的每个源极线上的第一源极线电压,启用3d存储器单元阵列的第一层中的每列存储器单元;响应于3d存储器单元阵列的其他层中的每个字线上的第二字线电压,禁用3d存储器单元阵列的其他层中的每行存储器单元;响应于3d存储
器单元阵列的其他层中的每个位线上的第二位线电压和3d存储器单元阵列中的每个源极线上的第二源极线电压,禁用3d存储器单元阵列的其他层中的每列存储器单元。
[0198]
本说明书的另一方面涉及一种存储器电路。该存储器电路包括:第一存储器单元阵列,位于第一层上;第二存储器单元阵列,位于与第一层不同的第二层上;第一解码器电路,通过字线组耦合到第一存储器单元阵列和第二存储器单元阵列;第二解码器电路,通过位线组和源极线组耦合到第一存储器单元阵列和第二存储器单元阵列,第一解码器电路和第二解码器电路被配置为同时执行第一存储器单元阵列和第二存储器单元阵列中的每个存储器单元的写入操作;读取电路,至少耦合到第一存储器单元阵列和第二存储器单元阵列,并且被配置为同时执行第一存储器单元阵列和第二存储器单元阵列中的每个存储器单元的读取操作。
[0199]
在上述存储器电路中,第一存储器单元阵列或第二存储器单元阵列包括:nand存储器单元阵列;或者nor存储器单元阵列。
[0200]
上述概述了几个实施例的特征,以便本领域技术人员可以更好地理解本公开的各个方面。本领域技术人员应当理解,他们可以容易地使用本公开作为设计或修改用于实现本文所介绍的实施例的相同目的和/或实现其相同优点的其它过程和结构的基础。本领域技术人员还应当认识到,此类等效结构不背离本发明的精神和范围,并且它们可以在不背离本发明的精神和范围的情况下在本发明中进行各种改变、替换以及改变。