Nothing Special   »   [go: up one dir, main page]

TWI512452B - 資料儲存系統 - Google Patents

資料儲存系統 Download PDF

Info

Publication number
TWI512452B
TWI512452B TW100139204A TW100139204A TWI512452B TW I512452 B TWI512452 B TW I512452B TW 100139204 A TW100139204 A TW 100139204A TW 100139204 A TW100139204 A TW 100139204A TW I512452 B TWI512452 B TW I512452B
Authority
TW
Taiwan
Prior art keywords
error correction
code
encoding
correction code
flash memory
Prior art date
Application number
TW100139204A
Other languages
English (en)
Other versions
TW201234170A (en
Inventor
Yan Li
Hao Zhong
Radoslav Danilak
Earl T Cohen
Original Assignee
Lsi Corp
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 Corp filed Critical Lsi Corp
Publication of TW201234170A publication Critical patent/TW201234170A/zh
Application granted granted Critical
Publication of TWI512452B publication Critical patent/TWI512452B/zh

Links

Classifications

    • 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
    • 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
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Description

資料儲存系統
本發明需要快閃記憶體儲存技術方面之進步以提供效能、效率及使用之效用方面的改良。
在隨附申請資料表、請求或傳送文件(若有的話,則在適合時)中作出針對本申請案之優先權權利主張。在本申請案之類型所准許的範圍內,本申請案出於所有目的以引用方式併入有以下申請案,所有該等申請案在進行本發明時係與本申請案共同擁有:
2010年10月27日申請、第一指定發明人為Yan Li且題為『用於以快閃記憶體為基礎之資料儲存之適應性錯誤校正碼技術(Adaptive ECC Techniques for Flash Memory Based Data Storage )』的美國臨時申請案(檔案號為SF-10-03及序號為61/407,178)。
除非明確識別為公開已知的或熟知的,否則本文中對技術及概念的提及(包括出於上下文、定義或比較目的)不應解釋為承認此等技術及概念係先前公開已知的或另外為先前技術之一部分。本文中所引用之所有參考(若有的話)(包括專利、專利申請案及公開案)出於所有目的以全文引用的方式被併入,無論是否被具體地併入。
本發明可以眾多方式來實施,包括實施為程序、製造物件、裝置、系統、物質組合及電腦可讀媒體(諸如,電腦可讀儲存媒體(例如,光學及/或磁性大容量儲存器件(諸如磁碟)或具有非揮發性儲存器(諸如快閃記憶體儲存器)之積體電路中的媒體),或電腦網路(其中經由光學或電子通信鏈路來發送程式指令))。在本說明書中,可將此等實施或本發明可採用之任何其他形式稱為技術。實施方式提供對本發明之一或多個實施例之闡述,該一或多個實施例賦能在上文所識別之領域中的效能、效率及使用之效用方面的改良。實施方式包括緒論以促進對實施方式之剩餘部分之更快速理解。緒論包括根據本文中所描述之概念之系統、方法、製造物件及電腦可讀媒體中之一或多者的實例實施例。如在結論中更詳細地論述,本發明涵蓋在所宣稱之申請專利範圍之範疇內的所有可能之修改及變化。
下文提供本發明之一或多個實施例之詳細說明以及說明本發明之所選細節的隨附諸圖。結合該等實施例而描述本發明。應將本文中之實施例理解為僅為例示性的,本發明明顯不限於本文中之該等實施例中之任一者或全部或明顯不受本文中之該等實施例中之任一者或全部的限制,且本發明涵蓋眾多替代例、修改及等效物。為避免闡述中之單調性,可應用多種字標籤(包括但不限於:第一、最後、某些、各種、另外、其他、特定、選擇、一些及顯著)來分離各組實施例;如本文中所使用,此等標籤明顯並不意謂傳達品質或任何形式之偏好或偏見,而是僅在該等分離之組之間方便地區分。所揭示之程序之一些操作的次序在本發明之範疇內係可更改的。在多個實施例用以描述程序、方法及/或程式指令特徵之變化的任何情況下,涵蓋根據預定之或經動態地判定之準則來執行對複數個操作模式(分別對應於多個實施例中之複數個實施例)中之一者的靜態及/或動態選擇的其他實施例。在以下描述中陳述眾多特定細節以提供對本發明之透徹理解。出於實例之目的提供該等細節且可在無一些或所有該等細節的情況下根據申請專利範圍來實踐本發明。出於清晰性之目的,未詳細描述在與本發明有關之技術領域中已知的技術材料,以使得不會不必要地使本發明模糊。
緒論
僅為了促進對實施方式之更快速理解而包括此緒論;本發明並不限於緒論(若有的話,則包括明確實例)中所呈現之概念,因為任何緒論之段落必定為完整主題之縮影且並不意謂為詳盡的或限制性的描述。舉例而言,以下的緒論提供在空間及組織方面僅限於某些實施例的概述資訊。存在貫穿說明書之其餘部分所論述之許多其他實施例,包括申請專利範圍最終所針對之實施例。
縮略詞
本文中別處的各種速記縮寫詞或縮略詞指代某些元件。以下為至少一些縮略詞之描述。
NAND快閃記憶體使用浮動閘極電晶體陣列來儲存資訊。在SLC技術中,每一位元單元(例如,浮動閘極電晶體)經賦能以儲存一個位元的資訊。在MLC技術中,每一位元單元經賦能以儲存多個位元的資訊。隨著製造技術(例如,CMOS技術)按比例縮小,每一浮動閘極儲存較少之電子。此外,隨著儲存容量及密度增加,每一位元單元儲存較多之位元。因此,儲存於位元單元中之值由較小之電壓範圍來表示。感測的不確定性及/或隨時間的過去所儲存電子之量的改變增加了不正確地儲存或讀取資料的機率。使用一或多種ECC技術賦能對否則會被破壞之資料的正確擷取。
一些SSD使用快閃記憶體來提供非揮發性儲存(例如,在不施加電力的情況下保留資訊)。一些SSD與磁性及/或光學非揮發性儲存器(諸如HDD、CD機及DVD機)所使用之外形尺寸、電介面及/或協定相容。在各種實施例中,SSD使用零個或零個以上之RS碼、零個或零個以上之BCH碼、零個或零個以上之維特比(Viterbi)或其他格狀碼及零個或零個以上之LDPC碼的各種組合。
原始BER之一實例為在無ECC益處的情況下自快閃記憶體讀取之資料的BER。若干因素促成原始BER(諸如寫入錯誤、保留錯誤及讀取干擾錯誤),且原始BER可隨時間的過去而改變。將資料儲存於快閃記憶體中為兩部分程序:首先抹除快閃記憶體之一區塊,接著寫入該區塊。兩部分程序為PE循環之一實例。在各種使用情形及/或實施例中,快閃記憶體之錯誤的所有或一或多個部分依快閃記憶體中之一特定區塊經歷了多少個PE循環而定。在一些使用情形及/或實施例中,當一特定區塊經PE循環(例如,被抹除且接著被寫入)時,該特定區塊之原始BER增加。
在一些方法中,貫穿快閃記憶體之使用壽命而使用固定ECC。舉例而言,自第一次操作快閃記憶體一直到最後一次操作快閃記憶體,使用單一ECC方案。該單一ECC方案經設計成貫穿快閃記憶體之生命週期而具有足以校正最壞可能之原始BER之錯誤校正能力(例如,經賦能以在快閃記憶體之晚期使用壽命期間校正)。該錯誤校正能力對在快閃記憶體之早期使用壽命及中間使用壽命期間校正由相對低之原始BER引起的錯誤來說綽綽有餘,因此減小有效儲存容量(因為專用於ECC之儲存容量比校正錯誤所需的儲存容量大)。
在各種實施例及/或使用情形中,配合快閃記憶體使用之適應性ECC技術賦能快閃記憶體使用壽命、可靠性、效能及/或儲存容量方面的改良。該等技術包括具有各種碼類型、碼率及/或各種碼長(提供不同錯誤校正能力)及錯誤統計收集/追蹤(諸如經由專用硬體邏輯塊)的一組ECC方案。該等技術進一步包括:根據該等ECC方案中之一或多者進行編碼/解碼;及至少部分地基於來自錯誤統計收集/追蹤之資訊(諸如經由自專用錯誤統計收集/追蹤硬體邏輯塊接收輸入的硬體邏輯適應性編碼解碼器)而在該等ECC方案中之各別一或多者之間動態地切換快閃記憶體之所有或任何部分的編碼/解碼。該等技術進一步包括隨時間的過去在各種操作模式中選擇性地操作快閃記憶體之一部分(例如,一頁或一區塊)(例如,作為MLC頁或SLC頁)。舉例而言,在快閃記憶體使用壽命之一早期部分期間使用較短長度之碼,且在使用壽命之較晚部分期間使用較長長度之碼。作為另一實例,在快閃記憶體之一頁之一操作週期期間,將該頁操作為MLC頁,且接著在一後續操作週期期間,將該頁操作為SLC頁。使用壽命或操作週期可根據(例如)施加電力之時間、程式化/抹除循環之數目、讀取循環之數目、所量測及/或所估計之BER、程式化時間、抹除時間、讀取時間、溫度及/或快閃記憶體之儲存單元之臨限電壓來量測。
實例實施例
作為實施方式之緒論的終結,以下為提供對根據本文中所描述之概念之多種實施例類型之額外描述的實例實施例之集合,其包括至少一些被明確列舉為「EC」(實例組合)之實例實施例;此等實例並不意謂為互斥性的、詳盡的或限制性的;且本發明並不限於此等實例實施例,而是涵蓋在所宣稱之申請專利範圍之範疇內的所有可能之修改及變化。
EC1)一種系統,其包含:一錯誤統計收集及追蹤硬體邏輯塊,其經賦能以判定對快閃記憶體之一部分之存取的原始位元錯誤率(BER);及一適應性編碼器硬體塊,其經賦能以根據複數個錯誤校正碼中之一所選錯誤校正碼進行編碼,且進一步經賦能以至少部分地基於該原始BER來動態地判定所選之錯誤校正碼。
EC2)如EC1之系統,其中根據該等錯誤校正碼中之一者進行編碼導致儲存於該部分中之錯誤校正位元的數目小於根據該等錯誤校正碼中之另一者進行編碼時的錯誤校正位元之數目。
EC3)如EC1之系統,其中根據該等錯誤校正碼中之一者進行編碼導致儲存於該部分中之錯誤校正位元的數目大於根據該等錯誤校正碼中之另一者進行編碼時的錯誤校正位元之數目。
EC4)如EC1之系統,其中當與該等錯誤校正碼中之第二錯誤校正碼相比,該所選之錯誤校正碼為該等錯誤校正碼中之第一錯誤校正碼時,由該適應性編碼器輸出相對較多之資料資訊及相對較少之錯誤校正資訊。
EC5)如EC4之系統,其中在所選之錯誤校正碼為第一錯誤校正碼時的資料資訊之量大於在所選之錯誤校正碼為第二錯誤校正碼時的資料資訊之量。
EC6)如EC4之系統,其中在所選之錯誤校正碼為第二錯誤校正碼時的資料資訊之量為2的冪。
EC7)如EC4之系統,其中在所選之錯誤校正碼為第二錯誤校正碼時的資料資訊之量為2的冪,且其中在所選之錯誤校正碼為第一錯誤校正碼時的資料資訊之量大於在所選之錯誤校正碼為第二錯誤校正碼時的資料資訊之量。
EC8)如EC1之系統,其進一步包含一適應性解碼器 該適應性解碼器經賦能以根據該等錯誤校正碼中之任一者進行解碼。
EC9)如EC1之系統,其中該等錯誤校正碼僅包含雷德-所羅門(RS)碼。
EC10)如EC1之系統,其中該等錯誤校正碼僅包含博斯-查德胡里-霍昆格姆(BCH)碼。
EC11)如EC1之系統,其中該等錯誤校正碼僅包含低密度同位檢查(LDPC)碼。
EC12)如EC1之系統,其中該等錯誤校正碼包含至少兩種類型之錯誤校正碼,該等類型之錯誤校正碼包含雷德-所羅門(RS)型碼、博斯-查德胡里-霍昆格姆(BCH)型碼及低密度同位檢查(LDPC)型碼。
EC13)如EC1之系統,其中該等錯誤校正碼中之至少兩者具有不同碼率。
EC14)如EC1之系統,其中該等錯誤校正碼中之至少兩者具有不同碼長。
EC15)如EC1之系統,其中該部分為快閃記憶體之一或多個區塊,該等區塊中之每一者為單獨可抹除的。
EC16)如EC1之系統,其中該部分為快閃記憶體之一或多個頁,該等頁中之每一者為單獨可寫入的。
EC17)如EC1之系統,其中錯誤統計收集及追蹤硬體邏輯塊進一步經賦能以判定對快閃記憶體之各別部分之存取的各別原始BER。
EC18)如EC1之系統,其中快閃記憶體包含一或多個快閃記憶體晶粒。
EC19)如EC1之系統,其中原始BER為所估計之原始BER。
EC20)如EC19之系統,其中所估計之原始BER係至少部分地藉由計數對該部分執行了多少個程式化/抹除循環而判定。
EC21)如EC19之系統,其中所估計之原始BER係至少部分地藉由計數對該部分執行了多少個讀取循環而判定。
EC22)如EC19之系統,其中所估計之原始BER係至少部分地藉由判定與該部分之至少一單元相關聯的臨限電壓而判定。
EC23)如EC19之系統,其中所估計之原始BER係至少部分地基於一或多個預定臨限值而判定。
EC24)如EC19之系統,其中所估計之原始BER係至少部分地基於一或多個統計模型而判定。
EC25)如EC1之系統,其中原始BER係所量測之原始BER。
EC26)如EC25之系統,其中所量測之原始BER係週期性地判定。
EC27)如EC25之系統,其中所量測之原始BER係至少部分地藉由將一預定型樣寫入至該部分且隨後讀取該部分而判定。
EC28)如EC25之系統,其中所量測之原始BER係至少部分地藉由觀測與該部分之至少一些讀取相關聯的BER而判定。
EC29)如EC25之系統,其中所量測之原始BER係至少部分地藉由比較來自快閃記憶體之原始讀取資料與該原始讀取資料之經錯誤校正之版本而判定。
EC30)如EC1之系統,其中錯誤統計收集及追蹤硬體邏輯塊係相異之硬體邏輯塊。
EC31)如EC1之系統,其中錯誤統計收集及追蹤硬體邏輯塊係專用之硬體邏輯塊。
EC32)如EC1之系統,其中錯誤統計收集及追蹤硬體邏輯塊係分散式硬體邏輯塊。
EC33)如EC1之系統,其中錯誤統計收集及追蹤硬體邏輯塊至少部分地實施於一適應性解碼器硬體邏輯塊中,該適應性解碼器硬體邏輯塊經賦能以根據錯誤校正碼中之任一者進行解碼。
EC34)如EC1之系統,其中錯誤統計收集及追蹤硬體邏輯塊至少部分地實施於一適應性解碼器硬體邏輯塊中,該適應性解碼器硬體邏輯塊經賦能以比較來自快閃記憶體之原始讀取資料與該原始讀取資料之經錯誤校正之版本以至少部分地判定原始BER。
EC35)如EC1之系統,其中錯誤統計收集及追蹤硬體邏輯塊至少部分地實施於一快閃記憶體介面硬體邏輯塊中,該快閃記憶體介面硬體邏輯塊與快閃記憶體相容且經賦能以計數對該部分執行了多少個程式化/抹除循環,且適應性編碼器進一步經賦能以至少部分地基於該計數來動態地判定所選之錯誤校正碼。
EC36)如EC1之系統,其中錯誤統計收集及追蹤硬體邏輯塊至少部分地實施於一快閃記憶體介面硬體邏輯塊中,該快閃記憶體介面硬體邏輯塊與快閃記憶體相容且經賦能以計數對該部分執行了多少個讀取循環,且適應性編碼器進一步經賦能以至少部分地基於該計數來動態地判定所選之錯誤校正碼。
EC37)如EC1之系統,其中錯誤統計收集及追蹤硬體邏輯塊至少部分地實施於一快閃記憶體介面硬體邏輯塊中,該快閃記憶體介面硬體邏輯塊與快閃記憶體相容且經賦能以判定與該部分之至少一單元相關聯的臨限電壓,且適應性編碼器進一步經賦能以至少部分地基於該臨限電壓來動態地判定所選之錯誤校正碼。
EC38)如EC1之系統,其中該部分包含複數個子部分,且適應性編碼器進一步經賦能以進行編碼,使得錯誤校正資訊可儲存至該等子部分中之一或多者且資料資訊可儲存至該等子部分中之僅一者。
EC39)如EC1之系統,其中硬體塊包含於一固態磁碟(SSD)控制器中。
EC40)如EC1之系統,其中硬體塊包含於一固態磁碟(SSD)中。
EC41)如EC1之系統,其中硬體塊包含於一非揮發性儲存組件控制器中。
EC42)如EC1之系統,其中硬體塊包含於一非揮發性儲存組件中。
EC43)如EC42之系統,其中非揮發性儲存組件包含以下中之一或多者:通用串列匯流排(USB)儲存組件、緊密快閃記憶體(CF)儲存組件、多媒體卡(MMC)儲存組件、安全數位(SD)儲存組件、記憶棒儲存組件及xD儲存組件。
EC44)一種系統,其包含:一錯誤統計收集及追蹤硬體邏輯塊,其經賦能以判定對快閃記憶體之一部分之存取的原始位元錯誤率(BER);及一適應性編碼解碼器,其包含一適應性編碼器及一適應性解碼器,該適應性編碼器經賦能以根據複數個錯誤校正碼中之第一所選錯誤校正碼進行編碼,該適應性解碼器經賦能以根據該等錯誤校正碼中之第二所選錯誤校正碼進行解碼,且該適應性編碼解碼器進一步包含一控制硬體邏輯塊,該控制硬體邏輯塊經賦能以至少部分地基於自錯誤統計收集及追蹤硬體邏輯塊所接收之資訊來判定該等錯誤校正碼中之第一所選錯誤校正碼。
EC45)如EC44之系統,其中適應性編碼解碼器進一步包含經賦能以描述該等錯誤校正碼中之每一者的一碼程式庫。
EC46)如EC44之系統,其中適應性編碼器為經賦能以根據該等錯誤校正碼中之任一者進行編碼的一通用編碼器。
EC47)如EC44之系統,其中適應性解碼器為經賦能以根據該等錯誤校正碼中之任一者進行解碼的一通用解碼器。
EC48)一種系統,其包含:一碼率選擇塊,其經賦能以判定與快閃記憶體之複數個部分中之每一者相關聯的各別碼率;一編碼器,其可根據各別經判定之碼率操作;一解碼器,其可根據各別經判定之碼率操作;及其中快閃記憶體之該等部分中之一特定部分被寫入有由編碼器根據該等各別經判定之碼率中之一特定碼率所編碼的資料,且隨後自該特定部分被讀取且由解碼器解碼。
EC49)如EC48之系統,其中碼率選擇塊包含硬體邏輯電路。
EC50)如EC48之系統,其中碼率選擇塊經賦能以至少部分地基於該等部分中之每一或多者的一或多個參數或該等參數中之一或多者之一或多個歷史來判定各別碼率,該等參數包含:所校正之錯誤之數目;所偵測之錯誤之數目;程式化/抹除循環之數目;讀取循環之數目;程式化時間;抹除時間;讀取時間;溫度;及臨限電壓。
系統及操作
圖1說明系統100之一實施例之所選細節,該系統100使用用於以快閃記憶體為基礎之資料儲存之適應性ECC技術。寫入儲存資料路徑110包括各種硬體塊:耦接至控制/介面130之通用編碼器120,控制/介面130又耦接至快閃記憶體單元140(例如,包含一或多個快閃記憶體晶粒)。讀取儲存資料路徑150包括各種硬體塊:快閃記憶體單元及耦接至通用解碼器160之控制/介面。碼程式庫170硬體塊耦接至通用編碼器硬體塊及通用解碼器硬體塊。錯誤統計收集/追蹤180硬體塊耦接至通用編碼器硬體塊、碼程式庫硬體塊、通用解碼器硬體塊及控制/介面硬體塊。
在操作中,由通用編碼器接收待寫入為儲存資料的「來自主機之使用者資料」且根據錯誤校正碼將其編碼。藉由來自碼程式庫之資訊來描述該錯誤校正碼,且部分地基於諸如由錯誤統計收集/追蹤塊所提供之資訊而選擇該錯誤校正碼。通用編碼器接著將資料資訊及錯誤校正資訊提供至控制/介面,該控制/介面將資訊寫入至快閃記憶體單元。
讀取儲存資料係藉由控制/介面自快閃記憶體單元之一或多個部分(例如,頁或區塊)讀取原始資訊而開始,從而將原始資訊提供至通用解碼器。通用解碼器接著根據錯誤校正碼使用原始資訊中所包括之錯誤校正資訊而將原始資訊(包括錯誤校正)解碼為資料資訊。藉由來自碼程式庫之資訊來描述該錯誤校正碼,且部分地基於諸如由錯誤統計收集/追蹤塊所提供之資訊及/或原始資訊之一或多個部分而選擇該錯誤校正碼。接著將資料資訊傳遞至主機。在各種替代性實施例中執行一或多個替代性處理排序。舉例而言,在一些實施例中,讀取儲存資料係藉由讀取碼程式庫、後續接著控制/介面讀取原始資訊而開始。
用於編碼(及解碼)之錯誤校正碼係選自一組錯誤校正碼。在各種實施例中,該組包括僅RS碼、僅BCH碼、僅格狀碼或僅LDPC碼。在各種實施例中,該組包括一種以上類型之碼,諸如RS碼、BCH碼、格狀碼及/或LDPC碼類型之各種組合,且該等碼類型中之每一者包括各別類型之一或多個特定碼。在各種實施例中,該組包括具有變化之碼率及/或長度的碼。在另外的實施例中,將一種碼類型(諸如BCH碼類型)之碼用於較高碼率之碼,且將另一種碼類型(諸如LDPC碼類型)之碼用於較低碼率之碼。
錯誤統計收集/追蹤硬體塊被實施為獨立功能性硬體塊,或者被實施為分散於一或多個硬體塊中之功能塊。舉例而言,錯誤統計收集/追蹤硬體塊被部分地實施於通用解碼器硬體塊中,且經賦能以藉由比較自快閃記憶體單元讀取之原始資訊與藉由解碼原始資訊所產生之經錯誤校正之資料資訊來計算所量測之原始BER。作為另一實例,錯誤統計收集/追蹤硬體塊被部分地實施於控制/介面硬體塊中,且經賦能以藉由計數PE循環及/或讀取循環之數目(例如,每儲存單元(諸如快閃記憶體儲存器之一頁或一塊))及將該數目用作預定統計模型(其又提供所估計之原始BER)之參數來計算所估計之原始BER。作為又一實例,錯誤統計收集/追蹤硬體塊被部分地實施於控制/介面硬體塊中且經賦能以藉由獲得用於自快閃記憶體儲存器之一部分(諸如快閃記憶體儲存器之一頁或一區塊)讀取之一或多個單元的一臨限電壓(或其代替物)及將該電壓用作預定統計模型(其又提供所估計之原始BER)之參數來計算所估計之原始BER。作為又一實例,錯誤統計收集/追蹤硬體塊經賦能以提供待寫入至快閃記憶體儲存器(諸如經由略過通用編碼器)之一或多個預定型樣,且經賦能以驗證自快閃記憶體儲存器傳回(諸如經由略過通用解碼器)之原始位元錯誤的數目而判定所量測之原始BER。預定型樣包括全0型樣、全1型樣或一或多個PRBS型樣。作為又一實例,錯誤統計收集/追蹤硬體塊經賦能以週期性地判定(諸如每100個PE循環一次)快閃記憶體儲存器之一或多個部分的當前原始(所量測)BER(例如,經由提供及驗證該等預定型樣中之一或多者)。作為另外的實例,以各種組合來實施上述實例中之任何一或多者。
在各種實施例中,完全或部分地經由一或多種軟體技術來實施由上述錯誤統計收集/追蹤硬體塊所執行的一或多個功能。舉例而言,可程式化硬體計時器將一中斷提供至處理器。作為回應,處理器執行一軟體中斷處置器常式,該軟體中斷處置器常式命令通用解碼器硬體塊之一部分將一或多個所量測之原始BER值提供至處理器。處理器將該等值累加為一移動平均數。該移動平均數被至少部分地用來判定所選之錯誤校正碼(諸如經由至經賦能以選擇錯誤校正碼之軟體功能的輸入,或者至經賦能以選擇錯誤校正碼之硬體單元的輸入)。作為另一實例,處理器執行一或多個軟體常式以計數每儲存單元之PE循環及/或讀取循環。該計數係經由常式自可由處理器定址之記憶體讀取一先前計數器值、使計數器值遞增及接著將已遞增之計數器值儲存回至記憶體。涵蓋具有以硬體及軟體之各種組合來執行之各種錯誤統計收集及追蹤功能的其他實施例。
在一些實施例中,錯誤統計收集/追蹤塊經賦能以隨時間的過去而保留資訊歷史且鑒於該歷史而計算歷史感知型原始BER。舉例而言,錯誤統計收集/追蹤塊經賦能以保留所量測(或所估計)之原始BER之歷史(諸如,每區塊或每頁對每存取或每操作時間)且根據該歷史判定歷史感知型所量測(或所估計)之原始BER。
動態地、根據各種準則、使用情形及實施例而判定經選擇用於編碼之錯誤校正碼。舉例而言,所量測(或所估計)之原始BER動態地影響哪一錯誤校正碼被選擇用於編碼。作為另一實例,歷史感知型所量測(或所估計)之原始BER影響哪一錯誤校正碼被選擇用於編碼。動態地判定經選擇用於解碼快閃記憶體儲存器之一特定部分的錯誤校正碼以匹配在最後寫入該特定部分時所使用之編碼。
各種實施例在無需明確計算(所量測或所計算)之原始BER之情況下執行對用於編碼之錯誤校正碼的選擇,而是直接基於一或多個參數或一或多個參數之歷史來動態地選擇錯誤校正碼。該等參數包括所校正及/或偵測之錯誤的數目、PE循環之數目、讀取循環之數目、程式化時間、抹除時間、讀取時間、溫度及臨限電壓。在各種實施例中,該等參數(及/或其歷史)係每快閃記憶體儲存器部分(諸如快閃記憶體儲存器之每頁或每區塊)。
在一些實施例中,一快閃記憶體(諸如,包括於快閃記憶體單元中)係以若干部分(諸如頁或區塊)組織而成,且該等部分中之每一者經賦能以儲存預定量之資訊(諸如2K或4K位元組之資訊)。資訊包括資料資訊及錯誤校正資訊。在一些實施例中,每一部分經賦能以儲存與錯誤校正資訊相同的特定數目個位元組,且在其他實施例中,一些部分經賦能以儲存不同數目個位元組的錯誤校正資訊。各種錯誤校正碼(諸如由碼程式庫描述)產生不同數目個位元組(或位元)的錯誤校正資訊。
舉例而言,經由第一錯誤校正碼(諸如在快閃記憶體之使用壽命中相對早期所使用)進行編碼與第二錯誤校正碼(諸如在使用壽命中較晚期所使用)相比而言產生相對較少位元組之錯誤校正資訊(例如,用於錯誤校正之冗餘資訊)。在一些實施例中,快閃記憶體(及/或其使用)經賦能以將足以用於經由第二錯誤校正碼進行編碼的錯誤校正資訊儲存於每一部分內,而使錯誤校正資訊儲存器在使用第一錯誤校正碼時未被使用。在其他實施例中,快閃記憶體(及/或其使用)經賦能以將足以用於經由第一錯誤校正碼進行編碼的錯誤校正資訊儲存於每一部分內,且不能儲存(於每一部分內)足以用於經由第二錯誤校正碼進行編碼的錯誤校正資訊。該等其他實施例中之一些實施例包括額外快閃記憶體儲存器(諸如快閃記憶體之專用於儲存額外錯誤校正資訊的區域),該額外快閃記憶體儲存器與每部分錯誤校正資訊儲存器相結合足以儲存經由第二錯誤校正碼所編碼的錯誤校正資訊。
在一些實施例中,將快閃記憶體操作為若干部分(諸如頁或區塊或其倍數),且將每一部分組織為一資料子部分及一各別相對應之錯誤校正子部分。快閃記憶體(及/或其使用)經賦能以根據複數個錯誤校正碼中之一經動態選擇之特定錯誤校正碼來編碼特定量之儲存資料,從而產生對應於該特定量之儲存資料的錯誤校正資訊。該儲存資料與該錯誤校正資訊相結合被儲存於該等資料子部分中之一特定資料子部分與該等錯誤校正子部分中之相對應之特定錯誤校正子部分的組合中。該等部分全部為相同大小,或者具有不同大小。
舉例而言,快閃記憶體(及/或其使用)經賦能以將錯誤校正資訊(足夠大以用於經由相對較小之錯誤校正碼進行編碼)完全儲存於錯誤校正子部分中,而使相對應之資料子部分全體可用於儲存儲存資料(自儲存資料產生錯誤校正資訊)。然而,錯誤校正子部分並非足夠大以儲存經由相對較大之錯誤校正碼所編碼之錯誤校正資訊。取而代之,資料儲存子部分之某一量被「借用」以用於儲存錯誤校正資訊之未裝在錯誤校正子部分中的剩餘部分,因此減少資料儲存子部分中可用於儲存儲存資料的空間(減小的程度為被借用的量)。因此,與在使用相對較小之錯誤校正碼時的儲存資料之量相比,在使用相對較大之錯誤校正碼時的儲存資料之量較小,因為相對較小之資料儲存子部分可用。因此,當使用相對較大之錯誤校正碼時,由快閃記憶體(及/或其使用)提供相對較小之總可用空間。
作為另一實例,快閃記憶體(及/或其使用)經賦能以將錯誤校正資訊(足夠大以用於經由相對較大之錯誤校正碼進行編碼)完全儲存於錯誤校正子部分中,而使相對應之資料子部分全體可用於儲存儲存資料(自儲存資料產生錯誤校正資訊)。錯誤校正子部分不僅僅足夠大以儲存經由相對較小之錯誤校正碼所編碼之錯誤校正資訊。錯誤校正子部分之某一量(至多為且包括在考慮經由相對較小之錯誤校正碼所編碼之錯誤校正資訊之後錯誤校正子部分中所剩餘之所有空間)被「借用」以用於儲存額外儲存資料。因此,與在使用相對較大之錯誤校正碼時的儲存資料之量相比,在使用相對較小之錯誤校正碼時的儲存資料之量較大,因為相對較大之資料儲存子部分可用。因此,當使用相對較小之錯誤校正碼時,由快閃記憶體(及/或其使用)提供相對較大之總可用空間。
在各種實施例及/或使用情形中,根據自資料子部分之上述借用(例如,如在根據「溢出」錯誤校正子部分之錯誤校正碼進行編碼時所需要的)來操作快閃記憶體之一些部分,而根據自錯誤校正子部分之上述借用(例如,如在根據在資料子部分中留下可用空間的錯誤校正碼進行編碼時係可能的)來操作快閃記憶體之其他部分。在各種實施例及/或使用情形中,藉由自資料或是錯誤校正子部分(例如,如取決於用於編碼之錯誤校正碼所需)的借用來操作快閃記憶體之一些部分。該等部分具有相同大小或各種大小,且該等部分經組織成具有資料(或錯誤校正)子部分之相同分配或具有變化之分配(例如,所有資料子部分具有特定大小,或所有資料子部分具有複數個大小中之任一者)。
在各種實施例中,基於原始BER及/或用以動態地選擇用於編碼資料資訊之錯誤校正碼的上述參數中的一或多者來改變快閃記憶體之一部分的使用模式。舉例而言,當原始BER超過臨限值時,快閃記憶體之先前被操作為MLC頁的一部分(諸如一頁)在其後被操作為SLC頁(諸如藉由將該頁操作為「僅下一」頁)。作為另一實例,在快閃記憶體之一部分之使用壽命的早期部分期間,將該部分操作為MLC部分,且在使用壽命之較晚部分期間,將該部分操作為SLC部分。當將該部分操作為SLC部分時(與MLC部分相比),可用以儲存資料的空間減少,但可用空間大於在該部分在使用壽命之較晚部分期間被標記為不可用的情況下的可用空間。
在各種實施例中,結合快閃記憶體部分操作模式之動態選擇來使用對用於編碼之錯誤校正碼之動態選擇。舉例而言,在快閃記憶體之一頁的初始操作週期期間,該頁被操作為MLC頁且用第一短碼長ECC將其編碼。在一後續操作週期期間,該頁仍被操作為MLC頁,但根據第一長碼長ECC將其編碼。在另一後續操作週期期間,該頁被操作為SLC頁且用第二短碼長ECC將其編碼。在再一後續操作週期期間,該頁仍被操作為SLC頁,但根據第二長碼長ECC將其編碼。可用於儲存資料之空間隨著操作週期的過去而減少(因為該頁係用第一短碼長ECC編碼,接著用第一長碼長ECC編碼,接著被操作為SLC頁且用第二短碼長ECC編碼,且接著用第二長碼長ECC編碼),但可用空間大於在該頁被標記為不可用的情況下的可用空間。
或者,當快閃記憶體之一頁之原始BER小於第一臨限值時,該頁被操作為MLC頁且用第一短碼長ECC將其編碼。若原始BER超過第一臨限值(但保持小於第二臨限值)/當原始BER超過第一臨限值(但保持小於第二臨限值)時,則該頁係用第一較長碼長ECC編碼(同時仍被操作為MLC頁)。若原始BER超過第二臨限值(但保持小於第三臨限值)/當原始BER超過第二臨限值(但保持小於第三臨限值)時,則該頁係用甚至更長碼長之ECC編碼。若原始BER超過第三臨限值(但保持小於第四臨限值)/當原始BER超過第三臨限值(但保持小於第四臨限值)時,則該頁被操作為SLC頁且係用第二短碼長ECC編碼。若原始BER超過第四臨限值/當原始BER超過第四臨限值時,則該頁繼續被操作為SLC頁且用第二更長碼長之ECC編碼。
在一些實施例中,在第一操作模式中操作一頁(諸如MLC頁)且動態地選擇(諸如根據上述參數中之任一者)用以編碼該頁之資料的錯誤校正碼。若根據動態地選擇之錯誤校正碼所使用的錯誤校正碼資訊超過臨限值,則在第二操作模式中操作該頁(諸如SLC頁)。
在各種實施例及/或使用情形中,在特定情形下,不管錯誤校正碼選擇如何,均將一頁操作為SLC頁。該等特定情形之實例包括該頁被用於可頻繁存取之資料、被頻繁寫入之資料及/或受益於較高輸送量之資料。
在各種實施例及/或使用情形中,快閃記憶體之若干部分(例如,頁、區塊或其倍數)在快閃記憶體之使用壽命中的較早期係用較短之錯誤校正碼來操作(與在使用壽命中之較晚期用較長之錯誤校正碼來操作相比)。因此,增加之有效量的快閃記憶體可用於使用者資料,且因此藉由有效的過度供應使快閃記憶體之使用壽命增加。舉例而言,快閃記憶體器件具有稍大於2之冪的頁大小(諸如8936(744+213 )個位元組)。與貫穿使用壽命而使用相同比例相比,在快閃記憶體器件使用壽命中之早期將經保留用於使用者資料的頁之比例變為大於2的冪或在使用壽命中之較晚期變為小於2的冪延長了使用壽命。
SSD控制器實施
圖2A說明一SSD之一實施例之所選細節,該SSD包括一SSD控制器,該SSD控制器使用用於以快閃記憶體為基礎之資料儲存之適應性ECC技術。SSD控制器200經由一或多個外部介面210以可通信方式耦接至主機(未說明)。根據各種實施例,外部介面210為以下中之一或多者:SATA介面;SAS介面;PCIe介面;光纖通道介面;乙太網路介面(諸如10千兆位元乙太網路);前述介面中之任一者之非標準版本;定製介面;或用以互連儲存器件及/或通信器件及/或計算器件之任何其他類型的介面。舉例而言,在一些實施例中,SSD控制器200包括SATA介面及PCIe介面。
SSD控制器200進一步經由一或多個器件介面290以可通信方式耦接至非揮發性記憶體299,該非揮發性記憶體299包括一或多個儲存器件(諸如快閃記憶體器件292)。根據各種實施例,器件介面290為以下中之一或多者:非同步介面;同步介面;DDR同步介面;ONFI相容介面,諸如ONFI 2.2相容介面;雙態觸發模式相容快閃記憶體介面;前述介面中之任一者的非標準版本;定製介面;或用以連接至儲存器件之任何其他類型的介面。
在一些實施例中,快閃記憶體器件292具有一或多個個別的快閃記憶體晶粒294。根據快閃記憶體器件292中之一特定快閃記憶體器件的類型,特定快閃記憶體器件292中之複數個快閃記憶體晶粒294視情況及/或選擇性地可並行存取。快閃記憶體器件292僅代表經賦能而以可通信方式耦接至SSD控制器200之一種類型的儲存器件。在各種實施例中,可使用任何類型之儲存器件,諸如SLC NAND快閃記憶體、MLC NAND快閃記憶體、反或(NOR)快閃記憶體、唯讀記憶體、靜態隨機存取記憶體、動態隨機存取記憶體、鐵磁記憶體、相變記憶體、跑道記憶體或任何其他類型之記憶體器件或儲存媒體。
根據各種實施例,器件介面290被組織為:每匯流排具有一或多個快閃記憶體器件292的一或多個匯流排;每匯流排具有一或多個快閃記憶體器件292的一或多個匯流排群組,其中一群組中之匯流排大體上被並行存取;或快閃記憶體器件292至器件介面290上的任何其他組織。
繼續在圖2A中,SSD控制器200具有一或多個模組,諸如主機介面211、資料處理221、緩衝器231、映射241、再循環器251、ECC 261、器件介面邏輯291及CPU 271。圖2A中所說明之特定模組及互連僅代表一實例,且想到了該等模組中之一些或全部模組以及未說明之額外模組的許多配置及互連。在第一實例中,在一些實施例中,存在兩個或兩個以上之主機介面211以提供雙埠。在第二實例中,在一些實施例中,資料處理221及/或ECC 261與緩衝器231組合。在第三實例中,在一些實施例中,主機介面211直接耦接至緩衝器231,且資料處理221視情況及/或選擇性地對緩衝器231中所儲存之資料進行操作。在第四實例中,在一些實施例中,器件介面邏輯291直接耦接至緩衝器231,且ECC 261視情況及/或選擇性地對緩衝器231中所儲存之資料進行操作。
主機介面211經由外部介面210來發送及接收命令及/或資料,且在一些實施例中經由標記追蹤213來追蹤個別命令之進展。舉例而言,該等命令包括一讀取命令,其規定待讀取之資料的位址(諸如LBA)及量(諸如LBA量子(例如,區段)之數目);作為回應,SSD提供讀取狀態及/或讀取資料。作為另一實例,該等命令包括一寫入命令,其規定待寫入之資料的位址(諸如LBA)及量(諸如LBA量子(例如,區段)之數目);作為回應,SSD提供寫入狀態及/或請求寫入資料且視情況隨後提供寫入狀態。作為又一實例,該等命令包括一解除分配命令,其規定不再需要分配之位址(諸如LBA);作為回應,SSD相應地修改映射且視情況提供解除分配狀態。作為又一實例,該等命令包括一超級電容器測試命令或一資料加固成功查詢;作為回應,SSD提供適當之狀態。在一些實施例中,主機介面211與SATA協定相容,且使用NCQ命令來使其能夠具有至多32個未決命令,每一未決命令具有一獨特標記(表示為0至31之數字)。在一些實施例中,標記追蹤213經賦能以使一用於經由外部介面210所接收之命令的外部標記與一用以在由SSD控制器200處理期間追蹤該命令的內部標記相關聯。
根據各種實施例,為以下中之一或多種情況:資料處理221視情況及/或選擇性地處理在緩衝器231與外部介面210之間發送之一些或所有資料;及資料處理221視情況及/或選擇性地處理緩衝器231中所儲存之資料。在一些實施例中,資料處理221使用一或多個引擎223來執行以下中之一或多者:格式化;重新格式化;譯碼;及任何其他資料處理及/或操縱任務。
緩衝器231儲存自器件介面290發送至外部介面210/自外部介面210發送至器件介面290的資料。在一些實施例中,緩衝器231另外儲存由SSD控制器200用來管理快閃記憶體器件292之系統資料(諸如一些或所有映射表)。在各種實施例中,緩衝器231具有以下中之一或多者:記憶體237,其用於臨時儲存資料;DMA 233,其用以控制資料至緩衝器231及/或自緩衝器231之移動;及其他資料移動及/或操縱功能。
根據各種實施例,為以下中之一或多種情況:ECC 261視情況及/或選擇性地處理在緩衝器231與器件介面290之間發送的一些或所有資料;及ECC 261視情況及/或選擇性地處理緩衝器231中所儲存之資料。
器件介面邏輯291經由器件介面290來控制快閃記憶體器件292。器件介面邏輯291經賦能以根據快閃記憶體器件292之協定將資料發送至快閃記憶體器件292/自快閃記憶體器件292發送資料。器件介面邏輯291包括排程293,其用以經由器件介面290來選擇性地序列控制快閃記憶體器件292。舉例而言,在一些實施例中,排程293經賦能以佇列處理對快閃記憶體器件292之操作,且當個別快閃記憶體器件292(或快閃記憶體晶粒294)可用時選擇性地將該等操作發送至快閃記憶體器件292中之個別快閃記憶體器件(或快閃記憶體晶粒294)。
映射241使用表243在外部介面210上所使用之資料定址與器件介面290上所使用之資料定址之間轉換,以將外部資料位址映射至非揮發性記憶體299中之位置。舉例而言,在一些實施例中,映射241經由表243所提供之映射而將外部介面210上所使用之LBA轉換為以一或多個快閃記憶體晶粒294為目標的區塊及/或頁位址。對於自驅動製造或解除分配以來從未被寫入的LBA而言,映射指向在LBA被讀取的情況下將傳回之預設值。舉例而言,當處理一解除分配命令時,該映射經修改以使得對應於經解除分配之LBA的條目指向預設值中之一者。在各種實施例中,存在複數個預設值,每一預設值具有相對應之指標。複數個預設值使得能夠將一些經解除分配之LBA(諸如在第一範圍中)讀取為一預設值,而將其他經解除分配之LBA(諸如在第二範圍中)讀取為另一預設值。在各種實施例中,藉由快閃記憶體、硬體、韌體、命令/基元引數/參數、可程式化暫存器或其各種組合來定義該等預設值。
在一些實施例中,再循環器251執行廢料收集。舉例而言,在一些實施例中,快閃記憶體器件292含有若干區塊,在可重寫該等區塊之前必須抹除該等區塊。再循環器251經賦能以判定(諸如藉由掃描由映射241所維持之映射)快閃記憶體器件292之哪些部分係在有效使用中(例如,經分配而非解除分配),且藉由抹除快閃記憶體器件292之未使用(例如,經解除分配)之部分而使其可用於寫入。在另外的實施例中,再循環器251經賦能以移動儲存於快閃記憶體器件292內之資料,從而使快閃記憶體器件292之較大相鄰部分可用於寫入。
CPU 271控制SSD控制器200之各個部分。CPU 271包括CPU核心281。根據各種實施例,CPU核心281為一或多個單核或多核處理器。在一些實施例中,CPU核心281中之個別處理器核心為多執行緒核心。CPU核心281包括指令及/或資料快取記憶體及/或記憶體。舉例而言,指令記憶體含有用以使CPU核心281能夠執行用以控制SSD控制器200之軟體(有時稱為韌體)的指令。在一些實施例中,由CPU核心281執行之韌體中之一些或全部係儲存於快閃記憶體器件292上。
在各種實施例中,CPU 271進一步包括:命令管理273,其用以在經由外部介面210所接收之命令正在進行時追蹤及控制該等命令;緩衝器管理275,其用以控制緩衝器231之分配及使用;轉譯管理277,其用以控制映射241;一致性管理279,其用以控制資料定址之一致性且避免諸如在外部資料存取與再循環資料存取之間的衝突;器件管理282,其用以控制器件介面邏輯291;及視情況其他管理單元。根據各種實施例,由CPU 271執行之管理功能均不是由硬體、由軟體(諸如執行於CPU核心281上或執行於經由外部介面210所連接之主機上的軟體)或其任何組合來控制及/或管理,或者該等管理功能中之任一者或全部係由硬體、由軟體(諸如執行於CPU核心281上或執行於經由外部介面210所連接之主機上的軟體)或其任何組合來控制及/或管理。
在一些實施例中,CPU 271經賦能以執行其他管理任務,諸如以下中之一或多者:收集及/或報告效能統計;實施SMART;控制電力定序,控制及/或監控及/或調節電力消耗;對電力故障作出回應;控制及/或監控及/或調節時脈速率;及其他管理任務。
各種實施例包括一計算主機快閃記憶體控制器,其類似於SSD控制器200且與各種計算主機之操作相容(諸如經由調適主機介面211及/或外部介面210)。各種計算主機包括以下中之一者或任一組合:電腦、工作站電腦、伺服器電腦、儲存伺服器、PC、膝上型電腦、筆記型電腦、迷你筆記型電腦、PDA、媒體播放器、媒體記錄器、數位相機、蜂巢式手機、無線電話手機及電子遊戲。
在各種實施例中,SSD控制器(或計算主機快閃記憶體控制器)之所有或任何部分被實施於單一IC、多晶粒IC之單一晶粒、多晶粒IC之複數個晶粒或複數個IC上。舉例而言,緩衝器231與SSD控制器200之其他元件係實施於相同晶粒上。作為另一實例,緩衝器231與SSD控制器200之其他元件係實施於不同晶粒上。
在各種實施例中,SSD控制器200之元件完全或部分地實施圖1之各種硬體塊(或由該等硬體塊執行之功能)。舉例而言,ECC 261實施由圖1之錯誤統計收集/追蹤硬體塊、通用編碼器硬體塊、通用解碼器硬體塊及/或碼程式庫硬體塊執行的一或多個功能。作為另一實例,器件介面邏輯291實施由圖1之控制/介面硬體塊執行之一或多個功能,且非揮發性記憶體299實施圖1之快閃記憶體單元。
圖2B說明一系統之另一實施例之所選細節,該系統包括圖2A之SSD。SSD 201包括經由器件介面290耦接至非揮發性記憶體299之SSD控制器200。SSD經由外部介面210耦接至主機202。在一些實施例中,SSD 201(或其變體)對應於耦接至作為主機202而操作之啟動器的SAS驅動器或SATA驅動器。
圖2C說明一系統之另一實施例之所選細節,該系統包括圖2A之SSD。如圖2B中一樣,SSD 201包括經由器件介面290耦接至非揮發性記憶體299的SSD控制器200。SSD經由外部介面210耦接至主機202,外部介面210又耦接至中間控制器203且接著經由中間介面204耦接至主機202。在各種實施例中,SSD控制器200經由其他控制器(諸如RAID控制器)之一或多個中間級而耦接至主機。在一些實施例中,SSD 201(或其變體)對應於SAS驅動器或SATA驅動器,且中間控制器203對應於擴展器,該擴展器又耦接至啟動器,或者中間控制器203對應於經由擴展器而間接地耦接至啟動器之橋接器。
在各種實施例中,SSD控制器及/或計算主機快閃記憶體控制器與一或多個非揮發性記憶體相結合而被實施為非揮發性儲存組件,諸如USB儲存組件、CF儲存組件、MMC儲存組件、SD儲存組件、記憶棒儲存組件及xD圖像卡儲存組件。
在各種實施例中,SSD控制器(或計算主機快閃記憶體控制器)之所有或任何部分或其功能被實施於主機(例如,圖2C之主機202)中,該控制器將與該主機耦接。在各種實施例中,SSD控制器(或計算主機快閃記憶體控制器)之所有或任何部分或其功能係經由硬體(例如,邏輯電路)、軟體(例如,驅動器程式)或其任何組合而實施。舉例而言,ECC單元(諸如類似於圖2A之ECC 261)之功能性或與ECC單元相關聯之功能性係部分地經由主機上之軟體且部分地經由SSD控制器中之硬體來實施。作為另一實例,再循環器單元(諸如類似於圖2A之再循環器251)之功能性或與再循環器單元相關聯之功能性係部分地經由主機上之軟體且部分地經由計算主機快閃記憶體控制器中之硬體來實施。
實例實施技術
在一些實施例中,藉由與由電腦系統進行之處理相容的規範來規定由實施用於以快閃記憶體為基礎之資料儲存之適應性ECC技術的系統(例如,圖1之硬體塊、計算主機快閃記憶體控制器,及/或SSD控制器(諸如圖2A之SSD控制器200))所執行之操作的全部或部分與以下各者之部分的各種組合:處理器、微處理器、晶載系統、特殊應用積體電路、硬體加速器或提供上述操作中之全部或部分的其他電路。該規範係根據各種描述,諸如硬體描述語言、電路描述、接線對照表描述、遮罩描述或佈局描述。實例描述包括:Verilog、VHDL、SPICE、SPICE變體(諸如PSpice)、IBIS、LEF、DEF、GDS-II、OASIS或其他描述。在各種實施例中,處理包括用以產生、驗證或規定適合於包括於一或多個積體電路上之邏輯及/或電路的解譯、編譯、模擬及合成之任何組合。根據各種實施例,每一積體電路可根據多種技術來設計及/或製造。該等技術包括可程式化技術(諸如場或遮罩可程式化閘陣列積體電路)、半定製技術(諸如全部或部分地以單元為基礎之積體電路)及完全定製技術(諸如實質上專門化的積體電路)、上述技術之任何組合,或與積體電路之設計及/或製造相容的任何其他技術。
在一些實施例中,藉由執行及/或解譯一或多個程式指令、藉由解譯及/或編譯一或多個原始及/或指令碼語言陳述式,或藉由執行二進位指令(該等二進位指令係由編譯、轉譯及/或解譯在程式化及/或指令碼語言陳述式中所表達之資訊而產生)來執行如由儲存有一指令集的電腦可讀媒體所描述的操作之全部或部分的各種組合。該等陳述式與任何標準程式化或指令碼語言(諸如C、C++、Fortran、Pascal、Ada、Java、VBscript及Shell)相容。程式指令、語言陳述式或二進位指令中之一或多者視情況儲存於一或多個電腦可讀儲存媒體元件上。在各種實施例中,將程式指令中之一些、全部或各個部分實現為一或多個函式、常式、副常式、直插式常式、程序、巨集或其部分。
結論
僅為了便於完成文字及圖式而在描述中作出某些選擇,且除非存在相反之指示,否則該等選擇本身不應解釋為傳達關於所描述之實施例之結構或操作的額外資訊。該等選擇之實例包括:用於圖編號之指定的特定組織或指派,及用以識別且參考該等實施例之特徵及元件的元件識別符(例如,標註或數字標識符)之特定組織或指派。
字「包括」具體地意欲解釋為描述開端式範疇的邏輯集合的抽象義,且除非後續明確接著字「在…內」,否則並不意謂傳達實體的含有。
儘管已為了描述及理解之清晰性而相當詳細地描述上述實施例,但本發明並不限於所提供之細節。存在本發明之許多實施例。所揭示之實施例為例示性的而非限制性的。
將理解,構造、配置及使用方面之許多變化有可能與描述一致,且係在所宣稱之專利之申請專利範圍的範疇內。舉例而言,互連及功能單元位元寬度、時脈速度及所使用之技術的類型根據各種實施例在每一組件塊中係可變的。被給予互連及邏輯之名稱僅為例示性的,且不應解釋為限制所描述之概念。流程圖及流程圖程序、動作及功能元件的次序及配置根據各種實施例係可變的。又,除非具體陳述為相反,否則所規定之值範圍、所使用之最大值及最小值或其他特定規範(諸如快閃記憶體技術類型;及暫存器及緩衝器中之條目或級的數目)僅為所描述之實施例之所規定之值範圍、所使用之最大值及最小值或其他特定規範,預期其將追蹤實施技術之改良及改變,且不應解釋為限制。
可使用此項技術中已知之功能上等效的技術,以替代所描述之用以實施各種組件、子系統、操作、函式、常式、副常式、直插式常式、程序、巨集或其部分的技術。亦應理解,實施例之許多功能性態樣可選擇性地實現於硬體(亦即,通常為專用電路)或是軟體(亦即,經由某種方式之經程式化控制器或處理器)中,其隨依實施例而定之設計約束及更快速處理(促進先前在硬體中之功能遷移至軟體中)及更高整合密度(促進先前在軟體中之功能遷移至硬體中)的技術趨勢而變。各種實施例中之特定變化包括(但不限於):分割中之差異;不同之外形尺寸及組態;不同作業系統及其他系統軟體之使用;不同介面標準、網路協定或通信鏈路之使用;及在根據一特定應用之獨特工程及商務約束在實施本文中所描述之概念時將預期到的其他變化。
已在細節及環境上下文完全超出最小限度地實施所描述之實施例之許多態樣所需的細節及環境上下文的情況下描述該等實施例。一般熟習此項技術者將認識到,在不更改剩餘元件之間的基本協作的情況下,一些實施例省略了所揭示之組件或特徵。因此應理解,不需要大部分所揭示細節來實施所描述之實施例之各種態樣。在剩餘元件可與先前技術區分開的範圍內,所省略之組件及特徵並不限制本文中所描述之概念。
設計方面之所有此等變化在由所描述之實施例傳達的教示內為非實質改變。亦應理解,本文中所描述之實施例廣泛適用於其他計算及網路連接應用,且並不限於所描述之實施例之特定應用或業界。本發明因此將解釋為包括涵蓋於所宣稱之專利之申請專利範圍的範疇內的所有可能之修改及變化。
100...系統
110...寫入儲存資料路徑
120...通用編碼器
130...控制器/介面
140...快閃記憶體單元
150...讀取儲存資料路徑
160...通用解碼器
170...碼程式庫
180...錯誤統計收集/追蹤
200...SSD控制器
201...SSD
202...主機
203...中間控制器
204...中間介面
210...外部介面
211...主機介面
213...標記追蹤
221...資料處理
223...引擎
231...緩衝器
233...DMA
237...記憶體
241...映射
243...表
251...再循環器
261...ECC
271...CPU
273...命令管理
275...緩衝器管理
277...轉譯管理
279...一致性管理
281...CPU核心
282...器件管理
290...器件介面
291...器件介面邏輯
292...快閃記憶體器件
293...排程
294...快閃記憶體晶粒
299...非揮發性記憶體
圖1說明一系統之一實施例之所選細節,該系統使用用於以快閃記憶體為基礎之資料儲存之適應性ECC技術。
圖2A說明一SSD之一實施例之所選細節,該SSD包括一SSD控制器,該SSD控制器使用用於以快閃記憶體為基礎之資料儲存之適應性ECC技術。
圖2B說明一系統之一實施例之所選細節,該系統包括圖2A之SSD。
圖2C說明一系統之另一實施例之所選細節,該系統包括圖2A之SSD。
100...系統
110...寫入儲存資料路徑
120...通用編碼器
130...控制器/介面
140...快閃記憶體單元
150...讀取儲存資料路徑
160...通用解碼器
170...碼程式庫
180...錯誤統計收集/追蹤

Claims (19)

  1. 一種資料儲存系統,其包含:用於錯誤統計收集及追蹤之構件,其經賦能以動態地判定對一快閃記憶體之一部分之存取的一原始位元錯誤率(BER);及用於適應性編碼之構件,其經賦能以根據複數個錯誤校正碼中之一經動態地選擇之錯誤校正碼進行編碼,且進一步經賦能以至少部分地基於該原始BER來動態地判定該經動態地選擇之錯誤校正碼。
  2. 如請求項1之系統,其中根據該等錯誤校正碼中之一第一錯誤校正碼進行編碼導致儲存於該部分中之錯誤校正位元之一數目小於當根據該等錯誤校正碼中之一第二錯誤校正碼進行編碼時的錯誤校正位元之一數目。
  3. 如請求項2之系統,其中當根據該第一錯誤校正碼進行編碼時,被用作使用者資料之該部分之位元的一數目增加,增加的程度至多為由該第二錯誤校正碼使用之錯誤校正位元之該數目減去由該第一錯誤校正碼使用之錯誤校正位元之該數目之間的一差異。
  4. 如請求項2之系統,其中當根據該第二錯誤校正碼進行編碼時,被用作使用者資料之該部分之位元的一數目減小,減小的程度至多為由該第二錯誤校正碼使用之錯誤校正位元之該數目減去由該第一錯誤校正碼使用之錯誤校正位元之該數目之間的一差異。
  5. 如請求項2之系統,其中該用於適應性編碼之構件進一 步經賦能以在該部分之一使用壽命之一第一部分期間選擇該第一錯誤校正碼且在該使用壽命之一第二部分期間選擇該第二錯誤校正碼;且該第二部分係在該第一部分之後。
  6. 如請求項2之系統,其中該用於錯誤統計收集及追蹤之構件及該用於適應性編碼之構件中的一或多者係至少部分地經由硬體邏輯電路及/或一或多個軟體常式來實施。
  7. 一種資料儲存系統,其包含:用於錯誤統計收集及追蹤之構件,其經賦能以動態地判定對一快閃記憶體之一部分之存取的一原始位元錯誤率(BER);及用於適應性編碼/解碼之構件,其包含用於適應性編碼之構件及用於適應性解碼之構件,該用於適應性編碼之構件經賦能以根據複數個錯誤校正碼中之一第一所選錯誤校正碼進行編碼,該用於適應性解碼之構件經賦能以根據該等錯誤校正碼中之一第二所選錯誤校正碼進行解碼,且該用於適應性編碼/解碼之構件進一步包含用於控制之構件,該用於控制之構件經賦能以至少部分地基於自該用於錯誤統計收集及追蹤之構件所接收之資訊來判定該第一所選錯誤校正碼。
  8. 如請求項7之系統,其中該用於適應性編碼之構件為經賦能以根據該等錯誤校正碼中之任一者進行編碼的一用於通用編碼之構件。
  9. 如請求項7之系統,其中該用於適應性解碼之構件為經 賦能以根據該等錯誤校正碼中之任一者進行解碼的一用於通用解碼之構件。
  10. 如請求項7之系統,其中根據該第一所選錯誤校正碼進行編碼導致儲存於該部分中之錯誤校正位元之一數目小於當根據該第二所選錯誤校正碼進行編碼時的錯誤校正位元之一數目。
  11. 如請求項10之系統,其中當根據該第一所選錯誤校正碼進行編碼時,被用作使用者資料之該部分之位元的一數目增加,增加的程度至多為在根據該第二所選錯誤校正碼進行編碼時所使用的錯誤校正位元之該數目減去在根據該第一所選錯誤校正碼進行編碼時所使用的錯誤校正位元之該數目之間的一差異。
  12. 如請求項10之系統,其中當根據該第二所選錯誤校正碼進行編碼時,被用作使用者資料之該部分之位元的一數目減小,減小的程度至多為在根據該第二所選錯誤校正碼進行編碼時所使用的錯誤校正位元之該數目減去在根據該第一所選錯誤校正碼進行編碼時所使用的錯誤校正位元之該數目之間的一差異。
  13. 如請求項10之系統,其中該用於適應性編碼之構件進一步經賦能以在該部分之一使用壽命之一第一部分期間選擇該第一所選錯誤校正碼且在該使用壽命之一第二部分期間選擇該第二所選錯誤校正碼;且該第二部分係在該第一部分之後。
  14. 如請求項7之系統,其中該用於錯誤統計收集及追蹤之 構件及該用於適應性編碼/解碼之構件中的一或多者係至少部分地經由硬體邏輯電路及/或一或多個軟體常式來實施。
  15. 一種資料儲存系統,其包含:用於動態碼率選擇之構件,其經賦能以動態地判定與一快閃記憶體之複數個部分中之每一者相關聯的一各別碼率;用於編碼之構件,其可根據該等各別經判定之碼率操作;用於解碼之構件,其可根據該等各別經判定之碼率操作;及其中該複數個部分中之一特定部分被寫入有由該用於編碼之構件根據該等各別經判定之碼率中之一特定碼率所編碼的資料,且隨後自該特定部分讀取且由該用於解碼之構件解碼。
  16. 如請求項15之系統,其中該用於動態碼率選擇之構件經賦能以至少部分地基於每該等部分中之一或多者的一或多個參數或該等參數中之一或多者的一或多個歷史來動態地判定該各別碼率,該等參數包含:所校正之錯誤之一數目;所偵測之錯誤之一數目;程式化/抹除循環之一數目;讀取循環之一數目;一程式化時間; 一抹除時間;一讀取時間;一溫度;及一臨限電壓。
  17. 如請求項15之系統,其中該動態判定包含對一相對較低之碼率在該等部分中之一第一部分之一使用壽命中的相對早期將與該第一部分相關聯的一判定,及對一相對較高之碼率在該使用壽命中之相對晚期將與該第一部分相關聯的一判定。
  18. 如請求項17之系統,其中當根據該相對較低之碼率進行編碼時,被用作使用者資料的該第一部分之位元之一數目大於當根據該相對較高之碼率進行編碼時的位元之一數目。
  19. 如請求項15之系統,其中該用於動態碼率選擇之構件、該用於編碼之構件及該用於解碼之構件中的一或多者係至少部分地經由硬體邏輯電路及/或一或多個軟體常式來實施。
TW100139204A 2010-10-27 2011-10-27 資料儲存系統 TWI512452B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US40717810P 2010-10-27 2010-10-27

Publications (2)

Publication Number Publication Date
TW201234170A TW201234170A (en) 2012-08-16
TWI512452B true TWI512452B (zh) 2015-12-11

Family

ID=45994376

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100139204A TWI512452B (zh) 2010-10-27 2011-10-27 資料儲存系統

Country Status (7)

Country Link
US (2) US20140136927A1 (zh)
EP (1) EP2633409A4 (zh)
JP (1) JP2013542533A (zh)
KR (1) KR101606718B1 (zh)
CN (1) CN103329103B (zh)
TW (1) TWI512452B (zh)
WO (1) WO2012058328A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI500110B (zh) * 2009-01-23 2015-09-11 Axcelis Tech Inc 不冷凝保溫夾頭
TWI723515B (zh) * 2019-08-29 2021-04-01 華邦電子股份有限公司 記憶體裝置及其資料存取方法
US11088711B2 (en) 2019-07-08 2021-08-10 Winbond Electronics Corp. Memory apparatus and data accessing method thereof

Families Citing this family (193)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7978516B2 (en) 2007-12-27 2011-07-12 Pliant Technology, Inc. Flash memory controller having reduced pinout
WO2011080768A1 (en) * 2009-12-29 2011-07-07 Ferdinando Bedeschi Memory devices comprising partitions with particular ecc attributes
WO2011113034A2 (en) 2010-03-12 2011-09-15 Sandforce, Inc. Ldpc erasure decoding for flash memories
EP2646922A4 (en) 2010-12-01 2015-11-25 Lsi Corp DYNAMIC MANAGEMENT OF HIGHER LEVEL REDUNDANCY MODE WITH INDEPENDENT SILICON ELEMENTS
JP5720210B2 (ja) 2010-12-02 2015-05-20 富士通株式会社 アクセス制御装置、誤り訂正制御方法およびストレージ装置
US8719663B2 (en) 2010-12-12 2014-05-06 Lsi Corporation Cross-decoding for non-volatile storage
KR101454807B1 (ko) 2011-01-18 2014-11-04 엘에스아이 코포레이션 상위-레벨 리던던시 정보 계산
US9130596B2 (en) * 2011-06-29 2015-09-08 Seagate Technology Llc Multiuse data channel
US9189329B1 (en) 2011-10-13 2015-11-17 Marvell International Ltd. Generating error correcting code (ECC) data using an ECC corresponding to an identified ECC protection level
US8938658B2 (en) 2011-11-07 2015-01-20 Sandisk Enterprise Ip Llc Statistical read comparison signal generation for memory systems
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US9048876B2 (en) 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction
US9183085B1 (en) 2012-05-22 2015-11-10 Pmc-Sierra, Inc. Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency
US9176812B1 (en) 2012-05-22 2015-11-03 Pmc-Sierra, Inc. Systems and methods for storing data in page stripes of a flash drive
US8856431B2 (en) 2012-08-02 2014-10-07 Lsi Corporation Mixed granularity higher-level redundancy for non-volatile memory
JP2014035673A (ja) * 2012-08-09 2014-02-24 Renesas Electronics Corp 半導体記憶装置及び方法
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US8972826B2 (en) * 2012-10-24 2015-03-03 Western Digital Technologies, Inc. Adaptive error correction codes for data storage systems
WO2014070200A1 (en) 2012-11-02 2014-05-08 Hewlett-Packard Development Company, L.P. Selective error correcting code and memory access granularity switching
US9021339B2 (en) 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
US9059736B2 (en) 2012-12-03 2015-06-16 Western Digital Technologies, Inc. Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme
US9257203B2 (en) 2012-12-06 2016-02-09 Micron Technology, Inc. Setting a default read signal based on error correction
US9214963B1 (en) 2012-12-21 2015-12-15 Western Digital Technologies, Inc. Method and system for monitoring data channel to enable use of dynamically adjustable LDPC coding parameters in a data storage system
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
US9208018B1 (en) * 2013-03-15 2015-12-08 Pmc-Sierra, Inc. Systems and methods for reclaiming memory for solid-state memory
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
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
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
KR102102171B1 (ko) * 2013-04-05 2020-05-29 삼성전자 주식회사 멀티 레벨 셀 메모리 시스템
CN103269230B (zh) * 2013-05-28 2017-02-22 中国科学院自动化研究所 一种自适应调整纠错码的容错系统及方法
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9152488B2 (en) * 2013-06-25 2015-10-06 Sandisk Technologies Inc. Storage module and low-complexity methods for assessing the health of a flash memory device
CN105340017A (zh) * 2013-07-09 2016-02-17 惠普发展公司,有限责任合伙企业 对包括非兼容性存储器技术或与其接合的存储器模块的写入流控制
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
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
US20150058697A1 (en) * 2013-08-22 2015-02-26 Kabushiki Kaisha Toshiba Storage device, controller and memory controlling method
US9361221B1 (en) 2013-08-26 2016-06-07 Sandisk Technologies Inc. Write amplification reduction through reliable writes during garbage collection
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
JPWO2015029230A1 (ja) * 2013-08-30 2017-03-02 株式会社日立製作所 記憶装置及びデータ制御方法
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
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
US9280419B2 (en) 2013-12-16 2016-03-08 International Business Machines Corporation Dynamic adjustment of data protection schemes in flash storage systems based on temperature, power off duration and flash age
US9645924B2 (en) * 2013-12-16 2017-05-09 International Business Machines Corporation Garbage collection scaling
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9417960B2 (en) * 2013-12-20 2016-08-16 Seagate Technology Llc Preventing programming errors from occurring when programming flash memory cells
US8874835B1 (en) 2014-01-16 2014-10-28 Pure Storage, Inc. Data placement based on data properties in a tiered storage device system
JP2015138498A (ja) * 2014-01-24 2015-07-30 三菱電機株式会社 フラッシュメモリの誤り訂正符号化装置および方法
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
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
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a 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
US9419655B2 (en) * 2014-04-04 2016-08-16 Seagate Technology Llc Error correction code (ECC) selection using probability density functions of error correction capability in storage controllers with multiple error correction codes
TWI545581B (zh) * 2014-04-15 2016-08-11 群聯電子股份有限公司 資料寫入方法、記憶體儲存裝置及記憶體控制電路單元
CN105005450B (zh) * 2014-04-25 2018-11-02 群联电子股份有限公司 数据写入方法、存储器存储装置及存储器控制电路单元
US9244764B2 (en) * 2014-05-08 2016-01-26 Sandisk Technologies Inc. Error correcting code techniques for a memory having a three-dimensional memory configuration
US9257186B2 (en) 2014-05-08 2016-02-09 Sandisk Technologies Inc. Memory access techniques for a memory having a three-dimensional memory configuration
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
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
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
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
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
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
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
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory 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
US9645749B2 (en) 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US10116336B2 (en) 2014-06-13 2018-10-30 Sandisk Technologies Llc Error correcting code adjustment for a data storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US10983859B2 (en) * 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
TWI550615B (zh) * 2014-08-28 2016-09-21 群聯電子股份有限公司 資料存取方法、記憶體儲存裝置及記憶體控制電路單元
GB2529669B8 (en) 2014-08-28 2017-03-15 Ibm Storage system
GB2529670A (en) * 2014-08-28 2016-03-02 Ibm Storage system
US9582203B2 (en) * 2014-09-02 2017-02-28 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by reducing a range of logical addresses
US9582202B2 (en) 2014-09-02 2017-02-28 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by moving data
US9582220B2 (en) * 2014-09-02 2017-02-28 Sandisk Technologies Llc Notification of trigger condition to reduce declared capacity of a storage device in a multi-storage-device storage system
US9582193B2 (en) * 2014-09-02 2017-02-28 Sandisk Technologies Llc Triggering a process to reduce declared capacity of a storage device in a multi-storage-device storage system
US9524112B2 (en) 2014-09-02 2016-12-20 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by trimming
US9665311B2 (en) 2014-09-02 2017-05-30 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by making specific logical addresses unavailable
US9652153B2 (en) 2014-09-02 2017-05-16 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by reducing a count of logical addresses
US9563370B2 (en) 2014-09-02 2017-02-07 Sandisk Technologies Llc Triggering a process to reduce declared capacity of a storage device
US9552166B2 (en) 2014-09-02 2017-01-24 Sandisk Technologies Llc. Process and apparatus to reduce declared capacity of a storage device by deleting data
US9519427B2 (en) 2014-09-02 2016-12-13 Sandisk Technologies Llc Triggering, at a host system, a process to reduce declared capacity of a storage device
US9563362B2 (en) 2014-09-02 2017-02-07 Sandisk Technologies Llc Host system and process to reduce declared capacity of a storage device by trimming
US9158681B1 (en) 2014-09-02 2015-10-13 Sandisk Technologies Inc. Process and apparatus to reduce declared capacity of a storage device by conditionally trimming
US9524105B2 (en) 2014-09-02 2016-12-20 Sandisk Technologies Llc Process and apparatus to reduce declared capacity of a storage device by altering an encoding format
US9582212B2 (en) 2014-09-02 2017-02-28 Sandisk Technologies Llc Notification of trigger condition to reduce declared capacity of a storage device
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US9690655B2 (en) * 2014-09-30 2017-06-27 EMC IP Holding Company LLC Method and system for improving flash storage utilization by predicting bad m-pages
US10365859B2 (en) * 2014-10-21 2019-07-30 International Business Machines Corporation Storage array management employing a merged background management process
CN105528178B (zh) * 2014-10-21 2018-09-21 华为技术有限公司 数据存储方法及固态硬盘
JP6486647B2 (ja) * 2014-10-28 2019-03-20 株式会社メガチップス エラー訂正装置
TWI520140B (zh) * 2014-11-03 2016-02-01 慧榮科技股份有限公司 資料儲存裝置以及快閃記憶體控制方法
US10691531B2 (en) * 2014-12-04 2020-06-23 Western Digital Technologies, Inc. Systems and methods for multi-zone data tiering for endurance extension in solid state drives
US10067823B2 (en) * 2014-12-04 2018-09-04 Western Digital Technologies, Inc. Systems and methods for adaptive error corrective code mechanisms
WO2016090621A1 (zh) * 2014-12-12 2016-06-16 华为技术有限公司 数据存储的方法和装置
US10503431B2 (en) * 2014-12-22 2019-12-10 Sandisk Technologies Llc Trade-off adjustments of memory parameters based on memory wear or data retention
US10339048B2 (en) 2014-12-23 2019-07-02 International Business Machines Corporation Endurance enhancement scheme using memory re-evaluation
US9990279B2 (en) 2014-12-23 2018-06-05 International Business Machines Corporation Page-level health equalization
US9595979B2 (en) * 2015-01-20 2017-03-14 International Business Machines Corporation Multiple erasure codes for distributed storage
TWI555028B (zh) * 2015-02-12 2016-10-21 慧榮科技股份有限公司 資料儲存裝置以及錯誤校正方法
JP6294251B2 (ja) 2015-02-26 2018-03-14 ファナック株式会社 誤り訂正機能による寿命予測を有する制御装置
US9768808B2 (en) 2015-04-08 2017-09-19 Sandisk Technologies Llc Method for modifying device-specific variable error correction settings
US9792053B2 (en) 2015-04-30 2017-10-17 Toshiba Memory Corporation Controller for nonvolatile semiconductor memory
US9606737B2 (en) 2015-05-20 2017-03-28 Sandisk Technologies Llc Variable bit encoding per NAND flash cell to extend life of flash-based storage devices and preserve over-provisioning
US9639282B2 (en) 2015-05-20 2017-05-02 Sandisk Technologies Llc Variable bit encoding per NAND flash cell to improve device endurance and extend life of flash-based storage devices
US10439650B2 (en) * 2015-05-27 2019-10-08 Quantum Corporation Cloud-based solid state device (SSD) with dynamically variable error correcting code (ECC) system
KR102324769B1 (ko) * 2015-06-29 2021-11-10 삼성전자주식회사 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US9727416B2 (en) * 2015-07-01 2017-08-08 Xilinx, Inc. Variable code rate solid-state drive
JP6657634B2 (ja) * 2015-07-24 2020-03-04 ソニー株式会社 符号化装置、メモリシステム、通信システムおよび符号化方法
US10133625B2 (en) 2015-08-11 2018-11-20 Western Digital Technologies, Inc. Storing parity data separate from protected data
FR3040523B1 (fr) 2015-08-28 2018-07-13 Continental Automotive France Procede de detection d'une erreur non corrigible dans une memoire non volatile d'un microcontroleur
US20170126249A1 (en) * 2015-10-30 2017-05-04 Intel Corporation Temperature dependent multiple mode error correction
US9946483B2 (en) 2015-12-03 2018-04-17 Sandisk Technologies Llc Efficiently managing unmapped blocks to extend life of solid state drive with low over-provisioning
US9946473B2 (en) 2015-12-03 2018-04-17 Sandisk Technologies Llc Efficiently managing unmapped blocks to extend life of solid state drive
US9830084B2 (en) 2015-12-03 2017-11-28 Sandisk Technologies Llc Writing logical groups of data to physical locations in memory using headers
US10013179B2 (en) 2015-12-03 2018-07-03 Sandisk Technologies Llc Reading logical groups of data from physical locations in memory using headers
CN106970852A (zh) * 2016-01-14 2017-07-21 钰创科技股份有限公司 闪存错误控制电路及其方法
JP6605359B2 (ja) * 2016-03-02 2019-11-13 ルネサスエレクトロニクス株式会社 半導体装置及びメモリアクセス制御方法
US9761325B1 (en) * 2016-03-14 2017-09-12 Toshiba Memory Corporation Memory system
US10055159B2 (en) * 2016-06-20 2018-08-21 Samsung Electronics Co., Ltd. Morphic storage device
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
JP6725375B2 (ja) 2016-09-14 2020-07-15 キオクシア株式会社 メモリシステムおよび方法
CN108255633B (zh) * 2016-12-28 2021-07-30 旺宏电子股份有限公司 存储控制方法、存储装置
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
KR20180086816A (ko) 2017-01-23 2018-08-01 에스케이하이닉스 주식회사 사전-검사된 에러율에 따른 적응형 에러정정을 수행하는 메모리장치 및 전자장치와, 메모리장치의 동작방법
US10908988B2 (en) 2017-04-03 2021-02-02 Hitachi, Ltd. Storage apparatus
US10346232B2 (en) 2017-08-16 2019-07-09 Western Digital Technologies, Inc. Non-volatile storage with failure prediction
CN107656831A (zh) * 2017-08-21 2018-02-02 深圳市致存微电子企业(有限合伙) 闪存纠错方法以及纠错装置
US20190196726A1 (en) * 2017-12-26 2019-06-27 Nanya Technology Corporation Dynamic random access memory and method of operating the same
US10949113B2 (en) * 2018-01-10 2021-03-16 SK Hynix Inc. Retention aware block mapping in flash-based solid state drives
JP6482690B1 (ja) * 2018-01-11 2019-03-13 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US10644727B2 (en) 2018-01-11 2020-05-05 Western Digital Technologies, Inc. Code rate switching mechanism for flash memory
CN108287794A (zh) * 2018-01-26 2018-07-17 国科美国研究实验室 Nand闪存的动态管理方法
CN108363639B (zh) * 2018-02-07 2022-04-05 置富科技(深圳)股份有限公司 一种参数可配置的动态bch纠错方法及装置
US10656847B2 (en) * 2018-05-10 2020-05-19 International Business Machines Corporation Mitigating asymmetric transient errors in non-volatile memory by proactive data relocation
US10747613B2 (en) * 2018-09-07 2020-08-18 Toshiba Memory Corporation Pooled frontline ECC decoders in memory systems
KR20200034420A (ko) * 2018-09-21 2020-03-31 삼성전자주식회사 복수의 에러 정정 기능을 갖는 메모리 장치 및 메모리 시스템과 그 동작 방법
US11163886B2 (en) 2018-09-28 2021-11-02 Dell Products L.P. Information handling system firmware bit error detection and correction
US10783024B2 (en) 2018-10-12 2020-09-22 International Business Machines Corporation Reducing block calibration overhead using read error triage
TWI673613B (zh) * 2018-10-17 2019-10-01 財團法人工業技術研究院 伺服器及其資源調控方法
TWI668699B (zh) * 2018-10-25 2019-08-11 群聯電子股份有限公司 資料儲存方法、記憶體控制電路單元以及記憶體儲存裝置
KR102076624B1 (ko) 2018-12-06 2020-02-12 한국외국어대학교 연구산학협력단 플래시 메모리 기반의 저장 시스템 및 이의 에러 보정 방법
CN109872764B (zh) * 2019-01-18 2021-01-08 南京大学 一种多级存储单元闪存的ecc多码率编解码系统及方法
US11137910B2 (en) * 2019-03-04 2021-10-05 Advantest Corporation Fast address to sector number/offset translation to support odd sector size testing
KR102601152B1 (ko) * 2019-05-10 2023-11-13 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
CN110310692A (zh) * 2019-06-28 2019-10-08 上海华虹集成电路有限责任公司 一种增强使用寿命的非易失性存储器擦除控制方法
KR20210025249A (ko) * 2019-08-27 2021-03-09 삼성전자주식회사 메모리 시스템 및 그 동작 방법
US10963336B2 (en) 2019-08-29 2021-03-30 Micron Technology, Inc. Semiconductor device with user defined operations and associated methods and systems
US11200118B2 (en) 2019-08-29 2021-12-14 Micron Technology, Inc. Semiconductor device with modified command and associated methods and systems
US11042436B2 (en) 2019-08-29 2021-06-22 Micron Technology, Inc. Semiconductor device with modified access and associated methods and systems
KR20210085284A (ko) 2019-12-30 2021-07-08 삼성전자주식회사 Pim 메모리 디바이스, pim 메모리 디바이스를 포함하는 컴퓨팅 시스템 및 pim 메모리 디바이스의 동작 방법
JP2021141369A (ja) * 2020-03-02 2021-09-16 キオクシア株式会社 メモリシステム
KR20210147686A (ko) 2020-05-29 2021-12-07 에스케이하이닉스 주식회사 오류 정정 회로 및 오류 정정 인코딩 방법
CN111638994B (zh) * 2020-06-01 2021-05-04 长江存储科技有限责任公司 一种闪存存储器及其错误比特计数检测方法和系统
CN111863080A (zh) * 2020-07-08 2020-10-30 上海威固信息技术股份有限公司 一种基于层间差异的3d闪存读性能优化方法
CN113094296B (zh) * 2021-04-29 2023-10-10 深圳忆联信息系统有限公司 Ssd读加速的实现方法、装置、计算机设备及存储介质
US12135610B2 (en) * 2021-09-23 2024-11-05 Micron Technology, Inc. ECC configuration in memories
US11704027B2 (en) * 2021-11-12 2023-07-18 Western Digital Technologies, Inc. Optimizing recovery of recurrent blocks using bloom filter
US11853607B2 (en) 2021-12-22 2023-12-26 Western Digital Technologies, Inc. Optimizing flash memory utilization for NVMe KV pair storage
US11817883B2 (en) 2021-12-27 2023-11-14 Western Digital Technologies, Inc. Variable length ECC code according to value length in NVMe key value pair devices
US11733876B2 (en) 2022-01-05 2023-08-22 Western Digital Technologies, Inc. Content aware decoding in KV devices
CN114637712B (zh) * 2022-03-18 2023-03-10 无锡众星微系统技术有限公司 一种EDFB模式下SAS2SATA Bridge的错误处理方法和装置
US12045130B2 (en) * 2022-06-02 2024-07-23 Micron Technology, Inc. Managing data integrity using a change in a number of data errors and an amount of time in which the change occurred
CN115118286A (zh) * 2022-06-09 2022-09-27 阿里巴巴(中国)有限公司 纠错码生成方法、装置、设备及存储介质
TWI836610B (zh) * 2022-09-19 2024-03-21 慧榮科技股份有限公司 存取快閃記憶體模組的方法與相關的快閃記憶體控制器及記憶裝置
CN116302670A (zh) * 2023-01-11 2023-06-23 阿里巴巴(中国)有限公司 编解码方法、编解码器、芯片、硬盘、通讯系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644312A (en) * 1994-11-30 1997-07-01 Analog Devices, Inc. Rom encoder circuit for flash ADC'S with transistor sizing to prevent sparkle errors
TWI264891B (en) * 2003-09-15 2006-10-21 Intel Corp Multiple antenna systems and methods using high-throughput space-frequency block codes
WO2007084751A2 (en) * 2006-01-20 2007-07-26 Marvell World Trade Ltd. Flash memory with coding and signal processing
TW200849257A (en) * 2006-12-31 2008-12-16 Univ Ramot Avoiding errors in a flash memory by using substitution transformations

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA1235189A (en) * 1985-01-14 1988-04-12 Haruhiko Akiyama Error correction encoding system
US5699365A (en) * 1996-03-27 1997-12-16 Motorola, Inc. Apparatus and method for adaptive forward error correction in data communications
WO1997043835A1 (en) * 1996-05-15 1997-11-20 Seagate Technology, Inc. Read error recovery utilizing ecc and read channel quality indicators
US6477669B1 (en) * 1997-07-15 2002-11-05 Comsat Corporation Method and apparatus for adaptive control of forward error correction codes
US6931009B1 (en) * 1997-07-15 2005-08-16 Viasat, Inc. Frame format and frame assembling/disassembling method for the frame format
US6182264B1 (en) * 1998-05-22 2001-01-30 Vlsi Technology, Inc. Smart dynamic selection of error correction methods for DECT based data services
US6957379B1 (en) * 1999-01-04 2005-10-18 Maxtor Corporation Method and apparatus for selecting storage capacity of data storage media
JP3699863B2 (ja) * 1999-07-12 2005-09-28 株式会社日立コミュニケーションテクノロジー エラー訂正符号装置、エラー訂正符号復号装置および伝送装置
CA2324574A1 (en) * 2000-10-26 2002-04-26 Bin Li An optimal bit allocation algorithm for reed-solomon coded data for adsl
US6961890B2 (en) * 2001-08-16 2005-11-01 Hewlett-Packard Development Company, L.P. Dynamic variable-length error correction code
US7290184B2 (en) * 2001-08-23 2007-10-30 Seagate Technology Llc Emulation system for evaluating digital data channel configurations
US8412879B2 (en) * 2002-10-28 2013-04-02 Sandisk Technologies Inc. Hybrid implementation for error correction codes within a non-volatile memory system
US7210077B2 (en) * 2004-01-29 2007-04-24 Hewlett-Packard Development Company, L.P. System and method for configuring a solid-state storage device with error correction coding
EP1776699A1 (en) * 2004-08-02 2007-04-25 Koninklijke Philips Electronics N.V. Data storage and replay apparatus
KR100732628B1 (ko) * 2005-07-28 2007-06-27 삼성전자주식회사 멀티-비트 데이터 및 싱글-비트 데이터를 저장하는 플래시메모리 장치
US7526715B2 (en) * 2005-10-17 2009-04-28 Ramot At Tel Aviv University Ltd. Probabilistic error correction in multi-bit-per-cell flash memory
US7809994B2 (en) * 2006-05-17 2010-10-05 Sandisk Corporation Error correction coding for multiple-sector pages in flash memory devices
JP2007316779A (ja) * 2006-05-23 2007-12-06 Sharp Corp 不揮発性メモリシステム
US7739576B2 (en) * 2006-08-31 2010-06-15 Micron Technology, Inc. Variable strength ECC
US8171380B2 (en) * 2006-10-10 2012-05-01 Marvell World Trade Ltd. Adaptive systems and methods for storing and retrieving data to and from memory cells
US9116823B2 (en) * 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
CN100458718C (zh) * 2006-12-29 2009-02-04 福昭科技(深圳)有限公司 一种闪存存储装置及其数据读取和写入方法
CN101256521B (zh) * 2007-03-01 2010-12-01 创惟科技股份有限公司 提高闪存资料存取可靠性的方法
US8122323B2 (en) * 2007-03-08 2012-02-21 Intel Corporation Method, apparatus, and system for dynamic ECC code rate adjustment
JP5453268B2 (ja) * 2007-09-14 2014-03-26 エージェンシー フォー サイエンス, テクノロジー アンド リサーチ ビット列の符号化方式および符号化回路
JP4538034B2 (ja) * 2007-09-26 2010-09-08 株式会社東芝 半導体記憶装置、及びその制御方法
US8429492B2 (en) * 2007-11-30 2013-04-23 Marvell World Trade Ltd. Error correcting code predication system and method
US8335977B2 (en) * 2007-12-05 2012-12-18 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated BCH codes and/or designation of “first below” cells
WO2009078006A2 (en) * 2007-12-18 2009-06-25 Densbits Technologies Ltd. Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith
KR101398212B1 (ko) * 2008-03-18 2014-05-26 삼성전자주식회사 메모리 장치 및 인코딩/디코딩 방법
JP2010092574A (ja) * 2008-10-12 2010-04-22 Kyoto Software Research Inc フラッシュファイルシステムの誤り訂正機能
US8442398B2 (en) * 2008-10-21 2013-05-14 Broadcom Corporation Performance monitoring in passive optical networks
US8407400B2 (en) * 2008-11-12 2013-03-26 Micron Technology, Inc. Dynamic SLC/MLC blocks allocations for non-volatile memory
KR101059673B1 (ko) * 2008-12-26 2011-08-25 서울대학교산학협력단 신뢰도 또는 저장 용량을 동적으로 조절하는 저장 장치 및 그 방법
US8370702B2 (en) * 2009-06-10 2013-02-05 Micron Technology, Inc. Error correcting codes for increased storage capacity in multilevel memory devices
US8495467B1 (en) * 2009-06-30 2013-07-23 Micron Technology, Inc. Switchable on-die memory error correcting engine
CN102098130A (zh) * 2009-12-15 2011-06-15 意法半导体研发(深圳)有限公司 具有高速度和高可靠性的高效动态传输
WO2011080768A1 (en) * 2009-12-29 2011-07-07 Ferdinando Bedeschi Memory devices comprising partitions with particular ecc attributes
US8327226B2 (en) * 2010-02-03 2012-12-04 Seagate Technology Llc Adjustable error correction code length in an electrical storage device
US8533550B2 (en) * 2010-06-29 2013-09-10 Intel Corporation Method and system to improve the performance and/or reliability of a solid-state drive
US8656256B2 (en) * 2010-07-07 2014-02-18 Stec, Inc. Apparatus and method for multi-mode operation of a flash memory device
US8832507B2 (en) * 2010-08-23 2014-09-09 Apple Inc. Systems and methods for generating dynamic super blocks
US8560922B2 (en) * 2011-03-04 2013-10-15 International Business Machines Corporation Bad block management for flash memory
KR101991911B1 (ko) * 2012-05-22 2019-06-24 삼성전자주식회사 비트 상태 맵핑 동작을 수행하는 코드 변조 인코더와 코드 변조 디코더를 포함하는 메모리 컨트롤러, 그것을 포함하는 데이터 저장 장치 및 플래시 메모리 시스템
US8898549B2 (en) * 2013-02-12 2014-11-25 Seagate Technology Llc Statistical adaptive error correction for a flash memory
US9026867B1 (en) * 2013-03-15 2015-05-05 Pmc-Sierra, Inc. Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644312A (en) * 1994-11-30 1997-07-01 Analog Devices, Inc. Rom encoder circuit for flash ADC'S with transistor sizing to prevent sparkle errors
TWI264891B (en) * 2003-09-15 2006-10-21 Intel Corp Multiple antenna systems and methods using high-throughput space-frequency block codes
WO2007084751A2 (en) * 2006-01-20 2007-07-26 Marvell World Trade Ltd. Flash memory with coding and signal processing
TW200849257A (en) * 2006-12-31 2008-12-16 Univ Ramot Avoiding errors in a flash memory by using substitution transformations

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI500110B (zh) * 2009-01-23 2015-09-11 Axcelis Tech Inc 不冷凝保溫夾頭
US11088711B2 (en) 2019-07-08 2021-08-10 Winbond Electronics Corp. Memory apparatus and data accessing method thereof
TWI723515B (zh) * 2019-08-29 2021-04-01 華邦電子股份有限公司 記憶體裝置及其資料存取方法

Also Published As

Publication number Publication date
KR20130096753A (ko) 2013-08-30
US20140136927A1 (en) 2014-05-15
EP2633409A1 (en) 2013-09-04
EP2633409A4 (en) 2014-07-23
KR101606718B1 (ko) 2016-03-28
CN103329103B (zh) 2017-04-05
TW201234170A (en) 2012-08-16
JP2013542533A (ja) 2013-11-21
WO2012058328A1 (en) 2012-05-03
US20160188405A1 (en) 2016-06-30
CN103329103A (zh) 2013-09-25

Similar Documents

Publication Publication Date Title
TWI512452B (zh) 資料儲存系統
TWI579854B (zh) 用於快閃記憶體之低密度同位檢查抹除解碼
US10365920B2 (en) Management of device firmware update effects as seen by a host
JP6265746B2 (ja) 記憶アドレス空間と不揮発性メモリのアドレス、範囲、および長さとの間のマッピング/変換
JP6452278B2 (ja) 不揮発性メモリの耐久性平準化のためのセル損傷の測定
KR101467941B1 (ko) 비휘발성 저장부에 대한 가변 오버­프로비저닝
US9461904B2 (en) Selective enablement of operating modes or features via host transfer rate detection
US9436634B2 (en) Enhanced queue management
KR20130114681A (ko) 독립 실리콘 소자들을 갖는 동적 상위 레벨 리던던시 모드 관리
CN113010098A (zh) 用于提高存储器系统的输入/输出吞吐量的设备和方法
US9396104B1 (en) Accessing compressed data of varying-sized quanta in non-volatile memory

Legal Events

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