KR20130136271A - 비휘발성 메모리 장치 및 그것의 데이터 처리 방법 - Google Patents
비휘발성 메모리 장치 및 그것의 데이터 처리 방법 Download PDFInfo
- Publication number
- KR20130136271A KR20130136271A KR1020120059954A KR20120059954A KR20130136271A KR 20130136271 A KR20130136271 A KR 20130136271A KR 1020120059954 A KR1020120059954 A KR 1020120059954A KR 20120059954 A KR20120059954 A KR 20120059954A KR 20130136271 A KR20130136271 A KR 20130136271A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- erasure
- read
- bit
- memory
- Prior art date
Links
Images
Classifications
-
- 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/50—Marginal testing, e.g. race, voltage or current testing
- G11C29/50004—Marginal testing, e.g. race, voltage or current testing of threshold voltage
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- 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/1048—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 using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
-
- 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
- G11C2029/0411—Online error correction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
본 발명은 비휘발성 메모리 장치 및 그것의 데이터 처리 방법에 관한 것이다. 본 발명에 의한 데이터 처리 방법은 비휘발성 메모리로부터 독출된 데이터의 처리 방법에 있어서, 상기 비휘발성 메모리로부터 메모리 컨트롤러로 이레이져인 셀의 위치 정보를 나타내는 제 1 비트 데이터를 제공하는 단계 및 상기 제 1 비트 데이터 및 상기 메모리 컨트롤러에 저장된 제 2 비트 데이터를 기초로 이레이져 디코딩을 수행하는 단계를 포함하며, 상기 제 2 비트 데이터는 에러 정정 디코딩 시 읽기 전압에 대응하여 독출된 독출 데이터이다. 본 발명의 비휘발성 메모리 장치 및 그것의 데이터 처리 방법은 단축된 에러 정정 시간을 가진다.
Description
본 발명은 비휘발성 메모리 장치 및 그것의 데이터 처리 방법에 관한 것이다.
반도체 메모리 장치에 대한 고집적 요구가 증가함에 따라, 하나의 메모리 셀에 멀티 비트를 저장하는 멀티-비트 메모리 장치가 보편화되고 있다. 멀티-비트 플래시 메모리 장치의 메모리 셀들은 문턱 전압 분포들 간의 간격이 조밀하게 제어되어야 한다. 그러나 시간의 경과 및 메모리 장치의 반복되는 사용에 따라 메모리 셀들의 문턱 전압은 시프트(Shift)된다. 따라서 메모리 셀들의 문턱 전압 분포들은 전하 손실 및 전하 획득으로 인해서 점차적으로 넓어진다. 이러한 문턱 전압 분포들의 확산에 따라 독출 데이터에 포함되는 에러가 증가된다. 반도체 메모리 장치의 신뢰성을 증가시키기 위하여 독출 데이터에 대한 다양한 에러 정정 디코딩이 수행된다. 그러나 에러 셀들의 에러 비트 수가 에러 정정 능력을 초과하면 디코딩 페일(Deconding fail)이 발생된다. 디코딩 페일이 발생되면 이레이져 디코딩을 통한 에러 비트 정정이 시도될 수 있다. 이레이져 디코딩이 수행되기 위해서는 비휘발성 메모리로부터 반복된 데이터의 독출이 요구된다.
본 발명은 단축된 에러 정정 시간을 가지는 비휘발성 메모리 장치 및 그것의 데이터 처리 방법을 제공하는 것에 그 목적이 있다.
본 발명에 의한 데이터 처리 방법은 비휘발성 메모리로부터 독출된 데이터의 처리 방법에 있어서, 상기 비휘발성 메모리로부터 메모리 컨트롤러로 이레이져인 셀의 위치 정보를 나타내는 제 1 비트 데이터를 제공하는 단계 및 상기 제 1 비트 데이터 및 상기 메모리 컨트롤러에 저장된 제 2 비트 데이터를 기초로 이레이져 디코딩을 수행하는 단계를 포함하며, 상기 제 2 비트 데이터는 에러 정정 디코딩 시 읽기 전압에 대응하여 독출된 독출 데이터이다.
실시예에 있어서, 상기 제 1 비트 데이터는 이레이져인 셀의 위치를 나타내는 비트 및 이레이져가 아닌 셀의 위치를 나타내는 비트를 포함하며, 상기 이레이져인 셀의 위치를 나타내는 비트 및 상기 이레이져가 아닌 셀의 위치를 나타내는 비트는 서로 다른 논리값을 가진다.
실시예에 있어서, 상기 제 1 비트 데이터는 상기 이레이져인 셀의 위치를 나타내는 비트는 '0'의 값을, 상기 이레이져가 아닌 셀의 위치를 나타내는 비트는 '1'의 값을 가진다.
실시예에 있어서, 상기 이레이져 디코딩을 수행하는 단계는 상기 제 1 비트 데이터 및 상기 메모리 컨트롤러에 저장된 상기 제 2 비트 데이터를 기초로 이레이져 정의 데이터를 생성하는 단계 및 판정 알고리즘을 통해 상기 이레이져 정의 데이터에 대하여 에러를 정정하는 단계를 포함한다.
실시예에 있어서, 상기 이레이져 정의 데이터에 대하여 에러를 정정하는 단계는 상기 이레이져 정의 데이터의 이레이져 비트를 모두 같은 논리 값으로 변환하는 단계 및 상기 변환된 이레이져 정의 데이터에 대해 에러 정정을 수행하는 단계를 포함한다.
실시예에 있어서, 상기 판정 알고리즘을 통해 상기 이레이져 정의 데이터에 대하여 에러를 정정하는 단계는 상기 이레이져 정의 데이터의 각 비트에 로그-가능도비에 따른 가중치를 주는 단계 및 상기 가중된 이레이져 정의 데이터에 대해 에러 정정을 수행하는 단계를 포함한다.
본 발명에 의한 데이터 처리 방법은 비휘발성 메모리로부터 독출된 데이터의 처리 방법에 있어서, 에러 정정 디코딩 시 읽기 전압이 이레이져 문턱 전압의 범위에 속하는지 판단하는 단계, 상기 읽기 전압이 상기 이레이져 문턱 전압의 범위에 속하면 상기 비휘발성 메모리로부터 메모리 컨트롤러로 이레이져인 셀의 위치 정보를 나타내는 제 1 비트 데이터가 제공되는 단계 및 상기 제 1 비트 데이터 및 상기 메모리 컨트롤러에 저장된 제 2 비트 데이터를 기초로 이레이져 디코딩을 수행하는 단계를 포함하며, 상기 제 2 비트 데이터는 상기 에러 정정 디코딩 시 읽기 전압에 대응하여 독출된 독출 데이터이다.
실시예에 있어서, 상기 읽기 전압이 상기 이레이져 문턱 전압의 범위에 속하지 않으면 비휘발성 메모리로부터 메모리 컨트롤러로 제 1 이레이져 데이터 및 제 2 이레이져 데이터가 제공되는 단계 및 상기 제 1 이레이져 데이터 및 상기 제 2 이레이져 데이터를 기초로 이레이져 디코딩을 수행하는 단계를 더 포함하며, 상기 제 1 이레이져 데이터는 상기 문턱 전압 범위의 상한 전압에 대응하여 독출된 독출 데이터이고, 상기 제 2 이레이져 데이터는 상기 문턱 전압 범위의 하한 전압에 대응하여 독출된 데이터이다.
실시예에 있어서, 상기 읽기 전압이 상기 이레이져 문턱 전압 범위의 상한 전압과 기준치 내의 차이를 가지면 상기 이레이져 위치 데이터는 상기 이레이져 문턱 전압의 하한 전압에 대한 독출 데이터이다.
실시예에 있어서, 상기 읽기 전압이 상기 이레이져 문턱 전압 범위의 하한 전압과 기준치 내의 차이를 가지면 상기 이레이져 위치 데이터는 상기 이레이져 문턱 전압의 상한 전압에 대한 독출 데이터이다.
본 발명에 의한 비휘발성 메모리 장치는 데이터를 저장하는 비휘발성 메모리 및 상기 비휘발성 메모리로부터 데이터를 독출하는 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는 상기 비휘발성 메모리로부터 이레이져인 셀의 위치 정보를 나타내는 제 1 비트 데이터를 제공받고, 상기 이레이져 위치 데이터 및 미리 저장된 제 2 비트 데이터를 기초로 이레이져 정의 데이터를 생성하는 이레이져 정의부 및 상기 이레이져 정의 데이터를 기초로 이레이져 디코딩을 수행하는 판정 디코더를 포함하며, 상기 제 2 비트 데이터는 에러 정정 디코딩 시 읽기 전압에 대응하여 독출된 독출 데이터이다.
실시예에 있어서, 상기 판정 디코더는 상기 이레이져 정의 데이터의 각 비트에 로그-가능도비에 따른 가중치를 주어 이레이져 디코딩을 수행한다.
실시예에 있어서, 상기 판정 디코더는 상기 이레이져 정의 데이터의 이레이져 비트를 모두 같은 논리 값으로 변환하여 이레이져 디코딩을 수행한다.
실시예에 있어서, 상기 제 1 비트 데이터는 이레이져인 셀의 위치를 나타내는 비트 및 이레이져가 아닌 셀의 위치를 나타내는 비트를 포함하며, 상기 이레이져인 셀의 위치를 나타내는 비트 및 상기 이레이져가 아닌 셀의 위치를 나타내는 비트는 서로 다른 논리값을 가진다.
실시예에 있어서, 상기 메모리 컨트롤러는 상기 에러 정정 디코딩 시 읽기 전압과 이레이져 문턱 전압 범위의 비교 결과에 대응하여 상기 비휘발성 메모리로부터 상기 제 1 비트 데이터를 제공받는다.
본 발명의 비휘발성 메모리 장치 및 그것의 데이터 처리 방법은 단축된 에러 정정 시간을 가진다.
도 1은 본 발명의 메모리 장치를 도시하는 블록도이다.
도 2는 도 1의 메모리 컨트롤러의 일실시예를 도시하는 블록도이다.
도 3은 본 발명에 의한 이레이져 위치 데이터 독출 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 실시예에 의한 이레이져 디코딩을 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 의한 데이터 처리 방법을 도시하는 순서도이다.
도 6은 본 발명의 다른 실시예에 의한 데이터 처리 방법을 도시하는 순서도이다.
도 7은 본 발명의 실시 예에 따른 메모리 장치를 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다.
도 8은 본 발명의 실시 예에 따른 메모리 장치를 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다.
도 9는 도 8에 도시된 SSD 컨트롤러의 구성을 예시적으로 보여주는 블록도이다.
도 10은 본 발명의 실시 예에 따른 메모리 장치를 전자 장치로 구현한 예를 보여주는 블록도이다.
도 2는 도 1의 메모리 컨트롤러의 일실시예를 도시하는 블록도이다.
도 3은 본 발명에 의한 이레이져 위치 데이터 독출 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 실시예에 의한 이레이져 디코딩을 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 의한 데이터 처리 방법을 도시하는 순서도이다.
도 6은 본 발명의 다른 실시예에 의한 데이터 처리 방법을 도시하는 순서도이다.
도 7은 본 발명의 실시 예에 따른 메모리 장치를 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다.
도 8은 본 발명의 실시 예에 따른 메모리 장치를 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다.
도 9는 도 8에 도시된 SSD 컨트롤러의 구성을 예시적으로 보여주는 블록도이다.
도 10은 본 발명의 실시 예에 따른 메모리 장치를 전자 장치로 구현한 예를 보여주는 블록도이다.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시예가 첨부된 도면을 참조하여 설명한다. 또한 이하에서 사용되는 용어들은 오직 본 발명을 설명하기 위하여 사용된 것이며 본 발명의 범위를 한정하기 위해 사용된 것은 아니다. 앞의 일반적인 설명 및 다음의 상세한 설명은 모두 예시적인 것으로 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다.
본 발명에서는 2개의 상태를 가지는 싱글 비트 메모리 셀에 관하여 설명되나, 본 발명의 기술적 사상이 이에 한정되지 않음은 충분히 이해될 것이다. 본 발명의 이레이져 디코딩 방법은 복수의 상태를 가지는 멀티 비트 메모리 셀에 관하여도 적용될 수 있다.
본 발명에서 용어 "이레이져(Erasure)"는 논리 '0'과 논리 '1' 중 어느 하나로 결정하기 어려운 비트를 지시하기 위한 의미로 사용되었다. 즉, 본 발명에서 사용되는 이레이져(Erasure)는 데이터 처리 과정에서 논리 '0'과 논리 '1'이 아닌 또 다른 논리 상태를 의미한다.
도 1은 본 발명의 메모리 장치(100)를 도시하는 블록도이다. 도 1을 참조하면, 메모리 장치(100)는 비휘발성 메모리(110) 및 메모리 컨트롤러(120)를 포함한다.
비휘발성 메모리(110)는, 예를 들어, 플래시 메모리로 구성될 수 있다. 혹은 비휘발성 메모리(110)는 PRAM(Phase Change Random Access Memory)이나 RRAM(Resistance Random Access Memory)과 같은 저항성 메모리(Resistive Memory)로 구성될 수 있다. 또는 비휘발성 메모리(110)는 NFGM(Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), MRAM(Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 등의 기억 소자들 중 어느 하나를 사용하는 메모리 장치로 구성될 수 있다.
비휘발성 메모리(110)에는 메모리 컨트롤러(120)로부터 제공된 데이터가 저장된다. 예를 들어 비휘발성 메모리(110)에 저장되는 데이터는 페이지 단위로 저장될 수 있다.
메모리 컨트롤러(120)는 비휘발성 메모리(110)에 저장된 데이터를 페이지 단위로 독출한다. 메모리 컨트롤러(120)는 독출된 데이터에 포함된 에러를 에러 정정 코드(Error correction code)를 이용하여 에러 정정 디코딩한다. 메모리 컨트롤러(120)는 비휘발성 메모리(110)로부터 독출된 데이터에 정정할 수 없는 에러가 존재하는 경우, 독출된 데이터에 대한 이레이져 디코딩(Erasure Decoding)을 선택적으로 수행할 수 있다. 메모리 컨트롤러(120)는 에러 정정 디코딩 혹은 이레이져 디코딩을 통해 에러가 제거된 데이터(Error corrected data)를 호스트로 전송한다.
이상의 도 1을 통하여 설명된 본 발명의 실시예에 의한 메모리 장치(100)은 기존의 에러 정정 디코딩에 의하여 정정할 수 없는 에러가 존재하는 경우에도 비휘발성 메모리(110)로부터 입력된 이레이져 위치 데이터(Erasure Location Data)를 이용하여 이레이져 디코딩을 통해 에러를 정정할 수 있다.
도 2는 도 1의 메모리 컨트롤러의 일실시예를 도시하는 블록도이다. 도 2를 참조하면, 메모리 컨트롤러(120)는 이레이져 정의부(121) 및 판정 디코더(122)를 포함한다. 도 2의 메모리 컨트롤러(120)는 비휘발성 메모리(도 1 참조, 110)로부터 하나의 데이터 스트림, 즉 이레이져 위치 데이터(Erasure Location Data)) 만 입력받아 이레이져 디코딩을 수행할 수 있다. 따라서 이레이져 디코딩 과정에서 요구되는 독출 시간이 단축될 수 있다.
메모리 컨트롤러(120)는 비휘발성 메모리(110)에 저장된 데이터를 독출한다. 메모리 컨트롤러(120)는 독출된 데이터에 대하여 에러 정정 디코딩을 수행한다. 메모리 컨트롤러(120)는 비휘발성 메모리(110)로부터 독출된 데이터에 정정할 수 없는 에러가 존재하는 경우, 독출된 데이터를 보존하고 이레이져 디코딩을 수행한다.
이레이져 정의부(121)는 비휘발성 메모리(110)로부터 이레이져 위치 데이터를 입력받는다. 또한 이레이져 정의부(121)는 메모리 컨트롤러(120)에 보존된 기존 독출 데이터(Pre-read Data)를 입력받는다. 기존 독출 데이터는 이레이져 디코딩이 수행되기 전 선행된 에러 정정 디코딩 과정에서 읽기 전압(Vpre)으로 독출되었던 데이터이다. 이레이져 정의부(121)는 이레이져 위치 데이터 및 기존 독출 데이터를 기초로 이레이져 정의 데이터(Erasure Defined Data)를 생성한다.
판정 디코더(122)는 이레이져 정의부(121)로부터 제공된 이레이져 정의 데이터에 대한 이레이져 디코딩을 수행한다. 판정 디코더(122)는 디코딩되어 에러가 제거된 데이터를 출력한다. 이하 도 3을 참조하여 비휘발성 메모리(110)의 이레이져 위치 데이터 독출 과정을 더 자세히 설명한다.
도 3은 본 발명에 의한 이레이져 위치 데이터 독출 방법을 설명하기 위한 도면이다. 도 3을 참조하면, 메모리 셀의 문턱 전압은 시간의 경과 또는 프로그램/이레이져 사이클(P/E Cycle)의 반복에 의하여 확산된다. 즉, 메모리 셀의 문턱 전압은 최초 프로그램된 상태로부터 전하 손실(Charge loss), 프로그램 디스터브(Program Disturb), 읽기 디스터브(Read Disturb) 및 커플링(Coupling) 등의 영향에 따라 읽기 마진이 감소한다. 문턱 전압이 확산됨에 따라 문턱 전압 분포의 각 상태(state)는 중첩(Overlap) 영역을 가질 수 있다.
중첩 영역이 존재하면 읽기 전압(Vpre) 인가 시에 에러가 발생될 수 있다. 예를 들어, 원래 논리 '0'으로 프로그램되었으나 읽기 전압(Vpre)으로 센싱하였을 때 논리 '1'로 읽혀지는 에러 셀들이 존재할 수 있다. 또한 원래 논리 '1'로 프로그램되었으나 읽기 전압(Vpre)으로 센싱하였을 때 논리 '0'으로 읽혀지는 에러 셀들이 존재할 수 있다.
메모리 컨트롤러(120)는 독출된 데이터에 대하여 에러 정정 디코딩을 시도한다. 그러나 이러한 에러 셀들의 에러 비트 수가 에러 정정 디코딩의 에러 정정 능력을 초과하면 디코딩 페일(Deconding fail)이 발생된다. 메모리 컨트롤러(120)는 디코딩 페일이 발생되면 이레이져 디코딩을 통한 에러 비트 정정을 시도한다.
이레이져 디코딩을 위해서는 비휘발성 메모리(110)로부터 이레이져의 정보가 제공되어야 한다. 위에서 설명된 바와 같이 이레이져는 데이터 처리 과정에서 논리 '0'과 논리 '1'이 아닌 그 사이의 또 다른 논리 상태를 의미한다.
본 발명에서 독출 데이터에 대한 이레이져의 위치 검출 방법은 한정되지 않는다. 이레이져는 읽기 조건을 달리하는 복수의 읽기 동작을 통해서 플립 비트 조합(Flip bit combination)이 발생하는 컬럼의 위치로 지정될 수 있다. 또는, 플립 비트 조합에서 다수 비트 결정(Majorith decision)이 곤란한 컬럼의 위치로 지정될 수 있다.
본 실시예에서는 독출 데이터에 대한 이레이져의 위치 검출 방법으로서 인터벌 리드(interval read)를 사용한다. 인터벌 리드는 기존 읽기 전압(Vpre)으로부터 가변된 읽기 전압들(Ve1, Ve2)들로 선택된 페이지를 최소한 2회 이상 독출하는 방법이다. 그러나 이는 예시적인 것으로 본 발명이 이에 한정되는 것은 아니다.
본 실시예에서, 이레이져의 위치를 검출하기 위해 먼저 제 1 이레이져 읽기 전압(Ve1)으로 메모리 셀들이 센싱된다. 또, 제 2 이레이져 읽기 전압(Ve2)으로 메모리 셀들이 센싱된다. 제 1 이레이져 읽기 전압으로 센싱된 논리값과 제 2 이레이져 읽기 전압으로 센싱된 논리값이 서로 다른 셀의 논리값이 이레이져로 정의된다.
제 1 이레이져 읽기 전압(Ve1) 및 제 2 이레이져 읽기 전압(Ve2)으로 센싱된 페이지 데이터들로부터 이레이져 위치 데이터(Erasure Location Data)가 생성된다. 이레이져 위치 데이터는 비휘발성 메모리(110)로부터 독출된 데이터에 대한 이레이져의 위치를 나타내는 데이터이다. 예를 들어, 이레이져 위치 데이터는 이레이져 비트는 0으로, 나머지 비트는 모두 1로 표시한 데이터일 수 있다. 혹은 이레이져 위치 데이터는 이레이져 비트는 1로, 나머지 비트는 모두 0으로 표시한 데이터일 수 있다. 그러나 이는 예시적인 것이며 본 발명은 이에 한정되지 않는다.
도 2를 다시 참조하면, 이레이져 정의부(121)는 비휘발성 메모리(110)로부터 이레이져 위치 데이터를 입력받는다. 또한 이레이져 정의부(121)는 메모리 컨트롤러(120)에 보존된 기존 독출 데이터(Pre-read Data)를 입력받는다. 기존 독출 데이터는 이레이져 디코딩이 수행되기 전 선행된 에러 정정 과정에서 읽기 전압(Vpre)으로 독출되었던 데이터이다.
이레이져 정의부(121)는 이레이져 위치 데이터 및 기존 독출 데이터를 기초로 이레이져 정의 데이터(Erasure Defined Data)를 생성한다. 이레이져 정의 데이터는 데이터 값으로서 3개의 논리값, 즉 논리값 1, 논리값 0 및 제 3의 논리값(즉, 이레이져)을 가지는 데이터이다. 이레이져 정의 데이터에서 제 3의 논리값을 가지는 비트를 이레이져 비트로 정의한다.
이레이져 정의 데이터의 논리값 1을 가지는 비트는 기존 독출 데이터의 논리값 1을 가지는 비트들 중 이레이져가 아닌 진실-1(true-1)으로 판정된 비트이다. 즉, 본 실시예에서 이레이져 정의 데이터의 논리값 1을 가지는 비트는 제 1 이레이져 읽기 전압(Ve1)으로 센싱했을 때 논리값 1로 판정된 비트이다.
이레이져 정의 데이터의 논리값 0을 가지는 비트는 기존 독출 데이터의 논리값 0을 가지는 비트들 중 이레이져가 아닌 진실-0(true-0)으로 판정된 비트이다. 즉, 이레이져 정의 데이터의 논리값 0을 가지는 비트는 제 2 이레이져 읽기 전압(Ve2)으로 센싱했을 때 논리값 0으로 판정된 비트이다.
판정 디코더(122)는 이레이져 정의 데이터에 대한 이레이져 디코딩을 수행한다. 판정 디코더(122)의 판정 알고리즘이 경판정 알고리즘인 경우, 판정 디코더(122)는 이레이져를 모두 0 또는 모두 1로 간주하고 디코딩을 수행한다. 판정 디코더(122)의 판정 알고리즘이 연판정 알고리즘인 경우, 판정 디코더(122)는 각 구간에 대한 로그-가능도비(LLR: Log-Likelihood Ratio)에 따라 각 비트에 가중치를 주어 디코딩을 수행한다. 판정 디코더(122)는 디코딩되어 에러가 제거된 데이터를 출력한다.
이상의 도 2를 통하여 설명된 본 발명의 실시예에 의한 메모리 컨트롤러(120)는 비휘발성 메모리(110)로부터 입력된 이레이져 위치 데이터 및 메모리 컨트롤러(120)에 저장되어 있던 기존 독출 데이터를 이용하여 기존의 에러 정정 디코딩에 의하여 정정할 수 없는 에러가 존재하는 경우에도 이레이져 디코딩을 통해 에러를 정정할 수 있다. 도 2의 메모리 컨트롤러(120)는 기존 독출 데이터를 이용하는 것으로서 비휘발성 메모리(110)로부터 하나의 데이터 스트림, 즉 이레이져 위치 데이터, 만 입력받아 이레이져 디코딩을 수행할 수 있으므로 이레이져 디코딩 과정에서 요구되는 독출 시간이 단축될 수 있다.
도 4는 본 발명의 실시예에 의한 이레이져 디코딩을 설명하기 위한 도면이다. 도 4를 참조하면, 비휘발성 메모리로부터 이레이져 위치 데이터(Erasure Location Data)가 입력된다. 이레이져 위치 데이터는 비휘발성 메모리로부터 독출된 데이터에서 이레이져 논리값을 가지는 비트의 위치를 나타내는 데이터이다.
본 실시예에서 이레이져 위치 데이터는 이레이져 논리값을 가지는 비트에 대응되는 비트는 0, 이외의 논리값을 가지는 비트에 대응되는 비트는 1의 값을 가지는 데이터이다. 도 4에서 이레이져 논리값을 가지는 비트에 대응되는 비트는 어둡게 표시되었다. 그러나 이는 예시적인 것으로 본 발명이 이에 한정되는 것은 아니다.
메모리 컨트롤러(도 2 참조, 120)는 이레이져 디코딩 전 수행된 에러 정정 디코딩 과정에서 독출되었던 기존 독출 데이터(Pre-read Data)를 저장하고 있다. 메모리 컨트롤러는 기존 독출 데이터에서 이레이져 위치 데이터를 통해 이레이져라고 판명된 비트들을 이레이져 비트로 정의하여 이레이져 정의 데이터(Erasure Defined Data)를 생성한다.
메모리 컨트롤러(120)는 이레이져 정의 데이터를 기초로 판정 알고리즘을 통해 이레이져 디코딩을 수행한다. 예를 들어, 판정 알고리즘이 경판정 알고리즘인 경우, 판정 디코더는 이레이져 비트를 모두 0 또는 모두 1로 간주하고 디코딩을 수행한다. 도 4에 도시된 실시예는 all-0 경판정 알고리즘에 의한 이레이져 디코딩을 도시한다. 즉, 이레이져 비트를 모두 0인 것으로 간주하고 이레이져 해독 코드워드(Erasure decoded codeword)를 생성하여 에러 정정 알고리즘에 의한 에러 정정을 시도한다. 그러나 이는 예시적인 것으로 본 발명이 이에 한정되는 것은 아니다.
이상의 도 4를 통하여 설명된 본 발명의 실시예에 의한 이레이져 디코딩 방법에 의하면 메모리 컨트롤러(120)는 비휘발성 메모리(도 1 참조, 110)로부터 이레이져 위치 데이터만 입력받고, 메모리 컨트롤러(120)에 저장된 기존 독출 데이터를 함께 이용하여 이레이져 정의 데이터를 생성한다.
이레이져 정의 데이터는 3개의 논리값을 가지므로 이레이져 정의 데이터를 생성하기 위해서는 2개의 데이터 스트림이 요구된다. 예를 들어 이레이져 정의 데이터는 제 1 이레이져 읽기 전압(Ve1)으로 센싱한 데이터 스트림과 제 2 이레이져 읽기 전압(Ve2)으로 센싱한 데이터 스트림을 통해 생성될 수 있다. 그러나 메모리 컨트롤러가 각 페이지의 이레이져 정의 데이터를 생성하기 위하여 비휘발성 메모리로부터 2개의 데이터 스트림을 매회 입력받는 것에 따라 이레이져 디코딩 과정에서 긴 독출 시간이 소모될 수 있다.
이에 대응하여 본 발명의 실시예에 의한 이레이져 디코딩 방법은 메모리 컨트롤러로부터 하나의 데이터 스트림, 즉 이레이져 위치 데이터만 입력받고 메모리 컨트롤러에 저장된 기존 독출 데이터를 이용하는 것으로서 이레이져 디코딩 과정의 독출 시간이 단축될 수 있다.
도 5는 본 발명의 실시예에 의한 데이터 처리 방법을 도시하는 순서도이다. 도 5를 참조하면, 독출 데이터에 대한 에러 정정 디코딩이 실패한 경우 메모리 컨트롤러는 이레이져 디코딩을 시도한다.
S100 단계에서, 비휘발성 메모리로부터 이레이져 위치 데이터가 입력된다. 이레이져 위치 데이터는 위에서 설명된 바와 같이 독출 데이터에 대한 이레이져의 위치를 나타내는 데이터이다.
S110 단계에서, S100 단계에서 입력된 이레이져 위치 데이터와 저장되어 있던 기존 독출 데이터를 기초로 이레이져 디코딩이 수행된다. 이레이져 디코딩의 결과에 의하여 이레이져 정의 데이터가 생성된다.
S120 단계에서, S110단계에서 생성된 이레이져 정의 데이터를 기초로 에러 정정알고리즘에 의한 에러 정정이 시도된다. 에러 정정은 다양한 판정 알고리즘에 의하여 수행될 수 있다. 예를 들어, 에러 정정은 경판정 알고리즘 혹은 연판정 알고리즘에 의하여 수행될 수 있다.
본 발명의 실시예에 의한 도 5의 데이터 처리 방법은 이레이져 디코딩 시 메모리 컨트롤러로부터 하나의 데이터 스트림, 즉 이레이져 위치 데이터만 입력받고 메모리 컨트롤러에 저장된 기존 독출 데이터를 이용하는 것으로서 이레이져 디코딩 과정의 독출 시간이 단축된다.
도 6은 본 발명의 다른 실시예에 의한 데이터 처리 방법을 도시하는 순서도이다.
S200 단계에서, 독출 데이터에 대한 에러 정정 디코딩이 실패한 경우 메모리 컨트롤러는 이레이져 디코딩을 시도한다. 메모리 컨트롤러는 이레이져 디코딩을 수행하기에 앞서 이레이져로 판정될 문턱 전압의 범위를 지정할 수 있다.
S210 단계에서, 메모리 컨트롤러는 지정된 이레이져의 제 1 이레이져 읽기 전압(Ve1)과 제 2 이레이져 읽기 전압(Ve2) 사이에 기존 독출 데이터를 센싱한 기존 읽기 전압(Vpre)이 존재하는지 판정한다. 제 1 이레이져 읽기 전압(Ve1)은 이레이져로 판정될 문턱 전압범위의 하한 문턱 전압이다. 제 2 이레이져 읽기 전압(Ve2)은 이레이져로 판정될 문턱 전압범위의 상한 문턱 전압이다.
S215 단계에서, 기존 읽기 전압이 이레이져로 판정될 문턱 전압의 범위 밖에 있으면 메모리 컨트롤러는 기존의 이레이져 디코딩, 즉 2개 이상의 데이터 스트림을 비휘발성 메모리로부터 입력받는 이레이져 디코딩을 수행한다. 이레이져 디코딩의 결과로 이레이져 정의 데이터가 생성된다.
S220 단계에서, 기존 읽기 전압이 이레이져로 판정될 문턱 전압의 범위 내에 있으면 메모리 컨트롤러는 제안된 이레이져 디코딩, 즉 이레이져 위치 데이터만 비휘발성 메모리로부터 입력받는 이레이져 디코딩을 수행한다. 이레이져 디코딩의 결과로 이레이져 정의 데이터가 생성된다.
S230 단계에서, 메모리 컨트롤러는 S220 단계 혹은 S215 단계에서 생성된 이레이져 정의 데이터를 기초로 에러 정정을 시도한다.
본 발명의 실시예에 의한 도 6의 데이터 처리 방법은 기존 읽기 전압이 이레이져로 판정될 문턱 전압의 범위 내에 있는지 여부에 따라 이레이져 디코딩 방법을 선택적으로 수행한다. 따라서 이레이져 디코딩의 정확도 및 독출 시간이 향상된다.
이상의 실시예에서 비휘발성 메모리는 기존 독출 데이터와 조합하기 위한 데이터로서 이레이져 위치 데이터를 메모리 컨트롤러에 제공하였다. 기존 독출 데이터의 기존 읽기 전압에 따라 비휘발성 메모리가 제공하는 이레이져 위치 데이터는 달라질 수 있다. 예를 들어, 기존 읽기 전압이 이레이져의 상한 문턱 전압(Ve2)에 일정 기준치 내로 근접할 경우 비휘발성 메모리는 이레이져의 하한 문턱 전압(Ve1)으로 센싱된 독출 데이터를 이레이져 위치 데이터로서 메모리 컨트롤러에 제공할 수 있다. 혹은 기존 읽기 전압이 이레이져의 하한 문턱 전압(Ve1)에 일정 기준치 내로 근접할 경우 비휘발성 메모리는 이레이져의 상한 문턱 전압(Ve2)으로 센싱된 독출 데이터를 이레이져 위치 데이터로서 메모리 컨트롤러에 제공할 수 있다.
도 7은 본 발명의 실시 예에 따른 메모리 장치을 메모리 카드 시스템에 적용한 예를 보여주는 블록도이다. 메모리 카드 시스템(1000)은 호스트(1100)와 메모리 카드(1200)를 포함한다. 호스트(1100)는 호스트 컨트롤러(1110), 호스트 접속 유닛(1120), 그리고 디램(1130)을 포함한다.
호스트(1100)는 메모리 카드(1200)에 데이터를 쓰거나, 메모리 카드(1200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(1110)는 커맨드(예를 들면, 쓰기 커맨드), 호스트(1100) 내의 클록 발생기(도시되지 않음)에서 발생한 클록 신호(CLK), 그리고 데이터(DAT)를 호스트 접속 유닛(1120)을 통해 메모리 카드(1200)로 전송한다. 디램(1130)은 호스트(1100)의 메인 메모리이다.
메모리 카드(1200)는 카드 접속 유닛(1210), 카드 컨트롤러(1220), 그리고 플래시 메모리(1230)를 포함한다. 카드 컨트롤러(1220)는 카드 접속 유닛(1210)을 통해 수신된 커맨드에 응답하여, 카드 컨트롤러(1220) 내에 있는 클록 발생기(도시되지 않음)에서 발생한 클록 신호에 동기하여 데이터를 플래시 메모리(1230)에 저장한다. 플래시 메모리(1230)는 호스트(1100)로부터 전송된 데이터를 저장한다. 예를 들어, 호스트(1100)가 디지털 카메라인 경우에는 영상 데이터를 저장한다.
도 7에 도시된 메모리 카드 시스템(1000)은 플래시 메모리(1230)에 저장된 데이터를 독출하는 과정에서 하나의 데이터 스트림만 플래시 메모리(1230)로부터 카드 컨트롤러(1220)로 전송하여 이레이져 디코딩을 수행할 수 있다. 따라서 이레이져 디코딩에 소모되는 독출 시간이 단축된다.
도 8은 본 발명의 실시 예에 따른 메모리 장치을 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다. 도 8을 참조하면, SSD 시스템(2000)은 호스트(2100)와 SSD(2200)를 포함한다. 호스트(2100)는 호스트 인터페이스(2111), 호스트 컨트롤러(2120), 그리고 디램(2130)을 포함한다.
호스트(2100)는 SSD(2200)에 데이터를 쓰거나, SSD(2200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(2120)는 커맨드, 어드레스, 제어 신호 등의 신호(SGL)를 호스트 인터페이스(2111)를 통해 SSD(2200)로 전송한다. 디램(2130)은 호스트(2100)의 메인 메모리이다.
SSD(2200)는 호스트 인터페이스(2211)를 통해 호스트(2100)와 신호(SGL)를 주고 받으며, 전원 커넥터(power connector, 2221)를 통해 전원을 입력받는다. SSD(2200)는 복수의 불휘발성 메모리(2201~220n), SSD 컨트롤러(2210), 그리고 보조 전원 장치(2220)를 포함할 수 있다. 여기에서, 복수의 불휘발성 메모리(2201~220n)는 낸드 플래시 메모리 이외에도 PRAM, MRAM, ReRAM, FRAM 등으로 구현될 수 있다.
복수의 불휘발성 메모리(2201~220n)는 SSD(2200)의 저장 매체로서 사용된다. 복수의 불휘발성 메모리(2201~220n)는 복수의 채널(CH1~CHn)을 통해 SSD 컨트롤러(2210)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 불휘발성 메모리가 연결될 수 있다. 하나의 채널에 연결되는 불휘발성 메모리는 동일한 데이터 버스에 연결될 수 있다.
SSD 컨트롤러(2210)는 호스트 인터페이스(2211)를 통해 호스트(2100)와 신호(SGL)를 주고 받는다. 여기에서, 신호(SGL)에는 커맨드, 어드레스, 데이터 등이 포함될 수 있다. SSD 컨트롤러(2210)는 호스트(2100)의 커맨드에 따라 해당 불휘발성 메모리에 데이터를 쓰거나 해당 불휘발성 메모리로부터 데이터를 읽어낸다. SSD 컨트롤러(2210)의 내부 구성은 도 9를 참조하여 상세하게 설명된다.
보조 전원 장치(2220)는 전원 커넥터(2221)를 통해 호스트(2100)와 연결된다. 보조 전원 장치(2220)는 호스트(2100)로부터 전원(PWR)을 입력받고, 충전할 수 있다. 한편, 보조 전원 장치(2220)는 SSD(2200) 내에 위치할 수도 있고, SSD(2200) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(2220)는 메인 보드에 위치하며, SSD(2200)에 보조 전원을 제공할 수도 있다.
도 9는 도 8에 도시된 SSD 컨트롤러(2210)의 구성을 예시적으로 보여주는 블록도이다. 도 9를 참조하면, SSD 컨트롤러(2210)는 NVM 인터페이스(2211), 호스트 인터페이스(2212), 제어 유닛(2213), 에스램(2214), 백업 비휘발성 메모리(2215)를 포함한다.
NVM 인터페이스(2211)는 호스트(2100)의 메인 메모리로부터 전달된 데이터를 각각의 채널들(CH1~CHn)로 스캐터링(Scattering)한다. 그리고 NVM 인터페이스(2211)는 불휘발성 메모리(2201~220n)로부터 읽은 데이터를 호스트 인터페이스(2212)를 경유하여 호스트(2100)로 전달한다.
호스트 인터페이스(2212)는 호스트(2100)의 프로토콜에 대응하여 SSD(2200)와의 인터페이싱을 제공한다. 호스트 인터페이스(2212)는 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등을 이용하여 호스트(2100)와 통신할 수 있다. 또한, 호스트 인터페이스(2212)는 호스트(2100)가 SSD(2200)를 하드 디스크 드라이브(HDD)로 인식하도록 지원하는 디스크 에뮬레이션(Disk Emulation) 기능을 수행할 수 있다.
제어 유닛(2213)은 호스트(2100)로부터 입력된 신호(SGL)를 분석하고 처리한다. 제어 유닛(2213)은 호스트 인터페이스(2212)나 NVM 인터페이스(2211)를 통해 호스트(2100)나 불휘발성 메모리(2201~220n)를 제어한다. 제어 유닛(2213)은 SSD(2200)을 구동하기 위한 펌웨어에 따라서 불휘발성 메모리(2201~220n)의 동작을 제어한다.
에스램(2214)은 불휘발성 메모리(2201~220n)의 효율적 관리를 위해 사용되는 소프트웨어(S/W)를 구동하는 데 사용될 수 있다. 또한, 에스램(2214)은 호스트(2100)의 메인 메모리로부터 입력받은 메타 데이터를 저장하거나, 캐시 데이터를 저장할 수 있다. 서든 파워 오프 동작 시에, 에스램(2214)에 저장된 메타 데이터나 캐시 데이터는 보조 전원 장치(2220)를 이용하여 불휘발성 메모리(2201~220n)에 저장될 수 있다.
다시 도 8을 참조하면, 본 실시예의 SSD 시스템(2000)은 불휘발성 메모리(2201~220n)에 저장된 데이터를 독출하는 과정에서 하나의 데이터 스트림만 불휘발성 메모리(2201~220n)로부터 SSD 컨트롤러(2210)로 전송하여 이레이져 디코딩을 수행할 수 있다. 따라서 이레이져 디코딩에 소모되는 독출 시간이 단축된다.
도 8 및 도 9에서 SRAM(2214)은 불휘발성 메모리로 대체될 수도 있다. 즉, 본 발명의 다른 실시 예에 따른 SSD 시스템(2000)은 SRAM(2214)의 역할을 플래시 메모리, PRAM, RRAM, MRAM 등의 불휘발성 메모리가 수행하도록 구현될 수도 있다.
도 10은 본 발명의 실시 예에 따른 메모리 장치을 전자 장치로 구현한 예를 보여주는 블록도이다. 여기에서, 전자 장치(3000)는 퍼스널 컴퓨터(PC)로 구현되거나, 노트북 컴퓨터, 휴대폰, PDA(Personal Digital Assistant), 그리고 카메라 등과 같은 휴대용 전자 장치로 구현될 수 있다.
도 10을 참조하면, 전자 장치(3000)는 메모리 장치(3100), 전원 장치(3200), 보조 전원 장치(3250), 중앙처리장치(3300), 디램(3400), 그리고 사용자 인터페이스(3500)를 포함한다. 메모리 장치(3100)은 플래시 메모리(3110) 및 메모리 컨트롤러(3120)를 포함한다. 메모리 장치(3100)은 전자 장치(3000)에 내장될 수 있다.
앞에서 설명한 바와 같이, 본 발명에 따른 전자 장치(3000)는 플래시 메모리(3110)에 저장된 데이터를 독출하는 과정에서 하나의 데이터 스트림만 플래시 메모리(3110)로부터 메모리 컨트롤러(3120)로 전송하여 이레이져 디코딩을 수행할 수 있다. 따라서 이레이져 디코딩에 소모되는 독출 시간이 단축된다.
본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형될 수 있다. 예를 들어, 비휘발성 메모리 및 메모리 컨트롤러의 세부적 구성은 사용 환경이나 용도에 따라 다양하게 변화 또는 변경될 수 있을 것이다. 본 발명에서 사용된 특정한 용어들은 본 발명을 설명하기 위한 목적에서 사용된 것이며 그 의미를 한정하거나 특허 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어서는 안되며 후술하는 특허 청구범위 뿐만 아니라 이 발명의 특허 청구범위와 균등한 범위에 대하여도 적용되어야 한다.
100: 메모리 장치
110: 비휘발성 메모리
120: 메모리 컨트롤러
121: 이레이져 정의부
122: 판정 디코더
110: 비휘발성 메모리
120: 메모리 컨트롤러
121: 이레이져 정의부
122: 판정 디코더
Claims (10)
- 비휘발성 메모리로부터 독출된 데이터의 처리 방법에 있어서,
상기 비휘발성 메모리로부터 메모리 컨트롤러로 이레이져인 셀의 위치 정보를 나타내는 제 1 비트 데이터를 제공하는 단계; 및
상기 제 1 비트 데이터 및 상기 메모리 컨트롤러에 저장된 제 2 비트 데이터를 기초로 이레이져 디코딩을 수행하는 단계를 포함하며,
상기 제 2 비트 데이터는 에러 정정 디코딩 시 읽기 전압에 대응하여 독출된 독출 데이터인 데이터 처리 방법. - 제 1항에 있어서,
상기 제 1 비트 데이터는 이레이져인 셀의 위치를 나타내는 비트 및 이레이져가 아닌 셀의 위치를 나타내는 비트를 포함하며,
상기 이레이져인 셀의 위치를 나타내는 비트 및 상기 이레이져가 아닌 셀의 위치를 나타내는 비트는 서로 다른 논리값을 가지는 데이터 처리 방법. - 제 2항에 있어서,
상기 제 1 비트 데이터는 상기 이레이져인 셀의 위치를 나타내는 비트는 '0'의 값을, 상기 이레이져가 아닌 셀의 위치를 나타내는 비트는 '1'의 값을 가지는 데이터 처리 방법. - 제 1항에 있어서,
상기 이레이져 디코딩을 수행하는 단계는
상기 제 1 비트 데이터 및 상기 메모리 컨트롤러에 저장된 상기 제 2 비트 데이터를 기초로 이레이져 정의 데이터를 생성하는 단계; 및
판정 알고리즘을 통해 상기 이레이져 정의 데이터에 대하여 에러를 정정하는 단계를 포함하는 데이터 처리 방법. - 제 4항에 있어서,
상기 이레이져 정의 데이터에 대하여 에러를 정정하는 단계는
상기 이레이져 정의 데이터의 이레이져 비트를 모두 같은 논리 값으로 변환하는 단계; 및
상기 변환된 이레이져 정의 데이터에 대해 에러 정정을 수행하는 단계를 포함하는 데이터 처리 방법. - 제 4항에 있어서,
상기 판정 알고리즘을 통해 상기 이레이져 정의 데이터에 대하여 에러를 정정하는 단계는
상기 이레이져 정의 데이터의 각 비트에 로그-가능도비에 따른 가중치를 주는 단계; 및
상기 가중된 이레이져 정의 데이터에 대해 에러 정정을 수행하는 단계를 포함하는 데이터 처리 방법. - 비휘발성 메모리로부터 독출된 데이터의 처리 방법에 있어서,
에러 정정 디코딩 시 읽기 전압이 이레이져 문턱 전압의 범위에 속하는지 판단하는 단계;
상기 읽기 전압이 상기 이레이져 문턱 전압의 범위에 속하면 상기 비휘발성 메모리로부터 메모리 컨트롤러로 이레이져인 셀의 위치 정보를 나타내는 제 1 비트 데이터가 제공되는 단계; 및
상기 제 1 비트 데이터 및 상기 메모리 컨트롤러에 저장된 제 2 비트 데이터를 기초로 이레이져 디코딩을 수행하는 단계를 포함하며,
상기 제 2 비트 데이터는 상기 에러 정정 디코딩 시 읽기 전압에 대응하여 독출된 독출 데이터인 데이터 처리 방법. - 제 7항에 있어서,
상기 읽기 전압이 상기 이레이져 문턱 전압의 범위에 속하지 않으면 비휘발성 메모리로부터 메모리 컨트롤러로 제 1 이레이져 데이터 및 제 2 이레이져 데이터가 제공되는 단계; 및
상기 제 1 이레이져 데이터 및 상기 제 2 이레이져 데이터를 기초로 이레이져 디코딩을 수행하는 단계를 더 포함하며,
상기 제 1 이레이져 데이터는 상기 문턱 전압 범위의 상한 전압에 대응하여 독출된 독출 데이터이고,
상기 제 2 이레이져 데이터는 상기 문턱 전압 범위의 하한 전압에 대응하여 독출된 데이터인 데이터 처리 방법. - 제 7항에 있어서,
상기 읽기 전압이 상기 이레이져 문턱 전압 범위의 상한 전압과 기준치 내의 차이를 가지면 상기 이레이져 위치 데이터는 상기 이레이져 문턱 전압의 하한 전압에 대한 독출 데이터인 데이터 처리 방법. - 제 7항에 있어서,
상기 읽기 전압이 상기 이레이져 문턱 전압 범위의 하한 전압과 기준치 내의 차이를 가지면 상기 이레이져 위치 데이터는 상기 이레이져 문턱 전압의 상한 전압에 대한 독출 데이터인 데이터 처리 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120059954A KR20130136271A (ko) | 2012-06-04 | 2012-06-04 | 비휘발성 메모리 장치 및 그것의 데이터 처리 방법 |
US13/788,592 US9105359B2 (en) | 2012-06-04 | 2013-03-07 | Nonvolatile memory device and error correction methods thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120059954A KR20130136271A (ko) | 2012-06-04 | 2012-06-04 | 비휘발성 메모리 장치 및 그것의 데이터 처리 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20130136271A true KR20130136271A (ko) | 2013-12-12 |
Family
ID=49671827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120059954A KR20130136271A (ko) | 2012-06-04 | 2012-06-04 | 비휘발성 메모리 장치 및 그것의 데이터 처리 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9105359B2 (ko) |
KR (1) | KR20130136271A (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9785499B2 (en) | 2014-02-12 | 2017-10-10 | Seagate Technology Llc | Hot-read data aggregation and code selection |
KR102187485B1 (ko) * | 2014-02-21 | 2020-12-08 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 센싱 방법 |
US9819362B2 (en) * | 2015-03-27 | 2017-11-14 | Intel Corporation | Apparatus and method for detecting and mitigating bit-line opens in flash memory |
US10120753B2 (en) | 2015-05-26 | 2018-11-06 | Micron Technology, Inc. | Methods and apparatuses for error correction |
KR102609130B1 (ko) * | 2016-02-17 | 2023-12-05 | 삼성전자주식회사 | 읽기 전압 서치 유닛을 포함하는 데이터 저장 장치 |
EP3834066A4 (en) * | 2018-10-26 | 2022-03-09 | Yangtze Memory Technologies Co., Ltd. | DATA PROCESSING METHOD FOR MEMORY AND ASSOCIATED DATA PROCESSOR |
TWI681396B (zh) * | 2018-12-06 | 2020-01-01 | 群聯電子股份有限公司 | 解碼方法、記憶體控制電路單元以及記憶體儲存裝置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7398454B2 (en) | 2004-12-21 | 2008-07-08 | Tyco Telecommunications (Us) Inc. | System and method for forward error correction decoding using soft information |
DE602006006788D1 (de) * | 2006-03-02 | 2009-06-25 | St Microelectronics Srl | Leseverfahren eines Speichers mit eingebetteter Fehlerkorrekturkode und Speicher mit eingebetteter Fehlerkorrekturkode |
KR101466270B1 (ko) * | 2008-09-19 | 2014-11-28 | 삼성전자주식회사 | 비휘발성 메모리 시스템 및 그것의 데이터 처리 방법 |
US8259506B1 (en) * | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
KR101574208B1 (ko) | 2009-03-31 | 2015-12-07 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것을 포함하는 메모리 시스템, 그리고 그것의 동작 방법 |
KR20100120991A (ko) | 2009-05-07 | 2010-11-17 | 삼성전자주식회사 | 이레이저 조작을 수행하는 메모리 시스템 및 그것의 읽기 방법 |
KR101633048B1 (ko) | 2010-02-25 | 2016-06-24 | 삼성전자주식회사 | 메모리 시스템 및 그것의 데이터 처리 방법 |
KR101541040B1 (ko) * | 2010-03-12 | 2015-08-03 | 엘에스아이 코포레이션 | 플래시 메모리들을 위한 ldpc 소거 디코딩 |
-
2012
- 2012-06-04 KR KR1020120059954A patent/KR20130136271A/ko not_active Application Discontinuation
-
2013
- 2013-03-07 US US13/788,592 patent/US9105359B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9105359B2 (en) | 2015-08-11 |
US20130326296A1 (en) | 2013-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107305530B (zh) | 数据存储装置及其操作方法 | |
US9164881B2 (en) | Method of determining deterioration state of memory device and memory system using the same | |
KR101616100B1 (ko) | 메모리 시스템 및 그것의 동작 방법 | |
KR102381218B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
KR102090589B1 (ko) | 비휘발성 메모리 장치의 데이터 저장 방법 및 비휘발성 메모리 장치의 테스트 방법 | |
US8375257B2 (en) | ECC control circuits, multi-channel memory systems including the same, and related methods of operation | |
US9274886B2 (en) | Data storage device having a reduced error occurrence, operating method thereof, and data processing system including the same | |
US8611150B2 (en) | Flash memory device including flag cells and method of programming the same | |
US9105359B2 (en) | Nonvolatile memory device and error correction methods thereof | |
US20150113207A1 (en) | Operating method of data storage device | |
US8743632B2 (en) | Nonvolatile memory device, operating method thereof, and data storage device having the same | |
KR102002385B1 (ko) | 데이터 저장 장치의 동작 방법 | |
KR20150121835A (ko) | 비휘발성 메모리 장치의 데이터 디코딩 방법 | |
KR102089570B1 (ko) | 저장 장치 및 그것의 데이터 처리 방법 | |
KR20130052811A (ko) | 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치 | |
CN108428467B (zh) | 读取电压追踪方法、存储器储存装置及控制电路单元 | |
KR20140001479A (ko) | 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치 | |
KR20140031551A (ko) | 불휘발성 메모리 장치 및 그것을 포함하는 데이터 저장 장치 | |
KR20180042792A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11048440B2 (en) | Memory system, memory device and operating method thereof | |
KR20230072196A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20220139081A (ko) | 비휘발성 메모리 장치에 데이터를 프로그램 및 검증하기 위한 장치 및 방법 | |
KR20230000724A (ko) | 비휘발성 메모리 장치에 데이터를 프로그램하기 위한 장치 및 방법 | |
CN113724773B (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
KR102714712B1 (ko) | 메모리 시스템, 메모리 장치 및 그 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal |