본 발명은 불휘발성 메모리 장치에 관한 것으로서, 특히 멀티-레벨 불휘발성 메모리 장치의 프로그램 방법에 관한 것이다.
전기적으로 소거 및 프로그램이 가능한 불휘발성 메모리 장치는 전원이 공급되지 않는 상태에서도 데이터를 보존할 수 있는 특징을 가지고 있으며, 대표적인 것으로 플래시 메모리가 있다.
플래시 메모리는 일반적으로 낸드(NAND)형 플래시 메모리와 NOR형 플래시 메모리로 구분된다. NOR형 플래시 메모리는 메모리 셀들이 비트라인과 워드라인에 각각 독립적으로 연결된다. 따라서 NOR형 플래시 메모리는 랜덤 액세스 시간 특성이 우수한 반면, 집적하기에는 어려움이 있다.
NAND형 플래시 메모리는 복수의 메모리 셀들이 직렬로 연결되는 셀 스트링 구조를 가진다. 따라서 NAND형 플래시 메모리는 집적하기 용이할 뿐만 아니라 낮은 가격으로 공급될 수 있다. 이러한 이유로 고집적 플래시가 필요한 경우 NAND형 플래시 메모리가 사용되며, 또한 각종 휴대용 제품들의 데이터 메모리로서 NAND형 플래시 메모리가 사용되고 있다.
플래시 메모리를 구성하는 메모리 셀들은 제어 게이트, 플로팅 게이트, 소스, 및 드레인을 구비하는 셀 트랜지스터로 구성된다. 플래시 메모리의 셀 트랜지 스터는 F-N 터널링 메커니즘에 의해서 프로그램 되거나 소거된다.
셀 트랜지스터의 소거 동작은 셀 트랜지스터의 제어 게이트에 접지 전압을 인가하고, 반도체 기판(또는 벌크)에 전원 전압보다 높은 고전압을 인가함으로써 수행된다. 이러한 소거 바이어스 조건에 따르면, 플로팅 게이트와 벌크 사이의 큰 전압 차에 의해 이들 사이에 강한 전계가 형성되며, 그 결과 부유 게이트에 존재하는 전자들은 F-N 터널링 효과에 의해서 벌크로 방출된다. 이 때, 소거된 셀 트랜지스터의 임계 전압은 음의 방향으로 이동된다.
셀 트랜지스터의 프로그램 동작은 제어 게이트에 전원 전압보다 높은 고전압을 인가하고, 드레인 및 벌크에 접지 전압을 인가함으로써 이루어진다. 이러한 바이어스 조건 하에서, 전자들이 F-N 터널링 효과에 의해서 셀 트랜지스터의 플로팅 게이트에 주입된다. 이 때 프로그램 된 셀 트랜지스터의 임계 전압은 양의 방향으로 이동된다.
도 1은 불휘발성 메모리 장치의 블록도로서, 특히 NAND형 플래시 메모리 장치의 블록도이다. NAND형 플래시 메모리 장치(100)는 메모리 셀 어레이(110), 행 선택 회로(130), 및 페이지 버퍼 회로(150)를 구비한다.
메모리 셀 어레이(110)는 복수의 메모리 블록들(미도시)로 나뉘어져 있으며, 각각의 메모리 블록은 열 방향으로 신장하는 복수의 스트링들(110_1 내지 110_M)을 구비한다. 도 1에서는 설명의 편의를 위해 하나의 메모리 블록만을 도시하였다.
각각의 스트링은 스트링 선택 트랜지스터(string selecting transistor: SST), 접지 선택 트랜지스터(ground selecting transistor; GST), 및 스트링 선택 트랜지스터(SST)와 접지 선택 트랜지스터(GST) 사이에 직렬로 연결되는 복수의 메모리 셀 트랜지스터들(memory cell transistors: MCT<0> 내지 MCT<N-1>)을 구비한다.
스트링 선택 트랜지스터(SST)의 게이트는 스트링 선택 라인(string selection line: SSL)에 연결되고, 드레인은 대응하는 비트 라인(BLe 또는 BLo)에 연결된다. 접지 선택 트랜지스터(GST)의 게이트는 접지 선택 라인(ground selection line: GSL)에 연결되고, 소스는 공통 소오스 라인(common source line; CSL)에 연결된다. 복수의 메모리 셀 트랜지스터들(MCT<0> 내지 MCT<N-1>)의 제어 게이트들은 대응하는 워드 라인들(WL<0> 내지 WL<N-1>)에 각각 연결된다.
여기서 라인들(SSL, WL<0> 내지 WL<N>, GSL)의 전압 레벨은 소정의 타이밍 제어신호(미도시)에 응답하여 행 선택 회로(130)에 의해 제어되며, 이웃하는 각각의 비트라인들 쌍들(BLe, BL0)의 전압 레벨은 페이지 버퍼 회로(150)에 구비되는 각각의 페이지 버퍼(미도시)에 의해 제어된다.
여기서, 라인들(SSL, WL0 내지 WLn, GSL)이 제어되는 동작과 비트라인 쌍들(BLe, BLo)이 제어되는 동작은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구나 알 수 있으므로, 이에 대한 구체적인 설명은 생략한다.
최근에는 플래시 메모리의 집적도를 더욱 향상시키기 위해서 한 개의 메모리 셀에 복수의 데이터를 저장하는 멀티-레벨 플래시 메모리에 대한 연구가 활발히 진행되고 있다. 멀티-레벨 플래시 메모리의 메모리 셀에는 2 비트 이상의 멀티-비트가 저장될 수 있다. 이렇게 멀티-비트를 저장하는 메모리 셀을 멀티-레벨 셀(multi-level cell)이라 하고, 이에 대해 단일-비트를 저장하는 메모리 셀을 단일-레벨 셀(single-level cell)이라 한다. 멀티-레벨 셀은 멀티-비트를 저장하므로, 2개 이상의 임계 전압 분포를 가지며 이에 대응되는 2개 이상의 데이터 저장 상태를 갖는다.
도 2는 불휘발성 메모리 장치에서 데이터 저장 상태와 임계 전압 분포의 관계를 나타내는 그래프로, 특히 2 비트를 저장하는 멀티-레벨 셀에 대한 그래프이다. 2 비트를 저장하는 멀티-레벨 셀은 4 개의 데이터 저장 상태, 즉 11, 01, 10, 00 을 가질 수 있다. 도 2에서 11은 소거된 상태이고, 01, 10, 및 00은 프로그램 된 상태이다.
도 2에 도시된 바와 같이, 4 개의 데이터 저장 상태의 분포는 멀티-레벨 셀의 임계 전압 분포들에 대응된다. 예를 들어, 멀티-레벨 셀의 임계 전압 분포들이 각각 VTH1~VTH2, VTH3~VTH4, VTH5~VTH6, VTH7~VTH8 이라 가정하면, 데이터 저장상태 11, 01, 10, 00 은 각각 VTH1~VTH2, VTH3~VTH4, VTH5~VTH6, VTH7~VTH8 에 대응된다. 즉, 멀티-레벨 셀의 임계 전압이 4 가지 임계 전압 분포들 중 어느 하나에 대응되면, 11, 01, 10, 00 중 해당하는 2 비트의 데이터가 멀티-레벨 셀에 저장된다.
멀티-레벨 불휘발성 메모리 장치를 프로그램하고 독출하는 방법으로는 여러 가지 방법이 사용될 수 있으며, 이러한 방법들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 널리 알려져 있다. 이러한 방법들 중 일예가 도 3과 도 4에 도시되어 있다.
도 3은 멀티-레벨 불휘발성 메모리 장치의 프로그램 동작을 설명하기 위한 도면으로, 도 3의 (a)는 하위비트(least significant bit: LSB), 도 3의 (c)는 상위비트(most significant bit: MSB)를 프로그램 하는 동작을 설명하기 위한 도면이고, 도 3의 (b)는 하위비트를 프로그램한 후 임계 전압 분포의 변화를 설명하기 위한 도면이다.
이하에서는 ISPP(incremental step pulse programming) 방식으로 프로그램 되는 것으로 가정하여 설명한다. ISPP 방식에서는, 프로그램 전압이 점진적으로 높아지면서 메모리 셀에 대한 프로그램이 반복적으로 수행되므로, 메모리 셀의 임계 전압 분포를 정확하게 제어할 수 있다.
도 3에 도시된 프로그램 방법은 하위비트를 프로그램 하는 제 1 프로세스와 상위비트를 프로그램 하는 제 2 프로세스로 구성된다. 제 1 프로세스(도 3의 (a) 참조)에서는, 프로그램 속도를 빠르게 하기 위해서 큰 증가 폭을 갖는 프로그램 전압을 사용한다. 이에 따라 메모리 셀의 상태는 소거상태(“1”)에서 프로그램 상태(“0”)로 이동한다(P1). 도 3의 (a)에 도시된 바와 같이, 큰 증가 폭을 갖는 프로그램 전압을 사용하므로 프로그램 된 셀은 넓은 임계 전압 분포를 갖는다.
선택된 셀이 프로그램된 후에는 프로그램된 셀의 주위의 셀들이 프로그램 된다. 이 과정에서 프로그램된 셀은 방해현상(disturbance)를 받게 되며, 이에 따라 도 3의 (b)에 도시된 바와 같이, 프로그램된 셀의 임계 전압 분포는 소정의 폭(D) 만큼 더 넓어지게 된다. 그러나 방해현상에 의해 임계 전압 분포가 넓어지는 현상은 후술되는 제 2 프로세스(즉 상위비트를 프로그램 하는 프로세스)에 의해 상쇄된 다.
상위비트를 프로그램 하는 제 2 프로세스는 하위비트의 상태와 상위비트로 로딩(loading)되는 비트에 따라 달라진다(도 3의 (c) 참조). 먼저, 하위비트가 “1”(즉 소거상태)인 셀들 중 상위비트로 “1”이 로딩 되는 셀에 대해서는 프로그램이 수행되지 않는다. 반면, 하위비트가 “1”(즉 소거상태)인 셀들 중 상위비트로 “0”이 로딩 되는 셀은 “01” 상태로 프로그램 된다(P2).
또한 하위비트가 “0”(즉 프로그램 된 상태)인 셀들 중 상위비트로 “1”이 로딩 되는 셀은 “10”으로 프로그램 되고(P3), 하위비트가 “0”(즉 프로그램 된 상태)인 셀들 중 상위비트로 “0”이 로딩 되는 셀은 “00”으로 프로그램 된다(P4). 한편 도 3의 (c)에 도시된 바와 같이, 하위비트가 프로그램된 셀에 대한 상위비트 프로그램에 의해 임계 전압 분포가 좁아지게 되므로, 하위비트 프로그램 후 주위 셀들의 프로그램 과정에서 방해현상에 의해 임계 전압 분포가 넓어지는 효과는 상쇄되며, 또한 임계 전압 전압 분포를 더욱 정밀하게 제어할 수 있다.
하위비트만 프로그램 된 경우 프로그램 된 상태(“0”)의 임계 전압 분포(도 4의 (a) 참조)는, 상위비트가 프로그램 된 상태 중 하위비트가 “1”인 상태, 즉 “'01”상태의 임계 전압 분포(도 4의 (b) 참조)와 중첩된다. 즉 하위비트를 독출하는 경우, 상위비트가 프로그램 되었는지 여부에 따라 하위비트가 “0” 또는 “1”로 다르게 독출될 수 있다.
따라서 메모리 셀에 저장된 데이터를 정확하게 독출하기 위해서는, 상위비트가 프로그램 되었는지 여부를 나타낼 필요가 있다. 도 3 및 도 4의 예에서는 상위 비트가 프로그램 되어있는지 여부를 나타내는 플래그 셀(이하 ‘상위비트 플래그 셀(MSB flag cell)’이라 함)을 두고 상위비트 플래그 셀의 상태에 따라 독출 동작이 수행된다.
도 4는 멀티-레벨 불휘발성 메모리 장치의 독출 동작을 설명하기 위한 도면으로 도 4의 (a)는 상위비트가 프로그램 되지 않은 상태이고, 도 4의 (b)는 상위비트가 프로그램 된 상태이다. 도 4의 (a)와 (b)에는 메모리 셀의 임계 전압 분포와 각각의 임계 전압에 따라 하위비트와 상위비트를 독출할 때 출력되는 데이터, 그리고 독출 동작 시 워드라인 전압이 도시되어 있다.
상위비트가 프로그램 되지 않은 경우에는 제 1 독출전압(VR1)을 기준으로 하위비트가 다른 값을 갖는 반면, 상위비트가 프로그램 된 경우에는제 2 독출전압(VR2)을 기준으로 하위비트가 다른 값을 갖는다. 따라서 상위비트가 프로그램 되었는지 여부에 따라 하위비트를 독출하는 알고리즘이 다르게 적용될 것이다.
먼저 상위비트가 프로그램 된 경우(도 4의 (b) 참조), 제 2 독출전압(VR2)를 기준으로 하위비트가 독출된다. 즉 메모리 셀이 제 2 독출전압(VR2)을 기준으로 온(on) 셀이면 "1"이 출력되고, 오프(off) 셀이면 "0"이 출력된다. 한편 상위비트의 독출을 위해서는, 제 1 내지 제 3 독출전압(VR1 내지 VR3)을 기준으로 순차적으로 메모리 셀이 온 셀인지 오프 셀인지 여부를 판단하고, 판단 결과에 따라 상위비트가 독출된다.
한편 도 4의 (a)에 도시된 바와 같이, 상위비트가 프로그램 되어 있지 않은 경우에도 상위비트가 프로그램 되어 있는 경우와 같이 제 2 독출전압(VR2)을 기준 으로 하위비트가 독출된다면 하위비트는 정확하게 독출될 수 없다. 따라서 이 경우에는 제 2 독출전압(VR2)이 아닌 제 1 독출전압(VR1)을 기준으로 독출동작이 수행되어야 한다.
상술한 바와 같이, 상위비트가 프로그램 되어 있는지 여부에 따라 하위비트를 독출할 때 제 1 독출전압(VR1)을 기준으로 독출할지 또는 제 2 독출전압(VR2)을 기준으로 독출할지 결정되어야 한다.
도 4에서는 상위비트 플래그 셀이 프로그램 되었는지 여부에 따라 제 2 독출전압(VR2)을 기준으로 독출된 하위비트를 그대로 출력할 것인지 또는 제 1 기준전압을 기준으로 독출 동작을 재수행할 것인지 결정된다. 즉 먼저 제 2 독출전압(VR2)을 기준으로 상위비트 플래그 셀이 프로그램 되었는지 판단하고, 판단 결과에 따라 하위비트 독출 동작이 선택적으로 수행된다.
한편 도 4의 (a)에 도시된 바와 같이, 상위비트가 프로그램 되어 있지 않은 경우 상위비트는 소거상태이므로, 상위비트가 독출 되는 경우 “1”이 출력된다. 그런데 상위비트가 프로그램 되어 있는 경우의 독출 동작에서는 셀의 임계 전압이 제 1 독출전압(VR1)과 제 2 독출전압(R2) 사이에 있는 경우 “0”이 출력된다.
따라서 상위비트가 프로그램 되어 있지 않은 경우 상위비트 독출 동작에서는, 먼저 제 1 독출전압(VR1)을 기준으로 상위비트 플래그 셀이 프로그램 되어 있는지를 판단하고, 상위비트 플래그 셀이 프로그램 되어 있지 않은 것으로 판단되면 상위비트를 출력하기 위한 데이터 래치를 “1”로 리셋한 후 독출 동작을 종료함으로써 “1”이 출력되도록 한다.
도 5는 멀티-레벨 불휘발성 메모리 장치의 프로그램 동작을 설명하기 위한 도면으로, 도 5의 (a)는 데이터가 저장되는 메인 셀의 임계 전압 분포이고, 도 5의 (b)는 상위비트 플래그 셀의 임계 전압 분포이다. 또한 도 5에서 (1)는 하위비트가 프로그램 된 상태, (2)는 “00” 상태로 프로그램 하는 동작, 그리고 (3)은 “01” 및 “10” 상태로 프로그램 하는 동작을 나타낸다.
도 5에 도시된 프로그램 과정에 따라 상위비트를 프로그램 하는 경우에는, 먼저 “00” 상태로 프로그램 되고(P4) “00” 상태로의 프로그램과 동시에 상위비트 플래그 셀에 대한 프로그램이 동시에 수행된다(PF)(도 5의 (2) 참조). 다음으로 "10" 상태 및 “01” 상태로의 프로그램이 수행된다(P2 및 P3)(도 5의 (3) 참조).
도 5의 프로그램 과정에서, 프로그램된 상위비트 플래그 셀의 임계 전압 분포는 메인 셀의 “00” 상태의 임계 전압 분포와 동일한 것으로 가정한다. 또한 "10" 상태 및 “01” 상태로의 프로그램은 동시에 수행될 수도 있고 순차적으로 따로 수행될 수도 있다.
하위비트에 대한 프로그램이 완료된 후 상위비트에 대한 프로그램과 상위비트 플래그 셀에 대한 프로그램이 수행되는데, 이 과정에서 리셋 등에 의한 인터럽트 등에 의해 프로그램 동작의 수행 중에 프로그램 동작이 중단되는 경우가 발생할 수 있다. 이 경우 상위비트에 대한 프로그램과 상위비트 플래그 셀에 대한 프로그램이 완전히 수행되지 못함으로 인해서 하위비트가 잘못 독출될 가능성이 있다.
도 6은 멀티-레벨 불휘발성 메모리 장치의 상위비트 프로그램 과정 중 인터럽트에 의해 발생할 수 있는 문제점을 설명하기 위한 도면으로, 도 6의 (a)는 데이 터가 저장되는 메인 셀의 임계 전압 분포이고, 도 6의 (b)는 상위비트 플래그 셀의 임계 전압 분포이다. 또한 도 6에서 (1)는 하위비트가 프로그램 된 상태, (2)는 “00” 상태로 프로그램 하는 동작 중 인터럽트 등에 의해 프로그램 동작이 중단된 경우를 나타낸다.
도 6을 참조하면, 상위비트를 “00” 상태로 프로그램 하는 도중에(P4) 인터럽트 등에 프로그램 동작이 중단되는 경우(도 6의 (a) 참조), 상위비트 플래그 셀에 대한 프로그램 동작(PF) 또한 동시에 중단된다(도 6의 (b) 참조). 도 5와 도 6을 비교하면, 이 경우 메인 셀과 상위비트 플래그 셀의 임계 전압의 분포는 모두 목표로 하는 임계 전압 분포의 레벨(즉 제 3 독출전압(VR3)보다 높은 레벨)보다 낮은 레벨에서 중단된다(도 6의 (a)에서의 “00” 상태와 도 6의 (b)에서 “0” 상태 참조).
이렇게 상위비트에 대한 프로그램이 중단된 경우라 하더라도, 메모리 셀의 하위비트에는 유효한 정보가 저장되어 있으므로, 하위비트에 대한 독출은 유효하게 이루어져야 할 것이다. 이하에서는 도 6을 참조하여 상위비트에 대한 프로그램이 중단된 경우 하위비트를 독출하는 경우 발생될 수 있는 문제점을 설명한다.
멀티-레벨 불휘발성 메모리 장치에서 하위비트를 독출하는 경우, 먼저 제 2 독출전압(VR2)를 기준으로 상위비트 플래그 셀이 프로그램 되었는지 여부를 판단한다. 도 6의 (b)에 도시된 바와 같이, 상위비트에 대한 프로그램이 중단된 경우 상위비트 플래그 셀의 임계 전압 분포는 제 2 독출전압(VR2)를 기준으로 상하로 분포하게 된다.
따라서 상위비트 플레그 셀의 임계 전압이 도 6의 (b)의 (1) 영역에 경우 있는 상위비트 플레그 셀의 데이터는 “1”로 독출되며, 따라서 상위비트 플래그 셀에 대응하는 페이지 전체에 대해서는 상위비트에 대한 프로그램이 이루어지지 않은 것으로 판단된다. 이 경우에는 제 1 독출전압(VR1)을 기준으로 다시 한 번 하위비트에 대한 독출이 수행되므로, 하위비트에 저장된 데이터가 정확하게 독출될 수 있다.
반면, 상위비트 플레그 셀의 임계 전압이 도 6의 (b)의 (2) 영역에 경우 있는 상위비트 플레그 셀의 데이터는 “0”로 독출되며, 따라서 상위비트 플래그 셀에 대응하는 페이지 전체에 대해서는 상위비트에 대한 프로그램이 이루어진 것으로 판단된다. 이 경우에는 처음에 제 2 독출전압(VR2)를 기준으로 독출된 결과가 출력된다.
따라서 도 6의 (a)를 참조하면, “10” 상태(1)와 “00” 상태(2)에 있는 셀 중 제 2 독출전압(VR2)보다 낮은 임계 전압을 가지는 셀은 하위비트로서 “1”을 출력하는 반면, 제 2 독출전압(VR2)보다 높은 임계 전압을 가지는 셀은 하위비트로서 “0”을 출력한다.
결국 상위비트에 대한 프로그램이 이루어지는 도중에 인터럽트 등에 의해 프로그램이 중단되는 경우, 하위비트에 저장된 데이터가 손상될 수 있는 문제점이 있다.
본 발명이 이루고자하는 기술적 과제는 상위비트에 대한 프로그램이 이루어 지는 도중에 인터럽트 등에 의해 프로그램이 중단되는 경우에도 하위비트에 저장된 데이터가 손상되지 않도록 불휘발성 메모리 장치를 프로그램 하는 방법을 제공하는데 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 실시예에 따른 프로그램 방법은 멀티-레벨 메모리 셀들의 어레이를 구비하는 불휘발성 메모리 장치를 프로그램 하는 방법으로서, 제 1 상태의 제 1 데이터 세트가 기입되는 메모리 셀들을 프로그램 하는 단계, 및 상기 프로그램 된 메모리 셀들의 임계 전압 분포가 소정의 독출전압보다 커지도록 상기 프로그램 된 메모리 셀들의 임계 전압 분포를 밀집시키는 단계를 구비한다.
이 때 상기 밀집된 임계 전압 분포는 상기 제 1 상태의 제 1 데이터 세트가 저장된 메모리 셀들 중 제 2 상태의 제 2 데이터 세트가 저장되는 메모리 셀들의 임계 전압 분포와 동일한 것이 바람직하다.
또한 상기 프로그램 방법은 상기 메모리 셀들에 상기 제 2 데이터 세트가 기입된 된 것을 나타내도록 데이터 플래그 셀을 프로그램 하는 단계를 더 구비할 수도 있다.
또한 상기 프로그램 방법은 상기 메모리 셀들 중 제 1 상태의 제 2 데이터 세트가 기입되는 메모리 셀들을 프로그램 하는 단계를 더 포함할 수도 있다.
한편 상기 제 1 상태의 제 2 데이터 세트가 기입되는 메모리 셀들을 프로그램 하는 단계는 제 2 상태의 제 1 데이터가 기입된 메모리 셀들 중 제 1 상태의 제 2 데이터가 기입되는 메모리 셀들을 프로그램 하는 단계, 및 상기 제 1 상태의 제 1 데이터가 기입된 메모리 셀들 중 제 1 상태의 제 2 데이터가 기입되는 메모리 셀들을 프로그램 하는 단계를 구비한다.
이 때 상기 제 2 상태의 제 1 데이터가 기입된 메모리 셀들 중 제 1 상태의 제 2 데이터가 기입되는 메모리 셀들을 프로그램 하는 단계와 상기 데이터 플래그 셀을 프로그램 하는 단계는 동시에 수행되거나, 또는 상기 제 1 상태의 제 1 데이터가 기입된 메모리 셀들 중 제 1 상태의 제 2 데이터가 기입되는 메모리 셀들을 프로그램 하는 단계와 상기 데이터 플래그 셀을 프로그램 하는 단계는 동시에 수행될 수도 있다.
한편 제 1 상태의 제 1 세트만 저장된 메모리 셀의 임계 전압 분포와 제 2 상태의 제 1 세트와 제 1 상태의 제 2 세트가 저장된 셀의 임계 전압 분포는 서로 중첩된다.
한편 상기 소정의 독출전압은 상기 제 2 세트가 저장된 후 상기 제 1 세트의 데이터를 독출하기 위한 전압이다.
한편 상기 제 1 세트는 상기 데이터의 하위비트들이고, 상기 제 2 세트는 상기 데이터의 상위비트들인 것이 바람직하며, 또한 상기 제 1 상태는 “0” 이고, 상기 제 2 상태는 “1” 인 것이 바람직하다.
상기 기술적 과제를 달성하기 위한 본 발명의 다른 실시예에 따른 데이터 저장 방법은, 멀티-레벨 메모리 셀들의 어레이를 구비하는 불휘발성 메모리 장치에 데이터를 저장하는 방법으로서, 상기 멀티-레벨 메모리 셀들에 상기 데이터의 제 1 세트를 저장하는 단계, 상기 제 1 세트 중 제 1 상태의 데이터가 저장된 메모리 셀들의 임계 전압 분포가 소정의 독출전압보다 커지도록 상기 제 1 상태의 데이터가 저장된 메모리 셀들의 임계 전압 분포를 밀집시키는 단계, 및 상기 메모리 셀들에 상기 데이터의 제 2 세트를 저장하는 단계를 구비한다.
한편 상기 밀집된 임계 전압 분포는 상기 제 1 상태의 제 1 세트가 저장된 메모리 셀들 중 제 2 상태의 제 2 세트가 저장되는 메모리 셀들의 임계 전압 분포와 동일한 것이 바람직하다.
한편 상기 제 2 세트를 저장하는 단계는 상기 제 1 상태의 제 1 세트가 저장된 메모리 셀들 중 제 1 상태의 제 2 세트가 저장될 셀에 제 1 상태의 제 2 세트를 저장하는 단계, 및 제 2 상태의 제 1 세트가 저장된 메모리 셀들 중 제 1 상태의 제 2 세트가 저장될 셀에 제 1 상태의 제 2 세트를 저장하는 단계를 구비한다.
한편 상기 저장 방법은 상기 메모리 셀들에 상기 제 2 세트가 저장된 것을 나타내도록 데이터 플래그 셀을 설정하는 단계를 더 구비할 수 있다.
또한 상기 데이터 플래그 셀을 설정하는 단계는, 상기 제 1 상태의 제 1 세트가 저장된 메모리 셀들 중 제 1 상태의 제 2 세트가 저장될 셀에 제 1 상태의 제 2 세트를 저장하는 동작과 동시에 수행되거나 또는 상기 데이터 플래그 셀을 설정하는 단계는, 제 2 상태의 제 1 세트가 저장된 메모리 셀들 중 제 1 상태의 제 2 세트가 저장될 셀에 제 1 상태의 제 2 세트를 저장하는 동작과 동시에 수행될 수 있다.
한편 제 1 상태의 제 1 세트만 저장된 메모리 셀의 임계 전압 분포와 제 2 상태의 제 1 세트와 제 1 상태의 제 2 세트가 저장된 셀의 임계 전압 분포는 서로 중첩된다.
한편 상기 소정의 독출전압은 상기 제 2 세트가 저장된 후 상기 제 1 세트의 데이터를 독출하기 위한 전압인 것이 바람직하다.
한편 상기 제 1 세트는 상기 데이터의 하위비트들이고, 상기 제 2 세트는 상기 데이터의 상위비트들인 것이 바람직하며, 상기 제 1 상태는 “0” 이고, 상기 제 2 상태는 “1” 인 것이 바람직하다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
이하에서는 본 발명과 관련하여 특별히 설명하는 것을 제외하고는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에서 알려진 구성들이 적용될 수 있다. 예를 들어, 멀티-레벨 메모리 셀, 상위비트 플래그 셀을 프로그램 하기 위해 ISPP 방법 등을 이용하여 프로그램 전압을 인가하고 셀의 임계 전압을 검증하여 프로그램을 수행하는 구성 등은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에서 알려진 구성들을 이용하여 구현될 수 있을 것이다.
이하에서는 도 7 및 도 8을 참조하여 멀티-레벨 메모리 셀들의 어레이를 구 비하는 불휘발성 메모리 장치를 프로그램 하는 본 발명의 실시예에 대해 설명한다. 본 발명의 실시예에서 메모리 셀들의 어레이에 저장되는 데이터는 제 1 세트와 제 2 세트로 나누어 각각 저장된다. 이하에서 제 1 세트는 하위비트이고 제 2 세트는 상위비트인 것으로 설명하나, 본 발명이 이러한 데이터 간의 대응관계에 한정되는 것은 아니다.
도 7은 본 발명의 실시예에 따른 프로그램 방법을 설명하기 위한 도면으로, 도 7의 (a)는 메모리 셀들의 임계 전압 분포이고 도 7의 (b)는 데이터 플래그 셀의 임계 전압 분포이다.
본 발명의 실시예에 따른 프로그램 방법에서는, 먼저 메모리 셀에 하위비트가 저장된다. 하위비트는 데이터의 제 1 상태(“0”) 또는 제 2 상태(“1”)에 따라 서로 다른 임계 전압 분포를 가지도록 저장되는데, 제 1 상태의 데이터가 저장되는 메모리 셀에는 소정의 프로그램 전압이 인가됨으로써 메모리 셀이 프로그램 된다. 본 발명의 실시예에서는 ISPP 방법에 따라 프로그램 전압이 인가되는 것이 바람직하다.
한편 이하의 설명에서 제 1 상태는 “0”이고, 제 2 상태는 “1”인 것으로 설명하나, 본 발명이 이러한 데이터 상태 간의 대응관계에 한정되는 것은 아니다. 또한 본 발명의 실시예에서 하위비트를 프로그램 할 때 큰 증가 폭을 갖는 프로그램 전압을 사용하므로, 도 7의 (a)의 <1>에 도시된 바오 같이 프로그램 된 메모리 셀, 즉 "0" 이 저장된 메모리 셀은 넓은 임계 전압 분포를 갖는다.
다음으로 본 발명의 실시예에서는, 메모리 셀에 하위비트가 저장된 후 셀에 상위비트를 저장하기 전에, 하위비트가 “0”으로 프로그램 된 메모리 셀의 임계 전압 분포가 소정의 독출전압(VR2)보다 커지도록 하위비트가 “0”으로 프로그램 된 메모리 셀의 임계 전압 분포를 밀집시키다(P3, 도 7의 (a)의 <2> 참조). 이 때 소정의 독출전압(VR2)은, 메모리 셀들에 하위비트와 상위비트가 모두 저장된 것으로 가정할 때, 하위비트를 독출하기 위한 전압이다.
한편 하위비트가 “0”으로 프로그램 된 메모리 셀의 임계 전압 분포를 밀집시키는 동작은 소정의 프로그램 전압을 인가하여 메모리 셀을 프로그램 하는 동작을 통해 수행될 수 있다.
본 발명의 실시예에서, 밀집된 임계 전압 분포(도 7의 (a)의 <2>에서의 “10”/“00” 상태 참조)는 하위비트 “0” 및 상위비트 “1”로 프로그램 된 메모리 셀들, 즉 “10” 상태로 프로그램 된 메모리 셀들의 임계 전압 분포(도 7의 (a)의 <3>에서 “10” 상태 참조)와 동일한 것이 바람직하다. 따라서 “0”으로 프로그램 된 메모리 셀의 임계 전압 분포를 밀집시키는 동작은 하위비트가 “0”으로 프로그램 된 셀들을 “10” 상태로 프로그램 하는 동작을 이용하여 수행될 수 있을 것이다.
한편 도 7의 (b)를 참조하면, 메모리 셀에 하위비트가 저장되고 “0” 상태로 프로그램 된 셀들의 임계 전압 분포를 밀집시키는 동작이 수행되는 동안, 상위비트가 프로그램 되었는지를 나타내는 데이터 플래그 셀은 소거 상태, 즉 “1”이 저장된 상태를 유지한다.
하위비트가 “0”으로 프로그램 된 메모리 셀의 임계 전압 분포를 밀집시킨 후, 메모리 셀에는 상위비트가 저장되고, 상위비트가 프로그램 되었음을 나타내도록 데이터 플래그 셀을 설정한다.
먼저 도 7의 (a)를 참조하여 메모리 셀에 상위비트를 저장하는 과정을 좀 더 상세히 설명한다. 하위비트 “1”이 저장된 메모리 셀의 임계 전압 분포와 “11”이 저장된 메모리 셀의 임계 전압 분포가 동일하고, 하위비트 “0”이 저장된 셀에 대해 임계 전압 분포를 밀집시킴으로써 밀집된 임계 전압 분포는 “10”이 저장된 메모리 셀의 임계 전압 분포와 동일하다. 따라서 도 7의 (a)에서 상위비트의 저장은 상위비트 “0”이 저장되는 메모리 셀을 프로그램 하는 것에 의해 수행될 수 있을 것이다.
도 7의 (a)를 참조하면, 먼저 하위비트 “0”이 저장된 셀들 중에서 상위비트 “0”이 저장되는 셀들에 상위비트“0”을 저장한다. 도 7의 (a)의 <2>에 도시된 바와 같이, 하위비트 “0”이 저장된 셀들의 임계 전압 분포는 “10” 상태로 프로그램 된 셀의 임계 전압 분포(도 7의 (a)의 <3> 참조)와 동일한 임계 전압 분포를 갖도록 밀집되어 있다. 따라서 하위비트 “0”이 저장된 셀들 중에서 상위비트 “0”이 저장되는 셀들에 상위비트“0”을 저장하는 과정은 “10”/“00” 상태의 임계 전압 분포를 갖는 메모리 셀들을 “00” 상태로 프로그램 함(P4)으로써 수행되다.
하위비트 “0”이 저장된 셀들 중에서 상위비트 “0”이 저장되는 셀들에 상위비트 “0”을 저장한 후(즉, 메모리 셀들을 “00” 상태로 프로그램 한 후), 하위비트“1”이 저장된 셀들 중에서 상위비트 “0”이 저장되는 셀들에 상위비트 “ 0”을 저장한다. 하위비트“1”이 저장된 셀들 중에서 상위비트 “0”이 저장되는 셀들에 상위비트 “0”을 저장하는 과정은 소거 상태의 메모리 셀들을 “01” 상태로 프로그램 함(P2)으로써 수행되다.
한편 이하에서는 도 7의 (b)를 참조하여 데이터 플래그 셀을 데이터 플래그 셀을 설정하는 동작에 대해 상세히 설명한다. 도 7의 <2>와 <3>에 도시된 바와 같이, 데이터 플래그 셀은 하위비트가 프로그램 된 메모리 셀들의 임계 전압 분포를 밀집(P3)시킨 이후에 설정된다.
데이터 플래그 셀을 설정하는 동작은 소거 상태의 데이터 플래그 셀을 프로그램 함으로써 수행된다. 도 7의 실시예에서 데이터 플래그 셀에 대한 프로그램은 메모리 셀을 “00” 상태로 프로그램 하는 것과 동시에 수행된다. 이 경우 프로그램 된 데이터 플래그 셀의 임계 전압 분포는 “00” 상태의 메모리 셀의 임계 전압 분포와 동일할 것이다.
한편 도 7과는 달리, 데이터 플래그 셀에 대한 프로그램이 메모리 셀을 “01” 상태로 프로그램 하는 것과 동시에 수행될 수도 있을 것이다. 이 경우에도 데이터 플래그 셀의 임계 전압 분포는 적어도 소정의 독출전압(VR2)보다는 커야 할 것이다.
한편 도 7의 (a)의 <1>과 <4>를 참조하면, 하위비트만 프로그램 된 메모리 셀의 임계 전압 분포는 “01” 상태로 프로그램 된 메모리 셀의 임계 전압 분포와 중첩되는 것을 알 수 있다. 즉 하위비트만 프로그램 된 경우와 하위비트와 상위비트 모두 프로그램 된 경우에 있어서 하위비트를 독출하는 방법이 서로 다르며, 이 에 대해서는 상술하였다.
도 8은 본 발명의 실시예에 따라 상위비트를 프로그램 하는 도중 인터럽트가 발생하여 한 경우를 설명하기 위한 도면으로, 도 8의 (a)는 메모리 셀의 임계 전압 분포이고, 도 8의 (b)는 데이터 플래그 셀의 임계 전압 분포이다.
도 8에는 메모리 셀을 “00” 상태로 프로그램 하는 도중에 인터럽트가 발생된 경우가 도시되어 있다(도 8의 <3>을 참조). 도 8에서는 데이터 플래그 셀이 메모리 셀이 “00”으로 프로그램 되는 것(P4)과 동시에 프로그램(PF) 되므로, 인터럽트에 의해 메모리 셀과 데이터 셀에 대한 프로그램이 함께 중단된다. 따라서 도 8의 <3>에 도시된 바와 같이, 프로그램이 중단된 후 메모리 셀과 데이터 셀의 임계 전압 분포는 모두 목표로 하는 임계 전압 분포보다 낮은 레벨을 갖는다.
이 경우 데이터 플래그 셀의 임계 전압 분포는 독출전압(VR2)을 포함하도록 분포된다(도 8의 (b)의 <3> 참조). 멀티-레벨 불휘발성 메모리 장치의 하위비트를 독출할 때, 독출 방법은 상위비트가 프로그램 되었는지 여부에 따라 달라진다.
도 8의 (b)의 <3>을 참조하면, 독출전압(VR2)를 기준으로 데이터 플래그 셀의 임계 전압이 (1) 영역에 있는 것으로 결정되면, 데이터 플래그 셀에 “1”이 저장된 것으로 인식되어 상위비트에 대한 프로그램이 이루어지지 않은 것으로 인식된다. 이 경우에는 독출전압(VR1)을 기준으로 다시 한번 메모리 셀의 하위비트를 독출하게 된다.
반면 독출전압(VR2)를 기준으로 데이터 플래그 셀의 임계 전압이 (2) 영역에 있는 것으로 결정되면, 데이터 플래그 셀에 “0”이 저장된 것으로 인식되어 상위 비트에 대한 프로그램이 이루어진 것으로 인식된다. 이 경우에는 독출전압(VR2)을 기준으로 메모리 셀의 하위비트를 독출하게 된다.
즉 “00” 상태로 메모리 셀을 프로그램 하는 동시에 데이터 플래그 셀을 프로그램 하는 도중 인터럽트에 의해 프로그램이 중단되면, 데이터 플래그 셀에 저장된 데이터는 독출전압(VR2)를 기준으로 “1” 또는 “0”의 값으로 독출될 수 있다. 따라서 데이터 플래그 셀에 저장된 데이터가 “1” 또는 “0” 어느 것으로 독출되더라도 메모리 셀의 하위비트는 유효한 값으로 독출되어야 할 것이다.
본 발명의 실시예에서는 하위비트에 대한 프로그램이 수행된 후 상위비트에 대한 프로그램을 수행하기 전에, 하위비트가 프로그램 된 메모리 셀의 임계 전압 분포가 독출전압(VR2)보다 높은 레벨을 갖도록 하위비트가 프로그램 된 메모리 셀의 임계 전압 분포를 밀집시킨다(도 8의 (a)의 <2> 참조). 따라서 본 발명의 실시예에서는 독출전압(VR1)과 독출전압(VR2) 중 어느 독출전압을 기준으로 하위비트를 독출하더라도 하위비트가 정확하게 독출될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
상술한 바와 같이 본 발명에 따른 불휘발성 메모리 장치의 프로그램 방법은 상위비트에 대한 프로그램이 이루어지는 도중에 인터럽트 등에 의해 프로그램이 중단되는 경우에도 하위비트에 저장된 데이터를 안정적으로 독출할 수 있는 장점이 있다.