KR101598382B1 - 상태 기반 불휘발성 메모리 장치 및 그것의 에러 정정 방법 - Google Patents

상태 기반 불휘발성 메모리 장치 및 그것의 에러 정정 방법 Download PDF

Info

Publication number
KR101598382B1
KR101598382B1 KR1020100018657A KR20100018657A KR101598382B1 KR 101598382 B1 KR101598382 B1 KR 101598382B1 KR 1020100018657 A KR1020100018657 A KR 1020100018657A KR 20100018657 A KR20100018657 A KR 20100018657A KR 101598382 B1 KR101598382 B1 KR 101598382B1
Authority
KR
South Korea
Prior art keywords
read
codeword
bit
memory
data
Prior art date
Application number
KR1020100018657A
Other languages
English (en)
Other versions
KR20110099563A (ko
Inventor
김용준
김재홍
공준진
손홍락
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020100018657A priority Critical patent/KR101598382B1/ko
Priority to US13/039,004 priority patent/US8482977B2/en
Publication of KR20110099563A publication Critical patent/KR20110099563A/ko
Application granted granted Critical
Publication of KR101598382B1 publication Critical patent/KR101598382B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1072Adding 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

본 발명에 따른 상태 기반 불휘발성 메모리 장치의 에러 정정 방법은, 부호어(Codeword)를 선택된 메모리 셀들에 할당하되, 상기 부호어 중 제 1 비트 그룹을 제 1 메모리 셀에, 상기 부호어 중 제 2 비트 그룹을 제 2 메모리 셀에 할당하는 단계, 그리고 상기 부호어를 상기 선택된 메모리 셀들에 프로그램하는 단계를 포함하되, 상기 제 1 비트 그룹과 상기 제 2 비트 그룹은 각각 상기 부호어 상에서 연속되는 비트들이다.

Description

상태 기반 불휘발성 메모리 장치 및 그것의 에러 정정 방법{STATE BASED NONVOLATILE MEMORY DEVICE AND ERROR CORRECT METHOD THEREOF}
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 상태 기반 불휘발성 메모리 장치 및 그것의 에러 정정 방법에 관한 것이다.
반도체 메모리 장치(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) 등이 있다.
최근에는, 랜덤 액세스(Random access)가 가능하고 저전력, 고속 및 대용량을 실현할 수 있는 불휘발성 메모리 장치에 대한 수요가 날로 증가하고 있다. 예를 들면, 랜덤 액세스가 가능한 불휘발성 메모리 장치를 XIP(EXecute In Place) 메모리로 사용하기 위한 연구가 활발히 이루어지고 있다. 따라서, 덮어쓰기 가능한 불휘발성 메모리(Over writable NVM) 소자에 대한 연구가 지속되고 있다.
덮어쓰기 가능한 불휘발성 메모리를 상태 기반 불휘발성 메모리(State-based Nonvolatile memory)라고도 한다. 멀티-비트 데이터라 할지라도 페이지 단위로 프로그램되는 플래시 메모리 소자와는 달리, 상태 기반 불휘발성 메모리 장치는 2-비트 이상의 데이터를 한번에 프로그램할 수 있다. 상태 기반 불휘발성 메모리 소자의 예로, 강유전체 커패시터를 이용한 강유전체 램(Ferroelectric RAM: FRAM), 티엠알(TMR: Tunneling magneto-resistive) 막을 이용한 마그네틱 램(Magnetic RAM: MRAM), 칼코겐 혼합물(Chalcogenide alloys)을 이용한 상 변화 메모리 장치(Phase change memory device: PRAM) 그리고 가변 저항 물질막을 데이터 저장매체로 사용하는 저항성 램(Resistive RAM: ReRAM) 등이 있다.
최근까지는 상태 기반 불휘발성 메모리 장치의 에러 검출 및 정정(Error Detection and Correction) 기술은 크게 부각되지 못했다. 하지만, 집적도 증가와 소자 기술의 발전에 따라 상태 기반 불휘발성 메모리 장치에서도 에러의 검출과 정정을 위한 기술이 요구되고 있는 실정이다.
본 발명의 목적은 상술한 제반 문제점을 해결하기 위해 제안된 것으로, 상태 기반 불휘발성 메모리 장치 및 그것의 에러 정정 방법을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명에 따른 상태 기반 불휘발성 메모리 장치의 에러 정정 방법은, 부호어(Codeword)를 선택된 메모리 셀들에 할당하되, 상기 부호어 중 제 1 비트 그룹을 제 1 메모리 셀에, 상기 부호어 중 제 2 비트 그룹을 제 2 메모리 셀에 할당하는 단계, 그리고 상기 부호어를 상기 선택된 메모리 셀들에 프로그램하는 단계를 포함하되, 상기 제 1 비트 그룹과 상기 제 2 비트 그룹은 각각 상기 부호어 상에서 연속되는 비트들이다.
상기 목적을 달성하기 위한 본 발명의 불휘발성 메모리 장치는, 상태 기반 프로그램이 가능한 멀티 비트 불휘발성 메모리 셀들을 포함하는 셀 어레이, 어느 하나의 부호어에 포함되는 데이터 비트들을 복수의 비트 그룹들로 분할하는 에러 정정 회로, 그리고 상기 복수의 비트 그룹들 각각을 상기 셀 어레이의 선택된 메모리 셀들 각각에 프로그램하는 읽기/쓰기 회로를 포함하되, 상기 복수의 비트 그룹들 각각은 상기 부호어 상에서의 비트 순서를 유지한다.
이상과 같은 본 발명에 따른 상태 기반 불휘발성 메모리 장치 및 그것의 에러 정정 코딩 방법에 따르면, 하나의 부호어를 구성하는 비트들 각각에 대한 비트 에러율을 평균화할 수 있다. 그리고 에러의 검출과 정정을 위한 에러 정정 코드를 용이하게 설계할 수 있고, 비트 에러율을 효율적으로 제어할 수 있다. 따라서, 본 발명은 고신뢰성을 갖는 상태 기반 불휘발성 메모리 장치를 제공할 수 있다.
도 1은 페이지 기반 불휘발성 메모리 장치의 쓰기 방법을 보여주는 도면;
도 2는 페이지 기반 불휘발성 메모리 장치의 읽기 방법을 보여주는 도면;
도 3은 상태 기반 불휘발성 메모리 장치의 쓰기 방법을 보여주는 도면;
도 4는 본 발명의 실시 예에 따른 불휘발성 메모리 장치를 보여주는 블록도;
도 5는 본 발명에 따른 부호어 구성 방법의 일 실시 예를 보여주는 도면;
도 6은 본 발명에 따른 부호어 구성 방법의 다른 실시 예를 보여주는 도면;
도 7은 본 발명에 따른 부호어 구성 방법의 또 다른 실시 예를 보여주는 도면;
도 8은 본 발명의 실시 예에 따른 프로그램 방법을 보여주는 순서도;
도 9는 본 발명에 따른 읽기 방법의 일 실시 예를 보여주는 도면;
도 10은 본 발명에 따른 읽기 방법의 다른 실시 예를 보여주는 도면;
도 11은 본 발명에 따른 읽기 방법을 보여주는 순서도;
도 12는 본 발명의 상태 기반 에러 정정을 수행하는 메모리 시스템을 보여주는 블록도;
도 13은 본 발명의 상태 기반 불휘발성 메모리 장치를 포함하는 컴퓨터 시스템을 보여주는 블록도;
도 14는 본 발명의 상태 기반 불휘발성 메모리 장치의 적용의 일 예를 보여주는 블록도;
도 15는 본 발명의 상태 기반 불휘발성 메모리 장치가 장착되는 메모리 카드의 예를 보여주는 블록도;
도 16은 호스트가 본 발명의 상태 기반 불휘발성 메모리 장치에 직접 연결되는 적용 예를 보여주는 블록도;
도 17은 도 15의 메모리 카드가 장착되는 컴퓨터 시스템을 보여주는 블록도;
도 18은 발명의 상태 기반 불휘발성 메모리 장치가 중앙 처리 장치에 직접 연결되는 컴퓨터 시스템을 보여주는 블록도;
도 19는 본 발명에 따른 상태 기반 불휘발성 메모리 장치를 사용하는 휴대용 시스템의 블록도;
도 20은 본 발명에 따른 상태 기반 불휘발성 메모리 장치를 포함하는 메모리 시스템의 일 예를 보여주는 블록도;
도 21은 본 발명에 따른 상태 기반 불휘발성 메모리 장치를 포함하는 메모리 시스템의 다른 예를 보여주는 블록도; 그리고
도 22는 본 발명에 따른 상태 기반 불휘발성 메모리 장치를 포함하는 메모리 시스템의 또 다른 예를 보여주는 블록도.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
이하에서는, 상태 기반 불휘발성 메모리 장치로 상변화 메모리 장치(PRAM)가 본 발명의 특징 및 기능을 설명하기 위한 한 예로서 사용될 것이다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다. 이하, 본 발명에 따른 실시 예를 첨부된 도면을 참조하여 상세히 설명한다.
도 1은 페이지 기반 불휘발성 메모리 장치의 프로그램 방법을 예시적으로 보여주는 도면이다. 도 1을 참조하면, 2-비트 멀티 레벨 셀(MLC)을 포함하는 플래시 메모리 장치의 문턱 전압 산포의 변화가 도시되어 있다.
제 1 페이지(Page1)가 프로그램되면, 선택된 메모리 셀들은 소거 상태(E0) 또는 프로그램 상태(P2′)에 대응하는 문턱 전압으로 프로그램된다. 2-비트 멀티 레벨 셀(MLC)의 제 1 페이지(Page1)는 최하위 비트(Least Significant Bit: LSB) 페이지라 부르기도 한다.
제 2 페이지(Page2)의 프로그램에 따라, 메모리 셀들의 문턱 전압은 소거 상태(E0)를 유지하거나 프로그램 상태(P1)로 이동한다. 또는, 프로그램 상태(P2′)에 대응하는 문턱 전압을 가지는 메모리 셀들은 제 2 페이지(Page2)의 프로그램에 따라 프로그램 상태(P2) 또는 프로그램 상태(P3)로 프로그램될 수 있다.
이상의 설명과 같이, 멀티-레벨 셀(MLC) 플래시 메모리 장치의 데이터 프로그램은 페이지 단위로 실시된다. 즉, 2-비트 MLC에는 2회의 프로그램 동작을 통해서 2-비트의 데이터가 기입된다. 3-비트 MLC의 경우에는 3회에 걸쳐 3개의 페이지 단위로 데이터가 기입될 것이다. 이러한 이유로 플래시 메모리 장치를 페이지 기반(Page-based) 불휘발성 메모리 장치로 칭하기도 한다. 페이지 단위로 몇 단계에 걸쳐 프로그램하는 이유는 인접 셀 간 커플링(coupling)의 영향을 줄이기 위한 것이다. 이와 같은 프로그래밍 방식을 셰도우 프로그래밍(Shadow programming)이라고 부르기도 한다. 프로그램에 소요되는 시간, 제어 동작의 복잡도는 멀티 레벨 셀의 페이지마다 다르다. 프로그램되는 데이터의 페이지 수가 증가할수록 프로그램에 소요되는 시간은 길어지고, 복잡도는 높아진다.
도 2는 상술한 페이지 기반 불휘발성 메모리 장치의 읽기 방법을 보여주는 도면이다. 도 2를 참조하면, 3-비트 멀티 레벨 셀(MLC)에 저장된 데이터를 읽기 위해서는 3개의 페이지들(Page1, Page2, Page3)이 순차적으로 읽혀져야 한다. 예를 들면, 제 1 페이지(Page1)를 읽기 위해서는 읽기 전압(Vrd1)이 선택된 메모리 셀들의 워드 라인에 제공된다. 읽기 전압(Vrd1)에 의해서 온셀(On cell)로 판정된 셀은 논리 '1'로 독출된다. 읽기 전압(Vrd1)에 의해서 오프 셀(Off cell)로 판정된 셀은 논리 '0'으로 독출된다.
제 2 페이지(Page2)를 읽기 위해서는 읽기 전압(Vrd21) 및 읽기 전압(Vrd22)이 선택된 메모리 셀들의 워드 라인에 순차적으로 제공되어야 한다. 제 1 페이지(Page1)의 읽기 동작시 논리 '1'로 읽혀진 메모리 셀들 중, 읽기 전압(Vrd21)에 의해서 온셀(On cell)로 판정된 셀은 논리 '1'로 제 2 페이지(Page2)가 독출된다. 제 1 페이지(Page1)의 읽기 동작시 논리 '1'로 읽혀진 메모리 셀들 중, 읽기 전압(Vrd21)에 의해서 오프 셀(Off cell)로 판정된 셀은 논리 '0'으로 제 2 페이지(Page2)가 독출된다.
제 1 페이지(Page1)의 읽기 동작시 논리 '0'으로 읽혀진 메모리 셀들 중, 읽기 전압(Vrd22)에 의해서 온셀(On cell)로 판정된 셀은 논리 '0'으로 제 2 페이지(Page2)가 독출된다. 제 1 페이지(Page1)의 읽기 동작시 논리 '0'으로 읽혀진 메모리 셀들 중, 읽기 전압(Vrd22)에 의해서 오프 셀(Off cell)로 판정된 셀은 논리 '1'로 제 2 페이지(Page2)가 독출된다.
이러한 방식으로 제 3 페이지(Page3)에 해당하는 데이터를 독출하기 위해서는 읽기 전압들(Vrd21, Vrd22) 및 읽기 전압들(Vrd31, Vrd32, Vrd33, Vrd34)에 의해서 선택된 메모리 셀들이 센싱되어야 한다. 하지만, 하나의 멀티 레벨 셀(MLC)로부터 3-비트의 데이터를 읽어내기 위해서는 각 페이지들(Page1, Page2, Page3)마다 다른 센싱 조건이 제공된다. 예를 들면, 제 1 페이지(Page1)를 읽어내기 읽기 전압(Vrd1)이 한 번만 선택된 메모리 셀들에 인가되면 된다. 하지만, 제 2 페이지(Page2)를 읽기 위해서는 총 2회의 읽기 동작이 소요된다. 제 3 페이지(Page3)를 읽기 위해서는 총 4회의 읽기 동작이 필요하다.
이러한 조건은 페이지들 각각이 서로 다른 비트 에러율(Bit Error Rate: BER)로 독출됨을 의미한다. 페이지 단위로 프로그램되거나 독출되는 페이지 기반 불휘발성 메모리 장치에서는 가장 비트 에러율이 높은 페이지를 고려하여 에러 정정 알고리즘이나 장치를 설계해야 한다. 따라서, 페이지 기반 불휘발성 메모리 장치에서는 확률적으로 고른 비트 에러율을 가지지 못한다. 따라서, 페이지 기반 불휘발성 메모리 장치에 효율적인 에러 정정 기술을 적용하기가 쉽지 않다.
도 3은 상태 기반 불휘발성 메모리 장치의 프로그램 방법을 보여주는 도면이다. 도 3을 참조하면, 상태 기반 불휘발성 메모리 장치(예를 들면, PRAM)는 선택된 메모리 셀에 2-비트 이상의 데이터를 페이지 단위로 분할하여 프로그램할 필요가 없다. 즉, 상태 기반 불휘발성 메모리 장치에서는 한번에 2-비트 이상의 멀티 비트 데이터가 선택된 메모리 셀에 기입될 수 있다. 좀더 자세히 설명하면 다음과 같다.
소거 후 프로그램되는 플래시 메모리 장치와는 달리, PRAM에서는 현재의 메모리 셀의 프로그램 상태와는 관계없이 덮어쓰기 동작이 실시될 수 있다. 또한 PRAM에서는 인접 셀 간의 커플링(Coupling)의 영향이 없기 때문에 셰도우 프로그램(shadow program)과 같이 페이지 별로 단계적으로 프로그램을 하지 않아도 된다. 현재 프로그램 상태(P2)에 대응하는 저항을 가진 메모리 셀에 2-비트의 데이터를 프로그램하는 경우를 가정하자. 이때, 1회의 덮어쓰기를 통해서 메모리 셀은 복수의 프로그램 상태들(E0, P1, P2, P3) 중 어느 하나로 자유로이 프로그램될 수 있다.
상태 기반 불휘발성 메모리 장치는 1회의 프로그램 동작으로도 2-비트 이상의 데이터를 기입할 수 있다. 즉, 한 번의 프로그램을 통해서 메모리 셀의 상태 이동의 범위가 비교적 자유롭기 때문에, 상태 기반 불휘발성 메모리 장치의 멀티 비트 데이터의 쓰기 회수는 페이지 기반 불휘발성 메모리 장치에 비하여 적다.
도 4는 본 발명의 실시 예에 따른 상태 기반 불휘발성 메모리 장치를 간략히 보여주는 블록도이다. 도 4를 참조하면, 본 발명의 실시 예에 따른 상태 기반 불휘발성 메모리 장치(100)는 셀 어레이(110), 읽기/쓰기 회로(120) 및 에러 정정 회로(130)를 포함한다.
셀 어레이(110)는, 비록 도면에는 도시되지 않았지만, 행들(또는 워드 라인들)과 열들(또는 비트 라인들)로 배열된 복수의 메모리 셀들이 포함된다. 각 메모리 셀은 불휘발성 메모리 소자들로 형성될 것이다. 특히, 본 발명의 실시 예에 따르면, 셀 어레이(110)는 메인 영역(112)과 스페어 영역(114)으로 구분될 수 있다. 메인 영역(112)에는 데이터 비트(Data bit)가 저장된다. 스페어 영역(114)에는 메인 영역(112)에 저장된 데이터 비트(Data bit)의 패리티 비트(Parity bit) 및 기타의 메타 데이터(Meta data)가 저장될 수 있다. 하지만, 에러 정정 방식에 따라서는 패리티 비트(Parity bit)의 생성과 저장은 생략될 수 있다.
데이터 비트(Data bit)는 하나 이상의 부호어(Codeword)들로 구성된다. 부호어(Codeword)는 패리티 비트를 생성하거나 에러 정정 연산의 단위가 되는 데이터 단위이다. 본 발명의 실시 예에 따르면, 하나의 부호어(Codeword)에 포함되는 데이터 비트들은 메모리 셀들에 분산되어 저장된다.
예를 들면, 복수의 멀티 레벨 셀들에 저장되는 모든 데이터 비트들이 하나의 부호어(Codeword)를 구성할 수 있다. 즉, 3-비트 MLC로 구성되는 4개의 메모리 셀들에 저장되는 데이터는 12-비트이다. 따라서, 3-비트 MLC로 구성되는 4개의 메모리 셀들에 저장되는 12-비트의 데이터가 하나의 부호어 단위가 될 수 있다. 이 경우, 셀들 각각으로부터 독출되는 멀티 비트 데이터는 평균화된 비트 에러율(BER)을 가질 수 있다.
읽기/쓰기 회로(120)는 셀 어레이(110)에 저장된 데이터를 읽거나 입력되는 프로그램 데이터를 셀 어레이(110)에 기입한다. 읽기/쓰기 회로(120)는 에러 정정 회로(130)로부터 전달되는 프로그램 데이터를 상태 기반 프로그램 방식에 따라서 셀 어레이(110)에 기입한다.
에러 정정 회로(130)는 입력되는 프로그램 데이터(Program data)를 부호어 단위로 분류한다. 그리고 에러 정정 회로(130)는 분류된 부호어 단위의 데이터를 상태 기반 프로그램이 가능한 형태로 재배열한다. 재배열된 프로그램 데이터는 읽기/쓰기 회로(120)에 전달되고, 셀 어레이(110)에 프로그램될 것이다. 에러 정정 회로(130)는 읽기/쓰기 회로(120)로부터 전달되는 독출 데이터(Read data)를 부호어 단위로 재구성하여 에러를 검출하거나 검출된 에러를 정정한다.
이상의 설명에 따르면, 본 발명의 불휘발성 메모리 장치(100)는 입력되는 데이터를 상태 기반 방식으로 셀 어레이(110)에 저장되도록 재배열한다. 그리고 에러 정정 회로(130)에 의해서 재배열된 부호어 단위의 데이터 비트로부터 패리티 비트가 생성될 수 있다. 또는, 에러 정정 회로(130)에 의해서 상태 기반 방식에 적합하도록 부호어가 생성된다. 생성된 부호어들은 셀 어레이(110)에 저장되고 독출시에는 부호어 단위로 재배열될 것이다.
도 5는 본 발명에 따른 부호어(Codeword) 구성 방법의 일 실시 예를 보여주는 도면이다. 도 5를 참조하면, 메모리 셀(110, 도 4 참조)의 메인 영역(112)에 저장되는 데이터 비트(Data bit)의 구성이 도시되었다. 여기서, 하나의 메모리 셀에는 m-비트 데이터가 저장될 수 있고, 하나의 부호어(Codeword)는 4개의 메모리 셀들에 저장되는 것으로 가정하자.
4개의 메모리 셀들(210: MC1, MC2, MC3, MC4)에 하나의 부호어(215)가 저장될 것이다. 그리고 메모리 셀들(220: MC5, MC6, MC7, MC8), 메모리 셀들(230: MC9, MC10, …), 메모리 셀들(240: …, MCn-2, MCn-1, MCn)에 각각 하나의 부호어가 저장될 것이다.
본 발명의 부호어 구성 방법에 따르면, 메모리 셀들(210: MC1, MC2, MC3, MC4)에는 n 길이(n-length)의 부호어(215)가 저장될 수 있다. 부호어(215)는 (c1, c2, …, cn)로 n-비트의 이진 데이터(Binary data)를 포함한다. 본 발명의 에러 정정 회로(130, 도 4 참조)는 외부로부터 순차적으로 입력되는 데이터 중 n-비트의 데이터를 부호어로 구분한다. 그리고 에러 정정 회로(130)는 구분된 n-비트의 데이터를 재배열하여 부호어(215)로 구성할 것이다.
부호어(215)는 순차적으로 입력되는 데이터를 상태 기반 프로그램 방식에 따라 메모리 셀들(210)에 저장하기 위하여 배열된다. 즉, 데이터 열 (c1, c2, …, cm)은 메모리 셀(MC1)에 멀티 비트 데이터(Multi-bit data)로 저장될 수 있다. 데이터 열(cm +1, cm +2, …, c2m)은 메모리 셀(MC2)에 멀티 비트 데이터(Multi-bit data)로 저장될 수 있다. 데이터 열(c2m +1, c2m +2, …, c3m)은 메모리 셀(MC3)에 멀티 비트 데이터(Multi-bit data)로 저장될 수 있다. 데이터 열(c3m +1, c3m +2, …, cn)은 메모리 셀(MC4)에 멀티 비트 데이터(Multi-bit data)로 저장될 수 있다. 각각의 메모리 셀들에는 최대 m-비트 데이터가 저장될 수 있다. 그리고 각각의 메모리 셀들에 저장되는 m-비트 데이터들이 결합됨으로써 하나의 부호어가 구성될 수 있다.
이러한 부호어의 구성 방법은 메모리 셀들 (220), (230) 및 (240)을 포함하는 모든 메인 영역(112)의 메모리 셀들에 적용될 수 있다. 하나의 부호어(Codeword)를 구성하는 데이터 비트들은 메모리 셀들 각각의 멀티 비트 데이터로 구성된다. 따라서, 각각의 부호어들(215, 225,…, 245)은 평균화된 비트 에러율을 가질 수 있다.
도 6은 본 발명의 다른 실시 예를 보여주는 도면이다. 도 6을 참조하면, 하나의 메모리 셀에 m-비트 데이터가 저장될 수 있다. 그리고 하나의 부호어는 4개의 메모리 셀들에 저장될 수 있는 최대의 비트 수보다 짧은 부호 길이(Code length)를 갖는다. 즉, 도 6은 도 5에서 설명된 방식의 좀더 일반화된 상태 기반 데이터 쓰기 방식을 보여준다.
4개의 메모리 셀들(310: MC1, MC2, MC3, MC4)에는 부호어(315)가 저장된다. 하지만, 부호어(c1, c2, …, cn)의 길이 n은 하나의 메모리 셀에 저장될 수 있는 최대 비트 수 m의 정수 배가 아닐 수 있다. 4개의 메모리 셀들(310) 중 메모리 셀(MC4)은 부호어(315)와 부호어(325) 각각에 포함되는 비트들을 모두 저장할 수 있다. 즉, 메모리 셀(MC4)은 부호어(315)의 비트들(c3m +1, …, cn -1, cn)과 부호어(325)의 일부 비트들(c1, c2)을 멀티 비트 데이터로서 저장할 수 있다.
또한, 메모리 셀들(320) 중 메모리 셀(MC8)은 부호어(325)의 일부 비트들(…, cn -1, cn)과 부호어(335)의 일부 비트들(c1, c2, …, c4)을 모두 저장할 수 있다. 메모리 셀들(330) 및 메모리 셀들(340)에도 셀당 두 개의 부호어들 각각의 비트들을 저장하는 메모리 셀들이 존재할 수 있다. 이러한 부호어의 구성은 하나의 부호어가 저장될 수 있는 메모리 셀들의 수와는 관계가 없다. 즉, 하나의 부호어가 4개의 메모리 셀들보다 많거나 적은 메모리 셀들에 저장되는 경우에도 상술한 방식의 부호어 구성은 유효하게 적용될 수 있다.
도 7은 본 발명의 또 다른 실시 예에 따른 부호어(Codeword)의 구성 방법을 보여주는 도면이다. 도 7을 참조하면, 비이진(Non-binary) 방식의 에러 정정 연산을 지원하기 위한 부호어 구성 방법이 도시되어 있다.
m진(m-ary) 에러 정정 연산을 수행하기 위해서는 메모리 셀당 하나의 심볼(Symbol)을 저장하도록 부호어가 구성될 수 있다. 즉, 메모리 셀들(410: MC1, MC2, MC3, MC4)에는 하나의 부호어(415)가 저장된다. 부호어(415)는 복수의 심볼들로 구성된다. 즉, 부호어(C)와 심볼들 간의 관계는 아래 수학식 1과 같다.
Figure 112010013382226-pat00001
여기서, n은 이진 부호어의 길이, m은 하나의 메모리 셀에 저장가능한 최대 비트 수, n/m은 하나의 부호어를 구성하는 심볼 수를 나타낸다.
하나의 메모리 셀(MC1)에는 하나의 심볼(s 1)이 저장될 수 있다. 하나의 심볼에 저장되는 메시지는 m-비트의 이진 데이터에 대응한다. 예를 들면, 심볼(s 1)은 메모리 셀(MC1)에 저장되는 데이터 열(c1, c2, …, cm)로 구성될 수 있다. 심볼(s 2)은 메모리 셀(MC2)에 저장되는 데이터 열(cm +1, cm +2, …, c2m)로 구성될 수 있다. 그리고 심볼(s n/m)은 메모리 셀(MC4)에 저장되는 데이터 열(…, cn -1, cn)로 구성될 수 있다.
하나의 메모리 셀에 저장되는 멀티 비트 데이터를 심볼 단위로 식별할 수 있는 경우(예를 들면, 아날로그 센싱)에는 심볼 단위로 부호어를 구성할 수 있다. 이 경우에 심볼 단위로 실행되는 에러 정정 연산(예를 들면, Reed-Solomon code)을 적용할 수 있다.
도 8은 본 발명의 실시 예에 따른 프로그램 방법을 보여주는 순서도이다. 도 8을 참조하면, 외부로부터 불휘발성 메모리 장치(100, 도 4 참조)에 쓰기 명령과 프로그램 데이터가 제공되면, 본 발명의 상태 기반 프로그램 절차가 시작된다.
단계 S110에서, 외부로부터 프로그램 데이터(Program data)가 입력되면, 프로그램 데이터는 불휘발성 메모리 장치(100)의 버퍼(미도시됨)에 일시 저장될 것이다. 그러면, 에러 정정 회로(130, 도 4 참조)는 버퍼에 저장된 프로그램 데이터를 입력받는다.
단계 S120에서, 에러 정정 회로(130)는 입력된 프로그램 데이터를 부호화(Encoding)하고, 상태 기반 방식으로 프로그램하기 위하여 배열한다. 예를 들면, 에러 정정 회로(130)는 입력되는 프로그램 데이터를 에러의 검출 또는 정정을 위한 부호어(Codeword) 단위로 구분한다. 에러 정정 회로(130)는 하나의 부호어에 포함되는 비트들을 상태 기반 프로그램을 위하여 선택된 메모리 셀들에 할당한다. 도 5 내지 7의 실시 예들에서 설명된 방식에 따라 하나의 메모리 셀에는 부호어의 연속되는 비트들이 저장되도록 데이터가 할당될 것이다.
단계 S130에서, 에러 정정 회로(130)에 의해서 생성된 데이터는 읽기/쓰기 회로(120)에 전달된다. 읽기/쓰기 회로(120)는 에러 정정 회로(130)에 의해서 상태 기반 프로그램을 위한 배열로 재구성된 데이터를 선택된 메모리 셀들에 기입한다.
도 9는 본 발명의 상태 기반 불휘발성 메모리 장치에 저장된 데이터를 독출하는 방법의 일 실시 예를 보여주는 도면이다. 도 9를 참조하면, 메모리 셀들에 저장된 멀티 비트 데이터는 복수의 읽기 동작을 통해서 독출되는 경우를 보여준다. 즉, 도 9는 멀티 비트 플래시 메모리에서 페이지 단위로 멀티 비트 데이터가 독출되는 방식과 유사한 경우를 보여준다.
메모리 셀들(510) 각각에는 m-비트의 데이터가 저장되어 있다. 그러나 이들 m-비트의 데이터는 복수의 읽기 동작을 통해서 순차적으로 독출될 수 있다. 즉, 하나의 메모리 셀에 저장된 m-비트 데이터 전체는 적어도 m회 이상의 센싱 동작을 통해서 출력될 수 있다. 이 경우, 최초 읽기 동작(1st read)을 통해서 데이터(521: c1, cm +1 c2m +1, c3m +1)가 읽혀진다. 두 번째 읽기 동작(2nd read)을 통해서 데이터(522: c2, cm +2 c2m +2, c3m +2)가 읽혀진다. 세 번째 읽기 동작(3rd read)을 통해서 데이터(523: c3, cm +3 c2m +3, c3m +3)가 읽혀진다. 그리고 m번째 읽기 동작(m-th read)을 통해서 데이터(524: c4, cm +4 c2m +4, c3m +4)가 읽혀진다.
이렇게 복수의 읽기 동작을 통해서 읽혀진 데이터들(521, 522, 523, …, 524)은 에러 정정 회로(130)에 의해서 부호어(c1, c2, …, c4m)로 재배열된다. 에러 정정 회로(130)는 재배열된 부호어(c1, c2, …, c4m)에 대한 에러 검출과 정정 연산을 실시한다.
도 10은 본 발명의 상태 기반 불휘발성 메모리 장치에 저장된 데이터를 독출하는 방법의 다른 실시 예를 보여주는 도면이다. 도 10을 참조하면, 메모리 셀들(610: MC1, MC2, MC3, MC4) 각각에 저장된 멀티 비트 데이터가 한꺼번에 센싱되고 처리되는 경우를 도시하고 있다. 즉, 하나의 메모리 셀에 저장된 멀티 비트 데이터는 셀 단위(Cell unit read)를 통해서 독출될 수 있다. 좀더 자세히 설명하면 다음과 같다.
가변 저항 메모리와 같은 일부 메모리의 경우 센싱 방법에 따라 하나의 메모리 셀에 저장된 멀티 비트 데이터가 한꺼번에 출력될 수 있다. 즉, 선택된 메모리 셀들의 셀 상태를 감지하여 셀 상태에 대응하는 멀티 비트 데이터가 즉시 결정될 수 있다. 이러한 읽기 방식은 페이지 단위로 선택되는 경우에는 구현되기 어려우며, 셀 단위로 선택되고 센싱되는 읽기 동작을 통해서 구현될 수 있다.
셀 단위 읽기 동작시, 메모리 셀(MC1)이 선택되면 메모리 셀(MC1)에 저장된 멀티 비트 데이터(621: c1, c2, …, cm)가 일시에 독출될 수 있다. 이어서, 메모리 셀(MC2)이 선택되면 메모리 셀(MC2)에 저장된 멀티 비트 데이터(622: cm +1, cm +2, …, c2m)가 일시에 독출될 수 있다. 메모리 셀(MC3)이 선택되면 메모리 셀(MC3)에 저장된 멀티 비트 데이터(623: c2m +1, c2m +2, …, c3m)가 일시에 독출될 수 있다. 그리고 메모리 셀(MC4)이 선택되면 메모리 셀(MC4)에 저장된 멀티 비트 데이터(624: c3m +1, c3m+2, …, c4m)가 일시에 독출될 수 있다.
셀 단위의 읽기 동작을 통해서 순차적으로 출력된 데이터(621, 622, 623, 624)는 에러 정정 회로(130)에 의해서 하나의 완전한 부호어(c1, c2, …, c4m)를 구성한다. 부호어의 구성이 완료되면, 에러 정정 회로(130)는 에러를 검출하고, 검출된 에러를 정정한다.
도 11은 본 발명의 실시 예에 따른 읽기 방법을 간략히 보여주는 순서도이다. 도 11을 참조하면, 외부로부터 읽기 명령이 제공되면, 선택된 메모리 셀들에 대한 읽기 절차가 시작된다.
단계 S210에서, 읽기/쓰기 회로(120)는 페이지 읽기 방식이나 셀 단위 읽기 방식에 따라 선택된 메모리 셀들로부터 데이터를 독출한다. 페이지 읽기 방식으로 독출된 데이터는 선택된 페이지 단위로 독출 데이터를 에러 정정 회로(130)에 제공될 것이다. 셀 단위 읽기 방식에서는 하나의 메모리 셀에 저장된 멀티 비트 데이터 단위로 독출 데이터가 에러 정정 회로(130)에 전달될 것이다.
단계 S220에서, 에러 정정 회로(130)는 전달된 독출 데이터를 하나의 완전한 부호어(Codeword)로 재구성한다. 페이지 읽기 방식으로 독출된 데이터의 경우, 에러 정정 회로(130)는 각 페이지의 동일 칼럼에 위치하는 비트를 순차적인 비트로 간주하여 하나의 부호어를 완성한다. 셀 단위 읽기 방식으로 독출된 데이터의 경우, 에러 정정 회로(130)는 전달되는 독출 데이터를 순차적으로 버퍼링하여 하나의 완전한 부호어(Codeword)를 구성할 수 있다.
단계 S230에서, 에러 정정 회로(130)는 부호어에 대한 에러를 검출한다. 에러 정정 회로(130)는 하나의 부호어에 대한 에러가 검출되면, 검출된 에러를 정정한다. 에러의 검출 및 정정이 완료되면, 에러 정정 회로(130)는 입출력 버퍼(I/O buffer, 미도시됨)와 같은 데이터 출력 수단으로 에러가 정정된 데이터를 전달한다.
도 12는 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 12를 참조하면, 메모리 시스템(700)은 상태 기반 불휘발성 메모리 장치(710)와 상태 기반 불휘발성 메모리 장치(710)와 호스트를 사이에 인터페이스를 제공하는 메모리 컨트롤러(720)를 포함한다. 메모리 컨트롤러(720)에는 상태 기반 에러 정정 회로(722)가 포함될 수 있다.
호스트는 필요시에 데이터를 저장하도록 또는 저장된 데이터를 읽도록 메모리 컨트롤러(720)에 요청한다. 호스트로부터 데이터의 프로그램 명령이 제공되면, 메모리 컨트롤러(720)는 호스트로부터 제공되는 프로그램 데이터(Program data)를 내부의 상태 기반 에러 정정 회로(722)에 전달한다. 상태 기반 에러 정정 회로(722)는 앞서 도 5 내지 7에서 기술된 방식으로 부호어를 구성한다. 상태 기반 에러 정정 회로(722)는 구성된 부호어를 상태 기반 불휘발성 메모리 장치(710)에 전달한다. 그러면, 상태 기반 불휘발성 메모리 장치(710)는 전달된 데이터를 선택된 메모리 셀들에 프로그램한다.
호스트로부터 읽기 명령이 전달되면, 메모리 컨트롤러(720)는 선택된 메모리 셀들로부터 데이터를 독출하도록 상태 기반 불휘발성 메모리 장치(710)를 제어한다. 만일, 상태 기반 불휘발성 메모리 장치(710)로부터 페이지 읽기 방식으로 데이터가 독출되면, 상태 기반 에러 정정 회로(722)는 각 페이지의 동일 칼럼에 위치하는 비트를 순차적인 비트로 간주하여 하나의 부호어를 완성한다.
반면, 상태 기반 불휘발성 메모리 장치(710)로부터 셀 단위 읽기 방식에 의한 독출 데이터가 출력되면, 상태 기반 에러 정정 회로(722)는 독출 데이터를 순차적으로 버퍼링하여 하나의 완전한 부호어(Codeword)를 구성할 것이다. 부호어가 완성되면, 상태 기반 에러 정정 회로(722)는 에러를 검출하고 정정한다. 에러 정정이 완료되면, 메모리 컨트롤러(720)는 호스트로 에러가 정정된 데이터를 제공할 것이다.
이상에서는 상태 기반 에러 정정 회로(722)가 메모리 컨트롤러(720)의 내부에 포함되는 메모리 시스템(700)이 설명되었다.
도 13은 본 발명의 실시 예에 따른 불휘발성 메모리 장치(1100)를 포함하는 컴퓨팅 시스템(1000)이 개략적으로 도시되어 있다. 본 발명에 따른 컴퓨팅 시스템(1000)은 시스템 버스(1600)에 전기적으로 연결된 불휘발성 메모리 장치(1100), 마이크로프로세서(1200), 램(1300), 사용자 인터페이스(1400), 베이스밴드 칩셋(Baseband chipset)과 같은 모뎀(1500)을 포함한다. 여기서, 불휘발성 메모리 장치(1100)는 덮어쓰기 가능한 불휘발성 메모리 셀들을 포함한다.
본 발명에 따른 컴퓨팅 시스템(1000)이 모바일 장치인 경우, 컴퓨팅 시스템(1000)의 동작 전압을 공급하기 위한 배터리(미도시됨)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템(1000)에는 응용 칩셋(Application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 불휘발성 메모리 장치(1100)는 도 1에서 설명된 불휘발성 메모리 장치(100)와 실질적으로 동일한 덮어쓰기 가능한 불휘발성 메모리 장치이다.
도 14는 본 발명의 상태 기반 불휘발성 메모리 장치의 적용을 예시적으로 보여주는 블록도이다. 도 14를 참조하면, 본 발명의 예시적인 적용은 메모리 장치(2010)와 메모리 장치(2010)에 전기적으로 연결되는 메모리 컨트롤러(2020)를 포함한다. 메모리 장치(2010)는 앞서 설명된 덮어쓰기 가능한 불휘발성 메모리 장치와 실질적으로 동일하다. 메모리 컨트롤러(2020)는 메모리 장치(2010)를 제어하기 위한 신호를 제공한다. 예를 들면, 메모리 컨트롤러(2020)는 메모리 장치(2010)를 액세스하기 위한 명령어와 어드레스를 제공할 수 있다.
메모리 컨트롤러(2020)는 메모리 인터페이스, 호스트 인터페이스, ECC 회로, 중앙 처리 장치, 그리고 버퍼 메모리를 포함할 수 있다. 메모리 인터페이스는 버퍼 메모리로부터 전달된 데이터를 메모리(2010)로 제공하거나, 메모리(2010)로부터 읽은 데이터를 버퍼 메모리로 전달한다. 또한, 메모리 인터페이스는 외부 호스트로부터 전달된 커맨드나 어드레스를 메모리로 제공할 수 있다.
호스트 인터페이스는 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등을 이용하여 외부 호스트와 통신할 수 있다.
본 발명의 실시 예에 따른 메모리 컨트롤러(2020)는 ECC 회로를 포함할 수 있다. ECC 회로는 메모리(2010)로 전송되는 데이터로부터 에러 정정 코드(ECC)를 생성한다. 그렇게 생성된 에러 정정 코드(ECC)는 데이터와 함께 메모리(2010)의 특정 영역에 저장될 수 있다. ECC 회로는 메모리(2010)로부터 읽혀진 데이터의 에러를 검출한다. 만약 검출된 에러가 정정 범위 내이면, ECC 회로는 검출된 에러를 정정한다.
중앙 처리 장치는 외부 호스트로부터 입력된 신호를 분석하고 처리한다. 중앙 처리 장치는 호스트 인터페이스나 메모리 인터페이스를 통해 외부 호스트나 메모리(2010)를 제어한다. 중앙 처리 장치는 메모리를 구동하기 위한 펌웨어에 따라서 메모리(2010)의 쓰기, 읽기, 소거 동작 등을 제어할 수 있다. 버퍼 메모리는 외부 호스트로부터 제공되는 쓰기 데이터 또는 메모리(2010)로부터 읽은 데이터를 임시로 저장한다.
도 15는 본 발명의 상태 기반 불휘발성 메모리 장치의 다른 적용을 예시적으로 보여주는 블록도이다. 도 15의 실시 예는 메모리 장치(2010)와 메모리 컨트롤러(2020)가 메모리 카드(2000)에 실장된다는 점을 제외하면 실질적으로 도 9와 동일하다. 메모리 카드(2000)는 디지털 카메라, PMP, 모바일 폰, 노트북 컴퓨터와 같은 정보 처리 장치에 장착될 수 있다. 메모리 카드(2000)는 MMC 카드(Multimedia Card), SD 카드(Secure Digital Card), 마이크로 SD 카드, 메모리 스틱(Memory Stick), ID 카드, PCMCIA 카드, 칩 카드(Chip Card), USB 카드, 스마트 카드(Smart Card), CF 카드(Compact Flash Card) 등으로 더 구성될 수 있다.
도 16은 본 발명의 덮어쓰기 가능한 불휘발성 메모리 장치의 또 다른 적용을 보여주는 블록도이다. 도 16을 참조하면, 메모리 장치(2010)는 호스트(2100)에 연결된다. 호스트(2100)는 디지털 카메라, PMP, 모바일 폰, 노트북 컴퓨터와 같은 정보 처리 장치로 구성될 수 있다. 호스트(2100)는 메모리 장치(2010)를 제어하기 위한 제어 신호를 제공한다. 예를 들면, 호스트(2100)는 메모리 장치(2010)를 액세스하기 위한 명령어와 어드레스를 제공할 수 있다. 메모리 장치(2010)는 도 1에서 설명된 불휘발성 메모리 장치(100)와 실질적으로 동일한 덮어쓰기 가능한 불휘발성 메모리 장치이다.
도 17은 호스트(2100)가 도 15의 메모리 카드(2000)와 전기적으로 연결된 실시 예를 보여준다. 이 실시 예에서, 호스트(2100)는 메모리 컨트롤러(2020)에 명령어, 어드레스 그리고 데이터를 제공할 수 있다. 그러면, 메모리 컨트롤러(2020)는 메모리 장치(2010)를 액세스하기 위한 제어 신호를 메모리 장치(2010)에 제공할 것이다.
도 18은 메모리 장치(2210)가 중앙 처리 장치(2220)에 연결되는 적용을 보여주는 블록도이다. 도 13을 참조하면, 컴퓨터 시스템(2200)에 포함되는 메모리 장치(2210)는 데이터 버스(Data bus)와 같은 연결 수단에 의해서 중앙 처리 장치(2220)에 전기적으로 직접 연결될 수 있다. 컴퓨터 시스템(2200)은 디지털 카메라, PMP, 모바일 폰, 데스크탑 컴퓨터, 노트북 컴퓨터와 같은 정보 처리 장치로 구성될 수 있다.
도 19는 본 발명의 또 다른 실시 예에 따른 덮어쓰기 가능한 불휘발성 메모리 장치의 적용 예를 보인 휴대용 시스템의 블록도이다. 휴대용 시스템(3000)은 버스 라인(3600)을 통하여 마이크로 프로세서(3200)와 연결된 메모리 장치(3100)는 휴대용 시스템(3000)의 메인 메모리로 구동될 수 있다. 배터리(3400)는 전원 라인(3500)을 통해 마이크로 프로세서(3200), 입출력 장치(3300), 그리고 메모리 장치(3100)에 전원을 공급한다.
외부로부터 입출력 장치(3300)에 데이터(Data)가 제공되면, 마이크로 프로세서(3200)는 버스 라인(3600)을 통해 수신 데이터를 입력받아 처리한 후, 버스 라인(3600)을 통해 메모리 장치(3100)에 수신 또는 처리된 데이터를 공급한다. 메모리 장치(100)는 버스 라인(3600)을 통해 인가되는 데이터를 메모리 셀에 저장한다. 또한, 메모리 셀에 저장된 데이터는 마이크로 프로세서(3200)에 의해 읽혀지고 입출력 장치(3300)를 통해 외부로 출력된다.
배터리(3400)의 전원이 전원 라인(3500)에 공급되지 않는 경우에도 메모리 장치(3100)의 메모리 셀에 저장된 데이터는 소멸하지 않는다. 이는 메모리 장치(3100)가 디램(DRAM)과는 달리 불휘발성이기 때문이다. 이외에도 메모리 장치(3100)는 다른 메모리 장치에 비해 동작 속도가 빠르고, 전력 소비가 적다는 장점이 있다.
도 20은 본 발명의 상태 기반 불휘발성 메모리(또는, Storage Class Memory: 이하, SCM)가 플래시 메모리를 대신하여 사용되는 메모리 시스템 구조를 예시적으로 보여준다. 도 20을 참조하면, 메모리 시스템(4100)은 CPU(4110), SDRAM(4120), 그리고 SCM(4130)을 포함한다. 여기에서, SCM(4130)은 플래시 메모리를 대신하여 데이터 저장 메모리로 사용된다.
도 20에 도시된 메모리 시스템(4100)에서, SCM(4130)은 플래시 메모리에 비해 데이터 접근 속도가 빠르다. 예를 들어, CPU(4110)가 4GHz로 동작하는 PC 환경에서, SCM(4130)의 한 종류인 상 변화 메모리 장치(PRAM)는 플래시 메모리보다 접근 속도가 약 32배 정도 빠르다. 따라서 SCM(4130)을 탑재한 메모리 시스템(4100)은 플래시 메모리를 탑재한 메모리 시스템보다 빠른 접근 이득을 얻을 수 있다.
도 21은 본 발명의 덮어쓰기 가능한 불휘발성 메모리(SCM)가 SDRAM을 대신하여 사용되는 메모리 시스템 구조를 예시적으로 보여준다. 도 21을 참조하면, 메모리 시스템(4200)은 CPU(4210), SCM(4220), 그리고 플래시 메모리(4230)를 포함한다. 여기에서, SCM(4130)은 SDRAM을 대신하여 메인 메모리로 사용된다.
도 21에 도시된 메모리 시스템(4200)에서, SCM(4220)은 SDRAM에 비해 전력 소모가 적다. 컴퓨터 시스템에서 메인 메모리가 소비하는 에너지는 전체의 40%에 달한다. 이에 따라 메인 메모리의 전력 소비를 줄이려는 노력이 활발하게 진행되고 있다. SCM(4220)은 DRAM에 비해 동적 에너지 소비를 평균 53%, 전력 누출에 따른 에너지 소비를 평균 73% 줄일 수 있다. 따라서 SCM(4220)을 탑재한 메모리 시스템(4200)은 SDRAM을 탑재한 메모리 시스템에 비해, 전력 소모를 줄일 수 있다.
도 22는 본 발명의 덮어쓰기 가능한 불휘발성 메모리(SCM)가 SDRAM과 Flash memory를 모두 대체하는 메모리 시스템 구조를 예시적으로 보여준다. 도 22를 참조하면, 메모리 시스템(4300)은 CPU(4310)과 SCM(4320)를 포함한다. 여기에서, SCM(4130)은 SDRAM을 대신하여 메인 메모리로 사용되고, 플래시 메모리(Flash memory)를 대신하여 데이터 저장 메모리로 사용된다. 이러한 구조를 갖는 메모리 시스템(4300)은 데이터 접근 속도, 저전력, 공간 활용, 그리고 비용 측면에서 장점을 갖는다.
본 발명에 따른 덮어쓰기 가능한 불휘발성 메모리 장치는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 덮어쓰기 가능한 불휘발성 메모리 장치는 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), 등과 같은 패키지들을 이용하여 실장될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
110 : 셀 어레이
120 : 읽기/쓰기 회로
130 : 에러 정정 회로
1100 : 불휘발성 메모리 장치
1200 : CPU
1300 : RAM
1400 : 유저 인터페이스
1500 : 모뎀
1600 : 시스템 버스
2000 : 메모리 카드
2010 : 메모리 장치
2020 : 메모리 컨트롤러
2100 : 호스트
2200 : 정보 처리 시스템
3000 : 휴대용 시스템
3100 : 메모리 장치
3200 : 중앙 처리 장치
3300 : 입출력 장치
3400 : 배터리
4100, 4200, 4300 : 메모리 시스템
4110, 4210, 4310 : 중앙 처리 장치
4120 : SDRAM
4130, 4220, 4320 : SCM

Claims (10)

  1. 불휘발성 메모리 장치의 에러 정정 방법에 있어서:
    부호어(Codeword)를 선택된 메모리 셀들에 할당하되, 상기 부호어 중 제 1 비트 그룹을 제 1 메모리 셀에, 상기 부호어 중 제 2 비트 그룹을 제 2 메모리 셀에 할당하는 단계; 그리고
    상기 부호어를 상기 선택된 메모리 셀들에 프로그램하는 단계를 포함하되,
    상기 제 1 비트 그룹과 상기 제 2 비트 그룹은 각각 상기 부호어 상에서 연속되는 비트들이고,
    상기 제 1 비트 그룹은 상기 제 1 메모리 셀에 저장 가능한 비트 수에 대응하고, 상기 제 2 비트 그룹은 상기 제 2 메모리 셀에 저장 가능한 최대 비트 수보다 적은 것을 특징으로 하는 에러 정정 방법.
  2. 삭제
  3. 삭제
  4. 제 1 항에 있어서,
    상기 선택된 메모리 셀들을 페이지 단위로 또는 셀 단위로 독출하는 단계를 더 포함하는 에러 정정 방법.
  5. 제 4 항에 있어서,
    상기 독출하는 단계에서,
    페이지 단위로 상기 선택된 메모리 셀들을 독출하는 경우에는, 복수 회의 읽기 동작 동안 상기 선택된 메모리 셀들 각각의 최하위 비트들(LSB)로부터 최상위 비트들(MSB)까지 순차적으로 출력되는 에러 정정 방법.
  6. 제 5 항에 있어서,
    페이지 단위로 출력되는 최하위 비트들(LSB) 내지 상기 최상위 비트들(MSB)을 재배열하여 상기 부호어를 구성하는 단계를 더 포함하는 에러 정정 방법.
  7. 제 6 항에 있어서,
    상기 독출하는 단계에서,
    셀 단위로 상기 선택된 메모리 셀들을 독출하는 경우에는, 한 번의 읽기 동작 동안에 상기 제 1 메모리 셀 또는 상기 제 2 메모리 셀에 멀티 비트 데이터로 저장된 제 1 비트 그룹 또는 제 2 비트 그룹이 출력되는 에러 정정 방법.
  8. 제 7 항에 있어서,
    상기 선택된 메모리 셀들 각각으로부터 읽혀진 멀티 비트 데이터를 재배열하여 상기 부호어로 구성하는 단계를 더 포함하는 에러 정정 방법.
  9. 제 8 항에 있어서,
    상기 선택된 메모리 셀들로부터 읽혀진 멀티 비트 데이터는 각각 하나의 심볼로 처리되는 에러 정정 방법.
  10. 상태 기반 프로그램이 가능한 멀티 비트 불휘발성 메모리 셀들을 포함하는 셀 어레이;
    어느 하나의 부호어에 포함되는 데이터 비트들을 복수의 비트 그룹들로 분할하는 에러 정정 회로; 그리고
    상기 복수의 비트 그룹들 각각을 상기 셀 어레이의 선택된 메모리 셀들 각각에 프로그램하는 읽기/쓰기 회로를 포함하되,
    상기 복수의 비트 그룹들 각각은 상기 부호어 상에서의 비트 순서를 유지하고,
    상기 복수의 비트그룹들 중에서 제 1 비트 그룹은 제 1 메모리 셀에 저장 가능한 비트 수에 대응하고, 제 2 비트 그룹은 제 2 메모리 셀에 저장 가능한 최대 비트 수보다 적은 불휘발성 메모리 장치.
KR1020100018657A 2010-03-02 2010-03-02 상태 기반 불휘발성 메모리 장치 및 그것의 에러 정정 방법 KR101598382B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100018657A KR101598382B1 (ko) 2010-03-02 2010-03-02 상태 기반 불휘발성 메모리 장치 및 그것의 에러 정정 방법
US13/039,004 US8482977B2 (en) 2010-03-02 2011-03-02 Multi-bit cell memory devices using error correction coding and methods of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100018657A KR101598382B1 (ko) 2010-03-02 2010-03-02 상태 기반 불휘발성 메모리 장치 및 그것의 에러 정정 방법

Publications (2)

Publication Number Publication Date
KR20110099563A KR20110099563A (ko) 2011-09-08
KR101598382B1 true KR101598382B1 (ko) 2016-03-02

Family

ID=44531228

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100018657A KR101598382B1 (ko) 2010-03-02 2010-03-02 상태 기반 불휘발성 메모리 장치 및 그것의 에러 정정 방법

Country Status (2)

Country Link
US (1) US8482977B2 (ko)
KR (1) KR101598382B1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011092532A1 (en) 2010-01-28 2011-08-04 Sandisk Il Ltd. Sliding-window error correction
US8880783B2 (en) * 2011-07-05 2014-11-04 Kandou Labs SA Differential vector storage for non-volatile memory
US9093154B2 (en) * 2012-01-16 2015-07-28 Silicon Motion, Inc. Method, memory controller and system for reading data stored in flash memory
KR101832934B1 (ko) * 2012-01-27 2018-02-28 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템, 그것의 블록 관리 방법, 프로그램 방법 및 소거 방법
US9501350B2 (en) 2014-09-22 2016-11-22 Empire Technology Development Llc Detecting unidirectional resistance drift errors in a multilevel cell of a phase change memory
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
US10043573B2 (en) 2016-08-04 2018-08-07 Intel Corporation Apparatus and method for endurance friendly programming using lower voltage thresholds
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
US10175890B2 (en) * 2016-12-22 2019-01-08 Western Digital Technologies, Inc. Non-binary ECCs for low latency read, fractional bits per cell of NAND flash
US11301320B2 (en) * 2020-04-03 2022-04-12 Micron Technology, Inc. Erasure decoding for a memory device
US10984847B2 (en) 2019-06-14 2021-04-20 Micron Technology, Inc. Memory management for charge leakage in a memory device
CN114144834A (zh) * 2019-06-14 2022-03-04 美光科技公司 存储器装置的存储器管理及删除解码
US11392441B2 (en) 2019-12-30 2022-07-19 Advanced Micro Devices, Inc. Error reporting for non-volatile memory modules

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7681109B2 (en) * 2005-10-13 2010-03-16 Ramot At Tel Aviv University Ltd. Method of error correction in MBC flash memory
JP2008077810A (ja) 2006-09-25 2008-04-03 Toshiba Corp 不揮発性半導体記憶装置
JP2008108297A (ja) 2006-10-23 2008-05-08 Toshiba Corp 不揮発性半導体記憶装置
KR20080086152A (ko) 2007-03-22 2008-09-25 주식회사 하이닉스반도체 반도체 메모리장치
WO2011092532A1 (en) * 2010-01-28 2011-08-04 Sandisk Il Ltd. Sliding-window error correction

Also Published As

Publication number Publication date
US8482977B2 (en) 2013-07-09
US20110216588A1 (en) 2011-09-08
KR20110099563A (ko) 2011-09-08

Similar Documents

Publication Publication Date Title
KR101598382B1 (ko) 상태 기반 불휘발성 메모리 장치 및 그것의 에러 정정 방법
KR102025263B1 (ko) 메모리 시스템 및 그것의 읽기 교정 방법
US9032245B2 (en) RAID data management method of improving data reliability and RAID data storage device
US8902653B2 (en) Memory devices and configuration methods for a memory device
US8812773B2 (en) Method of merging blocks in a semiconductor memory device, and semiconductor memory device to perform a method of merging blocks
KR102005888B1 (ko) 불휘발성 메모리 장치 및 그것의 읽기 방법
US20130132644A1 (en) Method of programming a nonvolatile memory device
US9164889B2 (en) Memory system to select program operation method and method thereof
KR20110087036A (ko) 덮어쓰기 가능한 불휘발성 메모리 장치 및 그것의 데이터 쓰기 방법
JP5259138B2 (ja) 記憶装置
US11720286B2 (en) Extended cross-temperature handling in a memory sub-system
CN112835828B (zh) 用于非连续源及目的地存储器地址的直接存储器存取(dma)命令
CN113035262A (zh) 存储器子系统中奇偶校验数据的管理
US11836377B2 (en) Data transfer management within a memory device having multiple memory regions with different memory densities
KR20220077041A (ko) 메모리 시스템 내 저장된 데이터를 유지하는 장치 및 방법
US11829650B2 (en) Memory sub-system data migration
US20130318419A1 (en) Flash memory system including read counter logic
KR20210157544A (ko) 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
KR20100050789A (ko) 메모리 장치 및 그것을 포함하는 메모리 시스템
US11556261B2 (en) Memory stripe coding management
CN115048040A (zh) 基于有效数据的比率的媒体管理操作
KR20210028335A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
US20240143222A1 (en) Storage device controlling write buffer while processing power off request and method of operating the storage device
CN115454326A (zh) 对已分组存储器信元执行数据操作
CN114664334A (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
FPAY Annual fee payment

Payment date: 20200131

Year of fee payment: 5