TW202322135A - 用於決定讀取電壓的記憶體系統 - Google Patents
用於決定讀取電壓的記憶體系統 Download PDFInfo
- Publication number
- TW202322135A TW202322135A TW111101104A TW111101104A TW202322135A TW 202322135 A TW202322135 A TW 202322135A TW 111101104 A TW111101104 A TW 111101104A TW 111101104 A TW111101104 A TW 111101104A TW 202322135 A TW202322135 A TW 202322135A
- Authority
- TW
- Taiwan
- Prior art keywords
- read
- memory
- voltage
- data
- read voltage
- Prior art date
Links
- 230000004044 response Effects 0.000 claims abstract description 27
- 238000012360 testing method Methods 0.000 claims abstract description 11
- 238000012937 correction Methods 0.000 claims description 105
- 238000010801 machine learning Methods 0.000 claims description 57
- 238000004422 calculation algorithm Methods 0.000 claims description 31
- 238000012549 training Methods 0.000 claims description 18
- 230000014759 maintenance of location Effects 0.000 claims description 16
- 208000011580 syndromic disease Diseases 0.000 claims description 4
- 238000000034 method Methods 0.000 abstract description 31
- 238000003860 storage Methods 0.000 description 27
- 230000006870 function Effects 0.000 description 18
- 230000008859 change Effects 0.000 description 15
- 230000008569 process Effects 0.000 description 15
- 238000012546 transfer Methods 0.000 description 15
- 238000009826 distribution Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 230000001960 triggered effect Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000013527 convolutional neural network Methods 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 6
- 230000000306 recurrent effect Effects 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- 238000012417 linear regression Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 238000007667 floating Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000000630 rising effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000004590 computer program 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
- 239000013078 crystal Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
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/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- 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/0625—Power saving in storage systems
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- 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/5642—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/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- 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
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/805—Real-time
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Neurology (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Measurement Of Current Or Voltage (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
本案提出具有電腦可讀取介質(computer-readable medium)的系統、方法與裝置,其用於確定記憶體系統的讀取電壓。在一個方面,記憶體系統包括記憶體與記憶體控制器,記憶體儲存資料,記憶體控制器耦接到記憶體。記憶體控制器用以:利用第一讀取電壓獲得記憶體的目標記憶體資料的第一讀取輸出;以及回應於確定第一讀取輸出未通過糾錯碼(Error-Correcting Code,ECC)檢驗,提供第一讀取電壓至記憶體。記憶體用以:依據第一讀取電壓確定第二讀取電壓;以及利用第二讀取電壓產生目標記憶體資料的第二讀取輸出。
Description
本發明涉及記憶體系統,且特別是用於決定讀取電壓的記憶體系統。
一旦對資料儲存裝置(例如,記憶體系統)中的記憶體晶胞(memory cell)進行編程,則可比較晶胞臨界電壓(cell threshold voltage)與一或多個讀取電壓來感測各個記憶體晶胞的編程狀態,以從記憶體晶胞讀取資料。然而,晶胞臨界電壓可能因一或多種因素而改變(例如,讀取干擾或資料保留),這可能會使感測到的編程狀態相異於寫入的編程狀態,並導致資料讀取輸出的錯誤位元(failed bit)。
本公開描述了用於確定記憶體系統(例如,非揮發性記憶體(non-volatile memory,NVM)系統)的讀取電壓之系統和技術。
本公開的一個方面揭示一種記憶體系統,該記憶體系統包括記憶體與耦接到記憶體的記憶體控制器。記憶體控制器用以:利用第一讀取電壓獲得儲存於記憶體的目標記憶體資料的第一讀取輸出;以及回應於確定第一讀取輸出未通過第一糾錯碼(Error-Correcting Code,ECC)檢驗,提供第一讀取電壓至記憶體。記憶體用以:依據第一讀取電壓確定第二讀取電壓;以及利用第二讀取電壓產生相關於目標記憶體資料的第二讀取輸出。
在一些實施例中,記憶體用以提供第二讀取輸出至記憶體控制器,並且記憶體控制器用以確定第二讀取輸出是否通過第二糾錯碼檢驗。在一些實施例中,記憶體包括糾錯碼電路,該糾錯碼電路用以確定第二讀取輸出是否通過第二糾錯碼檢驗。
在一些實施例中,記憶體控制器用以:確定第二讀取輸出通過第二糾錯碼檢驗;以及輸出第二讀取輸出以作為目標記憶體資料的目標讀取輸出。
在一些實施例中,第一讀取電壓係基於利用相關於目標記憶體資料的第一組參數之儲存的讀取電壓資料來確定。依據相關於第一組參數的第二組參數可確定第二讀取電壓。第二組參數可包括第一讀取電壓與相關的谷追蹤範圍(valley-tracking range)。儲存的讀取電壓資料與第一組參數可儲存於查找表(lookup table)。
在一些實施例中,記憶體控制器用以:確定第二讀取輸出未通過第二糾錯碼檢驗;依據第二組參數確定第三讀取電壓,第二組參數包括第二糾錯碼檢驗的結果與第一組參數的至少其中之一;利用第三讀取電壓獲得相關於記憶體的目標記憶體資料之第三讀取輸出;以及確定第三讀取輸出是否通過第三糾錯碼檢驗。
在一些實施例中,記憶體控制器用以:回應於確定第三讀取輸出未通過第三糾錯碼檢驗,確定是否已達到預定讀取閾值(predetermined read threshold);回應於確定已達到預定讀取閾值,確定來自記憶體的目標記憶體資料讀取失敗;以及回應於確定未達到預定讀取閾值,依據第三糾錯碼檢驗結果確定新的讀取電壓。
在一些實施例中,記憶體控制器用以:回應於確定第三讀取輸出通過第三糾錯碼檢驗,輸出第三讀取輸出以作為目標記憶體資料的目標讀取輸出。在一些實施例中,記憶體控制器用以利用基於第一組參數的儲存的讀取電壓資料來確定該第一讀取電壓,並且記憶體控制器用以:回應於確定第三讀取輸出通過第三糾錯碼檢驗,利用第三讀取電壓與第二組參數的至少其中之一來更新儲存的讀取電壓資料。
在一些實施例中,記憶體控制器用以利用基於第二組參數的至少一種機器學習(machine learning,ML)演算法來確定第三讀取電壓。該至少一機器學習演算法可包括線性回歸(linear regression)、支援向量回歸(support vector regression)與深度學習算法的至少其中之一,該深度學習算法包括卷積神經網路(convolutional neural network,CNN)演算法或循環神經網路(Recurrent Neural Network,RNN)演算法。
在一些實施例中,記憶體控制器用以:利用硬判定解碼架構(hard decision decoding scheme)對第一讀取輸出進行解碼; 以及利用硬判定解碼架構與軟判定解碼架構(soft decision decoding scheme)的至少其中之一對第三讀取輸出進行解碼。記憶體控制器可用以:利用硬判定解碼架構對第二讀取輸出進行解碼。在一些實施例中,記憶體控制器用以先利用硬判定解碼架構對第一讀取輸出、第二讀取輸出與第三讀取輸出的任何一個進行解碼;以及若硬判定解碼架構失敗,則利用軟判定解碼架構對第一讀取輸出、第二讀取輸出與第三讀取輸出的任何一個進行解碼。
在一些實施例中,第一組參數包括位址資訊、編程/擦除(P/E)週期數、讀取溫度、讀取干擾程度與保留時間的至少其中之一。 在一些實施例中,第二組參數包括第二讀取輸出的錯誤位元計數、各個讀取電壓所獲得的“1”值數量、先前讀取電壓與當前讀取電壓之間的“1”值數量變化、讀取時間、低密度奇偶檢查碼(low-density parity-check code,LDPC code)的校驗子(syndrome)與低密度奇偶檢查碼的迭代(iteration)次數之至少其中之一。
在一些實施例中,儲存的讀取電壓資料係基於利用相關於記憶體與相應的多個最佳讀取電壓的多個輸入的監督式機器學習訓練而產生,在多個輸入的個別輸入之下,各個最佳讀取電壓對應至記憶體的個別頁面之讀取輸出的最小錯誤位元計數,各個輸入包括多個參數的相應值,多個參數包括第一組參數。
在一些實施例中,儲存的讀取電壓資料包括轉移函數(transfer function),該轉移函數係依據監督式機器學習訓練而產生,該轉移函數表示多個參數的輸入與最佳讀取電壓之間的關係。
在一些實施例中,記憶體控制器用以依據第一讀取電壓和多個輸入的相應的多個最佳讀取電壓來確定谷追蹤範圍,並且記憶體用以利用基於谷追蹤範圍與第一讀取電壓的谷追蹤讀取架構來確定第二讀取電壓。在一些實施例中,谷追蹤範圍不大於預定上限閾值且不小於預定下限閾值。
在一些實施例中,記憶體用以:利用第一讀取電壓限定的範圍與谷追蹤範圍中的一系列序列讀取電壓,獲得相關於目標記憶體資料讀取輸出的一系列數值;以及確定對應於最小系列數值的讀取電壓為第二讀取電壓。
在一些實施例中,系列數值包括對應於目標記憶體資料的一系列晶胞數量、對應於目標記憶體資料之讀出位元(read-out bit)的一系列累積電壓或電流、以及累積電壓或電流的一系列差分(differential)電壓或電流的至少其中之一。
在一些實施例中,記憶體控制器用以回應於確定第二讀取輸出通過第二糾錯碼檢驗,利用第二讀取電壓更新儲存的讀取電壓資料。
在一些實施例中,記憶體控制器用以;判斷第一讀取輸出的至少一部分未通過第一糾錯碼檢驗來確定第一讀取輸出未通過第一糾錯碼檢驗,第一讀取輸出的至少一部分對應至目標記憶體資料的至少一錯誤部分,並且記憶體用以利用第二讀取電壓讀取目標記憶體資料的至少一錯誤部分,以產生第二讀取輸出。
在一些實施例中,記憶體控制器用以將目標記憶體資料的至少一錯誤部分的資訊提供至記憶體。
在一些實施例中,記憶體控制器用以:確定第一讀取輸出的剩餘部分(remainder)通過第一糾錯碼檢驗,其中第一讀取輸出的剩餘部分對應至目標記憶體資料的剩餘部分,並通過第一糾錯碼檢驗;以及確定第一讀取輸出的剩餘部分為目標記憶體資料的剩餘部分的目標讀取輸出,其中記憶體不使用第二讀取電壓來讀取目標記憶體資料的剩餘部分。
在一些實施例中,目標記憶體資料包括具有多個區塊(chunk)的頁面,並且記憶體控制器用以利用第一讀取電壓來確定頁面的至少一區塊的相應第一讀出未通過第一糾錯碼檢驗,並且其中記憶體用以利用第二讀取電壓來讀取至少一區塊。
在一些實施例中,記憶體控制器用以:利用第一特定讀取電壓獲得要從記憶體讀取的特定記憶體資料的第一特定讀取輸出,第一特定讀取電壓係依據相關於特定記憶體資料的第一特定參數集(first particular set of parameter)來確定;確定第一特定讀取輸出未通過相應糾錯碼檢驗;回應於確定記憶體為忙碌,依據第二特定參數集(second particular set of parameter)來確定第二特定讀取電壓,第二特定參數集包括相關於第一特定讀取輸出的相應糾錯碼檢驗的結果與第一特定參數集的至少其中之一;利用第二特定讀取電壓來讀取特定記憶體資料,以獲得第二特定讀取輸出;確定第二特定讀取輸出是否通過相應糾錯碼檢驗;回應於確定第二特定讀取輸出通過相應糾錯碼檢驗,輸出第二特定讀取輸出以作為記憶體的特定記憶體資料的目標讀取輸出。
本公開的另一個方面揭示一種記憶體系統,記憶體系統包括記憶體與記憶體控制器,控制器包括記憶側讀取電路(memory-side read circuit),記憶體控制器包括控制側讀取電路(controller-side read circuit)。記憶體控制器用以:透過控制側讀取電路,利用基於要從記憶體讀取的目標記憶體資料相關的第一組參數之儲存的讀取電壓資料來確定第一讀取電壓;利用第一讀取電壓來獲得目標記憶體資料的第一讀取輸出;以及回應於確定第一讀取輸出的至少一部分未通過第一糾錯碼檢驗,提供第一讀取電壓以及對應至第一讀取輸出的至少一部分之目標記憶體資料的至少一錯誤部分的資訊給該記憶體。記憶體用以:透過記憶側讀取電路,依據第一讀取電壓確定第二讀取電壓;以及利用第二讀取電壓產生目標記憶體資料的至少一錯誤部分的第二讀取輸出。
在一些實施例中,記憶體控制器用以:確定第二讀取輸出未通過第二糾錯碼檢驗;透過控制側讀取電路,依據第二組參數確定第三讀取電壓,第二組參數包括第二糾錯碼檢驗的結果與第一組參數的至少其中之一;利用第三讀取電壓獲得目標記憶體資料的至少一錯誤部分的第三讀取輸出;確定第三讀取輸出是否通過第三糾錯碼檢驗;回應於確定第三讀取輸出通過第三糾錯碼檢驗,輸出第三讀取輸出與第一讀取輸出的剩餘部分以作為目標記憶體資料的目標讀取輸出,其中第一讀取輸出的剩餘部分通過第一糾錯碼檢驗;以及利用第三讀取電壓與第二組參數的至少其中之一來更新儲存的讀取電壓資料。
在一些實施例中,記憶側讀取電路用以利用基於記憶體控制器確定的谷追蹤範圍的谷追蹤讀取架構來確定第二讀取電壓,並且控制側讀取電路用以利用基於第二組參數的至少一機器學習算法來確定第三讀取電壓。
在一些實施例中,控制側讀取電路用以利用基於第一組參數的至少一機器學習算法來確定第一讀取電壓。在一些實施例中,記憶體控制器用以利用查找表來確定第一讀取電壓。
本公開的另一個方面揭示一種記憶體系統,記憶體系統包括記憶體與記憶體控制器,記憶體用以儲存資料,記憶體控制器耦接至記憶體。記憶體用以:基於利用谷追蹤讀取架構之一記憶體資料相關的一第一組參數來確定一第一讀取電壓;以及利用第一讀取電壓產生記憶體資料的第一讀取輸出。記憶體控制器用以:回應於確定第一讀取輸出未通過第一糾錯碼檢驗,依據第二組參數確定第二讀取電壓,第二組參數包括第一糾錯碼檢驗的結果與第一組參數的至少其中之一;利用第二讀取電壓獲得記憶體的記憶體資料的第二讀取輸出;確定第二讀取輸出是否通過第二糾錯碼檢驗;以及回應於確定第二讀取輸出通過第二糾錯碼檢驗,輸出第二讀取輸出以作為記憶體資料的目標讀取輸出。
本公開的另一個方面揭示一種方法,此方法包括:由記憶體控制器利用第一讀取電壓獲得儲存於記憶體的目標記憶體資料的第一讀取輸出;回應於確定第一讀取輸出未通過糾錯碼檢驗,由記憶體控制器提供第一讀取電壓至記憶體;依據第一讀取電壓,由記憶體確定第二讀取電壓;以及由記憶體利用第二讀取電壓產生相關於目標記憶體資料的第二讀取輸出。
以上技術的實現包括方法、系統、電路、電腦編程產品以及電腦可讀取媒體(computer-readable media)。在一個示例中,具有記憶體與記憶體控制器的記憶體系統可執行方法,記憶體控制器耦接至記憶體,並且該方法可包括記憶體控制器與記憶體執行的上述動作,例如用於確定記憶體系統的讀取電壓的動作。在另一示例中,一種這樣的電腦編程產品適當地體現於非暫態機器可讀取介質(non-transitory machine-readable medium),其可儲存由一或多個處理器所執行的指令。該指令用以使一或多個處理器執行上述動作。一種這樣的電腦可讀取介質儲存指令,當一或多個處理器執行此指令時,此指令用以使一或多個處理器執行上述動作。
本發明的一或更多揭示的實施方式細節描述於所附圖式與以下說明。藉由說明書、圖式和申請專利範圍,本發明的其他特徵、方面和優點將變得顯而易見。
為了對本發明之上述及其他方面有更佳的瞭解,下文特舉實施例,並配合所附圖式詳細說明如下:
由於頻繁的讀取操作,儲存在記憶體的資料可能會遭受讀取干擾,其中記憶體的記憶體晶胞狀態(state of memory cell) (例如,擦除狀態以及一或多個編程狀態)可具有上升的臨界電壓。讀取干擾可能會導致資料讀取輸出中的錯誤位元(或誤差位元)。取決於糾錯碼(Error-Correcting Code,ECC)架構的糾錯能力,糾錯碼解碼器可用以對從記憶體讀取的資料進行解碼,以檢測和糾正可能存在於資料的任何位元錯誤。
可藉由比較晶胞臨界電壓與讀取電壓(或參考讀取電壓)來感測各個記憶體晶胞的狀態,以從記憶體晶胞讀取資料。讀取電壓可優化為最佳讀取電壓(或優化讀取電壓),使得資料讀取輸出的錯誤位元計數(或錯誤位元數量)最小(或最少)。最佳讀取電壓可取決於多個參數,例如是編程/擦除(P/E)週期數、字元線(WL)位址或頁面位址、溫度、保留時間、逐層變異(layer by layer variation)、逐塊變異(block by block variation)和/或逐片變異(chip by chip variation)。確定最佳讀取電壓可能既費時且繁瑣(tedious),而且運算時間與功耗可能會隨著判定流程考慮的輸入參數數量而增加。因此,本發明期望開發一種技術,此技術可以在時變通道(time-variant channel)的有限讀取延遲(limited read latency)下來進行準確讀取,並且可透過最佳讀取電壓可降低糾錯碼解碼負擔(overhead)。
在一些情況下,無論輸入參數如何改變,相同的驗證讀取電壓用於讀取來自記憶體的資料。然而,已驗證讀取電壓可能會偏離最佳讀取電壓,從而導致糾錯碼解碼的額外負擔。
在一些情況下,利用儲存多個驗證讀取電壓的查找表(lookup table)。依據無關於輸入參數的對應優先級(corresponding priority level),使已驗證讀取電壓處於靜態序列(static order)。首先利用第一優先級驗證電壓來讀取資料;如果資料讀取輸出未通過糾錯碼檢驗,則使用第二優先級驗證電壓。重複讀取過程持續進行,直到讀取輸出通過糾錯碼檢驗為止。
在一些情況下,首先利用基於輸入參數確定的讀取電壓來讀取資料。如果讀取輸出未通過糾錯碼檢驗,則利用查找表來執行重複讀取過程,查找表儲存讀取電壓的靜態序列,其無關於輸入參數。然而,查找表架構會花費大量人力資源與開發時間。工程師可能須依據輸入參數逐案(case by case)微調最佳讀取電壓。隨著不同製程技術與不同操作情況,查找表尺寸會變得越來越大。這可能會使像是三階儲存單元/四階儲存單元的NAND快閃記憶體裝置的三維(3D)記憶體裝置產生無法接受的讀取延遲。
在一些情況下,機器學習(machine learning,ML)技術可用於確定最佳讀取電壓。在一些情況下,機器學習的離線推論(offline inference)可確定輸入參數與最佳讀取電壓之間的關係,此關係可記錄於查找表或透過轉移函數(transfer function)進行連接。然而,離線推論可能會導致龐大記憶體負擔,以實現高準確度。在一些情況下,只要有讀取請求,透過機器學習進行的在線推論(online inference)可計算出最佳讀取電壓。在線推論可能會需要額外運算與時間負擔來降低讀取延遲。此外,在記憶體控制器中實施機器學習可能會導致記憶體控制器的額外運算與硬體成本。此外,機器學習讀取無法解決芯片(chip)間或芯片內的變化以及保留問題,而且可能仍需要重複讀取以提高讀取可靠度。
在一些情況下,谷追蹤(valley-tracking) (或谷值搜尋(valley-searching))架構可用於確定最佳讀取電壓。於谷追蹤架構中,在連續的相異電壓下讀出和計數儲存於記憶體的位元,並觀察顯示了讀取電壓的每次變化而導致的位元數量變化之曲線。位元數量變化最小的電壓可對應至曲線的谷底,並提供最佳讀取電壓。谷追蹤架構可處理保留問題和芯片間和/或芯片內變化。然而,利用谷追蹤技術確定讀取電壓的準確度比機器學習讀取或其他芯片上優化讀取技術(on-chip optimized read technique)還差(例如,當分佈偏移嚴重時,像是在高溫和嚴重保留下的讀取)。因此,可能仍需重複讀取以更加提高讀取可靠度。
本公開的實施方式提供了系統、方法和技術,其用於確定具有多階段讀取組合之記憶體系統(例如,非揮發性記憶體(NVM)系統)的讀取電壓(例如,最佳讀取電壓)。此技術可藉由組合初始離線讀取電壓判定(initial offline read voltage determination) (階段I)、芯片上谷追蹤讀取電壓判定(on-chip valley-tracking read voltage determination) (階段II)和/或在線讀取電壓判定(online read voltage determination) (階段III)來優化讀取電壓。特別地,依據初始離線讀取電壓判定的結果可確定階段II的谷追蹤讀取電壓,這可縮小最佳讀取電壓的搜尋範圍(或谷追蹤範圍),並可提高讀取準確度、可靠度以及判定過程的速度。
在一些實施方式中,記憶體控制器(例如,軟體或硬體)可執行初始離線讀取電壓判定(階段I)。在一些情況下,查找表(例如,動態更新)、函數、雜湊(hash)或窮舉搜尋(exhaustive search)可確定初始離線讀取電壓。在一些情況下,利用至少一機器學習演算法的機器學習電路(例如,利用離線推論機器學習讀取演算法的監督式(supervised)機器學習訓練)可推論初始離線讀取電壓。
在繁重記憶體負擔下,離線優化讀取雖可達到良好的準確度,但是本文公開的技術可利用記憶體負擔較小的一些參數來提供合理初始讀取(reasonable initial read),其優於默認讀取(default read)。為了補償因離線初始讀取判定的空間限制而導致的可靠度損失,芯片上谷追蹤讀取可實施於記憶體芯片,並且可用以在離線初始讀取失敗時被觸發。谷追蹤讀取可基於利用階段I的資訊對晶胞數量進行計數(例如,透過數量本身、電壓或電流),並且可用以找出因保留或逐片變異而導致的分佈趨勢。依據階段I的結果可確定(或優化)階段II的谷追蹤範圍(或搜尋範圍)和參數,使得記憶體控制器輔助的谷追蹤讀取不僅可達到更低延遲,而且相較於沒有初始讀取電壓判定的輸入的傳統谷追蹤讀取也可達到更好的讀取準確度。
為了更加提高讀取準確度(例如,減少糾錯碼解碼前的錯誤位元),如果芯片上谷追蹤讀取失敗,則可觸發在線讀取電壓判定(階段III)。微控制器單元(MCU)或記憶體控制器的硬體設計可實現在線讀取電壓判定。在線讀取電壓判定可利用基於階段II中的糾錯碼檢驗的結果以及具有階段I和/或階段II的參數的一組參數的至少一機器學習演算法來執行。機器學習演算法可包括線性回歸(linear regression)、支援向量回歸(support vector regression)、卷積神經網路(convolutional neural network,CNN)、循環神經網路(Recurrent Neural Network,RNN)或其他適當演算法。在線讀取電壓判定可不侷限於任何機器學習演算法或運算。
依據階段II的結果和/或階段III的結果可更新初始離線讀取電壓判定。例如,利用在階段II和/或階段III確定的最佳讀取電壓以及階段II和/或階段III採用的一或多個參數可更新用於階段I的查找表或儲存的讀取電壓資料。亦即,三個階段可依序觸發與動態更新。
對於大多數讀取請求,階段I確定的讀取電壓可成功實現讀取輸出。階段II並非針對各個讀取請求來觸發,而是僅在階段I失敗時才會觸發。此外,如果只有部分記憶體資料(例如,要讀取之頁面的一或多個區塊)未通過糾錯碼檢驗,則可觸發階段II(和階段III)以進行錯誤部分(例如,一或多個區塊)的唯讀(read only),而非進行整個記憶體資料(例如,整個頁面)的唯讀。
此技術可降低糾錯碼解碼負擔、機器學習演算法的平均在線推論時間、運算和額外記憶體負擔、讀取延遲與開發成本,並提高讀取準確度與記憶體系統的可靠度。此技術可應用於各種類型的揮發性記憶體裝置或非揮發性記憶體裝置,例如NAND快閃記憶體(flash memory)、NOR快閃記憶體、電阻式隨機存取記憶體(resistive random-access memory,RRAM)、像是相變隨機存取記憶體(phase-change random-access memory,PCRAM)的相變記憶體(PCM,phase-change memory)、自旋轉移矩磁阻式隨機存取記憶體(STT-MRAM)等。此技術還可應用於電荷捕捉式(charge-trapping)記憶體裝置,例如矽-氧化物-氮化物-氧化物-矽(silicon-oxide-nitride-oxide-silicon,SONOS)記憶體裝置以及浮動閘極(floating-gate)記憶體裝置。此技術可應用於二維(2D)記憶體裝置或三維(3D)記憶體裝置。此技術可應用於各種記憶體類型,例如單階儲存單元(single-level cell,SLC)裝置、像是2階儲存單元裝置的多階儲存單元(multi-level cell,MLC)裝置、三階儲存單元(triple-level cell,TLC)裝置、四階儲存單元(quad-level cell,QLC)裝置或五階儲存單元(penta-level cell,PLC)裝置。額外地或替代地,此技術可應用於各種類型的裝置與系統,例如安全數位卡(secure digital (SD) card)、嵌入式多媒體卡(embedded multimedia card,eMMC)或固態硬碟(solid-state drive,SSD)、嵌入式系統等。
第1A圖繪示具有裝置110與主機120的系統100示例。裝置110包括裝置控制器112與記憶體116。裝置控制器112包括處理器113與內部記憶體114。
在一些實施方式中,裝置110是儲存裝置。例如,裝置110可以是嵌入式多媒體卡、安全數位卡、固態硬碟或一些其它適當儲存器。在一些實施方式中,裝置110是智能手錶(smart watch)、數位相機或媒體播放器(media player)。在一些實施方式中,裝置110是耦接至主機120的客戶端裝置(client device)。例如,裝置110是作為主機120之數位相機或媒體播放器的安全數位卡。
裝置控制器112是通用微處理器(general-purpose microprocessor)或專用微控制器(application-specific microcontroller)。 在一些實施方式中,裝置控制器112是裝置110的記憶體控制器。以下部分依據裝置控制器112是記憶體控制器的實施方式來描述各種技術。然而,以下部分描述的技術也適用於裝置控制器112是相異於記憶體控制器之另一類型控制器的實施方式。
處理器113用以執行指令與處理資料。指令包括韌體指令(firmware instruction)和/或其它編程指令,韌體指令與其它編程指令分別作為韌體代碼(firmware code)和/或其它編程代碼而儲存於次級記憶體(secondary memory)。在其它適當資料中,此資料包括編程資料,此編程資料對應至韌體和/或處理器執行的其它編程。在一些實施方式中,處理器113是通用微處理器或專用微控制器。處理器113也稱為中央處理單元(central processing unit,CPU)。
處理器113存取來自內部記憶體114的指令與資料。在一些實施方式中,內部記憶體114是靜態隨機存取記憶體(Static Random Access Memory,SRAM)或動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)。例如,在一些實施方式中,當裝置110是嵌入式多媒體卡、安全數位卡或智能手錶時,內部記憶體114是靜態隨機存取記憶體。在一些實施方式中,當裝置110是數位相機或媒體播放器時,內部記憶體114是動態隨機存取記憶體。
在一些實施方式中,如第1A圖所示,內部記憶體114是快取(cache)記憶體,其包含於裝置控制器112。內部記憶體114儲存指令代碼和/或運行期間處理器113請求的資料,其中此指令代碼對應至處理器113執行的指令。
裝置控制器112將指令代碼和/或資料從記憶體116轉移至內部記憶體114。在一些實施方式中,記憶體116是儲存裝置或非揮發性記憶體(例如,NAND快閃記憶體裝置或一些其它適當的非揮發性記憶體裝置),其用於指令和/或資料的長期儲存。在記憶體116是NAND快閃記憶體的實施方式中,裝置110是快閃記憶體裝置(例如,快閃記憶卡),並且裝置控制器112是NAND快閃控制器。例如,在一些實施方式中,當裝置110是嵌入式多媒體卡或安全數位卡時,記憶體116是NAND快閃記憶體;在一些實施方式中,當裝置110是數位相機時,記憶體116是安全數位卡;而在一些實施方式中,當裝置110是媒體播放器時,記憶體116是硬碟。
在一些實施方式中,裝置控制器112用以接收來自主機120的資料與指令,並且發送資料至主機120。裝置控制器112還用以發送資料與命令至記憶體116,並且用以接收來自記憶體116的資料。例如,裝置控制器112用以發送資料與寫入命令,以指示記憶體116將資料儲存至指定位址(specified address)。作為另一示例,裝置控制器112用以接收來自主機120的讀取請求(或讀取命令),並且將相應讀取命令發送至記憶體116,以讀取來自記憶體116的指定位址的資料。
在一些實施方式中,如第1A圖所示,裝置控制器112包括糾錯碼電路160。糾錯碼電路160可包括糾錯碼編碼器162與糾錯碼解碼器164。糾錯碼編碼器162可用以接收要儲存於記憶體116的資料,並且可用以產生碼字(codeword) (例如,利用糾錯碼編碼方式來編碼資料)。糾錯碼編碼器162可包括里德所羅門編碼器(Reed Solomon encoder)、博斯-查德胡里-霍昆格姆(Bose-Chaudhuri-Hocquenghem,BCH)編碼器、低密度奇偶檢查編碼器(LDPC encoder)或其任意組合。取決於糾錯碼的糾錯能力,糾錯碼解碼器164可用以對從記憶體116讀取的資料進行解碼,以檢測和糾正可能存在於資料的任何位元錯誤。
在一些實施方式中,糾錯碼電路160實施於記憶體116。在一些實施方式中,記憶體116包括記憶側糾錯碼電路(memory-side ECC circuit),其類似於裝置控制器112的糾錯碼電路160。藉由將記憶側糾錯碼電路整合至記憶體116,透過電性連接板的資料轉移量可大幅減少,這可以降低裝置110的功耗。在一些情況下,將至少部分的糾錯碼編碼/解碼能力從裝置控制器112移動至記憶體116,可分散(或分離)整個裝置110的熱源(或電源),並可增加裝置控制器112的散熱(heat dissipation)。
如以下進一步詳述的,裝置控制器112可用以確定讀取電壓(例如,最佳讀取電壓),其用於讀取來自記憶體116的資料(例如,回應於來自主機120的讀取請求)。在一些實施例中,裝置控制器112儲存查找表、函數或雜湊,將最佳讀取電壓與第一組參數(例如,位址資訊、編程/擦除週期數、讀取溫度、讀取干擾程度或保留時間)相關聯。像是編程指令的軟體組件可實施查找表、函數或雜湊。
在一些實施例中,裝置控制器112包括硬體組件(例如,離線讀取電路170),其用以透過離線讀取電壓判定(例如,階段I期間)來確定初始讀取電壓。離線讀取電路170可以是機器學習電路。例如,在記憶體116上可預先執行監督式機器學習離線訓練與推論(例如,製造裝置110期間),以確定相關於記憶體116的輸入參數與最佳讀取電壓之間的關係。監督式機器學習離線訓練與推論的結果(例如,轉移函數)可作為機器學習資料進行儲存,機器學習資料可儲存於裝置控制器112(例如,內部記憶體114)。在一些實施方式中,機器學習資料也可儲存於記憶體116。
在一些實施例中,裝置控制器112包括硬體組件(例如,在線讀取電路180),其用以透過基於第二組參數與先前讀取輸出的一或多個結果之在線讀取電壓判定(例如,階段III期間)來確定優化讀取電壓。在線讀取電壓判定的第二組參數可包括離線讀取電壓判定的第一組參數。在線讀取電路180可以是機器學習電路,其用以利用一或多個機器學習演算法,以依據第二組輸入參數確定讀取電壓。機器學習演算法可包括線性回歸、支援向量回歸、卷積神經網路、循環神經網路或其他適當演算法。如果利用確定的讀取電壓之記憶體資料讀取輸出未通過糾錯碼檢驗,則在線讀取電路180可調整第二組輸入參數(例如,藉由添加或更新一或多個參數),並產生新的讀取電壓。如果利用新讀取電壓的記憶體資料讀取輸出通過糾錯碼檢驗,則輸出新讀取輸出以作為記憶體資料的目標讀取輸出。在線讀取電壓判定的結果(例如,讀取電壓以及像是第二組參數的相關資訊)可用於校准或更新離線讀取電路170儲存的讀取電壓資料(或查找表)。亦即,儲存的讀取電壓資料內容可動態更新。在一些實施方式中,像是機器學習電路的單一電路實施離線讀取電路170與在線讀取電路180。
如以下進一步詳述的,記憶體116包括芯片上谷追蹤電路190,其用以利用基於來自離線讀取電路170的資訊之谷追蹤架構來確定讀取電壓。例如,離線讀取電路170可提供初始讀取電壓與谷追蹤電壓範圍至芯片上谷追蹤電路190。一旦利用離線讀取電路170的離線初始讀取失敗,則可觸發芯片上谷追蹤電路190。在谷追蹤架構中,在連續的相異電壓下讀出和計數儲存於記憶體的位元,並且觀察顯示了讀取電壓的每次變化而導致的位元數量變化之曲線。位元數量變化最小的電壓可對應至曲線的谷底,並可提供最佳讀取電壓。谷追蹤讀取可基於透過電壓或電流對晶胞數量進行計數,並且可用以找出因保留或逐片變異而導致的分佈趨勢。
在一些實施方式中,芯片上谷追蹤電路190包括類比數位轉換器(analog-to-digital converter,ADC)電路。ADC電路可包括累加電路(accumulating circuit),其用以在讀取操作期間累加來自多個位元的電流(或電壓)以獲得電流(或電壓)的總和。累加電路可包括ADC,其用以將電流(或電壓)總和的類比訊號轉換為數位值。ADC電路能夠獲得更快的計數時間,例如在谷值搜尋期間能夠確定校準的讀取電壓(或最佳讀取電壓)。例如,從預定讀取電壓(例如,來自離線讀取電路170)開始,谷追蹤範圍(例如,透過離線讀取電路170確定)的連續不同讀取電壓可作為谷值搜尋的一部分進行檢驗。對於各個檢驗電壓,ADC電路可以在對應至字元線的頁面上累積來自多個記憶體晶胞的電流,並可獲得電流總和,且可將總和轉換為數位值。芯片上谷追蹤電路190可比較來自連續不同讀取電壓的數位值,並依據多個數位值與不同讀取電壓確定校准讀取電壓(calibrated read voltage)。在一些情況下,提供位元數量變化最小的讀取電壓可對應至谷底,並且可提供最佳或校準讀取電壓。為了提高準確度,芯片上谷追蹤電路190也可比較相鄰讀取電壓的數位值之間的第一差值或者甚至是相鄰第一差值之間的第二差值,以確定谷底。
如果利用芯片上谷追蹤電路190的記憶體資料讀取輸出通過糾錯碼檢驗,則記憶體資料讀取輸出可作為記憶體資料的目標讀取輸出來進行輸出。如果記憶體資料讀取輸出未通過糾錯碼檢驗,則可觸發在線讀取電路180(例如,透過裝置控制器112),以依據糾錯碼檢驗結果與第二組參數確定新的讀取電壓。
記憶體116包括多個區塊。記憶體116可以是具有2D記憶體區塊的二維(2D)記憶體。記憶體116還可以是具有3D記憶體區塊的三維(3D)記憶體。各個區塊可包括相同數量的頁面。在區塊中,各頁面具有唯一編號。依據區塊的頁面的唯一編號順序將資料儲存於區塊的頁面。各個頁面可分別讀取或寫入,並且可共同擦除(erase)區塊中的頁面。
在一些實施方式中,區塊可區分為多個子區塊。各個子區塊可包括一或多個頁面。子區塊中的每一頁可單獨讀取或寫入。各個子區塊的一或多個頁面可共同擦除。在一些實施方式中,記憶體116包括一或多個晶片(die)。各個晶片可以是記憶體芯片,並包括多個記憶體陣列與周邊電路(peripheral circuitry)。記憶體陣列可包括多個平面,而各個平面包括記憶體晶胞的多個實體區塊(physical block)。各實體區塊可包括記憶體晶胞的多個頁面,其可儲存多個磁區的資料(sector of data)。例如,透過像是第1A圖的裝置控制器112的記憶體控制器可指定超級區塊(super block),以組合來自不同平面的至少一實體區塊。超級區塊的各實體區塊來自不同平面,亦即任何平面不會提供超過一個區塊至超級區塊。超級區塊包括多個超級頁面(super page),各個超級頁面組合來自超級區塊的相應的多個實體區塊的多個頁面。超級頁面的各個頁面在其相應的實體區塊中可具有相同頁面編號(page number)。超級頁面以及超級頁面中的所有頁面可同時進行編程。
第1B圖繪示記憶體116為2D記憶體之2D記憶體區塊140的示例配置。區塊140包括記憶體晶胞141,該記憶體晶胞141串聯耦接(coupled in series)至行位元線(column bit line)BL
0、BL
1、…、BL
n-1和BL
n以形成多個晶胞串列(cell string)144,並且記憶體晶胞141串聯耦接至列字元線(row word line)WL
0、WL
1、…、WL
n-1和WL
n以形成多個晶胞頁面(cell page)142。
區塊的各個記憶體晶胞包括電晶體結構,其具有閘極、汲極、源極以及限定於汲極和源極之間的通道。各個記憶體晶胞位於字元線與位元線之間的交叉處,其中閘極連接至字元線,汲極連接至位元線,源極連接至源極線,而源極線依序連接至公共接地端(common ground)。在一些示例中,快閃記憶體晶胞的閘極具有雙閘極(dual-gate)結構,其包括控制閘極與浮動閘極(floating gate),其中浮動閘極懸浮於兩個氧化層之間,以捕捉編程單元的電子。
晶胞串列144可包括多個記憶體晶胞141、串列選擇電晶體(string select transistor,SST)143與接地選擇電晶體(ground select transistor,GST)145,記憶體晶胞141、串列選擇電晶體143與接地選擇電晶體145皆串聯連接(connected in series)。串列選擇電晶體143的閘極連接至串列選擇線(string select line,SSL)146。不同串列的串列選擇電晶體143的閘極也連接至相同的串列選擇線146。記憶體晶胞141的閘極分別連接至字元線WL
0、WL
1、…、WL
n-1、WL
n。晶胞串列144或記憶體晶胞141透過接地選擇電晶體145連接至共源線(common source line,CSL)149。共源線149可耦接至接地端。接地選擇電晶體145的閘極連接至接地選擇線(ground select line,GSL)148。不同晶胞串列144的接地選擇電晶體145的閘極也連接至相同的接地選擇線148。
晶胞頁面142可包括多個記憶體晶胞141。晶胞頁面142的記憶體晶胞141的閘極串聯耦接至相應的字元線(WL)。當輸入電壓施加至字元線時,輸入電壓也施加至晶胞頁面142的記憶體晶胞141的閘極。為了在讀取操作中讀取區塊140的特定晶胞頁面142,施加較低電壓至對應於特定的晶胞頁面142的字元線上。同時,施加更高電壓至區塊140的其他晶胞頁面上。
第1C圖繪示當記憶體116(第1A圖所示)為3D記憶體之3D記憶體區塊150示例。3D記憶體區塊150可以是第1B圖的2D記憶體區塊(例如,區塊140)的堆疊。記憶體晶胞157排列於三個維度(例如,在XYZ坐標系統中),並耦接至多個字元線以形成多個晶胞頁面(導電層或字元線層)152,且記憶體晶胞157耦接至多個位元線(例如,位元線BL
<n>、BL
<n+1>)以形成多個晶胞串列154。晶胞頁面152可以是一層(例如,在XY平面中),而且同一層的記憶體晶胞157可耦接至一條字元線並具有相同電壓。各個晶胞頁面152可連接至驅動電路(例如,X解碼器或掃描驅動器)的相應接觸焊墊(pad)。
晶胞串列154包括多個記憶體晶胞157,其沿Z方向垂直串聯連接(connected in series vertically),其中記憶體晶胞可用以作為耦接至串列選擇線156的串列選擇電晶體,並且記憶體晶胞可用以作為耦接至接地選擇線158的接地選擇電晶體。晶胞串列154連接至一或多個驅動器,例如資料驅動器。記憶體晶胞157的晶胞串列154透過接地選擇電晶體連接至共源線159。串列選擇線156可以是導線或層,其形成於晶胞頁面(或字元線層)152的頂部。3D記憶體區塊150可包括多個串列選擇線156,其位於晶胞頁面152的頂部。共源線159可以是導電層(或多條導線),其形成於3D記憶體的基板上。共源線159可耦接至接地端。
記憶體晶胞可表示多種狀態,其包括擦除狀態以及一或多個編程狀態。例如,在一些情況下,記憶體晶胞是單階儲存單元(SLC),其可儲存1位元,並可表示2種狀態,此2種狀態包括擦除狀態ER與編程狀態A。一條字元線的記憶體晶胞可形成一頁面。在一些情況下,記憶體晶胞是多階儲存單元(例如,2階儲存單元),其可儲存2位元,並可表示4種狀態,此4種狀態包括擦除狀態ER與三種編程狀態A、B與C。一條字元線的記憶體晶胞可形成兩頁面。在一些情況下,記憶體晶胞是三階儲存單元,其可儲存3位元,並可表示8種狀態,此8種狀態包括擦除狀態ER和七個編程狀態A、B、C、D、E、F和G。一條字元線的記憶體晶胞可形成三頁面。狀態可具有逐漸上升的電壓範圍,而擦除狀態可使用最低電壓範圍。
第2A圖繪示依據一或多個實施方式之記憶體的記憶體晶胞的不同狀態的臨界電壓分佈與讀取電壓的示例圖200。 記憶體晶胞可以是第1B圖的記憶體晶胞141或是第1C圖的記憶體晶胞157。記憶體可以是第1A圖的記憶體116(例如,NAND快閃記憶體)。僅作為說明目的,記憶體晶胞是能儲存兩位元資料的多階儲存單元。
可編程或擦除記憶體晶胞,以具有四種狀態(即擦除狀態ER與編程狀態A、B、C)的任何一種。在一些示例中,ER為擦除狀態(1,1),而A、B、C為編程狀態(0,1)、(0,0)與(1,0)。擦除狀態ER與編程狀態A、B、C具有逐漸上升的讀取電壓。多階儲存單元的NAND快閃記憶體可將字元線的各個記憶體晶胞的兩位元劃分為兩個頁面,此兩個頁面為一次資料編程的單位。一條字元線的所有記憶體晶胞的最低有效位元(least significant bit,LSB)形成字元線的最低有效位元頁面,而字元線上的這些記憶體晶胞的最高有效位元(most significant bit,MSB)形成字元線的最高有效位元頁面。
一旦被編程或擦除,記憶體晶胞具有相應的臨界電壓。臨界電壓是記憶體晶胞的特性。記憶體晶胞可以是浮動閘極電晶體。當高於或等於臨界電壓的讀取電壓施加至記憶體晶胞的閘極時,可導通記憶體晶胞。當低於臨界電壓的讀取電壓施加至記憶體晶胞的閘極時,可關閉記憶體晶胞。讀取動作不是編程或擦除動作,並不旨在變更記憶體晶胞的狀態。
各種狀態對應至下限電壓(lower limit voltage)與上限電壓(higher limit voltage)之間的範圍內的臨界電壓分佈。具有此範圍內的臨界電壓的記憶體晶胞視為處於相應狀態。換句話說,處於狀態的記憶體晶胞具有此範圍內的臨界電壓。例如,如果記憶體晶胞具有下限電壓Vl0與上限電壓Vh0之間的臨界電壓,則記憶體晶胞處於擦除狀態ER;如果記憶體晶胞具有下限電壓Vl1與上限電壓Vh1之間的臨界電壓,則記憶體晶胞處於編程狀態A;如果記憶體晶胞具有下限電壓Vl2與上限電壓Vh2之間的臨界電壓,則記憶體晶胞處於編程狀態B;以及如果記憶體晶胞具有下限電壓Vl3與上限電壓Vh3之間的臨界電壓,則記憶體晶胞處於編程狀態C。曲線202、204、206、208分別示出了記憶體晶胞的相應狀態(即擦除狀態ER以及編程狀態A、B、C)的臨界電壓分佈。
在讀取操作期間,讀取電壓可施加至耦接於選定記憶體晶胞的閘極之字元線,以確定選定記憶體晶胞為導通狀態或關閉狀態。當施加大於擦除狀態ER且小於編程狀態A的臨界電壓之讀取電壓V
Rd1時,記憶體晶胞具有擦除狀態ER時則導通,記憶體晶胞具有編程狀態A、B或C時則關閉;當施加大於編程狀態A且小於編程狀態B的臨界電壓之讀取電壓V
Rd2時,記憶體晶胞具有擦除狀態ER或編程狀態A時則導通,記憶體晶胞具有編程狀態B或C時則關閉;當施加大於編程狀態B且小於編程狀態C的臨界電壓之讀取電壓V
Rd3時,若記憶體晶胞具有擦除狀態ER、編程狀態A或B時則導通,記憶體晶胞具有編程狀態C時則關閉。當施加大於所有狀態(即擦除狀態ER以及編程狀態A、B、C)的臨界電壓之通過電壓V
Rdpass時,不論記憶體晶胞具有何種狀態,記憶體晶胞皆導通。
在讀取操作期間,通過電壓V
Rdpass施加至其它記憶體晶胞(其與選定記憶體晶胞位於相同位元線),並且其它記憶體晶胞導通。因此,如果選定記憶體晶胞在讀取電壓V
Rd下導通,則相應位元線的記憶體晶胞形成導電路徑(conductive path),並且會有電流或電壓變化,其可透過耦接至位元線的電流或電壓感測器進行檢測。如果選定記憶體晶胞在讀取電壓下關閉,則相應位元線的記憶體晶胞不會形成導電路徑,並且不會有電流或電壓變化,其可透過耦接至位元線的電流或電壓感測器進行檢測。
由於重複的讀取操作,可能會發生讀取干擾現象。在讀取干擾現象中,記憶體晶胞的臨界電壓異常上升。如第2A圖所示,在一些情況下,擦除狀態ER分佈的曲線202包括點曲線203,此點曲線203包括較高的臨界電壓。例如,新的上限電壓Vh0’大於上限電壓Vh0。當新的上限電壓Vh0’落於編程狀態A的臨界電壓範圍(即下限電壓Vl1與上限電壓Vh1之間的範圍)時,擦除狀態ER與編程狀態A重疊(overlap)。亦即,記憶體晶胞具有重疊狀態。當施加讀取電壓V
Disturb時,具有擦除狀態ER的臨界電壓之記憶體晶胞變為關閉狀態,而非導通狀態。因此,在特定讀取情況下,藉由檢測記憶體晶胞為導通或關閉,可確定記憶體晶胞是否遭受讀取干擾。在一些情況下,具有較低臨界電壓狀態(例如,擦除狀態ER與編程狀態A)的記憶體晶胞相較於具有較高臨界電壓狀態(例如,編程狀態B與編程狀態C)的記憶體晶胞更容易受到讀取干擾的影響。
第2B圖繪示依據本公開的一或多個實施方式之不同狀態的三階儲存單元記憶體晶胞的讀取電壓變化的示例圖250。記憶體晶胞可以是第1B圖的記憶體晶胞141或是第1C圖的記憶體晶胞157。如上述,三階儲存單元能儲存三位元資料。記憶體晶胞可被編程或擦除,以具有八種狀態(即擦除狀態ER和七個編程狀態A、B、C、D、E、F和G)的任何一種。在一些示例中,ER為擦除狀態(1,1,1),而A、B、C、D、E、F、G為編程狀態(1,1,0)、(1,0,0)、(0,0,0)、(0,1,0)、(0,1,1)、(0,0,1)和(1,0,1)。這八種狀態具有逐漸上升的讀取電壓。三階儲存單元的NAND快閃記憶體可將字元線的各個記憶體晶胞的三位元劃分為三個頁面,此三個頁面為一次資料編程的單位。各個頁面可包括多個區塊,例如4個區塊。各個頁面可一次讀取。在一些情況下,部分頁面(例如,一或多個區塊)也可單獨讀出。
如第2B圖的圖表252所示,可利用七個默認的讀取電壓RD[0]、RD[1]、RD[2]、RD[3]、RD[4]、RD[5]、RD[6]正確讀出三階儲存單元記憶體晶胞。相鄰狀態之間沒有重疊,並且各個讀取電壓位於相鄰狀態的臨界電壓分佈之間。由於重複的讀取操作,三階儲存單元記憶體晶胞可能會出現讀取干擾現象,並且三階儲存單元記憶體晶胞的臨界電壓異常上升(如第2B圖的圖表254所示)。如果仍利用七個默認的讀取電壓RD[0]、RD[1]、RD[2]、RD[3]、RD[4]、RD[5]、RD[6]來讀取三階儲存單元記憶體晶胞,則儲存於三階儲存單元記憶體晶胞中的位元可能會被錯誤讀出。因此,各個默認的讀取電壓可調整或更新為新的讀取電壓(或最佳讀取電壓)RD[0]'、RD[1]'、RD[2]'、RD[3]'、RD[4]', RD[5]', RD[6]',其可用於正確讀出儲存於三階儲存單元記憶體晶胞的位元。
最佳讀取電壓可相關於多個參數,其包括位址資訊、編程/擦除週期數、讀取溫度、讀取干擾程度或保留時間。
第3圖繪示多階儲存單元晶胞數量與讀取電壓之間的關係所表示的曲線圖(profile)300示例,此曲線圖具有記憶體上的不同編程/擦除週期(0、3000(或3k)、5000(或5k)、10000(或10k)、15000(或15k)、20,000(或20k)),例如是曲線PE0、PE3k、PE5k、PE10k、PE15k、PE20k。第3圖示出記憶體晶胞的臨界電壓分佈,從而使最佳讀取電壓可依據記憶體晶胞的一或多個輸入參數(例如,編程/擦除週期)而變化。當沒有編程/擦除週期時,曲線PE0可對應至第2A圖所示的臨界電壓分佈曲線。讀取電壓V1對應至第2A圖的讀取電壓V
Rd1,並且讀取電壓V1可以是最佳讀取電壓,以讀取記憶體晶胞的擦除狀態ER(1,1)。讀取電壓V2對應至第2A圖的讀取電壓V
Rd2,並且讀取電壓V2可以是最佳讀取電壓,以讀取記憶體晶胞的擦除狀態ER(1,1)以及編程狀態A(0,1)。讀取電壓V3對應至第2A圖的讀取電壓V
Rd3,並且讀取電壓V3可以是最佳讀取電壓,以讀取記憶體晶胞的擦除狀態ER(1,1)、編程狀態A(0,1)與編程狀態B(0,0),並且可確定剩餘的記憶體晶胞具有編程狀態C(1,0)。隨著記憶體上的編程/擦除週期數的增加,最佳讀取電壓增加,並且曲線變得更平滑(shallower)。
作為示例,在谷追蹤讀取架構中,如果讀取電壓V3作為初始讀取電壓以利用10k編程/擦除週期來讀取多階儲存單元記憶體晶胞,臨界電壓分佈曲線顯著變化且最佳讀取電壓偏移至V3',致使谷追蹤範圍可能會太大,而且讀取可能會很耗時。相較之下,離線讀取電壓判定(例如,利用監督式機器學習訓練)可能會導致龐大記憶體負擔,以達到高準確度。
如以下進一步詳述的,本公開的實施方式提供了利用離線讀取電壓判定結果之控制器輔助的谷追蹤讀取架構,其可縮小最佳讀取電壓的搜尋範圍,並可提高讀取準確度、可靠度以及判定過程的速度。此外,在線優化讀取(online optimized read) (例如,利用至少一種機器學習演算法)可更提高讀取準確性。
第4圖繪示依據本公開的一或多個實施方式之確定具有多個階段的讀取電壓之記憶體系統400示例。記憶體系統400可以是第1A圖的裝置110。記憶體系統400可與主機410(例如,第1A圖的主機120)進行通訊。
記憶體系統400包括記憶體420(例如,第1A圖的記憶體116)與記憶體控制器430(例如,第1A圖的裝置控制器112)。記憶體420可以是非揮發性記憶體裝置,並可包括多個非揮發性記憶體芯片。記憶體控制器430可包括記憶體介面433,其用以與記憶體420進行通訊。記憶體介面433可以是開放式NAND快閃記憶體介面(ONFI)或切換介面(toggle interface)。記憶體控制器430還可以包括主機介面431,其用以與主機410進行通訊。
在一些實施方式中,記憶體控制器430包括糾錯碼解碼器,例如是第1A圖的糾錯碼解碼器164。取決於糾錯碼架構的糾錯能力,糾錯碼解碼器可用以執行糾錯碼解碼434(例如,透過BCH解碼或低密度奇偶檢查碼解碼),以對從記憶體420讀取的記憶體資料進行解碼,進而檢測和糾正可能存在於資料的的任何位元錯誤。記憶體控制器430可用以回應於接收到讀取請求(例如,透過主機介面431接收來自主機410的讀取請求),以確定讀取來自記憶體420的記憶體資料之讀取電壓(例如,最佳讀取電壓)。讀取請求可包括要從記憶體420讀取的記憶體資料的相關資訊,例如區塊位址、字元線位址和/或頁面位址。
在一些實施方式中,回應於來自主機410的讀取請求,記憶體控制器430可利用初始離線讀取電壓判定(階段I 432)來確定第一讀取電壓Vl。在階段I中,記憶體控制器可利用基於記憶體資料相關的第一組輸入參數的儲存的讀取電壓資料來確定第一讀取電壓。第一組輸入參數可包括區塊位址、字元線位址、頁面位址、編程/擦除週期數、讀取溫度、保留時間、讀取干擾程度和/或任何其他適當參數。讀取溫度表示讀取記憶體資料時的記憶體溫度。保留時間可表示不失真(distortion)儲存記憶體資料的記憶體晶胞的時段。讀取干擾程度表示記憶體資料的讀取干擾程度。
在一些情況下,查找表、函數或雜湊可確定第一讀取電壓,並且可由具有編程指令的軟體組件來實施。在一些情況下,記憶體控制器310包括引擎、模組或電路(例如,第1A圖的離線讀取電路170),其執行階段I 432。第一讀取電壓可透過利用至少一機器學習演算法(例如,具有監督式機器學習訓練的離線推論機器學習讀取演算法)的機器學習電路來進行推論。例如,可透過監督式機器學習離線訓練和推論來創建轉移函數。轉移函數可包括查找表,其具有小於正常查找表的尺寸(例如,基於群組的離線訓練)。轉移函數還可以包括雜湊函數、k平均值或任何其他適當形式。為了減少記憶體負擔,在階段I 432中,記憶體控制器可利用一些參數,以提供優於默認讀取的合理初始讀取。
記憶體控制器430可利用階段I 432確定的第一讀取電壓來讀取來自記憶體420的記憶體資料,以獲得第一讀取輸出,然後糾錯碼解碼器可利用糾錯碼解碼434對第一讀取輸出進行解碼(例如,透過硬低密度奇偶檢查碼解碼),以檢測存在於記憶體資料的錯誤位元。記憶體控制器430可藉由確定錯誤位元在檢驗步驟中是否由糾錯碼解碼器進行糾正,以確定第一讀取輸出是否通過糾錯碼檢驗。如果錯誤位元可進行糾正,則記憶體控制器430確定記憶體資料的第一讀取輸出通過糾錯碼檢驗,並且記憶體資料的第一讀取輸出可作為記憶體資料的目標讀取輸出以輸出至如主機410。
如果錯誤位元無法糾正,則記憶體控制器430可確定第一讀取輸出未通過糾錯碼檢驗。在一些情況下,記憶體控制器430可確定至少一部分的第一讀取輸出未通過糾錯碼檢驗且剩餘(或剩餘部分)的第一讀取輸出通過糾錯碼檢驗。例如,記憶體資料包括頁面,其具有四個區塊。第一區塊與第二區塊的讀取輸出未通過糾錯碼檢驗,而第三區塊與第四區塊的讀取輸出通過糾錯碼檢驗。記憶體控制器430可記錄第一區塊與第二區塊的資訊,並將此資訊提供至記憶體420,以供記憶體420在階段II 422中進一步讀取,而第三區塊與第四區塊的讀出可視為沒有進一步讀取第三區塊與第四區塊的目標讀取輸出。
階段II 422採用芯片上谷追蹤讀取架構。在一些實施方式中,記憶體420包括芯片上谷追蹤電路(例如,第1A圖的芯片上谷追蹤電路190),其用以利用基於第二組參數的芯片上谷追蹤讀取架構來確定讀取電壓。第二組參數可包括來自記憶體控制器430的資訊。例如,記憶體控制器430可提供第一讀取電壓V1與谷追蹤電壓範圍ΔV至記憶體420。記憶體420可利用基於第一讀取電壓V1與谷追蹤電壓範圍∆V的芯片上谷追蹤架構來確定第二讀取電壓V2。第一讀取電壓V1與谷追蹤電壓範圍ΔV可確定搜尋電壓範圍[V1-ΔV/2,V1+ΔV/2]。依據第一讀取電壓V1與多個參數(例如,第一組輸入參數),記憶體控制器430可確定谷追蹤電壓範圍ΔV。多個參數可以包括區塊位址、字元線位址、頁面位址、編程/擦除週期數、讀取溫度、保留時間、讀取干擾程度和/或任何其他適當參數。
第5A圖繪示三階儲存單元記憶體晶胞的谷追蹤範圍示例圖。如第2B圖所示,三階儲存單元記憶體晶胞具有八種狀態,並且可透過七個讀取電壓RD[0]至RD[6](或RD[0:6])來讀出。各個讀取電壓與相關谷追蹤範圍可依據多個參數單獨決定。例如,第5A圖示出三階儲存單元記憶體晶胞的資訊,其包括字元線索引(word line index)(例如,2、3)、頁面索引(page index)(例如,0、1、2、3)、編程/擦除週期(例如,3K)與保留時間(例如,2年)。對應至各個讀取電壓RD[0:6]的默認谷追蹤範圍為8個單位,其中一個單位為0.0125V。
最佳讀取電壓可能會受到多個參數的影響。具有不同參數的不同記憶體晶胞可擁有不同的最佳讀取電壓變化。例如,具有較低狀態的記憶體晶胞相較於具有較高狀態的記憶體晶胞可能會退化得更嚴重,因此,較低狀態的谷追蹤範圍可設定為大於較高狀態的谷追蹤範圍。
在一些實施方式中,記憶體控制器(例如第4圖的記憶體控制器430)依據記憶體控制器(例如,第4圖的離線初始讀取的階段I 432)先前讀取的結果來確定記憶體晶胞的谷追蹤範圍。在一些實施方式中,記憶體420依據記憶體控制器的先前讀取結果也可確定谷追蹤範圍。
在離線初始讀取中,第一讀取電壓可基於利用相關於目標記憶體資料的第一組參數的儲存的讀取電壓資料來確定。儲存的讀取電壓資料可基於利用相關於記憶體與相應的最佳讀取電壓的多個輸入的監督式機器學習訓練來產生。依據第一讀取電壓以及用於確定第一讀取電壓的相應最佳讀取電壓,可確定第一讀取電壓的谷追蹤範圍。
在一些示例中,谷追蹤範圍可依據以下等式來決定:
Range
VT= α ∙|RD
ML– AVG (RD
Optimal for training)| (等式1)
其中,Range
VT表示谷追蹤範圍,RD
ML表示機器學習獲得的第一讀取電壓,RD
Optimal for training表示機器學習的訓練輸入的相應最佳讀取電壓,而α表示縮放因子(scaling factor) (例如,2)。
在一些示例中,谷追蹤範圍被設置為具有上限(或上限閾值) (例如,30)以及下限(或下限閾值) (例如,2),上限(或上限閾值)用以避免超出合理範圍,下限(或下限閾值)用以確保可觸發谷追蹤讀取判定(階段II)。
第5B圖繪示第5A圖的那些相同三階儲存單元記憶體晶胞的谷追蹤範圍示例圖,但具有來自記憶體控制器的輸入。相異於第5A圖所示之不同狀態的三階儲存單元記憶體晶胞的相同默認谷追蹤範圍,記憶體控制器基於階段I的結果所確定的谷追蹤範圍係依據多個參數而變化,該些參數包括字元線索引、頁面索引與狀態。例如,示出了具有較大臨界電壓變化的記憶體晶胞的谷追蹤範圍較大,而具有較小臨界電壓變化的記憶體晶胞的谷追蹤範圍較小。如此,階段II的谷追蹤讀取架構可提高讀取準確度、速度與可靠度。
再參照第4圖,於階段II,在確定的搜尋電壓範圍中,於連續不同讀取電壓下讀出和計數儲存於記憶體420的位元,並且觀察顯示了讀取電壓的每次變化而導致的位元數量變化之曲線。位元數量變化最小的電壓可對應至曲線的谷底,並可提供最佳讀取電壓以作為第二讀取電壓V2。如上述,谷追蹤讀取架構還可基於透過電壓或電流來對晶胞數量進行計數。
在確定第二讀取電壓V2之後,記憶體420可利用第二讀取電壓產生記憶體資料(例如,階段I的記憶體資料的錯誤部分)的第二讀取輸出。在一些情況下,記憶體420包括糾錯碼電路,其用以執行糾錯碼解碼。在一些情況下,記憶體420透過記憶體介面433將第二讀取輸出傳輸至記憶體控制器430,並且記憶體控制器430利用糾錯碼解碼434對第二讀取輸出進行解碼。
如果第二讀取輸出通過糾錯碼檢驗,則記憶體控制器430或記憶體420可輸出第二讀取輸出以作為記憶體資料的目標讀取輸出。記憶體420或記憶體控制器430可利用谷追蹤讀取(階段II 422)的結果(例如,第二讀取電壓V2與相關參數),以更新儲存讀取電壓資料,其用於確定階段I 432的初始讀取電壓。
如果第二讀取輸出未通過糾錯碼檢驗,則記憶體420或記憶體控制器430將糾錯碼檢驗的結果提供至在線優化讀取電路(例如,第1A圖的在線讀取電路180),以用於在線優化讀取(階段III 436)。在線優化讀取電路可整合至記憶體控制器430或外部微控制器。可觸發在線讀取電路,以依據第三組參數產生第三讀取電壓。第三組參數可包括先前糾錯碼檢驗的結果、階段I的第一組參數以及階段II的第二組參數。在一些示例中,第三組輸入參數包括記憶體資料的第二讀取輸出的錯誤位元計數、低密度奇偶檢查碼的校驗子(syndrome)、低密度奇偶檢查碼的迭代(iteration)次數、用於記憶體資料之各個先前讀取電壓的多個“1”位元值數量、先前糾錯碼解碼結果或任何其他適當參數。
在線優化讀取電路可以是機器學習電路,其用以利用一或多個機器學習演算法,以依據第三組參數確定第三讀取電壓。機器學習演算法可包括線性迴歸、支持向量迴歸、卷積神經網路、循環神經網路或其它適當演算法。記憶體控制器430可利用第三讀取電壓讀取來自記憶體420的記憶體資料(例如,記憶體資料的錯誤部分),以獲得記憶體資料的第三讀取輸出。然後,記憶體控制器430可利用糾錯碼解碼434對第三讀取輸出進行解碼,以確定第三讀取輸出是否通過糾錯碼檢驗。如果第三讀取輸出通過糾錯碼檢驗,則記憶體控制器可確定第三讀取輸出為記憶體資料的目標讀取輸出,並輸出記憶體資料的目標讀取輸出(例如,連同階段I獲得的其他目標讀出)至主機410。記憶體控制器可利用第三讀取電壓與第三組參數來校準和更新用於階段I 432之儲存的讀取電壓資料。
如果第三讀取輸出未通過糾錯碼檢驗,則記憶體控制器430可依據糾錯碼檢驗的結果修改第三組參數,並依據修改後的第三組參數確定新的讀取電壓,以用於讀取。在一些情況下,讀取操作的次數超過預定閾值(例如,預定時段或預定讀取次數),記憶體控制器430可確定記憶體資料讀取失敗。在一些情況下,記憶體控制器430可提供階段III的資訊至記憶體420,以執行另一谷追蹤讀取。
在一些實施方式中,如果第一讀取輸出未通過階段I的糾錯碼檢驗,則記憶體控制器確定記憶體為忙碌,並無法執行階段II,而且記憶體控制器可直接觸發在線優化讀取電路以執行階段III,這可提高讀取效率。
第6圖繪示依據一或多個實施方式之確定記憶體系統的讀取電壓的流程600示例圖。記憶體系統可以是第1A圖的裝置110或第4圖的記憶體系統400。記憶體系統可包括記憶體(例如,第1A圖的記憶體116或第4圖的記憶體420)以及記憶體控制器(例如,第1A圖的裝置控制器112或第4圖的記憶體控制器430)。
記憶體系統包括糾錯碼解碼器(例如,第1A圖的糾錯碼解碼器164),其用以執行糾錯碼解碼(例如,第4圖的糾錯碼解碼434)。在一些情況下,如第1A圖與第4圖所示,糾錯碼解碼器包含於記憶體控制器。在一些情況下,糾錯碼解碼器包含於記憶體。在一些情況下,糾錯碼解碼器部分在記憶體控制器且部分在記憶體。在一些情況下,記憶體控制器包括控制側糾錯碼解碼器(controller-side read circuit ECC decoder),並且記憶體包括記憶側糾錯碼解碼器。
記憶體控制器可包括離線讀取電路(例如,第1A圖的離線讀取電路170),其用以執行初始離線讀取(例如,第4圖的階段I 432)。記憶體控制器還可包括在線讀取電路(例如,第1A圖的在線讀取電路180),其用以執行優化在線讀取(例如,第4圖的階段III 436)。離線讀取電路與在線讀取電路可實施於積體電路或單一電路(例如,機器學習電路)。記憶體可包括谷追蹤電路(例如,第1A圖的芯片上谷追蹤電路190),其用以執行谷追蹤讀取(例如,第4圖的階段II 422)。
在步驟602,流程600開始。流程600可回應於接收到讀取請求(例如,來自像是第1A圖的主機120或第4圖的主機410的主機裝置)而開始。讀取請求可指示讀取來自記憶體的目標記憶體資料。記憶體資料可儲存於記憶體的指定位址(例如,指定區塊的指定頁面)。
在步驟604,於離線初始讀取階段(例如,第4圖的階段I 432),記憶體控制器(例如,離線讀取電路)確定第一讀取電壓,並且記憶體控制器利用第一讀取電壓獲得第一讀取輸出,以讀取來自記憶體的目標記憶體資料。記憶體可利用第一讀取電壓讀取目標記憶體資料,以獲得第一讀取輸出,並將第一讀取輸出傳送至記憶體控制器。
記憶體控制器可收集要從記憶體讀取的目標記憶體資料相關的第一組參數。第一組參數可包括像是區塊位址、頁面位址、字元線位址、編程/擦除週期數(或編程/擦除週期計數)、讀取溫度、讀取干擾程度或保留時間的位址資訊之至少其中之一。記憶體控制器可利用基於第一組參數的儲存的讀取電壓資料來確定第一讀取電壓。
儲存的讀取電壓資料可儲存於記憶體控制器或記憶體。儲存的讀取電壓資料可基於利用相關於記憶體及相應的最佳讀取電壓的多個輸入的監督式機器學習訓練來產生。在該些輸入的個別輸入之下,各個最佳讀取電壓對應至記憶體的個別頁面之讀取輸出的最小錯誤位元計數。各個輸入可包括多個參數的相應值。多個參數可包括第一組參數。各個參數可對記憶體的記憶體晶胞特性具有相應影響程度,並且可依據多個參數的相應影響程度來確定輸入的多個參數的數值間隔。在製造記憶體系統期間以及製造記憶體之後,可執行離線執行監督式機器學習訓練。在一些示例中,儲存的讀取電壓資料包括轉移函數,該轉移函數依據監督式機器學習訓練來產生,並且轉移函數表示多個參數的輸入與最佳讀取電壓之間的關係。轉移函數可包括查找表(lookup table)、雜湊函數(hash function)或k-平均值。
在步驟606,糾錯碼解碼器對目標記憶體資料的第一讀取輸出進行解碼。在一些情況下,糾錯碼解碼器可利用硬判定解碼架構(例如,硬低密度奇偶檢查碼解碼)。在一些情況下,糾錯碼解碼器可先利用硬判定解碼架構。若失敗,糾錯碼解碼器可利用軟判定解碼架構(例如,軟低密度奇偶檢查碼解碼)。在步驟608,記憶體控制器確定第一讀取輸出是否通過第一糾錯碼檢驗(例如,確定第一讀取輸出的錯誤位元是否可透過糾錯碼架構進行糾正)。
如果第一讀取輸出通過第一糾錯碼檢驗,則流程600於步驟624結束。記憶體控制器可將第一讀取輸出確定為目標記憶體資料的目標讀取輸出,並且將目標讀取輸出傳輸至主機。如果記憶體單元是多階儲存單元、三階儲存單元或五階儲存單元,則可利用流程600分別確定多個讀取電壓,以讀取目標記憶體資料(例如,依序或並行)。
如果第一讀取輸出未通過第一糾錯碼檢驗,在步驟610,觸發記憶體以執行谷追蹤讀取架構。記憶體控制器將步驟604確定的第一讀取電壓傳輸至記憶體。記憶體依據第一讀取電壓確定第二讀取電壓,並利用第二讀取電壓產生相關於目標記憶體資料的第二讀取輸出。
在一些實施例中,依據相關於第一組參數的第二組參數確定第二讀取電壓。第二組參數可包括第一讀取電壓與相關谷追蹤範圍。在一些情況下,例如,記憶體控制器可依據第一讀取電壓以及用於機器學習訓練的相應最佳讀取電壓來確定谷追蹤範圍,以確定第一讀取電壓。谷追蹤範圍可不大於預定上限閾值且不小於預定下限閾值。
在步驟610時記憶體執行的谷追蹤讀取中,記憶體利用基於谷追蹤範圍和第一讀取電壓的谷追蹤讀取架構來確定第二讀取電壓。記憶體可先利用第一讀取電壓與谷追蹤範圍限定的範圍的一系列序列讀取電壓來獲得相關於目標記憶體資料的讀取輸出的一系列數值,並確定對應至作為第二讀取電壓的最小系列數值之讀取電壓。一系列數值可包括對應至目標記憶體資料的一系列晶胞數量、對應至目標記憶體資料的讀出位元(read-out bit)的一系列累積電壓或電流、以及累積電壓或電流的一系列差分電壓或電流的至少其中之一。
在一些實施方式中,在步驟608,記憶體控制器藉由判斷第一讀取輸出的至少一部分未通過第一糾錯碼檢驗,以確定第一讀取輸出未通過第一糾錯碼檢驗。第一讀取輸出的至少一部分對應至目標記憶體資料的至少一錯誤部分。記憶體控制器可記錄目標記憶體資料的至少一錯誤部分的資訊,並將此資訊提供給記憶體。在步驟610,記憶體僅能利用第二讀取電壓讀取目標記憶體資料的至少一錯誤部分,以產生第二讀取輸出。
記憶體控制器還可確定第一讀取輸出的剩餘部分通過第一糾錯碼檢驗。第一讀取輸出的剩餘部分對應至目標記憶體資料的剩餘部分。記憶體控制器可確定第一讀取輸出的剩餘部分為目標記憶體資料的剩餘部分的目標讀取輸出。記憶體可不使用第二讀取電壓來讀取目標記憶體資料的剩餘部分。例如,如果目標記憶體資料包含具有多個區塊的頁面,且利用第一讀取電壓之頁面的至少一區塊的相應第一讀出未通過第一糾錯碼檢驗,則記憶體僅能利用第二個讀取電壓讀取至少一區塊,而不讀取通過第一糾錯碼檢驗之頁面的其他區塊。
在步驟612,糾錯碼解碼對第二讀取輸出進行解碼。 在一些情況下,糾錯碼解碼器可先利用硬判定解碼架構(例如,硬低密度奇偶檢查碼解碼)。若失敗,則糾錯碼解碼器可利用軟判定解碼架構(例如,軟低密度奇偶檢查碼解碼。在一些情況下,記憶體提供第二讀取輸出至記憶體控制器,且記憶體控制器對第二讀取輸出進行解碼,並且在步驟614時確定第二讀取輸出是否通過第二糾錯碼檢驗。在一些情況下,記憶體包括糾錯碼電路,該糾錯碼電路對第二讀取輸出進行解碼,並且在步驟614時確定第二讀取輸出是否通過第二糾錯碼檢驗。
如果第二讀取輸出通過第二糾錯碼檢驗,則流程600進行至步驟624。記憶體控制器輸出第二讀取輸出以作為目標記憶體資料的目標讀取輸出。若第二讀取輸出僅用於目標記憶體資料中的錯誤部分,則記憶體控制器可結合目標記憶體資料的剩餘部分的第一讀取輸出以及第二讀取輸出,以獲得目標記憶體資料的目標讀取輸出。在步驟604,記憶體控制器還可利用第二讀取電壓來更新儲存的讀取電壓資料,第二讀取電壓用於確定第一讀取電壓。
如果第二讀取輸出未通過第二糾錯碼檢驗,則在步驟616時觸發在線優化讀取。記憶體控制器依據第三組參數確定第三讀取電壓。第三組參數包括第二糾錯碼檢驗的結果或第一組參數和/或第二組參數。記憶體控制器可利用第三讀取電壓獲得相關於記憶體的目標記憶體資料的第三讀取輸出。如果只有部分的目標記憶體資料未通過第一次糾錯碼檢驗和/或第二次糾錯碼檢驗,則僅能利用第三讀取電壓對部分的目標記憶體資料進行在線優化讀取。
記憶體控制器可利用基於第二組參數的至少一機器學習演算法來確定第三讀取電壓。至少一機器學習演算法可包括線性回歸、支持向量迴歸以及具有卷積神經網路演算法或循環神經網路演算法的深度學習演算法之至少其中之一。第三組參數可包括第二讀取輸出的錯誤位元計數、各個讀取電壓獲得的“1”值數量、先前讀取電壓與當前讀取電壓之間的“1”值數量變化、讀取時間、低密度奇偶檢查碼的校驗子與低密度奇偶檢查碼的迭代次數的至少其中之一。
在步驟618,透過糾錯碼解碼對第三讀取輸出進行解碼。在一些情況下,透過硬判定解碼架構對第三讀取輸出進行解碼。在一些情況下,透過軟判定解碼架構對第三讀取輸出進行解碼。在一些情況下,先透過硬判定解碼架構對第三讀取輸出進行解碼。如果第三讀取輸出未通過糾錯碼檢驗,則可透過軟判定解碼架構對第三讀取輸出進行解碼。
在步驟620,記憶體控制器確定第三讀取輸出是否通過第三糾錯碼檢驗。回應於確定第三讀取輸出通過第三糾錯碼檢驗,在步驟622,記憶體控制器利用第三讀取電壓與第三組參數的至少其中之一來更新儲存的讀取電壓資料。記憶體控制器還可輸出第三讀取輸出以作為目標記憶體資料的目標讀取輸出。在一些情況下,記憶體控制器輸出第三讀取輸出與第一讀取輸出的剩餘部分和/或第二讀取輸出的剩餘部分以作為目標記憶體資料的目標讀取輸出。第一讀取輸出的剩餘部分通過第一糾錯碼檢驗,並且第二讀取輸出的剩餘部分通過第二糾錯碼檢驗。
如果第三讀取輸出未通過第三糾錯碼檢驗,則在步驟626時記憶體控制器確定是否已達到預定讀取閾值(predetermined read threshold)。預定讀取閾值可以是預定時間段或預定讀取次數。 例如,預定讀取次數可以是5或10。如果已達到預定讀取閾值,則在步驟628時記憶體控制器確定來自記憶體的目標記憶體資料讀取失敗。如果還沒有達到預定讀取閾值時,則流程600返回到步驟616。記憶體控制器可依據第三糾錯碼檢驗的結果來確定新的讀取電壓。
在一些實施方式中,記憶體控制器用以利用第一特定讀取電壓來獲得要從記憶體讀取的特定記憶體資料的第一特定讀取輸出,第一特定讀取電壓係依據相關於特定記憶體資料的第一特定參數集來確定。如果記憶體控制器確定第一特定讀取輸出未通過相應糾錯碼檢驗,且記憶體為忙碌,則在步驟616時記憶體控制器可直接觸發在線優化讀取。亦即,記憶體控制器可依據第二特定參數組確定第二特定讀取電壓,第二特定參數組包括相關於第一特定讀取輸出的相應糾錯碼檢驗的結果與第一特定參數組的至少其中之一。記憶體控制器可利用第二特定讀取電壓讀取特定記憶體資料以獲得第二特定讀取輸出,並確定第二特定讀取輸出是否通過相應糾錯碼檢驗。如果記憶體控制器確定第二特定讀取輸出通過相應糾錯碼檢驗,則記憶體控制器可輸出第二特定讀取輸出以作為記憶體的特定記憶體資料的目標讀取輸出。
在一些實施方式中,記憶體系統可先利用谷追蹤讀取架構來解決保留時間與逐片變異問題,然後利用在線優化讀取架構來提高檢測準確度。記憶體可用以:基於利用谷追蹤讀取架構之記憶體資料相關的第一組參數來確定第一讀取電壓,並且利用第一讀取電壓產生記憶體資料的第一讀取輸出。記憶體控制器可用以:回應於確定第一讀取輸出未通過第一糾錯碼檢驗,依據第二組參數確定第二讀取電壓,第二組參數包括第一糾錯碼檢驗的結果與第一組參數的至少其中之一;利用第二讀取電壓獲得記憶體的記憶體資料的第二讀取輸出;確定第二讀取輸出是否通過第二糾錯碼檢驗;以及回應於確定第二讀取輸出通過第二糾錯碼檢驗,輸出第二讀取輸出以作為記憶體資料的目標讀取輸出。
本公開與其他範例可實施於一或多個電腦編程產品(例如,在電腦可讀取介質(computer readable medium)上所編碼的一或多個電腦編程指令模組),此電腦編程指令模組由資料處理裝置來執行或控制資料處理設備的操作。電腦可讀取介質可以是機器可讀取儲存裝置、機器可讀取儲存基板(substrate)、記憶體裝置或是一或多個它們的組合。術語“資料處理設備”包括用於處理資料的所有設備、裝置與機器,其包括如可編程處理器、電腦、或是多個處理器或電腦。除了硬體(hardware)之外,此設備可包括電腦編程所討論之創建執行環境的代碼,例如,構成處理器韌體(firmware)的代碼、協定堆疊(protocol stack)、資料庫管理系統、操作系統,或者一或多個它們的組合。
系統可包含用於處理資料的所有設備、裝置與機器,例如包括可編程處理器、計算機、多個處理器或電腦。除了硬體之外,此系統可包括電腦編程所討論之創建執行環境的代碼,例如,構成處理器韌體的代碼、協定堆疊、資料庫管理系統、操作系統,或者一或多個它們的組合。
電腦編程(也稱為編程、軟體、軟體應用程式(software application)、腳本(script)或代碼)可以用任何形式的編程語言(programming language)來編寫,此編程語言包括編譯(compiled)或解釋語言(interpreted languages),並且可以以任何形式來配置,包括作為獨立編程(standalone program)或模組(module)、元件、子程序(subroutine)、或適用於計算環境(computing environment)的其他單元(unit)。電腦編程不需要對應至文件系統的文件。編程可儲存於文件的一部分,其保存其他編程、資料(例如,儲存於標記語言文件(markup language document)中的一或多個腳本)、專用於所討論編程的單一文件或多個協調文件(coordinated file) (例如,儲存一或多個模組、子編程或部分代碼的文件)。電腦編程可配置於一或多台電腦上的執行,多台電腦位於一地點或分布於多地點,並透過通訊網路進行互連。
可藉由一或多個可編程處理器執行一或多個電腦編程來執行本案所描述的功能,以執行本案所述的流程與邏輯流程。流程和邏輯流程還可以由專用邏輯電路(special purpose logic circuitry)來執行,並且裝置還可以實施為專用邏輯電路,例如現場可程式化邏輯閘陣列(FPGA,field programmable gate array))或應用程式專用的積體電路(ASIC,integrated circuit))。
適用於執行電腦編程的處理器包括如通用與專用微處理器以及任何種類的數位電腦之一或多個處理器。一般來說,處理器將接收來自唯讀記憶體或隨機存取記憶體(或此兩者)的指令與資料。電腦的基本元件可包括執行指令的處理器以及儲存指令與資料的一或多個記憶體裝置。一般來說,電腦還可包括一或多個大容量(mass)儲存裝置(例如磁碟、磁光碟(magneto optical disk)或光碟)以儲存資料,或者電腦還可操作地接收來自一或多個大容量儲存裝置的資料或是將資料傳輸至一或多個大容量記憶體裝置(或此兩者)。然而,電腦不需要此類裝置。適用於儲存電腦編程指令與資料的電腦可讀取介質可包括所有形式的非揮發性記憶體、介質以及記憶體裝置,電腦可讀取介質包括如半導體記憶體裝置(例如,EPROM、EEPROM、快閃記憶體裝置與磁碟)。處理器與記憶體可由專用邏輯電路來補足(supplement),或是將處理器與記憶體整合(incorporated)至專用邏輯電路。
儘管該文件可描述許多細節,但是這些細節不應被解釋為對所要求保護的發明或可被要求保護的發明的範圍限制,而是對特定實施例的特定特徵的描述。在單獨實施例的上下文中在本文中描述的某些特徵也可以在單一實施例中組合實現。相反地,在單個實施例的上下文中描述的各種特徵也可以分別實施於多個實施例或任何適當子組合。此外,儘管以上特徵可描述為以某些組合起作用並且甚至最初如此宣稱,但是在某些情況下,可以從該組合中切除所要求保護的組合中的一或多個特徵,並且所要求保護的組合可針對子組合或子組合的變體。類似地,雖然在附圖中以特定順序描繪了操作,但是這不應理解為要求以所示的特定順序或以連續順序來執行這樣的操作,或者執行所有示出的操作,以獲得期望的結果。
本文僅公開了一些示例和實施方式。本領域具有通常知識者可基於所公開的內容對所描述的示例和實施方式以及其他實施做出變化、修改和增強。
綜上所述,雖然本發明已以實施例揭露如上,然其並非用以限定本發明。本發明所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作各種之更動與潤飾。因此,本發明之保護範圍當視後附之申請專利範圍所界定者為準。
100:系統
110:裝置
112:裝置控制器
113:處理器
114:內部記憶體
116,420:記憶體
120,410:主機
140:區塊
141,157:記憶體晶胞
142,152:晶胞頁面
143:串列選擇電晶體
144,154:晶胞串列
145,GST:接地選擇電晶體
146,156,SSL:串列選擇線
148,158,GSL:接地選擇線
149,159,CSL:共源線
150:3D記憶體區塊
200,250:示例圖
202,204,206,208,502,512,522,PE0,PE3k,PE5k,PE10k,PE15k,
PE20k:曲線
203:點曲線
252,254:圖表
300:曲線圖
400:記憶體系統
422:階段II
430:記憶體控制器
431:主機介面
432:階段I
433:記憶體介面
434:糾錯碼解碼
436:階段III
600:流程
602,604,606,608,610,612,614,616,618,620,622,624,626,628:
步驟
BL
0~BL
n:行位元線
WL
0~WL
n:列字元線
WL:字元線
BL
<n>、BL
<n+1>:位元線
MSB:最高有效位元
LSB:最低有效位元
ER:擦除狀態
A,B,C:編程狀態
Vl0,Vl1,Vl2,Vl3:下限電壓
Vh0,Vh0’,Vh1,Vh2,Vh3:上限電壓
V
Disturb,V
Rd1,V
Rd2,V
Rd3,V1,V2,V3,RD[0]~RD[6],RD[0]'~RD[6]',
RD[0:6]:讀取電壓
V
Rdpass:通過電壓
V3':最佳讀取電壓
第1A圖繪示依據本公開的一或多個實施方式之系統示例。
第1B圖繪示依據本公開的一或多個實施方式之二維(2D)記憶體的示例區塊的示意圖。
第1C圖繪示依據本公開的一或多個實施方式之三維(3D)記憶體的示例區塊的示意圖。
第2A圖繪示依據本公開的一或多個實施方式之不同狀態的多階儲存單元(MLC)記憶體晶胞的臨界電壓分佈示例圖。
第2B圖繪示依據本公開的一或多個實施方式之不同狀態的三階儲存單元(TLC)記憶體晶胞的讀取電壓變化示例圖。
第3圖繪示依據本公開的一或多個實施方式之具有不同編程/擦除(P/E)週期數之讀取輸出的記憶體晶胞數量與讀取電壓之間的關係示例圖。
第4圖繪示依據本公開的一或多個實施方式之確定多個階段的讀取電壓之記憶體系統示例圖。
第5A圖繪示依據本公開的一或多個實施方式之不考慮記憶體控制器對先前讀取電壓的判定之三階儲存單元記憶體晶胞的谷追蹤範圍示例圖。
第5B圖繪示依據本公開的一或多個實施方式之考慮記憶體控制器對先前讀取電壓的判定之三階儲存單元記憶體晶胞的谷追蹤範圍示例圖。
第6圖繪示依據本公開的一或多個實施方式之確定記憶體系統的讀取電壓之流程示例圖。
400:記憶體系統
410:主機
420:記憶體
422:階段II
430:記憶體控制器
431:主機介面
432:階段I
433:記憶體介面
434:糾錯碼解碼
436:階段III
Claims (20)
- 一種記憶體系統,包括: 一記憶體,用以儲存資料;以及 一記憶體控制器,耦接至該記憶體; 其中該記憶體控制器用以: 利用一第一讀取電壓獲得儲存於該記憶體之一目標記憶體資料的一第一讀取輸出;以及 回應於確定該第一讀取輸出未通過一第一糾錯碼(ECC,Error-Correcting Code)檢驗,提供該第一讀取電壓至該記憶體;以及 其中該記憶體用以: 依據該第一讀取電壓確定一第二讀取電壓;以及 利用該第二讀取電壓產生相關於該目標記憶體資料的一第二讀取輸出。
- 如請求項1所述之記憶體系統,其中該記憶體控制器用以: 確定該第二讀取輸出通過一第二糾錯碼檢驗;以及 輸出該第二讀取輸出以作為該目標記憶體資料的一目標讀取輸出。
- 如請求項1所述之記憶體系統,其中該第一讀取電壓係基於利用相關於該目標記憶體資料的一第一組參數之儲存的一讀取電壓資料來確定。
- 如請求項3所述之記憶體系統,其中該記憶體控制器用以: 確定該第二讀取輸出未通過該第二糾錯碼檢驗; 依據一第二組參數確定一第三讀取電壓,該第二組參數包括該第二糾錯碼檢驗的結果或該第一組參數中的至少其中之一; 利用該第三讀取電壓獲得相關於該記憶體的該目標記憶體資料之一第三讀取輸出;以及 確定該第三讀取輸出是否通過一第三糾錯碼檢驗。
- 如請求項4所述之記憶體系統,其中該記憶體控制器用以: 回應於確定該第三讀取輸出未通過該第三糾錯碼檢驗,確定是否已達到一預定讀取閾值(predetermined read threshold); 回應於確定已達到該預定讀取閾值,確定來自該記憶體的該目標記憶體資料讀取失敗;以及 回應於確定未達到該預定讀取閾值,依據該第三糾錯碼檢驗的結果確定新的讀取電壓。
- 如請求項4所述之記憶體系統,其中該記憶體控制器用以: 回應於確定該第三讀取輸出通過該第三糾錯碼檢驗,輸出該第三讀取輸出以作為該目標記憶體資料的一目標讀取輸出。
- 如請求項6所述之記憶體系統,其中該記憶體控制器用以利用基於該第一組參數的儲存的該讀取電壓資料來確定該第一讀取電壓;以及 其中該記憶體控制器用以: 回應於確定該第三讀取輸出通過該第三糾錯碼檢驗,利用該第三讀取電壓與該第二組參數的至少其中之一來更新儲存的該讀取電壓資料。
- 如請求項4所述之記憶體系統,其中該記憶體控制器用以利用基於該第二組參數的至少一機器學習(machine learning,ML)演算法來確定該第三讀取電壓。
- 如請求項4所述之記憶體系統,其中該記憶體控制器用以: 利用一硬判定解碼架構(hard decision decoding scheme)對該第一讀取輸出進行解碼;以及 利用該硬判定解碼架構與一軟判定解碼架構(soft decision decoding scheme)的至少其中之一對該第三讀取輸出進行解碼。
- 如請求項4所述之記憶體系統,其中該第二組參數包括該第二讀取輸出的一錯誤位元計數、各個讀取電壓所獲得的“1”值數量、一先前讀取電壓與一當前讀取電壓之間的“1”值數量變化、一讀取時間、一低密度奇偶檢查碼(low-density parity-check code,LDPC code)的一校驗子(syndrome)與該低密度奇偶檢查碼的迭代次數之至少其中之一。
- 如請求項3所述之記憶體系統,其中該第一組參數包括位址資訊、編程/擦除(P/E)週期數、一讀取溫度、一讀取干擾程度與一保留時間的至少其中之一。
- 如請求項3所述之記憶體系統,其中儲存的該讀取電壓資料係基於利用相關於該記憶體與相應的複數個最佳讀取電壓的複數個輸入的監督式機器學習訓練而產生,在該些輸入的個別輸入之下,各該最佳讀取電壓對應至該記憶體的個別頁面之讀取輸出的一最小錯誤位元計數,各該輸入包括複數個參數的相應值,該些參數包括該第一組參數。
- 如請求項12所述之記憶體系統,其中該記憶體控制器用以依據該第一讀取電壓與該些輸入的相應的該些最佳讀取電壓來確定一谷追蹤範圍(valley-tracking range);以及 其中該記憶體用以利用基於該谷追蹤範圍與該第一讀取電壓的一谷追蹤讀取架構來確定該第二讀取電壓。
- 如請求項1所述之記憶體系統,其中該記憶體控制器用以: 判斷該第一讀取輸出的至少一部份未通過該第一糾錯碼檢驗來確定該第一讀取輸出未通過該第一糾錯碼檢驗,該第一讀取輸出的該至少一部份對應至該目標記憶體資料的至少一錯誤部分;以及 其中該記憶體用以利用該第二讀取電壓讀取該目標記憶體資料的該至少一錯誤部分,以產生該第二讀取輸出。
- 如請求項14所述之記憶體系統,其中該記憶體控制器用以: 確定該第一讀取輸出的剩餘部分通過該第一糾錯碼檢驗,其中該第一讀取輸出的該剩餘部分對應至該目標記憶體資料的剩餘部分,並通過該第一糾錯碼檢驗;以及 確定該第一讀取輸出的該剩餘部分為該目標記憶體資料的該剩餘部分的一目標讀取輸出; 其中該記憶體不利用該第二讀取電壓讀取該目標記憶體資料的該剩餘部分。
- 如請求項1所述之記憶體系統,其中該記憶體控制器用以: 利用一第一特定讀取電壓獲得要從該記憶體讀取的一特定記憶體資料的一第一特定讀取輸出,該第一特定讀取電壓係依據相關於該特定記憶體資料的一第一特定參數集(first particular set of parameter)來確定; 確定該第一特定讀取輸出未通過一相應糾錯碼檢驗; 回應於確定該記憶體為忙碌,依據一第二特定參數集(second particular set of parameter)來確定一第二特定讀取電壓,該第二特定參數集包括相關於該第一特定讀取輸出的該相應糾錯碼檢驗的結果或該第一特定參數集的至少其中之一; 利用該第二特定讀取電壓來讀取該特定記憶體資料,以獲得一第二特定讀取輸出; 確定該第二特定讀取輸出是否通過該相應糾錯碼檢驗;以及 回應於確定該第二特定讀取輸出通過該相應糾錯碼檢驗,輸出該第二特定讀取輸出以作為該記憶體的該特定記憶體資料的一目標讀取輸出。
- 一種記憶體系統,包括: 一記憶體,包括一記憶側讀取電路(memory-side read circuit);以及 一記憶體控制器,包括一控制側讀取電路(controller-side read circuit); 其中該記憶體控制器用以: 透過該控制側讀取電路,利用基於要從該記憶體讀取的一目標記憶體資料相關的一第一組參數之儲存的一讀取電壓資料來確定一第一讀取電壓; 利用該第一讀取電壓獲得該目標記憶體資料的一第一讀取輸出;以及 回應於確定該第一讀取輸出的至少一部分未通過一第一糾錯碼檢驗,提供該第一讀取電壓以及對應至該第一讀取輸出的該至少一部分之該目標記憶體資料的至少一錯誤部分的資訊給該記憶體;以及 其中該記憶體用以: 透過該記憶側讀取電路,依據該第一讀取電壓確定一第二讀取電壓;以及 利用該第二讀取電壓產生該目標記憶體資料的該至少一錯誤部分的一第二讀取輸出。
- 如請求項17所述之記憶體系統,其中該記憶體控制器用以: 確定該第二讀取輸出未通過一第二糾錯碼檢驗; 透過該控制側讀取電路,依據一第二組參數確定一第三讀取電壓,該第二組參數包括該第二糾錯碼檢驗的結果與該第一組參數的至少其中之一。 利用該第三讀取電壓獲得該目標記憶體資料的該至少一錯誤部分的一第三讀取輸出; 確定該第三讀取輸出是否通過一第三糾錯碼檢驗; 回應於確定該第三讀取輸出通過該第三糾錯碼檢驗,輸出該第三讀取輸出與該第一讀取輸出的剩餘部分以作為該目標記憶體資料的一目標讀取輸出,其中該第一讀取輸出的該剩餘部分通過該第一糾錯碼檢驗;以及 利用該第三讀取電壓與該第二組參數的至少其中之一來更新儲存的該讀取電壓資料。
- 如請求項18所述之記憶體系統,其中該記憶側讀取電路用以利用基於該記憶體控制器確定的一谷追蹤範圍的一谷追蹤讀取架構來確定該第二讀取電壓;以及 其中該控制側讀取電路用以利用基於該第二組參數的至少一種機器學習演算法來確定該第三讀取電壓。
- 一種記憶體系統,包括: 一記憶體,用以儲存資料;以及 一記憶體控制器,耦接至該記憶體; 其中該記憶體用以: 基於利用一谷追蹤讀取架構之一記憶體資料相關的一第一組參數來確定一第一讀取電壓;以及 利用該第一讀取電壓產生該記憶體資料的一第一讀取輸出; 其中該記憶體控制器用以: 回應於確定該第一讀取輸出未通過一第一糾錯碼檢驗,依據一第二組參數確定一第二讀取電壓,該第二組參數包括該第一糾錯碼檢驗的結果與該第一組參數的至少其中之一; 利用該第二讀取電壓獲得該記憶體的該記憶體資料的一第二讀取輸出; 確定該第二讀取輸出是否通過一第二糾錯碼檢驗;以及 回應於確定該第二讀取輸出通過該第二糾錯碼檢驗,輸出該第二讀取輸出以作為該記憶體資料的一目標讀取輸出。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/528,346 US11663074B1 (en) | 2021-11-17 | 2021-11-17 | Determining read voltages for memory systems |
US17/528,346 | 2021-11-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202322135A true TW202322135A (zh) | 2023-06-01 |
TWI805183B TWI805183B (zh) | 2023-06-11 |
Family
ID=86323455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111101104A TWI805183B (zh) | 2021-11-17 | 2022-01-11 | 用於決定讀取電壓的記憶體系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11663074B1 (zh) |
CN (1) | CN116153372A (zh) |
TW (1) | TWI805183B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11983431B2 (en) * | 2022-01-20 | 2024-05-14 | Dell Products L.P. | Read-disturb-based read temperature time-based attenuation system |
US11928354B2 (en) | 2022-01-21 | 2024-03-12 | Dell Products L.P. | Read-disturb-based read temperature determination system |
US11922035B2 (en) | 2022-01-21 | 2024-03-05 | Dell Products L.P. | Read-disturb-based read temperature adjustment system |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006048783A (ja) * | 2004-08-02 | 2006-02-16 | Renesas Technology Corp | 不揮発性メモリおよびメモリカード |
US7568135B2 (en) * | 2006-05-15 | 2009-07-28 | Apple Inc. | Use of alternative value in cell detection |
TWI436370B (zh) * | 2010-09-17 | 2014-05-01 | Phison Electronics Corp | 記憶體儲存裝置、其記憶體控制器與產生對數似然比之方法 |
US8631288B2 (en) * | 2011-03-14 | 2014-01-14 | Micron Technology, Inc. | Methods, devices, and systems for data sensing in a memory system |
US20170148510A1 (en) | 2013-05-31 | 2017-05-25 | Sandisk Technologies Llc | Updating read voltages |
US9218890B2 (en) * | 2013-06-03 | 2015-12-22 | Sandisk Technologies Inc. | Adaptive operation of three dimensional memory |
US9478315B2 (en) * | 2014-06-03 | 2016-10-25 | Sandisk Technologies Llc | Bit error rate mapping in a memory system |
KR102264162B1 (ko) * | 2014-10-29 | 2021-06-11 | 삼성전자주식회사 | 저항성 메모리 장치 및 저항성 메모리 장치의 동작 방법 |
KR102262909B1 (ko) * | 2014-12-18 | 2021-06-10 | 에스케이하이닉스 주식회사 | 메모리 시스템 동작 방법 |
JP2018163724A (ja) * | 2017-03-27 | 2018-10-18 | 東芝メモリ株式会社 | メモリシステム |
US10134474B1 (en) * | 2017-10-20 | 2018-11-20 | Sandisk Technologies Llc | Independent state completion for each plane during flash memory programming |
KR102634700B1 (ko) * | 2018-08-14 | 2024-02-13 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 스토리지 장치 및 이의 동작 방법 |
KR20200066893A (ko) * | 2018-12-03 | 2020-06-11 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
KR20200127516A (ko) * | 2019-05-02 | 2020-11-11 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이의 동작 방법 |
US20200027503A1 (en) | 2019-09-27 | 2020-01-23 | Intel Corporation | Method and apparatus to improve read latency of a multi-threshold level cell block-based non-volatile memory |
US11386972B2 (en) * | 2020-01-30 | 2022-07-12 | Macronix International Co., Ltd. | Determining read voltages for memory systems with machine learning |
JP2022020957A (ja) * | 2020-07-21 | 2022-02-02 | キオクシア株式会社 | メモリシステム及び半導体記憶装置 |
-
2021
- 2021-11-17 US US17/528,346 patent/US11663074B1/en active Active
-
2022
- 2022-01-11 TW TW111101104A patent/TWI805183B/zh active
- 2022-01-18 CN CN202210052414.3A patent/CN116153372A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230153198A1 (en) | 2023-05-18 |
US11663074B1 (en) | 2023-05-30 |
TWI805183B (zh) | 2023-06-11 |
CN116153372A (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI777366B (zh) | 記憶體系統及記憶體控制器 | |
TWI805183B (zh) | 用於決定讀取電壓的記憶體系統 | |
US9535620B2 (en) | Flash memory system and method controlling same | |
US20210271422A1 (en) | Compound Feature Generation in Classification of Error Rate of Data Retrieved from Memory Cells | |
US11557361B2 (en) | Compute an optimized read voltage | |
US12009040B2 (en) | Detection of an incorrectly located read voltage | |
US20240312530A1 (en) | Classification of Error Rate of Data Retrieved from Memory Cells | |
US11631467B2 (en) | Determining read voltages for memory systems | |
CN113628673B (zh) | 确定以经优化读取电压为中心的信号和噪声特性 | |
US11887681B2 (en) | Performing selective copyback in memory devices | |
CN111354402A (zh) | 用于艰苦装置条件的动态存储器编程电压阶跃 | |
US12072762B2 (en) | Error-handling management during copyback operations in memory devices | |
US20240071521A1 (en) | Memory device producing metadata characterizing applied read voltage level with respect to voltage distributions | |
US12105961B2 (en) | Copyback clear command for performing a scan and read in a memory device | |
CN113205849A (zh) | 存储器系统及存储器控制器 | |
US12067267B2 (en) | Managing data reliability in semiconductor devices | |
US12020741B2 (en) | Managing data refresh in semiconductor devices | |
US20240029801A1 (en) | Memory read calibration based on memory device-originated metrics characterizing voltage distributions | |
US11934266B2 (en) | Memory compaction management in memory devices | |
US20240370333A1 (en) | Error-handling management during copyback operations in memory devices | |
US20230359388A1 (en) | Memory read calibration based on memory device-originated metadata characterizing voltage distributions | |
CN117746959A (zh) | 非易失性存储器装置的无序位翻转解码器 | |
TW202113860A (zh) | 減少基於校驗子的準循環解碼器的延遲 |