TWI381273B - 用於儲存數據至記憶體單元和從記憶體單元擷取數據的自適應系統及其方法 - Google Patents

用於儲存數據至記憶體單元和從記憶體單元擷取數據的自適應系統及其方法 Download PDF

Info

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
Application number
TW096138035A
Other languages
English (en)
Other versions
TW200825740A (en
Inventor
Yang Xueshi
Wu Zining
Original Assignee
Marvell World Trade Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Marvell World Trade Ltd filed Critical Marvell World Trade Ltd
Publication of TW200825740A publication Critical patent/TW200825740A/zh
Application granted granted Critical
Publication of TWI381273B publication Critical patent/TWI381273B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

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. 如申請專利範圍第1項所述之系統,其中,該自適應數據編碼模組被進一步配置用於從所述複數個編碼系統中選擇用於對將被寫入所述記憶體裝置中的一個或一個以上記憶體單元構成的第二組的數據進行編碼的第二編碼系統,該第二編碼系統的選擇至少部分地基於一個或一個以上記憶體單元構成的所述第二組的第二品質值,其中所確定的第二品質值表示一個或一個以上記憶體單元構成的所述第二組的品質。
  3. 如申請專利範圍第2項所述之系統,其中,該第一和第二編碼系統是不同的編碼系統。
  4. 如申請專利範圍第2項所述之系統,其中,如果一個或一個以上記憶體單元構成的所述第一組的第一品質值是高於一個或一個以上記憶體單元構成的所述第二組的第二品質值的品質值,則該第一編碼系統被選擇為使得所述第一編碼系統比所述第二編碼系統具有更低的誤差校正能力。
  5. 如申請專利範圍第4項所述之系統,進一步包括品質圖,該品質圖用於為一個或一個以上記憶體單元構成的所述第一組和一個或一個以上記憶體單元構成的所述第二組提供所述品質值。
  6. 如申請專利範圍第1項所述之系統,進一步包括品質圖,該品質圖用於為一個或一個以上記憶體單元構成的所述第一組提供所述第一品質值。
  7. 如申請專利範圍第6項所述之系統,其中,該品質圖被配置用於為所述記憶體裝置中的一個或一個以上記憶體單元構成的複數個組儲存和 提供複數個品質值。
  8. 如申請專利範圍第7項所述之系統,其中,該品質圖被配置用於為所述記憶體裝置中的一個或一個以上記憶體單元構成的至少一個組儲存和提供至少一個品質值,該至少一個品質值表示一個或一個以上記憶體單元構成的所述至少一個組將不被使用。
  9. 如申請專利範圍第1項所述之系統,其中,該記憶體裝置的記憶體單元是快閃記憶體單元。
  10. 一種用於儲存數據至記憶體單元和從記憶體單元擷取數據的自適應系統,包括:一記憶體裝置,其包含一個以上記憶體單元;一讀取模組,其被配置用於讀取該記憶體單元;以及一數據品質監控模組,其被配置用於確定所述記憶體裝置中所包含的一個或一個以上記憶體單元構成的第一組的第一品質值,所確定的第一品質值表示一個或一個以上記憶體單元構成的所述第一組的品質,並且將被至少部分地用於選擇用於將數據寫入一個或一個以上記憶體單元構成的所述第一組的第一編碼系統。
  11. 如申請專利範圍第10項所述之系統,其中,該品質監控模組被配置用於至少部分地基於由所述讀取模組對一個或一個以上記憶體單元構成的所述第一組的讀取,確定一個或一個以上記憶體單元構成的所述第一組的所述第一品質值。
  12. 如申請專利範圍第10項所述之系統,進一步包括品質圖,該品質圖被配置為包含由所述數據品質監控模組所確定的一個或一個以上記憶體單元構成的所述第一組的所述第一品質值。
  13. 如申請專利範圍第12項所述之系統,其中,該品質圖被進一步配置為在時間上任何給定的時刻,包含一個或一個以上記憶體單元構成的所述第一組的另外品質值以及一個或一個以上記憶體單元構成的所述第一組的所述第一品質值,所述另外品質值在將所述第一品質值儲存至所述品質圖中之前被儲存在所述品質圖中。
  14. 如申請專利範圍第12項所述之系統,進一步包括信號處理和檢測模組以及誤差校正和解碼模組,該信號處理和檢測模組用於處理由所述讀取模組從一個或一個以上記憶體單元構成的所述第一組中所讀取的數 據,該誤差校正和解碼模組用於對由所述讀取模組從一個或一個以上記憶體單元構成的所述第一組中所讀取的數據進行解碼。
  15. 如申請專利範圍第14項所述之系統,其中,該品質圖被進一步配置用於向所述信號處理和檢測模組提供所述另外品質值以輔助對數據的所述處理。
  16. 如申請專利範圍第14項所述之系統,其中,該品質圖被進一步配置用於向所述誤差校正和解碼模組提供所述另外品質值以輔助對數據的所述解碼。
  17. 如申請專利範圍第10項所述之系統,其中,該數據品質監控模組被進一步配置用於確定所述記憶體裝置中的一個或一個以上記憶體單元構成的至少一個組的至少一個品質值,該至少一個品質值表示一個或一個以上記憶體單元構成的所述至少一個組將不被使用。
  18. 如申請專利範圍第10項所述之系統,其中,該數據品質監控模組被進一步配置用於至少部分地基於由所述讀取模組對所述記憶體單元的讀取,確定所述記憶體裝置中的一個或一個以上記憶體單元構成的第二組的第二品質值,該第二品質值表示一個或一個以上記憶體單元構成的所述第二組的品質,並且將被至少部分地用於選擇用於將數據寫入一個或一個以上記憶體單元構成的所述第二組的編碼系統。
  19. 如申請專利範圍第18項所述之系統,進一步包括品質圖,該品質圖被配置用於儲存由所述數據品質監控模組所確定的一個或一個以上記憶體單元構成的所述第一組和一個或一個以上記憶體單元構成的所述第二組的所述品質值。
  20. 如申請專利範圍第10項所述之系統,其中,該記憶體裝置的記憶體單元是快閃記憶體單元。
  21. 一種用於儲存數據至記憶體單元和從記憶體單元擷取數據的自適應系統,包括:一記憶體裝置,其包含複數個記憶體單元;以及一品質圖,在其中為所述記憶體裝置的一個或一個以上記憶體單元構成的第一組儲存第一品質值,該第一品質值將被用於輔助對從多個編碼系統中選擇用於對將被寫入一個或一個以上記憶體單元構成的所述第一組的數據進行編碼的第一編碼系統,其中該第一 品質值表示該等記憶體單元的一個或一個以上所構成的該第一組的品質。
  22. 如申請專利範圍第21項所述之系統其中,該品質圖中還為所述記憶體裝置的一個或一個以上記憶體單元構成的第二組儲存第二品質值,該第二品質值將被用於輔助對從所述多個編碼系統中選擇用於對將被寫入一個或一個以上記憶體單元構成的所述第二組的數據進行編碼的第二編碼系統。
  23. 如申請專利範圍第22項所述之系統,其中,如果該第一品質值是高於該第二品質值的品質值,則該第一編碼系統被選擇為使得該第一編碼系統比該第二編碼系統具有更低的誤差校正能力。
  24. 如申請專利範圍第21項所述之系統,其中,該記憶體裝置具有一個或一個以上記憶體單元構成的多個組,並且該品質圖被配置為針對一個或一個以上記憶體單元構成的每個組而包含相應品質值。
  25. 如申請專利範圍第24項所述之系統,其中,該品質圖被進一步配置為針對一個或一個以上記憶體單元構成的每個組並且在時間上的任何給定時刻,另外包含另外的相應品質值以及所述相應品質值,一個或一個以上記憶體單元構成的所述組的另外的相應品質值在一個或一個以上記憶體單元構成的所述組的相應品質值的儲存之前被儲存在所述品質圖中。
  26. 如申請專利範圍第21項所述之系統,其中,該品質圖被配置用於向信號處理和檢測模組和/或誤差校正和解碼模組提供所述第一品質值,以分別輔助對一個或一個以上記憶體單元構成的所述第一組中所儲存的數據的處理和/或解碼。
  27. 一種用於儲存數據至記憶體單元和從記憶體單元擷取數據的自適應系統,包括:一記憶體裝置,其包含複數個記憶體單元;一數據品質監控模組,其被配置用於確定所述記憶體裝置中所包含的一個或一個以上記憶體單元構成的第一組的第一品質值,所確定的第一品質值表示一個或一個以上記憶體單元構成的所述第一組的品質;以及一自適應數據編碼模組,其被配置用於從複數個編碼系統中選擇用於 對將被寫入所述記憶體裝置中一個或一個以上記憶體單元構成的所述第一組的數據進行編碼的第一編碼系統,該第一編碼系統的選擇至少部分地基於一個或一個以上記憶體單元構成的所述第一組的所確定的第一品質值。
  28. 如申請專利範圍第27項所述之系統,其中,該數據品質監控模組被進一步配置用於確定所述記憶體裝置中的一個或一個以上記憶體單元構成的第二組的第二品質值,該第二品質值表示一個或一個以上記憶體單元構成的所述第二組的品質。
  29. 如申請專利範圍第28項所述之系統,其中,該自適應數據編碼模組被進一步配置用於從所述多個編碼系統中選擇用於對將被寫入所述記憶體裝置中的一個或一個以上記憶體單元構成的所述第二組的數據進行編碼的第二編碼系統,該第二編碼系統的選擇至少部分地基於一個或一個以上記憶體單元構成的所述第二組的第二品質值。
  30. 如申請專利範圍第29項所述之系統,其中,如果該第一品質值是高於該第二品質值的品質值,則該第一編碼系統被選擇為使得該第一編碼系統比該第二編碼系統具有更低的誤差校正能力。
  31. 如申請專利範圍第27項所述之系統,進一步包括被配置用於讀取所述記憶體單元的讀取模組,並且其中該數據品質監控模組經由所述讀取模組可操作地耦合到所述記憶體裝置。
  32. 如申請專利範圍第31項所述之系統,進一步包括品質圖,該品質圖被配置為包含由該數據品質監控模組所確定的一個或一個以上記憶體單元構成的所述第一組的第一品質值。
  33. 如申請專利範圍第32項所述之系統,其中,該品質圖被進一步配置為在時間上的任何給定時刻,包含一個或一個以上記憶體單元構成的所述第一組的另外品質值以及一個或一個以上記憶體單元構成的所述第一組的所述第一品質值,該另外品質值在將所述第一品質值儲存至所述品質圖中之前被儲存在所述品質圖中。
  34. 如申請專利範圍第33項所述之系統,進一步包括信號處理和檢測模組以及誤差校正和解碼模組,該信號處理和檢測模組被配置用於處理由所述讀取模組從一個或一個以上記憶體單元構成的所述第一組中所讀取的數據,該誤差校正和解碼模組被配置用於對由所述讀取模組從一 個或一個以上記憶體單元構成的所述第一組中所讀取的數據進行解碼。
  35. 如申請專利範圍第34項所述之系統,其中,該品質圖被進一步配置用於向該信號處理和檢測模組提供所述另外品質值以輔助對數據的所述處理。
  36. 如申請專利範圍第34項所述之系統,其中,該品質圖被進一步配置用於向該誤差校正和解碼模組提供所述另外品質值以輔助對數據的所述解碼。
  37. 如申請專利範圍第27項所述之系統,進一步包括品質圖,該品質圖被配置用於為一個或一個以上記憶體單元構成的所述第一組儲存和提供所述第一品質值。
  38. 如申請專利範圍第37項所述之系統,其中,該品質圖被進一步配置用於為所述記憶體裝置中的一個或一個以上記憶體單元構成的複數個組儲存和提供複數個品質值。
  39. 如申請專利範圍第38項所述之系統,其中,該品質圖被進一步配置用於為所述記憶體裝置中的一個或一個以上記憶體單元構成的至少一個組儲存和提供至少一個品質值,該至少一個品質值表示一個或一個以上記憶體單元構成的所述至少一個組將不被使用。
  40. 一種用於儲存數據至記憶體單元和從記憶體單元擷取數據的方法,包括:確定記憶體裝置中所包含的一個或一個以上記憶體單元構成的第一組的第一品質值,所確定的第一品質值表示一個或一個以上記憶體單元構成的所述第一組的品質;以及從複數個編碼系統中選擇用於對將被寫入一個或一個以上記憶體單元構成的所述第一組的數據進行編碼的第一編碼系統,該第一編碼系統的選擇至少部分地基於一個或一個以上記憶體單元構成的所述第一組的所確定的第一品質值。
  41. 如申請專利範圍第40項所述之方法,進一步包括確定該記憶體裝置中的一個或一個以上記憶體單元構成的第二組的第二品質值,該第二品質值表示一個或一個以上記憶體單元構成的所述第二組的品質;以及 從所述複數個編碼系統中選擇用於對將被寫入一個或一個以上記憶體單元構成的所述第二組的數據進行編碼的第二編碼系統,該第二編碼系統的選擇至少部分地基於一個或一個以上記憶體單元構成的所述第二組的所述第二品質值。
  42. 如申請專利範圍第41項所述之方法,其中,如果該第一品質值是高於所述第二品質值的品質值,則所述第一編碼系統被選擇為使得所述第一編碼系統比所述第二編碼系統具有更低的誤差校正能力。
  43. 如申請專利範圍第40項所述之方法,進一步包括將該第一品質值儲存在品質圖中。
  44. 如申請專利範圍第43項所述之方法,進一步包括將該品質圖中所儲存的第一品質值提供給信號處理和檢測模組,以輔助對從一個或一個以上記憶體單元構成的所述第一組中所讀取的數據的處理。
  45. 如申請專利範圍第43項所述之方法,進一步包括將該品質圖中所儲存的第一品質值提供給誤差校正和解碼模組,以輔助對從一個或一個以上記憶體單元構成的所述第一組中所讀取的數據的解碼。
  46. 如申請專利範圍第40項所述之方法,進一步包括為所述記憶體裝置中的一個或一個以上記憶體單元構成的至少一個組確定至少一個品質值,所述至少一個品質值表示一個或一個以上記憶體單元構成的所述至少一個組將不被使用。
  47. 一種用於儲存數據至記憶體單元和從記憶體單元擷取數據的自適應系統,包括:用於確定記憶體裝置中所包含的一個或一個以上記憶體單元構成的第一組的第一品質值的裝置,所確定的第一品質值表示一個或一個以上記憶體單元構成的所述第一組的品質;以及用於從複數個編碼系統中選擇用於對將被寫入一個或一個以上記憶體單元構成的所述第一組的數據進行編碼的第一編碼系統的裝置,所述第一編碼系統的選擇至少部分地基於一個或一個以上記憶體單元構成的所述第一組的所確定的第一品質值。
  48. 如申請專利範圍第47項所述之系統,進一步包括:用於確定該記憶體裝置中的一個或一個以上記憶體單元構成的第二組的第二品質值的裝置,所述第二品質值表示一個或一個以上記憶體 單元構成的所述第二組的品質;以及用於從所述複數個編碼系統中選擇用於對將被寫入一個或一個以上記憶體單元構成的所述第二組的數據進行編碼的第二編碼系統的裝置,所述第二編碼系統的選擇至少部分地基於一個或一個以上記憶體單元構成的所述第二組的所述第二品質值。
  49. 如申請專利範圍第48項所述之系統,其中,如果該第一品質值是高於所述第二品質值的品質值,則所述第一編碼系統被選擇為使得所述第一編碼系統比所述第二編碼系統具有更低的誤差校正能力。
  50. 如申請專利範圍第47項所述之系統,進一步包括用於儲存該第一品質值的裝置。
  51. 如申請專利範圍第50項所述之系統,進一步包括用於信號處理和檢測的裝置,並且所述用於儲存的裝置被配置用於將所儲存的第一品質值提供給用於信號處理和檢測的裝置,以輔助對從一個或一個以上記憶體單元構成的所述第一組中所讀取的數據的處理。
  52. 如申請專利範圍第50項所述之系統,進一步包括用於誤差校正和解碼的裝置,並且所述用於儲存的裝置被配置用於將所儲存的第一品質值提供給用於誤差校正和解碼的裝置,以輔助對從一個或一個以上記憶體單元構成的所述第一組中所讀取的數據的解碼。
  53. 如申請專利範圍第47項所述之系統,進一步包括用於為該記憶體裝置中的一個或一個以上記憶體單元構成的至少一個組確定至少一個品質值的裝置,所述至少一個品質值表示一個或一個以上記憶體單元構成的所述至少一個組將不被使用。
TW096138035A 2006-10-10 2007-10-11 用於儲存數據至記憶體單元和從記憶體單元擷取數據的自適應系統及其方法 TWI381273B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105005450A (zh) * 2014-04-25 2015-10-28 群联电子股份有限公司 数据写入方法、存储器存储装置及存储器控制电路单元

Families Citing this family (115)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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) 메모리 기반 저장 장치 및 그것의 블록 관리 기법