상술한 제반 목적을 달성하기 위한 본 발명의 일 특징에 따르면, 셀 당 최소 2비트가 저장되는 플래시 메모리 장치의 프로그램 방법에 있어서, 프로그램되어야 할 메모리 셀의 비트가 상위 비트인지 하위 비트인지를 결정하는 비트 결정 단계와; 상기 메모리 셀을 독출하여 현재 데이터 상태를 검출하는 검출 단계와; 상기 비트 결정 단계와 상기 검출 단계로부터 프로그램할 메모리 셀의 비트와 독출된 상기 현재 데이터 상태를 참조하여 프로그램되어야 할 목표 비트값을 결정하는 목표 상태 결정 단계와; 상기 목표 비트값으로의 프로그램을 위한 프로그램 전압과 검증 전압을 생성하는 전압 생성 단계와; 상기 프로그램 전압과 상기 검증 전압을 상기 메모리 셀의 워드라인으로 공급하는 프로그램 단계를 포함한다.
바람직한 실시예에 있어서, 상기 프로그램 방법은 상기 메모리 셀의 상위 비트와 하위 비트를 모두 프로그램해야 하는 경우, 각각의 비트에 대해 연속적으로 상기 프로그램 방법에 의거한 단계들이 실시된다.
바람직한 실시예에 있어서, 상기 프로그램 방법은 상위 혹은 하위비트 중 어느 한 비트를 먼저 프로그램하더라도 프로그램 가능하다.
바람직한 실시예에 있어서, 상기 플래시 메모리 장치는 노어(NOR)형 플래시 메모리 장치이다.
바람직한 실시예에 있어서, 상기 셀은 상기 상위 비트 혹은 상기 하위 비트 중 어느 하나를 프로그램하더라도 이전 상태보다 높은 문턱전압 상태로 천이되도록 문턱전압과 상기 문턱전압과 대응되는 비트 값이 설정된다.
바람직한 실시예에 있어서, 상기 메모리 셀은 2비트 데이터가 저장되는 경우 상기 문턱전압에 대응되는 비트값은 상기 문턱전압의 증가 순으로 '11', '10', '01', '00'이다.
상술한 목적을 달성하기 위한 본 발명의 다른 특징에 따르면, 셀 당 2비트가 저장되는 메모리 셀을 갖는 플래시 메모리 장치의 프로그램 방법에 있어서, 프로그램될 상기 메모리 셀의 비트가 상위 비트인지, 하위 비트인지를 결정하는 비트 결정 단계와; 상기 결정 단계에서 결정되는 비트가 상위 비트인 경우에는 현재의 셀의 상태가 '11'인지 '10'인지를 검출하는 단계와; 상기 메모리 셀의 상태가 '11'인 경우에는 '01'상태로 프로그램하기 위한 제 1 프로그램 전압과 제 1 검증전압을 생성하고, 셀의 상태가 '10'인 경우에는 '00'상태로 프로그램 하기위한 제 2 프로그램 전압과 제 2 검증 전압을 생성하는 단계와; 상기 메모리 셀의 상태에 따라 생성된 제 1 프로그램 전압과 제 1 검증전압을, 혹은 제 2 프로그램 전압과 제 2 검증전압을 각각의 경우에 따라 공급하여 프로그램하는 단계를 포함하되, 프로그램 순서가 하위 비트나 상위 비트의 우선순위에 구애받지는 않는다.
바람직한 실시예에 있어서, 상기 비트 결정 단계에서 선택되는 비트가 하위 비트인 경우에는, 현재 메모리 셀의 상태가 '11'인지 '01'인지를 검출하는 단계와; 상기 메모리 셀의 상태가 '11'인 경우에는 '01'상태로 프로그램하기 위한 제 3 프로그램 전압과 제 3 검증 전압을, 상기 셀의 상태가 '01'인 경우에는 '00'상태로 프로그램 하기위한 상기 제 2 프로그램 전압과 상기 제 2 검증 전압을 생성하는 단계와; 상기 메모리 셀의 상태에 따라 생성된 제 3 프로그램 전압과 제 3 검증전압을, 혹은 제 2 프로그램 전압과 제 2 검증 전압을 각각의 경우에 따라 공급하여 프로그램하는 단계를 포함한다.
바람직한 실시예에 있어서, 상기 프로그램 방법은 상기 셀의 상위 비트 및 하위 비트를 모두 프로그램해야 하는 경우 하나의 비트에 대한 프로그램 완료시, 나머지 비트에 대한 프로그램을 결정하는 비트 결정 단계로 천이한다.
바람직한 실시예에 있어서, 상기 메모리 셀의 비트값이 문턱전압의 증가 순에 따라 각각 '11', '10', '01', '00'과 대응된다.
상술한 목적을 달성하기 위한 본 발명의 또 다른 특징에 따르면, 셀 당 최소 2비트가 저장되는 메모리 셀을 갖는 플래시 메모리 장치는, 상태 선택신호에 응답하여 상기 메모리 셀을 목표 상태로 프로그램하는 전압들을 생성하여 상기 메모리 셀로 공급하는 전압발생기와; 감지활성화 신호에 응답하여 상기 메모리 셀들의 비트라인을 통하여 상기 메모리 셀의 상태를 감지하는 감지증폭기와; 프로그램될 데이터를 기입 활성화 신호에 응답하여 프로그램 되도록 상기 메모리 셀의 비트라인을 활성화하는 기입 드라이버와; 프로그램 어드레스에 응답하여 상기 메모리 셀의 문턱전압 상태를 검출하기 위한 상기 감지활성화 신호를 생성하고, 상기 감지증폭기로부터 입력받은 상기 메모리 셀의 현재 상태를 기초로 상태 선택신호를 생성하는 프로그램 제어부를 포함하되, 상기 프로그램 어드레스를 통해서 하위 혹은 상위 비트 중 어느 한 비트가 프로그램되도록 선택할 수 있다.
바람직한 실시예에 있어서, 상기 메모리 셀의 문턱전압에 대응되는 저장 비트값은 상기 문턱전압의 증가순에 따라 각각 '11', '10', '01', '00'과 대응된다.
바람직한 실시예에 있어서, 상기 상태 선택신호는 프로그램될 목표 상태에 대한 정보이다.
바람직한 실시예에 있어서, 상기 목표 상태로 프로그램하는 전압들은 상기 메모리 셀의 워드라인에 공급될 프로그램 전압과 검증 전압과 그리고 기입 드라이 버로 공급되는 비트라인 전압을 포함한다.
바람직한 실시예에 있어서, 상기 검증 전압은 상기 목표 상태들 각각에 대응하는 전압들이다.
바람직한 실시예에 있어서, 상기 프로그램 어드레스는 하위 혹은 상위 비트 중 어느 비트를 프로그램할지에 대한 데이터이다.
바람직한 실시예에 있어서, 상기 메모리 셀은 노어(NOR)형 플래시 메모리 셀이다.
상술한 방법 및 구성을 통한 본 발명은 하나의 셀에 두 비트 이상을 저장하는 멀티 레벨 셀 플래시 메모리 장치에서, 하위 비트를 우선적으로 프로그램해야하는 프로그램 순서상의 제약을 해소하여 보다 융통성 있는 프로그램을 가능케 한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부된 도면을 참조하여 설명하기로 한다.
도 3은 본 발명의 바람직한 실시예를 위한 문턱전압과 데이터의 대응관계를 보여주는 도면이다. 도 3을 참조하면, 본 발명의 경우 '00'상태에 대응하는 문턱전압 분포가 최상위의 문턱전압이 되도록 설정하였다. 본 발명의 문턱전압과 저장 데이터의 대응관계는 최하위 상태의 문턱전압부터 데이터 '11', '10', '01', '00'의 순서가 되도록 설정한다. 이러한 대응관계는 MSB 및 LSB의 각 비트값 중 항상 '0'가 상측 문턱전압에 대응되도록 하여 프로그램 시 어떤 경우에도 '00'상태로의 프로그램이 불가능한 경우를 사전에 차단하였다. 이러한 각 문턱전압과 대응되는 데 이터 조합은 상위 혹은 하위 중 어느 비트를 먼저 프로그램하더라도 프로그램 이전 상태보다 높은 문턱전압 분포로 천이 되도록 설정하기 위한 것이다.
도 4a는 도 3과 같은 문턱전압과 저장 데이터 간의 대응관계에서 LSB를 먼저 프로그램하고, 이후에 MSB를 프로그램할 때의 경로를 나타내는 상태천이도이다. 도 4a를 참조하면, '11'상태에서 '10'상태로의 프로그램은 ⑦경로를 통해서 LSB만 프로그램하여 천이가 가능하다. '11'상태에서 '01'상태로의 프로그램은 LSB가 프로그램되는 단계에서는 프로그램하지 않고, MSB를 프로그램하는 단계에서 '01'상태로 해당하는 프로그램 전압과 검증 전압을 통해서 프로그램 가능하다. 그리고 '11'상태에서 '00'상태로의 프로그램은 LSB를 먼저 프로그램하는 ⑦경로와 뒤따르는 MSB를 프로그램하는 ⑧경로를 순차적으로 수행하여 프로그램될 수 있다.
도 4b는 도 3과 같은 문턱전압과 저장 데이터 간의 대응관계에서 MSB를 먼저 프로그램하고, 이후에 LSB를 프로그램하는 각각의 경우에 해당하는 상태천이도이다. 도 4b에 따르면, '11'상태에서 '00'상태로 프로그램되는 상태천이의 과정을 살펴보면, '11'에서 '01'로 프로그램되는 ⑩경로와 '01'상태에서 '00'상태로 프로그램되는 ⑪경로의 프로그램이 연속적으로 수행되어 완성된다. 종래기술에서는 이런 경우 문턱전압이 높은 상태에서 낮은 상태로 상태천이가 이루어져야 했으나, 본 발명에서는 MSB를 먼저 프로그램하더라도 문턱전압이 낮은 상태에서 높은 상태로 프로그램되도록 모든 프로그램 경로가 구성되었다.
상술한 도 4a 및 도 4b를 통하여 MSB를 먼저 프로그램하는 경우나, LSB를 먼저 프로그램 하는 경우에 각 데이터의 상태에 대응하는 문턱전압의 상태가 높은 문 턱전압에서 낮은 문턱전압으로의 상태천이의 문제는 발생하지 않음을 알 수 있다. 따라서 본 발명의 도 3의 문턱전압과 데이터 조합의 구성을 통해서 MSB나 LSB중 어느 하나를 먼저 프로그램해도 상관없는, 즉 프로그램의 순서에 구애를 받지 않는 프로그램 방법이 제공된다.
도 5는 상술한 도 4와 같은 프로그램 순서에 구애받지 않는 프로그램 방법을 수행할 수 있는 메모리 장치에 대한 블록도이다. 도 5를 참조하면, 본 발명을 실시하기 위한 플래시 메모리 장치는 X-디코더와 Y-선택부를 포함하는 셀 어레이(10)와, 입력되는 데이터에 대해 지정되는 셀로의 프로그램이 수행될 수 있도록 비트라인을 설정하는 기입 드라이버(20)와, 리딩과 검증단계에서 셀의 상태를 감지하는 감지증폭기(30)와, 감지증폭기(30)의 감지 결과로부터 셀의 현재 데이터 상태를 검출하는 상태검출기(40)와, 프로그램 시 셀의 상태를 감지하여 전반적인 프로그램 과정을 제어하는 프로그램 제어부(50)와, 프로그램 제어부(50)의 제어에 따라 프로그램 전압을 발생하는 전압발생기(60)를 포함한다. 도 3의 데이터 조합 설정과 상술한 구성들을 통하여 MSB를 먼저 프로그램하거나 LSB를 먼저 프로그램할 수도 있는 멀티 레벨 셀 플래시 메모리 장치가 제공된다.
메모리 셀 어레이(10)는 노어(NOR)형 메모리 셀들과, 셀들을 선택하기 위한 X-디코더 및 Y-선택부를 포함한다. 본 발명에서 설명을 위해 개시되는 메모리 셀은 셀 당 2비트 데이터가 저장되는 노어형 플래시 메모리 셀이다. 특히 셀의 문턱전압에 대응하는 2비트의 데이터는 상술한 도 3과 같이 최하위 상태의 문턱전압부터 '11', '10', '01', '00'의 순서가 되도록 설정된다.
기입 드라이브(Write Driver)(20)는 메모리 셀의 워드라인에 프로그램 펄스가 인가되는 시점에 선택된 메모리 셀들의 비트라인을 활성화한다. 프로그램 시, 후술하게 될 프로그램 제어부(50)로부터 입력되는 기입 활성화 신호(WREN)에 응답하여 전압 발생기(10)에서 공급되는 비트라인 전압(VBL)을 셀의 비트라인으로 전달한다. 그리고 워드라인으로 프로그램 펄스(Vpgm)가 전달되는 동안에 열전자(Hot Electron)의 주입이 효과적으로 일어날 수 있도록 셀의 드레인 측에 비트라인 전압(VBL)크기(예를 들면 5V)로 바이어스 한다.
감지증폭기(Sense Amplifier)(30)는 기입 드라이버(20)와 셀의 비트라인들에 병렬로 연결되며, 독출 동작과 검증 동작에서 셀 상태를 감지한다. 독출 동작시에는 각 셀들의 워드라인에는 독출전압(Vread)이 인가되고, 셀의 패스 여부에 따라 저장된 데이터를 센싱한다. 2비트의 데이터를 감지하기 위해서는 일반적으로 사용되는 시리얼 센싱(Sereal Sensing)이나 혹은 페러렐 센싱(Parallel Sensing)이 감지증폭기(30)에서 이루어진다. 셀의 패스 여부에 따라 본 발명의 감지증폭기(30) 출력신호(SA_PUT)가 출력된다.
상태 검출기(40)는 상술한 감지증폭기(30)의 셀의 상태를 검출한 결과 데이터를 입력받아 현재 셀의 비트값이 얼마인지를 판단한다. 상태 검출기(40)의 동작은 본 발명의 MSB와 LSB의 순서에 구애됨이 없이 프로그램 가능하도록 설정됨에 따라, 현재 상태에서 목표로 하는 데이터 값으로 프로그램하기 위해서 부가되는 구성이다.
프로그램 제어부(50)는 외부로부터 입력되는 프로그램 어드레스(PGM_ADD)에 따라 MSB의 프로그램인지, LSB의 프로그램인지를 판단한다. 그리고 현재 셀의 데이터 비트(P_STATE)를 입력받아 프로그램하고자 하는 목표 상태로 프로그램하기 위한 프로그램 전압을 선택하는 상태 선택신호(S_SEL)를 출력한다. 현재의 상태를 감지하는 경우에는 상술한 감지증폭기(30)의 감지동작을 활성화하는 감지활성화 신호(SAEN)를 출력하여 시리얼 센싱 혹은 페러렐 센싱이 이루어지도록 제어한다. 프로그램 동작에서는 또한 기입 드라이버(20)의 비트라인 활성화를 제어하여 프로그램되는 데이터가 선택된 셀에 프로그램될 수 있도록 제어한다. 상술한 프로그램 제어부(50)의 동작을 간략히 요약하면, 프로그램 제어부(50)는 프로그램 어드레스(PGM_ADD)를 통해서 셀의 프로그램될 비트가 결정되면 현재의 셀에 저장된 데이터(P_STATE)를 우선 감지하여 목표 상태를 결정한다. 이후에는 목표 상태로의 프로그램을 위한 전압들이 발생되도록 전압 발생기(60)로 상태 선택신호(S_SEL)를 출력하여 프로그램이 이루어지도록 구성된다.
전압 발생기(60)는 프로그램 및 검증시에 사용될 전압들(VWL, VBL)을 생성하여 메모리 셀 어레이(10)의 워드라인과 기입 드라이버(20)로 공급한다. 워드라인으로 공급되는 전압(VWL)은 셀을 프로그램할 때 공급되는 프로그램 전압(Vpgm)과 검증(Verify) 동작 동안 공급되는 검증전압(Vveri)을 포함한다. 플래시 메모리 장치의 프로그램에 사용되는 전압은 메모리 셀의 문턱전압을 검증전압(Vveri)이상으로 이동시키기 위하여 증가형 스텝 펄스 프로그램(Incremental Step Pulse Programming : 이하 ISPP)에 의거, 워드라인에 인가된다. ISPP는 단계적으로 증가하는 프로그램 펄스(Vpgm)가 인가되고, 이후에는 검증전압(Vveri)이 인가되는 루프를 반복하는 프로그램 방식이다. 본 발명의 전압 발생기(10)는 프로그램 제어부(50)로부터 입력되는 상태 선택신호(S_SEL)에 응답하여 프로그램하고자 하는 목표 상태로 셀의 문턱전압을 이동시키기 위한 프로그램 전압(Vpgm)과 목표 상태로의 프로그램 여부를 검증하는 검증전압(Vveri)을 각 상태별('10', '01', '00')로 생성하여 워드라인에 공급한다. 각 상태별 프로그램 전압에 있어서, 그 스타트 전압은 현재 셀의 데이터 상태에 따라서 다르다. 다시 말하면, 현재의 데이터 상태('11','10','01')별로 서로 다른 ISPP 스타트 전압이 인가되어야 할 것이다. 더불어, 전압 발생기(10)는 프로그램 활성화를 위해 비트라인에 공급될 비트라인 전압(VBL)도 생성하여 기입 드라이버(20)로 공급한다.
이상의 도 5에 개시한 수단들과 상술한 도 3과 같은 문턱전압 및 이에 대응하는 데이터 조합을 통해서, 본 발명의 플래시 메모리는 MSB나 LSB의 우선 순위에 상관없이 프로그램하고자 하는 비트를 임의로 선택하여 프로그램할 수 있다.
도 6은 상술한 도 5의 구성을 통하여 프로그램 순서에 구애됨이 없이 프로그램할 수 있는 방법이 설명된 흐름도이다. 이하 본 발명에 따른 프로그램 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
프로그램이 시작되면 사용자에 의해 설정된 프로그램 어드레스(PGM_ADD)에 따라 MSB를 프로그램해야 하는지, 또는 LSB를 프로그램해야 하는지를 결정한다. 입 력되는 프로그램 어드레스에서 지정되는 비트가 'even'인 경우에는 MSB를 프로그램하도록 결정하고, 프로그램 어드레스에서 지정되는 비트가 'odd'인 경우에는 LSB를 프로그램하도록 결정한다(S10). 이후에는 현재 셀의 상태를 검출한다. 만일 셀의 프로그램되어야 할 비트가 MSB인 경우라면, 이것은 MSB가 소거상태에 있다는 것을 의미한다. 그러나 LSB의 데이터 값은 정확히 알 수 없다. LSB의 데이터가 '0' 혹은 '1'인지를 알 수 있으면, MSB를 프로그램했을 때의 데이터 상태를 알 수 있기 때문에 프로그램 이후의 문턱전압 위치가 결정된다. 따라서 프로그램 이전 단계로 현재 셀의 상태를 독출하여 셀의 현재 문턱전압 위치와 프로그램했을 때의 문턱전압 위치를 확인한다(S20). MSB를 프로그램해야하는 경우는 현재 셀의 상태가 '11', '10' 둘 중 하나의 상태에 해당됨을 의미한다. 상태 검출기(40)로부터 입력되는 P_STATE신호를 통해서 프로그램 제어부(50)는 셀의 상태가 '11'인지 '10'인지를 판단한다(S30). 만일 현재 셀의 상태가 '11'인 경우에는 MSB를 '01'상태로 프로그램해야 한다는 것을 의미하므로 프로그램 제어부(50)는 '11'상태에서 '01'상태로 프로그램하기 위한 제반 전압을 발생하여 워드라인 및 비트라인에 공급되도록 전압발생기(60)를 제어한다. 또한, 감지 활성화 신호를 발생하여 검증동작이 이루어지도록 감지증폭기(30)를 제어하여, 목표하는 데이터 상태로의 프로그램동작을 수행한다(S40). 만일 단계 S30에서 현재 셀의 상태가 '10'이었다면, MSB의 프로그램 결과 '00' 상태가 되어야 하므로 이에 대응하는 프로그램 전압과 검증 전압들이 발생하도록 프로그램 제어부(50)는 전압 발생기(60)를 제어한다(S50). MSB에 대한 프로그램이 종료된 뒤 만일 초기상태 '11'에서 '00'으로 프로그램하기 위해서는 도 4b의 경로 ⑩ 을 거치는 상태천이가 이루어져야 하기 때문에 LSB의 프로그램이 추가로 이루어져야 한다는 것을 알 수 있다. 따라서 두 비트의 연속적인 프로그램이 이루어져야 최종 목표 상태로 프로그램되는 경우에는 완료 여부를 판단하여 LSB 프로그램을 위한 단계로 이동해야 할 것이다. 목표 상태로 프로그램이 완료되었으면 한 셀에 대한 제반 프로그램을 종료하고, 나머지 비트의 프로그램이 더 필요한 경우에는 LSB의 프로그램을 위한 초기 단계 S10으로 되돌아 간다(S100).
반면에, 프로그램 어드레스에서 지정되는 비트가 'odd'인 경우, LSB를 프로그램해야 한다. 이때, MSB를 프로그램한 이후에 이어지는 LSB 프로그램이 아니라면, MSB의 비트값은 불확실하므로 목표하는 문턱전압으로 프로그램할 각종 전압들(Vpgm, Vveri, VBL)을 생성할 수 없다. 따라서, 현재의 정확한 데이터 상태를 검출하여 LSB를 프로그램했을 때의 결과적인 문턱전압 위치를 검출해야 한다(S60). LSB를 프로그램해야하는 경우의 셀 상태는 '11'이나 '01'인 경우에 해당된다. 따라서 셀의 상태를 검출하여 '11'인지 '01'인지를 판단한다(S70). 만일 셀의 현재 상태가 '11'이라면, LSB를 프로그램하여 '10'상태로 프로그램되어야 한다는 것을 의미하므로, 프로그램 제어부(50)는 '11'로부터 '10'으로 프로그램하기 위한 프로그램 전압 및 검증 전압들을 생성하도록 전압발생기(60)를 제어한다(S80). 만일 셀의 현재 상태가 '01'이라면, LSB를 프로그램하여 '00'상태로 천이해야 한다는 것을 의미하므로, 프로그램 제어부(50)는 '01'상태에서 '00'상태로 문턱전압을 이동하기 위한 제반 프로그램 전압과 검증 전압이 발생하도록 전압발생기(60)로 상태 선택신호 (S_SEL)를 출력한다(S90). 그 이후에는 셀의 모든 비트들이 입력되는 데이터로 프로그램되었는지 확인하여 프로그램완료시에는 제반 프로그램 동작을 종료한다. 만일 LSB가 먼저 프로그램되고, '11' 상태에서 '00'상태로 프로그램되는 도 4a의 경로 ⑦→⑧의 경우에는 이후의 MSB의 프로그램을 위한 단계 S10으로 되돌아 갈 수 있다. 그러나 LSB의 프로그램만으로 셀의 모든 프로그램이 완료되는 경우나, LSB의 프로그램이 MSB 프로그램의 후속단계였을 경우에는 하나의 셀에 대한 제반 프로그램을 종료한다(S100).
이상의 프로그램 방법을 통해 설명한 본 발명은 최소한 2비트 이상이 저장되는 멀티 레벨 셀에 있어서, 어떤 프로그램 순서에 따르더라도 높은 문턱전압에 대응되는 데이터상태에서 낮은 문턱전압에 대응되는 데이터 상태로 프로그램되어야 하는 경우가 사전에 차단하도록 설정하였다. 더불어, 상술한 프로그램 단계들을 통하여 LSB를 먼저 프로그램하고 그 후에 MSB를 프로그램해야만 했던 경우와는 달리 프로그램 순서의 구애를 받지 않는 프로그램 방법이 제공된다.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.