KR20110097446A - 메모리 시스템 및 그것의 데이터 처리 방법 - Google Patents
메모리 시스템 및 그것의 데이터 처리 방법 Download PDFInfo
- Publication number
- KR20110097446A KR20110097446A KR1020100017293A KR20100017293A KR20110097446A KR 20110097446 A KR20110097446 A KR 20110097446A KR 1020100017293 A KR1020100017293 A KR 1020100017293A KR 20100017293 A KR20100017293 A KR 20100017293A KR 20110097446 A KR20110097446 A KR 20110097446A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- weak
- bits
- nonvolatile memory
- memory device
- 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/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
- 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
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output 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
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
-
- 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
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
본 발명에 따른 불휘발성 메모리의 데이터 처리 방법은, 상기 불휘발성 메모리 장치의 위크 열 정보를 제공받는 단계, 상기 비트들 각각에 대한 확률적인 값을 계산하는 단계, 상기 위크 열 정보에 대응되는 확률적인 값을 수정하는 단계, 수정된 확률적인 값을 이용하여 오류 정정 부호의 복호를 수행하는 단계를 포함한다.
Description
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 불휘발성 메모리 장치를 포함하는 메모리 시스템, 그리고 불휘발성 메모리 장치로부터 독출된 데이터의 신뢰성을 높이기 위한 데이터 처리 방법에 관한 것이다.
반도체 메모리 장치(Semiconductor Memory Device)는 크게 휘발성 메모리 장치(Volatile Memory Device)와 불휘발성 메모리 장치(Non-volatile Memory Device)로 구분된다. 휘발성 메모리 장치는 읽고 쓰는 속도가 빠르지만 외부 전원 공급이 끊기면 저장된 내용이 사라져 버리는 단점이 있다. 반면에 불휘발성 메모리 장치는 외부 전원 공급이 중단되더라도 그 내용을 보존한다. 그러므로 불휘발성 메모리 장치는 전원이 공급되었는지의 여부에 관계없이 보존되어야 할 내용을 기억시키는 데 쓰인다. 불휘발성 메모리 장치로는 마스크 롬(Mask Read-Only Memory: MROM), 프로그램 가능한 롬(Programmable Read-Only Memory: PROM), 소거 및 프로그램 가능한 롬(Erasable Programmable Read-Only Memory: EPROM), 전기적으로 소거 및 프로그램 가능한 롬(Electrically Erasable Programmable Read-Only Memory: EEPROM) 등이 있다.
최근 들어, 모바일 트랜드(Mobile trend)의 급격한 변화에 따라 반도체 메모리 장치에 대한 대용량화 요구가 증가하고 있다. 따라서, 하나의 메모리 셀에 저장되는 비트 수가 증가하고 있다. 예를 들면, 하나의 메모리 셀에 멀티 비트를 저장하는 멀티-레벨 셀(Multi-Level Cell: MLC) 메모리 장치들이 보편화되고 있다. 그리고 동일 면적에 집적되는 메모리 셀들의 수도 증가하고 있다. 하지만, 집적도의 증가와 멀티-레벨 셀에 저장되는 비트 수의 증가에 따라 저장되는 데이터의 신뢰성은 낮아질 수밖에 없다.
따라서, 대용량화 요구에 부합하면서 저장되는 데이터의 신뢰성을 높일 수 있는 기술이 절실한 실정이다.
본 발명의 목적은 불휘발성 메모리 장치로부터 독출된 데이터의 에러 정정 능력을 향상시킬 수 있는 메모리 시스템 및 그것의 데이터 처리 방법을 제공하는 것이다.
상기 목적을 달성하기 위한 본 발명의 실시 예에 따른 불휘발성 메모리의 데이터 처리 방법은, 상기 불휘발성 메모리 장치의 위크 열 정보를 제공받는 단계, 그리고 상기 데이터의 비트들 각각의 논리값을 연판정 알고리즘에 따라 결정하는 단계를 포함하되, 상기 결정하는 단계에서, 상기 데이터의 비트들 중 상기 위크 열 정보에 대응하는 비트에는 정상 비트와는 다른 가중치가 적용된다.
상기 목적을 달성하기 위한 본 발명의 다른 실시 예에 따르면, 불휘발성 메모리 장치로의 독출된 데이터의 처리 방법은, 상기 불휘발성 메모리 장치의 위크 열 정보를 제공받는 단계, 상기 위크 열 정보를 참조하여 상기 데이터의 비트들 중 위크 열에 대응하는 비트를 이레이져(Erasure)로 지정하는 단계, 그리고 상기 이레이져로 지정된 비트가 포함되는 데이터를 이레이져 디코딩 방식에 따라 에러 정정 연산을 수행하는 단계를 포함한다.
상기 목적을 달성하기 위한 본 발명의 실시 예에 따른 메모리 시스템은, 불휘발성 메모리 장치, 그리고 상기 불휘발성 메모리 장치로부터 제공되는 독출 데이터의 비트들 각각을 위크 열 정보를 참조하여 연판정 디코딩 방식으로 결정하되, 상기 연판정 디코딩 방식에서 상기 독출 데이터의 비트들 중 상기 위크 열 정보에 대응하는 비트에는 정상 비트와는 다른 가중치를 적용하는 메모리 컨트롤러를 포함한다.
본 발명에 의하면, 향상된 에러 정정 능력을 제공함으로써 독출 데이터의 신뢰성을 현저히 높일 수 있다. 그리고 열 리던던시(Column redundancy)를 위한 스페어 영역이 부족한 메모리 장치라 하더라도 불량 처리되지 않고 양품으로 사용할 수 있어 수율을 높일 수 있다.
도 1은 불휘발성 메모리 장치의 구성을 보여주는 블록도;
도 2는 본 발명의 메모리 시스템의 구성을 보여주는 블록도;
도 3은 도 2의 연판정 디코더의 구성을 보여주는 블록도;
도 4는 사후 확률들의 분포를 보여주는 그래프;
도 5는 본 발명의 제 1 실시 예에 따른 데이터 처리 방법을 보여주는 순서도;
도 6은 본 발명의 제 2 실시 예에 따른 데이터 처리 방법을 보여주는 도면;
도 7은 이레이져(Erasure) 디코딩의 개념을 보여주는 도면;
도 8 및 도 9는 위크 열 정보의 저장 위치를 보여주는 블록도들;
도 10은 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브(SSD)를 보여주는 블록도;
도 11은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도; 및
도 12는 본 발명의 실시 예에 따른 컴퓨팅 시스템을 보여주는 블록도.
도 2는 본 발명의 메모리 시스템의 구성을 보여주는 블록도;
도 3은 도 2의 연판정 디코더의 구성을 보여주는 블록도;
도 4는 사후 확률들의 분포를 보여주는 그래프;
도 5는 본 발명의 제 1 실시 예에 따른 데이터 처리 방법을 보여주는 순서도;
도 6은 본 발명의 제 2 실시 예에 따른 데이터 처리 방법을 보여주는 도면;
도 7은 이레이져(Erasure) 디코딩의 개념을 보여주는 도면;
도 8 및 도 9는 위크 열 정보의 저장 위치를 보여주는 블록도들;
도 10은 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브(SSD)를 보여주는 블록도;
도 11은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도; 및
도 12는 본 발명의 실시 예에 따른 컴퓨팅 시스템을 보여주는 블록도.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
아래에서, 반도체 메모리 장치로서 불휘발성 메모리 장치(보다 상세하게는 플래시 메모리 장치)가 본 발명의 특징 및 기능을 설명하기 위한 한 예로서 사용된다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다. 그리고 이레이져(Erasure)는 메모리 셀의 데이터를 소거한다는 의미보다는, 논리 '0'과 논리 '1' 중 어느 하나로 결정하기 어려운 비트를 지시하기 위한 제 3의 논리 상태를 의미한다.
도 1은 불휘발성 메모리 장치의 구성을 보여주는 블록도이다. 도 1을 참조하면, 본 발명의 불휘발성 메모리 장치(100)는 셀 어레이(110), 행 디코더(120), 페이지 버퍼(130), 입출력 버퍼(140), 그리고 제어 로직(150)을 포함한다.
셀 어레이(110)는 비트 라인들(BL0~BLn-1) 및 워드 라인들(WLs)에 연결되는 복수의 메모리 셀들을 포함한다. 셀 어레이(110)는 복수의 메모리 블록들(111, 112,…, 113)을 포함한다. 복수의 메모리 블록들(111, 112,…, 113) 각각은 소거 단위에 해당될 수 있다. 메모리 블록들은 복수의 셀 스트링(Cell String)들로 구성된다. 셀 스트링(Cell String)은 직렬로 연결되는 메모리 셀들의 단위이다. 어느 하나의 셀 스트링에 포함되는 메모리 셀들은 동일한 선택 트랜지스터에 의해서 선택된다.
메모리 블록(111)에 포함되는 셀 스트링들(Strings)은 각각 동일한 공통 소스 라인(Common Source Line: CSL)에 연결된다. 그리고 각각의 스트링들은 서로 다른 비트 라인들(BL0~BLn-1)에 연결된다. 메모리 블록들(112, 113)의 구조도 메모리 블록(111)과 대등하게 형성될 수 있다. 만일, 메모리 블록(112)에 포함되는 셀 스트링(115)에 결함이 발생하면 비트 라인(BL0)에 연결되는 나머지 셀 스트링들에도 영향을 미친다. 일반적으로는 이러한 결함 비트 라인(BL0)은 미리 구비되는 리던던트 비트 라인으로 치환된다.
뿐만 아니라, 회로적인 결함은 없지만 메모리 셀들에 프로그램되는 데이터의 패턴에 따라서 셀 스트링의 전기적 특성은 변화한다. 예를 들면, 셀 스트링(115)에 포함되는 모든 메모리 셀들이 가장 높은 문턱 전압에 해당하는 상태(예를 들면, 2-bit MLC에서 P3)로 프로그램된 경우를 가정하자. 그러면, 메모리 블록(112)이 선택되고, 데이터가 독출되더라도 셀 스트링(115)에 대응하는 열의 데이터는 신뢰도가 나머지 스트링들에 비하여 낮아질 수밖에 없다. 이러한 특성을 백패턴 의존(Back Pattern Dependency) 특성이라 한다.
백패턴 의존 특성뿐만 아니라, 메모리 셀들의 프로그램/소거 사이클(P/E Cycle)의 증가에 따라서 메모리 셀들은 열화된다. 따라서, 열화된 메모리 셀들이 다수 존재하는 스트링의 경우에는 데이터의 신뢰성이 상대적으로 낮을 수밖에 없다.
상술한 어느 하나의 셀 스트링에서 발생하는 문제는 비트 라인을 공유하는 나머지 셀 스트링에도 영향을 미칠 수 있다. 그리고 결함 셀 스트링이 연결된 비트 라인에 모두 열 리던던시를 적용하는 것은 비용의 증가를 초래할 수 있다. 또한, 결함 열을 대체하기 위한 열 리던던시 영역이 부족할 경우에는 불량으로 처리되어야 한다. 이하에서는, 상술한 결함이나 열화된 메모리 셀이 포함되는 열, 또는 백패턴 의존 문제가 존재하는 열을 위크 열(Weak Column)이라 칭하기로 한다.
행 디코더(120)는 일반적으로 어드레스(Address)에 응답하여 워드 라인을 선택한다. 행 디코더(120)는 전압 발생기(미도시됨)로부터 제공되는 각종 워드 라인 전압을 선택된 워드 라인들로 전달한다. 프로그램 동작시, 행 디코더(120)는 제어 로직(150)의 제어에 따라 선택 워드 라인(Selected WL)으로는 프로그램 전압(Vpgm; 약 15~20V)과 검증 전압(Vvfy)을, 비선택 워드 라인(Unselected WL)으로는 패스 전압(Vpass)을 전달한다. 독출 동작 시, 행 디코더(120)는 전압 발생기(160)로부터 제공되는 선택 읽기 전압(Vrd)을 선택된 워드 라인으로, 비선택 읽기 전압(Vread)을 비선택 워드 라인들로 제공한다.
페이지 버퍼(130)는 동작 모드에 따라 기입 드라이버(Write driver)로서 또는 감지 증폭기(Sense amplifier)로서 동작한다. 예를 들면, 페이지 버퍼(130)는 읽기 동작 모드에서 감지 증폭기로서 그리고 프로그램 동작 모드에서 기입 드라이버로서 동작한다. 본 발명의 페이지 버퍼(130)는 제어 로직(150)의 제어에 따라 읽기 동작시 선택된 메모리 셀들로부터 센싱된 데이터를 래치하여 입출력 버퍼(140)로 전달한다.
입출력 버퍼(140)는 입출력 핀(I/O Pin)을 통해서 입력되는 어드레스 또는 프로그램 데이터 등을 일시 저장한다. 입출력 버퍼(140)는 저장된 어드레스를 어드레스 버퍼(미도시됨)로, 프로그램 데이터는 페이지 버퍼(130) 측으로, 그리고 명령어(CMD)는 명령어 레지스터(미도시됨)를 포함하는 제어 로직(150)으로 전달한다. 읽기 동작시, 페이지 버퍼(130)로부터 제공되는 독출 데이터가 입출력 버퍼(140)를 통해서 외부(즉, 메모리 컨트롤러)로 출력될 것이다.
제어 로직(150)은 외부로부터의 명령어(CMD)에 따라 프로그램, 독출, 소거 동작 등의 절차들에 따라 페이지 버퍼(130) 및 행 디코더(120)를 제어한다.
상술한 불휘발성 메모리 장치(100)에 있어서, 결함 셀 스트링이나 열화된 메모리 셀들이 존재하는 셀 스트링, 또는 백패턴 의존 특성이 존재하는 위크 열 문제를 해결하기 위한 기술이 필요하다. 본 발명의 실시 예에서는 위크 열 문제를 해결할 수 있는 메모리 컨트롤러가 제공된다. 그리고 메모리 컨트롤러에서 상술한 위크 열을 참조하여 연판정 디코딩 방식에 따라 에러를 정정할 수 있다. 이러한 기술은 후술하는 도 2에서 보다 상세히 설명하기로 한다.
도 2는 본 발명의 실시 예에 따른 메모리 시스템(200)을 보여주는 블록도이다. 도 2를 참조하면, 본 발명에 따른 메모리 시스템(200)은 불휘발성 메모리 장치(210)와 메모리 컨트롤러(250)를 포함한다. 메모리 컨트롤러(250)는 위크 열 관리 유닛(220)과 연판정 디코더(230)를 포함한다.
불휘발성 메모리 장치(210)는, 예를 들면 플래시 메모리 장치로 구성될 수 있다. 불휘발성 메모리 장치(210)는 메모리 컨트롤러(250)의 명령 및 제어에 따라서 데이터를 독출하거나 메모리 컨트롤러(250)로부터 제공되는 데이터를 셀 어레이에 프로그램한다. 불휘발성 메모리 장치(210)는 앞서 설명된 도 1의 불휘발성 메모리 장치(100)와 실질적으로 동일하다.
메모리 컨트롤러(250)는 불휘발성 메모리 장치(210)로부터 제공되는 독출 데이터(Read Data)를 연판정 알고리즘에 따라 처리할 수 있다. 특히, 연판정 디코딩 절차에서 결함 열이나 백패턴 의존(Back Pattern Dependancy) 문제가 있는 위크 열에 대해서는 정상 열과는 다른 가중치(Weight)로 관리한다. 이러한 연판정 절차를 위해서, 메모리 컨트롤러(250)는 위크 열 관리 유닛(220)과 연판정 디코더(230)를 포함한다.
위크 열 관리 유닛(220)은 위크 열(Weak Column)을 검출한다. 위크 열 관리 유닛(220)은 독출 데이터가 불휘발성 메모리 장치(210)로부터 메모리 컨트롤러(250)에 전달되면, 독출 데이터의 위크 열 정보(Weak Column Information)를 연판정 디코더(230)에 제공한다.
연판정 디코더(230)는 위크 열 정보를 참조하여 독출 데이터에 대한 연판정 연산을 수행한다. 연판정 연산의 예로, 최대 가능도(Maximum Likelihood) 기준에 따라서 독출 데이터의 비트 값들을 결정하는 디코딩 방식이 있다. 최대 가능도 기준에서 연판정 디코더(230)는 위크 열에 해당하는 비트들은 정상 열과는 다른 가중치를 부가할 수 있다. 연판정 연산의 다른 예로, 상술한 위크 열에 해당하는 비트들을 이레이져(Erasure)로 지정하고 에러 정정 연산(ECC)을 수행하는 이레이져 디코딩 방식이 사용될 수 있다.
이상의 도 2를 통해서 설명된 본 발명의 실시 예에 따른 메모리 시스템(200)은 결함이 있거나 에러 발생 확률이 높은 위크 열을 열 리던던시를 사용하지 않고도 해결할 수 있다.
도 3은 본 발명의 제 1 실시 예에 따른 연판정 디코더(230)의 구성을 보여주는 블록도이다. 도 3을 참조하면, 연판정 디코더(230)는 사후 확률 유닛(231), 로그-가능도비 계산 유닛(232), 그리고 ECC 디코더(233)을 포함한다. 연판정 디코더(230)는 상술한 구성들을 통하여 위크 열에 대응하는 비트들에 대해서 정상 열과는 다른 가중치를 적용하여 연판정 연산을 수행한다. 또한, 사후 확률 유닛(231) 없이 바로 로그-가능도비를 계산할 수 있다.
사후 확률 유닛(231)은 독출 데이터(Read data)의 비트들 각각에 대한 사후 확률(A Posteriori Probability)을 계산한다. 이미 발생한 사건을 조건으로 과거의 불확실한 사건에 대한 가설들을 설정하면, 각각의 가설에 대한 조건부 확률이 사후 확률이 된다. 따라서, 가장 큰 사후 확률에 대응하는 가설을 '참'으로 결정하는 것이 최대 사후 확률(Maximum A Posteriori probability: MAP) 기준이라 한다.
여기서는, 사후 확률은 현재 발생한 사건(독출 데이터의 특정 열의 논리값)을 조건으로 이전에 일어난 사건(즉, 특정 열의 프로그램된 비트값)에 대한 조건부 확률을 의미한다. 현재 독출된 비트가 논리 '1'이라면, 이러한 조건하에 프로그램 당시 논리 '1'로 프로그램되었을 확률과, 논리 '0'으로 프로그램되었을 확률을 각각 사후 확률이라고 한다. 'Y'를 독출 데이터의 비트, 'S'를 프로그램 데이터의 비트를 의미하는 것으로 가정하면, 상술한 각각의 조건에 대한 사후 확률들은 P(S=1│Y=1), 및 P(S=0│Y=1)로 표현될 수 있다. 또한, ‘Y’가 독출된 임의의 값(플래시 메모리의 경우, 셀의 문턱 전압)이면, 사후 확률들은 P(S=1│Y) 및 P(S=0│Y)로 표현될 수 있다. 만약 사전 발생 확률(a priori probability) P(S=0)과 P(S=1)가 동일하다면, 최대 사후 확률과 최대 가능도(Maximum likelihood)는 동일해진다.
로그-가능도비 계산 유닛(232)은 상술한 독출된 값을 통해 계산한 로그-가능도비와 본 발명의 위크 열 정보(Weak Column Information)를 고려한다. 상술한 사후 확률들에 로그-가능도비(LLR)는 아래 수학식 1로 표현될 수 있다.
수학식 1의 로그-가능도비 LLR(Y)의 부호는 논리 '0' 또는 논리 '1'의 결정 기준이 되고, 절대값은 가설에 대한 신뢰도 또는 연판정 결과에 대한 신뢰도를 나타낸다.
로그-가능도비 계산 유닛(232)은 독출 데이터의 비트들 각각에 대해서 상술한 로그-가능도비(LLR)를 계산한다. 특히, 본 발명의 실시 예에 따른 로그-가능도비 계산 유닛(232)은 위크 열 정보(Weak Column Information)를 참조하여, 상술한 로그-가능도비(LLR)에 대해서 정상 열과는 다른 가중치를 부과한다. 즉, 정상 열들에 비해 불확실성이 높은 확률 구간에 대한 로그-가능도비(LLR)의 절대값을 감소시킴으로써 연판정 연산시 불확실성을 감소시킬 수 있다. 이러한 개념은 후술하는 도 4에서 상세히 설명하기로 한다.
ECC 디코더(233)는 상술한 로그-가능도비(LLR)를 참조하여 복호를 수행한다. 에러 정정 연산(ECC)은 연판정 복호기(soft decision decoder)가 사용될 수 있는 LDPC 부호, Turbo 부호, Convoluional 부호, RSC 부호, RA 부호, RS 부호, BCH 부호 등이 사용될 수 있다. 그리고 ECC 디코더(233)에 의해서 결정된 비트 값은 독출된 데이터에 대한 결정 값으로 출력되며, 에러 정정된 데이터(Error Corrected data)로 출력된다.
이상에서는 위크 열에 대해서는 로그-가능도비(LLR)의 계산에서 적용되는 가중치를 정상 열과 달리 설정하는 실시 예가 설명되었다. 이러한 위크 열에 대한 구별된 관리를 통해서 위크 열의 에러 정정 확률을 높일 수 있다.
도 4는 로그-가능도비(LLR)의 설정을 보여주는 도면이다. 도 4를 참조하면, 조건부 확률 분포인 P(Y|S=0)과 P(Y|S=1)가 개략적으로 도시되어 있다.
특정 메모리 셀이 Z3 영역에 있어서, 스트롱 0(Strong 0)으로 판정되면 로그-가능도비(LLR)는 6으로 결정된다. 하지만, 만약 이 셀이 위크 열에 속해 있다면, 로그-가능도비(LLR)는 0으로 변경할 수 있다. 도 4는 2-비트 연판정 값에 대해서 설명했지만, 실제로 그 이상의 비트 연판정 연산에 대해서도 적용 가능하다. 만약, 3-비트 연판정 연산이 수행된다면 판정 영역은 총 8개가 된다. 각 영역에 할당되는 로그-가능도비(LLR) 값은 채널 상태 또는 산포 상태에 따라 달라질 수 있다.
여기서는, 각각의 확률 영역을 4개의 확률 영역들(Z0, Z1, Z2, Z3)으로 구분하여 결정하는 연판정 디코딩 방식이라 가정하자. 그러면, 확률 영역들(Z1, Z2)은 두 가설(논리 '1'로 프로그램되었다는 가설, 논리 '0'으로 프로그램되었다는 가설)이 겹쳐지는 확률 영역에 해당한다.
각각의 확률 영역들(Z0, Z1, Z2, Z3)에 대한 정상 열의 로그-가능도비(LLR)는 각각 (-6, -3, 3, 6)으로 표현된다고 가정하자. 특정 셀이 위크 열에 속해 있다면, 그 셀이 어느 영역에 있는지와 무관하게 로그-가능도비(LLR)를 ‘0’으로 설정할 수 있다. 또는, 위크 열에 속해 있는 셀의 로그-가능도비(LLR) 값을 특정한 비율로 감소시켜 줄 수도 있다. 예를 들어, 특정 셀이 Z3에 있어서 로그-가능도비(LLR)가 6이라 할지라도 비율 3을 적용하면, 로그-가능도비(LLR)는 2(=6/3)가 된다.
본 발명의 실시 예에서는, 선택시 '참'일 확률이 높은 확률 구간들(Z0, Z3)에 대해서는 로그- 가능도비(LLR)의 절대치를 크게 하고, 선택시 에러가 발생할 확률 구간들(Z1, Z2)에 대한 로그-가능도비(LLR)의 절대치를 작게 설정하였다. 이러한 설정에 따르면, 연판정 연산시에 경판정보다 많은 에러를 정정할 수 있는 것으로 알려져 있다.
도 5는 본 발명의 제 1 실시 예에 따른 데이터 처리 방법을 보여주는 순서도이다. 도 5를 참조하면, 호스트(Host)로부터 읽기 명령이 제공되면 본 발명의 메모리 컨트롤러(250)에 의한 데이터 처리 절차가 시작된다.
단계 S110에서, 메모리 컨트롤러(250)는 읽기 명령어 및 어드레스를 불휘발성 메모리 장치(210)에 제공한다. 불휘발성 메모리 장치(210)는 읽기 요청된 데이터를 독출하여 메모리 컨트롤러(250)에 제공한다. 또한, 불휘발성 메모리 장치(210)는 읽기 요청된 데이터와 함께 위크 열 정보(Weak Column Information)를 제공할 수 있다. 위크 열 정보(Weak Column Information)는 테스트 공정에서 검출된 위크 열들의 어드레스를 불휘발성 메모리 장치(210)의 특정 영역에 저장할 수 있다. 그리고 메모리 컨트롤러(250)의 요청에 응답하여, 또는 파워-온-리셋(POR) 동작이나 통상의 리셋 동작시에 메모리 컨트롤러(250)에 제공될 수 있다. 진행성 결함과 같이 사용 도중에 발생하는 위크 열은 불휘발성 메모리 장치(210)의 머지 동작(Merge Operation)시에 검출되어 위크 열 정보(Weak column information)로 저장될 수 있다.
단계 S120에서, 각각의 독출된 비트들에 대한 로그-가능도비(LLR)가 계산된다. 특히, 위크 열에 대응하는 어드레스의 비트들은 정상 열에 대응하는 어드레스의 비트들과는 다른 가중치를 적용받는다. 즉, 위크 열에 대응하는 로그-가능도비(LLR)의 절대값이 정상 열의 로그-가능도비(LLR)의 절대값에 비하여 상대적으로 작게 조정된다. 이러한 위크 열에 대한 로그-가능도비(LLR)의 절대값을 줄이거나 조정함으로써 연판정 연산시에 에러 정정 확률을 높일 수 있다. 또한, 위크 열에 대한 로그-가능도비(LLR)는 그대로 유지하고, 위크 열에 속하지 않은 셀들의 로그-가능도비(LLR)을 증가시킬 수도 있다.
단계 S130에서, 메모리 컨트롤러(250)의 ECC 디코더(233)는 로그-가능도비(LLR)를 참조하여 독출 데이터에 대한 ECC 복호를 수행한다. ECC 복호의 수행 후, 독출 데이터는 에러 정정된 데이터(Error Corrected data)로 출력된다.
이상에서는 최대 가능도(Maximum Likelihood) 기준을 적용하기 위하여 로그 가능도비(LLR) 방식을 예로 들어서 설명하였다. 하지만, 본 발명의 결정 방식은 이에 국한되지는 않는다. 즉, 사후 확률에 대한 로그값을 취하지 않고도 본 발명의 목적을 달성할 수 있을 것이다. 사후 확률에 대한 로그값을 취하지 않는 방식을 가능도(Likelihood Ratio: LR) 방식이라 한다. 이밖에도 다양한 계산 방식으로 연판정 알고리즘을 위한 기준값이 제공될 수 있을 것이다.
도 6은 본 발명의 제 2 실시 예를 보여주기 위한 데이터 처리 방법을 보여주는 도면이다. 도 6을 참조하면, 독출된 데이터 중 위크 열을 이레이져(Erasure)로 처리하고, 이레이져 디코딩에 의해서 에러를 정장할 수 있다.
불휘발성 메모리 장치(210)로부터 데이터를 독출하면, 하나의 페이지 단위로 관리될 수 있다. 도면에서, 두 개의 비트들(410, 415)이 위크 열에 해당하는 것으로 가정하자. 비트 (410)은 논리 '1'로, 그리고 비트 (415)는 논리 '0'으로 독출되었지만, 이들 비트들(410, 415)의 독출값은 위크 열에 대응하기 때문에 신뢰도가 낮은 값이다.
위크 열 관리 유닛(220)은 독출된 페이지(Read page)의 비트들 중 위크 열에 대응하는 비트들(410, 415)을 모두 이레이져(Erasure)로 지정한다. 위크 열 관리 유닛(220)이 이레이져(Erasure)로 지정한 비트들은 도면에서 'X'로 표시하였다. 이레이져 비트들(420, 425)은 일반적으로 발생한 위치를 알 수 있는 에러들을 의미한다. 여기서, 에러 위치(Error location)에 해당하는 위크 열의 비트들을 이레이져(Erasure)로 지정하였기 때문에 이레이져 비트들(420, 425)은 이레이져 디코딩을 통해서 정정될 수 있음을 의미한다.
이레이져(Erasure)로 지정된 비트들(420, 425)은 이레이져 디코딩(Erasure Decoding)에 의해서 처리된다. 연판정 디코더(230, 도 2 참조)는 이레이져 비트들(420, 425)이 포함되는 페이지나 부호어(Code word)를 이레이져 디코딩 방식으로 처리한다. 예를 들면, 연판정 디코더(230)는 이레이져 비트들(420, 425)을 모두 논리 '0'으로 치환하여 에러 정정 연산을 수행한다. 그리고 연판정 디코더(230)는 이레이져 비트들(420, 425)을 모두 논리 '1'으로 치환하여 에러 정정 연산을 수행한다. 또는, 연판정 디코더(230)는 이레이져 비트들(420, 425)을 논리 '0'과 논리 '1'의 적절한 조합으로 치환하여 에러 정정 연산을 수행할 수 있다.
연판정 디코더(230)는, 각각의 에러 정정 연산들의 결과 중 디코딩 성공(Decoding success)로 출력되는 데이터 열을 최종 디코딩 데이터로 선택한다. 하지만, 두 개 이상의 디코딩 성공(Decoding success)이 발생하는 경우가 생길 수 있다. 두 개의 디코딩 결과들이 동일하면 어느 하나만을 선택해도 에러 정정에는 문제가 없다. 따라서, 어느 하나를 선택하더라도 원래 불휘발성 메모리 장치(210)에 프로그램된 데이터를 복구할 수 있다.
그러나 두 개 이상의 디코딩 성공이 발생하고, 각각의 디코딩 결과로 출력되는 데이터가 서로 다른 값을 가지는 경우가 발생할 수 있다. 이런 경우, 연판정 디코더(230)는 독출된 데이터(즉, Read page)와 해밍 거리(Hamming distance)가 더 짧은 것을 선택함으로써 더 정확한 출력값을 얻을 수 있다. 도면에서는 독출될 당시에는 논리 '1'이던 비트 (410)이 이레이져 디코딩 결과 논리 '0'의 비트 (430)로 정정된 예를 보여준다.
도 7은 이레이져(Erasure)의 개념을 보여주기 위한 이진 입력-비이진 출력(Binary input-Nonbinary output)의 채널 모델이다. 도 7을 참조하면, 입력된 데이터는 논리 '1' 또는 논리 '0'이지만, 출력되는 값은 논리 '1', 논리 '0' 그리고 이레이져(ε: Erasure) 중 어느 하나를 가진다. 입력이 논리 '0'인 경우, 출력이 논리 '1'이 되는 에러 확률을 'p', 출력이 '이레이져'가 되는 확률을 'pε'라고 가정하자. 그러면, 에러 또는 이레이져가 출력되지 않은 확률은 '1-p-pε'가 된다. 이러한 채널 모델에서 에러와 이레이져(Erasure)는 오류가 발생한 위치 정보의 유무에 의하여 정의된다. 에러는 발생한 위치를 알 수 없는 오류를 의미하고, 이레이져(Erasure)는 발생한 위치만을 알 경우의 오류를 의미한다. 앞서 설명된, 위크 열 정보는 결국 에러의 위치 정보를 제공하게 되고, 위크 열에 대응하는 비트는 이레이져(Erasure)로 처리될 수 있음을 의미한다.
도 8 및 도 9는 위크 열 정보(Weak Column Information)의 저장 위치를 보여주는 본 발명의 또 다른 실시 예들을 보여주는 블록도들이다.
도 8은 위크 열 정보(WC Information, 515)가 불휘발성 메모리 장치(510)에 저장되는 메모리 시스템(500)을 보여준다. 위크 열 정보(515)는 불휘발성 메모리 장치(510) 테스트 공정에서 검출되고 다시 불휘발성 메모리 장치(510)의 특정 메모리 영역에 저장될 수 있다. 위크 열 정보(515)는 메모리 시스템(500)이 리셋되는 시점에 메모리 컨트롤러(520)에 제공될 수 있다. 그러면, 메모리 컨트롤러(520)는 연판정 연산이나 이레이져 디코딩시에 위크 열 정보(515)를 제어 정보로 사용할 수 있다.
위크 열 정보(515)는 진행성 결함에 대한 정보를 포함할 수 있다. 메모리 셀의 프로그램/소거 사이클(P/E Cycle)의 증가에 따라서 발생하는 결함 열의 경우에, 메모리 컨트롤러(520)에 의해서 제어되는 머지 동작(Merge Operation)에서 검출될 수 있다. 즉, 메모리 컨트롤러(520)는 머지 동작시 기준값 이상의 에러가 발생하는 열을 검출하고, 검출된 열 어드레스를 위크 열 정보(Weak Column Information)로 업데이트할 수 있다.
도 9는 위크 열 정보(Weak Column Information, 625)가 메모리 컨트롤러(620)에 저장되는 메모리 시스템(600)을 보여준다. 위크 열 정보(625)는 불휘발성 메모리 장치(610) 테스트 공정에서 검출되고 다시 불휘발성 메모리 장치(610)의 특정 메모리 영역에 저장될 수 있다. 위크 열 정보(625)는 메모리 시스템(600)이 리셋되는 시점에 메모리 컨트롤러(620)에 제공될 수 있다. 위크 열 정보(625)는 메모리 컨트롤러(620)의 롬이나 램과 같은 기억 소자에 저장될 수 있다. 그러면, 메모리 컨트롤러(620)는 연판정 연산이나 이레이져 디코딩시에 위크 열 정보(625)를 제어 정보로 사용할 수 있다.
도 10은 본 발명의 실시 예에 따른 메모리 시스템의 일 예로 솔리드 스테이트 디스크(SSD) 시스템을 보여주는 블록도이다. 도 10을 참조하면, SSD 시스템(1000)은 호스트(1100)와 SSD(1200)를 포함한다. SSD(1200)는 SSD 컨트롤러(1210), 버퍼 메모리(1220), 그리고 불휘발성 메모리 장치(1230)를 포함한다.
SSD 컨트롤러(1210)는 호스트(1100)와 SSD(1200)와의 물리적 연결을 제공한다. 즉, SSD 컨트롤러(1210)는 호스트(1100)의 버스 포맷(Bus format)에 대응하여 SSD(1200)와의 인터페이싱을 제공한다. 특히, SSD 컨트롤러(1210)는 호스트(1100)로부터 제공되는 명령어를 디코딩한다. 디코딩된 결과에 따라, SSD 컨트롤러(1210)는 불휘발성 메모리 장치(1230)를 액세스한다. 호스트(1100)의 버스 포맷(Bus format)으로 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등이 포함될 수 있다.
SSD 컨트롤러(1210)는 호스트(1100)로부터의 읽기 요청이 발생하면, 불휘발성 메모리 장치(1230)로부터 제공되는 독출 데이터를 위크 열 정보를 참조하여 처리한다. SSD 컨트롤러(1210)는 위크 열 정보(Weak Column Information)을 참조하여 독출 데이터를 이레이져 디코딩 방식으로 처리할 수 있다. 또는, SSD 컨트롤러(1210)는 독출 데이터의 연판정 알고리즘에서 위크 열에는 정상 열과는 다른 가중치를 제공하여 판정의 신뢰도를 높일 수 있다.
버퍼 메모리(1220)에는 호스트(1100)로부터 제공되는 쓰기 데이터 또는 불휘발성 메모리 장치(1230)로부터 읽혀진 데이터가 일시 저장된다. 호스트(1100)의 읽기 요청시에 불휘발성 메모리 장치(1230)에 존재하는 데이터가 캐시되어 있는 경우에는, 버퍼 메모리(1220)는 캐시된 데이터를 직접 호스트(1100)로 제공하는 캐시 기능을 지원한다. 일반적으로, 호스트(1100)의 버스 포맷(예를 들면, SATA 또는 SAS)에 의한 데이터 전송 속도는 SSD(1200)의 메모리 채널의 전송 속도보다 월등히 빠르다. 즉, 호스트(1100)의 인터페이스 속도가 월등히 높은 경우, 대용량의 버퍼 메모리(1220)를 제공함으로써 속도 차이로 발생하는 퍼포먼스 저하를 최소화할 수 있다.
버퍼 메모리(1220)는 대용량의 보조 기억 장치로 사용되는 SSD(1200)에서 충분한 버퍼링을 제공하기 위해 동기식 DRAM(Synchronous DRAM)으로 제공될 수 있다. 하지만, 버퍼 메모리(1220)가 여기의 개시에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
불휘발성 메모리 장치(1230)는 SSD(1200)의 저장 매체로서 제공된다. 예를 들면, 불휘발성 메모리 장치(1230)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)로 제공될 수 있다. 불휘발성 메모리 장치(1230)는 복수의 메모리 장치로 구성될 수 있다. 이 경우, 각각의 메모리 장치들은 채널 단위로 SSD 컨트롤러(1210)와 연결된다. 저장 매체로서 불휘발성 메모리 장치(1230)가 낸드 플래시 메모리를 예로 들어 설명되었으나, 또 다른 불휘발성 메모리 장치들로 구성될 수 있다. 예를 들면, 저장 매체로서 PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등이 사용될 수 있으며, 이종의 메모리 장치들이 혼용되는 메모리 시스템도 적용될 수 있다. 그리고 저장 매체로서 휘발성 메모리 장치(예를 들면, DRAM)이 포함될 수도 있다.
도 11은 본 발명의 실시 예에 따른 메모리 시스템(2000)을 간략히 보여주는 블록도이다. 도 11을 참조하면, 본 발명에 따른 메모리 시스템(2000)은 불휘발성 메모리 장치(2200)와 메모리 컨트롤러(2100)를 포함한다.
불휘발성 메모리 장치(2200)와 메모리 컨트롤러(2100)의 결합에 의해 메모리 카드 또는 반도체 디스크 장치(Solid State Disk: SSD)로 제공될 수 있을 것이다. SRAM(2110)은 프로세싱 유닛(2120)의 동작 메모리로 사용된다. 호스트 인터페이스(2130)는 메모리 시스템(2000)과 접속되는 호스트의 데이터 교환 프로토콜을 구비한다. 에러 정정 블록(2140)은 불휘발성 메모리 장치(2200)로부터 독출된 데이터에 포함되는 에러를 검출 및 정정한다. 메모리 인터페이스(2150)는 본 발명의 불휘발성 메모리 장치(2200)와 인터페이싱 한다. 프로세싱 유닛(2120)은 메모리 컨트롤러(2100)의 데이터 교환을 위한 제반 제어 동작을 수행한다.
비록 도면에는 도시되지 않았지만, 본 발명에 따른 메모리 시스템(2000)은 호스트(Host)와의 인터페이싱을 위한 코드 데이터를 저장하는 ROM(미도시됨) 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 불휘발성 메모리 장치(2200)는 복수의 플래시 메모리 칩들로 구성되는 멀티-칩 패키지로 제공될 수도 있다. 이상의 본 발명의 메모리 시스템(2000)은 에러의 발생 확률이 낮은 고신뢰성의 저장 매체로 제공될 수 있다. 특히, 최근 활발히 연구되고 있는 반도체 디스크 장치(Solid State Disk: 이하 SSD)와 같은 메모리 시스템에서 본 발명의 플래시 메모리 장치가 구비될 수 있다. 이 경우, 메모리 컨트롤러(2100)는 USB, MMC, PCI-E, SAS, ATA, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 것이다.
도 12에는 본 발명에 따른 불휘발성 메모리 장치(3120)를 포함한 컴퓨팅 시스템(3000)이 개략적으로 도시되어 있다. 본 발명에 따른 컴퓨팅 시스템(3000)은 시스템 버스(3600)에 전기적으로 연결된 마이크로프로세서(3200), 램(3300), 사용자 인터페이스(3400), 베이스밴드 칩셋(Baseband chipset)과 같은 모뎀(3500) 및 메모리 시스템(3100)을 포함한다. 메모리 시스템(3100)은 도 2에 도시된 것과 실질적으로 동일하게 구성될 것이다. 본 발명에 따른 컴퓨팅 시스템(3000)이 모바일 장치인 경우, 컴퓨팅 시스템(3000)의 동작 전압을 공급하기 위한 배터리(미도시됨)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템(3000)에는 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 메모리 시스템(3100)은, 예를 들면, 데이터를 저장하는 데 불휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다. 또는, 메모리 시스템(3100)은, 퓨전 플래시 메모리(예를 들면, 원낸드 플래시 메모리)로 제공될 수 있다.
본 발명에 따른 불휘발성 메모리 장치 그리고/또는 메모리 컨트롤러는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
Claims (10)
- 불휘발성 메모리 장치로부터 독출된 데이터의 처리 방법에 있어서:
상기 불휘발성 메모리 장치의 위크 열 정보를 제공받는 단계;
상기 데이터의 비트들 각각에 대한 확률을 계산하는 단계;
상기 데이터의 비트들 중 상기 위크 열 정보에 대응되는 비트들의 확률을 수정하는 단계; 그리고
상기 수정된 확률을 이용하여 에러 정정 연산을 수행하는 단계를 포함하는 처리 방법. - 제 1 항에 있어서,
상기 위크 열 정보는 상기 불휘발성 메모리 장치의 열들 중 백패턴 의존 문제가 존재하는 열, 또는 결함이 존재하는 열의 어드레스를 포함하는 처리 방법. - 제 1 항에 있어서,
상기 확률을 계산하는 단계에서, 상기 확률은 상기 데이터의 비트들 각각에 대한 가능도비(Likelihood Ratio: LR) 또는 로그-가능도비(Log-Likelihood Ratio: LLR)인 것을 특징으로 하는 처리 방법. - 제 1 항에 있어서,
상기 위크 열 정보에 대응되는 비트들의 확률을 수정하는 단계에서, 상기 위크 열 정보에 대응하는 비트들의 확률은 정상 비트들에 비하여 작은 크기로 조정되는 처리 방법. - 제 1 항에 있어서,
상기 에러 정정 연산을 수행하는 단계에서, 연판정 복호(Soft Decision Decoding)가 수행되는 처리 방법. - 불휘발성 메모리 장치로부터 독출된 데이터의 처리 방법에 있어서:
상기 불휘발성 메모리 장치의 위크 열 정보를 제공받는 단계;
상기 위크 열 정보를 참조하여 상기 데이터의 비트들 중 위크 열에 대응하는 비트를 이레이져(Erasure)로 지정하는 단계; 그리고
상기 이레이져로 지정된 비트가 포함되는 데이터를 이레이져 디코딩 방식에 따라 에러 정정 연산을 수행하는 단계를 포함하는 처리 방법. - 제 6 항에 있어서,
상기 이레이져로 지정하는 단계에서, 상기 위크 열 정보는 상기 이레이져의 위치 정보(Erasure location information)로 제공되는 처리 방법. - 제 6 항에 있어서,
상기 에러 정정 연산을 수행하는 단계는:
상기 이레이져가 포함된 데이터의 이레이져 비트에 논리 '0'을 대입하고 에러 정정 연산을 수행하는 제 1 디코딩 단계; 그리고
상기 이레이져가 포함된 데이터의 이레이져 비트에 논리 '1'을 대입하고 에러 정정 연산을 수행하는 제 2 디코딩 단계를 포함하는 처리 방법. - 제 8 항에 있어서,
상기 제 1 디코딩 단계와 상기 제 2 디코딩 단계 중 디코딩 성공(Decoding success)으로 처리되는 단계의 출력 데이터를 최종 읽기 데이터로 선택하는 단계를 더 포함하는 처리 방법. - 불휘발성 메모리 장치; 그리고
상기 불휘발성 메모리 장치로부터 제공되는 독출 데이터의 비트들 각각을 위크 열 정보를 참조하여 연판정 디코딩 방식으로 결정하되, 상기 연판정 디코딩 방식에서 상기 독출 데이터의 비트들 중 상기 위크 열 정보에 대응하는 비트에는 정상 비트와는 다른 가중치를 적용하는 메모리 컨트롤러를 포함하는 메모리 시스템.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100017293A KR101633048B1 (ko) | 2010-02-25 | 2010-02-25 | 메모리 시스템 및 그것의 데이터 처리 방법 |
US13/011,279 US8595601B2 (en) | 2010-02-25 | 2011-01-21 | Methods of performing error detection/correction in nonvolatile memory devices |
US14/089,361 US8839080B2 (en) | 2010-02-25 | 2013-11-25 | Methods of performing error detection/correction in nonvolatile memory devices |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100017293A KR101633048B1 (ko) | 2010-02-25 | 2010-02-25 | 메모리 시스템 및 그것의 데이터 처리 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110097446A true KR20110097446A (ko) | 2011-08-31 |
KR101633048B1 KR101633048B1 (ko) | 2016-06-24 |
Family
ID=44477495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100017293A KR101633048B1 (ko) | 2010-02-25 | 2010-02-25 | 메모리 시스템 및 그것의 데이터 처리 방법 |
Country Status (2)
Country | Link |
---|---|
US (2) | US8595601B2 (ko) |
KR (1) | KR101633048B1 (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140098702A (ko) * | 2013-01-31 | 2014-08-08 | 엘에스아이 코포레이션 | 선택적 이진 및 비-이진 디코딩을 이용한 플래시 메모리에서의 검출 및 디코딩 |
KR20140113190A (ko) * | 2013-03-15 | 2014-09-24 | 삼성전자주식회사 | 비휘발성 메모리 장치의 llr 최적화 방법 및 비휘발성 메모리 장치의 에러 정정 방법 |
KR101466555B1 (ko) * | 2010-03-12 | 2014-12-02 | 엘에스아이 코포레이션 | 플래시 메모리들을 위한 ldpc 소거 디코딩 |
KR20190035936A (ko) * | 2016-09-16 | 2019-04-03 | 마이크론 테크놀로지, 인크. | 전류 적분 감지를 이용하여 확률 정보를 생성하기 위한 장치 및 방법 |
Families Citing this family (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101539699B1 (ko) * | 2009-03-19 | 2015-07-27 | 삼성전자주식회사 | 3차원 구조의 비휘발성 메모리 소자 및 그 제조방법 |
KR101682666B1 (ko) | 2010-08-11 | 2016-12-07 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템 |
KR101856136B1 (ko) * | 2011-11-15 | 2018-06-21 | 삼성전자주식회사 | 비휘발성 메모리 장치의 동작 제어방법, 그 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
KR20130136271A (ko) | 2012-06-04 | 2013-12-12 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그것의 데이터 처리 방법 |
TWI594254B (zh) * | 2012-07-17 | 2017-08-01 | 慧榮科技股份有限公司 | 讀取快閃記憶體中區塊之資料的方法及相關的記憶裝置 |
US8856431B2 (en) | 2012-08-02 | 2014-10-07 | Lsi Corporation | Mixed granularity higher-level redundancy for non-volatile memory |
US9190174B2 (en) | 2012-11-30 | 2015-11-17 | Micron Technology, Inc. | Determining soft data from a hard read |
US9116822B2 (en) | 2012-12-07 | 2015-08-25 | Micron Technology, Inc. | Stopping criteria for layered iterative error correction |
US9065483B2 (en) | 2013-01-21 | 2015-06-23 | Micron Technology, Inc. | Determining soft data using a classification code |
US9229848B2 (en) | 2013-01-21 | 2016-01-05 | Micron Technology, Inc. | Determining soft data for fractional digit memory cells |
US9092353B1 (en) | 2013-01-29 | 2015-07-28 | Pmc-Sierra Us, Inc. | Apparatus and method based on LDPC codes for adjusting a correctable raw bit error rate limit in a memory system |
US9813080B1 (en) | 2013-03-05 | 2017-11-07 | Microsemi Solutions (U.S.), Inc. | Layer specific LDPC decoder |
US10230396B1 (en) | 2013-03-05 | 2019-03-12 | Microsemi Solutions (Us), Inc. | Method and apparatus for layer-specific LDPC decoding |
US9397701B1 (en) | 2013-03-11 | 2016-07-19 | Microsemi Storage Solutions (Us), Inc. | System and method for lifetime specific LDPC decoding |
US9367389B2 (en) | 2013-03-14 | 2016-06-14 | Seagate Technology Llc | Recovery strategy that reduces errors misidentified as reliable |
US9454414B2 (en) | 2013-03-15 | 2016-09-27 | Microsemi Storage Solutions (Us), Inc. | System and method for accumulating soft information in LDPC decoding |
US9450610B1 (en) | 2013-03-15 | 2016-09-20 | Microsemi Storage Solutions (Us), Inc. | High quality log likelihood ratios determined using two-index look-up table |
US9235488B2 (en) * | 2013-03-15 | 2016-01-12 | Pmc-Sierra Us, Inc. | System and method for random noise generation |
US9590656B2 (en) | 2013-03-15 | 2017-03-07 | Microsemi Storage Solutions (Us), Inc. | System and method for higher quality log likelihood ratios in LDPC decoding |
CN104103318B (zh) * | 2013-04-12 | 2019-11-05 | 三星电子株式会社 | 操作存储控制器的方法和包括存储控制器的数据存储设备 |
US9442670B2 (en) | 2013-09-03 | 2016-09-13 | Sandisk Technologies Llc | Method and system for rebalancing data stored in flash memory devices |
US9519577B2 (en) | 2013-09-03 | 2016-12-13 | Sandisk Technologies Llc | Method and system for migrating data between flash memory devices |
US9189333B2 (en) * | 2013-10-17 | 2015-11-17 | Seagate Technology Llc | Generating soft decoding information for flash memory error correction using hard decision patterns |
US9443616B2 (en) | 2014-04-02 | 2016-09-13 | Seagate Technology Llc | Bad memory unit detection in a solid state drive |
JP2015204126A (ja) | 2014-04-16 | 2015-11-16 | 株式会社東芝 | 半導体記憶装置 |
US9329935B2 (en) | 2014-05-19 | 2016-05-03 | Seagate Technology Llc | Method to dynamically update LLRs in an SSD drive and/or controller |
US8891303B1 (en) * | 2014-05-30 | 2014-11-18 | Sandisk Technologies Inc. | Method and system for dynamic word line based configuration of a three-dimensional memory device |
US9645749B2 (en) | 2014-05-30 | 2017-05-09 | Sandisk Technologies Llc | Method and system for recharacterizing the storage density of a memory device or a portion thereof |
US9417804B2 (en) | 2014-07-07 | 2016-08-16 | Microsemi Storage Solutions (Us), Inc. | System and method for memory block pool wear leveling |
US9582202B2 (en) | 2014-09-02 | 2017-02-28 | Sandisk Technologies Llc | Process and apparatus to reduce declared capacity of a storage device by moving data |
US9563370B2 (en) | 2014-09-02 | 2017-02-07 | Sandisk Technologies Llc | Triggering a process to reduce declared capacity of a storage device |
US9552166B2 (en) | 2014-09-02 | 2017-01-24 | Sandisk Technologies Llc. | Process and apparatus to reduce declared capacity of a storage device by deleting data |
US9582193B2 (en) | 2014-09-02 | 2017-02-28 | Sandisk Technologies Llc | Triggering a process to reduce declared capacity of a storage device in a multi-storage-device storage system |
US9582212B2 (en) | 2014-09-02 | 2017-02-28 | Sandisk Technologies Llc | Notification of trigger condition to reduce declared capacity of a storage device |
US9524112B2 (en) | 2014-09-02 | 2016-12-20 | Sandisk Technologies Llc | Process and apparatus to reduce declared capacity of a storage device by trimming |
US9652153B2 (en) | 2014-09-02 | 2017-05-16 | Sandisk Technologies Llc | Process and apparatus to reduce declared capacity of a storage device by reducing a count of logical addresses |
US9582220B2 (en) | 2014-09-02 | 2017-02-28 | Sandisk Technologies Llc | Notification of trigger condition to reduce declared capacity of a storage device in a multi-storage-device storage system |
US9665311B2 (en) | 2014-09-02 | 2017-05-30 | Sandisk Technologies Llc | Process and apparatus to reduce declared capacity of a storage device by making specific logical addresses unavailable |
US9582203B2 (en) | 2014-09-02 | 2017-02-28 | Sandisk Technologies Llc | Process and apparatus to reduce declared capacity of a storage device by reducing a range of logical addresses |
US9524105B2 (en) | 2014-09-02 | 2016-12-20 | Sandisk Technologies Llc | Process and apparatus to reduce declared capacity of a storage device by altering an encoding format |
US9563362B2 (en) | 2014-09-02 | 2017-02-07 | Sandisk Technologies Llc | Host system and process to reduce declared capacity of a storage device by trimming |
US9158681B1 (en) | 2014-09-02 | 2015-10-13 | Sandisk Technologies Inc. | Process and apparatus to reduce declared capacity of a storage device by conditionally trimming |
US9519427B2 (en) | 2014-09-02 | 2016-12-13 | Sandisk Technologies Llc | Triggering, at a host system, a process to reduce declared capacity of a storage device |
US9484089B2 (en) * | 2014-10-20 | 2016-11-01 | Sandisk Technologies Llc | Dual polarity read operation |
US9548130B2 (en) | 2015-04-08 | 2017-01-17 | Sandisk Technologies Llc | Non-volatile memory with prior state sensing |
US10332613B1 (en) | 2015-05-18 | 2019-06-25 | Microsemi Solutions (Us), Inc. | Nonvolatile memory system with retention monitor |
US9639282B2 (en) | 2015-05-20 | 2017-05-02 | Sandisk Technologies Llc | Variable bit encoding per NAND flash cell to improve device endurance and extend life of flash-based storage devices |
US9606737B2 (en) | 2015-05-20 | 2017-03-28 | Sandisk Technologies Llc | Variable bit encoding per NAND flash cell to extend life of flash-based storage devices and preserve over-provisioning |
US9799405B1 (en) | 2015-07-29 | 2017-10-24 | Ip Gem Group, Llc | Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction |
US10002042B2 (en) * | 2015-10-22 | 2018-06-19 | Sandisk Technologies Llc | Systems and methods of detecting errors during read operations and skipping word line portions |
US9946483B2 (en) | 2015-12-03 | 2018-04-17 | Sandisk Technologies Llc | Efficiently managing unmapped blocks to extend life of solid state drive with low over-provisioning |
US9946473B2 (en) | 2015-12-03 | 2018-04-17 | Sandisk Technologies Llc | Efficiently managing unmapped blocks to extend life of solid state drive |
US9886214B2 (en) | 2015-12-11 | 2018-02-06 | Ip Gem Group, Llc | Nonvolatile memory system with erase suspend circuit and method for erase suspend management |
US9892794B2 (en) | 2016-01-04 | 2018-02-13 | Ip Gem Group, Llc | Method and apparatus with program suspend using test mode |
US9899092B2 (en) | 2016-01-27 | 2018-02-20 | Ip Gem Group, Llc | Nonvolatile memory system with program step manager and method for program step management |
KR102673873B1 (ko) * | 2016-06-30 | 2024-06-10 | 삼성전자주식회사 | 데이터 복구 방법 및 이를 적용하는 메모리 시스템 및 레이드 스토리지 시스템 |
US10291263B2 (en) | 2016-07-28 | 2019-05-14 | Ip Gem Group, Llc | Auto-learning log likelihood ratio |
US10283215B2 (en) | 2016-07-28 | 2019-05-07 | Ip Gem Group, Llc | Nonvolatile memory system with background reference positioning and local reference positioning |
US10236915B2 (en) | 2016-07-29 | 2019-03-19 | Microsemi Solutions (U.S.), Inc. | Variable T BCH encoding |
KR102620562B1 (ko) * | 2016-08-04 | 2024-01-03 | 삼성전자주식회사 | 비휘발성 메모리 장치 |
US11017838B2 (en) | 2016-08-04 | 2021-05-25 | Samsung Electronics Co., Ltd. | Nonvolatile memory devices |
WO2018132074A1 (en) * | 2017-01-12 | 2018-07-19 | Agency For Science, Technology And Research | Memory device with soft-decision decoding and methods of reading and forming thereof |
US20190081640A1 (en) * | 2017-09-08 | 2019-03-14 | Intel Corporation | Faulty word line and faulty bit line information in error correcting coding |
KR102693836B1 (ko) * | 2018-06-12 | 2024-08-12 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
US10522238B1 (en) * | 2018-07-24 | 2019-12-31 | Targps Technology Corp. | Memory correcting method |
KR20200079811A (ko) * | 2018-12-26 | 2020-07-06 | 에스케이하이닉스 주식회사 | 오류 정정 장치, 이의 동작 방법 및 이를 이용하는 메모리 시스템 |
KR20210156563A (ko) * | 2020-06-18 | 2021-12-27 | 삼성전자주식회사 | 에러 체크 코드(ecc) 디코더 및 이를 포함하는 메모리 시스템 |
US11574697B2 (en) * | 2021-06-10 | 2023-02-07 | SK Hynix Inc. | Compression framework for log-likelihood ratio generation |
US11973516B2 (en) * | 2022-07-06 | 2024-04-30 | Innogrit Technologies Co., Ltd. | Soft decoding correctable page assisted LLR estimation |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005078721A (ja) * | 2003-09-01 | 2005-03-24 | Nippon Telegr & Teleph Corp <Ntt> | 誤り訂正方法およびメモリ回路 |
WO2008068747A2 (en) * | 2006-12-03 | 2008-06-12 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR960000681B1 (ko) | 1992-11-23 | 1996-01-11 | 삼성전자주식회사 | 반도체메모리장치 및 그 메모리쎌 어레이 배열방법 |
JP2856645B2 (ja) * | 1993-09-13 | 1999-02-10 | 株式会社東芝 | 半導体記憶装置 |
JP3181452B2 (ja) | 1993-11-26 | 2001-07-03 | 株式会社東芝 | 半導体ディスク装置 |
JP2000113606A (ja) | 1998-10-05 | 2000-04-21 | Internatl Business Mach Corp <Ibm> | データ記憶媒体からのリード・データ・エラーの訂正方法および装置 |
JP4319317B2 (ja) | 2000-03-02 | 2009-08-26 | 川崎マイクロエレクトロニクス株式会社 | 復号器 |
US6700827B2 (en) | 2001-02-08 | 2004-03-02 | Integrated Device Technology, Inc. | Cam circuit with error correction |
JP3984209B2 (ja) * | 2003-07-31 | 2007-10-03 | 株式会社東芝 | 半導体記憶装置 |
WO2008026203A2 (en) * | 2006-08-27 | 2008-03-06 | Anobit Technologies | Estimation of non-linear distortion in memory devices |
KR101466270B1 (ko) | 2008-09-19 | 2014-11-28 | 삼성전자주식회사 | 비휘발성 메모리 시스템 및 그것의 데이터 처리 방법 |
KR20100104623A (ko) | 2009-03-18 | 2010-09-29 | 삼성전자주식회사 | 데이터 처리 시스템 및 그것의 부호율 제어 스킴 |
-
2010
- 2010-02-25 KR KR1020100017293A patent/KR101633048B1/ko active IP Right Grant
-
2011
- 2011-01-21 US US13/011,279 patent/US8595601B2/en active Active
-
2013
- 2013-11-25 US US14/089,361 patent/US8839080B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005078721A (ja) * | 2003-09-01 | 2005-03-24 | Nippon Telegr & Teleph Corp <Ntt> | 誤り訂正方法およびメモリ回路 |
WO2008068747A2 (en) * | 2006-12-03 | 2008-06-12 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101466555B1 (ko) * | 2010-03-12 | 2014-12-02 | 엘에스아이 코포레이션 | 플래시 메모리들을 위한 ldpc 소거 디코딩 |
KR20140098702A (ko) * | 2013-01-31 | 2014-08-08 | 엘에스아이 코포레이션 | 선택적 이진 및 비-이진 디코딩을 이용한 플래시 메모리에서의 검출 및 디코딩 |
KR20140113190A (ko) * | 2013-03-15 | 2014-09-24 | 삼성전자주식회사 | 비휘발성 메모리 장치의 llr 최적화 방법 및 비휘발성 메모리 장치의 에러 정정 방법 |
KR20190035936A (ko) * | 2016-09-16 | 2019-04-03 | 마이크론 테크놀로지, 인크. | 전류 적분 감지를 이용하여 확률 정보를 생성하기 위한 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
US20110209031A1 (en) | 2011-08-25 |
US8595601B2 (en) | 2013-11-26 |
US20140082458A1 (en) | 2014-03-20 |
US8839080B2 (en) | 2014-09-16 |
KR101633048B1 (ko) | 2016-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101633048B1 (ko) | 메모리 시스템 및 그것의 데이터 처리 방법 | |
US8621266B2 (en) | Nonvolatile memory system and related method of performing erase refresh operation | |
US9647695B2 (en) | Memory controllers and flash memory reading methods | |
US8503237B1 (en) | System and method for data recovery in a solid state storage device | |
TWI679649B (zh) | 記憶體系統及其操作方法 | |
KR101618311B1 (ko) | 플래시 메모리 장치 및 그것의 읽기 방법 | |
KR100837282B1 (ko) | 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템,그것의 프로그램 방법 및 읽기 방법 | |
CN107015886B (zh) | 操作存储设备的方法和操作包括其的数据处理系统的方法 | |
JP5473264B2 (ja) | 変更された読み出し電圧を用いるマルチレベルセルを含む不揮発性メモリ装置及びシステム、並びにその動作方法 | |
TWI459391B (zh) | Memory system | |
KR102050896B1 (ko) | 메모리 컨트롤러 및 그것의 동작 방법 | |
US10043575B2 (en) | Memory system with read threshold estimation and operating method thereof | |
KR101716716B1 (ko) | 플래그 셀들을 갖는 플래시 메모리 장치 및 그것의 프로그램 동작 방법 | |
KR102671727B1 (ko) | 메모리 시스템 및 그것의 동작방법 | |
TW201435899A (zh) | 使用於非揮發性記憶體元件之對數槪似比率(llr)最佳化和修正非揮發性記憶體元件之錯誤的方法 | |
US8631306B2 (en) | Method and memory system using a priori probability information to read stored data | |
KR20090066732A (ko) | 반도체 메모리 장치 및 그것의 읽기 페일 분석 방법 | |
KR20140031556A (ko) | 플래시 메모리를 포함하는 플래시 메모리 시스템 및 그것의 비정상 워드 라인 검출 방법 | |
KR101967368B1 (ko) | 반도체 메모리 장치 및 이의 동작 방법 | |
US11119697B2 (en) | Read voltage management based on write-to-read time difference | |
JP7353889B2 (ja) | メモリシステムおよび方法 | |
US12072762B2 (en) | Error-handling management during copyback operations in memory devices | |
CN111858390A (zh) | 存储器系统和操作存储器系统的方法 | |
US20220165338A1 (en) | Controller and operation method thereof | |
CN113409854A (zh) | 数据存储装置及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |