TWI437572B - 運用錯誤控制碼於記憶元件的存取方法與系統 - Google Patents
運用錯誤控制碼於記憶元件的存取方法與系統 Download PDFInfo
- Publication number
- TWI437572B TWI437572B TW98116953A TW98116953A TWI437572B TW I437572 B TWI437572 B TW I437572B TW 98116953 A TW98116953 A TW 98116953A TW 98116953 A TW98116953 A TW 98116953A TW I437572 B TWI437572 B TW I437572B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- error
- address
- replacement
- parity check
- Prior art date
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Description
本發明是有關於錯誤控制碼運用於記憶元件,如BCH運用於非揮發性記憶體之錯誤更正方法
對於錯誤控制碼不管是Hamming code、Cyclic code、BCH、RS、Convolution code、Turbo code、LDPC,其應用的通道一般來說都是無記憶性的,也就是說這一次這個位元發生錯誤,下一次這個位元不一定會錯,這些編碼技術應用於無線通訊是非常正確的使用方式,因為通道本身就可能隨機發生錯誤,而對於非揮發性記憶體來說,記憶元件會隨著長時間使用而在不確定的時間損壞,一旦有位元損壞,就會啟動錯誤控制碼模組,
這會需要長時間的計算來修正錯誤,且接下來若要再讀取曾經發生錯誤的位址時,每次都會啟動錯誤控制碼模組,因為非揮發性記憶體的損壞是有記憶性的。
為了修正錯誤控制碼,使之能更適用於記憶元件,在此以BCH碼為例,其餘的錯誤控制碼技術亦可使用。
如BCH碼的解碼步驟可分成:症狀計算、錯誤位址計算、錯誤值計算,其症狀計算是用來得知資料是否有錯,一旦發現錯誤,接著會啟動錯誤位址計算和錯誤值計算,其中錯誤值也就是替換資料,而在完成錯誤更正後不要將錯誤位址和替換資料丟掉,要把這重要的資訊留下來,並且啟動編碼單元中的同位檢查計算,在得到正確的同位檢查值後,連同錯誤位址和替換資料一起回存到非揮發性記憶體當中,以便當下一次要再讀取時,可以用一個很簡單的替換遮罩將錯誤位址避開,並得到正確的資訊,如此不但不必啟動錯誤控制碼模組中,解碼單元的錯誤位址計算和錯誤值計算,還增加了錯誤更正能力,也就是說,一但發生錯誤就記錄下來,下次再讀取相同位置時,就用簡單的遮罩方式將錯誤予以排除,同時還保有錯誤更正碼無記憶性之特性的錯誤更正能力。
理所當然,上述的替換遮罩、緩衝器、錯誤控制碼模組並不一定要放在非揮發性記憶體元件外面,亦可做在非揮發性記憶體裡面,如此更可以減少訊號在傳輸線上的延遲,也可讓非揮發性記憶體更方便使用。
上述一般說明及下列詳細說明都僅為了說明本發明之典型實施例,而
非用以限定本發明,因此本發明之權利保護範圍應以申請專利範圍所界定者為準。
為讓本發明之上述和其他目的、特徵、和優點能更明顯易懂,下文特舉其較佳實施例,並配合所附圖式,作詳細說明如下:
本發明現在將舉其較佳實施例,並參照所附圖式予以更完整地說明。不同圖式中的相同參考數字表示相同元件。
如圖一:本發明提供一種錯誤控制碼:如BCH碼,運用於記憶元件:如非揮發性記憶體40下之方法。
在一開始,要將資訊寫入非揮發性記憶體40時,會先將輸入資料12透過替換遮罩10放在緩衝器20中,由於此時緩衝器20的錯誤位址23是空的,故輸入資料12直接放入緩衝器20中,因此緩衝器20內除了資料21外,没有其他任何資訊,接著錯誤控制碼模組30中的編碼單元32會將同位檢查計算31啟動,並計算出一組同位檢查值24,存放於緩衝器20內,完成後將緩衝器20的內容寫入非揮發性記憶體40當中,這就是一筆記錄41最初的寫入動作,當下一次要讀取這筆記錄41時,會先將這筆記錄41放在緩衝器20內,同時錯誤控制碼模組30中的解碼單元36便會啟動症狀記算33,並利用先前所存放的同位檢查值24,來確定是否有錯誤發生,若没有錯誤發生,這筆資料21便可以送出去,但若發生錯誤,錯誤控制碼模組30中的解編單元36會接續啟動錯誤位址計算34和錯誤值計算35,以得到正確的資訊後,再將這筆資料送出,同時,緩衝器20內的替換資料22
會保留剛才算出來的錯誤值,而緩衝器20內的錯誤位址23,會保留剛才算出來的錯誤位址,接著錯誤控制碼模組30會再啟動編碼單元32,利用正確的資訊和錯誤位址23再來產生一組同位檢查值24放在緩衝器20中,完成後緩衝器20內的資料21、替換資料22、錯誤位址23、同位檢查值24,會一併寫回非揮發性記憶體40中,當下下一次又讀到這筆記錄41時,替換遮罩10會依據錯誤位址23,將資料21中的錯誤由替換資料22來取代,同時錯誤控制碼模組30中的解碼單元36其症狀計算33並不會偵測到錯誤,於是正確的輸出資料11便可經由替換遮罩10來得到,可以發現雖然原始資料21有錯,卻不須要啟動,需長時間計算的錯誤位址計算34和錯誤值計算35,這可減去因資料21錯誤所造成的計算延遲。
為了確保再次輸入資料12時,能避開錯誤,就必須在另一筆資訊寫入該位置前,先將該筆記錄41的錯誤位址23放在緩衝器20內,以確定編碼單元32的同位檢查計算31,可算出正確的同位檢查值24,故每筆資訊的錯誤位址23可以和資料21、替換資料22、同位檢查值24,放在一起,形成一筆記錄41放在非揮發性記憶體40中,當需要錯誤位址23時,就先讀進緩衝器20內。
如圖三:也可以將所有的錯誤位址,集中放在非揮發性記憶體40C中的錯誤位址單元44C,當需要相關的錯誤位址時,可採取區塊的方式,先讀複數個錯誤位址到暫存器50中,再由暫存器50中選取所要的錯誤位址23放入緩衝器20中,且錯誤位址單元44C也可由中央處理器60事先計算取得,也就是說非揮發性記憶體40C在出廠前,就由非揮發性記憶體廠商,利用中央處理器60做測試,將錯誤位址單元44C先行寫入,當使用者需要
時,就將它讀入緩衝器20即可,也可由使用者利用中央處理器60自行測試,將錯誤位址全部收集起來放在非揮發性記憶體40C的錯誤位址單元44C,當需要相關的錯誤位址23時,再將其讀入緩衝器20中。
如圖二:若將替換遮罩10B、緩衝器20B、錯誤控制碼模組30B,放在非揮發性記憶體40B裡面,除了可以減少訊號在傳輸線上的延遲,也可讓非揮發性記憶體更方便使用。
雖然本發明已經以其較佳實施例揭露如上,然其並非用以限定本發明,任何熟習此技藝者,在不脫離本發明之精神的情況下,當可作些許之更動與潤飾,因此本發明之權利保護範圍當視後附之申請專利範圍所界定者為準。
10‧‧‧替換遮罩
10B‧‧‧替換遮罩
11‧‧‧輸出資料
12‧‧‧輸入資料
20‧‧‧緩衝器
20B‧‧‧緩衝器
21‧‧‧資料
22‧‧‧替換資料
23‧‧‧錯誤位址
24‧‧‧同位檢查值
30‧‧‧錯誤控制碼模組
30B‧‧‧錯誤控制碼模組
31‧‧‧同位檢查計算
32‧‧‧編碼單元
33‧‧‧症狀記算
34‧‧‧錯誤位址計算
35‧‧‧錯誤值計算
36‧‧‧解編單元
40‧‧‧非揮發性記憶體
40B‧‧‧非揮發性記憶體
40C‧‧‧非揮發性記憶體
41‧‧‧記錄
41C‧‧‧記錄
42‧‧‧資料單元
43‧‧‧替換資料單元
44‧‧‧錯誤位址單元
44C‧‧‧錯誤位址單元
45‧‧‧同位檢查單元
50‧‧‧暫存器
60‧‧‧中央處理器
第一圖為如本發明之一實施例所述之相關元件之方塊圖。
第二圖為將第一圖之實施例的相關元件,全部整合在記憶元件中之方塊圖
第三圖為將第一圖之實施例的記憶元件中之記憶單元重新劃分,並加入相關元件之方塊圖
10‧‧‧替換遮罩
20‧‧‧緩衝器
30‧‧‧錯誤控制碼模組
40‧‧‧非揮發性記憶體
Claims (16)
- 一種運用錯誤控制碼於記憶元件的存取方法,包括:將一資料寫入一非揮發性記憶體中之一位址時,包括下列步驟:i.將該資料存入一緩衝器中,然後執行步驟ii;ii.檢查該位址是否已有一錯誤位址資訊,若有,則執行步驟iii;若無,則執行步驟v;iii.透過一錯誤控制碼模組計算該資料及該錯誤位址訊息,以獲得一同位檢查值,然後執行步驟iv;iv.將該資料、該錯誤位址及該同位檢查值寫入該非揮發記憶體之該位址,然後執行步驟vii;v.透過一錯誤控制碼模組計算該資料,以獲得一同位檢查值,然後執行步驟vi;vi.將該資料及該同位檢查值寫入該非揮發記憶體之該位址,然後執行步驟vii;vii.結束;及將該資料自該非揮發性記憶體中該位址讀出時,包括下列步驟:i.自該位址該將資料及該同位檢查值存入該緩衝器,然後執行步驟ii;ii.判斷是否有該錯誤位址訊息及一替換資料,若無,則執行步驟iii,若有,則執行步驟vi;iii.該錯誤控制碼模組檢查該同位檢查值,以確定是否有錯誤發生,若有,則執行步驟iv,若無,則將該資料經由該替換遮罩輸出一輸出資料; iv.該錯誤控制碼模組計算出一替換資料及一錯誤位址,並存於該緩衝器內,然後執行步驟v;v.該緩衝器內之該資料,該替換資料及該錯誤位址,經由該錯誤控制碼模組計算獲得一第二同位檢查值,並將該資料、該替換資料、該錯誤位址及該第二同位檢查值回存該非揮發記憶體之該位址,然後執行步驟vii;vi.該替換遮罩基於該緩衝器內之該錯誤位址資訊,將該替換資料與該資料重整,並輸出一輸出資料,然後執行步驟vii;及vii.結束。
- 如申請專利範圍1項所述之方法,其中將該資料讀出時的步驟vi,還包括:該替換遮罩將該資料中的錯誤由該替換資料來取代。
- 如申請專利範圍1項所述之方法,其中將該資料讀出時的步驟vi,還包括:該錯誤控制碼模組再檢查該第二同位檢查值,則判斷該資料為沒有錯誤。
- 一種運用錯誤控制碼於記憶元件的系統,包括:一記憶元件,其為一非揮發性記憶體;一緩衝器,用於暫時存放一資料,該緩衝器還用於暫時存放一替換資料、一錯誤位址及一同位檢查值;一錯誤控制碼模組,用於偵測該資料是否有誤,若發現錯誤,會將緩衝器內的該替換資料、該錯誤位址及該同位檢查值,一併更正並回存於該非揮發性記憶體中;以及一替換遮罩,用於根據回存的該替換資料及該錯誤位址得到正確的輸入 或輸出資料。
- 如申請專利範圍4項所述之系統,其中該替換遮罩用於將該資料中之位於該錯誤位址的錯誤,由該替換資料來取代。
- 如申請專利範圍4項所述之系統,其中該錯誤控制碼模組還包含:一解碼單元,用於偵測到該資料有誤時,計算出該替換資料及該錯誤位址,以得到正確的資料;以及一編碼單元,用於根據該正確的資料及該錯誤位址產生該同位檢查值。
- 如申請專利範圍6項所述之系統,其中該解碼單元用於根據該同位檢查值偵測該資料是否有誤,且再偵測到回存的該同位檢查值時,則判斷的該資料為沒有錯誤。
- 如申請專利範圍4項所述之系統,其中該非揮發性記憶體所存放的一筆資訊包含一資料單元、一替換資料單元、一錯誤位址單元及一同位檢查值單元,分別用以儲存該資料、該替換資料、該錯誤位址及該同位檢查值。
- 如申請專利範圍4項所述之系統,其中該緩衝器、該錯誤控制碼模組及該替換遮罩設置於該非揮發性記憶體中。
- 一種運用錯誤控制碼於記憶元件的存取方法,包括:利用一中央處理器將所有的錯誤位址全部收集起來放在一非揮發性記憶體的一錯誤位址單元中;將一資料寫入該非揮發性記憶體中之一位址時,包括下列步驟:i.將該資料存入一緩衝器中,然後執行步驟ii;ii.檢查該位址是否已有一錯誤位址資訊,若有,則執行步驟iii;若 無,則執行步驟v;iii.透過一錯誤控制碼模組計算該資料及該錯誤位址訊息,以獲得一同位檢查值,然後執行步驟iv;iv.將該資料及該同位檢查值寫入該非揮發記憶體之該位址,然後執行步驟vii;v.透過一錯誤控制碼模組計算該資料,以獲得一同位檢查值,然後執行步驟vi;vi.將該資料及該同位檢查值寫入該非揮發記憶體之該位址,然後執行步驟vii;vii.結束;及將該資料自該非揮發性記憶體中該位址讀出時,包括下列步驟:i.自該位址該將資料及該同位檢查值存入該緩衝器,然後執行步驟ii;ii.判斷是否有該錯誤位址訊息及一替換資料,若無,則執行步驟iii,若有,則執行步驟vii;iii.該錯誤控制碼模組檢查該同位檢查值,以確定是否有錯誤發生,若有,則執行步驟iv,若無,則將該資料經由該替換遮罩輸出一輸出資料;iv.該錯誤控制碼模組計算出一替換資料,並存於該緩衝器內,然後執行步驟v;v.於錯誤位址單元中採取區塊的方式讀複數個錯誤位址到一暫存器中,並於暫存器中選取所要的該錯誤位址放入該緩衝器中,然後執行步驟vi; vi.該緩衝器內之該資料,該替換資料及該錯誤位址,經由該錯誤控制碼模組計算獲得一第二同位檢查值,並將該資料、該替換資料及該第二同位檢查值回存該非揮發記憶體之該位址,然後執行步驟viii;vii.該替換遮罩基於該緩衝器內之該錯誤位址資訊,將該替換資料與該資料重整,並輸出一輸出資料,然後執行步驟viii;viii.結束。
- 如申請專利範圍10項所述之方法,其中將該資料讀出時的步驟v中,該暫存器暫時存放一個區塊或複數區塊的該些錯誤位址。
- 如申請專利範圍10項所述之方法,其中將該資料讀出時的步驟vii,具體包括:該替換遮罩將該資料中之位於該錯誤位址的錯誤,由該替換資料來取代。
- 一種運用錯誤控制碼於記憶元件的系統,包括:一記憶元件,其為一非揮發性記憶體,該非揮發性記憶體包括一錯誤位址單元,用於儲存所有的錯誤位址;一緩衝器,用於暫時存放一資料,該緩衝器還用於暫時存放一替換資料、一錯誤位址及一同位檢查值;一暫存器,以區塊方式暫時存放所有的錯誤位址中的複數個錯誤位址;一錯誤控制碼模組,用於偵測該資料是否有誤,若發現錯誤,會將緩衝器內的該替換資料及該同位檢查值,一併更正並回存於該非揮發性記憶體中,且將緩衝器內的該錯誤位址寫回該錯誤位址單元中;以及一替換遮罩,用於根據回存的該替換資料及該錯誤位址得到正確的輸入 或輸出資料。
- 如申請專利範圍13項所述之系統,進一步包括一中央處理器,其用於將所有的錯誤位址全部收集起來。
- 如申請專利範圍13項所述之系統,其中該暫存器用於暫時存放一個區塊或複數區塊的該些錯誤位址。
- 如申請專利範圍13項所述之系統,其中該替換遮罩用於將該資料中之位於該錯誤位址的錯誤,由該替換資料來取代。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW98116953A TWI437572B (zh) | 2009-05-21 | 2009-05-21 | 運用錯誤控制碼於記憶元件的存取方法與系統 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW98116953A TWI437572B (zh) | 2009-05-21 | 2009-05-21 | 運用錯誤控制碼於記憶元件的存取方法與系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201042650A TW201042650A (en) | 2010-12-01 |
TWI437572B true TWI437572B (zh) | 2014-05-11 |
Family
ID=45000645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW98116953A TWI437572B (zh) | 2009-05-21 | 2009-05-21 | 運用錯誤控制碼於記憶元件的存取方法與系統 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI437572B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI509624B (zh) * | 2013-07-01 | 2015-11-21 | Asolid Technology Co Ltd | 快閃記憶體裝置、記憶體控制器及快閃記憶體的控制方法 |
JP6417937B2 (ja) * | 2014-12-26 | 2018-11-07 | 富士ゼロックス株式会社 | 復号化装置、プログラム及び情報伝送システム |
-
2009
- 2009-05-21 TW TW98116953A patent/TWI437572B/zh active
Also Published As
Publication number | Publication date |
---|---|
TW201042650A (en) | 2010-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105788648B (zh) | 基于异构混合内存的nvm坏块识别处理及纠错方法和系统 | |
KR101750662B1 (ko) | 데이터 에러 교정용 회로, 장치, 및 방법 | |
CN100545817C (zh) | 用于提高数据可靠性的数据管理技术 | |
KR101730510B1 (ko) | 메타데이터 태그를 통한 불규칙적인 패리티 분포 검출 | |
JP6339137B2 (ja) | メモリデバイス、および記憶されているビットシーケンスを訂正するための方法 | |
KR20180089104A (ko) | 메모리 모듈, 이를 포함하는 메모리 시스템 및 이의 에러 정정 방법 | |
JP5082580B2 (ja) | メモリシステム、メモリコントローラ、制御方法及び制御プログラム | |
US20140115422A1 (en) | Non-volatile memory error correction | |
KR101486424B1 (ko) | 에러 정정 회로, 에러 정정 회로를 구비하는 플래시 메모리시스템 및 에러 정정 회로의 동작 방법 | |
JPWO2007096997A1 (ja) | メモリ制御装置およびメモリ制御方法 | |
US9754682B2 (en) | Implementing enhanced performance with read before write to phase change memory | |
TWI677877B (zh) | 用於校正記憶體裝置的方法及記憶體裝置 | |
US8738989B2 (en) | Method and apparatus for detecting free page and a method and apparatus for decoding error correction code using the method and apparatus for detecting free page | |
US9836350B2 (en) | Joint decoding of rewriting NVM error sectors | |
WO2017107160A1 (zh) | 基于异构混合内存的nvm坏块识别处理及纠错方法和系统 | |
TWI437572B (zh) | 運用錯誤控制碼於記憶元件的存取方法與系統 | |
JP2009259113A (ja) | 不揮発性メモリ管理装置 | |
CN106067326B (zh) | 错误校正电路及包括其的半导体存储器件 | |
US10025652B2 (en) | Error location pointers for non volatile memory | |
JP2014033364A (ja) | 誤り検出訂正回路、及びメモリ装置 | |
CN113380303B (zh) | 内存存储装置及数据访问方法 | |
TW201407627A (zh) | 錯誤控制碼應用於非揮發性記憶體元件的方法 | |
TWM417635U (en) | Memory device with high reliability | |
US9519539B2 (en) | Monitoring data error status in a memory | |
JP2007257628A (ja) | 記憶された情報データの読み取りのための誤り訂正と誤り検出の方法およびそのための記憶制御ユニット |