KR100492714B1 - 마이크로 컴퓨터 - Google Patents

마이크로 컴퓨터 Download PDF

Info

Publication number
KR100492714B1
KR100492714B1 KR10-2003-0013615A KR20030013615A KR100492714B1 KR 100492714 B1 KR100492714 B1 KR 100492714B1 KR 20030013615 A KR20030013615 A KR 20030013615A KR 100492714 B1 KR100492714 B1 KR 100492714B1
Authority
KR
South Korea
Prior art keywords
erase
automatic
erasing
memory
phase
Prior art date
Application number
KR10-2003-0013615A
Other languages
English (en)
Other versions
KR20040002454A (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 미쓰비시덴키 가부시키가이샤
Publication of KR20040002454A publication Critical patent/KR20040002454A/ko
Application granted granted Critical
Publication of KR100492714B1 publication Critical patent/KR100492714B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • 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/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/26Sensing or reading circuits; Data output 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/344Arrangements for verifying correct erasure or for detecting overerased cells
    • 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
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/22Nonvolatile memory in which reading can be carried out from one memory bank or array whilst a word or sector in another bank or array is being erased or programmed simultaneously

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Microcomputers (AREA)
  • Memory System (AREA)

Abstract

플래쉬 메모리 등의 비휘발성 메모리를 내장한 마이크로 컴퓨터에서는, 당해 메모리 상에 배치된 프로그램으로부터 자동 소거나 자동 블럭 소거의 커맨드를 실행한 경우, 자동 소거가 완료될 때까지의 기간 동안, 주변 장치 및 외부로부터의 인터럽트 요구를 접수하지 않는다고 하는 문제가 있었다.
플래쉬 메모리의 자동 기록, 자동 소거 처리를 제어하는 외부로부터의 입력으로서 커맨드의 인터럽트 요구 신호를 이용하는 것에 의해, 자동 기록이나 자동 소거 중에 인터럽트가 발생하면, 자동 기록, 자동 소거를 일시 중단하고, 인터럽트 처리를 접수하지 않았던 작업을 자동으로 실행할 수 있는 비휘발성 반도체 메모리 내장 마이크로 컴퓨터를 제공한다.

Description

마이크로 컴퓨터{MICROCOMPUTER}
본 발명은 플래쉬 메모리 등의 전기적으로 리라이팅 가능한 비휘발성 메모리(비휘발성 반도체 메모리)를 내장한 마이크로 컴퓨터에 관한 것으로, 특히, 비휘발성 메모리(이하, 대표하여 「플래쉬 메모리」로 기재함)의 리라이팅 시의 기능에 관한 것이다.
플래쉬 메모리의 자동 기록 및 자동 소거 시퀀스 동안은 통상 메모리 내의 데이터를 판독할 수 없다. 플래쉬 메모리 내장 마이크로 컴퓨터(이하, 간단히 「마이컴(microcomputer)」라고 함)의 경우에서는, 그 플래쉬 메모리의 기록 또는 소거를 할 때는, 실행 프로그램을 내부 RAM 등의 플래쉬 메모리 이외에 두거나, 또는, 플래쉬 메모리 상의 실행 프로그램으로부터 기록 또는 소거를 하는 경우라도, 그 자동 시퀀스가 완료될 때까지의 기간 동안, CPU는 다음 코드를 페치할 수가 없기 때문에, 마이컴의 동작을 일시적으로 정지시켜 둘 필요가 있었다.
예컨대, NOR형의 플래쉬 메모리 내장 마이크로 컴퓨터에서는, 소거 시간이 최대 수 초 정도 소요되기 때문에, 이 수 초 동안에 CPU는 플래쉬 메모리를 액세스할 수가 없다. 이 때문에, ROM상의 프로그램으로부터 소거를 실행하면 CPU는 소거가 종료될 때까지 홀드 상태 등으로 할 필요가 있어, 장기간 외부 인터럽트 등을 일체 접수되지 않게 된다.
여기서, 일본 특허 공개 평성 제 2-257496 호 공보에는, 기록 처리의 중단 요구가 발생하면, 소거·기록의 VPP 전압이 인가되어 있을 때에 중단 요구가 발생한 경우, 타이머의 카운트 값을 정지·유지하고, 일단 VPP 전압을 상승시켜 판독 등의 처리를 한 후, 재차 VPP를 상승시켜 유지한 카운트 값으로부터 전압 인가를 재개하는 마이크로 컴퓨터를 개시하고 있다.
종래의 비휘발성 메모리 내장 마이크로 컴퓨터는 이상과 같이 구성되어 있기 때문에, 플래쉬 메모리의 자동 소거는 최장 수 초 정도의 시간이 필요하기 때문에, ROM 상의 프로그램으로부터 자동 소거를 실행한 경우에는, 마이컴는 그 기간에 플래쉬 메모리 상의 다음 프로그램 코드를 페치할 수 없어, 한번 자동 소거를 실행하면 자동 소거가 완료되어 판독 가능하게 될 때까지 정지해 놓아야 했다. 이 때문에, 주변 회로나 외부로부터의 인터럽트 요구가 발생한 경우라도, 그 인터럽트 벡터가 플래쉬 메모리 내의 번지에 설정되어 있으면, 인터럽트 요구의 발생부터 실행할 수 있게 될 때까지는 최대 수 초 정도 소요되는 경우가 있었다.
또한, 자동 소거 종료까지 기다릴 수 없는 경우에는, 강제적으로 리셋을 입력하여 자동 일괄 소거, 자동 블럭 소거의 처리를 중지하고 나서, 메모리 데이터를 판독할 수밖에 없어, 리셋을 입력하여 자동 일괄 소거, 자동 블럭 소거의 처리를 중지하고 나서 메모리 데이터를 판독하는 경우에는, 메모리 데이터를 판독한 후에 다시 자동 일괄 소거, 자동 블럭 소거를 처음부터 실행해야 한다고 하는 문제가 있었다.
본 발명은 상기한 바와 같은 문제를 해결하기 위해서 이루어진 것으로, 자동 기록 및 자동 소거에서, 외부로부터(마이컴측으로부터)의 입력에 의해 그 처리를 일시 중단·재개할 수 있는 기능을 구비한 비휘발성 메모리 내장 마이크로 컴퓨터를 얻는 것을 목적으로 한다.
본 발명에 따른 마이크로 컴퓨터는, CPU에 의해 실행 가능한 자동 소거 또는 자동 기록 시퀀스를 구비하고, 외부로부터의 제어에 의해 자동 소거 및 자동 기록의 중단·재개가 가능한 비휘발성 메모리 및 주변 기기를 구비하며, 주변 기기 또는 외부로부터의 인터럽트 요구에 의해, 비휘발성 메모리의 자동 소거 또는 자동 기록 처리가 일시 중단하여, 당해 메모리 내의 데이터를 CPU가 판독 가능해지는 것으로, 마이컴의 인터럽트 요구를 플래쉬 메모리 등의 비휘발성 메모리의 자동 소거 중단의 트리거로 사용한다. 예컨대, CPU에 의해 소거 기간 중에 인터럽트가 입력되면 플래쉬 메모리 등의 비휘발성 메모리는 이것을 받아 소거 중단 가능한 곳까지 진행한 후, 소거 처리를 일시 중단하고, ROM 판독만을 허가한다(소거/기록은 금지). 또, 플래쉬 메모리측에서는 미리 시퀀스 중단 가능한 장소를 마련해 둔다.
본 발명에 따른 마이크로 컴퓨터는, 자동 소거 또는 자동 기록의 중단·재개를 제어하기 위한 레지스터를 구비하고, 자동 소거 또는 자동 기록 중에 마이크로 컴퓨터에 내장되는 주변 기기 또는 외부로부터의 인터럽트 요구가 발생하면, 이 레지스터에 자동적으로 "1"이 기록되어, 당해 자동 소거 처리는 일시 중단하여 비휘발성 메모리 내의 데이터를 CPU가 판독 가능하게 되어, 이 CPU가 이 레지스터에 "0"을 기록하면, 중단하고 있었던 자동 소거 처리가 재개한다는 기구를 구비하는 것이다. 예컨대, 소거 중단 요구 및 소거 재개를 레지스터(소거 중단/재개 요구 비트)로 실행하여, 마니컴측의 CPU에서 이 비트를 판독/기록하는 것에 의해 중단(서스펜드) 중인지 여부를 판단할 수 있도록 한다.
본 발명에 따른 마이크로 컴퓨터는, 자동 소거 및 자동 기록의 중단·재개의 기능을 유효하게 할지, 무효로 할지를 전환하는 기능을 갖는 레지스터를 구비하는 것이다. 즉, 허가 레지스터 등에 의해 소거 중에 인터럽트를 접수하여, 중단 모드로 들어가는지를 프로그램 가능하게 선택 가능하게 한다.
본 발명에 따른 마이크로 컴퓨터는, 비휘발성 메모리가, 비휘발성 트랜지스터로 이루어지는 복수의 메모리 셀이 행렬 형상으로 배치된 메모리 어레이를 갖는 메모리 블럭을 복수개 모아 블럭 메모리 어레이를 구성함과 아울러, 기록 및 소거 처리를 처리 시퀀스 중의 각 페이즈 후에 중단하는 인터럽트 수단과, 기록 및 소거 처리를 중단하는 제 1 인터럽트에서는 처리 시퀀스 중의 제 1 인터럽트가 입력된 타이밍에 따른 페이즈로 처리를 중단하고, 기록 및 소거 처리를 중단하는 제 2 인터럽트에서는 처리 시퀀스 중의 특정한 페이즈로 처리를 중단하는 수단을 구비하며, 처리의 중단 동안에는 비휘발성 메모리의 내용을 판독할 수 있는 것이다.
본 발명에 따른 마이크로 컴퓨터는, 비휘발성 메모리가, 비휘발성 트랜지스터로 이루어지는 복수의 메모리 셀이 행렬 형상으로 배치된 메모리 어레이를 갖는 메모리 블럭을 복수개 모아 블럭 메모리 어레이를 구성함과 아울러, 기록 및 소거 처리를 처리 스퀀스 중의 각 페이즈 후에 중단하는 인터럽트 수단과, 기록 및 소거 처리를 중단하는 제 1 인터럽트에서는 처리 시퀀스 중의 제 1 인터럽트가 입력된 타이밍에 따른 페이즈에서 처리를 중단하고, 기록 및 소거 처리를 중단하는 제 2 인터럽트에서는 처리 시퀀스 중의 특정한 페이즈에서 처리를 중단하는 수단을 구비하며, 소거 처리를 중단하는 제 1, 제 2 인터럽트의 유무에 의해 1 블럭 메모리를 소거하는 소거 방식을 구비하는 것이다.
본 발명에 따른 마이크로 컴퓨터는, 비휘발성 메모리가, 비휘발성 트랜지스터로 이루어지는 복수의 메모리 셀이 행렬 형상으로 배치된 메모리 어레이를 갖는 메모리 블럭을 복수개 모아 블럭 메모리 어레이를 구성함과 아울러, 기록 및 소거 처리를 처리 시퀀스 중의 각 페이즈 후에 중단하는 인터럽트 수단과, 기록 및 소거 처리를 중단하는 제 1 인터럽트에서는 처리 시퀀스 중의 제 1 인터럽트가 입력된 타이밍에 따른 페이즈에서 처리를 중단하고, 기록 및 소거 처리를 중단하는 제 2 인터럽트에서는 처리 시퀀스 중의 특정한 페이즈에서 처리를 중단하는 수단을 구비하며, 소거 처리를 중단하는 제 1, 제 2 인터럽트의 유무에 의해 블럭 메모리 어레이 모두를 소거하는 소거 방식을 구비하는 것이다.
본 발명에 따른 마이크로 컴퓨터는, 외부로부터의 입력에 의해 중단·재개가 가능한 자동 소거 및 자동 기록 수단과, 당해 자동 소거 또는 자동 기록 시퀀스의 중단 시에, 그 시퀀스 중의 어디에서 중단하고 있는지의 정보를 수 비트의 데이터로서 출력하는 회로를 구비하며, CPU 또는 테스터로부터 그 정보를 판독하는 것이 가능한 것이다. 예컨대, 소거 중단할 수 있는 부분을 미리 시퀀스 중에 몇 개 설정해 두지만, 실제로 인터럽트가 입력되었을 때, 시퀀스 중의 어떤 장소에서 중단하고 있는지를 레지스터 등의 회로로부터 판독할 수 있도록 한다.
본 발명에 따른 마이크로 컴퓨터는, 비휘발성 메모리가, 외부로부터의 입력에 의해 중단·재개가 가능한 자동 소거 및 자동 기록 수단과, 당해 자동 소거 또는 자동 기록 시퀀스의 실행 전에 미리 그 시퀀스 중의 어디에서 중단할거라는 정보를 수 비트의 데이터에 의해 CPU 또는 테스터로부터 지정할 수 있는 회로를 구비한 것이다. 예컨대, 미리 레지스터 등의 회로에 정지 위치를 지정하여 소거를 실행하고, 임의의 위치에서 시퀀스를 정지할 수 있도록 한다.
또, 소거, 쓰고 되돌리기의 루프 처리 회수를 지정할 수 있도록 하여, 루프 회수를 소거 후 읽을 수 있도록 해 두면 좋다.
본 발명의 상기 및 그 밖의 목적, 특징, 국면 및 이익 등은 첨부 도면을 참조로 하여 설명하는 이하의 상세한 실시예로부터 더욱 명백해질 것이다.
이하, 본 발명의 일 실시예를 설명한다.
(실시예 1)
도 1은 본 발명의 실시예 1에 따른 플래쉬 메모리 내장 마이크로 컴퓨터의 전체 구성을 나타내는 블럭도이다. 도면에 있어서, (1)은 플래쉬 메모리 내장 마이컴이며, (2)는 비휘발성 메모리로서의 플래쉬 메모리, (3)은 플래쉬 메모리(2)와 마이컴부의 인터페이스 회로, (4)는 중앙 처리 장치(CPU)와 버스 인터페이스 장치(BIU)(이하, 간단히 CPU/BIU라고 함), (5)는 인터럽트 제어 회로, (6)은 기타 마이컴을 구성하는 RAM, 타이머, 시리얼 통신 회로, 포트 제어 블럭 등의 주변 장치(주변 기기)이다. (7)은 서스펜드 요구 레지스터, (8)은 서스펜드 허가 레지스터, (9)는 CPU 홀드 제어 회로로서, 인터페이스 회로(3) 내에 배치된다.
(10)은 주변 장치 인터럽트 신호, (11)은 외부 인터럽트 신호이며, 각각 주변 장치(6)와 외부로부터 인터럽트 제어 회로(5)로 입력된다. (12)는 그 인터럽트 제어 회로(5)로부터의 인터럽트 요구 신호로서, CPU/BIU(4) 및 인터페이스 회로(3)로 입력된다. (13)은 서스펜드 요구 신호, (14)는 서스펜드 접수 신호, (15)는 CPU 홀드 신호, (16)은 어드레스 버스, (17)은 데이터 버스이다. 또, 인터페이스 회로(3) 내의 서스펜드 허가 레지스터(8)의 출력과 서스펜드 요구 레지스터(7)의 출력의 AND 처리된 것이 플래쉬 메모리(2)에 대한 소거 처리 중단 요구(이하, 서스펜드 요구) 신호(13)로 된다.
도 2에 서스펜드 요구 레지스터(7) 및 서스펜드 허가 레지스터(8)의 기능에 대하여 나타내고 있다.
여기서, 마이크로 컴퓨터의 인터럽트 요구란, 통상 마이컴이 보유하는 CPU의 프로그램 처리 동작에 대한 인터럽트 요구인 것을 말한다. 통상 마이컴은 프로그램 번지를 순차적으로 실행해 가지만, 외부 입력이나 주변 장치로부터 이 요구가 입력되면 마이컴은 순차적인 동작을 중단하고, 특정(지정) 번지의 프로그램을 실행한다.
다음에 플래쉬 메모리(2)의 구성에 대하여 설명한다.
도 4는 본 발명의 실시예 1에 따른 비휘발성 반도체 메모리의 전체 구성을 나타내는 블럭도이며, 도면에 있어서, (201)은 마이크로 시퀀서, (202)는 차지 펌프, (203)은 메모리 디코더, (204)는 메모리 블럭, (205)는 어드레스/데이터/제어 신호 디래치 입력 회로이며, 이들이 비휘발성 반도체 메모리인 플래쉬 메모리(2)를 구성한다. 또, 메모리 외부로부터 어드레스 A(16:0) 버스, 데이터 D(15:0) 버스, 각종 제어 신호가 입출력된다.
도 5에, 본 발명의 비휘발성 반도체 메모리의 동작 모드 일람을 나타낸다.
다음에, 각 동작 모드를 설명한다. 판독은 비휘발성 반도체 메모리 내의 임의의 어드레스의 데이터를 판독한다.
상태 레지스터 판독은 자동 소거/자동 기록의 상태 정보를 판독한다. 상태 판독은 데이터 D(15:0) 버스로부터 입력되는 커맨드(70H)에 의해 모드로 엔트리하여 FFH로 되돌아간다.
상태 레지스터 소거는 상태 레지스터의 내용을 소거한다. 상태 레지스터 소거는 데이터 D(15:0) 버스로부터 입력되는 커맨드(50H)에 의해 모드로 엔드리하여 FFH로 되돌아간다.
자동 기록은 데이터 D(15:0) 버스로부터 입력되는 커맨드(40H)에 의해 셋업 모드로 들어가고, 다음 사이클에서 기록 데이터와 어드레스를 취득 모드 엔트리한다. 자동 기록 종료 후는 상태 레지스터에 기록 상태를 기록한다.
자동 일괄 소거는 데이터 D(15:0) 버스로부터 입력되는 커맨드 20H에 의해 셋업 모드로 들어가고, 다음 사이클에서 확인 커맨드 20H에 의해 모드 엔트리한다. 자동 일괄 소거 종료 후는 상태 레지스터에 일괄 소거 상태를 기록한다.
자동 블럭 소거에서는, 데이터 D(15:0) 버스로부터 입력되는 커맨드(20H)에 의해 셋업 모드에 들어가고, 다음 사이클에서 D0H/블럭 어드레스를 취입 모드 엔트리한다. 자동 블럭 소거 1 후는 상태 레지스터에 자동 블럭 소거 상태를 기록한다.
(마이크로 시퀀서)
도 6은 마이크로 시퀀서(201)의 블럭도를 나타내는 것으로, 도면에 있어서, (201)은 마이크로 시퀀서, (206)은 커맨드 포트, (207)은 상태 레지스터, (208)은 자동 소거 시퀀서, (303)은 자동 기록 시퀀서, (209)는 테스트 모드 시퀀서, (210)은 파워 리셋 회로, (211)은 클럭 생성 회로, (212)는 디코더·차지 펌프 제어 신호 생성 회로, (304)는 타이머 회로이다.
도 5를 참조하면, 커맨드 포트(206)는 어드레스/데이터/제어 신호 디래치 입력 회로(205)로부터 송신되어 온 정보를 기초로, 각종 모드를 설정하여, 차지 펌프(202), 메모리 디코더(203), 메모리 블럭(204)을 제어한다. 또한, 어드레스 래치 회로는, 자동 블럭 소거 2를 실행할 때는, 제 1 버스 사이클에서 소거 메모리 블럭 개시 어드레스를 래치하고, 제 2 버스 사이클에서 소거 메모리 블럭 종료 어드레스를 래치한다. 또한, 자동 블럭 소거 1을 실행할 때는, 제 2 버스 사이클에서 소거 메모리 블럭의 블럭 어드레스를 래치한다.
자동 블럭 소거 2를 실행할 때에 래치한 소거 메모리 블럭 개시 어드레스와 소거 메모리 블럭 종료 어드레스는 자동 블럭 소거 2 시퀀스 중의 소거전 기록과 소거 검증 실행 시에 사용된다.
자동 소거 시퀀서(208)는 커맨드 포트(206)의 지시에 의해 자동 소거의 동작을 제어한다.
차지 펌프(202), 메모리 디코더(203), 메모리 블럭(204)의 제어는 디코더·차지 펌프 제어 신호 생성 회로(212)를 거쳐서 이루어진다. 소거 펄스의 발행이나 펌프 활성 시간 설정 등, 자동 소거 시퀀스에서 필요한 각종 시간의 계측은 타이머 회로(304)를 호출하여 행하여진다. 또한, 자동 소거 시의 상태를 상태 레지스터(207)에 기록한다.
자동 기록 시퀀서(303)는 커맨드 포트(206)의 지시에 의해 자동 기록 동작을 제어한다. 차지 펌프(202), 메모리 디코더(203)의 제어는 디코더·차지 펌프 제어 신호 생성 회로(212)를 거쳐서 이루어진다. 기록 펄스의 발행이나 펌프 활성 시간 설정 등, 자동 기록 시퀀스에서 필요한 각종 시간의 계측은 타이머 회로(304)를 호출하여 행하여진다. 또한, 자동 기록 동작 시의 상태를 상태 레지스터(207)에 기록한다.
테스트 모드 시퀀서(209)는 커맨드 포트(206)의 지시에 의해 테스트 모드의 동작을 제어한다. 차지 펌프(202), 메모리 디코더(203), 메모리 블럭(204)의 제어는 디코더·차지 펌프 제어 신호 생성 회로(212)를 거쳐서 행하여진다. 기록 펄스나 소거 펄스의 발행이나 펌프 활성 시간 설정 등, 각종 테스트 시퀀스에서 필요한 시간의 계측은 타이머 회로(304)를 호출하여 행하여진다.
파워 리셋 회로(210)는 전원의 상승 에지를 감지하여 리셋 신호를 내부 회로에 출력할지, 또는 커맨드 포트(206)를 경유하여 입력되는 외부 리셋 입력에 의해서 내부의 모든 회로를 리셋 상태로 한다.
클럭 생성 회로(211)는 10㎒ 상당의 클럭 펄스를 자동 소거 시퀀서(208), 자동 기록 시퀀서(303) 및 테스트 모드 시퀀서(209)에 출력한다.
파워 리셋 회로(210)에 의해 모든 회로가 비동작 상태로 되었을 때는, 클럭 생성 회로(211)도 기능이 정지하여 클럭 신호도 정지한다.
상태 레지스터(207)는 자동 소거/자동 기록 시의 상태를 유지하고, 필요하면 그 값을 커맨드 포트(206)를 거쳐서 외부로 출력한다.
디코더·차지 펌프 제어 신호 생성 회로(212)는 자동 소거 시퀀서(208), 자동 기록 시퀀서(303), 테스트 모드 시퀀서(209)의 출력을 받아, 차지 펌프(202), 메모리 디코더(203) 및 메모리 블럭(204)을 제어하는 제어 신호를 생성한다.
타이머 회로(304)는 자동 소거 시퀀서(208), 자동 기록 시퀀서(303), 테스트 모드 시퀀서(209)로부터의 신호를 수신하여, 요구가 있었던 시간을 계측하고, 요구원의 블럭에 종료 신호를 반송한다.
서스펜드 제어 회로(305)는 어드레스/데이터/제어 신호 디래치 입력 회로(205)를 통해서 외부로부터 요구가 있는 서스펜드 요구를 접수한다. 서스펜드 요구는 서스펜드 제어 회로(305)를 통해서 자동 소거 시퀀서(208)에 대해 처리의 중단을 요구한다.
(차지 펌프)
도 7은 차지 펌프(202)의 블럭도를 나타내는 것으로, 도면에 있어서, (202)는 차지 펌프, (213)은 부(負)전압 차지 펌프, (214)는 정(正)전압 차지 펌프, (215)는 판독 전압 차지 펌프이다.
차지 펌프(202)는 마이크로 시퀀서(201)에 의해서 제어되고, 각 차지 펌프(213∼215)의 출력은 전압 전환 회로(216)에 의해서 메모리 디코더(203)와 메모리 블럭(204)에 공급된다.
부전압 차지 펌프(213)는 소거용의 부(負)차지 펌프로서, 자동 소거 시에 부(負)의 전압을 발생한다.
정전압 차지 펌프(214)는 기록/소거용의 정(正)차지 펌프로서, 기록과 소거 시에 정(正)의 전압을 발생한다.
판독 전압 차지 펌프(215)는 판독/검증용의 정차지 펌프로서, 판독 동작 시에 판독 전압을 발생하고, 기록/기록 검증 시에는 검증 판독 전압을 발생한다.
(메모리 디코더)
도 8에 메모리 블럭(204) 중의 메모리 디코더(230)의 구성도를 나타낸다. 도면에 있어서, (230)은 메모리 디코더, (218)은 Y(컬럼) 어드레스 입력 버퍼 래치, (217)은 X(로우) 어드레스 래치, (220)은 Y(컬럼) 어드레스 프리디코더, (219)는 X(로우) 어드레스 프리디코더, (232)는 선택 게이트 어드레스 래치, (233)은 선택 게이트 어드레스 프리디코더이다.
Y(컬럼) 어드레스 입력 버퍼 래치(218), X(로우) 어드레스 래치(217), 선택 게이트 어드레스 래치(232)는 상태 레지스터(207)로부터 전송되어 온 어드레스를 래치한다.
래치된 어드레스는 Y(컬럼) 어드레스 프리디코더(220), X(로우) 어드레스 프리디코더(219), 선택 게이트 어드레스 프리디코더(233)에서 어드레스의 프리디코드 처리가 행하여져, 메모리 블럭 어레이(231)에 대하여 프리디코드된 결과를 출력한다.
(메모리 블럭)
마찬가지로, 도 8에 메모리 블럭(204) 중의 메모리 블럭 어레이(231)의 구성도를 나타낸다. 도면에 있어서, (231)은 메모리 블럭 어레이, (221)은 8KB의 메모리 블럭 0, (222)는 32KB의 메모리 블럭 1, (223)은 32KB의 메모리 블럭 2, (224)는 32KB의 메모리 블럭 3, (225)는 32KB의 메모리 블럭 4, (226)은 센스 앰프/기록 회로, (227)은 선택기 회로, (234)는 글로벌 비트선, (228)은 데이터 버스 DDB(15:0), (229)는 블럭 선택 신호이다.
각 메모리 블럭 어레이와 센스 앰프/기록 회로(226) 사이는 글로벌 비트선(234)으로 접속되어 있다.
각각의 메모리 블럭은 X 디코더, SG(선택 게이트)/Y 디코더, 메모리 어레이로 이루어진다.
센스 앰프/기록 회로(226)는 각각의 메모리 블럭으로부터의 출력을 글로벌 비트선(234), 선택기 회로(227)를 거쳐서 데이터 버스에 데이터를 출력하는 경로와, 데이터 버스의 값을 선택기 회로(227), 센스 앰프/기록 회로(226), 글로벌 비트선(234)을 거쳐서 각 메모리 블럭에 데이터를 기록하는 경로가 있다.
(메모리 어드레스 공간)
도 9에 메모리 블럭(204)의 어드레스 공간을 나타낸다.
메모리 블럭 4는 16진 표기로 "00000h"∼"07FFFh"의 어드레스 공간을 가진다.
메모리 블럭 3은 16진 표기로 "08000h"∼"0FFFFh"의 어드레스 공간을 가진다.
메모리 블럭 2는 16진 표기로 "10000h"∼"17FFFh"의 어드레스 공간을 가진다.
메모리 블럭 1은 16진 표기로 "18000h"∼"1FFFFh"의 어드레스 공간을 가진다.
메모리 블럭 0은 16진 표기로 "00000h"∼"01FFFh"의 어드레스 공간을 가진다.
(메모리 어레이 구성 1)
도 10은 도 9에 나타내는 블럭 중의 하나의 메모리 블럭을 예로 들어 설명하는 것으로, 도면에 있어서, (226)은 센스 앰프/기록 회로, (227)은 선택기 회로, (228)은 데이터 버스 DDB(15:0), (234)는 글로벌 비트선, (235∼238)은 비트선을 선택하는 트랜지스터, (239∼242)는 메인 비트선, (243∼246)은 서브 비트선을 선택하는 트랜지스터, (251)은 Y 디코더, (252)는 SG 디코더, (253)은 X 디코더이다. CS0∼CS15, SG0∼SG3은 제어 신호, Tr0-0∼Tr63-0, Tr0-1∼Tr63-1, Tr0-2∼Tr63-2, Tr0-3∼Tr63-3은 메모리 셀을 나타낸다. 여기서, 메모리 셀 어레이는 1 메인 비트선에 결합되는 분만을 나타내고 있다.
Y 디코더(251)는 Y 어드레스 프리디코더(220)로부터의 출력을 받아(도 8 참조), 16개의 메인 비트선(239∼242)으로부터 1개의 비트선을 선택하기 위한 16개의 제어 신호 CS0∼CS15를 생성한다. 제어 신호 CS0∼CS15는 비트선을 선택하는 트랜지스터(235∼238)의 게이트에 결합되어 있다. 각각의 메인 비트선(239∼242)은 각각 4개의 서브 비트선이 연결되어 있다.
SG(선택 게이트) 디코더(252)는 선택 게이트 어드레스 프리디코더(233)로부터의 출력을 받아(도 8 참조), 4개의 서브 비트선 SBL0∼SBL3으로부터 1개의 서브 비트선을 선택하기 위한 제어 신호 SG0∼SG3을 생성한다. 제어 신호 SG0∼SG3은 서브 비트선을 선택하는 트랜지스터(243∼246)의 게이트에 결합되어 있다.
X 디코더(253)는 X 어드레스 프리디코더(219)로부터의 출력을 받아, 64개의 워드선 WL0∼WL63으로부터 1개의 워드선을 선택 제어한다.
각각의 서브 비트선에는 플로팅 게이트를 갖는 비휘발성 트랜지스터로 이루어지는 메모리 셀 Tr0-0∼Tr0-3, Tr1-0∼Tr1-3, Tr63-0∼Tr63-3이 행렬 형상으로 배치되어 있다.
이 중, 동일 열에 배치된 메모리 셀 Tr0-0∼Tr63-0, Tr0-1∼Tr63-1, Tr0-2∼Tr63-2, Tr0-3∼Tr63-3에는, 동일 서브 비트선 SBL0∼SBL3이 소스 단자에 접속되어 있고, 각각 다른 워드선 WL0∼WL63이 게이트 단자에 접속되어 있다.
메모리 데이터의 판독은, X 어드레스 프리디코더(219), Y 어드레스 프리디코더(220), 선택 게이트 어드레스 프리디코더(233)의 출력에 따라서 서브 비트선 SBL0∼SBL3과 워드선 WL0∼WL63으로부터 각각 1개의 서브 비트선과 워드선이 선택되고, 선택된 비트선과 워드선에 접속된 플로팅 게이트를 갖는 비휘발성 트랜지스터로 이루어지는 메모리 셀의 내용이 센스 앰프/기록 회로(226) 중의 센스 앰프를 거쳐서 데이터 버스에 출력된다.
또한, 메모리 데이터의 기록은, X 어드레스 프리디코더(219), Y 어드레스 프리디코더(220), 선택 게이트 어드레스 프리디코더(233)의 출력에 따라서(도 8 참조) 서브 비트선 SBL0∼SBL3과 워드선 WL0∼WL63으로부터 각각 1개의 비트선과 워드선이 선택되고, 선택된 비트선과 워드선에 접속된 플로팅 게이트를 갖는 비휘발성 트랜지스터로 이루어지는 메모리 셀에 센스 앰프/기록 회로(226) 중의 기록 회로를 거쳐서 데이터 버스의 값이 기록된다.
또한, 메모리 데이터의 소거는, 소거 펄스가 소거 대상으로 되어 있는 메모리 블럭에 인가되어, 플로팅 게이트를 갖는 비휘발성 트랜지스터로 이루어지는 메모리 셀의 게이트에 소거 전압이 인가되어 메모리의 내용이 소거된다.
다음에, 본 발명의 실시예 1의 동작 및 작용·효과에 대하여 설명한다.
통상, 플래쉬 메모리 내장 마이컴의 싱글 칩 모드에서는, CPU/BIU(4)가 플래쉬 메모리(2) 상의 프로그램 코드를 읽어들여 동작하고 있다. 플래쉬 메모리(2)는 자동 소거 중에는 소거 검증 등에서 센스 앰프 등의 판독 회로를 사용하여 소거가 정확하게 실행 가능한지의 확인을 하기 때문에, 소거 기간 동안 이외의 블럭의 데이터에 대해서도 통상 판독을 실행할 수 없게 된다. 그 때문에, 플래쉬 메모리 상의 프로그램에 배치된 자동 소거 커맨드가 실행되면, 그 자동 소거의 시퀀스가 완료될 때까지, CPU가 다음의 플래쉬 메모리 상의 프로그램 코드를 판독해 가지 않도록, CPU의 동작을 정지시켜 줄 필요가 있다. 인터페이스 회로(3) 내의 CPU 홀드 제어 회로(9)에서는, 자동 소거 커맨드 실행 중에는, CPU/BIU(4)가 모든 버스 액세스를 정지시키기 위한 신호, CPU 홀드 신호(15)를 출력하고, 이것을 수신하여 CPU/BIU(4)가 버스 액세스를 정지한다(코드 페치 정지).
그러나, 종래와 같이 이대로는, 마이컴은 최장 수 초 정도는 소요되는 자동 소거의 시간 중에는 동작할 수 없는 상태이기 때문에, 인터럽트 등이 발생하더라도 수 초 동안에는 접수할 수 없으므로, 실제 시스템 상에서는 인터럽트 금지밖에 할 수 없는 경우가 있고, 또한 부정기(不定期) 인터럽트가 필수인 시스템에서는 사용할 수 없었다.
본 발명의 실시예 1에서는, 이 자동 소거 실행 동안의 CPU가 정지 중에 외부로부터 또는 마이컴 내의 주변 장치(6) 등으로부터 인터럽트 요구(10, 11)가 발생하면, 인터럽트 제어 회로(5)는 이 요구를 수취하여, 인터페이스 회로(3)에 인터럽트 요구 신호를 출력한다(도 1 참조).
인터페이스 회로(3)에서는, 이 인터럽트 요구 신호(12)가 활성화되는데 대하여, 서스펜드 허가 레지스터(8)를 허가 상태로 설정하고 있으면, 서스펜드 요구 레지스터(7)에 "1"이 설정되고, 그 출력인 서스펜드 요구 신호(13)가 활성화(요구 상태)로 된다.
자동 소거 중에 서스펜드 모드가 들어간 경우의 플래쉬 메모리(2)의 동작은 이후에 상술하지만, 플래쉬 메모리(2)는 서스펜드 요구를 받으면, 소거 시퀀스를 일시 정지하기 위한 처리로 들어간다. 소거 펄스 인가 동안 등의 메모리 셀에 고부하가 걸린 상태에서 정지하는 것은 바람직하지 못하기 때문에 또한 용이하게 재개할 수 있는 포인트에서 정지해 두고자 하기 때문에, 서스펜드 요구 신호(13)가 입력된 후에 정지 가능한 곳까지 진행한 후, 소거 시퀀스는 일시 정지한다. 이 일시 정지 처리가 완료된 시점에서 플래쉬 메모리는 소거 중인 블럭 이외의 판독이 가능해져, 인터페이스 회로(3)에 대해 서스펜드 접수 신호(14)를 출력한다.
인터페이스 회로(3)는 서스펜드 접수 신호(14)가 활성화되어 메모리 판독이 가능한 상태로 된 것을 수취하여, CPU/BIU(4)로의 버스 액세스를 정지시키고 있다. CPU 홀드 신호(15)를 해제하여, CPU/BIU(4)의 동작을 개방한다. 홀드가 해제된 CPU/BIU(4)는 인터럽트 요구에 따른 인터럽트 루틴을 처리할 수 있게 된다.
인터럽트 처리 종료 후, 소거를 재개시키기 위해서는 소프트웨어에 의해서 서스펜드 요구 레지스터(7)에 "0"을 기록한다. 그 서스펜드 요구 신호(13)는 비활성화로 되어, CPU 홀드 신호(15)도 CPU/BIU(4)를 재차 홀드 상태로 한다. 플래쉬 메모리(2)에서는 재개를 위한 처리를 실시한 후, 서스펜드 접수 신호(14)를 비활성화로 하여, 소거 처리를 정지하고 있었던 위치로부터 재개한다.
이하, 마이컴 프로그램이 일반적인 흐름을 도 3에 나타낸다. 메인 프로그램에는 이하의 ①∼④와 같은 흐름으로 기술한다.
① 서스펜드 허가 레지스터(8)에 "1"을 기록하여(단계 ST1), 서스펜드 허가 상태로 설정,
② 자동 소거 실행 커맨드 발행(20h, D0h 연속 기록)(단계 ST2) →자동 소거 개시,
③ 서스펜드 요구 레지스터(7)에 "0"을 기록(단계 ST3) →정지 중인 자동 소거 재개,
④ 서스펜드 요구 레지스터(7)의 값이 "0"인지 여부 판정(단계 ST4),
·"0"인 경우, 종료,
·"1"인 경우, 재차 ③으로 되돌아간다.
상기 프로그램에 의해 자동 소거를 실행하면, 먼저 ②를 실행한 후에 플래쉬 메모리(2)는 자동 소거 동작에 들어가고, CPU/BIU(4)는 CPU 홀드 신호(15)에 의해 버스 액세스 금지 상태로 된다. 이 동안에 인터럽트가 발생하지 않은 경우는, 자동 소거는 최종 단계까지 진행하여, 소거(Erase) 처리 종료(단계 ST21)된다. 그 후, ③, ④는 실행되지만 플래쉬 메모리의 자동 소거 자체가 종료되어 있기 때문에, 그대로 종료된다. 인터럽트(Interrupt)(단계 ST19)가 발생한 경우는, 서스펜드 요구 레지스터(7)에 자동적으로 "1"이 설정되고, 플래쉬 메모리(2)가 이 요구를 접수하면 CPU/BIU(4)의 버스 액세스는 개방되어, 프로그램은 인터럽트 루틴 처리(단계 ST20)로 점프하여 인터럽트 처리를 실행한다. 인터럽트 루틴 처리(단계 ST20)가 종료되면, 프로그램은 다시 메인 루틴으로 되돌아가 ③을 실행하여, 플래쉬 메모리의 자동 소거 처리가 재개된다.
③에 의해서 플래쉬 메모리의 자동 소거 처리가 재개되면, CPU/BIU(4)는 다시 버스 액세스 금지 상태로 되어, ② 이후와 마찬가지로 이 동안에 인터럽트가 발생하지 않는 경우는 자동 소거가 최종 단계까지 진행하여, 소거 처리 종료(단계 ST24)된다. 그 후, ④는 실행되지만 플래쉬 메모리의 자동 소거 자체가 종료되어 있기 때문에, 그대로 종료된다. 다시 인터럽트(단계 ST22)가 발생한 경우는, 전술한 바와 마찬가지로 서스펜드 요구 레지스터(7)에 자동적으로 "1"이 설정되고, 플래쉬 메모리(2)가 이 요구를 접수하면 CPU/BIU(4)의 버스 액세스는 개방되어, 프로그램은 인터럽트 루틴 처리(단계 ST23)로 점프하여, 인터럽트 처리를 실행한다. 인터럽트 루틴 처리(단계 ST23)가 종료되면, 프로그램은 다시 메인 루틴으로 되돌아가 ④를 실행한다. 여기서는, 인터럽트가 발생하여 SUSPENDREQ="1"로 되어 있기 때문에, ③으로 되돌아가 플래쉬 메모리의 자동 소거 처리가 재개된다. 그 후는 플래쉬 메모리의 자동 소거 처리가 완료될 때까지 ③, ④가 반복된다.
상기 동작과 같이 서스펜드 요구 레지스터(7)를 갖게 함으로써 자동 소거의 일시 정지·재개의 동작이 용이하게 된다.
또한 서스펜드 허가 레지스터를 금지 상태로 설정함으로써, 상기의 자동 소거 중의 인터럽트에 의한 일시 정지·재개를 금지할 수 있기 때문에, 소거의 실행을 최우선시키고자 한 경우에도 대응할 수 있어, 사용자에 있어 사용하기가 편리하게 된다.
또한 서스펜드 요구 비트로의 기록이 무효로 되기 때문에, CPU의 폭주 등의 오동작에 의한 자동 소거의 정지라는 사태를 회피하기 용이해진다.
이하에, 플래쉬 메모리(2)의 상세한 동작에 대하여 설명한다.
(자동 일괄 소거)
다음에, 본 발명의 실시예 1에 따른 비휘발성 반도체 메모리의 자동 소거 시퀀서(208)의 구성에 대해 도 11을 이용하여 설명한다. 도면에 있어서, (254)는 자동 소거 시퀀스 제어 회로, (255)는 서스펜드 요구 접수 회로, (256)은 소거전 기록 제어 회로, (257)은 소거/소거 검증 제어 회로, (258)은 소거전 기록 신호 생성 회로, (259)는 어드레스 증분기, (260)은 소거 검증 회로이다.
자동 소거 시퀀스 제어 회로(254)는 커맨드 포트(206), 클럭 생성 회로(211)로부터의 제어 신호를 수신하여(도 6 참조), 본 발명의 실시예 1에 따른 비휘발성 반도체 메모리가 자동 소거 모드로 들어가면, 자동 소거 시퀀스 제어 회로(254), 소거전 기록 제어 회로(256), 소거/소거 검증 제어 회로(257)를 제어한다.
자동 소거는 어드레스 판독, 소거전 기록, 소거/소거 검증의 일련의 동작을 메모리 블럭(204) 중의 분할된 메모리 블럭 단위로 실행한다.
소거전 기록 제어 회로(256)는 자동 소거 시퀀스 제어 회로(254)로부터의 신호를 수신하여, 메모리 블럭에 대해 소거전 기록 처리를 한다. 소거전 기록 제어 회로(256)는 어드레스 증분기(259)를 사용하여, 소거 대상으로 되어 있는 메모리 블럭의 어드레스를 최하위 어드레스로부터 최상위 어드레스까지 증가시키면서, 소거전 기록 신호 생성 회로(258)로부터 소거전 기록 신호를 발생시켜 처리를 실행한다.
어드레스 증분기(259)는 소거 대상으로 되어 있는 메모리 블럭의 어드레스를 최하위 어드레스로부터 최상위 어드레스까지 증가시킨다.
소거/소거 검증 제어 회로(257)는 자동 소거 시퀀스 제어 회로(254)로부터의 신호를 수신하여, 소거와 소거 검증 처리를 한다.
소거 검증 회로(260)는 소거 동작 후, 메모리의 데이터를 판독 기대값과 비교 처리하여, 소거되어 있는지 여부를 확인한다. 메모리의 데이터 판독 처리는 어드레스 증분기(259)를 사용하여, 소거 대상으로 되어 있는 메모리 블럭의 어드레스를 최하위 어드레스로부터 최상위 어드레스까지 증가하여 순차적으로 실행한다.
서스펜드 요구 접수 회로(255)는 서스펜드 제어 회로(305)를 거쳐서 송신되어오는 외부 인터럽트를 접수한다. 서스펜드 요구는 소거전 기록 제어 회로(256) 또는 소거/소거 검증 제어 회로(257)에 송신되고, 서스펜드 요구가 있었던 시점에서의 자동 소거의 처리 내용에 따라 자동 소거 시퀀스를 도중에서 중지한다.
(서스펜드 제어 회로 및 서스펜드 위치 설정 레지스터)
도 16에 서스펜드 제어 회로(305)의 구성을 나타낸다. 도면에 있어서, (205)는 어드레스/데이터/제어 신호 디래치 입력 회로, (255)는 서스펜드 요구 접수 회로, (306)은 서스펜드 요구 처리 회로, (307)은 서스펜드 위치 설정 레지스터이다. 서스펜드 제어 회로(305)는 서스펜드 요구 처리 회로(306)와 서스펜드 위치 설정 레지스터(307)로 이루어진다.
서스펜드 요구 처리 회로(306)는 어드레스/데이터/제어 신호 디래치 입력 회로(205)를 통해서 외부로부터 요구가 있는 서스펜드 요구 신호(SUSPENDREQ) 신호가 H 레벨로 되면 요구를 접수하여, 자동 소거 시퀀서(208) 중의 서스펜드 요구 접수 회로(255)에 대해 처리의 중단을 요구한다.
서스펜드 요구 접수 회로(255)는 자동 소거 처리의 중단이 시작되면 서스펜드 요구 처리 회로(306)에 대해 중단 중인 것을 알리는 신호를 출력한다. 서스펜드 요구 처리 회로(306)는 어드레스/데이터/제어 신호 디래치 입력 회로(205)를 통해서 외부에 처리의 중단을 알리는 신호(SUSPENDL)를 H 레벨로 하여 출력한다.
서스펜드 요구의 해제는 서스펜드 요구 신호(SUSPENDREQ)가 L 레벨로 되면, 서스펜드 요구 처리 회로(306)를 통해서 서스펜드 요구 접수 회로(255)에 대해 서스펜드 요구의 해제가 요구된다.
서스펜드 요구 접수 회로(255)는 자동 소거 처리의 재개가 시작되면 서스펜드 요구 처리 회로(306)에 대해 처리의 재개를 알리는 신호를 출력한다. 서스펜드 요구 처리 회로(306)는 어드레스/데이터/제어 신호 디래치 입력 회로(205)를 통해서 외부에 처리의 중단을 알리는 신호(SUSPENDL)를 L 레벨로 하여 출력한다.
또한, 서스펜드 위치 설정 레지스터(307)는 자동 소거 처리의 중단 장소를 임의로 설정할 수 있는 2 비트의 레지스터이다. 서스펜드 위치 설정 레지스터(307)로의 데이터의 세트는 어드레스/데이터/제어 신호 디래치 입력 회로(205)를 통해서 외부로부터 임의의 데이터를 설정할 수 있다.
서스펜드 위치 설정 레지스터(307)의 설정 내용을 나타내는 도면을 도 17에 나타낸다. b0은 자동 소거 시퀀스 중의 소거전 기록 종료 후에 서스펜드를 실행하는 비트이다. b0=1에 의해서, 소거전 기록 종료 후에 서스펜드가 실행된다. b0=0에서는, 서스펜드의 처리는 행하여지지 않는다.
b1은 자동 소거 시퀀스 중의 소거 펄스 인가 후에 서스펜드를 실행하는 비트이다. b1=1에 의해서, 소거 펄스 인가 후에 서스펜드가 실행된다. b1=0에서는, 서스펜드의 처리는 행하여지지 않는다.
b2는 자동 기록 시퀀스 중의 기록 펄스 인가 후에 서스펜드를 실행하는 비트이다. b2=1에 의해서, 기록 펄스 인가 후에 서스펜드가 실행된다. b2=0에서는, 서스펜드 처리는 실행되지 않는다.
서스펜드 위치 설정 레지스터(307)에 임의의 서스펜드 위치를 설정하면, 어드레스/데이터/제어 신호 디래치 입력 회로(205)를 통해서 서스펜드 요구 신호(SUSPENDREQ)가 H 레벨로 되지 않더라도, 레지스터의 설정 내용에 따라서 자동 소거의 서스펜드를 실행할 수 있다.
이와 같이, 플래쉬 메모리의 자동 기록 및 자동 소거 시퀀스의 지정한 위치에서 중지하는 것을 가능하게 함으로써, 종래 확인할 수가 없었던 자동 소거 시퀀스 동안에서의 메모리 셀의 Vth의 천이를 확인할 수 있게 된다고 하는 소거의 불량 해석의 용이화를 실현한다.
(자동 일괄 소거 흐름 1)
다음에, 본 발명의 실시예 1에 따른 비휘발성 반도체 메모리의 자동 일괄 소거의 동작을 도 12의 흐름도를 이용하여 설명한다. 서스펜드 요구가 없는 경우를 설명한다.
이 경우의 자동 일괄 소거에서는 블럭 1, 블럭 2, 블럭 3, 블럭 4의 모든 블럭을 대상으로 한다.
먼저, 자동 일괄 소거는, 데이터 D(15:0) 버스로부터 입력되는 제 1 커맨드 20H에 의해 셋업 모드로 들어가고(단계 ST261), 다음 사이클에서 검증 커맨드 또는 제 2 커맨드 20H에 의해 자동 일괄 소거 모드로 들어간다(단계 ST262).
소거전 기록의 페이즈(단계 ST264)에서는, 자동 소거 시퀀서(208)가, 소거 대상으로 되고 있는 메모리 블럭에 대하여 데이터 "1"의 기록 동작을 한다. 소거전 기록의 페이즈(단계 ST264)에서는, 어드레스 증분기(259)를 사용하여 순차적으로 어드레스를 증가시키면서 워드 단위로 기록해 간다. 소거전 기록의 페이즈(단계 ST264) 종료 후, 소거 펄스 인가의 페이즈(단계 ST265)로 이행한다.
소거 펄스 인가의 페이즈(단계 ST265)에서는, 소거 펄스를 소거 대상으로 되어 있는 메모리 블럭에만 인가하여 소거 동작을 한다. 소거 펄스 인가의 페이즈 종료 후, 소거 검증의 페이즈(단계 ST266)로 이행한다.
소거 검증의 페이즈(단계 ST266)에서는, 소거 대상으로 되어 있는 메모리 블럭에 대하여, 최하위 어드레스로부터 최상위 어드레스까지 어드레스를 증가시키면서 소거 검증 처리를 한다. 소거 검증의 페이즈(단계 ST266)에서 검증 장애가 발생한 경우, 재소거를 하기 위해서 재소거전 처리의 페이즈(단계 ST267)로 이행한다. 재소거전 처리의 페이즈(단계 ST267)에서는, 재소거전 처리 회수의 카운터 값을 1만큼 증가시키고, 처리를 소거 펄스 인가의 페이즈(단계 ST265)로 재차 이행시킨다.
소거 펄스 인가의 페이즈(단계 ST265)에서는 재차 소거 동작을 한다. 소거 펄스 인가의 페이즈(단계 ST265) 종료 후, 소거 검증의 페이즈(단계 ST266)로 이행한다. 소거 검증의 페이즈(단계 ST266)에서는, 전회 소거 검증에 실패한 어드레스부터 다시 검증을 개시한다. 소거 펄스 인가의 페이즈(단계 ST265), 소거 검증의 페이즈(단계 ST266), 재소거전 처리의 페이즈(단계 ST267)에서는, 소거 검증의 페이즈(단계 ST266)에서 최종 어드레스까지 검증이 이루어지거나, 재소거전 처리의 페이스(단계 ST267)에서 재소거전 처리 회수의 카운터 값이 최대값으로 될 때까지 루프 처리를 계속할 수 있다. 재소거전 처리 페이즈(단계 ST267)에서, 재소거전 처리 회수의 카운터 값이 최대값에 도달하면, 소거 에러 종료(단계 ST270)로서 처리가 종료된다.
또한, 검증 처리에서 패스하면, 최종 블럭 체킹의 페이즈(단계 ST268)로 이행한다. 최종 블럭 체킹의 페이즈(단계 ST268)에서는, 아직 소거할 블럭이 존재하는 경우에는, 재차 소거전 기록의 페이즈(단계 ST264)로 이행하여, 다음 메모리 블럭의 소거전 기록을 실행한다. 또한, 최종 블럭인 것이 확인되면, 정상 종료(단계 ST269)에서 자동 일괄 소거의 처리를 종료한다.
(자동 일괄 소거 흐름 2)
다음에, 본 발명의 실시예 1에 따른 비휘발성 반도체 메모리의 자동 일괄 소거의 동작을 도 15의 흐름도를 이용하여 설명한다. 서스펜드 요구가 있는 경우를 설명한다.
이 경우의 자동 일괄 소거에서는, 블럭 1, 블럭 2, 블럭 3, 블럭 4의 모든 블럭을 대상으로 한다.
먼저 자동 일괄 소거는, 데이터 D(15:0) 버스로부터 입력되는 제 1 커맨드 20H에 의해 셋업 모드로 들어가고(단계 ST290), 다음 사이클에서 검증 커맨드 또는 제 2 커맨드 D0H에 의해 자동 일괄 소거 모드로 들어간다(단계 ST291).
다음에, 소거전 기록의 페이즈(단계 ST292)에서는, 자동 소거 시퀀서(208)가 소거 대상으로 되어 있는 메모리 블럭에 대하여, 데이터 "1"을 기록하는 동작을 한다. 소거전 기록 페이즈(단계 ST292)에서는, 어드레스 증분기를 사용하여, 순차적으로 어드레스를 증가시키면서 워드 단위로 기록해간다. 소거전 기록 페이즈(단계 ST292) 종료 후, 서스펜드 요구가 없는 경우에는, 소거 펄스 인가의 페이즈(단계 ST295)로 이행한다.
제 1 커맨드 20H의 접수(단계 ST290)부터 소거전 기록의 페이즈(단계 ST292) 까지, 도중에서 서스펜드 요구가 있었던 경우 또는 서스펜드 위치 설정 레지스터의 b0에 1이 설정된 경우에는, 소거전 기록의 페이즈(단계 ST292) 종료까지 자동 소거 처리의 중단은 행하여지지 않는다. 소거전 기록의 페이즈(단계 ST292) 종료 후, 서스펜드 요구 접수의 페이즈(단계 ST293)에서는, 요구가 있는 경우에는 자동 소거 중단(단계 ST294)을 실행하여 메모리 데이터 판독이 가능해진다. 요구가 없는 경우에는, 다음 소거 펄스 인가의 페이즈(단계 ST295)로 진행한다. 또한, 서스펜드 요구 접수 후 복귀하는 경우에도, 다음 소거 펄스 인가의 페이즈(단계 ST295)로 진행한다.
소거 펄스 인가의 페이즈(단계 ST295)에서는, 소거 펄스를 소거 대상으로 되어 있는 메모리 블럭에만 인가하여 소거 동작을 한다. 소거 펄스 인가의 페이즈(단계 ST295) 종료 후, 서스펜드 요구가 없는 경우에는, 소거 검증의 페이즈(단계 ST298)로 이행한다.
소거 펄스 인가의 페이즈(단계 ST295) 중, 도중에서 서스펜드 요구가 있었던 경우에는, 소거 펄스 인가의 페이즈(단계 ST295) 종료까지 자동 소거 처리의 중단은 행하여지지 않는다. 소거 펄스 인가(단계 ST295) 종료 후, 서스펜드 요구 접수의 페이즈(단계 ST296)에서는, 요구가 있는 경우에는 자동 소거 중단(단계 ST297)을 실행하여 메모리 데이터 판독이 가능해진다. 요구가 없는 경우에는, 다음 소거 검증의 페이즈(단계 ST298)로 진행한다. 또한, 서스펜드 요구 접수 후 복귀하는 경우에도 다음 소거 검증의 페이즈(단계 ST298)로 진행한다.
소거 검증의 페이즈(단계 ST298)에서는, 소거 대상으로 되어 있는 메모리 블럭에 대하여, 최하위 어드레스로부터 최상위 어드레스까지 어드레스를 증가시키면서 소거 검증 처리를 한다. 소거 검증의 페이즈(단계 ST298)에서 검증 장애가 발생한 경우, 재소거를 하기 위해서 재소거전 처리의 페이즈(단계 ST299)로 이행한다. 재소거전 처리의 페이즈(단계 ST299)에서는, 재소거전 처리 회수의 카운터 값을 1만큼 증가시키고, 처리를 소거 펄스 인가의 페이즈(단계 ST295)로 재차 이행시킨다.
소거 펄스 인가의 페이즈(단계 ST295)에서는, 다시 소거 동작을 한다. 소거 펄스 인가의 페이즈(단계 ST295) 종료 후, 서스펜드 요구가 없는 경우에는, 소거 검증의 페이즈(단계 ST298)로 이행한다.
소거 검증(단계 ST298), 소거 펄스 인가의 페이즈(단계 ST295) 중, 도중에서 서스펜드 요구가 있었던 경우 또는 서스펜드 위치 설정 레지스터의 b1에 1이 설정된 경우에는, 소거 펄스 인가의 페이즈(단계 ST295) 종료까지 자동 소거 처리의 중단은 행하여지지 않는다. 소거 펄스 인가(단계 ST295) 종료 후, 서스펜드 요구 접수 페이즈(단계 ST296)에서는, 요구가 있는 경우에는 자동 소거 중단(단계 ST297)을 실행하여 메모리 데이터 판독이 가능해진다. 요구가 없는 경우에는, 다음 소거 검증의 페이즈(단계 ST298)로 진행한다. 또한, 서스펜드 요구 접수 후 복귀하는 경우에도 다음 소거 검증의 페이즈(단계 ST298)로 진행한다.
소거 검증의 페이즈(단계 ST298)에서는, 전회(前回) 소거 검증에 실패한 어드레스부터 다시 검증을 개시한다. 소거 펄스 인가의 페이즈(단계 ST295), 소거 검증의 페이즈(단계 ST298), 재소거전 처리 페이즈(단계 ST299)에서는, 소거 검증의 페이즈(단계 ST298)에서 최종 어드레스까지 검증이 행하여지거나, 재소거전 처리의 페이즈(단계 ST299)에서 재소거전 처리 회수의 카운터 값이 최대값으로 될 때까지 루프 처리를 계속할 수 있다. 재소거전 처리의 페이즈(단계 ST299)에서, 재소거전 처리 회수의 카운터 값이 최대값에 도달하면, 소거 에러 종료(단계 ST300)로서 처리가 종료된다.
또한, 검증 처리에서 패스하면, 최종 블럭 체킹의 페이즈(단계 ST301)로 이행한다. 최종 블럭 체킹의 페이즈(단계 ST301)에서는, 아직 소거할 블럭이 존재하는 경우에는, 재차 소거전 기록의 페이즈(단계 ST292)로 이행하여, 다음 메모리 블럭의 소거전 기록을 실행한다. 또한, 최종 블럭인 것이 확인되면, 정상 종료(단계 ST302)에서, 자동 일괄 소거의 처리를 종료한다.
소거 검증 페이즈(단계 ST298), 재차 소거전 기록의 페이즈(단계 ST292) 중, 도중에서 서스펜드 요구가 있었던 경우 또는 서스펜드 위치 설정 레지스터의 b0에 1이 설정된 경우에는, 소거전 기록의 페이즈(단계 ST292) 종료까지 자동 소거 처리의 중단은 행하여지지 않는다. 소거전 기록(단계 ST292) 종료 후, 서스펜드 요구 접수의 페이즈(단계 ST293)에서는, 요구가 있는 경우에는 자동 소거 중단(단계 ST294)을 실행하여 메모리 데이터 판독이 가능해진다. 요구가 없는 경우에는, 다음 소거 펄스 인가의 페이즈(단계 ST295)로 진행한다. 또한, 서스펜드 요구 접수 후 복귀하는 경우에도 다음 소거 펄스 인가의 페이즈(단계 ST295)로 진행한다.
(자동 블럭 소거 흐름 1)
다음에, 본 발명의 실시예 1에 따른 비휘발성 반도체 메모리의 블럭 0, 블럭 1, 블럭 2, 블럭 3, 블럭 4 중 어느 하나의 블럭을 대상으로 하는 자동 블럭 소거의 동작을 도 13의 흐름도를 이용하여 설명한다. 서스펜드 요구가 없는 경우를 설명한다.
이 경우의 자동 블럭 소거에서는, 블럭 1, 블럭 2, 블럭 3, 블럭 4의 모든 블럭을 대상으로 한다.
먼저, 자동 블럭 소거는, 데이터 D(15:0) 버스로부터 입력되는 제 1 커맨드 20H에 의해 셋업 모드로 들어가고(단계 ST271), 다음 사이클에서 검증 커맨드 또는 제 2 커맨드 D0H에 의해 자동 일괄 소거 모드로 들어간다(단계 ST272). 제 2 커맨드 D0H의 입력 시(단계 ST272)에는, 소거의 대상으로 되는 메모리 블럭의 블럭 어드레스를 읽어들인다.
소거전 기록의 페이즈(단계 ST274)에서는, 자동 소거 시퀀서(208)가, 소거 대상으로 되어 있는 메모리 블럭에 대하여 데이터 "1"을 기록하는 동작을 한다. 소거전 기록(단계 ST274)에서는, 어드레스 증분기를 사용하여, 순차적으로 어드레스를 증가시키면서 워드 단위로 기록해간다. 소거전 기록의 페이즈(단계 ST274)의 종료 후, 소거 펄스 인가의 페이즈(단계 ST275)로 이행한다.
소거 펄스 인가의 페이즈(단계 ST275)에서는, 소거 펄스를 소거 대상으로 되어 있는 메모리 블럭에 인가하여 소거 동작을 한다. 소거 펄스 인가 페이즈(단계 ST275) 종료 후, 소거 검증의 페이즈(단계 ST276)로 이행한다.
소거 검증의 페이즈(단계 ST276)에서는, 소거 대상으로 되어 있는 메모리 블럭에 대하여, 최하위 어드레스로부터 최상위 어드레스까지 어드레스를 증가시키면서 소거 검증 처리를 한다. 소거 검증의 페이즈(단계 ST276)에서 검증 장애가 발생한 경우, 재소거를 하기 위해서 재소거전 처리 페이즈(단계 ST277)로 이행한다. 재소거전 처리의 페이즈(단계 ST277)에서는, 재소거전 처리 회수의 카운터 값을 1만큼 증가시켜고, 처리를 소거 펄스 인가 페이즈(단계 ST275)로 재차 이행시킨다.
소거 펄스 인가 페이즈(단계 ST275)에서는, 다시 소거 동작을 한다. 소거 펄스 인가 페이즈(단계 ST275) 종료 후, 소거 검증의 페이즈(단계 ST276)로 이행한다. 소거 검증의 페이즈(단계 ST276)에서는, 전회 소거 검증에 실패한 어드레스부터 다시 검증을 개시한다. 소거 펄스 인가의 페이즈(단계 ST275), 소거 검증의 페이즈(단계 ST276), 재소거전 처리 페이즈(단계 ST277)에서는, 소거 검증 페이즈(단계 ST276)에서 최종 어드레스까지 검증이 행하여지거나, 재소거전 처리 페이즈(단계 ST277)에서 재소거전 처리 회수의 카운터 값이 최대값으로 될 때까지 루프 처리를 계속할 수 있다. 재소거전 처리 페이즈(단계 ST277)에서, 재소거전 처리 회수의 카운터 값이 최대값에 도달하면, 소거 에러 종료(단계 ST279)에서 처리가 종료된다.
또한, 검증 처리에서 패스하면, 정상 종료(단계 ST278)에서, 자동 블럭 소거 1의 처리를 종료한다.
(자동 블럭 소거 흐름 2)
다음에, 본 발명의 실시예 1에 따른 비휘발성 반도체 메모리의 블럭 0, 블럭 1, 블럭 2, 블럭 3, 블럭 4 중 어느 하나의 블럭을 대상으로 하는 자동 블럭 소거의 동작을 도 14의 흐름도를 이용하여 설명한다. 서스펜드 요구가 있는 경우를 설명한다.
먼저, 자동 블럭 소거는, 데이터 D(15:0) 버스로부터 입력되는 제 1 커맨드 20H에 의해 셋업 모드로 들어가고(단계 ST280), 다음 사이클에서 검증 커맨드 또는 제 2 커맨드 D0H에 의해 자동 일괄 소거 모드로 들어간다(단계 ST281). 제 2 커맨드 D0H의 입력(단계 ST281) 시는, 소거의 대상으로 되는 메모리 블럭의 블럭 어드레스를 읽어들인다.
다음에, 소거전 기록의 페이즈(단계 ST282)에서는, 자동 소거 시퀀서(208)가, 소거 대상으로 되어 있는 메모리 블럭에 대하여 데이터 "1"을 기록하는 동작을 한다. 소거전 기록(단계 ST282)에서는, 어드레스 증분기를 사용하여, 순차적으로 어드레스를 증가시키면서 워드 단위로 기록해간다. 소거전 기록의 페이즈(단계 ST282) 종료 후, 서스펜드 요구가 없는 경우에는, 소거 펄스 인가의 페이즈(단계 ST283)로 이행한다.
제 1 커맨드 접수의 페이즈(단계 ST280)부터 소거전 기록의 페이즈(단계 ST282)까지, 도중에서 서스펜드 요구가 있었던 경우 또는 서스펜드 위치 설정 레지스터의 b0에 1이 설정된 경우에는, 소거전 기록의 페이즈(단계 ST282) 종료까지 자동 소거 처리의 중단은 행하여지지 않는다. 소거전 기록의 페이즈(단계 ST282) 종료 후, 서스펜드 요구 접수의 페이즈(단계 ST263)에서는, 요구가 있는 경우에는, 자동 소거 중단(단계 ST273)을 실행하여 메모리 데이터 판독이 가능해진다. 요구가 없는 경우에는, 다음 소거 펄스 인가의 페이즈(단계 ST283)로 진행한다. 또한, 서스펜드 요구 접수 후 복귀하는 경우에도, 다음 소거 펄스 인가의 페이즈(단계 ST283)로 진행한다.
소거 펄스 인가의 페이즈(단계 ST283)에서는, 소거 펄스를 소거 대상으로 되어 있는 메모리 블럭에만 인가하여 소거 동작을 한다. 소거 펄스 인가의 페이즈(단계 ST283) 종료 후, 서스펜드 요구가 없는 경우에는, 소거 검증 페이즈(단계 ST284)로 이행한다.
소거 펄스 인가의 페이즈(단계 ST283) 중, 도중에서 서스펜드 요구가 있었던 경우 또는 서스펜드 위치 설정 레지스터의 b1에 1이 설정된 경우에는, 소거 펄스 인가의 페이즈(단계 ST283) 종료까지 자동 소거 처리의 중단은 행하여지지 않는다. 소거 펄스 인가(단계 ST283) 종료 후, 서스펜드 요구 접수의 페이즈(단계 ST288)에서는, 요구가 있는 경우에는, 자동 소거 중단(단계 ST289)을 실행하여 메모리 데이터 판독이 가능해진다. 요구가 없는 경우에는, 다음 소거 검증의 페이즈(단계 ST284)로 진행한다. 또한, 서스펜드 요구의 접수 후에 복귀하는 경우에도, 다음 소거 검증의 페이즈(단계 ST284)로 진행한다.
소거 검증의 페이즈(단계 ST284)에서는, 소거 대상으로 되어 있는 메모리 블럭에 대하여 최하위 어드레스로부터 최상위 어드레스까지 어드레스를 증가시키면서 소거 검증 처리를 한다. 소거 검증의 페이즈(단계 ST284)에서 검증 장애가 발생한 경우, 재소거를 하기 위해서 재소거전 처리의 페이즈(단계 ST285)로 이행한다. 재소거전 처리의 페이즈(단계 ST285)에서는, 재소거전 처리 회수의 카운터 값을 1만큼 증가시키고, 처리를 소거 펄스 인가의 페이즈(단계 ST283)로 재차 이행시킨다.
소거 펄스 인가의 페이즈(단계 ST283)에서는, 다시 소거 동작을 한다. 소거 펄스 인가의 페이즈(단계 ST283) 종료 후, 서스펜드 요구가 없는 경우에는, 소거 검증의 페이즈(단계 ST284)로 이행한다.
소거 검증(단계 ST284), 소거 펄스 인가의 페이즈(단계 ST283) 중, 도중에서 서스펜드 요구가 있었던 경우 또는 서스펜드 위치 설정 레지스터의 b1에 1이 설정된 경우에는, 소거 펄스 인가의 페이즈(단계 ST283) 종료 후까지 자동 소거 처리의 중단은 행하여지지 않는다. 소거 펄스 인가(단계 ST283) 종료 후, 서스펜드 요구 접수의 페이즈(단계 ST288)에서는, 요구가 있는 경우에는 자동 소거 중단(단계 ST289)을 실행하여 메모리 데이터 판독이 가능해진다. 요구가 없는 경우에는, 다음 소거 검증의 페이즈(단계 ST284)로 진행한다. 또한, 서스펜드 요구 접수 후 복귀하는 경우에도, 다음 소거 검증의 페이즈(단계 ST284)로 진행한다.
소거 검증의 페이즈(단계 ST284)에서는, 전회 소거 검증에 실패한 어드레스부터 다시 검증을 개시한다. 소거 펄스 인가의 페이즈(단계 ST283), 소거 검증의 페이즈(단계 ST284), 재소거전 처리 페이즈(단계 ST285)에서는, 소거 검증의 페이즈(단계 ST284)에서 최종 어드레스까지 검증이 행하여지거나, 재소거전 처리 페이즈(단계 ST285)에서 재소거전 처리 회수의 카운터 값이 최대값으로 될 때까지 루프 처리를 계속할 수 있다. 재소거전 처리 페이즈(단계 ST285)에서, 재소거전 처리 회수의 카운터 값이 최대값에 도달하면, 소거 에러 종료(단계 ST287)에서 처리가 종료된다.
또한, 검증 처리에서 패스하면, 정상 종료(단계 ST286)에서 자동 블럭 소거의 처리를 종료한다.
다음에, 본 발명의 비휘발성 반도체 메모리의 자동 기록 동작을 도 18의 흐름도를 이용하여 설명한다.
먼저 자동 기록은, 데이터 D(15:0) 버스로부터 입력되는 제 1 커맨드 40H에 의해 셋업 모드로 들어가고(단계 ST303), 다음 사이클에서 기록 데이터와 기록 어드레스를 취득하여 자동 기록 모드로 들어간다(단계 ST304).
기록 펄스 인가(단계 ST305)의 페이즈에서는, 취득한 기록 어드레스와 데이터에 따라서 기록 펄스를 인가한다.
펄스의 인가 후, 서스펜드 요구 접수의 페이즈(단계 ST306)에서는, 요구가 있는 경우에는, 자동 기록 중단(단계 ST307)을 실행하여 메모리 데이터 판독이 가능해진다. 요구가 없는 경우에는, 다음 기록 검증의 페이즈(단계 ST308)로 진행한다.
기록 검증(단계 ST308)의 페이즈에서는, 기록 펄스 인가 후, 기록한 어드레스의 데이터를 판독하여, 외부로부터 취득한 데이터와 비교한다.
비교는 워드 단위로 실행한다. 1 비트라도 비교에서 불일치가 발생하면, 재차 기록을 하기 위해서 재기록전 처리(단계 ST309)로 처리를 이행시킨다. 비교에서 모든 데이터가 일치하면, 정상 종료(단계 ST310)로서 처리를 종료한다. 재기록전 처리(단계 ST309)의 페이즈에서는, 기록 회수를 카운트하는 카운터의 값을 +1 증가시킨다.
또한, 기록이 실패한 비트를 특정하여, 다시 기록 펄스를 인가하기 위해서, 처리를 기록 펄스 인가(단계 ST305)로 이행한다. 카운터 값이 최대 회수에 도달하면, 기록 에러(단계 ST311)로서 처리를 종료한다.
이상과 같이, 본 실시예 1에 따르면, 상기의 각 자동 소거의 흐름에 의해, 비휘발성 반도체 메모리의 자동 소거 중에 처리 중단 명령이 외부로부터 있는 경우에는 소거 처리를 중단하고, 메모리 데이터를 판독한 후에 비휘발성 반도체 메모리의 자동 소거를 재개할 수 있다.
또한, 비휘발성 반도체 메모리의 자동 블럭 소거 중에 처리 중단 명령이 외부로부터 있는 경우에는 소거 처리를 중단하고, 메모리 데이터를 판독한 후에 비휘발성 반도체 메모리의 자동 소거를 재개하는 것에 의해 자동 블럭 소거를 실행할 수 있다.
또한, 비휘발성 반도체 메모리의 자동 일괄 소거 중에 처리 중단 명령이 외부로부터 있는 경우에는 소거 처리를 중단하고, 메모리 데이터를 판독한 후에 비휘발성 반도체 메모리의 자동 소거를 재개하는 것에 의해 자동 일괄 소거를 실행할 수 있다.
이것에 의해, 비휘발성 반도체 메모리의 자동 일괄 소거, 자동 블럭 소거의 실행 중에 메모리 데이터를 판독할 필요가 발생한 경우라도, 소거 처리가 종료될 때까지 기다리거나 또는 리셋 입력한다는 필요가 없어진다고 하는 효과가 얻어진다.
또, 상술한 일본 특허 공개 평성 제 2-257496 호 공보와 대비하여 설명해 두면, 본 발명의 실시예 1에 따른 플래쉬 메모리 내장 마이크로 컴퓨터의 특징으로서는, 회로 간소화를 위해, VPP 전압 인가 시에는 중단 요구가 발생하더라도 소거 처리 등을 중단하지 않고, 미리 설정해 놓은 중단 가능 포인트에 도달할 때까지 처리를 계속한다. 즉, 소거 시퀀스에 미리 몇 개의 중단 가능 포인트를 설정해 두고, 거기에 도달하면 비로소 중단 가능하게 된다.
이렇게 함으로써, 중단 요구부터 실제로 중단될 때까지는, 종래 기술과 비교하면 시간이 필요하지만, 본 발명에 포함되는 어디에서 중단하여 있는지라는 정보를 판독하는 기능에 의해 정보를 판독할 때에, 중단한 포인트는 유한 수이기 때문에 수 비트의 데이터로서 아는 것이 가능해져, 불량 해석에 유효하게 된다. 또, 중단 포인트를 지정하는 경우도 마찬가지의 이유로 수 비트의 데이터를 기록함으로써 가능해진다.
이러한 본 발명에서의 중단 가능한 플래쉬 메모리의 특징은,
·플래쉬 메모리 외부로부터의 요구에 의해 소거 처리를 일시 중단·재개 가능,
·어디에서 중단되었는지를 아는 것이 가능,
·중단 위치를 레지스터에 기록하는 것에 의해 지정하는 것이 가능,
이라고 한 기능을 더불어 가지는 것이 가능한 시퀀서(제어 회로)를 구비하는 것에 있다. 이것에 의해, 사용자의 사용이 향상됨과 동시에, 해석성도 향상하고 있다.
이상 본 발명자에 의해서 이루어진 발명을 상기 실시예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시예에 한정되는 것이 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
이상과 같이, 본 발명에 의하면, 주변 기기 또는 외부로부터의 인터럽트 요구에 의해 비휘발성 메모리의 자동 소거 또는 자동 기록 처리가 일시 중단되고, 당해 메모리 내의 데이터를 CPU가 판독 가능해지도록 구성했기 때문에, 자동 기록, 자동 소거 중에 인터럽트가 발생하면, 당해 인터럽트 요구에 의해 자동 소거를 일시 중단하고, 인터럽트 처리를 접수한다는 작업을 자동으로 실행할 수 있어, 이것에 의해, 비휘발성 메모리의 자동 소거를 실행 중에 메모리 데이터를 판독할 필요가 발생한 경우라도, 소거 처리가 종료될 때까지 기다리거나 또는 리셋 입력한다는 필요가 없어지는 효과가 있다.
본 발명에 의하면, 자동 소거 또는 자동 기록의 중단·재개를 제어하기 위한 레지스터를 구비하도록 구성했기 때문에, 비휘발성 메모리의 당해 처리의 중단·재개를 용이하게 실행할 수 있다는 효과가 있다.
본 발명에 의하면, 소거 및 자동 기록의 중단·재개의 기능을 유효하게 할지 무효로 할지를 전환하는 기능을 갖는 레지스터를 구비하도록 구성했기 때문에, 종래와 같이 자동 기록, 소거를 우선시키는 것도 가능하다는 효과가 있다.
본 발명에 의하면, 비휘발성 메모리는, 기록 및 소거 처리를 처리 시퀀스 중의 각 페이즈 후에 중단하는 인터럽트 수단과, 기록 및 소거 처리를 중단하는 제 1 인터럽트에서는 처리 시퀀스 중의 제 1 인터럽트가 들어간 타이밍에 따른 페이즈에서 처리를 중단하고, 기록 및 소거 처리를 중단하는 제 2 인터럽트에서는 처리 시퀀스 중의 특정한 페이즈에서 처리를 중단하는 수단을 구비하며, 처리의 중단 중에는 비휘발성 메모리의 내용을 판독할 수 있도록 구성했기 때문에, 자동 소거의 일시 정지·재개의 동작이 용이하게 된다고 하는 효과가 있다.
본 발명에 의하면, 비휘발성 메모리는, 기록 및 소거 처리를 처리 시퀀스 중의 각 페이즈 후에 중단하는 인터럽트 수단과, 기록 및 소거 처리를 중단하는 제 1 인터럽트에서는 처리 시퀀스 중의 제 1 인터럽트가 들어간 타이밍에 따른 페이즈에서 처리를 중단하고, 기록 및 소거 처리를 중단하는 제 2 인터럽트에서는 처리 시퀀스 중의 특정한 페이즈에서 처리를 중단하는 수단을 구비하며, 소거 처리를 중단하는 제 1, 제 2 인터럽트의 유무에 의해 1 블럭 메모리를 소거하는 소거 방식을 구비하도록 구성했기 때문에, 당해 인터럽트가 있었던 시점에서 소거 처리를 중단하고 메모리 데이터를 판독한 후, 비휘발성 메모리의 자동 소거를 재개하는 것에 의해 자동 블럭 소거를 실행할 수 있다는 효과가 있다.
본 발명에 의하면, 비휘발성 메모리는, 기록 및 소거 처리를 처리 시퀀스 중의 각 페이즈 후에 중단하는 인터럽트 수단과, 기록 및 소거 처리를 중단하는 제 1 인터럽트에서는 처리 시퀀스 중의 제 1 인터럽트가 들어간 타이밍에 따른 페이즈에서 처리를 중단하고, 기록 및 소거 처리를 중단하는 제 2 인터럽트에서는 처리 시퀀스 중의 특정한 페이즈에서 처리를 중단하는 수단을 구비하며, 소거 처리를 중단하는 제 1, 제 2 인터럽트의 유무에 의해 블럭 메모리 어레이 모두를 소거하는 소거 방식을 구비하도록 구성했기 때문에, 당해 인터럽트가 있었던 시점에서 소거 처리를 중단하고 메모리 데이터를 판독한 후, 비휘발성 메모리의 자동 소거를 재개하는 것에 의해 자동 일괄 소거를 실행할 수 있다는 효과가 있다.
본 발명에 의하면, 비휘발성 메모리는, 외부로부터의 입력에 의해 중단·재개가 가능한 자동 소거 및 자동 기록 수단과, 당해 자동 소거 또는 자동 기록 시퀀스의 중단 시에, 그 시퀀스 중의 어디에서 중단하고 있는지라는 정보를 수 비트의 데이터로서 출력하는 회로를 구비하며, CPU 또는 테스터로부터 그 정보를 판독하는 것이 가능하도록 구성했기 때문에, 기록 및 소거 시퀀스의 지정한 위치에서 중단하는 것을 가능하게 하여, 기록 및 소거의 불량 해석의 용이화를 실현하는 효과가 있다.
본 발명에 의하면, 비휘발성 메모리는, 외부로부터의 입력에 의해 중단·재개가 가능한 자동 소거 및 자동 기록 수단과, 당해 자동 소거 또는 자동 기록 시퀀스의 실행 전에 미리 그 시퀀스 중의 어디에서 중단하는지라는 정보를 수 비트의 데이터로서 CPU 또는 테스터로부터 지정할 수 있는 회로를 구비하도록 구성했기 때문에, 기록 및 소거 시퀀스의 지정한 위치에서 중단하는 것을 가능하게 하여, 기록 및 소거의 불량 해석의 용이화를 실현하는 효과가 있다.
도 1은 본 발명의 실시예 1에 따른 플래쉬 메모리 내장 마이크로 컴퓨터의 구성을 나타내는 블럭도,
도 2는 서스펜드 제어 레지스터의 구성을 도시하는 도면,
도 3은 본 발명의 실시예 1에 따른 마이크로 컴퓨터의 프로그램 흐름 예를 나타낸 도면,
도 4는 본 발명의 실시예 1에 따른 비휘발성 반도체 메모리의 기능 블럭을 나타내는 도면,
도 5는 본 발명의 실시예 1에 따른 비휘발성 반도체 메모리의 동작 모드 일람(一覽)을 나타내는 도면,
도 6은 도 4에 나타내는 기능 블럭 중의 마이크로 시퀀서의 기능 블럭을 도시하는 도면,
도 7은 도 4에 나타내는 기능 블럭 중의 차지 펌프의 기능 블럭을 도시하는 도면,
도 8은 도 4에 나타내는 기능 블럭 중의 메모리 디코더·메모리 블럭의 구성도,
도 9는 도 4에 나타내는 기능 블럭 중의 메모리 블럭의 어드레스 공간을 도시하는 도면,
도 10은 도 8에 나타내는 블럭 중의 X 디코더, Y 디코더, 메모리 셀 어레이, 센스 앰프/기록 회로를 추출하여 도시한 도면,
도 11은 자동 소거 시퀀서를 도시하는 도면,
도 12는 자동 일괄 소거 시퀀스를 나타내는 흐름도,
도 13은 자동 블럭 소거 시퀀스를 나타내는 흐름도,
도 14는 자동 소거 중단이 있는 자동 블럭 소거 시퀀스를 나타내는 흐름도,
도 15는 자동 소거 중단이 있는 경우의 자동 일괄 소거 시퀀스를 나타내는 흐름도,
도 16은 서스펜드 레지스터의 구성을 나타내는 도면,
도 17은 서스펜드 위치 설정 레지스터의 구성을 나타내는 도면,
도 18은 자동 기록 시퀀스를 나타내는 흐름도.
도면의 주요 부분에 대한 부호의 설명
1 : 플래쉬 메모리 내장 마이컴(마이크로 컴퓨터)
2 : 플래쉬 메모리(비휘발성 메모리)
3 : 인터페이스 회로
4 : CPU/BIU
5 : 인터럽트 제어 회로
6 : 주변 회로(주변 기기)
7 : 서스펜드 요구 레지스터
8 : 서스펜드 허가 레지스터
201 : 마이크로 시퀀서
202 : 차지 펌프
203 : 메모리 디코더
204 : 메모리 블럭
205 : 어드레스/데이터/제어 신호 디래치 입력 회로
206 : 커맨드 포트
207 : 상태 레지스터(status register)
208 : 자동 소거 시퀀서
209 : 테스트 모드 시퀀서
210 : 파워 리셋 회로
211 : 클럭 생성 회로
212 : 디코더·차지 펌프 제어 신호 생성 회로
213 : 부(負)전압 차지 펌프
214 : 정(正)전압 차지 펌프
215 : 판독 전압 차지 펌프
217 : X(로우) 어드레스 래치
218 : Y(컬럼) 어드레스 입력 버퍼 래치
219 : X(로우) 어드레스 프리디코더
220 : Y(컬럼) 어드레스 프리디코더
221~225 : 메모리 블럭
226 : 센스 앰프/기록 회로
227 : 선택기 회로
228 : 데이터 버스
229 : 클럭 선택 신호
230 : 메모리 디코더
231 : 메모리 블럭 어레이
232 : 선택 게이트 어드레스 래치
233 : 선택 게이트 어드레스 프리디코더
234 : 글로벌 비트선
235~238, 243~246 : 트랜지스터
239~242 : 메인 비트선
252 : SG 디코더
253 : X 디코더
254 : 자동 소거 시퀀스 제어 회로
255 : 서스펜드 요구 접수 회로
256 : 소거전 기록 제어 회로
257 : 소거/소거 검증 제어 회로
258 : 소거전 기록 신호 생성 회로
259 : 어드레스 증분기
260 : 소거 검증 회로
292 : 록 비트 플래그 생성 회로
303 : 자동 기록 시퀀서
304 : 타이머 회로
305 : 서스펜드 제어 회로
306 : 서스펜드 요구 처리 회로
307 : 서스펜드 위치 설정 레지스터
CS0~CS15, SG0~SG3 : 제어 신호
Tr0-0~Tr63-0, Tr0-1~Tr63-1, Tr0-2~Tr63-2, Tr0-3~Tr63-3 : 메모리 셀

Claims (1)

  1. 적어도 CPU와, 이 CPU에 의해 실행 가능한 자동 소거 및 자동 기록 시퀀스를 구비하며, 외부로부터의 제어에 의해 상기 자동 소거 및 자동 기록의 중단·재개가 가능한 비휘발성 메모리 및 주변 기기를 구비한 마이크로 컴퓨터에 있어서,
    상기 주변 기기 또는 외부로부터의 인터럽트 요구에 의해, 상기 비휘발성 메모리의 자동 소거 또는 자동 기록 처리가 일시 중단되어, 당해 메모리 내의 데이터를 상기 CPU가 판독할 수 있게 되는 것을 특징으로 하는 마이크로 컴퓨터.
KR10-2003-0013615A 2002-06-27 2003-03-05 마이크로 컴퓨터 KR100492714B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2002-00188397 2002-06-27
JP2002188397A JP2004030438A (ja) 2002-06-27 2002-06-27 マイクロコンピュータ

Publications (2)

Publication Number Publication Date
KR20040002454A KR20040002454A (ko) 2004-01-07
KR100492714B1 true KR100492714B1 (ko) 2005-06-07

Family

ID=29774221

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0013615A KR100492714B1 (ko) 2002-06-27 2003-03-05 마이크로 컴퓨터

Country Status (4)

Country Link
US (1) US7164610B2 (ko)
JP (1) JP2004030438A (ko)
KR (1) KR100492714B1 (ko)
TW (1) TW588256B (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040123054A1 (en) * 2002-12-20 2004-06-24 Gould Geoffrey A. Portable computing device having a non-volatile memory device adapted to detect when a current memory operation is to be suspended and method therefor
ITMI20050063A1 (it) * 2005-01-20 2006-07-21 Atmel Corp Metodo e sistema per la gestione di una richiesta di sospensione in una memoria flash
US7930589B2 (en) * 2005-06-17 2011-04-19 Analog Devices, Inc. Interrupt-responsive non-volatile memory system and method
JP5162846B2 (ja) * 2005-07-29 2013-03-13 ソニー株式会社 記憶装置、コンピュータシステム、および記憶システム
JP4989899B2 (ja) * 2006-01-27 2012-08-01 ルネサスエレクトロニクス株式会社 半導体演算処理装置
JP4662474B2 (ja) * 2006-02-10 2011-03-30 ルネサスエレクトロニクス株式会社 データ処理デバイス
JP4986213B2 (ja) * 2006-07-31 2012-07-25 ルネサスエレクトロニクス株式会社 半導体集積回路及び記憶装置
US7752474B2 (en) * 2006-09-22 2010-07-06 Apple Inc. L1 cache flush when processor is entering low power mode
JP2008117505A (ja) 2006-11-03 2008-05-22 Spansion Llc 半導体装置およびその制御方法
KR100843136B1 (ko) * 2006-11-14 2008-07-02 삼성전자주식회사 비휘발성 메모리에서 연산 처리를 제어하는 장치 및 그방법
CN101681282A (zh) 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US9021158B2 (en) 2009-09-09 2015-04-28 SanDisk Technologies, Inc. Program suspend/resume for memory
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
TWI486966B (zh) * 2010-02-04 2015-06-01 Phison Electronics Corp 快閃記憶體儲存裝置、其控制器與寫入管理方法
US8364888B2 (en) * 2011-02-03 2013-01-29 Stec, Inc. Erase-suspend system and method
WO2012109677A2 (en) 2011-02-11 2012-08-16 Fusion-Io, Inc. Apparatus, system, and method for managing operations for data storage media
JP2011150788A (ja) * 2011-05-13 2011-08-04 Toshiba Corp 半導体記憶装置
US20130318285A1 (en) * 2012-05-23 2013-11-28 Violin Memory Inc Flash memory controller
JP2014186787A (ja) * 2013-03-25 2014-10-02 Toshiba Corp 不揮発性半導体記憶装置、メモリコントローラ、及びメモリシステム
KR102187637B1 (ko) * 2014-02-03 2020-12-07 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 소거 방법
US9666244B2 (en) 2014-03-01 2017-05-30 Fusion-Io, Inc. Dividing a storage procedure
MY184342A (en) * 2014-04-23 2021-04-01 Ensconce Data Tech Llc Method for completing a secure erase operation
KR102203298B1 (ko) 2014-08-01 2021-01-15 삼성전자주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 구동 방법
US9933950B2 (en) 2015-01-16 2018-04-03 Sandisk Technologies Llc Storage operation interrupt
US10310770B2 (en) 2015-11-05 2019-06-04 Hitachi, Ltd. Nonvolatile memory device, and storage apparatus having nonvolatile memory device
JP6538597B2 (ja) * 2016-03-14 2019-07-03 東芝メモリ株式会社 記憶装置
JP6877265B2 (ja) * 2017-06-27 2021-05-26 ルネサスエレクトロニクス株式会社 半導体装置、及びフラッシュメモリ制御方法
KR20190088293A (ko) * 2018-01-18 2019-07-26 에스케이하이닉스 주식회사 메모리 장치 및 그 동작 방법
WO2020240242A1 (en) * 2019-05-31 2020-12-03 Micron Technology, Inc. Intelligent charge pump architecture for flash array
JP2021022414A (ja) 2019-07-29 2021-02-18 キオクシア株式会社 半導体記憶装置
KR20220039282A (ko) * 2020-09-22 2022-03-29 에스케이하이닉스 주식회사 컨트롤러 및 이를 포함하는 메모리 시스템

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2636449B2 (ja) 1988-12-27 1997-07-30 日本電気株式会社 マイクロコンピュータ
US5197140A (en) * 1989-11-17 1993-03-23 Texas Instruments Incorporated Sliced addressing multi-processor and method of operation
US5355464A (en) * 1991-02-11 1994-10-11 Intel Corporation Circuitry and method for suspending the automated erasure of a non-volatile semiconductor memory
JP3433808B2 (ja) * 1992-08-05 2003-08-04 株式会社日立製作所 半導体集積回路装置
US5805501A (en) * 1996-05-22 1998-09-08 Macronix International Co., Ltd. Flash memory device with multiple checkpoint erase suspend logic
US6201739B1 (en) * 1996-09-20 2001-03-13 Intel Corporation Nonvolatile writeable memory with preemption pin
KR100257868B1 (ko) 1997-12-29 2000-06-01 윤종용 노어형 플래시 메모리 장치의 소거 방법
IT1303885B1 (it) * 1998-11-30 2001-03-01 Techint Spa Rotore per macchine di mescolazione di elastomeri e simili con angolod'ingresso nella mescola variato lungo lo sviluppo di almeno una delle
JP2000228094A (ja) * 1999-02-04 2000-08-15 Toshiba Corp 不揮発性半導体記憶装置
JP3727485B2 (ja) * 1999-04-02 2005-12-14 シャープ株式会社 不揮発性メモリ内蔵マイクロコンピュータ
US6381175B2 (en) * 2000-01-10 2002-04-30 Texas Instruments Incorporated Method and system for validating flash memory
JP4535565B2 (ja) * 2000-06-09 2010-09-01 ルネサスエレクトロニクス株式会社 不揮発性半導体記憶装置
KR100379553B1 (ko) * 2001-01-11 2003-04-10 주식회사 하이닉스반도체 플래쉬 메모리 셀의 어레이 및 이를 이용한 데이터프로그램방법 및 소거방법

Also Published As

Publication number Publication date
KR20040002454A (ko) 2004-01-07
TW588256B (en) 2004-05-21
JP2004030438A (ja) 2004-01-29
US7164610B2 (en) 2007-01-16
US20040003167A1 (en) 2004-01-01
TW200400441A (en) 2004-01-01

Similar Documents

Publication Publication Date Title
KR100492714B1 (ko) 마이크로 컴퓨터
US6201739B1 (en) Nonvolatile writeable memory with preemption pin
US6798697B2 (en) Non-volatile semiconductor memory device
KR101146059B1 (ko) 비휘발성 메모리 시스템 및 비휘발성 메모리 시스템을 위한데이터 판독/기입 방법
EP0931289B1 (en) Nonvolatile writeable memory with program suspend command
US5768287A (en) Apparatus and method for programming multistate memory device
US7692984B2 (en) System and method for initiating a bad block disable process in a non-volatile memory
TWI498897B (zh) 非揮發性記憶體的保持方法與裝置
US9772779B2 (en) Methods for operating a distributed controller system in a memory device
JP2009537934A (ja) マルチnandフラッシュメモリーデバイスの共通動作中にピーク電力消費量を減少させるための装置および方法
KR20090026748A (ko) 판독 동작들 동안 백그라운드 데이터 래치 캐싱을 사용하는비휘발성 메모리 및 캐싱 방법
US20070083745A1 (en) Data processor
US5940861A (en) Method and apparatus for preempting operations in a nonvolatile memory in order to read code from the nonvolatile memory
US6189070B1 (en) Apparatus and method for suspending operation to read code in a nonvolatile writable semiconductor memory
KR100334173B1 (ko) 마이크로컴퓨터
KR100769771B1 (ko) 플래시 메모리 장치 및 그 소거 방법
JP4015701B2 (ja) 集積回路メモリ
JPH10241376A (ja) 不揮発性半導体記憶装置
US7457167B2 (en) Method for preventing over-erasing of unused column redundant memory cells in a flash memory having single-transistor memory cells
JP4148990B2 (ja) エラー許容データのための不揮発性メモリデバイス
JPH06282995A (ja) 電気的にプログラム可能なメモリを均一にプログラムする方法と該方法を実行するメモリ
EP0829044B1 (en) Floating gate memory device with protocol to terminate program load cycle
JP2002008383A (ja) 不揮発性半導体メモリおよび動作方法

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee