TWI410979B - 快閃記憶體控制器、其錯誤更正碼控制器及其方法和系統 - Google Patents
快閃記憶體控制器、其錯誤更正碼控制器及其方法和系統 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Debugging And Monitoring (AREA)
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之快閃記憶體控制器,其中該第一錯誤更正碼資料和該第二錯誤更正碼資料之一錯誤更正碼片段係儲存於儲存該訊息資料之快閃頁。
- 根據請求項3之快閃記憶體控制器,其中該第一錯誤更正碼資料之其他錯誤更正碼片段係儲存於該快閃區塊之不同快閃頁。
- 根據請求項2之快閃記憶體控制器,其中該快閃記憶體之每一快閃頁係儲存超過一個的錯誤更正碼片段。
- 根據請求項5之快閃記憶體控制器,其中該快閃記憶體之每一快閃頁係儲存兩個錯誤更正碼片段。
- 根據請求項2之快閃記憶體控制器,其中該快閃記憶體介面控制器連同該等錯誤更正碼片段儲存一指標至該快閃記憶體以表示下個錯誤更正碼片段之位置。
- 根據請求項7之快閃記憶體控制器,其中該第一錯誤更正碼資料和該第二錯誤更正碼資料之最後一個錯誤更正碼片段之指標指向自己或儲存一空字元。
- 根據請求項2之快閃記憶體控制器,其中該快閃記憶體介面控制器儲存一點矩陣至該快閃記憶體以紀錄一快閃區塊內之快閃頁之備用區間之使用狀態。
- 根據請求項2之快閃記憶體控制器,其中該錯誤更正碼建構器所產生之錯誤更正碼資料之長度係根據每一快閃頁儲存之訊息資料之錯誤數量。
- 根據請求項1之快閃記憶體控制器,其中當該錯誤更正碼解碼器所解碼之訊息資料之錯誤數量超過一臨界值,即延 長其相應之第二錯誤更正碼資料之長度。
- 一種應用於快閃記憶體之錯誤更正碼控制器,包含:一錯誤更正碼編碼器,其根據欲儲存於一快閃記憶體之訊息資料產生不同長度之第一錯誤更正碼資料;一錯誤更正碼分割器,其根據每一第一錯誤更正碼資料之長度,分割每一第一錯誤更正碼資料成多個錯誤更正碼片段,其中每一該些錯誤更正碼片段儲存於一快閃區塊之不同快閃頁,並且透過一指標欄位內之指標係指向儲存一下一個錯誤更正碼片段之錯誤更正碼部分;一錯誤更正碼建構器,其對於每一自該快閃記憶體讀取之訊息資料合併一或多個該等錯誤更正碼片段以產生一第二錯誤更正碼資料;以及一錯誤更正碼解碼器,其利用該錯誤更正碼建構器產生之該錯誤更正碼資料更正該訊息資料之錯誤。
- 根據請求項12之錯誤更正碼控制器,其中每一訊息資料係儲存於該快閃記憶體之一快閃區塊之一快閃頁之一資料區間,而該等錯誤更正碼片段係儲存於該快閃記憶體之快閃區塊之快閃頁之複數個備用區間。
- 根據請求項13之錯誤更正碼控制器,其中該第一錯誤更正碼資料和該第二錯誤更正碼資料之一錯誤更正碼片段係儲存於儲存該訊息資料之快閃頁。
- 根據請求項14之錯誤更正碼控制器,其中該第一錯誤更正碼資料之其他錯誤更正碼片段係儲存於該快閃區塊之不同快閃頁。
- 根據請求項13之錯誤更正碼控制器,其中該快閃記憶體之每一快閃頁係儲存超過一個的錯誤更正碼片段。
- 根據請求項16之錯誤更正碼控制器,其中該快閃記憶體之每一快閃頁係儲存兩個錯誤更正碼片段。
- 根據請求項13之錯誤更正碼控制器,其中該錯誤更正碼編碼器所產生之錯誤更正碼資料之長度係根據每一快閃頁儲存之訊息資料之錯誤數量。
- 根據請求項12之錯誤更正碼控制器,其中當該錯誤更正碼解碼器所解碼之訊息資料之錯誤數量超過一臨界值,即延長其相應之該第二錯誤更正碼資料之長度。
- 一種快閃記憶體系統,包含:一快閃記憶體;以及一根據請求項1至12其中之一之快閃記憶體控制器。
- 一種對儲存於快閃記憶體之訊息資料編碼成為錯誤更正碼資料之方法,包含:產生相應於欲儲存於一快閃記憶體之一訊息資料之一錯誤更正碼資料;分割該錯誤更正碼資料成複數個錯誤更正碼片段;儲存該訊息資料至該快閃記憶體之一快閃區塊之一快閃頁;以及儲存該等錯誤更正碼片段至該快閃記憶體之該快閃區塊之複數個快閃頁,其中每一該些錯誤更正碼片段儲存於一快閃區塊之不同快閃頁,並且透過一指標欄位內之指標係指向儲存一下一個錯誤更正碼片段之錯誤更正碼部分。
- 根據請求項21之方法,其進一步包含:存取該訊息資料所在快閃頁之一錯誤更正碼部分;若該存取之錯誤更正碼部分並非該快閃頁之最後一個錯誤更正碼部分,則存取該存取之錯誤更正碼部分所指向連結之錯誤更正碼部分;以及若該存取之錯誤更正碼部分為該快閃頁之最後一個錯誤更正碼部分,則根據所存取之錯誤更正碼部分之數量決定該錯誤更正碼資料之長度。
- 根據請求項22之方法,其中每一錯誤更正碼部分皆包含一指標指向連結至另一個錯誤更正碼部分。
- 根據請求項22之方法,其中每一條連結中之錯誤更正碼部分皆屬於不同之快閃頁。
- 根據請求項22之方法,其中每一快閃頁係包含兩個錯誤更正碼部分。
- 根據請求項21之方法,其中該等錯誤更正碼片段係儲存於儲存該訊息資料之相同快閃區塊。
- 一種更正儲存於一快閃記憶體之訊息資料之錯誤之方法,包含:讀取儲存於一快閃記憶體之訊息資料;合併儲存於該快閃記憶體且相應於該訊息資料之一或多個錯誤更正碼片段成為一錯誤更正碼資料,其中每一該些錯誤更正碼片段儲存於一快閃區塊之不同快閃頁,並且透過一指標欄位內之指標係指向儲存一下一個錯誤更正碼片段之錯誤更正碼部分;以及 藉由解碼該訊息資料和該錯誤更正碼資料所形成之錯誤更正碼碼字更正該訊息資料之錯誤。
- 根據請求項27之方法,其進一步包含:讀取該訊息資料之一快閃頁之第一個錯誤更正碼部分;若該存取之錯誤更正碼部分並非最後一個錯誤更正碼部分,則存取該存取之錯誤更正碼部分所指向連結之錯誤更正碼部分;以及若該存取之錯誤更正碼部分為最後一個錯誤更正碼部分,則合併儲存於所存取之錯誤更正碼部分內之錯誤更正碼片段;其中每一錯誤更正碼部分儲存一錯誤更正碼片段。
- 根據請求項28之方法,其中每一錯誤更正碼部分皆包含一指標指向連結至另一個錯誤更正碼部分。
- 根據請求項28之方法,其中每一條連結中之錯誤更正碼部分皆屬於不同之快閃頁。
- 根據請求項28之方法,其中每一快閃頁係包含兩個錯誤更正碼部分。
- 根據請求項27之方法,其中該等錯誤更正碼片段係儲存於儲存該訊息資料之快閃區塊。
- 根據請求項28之方法,其進一步包含:若所更正之錯誤數量超過一臨界值,則連結另一個錯誤更正碼部分至最後一個錯誤更正碼部分。
- 根據請求項28之方法,其進一步包含: 更新一點矩陣,其中該點矩陣係紀錄儲存該訊息資料之快閃區塊內之錯誤更正碼部分之使用狀態。
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 (110)
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 | 忆正科技(武汉)有限公司 | 一种闪存交织校验纠错方法及闪存控制器 |
US8793552B2 (en) | 2012-11-14 | 2014-07-29 | International Business Machines Corporation | Reconstructive error recovery procedure (ERP) for multiple data sets using reserved buffer |
US9053748B2 (en) | 2012-11-14 | 2015-06-09 | International Business Machines Corporation | Reconstructive error recovery procedure (ERP) 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 |
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 |
US9141478B2 (en) | 2014-01-07 | 2015-09-22 | International Business Machines Corporation | Reconstructive error recovery procedure (ERP) using reserved buffer |
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 |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
US11960371B2 (en) | 2014-06-04 | 2024-04-16 | Pure Storage, Inc. | Message persistence in a zoned system |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
US8868825B1 (en) | 2014-07-02 | 2014-10-21 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
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 |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
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 |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US10983859B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Adjustable error correction based on memory health in a storage unit |
US9495255B2 (en) | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery 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 |
US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
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 |
US11734169B2 (en) | 2016-07-26 | 2023-08-22 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
US10366004B2 (en) | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
US11886334B2 (en) | 2016-07-26 | 2024-01-30 | Pure Storage, Inc. | Optimizing spool and memory space management |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
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 |
US10481798B2 (en) | 2016-10-28 | 2019-11-19 | Pure Storage, Inc. | Efficient flash management for multiple controllers |
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 |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity 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 |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
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 |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
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 |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US10976947B2 (en) | 2018-10-26 | 2021-04-13 | Pure Storage, Inc. | Dynamically selecting segment heights in a heterogeneous RAID group |
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 |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
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)
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)
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 | 퓨전-아이오, 인크. | 솔리드-스테이트 저장장치의 고장을 예측하는 장치, 시스템 및 방법 |
-
2008
- 2008-12-22 US US12/341,452 patent/US8473815B2/en active Active
-
2009
- 2009-02-19 AT AT09153166T patent/ATE479938T1/de not_active IP Right Cessation
- 2009-02-19 EP EP09153166A patent/EP2199911B1/en not_active Not-in-force
- 2009-02-19 DE DE602009000161T patent/DE602009000161D1/de active Active
- 2009-04-08 TW TW098111610A patent/TWI410979B/zh not_active IP Right Cessation
- 2009-05-04 CN CN200910136250.7A patent/CN101763903B/zh not_active Expired - Fee Related
Patent Citations (7)
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 |
---|---|
TW201025346A (en) | 2010-07-01 |
CN101763903B (zh) | 2013-03-13 |
EP2199911B1 (en) | 2010-09-01 |
US20100162083A1 (en) | 2010-06-24 |
US8473815B2 (en) | 2013-06-25 |
ATE479938T1 (de) | 2010-09-15 |
CN101763903A (zh) | 2010-06-30 |
DE602009000161D1 (de) | 2010-10-14 |
EP2199911A1 (en) | 2010-06-23 |
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 | |
US8555143B2 (en) | Flash memory controller and the method thereof | |
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 | |
CN112596674B (zh) | 一种用于固态硬盘主控缓存数据双重保护的方法及系统 | |
US8762814B2 (en) | Method for enhancing error correction capability, and associated memory device and controller thereof | |
CN106528437B (zh) | 数据储存系统与其相关方法 | |
US10735030B2 (en) | Re-encoding data associated with failed memory devices | |
US20130047056A1 (en) | Flash memory device with rectifiable redundancy and method of controlling the same | |
KR20160075001A (ko) | 플래시 메모리 시스템 동작 방법 | |
TW201521033A (zh) | 儲存裝置及其操作方法 | |
US10922025B2 (en) | Nonvolatile memory bad row management | |
TWI440039B (zh) | 快閃記憶體控制器及其方法 | |
TWI541818B (zh) | 於記憶體陣列編碼資料之技術 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |