KR100264028B1 - 부트 블럭 방식을 채용하는 불휘발성 메모리의데이타 소거 메카니즘 - Google Patents

부트 블럭 방식을 채용하는 불휘발성 메모리의데이타 소거 메카니즘 Download PDF

Info

Publication number
KR100264028B1
KR100264028B1 KR1019970053482A KR19970053482A KR100264028B1 KR 100264028 B1 KR100264028 B1 KR 100264028B1 KR 1019970053482 A KR1019970053482 A KR 1019970053482A KR 19970053482 A KR19970053482 A KR 19970053482A KR 100264028 B1 KR100264028 B1 KR 100264028B1
Authority
KR
South Korea
Prior art keywords
block
address
circuit
blocks
memory cell
Prior art date
Application number
KR1019970053482A
Other languages
English (en)
Other versions
KR19980032946A (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
Priority claimed from JP27617996A external-priority patent/JP3176038B2/ja
Priority claimed from JP4401097A external-priority patent/JP3148143B2/ja
Application filed by 니시무로 타이죠, 가부시끼가이샤 도시바 filed Critical 니시무로 타이죠
Publication of KR19980032946A publication Critical patent/KR19980032946A/ko
Application granted granted Critical
Publication of KR100264028B1 publication Critical patent/KR100264028B1/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
    • 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/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/04Arrangements for selecting an address in a digital store using a sequential addressing device, e.g. shift register, counter

Landscapes

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

Abstract

변칙 블럭의 합계의 비트수는, 하나의 균등 블럭의 비트수와 동일하다. 변칙 블럭의 메모리 셀은, 균등 블럭의 메모리 셀의 지정에 사용하는 어드레스 카운터를 이용하여 순차 지정된다. 소거 동작(프리프로그램, 소거를 포함함)은, 우선 베리파이부터 행하고, 베리파이 NG일 때에만 소거 전 기입, 소거를 행한다. 여기서, 베리파이의 결과 VERIOK를 "1" (베리파이 OK)로 고정할 수 있는 수단을 설치하고, 변칙 블럭 내의 비선택 블럭에 대해서는, 항상 VERIOK를 "1"로 설정하고, 변칙 블럭 내의 비선택 블럭에 대해 소거 전 기입 및 소거를 행하지 않도록 한다. 이에 따라, 부트 블럭 방식에서, 균등 블럭과 변칙 블럭 셀의 지정에 동일한 어드레스 카운터를 이용하여 회로 규모의 축소를 도모한다.

Description

부트 블럭 방식을 채용하는 불휘발성 메모리의 데이타 소거 메카니즘
본 발명은, 부트 블럭(Boot block) 방식을 채용하는 NOR형 플레쉬 EEPROM 등과 같은 소거 블럭(일괄 소거의 단위)이 불균일한 불휘발성 메모리의 데이타 소거 메카니즘에 관한 것이다.
전기적인 데이타의 개서가 가능한 플래쉬 EEPROM에서는 기본적인 모드로서, 기입, 소거, 판독의 3개의 모드를 갖고 있다. 기입 모드란, 메모리 셀의 임계치를 5.5V 이상까지 올리는 동작을 뜻하고, 소거 모드란, 메모리 셀의 임계치를 0.5 내지 3.0V의 범위까지 내리는 동작을 뜻한다.
또한, 자동 기입 기능 및 자동 소거 기능을 갖는 플래쉬 EEPROM에서는, 기입 모드에 있어서는, 메모리 셀의 임계치가 5.5V 이상에 이르는지의 여부를 판정(베리파이)하고, 메모리 셀의 임계치가 5.5V 이상에 이르기까지 자동적으로 재기입을 행하며, 소거 모드에서는, 메모리 셀의 임계치가 0.5 내지 3.0V의 범위에 존재하는지의 여부를 판정(베리파이) 하고, 메모리 셀의 임계치가 0.5 내지 3.0V의 범위에 존재하게 되기까지 자동적으로 소정의 동작을 행한다.
이러한 플래쉬 EEPROM에서는, 일반적으로 메모리 셀 어레이는 일괄 소거의 단위로서의 소거 블럭으로 나누어져 있다. 예를 들면, 256킬로비트×16·I/O 타입의 4메가비트 플래쉬 EEPROM은, 메모리 셀 어레이(4 메가비트)가 8개의 블럭으로 균등하게 나누어지고, 각 블럭은 512킬로비트의 메모리 셀을 포함하고 있다.
메모리 셀 어레이를 복수의 소거 블럭으로 나누는 이유 중 하나는, 최근의 단일 전원(외부 전원을 한데 합치는 것)의 요구가 있다. 즉, 이 요구를 달성하기 위해서는 기입 또는 소거에 이용하는 고전압을, 외부 전원에 기초하여 칩 내의 승압 회로에 의해 생성할 필요가 있다. 그러나, 고전압을 칩 내의 승압 회로에 의해 생성하는 단일 전원 타입의 제품은, 2전원 타입의 제품(외부 전원이 두개인 제품)에 비교해 소비 전력이 크게 되는 결점이 있다.
그래서, 데이타의 소거 동작에 관해서는, 메모리 셀 어레이를 복수의 소거 블럭으로 나눠, 블럭마다 소거를 실행한다고 하는 블럭 소거 방식의 불휘발성 메모리가 현재의 주류로 되어 있다. 블럭 소거 방식의 불휘발성 메모리는, 데이타의 소거를 행하는 선택 블럭에 대해서만 소거 동작을 실행하면 되기 때문에, 소비 전력의 저감에 효과적이다.
또한, 블럭 소거 방식에는 복수의 소거 블럭 중 하나 또는 그 이상의 선택 블럭에 대해 동시에 소거 동작을 행하는 방식과, 복수의 소거 블럭을 직렬로 억세스하여 억세스된 소거 블럭이 선택 블럭일 때에는 소거 동작을 실행하고, 억세스된 소거 블럭이 비선택 블럭일 때에는 소거 동작을 실행하지 않은 방식의 두개가 알려져 있다.
후자의 방식은, 전자의 방식에 비교해 저소비 전력이다. 이하의 설명에서는, 복수의 소거 블럭을 직렬로 억세스하고, 소거 동작을 실행하는 후자의 방식을 대상으로 한다.
도 1은, 종래의 자동 기입 기능 및 자동 소거 기능을 갖는 플래쉬 EEPROM의 주요부를 도시하는 것이다. 도 2는, 도 1의 블럭 선택용 레지스터의 구성의 일례를 도시하는 것이다. 또한, 도 3은 도 1의 메모리 셀 어레이, 로우 디코더, 컬럼 디코더, 컬럼 선택 회로의 레이아웃의 일례를 도시하는 것이다.
메모리 셀 어레이(11)는, 복수의 블럭으로 구성되고, 각 블럭은 예를 들면 NOR형의 메모리 셀로 구성되어 있다.
외부 어드레스 A0, A1, 내지 A17은, 직접 또는 어드레스 레지스터(12)를 경유하여 멀티플렉서(13)로 입력된다. 어드레스 카운터(16)는, 내부 어드레스를 생성한다. 멀티플렉서(13)는, 외부 어드레스 및 내부 어드레스중 어느 한쪽을 로우 디코더(14) 및 컬럼 디코더(15)로 부여한다.
입력 데이타는, 입출력 버퍼(17)를 경유하여 데이타 입력 레지스터(18) 및 커맨드 레지스터(19)로 부여된다. 데이타 입력 레지스터(18)의 데이타는 컬럼 선택 회로(20)를 경유하여 메모리 셀로 공급된다.
커맨드 레지스터(19)는, 어드레스 및 데이타로 이루어지는 커맨드를 인식하고, 그 커맨드에 따라 어드레스 레지스터(12), 멀티플렉서(13) 및 데이타 입력 레지스터(18)로 제어 신호를 출력한다.
커맨드 레지스터(19)는 소거 커맨드를 확인하면, 래치 신호 LATCH를 블럭 선택용 레지스터(26)로 출력한다. 블럭 선택용 레지스터(26)는, 래치 신호 LATCH를 받으면, 메모리 셀 어레이(11)의 전 블럭에 대해, 블럭마다 선택(소거)의 유무를 나타내는 신호를 래치한다.
또한, 블럭 선택용 레지스터(26)는, 어드레스 카운터(16)의 내부 어드레스(블럭을 지정하는 블럭 어드레스)에 의해 지정되는 블럭이, 선택 블럭(소거를 실행하는 블럭)인지의 여부를 확인하고, 또한 선택 블럭의 경우에는 제어 신호 GO를 "1"로 설정하여 제어 회로(21)에 소거를 실행하는 취지를 전하고, 비선택 블럭의 경우에는 제어 신호 GO를 "0"으로 설정하며, 제어 회로(21)에 소거를 실행하지 않는 취지를 전한다.
전압 발생 회로(22)는, 동작 모드에 대응한 각종 전압을 생성한다. 전압 발생 회로(22)에 의해 생성된 전압은, 각 동작 모드에서 메모리 셀의 제어 게이트 및 비트선으로 인가된다.
베리파이 회로(23)는, 선택된 메모리 셀에 대한 데이타의 기입 또는 소거가 확실하게 행하여지는지의 여부를 판정하고, 그 결과를 나타내는 제어 신호 VERIOK를 제어 회로(21)로 출력한다.
예를 들면, 제어 신호 VERIOK가 "1"로 되면 베리파이 OK라고 판단하여 데이타의 기입 또는 소거를 종료하고, 제어 신호 VERIOK가 "0"일 때는 베리파이 NG라고 판단하여 데이타의 기입 또는 소거를 계속해 행한다.
최종 어드레스 검지 회로(24)는, 메모리 셀 어레이(11)의 각 블럭의 최종 어드레스의 검지 유무를 나타내는 검지 신호 AEND를 출력함과 동시에, 메모리 셀 어레이(11)의 최종 블럭 검지의 유무를 나타내는 검지 신호 BEND를 출력한다.
타이머(25)는, 선택된 메모리 셀에 대한 데이타의 기입 또는 소거가 몇회 실행되었는지를 카운트한다. 타이머(25)는, 선택된 메모리 셀에 대한 데이타의 기입 또는 소거가 소정 횟수에 이르렀을 때, 타임 아웃 신호 TIME OUT을 제어 회로(21)로 출력한다.
다음에, 도 4의 자동 소거 시퀀스를 참조하면서, 상기 플래쉬 EEPROM에서의 자동 소거 동작에 대해 설명한다.
커맨드 레지스터(19)가, 소거 커맨드를 인식하고, 또한 소거 블럭 각각에 대해 소거를 실행할지의 여부를 확인하면, 제어 회로(21)는, 도 4에 도시된 바와 같은 자동 소거 시퀀스가 실행되도록 각 회로의 동작을 제어한다.
또한, 커맨드 레지스터(19)는, 어드레스 카운터(16)의 내부 어드레스가 로우 디코더(14) 및 컬럼 디코더(15)로 공급되도록 멀티플렉서(13)로 제어 신호를 출력한다.
우선, 어드레스 레지스터(12), 타이머(25)가 리셋되고, 블럭 어드레스 BLOCK 및 로우·컬럼 어드레스 ADD가 각각 초기치 "0"으로 설정되며, 기입, 소거 횟수 CYCLE도 초기치 "0"으로 설정된다(스텝 ST1).
다음에, 블럭 어드레스 BLOCK에 의해 선택되는 블럭이, 자동 소거 동작을 실행하는 선택 블럭인지의 여부를 판정한다.
선택 블럭일 경우에는, 제어 신호 GO가 "1"이 되고, 제어 회로(21)는 우선 Pre Program 동작을 개시한다. 비선택 블럭일 경우에는, 제어 신호 GO가 "0"이 되고, Pre Program 동작은 행하지 않며, 제어 회로(21)는 다음 블럭에 대해 선택 블럭인지의 여부를 판정한다(스텝 ST2).
Pre Program 동작은, 이하의 순서로 행하여진다.
우선, 전압 발생 회로(22)에서 프로그램 베리파이 P. V. 의 내부 전원이 셋업된다 (스텝 ST3). 이 후, 어드레스 ADD에 의해 선택된 메모리 셀(플래쉬 EEPROM이 ×n (n은 1이상의 자연수)·I/O 타입의 경우는, n 개의 메모리 셀)의 데이타가 판독된다(스텝 ST4).
어드레스 ADD에 의해 선택된 메모리 셀(이하, 선택 메모리 셀)의 데이타는, 프로그램 데이타 "0"과 비교된다(스텝 ST5).
즉, 기입 상태라고 판별할 수 있는 임계치의 하한으로 되는 전압(예를 들면, 5.5V)을 경계치로 하여 선택 메모리 셀의 임계치가 경계치보다도 높으면, 선택 메모리 셀의 데이타는 "0"으로 판정하고, 선택 메모리 셀의 임계치가 경계치보다도 낮으면, 선택 메모리 셀의 데이타는 "1"이라고 판정한다.
그리고, 선택 메모리 셀의 데이타와 프로그램 데이타 "0"이 불일치할 경우, 기입 NG라고 판단하고, 베리파이 회로(23)는 제어 신호 VERIOK="0"을 출력한다.
따라서, 제어 회로(21)는, 선택 메모리 셀에 대해 데이타의 기입(플로우팅 게이트에 대한 전자의 주입)을 실행한다. 이 데이타의 기입은, 미리 설정된 횟수 Limit에 이르기까지는, 선택 메모리 셀의 데이타가 프로그램 데이타 "0"과 일치할 때까지 반복해 행하여진다(스텝 ST6 내지 ST8).
또한, 선택 메모리 셀에 대한 기입 횟수 CYCLE이 미리 설정된 횟수 Limit에 이르었을 때는, 선택 메모리 셀의 데이타와 프로그램 데이타가 불일치해도 Pre Program 동작을 종료한다(스텝 ST6).
이 경우, 기입 불량이 발생한 것을 나타내는 신호 ERROR이 "1"로 설정된다(스텝 ST9).
한편, 선택 메모리 셀의 데이타와 프로그램 데이타 "0"이 일치하면, 선택 메모리 셀의 기입 OK라고 판단하고, 베리파이 회로(23)는 제어 신호 VERIOK를 "1"로 설정한다.
제어 회로(21)는, 제어 신호 VERIOK가 "1"로 되면, 어드레스 ADD를 하나 진행시키기 위해, 다음 어드레스의 선택 메모리 셀에 대해 같은 동작이 행하여진다. 이 때, 타이머(25)의 수치 CYCLE은 초기치 "0"으로 리셋된다(스텝 ST10 내지 ST12).
또한, 선택 메모리 셀의 데이타와 프로그램 데이타 "0"이 일치할 경우에 있어서, 어드레스 ADD가 그 블럭 내의 최종 어드레스일 때는 Pre Program 동작을 종료한다(스텝 ST10).
Pre Program이 확실하게 실행되었을 경우, 즉 신호 ERROR이 "0"일 경우에는, 이 후, 소거(Erase) 동작이 실행된다.
소거(Erase) 동작은, 이하와 같은 순서로 행하여진다.
우선, 어드레스 카운터(16)의 어드레스 ADD가 초기치 "0"으로 설정되고, 또한 타이머(25)의 수치(소거 횟수에 대응) CYCLE이 초기치 "0"으로 설정된다(스텝 ST13). 또한, 전압 발생 회로(22)에서 소거 베리파이 E. V.의 내부 전원이 셋업된다 (스텝 ST14).
이 후, 어드레스 ADD에 의해 선택된 메모리 셀(플래쉬 EEPROM이 ×n(n은 1이상의 자연수)·I/O 타입의 경우는, n 개의 메모리 셀)의 데이타가 판독된다(스텝 ST15).
어드레스 ADD에 의해 선택된 메모리 셀(이하, 선택 메모리 셀)의 데이타는, 기대치 "1"과 비교된다(스텝 ST16).
즉, 소거 상태라고 판별할 수 있는 임계치의 상한으로 되는 전압(예를 들면, 3.0V)을 경계치로 하고, 선택 메모리 셀의 임계치가 경계치보다도 높으면, 선택 메모리 셀의 데이타는 "0"이라고 판정하고, 선택 메모리 셀의 임계치가 경계치보다도 낮으면, 선택 메모리 셀의 데이타는 "1"이라고 판정한다.
그래서, 선택 메모리 셀의 데이타와 기대치 "1"이 불일치할 경우, 소거 NG라고 판단하고, 베리파이 회로(23)는 제어 신호 VERIOK=0을 출력한다. 따라서, 제어 회로(21)는, 선택 블럭 내의 모든 메모리 셀에 대해 데이타의 소거(플로우팅 게이트중 전자를 추출하는 동작)를 실행한다(스텝 ST18).
여기서, 선택 블럭 내의 모든 메모리 셀에 대해 데이타의 소거(일괄 소거)를 실행하고 있지만, 이것은 플래쉬 EEPROM에서 특유의 동작이다. 따라서, 선택 메모리 셀 이외의 이미 소거가 완료하고 있는 메모리 셀에 대해서도 소거 동작이 실행된다.
이 소거 동작은, 미리 설정된 횟수 Limit에 이를 때까지는, 선택 메모리 셀의 데이타가 기대치 "1"과 일치할 때까지 반복해 행하여진다(스텝 ST17 내지 ST19).
또한, 선택 메모리 셀에 대한 기입 횟수 CYCLE이 미리 설정된 횟수 Limit에 이르었을 때는, 선택 메모리 셀의 데이타와 기대치 "1"이 불일치해도 소거 동작을 종료한다. (스텝 ST17).
이 경우, 소거 불량이 발생한 것을 나타내는 신호 ERROR가 "1"로 설정된다(스텝 ST9).
한편, 선택 메모리 셀의 데이타와 기대치 "1"이 일치하면, 선택 메모리 셀의 소거 OK라고 판단하고, 베리파이 회로(23)는 제어 신호 VERIOK를 "1"로 설정한다.
제어 회로(21)는, 제어 신호 VERIOK가 "1"로 되면, 어드레스 ADD를 하나 진행시키기 위해, 다음 어드레스의 선택 메모리 셀에 대해 같은 동작이 행하여진다. 이 때, 타이머(25)의 수치 CYCLE은, 초기치 "0"으로 리셋되지 않는다. 소거 동작은, 블럭 내의 전 메모리 셀에 대해 행하여지기 때문이다(스텝 ST20 내지 ST21).
또한, 선택 메모리 셀의 데이타와 기대치 "1"이 일치할 경우에, 어드레스 ADD가 그 블럭 내의 최종 어드레스일 때는 소거 동작을 종료한다(스텝 ST20).
이 후, 신호 ERROR이 "0"일 경우에는, 선택 블럭이 최종 블럭인지의 여부를 확인하고, 최종 블럭일 때에는 리드 셋업을 거친 후 자동 소거 동작을 종료하고, 최종 블럭이 아닐 때에는, 다음 블럭에 대해 상술한 동작을 반복적으로 행한다(스텝 ST22 내지 ST24).
또, 이상의 설명은 블럭 소거의 경우이지만, 칩 소거의 경우에는 상술한 자동 소거 시퀀스에서 모든 블럭을 선택 상태로 하면 된다. 또한, 소거 동작에는 과소거의 메모리 셀을 통상의 소거 상태로 복귀하는 자기 수속(Convergence) 동작을 포함시키도록 해도 된다.
그런데, 종래의 제품(플래쉬 EEPROM)은, 각각의 소거 블럭 내의 비트수가 동일한 (예를 들면, 512킬로비트) 균등 블럭 방식의 것이 대부분이지만, 최근의 제품은 소정의 소거 블럭의 비트수가, 다른 소거 블럭의 비트수와 다른 부트 블럭 방식의 것이 많아지고 있다.
이러한 부트 블럭 방식의 플래쉬 EEPROM에 대해, 자동 기입 동작 또는 자동 소거 동작을 실행할 경우에는 여러가지 문제가 발생한다.
Figure kpo00000
표 1은, 모든 소거 블럭의 비트수가 균등(512 킬로비트)한 균등 블럭 방식을 채용했을 경우의 블럭 어드레스를 나타내고 있다. 즉, 모든 소거 블럭의 사이즈가 균등한 경우에는, 어드레스 A17 내지 A0 중, 어드레스 A17 내지 A15의 3비트를 블럭 어드레스로서 이용하면 된다.
그러나, 부트 블럭 방식의 플래쉬 EEPROM은, 상호 비트수가 다른 복수의 블럭(불균일 블럭)으로 구성되기 때문에, 표 1에 나타낸 바와 같은 블럭 어드레스를 이용할 수 없다. 즉, 블럭의 사이즈(예를 들면, 컬럼 수의 증감)에 따라, 컬럼 어드레스의 수도 변하고, 또한 블럭의 수가 증가하면 블럭 어드레스의 수도 늘려야 한다.
따라서, 부트 블럭 방식의 플래쉬 EEPROM에서는 균등 블럭의 어드레스 카운터 외에 불균일 블럭의 어드레스 카운터를 구비할 필요가 있고, 소자의 증가에 따라 회로 규모가 상당히 커지는 결점이 있다.
본 발명은, 상기 결점을 해결하도록 이루어진 것으로, 그 목적은 부트 블럭 방식을 채용하고 있는 불휘발성 메모리에 있어서, 자동 소거 시퀀스를 실행하기 위한 수단을 개발하는 것이다.
상기 목적을 달성하기 위해 본 발명의 불휘발성 메모리는, 본 발명의 불휘발성 메모리는, 비트수가 동일한 복수의 균등 블럭과 복수의 변칙 블럭으로 구성되는 부트 블럭 방식의 메모리 셀 어레이와, 소거 동작시에 상기 복수의 균등 블럭 및 상기 복수의 변칙 블럭중 하나를 지정하는 블럭 어드레스 신호, 및 상기 블럭 어드레스 신호에 따라 지정된 블럭이 소거를 실행하는 선택 블럭일 경우에 그 선택 블럭 내의 메모리 셀을 순차 지정하는 로우 및 컬럼 어드레스 신호를 생성하는 어드레스 생성 회로를 구비한다. 상기 어드레스 생성 회로는, 상기 블럭 어드레스 신호의 근원으로 되는 출력 신호를 출력하는 블럭 어드레스 카운터와, 상기 로우 및 컬럼 어드레스 신호를 출력하는 로우 및 컬럼 어드레스 카운터, 상기 블럭 어드레스 신호에 따라 지정된 블럭이 상기 복수의 균등 블럭중 하나이고 또 상기 선택 블럭일 경우에, N 비트의 상기 로우 및 컬럼 어드레스 신호와 M 비트의 상기 블럭 어드레스 신호를 출력하고, 상기 블럭 어드레스 신호에 따라 지정된 블럭이 상기 복수의 변칙 블럭 중 하나이고 또 상기 선택 블럭일 경우에, 상기 블럭 어드레스 신호에 의해 지정된 블럭의 기억 용량에 대응한 N-n 비트의 상기 로우 및 컬럼 어드레스 신호와 M+n 비트의 상기 블럭 어드레스 신호를 출력하는 수단(N, M은 자연수, n은 상기 블럭 어드레스 신호에 의해 지정된 변칙 블럭의 기억 용량에 의해 정해지는 값, N>n임.)으로 구성된다.
상기 블럭 어드레스 신호에 따라 지정된 블럭이 소거를 실행하는 선택 블럭일 경우에, 상기 로우 및 컬럼 어드레스 신호는 초기치로부터 최종치까지 순차 인크리먼트되고, 상기 선택 블럭 내의 모든 메모리 셀에 대해 소거가 실행된다.
또한, 본 발명의 불휘발성 메모리는, 메모리 셀 어레이가 비트수가 동일한 복수의 균등 블럭과, 합계의 비트수가 하나인 균등 블럭의 비트수와 동일한 복수의 변칙 블럭으로 나누어지는 부트 블럭 방식을 갖고, 소거 동작시에 상기 복수의 균등 블럭중 소거를 실행하는 선택 블럭 내의 메모리 셀을 선택 블럭마다 순차 지정함과 동시에, 상기 복수의 변칙 블럭중 적어도 하나가 소거를 실행하는 선택 블럭일 경우에, 상기 복수의 변칙 블럭 내의 메모리 셀을 순차 지정하는 것과 같은 내부 어드레스를 생성하는 어드레스 카운터와, 상기 내부 어드레스에 의해 지정되는 메모리 셀의 데이타를 판독, 베리파이를 행하는 베리파이 회로, 상기 베리파이가 NG일 때만, 상기 내부 어드레스에 의해 지정되는 메모리 셀에 대해 소거 전 기입을 행하고, 또는 상기 내부 어드레스에 의해 지정되는 메모리 셀을 포함하는 선택 블럭 내의 전 메모리 셀에 대해 소거를 행하기 위한 제어 회로, 소거 동작시에 상기 내부 어드레스가 상기 복수의 변칙 블럭 내의 메모리 셀을 순차 지정하고 있을 경우에, 상기 내부 어드레스에 의해 지정되는 메모리 셀(1)이 소거를 실행하지 않은 비선택 블럭에 존재하고 있을 때는, 상기 베리파이 회로의 베리파이 결과에 관계 없이, 항상 상기 베리파이가 OK가 되도록 설정하고, 상기 내부 어드레스에 의해 지정되는 메모리 셀이 소거를 실행하는 선택 블럭으로 존재하고 있을 때는, 상기 베리파이 회로 베리파이의 결과에 따라 상기 베리파이를 OK 또는 NG로 설정하는 수단을 구비한다.
또한, 소거 동작시에 상기 내부 어드레스가 상기 복수의 균등 블럭중 선택 블럭 내의 메모리 셀을 순차 지정하고 있을 경우에, 상기 수단은 상기 베리파이 회로의 베리파이 결과에 따라 상기 베리파이를 OK 또는 NG로 설정한다.
또한, 상기 복수의 변칙 블럭의 모두가 소거를 실행하지 않은 비선택 블럭일 경우에, 상기 어드레스 카운터는 상기 복수의 변칙 블럭 내의 메모리 셀을 순차 지정하는 내부 어드레스를 생성하지 않는다.
상기 제어 회로는, 상기 소거 전 기입 또는 상기 소거의 횟수가 소정수에 이를 때까지는, 상기 베리파이가 OK로 되기까지, 상기 소거 전 기입 또는 상기 소거를 반복해 실행한다.
또한, 소거 동작시에 상기 내부 어드레스중 블럭 어드레스가 상기 복수의 균등 블럭중 비선택 블럭을 지정하고 있을 때는, 상기 비선택 블럭에 대해서는 소거 동작을 행하지 않는다.
도 1은 종래의 불휘발성 메모리의 구성을 도시하는 도면.
도 2는 도 1의 블럭 선택용 레지스터를 도시하는 도면.
도 3은 도 1의 메모리 셀 어레이의 레이아웃을 도시하는 도면.
도 4는 자동 소거 동작의 시퀀스를 도시하는 도면.
도 5는 본원의 제1 발명의 불휘발성 메모리의 구성을 도시하는 도면.
도 6A는 도 5의 메모리 셀 어레이의 레이아웃을 도시하는 도면.
도 6B는 도 6A의 블럭 내의 구성을 도시하는 도면.
도 7은 메모리 셀 어레이의 일부를 도시하는 도면.
도 8은 도 5의 어드레스 생성 회로의 구성을 도시하는 도면.
도 9는 도 5의 어드레스 생성 회로의 구성을 도시하는 도면.
도 10은 도 8 및 도 9의 카운터를 도시하는 도면.
도 11은 도 8 및 도 9의 스위치를 도시하는 도면.
도 12는 본원의 제2 발명의 불휘발성 메모리의 구성을 도시하는 도면.
도 13은 도 12의 블럭 선택용 레지스터를 도시하는 도면.
도 14는 본원의 제2 발명의 원리를 도시하는 도면.
<도면의 주요 부분에 대한 부호의 설명>
11 : 메모리 셀 어레이
12 : 어드레스 레지스터
14 : 로우 디코더
15 : 컬럼 디코더
16A : 어드레스 생성 회로
17 : 입출력 버퍼
18 : 데이타 입력 레지스터
19 : 커맨드 레지스터
20 : 컬럼 선택 회로
21 : 제어 회로
22 : 전압 발생 회로
23 : 베리파이 회로
24 : 최종 어드레스 검지 회로
25 : 타이머
26 : 블럭 선택용 레지스터
이하, 도면을 참조하면서 본 발명의 불휘발성 메모리에 대해 상세히 설명한다.
도 5는, 본원의 제1 발명인 플래쉬 EEPROM의 주요부를 도시하는 것이다. 도 6A는, 도 5의 메모리 셀 어레이, 로우 디코더, 컬럼 디코더, 컬럼 선택 회로의 레이아웃의 일례를 도시하는 것이다. 도 6B는 균등 블럭 및 변칙 블럭 내의 구성을 상세히 도시하는 것이다. 또한, 도 7은 메모리 셀 어레이의 일부를 도시하는 것이다.
메모리 셀 어레이(11)는 11개의 블럭 BLK0 내지 BLK10으로 구성되고, 각 블럭 BLK0 내지 BLK10은, 예를 들면 NOR형의 메모리 셀 Q, …로 구성되어 있다. NOR형의 메모리 셀 Q, …의 컨트롤 게이트는 워드선 WL에 접속되고, 소스는 소스선 SL에 접속되며, 드레인은 비트선 BL에 접속되어 있다.
7개의 블럭(균등 블럭) BLK0 내지 BLK6은, 전부 동일한 기억 용량(비트수)을 갖고, 그 기억 용량은, 예를 들면 512킬로비트로 설정되어 있다. 또한, 4개의 블럭(변칙 블럭) BLK7 내지 BLKl0의 기억 용량은 블럭 BLK0 내지 BLK6의 기억 용량과 다르다. 즉, 블럭 BLK7의 기억 용량은 256 킬로비트, 블럭 BLK8의 기억 용량은 64킬로비트, 블럭 BLK9의 기억 용량은 64킬로비트, 블럭 BLK10의 기억 용량은 128킬로비트로 설정되어 있다.
구체적으로는, 256킬로비트×16·I/O 타입의 4메가비트 플래쉬 EEPROM을 예로 들면, 블럭(균등 블럭) BLK0 내지 BLK6의 I/O 수(동시에 입출력할 수 있는 데이타수)는 16이고, 하나의 I/O에는 32개의 비트선 BL이 접속되어 있다. 즉, 하나의 I/O에 접속되는 한개의 비트선 BL은, 5비트의 컬럼 어드레스 ADD14 내지 ADD10에 의해 선택할 수 있다. 또한, 블럭(균등 블럭) BLK0 내지 BLK6의 워드선 WL의 수는 1024개이다. 따라서, 하나의 워드선 WL은, 10비트의 로우 어드레스 ADD9 내지ADD0에 의해 선택할 수 있다.
또한, 블럭(변칙 블럭) BLK7의 I/O 수는 16이고, 하나의 I/O에는 16개의 비트선 BL이 접속되어 있다. 즉, 하나의 I/O에 접속되는 하나의 비트선 BL은, 4비트의 컬럼 어드레스 ADD13 내지 ADD10에 의해 선택할 수 있다. 또한, 블럭 BLK7의 워드선 WL의 수는 1024개이다. 따라서, 한개의 워드선 WL은 10비트의 로우 어드레스 ADD9 내지 ADD0에 의해 선택할 수 있다.
또한, 블럭(변칙 블럭) BLK8, BLK9의 I/O 수는 16이고, 하나의 I/O에는 4개의 비트선 BL이 접속되어 있다. 즉, 하나의 I/O에 접속되는 한개의 비트선 BL은, 2비트의 컬럼 어드레스 ADD11, ADD10에 의해 선택할 수 있다. 또한, 블럭 BLK8, BLK9의 워드선 WL의 수는 1024개이다. 따라서, 한개의 워드선 WL은 10비트의 로우 어드레스 ADD9 내지 ADD0에 의해 선택할 수 있다.
또한, 블럭(변칙 블럭) BLK10의 I/O 수는 16이고, 하나의 I/O에는 8개의 비트선 BL이 접속되어 있다. 즉, 하나의 I/O에 접속되는 한개의 비트선 BL은, 3비트의 컬럼 어드레스 ADD12 내지 ADD10에 의해 선택할 수 있다. 또한, 블럭 BLK10의 워드선 WL의 수는 1024개이다. 따라서, 한개의 워드선 WL은 10비트의 로우 어드레스 ADD9 내지 ADD0에 의해 선택할 수 있다.
또, 4개의 블럭(변칙 블럭) BLK01 내지 BLK6의 기억 용량의 합계치는, 블럭(균등 블럭) BLK0 내지 BLK6중 하나의 기억 용량과 동일하게 되어 있다.
외부 어드레스 A0, A1 내지 A17은 직접, 또는 어드레스 레지스터(12)를 경유하여 멀티플렉서(13)로 입력된다. 어드레스 생성 회로(16A)는, 내부 어드레스를 생성한다. 멀티플렉서(13)는, 외부 어드레스 및 내부 어드레스중 어느 한쪽을 로우 디코더(14) 및 컬럼 디코더(15)로 부여한다.
입력 데이타는, 입출력 버퍼(17)를 경유하여 데이타 입력 레지스터(18) 및 커맨드 레지스터(19)로 부여된다. 데이타 입력 레지스터(18)의 데이타는, 컬럼 선택 회로(20)를 경유하여 메모리 셀로 공급된다.
커맨드 레지스터(19)는, 어드레스 및 데이타로 이루어지는 커맨드를 인식하고, 그 커맨드에 따라 어드레스 레지스터(12), 멀티플렉서(13) 및 데이타 입력 레지스터(18)로 제어 신호를 출력한다.
커맨드 레지스터(19)는, 소거 커맨드를 확인하면 래치 신호 LATCH를 블럭 선택용 레지스터(26)로 출력한다. 블럭 선택용 레지스터(26)는, 래치 신호 LATCH를 받으면 메모리 셀 어레이(11)의 전 블럭에 대해 블럭마다 선택(소거)의 유무를 나타내는 신호를 래치한다.
또한, 블럭 선택용 레지스터(26)는, 어드레스 생성 회로(16A)의 내부 어드레스(블럭을 지정하는 블럭 어드레스)에 의해 지정되는 블럭이, 선택 블럭(소거를 실행하는 블럭)인지의 여부를 확인하고, 또한 선택 블럭일 경우에는 제어 신호 GO를 "1"로 설정하여 제어 회로(21)에서 소거를 실행하는 취지를 전하고, 비선택 블럭일 경우에는, 제어 신호 GO를 "0"으로 설정하여 제어 회로(21)에서 소거를 실행하지 않는 취지를 전한다.
전압 발생 회로(22)는, 동작 모드에 대응한 각종 전압을 생성한다. 전압 발생 회로(22)에 의해 생성된 전압은 각 동작 모드에서, 메모리 셀의 제어 게이트 및 비트선으로 부여된다.
베리파이 회로(23)는, 선택된 메모리 셀에 대한 데이타의 기입 또는 소거가 확실하게 행하여졌는지의 여부를 판정하고, 그 결과를 나타내는 제어 신호 VERIOK를 제어 회로(21)로 출력한다.
예를 들면, 제어 신호 VERIOK가 "1"로 되면 베리파이 OK라고 판단하여 데이타의 기입 또는 소거를 종료하고, 제어 신호 VER1OK가 "0"일 때에는 베리파이 NG라고 판단하여 데이타의 기입 또는 소거를 계속하여 행한다.
최종 어드레스 검지 회로(24)는, 메모리 셀 어레이(11)의 각 블럭의 최종 어드레스의 검지 유무를 나타내는 검지 신호 AEND를 출력함과 동시에, 메모리 셀 어레이(11)의 최종 블럭의 검지 유무를 나타내는 검지 신호 BEND를 출력한다.
타이머(25)는, 선택된 메모리 셀에 대한 데이타의 기입 또는 소거가 몇회 실행되었는지를 카운트한다. 타이머(25)는, 선택된 메모리 셀에 대한 데이타의 기입 또는 소거가 소정 횟수에 이르었을 때에, 타임 아웃 신호 TIME OUT을 제어 회로(21)로 출력한다.
도 8은, 도 5의 어드레스 생성 회로(16A)의 구성 요소를 도시하는 것이다. 또한, 도 9는 도 5의 어드레스 생성 회로(16A)를 상세히 도시하는 회로도이다.
어드레스 생성 회로는, 어드레스 카운터부(41)와, 논리부(42) 및 스위치부(43)로 구성된다.
어드레스 카운터부(41)는, 블럭 어드레스 카운터(27), 컬럼 어드레스 카운터(28) 및 로우 어드레스 카운터(29)로 구성되어 있다. 블럭 어드레스 카운터(27)는, 직렬 접속된 4개의 어드레스 카운터 회로(A17 내지 A15 카운터, 부트 블럭 카운터)로 구성된다. 블럭 어드레스 카운터(27)는, 블럭을 선택하기 위한 블럭 어드레스 신호의 근원으로 되는 출력 신호 ACBB, AC17 내지 AC15를 출력한다. 컬럼 어드레스 카운터(28)는, 직렬 접속된 5개의 어드레스 카운터 회로(A14 내지 A10 카운터)로 구성된다. 컬럼 어드레스 카운터(28)는 컬럼 어드레스 신호 AC14 내지 AC10을 출력한다. 로우 어드레스 카운터(29)는, 직렬 접속된 10개의 어드레스 카운터 회로(A9 내지 A0 카운터)로 구성된다. 로우 어드레스 카운터(29)는, 로우 어드레스 신호 ADD9 내지 ADD0을 출력한다.
블럭 어드레스 카운터(27)의 출력 신호 ACBB, AC17 내지AC15는, 블럭 어드레스 인크리먼트 신호에 따라 순차 인크리먼트된다. 컬럼 어드레스 카운터(28)의 출력 신호 AC14 내지 AC10은, 어드레스 인크리멘드 신호에 따라 순차 인크리먼트된다. 로우 어드레스 카운터(29)의 출력 신호(AC9 내지 AC0)는, 로우 어드레스 인크리먼트 신호에 따라 순차 인크리먼트된다. 또한, 어드레스 카운터부(41)의 각 카운터에는 리셋 신호 RST가 입력된다.
논리부(42)에는, 어드레스 카운터(27)의 출력 신호(ACBB, AC17 내지 AC15)가 입력된다. 논리부(42)는, 출력 신호 ACBB, AC17 내지 AC15에 기초하여, 블럭 어드레스 신호 AL17 내지 AL15 (ADD17 내지 ADD15), AL14 내지 AL12를 생성한다. 블럭 어드레스 신호 AL17 내지 AL15 (ADD17 내지 ADD15)는, 그대로 블럭 어드레스로서 이용된다. 블럭 어드레스 신호(AL14 내지 AL12)는, 스위치 회로(43)의 스위치(30)로 입력되고, 블럭 어드레스로서 이용되거나 또는 이용되지 않거나 한다.
스위치 회로(43)의 각 스위치(30)는, 어드레스 카운터(28)의 출력 신호(컬럼 어드레스 신호)AC14 내지 AC12 및 블럭 어드레스 신호 AL14 내지 AL12중 어느 한쪽을 선택하여 출력한다. 즉, 스위치 회로(43)로부터 출력되는 어드레스 신호 ADD14 내지 ADD12는 컬럼 어드레스 신호로서 이용되는 경우와 블럭 어드레스 신호로서 이용되는 경우가 있다.
도 10은, 도 9의 어드레스 카운터(27 내지 29)의 구성을 도시하는 것이다.
본예에서는, 어드레스 카운터부의 Ai 어드레스 카운터를 나타내고 있다(i는, 17 내지 0중 어느 하나). NAND 회로(51)에는, 클럭 신호 CLK 및 Ai 어드레스 카운터 직전의 Ai-1 어드레스 카운터의 출력 신호 AC (i-1) CA (Ai 어드레스 카운터가 최초일 경우(i=0일 때)는 전원 전위 VDD)가 입력된다. NAND 회로(51)의 출력 신호는, 트랜지스터 P2, N3, N5, P8의 게이트로 입력됨과 동시에 인버터 회로(52)로 입력된다. 인버터 회로(52)의 출력 신호는, 트랜지스터 N1, P4, P6, N7의 게이트로 입력된다.
트랜지스터 P1, P2, N1, N2는 전원 단자와 접지점 사이에 직렬 접속되고, 마찬가지로 트랜지스터 P3, P4, N3, N4도, 전원 단자와 접지점 사이에 직렬 접속되어 있다. 리셋 신호 RST, 트랜지스터 P2, N1의 드레인으로부터 얻어지는 출력 신호 및 트랜지스터 P4, N3의 드레인으로부터 얻어지는 출력 신호는, NOR 회로(53)로 입력된다. NOR 회로(53)의 출력 신호는, 트랜지스터 P3, N4, P5, N6의 게이트로 입력된다.
트랜지스터 P5, P6, N5, N6은 전원 단자와 접지점 사이에 직렬 접속되고, 마찬가지로 트랜지스터 P7, P8, N7, N8도 전원 단자와 접지점 사이에 직렬 접속되어 있다. 리셋 신호 RST, 트랜지스터 P6, N5의 드레인으로부터 얻어지는 출력 신호 및 트랜지스터 P8, N7의 드레인으로부터 얻어지는 출력 신호는, NOR 회로(54)로 입력된다. NOR 회로(54)의 출력 신호는, 트랜지스터 P7, N8의 게이트로 입력됨과 동시에 인버터 회로(57)로 입력된다.
인버터 회로(57)의 출력 신호는, 트랜지스터 P1, N2의 게이트로 입력됨과 동시에 인버터 회로(58)로 입력된다. Ai 어드레스 카운터의 출력 신호 ACi는, 인버터 회로(58)로부터 얻어진다. NAND 회로(55)에는, 인버터 회로(58)의 출력 신호 및 Ai 어드레스 카운터 직전의 Ai-1 어드레스 카운터의 출력 신호 AC(i-1)CA(Ai 어드레스 카운터가 최초일 경우(i=0일 때)는 전원 전위 VDD)가 입력된다. NAND 회로(55)의 출력 신호는 인버터 회로(56)로 입력된다. 인버터 회로(56)의 출력 신호 ACiCA는, Ai 어드레스 카운터 직후의 Ai+1 어드레스 카운터로 부여된다.
도 11은, 도 9의 스위치(30)의 구성을 도시하는 것이다.
본 예에서는 스위치부의 Ai 스위치를 나타내고 있다(i는, 14 내지 12중 어느 하나). 트랜스퍼 게이트 T1, T2에는, 제어 신호 Bi가 입력된다. 제어 신호 Bi는 논리부에서 생성되는 것이다. 트랜스퍼 게이트 T1이 온일 경우, Ai 어드레스 카운터의 출력 신호 ACi는 트랜스퍼 게이트 T1 및 인버터 회로(60, 61)를 경유하여 컬럼 어드레스 신호 ADDi로 된다. 트랜스퍼 게이트 T2가 온일 경우, 논리부에서 생성된 신호 ALi는 트랜스퍼 게이트 T2 및 인버터 회로(60, 61)를 경유하여 블럭 어드레스 신호 ADDi로 된다.
다음에, 도 8 내지 도 11에 도시한 어드레스 생성 회로의 동작에 대해 표 2 및 표 3을 참조하면서 설명한다.
Figure kpo00001
Figure kpo00002
우선, 블럭 BLK0 내지 BLK6이 지정될 경우, 즉 출력 신호 ACBB, AC17, AC16, AC15가, "0, 0, 0, 0"으로부터 "0, 1, 1, 0"일 경우의 동작에 대해 서술한다.
출력 신호 AC17, AC16, AC15가, "0, 0, 0, 0"일 경우, 도 5 및 도 6의 4 메가플래쉬 EEPROM의 블럭 BLK0이 지정된다.
블럭 BLK0이 소거를 실행하지 않은 비선택 블럭일 때는, 도 5의 제어 신호 GO가 "0"으로 되고, 소거 동작은 행하여지지 않는다. 따라서, 블럭 어드레스 인크리먼트 신호에 따라 블럭 어드레스를 하나 진행시킨다(출력 신호 ACBB, AC17, AC16, AC15를 "0, 0, 0, 1"로 함).
블럭 BLK0이 소거를 실행하는 선택 블럭일 때에는, 도 5의 제어 신호 GO가 "1"로 되어 소거 동작이 행하여진다. 즉, 로우 어드레스 인크리먼트 신호에 따라 로우 어드레스를 순차 인크리먼트해감과 동시에, 컬럼 어드레스 인크리먼트 신호에 따라 컬럼 어드레스를 순차 인크리먼트해간다. 이 때, 스위치부(43)의 스위치(30)로 입력되는 선택 신호 B14, B13, B12는 "1, 1, 1"이다. 따라서, 스위치(30)는, 컬럼 어드레스 카운터(28)의 출력 신호 AC14, AC13, AC12를 선택하고, 이것을 컬럼 어드레스 신호 ADD14, ADD13, ADD12로서 출력한다.
블럭(균등 블럭) BLK0의 기억 용량은 512킬로비트이고, 워드선 WL의 갯수는 1024개이며, 하나의 I/O에 접속되는 비트선 BL의 갯수는 32개이다. 따라서, 10비트의 어드레스 신호 ADD9 내지 ADD0이 로우 어드레스 신호로서 이용되고, 5비트의 어드레스 신호 ADD14 내지 ADD10이 컬럼 어드레스 신호로서 이용된다.
로우 어드레스 신호 ADD9 내지 ADD0 및 컬럼 어드레스 신호 ADD14 내지 ADD10이 전부 "1"로 되면, 블럭 BLK0의 전 메모리 셀에 대해 소거 동작을 실행하게 된다. 이 후, 리셋 신호 RST에 의해 컬럼 어드레스 카운터(28) 및 로우 어드레스 카운터(29)의 값이 리셋(전부 "0") 된다.
출력 신호 ACBB, AC17, AC16, AC15가 "0, 0, 0, 1"로부터 "0, 1, 1, 0"일 경우(블럭 BLK1 내지 BLK6이 지정되는 경우)는, 상술한 동작과 동일한 동작이 반복해 실행된다.
다음에, 출력 신호 ACBB, AC17, AC16, AC15가 "0, 1, 1, 1"일 경우, 도 5 및 도 6의 4메가 플래시 EEPROM의 블럭 BLK7이 지정된다.
블럭 BLK7이 소거를 실행하지 않은 비선택 블럭일 때는, 도 5의 제어 신호 GO가 "0"으로 되고, 소거 동작은 행하여지지 않는다. 따라서, 블럭 어드레스 인크리먼트 신호에 따라 블럭 어드레스를 하나 진행시킨다(출력 신호 ACBB, AC17, AC16, AC15를 "1, 0, 0, 0"으로 함).
블럭 BLK7이 소거를 실행하는 선택 블럭일 때는, 도 5의 제어 신호 GO가 "1"로 되고, 소거 동작이 행하여진다. 즉, 로우 어드레스 인크리먼트 신호에 따라 로우 어드레스를 순차 인크리먼트해감과 동시에, 컬럼 어드레스 인크리먼트 신호에 따라 컬럼 어드레스를 순차 인크리먼트해간다. 이 때, NAND 회로(75)의 입력 신호는, 전부 "1"레벨이기 때문에, 노드 a의 전위는, "1" 레벨로 된다. 따라서, A14 스위치(30)의 선택 신호 B14는 "0"으로 되고, A12 스위치(30)는, 논리부(42)의 출력 신호 AL14를 선택하며, 이것을 블럭 어드레스 신호 ADD14로서 출력한다. 또한, A13, A12 스위치(30)의 선택 신호 B13, B12는 "1"로 되고, A13, A12 스위치(30)는, A13, A12 어드레스 카운터(28)의 출력 신호 AC13, AC12를 선택하며, 이것을 컬럼 어드레스 신호 ADD13, ADD12로서 출력한다.
블럭(변칙 블럭) BLK7의 기억 용량은, 256킬로비트이고, 워드선 WL의 갯수는 1024개이며, 하나의 I/O에 접속되는 비트선 BL의 갯수는 16개이다. 따라서, 10비트의 어드레스 신호 ADD9 내지 ADD0이 로우 어드레스 신호로서 이용되고, 4비트의 어드레스 ADD13 내지 ADD10이 컬럼 어드레스 신호로서 이용된다. 4비트의 어드레스 신호 ADD17 내지 ADD14는 블럭 어드레스 신호로서 이용된다.
로우 어드레스 신호 ADD9 내지 ADD0 및 컬럼 어드레스 신호 ADD13 내지 ADD10이 전부 "1"로 되면, 블럭 BLK7의 전 메모리 셀에 대해 소거 동작을 실행하게 된다. 이 후, 리셋 신호 RST에 의해 컬럼 어드레스 카운터(28) 및 로우 어드레스 카운터(29)의 값이 리셋(전부 "0")으로 된다.
다음에, 출력 신호 ACBB, AC17, AC16, AC15가, "1, 0, 0, 0"의 경우, 도 5 및 도 6의 4메가 플래시 EEPROM의 블럭 BLK8이 지정된다.
블럭 BLK8이 소거를 실행하지 않은 비선택 블럭일 때에는, 도 5의 제어 신호 GO가 "0"으로 되고, 소거 동작은 행하여지지 않는다. 따라서, 블럭 어드레스 인크리먼트 신호에 따라 블럭 어드레스를 하나 진행시킨다(출력 신호 ACBB, AC17, AC16, AC15를 "1, 0, 0, 1"로 함).
블럭 BLK8이 소거를 실행하는 선택 블럭일 때는, 도 5의 제어 신호 GO가 "1"로 되고, 소거 동작이 행하여진다. 즉, 로우 어드레스 인크리먼트 신호에 따라 로우 어드레스를 순차 인크리먼트해감과 동시에, 컬럼 어드레스 인크리먼트 신호에 따라 컬럼 어드레스를 순차 인크리먼트해간다. 이 때, NAND 회로(75)의 입력 신호는, 전부 "1" 레벨이기 때문에, 노드 a 전위는 "1" 레벨로 된다. 또한, NAND 회로(74)의 입력 신호도, 전부 "1" 레벨, 노드 b의 전위는 "0"레벨로 된다. 따라서, A14, A13, A12 스위치(30)의 선택 신호 B14, B13, B12는 전부 "0"으로 되고, A14, A13, A12 스위치(30)는, 논리부(42)의 출력 신호 AL14, AL13, AL12를 선택하며, 이것을 블럭 어드레스 신호 ADD14, ALD13, ADD12로서 출력한다.
블럭(변칙 블럭) BLK8의 기억 용량은 64킬로비트이고, 워드선 WL의 갯수는 1024개이며, 하나의 I/O에 접속되는 비트선 BL의 갯수는 4개이다. 따라서, 10비트의 어드레스 신호 ADD9 내지 ADD0가 로우 어드레스 신호로서 이용되고, 2비트의 어드레스 ADD11, ADD10 컬럼 어드레스 신호로서 이용된다. 6비트의 어드레스 신호ADD17 내지 ADD12는 블럭 어드레스 신호로서 이용된다.
로우 어드레스 신호ADD9 내지 ADD0 및 컬럼 어드레스 신호 ADD11, ADD10이 전부 "1"로 되면, 블럭 BLK8의 전 메모리 셀에 대해 소거 동작을 실행하게 된다. 이 후, 리셋 신호 RST에 의해 컬럼 어드레스 카운터(28) 및 로우 어드레스 카운터(29)의 값이 리셋(전부 "0")된다.
출력 신호 ACBB, AC17, AC16, AC15가 "1, 0, 0, 1"일 경우(블럭 BLK9가 지정되는 경우)에는, 출력 신호 ACBB, AC17, AC16, AC15가 "1, 0, 0, 0"일 경우와 동일한 동작으로 된다.
다음에, 출력 신호 ACBB, AC17, AC16, AC15가 "1, 0, 1, 0"일 경우, 도 5 및 도 6의 4메가 플래시 EEPROM의 블럭 BLK10이 지정된다.
블럭 BLK10이 소거를 실행하지 않은 비선택 블럭일 때는, 도 5의 제어 신호GO가 "0"으로 되어 소거 동작은 행하여지지 않는다. 이 때, 블럭 BLK10은 최종 블럭이기 때문에, 블럭 소거 동작은 종료한다.
블럭 BLK10이 소거를 실행하는 선택 블럭일 때는, 도 5의 제어 신호 GO가 "1"로 되어 소거 동작이 행하여진다. 즉, 로우 어드레스 인크리먼트 신호에 따라 로우 어드레스를 순차 인크리먼트해감과 동시에, 컬럼 어드레스 인크리먼트 신호에 따라 컬럼 어드레스를 순차 인크리먼트해 간다. 이 때, NAND 회로(75)의 입력 신호는, 전부 "1" 레벨이기 때문에, 노드 a의 전위는 "1" 레벨로 된다. 또한, NAND 회로(74)의 출력 신호는 "1" 레벨, 노드 b의 전위는 "0" 레벨로 된다. 따라서 A14, A13 스위치(30)의 선택 신호 B14, B13은 "0"으로 되고, A14, A13 스위치(30)는 논리부(42)의 출력 신호AL14, AL13을 선택하여 이것을 블럭 어드레스 신호 ADD14, ADD13으로서 출력한다. 또한, A12 스위치(30)의 선택 신호 B12는 "1"로 되고, A12 스위치(30)는 A12 어드레스 카운터의 출력 신호 AC12를 선택하여 이것을 컬럼 어드레스 신호 ADD12로서 출력한다.
블럭(변칙 블럭) BLK10의 기억 용량은 128킬로비트이고, 워드선 WL의 갯수는 1024개이며, 하나의 I/O에 접속되는 비트선 BL의 갯수는 8개이다. 따라서, 10비트의 어드레스 신호 ADD9 내지 ADD0가 로우 어드레스 신호로서 이용되고, 3비트의 어드레스 ADD12 내지 ADD10이 컬럼 어드레스 신호로서 이용된다. 5비트의 어드레스 신호 ADD17 내지 ADD13은, 블럭 어드레스 신호로서 이용된다.
로우 어드레스 신호 ADD9 내지 ADD0 및 컬럼 어드레스 신호 ADD12 내지 ADD10이 전부 "1"로 되면, 블럭 BLK10의 전 메모리 셀에 대해 소거 동작을 실행하게 된다. 이 후, 리셋 신호 RST에 의해 컬럼 어드레스 카운터(28) 및 로우 어드레스 카운터(29)의 값이 리셋(전부 "0")된다.
본원의 제1 발명의 불휘발성 메모리에 따르면, 다음과 같은 효과를 발휘한다. 균등 블럭과 불균등 블럭으로 이루어지는 메모리 셀 어레이를 갖는 불휘발성 반도체 기억 장치에 있어서, 각각의 블럭, 특히 불균등 블럭 전용의 어드레스 카운터를 이용하지 않고, 블럭 어드레스 카운터에 적어도 하나의 동일한 부트 블럭 카운터를 설치하며, 블럭 어드레스 카운터의 출력 신호의 논리를 취함으로써 전 블럭의 블럭 어드레스를 설정한다. 또한, 이 논리 신호에 따라, 블럭 어드레스 이외의 변칙인 컬럼 어드레스 내지 로우 어드레스의 설정을 블럭 사이즈에 맞춰 설정할 수 있다. 이와 같이, 어드레스 카운터를 불균등 블럭만큼 설치할 필요는 없고, 균등 블럭의 블럭 어드레스 카운터에 하나 또는 수개의 부트 블럭 카운터를 설치하며, 균등 블럭 어드레스 카운터와 상기 부트 블럭 카운터와의 출력 신호의 논리에 따라 모든 블럭의 블럭 어드레스를 설정할 수 있고, 불균등 블럭의 구성이 복잡해져도 회로 규모를 크게 하지 않고 블럭 어드레스를 설정할 수 있다. 동시에, 블럭 사이즈에 따라 변칙으로 되는 컬럼 어드레스 내지 로우 어드레스의 설정도 할 수 있다.
도 12는 본원의 제2 발명의 부트 블럭 방식의 플래쉬 EEPROM의 주요부를 도시하는 것이다. 도 13은 도 12의 블럭 선택용 레지스터 구성의 일례를 도시하는 것이다.
메모리 셀 어레이(11)는, 복수의 소거 블럭으로 구성되고, 각 소거 블럭은, 예를 들면 NOR형의 메모리 셀로 구성되어 있다. 예를 들면, 메모리 셀 어레이(11)는 11개의 소거 블럭으로 구성되고, 처음 7개의 소거 블럭 BLK0 내지 BLK6은 전부 동일한 비트수(예를 들면 512킬로비트)를 갖고 있다. 또한, 최후의 4개의 소거 블럭 BLK7 내지 10은, 각각 256킬로비트, 64킬로비트, 64킬로비트, 128킬로비트를 갖고, 마지막 4개의 소거 블럭 합계의 비트수가 처음 7개의 소거 블럭 BLK0 내지 6 각각의 비트수와 동일해져 있다.
외부 어드레스 A0, A1 내지 A17은, 직접 또는 어드레스 레지스터(12)를 경유하여 멀티플렉서(13)로 입력된다. 어드레스 카운터(16)는 내부 어드레스를 생성한다. 멀티플렉서(13)는, 외부 어드레스 및 내부 어드레스중 어느 한쪽을 로우 디코더(14) 및 컬럼 디코더(15)로 부여한다.
입력 데이타는, 입출력 버퍼(17)를 경유하여 데이타 입력 레지스터(18) 및 커맨드 레지스터(19)로 부여된다. 데이타 입력 레지스터(18)의 데이타는, 컬럼 선택 회로(20)를 경유하여 메모리 셀로 공급된다.
커맨드 레지스터(19)는, 어드레스 및 데이타로 이루어지는 커맨드를 인식하고, 그 커맨드에 따라 어드레스 레지스터(12), 멀티 플렉서(13) 및 데이타 입력 레지스터(18)로 제어 신호를 출력한다.
커맨드 레지스터(19)는, 소거 커맨드를 확인하면, 래치 신호 LATCH를 블럭 선택용 레지스터(32)로 출력한다. 블럭 선택용 레지스터(32)는, 래치 신호 LATCH를 받으면, 레지스터0 내지 10에 블럭의 선택(소거) 유무를 나타내는 블럭 선택 신호 SEL0 내지 SEL10을 각각 래치한다.
즉, 레지스터 n(n은, 0 내지 10중 어느 하나)에는, 소거 블럭 BLKn의 선택 유무를 나타내는 블럭 선택 신호(선택 블럭일 경우 "1", 비선택 블럭일 경우 "0") SELn이 래치된다.
블럭 선택용 레지스터(32)는, 레지스터(0 내지 10)에 래치된 블럭 선택 신호SELn 및 블럭 어드레스를 디코드한 데이타 B0 내지 B10에 기초하여, 블럭이 선택되어 있는지의 여부를 나타내는 제어 신호 GO 및 메모리 셀에 대해 소거(소거 전 기입, 소거)가 완료하고 있는지의 여부를 나타내는 제어 신호 VFYGO를 출력한다.
전압 발생 회로(22)는, 동작 모드에 대응한 각종 전압을 생성한다. 전압 발생 회로(22)에 의해 생성된 전압은, 각 동작 모드에서 메모리 셀의 제어 게이트 및 비트선으로 부여된다.
베리파이 회로(23)는, 선택된 메모리 셀에 대한 데이타의 기입 또는 소거가 확실하게 행하여졌는지의 여부를 판정하고, 그 결과를 나타내는 제어 신호 VERIOK를 출력한다.
예를 들면, 제어 신호 VERIOK가 "1"로 되면 베리파이 OK라고 판단하여 데이타의 기입 또는 소거를 종료하고, 제어 신호 VERIOK가 "0"일 때는 베리파이 NG라고 판단하여 데이타의 기입 또는 소거를 계속하여 행한다.
제어 신호 VERIOK는, 인버터(33)를 경유하여 NAND 회로(34)로 입력된다. 또한, 제어 신호 VFYGO도, NAND 회로(34)로 입력된다. NAND 회로(34)는, 제어 신호 VERIOK를 출력한다. 제어 회로(21)는, 제어 신호 VERIOK에 기초하여 각 회로의 동작을 제어한다.
최종 어드레스 검지 회로(24)는, 메모리 셀 어레이(11)의 각 블럭의 최종 어드레스 검지의 유무를 도시하는 검지 신호 AEND를 출력함과 동시에, 메모리 셀 어레이(11)의 최종 블럭의 검지 유무를 나타내는 검지 신호 BEND를 출력한다.
타이머(25)는, 선택된 메모리 셀에 대한 데이타의 기입 또는 소거가 몇회 실해되었는지를 카운트한다. 타이머(25)는, 선택된 메모리 셀에 대한 데이타의 기입 또는 소거가 소정 횟수에 이르렀을 때에, 타임 아웃 신호 TIME OUT을 제어 회로(21)로 출력한다.
상기 부트 블럭 방식의 플래쉬 EEPROM의 특징은, 메모리 셀 어레이가 균등 블럭과 변칙 블럭으로 나누어지고, 또한 모든 변칙 블럭 합계의 비트수는, 각각의 균등 블럭의 비트수와 동일하게 되어 있다는 점에 있다. 또한, 변칙 블럭의 각각을 하나로 통합, 하나의 균등 블럭으로서 취급하도록 했기 때문에, 균등 블럭과 변칙 블럭은 동일한 어드레스 카운터를 사용할 수 있는 점에도 특징이 있다.
또한, 어드레스 카운터를 균등 블럭과 변칙 블럭으로 공용하고 있기 때문에, 복수의 변칙 블럭중 적어도 하나가 선택 블럭일 경우, 복수의 변칙 블럭 내에 비선택 블럭이 존재해도, 모든 변칙 블럭의 메모리 셀이 선택되는 상태에 있다.
그래서, 변칙 블럭 내에서의 선택 블럭과 비선택 블럭의 구별은, 베리파이가 OK인지 NG인지를 나타내는 제어 신호 VERIOK에 기초하여 행한다. 본 발명에서는, 변칙 블럭에서의 소거 동작에 대해, 이 제어 신호 VERIOK를 블럭 어드레스에 기초하여 강제적으로 "1" (베리파이 OK)로 고정할 수 있는 기능을 설치하고 있다.
다음에, 표 4에 도시하는 제어 신호 VFYGO, GO의 논리를 참조하면서, 상기 플래쉬 EEPROM에서의 자동 소거 동작에 대해 설명한다. 또, 자동 소거 시퀀스는 도 4에 도시하는 것을 그대로 적용할 수 있다.
Figure kpo00003
우선, 어드레스 및 데이타로 이루어지는 커맨드가 입력되고, 커맨드 레지스터(19)에서 커맨드의 해석이 행하여진다. 커맨드 레지스터(19)가 소거 커맨드를 검지하고, 또한 소거 블럭의 각각에 대해 소거를 실행할지의 여부를 확인하면, 오실레이터가 인에이블 상태로 되어 제어 회로(21)가 동작하기 시작한다.
또한, 커맨드 레지스터(19)는, 어드레스 카운터(16)의 내부 어드레스가 로우 디코더(14) 및 컬럼 디코더(15)로 공급되도록 멀티플렉서(13)로 제어 신호를 출력한다.
우선, 어드레스 레지스터(12), 타이머(25)가 리셋되어 블럭 어드레스 BLOCK 및 로우·컬럼 어드레스 ADD가 각각 초기치 "0"으로 설정되고, 기입, 소거 횟수 CYCLE도 초기치 "0"으로 설정된다(스텝 ST1).
다음에, 블럭 어드레스에 의해 선택되는 블럭이, 자동 소거 동작을 실행하는 선택 블럭인지의 여부를 판정한다.
선택 블럭일 경우에는, 제어 신호 GO가 "1"이 되고, 제어 회로(21)는, 우선, Pre Program 동작을 개시한다. 비선택 블럭일 경우에는, 제어 신호 GO가 "0"으로 되고, 제어 회로(21)는 다음 블럭에 대해 그 블럭이 선택 블럭인지의 여부를 판정한다 (스텝 ST2).
예를 들면, 표 4에 도시된 바와 같이 블럭 BLK1과 블럭 BLK9가 선택되어 있을 경우에 대해 검토하면, 블럭 어드레스가 블럭 BLK0을 지정할 때는, 도 13의 어드레스 디코더의 출력 B0 내지 B10중, 출력 B0만이 "1"로 된다. 그러나, 블럭 BLK0은 비선택이고, 레지스터0에는 "0"이 래치되기 때문에, 제어 신호 GO는 "0"인 채로 있다.
또한, 블럭 어드레스가 블럭 BLK1을 지정할 때는 도 13의 어드레스디코더의 출력 B0 내지 B10중, 출력 B1만이 "1"로 된다. 또한, 블럭 BLK1은 선택이고, 레지스터(1)에는 "1"이 래치되어 있기 때문에, 제어 신호 GO는 "1"로 된다.
또, 블럭 어드레스가 균등 블럭을 지정하고 있을 때는, 제어 신호 VFYGO와 제어 신호 GO는, 항상 동일한 값을 갖게 된다.
블럭 어드레스가 균등 블럭중 어느 하나를 지정하고 있을 경우, 우선 Pre Program 동작이 이하의 순서로 행하여진다.
우선, 전압 발생 회로(22)에서 프로그램 베리파이 P.V.의 내부 전원이 셋업된다(스텝 ST3). 이 후, 어드레스 ADD에 의해 선택된 메모리 셀(플래쉬 EEPROM이 ×n (n은 1이상의 자연수) 구성일 경우는, n개의 메모리 셀) 데이타가 판독된다(스텝 ST4).
어드레스 ADD에 의해 선택된 메모리 셀(이하, 선택 메모리 셀)의 데이타는, 프로그램 데이타 "0"과 비교된다(스텝 ST5).
즉, 기입 상태로 판별할 수 있는 임계치의 하한으로 되는 전압(예를 들면, 5.5V)을 경계치로 하고, 선택 메모리 셀의 임계치가 경계치보다도 높으면, 선택 메모리 셀의 데이타는 "0"으로 판정하며, 선택 메모리 셀의 임계치가 경계치보다도 낮으면, 선택 메모리 셀의 데이타는 "1"로 판정한다.
그래서, 선택 메모리 셀의 데이타와 프로그램 데이타 "0"이 불일치할 경우, 기입 NG라고 판단하고, 베리파이 회로(23)는 제어 신호 VERIOK="0"을 출력한다.
따라서, 제어 회로(21)는 선택 메모리 셀에 대해 데이타의 기입(플로우팅 게이트에 대한 전자의 주입)을 실행한다. 이 데이타의 기입은, 미리 설정된 횟수 Limit에 이르기까지는, 선택 메모리 셀의 데이타가 프로그램 데이타 "0"과 일치할 때까지 반복해 행하여진다(스텝 ST6 내지 ST8).
또한, 선택 메모리 셀에 대한 기입 횟수 CYCLE이 미리 설정된 횟수 Limit에 이르었을 때는 선택 메모리 셀의 데이타와 프로그램 데이타가 불일치해도 소거 전 기입 동작을 종료한다(스텝 ST6).
이 경우, 기입 불량이 발생한 것을 나타내는 신호 ERROR이 "1"로 설정된다(스텝 ST9).
한편, 선택 메모리 셀의 데이타와 프로그램 데이타 "0"이 일치하면, 선택 메모리 셀의 기입 OK라고 판단하고, 베리파이 회로(23)는 제어 신호 VERIOK를 "1"로 설정한다.
제어 회로(21)는 제어 신호 VERIOK가 "1"로 되면, 어드레스 ADD를 하나 진행시키기 위해, 다음 어드레스의 선택 메모리 셀에 대해 모두 동일한 동작이 행하여진다. 이 때, 타이머(25)의 수치 CYCLE은, 초기치 "0"으로 리셋된다(스텝 ST10 내지 ST12).
또한, 선택 메모리 셀의 데이타와 프로그램 데이타 "0"이 일치할 경우에 있어서, 어드레스 ADD가 그 블럭 내의 최종 어드레스일 때는 Pre Program 동작을 종료한다(스텝 ST10).
Pre Progra 거리가 확실하게 실행되었을 경우, 즉 신호 ERROR이 "0"일 경우에는, 이 후 소거(Erase) 동작이 실행된다.
소거(Erase) 동작은 이하와 같은 순서로 행하여진다.
우선, 어드레스 카운터(16)의 어드레스 ADD가 초기치 "0"로 설정되고, 또 타이머(25)의 수치(소거 횟수에 대응) CYCLE이 초기치 "0"으로 설정된다(스텝 ST13). 또한, 전압 발생 회로(22)에 있어서 소거 베리파이 E.V.의 내부 전원이 셋업된다 (스텝 ST14).
이 후, 어드레스 ADD에 의해 선택된 메모리 셀(플래쉬 EEPROM이 ×n (n은 1이상의 자연수) 구성일 경우는, n 개의 메모리 셀)의 데이타가 판독된다(스텝 ST15).
어드레스 ADD에 의해 선택된 메모리 셀(이하, 선택 메모리 셀)의 데이타는, 기대치 "1"과 비교된다(스텝 ST16).
즉, 소거 상태라고 판별할 수 있는 임계치의 상한으로 되는 전압(예를 들면, 3.0V)을 경계치로 하여 선택 메모리 셀의 임계치가 경계치보다도 높으면, 선택 메모리 셀의 데이타는 "0"으로 판정하고, 선택 메모리 셀의 임계치가 경계치보다도 낮으면, 선택 메모리 셀의 데이타는 "1"로 판정한다.
그래서, 선택 메모리 셀의 데이타와 기대치 "1"이 불일치할 경우, 소거 NG라고 판단하여 베리파이 회로(23)는 제어 신호 VERIOK=0을 출력한다. 따라서, 제어 회로(21)는, 선택 블럭 내의 모든 메모리 셀에 대해 데이타의 소거(플로우팅 게이트 중의 전자를 추출하는 동작)를 실행한다(스텝 ST18).
여기서, 선택 블럭 내의 모든 메모리 셀에 대해 데이타의 소거(일괄 소거)를 실행하고 있지만, 이것은 플래쉬 EEPROM에서 특유의 동작이다. 따라서, 선택 메모리 셀 이외의 이미 소거를 완료하고 있는 메모리 셀에 대해서도 소거 동작이 실행된다.
이 소거 동작은, 미리 설정된 횟수 Limit에 이르기까지는, 선택 메모리 셀의 데이타가 기대치 "1"과 일치할 때까지 반복해 행하여진다(스텝 ST17 내지 ST19).
또한, 선택 메모리 셀에 대한 기입 횟수 CYCLE이 미리 설정된 횟수 Limit에 이르렀을 때는, 선택 메모리 셀의 데이타와 기대치 "1"이 불일치해도 소거 동작을 종료한다. (스텝 ST17).
이 경우, 소거 불량이 발생한 것을 나타내는 신호 ERROR이 "1"로 설정된다 (스텝 ST9).
한편, 선택 메모리 셀의 데이타와 기대치 "1"이 일치하면, 선택 메모리 셀의 소거 OK라고 판단하여 베리파이 회로(23)는 제어 신호 VERIOK를 "1"로 설정한다.
제어 회로(21)는, 제어 신호 VERIOK가 "1"로 되면, 어드레스 ADD를 하나 진행시키기 위해, 다음 어드레스의 선택 메모리 셀에 대해 동일한 동작이 행하여진다. 이 때, 타이머(25)의 수치 CYCLE은, 초기치 "0"으로 리셋되지 않는다. 소거 동작은, 전 메모리 셀에 대해 행하여지기 때문이다(스텝 ST20 내지 ST21).
또한, 선택 메모리 셀의 데이타와 기대치 "1"이 일치할 경우에 있어서, 어드레스 ADD가 그 블럭 내의 최종 어드레스일 때는 소거 동작을 종료한다(스텝 ST20).
다음에, 블럭 어드레스에 의해 선택되는 블럭이, 변칙 블럭 BLK7 내지 BLK10중 어느 한 경우에 대해 검토한다.
변칙 블럭 BLK7 내지 BLK10중 적어도 하나가 선택 블럭일 경우, 변칙 블럭 BLK7 내지 BLK10의 제어 신호 GO는, 전부 "1"로 된다. 예를 들면, 표 4에 도시된 바와 같이 블럭 BLK9가 선택되어 있을 경우, 도 13의 블럭 선택 신호 SEL9가 "1" 로 되기 때문에, 신호 GO7이 "1"이 되고, 제어 신호 GO도 "1"로 된다.
변칙 블럭 BLK7 내지 BLK10의 모두가 비선택 블럭일 경우, 변칙 블럭 BLK7 내지 BLK10의 제어 신호 GO는 전부 "0"으로 된다.
또한, 제어 신호 VFYGO는, 변칙 블럭 내의 선택 블럭 BLK9에 대해서만 "1"로 된다. 제어 신호 VFYGO가 "1"일 경우는, 제어 신호 VERIOK는 베리파이 회로(23)의 출력에 따라 변화한다.
제어 신호 VFYGO는 변칙 블럭 내의 비선택 블럭 BLK7, BLK8, BLK10에 대해 "0"으로 된다. 제어 신호 VFYGO가 "0"일 경우는 제어 신호 VERIOK는 베리파이 회로(23)의 출력에 불구하고 항상 "1"로 고정된다.
변칙 블럭 BLK7 내지 BLK10중 적어도 하나가 선택 블럭일 경우에는 제어 신호 GO가 "1"로 되기 때문에, 제어 회로(21)는 먼저 Pre Program 동작을 개시한다.
변칙 블럭(최종 블럭) BLK7 내지 BLK10의 모두가 비선택 블럭일 경우에는, 제어 신호 GO가 "0"으로 되기 때문에, 제어 회로(21)는 소거 동작을 종료시킨다(스텝 ST2, ST22).
Pre Program 동작은 이하의 순서로 행하여진다.
우선, 전압 발생 회로(22)에 있어서, 프로그램 베리파이 P.V.의 내부 전원이 셋업된다(스텝 ST3). 이 후, 어드레스 ADD에 의해 선택된 메모리 셀(플래쉬 EEPROM이 ×n (n은 1이상의 자연수) 구성일 경우는, n 개의 메모리 셀)의 데이타가 판독된다(스텝 ST4).
어드레스 ADD에 의해 선택된 메모리 셀(이하, 선택 메모리 셀)의 데이타는, 프로그램 데이타 "0"과 비교된다(스텝 ST5).
즉, 기입 상태라고 판별할 수 있는 임계치의 하한으로 되는 전압(예를 들면, 5.5V)을 경계치로 하여 선택 메모리 셀의 임계치가 경계치보다도 높으면, 선택 메모리 셀의 데이타는 "0"이라고 판정하고, 선택 메모리 셀의 임계치가 경계치보다도 낮으면 선택 메모리 셀의 데이타는 "1"로 판정한다.
선택 메모리 셀이 비선택 블럭 BLK7, BLK8, BLK10중 어느 하나에 속해 있을 경우, 제어 신호 VFYGO는 "0"이고, 제어 신호 VERIOK는 "1"로 고정되어 있다.
따라서, 선택 메모리 셀의 데이타와 프로그램 데이타 "0"이 불일치할 경우라도, 제어 회로(21)는 기입 OK라고 판단한다. 즉, 그 선택 메모리 셀에 대해서는, 베리파이만을 실행하고, 기입을 행하지 않는다.
이와 같이, 변칙 블럭 내의 비선택 블럭 BLK7, BLK8, BLK10의 메모리 셀에 대해서는 어드레스 ADD에 의해 선택되어도, 제어 신호 VERIOK가 "1"로 고정되기 때문에 기입이 실행되지 않는다.
선택 메모리 셀이 선택 블럭 BLK9에 속해 있을 경우, 제어 신호 VFYGO는 "1"이고, 제어 신호 VERIOK는 베리파이 회로(23)의 출력에 따라 변화한다.
따라서, 선택 메모리 셀의 데이타와 프로그램 데이타 "0"이 불일치할 경우 기입 NG라고 판단하고, 베리파이 회로(23)는 데이타 "0"을 출력하기 위해 제어 신호 VERIOK는 "0"으로 된다.
따라서, 제어 회로(21)는 선택 메모리 셀에 대해 데이타의 기입(플로우팅 게이트에 대한 전자의 주입)을 실행한다. 이 데이타의 기입은 미리 설정된 횟수 Limit에 이르기까지는 선택 메모리 셀의 데이타가 프로그램 데이타 "0"과 일치할 때까지, 반복해 행하여진다(스텝 ST6 내지 ST8).
또한, 선택 메모리 셀에 대한 기입 횟수 CYCLE이 미리 설정된 횟수 Limit에 이르렀을 때는, 선택 메모리 셀의 데이타와 프로그램 데이타가 불일치해도 소거 전 기입 동작을 종료한다(스텝 ST6).
이 경우, 기입 불량이 발생한 것을 나타내는 신호 ERROR가 "1"로 설정된다(스텝 ST9).
한편, 선택 메모리 셀의 데이타와 프로그램 데이타 "0"이 일치하면, 선택 메모리 셀의 기입 OK라고 판단하여 베리파이 회로(23)는 데이타 "1"을 출력하고, 제어 신호 VERIOK는 "1"로 변화한다.
제어 회로(21)는, 제어 신호 VERIOK가 "1"로 되면, 어드레스 ADD를 하나 진행시키기 때문에, 다음 어드레스의 선택 메모리 셀에 대해 동일한 동작이 행하여진다. 이 때, 타이머(25)의 수치 CYCLE은 초기치 "0"으로 리셋된다(스텝 ST10 내지 ST12).
또한, 선택 메모리 셀의 데이타와 프로그램 데이타 "0"이 일치할 경우에 있어서, 어드레스 ADD가 그 블럭 내의 최종 어드레스일 때는 Pre Program 동작을 종료한다(스텝 ST10).
Pre Program이 실행된 후, 신호 ERROR가 "0"일 경우에는 소거(Erase) 동작이 실행된다.
소거(Erase) 동작은 이하와 같은 순서로 행하여진다.
우선, 어드레스 카운터(16)의 어드레스 ADD가 초기치 "0"으로 설정되고, 또한 타이머(25)의 수치(소거 횟수에 대응) CYCLE이 초기치 "0"으로 설정된다(스텝 ST13). 또한, 전압 발생 회로(22)에 있어서, 소거 베리파이 E.V.의 내부 전원이 셋업된다(스텝 ST14).
이 후, 어드레스 ADD에 의해 선택된 메모리 셀(플래쉬 EEPROM이 ×n (n은 1이상의 자연수) 구성일 경우는, n 개의 메모리 셀)의 데이타가 판독된다(스텝 ST15).
어드레스 ADD에 의해 선택된 메모리 셀(이하, 선택 메모리 셀)의 데이타는 기대치 "1"과 비교된다(스텝 ST16).
즉, 소거 상태라고 판별할 수 있는 임계치의 상한으로 되는 전압(예를 들면, 3.0V)을 경계치로 하여 선택 메모리 셀의 임계치가 경계치보다도 높으면 선택 메모리 셀의 데이타는 "0"이라고 판정하고, 선택 메모리 셀의 임계치가 경계치보다도 낮으면 선택 메모리 셀의 데이타는 "1"로 판정한다.
선택 메모리 셀이 비선택 블럭 BLK7, BLK8, BLK10중 어느 하나에 속해 있을 경우, 제어 신호 VFYGO은 "0"이고, 제어 신호 VERIOK는 "1"로 고정되어 있다.
따라서, 선택 메모리 셀의 데이타와 기대치 "1"이 불일치할 경우라도, 제어 회로(21)는 소거 OK라고 판단한다. 즉, 그 선택 메모리 셀이 속하는 블럭(비선택 블럭)에 대해서는 베리파이만을 행하고, 소거를 행하는 일은 없다.
이와 같이, 변칙 블럭 내의 비선택 블럭 BLK7, BLK8, BLK10의 메모리 셀에 대해서는, 어드레스 ADD에 의해 선택되어도 제어 신호 VERIOK가 "1"로 고정되기 때문에 소거가 실행되지 않는다.
선택 메모리 셀이 선택 블럭 BLK9에 속해 있을 경우, 제어 신호 VFYGO는 "1"이고, 제어 신호 VERIOK는 베리파이 회로(23)의 출력에 따라 변화한다.
따라서, 선택 메모리 셀의 데이타와 기대치 "1"이 불일치할 경우, 소거 NG라고 판단하고, 베리파이 회로(23)는 데이타 "0"을 출력하기 위해 제어 신호 VERIOK는 "0"으로 된다. 따라서, 제어 회로(21)는 선택 블럭 내의 모든 메모리 셀에 대해 데이타의 소거(플로우팅 게이트중 전자를 추출하는 동작)를 실행한다(스텝 ST18).
여기서 주의할 점은, 변칙 블럭 내의 선택 블럭 BLK9의 메모리 셀에 대해서만 데이타의 소거(일괄 소거)를 실행하고, 변칙 블럭 내의 비선택 블럭 BLK7, BLK8, BLK10의 메모리 셀에 대해서는 데이타의 소거(일괄 소거)를 실행하지 않는 점이다.
이 소거 동작은, 미리 설정된 횟수 Limit에 이르기까지는, 선택 메모리 셀의 데이타가 기대치 "1"과 일치할 때까지 반복해 행하여진다(스텝 ST17 내지 ST19).
또한, 선택 메모리 셀에 대한 기입 횟수 CYCLE이 미리 설정된 횟수 Limit에 이르렀을 때는 선택 메모리 셀의 데이타와 기대치 "1"이 불일치해도 소거 동작을 종료한다. (스텝 ST17).
이 경우, 소거 불량이 발생한 것을 나타내는 신호 ERROR가 "1"로 설정된다 (스텝 ST9).
한편, 선택 메모리 셀의 데이타와 기대치 "1"이 일치하면, 선택 메모리 셀의 소거 OK라고 판단하고, 베리파이 회로(23)는 데이타 "1"을 출력하기 위해 제어 신호VERIOK는 "1"로 변화한다.
제어 회로(21)는, 제어 신호 VERIOK가 "1"로 되면 어드레스 ADD를 하나 진행시키기 위해, 다음 어드레스의 선택 메모리 셀에 대해 동일한 동작이 행하여진다. 이 때, 타이머(25)의 수치 CYCLE은 초기치 "0"으로 리셋되지 않는다. 소거 동작은, 전 메모리 셀에 대해 행하여지기 때문이다(스텝 ST20 내지 ST21).
또한, 선택 메모리 셀의 데이타와 기대치 "1"이 일치할 경우에 있어서, 어드레스 ADD가 그 블럭 내의 최종 어드레스일 때는 소거 동작을 종료한다(스텝 ST20).
이 후, 신호 ERROR가 "0"일 경우에는, 선택 블럭이 최종 블럭인지의 여부를 확인하고, 최종 블럭일 때는 리드 셋업을 거친 후 자동 소거 동작을 종료하며, 최종블럭이 아닐 때는, 다음 블럭에 대해 상술한 동작을 반복하여 행한다(스텝 ST22 내지 ST24).
또, 이상의 설명은 블럭 소거일 경우이지만, 칩 소거일 경우에는 상술한 자동 소거 시퀀스에서 모든 블럭을 선택 상태로 하면 된다. 또한, 소거 동작에는 과소거의 메모리 셀을 통상의 소거 상태로 복귀하는 자기 수속(Convergence) 동작을 포함시키도록 해도 좋다.
상술한 바와 같은 동작에 따르면, 변칙 블럭에 대해서는 소거 전 기입 및 소거의 어느 경우의 동작에 대해서도, 먼저 베리파이를 실행하고 있다.
그래서, 변칙 블럭 내의 비선택 블럭 BLK7, BLK8, BLK10에 대해서는, 항상 베리파이 OK, 즉 제어 신호 VERIOK가 "1"로 되도록 설정함으로써, 변칙 블럭 내의 비선택 블럭에 대해 소거 전 기입 및 소거를 실행하지 않도록 하고 있다.
또한, 변칙 블럭 내의 선택 블럭 BLK9에 대해서는, 베리파이 회로의 출력에 기초하여 제어 신호 VERIOK의 값을 설정함으로써, 변칙 블럭 내의 선택 블럭에 대해 소거 전 기입 및 소거를 실행할 수 있다.
즉, 균등 블럭의 어드레스 카운터를 이용하여 변칙 블럭의 메모리 셀을 지정할 수 있어 변칙 블럭에 전용 어드레스 카운터는 불필요해진다. 따라서, 회로 규모를 작게 할 수 있다. 또한, 본 발명은 균등 블럭만의 플래쉬 EEPROM과, 균등 블럭과 변칙 블럭이 혼재된 플래쉬 EEPROM의 쌍방에 대응 가능하다.
이상, 설명한 바와 같이 본원의 제2 발명의 불휘발성 메모리에 따르면, 다음과 같은 효과를 발휘한다.
메모리 셀 어레이가, 비트수가 동일한 복수의 균등 블럭과 합계의 비트수가 하나의 균등 블럭의 비트수와 동일한 복수의 변칙 블럭으로 구성되는 불휘발성 반도체 기억 장치에서, 균등 블럭의 메모리 셀의 지정에 사용하는 어드레스 카운터를 이용하여, 모든 변칙 블럭의 메모리 셀을 순차 지정하도록 구성하고 있다.
또한, 이 경우에 변칙 블럭 내에 선택 블럭이 존재할 때는, 변칙 블럭의 전체에 대해 소거 동작을 실행하는지의 여부를 나타내는 제어 신호 GO를 "1"(실행)로 설정하고, 변칙 블럭 내에 선택 블럭이 존재하지 않을 때는, 변칙 블럭의 전체에 대해 소거 동작을 실행하는지의 여부를 나타내는 제어 신호 GO를 "0"으로 설정하고 있다.
또한, 자동 소거 시퀀스에서는 소거전 기입 및 소거의 어느쪽 동작에 대해서도, 우선 베리파이를 행하고, 그 후 베리파이의 결과 VERIOK에 따라 소거전 기입 또는 소거를 실행하도록 구성하고 있다.
즉, 선택 메모리 셀에 대해, 베리파이의 결과 VERIOK가 "1"(베리파이 OK)이면, 그 선택 메모리 셀에 대해서는 소거전 기입 및 소거가 행하여지지 않고, 한편 베리파이의 결과 VERIOK가 "0" (베리파이 NG)일 때만, 그 선택 메모리 셀에 대해 소거전 기입 및 소거가 행하여진다.
따라서, 본 발명에서는 변칙 블럭 내의 비선택 블럭에 대해서는, 항상 베리파이 OK, 즉 제어 신호 VERIOK가 "1"이 되도록 설정함으로써, 변칙 블럭 내의 비선택 블럭에 대해 소거전 기입 및 소거를 실행하지 않도록 하고 있다.
또한, 변칙 블럭 내의 선택 블럭에 대해서는, 베리파이 회로의 출력에 따라 제어 신호 VERIOK의 값을 설정함으로써, 변칙 블럭 내의 선택 블럭에 대해 소거전 기입 및 소거를 실행할 수 있다.
이상으로부터, 본원의 제2 발명에 따르면, 균등 블럭의 어드레스 카운터를 그대로 이용하여 변칙 블럭의 메모리 셀을 지정할 수 있다. 변칙 블럭의 합계 비트수가 균등 블럭의 비트수와 동일한 구성일 경우, 제1 발명에서 설치한 부트 블럭 어드레스 카운터와 논리부의 회로가 불필요해져 회로 규모를 더 작게 할 수 있다.

Claims (11)

  1. 부트 블럭 방식의 불휘발성 메모리;
    비트수가 동일한 복수의 균등 블럭과, 복수의 변칙 블럭으로 구성되는 메모리 어레이;
    소거 동작시에, 상기 복수의 균등 블럭 및 상기 복수의 변칙 블럭 중 하나를 지정하는 블럭 어드레스 신호와, 상기 블럭 어드레스 신호에 의해 지정된 블럭이 소거를 실행하는 선택 블럭일 경우에 그 선택 블럭 내의 메모리 셀을 순차 지정하는 로우 및 컬럼 어드레스 신호를 생성하는 어드레스 생성 회로
    를 포함하며,
    상기 어드레스 생성 회로는,
    기본 분할이 되는 블럭에 대응한 블럭 어드레스 카운터와,
    부트 블럭 어드레스 카운터와,
    상기 로우 및 컬럼 어드레스 신호를 출력하는 로우 및 컬럼 어드레스 카운터와,
    상기 블럭 어드레스 카운터 신호와 부트 블럭 어드레스 카운터 신호가 입력 신호로 되는 논리 회로와,
    상기 논리 회로의 출력 회로의 신호와, 상기 로우 및 컬럼 어드레스 카운터의 출력 신호를 전환하는 전환 회로를 구비하고,
    선택된 블럭에 따라 상기 블럭 어드레스 신호와, 선택 블럭 내의 메모리 셀을 순차 지정하는 로우 어드레스 및 컬럼 어드레스 신호를 설정하는 수단으로 구성되는 것을 특징으로 하는 불휘발성 메모리.
  2. 제1항에 있어서,
    상기 어드레스 생성 회로는, 상기 블럭 어드레스 신호에 의해 지정된 블럭이 상기 복수의 균등 블럭의 하나이고 또한 상기 선택 블럭일 경우에 N 비트의 상기 로우 및 컬럼 어드레스 신호와 M 비트의 상기 블럭 어드레스 신호를 출력하고, 상기 블럭 어드레스 신호에 의해 지정된 블럭이 상기 복수의 변칙 블럭의 하나이고 또한 상기 선택 블럭일 경우에 상기 블럭 어드레스 신호에 의해 지정된 블럭의 기억 용량에 대응한 N-n 비트의 상기 로우 및 컬럼 어드레스 신호와 M+n 비트의 상기 블럭 어드레스 신호를 출력하는 수단(N, M은 자연수, n은 상기 블럭 어드레스 신호에 의해 지정된 변칙 블럭의 기억 용량에 의해 결정되는 값, N>n 임.)
    으로 구성되는 것을 특징으로 하는 불휘발성 메모리.
  3. 제1항에 있어서, 상기 어드레스 생성 회로를 구성하는 상기 전환 회로는 상기 논리 회로의 출력 회로의 신호와, 상기 로우 및 컬럼 어드레스 카운터의 출력 신호를 상기 논리 회로의 출력과는 다른 상기 논리 회로의 제2 출력 신호에 의해 전환하는 기능을 갖는 것을 특징으로 하는 불휘발성 메모리.
  4. 제1항에 있어서,
    상기 블럭 어드레스 신호에 의해 지정된 블럭이 소거를 실행하는 선택 블럭일 경우에, 상기 로우 및 컬럼 어드레스 신호는 초기치로부터 최종치까지 순차 인크리먼트되어, 상기 선택 블럭 내의 모든 메모리 셀에 대해 소거가 실행되는 것을 특징으로 하는 불휘발성 메모리.
  5. 부트 블럭 방식의 불휘발성 메모리;
    비트수가 동일한 복수의 균등 블럭과, 합계의 비트수가 하나의 균등 블럭의 비트수와 동일한 복수의 변칙 블럭으로 구성되는 메모리 셀 어레이;
    상기 균등 블럭을 지정하는 블럭 어드레스 카운터;
    상기 균등 블럭 내의 모든 메모리 셀을 지정하는 내부 어드레스를 생성하는 어드레스 카운터;
    상기 내부 어드레스에 의해 지정된 메모리 셀의 데이타를 판독, 베리파이(verify)하는 베리파이 회로;
    지정된 메모리 셀의 데이타의 개서를 행하는 제어 회로;
    상기 변칙 블럭에서의 소거 동작시에, 상기 어드레스 카운터는 균등 블럭 소거시와 동일하게 동작시키고, 상기 어드레스로 지정되어 있는 변칙 블럭이, 선택되어 있는 블럭인지, 선택되지 않은 블럭인지를 판단하고, 상기 베리파이 회로의 출력 신호를 제어하여, 선택된 변칙 블럭만을 소거하는 기능을 구비하고 있는 것을 특징으로 하는 불휘발성 메모리.
  6. 제5항에 있어서;
    상기 제어 회로는, 상기 베리파이 회로가 NG일 때만, 상기 내부 어드레스에 의해 지정되는 메모리 셀에 대해 프리프로그램(pre­program)을 행하고, 또한 상기 내부 어드레스에 의해 지정되는 메모리 셀을 포함하는 선택 블럭 내의 전 메모리 셀에 대해 소거를 행하는 것을 특징으로 하는 불휘발성 메모리.
  7. 제5항에 있어서,
    소거 동작시에, 상기 내부 어드레스가 상기 복수의 변칙 블럭 내의 메모리 셀을 순차 지정하고 있는 경우에, 상기 내부 어드레스에 의해 지정되는 메모리 셀이 소거를 실행하지 않은 비선택 블럭에 존재하고 있을 때는 상기 베리파이 회로의 베리파이 결과에 상관없이 항상 상기 베리파이가 OK가 되도록 설정하고, 상기 내부 어드레스에 의해 지정되는 메모리 셀이 소거를 실행하는 선택 블럭에 존재하고 있을 때에는, 상기 베리파이 회로의 베리파이 결과에 따라 상기 베리파이를 OK 또는 NG로 설정하는 수단을 갖추는 것을 특징으로 하는 불휘발성 메모리.
  8. 제5항에 있어서,
    소거 동작시에, 상기 내부 어드레스가 상기 복수의 균등 블럭 중 선택 블럭 내의 메모리 셀을 순차 지정하고 있는 경우에, 상기 수단은 상기 베리파이 회로의 베리파이 결과에 따라 상기 베리파이를 OK 또는 NG로 설정하는 것을 특징으로 하는 불휘발성 메모리.
  9. 제5항에 있어서,
    상기 복수의 변칙 블럭 모두가 소거를 실행하지 않은 비선택 블럭일 경우에, 상기 어드레스 카운터는 상기 복수의 변칙 블럭 내의 메모리 셀을 순차 지정하는 내부 어드레스를 생성하지 않는 것을 특징으로 하는 불휘발성 메모리.
  10. 제5항에 있어서,
    상기 제어 회로는, 상기 프리프로그램(pre-program) 또는 상기 소거의 횟수가 소정수에 달할 때까지는, 상기 베리파이가 OK로 될 때까지 상기 소거전 기입 또는 상기 소거를 반복 실행하는 것을 특징으로 하는 불휘발성 메모리.
  11. 제5항에 있어서,
    소거 동작시에, 상기 내부 어드레스 중 블럭 어드레스가 상기 복수의 균등 블럭 중 비선택 블럭을 지정하고 있을 때는, 상기 비선택 블럭에 대해서는 소거 동작을 행하지 않는 것을 특징으로 하는 불휘발성 메모리.
KR1019970053482A 1996-10-18 1997-10-18 부트 블럭 방식을 채용하는 불휘발성 메모리의데이타 소거 메카니즘 KR100264028B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP27617996A JP3176038B2 (ja) 1996-10-18 1996-10-18 半導体記憶装置
JP96-276179 1996-10-18
JP97-044010 1997-02-27
JP4401097A JP3148143B2 (ja) 1997-02-27 1997-02-27 不揮発性半導体記憶装置

Publications (2)

Publication Number Publication Date
KR19980032946A KR19980032946A (ko) 1998-07-25
KR100264028B1 true KR100264028B1 (ko) 2000-08-16

Family

ID=26383856

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970053482A KR100264028B1 (ko) 1996-10-18 1997-10-18 부트 블럭 방식을 채용하는 불휘발성 메모리의데이타 소거 메카니즘

Country Status (2)

Country Link
US (1) US5805510A (ko)
KR (1) KR100264028B1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3405651B2 (ja) * 1997-02-27 2003-05-12 株式会社東芝 不揮発性半導体記憶装置
US6308297B1 (en) * 1998-07-17 2001-10-23 Sun Microsystems, Inc. Method and apparatus for verifying memory addresses
JP3311305B2 (ja) * 1998-11-19 2002-08-05 沖電気工業株式会社 同期式バースト不揮発性半導体記憶装置
JP2000228094A (ja) * 1999-02-04 2000-08-15 Toshiba Corp 不揮発性半導体記憶装置
JP2001319486A (ja) * 2000-05-12 2001-11-16 Mitsubishi Electric Corp 不揮発性半導体記憶装置
JP3627915B2 (ja) 2000-05-30 2005-03-09 シャープ株式会社 ブートブロックフラッシュメモリ制御回路、およびそれを備えたicメモリカードと半導体記憶装置、並びにブートブロックフラッシュメモリの消去方法
JP4413406B2 (ja) * 2000-10-03 2010-02-10 株式会社東芝 不揮発性半導体メモリ及びそのテスト方法
US6549467B2 (en) 2001-03-09 2003-04-15 Micron Technology, Inc. Non-volatile memory device with erase address register
EP1579193B1 (en) 2002-11-13 2020-01-15 Ackley Machine Corp. Laser unit, inspection unit method for inspecting and accepting/removing specified pellet-shaped articles from a conveyer mechanism, and pharmaceutical article
KR100769772B1 (ko) 2006-09-29 2007-10-23 주식회사 하이닉스반도체 플래시 메모리 장치 및 이를 이용한 소거 방법
US7577059B2 (en) * 2007-02-27 2009-08-18 Mosaid Technologies Incorporated Decoding control with address transition detection in page erase function
US7804718B2 (en) * 2007-03-07 2010-09-28 Mosaid Technologies Incorporated Partial block erase architecture for flash memory
CN103210296B (zh) 2010-06-01 2016-08-10 阿克莱机械公司 检查系统
US9007831B2 (en) 2013-03-05 2015-04-14 Micron Technology, Inc. Memory devices with different sized blocks of memory cells and methods

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2709751B2 (ja) * 1990-06-15 1998-02-04 三菱電機株式会社 不揮発性半導体記憶装置およびそのデータ消去方法
US5602789A (en) * 1991-03-12 1997-02-11 Kabushiki Kaisha Toshiba Electrically erasable and programmable non-volatile and multi-level memory systemn with write-verify controller
US5490107A (en) * 1991-12-27 1996-02-06 Fujitsu Limited Nonvolatile semiconductor memory
US5592415A (en) * 1992-07-06 1997-01-07 Hitachi, Ltd. Non-volatile semiconductor memory

Also Published As

Publication number Publication date
US5805510A (en) 1998-09-08
KR19980032946A (ko) 1998-07-25

Similar Documents

Publication Publication Date Title
US6735116B2 (en) NAND-type flash memory device with multi-page program, multi-page read, multi-block erase operations
US6414874B2 (en) Nonvolatile semiconductor memory device having electrically and collectively erasable characteristics
US6031760A (en) Semiconductor memory device and method of programming the same
US5377147A (en) Method and circuitry for preconditioning shorted rows in a nonvolatile semiconductor memory incorporating row redundancy
US6525960B2 (en) Nonvolatile semiconductor memory device including correction of erratic memory cell data
USRE44350E1 (en) Nonvolatile semiconductor memory including multi-threshold voltage memory cells including voltage ranges indicating either an erase state or a two or more program state
JP3898349B2 (ja) 半導体記憶装置
US5930169A (en) Nonvolatile semiconductor memory device capable of improving of chip&#39;s lifetime and method of operating the same
US6055184A (en) Semiconductor memory device having programmable parallel erase operation
JP2004514238A (ja) ページ消去可能なフラッシュメモリおよびその制御方法
US6778443B2 (en) Non-volatile semiconductor memory device having memory blocks pre-programmed before erased
KR100264028B1 (ko) 부트 블럭 방식을 채용하는 불휘발성 메모리의데이타 소거 메카니즘
US7181566B2 (en) Scratch control memory array in a flash memory device
US20030145151A1 (en) Nonvolatile memory and memory card
US6735121B2 (en) Nonvolatile memory system having status register for rewrite control
US6400624B1 (en) Configure registers and loads to tailor a multi-level cell flash design
JP2001273798A (ja) 不揮発性半導体メモリ
JP2006024347A (ja) ビットスキャニングプログラムを実行する不揮発性メモリ装置
US6262916B1 (en) Non-volatile semiconductor memory device capable of pre-conditioning memory cells prior to a data erasure
US5491660A (en) On-chip operation control for memories
US6373750B1 (en) Non-volatile memory which performs erasure in a short time
KR100568117B1 (ko) 가속화된 비트 스캐닝 프로그램을 수행하는 불휘발성메모리 장치
EP0642135A2 (en) A nonvolatile semiconductor memory and its test method

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: 20120507

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee