TWI618078B - 在固態記憶體系統中基於延遲的資料再利用的系統及方法 - Google Patents

在固態記憶體系統中基於延遲的資料再利用的系統及方法 Download PDF

Info

Publication number
TWI618078B
TWI618078B TW103111023A TW103111023A TWI618078B TW I618078 B TWI618078 B TW I618078B TW 103111023 A TW103111023 A TW 103111023A TW 103111023 A TW103111023 A TW 103111023A TW I618078 B TWI618078 B TW I618078B
Authority
TW
Taiwan
Prior art keywords
data
access
threshold
circuit
data set
Prior art date
Application number
TW103111023A
Other languages
English (en)
Other versions
TW201517045A (zh
Inventor
蔡宇
雲相 吳
陳寧
艾立克 哈洛許
政剛 陳
Original Assignee
Lsi公司
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 Lsi公司 filed Critical Lsi公司
Publication of TW201517045A publication Critical patent/TW201517045A/zh
Application granted granted Critical
Publication of TWI618078B publication Critical patent/TWI618078B/zh

Links

Classifications

    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0653Monitoring storage devices or systems
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • 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/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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] 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/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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7205Cleaning, compaction, garbage collection, erase control
    • 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations

Abstract

一般言之,本發明關於固態記憶體系統與方法,具體而言,關於再利用固態記憶體中之資料的系統與方法有關。

Description

在固態記憶體系統中基於延遲的資料再利用的系統及方法 相關申請案交互參考
本申請案主張Cai等人於2013年10月17日提出申請之美國專利申請案No.61/892,249之優先權,其名稱為“Systems and Methods for Latency Based Data Recycling in a Solid State Memory System”。前述臨時專利申請案之全文併入本文供參考。
一般言之,本發明關於固態記憶體系統與方法,具體而言,關於再利用固態記憶體中之資料的系統與方法有關。
固態儲存裝置中的資料隨著時間而衰變,隨著時間推移需要更強的錯誤修正能力。為修正額外的錯誤,要使用增強型錯誤修正電路。不過,這類增強型錯誤修正電路增 加存取的延遲。
因此,至少基於上述理由,習知技術需要用於保持固態儲存裝置中之資料的先進系統與方法。
一般言之,本發明關於固態記憶體系統與方法,具體而言,關於再利用固態記憶體中之資料的系統與方法有關。
本發明之各實施例所提供的資料處理系統包括:記憶體裝置、資料解碼器電路、及再利用控制電路。記憶體裝置可操作來保存資料組,及資料解碼器電路可操作來對存取自記憶體裝置的資料組施加一或多個資料解碼演算法的迭代,以產生經解碼的輸出,並提供指示對資料組施加資料解碼演算法之迭代個數的迭代計數。再利用控制電路可操作來再利用對應於資料組的讀取資料。再利用係至少部分根據迭代計數而被觸發。
本概述僅提供本發明之某些實施例的一般概要。“在一實施例中”、“按照一實施例”、“在各不同實施例中”、“在一或多個實施例中”等片語,通常意指跟隨在片語後之特定的特徵、結構、或特性係包括在本發明的至少一個實施例中,且可包括在本發明的一或多個實施例中。重點是,此等片語不必然意指相同的實施例。從以下的詳細描述、所附申請專利範圍及附圖,將可更完全明瞭本發明的很多其它實施例。
100‧‧‧固態儲存裝置
105‧‧‧寫入資料
107‧‧‧讀取資料
110‧‧‧位址
120‧‧‧記憶體存取控制器
123‧‧‧位址
125‧‧‧經編碼之寫入資料
130‧‧‧寫入電路
135‧‧‧寫入電壓
140‧‧‧快閃記憶格
145‧‧‧讀取電壓
150‧‧‧讀取電路
154‧‧‧軟資料
155‧‧‧多位元讀取資料
160‧‧‧主控制器電路
170‧‧‧迭代資料處理電路
174‧‧‧軟資料
177‧‧‧頻率指示器
179‧‧‧迭代計數
180‧‧‧基於迭代計數的資料再利用控制電路
187‧‧‧再利用致能
200‧‧‧迭代資料處理電路
205‧‧‧記憶體資料
214‧‧‧軟資訊存取或產生電路
225‧‧‧資料組
250‧‧‧中央記憶體電路
252‧‧‧解碼器輸入
270‧‧‧解碼器電路
271‧‧‧經解碼的輸出
272‧‧‧經解碼的輸出
273‧‧‧迭代完成指示器
290‧‧‧硬決定緩衝器電路
292‧‧‧硬體決定輸出
295‧‧‧迭代計數電路
296‧‧‧迭代計數
藉由參考本說明書以下所描述的圖式,將可進一步瞭解本發明的各式實施例。在以下從頭到尾的各圖中,使用同樣的元件符號指示同樣的組件。在某些例中,由下標字所構成的子標號與元件符號相關,用以指示多個類似組件其中之一。當所參考的元件符號沒有說明現有的子標號時,其意指所有此等多個類似的組件。
圖1顯示固態儲存裝置,包括按照本發明各式實施例之基於迭代計數的資料再利用控制電路;圖2描繪迭代資料處理電路的一實施,其可用於關於本發明之實施例;以及圖3a-3c的流程圖顯示用於按照本發明某些實施例之基於迭代計數之資料再利用控制電路的方法。
一般言之,與固態記憶體的系統與方法有關,而更明確地說,與再利用固態記憶體中之資料的系統與方法有關。
本發明之各式實施例提供的固態記憶體系統包括迭代資料處理電路。在存取自固態記憶體之資料包括一或多個錯誤的情況中,迭代資料處理電路施加一或多個資料解碼演算法的迭代,以嘗試修正任何錯誤。修正錯誤所需的迭代個數提供給基於迭代計數的資料再利用電路。以迭代計 數為基的再利用電路決定是否再利用被存取的資料來提高被存取之資料的可靠度,及/或縮短未來資料之存取的延遲。在本發明的某些實施例中,關於再利用之決定,除了迭代計數之外,還根據資料被存取的頻率。
本發明之各實施例提供的資料處理系統包括:記憶體裝置、資料解碼器電路、及再利用控制電路。記憶體裝置可操作來保存資料組,及資料解碼器電路可操作來對存取自記憶體裝置的資料組施加一或多個資料解碼演算法的迭代,以產生經解碼的輸出,並提供指示對資料組施加資料解碼演算法之迭代個數的迭代計數。再利用控制電路可操作來再利用對應於資料組的讀取資料。再利用係至少部分根據迭代計數而被觸發。
在前述實施例的某些例子中,資料解碼演算法係低密度同位檢查解碼演算法。在前述實施例的各實例中,至少資料解碼器電路與再利用控制電路被合併在積體電路中。在某些這類實施例中,記憶體裝置被進一步合併在積體電路中。在某些情況中,記憶體裝置係快閃記憶體裝置。在特定的情況中,快閃記憶體裝置能夠在快閃記憶體裝置的每一個記憶格中保存資料的多個位元。
在前述實施例的各實例中,再利用控制電路包括比較器電路,可操作來比較迭代計數與臨限位準。在某些這樣的實例中,臨限位準係可程式的。在其它這樣的實例中,臨限位準係固定的。
在前述實施例的一或多個實例中,該系統進一步包括 記憶體存取電路。記憶體存取電路可操作來:存取記憶體裝置的資料組;並計算存取對應之資料組的頻率。在某些這樣的實例中,再利用係至少部分根據迭代計數與存取之頻率而被觸發。在各情況中,再利用控制電路包括比較器電路,可操作來比較迭代計數與第一臨限位準或第二臨限位準其中之一。當存取之頻率超過第三臨限位準時,選擇第一臨限位準,及當存取之頻率小於第三臨限位準時,選擇第二臨限位準。在特定的情況中,第一臨限位準、第二臨限位準、及/或第三臨限位準等一或多個位準可由使用者程式。在其它情況中,第一臨限位準、第二臨限位準、及第三臨限位準所有都是固定的。
在本發明的另些實施例中,提供用於記憶體裝置中之資料再利用控制的方法。該方法包括:接收保存在記憶體裝置中的資料組;藉由資料解碼器電路對資料組施加至少一個的資料解碼演算法的迭代,以產生經解碼的輸出;計算對資料組施加資料解碼演算法的迭代個數,以產生迭代計數;以及,資料組回收到記憶體裝置,以使得再利用至少部分根據迭代計數而被觸發。在前述實施例的某些實例中,資料解碼演算法係低密度同位檢查解碼演算法。
在前述實施例的各式實例中,再利用資料組係由再利用控制電路來控制,其包括比較器電路,可操作來比較迭代計數與臨限位準。在前述實施例的某些實例中,該方法另包括決定存取對應之資料組的頻率。在某些這類的實例中,再利用係至少部分根據迭代計數與存取之頻率而被觸 發。
在前述實施例的一或多個實例中,再利用資料組係由再利用控制電路來控制,其包括比較器電路,可操作來比較迭代計數與迭代計數臨限值。在某些這類的實例中,該方法另包括至少部分根據存取的頻率來決定迭代計數的臨限值。在某些情況中,迭代計數臨限值係選擇自第一臨限位準或第二臨限位準,兩者皆為可程式的。
現轉向圖1,固態儲存裝置100包括按照本發明各式實施例之基於迭代計數的資料再利用控制電路180。儲存裝置100包括主控制器電路160,其支配對於快閃記憶格140的讀與寫存取。快閃記憶格140可以是NAND快閃記憶格或習知技術之其它類型的固態記憶格。
當主控制器電路160提供要被寫入之寫入資料105連同指示要被寫入之位置的位址110時,資料寫入被實行。記憶體存取控制器120將寫入資料105格式化,並提供位址123與經編碼之寫入資料125給寫入電路130。寫入電路130提供對應於經編碼之寫入資料125之個別群組的寫入電壓135,其用來充電被位址123所定址的各個快閃記憶格。例如,在快閃記憶格係兩位元記憶格的情況(即,視讀取電壓而定,回傳'11'、'10'、'00'、或'01'的值),以下的電壓可應用來儲存資料:
其中,V3大於V2,V2大於V1,V1大於V0。
當主控制器電路160提供位址110連同從快閃記憶格140中之對應的位置讀取資料的請求時,資料讀取被實行。記憶體存取控制器120存取位址123所指示之位置的讀取電壓145,並將該電壓與若干個臨限值比較,以將電壓降至多位元讀取資料155。使用相同的兩位元例,以下的多位元讀取資料155得到:
將此多位元讀取資料155當成讀取資料107從記憶體存取控制器120提供給迭代資料處理電路170。迭代資料處理電路170決定讀取資料107中是否有任何錯誤。若讀取資料107中無任何錯誤,迭代資料處理電路170提供讀取資料107做為讀取資料175,並提供零值做為迭代計數179。須注意,前述的表僅是例示,且不同的裝置可將不 同的位元值指定給不同的電壓臨限值。例如在其它情況中,可使用下表中的值:
當然,其它的位元型樣可指定給不同的臨限。
在仍有錯誤的情況,迭代資料處理電路170產生或存取對應於讀取資料107的軟資料。此軟資料指示讀取資料107之特定元素正確的機率。在某些情況中,此軟資料是由讀取電路150提供,如軟資料154,並指示讀取電壓145與用於讀取資料155之元素之臨限值之間的差異。此軟資訊當成軟資料174提供給迭代資料處理電路170。在本發明的其它實施例中,軟資料無法從讀取電路150獲得。在這樣的實施例中,軟資料可被產生。軟資料之產生,可使用用來產生軟資料之任何習知技術中所熟知的方法來完成。例如,軟資料之產生,可用類似於Xia等人於2013年10月7日提出申請之No.14/047,423名稱為"Systems and Methods for Enhanced Data Recovery in a Solid State Memory System"的美國專利申請案中所揭示的方法來完成。前述申請案之全文併輸入本文供全方位參考。
迭代資料處理電路170對讀取資料107與軟資料174 重複施加資料解碼演算法以產生經解碼的輸出。當每施加一個資料解碼演算法的迭代,迭代計數即被增加。在經解碼之輸出收歛的情況,(即,致使讀取資料107中之所有剩餘的錯誤都被修正),提供讀取資料175做為經解碼的輸出,並提供迭代計數179做為迭代計數。在經解碼的輸出未能收歛的情況(即經解碼的輸出中仍有錯誤),藉由前個經解碼之輸出的導引,對讀取資料107施加資料解碼演算法的另一個迭代,以產生經更新之經解碼的輸出。此處理持續直到所有的錯誤被修正,或發生逾時的情況(例如,100次迭代)。在本發明的某些實施例中,資料解碼演算法係本項技術中所熟知的低密度同位檢查演算法。根據本文所提供的揭示,本項技術中具有通常知識者將識得可用於本發明各樣實施例之相關的各種資料解碼演算法。
基於迭代計數的資料再利用控制電路180決定是否要再利用讀取資料175。此再利用包括將讀取資料175再寫入快閃記憶格140中的相同位置。此操作用來再新快閃記憶格140中由於時間衰退或記憶格衰退(兩者共稱為“資料衰退”)所導致錯誤的資料。是否再利用讀取資料175係根據迭代計數179來決定。一般來說,迭代計數179的值隨著資料衰退的增加而增加。因此,在迭代計數179超過臨限值的情況,基於迭代計數的資料再利用控制電路180藉由斷言再利用致能187給記憶體存取控制器電路120而致使讀取資料175被再利用。此種再利用控制的方法,降低了資料衰退對於資料存取延遲及/或資料損耗的 衝擊。
在本發明的某些實施例中,再利用控制進一步被應用來縮短對於經常存取之資料組的存取延遲。在此情況,記憶體存取控制器電路120維護用於指示資料組被從快閃記憶格140存取之頻率的表。來自表的資訊被當成頻率指示器177提供給基於迭代計數的資料再利用控制電路180。此資訊可用來修改要與迭代計數179進行比較的臨限值。特別是,在頻率指示器超過臨限位準(即,指示讀取資料175係被經常存取的資料組)的情況,減小迭代計數179所要比較的臨限值。因此,對於經常被存取的資料組,被允許通過迭代資料處理電路170之迭代的個數被減少。此縮短了對於經常被存取之資料組的存取延遲,同時允許對於較少被存取之資料組較長的存取延遲。此種再利用控制的方法縮短了平均存取延遲。
現轉向圖2,顯示迭代資料處理電路200之實施,其可用於關於本發明的實施例。迭代資料處理電路200係用來取代圖1之迭代資料處理電路170,讀取資料107連接到記憶體資料205輸入,迭代計數179連接到迭代計數296,及讀取資料175連接到硬體決定輸出292。
迭代資料處理電路200接收記憶體資料205。軟資訊存取或產生電路214可操作來存取對應於記憶體資料205的軟資訊或產生對應於記憶體資料205的軟資訊。此軟資訊指示記憶體資料205之特定元素正確的機率。在某些情況中,此軟資訊係由固態記憶體裝置提供,做為軟資訊存 取或產生電路214的輸入(未顯示)。在其它情況中,軟資訊被產生。此軟資訊之產生,可使用習知技術中用來產生軟資訊的任何方法來完成。例如,軟資訊之產生,可用類似於Xia等人於2013年10月7日提出申請之No.14/047,423名稱為"Systems and Methods for Enhanced Data Recovery in a Solid State Memory System"的美國專利申請案中所揭示的方法來完成。前述申請案之全文併輸入本文供全方位參考。
軟資訊存取或產生電路214提供軟資訊與記憶體資料205之組合當成資料組225提供給中央記憶體電路250。一旦解碼器電路270可用,即從中央記憶體電路250存取先前儲存的資料組225做為解碼器輸入252。在本發明的某些實施例中,解碼器電路270係本項技術中所熟知的低密度同位檢查解碼器電路。根據本文所提供的揭示,本項技術中具有通常知識者將識得可用於與本發明各樣實施例相關的各種解碼器電路。
解碼器電路270對解碼器輸入252施加資料解碼演算法以產生經解碼的輸出271。每次施加資料解碼演算法時,解碼器電路270斷言迭代完成指示器273給迭代計數電路295。迭代計數電路295計數每一次被斷言的迭代完成指示器273,並提供用以指示通過解碼器電路270之迭代個數的迭代計數296。在經解碼的輸出271未能收歛的情況(即,經解碼的輸出271包括錯誤),藉由經解碼之輸出271的導引,對解碼器輸入252施加另一個資料解碼 演算法的迭代。此項處理被重複直到經解碼的輸出271收歛(即,無錯誤)或遇到逾時狀況。
另者,在經解碼之輸出271收歛的情況,其被當成經解碼的輸出272提供給硬決定緩衝器電路290。硬決定緩衝器電路290提供經解碼之輸出272的硬決定做為硬決定輸出292。在此接合點,迭代計數296指示通過解碼器電路270之迭代的總個數,其被用來修正記憶體資料205中的錯誤。
現轉向圖3a-3b,流程圖300、301顯示按照本發明之某些實施例用於基於迭代計數之資料再利用的方法。接下來的圖3a流程圖300,其決定是否接收到讀取請求(方塊305)。在未接收讀取請求的情況下(方塊305),其決定是否已接收到寫入請求(方塊395)。在接收到寫入請求的情況下(方塊395),所接收到的資料被格式化,並寫入到所接收之位址(寫入請求的一部分)所指示之快閃記憶體中的位置(方塊397),且程序回到方塊305。
另者,當接收到讀取存取時,其包括指示要被存取之資料之位置的位址。接著,從快閃記憶體之讀取請求所指示的位置處存取資料(方塊310)。其決定所擷取的資料是否無錯誤(方塊320)。在決定該資料無錯誤的情況下(方塊320),提供所擷取的資料當成讀取資料(方塊325),且迭代計數等於零(方塊330)。接著,程序回到方塊305。如以下關於圖3b-3c之討論,流程圖301、302揭示於任何時候提供讀取資料時所觸發之替代的平行 處理。
另一方面,在決定資料非無錯誤的情況(方塊320),對應於被存取之資料的軟資訊被存取或產生(方塊335)。此軟資訊指示被存取之資料之特定元素正確的機率。在某些情況中,此軟資訊係由被存取資料的固態記憶體裝置所提供。在其它情況,軟資訊被產生。此軟資訊之產生,可使用本項技術中用於產生軟資料之任何熟知的方法完成。例如,軟資訊之產生,可用類似於Xia等人於2013年10月7日提出申請之No.14/047,423名稱為"Systems and Methods for Enhanced Data Recovery in a Solid State Memory System"的美國專利申請案中所揭示的方法來完成。前述申請案之全文併輸入本文供全方位參考。
被存取的資料與對應的軟資訊被當成資料組儲存到中央記憶體(方塊340),且迭代計數被增加到1的值(方塊345)。其接著決定資料解碼器電路是否可用於處理(方塊350)。在資料解碼器電路可用於處理的情況(方塊350),從中央記憶體存取先前儲存的資料組做為解碼器的輸入(方塊355)。對被存取的資料組施加資料解碼演算法以產生經解碼的輸出(方塊360)。在可用的情況(即,用於第二及後續的迭代),先前經解碼的輸出被用來導引資料解碼演算法之應用。在本發明的某些實施例中,資料解碼演算法係本項技術中所熟知的低密度同位檢查演算法。根據本文所提供的揭示,本項技術中具有通常 知識者將識得可用於與本發明各樣實施例相關的各種資料解碼演算法。
其決定經解碼的輸出是否收歛(方塊365)。在決定經解碼的輸出收歛的情況中(方塊365),經解碼的輸出被提供做為讀取資料(方塊370),且現有的迭代計數被報告為迭代計數(方塊385)。接著,程序回到305。再次,如關於以下圖3b-3c之討論,流程圖301、302揭示於任何時候提供讀取資料時所觸發之替代的平行處理
另者,在其決定經解碼的輸出未能收歛的情況(方塊365)。其決定是否允許資料解碼演算法的另一次迭代(方塊375)。在某些情況中,資料解碼演算法之迭代的最大個數係為固定或可程式的。此為有效的逾時條件。在某些情況中,資料解碼演算法的最大許可迭代個數為100。根據本文所提供的揭示,本項技術中具有通常知識者將可理解,關於本發明之不同的實施例,也許可其它的迭代個數。在不允許另一次局部迭代的情況(方塊375),指示出錯誤(方塊380)並報告現有的迭代計數做為迭代計數(方塊385)。接著,程序回到305。另一方面,在允許另一次的資料解碼演算法迭代之情況(方塊375),迭代計數被增加(方塊390),並重複方塊360-375之程序。
現轉向圖3b,流程圖301顯示按照本發明之某些實施例,用於決定資料再利用的方法。在接下來的流程圖301中,其決定讀取資料是否已提供(方塊303)。如前 文之討論,流程圖300之方塊325、370提供讀取資料中的一部分。在已提供讀取資料的情況(方塊303),其決定該讀取資料的存取頻率是否超過臨限值A(方塊307)。存取頻率係指示被提供做為讀取資料的特定資料已從快閃記憶體存取了多少次。存取頻率係橫跨一既定時間周期來決定,例如,一天的時間周期。根據本文所提供的揭示,本項技術中具有通常知識者將可理解,可用各種時間周期來計算存取頻率,及/或用各種方法來計算存取頻率。在本發明的某些實施例中,臨限值A係固定值。在本發明的另些實施例中,臨限值A係使用者可程式的值。
在存取頻率超過臨限值A的情況(方塊307),其決定對應於所提供之讀取資料的迭代計數是否超過臨限值B(方塊309)。在未超過臨限值B之情況(方塊309),沒有資料再利用之動作,且程序回到方塊303。另者,在超過臨限值B之情況(方塊309),所提供的讀取資料被再利用(方塊311)。接著,程序回到方塊303。此再利用包括將所提供的讀取資料重新寫入到快閃記憶體中的新位置,或快閃記憶體中的相同位置。此操作用來再新了快閃記憶體中的資料,俾使得不允許因資料衰退而增加修正資料中之錯誤所需之資料解碼演算法的迭代個數。此用於再利用控制的方法減少了資料衰退對於資料存取延遲及/或資料喪失的衝擊。在本發明的某些實施例中,臨限值B係固定值。在本發明的另些實施例中,臨限值B係使用者可程式的值。
另者,在存取頻率不大於臨限值A的情況(方塊307),其決定迭代計數是否大於臨限值C(方塊313)。在迭代計數大於臨限值C的情況(方塊313),所提供的讀取資料被再利用(方塊311)。接著,程序回到方塊303。另者,在迭代計數不大於臨限值C的情況(方塊313),沒有資料再利用的動作,且程序回到方塊303。在本發明的某些實施例中,臨限值C係固定值,在本發明的另些實施例中,臨限值C係使用者可程式的值。
轉向圖3c,流程圖302顯示按照本發明某些實施例之用於決定資料再利用的另一方法。接下來的流程圖302,其決定讀取資料是否被提供(方塊304)。如以上之討論,流程圖300之方塊325、370提供讀取資料的一部分。在讀取資料已提供的情況(方塊304),其決定迭代計數是否大於臨限值A(方塊306)。在迭代計數大於臨限值A的情況(方塊306),所提供的讀取資料被再利用(方塊308)。接著,程序回到方塊304。此再利用包括將所提供的讀取資料重新寫入快閃記憶體中的新位置,或寫入快閃記憶體中的相同位置。此操作再新了快閃記憶體中之資料,以使得不允許因資料衰退而增加修正資料中之錯誤所需之資料解碼演算法的迭代個數。此用於再利用控制的方法減少了資料衰退對於資料存取延遲及/或資料喪失的衝擊。在本發明的某些實施例中,臨限值A係固定值。在本發明的另些實施例中,臨限值A係使用者可程式的值。另者,在迭代計數不大於臨限值A的情況(方塊 306),沒有資料再利用的動作,且程序回到方塊304。
須注意,以上申請案中所討論的各不同方塊可在積體電路中連同其它功能一起實施。這樣的積體電路可包括給定之方塊、系統或電路,或方塊、系統或電路之子集的所有功能。此外,方塊、系統或電路的單元可橫跨多個積體電路實施。此積體電路可以是習知技術中所熟知之任何類型積體電路,包括但不限於單石積體電路、倒裝晶片積體電路、多晶片模組積體電路、及/或混合信號積體電路。須注意,本文所討論之方塊、系統或電路的各種功能也可在軟體或韌體中實施。在某些這類情況中,整個系統、方塊或電路可使用它的軟體或韌體相等物來實施。在其它情況中,給定之系統、方塊或電路的一部分可在軟體或韌體中實施,而其它部分在硬體中實施。
總之,本發明提供用於資料處理之創新的系統、裝置、方法及配置。雖然以上已對本發明的一或多個實施例做了詳細的描述,但熟悉本項技術之人士應理解各種的替代、修改、及均等物不會違背本發明的精神。因此,不能拿以上的描述來限制本發明的範圍,本發明的範圍係由所附申請專利範圍來界定。

Claims (13)

  1. 一種資料處理系統,該系統包含:一記憶體裝置,其可操作來保存一資料組(data set);一資料解碼器電路,其可操作來對自該記憶體裝置存取之該資料組施加一資料解碼演算法(algorithm)之一或多個迭代(iterations),以產生一經解碼的輸出,並提供用以指示該資料解碼演算法施加於該資料組之迭代的個數(number)的一迭代計數(count);一記憶體存取電路,其可操作以計算對應於該資料組之存取的一頻率;及一再利用(recycle)控制電路,其包括一比較器電路,該比較器電路可操作以比較存取的該頻率與一存取頻率臨限值(threshold),且在判定存取的該頻率超過該存取頻率臨限值之後,該再利用控制電路修正一迭代臨限值;其中該比較器電路可操作比較該迭代計數與該經修正之迭代臨限值;及其中在判定該迭代計數超過該經修正之迭代臨限值之後,該再利用控制電路再利用對應於該資料組的讀取資料。
  2. 如申請專利範圍第1項之資料處理系統,其中,該資料解碼演算法係一低密度同位(parity)檢查解碼演算法。
  3. 如申請專利範圍第1項之資料處理系統,其中,該系統進一步包含:該記憶體存取電路可操作以從該記憶體裝置存取該資 料組;其中,該再利用係至少部分根據(based on)該迭代計數與存取的該頻率而被觸發。
  4. 如申請專利範圍第1項之資料處理系統,其中,該迭代臨限值、該經修正之迭代臨限值、及該存取頻率臨限值中之至少一者係使用者可程式的。
  5. 如申請專利範圍第1項之資料處理系統,其中,至少該資料解碼器電路及該再利用控制電路係結合(incorporated)在一積體電路內。
  6. 如申請專利範圍第1項之資料處理系統,其中,該資料處理系統係在一積體電路上實施。
  7. 如申請專利範圍第1項之資料處理系統,其中,該記憶體裝置係一快閃記憶體裝置。
  8. 如申請專利範圍第7項之資料處理系統,其中,該快閃記憶體裝置能夠在該快閃記憶體裝置之每一個記憶格(memory cell)中可保存多個資料位元(bits of data)。
  9. 一種在一記憶體裝置中用於資料再利用控制的方法,該方法包含:接收保存在一記憶體裝置中的一資料組;藉由一資料解碼器電路對該資料組施加一資料解碼演算法的至少一迭代,以產生一經解碼的輸出;計數施加於該資料組之該資料解碼演算法之迭代的個數,以產生一迭代計數;計算對應於該資料組之存取的一頻率; 在判定存取的該頻率超過一存取頻率臨限值之後,修正一迭代臨限值;比較該迭代計數與該經修正之迭代臨限值;及在判定該迭代計數超過該經修正之迭代臨限值之後,再利用對應於該資料組的讀取資料。
  10. 如申請專利範圍第9項之方法,其中,該資料解碼演算法係一低密度同位檢查解碼演算法。
  11. 如申請專利範圍第9項之方法,其中,該再利用係至少部分根據該迭代計數與存取的該頻率而被觸發。
  12. 如申請專利範圍第9項之方法,其中,該方法進一步包含:程式化該迭代臨限值、該經修正之迭代臨限值、及該存取頻率臨限值中之至少一者。
  13. 一種資料儲存裝置,該資料儲存裝置包含:一快閃記憶體裝置,其可操作來保存一資料組;一記憶體存取電路,其可操作來:從該記憶體裝置存取該資料組;以及計算對應於該資料組之存取的一頻率;一資料解碼器電路,其可操作來對自該記憶體裝置存取之該資料組施加一資料解碼演算法的一或多個迭代,以產生一經解碼的輸出,並提供用以指示該資料解碼演算法施加於該資料組之迭代的個數的一迭代計數;一再利用控制電路,其包括一比較器電路,該比較器電路可操作以比較存取的該頻率與一存取頻率臨限值,且 在判定存取的該頻率超過該存取頻率臨限值之後,該再利用控制電路修正一迭代臨限值;其中該比較器電路可操作比較該迭代計數與該經修正之迭代臨限值;及其中在判定該迭代計數超過該經修正之迭代臨限值之後,該再利用控制電路再利用對應於該資料組的讀取資料。
TW103111023A 2013-10-17 2014-03-25 在固態記憶體系統中基於延遲的資料再利用的系統及方法 TWI618078B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361892429P 2013-10-17 2013-10-17
US61/892,429 2013-10-17
US14/072,530 US9424179B2 (en) 2013-10-17 2013-11-05 Systems and methods for latency based data recycling in a solid state memory system
US14/072,530 2013-11-05

Publications (2)

Publication Number Publication Date
TW201517045A TW201517045A (zh) 2015-05-01
TWI618078B true TWI618078B (zh) 2018-03-11

Family

ID=52827218

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103111023A TWI618078B (zh) 2013-10-17 2014-03-25 在固態記憶體系統中基於延遲的資料再利用的系統及方法

Country Status (4)

Country Link
US (3) US9424179B2 (zh)
EP (1) EP2899890A1 (zh)
KR (1) KR102239237B1 (zh)
TW (1) TWI618078B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9201729B2 (en) 2013-10-21 2015-12-01 Seagate Technology, Llc Systems and methods for soft data utilization in a solid state memory system
US9378840B2 (en) 2013-10-28 2016-06-28 Seagate Technology Llc Systems and methods for sub-zero threshold characterization in a memory cell
US9276609B2 (en) 2013-11-16 2016-03-01 Seagate Technology Llc Systems and methods for soft decision generation in a solid state memory system
US9378810B2 (en) 2014-02-11 2016-06-28 Seagate Technology Llc Systems and methods for last written page handling in a memory device
US9378765B2 (en) 2014-04-03 2016-06-28 Seagate Technology Llc Systems and methods for differential message scaling in a decoding process
KR102306853B1 (ko) 2015-11-02 2021-10-01 삼성전자주식회사 호스트 장치가 스토리지 장치를 제어하는 방법 및 호스트 장치와 스토리지 장치를 포함하는 메모리 시스템
US10228870B2 (en) 2016-02-04 2019-03-12 Seagate Technology Llc Redundant write transfer detection
US10971241B2 (en) * 2017-01-30 2021-04-06 Toshiba Memory Corporation Performance based method and system for patrolling read disturb errors in a memory unit
CN109325949A (zh) * 2018-10-17 2019-02-12 合肥常青机械股份有限公司 一种汽车零件加工检测信息提取方法
CN112799973B (zh) * 2021-02-09 2023-05-02 群联电子股份有限公司 编码控制方法、存储器存储装置及存储器控制电路单元

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070070764A1 (en) * 2005-09-27 2007-03-29 Sanyo Electric Co., Ltd. Memory
US20080162791A1 (en) * 2006-08-05 2008-07-03 Eldredge Kenneth J Solid state storage element and method
US20090323412A1 (en) * 2008-06-30 2009-12-31 Nima Mokhlesi Read disturb mitigation in non-volatile memory
CN102246241A (zh) * 2008-12-18 2011-11-16 桑迪士克股份有限公司 非易失性存储器的数据刷新
WO2012042444A1 (en) * 2010-09-29 2012-04-05 International Business Machines Corporation Decoding in solid state memory devices
US20120284587A1 (en) * 2008-06-18 2012-11-08 Super Talent Electronics, Inc. Super-Endurance Solid-State Drive with Endurance Translation Layer (ETL) and Diversion of Temp Files for Reduced Flash Wear

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09146849A (ja) 1995-11-21 1997-06-06 Nec Corp 情報処理システム及びそのメモリ再構成方法
US6516425B1 (en) 1999-10-29 2003-02-04 Hewlett-Packard Co. Raid rebuild using most vulnerable data redundancy scheme first
US20050204187A1 (en) 2004-03-11 2005-09-15 Lee Charles C. System and method for managing blocks in flash memory
US20020091965A1 (en) 2000-12-22 2002-07-11 Mark Moshayedi System and method for early detection of impending failure of a data storage system
US6651032B2 (en) 2001-03-15 2003-11-18 Intel Corporation Setting data retention thresholds in charge-based memory
US6868022B2 (en) 2003-03-28 2005-03-15 Matrix Semiconductor, Inc. Redundant memory structure using bad bit pointers
US20040230862A1 (en) 2003-05-16 2004-11-18 Arif Merchant Redundant data assigment in a data storage system
US7237074B2 (en) * 2003-06-13 2007-06-26 Sandisk Corporation Tracking cells for a memory system
US7127549B2 (en) 2004-02-04 2006-10-24 Sandisk Corporation Disk acceleration using first and second storage devices
US7254692B1 (en) 2004-03-02 2007-08-07 Advanced Micro Devices, Inc. Testing for operating life of a memory device with address cycling using a gray code sequence
US7050940B2 (en) 2004-03-17 2006-05-23 International Business Machines Corporation Method and system for maintaining and examining timers for network connections
US7120051B2 (en) * 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
US7447944B2 (en) 2005-04-29 2008-11-04 Freescale Semiconductor, Inc. Predictive methods and apparatus for non-volatile memory
SG135056A1 (en) 2006-02-14 2007-09-28 Trek 2000 Int Ltd Data storage device using two types of storage medium
US7721146B2 (en) 2006-05-04 2010-05-18 Dell Products L.P. Method and system for bad block management in RAID arrays
US7793201B1 (en) 2006-05-11 2010-09-07 Seagate Technology Llc Bit error detector for iterative ECC decoder
US7778077B2 (en) 2006-05-15 2010-08-17 Sandisk Corporation Non-volatile memory system with end of life calculation
US7523013B2 (en) 2006-05-15 2009-04-21 Sandisk Corporation Methods of end of life calculation for non-volatile memories
JP2007310974A (ja) 2006-05-19 2007-11-29 Fujitsu Ltd 記憶装置および制御装置
JP4791912B2 (ja) 2006-08-31 2011-10-12 株式会社東芝 不揮発性半導体記憶装置及び不揮発性記憶システム
US7596656B2 (en) 2006-09-28 2009-09-29 Sandisk Corporation Memory cards with end of life recovery and resizing
US7356442B1 (en) 2006-10-05 2008-04-08 International Business Machines Corporation End of life prediction of flash memory
US7765426B2 (en) 2007-06-07 2010-07-27 Micron Technology, Inc. Emerging bad block detection
KR20090013394A (ko) 2007-08-01 2009-02-05 공윤옥 플래시메모리 기반의 솔리드스테이트디스크 복합 스토리지
US20090063895A1 (en) 2007-09-04 2009-03-05 Kurt Smith Scaleable and maintainable solid state drive
US8914804B2 (en) 2007-09-12 2014-12-16 Red Hat, Inc. Handling queues associated with web services of business processes
US8307268B2 (en) 2007-12-06 2012-11-06 Marvell World Trade Ltd. Iterative decoder systems and methods
US20090147698A1 (en) 2007-12-06 2009-06-11 Telefonaktiebolaget Lm Ericsson (Publ) Network automatic discovery method and system
US8347029B2 (en) 2007-12-28 2013-01-01 Intel Corporation Systems and methods for fast state modification of at least a portion of non-volatile memory
US7962792B2 (en) 2008-02-11 2011-06-14 Siliconsystems, Inc. Interface for enabling a host computer to retrieve device monitor data from a solid state storage subsystem
WO2009124320A1 (en) 2008-04-05 2009-10-08 Fusion Multisystems, Inc. Apparatus, system, and method for bad block remapping
ATE539403T1 (de) 2008-06-24 2012-01-15 Sandisk Il Ltd Verfahren und vorrichtung zur fehlerkorrektur nach der löschanzahl eines festkörperspeichers
US8010738B1 (en) 2008-06-27 2011-08-30 Emc Corporation Techniques for obtaining a specified lifetime for a data storage device
US8121818B2 (en) 2008-11-10 2012-02-21 Mitek Analytics Llc Method and system for diagnostics of apparatus
US8516343B2 (en) 2008-11-10 2013-08-20 Fusion-Io, Inc. Apparatus, system, and method for retiring storage regions
US20100174845A1 (en) 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US8151137B2 (en) 2009-05-28 2012-04-03 Lsi Corporation Systems and methods for governing the life cycle of a solid state drive
US8176367B2 (en) 2009-05-28 2012-05-08 Agere Systems Inc. Systems and methods for managing end of life in a solid state drive
US8261136B2 (en) * 2009-06-29 2012-09-04 Sandisk Technologies Inc. Method and device for selectively refreshing a region of a memory of a data storage device
US20120102261A1 (en) 2009-07-07 2012-04-26 Harley Burger Systems and Methods for Tiered Non-Volatile Storage
US8243536B2 (en) 2009-09-08 2012-08-14 Lsi Corporation Systems and methods for increasing bit density in a memory cell
US8560765B2 (en) 2009-09-08 2013-10-15 Lsi Corporation Systems and methods for variable level use of a multi-level flash memory
US8174912B2 (en) 2009-09-08 2012-05-08 Lsi Corporation Systems and methods for circular buffering control in a memory device
US20110060865A1 (en) 2009-09-08 2011-03-10 Lsi Corporation Systems and Methods for Flash Memory Utilization
US8499220B2 (en) 2009-09-08 2013-07-30 Lsi Corporation Systems and methods for re-designating memory regions as error code corrected memory regions
US20110060862A1 (en) 2009-09-08 2011-03-10 Lsi Corporation Systems and Methods for Switchable Memory Configuration
US8381077B2 (en) 2009-09-08 2013-02-19 Lsi Corporation Systems and methods for implementing error correction in relation to a flash memory
US8458416B2 (en) 2009-09-08 2013-06-04 Lsi Corporation Systems and methods for selecting bit per cell density of a memory cell based on data typing
US8289768B2 (en) 2010-01-22 2012-10-16 Lsi Corporation Systems and methods for extended life multi-bit memory cells
JP2012133642A (ja) 2010-12-22 2012-07-12 Sony Corp メモリ装置、メモリ制御方法、およびプログラム
KR101919990B1 (ko) * 2011-03-10 2018-11-19 삼성전자주식회사 데이터 처리 시스템 및 그것의 에러 정정 코드 처리 방법
US8832506B2 (en) 2012-01-20 2014-09-09 International Business Machines Corporation Bit error rate based wear leveling for solid state drive memory
CN103176752A (zh) 2012-07-02 2013-06-26 晶天电子(深圳)有限公司 带有耐用转换层及临时文件转移功能从而实现闪速存储器磨损降低的超耐用固态驱动器
US9235469B2 (en) 2013-05-22 2016-01-12 Seagate Technology Llc Systems and methods for inter-cell interference mitigation in a flash memory
TWI514214B (zh) 2013-06-13 2015-12-21 Himax Tech Ltd 觸控顯示面板及其驅動方法
US9164828B2 (en) 2013-09-26 2015-10-20 Seagate Technology Llc Systems and methods for enhanced data recovery in a solid state memory system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070070764A1 (en) * 2005-09-27 2007-03-29 Sanyo Electric Co., Ltd. Memory
US20080162791A1 (en) * 2006-08-05 2008-07-03 Eldredge Kenneth J Solid state storage element and method
US20120284587A1 (en) * 2008-06-18 2012-11-08 Super Talent Electronics, Inc. Super-Endurance Solid-State Drive with Endurance Translation Layer (ETL) and Diversion of Temp Files for Reduced Flash Wear
US20090323412A1 (en) * 2008-06-30 2009-12-31 Nima Mokhlesi Read disturb mitigation in non-volatile memory
CN102246241A (zh) * 2008-12-18 2011-11-16 桑迪士克股份有限公司 非易失性存储器的数据刷新
WO2012042444A1 (en) * 2010-09-29 2012-04-05 International Business Machines Corporation Decoding in solid state memory devices

Also Published As

Publication number Publication date
US20150113205A1 (en) 2015-04-23
KR102239237B1 (ko) 2021-04-09
US20160357485A1 (en) 2016-12-08
US10437513B2 (en) 2019-10-08
US20170322750A1 (en) 2017-11-09
EP2899890A1 (en) 2015-07-29
US9424179B2 (en) 2016-08-23
KR20150044795A (ko) 2015-04-27
US9740432B2 (en) 2017-08-22
TW201517045A (zh) 2015-05-01

Similar Documents

Publication Publication Date Title
TWI618078B (zh) 在固態記憶體系統中基於延遲的資料再利用的系統及方法
TWI631570B (zh) 錯誤檢查糾正解碼方法與裝置
US9268634B2 (en) Decoding method, memory storage device and memory controlling circuit unit
US9543983B2 (en) Decoding method, memory storage device and memory control circuit unit
TWI594256B (zh) 用來進行記憶體存取管理之方法以及記憶裝置及其控制器
US9583217B2 (en) Decoding method, memory storage device and memory control circuit unit
TWI541820B (zh) 解碼方法、記憶體控制電路單元及記憶體儲存裝置
US10177787B1 (en) Mitigation of error correction failure due to trapping sets
TWI509624B (zh) 快閃記憶體裝置、記憶體控制器及快閃記憶體的控制方法
US9384144B1 (en) Error detection using a logical address key
US10522234B2 (en) Bit tagging method, memory control circuit unit and memory storage device
TW201737261A (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US10193569B2 (en) Decoding method, memory storage device and memory control circuit unit
US10911068B2 (en) Error correction circuit and method of operating the same
JP2019054448A (ja) メモリシステム
TWI536749B (zh) 解碼方法、記憶體儲存裝置與記憶體控制電路單元
JP6430740B2 (ja) ソリッドステートメモリシステムにおけるレイテンシーベースのデータ再利用のシステム及び方法
US10931308B2 (en) Error correction circuit and method of operating the same
US11145372B2 (en) Decoding method, memory controlling circuit unit, and memory storage device
US10348337B2 (en) Data read method and memory storage device using the same
JP2010140132A (ja) メモリシステム及びメモリコントローラ

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees