CN111386573B - 非易失性存储器装置的多个单元的同时编程 - Google Patents
非易失性存储器装置的多个单元的同时编程 Download PDFInfo
- Publication number
- CN111386573B CN111386573B CN201980005970.1A CN201980005970A CN111386573B CN 111386573 B CN111386573 B CN 111386573B CN 201980005970 A CN201980005970 A CN 201980005970A CN 111386573 B CN111386573 B CN 111386573B
- Authority
- CN
- China
- Prior art keywords
- memory cells
- memory
- memory cell
- blocks
- programming
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 59
- 230000004044 response Effects 0.000 claims description 47
- 230000006835 compression Effects 0.000 claims description 22
- 238000007906 compression Methods 0.000 claims description 22
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 229910052751 metal Inorganic materials 0.000 description 11
- 239000002184 metal Substances 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 9
- 229920005591 polysilicon Polymers 0.000 description 9
- 238000012795 verification Methods 0.000 description 9
- 239000000758 substrate Substances 0.000 description 8
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 7
- 238000013459 approach Methods 0.000 description 7
- 229910052814 silicon oxide Inorganic materials 0.000 description 7
- 238000003491 array Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000007667 floating Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 239000000463 material Substances 0.000 description 5
- 238000001465 metallisation Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 239000004020 conductor Substances 0.000 description 3
- 229910021389 graphene Inorganic materials 0.000 description 3
- 239000002159 nanocrystal Substances 0.000 description 3
- 150000004767 nitrides Chemical class 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 229910052710 silicon Inorganic materials 0.000 description 3
- 239000010703 silicon Substances 0.000 description 3
- JWZQBEUBJXSDPP-UHFFFAOYSA-N 5-cyclohexyl-6-methylpyrimidine-2,4-diamine Chemical compound CC1=NC(N)=NC(N)=C1C1CCCCC1 JWZQBEUBJXSDPP-UHFFFAOYSA-N 0.000 description 2
- 101100072002 Arabidopsis thaliana ICME gene Proteins 0.000 description 2
- 229910052581 Si3N4 Inorganic materials 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 150000004770 chalcogenides Chemical class 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 239000003989 dielectric material Substances 0.000 description 2
- 238000009792 diffusion process Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- HQVNEWCFYHHQES-UHFFFAOYSA-N silicon nitride Chemical compound N12[Si]34N5[Si]62N3[Si]51N64 HQVNEWCFYHHQES-UHFFFAOYSA-N 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 229910017107 AlOx Inorganic materials 0.000 description 1
- 101100481702 Arabidopsis thaliana TMK1 gene Proteins 0.000 description 1
- 101100481703 Arabidopsis thaliana TMK2 gene Proteins 0.000 description 1
- 101100481704 Arabidopsis thaliana TMK3 gene Proteins 0.000 description 1
- 230000005689 Fowler Nordheim tunneling Effects 0.000 description 1
- 238000000231 atomic layer deposition Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000005684 electric field Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 230000005415 magnetization Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000000615 nonconductor Substances 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- WFKWXMTUELFFGS-UHFFFAOYSA-N tungsten Chemical compound [W] WFKWXMTUELFFGS-UHFFFAOYSA-N 0.000 description 1
- 229910052721 tungsten Inorganic materials 0.000 description 1
- 239000010937 tungsten Substances 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5671—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge trapping in an insulator
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/12—Group selection circuits, e.g. for memory block selection, chip selection, array selection
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/18—Address timing or clocking circuits; Address control signal generation or management, e.g. for row address strobe [RAS] or column address strobe [CAS] signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/562—Multilevel memory programming aspects
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/562—Multilevel memory programming aspects
- G11C2211/5621—Multilevel programming verification
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/562—Multilevel memory programming aspects
- G11C2211/5622—Concurrent multilevel programming of more than one cell
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/562—Multilevel memory programming aspects
- G11C2211/5624—Concurrent multilevel programming and programming verification
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/564—Miscellaneous aspects
- G11C2211/5641—Multilevel memory having cells with different number of storage levels
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/12—Reading and writing aspects of erasable programmable read-only memories
- G11C2216/16—Flash programming of all the cells in an array, sector or block simultaneously
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开了用于对非易失性存储单元诸如SLC NAND阵列的非易失性存储单元进行同时编程的设备、系统和方法。非易失性存储单元可被布置成:第一块,该第一块包括在第一存储单元处与第一字线相交的第一存储单元串;第二块,该第二块包括在第二存储单元处与第二字线相交的第二存储单元串;位线,该位线可电连接到第一串和第二串;以及控制器,该控制器被配置为以升高的电压将编程脉冲施加到第一字线和第二字线,以对第一存储单元和第二存储单元进行同时编程。
Description
技术领域
在各种实施方案中,本公开涉及存储装置,并且更具体地,涉及用于对非易失性存储装置的多个单元进行同时编程的系统和方法。
背景技术
许多数据存储装置诸如闪存存储器装置将数据存储在非易失性介质的单元中。可改变每个单元的物理特性,诸如存储的电荷、电压、材料相位、电阻、磁化等,以对数据进行编码。单元的物理特性可在一定范围内变化,该范围可被分成离散状态,使得不同状态对应于不同数据值。感测单元的物理特性是否满足其范围内的一个或多个读取阈值(例如,电压阈值、电阻率阈值等)可确定单元的状态,从而允许恢复存储的数据值。
非易失性存储器类型包括但不限于ReRAM、忆阻器存储器、可编程金属化单元存储器、相变存储器(PCM、PCME、PRAM、PCRAM、双向统一存储器、硫属化物RAM或C-RAM)、NAND闪存存储器(例如,2D NAND闪存存储器、3D NAND闪存存储器)、NOR闪存存储器、纳米随机存取存储器(纳米RAM或NRAM)、基于纳米晶体线的存储器、基于硅氧化物的亚10纳米工艺存储器、石墨烯存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)、可编程金属化单元(PMC)、导电桥接RAM(CBRAM)、磁阻RAM(MRAM)、自旋转移矩(STT)MRAM、自旋轨道矩SOT-MRAM、磁存储介质(例如,硬盘、磁带)、光存储介质等。在用于对保留电荷中的信息进行编码的非易失性存储器类型中,可使用各种充电和/或电荷保留技术,包括但不限于浮栅和电荷俘获技术。
在上述技术的许多中,不同块中的存储单元在单独的操作中进行编程。在一些情况下,在多级单元(MLC)中存储数据之前,将多个数据副本临时写入对应的存储单元组。MLC单元的示例包括三级单元(TLC)、四级单元(QLC)、五级单元等。如果临时存储的数据被写入不同容量的单元,诸如单级单元(SLC),则单元压缩操作等可用于使用SLC单元中的临时存储的数据来组合多个位,以向MLC单元提供待编码的值。单独写入和验证临时副本的常规方法增加了编码MLC单元所需的时间和步骤数。
发明内容
本发明提供了用于对一个或多个非易失性存储器元件的多个存储单元进行同时编程的设备和方法。
本发明提供了用于对一个或多个非易失性存储器元件的多个存储单元进行同时编程的设备和方法。在一个示例中,存储器管芯包括:被布置成第一块和第二块的一组非易失性存储单元,该第一块包括在第一存储单元处与第一字线相交的第一存储单元串,该第二块包括在第二存储单元处与第二字线相交的第二存储单元串;位线,该位线可电连接到第一串和第二串;以及控制器,该控制器被配置为将编程脉冲同时施加到第一字线和第二字线,以将第一存储单元和第二存储单元同时编程为公共目标阈值电压。
在另一个示例中,控制器被进一步配置为,在将编程脉冲同时施加到第一字线和第二字线之后,将验证脉冲同时施加到第一字线和第二字线,响应于验证脉冲的施加而感测流过第一存储单元和第二存储单元中的一者的电流,以同时确定第一存储单元和第二存储单元中的一者未被正确编程,并且响应于确定第一存储单元和第二存储单元中的一者未被正确编程,发起第一存储单元和第二存储单元的单独编程。
在一个示例性实施方案中,第一存储单元和第二存储单元的单独编程包括将常规编程操作应用于第一存储单元,并且在验证第一存储单元被正确编程之后,将常规编程操作应用于第二存储单元。
在一个示例中,控制器被进一步配置为,在将常规编程脉冲施加到第二单元之后,将第二验证脉冲施加到第一存储单元,响应于第二验证脉冲的施加而感测流过第一存储单元和第二存储单元中的一者的电流,以确定第一存储单元被正确编程,在将第二验证脉冲施加到第一存储单元之后,将第三验证脉冲施加到第二存储单元,并且响应于第三验证脉冲的施加而感测流过第一存储单元和第二存储单元中的一者的电流,以确定第二存储单元被正确编程。
在另一个示例中,控制器被进一步配置为确定第一存储单元被正确编程,响应于确定第一存储单元被正确编程而从第一存储单元读取数据,并且在从第一存储单元读取数据之后,重写第一存储单元和第二存储单元。
在一个示例性实施方案中,控制器被进一步配置为从第一存储单元和第二存储单元中的一者读取数据,并且使用该数据在单元压缩操作中对多级单元进行编程。一般来讲,单元压缩(又称存储器单元)操作是采用存储在保持一个或多个数据值的单元中的数据值并将该数据值移动到保持比初始存储器单元中保持的数据值数量更多的数据值的单元的操作。例如,在一个实施方案中,单元压缩操作是SLC-TLC单元压缩,这意味着保持单个数据值的存储器单元中的数据值以组合编码存储到保持三个数据值的单个存储器单元中。在其他示例中,单元压缩是SLC-MLC、MLC-QLC、TLC-QLC、SLC-QLC等,如本领域技术人员应当理解的那样。
在另一个示例性实施方案中,第二块在该组非易失性存储单元的与第一块分开的物理部分中。
在一个示例中,一种设备包括:被布置成第一块和第二块的一组非易失性存储单元,该第一块和第二块中的每一者电连接到一组位线,第一块包括第一字线并且第二块包括第二字线;选择电路,该选择电路被配置为对第一块中的第一组存储单元和第二块中的第二组存储单元进行电选择;以及编程电路,该编程电路被配置为在升高的电压下将编程脉冲施加到第一字线和第二字线,以在单个脉冲中将相同数据同时写入第一组存储单元和第二组存储单元。
在另一个示例中,该设备还包括验证电路,该验证电路被配置为将验证脉冲施加到第一字线和第二字线,响应于验证脉冲的施加而感测流过连接到所述一组位线的相应存储单元的电流,以同时确定第一组存储单元和第二组存储单元中的一者未被正确编程,并且响应于确定第一组存储单元和第二组存储单元中的一者未被正确编程,对第一组存储单元和第二组存储单元进行单独编程。
在另一个示例性实施方案中,第二块从第一块物理地位移。
在一个示例中,一种系统包括:被布置成串的一组非易失性存储单元,所述串可连接到位线并且包括每个存储单元的字线;以及控制器,该控制器被配置为通过设置选择栅极晶体管来对位线进行电选择,从而将数据同时写入串中的两个存储单元,将对应于串中的第一存储单元的第一字线与对应于串中的第二存储单元的第二字线电连接,并且将编程脉冲同时施加到所连接的字线,以将数据同时写入第一存储单元和第二存储单元。
在另一个示例中,控制器被进一步配置为,在将编程脉冲同时施加到第一字线和第二字线之后,将验证脉冲施加到第一字线和第二字线,响应于验证脉冲的施加而感测流过第一存储单元和第二存储单元中的一者的电流,以同时确定第一存储单元和第二存储单元中的一者未被正确编程,并且响应于确定第一存储单元和第二存储单元中的一者未被正确编程,对第一存储单元和第二存储单元进行单独编程。
在另一个示例性实施方案中,控制器被进一步配置为确定第一存储单元被正确编程,响应于确定第一存储单元被正确编程而从第一存储单元读取数据,并且在从第一存储单元读取数据之后,重写第一存储单元和第二存储单元。
在一个示例中,控制器被进一步配置为从第一存储单元和第二存储单元中的一者读取数据,并且使用该数据在单元到单元压缩操作中对另一个单元进行编程,如本文所述。
在另一个示例中,第一存储单元和第二存储单元是串中的连续存储单元。
在一个示例性实施方案中,一种方法包括为被布置成两个擦除块的一组非易失性存储单元电选择位线,该位线可连接到两个块的每一个中的存储单元,将与两个块中的存储单元对应的两个块的每一个中的单独字线电连接,并且将编程脉冲同时施加到所连接的字线,以将两个块中的存储单元同时编程为公共目标阈值电压。
在一个示例中,该方法还包括在将编程脉冲同时施加到所连接的字线之后,将验证脉冲同时施加到所连接的字线,响应于验证脉冲的施加而感测流过位线的电流以确定存储单元中的一个未被正确编程,并且响应于确定存储单元中的一个未被正确编程,对存储单元进行单独编程。
在一个示例性实施方案中,该方法还包括:确定存储单元中的第一个被正确编程,响应于确定存储单元中的第一个被正确编程而读取存储单元中的第一个,并且在读取存储单元中的第一个之后,重写存储单元中的第一个和存储单元中的第二个。
在另一个示例性实施方案中,该方法还包括从两个块中的第一块内的存储单元的第一存储单元和两个块中的第二块内的存储单元的第二存储单元中的一者读取数据,并且使用该数据在单元压缩操作中对另一个单元进行编程。
在一个示例中,两个块中的第一个与两个块中的第二个物理地分开。
在另一个示例中,一种设备包括:用于为被布置成两个块的一组非易失性存储单元中的存储单元电选择位线的装置,位线任选地连接到两个块的第一个中的第一存储单元串和两个块的第二个中的第二存储单元串,第一串和第二串各自包括一组字线;用于将第一串中包括的第一字线和第二串中包括的第二字线电连接的装置,第一字线和第二字线对应于第一串中包括的第一存储单元和第二串中包括的第二存储单元;以及用于将单个编程脉冲施加到所连接的字线以将第一串中的第一存储单元和第二串中的第二存储单元同时编程为公共目标阈值电压的装置。
附图说明
下面参考附图中示出的具体实施方案包括了更具体的描述。应当理解,这些附图仅描绘了本公开的某些实施方案,因此不应被认为是对其范围的限制,通过使用附图,以附加的特异性和细节描述和解释了本公开,在附图中:
图1A是系统的一个实施方案的框图,该系统包括用于非易失性存储器装置的同时编程部件。
图1B示出了可包括一个或多个存储器管芯或芯片的非易失性存储装置的实施方案。
图2A描绘了图1的存储器阵列的示例性2D配置中的存储器单元的块。
图2B描绘了NAND串中的示例性电荷俘获存储器单元的剖视图,作为图2A中的存储器单元的示例。
图2C描绘了图2B的结构的剖视图。
图2D描绘了示例性存储器单元。
图3是存储器装置的透视图,该存储器装置包括图1的存储器阵列的示例性3D配置中的一组块。
图4描绘了图3的块中的一个块的一部分的示例性剖视图。
图5描绘了图4的堆叠的区域的近距离视图。
图6描绘了3D配置中的子块中的NAND串的示例性视图,与图4一致。
图7描绘了图6的子块SB0-SB3的附加细节。
图8描绘了示例性编程操作的波形。
图9描绘了图5的存储器单元MC的一部分,示出了在弱编程期间电子注入到电荷俘获区中。
图10描绘了根据一个示例性实施方案的一系列块的顶视图。
图11是根据示例性实施方案的编程脉冲和验证脉冲的图表。
图11描绘了图1B的管芯控制器的一个实施方案。
图12描绘了根据一个示例性实施方案的两个块的一个实施方案。
图13描绘了用于对存储器阵列的单元进行同时编程的方法的一个实施方案。
图14描绘了用于对存储器阵列的单元进行同时编程的方法的另一个实施方案。
具体实施方式
本公开的各方面可体现为设备、系统、方法或计算机程序产品。因此,本公开的各方面可采取完全为硬件的实施方案、完全为软件的实施方案(包括固件、常驻软件、微代码等)或结合软件和硬件方面的实施方案的形式,这些方面在本文中可全部统称为“电路”、“模块”、“设备”或“系统”。此外,本公开的各方面可采取在存储计算机可读程序代码和/或计算机可执行程序代码的一个或多个非暂态计算机可读存储介质中体现的计算机程序产品的形式。
本说明书中所述的许多硬件单元已被标记为电路,以便更具体地强调这些硬件单元的实现独立性。例如,电路可以是定制VLSI电路或门阵列,现成的半导体的全部或一部分,诸如逻辑芯片、晶体管或其他分立部件。电路还可在可编程硬件装置诸如现场可编程门阵列、可编程阵列逻辑部件、可编程逻辑装置等中实现。值得注意的是,在引用多个电路的情况下,这些电路在一些情况下可共享硬件元件;因此,两个不同的电路可体现为单个硬件主体,该硬件主体经由软件或不同的硬件元件被配置为执行两个电路的所述功能。
用于执行本公开的各方面的操作的计算机程序代码可以以一种或多种编程语言的任何组合来编写,包括面向对象的编程语言诸如Python、Java、Smalltalk、C++、C#、Objective C等,常规过程式编程语言诸如“C”编程语言,脚本编程语言和/或其他类似编程语言。程序代码可部分地或完全地在一个或多个用户的计算机上执行,并且/或者通过数据网络等在远程计算机或服务器上执行。
如本文所用,部件是有形、物理的非暂态装置。例如,部件可被实现为:具有定制VLSI电路、门阵列或其他集成电路的硬件逻辑电路;现成的半导体,诸如逻辑芯片、晶体管,或其他分立装置;和/或其他机械装置或电气装置。部件还可在可编程硬件装置诸如现场可编程门阵列、可编程阵列逻辑部件、可编程逻辑装置等中实现。部件可包括一个或多个硅集成电路装置(例如,芯片、管芯、管芯平面、封装件)或其他分立电气装置,这些装置通过印刷电路板(PCB)的电线等与一个或多个其他部件电连通。在某些实施方案中,本文所述的模块中的每个模块可另选地体现为或实现为部件。
本说明书通篇所提到的“一个实施方案”、“实施方案”、“一个示例性实施方案”或相似语言是指结合所述实施方案所描述的特定特征、结构或特性被包含在本公开的至少一个实施方案中。因此,本说明书通篇出现的短语“在一个实施方案中”、“在实施方案中”和相似语言可以但不一定全部是指同一个实施方案,而是指“一个或多个但不是所有实施方案”,除非另有明确说明。术语“包括”、“包含”、“具有”及其变体是指“包括但不限于”,除非另有明确说明。枚举的项目列表并不意味着项目中的任何或所有项目是互相排斥的和/或相互包容的,除非另有明确说明。术语“一”、“一个”和“该”也指“一个或多个”,除非另有明确说明。
下面参考根据本公开实施方案的方法、设备、系统和计算机程序产品的示意性流程图和/或示意性框图来描述本公开的各方面。应当理解,示意性流程图和/或示意性框图的每个框,以及示意性流程图和/或示意性框图中的框的组合可由计算机程序指令实现。这些计算机程序指令可被提供给计算机的处理器或其他可编程数据处理设备以生产机器,使得经由该处理器或其他可编程数据处理设备执行的指令创建用于实现在示意性流程图和/或示意性框图的一个或多个框中指定的功能和/或动作的装置。
还应当指出,在一些另选的实施方式中,框中示出的功能可以不按图中所示的顺序发生。例如,事实上,连续示出的两个框可基本上同时执行,或者这些框有时可以采用相反的顺序执行,这取决于所涉及的功能。可以设想在功能、逻辑或效果上等同于所示附图的一个或多个框或其部分的其他步骤和方法。尽管在流程图和/或框图中可以采用各种箭头类型和线条类型,但是应当理解这些箭头类型和线条类型不限制相应实施方案的范围。例如,箭头可以指示所描绘的实施方案的枚举的步骤之间的未指定持续时间的等待或监视时段。
在以下具体实施方式中,参考了构成该具体实施方式的一部分的附图。前述发明内容仅是例示性的,并不旨在以任何方式进行限制。除了以上描述的例示性方面、实施方案和特征之外,通过参考附图和以下具体实施方式,另外的方面、实施方案和特征将变得显而易见。每个图中的元件的描述可以参考前面的图的元件。相似的数字可以指代附图中的相似的元件,包括相似的元件的替代实施方案。
图1A是系统100的一个实施方案的框图,该系统具有用于非易失性存储器装置120的同时编程部件150。同时编程部件150可以是非易失性存储器介质控制器126(如图1A所示)、非易失性存储器元件123、装置驱动程序等的一部分和/或与其通信。同时编程部件150可以在计算装置110的非易失性存储器系统102上操作,所述计算装置可包括处理器111、易失性存储器112和网络接口113。处理器111可包括一个或多个中央处理单元、一个或多个通用处理器、一个或多个专用处理器、一个或多个虚拟处理器(例如,计算装置110可以是在主机内操作的虚拟机)、一个或多个处理器内核等。网络接口113可包括一个或多个网络接口,所述一个或多个网络接口被配置为将计算装置110和/或非易失性存储器介质控制器126通信地耦接到通信网络115,诸如互联网协议(IP)网络、存储区域网络(SAN)、无线网络、有线网络等。
在各种实施方案中,非易失性存储器装置120可相对于计算装置110设置在一个或多个不同位置。在一个实施方案中,非易失性存储器装置120包括一个或多个非易失性存储器元件123,诸如半导体芯片或封装件或设置在一个或多个印刷电路板上的其他集成电路装置、存储外壳、和/或其他机械支撑结构和/或电气支撑结构。例如,非易失性存储器装置120可包括一个或多个直插式存储器模块(DIMM)卡、一个或多个扩展卡和/或子卡、固态硬盘(SSD)或其他硬盘驱动器装置,并且/或者可具有另一个存储器和/或存储形状因数。非易失性存储器装置120可与计算装置110的主板集成和/或安装在该主板上,安装在计算装置110的端口和/或插槽中,安装在不同计算装置110上和/或通信网络115上的专用存储装置上,通过外部总线(例如,外部硬盘)与计算装置110通信等。
在一个实施方案中,非易失性存储器装置120可被设置在处理器111的存储器总线上(例如,在与易失性存储器112相同的存储器总线上,在与易失性存储器112不同存储器总线上,代替易失性存储器112等)。在又一个实施方案中,非易失性存储器装置120可被设置在计算装置110的外围总线上,诸如外围部件高速互连(PCI Express或PCIe)总线、串行高级技术附件(SATA)总线、并行高级技术附件(PATA)总线、小型计算机系统接口(SCSI)总线、FireWire总线、光纤通道连接、通用串行总线(USB)、PCIe高级交换(PCIe-AS)总线等。在另一个实施方案中,非易失性存储器装置120可被设置在通信网络115上,诸如以太网、Infiniband网络、经通信网络115的SCSI RDMA、存储区域网络(SAN)、局域网(LAN)、广域网(WAN)诸如互联网、另一个有线和/或无线网络等。
计算装置110还可包括非暂态计算机可读存储介质114。计算机可读存储介质114可具有可执行指令,这些可执行指令被配置为使计算装置110(例如,处理器111)执行本文所公开的一个或多个方法的步骤。作为另外一种选择或除此之外,同时编程部件150可体现为存储在计算机可读存储介质114上的一个或多个计算机可读指令。
在所描绘的实施方案中,非易失性存储器系统102包括同时编程部件150。如将进一步描述的那样,同时编程部件150可被配置成为布置到相同块或两个不同块中的一组非易失性存储单元电选择位线,将对应于存储单元的单独字线进行电连接,并且将编程脉冲施加到所连接的字线以将存储单元同时编程为公共目标阈值电压。存储单元可任选地位于两个不同的块中,这两个块可以在存储器阵列内彼此物理地分开,以使发生在一个存储单元中的错误也将存在于另一个存储单元中的可能性最小化。如本文所用,“电选择”包括施加电势,从而允许电流源转移到另一个部件。在一个示例中,电选择位线包括设置一个或多个硬件部件以将位线连接到另一个部件。
同时编程部件150可利用相同的数据将单独块中的单独单元同时编程为公共目标阈值电压。在一些实施方案中,将相同数据同时写入单独块提供了增强的性能,因为如果一个块未能存储写入的数据,则可以从另一个块恢复数据,而无需再次从非易失性存储器介质控制器126请求数据。这允许系统100更快速地继续其他操作,因为需要来自非易失性存储器介质控制器126的请求较少。
此外,在一些实施方案中,使用相同数据的两个副本的单元压缩操作可以在单独块中使用相同的数据,而非易失性存储器介质控制器126不必单独写入数据的另一副本。这简化了由参与MLC、TLC、QLC编程等的非易失性存储器介质控制器126执行的操作。
在一个示例性实施方案中,同时编程部件150将相同的数据写入位于物理上分开的区域中的块。单独区域可由距离、所选块之间的块数量等限定。如本领域技术人员应当理解的那样,NAND单元阵列可在特定物理位置或区域处出现故障。将相同数据写入NAND阵列的物理远程区域提供了增强的故障保护,因为如果NAND阵列的特定部分出现故障,则存在于不同物理位置中的数据的第二副本将可能不受影响。如本文所述,在一些实施方案中,该有益效果不耗费额外的操作,因为同时编程部件150同时写入相同数据的两个副本(例如,与将数据写入第一单元相比,不需要额外的时间将相同数据写入第二单元)。
在另一个示例性实施方案中,同时编程部件150将相同的数据写入同一串中的两个单独的单元。将串中的多个单元同时编程为公共目标阈值电压可提供与写入单独块相似的有益效果。除了先前描述的有益效果之外,将串中的两个连续单元同时编程为公共目标阈值电压可以减少电干扰,因为与编程的相同单元相对应的两个字线同时经历了相同的电压偏置。此外,在这种情况下,字线与字线的电容减小。同时编程部件150可将相同数据写入串中不同位置处的单元,以提供先前结合同时写入单独块所述的物理分离。
在另一个示例性实施方案中,在验证第一单元已被正确编程之后,同时编程部件150可丢弃第二单元中的数据。同时编程部件150可通过擦除第二单元、标记第二单元以供重复使用或使用其他数据重写第二单元来实现这一点。除此之外或另选地,可保留两个单元中的数据,直到用于例如单元压缩操作为止,在该单元压缩操作中,数据与其他数据组合并存储在多级单元(MLC)等(例如,TLC、QLC等)中。
在一些实施方案中,在多级单元(MLC)诸如三级单元(TLC)的数据被临时存储在一系列SLC单元中之后,可使用SLC-TLC压缩操作(单元压缩操作的一个示例)。在一些实施方案中,出于数据冗余目的,可使用三对SLC单元存储TLC的数据,其中对于待存储在TLC中的单个位,每对单元存储相同版本的数据。在SLC-TLC压缩中,来自三对SLC单元中的每一对的至少一个SLC单元的数据可被读取并编码为TLC内的位,使得在TLC上编码三个位。在TLC中编码的位可任选地与三对SLC中的位进行比较,以确认TLC已被正确编程。然后,一旦TLC被适当编程,就可擦除SLC。之后,相同的SLC单元可用作TLC编程的缓冲器,具有内置临时数据冗余。
在单元压缩操作之后,可擦除第一单元和第二单元两者。新的编程操作可用于利用新数据对单元进行编程,例如,以用于另一个SLC-TLC压缩操作。从单元擦除数据和用新数据对单元编程(或者如果待存储的新数据涉及将单元保持在已擦除或未编程状态,则作出不对单元编程的确定)的组合被称为“重写”单元的内容。
如本文所用,“块”包括一组字线,其中每个字线连接到一组存储单元。在一个示例性实施方案中,“块”包括存储单元阵列的一部分(例如,非易失性存储器元件),其中存储单元以允许在单个操作中擦除块中的所有存储单元的方式连接。本领域的技术人员将认识到,块是可使用单个存储/存储器擦除命令擦除的存储单元的最小单位,并且在某些实施方案中可被称为“擦除块”。在某些实施方案中,“块”包括一组非易失性存储器元件串。
如本文所用,“NAND串”包括通过沟道串联电连接到位线的一组NAND存储单元。“沟道”包括将串中的存储单元连接到其相应位线和源极线的电连接(例如,图5:沟道665)。NAND存储单元串还包括串中的每个存储单元的字线。如本文所用,“位线”包括导电材料线,该导电材料线可连接到电压源并且可连接到存储单元块中的各个串的末端(例如,经由沟道)。在一个示例中,块包括64个串,并且单独的位线可连接到64个串中的每一个。在另一个示例中,遍历许多块的位线可连接到每个块中的对应串。
如本文所用,“相交”包括两个部件(例如,字线、位线、存储单元等)被物理地布置成使得它们可彼此电影响。与存储单元相交的字线意指该字线电连接到存储单元,使得将编程脉冲施加到字线会对存储单元进行编程。
如本文所用,“字线”包括导电材料线,该导电材料线有利于电子从电压源通过一组串中的存储单元传输到电流漏极。在一个示例中,字线与配置在存储单元块中的每组串中的对应存储单元相交。
如本文所用,“可电连接”包括两个部件(例如,字线、位线、存储单元等)被配置和/或定位成易于连接以允许电流在它们之间通过。电连接能力可涉及使用辅助部件来连接可电连接的部件。在一个示例中,栅极晶体管可被设置为将字线电连接到电压源。因此,字线和电压源可彼此电连接,但除非栅极晶体管连接它们,否则它们不彼此电连接。
如本文所用,“同时编程”、“同时施加编程脉冲”等意指基本上同时将编程脉冲施加到两个单独的存储单元。“基本上同时”意指从同一编程脉冲对这两个单元进行编程,但由于物理位置或电距离,存储单元可能不会恰好同时接收编程脉冲。在一个示例中,由于编程脉冲与源的物理距离,第一存储单元可在第二存储单元之前接收编程脉冲。在另一个示例性实施方案中,这两个存储单元同时接收编程脉冲,然而,第一存储单元在第二存储单元之前被成功编程。此外,将多个存储单元同时编程为公共目标阈值电压意味着基本上同时向每个存储单元施加公共电压。当然,如本领域技术人员应当理解的那样,这并不一定意味着存储单元由于相同脉冲而被成功编程为目标阈值电压。
在一个实施方案中,同时编程部件150可包括一个或多个非易失性存储器装置120的逻辑硬件,诸如非易失性存储器介质控制器126、非易失性存储器元件123、装置控制器、现场可编程门阵列(FPGA)或其他可编程逻辑部件、用于FPGA或其他可编程逻辑部件的固件、用于在微控制器上执行的微代码、专用集成电路(ASIC)等。在另一个实施方案中,同时编程部件150可包括存储在计算机可读存储介质114上以便在处理器111上执行的可执行软件代码,诸如装置驱动程序等。在又一个实施方案中,同时编程部件150可包括可执行软件代码和逻辑硬件两者的组合。
在一个实施方案中,同时编程部件150被配置为经由总线125等从装置驱动程序或其他可执行应用程序接收存储请求。同时编程部件150可被进一步配置为经由总线125将数据传输到装置驱动程序和/或存储客户端116和/或从驱动程序和/或存储客户端传输数据。因此,在一些实施方案中,同时编程部件150可包括一个或多个直接存储器存取(DMA)模块、远程DMA模块、总线控制器、桥接器、缓冲器等和/或与之通信,以有利于传输存储请求和相关数据。在另一个实施方案中,同时编程部件150可以接收存储请求作为来自存储客户端116的API调用,作为IO-CTL命令等。
根据各种实施方案,与一个或多个程序排序部件140通信的非易失性存储器介质控制器126可管理一个或多个非易失性存储器装置120和/或非易失性存储器元件123。一个或多个非易失性存储器装置120可包括记录、存储器和/或存储装置,诸如被布置和/或划分为多个可寻址的介质存储位置的一个或多个固态存储装置和/或一个或多个半导体存储装置。如本文所用,介质存储位置是指存储器的任何物理单元(例如,非易失性存储器装置120上的任何数量的物理存储介质)。存储器单元可包括但不限于:物理存储位置的页面、存储器分区、块、扇区、集合或集(例如逻辑页面、逻辑块)等。
在某些实施方案中,装置驱动程序和/或非易失性存储器介质控制器126可以向存储客户端116呈现逻辑地址空间134。如本文所用,逻辑地址空间134是指存储器资源的逻辑表示。逻辑地址空间134可包括多个(例如,范围)的逻辑地址。如本文所用,逻辑地址是指用于引用存储器资源(例如,数据)的任何标识符,包括但不限于:逻辑块地址(LBA)、柱面/磁头/扇区(CHS)地址、文件名、对象标识符、索引节点、通用唯一标识符(UUID)、全局唯一标识符(GUID)、哈希码、签名、索引条目、范围、程度等。
用于非易失性存储器装置120的装置驱动程序可保持元数据135,诸如逻辑到物理地址映射结构,以将逻辑地址空间134的逻辑地址映射到一个或多个非易失性存储器装置120上的介质存储位置。装置驱动程序可被配置为向一个或多个存储客户端116提供存储服务。存储客户端116可包括在计算装置110上操作的本地存储客户端和/或能够经由通信网络115和/或网络接口113访问的远程存储客户端116。存储客户端116可包括但不限于:操作系统、文件系统、数据库应用程序、服务器应用程序、内核级进程、用户级进程、应用程序等。
装置驱动程序可以通信地耦合到一个或多个非易失性存储器装置120。一个或多个非易失性存储器装置120可包括不同类型的非易失性存储器装置,包括但不限于:固态存储装置、半导体存储装置、SAN存储资源等。一个或多个非易失性存储器装置120可包括一个或多个相应非易失性存储器介质控制器126和非易失性存储器介质122。装置驱动程序可经由传统块I/O接口131提供对一个或多个非易失性存储器装置120的访问。另外,装置驱动程序可通过SCM接口132提供对增强功能的访问。元数据135可用于管理和/或跟踪通过块I/O接口131、SCM接口132、高速缓存接口133或其他相关接口中的任一者执行的数据操作。
高速缓存接口133可暴露能够经由用于非易失性存储器装置120的装置驱动程序访问的特定于高速缓存的特征。此外,在一些实施方案中,呈现给存储客户端116的SCM接口132可访问由一个或多个非易失性存储器装置120和/或一个或多个非易失性存储器介质控制器126实现的数据转换。
装置驱动程序可通过一个或多个接口向存储客户端116呈现逻辑地址空间134。如上所述,逻辑地址空间134可包括多个逻辑地址,每个逻辑地址对应于一个或多个非易失性存储器装置120的相应介质位置。装置驱动程序可保持元数据135,该元数据包括逻辑地址和介质位置之间的任何至任何映射等。
装置驱动程序还可包括非易失性存储器装置接口139和/或与之通信,该非易失性存储器装置接口被配置为通过总线125将数据、命令和/或查询传输到一个或多个非易失性存储器装置120,所述总线可包括但不限于:处理器111的存储器总线、外围部件高速互连(PCI Express或PCIe)总线、串行高级技术附件(ATA)总线、并行ATA总线、小型计算机系统接口(SCSI)、火线、光纤通道、通用串行总线(USB)、PCIe高级交换(PCIe-AS)总线、通信网络115、Infiniband、SCSI RDMA等。非易失性存储器装置接口139可以使用一个或多个输入输出控制(IO-CTL)命令、一个或多个IO-CTL命令扩展、远程直接存储器存取等来与一个或多个非易失性存储器装置120通信。
通信接口113可包括一个或多个网络接口,这些网络接口被配置为将计算装置110和/或非易失性存储器介质控制器126通信地耦接到通信网络115和/或一个或多个网络可访问的远程存储客户端116。存储客户端116可包括在计算装置110上操作的本地存储客户端和/或能够经由通信网络115和/或网络接口113访问的远程存储客户端116。非易失性存储器介质控制器126是一个或多个非易失性存储器装置120的一部分和/或与之通信。虽然图1A示出了单个非易失性存储器装置120,但本公开在这方面不受限制,并且可适于结合任何数量的非易失性存储器装置120。
非易失性存储器装置120可包括非易失性存储器介质122的一个或多个非易失性存储器元件123,其可包括但不限于:ReRAM、忆阻器存储器、可编程的金属化单元存储器、相变存储器(PCM、PCME、PRAM、PCRAM、双向统一存储器、硫属化物RAM或C-RAM)、NAND闪存存储器(例如,2D NAND闪存存储器、3D NAND闪存存储器)、NOR闪存存储器、纳米随机存取存储器(纳米RAM或NRAM)、基于纳米晶体线的存储器、基于硅氧化物的亚10纳米工艺存储器、石墨烯存储器、氧化硅氮氧化硅(SONOS)、可编程金属化单元(PMC)、导电桥接RAM(CBRAM)、磁阻RAM(MRAM)、自旋转移矩(STT)MRAM、自旋轨道矩SOT-MRAM、磁存储介质(例如,硬盘、磁带)、光存储介质等。在某些实施方案中,非易失性存储器介质122的一个或多个非易失性存储器元件123包括存储级存储器(SCM)。本文的示例是指NAND存储器,或者更具体地,SLC NAND存储器;然而,本文提供的系统和方法可应用于其他存储器类型,包括但不限于上面列出的那些。
虽然传统技术(诸如NAND闪存)可以是块和/或页面可寻址的,但在一个实施方案中,存储级存储器是字节可寻址的。在另外的实施方案中,存储级存储器可以比NAND闪存更快和/或具有比NAND闪存更长的寿命(例如,耐久性);可具有比DRAM更低的成本、使用较少的功率,和/或具有更高的存储密度;或者提供与其他技术相比的一个或多个其他好处或改进。例如,存储级存储器可包括ReRAM、忆阻器存储器、可编程金属化单元存储器、相变存储器、纳米RAM、基于纳米晶体线的存储器、基于硅氧化物的亚10纳米工艺存储器、石墨烯存储器、SONOS存储器、MANOS存储器、PMC存储器、CBRAM、MRAM和/或其变体的一个或多个非易失性存储器元件123。
尽管非易失性存储器介质122在本文中被称为“存储器介质”,但在各种实施方案中,非易失性存储器介质122可更一般地包括能够记录数据的一个或多个非易失性记录介质,所述一个或多个非易失性记录介质可被称为非易失性存储器介质、非易失性存储介质等。此外,在各种实施方案中,非易失性存储器装置120可包括非易失性记录装置、非易失性存储器装置、非易失性存储装置等。
非易失性存储器介质122可包括一个或多个非易失性存储器元件123,所述一个或多个非易失性存储器元件可包括但不限于:芯片、封装件、平面、管芯等。非易失性存储器介质控制器126可被配置为管理非易失性存储器介质122上的数据操作,并且可包括一个或多个处理器、可编程处理器(例如,FPGA)、ASIC、微控制器等。在一些实施方案中,非易失性存储器介质控制器126被配置为将数据存储在非易失性存储器介质122上和/或从该非易失性存储器介质122读取数据,以将数据传输到非易失性存储器装置120/从该非易失性存储器装置120传输数据等。
非易失性存储器介质控制器126可以通过总线127通信地耦接到非易失性存储器介质122。总线127可包括用于向非易失性存储器元件123传送数据/从该非易失性存储器元件传送数据的I/O总线。总线127还可包括用于将寻址和其他命令及控制信息传送到非易失性存储器元件123的控制总线。在一些实施方案中,总线127可以并行地将非易失性存储器元件123通信地耦接到非易失性存储器介质控制器126。该并行访问可允许非易失性存储器元件123作为组被管理,从而形成逻辑存储器元件129。逻辑存储器元件可被划分为相应的逻辑存储器单元(例如逻辑页面)和/或逻辑存储器分区(例如逻辑块)。逻辑存储器单元可通过将非易失性存储器元件中的每个非易失性存储器元件的物理存储器单元逻辑地组合来形成。
在某些实施方案中,可使用字线的地址将非易失性存储器介质控制器126组织成非易失性存储器元件123内的字线的块,使得字线被逻辑地组织成单调增加的序列(例如,将字线的地址解码和/或转换成单调增加的序列等)。在又一个实施方案中,非易失性存储器元件123内的块的字线可以字线地址的单调增加的序列物理地布置,其中被连续寻址的字线在物理上也相邻(例如,WL0,WL1,WL2,…WLN)。
非易失性存储器介质控制器126可包括在计算装置110上执行的装置驱动程序并且/或者与之通信。装置驱动程序可经由一个或多个接口131、132和/或133向存储客户端116提供存储服务。在一些实施方案中,装置驱动程序提供块I/O接口131或装置接口,存储客户端116通过该块I/O接口或装置接口执行块级I/O操作。作为另外一种选择或除此之外,装置驱动程序可提供存储级存储器(SCM)接口132,该SCM接口可向存储客户端116提供其他存储服务。在一些实施方案中,SCM接口132可包括对块I/O接口131的扩展(例如,存储客户端116可通过对块I/O接口131的扩展或添加来访问SCM接口132)。作为另外一种选择或除此之外,SCM接口132可作为单独的API、服务和/或库来提供。装置驱动程序可被进一步配置为使用非易失性存储器系统102提供用于缓存数据的高速缓存接口133。
装置驱动程序还可包括非易失性存储器装置接口139,该接口被配置为通过总线125将数据、命令和/或查询传输到非易失性存储器介质控制器126,如上所述。
图1B示出了可包括一个或多个存储器管芯212或芯片的非易失性存储装置210的实施方案。在一些实施方案中,存储器管芯212包括存储器单元的存储器阵列200(二维或三维)、管芯控制器220和读/写电路230A/230B。在一个实施方案中,通过各种外围电路对存储器阵列200的存取在阵列的相对侧上以对称方式实现,使得每侧上的接入线路和电路的密度减少一半。在又一个实施方案中,读/写电路230A/230B包括允许并行地读取存储器单元的页面或将其编程的多个感测块250。
在各种实施方案中,可经由行解码器240A/240B通过字线来对存储器阵列200进行寻址,和经由列解码器242A/242B通过位线来对该存储器阵列200进行寻址。在一些实施方案中,控制器244被包括在同一非易失性存储装置210(例如,可移除存储卡或封装)中,作为一个或多个存储器管芯212。命令和数据经由线路232在主机和控制器244之间传输,并且经由线路234在控制器和一个或多个存储器管芯212之间传输。一种实施方式可包括多个存储器管芯212。
管芯控制器220可与存储器阵列200共享管芯,使得管芯控制器220构成“管芯上”控制器。管芯控制器220可具有本领域已知的任何形式,包括但不限于微处理器、微控制器单元(MCU)、有限状态机(FSM)、中央处理单元(CPU)、图形处理单元(GPU)等;“管芯上控制器”或“控制器”均可指这些中的任一种。
在一个实施方案中,管芯控制器220与读/写电路230A/230B配合以在存储器阵列200上执行存储器操作。在某些实施方案中,管芯控制器220包括同时编程部件150、状态机222和片上地址解码器224。在一个实施方案中,状态机222构成同时编程部件150的一部分。在又一个实施方案中,控制器244构成同时编程部件150的一部分。控制器244可任选地定位在存储器管芯212中的一个或多个上,或者可位于与存储器管芯212分开的管芯上。
在一些实施方案中,存储器阵列200中的每一个可以是SLC(单级单元)NAND阵列,其中非易失性存储器元件123或“非易失性存储单元”中的每一个可经由在单元上施加编程脉冲来编程。存储器阵列200中的每一个还可以用单个脉冲编程,从而提供接近编程NAND的理论限值的速度。如本领域中已知,非易失性存储器元件123中的每一个可具有电绝缘元件,诸如栅极氧化物层或隧道氧化物层,电子可通过该电绝缘元件选择性地移动,该电绝缘元件通过允许单元用电荷编程并且保留它们被编程所用的电荷来提供栅极功能。“绝缘元件”或“绝缘层”可包括被设计成选择性地允许电荷进入和/或离开非易失性存储单元的任何结构。
短语“编程脉冲”是指施加到非易失性存储器元件123的电脉冲,该电脉冲使得非易失性存储器元件123进入编程状态或朝编程状态进展。这可以是峰值电压值、均方根(“RMS”)电压值、脉冲的平均电压、脉冲序列中特定脉冲的电压值等。在另一个示例性实施方案中,编程脉冲包括施加电流,所述电流包括峰值电流、RMS电流值、脉冲的平均电流或特定电流序列等。“编程脉冲”不限于NAND存储器,但可应用于通过施加电势来编程的任何非易失性存储器。因此,通过使用本公开的系统和方法,可以在包括但不限于上文的背景技术部分中列出的非易失性存储器类型中调整编程设置诸如编程脉冲。
短语“验证脉冲”包括施加到非易失性存储器元件123(例如,存储单元)的电脉冲,由此电流流动指示存储单元是否已被充分编程。对于不同的存储单元,验证脉冲可以相同或不同。
类似地,各种“感测设置”可用于感测存储器阵列200的一个或多个非易失性存储器元件123的内容。术语“感测”不仅指具有保持电荷的单元的非易失性存储器结构,而且还指其中使用不同存储机构的非易失性存储器类型。例如,在一些非易失性存储器类型中,使用电压和/或电流来感测单元的电阻水平(而不是存储的电荷)。在其他非易失性存储器类型中,检测流过单元的电流;高于或低于特定阈值的电流电平可指示单元被编程。在要确定单个单元的内容的情况下,这可以称为“读取”单元。然而,“感测”非易失性存储器阵列的内容可包括读取各个单元的内容,或检测单元的单个或共同特性,诸如单元的电压或电阻是高于还是低于预定阈值。
在一些实施方案中,修改编程设置可包括在非易失性存储器装置120的操作寿命期间一次或多次减小跨非易失性存储器元件123施加的编程电压,以延长非易失性存储器装置120的使用寿命并减小由于单元过度编程而导致错误数据读取的可能性。
在一个实施方案中,状态机222提供存储器操作的芯片级控制。片上地址解码器224提供地址接口,其用以在由主机或存储器控制器使用的地址到由解码器240A、240B、242A、242B使用的硬件地址之间转换。在某些实施方案中,状态机222包括同时编程部件150的实施方案。
在一个实施方案中,管芯控制器220、同时编程部件150、片上地址解码器224、状态机222、解码器242A、解码器242B、解码器240A、解码器240B、读/写电路230A、读/写电路230B和/或控制器244中的一个或任何组合可被称为一个或多个管理电路。在一个示例性实施方案中,管芯控制器220包括选择电路282、编程电路284和验证电路286中的任一者。
在另一个示例性实施方案(图1B中未示出)中,选择电路282、编程电路284和验证电路286被实现为控制器244的一部分。在又一个示例性实施方案中,管芯控制器220包括电路282、284、286中的一个或多个,并且控制器244包括电路282、284、286中的一个或多个。因此,不必在管芯控制器220或控制器244上实现各种电路282、285、286。
选择电路282可被配置为对第一擦除块中的第一组存储单元和第二擦除块中的第二组存储单元进行电选择。在一个示例中,非易失性存储器介质控制器126被设置为以存储器单元的给定深度(例如,块中的存储单元的顶行,或另一行)将数据写入第一擦除块。在另一个示例性实施方案中,同时编程部件150设置一组选择栅极晶体管以连接包括存储单元的串的位线,并且将编程脉冲源连接到对应于存储单元的字线。此外,选择电路282可以类似地将第二擦除块中的字线连接到电压源,使得在施加电压源时,电压同时施加到第一擦除块中的第一字线和第二擦除块中的第二字线两者。在具体示例中,选择电路282设置一个或多个选择栅极晶体管以将字线连接到源极选择栅极和漏极选择栅极。
在某些实施方案中,选择电路282选择对应于第一擦除块中的同一行与第二擦除块中的同一行的字线。然而,情况未必如此,因为选择电路282可以选择块中的任何字线。
在另一个示例性实施方案中,编程电路284被配置为以升高的电压将编程脉冲施加到第一字线的存储器单元和第二字线的存储器单元,以在单个脉冲中将相同的数据同时写入第一擦除块中的存储单元和第二擦除块中的存储单元。在一些示例性实施方案中,第一字线和第二字线是在不同物理位置处的单独的字线。在其他示例性实施方案中,第一字线和第二字线是相同的物理字线。在一个示例中,第一擦除块和第二擦除块可包括相邻擦除块并共享相同的物理字线,而同时被编程的存储器单元具有不同的存储器沟道。
在一个示例性实施方案中,验证电路286被配置为将验证脉冲施加到第一字线和第二字线。验证电路286准备连接到位线的感测块250以用于验证操作。然后,验证电路286感测从感测放大器流经接收编程脉冲的存储单元的电流量。在一个实施方案中,如果电流响应于验证脉冲的施加而流过两个单元中的一个,则单元中的一个的阈值电压尚未达到目标电平。该单元未被充分编程。如果一个或多个单元尚未达到目标电平,则验证电路286可发起如本文所述的另一个编程过程。在一个示例性实施方案中,感测电流量包括确定是否有任何电流流动。
在另一个示例性实施方案中,感测电流包括测量电流并确定所测量的电流是否高于阈值电流量(例如,0安培)。在一个示例中,感测电流包括感测连接到NAND串的位线处的电流,该NAND串包括被编程的存储单元。在该示例性实施方案中,虽然电流可以流过位线,但是因为位线可以连接到多个NAND串,所以可能不知道电流正流过哪个NAND串。
在另一个示例中,感测电流包括感测附接到NAND串的电流感测部件处的电流。在另一个示例性实施方案中,感测电流包括感测相应存储单元处的电流。当然,本领域的技术人员应当理解,可以不同的方式执行多种不同的架构和感测电流。
在一个示例性实施方案中,编程电路284响应于施加验证脉冲而感测电流,响应于感测电流而对第一存储单元进行编程,并单独地对第二存储单元进行编程。
如本领域技术人员应当理解的那样,单独的编程过程可包括以连续增加的电压将编程循环应用于第一存储单元。在另一个示例性实施方案中,单独的编程过程包括在将编程循环应用于第一存储单元并且验证第一单元被正确编程之后将编程循环应用于第二存储单元。“增大的”编程脉冲表明先前的编程脉冲不足以对特定存储单元进行正确编程,并且编程脉冲“增大”(例如,在较高电压下)以重试对存储单元进行编程。因此,“正确编程”意指编程脉冲的施加已导致特定存储单元的阈值电压电平高于阈值或在阈值范围内。此类一系列编程脉冲的一个具体示例在图8中示出,并且将在下文中描述。
在另一个示例性实施方案中,同时编程部件150被配置为确定第一存储单元和/或第二存储单元是否被正确编程,并且响应于确定第一存储单元和/或第二存储单元被正确编程,发起第一存储单元和/或第二存储单元的重写。在一些示例中,同时编程部件150标记第二存储单元以供重复使用,发起第二存储单元的擦除,重新使用第二存储单元等。
在一个示例性实施方案中,同时编程部件150被配置为从第一存储单元和第二存储单元中的一者读取数据,并且使用该数据在SLC-TLC压缩操作中对多级单元进行编程。如先前所述,具有相同数据的两个副本允许同时编程部件150执行多级单元SLC-TLC压缩操作,而不必制作存储在单元中的数据的副本。因此,存储在第一存储单元和第二存储单元中的数据可供临时使用。具有数据的两个副本可有助于防止在存储器阵列200中初始存储数据与在SLC-TLC压缩操作中使用数据之间的时间期间数据丢失。
在另一个示例性实施方案中,同时编程部件150使用沿单个串的两个存储单元。在该示例性实施方案中,串包括一组存储单元。该串可以连接到位线,并且与沿着该串的两个存储单元中的每一个的单独字线相交。类似地,如先前所述,同时编程部件150可以选择对应于沿着串的两个单独存储单元的两个单独字线,以同时编程为公共目标阈值电压。
在一个实施方案中,所选字线可以任选地彼此分开,使得它们位于沿着串的不同位置处。例如,所选字线可以位于串的相对两端。如先前所述,这种位移可有助于通过降低存储单元将受到共同破坏影响的可能性来降低数据丢失的风险。
在另一个示例性实施方案中,同时编程部件150连接多于两个不同擦除块中的单独字线,由此将编程脉冲施加到所连接的字线会将编程脉冲施加到不同擦除块的每一个中的存储单元。
在该示例性实施方案中,选择电路282通过设置选择栅极晶体管或通过使用一个或多个其他部件来电选择位线,如本领域技术人员应当理解的那样。然后,选择电路282将对应于串中的第一存储单元的第一字线与对应于串中的第二存储单元的第二字线电连接。然后编程电路284将编程脉冲施加到所连接的字线,以将数据同时写入串中的第一存储单元和第二存储单元。
在另一个示例性实施方案中,在编程电路284同时将编程脉冲施加到第一字线和第二字线之后,验证电路286将验证脉冲施加到第一字线和第二字线,以确定第一存储单元和/或第二存储单元是否被正确编程。响应于流过串的电流,验证电路286确定第一存储单元和第二存储单元中的一者或多者未完全编程(例如,电压电平不足)。响应于该确定,验证电路286则可以如本文所述的任何方式开始每个存储单元的后续编程过程。
在一些实施方案中,验证电路286不确定是否有任何特定存储单元已被正确编程,而是通过感测两个存储单元共享的位线中的电流来确定存储单元中的一个未被正确编程。响应于该确定,编程电路284再次对第一存储单元和第二存储单元进行编程。由于两个存储单元都被编程,因此可能不需要确定哪些存储单元(一个或多个)未被正确编程。
在一个示例性实施方案中,串中的第一存储单元和串中的第二存储单元是串中的连续存储单元。虽然存储重复数据的存储单元之间的物理位移具有益处,但是将串上的连续字线同时编程为公共目标阈值电压也具有益处。在一些实施方案中,存储相同数据的两个字线可能倾向于具有较小的彼此电磁干扰的可能性。
图2A描绘了图1B的存储器阵列200的示例性2D配置中的存储器单元的块。存储器阵列200可包括许多块。每个示例性块202、204包括多个NAND串和相应的位线,例如在块之间共享的BL0、BL1...。每个NAND串在一端处连接到漏极选择栅极(SGD),并且漏极选择栅极的控制栅极经由公共SGD线连接。NAND串在其另一端处连接到源极选择栅极SGS,该源极选择栅极继而连接到公共源极线206。十六个字线,例如WL0至WL15,在源极选择栅极和漏极选择栅极之间延伸。
在一些情况下,不包含用户数据的虚设字线也可以用于与选择栅极晶体管(SGS/SGD)相邻的存储器阵列中。这种虚设字线可以屏蔽边缘数据字线免受某些边缘效应的影响。在一些示例中,虚设字线与SGD和SGS线相邻定位。因此,在图2A的示例性实施方案中,虚设字线WLD0与块202、204中的每一个的SGS线相邻定位,并且虚设字线WLD1与块202、204中的每一个的SGD线相邻定位。在其他示例中,多个(例如,两个或三个)虚设字线定位在字线WL0至WL15与SGD和SGS线中的每一个之间。在一些实施方案中,虚设字线不与它们所属的框202、204的其余部分一起擦除。因此,存储在虚设字线上的任何数据都将通过通常用于擦除用户数据的擦除操作持续,并且可以仅通过尚未被编程的虚设字线的编程位来修改。
如图2A所体现,位线BL0、BL1...限定每个块202、204的字线的列。除了存储用户数据的位线BL0、BL1...之外,每个框202、204具有多个备用列SC0、SC1...,这可用于各种目的,诸如替换不可用或变得不可用的位线BL0、BL1...。因此,在一些情况下,备用列不存储用户数据。
存储器阵列200的字线中的每一个可具有字线驱动器208,该字线驱动器解码和/或以其他方式处理来自该字线的数据。因此,在图2A中,字线WL0至WL15可具有字线驱动器208,如图所示。字线驱动器208可以包括在图1B所示的行解码器240A/240B中。
非易失性存储器元件123可包括多种技术中的任一种,包括但不限于上文的背景技术中引用的所有非易失性存储器类型。可以在存储器阵列中提供的一种类型的非易失性存储器是电荷俘获存储器单元。也可以使用其他类型的非易失性存储器。例如,电荷俘获存储器单元可以使用非导电介电材料代替导电浮栅,从而以非易失性方式存储电荷。在一个示例中,将由氧化硅、氮化硅和氧化硅(“ONO”)形成的三层电介质夹在导电控制栅极与半导体之间。该单元通过将电子从单元沟道注入氮化物中来编程,其中电子被俘获并存储在有限区域中。然后,该存储的电荷以可检测的方式改变单元的沟道的一部分的阈值电压。通过向氮化物中注入热空孔来擦除单元。可以分裂栅配置提供类似的单元,其中掺杂多晶硅栅极在存储器单元沟道的一部分上方延伸以形成单独的选择晶体管。
在另一种方式中,使用NROM单元。例如,两个位存储在每个NROM单元中,其中ONO介电层跨源极扩散区和漏极扩散区之间的沟道延伸。一个数据位的电荷定位在邻近漏极的介电层中,并且另一个数据位的电荷定位在邻近源极的介电层中。通过单独读取电介质内空间上分离的电荷存储区的二进制状态来获得多状态数据存储。其他类型的非易失性存储器也是已知的。
图2B描绘了NAND串中的示例性电荷俘获存储器单元的剖视图,作为图2A中的存储器单元的示例。该视图处于包括平面控制栅极和电荷俘获区的存储器单元的字线方向,作为图1B的存储器阵列200中的存储器单元的2D示例。电荷俘获存储器可用于NOR和NAND闪存存储器装置中。与使用导体诸如掺杂多晶硅来存储电子的浮栅MOSFET技术相比,该技术使用绝缘体诸如SiN膜来存储电子。例如,字线(WL)424跨NAND串延伸,NAND串包括相应的沟道区域406、416和426。字线的部分提供控制栅极402、412和422。IPD层428、电荷俘获层404、414和421、多晶硅层405、415和425以及隧道层409、407和408在字线下方。每个电荷俘获层在相应的NAND串中连续地延伸。
存储器单元400包括控制栅极402、电荷俘获层404、多晶硅层405以及沟道区域406的一部分。存储器单元410包括控制栅极412、电荷俘获层414、多晶硅层415以及沟道区域416的一部分。存储器单元420包括控制栅极422、电荷俘获层421、多晶硅层425以及沟道区域426的一部分。
平面控制栅极的一个优点是电荷俘获层可以被制成比浮栅薄。另外,存储器单元可以更靠近地放置在一起。
图2C示出了沿线429截取的图2B的结构的剖视图。该视图示出了具有平面控制栅极和电荷俘获层的NAND串430。NAND串430包括SGS晶体管431、示例性存储器单元400、433...、434和435,以及SGD晶体管436。
NAND串可以形成在基板上,该基板包括p型基板区域455、n型阱456和p型阱457。在p型阱457中形成N型源极/漏极扩散区域sd1、sd2、sd3、sd4、sd5、sd6和sd7。可将沟道电压Vch直接施加到基板的沟道区域。存储器单元400包括在电荷俘获层404上方的控制栅极402和IPD层428、多晶硅层405、隧道层409和沟道区域406。
例如,控制栅极层可以是多晶硅,并且隧道层可以是氧化硅。IPD层可以是高k电介质诸如AlOx或HfOx的堆叠,这有助于增加控制栅极层与电荷俘获或电荷存储层之间的耦合比。例如,电荷俘获层可以是氮化硅和氧化硅的混合物。
SGD和SGS晶体管具有与存储器单元相同的配置,但具有更长的沟道长度以确保电流在被抑制的NAND串中截止。
在该示例中,层404、405和409在NAND串中连续延伸。在另一种方法中,层404、405和409的位于控制栅极402、412和422之间的部分可被移除,从而暴露沟道区域406的顶表面。
图2D描绘了示例性存储器单元500。存储器单元包括接收字线电压Vwll0、电压Vd的漏极、电压Vs的源极和电压Vch的沟道的控制栅极CG。
图3是存储器装置600的透视图,该存储器装置包括图1的存储器阵列200的示例性3D配置中的一组块。在基板上的是存储器单元(存储元件)的示例性块BLK0、BLK1、BLK2和BLK3,以及具有供块使用的电路的外围区域604。例如,电路可包括可连接到块的控制栅极层的电压驱动器605。在一种方法中,块中处于共同高度的控制栅极层被共同驱动。基板601还可以承载块下方的电路,连同一个或多个下部金属层,所述一个或多个下部金属层在导电路径中被图案化以承载电路的信号。这些块形成在存储器装置的中间区域602中。在存储器装置的上部区域603中,一个或多个上部金属层在导电路径中被图案化以承载电路的信号。每个块包括存储器单元的堆叠区域,其中堆叠的交替层表示字线。在一种可能的方法中,每个块具有相对的分层侧,垂直触点从该分层侧向上延伸至上部金属层,以形成与导电路径的连接。虽然描绘了四个块作为示例,但是可以使用在x方向和/或y方向上延伸的两个或更多个块。
在一种可能的方法中,在x方向上的平面的长度表示到字线的信号路径在一个或多个上部金属层中延伸的方向(字线或SGD线方向),以及在y方向上的平面的宽度表示到位线的信号路径在一个或多个上部金属层中延伸的方向(位线方向)。z方向表示存储器装置的高度。
图4描绘了图3的块中的一个块的一部分的示例性剖视图。该块包括交替的导电层和介电层的堆叠610。在该示例中,除了数据字线层(或字线)WLL0至WLL10之外,导电层还包括两个SGD层、两个SGS层和四个虚设字线层(或字线)WLD1、WLD2、WLD3和WLD4。介电层被标记为DL0至DL19。此外,描绘了包括NAND串NS1和NS2的堆叠的区域。每个NAND串包含存储器孔618或619,该孔填充有形成与字线相邻的存储器单元的材料。在图5中更详细地示出了堆叠的区域622。
该堆叠包括基板611、基板上的绝缘膜612和源极线SL的一部分。NS1在堆叠的底部614处具有源极端613,并且在堆叠的顶部616处具有漏极端615。金属填充的狭缝617和620可以跨堆叠周期性地提供,作为延伸穿过堆叠的互连,诸如以将源极线连接到堆叠上方的线。狭缝可以在形成字线期间使用,并且随后用金属填充。还描绘了位线BL0的一部分。导电通孔621将漏极端615连接到BL0。
图5描绘了图4的堆叠的区域622的近距离视图。存储器单元在字线层和存储器孔的交叉处形成在堆叠的不同级。在该示例中,SGD晶体管680和681在虚设存储器单元682和683以及数据存储器单元MC上方提供。可以沿着存储器孔630的侧壁(SW)和/或在每个字线层内(例如,使用原子层沉积)沉积多个层。例如,每个列(例如,由存储器孔内的材料形成的柱)可包括电荷俘获层663或膜,诸如SiN或其他氮化物、隧道层664、沟道665(例如,包括多晶硅)和介电核心666。字线层可包括阻挡氧化物/块高k材料660、金属阻挡层661和导电金属662(诸如钨)作为控制栅极。例如,提供控制栅极690、691、692、693和694。在该示例中,除了金属之外的所有层都在存储器孔中提供。在其他方法中,层中的一些层可以在控制栅极层中。在不同的存储器孔中类似地形成附加柱。柱可以形成NAND串的柱状有源区域(AA)。
当对存储器单元进行编程时,电子存储在与存储器单元相关联的电荷俘获层的一部分中。这些电子从沟道被吸引到电荷俘获层中,并且穿过隧道层。存储器单元的Vth与存储的电荷量成比例地增加(例如,随着电荷量的增加而增加)。在擦除操作期间,电子返回到沟道。
存储器孔中的每个存储器孔可填充有多个环形层,这些环形层包括阻挡氧化物层、电荷俘获层、隧道层和沟道层。存储器孔中的每个存储器孔的核心区填充有主体材料,并且多个环形层位于存储器孔中的每个存储器孔中的核心区和字线之间。
NAND串可被认为具有浮体沟道,因为沟道的长度没有形成在基板上。此外,NAND串由彼此上下堆叠的多个字线层提供,并且通过介电层彼此分开。
图6描绘了3D配置中的子块中的NAND串的示例性视图,与图4一致。每个子块包括多个NAND串,其中描绘了一个示例NAND串。例如,SB0、SB1、SB2和SB3分别包括示例NAND串700n、710n、720n和730n。NAND串具有与图4一致的数据字线、虚设字线和选择栅极线。在块BLK中,每个子块包括一组NAND串,该组NAND串在x方向上延伸并且具有公共SGD线。NAND串700n、710n、720n和730n分别位于子块SB0、SB1、SB2和SB3中。块的编程可以按一次一个子块地发生。在每个子块内,可以遵循字线编程顺序,例如从WL0源极侧字线开始,并且以一次一个字线前进至WLL10,即漏极侧字线。如先前所述,子块可包括多个串,而在其他实施方案中,子块包括单个串。
NAND串700n、710n、720n和730n分别具有沟道区域700a、710a、720a和730a。
另外,NAND串700n包括SGS晶体管700和701、虚设存储器单元702和703、数据存储器单元704、705、706、707、708、709、710、711、712、713和714、虚设存储器单元715和716,以及SGD晶体管717和718。
NAND串710n包括SGS晶体管720和721、虚设存储器单元722和723、数据存储器单元724、725、726、727、728、729、730、731、732、733和734、虚设存储器单元735和736,以及SGD晶体管737和738。
NAND串720n包括SGS晶体管740和741、虚设存储器单元742和743、数据存储器单元744、745、746、747、748、749、750、751、752、753和754、虚设存储器单元755和756,以及SGD晶体管757和758。
NAND串730n包括SGS晶体管760和761、虚设存储器单元762和763、数据存储器单元764、765、766、767、768、769、770、771、772、773和774、虚设存储器单元775和776,以及SGD晶体管777和778。
图7描绘了图6的子块SB0-SB3的附加细节。描绘了示例存储器单元,该存储器单元在x方向上沿着每个子块中的字线延伸。为简单起见,每个存储器单元被描绘为立方体。SB0包括NAND串700n、701n、702n和703n。SB1包括NAND串710n、711n、712n和713n。SB2包括NAND串720n、721n、722n和723n。SB3包括NAND串730n、731n、732n和733n。位线连接到NAND串的组。例如,位线BL0连接到NAND串700n、710n、720n和730n,位线BL1连接到NAND串701n、711n、721n和731n,位线BL2连接到NAND串702n、712n、722n和732n,并且位线BL3连接到NAND串703n、713n、723n和733n。传感电路可以连接到每个位线。例如,感测电路780、781、782和783连接到位线BL0、BL1、BL2和BL3。
在编程操作期间,可以通过使用一个或多个编程循环来实现最终的Vth分布。多脉冲编程的存储装置可通过使用多个编程循环进行编程。相反,单脉冲编程的存储装置可经由单个编程循环或不具有验证步骤的单个编程脉冲进行编程。对于多脉冲编程,每个后续循环可使用增大的编程脉冲。在某些实施方案中,在编程循环期间,对选择的字线执行编程-验证迭代。编程-验证迭代包括编程步骤/阶段,其中将编程电压施加到字线,接着是执行一个或多个验证测试的验证步骤/阶段。每个编程状态可包括验证脉冲,该验证脉冲用于对状态的验证测试。
图8描绘了示例性常规编程操作的波形。具体地讲,图8描绘了多脉冲编程操作,其中施加阶跃编程脉冲以对一个或多个存储单元进行编程。水平轴线描绘了编程循环(PL)数量,并且垂直轴线描绘了存储器单元控制栅极,又称字线电压。一般来讲,编程操作可涉及将脉冲序列施加到选择的字线,其中脉冲序列包括多个编程循环或编程-验证迭代。编程-验证迭代的编程部分包括编程电压,并且编程-验证迭代的验证部分包括一个或多个验证脉冲。
在一种方法中,每个编程循环包括两个步骤。另外,在该示例中使用递增步长脉冲编程(ISPP),其中编程电压在每个连续编程循环中使用固定或变化的步长逐步增大。
波形800包括一系列编程电压852、854和856,这些编程电压被施加到被选择用于编程的字线以及相关联的一组非易失性存储器单元。作为示例,基于被验证的目标数据状态,可在每个编程电压之后提供一个或多个验证脉冲。可将0V施加到编程脉冲与验证脉冲之间的选择的字线。例如,同时编程部件150可施加第一编程脉冲852,施加验证脉冲860,施加第二编程脉冲854,再次施加验证脉冲860,然后施加第三编程脉冲856。在另一个示例性实施方案中,触发条件包括被编程为目标电压阈值的存储单元。在该示例性实施方案中,响应于确定第一存储单元和第二存储单元均已达到目标阈值电压,同时编程部件150可例如在第一编程脉冲852之后或在第二编程脉冲854之后中止脉冲编程序列。单脉冲编程阶段的附加示例在美国专利8,134,871中示出,该专利以引用方式并入本文。在其他示例性实施方案中,使用“单脉冲”对存储单元进行编程包括以升高的电压施加单个编程脉冲以将单元编程为目标阈值电压,而不是执行如图8所示的连续编程循环。在一个示例中,编程电路284以Vpgm3施加单个编程脉冲,而不施加Vpgm1或Vpgm2。在另一个示例中,编程电路284向用于存储单元的字线施加20伏,并且向用于存储单元的位线施加较低阈值电压差。在该示例中,字线与位线之间的电压差被施加到存储单元。在某些实施方案中,“升高的电压”包括高于常规编程操作中的初始常规编程循环的电压电平。在一个示例中,“升高的电压”为18伏。在另一个示例性实施方案中,“升高的电压”介于16和20伏之间。
在其他示例性实施方案中,同时编程部件150首先应用单脉冲编程序列,并且随后响应于第一存储单元和第二存储单元中的一者未被正确编程而应用多相编程序列。具体地讲,在一个这样的实施方案中,编程电路284最初应用单脉冲编程以将第一存储单元和第二存储单元同时编程为公共目标阈值电压,然后验证电路286同时验证第一存储单元和第二存储单元的编程级。如果验证电路286确定第一存储单元和第二存储单元中的一者未被正确编程,则在一个实施方案中,编程电路284可以应用多脉冲编程来对第一存储单元和第二存储单元进行单独编程,如本领域技术人员应当理解的那样。该编程步骤可以在不同的时间对第一存储单元和第二存储单元进行(例如,通过对第一存储单元进行编程,然后对第二存储单元进行编程)。然后,验证电路286验证第一存储单元和第二存储单元的正确编程。这可以针对第一和第二存储单元同时进行,或者在不同的时间进行(例如,通过验证第一存储单元的正确编程,然后验证第二存储单元的正确编程)。
在另一个示例性实施方案中,第一存储单元和第二存储单元在一个编程操作中的一系列常规编程-验证迭代中被独立地编程。在编程遍完成之后,同时编程部件150独立地验证存储单元中的每一个是否被正确编程。
本领域的技术人员将认识到,可使用多种替代单元编程方法对多个存储单元进行单独编程。可应用单脉冲编程、多脉冲编程和/或它们的组合。单脉冲编程的附加示例在美国专利9,343,141中示出,该专利以引用方式并入本文。
图9描绘了图5的存储器单元MC的一部分,示出了在弱编程期间电子注入到电荷俘获区中。存储器单元包括控制栅极694、金属阻挡层661a、阻挡氧化物660a、电荷俘获层663、隧道层664、沟道665和介电核心666。由于字线电压升高,产生电场(E),该电场将电子(参见示例性电子650)吸引到电荷俘获层中,从而增大Vth。这种弱编程可能是由Fowler-Nordheim隧道效应引起的,其中电绝缘体可以导电。这是一种电子隧穿俘获器。
图10是包括一组位线1050和S/A数据锁存器1010的存储器单元1000的阵列的顶视图。在该示例性实施方案中,位线1050根据在S/A数据锁存器1010处接收的数据进行设置,并且数据将在对应于所选字线的某些存储单元处写入,如本文所述。
在一个示例性实施方案中,根据待写入对应于所选位线的每个存储单元串中以及第一擦除块1020中的存储单元的数据来设置位线1050。同时编程部件150为位于第二擦除块1030中的存储单元选择另一个字线(图10中未示出)。如先前所述,在该示例性实施方案中,同时编程部件150将用于第一擦除块1020的字线和用于第二擦除块1030的字线电连接,由此响应于在字线之一上施加编程脉冲,块1020、1030两者中的存储单元可以被同时编程为公共目标阈值电压。因此,每个块1020、1030中的存储单元根据为位线1050设置的位图案进行同时编程。
在某些实施方案中,同时编程部件150将第一擦除块1020和第二擦除块1030选择为彼此隔开至少一个块。换句话讲,在第一擦除块1020与第二擦除块1030之间可存在至少一个块。在其他实施方案中,同时编程部件150选择彼此相距至少最小物理距离的两个块。例如,最小距离为50纳米,但是当然,本公开在这方面不受限制。
如先前所述,通过将第一擦除块1020与第二擦除块1030物理地分开,存储单元阵列的物理故障不太可能影响第一擦除块1020和第二擦除块1030两者。在一个示例性实施方案中,同时编程部件150将存储单元阵列分成单独的物理分区或部分。在一个示例中,同时编程部件150通过竖直地将阵列分成两半并且水平地将阵列分成两半来将阵列分成四个部分。当然,可使用其他分区或物理划分技术,并且本公开在这方面不受限制。因此,如本文所述,“物理部分”包括物理上不同于阵列中其他存储单元的存储单元阵列的子部分。在某些示例中,使用逻辑边界来确定物理部分。因此,在各种物理部分之间可以不存在物理差异。
图11是根据示例性实施方案的编程脉冲和验证脉冲的图表。在该示例性实施方案中,为了执行同时编程操作,同时编程部件150将未选择的位线(数据“1”)的电压设置为高电压(例如,2.5伏),并且将选择的位线(数据“0”)的电压设置为低电压(例如,0伏),将每个块1020、1030中的漏极选择栅极(SGD)的电压设置为VSGD(例如,2.5伏),将第一擦除块1020和第二擦除块1030中的选择的字线的电压设置为编程脉冲(VPGM,例如,18伏),将每个块1020、1030中的未选择的字线的电压设置为通过电压(VPASS,例如,10伏),将源极选择栅极的电压设置为0伏,并且将源极线(CELSRC)电压设置为PROGGRC(例如,2伏)。
在另一个示例性实施方案中,为了执行同时验证操作,同时编程部件150将位线设置为位线钳位电压(VBLC),将SGD设置为选择栅极电压(VSG),将每个块中的每个选择的字线设置为验证脉冲(Vverify),将每个未选择的字线设置为读取电压(Vread),将SGS设置为选择栅极电压VSG,并且将源极线(CELSRC)设置为VCELSRC(例如,1伏)。
图12示出了根据一个示例性实施方案的两个块的部分。位线1210根据将写入每个块中的存储单元的数据进行设置。在该示例性实施方案中,块包括第一擦除块1220和第二擦除块1230。虽然在图12中描绘了三个位线1210,但是存储单元阵列当然可以包括更多的位线。另外,虽然描绘了两个块,但是可任选地例如在第三块(未示出)、第四块(未示出)等上制作一个或多个附加副本。
在一个示例性实施方案中,同时编程部件150电选择位线以对连接到位线1210的串中的单元进行编程。在该具体示例中,同时编程部件150选择位线1210c。同时编程部件150还将对应于第一存储单元1221的第一字线1250与对应于第二存储单元1231的第二字线1240连接。例如,同时编程部件150可以对选择栅极晶体管进行选择,以将第一字线1250和第二字线1240两者电连接到公共连接。具体地讲,第一擦除块1220包括在第一存储单元1221处与第一字线1250相交的第一串1260,并且第二擦除块1230包括在第二存储单元1231处与第二字线1240相交的第二串1261。同时编程部件150将编程脉冲施加到所连接的字线1240、1250,由此将编程脉冲施加到第一存储单元1221和第二存储单元1231。
在另一个示例性实施方案中,同时编程部件150在将编程脉冲同时施加到第一字线和第二字线之后,将验证脉冲施加到第一字线和第二字线。具体地讲,同时编程部件150施加参考图11所述的验证操作中所述的电压。在该示例性实施方案中,同时编程部件150响应于验证脉冲的施加而感测流过第一存储单元1221和第二存储单元1231中的一者的电流(例如,通过感测NAND串的存储单元或末端处的电流),以同时确定第一存储单元1221和第二存储单元1231中的一者未被正确编程。在另一个示例性实施方案中,响应于感测到通过第一存储单元1221和第二存储单元1231中的一者的电流,同时编程部件150对第一存储单元和第二存储单元进行单独编程,如先前所述。如先前所述,可以与第一存储单元1221和第二存储单元1231的初始编程相同的方式执行单独编程,或者可以不同方式进行单独编程,例如,通过单独地和/或以不同的编程脉冲结构(诸如常规编程或经由多脉冲编程等)对第一存储单元1221和第二存储单元1231进行编程。
图13描绘了用于对存储器阵列的单元进行同时编程的方法1309的一个实施方案。每当要对非易失性存储器元件123中的一个或多个进行编程时,可执行方法1309。方法1309可以由管芯控制器220执行,例如,通过使用图1B中所示的各种电路。在替代方案中,方法1309可以用不同的硬件来执行,诸如图1B的控制器244和/或图1A的非易失性存储器介质控制器126。
如图所示,方法1309可以从步骤1312开始1310,在该步骤中选择对应于待编程的存储单元(例如,存储器阵列200的非易失性存储器元件123)的位线。在一个示例性实施方案中,同时编程部件150接收命令以对存储器阵列200的非易失性存储器元件123中的一个或多个进行编程。该命令可例如在管芯控制器220中接收。这样的命令可以在管芯控制器220的编程电路284中接收。
在步骤1314中,为两个不同块中的存储单元选择字线,或者在另选的实施方案中,为同一块内的公共串中的存储单元选择字线。在一个示例性实施方案中,单独块中的字线是电连接的,如先前所述。
在步骤1316中,将编程脉冲施加到所连接的字线以对两个不同块中的存储单元进行同时编程。这可以由编程电路284完成,该编程电路可以跨两个选择的字线同时施加编程脉冲,从而对第一存储单元1221和第二存储单元1231进行编程。
在步骤1320中,将验证脉冲同时施加到所连接的字线。这可以例如通过验证电路286完成。
在步骤1322中,感测流过第一存储单元和第二存储单元中的一者的电流,以确定第一存储单元1221和第二存储单元1231是否被正确编程。如先前所述,如果存储器阵列200是具有常规架构的NAND,则响应于验证脉冲的施加而流过位线的电流可以指示第一存储单元和/或第二存储单元未被正确编程。
在一个示例性实施方案中,“感测”电流包括充电电容器,该充电电容器则通过施加到字线的电压脉冲连接到位线。作为响应,如果存储单元不具有等于或低于字线上的电压电平的阈值电压,则电流将从位线流到电流漏极。在该示例性实施方案中,感测电流是用于是否有任何电流响应于将电容器连接到位线而流动的简单确定方式。
响应于第一存储单元和第二存储单元二者被正确编程,方法1309在步骤1318处继续。在步骤1318中,读取在步骤1316中写入第一存储单元1221和第二存储单元1231中的一者的数据,并将其用于在SLC-TLC压缩操作中对多级单元进行编程。SLC-TLC压缩操作可根据本领域中已知的任何方法执行。在一些实施方案中,从第一存储单元1221和/或第二存储单元1231检索数据,然后与其他数据(诸如存储在第三存储单元和第四存储单元中的重复位)组合以提供待存储在多级单元中的值(例如,0、1或2)。然后将该值写入多级单元。
该方法在步骤1324处继续,并且同时编程部件150重写第二存储单元。如本文所用,“重写”包括同时编程部件150在后续编程操作中将另一数据值存储在存储单元中。在其他示例中,在步骤1324处,标记第二存储单元以供重复使用、擦除或以其他方式准备用于存储其他数据。然后,方法1309结束1350。
响应于第一存储单元和第二存储单元中的一者未被正确编程,方法1309在步骤1326处继续,并且编程电路对第一存储单元和第二存储单元进行单独编程。如先前所述,可以用步骤1316中使用的相同单脉冲方法对第一存储单元1221和第二存储单元1231执行单独编程。另选地,第一存储单元1221和第二存储单元1231可以单独地和/或通过使用不同的方法诸如多脉冲编程进行编程。
在步骤1326处完成单独编程过程之后,该方法在步骤1320处继续,并且再次将验证脉冲施加到存储单元。验证脉冲可任选地如步骤1320的先前迭代中那样施加,即,通过将验证脉冲同时施加到对应于第一存储单元1221和第二存储单元1231的字线。在替代方案中,代替步骤1320,可以应用经修改的验证操作,其中单独评估第一存储单元1221和第二存储单元1231的正确编程,例如,通过将验证脉冲仅施加到第一存储单元1221的字线,通过位线1210c读取电流,然后将验证脉冲仅施加到第二存储单元1231的字线,再次通过位线1210c读取电流。
图14描绘了用于对存储器阵列的单元进行单独编程的步骤1326的一个实施方案。每当第一存储单元和/或第二存储单元未能正确编程时,可执行步骤1326。在一些实施方案中,可能不知道是第一存储单元1221还是第二存储单元1231未被正确编程;因此,步骤1326可能需要对第一存储单元1221和第二存储单元1231两者进行单独编程。步骤1326可以由管芯控制器220执行,例如,通过使用图1B中所示的各种电路。在替代方案中,步骤1326可以用不同的硬件来执行,诸如图1B的控制器244和/或图1A的非易失性存储器介质控制器126。
如图所示,步骤1326可以从步骤1412开始,在该步骤中将常规验证脉冲施加到第一存储单元1221。在该示例性实施方案中,可能不知道两个存储单元1221、1231中的哪一个未能正确编程。因此,在该示例性实施方案中,两个存储单元1221、1231中的每一个被独立地编程。因此,为了执行步骤1412和步骤1420(如下所述),第一存储单元1221和第二存储单元1231未电耦合。如果需要,第二存储单元1231可以通过在第一存储单元1221和第二存储单元1231的对应字线上独立且同时地施加编程电压而与第一存储单元1221的重新编程同时被重新编程。
在步骤1414中,确定第一存储单元是否被正确编程。在一个示例中,在附接到包括第一存储单元的NAND串的任一端的感测部件处感测电流,并且响应于电流流过第一存储单元,确定第一存储单元未被成功编程。
响应于在步骤1414处感测电流,该方法在步骤1416处继续,并且如本文所述施加增大的编程脉冲。可在编程脉冲中使用任何合适的增量。在一些实施方案中,使用编程脉冲或增量的查找表;步骤1414的每次迭代将编程脉冲设置为下一个编程脉冲或者使编程脉冲在查找表中增加下一个增量。
在步骤1418处,作为常规编程操作的一部分,将增大的编程脉冲施加到第一存储单元,并且步骤1326在步骤1412处继续,如先前所述。在该方法的该示例性实施方案中,步骤1414、1416、1418和1412可重复多次。响应于第一存储单元被正确编程,方法1309在步骤1420处继续。值得注意的是,如果第一存储单元1221满足某些标准,诸如超过阈值编程脉冲以便获得适当的编程,则可标记第一存储单元1221以减少使用或将来不使用。如果需要,仍可在当前存储操作中使用第一存储单元1221。在替代方案中,可以不使用第一存储单元1221,而是可以将待写入第一存储单元1221的数据写入不同的存储单元(可能在不同于第一擦除块1220和第二擦除块1230的第三块上)。
在步骤1420处,向第二存储单元1231施加验证脉冲。在步骤1426中,确定第二存储单元1231是否被正确编程。在一个示例中,在第一存储单元和第二存储单元中的一者处感测电流,并且响应于电流流过位线,确定第二存储单元未被成功编程。如结合步骤1412所述,可以任选地对第一存储单元1221和第二存储单元1231进行电解耦,以执行步骤1420,从而可以验证单独的第二存储单元1231的编程。
响应于在步骤1426处感测电流,方法1309在步骤1424处继续,并且如本文所述增大编程脉冲。可使用任何合适的方法来计算新的编程脉冲。如在步骤1416中,可使用查找表等。
在步骤1422处,将增大的编程脉冲施加到第二存储单元1231,并且步骤1326在步骤1420处继续,如先前所述。与步骤1412、1414、1416和1418类似,步骤1426、1424、1422和1420可重复多次。响应于第二存储单元被正确编程,方法1309在步骤1320处继续。
在各种实施方案中,用于将第一字线和第二字线电连接的装置可包括同时编程部件150、管芯控制器220、编程电路284、非易失性存储器装置接口139、非易失性存储器介质控制器126、装置驱动程序、在主机计算装置110上执行的控制器(例如,装置驱动程序等)、处理器111或其他逻辑硬件。
在各种实施方案中,用于电选择位线的装置可包括同时编程部件150、管芯控制器220、编程电路284、非易失性存储器装置接口139、非易失性存储器介质控制器126、主机计算装置110、总线127、通信网络115、装置驱动程序、在主机计算装置110上执行的控制器(例如,装置驱动程序等)、处理器111、其他逻辑硬件和/或存储在计算机可读存储介质上的其他可执行代码。
在各种实施方案中,用于将单个编程脉冲施加到所连接的字线的装置可包括同时编程部件150、管芯控制器220、编程电路284、非易失性存储器装置接口139、非易失性存储器介质控制器126、存储客户端116、主机计算装置110、总线127、通信网络115、装置驱动程序、在主机计算装置110上执行的控制器(例如,装置驱动程序等)、处理器111、其他逻辑硬件和/或存储在计算机可读存储介质上的其他可执行代码。
本公开可体现为其他具体形式而不背离其实质或基本特征。所述实施方案将在所有方面被认为仅仅是示例性的而非限制性的。因此,本公开的范围由所附权利要求而不是前述描述所指示。在权利要求书等同的含义和范围内的所有变化均包含在其范围内。
Claims (20)
1.一种设备,包括:
一组非易失性存储单元,所述一组非易失性存储单元被布置成:
第一擦除块,所述第一擦除块包括在第一存储单元处与第一字线相交的第一串存储单元;和
第二擦除块,所述第二擦除块包括在第二存储单元处与第二字线相交的第二串存储单元;
位线,所述位线能够电连接到所述第一串存储单元和所述第二串存储单元;以及
控制器,所述控制器被配置为将编程脉冲同时施加到所述第一字线和所述第二字线,以将所述第一存储单元和所述第二存储单元同时编程为公共目标阈值电压;
其中所述控制器被进一步配置为确定所述第一存储单元是否被正确编程;以及响应于确定所述第一存储单元被正确编程,重写所述第二存储单元。
2.根据权利要求1所述的设备,其中所述控制器被进一步配置为:
在将所述编程脉冲同时施加到所述第一字线和所述第二字线之后,将验证脉冲施加到所述第一字线和所述第二字线;以及
感测以检测电流是否在所述第一存储单元和所述第二存储单元中的一者处流动,从而确定所述第一存储单元和所述第二存储单元中的一者未被正确编程。
3.根据权利要求1所述的设备,其中响应于确定所述第一存储单元和所述第二存储单元中的一者未被正确编程,所述控制器被进一步配置为在第一常规编程操作中对所述第一存储单元进行编程并且在第二常规编程操作中对所述第二存储单元进行编程。
4.根据权利要求1所述的设备,其中所述编程脉冲超过18伏。
5.根据权利要求1所述的设备,其中所述控制器将所述编程脉冲同时施加到相应块中的一组两个或更多个字线,以对所述相应块的每一个中的附加存储单元进行同时编程。
6.根据权利要求1所述的设备,其中所述控制器被进一步配置为:
从所述第一存储单元和所述第二存储单元中的一者读取数据;以及
使用所述数据在单元压缩操作中对多级单元进行编程。
7.根据权利要求1所述的设备,其中所述第二擦除块位于所述一组非易失性存储单元的与所述第一擦除块分开的物理部分中。
8.一种设备,包括:
一组非易失性存储单元,所述一组非易失性存储单元被布置成:
第一擦除块,所述第一擦除块包括在第一存储单元处与第一字线相交的第一串存储单元;和
第二擦除块,所述第二擦除块包括在第二存储单元处与第二字线相交的第二串存储单元;
位线,所述位线能够电连接到所述第一串存储单元和所述第二串存储单元;以及
控制器,所述控制器被配置为:
将编程脉冲同时施加到所述第一字线和所述第二字线,以将所述第一存储单元和所述第二存储单元同时编程为公共目标阈值电压;
确定所述第一存储单元被正确编程;
响应于确定所述第一存储单元被正确编程,从所述第一存储单元读取数据;以及
在从所述第一存储单元读取所述数据之后,重写所述第一存储单元和所述第二存储单元。
9.一种设备,包括:
被布置成第一擦除块和第二擦除块的一组非易失性存储单元,每个擦除块电连接到一组位线,所述第一擦除块包括第一字线,并且所述第二擦除块包括第二字线;和
一个或更多个电路,所述电路被配置为:
对所述第一擦除块中的第一组存储单元和所述第二擦除块中的第二组存储单元进行电选择;
将单个脉冲中的编程脉冲施加到所述第一字线和所述第二字线,以将相同数据值同时写入所述第一组存储单元和所述第二组存储单元;
确定所述第一组存储单元和所述第二组存储单元被正确编程;以及
响应于确定所述第一组存储单元和所述第二组存储单元被正确编程,重写所述第二组存储单元。
10.根据权利要求9所述的设备,其中所述一个或更多个电路还被配置为:
将验证脉冲施加到所述第一字线和所述第二字线;以及
响应于所述验证脉冲的施加,感测流过所述一组位线中的相应位线的电流,以确定所述第一组存储单元和所述第二组存储单元中的一者未被正确编程。
11.根据权利要求10所述的设备,其中响应于确定所述第一组存储单元和所述第二组存储单元中的一者未被正确编程,所述一个或更多个电路被配置为在单独的常规编程操作中对所述第一组存储单元和所述第二组存储单元进行编程。
12.根据权利要求9所述的设备,其中:
所述第一擦除块的所述非易失性存储单元被配置为在单个第一操作中一起擦除,并且
所述第二擦除块的所述非易失性存储单元被配置为在与所述第一操作分开且不同的单个第二操作中一起擦除。
13.根据权利要求9所述的设备,其中所述第二擦除块与所述第一擦除块物理地分开。
14.一种用于同时编程的方法,包括:
对被布置成两个块的非易失性存储单元阵列的位线进行电选择,所述位线能够连接到所述两个块的每一个中的存储单元;
电连接单独的字线,所述单独的字线包括对应于所述两个块的第一块中的所述存储单元之一的第一字线与对应于所述两个块的第二块中的所述存储单元之一的第二字线;以及
将编程脉冲同时施加到所连接的字线,以对所述两个块的第一块中的所述存储单元之一和所述两个块的第二块中的所述存储单元之一同时编程;
在将所述编程脉冲同时施加到所连接的字线之后,将验证脉冲同时施加到所连接的字线;以及
响应于所述验证脉冲的施加,感测流过所述存储单元之一的电流,以确定所述存储单元之一未被正确编程。
15.根据权利要求14所述的方法,还包括:响应于确定所述存储单元之一未被正确编程,在独立的常规操作中对所述存储单元进行编程。
16.根据权利要求14所述的方法,进一步包括:
确定所述两个块的第一块中的所述存储单元之一被正确编程:
响应于确定所述两个块的第一块中的所述存储单元之一被正确编程,从所述两个块的第一块中的所述存储单元之一读取数据;以及
在从所述存储单元之一读取所述数据之后,重写所述两个块的第一块中的所述存储单元之一和述两个块的第二块中的所述存储单元之一。
17.根据权利要求14所述的方法,其进一步包括:
从所述两个块的第一擦除块内所述存储单元的第一存储单元和所述两个块的第二擦除块内的所述存储单元的第二存储单元中的一者读取数据;以及
使用所述数据在单元压缩操作中对多级单元进行编程。
18.根据权利要求14所述的方法,其中所述两个块的第一块和所述两个块的第二块物理地分开。
19.根据权利要求14所述的方法,还包括:
确定所述两个块的第一块中的所述存储单元之一或所述两个块的第二块中的所述存储单元之一未被正确编程;以及
响应于确定所述两个块的第一块中的所述存储单元之一或所述两个块的第二块中的所述存储单元之一未被正确编程,在第一编程操作中对所述两个块的第一块中的所述存储单元之一进行编程以及在第二编程操作中对所述两个块的第二块中的所述存储单元之一进行编程。
20.一种用于同时编程的方法,包括:
为被布置成两个块的非易失性存储单元阵列电选择位线,所述位线能够连接到所述两个块的每一个中的存储单元;
将包括第一字线和第二字线的单独字线进行电连接,所述第一字线对应于所述两个块的第一个中的所述存储单元之一,所述第二字线对应于所述两个块的第二个中的所述存储单元之一;以及
将编程脉冲同时施加到所连接的字线,以对所述两个块的第一个中的所述存储单元之一和所述两个块的第二个中的所述存储单元之一进行同时编程;
确定所述两个块的第一个中的所述存储单元之一被正确编程;
响应于确定所述两个块的第一个中的所述存储单元之一被正确编程,读取所述两个块的第一个中的所述存储单元之一;以及
在读取所述两个块的第一个中的所述存储单元之一之后,重写所述两个块的第一个中的所述存储单元之一和所述两个块的第二个中的所述存储单元之一。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/024,002 US10978156B2 (en) | 2018-06-29 | 2018-06-29 | Concurrent programming of multiple cells for non-volatile memory devices |
US16/024,002 | 2018-06-29 | ||
PCT/US2019/021470 WO2020005342A1 (en) | 2018-06-29 | 2019-03-08 | Concurrent programming of multiple cells for non-volatile memory devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111386573A CN111386573A (zh) | 2020-07-07 |
CN111386573B true CN111386573B (zh) | 2023-12-01 |
Family
ID=68986801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980005970.1A Active CN111386573B (zh) | 2018-06-29 | 2019-03-08 | 非易失性存储器装置的多个单元的同时编程 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10978156B2 (zh) |
CN (1) | CN111386573B (zh) |
DE (1) | DE112019000165T5 (zh) |
WO (1) | WO2020005342A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10978156B2 (en) | 2018-06-29 | 2021-04-13 | Sandisk Technologies Llc | Concurrent programming of multiple cells for non-volatile memory devices |
US11545221B2 (en) | 2018-06-29 | 2023-01-03 | Sandisk Technologies Llc | Concurrent programming of multiple cells for non-volatile memory devices |
US10832790B1 (en) * | 2019-09-26 | 2020-11-10 | Western Digital Technologies, Inc. | Performance of non data word line maintenance in sub block mode |
KR20220002606A (ko) * | 2019-10-18 | 2022-01-06 | 양쯔 메모리 테크놀로지스 씨오., 엘티디. | 메모리 장치를 프로그래밍하고 검증하는 방법 및 관련 메모리 장치 |
CN113823347A (zh) * | 2020-04-15 | 2021-12-21 | 长江存储科技有限责任公司 | 3d nand闪存及其操作方法 |
US11423996B1 (en) | 2021-05-18 | 2022-08-23 | Sandisk Technologies Llc | Memory apparatus and method of operation using triple string concurrent programming during erase |
US11625172B2 (en) | 2021-06-16 | 2023-04-11 | Sandisk Technologies Llc | Programming memory cells with concurrent redundant storage of data for power loss protection |
US11551781B1 (en) | 2021-06-16 | 2023-01-10 | Sandisk Technologies Llc | Programming memory cells with concurrent storage of multi-level data as single-level data for power loss protection |
US11797228B2 (en) * | 2021-06-24 | 2023-10-24 | Western Digital Technologies, Inc. | Efficient handling of background operations for improving sustained performance of host reads and writes |
US20230386569A1 (en) * | 2022-05-26 | 2023-11-30 | Sandisk Technologies Llc | Low power multi-level cell (mlc) programming in non-volatile memory structures |
US20230386568A1 (en) * | 2022-05-26 | 2023-11-30 | Sandisk Technologies Llc | High speed multi-level cell (mlc) programming in non-volatile memory structures |
US11972806B2 (en) * | 2022-06-10 | 2024-04-30 | Sandisk Technologies, Llc | Read techniques to reduce read errors in a memory device |
CN116644703B (zh) * | 2023-05-29 | 2023-11-24 | 合芯科技有限公司 | 一种位图文件的生成方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101471138A (zh) * | 2007-12-27 | 2009-07-01 | 海力士半导体有限公司 | 对非易失性存储器件编程的方法 |
CN102160118A (zh) * | 2008-09-24 | 2011-08-17 | 桑迪士克股份有限公司 | 非易失性存储器阵列的最后字线的数据保持的改进 |
CN102906820A (zh) * | 2010-05-24 | 2013-01-30 | 桑迪士克科技股份有限公司 | 用同步耦合编程非易失性存储器 |
CN105144296A (zh) * | 2012-11-06 | 2015-12-09 | 桑迪士克技术有限公司 | 3d nand堆叠式非易失性存储器编程至导电状态 |
CN106796548A (zh) * | 2014-09-06 | 2017-05-31 | Neo半导体公司 | 使用多页编程来写入非易失性存储器的方法与装置 |
CN107112047A (zh) * | 2015-01-23 | 2017-08-29 | 桑迪士克科技有限责任公司 | 用于在非易失性存储器中区块编程的部分区块擦除 |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5673224A (en) * | 1996-02-23 | 1997-09-30 | Micron Quantum Devices, Inc. | Segmented non-volatile memory array with multiple sources with improved word line control circuitry |
US7149110B2 (en) | 1999-01-14 | 2006-12-12 | Silicon Storage Technology, Inc. | Seek window verify program system and method for a multilevel non-volatile memory integrated circuit system |
US6345001B1 (en) | 2000-09-14 | 2002-02-05 | Sandisk Corporation | Compressed event counting technique and application to a flash memory system |
GB0123412D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Memory system sectors |
US6907497B2 (en) | 2001-12-20 | 2005-06-14 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor memory device |
US6944063B2 (en) | 2003-01-28 | 2005-09-13 | Sandisk Corporation | Non-volatile semiconductor memory with large erase blocks storing cycle counts |
US6917542B2 (en) | 2003-07-29 | 2005-07-12 | Sandisk Corporation | Detecting over programmed memory |
US6914823B2 (en) | 2003-07-29 | 2005-07-05 | Sandisk Corporation | Detecting over programmed memory after further programming |
US7139864B2 (en) * | 2003-12-30 | 2006-11-21 | Sandisk Corporation | Non-volatile memory and method with block management system |
US7307884B2 (en) * | 2004-06-15 | 2007-12-11 | Sandisk Corporation | Concurrent programming of non-volatile memory |
US7339834B2 (en) | 2005-06-03 | 2008-03-04 | Sandisk Corporation | Starting program voltage shift with cycling of non-volatile memory |
US7408810B2 (en) | 2006-02-22 | 2008-08-05 | Micron Technology, Inc. | Minimizing effects of program disturb in a memory device |
US7495966B2 (en) | 2006-05-01 | 2009-02-24 | Micron Technology, Inc. | Memory voltage cycle adjustment |
US7791952B2 (en) * | 2007-01-30 | 2010-09-07 | Micron Technology, Inc. | Memory device architectures and operation |
US7808836B2 (en) | 2008-04-29 | 2010-10-05 | Sandisk Il Ltd. | Non-volatile memory with adaptive setting of state voltage levels |
US7808819B2 (en) | 2008-04-29 | 2010-10-05 | Sandisk Il Ltd. | Method for adaptive setting of state voltage levels in non-volatile memory |
US7755946B2 (en) * | 2008-09-19 | 2010-07-13 | Sandisk Corporation | Data state-based temperature compensation during sensing in non-volatile memory |
US8787088B2 (en) * | 2012-06-29 | 2014-07-22 | Sandisk Technologies Inc. | Optimized erase operation for non-volatile memory with partially programmed block |
US8971128B2 (en) | 2013-01-31 | 2015-03-03 | Sandisk Technologies Inc. | Adaptive initial program voltage for non-volatile memory |
US9013920B2 (en) | 2013-04-03 | 2015-04-21 | Western Digital Technologies, Inc. | Systems and methods of write precompensation to extend life of a solid-state memory |
GB201322075D0 (en) | 2013-12-13 | 2014-01-29 | Ibm | Device for selecting a level for at least one read voltage |
US9582205B2 (en) * | 2014-04-17 | 2017-02-28 | Sandisk Technologies Llc | Protection scheme with dual programming of a memory system |
US9778863B2 (en) * | 2014-09-30 | 2017-10-03 | Sandisk Technologies Llc | System and method for folding partial blocks into multi-level cell memory blocks |
US9542286B2 (en) * | 2014-09-30 | 2017-01-10 | Sandisk Technologies Llc | Failure logging mechanism to reduce garbage collection time in partially reused bad blocks |
US9582358B2 (en) * | 2014-09-30 | 2017-02-28 | Sandisk Technologies Llc | Initialization scheme during dual programming of a memory system |
US9886341B2 (en) * | 2014-12-31 | 2018-02-06 | Sandisk Technologies Llc | Optimizing reclaimed flash memory |
US9548124B1 (en) | 2015-10-14 | 2017-01-17 | Sandisk Technologies Llc | Word line dependent programming in a memory device |
US10074440B2 (en) * | 2016-10-28 | 2018-09-11 | Sandisk Technologies Llc | Erase for partially programmed blocks in non-volatile memory |
US10153046B1 (en) * | 2017-10-30 | 2018-12-11 | Western DigitalTechnologies, Inc. | Non-volatile memory with backing up of programmed data |
US10372603B2 (en) * | 2017-11-27 | 2019-08-06 | Western Digital Technologies, Inc. | Handling of unaligned writes |
US10529435B2 (en) | 2018-01-05 | 2020-01-07 | Sandisk Technologies Llc | Fast detection of defective memory block to prevent neighbor plane disturb |
US11545221B2 (en) * | 2018-06-29 | 2023-01-03 | Sandisk Technologies Llc | Concurrent programming of multiple cells for non-volatile memory devices |
US10978156B2 (en) | 2018-06-29 | 2021-04-13 | Sandisk Technologies Llc | Concurrent programming of multiple cells for non-volatile memory devices |
-
2018
- 2018-06-29 US US16/024,002 patent/US10978156B2/en active Active
-
2019
- 2019-03-08 DE DE112019000165.5T patent/DE112019000165T5/de active Pending
- 2019-03-08 WO PCT/US2019/021470 patent/WO2020005342A1/en active Application Filing
- 2019-03-08 CN CN201980005970.1A patent/CN111386573B/zh active Active
-
2021
- 2021-04-12 US US17/227,820 patent/US11342028B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101471138A (zh) * | 2007-12-27 | 2009-07-01 | 海力士半导体有限公司 | 对非易失性存储器件编程的方法 |
CN102160118A (zh) * | 2008-09-24 | 2011-08-17 | 桑迪士克股份有限公司 | 非易失性存储器阵列的最后字线的数据保持的改进 |
CN102906820A (zh) * | 2010-05-24 | 2013-01-30 | 桑迪士克科技股份有限公司 | 用同步耦合编程非易失性存储器 |
CN105144296A (zh) * | 2012-11-06 | 2015-12-09 | 桑迪士克技术有限公司 | 3d nand堆叠式非易失性存储器编程至导电状态 |
CN106796548A (zh) * | 2014-09-06 | 2017-05-31 | Neo半导体公司 | 使用多页编程来写入非易失性存储器的方法与装置 |
CN107112047A (zh) * | 2015-01-23 | 2017-08-29 | 桑迪士克科技有限责任公司 | 用于在非易失性存储器中区块编程的部分区块擦除 |
Non-Patent Citations (1)
Title |
---|
基于标准制作工艺的一次性可编程存储的研究;赵立明;刘利峰;陈力颖;毕胜兰;;电子技术(12);全文 * |
Also Published As
Publication number | Publication date |
---|---|
US11342028B2 (en) | 2022-05-24 |
US20200005871A1 (en) | 2020-01-02 |
US10978156B2 (en) | 2021-04-13 |
DE112019000165T5 (de) | 2020-08-20 |
WO2020005342A1 (en) | 2020-01-02 |
CN111386573A (zh) | 2020-07-07 |
US20210233589A1 (en) | 2021-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111386573B (zh) | 非易失性存储器装置的多个单元的同时编程 | |
CN107492391B (zh) | 基于单元电流的位线电压 | |
CN107545923B (zh) | 基于擦除速度的字线控制 | |
US11545221B2 (en) | Concurrent programming of multiple cells for non-volatile memory devices | |
US20200258571A1 (en) | Adaptive programming voltage for non-volatile memory devices | |
US10734084B2 (en) | Scheme to reduce read disturb for high read intensive blocks in non-volatile memory | |
CN111406290B (zh) | 用于校验的子组选择 | |
CN109727627B (zh) | 组读取刷新 | |
US11967387B2 (en) | Detrapping electrons to prevent quick charge loss during program verify operations in a memory device | |
CN115497544A (zh) | 非易失性存储器的程序循环中的下一状态验证的触发 | |
US11961566B2 (en) | Fast bit erase for upper tail tightening of threshold voltage distributions | |
US11887668B2 (en) | All levels programming of a memory device in a memory sub-system | |
US11581049B2 (en) | System and methods for programming nonvolatile memory having partial select gate drains | |
CN115705905A (zh) | 通过存储器装置中的字线跟踪rc时间常数 | |
US20220375524A1 (en) | Periodic write to improve data retention | |
US11972817B2 (en) | State look ahead quick pass write algorithm to tighten ongoing natural threshold voltage of upcoming states for program time reduction | |
CN115602228A (zh) | 非易失性存储器装置的多个单元并行编程 | |
US20230307055A1 (en) | Concurrent slow-fast memory cell programming | |
US20230206999A1 (en) | Erase operation with electron injection for reduction of cell-to-cell interference in a memory sub-system | |
US20240071430A1 (en) | Creating dynamic latches above a three-dimensional non-volatile memory array | |
US11742036B2 (en) | Reducing maximum programming voltage in memory programming operations | |
US20230253052A1 (en) | Double single level cell program in a memory device | |
US20240069733A1 (en) | Multiple memory block erase operation | |
US20240071505A1 (en) | Dynamic latches above a three-dimensional non-volatile memory array | |
US20230207018A1 (en) | Charge loss acceleration during programming of memory cells in a memory sub-system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |