상술한 제반 목적들을 달성하기 위한 본 발명의 일 특징에 따르면, 적어도 제 1 내지 제 4 상태들 중 어느 하나를 나타내고, 상위 및 하위 비트를 포함하는 멀티-비트 데이터를 저장하기 위한 복수의 메모리 셀들을 구비한 플래시 메모리 장치의 프로그램 방법은, 상기 하위 비트에 따라 상기 복수의 메모리 셀들을 임시 상태로 프로그램하는 단계; 및 상기 상위 비트에 따라 상기 제 1 상태 또는 상기 임시 상태로부터 상기 제 2 내지 제 4 상태로 상기 복수의 메모리 셀들을 프로그램하는 단계를 포함하되, 상기 제 2 내지 제 4 상태로 상기 복수의 메모리 셀들을 프로그램하는 단계는 상기 복수의 메모리 셀들 중 일부 또는 전부가 1회의 프로그램 동 작 구간 동안 적어도 두 개의 상태들로 동시에 프로그램되는 동작이 포함된다.
상술한 목적을 달성하기 위한 본 발명의 다른 특징에 따르면, 적어도 제 1 내지 제 4 상태들 중 어느 하나를 나타내고, 상위 및 하위 비트를 포함하는 멀티-비트 데이터를 저장하기 위한 복수의 메모리 셀들을 구비한 플래시 메모리 장치의 프로그램 방법은, 상기 하위 비트에 따라 임시 상태로 상기 복수의 메모리 셀들을 프로그램하는 단계; 그리고 상기 상위 비트를 프로그램하는 방법을 선택하기 위한 옵션 정보에 응답하여 상이한 프로그램 방법들 중 어느 하나에 따라 상기 복수의 메모리 셀들을 상기 제 1 상태 또는 상기 임시 상태로부터 상기 제 2 내지 제 4 상태들 중 어느 한 상태로 프로그램하는 단계를 포함한다.
상술한 목적을 달성하기 위한 본 발명의 플래시 메모리 장치는, 적어도 제 1 내지 제 4 상태들 중 어느 하나를 나타내고, 상위 및 하위 비트를 포함하는 멀티-비트 데이터를 저장하기 위한 복수의 메모리 셀들을 포함하는 셀 어레이; 상기 복수의 메모리 셀들 중 선택된 메모리 셀들의 워드 라인으로 프로그램 전압과 복수 레벨의 검증 읽기 전압을 제공하는 전압 발생기; 상기 복수의 메모리 셀들 각각의 비트 라인들에 연결되며, 상기 멀티-비트 데이터를 상기 선택된 메모리 셀들로 기입하고 검증 읽기 동작 및 독출 동작을 수행하는 페이지 버퍼; 옵션 정보에 응답하여 상기 복수의 메모리 셀들의 상위 비트를 프로그램하도록 상기 페이지 버퍼 및 상기 전압 발생기를 제어하는 프로그램 제어부; 및 상기 상위 비트의 프로그램 방식으로 제 1 옵션 또는 제 2 옵션 중 어느 하나를 선택하도록 설정되며 상기 옵션 정보를 생성하는 옵션 선택 수단을 포함한다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다.
참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
이하에서는, 낸드 플래시 메모리 장치가 본 발명의 특징 및 기능을 설명하기 위한 한 예로서 사용된다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.
또한, 프로그램 동작의 단위에 있어서, "프로그램 루프(Loop)"는 하나의 펄스로 제공되는 프로그램 전압(Vpgm)과 그에 대응되는 검증 읽기 동작(Verify read)을 위한 검증 읽기 전압(Vvfy)이 워드 라인으로 인가되는 구간을 의미한다. "프로그램 사이클(Cycle)"은 프로그램되는 메모리 셀들이 ISPP 스킴에 따르는 복수의 "프로그램 루프"에 의해서 검증 읽기 전압 이상으로 프로그램 완료되는 구간을 의미한다. 따라서, "프로그램 사이클"은 프로그램 전압(Vpgm)의 레벨이 증가하는 복수의 "프로그램 루프"를 포함한다.
도 3은 본 발명의 제 1 옵션(Option 1)에 따른 MSB 프로그램 방법을 개략적으로 보여주는 표이다. 도 3을 참조하면, 본 발명에 따른 MSB의 프로그램 방법은 임시 상태 '10*'(20)으로부터 최상위 상태 '00'으로 프로그램되는 제 1 프로그램 단계를 포함한다. 또한, 본 발명의 MSB 프로그램 방법은 동일 프로그램 사이클 구간 동안 상태 '11'로부터 상태 '01' 및 임시 상태 '10*'으로부터 상태 '10'으로 프로그램되는 제 2 프로그램 단계를 포함한다. 제 1 옵션에 포함되는 제 1 내지 제 2 프로그램 단계에 포함되는 케이스들은 임의로 구성될 수 있다. 여기서, 제 1 프로그램 동작시에는 제 3 케이스(Case 3)에 따른 MSB의 프로그램을 수행하고, 제 2 프로그램 동작시에 제 1 케이스 및 제 2 케이스(Case 1 + Case 2)를 동시에 진행하는 MSB 프로그램의 실시예에 대해서 설명하기로 한다. 이하에서는 상술한 제 1 옵션에 따른 MSB 프로그램 단계들이 도 2a 및 도 2b를 참조하여 상세히 설명될 것이다.
LSB 페이지의 프로그램이 완료되면, 플래시 메모리 장치는 각 셀들의 현재 상태가 소거 상태 '11'(10)인지 또는 임시 상태 '10*'(20)인지를 검출하기 위한 독출 동작(Read operation)을 실시한다. 검출된 결과는 페이지 버퍼(미도시됨)에 구비되는 제 1 래치에 저장된다. 그리고 MSB 페이지의 데이터가 상술한 검출 결과와 병행하여 페이지 버퍼의 제 2 래치에 로드될 것이다. 이런 동작을 위해서 하나의 메모리 셀에 대응하는 페이지 버퍼 유닛은 2비트의 데이터를 저장할 수 있어야 할 것이다. 예를 들면, 상술한 독출 결과가 소거 상태 '11'을 나타내는 경우 '1', 임시 상태 '10*'(20)을 나타내는 경우 '0'의 데이터가 각 페이지 버퍼의 제 1 래치에 저장된다고 가정하기로 한다. 또한, 각 페이지 버퍼 유닛들의 제 2 래치 들에는 프 로그램될 MSB 페이지 데이터들이 로드될 것이다. 만일, 하나의 메모리 셀에 대응하는 제 1 래치의 데이터를 'A', 제 2 래치의 데이터를 'B'라 가정하는 경우, 이러한 페이지 버퍼의 래치 상태를 [AB]라 표현하기로 한다. 따라서, 제 1 프로그램 동작시에는 제 3 케이스(Case 3)의 실시를 위한 페이지 버퍼 유닛의 래치 상태가 [00]인 셀들이 선택될 것이다. 제 1 프로그램이 종료되면, 제 2 프로그램을 위해 소거 상태 '11'로부터 상태 '01'로 프로그램되는 셀과 임시 상태 '10*'(20)로부터 상태 '10'으로 프로그램되어야 하는 셀들이 선택된다. 따라서, 각 페이지 버퍼 유닛의 래치 상태가 [10] 및 [01]인 셀들이 선택되며, 선택된 셀들에 대해 제 2 프로그램 동작이 진행된다. 제 2 프로그램 동작은 하나의 프로그램 사이클 구간(Program cycle duration) 동안 서로 다른 두 상태로의 프로그램(즉, '11'→'01' 및 '10*'→'10')이 진행된다. 따라서, 하나의 루프 동안, 두 번의 검증 읽기(Verify read) 동작이 필요하다. 즉, 워드 라인으로의 프로그램 전압(Vpgm) 인가 이후에 검증 읽기 전압(Vvfy1) 및 검증 읽기 전압(Vvfy2)에 의한 검증 읽기 동작이 각각 진행된다. 결국, 제 2 프로그램의 프로그램 루프(Loop) 구간은 두 번의 검증 읽기 동작을 포함한다. 따라서, 제 2 프로그램에서의 프로그램 루프(Loop) 구간은 제 1 프로그램의 프로그램 루프(Loop) 구간보다 길다. 그러나 제 2 프로그램의 사이클은 두 케이스를 동시에 진행하기 때문에 각각의 케이스를 별도로 진행하는 경우보다 소요되는 프로그램 루프 수는 감소하게 된다.
여기서, 케이스의 조합 예를 제 1 프로그램 시에는 제 3 케이스를, 제 2 프 로그램 동작시에는 제 1 및 제 2 케이스(Case 1 + Case 2)를 동시에 수행하는 방식으로 제 1 옵션의 실시예를 설명하였으나 본 발명은 이에 국한되지 않는다. 즉, 도 3에 도시된 바와 같이, 제 1 프로그램 동작시에는 제 2 케이스를, 제 2 프로그램 동작시에는 제 1 및 제 3 케이스를 동시에 수행하는 방식으로 MSB를 프로그램할 수 있다.
도 4는 본 발명에 따른 MSB 프로그램 방식의 제 2 옵션을 개략적으로 보여주는 표이다. 도 4를 참조하면, 본 발명에 따른 플래시 메모리 장치의 MSB 프로그램 단계는 각각의 케이스별로 프로그램되는 제 1 내지 제 3 프로그램 단계를 포함한다. 제 1 프로그램 단계에서는, 임시 상태 '10*'(20)으로부터 최상위 상태 '00'로 프로그램되는 제 3 케이스(Case 3)가 적용된다. 제 2 프로그램 단계에서는 임시 상태 '10*'(20)으로부터 상태 '10'으로 프로그램되는 제 2 케이스(Case 2)가 적용된다. 제 3 프로그램 단계에서는 소거 상태 '11'로부터 상태 '01'로 프로그램되는 제 3 케이스(Case 3)가 적용된다. 본 발명의 제 2 옵션(Option 2)에서는, 상술한 각각 하나의 케이스를 포함하는 프로그램 단계들이 순차적으로 진행된다. 따라서, 하나의 MSB 페이지가 프로그램되기 위해서는 적어도 3번의 프로그램 사이클이 필요하다. 각 프로그램 사이클에서 사용되는 프로그램 루프는 한 번의 프로그램 전압 인가와 한 번의 검증 읽기 동작을 포함할 것이다. 이러한 프로그램 단계별로 적용되는 케이스의 조합은 상술한 설명에 따른 조합뿐 아니라 다양하게 변형될 수 있음은 이 분야에서 통상의 지식을 습득한 자들에게는 자명하다.
도 5는 MSB 프로그램에 소요되는 각 옵션별 소요 시간을 루프 수의 변화에 따라 도시한 그래프이다. 도 5를 참조하면, 일반적으로 루프 수에 따라서 각각의 옵션에 대응하는 MSB의 프로그램 시간은 달라진다. 이러한 MSB 프로그램 시간(tPGM_MSB)의 옵션별 차이는 제 1 옵션의 특징에 기인한다. 제 1 옵션의 제 2 프로그램 동작의 경우, 하나의 프로그램 루프는 두 번의 검증 읽기 동작(Verify read operation)을 포함한다. 그러나 제 1 옵션의 제 2 프로그램 동작은 두 케이스가 동시에 진행되기 때문에 하나의 MSB 페이지를 기입하기 위한 프로그램 사이클(Program Cycle)의 수는 2회가 되며, 제 2 옵션의 3회보다 적다. 결국, 제 1 옵션은 전체 프로그램에 소요되는 루프 수는 상대적으로 적은 반면, 프로그램 루프의 평균 구간이 제 2 옵션에 비하여 길다. 제 2 옵션은 전체 프로그램에 소요되는 루프 수는 많지만, 각각의 루프 구간은 제 1 옵션에 비하여 상대적으로 짧다. 이러한 MSB 프로그램 시간의 옵션별 특징은, 메모리 셀의 고유 특성에 따라 옵션을 선택할 수 있는 여지를 제공한다. 즉, 메모리 셀의 특성을 검출하여 최적화된 MSB 프로그램 시간을 갖도록 상술한 두 옵션들 중 어느 하나를 선택할 수 있다.
다시 도 5를 참조하면, MSB 프로그램 방식으로 제 1 옵션을 채택하는 경우, 프로그램 루프 수가 많이 소요되는 셀들일수록 MSB의 프로그램에 소요되는 시간은 제 2 옵션에 비하여 상대적으로 증가한다. 제 1 옵션의 제 2 프로그램 동작시, 하나의 루프는 2회의 검증 읽기 동작이 포함되어 일반적인 루프 구간(예를 들면, 50㎲)보다 긴 루프 구간(예를 들면, 70㎲)을 갖는다. 따라서, 제 1 옵션은 프로그램에 소요되는 루프 수가 많은 특성의 메모리 셀들에 적용하는 경우, 상대적으로 불 리하다. 그러나 프로그램에 소요되는 루프 수가 적게 소요(n회 이하)되는 경우, 제 1 옵션은 상대적으로 제 2 옵션에 비하여 속도 측면에서 유리하다.
반면에, 제 2 옵션은 프로그램 동작시 소요되는 루프 수가 적은 메모리 셀들에 있어서 상대적으로 더 많은 프로그램 시간이 소요된다. 제 2 옵션은 3회의 프로그램 사이클을 가지나, 각 루프는 단지 1회의 검증 읽기 동작만을 포함한다.
이러한 특성을 간략히 표현하면, 하나의 프로그램 사이클에 하나의 케이스만 포함되는 경우 하나의 루프에 소요되는 시간을 tMSB1, 하나의 프로그램 사이클에 두 케이스를 포함하는 경우 하나의 루프에 소요되는 시간을 tMSB2라 칭하기로 한다. 이 경우 하나의 루프에 두 번의 검증 읽기 동작이 포함되는 tMSB2가 더 길 수밖에 없다. 또한, 셀 특성이 프로그램을 위해 소요되는 루프 수에 있어서도 각 옵션에 따라 달라진다. 즉, 모든 MSB 페이지를 프로그램하기 위해 소요되는 루프 수에 있어서 하나의 사이클에 두 케이스가 포함되는 제 1 옵션의 경우와 하나의 사이클에 하나의 케이스만을 포함하는 제 2 옵션은 차이가 존재한다. 하나의 프로그램 단계에 하나의 케이스만을 갖는 경우 소요되는 루프 수를 'Loop1MSB', 하나의 프로그램 단계에 두 케이스를 포함하는 경우 패스 되기까지 소요되는 루프 수를 'Loop2MSB'라 칭하기로 한다. 이때, 하나의 루프에서 두 가지 케이스가 동시에 진행되는 'Loop2MSB'가 상대적으로 더 적을 수밖에 없다.
이상을 정리하면, 아래 수학식 1로 표현될 수 있다.
상술한 수학식 1에 따른 셀의 프로그램 특성을 고려하여 메모리 장치의 최적의 프로그램 속도를 도출할 수 있는 옵션을 선택할 수 있다.
결국, 프로그램에 소요되는 루프 수가 상대적으로 많은 메모리 셀(즉, Loop 수가 n회 보다 큰 경우)들은 제 2 옵션을 적용하는 것이 바람직하다. 반면에, 루프 수가 적게 소요되는 메모리 셀들(즉, Loop 수가 n회 보다 적게 소요되는 셀 특성의 경우)은 제 1 옵션을 적용하여 MSB를 프로그램하는 것이 프로그램 속도면에서 바람직하다.
도 6은 본 발명에 따른 MSB 프로그램의 옵션을 선택할 수 있는 플래시 메모리 장치를 간략히 보여주는 블록도이다. 도 6을 참조하면, 본 발명에 따른 플래시 메모리 장치(100)는 멀티-비트 데이터를 저장하기 위한 셀 어레이(110)를 포함하며, 페이지 버퍼(130) 및 프로그램 제어부(170)를 포함한다. 특히, 본 발명의 플래시 메모리 장치(100)는 MSB 프로그램 방식을 선택할 수 있는 옵션 선택 수단(160)을 포함한다. 프로그램 제어부(170)는 옵션 선택 수단(160)으로부터 전달되는 옵션 선택 신호(Option1, Option2)에 응답하여 MSB 프로그램 시에 제 1 옵션 또는 제 2 옵션에 따른 프로그램 동작을 수행한다.
셀 어레이(110)는 복수의 메모리 셀들을 포함하며, 워드 라인 및 비트 라인의 교차 영역에 메모리 셀들이 형성된다. 셀 어레이(110)는 소거 동작의 단위가 되 는 메모리 블록을 포함한다. 메모리 블록은 다시, 프로그램의 단위가 되며 워드 라인을 공유하는 셀들의 단위인 페이지로 구분된다. 프로그램 동작시에 페이지 버퍼(130)에 로드된 프로그램 데이터가 상술한 페이지 단위로 셀들에 기입된다. 일반적으로 멀티 레벨 셀(Multi-level Cell)로 구성되는 셀 어레이(110)의 프로그램에서는 커플링 효과를 줄이고, 부스팅 효율을 위해서 2개의 페이지 단위로 순차적으로 프로그램된다.
X-디코더(120)는 행 어드레스(미도시됨)에 응답하여 고전압 발생기(180)로부터 제공되는 워드 라인 전압을 선택적으로 셀 어레이의 워드 라인으로 전달한다. 일반적으로 X-디코더(120)는 블록 어드레스에 응답하여 블록 단위를 선택하고, 페이지를 선택한다. 프로그램 동작시, X-디코더(120)는 선택된 페이지의 워드 라인으로는 고전압 발생기(180)로부터 제공되는 프로그램 전압(Vpgm) 및 검증 읽기 전압(Vvfy)을 전달한다.
페이지 버퍼(130)는 프로그램 제어부(170)에 의해 제어되며, 셀 어레이(110)의 각 비트 라인에 대응되는 페이지 버퍼 유닛들을 갖는다. 페이지 버퍼(130)는 동작 모드에 따라 감지 증폭기(Sense Amplifier)로서 또는 기입 드라이버(Write Driver)로서 동작한다. 각 페이지 버퍼 유닛은 하나의 비트 라인 또는 한 쌍의 비트 라인들 중 어느 하나에 전기적으로 연결되며, 비트 라인을 통해 셀(110)로부터 데이터를 읽거나 비트 라인을 통해 셀 어레이(110)에 데이터를 저장한다. 본 발명의 페이지 버퍼(130)에 포함되는 각 페이지 버퍼 유닛들은 MSB 프로그램을 위해서 로드되는 MSB 데이터 비트를 저장하는 제 1 래치를 포함한다. 또한, 페이지 버퍼 유닛들은 각각 셀에 대한 LSB 프로그램의 결과를 독출한다. 페이지 버퍼 유닛들은 독출 결과가 '11' 상태인지 '10*'상태인지의 여부를 나타내는 비트 데이터를 저장하는 제 2 래치를 포함한다. 따라서, 페이지 버퍼 유닛들은 각각 적어도 2비트의 데이터를 저장할 수 있는 래치를 구비하여 MSB 프로그램 동작시에 기입 드라이버로써 동작한다.
Y-패스 게이트(140)는 프로그램 제어부(170)에 의해 제어되며, 열 어드레스에 대응하는 페이지 버퍼(130)의 데이터를 입출력 버퍼(150)로 전달한다. 프로그램 동작을 위해서, Y-패스 게이트(140)는 입출력 버퍼(160)로부터 입력되는 프로그램 데이터를 페이지 버퍼(130)에 전달한다. 입출력 버퍼(150)는 프로그램 동작시에는 외부로부터 입력되는 프로그램 데이터를 일시 저장하고, 메모리 장치 내부로 전달한다. 독출 동작시, 입출력 버퍼(150)는 독출된 데이터를 외부로 전달한다.
옵션 선택 수단(160)으로는 제 1 옵션(Option 1) 또는 2 옵션(Option 2)의 MSB 프로그램 방식에 대한 옵션 선택 정보가 저장된다. 옵션 선택 수단(160)에 옵션의 선택 정보가 저장되기 이전에, 어느 옵션이 바람직한 속도 특성을 갖는지 검출하는 테스트 공정이 진행될 것이다. 테스트 공정에서 검출된 셀 특성에 따라, 바람직한 옵션이 선택되고, 옵션 선택 수단(160)에 그 정보가 저장된다. 옵션 선택 수단(160)은 퓨즈 옵션 회로로 구성될 수 있다. 이 경우, 옵션의 선택 정보는 테스트 공정에서 퓨즈를 절단하는 퓨즈 프로그램을 통해서 저장될 수 있다.
다시 도면을 참조하면, 옵션 선택 수단(160)은 패드(Pad)를 구비하고 그 본 딩(Bonding)의 여부에 따라서 제 1 옵션 또는 제 2 옵션이 선택될 수 있다. 또는, 옵션 선택 수단(160)은 외부로부터 전달되는 옵션 선택 명령어에 응답하여 제 1 옵션 또는 제 2 옵션의 여부를 결정하는 명령어 디코더 또는 명령어 레지스터 등으로 구성될 수 있다. 이 경우, 명령어에 따라서 옵션이 선택될 수 있어, 일회성 퓨즈 프로그램이나 본딩에 의한 경우보다 자유로운 측면이 있다. 따라서, 명령어에 의한 옵션의 선택하는 방식은 테스트 공정에서 셀의 특성을 측정하는 경우에 바람직한 방법이 될 것이다.
프로그램 제어부(170)는 상술한 옵션 정보에 응답하여 대응하는 옵션에 따라 MSB 프로그램을 수행한다. 제 1 옵션의 선택시에는 하나의 프로그램 사이클 구간 동안 2가지 케이스에 해당하는 프로그램 동작을 수행한다. 특히 제 1 옵션에서 2가지 케이스가 동시에 실시되는 제 2 프로그램 단계에서는 하나의 루프는 2번의 검증 읽기 동작을 포함하게 될 것이다. 프로그램 제어부(170)는 고전압 발생기(180) 및 페이지 버퍼(130)를 제어하여 상술한 제 2 프로그램 단계를 수행하게 될 것이다.
고전압 발생기(180)는 프로그램 제어부(170)의 제어 동작에 응답하여 셀 어레이(110)의 워드 라인으로 제공되는 전압을 생성한다. 고전압 발생기(180)는 LSB프로그램 동작시 통상의 검증 읽기 전압(Vvfy2)보다 낮은 검증 전압(Vvfy2_low)을 선택 워드 라인으로 제공한다. MSB 프로그램 시에는 각 상태에 대응하는 검증 읽기 전압을 대응하는 워드 라인들로 제공한다. 본 발명의 제 1 옵션에 포함되는 제 2 프로그램 동작시, 고전압 발생기(180)는 하나의 프로그램 루프 구간 동안 프로그램 전압(Vpgm)과 2 개의 검증 읽기 전압(Vvfy1, Vvfy2)을 제공하게 될 것이다.
이상에서 설명한 본 발명에 따른 플래시 메모리 장치는 테스트 공정에서 검출된 셀의 특성에 최적화되는 MSB 프로그램 방식을 선택할 수 있다. 특히, 루프 횟수가 많은 메모리 셀이 경우 제 2 옵션에 따라 MSB 프로그램 동작이 진행되도록 옵션 선택 수단을 설정할 수 있다. 프로그램 동작시에 상대적으로 루프 횟수가 적게 소요되는 경우, 제 1 옵션을 선택하도록 옵션 선택 수단(160)을 설정할 수 있다.
도 7은 상술한 도 6의 프로그램 제어부(170)가 MSB 프로그램 옵션에 응답하여 수행하는 MSB 페이지의 프로그램 방법을 간략히 설명하는 흐름도이다. 도 6을 참조하면, 본 발명에 따른 프로그램 제어부(170)는 옵션 정보(Option 1, Option 2)에 응답하여 제 1 옵션 또는 제 2 옵션에 따라 MSB 페이지를 프로그램할 수 있다. 이하 각 옵션에 따라 진행되는 프로그램 단계들이 상술한 도면들에 의거하여 상세히 설명될 것이다.
LSB 페이지의 프로그램이 완료되면, MSB 페이지를 메모리 셀로 프로그램하는 MSB 프로그램 동작이 시작된다. MSB 프로그램을 위해서 프로그램 제어부(170)는 옵션 선택 수단(160)으로부터 MSB 프로그램을 위해 이미 정의된 옵션 정보를 전달받는다(S10). 프로그램 제어부(170)는 전달받은 옵션 정보가 제 1 옵션(Option 1) 또는 제 2 옵션(Option 2)인지를 판단한다(S20).
만일 제 1 옵션(Option 1)으로 MSB를 프로그램하도록 선택된 경우, 2회의 프로그램 사이클이 사용되는 제 1 옵션에 따라 프로그램 동작을 진행한다. 제 1 옵션에 따른 프로그램 동작은 우선 LSB의 프로그램이 완료된 페이지 단위의 메모리 셀들을 독출하는 것으로 시작한다(S30). LSB 프로그램의 결과를 독출하여, 프로그램 제어부(170)는 각 메모리 셀들의 문턱 전압 상태를 소거 상태 '11' 혹은 임시 상태 '10*'에 있는지 판단한다. 만일 소거 상태 '11'에 있는 경우 해당하는 페이지 버퍼의 제 1 래치에는 '1'로 기입될 것이다. 그러나, 임시 상태 '10*'으로 LSB 프로그램된 셀이라면 페이지 버퍼(130)에 구비된 제 1 래치에는 '0'으로 기입될 것이다. 그리고 상술한 페이지 버퍼(130)의 제 2 래치들로는 프로그램될 MSB 페이지 데이터들이 로드된다. 프로그램 제어부(170)는 상술한 페이지 버퍼(130)의 래치 데이터를 가지고 3가지 케이스(Case) 중 어느 하나를 적용하는 제 1 프로그램 동작을 수행한다. 본 발명의 실시예에서 설명한 바와 같이, 프로그램 제어부(170)는 임시 상태 '10*'로부터 최상위 상태 '00'으로 프로그램하는 제 3 케이스(Case 3)를 제 1 프로그램 동작에 적용할 수 있다(S40). 1회의 프로그램에서 하나의 상태 천이가 이루어지는 제 1 프로그램 동작이 종료되면, 프로그램 제어부(170)는 한 번의 프로그램 동작시에 2개의 상태 천이가 발생하는 제 2 프로그램 동작을 수행한다. 앞서 제 3 케이스(Case 3)를 제 1 프로그램에 적용하는 경우, 제 2 프로그램 동작에서는 제 1 케이스와 제 2 케이스가 동시에 수행된다. 따라서, 앞서 설명된 바와 같이, 하나의 프로그램 루프(Loop)는 2개의 상태 천이에 대한 패스(Pass) 여부를 감지하기 위해 2회의 검증 읽기 동작을 포함하게 된다. 특히, 제 1 케이스 및 제 2 케이스가 제 2 프로그램 동작시 동시 적용되는 경우 하나의 루프에는 2회의 검증 읽기 동작이 포함된다. 즉, 하나의 루프는 상태 '01'과 상태 '10'으로의 프로그램 여부를 감지하는 검증 읽기 전압(Vvfy1) 및 검증 읽기 전압(Vvfy2)에 의한 각각의 검증 읽기 동 작들을 포함한다. 두 가지의 상태 천이가 모두 완료되면, 제 1 옵션에 의한 MSB 페이지의 프로그램 동작은 종료된다(S50).
반면에, 제 2 옵션(Option 2)에 따라 MSB가 프로그램되도록 설정된 경우, 프로그램 제어부(170)는 하나의 프로그램 단계(Program Cycle)에서 하나의 상태 천이가 발생하는 제 2 옵션에 따르는 프로그램 동작을 수행한다. 우선, 프로그램 제어부(170)는 LSB의 프로그램 결과를 독출한다(S60). LSB의 프로그램 결과를 독출하여, 프로그램 제어부(170)는 메모리 셀들의 문턱 전압 상태를 소거 상태 '11' 혹은 임시 상태 '10*'에 있는지 판단한다. 소거 상태 '11'에 분포하는 메모리 셀들에 대응하는 페이지 버퍼 유닛의 제 1 래치에는 '1'이 기입될 것이다. 그러나, 임시 상태 '10*'으로 LSB가 프로그램된 셀이라면 페이지 버퍼 유닛의 제 1 래치에는 '0'이 기입될 것이다. 그리고 상술한 페이지 버퍼(130)에 포함되는 각 페이지 버퍼 유닛들의 제 2 래치들로는 프로그램될 MSB 페이지 데이터들이 로드된다. 프로그램 제어부(170)는 페이지 버퍼(130)에 로드된 데이터를 참조하여 제 1 프로그램 동작을 수행한다. 다양한 실시예들이 가능하나, 제 1 프로그램 동작에서 상태천이('10*'→'00')를 가능하게 하는 제 3 케이스(Case 3)를 수행할 수 있다(S70). 제 2 프로그램 동작시에는 상태 천이 ('10*'→'10')를 위한 제 2 케이스(Case 2)를 수행할 수 있다. 여기서 제 2 케이스(Case 2)는 상태 '10'을 갖는 모든 셀들에 대해서 적용된다(S80). 제 3 프로그램 동작시에는 상태 천이 ('11'→'01')를 위한 제 1 케이 스(Case 1)에 따라 MSB 프로그램을 수행할 수 있다(S90). 여기서, 각각 프로그램 단계(S70, S80, S90)에 대응하는 케이스를 제 3 케이스, 제 2 케이스, 제 1 케이스로 배열하였으나 이는 예시적인 것일 뿐, 본 발명은 이에 국한되지 않음은 이 분야에서 통상의 지식을 습득한 자들에게는 자명하다.
도 8a는 본 발명에 따른 플래시 메모리 장치를 적용하는 모바일 기기(200)의 구성예를 간략히 보여주는 블록도이다. 본 발명의 프로그램 방식으로 프로그램되는 멀티 레벨 셀을 포함하는 플래시 메모리 장치는 대용량 저장 장치로서 사용될 수 있다. 도 8a를 참조하면, 본 발명의 플래시 메모리(260)는 모바일 기기(200)의 하드 디스크(250)에 적용될 수 있다. 여기서, 본 발명의 플래시 메모리 장치(260)는 하드 디스크(250)의 대용량 저장 매체로서 사용될 수 있다. 즉, 본 발명의 플래시 메모리 장치는 반도체 디스크(Solid State Disk)로 제공될 수 있다. 또는, 본 발명의 플래시 메모리 장치는 하이브리드 하드 디스크(Hybrid hare disk)에서 사용되는 플래시 메모리 소자로 사용될 수 있다. 일반적인 모바일 기기(200)는 하드 디스크(250)로부터 전달되는 데이터가 버스(240)를 통해서 램(270)이나 중앙처리장치(210) 등으로 전달된다. 또는, 램(270)에 저장되고, 입출력 장치(230)에 응답하여 중앙처리장치(210)에 의해서 내부에서 생산된 데이터가 버스(240)를 경유하여 다시 하드 디스크(250)에 저장될 수 있다. 하드 디스크(250)에 데이터가 저장되는 과정에서 상술한 2가지 옵션 중 선택된 한 가지 방식으로 MSB 페이지가 프로그램될 것이다.
도 8b는 본 발명에 따른 플래시 메모리 장치를 대용량 저장 장치로 사용하는 모바일 기기(300)의 또 다른 예를 간략히 보여주는 블록도이다. 도 8b를 참조하면, 본 발명의 플래시 메모리(260)는 모바일 기기(300)에 사용되는 불휘발성 메모리 소자로 사용될 수 있다. 이 경우에는 데이터 교환을 위한 인터페이싱 동작을 수행하는 메모리 제어기(280)가 포함된다. 메모리 제어기(280)에 의해서 모바일 기기(300)의 버스(240)로의 데이터 입출력이 이루어진다.
상술한 본 발명의 실시예에 따르면, 본 발명의 플래시 메모리 장치는 프로그램 루프 수 등의 측정된 데이터를 기초로 옵션을 선택하는 것으로 프로그램 속도를 향상시킬 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등 물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.