TWI727980B - 資料儲存裝置及其操作方法 - Google Patents

資料儲存裝置及其操作方法 Download PDF

Info

Publication number
TWI727980B
TWI727980B TW105133160A TW105133160A TWI727980B TW I727980 B TWI727980 B TW I727980B TW 105133160 A TW105133160 A TW 105133160A TW 105133160 A TW105133160 A TW 105133160A TW I727980 B TWI727980 B TW I727980B
Authority
TW
Taiwan
Prior art keywords
read
data
algorithm
bias voltage
read bias
Prior art date
Application number
TW105133160A
Other languages
English (en)
Other versions
TW201730742A (zh
Inventor
金宰範
Original Assignee
韓商愛思開海力士有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 韓商愛思開海力士有限公司 filed Critical 韓商愛思開海力士有限公司
Publication of TW201730742A publication Critical patent/TW201730742A/zh
Application granted granted Critical
Publication of TWI727980B publication Critical patent/TWI727980B/zh

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1068Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1048Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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/2906Coding, 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 using block codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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/2906Coding, 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 using block codes
    • H03M13/2909Product codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/29Coding, 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/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2963Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Algebra (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)

Abstract

本發明提供一種資料儲存裝置,其包括:非揮發性記憶體裝置,其包括目標記憶體區域;以及控制器,其適於透過基於讀取偏壓從目標記憶體區域讀取資料組區塊並且對資料組區塊執行錯誤校正操作來執行讀取操作、根據錯誤校正操作的結果反覆運算讀取操作以及基於在一個或多個先前讀取操作中使用的至少一個讀取偏壓和對應於至少一個讀取偏壓的至少一個校正失敗索引來調整讀取偏壓。

Description

資料儲存裝置及其操作方法
本申請主張於2016年2月26日向韓國智慧財產權局提交的申請號為10-2016-0023615的韓國申請的優先權,其全部內容透過引用併入本文。
各種實施例總體係關於一種資料儲存裝置,並且,更具體而言,係關於一種包括非揮發性記憶體裝置的資料儲存裝置。
資料儲存裝置回應於寫入請求而儲存由外部裝置提供的資料。資料儲存裝置也可以回應於讀取請求而將儲存的資料提供至外部裝置。使用資料儲存裝置的外部裝置的示例包括電腦、數位相機、行動電話等等。資料儲存裝置可以被嵌入在外部裝置中或者單獨地製造並隨後連接。
在一個實施例中,一種資料儲存裝置可以包括:非揮發性記憶體裝置,其包括目標記憶體區域;以及控制器,其適於透過基於讀取偏壓從目標記憶體區域讀取資料組區塊(data chunk)並且對資料組區塊執行錯誤校正操作來執行讀取操作、根據錯誤校正操作的結果反覆運算讀取操作以及基於在一個或多個先前讀取操作中使用的至少一個讀取偏壓和對應於至少一個讀取偏壓的至少一個校正失敗索引來調整讀取偏壓。
在一個實施例中,一種資料儲存裝置的操作方法可以包括:根據錯誤校正操作的結果反覆運算讀取操作,讀取操作包括基於讀取偏壓從目標記憶體區域讀取資料組區塊和對資料組區塊執行錯誤校正操作;以及基於在一個或多個先前讀取操作中使用的一個或多個讀取偏壓和分別對應於讀取偏壓的校正失敗索引來調整讀取偏壓。
在一個實施例中,一種資料儲存裝置的操作方法可以包括:反覆運算測試讀取操作,測試讀取操作包括基於讀取偏壓從目標記憶體區域讀取資料組區塊,該資料組區塊包括每個基於錯誤校正演算法被編碼的多個資料區塊,以及基於錯誤校正演算法對各自資料區塊執行解碼操作;基於在一個或多個先前讀取操作中使用的一個或多個讀取偏壓和在解碼操作中計算的校正失敗索引來調整讀取偏壓;以及基於對應於校正失敗索引中的最小校正失敗索引的讀取偏壓,設置待在讀取操作中使用的最終讀取偏壓。
10:資料儲存裝置
100:控制器
110:讀取偏壓調整單元
120:錯誤校正碼單元
130:記錄器
200:非揮發性記憶體裝置
210:控制邏輯
220:電壓供給單元
230:介面單元
240:位址解碼器
250:資料輸入/輸出單元
260:記憶體區域
310,320:閾值電壓分佈
325:陰影區
1000:固態驅動器
1100:控制器
1110:處理器
1120:隨機存取記憶體
1130:唯讀記憶體
1140:錯誤校正碼單元
1150:主機介面
1160:儲存介質介面
1200:儲存介質
1500:主機裝置
2000:資料處理系統
2100:主處理器
2200:主記憶體裝置
2300:資料儲存裝置
2310:控制器
2320:儲存介質
2400:輸入/輸出裝置
2500:系統匯流排
2600:網路
2700:伺服器
S110,S120,S130:步驟
S131~S135:步驟
S140,S150,S160:步驟
S210,S220,S230:步驟
S240,S250,S260:步驟
S270:步驟
〔圖1〕是示出根據本發明的實施例的資料儲存裝置的方塊圖。
〔圖2〕是示出根據本發明的實施例的圖1中所示的非揮發性記憶體裝置的配置的方塊圖。
〔圖3〕是示出記憶體單元的閾值電壓分佈的示例的曲線圖。
〔圖4〕是示出根據本發明的實施例的圖1的ECC單元的編碼和解碼方法的簡圖。
〔圖5〕是示出在錯誤校正操作中計算校正失敗索引的方法的簡圖。
〔圖6〕是示出校正失敗索引與資料組區塊的錯誤率之間的關係的簡圖。
〔圖7〕是示出根據本發明的實施例的圖1的資料儲存裝置基於先前校正失敗索引調整讀取偏壓的方法的簡圖。
〔圖8〕是示出根據本發明的實施例的圖1的資料儲存裝置執行讀取操作的方法的流程圖。
〔圖9〕是示出根據本發明的實施例的圖1的資料儲存裝置執行最佳讀取偏壓估 計操作的方法的流程圖。
〔圖10〕是示出根據本發明的實施例的固態驅動器(SSD,solid state drive)的方塊圖。
〔圖11〕是示出根據本發明的實施例的包括資料儲存裝置的資料處理系統的方塊圖
下文中,將參照附圖描述包括資料儲存裝置及其操作方法的本發明的各種實施例。然而,本發明可以不同的形式呈現且不應被解釋為限制於本文描述的實施例。相反,這些實施例被提供以詳細地描述本發明以達到本發明所屬領域的技術人員能夠實現本發明的程度。
應當理解的是,本發明的實施例不限於附圖中示出的細節,附圖未必按比例繪製,並且在某些情況下,為了更清楚地描述發明的某些特徵,比例可能已經被放大。儘管使用了特定術語,但是應當理解的是使用的術語僅僅是為了描述特定的實施例,且不旨在限制本發明的範圍。
現在參照圖1,根據本發明的實施例,提供了一種資料儲存裝置10。
資料儲存裝置10可以配置為回應於來自外部裝置的寫入請求儲存由外部裝置提供的資料。並且,資料儲存裝置10可以配置為回應於來自外部裝置的讀取請求將儲存的資料提供至外部裝置。
資料儲存裝置10可以國際個人電腦記憶卡協會(PCMCIA,Personal Computer Memory Card International Association)卡、標準快閃記憶體(CF,Compact Flash)卡、智慧媒體卡、記憶棒、各種多媒體卡(MMC、eMMC、RS-MMC和微型-MMC)、各種安全數位卡(SD、迷你-SD和微型-SD)、通用閃速記憶體(UFS,Universal Flash Storage)、固態驅動器等形式來實現。
資料儲存裝置10可以包括控制器100和非揮發性記憶體裝置200。控制器100可以包括讀取偏壓調整單元110、錯誤校正碼(ECC,error correction code)單元120和記錄器130。
控制器100可以控制資料儲存裝置10的操作。例如,控制器100可以回應於從外部裝置傳輸的寫入請求將資料儲存在非揮發性記憶體裝置200中。並且,控制器100可以回應於從外部裝置傳輸的讀取請求讀出儲存在非揮發性記憶體裝置200中的資料並且將讀出的資料輸出至外部裝置。
當非揮發性記憶體裝置200的讀取操作失敗時,控制器100可以透過調整在讀取操作中使用的讀取偏壓VR來再次執行讀取操作。例如,控制器100可以透過調整讀取偏壓VR、基於讀取偏壓VR從非揮發性記憶體裝置200的目標記憶體區域260(見圖2)中讀取資料組區塊DTCK以及對資料組區塊 DTCK執行錯誤校正操作來執行讀取操作。控制器100可以根據錯誤校正操作的結果反覆運算讀取操作。當反覆運算讀取操作時,控制器100可以透過參考記錄器130,基於在一個或多個先前讀取操作中使用的至少一個讀取偏壓VR和對應於至少先前使用的讀取偏壓VR的至少一個校正失敗索引FI來調整讀取偏壓VR。
根據一個實施例,為了設置待在讀取操作中使用的最終讀取偏壓的目的,控制器100可以透過針對每次反覆運算調整讀取偏壓來反覆運算地執行測試讀取操作。例如,控制器100可以透過調整讀取偏壓VR、基於讀取偏壓VR從目標記憶體區域260中讀取資料組區塊DTCK、基於錯誤校正演算法對資料組區塊DTCK執行解碼操作及將讀取偏壓VR和在解碼操作中計算的讀取偏壓的校正失敗索引FI添加至記錄器130來執行測試讀取操作。該操作可以被重複多次。最終,控制器100可以在多次反覆運算期間基於與包括在記錄器130中的多個校正失敗索引FI中最小校正失敗索引對應的讀取偏壓VR來設置待在讀取操作中使用的最終讀取偏壓。
當讀取操作被反覆運算時,讀取偏壓調整單元110基於包括在記錄器130中的在任何先前讀取操作中使用的至少一個讀取偏壓VR和對應於至少一個讀取偏壓VR的至少一個校正失敗索引FI來調整讀取偏壓VR。在實施例中,當讀取操作被反覆運算時,讀取偏壓調整單元110可以基於包括在記錄器130中的在任何先前讀取操作中使用的多個偏壓VR和分別對應於讀取偏壓VR的校正失敗索引FI來調整讀取偏壓VR。調整的讀取偏壓VR可以被提供至非揮發性記憶體裝置200,並在非揮發性記憶體裝置200的讀取操作中使用。
ECC單元120可以透過接收原始資料DT以及基於第一演算法透過預定單元對資料DT執行第一編碼操作來生成資料區塊。ECC單元120然後可以透過基於第二演算法對生成的資料區塊執行第二編碼操作來生成資料組區塊DTCK。例如,第一演算法可以是博斯-查德胡裡-霍昆格母(BCH,Bose Chaudhuri Hocquenghem)碼演算法,並且第二演算法可以是渦輪乘積碼(TPC,Turbo Product Code)演算法。然而,應當注意的是,實施例不限於上述特定的演算法。
ECC單元120可以對從非揮發性記憶體裝置200中讀取的資料組區塊DTCK執行錯誤校正操作。例如,ECC單元120可以基於第一演算法對資料組區塊DTCK的各自資料區塊執行第一解碼操作,並且可以基於第二演算法對第一解碼操作失敗的那些資料區塊執行第二解碼操作。
ECC單元120可以基於第一解碼操作失敗的資料區塊的數量來計算校正失敗索引FI。例如,在實施例中,ECC單元120可以將校正失敗索引FI計算為等於第一解碼操作失敗的資料區塊的數量。在當前讀取操作中使用的讀取偏壓VR及相應的校正失敗索引FI可以被一起儲存在記錄器130中。在另一實施例中,校正失敗索引FI可以基本上與資料組區塊DTCK的錯誤率成比例。不管失敗索引與第一解碼方法失敗的資料區塊的數量之間的精確關係,失敗索引FI應當反映在最小化錯誤資料區塊的數量方面當前讀取偏壓VR的有效性。
校正失敗索引FI可以用於確定將增加到當前讀取偏壓VR的調整值,以為隨後的讀取操作調整讀取偏壓VR。而且,校正失敗索引FI可以用於在包括在記錄器130中的多個讀取偏壓VR中選擇使錯誤率最小化的讀取偏壓VR。 例如,在儲存在暫存器中的多個讀取偏壓VR中,具有最低失敗索引FI的讀取偏壓可以被選擇用於最小化資料區塊錯誤的數量。
非揮發性記憶體裝置200可以根據控制器100的控制,儲存從控制器100傳輸的資料,並且可以讀出儲存的資料且將讀出的資料傳輸至控制器100。
非揮發性記憶體裝置200可以包括諸如NAND快閃記憶體或者NOR快閃記憶體、鐵電隨機存取記憶體(FeRAM,Ferroelectrics Random Access Memory)、相變隨機存取記憶體(PCRAM,Phase-Change Random Access Memory)、磁阻隨機存取記憶體(MRAM,Magnetoresistive Random Access Memory)、電阻式隨機存取記憶體(ReRAM,Resistive Random Access Memory)等的閃速記憶體中的一種。
圖2是示出圖1中所示的非揮發性記憶體裝置200的配置的方塊圖。
非揮發性記憶體裝置200可以包括控制邏輯210、電壓供給單元220、介面單元230、位址解碼器240、資料輸入/輸出單元250和記憶體區域260。
控制邏輯210可以根據控制器100的控制來控制非揮發性記憶體裝置200的一般操作。控制邏輯210可以透過介面單元230接收從控制器100傳輸的命令,並且可以回應於該命令將控制信號傳輸至非揮發性記憶體裝置200的內部單元。
電壓供給單元220可以根據控制邏輯210的控制生成非揮發性記憶體裝置200的操作所必需的各種操作電壓。電壓供給單元220可以將待在讀取操作中使用的讀取偏壓VR提供至位址解碼器240。
介面單元230可以與控制器100交換包括命令和位址的各種控制信號和資料。介面單元230可以將輸入至其的各種控制信號和資料傳輸至非揮發性記憶體裝置200的內部單元。
位址解碼器240可以解碼位址以選擇記憶體區域260中待被存取的特定區域。位址解碼器240可以根據解碼結果選擇性地驅動字線WL且控制資料輸入/輸出單元250以選擇性地驅動位元線BL。
資料輸入/輸出單元250可以將從介面單元230傳輸的資料透過位元線BL傳輸至記憶體區域260。資料輸入/輸出單元250可以透過位元線BL將從記憶體區域260讀出的資料傳輸至介面單元230。資料輸入/輸出單元250可以感測在包括在記憶體區域260中的記憶體單元回應於讀取偏壓VR被打開或關閉時形成的電流,並且可以根據感測結果獲得從記憶體區域讀取的資料。
記憶體區域260可以透過字線WL與位址解碼器240聯接,並且可以透過位元線BL與資料輸入/輸出單元250聯接。記憶體區域260可以包括多個記憶體單元,多個記憶體單元分別設置在字線WL和位元線BL相互交叉並且資料儲存在其中的區域處。記憶體區域260可以包括二維或三維結構的記憶體單元陣列。
圖3是示出記憶體單元的閾值電壓分佈PV1和PV2的示例的曲線圖。在圖3的曲線圖中,橫軸VTH表示記憶體單元的閾值電壓,且縱軸#表示與閾值電壓對應的記憶體單元的數量。
參照圖3,記憶體單元可以根據儲存在其中的資料形成閾值電壓分佈PV1和PV2(310)。儲存有第一資料的記憶體單元可以形成閾值電壓分佈PV1,且儲存有第二資料的記憶體單元可以形成閾值電壓分佈PV2。
讀取偏壓VR可以被應用於聯接至記憶體單元的字線,以讀取在記憶體單元中儲存的資料。由於記憶體單元根據閾值電壓(即儲存在其中的資料)回應於讀取偏壓VR被打開或者關閉,所以當讀取偏壓VR被應用時,可以透過檢測記憶體單元的打開或關閉來讀取儲存在記憶體單元中的資料。
同時,記憶體單元的閾值電壓可以被各種因素改變。例如,閾值電壓分佈PV2可以移動至閾值電壓分佈PV2’(320)。在這方面,如果基於讀取偏壓VR執行讀取操作,則對應於閾值電壓分佈PV2’的陰影區(325)的記憶體單元輸出錯誤位元。然而,如果基於位於閾值電壓分佈PV1和閾值電壓分佈PV2’之間的谷部處的讀取偏壓VR’(即最佳讀取偏壓VR’)來執行讀取操作,則讀出資料的錯誤率可以被最小化。
同時,儘管從圖1中非揮發性記憶體裝置200讀取的資料組區塊DTCK包括錯誤位元,但是由於ECC單元120可以僅校正在其錯誤校正能力內的錯誤位元,因此有利於最小化資料組區塊DTCK的錯誤率。執行使用最佳讀取偏壓VR’的讀取操作使錯誤率最小化。
如果有可能精確計算出記憶體單元的當前閾值電壓分佈PV1和PV2’,則可以精確地設置最佳讀取偏壓VR’。然而,如果沒有可能,則應當間接地估算最佳讀取偏壓VR’。根據本實施例,校正失敗索引FI用於調整讀取偏壓VR以接近最佳讀取偏壓VR’。而且,校正失敗索引FI可用於在多個讀取偏壓中選擇最接近最佳讀取偏壓VR’的讀取偏壓。稍後將進行其詳細描述。
圖4是示出圖1的ECC單元120的編碼和解碼方法的簡圖。
ECC單元120可以透過基於BCH碼演算法透過預定單元對原始資料DT執行第一編碼操作而首先生成資料區塊DB00至DB33。例如,資料區塊DB11可以包括原始資料DT的部分D11和基於BCH碼演算法針對部分D11生成的同位資料P11。
進一步地,ECC單元120可以透過基於TPC演算法對各自行組R0至R3和各自列組C0至C3執行第二編碼操作來生成行同位資料RP0至RP3和列同位資料CP0至CP3,其中各自行組R0至R3和各自列組C0至C3當資料區塊DB00至DB33在行和列的方向上設置時生成。例如,ECC單元120可以對行組R1生成行同位資料RP1且對列組C1生成列同位資料CP1。而且,ECC單元120可以透過對行同位資料RP0至RP3執行編碼操作來生成同位資料RPP。
如果從非揮發性記憶體裝置200讀取資料組區塊DTCK,則ECC單元120可以基於BCH碼演算法首先對資料區塊DB00至DB33執行第一解碼操作。ECC單元120可以基於TPC演算法對第一解碼操作失敗的資料區塊執行第二解碼操作。例如,當對資料區塊DB11的第一解碼操作失敗時,ECC單元120可以透過對行組R1和行同位資料RP1執行第二解碼操作和/或對列組C1和列同位資料CP1執行第二解碼操作來校正資料區塊DB11。
圖5是示出在錯誤校正操作中計算校正失敗索引FI的方法的簡圖。
參照圖5,資料區塊DB02、DB03、DB11和DB22可以是基於BCH碼演算法的第一解碼操作失敗的資料區塊。此時,校正失敗索引FI可以是第一解碼操作失敗的資料區塊DB02、DB03、DB11和DB22的數量“4”。可以在 透過基於TPC演算法的第二解碼操作來錯誤校正資料區塊DB02、DB03、DB11和DB22之前確定校正失敗索引FI。
校正失敗索引FI可以對應於已經用於讀取資料組區塊DTCK的讀取偏壓VR。換句話說,如果讀取偏壓VR1被調整至讀取偏壓VR2並且資料組區塊DTCK透過使用調整後的讀取偏壓VR2再次被讀取,則校正失敗索引FI可以被計算為另一值(例如“5”)。因此,校正失敗索引FI可以反映相應的讀取偏壓VR的適當性。
在讀取操作中使用的讀取偏壓VR和與其對應的校正失敗索引FI可以被添加至圖1中控制器100的記錄器130。記錄器130可以包括在讀取操作中使用的讀取偏壓VR和分別與其對應的校正失敗索引FI。
圖6是示出校正失敗索引FI和資料組區塊DTCK的錯誤率之間的關係的簡圖。
參照圖6,校正失敗索引FI和錯誤率可以基本上互成比例。這是因為,當資料組區塊DTCK的錯誤率高時,第一解碼操作失敗的資料區塊的數量將增加。
因此,當校正失敗索引FI小時,讀取偏壓VR可接近圖3的最佳讀取偏壓VR’。
圖7是示出圖1的資料儲存裝置10基於先前校正失敗索引FI調整讀取偏壓VR的方法的簡圖。在圖7中,可以讀取偏壓VR1至VR4的順序調整讀取偏壓VR。
參照圖7,例如,當執行讀取操作時,可以設置起始讀取偏壓VR1,可以基於讀取偏壓VR1讀取資料組區塊DTCK,且可以對讀出的資料組 區塊DTCK執行錯誤校正操作。當錯誤校正操作失敗時,隨著讀取偏壓VR1調整至讀取偏壓VR2可以反覆運算讀取操作。
基於使用在先前讀取操作中使用的讀取偏壓VR和分別與讀取偏壓VR對應的校正失敗索引FI的最小值估計演算法來設置讀取偏壓VR。最小值估計演算法可以是基於先前使用的讀取偏壓VR和校正失敗索引FI確定將讀取偏壓VR移至與校正失敗索引FI的最小值對應的讀取偏壓VR的調整量的符號和大小的演算法。
讀取偏壓VR的調整量的符號可以與先前校正失敗索引FI減少的方向相對應。讀取偏壓VR的調整量的大小可以與預定設置值相對應或者可以被設置為與先前校正失敗索引FI的變化量一致。例如,如果作為將讀取偏壓VR2調整至讀取偏壓VR3的結果,校正失敗索引FI少量增加,則可在先前方向的反方向上以較少調整量移動下一個讀取偏壓VR4。
根據實施例,不僅當反覆運算為獲得儲存在記憶體單元中的資料的讀取操作時,而且當反覆運算追蹤圖3的最佳讀取偏壓VR’的測試讀取操作時,可以根據圖7的方法調整讀取偏壓VR。在這方面,當獲得錯誤校正資料時,可以結束讀取操作,且當設置待在讀取操作中使用的適當讀取偏壓VR時,可以結束測試讀取操作。
圖8是示出圖1的資料儲存裝置10執行讀取操作的方法的流程圖。例如,當非揮發性記憶體裝置200的初始讀取操作失敗時,控制器100可以透過基於校正失敗索引FI調整讀取偏壓VR來反覆運算包括步驟S120至S140的讀取操作。
在步驟S110中,控制器100可以設置起始讀取偏壓VR。
在步驟S120中,控制器100可以基於設置的讀取偏壓VR從非揮發性記憶體裝置200中讀取資料組區塊DTCK。
在步驟S130中,控制器100可以對讀出的資料組區塊DTCK執行錯誤校正操作。步驟S130可以包括步驟S131、S132、S133和S134。
具體地,在步驟S131中,控制器100可以基於第一演算法對資料組區塊DTCK執行第一解碼操作。例如,第一演算法可以是BCH碼演算法。控制器100可以對包括在資料組區塊DTCK中的各自資料區塊執行第一解碼操作。
在步驟S132中,控制器100可以確定對所有資料區塊的第一解碼操作是否已經成功。在第一解碼操作已經成功的情況下,進程可以繼續至步驟S135。在對一個或多個資料區塊的第一解碼操作失敗的情況下,進程可以繼續至步驟S133。
在步驟S135中,控制器100可以獲得錯誤校正資料。因此,讀取操作可以作為成功結束。
在步驟S133中,控制器100可以基於第二演算法對第一解碼操作失敗的資料區塊執行第二解碼操作。例如,第二演算法可以是TPC演算法。
在步驟S134中,控制器100可以確定第二解碼操作是否已經成功。在第二解碼操作已經成功的情況下,進程可以繼續至步驟S135。在第二解碼操作失敗的情況下,進程可以繼續至步驟S140。
在步驟S140中,控制器100可以將讀取偏壓VR和透過第一解碼操作計算的校正失敗索引FI添加至記錄器130。例如,校正失敗索引FI可以是資料組區塊DTCK中的第一解碼操作失敗的資料區塊的數量。
在步驟S150中,控制器100可以確定是否反覆運算讀取操作。例如,控制器100可以透過確定當執行讀取操作時增加的計數是否已經達到閾值計數來確定是否反覆運算讀取操作。當確定不反覆運算讀取操作時,讀取操作可以作為失敗結束。當確定反覆運算讀取操作時,進程可以繼續至步驟S160。
在步驟S160中,控制器100可以基於包括在記錄130中的讀取偏壓VR和分別與讀取偏壓VR對應的校正失敗索引FI來調整讀取偏壓VR。控制器100可以基於先前使用的讀取偏壓VR和校正失敗索引FI來確定為移動至校正失敗索引FI的最小值和與其對應的讀取偏壓VR的讀取偏壓VR的調整量的符號和大小。然後,進程可以繼續至步驟S120,且讀取操作可以基於新的讀取偏壓VR被反覆運算。
根據實施例,在步驟S150中,當確定不反覆運算讀取操作時,控制器100可不以失敗結束讀取操作,並且相反地,可以基於本領域內公知的各種讀取偏壓調整方法執行附加讀取操作。附加讀取操作可以透過新設置起始讀取偏壓VR開始,並且起始讀取偏壓VR可以基於與包括在記錄器130中的校正失敗索引FI中的最小校正失敗索引FI對應的讀取偏壓VR來設置。
圖9是示出圖1的資料儲存裝置10執行最佳讀取偏壓估計操作的方法的流程圖。當執行最佳讀取偏壓估計操作時,控制器100可以透過基於校正失敗索引FI調整讀取偏壓VR來反覆運算包括步驟S220至S240的測試讀取操作。
在步驟S210中,控制器100可以設置起始讀取偏壓VR。
在步驟S220中,控制器100可以基於設置的讀取偏壓VR從非揮發性記憶體裝置200中讀取資料組區塊DTCK。
在步驟S230中,控制器100可以基於第一演算法對資料組區塊DTCK執行第一解碼操作。例如,第一演算法可以是BCH碼演算法。控制器100可以對包括在資料組區塊DTCK中的各自資料區塊執行第一解碼操作。
在步驟S240中,控制器100可以將讀取偏壓VR和透過第一解碼操作計算的校正失敗索引FI添加至記錄器130。例如,校正失敗索引FI可以是資料組區塊DTCK中的第一解碼操作失敗的資料區塊的數量。
在步驟S250中,控制器100可以確定是否反覆運算測試讀取操作。例如,控制器100可以透過確定當執行測試讀取操作時增加的計數是否已經達到閾值計數來確定是否反覆運算測試讀取操作。再如,控制器100可以透過確定當前計算的校正失敗索引FI是否小於閾值索引來確定是否反覆運算測試讀取操作。當確定反覆運算測試讀取操作時,進程可以繼續至步驟S260。當確定不反覆運算測試讀取操作時,進程可以繼續至步驟S270。
在步驟S260中,控制器100可以基於包括在記錄器130中的讀取偏壓VR和分別與讀取偏壓VR對應的校正失敗索引FI來調整讀取偏壓VR。控制器100可以基於先前使用的讀取偏壓VR和校正失敗索引FI來確定為移動至校正失敗索引FI的最小值和與其對應的讀取偏壓VR的讀取偏壓VR的調整量的符號和大小。然後,進程可以繼續至步驟S220,且可以基於新讀取偏壓VR來反覆運算測試讀取操作。
在步驟S270中,控制器100可以基於與包括在記錄器130中的校正失敗索引FI中的最小校正失敗索引FI對應的讀取偏壓VR來設置將在讀取操作中使用的最終讀取偏壓VR。例如,控制器100可以將與最小校正失敗索引FI對應的讀取偏壓VR設置為最終讀取偏壓。
根據實施例,控制器100可以將對應於最小校正失敗索引FI的讀取偏壓VR設置為待以在本領域中公知的各種讀取偏壓調整方法使用的起始讀取偏壓VR。
根據實施例,待在測試讀取操作中使用的讀取偏壓VR可以不基於校正失敗索引FI來調整,而是可以透過在預定表格中包括的讀取偏壓VR中被選擇來調整。在這種情況下,可以計算出分別與包括在表格中的讀取偏壓VR對應的校正失敗索引FI,並且可以選擇與最小校正失敗索引FI對應的讀取偏壓VR。
圖10是示出根據本發明的實施例的固態驅動器(SSD)1000的方塊圖。
SSD 1000可以包括控制器1100和儲存介質1200。
控制器1100可以與圖1的控制器100基本相同的方式配置。當讀取操作失敗時,控制器1100可以透過調整待在讀取操作中使用的讀取偏壓來再次執行讀取操作。具體地,控制器1100可以透過調整讀取偏壓、基於讀取偏壓從目標記憶體區域讀取資料組區塊及對資料組區塊執行錯誤校正操作來執行讀取操作,並且可以根據錯誤校正操作的結果反覆運算讀取操作。當反覆運算讀取操作時,控制器1100可以透過參考記錄器,基於在一個或多個先前讀取操作中使用的讀取偏壓和分別與讀取偏壓對應的校正失敗索引來調整讀取偏壓。
而且,為了設置待在讀取操作中使用的最終讀取偏壓,控制器1100可以透過調整讀取偏壓反覆運算地執行測試讀取操作。控制器1100可以透過調整讀取偏壓、基於讀取偏壓從目標記憶體區域讀取資料組區塊、基於錯誤校正演算法對資料組區塊執行解碼操作及將讀取偏壓和在解碼操作中計算的校 正失敗索引添加至記錄器。進一步地,控制器1100可以基於與包括在記錄器中的校正失敗索引中的最小校正失敗索引對應的讀取偏壓來設置待在讀取操作中使用的最終讀取偏壓。
控制器1100可以包括處理器1110、隨機存取記憶體(RAM,random access memory)1120、唯讀記憶體(ROM,read only memory)1130、錯誤校正碼(ECC)單元1140、主機介面1150和儲存介質介面1160。
處理器1110可以控制控制器1100的一般操作。處理器1110可以根據來自主機裝置1500的資料處理請求在儲存介質1200中儲存資料並且從儲存介質1200中讀取儲存的資料。為了高效能地管理儲存介質1200,處理器1110可以控制SSD 1000的內部操作,諸如合併操作、磨損平均操作等等。
RAM 1120可以儲存待被處理器1110使用的程式和程式資料。RAM 1120可以在將從主機介面1150傳輸的資料傳送至儲存介質1200之前臨時地儲存從主機介面1150傳輸的資料,並且可以在將從儲存介質1200傳輸的資料傳送至主機裝置1500之前臨時地儲存從儲存介質1200傳輸的資料。
ROM 1130可以儲存待被處理器1110讀取的程式碼。程式碼可以包括待被處理器1110處理、用於處理器1110控制控制器1100的內部單元的命令。
ECC單元1140可以對待被儲存在儲存介質1200中的資料編碼,且可對從儲存介質1200中讀取的資料解碼。ECC單元1140可以根據ECC演算法檢測和校正發生在資料中的錯誤。
主機介面1150可以與主機裝置1500交換資料處理請求、資料等等。
儲存介質介面1160可以向儲存介質1200傳輸控制信號和資料。儲存介質介面1160可以接收來自儲存介質1200的資料。儲存介質介面1160可以透過多個通道CH0至CHn與儲存介質1200聯接。
儲存介質1200可以包括多個非揮發性記憶體裝置NVM0至NVMn。多個非揮發性記憶體裝置NVM0至NVMn的每一個可以根據控制器1100的控制執行寫入操作和讀取操作。
圖11是示出根據本發明的實施例的將圖1中資料儲存裝置10應用為資料儲存裝置2300的資料處理系統2000的方塊圖。
資料處理系統2000可以包括電腦、筆記型電腦、上網本、智慧型電話、數位電視、數位相機、導航儀等。資料處理系統2000可以包括主處理器2100、主記憶體裝置2200、資料儲存裝置2300和輸入/輸出裝置2400。資料處理系統2000的內部單元可以透過系統匯流排2500交換資料、控制信號等。
主處理器2100可以控制資料處理系統2000的一般操作。主處理器2100可以是諸如微處理器的中央處理單元。主處理器2100可以在主記憶體裝置2200上執行作業系統、應用、裝置驅動程式等的軟體。
主記憶體裝置2200可以儲存將被主處理器2100使用的程式和程式資料。主記憶體裝置2200可以臨時地儲存待被傳輸至資料儲存裝置2300和輸入/輸出裝置2400的資料。
資料儲存裝置2300可以包括控制器2310和儲存介質2320。資料儲存裝置2300可以與圖1所示的資料儲存裝置10基本類似的方式被配置和操作。
輸入/輸出裝置2400可以包括鍵盤、掃描器、觸控式螢幕、螢幕監視器、印表機、滑鼠等,其能夠與使用者交換資料,諸如接收來自使用者的控制資料處理系統2000的命令或者將處理結果提供至用戶。
根據實施例,資料處理系統2000可以透過諸如區域網路(LAN,local area network)、廣域網路(WAN,wide area network)、無線網路等的網路2600與至少一個伺服器2700通信。資料處理系統2000可以包括網路介面(未示出)以存取網路2600。
儘管上文已經描述了各種實施例,但是本領域技術人員將理解的是描述的實施例僅是示例。因此,本文描述的資料儲存裝置及其操作方法不應基於描述的實施例被限制。在不脫離如所附申請專利範圍中限定的本發明的精神和/或範圍的情況下,相關領域的技術人員可以想到許多其它實施例和/或其變型。
10:資料儲存裝置
100:控制器
110:讀取偏壓調整單元
120:錯誤校正碼單元
130:記錄器
200:非揮發性記憶體裝置

Claims (17)

  1. 一種資料儲存裝置,其包括:非揮發性記憶體裝置,其包括目標記憶體區域;以及控制器,其適於透過基於讀取偏壓從該目標記憶體區域讀取資料組區塊並且對該資料組區塊執行錯誤校正操作來執行讀取操作、根據該錯誤校正操作的結果反覆運算該讀取操作以及基於在一個或多個先前讀取操作中使用的至少一個讀取偏壓和對應於該至少一個讀取偏壓的至少一個校正失敗索引來調整該讀取偏壓,其中,當執行該錯誤校正操作時,該控制器基於第一演算法對包括在該資料組區塊中的多個各自資料區塊執行第一解碼操作,其中,基於使用該至少一個讀取偏壓的該第一解碼操作失敗的一個或多個資料區塊的數量來計算該至少一個校正失敗索引。
  2. 如請求項1所述的資料儲存裝置,其中,當執行該錯誤校正操作時,該控制器基於第二演算法對該第一解碼操作失敗的一個或多個資料區塊執行第二解碼操作。
  3. 如請求項2所述的資料儲存裝置,其中該第一演算法是博斯-查德胡裡-霍昆格母碼演算法即BCH碼演算法,且該第二演算法是渦輪乘積碼演算法即TPC演算法。
  4. 如請求項1所述的資料儲存裝置,其中,該控制器將該讀取操作反覆運算至閾值。
  5. 如請求項1所述的資料儲存裝置,其中,該控制器基於使用該至少一讀取偏壓和該至少一校正失敗索引的最小值估計演算法來調整該讀取偏壓。
  6. 一種操作資料儲存裝置的方法,其包括:根據錯誤校正操作的結果反覆運算讀取操作,該讀取操作包括基於讀取偏壓從目標記憶體區域讀取資料組區塊,以及對該資料組區塊執行該錯誤校正操作;以及基於在一個或多個先前讀取操作中使用的一個或多個讀取偏壓和分別對應於該讀取偏壓的校正失敗索引來調整該讀取偏壓,其中,該錯誤校正操作的執行包括:基於第一演算法對包括在該資料組區塊中的多個各自資料區塊執行第一解碼操作,以及其中,基於該第一解碼操作失敗的一個或多個資料區塊的數量確定每個校正失敗索引。
  7. 如請求項6所述的方法,其中該錯誤校正操作的執行更包括:基於第二演算法對該第一解碼操作失敗的一個或多個資料區塊執行第二解碼操作。
  8. 如請求項7所述的方法,其中該第一演算法是博斯-查德胡裡-霍昆格母碼演算法即BCH碼演算法,且該第二演算法是渦輪乘積碼演算法即TPC演算法。
  9. 如請求項6所述的方法,其中該讀取操作進一步包括:根據該錯誤校正操作的結果,將該讀取偏壓及對應於該讀取偏壓的校正失敗索引添加至記錄器。
  10. 如請求項6所述的方法,其進一步包括:當執行該讀取操作時增加計數;確定該計數是否已經達到閾值計數;以及根據確定結果結束該讀取操作的反覆運算。
  11. 如請求項6所述的方法,其中該讀取偏壓的調整包括:基於使用該讀取偏壓和該校正失敗索引的最小值估計演算法來調整該讀取偏壓。
  12. 一種操作資料儲存裝置的方法,其包括:反覆運算測試讀取操作,該測試讀取操作包括基於讀取偏壓從目標記憶體區域讀取資料組區塊,該資料組區塊包括每個基於錯誤校正演算法被編碼的多個資料區塊,以及基於該錯誤校正演算法對各自資料區塊執行解碼操作;基於在一個或多個先前讀取操作中使用的一個或多個讀取偏壓和在該解碼操作中計算的校正失敗索引來調整該讀取偏壓;以及基於對應於該校正失敗索引中的最小校正失敗索引的讀取偏壓,設置待在讀取操作中使用的最終讀取偏壓,其中,基於該解碼操作失敗的一個或多個資料區塊的數量來計算每個校正失敗索引。
  13. 如請求項12所述的方法,其中該讀取偏壓的調整包括:基於使用讀取偏壓和該校正失敗索引的最小值估計演算法來調整該讀取偏壓。
  14. 如請求項12所述的方法,其中該讀取偏壓的調整包括: 透過參考包括多個預定讀取偏壓的表格來調整該讀取偏壓。
  15. 如請求項12所述的方法,其中該錯誤校正演算法是博斯-查德胡裡-霍昆格母碼演算法即BCH碼演算法。
  16. 如請求項12所述的方法,其進一步包括:當執行索引計算操作時增加計數;確定該計數是否已經達到閾值計數;以及根據確定結果結束該索引計算操作的反覆運算。
  17. 如請求項12所述的方法,其進一步包括:確定該校正失敗索引是否小於閾值索引;以及根據確定結果結束該索引計算操作的反覆運算。
TW105133160A 2016-02-26 2016-10-14 資料儲存裝置及其操作方法 TWI727980B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2016-0023615 2016-02-26
KR1020160023615A KR102500616B1 (ko) 2016-02-26 2016-02-26 데이터 저장 장치 및 그것의 동작 방법

Publications (2)

Publication Number Publication Date
TW201730742A TW201730742A (zh) 2017-09-01
TWI727980B true TWI727980B (zh) 2021-05-21

Family

ID=59679639

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105133160A TWI727980B (zh) 2016-02-26 2016-10-14 資料儲存裝置及其操作方法

Country Status (4)

Country Link
US (1) US10055286B2 (zh)
KR (1) KR102500616B1 (zh)
CN (1) CN107134293B (zh)
TW (1) TWI727980B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180108939A (ko) * 2017-03-23 2018-10-05 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10521296B2 (en) * 2018-02-20 2019-12-31 Micron Technology, Inc. Performing an additional decoding operation on an identified set of bits of a data block
KR102085690B1 (ko) * 2018-04-27 2020-03-06 한양대학교 산학협력단 오류 정정 기능을 구비한 플래시 메모리 저장 장치 및 그 구동 방법
US10725862B2 (en) * 2018-07-06 2020-07-28 Macronix International Co., Ltd. Data recovery method to error correction code in memory
KR102660417B1 (ko) 2019-07-24 2024-04-24 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150149840A1 (en) * 2013-11-27 2015-05-28 Lsi Corporation Read Retry For Non-Volatile Memories
TW201606506A (zh) * 2014-06-25 2016-02-16 英特爾公司 用以組成跨裝置的記憶體資源及降低過渡性潛時之技術

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101496110B (zh) * 2006-05-12 2013-02-13 苹果公司 存储设备中的失真估计和消除
KR20100086193A (ko) 2009-01-22 2010-07-30 주식회사 하이닉스반도체 반도체 메모리 소자의 독출 방법
US8451664B2 (en) * 2010-05-12 2013-05-28 Micron Technology, Inc. Determining and using soft data in memory devices and systems
US8839073B2 (en) * 2012-05-04 2014-09-16 Lsi Corporation Zero-one balance management in a solid-state disk controller
TWI594254B (zh) * 2012-07-17 2017-08-01 慧榮科技股份有限公司 讀取快閃記憶體中區塊之資料的方法及相關的記憶裝置
US8804421B2 (en) * 2012-10-31 2014-08-12 Intel Corporation Center read reference voltage determination based on estimated probability density function
US20140359202A1 (en) * 2013-05-31 2014-12-04 Western Digital Technologies, Inc. Reading voltage calculation in solid-state storage devices
CN104282339B (zh) * 2013-07-08 2018-12-14 群联电子股份有限公司 读取电压设定方法、控制电路与存储器储存装置
KR101429184B1 (ko) * 2013-09-12 2014-08-12 주식회사 디에이아이오 낸드 플래시 메모리 장치의 독출 전압 조정 방법
CN104616695B (zh) * 2013-11-05 2017-12-22 光宝科技股份有限公司 固态存储装置及其读取电压设定方法
KR20150084560A (ko) * 2014-01-14 2015-07-22 에스케이하이닉스 주식회사 인코딩 장치, 디코딩 장치 및 그 동작 방법
KR102149668B1 (ko) * 2014-04-22 2020-08-31 삼성전자주식회사 비휘발성 메모리 장치의 데이터 디코딩 방법
TWI550612B (zh) * 2015-03-23 2016-09-21 群聯電子股份有限公司 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150149840A1 (en) * 2013-11-27 2015-05-28 Lsi Corporation Read Retry For Non-Volatile Memories
US20160093396A1 (en) * 2013-11-27 2016-03-31 Seagate Technology Llc Read Retry For Non-Volatile Memories
TW201606506A (zh) * 2014-06-25 2016-02-16 英特爾公司 用以組成跨裝置的記憶體資源及降低過渡性潛時之技術

Also Published As

Publication number Publication date
US20170249208A1 (en) 2017-08-31
KR102500616B1 (ko) 2023-02-17
KR20170101367A (ko) 2017-09-06
TW201730742A (zh) 2017-09-01
CN107134293A (zh) 2017-09-05
CN107134293B (zh) 2021-05-07
US10055286B2 (en) 2018-08-21

Similar Documents

Publication Publication Date Title
US9817749B2 (en) Apparatus and method of offloading processing from a data storage device to a host device
US9564239B2 (en) Memory controller and operating method thereof
TWI727980B (zh) 資料儲存裝置及其操作方法
TWI703436B (zh) 資料儲存裝置及其操作方法
US20170097868A1 (en) Data storage device and operating method thereof
US10268540B2 (en) Data storage device and operating method thereof
US9768808B2 (en) Method for modifying device-specific variable error correction settings
US20130055012A1 (en) Data management method of improving data reliability and data storage device
CN105989890B (zh) 用于快闪存储器的增量llr产生
US10102066B2 (en) Data processing device and operating method thereof
US10001952B2 (en) Data storage device and operating method thereof including read error correction
US20160299812A1 (en) Device-Specific Variable Error Correction
US20160299844A1 (en) Mapping Logical Groups of Data to Physical Locations In Memory
US20180373629A1 (en) Memory system and operating method thereof
US11481155B2 (en) Controller and operating method thereof
US20230350577A1 (en) Memory system and operation method thereof
KR20220043432A (ko) 메모리 시스템에서 읽기 전압을 제어하는 장치 및 방법
KR20170090683A (ko) 비휘발성 메모리 장치, 그것을 포함하는 데이터 저장 장치의 동작 방법
KR20210121654A (ko) 메모리 시스템의 데이터 에러를 복구하는 장치 및 방법
KR20210108712A (ko) 메모리 시스템 및 그것의 동작방법
KR20170093370A (ko) 데이터 저장 장치
US10152372B2 (en) Data storage device and operating method thereof
KR20220077041A (ko) 메모리 시스템 내 저장된 데이터를 유지하는 장치 및 방법
KR20210105096A (ko) 메모리 시스템 및 그것의 동작방법
US20230197183A1 (en) Storage controller including parity management module, storage device including the same, and operating method of storage device