KR101941270B1 - 멀티-레벨 메모리 장치를 제어하는 메모리 제어기 및 그것의 에러 정정 방법 - Google Patents
멀티-레벨 메모리 장치를 제어하는 메모리 제어기 및 그것의 에러 정정 방법 Download PDFInfo
- Publication number
- KR101941270B1 KR101941270B1 KR1020120000589A KR20120000589A KR101941270B1 KR 101941270 B1 KR101941270 B1 KR 101941270B1 KR 1020120000589 A KR1020120000589 A KR 1020120000589A KR 20120000589 A KR20120000589 A KR 20120000589A KR 101941270 B1 KR101941270 B1 KR 101941270B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- error
- memory device
- read
- error correction
- 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/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
-
- 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
-
- 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
-
- 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
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
-
- 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/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting 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)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
여기에는 불 휘발성 메모리 장치를 제어하는 메모리 제어기의 에러 정정 방법이 제공된다. 에러 정정 방법은 상기 불 휘발성 메모리 장치로부터 읽혀진 제 1 데이터가 에러 정정 가능한 지의 여부를 판별하고; 상기 제 1 데이터가 에러 정정 가능하지 않은 경우, 제 2 데이터를 상기 불 휘발성 메모리 장치로부터 읽고; 상기 제 2 데이터의 에러 정보 및 상기 읽기 요청된 데이터의 에러 정보에 의거하여 상기 제 1 데이터의 에러를 정정하는 것을 포함한다.
Description
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 멀티-레벨 메모리 장치를 제어하는 제어기 및 그것의 에러 정정 방법에 관한 것이다.
반도체 메모리는, 일반적으로, 위성에서 소비자 전자 기술까지의 범위에 속하는 마이크로프로세서를 기반으로 한 응용 및 컴퓨터와 같은 디지털 로직 설계의 가장 필수적인 마이크로 전자 소자이다. 그러므로, 높은 집적도 및 빠른 속도를 위한 축소 (scaling)를 통해 얻어지는 프로세스 향상 및 기술 개발을 포함한 반도체 메모리의 제조 기술의 진보는 다른 디지털 로직 계열의 성능 기준을 확립하는 데 도움이 된다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치와 불 휘발성 반도체 메모리 장치로 나뉘어진다. 휘발성 반도체 메모리 장치에 있어서, 로직 정보는 스태틱 랜덤 액세스 메모리의 경우 쌍안정 플립-플롭의 로직 상태를 설정함으로써 또는 다이나믹 랜덤 액세스 메모리의 경우 커패시터의 충전을 통해 저장된다. 휘발성 반도체 메모리 장치의 경우, 전원이 인가되는 동안 데이터가 저장되고 읽혀지며, 전원이 차단될 때 데이터는 소실된다.
MROM, PROM, EPROM, EEPROM 등과 같은 불 휘발성 반도체 메모리 장치는 전원이 차단되어도 데이터를 저장할 수 있다. 불 휘발성 메모리 데이터 저장 상태는 사용되는 제조 기술에 따라 영구적이거나 재프로그램 가능하다. 불 휘발성 반도체 메모리 장치는 컴퓨터, 항공 전자 공학, 통신, 그리고 소비자 전자 기술 산업과 같은 넓은 범위의 응용에서 프로그램 및 마이크로코드의 저장을 위해서 사용된다. 단일 칩에서 휘발성 및 불 휘발성 메모리 저장 모드들의 조합이 빠르고 재프로그램 가능한 불 휘발성 메모리를 요구하는 시스템에서 불 휘발성 RAM (nvRAM)과 같은 장치들에서 또한 사용 가능하다. 게다가, 응용 지향 업무를 위한 성능을 최적화시키기 위해 몇몇 추가적인 로직 회로를 포함하는 특정 메모리 구조가 개발되어 오고 있다.
불 휘발성 반도체 메모리 장치에 있어서, MROM, PROM 및 EPROM은 시스템 자체적으로 소거 및 쓰기가 자유롭지 않아서 일반 사용자들이 기억 내용을 새롭게 하기가 용이하지 않다. 이에 반해 EEPROM은 전기적으로 소거 및 쓰기가 가능하므로 계속적인 갱신이 필요한 시스템 프로그래밍(system programming)이나 보조 기억 장치로의 응용이 확대되고 있다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치와 불 휘발성 반도체 메모리 장치로 나뉘어진다. 휘발성 반도체 메모리 장치에 있어서, 로직 정보는 스태틱 랜덤 액세스 메모리의 경우 쌍안정 플립-플롭의 로직 상태를 설정함으로써 또는 다이나믹 랜덤 액세스 메모리의 경우 커패시터의 충전을 통해 저장된다. 휘발성 반도체 메모리 장치의 경우, 전원이 인가되는 동안 데이터가 저장되고 읽혀지며, 전원이 차단될 때 데이터는 소실된다.
MROM, PROM, EPROM, EEPROM 등과 같은 불 휘발성 반도체 메모리 장치는 전원이 차단되어도 데이터를 저장할 수 있다. 불 휘발성 메모리 데이터 저장 상태는 사용되는 제조 기술에 따라 영구적이거나 재프로그램 가능하다. 불 휘발성 반도체 메모리 장치는 컴퓨터, 항공 전자 공학, 통신, 그리고 소비자 전자 기술 산업과 같은 넓은 범위의 응용에서 프로그램 및 마이크로코드의 저장을 위해서 사용된다. 단일 칩에서 휘발성 및 불 휘발성 메모리 저장 모드들의 조합이 빠르고 재프로그램 가능한 불 휘발성 메모리를 요구하는 시스템에서 불 휘발성 RAM (nvRAM)과 같은 장치들에서 또한 사용 가능하다. 게다가, 응용 지향 업무를 위한 성능을 최적화시키기 위해 몇몇 추가적인 로직 회로를 포함하는 특정 메모리 구조가 개발되어 오고 있다.
불 휘발성 반도체 메모리 장치에 있어서, MROM, PROM 및 EPROM은 시스템 자체적으로 소거 및 쓰기가 자유롭지 않아서 일반 사용자들이 기억 내용을 새롭게 하기가 용이하지 않다. 이에 반해 EEPROM은 전기적으로 소거 및 쓰기가 가능하므로 계속적인 갱신이 필요한 시스템 프로그래밍(system programming)이나 보조 기억 장치로의 응용이 확대되고 있다.
본 발명의 목적은 에러 정정 능력의 향상없이 신뢰성을 향상시킬 수 있는 기법을 제공하는 것이다.
본 발명의 예시적인 실시예들은 불 휘발성 메모리 장치를 제어하는 메모리 제어기의 에러 정정 방법을 제공하며, 상기 에러 정정 방법은 상기 불 휘발성 메모리 장치로부터 읽혀진 제 1 데이터가 에러 정정 가능한 지의 여부를 판별하고; 상기 제 1 데이터가 에러 정정 가능하지 않은 경우, 제 2 데이터를 상기 불 휘발성 메모리 장치로부터 읽고; 상기 제 2 데이터의 에러 정보 및 상기 제 1 데이터의 에러 정보에 의거하여 상기 제 1 데이터의 에러를 정정하는 것을 포함한다.
예시적인 실시예에 있어서, 상기 제 2 데이터는 상기 제 1 데이터와 동일한 워드 라인에 연결된 메모리 셀들로부터 읽혀진다.
예시적인 실시예에 있어서, 상기 불 휘발성 메모리 장치는 셀 당 2-비트 데이터를 저장하도록 구성된다.
예시적인 실시예에 있어서, 상기 불 휘발성 메모리 장치는 셀 당 M-비트 데이터 (M은 3 또는 그 보다 큰 정수)를 저장하도록 구성된다.
예시적인 실시예에 있어서, 상기 제 2 데이터는 상기 제 1 데이터와 동일한 워드 라인에 연결된 메모리 셀들에 저장되고 상기 제 1 데이터와 다른 페이지 데이터 중 일부 또는 모두이다.
예시적인 실시예에 있어서, 상기 제 2 데이터는 상기 제 1 데이터와 동일한 워드 라인에 저장되고, 상기 제 1 데이터 및 상기 제 2 데이터는 상기 동일한 워드 라인에 연결된 메모리 셀들에 저장되는 상위 페이지 데이터 및 하위 페이지 데이터이다.
예시적인 실시예에 있어서, 상기 제 1 데이터의 에러를 정정하는 것은 상기 제 2 데이터의 에러 정보 및 상기 제 1 데이터의 에러 정보에 의거하여 상기 제 1 데이터의 비트들 중 일부에 대해 비트 플립 동작을 수행하고; 그리고 상기 비트 플립 동작 이후 상기 제 1 데이터의 에러를 정정하는 것을 포함하며, 상기 비트 플립 동작은 상기 제 1 데이터의 에러 비트들 중 상기 제 2 데이터의 에러 비트들과 상기 불 휘발성 메모리 장치 내의 동일한 셀들에 저장된 비트들의 값들을 반전시킴으로써 행해진다.
예시적인 실시예에 있어서, 상기 비트 플립 동작을 통해 반전된 상기 제 1 데이터 비트들은 문턱 전압들이 플로팅 게이트 커플링으로 인해 또는 디스터브로 인해 문턱 전압이 높아진, 소거 상태를 갖는, 셀에 저장된 비트이다.
예시적인 실시예에 있어서, 상기 에러 정정 방법은 상기 비트 플립 동작 이후 행해지는 상기 제 1 데이터의 에러 정정 동작의 결과가 에러 정정 가능하지 않은 것으로 판별되는 경우, 읽기 재시도 동작을 수행하는 것을 더 포함한다.
예시적인 실시예에 있어서, 상기 비트 플립 동작은 상기 메모리 제어기 내에서 또는 상기 메모리 제어기의 제어하에 상기 불 휘발성 메모리 장치 내에서 행해진다.
예시적인 실시예에 있어서, 상기 제 2 데이터는 상기 제 1 데이터와 동일한 워드 라인에 연결된 메모리 셀들로부터 읽혀진다.
예시적인 실시예에 있어서, 상기 불 휘발성 메모리 장치는 셀 당 2-비트 데이터를 저장하도록 구성된다.
예시적인 실시예에 있어서, 상기 불 휘발성 메모리 장치는 셀 당 M-비트 데이터 (M은 3 또는 그 보다 큰 정수)를 저장하도록 구성된다.
예시적인 실시예에 있어서, 상기 제 2 데이터는 상기 제 1 데이터와 동일한 워드 라인에 연결된 메모리 셀들에 저장되고 상기 제 1 데이터와 다른 페이지 데이터 중 일부 또는 모두이다.
예시적인 실시예에 있어서, 상기 제 2 데이터는 상기 제 1 데이터와 동일한 워드 라인에 저장되고, 상기 제 1 데이터 및 상기 제 2 데이터는 상기 동일한 워드 라인에 연결된 메모리 셀들에 저장되는 상위 페이지 데이터 및 하위 페이지 데이터이다.
예시적인 실시예에 있어서, 상기 제 1 데이터의 에러를 정정하는 것은 상기 제 2 데이터의 에러 정보 및 상기 제 1 데이터의 에러 정보에 의거하여 상기 제 1 데이터의 비트들 중 일부에 대해 비트 플립 동작을 수행하고; 그리고 상기 비트 플립 동작 이후 상기 제 1 데이터의 에러를 정정하는 것을 포함하며, 상기 비트 플립 동작은 상기 제 1 데이터의 에러 비트들 중 상기 제 2 데이터의 에러 비트들과 상기 불 휘발성 메모리 장치 내의 동일한 셀들에 저장된 비트들의 값들을 반전시킴으로써 행해진다.
예시적인 실시예에 있어서, 상기 비트 플립 동작을 통해 반전된 상기 제 1 데이터 비트들은 문턱 전압들이 플로팅 게이트 커플링으로 인해 또는 디스터브로 인해 문턱 전압이 높아진, 소거 상태를 갖는, 셀에 저장된 비트이다.
예시적인 실시예에 있어서, 상기 에러 정정 방법은 상기 비트 플립 동작 이후 행해지는 상기 제 1 데이터의 에러 정정 동작의 결과가 에러 정정 가능하지 않은 것으로 판별되는 경우, 읽기 재시도 동작을 수행하는 것을 더 포함한다.
예시적인 실시예에 있어서, 상기 비트 플립 동작은 상기 메모리 제어기 내에서 또는 상기 메모리 제어기의 제어하에 상기 불 휘발성 메모리 장치 내에서 행해진다.
본 발명의 예시적인 실시예들에 의하면, 정정 회로의 하드웨어 변화없이 에러 정정 능력을 확장하는 것이 가능하다. 즉, 불 휘발성 메모리 장치의 신뢰성을 개선하는 것이 가능하다.
도 1a 내지 도 1c는 페일 비트를 야기하는 다양한 원인들을 설명하기 위한 도면들이다.
도 2는 본 발명의 실시예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 3은 도 2에 도시된 불 휘발성 메모리 장치를 개략적으로 보여주는 블록도이다.
도 4는 도 2에 도시된 메모리 제어기를 개략적으로 보여주는 블록도이다.
도 5는 본 발명의 예시적인 실시예에 따른 메모리 시스템의 동작 방법을 개략적으로 설명하기 위한 흐름도이다.
도 6은 도 5를 참조하여 설명된 데이터 정정 방식에 따른 데이터의 변화의 일예를 설명하기 위한 도면이다.
도 7은 도 5를 참조하여 설명된 데이터 정정 방식에 따른 데이터의 변화의 다른 예를 설명하기 위한 도면이다.
도 8은 본 발명의 다른 예시적인 실시예에 따른 메모리 시스템의 동작 방법을 개략적으로 설명하기 위한 흐름도이다.
도 9는 본 발명의 실시예에 따른 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
도 10은 본 발명의 실시예에 따른 반도체 드라이브를 개략적으로 보여주는 블록도이다.
도 11은 도 10에 도시된 반도체 드라이브를 이용한 스토리지를 개략적으로 보여주는 블록도이다.
도 12는 도 10에 도시된 반도체 드라이브를 이용한 스트리지 서버를 개략적으로 보여주는 블록도이다.
도 13은 본 발명의 실시예에 따른 데이터 저장 장치가 적용되는 시스템을 개략적으로 보여주는 도면이다.
도 14는 본 발명의 실시예에 따른 메모리 카드(memory card)를 개략적으로 보여주는 블록도이다.
도 15는 본 발명의 실시예에 따른 디지털 스틸 카메라(digital still camera)를 개략적으로 보여주는 블록도이다.
도 16은 도 14의 메모리 카드가 사용되는 다양한 시스템을 설명하는 예시적 도면이다.
도 2는 본 발명의 실시예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 3은 도 2에 도시된 불 휘발성 메모리 장치를 개략적으로 보여주는 블록도이다.
도 4는 도 2에 도시된 메모리 제어기를 개략적으로 보여주는 블록도이다.
도 5는 본 발명의 예시적인 실시예에 따른 메모리 시스템의 동작 방법을 개략적으로 설명하기 위한 흐름도이다.
도 6은 도 5를 참조하여 설명된 데이터 정정 방식에 따른 데이터의 변화의 일예를 설명하기 위한 도면이다.
도 7은 도 5를 참조하여 설명된 데이터 정정 방식에 따른 데이터의 변화의 다른 예를 설명하기 위한 도면이다.
도 8은 본 발명의 다른 예시적인 실시예에 따른 메모리 시스템의 동작 방법을 개략적으로 설명하기 위한 흐름도이다.
도 9는 본 발명의 실시예에 따른 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
도 10은 본 발명의 실시예에 따른 반도체 드라이브를 개략적으로 보여주는 블록도이다.
도 11은 도 10에 도시된 반도체 드라이브를 이용한 스토리지를 개략적으로 보여주는 블록도이다.
도 12는 도 10에 도시된 반도체 드라이브를 이용한 스트리지 서버를 개략적으로 보여주는 블록도이다.
도 13은 본 발명의 실시예에 따른 데이터 저장 장치가 적용되는 시스템을 개략적으로 보여주는 도면이다.
도 14는 본 발명의 실시예에 따른 메모리 카드(memory card)를 개략적으로 보여주는 블록도이다.
도 15는 본 발명의 실시예에 따른 디지털 스틸 카메라(digital still camera)를 개략적으로 보여주는 블록도이다.
도 16은 도 14의 메모리 카드가 사용되는 다양한 시스템을 설명하는 예시적 도면이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 또한 명세서 전체에 걸쳐서 동일한 참조번호로 표시된 부분들은 동일한 구성요소를 나타낸다.
본 명세서에서 ‘및/또는’이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, ‘연결되는/결합되는’이란 표현은 다른 구성요소와 직접적으로 연결되거나 다른 구성요소를 통해 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 ‘포함한다’ 또는 ‘포함하는’으로 언급된 구성요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작, 소자 및 장치의 존재 또는 추가를 의미한다.
도 1a 내지 도 1c는 페일 비트를 야기하는 다양한 원인들을 설명하기 위한 도면들이다.
불 휘발성 메모리 장치는 플로팅 게이트, 전하 트랩층, 등과 같은 전하 저장 수단을 갖는 메모리 셀을 이용하여 정보를 저장한다. 하지만, 메모리 셀의 전하 저장 수단이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 전하 저장 수단에 저장되는 전하들의 양에 따라 메모리 셀의 문턱 전압이 변화된다. 하나의 메모리 셀에 1-비트 데이터가 저장되는 경우, 소거 상태 및 프로그램 상태에 각각 대응하는 2개의 문턱 전압 분포들이 형성될 것이다. 2-비트 데이터가 하나의 메모리 셀에 저장되는 경우, 소거 상태 및 3개의 프로그래 상태들에 각각 대응하는 4개의 문턱 전압 분포들이 형성될 것이다. 3-비트 데이터가 하나의 메모리 셀에 저장되는 경우, 소거 상태 및 7개의 프로그래 상태들에 각각 대응하는 8개의 문턱 전압 분포들이 형성될 것이다. 저장된 데이터 비트들의 수에 따라 결정되는 문턱 전압 산포들은 다양한 원인들(예를 들면, 전하 손실, 디스터번스, 등)로 인해서 변화될 것이다.
초기 문턱 전압 산포들의 변화를 초래하는 전하 손실은, 도 1a를 참조하면, 문턱 전압 산포들(실선으로 도시됨)이 점선으로 도시된 바와 같이 낮은 문턱 전압 방향으로 이동되게 한다. 특히, 프로그램 상태들(P2, P3)에 각각 대응하는 문턱 전압 산포들이 읽기 전압들 이하로 낮아지는 경우, 페일 비트들(또는, 에러 비트들로 검출되는 비트들)의 수가 증가하게 된다. 초기 문턱 전압 산포들의 변화를 초래하는 디스터번스는, 도 1b를 참조하면, 문턱 전압 산포(예를 들면, 소거 상태(E)에 대응하는 문턱 전압 산포)가 점선으로 도시된 바와 같이 높은 문턱 전압 방향으로 이동되게 한다. 문턱 전압 산포의 변화는, 예를 들면, 읽기 동작들의 반복, 프로그램 동작시 생기는 워드라인 및 비트 라인 커플링, 등과 같은 디스터번스들로 인해 생긴다. 특히, 소거 상태(E)에 대응하는 문턱 전압 산포의 변화는 공정이 미세화됨에 따라 더욱 심화되고 있다. 소거 상태의 문턱 전압 산포가 프로그램 상태(예를 들면, P1)의 문턱 전압 산포와 겹쳐짐에 따라, 페일 비트들의 수가 증가하게 된다. 마찬가지로, 도 1c를 참조하면, 셀 당 3-비트 데이터를 저장하는 불 휘발성 메모리 장치의 경우, 소거 상태의 문턱 전압 산포가 프로그램 상태들(예를 들면, P1, P2, P3, P4)의 문턱 전압 산포들과 겹쳐짐에 따라, 페일 비트들의 수가 더욱 증가하게 된다.
일반적으로, 디스터번스 그리고/또는 전하 손실로 인해 발생하는 페일 비트들은 불 휘발성 메모리 장치의 신뢰성 저하의 주요 원인이 되고 있다. 신뢰성 저하는 잘 알려진 에러 정정 회로를 이용하여 보상될 수 있다. 에러 정정 회로는 프로그램 동작시 불 휘발성 메모리 장치에 저장될 데이터에 패리티 정보를 부가하고, 읽기 동작시 관련된 패리티 정보에 의거하여 불 휘발성 메모리 장치로부터 읽혀진 데이터의 에러를 정정한다. 패리티 정보의 크기에 따라 정정 가능한 에러 비트들의 수가 결정될 것이다. 다시 말해서, 에러 비트들은 정해진 에러 정정 능력 내에서 정정될 것이다. 만약 에러 비트들의 수가 에러 정정 능력을 벗어나면, 읽혀진 데이터를 사용하는 것이 어렵다. 패리티 크기의 증가, 복잡한 ECC 엔진의 사용, 등을 통해 에러 정정 능력을 키움으로써 정정 가능한 에러 비트들의 수는 증가될 것이다.
본 발명의 경우, 하지만, 동일한 에러 정정 능력을 이용하여 에러 정정 능력을 벗어난 데이터의 에러를 정정하는 것이 가능하다. 이후 상세히 설명된 바와 같이, 에러 정정 능력을 벗어난 데이터의 에러는 에러 정정 능력을 벗어난 데이터와 관련된 데이터의 패리티 정보를 이용하여 정정될 것이다. 여기서, 에러 정정 능력을 벗어난 데이터 및 에러 정정 능력을 벗어난 데이터와 관련된 데이터는 상이한 페이지 데이터이며, 관련된 물리적인 위치(예를 들면, 동일한 워드 라인에 연결된 메모리 셀들 또는 동일한 메모리 셀들)에 저장될 것이다. 따라서, 에러 정정 능력을 벗어난 데이터와 관련된 데이터의 패리티 정보를 이용함으로써 에러 정정 회로의 하드웨어 변화없이 에러 정정 능력을 확장하는 것이 가능하다. 즉, 불 휘발성 메모리 장치의 신뢰성을 개선하는 것이 가능하다.
도 2는 본 발명의 실시예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 2를 참조하면, 본 발명의 실시예에 따른 메모리 시스템(1000)은 메모리 제어기(1200)와 불 휘발성 메모리 장치(1400)를 포함한다. 메모리 제어기(1200)는 외부(예를 들면, 호스트)로부터의 요청(예를 들면, 쓰기 요청, 읽기 요청, 등)에 응답하여 불 휘발성 메모리 장치(1400)를 제어한다. 메모리 제어기(1200)는 외부 요청없이 내부적인 요청(예를 들면, 서든 파워-오프와 관련된 동작, 배경 동작, 등)에 따라 불 휘발성 메모리 장치(1400)를 제어한다. 불 휘발성 메모리 장치(1400)는 메모리 제어기(1200)의 제어에 응답하여 동작하며, 데이터 정보를 저장하는 일종의 저장 매체로서 사용된다. 저장 매체는 하나 또는 그 보다 많은 메모리 칩들로 구성될 수 있다. 불 휘발성 메모리 장치(1400)와 메모리 제어기(1200)는 하나 또는 그 보다 많은 채널들을 통해 통신한다. 불 휘발성 메모리 장치(1400)는, 예를 들면, 낸드 플래시 메모리 장치를 포함한다.
메모리 제어기(1200)는 에러 정정 회로(1250)를 포함한다. 에러 정정 회로(1250)는 불 휘발성 메모리 장치(1400)에 저장될 데이터를 부호화하도록 구성된다. 예를 들면, 에러 정정 회로(1250)는 불 휘발성 메모리 장치(1400)에 저장될 프로그램 데이터에 의거하여 ECC 패리티를 생성하도록 구성된다. ECC 패리티는 프로그램 데이터와 함께 불 휘발성 메모리 장치(1400)의 선택된 워드 라인의 메모리 셀들에 저장될 것이다. 에러 정정 회로(1250)는 관련된 ECC 패리티에 의거하여 불 휘발성 메모리 장치(1400)로부터 읽혀진 데이터의 에러를 정정하도록 구성된다. 예시적인 실시예에 있어서, 에러 정정 회로(1250)는 읽혀진 데이터에 포함된 에러 비티들의 위치들을 검출할 것이다. 검출된 위치 정보(또는, 특성 정보라 칭함)는 메모리 제어기(1200) 내에 임시 저장될 것이다.
읽혀진 데이터가 에러 정정 회로(1250)에 의해서 정정 가능하지 않은 경우, 예를 들면, 메모리 제어기(1200)는 정정 불가능한 데이터와 동일한 물리적인 위치에 저장된 데이터의 에러 위치 정보에 의거하여 정정 불가능한 데이터의 에러 비트들 중 일부를 정정할 것이다. 에러 위치 정보에 의거하여 부분적으로 정정된 데이터의 에러 비트들의 수가 정정 가능한 범위 내에 포함될 때, 부분적으로 정정된 데이터는 대응하는 ECC 패리티에 의거하여 에러 정정 회로(1250)에 의해서 정정될 것이다. 결과적으로, 에러 정정 회로(1250)의 에러 정정 능력을 확장하지 않고 에러 정정 능력을 벗어난 데이터의 에러를 정정하는 것이 가능하다. 이는 이후 상세히 설명될 것이다.
도 3은 도 2에 도시된 불 휘발성 메모리 장치를 개략적으로 보여주는 블록도이다.
불 휘발성 메모리 장치(1400)는, 예를 들면, 낸드 플래시 메모리 장치일 것이다. 하지만, 본 발명이 낸드 플래시 메모리 장치에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 불 휘발성 메모리 장치(1400)는 노아 플래시 메모리 장치, 저항성 램(Resistive Random Access Memory: RRAM) 장치, 상변화 메모리(Phase-Change Memory: PRAM) 장치, 자기저항 메모리(Magnetoresistive Random Access Memory: MRAM) 장치, 강유전체 메모리(Ferroelectric Random Access Memory: FRAM) 장치, 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM), 또는 그와 같은 것으로 구성될 수 있다. 또한, 본 발명의 불 휘발성 메모리 장치(1400)는 3차원 어레이 구조를 갖도록 구현될 수 있다. 3차원 어레이 구조를 갖는 불 휘발성 메모리 장치는 수직 낸드 플래시 메모리 장치라 불린다. 본 발명은 전하 저장층이 전도성 부유 게이트로 구성된 플래시 메모리 장치 뿐만 아니라, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(Charge Trap Flash, "CTF"라 불림) 메모리 장치에도 모두 적용 가능하다.
도 3을 참조하면, 불 휘발성 메모리 장치(1400)는 메모리 셀 어레이(1410), 어드레스 디코더(1420), 전압 발생기(1430), 제어 로직(1440), 페이지 버퍼 회로(1450), 그리고 입출력 인터페이스(1460)를 포함한다.
메모리 셀 어레이(1410)는 행들(예를 들면, 워드 라인들)과 열들(예를 들면, 비트 라인들)의 교차 영역들에 배열된 메모리 셀들을 포함할 것이다. 메모리 셀들 각각은 1-비트 데이터 또는 멀티-비트 데이터를 저장할 것이다. 어드레스 디코더(1420)는 제어 로직(1440)에 의해서 제어되며, 메모리 셀 어레이(1410)의 행들(예를 들면, 워드 라인들, 스트링 선택 라인(들), 접지 선택 라인(들), 공통 소오스 라인, 등)의 선택 및 구동을 행한다. 전압 발생기(1430)는 제어 로직(1440)에 의해서 제어되며, 각 동작에 필요한 전압들(예를 들면, 고전압, 프로그램 전압, 읽기 전압, 검증 전압, 소거 전압, 패스 전압, 벌크 전압, 등)을 발생한다. 전압 발생기(1430)에 의해서 생성된 전압들은 어드레스 디코더(1420)를 통해 메모리 셀 어레이(1410)에 제공된다. 제어 로직(1440)은 불 휘발성 메모리 장치(1400)의 전반적인 동작을 제어하도록 구성된다.
페이지 버퍼 회로(1450)는 제어 로직(1440)에 의해서 제어되며, 메모리 셀 어레이(1410)로부터 데이터를 읽도록 또는 프로그램 데이터에 따라 메모리 셀 어레이(1410)의 열들(예를 들면, 비트 라인들)을 구동하도록 구성된다. 페이지 버퍼 회로(1450)는 비트 라인들 또는 비트 라인 쌍들에 각각 대응하는 복수의 페이지 버퍼들로 구성될 것이다. 페이지 버퍼들 각각은 복수의 래치들을 포함한다. 입출력 인터페이스(1460)는 제어 로직(1440)에 의해서 제어되며, 외부(예를 들면, 도 2의 메모리 제어기)와 인터페이스하도록 구성된다. 비록 도면에는 도시되지 않았지만, 입출력 인터페이스(1460)는 페이지 버퍼들을 선택하기 위한 열 선택기, 데이터를 입력받는 입력 버퍼, 데이터를 출력하는 출력 버퍼, 그리고 그와 같은 것을 포함할 것이다.
도 4는 도 2에 도시된 메모리 제어기를 개략적으로 보여주는 블록도이다. 도 4를 참조하면, 메모리 제어기(1200)는 제 1 인터페이스로서 호스트 인터페이스(1210), 제 2 인터페이스로서 메모리 인터페이스(1220), 중앙 처리 장치(1230), 버퍼 메모리(1240), 그리고 ECC 회로(1250)를 포함한다.
호스트 인터페이스(1210)는 외부(또는, 호스트)와 인터페이스하도록 구성된다. 메모리 인터페이스(1220)는 도 2에 도시된 불 휘발성 메모리 장치(1400)와 인터페이스하도록 구성된다. CPU(1230)는 메모리 제어기(1200)의 전반적인 동작을 제어하도록 구성된다. 예를 들면, CPU(1230)는 플래시 변환 계층(Flash Translation Layer: FTL)과 같은 펌웨어를 운용하도록 구성된다. 버퍼 메모리(1240)는 호스트 인터페이스(1210)를 통해 외부로 전달되는 데이터를 임시 저장하는 데 사용된다. 버퍼 메모리(1240)는 메모리 인터페이스(1220)를 통해 불 휘발성 메모리 장치(1400)로부터 전달되는 데이터를 임시 저장하는 데 사용된다. 버퍼 메모리(1240)는 불 휘발성 메모리 장치(1400)를 제어하는 데 필요한 정보(예를 들면, 맵핑 정보)를 저장하는 데 사용된다. ECC 회로(1250)는 불 휘발성 메모리 장치(1400)에 저장될 데이터를 부호화하도록 그리고 불 휘발성 메모리 장치(1400)로부터 읽혀진 데이터를 복호화하도록 구성될 것이다.
예시적인 실시예에 있어서, 메모리 제어기(1200)는, 비록 도면에는 도시되지 않았지만, 불 휘발성 메모리 장치(1400)에 저장될 데이터를 랜덤화하도록 그리고 불 휘발성 메모리 장치(1400)로부터 읽혀진 데이터를 디-랜덤화하도록 구성된 랜덤화기를 더 포함할 것이다. 랜덤화기의 일예가 미국특허공개번호 제2010/0088574호에 "DATA STORAGE SYSTEM AND DEVICE WITH RANDOMIZER/DE-RANDOMIZER"라는 제목으로 게재되어 있으며, 이 출원의 레퍼런스로 포함된다.
예시적인 실시예에 있어서, 호스트 인터페이스(1210)는 컴퓨터 버스 표준들, 스토리지 버스 표준들, iFCPPeripheral 버스 표준들, 등 중 하나 또는 그 보다 많은 것들의 조합으로 구성될 수 있다. 컴퓨터 버스 표준들(computer bus standards)은 S-100 bus, Mbus, Smbus, Q-Bus, ISA, Zorro II, Zorro III, CAMAC, FASTBUS, LPC, EISA, VME, VXI, NuBus, TURBOchannel, MCA, Sbus, VLB, PCI, PXI, HP GSC bus, CoreConnect, InfiniBand, UPA, PCI-X, AGP, PCIe, Intel QuickPath Interconnect, Hyper Transport, 등을 포함한다. 스토리지 버스 표준들(Storage bus standards)은 ST-506, ESDI, SMD, Parallel ATA, DMA, SSA, HIPPI, USB MSC, FireWire(1394), Serial ATA, eSATA, SCSI, Parallel SCSI, Serial Attached SCSI, Fibre Channel, iSCSI, SAS, RapidIO, FCIP, 등을 포함한다. iFCPPeripheral 버스 표준들(iFCPPeripheral bus standards)은 Apple Desktop Bus, HIL, MIDI, Multibus, RS-232, DMX512-A, EIA/RS-422, IEEE-1284, UNI/O, 1-Wire, I2C, SPI, EIA/RS-485, USB, Camera Link, External PCIe, Light Peak, Multidrop Bus, 등을 포함한다.
도 5는 본 발명의 예시적인 실시예에 따른 메모리 시스템의 동작 방법을 개략적으로 설명하기 위한 흐름도이다. 본 발명의 예시적인 실시예에 따른 메모리 시스템의 동작 방법이 참조 도면들에 의거하여 상세히 설명될 것이다.
설명에 앞서, 하나의 메모리 셀에 2-비트 데이터가 저장된다고 가정하자. 이러한 가정에 따르면, 하나의 워드 라인에 연결된 메모리 셀들은 2-페이지 데이터(예를 들면, LSB 페이지 데이터 및 MSB 페이지 데이터로 구성됨)를 저장할 것이다. 하지만, 본 발명이 그것에 제한되지 않음은 잘 이해될 것이다. 예를 들면, 본 발명은 셀 당 M-비트 데이터(M은 3 또는 그 보다 큰 정수)를 저장하는 불 휘발성 메모리 장치에 적용될 것이다.
S100 단계에서, 메모리 제어기(1200)는 읽기 요청된 데이터를 출력하도록 불 휘발성 메모리 장치(1400)를 제어할 것이다. 예를 들면, 읽기 명령 및 어드레스가 메모리 제어기(1200)에서 불 휘발성 메모리 장치(1400)로 전송될 것이다. 불 휘발성 메모리 장치(1400)는 입력된 어드레스에 대응하는 페이지의 데이터를 읽고, 읽혀진 데이터를 메모리 제어기(1200)로 출력할 것이다. S110 단계에서, 메모리 제어기(1200)는 읽혀진 데이터가 정정 가능한 데이터인 지의 여부를 판별할 것이다. 예를 들면, 메모리 제어기(1200)의 에러 정정 회로(1200)는 읽혀진 데이터와 관련된 패리티 정보에 의거하여 읽혀진 데이터에 포함된 에러 비트들의 수(또는, 위치들)를 검출하고, 검출된 에러 비트들의 수가 에러 정정 능력을 벗어났는 지의 여부를 판별할 것이다. 검출된 에러 비트들의 수가 에러 정정 능력을 벗어나지 않은 경우, 읽혀진 데이터의 에러는 정정될 것이다. S120 단계에서, 에러 정정된 데이터는 외부로 출력될 것이다.
여기서, 검출된 에러 비트들의 위치 정보 및 읽혀진 데이터(이하, 제 1 데이터라 칭함)는 메모리 제어기(1200) 내에 임시 저장될 것이다.
검출된 에러 비트들의 수가 에러 정정 능력을 벗어난 경우, 절차는 S130 단계로 진행할 것이다. S130 단계에서, 메모리 제어기(1200)는 제 1 데이터와 관련된 페이지의 데이터를 출력하도록 불 휘발성 메모리 장치(1400)를 제어할 것이다. 예를 들면, 제 1 데이터와 관련된 페이지의 데이터(이하, 제 2 데이터라 칭함)는 제 1 데이터가 저장된 메모리 셀들에 저장될 것이다. 즉, 동일한 워드 라인에 연결된 메모리 셀들로부터 제 1 데이터 및 제 2 데이터가 읽혀질 것이다. 제 1 데이터는 MSB 페이지 데이터이고, 제 2 데이터는 LSB 페이지 데이터일 것이다. 이에 반해서, 제 1 데이터는 LSB 페이지 데이터이고, 제 2 데이터는 MSB 페이지 데이터일 수 있다.
메모리 제어기(1200)의 에러 정정 회로(1200)는 읽혀진 제 2 데이터와 관련된 패리티 정보에 의거하여 제 2 데이터에 포함된 에러 비트들의 위치들을 검출하고, 검출된 에러 비트들의 수가 에러 정정 능력을 벗어났는 지의 여부를 판별할 것이다. 검출된 에러 비트들의 수가 에러 정정 능력을 벗어나지 않은 경우, 제 1 데이터에 포함된 에러들의 위치들과 제 2 데이터에 포함된 에러들의 위치들이 비교될 것이다. 제 2 데이터의 에러 비트와 동일한 에러 위치에 놓인 제 1 데이터의 에러 비트가 반대되는 값으로 치환될 것이다. 이러한 치환은 동일한 에러 위치들에 대해 모두 행해질 것이다. 즉, S140 단계에서, 제 1 데이터와 관련된 페이지의 데이터에 속한 에러 비트들에 의거하여 제 1 데이터에 속한 에러 비트들이 반대되는 값들로 치환될 것이다. 이러한 치환 동작에 의해 제 1 데이터에 속한 에러 비트들의 수가 감소될 수 있다.
S150 단계에서, 제 1 데이터에 대응하는 패리티 정보에 의거하여, 상술한 바와 같이 치환된 제 1 데이터에 대한 에러 정정 동작이 행해질 것이다. 치환된 제 1 데이터가 에러 정정 가능한 경우, 즉, 치환된 제 1 데이터로부터 검출된 에러 비트들의 수가 에러 정정 능력을 벗어나지 않은 경우, 읽혀진 데이터의 에러는 정정될 것이다. S170 단계에서, 에러 정정된 데이터는 외부로 출력될 것이다. 치환된 제 1 데이터가 에러 정정 가능하지 않은 경우, 즉, 치환된 제 1 데이터로부터 검출된 에러 비트들의 수가 에러 정정 능력을 벗어난 경우, 절차는 S180 단계로 진행할 것이다. S180 단계에서, 읽기 페일 플래그가 생성될 것이다. 읽기 페일 플래그의 생성에 따른 절차는 다양하게 결정될 수 있다. 이후, 방법은 종료될 것이다.
예시적인 실시예에 있어서, S140 단계에서 읽혀진 제 2 데이터의 에러 비트들의 수가 에러 정정 가능한 범위를 벗어난 경우, 읽기 페일 플래그가 생성될 수 있다.
도 6은 도 5를 참조하여 설명된 데이터 정정 방식에 따른 데이터의 변화의 일예를 설명하기 위한 도면이다.
설명의 편의상, 메모리 제어기(1200)의 에러 정정 회로(1250)가 최대 4개의 에러 비트들을 정정한다고 가정하자. 불 휘발성 메모리 장치(1400)로부터 읽혀진 제 1 데이터는, 도 6에 도시된 바와 같이, 5개의 에러 비트들을 포함한다. 이러한 경우, 에러 정정 회로(1250)를 통해 제 1 데이터의 에러를 정정하는 것이 불가능하다. 본 발명의 예시적인 실시예에 의하면, 제 1 데이터의 에러 비트들의 수가 정정 가능한 비트 수를 초과한 경우, 메모리 제어기(1200)는 제 1 데이터와 관련된 제 2 데이터의 특성 정보(예를 들면, 제 2 데이터의 에러 비트들의 위치 정보)를 이용하여 제 1 데이터의 에러 비트들을 정정할 것이다.
앞서 설명된 바와 같이, 소거 상태에 대응하는 문턱 전압 산포가 커플링 그리고/또는 읽기 전압으로 인해 디스터브를 받을 때 에러 비트들의 수가 증가될 수 있다. 이러한 경우, 도 1b 및 도 1C에 도시된 바와 같이, 소거 상태에 대응하는 문턱 전압 산포는 프로그램 상태(들)에 대응하는 문턱 전압 산포(들)과 겹쳐질 수 있다. 이는 프로그램 상태를 갖는 메모리 셀의 데이터 비트가 소거 상태에 대응하는 문턱 전압 산포로 인해서 반대로 읽혀질 수 있음을 의미한다. 그러한 까닭에, 제 1 데이터에 포함된 에러 비트들은 제 2 데이터에 포함된 에러 비트들을 참조하여 부분적으로 정정될 수 있다. 하지만, 에러 정정 기준이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 전하 손실로 인해 문턱 전압 산포가 변화되는 경우, 제 1 데이터에 포함된 에러 비트들은 제 2 데이터에 포함된 에러 비트들을 참조하여 부분적으로 정정될 수 있다.
제 1 데이터의 에러 비트들의 수가 정정 가능한 비트 수를 초과한 경우, 메모리 제어기(1200)의 제어하에 제 1 데이터와 관련된 제 2 데이터가 불 휘발성 메모리 장치(1400)로부터 읽혀질 것이다. 여기서, 제 2 데이터는 제 1 데이터가 저장된 메모리 셀들로부터 읽혀진 데이터일 것이다. 즉, 동일한 워드 라인에 연결된 메모리 셀들로부터 제 1 및 제 2 데이터가 읽혀질 것이다. 제 1 데이터와 마찬가지로, 제 2 데이터에 포함된 에러 비트들의 위치들이 검출될 것이다. 이후, 제 2 데이터에 포함된 에러 비트들의 위치들과 동일한 위치들에 각각 놓인 제 1 데이터에 포함된 비트들(도 6에서 점선으로 표시된 에러 비트들)의 값들이 보정될 것이다. 즉, 제 1 데이터에 포함된 비트들은 제 2 데이터에 포함된 에러 비트들에 의거하여 부분적으로 비트 플립될 것이다. 제 1 데이터에 포함된 비트들의 비트 플립 이후, 제 1 데이터는 관련된 패리티 정보에 의거하여 정정될 것이다. 비트 플립을 통해 제 1 데이터의 에러 비트들의 수(예를 들면, 3개)가 정정 가능한 범위(예를 들면, 4개)에 포함되기 때문에, 제 1 데이터는 관련된 패리티 정보에 의거하여 정정될 수 있다.
제 1 데이터가 정정 가능하지 않은 경우, 제 1 데이터와 관련된 제 2 데이터의 에러 비트들의 위치 정보가 검출되고, 검출된 위치 정보에 따라 제 1 데이터의 에러 비트들 중 일부를 보정할 수 있다. 하지만, 제 1 데이터와 관련된 데이터, 즉, 하나의 워드 라인에 연결된 메모리 셀들에 저장되는 페이지 데이터들 모두가 제 1 데이터의 에러 비트들 중 일부 또는 모두를 보정하는 데 사용될 수 있다. 이는 이후 상세히 설명될 것이다.
도 7은 도 5를 참조하여 설명된 데이터 정정 방식에 따른 데이터의 변화의 다른 예를 설명하기 위한 도면이다.
설명의 편의상, 메모리 제어기(1200)의 에러 정정 회로(1250)가 최대 4개의 에러 비트들을 정정한다고 가정하자. 불 휘발성 메모리 장치(1400)로부터 읽혀진 제 1 데이터는, 도 7에 도시된 바와 같이, 5개의 에러 비트들을 포함한다. 이러한 경우, 에러 정정 회로(1250)를 통해 제 1 데이터의 에러를 정정하는 것이 불가능하다. 본 발명의 예시적인 실시예에 의하면, 제 1 데이터의 에러 비트들의 수가 정정 가능한 비트 수를 초과한 경우, 메모리 제어기(1200)는 제 1 데이터와 관련된 제 2 데이터 및 제 3 데이터의 특성 정보(예를 들면, 제 2 데이터 및 제 3 데이터의 에러 비트들의 위치 정보)를 이용하여 제 1 데이터의 에러 비트들을 정정할 것이다.
제 1 데이터의 에러 비트들의 수가 정정 가능한 비트 수를 초과한 경우, 메모리 제어기(1200)의 제어하에 제 1 데이터와 관련된 제 2 데이터가 불 휘발성 메모리 장치(1400)로부터 읽혀질 것이다. 제 1 데이터와 마찬가지로, 제 2 데이터에 포함된 에러 비트들의 위치들이 검출될 것이다. 또한, 메모리 제어기(1200)의 제어하에 제 1 데이터와 관련된 제 3 데이터가 불 휘발성 메모리 장치(1400)로부터 읽혀질 것이다. 제 1 데이터와 마찬가지로, 제 3 데이터에 포함된 에러 비트들의 위치들이 검출될 것이다. 이후, 제 2 데이터 및 제 3 데이터에 포함된 에러 비트들의 위치들과 동일한 위치들에 각각 놓인 제 1 데이터에 포함된 에러 비트들(도 7에서 점선으로 표시된 에러 비트들)의 값들이 보정될 것이다. 즉, 제 1 데이터에 포함된 에러 비트들은 제 2 데이터 및 제 3 데이터에 포함된 에러 비트들에 의거하여 부분적으로 비트 플립될 것이다. 제 1 데이터에 포함된 에러 비트들의 비트 플립 이후, 제 1 데이터는 관련된 패리티 정보에 의거하여 정정될 것이다. 비트 플립을 통해 제 1 데이터의 에러 비트들의 수(예를 들면, 3개)가 정정 가능한 범위(예를 들면, 4개)에 포함되기 때문에, 제 1 데이터는 관련된 패리티 정보에 의거하여 정정될 수 있다.
도 8은 본 발명의 다른 예시적인 실시예에 따른 메모리 시스템의 동작 방법을 개략적으로 설명하기 위한 흐름도이다. 본 발명의 예시적인 실시예에 따른 메모리 시스템의 동작 방법이 참조 도면들에 의거하여 상세히 설명될 것이다.
S200 단계에서, 메모리 제어기(1200)는 읽기 요청된 데이터를 출력하도록 불 휘발성 메모리 장치(1400)를 제어할 것이다. 예를 들면, 읽기 명령 및 어드레스가 메모리 제어기(1200)에서 불 휘발성 메모리 장치(1400)로 전송될 것이다. 불 휘발성 메모리 장치(1400)는 입력된 어드레스에 대응하는 페이지의 데이터를 읽고, 읽혀진 데이터(이하, 제 1 데이터라 칭함)를 메모리 제어기(1200)로 출력할 것이다. S210 단계에서, 메모리 제어기(1200)는 제 1 데이터가 정정 가능한 데이터인 지의 여부를 판별할 것이다. 예를 들면, 메모리 제어기(1200)의 에러 정정 회로(1200)는 제 1 데이터와 관련된 패리티 정보에 의거하여 제 1 데이터에 포함된 에러 비트들의 수(또는, 위치들)를 검출하고, 검출된 에러 비트들의 수가 에러 정정 능력을 벗어났는 지의 여부를 판별할 것이다. 검출된 에러 비트들의 수가 에러 정정 능력을 벗어나지 않은 경우, 제 1 데이터의 에러는 정정될 것이다. S220 단계에서, 에러 정정된 데이터는 외부로 출력될 것이다.
여기서, 검출된 에러 비트들의 위치 정보 및 제 1 데이터는 메모리 제어기(1200) 내에 임시 저장될 것이다.
검출된 에러 비트들의 수가 에러 정정 능력을 벗어난 경우, 절차는 S230 단계로 진행할 것이다. S230 단계에서, 메모리 제어기(1200)는 제 1 데이터와 관련된 페이지의 데이터(이하, 제 2 데이터라 칭함)를 출력하도록 불 휘발성 메모리 장치(1400)를 제어할 것이다. 메모리 제어기(1200)의 에러 정정 회로(1200)는 불 휘발성 메모리 장치(1400)로부터 출력된 제 2 데이터와 관련된 패리티 정보에 의거하여 제 2 데이터에 포함된 에러 비트들의 위치들을 검출하고, 검출된 에러 비트들의 수가 에러 정정 능력을 벗어났는 지의 여부를 판별할 것이다. 검출된 에러 비트들의 수가 에러 정정 능력을 벗어나지 않은 경우, 제 1 데이터에 포함된 에러들의 위치들과 제 2 데이터에 포함된 에러들의 위치들이 비교될 것이다. 제 2 데이터의 에러 비트와 동일한 에러 위치에 놓인 제 1 데이터의 비트가 반대되는 값으로 치환될 것이다. 이러한 치환은 도 6 및 도 7에서 설명된 바와 같이 동일한 에러 위치들에 대한 모두 행해질 것이다. 즉, S240 단계에서, 제 1 데이터와 관련된 페이지의 데이터에 속한 에러 비트들에 의거하여 제 1 데이터에 속한 에러 비트들이 반대되는 값들로 치환될 것이다. 이러한 치환 동작에 의해 제 1 데이터에 속한 에러 비트들의 수가 감소될 수 있다.
예시적인 실시예에 있어서, S230 단계에서 도 6에서 설명된 바와 같이 제 2 데이터가 읽혀질 수 있다. 또한, S230 단계에서 도 7에서 설명된 바와 같이 제 2 데이터 및 제 3 데이터가 읽혀질 수 있다.
S250 단계에서, 제 1 데이터에 대응하는 패리티 정보에 의거하여, 상술한 바와 같이 치환된 제 1 데이터에 대한 에러 정정 동작이 행해질 것이다. 치환된 제 1 데이터가 에러 정정 가능한 경우, 즉, 치환된 제 1 데이터로부터 검출된 에러 비트들의 수가 에러 정정 능력을 벗어나지 않은 경우, 읽혀진 데이터의 에러는 정정될 것이다. S270 단계에서, 에러 정정된 데이터는 외부로 출력될 것이다. 치환된 제 1 데이터가 에러 정정 가능하지 않은 경우, 즉, 치환된 제 1 데이터로부터 검출된 에러 비트들의 수가 에러 정정 능력을 벗어난 경우, 절차는 S280 단계로 진행할 것이다. S280 단계에서, 읽기 재시도 동작이 행해질 것이다. 읽기 재시도 동작은 읽기 전압이 정해진 횟수 내에서 가변되는 상태에서 읽기 동작을 재시도하는 동작을 의미한다. 읽기 재시도 동작의 일예가 미국공개특허번호 제2010/0322007호에 "FLASH MEMORY DEVICE AND METHOD OF READING DATA"라는 제목으로 게재되어 있으며, 이 출원의 레퍼런스로 포함된다. 읽기 전압이 가변될 때마다 읽혀진 데이터가 에러 정정 가능한 지의 여부가 판별될 것이다. 읽기 재시도 동작을 통해 읽혀진 데이터가 에러 정정 가능한 경우, 절차는 S270 단계로 진행할 것이다. 읽기 재시도 동작을 통해 읽혀진 데이터가 에러 정정 가능하지 않은 경우, 절차는 S290 단계로 진행할 것이다. S290 단계에서, 읽기 페일 플래그가 생성될 것이다. 읽기 페일 플래그의 생성에 따른 절차는 다양하게 결정될 수 있다. 이후, 방법은 종료될 것이다.
예시적인 실시예에 있어서, S240 단계에서 읽혀진 제 2 데이터(또는, 제 2 및 제 3 데이터)의 에러 비트들의 수가 에러 정정 가능한 범위를 벗어난 경우, 읽기 페일 플래그가 생성될 수 있다.
예시적인 실시예에 있어서, 정정 가능하지 않은 데이터에 포함된 에러 비트들에 대한 비트 플립 동작은 메모리 제어기(1200) 내에서 행해진다. 또는, 정정 가능하지 않은 데이터에 포함된 에러 비트들에 대한 비트 플립 동작은 메모리 제어기(1200)의 제어하에 불 휘발성 메모리 장치(1400) 내에서 행해질 수 있다. 예를 들면, 정정 가능하지 않은 데이터는 불 휘발성 메모리 장치(1400)의 페이지 버퍼 회로(1450)의 래치들에 임시 저장되고, 정정 가능하지 않은 데이터와 관련된 데이터에 의거하여 검출된 에러 위치 정보를 이용하여 임시 저장된 데이터의 에러 비트들이 랜덤 데이터 입력 동작을 통해 불 휘발성 메모리 장치(1400)로 제공될 수 있다. 이후, 페이지 버퍼 회로(1450)에 임시 저장된 그리고 랜덤 데이터 입력 동작을 통해 비트 플립된 데이터(또는, 비트 플립된 페이지 데이터)가 메모리 제어기(1200)로 제공될 수 있다. 메모리 제어기(1200)는 패리티 정보에 의거하여 비트 플립된 데이터의 에러를 정정할 것이다.
도 9는 본 발명의 실시예에 따른 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
컴퓨팅 시스템은 처리 유니트(2101), 사용자 인터페이스(2202), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(2303), 메모리 제어기(2404), 그리고 저장 매체로서 불 휘발성 메모리 장치(2505)를 포함한다. 메모리 제어기(2404)와 불 휘발성 메모리 장치(2505)는 도 2에 도시된 것과 실질적으로 동일하게 구성될 것이다. 즉, 불 휘발성 메모리 장치(2505)로부터 읽혀진 제 1 데이터의 에러가 정정 가능하지 않은 경우, 메모리 제어기(2404)는 제 1 데이터와 관련된 데이터 모두 또는 일부의 에러 위치 정보에 의거하여 비트 플립 동작을 통해 제 1 데이터에 포함된 에러 비트들의 일부를 보정한다. 이후, 메모리 제어기(2404)는 비트 플립된 제 1 데이터의 에러를 정정한다. 결과적으로, 메모리 제어기(2404)의 에러 정정 회로의 에러 정정 능력을 확장하지 않고 에러 정정 능력을 벗어난 데이터의 에러를 정정하는 것이 가능하다. 불 휘발성 메모리 장치(2505)에는 처리 유니트(2101)에 의해서 처리된/처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 메모리 제어기(2404)를 통해 저장될 것이다. 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리(2606)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 잘 이해될 것이다.
도 10은 본 발명의 실시예에 따른 반도체 드라이브를 개략적으로 보여주는 블록도이다.
도 10을 참조하면, 반도체 드라이브(4000)(SSD)는 저장 매체(4100)와 제어기(4200)를 포함할 것이다. 저장 매체(4100)는 복수의 채널들을 통해 제어기(4200)와 연결될 것이다. 각 채널에는 복수의 불 휘발성 메모리들이 공통으로 연결될 것이다. 각 불 휘발성 메모리 및 제어기(4200)는 도 2에 도시된 것과 실질적으로 동일하게 구성될 것이다. 즉, 불 휘발성 메모리로부터 읽혀진 제 1 데이터의 에러가 정정 가능하지 않은 경우, 메모리 제어기(4200)는 제 1 데이터와 관련된 데이터 모두 또는 일부의 에러 위치 정보에 의거하여 비트 플립 동작을 통해 제 1 데이터에 포함된 에러 비트들의 일부를 보정한다. 이후, 메모리 제어기(4200)는 비트 플립된 제 1 데이터의 에러를 정정한다. 결과적으로, 메모리 제어기(4200)의 에러 정정 회로의 에러 정정 능력을 확장하지 않고 에러 정정 능력을 벗어난 데이터의 에러를 정정하는 것이 가능하다.
도 11은 도 10에 도시된 반도체 드라이브를 이용한 스토리지를 개략적으로 보여주는 블록도이고, 도 12는 도 10에 도시된 반도체 드라이브를 이용한 스트리지 서버를 개략적으로 보여주는 블록도이다.
본 발명의 실시예에 따른 반도체 드라이브(4000)는 스토리지를 구성하는 데 사용될 수 있다. 도 11에 도시된 바와 같이, 스토리지는 도 10에서 설명된 것과 실질적으로 동일하게 구성되는 복수의 반도체 드라이브들을 포함할 것이다. 본 발명의 실시예에 따른 반도체 드라이브(4000)는 스토리지 서버를 구성하는 데 사용될 수 있다. 도 12에 도시된 바와 같이, 스토리지 서버는 도 10에서 설명된 것과 실질적으로 동일하게 구성되는 복수의 반도체 드라이브들(4000), 그리고 서버(4000A)를 포함할 것이다. 또한, 이 분야에 잘 알려진 RAID 제어기(4000B)가 스토리지 서버에 제공될 수 있음은 잘 이해될 것이다.
도 13은 본 발명의 실시예들에 따른 데이터 저장 장치가 적용되는 시스템을 개략적으로 보여주는 도면이다.
도 13에 도시된 바와 같이, 본 발명의 실시예에 따른 데이터 저장 장치를 포함한 반도체 드라이브는 메일 서버(8100)에도 적용될 수 있다.
도 14는 본 발명의 실시예에 따른 메모리 카드(memory card)를 개략적으로 보여주는 블록도이다.
메모리 카드는 예를 들어, MMC 카드, SD카드, 멀티유즈(multiuse) 카드, 마이크로 SD카드, 메모리 스틱, 컴팩트 SD 카드, ID 카드, PCMCIA 카드, SSD카드, 칩카드(chipcard), 스마트카드(smartcard), USB카드 등일 수 있다.
도 14를 참조하면, 메모리 카드는 외부와의 인터페이스를 수행하는 인터페이스부(9221), 버퍼 메모리를 갖고 메모리 카드의 동작을 제어하는 제어기(9222), 하나 또는 그 보다 많은 불 휘발성 메모리 장치들(9207)을 포함할 것이다. 제어기(9222)는 프로세서로서, 불 휘발성 메모리 장치(9207)의 라이트 동작 및 리드 동작을 제어할 수 있다. 구체적으로, 컨트롤러(9222)는 데이터 버스(DATA)와 어드레스 버스(ADDRESS)를 통해서 불 휘발성 메모리 장치(9207) 및 인터페이스부(9221)와 커플링되어 있다. 제어기(9222)와 불 휘발성 메모리(9207)는 도 2에서 설명된 메모리 제어기와 불 휘발성 메모리 장치에 대응할 것이다. 즉, 불 휘발성 메모리(9207)로부터 읽혀진 제 1 데이터의 에러가 정정 가능하지 않은 경우, 제어기(9222)는 제 1 데이터와 관련된 데이터 모두 또는 일부의 에러 위치 정보에 의거하여 비트 플립 동작을 통해 제 1 데이터에 포함된 에러 비트들의 일부를 보정한다. 이후, 제어기(9222)는 비트 플립된 제 1 데이터의 에러를 정정한다. 결과적으로, 제어기(9222)의 에러 정정 회로의 에러 정정 능력을 확장하지 않고 에러 정정 능력을 벗어난 데이터의 에러를 정정하는 것이 가능하다.
도 15는 본 발명의 실시예에 따른 디지털 스틸 카메라(digital still camera)를 개략적으로 보여주는 블록도이다.
도 15를 참조하면, 디지털 스틸 카메라는 바디(9301), 슬롯(9302), 렌즈(9303), 디스플레이부(9308), 셔터 버튼(9312), 스트로브(strobe)(9318) 등을 포함한다. 특히, 슬롯(9308)에는 메모리 카드(9331)가 삽입될 수 있고, 메모리 카드(9331)는 도 2에서 설명된 메모리 제어기 및 불 휘발성 메모리 장치를 포함할 것이다. 즉, 불 휘발성 메모리로부터 읽혀진 제 1 데이터의 에러가 정정 가능하지 않은 경우, 메모리 제어기는 제 1 데이터와 관련된 데이터 모두 또는 일부의 에러 위치 정보에 의거하여 비트 플립 동작을 통해 제 1 데이터에 포함된 에러 비트들의 일부를 보정한다. 이후, 메모리 제어기는 비트 플립된 제 1 데이터의 에러를 정정한다. 결과적으로, 메모리 제어기의 에러 정정 회로의 에러 정정 능력을 확장하지 않고 에러 정정 능력을 벗어난 데이터의 에러를 정정하는 것이 가능하다.
메모리 카드(9331)가 접촉형(contact type)인 경우, 메모리 카드(9331)가 슬롯(9308)에 삽입될 때 메모리 카드(9331)와 회로 기판 상의 특정 전기 회로가 전기적으로 접촉하게 된다. 메모리 카드(9331)가 비접촉형(non-contact type)인 경우, 무선 신호를 통해서 메모리 카드(9331)가 액세스될 것이다.
도 16은 도 14의 메모리 카드가 사용되는 다양한 시스템을 설명하는 예시적 도면이다.
도 16을 참조하면, 메모리 카드(9331)는 비디오 카메라(VC), 텔레비전(TV), 오디오 장치(AD), 게임장치(GM), 전자 음악 장치(EMD), 휴대폰(HP), 컴퓨터(CP), PDA(Personal Digital Assistant), 보이스 레코더(voice recorder)(VR), PC 카드(PCC), 등에 사용될 수 있다.
본 발명의 실시예에 있어서, 메모리 셀들은 가변 저항 메모리 셀로 구성될 수 있으며, 예시적인 가변 저항 메모리 셀 및 그것을 포함한 메모리 장치가 미국특허번호 제7529124호에 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다.
본 발명의 다른 실시예에 있어서, 메모리 셀들은 전하 저장층을 갖는 다양한 셀 구조들 중 하나를 이용하여 구현될 수 있다. 전하 저장층을 갖는 셀 구조는 전하 트랩층을 이용하는 전하 트랩 플래시 구조, 어레이들이 다층으로 적층되는 스택 플래시 구조, 소오스-드레인이 없는 플래시 구조, 핀-타입 플래시 구조, 등을 포함할 것이다.
전하 저장층으로서 전하 트랩 플래시 구조를 갖는 메모리 장치가 미국특허 제6858906호, 미국공개특허 제2004-0169238호, 그리고 미국공개특허 제2006-0180851호에 각각 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다. 소오스/드레인이 없는 플래시 구조는 대한민국특허 제673020호에 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다.
본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 제어기는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 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), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 또한 명세서 전체에 걸쳐서 동일한 참조번호로 표시된 부분들은 동일한 구성요소를 나타낸다.
본 명세서에서 ‘및/또는’이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, ‘연결되는/결합되는’이란 표현은 다른 구성요소와 직접적으로 연결되거나 다른 구성요소를 통해 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 ‘포함한다’ 또는 ‘포함하는’으로 언급된 구성요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작, 소자 및 장치의 존재 또는 추가를 의미한다.
도 1a 내지 도 1c는 페일 비트를 야기하는 다양한 원인들을 설명하기 위한 도면들이다.
불 휘발성 메모리 장치는 플로팅 게이트, 전하 트랩층, 등과 같은 전하 저장 수단을 갖는 메모리 셀을 이용하여 정보를 저장한다. 하지만, 메모리 셀의 전하 저장 수단이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 전하 저장 수단에 저장되는 전하들의 양에 따라 메모리 셀의 문턱 전압이 변화된다. 하나의 메모리 셀에 1-비트 데이터가 저장되는 경우, 소거 상태 및 프로그램 상태에 각각 대응하는 2개의 문턱 전압 분포들이 형성될 것이다. 2-비트 데이터가 하나의 메모리 셀에 저장되는 경우, 소거 상태 및 3개의 프로그래 상태들에 각각 대응하는 4개의 문턱 전압 분포들이 형성될 것이다. 3-비트 데이터가 하나의 메모리 셀에 저장되는 경우, 소거 상태 및 7개의 프로그래 상태들에 각각 대응하는 8개의 문턱 전압 분포들이 형성될 것이다. 저장된 데이터 비트들의 수에 따라 결정되는 문턱 전압 산포들은 다양한 원인들(예를 들면, 전하 손실, 디스터번스, 등)로 인해서 변화될 것이다.
초기 문턱 전압 산포들의 변화를 초래하는 전하 손실은, 도 1a를 참조하면, 문턱 전압 산포들(실선으로 도시됨)이 점선으로 도시된 바와 같이 낮은 문턱 전압 방향으로 이동되게 한다. 특히, 프로그램 상태들(P2, P3)에 각각 대응하는 문턱 전압 산포들이 읽기 전압들 이하로 낮아지는 경우, 페일 비트들(또는, 에러 비트들로 검출되는 비트들)의 수가 증가하게 된다. 초기 문턱 전압 산포들의 변화를 초래하는 디스터번스는, 도 1b를 참조하면, 문턱 전압 산포(예를 들면, 소거 상태(E)에 대응하는 문턱 전압 산포)가 점선으로 도시된 바와 같이 높은 문턱 전압 방향으로 이동되게 한다. 문턱 전압 산포의 변화는, 예를 들면, 읽기 동작들의 반복, 프로그램 동작시 생기는 워드라인 및 비트 라인 커플링, 등과 같은 디스터번스들로 인해 생긴다. 특히, 소거 상태(E)에 대응하는 문턱 전압 산포의 변화는 공정이 미세화됨에 따라 더욱 심화되고 있다. 소거 상태의 문턱 전압 산포가 프로그램 상태(예를 들면, P1)의 문턱 전압 산포와 겹쳐짐에 따라, 페일 비트들의 수가 증가하게 된다. 마찬가지로, 도 1c를 참조하면, 셀 당 3-비트 데이터를 저장하는 불 휘발성 메모리 장치의 경우, 소거 상태의 문턱 전압 산포가 프로그램 상태들(예를 들면, P1, P2, P3, P4)의 문턱 전압 산포들과 겹쳐짐에 따라, 페일 비트들의 수가 더욱 증가하게 된다.
일반적으로, 디스터번스 그리고/또는 전하 손실로 인해 발생하는 페일 비트들은 불 휘발성 메모리 장치의 신뢰성 저하의 주요 원인이 되고 있다. 신뢰성 저하는 잘 알려진 에러 정정 회로를 이용하여 보상될 수 있다. 에러 정정 회로는 프로그램 동작시 불 휘발성 메모리 장치에 저장될 데이터에 패리티 정보를 부가하고, 읽기 동작시 관련된 패리티 정보에 의거하여 불 휘발성 메모리 장치로부터 읽혀진 데이터의 에러를 정정한다. 패리티 정보의 크기에 따라 정정 가능한 에러 비트들의 수가 결정될 것이다. 다시 말해서, 에러 비트들은 정해진 에러 정정 능력 내에서 정정될 것이다. 만약 에러 비트들의 수가 에러 정정 능력을 벗어나면, 읽혀진 데이터를 사용하는 것이 어렵다. 패리티 크기의 증가, 복잡한 ECC 엔진의 사용, 등을 통해 에러 정정 능력을 키움으로써 정정 가능한 에러 비트들의 수는 증가될 것이다.
본 발명의 경우, 하지만, 동일한 에러 정정 능력을 이용하여 에러 정정 능력을 벗어난 데이터의 에러를 정정하는 것이 가능하다. 이후 상세히 설명된 바와 같이, 에러 정정 능력을 벗어난 데이터의 에러는 에러 정정 능력을 벗어난 데이터와 관련된 데이터의 패리티 정보를 이용하여 정정될 것이다. 여기서, 에러 정정 능력을 벗어난 데이터 및 에러 정정 능력을 벗어난 데이터와 관련된 데이터는 상이한 페이지 데이터이며, 관련된 물리적인 위치(예를 들면, 동일한 워드 라인에 연결된 메모리 셀들 또는 동일한 메모리 셀들)에 저장될 것이다. 따라서, 에러 정정 능력을 벗어난 데이터와 관련된 데이터의 패리티 정보를 이용함으로써 에러 정정 회로의 하드웨어 변화없이 에러 정정 능력을 확장하는 것이 가능하다. 즉, 불 휘발성 메모리 장치의 신뢰성을 개선하는 것이 가능하다.
도 2는 본 발명의 실시예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 2를 참조하면, 본 발명의 실시예에 따른 메모리 시스템(1000)은 메모리 제어기(1200)와 불 휘발성 메모리 장치(1400)를 포함한다. 메모리 제어기(1200)는 외부(예를 들면, 호스트)로부터의 요청(예를 들면, 쓰기 요청, 읽기 요청, 등)에 응답하여 불 휘발성 메모리 장치(1400)를 제어한다. 메모리 제어기(1200)는 외부 요청없이 내부적인 요청(예를 들면, 서든 파워-오프와 관련된 동작, 배경 동작, 등)에 따라 불 휘발성 메모리 장치(1400)를 제어한다. 불 휘발성 메모리 장치(1400)는 메모리 제어기(1200)의 제어에 응답하여 동작하며, 데이터 정보를 저장하는 일종의 저장 매체로서 사용된다. 저장 매체는 하나 또는 그 보다 많은 메모리 칩들로 구성될 수 있다. 불 휘발성 메모리 장치(1400)와 메모리 제어기(1200)는 하나 또는 그 보다 많은 채널들을 통해 통신한다. 불 휘발성 메모리 장치(1400)는, 예를 들면, 낸드 플래시 메모리 장치를 포함한다.
메모리 제어기(1200)는 에러 정정 회로(1250)를 포함한다. 에러 정정 회로(1250)는 불 휘발성 메모리 장치(1400)에 저장될 데이터를 부호화하도록 구성된다. 예를 들면, 에러 정정 회로(1250)는 불 휘발성 메모리 장치(1400)에 저장될 프로그램 데이터에 의거하여 ECC 패리티를 생성하도록 구성된다. ECC 패리티는 프로그램 데이터와 함께 불 휘발성 메모리 장치(1400)의 선택된 워드 라인의 메모리 셀들에 저장될 것이다. 에러 정정 회로(1250)는 관련된 ECC 패리티에 의거하여 불 휘발성 메모리 장치(1400)로부터 읽혀진 데이터의 에러를 정정하도록 구성된다. 예시적인 실시예에 있어서, 에러 정정 회로(1250)는 읽혀진 데이터에 포함된 에러 비티들의 위치들을 검출할 것이다. 검출된 위치 정보(또는, 특성 정보라 칭함)는 메모리 제어기(1200) 내에 임시 저장될 것이다.
읽혀진 데이터가 에러 정정 회로(1250)에 의해서 정정 가능하지 않은 경우, 예를 들면, 메모리 제어기(1200)는 정정 불가능한 데이터와 동일한 물리적인 위치에 저장된 데이터의 에러 위치 정보에 의거하여 정정 불가능한 데이터의 에러 비트들 중 일부를 정정할 것이다. 에러 위치 정보에 의거하여 부분적으로 정정된 데이터의 에러 비트들의 수가 정정 가능한 범위 내에 포함될 때, 부분적으로 정정된 데이터는 대응하는 ECC 패리티에 의거하여 에러 정정 회로(1250)에 의해서 정정될 것이다. 결과적으로, 에러 정정 회로(1250)의 에러 정정 능력을 확장하지 않고 에러 정정 능력을 벗어난 데이터의 에러를 정정하는 것이 가능하다. 이는 이후 상세히 설명될 것이다.
도 3은 도 2에 도시된 불 휘발성 메모리 장치를 개략적으로 보여주는 블록도이다.
불 휘발성 메모리 장치(1400)는, 예를 들면, 낸드 플래시 메모리 장치일 것이다. 하지만, 본 발명이 낸드 플래시 메모리 장치에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 불 휘발성 메모리 장치(1400)는 노아 플래시 메모리 장치, 저항성 램(Resistive Random Access Memory: RRAM) 장치, 상변화 메모리(Phase-Change Memory: PRAM) 장치, 자기저항 메모리(Magnetoresistive Random Access Memory: MRAM) 장치, 강유전체 메모리(Ferroelectric Random Access Memory: FRAM) 장치, 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM), 또는 그와 같은 것으로 구성될 수 있다. 또한, 본 발명의 불 휘발성 메모리 장치(1400)는 3차원 어레이 구조를 갖도록 구현될 수 있다. 3차원 어레이 구조를 갖는 불 휘발성 메모리 장치는 수직 낸드 플래시 메모리 장치라 불린다. 본 발명은 전하 저장층이 전도성 부유 게이트로 구성된 플래시 메모리 장치 뿐만 아니라, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(Charge Trap Flash, "CTF"라 불림) 메모리 장치에도 모두 적용 가능하다.
도 3을 참조하면, 불 휘발성 메모리 장치(1400)는 메모리 셀 어레이(1410), 어드레스 디코더(1420), 전압 발생기(1430), 제어 로직(1440), 페이지 버퍼 회로(1450), 그리고 입출력 인터페이스(1460)를 포함한다.
메모리 셀 어레이(1410)는 행들(예를 들면, 워드 라인들)과 열들(예를 들면, 비트 라인들)의 교차 영역들에 배열된 메모리 셀들을 포함할 것이다. 메모리 셀들 각각은 1-비트 데이터 또는 멀티-비트 데이터를 저장할 것이다. 어드레스 디코더(1420)는 제어 로직(1440)에 의해서 제어되며, 메모리 셀 어레이(1410)의 행들(예를 들면, 워드 라인들, 스트링 선택 라인(들), 접지 선택 라인(들), 공통 소오스 라인, 등)의 선택 및 구동을 행한다. 전압 발생기(1430)는 제어 로직(1440)에 의해서 제어되며, 각 동작에 필요한 전압들(예를 들면, 고전압, 프로그램 전압, 읽기 전압, 검증 전압, 소거 전압, 패스 전압, 벌크 전압, 등)을 발생한다. 전압 발생기(1430)에 의해서 생성된 전압들은 어드레스 디코더(1420)를 통해 메모리 셀 어레이(1410)에 제공된다. 제어 로직(1440)은 불 휘발성 메모리 장치(1400)의 전반적인 동작을 제어하도록 구성된다.
페이지 버퍼 회로(1450)는 제어 로직(1440)에 의해서 제어되며, 메모리 셀 어레이(1410)로부터 데이터를 읽도록 또는 프로그램 데이터에 따라 메모리 셀 어레이(1410)의 열들(예를 들면, 비트 라인들)을 구동하도록 구성된다. 페이지 버퍼 회로(1450)는 비트 라인들 또는 비트 라인 쌍들에 각각 대응하는 복수의 페이지 버퍼들로 구성될 것이다. 페이지 버퍼들 각각은 복수의 래치들을 포함한다. 입출력 인터페이스(1460)는 제어 로직(1440)에 의해서 제어되며, 외부(예를 들면, 도 2의 메모리 제어기)와 인터페이스하도록 구성된다. 비록 도면에는 도시되지 않았지만, 입출력 인터페이스(1460)는 페이지 버퍼들을 선택하기 위한 열 선택기, 데이터를 입력받는 입력 버퍼, 데이터를 출력하는 출력 버퍼, 그리고 그와 같은 것을 포함할 것이다.
도 4는 도 2에 도시된 메모리 제어기를 개략적으로 보여주는 블록도이다. 도 4를 참조하면, 메모리 제어기(1200)는 제 1 인터페이스로서 호스트 인터페이스(1210), 제 2 인터페이스로서 메모리 인터페이스(1220), 중앙 처리 장치(1230), 버퍼 메모리(1240), 그리고 ECC 회로(1250)를 포함한다.
호스트 인터페이스(1210)는 외부(또는, 호스트)와 인터페이스하도록 구성된다. 메모리 인터페이스(1220)는 도 2에 도시된 불 휘발성 메모리 장치(1400)와 인터페이스하도록 구성된다. CPU(1230)는 메모리 제어기(1200)의 전반적인 동작을 제어하도록 구성된다. 예를 들면, CPU(1230)는 플래시 변환 계층(Flash Translation Layer: FTL)과 같은 펌웨어를 운용하도록 구성된다. 버퍼 메모리(1240)는 호스트 인터페이스(1210)를 통해 외부로 전달되는 데이터를 임시 저장하는 데 사용된다. 버퍼 메모리(1240)는 메모리 인터페이스(1220)를 통해 불 휘발성 메모리 장치(1400)로부터 전달되는 데이터를 임시 저장하는 데 사용된다. 버퍼 메모리(1240)는 불 휘발성 메모리 장치(1400)를 제어하는 데 필요한 정보(예를 들면, 맵핑 정보)를 저장하는 데 사용된다. ECC 회로(1250)는 불 휘발성 메모리 장치(1400)에 저장될 데이터를 부호화하도록 그리고 불 휘발성 메모리 장치(1400)로부터 읽혀진 데이터를 복호화하도록 구성될 것이다.
예시적인 실시예에 있어서, 메모리 제어기(1200)는, 비록 도면에는 도시되지 않았지만, 불 휘발성 메모리 장치(1400)에 저장될 데이터를 랜덤화하도록 그리고 불 휘발성 메모리 장치(1400)로부터 읽혀진 데이터를 디-랜덤화하도록 구성된 랜덤화기를 더 포함할 것이다. 랜덤화기의 일예가 미국특허공개번호 제2010/0088574호에 "DATA STORAGE SYSTEM AND DEVICE WITH RANDOMIZER/DE-RANDOMIZER"라는 제목으로 게재되어 있으며, 이 출원의 레퍼런스로 포함된다.
예시적인 실시예에 있어서, 호스트 인터페이스(1210)는 컴퓨터 버스 표준들, 스토리지 버스 표준들, iFCPPeripheral 버스 표준들, 등 중 하나 또는 그 보다 많은 것들의 조합으로 구성될 수 있다. 컴퓨터 버스 표준들(computer bus standards)은 S-100 bus, Mbus, Smbus, Q-Bus, ISA, Zorro II, Zorro III, CAMAC, FASTBUS, LPC, EISA, VME, VXI, NuBus, TURBOchannel, MCA, Sbus, VLB, PCI, PXI, HP GSC bus, CoreConnect, InfiniBand, UPA, PCI-X, AGP, PCIe, Intel QuickPath Interconnect, Hyper Transport, 등을 포함한다. 스토리지 버스 표준들(Storage bus standards)은 ST-506, ESDI, SMD, Parallel ATA, DMA, SSA, HIPPI, USB MSC, FireWire(1394), Serial ATA, eSATA, SCSI, Parallel SCSI, Serial Attached SCSI, Fibre Channel, iSCSI, SAS, RapidIO, FCIP, 등을 포함한다. iFCPPeripheral 버스 표준들(iFCPPeripheral bus standards)은 Apple Desktop Bus, HIL, MIDI, Multibus, RS-232, DMX512-A, EIA/RS-422, IEEE-1284, UNI/O, 1-Wire, I2C, SPI, EIA/RS-485, USB, Camera Link, External PCIe, Light Peak, Multidrop Bus, 등을 포함한다.
도 5는 본 발명의 예시적인 실시예에 따른 메모리 시스템의 동작 방법을 개략적으로 설명하기 위한 흐름도이다. 본 발명의 예시적인 실시예에 따른 메모리 시스템의 동작 방법이 참조 도면들에 의거하여 상세히 설명될 것이다.
설명에 앞서, 하나의 메모리 셀에 2-비트 데이터가 저장된다고 가정하자. 이러한 가정에 따르면, 하나의 워드 라인에 연결된 메모리 셀들은 2-페이지 데이터(예를 들면, LSB 페이지 데이터 및 MSB 페이지 데이터로 구성됨)를 저장할 것이다. 하지만, 본 발명이 그것에 제한되지 않음은 잘 이해될 것이다. 예를 들면, 본 발명은 셀 당 M-비트 데이터(M은 3 또는 그 보다 큰 정수)를 저장하는 불 휘발성 메모리 장치에 적용될 것이다.
S100 단계에서, 메모리 제어기(1200)는 읽기 요청된 데이터를 출력하도록 불 휘발성 메모리 장치(1400)를 제어할 것이다. 예를 들면, 읽기 명령 및 어드레스가 메모리 제어기(1200)에서 불 휘발성 메모리 장치(1400)로 전송될 것이다. 불 휘발성 메모리 장치(1400)는 입력된 어드레스에 대응하는 페이지의 데이터를 읽고, 읽혀진 데이터를 메모리 제어기(1200)로 출력할 것이다. S110 단계에서, 메모리 제어기(1200)는 읽혀진 데이터가 정정 가능한 데이터인 지의 여부를 판별할 것이다. 예를 들면, 메모리 제어기(1200)의 에러 정정 회로(1200)는 읽혀진 데이터와 관련된 패리티 정보에 의거하여 읽혀진 데이터에 포함된 에러 비트들의 수(또는, 위치들)를 검출하고, 검출된 에러 비트들의 수가 에러 정정 능력을 벗어났는 지의 여부를 판별할 것이다. 검출된 에러 비트들의 수가 에러 정정 능력을 벗어나지 않은 경우, 읽혀진 데이터의 에러는 정정될 것이다. S120 단계에서, 에러 정정된 데이터는 외부로 출력될 것이다.
여기서, 검출된 에러 비트들의 위치 정보 및 읽혀진 데이터(이하, 제 1 데이터라 칭함)는 메모리 제어기(1200) 내에 임시 저장될 것이다.
검출된 에러 비트들의 수가 에러 정정 능력을 벗어난 경우, 절차는 S130 단계로 진행할 것이다. S130 단계에서, 메모리 제어기(1200)는 제 1 데이터와 관련된 페이지의 데이터를 출력하도록 불 휘발성 메모리 장치(1400)를 제어할 것이다. 예를 들면, 제 1 데이터와 관련된 페이지의 데이터(이하, 제 2 데이터라 칭함)는 제 1 데이터가 저장된 메모리 셀들에 저장될 것이다. 즉, 동일한 워드 라인에 연결된 메모리 셀들로부터 제 1 데이터 및 제 2 데이터가 읽혀질 것이다. 제 1 데이터는 MSB 페이지 데이터이고, 제 2 데이터는 LSB 페이지 데이터일 것이다. 이에 반해서, 제 1 데이터는 LSB 페이지 데이터이고, 제 2 데이터는 MSB 페이지 데이터일 수 있다.
메모리 제어기(1200)의 에러 정정 회로(1200)는 읽혀진 제 2 데이터와 관련된 패리티 정보에 의거하여 제 2 데이터에 포함된 에러 비트들의 위치들을 검출하고, 검출된 에러 비트들의 수가 에러 정정 능력을 벗어났는 지의 여부를 판별할 것이다. 검출된 에러 비트들의 수가 에러 정정 능력을 벗어나지 않은 경우, 제 1 데이터에 포함된 에러들의 위치들과 제 2 데이터에 포함된 에러들의 위치들이 비교될 것이다. 제 2 데이터의 에러 비트와 동일한 에러 위치에 놓인 제 1 데이터의 에러 비트가 반대되는 값으로 치환될 것이다. 이러한 치환은 동일한 에러 위치들에 대해 모두 행해질 것이다. 즉, S140 단계에서, 제 1 데이터와 관련된 페이지의 데이터에 속한 에러 비트들에 의거하여 제 1 데이터에 속한 에러 비트들이 반대되는 값들로 치환될 것이다. 이러한 치환 동작에 의해 제 1 데이터에 속한 에러 비트들의 수가 감소될 수 있다.
S150 단계에서, 제 1 데이터에 대응하는 패리티 정보에 의거하여, 상술한 바와 같이 치환된 제 1 데이터에 대한 에러 정정 동작이 행해질 것이다. 치환된 제 1 데이터가 에러 정정 가능한 경우, 즉, 치환된 제 1 데이터로부터 검출된 에러 비트들의 수가 에러 정정 능력을 벗어나지 않은 경우, 읽혀진 데이터의 에러는 정정될 것이다. S170 단계에서, 에러 정정된 데이터는 외부로 출력될 것이다. 치환된 제 1 데이터가 에러 정정 가능하지 않은 경우, 즉, 치환된 제 1 데이터로부터 검출된 에러 비트들의 수가 에러 정정 능력을 벗어난 경우, 절차는 S180 단계로 진행할 것이다. S180 단계에서, 읽기 페일 플래그가 생성될 것이다. 읽기 페일 플래그의 생성에 따른 절차는 다양하게 결정될 수 있다. 이후, 방법은 종료될 것이다.
예시적인 실시예에 있어서, S140 단계에서 읽혀진 제 2 데이터의 에러 비트들의 수가 에러 정정 가능한 범위를 벗어난 경우, 읽기 페일 플래그가 생성될 수 있다.
도 6은 도 5를 참조하여 설명된 데이터 정정 방식에 따른 데이터의 변화의 일예를 설명하기 위한 도면이다.
설명의 편의상, 메모리 제어기(1200)의 에러 정정 회로(1250)가 최대 4개의 에러 비트들을 정정한다고 가정하자. 불 휘발성 메모리 장치(1400)로부터 읽혀진 제 1 데이터는, 도 6에 도시된 바와 같이, 5개의 에러 비트들을 포함한다. 이러한 경우, 에러 정정 회로(1250)를 통해 제 1 데이터의 에러를 정정하는 것이 불가능하다. 본 발명의 예시적인 실시예에 의하면, 제 1 데이터의 에러 비트들의 수가 정정 가능한 비트 수를 초과한 경우, 메모리 제어기(1200)는 제 1 데이터와 관련된 제 2 데이터의 특성 정보(예를 들면, 제 2 데이터의 에러 비트들의 위치 정보)를 이용하여 제 1 데이터의 에러 비트들을 정정할 것이다.
앞서 설명된 바와 같이, 소거 상태에 대응하는 문턱 전압 산포가 커플링 그리고/또는 읽기 전압으로 인해 디스터브를 받을 때 에러 비트들의 수가 증가될 수 있다. 이러한 경우, 도 1b 및 도 1C에 도시된 바와 같이, 소거 상태에 대응하는 문턱 전압 산포는 프로그램 상태(들)에 대응하는 문턱 전압 산포(들)과 겹쳐질 수 있다. 이는 프로그램 상태를 갖는 메모리 셀의 데이터 비트가 소거 상태에 대응하는 문턱 전압 산포로 인해서 반대로 읽혀질 수 있음을 의미한다. 그러한 까닭에, 제 1 데이터에 포함된 에러 비트들은 제 2 데이터에 포함된 에러 비트들을 참조하여 부분적으로 정정될 수 있다. 하지만, 에러 정정 기준이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 전하 손실로 인해 문턱 전압 산포가 변화되는 경우, 제 1 데이터에 포함된 에러 비트들은 제 2 데이터에 포함된 에러 비트들을 참조하여 부분적으로 정정될 수 있다.
제 1 데이터의 에러 비트들의 수가 정정 가능한 비트 수를 초과한 경우, 메모리 제어기(1200)의 제어하에 제 1 데이터와 관련된 제 2 데이터가 불 휘발성 메모리 장치(1400)로부터 읽혀질 것이다. 여기서, 제 2 데이터는 제 1 데이터가 저장된 메모리 셀들로부터 읽혀진 데이터일 것이다. 즉, 동일한 워드 라인에 연결된 메모리 셀들로부터 제 1 및 제 2 데이터가 읽혀질 것이다. 제 1 데이터와 마찬가지로, 제 2 데이터에 포함된 에러 비트들의 위치들이 검출될 것이다. 이후, 제 2 데이터에 포함된 에러 비트들의 위치들과 동일한 위치들에 각각 놓인 제 1 데이터에 포함된 비트들(도 6에서 점선으로 표시된 에러 비트들)의 값들이 보정될 것이다. 즉, 제 1 데이터에 포함된 비트들은 제 2 데이터에 포함된 에러 비트들에 의거하여 부분적으로 비트 플립될 것이다. 제 1 데이터에 포함된 비트들의 비트 플립 이후, 제 1 데이터는 관련된 패리티 정보에 의거하여 정정될 것이다. 비트 플립을 통해 제 1 데이터의 에러 비트들의 수(예를 들면, 3개)가 정정 가능한 범위(예를 들면, 4개)에 포함되기 때문에, 제 1 데이터는 관련된 패리티 정보에 의거하여 정정될 수 있다.
제 1 데이터가 정정 가능하지 않은 경우, 제 1 데이터와 관련된 제 2 데이터의 에러 비트들의 위치 정보가 검출되고, 검출된 위치 정보에 따라 제 1 데이터의 에러 비트들 중 일부를 보정할 수 있다. 하지만, 제 1 데이터와 관련된 데이터, 즉, 하나의 워드 라인에 연결된 메모리 셀들에 저장되는 페이지 데이터들 모두가 제 1 데이터의 에러 비트들 중 일부 또는 모두를 보정하는 데 사용될 수 있다. 이는 이후 상세히 설명될 것이다.
도 7은 도 5를 참조하여 설명된 데이터 정정 방식에 따른 데이터의 변화의 다른 예를 설명하기 위한 도면이다.
설명의 편의상, 메모리 제어기(1200)의 에러 정정 회로(1250)가 최대 4개의 에러 비트들을 정정한다고 가정하자. 불 휘발성 메모리 장치(1400)로부터 읽혀진 제 1 데이터는, 도 7에 도시된 바와 같이, 5개의 에러 비트들을 포함한다. 이러한 경우, 에러 정정 회로(1250)를 통해 제 1 데이터의 에러를 정정하는 것이 불가능하다. 본 발명의 예시적인 실시예에 의하면, 제 1 데이터의 에러 비트들의 수가 정정 가능한 비트 수를 초과한 경우, 메모리 제어기(1200)는 제 1 데이터와 관련된 제 2 데이터 및 제 3 데이터의 특성 정보(예를 들면, 제 2 데이터 및 제 3 데이터의 에러 비트들의 위치 정보)를 이용하여 제 1 데이터의 에러 비트들을 정정할 것이다.
제 1 데이터의 에러 비트들의 수가 정정 가능한 비트 수를 초과한 경우, 메모리 제어기(1200)의 제어하에 제 1 데이터와 관련된 제 2 데이터가 불 휘발성 메모리 장치(1400)로부터 읽혀질 것이다. 제 1 데이터와 마찬가지로, 제 2 데이터에 포함된 에러 비트들의 위치들이 검출될 것이다. 또한, 메모리 제어기(1200)의 제어하에 제 1 데이터와 관련된 제 3 데이터가 불 휘발성 메모리 장치(1400)로부터 읽혀질 것이다. 제 1 데이터와 마찬가지로, 제 3 데이터에 포함된 에러 비트들의 위치들이 검출될 것이다. 이후, 제 2 데이터 및 제 3 데이터에 포함된 에러 비트들의 위치들과 동일한 위치들에 각각 놓인 제 1 데이터에 포함된 에러 비트들(도 7에서 점선으로 표시된 에러 비트들)의 값들이 보정될 것이다. 즉, 제 1 데이터에 포함된 에러 비트들은 제 2 데이터 및 제 3 데이터에 포함된 에러 비트들에 의거하여 부분적으로 비트 플립될 것이다. 제 1 데이터에 포함된 에러 비트들의 비트 플립 이후, 제 1 데이터는 관련된 패리티 정보에 의거하여 정정될 것이다. 비트 플립을 통해 제 1 데이터의 에러 비트들의 수(예를 들면, 3개)가 정정 가능한 범위(예를 들면, 4개)에 포함되기 때문에, 제 1 데이터는 관련된 패리티 정보에 의거하여 정정될 수 있다.
도 8은 본 발명의 다른 예시적인 실시예에 따른 메모리 시스템의 동작 방법을 개략적으로 설명하기 위한 흐름도이다. 본 발명의 예시적인 실시예에 따른 메모리 시스템의 동작 방법이 참조 도면들에 의거하여 상세히 설명될 것이다.
S200 단계에서, 메모리 제어기(1200)는 읽기 요청된 데이터를 출력하도록 불 휘발성 메모리 장치(1400)를 제어할 것이다. 예를 들면, 읽기 명령 및 어드레스가 메모리 제어기(1200)에서 불 휘발성 메모리 장치(1400)로 전송될 것이다. 불 휘발성 메모리 장치(1400)는 입력된 어드레스에 대응하는 페이지의 데이터를 읽고, 읽혀진 데이터(이하, 제 1 데이터라 칭함)를 메모리 제어기(1200)로 출력할 것이다. S210 단계에서, 메모리 제어기(1200)는 제 1 데이터가 정정 가능한 데이터인 지의 여부를 판별할 것이다. 예를 들면, 메모리 제어기(1200)의 에러 정정 회로(1200)는 제 1 데이터와 관련된 패리티 정보에 의거하여 제 1 데이터에 포함된 에러 비트들의 수(또는, 위치들)를 검출하고, 검출된 에러 비트들의 수가 에러 정정 능력을 벗어났는 지의 여부를 판별할 것이다. 검출된 에러 비트들의 수가 에러 정정 능력을 벗어나지 않은 경우, 제 1 데이터의 에러는 정정될 것이다. S220 단계에서, 에러 정정된 데이터는 외부로 출력될 것이다.
여기서, 검출된 에러 비트들의 위치 정보 및 제 1 데이터는 메모리 제어기(1200) 내에 임시 저장될 것이다.
검출된 에러 비트들의 수가 에러 정정 능력을 벗어난 경우, 절차는 S230 단계로 진행할 것이다. S230 단계에서, 메모리 제어기(1200)는 제 1 데이터와 관련된 페이지의 데이터(이하, 제 2 데이터라 칭함)를 출력하도록 불 휘발성 메모리 장치(1400)를 제어할 것이다. 메모리 제어기(1200)의 에러 정정 회로(1200)는 불 휘발성 메모리 장치(1400)로부터 출력된 제 2 데이터와 관련된 패리티 정보에 의거하여 제 2 데이터에 포함된 에러 비트들의 위치들을 검출하고, 검출된 에러 비트들의 수가 에러 정정 능력을 벗어났는 지의 여부를 판별할 것이다. 검출된 에러 비트들의 수가 에러 정정 능력을 벗어나지 않은 경우, 제 1 데이터에 포함된 에러들의 위치들과 제 2 데이터에 포함된 에러들의 위치들이 비교될 것이다. 제 2 데이터의 에러 비트와 동일한 에러 위치에 놓인 제 1 데이터의 비트가 반대되는 값으로 치환될 것이다. 이러한 치환은 도 6 및 도 7에서 설명된 바와 같이 동일한 에러 위치들에 대한 모두 행해질 것이다. 즉, S240 단계에서, 제 1 데이터와 관련된 페이지의 데이터에 속한 에러 비트들에 의거하여 제 1 데이터에 속한 에러 비트들이 반대되는 값들로 치환될 것이다. 이러한 치환 동작에 의해 제 1 데이터에 속한 에러 비트들의 수가 감소될 수 있다.
예시적인 실시예에 있어서, S230 단계에서 도 6에서 설명된 바와 같이 제 2 데이터가 읽혀질 수 있다. 또한, S230 단계에서 도 7에서 설명된 바와 같이 제 2 데이터 및 제 3 데이터가 읽혀질 수 있다.
S250 단계에서, 제 1 데이터에 대응하는 패리티 정보에 의거하여, 상술한 바와 같이 치환된 제 1 데이터에 대한 에러 정정 동작이 행해질 것이다. 치환된 제 1 데이터가 에러 정정 가능한 경우, 즉, 치환된 제 1 데이터로부터 검출된 에러 비트들의 수가 에러 정정 능력을 벗어나지 않은 경우, 읽혀진 데이터의 에러는 정정될 것이다. S270 단계에서, 에러 정정된 데이터는 외부로 출력될 것이다. 치환된 제 1 데이터가 에러 정정 가능하지 않은 경우, 즉, 치환된 제 1 데이터로부터 검출된 에러 비트들의 수가 에러 정정 능력을 벗어난 경우, 절차는 S280 단계로 진행할 것이다. S280 단계에서, 읽기 재시도 동작이 행해질 것이다. 읽기 재시도 동작은 읽기 전압이 정해진 횟수 내에서 가변되는 상태에서 읽기 동작을 재시도하는 동작을 의미한다. 읽기 재시도 동작의 일예가 미국공개특허번호 제2010/0322007호에 "FLASH MEMORY DEVICE AND METHOD OF READING DATA"라는 제목으로 게재되어 있으며, 이 출원의 레퍼런스로 포함된다. 읽기 전압이 가변될 때마다 읽혀진 데이터가 에러 정정 가능한 지의 여부가 판별될 것이다. 읽기 재시도 동작을 통해 읽혀진 데이터가 에러 정정 가능한 경우, 절차는 S270 단계로 진행할 것이다. 읽기 재시도 동작을 통해 읽혀진 데이터가 에러 정정 가능하지 않은 경우, 절차는 S290 단계로 진행할 것이다. S290 단계에서, 읽기 페일 플래그가 생성될 것이다. 읽기 페일 플래그의 생성에 따른 절차는 다양하게 결정될 수 있다. 이후, 방법은 종료될 것이다.
예시적인 실시예에 있어서, S240 단계에서 읽혀진 제 2 데이터(또는, 제 2 및 제 3 데이터)의 에러 비트들의 수가 에러 정정 가능한 범위를 벗어난 경우, 읽기 페일 플래그가 생성될 수 있다.
예시적인 실시예에 있어서, 정정 가능하지 않은 데이터에 포함된 에러 비트들에 대한 비트 플립 동작은 메모리 제어기(1200) 내에서 행해진다. 또는, 정정 가능하지 않은 데이터에 포함된 에러 비트들에 대한 비트 플립 동작은 메모리 제어기(1200)의 제어하에 불 휘발성 메모리 장치(1400) 내에서 행해질 수 있다. 예를 들면, 정정 가능하지 않은 데이터는 불 휘발성 메모리 장치(1400)의 페이지 버퍼 회로(1450)의 래치들에 임시 저장되고, 정정 가능하지 않은 데이터와 관련된 데이터에 의거하여 검출된 에러 위치 정보를 이용하여 임시 저장된 데이터의 에러 비트들이 랜덤 데이터 입력 동작을 통해 불 휘발성 메모리 장치(1400)로 제공될 수 있다. 이후, 페이지 버퍼 회로(1450)에 임시 저장된 그리고 랜덤 데이터 입력 동작을 통해 비트 플립된 데이터(또는, 비트 플립된 페이지 데이터)가 메모리 제어기(1200)로 제공될 수 있다. 메모리 제어기(1200)는 패리티 정보에 의거하여 비트 플립된 데이터의 에러를 정정할 것이다.
도 9는 본 발명의 실시예에 따른 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
컴퓨팅 시스템은 처리 유니트(2101), 사용자 인터페이스(2202), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(2303), 메모리 제어기(2404), 그리고 저장 매체로서 불 휘발성 메모리 장치(2505)를 포함한다. 메모리 제어기(2404)와 불 휘발성 메모리 장치(2505)는 도 2에 도시된 것과 실질적으로 동일하게 구성될 것이다. 즉, 불 휘발성 메모리 장치(2505)로부터 읽혀진 제 1 데이터의 에러가 정정 가능하지 않은 경우, 메모리 제어기(2404)는 제 1 데이터와 관련된 데이터 모두 또는 일부의 에러 위치 정보에 의거하여 비트 플립 동작을 통해 제 1 데이터에 포함된 에러 비트들의 일부를 보정한다. 이후, 메모리 제어기(2404)는 비트 플립된 제 1 데이터의 에러를 정정한다. 결과적으로, 메모리 제어기(2404)의 에러 정정 회로의 에러 정정 능력을 확장하지 않고 에러 정정 능력을 벗어난 데이터의 에러를 정정하는 것이 가능하다. 불 휘발성 메모리 장치(2505)에는 처리 유니트(2101)에 의해서 처리된/처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 메모리 제어기(2404)를 통해 저장될 것이다. 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리(2606)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 잘 이해될 것이다.
도 10은 본 발명의 실시예에 따른 반도체 드라이브를 개략적으로 보여주는 블록도이다.
도 10을 참조하면, 반도체 드라이브(4000)(SSD)는 저장 매체(4100)와 제어기(4200)를 포함할 것이다. 저장 매체(4100)는 복수의 채널들을 통해 제어기(4200)와 연결될 것이다. 각 채널에는 복수의 불 휘발성 메모리들이 공통으로 연결될 것이다. 각 불 휘발성 메모리 및 제어기(4200)는 도 2에 도시된 것과 실질적으로 동일하게 구성될 것이다. 즉, 불 휘발성 메모리로부터 읽혀진 제 1 데이터의 에러가 정정 가능하지 않은 경우, 메모리 제어기(4200)는 제 1 데이터와 관련된 데이터 모두 또는 일부의 에러 위치 정보에 의거하여 비트 플립 동작을 통해 제 1 데이터에 포함된 에러 비트들의 일부를 보정한다. 이후, 메모리 제어기(4200)는 비트 플립된 제 1 데이터의 에러를 정정한다. 결과적으로, 메모리 제어기(4200)의 에러 정정 회로의 에러 정정 능력을 확장하지 않고 에러 정정 능력을 벗어난 데이터의 에러를 정정하는 것이 가능하다.
도 11은 도 10에 도시된 반도체 드라이브를 이용한 스토리지를 개략적으로 보여주는 블록도이고, 도 12는 도 10에 도시된 반도체 드라이브를 이용한 스트리지 서버를 개략적으로 보여주는 블록도이다.
본 발명의 실시예에 따른 반도체 드라이브(4000)는 스토리지를 구성하는 데 사용될 수 있다. 도 11에 도시된 바와 같이, 스토리지는 도 10에서 설명된 것과 실질적으로 동일하게 구성되는 복수의 반도체 드라이브들을 포함할 것이다. 본 발명의 실시예에 따른 반도체 드라이브(4000)는 스토리지 서버를 구성하는 데 사용될 수 있다. 도 12에 도시된 바와 같이, 스토리지 서버는 도 10에서 설명된 것과 실질적으로 동일하게 구성되는 복수의 반도체 드라이브들(4000), 그리고 서버(4000A)를 포함할 것이다. 또한, 이 분야에 잘 알려진 RAID 제어기(4000B)가 스토리지 서버에 제공될 수 있음은 잘 이해될 것이다.
도 13은 본 발명의 실시예들에 따른 데이터 저장 장치가 적용되는 시스템을 개략적으로 보여주는 도면이다.
도 13에 도시된 바와 같이, 본 발명의 실시예에 따른 데이터 저장 장치를 포함한 반도체 드라이브는 메일 서버(8100)에도 적용될 수 있다.
도 14는 본 발명의 실시예에 따른 메모리 카드(memory card)를 개략적으로 보여주는 블록도이다.
메모리 카드는 예를 들어, MMC 카드, SD카드, 멀티유즈(multiuse) 카드, 마이크로 SD카드, 메모리 스틱, 컴팩트 SD 카드, ID 카드, PCMCIA 카드, SSD카드, 칩카드(chipcard), 스마트카드(smartcard), USB카드 등일 수 있다.
도 14를 참조하면, 메모리 카드는 외부와의 인터페이스를 수행하는 인터페이스부(9221), 버퍼 메모리를 갖고 메모리 카드의 동작을 제어하는 제어기(9222), 하나 또는 그 보다 많은 불 휘발성 메모리 장치들(9207)을 포함할 것이다. 제어기(9222)는 프로세서로서, 불 휘발성 메모리 장치(9207)의 라이트 동작 및 리드 동작을 제어할 수 있다. 구체적으로, 컨트롤러(9222)는 데이터 버스(DATA)와 어드레스 버스(ADDRESS)를 통해서 불 휘발성 메모리 장치(9207) 및 인터페이스부(9221)와 커플링되어 있다. 제어기(9222)와 불 휘발성 메모리(9207)는 도 2에서 설명된 메모리 제어기와 불 휘발성 메모리 장치에 대응할 것이다. 즉, 불 휘발성 메모리(9207)로부터 읽혀진 제 1 데이터의 에러가 정정 가능하지 않은 경우, 제어기(9222)는 제 1 데이터와 관련된 데이터 모두 또는 일부의 에러 위치 정보에 의거하여 비트 플립 동작을 통해 제 1 데이터에 포함된 에러 비트들의 일부를 보정한다. 이후, 제어기(9222)는 비트 플립된 제 1 데이터의 에러를 정정한다. 결과적으로, 제어기(9222)의 에러 정정 회로의 에러 정정 능력을 확장하지 않고 에러 정정 능력을 벗어난 데이터의 에러를 정정하는 것이 가능하다.
도 15는 본 발명의 실시예에 따른 디지털 스틸 카메라(digital still camera)를 개략적으로 보여주는 블록도이다.
도 15를 참조하면, 디지털 스틸 카메라는 바디(9301), 슬롯(9302), 렌즈(9303), 디스플레이부(9308), 셔터 버튼(9312), 스트로브(strobe)(9318) 등을 포함한다. 특히, 슬롯(9308)에는 메모리 카드(9331)가 삽입될 수 있고, 메모리 카드(9331)는 도 2에서 설명된 메모리 제어기 및 불 휘발성 메모리 장치를 포함할 것이다. 즉, 불 휘발성 메모리로부터 읽혀진 제 1 데이터의 에러가 정정 가능하지 않은 경우, 메모리 제어기는 제 1 데이터와 관련된 데이터 모두 또는 일부의 에러 위치 정보에 의거하여 비트 플립 동작을 통해 제 1 데이터에 포함된 에러 비트들의 일부를 보정한다. 이후, 메모리 제어기는 비트 플립된 제 1 데이터의 에러를 정정한다. 결과적으로, 메모리 제어기의 에러 정정 회로의 에러 정정 능력을 확장하지 않고 에러 정정 능력을 벗어난 데이터의 에러를 정정하는 것이 가능하다.
메모리 카드(9331)가 접촉형(contact type)인 경우, 메모리 카드(9331)가 슬롯(9308)에 삽입될 때 메모리 카드(9331)와 회로 기판 상의 특정 전기 회로가 전기적으로 접촉하게 된다. 메모리 카드(9331)가 비접촉형(non-contact type)인 경우, 무선 신호를 통해서 메모리 카드(9331)가 액세스될 것이다.
도 16은 도 14의 메모리 카드가 사용되는 다양한 시스템을 설명하는 예시적 도면이다.
도 16을 참조하면, 메모리 카드(9331)는 비디오 카메라(VC), 텔레비전(TV), 오디오 장치(AD), 게임장치(GM), 전자 음악 장치(EMD), 휴대폰(HP), 컴퓨터(CP), PDA(Personal Digital Assistant), 보이스 레코더(voice recorder)(VR), PC 카드(PCC), 등에 사용될 수 있다.
본 발명의 실시예에 있어서, 메모리 셀들은 가변 저항 메모리 셀로 구성될 수 있으며, 예시적인 가변 저항 메모리 셀 및 그것을 포함한 메모리 장치가 미국특허번호 제7529124호에 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다.
본 발명의 다른 실시예에 있어서, 메모리 셀들은 전하 저장층을 갖는 다양한 셀 구조들 중 하나를 이용하여 구현될 수 있다. 전하 저장층을 갖는 셀 구조는 전하 트랩층을 이용하는 전하 트랩 플래시 구조, 어레이들이 다층으로 적층되는 스택 플래시 구조, 소오스-드레인이 없는 플래시 구조, 핀-타입 플래시 구조, 등을 포함할 것이다.
전하 저장층으로서 전하 트랩 플래시 구조를 갖는 메모리 장치가 미국특허 제6858906호, 미국공개특허 제2004-0169238호, 그리고 미국공개특허 제2006-0180851호에 각각 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다. 소오스/드레인이 없는 플래시 구조는 대한민국특허 제673020호에 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다.
본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 제어기는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 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), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
1000: 메모리 시스템
1200: 메모리 제어기
1400: 불 휘발성 메모리 장치
1200: 메모리 제어기
1400: 불 휘발성 메모리 장치
Claims (10)
- 불 휘발성 메모리 장치를 제어하고, 에러 정정 회로를 포함하는 메모리 제어기의 에러 정정 방법에 있어서:
상기 불 휘발성 메모리 장치로부터 제1 데이터 및 상기 에러 정정 회로에 의해 상기 제1 데이터로부터 생성된 제1 패리티 정보를 읽고;
상기 제1 패리티 정보에 의거하여 상기 불 휘발성 메모리 장치로부터 읽혀진 상기 제 1 데이터가 에러 정정 가능한 지의 여부를 판별하고;
상기 제 1 데이터가 에러 정정 가능하지 않은 경우, 제 2 데이터 및 상기 에러 정정 회로에 의해 상기 제2 데이터로부터 생성된 제2 패리티 정보를 상기 불 휘발성 메모리 장치로부터 읽고;
상기 제1 패리티 정보에 기반한 상기 제1 데이터의 에러 정보와 상기 제2 패리티 정보에 기반한 상기 제2 데이터의 에러 정보를 비교하고; 그리고
상기 비교의 결과에 따라 상기 제1 데이터의 적어도 하나의 비트를 수정하는 것을 포함하는 것을 특징으로 하는 에러 정정 방법. - 제 1 항에 있어서,
상기 제1 데이터는 워드 라인에 연결된 메모리 셀들에 저장된 제1 비트들을 포함하고, 상기 제2 데이터는 상기 워드 라인에 연결된 상기 메모리 셀들에 저장된 제2 비트들을 포함하는 것을 특징으로 하는 에러 정정 방법. - 제 2 항에 있어서,
상기 불 휘발성 메모리 장치는 셀 당 2-비트 데이터를 저장하도록 구성되는 것을 특징으로 하는 에러 정정 방법. - 제 2 항에 있어서,
상기 불 휘발성 메모리 장치는 셀 당 M-비트 데이터 (M은 3 또는 그 보다 큰 정수)를 저장하도록 구성되는 것을 특징으로 하는 에러 정정 방법. - 제 4 항에 있어서,
상기 제 2 데이터는 상기 제 1 데이터와 동일한 워드 라인에 연결된 메모리 셀들에 저장되고 상기 제 1 데이터와 다른 페이지 데이터 중 일부 또는 모두인 것을 특징으로 하는 에러 정정 방법. - 제 4 항에 있어서,
상기 제 2 데이터는 상기 제 1 데이터와 동일한 워드 라인에 저장되고, 상기 제 1 데이터 및 상기 제 2 데이터는 상기 동일한 워드 라인에 연결된 메모리 셀들에 저장되는 상위 페이지 데이터 및 하위 페이지 데이터인 것을 특징으로 하는 에러 정정 방법. - 제 1 항에 있어서,
상기 제1 데이터의 상기 적어도 하나의 비트를 수정한 후에, 상기 제1 패리티 정보에 의거하여 상기 제1 데이터의 에러를 정정하는 것을 더 포함하는 것을 특징으로 하는 에러 정정 방법. - 제 7 항에 있어서,
상기 제1 데이터의 상기 적어도 하나의 비트를 수정한 후에, 상기 제 1 데이터가 에러 정정 가능하지 않은 것으로 판별되는 경우, 읽기 재시도 동작을 수행하는 것을 더 포함하는 것을 특징으로 하는 에러 정정 방법. - 제 7 항에 있어서,
상기 제1 데이터의 상기 적어도 하나의 비트를 수정하는 것은 상기 메모리 제어기 내에서 또는 상기 메모리 제어기의 제어하에 상기 불 휘발성 메모리 장치 내에서 행해지는 것을 특징으로 하는 에러 정정 방법. - 메모리 셀 어레이를 포함하는 불 휘발성 메모리 장치; 그리고
상기 불 휘발성 메모리 장치의 동작을 제어하도록 구성되고, 그리고 상기 불 휘발성 메모리 장치로부터 읽은 데이터의 에러 비트를 정정하는 패리티 정보를 생성하는 에러 정정 회로를 포함하는 메모리 제어기를 포함하고,
상기 메모리 제어기는 읽기 명령에 응답하여 워드 라인에 공통으로 연결된 메모리 셀들로부터 제1 데이터 및 상기 에러 정정 회로에 의해 상기 제1 데이터로부터 생성된 제1 패리티 정보를 읽고, 상기 제1 패리티 정보에 의거하여 상기 불 휘발성 메모리 장치로부터 읽혀진 상기 제 1 데이터가 에러 정정 가능한 지의 여부를 판별하고, 상기 제 1 데이터가 에러 정정 가능하지 않은 경우, 제 2 데이터 및 상기 에러 정정 회로에 의해 상기 제2 데이터로부터 생성된 제2 패리티 정보를 상기 불 휘발성 메모리 장치로부터 읽고, 상기 제1 패리티 정보에 기반한 상기 제1 데이터의 에러 정보와 상기 제2 패리티 정보에 기반한 상기 제2 데이터의 에러 정보를 비교하고, 그리고 상기 비교의 결과에 따라 상기 제1 데이터의 적어도 하나의 비트를 수정하는 메모리 시스템.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120000589A KR101941270B1 (ko) | 2012-01-03 | 2012-01-03 | 멀티-레벨 메모리 장치를 제어하는 메모리 제어기 및 그것의 에러 정정 방법 |
US13/597,447 US8934301B2 (en) | 2012-01-03 | 2012-08-29 | Memory controller for multi-level memory device and error correcting method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120000589A KR101941270B1 (ko) | 2012-01-03 | 2012-01-03 | 멀티-레벨 메모리 장치를 제어하는 메모리 제어기 및 그것의 에러 정정 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130079850A KR20130079850A (ko) | 2013-07-11 |
KR101941270B1 true KR101941270B1 (ko) | 2019-04-10 |
Family
ID=48694686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120000589A KR101941270B1 (ko) | 2012-01-03 | 2012-01-03 | 멀티-레벨 메모리 장치를 제어하는 메모리 제어기 및 그것의 에러 정정 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8934301B2 (ko) |
KR (1) | KR101941270B1 (ko) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130049332A (ko) * | 2011-11-04 | 2013-05-14 | 삼성전자주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR101938210B1 (ko) * | 2012-04-18 | 2019-01-15 | 삼성전자주식회사 | 낸드 플래시 메모리, 가변 저항 메모리 및 컨트롤러를 포함하는 메모리 시스템의 동작 방법 |
US8839074B2 (en) * | 2012-09-13 | 2014-09-16 | Sandisk Technologies Inc. | On chip data recovery for non-volatile storage |
US9244766B2 (en) * | 2013-09-23 | 2016-01-26 | Seagate Technology Llc | Variable data recovery scheme hierarchy |
US9684559B1 (en) | 2014-04-25 | 2017-06-20 | Altera Corporation | Methods and apparatus for storing error correction information on a memory controller circuit |
KR102190241B1 (ko) * | 2014-07-31 | 2020-12-14 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 시스템 |
US9952981B2 (en) | 2014-09-29 | 2018-04-24 | Apple Inc. | Read cache management in multi-level cell (MLC) non-volatile memory |
KR20160059050A (ko) | 2014-11-17 | 2016-05-26 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102532581B1 (ko) * | 2016-03-17 | 2023-05-17 | 에스케이하이닉스 주식회사 | 메모리 장치를 포함하는 메모리 시스템 및 그의 동작 방법 |
US10043573B2 (en) | 2016-08-04 | 2018-08-07 | Intel Corporation | Apparatus and method for endurance friendly programming using lower voltage thresholds |
US10095424B2 (en) | 2016-08-04 | 2018-10-09 | Intel Corporation | Apparatus and method for programming non-volatile memory using a multi-cell storage cell group |
DE102016115177B4 (de) * | 2016-08-16 | 2023-10-12 | Infineon Technologies Ag | Verfahren zum Betreiben einer Speichervorrichtung und Speichervorrichtung |
US10083742B2 (en) | 2016-09-26 | 2018-09-25 | Intel Corporation | Method and apparatus for programming non-volatile memory using a multi-cell storage cell group to provide error location information for retention errors |
KR102663813B1 (ko) * | 2017-01-13 | 2024-05-07 | 삼성전자주식회사 | 최적의 읽기 전압으로 독출하는 불휘발성 메모리 장치 |
US10572344B2 (en) | 2017-04-27 | 2020-02-25 | Texas Instruments Incorporated | Accessing error statistics from DRAM memories having integrated error correction |
KR102468751B1 (ko) * | 2018-05-09 | 2022-11-21 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR102659892B1 (ko) | 2018-07-24 | 2024-04-24 | 삼성전자주식회사 | 객체 인식 장치, 이를 포함하는 전자 장치 및 객체 인식 방법 |
KR20210034711A (ko) * | 2019-09-20 | 2021-03-31 | 삼성전자주식회사 | 메모리 셀의 신뢰성에 따라 패리티 비트들을 선택적으로 생성하는 저장 장치 및 그것의 동작 방법 |
CN115312104B (zh) * | 2022-09-30 | 2022-12-13 | 芯天下技术股份有限公司 | 闪存芯片配置信息读取方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080244338A1 (en) * | 2007-03-31 | 2008-10-02 | Nima Mokhlesi | Soft bit data transmission for error correction control in non-volatile memory |
US20090319843A1 (en) * | 2008-06-22 | 2009-12-24 | Sandisk Il Ltd. | Method and apparatus for error correction |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060218467A1 (en) * | 2005-03-24 | 2006-09-28 | Sibigtroth James M | Memory having a portion that can be switched between use as data and use as error correction code (ECC) |
KR101434405B1 (ko) | 2008-02-20 | 2014-08-29 | 삼성전자주식회사 | 메모리 장치 및 메모리 데이터 읽기 방법 |
US7808831B2 (en) * | 2008-06-30 | 2010-10-05 | Sandisk Corporation | Read disturb mitigation in non-volatile memory |
CN101872644A (zh) | 2009-04-24 | 2010-10-27 | 威刚科技(苏州)有限公司 | 电子存储装置及其存储方法 |
CN101923896A (zh) | 2009-06-12 | 2010-12-22 | 威刚科技(苏州)有限公司 | 电子存储装置及其纠错方法 |
US8429468B2 (en) | 2010-01-27 | 2013-04-23 | Sandisk Technologies Inc. | System and method to correct data errors using a stored count of bit values |
-
2012
- 2012-01-03 KR KR1020120000589A patent/KR101941270B1/ko active IP Right Grant
- 2012-08-29 US US13/597,447 patent/US8934301B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080244338A1 (en) * | 2007-03-31 | 2008-10-02 | Nima Mokhlesi | Soft bit data transmission for error correction control in non-volatile memory |
US20090319843A1 (en) * | 2008-06-22 | 2009-12-24 | Sandisk Il Ltd. | Method and apparatus for error correction |
Also Published As
Publication number | Publication date |
---|---|
US20130170296A1 (en) | 2013-07-04 |
US8934301B2 (en) | 2015-01-13 |
KR20130079850A (ko) | 2013-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101941270B1 (ko) | 멀티-레벨 메모리 장치를 제어하는 메모리 제어기 및 그것의 에러 정정 방법 | |
US9672104B2 (en) | Memory system and read reclaim method thereof | |
US10169227B2 (en) | Memory controller and memory system including the same | |
JP6072442B2 (ja) | メモリシステム及びそれの動作方法 | |
US8644066B2 (en) | Multi-level non-volatile memory device, system and method with state-converted data | |
CN107133122B (zh) | 存储器控制方法 | |
KR101818176B1 (ko) | 메모리 시스템 및 그것의 동작 방법 | |
US9361985B2 (en) | Nonvolatile memory devices including simultaneous impedance calibration and input command | |
US9183938B2 (en) | Nonvolatile memory device and method of programming nonvolatile memory device | |
KR101923157B1 (ko) | 메모리 시스템 및 그것의 프로그램 방법 | |
KR101938659B1 (ko) | 불 휘발성 메모리 장치 및 그것을 포함한 메모리 시스템 | |
US9543983B2 (en) | Decoding method, memory storage device and memory control circuit unit | |
KR20140100330A (ko) | 메모리 시스템 및 그것의 동작 방법 | |
US20130318420A1 (en) | Code modulation encoder and decoder, memory controller including them, and flash memory system | |
US10324785B2 (en) | Decoder using low-density parity-check code and memory controller including the same | |
US20130223156A1 (en) | Nonvolatile memory device and memory system including the same | |
CN117856800A (zh) | 广义ldpc编码器、广义ldpc编码方法和存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |