KR101348171B1 - 단일 래치 구조를 갖는 멀티-비트 플래시 메모리 장치,그것의 프로그램 방법, 그리고 그것을 포함하는 메모리카드 - Google Patents

단일 래치 구조를 갖는 멀티-비트 플래시 메모리 장치,그것의 프로그램 방법, 그리고 그것을 포함하는 메모리카드 Download PDF

Info

Publication number
KR101348171B1
KR101348171B1 KR1020070076401A KR20070076401A KR101348171B1 KR 101348171 B1 KR101348171 B1 KR 101348171B1 KR 1020070076401 A KR1020070076401 A KR 1020070076401A KR 20070076401 A KR20070076401 A KR 20070076401A KR 101348171 B1 KR101348171 B1 KR 101348171B1
Authority
KR
South Korea
Prior art keywords
program
data
program operation
bit
programmed
Prior art date
Application number
KR1020070076401A
Other languages
English (en)
Other versions
KR20090012510A (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 KR1020070076401A priority Critical patent/KR101348171B1/ko
Priority to US12/182,274 priority patent/US7876613B2/en
Publication of KR20090012510A publication Critical patent/KR20090012510A/ko
Application granted granted Critical
Publication of KR101348171B1 publication Critical patent/KR101348171B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • 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
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5642Multilevel memory with buffers, latches, registers at input or output

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

여기에 개시된 멀티-비트 플래시 메모리 장치는 메모리 셀들의 어레이와, 각각이 단일의 래치 구조를 갖고, 로딩된 데이터에 따라 상기 메모리 셀들에 대한 기입 동작을 수행하는 페이지 버퍼들을 포함하는 페이지 버퍼 블록과, 멀티-비트 프로그램 동작시 외부로부터 제공된 프로그램 데이터를 저장하는 버퍼 램과, 그리고 상기 멀티-비트 프로그램 동작시 이전에 프로그램된 데이터와 현재 프로그램될 데이터를 비교하고자 할 때마다 상기 버퍼 램에 저장된 프로그램 데이터가 상기 페이지 버퍼 블록으로 로드되도록 상기 페이지 버퍼 그룹과 상기 버퍼 램을 제어하는 제어 로직을 포함하고, 상기 제어 로직은 상기 멀티-비트 프로그램 동작이 완료되기 전에 다음에 프로그램될 데이터가 상기 버퍼램에 저장되도록 제어한다.

Description

단일 래치 구조를 갖는 멀티-비트 플래시 메모리 장치, 그것의 프로그램 방법, 그리고 그것을 포함하는 메모리 카드{MULTI-BIT FLASH MEMORY DEVICE WITH SINGLE LATCH STRUCTURE, PROGRAM METHOD THEREOF, AND MEMORY CARD INCLUDING THE SAME}
본 발명은 플래시 메모리 장치에 관한 것으로, 좀더 구체적으로는 프로그램 성능을 향상시킬 수 있는 단일 래치 구조를 갖는 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법에 관한 것이다.
플래시 메모리 장치는 복수의 메모리 영역들이 한 번의 프로그램 동작으로 소거 또는 프로그램되는 일종의 EEPROM이다. EEPROM은 전기적으로 소거 및 쓰기가 가능하므로 계속적인 갱신이 필요한 시스템 프로그래밍(system programming)이나 보조 기억 장치로의 응용이 확대되고 있다. 특히, 플래시 EEPROM (이하, 플래시 메모리 장치라 칭함)은 기존의 EEPROM에 비해 집적도가 높아 대용량 보조 기억 장치로의 응용에 매우 유리하다. 플래시 메모리들 중에서도 낸드 플래시 메모리는 노어 플래시 메모리에 비해 집적도가 매우 높다.
낸드 플래시 메모리는 정보를 저장하기 위한 저장 영역으로서 메모리 셀 어 레이를 포함하며, 메모리 셀 어레이는 복수 개의 셀 스트링들 (또는 낸드 스트링(NAND string)이라 불림)로 이루어져 있다. 메모리 셀 어레이에 데이터를 저장하거나, 그것으로부터 데이터를 읽기 위해서 플래시 메모리에는 페이지 버퍼 회로가 제공된다. 잘 알려진 바와 같이, 낸드 플래시 메모리의 메모리 셀은 F-N 터널링 전류(Fowler-Nordheim tunneling current)를 이용하여 소거 및 프로그램된다. 낸드 플래시 EEPROM의 소거 및 프로그램 방법들은 미국특허번호 제5473563호에 "NONVOLATILE SEMICONDUCTOR MEMORY"라는 제목으로, 미국특허번호 제5696717호에 "NONVOLATILE INTEGRATED CIRCUIT MEMORY DEVICES HAVING ADJUSTABLE ERASE/PROGRAM THRESHOLD VOLTAGE VERIFICATION CAPABILITY"라는 제목으로 각각 게재되어 있으며, 이 출원의 레퍼런스로 포함된다.
낸드 플래시 메모리는 각 셀들에 1-비트 데이터를 저장할 수 있는 싱글 레벨 셀(Single Level Cell) 낸드 플래시 메모리 및 각 셀들에 복수의 비트를 저장할 수 있는 멀티 레벨 셀(Multi Level Cell) 낸드 플래시 메모리로 구분된다. 메모리 셀들 각각이 2-비트 데이터를 저장할 수 있을 경우, 각 메모리 셀에 2-비트 데이터를 저장하기 위한 페이지 버퍼 회로는 1-비트 데이터를 저장하기 위한 페이지 버퍼 회로와 다르게 설계되어야 한다. 잘 알려진 바와 같이, 1-비트 데이터는 하나의 래치를 갖는 페이지 버퍼 회로에 의해서 메모리 셀에 저장되는 반면에, 2-비트 데이터는 2개의 래치들을 갖는 페이지 버퍼 회로에 의해서 메모리 셀에 저장된다.
2-비트 데이터를 저장하기 위한 예시적인 페이지 버퍼 회로들이 미국특허번호 제5768188호에 "MULTI - STATE NON - VOLATILE SEMICONDUCTOR MEMORY AND METHOD FOR DRVING THE SAME"라는 제목으로, 미국특허번호 제5862074호에 "INTEGRATED CIRCUIT MEMORY DEVICES HAVING RECONFIGURABLE NONVOLATILE MULTI - BIT MEMORY CELLS THEREIN AND METHODS OF OPERATING SAME"라는 제목으로, 미국특허번호 제5966326호에 "NONVOLATILE SEMICONDUCTOR MEMORY EQUIPPED WITH SINGLE BIT AND MULTI-BIT CELLS"라는 제목으로, 그리고 미국특허번호 제5982663호에 "NONVOLATILE SEMICONDUCTOR MEMORY PERFORMING SINGLE BIT AND MULTI - BIT OPERATIONS"라는 제목으로 각각 게재되어 있으며, 이 출원의 레퍼런스로 포함된다.
앞서 언급된 특허들은 2개의 데이터 비트들을 모두 페이지 버퍼에 로딩한 상태에서 멀티-비트 프로그램 동작을 수행하도록 구현되어 있다. 이에 반해서, 2개의 데이터 비트들 중 하나의 데이터 비트(이하, "LSB 데이터 비트"라 칭함)가 먼저 프로그램되고, 그 다음에 나머지 데이터 비트(이하, "MSB 데이터 비트"라 칭함)가 프로그램될 수 있다. 이하, 전자는 LSB 프로그램 동작이라 칭하고, 후자는 MSB 프로그램 동작이라 칭한다. 일반적으로, LSB 프로그램 동작은 단일-비트 데이터를 프로그램하는 것과 거의 유사하게 수행되는 반면에, MSB 프로그램 동작은 LSB 프로그램 동작과 다르게 수행된다. 좀 더 구체적인 설명은 다음과 같다.
예를 들어, 하나의 메모리 셀에 2 비트 데이터를 저장할 수 있고, 메모리 셀은 데이터 '11', 데이터 '01', 데이터'10', 및 데이터 '00'에 대응하는 4개의 문턱 전압 산포들 중 어느 하나에 속하는 문턱 전압을 갖는다. 즉, 메모리 셀은 데이터 '11', 데이터 '01', 데이터'10', 및 데이터 '00' 중 어느 하나를 갖도록 프로그램된다. 데이터 '11'은 소거된 상태(erased state)이고, 데이터'01'의 문턱 전압은 데이터 '10'의 문턱 전압보다 낮고, 데이터 '10'의 문턱 전압은 데이터 '00'보다 낮다. 이러한 가정에 따르면, LSB 프로그램 동작 동안, 데이터 '11'에 대응하는 문턱 전압 분포에 속하는 메모리 셀들은 데이터 '10'에 대응하는 문턱 전압 분포를 갖도록 로드된 데이터에 따라 선택적으로 프로그램될 것이다. 이때, 데이터 '10'을 저장하도록 프로그램되는 메모리 셀들의 프로그램 조건은 문턱 전압 분포가 MSB 프로그램 동작에 따른 다른 문턱 전압분포들보다 넓게 형성되도록 결정될 것이다. 예를들면, LSB 프로그램 동작의 프로그램 전압 증가분은 MSB 프로그램 동작의 프로그램 전압 증가분보다 크게 설정될 것이다. 이 분야의 통상적인 지식을 습득한 자들에게 잘 알려진 바와 같이, 프로그램 전압 증가분이 커짐에 따라, 문턱 전압 분포는 넓게 형성된다.
MSB 프로그램 동작 동안, 데이터 '10'에 대응하는 문턱 전압 분포에 속하는 메모리 셀들은 데이터 '00'에 대응하는 문턱 전압 분포를 갖도록 이전에 프로그램된 데이터 및 로드된 프로그램 데이터에 따라 선택적으로 프로그램될 것이다. 그 다음에, 데이터 '10'에 대응하는 문턱 전압 분포에 속하는 메모리 셀들은 데이터 '10'에 대응하는 문턱 전압 분포를 갖도록 이전에 프로그램된 데이터에 따라 선택적으로 프로그램될 것이다. 마지막으로, MSB 프로그램 동작 동안, 데이터 '11'에 대응하는 문턱 전압 분포에 속하는 메모리 셀들은 데이터 '01'에 대응하는 문턱 전압 분포를 갖도록 프로그램될 데이터(예를 들면, 데이터 '0')에 따라 선택적으로 프로그램될 것이다. 이러한 방식으로 MSB 데이터를 프로그램하는 경우, 데이터 '00' 및 데이터 '01'에 대응하는 문턱 전압 분포들을 갖도록 프로그램하기 위해서 이전에 프로그램된 데이터와 현재 프로그램될 데이터를 비교하여야 한다.
앞서 설명을 참조하면, MSB 데이터를 프로그램하는 경우, 1-비트 데이터를 기준으로 2개의 문턱 전압 분포들 중 어느 하나가 선택되어야 한다. 이는 이전에 프로그램된 데이터(즉, LSB 데이터)와 현재 프로그램될 데이터(즉, MSB 데이터)가 비교되어야 함을 의미한다. 다시 말해서, LSB 프로그램 동작 동안 메모리 셀의 문턱 전압은 프로그램될 데이터에 따라 하나의 문턱 전압 분포로 이동되는 반면에, MSB 프로그램 동작 동안 메모리 셀의 문턱 전압은 프로그램될 데이터 및 이전의 프로그램 데이터에 따라 2개의 문턱 전압 분포들 중 어느 하나로 이동된다. 이러한 이유로, 멀티-비트 플래시 메모리 장치의 페이지 버퍼에는 이전에 프로그램된 데이터와 현재 프로그램될 데이터를 각각 저장하기 위한 2개의 래치들이 제공되어야 한다.
또한, 이러한 구조의 플래시 메모리 장치는 빠른 속도의 프로그램 동작을 요구한다. 그러나, 멀티-비트 플래시 메모리 장치는 프로그램 동작 완료 후 다음에 프로그램될 데이터(Next programmed data)를 호스트로부터 전송받는 동안 프로그램 동작을 중지한다. 예를 들어, 멀티-비트 플래시 메모리 장치는 선택된 셀들에 대한 프로그램 동작 완료 후, 인터럽트 신호를 발생하고, 발생된 인터럽트 신호를 호스트에 제공한다. 호스트는 인터럽트 신호에 응답하여 다음에 프로그램될 데이터 및 쓰기 명령을 멀티-비트 플래시 메모리 장치로 전송한다. 멀티-비트 플래시 메모리 장치는 인터럽트 신호가 활성화된 구간 동안, 호스트로부터 다음에 프로그램될 데이터 및 쓰기 명령을 전송받는다. 호스트로부터 프로그램될 데이터 및 쓰기 명령을 전송받는 동안 멀티-비트 플래시 메모리 장치의 프로그램 동작은 중지된다. 멀티-비트 플래시 메모리 장치는 호스트로부터 다음에 프로그램될 데이터 및 쓰기 명령을 전송받은 후, 다음에 선택된 셀들에 대한 프로그램 동작을 수행한다.
하나의 메모리 셀에 2-비트 데이터를 프로그램하기 위해서 멀티-비트 플래시 메모리 장치에는 2개의 래치들을 구비한 페이지 버퍼가 필연적으로 제공되어야 하는 문제점이 있다. 또한, 선택된 셀들에 대한 프로그램 동작 완료후, 호스트로부터 프로그램될 데이터 및 쓰기 명령을 전송받는 동안 멀티-비트 플래시 메모리 장치의 프로그램 동작이 중지되기 때문에 프로그램 시간이 지연되는 문제점이 있다.
본 발명의 특징에 따른 멀티-비트 플래시 메모리 장치는: 메모리 셀들의 어레이와; 각각이 단일의 래치 구조를 갖고, 로딩된 데이터에 따라 상기 메모리 셀들에 대한 기입 동작을 수행하는 페이지 버퍼들을 포함하는 페이지 버퍼 블록과; 멀티-비트 프로그램 동작시 외부로부터 제공된 프로그램 데이터를 저장하는 버퍼 램과; 그리고 상기 멀티-비트 프로그램 동작시 이전에 프로그램된 데이터와 현재 프로그램될 데이터를 비교하고자 할 때마다 상기 버퍼 램에 저장된 프로그램 데이터가 상기 페이지 버퍼 블록으로 로드되도록 상기 페이지 버퍼 그룹과 상기 버퍼 램을 제어하는 제어 로직을 포함하고, 상기 제어 로직은 상기 멀티-비트 프로그램 동작이 완료되기 전에 다음에 프로그램될 데이터가 상기 버퍼램에 저장되도록 제어한다.
이 실시 예에 있어서, 상기 멀티-비트 프로그램 동작은 LSB 프로그램 동작과 MSB 프로그램 동작을 포함하며, 상기 MSB 프로그램 동작은 복수의 프로그램 동작들 을 포함한다.
이 실시 예에 있어서, 상기 복수의 프로그램 동작들 중 마지막 프로그램 단계에서 상기 버퍼 램의 프로그램 데이터가 상기 페이지 버퍼 블록에 로드된 후 상기 제어 로직은 버퍼램 액세스 가능 신호를 외부에 전송한다.
이 실시 예에 있어서, 상기 버퍼램 액세스 가능 신호가 외부에 전송될 경우, 상기 버퍼램은 상기 제어 로직의 제어에 의해 외부로부터 제공받은 다음에 프로그램될 데이터를 저장한다.
이 실시 예에 있어서, 상기 버퍼램 액세스 가능 신호가 외부에 전송될 경우, 상기 제어 로직은 외부로부터 쓰기 명령을 제공받고, 상기 제공받은 쓰기 명령에 응답해서 다음 멀티-비트 프로그램 동작을 수행한다.
이 실시 예에 있어서, 상기 메모리 셀들 각각은 상기 제어 로직의 제어에 따라 '11', '01', 10', '00' 상태들 중 어느 하나를 갖도록 프로그램되고, 상기 복수의 프로그램 동작들은 제 1 내지 제 3 프로그램 동작들로 구성되며, 상기 제 3 프로그램 동작은 마지막 프로그램 단계이다.
이 실시 예에 있어서, 상기 메모리 셀들은 상기 제 1 내지 제 3 프로그램 동작들을 통해 '00', '10', 및 '01' 상태들 중 어느 하나를 갖도록 프로그램된다.
이 실시 예에 있어서, 상기 메모리 셀들 각각은 상기 제어 로직의 제어에 따라 '11', '10', '00', '01' 상태들 중 어느 하나를 갖도록 프로그램되고, 상기 복수의 프로그램 동작들은 제 1 및 제 2 프로그램 동작들로 구성되며, 상기 제 2 프로그램 동작은 마지막 프로그램 단계이다.
이 실시 예에 있어서, 상기 메모리 셀들은 상기 제 1 및 제 2 프로그램 동작들을 통해 '00' 및 '01' 상태들 중 어느 하나를 갖도록 프로그램된다.
본 발명의 다른 특징에 따른 메모리 카드는: 단일의 래치 구조를 갖는 페이지 버퍼들의 페이지 버퍼 블록 및 행들과 열들로 배열된 메모리 셀들의 어레이를 구비한 낸드 플래시 메모리와; 그리고 멀티-비트 프로그램 동작시 외부로부터의 프로그램 데이터를 임시 저장하기 위한 버퍼 램을 포함하며, 상기 멀티-비트 프로그램 동작시 이전에 프로그램된 데이터와 현재 프로그램될 데이터를 비교하고자 할때마다 상기 버퍼 램에 저장된 프로그램 데이터가 상기 낸드 플래시 메모리의 페이지 버퍼 블록으로 로드되도록 상기 낸드 플래시 메모리를 제어하는 제어기를 포함하고, 상기 제어기는 상기 멀티-비트 프로그램 동작이 완료되기 전에 상기 낸드 플래시 메모리의 제어에 의해 다음에 프로그램될 데이터를 외부로부터 제공받는다.
이 실시 예에 있어서, 상기 외부로부터 제공받은 다음에 프로그램될 데이터는 상기 버퍼램에 저장된다.
이 실시 예에 있어서, 상기 멀티-비트 프로그램 동작은 LSB 프로그램 동작과 MSB 프로그램 동작을 포함하며, 상기 MSB 프로그램 동작은 복수의 프로그램 동작들을 포함한다.
이 실시 예에 있어서, 상기 복수의 프로그램 동작들 중 마지막 프로그램 단계에서 상기 버퍼 램의 프로그램 데이터가 상기 페이지 버퍼 블록에 로드된 후, 상기 제어기는 상기 낸드 플래시 메모리의 제어에 의해 상기 버퍼램 액세스 가능 신호를 외부에 전송한다.
이 실시 예에 있어서, 상기 버퍼램 액세스 가능 신호가 외부에 전송될 경우, 상기 제어기는 다음에 프로그램될 데이터를 외부로부터 제공받으며, 상기 외부로부터 제공된 데이터는 상기 제어기의 버퍼램에 저장된다.
이 실시 예에 있어서, 상기 버퍼램 액세스 가능 신호가 외부에 전송될 경우, 상기 제어기는 외부로부터 쓰기 명령을 제공받고, 상기 제공받은 쓰기 명령에 응답해서 다음 멀티-비트 프로그램 동작을 수행한다.
이 실시 예에 있어서, 상기 메모리 셀들 각각은 상기 제어 로직의 제어에 따라 '11', '01', 10', '00' 상태들 중 어느 하나를 갖도록 프로그램되고, 상기 복수의 프로그램 동작들은 제 1 내지 제 3 프로그램 동작들로 구성되며, 상기 제 3 프로그램 동작은 마지막 프로그램 단계이다.
이 실시 예에 있어서, 상기 메모리 셀들 각각은 상기 제어 로직의 제어에 따라 '11', '10', '00', '01' 상태들 중 어느 하나를 갖도록 프로그램되고, 상기 복수의 프로그램 동작들은 제 1 내지 제 2 프로그램 동작들로 구성되며, 상기 제 2 프로그램 동작은 마지막 프로그램 단계이다.
본 발명의 다른 특징에 따른 메모리 셀들의 어레이를 갖는 멀티-비트 플래시 메모리 장치의 멀티-비트 프로그램 방법은: (a) 멀티-비트 프로그램 동작시, 버퍼 램에 저장된 데이터를 페이지 버퍼 블록으로 로드하고, 상기 페이지 버퍼 블록에 로드된 데이터에 따라 상기 메모리 셀들에 대한 프로그램 동작을 수행하는 단계를 포함하며, 상기 (a) 단계는 (a-1) 프로그램된 데이터와 현재 프로그램될 데이터가 비교될 때마다 상기 버퍼 램에 저장된 프로그램 데이터가 상기 페이지 버퍼 블록으 로 로드되는 단계; 및 (a-2) 상기 멀티-비트 프로그램 동작이 완료되기 전에 외부로부터 제공되는, 다음에 프로그램될 데이터가 상기 버퍼램에 저장되는 단계를 포함한다.
이 실시 예에 있어서, 상기 멀티-비트 프로그램 동작은 LSB 프로그램 동작과 MSB 프로그램 동작을 포함하며, 상기 MSB 프로그램 동작은 복수의 프로그램 동작들을 포함한다.
이 실시 예에 있어서, 상기 복수의 프로그램 동작들 중 마지막 프로그램 단계에서 상기 버퍼 램으로부터 프로그램 데이터가 상기 페이지 버퍼 블록에 로드된 후, 상기 다음에 프로그램될 데이터가 상기 버퍼램에 저장된다.
이 실시 예에 있어서, 상기 메모리 셀들 각각은 상기 제어 로직의 제어에 따라 '11', '01', 10', '00' 상태들 중 어느 하나를 갖도록 프로그램되고, 상기 복수의 프로그램 동작들은 제 1 내지 제 3 프로그램 동작들로 구성되며, 상기 제 3 프로그램 동작은 마지막 프로그램 단계이다.
이 실시 예에 있어서, 상기 메모리 셀들은 상기 제 1 내지 제 3 프로그램 동작들을 통해 '00', '10', 및 '01' 상태들 중 어느 하나를 갖도록 프로그램된다.
이 실시 예에 있어서, 상기 메모리 셀들 각각은 상기 제어 로직의 제어에 따라 '11', '10', '00', '01' 상태들 중 어느 하나를 갖도록 프로그램되고, 상기 복수의 프로그램 동작들은 제 1 내지 제 2 프로그램 동작들로 구성되며, 상기 제 2 프로그램 동작은 마지막 프로그램 단계이다.
이 실시 예에 있어서, 상기 메모리 셀들은 상기 제 1 내지 제 2 프로그램 동 작들을 통해 '00' 및 '01' 상태들 중 어느 하나를 갖도록 프로그램된다.
본 발명에 따른 단일 래치 구조를 갖는 멀티-비트 플래시 메모리 장치는 단일의 래치 구조를 갖는 페이지 버퍼를 이용하여 2-비트 데이터를 프로그램하는 것이 가능하다.
또한, 본 발명에 따른 단일 래치 구조를 갖는 멀티-비트 플래시 메모리 장치는 외부로부터 데이터를 제공받는 동안 프로그램 동작이 중지되지 않으므로, 프로그램 성능을 향상시킬 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예에 대하여 상세히 설명한다.
도 1은 본 발명에 따른 멀티-비트 플래시 메모리 장치를 구비한 시스템을 보여주는 블록도이다.
도 1을 참조하면, 본 발명에 따른 멀티-비트 플래시 메모리 장치(1000)는 호스트(2000)와 잘 알려진 노어 인터페이스 방식으로 통신하도록 구성된다. 하지만, 멀티-비트 플래시 메모리 장치(1000)가 다른 인터페이스 방식(예를 들면, 낸드 인터페이스 방식)으로 호스트(2000)와 통신하도록 구성될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 본 발명에 따른 멀티-비트 플래시 메모리 장치(1000)는 원낸드 플래시 메모리 장치(OneNAND flash memory)로 구현될 수 있다. 하지만, 본 발명에 따른 멀티-비트 플래시 메모리 장치(1000)가 여기에 개시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
본 발명에 따른 멀티-비트 플래시 메모리 장치(1000)는 메모리 셀 어레이(100), 페이지 버퍼 블록(200), 버퍼 램(300), 그리고 제어 로직(400)을 포함한다. 메모리 셀 어레이(100)는, 비록 도면에는 도시되지 않았지만, 복수의 메모리 블록들을 포함하며, 각 메모리 블록은 워드 라인들(또는 페이지들)과 비트 라인들의 교차 영역들에 배열된 메모리 셀들을 포함한다. 일 예로서, 본 발명의 멀티-비트 플래시 메모리 장치(1000)에 따르면, 각 메모리 블록의 메모리 셀들은 스트링 구조를 갖도록 구성될 것이다. 메모리 셀들의 스트링 구조는 앞서 언급된 특허들에 상세히 설명되어 있으며, 그것에 대한 설명은 그러므로 생략될 것이다.
페이지 버퍼 블록(200)은 제어 로직(400)에 의해서 제어되며, 동작 모드에 따라 기입 드라이버로서 또는 감지 증폭기로서 동작한다. 예를 들면, 페이지 버퍼 블록(200)은 읽기 동작 모드에서 감지 증폭기로서 그리고 프로그램 동작 모드에서 기입 드라이버로서 동작한다. 페이지 버퍼 블록(200)은 비트 라인들에 각각 대응하는 또는 비트 라인 쌍들에 각각 대응하는 복수의 페이지 버퍼들(PB)을 포함한다. 각 페이지 버퍼(PB)는 단일의 래치를 가지며, 도 2에 도시된 바와 같이 구성될 것이다. 하지만, 본 발명에 따른 페이지 버퍼 구조가 다양하게 변경될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 이러한 경우도 마찬가지로, 페이지 버퍼(PB)는 단일의 래치 구조(즉, 하나의 래치)를 갖도록 구현될 것이다.
계속해서 도 1을 참조하면, 버퍼 램(300)은 제어 로직(400)에 의해서 제어되며, 호스트(2000)로부터 제공되는 데이터 또는 페이지 버퍼 블록(200)으로부터 제 공되는 데이터를 임시 저장한다. 버퍼 램(300)은, 바람직하게, 에스램으로 구현될 것이다. 하지만, 버퍼 램(300)이 디램과 같은 메모리로 구현될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 제어 로직(400)은 멀티-비트 플래시 메모리 장치(1000)의 전반적인 동작을 제어하도록 구성될 것이다. 예를 들면, 호스트(2000)로부터 프로그램 동작이 요청될 때, 제어 로직(400)은 멀티-비트 프로그램 동작이 수행되도록 페이지 버퍼 블록(200)과 버퍼 램(300)을 제어할 것이다. 특히, MSB 데이터가 프로그램되는 동안, 제어 로직(300)은 버퍼 램(300)에 저장된 데이터가 페이지 버퍼 블록(200)으로 재로드(reload)되도록 페이지 버퍼 블록(200)과 버퍼 램(300)을 제어할 것이다. 이는 이후 상세히 설명될 것이다.
또한, 제어 로직(400)은 프로그램 동작이 완료되기 전, 다음에 프로그램될 데이터(Next programmed data) 및 쓰기 명령을 미리 호스트(2000)로부터 제공받기 위해, 인터럽트 신호를 호스트(2000)로 전송한다. 호스트(2000)는 인터럽트 신호에 응답해서 다음에 프로그램될 데이터 및 쓰기 명령을 멀티-비트 플래시 메모리 장치(1000)에 제공한다. 멀티-비트 플래시 메모리 장치(1000)는 프로그램 동작완료 후, 호스트(2000)로부터 제공받은 다음에 프로그램될 데이터 및 쓰기 명령에 따라서 다음 프로그램 동작을 수행한다. 따라서, 프로그램 동작은 중지되지 않는다. 이는 이후 상세히 설명될 것이다.
상술한 멀티-비트 프로그램 제어 방식에 의하면, 듀얼 래치 구조(dual latch structure) 대신 단일의 래치 구조(single latch structure)를 갖는 페이지 버퍼 블록(200)을 이용하여 멀티-비트 데이터(즉, 2-비트 데이터)를 메모리 셀 어레이(100)에 저장하는 것이 가능하다. 또한, 멀티-비트 플래시 메모리 장치(1000)는 프로그램 동작이 완료되기 전, 다음에 프로그램될 데이터 및 쓰기 명령을 미리 호스트로(2000)부터 제공받는다. 따라서, 프로그램 동작의 중지 없이 다음 프로그램 동작이 수행되므로, 멀티-비트 플래시 메모리 장치(1000)의 프로그램 속도는 빨라진다. 그 결과, 멀티-비트 플래시 메모리 장치(1000)의 프로그램 성능은 향상된다.
도 3은 본 발명에 따른 멀티-비트 플래시 메모리 장치의 멀티-비트 프로그램 동작을 개략적으로 설명하기 위한 흐름도이다.
도 3을 참조하면, 호스트(2000)로부터 프로그램 동작이 요청될 때, 먼저, 멀티-비트 플래시 메모리 장치(1000)는 요청된 프로그램 동작이 LSB 프로그램 동작인 지 아니면 MSB 프로그램 동작인 지의 여부를 판별한다(S100). 만약 요청된 프로그램 동작이 LSB 프로그램 동작일 때, 멀티-비트 플래시 메모리 장치(1000)는 단일-비트 프로그램 동작과 유사한 방식으로 LSB 프로그램 동작을 수행할 것이다(S120).
일반적으로, 도 4에 도시된 바와 같이, 프로그램 동작은 선택된 메모리 셀들을 프로그램하는 단계(S121); 프로그램된 메모리 셀들이 요구되는 문턱 전압을 갖는 지의 여부를 판별하는 단계(S122); 현재의 프로그램 루프가 최대 프로그램 루프인 지의 여부를 판별하는 단계(S123); 현재의 프로그램 루프가 최대 프로그램 루프가 아닐 때, 선택된 메모리 셀들이 모두 프로그램 패스되었는 지의 여부를 판별하는 단계(S124); 그리고 선택된 메모리 셀들이 모두 프로그램 패스되지 않을 때, 프로그램 전압을 증가시키는 단계(S125)를 포함할 것이다. 하지만, 프로그램 동작이 도 4에 도시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
다시 도 3을 참조하면, 만약 호스트(2000)에 의해서 요청된 프로그램 동작이 MSB 프로그램 동작이면, 멀티-비트 플래시 메모리 장치(1000)는 MSB 프로그램 동작을 수행할 것이다(S140). 특히, MSB 프로그램 동작이 수행되는 동안, 이전에 프로그램된 데이터와 현재 프로그램될 데이터의 비교가 요구될 때마다, 버퍼 램(300)에 저장된 데이터는 제어 로직(400)의 제어에 따라 페이지 버퍼 블록(200)으로 로드될 것이다. MSB 프로그램 동작 동안 MSB 데이터를 재로드함으로써 단일의 래치 구조를 갖는 페이지 버퍼를 이용하여 멀티-비트 데이터(즉, 2-비트 데이터)를 프로그램하는 하는 것이 가능하다. 도 3에 도시되지 않았으나, MSB 프로그램 동작의 마지막 프로그램 단계에서 버퍼램(300)으로부터 페이지 버퍼 블록(200)에 데이터가 재로드된 후, 멀티 비트 플래시 메모리 장치(1000)는 호스트(2000)로부터 다음에 프로그램될 데이터 및 쓰기 명령을 미리 제공받는다. 따라서, 멀티-비트 플래시 메모리 장치(1000)는 프로그램 동작의 중지 없이 다음 프로그램 동작을 수행하는 것이 가능하다. 이는 이하 상세히 설명될 것이다.
도 5는 본 발명의 제 1 실시예에 따른 멀티-비트 프로그램 방법을 설명하기 위한 흐름도이다.
본 발명의 제 1 실시예에 따른 멀티-비트 프로그램 방법은 데이터 '11', '01', '10' 그리고 '00' 상태들 중 어느 하나에 대응하는 문턱 전압 산포를 갖도록 메모리 셀들을 프로그램하기 위한 것이다. 먼저, 멀티-비트 프로그램 방법은 LSB 프로그램 동작과 MSB 프로그램 동작을 포함한다. LSB 프로그램 동작과 MSB 프로그 램 동작은 연속적으로 수행되거나 비연속적으로 수행될 수 있다.
도 5를 참조하면, 프로그램 동작이 호스트(2000)로부터 요청될 때, 멀티-비트 플래시 메모리 장치(1000)는 LSB 프로그램 동작과 MSB 프로그램 동작 중 어느 것이 요구되는 지의 여부를 판별한다(S210). LSB 프로그램 동작이 요구될 때, 버퍼 램(300)에 저장된 LSB 데이터는 제어 로직(400)의 제어에 따라 페이지 버퍼 블록(200)으로 전송될 것이다. 즉, LSB 데이터가 페이지 버퍼 블록(200)으로 로드된다(S220). 그 다음에, 로드된 LSB 데이터는 메모리 셀 어레이(100)에 프로그램될 것이다(S230). 비록 도면에는 도시되지 않았지만, 데이터 로드 단계(S220) 이전에 페이지 버퍼를 초기화하는 동작이 수행될 것이다.
이에 반해서, MSB 프로그램 동작이 요구될 때, 제 1 프로그램 단계(S240), 제 2 프로그램 단계(S250), 그리고 제 3 프로그램 단계(S260)가 제어 로직(400)의 제어에 따라 순차적으로 수행될 것이다. 제 1 프로그램 단계(S240), 제 2 프로그램 단계(S250), 그리고 제 3 프로그램 단계(S260)의 실행 순서는 여기에 개시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. MSB 프로그램 동작의 마지막 프로그램 단계는 데이터 전송 단계를 포함한다. 제 1 실시예에 따른 멀티-비트 프로그램 방법에서 제 3 프로그램 단계(S260)가 MSB 프로그램 동작의 마지막 프로그램 단계이다. 따라서, 제 3 프로그램 단계(S260)는 데이터 전송 단계를 포함할 것이다.
제 1 프로그램 단계(S240)는 프리-읽기 단계(S241), 데이터 로드 단계(S242), 그리고 00 프로그램 단계(S243)로 구성되고, 제 2 프로그램 단계(S250) 는 제 1 프리-읽기 단계(S251), 제 2 프리-읽기 단계(S252), 그리고 10 프로그램 단계(S253)로 구성되며, 제 3 프로그램 단계(S260)는 데이터 로드 단계(S261), 프리-읽기 단계(S262), 01 프로그램 단계(S263), 그리고 데이터 전송 단계(S264)로 구성된다.
비록 도면에는 도시되지 않았지만, 제 1 내지 제 3 프로그램 단계들(S240, S250, S260) 각각 이전에 페이지 버퍼를 초기화하는 동작이 수행될 것이다. 여기서, 단일 래치 구조를 갖는 페이지 버퍼를 이용하여 멀티-비트 데이터를 프로그램하기 위해서, 제 1 및 제 3 프로그램 단계들 각각에서는 MSB 데이터가 버퍼 램(300)에서 페이지 버퍼 블록(200)으로 로드되며, 이는 이하 좀 더 구체적으로 설명될 것이다. 또한, 마지막 프로그램 단계인 제 3 프로그램 단계(S260)에서 MSB 데이터가 페이지 버퍼 블록(200)에 로드된 후(S261), 데이터 전송 단계(S264)가 수행된다. 데이터 전송 단계(S264)에서 멀티-비트 플래시 메모리 장치(1000)는 호스트(2000)로부터 다음에 프로그램될 데이터 및 쓰기 명령을 제공받는다. 이는 이하 좀 더 구체적으로 설명될 것이다.
도 6a 내지 도 6b는 본 발명의 제 1 실시예에 따른 멀티-비트 프로그램 동작을 수행할 때 상태들의 천이를 보여주는 도면이며, 도 7a 내지 도 7d는 본 발명의 멀티-비트 프로그램 방법에 따라 MSB 데이터를 프로그램할 때 페이지 버퍼의 데이터 흐름을 보여주는 도면이다. 이하, 본 발명의 제 1 실시예에 따른 단일 래치 구조를 갖는 페이지 버퍼를 이용한 멀티-비트 프로그램 방법이 참조 도면들에 의거하여 이하 상세히 설명될 것이다.
LSB 프로그램 동작은 크게 초기화 구간, 데이터 로딩 구간, 그리고 프로그램 구간으로 구분될 수 있다. 초기화 구간 동안, 도 7a를 참조하면, 페이지 버퍼(PB)의 래치(LAT)는 ND1 노드가 논리 '0'로 설정되고 ND2 노드가 논리 '1'로 설정되도록 초기화된다. 이는 신호 경로(①)를 형성함으로써 달성될 것이다. 즉, 제어 로직(400)의 제어하에 페이지 버퍼(PB)의 트랜지스터들(M2, M3, M5, M6)을 턴 온시킴으로써 래치(LAT)를 초기화시키는 것이 즉, 신호 경로(①)를 형성하는 것이 가능하다. 래치(LAT)의 초기화 상태는 프로그램 동작 동안 비트 라인으로 전원 전압이 공급되는 프로그램 금지 상태에 대응한다. 이에 반해서, 래치(LAT)의 ND1 및 ND2 노드들이 각각 논리 '1' 및 논리 '0'로 설정된 상태(또는 인버터(INV3)의 출력이 논리 '0'으로 설정된 상태)는 프로그램 동작 동안 비트 라인으로 접지 전압이 공급되는 프로그램 상태에 대응한다. 데이터 로드 구간(도 5의 S220) 동안, 프로그램될 LSB 데이터가 신호 경로(②)를 통해 래치(LAT)에 로드된다. 예를 들면, 프로그램될 LSB 데이터가 '0'인 경우, 제어 신호(IRD)가 하이로 활성화될 것이다. 이때, 제어 로직(400)의 제어하에 NMOS 트랜지스터들(M5, M6)이 턴 온된다. '데이터 '0'가 로드되면, ND1 및 ND2 노드들은 논리 '1' 및 논리 '0'로 각각 설정될 것이다. 프로그램될 LSB 데이터가 '1'인 경우, 제어 신호들(RD, IRD)가 로우로 비활성화되며, 그 결과 페이지 버퍼(PB)의 래치(LAT)는 초기화 상태로 유지될 것이다.
일단 LSB 데이터가 페이지 버퍼(PB)에 로드되면, 로드된 LSB 데이터에 따라 메모리 셀이 프로그램될 것이다(③). LSB 프로그램 동작(도 5의 S230) 동안, 메모리 셀의 문턱 전압은 로드된 데이터에 따라 도 6a의 문턱 전압 분포(102) 내로 이 동될 것이다. 프로그램 동작은 앞서 언급된 절차(도 4 참조)에 따라 수행될 것이다. 도 6a에서, 프로그램 조건은 문턱 전압 분포(102)가 다른 문턱 전압 분포들(도 6a 및 도 6b 참조)보다 넓게 형성되도록 결정될 것이다. 예를 들면, LSB 프로그램 동작의 프로그램 전압 증가분은 MSB 프로그램 동작의 프로그램 전압 증가분보다 크게 설정될 것이다. 이 분야의 통상적인 지식을 습득한 자들에게 잘 알려진 바와 같이, 프로그램 전압 증가분이 커짐에 따라, 문턱 전압 분포는 넓게 형성된다.
LSB 프로그램 동작 다음에 수행되는 MSB 프로그램 동작은 크게 00 프로그램 동작, 10 프로그램 동작, 그리고 01 프로그램 동작을 포함한다. 먼저, 00 프로그램 동작은 초기화 구간, 프리-읽기(pre-read) 구간, 데이터 로드 구간, 그리고 00 프로그램 구간으로 구분된다. 00 프로그램 동작 동안, 문턱 전압 분포(102)에 속하는 메모리 셀은 문턱 전압 분포(103)에 속하는 문턱 전압을 갖도록 선택적으로 프로그램될 것이다. 좀 더 구체적으로 설명하면 다음과 같다.
초기화 구간 동안, 도 7a에서 설명된 것과 동일한 방식으로 페이지 버퍼(PB)가 초기화된다. 프리-읽기 구간 동안, 워드 라인으로 읽기 전압(VR1, 도 8b 참조)이 인가된 상태에서, 메모리 셀의 상태가 신호 경로들(①, ②)을 통해 감지된다. 프리-읽기 구간에서 비트 라인(BL)이 로우 레벨로 유지되는 경우, 메모리 셀은 온 셀(VR1 전압보다 낮은 문턱 전압을 가짐)로서 판별되며, 그 결과 래치(LAT)는 초기화 상태로 유지된다. 이에 반해서, 프리-읽기 구간에서 비트 라인(BL)이 하이 레벨로 유지되는 경우, 메모리 셀은 오프 셀(VR1 전압보다 높은 문턱 전압을 가짐)로서 판별되며, 그 결과 래치(LAT)의 ND2 노드는 초기화 상태(즉, 논리 '1')에서 논리 '0'으로 변경된다.
일단 프리-읽기 동작이 완료되면, 제어 로직(400)의 제어에 따라 버퍼 램(300)에 저장된 MSB 데이터가 페이지 버퍼(200)로 로드된다(③). 데이터 로드 구간(도 5의 S242) 동안, 제어 신호(RD)는 MSB 데이터가 '1'일 때 하이로 활성화되는 반면에, MSB 데이터가 '0'일 때 제어 신호들(RD, IRD)은 로우로 유지될 것이다. MSB 데이터가 '1'일 때만 제어 신호(RD)가 하이로 활성화되기 때문에, 온 셀에 대응하는 래치 상태는 그대로 유지되는 반면에, 오프 셀에 대응하는 래치 상태는 로드된 데이터에 따라 선택적으로 변경될 것이다. 즉, 오프 셀에 대응하는 래치 상태는 로드된 데이터가 '1'일 때 변경되고 로드된 데이터가 '0'일 때 그대로 유지된다. 따라서, 프리-읽기 동작에서 메모리 셀이 오프 셀로 판별되고 로드된 MSB 데이터가 '0'일 때, 래치(LAT)의 ND1 및 ND2 노드들은 각각 논리 '1'과 논리 '0'로 설정된다. 이러한 조건 하에서 00 프로그램 동작이 수행될 것이다. 00 프로그램 동작(도 5의 S243)은 검증 읽기 동작시 워드 라인으로 검증 읽기 전압(VFY3)이 공급된다는 점을 제외하면 앞서 언급된 절차(도 4 참조)에 따라 수행될 것이다(④).
00 프로그램 동작 다음에 10 프로그램 동작이 수행될 것이다. 10 프로그램 동작은 제 1 프리-읽기 구간, 제 2 프리-읽기 구간, 그리고 10 프로그램 구간으로 구분된다.
먼저, 초기화 구간 동안, 도 7a에서 설명된 것과 동일한 방식으로 페이지 버퍼(PB)가 초기화된다. 제 1 프리-읽기 구간(도 5의 S251) 동안, 워드 라인으로 읽기 전압(VR1, 도 6b 참조)이 인가된 상태에서, 메모리 셀의 상태가 신호 경로들 (①, ②)을 통해 감지된다. 제 1 프리-읽기 구간에서 비트 라인(BL)이 로우 레벨로 유지되는 경우, 메모리 셀은 온 셀(VR1 전압보다 낮은 문턱 전압을 가짐)로서 판별되며, 그 결과 래치(LAT)는 초기화 상태로 유지된다. 이에 반해서, 제 1 프리-읽기 구간에서 비트 라인(BL)이 하이 레벨로 유지되는 경우, 메모리 셀은 오프 셀(VR1 전압보다 높은 문턱 전압을 가짐)로서 판별되며, 그 결과 래치(LAT)의 ND2 노드는 초기화 상태(즉, 논리 '1')에서 논리 '0'으로 변경된다.
제 2 프리-읽기 구간(도 5의 S252) 동안, 워드 라인으로 읽기 전압(VFY2, 도 6b 참조)이 인가된 상태에서, 메모리 셀의 상태가 신호 경로들(③, ④)을 통해 감지된다. 제 2 프리-읽기 구간에서 비트 라인(BL)이 로우 레벨로 유지되는 경우, 메모리 셀은 온 셀(VFY2 전압보다 낮은 문턱 전압을 가짐)로서 판별되며, 그 결과 신호 경로(④)가 형성되지 않는다. 이에 반해서, 제 2 프리-읽기 구간에서 비트 라인(BL)이 하이 레벨로 유지되는 경우, 메모리 셀은 오프 셀(VFY2 전압보다 높은 문턱 전압을 가짐)로서 판별되며, 그 결과 신호 경로(④)가 형성된다. 즉, 래치(LAT)의 ND1 노드가 논리 '1'에서 논리 '0'으로 변경된다. 따라서, 메모리 셀이 제 1 프리-읽기 구간에서 오프 셀로 판별되고 제 2 프리-읽기 구간에서 온 셀로 판별될 때, 래치(LAT)의 ND1 및 ND2 노드들은 각각 논리 '1'과 논리 '0'로 설정된다. 이러한 조건 하에서 10 프로그램 동작이 수행될 것이다. 10 프로그램 동작은 검증 읽기 동작시 워드 라인으로 검증 읽기 전압(VFY2)이 공급된다는 점을 제외하면 앞서 언급된 절차(도 4 참조)에 따라 수행될 것이다(⑤).
10 프로그램 동작 다음에 01 프로그램 동작이 수행될 것이다. 01 프로그램 동작은 데이터 로드 구간, 프리-읽기 구간, 그리고 01 프로그램 구간으로 구분된다. MSB 프로그램 동작의 마지막 프로그램 단계는 01 프로그램 동작이다.
먼저, 초기화 구간 동안, 도 7a에서 설명된 것과 동일한 방식으로 페이지 버퍼(PB)가 초기화된다. 데이터 로드 구간(도 5의 S261) 동안, 제어 로직(400)의 제어에 따라 버퍼 램(300)에 저장된 MSB 데이터가 페이지 버퍼(200)로 재로드(reload)된다(①). 즉, 프로그램될 데이터가 신호 경로(①)를 통해 래치(LAT)에 로드된다. 예를 들면, 프로그램될 데이터가 '0'인 경우, 제어 신호(IRD)가 하이로 활성화될 것이다. 이때, 제어 로직(400)의 제어 하에 NMOS 트랜지스터들(M5, M6)이 턴 온된다. 프로그램될 데이터가 '1'인 경우, 제어 신호들(RD, IRD)은 로우로 유지될 것이다. 이때, 제어 로직(400)의 제어 하에 NMOS 트랜지스터들(M5, M6)이 턴 온된다. 전자의 경우, 래치(LAT)의 ND1 및 ND2 노드들은 각각 논리 '1'과 논리 '0'로 설정된다. 후자의 경우, 래치(LAT)의 ND1 및 ND2 노드들은 초기화 상태들 즉, 논리 '0'과 논리 '1'로 각각 설정된다.
MSB 데이터가 페이지 버퍼(PB)에 재로드된 후, 프리-읽기 동작 및 데이터 전송 동작이 수행된다. 데이터 전송 동작은 이하 도 8에서 상세히 설명되므로, 여기서는 프리-읽기 동작을 설명한다. 프리-읽기 동작을 설명하면, 워드 라인으로 읽기 전압(VR1, 도 8b 참조)이 인가된 상태에서, 메모리 셀의 상태가 신호 경로들(②, ③)을 통해 감지된다. 프리-읽기 구간에서 비트 라인(BL)이 로우 레벨로 유지되는 경우, 메모리 셀은 온 셀(VR1 전압보다 낮은 문턱 전압을 가짐)로서 판별되며, 그 결과 래치(LAT)는 이전 상태(ND1:H, ND2:L)로 유지된다. 이에 반해서, 프리-읽기 구간에서 비트 라인(BL)이 하이 레벨로 유지되는 경우, 메모리 셀은 오프 셀(VR1 전압보다 높은 문턱 전압을 가짐)로서 판별되며, 그 결과 신호 경로(③)가 형성될 것이다. 신호 경로(③)가 형성됨에 따라, 오프 셀로 판별된 메모리 셀에 대응하는 래치(LAT)의 ND1 및 ND2 노드들은 각각 논리 '0'와 논리 '1'로 설정된다. 따라서, 재로드된 MSB 데이터가 '0'이고 프리-읽기 동작에서 메모리 셀이 온 셀로 판별될 때, 래치(LAT)의 ND1 및 ND2 노드들은 각각 논리 '1'과 논리 '0'로 설정된다. 이러한 조건 하에서 01 프로그램 동작이 수행될 것이다. 01 프로그램 동작은 검증 읽기 동작시 워드 라인으로 검증 읽기 전압(VFY1)이 공급된다는 점을 제외하면 앞서 언급된 절차(도 4 참조)에 따라 수행될 것이다(④).
이상의 설명으로부터 알 수 있듯이, 프리-읽기 동작을 통해 읽혀진 이전에 프로그램된 데이터와 버퍼 램으로부터 재로드된 현재 프로그램될 데이터를 비교함으로써 단일의 래치 구조를 갖는 페이지 버퍼를 이용하여 2-비트 데이터를 프로그램하는 것이 가능하다.
도 8은 본 발명의 제 1 실시예에 따른 멀티-비트 프로그램 동작을 설명하기 위한 플래시 메모리 장치의 타이밍도이다. 도 8을 참조하여 데이터 전송 동작(도 5의 S264)을 설명하면 다음과 같다.
먼저, 제 3 프로그램 단계(S260)가 데이터 전송 단계(S264)를 포함하지 않을 경우, 멀티-비트 프로그램 동작(이하, 프로그램 동작이라 칭함)은 다음과 같다. 도 8에 도시된 바와 같이, MSB 프로그램의 마지막 프로그램 단계인 제 3 프로그램(S260) 수행 후, 프로그램 동작은 중지되며, 제어 로직(400)은 인터럽트 신호(INT)를 발생한다. 인터럽트 신호(INT)는 호스트(2000)에 제공된다. 호스트(2000)는 인터럽트 신호(INT)에 응답해서 다음에 프로그램될 데이터 및 쓰기 명령(DATA,CMD)을 멀티-비트 플래시 메모리 장치(1000)에 제공한다. 멀티-비트 플래시 메모리 장치(1000)는 호스트(2000)로부터 제공받은 데이터 및 쓰기 명령(DATA,CMD)에 따라서, 다음 프로그램 동작을 수행한다. 따라서, 도 8에 도시된 바와 같이, 프로그램 동작은 일정 구간(△t)동안 중지된다.
그러나, 도 5에 도시된 바와 같이, 본 발명에 따른 멀티-비트 프로그램 동작은 제 3 프로그램 단계(S260)를 포함한다. 제 3 프로그램 단계(S260)가 데이터 전송 단계(S264)를 포함할 경우, 멀티-비트 프로그램 동작은 다음과 같다. 도 8에 도시된 바와 같이, 제 3 프로그램 단계(S260)에서, 제어 로직(400)은 버퍼 램(300)에 저장된 MSB 데이터가 로딩 구간(tT2)동안 페이지 버퍼(PB)에 재로드된 후, 인터럽트 신호(INT)를 발생한다. 즉, 제어 로직(400)은 프로그램 동작이 완료된 후 인터럽트 신호(INT)를 발생하지 않고, 프로그램 동작이 완료되기 전, 마지막 프로그램 단계에서 데이터가 페이지 버퍼(PB)에 재 로드된 후 인터럽트 신호(INT)를 발생한다. 인터럽트 신호(INT)는 버퍼 램(300)이 액세스될 수 있음을 호스트(2000)에 알려주는 버퍼램 액세스 가능 신호이다.
제어 로직(400)은 인터럽트 신호(INT)를 호스트(2000)에 전송한다. 호스트(2000)는 전송받은 인터럽트 신호(INT)에 응답해서 다음에 프로그램될 데이터 및 쓰기 명령(DATA,CMD)을 멀티-비트 플래시 메모리 장치(1000)에 제공한다. 인터럽트 신호(INT)의 활성화 구간 동안 멀티-비트 플래시 메모리 장치(1000)는 호스트(2000)로부터 다음에 프로그램될 데이터 및 쓰기 명령(DATA,CMD)을 제공받는다. 이때, 도 5를 참조하면, 프로그램 동작은 중지되지 않고, 제 3 프로그램 단계(S260)의 프리 읽기 동작(S262) 및 01 프로그램 동작(S263)도 수행된다.
즉, 멀티-비트 플래시 메모리 장치(1000)는 프로그램 동작이 완료되기 전 마지막 프로그램 동작 동안, 호스트(2000)로부터 다음에 프로그램될 데이터 및 쓰기 명령(DATA,CMD)을 제공받는다. 호스트(2000)로부터 제공된 데이터는 제어 로직(400)의 제어에 의해, 버퍼램(300)에 저장된다. 프로그램 동작이 완료된 후, 제어 로직(400)는 호스트(2000)로부터 제공된 쓰기 명령에 응답해서 다음 프로그램 동작을 수행한다. 이후, 프로그램 동작은 전술한 바와 같다.
전술한 프로그램 동작을 참조하면, 멀티-비트 플래시 메모리 장치(1000)는 호스트로(2000)부터 다음에 프로그램될 데이터 및 명령을 전송받기 위해 프로그램 동작을 중지하지 않는다. 또한, 멀티-비트 플래시 메모리 장치(1000)는 프로그램 동작이 완료되기전, 미리 호스트(2000)로부터 다음에 프로그램될 데이터 및 명령을 제공받는다. 멀티-비트 플래시 메모리 장치(1000)는 프로그램 동작 완료후, 호스트(2000)로부터 미리 제공받은 다음에 프로그램될 데이터 및 쓰기 명령(DATA,CMD)에 따라서 다음 프로그램 동작을 수행한다. 따라서, 도 8에 도시된 바와 같이 프로그램 시간이 단축되므로, 멀티-비트 플래시 메모리 장치(1000)의 프로그램 속도는 빨라진다. 그 결과, 본 발명에 따른 멀티-비트 플래시 메모리 장치(1000)의 프로그램 성능은 향상된다.
도 9는 본 발명의 제 2 실시예에 따른 멀티-비트 프로그램 방법을 설명하기 위한 흐름도이다.
본 발명의 제 2 실시예에 따른 멀티-비트 프로그램 방법은 데이터 '11', '10', '00' 그리고 '01' 상태들 중 어느 하나에 대응하는 문턱 전압 산포를 갖도록 메모리 셀들을 프로그램하기 위한 것이다. 본 발명의 제 2 실시예에 따른 멀티-비트 프로그램 방법은 LSB 프로그램 동작과 MSB 프로그램 동작을 포함한다. LSB 프로그램 동작과 MSB 프로그램 동작은 연속적으로 수행되거나 비연속적으로 수행될 수 있다.
먼저, 도 9를 참조하면, 프로그램 동작이 호스트(2000)로부터 요청될 때, 멀티-비트 플래시 메모리 장치(1000)는 LSB 프로그램 동작과 MSB 프로그램 동작 중 어느 것이 요구되는 지의 여부를 판별한다(S310). LSB 프로그램 동작이 요구될 때, 버퍼 램(300)에 저장된 LSB 데이터는 제어 로직(400)의 제어에 따라 페이지 버퍼 블록(200)으로 전송될 것이다. 즉, LSB 데이터가 페이지 버퍼 블록(200)으로 로드된다(S320). 그 다음에, 로드된 LSB 데이터는 메모리 셀 어레이(100)에 프로그램될 것이다(S330). 비록 도면에는 도시되지 않았지만, 데이터 로드 단계(S320) 이전에 페이지 버퍼를 초기화하는 동작이 수행될 것이다.
이에 반해서, MSB 프로그램 동작이 요구될 때, 제 1 프로그램 단계(S340) 및 제 2 프로그램 단계(S350)가 제어 로직(400)의 제어에 따라 순차적으로 수행될 것이다. 제 1 프로그램 단계(S340) 및 제 2 프로그램 단계(S350)의 실행 순서는 여기에 개시된 것에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 예를 들면, 제 1 프로그램 단계는 제 2 프로그램 단계 다음에 실행될 수 있다. 제 1 프로그램 단계(S340)는 프리-읽기 단계(S342), 데이터 로드 단계(S344), 그리고 00 프로그램 단계(S346)로 구성된다. 제 2 프로그램 단계(S350)는 데이터 로드 단계(S352), 프리-읽기 단계(S354), 그리고 01 프로그램 단계(S356)로 구성된다. 전술한 설명을 참조하면, 제 2 실시예에 따른 멀티-비트 프로그램 방법에서 제 2 프로그램 단계(S350)가 MSB 프로그램 동작의 마지막 프로그램 단계이므로, 제 2 프로그램 단계(S350)는 데이터 전송 단계를 포함할 것이다.
비록 도면에는 도시되지 않았지만, 제 1 및 제 2 프로그램 단계들(S340, S350) 각각 이전에 페이지 버퍼를 초기화하는 동작이 수행될 것이다. 여기서, 단일 래치 구조를 갖는 페이지 버퍼를 이용하여 멀티-비트 데이터를 프로그램하기 위해서, 제 1 및 제 2 프로그램 단계들 각각에서는 MSB 데이터가 매번 로드되며, 이는 이하 좀 더 구체적으로 설명될 것이다. 또한, 마지막 프로그램 단계인 제 2 프로그램 단계(S350)에서 MSB 데이터가 페이지 버퍼 블록(200)에 로드된 후(S352), 데이터 전송 단계(S358)가 수행된다. 데이터 전송 단계(S358)에서 멀티-비트 플래시 메모리 장치(1000)는 호스트(2000)로부터 다음에 프로그램될 데이터 및 쓰기 명령을 제공받는다.
도 10a 및 도 10b는 본 발명의 제 2 실시예에 따른 멀티-비트 프로그램 동작을 수행할 때 상태들의 천이를 보여주는 도면이며, 도 11a 내지 도 11d는 본 발명의 멀티-비트 프로그램 방법에 따라 MSB 데이터를 프로그램할 때 페이지 버퍼의 데이터 흐름을 보여주는 도면이다. 이하, 본 발명의 제 2 실시예에 따른 멀티-비트 프로그램 방법이 참조 도면들에 의거하여 이하 상세히 설명될 것이다.
LSB 프로그램 동작은, 전술한 바와 같이, 크게 초기화 구간, 데이터 로딩 구간, 그리고 프로그램 구간으로 구분될 수 있다. 초기화 구간 동안, 도 11a를 참조하면, 페이지 버퍼(PB)의 래치(LAT)는 ND1 노드가 논리 '0'로 설정되고 ND2 노드가 논리 '1'로 설정되도록 초기화된다. 이는 신호 경로(①)를 형성함으로써 달성될 것이다. 즉, 제어 로직(400)의 제어하에 페이지 버퍼(PB)의 트랜지스터들(M2, M3, M5, M6)을 턴 온시킴으로써 래치(LAT)를 초기화시키는 것이 즉, 신호 경로(①)를 형성하는 것이 가능하다. 데이터 로드 구간 동안, 프로그램될 LSB 데이터가 신호 경로(②)를 통해 래치(LAT)에 로드된다. 예를 들면, 프로그램될 LSB 데이터가 '0'인 경우, 제어 신호(IRD)가 하이로 활성화될 것이다. 이때, 제어 로직(400)의 제어하에 NMOS 트랜지스터들(M5, M6)이 턴 온된다. 프로그램될 LSB 데이터가 '1'인 경우, 제어 신호들(RD, IRD)이 로우로 비활성화되며, 그 결과 페이지 버퍼(PB)의 래치(LAT)는 초기화 상태로 유지될 것이다. 일단 LSB 데이터가 페이지 버퍼(PB)에 로드되면, 로드된 LSB 데이터에 따라 메모리 셀이 프로그램될 것이다(③). LSB 프로그램 동작(도 9의 S320) 동안, 메모리 셀의 문턱 전압은 로드된 데이터에 따라 도 11a의 문턱 전압 분포(202) 내로 이동될 것이다. 프로그램 동작은 앞서 언급된 절차(도 4 참조)에 따라 수행될 것이다.
LSB 프로그램 동작 다음에 수행되는 MSB 프로그램 동작은 크게 00 프로그램 동작 및 01 프로그램 동작을 포함한다. 먼저, 00 프로그램 동작은 초기화 구간, 프리-읽기(pre-read) 구간, 데이터 로드 구간, 그리고 00 프로그램 구간으로 구분된다. 00 프로그램 동작 동안, 문턱 전압 분포(202)에 속하는 메모리 셀은 문턱 전압 분포(203)에 속하는 문턱 전압을 갖도록 선택적으로 프로그램될 것이다. 좀 더 구체적으로 설명하면 다음과 같다.
초기화 구간 동안, 도 7a에서 설명된 것과 동일한 방식으로 페이지 버퍼(PB)가 초기화된다. 프리-읽기 구간(도 9의 S342) 동안, 워드 라인으로 읽기 전압(VR1, 도 10b 참조)이 인가된 상태에서, 메모리 셀의 상태가 신호 경로들(①, ②)을 통해 감지된다. 프리-읽기 구간에서 비트 라인(BL)이 로우 레벨로 유지되는 경우, 메모리 셀은 온 셀(VR1 전압보다 낮은 문턱 전압을 가짐)로서 판별되며, 그 결과 신호 경로(②)는 형성되지 않는다. 이는 래치(LAT)가 초기화 상태로 유지됨을 의미한다. 이에 반해서, 프리-읽기 구간에서 비트 라인(BL)이 하이 레벨로 유지되는 경우, 메모리 셀은 오프 셀(VR1 전압보다 높은 문턱 전압을 가짐)로서 판별되며, 그 결과 신호 경로(②)가 형성된다. 이는 래치(LAT)의 ND2 노드가 초기화 상태(즉, 논리 '1')에서 논리 '0'으로 변경됨을 의미한다.
일단 프리-읽기 동작이 완료되면, 제어 로직(400)의 제어에 따라 버퍼 램(300)에 저장된 MSB 데이터가 페이지 버퍼(200)로 로드된다(③). 데이터 로드 구간(도 9의 S344) 동안, 제어 신호(RD)는 MSB 데이터가 '1'일 때 하이로 활성화되는 반면에, MSB 데이터가 '0'일 때 제어 신호들(RD, IRD)은 로우로 유지될 것이다. MSB 데이터가 '1'일 때만 제어 신호(RD)가 하이로 활성화되기 때문에, 온 셀에 대응하는 래치 상태는 그대로 유지되는 반면에, 오프 셀에 대응하는 래치 상태는 로드된 데이터에 따라 선택적으로 변경될 것이다. 즉, 오프 셀에 대응하는 래치 상태는 로드된 데이터가 '1'일 때 초기화 상태로 변경되고 로드된 데이터가 '0'일 때 이전 상태와 동일하게 유지된다. 따라서, 프리-읽기 동작에서 메모리 셀이 오프 셀로 판별되고 로드된 MSB 데이터가 '0'일 때, 래치(LAT)의 ND1 및 ND2 노드들은 각각 논리 '1'과 논리 '0'로 설정된다. 이러한 조건 하에서 00 프로그램 동작이 수행될 것이다. 00 프로그램 동작(도 9의 S346)은 검증 읽기 동작시 워드 라인으로 검증 읽기 전압(VFY2)이 공급된다는 점을 제외하면 앞서 언급된 절차(도 4 참조)에 따라 수행될 것이다(④).
00 프로그램 동작 다음에 01 프로그램 동작이 수행될 것이다. 01 프로그램 동작은 데이터 로드 구간, 프리-읽기 구간, 그리고 01 프로그램 구간으로 구분된다. MSB 프로그램 동작의 마지막 프로그램 단계는 01 프로그램 동작이다.
먼저, 초기화 구간 동안, 도 11a에서 설명된 것과 동일한 방식으로 페이지 버퍼(PB)가 초기화된다. 데이터 로드 구간(도 9의 S352) 동안, 제어 로직(400)의 제어에 따라 버퍼 램(300)에 저장된 MSB 데이터가 페이지 버퍼(200)로 재로드(reload)된다(①). 즉, 프로그램될 데이터가 신호 경로(①)를 통해 래치(LAT)에 로드된다. 예를 들면, 프로그램될 데이터가 '0'인 경우, 제어 신호(IRD)가 하이로 활성화될 것이다. 이때, 제어 로직(400)의 제어 하에 NMOS 트랜지스터들(M5, M6)이 턴 온된다. 프로그램될 데이터가 '1'인 경우, 제어 신호들(RD, IRD)는 로우로 유지될 것이다. 이때, 제어 로직(400)의 제어 하에 NMOS 트랜지스터들(M5, M6)이 턴 온된다. 전자의 경우, 래치(LAT)의 ND1 및 ND2 노드들은 각각 논리 '1'과 논리 '0'로 설정된다. 후자의 경우, 래치(LAT)의 ND1 및 ND2 노드들은 초기화 상태들 즉, 논리 '0'과 논리 '1'로 각각 유지된다.
MSB 데이터가 페이지 버퍼(PB)에 재로드된 후, 프리-읽기 동작 및 데이터 전송 동작이 수행된다. 데이터 전송 동작은 이하 도 12에서 설명되므로, 여기서는 프리-읽기 동작을 설명한다. MSB 데이터를 페이지 버퍼(PB)에 재로드한 후, 프리-읽기 동작(도 9의 S354)이 수행될 것이다. 즉, 워드 라인으로 읽기 전압(VR1, 도 11b 참조)이 인가된 상태에서, 메모리 셀의 상태가 신호 경로들(②, ③)을 통해 감지된다. 프리-읽기 구간에서 비트 라인(BL)이 로우 레벨로 유지되는 경우, 메모리 셀은 온 셀(VR1 전압보다 낮은 문턱 전압을 가짐)로서 판별되며, 그 결과 신호 경로(③)는 형성되지 않는다. 이는 래치(LAT)의 상태가 이전 상태로 유지됨을 의미한다. 이에 반해서, 프리-읽기 구간에서 비트 라인(BL)이 하이 레벨로 유지되는 경우, 메모리 셀은 오프 셀(VR1 전압보다 높은 문턱 전압을 가짐)로서 판별되며, 그 결과 신호 경로(③)가 형성될 것이다. 신호 경로(③)가 형성됨에 따라, 오프 셀로 판별된 메모리 셀에 대응하는 래치(LAT)의 ND1 및 ND2 노드들은 각각 논리 '0'와 논리 '1'로 설정된다. 따라서, 재로드된 MSB 데이터가 '0'이고 프리-읽기 동작에서 메모리 셀이 온 셀로 판별될 때, 래치(LAT)의 ND1 및 ND2 노드들은 각각 논리 '1'과 논리 '0'로 설정된다. 이러한 조건 하에서 01 프로그램 동작이 수행될 것이다. 01 프로그램 동작(도 10의 S356)은 검증 읽기 동작시 워드 라인으로 검증 읽기 전압(VFY3)이 공급된다는 점을 제외하면 앞서 언급된 절차(도 4 참조)에 따라 수행될 것이다(④).
이상의 설명으로부터 알 수 있듯이, 프리-읽기 동작을 통해 읽혀진 이전에 프로그램된 데이터와 버퍼 램으로부터 재로드된 현재 프로그램될 데이터를 비교함 으로써 단일의 래치 구조를 갖는 페이지 버퍼를 이용하여 2-비트 데이터를 프로그램하는 것이 가능하다.
도 12는 본 발명의 제 2 실시예에 따른 멀티-비트 프로그램 동작을 설명하기 위한 플래시 메모리 장치의 타이밍도이다. 도 12를 참조하면, 데이터 전송 동작(도 9의 S368)은 MSB 프로그램의 마지막 프로그램 단계가 제 2 프로그램 단계인 것을 제외하면, 도 8에 도시된 데이터 전송 동작과 동일하다. 따라서, 도 12의 설명은 생략한다. 도 12에는 데이터 전송 단계(도 9의 S368)를 포함하지 않는 경우의 타이밍도를 도시하지 않았다. 그러나, 도 8 및 12를 참조하면, 일정구간(t△)동안 프로그램 동작이 중지되지 않으므로, 제 2 실시예에 따른 멀티-비트 프로그램 동작은 프로그램 시간을 단축시킬수 있다. 그 결과, 멀티-비트 플래시 메모리 장치의 프로그램 성능은 향상된다.
도 13은 본 발명에 따른 멀티-비트 프로그램 방법을 채용한 메모리 카드를 보여주는 블록도이다.
도 13을 참조하면, 메모리 카드(3000)는 도 3에 도시된 멀티-비트 플래시 메모리 장치에 대응하며, 제어기(3200)와 낸드 플래시 메모리(3400)를 포함한다. 메모리 카드(3000)는 메모리 카드(3000)에 채용되는 인터페이스 방식에 따라 호스트(4000)와 통신하도록 구성될 것이다. 그러한 인터페이스 방식은 USB 인터페이스 방식, 노어 인터페이스 방식, 낸드 인터페이스 방식, 등과 같은 인터페이스 방식들을 포함할 것이다. 메모리 카드(3000)에 포함된 낸드 플래시 메모리(3400)는 단일 래치 구조를 갖는 페이지 버퍼 블록(3420)을 포함한다. 호스트(4000)로부터 프로그 램 동작이 요청될 때, 제어기(3200)는 앞서 언급된 멀티-비트 프로그램 방법들 중 어느 하나에 따라 낸드 플래시 메모리(3400)를 제어할 것이다. 특히, MSB 프로그램 동안, 이전에 프로그램된 데이터와 프로그램될 데이터의 비교를 위해서 제어기(3200)의 버퍼(3220)에 저장된 MSB 데이터가 제어기(3200)의 제어하에 낸드 플래시 메모리(3400)로 재로드될 것이다. 호스트(4000)는 메모리 카드(3000)가 삽입/결합될 수 있는 인터페이스 구조를 가지며, 컴퓨터, PDA, 카메라, PSP, PMP, 모바일폰, 등을 포함할 것이다.
도 14는 본 발명의 제 1 실시 예에 따른 멀티-비트 프로그램 동작을 설명하기 위한 메모리 카드의 타이밍도이다. 도 8 및 도 14에 도시된 타이밍 도에 따른 멀티-비트 플래시 메모리 장치 및 메모리 카드의 동작은 실질적으로 유사하다. 따라서, 이하 다른 동작만이 설명된다.
도 14를 참조하여, 데이터 전송 동작(도 5의 S264)을 설명하면 다음과 같다. 제 3 프로그램 단계(S260)는 MSB 프로그램의 마지막 프로그램 단계이다. 제 3 프로그램 단계(S260)에서, 버퍼(3220)에 저장된 MSB 데이터가 제어기(3200)의 제어하에 로딩구간(tT2)동안 낸드 플래시 메모리(3400)로 재로드된 후, 낸드 플래시 메모리(3400)는 인터럽트 신호(INT)를 발생한다. 인터럽트 신호(INT)는 제어기(3200)에 제공되며, 제어기(3200)는 인터럽트 신호(INT)에 응답해서 버퍼 준비 신호(Buffer Ready)를 발생한다. 버퍼 준비신호(Buffer Ready)는 버퍼(3220)가 액세스될 수 있음을 호스트(4000)에 알려주는 버퍼 액세스 가능 신호이다. 버퍼 준비신호(Buffer Ready)는 호스트(4000)에 전송된다. 호스트(4000)는 전송받은 버퍼 준비신호(Buffer Ready)에 응답해서 다음에 프로그램될 데이터 및 쓰기 명령(DATA,CMD)을 제어기(3200)에 제공한다. 버퍼 준비신호(Buffer Ready)의 활성화 구간 동안 제어기(3200)는 호스트(4000)로부터 다음에 프로그램될 데이터 및 쓰기 명령(DATA,CMD)을 제공받는다. 데이터는 버퍼(3220)에 저장된다. 제어기(3200)는 호스트(4000)로부터 제공받은 쓰기 명령(CMD)에 응답해서 다음 프로그램 동작이 수행되도록, 낸드 플래시 메모리(3400)를 제어한다. 이후 동작은 전술한 바와 같다.
도 15는 본 발명의 제 2 실시 예에 따른 멀티-비트 프로그램 동작을 설명하기 위한 메모리 카드의 타이밍도이다. 도 15를 참조하면, 데이터 전송 동작(도 9의 S368)은 MSB 프로그램의 마지막 프로그램 단계가 제 2 프로그램 단계인 것을 제외하면, 도 14에 도시된 데이터 전송 동작과 동일하다. 따라서, 도 15의 설명은 생략한다.
도 14, 및 도 15에 도시되지 않았으나, 도 8을 참조할 경우, 도 14 및 도 15에 도시된 멀티-비트 프로그램 동작은 일정구간(t△)동안 프로그램 동작이 중지되지 않는다. 따라서, 프로그램 시간이 단축되므로, 메모리 카드(3000)의 프로그램 속도는 빨라진다. 그 결과, 메모리 카드(3000)의 프로그램 성능은 향상된다.
결과적으로, 본 발명에 따른 단일 래치 구조를 갖는 멀티-비트 플래시 메모리 장치는 단일의 래치 구조를 갖는 페이지 버퍼를 이용하여 2-비트 데이터를 프로그램하는 것이 가능하다. 또한, 본 발명에 따른 단일 래치 구조를 갖는 멀티-비트 플래시 메모리 장치는 외부로부터 데이터를 제공받는 동안 프로그램 동작이 중지되지 않으므로, 프로그램 성능을 향상시킬 수 있다.
이상에서와 같이 도면과 명세서에서 최적의 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
도 1은 본 발명에 따른 멀티-비트 플래시 메모리 장치를 구비한 시스템을 보여주는 블록도이다.
도 2는 도 1에 도시된 멀티-비트 플래시 메모리 장치의 페이지 버퍼를 보여주는 회로도이다.
도 3은 본 발명에 따른 멀티-비트 플래시 메모리 장치의 멀티-비트 프로그램 동작을 개략적으로 설명하기 위한 흐름도이다.
도 4는 도 3에 도시된 프로그램 동작을 설명하기 위한 흐름도이다.
도 5는 본 발명의 제 1 실시예에 따른 멀티-비트 프로그램 방법을 설명하기 위한 흐름도이다.
도 6a 내지 도 6b는 본 발명의 제 1 실시예에 따른 멀티-비트 프로그램 동작을 수행할 때 상태들의 천이를 보여주는 도면이다.
도 7a 내지 도 7d는 본 발명의 멀티-비트 프로그램 방법에 따라 MSB 데이터를 프로그램할 때 페이지 버퍼의 데이터 흐름을 보여주는 도면이다.
도 8은 본 발명의 제 1 실시예에 따른 멀티-비트 프로그램 동작을 설명하기 위한 플래시 메모리 장치의 타이밍도이다.
도 9는 본 발명의 제 2 실시예에 따른 멀티-비트 프로그램 방법을 설명하기 위한 흐름도이다.
도 10a 및 도 10b는 본 발명의 제 2 실시예에 따른 멀티-비트 프로그램 동작을 수행할 때 상태들의 천이를 보여주는 도면이다.
도 11a 내지 도 11d는 본 발명의 멀티-비트 프로그램 방법에 따라 MSB 데이터를 프로그램할 때 페이지 버퍼의 데이터 흐름을 보여주는 도면이다.
도 12는 본 발명의 제 2 실시예에 따른 멀티-비트 프로그램 동작을 설명하기 위한 플래시 메모리 장치의 타이밍도이다.
도 13은 본 발명에 따른 멀티-비트 프로그램 방법을 채용한 메모리 카드를 보여주는 블록도이다.
도 14는 본 발명의 제 1 실시 예에 따른 멀티-비트 프로그램 동작을 설명하기 위한 메모리 카드의 타이밍도이다.
도 15는 본 발명의 제 2 실시 예에 따른 멀티-비트 프로그램 동작을 설명하기 위한 메모리 카드의 타이밍도이다.
<도면의 주요 부분에 대한 부호 설명>
1000: 플래시 메모리 장치 2000,4000: 호스트
100: 메모리 셀 어레이 200: 페이지 버퍼 블록
300: 버퍼 램 400: 제어 로직
3000: 메모리 카드 3200: 제어기
3400: 낸드 플래시 메모리

Claims (24)

  1. 메모리 셀들의 어레이와;
    각각이 단일의 래치 구조를 갖고, 로딩된 데이터에 따라 상기 메모리 셀들에 대한 기입 동작을 수행하는 페이지 버퍼들을 포함하는 페이지 버퍼 블록과;
    멀티-비트 프로그램 동작시 외부로부터 제공된 프로그램 데이터를 저장하는 버퍼 램과; 그리고
    상기 멀티-비트 프로그램 동작시 이전에 프로그램된 데이터와 현재 프로그램될 데이터를 비교하고자 할 때마다 상기 버퍼 램에 저장된 프로그램 데이터가 상기 페이지 버퍼 블록으로 로드되도록 상기 페이지 버퍼 그룹과 상기 버퍼 램을 제어하는 제어 로직을 포함하고,
    상기 제어 로직은 상기 멀티-비트 프로그램 동작이 완료되기 전에 다음에 프로그램될 데이터가 상기 버퍼램에 저장되도록 제어하는 플래시 메모리 장치.
  2. 제 1 항에 있어서,
    상기 멀티-비트 프로그램 동작은 LSB 프로그램 동작과 MSB 프로그램 동작을 포함하며, 상기 MSB 프로그램 동작은 복수의 프로그램 동작들을 포함하고,
    상기 복수의 프로그램 동작들 중 마지막 프로그램 단계에서 상기 버퍼 램의 프로그램 데이터가 상기 페이지 버퍼 블록에 로드된 후 상기 제어 로직은 버퍼램 액세스 가능 신호를 외부에 전송하는 플래시 메모리 장치.
  3. 삭제
  4. 제 2 항에 있어서,
    상기 버퍼램 액세스 가능 신호가 외부에 전송될 경우, 상기 버퍼램은 상기 제어 로직의 제어에 의해 외부로부터 제공받은 다음에 프로그램될 데이터를 저장하고,
    상기 버퍼램 액세스 가능 신호가 외부에 전송될 경우, 상기 제어 로직은 외부로부터 쓰기 명령을 제공받고, 상기 제공받은 쓰기 명령에 응답해서 다음 멀티-비트 프로그램 동작을 수행하는 플래시 메모리 장치.
  5. 삭제
  6. 제 2 항에 있어서,
    상기 메모리 셀들 각각은 상기 제어 로직의 제어에 따라 '11', '01', 10', '00' 상태들 중 어느 하나를 갖도록 프로그램되고, 상기 복수의 프로그램 동작들은 제 1 내지 제 3 프로그램 동작들로 구성되며, 상기 제 3 프로그램 동작은 마지막 프로그램 단계이고,
    상기 메모리 셀들은 상기 제 1 내지 제 3 프로그램 동작들을 통해 '00', '10', 및 '01' 상태들 중 어느 하나를 갖도록 프로그램되는 플래시 메모리 장치.
  7. 삭제
  8. 제 2 항에 있어서,
    상기 메모리 셀들 각각은 상기 제어 로직의 제어에 따라 '11', '10', '00', '01' 상태들 중 어느 하나를 갖도록 프로그램되고, 상기 복수의 프로그램 동작들은 제 1 및 제 2 프로그램 동작들로 구성되며, 상기 제 2 프로그램 동작은 마지막 프로그램 단계이고,
    상기 메모리 셀들은 상기 제 1 및 제 2 프로그램 동작들을 통해 '00' 및 '01' 상태들 중 어느 하나를 갖도록 프로그램되는 플래시 메모리 장치.
  9. 삭제
  10. 단일의 래치 구조를 갖는 페이지 버퍼들의 페이지 버퍼 블록 및 행들과 열들로 배열된 메모리 셀들의 어레이를 구비한 낸드 플래시 메모리와; 그리고
    멀티-비트 프로그램 동작시 외부로부터의 프로그램 데이터를 임시 저장하기 위한 버퍼 램을 포함하며, 상기 멀티-비트 프로그램 동작시 이전에 프로그램된 데이터와 현재 프로그램될 데이터를 비교하고자 할 때마다 상기 버퍼 램에 저장된 프 로그램 데이터가 상기 낸드 플래시 메모리의 페이지 버퍼 블록으로 로드되도록 상기 낸드 플래시 메모리를 제어하는 제어기를 포함하고,
    상기 제어기는 상기 멀티-비트 프로그램 동작이 완료되기 전에 상기 낸드 플래시 메모리의 제어에 의해 다음에 프로그램될 데이터를 외부로부터 제공받는 메모리 카드.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 메모리 셀들의 어레이를 갖는 멀티-비트 플래시 메모리 장치의 멀티-비트 프로그램 방법에 있어서:
    (a) 멀티-비트 프로그램 동작시, 버퍼 램에 저장된 데이터를 페이지 버퍼 블록으로 로드하고, 상기 페이지 버퍼 블록에 로드된 데이터에 따라 상기 메모리 셀들에 대한 프로그램 동작을 수행하는 단계를 포함하며,
    상기 (a) 단계는 (a-1) 프로그램된 데이터와 현재 프로그램될 데이터가 비교될 때마다 상기 버퍼 램에 저장된 프로그램 데이터가 상기 페이지 버퍼 블록으로 로드되는 단계; 및 (a-2) 상기 멀티-비트 프로그램 동작이 완료되기 전에 외부로부터 제공되는, 다음에 프로그램될 데이터가 상기 버퍼램에 저장되는 단계를 포함하는 멀티-비트 프로그램 방법.
  19. 제 18 항에 있어서,
    상기 멀티-비트 프로그램 동작은 LSB 프로그램 동작과 MSB 프로그램 동작을 포함하며, 상기 MSB 프로그램 동작은 복수의 프로그램 동작들을 포함하고,
    상기 복수의 프로그램 동작들 중 마지막 프로그램 단계에서 상기 버퍼 램으로부터 프로그램 데이터가 상기 페이지 버퍼 블록에 로드된 후, 상기 다음에 프로그램될 데이터가 상기 버퍼램에 저장되는 멀티-비트 프로그램 방법.
  20. 삭제
  21. 제 19 항에 있어서,
    상기 메모리 셀들 각각은 제어 로직의 제어에 따라 '11', '01', 10', '00' 상태들 중 어느 하나를 갖도록 프로그램되고, 상기 복수의 프로그램 동작들은 제 1 내지 제 3 프로그램 동작들로 구성되며, 상기 제 3 프로그램 동작은 마지막 프로그램 단계이고,
    상기 메모리 셀들은 상기 제 1 내지 제 3 프로그램 동작들을 통해 '00', '10', 및 '01' 상태들 중 어느 하나를 갖도록 프로그램되는 멀티-비트 프로그램 방법.
  22. 삭제
  23. 제 19 항에 있어서,
    상기 메모리 셀들 각각은 제어 로직의 제어에 따라 '11', '10', '00', '01' 상태들 중 어느 하나를 갖도록 프로그램되고, 상기 복수의 프로그램 동작들은 제 1 내지 제 2 프로그램 동작들로 구성되며, 상기 제 2 프로그램 동작은 마지막 프로그램 단계이고,
    상기 메모리 셀들은 상기 제 1 내지 제 2 프로그램 동작들을 통해 '00' 및 '01' 상태들 중 어느 하나를 갖도록 프로그램되는 멀티-비트 프로그램 방법.
  24. 삭제
KR1020070076401A 2006-05-18 2007-07-30 단일 래치 구조를 갖는 멀티-비트 플래시 메모리 장치,그것의 프로그램 방법, 그리고 그것을 포함하는 메모리카드 KR101348171B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070076401A KR101348171B1 (ko) 2007-07-30 2007-07-30 단일 래치 구조를 갖는 멀티-비트 플래시 메모리 장치,그것의 프로그램 방법, 그리고 그것을 포함하는 메모리카드
US12/182,274 US7876613B2 (en) 2006-05-18 2008-07-30 Multi-bit flash memory devices having a single latch structure and related programming methods, systems and memory cards

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070076401A KR101348171B1 (ko) 2007-07-30 2007-07-30 단일 래치 구조를 갖는 멀티-비트 플래시 메모리 장치,그것의 프로그램 방법, 그리고 그것을 포함하는 메모리카드

Publications (2)

Publication Number Publication Date
KR20090012510A KR20090012510A (ko) 2009-02-04
KR101348171B1 true KR101348171B1 (ko) 2014-01-07

Family

ID=40683268

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070076401A KR101348171B1 (ko) 2006-05-18 2007-07-30 단일 래치 구조를 갖는 멀티-비트 플래시 메모리 장치,그것의 프로그램 방법, 그리고 그것을 포함하는 메모리카드

Country Status (1)

Country Link
KR (1) KR101348171B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190050778A (ko) * 2016-09-30 2019-05-13 인텔 코포레이션 데이터 로드 연산의 완료 이전에 사전 판독 연산을 착수하기 위한 방법 및 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11144479A (ja) * 1997-11-10 1999-05-28 New Koa Technology Kk 不揮発性半導体多値メモリ装置
KR100598907B1 (ko) 2005-05-12 2006-07-10 주식회사 테라반도체 연속적 읽기/쓰기가 가능한 플래쉬 메모리
KR20070074308A (ko) * 2006-01-09 2007-07-12 삼성전자주식회사 불 휘발성 메모리의 프로그램 동작을 검증하는 장치 및방법, 그리고 그 장치를 포함한 메모리 카드
KR100778082B1 (ko) 2006-05-18 2007-11-21 삼성전자주식회사 단일의 래치 구조를 갖는 멀티-비트 플래시 메모리 장치,그것의 프로그램 방법, 그리고 그것을 포함하는 메모리카드

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11144479A (ja) * 1997-11-10 1999-05-28 New Koa Technology Kk 不揮発性半導体多値メモリ装置
KR100598907B1 (ko) 2005-05-12 2006-07-10 주식회사 테라반도체 연속적 읽기/쓰기가 가능한 플래쉬 메모리
KR20070074308A (ko) * 2006-01-09 2007-07-12 삼성전자주식회사 불 휘발성 메모리의 프로그램 동작을 검증하는 장치 및방법, 그리고 그 장치를 포함한 메모리 카드
KR100778082B1 (ko) 2006-05-18 2007-11-21 삼성전자주식회사 단일의 래치 구조를 갖는 멀티-비트 플래시 메모리 장치,그것의 프로그램 방법, 그리고 그것을 포함하는 메모리카드

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190050778A (ko) * 2016-09-30 2019-05-13 인텔 코포레이션 데이터 로드 연산의 완료 이전에 사전 판독 연산을 착수하기 위한 방법 및 장치
KR102562051B1 (ko) * 2016-09-30 2023-08-02 인텔 코포레이션 데이터 로드 연산의 완료 이전에 사전 판독 연산을 착수하기 위한 방법 및 장치

Also Published As

Publication number Publication date
KR20090012510A (ko) 2009-02-04

Similar Documents

Publication Publication Date Title
KR100778082B1 (ko) 단일의 래치 구조를 갖는 멀티-비트 플래시 메모리 장치,그것의 프로그램 방법, 그리고 그것을 포함하는 메모리카드
KR100634458B1 (ko) 단일의 페이지 버퍼 구조로 멀티-비트 및 단일-비트프로그램 동작을 수행하는 플래시 메모리 장치
US5777923A (en) Flash memory read/write controller
KR100648286B1 (ko) 단일의 페이지 버퍼 구조로 멀티-비트 및 단일-비트프로그램 동작을 수행하는 플래시 메모리 장치
KR100632940B1 (ko) 프로그램 사이클 시간을 가변시킬 수 있는 불 휘발성반도체 메모리 장치
JP4874566B2 (ja) 半導体記憶装置
KR100836762B1 (ko) 멀티 비트 플래시 메모리 장치 및 그것의 프로그램 방법
US7679965B2 (en) Flash memory with improved programming precision
US8897066B2 (en) Method of programming nonvolatile memory device
KR101468100B1 (ko) 불휘발성 메모리 장치 및 그것의 페이지 버퍼
KR100823174B1 (ko) 멀티-페이지 프로그램 스킴을 갖는 플래시 메모리 장치 및그것의 멀티-페이지 프로그램 방법
KR100764747B1 (ko) 플래시 메모리 장치 및 그것의 프로그램 방법
KR100634457B1 (ko) 단일의 페이지 버퍼 구조로 멀티-비트 및 단일-비트프로그램 동작을 수행하는 플래시 메모리 장치
WO2009081745A1 (ja) 不揮発性半導体記憶装置
US20040221092A1 (en) Flash memory device with partial copy-back mode
JP5354857B2 (ja) メモリシステム
KR20100011198A (ko) 불휘발성 메모리 장치의 프로그램 방법
JP2005322248A (ja) 半導体メモリ装置の制御情報をプログラムするための方法と装置
KR100648291B1 (ko) 단일의 페이지 버퍼 구조로 멀티-비트 및 단일-비트프로그램 동작을 수행하는 플래시 메모리 장치
US7876613B2 (en) Multi-bit flash memory devices having a single latch structure and related programming methods, systems and memory cards
KR101348171B1 (ko) 단일 래치 구조를 갖는 멀티-비트 플래시 메모리 장치,그것의 프로그램 방법, 그리고 그것을 포함하는 메모리카드
KR100621637B1 (ko) 프로그램 시간을 단축시킬 수 있는 플래시 메모리 장치 및그것의 프로그램 방법
KR100525924B1 (ko) 페이지 버퍼 및 반도체 메모리 장치
JP2007184105A (ja) 不揮発性半導体記憶装置
CN117116328A (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: 20191129

Year of fee payment: 7