TWI431631B - 應用可變動錯誤更正碼容量的快閃記憶體控制方法 - Google Patents
應用可變動錯誤更正碼容量的快閃記憶體控制方法 Download PDFInfo
- Publication number
- TWI431631B TWI431631B TW98127790A TW98127790A TWI431631B TW I431631 B TWI431631 B TW I431631B TW 98127790 A TW98127790 A TW 98127790A TW 98127790 A TW98127790 A TW 98127790A TW I431631 B TWI431631 B TW I431631B
- Authority
- TW
- Taiwan
- Prior art keywords
- length
- error correction
- correction code
- flash memory
- channel
- Prior art date
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明係關於一種快閃記憶體控制技術,尤指一種應用可變動錯誤更正碼容量的快閃記憶體控制方法,於快閃記憶體中針對不同通道設定相異長度之錯誤更正碼(ECC),以提高錯誤更正能力。
快閃記憶體為類似EEPROM的結構,因為半導體設計的原因,有一定的錯誤機率,所以使用錯誤更正碼(Error Correction Code,ECC)來糾正發生錯誤的資料。
錯誤更正的能力及快閃記憶體內用以管理資料的空間大小取決於ECC的容量,習知技術乃以一個最大允許容量的ECC來實現錯誤更正的功能,所以所有資料的錯誤更正能力皆為相同。
請參考第四圖所示,為4K的資料頁(page)在不同通道下管理資料的長度和ECC長度的關係,若採用BCH(Bose,Ray-Chaudhuri,Hocquenghem)理論所推算出來的ECC容量,允許在資料區域(data area)內產生8個位元(bit)的錯誤,在此8個bit的錯誤更正能力下,需要用到13個位元組的容量。
一般而言,採用上述固定式ECC設計的快閃記憶體控制器,無法充分使用大資料頁(data page)型的快閃記憶體(例如8K page)容量。
有鑑於現有快閃記憶體當中的錯誤更正碼(ECC)及管理資料設計均採固定長度,無法有效提高錯誤更正能力及善用大型資料頁。本發明之主要目的係提供一種可變動錯誤更正碼容量的快閃記憶體控制技術,係對不同通道設定具有不同長度之錯誤更正碼(ECC),使整體快閃記憶體之錯誤更正能力得以有效提升。
為達成前述目的,本發明應用可變動錯誤更正碼容量的快閃記憶體控制方法,係包含有以下步驟:首先,根據資料頁的容量及第一管理用資料的長度,於快閃記憶體的第一通道中,預設定具有第一長度之錯誤更正碼,且根據該資料頁的容量及第二管理用資料的長度,於快閃記憶體的第二通道中,預設定具有第二長度之錯誤更正碼;接著,檢查目前所欲存取的通道是否為第一通道,若是,則將第一通道的錯誤更正碼長度設定為第一長度;若否,則將第二通道的錯誤更正碼長度設定為第二長度。
藉由上述方法,通道1以後之錯誤更正碼長度可被提高,本發明在採用不同容量的錯誤更正碼(ECC)後,可提高錯誤更正效能。
NAND快閃記憶體的架構是由多個資料頁(page)組成,每一個資料頁包含data及spare兩區域,故每個資料頁的大小為(512+16)×N,其中N代表一個資料頁中所對應的磁區數目,例如2K資料頁的快閃記憶體,其N為4,4K資料頁的N=8,目前NAND快閃記憶體之資料頁大致上可分成512、2K、4K、8K bytes等數種規格,然後由64個或128個資料頁組成一個區塊(block)。
在快閃記憶體不同應用的區塊(block)及不同的通道中,所需要的管理容量也不同。一般而言,2K資料頁的快閃記憶體中,其spare區域大小為16×4=64個位元組。若配合以BCH理論所推算出來的8個位元更正能力,錯誤更正碼(ECC)所佔用的大小為13×4=52個位元組,所以只允許管理資料長度為64-52=12個位元組。
本發明之控制方法係於快閃記憶體中的第一通道中,根據資料頁容量及第一管理用資料的長度,設定具有第一長度之錯誤更正碼;於快閃記憶體中的第二通道中,根據資料頁容量及第二管理用資料的長度,設定具有第二長度之錯誤更正碼;設定該第一長度之錯誤更正碼及第二長度之錯誤更正碼分別具有不同之識別碼,其中,第一長度小於第二長度,以下係配合圖式加以詳細說明。
請參考第一圖所示,以2K容量的資料頁為範例說明,依據本發明之技術,快閃記憶體控制器於管理快閃記憶體時,在通道0上會放置完整的管理資料,以便在讀取時能一次讀出所需的管理資料,因此將通道0的錯誤更正碼(ECC)定義為52 bytes、管理用資料長度定義為12 bytes;但自通道1以後,所需要的管理資料量縮減到約4 bytes,換言之可供存放錯誤更正碼(ECC)的空間為便可提高為64-4=60 bytes。
本發明即是對通道0與其它通道分別指定不同長度的錯誤更正碼及管理資料,使各通道能獲得更多位元組的錯誤更正碼,藉此提升資料更正的能力。請參考第二圖所示,當本發明應用於4K資料頁的快閃記憶體時,通道0具有3×8 bytes的管理用資料,而錯誤更正碼的長度為13×8 bytes,通道1以後之管理資料縮減成2×8 bytes,故有更多空間存放錯誤更正碼,錯誤更正碼之長度提高為14×8 bytes。本發明可以在不同的通道上採用不同容量的錯誤更正碼(ECC),藉此提高錯誤更正效能。發生錯誤的通道是隨機的,所以平均來說整體效能會較固定式的要高。
為了辨識不同長度的錯誤更正碼(ECC)以利於讀取,所以本發明於錯誤更正碼當中係加入一識別碼,該識別碼存放在一固定位置以快速被讀出。較佳位置為錯誤更正碼的最前一個位元組或最後一個位元組。
為加速決定錯誤更正碼更正能力的設定,可以設定一套規則來決定不同通道不同區塊上的更正能力,舉例來說,該規則可為:將系統的區塊(Block)分為Data block、Temp block、Info block等不同種類,每種區塊各給予一個ID。於Data block中又可分為「通道0」及「非通道0之其餘通道」兩種,對應到的錯誤更正碼(ECC)可分成兩種形式,分別是ECC0及ECC1,其中:ECC0:係指定用於Temp block、通道0的data block和Info block。
ECC1:係指定用於通道1以後的data block。故讀取識別碼後就可決定為ECC0或ECC1其中一種。
請參考第三圖所示,為依據本發明之實施例,當要存取(例如寫入或讀出)多通道的快閃記憶體之前,可經由以下步驟對快閃記憶體控制器設定其更正位元數:首先,根據資料頁的容量及管理資料的長度決定ECC0及ECC1的長度(步驟300),例如,在4K資料頁的快閃記憶體內,ECC0的長度為13×8 bytes,ECC1的長度為14×8 bytes;接著,對快閃記憶體進行存取,本實施例中以讀/寫為存取動作進行說明(步驟301);然後,判斷是否為資料區塊(Data block)(步驟302),若是則執行下一步驟(步驟303),若否則執行步驟304;接著,檢查目前所欲讀寫的通道是否為通道0(步驟303),若是則設定為ECC0(步驟304),若否則設定為ECC1;最後,判斷是否為寫入動作(步驟305),若為寫入,則配合ECC0或ECC1填入管理用資料至Spare區域並結束寫入動作;若否,則自Spare區域讀取管理資料,配合ECC0或ECC1分析管理資料並結束讀取動作。
本發明之技術在較小的資料頁上具有相當明顯的效果,當應用於大資料頁的快閃記憶體時,此技術更能發揮大資料頁快閃記憶體的優勢。相對於傳統固定長度錯誤更正碼的作法,本發明針對不同通道、不同資料頁長度的快閃記憶體搭配不同的ECC更正設定的方法,在資料儲存的安全性上遠高於固定式的,亦不受最小資料頁的快閃記憶體而有限制錯誤更正碼ECC能力的問題。
第一圖:為依據本發明技術,2K資料頁於不同通通下,管理資料長度和ECC碼長度的關係示意圖。
第二圖:為依據本發明技術,4K資料頁於不同通通下,管理資料長度和ECC碼長度的關係示意圖。
第三圖:為依據本發明對多通道的快閃記憶體設定其更正位元數之步驟流程圖。
第四圖:為習知4K資料頁於不同通通下,管理資料長度和ECC碼長度的關係示意圖。
Claims (7)
- 一種應用可變動錯誤更正碼容量的快閃記憶體控制方法,包含:根據一快閃記憶體內,一資料頁的容量及一第一管理用資料的長度,於該快閃記憶體的一第一通道中,預設定具有一第一長度之錯誤更正碼;根據該資料頁的容量及一第二管理用資料的長度,於該快閃記憶體的一第二通道中,預設定具有一第二長度之錯誤更正碼;根據所儲存資料的種類,於該快閃記憶體中,設定一第一種類區塊及一第二種類區塊,其中,該第一種類區塊的錯誤更正碼長度等於該第一長度;檢查目前所欲存取的通道是否為該第一通道;若是,則將該第一通道的錯誤更正碼長度設定為該第一長度;以及若否,則將該第二通道的錯誤更正碼長度設定為該第二長度。
- 如申請專利範圍第1項所述應用可變動錯誤更正碼容量的快閃記憶體控制方法,其中,位於該第一通道的該第二種類區塊的錯誤更正碼長度等於該第一長度。
- 如申請專利範圍第2項所述應用可變動錯誤更正碼容量的快閃記憶體控制方法,其中,位於該第二通道的該第二種類區塊的錯誤更正碼長度等於該第二長度。
- 如申請專利範圍第1項所述應用可變動錯誤更正碼容量的快閃記憶體控制方法,更包括下列步驟: 在該第一長度之錯誤更正碼中,建立一第一識別碼;以及在該第二長度之錯誤更正碼中,建立一第二識別碼。
- 如申請專利範圍第4項所述應用可變動錯誤更正碼容量的快閃記憶體控制方法,其中該第一及該第二識別碼係分別位於該第一長度及該第二長度的錯誤更正碼的最前一個位元組或最後一個位元組。
- 如申請專利範圍第1項所述應用可變動錯誤更正碼容量的快閃記憶體控制方法,更包括下列步驟:在通道的錯誤更正碼長度設定完成之後,根據該快閃記憶體的存取動作,若為該第一通道,則在該第一通道中,存取該第一管理用資料;以及在通道的錯誤更正碼長度設定完成之後,根據該快閃記憶體的存取動作,若為該第二通道,則在該第二通道中,存取該第二管理用資料。
- 如申請專利範圍第1項所述應用可變動錯誤更正碼容量的快閃記憶體控制方法,其中,該第二長度係大於該第一長度。
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 TW201108238A (en) | 2011-03-01 |
TWI431631B true 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI550624B (zh) * | 2014-12-16 | 2016-09-21 | Memory data control method |
-
2009
- 2009-08-19 TW TW98127790A patent/TWI431631B/zh active
Cited By (1)
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 |
---|---|
TW201108238A (en) | 2011-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101659888B1 (ko) | 플래시 메모리 제어 방법, 제어기 및 전자 장치 | |
US8650463B2 (en) | Solid state drive and method of controlling an error thereof | |
KR101730510B1 (ko) | 메타데이터 태그를 통한 불규칙적인 패리티 분포 검출 | |
US8001444B2 (en) | ECC functional block placement in a multi-channel mass storage device | |
TW201545167A (zh) | 在非揮發性記憶體中處理錯誤更正碼的方法及其非揮發性儲存裝置 | |
KR20090028507A (ko) | 비휘발성 메모리 에러 보정 시스템 및 방법 | |
US10062418B2 (en) | Data programming method and memory storage device | |
US9417959B2 (en) | Flash device and operating method thereof | |
US20110072333A1 (en) | Control method for flash memory based on variable length ecc | |
CN102394114B (zh) | 具有自适应纠错能力的bch码纠错方法 | |
CN103197985B (zh) | 存储控制装置 | |
US9519541B2 (en) | Data storage device and data checking and correction for volatile memory | |
US9754682B2 (en) | Implementing enhanced performance with read before write to phase change memory | |
TW202009695A (zh) | 資料儲存裝置及其共享控制器中記憶體的方法 | |
US8762814B2 (en) | Method for enhancing error correction capability, and associated memory device and controller thereof | |
JP2010079856A (ja) | 記憶装置およびメモリ制御方法 | |
JP6342013B2 (ja) | 不揮発性メモリ・アレイを含むデータ・ストレージ・システムを動作させるための方法、システム及びコンピュータ・プログラム | |
TW201828069A (zh) | 記憶體裝置、記憶體系統及其操作方法 | |
US9594629B2 (en) | Data error correction from cached error correction information | |
KR20160042224A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US10735030B2 (en) | Re-encoding data associated with failed memory devices | |
JP2010282369A (ja) | メモリシステム | |
TWI431631B (zh) | 應用可變動錯誤更正碼容量的快閃記憶體控制方法 | |
CN116431381A (zh) | 平衡闪存ecc纠错能力方法、装置、设备及存储介质 | |
JP6479638B2 (ja) | ビデオサーバ装置およびデータ書き込み/読み出し方法 |