TW201324127A - 資料儲存裝置及使用多重讀取電壓以校正位元值之方法 - Google Patents
資料儲存裝置及使用多重讀取電壓以校正位元值之方法 Download PDFInfo
- Publication number
- TW201324127A TW201324127A TW101133055A TW101133055A TW201324127A TW 201324127 A TW201324127 A TW 201324127A TW 101133055 A TW101133055 A TW 101133055A TW 101133055 A TW101133055 A TW 101133055A TW 201324127 A TW201324127 A TW 201324127A
- Authority
- TW
- Taiwan
- Prior art keywords
- bit values
- read
- bit
- values
- ecc
- Prior art date
Links
Classifications
-
- 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/1068—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 in sector programmable memories, e.g. flash disk
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本發明揭示一種包含一記憶體之資料儲存裝置,該記憶體包含複數個儲存元件。該記憶體經組態以使用一第一讀取電壓讀取該等儲存元件之一群組以獲得第一複數個位元值。一控制器係耦合至該記憶體。該控制器經組態以對該第一複數個位元值起始一第一錯誤校正碼(ECC)程序。回應於該第一ECC程序判定該第一複數個位元值係不可校正,該控制器進一步經組態以指示該記憶體使用一第二讀取電壓讀取該等儲存元件之該群組以獲得第二複數個位元值,且將該第一複數個位元值之一或多個值改變為該第二複數個位元值之對應值以產生第一複數個經校正位元值。
Description
本發明大體上係關於資料儲存及擷取。
錯誤偵測及校正處理程序有助於維持記憶體儲存裝置內之資料完整性。錯誤校正碼(ECC)處理程序通常用於電腦記憶體子系統中之錯誤校正。例如,可在一讀取操作期間使用一ECC以判定所存取之資料位元(例如,表示由一處理器擷取之資訊之記憶體單元)是否具有不正確值。ECC處理可藉由偵測錯誤位元之數目及基於所應用的特定ECC技術之校正能力校正該等錯誤位元來增加記憶體裝置之操作可靠性。無關於由使用ECC提供之進展,可期望能夠校正超過一應用ECC技術之一校正能力之錯誤數目。
本發明揭示可識別並校正所儲存或所傳輸之資料內之錯誤之系統及方法。一特定實施例可藉由使用一第一電壓讀取一記憶體內之儲存元件之一群組獲得第一資料且對該第一資料起始一錯誤校正碼(ECC)程序。回應於一ECC程序指示該第一資料不可藉由該ECC程序校正,可藉由使用不同於該第一電壓之一第二電壓讀取儲存元件之相同群組而獲得第二資料。該第一資料與該第二資料之一比較可識別在該第一資料與該第二資料之間具有不同值之位元。可藉由將該第一資料之一或多個位元值改變為該第二資料之對應值而產生經校正位元值。在翻轉一或多個位元之後,再
次起始該ECC程序以判定是否已校正足夠數目個位元以實現任何其餘位元錯誤之ECC校正。
參考圖1,描繪使用多重讀取電壓以校正位元值之一系統之一特定闡釋性實施例且該系統整體以100標示。該系統100包含耦合至一控制器120之一記憶體104。該控制器120係耦合至一主機裝置140。
該主機裝置140可經組態以提供資料儲存於該記憶體104處或請求自該記憶體104讀取資料。例如,該主機裝置140可包含一行動電話、一音樂或視訊播放器、一遊戲主控台及一電子書閱讀器、一個人數位助理(PDA)、諸如一膝上型電腦或筆記型電腦之一電腦、任何其他電子裝置或其等之任何組合。
該記憶體104可為一非揮發性記憶體且可包含複數個儲存元件,諸如一多位階單元(MLC)快閃記憶體之快閃記憶體單元。該記憶體104可經組態以使用一讀取電壓讀取該等儲存元件之一群組(諸如多位階單元之一頁)以獲得複數個位元值並將該複數個位元值傳送至該控制器120。
該控制器120包含比較在多重讀取電壓130之讀取資料之一位元值校正器。該位元值校正器經組態以比較在多重讀取電壓130之讀取資料並基於在不同讀取電壓產生之資料而產生經校正資料。例如,該控制器120可執行一次或多次嘗試以校正並解碼來自儲存元件之群組之資料。
在操作期間,該主機裝置140可指示該控制器120自該記
憶體104擷取對應於儲存元件之群組之資料。該記憶體104可使用一第一讀取電壓讀取儲存元件之群組以獲得第一複數個位元值並提供該第一複數個位元值給該控制器120。該控制器120可對該第一複數個位元值起始一第一ECC程序。回應於該第一ECC程序判定該第一複數個位元值係不可校正,該控制器120可指示該記憶體104以使用與該第一讀取電壓相比具有相對較小電壓變化之一第二讀取電壓讀取儲存元件之相同群組以獲得第二複數個位元值。該控制器120可比較該第一複數個位元值與該第二複數個位元值以識別該第一複數個位元值中與該第二複數個位元值相比具有不同值之一第一組位元。因此,該控制器120可經由該位元值校正器130而比較在多重讀取電壓130之讀取資料並藉由將該第一複數個位元值之一或多個值改變為該第二複數個位元值之對應值而產生第一複數個經校正位元值。例如,在翻轉一或多個位元(即,自「0」值改變為「1」值或自「1」值改變為「0」值)之後,該控制器120可對該第一複數個經校正位元值起始一第二ECC程序以判定是否正確地翻轉該一或多個位元。
回應於該第二ECC程序判定該第一複數個經校正位元值係不可校正,該控制器120可指示該記憶體140以使用與該第二讀取電壓相比具有相對較小電壓變化之一第三讀取電壓讀取儲存元件之相同群組以獲得第三複數個位元值。該控制器120可比較該第二複數個位元值與該第三複數個位元值以識別該第二複數個位元值中與該第三複數個位元值
相比具有不同值之一第二組位元。因此,該控制器120可經由該位元值校正器130而比較在多重讀取電壓130之讀取資料並藉由將該第二複數個位元值之一或多個值改變為該第三複數個位元值之對應值而產生第二複數個經校正位元值。該控制器120可對該第二複數個經校正位元值起始一第三ECC程序以判定是否正確地翻轉在產生該第二複數個經校正位元值時所翻轉之一或多個位元。
藉由將具有隨著讀取電壓之相對較小變化而變化之值之位元識別為可能係錯誤,該控制器120可校正足夠數目個錯誤位元以使該控制器120能夠成功地解碼自該記憶體104讀取之資料。為圖解說明,在該第二ECC程序判定該第一複數個經校正位元值係不可校正之情況中,可使用不同的讀取電壓執行額外讀取,且可產生額外複數個經校正位元值直到一ECC程序成功。或者,該控制器可對可基於不同讀取電壓而嘗試之連續ECC程序之數目強加限制。例如,該限制可與一ECC程序臨限值(諸如ECC程序之一預定數目或一逾時)相關聯。
參考圖2,描繪使用多重讀取電壓以校正位元值之一系統之一特定闡釋性實施例且該系統整體以200標示。該系統200包含耦合至一主機裝置240之一資料儲存裝置202。該資料儲存裝置202包含一記憶體204及包含一位元值校正器232之一控制器220。在一特定實施例中,該位元值校正器232可對應於圖1之位元值校正器130。
該資料儲存裝置202可為一記憶體卡,諸如Secure
Digital SD®卡、microSD®卡、miniSD.TM卡(德拉瓦州,威明頓市,SD-3C LLC之商標)、MultiMediaCard.TM(MMC.TM)卡(維吉尼亞州,阿靈頓,弗吉尼亞州,JEDEC固態技術協會之商標)或CompactFlash®(CF)卡(加利福尼亞州,米爾皮塔斯,SanDisk之商標)。作為另一實例,如闡釋性實例,該資料儲存裝置202可經組態以作為諸如eMMC®(維吉尼亞州,阿靈頓,JEDEC固態技術協會之商標)及eSD之一嵌入式記憶體而耦合至該主機裝置240。作為另一闡釋性實例,該資料儲存裝置202可包含一硬碟機,該硬碟機包含用於資料儲存之一或多個旋轉磁盤。
該記憶體204包含複數個儲存元件206。該記憶體204經組態以讀取該等儲存元件206之一群組208,諸如多位階單元(MLC)記憶體單元之一頁。例如,該記憶體204可為一NAND快閃記憶體。該記憶體204亦包含讀取電路210。該讀取記憶體210可經組態以使用一讀取電壓214讀取該等儲存元件206之群組208以獲得第一複數個位元值。例如,該第一複數個位元值可作為讀取資料212提供給該控制器220。
該控制器220包含一ECC引擎231、一讀取結果儲存器222、位元值校正器232、一比較器226及一讀取電壓表228。該控制器220可經組態以藉由提供該讀取資料212給該ECC引擎231而對該讀取資料212起始一第一錯誤校正碼(ECC)程序。例如,該ECC引擎231可採用一ECC解碼方案,諸如一里德所羅門(Reed Solomon)ECC、一博斯-喬達
利-奧昆岡(BCH)ECC、一或多個其他ECC解碼方案或其等之任何組合。
該控制器220可進一步經組態以回應於一組或多組位元值(諸如第一複數個位元值223、第二複數個位元值224及第三複數個位元值225)在該ECC引擎231處導致一解碼錯誤而儲存一組或多組位元值223至225。例如,當該第一複數個位元值223具有超過該ECC引擎231之一校正能力之位元錯誤數目時,該ECC引擎231可產生指示該第一複數個位元值223不可解碼之一錯誤信號。據此回應,該控制器220可經組態以指示該記憶體204使用可自該讀取電壓表228擷取之一不同讀取電壓214執行另一讀取操作。例如,該控制器220可指示該記憶體204使用自該讀取電壓表228擷取之一第二讀取電壓讀取該等儲存元件206之群組208以獲得第二複數個位元值。
該位元值校正器232經組態以使用在不同讀取電壓產生之兩組或兩組以上位元值223至225而產生一組或多組經校正位元值236。例如,該位元值校正器232可經組態以提供該第一複數個位元值223及該第二複數個位元值224給該比較器226。該比較器226經組態以回應於比較該第一複數個位元值223與該第二複數個位元值224而產生具有不同值234之一第一組位元。具有不同值234之第一組位元之位元可指示該群組208之儲存元件具有接近狀態之間之一邊界且由隨著讀取電壓214之不同值之值變化(例如,自「0」改變為「1」或自「1」改變為「0」)指示之之一狀態。與
在該第一複數個位元值223及該第二複數個位元值224中具有相同值之位元相比,在具有不同值234之第一組位元中識別之位元較有可能係錯誤。基於具有不同值234之第一組位元之位元,該位元值校正器232可經組態以藉由將該第一複數個位元值223之一或多者改變為該第二複數個位元值224之對應值而產生第一複數個經校正位元值236。或者,該位元值校正器232可經組態以藉由翻轉具有不同值234之該等位元之一或多者而產生該第一複數個經校正位元值236。
如參考圖3進一步描述,該控制器220可經組態以:在該記憶體204處執行一讀取;將源自該讀取的讀取資料212儲存至該讀取結果儲存器222;判定展現由自一先前讀取之一讀取電壓變化所致之一位元值變化之一組位元;及產生複數個經校正位元值236以在該ECC引擎231處後續嘗試解碼。該控制器220識別自儲存元件群組208之儲存元件206讀取之位元,該等位元可歸因於該等儲存元件具有接近所定義狀態值之間之邊界之狀態而較有可能係錯誤。藉由識別可能錯誤之位元,該控制器220可校正足夠數目個錯誤位元以使該ECC引擎231能夠對該複數個經校正位元值236執行一成功校正解碼。例如,即使來自或關於儲存元件之群組208或複數個經校正位元值236之資料中所發生的位元錯誤數目超過該ECC引擎231之錯誤校正能力,該控制器220亦可作出一或多次嘗試以校正並解碼該資料。雖然該控制器220可不經由該位元值校正器232偵測並校正出現在
該讀取資料212中之全部位元錯誤,但是該控制器220可校正足夠數目個錯誤位元以使該ECC引擎231能夠對該複數個經校正位元值236執行一成功校正解碼。
在操作期間,該控制器220可藉由該主機裝置240指示以擷取對應於儲存元件之群組208之資料。該控制器220可據此回應而自該讀取電壓表228擷取一第一讀取電壓214,且提供一指令給該記憶體204以藉由根據該第一讀取電壓214讀取儲存元件之群組208而擷取該讀取資料212。控制器220可提供讀取資料212至ECC引擎231。回應於該讀取資料212具有超過該ECC引擎231之錯誤校正能力之位元錯誤,該控制器220可將該讀取資料212作為該第一複數個位元值223而儲存在該讀取結果儲存器222中。
該控制器220可進一步自該讀取資料表228擷取該讀取電壓224之下一個值且指示該記憶體204根據新擷取的讀取電壓214而對儲存元件之群組208執行另一讀取。例如,如關於圖4至圖5進一步詳細描述,一MLC記憶體之一下部頁中之錯誤可由程式干擾引起,從而引起一擦除狀態中之記憶體單元被讀取為一程式化狀態中之記憶體單元。因此,當讀取一MLC記憶體之一下部頁時,一程式干擾可懷疑係該下部頁中之至少一些錯誤之原因。因此,可自該讀取電壓表228選擇待施加至該記憶體204之下一讀取電壓214以使其具有高於第一讀取電壓214之一電壓以補償程式干擾效應。作為另一實例,如關於圖4至圖5進一步詳細描述,一MLC記憶體之一上部頁中之錯誤可由資料保留效應引起,從而引起程式化為一最高臨限值狀態之記憶體單元被讀取
為處於一較低臨限值電壓狀態中。因此,當讀取該MLC記憶體之一上部頁時,資料保留效應可懷疑係該上部頁中之至少一些錯誤的原因。因此,可自該讀取電壓表228選擇待施加至該記憶體204之下一讀取電壓214以使其具有低於該第一讀取電壓214之一電壓。
回應於來自該控制器220使用下一讀取電壓214之指示,該記憶體204可將一第二組讀取資料212傳回至該控制器220。該控制器220可將該第二組讀取資料212作為第二複數個位元值224而儲存在該讀取結果儲存器222中。該控制器220可提供第一複數個位元值223及第二複數個位元值224給該比較器226,以產生在該位元值校正器232處使用之具有不同值234之第一組位元。例如,該比較器226可對該第一複數個位元值223及該第二複數個位元值224執行一逐位元互斥或(XOR)操作,以產生相同位元具有「0」值且在該第一複數個位元值223與該第二複數個位元值224之間存在差異之位元具有「1」值之一組位元。該位元值校正器232可基於具有不同值234之第一組位元而識別待校正之第一複數個位元值223之一或多個位元,且可分離並發送該第一複數個經校正位元值236至該ECC引擎231。例如,具有不同值234之第一組位元可包含一系列「1」值,該等值指示在第一讀取電壓214之第一複數個位元值223與第二讀取電壓214之第二複數個位元值224之間改變值之位元。可藉由將該第一複數個位元值223之一或多個值改變為該第二複數個位元值224之對應值而產生該第一複數個經校
正位元值。
該ECC引擎231可對該第一複數個經校正位元值236執行一解碼操作,且回應於該第一複數個經校正位元值236可解碼而可將使用者資料242傳回至該主機裝置240。然而,在該第一複數個經校正位元值236亦具有超過該ECC引擎231之校正能力之位元錯誤數目之情況中,該控制器220可自該讀取電壓表228讀取另一電壓並指示該記憶體204使用最近擷取的讀取電壓214(例如,讀取電壓之另一值)而對儲存元件之群組208執行另一讀取操作。該記憶體204可據此回應而擷取對應於該讀取電壓214之第三值之讀取資料212之一第三例項,且該讀取資料212之第三例項可藉由該控制器220儲存為第三複數個位元值225。
該控制器220可提供該第三複數個位元值225給該位元值校正器232以產生具有不同值233之第二組位元。例如,該位元值校正器232可採用一多數選擇程序以針對在該第一複數個位元值223、該第二複數個位元值224及該第三複數個位元值225之一或多者中具有不同值之位元選擇一值。該位元值校正器232可基於具有不同值233之第二組位元而輸出第二複數個經校正位元值236,且該第二複數個經校正位元值236可提供給該ECC引擎231用於後續嘗試ECC解碼。
該控制器220可提供第四複數個位元值(未展示)給該位元值校正器232以產生具有不同值之一第三組位元(未展示)。例如,該位元值校正器232可採用一多數選擇程序以
針對在該第二複數個位元值224、該第三複數個位元值225及該第四複數個位元值(未展示)之一或多者中具有不同值之位元選擇一值。該位元值校正器232可基於具有不同值之第三組位元而輸出第三複數個經校正位元值236,且該第三複數個經校正位元值236可提供給該ECC引擎231用於後續嘗試ECC解碼。
因此,該控制器220可經組態以:在該記憶體204處執行一讀取;將源自該讀取之讀取資料212儲存至該讀取結果儲存器222;判定具有由自一先前讀取之一讀取電壓變化所致之一位元值變化之一組位元;及產生複數個經校正位元值236以在該ECC引擎231處後續嘗試解碼。藉由將可能係錯誤之位元識別為回應於讀取電壓214之小變化而展現值變化,該控制器220可校正足夠數目個錯誤位元以使該ECC引擎231能夠對該複數個經校正位元值236執行一成功校正解碼。
在該ECC引擎231處後續嘗試解碼判定該複數個經校正位元值236係不可校正之情況中,可使用不同的讀取電壓執行額外讀取且可產生額外複數個經校正位元值236直到一ECC程序成功。或者,該控制器可對可基於不同的讀取電壓而嘗試之連續ECC程序之數目強加限制。例如,該限制可與一ECC程序臨限值(諸如ECC程序之一預定數目或一逾時)相關聯。
參考圖3A及圖3B,一序列圖經描繪且圖解說明使用多重讀取電壓校正位元值之一方法之一特定實施例,且該序
列圖整體以300標示。該序列圖300展示一記憶體、包含一位元值校正器及一ECC引擎之一控制器(諸如,圖2之記憶體204、包含位元值校正器232及ECC引擎231之控制器220)之間之傳訊。該序列圖300包含在一第一讀取電壓自儲存元件之一群組獲得第一複數個位元值(在302)。可自該記憶體204獲得來自儲存元件之群組之第一複數個位元值。例如,可藉由該主機裝置240指示該資料儲存裝置202內之控制器220擷取對應於儲存元件之群組208之資料。該控制器220可自該讀取電壓表228擷取一第一讀取電壓214並提供一指示給該記憶體204以藉由根據該讀取電壓214讀取儲存元件之群組208而擷取讀取資料212。該記憶體204可獲得第一複數個位元值且可提供該複數個位元值給該控制器220。
可對該第一複數個位元值起始一錯誤校正碼(ECC)程序(在304)。例如,該控制器220可經組態以提供該讀取資料212給該ECC引擎231。回應於該ECC程序指示該第一複數個位元值可校正,將資料傳回至該主機裝置240且可開始解碼自該記憶體讀取之緊接在後的複數個位元值。否則,回應於該ECC程序指示該第一複數個位元值不可藉由該ECC程序校正(在306),在一第二讀取電壓自儲存元件之群組獲得第二複數個位元值(在308)。例如,回應於讀取資料212具有超過該ECC引擎231之錯誤校正能力之位元錯誤,該控制器220可將該讀取資料212作為第一複數個位元值223而儲存在該讀取結果儲存器222中。該控制器220可進
一步自該讀取電壓表228擷取讀取電壓214之一第二值,且指示該記憶體204根據該讀取電壓214之第二值而對儲存元件之群組208執行一第二讀取。回應於來自該控制器220之指示,該記憶體204可將一第二組讀取資料212傳回至該控制器220。該控制器220可將該第二組讀取資料作為第二複數個位元值224而儲存在該讀取結果儲存器222中。
識別該第一複數個位元值中與該第二複數個位元值相比具有不同值之一第一組位元,且將該第一複數個位元值之值改變為該第二複數個位元值之對應值以產生第一複數個經校正位元值(在310)。例如,該位元值校正器232可經組態以提供該第一複數個位元值223及該第二複數個位元值224給該比較器226以產生該第一複數個位元值223中與該第二複數個位元值224相比具有不同值234之第一組位元。該位元值校正器232經組態以使用在不同讀取電壓產生之兩組或兩組以上位元值223至225而產生一組或多組經校正位元值236。該位元值校正器232可基於具有不同值234之第一組位元而識別待校正之第一複數個位元值223之一或多個位元,且可產生並發送該第一複數個經校正位元值236至該ECC引擎231,在序列圖300中圖解說明為對該第一複數個經校正位元值起始一第二ECC程序(在312)。例如,該ECC引擎231可對該第一複數個經校正位元值236執行一解碼操作。
回應於該第二ECC程序指示該第一複數個經校正位元值可校正,將資料傳回至該主機裝置240且可開始解碼自該
記憶體讀取之緊接在後的複數個位元值。否則,回應於該第二ECC程序指示該第一複數個經校正位元值不可校正(在314),在一第三讀取電壓自儲存元件之群組獲得第三複數個位元值(在316)。例如,若該第一複數個經校正位元值236具有超過該ECC引擎231之校正能力之位元錯誤數目,則該控制器220可自該讀取電壓表228讀取一第三電壓並指示該記憶體204使用該第三讀取電壓214而對儲存元件之群組208執行一第三讀取操作。該記憶體204可據此回應而擷取對應於該讀取電壓214之第三值之讀取資料212之一第三例項。可藉由該控制器220將該讀取資料212之第三例項儲存為第三複數個位元值225。
識別在該第一複數個位元值、該第二複數個位元值及該第三複數個位元值之至少一者中具有不同值之一第二組位元,且將所識別的第二組位元之一或多個位元之各者之一位元值改變為在該第一複數個位元值、該第二複數個位元值及該第三複數個位元值中所感測之不同值之多數值以產生第二複數個經校正位元值(在318)。例如,該控制器220可提供該第三複數個位元值225給位元值校正器232,該位元值校正器232可產生具有不同值233之第二組位元。該位元值校正器232可採用藉由定位在該第一複數個位元值223、該第二複數個位元值224及該第三複數個位元值225之一者之間轉變之該第一複數個位元值223、該第二複數個位元值224及該第三複數個位元值225之一或多個位元之一多數選擇程序。例如,若一特定位元具有該第一複數個
位元值223中之一「1」值、該第二複數個位元值224中之一「0」值及該第三複數個位元值225中之一「0」值,則可基於該多數選擇程序而將該特定位元改變為一「0」值。該位元值校正器232可基於具有不同值233之第二組位元而輸出第二複數個經校正位元值236,該第二複數個經校正位元值236可提供給該ECC引擎231用於後續嘗試ECC解碼,此圖解說明為對該第二複數個經校正位元值起始一第三ECC程序(在320)。例如,該ECC引擎231可對該第二複數個經校正位元值236執行一解碼操作。
回應於該第三ECC程序指示該第二複數個經校正位元值可校正,將資料傳回至該主機裝置240且可開始解碼自該記憶體讀取之緊接在後的複數個位元值。否則,回應於該第三ECC程序指示該第二複數個經校正位元值不可校正(在322),在一額外讀取電壓自儲存元件之群組獲得額外複數個位元值(在324)。例如,若該第二複數個經校正位元值236具有超過該ECC引擎231之校正能力之位元錯誤數目,則該控制器220可自該讀取電壓表228讀取一額外電壓並指示該記憶體204使用該額外讀取電壓214而對儲存元件之群組208執行一額外讀取操作。該記憶體204可據此回應而擷取對應於該讀取電壓214之額外值之讀取資料212之一額外例項,該讀取資料212之額外例項可藉由該控制器220儲存為額外複數個位元值(未展示)。
將該等位元值之一或多者改變為在該第一複數個位元值、該第二複數個位元值、該第三複數個位元值及該一或
多個額外複數個位元值中所感測之對應不同值之一多數值(在326)。例如,該控制器220可提供該額外複數個位元值給位元值校正器232,該位元值校正器232可產生具有不同值之額外組位元(未展示)。該位元值校正器232可採用基於該第一複數個位元值223、該第二複數個位元值224、該第三複數個位元值225及該額外複數個位元值之位元值之一多數選擇程序。
藉由將回應於讀取電壓變化而展現位元值變化之位元識別為預ECC校正之候選者,該位元值校正器232可校正足夠數目個錯誤位元以使該ECC引擎231能夠對該複數個經校正位元值236執行一成功校正解碼。
在一ECC程序判定該複數個經校正位元值236不可校正之情況中,可使用不同的讀取電壓執行額外讀取且可產生額外複數個經校正位元值236直到一ECC程序成功。或者,該控制器可對可基於不同的讀取電壓而嘗試之連續ECC程序之數目強加限制。例如,該限制可與一ECC程序臨限值(諸如ECC程序之一預定數目或一逾時)相關聯。
圖4展示可自一記憶體讀取之儲存元件之一群組之代表性電壓特性402、404及406,且圖解說明歸因於電壓臨限值分佈之重疊之資料損壞之一實例。例如,在一記憶體單元電壓分佈(CVD)402中圖解說明自3位元多位階單元之一群組讀取之臨限值電壓特性。該CVD 402圖解說明程式化為特定臨限值電壓之記憶體單元之一分佈及對應於每一特定電壓範圍之一3位元值。例如,如圖解說明,該CVD
402包含由7個讀取電壓(Vread)411至417定義且分別對應於記憶體單元狀態Er至G之8個可識別臨限值電壓範圍。例如,諸如分別儲存在上部頁、中間頁及下部頁中之一3位元值「111」對應於該8個可識別臨限值電壓範圍之一第一(即,小於Vread 411,對應於「Er」狀態)臨限值電壓範圍內之一臨限值電壓。一3位元值「110」對應於該8個可識別臨限值電壓範圍之一第二(即,介於Vread 411與Vread 412之間,對應於「A」狀態)臨限值電壓範圍內之一臨限值電壓。一3位元值「001」對應於該8個可識別臨限值電壓範圍之一第七(即,介於Vread 416與Vread 417之間,對應於「F」狀態)臨限電壓值範圍內之一臨限值電壓。一3位元值「101」對應於該8個可識別臨限值電壓範圍之一第八(即,大於Vread 417,對應於「G」狀態)臨限值電壓範圍內之一臨限值電壓。
雖然每一記憶體單元最初可經程式化以在其程式化狀態之中心處具有一臨限值電壓,但是實際記憶體單元臨限值電壓可歸因於多種因數而自一中心電壓「漂移」,從而導致CVD 402。可藉由比較臨限值電壓與一或多個對應讀取電壓(Vread)411至417來讀取多位階單元。該CVD 402被圖解說明為不具有錯誤(即,全部記憶體單元保持在其等原始程式化之狀態中)。
在CVD 404中圖解說明隨後可自3位元多位階單元之群組讀取之另一代表性臨限值電壓特性。在分別原始程式化為狀態「G」及「Er」之一些記憶體單元之上部頁及下部
頁中發生錯誤。為圖解說明,下部頁中之錯誤可歸因於源自程式化鄰近記憶體單元之程式化干擾。如所示,該程式化干擾可引起原始程式化為「Er」狀態之記憶體單元之臨限值電壓漂移或增加而超出「Er」狀態與「A」狀態之間之讀取電壓Vread 411。使用該讀取電壓Vread 411讀取此等記憶體單元引起該等記憶體單元被錯誤地識別為處於「A」狀態中而非處於「Er」狀態中。例如,「Er」狀態之下部頁中之位元值可自其正確值(例如,「1」)「翻轉」為一錯誤值(例如,「0」)。
上部頁中之錯誤可歸因於資料保留錯誤。如所示,資料保留錯誤可引起原始程式化為「G」狀態之記憶體單元之臨限值電壓漂移或降低至「G」狀態與「F」狀態之間之讀取電壓Vread 417以下。使用該讀取電壓Vread 417讀取此等記憶體單元引起該等記憶體單元被錯誤地識別為處於「F」狀態中而非處於「G」狀態中。例如,「G」狀態之上部頁中之位元值可自其正確值(例如,「1」)「翻轉」為一錯誤值(例如,「0」)。
在CVD 406中圖解說明自3位元多位階單元之群組讀取之另一代表性臨限值電壓特性,其中已藉由分別對應於狀態「Er」及「G」之讀取電壓之小變化而校正該CVD 404之下部頁及上部頁中之錯誤值。例如,使用讀取電壓Vread 421之3位元多位階單元之新讀取引起在使用CVD 404中之讀取電壓Vread 411讀取時被錯誤地識別為處於「A」狀態中之「Er」狀態中之記憶體單元被正確地識別為處於
「Er」狀態中。為圖解說明,將下部頁中之位元自使用讀取電壓Vread 411之一「0」值「翻轉」為使用讀取電壓Vread 421之一「1」值。類似地,使用讀取電壓Vread 423之3位元多位階單元之新讀取引起在使用CVD 404中之讀取電壓Vread 417讀取時被錯誤地識別為處於「F」狀態中之「G」狀態中之記憶體單元被正確地識別為處於「G」狀態中。為圖解說明,將上部頁中之位元自使用讀取電壓Vread 417之一「0」值「翻轉」為使用讀取電壓Vread 423之一「1」值。
如上文參考圖2及圖3描述,藉由使用不同的讀取電壓執行多重讀取及比較多重讀取之間之位元狀態,歸因於讀取電壓之值差異之位元值變化(例如,自「0」至「1」之一變化或自「1」至「0」之一變化)可指示儲存元件之一群組中具有接近諸狀態之間之一邊界之一狀態之儲存元件。對應於此等儲存元件之位元值可被識別為較有可能係錯誤的。如CVD 406中圖解說明,藉由識別儲存元件之群組中較有可能係錯誤之儲存元件,可校正足夠數目個錯誤位元以使該ECC引擎能夠對錯誤位元值執行一成功校正解碼。
參考圖5,描繪展示一儲存元件之位元至狀態之一映射之一表之一特定闡釋性實施例且該表整體以500標示。該儲存元件可包含諸如圖2之記憶體204中之一多位階單元(MLC)。該儲存元件經圖解說明為具有一組可能狀態Er至G,其中每一狀態表示以一行格式配置之3個位元(包含一頂部位元、一中間位元及一底部位元)之一不同值。該頂
部位元可為一第一或上部頁502之部分,該中間位元可為一第二或中間頁504之部分且該底部位元可為一第三或下部頁506之部分。
表500圖解說明一3位元多位階單元之每一頁之多重讀取點。例如,一對讀取點511、513指示對應於該上部頁502中之位元轉變之讀取電壓。讀取點511對應於圖4之讀取電壓413,且讀取點513對應於圖4之讀取電壓417。讀取點515、517及519指示對應於該中間頁504中之位元轉變之讀取電壓。讀取點515對應於圖4之讀取電壓412,讀取點517對應於圖4之讀取電壓414且讀取點519對應於圖4之讀取電壓416。讀取點521、523指示對應於該下部頁506中之位元轉變之讀取電壓。讀取點521對應於圖4之讀取電壓411,且讀取點523對應於圖4之讀取電壓415。
如圖解說明,表500包含與對應讀取電壓(例如,圖4之讀取電壓(Vread)411至417)相關聯之8個可識別狀態(例如,狀態「Er」至「G」)。為圖解說明,一3位元值「111」(即,分別儲存在上部頁502、中間頁504及下部頁506中之一「1」值)對應於原始設定為「Er」狀態之記憶體單元之位元值。作為另一圖解,一3位元值「110」(即,儲存在該上部頁502中之一「1」值、儲存在該中間頁504中之一「1」值及儲存在該下部頁506中之一「0」值)對應於原始設定為「A」狀態之記憶體單元之位元值。類似地,一3位元值「100」對應於原始設定為「B」狀態之記憶體單元之位元值,一3位元值「000」對應於原始設定為「C」狀態
之記憶體單元之位元值,一3位元值「010」對應於原始設定為「D」狀態之記憶體單元之位元值,一3位元值「011」對應於原始設定為「E」狀態之記憶體單元之位元值,一3位元值「001」對應於原始設定為「F」狀態之記憶體單元之位元值,且一3位元值「101」對應於原始程式化為「G」狀態之記憶體單元之位元值。
可藉由使用「B」狀態與「C」狀態之間之一讀取電壓(即,圖4之讀取電壓Vread 413)及使用「G」狀態與「F」狀態之間之另一讀取電壓(即,圖4之讀取電壓Vread 417)讀取記憶體單元來判定該上部頁502中之一位元值。在分別原始程式化為狀態「B」及「G」之一些記憶體單元之上部頁502中可發生錯誤。為圖解說明,位元值隨著讀取電壓值之差異之變化(例如,自「1」至「0」之一變化)可指示儲存元件之一群組中具有接近諸狀態之間之一邊界之一狀態之儲存元件(諸如具有接近「B」狀態與「C」狀態之間之邊界之一臨限值電壓之儲存元件)。
例如,在一第一讀取電壓(即,圖4之讀取電壓Vread 413)對上部頁執行一錯誤校正碼(ECC)程序之後,可判定位元值不可藉由該ECC程序校正。為圖解說明,可將原始程式化為狀態「B」之一記憶體單元之上部頁之位元值錯誤地讀取為一「0」。回應於一不可校正之ECC,可在不同於該第一讀取電壓之一讀取電壓執行一第二讀取。可判定因自第一讀取至第二讀取之讀取電壓變化而展現位元值變化之一組位元,且可產生經校正位元值以經由ECC程序後續嘗
試解碼。例如,在略高於該讀取電壓Vread 413之一第二讀取電壓執行該上部頁502之一第二讀取之後,可比較在第一讀取電壓(讀取電壓Vread 413)讀取之上部頁502之位元值與在第二讀取電壓(略高於該讀取電壓Vread 413之電壓)讀取之上部頁之位元值以產生經校正位元值。例如,可將狀態B之一錯誤位元值「0」翻轉為一位元值「1」。
回應於讀取點511之小變化而變化之位元值可指示儲存元件之一群組中具有接近諸狀態之間之一邊界之一狀態之儲存元件(即,分別介於狀態「B」與「C」之間之儲存元件)。藉由識別儲存元件之群組中較有可能係錯誤之儲存元件,可校正足夠數目個錯誤位元以使該ECC程序能夠對錯誤位元值執行一成功校正解碼。此後可後續嘗試解碼經校正位元值。可在該多個讀取點511至521之各者處對每一頁使用一類似程序。
參考圖6,描繪使用多重讀取電壓校正位元值之一方法之一特定闡釋性實施例且該方法整體以600標示。可藉由一資料儲存裝置(諸如圖2之資料儲存裝置202)執行該方法600。該方法600包含在具有複數個儲存元件之一資料儲存裝置中使用一第一讀取電壓感測該等儲存元件之一群組以獲得第一複數個位元值(在602)。例如,該複數個儲存元件可為圖2之儲存元件206,且該等儲存元件之群組可為圖2之儲存元件之群組208。可藉由比較儲存元件之群組208中之每一元件之一臨限值電壓與一或多個讀取電壓來感測儲存元件之群組208。例如,可藉由該主機裝置240指示該資
料儲存裝置202內之控制器220自該記憶體204擷取對應於儲存元件之群組208之資料。該控制器220可自該讀取電壓表228擷取一第一讀取電壓214或一組讀取電壓(例如,用以讀取圖5之下部頁506之圖4之讀取電壓Vread 411及讀取電壓Vread 415),且提供一指示給該記憶體204以藉由根據該讀取電壓214讀取儲存元件之群組208而擷取讀取資料212。可將該第一複數個位元值作為讀取資料212提供給該控制器220。
該方法600包含對該第一複數個位元值起始一錯誤校正碼(ECC)程序(在604)。例如,該控制器220可經組態以提供該讀取資料212給該ECC引擎231。回應於該ECC程序指示該第一複數個位元值可藉由該ECC程序校正(在606),該方法600包含感測該等儲存元件之下一群組(在616)。
回應於該ECC程序指示該第一複數個位元值不可藉由該ECC程序校正(在606),該方法600包含:使用一第二讀取電壓感測該等儲存元件之群組以獲得第二複數個位元值(在608);比較該第一複數個位元值與該第二複數個位元值以識別該第一複數個位元值中與該第二複數個位元值相比具有不同值之一第一組位元(在610);及將該第一複數個位元值之一或多者改變為該第二複數個位元值之對應值以產生第一複數個經校正位元值(在612)。
例如,回應於該讀取資料212具有超過該ECC引擎231之錯誤校正能力之位元錯誤,該控制器220可將該讀取資料212作為第一複數個位元值223而儲存在該讀取結果儲存器
222中。該控制器220可進一步自該電壓讀取表228擷取該讀取電壓214之一第二值,且指示該記憶體204根據新擷取的第二讀取電壓214而對儲存元件之群組208執行一第二讀取。回應於來自該控制器220之指示,該記憶體204可將一第二組讀取資料212傳回至該控制器220。該控制器220可將該第二組讀取資料作為第二複數個位元值224而儲存在該讀取結果儲存器222中。該位元值校正器232可經組態以提供該第一複數個位元值223及該第二複數個位元值224給該比較器226。該比較器226可經組態以產生該第一複數個位元值223中與該第二複數個位元值224相比具有不同值234之第一組位元。基於具有不同值234之第一組位元,該位元值校正器232可經組態以藉由將該第一複數個位元值223之一或多者改變為該第二複數個位元值224之對應值來產生第一複數個經校正位元值236。
回應於判定所識別的第一組位元之一或多個位元包含懷疑藉由一程式化干擾而改變之至少一位元,該第二讀取電壓可大於該第一讀取電壓。例如,如上文關於圖4至圖5描述,一MLC記憶體之一下部頁中之錯誤可由程式干擾引起,從而引起擦除狀態中之記憶體單元被讀取為程式化狀態中之記憶體單元。因此,當讀取一MLC記憶體之一下部頁時,一程式干擾可懷疑係該下部頁中之至少一些錯誤的原因。因此,可選擇(例如,自該讀取電壓表228選擇)該第二讀取電壓214以具有高於該第一讀取電壓214之一電壓以補償程式干擾效應。作為另一實例且如圖4之CVD 406中
圖解說明,當該ECC程序指示「Er」狀態中之下部頁位元(例如,所識別的第一組位元之一或多個位元)懷疑藉由一程式化干擾而改變時,第二讀取電壓421大於第一讀取電壓411。
或者,回應於判定所識別的第一組位元之一或多個位元包含懷疑藉由一保留錯誤而改變之至少一位元,該第二讀取電壓可小於該第一讀取電壓。例如,如上文關於圖4至圖5描述,一MLC記憶體之一上部頁中之錯誤可由資料保留效應引起,從而引起程式化為一最高臨限值狀態之記憶體單元被讀取為處於一較低臨限值電壓狀態中。因此,當讀取該MLC記憶體之一上部頁時,資料保留效應可懷疑係該上部頁中之至少一些錯誤的原因。因此,可選擇(例如,自該讀取電壓表228選擇)該第二讀取電壓214以具有低於該第一讀取電壓214之一電壓以補償資料保留效應。作為另一實例且如圖4之CVD 406中圖解說明,當該ECC程序指示「G」狀態中之上部頁位元(例如,所識別的第一組位元之一或多個位元)懷疑藉由一保留錯誤而改變時,第二讀取電壓423小於第一讀取電壓417。
該方法600包含對該第一複數個經校正位元值起始一第二ECC程序(在614)。例如,該ECC引擎231可對該第一複數個經校正位元值236執行一解碼操作,且回應於該第一複數個經校正位元值236可解碼,該方法600包含感測該等儲存元件之下一群組(在616)。
因此,該控制器220可經組態以:在該記憶體204處執行
一讀取;將源自該讀取的讀取資料212儲存至該讀取結果儲存器222;判定因自先前讀取之一讀取電壓變化而展現位元值變化之一組位元;及產生複數個經校正位元值236以在該ECC引擎231處後續嘗試解碼。藉由將可能係錯誤的位元識別為回應於該讀取電壓214的小變化而展現值變化,該控制器220可校正足夠數目個錯誤位元以使該ECC引擎231能夠對該複數個經校正位元值236執行一成功校正解碼,從而能夠使用可節省成本及處理時間之一更簡單ECC程序。
雖然本文描繪之各種組件係圖解說明為區塊組件且以一般術語描述,但是此等組件可包含一或多個微處理器、狀態機或經組態以使圖1之位元值校正器130或圖2之位元值校正器232及讀取結果儲存器222能夠執行屬於此等組件之特定功能之其他電路。例如,圖2之位元值校正器232可表示實體組件,諸如硬體控制器、狀態機、邏輯電路或使圖1之控制器120或圖2之資料儲存裝置202能夠校正多重讀取電壓之值之其他結構。
在一特定實施例中,該資料儲存裝置202可實施於經組態以選擇性地耦合至一或多個外部裝置之一可攜式裝置中。然而,在其他實施例中,該資料儲存裝置202可附接或嵌入一或多個主機裝置內,諸如一主機通信裝置之一外殼內。例如,該資料儲存裝置202可在一封裝式設備(諸如一無線電話、一個人數位助理(PDA)、一遊戲裝置或主控台、一可攜式導航裝置或使用內部非揮發性記憶體之其他
裝置)內。在一特定實施例中,該資料儲存裝置202可耦合至一非揮發性記憶體,諸如三維(3D)記憶體、一快閃記憶體(例如,NAND、NOR、多位階單元(MLC)、分割位元線NOR(DINOR)記憶體、一AND記憶體、一高電容耦合率(HiCR)、不對稱非接觸式電晶體(ACT)或其他快閃記憶體)、一可擦除可程式化唯讀記憶體(EPROM)、一電可擦除可程式化唯讀記憶體(EEPROM)、一唯讀記憶體(ROM)、一次性可程式化記憶體(OTP)或任何其他類型的記憶體。
本文描述之實施例之圖解旨在提供對各種實施例之大體理解。可利用其他實施例且可自本發明導出其他實施例,使得可在不脫離本發明之範疇之情況中作出結構及邏輯置換及改變。本發明旨在涵蓋各種實施例之任何及全部後續調適或變動。因此,本發明及該等圖式被視為闡釋性而非限制性。
上文所揭示的標的被視為闡釋性且非限制性,且隨附申請專利範圍旨在涵蓋落於本發明之範疇內之全部此等修改、增強及其他實施例。因此,就法律所容許之最大程度而言,本發明之範疇係藉由下列申請專利範圍及其等效物之最廣可允許解釋判定,且不應受前文詳細描述約束或限制。
100‧‧‧系統
104‧‧‧記憶體
120‧‧‧控制器
130‧‧‧多重讀取電壓/位元值校正器
140‧‧‧主機裝置
200‧‧‧系統
202‧‧‧資料儲存裝置
204‧‧‧記憶體
206‧‧‧儲存元件
208‧‧‧儲存元件之群組
210‧‧‧讀取電路
212‧‧‧讀取資料
214‧‧‧讀取電壓
220‧‧‧控制器
222‧‧‧讀取結果儲存器
223‧‧‧第一複數個位元值
224‧‧‧第二複數個位元值
225‧‧‧第三複數個位元值
226‧‧‧比較器
228‧‧‧讀取電壓表
231‧‧‧錯誤校正碼(ECC)引擎
232‧‧‧位元值校正器
233‧‧‧不同值
234‧‧‧不同值
236‧‧‧經校正位元值
240‧‧‧主機裝置
242‧‧‧使用者資料
402‧‧‧記憶體單元電壓分佈(CVD)/電壓特性
404‧‧‧記憶體單元電壓分佈(CVD)/電壓特性
406‧‧‧記憶體單元電壓分佈(CVD)/電壓特性
411‧‧‧讀取電壓
412‧‧‧讀取電壓
413‧‧‧讀取電壓
414‧‧‧讀取電壓
415‧‧‧讀取電壓
416‧‧‧讀取電壓
417‧‧‧讀取電壓
421‧‧‧讀取電壓
423‧‧‧讀取電壓
502‧‧‧第一頁/上部頁
504‧‧‧第二頁/中間頁
506‧‧‧第三頁/下部頁
511‧‧‧讀取點
513‧‧‧讀取點
515‧‧‧讀取點
517‧‧‧讀取點
519‧‧‧讀取點
521‧‧‧讀取點
523‧‧‧讀取點
圖1係使用多重讀取電壓以校正位元值之一系統之一特定闡釋性實施例之一方塊圖;
圖2係圖解說明包含使用多重讀取電壓以校正位元值之一資料儲存裝置之一系統之一特定實施例之一方塊圖;圖3A及圖3B係使用多重讀取電壓以校正位元值之一方法之一特定闡釋性實施例之一序列圖;圖4係圖解說明圖2之一儲存元件之代表性電壓特性並圖解說明藉由調整讀取電壓校正位元錯誤之一總圖;圖5係展示圖2之一儲存元件之位元至狀態之一映射之一表之一特定闡釋性實施例;及圖6係校正多種讀取電壓之位元值之一方法之一特定實施例之一流程圖。
100‧‧‧系統
104‧‧‧記憶體
120‧‧‧控制器
130‧‧‧多重讀取電壓/位元值校正器
140‧‧‧主機裝置
Claims (21)
- 一種方法,其包括:在具有複數個儲存元件之一資料儲存裝置中,執行以下動作:使用一第一讀取電壓感測該等儲存元件之一群組以獲得第一複數個位元值;對該第一複數個位元值起始一錯誤校正碼(ECC)程序;及回應於該ECC程序指示該第一複數個位元值不可藉由該ECC程序校正:使用一第二讀取電壓感測該等儲存元件之該群組以獲得第二複數個位元值;及將該第一複數個位元值之一或多個值改變為該第二複數個位元值之對應值以產生第一複數個經校正位元值。
- 如請求項1之方法,其進一步包括比較該第一複數個位元值與該第二複數個位元值以識別該第一複數個位元值中與該第二複數個位元值相比具有不同值之一第一組位元。
- 如請求項1之方法,其進一步包括對該第一複數個經校正位元值起始一第二ECC程序。
- 如請求項3之方法,其進一步包括回應於對該第一複數個經校正位元值之該第二ECC程序指示該第一複數個經校正位元值不可藉由該第二ECC程序校正: 使用一第三讀取電壓感測該等儲存元件之該群組以讀取第三複數個位元值;比較該第三複數個位元值與該第一複數個位元值及該第二複數個位元值以識別在該第一複數個位元值、該第二複數個位元值及該第三複數個位元值之至少一者中具有不同值之一第二組位元;及將該識別的第二組位元之一或多個位元之各者之一位元值改變為在該第一複數個位元值、該第二複數個位元值及該第三複數個位元值中所感測之該等不同值之一多數值以產生第二複數個經校正位元值。
- 如請求項4之方法,其進一步包括:對該第二複數個經校正位元值起始一第三ECC程序;及回應於對該第二複數個經校正位元值之該第三ECC程序指示該第二複數個經校正位元值不可校正:使用一或多個額外讀取電壓感測該等儲存元件之該群組以讀取額外一組或多組位元值;及將該等位元值之一或多者改變為在該第一複數個位元值、該第二複數個位元值、該第三複數個位元值及該額外一組或多組位元值中所感測之對應不同值之一多數值。
- 如請求項2之方法,其進一步包括維持一讀取電壓表,其中該第二讀取電壓係自該表擷取。
- 如請求項6之方法,其中回應於判定該識別的第一組位 元之一或多個位元包含懷疑藉由一程式化干擾而改變之至少一位元,該第二讀取電壓大於該第一讀取電壓。
- 如請求項6之方法,其中回應於判定該識別的第一組位元之一或多個位元包含懷疑藉由一保留錯誤而改變之至少一位元,該第二讀取電壓小於該第一讀取電壓。
- 如請求項1之方法,其中該資料儲存裝置包含經組態以儲存該第一複數個位元值及該第二複數個位元值之一讀取結果儲存區域。
- 如請求項1之方法,其中比較該第一複數個位元值與該第二複數個位元值包含執行一互斥或操作。
- 如請求項1之方法,其中該ECC程序包含以下之一者:一里德所羅門(Reed Solomon)ECC程序;及一博斯-喬達利-奧昆岡(BCH)ECC程序。
- 一種資料儲存裝置,其包括:一記憶體,其包含複數個儲存元件,其中該記憶體經組態以使用一第一讀取電壓讀取該等儲存元件之一群組以獲得第一複數個位元值;及一控制器,其耦合至該記憶體,其中該控制器經組態以對該第一複數個位元值起始一第一錯誤校正碼(ECC)程序,且回應於該第一ECC程序判定該第一複數個位元值不可校正,該控制器進一步經組態以:指示該記憶體使用一第二讀取電壓讀取該等儲存元件之該群組以獲得第二複數個位元值;及將該第一複數個位元值之一或多個值改變為該第二 複數個位元值之對應值以產生第一複數個經校正位元值。
- 如請求項12之資料儲存裝置,其中該控制器進一步經組態以比較該第一複數個位元值與該第二複數個位元值以識別該第一複數個位元值中與該第二複數個位元值相比具有不同值之一第一組位元。
- 如請求項12之資料儲存裝置,其中該控制器進一步經組態以對該第一複數個經校正位元值起始一第二ECC程序。
- 如請求項14之資料儲存裝置,其中該控制器進一步經組態以回應於對該第一複數個經校正位元值之該第二ECC程序指示該第一複數個經校正位元值不可藉由該第二ECC程序校正,以:使用一第三讀取電壓感測該等儲存元件之該群組以讀取第三複數個位元值;比較該第三複數個位元值與該第一複數個位元值及該第二複數個位元值以識別在該第一複數個位元值、該第二複數個位元值及該第三複數個位元值之至少一者中具有不同值之一第二組位元;及將該識別的第二組位元之一或多個位元之至少一者之一位元值改變為在該第一複數個位元值、該第二複數個位元值及該第三複數個位元值中所感測之該等不同值之一多數值以產生第二複數個經校正位元值。
- 如請求項15之資料儲存裝置,其中該控制器進一步經組 態以:對該第二複數個經校正位元值起始一第三ECC程序;及回應於對該第二複數個經校正位元值之該第三ECC程序指示該第二複數個經校正位元值不可校正:使用一或多個額外讀取電壓感測該等儲存元件之該群組以讀取額外一組或多組位元值;及將該等位元值之一或多者改變為在該第一複數個位元值、該第二複數個位元值、該第三複數個位元值及該額外一組或多組位元值中所感測之對應不同值之一多數值。
- 如請求項12之資料儲存裝置,其中該控制器進一步經組態以自藉由該控制器維持之一讀取電壓表擷取該第二讀取電壓。
- 如請求項17之資料儲存裝置,其中回應於該控制器判定該識別的第一組位元之一或多個位元包含懷疑藉由一程式化干擾而改變之至少一位元,該第二讀取電壓大於該第一讀取電壓。
- 如請求項17之資料儲存裝置,其中回應於該控制器判定該識別的第一組位元之一或多個位元包含懷疑藉由一保留錯誤而改變之至少一位元,該第二讀取電壓小於該第一讀取電壓。
- 如請求項12之資料儲存裝置,其進一步包括用以儲存該第一複數個位元值及該第二複數個位元值之一讀取結果 儲存區域。
- 如請求項12之資料儲存裝置,其中該控制器經組態以藉由執行一互斥或操作而比較該第一複數個位元值與該第二複數個位元值。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/234,011 US9047210B2 (en) | 2011-09-15 | 2011-09-15 | Data storage device and method to correct bit values using multiple read voltages |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201324127A true TW201324127A (zh) | 2013-06-16 |
Family
ID=47008674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101133055A TW201324127A (zh) | 2011-09-15 | 2012-09-10 | 資料儲存裝置及使用多重讀取電壓以校正位元值之方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9047210B2 (zh) |
TW (1) | TW201324127A (zh) |
WO (1) | WO2013039696A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104916330A (zh) * | 2014-03-10 | 2015-09-16 | 株式会社东芝 | 存储装置、存储器控制器及存储器控制方法 |
TWI582779B (zh) * | 2015-04-14 | 2017-05-11 | 群聯電子股份有限公司 | 讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI668695B (zh) * | 2018-07-24 | 2019-08-11 | 群聯電子股份有限公司 | 電壓調整方法、記憶體控制電路單元以及記憶體儲存裝置 |
Families Citing this family (88)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8245101B2 (en) | 2007-12-27 | 2012-08-14 | Sandisk Enterprise Ip Llc | Patrol function used in flash storage controller to detect data errors |
US9318166B2 (en) | 2011-07-22 | 2016-04-19 | SanDisk Technologies, Inc. | Systems and methods of storing data |
US9047210B2 (en) * | 2011-09-15 | 2015-06-02 | Sandisk Technologies Inc. | Data storage device and method to correct bit values using multiple read voltages |
US8938658B2 (en) | 2011-11-07 | 2015-01-20 | Sandisk Enterprise Ip Llc | Statistical read comparison signal generation for memory systems |
KR101835605B1 (ko) * | 2011-11-24 | 2018-03-08 | 삼성전자 주식회사 | 플래시 메모리 시스템 및 플래시 메모리 시스템의 리드 방법 |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
KR20140029582A (ko) * | 2012-08-28 | 2014-03-11 | 에스케이하이닉스 주식회사 | 반도체 장치 및 이의 동작 방법 |
KR101991437B1 (ko) * | 2012-08-30 | 2019-06-20 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그의 동작방법 |
KR20140045168A (ko) * | 2012-10-08 | 2014-04-16 | 삼성전자주식회사 | 불휘발성 메모리 장치, 메모리 시스템 및 불휘발성 메모리 장치의 동작방법 |
KR102081581B1 (ko) * | 2012-11-02 | 2020-02-26 | 삼성전자 주식회사 | 메모리 장치 구동 방법 |
KR102081584B1 (ko) * | 2012-11-02 | 2020-02-26 | 삼성전자 주식회사 | 메모리 장치 구동 방법 및 메모리 시스템 |
US9466382B2 (en) | 2012-11-14 | 2016-10-11 | Sandisk Technologies Llc | Compensation for sub-block erase |
KR102002385B1 (ko) * | 2012-11-14 | 2019-07-23 | 에스케이하이닉스 주식회사 | 데이터 저장 장치의 동작 방법 |
US8988941B2 (en) | 2012-12-18 | 2015-03-24 | SanDisk Tehcnologies Inc. | Select transistor tuning |
US9501398B2 (en) | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
US9612948B2 (en) | 2012-12-27 | 2017-04-04 | Sandisk Technologies Llc | Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device |
US9239751B1 (en) | 2012-12-27 | 2016-01-19 | Sandisk Enterprise Ip Llc | Compressing data from multiple reads for error control management in memory systems |
US9454420B1 (en) | 2012-12-31 | 2016-09-27 | Sandisk Technologies Llc | Method and system of reading threshold voltage equalization |
US9870830B1 (en) * | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
US9136877B1 (en) | 2013-03-15 | 2015-09-15 | Sandisk Enterprise Ip Llc | Syndrome layered decoding for LDPC codes |
US9092350B1 (en) | 2013-03-15 | 2015-07-28 | Sandisk Enterprise Ip Llc | Detection and handling of unbalanced errors in interleaved codewords |
US9236886B1 (en) | 2013-03-15 | 2016-01-12 | Sandisk Enterprise Ip Llc | Universal and reconfigurable QC-LDPC encoder |
US9244763B1 (en) | 2013-03-15 | 2016-01-26 | Sandisk Enterprise Ip Llc | System and method for updating a reading threshold voltage based on symbol transition information |
US9367246B2 (en) | 2013-03-15 | 2016-06-14 | Sandisk Technologies Inc. | Performance optimization of data transfer for soft information generation |
US9367391B2 (en) * | 2013-03-15 | 2016-06-14 | Micron Technology, Inc. | Error correction operations in a memory device |
CN104217762B (zh) | 2013-05-31 | 2017-11-24 | 慧荣科技股份有限公司 | 数据储存装置及其错误校正方法以及数据读取方法 |
US9218890B2 (en) | 2013-06-03 | 2015-12-22 | Sandisk Technologies Inc. | Adaptive operation of three dimensional memory |
US9159437B2 (en) | 2013-06-11 | 2015-10-13 | Sandisk Enterprise IP LLC. | Device and method for resolving an LM flag issue |
US9230656B2 (en) | 2013-06-26 | 2016-01-05 | Sandisk Technologies Inc. | System for maintaining back gate threshold voltage in three dimensional NAND memory |
US9384126B1 (en) | 2013-07-25 | 2016-07-05 | Sandisk Technologies Inc. | Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9235509B1 (en) | 2013-08-26 | 2016-01-12 | Sandisk Enterprise Ip Llc | Write amplification reduction by delaying read access to data written during garbage collection |
US9142324B2 (en) | 2013-09-03 | 2015-09-22 | Sandisk Technologies Inc. | Bad block reconfiguration in nonvolatile memory |
US9240238B2 (en) | 2013-09-20 | 2016-01-19 | Sandisk Technologies Inc. | Back gate operation with elevated threshold voltage |
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
US9298608B2 (en) | 2013-10-18 | 2016-03-29 | Sandisk Enterprise Ip Llc | Biasing for wear leveling in storage systems |
US9436831B2 (en) | 2013-10-30 | 2016-09-06 | Sandisk Technologies Llc | Secure erase in a memory device |
US10776259B2 (en) * | 2013-10-31 | 2020-09-15 | Infineon Technologies Ag | Method, apparatus and device for data processing |
US9263156B2 (en) | 2013-11-07 | 2016-02-16 | Sandisk Enterprise Ip Llc | System and method for adjusting trip points within a storage device |
US9244785B2 (en) | 2013-11-13 | 2016-01-26 | Sandisk Enterprise Ip Llc | Simulated power failure and data hardening |
US9703816B2 (en) | 2013-11-19 | 2017-07-11 | Sandisk Technologies Llc | Method and system for forward reference logging in a persistent datastore |
US9520197B2 (en) | 2013-11-22 | 2016-12-13 | Sandisk Technologies Llc | Adaptive erase of a storage device |
US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
US9235245B2 (en) | 2013-12-04 | 2016-01-12 | Sandisk Enterprise Ip Llc | Startup performance and power isolation |
US9218886B2 (en) | 2013-12-10 | 2015-12-22 | SanDisk Technologies, Inc. | String dependent parameter setup |
US9129665B2 (en) | 2013-12-17 | 2015-09-08 | Sandisk Enterprise Ip Llc | Dynamic brownout adjustment in a storage device |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
US9448876B2 (en) | 2014-03-19 | 2016-09-20 | Sandisk Technologies Llc | Fault detection and prediction in storage devices |
US9454448B2 (en) | 2014-03-19 | 2016-09-27 | Sandisk Technologies Llc | Fault testing in storage devices |
US9390814B2 (en) | 2014-03-19 | 2016-07-12 | Sandisk Technologies Llc | Fault detection and prediction for data storage elements |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9390021B2 (en) | 2014-03-31 | 2016-07-12 | Sandisk Technologies Llc | Efficient cache utilization in a tiered data structure |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
KR102174030B1 (ko) * | 2014-05-13 | 2020-11-05 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법 |
US9703491B2 (en) | 2014-05-30 | 2017-07-11 | Sandisk Technologies Llc | Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device |
US10372613B2 (en) | 2014-05-30 | 2019-08-06 | Sandisk Technologies Llc | Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device |
US10656840B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Real-time I/O pattern recognition to enhance performance and endurance of a storage device |
US10146448B2 (en) | 2014-05-30 | 2018-12-04 | Sandisk Technologies Llc | Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device |
US10656842B2 (en) | 2014-05-30 | 2020-05-19 | Sandisk Technologies Llc | Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device |
US10114557B2 (en) | 2014-05-30 | 2018-10-30 | Sandisk Technologies Llc | Identification of hot regions to enhance performance and endurance of a non-volatile storage device |
US10162748B2 (en) | 2014-05-30 | 2018-12-25 | Sandisk Technologies Llc | Prioritizing garbage collection and block allocation based on I/O history for logical address regions |
US9442787B2 (en) * | 2014-06-13 | 2016-09-13 | Sandisk Technologies Llc | Three dimensional (3D) memory including error detection circuitry |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
US10089177B2 (en) | 2014-06-30 | 2018-10-02 | Sandisk Technologies Llc | Multi-stage decoder |
US9614547B2 (en) | 2014-06-30 | 2017-04-04 | Sandisk Technologies Llc | Multi-stage decoder |
US9443601B2 (en) | 2014-09-08 | 2016-09-13 | Sandisk Technologies Llc | Holdup capacitor energy harvesting |
US9484089B2 (en) * | 2014-10-20 | 2016-11-01 | Sandisk Technologies Llc | Dual polarity read operation |
KR20160073834A (ko) * | 2014-12-17 | 2016-06-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템 동작 방법 |
US9959067B2 (en) | 2015-02-04 | 2018-05-01 | Sandisk Technologies Llc | Memory block allocation by block health |
TWI521531B (zh) * | 2015-02-25 | 2016-02-11 | 群聯電子股份有限公司 | 資料讀取方法、記憶體控制電路單元與記憶體儲存裝置 |
US9502123B2 (en) | 2015-04-21 | 2016-11-22 | Sandisk Technologies Llc | Adaptive block parameters |
US9691473B2 (en) | 2015-09-22 | 2017-06-27 | Sandisk Technologies Llc | Adaptive operation of 3D memory |
US9401216B1 (en) | 2015-09-22 | 2016-07-26 | Sandisk Technologies Llc | Adaptive operation of 3D NAND memory |
US10707902B2 (en) * | 2015-11-05 | 2020-07-07 | Shenzhen Epostar Electronics Limited Co. | Permutation network designing method, and permutation circuit of QC-LDPC decoder |
US9792998B1 (en) * | 2016-03-29 | 2017-10-17 | Sandisk Technologies Llc | System and method for erase detection before programming of a storage device |
KR102564441B1 (ko) * | 2016-04-11 | 2023-08-08 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
TWI623878B (zh) * | 2017-07-07 | 2018-05-11 | 大心電子(英屬維京群島)股份有限公司 | 資料讀取方法以及儲存控制器 |
US11099781B2 (en) | 2018-07-19 | 2021-08-24 | Silicon Motion, Inc. | Flash memory controller, flash memory module and associated electronic device |
CN110797069B (zh) * | 2018-08-01 | 2021-10-22 | 群联电子股份有限公司 | 电压调整方法、存储器控制电路单元以及存储器存储装置 |
TWI707231B (zh) * | 2018-09-28 | 2020-10-11 | 大陸商深圳大心電子科技有限公司 | 解碼器設計方法與儲存控制器 |
US10656995B2 (en) | 2018-10-03 | 2020-05-19 | Micron Technology, Inc. | Copy-back operations in a memory device |
CN110751978B (zh) * | 2019-10-16 | 2021-06-08 | 上海华虹宏力半导体制造有限公司 | 用于非挥发性存储器的测试校调方法及测试校调电路 |
CN113129993B (zh) * | 2020-01-16 | 2024-06-11 | 华邦电子股份有限公司 | 内存装置及其数据读取方法 |
JP7408520B2 (ja) * | 2020-09-18 | 2024-01-05 | キオクシア株式会社 | メモリシステム |
US12067267B2 (en) | 2022-12-16 | 2024-08-20 | Macronix International Co., Ltd. | Managing data reliability in semiconductor devices |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4846314B2 (ja) * | 2005-09-22 | 2011-12-28 | 株式会社東芝 | 半導体記憶装置 |
US7526715B2 (en) | 2005-10-17 | 2009-04-28 | Ramot At Tel Aviv University Ltd. | Probabilistic error correction in multi-bit-per-cell flash memory |
US7954037B2 (en) | 2005-10-25 | 2011-05-31 | Sandisk Il Ltd | Method for recovering from errors in flash memory |
US7450425B2 (en) | 2006-08-30 | 2008-11-11 | Micron Technology, Inc. | Non-volatile memory cell read failure reduction |
WO2008053472A2 (en) | 2006-10-30 | 2008-05-08 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
KR101518199B1 (ko) | 2008-05-23 | 2015-05-06 | 삼성전자주식회사 | 오류 정정 장치, 그 방법 및 상기 장치를 포함하는 메모리장치 |
US8254170B2 (en) * | 2009-08-25 | 2012-08-28 | Sandisk Il Ltd. | Preloading data into a flash storage device |
KR101678909B1 (ko) | 2009-09-17 | 2016-11-23 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 소거 리프레쉬 방법 |
US9047210B2 (en) * | 2011-09-15 | 2015-06-02 | Sandisk Technologies Inc. | Data storage device and method to correct bit values using multiple read voltages |
-
2011
- 2011-09-15 US US13/234,011 patent/US9047210B2/en active Active
-
2012
- 2012-08-29 WO PCT/US2012/052889 patent/WO2013039696A1/en active Application Filing
- 2012-09-10 TW TW101133055A patent/TW201324127A/zh unknown
-
2015
- 2015-04-28 US US14/698,626 patent/US9329934B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104916330A (zh) * | 2014-03-10 | 2015-09-16 | 株式会社东芝 | 存储装置、存储器控制器及存储器控制方法 |
CN104916330B (zh) * | 2014-03-10 | 2019-04-12 | 东芝存储器株式会社 | 存储装置、存储器控制器及存储器控制方法 |
TWI582779B (zh) * | 2015-04-14 | 2017-05-11 | 群聯電子股份有限公司 | 讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI668695B (zh) * | 2018-07-24 | 2019-08-11 | 群聯電子股份有限公司 | 電壓調整方法、記憶體控制電路單元以及記憶體儲存裝置 |
Also Published As
Publication number | Publication date |
---|---|
US9329934B2 (en) | 2016-05-03 |
US20150242270A1 (en) | 2015-08-27 |
US20130073924A1 (en) | 2013-03-21 |
US9047210B2 (en) | 2015-06-02 |
WO2013039696A1 (en) | 2013-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9329934B2 (en) | Data storage device and method to correct bit values using multiple read voltages | |
US8811081B2 (en) | Systems and methods of updating read voltages in a memory | |
US9362003B2 (en) | System and method to decode data subject to a disturb condition | |
TWI584293B (zh) | 產生替代預設讀取臨限值之系統與方法 | |
US9025374B2 (en) | System and method to update read voltages in a non-volatile memory in response to tracking data | |
US9817749B2 (en) | Apparatus and method of offloading processing from a data storage device to a host device | |
JP6014748B2 (ja) | メモリのブロックに対してプログラミングステップサイズを調整するシステムおよび方法 | |
US9135105B2 (en) | Probability-based remedial action for read disturb effects | |
US8942028B1 (en) | Data reprogramming for a data storage device | |
US20150085571A1 (en) | Updating read voltages | |
TW201330001A (zh) | 將具有硬位元資料及軟位元資料之資料提供至秩序調變解碼器之方法及裝置 | |
US9063879B2 (en) | Inspection of non-volatile memory for disturb effects | |
TW201346923A (zh) | 使用單一錯誤偵測奇偶校驗的抹除修正 | |
EP2847767A1 (en) | Reading data from a multi - level cell memory | |
TW201346918A (zh) | 判定針對記憶體之字線之程式化步階大小之系統及方法 | |
US9128827B2 (en) | Data modification based on matching bit patterns |