TWI537971B - Storage device and access method thereof - Google Patents
Storage device and access method thereof Download PDFInfo
- Publication number
- TWI537971B TWI537971B TW102147314A TW102147314A TWI537971B TW I537971 B TWI537971 B TW I537971B TW 102147314 A TW102147314 A TW 102147314A TW 102147314 A TW102147314 A TW 102147314A TW I537971 B TWI537971 B TW I537971B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- error correction
- memory device
- blocks
- unit
- Prior art date
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Description
本發明係一種電子裝置及其控制方法,尤指一種儲存裝置及其存取方法。
近年來由於快閃記憶體的技術不斷地發展,各種可攜式記憶體裝置或具備快閃記憶體之固態硬碟(Solid State Drive,SSD)被廣泛地實施於諸多應用中。因此,這些可攜式記憶裝置中之快閃記憶體的存取控制遂成為相當熱門的議題。以常用的NAND型快閃記憶體而言,其主要可區分為單階細胞(Single Level Cell,SLC)與多階細胞(Multiple Level Cell,MLC)兩大類之快閃記憶體。
另外,錯誤更正對於記憶體裝置內資料可靠度的維持非常重要。尤其當記憶單元的密度或每一記憶單元的儲存位元數增加時,錯誤更正變得更為重要。再者,記憶體裝置(例如快閃記憶體)於製造時或是經過相當多次的讀寫後,也會產生錯誤位元。
錯誤更正碼(Error Correcting Code,ECC)被用以增進記憶體裝置的可靠度。然而,傳統記憶體裝置的錯誤更正碼並非很有效,一般而言,使用固定資料長度及固定錯誤更正碼率,且以錯誤更正單位為單位進行資料存取,若某一個錯誤更正單位資料的錯誤位元特別多且超過錯誤更正碼可更正範圍,則此資料即無法使用,甚至無法回復而永遠失去。鑑於傳統記憶體裝置無法有效地
更正錯誤及防止資料遺失,因此亟需提出一種新穎的記憶體系統及方法,用以有效地增進記憶體裝置內資料的可靠度並防止資料的遺失。
因此,本發明針對上述問題提供了一種用以提升錯誤更正能力之儲存裝置及其存取方法。
本發明之一目的,係提供一種儲存裝置及其存取方法,將複數錯誤更正資料藉由交錯或映射之方式平均分散至記憶體裝置之複數資料區塊中,使該些錯誤更正資料中的錯誤平均分散至該些資料區塊,進而增加錯誤更正碼的錯誤更正能力。
本發明之一目的,係提供一種儲存裝置及其存取方法,藉由改變每一分頁中資料區塊與備用區塊的儲存空間比例,以提升錯誤更正碼的錯誤更正能力。
為了達到上述所指稱之各目的與功效,本發明係揭示了一種儲存裝置,其包含:一記憶體裝置,用以儲存複數單位資料;以及一控制器,接收複數資料,並將該些資料編碼產生複數錯誤更正資料,該些錯誤更正資料包含該些單位資料,控制器將該些錯誤更正資料之該些單位資料以一交錯方式或依照一映射位址寫入至記憶體裝置。
本發明更揭示了一種儲存裝置之存取方法,其步驟包含:將複數資料編碼產生複數錯誤更正資料,該些錯誤更正資料包含複數單位資料;以及將該些錯誤更正資料之該些單位資料以一交錯方式或依照一映射位址寫入至一記憶體裝置。
10‧‧‧記憶體裝置
30‧‧‧控制器
301‧‧‧微處理單元
303‧‧‧錯誤更正碼電路
305‧‧‧映射電路
307‧‧‧轉換電路
309‧‧‧緩衝記憶體
50‧‧‧主機
A、B、C‧‧‧錯誤更正資料
A1、A2、An、B1、B2、Bn、C1、C2、Cn‧‧‧單位資料
D、D1、D2、Dn‧‧‧資料區塊
S‧‧‧備用區塊
S10、S20、S30、S40、S50、S70‧‧‧步驟
第1圖:其係為本發明之一較佳實施例之儲存裝置之方塊圖;第2圖:其係為本發明之一較佳實施例之寫入程序之流程圖;第3圖:其係為本發明之一較佳實施例之寫入程序之交錯示意圖;第4圖:其係為本發明之另一較佳實施例之寫入程序之流程圖;第5A圖:其係為本發明之一較佳實施例之資料區塊-備用區塊之比例示意圖;第5B圖:其係為本發明之另一較佳實施例之資料區塊-備用區塊之比例示意圖;第6圖:其係為本發明之一較佳實施例之讀取程序之流程圖;以及第7圖:其係為本發明之一較佳實施例之讀取程序之映射示意圖。
在說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定的元件。所屬領域中具有通常知識者應可理解,硬體製造商可能會用不同的名詞來稱呼同一個元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的準則。在通篇說明書及後續的請求項當中所提及的「包含」係為一開放式的用語,故應解釋成「包含但不限定於」。以外,「耦接」一詞在此係包含任何直接及間接的電氣連接手段。因此,若文中描述一第一裝置耦接於一第二裝置,則代表該第一裝置可直接電氣連接於該第二裝置,或透過其他裝置或連接手段間接地電氣連接至該第二裝置。
為使 貴審查委員對本發明之特徵及所達成之功效有更進一步之瞭解與認識,謹佐以較佳之實施例及配合詳細之說明,說明如後:
請參閱第1圖,其為本發明之一較佳實施例之儲存裝置之方塊圖。如圖所示,儲存裝置包含一記憶體裝置10以及一控制器30。控制器30用以對一主機50所提供之複數資料進行編碼以產生複數錯誤更正資料,並以一交錯方式或依照一映射位址將該些錯誤更正資料所包含之複數單位資料寫入至記憶體裝置10,或以交錯方式或依照映射位址將記憶體裝置10所儲存之該些單位資料讀出,而還原為該些錯誤更正資料,並對該些錯誤更正資料解碼以供主機50讀取。且控制器30於寫入該些單位資料至記憶體裝置10之後,更依據該些單位資料之錯誤數量,而將記憶體裝置10之複數資料區塊的部分空間轉換至該些資料區塊所對應之複數備用區塊。
控制器30包含一微處理單元301、一錯誤更正碼電路303、一映射電路305以及一轉換電路307。錯誤更正碼電路303耦接微處理單元301,並受控於微處理單元301。當需將該些資料寫入記憶體裝置10時,錯誤更正碼電路303對主機50所傳送之該些資料進行編碼以加入錯誤更正碼,而產生該些錯誤更正資料,並傳送至映射電路。當主機50需讀取該些資料時,錯誤更正碼電路305對映射電路305傳送來之該些錯誤更正資料進行解碼,而還原為該些資料,以供主機50讀取。
映射電路305耦接微處理單元301,並受控於微處理單元301。於寫入資料時,映射電路305將錯誤更正碼電路303輸出之該些錯誤更正資料所包含之該些單位資料以交錯方式或依照映射位址寫入
至記憶體裝置10。於讀取資料時,映射電路305以交錯方式或依照映射位址將記憶體裝置10所儲存之該些單位資料讀出還原為該些錯誤更正資料,並傳送至錯誤更正碼電路303。
轉換電路307耦接於微處理單元301,並受控於微處理單元301而動作,於寫入資料前,微處理單元301會先控制使錯誤更正碼電路303輸出之該些錯誤更正資料寫入至記憶體裝置10(此部分較佳之寫入方式為透過微處理單元301控制映射電路305將該些錯誤更正資料,可以採用不交錯之方式寫入記憶體裝置10,但本發明不以此為限),接著透過主機50或微處理單元301偵測記憶體裝置10,以得知所寫入至記憶體裝置10之該些錯誤更正資料於記憶體裝置10之該些資料區塊中所產生的錯誤數量,亦即該些錯誤更正資料之錯誤數量。接著微處理單元301則使轉換電路307依據該些錯誤更正資料之錯誤數量,而控制記憶體裝置10之該些資料區塊的部分空間轉換至該些資料區塊所對應之該些備用區塊。轉換完成後,再將錯誤更正碼電路303輸出之該些錯誤更正資料寫入並儲存至記憶體裝置10的該些資料區塊(透過映射電路305以交錯方式、依照映射位址分為該些單位資料寫入,或以採用不交錯之方式寫入)。
另外,控制器30更可包含一緩衝記憶體309,耦接於主機50與錯誤更正碼電路303之間,用以暫存主機50所傳送或需讀取之該些資料,但此緩衝記憶體309並不用以限定本發明。
此外,本發明之控制器30亦可僅包含映射電路305或轉換電路307之一,而僅做其中之一功能,並不限定同時包含映射電路305與轉換電路307。
請參閱第2圖,其為本發明之一較佳實施例之寫入程序之流程圖。如圖所示,於寫入程序時,主機50會傳送複數資料至控制器30,並首先執行步驟S10,錯誤更正碼電路303對該些資料進行編碼以加入錯誤更正碼,而產生複數錯誤更正資料,並傳送至映射電路305。接著執行步驟S70,映射電路305以交錯方式或依照映射位址將該些錯誤更正資料所包含之該些單位資料寫入至記憶體裝置10之該些資料區塊。
請一併參閱第3圖,其為本發明之一較佳實施例之寫入程序之交錯示意圖。如圖所示,當有三筆資料需寫入儲存裝置時,映射電路305依照微處理單元301所傳送而來之交錯方式,將該些錯誤更正資料A、B、C所包含之該些單位資料A1、A2-An、B1、B2-Bn、C1、C2-Cn寫入記憶體裝置10之一分頁中的複數資料區塊D1、D2-Dn,且同時該些單位資料A1、A2-An、B1、B2-Bn、C1、C2-Cn已包含該些錯誤更正資料A、B、C中之資料以及錯誤更正碼,而不多加說明。
另外,上述是以交錯之方式寫入該些資料區塊D1、D2-Dn,但本發明亦可依照映射位址,而不需依照上述的寫入順序或交錯位置將該些單位資料A1、A2-An、B1、B2-Bn、C1、C2-Cn寫入該些資料區塊D1、D2-Dn,而映射之方式有許多種,且映射之方式並非用以限定本發明,因此不加贅述,只要是將錯誤更正資料A、B、C所包含之該些單位資料A1、A2-An、B1、B2-Bn、C1、C2-Cn依照交錯方式或映射位址平均分散至該些資料區塊D1、D2-Dn,即符合本發明之精神。
請參閱第4圖,其為本發明之另一較佳實施例之寫入程序之流程
圖。如圖所示,本實施例於步驟S10與S70之間更包含步驟S30、S50,於交錯該些錯誤更正資料儲存至記憶體裝置10之前,先進行步驟S30,微處理單元301先使錯誤更正碼電路303輸出之該些錯誤更正資料寫入至記憶體裝置10,並透過主機50或微處理單元301偵測該些錯誤更正資料之錯誤數量(如第1圖之說明)。接著進行步驟S50,轉換電路307依據主機50或微處理單元301所偵測到該些錯誤更正資料之錯誤數量,而將記憶體裝置10之該些資料區塊的部分空間轉換至該些資料區塊所對應之該些備用區塊。
接著,再執行步驟S70,映射電路305以交錯方式或依照映射位址將該些錯誤更正資料所包含之該些單位資料寫入至記憶體裝置10之該些資料區塊。並且,於此實施例中之映射電路305亦可受控於微處理單元301,以依據該些錯誤更正資料之錯誤數量而決定交錯方式或映射位址,以將該些單位資料以較佳之交錯方式或映射位址寫入至該些資料區塊。
請一併參閱第5A、5B圖,第5A圖為本發明之一較佳實施例之資料區塊-備用區塊之比例示意圖,第5B圖為本發明之另一較佳實施例之資料區塊-備用區塊之比例示意圖。
如第5A圖所示,若原本資料區塊D與備用區塊S所佔的儲存空間分別為8K位元組與1K位元組,當轉換電路307判斷該些錯誤更正資料中的錯誤數量低於一門檻值時,轉換電路307控制記憶體裝置10將資料區塊D中0.5K位元組的儲存空間轉換至備用區塊S,使資料區塊D與備用區塊S所佔的儲存空間變為7.5K位元組與1.5K位元組。如此,可降低資料區塊D所儲存之資料量,並提升錯誤更正碼可運用之空間,進而有效提升錯誤更正碼的錯誤更正能力。
另外,如第5B圖所示,當轉換電路307判斷該些錯誤更正資料中的錯誤數量高於門檻值時,轉換電路307控制記憶體裝置10將資料區塊D中1K位元組的儲存空間轉換至備用區塊S,使資料區塊D與備用區塊S所佔的儲存空間變為7K位元組與2K位元組。如此,更進一步提升錯誤更正碼的更正能力。
其中,本實施例僅以一個資料區塊D以及一個備用區塊S做說明,但實際上若該些單位資料需交錯儲存於複數資料區塊時,本發明之轉換電路307會同時控制該些資料區塊與其對應之備用區塊的儲存空間比例。
請參閱第6圖,其為本發明之一較佳實施例之讀取程序之流程圖。如圖所示,於讀取程序時,首先執行步驟S20,映射電路305依照交錯方式或映射位址將記憶體裝置10之該些資料區塊所儲存之該些單位資料讀出還原為該些錯誤更正資料,並輸出至錯誤更正碼電路305。接著執行步驟S40,錯誤更正碼電路305對映射電路305傳送來之該些錯誤更正資料進行解碼,而還原為該些資料,以供主機50讀取。
請一併參閱第7圖,其為本發明之一較佳實施例之讀取程序之映射示意圖。如圖所示,當需讀取資料時,映射電路305依照微處理單元301所傳送而來之交錯方式或映射位址,將記憶體裝置10之該些資料區塊D1、D2-Dn中所儲存的該些單位資料A1、A2-An、B1、B2-Bn、C1、C2-Cn讀出還原為該些錯誤更正資料A、B、C,並傳送至錯誤更正碼電路303,錯誤更正碼電路303對該些錯誤更正資料A、B、C解碼,而產生主機50所能讀取之該些資料,並傳送至主機50(或先傳送至緩衝記憶體309暫存)。
其中,雖本發明之每一資料區塊(例如D1)中所儲存的單位資料僅有A1、B1、C1三個,但這僅為示意圖,實際上,每一資料區塊中可包含錯誤更正資料A中的複數單位資料、錯誤更正資料B中的複數單位資料以及錯誤更正資料C中的複數單位資料,也就是資料區塊D1、D2-Dn中所儲存的單位資料A1、A2-An、B1、B2-Bn、C1、C2-Cn的數量以及寫入順序、映射位址或交錯方式並無限定,可依所需而做適當調整,且每一個單位資料的大小亦無限定,可為一位元、複數位元、一位元組或複數位元組。
綜上所述,本發明之儲存裝置及其存取方法,藉由將該些錯誤更正資料分散寫入至記憶體裝置之該些資料區塊中,使該些錯誤更正資料中的錯誤平均分散至該些資料區塊,或者於讀取時,將該些資料區塊與該些備用區塊所儲存的該些單位資料以及該些錯誤更正碼依照上述方式還原為錯誤更正資料,使該些資料區塊中的錯誤平均分散至錯誤更正資料。另外,更藉由改變每一分頁中資料區塊與備用區塊的儲存空間比例,以提升錯誤更正碼的錯誤更正能力。如此,可避免錯誤更正資料或該些資料區塊包含超過其錯誤更正能力的錯誤,而導致無法更正進而遺失資料之問題。
惟以上所述者,僅為本發明之較佳實施例而已,並非用來限定本發明實施之範圍,舉凡依本發明申請專利範圍所述之形狀、構造、特徵及精神所為之均等變化與修飾,均應包括於本發明之申請專利範圍內。
本發明係實為一具有新穎性、進步性及可供產業利用者,應符合我國專利法所規定之專利申請要件無疑,爰依法提出發明專利申請,祈 鈞局早日賜准專利,至感為禱。
10‧‧‧記憶體裝置
30‧‧‧控制器
301‧‧‧微處理單元
303‧‧‧錯誤更正碼電路
305‧‧‧映射電路
307‧‧‧轉換電路
309‧‧‧緩衝記憶體
50‧‧‧主機
Claims (15)
- 一種儲存裝置,其包含:一記憶體裝置,具有複數資料區塊;以及一控制器,接收複數資料,並將該些資料編碼產生複數錯誤更正資料,該每一錯誤更正資料包含複數單位資料,該控制器將該些錯誤更正資料之該些單位資料以一交錯方式或依照一映射位址寫入至該記憶體裝置的該些資料區塊。
- 如申請專利範圍第1項所述之儲存裝置,其中該控制器以該交錯方式或依照該映射位址將該記憶體裝置的該些資料區塊所儲存之該些單位資料讀出為該些錯誤更正資料。
- 如申請專利範圍第2項所述之儲存裝置,其中該控制器包含:一映射電路,受控於一微處理單元,而將該些單位資料以該交錯方式或依照該映射位址而寫入至該記憶體裝置的該些資料區塊,或將該記憶體裝置的該些資料區塊所儲存之該些單位資料以該交錯方式或依照該映射位址讀出為該些錯誤更正資料。
- 如申請專利範圍第3項所述之儲存裝置,其中該控制器更包含:一錯誤更正碼電路,耦接該微處理單元與該映射電路,並受控於該微處理單元而對該些資料進行編碼,以加入複數錯誤更正碼,而產生該些錯誤更正資料,或對該些錯誤更正資料進行解碼,而產生該些資料。
- 如申請專利範圍第1項所述之儲存裝置,其中該控制器先將該些錯誤更正資料寫入至該記憶體裝置之該些資料區塊,以偵測該些 錯誤更正資料之錯誤數量,並依據該些錯誤更正資料之錯誤數量,而控制該記憶體裝置之該些資料區塊的部分空間轉換至該些資料區塊所對應之複數備用區塊。
- 如申請專利範圍第5項所述之儲存裝置,其中該控制器包含:一轉換電路,受控於一微處理單元,而依據該些錯誤更正資料之錯誤數量,控制該記憶體裝置之該些資料區塊的部分空間轉換至該些資料區塊所對應之該些備用區塊。
- 如申請專利範圍第1項所述之儲存裝置,其中該控制器以該交錯方式將每一該錯誤更正資料中之該些單位資料平均分散並寫入該記憶體裝置之該些資料區塊中。
- 如申請專利範圍第1項所述之儲存裝置,其中該些單位資料分別為一位元、複數位元、一位元組或複數位元組。
- 一種儲存裝置之存取方法,其步驟包含:將複數資料編碼產生複數錯誤更正資料,該每一錯誤更正資料包含複數單位資料;以及將該些錯誤更正資料之該些單位資料以一交錯方式或依照一映射位址寫入至一記憶體裝置之複數資料區塊中。
- 如申請專利範圍第9項所述之存取方法,其更包含:以該交錯方式或依照該映射位址將該記憶體裝置之該些資料區塊所儲存之該些單位資料讀出為該些錯誤更正資料。
- 如申請專利範圍第9項所述之存取方法,其中於將複數資料編碼產生複數錯誤更正資料之步驟中包含:對該些資料進行編碼,以加入複數錯誤更正碼,而產生該些錯誤更正資料。
- 如申請專利範圍第9項所述之存取方法,其更包含:對該些錯誤更正資料進行解碼,而產生該些資料。
- 如申請專利範圍第9項所述之存取方法,其更包含:將該些錯誤更正資料寫入至該記憶體裝置之該些資料區塊,以偵測該些錯誤更正資料之錯誤數量;以及依據該些錯誤更正資料之錯誤數量,而將該記憶體裝置之該些資料區塊的部分空間轉換至該些資料區塊所對應之複數備用區塊。
- 如申請專利範圍第9項所述之存取方法,其中於將該些單位資料以一交錯方式或依照一映射位址寫入至一記憶體裝置之複數資料區塊之步驟中包含:以該交錯方式將每一該錯誤更正資料中之該些單位資料平均分散並寫入該記憶體裝置之該些資料區塊中。
- 如申請專利範圍第9項所述之存取方法,其中該些單位資料分別為一位元、複數位元、一位元組或複數位元組。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102147314A TWI537971B (zh) | 2013-12-19 | 2013-12-19 | Storage device and access method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102147314A TWI537971B (zh) | 2013-12-19 | 2013-12-19 | Storage device and access method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201526013A TW201526013A (zh) | 2015-07-01 |
TWI537971B true TWI537971B (zh) | 2016-06-11 |
Family
ID=54197752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102147314A TWI537971B (zh) | 2013-12-19 | 2013-12-19 | Storage device and access method thereof |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI537971B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI785918B (zh) * | 2021-09-06 | 2022-12-01 | 日商鎧俠股份有限公司 | 記憶體系統 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI657336B (zh) * | 2017-08-28 | 2019-04-21 | 慧榮科技股份有限公司 | 用以檢測資料儲存裝置之資料儲存方法及其資料儲存裝置 |
-
2013
- 2013-12-19 TW TW102147314A patent/TWI537971B/zh active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI785918B (zh) * | 2021-09-06 | 2022-12-01 | 日商鎧俠股份有限公司 | 記憶體系統 |
Also Published As
Publication number | Publication date |
---|---|
TW201526013A (zh) | 2015-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8707135B2 (en) | Method and system of dynamic data storage for error correction in a memory device | |
TWI474330B (zh) | 用來進行記憶體存取管理之方法以及記憶裝置及其控制器 | |
JP6110953B2 (ja) | 階層化反復誤り訂正のための停止基準 | |
TWI674767B (zh) | 用於nand快閃記憶體的渦輪乘積碼 | |
US9037946B2 (en) | Detecting effect of corrupting event on preloaded data in non-volatile memory | |
US9136872B2 (en) | Memory, memory system, and error checking and correcting method for memory | |
CN107408069B (zh) | 用于检测和缓解闪速存储器中的位线开路的装置和方法 | |
US20190050285A1 (en) | Data write method and memory storage device using the same | |
US9424126B2 (en) | Memory controller | |
JP2011134433A (ja) | Ecc回路を含む半導体ストーリッジシステム及びその制御方法 | |
JP2010237822A (ja) | メモリコントローラおよび半導体記憶装置 | |
CN102394114B (zh) | 具有自适应纠错能力的bch码纠错方法 | |
TW201545167A (zh) | 在非揮發性記憶體中處理錯誤更正碼的方法及其非揮發性儲存裝置 | |
US10691534B2 (en) | Data encoding method, data decoding method and storage controller | |
TW201637019A (zh) | 讀取電壓準位估測方法、記憶體儲存裝置及記憶體控制電路單元 | |
US10423484B2 (en) | Memory controller, memory system, and control method | |
US9754682B2 (en) | Implementing enhanced performance with read before write to phase change memory | |
CN109872764B (zh) | 一种多级存储单元闪存的ecc多码率编解码系统及方法 | |
JP2020198577A (ja) | メモリシステム | |
TWI537971B (zh) | Storage device and access method thereof | |
US11528038B2 (en) | Content aware decoding using shared data statistics | |
JP2021033530A (ja) | メモリシステム | |
US9160371B2 (en) | Memory controller, storage device and memory control method | |
US20230214136A1 (en) | Memory system | |
US20190294497A1 (en) | Method of implementing error correction code used by memory storage apparatus and memory storage apparatus using the same |