TW201108238A - Control method for flash memory based on variable length ECC - Google Patents

Control method for flash memory based on variable length ECC Download PDF

Info

Publication number
TW201108238A
TW201108238A TW98127790A TW98127790A TW201108238A TW 201108238 A TW201108238 A TW 201108238A TW 98127790 A TW98127790 A TW 98127790A TW 98127790 A TW98127790 A TW 98127790A TW 201108238 A TW201108238 A TW 201108238A
Authority
TW
Taiwan
Prior art keywords
length
flash memory
error correction
channel
code
Prior art date
Application number
TW98127790A
Other languages
English (en)
Other versions
TWI431631B (zh
Inventor
Lung-Yi Kuo
Original Assignee
Innostor Technology Corp
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 Innostor Technology Corp filed Critical Innostor Technology Corp
Priority to TW98127790A priority Critical patent/TWI431631B/zh
Publication of TW201108238A publication Critical patent/TW201108238A/zh
Application granted granted Critical
Publication of TWI431631B publication Critical patent/TWI431631B/zh

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

201108238 六、發明說明: 【發明所屬之技術領域】 本發明係關於一種快閃記憶體控制技術,尤指一種應 用可變動錯誤更正碼容量的快閃記憶體控制方法,於快閃 §己憶體中針對不同通道設定相異長度之錯誤更正碼(ECC), 以提高錯誤更正能力。 【先前技術】 决閃記憶體為類似E E P R 〇 Μ的結構,因為半導體設 計的原因’有一定的錯誤機率,所以使用錯誤更正碼(Err〇r Correction Code’ ECC)來糾正發生錯誤的資料。 錯誤更正的能力及快閃記憶體内用以管理資料的空間 大小取決於ECC的容量,習知技術乃以一個最大允許容 量的ECC來實現錯誤更正的功能,所以所有資料的錯誤 更正能力皆為相同。 • 請參考第四圖所示,為4K的資料頁(page)在不同通道 下官理資料的長度和ECC長度的關係,若採用BCH(Bose, Kay_Chaudhurj,Hocquenghem)理論所推算出來的 ECC 容 里’允許在資料區域(data area)内產生8個位元(bit)的錯 誤’在此8個bit的錯誤更正能力下,需要用到13個位元 組的容量。 般而s ’採用上述固定式E C C設計的快閃記憶體 控制器’無法充分使用大資料頁(data page)型的快閃記憶 體(例如8K page)容量》 201108238 【發明内容】 有鑑於現有快閃記憶體當中的錯誤更正碼(ECC)及管 理資料設計均採固定長度,無法有效提高錯誤更正能力及 善用大型資料頁。本發明之主要目的係、提供-種可變動錯 誤更正碼容量的快閃記憶體控制技術,係對不同通道設定 -有不同長度之錯誤更正碼(Ecc),使整體快閃記憶體之 錯誤更正能力得以有效提升。
為達成刖述目的,本發明應用可變動錯誤更正碼容量 的快閃記憶體控制方法,係包含有以下步驟: 首先根據- 貝料頁的容量及第一管理用資料的長度, 於快閃記憶體的第一通道中’預設定具有第一長度之錯誤 更正碼且根據該貧料頁的容量及第二管理用資料的長 度’於快閃記憶體的第二通道中,預設定具有第二長度之 錯誤更正碼; β接著,檢查目前所欲存取的通道是否為第一通道,若 是,則將第一通道的錯誤更正碼長度設定為第一長度;若 否則將第二通道的錯誤更正碼長度設定為第二長度。 ▲藉由上述方法,通道1卩後之錯誤更正碼長度可被提 问,本發明在採用不同容量的錯誤更正碼(Ecc)後可提 高錯誤更正效能。 【實施方式】 NAND快閃記憶體的架構是由多個資料頁(page)組 成每個資料頁包含data及spare兩區域,故每個資料 頁的大小為(512 + 16)xN ’其中N代表-個資料頁中所對應 201108238 的磁區數目,例如2K資料頁的快閃記憶體,其N為4,4Κ 資料頁的Ν = 8,目前NAND快閃記憶體之資料頁大致上可 分成512、2K、4K、8K bytes等數種規格,然後由64個 或128個資料頁組成一個區塊(b|〇Ck)。 在快閃記憶體不同應用的區塊(bl〇ck)及不同的通道 中,所而要的官理容量也不同。一般而言,2K資料頁的快 閃記憶體中,其spare區域大小為16χ4 = 64個位元組。若 配合以BCH理論所推算出來的8個位元更正能力,錯誤 更正碼(ECC)所佔用的大小為13χ4 = 52個位元組,所以只 允許管理資料長度為64-52 = 12個位元組。 本發明之控制方法係於快閃記憶體中的第一通道中, 根據資料頁容量及第一管理用資料的長度,設定具有第一 長度之錯誤更正碼; 於快閃記憶體中的第二通道中,根據資料頁容量及第 二管理用資料的長度,設定具有第二長度之錯誤更正碼; 設定該第一長度之錯誤更正碼及第二長度之錯誤更正 碼分別具有不同之識別碼,其中,第—長度小於第二長度, 以下係配合圖式加以詳細說明。 請參考第-圖所示,α2Κ容量的資料頁為範例說明, 依據本發明之技術,快閃記憶體控制器於管理快閃記憶體 時,在通道0上會放置完整的管理資料,以便在讀取時能 一次讀出所需的管理資料’因此將通道〇的錯誤更正碼(ECC) 定義為52 bytes、管理用資料長度定義為12 bytes;但自 通道1以後’所需要的管理資料量縮減到約4 bytes,換言 之可供存放錯誤更正碼(ECC)的空間為便可提高為64_4 = 6〇 201108238 bytes ° 本發明即是對通道〇與其它通道分別指定不同長度的 錯誤更正碼及管理資料,使各通道能獲得更多位元組的錯 誤更正碼’藉此提升資料更正的能力。請參考第二圖所示, 當本發明應用於4K資料頁的快閃記憶體時,通道〇具有 3x8 bytes的管理用資料,而錯誤更正碼的長度為 bytes,通道i以後之管理資料縮減成2χ8 bytes,故有更 多空間存放錯誤更正碼’錯誤更正碼之長度提高為ΐ4χ8 bytes。本發明可以在不同的通道上採用不同容量的錯誤更 正碼(ECC),藉此提高錯誤更正效能。發生錯誤的通道是 隨機的’所以平均來說整體效能會較固定式的要高。 為了辨識不同長度的錯誤更正碼(ECC)以利於讀取, 所以本發明於錯誤更正碼當中係加入一識別碼,該識別碼 存放在固疋位置以快速被讀出。較佳位置為錯誤更正碼 的最前一個位元組或最後一個位元組。 為加速決疋錯誤更正碼更正能力的設定,可以設定一 套規則來決定不同通道不同區塊上的更正能力,舉例來 說’該規則可為:將系統的區塊(B|〇ck)分為Data block、 Temp block、|nf0 b|0ck等不同種類,每種區塊各給予一 個ID。於Data block中又可分為「通道〇」及「非通道〇 之其餘通道」兩種’對應到的錯誤更正碼(ECC)可分成兩 種形式’分別是ECC0及ECC1,其中: ECC0 :係指定用於 Temp block、通道◦的 data block 和 Info block。 ECC1:係指定用於通道1以後的如仏block。故讀取 201108238 識別碼後就可決定為ECCO或ECC1其中一種。 請參考第三圖所示,為依據本發明之實施例,當要存 取(例如寫入或讀出)多通道的快閃記憶體之前,可經由以 下步驟對快閃記憶體控制器設定其更正位元數: 首先’根據資料頁的容量及管理資料的長度決定ECc〇 及ECC1的長度(步驟300),例如,在4K資料頁的快閃記 憶體内,ECC0的長度為13x8 bytes,ECC1的長度為 x8 bytes ; 接著,對快閃記憶體進行存取,本實施例中以讀/寫 為存取動作進行說明(步驟301); 然後’判斷是否為資料區塊(Data block)(步驟302), 若是則執行下一步驟(步驟303),若否則執行步驟3〇4 ; 接著,檢查目前所欲讀寫的通道是否為通道〇(步戰 303),若是則設定為ECC0(步驟304),若否則設定為 ECC1 ; 最後’判斷是否為寫入動作(步驟305),若為寫入, 則配合ECC0或ECC1填入管理用資料至Spare區域並結 束寫入動作;若否,則自Spare區域讀取管理資料,配合 ECC0或ECC1分析管理資料並結束讀取動作。 本發明之技術在較小的資料頁上具有相當明顯的效 果,當應用於大資料頁的快閃記憶體時,此技術更能發揮 大資料頁快閃記憶體的優勢。相對於傳統固定長度錯誤更 正碼的作法,本發明針對不同通道、不同資料頁長度的快 閃記憶體搭配不同的ECC更正設定的方法,在資料儲存 的安全性上遠高於固定式的,亦不受最小資料頁的快閃記 .201108238 憶體而有限制錯誤更正碼ECC能力的問題。 【圖式簡單說明】 第一圖:為依據本發明技術,2K資料頁於不同通通下, 管理資料長度和ECC碼長度的關係系意圖》 第一圖.為依據本發明技術,4Κ資料頁於不同通通下’ 管理資料長度和ECC碼長度的關係系意圖。 第三圖:為依據本發明對多通道的快閃記憶體設定其 更正位元數之步驟流程圖。 第四圖:為習知4Κ資料頁於不同通通Τ,管理資料 長度和ECC碼長度的關係示意圖。 【主要元件符號說明】

Claims (1)

  1. 201108238 七、申請專利範圍: 1·一種應用可變動錯誤更正碼容量的快㈣憶體控制 方法,包含: 一根據-快閃記憶體内,—資料頁的容量及^第一管理 用資料的長度,於該快閃記憶體的一第—通道[預設定 具有一第一長度之錯誤更正碼; 二管理用資料的長度,於 預設定具有一第二長度之
    根據該資料頁的容量及一第 該快閃記憶體的一第二通道中, 錯誤更正碼; 第一通道; 碼長度設定為該第 檢查目前所欲存取的通道是否為該 若是,則將該第一通道的錯誤更正 長度;以及 碼長度設定為該第 若否,則將該第二通道的錯誤更正 —長度0
    容量 第一 2·如申請專利範圍帛彳項所述應用可變動錯誤 的快閃記憶體控制方法,更包括下列步騾:、 根據所儲存資料的種類,於該快閃記憶體中, 種類區塊及一第二種類區塊; 更正碼 設定一 其中,該第 長度。 一種類區塊的錯誤更正
    容 第 容 曰3_如申請專利範圍第2項所述應用可變動 夏的快閃記憶體控制方法,其中,位於該第—、、、碼 二種類區塊的錯誤更正碼長度等於該第一長声通道的該 4·如申請專利範圍第3項所述應用可變動 量的快閃記憶體控制方法’其中,位於’曰誤更正碼 ' 弟二捅法a h 201108238 第一種類區塊的錯 、更正碼長度等於該第二長度。 …的I·/ Μ專利範1項所述應用可變動錯誤更正溫 谷里的快閃記憶體控制方法,更包括下列步帮:碼 在該第一長度之錯誤更正 及 乐識別碼;以 在該第二長度之錯誤更正 6.如申_衷剎铲 一第二識別碼。 月 &圍第5項所述應用可變動錯誤争 容量的快閃記憶體控制方法,其中該第一及該第a二正碼 係分別位於該第一長度 ° 一識別碼 一個位元組或最後二長度的錯誤更正碼的最前 7’如申清專利範圍笛 第1項所述應用可變動錯誤 容量的快閃記憶體控制方 -、更正碣 去 更包括下列步驟: 在通道的錯誤更正碼長度設定完成之後,根 記憶體的存取動作,若為$ 根據該快閃 存取該第一管理用資料;以及 弟通道中, 在通道的錯誤更正* 印情體的存取Μ戈設定完成之m,根據該快閃 記隐體的存取動作’若為該第- 存取該第二管理用資料。通道,則在該第二通道中, ㈣_帛i項所述應 容量的快閃記憶體控制方法受動錯誤更正竭 第一長度。 其中,該第二長度係大於該 八、圖式:(如次頁) 10
TW98127790A 2009-08-19 2009-08-19 應用可變動錯誤更正碼容量的快閃記憶體控制方法 TWI431631B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW98127790A TWI431631B (zh) 2009-08-19 2009-08-19 應用可變動錯誤更正碼容量的快閃記憶體控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW98127790A TWI431631B (zh) 2009-08-19 2009-08-19 應用可變動錯誤更正碼容量的快閃記憶體控制方法

Publications (2)

Publication Number Publication Date
TW201108238A true TW201108238A (en) 2011-03-01
TWI431631B TWI431631B (zh) 2014-03-21

Family

ID=44835575

Family Applications (1)

Application Number Title Priority Date Filing Date
TW98127790A TWI431631B (zh) 2009-08-19 2009-08-19 應用可變動錯誤更正碼容量的快閃記憶體控制方法

Country Status (1)

Country Link
TW (1) TWI431631B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI550624B (zh) * 2014-12-16 2016-09-21 Memory data control method

Also Published As

Publication number Publication date
TWI431631B (zh) 2014-03-21

Similar Documents

Publication Publication Date Title
JP5553309B2 (ja) データ処理装置
KR101659888B1 (ko) 플래시 메모리 제어 방법, 제어기 및 전자 장치
US9116823B2 (en) Systems and methods for adaptive error-correction coding
US9984771B2 (en) Multi-level raid-type encoding with random correction capability
JP5569936B2 (ja) 制御装置およびデータ記憶装置
CN106415502B (zh) 数据存储的方法和装置
US20150067436A1 (en) Nonvolatile Memory System Compression
TWI389127B (zh) 快閃記憶體的配置方法
CN103513937B (zh) 能够增加其生命周期的存储设备及其操作方法
TW201545167A (zh) 在非揮發性記憶體中處理錯誤更正碼的方法及其非揮發性儲存裝置
JP2010218634A (ja) 誤り検出訂正器、メモリコントローラおよび半導体記憶装置
US9519541B2 (en) Data storage device and data checking and correction for volatile memory
US11232821B2 (en) Memory system
US10055284B2 (en) Systems and methods for providing error code detection using non-power-of-two flash cell mapping
US9552163B1 (en) Systems and methods for providing non-power-of-two flash cell mapping
TW201913382A (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US9754682B2 (en) Implementing enhanced performance with read before write to phase change memory
US9680509B2 (en) Errors and erasures decoding from multiple memory devices
US9594629B2 (en) Data error correction from cached error correction information
TWI732642B (zh) 資料寫入方法、記憶體控制電路單元以及記憶體儲存裝置
US10942805B2 (en) Error correcting circuit performing error correction on user data and error correcting method using the error correcting circuit
TW200301486A (en) Write-once memory device including non-volatile memory for temporary storage
TW201828069A (zh) 記憶體裝置、記憶體系統及其操作方法
TW201108238A (en) Control method for flash memory based on variable length ECC
US9160371B2 (en) Memory controller, storage device and memory control method