TWI410979B - 快閃記憶體控制器、其錯誤更正碼控制器及其方法和系統 - Google Patents

快閃記憶體控制器、其錯誤更正碼控制器及其方法和系統 Download PDF

Info

Publication number
TWI410979B
TWI410979B TW098111610A TW98111610A TWI410979B TW I410979 B TWI410979 B TW I410979B TW 098111610 A TW098111610 A TW 098111610A TW 98111610 A TW98111610 A TW 98111610A TW I410979 B TWI410979 B TW I410979B
Authority
TW
Taiwan
Prior art keywords
error correction
correction code
flash
flash memory
data
Prior art date
Application number
TW098111610A
Other languages
English (en)
Other versions
TW201025346A (en
Inventor
Shen Ming Chung
Yi Cheng Chung
Original Assignee
Ind Tech Res Inst
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 Ind Tech Res Inst filed Critical Ind Tech Res Inst
Publication of TW201025346A publication Critical patent/TW201025346A/zh
Application granted granted Critical
Publication of TWI410979B publication Critical patent/TWI410979B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk

Description

快閃記憶體控制器、其錯誤更正碼控制器及其方法和系統
本發明係關於快閃記憶體。
由於功能持續的進步,快閃記憶體已在各種應用中(例如可攜式裝置)成為傳統馬達驅動磁碟外之另一種選擇。由於快閃記憶體沒有機械構件,相較於馬達驅動磁碟,快閃記憶體具有抗震動、低功率消耗及高速等優點。然而,快閃記憶體仍存在某些限制,其中之一便是快閃記憶體內之每一讀寫單元需在寫入前消除資料。另一限制是快閃記憶體內之每一讀寫單元皆具有消除寫入之次數限制,超過該次數限制可能會造成損壞之位元擴散至整個快閃記憶體。
傳統上,快閃記憶體可應用錯誤更正碼、平均讀寫演算法(wear leveling algorithm)或是損壞區塊管理(bad block management)等技術以減少因上述限制所造成之效能降低,並延長快閃記憶體之生命週期。為應用錯誤更正碼、平均讀寫演算法或是損壞區塊管理等技術,每一快閃頁(快閃記憶體中最小的讀寫單元)皆包含一資料區間和一備用區間,其中該資料區間儲存使用者之資料,而備用區間儲存管理資料,包含錯誤更正碼、平均讀寫演算法或是損壞區塊管理等技術所需之資料。
然而,快閃記憶體必須一次消除一快閃區塊之資料,而每一快閃區塊包含32個或更多之快閃頁。因此,若一快閃頁之損壞位元超過其所能更正之能力,損壞區塊管理技術會將整個快閃區塊標示為損壞快閃區塊。一旦被標示為損壞快閃區塊,所有位於該損壞快閃區塊內之快閃頁將無法被存取。若該損壞快閃區塊內之其他快閃頁仍具有更正錯誤能力的話,如此之標示將造成一種資源浪費。
美國專利公開號US 2008/0168319揭示一種系統和方法。如圖1所示,一錯誤更正碼控制器100,其編碼及解碼一快閃記憶體1000之資料,包含一錯誤更正碼編碼器102和一錯誤更正碼解碼器104。該錯誤更正碼編碼器102包含一第一編碼器106和一第二編碼器108。該錯誤更正碼解碼器104包含一第一解碼器110、一第二解碼器114和一解碼控制器112。該第一編碼器106和該第一解碼器110所組成之編解碼器具有高編解碼速度以及低錯誤更正能力,而該第二編碼器108和該第二解碼器114所組成之編解碼器具有低編解碼速度以及高錯誤更正能力。對於每一寫入資料,該第一編碼器106皆產生一第一錯誤更正碼資料,而第二編碼器108亦產生一第二錯誤更正碼資料,其中該第二錯誤更正碼資料之長度大於該第一錯誤更正碼資料之長度。對於每一讀取資料,該第一解碼器110皆解碼一第一錯誤更正碼碼字(codeword),其中該第一錯誤更正碼碼字係由一第一錯誤更正碼資料和該讀取資料合併而成。若該第一錯誤更正碼碼字之錯誤超過該第一解碼器110之更正能力,該第二解碼器114便解碼一第二錯誤更正碼碼字,其中該第二錯誤更正碼碼字係由一第二錯誤更正碼資料和該讀取資料合併而成。該錯誤更正碼控制器100即據此達成處理速度和錯誤更正能力間之妥協。
在美國專利公開號US 2008/0168319所揭示之系統和方法中,每一儲存於該快閃記憶體1000之資料皆需兩個用以儲存錯誤更正碼資料之空間而限制了可供利用的記憶體空間。該錯誤更正碼控制器100僅包含兩個編解碼器而固定了其錯誤更正能力。該錯誤更正碼控制器100也可包含三個以上的編解碼器以加強其錯誤更正能力。然而,由於每一資料所需之錯誤更正碼資料之儲存空間增加,此舉更進一步的限制了可供利用的記憶體空間。
有鑑於以上之敘述,有必要設計一種裝置和方法以增加快閃記憶體之生命週期,而其所需之記憶體空間遠小於習知技術所需之記憶體空間。
本發明之部分實施例提供了動態分配每一個快閃頁之備用區間之方法。換言之,每一儲存於一快閃記憶體內之一快閃區塊之訊息資料皆可擁有不同長度之錯誤更正碼資料,故達成根據每一快閃頁之特性,其皆擁有不同之錯誤更正能力。該等不同之錯誤更正能力延長了快閃記憶體之生命週期。本發明之部分實施例提供了編碼/解碼方法使得每一訊息資料僅擁有一錯誤更正碼資料。
本發明之快閃記憶體控制器之一實施例包含一快閃記憶體介面控制器、一主機介面控制器、一錯誤更正碼編碼器、一錯誤更正碼分割器、一錯誤更正碼建構器和一錯誤更正碼解碼器。該錯誤更正碼編碼器接收自該主機介面控制器之欲存至一快閃記憶體之訊息資料,並根據該訊息資料產生不同長度之第一錯誤更正碼資料。該錯誤更正碼分割器根據每一第一錯誤更正碼資料之長度分割每一第一錯誤更正碼資料成一或多個錯誤更正碼片段,並發送至該快閃記憶體介面控制器。該錯誤更正碼建構器對於每一自該快閃記憶體讀取之訊息資料自該快閃記憶體介面控制器接收一或多個錯誤更正碼片段,並合併該等錯誤更正碼片段以產生一第二錯誤更正碼資料。該錯誤更正碼解碼器根據該自該快閃記憶體讀取之訊息資料及該第二錯誤更正碼資料更正該訊息資料之錯誤,並發送更正後之訊息資料至該主機介面控制器。
本發明之應用於快閃記憶體之錯誤更正碼控制器之一實施例包含一錯誤更正碼編碼器、一錯誤更正碼分割器、一錯誤更正碼建構器和一錯誤更正碼解碼器。該錯誤更正碼編碼器根據欲儲存於一快閃記憶體之訊息資料產生不同長度之第一錯誤更正碼資料。該錯誤更正碼分割器根據每一第一錯誤更正碼資料之長度分割每一第一錯誤更正碼資料成一或多個錯誤更正碼片段。該錯誤更正碼建構器對於每一自該快閃記憶體讀取之訊息資料合併一或多個該等錯誤更正碼片段以產生一第二錯誤更正碼資料。該錯誤更正碼解碼器利用該錯誤更正碼建構器產生之該第二錯誤更正碼資料更正該訊息資料之錯誤。
本發明之快閃記憶體系統之一實施例包含一快閃記憶體和一根據上述實施例之快閃記憶體控制器。
本發明之編碼儲存於一快閃記憶體之訊息資料成錯誤更正碼資料之方法之一實施例包含:產生相應於欲儲存於一快閃記憶體之一訊息資料之一錯誤更正碼資料;分割該錯誤更正碼資料成複數個錯誤更正碼片段;儲存該訊息資料至該快閃記憶體之一快閃區塊之一快閃頁;以及儲存該等錯誤更正碼片段至該快閃記憶體之該快閃區塊之複數個快閃頁。
本發明之更正儲存於一快閃記憶體之訊息資料之錯誤之方法之一實施例包含:讀取儲存於一快閃記憶體之訊息資料;合併儲存於該快閃記憶體且相應於該訊息資料之一或多個錯誤更正碼片段成為一錯誤更正碼資料;以及藉由解碼該訊息資料和該錯誤更正碼資料所形成之錯誤更正碼碼字更正該訊息資料之錯誤。
為了能徹底地瞭解本發明,將在下列的描述中提出詳盡的說明,並請參見附圖。顯然地,本發明的施行並未限定於此領域之技藝者所熟習的特殊細節。另一方面,眾所周知步驟並未描述於細節中,以避免造成本發明不必要之限制。本發明的多個實施例會詳細描述如下,然而除了這些詳細描述之外,本發明還可以廣泛地施行在其他的實施例中,且本發明的範圍不受限定,其以之後的專利範圍為準。
圖2顯示根據本發明之實施例之快閃記憶體系統之示意圖。該快閃記憶體系統200包含一快閃記憶體控制器202和一快閃記憶體1000。該快閃記憶體控制器202包含一錯誤更正碼控制器204、一主機介面控制器206和一快閃記憶體介面控制器208。該主機介面控制器206經由一主機介面和一主機端2000傳遞資料。該快閃記憶體介面控制器208經由一快閃記憶體介面和該快閃記憶體1000傳遞資料。該錯誤更正碼控制器204包含一錯誤更正碼編碼器210、一錯誤更正碼分割器212、一錯誤更正碼建構器214和一錯誤更正碼解碼器216。該錯誤更正碼編碼器210用以根據欲儲存於該快閃記憶體1000之訊息資料產生不同長度之第一錯誤更正碼資料。該錯誤更正碼分割器212用以根據每一該錯誤更正碼編碼器210所產生之錯誤更正碼資料之長度,分割該等錯誤更正碼資料成一或多個錯誤更正碼片段。該錯誤更正碼建構器214係對於每一自該快閃記憶體1000讀取之訊息資料合併一或多個該等錯誤更正碼片段以產生一第二錯誤更正碼資料。該錯誤更正碼解碼器係利用該錯誤更正碼建構器214產生之該錯誤更正碼資料更正自該快閃記憶體1000讀取之該訊息資料之錯誤。
圖3顯示根據本發明之實施例之快閃頁之示意圖。該快閃頁300包含一資料區間310和一備用區間320,其中該資料區間310用以儲存使用者資料,而該備用區間320用以儲存管理資料。在本發明之部分實施例中,每一備用區間320皆包含兩個錯誤更正碼部分330。在本發明之部分實施例中,於一快閃頁300之錯誤更正碼部分330儲存之每一錯誤更正碼片段屬於不同之錯誤更正碼資料。
復參圖2和圖3,在本發明之部分實施例中,在進行寫入操作時,該快閃記憶體介面控制器208存取該快閃記憶體1000,並根據一訊息資料所在之資料區間310決定相應該資料區間310之錯誤更正碼資料之長度。該錯誤更正碼編碼器210即根據該長度及欲存於該資料區間310之訊息資料產生一第一錯誤更正碼資料。該錯誤更正碼分割器212係分割該錯誤更正碼資料成一或多個錯誤更正碼片段。該快閃記憶體介面控制器208接著存取該快閃記憶體1000以儲存該訊息資料和該等錯誤更正碼片段至該資料區間310和複數個備用區間320。在本發明之部分實施例中,第一個錯誤更正碼片段和該訊息資料係存於同一快閃頁300。
圖4顯示根據本發明之實施例之快閃區塊之示意圖。該快閃區塊400包含複數個如圖3所示之快閃頁300。在本發明之部分實施例中,每一錯誤更正碼部分330皆包含一指標欄位340,其中該指標欄位340內之指標係指向儲存下錯誤更正碼片段之錯誤更正碼部分330。例如,在本發明之部分實施例中,若一錯誤更正碼資料分成三個錯誤更正碼片段,則第一個錯誤更正碼片段係儲存於一快閃頁300之第一錯誤更正碼部分330,其中該快閃頁300即儲存對應該錯誤更正碼資料之訊息資料。如箭頭A1所示,該指標欄位340內之指標係指向另一快閃頁300,而該快閃頁300即儲存第二個錯誤更正碼片段。如箭頭A2所示,該第二個錯誤更正碼部分330之指標欄位340內之指標係指向另一個快閃頁300,而該快閃頁300即儲存第三個錯誤更正碼片段。如箭頭A3所示,該第三個錯誤更正碼部分330之指標欄位340內之指標係指向自己或儲存一空(Null)字元,以表示該錯誤更正碼部分330儲存該錯誤更正碼資料之最後一個錯誤更正碼片段。
復參圖2和圖4,在本發明之部分實施例中,在進行寫入操作時,錯誤更正碼資料之長度係由該等錯誤更正碼部分330之連線關係所決定,其中該等錯誤更正碼部分330即儲存相應該錯誤更正碼資料之錯誤更正碼片段,而該連線關係則由該等指標欄位340決定。
復參圖2和圖3,在本發明之部分實施例中,在進行讀取操作時,該快閃記憶體介面控制器208存取該快閃記憶體1000,並自一快閃頁300之一資料區間310讀取一訊息資料,其中儲存於該等錯誤更正碼部分330之一或多個錯誤更正碼片段也一起被讀取,而該等錯誤更正碼部分330之位置則由該等指標欄位340表示。該錯誤更正碼建構器214即藉由合併該等錯誤更正碼片段建構一第二錯誤更正碼資料。該錯誤更正碼解碼器216接著藉由解碼由合併該錯誤更正碼資料和該訊息資料所形成之錯誤更正碼碼字以更正該錯誤更正碼碼字之錯誤。在本發明之部分實施例中,若該等錯誤數量超過一臨界值,即提高該儲存該訊息資料之快閃頁300之錯誤更正能力。換言之,藉由連結該快閃頁300之最後一個錯誤更正碼部分330至另一可用之錯誤更正碼部分330,以增長下個欲存至該快閃頁300之訊息資料之錯誤更正碼資料之長度。
在本發明之部分實施例中,該快閃記憶體控制器202另於該快閃記憶體1000之每一快閃區塊400中儲存一點矩陣(bitmap),以表示該快閃區塊400中每一錯誤更正碼部分330之可用性。當欲提高該儲存該訊息資料之快閃頁300之錯誤更正能力時,即根據該點矩陣尋找一可用之錯誤更正碼部分。
圖5顯示根據本發明之實施例之編碼儲存於一快閃記憶體之訊息資料成錯誤更正碼資料之方法之流程圖,其可參考圖2之快閃記憶體系統200。在步驟501,決定相應於一欲儲存於該快閃記憶體1000之訊息資料之一第一錯誤更正碼資料之長度,並執行步驟502。在步驟502,產生該第一錯誤更正碼資料,並執行步驟503。在步驟503,分割該第一錯誤更正碼資料成複數個錯誤更正碼片段,並執行步驟504。在步驟504,儲存該訊息資料至該快閃記憶體1000之一快閃區塊400之一快閃頁300,並執行步驟505。在步驟505,儲存該等錯誤更正碼片段至該快閃記憶體1000之該快閃區塊400之複數個快閃頁300。
在本發明之部分實施例中,步驟501包含如圖6所示之次步驟。在步驟601,存取一欲儲存該訊息資料之該快閃頁300之備用區間320,並執行步驟602。在步驟602,檢查該備用區間320之第一個錯誤更正碼部分330之指標欄位340。若該指標欄位340儲存一空字元,則執行步驟502,反之則執行步驟603。在步驟603,存取該被檢查之指標欄位340所指向連結之錯誤更正碼部分330,並執行步驟604。檢查該所連結之錯誤更正碼部分330之指標欄位340。若該指標欄位340儲存一空字元,則執行步驟605,反之則執行步驟603。在步驟605,根據存取之錯誤更正碼部分330之數量決定該訊息資料相應之錯誤更正碼資料之長度,並執行步驟502。
圖7顯示根據本發明之實施例之更正儲存於一快閃記憶體之訊息資料之錯誤之方法之流程圖,其可參考圖2之快閃記憶體系統200。在步驟701,讀取儲存於一快閃記憶體系統1000之一訊息資料,並執行步驟702。在步驟702,合併儲存於該快閃記憶體系統1000之一或多個錯誤更正碼片段以形成一相應於該訊息資料之第二錯誤更正碼資料,並執行步驟703。在步驟703,藉由解碼由該第二錯誤更正碼資料和該訊息資料形成之錯誤更正碼碼字更正該訊息資料之錯誤。
在本發明之部分實施例中,步驟702包含如圖8所示之次步驟。在步驟801,存取一欲讀取該訊息資料之該快閃頁300之備用區間320,並執行步驟802。讀取儲存於該快閃頁300之該備用區間320之第一個錯誤更正碼部分330之錯誤更正碼片段,並執行步驟803。在步驟803,檢查該備用區間320之第一個錯誤更正碼部分330之指標欄位340。若該指標欄位340儲存一空字元,則執行步驟703,反之則執行步驟804。在步驟804,存取該被檢查之指標欄位340所指向連結之錯誤更正碼部分330,並執行步驟805。在步驟805,讀取儲存於該所連結之錯誤更正碼部分330之錯誤更正碼片段,並執行步驟806。在步驟806,檢查該所連結之錯誤更正碼部分330之指標欄位340。若該指標欄位340儲存一空字元,則執行步驟807,反之則執行步驟804。在步驟807,合併所有讀取之錯誤更正碼片段以產生一錯誤更正碼資料,並執行步驟703。
在本發明之部分實施例中,除了第一個錯誤更正碼部分330之外,每一個快閃頁300內之錯誤更正碼部分330皆由其他快閃頁300所指向連結,而該第一個錯誤更正碼部分330則儲存其所在快閃頁300之訊息資料之第一個錯誤更正碼片段。在本發明之部分實施例中,所有在同一個快閃區塊400之錯誤更正碼部分330所指向連結之快閃頁300皆位於該同一個快閃區塊400。
在本發明之部分實施例中,每一個快閃頁300皆包含兩個錯誤更正碼部分330,其中第一個錯誤更正碼部分330用以儲存其所在快閃頁300之訊息資料之第一個錯誤更正碼片段,另一個錯誤更正碼部分330則由另一個快閃頁300之錯誤更正碼部分330所指向連結。
在本發明之部分實施例中,在更正完訊息資料之所有錯誤後,如步驟703所示,便計算該等錯誤之數量。如果該數量超過一臨界值,則提高儲存該訊息資料之快閃頁300之錯誤更正能力,其可藉由連結另一個錯誤更正碼部分330至相應於該訊息資料之最後一個錯誤更正碼部分330,其中該最後一個錯誤更正碼部分330原本用以儲存最後一個錯誤更正碼片段。
綜上所述,對於容易發生損壞的快閃頁而言,本發明即藉由增加其錯誤更正碼資料之長度加強其錯誤更正能力。由於每一個快閃頁之備用區間之空間有限,每一個編碼出之錯誤更正碼資料即加以分割以形成複數個個錯誤更正碼片段,使其得以儲存至複數個快閃頁之備用區間。如此,不易發生損壞的快閃頁可分享其部分備用區間給容易發生損壞的快閃頁。因此,即使在同一個快閃區塊之快閃頁的損壞率皆不變,其損壞率仍可藉由本發明加以平衡而延後該快閃區塊被標示為損壞快閃區塊之時間。
對比於習知技術,本發明之實施例提供了動態分配每一個快閃頁之備用區間之方法。換言之,當有需要時,每一個資料區間可由同一個快閃區塊內之複數個備用區間所保護。對於容易發生損壞的快閃頁而言,其錯誤更正能力也得以加強。因此,該快閃區塊被標示為損壞快閃區塊之時間得以延後,而該快閃記憶體之生命週期也得以延長。此外,由於每一個訊息資料只對應一個錯誤更正碼資料,故相比於習知技術,本發明不需要浪費額外的記憶體空間。
本發明之技術內容及技術特點已揭示如上,然而熟悉本項技術之人士仍可能基於本發明之教示及揭示而作種種不背離本發明精神之替換及修飾。因此,本發明之保護範圍應不限於實施例所揭示者,而應包括各種不背離本發明之替換及修飾,並為以下之申請專利範圍所涵蓋。
100...錯誤更正碼控制器
102...錯誤更正碼編碼器
104...錯誤更正碼解碼器
106...第一編碼器
108...第二編碼器
110...第一解碼器
112...解碼控制器
114...第二解碼器
1000...快閃記憶體
200...快閃記憶體系統
202...快閃記憶體控制器
204...錯誤更正碼控制器
206...主機介面控制器
208...快閃記憶體介面控制器
210...錯誤更正碼編碼器
212...錯誤更正碼分割器
214...錯誤更正碼建構器
216...錯誤更正碼解碼器
2000...主機端
300...快閃頁
310...資料區間
320...備用區間
330...錯誤更正碼部分
340...指標欄位
400...快閃區塊
A1~A3...箭頭
501~505...步驟
601~605...步驟
701~703...步驟
801~807...步驟
圖1顯示美國專利公開號US 2008/0168319所揭示之錯誤更正碼控制器;
圖2顯示根據本發明之實施例之快閃記憶體系統之示意圖;
圖3顯示根據本發明之實施例之快閃頁之示意圖;
圖4顯示根據本發明之實施例之快閃區塊之示意圖;
圖5顯示根據本發明之實施例之編碼儲存於一快閃記憶體之訊息資料成錯誤更正碼資料之方法之流程圖;
圖6顯示根據本發明之實施例之編碼儲存於一快閃記憶體之訊息資料成錯誤更正碼資料之方法之部分流程圖;
圖7顯示根據本發明之實施例之更正儲存於一快閃記憶體之訊息資料之錯誤之方法之流程圖;以及
圖8顯示根據本發明之實施例之更正儲存於一快閃記憶體之訊息資料之錯誤之方法之部分流程圖。
1000...快閃記憶體
200...快閃記憶體系統
202...快閃記憶體控制器
204...錯誤更正碼控制器
206...主機介面控制器
208...快閃記憶體介面控制器
210...錯誤更正碼編碼器
212...錯誤更正碼分割器
214...錯誤更正碼建構器
216...錯誤更正碼解碼器
2000...主機端

Claims (34)

  1. 一種快閃記憶體控制器,包含:一快閃記憶體介面控制器;一主機介面控制器;一錯誤更正碼編碼器,其接收自該主機介面控制器之欲存至一快閃記憶體之訊息資料,並根據該訊息資料產生不同長度之第一錯誤更正碼資料;一錯誤更正碼分割器,其根據每一第一錯誤更正碼資料之長度,分割每一第一錯誤更正碼資料成多個錯誤更正碼片段,並發送至該快閃記憶體介面控制器,其中每一該些錯誤更正碼片段儲存於一快閃區塊之不同快閃頁,並且透過一指標欄位內之指標係指向儲存一下一個錯誤更正碼片段之錯誤更正碼部分;一錯誤更正碼建構器,其對於每一自該快閃記憶體讀取之訊息資料自該快閃記憶體介面控制器接收一或多個錯誤更正碼片段,並合併該等錯誤更正碼片段以產生一第二錯誤更正碼資料;以及一錯誤更正碼解碼器,其根據該自該快閃記憶體讀取之訊息資料及該第二錯誤更正碼資料更正該訊息資料之錯誤,並發送更正後之訊息資料至該主機介面控制器。
  2. 根據請求項1之快閃記憶體控制器,其中每一訊息資料係儲存於該快閃記憶體之一快閃區塊之一快閃頁之一資料區間,而該等錯誤更正碼片段係儲存於該快閃記憶體之快閃區塊之快閃頁之複數個備用區間。
  3. 根據請求項2之快閃記憶體控制器,其中該第一錯誤更正碼資料和該第二錯誤更正碼資料之一錯誤更正碼片段係儲存於儲存該訊息資料之快閃頁。
  4. 根據請求項3之快閃記憶體控制器,其中該第一錯誤更正碼資料之其他錯誤更正碼片段係儲存於該快閃區塊之不同快閃頁。
  5. 根據請求項2之快閃記憶體控制器,其中該快閃記憶體之每一快閃頁係儲存超過一個的錯誤更正碼片段。
  6. 根據請求項5之快閃記憶體控制器,其中該快閃記憶體之每一快閃頁係儲存兩個錯誤更正碼片段。
  7. 根據請求項2之快閃記憶體控制器,其中該快閃記憶體介面控制器連同該等錯誤更正碼片段儲存一指標至該快閃記憶體以表示下個錯誤更正碼片段之位置。
  8. 根據請求項7之快閃記憶體控制器,其中該第一錯誤更正碼資料和該第二錯誤更正碼資料之最後一個錯誤更正碼片段之指標指向自己或儲存一空字元。
  9. 根據請求項2之快閃記憶體控制器,其中該快閃記憶體介面控制器儲存一點矩陣至該快閃記憶體以紀錄一快閃區塊內之快閃頁之備用區間之使用狀態。
  10. 根據請求項2之快閃記憶體控制器,其中該錯誤更正碼建構器所產生之錯誤更正碼資料之長度係根據每一快閃頁儲存之訊息資料之錯誤數量。
  11. 根據請求項1之快閃記憶體控制器,其中當該錯誤更正碼解碼器所解碼之訊息資料之錯誤數量超過一臨界值,即延 長其相應之第二錯誤更正碼資料之長度。
  12. 一種應用於快閃記憶體之錯誤更正碼控制器,包含:一錯誤更正碼編碼器,其根據欲儲存於一快閃記憶體之訊息資料產生不同長度之第一錯誤更正碼資料;一錯誤更正碼分割器,其根據每一第一錯誤更正碼資料之長度,分割每一第一錯誤更正碼資料成多個錯誤更正碼片段,其中每一該些錯誤更正碼片段儲存於一快閃區塊之不同快閃頁,並且透過一指標欄位內之指標係指向儲存一下一個錯誤更正碼片段之錯誤更正碼部分;一錯誤更正碼建構器,其對於每一自該快閃記憶體讀取之訊息資料合併一或多個該等錯誤更正碼片段以產生一第二錯誤更正碼資料;以及一錯誤更正碼解碼器,其利用該錯誤更正碼建構器產生之該錯誤更正碼資料更正該訊息資料之錯誤。
  13. 根據請求項12之錯誤更正碼控制器,其中每一訊息資料係儲存於該快閃記憶體之一快閃區塊之一快閃頁之一資料區間,而該等錯誤更正碼片段係儲存於該快閃記憶體之快閃區塊之快閃頁之複數個備用區間。
  14. 根據請求項13之錯誤更正碼控制器,其中該第一錯誤更正碼資料和該第二錯誤更正碼資料之一錯誤更正碼片段係儲存於儲存該訊息資料之快閃頁。
  15. 根據請求項14之錯誤更正碼控制器,其中該第一錯誤更正碼資料之其他錯誤更正碼片段係儲存於該快閃區塊之不同快閃頁。
  16. 根據請求項13之錯誤更正碼控制器,其中該快閃記憶體之每一快閃頁係儲存超過一個的錯誤更正碼片段。
  17. 根據請求項16之錯誤更正碼控制器,其中該快閃記憶體之每一快閃頁係儲存兩個錯誤更正碼片段。
  18. 根據請求項13之錯誤更正碼控制器,其中該錯誤更正碼編碼器所產生之錯誤更正碼資料之長度係根據每一快閃頁儲存之訊息資料之錯誤數量。
  19. 根據請求項12之錯誤更正碼控制器,其中當該錯誤更正碼解碼器所解碼之訊息資料之錯誤數量超過一臨界值,即延長其相應之該第二錯誤更正碼資料之長度。
  20. 一種快閃記憶體系統,包含:一快閃記憶體;以及一根據請求項1至12其中之一之快閃記憶體控制器。
  21. 一種對儲存於快閃記憶體之訊息資料編碼成為錯誤更正碼資料之方法,包含:產生相應於欲儲存於一快閃記憶體之一訊息資料之一錯誤更正碼資料;分割該錯誤更正碼資料成複數個錯誤更正碼片段;儲存該訊息資料至該快閃記憶體之一快閃區塊之一快閃頁;以及儲存該等錯誤更正碼片段至該快閃記憶體之該快閃區塊之複數個快閃頁,其中每一該些錯誤更正碼片段儲存於一快閃區塊之不同快閃頁,並且透過一指標欄位內之指標係指向儲存一下一個錯誤更正碼片段之錯誤更正碼部分。
  22. 根據請求項21之方法,其進一步包含:存取該訊息資料所在快閃頁之一錯誤更正碼部分;若該存取之錯誤更正碼部分並非該快閃頁之最後一個錯誤更正碼部分,則存取該存取之錯誤更正碼部分所指向連結之錯誤更正碼部分;以及若該存取之錯誤更正碼部分為該快閃頁之最後一個錯誤更正碼部分,則根據所存取之錯誤更正碼部分之數量決定該錯誤更正碼資料之長度。
  23. 根據請求項22之方法,其中每一錯誤更正碼部分皆包含一指標指向連結至另一個錯誤更正碼部分。
  24. 根據請求項22之方法,其中每一條連結中之錯誤更正碼部分皆屬於不同之快閃頁。
  25. 根據請求項22之方法,其中每一快閃頁係包含兩個錯誤更正碼部分。
  26. 根據請求項21之方法,其中該等錯誤更正碼片段係儲存於儲存該訊息資料之相同快閃區塊。
  27. 一種更正儲存於一快閃記憶體之訊息資料之錯誤之方法,包含:讀取儲存於一快閃記憶體之訊息資料;合併儲存於該快閃記憶體且相應於該訊息資料之一或多個錯誤更正碼片段成為一錯誤更正碼資料,其中每一該些錯誤更正碼片段儲存於一快閃區塊之不同快閃頁,並且透過一指標欄位內之指標係指向儲存一下一個錯誤更正碼片段之錯誤更正碼部分;以及 藉由解碼該訊息資料和該錯誤更正碼資料所形成之錯誤更正碼碼字更正該訊息資料之錯誤。
  28. 根據請求項27之方法,其進一步包含:讀取該訊息資料之一快閃頁之第一個錯誤更正碼部分;若該存取之錯誤更正碼部分並非最後一個錯誤更正碼部分,則存取該存取之錯誤更正碼部分所指向連結之錯誤更正碼部分;以及若該存取之錯誤更正碼部分為最後一個錯誤更正碼部分,則合併儲存於所存取之錯誤更正碼部分內之錯誤更正碼片段;其中每一錯誤更正碼部分儲存一錯誤更正碼片段。
  29. 根據請求項28之方法,其中每一錯誤更正碼部分皆包含一指標指向連結至另一個錯誤更正碼部分。
  30. 根據請求項28之方法,其中每一條連結中之錯誤更正碼部分皆屬於不同之快閃頁。
  31. 根據請求項28之方法,其中每一快閃頁係包含兩個錯誤更正碼部分。
  32. 根據請求項27之方法,其中該等錯誤更正碼片段係儲存於儲存該訊息資料之快閃區塊。
  33. 根據請求項28之方法,其進一步包含:若所更正之錯誤數量超過一臨界值,則連結另一個錯誤更正碼部分至最後一個錯誤更正碼部分。
  34. 根據請求項28之方法,其進一步包含: 更新一點矩陣,其中該點矩陣係紀錄儲存該訊息資料之快閃區塊內之錯誤更正碼部分之使用狀態。
TW098111610A 2008-12-22 2009-04-08 快閃記憶體控制器、其錯誤更正碼控制器及其方法和系統 TWI410979B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/341,452 US8473815B2 (en) 2008-12-22 2008-12-22 Methods and systems of a flash memory controller and an error correction code (ECC) controller using variable-length segmented ECC data

Publications (2)

Publication Number Publication Date
TW201025346A TW201025346A (en) 2010-07-01
TWI410979B true TWI410979B (zh) 2013-10-01

Family

ID=40491051

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098111610A TWI410979B (zh) 2008-12-22 2009-04-08 快閃記憶體控制器、其錯誤更正碼控制器及其方法和系統

Country Status (6)

Country Link
US (1) US8473815B2 (zh)
EP (1) EP2199911B1 (zh)
CN (1) CN101763903B (zh)
AT (1) ATE479938T1 (zh)
DE (1) DE602009000161D1 (zh)
TW (1) TWI410979B (zh)

Families Citing this family (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458562B1 (en) * 2008-12-30 2013-06-04 Micron Technology, Inc. Secondary memory element for non-volatile memory
US8549384B1 (en) * 2009-06-26 2013-10-01 Marvell International Ltd. Method and apparatus for determining, based on an error correction code, one or more locations to store data in a flash memory
KR101666987B1 (ko) * 2010-04-20 2016-10-17 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
TWI440039B (zh) * 2010-09-07 2014-06-01 Ind Tech Res Inst 快閃記憶體控制器及其方法
US20120254686A1 (en) * 2010-10-01 2012-10-04 SIGLEAD Inc. Non-volatile semiconductor memory devices and error correction methods
JP2012109889A (ja) * 2010-11-19 2012-06-07 Sony Corp 送信装置、送信方法、受信装置、受信方法、プログラム、および伝送システム
CN102063342A (zh) * 2010-12-28 2011-05-18 深圳市江波龙电子有限公司 一种闪存存储设备数据的管理方法及系统
TWI467364B (zh) 2011-07-12 2015-01-01 Phison Electronics Corp 記憶體儲存裝置、記憶體控制器與資料寫入方法
CN102890645B (zh) * 2011-07-20 2015-11-25 群联电子股份有限公司 存储器储存装置、存储器控制器与数据写入方法
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US9048876B2 (en) * 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction
US8954825B2 (en) * 2012-03-06 2015-02-10 Micron Technology, Inc. Apparatuses and methods including error correction code organization
US20130262942A1 (en) * 2012-03-27 2013-10-03 Yung-Chiang Chu Flash memory lifetime evaluation method
US8694862B2 (en) * 2012-04-20 2014-04-08 Arm Limited Data processing apparatus using implicit data storage data storage and method of implicit data storage
WO2013171806A1 (en) * 2012-05-18 2013-11-21 Hitachi, Ltd. Semiconductor storage device and control method of nonvolatile memory
US20140006897A1 (en) * 2012-06-29 2014-01-02 International Business Machines Corporation Correction of structured burst errors in data
CN102929736B (zh) * 2012-10-23 2016-05-11 忆正科技(武汉)有限公司 一种闪存交织校验纠错方法及闪存控制器
US9053748B2 (en) 2012-11-14 2015-06-09 International Business Machines Corporation Reconstructive error recovery procedure (ERP) using reserved buffer
US8793552B2 (en) 2012-11-14 2014-07-29 International Business Machines Corporation Reconstructive error recovery procedure (ERP) for multiple data sets using reserved buffer
JP2014140111A (ja) * 2013-01-21 2014-07-31 Sony Corp コントローラ、情報処理システム、コントローラの制御方法およびプログラム
US9009562B2 (en) * 2013-01-30 2015-04-14 Hewlett-Packard Development Company, L.P. Providing memory protection using a modified error correction code
US8810944B1 (en) 2013-07-16 2014-08-19 International Business Machines Corporation Dynamic buffer size switching for burst errors encountered while reading a magnetic tape
US9141478B2 (en) 2014-01-07 2015-09-22 International Business Machines Corporation Reconstructive error recovery procedure (ERP) using reserved buffer
US9582360B2 (en) 2014-01-07 2017-02-28 International Business Machines Corporation Single and multi-cut and paste (C/P) reconstructive error recovery procedure (ERP) using history of error correction
US9417945B2 (en) 2014-03-05 2016-08-16 International Business Machines Corporation Error checking and correction for NAND flash devices
US9684559B1 (en) 2014-04-25 2017-06-20 Altera Corporation Methods and apparatus for storing error correction information on a memory controller circuit
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
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
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9424929B1 (en) * 2015-03-11 2016-08-23 Kabushiki Kaisha Toshiba Memory system and memory control method
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10108344B1 (en) * 2015-05-06 2018-10-23 American Megatrends, Inc. Systems, devices and methods using a solid state device as a caching medium with an SSD filtering or SSD pre-fetch algorithm
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
CN108874576B (zh) * 2017-05-10 2022-01-07 中国航空工业集团公司西安飞行自动控制研究所 一种基于纠错编码的数据存储系统
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
TWI725386B (zh) * 2019-02-25 2021-04-21 群聯電子股份有限公司 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW461993B (en) * 1997-10-28 2001-11-01 Key Technology Corp Control device and method for improving data access reliability
US20020162070A1 (en) * 2001-04-26 2002-10-31 Storage Technology Corporation Dynamic error correction code shortening
US20030037299A1 (en) * 2001-08-16 2003-02-20 Smith Kenneth Kay Dynamic variable-length error correction code
US20040083334A1 (en) * 2002-10-28 2004-04-29 Sandisk Corporation Method and apparatus for managing the integrity of data in non-volatile memory system
US7117421B1 (en) * 2002-05-31 2006-10-03 Nvidia Corporation Transparent error correction code memory system and method
US20070226592A1 (en) * 2006-03-20 2007-09-27 Micron Technology, Inc. Variable sector-count ECC
US20080072120A1 (en) * 2006-08-31 2008-03-20 Micron Technology, Inc. Variable Strength ECC

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5459850A (en) * 1993-02-19 1995-10-17 Conner Peripherals, Inc. Flash solid state drive that emulates a disk drive and stores variable length and fixed lenth data blocks
US6499083B1 (en) * 1999-09-15 2002-12-24 Western Digital Ventures, Inc. Disk-based storage system responsive to a direction-selection signal for autonomously controlling seeks in a sequence determined by the direction-selection signal and a locally-stored doubly linked list
JP2007305267A (ja) * 2006-05-15 2007-11-22 Toshiba Corp 半導体記憶装置
US20070300130A1 (en) * 2006-05-17 2007-12-27 Sandisk Corporation Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices
KR100842680B1 (ko) * 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
CN100570754C (zh) * 2007-04-24 2009-12-16 福州瑞芯微电子有限公司 Bch纠错技术中的纠错信息处理方法及其处理装置
CN101060015A (zh) * 2007-05-23 2007-10-24 北京芯技佳易微电子科技有限公司 一种多比特闪存及其错误检测和纠正的方法
KR20110086725A (ko) * 2008-11-10 2011-07-29 퓨전-아이오, 인크. 솔리드-스테이트 저장장치의 고장을 예측하는 장치, 시스템 및 방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW461993B (en) * 1997-10-28 2001-11-01 Key Technology Corp Control device and method for improving data access reliability
US20020162070A1 (en) * 2001-04-26 2002-10-31 Storage Technology Corporation Dynamic error correction code shortening
US20030037299A1 (en) * 2001-08-16 2003-02-20 Smith Kenneth Kay Dynamic variable-length error correction code
US7117421B1 (en) * 2002-05-31 2006-10-03 Nvidia Corporation Transparent error correction code memory system and method
US20040083334A1 (en) * 2002-10-28 2004-04-29 Sandisk Corporation Method and apparatus for managing the integrity of data in non-volatile memory system
US20070226592A1 (en) * 2006-03-20 2007-09-27 Micron Technology, Inc. Variable sector-count ECC
US20080072120A1 (en) * 2006-08-31 2008-03-20 Micron Technology, Inc. Variable Strength ECC

Also Published As

Publication number Publication date
CN101763903B (zh) 2013-03-13
US8473815B2 (en) 2013-06-25
EP2199911B1 (en) 2010-09-01
CN101763903A (zh) 2010-06-30
US20100162083A1 (en) 2010-06-24
EP2199911A1 (en) 2010-06-23
ATE479938T1 (de) 2010-09-15
TW201025346A (en) 2010-07-01
DE602009000161D1 (de) 2010-10-14

Similar Documents

Publication Publication Date Title
TWI410979B (zh) 快閃記憶體控制器、其錯誤更正碼控制器及其方法和系統
US8707135B2 (en) Method and system of dynamic data storage for error correction in a memory device
US8239725B2 (en) Data storage with an outer block code and a stream-based inner code
JP5658128B2 (ja) Nandフラッシュ・メモリにおける確率論的多層エラー訂正のためのシステム、方法、およびコンピュータ・プログラム
US8769374B2 (en) Multi-write endurance and error control coding of non-volatile memories
US7900118B2 (en) Flash memory system and method for controlling the same
KR101317720B1 (ko) 데이터 엔코딩 시스템 및 방법
US9130597B2 (en) Non-volatile memory error correction
US8321757B2 (en) Method and apparatus for error correction
US20100241932A1 (en) Error detector/corrector, memory controller, and semiconductor memory device
TWI441181B (zh) 用來進行資料整形之方法以及其記憶裝置及控制器
CN112596674B (zh) 一种用于固态硬盘主控缓存数据双重保护的方法及系统
US8762814B2 (en) Method for enhancing error correction capability, and associated memory device and controller thereof
US10735030B2 (en) Re-encoding data associated with failed memory devices
US20130047056A1 (en) Flash memory device with rectifiable redundancy and method of controlling the same
CN106528437B (zh) 数据储存系统与其相关方法
KR20160075001A (ko) 플래시 메모리 시스템 동작 방법
TW201521033A (zh) 儲存裝置及其操作方法
US10922025B2 (en) Nonvolatile memory bad row management
TWI440039B (zh) 快閃記憶體控制器及其方法
TWI541818B (zh) 於記憶體陣列編碼資料之技術
US20200387318A1 (en) Repetitive data processing method for solid state drive

Legal Events

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