TWI848490B - 用於nand快閃記憶體設備的編程方法、nand快閃記憶體設備及記憶體系统 - Google Patents
用於nand快閃記憶體設備的編程方法、nand快閃記憶體設備及記憶體系统 Download PDFInfo
- Publication number
- TWI848490B TWI848490B TW111150400A TW111150400A TWI848490B TW I848490 B TWI848490 B TW I848490B TW 111150400 A TW111150400 A TW 111150400A TW 111150400 A TW111150400 A TW 111150400A TW I848490 B TWI848490 B TW I848490B
- Authority
- TW
- Taiwan
- Prior art keywords
- page
- programming
- flash memory
- data
- memory
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 374
- 238000000034 method Methods 0.000 title claims abstract description 135
- 238000012795 verification Methods 0.000 claims abstract description 104
- 210000004027 cell Anatomy 0.000 claims description 120
- 238000003860 storage Methods 0.000 claims description 99
- 210000000352 storage cell Anatomy 0.000 claims description 98
- 230000008569 process Effects 0.000 claims description 78
- 230000002093 peripheral effect Effects 0.000 claims description 26
- 238000013500 data storage Methods 0.000 claims description 17
- 238000001514 detection method Methods 0.000 claims description 8
- 238000012360 testing method Methods 0.000 description 25
- 239000000758 substrate Substances 0.000 description 23
- 239000000872 buffer Substances 0.000 description 22
- 238000012546 transfer Methods 0.000 description 13
- 239000004065 semiconductor Substances 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 239000000463 material Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000000873 masking effect Effects 0.000 description 4
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 230000002950 deficient Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 229910052751 metal Inorganic materials 0.000 description 3
- 239000002184 metal Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 239000002800 charge carrier Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000005669 field effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- JBRZTFJDHDCESZ-UHFFFAOYSA-N AsGa Chemical compound [As]#[Ga] JBRZTFJDHDCESZ-UHFFFAOYSA-N 0.000 description 1
- 229910001218 Gallium arsenide Inorganic materials 0.000 description 1
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 1
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 1
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- GPXJNWSHGFTCBW-UHFFFAOYSA-N Indium phosphide Chemical compound [In]#P GPXJNWSHGFTCBW-UHFFFAOYSA-N 0.000 description 1
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 1
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 229910052732 germanium Inorganic materials 0.000 description 1
- GNPVGFCGXDBREM-UHFFFAOYSA-N germanium atom Chemical compound [Ge] GNPVGFCGXDBREM-UHFFFAOYSA-N 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000009413 insulation Methods 0.000 description 1
- 238000007685 laparoscopic sleeve gastrectomy Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000012528 membrane Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000012811 non-conductive material Substances 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 229910052594 sapphire Inorganic materials 0.000 description 1
- 239000010980 sapphire Substances 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
- 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
- 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/08—Address circuits; Decoders; Word-line control circuits
-
- 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
- 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/26—Sensing or reading circuits; Data output circuits
-
- 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/344—Arrangements for verifying correct erasure or for detecting overerased cells
- G11C16/3445—Circuits or methods to verify correct erasure of nonvolatile memory cells
-
- 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
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
本發明內容提供了一種用於NAND記憶體的資料保護的方法。所述方法包括:根據編程資料對NAND快閃記憶體設備的第一頁和第二頁進行編程,使得存儲在所述第一頁和第二頁中的資料是冗餘的。對所述第一頁和第二頁的所述編程包括:使用多個編程電壓的多個編程操作,以及用於根據所述編程資料確定所述第一頁的經編程存儲單元是否具有閾值電壓電平的多個驗證操作。所述方法還包括:基於所述多個驗證操作中的每個驗證操作返回通過結果來確定對所述第一頁和第二頁的編程的完成。所述方法還包括:;以及,在所述確定之後,由所述NAND快閃記憶體設備執行對所述第二頁的讀取操作,以對存儲在所述第二頁的資料進行自驗證。
Description
概括地說,本發明內容涉及半導體技術的領域,並且更具體地說,本發明內容涉及用於對NAND記憶體中的雙重編程錯誤進行除錯的方法。
隨著記憶體件不斷縮小到較小的管芯尺寸以降低製造成本並增加存儲密度,由於製程技術的局限性和可靠性問題,面存儲單元的擴展面臨挑戰。三維(three dimensional, 3D)記憶體架構可以解決面存儲單元中的密度和性能限制。
在3D NAND快閃記憶體中,可以垂直地堆疊多層存儲單元,從而可以大大提高每單位面積的存儲密度。垂直堆疊的存儲單元可以形成存儲串,其中存儲單元的溝道在每個存儲串中是連接的。每個存儲單元可以通過字元線和位元線來定址。可以同時讀取或編程共用同一字元線的整個存儲頁面中的存儲單元的資料(即,邏輯狀態)。然而,由於積極的擴展,可靠性可能是3D NAND快閃記憶體的一個問題。
在本發明內容中描述了用於記憶體設備中的資料保護的方法和系統的實施例。
在一些實施例中,一種方法可以提供使用NAND自驗證的冗餘備份方法。所述方法可以包括:根據編程資料對NAND快閃記憶體設備的第一頁和第二頁進行編程,使得存儲在所述第一頁和第二頁中的資料是冗餘的。所述第一頁和所述第二頁中的每個頁包括與第一字元線或第二字元線相對應的多個存儲單元。對所述第一頁和所述第二頁的所述編程可以包括使用多個編程電壓的多個編程操作以及多個驗證操作。可以在所述多個編程操作中的相對應的一些編程操作之後執行所述多個驗證操作中的一些驗證操作,以根據所述編程資料確定所述第一頁的經編程存儲單元是否具有閾值電壓電平。所述方法還可以包括:基於所述多個驗證操作中的每個驗證操作返回通過結果來確定對所述第一頁和第二頁的編程的完成。所述方法還可以包括:在所述確定之後,由所述NAND快閃記憶體設備執行對所述第二頁的讀取操作,以根據所述編程資料對存儲在所述第二頁的資料進行自驗證。
在一些實施例中,所述第一頁可以被配置用於單層單元快閃記憶體(single-level cell,SLC)編程。所述第二頁可以被配置用於多層單元快閃記憶體(multi-level cell,MLC)編程、三層單元快閃記憶體(triple-level cell,TLC)編程或四層單元快閃記憶體(quad-level cell,QLC)編程。
在一些實施例中,對所述讀取操作的執行可以包括:與執行由一個或多個主機計算設備的所述讀取操作以根據所述編程資料對存儲在所述第二頁的資料進行外部驗證相比,減少所述方法的完成的時間。
在一些實施例中,所述方法還可以包括:釋放所述第一頁以接收新資料進行存儲。
在一些實施例中,執行所述讀取操作可以包括:將從所述讀取操作確定的所存儲的資料和所述編程資料進行比較。執行所述讀取操作還可以包括:如果失敗位元計數低於閾值則確定通過結果,或者如果所述失敗位元計數高於閾值則確定失敗結果。
在一些實施例中,所述方法還可以包括:通過所述NAND快閃記憶體設備接收輸入以調整對所述讀取操作的執行。
在一些實施例中,所述方法還可以包括:將對所述讀取操作的執行限制在所述NAND快閃記憶體設備中的由所述輸入指定的一個或多個區域。一個或多個指定的區域包括下列各項中的至少一項:用於單層單元快閃記憶體(SLC)的區域;用於多層單元快閃記憶體(MLC)的區域;用於三層單元快閃記憶體(TLC)的區域;用於四層單元快閃記憶體(QLC)的區域;頁;塊;以及片存儲區。
在一些實施例中,所述方法還可以包括:延遲對未來編程資料的高速緩存直到對所述讀取操作的執行之後。
在一些實施例中,所述方法還可以包括:檢測所述高速緩存的使用,其中,所述延遲基於對所述高速缓存的所述使用的所述檢測。
在一些實施例中,NAND快閃記憶體設備可以使用NAND自驗證來提供冗餘資料備份。所述NAND快閃記憶體設備可以包括記憶體陣列。所述記憶體陣列可以包括第一頁和第二頁,所述第一頁和第二頁中的每個頁包括與第一字元線或第二字元線相對應的多個存儲單元。所述NAND快閃記憶體設備還可以包括週邊電路,所述週邊電路經由所述第一字元線和所述第二字元線耦合到所述第一頁和所述第二頁。所述週邊電路可以根據所述編程資料對所述第一頁和第二頁進行編程,使得存儲在所述第一頁和第二頁中的資料是冗餘的。對所述第一頁和第二頁的所述編程可以包括使用多個編程電壓的多個編程操作以及多個驗證操作。所述多個驗證操作中的一些驗證操作可以在所述多個編程操作中的相對應的一些編程操作之後執行,以根據所述編程資料確定所述第一頁的經編程存儲單元是否具有閾值電壓電平。所述週邊電路還可以基於所述多個驗證操作中的每個驗證操作返回通過結果來確定對所述第一頁和第二頁的編程的完成。所述週邊電路還可以在所述確定之後,執行由所述NAND快閃記憶體設備對所述第二頁的讀取操作,以根據所述編程資料對資料在所述第二頁處的存儲進行自驗證。
在所述NAND快閃記憶體設備的一些實施例中,所述第一頁可以被配置用於單層單元快閃記憶體(SLC)編程。所述第二頁可以被配置用於多層單元快閃記憶體(MLC)編程、三層單元快閃記憶體(TLC)編程或四層單元快閃記憶體(QLC)編程。
在所述NAND快閃記憶體設備的一些實施例中,對所述讀取操作的執行可以包括:與由執行一個或多個主機計算設備的所述讀取操作以根據所述編程資料對存儲在所述第二頁的資料進行外部驗證相比,減少包括對所述第一頁和第二頁的所述編程的冗餘數據存儲過程的完成的時間。
在所述NAND快閃記憶體設備的一些實施例中,所述NAND快閃記憶體設備可以釋放所述第一頁以接收新資料進行存儲。
在所述NAND快閃記憶體設備的一些實施例中,對所述讀取操作的所述執行可以包括:將從所述讀取操作確定的所存儲的資料和所述編程資料進行比較。對所述讀取操作的所述執行還可以包括:如果失敗位元計數低於閾值則確定通過結果,或者如果所述失敗位元計數高於閾值則確定失敗結果。
在所述NAND快閃記憶體設備的一些實施例中,所述NAND快閃記憶體設備可以接收輸入以調整對所述讀取操作的執行。
在所述NAND快閃記憶體設備的一些實施例中,所述NAND快閃記憶體設備還可以將對所述讀取操作的所述執行限制在所述NAND記憶體中的由所述輸入指定的一個或多個區域。一個或多個指定的區域包括下列各項中的至少一項:用於單層單元快閃記憶體(SLC)的區域;用於多層單元快閃記憶體(MLC)的區域;用於三層單元快閃記憶體(TLC)的區域;用於四層單元快閃記憶體(QLC)的區域;頁;塊;以及片存儲區。
在所述NAND快閃記憶體設備的一些實施例中,所述NAND快閃記憶體設備可以延遲對未來編程資料的高速緩存直到對所述讀取操作的執行之後。
在所述NAND快閃記憶體設備的一些實施例中,所述NAND快閃記憶體設備還可以檢測所述高速緩存的使用,其中,所述延遲基於對所述高速緩存的所述使用的所述檢測。
在一些實施例中,一種記憶體系統可以提供使用NAND自驗證的冗餘備份方法。所述記憶體系統可以包括可以存儲資料的NAND快閃記憶體設備。所述NAND快閃記憶體設備可以包括記憶體陣列。所述記憶體陣列可以包括第一頁和第二頁,所述第一頁和第二頁中的每個頁包括與第一字元線或第二字元線相對應的多個存儲單元。所述NAND快閃記憶體設備還可以包括週邊電路,所述週邊電路經由所述第一字元線和所述第二字元線耦合到所述第一頁和所述第二頁。所述週邊電路可以根據所述編程資料對所述第一頁和第二頁進行編程,使得存儲在所述第一頁和第二頁中的資料是冗餘的。對所述第一頁和第二頁的所述編程可以包括使用多個編程電壓的多個編程操作以及多個驗證操作。所述多個驗證操作中的一些驗證操作可以在所述多個編程操作中的相對應的一些編程操作之後執行,以根據所述編程資料確定所述第一頁的經編程存儲單元是否具有閾值電壓電平。所述週邊電路還可以基於所述多個驗證操作中的每個驗證操作返回通過結果來確定對所述第一頁和第二頁的編程的完成。所述週邊電路還可以在所述確定之後,執行由所述NAND快閃記憶體設備對所述第二頁的讀取操作,以根據所述編程資料對資料在所述第二頁處的存儲進行自驗證。
在所述記憶體系統的一些實施例中,所述第一頁可以被配置用於單層單元快閃記憶體(SLC)編程。所述第二頁可以被配置用於多層單元快閃記憶體(MLC)編程、三層單元快閃記憶體(TLC)編程或四層單元快閃記憶體(QLC)編程。
在所述記憶體系統的一些實施例中,對所述讀取操作的執行可以包括:與由執行一個或多個主機計算設備的所述讀取操作以根據所述編程資料對存儲在所述第二頁的資料進行外部驗證相比,減少包括對所述第一頁和第二頁的所述編程的冗餘數據存儲過程的完成的時間。
在所述記憶體系統的一些實施例中,所述NAND快閃記憶體設備還可以釋放所述第一頁以接收新資料進行存儲。
在所述記憶體系統的一些實施例中,對所述讀取操作的執行可以包括:將從所述讀取操作確定的所存儲的資料和所述編程資料進行比較。對所述讀取操作的執行還可以包括:如果失敗位元計數低於閾值則確定通過結果,或者如果所述失敗位元計數高於閾值則確定失敗結果。
在所述記憶體系統的一些實施例中,所述NAND快閃記憶體設備還可以接收輸入以調整對所述讀取操作的執行。
在所述記憶體系統的一些實施例中,所述NAND快閃記憶體設備還可以將所述讀取操作的所述執行限制在所述NAND快閃記憶體設備中的由所述輸入指定的一個或多個區域。一個或多個指定的區域包括下列各項中的至少一項:用於單層單元快閃記憶體(SLC)的區域;用於多層單元快閃記憶體(MLC)的區域;用於三層單元快閃記憶體(TLC)的區域;用於四層單元快閃記憶體(QLC)的區域;頁;塊;以及片存儲區。
在所述記憶體系統的一些實施例中,所述NAND快閃記憶體設備還可以延遲對未來編程資料的高速緩存直到對所述讀取操作的執行之後。
在所述記憶體系統的一些實施例中,所述NAND快閃記憶體設備還可以檢測所述高速緩存的使用,其中,所述延遲基於對所述高速緩存的所述使用的所述檢測。
根據本發明內容的說明書、申請專利範圍和附圖,本領域技術人員可以理解本發明內容的其他方面。
雖然討論了特定的配置和佈置,但應該理解的是:這是僅為了說明的目的。相關領域的技術人員將認識到的是:在不脫離本發明內容的精神和範圍的情況下可以使用其他配置和佈置。對於相關領域的技術人員來說顯而易見的是,本發明內容還可以用於各種其他應用。
應該指出的是:說明書中對「一個實施例」、「實施例」、「示例實施例」、「一些實施例」等的引用指示所描述的實施例可包括特定特徵、結構或特性,但是每個實施例可以不一定包括特定的特徵、結構或特性。此外,這些短語不一定指的是相同的實施例。另外,當結合實施例來描述特定特徵、結構或特性時,無論是否明確描述,結合其他實施例實現這樣的特徵、結構,或特性將會在相關領域的技術人員的知識範圍內。
通常,可以至少部分從上下文中的使用來理解術語。例如,本文中所使用的術語「一個或多個」,至少部分取決於上下文,可以用於以單數意義描述任何特徵、結構或特性,或者可以用於以複數意義來描述特徵、結構或特性的組合。類似地,諸如「一」、「一個」或「這個」之類的術語可以被理解為傳達單數用法或傳達複數用法,這至少部分取決於上下文。此外,術語「基於」可以被理解為不一定旨在傳達因素的排他性集合,而是可以至少部分取決於上下文,允許存在不一定明確描述的其他因素。
應該容易理解的是,本發明中「上」、「上方」和「上面」的含義應該以最廣泛的方式解釋,使得「在......上」不僅意味著「直接在某物上」,而且還包括在具有中間特徵或其間的層的情況下「在某物上」的含義。此外,「上方」或「上面」不僅意指「在某物上方」或「在某物上面」,而且還可以包括在沒有中間特徵或其間的層的情況下「在某物上方」或「在某物上面」的含義(即,直接在某物上)。
此外,本文中可以使用空間相對術語,例如「下方」、「下面」、「下部」、「上方」、「上部,」等以便於描述,來描述一個組件或特徵與另一個組件或特徵如圖所示的關係。除了圖中所描繪的方位之外,空間相對術語旨在包括使用中或過程步驟中的設備的不同方位。裝置可以以其他方式定向(旋轉90度或在其他方位上),並且同樣可以相應地解釋在本文中使用的空間相對描述符。
如本文所使用的,術語「基板」是指在其上添加後續材料層的材料。基板包括「頂」表面和「底」表面。基板的頂表面通常是形成半導體器件的位置,並且因此,除非另外說明,否則半導體器件形成在基板的頂側。底表面與頂表面相對,並且因此基板的底側與基板的頂側相對。基板本身可以被圖案化。添加到基板的頂部的材料可以被圖案化或者可以保持未圖案化。此外,基板可以包括各種各樣的半導體材料,例如矽、鍺、砷化鎵、磷化銦等。可替代地,基板可以由非導電材料製成,非導電材料例如玻璃、塑膠或藍寶石晶片。
如本文中所使用的,術語「層」是指包括具有厚度的區域的材料部分。層具有頂側和底側,其中層的底側相對靠近基板,而頂側相對遠離基板。層可以在整個底層結構或上層結構上延伸,或者可以具有如下範圍,該範圍小於底層結構或上層結構的範圍。此外,層可以是均勻或不均勻連續結構的區域,該層具有的厚度小於連續結構的厚度。例如,層可以位於連續結構的頂部表面和底部表面之間的或者連續結構的頂部表面和底部表面處的任何水準平面集合之間。層可以水準地、垂直地和/或沿錐面延伸。基板可以是層,可以在基板中包括一個或多個層,和/或可以在基板上、基板上方和/或基板下具有一個或多個層。層可以包含多個層。例如,互連層可以包括一個或多個導電和接觸層(在該導電和接觸層中形成觸點、互連線和/或垂直互連存取(VIA))以及一個或多個介電層。
在本發明內容中,為了便於描述,「層」用於指代沿豎直方向具有基本相同的高度的組件。例如,字元線和下面的閘極介電層可以被稱為「層」,字元線和下面的絕緣層可以一起被稱為「層」,高度基本相同的字元線可以被稱為「一層字元線」或類似字詞,等等。
如本文中所使用的,術語「標稱/名義上」是指在產品或製程的設計階段期間設定的組件或製程步驟的特徵或參數的期望值或目標值,以及高於和/或低於期望值的一範圍的值。值的範圍可以由於製造製程或公差的微小變化。如本文中所使用的,術語「約」表示可以基於與主題半導體器件相關聯的特定技術節點而變化的給定量的值。基於特定技術節點,術語「約」可以表示給定量的值,給定量的值在例如值的10-30%內變化(例如,值的±10%,±20%或±30%)。
在本發明內容中,術語「水準/水準地/側向/側向地」是指名義上平行於基板的側表面,而術語「垂直」或「垂直地」是指名義上垂直於基板的側表面。
如本文所使用的,術語「3D記憶體」是指在橫向取向的基板上具有存儲單元電晶體的垂直取向的串(在本文中被稱為「存儲串」,例如NAND串)的三維(3D)半導體器件,從而使得存儲串相對於基板在垂直方向上延伸。
圖1示出了根據一些實施例的具有存儲系統10的系統S1的框圖。在一些實施例中,系統S1可以是手機、桌上型電腦、筆記型電腦、平板電腦、車載電腦、遊戲機、印表機、定位設備、可穿戴電子設備、智慧感測器、虛擬實境(virtual reality,VR)設備、擴增實境(augmented reality AR) 設備或其中具有存儲裝置的任何其他合適的電子設備。存儲系統10(例如,NAND存儲系統)可以包括記憶體控制器20和一個或多個半導體記憶體晶片25-1、25-2、25-3、......、25-n。每個半導體記憶體晶片25(以下簡稱為「記憶體晶片」)可以是NAND晶片(例如,「快閃記憶體」、「NAND快閃記憶體」或「NAND」)。存儲系統10可以通過記憶體控制器20與主機15通信,其中記憶體控制器20可以經由一個或多個記憶體溝道30-1、30-2、30-3、......、30-n連接到一個或多個記憶體晶片25-1、25-2、25-3、......、25-n。在一些實施例中,每個記憶體晶片25可以由記憶體控制器20經由一個或多個記憶體溝道30-1、30-2、30-3、......、30-n來管理。
在一些實施例中,主機15可以包括電子設備的處理器,例如中央處理單元(CPU),或片上系統(SoC),例如應用處理器(AP)。主機15可以發送要存儲在存儲系統10中的資料和/或可以從存儲在存儲系統10中取回資料。
在一些實施例中,記憶體控制器20可以處理從主機15接收的I/O(input/ouput)請求,確保資料完整性和高效存儲,並管理記憶體晶片25。為了執行這些任務,記憶體控制器20可以運行韌體21,韌體21可以由記憶體控制器20的一個或多個處理器22(例如,微控制器單元,CPU)執行。例如,記憶體控制器20可以運行韌體21以將邏輯位址(例如,由與主機資料相關聯的主機使用的位址)映射到記憶體晶片25中的物理位址(例如,存儲資料的實際位置)。記憶體控制器20還運行韌體21來管理記憶體晶片25中的有缺陷的存儲塊,其中韌體21可以將邏輯位址重新映射到不同的物理位址,即將資料移動到不同的物理位址。記憶體控制器20還可包括一個或多個記憶體23(例如DRAM、SRAM、EPROM等),記憶體23可用於存儲韌體21使用的各種中繼資料。在一些實施例中,記憶體控制器20還可以通過除錯碼(error correction/correcting code, ECC)引擎29執行錯誤恢復。ECC用於檢測和糾正每個記憶體晶片25內發生的原始位元錯誤。
在一些實施例中,記憶體溝道30可以通過資料匯流排在記憶體控制器20和每個記憶體晶片25之間提供資料和控制通信。記憶體控制器20可根據晶片使能信號來選擇記憶體晶片25之一。
在一些實施例中,圖1中的每個記憶體晶片25可以包括一個或多個記憶體管芯100,其中每個記憶體管芯可以是3D NAND記憶體。
在一些實施例中,記憶體控制器20和一個或多個記憶體晶片25可以集成到各種類型的存放裝置中,例如,被包括在同一封裝中,例如通用快閃記憶體(universal Flash storage,UFS)封裝或eMMC封裝。也就是說,存儲系統10可以被實施並封裝到不同類型的終端電子產品中。在如圖2A所示的一個示例中,記憶體控制器20和單個記憶體晶片25可以集成到存儲卡26中。存儲卡26可以包括PC卡(PCMCIA,個人電腦記憶體卡國際協會)、CF(Compact Flash)卡、智慧媒體(Smart Media,SM)卡、記憶棒、多媒體卡(MMC、RS-MMC、MMCmicro)、SD 卡(SD、miniSD、microSD、SDHC)、UFS等。記憶體卡26還可以包括將記憶體卡26與主機(例如,圖1中的主機15)耦合的記憶體卡連接器24。在圖2B所示的另一示例中,記憶體控制器20和多個記憶體晶片25可以集成到固態硬碟(solid state drive,SSD)27中。SSD 27還可以包括將SSD 27與主機(例如,圖1中的主機15)耦合的SSD連接器28。
圖3示出了根據一些實施例的記憶體管芯100的俯視圖。圖3中所示的示例配置是作為非限制性示例給出的,並且應當理解,記憶體是可擴展的。在一些實施例中,記憶體管芯100可以包括一個或多個存儲面101,存儲面101中的每個存儲面可以包括多個存儲塊103。相同和併發的操作可以在每個存儲面101處進行。存儲塊103(存儲塊103大小可以是百萬位元組(MB))是執行擦除操作的最小大小。記憶體管芯100可以包括例如四個存儲面101。每個存儲面101可以包括例如六個存儲塊103。每個存儲塊103可以包括多個存儲單元,其中每個存儲單元可以通過諸如位元線和字元線的互連來定址。位元線和字元線可以垂直地佈局(例如,分別在行和列中),從而形成金屬線的陣列。在圖3中,位元線和字元線的方向分別被標記為「BL」和「WL」。在本發明內容中,存儲塊103也被稱為「記憶體陣列」或「陣列」。記憶體陣列是記憶體設備中執行存儲功能的核心區域。
在一些實施例中,記憶體管芯100還可以包括週邊區域105、圍繞存儲面101的區域。週邊區域105可以包括許多數位、類比和/或混合信號電路以支援記憶體陣列的功能,例如,頁面緩衝器、行和列解碼器以及感測放大器。週邊電路使用主動和/或被動半導體器件,例如電晶體、二極體、電容器、電阻器等,這對於本領域的通常知識者來說是顯而易見的。
在一些實施例中,圖3所示的記憶體管芯100中的存儲面101的佈置以及每個存儲面101中的存儲塊103的佈置僅作為示例,上述佈置並不限制本發明內容的範圍。
图4示出了根据一些实施例的存储器管芯100的示意图。在一些实施例中,記憶體管芯100可以包括一個或多個存儲塊103(例如,103-1、103-2、103-3)。每個存儲塊103可以包括多個存儲串212。每個存儲串212包括多個存儲單元340。共用同一字元線的存儲單元340形成存儲頁432。存儲串212還可以在每一端包括至少一個場效應電晶體(例如,MOSFET),場效應電晶體分別由下選擇閘(lower select gate,LSG)332和上選擇閘(top select gate,TSG)334控制。頂部選擇電晶體334-T的汲極端子可以連接至位元線341,而下部選擇電晶體332-T的源極端子可以連接至陣列公共源(ACS)430。ACS 430可以由整個存儲塊中的存儲串212共用,並且也被稱為公共源線。
在一些實施例中,記憶體管芯100還可以包括週邊電路,該週邊電路可以包括許多數位、類比和/或混合信號電路用於支援存儲塊103的功能,例如,頁緩衝器/感測放大器50、行解碼器/字元線驅動器40、列解碼器/位元線驅動器52、控制電路70、電壓發生器65以及輸入/輸出緩衝器55。這些電路可以包括主動和/或被動半導體器件,例如電晶體、二極體、電容器、電阻器等,這對於本領域的通常知識者來說是顯而易見的。
在一些實施例中,存儲塊103可以經由字元線(「WL」)333、下選擇閘極(「LSG」)332和頂部選擇閘極(「TSG」)334與行解碼器/字元線驅動器40耦合。存儲塊103可以經由位元線(「BL」)341與頁緩衝器/感測放大器50耦合。行解碼器/字元線驅動器40可以回應於由控制電路70提供的X路徑控制信號來選擇記憶體管芯100上的存儲塊103之一。行解碼器/字元線驅動器40可以根據X路徑控制信號將從電壓發生器65提供的電壓傳送到字元線。在讀取操作和編程操作期間,行解碼器/字元線驅動器40可以根據從控制電路70接收到的X路徑控制信號將讀取電壓V
read和編程電壓V
pgm傳輸到所選擇的字元線,並將通過電壓V
pass傳輸到未選擇的字元線。
在一些實施例中,列解碼器/位元線驅動器52可以根據從控制電路70接收的Y路徑控制信號將禁止電壓V
inhibit傳送到未選擇的位元線並且將所選擇的位元線連接到地。換言之,列解碼器/位元線驅動器52可以被配置為根據來自控制電路70的Y路徑控制信號來選擇或取消選擇一個或多個存儲串212。頁緩衝器/感測放大器50可以被配置為根據來自控制電路70的控制信號Y路徑控制從存儲塊103讀取資料以及向存儲塊103編程(寫入)資料。例如,頁緩衝器/感測放大器50可以將要編程的資料的一頁存儲到一個存儲頁432中。在另一個示例中,頁緩衝器/感測放大器50可以執行驗證操作以確保資料已經被正確地編程為每個存儲單元340中。在又一個示例中,在讀取操作期間,頁緩衝器/感測放大器50可以感測流過位元線341的電流,該電流反映了存儲單元340的邏輯狀態(即,資料)並將小信號放大到可測量的放大率。
在一些實施例中,輸入/輸出緩衝器55可以從/向頁緩衝器/感測放大器50傳送I/O資料,以及將位址ADDR或命令CMD傳送到控制電路70。在一些實施例中,輸入/輸出緩衝器55可以用作記憶體控制器20(在圖1中)和記憶體晶片25上的記憶體管芯100之間的介面。
在一些實施例中,控制電路70可以回應於由輸入/輸出緩衝器55傳送的命令CMD來控制頁緩衝器/感測放大器50和行解碼器/字元線驅動器40。在編程操作期間,控制電路70可以控制行解碼器/字元線驅動器40和頁緩衝器/感測放大器50來對所選擇的存儲單元進行編程。在讀取操作期間,控制電路70可以控制行解碼器/字元線驅動器40和頁緩衝器/感測放大器50來讀取所選擇的存儲單元。X-路徑控制信號和Y-路徑控制信號包括行位址X-ADDR和列地址Y-ADDR,行位址X-ADDR和列位址Y-ADDR可用於定位存儲塊103中的所選擇的存儲單元。行位址X-ADDR可以包括頁索引PD、塊索引BD和平面索引PL以分別識別存儲頁432、存儲塊103和存儲面101(在圖3中)。列位址Y-ADDR可以識別存儲頁432的資料中的位元組或字元。
在一些實施例中,電壓發生器65可以在控制電路70的控制下產生要提供給字元線和位元線的電壓。電壓發生器65產生的電壓包括讀取電壓V
read、編程電壓V
pgm、通過電壓V
pass、禁止電壓V
inhibit等。
注意,圖1、圖2A-圖2B和圖3-圖4中的存儲系統10和記憶體管芯100中的電子組件的佈置被示為非限制性示例。在一些實施例中,存儲系統10和記憶體管芯100可以具有其他佈局並且可以包括附加組件。圖4中所示的記憶體管芯100上的元件(例如,控制電路70、I/O緩衝器55)也可以移出記憶體管芯100,作為存儲系統10中的獨立電氣元件。圖4中所示的記憶體管芯100上的元件(例如,控制電路70、I/O緩衝器55)也可以移動到存儲系統10中的其他元件,例如,控制電路70的一部分可以與記憶體控制器20組合,反之亦然。
圖5示出了根據一些實施例的3D記憶體結構500的透視圖。在一些實施例中,記憶體管芯100可以是3D NAND記憶體,並且3D記憶體結構500可以是記憶體管芯100的一部分,例如在圖3中的區域108中。3D記憶體結構500可以包括階梯區域210和溝道結構區域211。溝道結構區域211可以包括多個存儲串212,所述多個存儲串212中的每個存儲串包括多個堆疊的存儲單元340。階梯區域210可以包括階梯結構。
一些實施例中,3D記憶體結構500可以包括基板330、在基板330上方的絕緣膜331、在絕緣膜331上方的一層下選擇閘(LSG)332以及多層控制閘333(也被稱為「字元線(WL)」),多層控制閘333堆疊在LSG 332的頂部以形成由交替的導電和電介質層組成的膜堆疊335。為了清楚起見,在圖5中未示出與控制閘極層相鄰的電介質層。
在一些實施例中,每一層的控制閘極通過膜堆疊335由狹縫結構216-1和216-2隔開。3D記憶體結構500還可以包括在控制閘333的堆疊上的一層頂部選擇閘極 (TSG)334。TSG 334、控制閘333和LSG 332的堆疊也可以也被稱為「閘電極」。3D記憶體結構500還可以包括在相鄰的LSG 332之間的基板330的一些部分中的摻雜的源極線區域344。3D記憶體結構500的每個存儲串212可以包括延伸穿過絕緣膜331和交替的導電層和介電層組成的膜堆疊335的溝道孔336。存儲串212還可以包括在溝道孔336的側壁上的存儲膜337,在存儲膜337上方的溝道層338以及被溝道層338圍繞的芯填充膜339。存儲單元340(例如存儲單元340-1、存儲單元340-2、存儲單元 340-3)可以形成在控制閘333(例如控制閘333-1、控制閘333-2、控制閘333-3)和存儲串212的交點處。溝道層338的一部分可以對相應的控制閘進行回應,並且也被稱為存儲單元的溝道層 338。3D記憶體結構500還包括在TSG 334上方與存儲串212連接的多條位元線(BL)341。3D記憶體結構500還可以包括通過多個接觸結構214與閘電極連接的多個金屬互連線343。膜堆疊335的邊緣被配置成階梯形,以允許電連接到閘電極的每一層。
在圖5中,出於說明目的,示出了三層控制閘333-1、333-2和333-3以及一層TSG 334和一層LSG 332。在該示例中,每個存儲串212可以包括三個存儲單元340-1、340-2和340-3,三個存儲單元340-1、340-2和340-3分別對應於控制閘333-1、333-2和333-3。在一些實施例中,控制閘的數量和存儲單元的數量可以大於三個,以增加存儲容量。3D記憶體結構500還可以包括其他結構,例如,TSG切口、公共源接觸(即,陣列公共源)以及偽存儲串。為了簡單起見,這些結構未在圖5中示出。需要說明的是,圖5所示的3D記憶體結構500僅作為示例,這並不限制本發明的範圍,並且也可以採用任何其他合適的3D記憶體結構。
返回參考圖4,在一些實施例中,存儲塊103可以基於浮閘技術形成。在一些實施例中,可以基於電荷捕獲技術來形成存儲塊103。基於電荷捕獲的NAND快閃記憶體器可以提供高存儲密度和高固有可靠性。以邏輯狀態(「狀態」,例如,存儲單元340的閾值電壓V
th)形式的存儲資料取決於在存儲單元340的存儲膜337中捕獲的電荷載流子的數量。
在一些实施例中,在NAND闪存中,可以针对存储页432执行读取操作和写入操作(也被称为编程操作),并且可以针对存储块103执行擦除操作。
在一些實施例中,在NAND記憶體中,存儲單元340可以處於擦除狀態ER或編程狀態P1。最初,通過在控制閘333和溝道338之間實現負電壓差使得可以去除存儲單元340的存儲膜中捕獲的電荷載流子,可以將存儲塊103中的存儲單元340重置為擦除狀態ER作為邏輯「1」。例如,可以通過將存儲單元340的控制閘333設置為接地並向ACS 430施加高的正電壓(擦除電壓V
erase)來引起負電壓差。在擦除狀態ER(「狀態ER」)下,存儲單元340的閾值電壓V
th可以被重置為最低值。
在一些實施例中,在編程(即,寫)期間,控制閘333和溝道層338之間的正電壓差可以通過例如在控制閘333上施加編程電壓V
pgm(例如,10V和20V之間的正電壓脈衝)而建立,並且將相對應的位元線341接地。因此,電荷載流子(例如,電子)可以被注入到存儲單元340的存儲膜中,從而增加了存儲單元340的閾值電壓V
th。因此,存儲單元340可以被編程為編程狀態P1(「狀態P1」或邏輯「0」)。
在一些實施例中,可以通過測量或感測存儲單元的閾值電壓V
th來確定存儲單元的狀態(例如,狀態ER或狀態P1)。在讀取操作期間,可以在存儲單元的控制閘333上施加讀取電壓Vread,並且可以在位元線341處測量流過存儲單元的電流。可以在未選擇的字元線上施加通過電壓Vpass以接通未選擇的存儲單元。
在一些實施例中,NAND快閃記憶體可以被配置為在單層單元快閃記憶體(SLC)模式下操作。為了增加存儲容量,NAND快閃記憶體還可以被配置為在多層單元快閃記憶體(MLC)模式、三層單元快閃記憶體(TLC)模式、四層單元快閃記憶體(QLC)模式或任意這些模式的組合中操作。在SLC模式下,存儲單元存儲1位元並具有兩個邏輯狀態(「狀態」),邏輯 {1和0},即狀態ER和P1。在MLC模式下,一存儲單元存儲2個位元,並且具有四個邏輯狀態,邏輯 {11、10、01和00},即狀態ER、P1、P2和P3。在TLC模式下,一存儲單元存儲3個位元,並且具有8個邏輯狀態,邏輯{111、110、101、100、011、010、001、000},即狀態ER和狀態P1-P7。在QLC模式下,存儲單元存儲4個位元,並且具有16個邏輯狀態。存儲系統10(參見圖1)的記憶體控制器20可以將從主機15接收的資料轉換成記憶體管芯100上的存儲單元的相對應的邏輯狀態,反之亦然。
圖6示出了根據一些實施例的以三層單元快閃記憶體(TLC)模式編程的NAND快閃記憶體的閾值電壓V
th分佈。在一些實施例中,存儲單元的每個狀態可以對應於閾值電壓Vth的特定範圍,其中每個狀態的閾值電壓V
th分佈可以用機率密度來表示。在一些實施例中,八個TLC狀態可以通過使用增量階躍脈衝演算法(incremental step pulse programming,ISPP)方案來編程,其中編程電壓V
pgm可以通過添加步進脈衝Vstep來遞增地增加。因此,八個TLC狀態可以從具有較低閾值電壓的狀態P1到具有最高閾值電壓的狀態P7進行編程。
在一些實施例中,在編程之後,可以在驗證過程中通過使用一個或多個讀取參考電壓V
R1-V
R7來驗證八個TLC狀態ER和P1-P7。通過將讀取參考電壓V
R1-V
R7中的一個或多個施加到目標存儲單元的控制閘,可以確定存儲單元的閾值電壓V
th的範圍。例如,為了驗證存儲單元是否處於狀態ER,可以使用讀取參考電壓V
R1。如果目標存儲單元處於狀態ER,則目標存儲單元的閾值電壓V
th低於讀取參考電壓V
R1。目標存儲單元可以被打開並在溝道中形成導電路徑。如果目標存儲單元處於狀態P1-P7中的任一狀態,則目標存儲單元的閾值電壓V
th高於讀取參考電壓V
R1。目標存儲單元由此被關斷。通過經由頁緩衝器/感測放大器50在相對應的位元線上測量或感測通過目標存儲單元的電流,可以驗證閾值電壓V
th或目標存儲單元的狀態。
在一些實施例中,如上所述,為了確定存儲在SLC模式中的兩個狀態ER和P1,僅依靠讀取參考電壓V
R1就足夠了。為了確定MLC模式下的四種狀態ER和P1-P3,可以使用讀取參考電壓V
R1、V
R2和V
R3。為了確定TLC模式的八個狀態ER和P1-P7,可以使用讀取參考電壓 V
R1-V
R7。例如,在TLC模式下,狀態ER的閾值電壓低於V
R1,而狀態P7的閾值電壓高於V
R7,其中狀態P1的閾值電壓介於V
R1和V
R2之間。可以類似地確定狀態P2-P6。
圖7示出了根據一些實施例的用於將存儲單元編程為目標邏輯狀態(例如,狀態P1)的處理流程700。應當意識到,處理流程700不是窮舉的,並且也可以在任何圖示的操作步驟之前、之後或之間執行其他操作步驟。在一些實施例中,處理流程700的一些操作步驟可以省略或包括其他操作步驟,為簡單起見,在此不再贅述。在一些實施例中,處理流程700的操作步驟可以以不同的循序執行和/或變化。
在一些實施例中,在操作步驟S705處,可以重置編程循環計數(PLC),例如,PLC=0。當記憶體控制器20(圖1所示)向記憶體管芯100發送命令以用於對記憶體管芯100上的存儲單元進行編程時,可以開始操作步驟S705。
在操作步驟S710處,通過將編程電壓V
pgm施加到存儲單元的字元線來對存儲單元進行編程。並且PLC可以在操作步驟S715處加1,即PLC=PLC+1。可以根據存儲單元的目標邏輯狀態來選擇編程電壓V
pgm,其中目標邏輯狀態取決於由記憶體控制器20發送的編程資料。
在操作步驟S720處,通過在存儲單元的字元線上施加第一讀取參考電壓並在相對應的位元線處測量流過存儲單元的電流,可以將存儲單元的閾值電壓V
th與第一讀取參考電壓(也被稱為編程驗證電平)進行比較。例如,如果存儲單元將被編程為目標邏輯狀態P1,則可以使用第一讀取參考電壓V
R1(參見圖6),因為對於狀態P1,通過條件為:存儲單元的閾值電壓處於讀取參考電壓V
R1和V
R2之間。
在操作步驟S725處,確定存儲單元的閾值電壓V
th是高於還是低於第一讀取參考電壓V
R1。如前所述,如果存儲單元的閾值電壓V
th低於第一讀取參考電壓V
R1,則存儲單元可以導通,從而在溝道中形成導電路徑。由頁緩衝器/感測放大器50(在圖4中)在相對應的位元線處測得的電流相對較高。如果存儲單元的閾值電壓V
th高於第一讀取參考電壓V
R1,則存儲單元被關斷並且由頁緩衝器/感測放大器50在相對應的位元線處測得的電流相對較低。
如果存儲單元的閾值電壓V
th被確定為低於第一讀取參考電壓V
R1,則處理流程700進行到操作步驟S730,在該步驟中檢查PLC是否小於最大值PLC
max。
在一些實施例中,最大值PLC
max可以是預定值,例如PLC
max=25。在一些實施例中,最大值PLC
max可以根據在預篩選編程測試期間跨不同記憶體管芯選擇的一組存儲單元的PLC來確定。
如果PLC小於PLC
max,則在操作步驟S735處,編程電壓V
pgm可以增加ΔV量,使得編程電壓V
pgm=V
pgm+ΔV。並且在操作步驟S710處,可以利用增加的編程電壓V
pgm再次對存儲單元進行重新編程。
可以重複操作步驟S710-S735直到針對存儲單元達到期望目標閾值電壓V
th。然而,如果在操作步驟S730處,已經達到PLC
max但存儲單元仍未被編程為目標邏輯狀態,則在步驟S740處可以識別存儲單元編程失敗。
如果在操作步驟S725處確定存儲單元的閾值電壓V
th高於第一讀取參考電壓V
R1,則可以在操作步驟S745處將存儲單元的閾值電壓V
th與第二讀取參考電壓進行比較。如果存儲單元要被編程為目標邏輯狀態P1,則可以使用第二讀取參考電壓V
R2(參見圖6)。如果在操作步驟S750處確定存儲單元的閾值電壓V
th低於第二讀取參考電壓V
R2,則在操作步驟S755處可以將存儲單元識別為編程通過(即,被編程為目標邏輯狀態)。在只有狀態ER和P1的SLC模式下,可以省略第二參考電壓。
然而,如果在操作步驟S750處確定存儲單元的閾值電壓V
th高於第二讀取參考電壓VR2,則可以在步驟S740處識別存儲單元編程失敗,因為在編程期間,存儲單元的閾值電壓可以通過在存儲單元控制閘極(即相對應的字元線)上施加編程電壓V
pgm來增加,但不能降低。在3D NAND 記憶體中,在存儲單元被擦除並被重置為狀態ER之後,可以將存儲單元重新編程為具有較低閾值電壓的邏輯狀態。擦除操作將存儲塊中的所有存儲單元重置為狀態ER,因為同一存儲塊中的存儲單元共用相同的陣列公共源430。
返回參考圖4,在一些實施例中,雖然存儲塊(例如,存儲塊103)是3D NAND記憶體中的最小可擦除單元,但存儲頁(例如,存儲頁432)是用於讀取和編程操作的最小可定址單元。在讀取和編程操作期間,可以根據控制電路70接收到的位址ADDR中包含的頁索引PD和塊索引BD來讀取或編程所選擇的存儲塊的存儲頁面中的資料(即邏輯狀態)。通過在相對應的位元線341上施加禁止電壓V
inhibit,可以對已經達到目標邏輯狀態(即,目標閾值電壓)的存儲單元禁止進一步編程。
以上,已經描述了關於3D NAND記憶體的結構及3D NAND記憶體的功能的實施例。在一些實施例中,希望提供可靠的存儲單元用於編程以及隨後的擦除和重新編程。參考圖7的方法示出了如何在編程操作之後驗證存儲單元的示例。在處理流程700結束時,存儲單元可以使驗證過程通過或失敗。本領域的技術人員將意識到,一旦存儲單元上的編程和驗證操作已經結束(通過或失敗),編程和驗證操作可以移動到下一個存儲單元(即,處理流程700可以在下一個存儲單元處重新開始)。在一些實施例中,移動到下一個存儲單元可以包括「屏蔽」完成的存儲單元,使得演算法反覆運算處理流程700不會錯誤地在同一存儲單元上重複。屏蔽存储单元(或屏蔽記憶體位元)可以被描述為暫時地或永久地標記或標識存儲單元,以便可以基於標記來調整(例如,跳過)未來的操作。在一個示例中,當發現不可糾正的故障時,可以永久屏蔽位元。NAND控制器可以禁止進一步使用有缺陷的存儲單元。上面參考圖4描述了遮罩的一個示例以及在相對應的位元線341上使用禁止電壓V
inhibit。
在一些實施例中,處理流程700對於要接收編程(即,將存儲單元的狀態從ER改變到更高狀態(例如P1)的操作)的存儲單元來說可能是足夠的。根據處理流程700,開始於S720的驗證過程可以跟隨在S710處的編程步驟(例如,用編程電壓對存儲單元進行編程,然後驗證正確性)之後。但是,要保持在ER狀態的存儲單元呢?在示例場景中,尋求將8位元串寫入存儲頁432(如圖4所示)之一。8位元串可以包括例如與電子狀態{P1 ER ER P1 ER P1 ER ER}相對應的位元。可以意識到,接收到P1狀態的存儲單元將經歷步驟S710,並且隨後通過步驟S720和之後的步驟得到驗證。然而,保持在ER狀態的單元將不經歷步驟S710和S720。通常的做法是在將新資料寫入塊之前擦除存儲塊(例如,通常,塊中的所有存儲單元在編程開始之前都以ER狀態開始)。因此,為了將編程資料的ER狀態寫入存儲單元,NAND對存儲單元不進行任何操作(即,存儲單元被跳過,這依賴於存儲單元已經處於ER狀態的假設)。
重申一下,在一些實施例中,對頁進行編程並不等同於對頁面中的每個存儲單元進行編程。一些單元可以跳過接收編程操作。因此,對頁進行編程可以包括僅對頁面中的存儲單元中的一個或多個進行編程。驗證在存儲單元被編程時執行(例如,ER→P1可以觸發驗證操作),而不是在存儲單元保持在ER時執行(例如,ER→ER存儲單元未被編程,並且因此可以跳過驗證)。其中,可能由於跳過驗證而出現問題。如果跳過的存儲單元中的現有狀態不是預期的ER(例如,存儲單元具有持續的P1狀態),這可能是一個問題。在這種情況下,寫入操作將假定存儲單元處於ER狀態,而實際上並非如此。反過來,記憶體控制器會假設「寫入」操作ER→ER已成功執行(由於缺乏驗證),但實際發生的是P1狀態持續存在(P1→P1)。當以後從這個存儲單元中讀取資料時,會發現資料已經損壞。因此,需要一種方法和系統,以便在出現不可糾正的除錯碼(UECC)之前提供資料保護,從而可以使資料丟失的機會最小化。
為了減輕如上所述的錯誤,可以引入操作以使諸如處理流程700的處理更加穩健。
圖8A示出了根據一些實施例的用於在NAND記憶體中存儲資料和對資料自驗證的處理流程800。在一些實施例中,方法步驟中描述的功能可以由NAND記憶體設備本身上的電路(例如,一個或多個處理器22(如圖1所示)、記憶體晶片25中的控制電路70(如圖4所示等))來執行。在步驟S810處,可以將資料存儲在NAND記憶體的頁面中。要存儲的資料可以包括一系列位元(例如,二進位資料),這也可以被稱為編程資料(例如,要在頁面中被編程的資料)。NAND記憶體的頁面可以包括存儲單元(例如,頁面432(如圖4所示))。存儲可以包括根據編程資料對NAND記憶體的所選擇頁面進行編程。所選擇頁面包括與字元線相對應的多個存儲單元。對所選擇頁面的編程可以包括使用多個編程電壓的多個編程操作(步驟S810)。對所選擇頁面的編程還可以包括多個驗證操作(步驟S820)。可以在多個編程操作中的相對應的一些編程操作之後執行多個驗證操作中的一些驗證操作,以根據編程資料確定多個存儲單元的經編程存儲單元是否具有閾值電壓電平。在步驟S820處,可以執行對存儲單元的編程的驗證以確定編程是否被正確執行或者是否應該再次執行步驟S810(參見例如步驟S735(圖7所示))。驗證可以包括在存儲單元之中的經編程存儲單元的字元線上施加參考電壓並在相對應的位元線處測量流過存儲單元之中的經編程存儲單元的電流(參見例如S720(圖7所示))。
在一些實施例中,在步驟S860處,可以在步驟S820的驗證之後遮罩存儲單元之中的經編程存儲單元(例如,如果結果是通過,則遮罩該存儲單元以用於資料存儲過程的剩餘部分;如果結果是失敗,則在S810處重新啟動)。在步驟S865處,可以執行檢查以確定在頁中目標數量的位元是否已經根據編程資料被編程(例如,檢查以查看編程資料的存儲完整還是不完整)。換言之,執行判斷步驟,以確定根據編程資料的最終位元是否已被編程在頁面中(例如,最終位元可以是根據編程資料在頁面中被編程的最後一個非ER狀態)。若存儲尚未結束,則過程可返回步驟S810並繼續移至後續的存儲單元以儲存編程的剩餘部分。應當意識到,處理流程800可以包括基於多個驗證操作中的每個驗證操作返回通過結果來確定對所選擇頁面的編程的完成。確定編程的完成的另一個條件可以是考慮用於存儲編程資料的n位元的存儲單元,其中n是大於1的整數。該確定可以基於將編程資料的第n個位元編程在頁面中。
在一些實施例中,在步驟870處,可以通過對頁面執行讀取操作並將從自驗證讀取操作確定的資料與用於啟動處理流程800的編程資料進行比較來執行另一驗證操作。圖8A的步驟可以作為NAND控制器(例如,控制器20(圖1所示))中的韌體方法來實施。
在一些實施例中,在步驟S875處,結束將資料存儲在NAND頁面中的處理流程800。該結束可以由來自附加驗證步驟S870的通過或失敗確定來標記。通過/失敗確定可以基於由頁面上的讀取操作確定的存儲資料與用於啟動處理流程800的編程資料之間的精確匹配。在一些實施例中,通過/失敗確定可以基於失敗計數閾值。例如,如果失敗位元計數低於給定閾值,則NAND韌體可以確定通過結果。應當意識到,術語「低於閾值」也旨在包括「低於或等於閾值」的範圍,因為這兩個術語之間的差異僅僅是閾值的偏移(例如,低於10和低於或等於9是相同的)。類似的邏輯適用于術語「高於閾值」和「高於或等於閾值」。閾值可以基於要實施NAND記憶體的環境的需要或偏好進行調整。例如,具有多個冗餘備份機制的資料存儲中心可以使用與個人電腦上的使用者不同的閾值。
在一些實施例中,圖8B中所示的時間線示出了迄今為止所描述的過程的示例。例如,可能存在多個步驟S810和S820的迴圈以對NAND記憶體的頁面中的多個存儲單元進行編程和驗證(為清楚起見,其他步驟未在時間線上示出,但應理解為存在)。在循環結束時(即當編程資料已被完全傳送到頁面時),執行步驟S870以使用NAND記憶體的內部讀取能力來驗證所存儲的資料。然後在步驟S875處結束對NAND存儲的頁面的編程。
之前提到過,在一些實施例中,在處理流程700(圖7所示)不執行的情況下,例如,當待寫入的資料是ER狀態,但相對應的存儲單元中存在的實際狀態是P1等時,處理流程800可用于增加NAND記憶體的穩健性。當例如第一編程將資料存儲在頁上但隨後第二編程將該第二編程的資料存儲在同一頁面上時(例如,記憶體的過度編程),可能會出現這種實例。過度編程錯誤可能是由糟糕的編碼引起的。無論是否執行步驟S820(或圖7的步驟720),步驟870的自驗證都能夠讀取整頁,從而檢測未執行的步驟S820可能遺漏的任何錯誤。以這種方式可以防止資料損壞。例如,如果在步驟S875處發出失敗結果,則記憶體控制器中的韌體可以選擇不同的頁面來存儲編程資料。如果步驟S870處的讀取操作返回失敗結果(例如,遮罩NAND記憶體的區域),則NAND記憶體還可以防止進一步使用NAND記憶體的一個或多個故障區域。此外,步驟S870可以是在資料存儲過程結束時的單個實例,這可以導致比例如在每個循環之後都執行讀取驗證的時間負擔小得多。
在一些實施例中,步驟S870的NAND韌體實施允許在資料存儲操作的早期階段快速執行附加驗證。由於頁面的讀取是由硬體對NAND記憶體本身執行的,因此讀取操作也可以被稱為內部讀取,或自驗證。相反,如果外部主機電腦要執行步驟S870,則所產生的額外時間負擔可能高到足以阻止執行步驟S870。
在一些實施例中,步驟S870的額外驗證可能伴隨某些缺點。例如,即使內部韌體實施方式比主機韌體實施方式更快,但驗證步驟S870仍然可以將讀取操作的時間增加到NAND記憶體的消費者可能不期望的程度。畢竟,步驟S870是額外的讀取步驟,並且可以為資料存儲過程增加例如數十微秒。因此,NAND記憶體韌體可以實施為具有允許調整NAND韌體如何執行步驟S870的特徵。也就是說,在一些實施例中,該方法可以包括在NAND記憶體處接收輸入以調整對資料在頁面中的存儲進行的驗證。
在一些實施例中,輸入可以對執行步驟S870的讀取操作以及限制NAND記憶體的哪些區域將接收步驟S870進行允許、禁用、時間偏移等。NAND記憶體的某些區域可能比其他區域更可靠。因此,輸入可用於指定NAND記憶體的一個或多個區域以允許或禁止執行步驟S870的讀取操作。一個或多個指定的區域可以包括例如用於SLC的區域、用於MLC的區域、用於TLC的區域、用於QLC的區域、頁面、塊或平面中的至少一項,僅舉幾個非限制性的例子。作為示例,輸入可以包括用於對第一SLC部分、第一TLC部分和第二TLC部分以及特定頁面執行自驗證的指令。作為另一示例,輸入可以包括用於對特定QLC部分執行自驗證的指令。諸如「元件1、元件2和元件3中的至少一項」等術語可以指代諸如下列各項的排列:元件1中的一項或多項;元件2中的一項或多項;元件1中的一項或多項以及元件2中的一項或多項;元件1中的一項或多項以及元件3中的一項或多項;元件2中的一項或多項以及元件3中的一項或多項;或者元件1中的一項或多項,元件2中的一項或多項,以及元件3中的一項或多項。為具有更少或更多元件的組設想了相對應的排列。
在一些實施例中,輸入可以實施為用於執行資料存儲操作的用戶提供的命令的前綴。可以存在一個或兩個位元用於指定SLC/MLC/TLC/QLC模式。例如,可以存在三個位元用於指定TLC頁面的上頁面、中間頁面或下頁面中的任何一個。
在一些實施例中,NAND韌體可以確定何時以及何處以自動化方式實施自驗證(無需用戶輸入)。例如,NAND記憶體可以實施對哪些存儲單元或存儲單元組有缺陷或有其他風險的記錄。基於記錄,當將資料存儲在已知具有相關聯的風險的存儲單元中時,NAND韌體可以實施自驗證。
在一些實施例中,輸入還可以調整在資料存儲過程期間如何處理某些資料(例如,延遲清除經高速緩存的資料)。
圖9示出了根據一些實施例的用於比較使用NAND韌體執行的調整的時間線900和902。在一些實施例中,NAND記憶體產品可以具有高速緩存系統實施方式。高速緩存系統可能與NAND韌體自驗證特徵(例如,圖8B中的步驟S870的讀取操作)相衝突。因此,設想NAND韌體可以取決於是否在NAND記憶體中實施快取記憶體來調整操作。對NAND操作的調整可以通過用戶輸入或通過NAND韌體中的自動過程來控制。
在一些實施例中,時間線900示出了在NAND記憶體的快取記憶體區域中創建高速緩存資料傳輸A 904。然後由編程A使用高速緩存資料傳輸A,編程A在時間線900中表示為編程繁忙A 906。例如,編程繁忙A 906可以是對NAND記憶體中的頁的存儲單元進行編程的操作(例如,根據處理流程800(圖8所示))。在編程繁忙A 906 期間,可以針對編程B的未來執行準備另一個高速緩存資料傳輸B 908,編程B在時間線900中表示為編程繁忙B 910。一旦編程繁忙A 906結束,高速緩存資料傳輸B 908的準備允許立即執行編程B。一個問題是高速緩存資料傳輸B 908的創建會覆寫(overwritten)現有的高速緩存資料傳輸A 904。畢竟,高速緩存存儲被設計為很小,以用於快速和臨時存儲。然後,可能是編程繁忙A 906嘗試執行自驗證步驟S870(圖8所示),僅發現高速緩存已被編程B認領。注意,高速緩存的資料可以用於在步驟S870(圖8所示)處執行頁面讀取時進行比較的基礎。。
因此,在一些實施例中,當NAND記憶體採用高速緩存時,NAND韌體可以調整操作以便如時間線902中所示進行操作。時間線900和902在執行的過程方面是相似的,然而,時間線902將高速緩存資料傳輸B 908的創建移動到編程繁忙A 906之後的時序。值得注意的是,這是一種折衷,其中,高速緩存的時間節省被放棄,以允許使用NAND韌體自驗證。通過以這種方式安排高速緩存資料傳輸B 908的時序,編程繁忙A 906可以自由地包括步驟S870(圖8所示)而沒有發現被覆寫的高速緩存的風險。在一些實施例中,NAND韌體可以調整時序。例如,NAND韌體可以被配置為檢測高速緩存的使用,並且然後基於檢測來執行高速緩存資料傳輸B 908的創建的延遲。
先前提到,在一些實施例中,步驟S870(圖8所示)的NAND韌體實施允許在資料存儲操作的早期階段快速執行自驗證。此功能可用於改進除錯過程,例如,以修復與雙重編程相關的問題。
圖10示出了根據一些實施例的用於對NAND記憶體的頁面進行編程的處理流程1000。具體而言,圖10示出了其中發生雙重編程事件的NAND記憶體的一部分的三個快照。圖10的示例場景應該被理解為是非限制性的(例如,編程可以寫入NAND記憶體的多於或少於6頁,可能有其他方式導致雙重編程錯誤,等等)。在步骤S1002处,可以由一个或多个计算设备(例如,主机15(图1所示))执行第一指令集。第一指令集可以包括用於根據第一編程資料將資料存儲到NAND記憶體的頁面的指令。在圖10所示的示例中,第一指令集已經使記憶體控制器20(圖1所示)根據第一編程資料將資料存儲在Pg0-Pg6中(表示為Pg0 pgm-Pg6 pgm)。在步驟S1002處還示出了下一個存儲事件開始的位址。它由下一個編程指標1008表示,該指標指向Pg7(Pg7及以後的頁面處於擦除狀態(「ers」),準備好接收編程資料)。
在一些實施例中,在步驟S1004處,第二指令集可由一個或多個計算設備執行。第二指令集可以包括用於根據第二編程資料將資料存儲到NAND記憶體的頁面的指令。然而,由於對資料存儲操作進行編碼的錯誤,編程指標被錯誤定址到Pg4,Pg4存儲了與第一編程資料相對應的資料。該事件可以被稱為雙重編程事件。錯誤定址由錯誤編程指標1008'表示,並且相對應的被覆寫頁面表示為Pg4雙重編程1010。
在一些實施例中,存儲在Pg4中的資料直到稍後時間(例如,幾分鐘後、幾天後等)才被一個或多個計算設備使用。在步驟S1006處,一個或多個計算設備執行從NAND記憶體的Pg4讀回資料的操作。由於Pg4中存在不可糾正的除錯碼,因此讀取失敗。Pg4處的資料有很高的可能性在此時已損壞,既不表示第一編程資料也不表示第二編程資料。發生這種情況是因為,如上所述,接收ER狀態的存儲單元被跳過。例如,具有被第二編程資料{P1 ER P1 ER}不正確覆寫的狀態{ER P1 ER P1}的存儲單元可能導致存儲單元實際上存儲{P1 P1 P1 P1}。ER狀態的跳過造成第一和第二編程資料的P1狀態組合,從而導致所存儲資料的損壞(不表示第一編程資料或第二編程資料的無用資料)。
在一些實施例中,為了糾正錯誤定址的錯誤,例如參考圖10所描述的錯誤,開發者可以實施除錯措施來確定錯誤的原因。一旦確定了錯誤的原因,就可以對指令代碼進行適當的糾正。再次強調,存儲在 Pg4 中的資料可能要到幾天後才被讀取。這會給除錯工作帶來很大的障礙,因為錯誤定址的發現可能要發生晚得多。在雙重編程事件和隨後的讀取失敗之間的時間內可能會發生許多操作。由於開發人員沒有受益于追溯,因此開發人員別無選擇,只能懷疑所有操作都可能有問題。然後,開發人員可以為每個操作設置測試以排除名義上工作的操作。應當意識到,如果要執行的測試數量為數百或數千,這可能是繁瑣的過程。為了減少這種負擔,可以通過實施本文揭露的NAND自驗證實施例來增強除錯過程。
圖11示出了根據一些實施例的包括雙重編程事件的處理流程1100、1102和1104。通過比較每個處理流程的差異,顯而易見的是,本文實施例中的NAND自驗證方法可以通過在錯誤發生後立即檢測錯誤,從而顯著增強除錯過程。在一些實施例中,由一個或多個計算設備執行的程式遇到了UECC記憶體。錯誤的來源是未知的,例如,它可能是在從所執行的程式的NAND中讀取資料時代碼中的缺陷、一個或多個計算設備的邏輯中的缺陷、NAND記憶體中的錯誤、NAND韌體代碼中的缺陷,等等。為了確定UECC的原因,開發人員可以準備測試用例(例如,模擬)。測試用例可以包括遇到UECC的程式的執行,但要受到開發人員施加的特定約束(例如,測試用例參數)。
在一些實施例中,流程1100可以包括步驟S1106、S1108、S1112和S1114。在步驟1106處,執行測試用例。在步驟S1108處,測試用例可以與終端使用者韌體(例如,旨在供消費者使用的韌體)交互,以便將資料存儲在NAND記憶體中,例如,使用處理流程700(圖7)。終端使用者韌體可以包括例如主機15(圖1所示)中的韌體和/或NAND記憶體中的韌體。在處理流程1100的上下文中,應當意識到,NAND韌體不實施NAND自驗證(例如,它被禁用或不存在)。在步驟S1112處,在NAND記憶體的頁面中發生雙重編程寫入(例如,Pg4雙重編程1010(圖10所示))。在步驟S1114處(可以是幾分鐘後、幾天後或更多),作為雙重編程的結果,遇到UECC讀取。在這種情況下,程式的開發者幾乎沒有獲得關於UECC是如何發生的額外資訊,除了在步驟S1114處被告知測試約束能夠產生UECC讀取。錯誤的可能嫌疑可以是在步驟S1106到S1114之間的時間由程式和韌體執行的任何操作。開發人員不知道在步驟S1112處的雙重編程事件,並且本發明內容的目標是發現它。
在一些實施例中,開發者可以實現處理流程1102,處理流程1102對處理流程1100具有一些增強。處理流程1102可以包括步驟S1106、S1110、S1112和S1116。步驟1106可以如前所述。現在的不同之處在於,在步驟S1110處,允許測試用例與除錯韌體(例如,由開發人員提供)交互。除錯韌體是一種權宜之計,試圖停止更接近可能導致UECC讀取的任何原因的電腦操作。除錯韌體可以包括例如這樣的指令:讀取測試用例中進程的某些輸出,並且然後當在輸出之一中發現異常時停止測試用例的運行。然而,在步驟S1112處,發生雙重編程錯誤,但寫入資料的驗證有一段時間沒有執行。在步驟S1116處,除錯過程檢測到異常並返回失敗結果,停止測試用例。在這種情況下,由開發人員實施的除錯過程被更好地設計為通過在處理流程1100的步驟S1114中檢測到UECC讀取事件之前的異常來排除可能的錯誤原因。然而,可以通過實施本文揭露的NAND自驗證實施例來進一步增強除錯過程,如在處理流程1104中。
在一些實施例中,使用除錯韌體的另一個問題是它會增加大量的執行時間和開銷。例如,除錯韌體可以被設置為引入冗餘的下一個編程指標,用於跟蹤下一個編程指標1008(圖10所示)。冗餘編程指標可以設置為指向虛擬層或深層。可以比較冗餘編程指標和下一編程指標1008以確定匹配或者是否發生資料損壞。此過程可能會添加大量除錯代碼並花費大量時間以到達故障點。這會導致高開銷,因為存在更多韌體代碼來檢查邏輯以查看NAND序列是否出現故障。此解決方案可能會更改韌體的大部分。韌體可以被看作是管道。每次執行冗餘編程指針的比較時,管道都會暫停,這會增加大量時間。
在一些實施例中,處理流程1104可以包括步驟S1106、S1110、S1112'和S1116。步驟1106和S1110可以如前所述。處理流程1104的不同之處在於啟用了經由NAND韌體的自驗證(例如,啟用了S870(圖8A所示)的讀取步驟)。在一些實施例中,步驟S870(圖8A所示)可以處於禁用狀態以提高系統性能,但可以在需要時啟用。例如,除錯韌體可以包括使NAND韌體開啟NAND自驗證特徵的指令。在步驟S1112'處,出現雙重編程錯誤。與先前呈現的處理流程相比,處理流程1104可以在讀回步驟處檢測經雙重編程的頁面。读回失敗,並且NAND自驗證過程發出失敗指示:NAND記憶體的特定頁面中的資料有錯誤。該指示可用於在接近雙重編程事件的時間點停止測試場景和除錯過程。該資訊對於快速識別代碼的哪一部分是造成雙重編程錯誤的原因很有價值。即,可以基於編程停止的時序來進行除錯。此外,與上述冗餘編程指針場景(增加大量時間和開銷)不同,使用步驟S870(圖8A所示)不會實施對韌體操作的如此廣泛的改變,並且時序影響不太嚴重。步驟S870是使用NAND記憶體的內部能力進行的快速頁面讀取。
可以用以下方式描述雙重編程事件和後續檢測方法。在一些實施例中,可以根據第一編程資料對NAND快閃記憶體設備的所選擇頁面進行編程。然後,可以根據第二編程資料對所選擇頁面進行編程。所選擇頁面可以包括與字元線相對應的存儲單元(例如,頁面432(圖4所示))。對所選擇頁面的編程可以包括使用多個編程電壓的多個編程操作(例如,步驟S710(圖7所示)或S810(圖8A所示))。對所選擇頁面的編程還可以包括多個驗證操作。可以在多個編程操作中的相對應的一些編程操作之後執行多個驗證操作中的一些驗證操作,以根據第一編程資料或第二編程資料確定多個存儲單元的經編程存儲單元是否具有閾值電壓電平(例如,步驟S720(圖7所示)或S820(圖8A所示))。
然後,在一些實施例中,可以使用與NAND記憶體相關聯的韌體對所選擇的頁面執行自驗證以確定所存儲的第一資料是否被覆寫(或者如果指令以不同的循序執行,則確定第二資料是否被覆寫)。該方法可以包括:在確定存儲在所選擇頁面處的資料被覆寫時發出失敗指示。自驗證可以包括執行由NAND快閃記憶體設備對所選擇頁面的內部讀取操作(例如,步驟S870(圖8A所示)),以確定存儲在所選擇頁面處的資料。
應當意識到,在一些實施例中,參考圖11描述的功能也可以併入參考其他附圖描述的特徵。例如,可以針對除錯韌體和/或NAND韌體提供用於調整讀取操作的執行(例如,啟用步驟S870(圖8A所示))的輸入。在另一個示例中,如果NAND記憶體具有快取記憶體系統,則NAND自驗證可以被配置為與前文參考圖9描述的快取記憶體特徵交互。在又一個示例中,輸入也可以用於限制將NAND記憶體中的針對其使用NAND自驗證的區域,如參考圖8A所描述的。
圖12示出了根據一些實施例的除錯雙重編程事件的時間線1200。在一些實施例中,時間線1200的上側表示與除錯韌體有關的事件。時間線1200的下側表示與程式的測試用例有關的事件。除錯韌體和測試用例可以實施前文參考圖11描述的特徵中的一個或多個特徵。
在一些實施例中,除錯韌體在時間1202開始。在時間1204,除錯韌體向NAND記憶體的韌體發送輸入,以啟用NAND自驗證,如前文參考圖8A、圖9和/或圖11所描述的。在時間1206,可以運行程式的測試用例。基於測試用例的要求,設想測試用例在該時間點啟動,或者測試用例先前啟動並在時間1206繼續運行。在時間1208,NAND自驗證特徵確定由於雙重編程事件導致的故障。在時間1210,除錯韌體和/或NAND韌體被指示停止。在時間1212,停止測試用例。在時間1214,除錯開始。由於測試用例和韌體在雙重編程事件後立即被停止,因此可以顯著簡化除錯步驟,因為更容易識別導致雙重編程事件發生的程式碼片段。
在一些實施例中,除錯可以由一個或多個計算設備(例如,主機15(圖1所示))執行。
在一些實施例中,本文揭露的NAND自驗證特徵可以在涉及用於防止資料損壞的資料備份的方法中實施。資料備份方案的一個示例可以包括存儲驅動器的RAID佈置(例如,使用物理驅動器、邏輯磁碟機或其組合)。存儲驅動器可以包括一個或多個NAND記憶體設備。RAID佈置可以依賴於每個塊末尾的所謂同位位元,以尋求保護。通常,RAID佈置依賴於控制器硬體支援來指示連結的存儲驅動器以冗餘佈置進行操作。額外的控制器硬體支援會導致額外的RAM和管芯尺寸成本。此外,可以限制每個同位元組提供的保護量(例如,每個同位元組一個資料錯誤)。
在一些實施例中,用於保護NAND記憶體中的資料的RAID佈置的替代方案可以是實施所謂的SLC備份。
圖13示出了根據一些實施例的用於執行SLC備份的處理流程1300。在一些實施例中,標準MLC編程、TLC編程或QLC編程將在NAND記憶體上執行。懷疑在NAND記憶體的一些部分中,用於MLC編程、TLC編程或QLC編程的某些存儲單元具有固有的相關聯的風險(例如,一個或多個存儲單元可能無法正確接收編程)。由於SLC編程比MLC編程、TLC編程或QLC編程更可靠,因此冗餘SLC編程將與原始MLC編程、TLC編程或QLC編程一起執行。
在一些實施例中,提供編程資料用於存儲在NAND記憶體中。在步驟S1302處,根據編程資料使用MLC編程、TLC編程或QLC編程(例如,使用處理流程700(圖7所示)中的步驟)對NAND記憶體的頁面進行編程。在步驟S1304處,使用一個或多個計算設備(例如,主機15(圖1所示))從NAND記憶體讀回經MLC編程、TLC編程或QLC編程的頁面。注意,主機韌體可以發出指令以從NAND記憶體讀取,而不是從NAND記憶體的韌體21(圖1所示)發起頁面讀取指令。在步驟S1306處,MLC編程、TLC編程或QLC編程也可以被編程在NAND記憶體中適當數量的SLC頁面中(例如,TLC編程資料可以被寫入三個SLC頁面)。被保存到NAND記憶體的SLC區域的編程資料可以為NAND記憶體的不太可靠的MLC區域、TLC區域或QLC區域中的資料提供可靠的備份。然而,與處理流程1300相關聯的時間負擔可能是不希望的,尤其是使用主機韌體執行讀回所花費的時間。
本文中揭露的NAND自驗證方法可用於修改SLC備份方案並縮短執行資料備份的時間負擔,從而提高NAND記憶體系統中的資料保護方法的性能。然而,在描述使用NAND自驗證方法的備份操作之前,首先描述一種用於識別NAND記憶體中不可靠區域的方法是有指導意義的。
圖14示出了根據一些實施例的用於識別NAND記憶體中的不可靠區域的處理流程1400。在一些實施例中,應當意識到,不可靠區域可以指NAND記憶體中存在無法正確對資料進行編程的風險的區域(例如,不可靠區域具有相關聯的資料編程失敗機率)。在一個非限制性示例中,可以將風險量化為閾值機率。低故障機率(例如,低於閾值)可以被認為是可靠的,反之亦然。例如,可以基於NAND韌體的使用者或開發者的需要來確定閾值機率。
在一些實施例中,在步驟S1402處,可以對NAND記憶體執行資料存儲測試。資料存儲測試可以包括例如將資料存儲在NAND記憶體的頁面中(例如,使用處理流程700(圖7所示))。資料存儲測試還可以包括從NAND記憶體的頁面讀回所存儲的資料。在步驟S1404處,可以對在步驟S1402中讀回的資料執行分析。該分析可以包括確定NAND記憶體中的讀取失敗區域。該分析可以包括生成一個或多個可靠和/或不可靠區域的清單。可以如上所述對可靠性和/或不可靠性進行量化(例如,基於故障機率)。在步驟S1406處,確定的可靠性/不可靠性區域可以存儲在和/或發送到NAND韌體,以通知後續的SLC備份過程。
圖15示出了根據一些實施例的用於在SLC備份過程中實現NAND自驗證的處理流程1500。在一些實施例中,提供編程資料以用於使用MLC編程、TLC編程或QLC編程存儲在NAND記憶體中。然而,與處理流程1300(圖13所示)相比,被識別為不可靠的NAND記憶體的區域可以遵循處理流程1500。可以使用例如處理流程1400(圖14所示)來確定不可靠區域。所提供的資料根據編程資料存儲在NAND記憶體的頁面中。
在一些實施例中,在步驟S1502處,可以根據編程資料對NAND記憶體的第一頁的存儲單元進行編程(例如,使用步驟S710(圖7所示)或S810(圖8A所示))。NAND記憶體的第一頁的存儲單元的編程可以使用SLC編程進行,SLC編程比MLC編程、TLC編程或QLC編程更可靠。
在一些實施例中,在步驟S1504處,可以執行驗證以確定對第一頁的存儲單元的編程是否被正確執行(例如,使用步驟S720(圖7所示)或S820(圖8A所示))。注意,編程資料最初是針對MLC編程、TLC編程或QLC編程提供的。因此,可以使用SLC編程對適當數量的附加頁面執行上述資料存儲操作(例如,QLC編程資料可以寫入四個SLC頁)。
在一些實施例中,在步驟S1506處,可以根據編程資料對NAND記憶體的第二頁的存儲單元進行編程(例如,使用步驟S710(圖7所示)或S810(圖8A所示))。NAND記憶體的第二頁的存儲單元的編程可以使用MLC編程、TLC編程或QLC編程來執行。在步驟S1502處,存儲在NAND記憶體的MLC區域、TLC區域或QLC區域中的資料與存儲在NAND記憶體的SLC區域中的資料相匹配。
在一些實施例中,在步驟S1508處,可以執行驗證以確定第二頁的存儲單元的編程是否被正確執行(例如,使用步驟S720(圖7所示)或S820(圖8A所示))。
在一些實施例中,在步驟S1510處,可以使用與NAND記憶體相關聯的韌體對第二頁執行讀取操作以驗證第二頁中資料的存儲(例如,NAND自驗證,類似於步驟S870(圖8A所示))。使用NAND內部韌體來驗證經編程的第二頁(即MLC頁、TLC頁或QLC頁),可以比使用主機韌體執行驗證更快地執行編程驗證(如在步驟S1304(圖13所示)中所做的那樣)。即,處理流程1500是SLC備份方法的一部分,包括不使用與被配置為執行SLC備份方法的一個或多個主機計算設備相關聯的韌體對第二頁執行讀取操作,一個或多個主機計算設備是NAND記憶體的主機。換言之,使用與NAND記憶體相關聯的韌體對第二頁執行讀取操作還包括:與使用和一個或多個主機計算設備相關聯的韌體對第二頁執行讀取操作相比,減少了備份方法的完成所需的時間。在一些示例中,與使用和一個或多個主機計算設備相關聯的韌體對第二頁執行讀取操作相比,完成速度可以提高5%或更多、10%或更多、或者15%或更多。
在一些實施例中,在步驟S1512處,可以釋放第一頁(SLC區域)以準備接收新資料(即,可以使第一頁中所存儲的資料無效和/或被擦除)。
參考圖8A描述的是,在一些實施例中,輸入可用於調整使用NAND韌體21(圖1所示)的讀取操作的執行。此外,參考圖14描述了一個或多個可靠性/不可靠性區域可以被確定、存儲和/或發送到NAND韌體以通知後續SLC備份過程。圖16示出了與圖8A和圖14的這些方面有關的附加細節,示例是以非限制性的能力提供的。即,應當意識到,基於參考其他附圖描述的實施例,仍然設想了圖8A、圖14或圖16中未明確示出的附加特徵。
圖16示出了根據一些實施例的用於在SLC備份過程中實現NAND自驗證的處理流程1600。在一些實施例中,在步驟S1602處,可以啟動一個或多個韌體。這一個或多個韌體可以包括例如存儲系統10(例如,NAND記憶體)的韌體21(圖1所示)和/或一個或多個計算設備的韌體,該一個或多個計算設備提供NAND記憶體與一個或多個主機計算設備之間的啟用通信。在啟動時,在步驟S1604處,可以啟用和配置NAND韌體中的NAND自驗證特徵(例如,啟用執行步驟S870(圖8A所示))。NAND自驗證特徵的啟用可以使用輸入來實現(例如,如參考時間1204(圖12所示)所描述的)。該輸入還可以包括關於NAND記憶體的不可靠區域的資訊(例如,如參考圖14所描述的)。
在一些實施例中,隨著使用與NAND記憶體相關聯的韌體來啟用讀取操作,可以選擇NAND記憶體的一個或多個區域。可以對所選擇的一個或多個區域執行NAND自驗證。可以使用輸入來指定一個或多個所選擇的區域(例如,不可靠區域)。這可以通過不對被確定為可靠的區域執行NAND自驗證來顯著提高SLC備份過程的速度(例如,如參考圖14所描述的)。
先前描述了,在一些實施例中,輸入可以被實施為用於執行資料存儲操作的使用者提供的命令的前綴。在步驟S1604處,隨著NAND自驗證特徵的啟用,可以進行多種配置。例如,步驟S1604可以包括配置字元線位元圖(用於選擇字元線或頁面)、配置串位元圖(用於選擇串)、配置頁面類型位元圖(用於選擇特定頁面,例如上部頁面、中間頁面、下部頁面),以及配置記憶體級別類型(用於選擇MLC、TLC或QLC)。前文參考圖8描述了選擇NAND記憶體中的特定位置。
在一些實施例中,在步驟S1606處,可以對在步驟S1604中指定的NAND記憶體的所選擇區域執行SLC備份過程。步驟S1606可以通過執行處理流程1500(圖15所示)來實現。可以使用步驟S1502和S1504(圖15所示)來實現對NAND記憶體的SLC區域的寫入。可以使用步驟S1506和S1508來實現對NAND記憶體的MLC區域、TLC區域或QLC區域的寫入(圖15所示)。執行NAND自驗證可以使用步驟S1510(圖15)或S870(圖8A所示)來實現。可以使用步驟S1512來實現對不需要的SLC區域的無效化。
本文中揭露的實施例中的方法步驟可以用任何可以想到的順序來執行,並且不需要執行所有步驟。
綜上所述,本發明內容提供了一種使用NAND自驗證的冗餘備份方法。所述方法可以包括:根據編程資料對NAND快閃記憶體設備的第一頁和第二頁進行編程,使得存儲在所述第一頁和第二頁中的資料是冗餘的。所述第一頁和第二頁中的每個頁包括與第一字元線或第二字元線相對應的多個存儲單元。對所述第一頁和第二頁的所述編程可以包括使用多個編程電壓的多個編程操作以及多個驗證操作。可以在所述多個編程操作中的相對應的一些編程操作之後執行所述多個驗證操作中的一些驗證操作,以根據所述編程資料確定所述第一頁的經編程存儲單元是否具有閾值電壓電平。所述方法還可以包括:基於所述多個驗證操作中的每個驗證操作返回通過結果來確定對所述第一頁和第二頁的編程的完成。所述方法還可以包括:在所述確定之後,執行由所述NAND快閃記憶體設備對所述第二頁的讀取操作,以根據所述編程資料對存儲在所述第二頁的資料進行自驗證。
本發明內容還提供了一種NAND快閃記憶體設備,該NAND快閃記憶體設備可以使用NAND自驗證來提供冗餘資料備份。所述NAND快閃記憶體設備可以包括記憶體陣列。所述記憶體陣列可以包括第一頁和第二頁,所述第一頁和第二頁中的每個頁包括與第一字元線或第二字元線相對應的多個存儲單元。所述NAND快閃記憶體設備還可以包括週邊電路,所述週邊電路經由所述第一字元線和所述第二字元線耦合到所述第一頁和所述第二頁。所述週邊電路可以根據所述編程資料對所述第一頁和第二頁進行編程,使得存儲在所述第一頁和第二頁中的資料是冗餘的。對所述第一頁和第二頁的所述編程可以包括使用多個編程電壓的多個編程操作以及多個驗證操作。可以在所述多個編程操作中的相對應的一些編程操作之後執行所述多個驗證操作中的一些驗證操作,以根據所述編程資料確定所述第一頁的經編程存儲單元是否具有閾值電壓電平。所述週邊電路還可以基於所述多個驗證操作中的每個驗證操作返回通過結果來確定對所述第一頁和第二頁的編程的完成。所述週邊電路還可以在所述確定之後,執行由所述NAND快閃記憶體設備對所述第二頁的讀取操作,以根據所述編程資料對資料在所述第二頁處的存儲進行自驗證。
本發明內容還提供了一種用於使用NAND自驗證的冗餘備份方法的記憶體系統。所述系統可以包括所述記憶體系統可以包括可以存儲資料的NAND快閃記憶體設備。所述NAND快閃記憶體設備可以包括記憶體陣列。所述記憶體陣列可以包括第一頁和第二頁,所述第一頁和第二頁中的每個頁包括與第一字元線或第二字元線相對應的多個存儲單元。所述NAND快閃記憶體設備還可以包括週邊電路,所述週邊電路經由所述第一字元線和所述第二字元線耦合到所述第一頁和所述第二頁。所述週邊電路可以根據所述編程資料對所述第一頁和第二頁進行編程,使得存儲在所述第一頁和第二頁中的資料是冗餘的。對所述第一頁和第二頁的所述編程可以包括使用多個編程電壓的多個編程操作以及多個驗證操作。可以在所述多個編程操作中的相對應的一些編程操作之後執行所述多個驗證操作中的一些驗證操作,以根據所述編程資料確定所述第一頁的經編程存儲單元是否具有閾值電壓電平。所述週邊電路還可以基於所述多個驗證操作中的每個驗證操作返回通過結果來確定對所述第一頁和第二頁的編程的完成。所述週邊電路還可以在所述確定之後,執行由所述NAND快閃記憶體設備對所述第二頁的讀取操作,以根據所述編程資料對資料在所述第二頁處的存儲進行自驗證。
具體實施方式的前述描述將完全揭示本發明內容的一般性質,其他人可以在以及不脫離本發明內容的一般概念的情況下,通過應用本領域技術範圍內的知識,針對各種應用,容易地修改和/或適應這些具體實施例,而無需過度實驗。因此,基於本文給出的揭露內容和教示,這些改造和修改旨在落入所揭露實施例的等價物的含義和範圍內。應當理解,本文中的措辭或術語是出於描述而非限制的目的,使得本說明書的術語或措辭將由本領域技術人員根據揭露內容和指導來解釋。
上文已經借助於示出特定功能及其關係的實現的功能構建塊描述了本發明內容的實施例。為了描述方便,已經在本文中任意定義了這些功能構造模組的邊界。只要適當地執行所規定的功能及其關係,就可以定義替代的邊界。
發明內容和摘要部分可以闡述發明人所預期的本發明內容的一個或多個但不是所有示例性實施例,並且因此,並不旨在以任何方式限制本發明內容和所附申請專利範圍。
本發明內容的廣度和範圍不應由上述示例性實施例中的任何一個實施例限制,而是應當僅根據所附申請專利範圍及其等同物來定義。
10:存儲系統
15:主機
100:記憶體管芯
101:存儲面
103,103-1,103-2,103-3:存儲塊
105:週邊區域
108:區域
20:記憶體控制器
21:韌體
210:階梯區域
211:溝道結構區域
212:存儲串
214:接觸結構
216-1、216-2:狹縫結構
22:處理器
23:記憶體
24:記憶體卡連接器
25,25-1,25-2,25-3,...,25-n:記憶體晶片
26:存儲卡
27:固態硬碟(SSD)
28:SSD連接器
29:引擎
30,30-1,30-2,30-3,...,30-n:記憶體溝道
330:基板
331:絕緣膜
332:下選擇閘(LSG)
332-T:下部選擇電晶體
332:下選擇閘極(「LSG」)
333,333-1,333-2,333-3:字元線(WL),控制閘
334:上選擇閘(TSG),頂部選擇閘極
334-T:頂部選擇電晶體
335:膜堆疊
336:溝道孔
337:存儲膜
338:溝道層
339:芯填充膜
340、340-1、340-2、340-3:存儲單元
341:位元線
343:金屬互連線
344:源極線區域
40:行解碼器/字元線驅動器
430:陣列公共源(ACS)
432:存儲頁
50:頁緩衝器/感測放大器
52:列解碼器/位元線驅動器
55:輸入/輸出(I/O)緩衝器
500:3D記憶體結構
65:電壓發生器
70:控制電路
700、800、1100、1102、1104、1300、1400、1500、1600:處理流程
900、902、1200:時間線
904:高速緩存資料傳輸A
906:編程繁忙A
908:高速緩存資料傳輸B
910:編程繁忙B
1008:編程指針
1008':錯誤編程指標
1010:Pg4雙重編程
1202,1204,1206,1208,1210,1212,1214:時間
S1:系統
S705、S710、S715、S720、S725、S730、S735、S740、S745、S750、S755、S810、S820、S860、S865、S870、S875:操作步驟
S1002、S1004、S1006、S1106、S1108、S1112、S1114、S1106、S1110、S1112、S1116、S1112'、S1302、S1304、S1306、S1402、S1404、S1406、S1502、S1504、S1506、S1508、S1510、S1512、S1602、S1604、S1606:步驟
BL:位元線的方向
WL:字元線的方向
V
R1,V
R2,V
R3,V
R4,V
R5,V
R6,V
R7:參考電壓
V
th:閾值電壓
V
pgm:編程電壓
ER、P1、P2、P3、P4、P5、P6、P7:狀態
併入本文中並形成說明書的一部分的附圖示出了本發明內容的實施例,並且與說明書一起進一步用於解釋本發明的原理並使相關領域的技術人員能夠製作和使用本發明內容。
圖1和圖2A-圖2B示出了根據一些實施例的具有一個或多個記憶體晶片的存儲系統。
圖3示出了根據一些實施例的記憶體管芯的示意圖。
圖4示出了根據一些實施例的三維(3D)記憶體管芯的示意圖。
圖5示出了根據一些實施例的3D記憶體結構的一部分的透視圖。
圖6示出了根據一些實施例的NAND快閃記憶體的閾值電壓V
th分佈。
圖7示出了根據一些實施例的對存儲單元進行編程的方法。
圖8A示出了根據一些實施例的在NAND記憶體中存儲資料和對資料自驗證的方法。
圖8B示出了根據一些實施例的使用圖8A中描述的方法的時間線。
圖9示出了用於比較使用NAND韌體執行的調整的時間線。
圖10示出了根據一些實施例的、在其中發生雙重編程事件的NAND記憶體的一部分的快照。
圖11示出了根據一些實施例的包括雙重編程事件的處理流程。
圖12示出了根據一些實施例的除錯雙重編程事件的時間線。
圖13示出了根據一些實施例的用於執行SLC備份的方法。
圖14示出了根據一些實施例的用於識別NAND記憶體中的不可靠區域的方法。
圖15和圖16示出了根據一些實施例的用於在SLC備份過程中實現NAND自驗證的方法。
通過下文結合附圖闡述的具體實施方式,本發明的實施例的特徵和優勢將變得更加顯而易見,在附圖中,相同的附圖標記通篇標識相對應的元件。在附圖中,相同的附圖標記通常表示相同、功能相似和/或結構相似的元件。元件首次出現在其中的附圖由相對應的附圖標記中最左邊的數位指示。
將參考附圖對本發明的實施例進行描述。
1600:處理流程
S1502、S1504、S1506、S1508、S1510、S1512、S1602、S1604、S1606:步驟
Claims (27)
- 一種用於NAND快閃記憶體設備的編程方法,包括: 根據編程資料對所述NAND快閃記憶體設備的第一頁和第二頁進行編程,使得存儲在所述第一頁和所述第二頁中的資料是冗餘的,其中,所述第一頁和所述第二頁中的每個頁包括與第一字元線或第二字元線相對應的多個存儲單元,其中,對所述第一頁和所述第二頁的編程包括: 使用多個編程電壓的多個編程操作;以及 多個驗證操作,其中,所述多個驗證操作中的一些驗證操作是在所述多個編程操作中的相對應的一些編程操作之後執行的,以根據所述編程資料確定所述第一頁的經編程存儲單元是否具有閾值電壓電平; 基於所述多個驗證操作中的每個驗證操作返回通過結果來確定對所述第一頁和所述第二頁的編程的完成;以及 在所述確定之後,執行由所述NAND快閃記憶體設備對所述第二頁的讀取操作,以根據所述編程資料對存儲在所述第二頁處的資料進行自驗證。
- 根據請求項1所述的編程方法,其中: 所述第一頁被配置用於單層單元快閃記憶體(SLC)編程;以及 所述第二頁被配置用於多層單元快閃記憶體(MLC)編程、三層單元快閃記憶體(TLC)編程或四層單元快閃記憶體(QLC)編程。
- 根據請求項1所述的編程方法,其中,對所述讀取操作的執行包括: 與執行由一個或多個主機計算設備的所述讀取操作以根據所述編程資料對存儲在所述第二頁處的資料進行外部驗證相比,減少所述編程方法的完成的時間。
- 根據請求項1所述的編程方法,還包括: 釋放所述第一頁以接收新資料進行存儲。
- 根據請求項1所述的編程方法,其中,對所述讀取操作的執行包括: 將從所述讀取操作確定的所存儲的資料和所述編程資料進行比較;以及 如果失敗位元計數低於閾值則確定通過結果,或者如果所述失敗位元計數高於閾值則確定失敗結果。
- 根據請求項1所述的編程方法,還包括: 由所述NAND快閃記憶體設備接收輸入以調整對所述讀取操作的執行。
- 根據請求項6所述的編程方法,還包括: 將對所述讀取操作的執行限制在所述NAND快閃記憶體設備中的由所述輸入指定的一個或多個區域,其中,一個或多個指定的區域包括下列各項中的至少一項: 用於單層單元快閃記憶體(SLC)的區域; 用於多層單元快閃記憶體(MLC)的區域; 用於三層單元快閃記憶體(TLC)的區域; 用於四層單元快閃記憶體(QLC)的區域; 頁; 塊;以及 片存儲區。
- 根據請求項1所述的編程方法,還包括: 延遲對未來編程資料的高速緩存直到對所述讀取操作的執行之後。
- 根據請求項8所述的編程方法,還包括: 檢測所述高速緩存的使用,其中,所述延遲是基於對所述高速緩存的使用的檢測的。
- 一種NAND快閃記憶體設備,包括: 記憶體陣列,所述記憶體陣列包括第一頁和第二頁,所述第一頁和所述第二頁中的每個頁包括與第一字元線或第二字元線相對應的多個存儲單元;以及 週邊電路,所述週邊電路經由所述第一字元線和所述第二字元線耦合到所述第一頁和所述第二頁,並且被配置為: 根據編程資料對所述第一頁和所述第二頁進行編程,使得存儲在所述第一頁和所述第二頁中的資料是冗餘的,其中,對所述第一頁和所述第二頁的編程包括: 使用多個編程電壓的多個編程操作;以及 多個驗證操作,其中,所述多個驗證操作中的一些驗證操作是在所述多個編程操作中的相對應的一些編程操作之後執行的,以根據所述編程資料確定所述第一頁的經編程存儲單元是否具有閾值電壓電平; 基於所述多個驗證操作中的每個驗證操作返回通過結果來確定對所述第一頁和所述第二頁的編程的完成;以及 在所述確定之後,執行由所述NAND快閃記憶體設備對所述第二頁的讀取操作,以根據所述編程資料對資料在所述第二頁處的存儲進行自驗證。
- 根據請求項10所述的NAND快閃記憶體設備,其中: 所述第一頁被配置用於單層單元快閃記憶體(SLC)編程;以及 所述第二頁被配置用於多層單元快閃記憶體(MLC)編程、三層單元快閃記憶體(TLC)編程或四層單元快閃記憶體(QLC)編程。
- 根據請求項10所述的NAND快閃記憶體設備,其中,對所述讀取操作的執行包括: 與執行由一個或多個主機計算設備的所述讀取操作以根據所述編程資料對存儲在所述第二頁處的資料進行外部驗證相比,減少包括對所述第一頁和所述第二頁的編程的冗餘數據存儲過程的完成的時間。
- 根據請求項10所述的NAND快閃記憶體設備,其中,所述NAND快閃記憶體設備被配置為: 釋放所述第一頁以接收新資料進行存儲。
- 根據請求項10所述的NAND快閃記憶體設備,其中,對所述讀取操作的執行包括: 將從所述讀取操作確定的所存儲的資料和所述編程資料進行比較;以及 如果失敗位元計數低於閾值則確定通過結果,或者如果所述失敗位元計數高於閾值則確定失敗結果。
- 根據請求項10所述的NAND快閃記憶體設備,其中,所述NAND快閃記憶體設備被配置為: 接收輸入以調整對所述讀取操作的執行。
- 根據請求項15所述的NAND快閃記憶體設備,其中,所述NAND快閃記憶體設備還被配置為: 將對所述讀取操作的執行限制在所述NAND快閃記憶體設備中的由所述輸入指定的一個或多個區域,其中,一個或多個指定的區域包括下列各項中的至少一項: 用於單層單元快閃記憶體(SLC)的區域; 用於多層單元快閃記憶體(MLC)的區域; 用於三層單元快閃記憶體(TLC)的區域; 用於四層單元快閃記憶體(QLC)的區域; 頁; 塊;以及 片存儲區。
- 根據請求項10所述的NAND快閃記憶體設備,其中,所述NAND快閃記憶體設備被配置為: 延遲對未來編程資料的高速緩存直到對所述讀取操作的執行之後。
- 根據請求項17所述的NAND快閃記憶體設備,其中,所述NAND快閃記憶體設備還被配置為: 檢測所述高速緩存的使用,其中,所述延遲是基於對所述高速緩存的使用的檢測的。
- 一種記憶體系統,包括: NAND快閃記憶體設備,所述NAND快閃記憶體設備被配置用於存儲資料,所述NAND快閃記憶體設備包括: 記憶體陣列,所述記憶體陣列包括第一頁和第二頁,所述第一頁和所述第二頁中的每個頁包括與第一字元線或第二字元線相對應的多個存儲單元;以及 週邊電路,所述週邊電路經由所述第一字元線和所述第二字元線耦合到所述第一頁和所述第二頁,並且被配置為: 根據編程資料對所述NAND快閃記憶體設備的所述第一頁和所述第二頁進行編程,使得存儲在所述第一頁和所述第二頁中的資料是冗餘的,其中,對所述第一頁和所述第二頁的編程包括: 使用多個編程電壓的多個編程操作;以及 多個驗證操作,其中,所述多個驗證操作中的一些驗證操作是在所述多個編程操作中的相對應的一些編程操作之後執行的,以根據所述編程資料確定所述第一頁的經編程存儲單元是否具有閾值電壓電平; 基於所述多個驗證操作中的每個驗證操作返回通過結果來確定對所述第一頁和所述第二頁的編程的完成;以及 在所述確定之後,執行由所述NAND快閃記憶體設備對所述第二頁的讀取操作,以根據所述編程資料對資料在所述第二頁處的存儲進行自驗證。
- 根據請求項19所述的記憶體系統,其中: 所述第一頁被配置用於單層單元快閃記憶體(SLC)編程;以及 所述第二頁被配置用於多層單元快閃記憶體(MLC)編程、三層單元快閃記憶體(TLC)編程或四層單元快閃記憶體(QLC)編程。
- 根據請求項19所述的記憶體系統,其中,對所述讀取操作的執行包括: 與執行由一個或多個主機計算設備的所述讀取操作以根據所述編程資料對存儲在所述第二頁處的資料進行外部驗證相比,減少包括對所述第一頁和所述第二頁的編程的冗餘數據存儲過程的完成的時間。
- 根據請求項19所述的記憶體系統,其中,所述NAND快閃記憶體設備還被配置為: 釋放所述第一頁以接收新資料進行存儲。
- 根據請求項19所述的記憶體系統,其中,對所述讀取操作的執行包括: 將從所述讀取操作確定的所存儲的資料和所述編程資料進行比較;以及 如果失敗位元計數低於閾值則確定通過結果,或者如果所述失敗位元計數高於閾值則確定失敗結果。
- 根據請求項19所述的記憶體系統,其中,所述NAND快閃記憶體設備還被配置為: 接收輸入以調整對所述讀取操作的執行。
- 根據請求項24所述的記憶體系統,其中,所述NAND快閃記憶體設備還被配置為: 將對所述讀取操作的執行限制在所述NAND快閃記憶體設備中的由所述輸入指定的一個或多個區域,其中,一個或多個指定的區域包括下列各項中的至少一項: 用於單層單元快閃記憶體(SLC)的區域; 用於多層單元快閃記憶體(MLC)的區域; 用於三層單元快閃記憶體(TLC)的區域; 用於四層單元快閃記憶體(QLC)的區域; 頁; 塊;以及 片存儲區。
- 根據請求項19所述的記憶體系統,其中,所述NAND快閃記憶體設備還被配置為: 延遲對未來編程資料的高速緩存直到對所述讀取操作的執行之後。
- 根據請求項26所述的記憶體系統,其中,所述NAND快閃記憶體設備還被配置為: 檢測所述高速緩存的使用,其中,所述延遲是基於對所述高速緩存的使用的檢測的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2022/072284 WO2023133877A1 (en) | 2022-01-17 | 2022-01-17 | Redundant data protection for nand memory using self-verification by internal firmware |
WOPCT/CN2022/072284 | 2022-01-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202331728A TW202331728A (zh) | 2023-08-01 |
TWI848490B true TWI848490B (zh) | 2024-07-11 |
Family
ID=81554996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111150400A TWI848490B (zh) | 2022-01-17 | 2022-12-28 | 用於nand快閃記憶體設備的編程方法、nand快閃記憶體設備及記憶體系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230229318A1 (zh) |
KR (1) | KR20230111585A (zh) |
CN (1) | CN114514581A (zh) |
TW (1) | TWI848490B (zh) |
WO (1) | WO2023133877A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11974422B2 (en) * | 2021-11-04 | 2024-04-30 | Taiwan Semiconductor Manufacturing Company, Ltd. | Semiconductor device |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070258288A1 (en) * | 2006-05-04 | 2007-11-08 | Westell Technologies, Inc. | Flash programmer for programming NAND flash and NOR/NAND combined flash |
US20150078086A1 (en) * | 2013-09-14 | 2015-03-19 | Aplus Flash Technology, Inc | Multi-task concurrent/pipeline nand operations on all planes |
US20160027504A1 (en) * | 2014-07-22 | 2016-01-28 | Peter Wung Lee | YUKAI VSL-BASED Vt-COMPENSATION FOR NAND MEMORY |
US20210225450A1 (en) * | 2020-01-16 | 2021-07-22 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and storage device including nonvolatile memory device |
US20210406107A1 (en) * | 2020-06-29 | 2021-12-30 | Western Digital Technologies, Inc. | Write Abort Error Detection in Multi-Pass Programming |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100851853B1 (ko) * | 2006-11-22 | 2008-08-13 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것의 프로그램 및 프로그램 검증방법 |
KR102292217B1 (ko) * | 2015-02-06 | 2021-08-24 | 삼성전자주식회사 | 내부적으로 데이터 읽기 검증을 수행할 수 있는 메모리 장치, 이의 작동 방법, 및 이를 포함하는 메모리 시스템 |
KR20170065969A (ko) * | 2015-12-04 | 2017-06-14 | 에스케이하이닉스 주식회사 | 메모리 장치 및 그의 동작방법 |
KR20190073943A (ko) * | 2017-12-19 | 2019-06-27 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그 동작 방법 |
US10762967B2 (en) * | 2018-06-28 | 2020-09-01 | Apple Inc. | Recovering from failure in programming a nonvolatile memory |
JP2020154759A (ja) * | 2019-03-20 | 2020-09-24 | キオクシア株式会社 | メモリシステム |
KR20220118236A (ko) * | 2021-02-18 | 2022-08-25 | 에스케이하이닉스 주식회사 | 메모리 장치 |
JP2023095156A (ja) * | 2021-12-24 | 2023-07-06 | キオクシア株式会社 | メモリデバイス |
-
2022
- 2022-01-17 KR KR1020227044654A patent/KR20230111585A/ko not_active Application Discontinuation
- 2022-01-17 CN CN202280000363.8A patent/CN114514581A/zh active Pending
- 2022-01-17 WO PCT/CN2022/072284 patent/WO2023133877A1/en unknown
- 2022-03-25 US US17/705,111 patent/US20230229318A1/en active Pending
- 2022-12-28 TW TW111150400A patent/TWI848490B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070258288A1 (en) * | 2006-05-04 | 2007-11-08 | Westell Technologies, Inc. | Flash programmer for programming NAND flash and NOR/NAND combined flash |
US20150078086A1 (en) * | 2013-09-14 | 2015-03-19 | Aplus Flash Technology, Inc | Multi-task concurrent/pipeline nand operations on all planes |
US20160027504A1 (en) * | 2014-07-22 | 2016-01-28 | Peter Wung Lee | YUKAI VSL-BASED Vt-COMPENSATION FOR NAND MEMORY |
US20210225450A1 (en) * | 2020-01-16 | 2021-07-22 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and storage device including nonvolatile memory device |
US20210406107A1 (en) * | 2020-06-29 | 2021-12-30 | Western Digital Technologies, Inc. | Write Abort Error Detection in Multi-Pass Programming |
Also Published As
Publication number | Publication date |
---|---|
CN114514581A (zh) | 2022-05-17 |
WO2023133877A1 (en) | 2023-07-20 |
TW202331728A (zh) | 2023-08-01 |
US20230229318A1 (en) | 2023-07-20 |
KR20230111585A (ko) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9213598B2 (en) | Nonvolatile memory device and method of operating the same | |
US8942028B1 (en) | Data reprogramming for a data storage device | |
KR20160127524A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20170111193A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
WO2023272548A1 (en) | Data protection for three-dimensional nand memory | |
KR20170076878A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20170118284A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
TWI848490B (zh) | 用於nand快閃記憶體設備的編程方法、nand快閃記憶體設備及記憶體系统 | |
CN112908370A (zh) | 存储器装置和操作该存储器装置的方法 | |
KR102608815B1 (ko) | 반도체 메모리 장치 및 그것의 동작 방법 | |
TWI849649B (zh) | 使用內部韌體執行自驗證的nand記憶體中的資料保護 | |
KR20170075835A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
TWI849650B (zh) | 用於nand快閃記憶體器件的編程方法、nand快閃記憶體器件以及系統 | |
KR20170012629A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
TWI849646B (zh) | 記憶體系統及其操作方法 | |
US12061799B1 (en) | System and method of performing a read operation | |
US20240046980A1 (en) | Systems, methods and media of optimization of temporary read errors in 3d nand memory devices | |
US11966625B2 (en) | Memory device and operating method for setting and repairing data errors | |
KR20170024713A (ko) | 메모리 시스템 및 그의 동작방법 |