KR100281209B1 - 비휘발성 반도체 기억장치 - Google Patents

비휘발성 반도체 기억장치 Download PDF

Info

Publication number
KR100281209B1
KR100281209B1 KR1019980019930A KR19980019930A KR100281209B1 KR 100281209 B1 KR100281209 B1 KR 100281209B1 KR 1019980019930 A KR1019980019930 A KR 1019980019930A KR 19980019930 A KR19980019930 A KR 19980019930A KR 100281209 B1 KR100281209 B1 KR 100281209B1
Authority
KR
South Korea
Prior art keywords
data
memory cells
writing
designated
write
Prior art date
Application number
KR1019980019930A
Other languages
English (en)
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 가네꼬 히사시
Application granted granted Critical
Publication of KR100281209B1 publication Critical patent/KR100281209B1/ko

Links

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

Abstract

본 발명의 비휘발성 반도체 기억장치(100)는 비트수 검출회로(120)를 구비한다. 비트수 검출회로(120)는 카운트회로(604), 분할제어회로(606) 및 래치회로(602)를 갖는다. 카운트회로(604)는 데이터 기입을 위한 메모리셀들의 수를 카운트한다. 이 카운트값에 기초하여 분할제어회로(606)는 동시 데이터 기입을 위한 4 개의 메모리셀을 지정한다. 지정된 메모리셀에 대응하는 회로를 제외한 래치회로들(602)이 리셋되어 데이터 기입을 방지한다.

Description

비휘발성 반도체 기억장치
본 발명은 비휘발성 반도체 기억장치에 관한 것으로, 특히 EPROM 과 플래시 메모리와 같은 전기적으로 기입가능한 비휘발성 반도체 기억장치에 관한 것이다.
EPROM, 플래시 메모리 등은 전기적으로 기입가능한 비휘발성 반도체 기억장치로 주지되어 있다. 이런 비휘발성 반도체 기억장치의 메모리셀에 인가되는 기입전압은 대략 6 내지 7 V 이다. 각각의 메모리셀은 플로팅 게이트를 갖는 트랜지스터를 구비한다. 플로팅 게이트에 전자를 주입하여 데이터가 기입된다. 이러한 데이터 기입구조는 상당히 높은 기입전압을 필요로 한다.
높은 기입전압을 얻는 데는 2 가지 방법, 즉 외부공급과 내부승압이 있다.
전자의 방법에서는, 고전압이 비휘발성 반도체 기억장치의 전용 전원핀에 공급된다. 전용 전원핀은 정상 전원핀에 부가적으로 고전압공급용으로만 설계된다.
후자의 방법에서는, 비휘발성 반도체 기억장치내의 승압회로가 정상 전원으로서 공급된 전압을 승압한다. 데이터를 기입하기 위한 전류공급량은 승압기(booster)의 전류공급능력에 의존한다. 일반적으로, 내부승압방식으로 얻어지는 전류량은 외부공급방식으로 얻어지는 전류량보다 작다. 이 때문에, 한 번에 데이터 기입을 할 수 있는 메모리셀의 수도 또한 작다. 1 회의 억세스에 의해 데이터 기입을 할 수 있는 메모리셀의 수가 8 또는 16 과 같이 큰 경우에, 메모리장치내의 비트라인은 보통 그 자체 승압기의 전류공급능력에 따라 복수의 군으로 분할(分割)된다. 그러한 장치에서, 데이터 기입은 군마다 수행된다.
도 12 는 분할적으로 데이터를 기입하는 종래의 비휘발성 반도체 기억장치(1400)를 도시하고 있다. 이 비휘발성 반도체 기억장치(1400)에서 한 번에 데이터 기입을 할 수 있는 메모리셀의 수는 16 이다. 즉, 데이터(16 비트 데이터)가 1 회의 억세스에 의해 16 개의 셀에/로부터 기입/판독될 수 있다. 비휘발성 반도체 기억장치(1400)는 복수의 비휘발성 메모리셀을 갖는 메모리셀 어레이(1402), 행디코더(1404) 및 열스위치(1406)를 구비한다. 이 열스위치는 4 개의 열스위치(1406-0, 1406-1, 1406-2 및 1406-3)를 포함한다.
이들 열스위치(1406-0, 1406-1, 1406-2 및 1406-3) 각각은 열어드레스(AYn)에 기초하여 4 개의 비트라인을 선택한다. 선택된 비트라인은 데이터라인(DL0 내지 DL15) 및 데이터 기입라인(WD0 내지 WD15)을 통하여 대응하는 데이터 기입회로(1412-0, 1412-1, 1412-2 및 1412-3)에 접속된다.
데이터 기입회로(1412)는 검증회로(1414)에서의 데이터 재기입 플래그 및 기입펄스 발생회로(1418)에서의 펄스신호(PLS)를 수신한다. 기입회로(1412)는 기입전압 발생회로(1410)에서 공급되는 기입전압(Vpump)을 플래그 및 펄스신호(PLS)에 기초하여 대응하는 데이터 기입라인(WD0 내지 WD15)에 공급한다.
도 13 을 참조하여 비휘발성 반도체 기억장치(1400)의 동작을 설명한다.
기입전압 발생회로(1410)는 외부에서 공급되는 데이터 기입명령(단계 1500)에 응답하여 활성화되어 기입전압(Vpump)을 발생시킨다(단계 1502). 그 다음에, 기입전압 발생회로(1410)가 어드레스핀(도시되지 않음)으로부터 어드레스신호를 수신하여 기입될 어드레스에 억세스한다. 기입전압 발생회로(1410)는 억세스된 어드레스로부터 데이터를 판독하고 그것을 데이터라인(DL0 내지 DL15)을 통하여 검증회로(1414)에 공급한다. 검증회로(1414)는 데이터핀(도시되지 않음)으로부터의 기입데이터를 판독데이터와 비교한다(단계 1504).
판독데이터가 기입데이터와 완전히 일치하는 경우(단계 1504 의 결과가 "합격" 인 경우), 기입동작이 종료된다(단계 1516). 이들이 불일치하면, 검증이 실패된 것(단계 1504 의 결과가 "실패")으로 판정되고, 순차적인 기입단계(나중에 설명됨)가 데이터 재기입을 위해 더 실행된다.
본 명세서에서 "데이터기입" 은 소거모드에서 기입모드로 메모리셀들의 모드를 전환하는 것을 의미한다. 역전환은 "데이터기입" 의 의미에 포함되지 않는다. 예를 들어, 메모리셀들의 모드가 디지털화되면, "1" 은 소거모드 상태의 메모리셀을 나타내고 "0" 은 기입모드상태의 메모리셀을 나타낸다. "기입" 은 "1" 을 "0" 으로 전환하는 것을 의미하고, "소거" 는 "0" 을 "1" 로 전환하는 것을 의미한다.
판독데이터가 기입데이터와 일치하지 않는 것을 검증회로(1414)가 검출한 후, 검증회로(1414)는 억세스된 16 개의 메모리셀로부터 데이터기입을 위한 목표 메모리셀을 선택한다. 그 다음에, 검증회로(1414)는 데이터 재기입 플래그(FL0 내지 FL15)를 활성화하고, 데이터 기입회로(1412)에 이 플래그들을 출력한다(단계 1506).
데이터 기입회로(1412) 중에서, 데이터 기입회로(1412-0)는 16 비트 데이터의 초기 4 비트에 대응한다. 기입펄스신호(PLS)에 응답하여, 데이터 기입회로(1412-0)는 활성화된 데이터 재기입 플래그(FL0 내지 FL3)에 대응하는 데이터 기입라인(WD0 내지 WD3)에 기입전압(Vpump)을 공급한다(단계 1508). 데이터 기입회로(1412-1, 1412-2 및 1412-3)가 동일한 방법으로 데이터 기입동작을 순차적으로 수행한다. 이렇게, 데이터 기입의 첫 번째 사이클이 완료된다(단계 1510, 1512 및 1514).
기입전압 발생회로(1410)는 데이터 기입동작에서 4 개의 메모리셀(최대)에 전류를 공급할 수 있다. 달리 말하자면, 기입전압 발생회로(1410)는 한 번에 16 개의 메모리셀에 전류를 공급하는 능력을 갖고 있지 않다. 그러므로, 비휘발성 반도체 기억장치는 4 개의 데이터 기입회로(1412)를 구비하며 데이터 기입사이클은 상술된 바와 같이 4 회의 데이터 기입동작을 갖는다.
첫 번째 사이클에서 데이터 기입동작이 완료된 후, 16 개의 메모리셀에 기억된 데이터가 다시 판독된다. 그 다음에, 판독된 데이터가 기입하는 데이터와 비교된다(단계 1504).
양쪽 데이터가 완전히 일치하는 것이 검출되면, 데이터 기입동작이 종료된다(단계 1516). 여전히 일치하지 않으면, 지금까지의 데이터 기입이 불완전하기 때문에 순차적인 데이터 기입단계들이 다시 실행된다. 이러한 과정은 양쪽 데이터가 완전히 일치하는 것이 검출될 때까지 반복된다.
상술된 바와 같이, 이상의 과정은 데이터 소거동작없는 데이터 기입동작만을 포함한다. 그러므로, 기입데이터가 예를 들어, 데이터 기입을 위한 16 비트 데이터 중의 4 비트 데이터 "1100" 에 대응하는 "1010" 일지라도, 얻어지는 데이터는 "1000" 이다. 이 경우, 데이터 기입동작이 반복되어도 기입되는 데이터는 실제로 기입된 데이터와 일치하지 않는다. 이러한 경우의 취급은 메모리장치의 사양에 의존한다. 일반적으로, 재시도 횟수의 초과를 나타내는 플래그는 기입될 데이터가 실제로 기입된 데이터와 일치하지 않는다는 것을 나타내도록 설정된다. 이러한 플래그의 활성화에 대한 취급도 또한 메모리장치의 사양에 의존한다.
그러나, 소거동작을 필요로 하는 데이터 재기입동작은 보통 좀처럼 발생하지 않는다. 그러므로, 재시도 횟수의 초과를 나타내는 플래그는 거의 활성화되지 않는다.
상술된 종래의 비휘발성 반도체 기억장치(1400)에서는, 기입될 데이터가 기입전압 발생회로(1410)의 능력에 따라 미리 4 개의 부분으로 분할되어 4 회의 기입동작으로 된다. 따라서, 메모리셀의 수에 관계없이, 데이터 기입동작은 4 회 수행되어야 한다. 달리 말하자면, 16 비트 데이터 기입 뿐만 아니라 1 비트 데이터 기입에도 4 회의 데이터 기입동작이 요구된다. 그러므로, 1 비트 데이터 기입에 필요한 시간이 16 비트 데이터기입에 필요한 시간과 동일하다.
본 발명은 데이터 기입시간을 단축시키는 것을 그 목적으로 한다.
본 발명의 다른 목적은 데이터기입을 위한 목표비트의 수가 작을 때 데이터기입 횟수를 줄이는 것이다.
도 1 은 본 발명의 제 1 실시예에 따른 비휘발성 반도체 기억장치(100)를 도시하는 다이어그램.
도 2 는 비휘발성 메모리셀의 장치구조를 도시하는 다이어그램.
도 3 은 도 1 에 도시된 검증회로(114)의 구조를 도시하는 다이어그램.
도 4 는 도 3 에 도시된 판별회로(304)의 구조를 도시하는 다이어그램.
도 5 는 도 4 에 도시된 판별회로(304)에 사용된 진리값 테이블을 도시하는 다이어그램.
도 6 은 도 1 에 도시된 비트수 판별회로(120)의 구조를 도시하는 다이어그램.
도 7 은 도 6 에 도시된 카운터(604)의 카운트 동작을 설명하는 테이블.
도 8 은 비휘발성 반도체 기억장치(100)의 동작을 설명하는 흐름도.
도 9 는 본 발명의 제 2 실시예에 따른 비휘발성 반도체 기억장치의 분할할당동작을 설명하는 테이블.
도 10 은 본 발명의 제 3 실시예에 따른 비휘발성 반도체 기억장치(1000)를 도시하는 다이어그램.
도 11 은 도 10 에 도시된 비트수 판별회로(1020)의 구조를 도시하는 다이어그램.
도 12 는 종래의 비휘발성 반도체 기억장치(1400)를 도시하는 다이어그램.
도 13 은 종래의 비휘발성 반도체 기억장치(1400)의 동작을 설명하는 흐름도.
*도면의 주요부분에 대한 부호의 설명*
100 : 비휘발성 반도체 기억장치 102 : 메모리셀 어레이
104 : 행디코더 106 : 열스위치
108 : 소오스라인 제어회로 110 : 기입전압 발생회로
112 : 데이터 기입회로 114 : 검증회로
116 : 처리부 118 : 기입펄스 발생회로
120 : 비트수 검출회로 122 : 데이터래치
상술된 목적을 달성하기 위하여, 본 발명의 제 1 양태에 따른 비휘발성 반도체 기억장치는,
복수의 비휘발성 메모리셀(102);
상기 복수의 비휘발성 메모리셀에 기억되는 데이터를 판독하는 판독수단(194, 106);
상기 판독수단에 의해 판독되는 상기 데이터를 상기 복수의 메모리셀에 기억되는 데이터와 비교하는 비교수단(114);
상기 비교수단의 결과에 기초하여 상기 데이터를 기억하는 상기 복수의 비휘발성 메모리셀 중의 메모리셀의 수를 카운트하는 카운트수단(120); 및
상기 카운트수단의 카운트값에 기초하여 데이터를 기억하기 위한 상기 메모리셀 중의 적어도 일부를 지정하고, 상기 지정된 메모리셀에 상기 데이터를 동시에 기입하는 기입수단(112, 118)을 구비한다.
본 발명에 따르면, 데이터는 데이터 기입을 필요로 하는 메모리셀에만 기입된다. 이렇게 함으로서 데이터 기입을 위한 비트의 수가 작을 때 데이터 기입시간을 감소시킨다.
예를 들어, 상기 기입수단(112, 118)은,
(1) 상기 카운트수단의 상기 카운트값이 소정값(4)을 초과하지 않으면 상기 지정된 메모리셀 모두에 상기 데이터를 동시에 기입하고,
(2) 상기 카운트값이 상기 소정값을 초과하면 상기 지정된 메모리셀 중의 적어도 일부를 지정하고 상기 데이터를 상기 지정된 메모리셀 중의 적어도 일부에 동시에 기입한 다음, 상기 지정된 셀의 나머지에서의 적어도 일부 메모리셀을 지정하고 상기 데이터를 상기 지정된 셀의 나머지에서의 적어도 일부 메모리셀에 동시에 기입한다.
비휘발성 반도체 기억장치는 상기 기입수단에 데이터 기입을 위한 전류를 공급하는 기입전압 발생회로(110)를 더 구비하며, 상기 소정값은 상기 기입전압 발생회로의 능력에 따라 결정된다. 상기 기입수단은, 동시 데이터 기입을 위한 메모리셀의 수에 따라 데이터 기입전류의 공급횟수를 제어하는 수단을 구비할 수도 있다.
예를 들어, 상기 기입수단(112, 118)은,
(1) 상기 카운트수단의 상기 카운트값이 소정의 자연값 m 을 초과하지 않으면 상기 지정된 메모리셀 모두에 상기 데이터를 동시에 기입하고,
(2) 상기 카운트값이 상기 소정의 자연값 m 을 초과하면 상기 지정된 메모리셀 중에서 m 개의 메모리셀을 지정하고 상기 데이터를 상기 m 개의 메모리셀에 동시에 기입한 다음, 상기 지정된 셀 중의 나머지에서의 적어도 일부 메모리셀을 지정하고 상기 데이터를 상기 지정된 셀 중의 나머지에서의 적어도 일부 메모리셀에 동시에 기입한다.
이러한 구조는 예를 들어, 카운트값이 m + 3 인 경우에 제 1 데이터 기입에서 m 개의 메모리셀에 그리고 제 2 데이터 기입에서 3 개의 메모리셀에 데이터가 기입되도록 허용한다. 예를 들어, 카운트값이 2m + 3 인 경우에, 데이터는 제 1 및 제 2 데이터 기입에서 m 개의 메모리셀에 그리고 제 3 데이터 기입에서 3 개의 메모리셀에 기입된다.
비휘발성 반도체 기억장치는 m 개의 메모리셀에 동시에 데이터를 기입하기 위한 전류를 공급하는 능력을 갖는 기입전압 발생회로(110)를 더 구비한다. 데이터 기입전류를 공급하기 위한 기입전압 발생회로에 요구되는 능력은 매우 높지 않아야 한다.
예를 들어, 상기 기입수단(112, 118)은,
(1) 상기 카운트수단의 상기 카운트값이 소정의 자연값 m 을 초과하지 않으면 지정된 메모리셀 모두에 데이터를 동시에 기입하고,
(2) 데이터 기입을 위한 횟수 및 데이터 기입에 대해 m 보다 적은 메모리셀의 수를 지정하고, 데이터를 지정된 메모리셀에 지정된 회수로 동시에 기입한다.
이러한 구조는 예를 들어, 카운트값이 m + 1 인 경우에 제 1 데이터 기입에서 m - 1 개의 메모리셀에 그리고 제 2 데이터 기입에서 4 개의 메모리셀에 데이터가 기입되는 것을 허용한다. 예를 들어, 카운트값이 2m + 3 인 경우에, 데이터는 제 1 및 제 2 데이터 기입에서 m - 1 개의 메모리셀에 기입되고 제 3 데이터 기입에서 5 개의 메모리셀에 기입된다. 따라서, 데이터 기입에 의한 메모리셀의 수가 균등화될 수 있다.
비휘발성 반도체 기억장치는 지정된 m 개의 메모리셀에 데이터를 동시에 기입하는 능력을 갖는 기입전압 발생회로(110)를 더 구비한다.
상기 기입수단은 동시 데이터 기입을 위한 상기 메모리셀의 수가 m 보다 적게 감소함에 따라 데이터 기입전류의 공급횟수가 단축되도록 제어하는 수단을 구비할 수 있다.
예를 들어, 상기 복수의 메모리셀(도 2 참조) 각각은 플로팅 게이트를 갖는 트래지스터를 구비한다. 플로팅 게이트에 전자를 주입하여 상기 데이터 기입을 수행한다.
본 발명의 제 2 양태에 따른 비휘발성 메모리셀에 데이터를 기입하는 방법은,
복수의 비휘발성 메모리셀에 기억된 데이터를 판독하는 단계;
상기 판독된 데이터를 상기 복수의 메모리셀에 기억되는 데이터와 비교하고, 데이터를 기입하기 위한 메모리셀의 수를 카운트하는 단계; 및
카운트값에 기초하여 데이터 기입을 위한 상기 메모리셀의 일부를 지정하고, 상기 지정된 메모리셀에 데이터를 동시에 기입하는 단계를 구비한다.
예를 들어, 상기 기입단계는,
(1) 상기 카운트수단의 상기 카운트값이 소정값(4)을 초과하지 않으면 상기 지정된 메모리셀 모두에 데이터를 동시에 기입하고,
(2) 상기 카운트값이 상기 소정값을 초과하면 상기 지정된 메모리셀의 적어도 일부를 지정하고 상기 데이터를 상기 지정된 메모리셀의 적어도 일부에 동시에 기입한 다음, 상기 지정된 셀의 나머지에서의 적어도 일부 메모리셀을 지정하고 상기 데이터를 상기 지정된 셀의 나머지에서의 적어도 일부 메모리셀에 동시에 기입한다.
비휘발성 메모리셀에 데이터를 기입하는 방법은 동시 데이터 기입을 위한 메모리셀의 수에 따라 데이터 기입전류의 공급횟수를 제어하는 단계를 구비할 수도 있다.
상기 데이터 기입단계는,
(1) 상기 카운트수단의 상기 카운트값이 소정의 자연값 m 을 초과하지 않으면 상기 지정된 메모리셀 모두에 상기 데이터를 동시에 기입하고,
(2) 상기 카운트값이 상기 소정의 자연값 m 을 초과하면 상기 지정된 메모리셀 중에서 m 개의 메모리셀을 지정하고 상기 데이터를 상기 m 개의 메모리셀에 동시에 기입한 다음, 상기 지정된 셀의 나머지에서의 적어도 일부 메모리셀을 지정하고 상기 데이터를 상기 지정된 셀의 나머지에서의 적어도 일부 메모리셀에 동시에 기입한다.
비휘발성 메모리셀에 데이터를 기입하는 방법은 동시 데이터 기입을 위한 메모리셀의 수가 m 보다 적게 감소함에 따라 메모리셀 각각에 데이터를 기입하는 횟수를 단축시킬 수도 있다.
제 1 실시예
본 발명의 제 1 실시예에 따른 비휘발성 반도체 기억장치를 첨부된 도면을 참조하여 설명한다.
도 1 은 본 발명의 제 1 실시예에 따른 비휘발성 반도체 기억장치(100)를 도시하는 블록 다이어그램이다. 이 비휘발성 반도체 기억장치(100)는 반도체기판상에 집적된 16 메가비트 비휘발성 메모리이다. 이 비휘발성 반도체 기억장치(100)는 어드레스신호(A0 내지 A19)를 수신하는 어드레스핀들, 데이터신호(D0 내지 D15)를 수신하는 데이터핀들, 다양한 제어신호를 수신하는 전원핀과 다른 핀(CE, WE 등)을 갖는다. 비휘발성 반도체 기억장치(100)는 1 MB 의 어드레스 면적을 가지며, 비휘발성 반도체 기억장치(100)에서 한 번에 받아들일 수 있는 메모리셀의 수는 16 이다.
비휘발성 반도체 기억장치(100)는 복수의 비휘발성 메모리셀이 매트릭스형태로 형성된 메모리셀 어레이(102), 행(row)디코더(104) 및 열(column)스위치(106)를 구비한다. 행디코더(104)는 어드레스신호(A0 내지 A19)중의 행어드레스(Axn)에 기초하여 워드라인(W)을 선택한다. 열스위치(106)는 어드레스신호(A0 내지 A19)중의 열어드레스(AYm)에 기초하여 16 개의 비트(B)을 선택한다.
도 2 에 도시된 바와 같이, 메모리셀 각각은 반도체기판(200)에 형성되는 소오스영역(202)과 드레인영역(204), 및 플로팅 게이트(206)와 제어게이트(208)를 갖는 게이트전극을 구비한다. 각 메모리셀의 제어게이트(208)는 대응하는 워드라인(W)에 접속되어 있다. 각 메모리셀의 드레인영역(204)은 대응하는 비트라인(B)에 접속되어 있다. 각 메모리셀의 소오스영역은 대응하는 소오스라인(S)을 통하여 소오스라인 제어회로(108)에 접속되어 있다.
각 메모리셀에 데이터를 기입하기 위해, 제어게이트(208)에 12 V 의 전압이 인가되고, 드레인영역(204)에는 6 내지 7 V 의 전압이 인가되며, 소오스영역(202)에는 0 V 의 전압이 인가된다. 데이터 기입을 시작하면, 전자들이 플로팅 게이트(206)에 주입된다. 이것에 의해 각 메모리셀내의 트랜지스터의 문턱값이 현저하게 증가한다. 그러므로, 데이터판독을 위해 제어게이트 (208) 에 인가되는 전위로는 이 트랜지스터를 활성시키기에 충분하지 않다. 이 후, 기입된 메모리셀은 "0" 으로 지칭되고, 비기입된 메모리셀은 "1" 로서 지칭된다.
도 1 에 도시된 열스위치(106)에 의해 선택된 셀로부터 판독된 16 비트 데이터는 데이터라인(DL0 내지 DL15)을 통하여 검증회로(114)에 공급된다.
검증회로(114)는 데이터래치(122)에 의해 래치되는 데이터 기입을 위한 기대값(DT0 내지 DT15)을 더욱 수신한다. 검증회로(114)는 기대값(DT0 내지 DT15)을 판독된 16 비트 데이터와 비트마다 비교한다. 이 비교결과가 데이터 재기입 플래그(FL0 내지 FL15)로서 비트수 검출회로(120)에 공급된다. 비트수 검출회로(120)는 데이터 재기입 플래그(FL0 내지 FL15)에서 불일치를 나타내는 플래그들에 기초하여 데이터 기입을 위한 목표 메모리셀들을 지정한다. 비트수 검출회로(120)는 지정된 메모리셀들에 대응하는 기입펄스 제어신호(WMD0 내지 WMD15)를 활성화시킨다. 기입펄스 발생회로(118)는 기입펄스 제어신호(WMD0 내지 WMD15)를 수신하여 소정의 타이밍에서 대응하는 기입펄스신호(PLS0 내지 PLS15)를 발생시킨다.
기입전압 발생회로(110)는 기입명령에 응답하여 전원전압을 6 내지 7 V 로 승압시켜 기입전압(Vpump)을 발생시킨다. 기입전압 발생회로(110)는 데이터 기입회로(112)에 기입전압(Vpump)을 공급한다.
데이터 기입회로(112)는 기입펄스신호(PLS0 내지 PLS15) 및 기입전압(Vpump)을 수신한다. 그 다음에 데이터 기입회로(112)는 활성화된 기입펄스신호(PLS0 내지 PLS15)에 대응하는 데이터 기입라인(WD0 내지 WD15)에 기입전압(Vpump)을 공급한다. 이렇게, 기입전압(Vpump)이 데이터 기입을 위한 목표 메모리셀들의 드레인전극(204)에 인가되어 데이터가 목표 메모리셀들에 기입된다.
기입전압 발생회로(110)는 한 번에 4 개의 메모리셀에 기입전류를 공급하는 능력을 갖는다. 비활성 반도체 기억장치(100)는 처리부(116)를 구비한다. 처리부(116)는 데이터핀들 및 다양한 제어신호를 수신하는 다른 핀들로부터 공급되는 명령에 응답하여 복수의 제어신호, 복수의 타이밍 신호(φ1 내지 φ3) 등을 발생시킨다. 처리부(116)는 또한 연산기능을 가지며 비활성 반도체 기억장치(100)에서 정보처리를 수행한다.
비활성 반도체 기억장치(100)를 구성하는 회로들 및 그들의 동작에 대한 상세한 설명을 도 3 내지 7 을 참조하여 설명한다.
도 3 은 검증회로(114)의 16 개 비교부 중의 하나를 도시한다. 각 비교부는 차동형 비교회로(302) 및 판별회로(304)를 구비한다. 비교회로(302)는 처리부(116)에서 공급되는 검증모드신호(PGV)에 응답하여 기준전위(VREF)와 판독된 데이터 (DLi)(i= 0 에서 15)를 비교한다. 비교회로(302)는 비교결과들을 나타내는 비교신호(SDi)(i=0 에서 15)를 판정회로(304)에 공급한다.
상술된 바와 같이, 도 2 에 도시된 메모리셀은 그 상태가 "0" 인 경우(데이터가 셀에 기입되어 있는 상태)에는 셀이 선택되어도 온되지 않고, 이 셀은 "1" (하이레벨)을 나타내는 신호를 출력한다. 상태가 "1" (셀내의 데이터가 소거되어 있는 상태) 인 메모리셀은 셀이 선택되는 경우 온되고, 이 셀은 "0"(로우레벨)을 나타내는 신호를 출력한다. 데이터가 억세스된 메모리셀내에 기입되는 경우(셀의 상태는 "0")에, 판독된 데이터(DLi)의 전위가 기준전위(VREF) 보다 높게 되어 로우레벨의 비교신호 (SDi)가 셀로부터 출력된다. 억세스된 메모리셀내의 데이터가 소거되는 경우(셀의 상태는 "1")에, 판독된 데이터(DLi)의 전위가 기준전위(VREF)보다 낮게 되어, 하이레벨의 비교신호(SDi)가 셀로부터 출력된다. 판정회로(304)는 비교신호(SDi) 및 데이터 기입을 위한 기대값(DTi)(i=0에서 15)을 수신하여 데이터 재기입 플래그(FLi)(0 내지 15)를 출력한다.
도 4 에 도시된 바와 같이, 판정회로(304)는 래치회로(402) 및 배타적 OR 회로(404)를 구비한다.
래치회로(402)는 데이터 입력단자(D), 클럭입력단자(C), 리셋신호 입력단자(R) 및 데이터 출력단자(Q)를 갖는다. 데이터 기입을 위한 기대값(DTi)은 데이터 입력단자(D)에 공급되고 타이밍신호(φ1)는 클럭입력단자(C)에 입력된다. 래치회로(402)는 입력된 타이밍신호(φ1)에 응답하여 공급되는 기대값(DTi)을 취입(take)한다. 데이터 출력단자(Q)는 취입된 기대값(DTi)을 출력하는 데 사용된다. 배타적 OR 회로 (404) 는 리셋신호를 발생시키고 이 리셋신호를 래치회로(402)의 리셋신호 입력단자(R) 에 공급한다. 래치회로(402)는 공급된 리셋신호의 레벨을 "1" 로 리셋한다. 2 개의 입력신호의 논리레벨이 일치하는 것이 검출되면 배타적 OR 회로(404)는 리셋신호를 활성레벨로 바꾼다(즉, 리셋신호가 활성화된다).
도 5 는 판정회로(304)의 진리값 테이블이다. 데이터 기입이 필요한 경우, 데이터 재기입 플래그(FLi)의 레벨은 "0" 이다(패턴 3). 달리 표현하면, 기대값(DTi)이 "0" 으로 데이터 기입을 지시하고 비교신호(SDi)가 "1" 로 메모리셀내의 데이터가 소거된 상태임을 나타내는 경우에, 래치회로(402)는 타이밍신호(φ1)에 응답하여 "0" 레벨신호를 래치한다. 래치회로(402)가 이 래치된 신호를 데이터 재기입 플래그(FLi)로서 출력한다.
기대값(DTi)이 비교신호(SDi)와 일치할 때(패턴1, 패턴4), 배타적 OR 회로(404) 는 래치회로(402)의 레벨을 "1"로 리셋하고 데이터 재기입 플래그(FLi)도 또한 "1" 로 된다. 이 경우에, 셀은 이미 기대값을 기억하며, 따라서 데이터 기입은 더 이상 필요하지 않다.
기대값이 "1" 로 데이터 소거를 지시하고 비교신호(SDi) 가 "0" 으로 셀이 기입된 상태임을 나타내는 경우에, 데이터 기입은 불필요하다. 이 경우, 래치회로(402) 는 레벨"1" 신호를 래치하고 데이터 재기입 플래그(FLi)도 또한 "1"로 된다.
도 6 은 비트수 검출회로(120)의 상세 구조를 도시한다. 도시된 바와 같이, 비트수 검출회로(120)는 래치회로(600), 카운트회로(604) 및 분할제어회로(606)를 구비한다. 래치회로(600)는 16 개의 래치회로(602)를 포함한다. 각각의 래치회로 (602) 는 데이터 입력단자(D), 클럭입력단자(C), 리셋신호 입력단자(R) 및 데이터 출력단자(Q)를 구비한다. 각각의 래치회로(602)는 그것의 데이터 입력단자(D)를 통해 데이터 재기입 플래그(FL0 내지 FL15) 중의 대응하는 데이터 재기입 플래그를 수신한다. 타이밍신호(φ1) 다음에 타이밍신호(φ2)가 발생된다. 각각의 래치회로(602)는 타이밍신호(φ2)에 응답하여 수신된 데이터 재기입 플래그를 래치한다. 래치회로(602) 의 데이터 출력단자(Q)는 래치된 플래그들을 출력하는 데 사용된다.
데이터 재기입 플래그(FL0 내지 FL15)는 또한 카운트회로(604)에도 공급된다. 타이밍신호(φ2) 다음에 타이밍신호(φ3)가 연속적으로 발생된다. 카운트회로(604)는 타이밍신호(φ3)에 응답하여 ("0" 을 나타내는)활성화된 데이터 재기입 플래그의 수를 카운트한다. 카운트회로(604)는 카운트값을 분할제어회로(606)에 공급한다.
분할제어회로(606)는 데이터기입 펄스제어신호(WMD0 내지 WMD15)를 더 수신한다. 데이터기입 펄스제어신호(WMD0 내지 WMD15)는 래치회로(600)로부터의 출력신호이다. 카운트회로(604)로부터의 카운트값에 기초하여, 분할제어회로(606)가 리셋신호들을 리셋되도록 래치회로(602)에 공급한다.
카운트회로(604)는 2 진 카운터로서 카운트값을 2 진 표시법으로 표현한다. 카운트회로(604)는 연속적으로 16 번 공급되는 타이밍신호(φ3)에 응답하여 데이터 재기입 플래그(FL0 내지 FL15)의 논리레벨을 순차적으로 체크한다. 만일 체크된 플래그가 "0" 을 나타내면, 카운터는 카운값을 1 만큼 증가시킨다.
도 7 에 도시된 바와 같이, "0" 이 카운트회로(604)에 초기설정된다. 먼저 "0" 이 검출되면, 카운터는 플래그들의 수를 카운트하도록 허용된다. 카운터는 카운팅이 허용된 후 "0" 의 검출에 따른 증가 동작으로 카운트값을 카운트한다. 즉, "0" 의 첫 번째 검출이 증가 동작을 야기하지는 않는다. 만일 타이밍신호(φ3)가 카운터에 16 번 공급된 후 카운터가 플래그들을 카운트하도록 허용되지 않는다면(어떤 "0" 레벨도 검출되지 않음), 타이밍신호(φ5)가 발생된다. 타이밍신호(φ5)가 분할제어회로(606) 및 처리부(116)에 공급되어 데이터 기입을 위한 목표 메모리셀이 없다는 것을 알려준다.
도 7 에 도시된 바와 같이, 카운트회로(604)의 출력값들은 대응하는 카운트값의 상위 2 비트이다. 즉, 카운트값 "1" 내지 "4" 각각은 출력값 "0" 에 대응한다. 카운트값 "5" 내지 "8" 각각은 출력값 "1" 에 대응한다. 카운트값 "9" 내지 "12" 각각은 출력값 "10" 에 대응한다. 카운트값 "13" 내지 "16" 각각은 출력값 "11" 에 대응한다. 카운트값이 "0" 이면, 상술된 바와 같이, 타이밍신호(φ5)가 발생된다.
카운트회로(604)로부터의 출력값을 수신할 때의 분할제어회로(606)를 상세히 설명한다. 수신된 출력값이 "0" 이면, 분할제어회로(606)는 리셋신호를 래치회로(600)에 공급하지 않는데, 그 이유는 데이터 기입을 위한 목표 메모리셀의 수가 4 이하이기 때문이다.
수신된 출력값이 "1" 이면, 데이터 기입을 위한 목표 메모리셀의 수는 5 내지 8 이다. 이 경우, 한 번에 데이터 기입을 할 수 없다. 즉, 데이터 기입이 2 회로 수행되어야 한다. 분할제어회로(606)는 초기 4 개의 회로를 제외한 래치회로(602)에 리셋신호를 공급한다. 이들 래치회로(602)는 활성화된 펄스제어신호(WMDG0 내지 WMDG15)에대응한다. 리셋신호를 수신한 후 래치회로(602)의 내용은 "1" 로 리셋된다. 따라서, 리셋신호가 공급되지 않은 4 개의 래치회로 (602)는 여전히 "0" 으로 설정된다.
분할제어회로(606)가 리셋회로(그들의 수는 1 내지 4)을 제외한 래치회로 (602)에 리셋신호를 공급하여 그들의 내용을 "1" 로 리셋한다. 이러한 동작 전에, 설정된 래치회로(602)에 대응하는 4 개의 메모리셀에 대한 데이터 기입동작이 완료되고, 타이밍신호(φ2)가 발생되며, 래치회로(600)의 내용은 회로가 리셋되기 전의 내용으로 되돌아간다.
동일한 방법으로, 출력값이 "10" 즉, 데이터 기입을 위한 목표 메모리셀의 수가 "9" 내지 "12" 인 경우, 데이터 기입동작은 3 회로 수행되어야 한다. 분할제어회로(606)는 초기 4 개의 회로를 제외한 래치회로(602)에 리셋신호를 공급한다. 이들 래치회로(602)는 활성화된 펄스제어신호(WMDG0 내지 WMDG15)에 대응한다. 리셋신호들을 수신한 후 래치회로(602)의 내용은 "1" 로 리셋된다. 따라서, 리셋신호가 공급되지 않은 4 개의 래치회로(602)는 여전히 "0" 으로 설정된다.
그 다음에, 4 개의 래치회로에 대응하는 4 개의 메모리셀에 대한 데이터 기입 동작이 수행된다. 타이밍신호(φ2)가 발생되고 래치회로(600)의 내용은 다시 회로들이 리셋되기 전의 내용으로 되돌아간다. 이들 동작 후, 분할제어회로(606)는 데이터 기입된 4 개의 메모리셀 다음의 4 개의 메모리셀에 대응하는 회로들을 제외한 다른 래치회로들(602)에 리셋신호들을 공급한다. 따라서, 리셋신호가 공급되지 않은 4 개의 래치회로(602)는 여전히 "0" 으로 설정된다. "0" 으로 설정된 4 개의 래치회로(602)에 대응하는 4 개의 메모리셀에 대한 데이터 기입동작이 수행된다.
마지막으로, 분할제어회로(606)는 리셋회로(그들의 수는 1 내지 4)를 제외한 래치회로(602)에 리셋신호들을 공급하여 그들의 내용을 "1" 로 리셋한다. 이러한 동작 전에, 설정된 래치회로(602)에 대응하는 4 개의 메모리셀에 대한 데이터 기입 동작이 완료되고, 타이밍신호(φ2)가 발생되며, 래치회로(600)의 내용은 이 회로들이 리셋되기 전의 내용으로 되돌아간다.
출력값이 "11" 즉, 데이터 기입을 위한 목표 메모리셀의 수가 "13" 내지 "16" 인 경우에도, 동일한 방법으로 동작이 수행된다. 즉, 리셋신호들이 초기 4 개의 회로를 제외한 래치회로(602)에 공급되어 그들의 내용을 "1" 로 리셋한다. 그 다음에, 이미 리셋된 회로들 다음의 4 개의 회로를 제외한 다른 래치회로(602)가 리셋된다. 또한, 이미 리셋된 회로들 다음의 4 개의 회로를 제외한 다른 래치회로들(602)도 리셋된다. 마지막으로, 리셋신호들이 비기입 메모리셀(이들의 수는 "1" 내지 "4" 이다)에 대응하는 회로 이외의 래치회로들에 공급되어 그들의 내용을 "1" 로 리셋한다.
상술된 구조를 갖는 비휘발성 반도체 기억장치(100)에서의 데이터 기입동작을 도 8 에 도시된 흐름도를 참조하여 설명한다.
"기입데이터"의 명령이 데이터핀들(D0 내지 D15) 및 제어신호핀들에 외부적으로 입력된다. 처리부(116)는 입력명령을 판독하여 이해하고, 데이터 기입모드를 활성화시킨다(단계 800). 이러한 처리에 의해 기입전압 발생회로(110)가 활성화된다. 활성화된 기입전압 발생회로(110)는 기입전압(Vpump)을 발생시킨다(단계 802). 어드레스신호들이 어드레스핀(A0 내지 A19)에 공급된다. 행디코더(104)와 열스위치(106)는 메모리셀을 억세스하며, 이 메모리셀의 어드레스는 공급된 어드레스 신호에 의해 지시된다. 억세스된 메모리셀들에 기억된 데이터가 판독되어 데이터라인(DL0 내지 DL15)을 통하여 검증회로(114)에 공급된다. 검증회로(114)는 이 데이터를 상술된 바와 같이 기입을 위한 기대값(DT0 내지 DT15)과 비교한다(단계 804).
만일 비교결과가 판독된 데이터(DL0 내지 DL15)와 기대값(DT0 내지 DT15) 사이의 완전한 일치를 나타내면(실패 비트가 없음), 모든 데이터 재기입 플래그(FL0 내지 FL15) 의 레벨은 "1" 로 변한다. 상술된 바와 같이, 카운트회로(604)는 타이밍신호(φ5)를 발생시킨다. 처리부(116)는 타이밍신호(φ5)를 수신하여 데이터 기입동작을 종료한다(단계 820).
만일 판독된 데이터와 기대값 사이의 불일치가 예를 들어, 도 5 에 도시된 "패턴 2" 라면, 플래그(FLi)의 레벨은 "1" 로 변하고 데이터 기입동작은 완전한 일치가 검출되는 경우와 마찬가지로 종료된다. 이 경우, 기대값과 실제로 메모리셀에 기입된 값들이 일치하지 않는다. 그러나, 데이터 소거동작을 요구하는 그러한 데이터 재기입동작은 좀처럼 발생하지 않는다. 그러므로, 그러한 불일치는 무시될 수 있다. 배타적 OR 회로(404)의 출력은 데이터 기입이 소거동작을 요구하는지를 검출하는 데 사용된다. 그러므로, 그러한 데이터 재기입이 종종 발생하는 환경에서 기억장치가 사용되는 경우에 데이터 기입이 소거동작을 요구한다는 것이 검출되면 소거동작이 실행될 수 있다.
카운트회로(604)가 데이터 기입을 위해 목표된 비기입 메모리셀들을 검출하면(실패 비트들이 검출되면), 데이터 기입을 위한 다음의 순차적인 단계들이 실행된다.
카운트회로(604)에 의해 카운트된 카운트값의 상위 2 비트가 분할제어회로(606)에 공급된다. 분할제어회로(606)는 분할수m 을 결정한다(단계 806). 2 비트 값 "0", "1", "10" 및 "11" 은 각각 분할수 "1", "2", "3" 및 "4" 에 대응한다.
분할제어회로(606)는 카운트값의 상위 2 비트 즉, 분할수 m 에 따라 "0" 레벨 래치회로(602) 중에서 4 비트 데이터 재기입 비트를 지정한다(단계 810). 분할제어회로(606)는 지정된 회로를 제외한 래치회로(602)에 리셋신호를 공급하여(단계 812) 그들의 레벨을 "1" 로 리셋한다. 상술된 바와 같이, 지정된 4 비트 데이터 재기입 비트들은 데이터 기입을 위한 목표 비트들 중의 초기 4 비트이다.
이것이 4 개 (또는 그 이하)의 데이터기입 펄스제어신호(WMD0 내지 WMD15) 를 활성화시킨다. 데이터 기입을 위한 목표 비트수에 상관없이 활성이 일어난다. 활성화된 신호들이 데이터기입 펄스발생회로(118)에 공급된다. 데이터기입 펄스발생회로(118)는 데이터기입 펄스제어신호(WMD0 내지 WMD15)의 활성화된 4 개(또는 그 이하)의 신호에 대응하는 데이터기입 펄스신호(PLS0 내지 PLS15)를 발생시킨다. 데이터 기입회로(112)는 기입전압(Vpump)을 데이터기입 펄스신호(PLS0 내지 PLS15)에 대응하는 데이터 기입라인(WD0 내지 WD15)에 공급한다(단계 814). 따라서, 기입전압(Vpump) 이 데이터 기입을 위한 초기 4 개(또는 그 이하)의 메모리셀의 드레인 전극에 공급된다. 데이터가 이들 메모리셀에 기입된다.
분할제어회로(606)는 분할수 m 을 1 만큼 감소시킨다(단계 816). 만일 감소된 분할수가 0 이면, 데이터 기입동작의 초기 사이클이 완료된 것으로 결정된다. 그 다음에, 분할제어회로(606)는 타이밍신호(φ4)를 발생시킨다. 처리부(116)가 타이밍 신호(φ4)를 수신하여 검증회로(114)가 다시 검증동작을 실행하게 한다(단계 804). 만일 실패 비트없는 정상적인 데이터 기입이 검증 동작 후에 검출되면, 데이터 기입동작이 종료된다(단계 820).
만일 감소된 분할수가 0 이 아니면, 분할제어회로(606)는 이전에 선택된 비트들 이외에 4 개(또는 그 이하)의 비트를 지정한다(단계 810). 분할제어회로(606)는 동일한 방법으로 지정된 4 개( 또는 그 이하)의 비트의 메모리셀에 기입전압(Vpump)을 인가한다. 이러한 동작이 분할수가 0 이 될 때까지 반복된다.
데이터 기입동작의 초기 사이클이 이렇게 종료된 후, 검증동작 (단계 804) 이 다시 실행된다. 검증동작 후 실패 비트가 없는 것이 검출되면, 데이터 기입동작이 종료된다(단계 820). 그러나, 만일 목표비트의 일부 또는 모두가 비기입 비트이면, 실패 비트들에 대응하는 새로운 데이터 재기입 플래그(FL0 내지 FL15)가 발생된다. 이 경우, 만일 모든 목표비트가 비기입 비트이면, 새롭게 발생된 플래그(FL0 내지 FL15)의 값들은 이전의 경우와 동일하다. 만일 목표 비트들 중의 일부가 비기입 비트이면, 새로운 플래그의 값은 이전의 경우에서의 값들과 다르고, 목표셀 중의 올바르게 기입된 메모리셀들에 대응하는 플래그는 활성화되지 않는다.
분할제어회로(606)는 1 이상의 횟수로 새로운 데이터 재기입 플래그(FL0 내지 FL15)에 대응하는 메모리셀들에 기입전압(Vpump)을 인가한다. 그 다음에, 검증동작(단계 804)이 다시 실행된다. 이들 단계는, 데이터가 모든 목표 메모리셀에 기입될 때까지, 즉 실패 비트가 검출되지 않을 때까지 반복된다. 실패 비트가 없다고 결정되면, 카운트회로(604)는 타이밍신호(φ5)를 발생시킨 다음, 데이터 기입동작 전체가 종료된다(단계 820).
상술된 바와 같이, 비휘발성 반도체 기억장치(100)는 카운트 회로(604)로 데이터 기입을 위한 목표 메모리셀들의 수를 카운트하고 카운트된 값에 기초하여 데이터 기입을 위한 4 개의 메모리셀을 지정한다. 이렇게 함으로서, 데이터 기입을 위한 메모리셀들의 수에 대응하는 데이터 기입시간을 단축시킨다.
보다 구체적으로, 비휘발성 반도체 기억장치(100)는 16 비트 데이터를 4 비트의 메모리셀들에 기입하기 위한 사이클에 대해 단 한번의 데이터 기입동작을 필요로 한다. 반면에, 종래의 기억장치는 일 사이클에 대해 4 회의 데이터 기입동작을 필요로 하고, 각 회마다 4 비트 데이트 기입을 필요로 한다. 본 실시예의 비휘발성 반도체 기억장치(100)에서 데이터 기입시간이 단축된다.
게다가, 본 실시예의 기억장치는 다음의 이유로 정상적인 데이터 기입에 여러 사이클이 요구되는 경우에도 특히 유효하다. 카운트 회로(604)는 데이터 기입이 이전의 사이클에서 완료되지 않은 경우 데이터가 정상적으로 기입되지 않은 메모리셀들을 카운트한다. 그 다음에, 다음 번 사이클에서 한 번의 데이터 기입동작을 위한 메모리셀들이 지정된다. 보다 구체적으로는, 16 비트 데이터를 12 비트의 메모리셀에 기입하기 위하여 첫번째 사이클에서 3 회의 데이터 기입동작이 수행된다. 예를 들어, 만일 데이터들이 8 비트의 메모리셀에 정상적으로 기입되지만 나머지 4 비트에 대한 데이터 기입이 실패하면, 두 번째 사이클에서 요구되는 데이터 기입은 단 한 번이다.
따라서, 본 실시예의 비휘발성 반도체 기억장치(100)는 데이터 기입시간을 크게 단축한다.
본 발명의 제 2 실시예에 따른 비휘발성 반도체 기억장치를 설명한다.
제 2 실시예의 비휘발성 반도체 기억장치의 회로구조는 제 1 실시예의 비휘발성 반도체 기억장치와 거의 동일하다. 다음은 그들 사이의 차이점이다. 카운트회로(604)는 카운트값의 상위 3 비트(2 비트가 아님)를 분할제어회로(606)에 출력한다. 분할제어회로(606)는 3 비트값에 기초하여 분할동작을 수행한다.
이러한 비휘발성 반도체 기억장치의 특징은 일 동작으로 데이터가 기입되는 메모리셀의 수의 편차(unevenness)를 감소시키는 것이다. 이것을 실현하기 위하여, 카운트회로(604)는 카운트값의 상위 3 비트를 분할제어회로(606)에 공급하여 그것의 분할제어성능을 최적화한다.
도 9 는 제 2 실시예에 따른 비휘발성 반도체 기억장치에서 수행된 분할동작을 도시하는 테이블이다. 도 9 에서 "할당 1" 은 제 1 실시예의 비휘발성 반도체 기억장치(100)의 분할할당동작을 나타낸다. "할당 2" 은 본 실시예의 비휘발성 반도체 기억장치의 분할할당동작을 나타낸다.
보다 구체적으로는, 만일 카운트된 값이 "5" 또는 "6" 이면, 카운트회로 (604) 는 그것의 상위 3 비트값 "10" 을 출력한다. 분할제어회로(606)가 이 3 비트값을 수신하여 데이터 기입을 위한 목표 메모리셀들을 2 개의 군으로 분할한다.
제 1 실시예의 기억장치(100)에서, 메모리셀도 또한 2 개의 군으로 분할된다. 카운트값이 "5" 인 경우, 분할수와 사이클에 대한 동작 횟수 사이의 관계는 "4-1" 로서 표현된다(즉, 이전의 군에서 메모리셀의 수는 4 이고, 데이터는 데이터 기입동작의 제 1 데이터 기입동작에서 이들 4 개의 셀들에 기입된다. 그 다음에, 데이터는 제 2 데이터 기입동작에서 일 셀의 나머지에 기입된다). 카운트값이 "6" 인 경우, 그 관계는 "4-2"로 표현된다(즉, 데이터가 제 1 데이터 기입동작에서 4 개의 셀에 기입되고, 이 데이터는 제 2 데이터 기입동작에서 2 개의 셀의 나머지에 기입된다).
본 실시예의 비휘발성 반도체 기억장치에서, 카운트값이 "5" 인 경우의 관계는 "3-2" 이고(데이터는 제 1 데이터 기입동작에서 3 개의 셀에 기입되고, 이 데이터는 제 2 데이터 기입동작에서 2 개의 셀의 나머지에 기입된다), 카운트값이 "6" 인 경우의 관계는 "3-3" 이고(데이터는 제 1 데이터 기입동작에서 3 개의 셀에 기입되고, 이 데이터는 제 2 데이터 기입동작에서 3 개의 셀의 나머지에 기입된다).
동일한 방법으로, 카운트값이 "9" 또는 "10" 일 때, 카운트회로(604)는 그것의 3 비트값 "100" 을 분할제어회로(606)에 출력한다. 분할제어회로(606)는 데이터 기입을 위한 목표 메모리셀들을 3 개의 군으로 분할한다. 카운트값이 "9" 인 경우, 관계는 "3-3-3" 이다(데이터는 각 회에서 3 개의 셀에 기입된다). 카운트값이 "10" 인 경우, 관계는 "4-3-3" 이다(데이터는 제 1 데이터 기입동작에서 4 개의 셀에 기입되고, 이 데이터는 제 2 및 제 3 데이터 기입동작에서 3 개의 셀들에 기입된다).
카운트값이 "13" 또는 "14" 인 경우, 카운트회로(604)는 그것의 3 비트값 "110"을 분할제어회로(606)에 출력한다. 분할제어회로(606)는 데이터 기입을 위한 목표 메모리셀들을 카운트값 "13" 에 대해 "4-3-3-3" 또는 카운트값 "14" 에 대해 "4-4-3-3"과 같이 4 개의 군으로 분할한다.
따라서, 본 실시예의 비휘발성 반도체 기억장치는 카운트값의 상위 3 비트값을 사용하여 분할된 비트들(예를 들어, "4-1")의 수의 편차를 검출한다. 편차가 발생하면, 분할된 비트들의 수가 균등화된다. 이것이 기입전압발생회로(110)의 전력소비를 감소시키고 신뢰성을 향상시키는데, 그 이유는 데이터 기입될 때 셀들에 인가되는 스트레스가 균등화되기 때문이다. 카운트값이 "1", "2", "3", "4", "7", "8", "11", "12", "15" 또는 "16" 인 경우 비휘발성 반도체 기억장치의 동작은 제 1 실시예의 비휘발성 반도체 기억장치(100)에서와 동일하다.
본 발명의 제 3 실시예에 따른 비휘발성 반도체 기억장치를 설명한다.
도 10 은 제 3 실시예에 따른 비휘발성 반도체 기억장치(1000)를 도시하는 블록다이어그램이다.
제 3 실시예의 비휘발성 반도체 기억장치(1000)에서의 검증회로 및 데이터 기입펄스 발생회로는 제 1 실시예의 비휘발성 반도체 기억장치(100)에서와 다르다.
도 11 은 비휘발성 반도체 기억장치(1000)의 검증회로(1020)를 도시한다.
도 11 에서, 카운트회로(1104)는 타이밍신호(φ3)에 기초하여 활성화된 데이터 재기입 플래그(FL0 내지 FL15)의 수를 카운트한다. 이 타이밍신호(φ3)는 카운트 회로(1104)에 연속적으로 공급된다. 카운트회로(1104)는 카운트값을 분할제어회로(1106)에 공급한다. 분할제어회로(1106)는 분할제어회로(606)에서와 마찬가지로 공급된 카운트값에 기초하여 데이터 기입을 위한 목표 비트들을 여러개의 군으로 분할한다. 그러나, 분할제어회로(606)와는 달리, 분할제어회로(1106)는 각 군의 비트수를 나타내는 신호 C 를 데이터기입 펄스발생회로(1018)에 공급한다.
예를 들어, 만일 카운트회로(1104)로부터의 카운트값이 "5" 이면, 분할제어회로(1106)는 셀을 "4-1" 과 같은 2 개의 군으로 분할하고, "4" 비트 데이터 기입을 위한 제 1 동작이 수행될 때 데이터기입 펄스발생회로(1018)에 신호 C 를 공급한다. 이 신호 C 는 "4" 를 나타내는 "11" 를 가리킨다. 분할제어회로(1106)는 "1" 비트 데이터 기입을 위한 제 2 동작이 수행될 때 데이터기입 펄스발생회로(1018)에 다른 신호 C 를 공급한다. 이 신호 C 는 "1" 을 나타내는 "0" 을 가리킨다.
카운트값이 "5" 인 경우, 분할제어회로(1106)는 셀을 "3-2" 와 같은 2 개의 군으로 분할할 수도 있다. 이 경우에, "3" 을 나타내는 "10" 을 가리키는 신호 C 가 "3" 비트 데이터 기입을 위한 제 1 동작이 수행될 때 데이터기입 펄스발생회로(1018)에 공급된다. "2" 을 나타내는 "1"을 가리키는 다른 신호 C 가 "2" 비트 데이터 기입을 위한 제 2 동작이 수행될 때 데이터기입 펄스발생회로(1018)에 공급된다.
데이터기입 펄스발생회로(1018)는 수신된 신호 C 에 기초하여 데이터기입 펄스신호(PL0 내지 PL15)의 펄스폭을 조절한다. 즉, "4" 를 나타내는 "11" 을 가리키는 신호 C 의 경우에 펄스폭은 변하지 않는다. "10", "1" 또는 "0"을 가리키는 신호 C, 즉, 데이터 기입을 위한 목표 메모리셀의 수가 작은 경우, 펄스폭은 협소하다. 따라서, 한 번에 데이터 기입을 위한 목표 메모리셀의 수가 작으면 전력소비도 작다. 또한 메모리셀에 인가되는 스트레스가 균등화되기 때문에 셀들의 신뢰성이 향상된다.
본 발명은 상술된 실시예들로 제한되지 않으며, 필요하면 변형될 수도 있다.
예를 들어, 카운트회로(604)가 생략될 수도 있고, 처리부(116)가 카운트 동작을 실행할 수도 있다. 본 발명은 데이터 재기입을 수행하는 경우에 일단 메모리셀의 소거를 행하는 시스템에 응용할 수도 있다.
기입전압발생회로(110)의 전류공급능력에 따라 동시 데이터 기입을 위한 메모리셀의 수 m (자연수) 이 임의로 설정될 수 있다.
이상의 설명에서 알 수 있는 바와 같이, 본 발명은 기입전압발생회로의 능력에 따라 분할 데이터 기입을 위한 데이터 기입시간의 감소를 실현한다.

Claims (18)

  1. 복수의 비휘발성 메모리셀;
    상기 복수의 비휘발성 메모리셀에 기억되는 데이터를 판독하는 판독수단;
    상기 판독수단에 의해 판독되는 상기 데이터를 상기 복수의 메모리셀에 기억되는 데이터와 비교하는 비교수단;
    상기 비교수단의 결과에 기초하여 상기 데이터를 기억하는 상기 복수의 비휘발성 메모리셀 중의 메모리셀의 수를 카운트하는 카운트수단; 및
    상기 카운트수단의 카운트값에 기초하여 데이터를 기억할 상기 메모리셀 중의 적어도 일부를 지정하고, 동시에 상기 지정된 메모리셀들에 상기 데이터를 기입하는 기입수단을 구비하는 것을 특징으로 하는 비휘발성 반도체 기억장치.
  2. 제 1 항에 있어서, 상기 기입수단은,
    (1) 상기 카운트수단의 상기 카운트값이 소정값을 초과하지 않으면 상기 지정된 메모리셀 모두에 상기 데이터를 동시에 기입하고,
    (2) 상기 카운트값이 상기 소정값을 초과하면 상기 지정된 메모리셀 중의 적어도 일부를 지정하고 상기 데이터를 상기 지정된 메모리셀 중의 적어도 일부에 동시에 기입한 다음, 상기 지정된 셀 중의 나머지에서의 적어도 일부 메모리셀을 지정하고 상기 데이터를 상기 지정된 셀 중의 나머지에서의 적어도 일부 메모리셀에 동시에 기입하는 것을 특징으로 하는 비휘발성 반도체 기억장치.
  3. 제 2 항에 있어서, 상기 기입수단에 상기 데이터 기입을 위한 전류를 공급하는 기입전압 발생회로를 더 구비하며, 상기 소정값이 상기 기입전압 발생회로의 능력에 따라 결정되는 것을 특징으로 하는 비휘발성 반도체 기억장치.
  4. 제 3 항에 있어서, 상기 기입수단은, 동시 데이터 기입을 위한 상기 메모리셀의 수에 따라 데이터 기입전류의 공급 횟수를 제어하는 수단을 구비하는 것을 특징으로 하는 비휘발성 반도체 기억장치.
  5. 제 1 항에 있어서, 상기 기입수단은,
    (1) 상기 카운트수단의 상기 카운트값이 소정의 자연값 m 을 초과하지 않으면 상기 지정된 메모리셀 모두에 상기 데이터를 동시에 기입하고,
    (2) 상기 카운트값이 상기 소정의 자연값 m 을 초과하면 상기 지정된 메모리셀에서 m 개의 메모리셀을 지정하고 상기 데이터를 상기 m 개의 메모리셀에 동시에 기입한 다음, 상기 지정된 셀 중의 나머지에서의 적어도 일부 메모리셀을 지정하고 상기 데이터를 상기 지정된 셀 중의 나머지에서의 적어도 일부 메모리셀에 동시에 기입하는 것을 특징으로 하는 비휘발성 반도체 기억장치.
  6. 제 5 항에 있어서, 상기 m 개의 메모리셀에 동시에 상기 데이터를 기입하기 위한 전류를 공급하는 능력을 갖는 기입전압 발생회로를 더 구비하는 것을 특징으로 하는 비휘발성 반도체 기억장치.
  7. 제 6 항에 있어서, 상기 기입수단은, 동시 데이터 기입을 위한 상기 메모리셀의 수가 m 보다 적게 감소함에 따라 상기 데이터 기입전류의 공급 횟수가 단축되도록 제어하는 수단을 구비하는 것을 특징으로 하는 비휘발성 반도체 기억장치.
  8. 제 1 항에 있어서, 상기 기입수단은,
    (1) 상기 카운트수단의 상기 카운트값이 소정의 자연값 m 을 초과하지 않으면 상기 지정된 메모리셀 모두에 상기 데이터를 동시에 기입하고,
    (2) 상기 데이터 기입을 위한 횟수 및 데이터 기입에 대해 m 보다 적은 메모리셀의 수를 지정하고, 상기 데이터를 상기 지정된 메모리셀에 지정된 횟수로 동시에 기입하는 것을 특징으로 하는 비휘발성 반도체 기억장치.
  9. 제 8 항에 있어서, 상기 지정된 m 개의 메모리셀에 데이터를 동시에 기입하는 능력을 갖는 기입전압 발생회로를 더 구비하는 것을 특징으로 하는 비휘발성 반도체 기억장치.
  10. 제 9 항에 있어서, 상기 기입수단은, 동시 데이터 기입을 위한 상기 메모리셀의 수가 m 보다 적게 감소함에 따라 상기 데이터 기입전류의 공급 횟수가 단축되도록 제어하는 수단을 구비하는 것을 특징으로 하는 비휘발성 반도체 기억장치.
  11. 제 1 항에 있어서, 상기 복수의 비휘발성 메모리셀 각각은 플로팅 게이트를 갖는 트랜지스터를 구비하며, 상기 플로팅 게이트에 전자를 주입하여 상기 데이터 기입이 행해지는 것을 특징으로 하는 비휘발성 반도체 기억장치.
  12. 복수의 비휘발성 메모리셀에 기억된 데이터를 판독하는 단계;
    상기 판독된 데이터를 상기 복수의 메모리셀에 기억될 데이터와 비교하고, 데이터 기입을 위한 상기 메모리셀의 수를 카운트하는 단계; 및
    카운트값에 기초하여 상기 데이터 기입을 위한 상기 메모리셀의 일부를 지정하고, 상기 지정된 메모리셀에 데이터를 동시에 기입하는 단계를 구비하는 것을 특징으로 하는 비휘발성 메모리셀에 데이터를 기입하는 방법.
  13. 제 12 항에 있어서, 상기 데이터 기입단계는,
    (1) 카운트수단의 상기 카운트값이 소정값을 초과하지 않으면 상기 지정된 메모리셀 모두에 데이터를 동시에 기입하고,
    (2) 상기 카운트값이 상기 소정값을 초과하면 상기 지정된 메모리셀 중의 적어도 일부를 지정하고 상기 데이터를 상기 지정된 메모리셀 중의 적어도 일부에 동시에 기입한 다음, 상기 지정된 셀의 나머지에서의 적어도 일부 메모리셀을 지정하고 상기 데이터를 상기 지정된 셀의 나머지에서의 적어도 일부 메모리셀에 동시에 기입하는 것을 특징으로 하는 비휘발성 메모리셀에 데이터를 기입하는 방법.
  14. 제 13 항에 있어서, 동시 데이터 기입을 위한 상기 메모리셀의 수에 따라 상기 데이터 기입전류의 공급 횟수를 제어하는 단계를 구비하는 것을 특징으로 하는 비휘발성 메모리셀에 데이터를 기입하는 방법.
  15. 제 12 항에 있어서, 상기 데이터 기입단계는,
    (1) 카운트수단의 상기 카운트값이 소정의 자연값 m 을 초과하지 않으면 상기 지정된 메모리셀 모두에 상기 데이터를 동시에 기입하고,
    (2) 상기 카운트값이 상기 소정의 자연값 m 을 초과하면 상기 지정된 메모리셀에서 m 개의 메모리셀을 지정하고 상기 데이터를 상기 m 개의 메모리셀에 동시에 기입한 다음, 상기 지정된 셀의 나머지에서의 적어도 일부 메모리셀을 지정하고 상기 데이터를 상기 지정된 셀의 나머지에서의 적어도 일부 메모리셀에 동시에 기입하는 것을 특징으로 하는 비휘발성 메모리셀에 데이터를 기입하는 방법.
  16. 제 15 항에 있어서, 동시 데이터 기입을 위한 상기 메모리셀의 수가 m 보다 적게 감소함에 따라 상기 메모리셀 각각에 데이터를 기입하는 횟수를 단축시키는 것을 특징으로 하는 비휘발성 메모리셀에 데이터를 기입하는 방법.
  17. 제 12 항에 있어서, 상기 데이터 기입단계는,
    (1) 카운트수단의 상기 카운트값이 소정의 자연값 m 을 초과하지 않으면 상기 지정된 메모리셀 모두에 상기 데이터를 동시에 기입하고,
    (2) 상기 데이터 기입을 위한 횟수 및 데이터 기입에 대해 m 보다 적은 상기 메모리셀의 수를 지정하고, 상기 데이터를 상기 지정된 메모리셀에 지정된 횟수로 동시에 기입하는 것을 특징으로 하는 비휘발성 메모리셀에 데이터를 기입하는 방법.
  18. 제 17 항에 있어서, 동시 데이터기입을 위한 상기 메모리셀의 수가 m 보다 적게 감소함에 따라 상기 메모리셀 각각에 데이터를 기입하는 횟수를 단축시키는 것을 특징으로 하는 비휘발성 메모리셀에 데이터를 기입하는 방법.
KR1019980019930A 1997-05-30 1998-05-29 비휘발성 반도체 기억장치 KR100281209B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP97-142544 1997-05-30
JP14254497A JP3156636B2 (ja) 1997-05-30 1997-05-30 不揮発性半導体記憶装置

Publications (1)

Publication Number Publication Date
KR100281209B1 true KR100281209B1 (ko) 2001-02-01

Family

ID=15317828

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980019930A KR100281209B1 (ko) 1997-05-30 1998-05-29 비휘발성 반도체 기억장치

Country Status (5)

Country Link
US (1) US6064603A (ko)
EP (1) EP0881645B1 (ko)
JP (1) JP3156636B2 (ko)
KR (1) KR100281209B1 (ko)
DE (1) DE69819961T2 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3488631B2 (ja) * 1998-04-24 2004-01-19 株式会社東芝 半導体記憶装置
JP4083944B2 (ja) * 1999-12-13 2008-04-30 東芝マイクロエレクトロニクス株式会社 半導体記憶装置
WO2002019342A1 (fr) * 2000-08-30 2002-03-07 Hitachi, Ltd. Memoire permanente
JP4250325B2 (ja) * 2000-11-01 2009-04-08 株式会社東芝 半導体記憶装置
FR2837974A1 (fr) * 2002-03-26 2003-10-03 St Microelectronics Sa Memoire programmable electriquement comprenant des moyens d'optimisation du temps de programmation d'un ensemble de mots
ITMI20022570A1 (it) 2002-12-05 2004-06-06 Simicroelectronics S R L Metodo di programmazione di una memoria a semiconduttore non-volatile programmabile elettricamente
KR100632367B1 (ko) 2004-11-22 2006-10-09 삼성전자주식회사 불휘발성 반도체 메모리 장치의 프로그램 비트 스캔표시회로
US7925820B2 (en) 2004-09-30 2011-04-12 Samsung Electronics Co., Ltd. Nonvolatile semiconductor memory device and program method therefor
KR100723772B1 (ko) 2005-03-28 2007-05-30 주식회사 하이닉스반도체 개선된 프로그램 동작 성능을 가지는 플래쉬 메모리 소자의페이지 버퍼 및 그것의 프로그램 동작 제어 방법
KR100919156B1 (ko) * 2006-08-24 2009-09-28 삼성전자주식회사 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법
JP5217848B2 (ja) * 2008-09-29 2013-06-19 ルネサスエレクトロニクス株式会社 不揮発性半導体記憶装置
US8161219B2 (en) * 2008-09-30 2012-04-17 Qimonda Ag Distributed command and address bus architecture for a memory module having portions of bus lines separately disposed
US8570828B2 (en) * 2010-04-12 2013-10-29 Mosaid Technologies Incorporated Memory programming using variable data width
JP5702573B2 (ja) * 2010-10-20 2015-04-15 スパンション エルエルシー 不揮発性半導体記憶装置およびそのデータ書き込み方法
US8804429B2 (en) * 2011-12-08 2014-08-12 Silicon Storage Technology, Inc. Non-volatile memory device and a method of programming such device

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2900523B2 (ja) * 1990-05-31 1999-06-02 日本電気株式会社 不揮発性半導体メモリ装置の書込回路
US5436913A (en) * 1992-06-02 1995-07-25 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device using successively longer write pulses
US5537350A (en) * 1993-09-10 1996-07-16 Intel Corporation Method and apparatus for sequential programming of the bits in a word of a flash EEPROM memory array
JP3215237B2 (ja) * 1993-10-01 2001-10-02 富士通株式会社 記憶装置および記憶装置の書き込み/消去方法
US5530803A (en) * 1994-04-14 1996-06-25 Advanced Micro Devices, Inc. Method and apparatus for programming memory devices
US5694356A (en) * 1994-11-02 1997-12-02 Invoice Technology, Inc. High resolution analog storage EPROM and flash EPROM
US5673224A (en) * 1996-02-23 1997-09-30 Micron Quantum Devices, Inc. Segmented non-volatile memory array with multiple sources with improved word line control circuitry

Also Published As

Publication number Publication date
JP3156636B2 (ja) 2001-04-16
EP0881645A3 (en) 1999-09-22
DE69819961T2 (de) 2004-05-27
EP0881645A2 (en) 1998-12-02
JPH10334675A (ja) 1998-12-18
DE69819961D1 (de) 2004-01-08
EP0881645B1 (en) 2003-11-26
US6064603A (en) 2000-05-16

Similar Documents

Publication Publication Date Title
KR100281209B1 (ko) 비휘발성 반도체 기억장치
JP3807744B2 (ja) 可変プログラムパルス高及びパルス幅によるページモードフラッシュメモリ用自動プログラミングアルゴリズム
US7290109B2 (en) Memory system and memory card
US5515317A (en) Addressing modes for a dynamic single bit per cell to multiple bit per cell memory
US7688634B2 (en) Method of operating an integrated circuit having at least one memory cell
US9123423B2 (en) Programming operations in a memory device
US20020101778A1 (en) Integrated circuit for storage and retrieval of multiple digital bits per nonvolatile memory cell
KR100611825B1 (ko) 프로그래밍 방법 및 장치
US7072221B2 (en) Flash memory device and method for driving the same
JP3854042B2 (ja) フラッシュメモリ装置及びそのプログラム方法
JPH0632226B2 (ja) メモリの消去法およびプログラミング法
JPH09180471A (ja) 多値記憶式不揮発性半導体メモリ装置とそのデータ読出、プログラム及び検証方法
KR100337763B1 (ko) 반도체기억장치
CN103703515B (zh) 从存储器阵列确定及转移数据
US7173860B2 (en) Source controlled operation of non-volatile memories
US6335882B1 (en) Nonvolatile semiconductor memory device capable of erasing blocks despite variation in erasing characteristic of sectors
JP2009530758A (ja) メモリデバイス分散型制御器システム
GB2325546A (en) Electrically programmable memory and method of programming
US6134149A (en) Method and apparatus for reducing high current during chip erase in flash memories
US5517453A (en) Memory with multiple erase modes
JP2817052B2 (ja) 記憶装置
JP2000123584A (ja) 不揮発性半導体メモリおよびそれを内蔵した半導体集積回路
US6091641A (en) Non-volatile memory device and method for the programming of the same
US20030095439A1 (en) Method and system for minimizing bit stress in a non-volatile memory during erase operations
KR20020047772A (ko) 노어형 플래시 메모리 장치의 프로그램 방법

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20041109

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee