TWI440039B - 快閃記憶體控制器及其方法 - Google Patents

快閃記憶體控制器及其方法 Download PDF

Info

Publication number
TWI440039B
TWI440039B TW99144682A TW99144682A TWI440039B TW I440039 B TWI440039 B TW I440039B TW 99144682 A TW99144682 A TW 99144682A TW 99144682 A TW99144682 A TW 99144682A TW I440039 B TWI440039 B TW I440039B
Authority
TW
Taiwan
Prior art keywords
error correction
correction code
flash memory
extended
flash
Prior art date
Application number
TW99144682A
Other languages
English (en)
Other versions
TW201212036A (en
Inventor
Shen Ming 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
Priority claimed from US12/876,644 external-priority patent/US8555143B2/en
Application filed by Ind Tech Res Inst filed Critical Ind Tech Res Inst
Publication of TW201212036A publication Critical patent/TW201212036A/zh
Application granted granted Critical
Publication of TWI440039B publication Critical patent/TWI440039B/zh

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

快閃記憶體控制器及其方法
本揭露係關於快閃記憶體,特別係關於快閃記憶體之錯誤更正碼之方法和系統。
由於功能持續的進步,快閃記憶體已在各種應用中(例如可攜式裝置)成為傳統馬達驅動磁碟外之另一種選擇。由於快閃記憶體沒有機械構件,相較於馬達驅動磁碟,快閃記憶體具有抗震動、低功率消耗及高速等優點。然而,快閃記憶體仍存在某些限制,其中之一便是快閃記憶體內之每一讀寫單元需在寫入前執行消除動作(Erase Operation)以消除前一筆資料。另一限制是快閃記憶體內之每一讀寫單元皆具有消除/寫入之次數限制,超過該次數限制將產生位元損壞之現象,損害到使用者資料。
傳統上,快閃記憶體可應用錯誤更正碼、平均耗損演算法(wear leveling algorithm)或是損壞區塊管理(bad block management)等技術以減少因上述限制所造成之效能降低,並延長快閃記憶體之生命期。為應用錯誤更正碼、平均耗損演算法或是損壞區塊管理等技術,每一快閃頁(快閃記憶體中最小的讀寫單元)皆包含一資料區間(Data Area)和一備用區間(Spare Area),其中該資料區間儲存使用者之資料,而備用區間儲存管理資料,包含錯誤更正碼、平均耗損演算法或是損壞區塊管理等技術所需之資料。
然而,快閃記憶體必須一次消除一快閃區塊(Flash Block),而每一快閃區塊包含32個或更多之快閃頁(Flash Page)。因此,若一快閃頁之損壞位元超過其所能更正之能力,損壞區塊管理技術會將整個快閃區塊標示為已損壞快閃區塊。一旦被標示為已損壞快閃區塊,所有位於該損壞快閃區塊內之快閃頁將無法再被存取。若該損壞快閃區塊內之其他快閃頁仍具有更正錯誤能力的話,如此之標示將造成資源浪費。
目前有一種方法和系統可根據需求增加錯誤更正碼之長度進而增強錯誤更正碼之能力,以延長快閃記憶體之使用壽命。在產生錯誤更正碼後,使用者資料係儲存於快閃記憶體之一快閃頁之資料區間,而該錯誤更正碼並分割(segment)為複數個片段並儲存於複數個快閃頁之備用區間。該種方法和系統適用於可切割(partition)其快閃頁之備用區間之快閃記憶體。然而,對於無法切割其快閃頁之備用區間之快閃記憶體而言,需要一種更方便的方法和系統。
據此,業界所需要的是一種系統及方法,其適用於無法切割其快閃頁之備用區間之快閃記憶體以延長其使用壽命。
本揭露之部分實施例提供了動態分配每一個快閃區塊之備用區間之方法。換言之,每一儲存於一快閃記憶體內之訊息資料皆可擁有不同長度之錯誤更正碼資料,故達成根據每一快閃頁之特性,付予其不同之錯誤更正能力。該等不同之錯誤更正能力可延長快閃記憶體之生命期。
本揭露揭示一種快閃記憶體控制器,包含一快閃記憶體介面控制器、一主機介面控制器、一隨機存取記憶體介面控制器、一錯誤更正碼編碼器、一錯誤更正碼分割器、一錯誤更正碼建構器和一錯誤更正碼解碼器。該快閃記憶體介面控制器被設置係設定以儲存訊息資料、錯誤更正碼片段和鏈結串列(Linked-list)至一快閃記憶體,以及自該快閃記憶體讀取訊息資料,錯誤更正碼片段和該等鏈結串列。該主機介面控制器被設置係設定以發送訊息資料至一主機以及自該主機接收訊息資料。該隨機存取記憶體介面控制器被設置係設定以儲存該等鏈結串列至一隨機存取記憶體以及自該隨機存取記憶體讀取該等鏈結串列。該錯誤更正碼編碼器被設置係設定以在操作於一寫入動作(Write Operation)時,自該主機介面控制器接收欲寫入至該快閃記憶體之一寫入資料(Write Datum)並產生對應至該寫入資料之一可變長度之錯誤更正碼。該錯誤更正碼分割器被設置以在操作於一寫入動作時,根據該產生之錯誤更正碼之長度分割該產生之錯誤更正碼成複數個錯誤更正碼片段,並發送該等錯誤更正碼片段至該快閃記憶體介面控制器。該錯誤更正碼建構器被設置以在操作於一讀取動作(Read Operation)時,自該快閃記憶體介面控制器接收對應至一自該快閃記憶體讀取之一讀取資料(Read Datum)之複數個錯誤更正碼片段,並合併該等錯誤更正碼片段以建構成一錯誤更正碼。該錯誤更正碼解碼器被設置以在操作於一讀取動作時,根據該讀取息資料和該建構之錯誤更正碼更正該讀取資料之錯誤,並發送該更正後之讀取資料至該主機介面控制器。該等錯誤更正碼片段之鏈結關係(link relation)係表示於該等鏈結串列。
本揭露揭示一種寫入資料和其對應之錯誤更正碼至一快閃記憶體之方法,包含下列步驟:自一快閃記憶體之至少一延長頁(Extended Page)之至少一備用區間(Spare Area)讀取一鏈結串列,其中每一延長頁係由複數個快閃頁(Flash Page)合併而成;根據一欲寫入至該快閃記憶體之一寫入資料產生一錯誤更正碼,其中該錯誤更正碼之長度取決於該鏈結串列的結點(node)數目;根據該錯誤更正碼之長度分割該錯誤更正碼成複數個錯誤更正碼片段;儲存該寫入資料至該快閃記憶體之一延長頁之一延長資料區間(Extended Data Area);以及根據該鏈結串列儲存該等錯誤更正碼片段至該快閃記憶體之至少一延長頁之複數個備用區間。
本揭露揭示一種自一快閃記憶體讀取資料和其對應之錯誤更正碼至之方法,包含下列步驟:自一快閃記憶體之至少一延長頁之至少一備用區間讀取一鏈結串列,其中每一延長頁係由複數個快閃頁合併而成;自該快閃記憶體之一延長頁之一延長資料區間讀取一讀取資料;根據該鏈結串列自該快閃記憶體之至少一延長頁之複數個備用區間讀取複數個錯誤更正碼片段;合併該等錯誤更正碼片段成一錯誤更正碼;以及根據該讀取資料和該錯誤更正碼更正該訊息資料。
上文已經概略地敍述本揭露之技術特徵,俾使下文之詳細描述得以獲得較佳瞭解。構成本揭露之申請專利範圍標的之其它技術特徵將描述於下文。本揭露所屬技術領域中具有通常知識者應可瞭解,下文揭示之概念與特定實施例可作為基礎而相當輕易地予以修改或設計其它結構或製程而實現與本揭露相同之目的。本揭露所屬技術領域中具有通常知識者亦應可瞭解,這類等效的建構並無法脫離後附之申請專利範圍所提出之本揭露的精神和範圍。
本揭露在此所探討的方向為一種快閃記憶體控制器及其方法。為了能徹底地瞭解本揭露,將在下列的描述中提出詳盡的步驟及組成。顯然地,本揭露的施行並未限定於本揭露技術領域之技藝者所熟習的特殊細節。另一方面,眾所周知的組成或步驟並未描述於細節中,以避免造成本揭露不必要之限制。本揭露的較佳實施例會詳細描述如下,然而除了這些詳細描述之外,本揭露還可以廣泛地施行在其他的實施例中,且本揭露的範圍不受限定,以其之後的專利範圍為主。
圖1顯示本揭露之一實施例之快閃記憶體控制器之示意圖。該快閃記憶體系統100包含一快閃記憶體控制器102和一快閃記憶體1000。該快閃記憶體控制器102包含一錯誤更正碼控制器104、一主機介面控制器106、一快閃記憶體介面控制器108和隨機存取記憶體介面控制器110。該主機介面控制器106和一主機2000交換資料。該快閃記憶體介面控制器108和一快閃記憶體1000交換資料。該隨機存取記憶體介面控制器110和一隨機存取記憶體3000交換資料。該錯誤更正碼控制器104包含一錯誤更正碼編碼器210、一錯誤更正碼分割器212、一錯誤更正碼建構器214和一錯誤更正碼解碼器216。
該錯誤更正碼編碼器210被設置以在操作於一寫入動作時,自該主機介面控制器106接收欲寫入至該快閃記憶體1000之一寫入資料並產生對應於該寫入資料之一可變長度之錯誤更正碼。該錯誤更正碼分割器212被設置以在操作於一寫入動作時,根據該產生之錯誤更正碼之長度分割該產生之錯誤更正碼成複數個錯誤更正碼片段,並發送該等錯誤更正碼片段至該快閃記憶體介面控制器108。該錯誤更正碼建構器214被設置以在操作於一讀取動作時,自該快閃記憶體介面控制器108接收對應於一自該快閃記憶體1000讀取之一讀取資料之複數個錯誤更正碼片段,並合併該等錯誤更正碼片段以建構成一錯誤更正碼。該錯誤更正碼解碼器216被設置以在操作於一讀取動作時,根據該讀取資料和該建構之錯誤更正碼更正該讀取訊息資料之錯誤,並發送該更正後之讀取訊息資料至該主機介面控制器106。
圖2顯示本揭露之一實施例之一快閃區塊之架構之示意圖。如圖2所示,該快閃區塊300包含複數個快閃頁302,其中每一快閃頁302包含一用以儲存使用者資料之資料區間304和一用以儲存管理資料之備用區間306。複數個快閃頁302係合併形成複數個延伸頁308。較佳地,如圖2所示,每一延伸頁308係由兩個相鄰之快閃頁302合併而成。
以每一快閃頁包含512位元組之資料區間和16位元組之備用區間之快閃記憶體為例,圖2中每一延伸頁308皆包含一具有1024位元組之延伸資料區間以及兩個16位元組之備用區間。該第一個備用區間為自有備用區間,用以儲存對應至儲存於該1024位元組之延伸資料區間之訊息資料之錯誤更正碼和管理資料。較佳地,該第一個備用區間中之13個位元組用以儲存錯誤更正碼片段,而3個位元組用以儲存管理資料。該第二個備用區間為共享備用區間。大多數的共享備用區間係用以形成一共享池(Sharing Pool),其中共享池內之每一共享備用區間係用以儲存一錯誤更正碼之一錯誤更正碼片段,其中該錯誤更正碼可對應至該快閃區塊300內之任一延伸頁308。部分共享備用區間係形成指標空間(Pointer Space)以儲存複數個鏈結串列之指標(Pointers),其中該等鏈結串列係用以表示所有錯誤更正碼片段之鏈結關係。部分共享備用區間係形成指標同位空間(Pointer Parity Space)以儲存該指標空間之錯誤更正碼。
在本揭露之一實施例中,一快閃記憶體之一快閃區塊可包含p個快閃頁。據此,該等p個快閃頁可形成p/2個延伸頁,包含p/2個自有備用區間和p/2個共享備用區間。每一自有備用區間和共享備用區間皆使用一1位元組之指標進行連結。對每一備用區間皆包含16位元組之快閃記憶體而言,該指標空間係由p/16個共享備用區間組成。若該指標同位空間係由q個共享備用區間組成,則剩下的p/2-p/16-q個共享備用區間係組成該共享池。例如,若p等於128,亦即每一快閃區塊包含128個快閃頁,則每一快閃區塊包含64個延伸頁,包括64個自有備用區間和64個共享備用區間。在該等共享備用區間中,指標空間係由8個共享備用區間所組成,已足以記錄所有的指標。若該指標同位空間係由4個共享備用區間所組成,則該共享池係由剩下的52個共享備用區間所組成。
圖3顯示本揭露之一實施例之共享備用區間之使用分類之示意圖。接續上段範例,共52個共享備用區間組成該共享池,其中該共享池內之每一共享備用區間可儲存一16位元組之錯誤更正碼片段。該指標空間係由8個共享備用區間,共128個位元組所組成。其中,pNSA0 至pNSA63 分別對應至該等64個自有備用區間,其共64個位元組係用以記錄其與共享備用區間之鏈結關係。而pSSA0 至pSSA51 分別對應至該等64個共享備用區間,其共52個位元組係儲存該共享池內52個共享備用區間彼此之鏈結關係。如圖3所示,pNSA內之7個位元和pSSA內之7個位元係用以儲存下一個錯誤更正碼片段之共享備用區間位置,而剩下的一個位元係儲存一旗標,其用以表示目前之錯誤更正碼片段是否為最後一個片段。該指標空間剩下的12個位元組為保留區間且非為本揭露所考量。此外,共有4個共享備用區間,亦即64個位元組以組成該指標同位空間,其用以儲存根據該指標空間所計算而得之錯誤更正碼,其可用以更正該指標空間之錯誤。
根據以上所述,本揭露之快閃記憶體控制器及其方法同樣可適用於其每一快閃頁包含一512位元組之倍數之資料區間和一16位元組之倍數之備用區間之快閃區塊。然而,本揭露之快閃記憶體控制器及其方法之適用範圍不限於上述架構之快閃區塊,而應即於任何快閃區塊,其快閃頁可根據本揭露之精神切割分類。
圖4顯示本揭露之一實施例之一種寫入訊息資料和其對應之錯誤更正碼至一快閃記憶體之方法之流程圖。在步驟402,自一快閃記憶體之至少一延長頁之至少一備用區間讀取一鏈結串列,其中每一延長頁係由複數個快閃頁合併而成,並進入步驟404。在步驟404,根據一欲寫入至該快閃記憶體之一訊息資料產生一錯誤更正碼,其中該錯誤更正碼之長度取決於該鏈結串列的結點數目,並進入步驟406。在步驟406,根據該錯誤更正碼之長度分割該錯誤更正碼成複數個錯誤更正碼片段,其中每個片段分別對應該鏈結串列之結點,並進入步驟408。在步驟408,儲存該訊息資料至該快閃記憶體之一延長頁之一延長資料區間,並進入步驟410。在步驟410,根據該鏈結串列所對應之備用區間,儲存該等錯誤更正碼片段至該快閃記憶體之至少一延長頁之複數個該等對應之備用區間。
以下例示應用圖4之寫入資料和其對應之錯誤更正碼至一快閃記憶體之方法於圖1之快閃記憶體控制器以及圖2之快閃區塊。在步驟402,從該快閃區塊300之指標空間讀取一鏈結串列。在本實施例中,該鏈結串列係根據儲存於該快閃區塊300之該指標空間之資料和其儲存於該指標同位空間之錯誤更正碼進行錯誤更正。據此,該錯誤更正碼解碼器216可用以根據該鏈結串列和其錯誤更正碼更正該鏈結串列。對多數快閃記憶體而言,在寫入動作前需先進行一清除動作。因此,較佳地,從該快閃區塊300讀取之該鏈結串列可儲存於一隨機存取記憶體,例如該隨機存取記憶體3000,以供之後的隨機存取及編輯,直到該快閃區塊300被清除後,再寫回至該快閃區塊300之指標空間。在步驟404,藉由檢視該鏈結串列可得到對應至用以儲存一訊息資料之延長資料區間之錯誤更正碼之長度。此外,亦可得到該錯誤更正碼之錯誤更正碼片段之鏈結關係,亦即用以儲存該等錯誤更正碼片段之共享備用區間之資料。在步驟406,該錯誤更正碼分割器212根據該錯誤更正碼之長度分割該錯誤更正碼成複數個錯誤更正碼片段。在步驟408,該訊息資料係儲存至該快閃區塊300之該快閃頁308之一延長資料區間,其中該延長資料區間係由該等資料區間304合併而成。在步驟410,該等錯誤更正碼片段係根據該鏈結串列儲存至複數個備用區間306。此外,若該快閃區塊300被清除而造成該儲存於該快閃區塊300之鏈結串列被清除,則從該隨機存取記憶體3000讀取該鏈結串列以儲存至該快閃區塊300之指標空間。
圖5顯示本揭露之一實施例之一種自一快閃記憶體讀取訊息資料和其對應之錯誤更正碼至之方法之流程圖。在步驟502,自一快閃記憶體之至少一延長頁之至少一備用區間讀取一鏈結串列,其中每一延長頁係由複數個快閃頁合併而成,並進入步驟504。對多數快閃記憶體而言,在寫入動作前需先進行一清除動作。因此,較佳地,從該快閃區塊300讀取之該鏈結串列可儲存於一隨機存取記憶體,例如該隨機存取記憶體3000,以供之後的隨機存取及編輯,直到該快閃區塊300被清除後,再寫回至該快閃區塊300之指標空間。在步驟504,自該快閃記憶體之一延長頁之一延長資料區間讀取一訊息資料,並進入步驟506。在步驟506,根據該鏈結串列自該快閃記憶體之至少一延長頁之複數個備用區間讀取複數個錯誤更正碼片段,並進入步驟508。在步驟508,合併該等錯誤更正碼片段成一錯誤更正碼,並進入步驟510。在步驟510,根據該訊息資料和該錯誤更正碼更正該訊息資料。此外,若該快閃區塊300被清除而造成該儲存於該快閃區塊300之鏈結串列被清除,則從該隨機存取記憶體3000讀取該鏈結串列以儲存至該快閃區塊300之指標空間。
以下例示應用圖5之自一快閃記憶體讀取訊息資料和其對應之錯誤更正碼至之方法於圖1之快閃記憶體控制器以及圖2之快閃區塊。在步驟502,從該快閃區塊300之指標空間讀取一鏈結串列。在本實施例中,該鏈結串列係根據儲存於該快閃區塊300之該指標空間之資料和其儲存於該指標同位空間之錯誤更正碼進行錯誤更正。據此,該錯誤更正碼解碼器216可用以根據該鏈結串列和其錯誤更正碼更正該鏈結串列。類似於前述之實施例,較佳地,從該快閃區塊300讀取之該鏈結串列可儲存於一隨機存取記憶體,例如該隨機存取記憶體3000。在步驟504,自該快閃區塊300之一延長頁308之一延長資料區間讀取一訊息資料,其中該延長資料區間係由該等資料區間304合併而成。在步驟506,藉由檢視該鏈結串列可得到對應之錯誤更正碼之錯誤更正碼片段之鏈結關係,亦即用以儲存該等錯誤更正碼片段之共享備用區間之資料。據此,可根據該鏈結串列自該快閃區塊300之至少一延長頁308之複數個備用區間306讀取複數個錯誤更正碼片段。在步驟508,該錯誤更正碼建構器214合併該等錯誤更正碼片段成一錯誤更正碼。在步驟510,該錯誤更正碼解碼器216根據該訊息資料和該合併之錯誤更正碼更正該訊息資料。此外,若該更正之訊息資料之錯誤數量超過一臨界值,則延長該錯誤更正碼之長度,並藉由延長該鏈結串列紀錄該錯誤更正碼之變化。若該快閃區塊300被清除而造成該儲存於該快閃區塊300之鏈結串列被清除,則從該隨機存取記憶體3000讀取該鏈結串列以儲存至該快閃區塊300之指標空間,且儲存該鏈結串列之錯誤更正碼至該快閃區塊300之指標同位空間。
綜上所述,對於容易發生損壞的快閃頁而言,本揭露即藉由增加其錯誤更正碼資料之長度加強其錯誤更正能力。由於每一個快閃頁之備用區間之空間有限,每一個編碼出之錯誤更正碼資料即加以分割以形成複數個錯誤更正碼片段,使其得以儲存至複數個快閃頁之備用區間。如此,不易發生損壞的快閃頁可分享其備用區間給容易發生損壞的快閃頁。因此,即使在同一個快閃區塊之快閃頁的損壞率皆不變,其損壞率仍可藉由本揭露加以平衡而延後該快閃區塊被標示為損壞快閃區塊之時間。
再者,本揭露所提供之快閃記憶體控制器及其方法適用於無法切割其快閃頁之備用區間之快閃記憶體。對這些快閃記憶體而言,藉由合併複數個快閃頁成一延伸頁可達到類似於切割一快閃頁之備用區間之效果,故即可達到前述分享備用區間之概念。
本揭露之技術內容及技術特點已揭示如上,然而熟悉本項技術之人士仍可能基於本揭露之教示及揭示而作種種不背離本揭露精神之替換及修飾。因此,本揭露之保護範圍應不限於實施例所揭示者,而應包括各種不背離本揭露之替換及修飾,並為以下之申請專利範圍所涵蓋。
100...快閃記憶體系統
102...快閃記憶體控制器
104...錯誤更正碼控制器
106...主機介面控制器
108...快閃記憶體介面控制器
110...隨機存取記憶體介面控制器
1000...快閃記憶體
210...錯誤更正碼編碼器
212...錯誤更正碼分割器
214...錯誤更正碼建構器
216...錯誤更正碼解碼器
2000...主機
3000...隨機存取記憶體
300...快閃區塊
302...快閃頁
304...資料區間
306...備用區間
308...延伸頁
402~410...步驟
502~510...步驟
圖1顯示本揭露之一實施例之快閃記憶體控制器之示意圖;
圖2顯示本揭露之一實施例之一快閃區塊之架構之示意圖;
圖3顯示本揭露之一實施例之共享備用區間之格式之示意圖;
圖4顯示本揭露之一實施例之一種寫入資料和其對應之錯誤更正碼至一快閃記憶體之方法之流程圖;以及
圖5顯示本揭露之一實施例之一種自一快閃記憶體讀取訊息資料和其對應之錯誤更正碼至之方法之流程圖。
100...快閃記憶體系統
102...快閃記憶體控制器
104...錯誤更正碼控制器
106...主機介面控制器
108...快閃記憶體介面控制器
110...隨機存取記憶體介面控制器
1000...快閃記憶體
210...錯誤更正碼編碼器
212...錯誤更正碼分割器
214...錯誤更正碼建構器
216...錯誤更正碼解碼器
2000...主機
3000...隨機存取記憶體

Claims (27)

  1. 一種快閃記憶體控制器,包含:一快閃記憶體介面控制器,設定以儲存訊息資料、錯誤更正碼片段和鏈結串列至一快閃記憶體,以及自該快閃記憶體讀取訊息資料,錯誤更正碼片段和該等鏈結串列;一主機介面控制器,設定以發送訊息資料至一主機以及自該主機接收訊息資料;一隨機存取記憶體介面控制器,設定以儲存該等鏈結串列至一隨機存取記憶體以及自該隨機存取記憶體讀取該等鏈結串列;一錯誤更正碼編碼器,設定以在操作於一寫入動作時,自該主機介面控制器接收欲寫入至該快閃記憶體之一寫入資料並產生對應至該寫入資料之一可變長度之錯誤更正碼;一錯誤更正碼分割器,設定以在操作於一寫入動作時,根據該產生之錯誤更正碼之長度切割該產生之錯誤更正碼成複數個錯誤更正碼片段,並發送該等錯誤更正碼片段至該快閃記憶體介面控制器;一錯誤更正碼建構器,設定以在操作於一讀取動作時,自該快閃記憶體介面控制器接收對應至一自該快閃記憶體讀取之一讀取訊息資料之複數個錯誤更正碼片段,並合併該等錯誤更正碼片段以建構成一錯誤更正碼;以及一錯誤更正碼解碼器,設定以在操作於一讀取動作時,根據該讀取訊息資料和該建構之錯誤更正碼更正該讀取訊息資料之錯誤,並發送該更正後之讀取訊息資料至該主機介面控制器;其中該等錯誤更正碼片段之鏈結關係係表示於該等鏈結串列。
  2. 根據請求項1之快閃記憶體控制器,其中各訊息資料係儲存於由複數個快閃頁合併之一延伸頁中之一延伸資料區間。
  3. 根據請求項2之快閃記憶體控制器,其中每一延伸頁係由兩個相鄰之快閃頁合併而成。
  4. 根據請求項2之快閃記憶體控制器,其中該產生之錯誤更正碼之其中一錯誤更正碼片段係儲存於儲存對應至該產生之錯誤更正碼之訊息資料之一延伸頁內之複數個備用區間中之其中一者。
  5. 根據請求項4之快閃記憶體控制器,其中該產生之錯誤更正碼之其他各錯誤更正碼片段係儲存於除該對應至該產生之錯誤更正碼之訊息資料之延伸頁外之延伸頁內之複數個備用區間中之其中一者。
  6. 根據請求項1之快閃記憶體控制器,其中每一鏈結串列係表示一錯誤更正碼之所有錯誤更正碼片段之鏈結關係。
  7. 根據請求項2之快閃記憶體控制器,其中該等鏈結串列係儲存於延伸頁之備用區間內。
  8. 根據請求項1之快閃記憶體控制器,其中當該錯誤更正碼解碼器更正之一訊息資料之錯誤數量超過一臨界值時,對應該訊息資料之錯誤更正碼之長度係藉由延長其鏈結串列而延長。
  9. 根據請求項1之快閃記憶體控制器,其中該錯誤更正碼編碼器係進一步設定以在一鏈結串列延長後產生其錯誤更正碼。
  10. 根據請求項9之快閃記憶體控制器,其中該錯誤更正碼解碼器係進一步設定以在一鏈結串列自該快閃記憶體讀取時,根據該鏈結串列和其對應之錯誤更正碼更正該鏈結串列。
  11. 根據請求項1之快閃記憶體控制器,其中每一快閃頁包含一512位元組之倍數之資料區間和一16位元組之倍數之備用區間。
  12. 一種寫入資料和其對應之錯誤更正碼至一快閃記憶體之方法,包含下列步驟:自一快閃記憶體之至少一延長頁之至少一備用區間讀取一鏈結串列,其中每一延長頁係由複數個快閃頁合併而成;根據一欲寫入至該快閃記憶體之一訊息資料產生一錯誤更正碼,其中該錯誤更正碼之長度取決於該鏈結串列;根據該錯誤更正碼之長度分割該錯誤更正碼成複數個錯誤更正碼片段;儲存該訊息資料至該快閃記憶體之一延長頁之一延長資料區間;以及根據該鏈結串列儲存該等錯誤更正碼片段至該快閃記憶體之至少一延長頁之複數個備用區間。
  13. 根據請求項12之方法,其進一步包含下列步驟:儲存該鏈結串列至一隨機存取記憶體;以及若該快閃記憶體所儲存之該鏈結串列被清除,則自該隨機存取記憶體讀取該鏈結串列並儲存至該快閃記憶體之至少一延長頁之至少一備用區間。
  14. 根據請求項12之方法,其中每一延伸頁係由兩個相鄰之快閃頁合併而成。
  15. 根據請求項12之方法,其中該等錯誤更正碼片段之一係儲存於儲存該訊息資料之一延伸頁內之複數個備用區間中之其中一者。
  16. 根據請求項15之方法,其中該產生之錯誤更正碼之其他各錯誤更正碼片段係儲存於除儲存該訊息資料之延伸頁外之延伸頁內之複數個備用區間中之其中一者。
  17. 根據請求項12之方法,其中該鏈結串列係表示該等錯誤更正碼片段之鏈結關係。
  18. 根據請求項12之方法,其進一步包含下列步驟:自該快閃記憶體之至少一延長頁之至少一備用區間讀取該鏈結串列之一錯誤更正碼;以及根據該鏈結串列和其對應之錯誤更正碼更正該鏈結串列。
  19. 根據請求項12之方法,其中每一快閃頁包含一512位元組之倍數之資料區間和一16位元組之倍數之備用區間。
  20. 一種自一快閃記憶體讀取訊息資料和其對應之錯誤更正碼至之方法,包含下列步驟:自一快閃記憶體之至少一延長頁之至少一備用區間讀取一鏈結串列,其中每一延長頁係由複數個快閃頁合併而成;自該快閃記憶體之一延長頁之一延長資料區間讀取一訊息資料;根據該鏈結串列自該快閃記憶體之至少一延長頁之複數個備用區間讀取複數個錯誤更正碼片段;合併該等錯誤更正碼片段成一錯誤更正碼;以及根據該訊息資料和該錯誤更正碼更正該訊息資料。
  21. 根據請求項20之方法,其進一步包含下列步驟:儲存該鏈結串列至一隨機存取記憶體;若該更正之訊息資料之錯誤數量超過一臨界值,則延長該鏈結串列;以及在延長該鏈結串列後儲存該鏈結串列至該快閃記憶體之至少一延長頁之至少一備用區間。
  22. 根據請求項20之方法,其中每一延伸頁係由兩個相鄰之快閃頁合併而成。
  23. 根據請求項20之方法,其中該等錯誤更正碼片段之一係儲存於儲存該訊息資料之一延伸頁內之複數個備用區間中之其中一者。
  24. 根據請求項23之方法,其中該產生之錯誤更正碼之其他各錯誤更正碼片段係儲存於除儲存該訊息資料之延伸頁外之延伸頁內之複數個備用區間中之其中一者。
  25. 根據請求項20之方法,其中該鏈結串列係表示該等錯誤更正碼片段之鏈結關係。
  26. 根據請求項20之方法,其進一步包含下列步驟:自該快閃記憶體之至少一延長頁之至少一備用區間讀取該鏈結串列之一錯誤更正碼;根據該鏈結串列和其對應之錯誤更正碼更正該鏈結串列;若延長該鏈結串列,則重新產生該鏈結串列之錯誤更正碼;以及儲存該鏈結串列之重新產生之錯誤更正碼至該快閃記憶體之至少一延長頁之至少一備用區間。
  27. 根據請求項20之方法,其中每一快閃頁包含一512位元組之倍數之資料區間和一16位元組之倍數之備用區間。
TW99144682A 2010-09-07 2010-12-20 快閃記憶體控制器及其方法 TWI440039B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/876,644 US8555143B2 (en) 2008-12-22 2010-09-07 Flash memory controller and the method thereof

Publications (2)

Publication Number Publication Date
TW201212036A TW201212036A (en) 2012-03-16
TWI440039B true TWI440039B (zh) 2014-06-01

Family

ID=45884644

Family Applications (1)

Application Number Title Priority Date Filing Date
TW99144682A TWI440039B (zh) 2010-09-07 2010-12-20 快閃記憶體控制器及其方法

Country Status (2)

Country Link
CN (1) CN102402398B (zh)
TW (1) TWI440039B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI623940B (zh) * 2015-08-28 2018-05-11 東芝記憶體股份有限公司 記憶體系統

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5438573A (en) * 1991-09-13 1995-08-01 Sundisk Corporation Flash EEPROM array data and header file structure
CN100465910C (zh) * 2006-06-02 2009-03-04 上海思必得通讯技术有限公司 对产品中闪存数据的防错、纠错方法
CN101056157B (zh) * 2007-05-15 2010-06-09 上海微电子装备有限公司 一种传输控制装置及其控制方法
US8473815B2 (en) * 2008-12-22 2013-06-25 Industrial Technology Research Institute Methods and systems of a flash memory controller and an error correction code (ECC) controller using variable-length segmented ECC data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI623940B (zh) * 2015-08-28 2018-05-11 東芝記憶體股份有限公司 記憶體系統

Also Published As

Publication number Publication date
CN102402398B (zh) 2015-03-18
CN102402398A (zh) 2012-04-04
TW201212036A (en) 2012-03-16

Similar Documents

Publication Publication Date Title
TWI410979B (zh) 快閃記憶體控制器、其錯誤更正碼控制器及其方法和系統
US8555143B2 (en) Flash memory controller and the method thereof
Jacobvitz et al. Coset coding to extend the lifetime of memory
US8307261B2 (en) Non-volatile memory management method
JP5789767B2 (ja) 半導体記録装置及び半導体記録装置の制御方法
US9158675B2 (en) Architecture for storage of data on NAND flash memory
JP2010237822A (ja) メモリコントローラおよび半導体記憶装置
US9032278B2 (en) Method for performing data shaping, and associated memory device and controller thereof
TW201337733A (zh) 用於資料重複的刪除之方法及系統
US9003153B2 (en) Method of storing blocks of data in a plurality of memory devices in a redundant manner, a memory controller and a memory system
US20180157428A1 (en) Data protection of flash storage devices during power loss
JP2010218634A (ja) 誤り検出訂正器、メモリコントローラおよび半導体記憶装置
US20090024787A1 (en) Data writing method and apparatus
JP2010079485A (ja) 半導体記録装置
US9754682B2 (en) Implementing enhanced performance with read before write to phase change memory
US8762814B2 (en) Method for enhancing error correction capability, and associated memory device and controller thereof
TWI435216B (zh) 用來進行超區塊管理之方法以及記憶裝置及控制器
TWI453750B (zh) 記憶體系統及電腦系統
TWI440039B (zh) 快閃記憶體控制器及其方法
JP2008159198A (ja) 誤り訂正装置及び記録再生装置
TWI747532B (zh) 記憶體裝置
TW201521033A (zh) 儲存裝置及其操作方法
KR100697792B1 (ko) 기억 매체 재생 장치, 기억 매체 재생 방법, 및 기억 매체로부터 정보를 판독하기 위한 컴퓨터 판독가능 매체
US10922025B2 (en) Nonvolatile memory bad row management
JP2011134031A (ja) 半導体記録装置および半導体記録システム