TW201528274A - 更新讀取電壓 - Google Patents
更新讀取電壓 Download PDFInfo
- Publication number
- TW201528274A TW201528274A TW103132524A TW103132524A TW201528274A TW 201528274 A TW201528274 A TW 201528274A TW 103132524 A TW103132524 A TW 103132524A TW 103132524 A TW103132524 A TW 103132524A TW 201528274 A TW201528274 A TW 201528274A
- Authority
- TW
- Taiwan
- Prior art keywords
- read
- read voltage
- voltage
- operations
- value
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims abstract description 171
- 238000013500 data storage Methods 0.000 claims abstract description 57
- 238000012360 testing method Methods 0.000 claims description 100
- 238000000034 method Methods 0.000 claims description 88
- 238000012937 correction Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 208000011580 syndromic disease Diseases 0.000 description 7
- 239000000463 material Substances 0.000 description 4
- 239000012925 reference material Substances 0.000 description 4
- 238000013101 initial test Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000010187 selection method Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/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/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3723—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/6325—Error control coding in combination with demodulation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本發明揭示一種資料儲存裝置,其包含經組態以判定一非揮發性記憶體之一第一頁(例如一多位階記憶體胞快閃記憶體裝置之一下部頁)之一第一讀取電壓的一控制器。該控制器亦經組態以藉由將一偏移值施加至該第一讀取電壓來判定該非揮發性記憶體之一第二頁(例如一上部頁)之一第二讀取電壓。
Description
本發明大體上係關於判定一非揮發性記憶體之讀取電壓。
非揮發性資料儲存裝置(諸如嵌入式快閃記憶體、通用串列匯流排(USB)快閃記憶體裝置或可移除儲存卡)已允許增強資料及軟體應用程式之可攜性。快閃記憶體裝置可藉由在各快閃記憶體胞中儲存多個位元來提高資料儲存密度。例如,多位階記憶體胞(MLC)快閃記憶體裝置可藉由每記憶體胞儲存3個位元、每記憶體胞儲存4個位元或每記憶體胞儲存4個以上位元來提供增加之儲存密度。
在一單個快閃記憶體胞中儲存多個位元之資訊通常包含:將位元之序列映射至快閃記憶體胞之狀態。例如,一第一序列之位元「110」可對應於一快閃記憶體胞之一第一狀態且一第二序列之位元「010」可對應於該快閃記憶體胞之一第二狀態。在判定一序列之位元將儲存至一特定快閃記憶體胞中之後,該特定快閃記憶體胞可程式化至對應於該序列之位元之一狀態(例如,藉由設定一臨限電壓)。
一旦已程式化一資料儲存裝置中之記憶體胞,則可藉由比較記憶體胞臨限電壓與一或多個讀取電壓來感測各記憶體胞之程式化狀態以自記憶體胞讀取資料。然而,歸因於一或多個因數(諸如資料保持及程式干擾條件),所感測之程式化狀態有時可隨著已寫入之程式化狀態而變動。
可藉由更新用於讀取所儲存資料之一組讀取電壓來改良儲存於一資料儲存裝置中之資料之讀取精度以降低與讀取所儲存之資料相關聯之一估計或實際位元錯誤率。藉由選擇與各頁相關聯之一最佳讀取電壓來更新該組讀取電壓會消耗較多資源。相應地,根據一特定實施例,利用較少時間及功率之一簡化程序可用於更新該組讀取電壓。例如,可判定非揮發性記憶體之一第一頁之一第一讀取電壓(例如,藉由:使用不同測試讀取電壓來執行複數個讀取操作以自該第一頁讀取表示一碼字之值;及基於該複數個讀取操作之結果來選擇該第一讀取電壓)。可藉由將一偏移值施加至該第一讀取電壓來判定一第二讀取電壓。因此,可基於該第一頁之該複數個讀取操作來更新該第一讀取電壓及該第二讀取電壓兩者。亦可藉由將其他偏移值施加至該第一讀取電壓來判定額外讀取電壓。該偏移值或該等偏移值可為預定值,或可基於與非揮發性記憶體相關之資訊(諸如與非揮發性記憶體相關聯之讀取循環之一計數(例如非揮發性記憶體之一特定儲存元件之讀取循環)、與非揮發性記憶體相關聯之寫入循環之一計數(例如非揮發性記憶體之一特定儲存元件之寫入循環)、或以上兩者)來選擇(例如,自一查找表)或以其他方式判定。
100‧‧‧系統
102‧‧‧資料儲存裝置
103‧‧‧記憶體晶粒
104‧‧‧非揮發性記憶體
106‧‧‧儲存元件之群組
108‧‧‧儲存元件
120‧‧‧控制器
122‧‧‧錯誤校正碼(ECC)引擎
124‧‧‧編碼器
126‧‧‧解碼器
130‧‧‧主機裝置
132‧‧‧使用者資料
140‧‧‧讀取電壓更新引擎
146‧‧‧更新之讀取電壓組
152‧‧‧記憶體
170‧‧‧第一讀取電壓之第一值
172‧‧‧第一讀取電壓之第N值
174‧‧‧第二讀取電壓之測試值
180‧‧‧表示
182‧‧‧表示
184‧‧‧表示
210‧‧‧第一曲線圖
211‧‧‧第一測試值
212‧‧‧第二測試值
213‧‧‧第三測試值
214‧‧‧第四測試值
215‧‧‧第五測試值
216‧‧‧偏移值
220‧‧‧第二曲線圖
222‧‧‧第二讀取電壓
310‧‧‧第一曲線圖
311‧‧‧第一測試讀取電壓
312‧‧‧第二測試讀取電壓
313‧‧‧第三測試讀取電壓
316‧‧‧偏移
320‧‧‧第二曲線圖
322‧‧‧第二測試讀取電壓
323‧‧‧第一測試讀取電壓
400‧‧‧方法
402‧‧‧判定非揮發性記憶體之一第一頁之一第一讀取電壓
404‧‧‧藉由將一偏移值施加至第一讀取電壓來判定非揮發性記憶體之一第二頁之一第二讀取電壓
406‧‧‧儲存識別第一讀取電壓及第二讀取電壓之資料
500‧‧‧方法
502‧‧‧判定非揮發性記憶體之一第一頁之一第一讀取電壓
504‧‧‧執行複數個讀取操作以自第一頁讀取表示至少一碼字之值
506‧‧‧基於複數個讀取操作之結果來選擇第一讀取電壓
508‧‧‧判定一偏移值
510‧‧‧藉由將偏移值施加至第一讀取電壓來判定非揮發性記憶體之一第二頁之一第二讀取電壓
512‧‧‧藉由將一第二偏移值施加至第一讀取電壓來判定非揮發性記憶體之一第三頁之一第三讀取電壓
514‧‧‧儲存識別第一讀取電壓及第二讀取電壓之資料
516‧‧‧在一讀取操作期間,使用第一讀取電壓以自一頁讀取值及使用該第二讀取電壓以自第二頁讀取值
602‧‧‧執行複數個解碼操作
604‧‧‧基於複數個解碼操作來判定不同測試讀取電壓之何者在表示至少一碼字之值中產生最少錯誤
702‧‧‧使用表示由複數個讀取操作之一第一讀取操作產生之至少一碼字之一第一組值來執行一第一解碼操作
704‧‧‧基於可校正之錯誤之一數目來判定第一解碼操作是否成功
706‧‧‧若第一解碼操作不成功,則執行一或多個額外解碼操作
802‧‧‧基於複數個讀取操作之結果來估計一邊界電壓值
900‧‧‧方法
902‧‧‧判定非揮發性記憶體之一第一頁之一第一讀取電壓
904‧‧‧藉由將一偏移值施加至第一讀取電壓來判定非揮發性記憶體之一第二頁之一第一測試讀取電壓
906‧‧‧執行一第一讀取操作以自非揮發性記憶體之第二頁讀取表示至少一碼字之第一值
908‧‧‧使用表示至少一碼字之第一值來執行一第一解碼操作
910‧‧‧基於可由第一解碼操作校正之錯誤之一數目來判定第一解碼操作是否成功
912‧‧‧判定第一解碼操作是否成功
914‧‧‧將第一測試讀取電壓儲存為非揮發性記憶體之第二頁之一第二讀取電壓
916‧‧‧執行一或多個額外讀取操作以自非揮發性記憶體之第二頁讀取表示至少一碼字之值
918‧‧‧執行一或多個解碼操作
920‧‧‧基於可由一或多個額外解碼操作之一特定解碼操作校正之錯誤之數目來識別成功之該特定解碼操作
922‧‧‧將對應於特定解碼操作之一特定測試讀取電壓儲存為非揮發性記憶體之第二頁之第二讀取電壓
1000‧‧‧方法
1002‧‧‧開始一記憶體胞電壓分佈(CVD)分析程序
1004‧‧‧判定CVD分析程序是否應包含一全CVD分析或一快速CVD(QCVD)分析
1006‧‧‧執行一全電壓臨限掃描CVD分析操作
1008‧‧‧執行QCVD分析操作
1010‧‧‧使用動態讀取或一5步測試讀取搜尋來讀取一多位階記憶體胞記憶體裝置之一下部頁(LP)以判定一最佳位元錯誤率
1012‧‧‧判定下部頁之一讀取位準
1014‧‧‧使用一預設△值來判定AR3,使用一第二預設△值來判定CR3,或使用預設△值來判定AR3及CR3兩者
1016‧‧‧針對結果來更新一CVD時間標籤
圖1係包含經組態以產生更新讀取電壓之一資料儲存裝置的一系統之一特定繪示性實施例之一方塊圖;圖2係繪示可由圖1之資料儲存裝置執行之更新讀取電壓之一方法之一特定實施例的一圖式;圖3係繪示可由圖1之資料儲存裝置執行之更新讀取電壓之一方法之另一特定實施例的一圖式;圖4係可由圖1之資料儲存裝置執行之更新讀取電壓之一方法之
一特定實施例之一流程圖;圖5係可由圖1之資料儲存裝置執行之更新讀取電壓之一方法之另一特定實施例之一流程圖;圖6係可由圖1之資料儲存裝置執行之選擇一第一讀取電壓之一方法之特定實施例之一流程圖;圖7係可由圖1之資料儲存裝置執行之選擇一第一讀取電壓之一方法之另一特定實施例之一流程圖;圖8係可由圖1之資料儲存裝置執行之選擇一第一讀取電壓之一方法之另一特定實施例之一流程圖;圖9係可由圖1之資料儲存裝置執行之更新讀取電壓之一方法之另一特定實施例之一流程圖;及圖10係可由圖1之資料儲存裝置執行之更新讀取電壓之一方法之另一特定實施例之一流程圖。
參考圖1,一系統100之一特定實施例包含耦合至一存取裝置(諸如一主機裝置130)之一資料儲存裝置102。資料儲存裝置102經組態以產生一組更新讀取電壓146,如下文進一步描述。
主機裝置130可經組態以提供待儲存於一非揮發性記憶體104處之資料(諸如使用者資料132)或請求待自非揮發性記憶體104讀取之資料。例如,主機裝置130可包含一行動電話、一音樂播放器、一視訊播放器、一遊戲主控台、一電子書閱讀器、一個人數位助理(PDA)、一電腦(諸如一膝上型電腦、一筆記型電腦或平板電腦)、任何其他電子裝置或其等之任何組合。主機裝置130經由實現自非揮發性記憶體104讀取及寫入至非揮發性記憶體104之一記憶體介面來通信。例如,主機裝置130可遵循一電子裝置工程聯合委員會(JEDEC)產業規範(諸如一通用快閃儲存(UFS)主機控制器介面規範或一JEDEC嵌入式多媒
體卡(eMMC)裝置規範)來操作。作為其他實例,主機裝置130可遵循一或多個其他規範(諸如一保全數位(SD)主機控制器規範(作為一繪示性實例))來操作。主機裝置130可根據任何其他適合通信協定來與非揮發性記憶體104通信。
資料儲存裝置102包含耦合至一控制器120之非揮發性記憶體104。例如,非揮發性記憶體104可為一反及快閃記憶體。非揮發性記憶體104包含儲存元件之一代表性群組106,諸如一多位階記憶體胞(MLC)快閃記憶體之一字線。群組106包含一代表性儲存元件108,諸如一快閃MLC。例如,資料儲存裝置102可經組態以作為嵌入式記憶體(諸如eMMC®(JEDEC Solid State Technology Association,Arlington,Virginia之商標)及eSD(作為繪示性實例))而耦合至主機裝置130。為了繪示,資料儲存裝置102可對應於一eMMC(嵌入式多媒體卡)裝置。作為另一實例,資料儲存裝置102可為一記憶體卡,諸如一Secure Digital SD®卡、一microSD®卡、一miniSD.TM卡(SD-3C LLC,Wilmington,Delaware之商標)、一MultiMediaCard.TM(MMC.TM)卡(JEDEC Solid State Technology Association,Arlington,Virginia之商標)或一CompactFlash®(CF)卡(SanDisk Corporation,Milpitas,California之商標)。資料儲存裝置102可遵循一JEDEC產業規範來操作。例如,資料儲存裝置102可遵循一JEDEC eMMC規範、一JEDEC通用快閃儲存(UFS)規範、一或多個其他規範或其等之一組合來操作。
控制器120經組態以自主機裝置130接收資料及指令及將資料及指令發送至主機裝置130。控制器120進一步經組態以將資料及命令發送至非揮發性記憶體104及自非揮發性記憶體104接收資料及命令。例如,控制器120經組態以發送資料及一寫入命令以指示非揮發性記憶體104將資料儲存至一指定位址。作為另一實例,控制器120經組態以將一讀取命令發送至非揮發性記憶體104。
控制器120包含一ECC引擎122,其經組態以接收待儲存至非揮發性記憶體104之資料且產生一碼字。例如,ECC引擎122可包含一編碼器124,其經組態以使用一ECC編碼方案來編碼資料,諸如一里德所羅門(Reed Solomon)編碼器、一博斯-查德胡里-霍昆格姆(BCH)編碼器、一低密度同位檢查(LDPC)編碼器、一特博碼(Turbo Code)編碼器、經組態以編碼一或多個其他ECC編碼方案之一編碼器、或其等之任何組合。ECC引擎122可包含一解碼器126,其經組態以解碼自非揮發性記憶體104讀取之資料以偵測或校正可存在於資料中之任何位元錯誤,相當於ECC方案之一錯誤校正能力。
控制器120包含一讀取電壓更新引擎140,其經組態以藉由判定非揮發性記憶體104之一第一頁之一第一讀取電壓且藉由將一偏移值施加至該第一讀取電壓來判定非揮發性記憶體104之一第二頁之一第二讀取電壓來產生更新之讀取電壓組146。在一些實施例中,該第一頁係非揮發性記憶體104之一邏輯下部頁,此係因為讀取該邏輯下部頁使用較少感測時間。然而,在其他實施例中,該第一頁可為非揮發性記憶體104之一邏輯中間頁或一邏輯上部頁。可使用一搜尋程序來判定該第一讀取電壓。例如,可藉由執行複數個讀取操作以自該第一頁讀取表示至少一碼字之值來判定該第一讀取電壓。使用不同測試讀取電壓來執行該複數個讀取操作之兩者或兩者以上。可基於該複數個讀取操作之結果來選擇該第一讀取電壓。例如,可基於該複數個讀取操作之各者之結果來執行一解碼操作,且可選擇產生最少錯誤之一特定讀取電壓來作為該第一讀取電壓。作為另一實例,該複數個讀取操作之結果可用於估計該第一頁與一相鄰頁(例如該第二頁或一第三頁)之間之一邊界之一位置。在此實例中,可基於該第一頁與該相鄰頁之間之該邊界來選擇該第一讀取電壓。作為又一實例,可基於該複數個讀取操作之各者之結果來執行一解碼操作,且選擇具有足夠少錯誤以
被成功解碼之一第一特定讀取電壓來作為該第一讀取電壓。
為了繪示,參考圖2,一第一曲線圖210及一第二曲線圖220展示一每記憶體胞2位元(2BPC)之多位階記憶體胞(MLC)實施方案中之具有表示抹除(Er)狀態、A狀態、B狀態及C狀態之叢集之儲存元件臨限值之直方圖或分佈。一組讀取電壓VA、VB及VC界定該等狀態之間之邊界且可用於判定一儲存元件之一狀態。例如,將讀取電壓VA施加至群組106之一字線以啟動具有小於VA之臨限電壓之儲存元件,同時不啟動具有大於VA之臨限電壓之儲存元件。儘管曲線圖210及220繪示一每儲存元件2位元(2BPC)之MLC,但在其他實施方案中,非揮發性記憶體104可每儲存元件儲存2個以上位元。例如,在一每儲存元件3位元(3BPC)之MLC實施方案中,可表示8種狀態。
最初設定至Er狀態之一些儲存元件可經歷一臨限電壓移位,其引起該等儲存元件之臨限電壓大於VA。使用VA來讀取此等儲存元件導致位元錯誤,此係因為該等儲存元件被讀取為具有一「01」值(對應於狀態A)而非具有一「11」值(對應於Er狀態)。類似地,最初程式化至狀態A之一些儲存元件可經歷一臨限電壓移位,其引起該等儲存元件之臨限電壓小於VA。使用VA來讀取此等儲存元件亦導致位元錯誤,此係因為該等儲存元件被讀取為具有一「11」值而非具有一「01」值。類似移位可發生於其他狀態之間之邊界處。
圖1之讀取電壓更新引擎140可經組態以(諸如)藉由依序指派一第一測試值211、一第二測試值212、一第三測試值213、一第四測試值214及一第五測試值215來調整VB,且不調整其他讀取電壓VA及VC。所得之各組讀取電壓可用於自群組106讀取資料,且所得資料可經處理以選擇VB之一值(例如第一讀取值)。例如,所得資料可對應於可由解碼器126解碼之一碼字。來自解碼器126之ECC相關資訊可用於選擇導致資料中之最低估計或實際數目個位元錯誤的測試值211至215之一
者(相較於對應於其他測試值211至215之估計或實際數目個位元錯誤)。更一般而言,ECC相關資訊可用於選擇導致對應於ECC相關資訊之一ECC相關度量之一最小(或最大)偵測值的測試值之一者。例如,一目標可為判定最小化位元錯誤率之VB之一讀取臨限值。作為另一實例,一目標可為最小化ECC功率、延時、通量或任何其他ECC相關度量。此外,無需解碼碼字來判定一「最佳」讀取電壓。可在未完全解碼之情況下使用其他ECC相關資訊(例如(作為非限制性實例),在未完全解碼之情況下計算未滿足ECC同位檢查方程式之數目(亦稱為校驗子權重(syndrome weight))或在未解碼之情況下進行BER估計)。
在選擇對應於VB之一值之一第一讀取電壓之後,讀取電壓更新引擎140可藉由將一偏移值216施加至該第一讀取電壓來判定對應於一第二頁之一第二讀取電壓222(如圖2之第二曲線圖220中所繪示)。在一特定實施例中,偏移值216係基於測試複數個記憶體裝置(諸如體現於一記憶體晶粒103中之一類型之記憶體裝置)所判定之一固定預定值(例如一常數),其用於判定隨時間流逝而最精確地模型化一頁邊界之一固定偏移值。例如,測試已展示:對於某一記憶體晶粒,狀態B與狀態C之間之邊界(例如VC)趨向於移位達大致相同於狀態A與狀態B之間之邊界(例如VB)移位量之量且在相同於狀態A與狀態B之間之邊界(例如VB)之移位方向之方向上移位。因此,對於此記憶體晶粒,可藉由判定對應於VB之該第一讀取電壓且新增一預定固定偏移值(例如偏移216)來大致估計第二讀取電壓222。
對於某一記憶體晶粒,VB與VC之間之關係可隨時間流逝而變動,例如,由於記憶體已經受之數個讀取循環及/或寫入循環。對於此記憶體晶粒,可動態地或基於一查找表來判定偏移216。例如,可基於與非揮發性記憶體相關聯之讀取循環之一計數、基於與非揮發性
記憶體相關聯之寫入循環之一計數或基於讀取循環之該計數及寫入循環之該計數兩者來判定偏移216。可基於該等計數之一或多者來計算偏移216(例如,藉由控制器120),或可基於該等計數之一或多者以自一查找表(例如,儲存於記憶體152中)讀取偏移216。
在另一特定實施例中,如圖3之一第一曲線圖310及一第二曲線圖320中所繪示,第一讀取電壓可對應於通過一解碼操作之一組測試讀取電壓311至313之一第一測試讀取電壓。即,可不試圖識別一最佳第一讀取電壓。確切而言,選擇一特定測試讀取電壓(其產生足夠少錯誤以容許ECC引擎122使用該特定測試讀取電壓來解碼一字線讀取)作為第一讀取電壓。儘管曲線圖310及320繪示一每儲存元件2位元(2BPC)之MLC,但在其他實施方案中,非揮發性記憶體104可每儲存元件儲存2個以上位元。例如,在一每儲存元件3位元(3BPC)之MLC實施方案中,可表示8種狀態。
在圖3中,可藉由使用一第一組值(其表示由使用一第一測試讀取電壓311之一第一讀取操作產生之一碼字)來執行一第一解碼操作而判定第一讀取電壓。可基於可由ECC引擎122校正之數個錯誤來判定(例如,藉由圖1之控制器120)該第一解碼操作是否成功。若該第一解碼操作成功,則選擇第一測試讀取電壓311來用作為該第一讀取電壓且不執行基於其他測試讀取電壓312及313之讀取操作。若該第一解碼操作不成功,則使用一第二測試讀取電壓312來執行一第二讀取操作,且基於該第二讀取操作之結果來執行一第二解碼操作。基於可由ECC引擎122校正之數個錯誤來判定(例如,藉由圖1之控制器120)該第二解碼操作是否成功。若該第二解碼操作成功,則選擇第二測試讀取電壓312來用作為第一讀取電壓且不執行基於一第三測試讀取電壓313之讀取操作。若該第二解碼操作不成功,則使用第三測試讀取電壓313來執行一第三讀取操作,且基於該第三讀取操作之結果來執行一第三
解碼操作。基於可由ECC引擎122校正之數個錯誤來判定(例如,藉由圖1之控制器120)該第三解碼操作是否成功。若該第三解碼操作成功,則選擇第三測試讀取電壓313來用作為第一讀取電壓。若該第三解碼操作不成功,則使用其他測試讀取電壓(圖中未展示)來執行額外讀取操作及解碼操作,直至一解碼操作成功,且選擇對應於該成功解碼操作之一特定測試讀取電壓來用作為第一讀取電壓。
在此實施例中,可將一偏移316施加至第一讀取電壓以判定與第二頁相關聯(例如,與B與C之間之一邊界相關聯)之一初始測試讀取電壓。可使用作為一起始點或一中心點之該初始測試讀取電壓來執行一搜尋以識別第二讀取電壓。例如,該搜尋可試圖識別第二讀取電壓之一最佳值或接近最佳值。可基於複數個讀取操作來判定第二讀取電壓。例如,該複數個讀取操作可用於估計第二頁之一邊界(對應於VC)。在另一實例中,該複數個讀取操作可用於識別與一成功解碼操作相關聯之一特定讀取電壓。為了繪示,一第一讀取操作可經執行以自使用一第一測試讀取電壓323之非揮發性記憶體之第二頁讀取表示至少一碼字之第一值。第一測試讀取電壓323可對應於第一讀取電壓+偏移316。可使用表示該至少一碼字之該等第一值來執行一第一解碼操作。控制器120可基於可由該第一解碼操作校正之數個錯誤來判定該第一解碼操作是否成功。當該第一解碼操作成功時,第一測試讀取電壓323可用作為第二讀取電壓。當該第一解碼操作不成功時,一或多個額外讀取操作可經執行以自第二頁讀取表示該至少一碼字之值。該一或多個額外讀取操作之各者可使用一不同測試讀取電壓。此外,可執行一或多個額外解碼操作。該一或多個額外解碼操作之各者使用表示由該一或多個讀取操作之一對應讀取操作產生之該至少一碼字之一組值。將對應於一成功解碼操作之一特定測試讀取電壓(例如一第二測試讀取電壓322)用作為第二讀取電壓。
在圖1之系統100之操作期間,可作出執行一讀取電壓更新之一判定(例如,藉由控制器120)。執行該讀取電壓更新之該判定可基於(作為繪示性非限制實例):非揮發性記憶體104處之寫入/抹除(W/E)循環之總數目超過一W/E臨限值;在一區塊(其包含:已程式化儲存元件106之群組)之後已流逝之時間(或與時間相關之任何其他指示或度量)超過一臨限值;包含群組106之一區塊中之讀取操作之數目超過一讀取臨限值;或由解碼器126偵測之錯誤之平均數目超過一錯誤臨限值。
控制器120亦可判定是否使用一全記憶體胞電壓分佈(CVD)分析程序或一快速記憶體胞電壓分佈(QCVD)分析程序來更新讀取電壓。QCVD分析程序可對應於參考圖1至圖3所描述之程序之一者。例如,QCVD分析程序可包含:判定一第一頁之一第一讀取電壓值;及藉由將一偏移值施加至該第一讀取電壓來判定一第二頁之一第二讀取電壓值。全CVD分析程序可涉及:搜尋與各邊界相關聯之最佳或否則所要之讀取電壓值。例如,參考圖2,可在各狀態邊界處(例如,在Rr與A之間之邊界處,在A與B之間之邊界處,及在B與C之間之邊界處)執行多個讀取操作以試圖識別VA、VB及VC之值。如此實例所繪示,全CVD分析程序使用比QCVD分析程序多之讀取操作,且可對應地使用更多解碼操作。因此,全CVD分析程序會消耗更多耗時及資源。相應地,當資料儲存裝置102不忙時或當QCVD分析程序無法產生令人滿意之一組更新讀取電壓時,控制器120可使用全CVD分析程序。例如,在執行QCVD分析程序之後,控制器120可基於自非揮發性記憶體104讀取之資料是否可由ECC引擎122解碼來判定由QCVD分析程序判定之更新讀取電壓組146是否令人滿意。若由QCVD分析程序判定之更新讀取電壓組146不令人滿意(例如,若使用更新讀取電壓組146來讀取之資料包含待由ECC引擎122校正之過多錯誤),則控制器120
可實施全CVD分析程序來產生另一組更新讀取電壓。
為執行QCVD分析程序,讀取電壓更新引擎140可選擇第一讀取電壓之一第一值170來作為一測試讀取值。群組106可依一逐頁之非交錯方式儲存資料,使得一第一ECC碼字儲存於群組106之一實體頁之一第一邏輯頁(例如,對應於儲存於該實體頁之各儲存元件中之最低有效位元之一「下部」頁)中。一第二ECC碼字可儲存於該實體頁之一第二邏輯頁(例如,對應於儲存於該實體頁之各儲存元件中之最高有效位元之一「上部」頁)中。儘管圖1至圖3中未展示,但在一些實施例中,群組106可包含兩個以上邏輯頁。例如,一第三ECC碼字可儲存於該實體頁之一第三邏輯頁(例如,對應於儲存於該實體頁之各儲存元件中之中間位元之一「中間」頁)中。當群組包含三個或三個以上頁時,可藉由施加自第一讀取電壓之一偏移,藉由施加自第二讀取電壓之一偏移,或藉由使用多個讀取操作搜尋對應於該第三頁之一第三讀取電壓來判定與該第三頁及任何額外頁相關聯之讀取電壓。
控制器120可將第一值170處之第一測試讀取電壓提供至非揮發性記憶體104以讀取與第一頁(例如下部頁)相關聯之一碼字。第一值170可對應於圖2之第一曲線圖210之第一測試讀取電壓211,可對應於圖3之第一測試值311,或兩者。可使用第一值170處之第一讀取電壓以自群組106讀取資料之一第一表示180且在控制器120處接收資料之第一表示180。第一表示180可提供至解碼器126。
讀取電壓更新引擎140可選擇測試讀取電壓之一或多個額外值且執行對應讀取操作。例如,第一讀取電壓之一第N值172可用於執行一讀取操作。第一讀取電壓之第N值172可對應於圖2之第二測試值212,可對應於圖3之第二測試值312,或兩者。第N值172處之第一讀取電壓可提供至非揮發性記憶體104且用於讀取提供至解碼器126之一對應表示182。
解碼器126可回應於表示180至182之各者來產生ECC相關資訊。替代地,ECC相關資訊可由一單獨指定之ECC相關功能(例如一單獨硬體引擎)而非由解碼器126產生。讀取電壓更新引擎140可接收或以其他方式存取ECC相關資訊以判定或估計表示180至182之各者之錯誤之一數目或一位元錯誤率(BER)。替代地或另外,讀取電壓更新引擎140可判定任何其他ECC相關度量。
為了繪示,當解碼器126完全解碼表示180至182之各者時,解碼器126可產生指示校正錯誤之一數目之資訊。讀取電壓更新引擎140可比較起因於讀取資料之校正錯誤之數目與值170至172之各者以在值170至172中選擇具有最少識別數目個校正錯誤之特定值170至172。所選擇之值可用作為第一讀取電壓之一更新值。
在其他實施方案中,可在未完全解碼表示180至182之情況下藉由估計一位元錯誤率(BER)或錯誤之數目來避免與完全解碼表示180至182之各者相關聯之延時。例如,解碼器126可產生指示針對表示180至182之各者未滿足同位檢查方程式之一數目的一校驗子值。表示180至182之各者之校驗子值一般指示對應表示180至182之各者中之錯誤之相對量。可使用具有比全解碼少之延時之專用硬體電路來產生校驗子值。ECC相關資訊可包含用於表示180至182之各者之校驗子值,且讀取電壓更新引擎140可搜尋及/或分類校驗子值以識別表示180至182之一最低估計BER且選擇一對應值來作為更新之第一讀取電壓。
作為另一實例,對應於一解碼操作之一時間長度可用於估計錯誤之一數目或BER。為了繪示,具有較多錯誤之資料之表示一般需要比具有較少錯誤之資料之表示長之解碼(例如,更多收斂反覆、更長錯誤位置搜尋處理,等等)。解碼器126可經組態以完全解碼資料之一第一表示(例如表示180)且儲存該第一表示之解碼時間。對於資料之各後續表示(例如表示182),若解碼時間超過所儲存之解碼時間,則
解碼器126可終止解碼,或若解碼時間小於所儲存之解碼時間,則解碼器126可更新所儲存之解碼時間。ECC相關資訊可指示表示180至182之一或多個解碼時間或相對解碼時間以使讀取電壓更新引擎140能夠識別表示180至182之解碼時間之一最短者且選擇一對應值來作為第一讀取電壓。
作為另一實例,在一解碼操作期間改變之位元值之一數目可用於估計錯誤之一數目或BER。為了繪示,在一反覆解碼程序期間,具有較多錯誤之資料之表示可在收斂之前比具有較少錯誤之資料之表示經歷更多「位元翻轉(bit flip)」。解碼器126可經組態以追蹤各表示180至182之位元翻轉之次數且指示ECC相關資訊中之位元翻轉之所得計數以使讀取電壓更新引擎140能夠識別表示180至182之位元翻轉之一最低計數且選擇一對應值來作為第一讀取電壓。
作為另一實例,儲存於群組106中之資料之至少一部分可為參考資料。可比較對應於該參考資料之表示180至182之各者之部分與該參考資料以識別錯誤。例如,解碼器126可包含經組態以比較各表示180至182之一部分與該參考資料且產生所偵測之位元錯誤之一計數的電路。所得計數可提供於ECC相關資訊中以使讀取電壓更新引擎140能夠識別表示180至182之參考資料錯誤之計數之一最低者且選擇一對應值來作為第一讀取電壓。
作為又一實例,值170至172可依序提供至非揮發性記憶體104。解碼器126可在各表示180至182被接收時解碼各表示180至182。當表示180至182之一者能夠被完全解碼(例如,具有足夠少錯誤,使得解碼器126能夠校正該等錯誤)時,解碼器126經由ECC相關資訊來提供一指示。在此實例中,讀取電壓更新引擎140可選擇對應於一可解碼表示之一值來作為第一讀取電壓。
在選擇第一讀取電壓之後,讀取電壓更新引擎140可在更新之讀
取電壓組146中儲存指示該第一讀取電壓之資料。讀取電壓更新引擎140可藉由將一偏移施加至該第一讀取電壓來判定一第二讀取電壓(對應於非揮發性記憶體104之一第二頁)。該偏移之值可為預定及固定的(例如常數)。替代地,可基於與非揮發性記憶體104相關之資訊(諸如讀取循環及/或寫入循環之一計數)來判定該偏移之值。在此實例中,讀取電壓更新引擎140可存取非揮發性記憶體104或記憶體152之一部分以判定讀取循環及/或寫入循環之該計數且自記憶體152中或非揮發性記憶體104中之一查找表讀取該偏移之一對應值。替代地,讀取電壓更新引擎140可存取非揮發性記憶體140或記憶體152之一部分以判定讀取循環及/或寫入循環之該計數且可基於該計數來計算該偏移。讀取電壓更新引擎140可在更新之讀取電壓組146中儲存指示該第二讀取電壓之資料。
在一特定實施例中,讀取電壓更新引擎140可使用第一測試讀取值及偏移來選擇待搜尋之一組電壓以判定第二讀取電壓。例如,在判定第一讀取電壓之後,讀取電壓更新引擎140可將第二讀取電壓之一或多個測試值174提供至非揮發性記憶體104。一或多個表示184(例如,對應於測試值174之各者之一表示)可提供至解碼器126。可基於一或多個表示184來選擇第二讀取電壓。例如,可使用類似於上文針對第一讀取電壓所描述之選擇程序之一者之一選擇程序來基於ECC相關資訊而選擇第二讀取電壓。為了繪示,可基於與一或多個表示184之各者相關聯之一位元錯誤率,基於與一或多個表示184之各者相關聯之校正錯誤之一數目,基於與一或多個表示184之各者相關聯之一校驗子值,基於與一或多個表示184之各者相關聯之一解碼時間,基於與一或多個表示184之各者相關聯之位元翻轉之一計數,基於與一或多個表示184之各者相關聯之偵測位元錯誤之一計數,或一或多個表示184之何者可解碼來選擇第二讀取電壓。
藉由將一偏移施加至第一讀取電壓來判定第二讀取電壓,可依比藉由使用一全CVD分析程序快及少消耗資源之一方式判定第一讀取電壓及第二讀取電壓之估計值。例如,一全CVD分析程序可使用兩頁之三十二(32)個或32個以上讀取(導致約4毫秒之延時)來找到圖2及圖3中所繪示之三個邊界之「最佳」讀取電壓。然而,在一特定實施例(如參考圖2所描述)中,一QCVD分析程序可僅使用一單個頁(例如一下部頁)之5個讀取來判定下部頁及上部頁之讀取電壓之估計值。因此,QCVD分析程序導致小於0.6毫秒之延時。另外,在一特定實施例中,為判定第一讀取電壓,QCVD分析程序可讀取一單個碼字(例如4KB)而非讀取一整頁。該單個碼字足以使藉由解碼器126之處理能夠選擇第一讀取電壓之一值。因此,當藉由施加偏移值來判定第二讀取電壓時,可全CVD分析程序節省相當多之感測時間。例如,在圖2之實施例中,藉由將偏移值施加至第一讀取電壓來判定第二讀取電壓可用於產生更新之讀取電壓組146,且無需使用第二讀取電壓來執行一讀取操作(例如,在儲存更新之讀取電壓組146之前之一驗證讀取操作)。替代地,如同圖3之實施例,可使用藉由施加偏移值來判定之第二讀取電壓來讀取第二頁(例如上部頁)驗證:第二讀取電壓係可用的。若其證明第二讀取電壓不可用(例如,第二讀取電壓導致不可校正錯誤),則可實施全CVD分析程序。
圖4描繪更新一組讀取電壓之一方法400之一實施例。可在包含一控制器及一非揮發性記憶體之一資料儲存裝置(諸如圖1之資料儲存裝置102)中執行方法400。方法400繪示一快速記憶體胞電壓分佈(QCVD)分析程序之一簡化實施例。
方法400包含:在402中,判定該非揮發性記憶體之一第一頁之一第一讀取電壓。例如,可藉由使用讀取電壓VB之不同測試值211至215來判定該第一讀取電壓以自該第一頁產生一碼字之一表示。該第
一讀取電壓可對應於一測試值,該測試值基於可由解碼器126校正之錯誤之一數目來產生可由解碼器126解碼之一表示。替代地,該碼字之表示可用於選擇該第一讀取電壓之一最佳值或接近最佳值(例如,藉由估計圖2中之A狀態與B狀態之間之一邊界之一位置)。
方法400亦可包含:在404中,藉由將一偏移值施加至該第一讀取電壓來判定該非揮發性記憶體之一第二頁之一第二讀取電壓。該偏移值可為一預定固定值或取決於與該非揮發性記憶體相關之資訊之一值。例如,該偏移值可選自一查找表或可被計算。該方法亦包含:在406中,儲存識別該第一讀取電壓及該第二讀取電壓之資料。例如,控制器120可儲存更新之讀取電壓組146。可在後續記憶體操作(例如讀取操作或寫入操作)期間使用更新之讀取電壓組146。
圖5描繪更新一組讀取電壓之一方法500之另一實施例。可在包含一控制器及一非揮發性記憶體之一資料儲存裝置(諸如圖1之資料儲存裝置102)中執行方法500。方法500繪示另一快速記憶體胞電壓分佈(QCVD)分析程序。
方法500包含:在502中,判定該非揮發性記憶體之一第一頁(例如一下部頁)之一第一讀取電壓。判定該第一頁之該第一讀取電壓可包含:在504中,執行複數個讀取操作以自該第一頁讀取表示至少一碼字之值。使用不同測試讀取電壓來執行該複數個讀取操作之兩者或兩者以上。例如圖2之第一曲線圖210中所繪示,五個測試讀取電壓211至215可用於自一多位階記憶體胞(MLC)快閃記憶體裝置之第一頁讀取表示一碼字之值。
判定該第一頁之該第一讀取電壓亦可包含:在506中,基於該複數個讀取操作之結果來選擇該第一讀取電壓。例如,可基於一位元錯誤率、校正錯誤之一數目、一校驗子值、一解碼時間、位元翻轉之一計數、偵測位元錯誤之一計數、一表示是否可解碼、其他ECC相關資
訊或其等之一組合來選擇測試讀取電壓211至215之一特定測試讀取電壓作為該第一讀取電壓。
方法500亦可包含:在508中,判定一偏移值。在一特定實施例中,該偏移值係基於該第一讀取電壓與第二讀取電壓之間之一已知或預期關係的一固定值。在另一特定實施例中,基於與該非揮發性記憶體相關聯之資訊(諸如與該非揮發性記憶體相關聯之讀取循環之一計數、與該非揮發性記憶體相關聯之寫入循環之一計數、或讀取循環之該計數及寫入循環之該計數兩者)來判定該偏移值。可計算該偏移值或可基於一查找表來判定該偏移值。
方法500可包含:在510中,藉由將該偏移值施加至該第一讀取電壓來判定該非揮發性記憶體之一第二頁(例如一上部頁)之一第二讀取電壓。當該非揮發性記憶體包含一第三頁(例如一中間頁)時,方法500可包含:在512中,藉由將一第二偏移值施加至該第一讀取電壓來判定該非揮發性記憶體之一第三頁之一第三讀取電壓。例如,當該非揮發性記憶體係一每記憶體胞3位元(3BPC)之多位階記憶體胞(MLC)記憶體裝置時,可判定該第三讀取電壓。該第二偏移值可不同於用於判定該第二讀取電壓之該偏移值。該第二偏移值可為基於該第一讀取電壓與該第三讀取電壓之間之一已知或預期關係的一預定固定值。在另一特定實施例中,基於與該非揮發性記憶體相關聯之資訊(諸如與該非揮發性記憶體相關聯之讀取循環之一計數、與該非揮發性記憶體相關聯之寫入循環之一計數、或讀取循環之該計數及寫入循環之該計數兩者)來判定該第二偏移值。可計算該偏移值或可基於一查找表來判定該偏移值。
方法500亦可包含:在514中,儲存識別該第一讀取電壓及該第二讀取電壓之資料。例如,可由控制器120將識別該第一讀取電壓及該第二讀取電壓之該資料儲存為更新之讀取電壓組146。若已判定一
第三讀取電壓,則方法500亦可儲存識別該第三讀取電壓之資料。
方法500亦包含:在516中,在一讀取操作期間,使用該第一讀取電壓以自該第一頁讀取值及使用該第二讀取電壓以自該第二頁讀取值。若已判定一第三頁之一第三讀取電壓,則方法500亦可包含:使用該第三讀取電壓以自該第三頁讀取值。
圖6至圖8描繪基於複數個讀取操作之結果來選擇第一讀取電壓(對應於方法500之區塊506)之方法之實施例之流程圖。圖6中,基於複數個讀取操作之結果來選擇該第一讀取電壓包含:在602中,執行複數個解碼操作。使用表示由該複數個讀取操作之一對應讀取操作產生之至少一碼字之一組值來執行該複數個解碼操作之各者。例如,使用表示由使用一第一測試讀取電壓(例如圖1之第一值170)之一第一讀取操作產生之該至少一碼字(例如圖1之表示180)之值來執行一第一解碼操作,且使用表示由使用一第二測試讀取電壓(例如圖1之第N值172)之一第二讀取操作產生之該至少一碼字(例如圖1之表示182)之值來執行一第二解碼操作。在604中,基於該複數個解碼操作來判定該等不同測試讀取電壓之何者在表示該至少一碼字之該等值中產生最少錯誤。選擇產生最少錯誤之一測試讀取電壓來用作為該第一讀取電壓。
在圖7中,基於複數個讀取操作之結果來選擇該第一讀取電壓包含:在702中,使用表示由該複數個讀取操作之一第一讀取操作產生之該至少一碼字(例如圖1之表示180)之一第一組值來執行一第一解碼操作。在704中,基於可校正之錯誤之一數目來判定該第一解碼操作是否成功。例如,ECC引擎122可產生指示表示180是否包含比可由解碼器126校正之錯誤多之錯誤的ECC相關資訊。若該第一解碼操作成功,則選擇對應於該第一讀取操作之一測試讀取電壓(例如圖1之第一值170)來用作為該第一讀取電壓。在706中,若該第一解碼操作不成
功,則執行一或多個額外解碼操作。該一或多個額外解碼操作之各者使用表示由該複數個讀取操作之一對應讀取操作產生之該至少一碼字之一組不同值。選擇對應於成功之一特定讀取操作之一特定測試讀取電壓來用作為該第一讀取電壓。
在圖8中,基於複數個讀取操作之結果來選擇該第一讀取電壓包含:在802中,基於該複數個讀取操作之結果來估計一邊界電壓值。例如,該複數個讀取操作可經分析以判定兩個狀態之間之一邊界電壓,諸如圖2及圖3之A狀態與B狀態之間之邊界電壓VB。為了繪示,可基於該複數個讀取操作之結果之位元錯誤率,基於該複數個讀取操作之各者之結果之校正錯誤之一數目,基於該複數個讀取操作之結果校驗子值,基於該複數個讀取操作之結果之解碼時間,基於該複數個讀取操作之各者之結果之位元翻轉之一計數,基於該複數個讀取操作之各者之結果之偵測位元錯誤之一計數,或其等之一組合來估計該邊界電壓值。選擇該估計邊界電壓值來用作為該第一讀取電壓。
圖9描繪更新一組讀取電壓之一方法900之另一實施例。可在包含一控制器及一非揮發性記憶體之一資料儲存裝置(諸如圖1之資料儲存裝置102)中執行方法900。方法900繪示另一快速記憶體胞電壓分佈(QCVD)分析程序。
方法900包含:在902中,判定該非揮發性記憶體之一第一頁(例如一下部頁)之一第一讀取電壓。例如圖3之曲線圖310中所繪示,可使用測試讀取電壓311至313來執行一或多個讀取操作。各讀取操作可產生表示至少一碼字之一組值,該組值可提供至一解碼器(諸如圖1之解碼器126)。產生表示該解碼器能夠成功解碼(基於可由該解碼器校正之錯誤之一數目)之至少一碼字之一組值的一特定讀取電壓可用作為該第一讀取電壓。
方法900亦包含:藉由將一偏移值施加至該第一讀取電壓來判定
該非揮發性記憶體之一第二頁(例如一上部頁)之一第一測試讀取電壓。例如圖3之曲線圖310中所繪示,第一測試讀取電壓322對應於該第一讀取電壓+偏移316。方法900亦包含:在906中,執行一第一讀取操作以自該非揮發性記憶體之該第二頁讀取表示至少一碼字之第一值。例如,在圖1中,第二讀取電壓之(若干)值174可對應於用於產生(若干)表示184之測試讀取值。
方法900亦包含:在908中,使用表示該至少一碼字之該等第一值來執行一第一解碼操作。例如,(若干)表示184之一者可提供至解碼器126,解碼器126可試圖解碼該表示。
方法900亦包含:在910中,基於可由該第一解碼操作校正之錯誤之一數目來判定該第一解碼操作是否成功。例如,解碼器126或ECC引擎122可產生指示校正錯誤之一數目之ECC相關資料,同時解碼該表示或ECC相關資料(其指示該表示之解碼是否成功)。
當在910中該第一解碼操作成功時,方法900包含:在914中,將該第一測試讀取電壓儲存為該非揮發性記憶體之該第二頁之一第二讀取電壓。例如,當該ECC相關資料指示表示由解碼器126成功解碼該表示時,讀取電壓更新引擎140可將包含該第一測試讀取電壓之一值的更新之讀取電壓組儲存為該第二讀取電壓。
當在912中該第一解碼操作不成功時,方法900包含:在916中,執行一或多個額外讀取操作以自該非揮發性記憶體之該第二頁讀取表示該至少一碼字之值。該一或多個額外讀取操作之各者使用一對應測試讀取電壓。例如,當圖3之第一測試讀取電壓322未產生解碼器126能夠解碼之結果(例如表示184之一者)時,第二測試讀取電壓323可用於產生表示184之另一者。
方法900亦包含:在918中,執行一或多個解碼操作。該一或多個額外解碼操作之各者使用表示由該一或多個讀取操作之一對應讀取
操作產生之該至少一碼字(例如表示184之一者)的一組值。該等讀取操作之各者可使用一不同測試讀取電壓(例如值174之一者)。
方法900亦包含:在920中,基於可由該一或多個額外解碼操作之一特定解碼操作校正之錯誤之數目來識別成功之該特定解碼操作;及在922中,將對應於該特定解碼操作之一特定測試讀取電壓儲存為該非揮發性記憶體之該第二頁之該第二讀取電壓。例如,當解碼器126或ECC引擎122產生指示表示184之一者已被成功解碼之ECC相關資訊時,讀取電壓更新引擎140可將產生成功解碼表示之該測試讀取電壓之一值儲存於更新之電壓組146中作為該第二讀取電壓。可在後續記憶體操作(例如讀取操作或寫入操作)期間使用更新之讀取電壓組146。
圖10係可由圖1之資料儲存裝置執行之更新讀取電壓之一方法1000之另一特定實施例之一流程圖。方法1000包含:在1002中,開始一記憶體胞電壓分佈(CVD)分析程序。例如,控制器120可基於ECC相關資訊(例如無法基於可由解碼器126解碼之錯誤之一數目來解碼提供至解碼器126之一或多個碼字的一指示)來開始CVD分析程序。在另一實例中,控制器120可基於與資料儲存裝置102之使用相關之資訊(諸如讀取循環之一數目、寫入循環之一數目、其他使用資訊或其等之組合)來開始CVD分析程序。
方法1000包含:在1004中,判定CVD分析程序是否應包含一全CVD分析或一快速CVD(QCVD)分析。在一特定實施例中,當資料儲存裝置102具有高資源可用性時(例如,當未自非揮發性記憶體104讀取使用者資料132或未將使用者資料132寫入至非揮發性記憶體104時),當已在執行一先前全CVD分析之後執行特定數目個QCVD分析操作時,當最近執行之一QCVD操作基於其他因數而不成功(例如,基於最近QCVD來使用讀取電壓組導致無法解碼之碼字)時,或其等之一組
合,可執行全CVD分析。當資料儲存裝置102之可用資料受限時(例如,當自非揮發性記憶體104讀取使用者資料132或將使用者資料132寫入至非揮發性記憶體104時),當已在執行一先前全CVD分析之後執行比特定數目個QCVD分析操作少之QCVD分析操作(基於其他因數)時,或其等之一組合,可使用QCVD分析程序。
當在1004中執行全CVD分析時,可在1006中執行一全電壓臨限掃描CVD分析操作。例如,對於一每記憶體胞2位元(2BPC)之多位階記憶體胞(MLC)實施方案,可對三十二(32)個不同讀取電壓執行讀取操作及對應ECC操作(例如解碼操作)。該等讀取操作及對應ECC操作可用於判定狀態之間之邊界位置,諸如圖2及圖3之狀態A、B及C之間之VA、VB及VC之值。
當在1004中未執行全CVD分析時,可在1008中開始執行QCVD分析操作。QCVD分析操作可包含或對應於圖4、圖5及圖9之方法400、500或900之任何者。在圖10所繪示之特定實施例中,QCVD分析操作包含:在1010中,使用動態讀取或一5步測試讀取搜尋來讀取一多位階記憶體胞記憶體裝置之一下部頁(LP)以判定一最佳位元錯誤率(一組結果中之最低位元錯誤率)。方法1000亦包含:在1012中,判定該下部頁之一讀取位準(例如一第一讀取電壓)。方法1000包含:在1014中,使用一預設△值(例如一偏移值)來判定AR3(例如對應於圖2之VA之一讀取電壓),使用一第二預設△值(例如一第二偏移值)來判定CR3(例如對應於圖2之VC之一讀取電壓),或使用預設△值來判定AR3及CR3兩者。另外,可藉由執行一最佳位元率錯誤搜尋(例如,一組特定結果中之最合意位元率錯誤搜尋)來進一步改良AR3、CR3或兩者。為了繪示,如參考圖3所描述,第一讀取電壓及偏移值可用於判定一初始測試讀取電壓,該初始測試讀取電壓可用於開始針對待指派給第二讀取電壓之一值之一搜尋。
方法1000亦可包含:在執行全CVD分析之後或在執行QCVD分析之後,基於執行任一CVD分析(例如一全CVD分析或一QCVD分析)之結果來儲存更新之讀取電壓且在1016中針對該等結果來更新一CVD時間標籤。該CVD時間標籤可(例如)用於判定已在一先前全CVD分析之後何時執行臨限數目個QCVD分析操作。
相應地,方法1000能夠基於諸如以下各者之因數來選擇性地實施一全CVD分析操作或一QCVD分析操作:資料儲存裝置之使用歷史、在執行一先前全CVD分析操作之後所執行之QCVD分析操作之一數目、資料儲存裝置之資源之可用性、其他因數或其等之一組合。本文中所描述之QCVD分析操作(諸如圖4之方法400、圖5之方法500及圖9之方法900)比全CVD分析操作快且消耗更少資源。因此,方法1000實現在一些時間(例如,當使用QCVD分析程序時)依較快且更有效率之一方式更新讀取電壓及在其他時間(例如,當使用全CVD分析程序時)依較慢但更完全之一方式更新讀取電壓。
儘管本文中所描繪之各種組件被繪示為區塊組件且被概括地描述,但此等組件可包含一或多個微處理器、狀態機或其他電路,其等經組態以使圖1之讀取電壓更新引擎140能夠開始判定一第一頁之一第一讀取電壓及藉由將一偏移值施加至該第一讀取電壓來判定一第二頁之一第二讀取電壓。
可使用一微處理器或微控制器來實施讀取電壓更新引擎140,該微處理器或微控制器經程式化以判定一第一頁之一第一讀取電壓及藉由將一偏移值施加至該第一讀取電壓來判定一第二頁之一第二讀取電壓。在一特定實施例中,讀取電壓更新引擎140包含執行儲存於非揮發性記憶體104處之指令之一處理器。替代地或另外,由該處理器執行之可執行指令可儲存於並非為非揮發性記憶體104之部分之一單獨記憶體位置處,諸如儲存於一唯讀記憶體(ROM)或記憶體152處。
在一特定實施例中,資料儲存裝置102可附接或嵌入於一或多個主機裝置內,諸如附接或嵌入於一主機通信裝置之一外殼內。例如,資料儲存裝置102可位於使用內部非揮發性記憶體之一封裝設備(諸如一無線電話、一個人數位助理(PDA)、一遊戲裝置或遊戲主控台、一可攜式導航裝置或其他裝置)內。然而,在其他實施例中,可在經組態以選擇性地耦合至一或多個外部裝置之一可攜式裝置中實施圖1之資料儲存裝置102。
本文中所描述之實施例之繪示意欲提供各種實施例之一通用理解。可利用其他實施例且自本發明導出其他實施例,使得可在不脫離本發明之範疇之情況下作出結構及邏輯替代及改變。本發明意欲涵蓋各種實施例之任何及全部後續調適或變動。
上文所揭示之標的被視為具繪示性且非限制性,且隨附技術方案意欲涵蓋落於本發明之範疇內之全部此等修改、改進及其他實施例。因此,在法律允許之最大程度上,本發明之範疇由以下技術方案及其等效物之最廣可容許解譯判定,且不應受先前詳細描述約束或限制。
100‧‧‧系統
102‧‧‧資料儲存裝置
103‧‧‧記憶體晶粒
104‧‧‧非揮發性記憶體
106‧‧‧儲存元件之群組
108‧‧‧儲存元件
120‧‧‧控制器
122‧‧‧錯誤校正碼(ECC)引擎
124‧‧‧編碼器
126‧‧‧解碼器
130‧‧‧主機裝置
132‧‧‧使用者資料
140‧‧‧讀取電壓更新引擎
146‧‧‧更新之讀取電壓組
152‧‧‧記憶體
170‧‧‧第一讀取電壓之第一值
172‧‧‧第一讀取電壓之第N值
174‧‧‧第二讀取電壓之測試值
180‧‧‧表示
182‧‧‧表示
184‧‧‧表示
Claims (29)
- 一種更新一組讀取電壓之方法,該方法包括:在包含一控制器之一資料儲存裝置中執行:判定一非揮發性記憶體之一第一頁之一第一讀取電壓;藉由將一偏移值施加至該第一讀取電壓來判定該非揮發性記憶體之一第二頁之一第二讀取電壓;及儲存識別該第一讀取電壓及該第二讀取電壓之資料。
- 如請求項1之方法,其中該非揮發性記憶體係一多位階記憶體胞(MLC)快閃記憶體裝置。
- 如請求項1之方法,其中該第一頁係一下部頁且該第二頁係一上部頁。
- 如請求項1之方法,其中判定該第一讀取電壓包括:執行複數個讀取操作以自該第一頁讀取表示至少一碼字之值,其中使用不同測試讀取電壓來執行該複數個讀取操作之兩者或兩者以上;及基於該複數個讀取操作之結果來選擇該第一讀取電壓。
- 如請求項4之方法,其中基於該複數個讀取操作之結果來選擇該第一讀取電壓包括:執行複數個解碼操作,其中使用表示由該複數個讀取操作之一對應讀取操作產生之該至少一碼字之一組值來執行各解碼操作;及基於該複數個解碼操作來判定該等不同測試讀取電壓之何者在表示該至少一碼字之該等值中產生最少錯誤,其中選擇產生該等最少錯誤之一測試讀取電壓來用作為該第一讀取電壓。
- 如請求項4之方法,其中基於該複數個讀取操作之結果來選擇該 第一讀取電壓包括:使用表示由該複數個讀取操作之一第一讀取操作產生之該至少一碼字之一第一組值來執行一第一解碼操作;基於可校正之錯誤之一數目來判定該第一解碼操作是否成功,其中若該第一解碼操作成功,則選擇對應於該第一讀取操作之一測試讀取電壓來用作為該第一讀取電壓;及若該第一解碼操作不成功,則執行一或多個額外解碼操作,其中該一或多個額外解碼操作之各者使用表示由該複數個讀取操作之一對應讀取操作產生之該至少一碼字之一組不同值,其中選擇對應於成功之一特定讀取操作之一特定測試讀取電壓來用作為該第一讀取電壓。
- 如請求項4之方法,其中基於該複數個讀取操作之結果來選擇該第一讀取電壓包括:基於該複數個讀取操作之結果來估計一邊界電壓值,其中選擇該估計之邊界電壓值來用作為該第一讀取電壓。
- 如請求項4之方法,其中該複數個讀取操作之各者產生表示一單個碼字之值。
- 如請求項1之方法,其進一步包括:基於與該非揮發性記憶體相關聯之讀取循環之一計數,基於與該非揮發性記憶體相關聯之寫入循環之一計數,或基於讀取循環之該計數及寫入循環之該計數兩者來判定該偏移值。
- 如請求項1之方法,其進一步包括:基於一查找表來判定該偏移值。
- 如請求項1之方法,其中該偏移值係一固定值。
- 如請求項1之方法,其進一步包括:藉由將一第二偏移值施加至該第一讀取電壓來判定該非揮發 性記憶體之一第三頁之一第三讀取電壓,其中該第二偏移值不同於該偏移值;及儲存識別該第三讀取電壓之資料。
- 如請求項1之方法,其進一步包括:在一讀取操作期間,使用該第一讀取電壓以自該第一頁讀取值及使用該第二讀取電壓以自該第二頁讀取值。
- 一種資料儲存裝置,其包括:一控制器;及一非揮發性記憶體,其耦合至該控制器,其中該控制器經組態以判定該非揮發性記憶體之一第一頁之一第一讀取電壓,藉由將一偏移值施加至該第一讀取電壓來判定該非揮發性記憶體之一第二頁之一第二讀取值,且儲存識別該第一讀取電壓及該第二讀取電壓之資料。
- 如請求項14之資料儲存裝置,其中該非揮發性記憶體係一多位階記憶體胞(MLC)快閃記憶體裝置。
- 如請求項14之資料儲存裝置,其中該第一頁係一下部頁且該第二頁係一上部頁。
- 如請求項14之資料儲存裝置,其中該控制器經組態以藉由以下操作來判定該第一讀取電壓:執行複數個讀取操作以自該非揮發性記憶體之該第一頁讀取表示至少一碼字之值,其中使用不同測試讀取電壓來執行該複數個讀取操作之兩者或兩者以上;及基於該複數個讀取操作之結果來選擇該第一讀取電壓。
- 如請求項17之資料儲存裝置,其中該控制器經組態以藉由以下操作來選擇基於該複數個讀取操作之結果之該第一讀取電壓:執行複數個解碼操作,其中使用表示由該複數個讀取操作之 一對應讀取操作產生之該至少一碼字之一組值來執行各解碼操作;及基於該複數個解碼操作來判定該等不同測試讀取電壓之何者在表示該至少一碼字之該等值中產生最少錯誤,其中選擇產生該等最少錯誤之一測試讀取電壓來用作為該第一讀取電壓。
- 如請求項17之資料儲存裝置,其中該控制器經組態以藉由以下操作來選擇基於該複數個讀取操作之結果之該第一讀取電壓設定:使用表示由該複數個讀取操作之一第一讀取操作產生之該至少一碼字之一第一組值來執行一第一解碼操作;基於可校正之錯誤之一數目來判定該第一解碼操作是否成功,其中若該第一解碼操作成功,則選擇對應於該第一讀取操作之一測試讀取電壓來用作為該第一讀取電壓;及若該第一解碼操作不成功,則執行一或多個額外解碼操作,其中該一或多個額外解碼操作之各者使用表示由該複數個讀取操作之一對應讀取操作產生之該至少一碼字之一組不同值,其中選擇對應於成功之一特定讀取操作之一特定測試讀取電壓來用作為該第一讀取電壓。
- 如請求項17之資料儲存裝置,其中該控制器經組態以藉由基於該複數個讀取操作之結果估計一邊界電壓值來選擇基於該複數個讀取操作之結果之該第一讀取電壓,其中選擇該估計之邊界電壓值來用作為該第一讀取電壓。
- 如請求項17之資料儲存裝置,其中該複數個讀取操作之各者產生表示一單個碼字之值。
- 如請求項14之資料儲存裝置,其中該控制器進一步經組態以基於與該非揮發性記憶體相關聯之讀取循環之一計數,基於與該 非揮發性記憶體相關聯之寫入循環之一計數,或基於讀取循環之該計數及寫入循環之該計數兩者來判定該偏移值。
- 如請求項14之資料儲存裝置,其中該控制器進一步經組態以基於一查找表來判定該偏移值。
- 如請求項14之資料儲存裝置,其中該偏移值係一預定固定值。
- 如請求項14之資料儲存裝置,其中該控制器進一步經組態以藉由將一第二偏移值施加至該第一讀取電壓來判定該非揮發性記憶體之一第三頁之一第三讀取電壓,其中該第二偏移值不同於該偏移值。
- 如請求項14之資料儲存裝置,其中該控制器進一步經組態以在一讀取操作期間,使用該第一讀取電壓以自該第一頁讀取值及使用該第二讀取電壓以自該第二頁讀取值。
- 一種更新一組讀取電壓之方法,該方法包括:在包含一控制器及一非揮發性記憶體之一資料儲存裝置中,執行:判定該非揮發性記憶體之一第一頁之一第一讀取電壓;藉由將一偏移值施加至該第一讀取電壓來判定該非揮發性記憶體之一第二頁之一第一測試讀取電壓;使用該第一測試讀取電壓來執行一第一讀取操作以自該非揮發性記憶體之該第二頁讀取表示至少一碼字之第一值;使用表示該至少一碼字之該等第一值來執行一第一解碼操作;基於可由該第一解碼操作校正之錯誤之一數目來判定該第一解碼操作是否成功;及當該第一解碼操作成功時,將該第一測試讀取電壓儲存為該非揮發性記憶體之該第二頁之一第二讀取電壓。
- 如請求項27之方法,其進一步包括:當該第一解碼操作不成功時:執行一或多個額外讀取操作以自該非揮發性記憶體之該第二頁讀取表示該至少一碼字之值,其中該一或多個額外讀取操作之各者使用一對應測試讀取電壓;執行一或多個額外解碼操作,其中該一或多個額外解碼操作之各者使用表示由該一或多個讀取操作之一對應讀取操作產生之該至少一碼字之一組值;基於可由該一或多個額外解碼操作之一特定解碼操作校正之錯誤之該數目來識別成功之該特定解碼操作;及將對應於該特定解碼操作之一特定測試讀取電壓儲存為該非揮發性記憶體之該第二頁之該第二讀取電壓。
- 一種資料儲存裝置,其包括:一控制器;及一非揮發性記憶體,其耦合至該控制器,其中該控制器經組態以:判定該非揮發性記憶體之一第一頁之一第一讀取電壓;藉由將一偏移值施加至該第一讀取電壓來判定該非揮發性記憶體之一第二頁之一第一測試讀取電壓;執行一第一讀取操作以自該非揮發性記憶體之該第二頁讀取表示至少一碼字之第一值;使用表示該至少一碼字之該等第一值來執行一第一解碼操作;基於可由該第一解碼操作校正之錯誤之一數目來判定該第一解碼操作是否成功;及當該第一解碼操作成功時,將該第一測試讀取電壓儲存為該非揮發性記憶體之該第二頁之一第二讀取電壓。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/035,749 US20150085571A1 (en) | 2013-09-24 | 2013-09-24 | Updating read voltages |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| TW201528274A true TW201528274A (zh) | 2015-07-16 |
Family
ID=51542500
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW103132524A TW201528274A (zh) | 2013-09-24 | 2014-09-19 | 更新讀取電壓 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20150085571A1 (zh) |
| TW (1) | TW201528274A (zh) |
| WO (1) | WO2015047688A1 (zh) |
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2018037123A (ja) * | 2016-08-29 | 2018-03-08 | 東芝メモリ株式会社 | 半導体記憶装置及びメモリシステム |
| TWI657568B (zh) * | 2018-05-28 | 2019-04-21 | 香港商艾思科有限公司 | 操作儲存裝置的方法 |
| CN113495801A (zh) * | 2020-03-20 | 2021-10-12 | 慧荣科技股份有限公司 | 存取闪存模块的方法及相关的闪存控制器与电子装置 |
| TWI787116B (zh) * | 2022-01-11 | 2022-12-11 | 慧榮科技股份有限公司 | 動態更新最佳化讀取電壓表的方法及電腦程式產品及裝置 |
| TWI808596B (zh) * | 2022-01-04 | 2023-07-11 | 群聯電子股份有限公司 | 讀取電壓準位校正方法、記憶體儲存裝置及記憶體控制電路單元 |
| TWI863112B (zh) * | 2023-02-02 | 2024-11-21 | 群聯電子股份有限公司 | 讀取電壓調整方法、記憶體儲存裝置及記憶體控制電路單元 |
| US12175092B2 (en) | 2022-01-11 | 2024-12-24 | Silicon Motion, Inc. | Method and non-transitory computer-readable storage medium and apparatus for reading data with optimization read voltage table |
| US12204763B2 (en) | 2022-01-11 | 2025-01-21 | Silicon Motion, Inc. | Method and non-transitory computer-readable storage medium and apparatus for dynamically updating optimization read voltage table |
| TWI880329B (zh) * | 2023-09-06 | 2025-04-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Families Citing this family (37)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9812193B2 (en) * | 2013-11-08 | 2017-11-07 | SK Hynix Inc. | Threshold estimation using bit flip counts and minimums |
| US9209835B2 (en) * | 2013-11-27 | 2015-12-08 | Seagate Technology Llc | Read retry for non-volatile memories |
| US9818488B2 (en) * | 2015-10-30 | 2017-11-14 | Seagate Technology Llc | Read threshold voltage adaptation using bit error rates based on decoded data |
| US10276247B2 (en) | 2013-12-20 | 2019-04-30 | Seagate Technology Llc | Read retry operations with estimation of written data based on syndrome weights |
| TWI492234B (zh) | 2014-04-21 | 2015-07-11 | Silicon Motion Inc | 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與記憶體系統 |
| KR102215741B1 (ko) * | 2014-06-23 | 2021-02-17 | 삼성전자주식회사 | 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법 |
| TWI582779B (zh) * | 2015-04-14 | 2017-05-11 | 群聯電子股份有限公司 | 讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元 |
| TWI612525B (zh) * | 2016-07-07 | 2018-01-21 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
| US10290358B2 (en) | 2016-07-08 | 2019-05-14 | Seagate Technology Llc | Independent read threshold voltage tracking for multiple dependent read threshold voltages using syndrome weights |
| KR20180006164A (ko) * | 2016-07-08 | 2018-01-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
| US10180868B2 (en) * | 2016-07-08 | 2019-01-15 | Seagate Technology Llc | Adaptive read threshold voltage tracking with bit error rate estimation based on non-linear syndrome weight mapping |
| JP2018163724A (ja) | 2017-03-27 | 2018-10-18 | 東芝メモリ株式会社 | メモリシステム |
| US10229749B2 (en) | 2017-03-31 | 2019-03-12 | Samsung Electronics Co., Ltd. | Nonvolatile memory storage system |
| US10381090B2 (en) | 2017-03-31 | 2019-08-13 | Samsung Electronics Co., Ltd. | Operation method of nonvolatile memory device and storage device |
| US10236070B2 (en) * | 2017-06-27 | 2019-03-19 | Western Digital Technologies, Inc. | Read level tracking and optimization |
| US10290347B2 (en) | 2017-06-30 | 2019-05-14 | Western Digital Technologies, Inc. | Compacting operating parameter groups in solid state memory devices |
| US10289341B2 (en) | 2017-06-30 | 2019-05-14 | Western Digital Technologies, Inc. | Operating parameter offsets in solid state memory devices |
| CN109273037B (zh) * | 2017-07-17 | 2022-08-26 | 深圳大心电子科技有限公司 | 数据读取方法以及存储控制器 |
| US10199111B1 (en) * | 2017-08-04 | 2019-02-05 | Micron Technology, Inc. | Memory devices with read level calibration |
| US10269422B2 (en) * | 2017-09-08 | 2019-04-23 | Cnex Labs, Inc. | Storage system with data reliability mechanism and method of operation thereof |
| US10515694B2 (en) * | 2017-11-03 | 2019-12-24 | Silicon Storage Technology, Inc. | System and method for storing multibit data in non-volatile memory |
| US10637511B2 (en) | 2017-12-18 | 2020-04-28 | Western Digital Technologies, Inc | Dynamic multi-stage decoding |
| US10366770B1 (en) * | 2018-02-28 | 2019-07-30 | Toshiba Memory Corporation | Bit error rate estimation for NAND flash memory |
| US10908986B2 (en) * | 2018-04-02 | 2021-02-02 | Sandisk Technologies Llc | Multi-level recovery reads for memory |
| US10636495B2 (en) | 2018-06-12 | 2020-04-28 | Western Digital Technologies, Inc. | Adjustable read retry order based on decoding success trend |
| KR20200076519A (ko) * | 2018-12-19 | 2020-06-29 | 에스케이하이닉스 주식회사 | 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법 |
| US10892777B2 (en) * | 2019-02-06 | 2021-01-12 | Seagate Technology Llc | Fast error recovery with error correction code (ECC) syndrome weight assist |
| US11056199B2 (en) * | 2019-10-30 | 2021-07-06 | International Business Machines Corporation | Updating corrective read voltage offsets in non-volatile random access memory |
| US12093562B2 (en) * | 2020-01-20 | 2024-09-17 | SK Hynix Inc. | Controller with smart scheduling and method of operating the controller |
| CN111813336B (zh) * | 2020-06-05 | 2022-08-09 | 浙江大华存储科技有限公司 | 一种固态硬盘的数据存储方法及装置 |
| US11887684B2 (en) * | 2020-10-30 | 2024-01-30 | Samsung Electronics Co., Ltd. | Storage device including nonvolatile memory device, operating method of storage device, and operating method of electronic device including nonvolatile memory device |
| US11494114B1 (en) * | 2021-04-26 | 2022-11-08 | Micron Technology, Inc. | Read threshold adjustment techniques for non-binary memory cells |
| US11475961B1 (en) * | 2021-05-04 | 2022-10-18 | Sandisk Technologies Llc | Nonvolatile memory with efficient look-ahead read |
| KR102880895B1 (ko) * | 2021-05-25 | 2025-11-05 | 삼성전자 주식회사 | 신경망 자기 정정 최소합 복호기 및 이를 포함하는 전자 장치 |
| EP4329202A4 (en) * | 2021-05-25 | 2024-10-16 | Samsung Electronics Co., Ltd. | SELF-CORRECTING MIN-SUM DECODER BASED ON NEURAL NETWORK AND ELECTRONIC DEVICE COMPRISING SAME |
| US11798614B2 (en) * | 2021-08-31 | 2023-10-24 | Micron Technology, Inc. | Automated voltage demarcation (VDM) adjustment for memory device |
| WO2025175484A1 (zh) * | 2024-02-20 | 2025-08-28 | 长江存储科技有限责任公司 | 存储器装置、存储器系统、存储器控制器及操作方法 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8259506B1 (en) * | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
| KR101578511B1 (ko) * | 2009-05-20 | 2015-12-18 | 삼성전자주식회사 | 리드 전압 설정 방법 |
| US8661184B2 (en) * | 2010-01-27 | 2014-02-25 | Fusion-Io, Inc. | Managing non-volatile media |
| US8248856B2 (en) * | 2010-10-20 | 2012-08-21 | Seagate Technology Llc | Predictive read channel configuration |
| US8811081B2 (en) * | 2011-12-09 | 2014-08-19 | Sandisk Technologies Inc. | Systems and methods of updating read voltages in a memory |
| KR20130087092A (ko) * | 2012-01-27 | 2013-08-06 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 상기 메모리 컨트롤러를 포함하는 메모리 시스템 |
| US9135106B2 (en) * | 2012-05-22 | 2015-09-15 | Hgst Technologies Santa Ana, Inc. | Read level adjustment using soft information |
| KR20140045168A (ko) * | 2012-10-08 | 2014-04-16 | 삼성전자주식회사 | 불휘발성 메모리 장치, 메모리 시스템 및 불휘발성 메모리 장치의 동작방법 |
| US9122626B2 (en) * | 2013-05-13 | 2015-09-01 | Seagate Technology Llc | Linearly related threshold voltage offsets |
| US9152495B2 (en) * | 2013-07-03 | 2015-10-06 | SanDisk Technologies, Inc. | Managing non-volatile media using multiple error correcting codes |
-
2013
- 2013-09-24 US US14/035,749 patent/US20150085571A1/en not_active Abandoned
-
2014
- 2014-09-05 WO PCT/US2014/054188 patent/WO2015047688A1/en not_active Ceased
- 2014-09-19 TW TW103132524A patent/TW201528274A/zh unknown
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2018037123A (ja) * | 2016-08-29 | 2018-03-08 | 東芝メモリ株式会社 | 半導体記憶装置及びメモリシステム |
| TWI657568B (zh) * | 2018-05-28 | 2019-04-21 | 香港商艾思科有限公司 | 操作儲存裝置的方法 |
| CN113495801A (zh) * | 2020-03-20 | 2021-10-12 | 慧荣科技股份有限公司 | 存取闪存模块的方法及相关的闪存控制器与电子装置 |
| TWI808596B (zh) * | 2022-01-04 | 2023-07-11 | 群聯電子股份有限公司 | 讀取電壓準位校正方法、記憶體儲存裝置及記憶體控制電路單元 |
| TWI787116B (zh) * | 2022-01-11 | 2022-12-11 | 慧榮科技股份有限公司 | 動態更新最佳化讀取電壓表的方法及電腦程式產品及裝置 |
| US12175092B2 (en) | 2022-01-11 | 2024-12-24 | Silicon Motion, Inc. | Method and non-transitory computer-readable storage medium and apparatus for reading data with optimization read voltage table |
| US12204763B2 (en) | 2022-01-11 | 2025-01-21 | Silicon Motion, Inc. | Method and non-transitory computer-readable storage medium and apparatus for dynamically updating optimization read voltage table |
| TWI863112B (zh) * | 2023-02-02 | 2024-11-21 | 群聯電子股份有限公司 | 讀取電壓調整方法、記憶體儲存裝置及記憶體控制電路單元 |
| TWI880329B (zh) * | 2023-09-06 | 2025-04-11 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元 |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2015047688A1 (en) | 2015-04-02 |
| US20150085571A1 (en) | 2015-03-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TW201528274A (zh) | 更新讀取電壓 | |
| US9728263B2 (en) | Method and device for iteratively updating read voltages | |
| US9785501B2 (en) | Error detection and handling for a data storage device | |
| US9037946B2 (en) | Detecting effect of corrupting event on preloaded data in non-volatile memory | |
| US8862967B2 (en) | Statistical distribution based variable-bit error correction coding | |
| KR101891378B1 (ko) | 메모리 블록에 대한 프로그래밍 단계 사이즈를 조정하는 시스템 및 방법 | |
| TWI584293B (zh) | 產生替代預設讀取臨限值之系統與方法 | |
| US9240235B2 (en) | Mitigating disturb effects for non-volatile memory | |
| EP2751689B1 (en) | System and method of copying data | |
| US9633749B2 (en) | System and method of managing tags associated with read voltages | |
| CN105122373B (zh) | 用于数据贮存装置的字线瑕疵检测和处理 | |
| US9575829B2 (en) | Probability-based remedial action for read disturb effects | |
| US9063879B2 (en) | Inspection of non-volatile memory for disturb effects | |
| US9129689B2 (en) | Tracking erase pulses for non-volatile memory | |
| KR20130077890A (ko) | 정정 불가능한 에러를 해결하는 하이브리드 에러 정정 코딩 | |
| US9286993B2 (en) | Determining read voltages for reading memory | |
| TW201346918A (zh) | 判定針對記憶體之字線之程式化步階大小之系統及方法 |