TWI456578B - 非揮發性記憶體之管理方法 - Google Patents
非揮發性記憶體之管理方法 Download PDFInfo
- Publication number
- TWI456578B TWI456578B TW099108841A TW99108841A TWI456578B TW I456578 B TWI456578 B TW I456578B TW 099108841 A TW099108841 A TW 099108841A TW 99108841 A TW99108841 A TW 99108841A TW I456578 B TWI456578 B TW I456578B
- Authority
- TW
- Taiwan
- Prior art keywords
- length
- volatile memory
- code
- parity code
- user data
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2909—Product codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/635—Error control coding in combination with rate matching
- H03M13/6356—Error control coding in combination with rate matching by repetition or insertion of dummy data, i.e. rate reduction
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Claims (14)
- 一種非揮發性記憶體之管理方法,包含以下步驟:提供具有至少一區塊之該非揮發性記憶體,該區塊包含複數頁以儲存使用者資料及同位碼資料;分割該些頁其中之一為複數個分隔,各該些分隔包含該使用者資料及該同位碼資料;決定各該些分隔的碼字元長度,該碼字元長度包含具足夠儲存容量之訊息長度以儲存該使用者資料以及儲存該同位碼資料之同位碼長度;產生一第一與一第二額外同位碼資料,其中該第一與第二額外同位碼資料對應於該使用者資料;以及儲存該第一與該第二額外同位碼資料於從該些頁中選擇出的不同額外同位碼頁。
- 根據請求項1所述之非揮發性記憶體之管理方法,其中該碼字元長度係由BCH碼決定。
- 根據請求項1所述之非揮發性記憶體之管理方法,其中該碼字元長度係該訊息長度及該同位碼長度的總和。
- 根據請求項1所述之非揮發性記憶體之管理方法,其中該訊息長度包含位於該使用者資料前為0的位元。
- 根據請求項1所述之非揮發性記憶體之管理方法,其中該碼字元長度係由n=2m -1決定,其中n係為該碼字元長度,m則滿足下列不等式:2m-1 -1<該使用者資料及該同位碼資料之位元數<2m -1。
- 根據請求項1所述之非揮發性記憶體之管理方法,另包含藉由同時操作該使用者資料的該頁及該額外同位碼頁其中之一以存取該使用者資料之步驟。
- 根據請求項1所述之非揮發性記憶體之管理方法,其中該第一與該第二額外同位碼頁係該區塊之最下頁。
- 一種非揮發性記憶體之管理方法,包含以下步驟:提供具有至少一區塊之該非揮發性記憶體,該區塊包含複數頁以儲存使用者資料及同位碼資料;分割該些頁其中之一為複數個分隔,各該些分隔包含該使用者資料及該同位碼資料;決定各該分隔的碼字元長度,該碼字元長度包含具足夠儲存該使用者資料之儲存容量之訊息長度及儲存該同位碼資料之同位碼長度;產生一第一與一第二額外同位碼資料,其中該第一與第二額外同位碼資料對應於該使用者資料;以及儲存該第一與該第二額外同位碼資料於一相同額外同位碼頁。
- 根據請求項8所述之非揮發性記憶體之管理方法,其中該碼字元長度係由BCH碼決定。
- 根據請求項8所述之非揮發性記憶體之管理方法,其中該碼字元長度係該訊息長度及該同位碼長度的總和。
- 根據請求項8所述之非揮發性記憶體之管理方法,其中該訊息長度包含位於該使用者資料前為0的位元。
- 根據請求項8所述之非揮發性記憶體之管理方法,其中該碼字元長度係由n=2m -1決定,其中n係為該碼字元長度,m則滿足下列不等式:2m-1 -1<該使用者資料及該同位碼資料之位元數<2m -1。
- 根據請求項8所述之非揮發性記憶體之管理方法,另包含藉由同時操作該使用者資料的該頁及該額外同位碼頁其中之一來 存取該使用者資料之步驟。
- 根據請求項8所述之非揮發性記憶體之管理方法,其中該第一與該第二額外同位碼頁係該區塊之最下頁。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/435,055 US8307261B2 (en) | 2009-05-04 | 2009-05-04 | Non-volatile memory management method |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201040977A TW201040977A (en) | 2010-11-16 |
TWI456578B true TWI456578B (zh) | 2014-10-11 |
Family
ID=43031312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099108841A TWI456578B (zh) | 2009-05-04 | 2010-03-25 | 非揮發性記憶體之管理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8307261B2 (zh) |
TW (1) | TWI456578B (zh) |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2092530B1 (en) * | 2006-12-07 | 2012-10-31 | Nxp B.V. | Method and device for reconfiguration of reliability data in flash eeprom storage pages |
US9471418B2 (en) * | 2007-06-19 | 2016-10-18 | Samsung Electronics Co., Ltd. | Memory system that detects bit errors due to read disturbance and methods thereof |
US8341501B2 (en) | 2009-04-30 | 2012-12-25 | International Business Machines Corporation | Adaptive endurance coding of non-volatile memories |
US20110072333A1 (en) * | 2009-09-24 | 2011-03-24 | Innostor Technology Corporation | Control method for flash memory based on variable length ecc |
KR20110100739A (ko) * | 2010-03-05 | 2011-09-15 | 삼성전자주식회사 | 불휘발성 메모리 장치의 동작 방법, 컨트롤러의 동작 방법, 그리고 불휘발성 메모리 장치 및 컨트롤러를 포함하는 메모리 시스템의 동작 방법 |
US8726126B2 (en) * | 2010-03-23 | 2014-05-13 | Apple Inc. | Non-regular parity distribution detection via metadata tag |
US8555142B2 (en) * | 2010-06-22 | 2013-10-08 | Cleversafe, Inc. | Verifying integrity of data stored in a dispersed storage memory |
US8892981B2 (en) | 2010-09-30 | 2014-11-18 | Apple Inc. | Data recovery using outer codewords stored in volatile memory |
US8341498B2 (en) | 2010-10-01 | 2012-12-25 | Sandisk Technologies Inc. | System and method of data encoding |
US8769374B2 (en) * | 2010-10-13 | 2014-07-01 | International Business Machines Corporation | Multi-write endurance and error control coding of non-volatile memories |
TWI459396B (zh) * | 2010-12-30 | 2014-11-01 | Phison Electronics Corp | 資料寫入與讀取方法、記憶體控制器與記憶體儲存裝置 |
TWI473105B (zh) * | 2011-01-18 | 2015-02-11 | Macronix Int Co Ltd | 具有錯誤自動檢查與更正位元之三維記憶體結構 |
US8732557B2 (en) | 2011-05-31 | 2014-05-20 | Micron Technology, Inc. | Data protection across multiple memory blocks |
JP5764392B2 (ja) * | 2011-06-13 | 2015-08-19 | 株式会社メガチップス | メモリコントローラ |
US8902653B2 (en) | 2011-08-12 | 2014-12-02 | Micron Technology, Inc. | Memory devices and configuration methods for a memory device |
JP2013109567A (ja) * | 2011-11-21 | 2013-06-06 | Toshiba Corp | ストレージデバイス及び誤り訂正方法 |
TW201337936A (zh) * | 2012-03-06 | 2013-09-16 | Innodisk Corp | 可提升資料校正能力之快閃記憶體裝置 |
US9021333B1 (en) | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for recovering data from failed portions of a flash drive |
US9047214B1 (en) * | 2012-05-22 | 2015-06-02 | Pmc-Sierra, Inc. | System and method for tolerating a failed page in a flash device |
US8996957B1 (en) | 2012-05-22 | 2015-03-31 | Pmc-Sierra, Inc. | Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes |
US8972824B1 (en) | 2012-05-22 | 2015-03-03 | Pmc-Sierra, Inc. | Systems and methods for transparently varying error correction code strength in a flash drive |
US9021336B1 (en) | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages |
US8793556B1 (en) | 2012-05-22 | 2014-07-29 | Pmc-Sierra, Inc. | Systems and methods for reclaiming flash blocks of a flash drive |
US9021337B1 (en) | 2012-05-22 | 2015-04-28 | Pmc-Sierra, Inc. | Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive |
US9176812B1 (en) | 2012-05-22 | 2015-11-03 | Pmc-Sierra, Inc. | Systems and methods for storing data in page stripes of a flash drive |
US8788910B1 (en) | 2012-05-22 | 2014-07-22 | Pmc-Sierra, Inc. | Systems and methods for low latency, high reliability error correction in a flash drive |
US9183085B1 (en) | 2012-05-22 | 2015-11-10 | Pmc-Sierra, Inc. | Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency |
EP2672387B1 (en) * | 2012-06-04 | 2018-08-01 | Amplidata NV | A distributed object storage system |
JP2014085954A (ja) * | 2012-10-25 | 2014-05-12 | Kyocera Corp | 携帯端末装置、プログラムおよび入力操作受け付け方法 |
US8996961B2 (en) | 2012-12-11 | 2015-03-31 | Seagate Technology Llc | Error correction code rate management for nonvolatile memory |
US9069695B2 (en) | 2013-03-14 | 2015-06-30 | Apple Inc. | Correction of block errors for a system having non-volatile memory |
US9026867B1 (en) | 2013-03-15 | 2015-05-05 | Pmc-Sierra, Inc. | Systems and methods for adapting to changing characteristics of multi-level cells in solid-state memory |
US9081701B1 (en) | 2013-03-15 | 2015-07-14 | Pmc-Sierra, Inc. | Systems and methods for decoding data for solid-state memory |
US9208018B1 (en) | 2013-03-15 | 2015-12-08 | Pmc-Sierra, Inc. | Systems and methods for reclaiming memory for solid-state memory |
US9053012B1 (en) | 2013-03-15 | 2015-06-09 | Pmc-Sierra, Inc. | Systems and methods for storing data for solid-state memory |
US9009565B1 (en) | 2013-03-15 | 2015-04-14 | Pmc-Sierra, Inc. | Systems and methods for mapping for solid-state memory |
US20150058697A1 (en) * | 2013-08-22 | 2015-02-26 | Kabushiki Kaisha Toshiba | Storage device, controller and memory controlling method |
US9685242B2 (en) | 2014-03-11 | 2017-06-20 | Kabushiki Kaisha Toshiba | Memory system |
DE102014211896A1 (de) * | 2014-06-20 | 2015-12-24 | Robert Bosch Gmbh | Verfahren zur Überwachung einer Fahrzeugsteuerung |
US10148290B2 (en) * | 2015-04-06 | 2018-12-04 | Lg Electronics Inc. | Method and apparatus for encoding or decoding channel code in a wireless communication system |
KR101860809B1 (ko) | 2015-09-30 | 2018-07-06 | 서울대학교산학협력단 | 메모리 시스템 및 메모리 에러 정정 방법 |
US10063261B1 (en) * | 2015-10-13 | 2018-08-28 | Sorenson Ip Holdings Llc | Communication endpoints and related methods for forward error correction of packetized data |
KR20170045803A (ko) * | 2015-10-20 | 2017-04-28 | 삼성전자주식회사 | 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 |
US20170126249A1 (en) * | 2015-10-30 | 2017-05-04 | Intel Corporation | Temperature dependent multiple mode error correction |
US10326479B2 (en) * | 2016-07-11 | 2019-06-18 | Micron Technology, Inc. | Apparatuses and methods for layer-by-layer error correction |
KR20200078830A (ko) * | 2018-12-24 | 2020-07-02 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 모듈 |
CN111192624A (zh) * | 2019-12-30 | 2020-05-22 | 深圳市芯天下技术有限公司 | 测试bch纠错码的性能的系统及方法 |
US11658685B2 (en) * | 2021-10-05 | 2023-05-23 | Macronix International Co., Ltd. | Memory with multi-mode ECC engine |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070171714A1 (en) * | 2006-01-20 | 2007-07-26 | Marvell International Ltd. | Flash memory with coding and signal processing |
US20070271494A1 (en) * | 2006-05-17 | 2007-11-22 | Sandisk Corporation | Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices |
US20070300130A1 (en) * | 2006-05-17 | 2007-12-27 | Sandisk Corporation | Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices |
US20080091971A1 (en) * | 2006-09-22 | 2008-04-17 | Fujitsu Limited | Stored data processing apparatus, storage apparatus, and stored data processing program |
US20080126848A1 (en) * | 2006-09-22 | 2008-05-29 | Fujitsu Limited | Stored data processing apparatus, storage apparatus, and stored data processing program |
US20080148126A1 (en) * | 2006-12-19 | 2008-06-19 | Eilert Sean S | Method, system, and apparatus for ECC protection of small data structures |
US20080282106A1 (en) * | 2007-05-12 | 2008-11-13 | Anobit Technologies Ltd | Data storage with incremental redundancy |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560745B1 (en) * | 2000-07-21 | 2003-05-06 | The United States Of America As Represented By The National Security Agency | Method of identifying boundary of markerless codeword |
CA2324574A1 (en) * | 2000-10-26 | 2002-04-26 | Bin Li | An optimal bit allocation algorithm for reed-solomon coded data for adsl |
JP3829741B2 (ja) * | 2002-03-19 | 2006-10-04 | ソニー株式会社 | 記録媒体、記録方法、記録装置 |
US7237183B2 (en) * | 2003-03-04 | 2007-06-26 | Broadcom Corporation | Parallel decoding of a BCH encoded signal |
US7698619B1 (en) * | 2005-08-25 | 2010-04-13 | Marvell International Ltd. | Erasure forecasting and error-correction strategies |
US7681110B2 (en) * | 2006-08-30 | 2010-03-16 | Microsoft Corporation | Decoding technique for linear block codes |
JP4823001B2 (ja) * | 2006-09-27 | 2011-11-24 | 富士通セミコンダクター株式会社 | オーディオ符号化装置 |
US8429492B2 (en) * | 2007-11-30 | 2013-04-23 | Marvell World Trade Ltd. | Error correcting code predication system and method |
CN101572125B (zh) * | 2008-04-30 | 2013-02-27 | 扬智科技股份有限公司 | 错误更正电路及其方法 |
US8161354B2 (en) * | 2008-10-16 | 2012-04-17 | Genesys Logic, Inc. | Flash memory controller having configuring unit for error correction code (ECC) capability and method thereof |
US8161355B2 (en) * | 2009-02-11 | 2012-04-17 | Mosys, Inc. | Automatic refresh for improving data retention and endurance characteristics of an embedded non-volatile memory in a standard CMOS logic process |
-
2009
- 2009-05-04 US US12/435,055 patent/US8307261B2/en active Active
-
2010
- 2010-03-25 TW TW099108841A patent/TWI456578B/zh active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070171714A1 (en) * | 2006-01-20 | 2007-07-26 | Marvell International Ltd. | Flash memory with coding and signal processing |
US20070271494A1 (en) * | 2006-05-17 | 2007-11-22 | Sandisk Corporation | Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices |
US20070300130A1 (en) * | 2006-05-17 | 2007-12-27 | Sandisk Corporation | Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices |
US20080091971A1 (en) * | 2006-09-22 | 2008-04-17 | Fujitsu Limited | Stored data processing apparatus, storage apparatus, and stored data processing program |
US20080126848A1 (en) * | 2006-09-22 | 2008-05-29 | Fujitsu Limited | Stored data processing apparatus, storage apparatus, and stored data processing program |
US20080148126A1 (en) * | 2006-12-19 | 2008-06-19 | Eilert Sean S | Method, system, and apparatus for ECC protection of small data structures |
US20080282106A1 (en) * | 2007-05-12 | 2008-11-13 | Anobit Technologies Ltd | Data storage with incremental redundancy |
Also Published As
Publication number | Publication date |
---|---|
US8307261B2 (en) | 2012-11-06 |
TW201040977A (en) | 2010-11-16 |
US20100281341A1 (en) | 2010-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI456578B (zh) | 非揮發性記憶體之管理方法 | |
US8555143B2 (en) | Flash memory controller and the method thereof | |
EP2684134B1 (en) | Programmable data storage management | |
CN113196260B (zh) | 能够选择性使用键部分的键值存储树 | |
JP5597666B2 (ja) | 半導体記憶装置、情報処理システムおよび制御方法 | |
US8910017B2 (en) | Flash memory with random partition | |
JP2011522301A5 (zh) | ||
JP2012500512A5 (zh) | ||
JP2001249854A5 (zh) | ||
JP2011525680A5 (zh) | ||
JP2014507717A5 (zh) | ||
US11138069B2 (en) | Providing additional parity for non-standard sized parity data sets | |
JP2013522776A5 (zh) | ||
WO2006011131A3 (en) | Virtual-to-physical address translation in a flash file system | |
JP2008507756A5 (zh) | ||
JP2015036982A5 (zh) | ||
JP2015535119A5 (zh) | ||
JP2017531263A5 (zh) | ||
CN113485867A (zh) | 于记忆装置中进行数据管理的方法、记忆装置及其控制器 | |
KR102596244B1 (ko) | 저장 장치, 플래시 메모리 컨트롤러 및 그 제어 방법 | |
US20150227424A1 (en) | Data storage device and data checking and correction for volatile memory | |
CN107017030A (zh) | 用于不规则代码的高效ldpc编码器 | |
US10176060B2 (en) | Memory apparatus for applying fault repair based on physical region and virtual region and control method thereof | |
JP4788492B2 (ja) | ストレージ装置の容量拡張方法、プログラム、およびストレージ装置 | |
US20200004461A1 (en) | Reverse directory structure in a garbage collection unit (gcu) |