KR20080018495A - 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법 - Google Patents

멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법

Info

Publication number
KR20080018495A
KR20080018495A KR1020060080698A KR20060080698A KR20080018495A KR 20080018495 A KR20080018495 A KR 20080018495A KR 1020060080698 A KR1020060080698 A KR 1020060080698A KR 20060080698 A KR20060080698 A KR 20060080698A KR 20080018495 A KR20080018495 A KR 20080018495A
Authority
KR
South Korea
Prior art keywords
program
msb
threshold voltage
memory cell
result
Prior art date
Application number
KR1020060080698A
Other languages
English (en)
Other versions
KR100919156B1 (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 KR1020060080698A priority Critical patent/KR100919156B1/ko
Priority to EP07016055A priority patent/EP1892721A3/en
Priority to US11/843,219 priority patent/US7684238B2/en
Priority to JP2007218927A priority patent/JP5825749B2/ja
Priority to CN2007101701193A priority patent/CN101145396B/zh
Publication of KR20080018495A publication Critical patent/KR20080018495A/ko
Application granted granted Critical
Publication of KR100919156B1 publication Critical patent/KR100919156B1/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
    • 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
    • G11C16/12Programming voltage switching circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • 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/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Non-Volatile Memory (AREA)

Abstract

여기에 개시된 멀티-비트 플래시 메모리 장치의 프로그램 방법은, LSB 데이터 값에 응답해서 소거 상태의 메모리 셀들에 대해 LSB 프로그램을 수행하는 단계, 반전된 MSB 데이터 값에 응답해서 LSB 프로그램된 메모리 셀들에 대해 제 1 MSB 프로그램을 수행하는 단계, 상기 LSB 프로그램된 메모리 셀들 중 상기 제 1 MSB 프로그램에서 제외된 메모리 셀들에 대해 제 2 MSB 프로그램을 수행하는 단계, 그리고 MSB 데이터 값에 응답해서 상기 소거 상태의 메모리 셀들에 대해 제 3 MSB 프로그램을 수행하는 단계를 포함한다.

Description

멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법{MULTI-BIT FLASH MEMORY DEVICE AND PROGRAM METHOD THEREOF}
도 1은 멀티-비트 프로그램 방식의 일 예를 보여주는 도면;
도 2는 도 1의 프로그램 방식에 의해 얻어진 프로그램 상태 분포를 보여주는 도면;
도 3은 본 발명에 따른 멀티-비트 플래시 메모리 장치를 구비한 시스템을 보여주는 블록도;
도 4는 도 3에 도시된 플래시 메모리 블록의 상세 블록도;
도 5는 도 4에 도시된 페이지 버퍼(PB)의 회로도;
도 6은 본 발명에 따른 멀티-비트 플래시 메모리 장치의 멀티-비트 프로그램 방법을 개략적으로 보여주는 흐름도;
도 7은 도 6에 도시된 LSB 프로그램 동작의 상세 흐름도;
도 8은 도 6에 도시된 MSB 프로그램 동작의 상세 흐름도;
도 9는 도 6 내지 도 8에 도시된 프로그램 방법에 의해 얻어진 메모리 셀의 프로그램 상태 값들의 분포를 보여주는 도면;
도 10은 본 발명에 따른 멀티-비트 프로그램 방법에 따른 메모리 셀의 프로그램 상태 값들의 분포와, 상기 상태 값들의 분포를 이용한 읽기 동작을 설명하기 위한 도면;
도 11은 도 7에 도시된 LSB 프로그램 동작시 페이지 버퍼의 데이터 흐름을 보여주는 도면;
도 12는 도 8에 도시된 'MSB 10' 프로그램 동작에 대한 상세 흐름도;
도 13은 도 12에 도시된 'MSB 10' 프로그램 동작시의 페이지 버퍼의 데이터 흐름을 보여주는 도면;
도 14는 도 8에 도시된 'MSB 00' 프로그램 방법을 보여주는 흐름도;
도 15는 도 14에 도시된 'MSB 00' 프로그램의 데이터 경로를 보여주는 도면;
도 16는 도 8에 도시된 'MSB 01' 프로그램 방법을 보여주는 흐름도;
도 17은 도 16에 도시된 'MSB 01' 프로그램의 데이터 경로를 보여주는 도면;
도 18 및 도 19는 본 발명의 다른 실시예에 따른 멀티-비트 플래시 메모리 장치의 구성을 보여주는 블록도;
도 20은 본 발명의 다른 실시예에 따른 멀티-비트 플래시 메모리 장치의 멀티-비트 프로그램 방법을 개략적으로 보여주는 흐름도;
도 21은 도 20에 도시된 LSB 프로그램 동작의 상세 흐름도; 그리고
도 22는 도 20에 도시된 MSB 프로그램 동작의 상세 흐름도이다.
*도면의 주요 부분에 대한 부호의 설명*
100, 200, 300 : 멀티-비트 플래시 메모리 장치
110 : 플래시 메모리 블록 120 : 메모리 셀 어레이
130 : 행 디코더 140, 350 : 페이지 버퍼 블록
160 : 플래시 인터페이스 170 : 내부 로직 블록
180 : 버퍼 램 190 : 호스트 인터페이스
250 : 데이터 래치 블록
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 멀티-비트 플래시 메모리 장치의 프로그램 방법에 관한 것이다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치(volatile semiconductor memory device)와 불 휘발성 반도체 메모리 장치(non-volatile semiconductor memory device)로 구분된다. 휘발성 반도체 메모리 장치는 읽고 쓰는 속도가 빠르지만 외부 전원 공급이 끊기면 저장된 내용이 사라져 버리는 단점이 있다. 반면에 불 휘발성 반도체 메모리 장치는 외부 전원 공급이 중단되더라도 그 내용을 보존한다. 그러므로, 불 휘발성 반도체 메모리 장치는 전원이 공급되었는지의 여부에 관계없이 보존되어야 할 내용을 기억시키는 데 쓰인다. 불 휘발성 반도체 메모리 장치로는 마스크 롬(mask read-only memory, MROM), 프로그램 가능한 롬(programmable read-only memory, PROM), 소거 및 프로그램 가능한 롬(erasable programmable read-only memory, EPROM), 전기적으로 소거 및 프로그램 가능한 롬(electrically erasable programmable read-only memory, EEPROM) 등이 있다.
일반적으로, MROM, PROM 및 EPROM은 시스템 자체적으로 소거 및 쓰기가 자유 롭지 않아서 일반 사용자들이 기억 내용을 갱신하기가 용이하지 않다. 이에 반해 EEPROM은 전기적으로 소거 및 쓰기가 가능하기 때문에, 계속적인 갱신이 필요한 시스템 프로그래밍(system programming)이나 보조 기억 장치로의 응용이 확대되고 있다. 특히 플래시(flash) EEPROM은 기존의 EEPROM에 비해 집적도가 높아, 대용량 보조 기억 장치로의 응용에 매우 유리하다. 플래시 EEPROM 중에서도 낸드형(NAND-type) 플래시 EEPROM(이하, '낸드형 플래시 메모리'라 칭함)은 다른 플래시 EEPROM에 비해 집적도가 매우 높은 장점을 가진다.
최근 들어, 메모리 장치에 대한 고집적 요구가 높아짐에 따라, 하나의 메모리 셀에 멀티-비트 데이터를 저장하는 멀티-비트 메모리 장치들이 U.S. Patent No. 6,122,188에 "NON - VOLATILE MEMORY DEVICE HAVING MULTI - BIT CELL STRUCTURE AND A METHOD OF PROGRAMMING SAME"라는 제목으로, U.S. Patent No. 6,075,734에 "INTEGRATED CIRCUIT MEMORY DEVICE FOR STORING A MULTI-BIT DATA AND A METHOD FOR READING STORED DATA IN THE SAME"라는 제목으로, 그리고 U.S. Patent No. 5,923,587에 "MULTI - BIT MEMORY CELL ARRAY OF A NON - VOLATILE SEMICONDUCTOR MEMORY DEVICE AND METHOD FOR DRIVING THE SAME"라는 제목으로 각각 게재되어 있다.
하나의 메모리 셀에 1-비트 데이터를 저장하는 경우, 메모리 셀은 4개의 문턱 전압 분포들, 즉 데이터 '1'과 데이터 '0' 중 어느 하나에 대응되는 문턱 전압 분포를 갖는다. 이에 반해서, 하나의 메모리 셀에 2-비트 데이터를 저장하는 경우, 메모리 셀은 4개의 문턱 전압 분포들 중 어느 하나에 속하는 문턱 전압을 갖는다. 즉, 하나의 메모리 셀은 데이터 '11', '01', '10' 및 '00' 상태를 각각 나타내는 4개의 문턱 전압 분포 중 하나를 갖는다.
일반적으로, 4개의 프로그램 상태에 대응하는 문턱 전압 분포들이 각각 정해진 문턱 전압 윈도우 내에 존재하기 위해서는 문턱 전압 분포를 조밀하게 제어하여야 한다. 이를 위해서, ISPP(Incremental Step Pulse Programming) 스킴을 이용한 프로그램 방법이 제안되어 오고 있다. ISPP 스킴에 따르면, 각 프로그램 루프의 전압 증가분만큼 문턱 전압이 이동된다. 그러므로, 프로그램 전압의 증가분을 작게 설정하면 문턱 전압 분포를 조밀하게 제어할 수 있게 된다. 이는 각각의 프로그램 상태들 간의 마진을 충분히 확보하는 것이 가능함을 의미한다. 하지만, ISPP 스킴에도 불구하고 각 상태의 문턱 전압 분포는 인접한 메모리 셀들간의 커플링으로 인해서 원하는 윈도우보다 더 넓게 형성되는 문제가 발생된다. 그러한 커플링을 '전계 커플링(electric field coupling)' 또는 'F-poly 커플링'이라 한다. F-poly 커플링으로부터 비롯되는 문제점들과, 이를 해결하기 위한 예시적인 기술이 U.S. Patent No. 5,867,429에 "HIGH DENSITY NON - VOLATILE FLASH MEMORY WITHOUT ADVERSE EFFECTS OF ELECTRIC FIELD COUPLING BETWEEN ADJACENT FLOATING GATES"라는 제목으로 게재되어 있다.
일반적으로, 프로그램시 인가되는 프로그램 전압은 매우 고전압이다. 따라서, 프로그램 상태의 천이가 급속하게 이루어질수록 인접한 메모리 셀들간에 발생되는 F-poly 커플링의 영향은 더욱 커지게 된다. 이와 같은 문제를 해결하기 위해, LSB 프로그램시 넓은 문턱 전압 분포를 갖도록 프로그램 한 후, 이를 이용하여 프 로그램 상태 천이가 점진적으로 수행되도록 MSB 프로그램을 수행하는 방식이 사용되고 있다. 이러한 프로그램 방식에 따르면, 프로그램 상태 천이가 점진적으로 수행될 수 있기 때문에, 커플링의 영향을 줄일 수 있게 된다.
도 1은 멀티-비트 프로그램 방식의 일 예를 보여주는 도면으로, 프로그램 상태 천이가 점진적으로 수행되는 멀티-비트 프로그램 방식이 예시적으로 도시되어 있다.
도 1을 참조하면, 하나의 메모리 셀은 '11', '01', '10' 및 '00' 상태들 중 어느 하나를 갖도록 프로그램된다. '11' 상태를 갖는 메모리 셀은 소거된 메모리 셀이며, '01' 상태를 갖는 메모리 셀은 '11' 상태의 메모리 셀의 문턱 전압보다 높다. '10' 상태를 갖는 메모리 셀은 '01' 상태의 메모리 셀의 문턱 전압보다 높고, '00' 상태를 갖는 메모리 셀은 '10' 상태의 메모리 셀의 문턱 전압보다 높다. 메모리 셀은 2개의 데이터 비트들 중 하나의 데이터 비트(이하, 'LSB 데이터 비트'라 칭함)가 먼저 프로그램되고, 그 다음에 나머지 데이터 비트(이하, 'MSB 데이터 비트'라 칭함)가 프로그램된다. 이하, 전자는 LSB 프로그램 동작이라 칭하고, 후자는 MSB 프로그램 동작이라 칭한다. 일반적으로, LSB 프로그램 동작은 단일-비트 데이터를 프로그램하는 것과 거의 유사하게 수행되는 반면에, MSB 프로그램 동작은 LSB 프로그램 동작과 다르게 수행된다.
LSB 프로그램 동작이 수행되면 '11' 상태를 갖는 메모리 셀들은 로드된 데이터에 따라 점선으로 표시된 '10' 상태로 선택적으로 프로그램된다. '10' 상태는 넓은 문턱 전압 분포를 갖는다. MSB 프로그램 동작 동안, '10' 상태를 갖는 메모리 셀들은 이전에 프로그램된 데이터 및 로드된 프로그램 데이터에 따라 '00' 상태로 선택적으로 프로그램된다. 그 다음에, '11' 상태를 갖는 메모리 셀들은, 이전에 프로그램된 데이터에 따라 '01' 상태로 선택적으로 프로그램된다.
이상에서 설명된 프로그램 방식에 따르면 프로그램 상태 천이가 점진적으로 수행되기 때문에 커플링의 영향을 줄일 수 있다. 하지만, 프로그램시 이전에 프로그램된 데이터(즉, LSB 데이터)와 현재 프로그램될 데이터(즉, MSB 데이터)가 비교되어야 하고, 비교 결과에 따라 프로그램될 데이터와 프로그램 금지할 데이터를 구분하여야 한다. 따라서, 프로그램 방법이 복잡해지는 문제점이 있고, 데이터 비교를 위해 2개의 래치를 필수적으로 구비하여야만 하는 문제점이 있다.
도 2는 도 1의 프로그램 방식에 의해 얻어진 프로그램 상태 분포를 보여주는 도면이다.
도 2를 참조하면, 도 1의 프로그램 방식에 의해 프로그램된 데이터는 '11', '01', '10' 및 '00' 상태로 프로그램된다. 이 경우, LSB 비트는 각각 '1', '1', '0', '0'의 값을 갖는다. 따라서, LSB 읽기를 수행할 경우는 '1, 1'의 비트와 '0, 0'의 비트를 구분할 수 있도록 1회의 읽기 동작이 수행된다. 한편, 도 2의 프로그램 상태에서 MSB 비트는 각각 '1', '0', '1', '0'의 값을 갖는다. 따라서, MSB 읽기를 수행할 경우는 '1', '0', '1', '0' 각각의 비트를 구분할 수 있도록 반드시 3회의 읽기 동작이 수행되어야만 한다.
메모리 셀에 프로그램된 데이터를 읽어들이는 횟수는 플래시 메모리 장치의 동작 속도와 밀접한 관계가 있다. 따라서, 인접 메모리 셀들간의 커플링 현상을 줄 이면서도 프로그램된 데이터를 읽어들이는 횟수를 줄일 수 있는 새로운 방안이 요구된다. 뿐만 아니라, 래치의 개수에 대한 제약과 프로그램의 복잡도를 줄일 수 있는 방안이 요구된다.
따라서, 본 발명의 목적은 상술한 제반 문제점을 해결하기 위해 제안된 것으로, 인접 메모리 셀들간의 커플링 현상을 줄이면서도 동작 속도를 빠르게 할 수 있는 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법을 제공하는 데 있다.
본 발명의 다른 목적은 래치 개수의 제약 및 프로그램 복잡도를 줄일 수 있는 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법을 제공하는 데 있다.
상기의 과제를 이루기 위하여 본 발명에 의한 멀티-비트 플래시 메모리의 프로그램 방법은, LSB 데이터 값에 응답해서 소거 상태의 메모리 셀들에 대해 LSB 프로그램을 수행하는 단계; MSB 데이터 값을 반전하여 LSB 프로그램된 메모리 셀들에 대해 제 1 MSB 프로그램을 수행하는 단계; 상기 LSB 프로그램된 메모리 셀들 중 상기 제 1 MSB 프로그램에서 제외된 메모리 셀들에 대해 제 2 MSB 프로그램을 수행하는 단계; 그리고 상기 MSB 데이터 값에 응답해서 상기 소거 상태의 메모리 셀들에 대해 제 3 MSB 프로그램을 수행하는 단계를 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱 전압보다 높고, 상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 3 MSB 프로그램 결과로 얻어 진 메모리 셀의 문턱전압보다 높고, 상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고, 그리고 상기 LSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱전압보다 높고 상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압 보다 낮은 것을 특징으로 한다.
이 실시예에 있어서, 상기 제 1 MSB 프로그램, 상기 제 2 MSB 프로그램, 및 상기 제 3 MSB 프로그램 결과 얻어진 문턱전압 분포는 각각 '10'의 프로그램 상태, '00'의 프로그램 상태, 및 '01'의 프로그램 상태에 대응되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 각각의 프로그램은 단일 래치 구조의 페이지 버퍼를 이용하여 수행되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 LSB 데이터 또는 상기 MSB 데이터는 상기 각각의 프로그램이 요청될 때마다 버퍼 램으로부터 상기 페이지 버퍼로 로딩되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 각각의 프로그램은 듀얼 래치 구조의 페이지 버퍼를 이용하여 수행되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 LSB 데이터 또는 상기 MSB 데이터는 제 1 래치에 임시 저장되었다가, 상기 각각의 프로그램 동작시 제 2 래치로 덤프되는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 행들과 열들로 배열된 메모리 셀들의 어레이와, 단일의 래치 구조를 갖는 페이지 버퍼와, 버퍼 램을 포함하는 멀티-비트 플래 시 메모리 장치를 프로그램하는 방법은, LSB 데이터 값에 응답해서 소거 상태의 메모리 셀들에 대해 LSB 프로그램을 수행하는 단계; MSB 데이터 값을 반전하여 LSB 프로그램된 메모리 셀들에 대해 제 1 MSB 프로그램을 수행하는 단계; 상기 LSB 프로그램된 메모리 셀들 중 상기 제 1 MSB 프로그램에서 제외된 메모리 셀들에 대해 제 2 MSB 프로그램을 수행하는 단계; 그리고 상기 MSB 데이터 값에 응답해서 상기 소거 상태의 메모리 셀들에 대해 제 3 MSB 프로그램을 수행하는 단계를 포함하며, LSB 데이터 또는 상기 MSB 데이터는 상기 각각의 프로그램시 상기 버퍼 램으로부터 상기 페이지 버퍼로 로딩되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱 전압보다 높고, 상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고, 상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고, 그리고 상기 LSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱전압보다 높고 상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압 보다 낮은 것을 특징으로 한다.
이 실시예에 있어서, 상기 제 1 MSB 프로그램, 상기 제 2 MSB 프로그램, 및 상기 제 3 MSB 프로그램 결과 얻어진 문턱전압 분포는 각각 '10'의 프로그램 상태, '00'의 프로그램 상태, 및 '01'의 프로그램 상태에 대응되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 LSB 프로그램 단계는 상기 페이지 버퍼를 초기화 하는 단계; 상기 LSB 데이터를 상기 페이지 버퍼로 로드하는 단계; 그리고 상기 페이지 버퍼에 로드된 상기 LSB 데이터에 따라, 상기 선택된 메모리 셀들을 선택적으로 프로그램하는 단계를 포함하며, 상기 페이지 버퍼의 초기화 상태는 상기 데이터 로드시 상기 LSB 데이터의 값에 따라 그대로 유지되거나 반전되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 제 1 MSB 프로그램 단계는 상기 페이지 버퍼를 초기화하는 단계; 이전에 수행된 프로그램 상태를 읽는 프리-읽기 동작을 수행하는 단계; 상기 프리-읽기 결과, 해당 메모리 셀이 상기 LSB 프로그램 결과에 해당될 경우 상기 페이지 버퍼를 프로그램 가능 생태로 세팅하는 단계; 상기 버퍼 램에 저장되어 있는 상기 MSB 데이터를 반전하여 상기 페이지 버퍼에 로드하는 단계; 그리고 상기 페이지 버퍼에 로드된 상기 반전된 MSB 데이터에 따라, 상기 선택된 메모리 셀들을 선택적으로 프로그램하는 단계를 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 제 2 MSB 프로그램 단계는 이전에 수행된 프로그램 상태를 읽는 제 1 프리-읽기 동작을 수행하는 단계; 상기 제 1 프리-읽기 결과, 해당 메모리 셀이 상기 LSB 프로그램 결과 보다 같거나 높은 문턱 전압을 가질 경우 상기 페이지 버퍼를 프로그램 가능 생태로 세팅하는 단계; 제 2 프리-읽기 동작을 수행하는 단계; 상기 제 2 프리-읽기 결과, 해당 메모리 셀이 상기 제 1 MSB 프로그램 결과 보다 같거나 높은 경우 상기 페이지 버퍼를 프로그램 금지 생태로 세팅하는 단계; 그리고 상기 프로그램 가능 상태의 메모리 셀들을 프로그램하는 단계를 포함하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 제 3 MSB 프로그램 단계는 상기 페이지 버퍼를 초기화하는 단계; 이전에 수행된 프로그램 상태를 읽는 프리-읽기 동작을 수행하는 단계; 상기 프리-읽기 결과, 해당 메모리 셀이 상기 소거된 메모리 셀인 경우 상기 페이지 버퍼를 프로그램 가능 생태로 세팅하는 단계; 상기 버퍼 램에 저장되어 있는 상기 MSB 데이터를 상기 페이지 버퍼에 로드하는 단계; 그리고 상기 페이지 버퍼에 로드된 상기 MSB 데이터에 따라, 상기 선택된 메모리 셀들을 선택적으로 프로그램하는 단계를 포함하는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 행들과 열들로 배열된 메모리 셀들의 어레이와, 듀얼 래치 구조를 갖는 페이지 버퍼를 포함하는 멀티-비트 플래시 메모리 장치를 프로그램하는 방법은, LSB 데이터 값에 응답해서 소거 상태의 메모리 셀들에 대해 LSB 프로그램을 수행하는 단계; MSB 데이터 값을 반전하여 LSB 프로그램된 메모리 셀들에 대해 제 1 MSB 프로그램을 수행하는 단계; 상기 LSB 프로그램된 메모리 셀들 중 상기 제 1 MSB 프로그램에서 제외된 메모리 셀들에 대해 제 2 MSB 프로그램을 수행하는 단계; 그리고 상기 MSB 데이터 값에 응답해서 상기 소거 상태의 메모리 셀들에 대해 제 3 MSB 프로그램을 수행하는 단계를 포함하며, 상기 LSB 데이터 또는 상기 MSB 데이터는 제 1 래치에 임시 저장되었다가, 상기 각각의 프로그램 동작을 수행하기 위해 제 2 래치로 덤프되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱 전압보다 높고, 상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 3 MSB 프로그램 결과로 얻어 진 메모리 셀의 문턱전압보다 높고, 상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고, 그리고 상기 LSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱전압보다 높고 상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압 보다 낮은 것을 특징으로 한다.
이 실시예에 있어서, 상기 제 1 MSB 프로그램, 상기 제 2 MSB 프로그램, 및 상기 제 3 MSB 프로그램 결과 얻어진 문턱전압 분포는 각각 '10'의 프로그램 상태, '00'의 프로그램 상태, 및 '01'의 프로그램 상태에 대응되는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 멀티-비트 플래시 메모리 장치는, 행들과 열들로 배열된 메모리 셀들의 어레이; 각각이 단일의 래치 구조를 갖는 복수 개의 페이지 버퍼들을 구비한 페이지 버퍼 블록; 멀티-비트 프로그램 동작시 외부로부터의 프로그램 데이터를 임시 저장하는 버퍼 램; 그리고 상기 멀티-비트 프로그램 동작시 상기 버퍼 램에 저장된 프로그램 데이터가 상기 페이지 버퍼 블록으로 로드되도록 상기 페이지 버퍼 블록과 상기 버퍼 램을 제어하는 제어 로직을 포함하며, 상기 멀티-비트 프로그램시, 이전 프로그램 결과와 프로그램될 데이터 값에 응답해서 상기 프로그램 데이터 값이 선택적으로 반전되어 프로그램되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 제어 로직은, 상기 멀티-비트 프로그램 동작시 LSB 데이터 값에 응답해서 소거 상태의 메모리 셀들에 대해 LSB 프로그램을 수행하는 동작; MSB 데이터 값을 반전하여 LSB 프로그램된 메모리 셀들에 대해 제 1 MSB 프로그램을 수행하는 동작; 상기 LSB 프로그램된 메모리 셀들 중 상기 제 1 MSB 프로그램에서 제외된 메모리 셀들에 대해 제 2 MSB 프로그램을 수행하는 동작; 그리고 상기 MSB 데이터 값에 응답해서 상기 소거 상태의 메모리 셀들에 대해 제 3 MSB 프로그램을 수행하는 동작이 수행되도록 제어하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱 전압보다 높고, 상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고, 상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고, 그리고 상기 LSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱전압보다 높고 상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압 보다 낮은 것을 특징으로 한다.
이 실시예에 있어서, 상기 제 1 MSB 프로그램, 상기 제 2 MSB 프로그램, 및 상기 제 3 MSB 프로그램 결과 얻어진 문턱전압 분포는 각각 '10'의 프로그램 상태, '00'의 프로그램 상태, 및 '01'의 프로그램 상태에 대응되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 LSB 데이터 또는 상기 MSB 데이터는 상기 버퍼 램으로부터 상기 페이지 버퍼로 로딩되는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 멀티-비트 플래시 메모리 장치는, 행들과 열들로 배열된 메모리 셀들의 어레이; 각각이 제 1 및 제 2 래치를 갖는 복수 개의 페이지 버퍼들을 구비한 페이지 버퍼 블록; 그리고 상기 멀티-비트 프로그램 동작시 상기 제 1 래치에 저장된 프로그램 데이터가 상기 제 2 래치로 로드되도록 상기 페이지 버퍼 블록을 제어하는 제어 로직을 포함하며, 상기 멀티-비트 프로그램시, 이전 프로그램 결과와 프로그램될 데이터 값에 응답해서 상기 프로그램 데이터 값이 선택적으로 반전되어 프로그램되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 제어 로직은, 상기 멀티-비트 프로그램 동작시 LSB 데이터 값에 응답해서 소거 상태의 메모리 셀들에 대해 LSB 프로그램을 수행하는 동작; MSB 데이터 값을 반전하여 LSB 프로그램된 메모리 셀들에 대해 제 1 MSB 프로그램을 수행하는 동작; 상기 LSB 프로그램된 메모리 셀들 중 상기 제 1 MSB 프로그램에서 제외된 메모리 셀들에 대해 제 2 MSB 프로그램을 수행하는 동작; 그리고 상기 MSB 데이터 값에 응답해서 상기 소거 상태의 메모리 셀들에 대해 제 3 MSB 프로그램을 수행하는 동작이 수행되도록 제어하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱 전압보다 높고, 상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고, 상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고, 그리고 상기 LSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱전압보다 높고 상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압 보다 낮은 것을 특징으로 한다.
이 실시예에 있어서, 상기 제 1 MSB 프로그램, 상기 제 2 MSB 프로그램, 및 상기 제 3 MSB 프로그램 결과 얻어진 문턱전압 분포는 각각 '10'의 프로그램 상태, '00'의 프로그램 상태, 및 '01'의 프로그램 상태에 대응되는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 멀티-비트 플래시 메모리 장치는, 행들과 열들로 배열된 메모리 셀들의 어레이; 각각이 단일 래치를 갖는 복수 개의 페이지 버퍼들을 구비한 페이지 버퍼 블록; 상기 각각의 페이지 버퍼에 대응되는 복수 개의 데이터 래치들을 구비한 데이터 래치 블록; 그리고 상기 멀티-비트 프로그램 동작시 상기 페이지 버퍼에 저장된 프로그램 데이터가 대응되는 데이터 래치로 로드되도록 상기 페이지 버퍼 블록과 상기 데이터 래치 블록을 제어하는 제어 로직을 포함하며, 상기 멀티-비트 프로그램시, 이전 프로그램 결과와 프로그램될 데이터 값에 응답해서 상기 프로그램 데이터 값이 선택적으로 반전되어 프로그램되는 것을 특징으로 한다.
이 실시예에 있어서, 상기 제어 로직은, 상기 멀티-비트 프로그램 동작시 LSB 데이터 값에 응답해서 소거 상태의 메모리 셀들에 대해 LSB 프로그램을 수행하는 동작; MSB 데이터 값을 반전하여 LSB 프로그램된 메모리 셀들에 대해 제 1 MSB 프로그램을 수행하는 동작; 상기 LSB 프로그램된 메모리 셀들 중 상기 제 1 MSB 프로그램에서 제외된 메모리 셀들에 대해 제 2 MSB 프로그램을 수행하는 동작; 그리고 상기 MSB 데이터 값에 응답해서 상기 소거 상태의 메모리 셀들에 대해 제 3 MSB 프로그램을 수행하는 동작이 수행되도록 제어하는 것을 특징으로 한다.
이 실시예에 있어서, 상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱 전압보다 높고, 상기 제 2 MSB 프로 그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고, 상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고, 그리고 상기 LSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱전압보다 높고 상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압 보다 낮은 것을 특징으로 한다.
이 실시예에 있어서, 상기 제 1 MSB 프로그램, 상기 제 2 MSB 프로그램, 및 상기 제 3 MSB 프로그램 결과 얻어진 문턱전압 분포는 각각 '10'의 프로그램 상태, '00'의 프로그램 상태, 및 '01'의 프로그램 상태에 대응되는 것을 특징으로 한다.
이하 본 발명에 따른 실시예를 첨부된 도면을 참조하여 상세히 설명한다.
본 발명의 신규한 멀티-비트 플래시 메모리 장치의 프로그램 방법은, LSB 데이터 값에 응답해서 소거 상태의 메모리 셀들에 대해 LSB 프로그램을 수행하는 단계, 반전된 MSB 데이터 값에 응답해서 LSB 프로그램된 메모리 셀들에 대해 제 1 MSB 프로그램을 수행하는 단계, 상기 LSB 프로그램된 메모리 셀들 중 상기 제 1 MSB 프로그램에서 제외된 메모리 셀들에 대해 제 2 MSB 프로그램을 수행하는 단계, 그리고 MSB 데이터 값에 응답해서 상기 소거 상태의 메모리 셀들에 대해 제 3 MSB 프로그램을 수행하는 단계를 포함한다. 이상과 같은 본 발명에 의하면, 간단한 프로그램 방식의 변경만으로도 래치 개수의 제약 및 프로그램 복잡도를 효과적으로 줄일 수 있다. 또한, 인접 메모리 셀들간의 커플링 현상을 줄이면서도 플래시 메모리 장치의 동작 속도를 향상시킬 수 있게 된다. 본 발명에 대한 상세 구성은 다음 과 같다.
도 3은 본 발명에 따른 멀티-비트 플래시 메모리 장치를 구비한 시스템을 보여주는 블록도이고, 도 4는 도 3에 도시된 플래시 메모리 블록(110)의 상세 블록도이다. 그리고, 도 5는 도 4에 도시된 페이지 버퍼(PB)의 회로도이다.
도 3을 참조하면, 본 발명에 따른 멀티-비트 플래시 메모리 장치(100)는 호스트 인터페이스(190)를 통해 호스트(500)와 인터페이스를 수행한다. 플래시 메모리 장치(100)와 호스트(500) 사이에서 수행되는 인터페이스 방식은 잘 알려져 있는 노어 인터페이스 방식을 이용한다. 하지만, 이러한 인터페이스 방식은 일 실시예에 불과하며, 다른 인터페이스 방식(예를 들면, 낸드 인터페이스 방식)이 적용될 수도 있음은 이 분야의 통상적인 지식을 습득한 자들에게 있어 자명하다. 본 발명에 따른 멀티-비트 플래시 메모리 장치(100)는 원낸드 플래시 메모리 장치(OneNAND flash memory)로 구현될 수 있다. 하지만, 본 발명에 따른 멀티-비트 플래시 메모리 장치(100)가 여기에 개시된 것에 국한되지 않는다는 것 또한 이 분야의 통상적인 지식을 습득한 자들에게 있어 자명하다.
본 발명에 따른 멀티-비트 플래시 메모리 장치(100)는 플래시 메모리 블록(110), 플래시 인터페이스(160), 내부 로직 블록(170), 버퍼 램(180), 그리고 호스트 인터페이스(190)를 포함한다. 도 4를 참조하면, 플래시 메모리 블록(110)은 메모리 셀 어레이(120), 행 디코더(130)(도면에는 X-DEC으로 표시됨), 그리고 페이지 버퍼 블록(140)을 포함한다. 메모리 셀 어레이(120)는, 워드 라인들과 비트 라인들의 교차 영역들에 배열된 메모리 셀들을 포함한다. 각 메모리 블록의 메모리 셀들은 스트링 구조를 갖도록 구성된다. 메모리 셀들의 스트링 구조는 앞서 언급된 특허들에 상세히 설명되어 있으며, 그것에 대한 설명은 이하 생략된다.
메모리 셀 어레이(120)의 행(row)들은 행 디코더 회로(130)에 의해서 구동되고, 열(column)들은 페이지 버퍼 블록(140)에 의해서 구동된다. 페이지 버퍼 블록(140)은 내부 로직 블록(170)에 의해서 제어되며, 동작 모드에 따라 기입 드라이버로서 또는 감지 증폭기로서 동작한다. 예를 들면, 페이지 버퍼 블록(140)은 읽기 동작 모드에서 감지 증폭기로서 그리고 프로그램 동작 모드에서 기입 드라이버로서 동작한다. 페이지 버퍼 블록(140)은 각각의 비트 라인 또는 비트 라인 쌍에 대응하는 복수의 페이지 버퍼들(PB)을 포함한다. 각 페이지 버퍼(PB)는 단일의 래치를 가지며, 도 5에 도시된 바와 같이 구성될 수 있다. 그러나, 도 5에 도시된 페이지 버퍼의 구조는 본 발명이 적용되는 일 실시예에 불과하며, 다양한 형태로 변경 및 변화 가능하다.
다시 도 3을 참조하면, 버퍼 램(180)은 내부 로직 블록(170)에 의해서 제어되며, 호스트(500)로부터 제공되는 데이터 또는 페이지 버퍼 블록(140)으로부터 제공되는 데이터를 임시 저장한다. 버퍼 램(180)은, 바람직하게, 에스램(SRAM ; Static Random Access Memory)으로 구현될 수 있다. 하지만, 이는 버퍼 램(180)의 일 구성 예에 불과하다. 예를 들면, 버퍼 램(180)은 디램(DRAM ; Dynamic Random Access Memory)과 같은 메모리로 구현될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
내부 로직 블록(170)은 멀티-비트 플래시 메모리 장치(100)의 전반적인 동작 을 제어하도록 구성된다. 예를 들면, 호스트(500)로부터 프로그램 동작이 요청될 때, 내부 로직 블록(170)은 멀티-비트 프로그램 동작이 수행되도록 플래시 인터페이스(160)와 버퍼 램(180)을 제어한다. 플래시 인터페이스(160)는 내부 로직 블록(170)의 제어에 따라서 버퍼 램(180)과 페이지 버퍼 블록(140) 사이의 인터페이스를 수행한다. 특히, MSB 데이터가 프로그램되는 동안, 제어 로직(300)은 버퍼 램(180)에 저장된 데이터가 페이지 버퍼 블록(140)으로 재로드(reload) 되도록 플래시 인터페이스(160)와 버퍼 램(180)을 제어한다. 이에 대해서는 아래에서 상세히 설명될 것이다.
도 6은 본 발명에 따른 멀티-비트 플래시 메모리 장치의 멀티-비트 프로그램 방법을 개략적으로 보여주는 흐름도이다. 도 6에는 도 5에 도시되어 있는 단일 래치 구조(single latch structure)를 갖는 페이지 버퍼 블록(140)을 이용하여 멀티-비트 데이터(즉, 2-비트 데이터)를 메모리 셀 어레이(120)에 저장하는 방법이 예시적으로 도시되어 있다. 그러나, 본 발명에 따른 멀티-비트 프로그램 방법은 단일 래치 구조의 페이지 버퍼 블록(140) 뿐만 아니라 듀얼 래치 구조(dual latch structure)를 갖는 페이지 버퍼 블록에도 모두 적용될 수 있다. 듀얼 래치 구조의 페이지 버퍼 블록을 이용한 멀티-비트 프로그램 방법은 도 18 내지 도 22를 참조하여 아래에서 상세히 설명될 것이다.
도 6을 참조하면, 본 발명에 따른 멀티-비트 프로그램 방법은 LSB 프로그램 동작(S1000)과 MSB 프로그램 동작(S2000)을 포함한다. LSB 프로그램 동작과 MSB 프로그램 동작은 연속적으로 수행되거나 비연속적으로 수행될 수 있다. 도 6에서는 본 발명에 적용되는 일 예로서, LSB 프로그램 동작과 MSB 프로그램 동작이 연속적으로 수행되는 경우가 예시적으로 도시되어 있다.
먼저, 호스트(500)로부터 프로그램 동작이 요청되면 멀티-비트 플래시 메모리 장치(100)는 단일-비트 프로그램 동작과 유사한 방식으로 LSB 프로그램 동작을 수행한다(S1000). 본 발명에 따른 멀티-비트 프로그램 방법은 넓은 문턱 전압 분포를 갖도록 LSB 프로그램을 수행한다. 그리고 나서, 넓은 문턱 전압 분포를 갖는 LSB 프로그램 결과를 이용하여 프로그램 상태 천이가 점진적으로 수행될 수 있도록 MSB 프로그램 동작(S2000)을 수행한다. 이 경우, 점진적으로 수행되는 프로그램 상태 천이로 인해 인접 메모리 셀들 사이의 커플링이 줄어들게 된다.
S2000 단계에서 수행되는 MSB 프로그램 동작은, 단일 래치 구조를 갖는 페이지 버퍼 블록(140)을 이용하여 수행된다. 상기 MSB 프로그램 동작에서 사용될 프로그램 데이터는 내부 제어 로직(170)의 제어에 의해 버퍼 램(180)으로부터 페이지 버퍼 블록(140)으로 반복적으로 로딩된다. 이와 같은 구성에 따르면, 멀티-비트 프로그램을 수행하는데 필요한 하드웨어적인 구성을 줄일 수 있게 된다.
또한, S2000 단계에서 수행되는 MSB 프로그램 동작에서는 프로그램될 데이터가 반전하여 로딩되는 구성을 갖는다. 상기 데이터를 반전하여 로딩하는 구성은 단순히 제어 신호(도 5의 NDi, Di)의 발생을 제어함에 의해 달성 가능하다. 따라서, 별도의 하드웨어적인 구성이 필요 없고, 다양한 형태의 페이지 버퍼 블록에도 본 발명을 용이하게 적용할 수 있다. 이와 같은 구성에 따르면, 본 발명에 의해 얻어지는 메모리 셀들의 문턱 전압의 분포(도 9 및 도 10 참조)에서 수행되는 읽기 횟 수가, 종래의 문턱 전압의 분포(도 1 참조)에서 수행되는 읽기 횟수보다 줄어들게 된다. 따라서, 인접한 메모리 셀들의 커플링을 줄이면서도 플래시 메모리 장치의 동작 속도를 향상시킬 수 있게 된다.
도 7은 도 6에 도시된 LSB 프로그램 동작(S1000)의 상세 흐름도이고, 도 8은 도 6에 도시된 MSB 프로그램 동작(S2000)의 상세 흐름도이다. 그리고, 도 9는 도 6 내지 도 8에 도시된 프로그램 방법에 의해 얻어진 메모리 셀의 프로그램 상태 값들의 분포를 보여주는 도면이다.
먼저 도 7을 참조하면, LSB 프로그램 동작이 요구되면 버퍼 램(180)에 저장된 LSB 데이터는 내부 로직 블록(170)의 제어에 따라 페이지 버퍼 블록(140)으로 전송될 것이다. 이를 위해, 먼저 페이지 버퍼 블록(140)을 초기화한 후(S1100), 버퍼 램(180)에 저장된 LSB 데이터를 페이지 버퍼 블록(140)으로 로딩한다(S1200). 페이지 버퍼 블록(140)에 로드된 LSB 데이터의 값에 따라서 대응되는 메모리 셀이 선택적으로 프로그램된다(S1300). 예를 들면, LSB 데이터의 값이 '1'경우에는 프로그램 금지되고, LSB 데이터의 값이 '0'인 경우에는 대응되는 메모리 셀이 프로그램 된다.
이어서, 검증 읽기(Verify Read) 동작이 수행되어, 프로그램된 메모리 셀들이 요구되는 문턱 전압을 갖는 지의 여부가 검증된다(S1400). 그리고 나서, 현재의 프로그램 루프가 최대 프로그램 루프(Max Loop)인 지의 여부를 판별한다(S1500). S1500 단계에서의 판별 결과, 현재의 프로그램 루프가 최대 프로그램 루프가 아니면 수순은 S1300 단계로 되돌아 간다. 그리고, 현재의 프로그램 루프가 최대 프로 그램 루프이면 수순은 종료된다. 이상과 같은 멀티-비트 플래시 메모리 장치(100)의 LSB 프로그램 동작은 단일-비트 프로그램 동작과 유사한 방식으로 수행된다. 본 발명에서 수행된 LSB 프로그램 결과는 도 9에 도시된 바와 같이 넓은 문턱 전압 분포를 가지며, 상기 LSB 프로그램 결과는 'MSB 10' 프로그램 동작과 'MSB 00' 프로그램 동작에 사용된다. 한편, 도 7에서 설명된 본 발명의 LSB 프로그램 방법은 본 발명이 적용되는 일 예에 불과하며, 당업자에 의해 다양한 형태로 변경 및 변화 가능하다.
계속해서 도 8 및 도 9를 참조하면, 호스트(500)로부터 MSB 프로그램 동작이 요청되면, 프로그램될 MSB 데이터 값을 반전하여 'MSB 10' 프로그램이 수행된다(S2100). S2100 단계에서 수행되는 'MSB 10' 프로그램은 넓은 문턱 전압 분포를 갖는 'LSB 10' 상태의 메모리 셀을 'MSB 10' 상태로 프로그램하는 과정이다. S2100 단계에서는 이전에 프로그램된 데이터의 상태와, 현재 프로그램될 MSB 데이터 값에 따라서 선택적으로 수행된다. 'MSB 10' 프로그램에 대해서는 도 12 및 도 13을 참조하여 아래에서 상세히 설명될 것이다.
'MSB 10' 프로그램이 수행되고 나면, 'MSB 00' 프로그램과 'MSB 01' 프로그램이 수행된다(S2200, S2300). S2200 단계 및 S2300에서 각각 수행되는 'MSB 00' 프로그램과 'MSB 01' 프로그램은 이전에 프로그램된 데이터의 상태와, 현재 프로그램될 MSB 데이터 값에 따라서 선택적으로 수행된다. 'MSB 00' 프로그램에 대해서는 도 14 및 도 15를 참조하여 아래에서 상세히 설명될 것이다. 그리고, S2300 단계에서 수행되는 'MSB 01' 프로그램에 대해서는 도 16 및 도 17을 참조하여 아래에서 상세히 설명될 것이다. 여기서, 'MSB 00' 프로그램과 'MSB 01' 프로그램의 실행 순서는 도 8에 개시된 것에 국한되지 않으며, 이와 같은 사항은 이 분야의 통상적인 지식을 습득한 자들에게 있어 자명하다.
아래에서 설명될 본 발명의 멀티-비트 프로그램 방법은 '11', '01', '00' 그리고 '10' 상태들 중 어느 하나를 갖도록 메모리 셀들을 프로그램하기 위한 것이다. 여기서, '11' 상태를 갖는 메모리 셀은 소거된 메모리 셀이며, '01' 상태를 갖는 메모리 셀은 '11' 상태의 메모리 셀의 문턱 전압보다 높다. 그리고, '00' 상태를 갖는 메모리 셀은 '01' 상태의 메모리 셀의 문턱 전압보다 높고, '10' 상태를 갖는 메모리 셀은 '00' 상태의 메모리 셀의 문턱 전압보다 높다. 아래에서 상세히 설명되겠지만, 이와 같은 프로그램 상태 분포를 갖게 되면 프로그램된 결과를 읽어내는 읽기 동작의 횟수가 줄어들게 된다. 따라서, 멀티-비트 플래시 메모리 장치의 동작 속도를 향상시킬 수 있게 된다.
도 10은 본 발명에 따른 멀티-비트 프로그램 방법에 따른 메모리 셀의 프로그램 상태 값들의 분포와, 상기 상태 값들의 분포를 이용한 읽기 동작을 설명하기 위한 도면이다.
도 10을 참조하면, 본 발명에 따른 멀티비트 프로그램 방식에 의해 프로그램된 데이터는 '11', '01', '00' 및 '10' 상태로 프로그램된다. 이 경우, 프로그램된 LSB 비트는 각각 '1', '1', '0', '0'의 값을 갖는다. 따라서, LSB 읽기를 수행할 경우, "1, 1"의 비트와 "0, 0"의 비트를 구분할 수 있도록 1회의 읽기 동작이 수행된다. LSB 읽기 동작에는 제 2 읽기 전압(Vread2)이 사용된다. 제 2 읽기 전 압(Vread2)은 도 9에 도시된 프리-읽기 전압(Vpre2)와 동일하다.
한편, 프로그램된 MSB 비트는 각각 '1', '0', '0', '1'의 값을 갖는다. 따라서, MSB 읽기를 수행할 경우, '1', '0, 0', '1' 각각의 비트를 구분할 수 있도록 2회의 읽기 동작이 수행된다. MSB 읽기 동작에는 제 1 읽기 전압(Vread1)과 제 3 읽기 전압(Vread3)이 사용된다. 제 1 읽기 전압(Vread1)은 도 9에 도시된 프리-읽기 전압(Vpre1)와 동일하고, 제 2 읽기 전압(Vread3)은 도 9에 도시된 프리-읽기 전압(Vpre3)와 동일하다. 도 9 및 도 10에서는 프리-읽기 동작과 노말 읽기 동작을 구분하기 위해 읽기 전압의 명칭을 제 1 내지 제 3 읽기 전압(Vread1-Vread3)과, 제 1 내지 제 3 프리-읽기 전압(Vpre1-Vpre3)으로 구분하여 표기하였다. 상기 읽기 전압들(Vread1-Vread3)과 프리-읽기 전압들(Vpre1-Vpre3)의 용도는 도 11 내지 도 17에서 설명될 것이다. 도 10에 도시되어 있는 MSB 읽기 횟수는 도 1 및 도 2에 도시된 프로그램 방식보다 줄어든 것으로서, 줄어든 읽기 횟수는 플래시 메모리 장치의 고속 동작을 가능케 한다.
도 11은 도 7에 도시된 LSB 프로그램 동작시 페이지 버퍼(PB)의 데이터 흐름을 보여주는 도면이다.
도 7, 도 9 및 도 11을 참조하면, LSB 프로그램 동작은 크게 초기화 구간(S1100), 데이터 로딩 구간(S1200), 그리고 프로그램 구간(S1300-S1500)으로 구분된다. 초기화 구간 동안(S1100), 페이지 버퍼(PB)의 래치(LAT)는 N1 노드가 논리 '0'로 설정되고 N2 노드가 논리 '1'의 값으로 초기화된다. 이는 신호 경로 ①을 형성함으로써 달성된다. 이를 위해, 내부 로직 블록(170)은 페이지 버퍼(PB)의 트랜 지스터들(M2, M3, M5, M6, M7)이 턴 온 되도록 제어한다. 래치(LAT)의 초기화 상태는 프로그램 동작 동안 비트 라인으로 전원 전압(VCC)이 공급되는 프로그램 금지(Program Inhibition) 상태에 해당된다. 이와 반대로, 래치(LAT)의 N1 및 N2 노드들이 각각 논리 '1' 및 논리 '0'로 설정된 상태(또는 인버터(INV3)의 출력이 논리 '0'으로 설정된 상태)는 프로그램 동작 동안 비트 라인으로 접지 전압(GND)이 공급되는 프로그램 가능 상태에 해당된다.
데이터 로드 구간(S1200) 동안, 버퍼 램(180)에 저장되어 있는 LSB 데이터는 신호 경로 ②를 통해 페이지 버퍼(PB)의 래치(LAT)에 로드된다. 만일 래치(LAT)에 데이터 '0'이 로드되면, N1 및 N2 노드들은 논리 '1' 및 논리 '0'로 각각 설정되어, 프로그램 가능 상태가 될 것이다. 그리고, 래치(LAT)에 데이터 '1'이 로드되면, 래치(LAT)는 초기화 상태(즉, 프로그램 금지 상태)가 그대로 유지될 것이다. 래치(LAT)에 프로그램될 데이터가 로드되고 나면, 프로그램 구간(S1300-S1500) 동안 신호 경로 ③을 통해 LSB 프로그램이 수행된다. 프로그램 구간 동안 프로그램되는 데이터는 데이터 '0'에 해당되는 경우이다. 예를 들어, 래치(LAT)에 데이터 '1'이 로드된 경우 실질적인 프로그램 동작은 수행되지 않는다.
LSB 프로그램 동작 동안, 메모리 셀의 문턱 전압은 로드된 데이터에 따라 도 9의 'LSB 10'의 문턱 전압 분포 내로 이동될 것이다. 도 9에서 알 수 있는 바와 같이, 'LSB 10'의 문턱 전압 분포는 다른 문턱 전압 분포들보다 넓게 형성된다. 이 분야의 통상적인 지식을 습득한 자들에게 잘 알려진 바와 같이, 프로그램 전압 증가분이 커질수록 문턱 전압 분포는 넓게 형성된다. 그러므로, LSB 프로그램 동작의 프로그램 전압 증가분은 MSB 프로그램 동작의 프로그램 전압 증가분보다 크게 설정된다. LSB 프로그램 동작이 수행되고 나면, 'MSB 10' 프로그램과, 'MSB 00' 프로그램, 그리고 'MSB 01' 프로그램이 수행된다. LSB 프로그램 결과는 'MSB 10' 프로그램과 'MSB 00' 프로그램에 모두 사용된다. 본 발명에 따른 MSB 프로그램 동작을 상세히 살펴보면 다음과 같다.
도 12는 도 8에 도시된 'MSB 10' 프로그램 동작에 대한 상세 흐름도이고, 도 13은 도 12에 도시된 'MSB 10' 프로그램 동작시의 페이지 버퍼(PB)의 데이터 흐름을 보여주는 도면이다.
도 9, 도 12 및 도 13을 참조하면, 'MSB 10' 프로그램 동작은 크게 초기화 동작(S2110), 프리-읽기(pre-read 또는 previous data read) 동작(S2120), 데이터 로딩 동작(S2130), 및 프로그램 동작(S2140-S2150)으로 구성된다. 페이지 버퍼의 래치(LAT)는 데이터 경로 ①을 따라 초기화 된다(S2110). 초기화 동작시 래치(LAT)의 노드 N1은 논리 '0'의 값으로 세팅되고, 노드 N2는 논리 '1'의 값으로 세팅된다. 래치(LAT)의 초기화 상태는 프로그램 금지 상태에 해당된다.
래치(LAT)의 초기화가 수행되고 나면 프리-읽기(pre-read 또는 previous data read) 동작을 통해 LSB 프로그램 결과가 읽혀진다(S2120). 프리-읽기 동작은 데이터 경로 ②를 따라 수행된다. 프리-읽기 동작에는 도 9에 도시된 제 1 프리-읽기 전압(Vpre1)이 사용된다. 프리-읽기 동작(S2110)에서는 "해당 메모리 셀의 문턱 전압의 분포가 '11'의 프로그램 상태에 있는지" 또는 "해당 메모리 셀의 문턱 전압의 분포가 'LSB 10'의 프로그램 상태에 있는지" 여부가 판별된다. 예를 들어, 프리 -읽기 결과 비트 라인(BL)이 로우 레벨로 유지되는 경우, 메모리 셀은 온 셀(Vpre1 전압보다 낮은 문턱 전압을 갖는 '11'의 프로그램 상태)로서 판별되며, 그 결과 래치(LAT)는 초기화 상태로 유지된다. 이에 반해서, 프리-읽기 구간에서 비트 라인(BL)이 하이 레벨로 유지되는 경우, 메모리 셀은 오프 셀(Vpre1 전압보다 높은 문턱 전압을 가지는 'LSB 10'의 프로그램 상태)로서 판별되며, 그 결과, 래치(LAT)의 N1 노드는 논리 '0'에서 논리 '1'로 변경되고, 래치(LAT)의 N2 노드는 논리 '1'에서 논리 '0'으로 변경된다. 이러한 래치(LAT)의 상태 값은 프로그램된 데이터의 값에 따라서 재반전되거나 그대로 유지된다.
프리-읽기 동작이 완료되면, 내부 로직 블록(170)의 제어에 따라 버퍼 램(180)에 저장된 MSB 데이터가 페이지 버퍼(140)의 래치(LAT)로 로드된다(S2130). 데이터 로딩 과정은 데이터 경로 ③을 따라 수행된다. 특히, 본 발명에 따른 멀티레벨 프로그램 방법에서는 'MSB 10' 프로그램시 래치(LAT)에 데이터를 로딩할 때 MSB 데이터 값을 반전하여 로딩한다. 예를 들면, 'MSB 10' 프로그램시 버퍼 램(180)으로부터 제공되는 MSB 데이터 값이 '0'이면 페이지 버퍼(140)의 래치(LAT)는 프로그램 금지 상태로 세팅된다. 이는 실질적으로 데이터 '1'이 로딩된 것과 같게 된다. 그리고, 'MSB 10' 프로그램시 버퍼 램(180)으로부터 제공되는 MSB 데이터 값이 '1'이면 페이지 버퍼(140)의 래치(LAT)는 프로그램 가능 상태로 세팅된다. 이는 실질적으로 데이터 '0'이 로딩된 것과 같게 된다. 이를 위해 프리-읽기 동작시 세팅된 래치(LAT)의 상태 값은 로딩될 MSB 데이터 값에 따라 다음과 같이 변환된다. 예를 들면, MSB 데이터 값이 '0'이면 래치(LAT)의 노드 N1은 논리 '0'의 값으 로 재반전되고, 노드 N2는 논리 '1'의 값으로 재반전된다. 그 결과 래치(LAT)는 프로그램 금지 상태가 된다. 반면에, MSB 데이터 값이 '1'이면 래치(LAT)의 노드 N1은 논리 '1'의 값을 유지하고, 노드 N2는 논리 '0'의 값을 유지한다. 그 결과 래치(LAT)는 프로그램 가능 상태가 된다.
이상과 같이, 이전에 프로그램된 데이터의 상태와 프로그램될 데이터의 값에 따라 래치(LAT)에 데이터가 로딩되고 나면, 프로그램 동작 및 프로그램 검증 동작이 수행된다(S2140). 프로그램 과정은 데이터 경로 ④를 따라 수행된다. S2140에서 수행되는 프로그램 검증 동작에는 도 9에 도시된 검증전압 Vvrf3이 사용된다. 그리고 나서, 현재의 프로그램 동작이 마지막 루프(Max Loop) 인지 여부가 판별된다(S2150). 판별 결과, 현재의 프로그램 동작이 마지막 루프가 아니면 수순은 S2140으로 되돌아가고, 현재의 프로그램 동작이 마지막 루프이면 수순은 종료된다.
도 14는 도 8에 도시된 'MSB 00' 프로그램 방법을 보여주는 흐름도이고, 도 15는 도 14에 도시된 'MSB 00' 프로그램의 데이터 경로를 보여주는 도면이다.
도 9, 도 14 및 도 15를 참조하면, 'MSB 00' 프로그램 동작은 크게 제 1 프리-읽기 동작(S2210), 제 2 프리-읽기 동작(S2220), 및 프로그램 동작(S2230-S2240)으로 구성된다. 'MSB 00' 프로그램 동작은 'MSB 10' 프로그램 동작과 마찬가지로 LSB 프로그램 결과를 이용하여 프로그램된다. 즉, 'MSB 00' 프로그램 동작은 'LSB 10'의 프로그램 상태에 있는 메모리 셀들 중에서 'MSB 10' 프로그램에 사용되지 않은 메모리 셀들을 프로그램한다. 'MSB 00' 프로그램 동작시 래치(LAT)의 초기값은, 노드 N1이 논리 '0'이고 노드 N2는 논리 '1'이다. 이러한 래치(LAT)의 상태 값은 'MSB 10' 프로그램 동작시 프로그램되지 않았던 LSB 프로그램 결과로서, 프로그램 금지 상태에 해당된다.
제 1 프리-읽기 동작(S2210)은 데이터 경로 ①을 따라 수행된다. 제 1 프리-읽기 동작에는 도 9에 도시된 제 1 프리-읽기 전압(Vpre1)이 사용된다. 제 1 프리-읽기 동작(S2210)에서는 해당 메모리 셀의 문턱 전압의 분포가 "'11'의 프로그램 상태에 있는지", 또는 "'LSB 10' 또는 '10'의 프로그램 상태에 있는지" 여부가 판별된다. 여기서, 'LSB 10'의 프로그램 상태는 S2100 단계에서 수행된 LSB 프로그램 결과로 얻어진 메모리 셀의 문턱 전압 분포를 의미한다. 그리고, '10'의 프로그램 상태는 S2200 단계에서 수행된 'MSB 10' 프로그램 결과로 얻어진 메모리 셀의 문턱 전압 분포를 의미한다. 제 1 프리-읽기 결과 메모리 셀의 문턱 전압의 분포가 '11'의 프로그램 상태에 있는 경우, 래치(LAT)의 상태 값은 프로그램 금지 상태를 그대로 유지한다. 반면, 제 1 프리-읽기 결과, 메모리 셀의 문턱 전압의 분포가 'LSB 10' 또는 '10'의 프로그램 상태에 있는 경우 래치(LAT)의 상태 값은 반전되어 프로그램 가능 상태가 된다.
이어서, 제 2 프리-읽기 동작(S2220)이 데이터 경로 ②를 따라 수행된다. 제 2 프리-읽기 동작에는 도 9에 도시된 제 3 프리-읽기 전압(Vpre3) 전압이 사용된다. 제 2 프리-읽기 동작(S2220)에서는 해당 메모리 셀의 문턱 전압의 분포가 "LSB 10의 프로그램 상태에 있는지" 또는 "'10'의 프로그램 상태에 있는지" 여부가 판별된다. 제 2 프리-읽기 결과, 메모리 셀의 문턱 전압의 분포가 'LSB 10'의 프로그램 상태에 있는 경우 래치(LAT)의 상태 값은 프로그램 가능 상태를 그대로 유지한다. 반면, 제 2 프리-읽기 결과 메모리 셀의 문턱 전압의 분포가 '10'의 프로그램 상태에 있는 경우 래치(LAT)의 상태 값은 프로그램 금지 상태로 반전된다.
이어서, 래치(LAT)의 상태 값에 따른 프로그램 동작 및 프로그램 검증 동작이 수행된다(S2230). 프로그램 과정은 데이터 경로 ③을 따라 수행된다. S2230에서 수행되는 프로그램 검증 동작에는 도 9에 도시된 검증전압 Vvrf2이 사용된다. 그리고 나서, 현재의 프로그램 동작이 마지막 루프(Max Loop) 인지 여부가 판별된다(S2240). 판별 결과, 현재의 프로그램 동작이 마지막 루프가 아니면 수순은 S2230으로 되돌아가고, 현재의 프로그램 동작이 마지막 루프이면 수순은 종료된다.
도 16는 도 8에 도시된 'MSB 01' 프로그램 방법을 보여주는 흐름도이고, 도 17은 도 16에 도시된 'MSB 01' 프로그램의 데이터 경로를 보여주는 도면이다.
도 9, 도 16 및 도 17을 참조하면, 'MSB 01' 프로그램 동작은 크게 초기화 동작(S2310), 프리-읽기 동작(S2320), 데이터 로딩 동작(S2330), 및 프로그램 동작(S2340-S2350)으로 구성된다.
페이지 버퍼의 래치(LAT)는 데이터 경로 ①을 따라 초기화 된다(S2310). 초기화 동작시 래치(LAT)의 노드 N1은 논리 '1'의 값으로 세팅되고, 노드 N2는 논리 '0'의 값으로 세팅된다. 이와 같은 래치(LAT)의 상태는 프로그램 가능 상태에 해당된다. 래치(LAT)의 초기화가 수행되고 나면 데이터 경로 ②를 따라 프리-읽기 동작이 수행된다(S2320). 프리-읽기 동작에는 도 9에 도시된 제 1 프리-읽기 전압(Vpre1)이 사용된다. 프리-읽기 동작(S2110)에서는 "해당 메모리 셀의 문턱 전압의 분포가 '11'의 상태에 있는지" 또는 "해당 메모리 셀의 문턱 전압의 분포가 '00' 또는 '10'의 상태에 있는지" 여부가 판별된다. 이어서, 프리-읽기 동작 결과를 근거로 하여 래치(LAT)에 데이터가 로딩된다(S2330). 데이터 로딩 과정은 데이터 경로 ③을 따라 수행된다. 이때 래치(LAT)에는 로딩되는 데이터는 내부 로직 블록(170)의 제어에 의해 버퍼 램(180)으로부터 제공된다. 래치(LAT)에 데이터가 로딩되는 과정을 구체적으로 살펴보면 다음과 같다.
프리-읽기 결과 메모리 셀의 문턱 전압의 분포가 오프 셀로 판명된 경우(즉, 메모리 셀의 문턱 전압의 분포가 '00' 또는 '10'의 프로그램 상태에 있는 경우), 래치(LAT)의 초기 세팅 상태는 반전되어 프로그램 금지 상태가 된다. 이 경우, 프로그램 동작은 수행되지 않는다. 반면, 프리-읽기 결과 메모리 셀의 문턱 전압의 분포가 온 셀로 판명된 경우(즉, 메모리 셀의 문턱 전압의 분포가 '11'의 프로그램 상태에 있는 경우), 래치(LAT)의 초기 세팅 상태는 프로그램 가능 상태를 그대로 유지한다. 이러한 래치(LAT)의 상태는 프로그램될 데이터의 값에 따라서 다시 한번 반전되거나 또는 그대로 유지된다.
예를 들면, MSB 데이터 값이 '1'이면 래치(LAT)의 노드 N1은 논리 '0'의 값으로 반전되고, 노드 N2는 논리 '1'의 값으로 반전된다. 그 결과 래치(LAT)는 프로그램 금지 상태가 된다. 반면에, MSB 데이터 값이 '0'이면 래치(LAT)의 노드 N1은 논리 '1'의 값을 유지하고, 노드 N2는 논리 '0'의 값을 유지한다. 그 결과 래치(LAT)는 프로그램 가능 상태가 된다.
이상과 같이, 이전에 프로그램된 데이터의 상태와 프로그램될 데이터의 값에 따라 래치(LAT)에 데이터가 로딩되고 나면, 프로그램 동작 및 프로그램 검증 동작 이 수행된다(S2340). 프로그램 과정은 데이터 경로 ④를 따라 수행된다. S2340에서 수행되는 프로그램 검증 동작에는 도 9에 도시된 검증전압 Vvrf1이 사용된다. 그리고 나서, 현재의 프로그램 동작이 마지막 루프(Max Loop) 인지 여부가 판별된다(S2350). 판별 결과, 현재의 프로그램 동작이 마지막 루프가 아니면 수순은 S2340으로 되돌아가고, 현재의 프로그램 동작이 마지막 루프이면 수순은 종료된다.
앞에서 설명한 바와 같이, 본 발명에 따른 멀티-비트 프로그램 방법은 문턱전압의 분포가 넓게 형성되도록 LSB 프로그램을 수행한다. 그리고 나서, LSB 프로그램 결과와 버퍼 램(180)에 저장되어 있는 MSB 데이터 값에 따라서 페이지 버퍼의 래치(LAT)에 데이터를 로딩한 후, 'MSB 10' 프로그램과 'MSB 00' 프로그램을 수행한다. 그리고 나서, 버퍼 램으로부터 데이터를 재로드하여 'MSB 01' 프로그램을 수행한다. 특히, 본 발명에서는 'MSB 10' 프로그램을 위한 데이터 로딩시 버퍼 램으로부터 제공되는 데이터를 반전하고, 반전된 데이터를 페이지 버퍼의 래치에 저장한다. 그 결과, 도 10에 도시된 바와 같이 읽기 횟수를 줄일 수 있는 메모리 셀의 문턱 전압 분포를 얻을 수 있게 된다. 그 결과, 인접 메모리 셀들간의 커플링을 줄이면서도 동작 속도를 향상시킬 수 있게 된다. 또한, 앞에서 설명된 멀티-비트 프로그램 방법은, 단일의 래치 구조를 갖는 페이지 버퍼를 이용하여 수행되기 때문에 래치의 개수를 줄을 수 있게 된다.
한편, 본 발명의 플래시 메모리 장치는 앞서 설명된 페이지 버퍼 구조를 이용하여 멀티-비트 프로그램을 수행할 수 있으며, 그 외에도 캐쉬 프로그램, 그리고 페이지 카피백 기능들을 더 수행할 수 있다. 즉, 단일 래치 구조를 가지는 페이지 버퍼를 통해 단일 비트 프로그램 동작, 멀티-비트 프로그램 동작, 캐쉬 프로그램 동작, 그리고 페이지 카피백 동작을 수행하는 것이 가능하다. 이는 다양한 기능들을 지원하는 메모리 장치들을 개별적으로 관리할 필요가 없음을 의미한다.
도 18 및 도 19는 본 발명의 다른 실시예에 따른 멀티-비트 플래시 메모리 장치(200, 300)의 구성을 보여주는 블록도로서, 듀얼 래치 구조(dual latch structure)를 갖는 멀티-비트 플래시 메모리 장치(200, 300)의 구조가 도시되어 있다.
도 18을 참조하면, 본 발명에 따른 플래시 메모리 장치(200)는 메모리 셀 어레이(120), 행 디코더(130), 페이지 버퍼 블록(140), 데이터 래치 블록(250), 페이지 버퍼 디코더(260), 제어 로직 블록(270), 그리고 비트라인 선택 및 바이어스 블록(280)을 포함한다. 이들 구성 중 메모리 셀 어레이(120), 행 디코더(130), 페이지 버퍼 블록(140)의 구성은 도 3 및 도 4에 도시된 구성과 동일한 구성을 가질 수 있다. 따라서, 동일한 블록에 대해서는 동일한 참조 기호를 부가하였고, 중복되는 설명을 피하기 위해 이들 구성에 대한 상세 설명은 이하 생략하기로 한다.
도 18에서, 비트 라인 선택 및 바이어스 블록(280)은 제어 로직 블록(270)에 의해서 제어되며, 메모리 셀 어레이(120)의 비트 라인들 중 일부를 선택하도록 구성된다. 예를 들면, 비트 라인 선택 및 바이어스 블록(280)은 프로그램/읽기 동작 모드시 비트 라인들 중 홀수번 비트 라인들(BLo) 또는 짝수번 비트 라인들(BLe)을 선택하도록 구성된다. 이는 하나의 행이 2개의 페이지들로 구성됨을 의미한다. 비트 라인 선택 및 바이어스 블록(280)은 한 페이지의 비트 라인들에 대응하는 복수 의 비트 라인 선택 및 바이어스 회로들로 구성된다. 각각의 비트 라인 선택 및 바이어스 회로는 대응하는 쌍의 비트 라인들(BLe, BLo) 중 하나를 선택하도록 구성된다. 앞서 설명된 바와 같이, 하나의 행이 2개의 페이지들로 구성된다. 하지만, 하나의 행이 하나의 페이지로 또는 2보다 많은 페이지들로 구성될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
데이터 래치 블록(250)은 제어 로직 블록(270)에 의해서 제어되며, 페이지 버퍼 블록(140)으로부터 제공되는 데이터를 저장하는 메인 래치로서의 역할을 수행한다. 데이터 래치 블록(250) 내부에는 복수 개의 데이터 래치들(DL)이 구비되며, 각각의 데이터 래치(DL)에 저장된 데이터는 프로그램 동작시 선택된 비트라인을 통해 메모리 셀로 프로그램된다.
페이지 버퍼 블록(140)은 제어 로직 블록(270)에 의해서 제어되며, 비트 라인 선택 및 바이어스 회로들에 각각 대응하는 복수 개의 페이지 버퍼들(PB)로 구성된다. 각각의 페이지 버퍼(PB)는 동작 모드에 따라 감지 증폭기(sense amplifier)로서 또는 기입 드라이버(write driver)로서 동작한다. 예를 들면, 읽기 동작 모드시, 페이지 버퍼 블록(140)은 비트 라인 선택 및 바이어스 블록(280)에 의해서 선택된 비트 라인들을 통해서 메모리 셀들로부터 데이터를 감지한다. 감지된 데이터는 페이지 버퍼 디코더 블록(260)을 통해 데이터 라인 버스(또는 외부로) 출력된다. 그리고 프로그램 동작 모드시, 페이지 버퍼(PB)는 페이지 버퍼 디코더 블록(260)을 통해 입력되는 데이터를 페이지 버퍼(PB)의 래치(LAT)에 저장한다. 그리고, 각각의 페이지 버퍼(PB)는 비트 라인 선택 및 바이어스 블록(280)에 의해서 선 택된 비트 라인들을 통해서 래치(LAT)에 저장된 데이터를 대응되는 데이터 래치(DL)로 제공한다. 여기서, 페이지 버퍼(PB)의 래치(LAT)는 페이지 버퍼 디코더(260)를 통해 제공되는 데이터를 임시 저장하는 캐쉬 래치로서의 기능을 수행한다. 그러나, 경우에 따라서는 페이지 버퍼(PB)의 래치(LAT)가 메인 래치로서의 기능을 수행하고, 데이터 래치(DL)가 캐쉬 래치로서의 기능을 수행하도록 설계될 수도 있으며, 래치들(LAT, DL)의 기능은 설계 방식에 따라 변경 및 변화 가능하다.
도 18에는 서로 다른 기능 블록에 각각 형성된 듀얼 타입의 래치 구조가 도시되어 있다. 그러나, 상기 듀얼 타입의 래치는 도 19에 도시된 바와 같이 하나의 페이지 버퍼 내에 구성될 수 있다. 즉, 하나의 페이지 버퍼(350) 내부에 두 개의 래치가 구비되어, 하나는 외부로부터 제공된 데이터를 임시 저장하는 캐쉬 래치로서의 기능을 수행하고, 다른 하나는 캐쉬 래치에 저장된 데이터를 로딩하여 저장하는 메인 래치로서의 기능을 수행할 수 있다. 이 경우, 본 발명에 적용될 수 있는 듀얼 래치 구조의 페이지 버퍼는 특정 구조의 페이지 버퍼에만 국한되지 않고, 다양한 형태를 가질 수 있다.
도 20은 본 발명의 다른 실시예에 따른 멀티-비트 플래시 메모리 장치의 멀티-비트 프로그램 방법을 개략적으로 보여주는 흐름도로서, 듀얼 래치 구조를 가지는 멀티-비트 플래시 메모리 장치의 프로그램 방법이 도시되어 있다. 도 20에 도시된 본 발명의 멀티-비트 프로그램 방법은 도 6에 도시된 프로그램 방법과 동일한 프로그램 결과를 얻기 위한 것으로, '11', '01', '00' 그리고 '10' 상태들 중 어느 하나를 갖도록 메모리 셀들을 프로그램하며, 프로그램 과정 및 결과는 도 9 및 도 10과 동일하다.
도 20을 참조하면, 호스트(500)로부터 프로그램 동작이 요청되면, 멀티-비트 플래시 메모리 장치(200, 300)는 먼저 단일-비트 프로그램 동작과 유사한 방식으로 LSB 프로그램 동작을 수행한다(S3000). 그리고 나서, 2개의 래치를 통해 데이터를 재 로딩하여 MSB 프로그램을 수행한다(S4000). 아래에서 상세히 설명되겠지만, 본 발명에 따른 MSB 프로그램에서는 첫번째 MSB 프로그램시 프로그램될 데이터를 반전하여 로딩한다.
본 발명에서 수행되는 LSB 프로그램 동작(S3000)과 MSB 프로그램 동작(S4000)은 연속적으로 수행되거나 비연속적으로 수행될 수 있다. 도 20에서는 LSB 프로그램 동작(S3000)과 MSB 프로그램 동작(S3000)이 연속적으로 수행되는 경우를 예시적으로 보여주고 있다.
도 21은 도 20에 도시된 LSB 프로그램 동작(S3000)의 상세 흐름도이다.
도 21을 참조하면, LSB 프로그램 동작이 요구되면 먼저 캐쉬 래치로서 사용되는 제 1 래치가 초기화된다(S3100). 그리고 나서, 페이지 버퍼 디코더(280)를 통해 입력된 데이터가 제 1 래치로 로딩된다(S3200). 여기서, 제 1 래치는 페이지 버퍼(PB)의 래치(LAT)에 해당된다. 이어서, 메인 래치로서 사용되는 제 2 래치가 초기화되고(S3300), 제 1 래치에 저장되어 있는 데이터가 제 2 래치로 로딩된다(S3400). 여기서, 제 2 래치는 데이터 래치 블록(250)의 데이터 래치(DL) 또는 페이지 버퍼(350) 내부에 구비되어 있는 다른 하나의 래치에 해당된다. S3400 단계에서 제 2 래치에 프로그램될 데이터가 로딩되고 나면, 상기 제 2 래치의 데이터는 메모리 셀 어레이(120)에 프로그램된다(S3500). 이어서, 검증 읽기(Verify Read) 동작이 수행되어, 프로그램된 메모리 셀들이 요구되는 문턱 전압을 갖는 지의 여부가 검증된다(S3600). 그리고 나서, 현재의 프로그램 루프가 최대 프로그램 루프(Max Loop)인 지의 여부를 판별한다(S3700). S3700 단계에서의 판별 결과, 현재의 프로그램 루프가 최대 프로그램 루프가 아니면 수순은 S3500 단계로 되돌아 간다. 그리고, 현재의 프로그램 루프가 최대 프로그램 루프이면 수순은 종료된다.
이상과 같은 멀티-비트 플래시 메모리 장치(200, 300)의 LSB 프로그램 동작은 듀얼 래치 구조를 가진 플래시 메모리 장치의 단일-비트 프로그램 동작과 유사한 방식으로 수행된다. 본 발명에서 수행된 LSB 프로그램 결과는 넓은 문턱 전압 분포를 가지며(도 9 참조), 상기 LSB 프로그램 결과는 'MSB 10' 프로그램 동작과 'MSB 00' 프로그램 동작에 사용된다. 한편, 도 21에서 설명된 본 발명의 LSB 프로그램 방법은 본 발명이 적용되는 일 예에 불과하며, 당업자에 의해 다양한 형태로 변경 및 변화 가능하다.
도 22는 도 20에 도시된 MSB 프로그램 동작(S4000)의 상세 흐름도이다.
도 9 및 도 22를 참조하면, 호스트로부터 MSB 프로그램 동작이 요청되면, 프로그램될 MSB 데이터 값을 반전하여 'MSB 10' 프로그램이 수행된다(S4100). 'MSB 10' 프로그램은 넓은 문턱 전압 분포를 갖는 'LSB 10' 상태의 데이터를 'MSB 10' 상태로 프로그램하는 과정이다. S4100 단계에서는 이전에 프로그램된 데이터의 상태와, 현재 프로그램될 MSB 데이터 값에 따라서 선택적으로 수행된다.
S4100 단계에서 수행되는 'MSB 10' 프로그램은, 버퍼 램(180) 대신에 제 1 래치를 사용하고, 페이지 버퍼의 래치(도 5의 LAT) 대신에 제 2 래치를 사용한다는 점을 제외하면, 도 13에 도시된 'MSB 10' 프로그램 방법과 사실상 동일하다. 'MSB 10' 프로그램에서는 LSB 프로그램이 수행된 메모리 셀에 대해 프로그램을 수행하되, 제 1 래치에 저장되어 있는 데이터가 '1'의 값을 가질 경우 제 2 래치에 데이터 '0'의 값을 로딩한다. 그 결과, 제 2 래치는 프로그램 가능 상태로 세팅된다. 그리고, 제 1 래치에 저장되어 있는 데이터가 '0'의 값을 가질 경우 제 2 래치에 데이터 '1'의 값을 로딩한다. 그 결과, 제 2 래치는 프로그램 금지 상태로 세팅된다. 이와 같은 제 2 래치에 대한 데이터 로딩 동작은, 결국은 제 1 래치의 데이터를 반전하여 로딩한 것과 같은 결과와 같게 된다.
'MSB 10' 프로그램이 수행되고 나면, 'MSB 00' 프로그램과 'MSB 01' 프로그램이 수행된다(S4200, S4300).
S4200 단계에서 수행되는 'MSB 00' 프로그램은 메모리 셀의 문턱 전압의 분포가 'LSB 10' 상태에 있는 메모리 셀들(즉, 'MSB 10' 프로그램시 제외된 나머지 메모리 셀들)에 대해 수행되며, 현재 프로그램될 MSB 데이터 값에 따라서 프로그램 동작이 선택적으로 수행된다. S4200 단계에서 수행되는 'MSB 00' 프로그램은, 버퍼 램(180) 대신에 제 1 래치를 사용하고, 페이지 버퍼의 래치(도 5의 LAT) 대신에 제 2 래치를 사용한다는 점을 제외하면, 사실상 도 15에 도시된 'MSB 00' 프로그램 방법과 사실상 동일하다. 'MSB 00' 프로그램에서는 제 1 래치에 저장되어 있는 데이터 값이 '1'이면 제 2 래치가 프로그램 금지 상태로 세팅된다. 프로그램 금지 상태로 세팅된 래치에 대응되는 메모리 셀은 'MSB 00' 프로그램 동작 구간 동안 프로그 램되지 않는다. 그리고, 제 1 래치에 저장되어 있는 데이터 값이 '0'이면 제 2 래치가 프로그램 가능 상태로 세팅된다. 프로그램 가능 상태로 세팅된 래치에 대응되는 메모리 셀은 'MSB 00' 프로그램 동작 구간 동안 프로그램된다.
S4300 단계에서 수행되는 'MSB 01' 프로그램은 메모리 셀의 문턱 전압의 분포가 '11' 상태에 있는 메모리 셀들에 대해 수행되며, 현재 프로그램될 MSB 데이터 값에 따라서 프로그램 동작이 선택적으로 수행된다. S4300 단계에서 수행되는 'MSB 01' 프로그램은, 버퍼 램(180) 대신에 제 1 래치를 사용하고, 페이지 버퍼의 래치(도 5의 LAT) 대신에 제 2 래치를 사용한다는 점을 제외하면, 사실상 도 17에 도시된 'MSB 01' 프로그램 방법과 사실상 동일하다. 'MSB 01' 프로그램에서는 제 1 래치에 저장된 데이터 값이 '1'이면 제 2 래치가 프로그램 금지 상태로 세팅된다. 프로그램 금지 상태로 세팅된 래치에 대응되는 메모리 셀은 'MSB 01' 프로그램 동작 구간 동안 프로그램되지 않는다. 그리고, 제 1 래치에 저장된 데이터 값이 '0'이면 제 2 래치가 프로그램 가능 상태로 세팅된다. 프로그램 가능 상태로 세팅된 래치에 대응되는 메모리 셀은 'MSB 01' 프로그램 동작 구간 동안 프로그램된다.
앞에서 설명한 바와 같이, 본 발명에 따른 멀티-비트 프로그램 방법은 프로그램 상태 천이가 점진적으로 수행되는 멀티-비트 프로그램 방식을 따른다. 이를 위해서는 이전에 프로그램된 데이터와 현재 프로그램될 데이터의 비교가 요구된다. 도 18 및 도 19에 도시된 멀티-비트 플래시 메모리 장치(200, 300)는 듀얼 래치 구조를 가지기 때문에, 상기 비교가 요구될 때마다 제어 로직 블록(270)의 제어에 따라서 제 1 래치에 저장된 데이터를 제 2 래치로 덤프한다. 이와 같은 내부적인 MSB 데이터의 로딩 동작에 의해서 듀얼 래치 구조를 갖는 멀티-비트 플래시 메모리 장치에서 멀티-비트 데이터(즉, 2-비트 데이터)를 프로그램하는 하는 것이 가능해 진다.
또한, 본 발명에 따른 멀티-비트 프로그램 방법은 프로그램된 셀로부터 데이터를 읽어들이는 횟수를 줄일 수 있도록 첫번째 MSB 프로그램시(즉, 'MSB 10' 프로그램시) 프로그램될 데이터 비트를 반전하여 프로그램한다. 그 결과, MSB 프로그램 상태 값들의 분포가 기존과 달라지게 되어(도 9 및 도 10 참조), 기존의 3회의 MSB 읽기 동작을 2회로 줄일 수 있게 된다. 본 발명에서 프로그램될 데이터를 반전하는 구성은 단지 제어신호의 발생을 제어하는 것만으로 구현 가능하다. 따라서, 기존의 페이지 버퍼의 구성을 그대로 이용하여 구현 가능하다. 따라서, 별도의 회로 구성을 추가로 필요로 하지 않는다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
이상과 같은 본 발명에 의하면, 간단한 프로그램 방식의 변경만으로도 래치 개수의 제약 및 프로그램 복잡도를 효과적으로 줄일 수 있다. 또한, 인접 메모리 셀들간의 커플링 현상을 줄이면서도 플래시 메모리 장치의 동작 속도를 향상시킬 수 있게 된다.

Claims (30)

  1. LSB 데이터 값에 응답해서 소거 상태의 메모리 셀들에 대해 LSB 프로그램을 수행하는 단계;
    MSB 데이터 값을 반전하여 LSB 프로그램된 메모리 셀들에 대해 제 1 MSB 프로그램을 수행하는 단계;
    상기 LSB 프로그램된 메모리 셀들 중 상기 제 1 MSB 프로그램에서 제외된 메모리 셀들에 대해 제 2 MSB 프로그램을 수행하는 단계; 그리고
    상기 MSB 데이터 값에 응답해서 상기 소거 상태의 메모리 셀들에 대해 제 3 MSB 프로그램을 수행하는 단계를 포함하는 것을 특징으로 하는 멀티-비트 플래시 메모리의 프로그램 방법.
  2. 제 1 항에 있어서,
    상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱 전압보다 높고,
    상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고,
    상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고, 그리고
    상기 LSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱전압보다 높고 상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압 보다 낮은 것을 특징으로 하는 멀티-비트 플래시 메모리의 프로그램 방법.
  3. 제 1 항에 있어서,
    상기 제 1 MSB 프로그램, 상기 제 2 MSB 프로그램, 및 상기 제 3 MSB 프로그램 결과 얻어진 문턱전압 분포는 각각 '10'의 프로그램 상태, '00'의 프로그램 상태, 및 '01'의 프로그램 상태에 대응되는 것을 특징으로 하는 멀티-비트 플래시 메모리의 프로그램 방법.
  4. 제 1 항에 있어서,
    상기 각각의 프로그램은 단일 래치 구조의 페이지 버퍼를 이용하여 수행되는 것을 특징으로 하는 멀티-비트 플래시 메모리의 프로그램 방법.
  5. 제 4 항에 있어서,
    상기 LSB 데이터 또는 상기 MSB 데이터는 상기 각각의 프로그램이 요청될 때마다 버퍼 램으로부터 상기 페이지 버퍼로 로딩되는 것을 특징으로 하는 멀티-비트 플래시 메모리의 프로그램 방법.
  6. 제 1 항에 있어서,
    상기 각각의 프로그램은 듀얼 래치 구조의 페이지 버퍼를 이용하여 수행되는 것을 특징으로 하는 멀티-비트 플래시 메모리의 프로그램 방법.
  7. 제 6 항에 있어서,
    상기 LSB 데이터 또는 상기 MSB 데이터는 제 1 래치에 임시 저장되었다가, 상기 각각의 프로그램 동작시 제 2 래치로 덤프되는 것을 특징으로 하는 멀티-비트 플래시 메모리의 프로그램 방법.
  8. 행들과 열들로 배열된 메모리 셀들의 어레이와, 단일의 래치 구조를 갖는 페이지 버퍼와, 버퍼 램을 포함하는 멀티-비트 플래시 메모리 장치를 프로그램하는 방법에 있어서:
    LSB 데이터 값에 응답해서 소거 상태의 메모리 셀들에 대해 LSB 프로그램을 수행하는 단계;
    MSB 데이터 값을 반전하여 LSB 프로그램된 메모리 셀들에 대해 제 1 MSB 프로그램을 수행하는 단계;
    상기 LSB 프로그램된 메모리 셀들 중 상기 제 1 MSB 프로그램에서 제외된 메모리 셀들에 대해 제 2 MSB 프로그램을 수행하는 단계; 그리고
    상기 MSB 데이터 값에 응답해서 상기 소거 상태의 메모리 셀들에 대해 제 3 MSB 프로그램을 수행하는 단계를 포함하며,
    LSB 데이터 또는 상기 MSB 데이터는 상기 각각의 프로그램시 상기 버퍼 램으 로부터 상기 페이지 버퍼로 로딩되는 것을 특징으로 하는 멀티-비트 플래시 메모리의 프로그램 방법.
  9. 제 8 항에 있어서,
    상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱 전압보다 높고,
    상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고,
    상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고, 그리고
    상기 LSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱전압보다 높고 상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압 보다 낮은 것을 특징으로 하는 멀티-비트 플래시 메모리의 프로그램 방법.
  10. 제 8 항에 있어서,
    상기 제 1 MSB 프로그램, 상기 제 2 MSB 프로그램, 및 상기 제 3 MSB 프로그램 결과 얻어진 문턱전압 분포는 각각 '10'의 프로그램 상태, '00'의 프로그램 상태, 및 '01'의 프로그램 상태에 대응되는 것을 특징으로 하는 멀티-비트 플래시 메모리의 프로그램 방법.
  11. 제 8 항에 있어서,
    상기 LSB 프로그램 단계는,
    상기 페이지 버퍼를 초기화하는 단계;
    상기 LSB 데이터를 상기 페이지 버퍼로 로드하는 단계; 그리고
    상기 페이지 버퍼에 로드된 상기 LSB 데이터에 따라, 상기 선택된 메모리 셀들을 선택적으로 프로그램하는 단계를 포함하며,
    상기 페이지 버퍼의 초기화 상태는 상기 데이터 로드시 상기 LSB 데이터의 값에 따라 그대로 유지되거나 반전되는 것을 특징으로 하는 프로그램 방법.
  12. 제 8 항에 있어서,
    상기 제 1 MSB 프로그램 단계는,
    상기 페이지 버퍼를 초기화하는 단계;
    이전에 수행된 프로그램 상태를 읽는 프리-읽기 동작을 수행하는 단계;
    상기 프리-읽기 결과, 해당 메모리 셀이 상기 LSB 프로그램 결과에 해당될 경우 상기 페이지 버퍼를 프로그램 가능 생태로 세팅하는 단계;
    상기 버퍼 램에 저장되어 있는 상기 MSB 데이터를 반전하여 상기 페이지 버퍼에 로드하는 단계; 그리고
    상기 페이지 버퍼에 로드된 상기 반전된 MSB 데이터에 따라, 상기 선택된 메모리 셀들을 선택적으로 프로그램하는 단계를 포함하는 것을 특징으로 하는 프로그 램 방법.
  13. 제 8 항에 있어서,
    상기 제 2 MSB 프로그램 단계는,
    이전에 수행된 프로그램 상태를 읽는 제 1 프리-읽기 동작을 수행하는 단계;
    상기 제 1 프리-읽기 결과, 해당 메모리 셀이 상기 LSB 프로그램 결과 보다 같거나 높은 문턱 전압을 가질 경우 상기 페이지 버퍼를 프로그램 가능 생태로 세팅하는 단계;
    제 2 프리-읽기 동작을 수행하는 단계;
    상기 제 2 프리-읽기 결과, 해당 메모리 셀이 상기 제 1 MSB 프로그램 결과 보다 같거나 높은 경우 상기 페이지 버퍼를 프로그램 금지 생태로 세팅하는 단계; 그리고
    상기 프로그램 가능 상태의 메모리 셀들을 프로그램하는 단계를 포함하는 것을 특징으로 하는 프로그램 방법.
  14. 제 8 항에 있어서,
    상기 제 3 MSB 프로그램 단계는,
    상기 페이지 버퍼를 초기화하는 단계;
    이전에 수행된 프로그램 상태를 읽는 프리-읽기 동작을 수행하는 단계;
    상기 프리-읽기 결과, 해당 메모리 셀이 상기 소거된 메모리 셀인 경우 상기 페이지 버퍼를 프로그램 가능 생태로 세팅하는 단계;
    상기 버퍼 램에 저장되어 있는 상기 MSB 데이터를 상기 페이지 버퍼에 로드하는 단계; 그리고
    상기 페이지 버퍼에 로드된 상기 MSB 데이터에 따라, 상기 선택된 메모리 셀들을 선택적으로 프로그램하는 단계를 포함하는 것을 특징으로 하는 프로그램 방법.
  15. 행들과 열들로 배열된 메모리 셀들의 어레이와, 듀얼 래치 구조를 갖는 페이지 버퍼를 포함하는 멀티-비트 플래시 메모리 장치를 프로그램하는 방법에 있어서:
    LSB 데이터 값에 응답해서 소거 상태의 메모리 셀들에 대해 LSB 프로그램을 수행하는 단계;
    MSB 데이터 값을 반전하여 LSB 프로그램된 메모리 셀들에 대해 제 1 MSB 프로그램을 수행하는 단계;
    상기 LSB 프로그램된 메모리 셀들 중 상기 제 1 MSB 프로그램에서 제외된 메모리 셀들에 대해 제 2 MSB 프로그램을 수행하는 단계; 그리고
    상기 MSB 데이터 값에 응답해서 상기 소거 상태의 메모리 셀들에 대해 제 3 MSB 프로그램을 수행하는 단계를 포함하며,
    상기 LSB 데이터 또는 상기 MSB 데이터는 제 1 래치에 임시 저장되었다가, 상기 각각의 프로그램 동작을 수행하기 위해 제 2 래치로 덤프되는 것을 특징으로 하는 멀티-비트 플래시 메모리의 프로그램 방법.
  16. 제 15 항에 있어서,
    상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱 전압보다 높고,
    상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고,
    상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고, 그리고
    상기 LSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱전압보다 높고 상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압 보다 낮은 것을 특징으로 하는 멀티-비트 플래시 메모리의 프로그램 방법.
  17. 제 15 항에 있어서,
    상기 제 1 MSB 프로그램, 상기 제 2 MSB 프로그램, 및 상기 제 3 MSB 프로그램 결과 얻어진 문턱전압 분포는 각각 '10'의 프로그램 상태, '00'의 프로그램 상태, 및 '01'의 프로그램 상태에 대응되는 것을 특징으로 하는 멀티-비트 플래시 메모리의 프로그램 방법.
  18. 행들과 열들로 배열된 메모리 셀들의 어레이;
    각각이 단일의 래치 구조를 갖는 복수 개의 페이지 버퍼들을 구비한 페이지 버퍼 블록;
    멀티-비트 프로그램 동작시 외부로부터의 프로그램 데이터를 임시 저장하는 버퍼 램; 그리고
    상기 멀티-비트 프로그램 동작시 상기 버퍼 램에 저장된 프로그램 데이터가 상기 페이지 버퍼 블록으로 로드되도록 상기 페이지 버퍼 블록과 상기 버퍼 램을 제어하는 제어 로직을 포함하며,
    상기 멀티-비트 프로그램시, 이전 프로그램 결과와 프로그램될 데이터 값에 응답해서 상기 프로그램 데이터 값이 선택적으로 반전되어 프로그램되는 것을 특징으로 하는 멀티-비트 플래시 메모리 장치.
  19. 제 18 항에 있어서,
    상기 제어 로직은, 상기 멀티-비트 프로그램 동작시 LSB 데이터 값에 응답해서 소거 상태의 메모리 셀들에 대해 LSB 프로그램을 수행하는 동작; MSB 데이터 값을 반전하여 LSB 프로그램된 메모리 셀들에 대해 제 1 MSB 프로그램을 수행하는 동작; 상기 LSB 프로그램된 메모리 셀들 중 상기 제 1 MSB 프로그램에서 제외된 메모리 셀들에 대해 제 2 MSB 프로그램을 수행하는 동작; 그리고 상기 MSB 데이터 값에 응답해서 상기 소거 상태의 메모리 셀들에 대해 제 3 MSB 프로그램을 수행하는 동작이 수행되도록 제어하는 것을 특징으로 하는 멀티-비트 플래시 메모리 장치.
  20. 제 19 항에 있어서,
    상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱 전압보다 높고,
    상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고,
    상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고, 그리고
    상기 LSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱전압보다 높고 상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압 보다 낮은 것을 특징으로 하는 멀티-비트 플래시 메모리 장치.
  21. 제 19 항에 있어서,
    상기 제 1 MSB 프로그램, 상기 제 2 MSB 프로그램, 및 상기 제 3 MSB 프로그램 결과 얻어진 문턱전압 분포는 각각 '10'의 프로그램 상태, '00'의 프로그램 상태, 및 '01'의 프로그램 상태에 대응되는 것을 특징으로 하는 멀티-비트 플래시 메모리 장치.
  22. 제 19 항에 있어서,
    상기 LSB 데이터 또는 상기 MSB 데이터는 상기 버퍼 램으로부터 상기 페이지 버퍼로 로딩되는 것을 특징으로 하는 멀티-비트 플래시 메모리 장치.
  23. 행들과 열들로 배열된 메모리 셀들의 어레이;
    각각이 제 1 및 제 2 래치를 갖는 복수 개의 페이지 버퍼들을 구비한 페이지 버퍼 블록; 그리고
    상기 멀티-비트 프로그램 동작시 상기 제 1 래치에 저장된 프로그램 데이터가 상기 제 2 래치로 로드되도록 상기 페이지 버퍼 블록을 제어하는 제어 로직을 포함하며,
    상기 멀티-비트 프로그램시, 이전 프로그램 결과와 프로그램될 데이터 값에 응답해서 상기 프로그램 데이터 값이 선택적으로 반전되어 프로그램되는 것을 특징으로 하는 멀티-비트 플래시 메모리 장치.
  24. 제 23 항에 있어서,
    상기 제어 로직은, 상기 멀티-비트 프로그램 동작시 LSB 데이터 값에 응답해서 소거 상태의 메모리 셀들에 대해 LSB 프로그램을 수행하는 동작; MSB 데이터 값을 반전하여 LSB 프로그램된 메모리 셀들에 대해 제 1 MSB 프로그램을 수행하는 동작; 상기 LSB 프로그램된 메모리 셀들 중 상기 제 1 MSB 프로그램에서 제외된 메모리 셀들에 대해 제 2 MSB 프로그램을 수행하는 동작; 그리고 상기 MSB 데이터 값에 응답해서 상기 소거 상태의 메모리 셀들에 대해 제 3 MSB 프로그램을 수행하는 동작이 수행되도록 제어하는 것을 특징으로 하는 멀티-비트 플래시 메모리 장치.
  25. 제 23 항에 있어서,
    상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱 전압보다 높고,
    상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고,
    상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고, 그리고
    상기 LSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱전압보다 높고 상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압 보다 낮은 것을 특징으로 하는 멀티-비트 플래시 메모리 장치.
  26. 제 24 항에 있어서,
    상기 제 1 MSB 프로그램, 상기 제 2 MSB 프로그램, 및 상기 제 3 MSB 프로그램 결과 얻어진 문턱전압 분포는 각각 '10'의 프로그램 상태, '00'의 프로그램 상태, 및 '01'의 프로그램 상태에 대응되는 것을 특징으로 하는 멀티-비트 플래시 메모리 장치.
  27. 행들과 열들로 배열된 메모리 셀들의 어레이;
    각각이 단일 래치를 갖는 복수 개의 페이지 버퍼들을 구비한 페이지 버퍼 블록;
    상기 각각의 페이지 버퍼에 대응되는 복수 개의 데이터 래치들을 구비한 데이터 래치 블록; 그리고
    상기 멀티-비트 프로그램 동작시 상기 페이지 버퍼에 저장된 프로그램 데이터가 대응되는 데이터 래치로 로드되도록 상기 페이지 버퍼 블록과 상기 데이터 래치 블록을 제어하는 제어 로직을 포함하며,
    상기 멀티-비트 프로그램시, 이전 프로그램 결과와 프로그램될 데이터 값에 응답해서 상기 프로그램 데이터 값이 선택적으로 반전되어 프로그램되는 것을 특징으로 하는 멀티-비트 플래시 메모리 장치.
  28. 제 27 항에 있어서,
    상기 제어 로직은, 상기 멀티-비트 프로그램 동작시 LSB 데이터 값에 응답해서 소거 상태의 메모리 셀들에 대해 LSB 프로그램을 수행하는 동작; MSB 데이터 값을 반전하여 LSB 프로그램된 메모리 셀들에 대해 제 1 MSB 프로그램을 수행하는 동작; 상기 LSB 프로그램된 메모리 셀들 중 상기 제 1 MSB 프로그램에서 제외된 메모리 셀들에 대해 제 2 MSB 프로그램을 수행하는 동작; 그리고 상기 MSB 데이터 값에 응답해서 상기 소거 상태의 메모리 셀들에 대해 제 3 MSB 프로그램을 수행하는 동작이 수행되도록 제어하는 것을 특징으로 하는 멀티-비트 플래시 메모리 장치.
  29. 제 28 항에 있어서,
    상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱 전압보다 높고,
    상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 3 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고,
    상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 제 2 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압보다 높고, 그리고
    상기 LSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압은 상기 소거 상태의 메모리 셀의 문턱전압보다 높고 상기 제 1 MSB 프로그램 결과로 얻어진 메모리 셀의 문턱전압 보다 낮은 것을 특징으로 하는 멀티-비트 플래시 메모리 장치.
  30. 제 28 항에 있어서,
    상기 제 1 MSB 프로그램, 상기 제 2 MSB 프로그램, 및 상기 제 3 MSB 프로그램 결과 얻어진 문턱전압 분포는 각각 '10'의 프로그램 상태, '00'의 프로그램 상태, 및 '01'의 프로그램 상태에 대응되는 것을 특징으로 하는 멀티-비트 플래시 메모리 장치.
KR1020060080698A 2006-08-24 2006-08-24 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법 KR100919156B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020060080698A KR100919156B1 (ko) 2006-08-24 2006-08-24 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법
EP07016055A EP1892721A3 (en) 2006-08-24 2007-08-16 Method of programming a multi-bit non-volatile memory device and multi-bit non-volatile memory device
US11/843,219 US7684238B2 (en) 2006-08-24 2007-08-22 Methods of programming multi-bit flash memory devices and related devices
JP2007218927A JP5825749B2 (ja) 2006-08-24 2007-08-24 マルチ−ビットフラッシュメモリー装置とそのプログラム方法
CN2007101701193A CN101145396B (zh) 2006-08-24 2007-08-24 编程多位闪存设备和相关设备的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060080698A KR100919156B1 (ko) 2006-08-24 2006-08-24 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법

Publications (2)

Publication Number Publication Date
KR20080018495A true KR20080018495A (ko) 2008-02-28
KR100919156B1 KR100919156B1 (ko) 2009-09-28

Family

ID=38640086

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060080698A KR100919156B1 (ko) 2006-08-24 2006-08-24 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법

Country Status (5)

Country Link
US (1) US7684238B2 (ko)
EP (1) EP1892721A3 (ko)
JP (1) JP5825749B2 (ko)
KR (1) KR100919156B1 (ko)
CN (1) CN101145396B (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8331145B2 (en) 2009-03-25 2012-12-11 Samsung Electronics Co., Ltd. Nonvolatile memory device, system, and programming method
KR20160087431A (ko) * 2015-01-13 2016-07-22 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 및 그것의 프로그램 방법
US10522219B2 (en) 2012-11-05 2019-12-31 SK Hynix Inc. Semiconductor memory device and method of programming multi bit data of the same

Families Citing this family (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8365040B2 (en) 2007-09-20 2013-01-29 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
KR101292574B1 (ko) * 2007-10-08 2013-08-16 삼성전자주식회사 멀티 비트 프로그래밍 장치 및 방법
US8694715B2 (en) 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
US7679972B2 (en) * 2007-11-19 2010-03-16 Spansion Llc High reliable and low power static random access memory
WO2009072102A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices
WO2009074978A2 (en) 2007-12-12 2009-06-18 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
US8972472B2 (en) 2008-03-25 2015-03-03 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
US7729166B2 (en) * 2008-07-02 2010-06-01 Mosaid Technologies Incorporated Multiple-bit per cell (MBC) non-volatile memory apparatus and system having polarity control and method of programming same
JP2010140521A (ja) * 2008-12-09 2010-06-24 Powerchip Semiconductor Corp 不揮発性半導体記憶装置とその読み出し方法
US8458574B2 (en) * 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8819385B2 (en) 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US20100332922A1 (en) * 2009-06-30 2010-12-30 Mediatek Inc. Method for managing device and solid state disk drive utilizing the same
US8130543B2 (en) * 2009-08-13 2012-03-06 Macronix International Co., Ltd. Method and apparatus for increasing memory programming efficiency through dynamic switching of sense amplifiers
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US8730729B2 (en) 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8724387B2 (en) 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
US9037777B2 (en) * 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
KR101829208B1 (ko) 2009-12-31 2018-02-20 에스케이하이닉스 주식회사 반도체 메모리 장치의 동작 방법
KR101626080B1 (ko) * 2010-02-17 2016-06-01 삼성전자주식회사 페이지 버퍼 관리 방법과 상기 방법을 수행할 수 있는 장치들
US8516274B2 (en) * 2010-04-06 2013-08-20 Densbits Technologies Ltd. Method, system and medium for analog encryption in a flash memory
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US8468431B2 (en) 2010-07-01 2013-06-18 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US8508992B2 (en) * 2010-07-09 2013-08-13 SK Hynix Inc. Semiconductor memory device and method of operating the same
WO2012009812A1 (en) * 2010-07-21 2012-01-26 Mosaid Technologies Incorporated Multipage program scheme for flash memory
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
US8996790B1 (en) 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
JP2013041634A (ja) * 2011-08-11 2013-02-28 Fujitsu Ltd 不揮発性半導体記憶装置
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
US8885405B2 (en) * 2013-01-31 2014-11-11 Ememory Technology Inc. Flash memory and associated programming method
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
KR20160044923A (ko) * 2014-10-16 2016-04-26 에스케이하이닉스 주식회사 복수의 메모리 셀들을 포함하는 반도체 메모리 장치 및 그것의 동작 방법
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
KR102239868B1 (ko) * 2014-11-28 2021-04-13 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
JP2016173868A (ja) * 2015-03-17 2016-09-29 株式会社東芝 不揮発性半導体記憶装置
TWI550612B (zh) * 2015-03-23 2016-09-21 群聯電子股份有限公司 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
US10466908B2 (en) * 2015-08-25 2019-11-05 Toshiba Memory Corporation Memory system that buffers data before writing to nonvolatile memory
KR102329800B1 (ko) * 2015-10-22 2021-11-22 삼성전자주식회사 메모리 장치 및 메모리 장치의 에지 워드라인 관리 방법
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
JP2018005959A (ja) * 2016-06-30 2018-01-11 東芝メモリ株式会社 メモリシステムおよび書き込み方法
US20180039427A1 (en) * 2016-08-08 2018-02-08 Nuvoton Technology Corporation Reducing programming time of memory devices using data encoding
KR20200048318A (ko) 2018-10-29 2020-05-08 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
JP2020102286A (ja) * 2018-12-21 2020-07-02 キオクシア株式会社 半導体記憶装置
CN109859683B (zh) * 2019-04-12 2023-08-04 深圳市德普微电子有限公司 一种led显示屏单双锁存自动切换芯片

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960000616B1 (ko) 1993-01-13 1996-01-10 삼성전자주식회사 불휘발성 반도체 메모리 장치
JP3153730B2 (ja) * 1995-05-16 2001-04-09 株式会社東芝 不揮発性半導体記憶装置
KR0172408B1 (ko) 1995-12-11 1999-03-30 김광호 다수상태 불휘발성 반도체 메모리 및 그의 구동방법
US5724284A (en) 1996-06-24 1998-03-03 Advanced Micro Devices, Inc. Multiple bits-per-cell flash shift register page buffer
US6335878B1 (en) 1998-07-28 2002-01-01 Hitachi, Ltd. Non-volatile multi-level semiconductor flash memory device and method of driving same
WO1998001861A1 (fr) 1996-07-10 1998-01-15 Hitachi, Ltd. Memoire remanente a semi-conducteurs
JPH1092186A (ja) * 1996-09-12 1998-04-10 Hitachi Ltd 半導体記憶装置
KR100205240B1 (ko) 1996-09-13 1999-07-01 윤종용 단일 비트 및 다중 비트 셀들이 장착된 불휘발성 반도체 메모리 장치
KR100206709B1 (ko) 1996-09-21 1999-07-01 윤종용 멀티비트 불휘발성 반도체 메모리의 셀 어레이의 구조 및 그의 구동방법
US5862074A (en) 1996-10-04 1999-01-19 Samsung Electronics Co., Ltd. Integrated circuit memory devices having reconfigurable nonvolatile multi-bit memory cells therein and methods of operating same
KR100259972B1 (ko) 1997-01-21 2000-06-15 윤종용 메모리 셀당 2개 이상의 저장 상태들을 갖는 불휘발성 반도체 메모리 장치
JP3156636B2 (ja) * 1997-05-30 2001-04-16 日本電気株式会社 不揮発性半導体記憶装置
JPH11144479A (ja) 1997-11-10 1999-05-28 New Koa Technology Kk 不揮発性半導体多値メモリ装置
US5867429A (en) 1997-11-19 1999-02-02 Sandisk Corporation High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates
KR100266744B1 (ko) 1997-12-29 2000-09-15 윤종용 고집적 가능한 멀티-비트 데이터 래치 회로를 갖는 반도체 메모리 장치
KR100266745B1 (ko) 1997-12-29 2000-09-15 윤종용 멀티-비트 데이터를 저장하기 위한 반도체 메모리 장치
KR100295135B1 (ko) 1997-12-31 2001-07-12 윤종용 멀티-비트 셀 구조를 갖는 비휘발성 메모리 장치
US5930172A (en) 1998-06-23 1999-07-27 Advanced Micro Devices, Inc. Page buffer for a multi-level flash memory with a limited number of latches per memory cell
JP2000215679A (ja) * 1999-01-18 2000-08-04 Taito Corp 半導体記憶装置
KR100347866B1 (ko) * 1999-03-08 2002-08-09 삼성전자 주식회사 낸드 플래시 메모리 장치
JP2001093288A (ja) 1999-09-20 2001-04-06 Toshiba Corp 不揮発性半導体記憶装置
KR20010068554A (ko) 2000-01-06 2001-07-23 김헌배 차량 엔진의 고장상태를 진단하는 장치
US6266273B1 (en) 2000-08-21 2001-07-24 Sandisk Corporation Method and structure for reliable data copy operation for non-volatile memories
KR100386296B1 (ko) * 2000-12-30 2003-06-02 주식회사 하이닉스반도체 멀티레벨을 가지는 플래쉬 메모리를 프로그램/리드하기위한 회로 및 그 방법
US6522580B2 (en) * 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
KR100390959B1 (ko) * 2001-06-29 2003-07-12 주식회사 하이닉스반도체 센싱회로를 이용한 멀티레벨 플래시 메모리 프로그램/리드방법
JP2003030993A (ja) 2001-07-17 2003-01-31 Toshiba Corp 半導体記憶装置
US6671204B2 (en) 2001-07-23 2003-12-30 Samsung Electronics Co., Ltd. Nonvolatile memory device with page buffer having dual registers and methods of using the same
US7042770B2 (en) * 2001-07-23 2006-05-09 Samsung Electronics Co., Ltd. Memory devices with page buffer having dual registers and method of using the same
JP4122750B2 (ja) * 2001-10-24 2008-07-23 沖電気工業株式会社 半導体記憶装置および半導体記憶装置のデータ書き込み方法
KR100855504B1 (ko) 2001-12-08 2008-09-01 엘지디스플레이 주식회사 액정표시소자의 제조방법
US6687158B2 (en) * 2001-12-21 2004-02-03 Fujitsu Limited Gapless programming for a NAND type flash memory
KR100437461B1 (ko) 2002-01-12 2004-06-23 삼성전자주식회사 낸드 플래시 메모리 장치 및 그것의 소거, 프로그램,그리고 카피백 프로그램 방법
KR100466980B1 (ko) 2002-01-15 2005-01-24 삼성전자주식회사 낸드 플래시 메모리 장치
JP4082913B2 (ja) 2002-02-07 2008-04-30 株式会社ルネサステクノロジ メモリシステム
US6549457B1 (en) * 2002-02-15 2003-04-15 Intel Corporation Using multiple status bits per cell for handling power failures during write operations
JP3935139B2 (ja) * 2002-11-29 2007-06-20 株式会社東芝 半導体記憶装置
JP4294977B2 (ja) * 2003-02-28 2009-07-15 株式会社ルネサステクノロジ 不揮発性記憶装置
JP4563715B2 (ja) 2003-04-29 2010-10-13 三星電子株式会社 パーシャルコピーバック動作モードを有するフラッシュメモリ装置
KR100512181B1 (ko) * 2003-07-11 2005-09-05 삼성전자주식회사 멀티 레벨 셀을 갖는 플래시 메모리 장치와 그것의 독출방법 및 프로그램 방법
JP4041057B2 (ja) * 2003-11-13 2008-01-30 株式会社東芝 不揮発性半導体記憶装置
KR100541819B1 (ko) 2003-12-30 2006-01-10 삼성전자주식회사 스타트 프로그램 전압을 차등적으로 사용하는 불휘발성반도체 메모리 장치 및 그에 따른 프로그램 방법
KR100528482B1 (ko) 2003-12-31 2005-11-15 삼성전자주식회사 데이타를 섹터 단위로 랜덤하게 입출력할 수 있는 플래시메모리 시스템
KR100525004B1 (ko) * 2004-02-26 2005-10-31 삼성전자주식회사 멀티레벨 셀(Multi-level cell)플래쉬메모리장치 및 이의 프로그램 방법
JP2005353171A (ja) 2004-06-10 2005-12-22 Toshiba Corp 半導体記憶装置及びそのブランクページ検索方法
KR100568116B1 (ko) 2004-09-13 2006-04-05 삼성전자주식회사 전압 조절 수단을 구비한 플래시 메모리 장치
JP4410188B2 (ja) * 2004-11-12 2010-02-03 株式会社東芝 半導体記憶装置のデータ書き込み方法
US7298648B2 (en) * 2004-11-19 2007-11-20 Samsung Electronics Co., Ltd. Page buffer and multi-state nonvolatile memory device including the same
JP4768256B2 (ja) * 2004-12-16 2011-09-07 株式会社東芝 半導体記憶装置
KR100597788B1 (ko) * 2004-12-17 2006-07-06 삼성전자주식회사 프로그램 동작 속도를 개선하는 불휘발성 반도체 메모리장치의 페이지 버퍼와 이에 대한 구동방법
US7187583B2 (en) 2005-01-25 2007-03-06 Phison Electronics Corp. Method for reducing data error when flash memory storage device using copy back command
KR100672148B1 (ko) * 2005-02-17 2007-01-19 주식회사 하이닉스반도체 불휘발성 메모리 장치 및 그것의 페이지 버퍼 동작 방법
KR100597063B1 (ko) 2005-04-08 2006-07-06 후지쯔 가부시끼가이샤 플래시 메모리 및 메모리 제어 방법
JP4874566B2 (ja) * 2005-04-11 2012-02-15 株式会社東芝 半導体記憶装置
KR100721012B1 (ko) * 2005-07-12 2007-05-22 삼성전자주식회사 낸드 플래시 메모리 장치 및 그것의 프로그램 방법
US7023737B1 (en) 2005-08-01 2006-04-04 Sandisk Corporation System for programming non-volatile memory with self-adjusting maximum program loop
KR101247247B1 (ko) 2005-11-30 2013-03-25 삼성전자주식회사 클락 신호의 출력을 제어할 수 있는 컨트롤러 및 상기 컨트롤러를 구비하는 시스템

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8331145B2 (en) 2009-03-25 2012-12-11 Samsung Electronics Co., Ltd. Nonvolatile memory device, system, and programming method
US8537612B2 (en) 2009-03-25 2013-09-17 Samsung Electronics Co., Ltd. Nonvolatile memory device, system, and programming method
US10522219B2 (en) 2012-11-05 2019-12-31 SK Hynix Inc. Semiconductor memory device and method of programming multi bit data of the same
KR20160087431A (ko) * 2015-01-13 2016-07-22 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 및 그것의 프로그램 방법
US11183264B2 (en) 2015-01-13 2021-11-23 Samsung Electronics Co., Ltd. Program and operating methods of nonvolatile memory device
US11289173B2 (en) 2015-01-13 2022-03-29 Samsung Electronics Co., Ltd. Program and operating methods of nonvolatile memory device
US11804279B2 (en) 2015-01-13 2023-10-31 Samsung Electronics Co., Ltd. Program and operating methods of nonvolatile memory device
US12009046B2 (en) 2015-01-13 2024-06-11 Samsung Electronics Co., Ltd. Program and operating methods of nonvolatile memory device
US12020761B2 (en) 2015-01-13 2024-06-25 Samsung Electronics Co., Ltd. Program and operating methods of nonvolatile memory device

Also Published As

Publication number Publication date
KR100919156B1 (ko) 2009-09-28
US20080049497A1 (en) 2008-02-28
JP5825749B2 (ja) 2015-12-02
EP1892721A3 (en) 2008-07-30
JP2008052899A (ja) 2008-03-06
EP1892721A2 (en) 2008-02-27
CN101145396A (zh) 2008-03-19
CN101145396B (zh) 2013-09-18
US7684238B2 (en) 2010-03-23

Similar Documents

Publication Publication Date Title
KR100919156B1 (ko) 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법
US7423908B2 (en) Nonvolatile memory devices and methods of controlling the wordline voltage of the same
KR100632940B1 (ko) 프로그램 사이클 시간을 가변시킬 수 있는 불 휘발성반도체 메모리 장치
KR100634458B1 (ko) 단일의 페이지 버퍼 구조로 멀티-비트 및 단일-비트프로그램 동작을 수행하는 플래시 메모리 장치
US7457158B2 (en) Flash memory device having single page buffer structure and related programming operations
US8897066B2 (en) Method of programming nonvolatile memory device
KR100721012B1 (ko) 낸드 플래시 메모리 장치 및 그것의 프로그램 방법
KR100684909B1 (ko) 읽기 에러를 방지할 수 있는 플래시 메모리 장치
US8630123B2 (en) Method of operating nonvolatile memory device
US20070285980A1 (en) Semiconductor memory device
KR100737914B1 (ko) 페이지 버퍼 및 그것의 구동 방법, 그리고 이를 구비한불휘발성 메모리 장치
US7203791B2 (en) Flash memory device with partial copy-back mode
US7673220B2 (en) Flash memory device having single page buffer structure and related programming method
JP2006031871A (ja) 半導体記憶装置
KR20100011198A (ko) 불휘발성 메모리 장치의 프로그램 방법
JP2011054249A (ja) 半導体記憶装置
KR100632947B1 (ko) 불 휘발성 메모리 장치 및 그것의 프로그램 방법
KR101416740B1 (ko) 플래시 메모리 장치 및 그것의 읽기 방법
US7573751B2 (en) Flash memory device having single page buffer structure
KR100590219B1 (ko) 프로그램 시간을 줄일 수 있는 불 휘발성 메모리 장치
JP2006164408A (ja) 不揮発性半導体記憶装置及びそのデータ消去方法。
US7532510B2 (en) Flash memory device with sector access
JP4672673B2 (ja) 半導体装置および半導体装置の制御方法
KR100605107B1 (ko) 플래시 메모리 장치 및 그것의 읽기 방법
KR20090095086A (ko) 플래시 메모리 장치 및 그것의 소거 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20120831

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130902

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140901

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150831

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee