TWI508089B - 電子儲存裝置及其資料修復方法 - Google Patents
電子儲存裝置及其資料修復方法 Download PDFInfo
- Publication number
- TWI508089B TWI508089B TW098121748A TW98121748A TWI508089B TW I508089 B TWI508089 B TW I508089B TW 098121748 A TW098121748 A TW 098121748A TW 98121748 A TW98121748 A TW 98121748A TW I508089 B TWI508089 B TW I508089B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- unit
- error
- ecc unit
- storage device
- Prior art date
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明涉及一種電子儲存裝置及其資料修復方法,特別是涉及一種非揮發性電子儲存裝置及其資料修復方法。
NAND型快閃記憶體因具有讀寫速度快、省電、可靠度高等優點,廣泛被應用在消費型電子產品作為儲存媒體使用。NAND型多層單元(Multi-Level Cell,MLC)快閃記憶體,能大幅提高儲存容量,降低成本。
在燒錄時將單一記憶單元所記錄的兩個位元,分別構成同一記憶區塊中的兩個記憶頁,而形成低次位元稱為最低有效位記憶頁(LSB Page,下面簡稱LSB記憶頁),高次位元稱為最高有效位記憶頁(MSB Page,下面簡稱MSB記憶頁)的儲存結構。兩者雖具不同的記憶頁,實質上則系以同一組記憶單元進行記錄,被稱為配對記憶頁(Paired Page)。第1圖為習知的MLC型快閃記憶體LSB記憶頁與MSB記憶頁的燒錄過程示意圖。具體過程如下:
(1)若低次位元為1(LSB記憶頁燒錄後為狀態U),高次位元也為1,則記憶體單元的狀態維持在狀態U;
(2)若低次位元為1(LSB記憶頁燒錄後為狀態U),高次位元為0,則將記憶體單元從狀態U燒錄到狀態C;
(3)若低次位元為0(LSB記憶頁燒錄後為狀態A),高次位元為1,則記憶體單元的狀態維持在狀態A;
(4)若低次位元為0(LSB記憶頁燒錄後為狀態A),高次位元為0,則將記憶體單元從狀態A燒錄到狀態B。
通常快閃記憶體在讀寫資料時,會利用錯誤修正碼(Error Correction Code,ECC)來確保資料讀寫的正確性。尤其高密度的快閃記憶體晶片,其需要更強的錯誤偵測及修復的能力來支援。因為快閃記憶體在出廠時就不保證記憶胞陣列上所有的記憶胞都是良好的,加上快閃記憶體在使用時也有會發生記憶胞損壞或老化的現象,以及在讀寫資料時可能因受到干擾而造成讀寫錯誤的情形,所以快閃記憶體廠商大多會要求控制器廠商須採用適當位數的錯誤修正碼來確保存取資料的正確性。如此,錯誤的數據位元,皆會被偵測出來並予以修正。但若錯誤數據位元的數目超過錯誤修正碼修復的範圍,錯誤資料將無法修復,會造成資料損毀而無法讀取的情形。若欲提高錯誤位元偵測與修復的能力來提升快閃記憶體中儲存資料的可靠度,將需要佔用較多的記憶體冗餘位,但快閃記憶體可能無法提供足夠多的冗餘位數。
而且,數據於快閃記憶體上存取時,仍有可能會發生錯誤數據的位數超過ECC的保護範圍的情況,因而造成數據讀取錯誤的情形。
本發明之主要目的在於當ECC單元的修復能力不足時,仍可藉由本發明所提出之電子儲存裝置或其資料修復方法而修復錯誤數據,並且能減少錯誤數據的檢查時間,以提高資料讀寫的效率。
本發明提供一種電子儲存裝置,其中,該電子儲存裝置包括:儲存單元、ECC單元及錯誤修正單元。儲存單元由快閃記憶體構成。ECC單元耦接儲存單元,檢查從儲存單元讀取的資料是否有錯誤,當資料的錯誤數目在ECC單元的修復能力以內時,修正資料。錯誤修正單元耦接儲存單元,當資料的錯誤數目超出ECC單元的修復能力時,依序反向資料。
本發明提供一種電子儲存裝置的資料修復方法,電子儲存裝置包含ECC單元,該修復方法包括以下步驟:檢查讀取資料是否有錯誤;當讀取資料的錯誤數目超出ECC單元的修復能力時,依序反向讀取該資料;每一次反向後,檢查讀取資料的錯誤數目是否已在ECC單元的修復能力內;當讀取資料的錯誤數目在ECC單元的修復能力內時,修復數據。
本發明針對上述之需求及現有儲存裝置的不便與缺失,並配合學理之運用,提出,電子儲存裝置以ECC單元和錯誤修正單元。ECC單元檢查從儲存單元讀取的資料是否有錯誤,當資料的錯誤數目在ECC單元的修復能力以內時,修正數據。當數據的錯誤數目超出ECC單元的修復能力時,錯誤修正單元依序反向數據。如此可减小資料錯誤所帶來的影響。
有關本發明的較佳實施例及其功效,茲配合圖式說明如后。
第2圖是本發明電子儲存裝置之功能方塊圖。電子儲存裝置1包含:控制器10及儲存單元11。控制器10包含:微處理器101、ECC單元102、數據緩衝區103、主機介面104、儲存單元介面105及錯誤修正單元106。微處理器101用於控制器10內各單元間控制命令的處理與數據的傳輸管理。主機介面104連接外部裝置,以傳輸指令與數據。儲存單元介面105連接儲存單元11,用於和儲存單元11進行數據傳輸。數據緩衝區103用以暫存儲存主機介面104與儲存單元介面105所接收的數據。ECC單元102耦接儲存單元11用於確認數據的正確性,若發現數據錯誤,先透過錯誤修正功能來修復,若ECC單元102無法修復,則由錯誤修正單元106利用依序反向數據位的方式來修復錯誤數據。
在寫入數據到電子儲存裝置1時,控制器10利用主機介面104接收外部數據,然後將接收的數據暫存於數據緩衝區103。ECC單元102便將數據緩衝區103中的數據加上錯誤修正編碼,然後將加上ECC編碼的數據便透過儲存單元介面105傳送到儲存單元11儲存。
而在讀取數據時,控制器10透過儲存單元介面105讀取儲存單元11中的數據,將讀取出來的數據暫存於數據緩衝區103中。ECC單元102偵測是否有錯誤,若有錯誤且錯誤數據位的數目在ECC單元102的修復能力內,便將錯誤數據予以修復。數據修復後,再透過主機介面104輸出。若數據錯誤的位數超出ECC單元102修復能力的範圍,錯誤修正單元106選擇並依序反向數據暫存器103中的相應的數據位,藉此將數據的錯誤位數降至ECC單元102可修復的範圍來達到數據修復的功效。
第3圖是本實施例的第一種錯誤數據修復方法示意圖。若在數據緩衝區103暫存一筆512位的數據發生ECC單元102無法修復的錯誤,即錯誤數據位的數目超出了ECC單元102的修復能力,錯誤修正單元106則依序反向該數據位,且每一次反向後,都檢查錯誤數據位的數目是否已降至ECC單元102的修復能力內。第3圖中箭頭所指的數據位即為反向的數據位。當數據緩衝區103中的數據可以被ECC單元102修復時,便由ECC單元102將數據修復,然後將修復後的數據透過主機介面104輸出。
為減少修復的時間,本發明還提出第二種錯誤數據修復方法,選擇同值的數據位進行反向,即選擇數據位均為“0”的數據進行反向,數據位為“1”的不反向。同樣,也可選擇數據位均為“1”的數據進行反向,數據位為“0”的不反向,用戶可自行定義進行操作。
第4A、4B圖是本發明之第二種錯誤資料修復方法之示意圖。第4A圖中,在數據緩衝區103暫存一筆512位的數據發生ECC單元102無法修復的錯誤,則錯誤修正單元106針對數據為“0”的數據位依序執行反向,且每一次反向後,ECC單元102都檢查是否可以修復數據。第4A圖中箭頭所指數據位即為反向的數據位。當數據緩衝區103中的數據可以被ECC單元102修復時,即錯誤數據位的數目已降至ECC單元102的修復能力內,便由ECC單元102將修正數據,然後將修正後的數據透過主機介面104輸出。
第4B圖中,錯誤修正單元106則是針對數據為“1”的數據位依序執行反向,並檢查是否已降至ECC單元102可修復的範圍。第4B圖中箭頭所指數據位即為反向的數據位。當數據緩衝區103中的數據為ECC單元102可修復時,便由ECC單元102將數據修復,然後修復後的數據透過主機介面104輸出。
為進一步減少數據修復的時間,本發明提出第三種錯誤數據修復方法,挑選出容易發生錯誤的數據型態做反向的動作。
如第1圖所示,在燒錄MLC快閃記憶體MSB記憶頁的記憶體單元時,當記憶體單元由狀態U燒錄到C時,記憶體單元的值由“11”燒錄到“01”,因為記憶體單元的電位特性,記憶體單元的狀態須由元階“U”經過兩個狀態位階“A”、“B”才得以燒錄到位階“C”。由於這樣的燒錄過程需經過較多的位階,故容易發生沒有準確燒錄到目標位階的情況。如記憶體單元的狀態沒有準確燒錄到位階“C”,而被錯誤燒錄到位階“B”,這將造成原本LSB記憶頁的數據應為“1”卻變成“0”,從而產生錯誤數據。
根據以上,本發明提出第三種錯誤修復方法。第5圖是本發明之第三種錯誤資料修復方法之示意圖。錯誤修正單元106針對數據緩衝區103中較容易發生錯誤的數據型態(Data Pattern)作反向的動作。若數據緩衝區103中的數據為LSB記憶頁的數據,而發生ECC無法修復的情況,控制器10便將LSB記憶頁所對應的MSB記憶頁中的數據讀到數據緩衝區103中,如第5圖所示,對比LSB記憶頁和MSB記憶頁,找出對應位皆為“0”的數據位(亦即上述容易發生錯誤的數據型態),再將這些數據位依序反向,並在每次反向動作後執行檢查。第5圖中箭頭所指方向即為反向的數據位。若ECC單元102檢查到數據緩衝區103中的數據能夠修復時,便由ECC單元102將數據修復,然後將修復的數據透過主機介面104輸出。如此,可大大減少作業的時間。
綜上所述,本發明為利用依序反向相關數據位,再修復數據的方法。當數據緩衝區中的數據發生ECC無法修復的情況,則將數據依序反向,或可挑選出數據位為“0”或“1”或容易發生錯誤的數據位進行反向,反向後,若經檢查可修復時,便由ECC單元102將數據修復。
以上所述僅為本發明的較佳可行實施例,非因此即局限本發明的專利範圍,故舉凡運用本發明說明書及圖示內容所為的等效結構變化,均同理包含于本發明的範圍內。
1...電子儲存裝置
10...儲存裝置控制器
101...微處理器
102...ECC單元
103...數據緩衝區
104...主機介面
105...儲存單元介面
106...錯誤修正单元
11...儲存單元
第1圖:習知的MLC型快閃記憶體LSB記憶頁與MSB記憶頁的燒錄過程之示意图;
第2圖:本發明電子儲存裝置之功能方塊圖;
第3圖:本發明的第一種錯誤數據修復方法之示意圖;
第4A、4B圖:本發明之第二種錯誤資料修復方法之示意圖;
第5圖:本發明之第三種錯誤資料修復方法之示意圖。
103...數據緩衝區
Claims (12)
- 一種電子儲存裝置,用以連接一主機系統,該電子儲存裝置包含:一儲存單元,由快閃記憶體構成;一ECC單元,耦接該儲存單元,檢查從該儲存單元讀取的一資料是否有錯誤,當該資料的錯誤數目在該ECC單元的修能力以內時,修復該資料;及一錯誤修正單元,耦接該儲存單元,當該資料的錯誤數目超出該ECC單元的修復能力時,依序反向該資料。
- 如申請專利範圍第1項所述的電子儲存裝置,其中該錯誤修正單元依序反向該資料中為“1”的數據位。
- 如申請專利範圍第1項所述的電子儲存裝置,其中該錯誤修正單元依序反向該資料中為“0”的數據位。
- 如申請專利範圍第1項所述的電子儲存裝置,其中該錯誤修正單元依序反向該資料中一容易出錯的數據位。
- 如申請專利範圍第4項所述的電子儲存裝置,其中該容易出錯的數據位為最低有效位(LSB)記憶頁和最高有效位(MSB)記憶頁對應的該資料皆為“0”的數據位。
- 如申請專利範圍第2、3、4或5項所述的電子儲存裝置,其中該錯誤修正單元將該資料反向後,若該資料的錯誤數目在該ECC單元的修復能力內,該ECC單元修復該資料。
- 一種電子儲存裝置的資料修復方法,該電子儲存裝置包 含一ECC單元,該資料修復方法包含下列步驟:檢查一讀取資料是否有錯誤;當該讀取資料的錯誤數目超出該ECC單元的修復能力時,依序反向該讀取資料;每一次反向後,檢查該讀取資料的錯誤數目是否已在該ECC單元的修復能力內;及當該讀取資料的錯誤數目在該ECC單元的修復能力內時,修復該讀取資料。
- 如申請專利範圍第7項所述的資料修復方法,其中當該讀取資料的錯誤數目超出了該ECC單元的修復能力時,依序反向該讀取資料的步驟,包含下列步驟:依序反向該讀取資料中為“1”的數據位。
- 如申請專利範圍第7項所述的資料修復方法,其中當該讀取資料的錯誤數目超出了該ECC單元的修復能力時,依序反向該讀取資料的步驟,包含下列步驟:依序反向該讀取資料中為“0”的數據位。
- 如申請專利範圍第7項所述的資料修復方法,其中當該讀取資料的錯誤數目超出了該ECC單元的修復能力時,依序反向該讀取資料的步驟,包含下列步驟:依序反向該讀取資料中一容易出錯的數據位。
- 如申請專利範圍第10項所述的資料修復方法,其中該容易出錯的數據位為最低有效位(LSB)記憶頁和最高有效位(MSB)記憶頁對應的讀取資料皆為“0”的數據位。
- 如申請專利範圍第7項所述的資料修復方法,其中檢查該讀取資料是否有錯誤的步驟後,包含下列步驟:當該讀取資料的錯誤數目在該ECC單元的修復能力內時,該ECC單元直接修復該讀取資料。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098121748A TWI508089B (zh) | 2009-06-29 | 2009-06-29 | 電子儲存裝置及其資料修復方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098121748A TWI508089B (zh) | 2009-06-29 | 2009-06-29 | 電子儲存裝置及其資料修復方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201101319A TW201101319A (en) | 2011-01-01 |
TWI508089B true TWI508089B (zh) | 2015-11-11 |
Family
ID=44836984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098121748A TWI508089B (zh) | 2009-06-29 | 2009-06-29 | 電子儲存裝置及其資料修復方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI508089B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI719850B (zh) * | 2020-03-04 | 2021-02-21 | 華邦電子股份有限公司 | 記憶體儲存裝置及資料存取方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113380303B (zh) * | 2020-03-10 | 2024-06-11 | 华邦电子股份有限公司 | 内存存储装置及数据访问方法 |
CN113808642B (zh) * | 2020-06-15 | 2024-07-19 | 瑞昱半导体股份有限公司 | 数据存取系统和操作数据存取系统的方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070089034A1 (en) * | 2005-10-13 | 2007-04-19 | M-Systems Flash Disk Pioneers, Ltd. | Method of error correction in MBC flash memory |
US20080072120A1 (en) * | 2006-08-31 | 2008-03-20 | Micron Technology, Inc. | Variable Strength ECC |
US20080109703A1 (en) * | 2006-11-03 | 2008-05-08 | Yigal Brandman | Nonvolatile Memory With Modulated Error Correction Coding |
US20080282106A1 (en) * | 2007-05-12 | 2008-11-13 | Anobit Technologies Ltd | Data storage with incremental redundancy |
US7469368B2 (en) * | 2005-11-29 | 2008-12-23 | Broadcom Corporation | Method and system for a non-volatile memory with multiple bits error correction and detection for improving production yield |
US7526711B2 (en) * | 2004-10-14 | 2009-04-28 | Nec Electronics Corporation | Decoding method and device for repeatedly decoding first and second encoded data |
-
2009
- 2009-06-29 TW TW098121748A patent/TWI508089B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7526711B2 (en) * | 2004-10-14 | 2009-04-28 | Nec Electronics Corporation | Decoding method and device for repeatedly decoding first and second encoded data |
US20070089034A1 (en) * | 2005-10-13 | 2007-04-19 | M-Systems Flash Disk Pioneers, Ltd. | Method of error correction in MBC flash memory |
US7469368B2 (en) * | 2005-11-29 | 2008-12-23 | Broadcom Corporation | Method and system for a non-volatile memory with multiple bits error correction and detection for improving production yield |
US20080072120A1 (en) * | 2006-08-31 | 2008-03-20 | Micron Technology, Inc. | Variable Strength ECC |
US20080109703A1 (en) * | 2006-11-03 | 2008-05-08 | Yigal Brandman | Nonvolatile Memory With Modulated Error Correction Coding |
US20080282106A1 (en) * | 2007-05-12 | 2008-11-13 | Anobit Technologies Ltd | Data storage with incremental redundancy |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI719850B (zh) * | 2020-03-04 | 2021-02-21 | 華邦電子股份有限公司 | 記憶體儲存裝置及資料存取方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201101319A (en) | 2011-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI631570B (zh) | 錯誤檢查糾正解碼方法與裝置 | |
TWI621129B (zh) | 資料儲存裝置及其資料寫入方法 | |
TWI527037B (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
US8707135B2 (en) | Method and system of dynamic data storage for error correction in a memory device | |
US9223648B2 (en) | Memory storage device, memory controller thereof, and method for processing data thereof | |
US20190252035A1 (en) | Decoding method, memory storage device and memory control circuit unit | |
US8386905B2 (en) | Error correcting method, and memory controller and memory storage system using the same | |
CN101599305B (zh) | 具有数据修复功能的储存系统及其数据修复方法 | |
TW201911329A (zh) | 資料寫入方法及使用其的記憶體儲存裝置 | |
US20110087950A1 (en) | Data writing method for a flash memory, and controller and storage system using the same | |
MX2012010944A (es) | Detección de distribución de paridad no regulada vía etiqueta de metadatos. | |
TWI554886B (zh) | 資料保護方法、記憶體控制電路單元及記憶體儲存裝置 | |
US9754682B2 (en) | Implementing enhanced performance with read before write to phase change memory | |
CN101923896A (zh) | 电子存储装置及其纠错方法 | |
US20120297115A1 (en) | Program code loading and accessing method, memory controller, and memory storage apparatus | |
TWI509615B (zh) | 資料儲存方法、記憶體控制器與記憶體儲存裝置 | |
TWI539282B (zh) | 非揮發性儲存裝置與控制器 | |
TWI508089B (zh) | 電子儲存裝置及其資料修復方法 | |
CN112051963B (zh) | 数据写入方法、存储器控制电路单元以及存储器存储装置 | |
JP2005196658A (ja) | 外部記憶装置 | |
KR102404257B1 (ko) | 에러보정코드를 이용한 오류보정 기능을 가지는 비동기용 대용량 메모리 모듈 및 에러보정코드를 이용한 비동기용 대용량 메모리 모듈의 오류보정방법 | |
WO2021196620A1 (zh) | 读写方法及存储器装置 | |
TWI509622B (zh) | 具分散錯誤功能的記憶體及其分散錯誤位元的方法 | |
TWI500036B (zh) | 非揮發性儲存裝置及其控制方法 | |
WO2020015122A1 (zh) | 一种随机内存使用ecc运算达成块资料纠错校验的方法 |