KR20070109686A - 멀티 레벨 셀 낸드 플래쉬 메모리에서 에러 정정 기법을사용한 개선된 카피백 동작 - Google Patents
멀티 레벨 셀 낸드 플래쉬 메모리에서 에러 정정 기법을사용한 개선된 카피백 동작 Download PDFInfo
- Publication number
- KR20070109686A KR20070109686A KR1020060043020A KR20060043020A KR20070109686A KR 20070109686 A KR20070109686 A KR 20070109686A KR 1020060043020 A KR1020060043020 A KR 1020060043020A KR 20060043020 A KR20060043020 A KR 20060043020A KR 20070109686 A KR20070109686 A KR 20070109686A
- Authority
- KR
- South Korea
- Prior art keywords
- error
- data
- flash memory
- level cell
- back operation
- Prior art date
Links
Images
Classifications
-
- 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
-
- 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/1072—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 multilevel memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- 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
Abstract
본 발명은 플래시 메모리 장치의 에러 정정 방법에 관한 것으로, 페리티 장치부로부터 입력 데이터를 받아 페리티 비트를 생성하고 인코딩하는 단계, 상기 인코딩된 데이터가 신드롬 장치부에 전송되어 연산되는 단계, 상기 연산된 데이터에 의해 에러를 검출하고 에러가 발생한 위치를 찾아내어 레지스터에 저장하는 단계, 상기 레지스터에 저장된 값을 바탕으로 에러가 발생한 위치에서 XOR 연산을 통하여 잘못된 비트들을 수정하는 단계 및 소스 페이지에서 발생한 에러들을 수정하여 에러의 축적없이 데이터를 타겟 페이지에 전송하는 단계를 포함하고, 카피백 동작시에 BCH 코드를 적용하여, 에러를 검출하고 정정하여 데이터를 타겟 페이지에 전달함으로써 정확한 데이터를 얻을 수 있다.
플래시 메모리, 에러 정정, 카피백
Description
도 1은 종래의 카피백 동작을 간략하게 도시한 도면이다.
도 2는 본 발명에 적용되는 BCH 코드의 알고리즘이다.
도 3은 도 2가 적용된 에러정정 회로를 간략히 도시한 블럭도이다.
도 4는 도 3의 ECC 유니트를 상세히 도시한 블럭도이다.
도 5는 도 4의 카피백 동작을 나타낸 순서도이다.
<도면의 주요 부분에 대한 부호의 설명>
141 : 페리티 장치부 142 : 신드롬 장치부
143 : 체인 장치부
본 발명은 플래시 메모리 장치의 구동 방법에 관한 것으로서, 특히 에러 정정 방법에 관한 것이다.
최근에, 플래시 메모리의 집적도를 더욱 향상시키기 위해 한 개의 메모리 셀 에 복수개의 데이타를 저장할 수 있는 다중 비트 셀에 대한 연구가 활발히 진행되고 있다. 이러한 방식의 메모리 셀을 통상 멀티 레벨 셀(Multi-Level Cell; MLC)이라고 한다. 이와 대비되는 단일 비트의 메모리 셀을 싱글 레벨 셀(Single-Level Cell; SLC)이라 한다. 이러한 멀티 레벨 셀(MLC)은 낸드 플래시 메모리의 소스 페이지(source page)에서 전압 손실(charge loss) 또는 전압 과잉(charge gain)과 같은 결함이 발생할 수 있다.
도 1은 종래의 카피백 동작을 간략하게 도시한 도면이다. 카피백(copy back) 동작은 tRD 시간 동안 소스 페이지(13)의 데이터를 페이지 버퍼(14)로 전송한 후, tPGM 시간 동안 페이지 버퍼에 있는 데이터를 타겟 페이지(12)로 전송한다.
이때, 상기 결함을 지닌 상태에서 카피백 동작을 수행하게 되면 멀티 레벨 셀(11)에 결함이 축적될 수 있게 되어 플래시 메모리의 신뢰도가 떨어질 수 있게 된다.
따라서, 본 발명은 멀티 레벨 셀을 구비한 플래시 메모리 장치에서 카피백 동작시에 에러 정정 코드로 많이 쓰이는 BCH 코드를 적용하여, 에러의 검출뿐만 아니라 수정도 가능하도록 하는 데 있다.
상기한 기술적 과제를 달성하기 위한 본 발명에 따른 플래시 메모리 장치의 에러 정정 방법은, 페리티 장치부로부터 입력 데이터를 받아 페리티 비트를 생성하고 인코딩하는 단계, 상기 인코딩된 데이터가 신드롬 장치부에 전송되어 연산되는 단계, 상기 연산된 데이터에 의해 에러를 검출하고 에러가 발생한 위치를 찾아내어 레지스터에 저장하는 단계, 상기 레지스터에 저장된 값을 바탕으로 에러가 발생한 위치에서 XOR 연산을 통하여 잘못된 비트들을 수정하는 단계 및 소스 페이지에서 발생한 에러들을 수정하여 에러의 축적없이 데이터를 타겟 페이지에 전송하는 단계를 포함하는 플래시 메모리 장치의 에러 정정 방법을 포함한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명하기로 한다. 그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록 하며 통상의 지식을 가진자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.
도 2는 본 발명에 적용되는 BCH 코드의 알고리즘이다. 에러 정정 코드인 BCH(Bose-Chaudhuri-Hocquenghen) 코드는 발명자 3인의 이름을 따서 BCH 코드로 불리어 지며, 이는 대표적인 랜덤 에러(random error) 정정 코드로 쓰이고 있다. 정정 동작은 페리티 비트 형성(21), 암호화(22), 신드롬 연산부(23), BM 연산부(24) 및 체인 연산부(25)의 순서로 에러를 정정하게 된다. 먼저 데이터(DATA)가 입력되면 페리티 비트를 형성하여(21) 생성된 페리티 비트와 입력된 데이터(DATA)를 혼합하여 암호화(22) 하여 데이터(DATA)를 인코딩한다. 다음으로 신드롬(syndromes) 이라는 중간값을 얻고(23) 신드롬 값들이 모두 "0"이면 에러가 없음을 나타내어 바로 입력된 데이터(DATA)를 출력한다. 하지만, 신드롬 값들 중 하나라도 "1"의 값이 있으면 에러가 있음을 검출하게 된다. 그러면, BM(Berlekamp-Massey) 연산부(24)는 전단계의 신드롬 값을 바탕으로 하여 다항식의 상수를 생성하고, 다항식의 근으로부터 에러 위치를 얻게 된다. 마지막 단계로, 체인 연산부(Chein-Search, 25)는 이전의 다항식 근으로부터 에러의 위치를 찾게 되고, 에러 위치를 찾아내면 XOR 연산을 수행하여 에러가 발생한 데이터를 정정하게 된다.
도 3은 도 2가 적용된 에러정정 회로를 간략히 도시한 블럭도이다. 에러정정 회로는 메모리 어레이(110), 리피터(120), 버퍼(130), ECC 유니트(140) 및 제어부(150)를 포함한다. 라이트 동작은 호스트(미도시)로 부터 유저 데이터를 받아 버퍼(130)에 저장한다. 버퍼(130)에 저장된 모든 유저 데이터에서 각각의 ECC 블록에 해당하는 정보를 메모리 어레이(110)와 ECC(error correction code) 유니트(140)로 입력하여 ECC 패리티(parity)를 생성한 후, 그 패리티를 임시 저장한다. 임시로 저장된 패리티 정보 및 각 섹터의 상태정보는 메모리 어레이(110)의 오버헤드 영역에 따로 저장된다. 이때, 메모리 어레이(110)에 저장되어 있는 패리티 정보를 함께 리드(read)하여 신드롬을 계산하고, 계산된 신드롬에 의해 에러 발생 여부를 판단하여, 에러가 발생할 경우는 ECC에 의해 에러 정정을 하도록 이루어진다.
도 4는 도 3의 ECC 유니트를 상세히 도시한 블럭도이다. ECC 유니트(140)는 페리티 장치부(141), 신드롬 장치부(142) 및 체인 장치부(143)를 포함한다. 페리티 장치부(141)는 데이터를 입력받아 페리티 비트를 형성하고 이를 암호화 하여 인코딩한다. 신드롬 장치부(142)는 에러를 검출하는 장치로써, 신드롬 값들이 모두 "0"이면 에러가 없음을 나타내어 바로 입력된 데이터를 출력하고, 신드롬 값들 중 하나라도 "1"의 값이 있으면 에러가 있음을 검출하게 된다. 체인 장치부(143)는 신드 롬 값을 바탕으로 하여 다항식의 상수를 생성하고, 다항식의 근으로부터 에러 위치를 찾고, XOR 연산을 수행하여 에러가 발생한 데이터를 정정하게 된다.
도 5는 도 4의 카피백 동작을 나타낸 순서도이다. 멀티 레벨 셀(MLC)에 데이터가 입력되기 전에 페리티 장치부(141)에서 입력 데이터를 받아(201) 페리티 비트(parity bit)를 생성한다. 오리지널(original) 데이터에 페리티를 첨부하여 인코딩된 데이터(202)를 멀티 레벨 셀(MLC)에 전달하여 저장한다(203). 그리고 카피백을 수행할지를 선택(204)한다. 카피백 동작을 하게 되면 멀티 레벨 셀의 인코딩된 데이터는 페이지 버퍼와 신드롬 장치부(142)에 각각 전송된다(206). 신드롬 장치부(142)에서 신드롬 데이터를 연산하여(207) 신드롬 데이터가 모두 "0"이면(208) 에러가 없다는 것이므로 타겟 페이지에 데이터를 전송한다(209). 만약, 신드롬 데이터 중 하나라도 "1"이 있으면 체인 장치부(143)에서 에러가 있음을 검출하게 된다(210). 체인 장치부(143)는 에러를 검출한 다음에 에러가 발생한 위치를 찾아내어(211) 레지스터(N)에는 에러의 수, 레지스터(P)에는 에러의 위치, 레지스터(M)에는 에러 정정을 위한 마스크값을 저장한다. 상기 레지스터(N, P, M) 값을 바탕으로 에러가 발생한 위치에서 XOR 연산을 통하여 잘못된 비트(bit)들을 수정하게 된다(212). 그리고 소스 페이지에서 발생한 에러들을 수정하여 에러의 축적없이 데이터를 타겟 페이지에 전송하게 된다(213).
상기에서 설명한 본 발명의 기술적 사상은 바람직한 실시예에서 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명은 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술적 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
이상에서 설명한 바와 같이, 본 발명에 따른 플래시 메모리 장치의 구동 방법은, 카피백 동작시에 BCH 코드를 적용하여, 에러를 검출하고 정정하여 데이터를 타겟 페이지에 전달함으로써 정확한 데이터를 얻을 수 있다.
Claims (1)
- 페리티 장치부로부터 입력 데이터를 받아 페리티 비트를 생성하고 인코딩하는 단계;상기 인코딩된 데이터가 신드롬 장치부에 전송되어 연산되는 단계;상기 연산된 데이터에 의해 에러를 검출하고 에러가 발생한 위치를 찾아내어 레지스터에 저장하는 단계;상기 레지스터에 저장된 값을 바탕으로 에러가 발생한 위치에서 XOR 연산을 통하여 잘못된 비트들을 수정하는 단계; 및소스 페이지에서 발생한 에러들을 수정하여 에러의 축적없이 데이터를 타겟 페이지에 전송하는 단계를 포함하는 플래시 메모리 장치의 에러 정정 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060043020A KR20070109686A (ko) | 2006-05-12 | 2006-05-12 | 멀티 레벨 셀 낸드 플래쉬 메모리에서 에러 정정 기법을사용한 개선된 카피백 동작 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020060043020A KR20070109686A (ko) | 2006-05-12 | 2006-05-12 | 멀티 레벨 셀 낸드 플래쉬 메모리에서 에러 정정 기법을사용한 개선된 카피백 동작 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20070109686A true KR20070109686A (ko) | 2007-11-15 |
Family
ID=39064166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060043020A KR20070109686A (ko) | 2006-05-12 | 2006-05-12 | 멀티 레벨 셀 낸드 플래쉬 메모리에서 에러 정정 기법을사용한 개선된 카피백 동작 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20070109686A (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100908541B1 (ko) * | 2007-12-24 | 2009-07-20 | 주식회사 하이닉스반도체 | 불휘발성 메모리 소자의 카피백 프로그램 방법 |
KR20110125892A (ko) * | 2010-05-14 | 2011-11-22 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 카피-백 방법 |
US8370699B2 (en) | 2008-03-25 | 2013-02-05 | Samsung Electronics Co., Ltd. | Semiconductor memory apparatus for reducing bus traffic between NAND flash memory device and controller |
US9747170B2 (en) | 2013-03-15 | 2017-08-29 | Samsung Electronics Co., Ltd. | Non-volatile multi-level cell memory system and method of performing adaptive data back-up in the system |
-
2006
- 2006-05-12 KR KR1020060043020A patent/KR20070109686A/ko not_active Application Discontinuation
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100908541B1 (ko) * | 2007-12-24 | 2009-07-20 | 주식회사 하이닉스반도체 | 불휘발성 메모리 소자의 카피백 프로그램 방법 |
US8370699B2 (en) | 2008-03-25 | 2013-02-05 | Samsung Electronics Co., Ltd. | Semiconductor memory apparatus for reducing bus traffic between NAND flash memory device and controller |
KR20110125892A (ko) * | 2010-05-14 | 2011-11-22 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 카피-백 방법 |
US8751900B2 (en) | 2010-05-14 | 2014-06-10 | Samsung Electronics Co., Ltd. | Storage device having a non-volatile memory device and copy-back method thereof |
US9747170B2 (en) | 2013-03-15 | 2017-08-29 | Samsung Electronics Co., Ltd. | Non-volatile multi-level cell memory system and method of performing adaptive data back-up in the system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4672743B2 (ja) | 誤り訂正装置および誤り訂正方法 | |
US8713407B2 (en) | Semiconductor memory system having ECC circuit and controlling method thereof | |
US8418028B2 (en) | Chien search device and Chien search method | |
KR100833600B1 (ko) | 에러 정정 회로, 그 방법 및 상기 회로를 구비하는 반도체메모리 장치 | |
JP4825874B2 (ja) | マルチビット・パー・セル・フラッシュメモリにおける、確率に基づくエラー訂正 | |
KR100842680B1 (ko) | 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 | |
US9990247B2 (en) | Write mapping to mitigate hard errors via soft-decision decoding | |
US9312885B2 (en) | Nonvolatile semiconductor memory system error correction capability of which is improved | |
JP2008165805A (ja) | フラッシュメモリ装置のecc制御器及びそれを含むメモリシステム | |
JP2008165808A (ja) | 誤り訂正確率を減らすエラー訂正回路、その方法及び前記回路を備える半導体メモリ装置 | |
US20120131418A1 (en) | Memory device | |
KR20180089104A (ko) | 메모리 모듈, 이를 포함하는 메모리 시스템 및 이의 에러 정정 방법 | |
US20140068378A1 (en) | Semiconductor storage device and memory controller | |
KR20070109686A (ko) | 멀티 레벨 셀 낸드 플래쉬 메모리에서 에러 정정 기법을사용한 개선된 카피백 동작 | |
TWI517176B (zh) | 降低nand快閃記憶體裝置與控制器之間匯流排流量的半導體記憶體裝置 | |
US20130104003A1 (en) | Memory system and method for recording/reproducing data thereof | |
KR101171773B1 (ko) | 반도체 메모리 장치 및 이의 패리티 생성 방법 | |
KR101999288B1 (ko) | 메모리 데이터의 에러 보정 장치 및 방법 | |
US20190114221A1 (en) | Coding technique | |
KR20130077401A (ko) | 반도체 메모리 장치 및 그 구동 방법 | |
JP2005011386A (ja) | 誤り訂正装置 | |
JP5121947B2 (ja) | 誤り訂正装置および誤り訂正方法 | |
US20210319835A1 (en) | Memory apparatus and data reading method thereof | |
TWI703572B (zh) | 記憶體儲存裝置及其記憶體測試方法 | |
US20210109808A1 (en) | Using Original Data as Soft Bit Information in a Decoder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |