TWI512452B - 資料儲存系統 - Google Patents
資料儲存系統 Download PDFInfo
- 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
Links
- 238000013500 data storage Methods 0.000 title claims description 14
- 238000012937 correction Methods 0.000 claims description 187
- 230000015654 memory Effects 0.000 claims description 130
- 230000003044 adaptive effect Effects 0.000 claims description 40
- 230000002829 reductive effect Effects 0.000 claims description 3
- 238000003860 storage Methods 0.000 description 41
- 238000000034 method Methods 0.000 description 27
- 239000000872 buffer Substances 0.000 description 22
- 238000007726 management method Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 13
- 238000012005 ligant binding assay Methods 0.000 description 11
- 239000000463 material Substances 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 10
- 230000005055 memory storage Effects 0.000 description 9
- 238000013507 mapping Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000008520 organization Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 239000003999 initiator Substances 0.000 description 3
- 230000000670 limiting effect Effects 0.000 description 3
- 230000005291 magnetic effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013179 statistical model Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- CXOXHMZGEKVPMT-UHFFFAOYSA-N clobazam Chemical compound O=C1CC(=O)N(C)C2=CC=C(Cl)C=C2N1C1=CC=CC=C1 CXOXHMZGEKVPMT-UHFFFAOYSA-N 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 229940044442 onfi Drugs 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001737 promoting effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 235000013599 spices Nutrition 0.000 description 2
- 238000013403 standard screening design Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 102100024406 60S ribosomal protein L15 Human genes 0.000 description 1
- 101001117935 Homo sapiens 60S ribosomal protein L15 Proteins 0.000 description 1
- 101150071746 Pbsn gene Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000033590 base-excision repair Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 239000004557 technical material Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1016—Error in accessing a memory location, i.e. addressing error
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes 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的冪延長了使用壽命。
圖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)
- 一種資料儲存系統,其包含:用於錯誤統計收集及追蹤之構件,其經賦能以動態地判定對一快閃記憶體之一部分之存取的一原始位元錯誤率(BER);及用於適應性編碼之構件,其經賦能以根據複數個錯誤校正碼中之一經動態地選擇之錯誤校正碼進行編碼,且進一步經賦能以至少部分地基於該原始BER來動態地判定該經動態地選擇之錯誤校正碼。
- 如請求項1之系統,其中根據該等錯誤校正碼中之一第一錯誤校正碼進行編碼導致儲存於該部分中之錯誤校正位元之一數目小於當根據該等錯誤校正碼中之一第二錯誤校正碼進行編碼時的錯誤校正位元之一數目。
- 如請求項2之系統,其中當根據該第一錯誤校正碼進行編碼時,被用作使用者資料之該部分之位元的一數目增加,增加的程度至多為由該第二錯誤校正碼使用之錯誤校正位元之該數目減去由該第一錯誤校正碼使用之錯誤校正位元之該數目之間的一差異。
- 如請求項2之系統,其中當根據該第二錯誤校正碼進行編碼時,被用作使用者資料之該部分之位元的一數目減小,減小的程度至多為由該第二錯誤校正碼使用之錯誤校正位元之該數目減去由該第一錯誤校正碼使用之錯誤校正位元之該數目之間的一差異。
- 如請求項2之系統,其中該用於適應性編碼之構件進一 步經賦能以在該部分之一使用壽命之一第一部分期間選擇該第一錯誤校正碼且在該使用壽命之一第二部分期間選擇該第二錯誤校正碼;且該第二部分係在該第一部分之後。
- 如請求項2之系統,其中該用於錯誤統計收集及追蹤之構件及該用於適應性編碼之構件中的一或多者係至少部分地經由硬體邏輯電路及/或一或多個軟體常式來實施。
- 一種資料儲存系統,其包含:用於錯誤統計收集及追蹤之構件,其經賦能以動態地判定對一快閃記憶體之一部分之存取的一原始位元錯誤率(BER);及用於適應性編碼/解碼之構件,其包含用於適應性編碼之構件及用於適應性解碼之構件,該用於適應性編碼之構件經賦能以根據複數個錯誤校正碼中之一第一所選錯誤校正碼進行編碼,該用於適應性解碼之構件經賦能以根據該等錯誤校正碼中之一第二所選錯誤校正碼進行解碼,且該用於適應性編碼/解碼之構件進一步包含用於控制之構件,該用於控制之構件經賦能以至少部分地基於自該用於錯誤統計收集及追蹤之構件所接收之資訊來判定該第一所選錯誤校正碼。
- 如請求項7之系統,其中該用於適應性編碼之構件為經賦能以根據該等錯誤校正碼中之任一者進行編碼的一用於通用編碼之構件。
- 如請求項7之系統,其中該用於適應性解碼之構件為經 賦能以根據該等錯誤校正碼中之任一者進行解碼的一用於通用解碼之構件。
- 如請求項7之系統,其中根據該第一所選錯誤校正碼進行編碼導致儲存於該部分中之錯誤校正位元之一數目小於當根據該第二所選錯誤校正碼進行編碼時的錯誤校正位元之一數目。
- 如請求項10之系統,其中當根據該第一所選錯誤校正碼進行編碼時,被用作使用者資料之該部分之位元的一數目增加,增加的程度至多為在根據該第二所選錯誤校正碼進行編碼時所使用的錯誤校正位元之該數目減去在根據該第一所選錯誤校正碼進行編碼時所使用的錯誤校正位元之該數目之間的一差異。
- 如請求項10之系統,其中當根據該第二所選錯誤校正碼進行編碼時,被用作使用者資料之該部分之位元的一數目減小,減小的程度至多為在根據該第二所選錯誤校正碼進行編碼時所使用的錯誤校正位元之該數目減去在根據該第一所選錯誤校正碼進行編碼時所使用的錯誤校正位元之該數目之間的一差異。
- 如請求項10之系統,其中該用於適應性編碼之構件進一步經賦能以在該部分之一使用壽命之一第一部分期間選擇該第一所選錯誤校正碼且在該使用壽命之一第二部分期間選擇該第二所選錯誤校正碼;且該第二部分係在該第一部分之後。
- 如請求項7之系統,其中該用於錯誤統計收集及追蹤之 構件及該用於適應性編碼/解碼之構件中的一或多者係至少部分地經由硬體邏輯電路及/或一或多個軟體常式來實施。
- 一種資料儲存系統,其包含:用於動態碼率選擇之構件,其經賦能以動態地判定與一快閃記憶體之複數個部分中之每一者相關聯的一各別碼率;用於編碼之構件,其可根據該等各別經判定之碼率操作;用於解碼之構件,其可根據該等各別經判定之碼率操作;及其中該複數個部分中之一特定部分被寫入有由該用於編碼之構件根據該等各別經判定之碼率中之一特定碼率所編碼的資料,且隨後自該特定部分讀取且由該用於解碼之構件解碼。
- 如請求項15之系統,其中該用於動態碼率選擇之構件經賦能以至少部分地基於每該等部分中之一或多者的一或多個參數或該等參數中之一或多者的一或多個歷史來動態地判定該各別碼率,該等參數包含:所校正之錯誤之一數目;所偵測之錯誤之一數目;程式化/抹除循環之一數目;讀取循環之一數目;一程式化時間; 一抹除時間;一讀取時間;一溫度;及一臨限電壓。
- 如請求項15之系統,其中該動態判定包含對一相對較低之碼率在該等部分中之一第一部分之一使用壽命中的相對早期將與該第一部分相關聯的一判定,及對一相對較高之碼率在該使用壽命中之相對晚期將與該第一部分相關聯的一判定。
- 如請求項17之系統,其中當根據該相對較低之碼率進行編碼時,被用作使用者資料的該第一部分之位元之一數目大於當根據該相對較高之碼率進行編碼時的位元之一數目。
- 如請求項15之系統,其中該用於動態碼率選擇之構件、該用於編碼之構件及該用於解碼之構件中的一或多者係至少部分地經由硬體邏輯電路及/或一或多個軟體常式來實施。
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)
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)
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)
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)
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 |
-
2011
- 2011-10-26 WO PCT/US2011/057914 patent/WO2012058328A1/en active Application Filing
- 2011-10-26 US US13/879,383 patent/US20140136927A1/en not_active Abandoned
- 2011-10-26 EP EP11837032.9A patent/EP2633409A4/en not_active Withdrawn
- 2011-10-26 KR KR1020137013372A patent/KR101606718B1/ko active IP Right Grant
- 2011-10-26 CN CN201180063160.5A patent/CN103329103B/zh not_active Expired - Fee Related
- 2011-10-26 JP JP2013536786A patent/JP2013542533A/ja active Pending
- 2011-10-27 TW TW100139204A patent/TWI512452B/zh not_active IP Right Cessation
-
2015
- 2015-11-18 US US14/945,276 patent/US20160188405A1/en not_active Abandoned
Patent Citations (4)
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)
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 |