KR101590725B1 - 멀티 레벨 상 변화 메모리의 데이터 코딩 장치 및 방법 - Google Patents

멀티 레벨 상 변화 메모리의 데이터 코딩 장치 및 방법 Download PDF

Info

Publication number
KR101590725B1
KR101590725B1 KR1020140137526A KR20140137526A KR101590725B1 KR 101590725 B1 KR101590725 B1 KR 101590725B1 KR 1020140137526 A KR1020140137526 A KR 1020140137526A KR 20140137526 A KR20140137526 A KR 20140137526A KR 101590725 B1 KR101590725 B1 KR 101590725B1
Authority
KR
South Korea
Prior art keywords
resistance value
level
memory
phase change
memory cell
Prior art date
Application number
KR1020140137526A
Other languages
English (en)
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 KR1020140137526A priority Critical patent/KR101590725B1/ko
Application granted granted Critical
Publication of KR101590725B1 publication Critical patent/KR101590725B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/02Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using elements whose operation depends upon chemical change
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Semiconductor Memories (AREA)

Abstract

멀티 레벨 상 변화 메모리의 데이터 코딩 방법 및 장치가 개시된다. 멀티 레벨 상 변화 메모리의 데이터 코딩 방법은, 상 변화 메모리(PCM, Phase Change Memory)에 대한 데이터 코딩 장치가 수행하는 방법에 있어서, 대상 메모리 셀(memory cell) 및 대상 메모리 셀에 인접한 메모리 셀들로 구성된 셀 그룹(cell group)을 정의하는 단계와, 참조 메모리 셀(reference memory cell)의 저항 값 레벨을 이용하여 셀 그룹 내의 메모리 셀들의 저항 값 레벨을 결정하는 단계와, 결정된 메모리 셀들의 저항 값 레벨의 분포가 미리 정의된 규칙에 부합하는지 여부를 판단하는 단계를 포함하되, 미리 정의된 규칙은, 셀 그룹 내에 특정한 저항 값 레벨을 갖는 메모리 셀을 일정한 개수들로 한정하여 모듈로 연산(modulo operation)을 이용하여 판단이 가능할 수 있다.

Description

멀티 레벨 상 변화 메모리의 데이터 코딩 장치 및 방법{DEVICE FOR DATA CODING OF MULTI-LEVEL PHASE CHANGE MEMORY AND METHOD THEREFOR}
본 발명은 상 변화 메모리의 데이터 코딩에 관한 것으로, 더욱 상세하게는 메모리 소자에 복수의 비트를 저장하고 읽을 수 있는 멀티 레벨 상 변화 메모리에 관한 것이다.
나아가 본 발명은 상 변화 메모리(Phase Change Memory)의 저항 표류(resistance drift) 때문에 일어나는 데이터 손실을 해결할 수 있는 데이터 코딩 방법에 관한 것으로 궁극적으로 상 변화 메모리의 멀티 레벨 구현을 가능하게 하는 기술에 관한 것이다.
상 변화 메모리(PCM, Phase Change Memory)는 비휘발성 메모리로써 휘발성 램 (RAM, Random Access Memory) 정도의 데이터 처리 속도와 용량 효율을 가질 수 있을 것으로 기대되는 기술이다.
상 변화 메모리를 구성하는 상 변화 저항 소자는 전극 사이에 위상 변화층이 삽입되어 각각 입출력에 해당하는 전류 신호를 인가 받음으로써 다른 저항 값을 가지게 된다. 소자에 임계 값 이하의 낮은 전류가 흐르면 줄 발열에 의해 위상 변화층이 결정화되고, 결정 상태(crystalline phase)에 있게 되는 위상 변화층은 낮은 저항을 갖는다. 이를 SET 상태라 한다.
반면 임계 값 이상의 높은 전류가 흐를 때는 위상 변화층의 온도가 녹는점 이상으로 높아지고, 높은 저항을 갖는 비결정 상태(amorphous phase)에 있게 된다. 이를 RESET 상태라 한다. 이 때 소자 하나의 위상 변화층이 결정화된 정도에 따라 각 셀에 다르게 기록될 수 있는 저항 값은 널리 사용되고 있는 GST(Ge, Sb, Te 합금)의 경우 1,000 내지 1,000,000ohm 사이의 임의의 값이 된다. 이로 인해 한 셀이 가질 수 있는 정보의 종류, 저항 값 레벨 개수가 두 가지, 1bit를 넘는 멀티 레벨(MLC, Multi-Level Cell storage) 메모리를 구현할 수 있다.
그동안 상 변화 메모리 기술의 한계로 지적된 부분이 물질의 상태를 바꾸는 속도였다. 얼마나 빨리 상태를 바꿀 수 있느냐가 상 변화 메모리 기술의 핵심이었다. 일반적으로 상 변화 메모리를 만드는 데 쓰이는 물질은 게르마늄(Ge)과 텔루라이드(Te) 혼합물인데, 물질의 상태를 바꾸는 데 걸리는 시간이 1에서 10나노초(1나노초는 10억분의 1초) 수준이었다. 기존 메모리 방식보다 느린 속도다.
상 변화 메모리를 만드는 데 안티몬이라는 물질을 추가하여 만들어진 물질을 나노미터 크기의 실린더 사이에 끼우고 끊임없이 전력을 공급하는 것으로 느린 속도 문제를 해결하려는 연구가 진행되었다. 실린더 양 끝에 티타늄 재질의 전극봉을 삽입해 전압이 흐르도록 한 구조이다. 이 같은 구조 덕분에 상 변화 메모리의 결정화 속도가 크게 높아졌다. 1V 전압에서 500피코초(1피코초는 1조분의 1초)만에 물질을 결정화할 수 있다. 기존 상 변화 메모리 기술의 결정화 방식보다 10배나 빠른 속도이다.
상 변화 메모리는 전원이 없는 상태에서도 데이터를 유지할 수 있는 비휘발성이라는 점에서 활용도가 높은데, 현재 DDR 메모리 기술을 대체할 수 있을 뿐만 아니라 저장매체로 이용되는 솔리드 스테이트 드라이브(SSD, Solid State Drive)의 저장물질로도 이용할 수 있을 것으로 기대되고 있다.
상 변화 메모리는 데이터를 저장하기 위한 단순한 기본 디자인을 가지고 있다. 즉 열이 작은 유리질의 칼코겐(calcogenide) 물질의 전기 속성을 변화시키는 것이다. 이 반도체가 급속히 냉각되면 반도체 물질이 뜨거울 때의 비정질 형태로 뒤죽박죽된 상태를 유지하게 된다. 하지만 상대적으로 천천히 냉각될 경우엔 분자가 수정체 격자 형태로 나란히 배열하게 돼 전기를 훨씬 더 잘 전달하게 해준다. 이 전기저항을 측정함으로써 이 디바이스는 셀이 얼마나 데이터를 저장하는지를 알아낸다. 그리고 제어된 방식으로 이를 가열하고 냉각함으로써 새로운 데이터가 쓰여지는 원리다.
멀티 레벨 상 변화 메모리는, 예를 들어, 멀티 레이어 접근 방식을 통해 이 셀을 4개의 서로 다른 결정과 비정질 상태로 만들어 사용할 수 있다. 4개의 상태에서 2비트로 표현되는 데이터, 즉 00, 01, 10, 11이라는 2진법 형태의 데이터가 각 셀에 저장된다. 이 방식은 메모리 칩의 밀도를 2배로 만들고 주어진 데이터를 저장하는 비용을 줄여준다. 하지만 이것으로도 충분하지 않다. 오늘날의 플래시 메모리는 셀당 3비트의 데이터가 저장될 수 있음을 의미하는 8개의 상태를 사용하기 때문이다.
상 변화 메모리의 문제 가운데 하나는 시간이 지남에 따라 데이터를 기록하는 전기저항 레벨이 표류(resistance drift)한다는 점이다. 서로 다른 상 변화 메모리의 저항 레벨 간의 차이가 정밀해져 갈수록 저항 표류라고 불리는 문제가 더 빨리 발생하게 된다. 드리프트가 발생하면 특정 셀의 저항도 시간의 경과에 따라 변화해 서로 다른 레벨 간의 경계를 모호하게 만들며, 데이터 오염까지 가져오게 된다. 서로 다른 셀이 서로 다른 비율로 표류하기 때문에 이를 다루기란 쉽지 않다.
이 문제를 해결하기 위한 방법으로 일부 셀에 실제 데이터 대신 코드워드(codeword)라고 불리는 것을 기록할 수 있다. 코드워드는 표준화된 코드 또는 프로토콜의 요소로서, 각 코드워드는 코드의 특정 규칙에 따라 재조립되며 유일한 의미를 할당 받을 수 있다. 코드워드는 일반적으로 신뢰성, 명확성, 간결성, 은닉성에 대한 근거로 사용된다. 변조코딩(modulation coding)으로 불리는 이 방식은 에러율을 낮추는 데 기여할 수 있다.
저항 표류(resistance drift)는 열 특성을 이용하는 위상 변화 메모리에서 불규칙적으로 발생하는 열 확산과 위상 변화 물질 자체의 구조 안정화(structural relaxation)에 의한 비결정화 때문에 기록된 저항 값이 의도치 않게 변화하는 현상을 말한다. 위상 변화층은 시간이 흐를수록 더 높은 저항 값을 가지게 되고, 그 변화 속도는 점점 증가한다. 각 셀에서 일어나는 저항 표류 정도가 다 다르기 때문에 기존의 읽기 방식은 높은 raw bit error rate를 갖는다. 이러한 에러 비율은 10-12 정도의 raw bit error rate를 갖는 DRAM에 비해서 매우 높은 수준이며, 메모리로서 이용되기에는 부적합한 수치이다.
저항 표류 문제에 대한 기존의 제안방법 등은 아직 이 문제를 충분히 해결한 단계가 아니며, 이에 대한 해결이 메모리 칩의 밀도를 높일 수 있는 열쇠가 될 것이다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 저항 표류에 강인한 데이터 코딩 장치 및 방법을 제공하는 데에 있다. 이는 기존의 저항 표류 문제를 해결하기 위한 방법들의 단점을 극복하고 간단한 모듈로 연산을 이용하여 빠른 시간 안에 저항 표류로 인한 에러를 교정할 수 있는 것이다.
또한, 저항 표류 현상을 고려하여 상 변화 메모리의 특정 셀에 기록된 저항 값 레벨을 읽어내기 위해서 그 셀과 같은 시간에 우리가 알고 있는 저항 값 레벨이 기록된 참조 셀(reference cell)을 이용하는 방법을 제공한다. 각 셀들의 저항 표류 정도가 통계적으로 정규 분포를 따르긴 하지만, 각 셀에서 일어나는 저항 표류 정도가 다 다르기 때문에 참조 셀을 이용한 읽기 방식은 어느 정도 raw bit error rate를 담보할 수 있다.
나아가, 모듈로 연산을 이용한 데이터 코딩은 상 변화 메모리의 인접한 셀들이 구성하는 그룹이나 코드워드에 적용됨으로써, 궁극적으로 2비트, 3비트, 및 그 이상의 멀티 레벨 구현 방법을 제공하고자 한다.
상기 목적을 달성하기 위한 본 발명의 일 측면에 따른 멀티 레벨 상 변화 메모리의 데이터 코딩 방법은, 상 변화 메모리(PCM, Phase Change Memory)에 대한 데이터 코딩 장치가 수행하는 방법에 있어서, 대상 메모리 셀(memory cell) 및 대상 메모리 셀에 인접한 메모리 셀들로 구성된 셀 그룹(cell group)을 정의하는 단계와, 저항 값 레벨이 기록된 참조 메모리 셀(reference memory cell)을 이용하여 셀 그룹 내의 메모리 셀들에 기록된 저항 값 레벨을 읽어내는 단계와, 읽어낸 저항 값 레벨의 분포가 미리 정의된 규칙에 부합하는지 여부를 판단하는 단계를 포함하여 구성되되, 미리 정의된 규칙은, 셀 그룹 내에 특정한 저항 값 레벨을 갖는 메모리 셀을 일정한 개수로 한정하여 모듈로 연산(modulo operation)을 이용하여 판단이 가능하게 할 수 있다.
삭제
여기에서, 셀 그룹은, 대상 메모리 셀 및 대상 메모리 셀에 인접한 메모리 셀들의 저항 값 레벨이 구성하는 코드워드(codeword) 형태로 표현될 수 있다.
여기에서, 참조 메모리 셀은, 퍼뮤테이션 코딩(permutation coding)을 적용할 수 있다.
여기에서, 특정한 저항 값 레벨은, 상 변화 메모리를 구성하는 상 변화 저항 소자에 전류를 인가함으로써 상 변화 저항 소자의 위상 변화층이 결정화되는 정도에 따라 다르게 기록되는 저항 값에 기반하여 정해질 수 있다.
여기에서, 판단하는 단계는, 셀 그룹 내의 각 저항 값 레벨을 갖는 메모리 셀의 개수를 카운팅하고, 일정한 개수와 일치하는지 여부를 모듈로 연산(modulo operation)을 이용하여 판단할 수 있다.
나아가, 모듈로 연산의 피연산자(modulus, operand)는, 데이터 효율(data efficiency), 에러 비율(error rate), 및 메모리 셀의 저항 값 별 저항 표류(resistance drift) 특성에 기반하여 정해질 수 있다.
또 나아가, 멀티 레벨 상 변화 메모리의 데이터 코딩 방법은, 판단하는 단계에서 분포가 미리 정의된 규칙에 부합하지 않는 경우에, 읽어내는 단계에서 에러(error)가 발생한 것으로 판단하고, 읽어내는 단계 과정에서 가장 낮은 신뢰도를 가지는 메모리 셀의 저항 값 레벨을 미리 정의된 규칙에 부합하도록 교정하는 단계를 더 포함하여 구성될 수 있다.
더 나아가, 가장 낮은 신뢰도를 가지는 메모리 셀은, 에러가 발생한 저항 값 레벨을 가지는 메모리 셀 중 참조 메모리 셀을 이용한 기준값과 가장 가까운 저항 값을 가지는 메모리 셀일 수 있다.
여기에서, 판단하는 단계는, 셀 그룹 내의 각 저항 값 레벨을 갖는 메모리 셀의 홀짝(even and odd) 여부를 카운팅하고, 일정한 개수와 일치하는지 여부는 홀짝성 규칙으로 판단하는 모듈로-2 연산을 이용할 수 있다.
나아가, 멀티 레벨 상 변화 메모리의 데이터 코딩 방법은, 판단하는 단계에서 분포가 미리 정의된 규칙에 부합하지 않는 경우에, 읽어내는 단계에서 에러(error)가 발생한 것으로 판단하고, 홀짝성 규칙에 어긋난 인접한 두 저항 값 레벨의 경계에 가장 가까운 저항 값을 갖는 메모리 셀의 저항 값 레벨을 인접한 저항 값 레벨로 바꿈으로써 미리 정의된 규칙에 부합하도록 교정하는 단계를 더 포함하여 구성될 수 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면에 따른 멀티 레벨 상 변화 메모리의 데이터 코딩 장치는, 상 변화 메모리에 대한 데이터 코딩 장치에 있어서, 대상 메모리 셀(memory cell) 및 대상 메모리 셀에 인접한 메모리 셀들로 구성된 셀 그룹(cell group)을 정의하는 셀 그룹 정의부와, 참조 메모리 셀(reference memory cell)의 저항 값 레벨을 이용하여 셀 그룹 내의 메모리 셀들의 저항 값 레벨을 결정하는 레벨 결정부와, 결정한 메모리 셀들의 저항 값 레벨의 분포가 미리 정의된 규칙에 부합하는지 여부를 판단하는 규칙 판단부를 포함하여 구성되되, 미리 정의된 규칙은, 셀 그룹 내에 특정한 저항 값 레벨을 갖는 메모리 셀을 일정한 개수로 한정하여 모듈로 연산(modulo operation)을 이용하여 판단이 가능하게 할 수 있다.
삭제
여기에서, 셀 그룹은, 대상 메모리 셀 및 대상 메모리 셀에 인접한 메모리 셀들의 저항 값 레벨이 구성하는 코드워드(codeword) 형태로 표현될 수 있다.
여기에서, 참조 메모리 셀은, 퍼뮤테이션 코딩(permutation coding)을 적용한 것일 수 있다.
여기에서, 특정한 저항 값 레벨은, 상 변화 메모리를 구성하는 상 변화 저항 소자에 전류를 인가함으로써 상 변화 저항 소자의 위상 변화층이 결정화되는 정도에 따라 다르게 기록되는 저항 값에 기반하여 정해질 수 있다.
여기에서, 규칙 판단부는, 셀 그룹 내의 각 저항 값 레벨을 갖는 메모리 셀의 개수를 카운팅하고, 일정한 개수와 일치하는지 여부를 모듈로 연산(modulo operation)을 이용하여 판단할 수 있다.
나아가, 모듈로 연산의 피연산자(modulus, operand)는, 데이터 효율(data efficiency), 에러 비율(error rate), 및 메모리 셀의 저항 값 별 저항 표류(resistance drift) 특성에 기반하여 정해질 수 있다.
또 나아가, 멀티 레벨 상 변화 메모리의 데이터 코딩 장치는, 규칙 판단부에서 분포가 미리 정의된 규칙에 부합하지 않는다고 판단하는 경우에, 레벨 결정부에서 에러(error)가 발생한 것으로 판단하고, 레벨 결정부가 결정하는 과정에서 가장 낮은 신뢰도를 가지는 메모리 셀의 저항 값 레벨을 미리 정의된 규칙에 부합하도록 교정하는 레벨 교정부를 더 포함하여 구성될 있다.
더 나아가, 가장 낮은 신뢰도를 가지는 메모리 셀은, 에러가 발생한 저항 값 레벨을 가지는 메모리 셀 중 참조 메모리 셀을 이용한 기준값과 가장 가까운 저항 값을 가지는 메모리 셀일 수 있다.
여기에서, 규칙 판단부는, 셀 그룹 내의 각 저항 값 레벨을 갖는 메모리 셀의 홀짝(even and odd) 여부를 카운팅하고, 일정한 개수와 일치하는지 여부는 홀짝성 규칙으로 판단하는 모듈로-2 연산을 할 수 있다.
나아가, 멀티 레벨 상 변화 메모리의 데이터 코딩 장치는, 규칙 판단부에서 분포가 미리 정의된 규칙에 부합하지 않는다고 판단하는 경우에, 레벨 결정부에서 에러(error)가 발생한 것으로 판단하고, 홀짝성 규칙에 어긋난 인접한 두 저항 값 레벨의 경계에 가장 가까운 저항 값을 갖는 메모리 셀의 저항 값 레벨을 인접한 저항 값 레벨로 바꿈으로써 미리 정의된 규칙에 부합하도록 교정하는 레벨 교정부를 더 포함하여 구성될 수 있다.
상술한 바와 같은 본 발명의 실시예에 따른 멀티 레벨 상 변화 메모리의 데이터 코딩 장치 및 방법을 사용하면, 상 변화 메모리의 인접한 셀들이 구성하는 그룹 내의 저항 값 분포를 모듈로(나머지) 연산을 통해 규정하고, 읽기 과정에서 이용해 읽어낸 값을 교정함으로써 저항표류로 인한 raw bit error rate를 낮출 수 있다는 장점이 있다.
또한 참조 셀을 읽기 과정에서 이용하고, 간단한 모듈로 연산을 통해 에러 발생을 확인하고 에러 발생 시에만 부가적인 프로세스를 수행함으로써 퍼뮤테이션 코딩과 같은 다른 코딩 기법에 비해 빠르고 간단한 읽기 과정을 가능하게 한다는 장점이 있다.
도 1은 본 발명의 일 실시예에 따른 멀티 레벨 상 변화 메모리의 데이터 코딩 방법과 그 세부단계를 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 메모리 소자에 인가된 전류에 따라 다른 저항 값을 갖는 메모리 소자들을 참고 메모리 셀을 이용한 기준값으로 레벨을 구분하는 것을 설명하기 위한 예시도이다.
도 3은 본 발명의 일 실시예에 따른 멀티 레벨 상 변화 메모리의 데이터 코딩 장치와 그 세부 구성요소를 설명하기 위한 블록도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 발명을 설명하기 위해서 전반적으로 사용되는 용어들에 대한 간략한 정의들을 정리한다. 아래 용어들 이외의 용어들에 대해서는 본 명세서 내의 적절한 부분에서 정의를 제공한다.
상 변화 메모리(PCM, Phase Change Memory)란, 플래시 메모리 칩처럼 전원이 꺼지더라도 저장한 정보를 살릴 수 있으며 플래시 메모리와 램의 빠른 동작특성 등의 장점을 모두 갖춘 메모리 반도체를 말한다. PCM은 플래시메모리와 램의 기존 노어 플래시 및 낸드 플래시보다 저전력으로 빠르게 읽기, 쓰기를 할 수 있으며 램의 일반적인 특성인 비트 가변성도 갖추고 있다. PCM을 탑재하면 램의 소비를 줄여, 메모리 시스템의 비용과 전력소모를 획기적으로 낮출 수 있다.
상 변화 메모리는 저장매체 물질의 형태를 바꿔 정보를 저장하는 방식이다. 실리콘의 반도체적 특성을 이용하는 기존 메모리 기술과 다르다는 뜻이다. 상 변화 메모리 기술은 물질을 비정질일 때(amorphous phase)와 결정질일 때(crystalline phase)로 나눠 디지털 정보를 저장한다. 비정질 상태에서 결정질로 바뀔 때는 정보가 저장되고, 다시 비정질 상태로 녹을 때는 정보가 지워지는 식이다. 물질의 상태는 열을 이용해 바꾼다.
플래시 메모리(flash memory)는 소비전력이 작고, 전원이 꺼지더라도 저장된 정보가 사라지지 않은 채 유지되는 특성을 지닌다. 곧 계속해서 전원이 공급되는 비휘발성 메모리로, 디램과 달리 전원이 끊기더라도 저장된 정보를 그대로 보존할 수 있을 뿐 아니라 정보의 입출력도 자유로워 디지털텔레비전, 디지털캠코더, 휴대전화, 디지털카메라, 개인휴대단말기(PDA), 게임기, MP3플레이어 등에 널리 이용된다.
종류는 크게 저장용량이 큰 데이터 저장형(NAND)과 처리속도가 빠른 코드 저장형(NOR)의 2가지로 분류된다. 전자는 고집적이 가능하고 핸드디스크를 대체할 수 있어 고집적 음성이나 화상 등의 저장용으로 많이 쓰이는데, 2003년 2월 현재 한국의 삼성전자(주)가 세계 시장의 60%를 점유하고 있다. 코드 저장형은 2002년 기준으로 전체 플래시메모리 시장의 80%를 차지하고 있는 메모리로, 인텔, AMD 등이 시장을 주도하고 있으며, 한국에서도 2003년 1월 128메가의 코드 저장형 플래시 메모리 제품을 개발하였다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 멀티 레벨 상 변화 메모리의 데이터 코딩 방법과 그 세부단계를 설명하기 위한 흐름도이고, 도 2는 메모리 소자에 인가된 전류에 따라 다른 저항 값을 갖는 메모리 소자들을 참고 메모리 셀을 이용한 기준값으로 레벨을 구분하는 것을 설명하기 위한 예시도이다.
도 1 내지 도 2를 참조하여 멀티 레벨 상 변화 메모리의 데이터 코딩 방법과 그 세부단계를 살펴보면 다음과 같다.
멀티 레벨 상 변화 메모리의 데이터 코딩 방법은, 상 변화 메모리(PCM, Phase Change Memory)에 대한 데이터 코딩 장치가 수행하는 방법에 있어서, 대상 메모리 셀(memory cell) 및 대상 메모리 셀에 인접한 메모리 셀들로 구성된 셀 그룹(cell group)을 정의하는 단계(S110)와, 참조 메모리 셀(reference memory cell)의 저항 값 레벨을 이용하여 셀 그룹 내의 메모리 셀들의 저항 값 레벨을 결정하는 단계(S120)와, 결정된 메모리 셀들의 저항 값 레벨의 분포가 미리 정의된 규칙에 부합하는지 여부를 판단하는 단계(S130)를 포함하여 구성되되, 미리 정의된 규칙은, 셀 그룹 내에 특정한 저항 값 레벨을 갖는 메모리 셀을 일정한 개수로 한정하는 것일 수 있다.
셀 그룹은, 대상 메모리 셀 및 대상 메모리 셀에 인접한 메모리 셀들의 저항 값 레벨이 구성하는 코드워드(codeword) 형태로 표현될 수 있다.
참조 메모리 셀은, 퍼뮤테이션 코딩(permutation coding)을 적용한 것일 수 있다.
특정한 저항 값 레벨은, 상 변화 메모리를 구성하는 상 변화 저항 소자에 전류를 인가함으로써 상 변화 저항 소자의 위상 변화층이 결정화되는 정도에 따라 다르게 기록되는 저항 값에 기반하여 정해질 수 있다.
판단하는 단계(S130)는, 셀 그룹 내의 각 저항 값 레벨을 갖는 메모리 셀의 개수를 카운팅하고, 일정한 개수와 일치하는지 여부를 모듈로 연산(modulo operation)을 이용하여 판단할 수 있다. 나아가, 모듈로 연산의 피연산자(modulus, operand)는, 데이터 효율(data efficiency), 에러 비율(error rate), 및 메모리 셀의 저항 값 별 저항 표류(resistance drift) 특성에 기반하여 정해질 수 있다. 또 나아가, 멀티 레벨 상 변화 메모리의 데이터 코딩 방법은, 판단하는 단계(S130)에서 분포가 미리 정의된 규칙에 부합하지 않는 경우에, 결정하는 단계(S120)에서 에러(error)가 발생한 것으로 판단하고, 결정하는 단계(S120) 과정에서 가장 낮은 신뢰도를 가지는 메모리 셀의 저항 값 레벨을 미리 정의된 규칙에 부합하도록 교정하는 단계(S140)를 더 포함하여 구성될 수 있다. 더 나아가, 가장 낮은 신뢰도를 가지는 메모리 셀은, 에러가 발생한 저항 값 레벨을 가지는 메모리 셀 중 참조 메모리 셀을 이용한 기준값과 가장 가까운 저항 값을 가지는 메모리 셀일 수 있다.
판단하는 단계(S130)는, 셀 그룹 내의 각 저항 값 레벨을 갖는 메모리 셀의 홀짝(even and odd) 여부를 카운팅하고, 일정한 개수와 일치하는지 여부는 홀짝성 규칙으로 판단하는 모듈로-2 연산을 이용할 수 있다. 나아가, 멀티 레벨 상 변화 메모리의 데이터 코딩 방법은, 판단하는 단계(S130)에서 분포가 미리 정의된 규칙에 부합하지 않는 경우에, 결정하는 단계(S120)에서 에러(error)가 발생한 것으로 판단하고, 홀짝성 규칙에 어긋난 인접한 두 저항 값 레벨의 경계에 가장 가까운 저항 값을 갖는 메모리 셀의 저항 값 레벨을 인접한 저항 값 레벨로 바꿈으로써 미리 정의된 규칙에 부합하도록 교정하는 단계(S140)를 더 포함하여 구성될 수 있다.
멀티 레벨 상 변화 메모리의 한 셀에 기록된 저항 값 레벨과 주변 셀들의 저항 값 레벨이 구성하는 그룹 혹은 코드워드에 모듈로 연산을 통한 규칙 (피연산자가 2일 때는 '홀짝성'의 규칙)을 부여하여 각 메모리 셀들에 기록될 저항 값 레벨을 제한할 수 있다. 이 때 모듈로 연산의 피연산자가 2일 경우에는 홀짝성 규칙이 될 수 있다. 이러한 규칙을 참조 셀(reference cell)을 이용한 읽기 과정에 활용하여 저항 표류로 인한 소프트 에러를 방지할 수 있다.
저항 표류(resistance drift)는 열 특성을 이용하는 위상 변화 메모리에서 불규칙적으로 발생하는 열 확산과 위상 변화 물질 자체의 구조 안정화(structural relaxation)에 의한 비결정화 때문에 기록된 저항 값이 의도치 않게 변화하는 현상을 말한다. 위상 변화 층은 시간이 흐를수록 더 높은 저항 값을 가지게 되고, 그 변화 속도는 점점 증가한다. 일반적으로 저항 표류 현상을 고려하여 상 변화 메모리의 특정 메모리 셀에 기록된 저항 값 레벨을 읽어내기 위해서는 그 메모리 셀과 같은 시간에 우리가 알고 있는 저항 값 레벨이 기록된 참조 메모리 셀을 이용할 수 있다.
각 셀들의 저항표류 정도가 통계적으로 정규 분포를 따르긴 하지만, 각 셀에서 일어나는 저항표류 정도가 다 다르기 때문에 참조 셀을 이용한 읽기 방식은 10-2~10-3 정도의 raw bit error rate를 갖는다. 이러한 에러 비율은 10-12 정도의 raw bit error rate를 갖는 DRAM에 비해서 매우 높은 수치이며, 메모리로서 이용되기에는 부적합한 수치이다.
본 발명은 상 변화 메모리의 각 셀에 기록될 수 있는 저항 값 레벨을 특정 규칙에 따라 제한하고, 읽기 과정에서 이용함으로써 에러 비율을 낮추는 것이다. 이용되는 규칙은 모듈로 연산을 이용하여 인접한 N개의 셀들이 구성하는 그룹 내에서 특정 저항 값 레벨을 갖는 셀들의 개수를 제한하는 것이다. 피연산자 2를 이용한 모듈로 연산에 대해서는, 특정 저항 값 레벨들의 개수 분포를 짝수 혹은 홀수로 제한할 수 있다.
modulo 연산은 나누기(division)와 나머지(remainder)에 대한 연산이다. modulo 연산은 다음과 같이 정의한다.
Figure 112014097079056-pat00001
17을 5로 나누면 몫(quotient)은 3이고 나머지는 2가 되며, modulo 연산으로 표시하면 17 mod 5 = 2이다. 위 관계식에서 입력값 b는 모듈로(modulus), 결과값 r은 나머지(residue)라고 한다. 위 수식에서 알 수 있듯이 모듈로 연산자는 음이 아니면서 모듈로(b)보다 작은 나머지(r)를 생성한다.
모듈로-2 연산은 2를 피연산자로 하는 모듈로 연산으로 XOR 게이트(배타적 OR 게이트)나 AND 게이트로 구현될 수 있다. 예를 들어, 모듈로-2 덧셈과 모듈로-2 곱셈은 다음과 같이 표현될 수 있다.
Figure 112014097079056-pat00002
0 1
0 0 1
1 1 0
Figure 112014097079056-pat00003
즉, 모듈로 2 덧셈은 같으면 0, 다르면 1이 된다.
Figure 112014097079056-pat00004
0 1
0 0 0
1 0 1
Figure 112014097079056-pat00005
즉, 모듈로 2 곱셈은 하나라도 0이면 0, 모두 1일 경우에만 1이 된다.
한 그룹 내의 모든 저항 값 레벨을 참조 메모리 셀을 이용하여 읽었을 때 저항 값 레벨의 분포가 정의된 규칙과 맞지 않으면, 에러가 발생했음을 인지하고 읽은 값을 교정할 수 있다. 값을 교정하는 방식은 참조 메모리 셀을 이용한 읽기 과정에서 가장 낮은 신뢰도를 가진 셀의 저항 레벨을 바꾸는 것이다. 예를 들어, 에러가 발생한 저항 값 레벨을 가지는 메모리 셀 중 참조 메모리 셀을 이용한 기준값과 가장 가까운 저항 값을 가지는 셀을 찾는 것으로 가장 낮은 신뢰도를 가진 셀을 찾을 수 있다.
모듈로 연산의 피연산자가 2인 경우에는 특정 저항 레벨 값의 홀짝성이 정의된 규칙과 맞지 않으면 인접한 저항 값 레벨의 홀짝성도 맞지 않고, 인접한 두 레벨을 구분하는 기준값에 가장 가까운 저항 값을 가지는 메모리 셀의 레벨을 바꿈으로써 정의된 규칙에 맞도록 교정할 수 있다.
모듈로 연산을 이용한 교정을 실시한 후에는 다시 메모리 셀들의 저항 값 레벨의 개수에 대하여 정의된 규칙과 비교하는 과정을 반복할 수 있다. 이러한 비교 및 교정 과정을 수행한 결과 정의된 규칙과 일치하였을 때 더 이상 에러가 없는 것으로 판단하고 디코딩할 수 있다. 기록되는 레벨에 규칙을 부여함으로써 떨어지는 데이터 효율에 대해서는 퍼뮤테이션 코딩과 같은 기존 방법을 참조 셀에 적용함으로써 문제를 해결할 수 있다.
도 3은 본 발명의 일 실시예에 따른 멀티 레벨 상 변화 메모리의 데이터 코딩 장치(10)와 그 세부 구성요소를 설명하기 위한 블록도이다.
도 3을 참조하여 멀티 레벨 상 변화 메모리의 데이터 코딩 장치(10)와 그 세부 구성요소를 살펴보면 다음과 같다.
멀티 레벨 상 변화 메모리의 데이터 코딩 장치(10)는, 상 변화 메모리에 대한 데이터 코딩 장치에 있어서, 대상 메모리 셀(memory cell) 및 대상 메모리 셀에 인접한 메모리 셀들로 구성된 셀 그룹(cell group)을 정의하는 셀 그룹 정의부(100)와, 참조 메모리 셀(reference memory cell)의 저항 값 레벨을 이용하여 셀 그룹 내의 메모리 셀들의 저항 값 레벨을 결정하는 레벨 결정부(200)와, 결정한 메모리 셀들의 저항 값 레벨의 분포가 미리 정의된 규칙에 부합하는지 여부를 판단하는 규칙 판단부(300)를 포함하여 구성되되, 미리 정의된 규칙은, 셀 그룹 내에 특정한 저항 값 레벨을 갖는 메모리 셀을 일정한 개수로 한정하는 것일 수 있다.
셀 그룹은, 대상 메모리 셀 및 대상 메모리 셀에 인접한 메모리 셀들의 저항 값 레벨이 구성하는 코드워드(codeword) 형태로 표현될 수 있다.
참조 메모리 셀은, 퍼뮤테이션 코딩(permutation coding)을 적용한 것일 수 있다.
특정한 저항 값 레벨은, 상 변화 메모리를 구성하는 상 변화 저항 소자에 전류를 인가함으로써 상 변화 저항 소자의 위상 변화층이 결정화되는 정도에 따라 다르게 기록되는 저항 값에 기반하여 정해질 수 있다.
규칙 판단부(300)는, 셀 그룹 내의 각 저항 값 레벨을 갖는 메모리 셀의 개수를 카운팅하고, 일정한 개수와 일치하는지 여부를 모듈로 연산(modulo operation)을 이용하여 판단할 수 있다. 나아가, 모듈로 연산의 피연산자(modulus, operand)는, 데이터 효율(data efficiency), 에러 비율(error rate), 및 메모리 셀의 저항 값 별 저항 표류(resistance drift) 특성에 기반하여 정해질 수 있다. 또 나아가, 멀티 레벨 상 변화 메모리의 데이터 코딩 장치(10)는, 규칙 판단부(300)에서 분포가 미리 정의된 규칙에 부합하지 않는다고 판단하는 경우에, 레벨 결정부(200)에서 에러(error)가 발생한 것으로 판단하고, 레벨 결정부(200)가 결정하는 과정에서 가장 낮은 신뢰도를 가지는 메모리 셀의 저항 값 레벨을 미리 정의된 규칙에 부합하도록 교정하는 레벨 교정부(400)를 더 포함하여 구성될 수 있다. 더 나아가, 가장 낮은 신뢰도를 가지는 메모리 셀은, 에러가 발생한 저항 값 레벨을 가지는 메모리 셀 중 참조 메모리 셀을 이용한 기준값과 가장 가까운 저항 값을 가지는 메모리 셀일 수 있다.
규칙 판단부(300)는, 셀 그룹 내의 각 저항 값 레벨을 갖는 메모리 셀의 홀짝(even and odd) 여부를 카운팅하고, 일정한 개수와 일치하는지 여부는 홀짝성 규칙으로 판단하는 모듈로-2 연산을 이용할 수 있다. 나아가, 멀티 레벨 상 변화 메모리의 데이터 코딩 장치(10)는, 규칙 판단부(300)에서 분포가 미리 정의된 규칙에 부합하지 않는다고 판단하는 경우에, 레벨 결정부(200)에서 에러(error)가 발생한 것으로 판단하고, 홀짝성 규칙에 어긋난 인접한 두 저항 값 레벨의 경계에 가장 가까운 저항 값을 갖는 메모리 셀의 저항 값 레벨을 인접한 저항 값 레벨로 바꿈으로써 미리 정의된 규칙에 부합하도록 교정하는 레벨 교정부(400)를 더 포함하여 구성될 수 있다.
멀티 레벨 상 변화 메모리의 데이터 코딩 장치(10)에 대한 구체적인 설명은 앞선 멀티 레벨 상 변화 메모리의 데이터 코딩 방법에 대한 설명에서 상술한 바 있으므로 중복하여 기재하지는 않는다.
비록 몇몇의 측면들은 방법의 관점에서 설명되었지만, 이러한 측면들은 상응하는 장치의 설명을 나타내는 것이 명확하며, 여기서 방법의 단계는 장치에 대응한다. 특정 구현 요구들에 따르면, 발명의 실시예들은 하드웨어 또는 소프트웨어에서 구현될 수 있다. 본 발명의 실시예들은 프로그램 코드, 방법들 중 하나의 수행을 위해 동작하는 프로그램 코드를 가지는 컴퓨터 프로그램 제품으로서 수행될 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
10: 멀티 레벨 상 변화 메모리의 데이터 코딩 장치
100: 셀 그룹 정의부 200: 레벨 결정부
300: 규칙 판단부 400: 레벨 교정부

Claims (20)

  1. 상 변화 메모리(PCM, Phase Change Memory)에 대한 데이터 코딩 장치가 수행하는 방법에 있어서,
    대상 메모리 셀(memory cell) 및 상기 대상 메모리 셀에 인접한 메모리 셀들로 구성된 셀 그룹(cell group)을 정의하는 단계;
    참조 메모리 셀(reference memory cell)의 저항 값 레벨을 이용하여 상기 셀 그룹 내의 메모리 셀들의 저항 값 레벨을 결정하는 단계;
    상기 결정된 메모리 셀들의 저항 값 레벨의 분포가 미리 정의된 규칙에 부합하는지 여부를 판단하는 단계를 포함하되,
    상기 미리 정의된 규칙은, 상기 셀 그룹 내에 특정한 저항 값 레벨을 갖는 메모리 셀을 일정한 개수들로 한정하여 모듈로 연산(modulo operation)을 이용하여 판단이 가능하게 하는 것임을 특징으로 하는 멀티 레벨 상 변화 메모리의 데이터 코딩 방법.
  2. 청구항 1에 있어서,
    상기 셀 그룹은,
    상기 대상 메모리 셀 및 상기 대상 메모리 셀에 인접한 메모리 셀들의 저항 값 레벨이 구성하는 코드워드(codeword) 형태로 표현되는 것을 특징으로 하는 멀티 레벨 상 변화 메모리의 데이터 코딩 방법.
  3. 청구항 1에 있어서,
    상기 참조 메모리 셀은,
    퍼뮤테이션 코딩(permutation coding)을 적용한 것임을 특징으로 하는 멀티 레벨 상 변화 메모리의 데이터 코딩 방법.
  4. 청구항 1에 있어서,
    상기 특정한 저항 값 레벨은,
    상기 상 변화 메모리를 구성하는 상 변화 저항 소자에 전류를 인가함으로써 상기 상 변화 저항 소자의 위상 변화층이 결정화되는 정도에 따라 다르게 기록되는 저항 값에 기반하여 정해지는 것을 특징으로 하는 멀티 레벨 상 변화 메모리의 데이터 코딩 방법.
  5. 청구항 1에 있어서,
    상기 판단하는 단계는,
    상기 셀 그룹 내의 각 저항 값 레벨을 갖는 메모리 셀의 개수를 카운팅하고, 상기 일정한 개수와 일치하는지 여부를 모듈로 연산(modulo operation)을 이용하여 판단하는 것임을 특징으로 하는 멀티 레벨 상 변화 메모리의 데이터 코딩 방법.
  6. 청구항 5에 있어서,
    상기 모듈로 연산의 피연산자(modulus, operand)는,
    데이터 효율(data efficiency), 에러 비율(error rate), 및 메모리 셀의 저항 값 별 저항 표류(resistance drift) 특성에 기반하여 정해지는 것을 특징으로 하는 멀티 레벨 상 변화 메모리의 데이터 코딩 방법.
  7. 청구항 5에 있어서,
    상기 멀티 레벨 상 변화 메모리의 데이터 코딩 방법은,
    상기 판단하는 단계에서 상기 분포가 상기 미리 정의된 규칙에 부합하지 않는 경우에, 상기 결정하는 단계에서 에러(error)가 발생한 것으로 판단하고, 상기 결정하는 단계 과정에서 가장 낮은 신뢰도를 가지는 메모리 셀의 저항 값 레벨을 상기 미리 정의된 규칙에 부합하도록 교정하는 단계를 더 포함하는 것을 것을 특징으로 하는 멀티 레벨 상 변화 메모리의 데이터 코딩 방법.
  8. 청구항 7에 있어서,
    상기 가장 낮은 신뢰도를 가지는 메모리 셀은,
    에러가 발생한 저항 값 레벨을 가지는 메모리 셀 중 상기 참조 메모리 셀을 이용한 기준값과 가장 가까운 저항 값을 가지는 메모리 셀인 것을 특징으로 하는 멀티 레벨 상 변화 메모리의 데이터 코딩 방법.
  9. 청구항 1에 있어서,
    상기 판단하는 단계는,
    상기 셀 그룹 내의 각 저항 값 레벨을 갖는 메모리 셀의 홀짝(even and odd) 여부를 카운팅하고, 상기 일정한 개수와 일치하는지 여부는 홀짝성 규칙으로 판단하는 모듈로-2 연산을 이용하는 것을 특징으로 하는 멀티 레벨 상 변화 메모리의 데이터 코딩 방법.
  10. 청구항 9에 있어서,
    상기 멀티 레벨 상 변화 메모리의 데이터 코딩 방법은,
    상기 판단하는 단계에서 상기 분포가 상기 미리 정의된 규칙에 부합하지 않는 경우에, 상기 결정하는 단계에서 에러(error)가 발생한 것으로 판단하고, 상기 홀짝성 규칙에 어긋난 인접한 두 저항 값 레벨의 경계에 가장 가까운 저항 값을 갖는 메모리 셀의 저항 값 레벨을 인접한 저항 값 레벨로 바꿈으로써 상기 미리 정의된 규칙에 부합하도록 교정하는 단계를 더 포함하는 것을 것을 특징으로 하는 멀티 레벨 상 변화 메모리의 데이터 코딩 방법.
  11. 상 변화 메모리에 대한 데이터 코딩 장치에 있어서,
    대상 메모리 셀(memory cell) 및 상기 대상 메모리 셀에 인접한 메모리 셀들로 구성된 셀 그룹(cell group)을 정의하는 셀 그룹 정의부;
    참조 메모리 셀(reference memory cell)의 저항 값 레벨을 이용하여 상기 셀 그룹 내의 메모리 셀들의 저항 값 레벨을 결정하는 레벨 결정부;
    상기 결정한 메모리 셀들의 저항 값 레벨의 분포가 미리 정의된 규칙에 부합하는지 여부를 판단하는 규칙 판단부를 포함하되,
    상기 미리 정의된 규칙은, 상기 셀 그룹 내에 특정한 저항 값 레벨을 갖는 메모리 셀을 일정한 개수로 한정하여 모듈로 연산(modulo operation)을 이용하여 판단이 가능하게 하는 것임을 특징으로 하는 멀티 레벨 상 변화 메모리의 데이터 코딩 장치.
  12. 청구항 11에 있어서,
    상기 셀 그룹은,
    상기 대상 메모리 셀 및 상기 대상 메모리 셀에 인접한 메모리 셀들의 저항 값 레벨이 구성하는 코드워드(codeword) 형태로 표현되는 것을 특징으로 하는 멀티 레벨 상 변화 메모리의 데이터 코딩 장치.
  13. 청구항 11에 있어서,
    상기 참조 메모리 셀은,
    퍼뮤테이션 코딩(permutation coding)을 적용한 것임을 특징으로 하는 멀티 레벨 상 변화 메모리의 데이터 코딩 장치.
  14. 청구항 11에 있어서,
    상기 특정한 저항 값 레벨은,
    상기 상 변화 메모리를 구성하는 상 변화 저항 소자에 전류를 인가함으로써 상기 상 변화 저항 소자의 위상 변화층이 결정화되는 정도에 따라 다르게 기록되는 저항 값에 기반하여 정해지는 것을 특징으로 하는 멀티 레벨 상 변화 메모리의 데이터 코딩 장치.
  15. 청구항 11에 있어서,
    상기 규칙 판단부는,
    상기 셀 그룹 내의 각 저항 값 레벨을 갖는 메모리 셀의 개수를 카운팅하고, 상기 일정한 개수와 일치하는지 여부를 모듈로 연산(modulo operation)을 이용하여 판단하는 것을 특징으로 하는 멀티 레벨 상 변화 메모리의 데이터 코딩 장치.
  16. 청구항 15에 있어서,
    상기 모듈로 연산의 피연산자(modulus, operand)는,
    데이터 효율(data efficiency), 에러 비율(error rate), 및 메모리 셀의 저항 값 별 저항 표류(resistance drift) 특성에 기반하여 정해지는 것을 특징으로 하는 멀티 레벨 상 변화 메모리의 데이터 코딩 장치.
  17. 청구항 15에 있어서,
    상기 멀티 레벨 상 변화 메모리의 데이터 코딩 장치는,
    상기 규칙 판단부에서 상기 분포가 상기 미리 정의된 규칙에 부합하지 않는다고 판단하는 경우에, 상기 레벨 결정부에서 에러(error)가 발생한 것으로 판단하고, 상기 레벨 결정부가 결정하는 과정에서 가장 낮은 신뢰도를 가지는 메모리 셀의 저항 값 레벨을 상기 미리 정의된 규칙에 부합하도록 교정하는 레벨 교정부를 더 포함하는 것을 것을 특징으로 하는 멀티 레벨 상 변화 메모리의 데이터 코딩 장치.
  18. 청구항 17에 있어서,
    상기 가장 낮은 신뢰도를 가지는 메모리 셀은,
    에러가 발생한 저항 값 레벨을 가지는 메모리 셀 중 상기 참조 메모리 셀을 이용한 기준값과 가장 가까운 저항 값을 가지는 메모리 셀인 것을 특징으로 하는 멀티 레벨 상 변화 메모리의 데이터 코딩 장치.
  19. 청구항 11에 있어서,
    상기 규칙 판단부는,
    상기 셀 그룹 내의 각 저항 값 레벨을 갖는 메모리 셀의 홀짝(even and odd) 여부를 카운팅하고, 상기 일정한 개수와 일치하는지 여부는 홀짝성 규칙으로 판단하는 모듈로-2 연산을 이용하는 것을 특징으로 하는 멀티 레벨 상 변화 메모리의 데이터 코딩 장치.
  20. 청구항 19에 있어서,
    상기 멀티 레벨 상 변화 메모리의 데이터 코딩 장치는,
    상기 규칙 판단부에서 상기 분포가 상기 미리 정의된 규칙에 부합하지 않는다고 판단하는 경우에, 상기 레벨 결정부에서 에러(error)가 발생한 것으로 판단하고, 상기 홀짝성 규칙에 어긋난 인접한 두 저항 값 레벨의 경계에 가장 가까운 저항 값을 갖는 메모리 셀의 저항 값 레벨을 인접한 저항 값 레벨로 바꿈으로써 상기 미리 정의된 규칙에 부합하도록 교정하는 레벨 교정부를 더 포함하는 것을 것을 특징으로 하는 멀티 레벨 상 변화 메모리의 데이터 코딩 장치.
KR1020140137526A 2014-10-13 2014-10-13 멀티 레벨 상 변화 메모리의 데이터 코딩 장치 및 방법 KR101590725B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140137526A KR101590725B1 (ko) 2014-10-13 2014-10-13 멀티 레벨 상 변화 메모리의 데이터 코딩 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140137526A KR101590725B1 (ko) 2014-10-13 2014-10-13 멀티 레벨 상 변화 메모리의 데이터 코딩 장치 및 방법

Publications (1)

Publication Number Publication Date
KR101590725B1 true KR101590725B1 (ko) 2016-02-02

Family

ID=55354674

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140137526A KR101590725B1 (ko) 2014-10-13 2014-10-13 멀티 레벨 상 변화 메모리의 데이터 코딩 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101590725B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130170272A1 (en) 2011-12-28 2013-07-04 Micha Anholt Optimized threshold search in analog memory cells
US20130268723A1 (en) 2012-03-08 2013-10-10 Texas A&M University System Flash memories using minimum push up, multi-cell and multi-permutation schemes for data storage
US20140071748A1 (en) 2012-09-07 2014-03-13 Being Advanced Memory Corporation Systems, Methods, and Devices with Write Optimization in Phase Change Memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130170272A1 (en) 2011-12-28 2013-07-04 Micha Anholt Optimized threshold search in analog memory cells
US20130268723A1 (en) 2012-03-08 2013-10-10 Texas A&M University System Flash memories using minimum push up, multi-cell and multi-permutation schemes for data storage
US20140071748A1 (en) 2012-09-07 2014-03-13 Being Advanced Memory Corporation Systems, Methods, and Devices with Write Optimization in Phase Change Memory

Similar Documents

Publication Publication Date Title
US10770156B2 (en) Memory devices and methods for read disturb mitigation involving word line scans to detect localized read disturb effects and to determine error count in tracked sub sets of memory addresses
US10564900B2 (en) Temperature variation compensation
KR102315294B1 (ko) 솔리드-스테이트 스토리지 디바이스들에서의 판독 전압 계산
JP5148946B2 (ja) 相変化メモリ装置における書込動作方法
US9564233B1 (en) Open block source bias adjustment for an incompletely programmed block of a nonvolatile storage device
KR101374319B1 (ko) 가변 저항 메모리 장치 및 그것의 동작 방법
US9047955B2 (en) Adjusting operating parameters for memory cells based on wordline address and cycle information
US9003224B2 (en) Managing unreliable memory in data storage systems
US8910000B2 (en) Program-disturb management for phase change memory
TWI515748B (zh) 測量記憶體錯誤校正資料之方法及儀器
EP3491648A1 (en) Method and apparatus with background reference positioning and local reference positioning
US20130227200A1 (en) Determining bias information for offsetting operating variations in memory cells based on wordline address
US8417879B2 (en) Method for suppressing errors, and associated memory device and controller thereof
US11854634B2 (en) Selectable trim settings on a memory device
TW201142855A (en) Flash memory devices having multi-bit memory cells therein with improved read reliability
TW201248628A (en) Resistive memory sensing methods and devices
US9293198B2 (en) Programming of gated phase-change memory cells
KR20080064299A (ko) 상이한 에러 제어 스킴을 갖는 하이브리드 플래시 메모리장치 및 그것을 포함한 메모리 시스템
US10379757B2 (en) Methods of sketch-based memory management and memory devices utilizing the same
US9524794B1 (en) Constrained data shaping
US20200264952A1 (en) Device and method for controlling the data refresh cycles in reprogrammable non-volatile memories
CN115248743A (zh) 存储器的读取阈值调整技术
US20200192591A1 (en) Non-volatile storage system with data shaping memory partitions
TW202236291A (zh) 用於改良記憶體之錯誤更正碼操作之方法及系統
KR101590725B1 (ko) 멀티 레벨 상 변화 메모리의 데이터 코딩 장치 및 방법

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 4