TWI381273B - 用於儲存數據至記憶體單元和從記憶體單元擷取數據的自適應系統及其方法 - Google Patents
用於儲存數據至記憶體單元和從記憶體單元擷取數據的自適應系統及其方法 Download PDFInfo
- Publication number
- TWI381273B TWI381273B TW096138035A TW96138035A TWI381273B TW I381273 B TWI381273 B TW I381273B TW 096138035 A TW096138035 A TW 096138035A TW 96138035 A TW96138035 A TW 96138035A TW I381273 B TWI381273 B TW I381273B
- Authority
- TW
- Taiwan
- Prior art keywords
- quality
- memory
- quality value
- data
- memory cells
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims description 252
- 230000003044 adaptive effect Effects 0.000 title claims description 28
- 238000000034 method Methods 0.000 title claims description 25
- 238000012937 correction Methods 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 36
- 238000012544 monitoring process Methods 0.000 claims description 29
- 238000001514 detection method Methods 0.000 claims description 21
- 238000009826 distribution Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000013442 quality metrics Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012360 testing method Methods 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Description
本發明的實施例涉及數據記憶體裝置領域,更具體而言,涉及將數據儲存到記憶體單元和從記憶體單元取回數據。
在記憶體裝置的壽命週期期間,所述記憶體裝置如快閃記憶體裝置,此類裝置易由於正常使用而受到耗損。從訊號處理/編碼觀點來看,此意味通訊通道品質隨著時間而降低,其最後可能影響所述裝置的數據可靠性。例如,當記憶體單元經過多次讀和/或寫循環操作,快閃記憶體裝置通常會招致可靠性有關的問題,例如讀取擾動、耐久性(endurance)和保持性(retention)。
第1圖表示快閃記憶體單元在經過多次讀和寫循環操作之前和之後的相對閾值電壓分佈。具體而言,第1圖顯示循環之前和循環之後的相對電壓分佈。第1圖中所示的兩組分佈可以被分别解釋為記憶體單元被循環之前和之後,邏輯0和邏輯1的表示。
注意到在循環之後,兩種分佈的間隔減小並且每種分佈變得更寬。因此,用於區分被儲存在快閃記憶體單元中的是0還是1的能力在循環之後降低,使得數據可靠性降低。在快閃記憶體產業中,這種現象經常被稱為保持性損失。儘管可以設計高級訊號處理演算法來跟踪保持性損失並且減緩不希望的效果,但是關鍵的可能是,用户完全不知道記憶體單元的退化。換言之,從用户的觀點來看,應當在所述裝置的整個使用期限保証數據可靠性水準,而沒有顯著的功能性變更和/或用户干涉。
根據本發明的各項實施例,提供自適應記憶體讀和寫系統和方法,這些系統和方法適應於例如由於重複循環而引起的記憶體單元退化。該系統可以包含具有複數個記憶體單元的記憶體裝置、數據品質監控模組和自適應數據編碼模組。該數據品質監控模組和自適應數據編碼模組可以一起協同工作以選擇用於將數據寫入到記憶體裝置的記憶體單元中的適當編碼系統。例如,數據品質監控模組可以被配置用於確定記憶體裝置中所包含的一個或一個以上記憶體單元構成的第一組的第一品質值,所確定的第一品質值表示一個或一個以上記憶體單元所構成的第一組的品質。另一方面,自適應數據編碼模組可以被配置用於從複數個編碼系統中選擇用於對將被寫入一個或一個以上記憶體單元所構成的第一組的數據進行編碼的第一編碼系統,第一編碼系統的選擇至少部分地基於一個或一個以上記憶體單元所構成的第一組的確定的第一品質值。
在本發明的一些實施例中,該數據品質監控模組可以被進一步配置用於確定記憶體裝置中所包含的一個或一個以上記憶體單元所構成的第二組的第二品質值,所述第二品質值表示一個或一個以上記憶體單元所構成的第二組的品質。對於這些實施例,該自適應數據編碼模組可以被配置用於從複數個編碼系統中選擇用於對將被寫入一個或一個以上記憶體單元所構成的第二組的數據進行編碼的第二編碼系統,第二編碼系統的選擇至少部分地基於一個或一個以上記憶體單元所構成的第二組的第二品質值。所選擇的第一和第二編碼系統可以是相同或者不同的編碼系統。
在各項實施例中,如果該第一品質值為一高於該第二品質值的品質值,則所選擇的第一編碼系統使第一編碼系統比第二編碼系統具有更低的誤差校正能力。
除了記憶體裝置、數據品質監控模組和自適應數據編碼模組之外,該系統可進一步包括另外的組件。例如,該系統可進一步包括讀取模組,該讀取模組被配置用於讀取包含於記憶體裝置中的記憶體單元。對於該些系統,數據品質監控模組可以經由讀取模組被可操作地耦合至記憶體裝置。所述系統可進一步包括寫入模組,該寫入模組被配置用於將從自適應數據編碼模組所接收的編碼數據寫入記憶體裝置的記憶體單元。
該系統可進一步包括品質圖,該品質圖被配置用於儲存取決於數據品質監控模組的一個或一個以上記憶體單元所構成的第一組的第一品質值以及一個或一個以上記憶體單元所構成的第二組的第二品質值。品質圖也可以被配置用於向自適應數據編碼模組提供用於一個或一個以上記憶體單元所構成的第一組的第一品質值。在本發明的一些實施例中,品質圖可以被配置為在時間上的任何給定時刻,包含一個或一個以上記憶體單元所構成的第一組的另外品質值以及一個或一個以上記憶體單元所構成的第一組的第一品質值,另外品質值在儲存第一品質值之前被儲存在品質圖中。品質圖可以被進一步配置用於儲存所述記憶體裝置中的一個或一個以上記憶體單元所構成的至少一個組的至少一個品質值並且將其提供給自適應數據編碼模組,所述至少一個品質值表示一個或一個以上記憶體單元所構成的所述至少一個組將不被使用。
根據本發明的各項實施例的系統還可以包含訊號處理和檢測模組以及誤差校正和解碼模組。該訊號處理和檢測模組以及誤差校正和解碼模組可以被配置分别用於處理和解碼藉由讀取模組從一個或一個以上記憶體單元所構成的第一組中所讀取的數據。對於本發明的該些實施例,品質圖可以被進一步配置用於向訊號處理和檢測模組提供一個或一個以上記憶體單元所構成的第一組的另外品質值,以輔助對藉由讀取模組所讀取的數據的處理。品質圖也可以被進一步配置用於向誤差校正和解碼模組提供另外品質值,以輔助對數據的解碼。本發明的各項實施例的該些方面和其他方面,現在將在以下更詳細地描述。
在以下的詳細描述中,參考形成這裡的一部份的附圖,其中在全部附圖中,相似的標號表示相似的部件,並且其中透過圖示方式顯示在其中可以實踐本發明的實施例。其可以了解,可以利用其他實施例並且可以作出結構或邏輯變化而不脫離本發明的範圍。因此,以下的詳細描述不被認為用於限制意義,根據本發明的實施例的範圍由所附申請專利範圍及其等同物來限定。
以可以幫助理解本發明的實施例的方式,將各種操作作為多個離散操作依次描述;但是,不應當將描述的順序解釋為暗示這些操作是依賴順序的。
為了快速描述的目的,短語“A/B”的意思是A或者B。為了快速述的目的,短語“A和/或B”的意思是“(A)、(B)或者(A和B)”。為了快速描述的目的,短語“A、B和C中的至少一個”的意思是“(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或者(A、B和C)”。為了快速描述的目的,短語“(A)B”的意思是“(B)或者(AB)”,即,A是一隨意元素。
可以使用短語“在各種實施例中”或者“在一些實施例中”描述,這些短語中的每一個可以指的是相同或不同實施例中的一個或多個。此外,就本發明的實施例而言所使用的術語“包括”、“包含”、“具有”等是同義的。
本發明的實施例涉及可以幫助確保從記憶體單元所取回數據的可靠性的系統和方法。諸如快閃記憶體裝置之類的記憶體裝置通常包括許多個體記憶體單元,這些個體記憶體單元在一些範例中可以是多層記憶體單元。如前所述,此類記憶體單元的相對開值電壓分佈經過重複的循環,可能隨著時間而改變,從而導致記憶體裝置的數據可靠性的降低。第2圖代表根據本發明的各項實施例用於確保從記憶體裝置的記憶體單元所取回數據的可靠性的過程。具體而言,過程20是用於對記憶體裝置中一個或一個以上記憶體單元所構成的組(在此稱為“記憶體單元組”)進行寫入或者從其進行讀取的過程,該過程可以確保從記憶體單元組所取回數據的可靠性。可以針對記憶體裝置中的每個記憶體單元組(即,塊或者扇區),一再地重複執行這樣的過程20。在此所使用的記憶體單元組可以包含一個或一個以上記憶體單元。
過程20可以最初開始於當在21處確定記憶體裝置的記憶體單元組的品質時。如在此將更詳細描述的,可以在先前儲存在記憶體單元組中的數據的讀取操作期間確定記憶體單元組的品質。在各項實施例中,記憶體單元組的品質可以由諸如品質指標之類的品質值來表示。在此將描述的各種可替換的方案可以被採用以確定記憶體單元組的品質值。將在以下提及記憶體單元組時使用的術語“品質”、“最高品質”和“最低品質”是相對術語,因此可能僅就用於確定這種品質的方法而言具有意義。在確定記憶體單元組的品質值之後,可以在22處保存所確定的品質值。在本發明的採用某些方法來確定品質值的一些實施例中,可以僅針對複數個記憶體單元而不是針對單個記憶體單元來確定品質值。
在23處,至少部分地基於所確定的品質值,可以從複數個符合條件的編碼系統或算法(這裡稱為“系統”)中選擇適當的編碼系統或者算法,以用於對將被寫入記憶體單元組的數據進行編碼。例如,假設所確定的品質值由品質指標來表示,所述品質指標可以具有值0和4之間的任何值,其中,品質指標值0表示具有如此品質值的記憶體單元組的品質是最高品質,同時具有品質指標4表示具有如此品質值的記憶體單元組的品質是最差品質。因此,如果確定記憶體單元組具有相對較差的品質,如具有品質值3,則這可能導致從具有許多內置冗餘的複數個編碼系統中選擇編碼系統,以對從具有較差品質的記憶體單元組中讀取數據時可能出現的誤差進行計算。
在選擇適當的編碼系統之後,在24處,所選擇的編碼系統可以用於對將被寫入記憶體單元組的數據進行編碼。當是從記憶體單元組中讀取或者取回經編碼數據時,在25處,可以使用所保存的品質值以適當地處理和解碼從記憶體單元組中所取回的經編碼數據。由於所述解碼過程,所取回的數據可以被適當地誤差校正。可以針對記憶體裝置中的每組記憶體單元而一再地重複該過程20。
第3圖描述根據本發明的各項實施例中用於記憶體裝置的讀/寫系統的範例。讀/寫系統(在此稱為“系統”)30包含可操作地耦合在一起的具有記憶體單元的記憶體裝置(這裡稱為“記憶體裝置”)32、讀取模組34、信號處理和檢測模組36、誤差校正和解碼模組38、記憶體單元品質監控模組40、記憶體單元品質圖42、寫入模組44和自適應數據編碼模組46。在本發明的一些實施例中,記憶體裝置32中所包含的記憶體單元可以是快閃記憶體單元,所述快閃記憶體單元例如是,但不侷限為多層記憶體單元。可以利用諸如特定應用積體電路(ASIC)之類的硬體和/或軟體的組合來實現系統30的各種組件。此外,在本發明的一些可替換實施例中,可以缺少所圖示組件中的一個或一個以上,而在其他或者相同實施例中,可以包含另外的未圖示組件。所述系統30可以被分為兩部分,讀取部分和寫入部分,這兩部分分别在第4圖和第5圖中圖示。
現在参考第4圖,顯示一根據本發明各項實施例的第3圖的系統的讀取部分的範例。所述系統30的讀取部分60包含讀取模組34、信號處理和檢測模組36以及誤差校正和解碼模組38,所述讀取模組34可以被配置用於從記憶體單元取出數據信號,所述信號處理和檢測模組36可以被配置用於將類比信號轉換為數字0和1,所述誤差校正和解碼模組38可以被配置用於對包含誤差校正的恢復後數據解碼。根據本發明的各項實施例,讀取部分60可以進一步包含記憶體單元品質監控模組(在此稱為“品質監控模組”)40和記憶體單元品質圖(在此稱為“品質圖”)42,所述記憶體單元品質監控模組40被配置用於確定記憶體單元組的品質(由品質值來表示),所述記憶體單元品質圖42可以被配置用於儲存由品質監控模組40所確定的品質值。
在操作上,所述品質監控模組40可以在先前儲存在記憶體裝置32中的數據的讀操作期間,從讀取模組34、信號處理和檢測模組36和/或誤差校正和解碼模組38接收輸入,以確定所述記憶體裝置32中所包含的每組記憶體單元的品質值。也就是說,取決於所確定的品質值的類型,所述品質監控模組40可以在讀操作期間從讀取模組34、信號處理和檢測模組36和/或誤差校正和解碼模組38接收輸入,以確定品質值。注意到在該範例中,用以確定記憶體單元組的品質值是在先前儲存在記憶體單元組中的數據的讀操作時的記憶體單元組的品質值,因此,不是先前所儲存的數據被最初寫入和編碼至記憶體單元組中時的記憶體單元組的品質值。此處的意義在下面的描述中將變得更加清楚。
在確定記憶體單元組的品質值之後,所述品質值可以隨後被儲存至品質圖42中,所述品質圖42可以為記憶體裝置32中的複數個記憶體單元組儲存複數個品質值。將在以下做更詳細的描述,儲存在品質圖42中的記憶體單元組的品質值可以用於輔助從複數個可用編碼系統中選擇編碼系統(即,算法),該編碼系統用於對被寫入記憶體單元組中的數據的將來寫入和編碼,並且用於這種從記憶體裝置32所讀取的經編碼數據的最終處理和解碼(即,誤差校正)。也就是說,儲存在品質圖42中的品質值最初在寫操作期間用於選擇編碼系統,該編碼系統用於對將被寫入記憶體裝置32的數據進行編碼。如第3圖和第4圖中的標號48和50所示,相同的品質值然後可以被信號處理和檢測模組36和/或誤差校正和解碼模組38在讀操作期間用於適當地處理和/或解碼(即,誤差校正)從記憶體裝置32所讀取的經編碼數據。
根據本發明的各項實施例,數種可替換的方案可以被採用以確定用於記憶體單元組的品質(由品質值或者品質指標來表示)。在一些範例中,可以測量品質值。一些可能的方案可以包含,例如,測量:1)用於引導數據(即,位數已知)的固定數目的誤差數。
2)由誤差校正解碼模組為每個邏輯塊/扇區(例如,記憶體單元模組)所採用的誤差校正碼(ECC)所糾正的誤差數。
3)對數相似度比值(LLR)的平均絕對值。
4)所估計的噪聲差異。
為了說明如何使用這些方案來確定記憶體單元組的品質值,假設採用上述方案2來確定品質值。進一步假設ECC的誤差校正能力是T,則其可能可以例如根據第6圖所圖示的表1來形成品質監控函數。
在該範例中,如果確定記憶體單元組(即,邏輯塊/扇區)具有表1所述的品質指標“0”,則將會確定如此記憶體單元組是最可靠的(例如,具有最少的誤差)記憶體單元組。相對的,如果確定記憶體單元組具有品質指標“4”,則將會確定如此記憶體單元組是具有最差可靠性的記憶體單元組。
在該範例中,具有根據表1的品質指標0的記憶體單元組包含那些具有0至T/10個誤差的記憶體單元組。相對的,那些具有品質指標4的記憶體單元組將會包含那些具有大於T個誤差的記憶體單元組。在本發明的一些實施例中,那些具有品質指標4(例如,表示它們具有更差的可靠性)的記憶體單元組將來不用於儲存數據。在這樣的情形中,已經儲存在如此記憶體單元中的當前數據可以在數據恢復之後被移動到其他記憶體單元中。
在上述範例中,每個品質指標可以與來自複數個編碼系統的特定編碼系統相關聯。在一些實施例中,較低品質指標(例如,上述示例中的品質指標3)可以與一編碼系統相關聯,該編碼系統例如相對於與較高品質指標(例如上述示例中的品質指標0)相關聯的編碼系統,具有相對較高量的內置冗餘。所增加的冗餘可以被提供以容納在從較低品質記憶體單元中取回數據時可能存在的較高誤差量。因此,所述品質指標可以確定用於在寫操作期間對數據進行編碼的編碼系統類型。
例如,假設為第一記憶體單元組確定第一品質指標,為第二記憶體單元組確定第二品質指標,其中,第一品質指標為高於第二品質指標的品質值,藉以表示第一記憶體單元組的品質高於第二記憶體單元組。基於為第一和第二記憶體單元組所確定的第一和第二品質指標,第一和第二編碼系統可以用於分别對將被寫入第一和第二記憶體單元組的數據進行編碼,其中,第一編碼系統具有的誤差校正能力低於第二編碼系統的誤差校正能力。當然,如前所述,當是從記憶體單元取回經編碼數據時,可以使用為記憶體單元組所確定的品質值,以輔助對所取回的數據進行處理和解碼(包含誤差校正)。
在確定每個記憶體單元組的品質值之後,用於每個記憶體單元組的品質指標隨後可以被儲存在品質圖42中,所述品質指標被用於寫操作期間和讀操作期間。在各項實施例中,所述品質圖42可以具體表現於儲存裝置中並且可以採用任何物理形式。例如,所述品質圖42可以是儲存裝置中專門分區的記憶體單元,或者其可以是專用的、嵌入在儲存裝置中的其他類型的記憶體裝置。對於記憶體裝置32中的每個記憶體單元組,如第7圖的表2所示,兩個相應的品質值項目可以被同時(或者在時間上任何給定的時刻)儲存在品質圖中。具體而言,表2表示根據本發明的各項實施例的品質圖42的一種可能的範例性結構。在表2中,左邊一列標示特定的記憶體單元組(即,記憶體單元的塊/扇區),中間一列表示用於每個記憶體單元組的“最近所測量的品質指標”,右邊一列表示用於每個記憶體單元組的“用於寫入的品質指標”。
再参考第4圖,所述品質監控模組40可以在記憶體裝置32的讀操作期間將用於每個記憶體單元組的品質指標(被描述為圖7的表2中的“最近所測量的品質指標”)儲存至品質圖42,所述品質指標將來用於將數據寫入記憶體單元組。而且,同時在一些實施例中,信號處理和檢測模組36和/或誤差校正和解碼模組38可以在同一讀操作期間使用“用於寫入的品質指標”來分别輔助對從記憶體裝置32所包含的記憶體單元中所讀取的“先前”經編碼數據的處理和/或解碼。
因此,表2中的“用於寫入的品質指標”中所包含的品質值表示關於品質值的歷史數據,所述品質值被用於選擇適當的編碼系統來對寫入記憶體單元的數據進行編碼。隨後,則可以從品質圖42中取回此品質值以在讀操作期間輔助對記憶體單元中的經編碼數據的處理和解碼。相對的,可以在記憶體單元的將來寫操作期間使用用於“最近所測量的品質指標”的品質值。注意,一旦用於記憶體單元組的“最近所測量的品質指標”被用於對數據進行編碼和將數據寫入記憶體單元組中,這樣的品質指標就將取代“用於寫入的品質指標”中所包含的“當前”品質值。
在本發明的一些實施例中,例如由表2所表示的品質圖42可以在系統30的產品測試和/或初始化期間被初始化。在理想情況下,如果所有記憶體單元在初始產品製造之後完美地工作,則表2中所包含的所有指標將具有品質指標值零。然而實際上,由於缺陷和處理差異,一些塊/扇區可能比其他塊/扇區具有更低的品質指標。
第5圖表示根據本發明的各項實施例的第3圖的系統30的寫入部分的範例。所述系統30的寫入部分70包含寫入模組44、自適應數據編碼模組46和品質圖42,寫入模組44用於將經編碼數據寫入記憶體裝置32,自適應數據編碼模組46用於針對記憶體裝置32中的每個記憶體單元組來從複數個編碼系統中選擇用於對將被寫入記憶體單元組的數據進行編碼的編碼系統,品質圖42用於儲存記憶體單元組的品質值並且將其提供給自適應數據編碼模組46。
相對於可能採用固定的編碼器來對將被寫入記憶體裝置的數據進行編碼的傳統寫入系統,自適應數據編碼模組46可以基於記憶體裝置32中的記憶體單元組的品質值來從複數個可用編碼系統中選擇用於對將被寫入記憶體裝置32的記憶體單元組的數據進行編碼的選擇性編碼系統。在表2中,用於選擇編碼系統的品質值是“最近所測量的品質指標”。在如此品質值被用於選擇用於對數據進行編碼並且將數據寫入記憶體單元組的適當編碼系統之後,所使用的品質值隨後可以取代表2中的“用於寫入的品質指標”所包含的先前確定並且使用的品質值。結果,無論用於相應的記憶體單元組的品質值何時改變,“用於寫入的品質指標”都可以持續地更新。
為了得知可以用於對將被寫入記憶體單元組的數據進行編碼的各種類型的可用編碼系統,提供下列参考第6圖的表1的範例。在表1中描述五個指標(即,0至4)。但是,所述五個品質指標中的僅四個(即,0至3)可以與四種不同的編碼算法(即,編碼系統)相關聯,這四種不同的編碼算法可以用於對將被寫入記憶體單元的數據進行編碼。第五編碼系統並不需要,因為如果一記憶體單元組具有品質值4,其表示所述記憶體單元組具有很差的品質,該記憶體單元組可以不用於儲存數據。因此,在此範例中,並不需要第五編碼系統。
為了容易表示,假設編碼算法A、B、C和D可以分别用於品質指標0、1、2和3。還假設對於這4種編碼算法中的下列範例中,A最弱(具有最低的誤差校正能力),而D最强(具有最高的誤差校正能力)。出於實際原因,可以利用相同的硬體電路來執行不同的算法。
例如,如果採用低密度奇偶校驗(LDPC),則不同的算法可以對應於從相同的LDPC代碼經由可變穿刺(puncturing)所得出的編碼代碼。在另一個範例中,如果使用里德所羅門(Reed-Solomon,RS)碼,則不同的編碼算法可以對應於從相同的RS碼所縮減的不同代碼。例如,使用在伽羅瓦(Galois)域GF(2^8)上運算的相同RS代碼,最初RS代碼字長度是255個符號,每個符號8位元。對於固定的糾正能力T=20,可以分别選擇長度為255、235、215和195的縮減代碼(相同的T=20),長度255、235、215和195分别對應於算法A、B、C和D。可以藉由簡單地固定代碼字長度(例如,255)並且分别從20至30、40和50來改變T,獲得另一種實現方式,T為20、30、40和50分别用於算法A、B、C和D。可能也可以使用從GF(2^8)的RS所得出的代碼,針對所希望的不同算法來改變T值並且改變代碼字長度。
第8圖表示何時可以使用自適應數據編碼模組46的範例。具體而言,第8圖顯示在各種編碼算法(分别是A、B、C和D)被用於快閃記憶體裝置時,作為訊噪比(SNR)函數的所估計的數據扇區誤碼率。例如,可以將所測量的SNR大於26dB的記憶體單元組或者記憶體單元塊標記(即,給定品質值或者品質指標)為品質指標0。類似地,品質指標1、2、3和4分别對應於SNR範圍為[24.7dB,26dB]、[23.8dB,24.7dB]、[23.2dB,23.8dB]和低於23.8dB的單元。結果,品質圖42可以包含對快閃記憶體裝置中的所有記憶體單元組的索引,這可能已在裝置初始化和讀取期間被填充。
當用户數據塊將被寫入快閃記憶體裝置中所包含的記憶體單元組時,所述寫入模組44可以為數據將被寫入其中的該記憶體單元組獲得相應的品質指標並且根據品質指標來使用適當的編碼算法。例如,當對於將對其進行寫入的記憶體單元組而言,“最近所測量的品質指標”是1時,可以使用編碼算法B。在寫入經編碼數據之後,用於目標記憶體單元組的“用於寫入的品質指標”項目可以被更新為值1。另一方面,如果指標是3,則可以使用算法D並且表項目在寫入之後被更新為3。藉由這樣做,所述快閃記憶體裝置可以確定用於所察覺的扇區誤碼率可能低於10E-13。
儘管在這裡圖示並描述具體實施例,但是本領域普通技術人員和其他人員將會知道,可以用可替換的和/或等同的實現方式的廣泛變體來替換說明書中所表示的具體實施例,而不脫離本發明的範圍。希望本申請覆蓋這裡所討論的實施例的任何改編或者變體。因此,表明並且希望本發明的各種實施例僅由申請專利範圍及其等同物來限制。
30...讀/寫系統
32...具有記憶體單元的記憶體裝置
34...讀取模組
36...信號處理和檢測模組
38...誤差校正和解碼模組
40...記憶體單元品質監控模組
42...記憶體單元品質圖
44...寫入模組
46...自適應數據編碼模組
48、50...標號
60...讀取部份
70...寫入部份
將透過附圖中所圖示的示範實施例而不是限制來描述本發明,在附圖中,相似的標號表示類似的元件,並且其中:第1圖說明先前技術快閃記憶體單元在循環經過多次讀和寫操作之前和之後的相對閾值電壓分佈;第2圖說明根據本發明的各項實施例,用於將數據讀和寫至記憶體裝置的記憶體單元組的過程;第3圖說明根據本發明的各項實施例,用於記憶體裝置的讀/寫系統;第4圖說明根據本發明的各項實施例,第3圖的系統的讀取部分;第5圖說明根據本發明的各項實施例,第3圖的系統的寫入部分;第6圖說明根據本發明的各項實施例,示範性品質監控功能表;第7圖說明根據本發明的各項實施例,表示品質圖的示範性結構的表;以及第8圖說明根據本發明的各項實施例,何時可以使用自適應數據編碼模組的圖形範例。
30...讀/寫系統
32...具有記憶體單元的記憶體裝置
34...讀取模組
36...信號處理和檢測模組
38...誤差校正和解碼模組
40...記憶體單元品質監控模組
42...記憶體單元品質圖
44...寫入模組
46...自適應數據編碼模組
48、50...標號
Claims (53)
- 一種用於儲存數據至記憶體單元和從記憶體單元擷取數據的自適應系統,包括:一記憶體裝置,其包含複數個記憶體單元;一寫入模組,其被配置用於將經編碼數據寫入該記憶體單元;以及一自適應數據編碼模組,其被配置用於從多個編碼系統中選擇用於對將被寫入所述記憶體裝置中一個或一個以上記憶體單元構成的第一組的數據進行編碼的第一編碼系統,該第一編碼系統的選擇至少部分地基於一個或一個以上記憶體單元構成的所述第一組的第一品質值,其中所確定的第一品質值表示一個或一個以上記憶體單元構成的所述第一組的品質。
- 如申請專利範圍第1項所述之系統,其中,該自適應數據編碼模組被進一步配置用於從所述複數個編碼系統中選擇用於對將被寫入所述記憶體裝置中的一個或一個以上記憶體單元構成的第二組的數據進行編碼的第二編碼系統,該第二編碼系統的選擇至少部分地基於一個或一個以上記憶體單元構成的所述第二組的第二品質值,其中所確定的第二品質值表示一個或一個以上記憶體單元構成的所述第二組的品質。
- 如申請專利範圍第2項所述之系統,其中,該第一和第二編碼系統是不同的編碼系統。
- 如申請專利範圍第2項所述之系統,其中,如果一個或一個以上記憶體單元構成的所述第一組的第一品質值是高於一個或一個以上記憶體單元構成的所述第二組的第二品質值的品質值,則該第一編碼系統被選擇為使得所述第一編碼系統比所述第二編碼系統具有更低的誤差校正能力。
- 如申請專利範圍第4項所述之系統,進一步包括品質圖,該品質圖用於為一個或一個以上記憶體單元構成的所述第一組和一個或一個以上記憶體單元構成的所述第二組提供所述品質值。
- 如申請專利範圍第1項所述之系統,進一步包括品質圖,該品質圖用於為一個或一個以上記憶體單元構成的所述第一組提供所述第一品質值。
- 如申請專利範圍第6項所述之系統,其中,該品質圖被配置用於為所述記憶體裝置中的一個或一個以上記憶體單元構成的複數個組儲存和 提供複數個品質值。
- 如申請專利範圍第7項所述之系統,其中,該品質圖被配置用於為所述記憶體裝置中的一個或一個以上記憶體單元構成的至少一個組儲存和提供至少一個品質值,該至少一個品質值表示一個或一個以上記憶體單元構成的所述至少一個組將不被使用。
- 如申請專利範圍第1項所述之系統,其中,該記憶體裝置的記憶體單元是快閃記憶體單元。
- 一種用於儲存數據至記憶體單元和從記憶體單元擷取數據的自適應系統,包括:一記憶體裝置,其包含一個以上記憶體單元;一讀取模組,其被配置用於讀取該記憶體單元;以及一數據品質監控模組,其被配置用於確定所述記憶體裝置中所包含的一個或一個以上記憶體單元構成的第一組的第一品質值,所確定的第一品質值表示一個或一個以上記憶體單元構成的所述第一組的品質,並且將被至少部分地用於選擇用於將數據寫入一個或一個以上記憶體單元構成的所述第一組的第一編碼系統。
- 如申請專利範圍第10項所述之系統,其中,該品質監控模組被配置用於至少部分地基於由所述讀取模組對一個或一個以上記憶體單元構成的所述第一組的讀取,確定一個或一個以上記憶體單元構成的所述第一組的所述第一品質值。
- 如申請專利範圍第10項所述之系統,進一步包括品質圖,該品質圖被配置為包含由所述數據品質監控模組所確定的一個或一個以上記憶體單元構成的所述第一組的所述第一品質值。
- 如申請專利範圍第12項所述之系統,其中,該品質圖被進一步配置為在時間上任何給定的時刻,包含一個或一個以上記憶體單元構成的所述第一組的另外品質值以及一個或一個以上記憶體單元構成的所述第一組的所述第一品質值,所述另外品質值在將所述第一品質值儲存至所述品質圖中之前被儲存在所述品質圖中。
- 如申請專利範圍第12項所述之系統,進一步包括信號處理和檢測模組以及誤差校正和解碼模組,該信號處理和檢測模組用於處理由所述讀取模組從一個或一個以上記憶體單元構成的所述第一組中所讀取的數 據,該誤差校正和解碼模組用於對由所述讀取模組從一個或一個以上記憶體單元構成的所述第一組中所讀取的數據進行解碼。
- 如申請專利範圍第14項所述之系統,其中,該品質圖被進一步配置用於向所述信號處理和檢測模組提供所述另外品質值以輔助對數據的所述處理。
- 如申請專利範圍第14項所述之系統,其中,該品質圖被進一步配置用於向所述誤差校正和解碼模組提供所述另外品質值以輔助對數據的所述解碼。
- 如申請專利範圍第10項所述之系統,其中,該數據品質監控模組被進一步配置用於確定所述記憶體裝置中的一個或一個以上記憶體單元構成的至少一個組的至少一個品質值,該至少一個品質值表示一個或一個以上記憶體單元構成的所述至少一個組將不被使用。
- 如申請專利範圍第10項所述之系統,其中,該數據品質監控模組被進一步配置用於至少部分地基於由所述讀取模組對所述記憶體單元的讀取,確定所述記憶體裝置中的一個或一個以上記憶體單元構成的第二組的第二品質值,該第二品質值表示一個或一個以上記憶體單元構成的所述第二組的品質,並且將被至少部分地用於選擇用於將數據寫入一個或一個以上記憶體單元構成的所述第二組的編碼系統。
- 如申請專利範圍第18項所述之系統,進一步包括品質圖,該品質圖被配置用於儲存由所述數據品質監控模組所確定的一個或一個以上記憶體單元構成的所述第一組和一個或一個以上記憶體單元構成的所述第二組的所述品質值。
- 如申請專利範圍第10項所述之系統,其中,該記憶體裝置的記憶體單元是快閃記憶體單元。
- 一種用於儲存數據至記憶體單元和從記憶體單元擷取數據的自適應系統,包括:一記憶體裝置,其包含複數個記憶體單元;以及一品質圖,在其中為所述記憶體裝置的一個或一個以上記憶體單元構成的第一組儲存第一品質值,該第一品質值將被用於輔助對從多個編碼系統中選擇用於對將被寫入一個或一個以上記憶體單元構成的所述第一組的數據進行編碼的第一編碼系統,其中該第一 品質值表示該等記憶體單元的一個或一個以上所構成的該第一組的品質。
- 如申請專利範圍第21項所述之系統其中,該品質圖中還為所述記憶體裝置的一個或一個以上記憶體單元構成的第二組儲存第二品質值,該第二品質值將被用於輔助對從所述多個編碼系統中選擇用於對將被寫入一個或一個以上記憶體單元構成的所述第二組的數據進行編碼的第二編碼系統。
- 如申請專利範圍第22項所述之系統,其中,如果該第一品質值是高於該第二品質值的品質值,則該第一編碼系統被選擇為使得該第一編碼系統比該第二編碼系統具有更低的誤差校正能力。
- 如申請專利範圍第21項所述之系統,其中,該記憶體裝置具有一個或一個以上記憶體單元構成的多個組,並且該品質圖被配置為針對一個或一個以上記憶體單元構成的每個組而包含相應品質值。
- 如申請專利範圍第24項所述之系統,其中,該品質圖被進一步配置為針對一個或一個以上記憶體單元構成的每個組並且在時間上的任何給定時刻,另外包含另外的相應品質值以及所述相應品質值,一個或一個以上記憶體單元構成的所述組的另外的相應品質值在一個或一個以上記憶體單元構成的所述組的相應品質值的儲存之前被儲存在所述品質圖中。
- 如申請專利範圍第21項所述之系統,其中,該品質圖被配置用於向信號處理和檢測模組和/或誤差校正和解碼模組提供所述第一品質值,以分別輔助對一個或一個以上記憶體單元構成的所述第一組中所儲存的數據的處理和/或解碼。
- 一種用於儲存數據至記憶體單元和從記憶體單元擷取數據的自適應系統,包括:一記憶體裝置,其包含複數個記憶體單元;一數據品質監控模組,其被配置用於確定所述記憶體裝置中所包含的一個或一個以上記憶體單元構成的第一組的第一品質值,所確定的第一品質值表示一個或一個以上記憶體單元構成的所述第一組的品質;以及一自適應數據編碼模組,其被配置用於從複數個編碼系統中選擇用於 對將被寫入所述記憶體裝置中一個或一個以上記憶體單元構成的所述第一組的數據進行編碼的第一編碼系統,該第一編碼系統的選擇至少部分地基於一個或一個以上記憶體單元構成的所述第一組的所確定的第一品質值。
- 如申請專利範圍第27項所述之系統,其中,該數據品質監控模組被進一步配置用於確定所述記憶體裝置中的一個或一個以上記憶體單元構成的第二組的第二品質值,該第二品質值表示一個或一個以上記憶體單元構成的所述第二組的品質。
- 如申請專利範圍第28項所述之系統,其中,該自適應數據編碼模組被進一步配置用於從所述多個編碼系統中選擇用於對將被寫入所述記憶體裝置中的一個或一個以上記憶體單元構成的所述第二組的數據進行編碼的第二編碼系統,該第二編碼系統的選擇至少部分地基於一個或一個以上記憶體單元構成的所述第二組的第二品質值。
- 如申請專利範圍第29項所述之系統,其中,如果該第一品質值是高於該第二品質值的品質值,則該第一編碼系統被選擇為使得該第一編碼系統比該第二編碼系統具有更低的誤差校正能力。
- 如申請專利範圍第27項所述之系統,進一步包括被配置用於讀取所述記憶體單元的讀取模組,並且其中該數據品質監控模組經由所述讀取模組可操作地耦合到所述記憶體裝置。
- 如申請專利範圍第31項所述之系統,進一步包括品質圖,該品質圖被配置為包含由該數據品質監控模組所確定的一個或一個以上記憶體單元構成的所述第一組的第一品質值。
- 如申請專利範圍第32項所述之系統,其中,該品質圖被進一步配置為在時間上的任何給定時刻,包含一個或一個以上記憶體單元構成的所述第一組的另外品質值以及一個或一個以上記憶體單元構成的所述第一組的所述第一品質值,該另外品質值在將所述第一品質值儲存至所述品質圖中之前被儲存在所述品質圖中。
- 如申請專利範圍第33項所述之系統,進一步包括信號處理和檢測模組以及誤差校正和解碼模組,該信號處理和檢測模組被配置用於處理由所述讀取模組從一個或一個以上記憶體單元構成的所述第一組中所讀取的數據,該誤差校正和解碼模組被配置用於對由所述讀取模組從一 個或一個以上記憶體單元構成的所述第一組中所讀取的數據進行解碼。
- 如申請專利範圍第34項所述之系統,其中,該品質圖被進一步配置用於向該信號處理和檢測模組提供所述另外品質值以輔助對數據的所述處理。
- 如申請專利範圍第34項所述之系統,其中,該品質圖被進一步配置用於向該誤差校正和解碼模組提供所述另外品質值以輔助對數據的所述解碼。
- 如申請專利範圍第27項所述之系統,進一步包括品質圖,該品質圖被配置用於為一個或一個以上記憶體單元構成的所述第一組儲存和提供所述第一品質值。
- 如申請專利範圍第37項所述之系統,其中,該品質圖被進一步配置用於為所述記憶體裝置中的一個或一個以上記憶體單元構成的複數個組儲存和提供複數個品質值。
- 如申請專利範圍第38項所述之系統,其中,該品質圖被進一步配置用於為所述記憶體裝置中的一個或一個以上記憶體單元構成的至少一個組儲存和提供至少一個品質值,該至少一個品質值表示一個或一個以上記憶體單元構成的所述至少一個組將不被使用。
- 一種用於儲存數據至記憶體單元和從記憶體單元擷取數據的方法,包括:確定記憶體裝置中所包含的一個或一個以上記憶體單元構成的第一組的第一品質值,所確定的第一品質值表示一個或一個以上記憶體單元構成的所述第一組的品質;以及從複數個編碼系統中選擇用於對將被寫入一個或一個以上記憶體單元構成的所述第一組的數據進行編碼的第一編碼系統,該第一編碼系統的選擇至少部分地基於一個或一個以上記憶體單元構成的所述第一組的所確定的第一品質值。
- 如申請專利範圍第40項所述之方法,進一步包括確定該記憶體裝置中的一個或一個以上記憶體單元構成的第二組的第二品質值,該第二品質值表示一個或一個以上記憶體單元構成的所述第二組的品質;以及 從所述複數個編碼系統中選擇用於對將被寫入一個或一個以上記憶體單元構成的所述第二組的數據進行編碼的第二編碼系統,該第二編碼系統的選擇至少部分地基於一個或一個以上記憶體單元構成的所述第二組的所述第二品質值。
- 如申請專利範圍第41項所述之方法,其中,如果該第一品質值是高於所述第二品質值的品質值,則所述第一編碼系統被選擇為使得所述第一編碼系統比所述第二編碼系統具有更低的誤差校正能力。
- 如申請專利範圍第40項所述之方法,進一步包括將該第一品質值儲存在品質圖中。
- 如申請專利範圍第43項所述之方法,進一步包括將該品質圖中所儲存的第一品質值提供給信號處理和檢測模組,以輔助對從一個或一個以上記憶體單元構成的所述第一組中所讀取的數據的處理。
- 如申請專利範圍第43項所述之方法,進一步包括將該品質圖中所儲存的第一品質值提供給誤差校正和解碼模組,以輔助對從一個或一個以上記憶體單元構成的所述第一組中所讀取的數據的解碼。
- 如申請專利範圍第40項所述之方法,進一步包括為所述記憶體裝置中的一個或一個以上記憶體單元構成的至少一個組確定至少一個品質值,所述至少一個品質值表示一個或一個以上記憶體單元構成的所述至少一個組將不被使用。
- 一種用於儲存數據至記憶體單元和從記憶體單元擷取數據的自適應系統,包括:用於確定記憶體裝置中所包含的一個或一個以上記憶體單元構成的第一組的第一品質值的裝置,所確定的第一品質值表示一個或一個以上記憶體單元構成的所述第一組的品質;以及用於從複數個編碼系統中選擇用於對將被寫入一個或一個以上記憶體單元構成的所述第一組的數據進行編碼的第一編碼系統的裝置,所述第一編碼系統的選擇至少部分地基於一個或一個以上記憶體單元構成的所述第一組的所確定的第一品質值。
- 如申請專利範圍第47項所述之系統,進一步包括:用於確定該記憶體裝置中的一個或一個以上記憶體單元構成的第二組的第二品質值的裝置,所述第二品質值表示一個或一個以上記憶體 單元構成的所述第二組的品質;以及用於從所述複數個編碼系統中選擇用於對將被寫入一個或一個以上記憶體單元構成的所述第二組的數據進行編碼的第二編碼系統的裝置,所述第二編碼系統的選擇至少部分地基於一個或一個以上記憶體單元構成的所述第二組的所述第二品質值。
- 如申請專利範圍第48項所述之系統,其中,如果該第一品質值是高於所述第二品質值的品質值,則所述第一編碼系統被選擇為使得所述第一編碼系統比所述第二編碼系統具有更低的誤差校正能力。
- 如申請專利範圍第47項所述之系統,進一步包括用於儲存該第一品質值的裝置。
- 如申請專利範圍第50項所述之系統,進一步包括用於信號處理和檢測的裝置,並且所述用於儲存的裝置被配置用於將所儲存的第一品質值提供給用於信號處理和檢測的裝置,以輔助對從一個或一個以上記憶體單元構成的所述第一組中所讀取的數據的處理。
- 如申請專利範圍第50項所述之系統,進一步包括用於誤差校正和解碼的裝置,並且所述用於儲存的裝置被配置用於將所儲存的第一品質值提供給用於誤差校正和解碼的裝置,以輔助對從一個或一個以上記憶體單元構成的所述第一組中所讀取的數據的解碼。
- 如申請專利範圍第47項所述之系統,進一步包括用於為該記憶體裝置中的一個或一個以上記憶體單元構成的至少一個組確定至少一個品質值的裝置,所述至少一個品質值表示一個或一個以上記憶體單元構成的所述至少一個組將不被使用。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US82892206P | 2006-10-10 | 2006-10-10 | |
US11/867,858 US8171380B2 (en) | 2006-10-10 | 2007-10-05 | Adaptive systems and methods for storing and retrieving data to and from memory cells |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200825740A TW200825740A (en) | 2008-06-16 |
TWI381273B true TWI381273B (zh) | 2013-01-01 |
Family
ID=38921721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW096138035A TWI381273B (zh) | 2006-10-10 | 2007-10-11 | 用於儲存數據至記憶體單元和從記憶體單元擷取數據的自適應系統及其方法 |
Country Status (4)
Country | Link |
---|---|
US (3) | US8171380B2 (zh) |
KR (1) | KR101094421B1 (zh) |
TW (1) | TWI381273B (zh) |
WO (1) | WO2008045893A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105005450A (zh) * | 2014-04-25 | 2015-10-28 | 群联电子股份有限公司 | 数据写入方法、存储器存储装置及存储器控制电路单元 |
Families Citing this family (115)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
JP4564520B2 (ja) | 2007-08-31 | 2010-10-20 | 株式会社東芝 | 半導体記憶装置およびその制御方法 |
US8621138B2 (en) | 2007-12-27 | 2013-12-31 | Sandisk Enterprise Ip Llc | Flash storage controller execute loop |
US8386868B2 (en) | 2008-04-16 | 2013-02-26 | Sandisk Il, Ltd. | Using programming-time information to support error correction |
US8321757B2 (en) * | 2008-06-22 | 2012-11-27 | Sandisk Il Ltd. | Method and apparatus for error correction |
US8296637B1 (en) * | 2008-09-22 | 2012-10-23 | Marvell International Ltd. | Channel quality monitoring and method for qualifying a storage channel using an iterative decoder |
US8413029B2 (en) * | 2009-01-16 | 2013-04-02 | Lsi Corporation | Error correction capability adjustment of LDPC codes for storage device testing |
FR2945393B1 (fr) * | 2009-05-07 | 2015-09-25 | Commissariat Energie Atomique | Procede de protection de circuits electroniques, dispositif et systeme mettant en oeuvre le procede |
US8448016B2 (en) * | 2009-07-31 | 2013-05-21 | Cleversafe, Inc. | Computing core application access utilizing dispersed storage |
US8799747B2 (en) * | 2010-06-03 | 2014-08-05 | Seagate Technology Llc | Data hardening to compensate for loss of data retention characteristics in a non-volatile memory |
US8499227B2 (en) * | 2010-09-23 | 2013-07-30 | Micron Technology, Inc. | Memory quality monitor based compensation method and apparatus |
KR101606718B1 (ko) * | 2010-10-27 | 2016-03-28 | 엘에스아이 코포레이션 | 플래시 메모리 기반 데이터 저장을 위한 적응적 ecc 기술들 |
EP2447842A1 (en) * | 2010-10-28 | 2012-05-02 | Thomson Licensing | Method and system for error correction in a memory array |
CN103348330B (zh) | 2010-12-01 | 2017-05-24 | 希捷科技有限公司 | 采用独立硅元件的动态较高级冗余模式管理 |
WO2012099937A2 (en) | 2011-01-18 | 2012-07-26 | Lsi Corporation | Higher-level redundancy information computation |
JP5764392B2 (ja) * | 2011-06-13 | 2015-08-19 | 株式会社メガチップス | メモリコントローラ |
US8910020B2 (en) | 2011-06-19 | 2014-12-09 | Sandisk Enterprise Ip Llc | Intelligent bit recovery for flash memory |
US8909982B2 (en) | 2011-06-19 | 2014-12-09 | Sandisk Enterprise Ip Llc | System and method for detecting copyback programming problems |
US8589762B2 (en) * | 2011-07-05 | 2013-11-19 | International Business Machines Corporation | Adaptive multi-bit error correction in endurance limited memories |
US9058289B2 (en) | 2011-11-07 | 2015-06-16 | Sandisk Enterprise Ip Llc | Soft information generation for memory systems |
US8924815B2 (en) | 2011-11-18 | 2014-12-30 | Sandisk Enterprise Ip Llc | Systems, methods and devices for decoding codewords having multiple parity segments |
US9048876B2 (en) | 2011-11-18 | 2015-06-02 | Sandisk Enterprise Ip Llc | Systems, methods and devices for multi-tiered error correction |
US8954822B2 (en) * | 2011-11-18 | 2015-02-10 | Sandisk Enterprise Ip Llc | Data encoder and decoder using memory-specific parity-check matrix |
KR101893895B1 (ko) * | 2011-12-16 | 2018-09-03 | 삼성전자주식회사 | 메모리 시스템 및 그 동작 제어 방법 |
US8862967B2 (en) | 2012-03-15 | 2014-10-14 | Sandisk Technologies Inc. | Statistical distribution based variable-bit error correction coding |
US9337865B2 (en) | 2012-05-04 | 2016-05-10 | Seagate Technology Llc | Log-likelihood ratio (LLR) dampening in low-density parity-check (LDPC) decoders |
US9235346B2 (en) | 2012-05-04 | 2016-01-12 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Dynamic map pre-fetching for improved sequential reads of a solid-state media |
US9699263B1 (en) | 2012-08-17 | 2017-07-04 | Sandisk Technologies Llc. | Automatic read and write acceleration of data accessed by virtual machines |
US8930778B2 (en) | 2012-11-15 | 2015-01-06 | Seagate Technology Llc | Read disturb effect determination |
US9025374B2 (en) | 2012-12-13 | 2015-05-05 | Sandisk Technologies Inc. | System and method to update read voltages in a non-volatile memory in response to tracking data |
US9501398B2 (en) | 2012-12-26 | 2016-11-22 | Sandisk Technologies Llc | Persistent storage device with NVRAM for staging writes |
US9239751B1 (en) | 2012-12-27 | 2016-01-19 | Sandisk Enterprise Ip Llc | Compressing data from multiple reads for error control management in memory systems |
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 |
US9454420B1 (en) | 2012-12-31 | 2016-09-27 | Sandisk Technologies Llc | Method and system of reading threshold voltage equalization |
US9003264B1 (en) | 2012-12-31 | 2015-04-07 | Sandisk Enterprise Ip Llc | Systems, methods, and devices for multi-dimensional flash RAID data protection |
US20140201599A1 (en) * | 2013-01-15 | 2014-07-17 | International Business Machines Corporation | Error protection for integrated circuits in an insensitive direction |
US9041428B2 (en) | 2013-01-15 | 2015-05-26 | International Business Machines Corporation | Placement of storage cells on an integrated circuit |
US9021328B2 (en) | 2013-01-15 | 2015-04-28 | International Business Machines Corporation | Shared error protection for register banks |
US9201727B2 (en) | 2013-01-15 | 2015-12-01 | International Business Machines Corporation | Error protection for a data bus |
US9043683B2 (en) | 2013-01-23 | 2015-05-26 | International Business Machines Corporation | Error protection for integrated circuits |
US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
US9214965B2 (en) | 2013-02-20 | 2015-12-15 | Sandisk Enterprise Ip Llc | Method and system for improving data integrity in non-volatile storage |
US9870830B1 (en) | 2013-03-14 | 2018-01-16 | Sandisk Technologies Llc | Optimal multilevel sensing for reading data from a storage medium |
US9009576B1 (en) | 2013-03-15 | 2015-04-14 | Sandisk Enterprise Ip Llc | Adaptive LLR based on syndrome weight |
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 |
US9136877B1 (en) | 2013-03-15 | 2015-09-15 | Sandisk Enterprise Ip Llc | Syndrome layered decoding for LDPC codes |
US9236886B1 (en) | 2013-03-15 | 2016-01-12 | Sandisk Enterprise Ip Llc | Universal and reconfigurable QC-LDPC encoder |
US9092350B1 (en) | 2013-03-15 | 2015-07-28 | Sandisk Enterprise Ip Llc | Detection and handling of unbalanced errors in interleaved codewords |
US9367246B2 (en) | 2013-03-15 | 2016-06-14 | Sandisk Technologies Inc. | Performance optimization of data transfer for soft information generation |
US9170941B2 (en) | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
US9159437B2 (en) | 2013-06-11 | 2015-10-13 | Sandisk Enterprise IP LLC. | Device and method for resolving an LM flag issue |
US9043517B1 (en) | 2013-07-25 | 2015-05-26 | Sandisk Enterprise Ip Llc | Multipass programming in buffers implemented in non-volatile data storage systems |
US9524235B1 (en) | 2013-07-25 | 2016-12-20 | Sandisk Technologies Llc | Local hash value generation in non-volatile data storage systems |
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 |
US9639463B1 (en) | 2013-08-26 | 2017-05-02 | Sandisk Technologies Llc | Heuristic aware garbage collection scheme in storage systems |
US9361221B1 (en) | 2013-08-26 | 2016-06-07 | Sandisk Technologies Inc. | Write amplification reduction through reliable writes during garbage collection |
US9442670B2 (en) | 2013-09-03 | 2016-09-13 | Sandisk Technologies Llc | Method and system for rebalancing data stored in flash memory devices |
US9519577B2 (en) | 2013-09-03 | 2016-12-13 | Sandisk Technologies Llc | Method and system for migrating data between flash memory devices |
US9158349B2 (en) | 2013-10-04 | 2015-10-13 | Sandisk Enterprise Ip Llc | System and method for heat dissipation |
US9323637B2 (en) | 2013-10-07 | 2016-04-26 | Sandisk Enterprise Ip Llc | Power sequencing and data hardening architecture |
US9442662B2 (en) | 2013-10-18 | 2016-09-13 | Sandisk Technologies Llc | Device and method for managing die groups |
US9298608B2 (en) | 2013-10-18 | 2016-03-29 | Sandisk Enterprise Ip Llc | Biasing for wear leveling in storage systems |
US9436831B2 (en) | 2013-10-30 | 2016-09-06 | Sandisk Technologies Llc | Secure erase in a memory device |
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 |
US9152555B2 (en) | 2013-11-15 | 2015-10-06 | Sandisk Enterprise IP LLC. | Data management with modular erase in a data storage system |
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 |
US9122636B2 (en) | 2013-11-27 | 2015-09-01 | Sandisk Enterprise Ip Llc | Hard power fail architecture |
US9280429B2 (en) | 2013-11-27 | 2016-03-08 | Sandisk Enterprise Ip Llc | Power fail latching based on monitoring multiple power supply voltages in a storage device |
US9520162B2 (en) | 2013-11-27 | 2016-12-13 | Sandisk Technologies Llc | DIMM device controller supervisor |
US9250676B2 (en) | 2013-11-29 | 2016-02-02 | Sandisk Enterprise Ip Llc | Power failure architecture and verification |
US9582058B2 (en) | 2013-11-29 | 2017-02-28 | Sandisk Technologies Llc | Power inrush management of storage devices |
US9092370B2 (en) | 2013-12-03 | 2015-07-28 | Sandisk Enterprise Ip Llc | Power failure tolerant cryptographic erase |
US9235245B2 (en) | 2013-12-04 | 2016-01-12 | Sandisk Enterprise Ip Llc | Startup performance and power isolation |
US9129665B2 (en) | 2013-12-17 | 2015-09-08 | Sandisk Enterprise Ip Llc | Dynamic brownout adjustment in a storage device |
US9549457B2 (en) | 2014-02-12 | 2017-01-17 | Sandisk Technologies Llc | System and method for redirecting airflow across an electronic assembly |
US9497889B2 (en) | 2014-02-27 | 2016-11-15 | Sandisk Technologies Llc | Heat dissipation for substrate assemblies |
US9703636B2 (en) | 2014-03-01 | 2017-07-11 | Sandisk Technologies Llc | Firmware reversion trigger and control |
US9519319B2 (en) | 2014-03-14 | 2016-12-13 | Sandisk Technologies Llc | Self-supporting thermal tube structure for electronic assemblies |
US9348377B2 (en) | 2014-03-14 | 2016-05-24 | Sandisk Enterprise Ip Llc | Thermal isolation techniques |
US9485851B2 (en) | 2014-03-14 | 2016-11-01 | Sandisk Technologies Llc | Thermal tube assembly structures |
US9390814B2 (en) | 2014-03-19 | 2016-07-12 | Sandisk Technologies Llc | Fault detection and prediction for data storage elements |
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 |
US9390021B2 (en) | 2014-03-31 | 2016-07-12 | Sandisk Technologies Llc | Efficient cache utilization in a tiered data structure |
US9626400B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Compaction of information in tiered data structure |
US9626399B2 (en) | 2014-03-31 | 2017-04-18 | Sandisk Technologies Llc | Conditional updates for reducing frequency of data modification operations |
US9697267B2 (en) | 2014-04-03 | 2017-07-04 | Sandisk Technologies Llc | Methods and systems for performing efficient snapshots in tiered data structures |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
US9652381B2 (en) | 2014-06-19 | 2017-05-16 | Sandisk Technologies Llc | Sub-block garbage collection |
US20160299812A1 (en) * | 2015-04-08 | 2016-10-13 | Sandisk Enterprise Ip Llc | Device-Specific Variable Error Correction |
US9768808B2 (en) | 2015-04-08 | 2017-09-19 | Sandisk Technologies Llc | Method for modifying device-specific variable error correction settings |
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 |
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 |
US9727416B2 (en) * | 2015-07-01 | 2017-08-08 | Xilinx, Inc. | Variable code rate 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 |
CN106209118B (zh) * | 2016-06-29 | 2019-09-20 | 深圳忆联信息系统有限公司 | 一种信息处理方法及电子设备 |
US10282111B2 (en) * | 2016-07-29 | 2019-05-07 | Western Digital Technologies, Inc. | Adaptive wear levelling |
JP6725375B2 (ja) | 2016-09-14 | 2020-07-15 | キオクシア株式会社 | メモリシステムおよび方法 |
JP6818666B2 (ja) * | 2017-09-20 | 2021-01-20 | キオクシア株式会社 | メモリシステム |
US10761754B2 (en) | 2018-08-07 | 2020-09-01 | Micron Technology, Inc. | Adjustment of a pre-read operation associated with a write operation |
US11199999B2 (en) | 2020-01-30 | 2021-12-14 | Micron Technology, Inc. | Management of write operations in a non-volatile memory device using a variable pre-read voltage level |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW284867B (zh) * | 1994-08-31 | 1996-09-01 | Tdk Electronics Co Ltd | |
US20050172179A1 (en) * | 2004-01-29 | 2005-08-04 | Brandenberger Sarah M. | System and method for configuring a solid-state storage device with error correction coding |
WO2006013529A1 (en) * | 2004-08-02 | 2006-02-09 | Koninklijke Philips Electronics N.V. | Data storage and replay apparatus |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1249924B (zh) * | 1962-07-17 | |||
CA1235189A (en) * | 1985-01-14 | 1988-04-12 | Haruhiko Akiyama | Error correction encoding system |
US6477669B1 (en) * | 1997-07-15 | 2002-11-05 | Comsat Corporation | Method and apparatus for adaptive control of forward error correction codes |
KR100308214B1 (ko) * | 1998-12-30 | 2001-12-17 | 윤종용 | 듀얼칩반도체집적회로장치 |
US6438518B1 (en) * | 1999-10-28 | 2002-08-20 | Qualcomm Incorporated | Method and apparatus for using coding scheme selection patterns in a predictive speech coder to reduce sensitivity to frame error conditions |
JP2001308715A (ja) * | 2000-04-20 | 2001-11-02 | Mitsubishi Electric Corp | 可変長符号化装置および可変長復号装置 |
US7046644B1 (en) * | 2000-11-27 | 2006-05-16 | Nokia Mobile Phones Ltd. | Adaptive transmission channel allocation method and system for ISM and unlicensed frequency bands |
US20030005385A1 (en) * | 2001-06-27 | 2003-01-02 | Stieger Ronald D. | Optical communication system with variable error correction coding |
EP1422898B1 (en) * | 2001-08-28 | 2008-07-23 | Sony Corporation | Transmitter and transmission control method |
US7003712B2 (en) * | 2001-11-29 | 2006-02-21 | Emin Martinian | Apparatus and method for adaptive, multimode decoding |
US6751766B2 (en) | 2002-05-20 | 2004-06-15 | Sandisk Corporation | Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data |
JP2004186856A (ja) | 2002-12-02 | 2004-07-02 | Pioneer Electronic Corp | 誤り訂正方法、装置及びプログラム |
ES2726017T3 (es) * | 2005-10-28 | 2019-10-01 | Viasat Inc | Codificación y modulación adaptativa para la transmisión de datos de banda ancha |
KR100755668B1 (ko) * | 2006-02-10 | 2007-09-05 | 삼성전자주식회사 | 반도체 칩 및 이를 포함하는 반도체 칩 패키지 |
US8275045B2 (en) * | 2006-07-12 | 2012-09-25 | Qualcomm Incorporated | Video compression using adaptive variable length codes |
US7739576B2 (en) * | 2006-08-31 | 2010-06-15 | Micron Technology, Inc. | Variable strength ECC |
US7707380B2 (en) * | 2006-09-29 | 2010-04-27 | Qimonda Ag | Memories, method of storing data in memory and method of determining memory cell sector quality |
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 |
-
2007
- 2007-10-05 US US11/867,858 patent/US8171380B2/en active Active
- 2007-10-09 WO PCT/US2007/080845 patent/WO2008045893A1/en active Application Filing
- 2007-10-09 KR KR1020097009287A patent/KR101094421B1/ko active IP Right Grant
- 2007-10-11 TW TW096138035A patent/TWI381273B/zh active
-
2012
- 2012-04-27 US US13/459,013 patent/US8347187B2/en active Active
- 2012-12-27 US US13/727,914 patent/US8578248B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW284867B (zh) * | 1994-08-31 | 1996-09-01 | Tdk Electronics Co Ltd | |
US20050172179A1 (en) * | 2004-01-29 | 2005-08-04 | Brandenberger Sarah M. | System and method for configuring a solid-state storage device with error correction coding |
WO2006013529A1 (en) * | 2004-08-02 | 2006-02-09 | Koninklijke Philips Electronics N.V. | Data storage and replay apparatus |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105005450A (zh) * | 2014-04-25 | 2015-10-28 | 群联电子股份有限公司 | 数据写入方法、存储器存储装置及存储器控制电路单元 |
CN105005450B (zh) * | 2014-04-25 | 2018-11-02 | 群联电子股份有限公司 | 数据写入方法、存储器存储装置及存储器控制电路单元 |
Also Published As
Publication number | Publication date |
---|---|
US20130117637A1 (en) | 2013-05-09 |
US8347187B2 (en) | 2013-01-01 |
US20080086677A1 (en) | 2008-04-10 |
KR101094421B1 (ko) | 2011-12-15 |
KR20090084852A (ko) | 2009-08-05 |
TW200825740A (en) | 2008-06-16 |
WO2008045893A1 (en) | 2008-04-17 |
US20120278682A1 (en) | 2012-11-01 |
US8171380B2 (en) | 2012-05-01 |
US8578248B2 (en) | 2013-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI381273B (zh) | 用於儲存數據至記憶體單元和從記憶體單元擷取數據的自適應系統及其方法 | |
EP2229680B1 (en) | Memory controller supporting rate compatible punctured codes | |
US8996958B2 (en) | Method, device and computer program product for decoding a codeword | |
JP6257708B2 (ja) | フラッシュメモリの信頼性および寿命を改善するシステムおよび方法 | |
US8812939B2 (en) | Soft decoding systems and methods for flash based memory systems | |
US10498362B2 (en) | Low power error correcting code (ECC) system | |
US7840872B2 (en) | N-dimensional iterative ECC method and apparatus with combined erasure—error information and re-read | |
US8601354B1 (en) | Methods and apparatus for identification of likely errors in data blocks | |
KR20080106849A (ko) | 재생 장치 | |
TWI460733B (zh) | 具有低密度奇偶校驗碼解碼能力的記憶體控制裝置及方法 | |
US10574272B2 (en) | Memory system | |
US8797668B1 (en) | Systems and methods for penalty based multi-variant encoding | |
US6961197B1 (en) | Correcting errors in disk drive read back signals by iterating with the Reed-Solomon decoder | |
TWI627834B (zh) | 用於執行內建式自我測試的獨立磁碟冗餘陣列解碼系統 | |
KR20160075001A (ko) | 플래시 메모리 시스템 동작 방법 | |
US20170161141A1 (en) | Method and apparatus for correcting data in multiple ecc blocks of raid memory | |
KR101460240B1 (ko) | 메모리 기반 저장 장치 및 그것의 블록 관리 기법 |