KR100444537B1 - 데이타처리장치 - Google Patents

데이타처리장치 Download PDF

Info

Publication number
KR100444537B1
KR100444537B1 KR1019960002518A KR19960002518A KR100444537B1 KR 100444537 B1 KR100444537 B1 KR 100444537B1 KR 1019960002518 A KR1019960002518 A KR 1019960002518A KR 19960002518 A KR19960002518 A KR 19960002518A KR 100444537 B1 KR100444537 B1 KR 100444537B1
Authority
KR
South Korea
Prior art keywords
memory
processing unit
central processing
program
area
Prior art date
Application number
KR1019960002518A
Other languages
English (en)
Other versions
KR960032175A (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 KR960032175A publication Critical patent/KR960032175A/ko
Application granted granted Critical
Publication of KR100444537B1 publication Critical patent/KR100444537B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Microcomputers (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Abstract

데이타처리장치로 되는 싱글칩 마이크로컴퓨터에 내장된 프로그램메모리의 온보드 라이트기술에 관한 것으로, 프로그램메모리의 온보드 라이트시의 시스템의 안전성을 향상시키기 위해, 버스컨트롤러에 의해 내장RAM의 일부를 벡터어드레스 에리어로 이동하도록 해서 내장ROM의 소거 또는 라이트중에 있어서 인터럽트가 발생한 경우에도 정확한 벡터어드레스가 얻어지도록 한다.
상기와 같은 구성에 의해, 마이크로컴퓨터의 폭주를 방지해서 내장ROM의 온보드 라이트시의 시스템의 안전성을 향상시킬 수 있다.

Description

데이타 처리장치{DATA PROCESSOR}
본 발명은 데이타처리장치로 되는 싱글칩 마이크로컴퓨터에 내장된 프로그램메모리의 온보드(on-board) 라이트기술에 관한 것으로서, 예를 들면 일괄 소거형의 전기적으로 소거가능하고 또한 프로그램가능한 불휘발성 기억장치(이하, 간단히 플래시형 EEPROM(flash type electrically erasable and programmable read only memory) 또는 플래시메모리라고도 함)를 프로그램 메모리로서 구비한 싱글칩 마이크로컴퓨터에 적용해서 유효한 기술에 관한 것이다.
데이타 처리장치로서의 싱글칩 마이크로컴퓨터(간단히 「마이크로컴퓨터」라고도 함)는 동작프로그램을 기억하는 프로그램 메모리를 내장한다. 싱글칩 마이크로 컴퓨터는 상기 내장 프로그램 메모리에 기억되는 동작프로그램에 규정되는 소정의 데이타처리를 실행한다.
상기 프로그램 메모리는 마스크형 불휘발성 기억장치(이하, 마스크형 리드 온리 메모리 또는 마스크 ROM이라 함)나 전기적으로 프로그램가능한 불휘발성 기억장치(이하, 전기적으로 프로그램가능한 리드 온리 메모리 또는 EPROM이라고 함)로 형성되어 왔다. 그러나, 근래에는 일괄 소거형의 전기적으로 소거가능하고 또한 프로그램가능한 불휘발성 기억장치(이하, 간단히 플래시형 EEPROM 또는 플래시메모리라고도 함)가 프로그램 메모리에 적용되어 왔다.
플래시메모리는 일단 라이트한 데이타를 전기적으로 소거하거나 또는 전기적으로 리라이트하는 것이 가능하다. 그 때문에, 프로그램 메모리로서 플래시메모리를 내장하는 마이크로컴퓨터는 예를 들면 이하의 이점을 갖는다.
사용자가 개발하는 소프트웨어 프로그램(응용 소프트)의 확정은 일반적으로 지연되기 쉬운 경향이 있다. 따라서, 소프트웨어 프로그램의 확정전에 마이크로컴퓨터 응용 시스템의 하드웨어를 조립하고, 그 후 마이크로컴퓨터내의 플래시 메모리에 개발된 소프트웨어 프로그램을 라이트할 수 있다. 그것에 의해서, 마이크로컴퓨터 응용시스템의 출하를 신속화할 수 있다.
또, 한 번 출하된 응용시스템의 소프트웨어에 관해, 사양이 변경된 소프트웨어의 개발이나 기능이 추가된 소프트웨어(업그레이드판 또는 버전업된 소프트웨어 등)의 개발이 실행되었을 때, 한 번 출하된 응용시스템의 소프트웨어를 사용자측에서 상기 신규로 개발한 소프트웨어에 리라이트할 수 있다.
즉, 프로그램 메모리로서 플래시메모리를 내장하는 마이크로컴퓨터에 있어서, 마이크로컴퓨터를 프린트기판, 실장기판 또는 시스템기판상에 실장한 후, 상기 플래시메모리내에 동작프로그램을 라이트하기 위한 처리가 가능하게 된다. 본 명세서에 있어서, 플래시메모리를 내장하는 마이크로컴퓨터를 프린트기판, 실장기판 또는 시스템기판상에 실장한 상태에서 내장 플래시메모리에 데이타를 라이트(프로그래밍)하는 처리를 「온보드 라이트처리」라고 하고, 이 라이트모드를 「온보드 라이트 모드」라고 한다.
온보드 라이트 모드에는 몇가지의 방식이 고려된다. 그들을 크게 분류하면, 이하의 2가지로 분류된다.
[1] 제1의 방식은 사용자 프로그램 모드 또는 부트 모드로 된다. 이들 모드는 마이크로컴퓨터에 내장되는 중앙처리장치(CPU)의 프로그램 실행의 흐름을 온보드 라이트 처리로 분기하여 플래시메모리의 데이타를 중앙처리장치에서 변경하는 방식으로 된다.
[2] 제2의 방식은 ROM 라이터를 이용한 라이트 모드로 된다. 이 모드는 마이크로컴퓨터를 정지시켜 외부적인 수단(ROM 라이터)에 의해 플래시메모리의 데이타의 변경을 실현하는 방식으로 된다.
일본국 특허공개공보 평성6-180664호는 플래시메모리의 리라이트시, 이상처리 프로그램을 다른 영역으로 이동시켜 리라이트시의 이상에 대응하도록 한 시스템을 개시하고 있다.
상기 제1의 방식에 있어서, 내장 플래시메모리의 기억내용 자체가 리라이트의 대상으로 되므로, 내장 RAM(Random Access Memory) 등의 플래시메모리 이외의 메모리에 존재하는 라이트제어 프로그램을 중앙처리장치(CPU)에서 실행하고, 플래시메모리의 소거 또는 라이트를 실행하도록 하고 있다.
상기 제1의 방식에 있어서의 상기 플래시메모리의 소거 또는 라이트상태에 있어서, 마이크로컴퓨터의 본래의 기능은 소실되지 않는다. 이 때문에, 마이크로컴퓨터의 외부에서 공급된 신호입력에 기인해서 중앙처리장치(CPU)에 대한 인터럽트가 잘못해서 발생하거나, 또는 라이트제어 프로그램의 실행중에 어드레스에러가 발생하는 경우가 있다. 또, NMI(Non-Maskable Interrupt)는 인터럽트 자체를 금지할 수 없으므로, 의도하지 않은 NMI가 상기 제1의 방식에 있어서의 플래시메모리의 라이트 또는 소거중에 발생할 가능성이 있다. NMI가 아니더라도 잘못해서 인터럽트를 허가상태로 하여 마찬가지의 상태로 될 가능성이 있다.
일반적으로는, 인터럽트의 발생이나 어드레스 에러의 발생이 생긴 경우, 인터럽트 처리루틴 또는 예외 처리루틴으로 중앙처리장치의 처리가 분기된다. 중앙처리장치의 처리를 인터럽트 처리루틴 또는 예외 처리루틴으로 분기시키기 위해 이용되는 것이 인터럽트 처리루틴 또는 예외 처리루틴의 선두어드레스를 나타내는 벡터어드레스이다. 인터럽트의 발생이나 예외처리의 발생이 생긴 경우, 대응하는 인터럽트 처리루틴 또는 예외 처리루틴의 벡터어드레스가 중앙처리장치에 의해서 취득된다. 그리고, 그 취득된 벡터어드레스는 중앙처리장치의 프로그램 카운터에 라이트되고, 중앙처리장치의 프로그램 흐름이 벡터어드레스가 나타내는 어드레스로 점프하는 것에 의해 대응하는 인터럽트처리 또는 예외처리가 실행된다.
여기서 주의해야 할 사항은 이하의 사항인 것이 발명자의 검토에 의해서 명확하게 되었다.
즉, 일반적으로 여러개의 벡터어드레스는 프로그램메모리내의 벡터어드레스 저장영역내에 기억된다. 플래시메모리가 프로그램메모리로 되는 경우에 있어서도 그것에 관해서는 마찬가지이고, 여러개의 벡터어드레스는 플래시메모리내의 벡터어드레스 저장영역내에 저장된다.
그런데, 플래시메모리가 프로그램메모리로 되고 또한 상기 플래시메모리에대해서 사용자 프로그램 모드 또는 부트 모드에서의 소거 또는 라이트가 실행되고 있을 때 인터럽트의 발생이나 예외처리의 발생이 생긴 경우, 중앙처리장치는 플래시메모리내의 벡터어드레스 저장영역내에 저장될 원하는 벡터어드레스를 취득할 수 없다.
즉, 플래시메모리의 사용자 프로그램 모드 또는 부트 모드에서의 소거 또는 라이트를 위한 리라이트제어 프로그램이 플래시메모리 이외의 메모리(예를 들면, RAM)에 존재함에도 불구하고, 벡터어드레스가 프로그램메모리내에 존재한다. 그 때문에, 프로그램메모리인 플래시메모리에 대한 소거처리 또는 라이트처리중에 있어서는 정확한 벡터어드레스를 얻을 수 없다. 그 결과, 프로그램메모리의 사용자 프로그램 모드 또는 부트 모드시에 있어서, 인터럽트의 발생이나 예외처리의 발생이 생긴 경우, 마이크로컴퓨터의 폭주, 더 나아가서는 응용시스템의 파손의 위험이 있다는 것을 알 수 있었다. 또, 마이크로컴퓨터가 폭주해서 플래시메모리의 과소거, 과라이트 등이 발생하면, 그 마이크로컴퓨터 응용시스템의 재생이 불가능하게 되는 경우도 있다. 한편, 전원전압의 저하 등의 이상사태는 NMI 등의 인터럽트에 의해 검지하는 것이 일반적인 수단이다.
또한, 플래시메모리에 대한 소거처리 또는 라이트처리는 소거검증 동작 및 라이트검증 동작을 포함하는 것으로 간주된다.
플래시메모리를 프로그램메모리로서 내장하는 마이크로컴퓨터에 있어서는 응용시스템의 하드웨어의 조립후, 사용자측이 내장 플래시메모리에 소프트웨어를 라이트하거나, 한 번 출하된 응용시스템의 내장 플래시메모리의 소프트웨어를 리라이트하는 것이 가능하다. 그 때문에, 플래시메모리를 마이크로컴퓨터에 내장하는 경우의 이점은 많다. 그러나, 내장 플래시메모리의 사용자 프로그램 모드 또는 부트 모드에서의 온보드 라이트 모드중에 있어서의 인터럽트의 발생이나 예외처리의 발생은 마이크로컴퓨터의 폭주나 응용시스템의 파손의 위험의 원인으로 된다는 것을 알 수 있었다.
본 발명의 목적은 프로그램메모리의 온보드 라이트시의 시스템의 안전성의 향상을 도모하는 것이다.
본 발명의 다른 목적은 전기적으로 소거가능하고 또한 프로그램가능한 불휘발성 기억장치를 프로그램메모리로서 포함하는 데이타 처리장치로서, 상기 프로그램메모리의 온보드 라이트시에 인터럽트처리 또는 예외처리의 요구가 있었던 경우에도 폭주나 파손의 위험을 방지할 수 있는 데이타 처리장치를 제공하는 것이다.
본 발명의 또 다른 목적은 플래시메모리를 프로그램메모리로서 포함하는 마이크로컴퓨터로서, 상기 프로그램메모리의 온보드 라이트 또는 소거시에 인터럽트처리 또는 예외처리의 요구가 있었던 경우, 그 요구에 응답할 수 있는 마이크로컴퓨터를 제공하는 것이다.
본 발명의 또 다른 목적은 플래시메모리를 프로그램메모리로서 포함하는 싱글칩 마이크로컴퓨터로서, 상기 프로그램메모리의 라이트 또는 소거시에 인터럽트처리 또는 예외처리의 요구가 있었던 경우, 중앙처리장치가 대응하는 인터럽트처리 또는 예외처리에 관계하는 벡터어드레스를 취득할 수 있게 구성된 싱글칩 마이크로컴퓨터를 제공하는 것이다.
본 발명의 상기 및 그밖의 목적과 신규한 특징은 본 명세서의 기술 및 첨부도면으로부터 명확하게 될 것이다.
본원에 있어서 개시되는 발명중 대표적인 것의 개요를 간단히 설명하면 다음과 같다.
데이타 처리장치는 전기적으로 소거 또는 라이트가능한 프로그램메모리(18), 상기 프로그램메모리(18)을 액세스할 수 있는 중앙처리장치(12) 및 상기 프로그램메모리의 소거 또는 라이트중의 인터럽트발생 또는 예외처리의 발생에 기인하는 오동작을 배제하기 위한 오동작 배제수단을 포함한다.
상기 오동작 배제수단은 다음의 구성을 포함하는 것이 가능하다.
1] 도 6에 도시하는 바와 같이, 상기 프로그램메모리(18)의 소거처리 또는 라이트처리가 실행되고 있는 기간, 상기 중앙처리장치(12)에 대한 인터럽트요구 또는 예외처리요구를 배제 또는 무효화하기 위한 제1 제어논리회로(G5)가 상기 데이타처리장치에 마련된다.
따라서, 사용자 프로그램 모드 또는 부트 모드에서 상기 프로그램메모리(18)의 소거처리 또는 라이트처리가 실행되고 있는 기간에 있어서, 상기 제1 제어논리회로(G5)는 상기 중앙처리장치(12)에 대한 인터럽트요구 또는 예외처리 요구를 배제 또는 무효화하므로, 상기 중앙처리장치(12)는 상기 프로그램메모리(18)의 소거처리 또는 라이트처리가 실행되고 있는 기간, 인터럽트요구 또는 예외처리 요구에 대응하는 벡터어드레스의 취득동작을 실행하지 않는다. 이것이 프로그램메모리(18)의 온보드 라이트시의 시스템의 안전성의 향상을 달성한다. 이것에 의해, 의도하지않은 인터럽트요구의 발생을 금지할 수 있다.
2] 도 7에 도시하는 바와 같이, 사용자 프로그램모드 또는 부트모드에서 상기 프로그램메모리(18)의 소거처리 또는 라이트처리가 실행되고 있는 기간, 상기 중앙처리장치(12)에 대한 인터럽트요구 또는 예외처리 요구에 응답해서 상기 프로그램메모리(18)에 대한 소거처리 또는 라이트처리를 중지시키기 위한 제2 제어논리회로(G6)이 상기 데이타 처리장치에 마련된다.
즉, 상기 프로그램메모리(18)의 소거처리 또는 라이트처리가 실행되고 있는 기간에 있어서, 상기 제2 제어논리회로(G6)은 상기 중앙처리장치(12)에 대한 인터럽트요구 또는 예외처리 요구에 응답해서 상기 프로그램메모리(18)에 대한 소거처리 또는 라이트처리를 중지시킨다. 구체적으로, 상기 제2 제어논리회로(G6)은 상기 프로그램메모리(18)에 마련된 동작제어 레지스터의 소거제어비트(32), 라이트제어비트(33), 검증제어비트(34) 등의 제어비트의 데이타를 활성화상태에서 비활성화상태로 변경한다.
따라서, 상기 프로그램메모리(18)의 소거처리 또는 라이트처리가 실행되고 있는 기간에 상기 중앙처리장치(12)에 대한 인터럽트요구 또는 예외처리요구가 발생했을 때, 상기 제2 제어논리회로(G6)은 상기 프로그램메모리(18)에 대한 소거처리 또는 라이트처리를 중지시킨다. 이러한 인터럽트의 발생은 라이트 및 소거제어 프로그램의 프로그래밍 미스나 정전 등의 비상사태의 원인인 경우도 있다. 그래서, 상기 프로그램메모리(18)에 대한 소거처리 또는 라이트처리를 중지시키는 것에 의해, 플래시메모리의 과소거, 과라이트의 발생이 방지된다. 또, 그 후 상기 중앙처리장치(12)는 상기 프로그램메모리(18)에서 상기 인터럽트요구 또는 예외처리요구에 대응하는 벡터어드레스를 취득할 수 있다. 이상에 의해, 프로그램메모리(18)의 온보드 라이트시의 시스템의 안전성의 향상을 달성할 수 있다.
3] 도 3 및 도 5에 도시하는 바와 같이, 상기 프로그램메모리(18)의 소거처리 또는 라이트처리가 실행되고 있는 기간에 상기 중앙처리장치(12)에 대한 인터럽트요구 또는 예외처리요구가 발생했을 때, 상기 프로그램메모리(18)의 벡터어드레스 저장영역의 액세스를 금지하고, 상기 프로그램메모리(18) 이외의 메모리 예를 들면 랜덤액세스 메모리(이하, RAM이라 함)(13)의 소정 영역을 액세스할 수 있도록 메모리 선택동작을 상기 프로그램메모리(18)로부터 상기 프로그램메모리(18) 이외의 메모리로 변경시키는 선택메모리 변경수단(G1), (G2), (G4)가 데이타처리장치에 마련된다. 또한, 상기 선택메모리 변경수단(G1), (G2), (G4)는 버스컨트롤러(27)에 마련할 수 있다.
이 경우, 상기 프로그램메모리(18) 이외의 메모리의 소정 영역에는 미리 상기 프로그램메모리(18)의 소거처리 또는 라이트처리가 실행되고 있는 기간에 있어서, 상기 중앙처리장치(12)에 대한 인터럽트요구 또는 예외처리요구가 발생했을 때 처리할 인터럽트처리 또는 예외처리를 위한 벡터어드레스 데이타가 저장되어 있다. 그리고, 상기 소정의 기억영역에 저장된 벡터어드레스 데이타는 상기 프로그램메모리(18) 이외의 메모리의 다른 기억영역에 저장된 소정의 인터럽트 처리루틴 또는 예외처리루틴의 선두어드레스를 나타내도록 설정된다.
3·1] 상기 3]에 있어서, 상기 선택메모리 변경수단(G1), (G2)는 상기 프로그램메모리(18)의 소거처리 또는 라이트처리가 실행되고 있는 기간에, 상기 중앙처리장치(12)에 대한 인터럽트요구 또는 예외 처리요구가 발생했을 때, 상기 프로그램메모리(18)의 벡터어드레스 저장영역의 액세스의 검출에 응답해서 상기 프로그램메모리(18)의 선택신호를 불활성화한다. 그 대신, 상기 선택메모리 변경수단(G1), (G2)는 상기 프로그램 메모리(18) 이외의 메모리(13)의 선택신호를 활성화한다.
3·2] 상기 3]에 있어서, 상기 선택메모리 변경수단(G4)는 상기 프로그램메모리(18)의 소거처리 또는 라이트처리가 실행되고 있는 기간에, 상기 중앙처리장치(12)에 대한 인터럽트요구 또는 예외처리요구가 발생했을 때, 상기 프로그램메모리(18)의 벡터어드레스 저장영역의 액세스의 검출에 응답해서 상기 프로그램메모리(18)의 벡터어드레스 저장영역을 액세스하기 위한 어드레스신호를 상기 프로그램메모리(18)이외의 메모리 예를 들면 RAM(13)의 소정의 기억영역을 액세스하는 어드레스신호로 변환한다.
상기 3·1] 및 상기 3·2]와 같이 구성하는 것에 의해, 사용자 프로그램 모드 또는 부트 모드에서 상기 프로그램메모리(18)의 소거처리 또는 라이트처리가 실행되고 있는 기간에 있어서, 상기 중앙처리장치(12)에 대한 인터럽트요구 또는 예외처리요구가 발생한 경우에도 상기 중앙처리장치(12)는 대응하는 인터럽트 처리루틴 또는 예외 처리루틴에 관한 벡터어드레스를 상기 프로그램메모리(18) 이외의 메모리의 다른 기억영역을 액세스하는 것에 의해서 취득할 수 있다. 따라서, NMI인터럽트를 사용해서 정전에 의한 전원전압Vcc의 저하 등의 비상사태를 마이크로컴퓨터에 통지하고, 상기 프로그램메모리(18)에 대한 소거처리 또는 라이트처리를 중지시키는 것에 의해, 플래시메모리의 과소거, 과라이트의 발생이 방지된다. 이 경우, NMI에 대한 인터럽트 처리루틴중에서 소거처리 또는 라이트처리의 중지상태를 기록하는 처리를 실행하여 플래시메모리를 과소거, 과라이트나 중간상태 등의 이상상태로부터 보호할 수 있다. 이것에 의해, 프로그램메모리(18)의 온보드 라이트시의 시스템의 안전성의 향상이 달성된다.
도 1은 본 발명에 따른 데이타 처리장치로서의 싱글칩 마이크로컴퓨터(30)을 도시한 것이다. 특히 제한되지 않지만, 싱글칩 마이크로컴퓨터(30)은 단결정 실리콘기판 등의 1개의 반도체기판(반도체칩)상에 형성된다.
도 1에 도시하는 바와 같이, 싱글칩 마이크로컴퓨터(30)은 특히 제한되지 않지만, 인터럽트 제어회로(10), 클럭발진기(11), 중앙처리장치(CPU)(12), 내장 RAM(Random Access Memory)(13), 호스트 인터페이스회로(14), 직렬통신회로로 되는 직렬통신 인터페이스회로(15), 10비트의 아날로그 디지탈 변환회로(A/D변환기)(16), 8비트의 디지탈 아날로그 변환회로(D/A변환기)(17), 프로그램메모리로 되는 내장ROM(Read Only Memory)(18), 워치독 타이머회로(19), 16비트의 프리러닝 타이머회로(20), 8비트의 타이머회로(21), 펄스폭 변조를 위해 이용되는 PWM 타이머회로(22) 및 여러개의 신호입력, 신호출력 또는 신호입출력에 이용되는 포트(P1)∼(P9)를 포함한다.
이들 회로모듈(10), (12)∼(22), (P1)∼(P9)가 어드레스버스(24) 및 데이타버스(26)에 의해 결합되고, 중앙처리장치(12)가 어드레스버스(24) 및 데이타버스(25), (26)을 사용해서 회로모듈(12)∼(22), (P1)∼(P9)를 액세스할 수있게 된다.
중앙처리장치(12)가 회로모듈(12)∼(22), (P1)∼(P9)중의 어느 하나를 액세스하는 경우, 중앙처리장치(12)는 액세스의 대상으로 되는 회로모듈에 할당된 어드레스를 선택하기 위한 어드레스신호를 상기 어드레스버스(24)에 발생한다. 이 때, 데이타 리드모드이면, 액세스의 대상으로 되는 회로모듈은 데이타버스(25), (26)으로 데이타를 출력하고, 상기 중앙처리장치(12)는 데이타버스(26)을 거쳐서 그 데이타를 페치(포착)한다. 한편, 데이타 라이트모드이면, 상기 중앙처리장치(12)는 데이타버스(25), (26)으로 원하는 데이타를 출력하고, 상기 액세스의 대상으로 되는 회로모듈은 데이타버스(25), (26)을 거쳐서 그 데이타를 페치한다.
다음에, 상기 각 회로블럭(10)∼(22)의 기능에 대해서 설명한다.
클럭발진기(11)은 특히 제한되지 않지만, 수정진동자를 이용해서 발진하는 발진기, 이 발진기의 출력펄스의 듀티를 보정하는 듀티보정회로, 상기 듀티보정회로로부터의 시스템클럭신호를 분주하는 것에 의해서 내장 주변모듈(12)∼(22)를 위한 내장 주변모듈 클럭신호를 형성하는 클럭분주기 및, 상기 클럭분주기로부터의 상기 내장 주변 모듈용 클럭신호를 분주해서 내부클럭신호를 생성하기 위한 프리스케일러(prescaler)를 포함한다. 클럭발진기(11)에서 발생된 소정 주파수의 시스템클럭과 동기해서 각 회로모듈(10), (12)∼(22)가 동작된다.
CPU(12)는 특히 제한되지 않지만, 처리할 프로그램내에 정의된 명령이 저장되는 명령레지스터(IR), 상기 명령레지스터에 저장된 명령을 디코드하는 명령디코더(IDEC) 및 상기 명령디코더에서 출력되는 제어신호에 따라서 그 동작이 제어되는명령실행부(IEXE)를 포함한다. 상기 명령실행부(IEXE)는 산술연산이나 논리연산을 실행하는 산술논리연산기(ALU), 8비트×16개의 범용레지스터(R0)∼(R15), 프로그램내의 다음에 실행될 명령의 명령어드레스에 관한 데이타를 저장하는 프로그램 카운터(PC) 등을 갖는다. 프로그램 카운터(PC)내의 데이타는 명령이 상기 명령실행부(IEXE)에 의해서 실행될 때마다 인크리먼트(증분; increment)된다. 상기 명령실행부(IEXE)는 클럭발진기(11)에서 출력되는 시스템클럭을 타임베이스로 해서 소정의 연산처리 및 각 내장 주변모듈(12)∼(22)의 동작제어를 실행한다. 또한, 상기 명령레지스터(IR), 명령디코더(IDEC), 명령실행부(IEXE), 산술논리연산기(ALU), 범용레지스터(R0)∼(R15) 내지 프로그램카운터(PC)는 도면의 간소화를 위해 상기 도 1에는 도시하고 있지 않다.
상기 범용레지스터중의 1개는 인터럽트 발생시 또는 예외 발생시의 스택포인터로서 이용된다. 즉, 인터럽트 발생시 또는 예외 발생시, 그 시점에 있어서의 상기 범용레지스터에 저장되어 있던 데이타를 예를 들면 소정의 외부기억장치로 퇴피(세이브; save)시키는 것이 실행된다. 이 경우, 스택포인터는 퇴피된 데이타의 어드레스를 나타내는 어드레스데이타를 저장한다. 인터럽트처리 또는 예외처리로부터의 복귀시, 상기 스택포인터에 저장되는 어드레스데이타를 이용해서 그 인터럽트처리 또는 예외처리가 접수되었을 때, 상기 외부기억장치에 퇴피되어 있던 범용레지스터의 내용이 범용레지스터내로 회복된다. 또한, 상기 시스템클럭의 임의의 상승에지에서 다음의 상승에지까지의 1단위가 1상태로 될 때, CPU(12)의 메모리사이클 또는 버스사이클은 예를 들면 2상태 또는 3상태로 구성된다. 바꾸어말하면,CPU(12)는 시스템클럭의 2주기 또는 3주기에서 상기 내장 주변모듈(12)∼(22)를 액세스할 수 있도록 설계된다.
내장 RAM(13)은 특히 제한되지 않지만 1k바이트의 기억용량을 갖는 스테이틱형 RAM으로 된다. 내장 RAM(13)은 어드레스버스(24) 및 각각 8비트폭의 데이타버스(25), (26)에 의해서 CPU(12)에 결합된다. 그 결과, 내장 RAM(13)은 바이트데이타(8비트데이타), 워드데이타(16비트데이타)에 관계없이 2상태의 메모리액세스 사이클 1회에서 바이트데이타 및 워드데이타의 입력 및 출력이 가능하게 되어 있다.
호스트인터페이스회로(14)는 CPU(12)와 호스트시스템의 2채널의 병렬 인터페이스기능으로서, 특히 제한되지 않지만 4바이트의 데이타레지스터, 고속 게이트 로직이나 인터럽트 요구회로 등을 포함한다. 호스트시스템으로부터의 5개의 제어신호, 호스트시스템으로의 4개의 출력신호 및 커맨드 또는 데이타 입출력버스로서의 8비트폭의 데이타버스(25)를 거쳐서 호스트시스템과의 통신이 가능하게 된다.
직렬통신 인터페이스회로(15)는 다른 LSI와의 사이에서 직렬데이타의 통신을 실행하기 위한 모듈로서, 조보 동기식 모드(start-stop synchronous mode)에 의한 통신과 클럭동기식 모드에 의한 통신의 선택이 가능하게 된다. 동작모드의 지정이나 데이타포맷의 지정, 비트레이트의 설정 및 송수신제어를 위한 여러개의 제어레지스터, 송수신 제어회로 및 버스인터페이스 등을 포함한다.
A/D변환기(16)은 특히 제한되지 않지만, 축차변환방식(sequential conversion system)에 의해 입력 아날로그신호를 디지탈신호로 변환하기 위한 것으로서, 특히 제한되지 않지만 최대 8채널의 아날로그입력을 선택할 수 있다.
D/A변환기(17)은 데이타버스(25)를 거쳐서 입력된 디지탈신호를 아날로그신호로 변환하는 기능을 갖고, 각종 레지스터나 8비트 D/A변환부 및 제어회로를 포함한다.
워치독 타이머(19)는 시스템의 감시를 실행하는 것이다. 시스템의 폭주 등에 의해 워치독 타이머(19)내의 타이머카운터의 값이 리라이트되지 않고 오버플로하면, 워치독 타이머(19)는 CPU(12)에 대해서 리세트신호 또는 NMI요구를 발생한다. 또, 이 기능을 이용하지 않는 경우에는 워치독 타이머(19)내의 타이머카운터는 인터벌 타이머로서도 사용할 수 있다. 16비트 프리러닝 타이머(20)은 특히 제한되지 않지만, 16비트 프리러닝 카운터를 베이스로 해서 2종류의 독립된 파형출력이 가능하게 되고, 또 입력펄스의 폭이나 외부클럭의 주기를 측정할 수 있다.
8비트 타이머(21)은 2채널 마련되고, 각각 타이머카운터 이외에 8비트의 시정수 레지스터가 마련된다. 그것에 의해, 임의의 듀티비의 펄스신호의 출력이 가능하게 된다.
PWM 타이머(22)는 2채널 마련되고, 각 채널마다 8비트 타이머카운터와 8비트 듀티레지스터가 있고, 이 8비트 듀티레지스터에 설정하는 값에 따라서 0∼100%의 듀티펄스를 얻을 수 있도록 되어 있다.
인터럽트 제어회로(10)은 외부인터럽트 요구신호로 되는 NMI나 IRQ0∼IRQ2, 상기 주변모듈(15)∼(22)에서 공급되는 도시하지 않은 내부 인터럽트요구를 받고, 소정의 우선순위에 따라서 처리하기 위한 기능을 갖고, 이 인터럽트요구 처리결과에 따라서 인터럽트 예외처리 요구신호 IRQS가 CPU(12)에 전달되도록 되어 있다. 인터럽트 제어회로(10)은 도 1에는 도시되어 있지 않지만, 어드레스버스(24) 및 데이타버스(25)에 결합되어 CPU(12)에 의해서 내부레지스터가 액세스가능하게 된다. 또한, 상기 NMI는 마스크불가능한 인터럽트로 된다. 따라서, 인터럽트 제어회로(10)이 상기 NMI를 받으면, 상기 NMI에 따른 인터럽트처리를 실행하게 된다.
내장 ROM(18)은 CPU(12)에서 실행되는 프로그램을 저장하기 위한 프로그램메모리로 된다. 내장 ROM(18)은 특히 제한되지 않지만, 어드레스버스(24) 및 각각 8비트폭의 데이타버스(25), (26)에 의해서 CPU(12)에 결합된다. 그 결과, 내장 ROM(18)은 바이트 데이타(8비트의 데이타), 워드 데이타(16비트의 데이타)에 관계없이 2상태의 메모리액세스 사이클 1회에서 바이트 데이타 및 워드 데이타의 출력이 가능하게 되어 있다. 상술한 바와 같이, 내장 ROM(18)은 일괄소거형의 전기적으로 소거가능하고 또한 프로그램가능한 불휘발성 기억장치(이하, 간단히 플래시형 EEPROM 또는 플래시메모리라고도 함)에 의해서 구성된다. 그 내부에 저장되는 데이타로서의 프로그램은 싱글칩 마이크로컴퓨터를 온보드 라이트 모드로 설정하는 것에 의해서 프로그래밍가능하게 된다.
본 실시예의 마이크로컴퓨터(30)의 동작모드가 온보드 프로그래밍 모드로 설정되면, 상기 내장 ROM(18)로의 프로그램(데이타)의 라이트나 소거, 검증을 실행할 수 있다. 이 온보드 프로그래밍 모드는 2종류의 동작모드(부트 모드, 사용자 프로그램 모드)를 포함한다. 부트 모드는 제1 온보드 프로그래밍 모드로 되고, 사용자프로그램 모드는 제2 온보드 프로그래밍 모드로 된다.
마이크로컴퓨터(30)의 동작모드는 모드설정회로 MC에 의해서 판별되고, 모드설정회로 MC는 모드설정신호 MS0∼MS4중의 1개의 모드설정신호를 하이레벨로 한다. 지정된 동작모드를 나타내는 하이레벨의 모드설정신호는 예를 들면 중앙처리장치CPU(12)나 버스컨트롤러(27) 등의 회로로 공급된다. 모드설정회로 MC는 모드설정단자 MD0∼MD2로 공급되는 모드신호 MDS0∼MDS2의 신호전압 및 고전압공급단자 Vpp로 공급되는 고전압 Vp가 소정의 조합으로 되어 있는지의 여부를 판별하고, 마이크로컴퓨터(30)의 동작모드를 원하는 동작모드로 설정한다. 그것에 의해서, 마이크로컴퓨터(30)의 동작모드는 상기 부트 모드나 상기 사용자 프로그램모드 이외에 후술되는 PROM 모드, 싱글칩 모드 및 외부메모리 확장모드를 포함한다. 싱글칩 모드는 내장 RAM이나 내장 ROM의 어드레스공간을 이용해서 마이크로컴퓨터 시스템을 구성하는 모드로 된다. 한편, 외부메모리 확장모드는 내장 RAM이나 내장 ROM 이외의 외부메모리도 이용해서 어드레스공간이 확장되고, 그 확장된 어드레스공간을 이용해서 마이크로컴퓨터 시스템을 구성하는 모드로 된다.
예를 들면, 12V의 전압이 모드설정단자 MD2 및 고전압 공급단자 Vpp로 공급되면, 마이크로컴퓨터(30)의 동작모드가 부트 모드로 설정된다. 즉, 모드설정신호 MS0이 하이레벨로 된다. 이 경우, 마이크로컴퓨터(30)의 어드레스공간의 설정모드에 따라서 0V 또는 5V의 전압이 모드설정단자 MD1, MD0으로 각각 공급된다. 한편, 12V의 전압이 고전압 공급단자 Vpp로 공급되면, 마이크로컴퓨터(30)의 동작모드가 사용자 프로그램 모드로 설정된다. 즉, 모드설정신호 MS1이 하이레벨로 된다. 이경우, 마이크로컴퓨터(30)의 어드레스공간의 설정모드에 따라서 0V 또는 5V의 전압이 모드설정단자 MD0∼MD2로 각각 공급된다. 특히 제한되지 않지만 모드설정신호 MS2의 하이레벨은 상기 PROM 모드를 나타내고, 모드설정신호 MS3의 하이레벨은 상기 싱글칩모드를 나타내고, 모드설정신호 MS4의 하이레벨은 상기 외부메모리 확장모드를 나타낸다.
부트모드를 사용하는 경우, 플래시메모리(18)의 라이트 및 소거용의 사용자프로그램(리라이트 제어 프로그램) 및 라이트 데이타가 도시하지 않은 호스트시스템에 미리 마련된다. 부트 모드로 설정되면, 리세트 해제후에 미리 부트 ROM에 프로그램되어 있는 부트 프로그램이 기동된다. 그리고, 상기 호스트시스템에서 송신되는 데이타의 로우레벨의 기간이 직렬통신 인터페이스회로(15)에 의해서 측정되고, 그것에 의해서 상기 호스트시스템의 송신데이타의 비트레이트가 계산되고, 직렬통신 인터페이스회로(15)의 비트레이트 레지스터의 값이 결정된다. 다음에, 상기 호스트시스템은 리라이트 제어프로그램을 구성하는 데이타의 전송을 실행한다. 직렬통신 인터페이스회로(15)에 의해서 수신된 리라이트 제어프로그램의 데이타가 내장 RAM(13)에 저장된다. 리라이트 제어프로그램의 라이트가 종료한 후, 부트 프로그램의 처리가 내장 RAM(13)의 리라이트 제어프로그램의 선두어드레스로 분기된다. 그것에 의해서, 내장 RAM(13)에 라이트된 리라이트 제어프로그램이 CPU(12)에 의해서 실행되고, 플래시메모리에 대한 데이타의 라이트동작 또는 데이타의 소거동작이 실행되게 된다. 또한, 상기 부트 ROM은 마스크 ROM 등의 불휘발성 기억회로로 구성되어 전원전위의 저하가 있더라도 그 기억내용은 소거되지 않는다.
사용자 프로그램모드에 있어서, 플래시메모리(18)에 대한 데이타의 라이트동작 또는 데이타의 소거동작이 플래시메모리(18)의 라이트 및 소거용의 사용자프로그램(리라이트 제어프로그램)에 의해 가능하게 된다. 이 경우, 고전압을 공급하기 위한 고전압 공급수단 및 리라이트 데이타를 공급하기 위한 데이타 공급수단이 실장기판상에 마련된다. 그리고, 상기 리라이트 제어프로그램이 예를 들면 플래시메모리(18)내지 다른 메모리(외부메모리)의 프로그램 에리어의 일부에 저장된다. 사용자 프로그램 모드의 설정에 응답해서, CPU(12)는 상기 리라이트제어 프로그램을 내장 RAM(13)에 저장하고, 상기 리라이트제어 프로그램을 실행하는 CPU(12)에 의해서 플래시 메모리(18)의 온보드 리라이트가 실행된다.
또한, 내장 ROM으로서의 플래시 메모리(18)의 소거 또는 라이트모드로서 온보드 라이트 모드 이외에 PROM 모드가 마련되어도 좋다. 상기 PROM 모드는 플래시 메모리(18)로의 프로그램데이타의 라이트를 범용 PROM 라이터를 사용해서 가능하게 하는 모드로 된다. 상기 PROM 모드는 예를 들면 모드설정단자 MD0∼MD2 전체에 대해 로우레벨 "0"의 모드설정신호 MDS0∼MDS2를 공급하는 것에 의해서 설정된다.
벡터어드레스가 내장 ROM으로서의 플래시 메모리(18)내에 존재하는 경우, 사용자 프로그램 모드 또는 부트 모드에 있어서의 플래시 메모리(18)의 소거 또는 라이트 중에 인터럽트요구 내지 예외처리요구가 발생했을 때, CPU(12)는 정확한 벡터어드레스를 취득할 수 없다. 왜냐하면, 내장 ROM(18)의 소거 또는 라이트중이므로, CPU(12)는 플래시메모리(18)의 벡터어드레스 저장영역을 액세스할 수 없기 때문이다. 그 때문에, 상술한 바와 같은 마이크로컴퓨터의 폭주의 우려가 있다.
그래서, 본 실시예에서는 사용자 프로그램 모드 또는 부트 모드에 있어서의 플래시메모리(18)의 소거 또는 라이트중에 내장 RAM(13)의 일부의 기억영역(어드레스영역)이 플래시메모리(18)의 벡터어드레스 저장에리어로 이동되도록 한다. 즉, 플래시메모리(18)의 소거 또는 라이트중에 있어서, 플래시메모리(18)의 벡터어드레스 저장에리어의 어드레스가 내장 RAM(13)의 일부의 기억영역의 어드레스로 이동된다. 그것에 의해서, 플래시메모리(18)의 소거 또는 라이트중에 발생한 벡터어드레스를 페치(fetch)하기 위한 어드레스신호는 내장 RAM(13)의 일부의 기억영역을 액세스하게 된다. 따라서, 내장 RAM(13)의 일부의 상기 기억영역에 필요한 벡터어드레스를 미리 저장하는 것에 의해서 정확한 벡터어드레스를 취득할 수 있게 하면, 마이크로컴퓨터의 폭주 등을 방지하는 것이 가능하다. 바꾸어 말하면, 본 실시예에 있어서, 내장RAM(13)은 사용자 프로그램 모드 또는 부트 모드에 있어서의 내장 ROM(18)의 소거 또는 라이트시에 플래시메모리(18)에 저장된 벡터어드레스 저장영역을 대체하기 위해 이용된다. 이 때, 미리 이용가능한 벡터어드레스가 내장 RAM(13)의 일부의 기억영역에 라이트된 후, 내장 ROM(18)의 소거 또는 라이트의 프로그램의 실행이 개시되게 된다.
도 2는 내장 ROM(18)로서의 플래시메모리의 소거 또는 라이트시에 이용되는 내장 RAM(13)의 벡터어드레스 저장에리어 B-V를 포함하는 본 발명에 따른 어드레스맵의 제1 실시예를 도시한 것이다.
CPU(12)에 의해서 관리되는 어드레스공간, 바꿔말하면 CPU(12)가 액세스가능한 어드레스공간은 특히 제한되지 않지만, 64k바이트(H' 0000∼H' FFFF)로 된다.즉, 어드레스버스(24)의 비트수는 16비트로 된다.
내장 ROM(18)에 할당된 어드레스공간의 어드레스에리어 A는 32k바이트(H ' 0000∼H' 7FFF)로 된다. 이 어드레스에리어 A중 벡터어드레스에 관한 어드레스데이타가 저장되는 벡터어드레스 저장에리어 A-V는 256바이트(H' 0000∼H' 00FF)로 된다.
한편, 내장 RAM(13)에 할당된 어드레스공간의 어드레스에러어 B는 1k바이트(H' FC00∼H' FFFF)로 된다. 이 어드레스에리어 B는 도시하는 바와 같이 어드레스에리어 B-V를 포함한다. 이 어드레스에리어 B-V는 내장 ROM(18)의 온보드 라이트를 안전하게 실행하기 위해, 벡터어드레스 저장에리어 A-V를 대체하기 위한 에리어로 되고, 예를 들면 256바이트(H' FC00∼H' FCFF)가 설정된다. 따라서, 벡터어드레스 저장에리어 B-V는 내장 ROM(18)의 온보드 라이트 모드(사용자 프로그램 모드)중에 인터럽트요구 또는 예외처리요구가 발생한 경우에 이용되는 1개∼여러개의 벡터어드레스를 저장한다.
사용자 프로그램 모드 또는 부트 모드에 있어서의 플래시 메모리(18)의 소거 또는 라이트 상태에 있어서, CPU(12)가 인터럽트요구의 처리시에 벡터어드레스 저장에리어 A-V를 리드하도록 하는 경우에도 상기와 같이 벡터어드레스 저장에리어 B-V에 할당된 어드레스 H' FC00∼H' FCFF가 외관상 벡터어드레스 저장에리어 A-V로 이동되고 있으므로, 벡터어드레스 저장에리어 B-V가 액세스된다. 그것에 의해, 내장 ROM(18)로서의 플래시 메모리의 소거 또는 라이트중에 있어서 정확한 벡터어드레스가 벡터어드레스 저장에리어 B-V에서 얻어지므로, 플래시메모리(18)의 소거 또는 라이트중에도 CPU(12)는 인터럽트요구 및 예외처리요구에 따라서 원하는 인터럽트처리 및 예외처리를 정확하게 실행할 수 있다.
상기와 같은 벡터어드레스 에리어의 대체를 실현하기 위해서는 CPU(12)로부터 벡터어드레스신호가 출력되었을 때, 버스컨트롤러(27)에 의해서 내장 RAM(13)의 벡터어드레스 저장에리어 B-V가 액세스되고, 그 내용(소정의 벡터어드레스데이타)이 리드되도록 하면 좋다.
즉, 사용자 프로그램 모드 또는 부트 모드에서의 내장 ROM(18)로서의 플래시메모리의 소거 또는 라이트 상태에서, CPU(12)가 인터럽트 처리시에 플래시메모리(18)의 벡터어드레스 저장에리어 A-V를 리드하기 위한 어드레스신호를 발생했을때, 버스컨트롤러(27)이 다음과 같이 모듈선택신호를 제어하면 좋다. 즉, 버스컨트롤러(27)이 본래 활성화될 내장 ROM(18)의 모듈선택신호를 비활성화하고, 대신에 내장 RAM(13)의 모듈선택신호를 활성화하여 내장 RAM(13)의 벡터어드레스 저장에 리어 B-V가 리드되록 제어한다. 구체적으로는, 도 3에 도시된 바와 같은 제어회로(G1), (G2), (G3)을 도 1에 도시되는 버스컨트롤러(27)에 마련하면 좋다.
도 3은 내장 RAM(13)의 벡터어드레스 저장에리어 B-V를 플래시 메모리(18)의 벡터어드레스 저장에리어 A-V로 어드레스 변환하는 경우의 버스컨트롤러(27)의 주요부 구성예를 내장 ROM(18)과 내장 RAM(13)의 관계로 도시하고 있다.
버스컨트롤러(27)은 내장 ROM(18)을 선택하기 위한 내장 ROM 선택회로(29), 내장 RAM 선택회로(28) 및 제어논리회로(오동작 배제수단)으로 되는 게이트(G1)∼(G3)을 포함한다. 상기 내장 ROM 선택회로(29)는 내장 ROM(18)의 어드레스를 나타내는 어드레스신호가 상기 어드레스버스(24)에 있을 때 하이레벨"1"의 출력신호 A를 출력한다. 내장 RAM 선택회로(28)은 내장 ROM(18)의 벡터어드레스 저장에리어 A-V를 나타내는 어드레스신호가 상기 어드레스버스(24)에 있을 때 하이레벨"1"의 출력신호B를 출력하고, 내장 RAM(13)의 어드레스를 나타내는 어드레스 신호가 상기 어드레스버스(24)에 있을 때 하이레벨"1"의 출력신호C를 출력한다. 게이트(G1)은 내장 ROM(18)이 사용자 프로그램 모드 또는 부트 모드에 있어서의 소거 또는 라이트 상태이고 또한 벡터페치일 때 하이레벨로 되는 제어신호CONT의 반전신호와 출력신호A와의 AND 논리를 취하고, 내장 ROM(18)이 선택될 때 내장 ROM(18)의 모듈선택신호로 되는 선택신호 SEL1을 로우레벨"0"에서 하이레벨"1"로 어서트(assert)한다. 게이트(G2)는 제어신호CONT와 상기 출력신호B와의 AND 논리를 취하고, 그들 신호가 모두 하이레벨"1"로 될 때 하이레벨"1"의 출력신호D를 출력한다. 게이트(G3)은 출력신호C와 출력신호D를 받고, 출력신호C 또는 출력신호D가 하이레벨"1"로 될 때, 내장 RAM(18)의 모듈선택신호로 되는 선택신호 SEL2를 로우레벨"0"에서 하이레벨"1"로 어서트한다.
내장 ROM(32k 바이트)(18)의 액세스를 가능하게 하기 위해, 내장 ROM(18)에는 어드레스 A14∼A0(15비트)이 입력되고, 또 내장 RAM(1k 바이트)의 액세스를 가능하게 하기 위해 내장 RAM(13)에는 CPU로부터의 어드레스 A9∼A0(10비트)이 입력되도록 되어 있다.
내장 ROM 선택회로(29)에는 어드레스버스(24)를 거쳐서 CPU(12)에서 발생된 어드레스A15(1비트만)가 입력된다. 이 어드레스A15가 로우레벨인 경우, 즉 CPU(12)로 부터의 어드레스 A15∼A0이 "0xxx xxxx xxxx xxxx" (0은 로우레벨, x는 논리부정으로 되고, "0" 또는 "1" 모두 가능)인 경우에 출력신호A가 하이레벨로 된다. 즉, 내장 ROM(18)을 액세스하기 위한 어드레스신호가 어드레스버스(24)상으로 출력된 경우, 출력신호A가 하이레벨로 된다.
내장 RAM 선택회로(28)에는 어드레스버스(24)를 거쳐서 CPU(12)로 부터의 어드레스A15∼A8이 입력된다. CPU(12)로 부터의 어드레스 A15∼A0이 "0000 0000 xxxx xxxx"인 경우에 출력신호B가 하이레벨로 된다. 즉, 내장 ROM(18)의 벡터어드레스 저장에리어 A-V를 액세스하기 위한 어드레스신호가 어드레스버스(24)상으로 출력된 경우, 출력신호B가 하이레벨로 된다.
한편, 어드레스신호가 어드레스버스(24)상으로 출력된 경우, CPU(12)로 부터의 어드레스 A15∼A10이 "1111 1100 xxxx xxxx"인 경우에 출력신호C가 하이레벨로 된다. 즉, 내장 RAM(13)을 액세스하기 위한 어드레스신호가 어드레스버스(24)상으로 출력된 경우, 출력신호C가 하이레벨로 된다.
내장 ROM(18)의 소거 또는 라이트를 위해 소정의 외부단자Vpp를 거쳐서 고전압이 공급되도록 되어 있고, 이 고전압공급이 검출되고 또한 CPU(12)에 의해서 벡터 페치상태인 것을 나타내는 신호가 어서트된 경우, 제어신호 CONT가 하이레벨로 된다. 즉, 내장 ROM(18)이 소거 또는 라이트 상태이고 또한 벡터페치일 때, 제어신호 CONT가 하이레벨로 된다. 제어신호 CONT는 소정의 외부단자Vpp를 거쳐서 고전압이 공급되었는지의 여부 및 CPU(12)가 벡터 페치상태인지 아닌지를 판별할 수 있게 구성된 논리회로에 의해서 생성할 수 있다.
내장 ROM 선택회로(29)의 후단에는 내장 ROM 선택회로(29)의 출력신호A와 제어신호 CONT와의 AND논리를 얻기 위한 게이트(G1)이 배치되고, 게이트(G1)에서 출력되는 선택신호 SEL1이 하이레벨로 된 경우에, 내장 ROM(18)이 선택되도록 되어 있다. 또, 내장 RAM 선택회로(28)의 출력신호B와 제어신호 CONT와의 AND논리를 얻기 위한 게이트(G2)가 마련되고, 게이트(G2)의 출력논리와 내장 RAM 선택회로(28)의 출력신호C와의 OR논리를 얻기 위한 게이트(G3)이 마련되고, 게이트(G3)에서 출력되는 선택신호 SEL2가 하이레벨로 된 경우, 내장 RAM(13)이 선택되도록 되어 있다. 따라서, 어드레스 H' FC00∼H' FCFF가 액세스되는 경우, 선택신호 SEL1이 로우레벨로 되는 것에 의해 내장 ROM(18)의 선택이 금지되고, 그 대신 선택신호 SEL2가 하이레벨로 되는 것에 의해 내장 RAM(13)이 선택된다. 즉, 내장 RAM(13)에 의해서 내장 ROM(18)의 소거 또는 라이트시에 내장 ROM(18)상에 있는 벡터어드레스가 리드된다.
또한, 이 경우 내장 ROM(18)의 벡터어드레스 저장에리어 A-V를 지정하는 어드레스인 A9∼A0과 내장 RAM(13)의 벡터어드레스 저장에리어 B-V의 어드레스인 A9∼A0이 일치하고 있는 것이 전제로 된다. 따라서, 내장 ROM(18)의 벡터어드레스 저장에리어 A-V를 지정하는 어드레스인 A9∼A0과 내장 RAM(13)의 벡터어드레스 저장에리어 B-V의 어드레스인 A9∼A0이 일치하고 있지 않은 경우, 어드레스버스(24)와 내장 RAM(13) 사이에 어드레스 변환회로를 마련하고, 출력신호D가 하이레벨로 될 때 상기 어드레스 변환회로의 어드레스 변환기능이 동작하도록, 어드레스 변환회로를 설계할 필요가 있다. 이러한 어드레스 변환회로는 내장 RAM(13)의 벡터어드레스저장에리어 B-V의 어드레스공간 상에서의 배치를 자유롭게 한다.
다음에, 본 발명의 다른 실시예에 대해서 설명한다.
도 4는 다른 실시예에 있어서의 어드레스맵을 도시한 것이다.
도 4에 도시하는 바와 같이, 이 실시예에서는 사용자 프로그램 모드 또는 부트 모드에 있어서의 내장 ROM(18)의 소거 또는 라이트시에 벡터어드레스 에리어를 내장 RAM 에리어로 이동시키도록 하고 있다.
즉, 사용자 프로그램 모드 또는 부트 모드에 있어서의 플래시 메모리(18)의 소거 또는 라이트시에 있어서, 본래의 내장 ROM(18)의 벡터어드레스 저장에리어 A-V(H' 0000∼H' 00FF)가 아니고 내장 RAM의 벡터어드레스 저장에리어 B-V(H' FC00∼H' FCFF)로 벡터어드레스 에리어가 이동된다. 이 경우, 플래시 메모리의 소거 또는 라이트에 응답해서, 내장 RAM(13)에 미리 이용가능한 1개∼여러개의 벡터어드레스의 데이타를 라이트하고나서 플래시메모리(18)의 소거 또는 라이트가 개시된다.
즉, 내장 ROM(18)의 벡터어드레스 저장에리어 A-V를 액세스하기 위한 어드레스신호가 내장 RAM의 벡터어드레스 저장에리어 B-V를 액세스하기 위한 어드레스신호로 변환된다. 따라서, CPU(12)로부터 내장 ROM(18)의 벡터어드레스 저장에리어 A-V를 액세스하기 위한 어드레스신호가 출력되었을 때, 벡터어드레스 저장에리어 A-V를 액세스하기 위한 어드레스신호를 내장 RAM의 벡터어드레스 저장에리어 B-V를 액세스하기 위한 어드레스신호로 어드레스변환하는 어드레스 변환회로를 마련하면 좋다.
도 5는 도 1의 버스컨트롤러(27)에 마련되는 오동작 배제수단으로서의 어드레스 변환회로 ACC를 도시한 것이다.
어드레스 변환회로 ACC는 CPU(12)에서 출력되는 어드레스신호 A15∼A10과 상기 제어신호 CONT와의 OR논리를 얻기 위한 여러개의 제어논리회로(게이트회로)(G4) 및, 이 게이트회로(G4)의 출력 어드레스신호와 CPU(12)로 부터의 어드레스 A9∼A0에 따라서 내장 ROM(18) 및 내장 RAM(13)의 선택을 실행하기 위한 내장 ROM/내장 RAM 선택회로(31)에 의해서 실현할 수 있다. 상기 게이트(G4)와 내장 ROM/내장 RAM 선택회로(31)은 도 1에 도시한 버스컨트롤러(27)에 내장된다. 또한, 도 5에서는 게이트(G4)가 1개인 것으로 도시되어 있지만, 실제로는 어드레스 A15∼A10에 대응해서 6개 마련된다. 또, 내장 ROM/내장 RAM 선택회로(31)은 도 4의 내장 ROM 선택회로(29)와 내장 RAM 선택회로(28)을 포함하며, 도 4의 출력신호A가 모듈선택신호 SEL1로 되고, 도 4의 출력신호C가 모듈선택신호 SEL2로 된다.
상기의 구성에 있어서, CPU(12)로부터 벡터어드레스 저장에리어 A-V를 액세스하기 위한 어드레스신호 "0000 0000 xxxx xxxx"가 어드레스버스(24)로 출력된 경우, 그것이 벡터어드레스 저장에리어 B-V를 액세스하기 위한 어드레스신호 "1111 1100 xxxx xxxx"로 변환되어 내장 ROM/내장 RAM 선택회로(31)에 입력된다. 그것에 의해서, 내장 RAM(13)의 벡터어드레스 저장에리어 B-V가 선택되므로, 내장 ROM(18)의 소거 또는 라이트 상태에서, CPU(12)의 벡터페치가 내장 RAM(13)의 벡터어드레스 저장에리어 B-V에 대해서 실행된다. 또한, 도 5에 있어서 벡터어드레스 저장에리어 A-V는 "0000 0000 0000 0000"부터 시작하여 256바이트의 기억영역으로 하고,또한 벡터어드레스 저장에리어 B-V는 "1111 1100 0000 0000"부터 개시되도록 했으므로, 각 어드레스신호 A10 및 A9는 "0"으로 되어 있다. 에리어 B-V의 개시어드레스가 상기와 다른 경우는 적절하게 변경해야 한다는 것은 용이하게 이해할 수 있을 것이다.
이와 같이, 사용자 프로그램 모드 또는 부트 모드에 있어서의 내장 ROM(18)의 소거/라이트 상태에서 실행되는 벡터페치가 내장 ROM(18)의 벡터어드레스 저장에리어 A-V가 아니고 내장 RAM(13)의 벡터어드레스 저장에리어 B-V에 대해서 실행되므로, 상기 실시예(도 2 내지 도 3)의 경우와 마찬가지로 내장 ROM(18)로서의 플래시 메모리의 소거 또는 라이트중에 있어서 인터럽트요구 또는 예외처리요구가 발생한 경우에도, 내장RAM(13)의 벡터어드레스 저장에리어 B-V로부터 정확한 벡터어드레스가 얻어진다. 따라서, 마이크로컴퓨터의 폭주를 방지할 수 있고, 프로그램메모리의 온보드 라이트시의 시스템의 안전성의 향상을 도모할 수 있다. 또한, 이 실시예에서는 벡터어드레스의 페치인지 아닌지에 따라서, 내장 RAM(13)의 액세스와 내장 ROM(18)의 액세스를 전환할 필요는 없다.
또, NMI를 포함하는 전체 인터럽트요구를 무시하도록 해도, 프로그램메모리의 온보드 라이트시의 시스템의 안전성의 향상을 도모할 수 있다. 도 6은 내장 ROM(18)로서의 플래시 메모리의 소거 또는 라이트중에 있어서 NMI를 포함하는 전체 인터럽트를 무시하기 위한 게이트(G5)를 포함하는 버스컨트롤러(27)을 도시한 것이다.
도 6에 도시하는 바와 같이, 버스컨트롤러(27)은 인터럽트 제어회로(10)과CPU(12)사이에 오동작 배제수단으로서의 제어논리회로(게이트회로)(G5)를 포함한다. 상기 게이트회로(G5)는 플래시 메모리(18)이 소거 또는 라이트 상태시 하이레벨로 되는 제어신호 CONT' 를 받고, 하이레벨의 제어신호 CONT' 에 응답해서 활성상태로 제어된다. 한편, 제어신호 CONT' 가 로우레벨일 때, 상기 게이트회로(G5)는 비활성 상태로 제어된다.
인터럽트 제어회로(10)으로 부터의 인터럽트 예외처리 요구신호 IRQS가 하이레벨로 어서트된 경우에도, 플래시 메모리(18)의 소거 또는 라이트 상태를 나타내는 제어신호 CONT'가 하이레벨로 어서트되어 있는 경우, 상기 인터럽트 예외처리 요구신호 IRQS의 어서트상태는 CPU(12)로 전달되지 않게 된다. 따라서, CPU(12)는 플래시 메모리(18)이 소거 또는 라이트 상태일 때, CPU(12)는 벡터페치 동작을 실행하지 않으므로 벡터페치동작에 관계하는 오동작은 발생하지 않는다.
단, 이 경우 NMI는 정전 등의 비상사태를 마이크로컴퓨터(30)에 알리는데 유효한 수단이므로, 이것을 무시하면 정전 등의 하드웨어적인 원인에 의해 플래시 메모리(18)의 소거 또는 라이트가 실패하는 케이스를 구제할 수 없게 된다는 점에 주의해야 한다.
도 7은 사용자 프로그램 모드 또는 부트 모드에 있어서의 내장 ROM(18)의 소거, 라이트 또는 검증중에 인터럽트요구가 발생한 경우, 내장 ROM(18)의 소거제어 비트레지스터, 라이트제어 비트레지스터, 검증제어 비트레지스터를 리세트하는 오동작 배제수단으로서의 제어논리회로(G6)을 도시한다.
도 7에 도시한 바와 같이, 내장 ROM(18)의 소거, 라이트 및 검증은 각각 소거제어 비트레지스터(32), 라이트제어 비트레지스터(33), 검증제어 비트레지스터(34)에 대해서 제어비트를 세트하는 것에 의해 가능하게 된다. 따라서, 인터럽트 제어회로(10)으로 부터의 인터럽트 예외처리 요구신호 IRQS가 어서트된 경우, 상기 소거제어 비트레지스터(32), 라이트제어 비트레지스터(33), 검증제어 비트레지스터(34)가 리세트되도록 구성해도 좋다. 상기 소거제어 비트레지스터(32), 라이트제어 비트레지스터(33), 검증제어 비트레지스터(34)는 외부로 부터의 리세트요구 RESET1이나 워치독 타이머(19)로 부터의 리세트요구 RESET2에 따를 필요가 있다. 그 때문에, 리세트요구 RESET1 및 RESET2와 상기 인터럽트 예외처리 요구신호 IRQS와의 OR논리를 얻는 게이트(G6)이 마련된다. 게이트(G6)의 출력신호는 상기 소거제어 비트레지스터(32), 라이트제어 비트레지스터(33), 검증제어 비트레지스터(34)의 리세트단자로 공급된다. 이 구성에 따르면, 내장 ROM(18)의 소거, 라이트 또는 검증중에 라이트 요구가 발생한 경우에, 상기 소거제어 비트레지스터(32), 라이트제어 비트레지스터(33), 검증제어 비트레지스터(34)가 리세트되므로, 내장 ROM(18)의 소거, 라이트 또는 검증이 중지된다. 그것에 의해서, 마이크로컴퓨터(30)의 폭주를 방지할 수 있고, 프로그램메모리의 온보드 라이트시의 시스템의 안전성의 향상을 도모할 수 있다.
도 8은 도 3에 있어서 설명한 제어신호 CONT 및 도 5에 있어서 설명한 제어신호 CONT' 의 생성회로의 1예를 도시한 것이다.
도시하는 바와 같이, 고전압 검출회로(81)은 플래시 메모리(18)의 라이트 또는 소거시에 12V와 같은 고전압이 인가되는 외부단자 Vpp에 결합되고, 12V와 같은고전압의 공급에 응답해서 하이레벨의 출력신호V를 발생한다. 이 하이레벨의 출력신호V는 예를 들면 도 5의 제어신호 CONT' 로서 이용할 수 있다. 한편, 벡터어드레스 저장에리어의 이동을 허가할 것인지 허가하지 않을 것인지를 제어하는 허가비트 VATE(83)이 마이크로컴퓨터(30)에 마련된다. CPU(12)는 플래시 메모리(18)의 라이트모드(사용자 프로그램 모드 또는 부트 모드)의 설정에 응답해서, 소정의 명령(상기 허가비트 VATE(83)을 세트상태로 하기 위한 명령)을 실행한다. 그것에 의해서, 상기 허가비트 VATE(83)이 세트상태로 된다. AND게이트(G80)은 상기 출력신호V와 상기 허가비트 VATE(83)의 출력상태와의 AND논리를 취하는 게이트회로로 되고, 그 출력신호는 도 3의 제어신호 CONT로 된다. 이상과 같은 구성에 의해서, 도 3의 제어신호 CONT 및 도 5의 제어신호 CONT' 를 생성할 수 있다.
도 9는 도 1의 마이크로컴퓨터(30)의 플래시 메모리(18)의 프로그래밍방법을 상기에서 설명한 PROM 모드와 온보드 라이트 모드의 관계로 도시한 것이다.
도 9에 도시하는 바와 같이, 프로그래밍방법은 PROM 모드에 의한 플래시메모리(18)의 프로그래밍과 온보드 라이트모드에 의한 플래시 메모리(18)의 프로그래밍방법이 있다. 개시(1)은 PROM모드에 의한 플래시 메모리(18)의 프로그래밍의 개시를 나타내고 있고, 마이크로컴퓨터(30)의 동작모드가 상술한 방법에 의해서 PROM모드로 설정되고, 범용 PROM 라이터에 의해서 플래시 메모리(18)에 원하는 프로그램 데이타가 라이트된다(스텝S1). 그 후, 원하는 프로그램 데이타가 라이트된 마이크로컴퓨터(30)은 프린트 보드 등의 기판에 실장되고, 그리고 그 실장기판을 사용해서 마이크로컴퓨터 응용시스템이 조립된다(스텝S2).
한편, 개시(2)는 온보드 라이트 모드에 의한 플래시 메모리(18)의 프로그래밍의 개시를 나타내고 있고, 플래시 메모리(18)에 원하는 프로그램데이타가 라이트되어 있지 않은 상태에서 마이크로컴퓨터(30)이 프린트보드 등의 기판에 실장되고, 그리고 그 실장기판을 사용해서 마이크로컴퓨터 응용시스템이 조립된다(스텝S3). 그 후, 마이크로컴퓨터(30)의 동작모드가 상술한 방법에 의해서 부트 모드로 설정되고, 부트 프로그램에 따라서 플래시 메모리(18)에 원하는 프로그램데이타가 라이트된다(스텝S4). 이와 같이 하면, 사용자가 개발하는 소프트웨어 프로그램(응용 소프트)의 확정이 지연되어도, 소프트웨어 프로그램의 확정전에 마이크로컴퓨터 응용시스템의 하드웨어를 조립하고, 그 후 마이크로컴퓨터내의 플래시 메모리에 개발된 소프트웨어 프로그램을 라이트할 수 있다. 그것에 의해서, 마이크로컴퓨터 응용시스템의 출하를 신속화할 수 있다.
스텝S2 및 스텝S4 후에 마이크로컴퓨터 응용시스템은 플래시메모리(18)에 라이트된 원하는 프로그램데이타에 따라서 시스템동작을 실행하게 된다(스텝S5). 이 시기에 한번 출하한 마이크로컴퓨터 응용시스템의 소프트웨어에 관해 사양이 변경된 소프트웨어의 개발이나 기능이 추가된 소프트웨어(업그레이트판 또는 버젼업된 소프트웨어 등)의 개발이 실행되었을 때, 한번 출하된 응용시스템의 소프트웨어를 사용자측에서 상기 신규로 개발한 소프트웨어에 리라이트하는 것이 필요하게 되는 경우가 있다(케이스1). 또는, 마이크로컴퓨터 응용시스템의 이용자가 예를 들면 키보드의 기능을 영어모드에서 불어모드로 기능변경하는 등의 변경이 필요하게 되는 경우도 있다(케이스2). 이와 같은 케이스1 내지 케이스2와 같은 경우가 발생했을때, 플래시메모리(18)에 원하는 프로그램데이타의 리라이트가 필요하게 된다.
그래서, 스텝S6에 도시된 바와 같이, 마이크로컴퓨터(30)의 동작모드가 부트 모드 또는 사용자 프로그램 모드로 설정된다. 예를 들면, 상기 케이스1의 경우, 프로그램의 전면 리라이트가 필요한 경우도 있으므로, 마이크로컴퓨터(30)의 동작모드가 부트 모드로 설정되고, 플래시 메모리(18)의 프로그램데이타가 원하는 프로그램데이타에 리라이트된다. 한편, 상기 케이스2의 경우, 프로그램데이타의 일부분만의 리라이트에 의해서 대응가능하므로, 마이크로컴퓨터(30)의 동작모드가 사용자프로그램모드로 설정되고, 플래시 메모리(18)의 프로그램데이타의 일부의 데이타가 원하는 데이타로 리라이트된다.
스텝S6 후에 점선X로 나타내는 바와 같이 스텝5로 되돌아가고, 마이크로컴퓨터 응용시스템은 리라이트된 프로그램에 따라서 시스템동작을 실행하게 된다.
또한, 스텝S5 및 스텝S6은 필요에 따라서 반복된다.
도 10은 본 발명의 더욱 상세한 어드레스맵을 도시한 것으로서, 통상 모드(싱글칩 모드 내지 외부메모리 확장모드) 및 플래시메모리의 온보드 리라이트 모드의 사용자 프로그램 모드 또는 부트 모드시에 있어서의 NMI의 벡터어드레스와 그것에 대한 NMI 처리루틴의 저장에리어를 도시한 것이다. 또한, 도 10은 도 2 및 도 4에 도시하는 어드레스맵의 구체적인 1예로 되어도 좋다.
도 10에 도시한 바와 같이, 싱글칩 모드 내지 외부메모리 확장모드와 같은 통상모드에 있어서, NMI의 벡터어드레스 NMIA는 플래시 메모리(18)의 벡터어드레스 저장에리어 A-V에 저장되고, 그 벡터어드레스 NMIA에 대한 NMI 처리루틴 RA는 플래시 메모리(18)의 어드레스공간A의 일부에 저장된다. 즉, 벡터어드레스 NMIA는 NMI 처리루틴 RA의 선두어드레스를 나타내고 있다. 따라서, 통상모드에 있어서 NMI가 발생하면, CPU(12)는 NMI의 벡터어드레스 NMIA를 벡터페치 동작에 의해서 취득하고, 벡터어드레스 NMIA에 의해서 나타내지는 어드레스, 즉 NMI처리루틴 RA의 선두어드레스로 벡터점프해서 그 처리를 실행한다.
한편, 사용자 프로그램 모드 또는 부트 모드에 있어서의 플래시 메모리(18)의 온보드 리라이트시, NMI의 벡터어드레스 NMIB는 내장 RAM(13)의 벡터어드레스 저장에리어 B-V에 저장되고, 그 벡터어드레스 NMIB에 대한 NMI 처리루틴 RB는 내장 RAM(13)의 어드레스공간B의 일부에 저장된다. 즉, 벡터어드레스 NMIB는 NMI 처리루틴RB의 선두어드레스를 나타내고 있다. 사용자 프로그램 모드 또는 부트 모드에 있어서의 플래시 메모리(18)의 리라이트시에 NMI가 발생하면, CPU(12)는 NMI의 벡터어드레스 NMIB를 벡터페치 동작에 의해서 취득하고, 벡터어드레스 NMIB에 의해서 나타내지는 어드레스, 즉 NMI 처리루틴 RB의 선두어드레스로 벡터점프해서 그 처리를 실행한다.
따라서, 사용자 프로그램 모드 또는 부트 모드에 있어서의 플래시 메모리(18)의 온보드 리라이트시의 NMI는 플래시 메모리(18)에 저장되는 벡터어드레스 NMIA 내지 NMI 처리루틴 RA를 사용하지 않고, 내장 RAM(13)에 저장된 벡터어드레스 NMIB 내지 NMI 처리루틴 RB를 이용해서 실행된다. 그 때문에, 사용자 프로그램 모드 또는 부트 모드에 있어서의 플래시 메모리(18)의 온보드 리라이트시에 있어서의 NMI가 확실하게 처리된다. 이 경우, 내장 RAM(13)의 벡터어드레스 저장에리어 B-V 내지 NMI 처리루틴 RB 등의 저장에리어는 리라이트시의 작업영역으로서의 사용을 제한받는다는 것에 주의할 필요가 있다.
또한, 벡터어드레스 저장에리어 A-V와 벡터어드레스 저장에리어 B-V의 어드레스의 이동에 관해서는 도 3 내지 도 5에 도시된 방법을 이용할 수 있고, 제어신호 CONT 내지 CONT' 에 의해서 벡터어드레스 저장에리어 A-V와 벡터어드레스 저장에리어 B-V의 어드레스가 이동된다.
도 11은 사용자 프로그램 모드 또는 부트 모드에서의 온보드 리라이트시에 있어서의 NMI의 이용방법과 그 형성회로를 설명하기 위한 도면을 도시하고 있다.
본 발명에 따른 마이크로컴퓨터(30)은 전압유지수단(110) 및 NMI 신호생성수단(112)와 함께 프린트기판(120)에 실장된다.
상기 전압유지수단(110)은 Vcc전원(통상은 5V)이 규정값 이하, 예를 들면 4.5V 이하로 저하한 경우, 일정 시간(예를 들어 1ms정도) Vcc단자를 4.5V 이상으로 유지하는 기능을 포함한다. 또, 마이크로컴퓨터(30)은 폭주해서 내부의 상태를 파괴하는 일이 없도록 준비된 모드, 예를 들면 시스템클럭의 발진을 정지시키는 소프트웨어 스탠바이 모드를 설정한다. 이러한 목적을 위해, 상기 전압유지수단(110)은 예를 들면 대용량의 콘덴서 등을 이용해서 형성된다. 전압유지수단(110)은 Vcc전원이 더욱 저하해도 예를 들면 0V로 저하해도, 마이크로컴퓨터(30)의 전원단자 Vcc의 전위를 마이크로컴퓨터(30)이 소프트웨어 스탠바이 모드를 유지할 수 있는 전압(예를 들면 2.0V)으로 유지한다. 이러한 목적을 위해, 상기 전압유지수단(110)은 예를 들면 2차 전지 등도 포함시켜 구성된다.
NMI 신호생성수단(112)는 Vcc전원(통상은 5V)이 규정값 이하 예를 들면 4.5V 이하로 저하한 경우, 그것을 검출해서 NMI를 생성한다. NMI 신호생성수단(112)는 마이크로컴퓨터(30)의 NMI 신호입력단자에 5V∼0V로 변화하는 하강에지를 생성하여 NMI를 어서트한다.
플래시메모리(18)의 온보드 리라이트 모드시(사용자 프로그램 모드 또는 부트 모드시)에 있어서, Vcc전원(통상은 5V)이 규정값 이하로 저하한 경우, 플래시 메모리(18)의 온보드 리라이트를 실행할 수 없게 된다. 그 때문에, 상술한 바와 같이 Vcc전원(통상은 5V)이 규정값 이하로 저하한 것이 검출되고, NMI가 발생되어 플래시 메모리(18)의 리라이트 작업이 중단되고, CPU(12)에 의해서 NMI 처리루틴 RB가 실행되게 된다. 이 경우, NMI가 CPU(12)에 의해서 접수되었을 때, CPU(12)의 범용레지스터(R0)∼(R15)나 프로그램카운터(PC) 등의 내용은 특히 제한되지 않지만 외부메모리에 스택된다.
따라서, NMI 처리루틴 RB로부터의 복귀시, 상술한 스택포인터(SP)의 값에 따라서 NMI 접수시의 상태로 범용레지스터(R0)∼(R15)나 프로그램카운터(PC) 등의 내용을 복귀시킬 수 있다는 이점이 있다. 또는, 스택포인터(SP)의 값에 따라서 범용레지스터(R0)∼(R15)나 프로그램카운터(PC) 등의 내용을 저장하는 외부메모리를 액세스하고, 그 내용으로부터 플래시 메모리(18)의 리라이트상황을 해석할 수 있는 등의 이점이 있다.
도 12는 플래시 메모리(18)의 온보드 리라이트 모드(사용자 프로그램 모드의 예)시, 그 개시부터 종료시점까지 실행되는 리라이트 처리흐름을 도시한 것이다.
도 12에 도시한 바와 같이, 먼저 최초에 개시스텝 S12로서 플래시 메모리(18)의 리라이트 개시의 명령이 CPU(12)에 대해서 발행된다. CPU(12)는 필요가 있으면 리라이트 작업에리어로 될 어드레스영역의 내용을 퇴피시키는 등의 전처리를 실행한다(스텝S13). 상기 리라이트 작업에리어는 예를 들면 내장 RAM(18)의 어드레스영역의 일부 또는 외부메모리 확장모드에 있어서의 외부 RAM의 어드레스영역의 일부로 되어도 좋다.
다음의 스텝S14로서, 리라이트루틴이 예를 들면 CPU(12)에 의해서 상기 리라이트 작업에리어에 라이트된다. 상기 리라이트 루틴은 라이트제어 프로그램이나 NMI 처리루틴 RB 등을 포함한다. 또, 상기 리라이트 루틴은 플래시 메모리(18)내에 저장되어 있는 경우, 또는 외부에서 마이크로컴퓨터(30)으로 공급되는 경우 등이 있다.
다음에, NMI 처리루틴 RB에 대응하는 벡터어드레스 NMIB가 예를 들면 CPU(12)에 의해서 내장RAM(13)의 벡터어드레스 저장에리어 B-V에 라이트된다(스텝S15). 그리고, 도 8에 도시한 바와 같이, CPU(12)가 벡터어드레스 이동허가비트 VATE(82)를 세트상태로 설정한다(스텝S16). 이상과 같은 전처리가 실행된다.
그 후, 스텝S17에 있어서, CPU(12)는 리라이트 작업에리어에 라이트된 상기 리라이트 루틴을 실행하고, 플래시메모리(18)의 프로그램데이타의 리라이트를 실행한다. 플래시 메모리(18)에 라이트될 프로그램 데이타는 마이크로컴퓨터(30)의 외부에서 공급된다. 리라이트처리(스텝S17)의 완료후, 이하의 후처리가 CPU(12)에 의해서 실행된다.
즉, 스텝S16에서 설정된 벡터어드레스 이동허가비트 VATE(82)를 리세트상태로 변경한다(스텝S18). 즉, 허가비트 VATE(82)가 클리어된다. 그 후, CPU(12)는 필요가 있다면, 리라이트 작업에리어의 내용을 회복시키나 퇴피시키는 등의 후처리를 실행한다(스텝S19), 즉, 스텝Sl1에서 퇴피처리가 실행된 경우에는 스텝S19에서 그 회복처리가 실행된다.
그리고, 스텝20에 있어서, 플래시메모리(18)의 리라이트완료의 통지 또는 리세트개시가 실행되고, 플래시메모리(18)의 리라이트처리가 완료한다.
다음에, 내장 플래시 메모리(18)의 구체적 구성에 대해서 설명한다.
도 13 및 도 14는 플래시메모리(18)의 메모리셀의 원리를 도시한 도면이다. 도 13에 예시적으로 도시된 메모리셀은 2층 게이트구조의 절연게이트형 전계효과 트랜지스터로 구성되어 있다. 도 13에 있어서, (1)은 P형 실리콘기판, (14)는 상기 실리콘기판(1)에 형성된 P형 반도체영역, (13)은 N형 반도체영역, (15)는 저농도의 N형 반도체영역이다. (8)은 터널절연막으로서의 얇은 산화막(7)(예를 들면, 두께 10 nm)을 거쳐서 상기 P형 실리콘기판(1)상에 형성된 플로팅게이트, (11)은 산화막(9)를 거쳐서 상기 플로팅게이트(8)상에 형성된 컨트롤게이트이다. 소오스는 (13), (15)에 의해서 구성되고, 드레인은 (13), (14)에 의해서 구성된다. 이 메모리셀에 기억되는 정보는 실질적으로 임계값전압의 변화로서 트랜지스터에 유지된다. 이하, 특별히 언급하지 않는 한 메모리셀에 있어서 정보를 기억하는 트랜지스터(이하, 기억트랜지스터라고 함)가 N채널형인 경우에 대해서 기술한다.
메모리셀로의 정보의 라이트동작은 예를 들면 컨트롤게이트(11) 및 드레인에 고압을 인가해서 애벌랜치 주입에 의해 드레인측으로부터 플로팅게이트(8)로 전자를 주입하는 것에 의해 실현된다. 이 라이트동작에 의해 기억트랜지스터는 도 14에 도시하는 바와 같이, 그 컨트롤게이트(7)에서 본 임계값전압이 라이트동작을 실행하지 않은 소거상태의 기억트랜지스터에 비해 높아진다.
한편, 소거동작은 예를 들면 소오스에 고전압을 인가해서 터널현상에 의해 플로팅게이트(8)에서 소오스측으로 전자를 추출하는 것에 의해서 실현된다. 도 14에 도시하는 바와 같이, 소거동작에 의해 기억트랜지스터는 그 컨트롤게이트(11)에서 본 임계값 전압이 낮아진다. 도 14에서는 라이트 및 소거상태의 어느 한 경우에 있어서도 기억트랜지스터의 임계값은 정의 전압레벨로 된다. 즉, 워드선에서 컨트롤게이트(11)에 부여되는 워드선 선택레벨에 대해서 라이트상태의 임계값전압은 높아지고, 소거상태의 임계값 전압은 낮아진다. 쌍방의 임계값 전압과 워드선 선택레벨이 그와 같은 관계를 갖는 것에 의해서, 선택트랜지스터를 채용하는 일없이 1개의 트랜지스터로 메모리셀을 구성할 수 있다. 기억정보를 전기적으로 소거하는 경우에 있어서는 플로팅게이트(8)에 축적된 전자를 소오스전극으로 추출하는 것에 의해 기억정보의 소거가 실행되므로, 비교적 긴 시간동안 소거동작을 계속하면 라이트동작시에 플로팅게이트(8)에 주입한 전자의 양보다 많은 전자가 추출되게 된다. 그 때문에, 전기적 소거를 비교적 긴 시간동안 계속하는 과소거를 실행하면, 기억트랜지스터의 임계값 전압은 예를 들면 부의 레벨로 되어 워드선의 비선택레벨에 있어서도 선택되는 불합리를 발생시킨다. 또한, 라이트도 소거와 마찬가지로 터널전류를 이용해서 실행할 수도 있다.
리드동작에 있어서는 상기 메모리셀에 대해서 약한 라이트, 즉 플로팅게이트(8)에 대해서 바람직하지 않은 캐리어의 주입이 실행되지 않도록, 드레인 및 컨트롤게이트(11)에 인가되는 전압이 비교적 낮은 값으로 제한된다. 예를 들면, 1V정도의 저전압이 드레인(10)에 인가됨과 동시에, 컨트롤게이트(11)에 5V정도의 저전압이 인가된다. 이들 인가전압에 의해서 기억트랜지스터를 흐르는 채널전류의 대소를 검출하는 것에 의해, 메모리셀에 기억되어 있는 정보의 "0", "1"을 판정할 수 있다.
도 15는 상기 기억트랜지스터를 사용한 메모리셀 어레이의 구성원리를 도시한 것이다. 동일 도면에는 대표적으로 4개의 기억트랜지스터(메모리셀)Q1∼Q4가 도시되어 있다. X, Y방향으로 매트릭스 배치된 메모리셀에 있어서, 동일행에 배치된 기억트랜지스터 Q1, Q2(Q3, Q4)의 컨트롤게이트(메모리셀의 선택게이트)는 각각 대응하는 워드선WL1(WL2)에 접속되고, 동일 열에 배치된 기억트랜지스터 Q1, Q3(Q2, Q4)의 드레인영역(메모리셀의 입출력 노드)은 각각 대응하는 데이타선 DL3, DL4에 접속되어 있다. 상기 기억트랜지스터 Q1, Q3(Q2, Q4)의 소오스영역은 소오스선 SL1(SL2)에 결합된다.
도 16은 메모리셀에 대한 소거동작 및 라이트동작을 위한 전압조건의 1예를 도시한 것이다. 동일 도면에 있어서, 메모리소자는 메모리셀을 의미하며, 게이트는 메모리셀의 선택게이트로서의 컨트롤게이트를 의미한다. 동일 도면에 있어서, 부전압방식의 소거는 컨트롤게이트에 예를 들면 -10V와 같은 부전압을 인가하는 것에의해서, 소거에 필요한 고전계를 형성한다. 동일 도면에 예시되는 전압조건에서 명확한 바와 같이, 정전압방식의 소거에 있어서는 적어도 소오스가 공통 접속된 메모리셀에 대해서 일괄소거를 실행할 수 있다. 따라서, 도 15의 구성에 있어서, 소오스선 SL1, SL2가 접속되어 있으면, 4개의 메모리셀 Q1∼Q4는 일괄소거 가능하게 된다. 이 경우, 동일 소오스선에 연결되는 메모리비트의 수를 변경하는 것에 의해, 메모리블럭의 사이즈를 임의로 설정할 수 있다. 소오스선 분할방식에는 도 15에 대표적으로 도시하는 바와 같은 데이타선을 단위로 하는 경우(공통 소오스선을 데이타선방향으로 연장시킨다) 이외에, 워드선을 단위로 하는 경우(공통 소오스선을 워드선방향으로 연장시킨다)가 있다. 한편, 부전압 방식의 소거에 있어서는 컨트롤게이트가 공통 접속된 메모리셀에 대해서 일괄소거를 실행할 수 있다.
도 17은 일괄소거 가능한 메모리블럭의 기억용량을 서로 다르게 한 플래시메모리(18)의 1예의 회로블럭을 도시한 것이다.
동일 도면에 도시되어 있는 플래시 메모리(18)(이하, FMRY라고도 함)은 8비트의 데이타 입출력단자 D0∼D7을 갖고, 각 데이타 입출력단자마다 메모리매트 ARY0∼ARY7을 구비한다. 메모리매트 ARY0∼ARY7은 특히 제한되지 않지만, 상대적으로 기억용량이 큰 메모리블럭 LMB와 상대적으로 기억용량이 작은 메모리블럭 SMB로 2분할되어 있다. 도면에는 대표적으로 메모리매트 ARY0의 상세가 도시되어 있지만, 그 밖의 메모리매트 ARY1∼ARY7도 마찬가지로 구성되어 있다. 각 메모리블럭은 동일한 기억용량으로 되어도 좋다.
각각의 메모리매트 ARY0∼ARY7에는 상기 도 13에서 설명한 2층 게이트구조의절연게이트형 전계효과 트랜지스터에 의해서 구성된 메모리셀 MC가 매트릭스 배치되어 있다. 마찬가지로, 동일 도면에 있어서 WL0∼WLn은 모든 메모리매트 ARY0∼ARY7에 공통인 워드선이다. 동일 행에 배치된 메모리셀의 컨트롤게이트는 각각 대응하는 워드선에 접속된다. 각각의 메모리매트 ARY0∼ARY7에 있어서, 동일 열에 배치된 메모리셀 MC의 드레인영역은 각각 대응하는 데이타선 DL0∼DL7에 접속되어 있다. 메모리블럭 SMB를 구성하는 메모리셀 MC의 소오스영역은 소오스선SL1에 공통 접속되고, 메모리블럭 LMB를 구성하는 메모리셀 MC의 소오스영역은 소오스선 SL2에 공통 접속되어 있다.
상기 소오스선 SL1, SL2에는 전압출력회로 VOUT1, VOUT2로부터 소거에 이용되는 고전압Vpp가 공급된다. 전압출력회로 VOUT1, VOUT2의 출력동작은 소거블럭 지정레지스터의 비트B1, B2의 값에 따라서 선택된다. 예를 들면, 소거블럭 지정레지스터의 비트B1에 "1"이 설정되는 것에 의해서, 각 메모리매트 ARY0∼ARY7의 메모리블럭 SMB만이 일괄소거 가능하게 된다. 소거블럭 지정레지스터의 비트B2에 "1"이 설정된 경우는 각 메모리매트 ARY0∼ARY7의 메모리블럭 LMB만이 일괄소거 가능하게 된다. 쌍방의 비트B1, B2에 "1" 이 설정되었을 때는 플래시 메모리 전체가 일괄소거 가능하게 된다.
상기 워드선 WL0∼WLn의 선택은 로우어드레스 버퍼 XABUFF 및 로우어드레스래치 XALAT를 거쳐서 페치되는 로우어드레스신호 AX를 로우어드레스 디코더XADEC가 해독하는 것에 의해서 실행된다. 워드드라이버 WDRV는 로우어드레스 디코더XADEC에서 출력되는 선택신호에 따라서 워드선을 구동한다. 데이타 리드동작에 있어서 워드드라이버 WDRV는 전압선택회로 VSEL에서 공급되는 5V와 같은 전압Vcc와 0V와 같은 접지전위를 전원으로 해서 동작되고, 선택될 워드선을 전압Vcc에 의해서 선택레벨로 구동하고, 비선택으로 될 워드선을 접지전위와 같은 비선택레벨로 유지시킨다. 데이타의 라이트동작에 있어서, 워드드라이버 WDRV는 전압선택회로 VSEL에서 공급되는 12V와 같은 전압Vpp와 0V와 같은 접지전위를 전원으로 해서 동작되고, 선택될 워드선을 12V와 같은 라이트용 고전압레벨로 구동한다. 데이타의 소거동작에 있어서 워드드라이버 WDRV의 출력은 0V와 같은 낮은 전압레벨로 된다.
각각의 메모리매트 ARY0∼ARY7에 있어서, 상기 데이타선 DL0∼DL7은 칼럼선택 스위치 YS0∼YS7을 거쳐서 공통데이타선 CD에 공통 접속된다. 칼럼선택 스위치 YS0∼YS7의 스위치제어는 칼럼어드레스 버퍼 YABUFF 및 칼럼어드레스 래치 YALAT를 거쳐서 페치되는 칼럼어드레스신호 AY를 칼럼어드레스 디코더 YADEC가 해독하는 것에 의해서 실행된다. 칼럼어드레스 디코더 YADEC의 출력선택신호는 모든 메모리매트 ARY0∼ARY7로 공통으로 공급된다. 따라서, 칼럼어드레스 디코더 YADEC의 출력선택신호중의 어느 1개가 선택레벨로 되는 것에 의해, 각 메모리매트 ARY0∼ARY7에 있어서 공통데이타선CD에는 1개의 데이타선이 접속된다.
메모리셀MC로부터 공통데이타선CD에 리드된 데이타는 선택스위치RS를 거쳐서 센스앰프 SAMP에 부여되고, 여기에서 증폭되어 데이타 출력래치 DOLAT를 거쳐서 데이타 출력버퍼 DOBUFF에서 외부로 출력된다. 상기 선택스위치 RS는 리드동작과 동기해서 선택레벨로 된다. 외부에서 공급되는 라이트데이타는 데이타입력버퍼 DIBUFF를 거쳐서 데이타 입력래치회로 DILAT에 유지된다. 데이타 입력래치회로DILAT에 유지된 데이타가 "0"일 때, 라이트회로 WRIT는 선택스위치 WS를 거쳐서 공통데이타선CD로 라이트용의 고전압을 공급한다. 이 라이트용 고전압은 칼럼어드레스신호 AY에 의해서 선택된 데이타선을 통해서 로우어드레스신호AX에 의해 컨트롤게이트에 고전압이 인가되는 메모리셀의 드레인으로 공급되고, 이것에 의해서 상기 메모리셀이 라이트된다. 상기 선택스위치 WS는 라이트동작과 동기해서 선택레벨로 된다. 라이트 및 소거의 각종 타이밍이나 전압의 선택제어는 라이트/소거 제어회로 WECONT가 생성한다.
도 18은 도 1의 마이크로컴퓨터(30)에 내장되는 플래시메모리(18)(FMRY)의 전체적인 블럭도를 도시한 것이다. 동일 도면에 있어서, ARY는 상기 도 13에서 설명한 2층 게이트구조의 절연게이트형 전계효과 트랜지스터에 의해서 구성된 메모리셀을 매트릭스 배치한 메모리어레이이다. 이 메모리어레이 ARY는 도 17에서 설명한 구성과 마찬가지로, 메모리셀의 컨트롤게이트는 각각 대응하는 워드선에 접속되고, 메모리셀의 드레인영역은 각각 대응하는 데이타선에 접속되고, 메모리셀의 소오스영역은 메모리블럭마다 공통의 소오스선에 접속되어 있지만, 메모리블럭의 분할상태는 도 17과는 상이하다. 예를 들면, 상대적으로 각각의 기억용량이 큰 7개의 대(大)메모리블럭(대블럭) LMB0∼LMB6과 상대적으로 각각의 기억용량이 작은 8개의 소(小)메모리블럭(소블럭) SMB0∼SMB7로 분할되어 있다. 대메모리블럭은 프로그램 저장영역 또는 대용량 데이타저장영역 등으로 이용된다. 소메모리블럭은 소용량 데이타저장영역 등으로 이용된다.
도 18에 있어서, ALAT는 어드레스신호 PAB0∼PAB15의 래치회로이다. 제1 동작모드(PROM모드 이외의 동작모드)에 있어서 그 어드레스신호 PAB0∼PAB15는 중앙처리장치 CPU(12)의 출력어드레스신호에 대응되고, 어드레스버스(24)에서 공급된다. 제2 동작모드(PROM 모드)에서는 어드레스신호 PAB0∼PAB15는 PROM 라이터의 출력어드레스신호에 대응된다. XADEC는 어드레스래치 ALAT를 거쳐서 페치되는 로우어드레스신호를 해독하는 로우어드레스 디코더이다. WDRV는 로우어드레스 디코더 XADEC에서 출력되는 선택신호에 따라서 워드선을 구동하는 워드드라이버이다. 데이타 리드동작에 있어서, 워드드라이버 WDRV는 5V와 같은 전압으로 워드선을 구동하고, 데이타의 라이트동작에서는 12V와 같은 고전압으로 워드선을 구동한다. 데이타의 소거동작에 있어서, 워드드라이버 WDRV의 모든 출력은 0V와 같은 낮은 전압레벨로 된다. YADEC는 어드레스래치 YALAT를 거쳐서 페치되는 컬럼어드레스신호를 해독하는 칼럼어드레스 디코더이다. YSEL은 칼럼어드레스 디코더 YADEC의 출력선택신호에 따라서 데이타선을 선택하는 칼럼어드레스 디코더이다. SAMP는 데이타 리드동작에 있어서, 칼럼선택회로 YSEL에 의해 선택된 데이타선으로부터의 리드신호를 증폭하는 센스앰프이다. DOLAT는 센스앰프의 출력을 유지하는 데이타 출력래치이다. DOBUFF는 데이타 출력래치 DOLAT가 유지하는 데이타를 외부로 출력하기 위한 데이타 출력버퍼이다. 도면에 있어서, PDB0∼PDB7은 하위 8비트(1바이트) 데이타로서, 도 1의 데이타버스(26)으로 공급된다. PDB8∼PDB15는 상위 8비트(1바이트) 데이타로서, 도 1의 데이타버스(25)로 공급된다. 이 예에 따르면, 출력데이타는 최대 2바이트로 된다. DIBUFF는 외부에서 공급되는 라이트데이타를 페치하기 위한 데이타 입력버퍼이다. 데이타 입력버퍼DIBUFF에서 페치된 데이타는 데이타 입력래치회로DILAT에 유지된다. 데이타 입력래치회로 DILAT에 유지된 데이타가 "0"일때, 라이트회로 WRIT는 컬럼선택회로YSEL에 의해 선택된 데이타선으로 라이트용 고전압을 공급한다. 이 라이트용 고전압은 로우어드레스신호에 따라서 컨트롤게이트에 고전압이 인가되는 메모리셀의 드레인으로 공급되고, 이것에 의해서 상기 메모리셀이 라이트된다. ERASEC는 지정된 메모리블럭의 소오스선으로 소거용 고전압을 공급해서 메모리블럭의 일괄소거를 실행하기 위한 소거회로이다.
FCONT는 플래시 메모리 FMRY에 있어서의 데이타 리드동작의 타이밍제어와 라이트 및 소거를 위한 각종 타이밍이나 전압의 선택제어 등을 실행하는 제어회로이다. 이 제어회로 FCONT는 제어레지스터 CREG를 구비한다.
도 19는 제어레지스터 CREG의 1예를 도시한 것이다. 제어레지스터 CREG는 각각 8비트의 프로그램/소거 제어레지스터 PEREG와 소거블럭 지정레지스터 MBREG1 및 MBREG2에 의해서 구성된다. 프로그램/소거 제어레지스터 PEREG에 있어서, Vpp는 리라이트용 고전압 인가에 따라서 "1"로 되는 고전압 인가플래그이다. E비트는 소거동작을 지시하는 비트로 되고, EV비트는 소거에 있어서의 검증동작의 지시비트로 된다. P비트는 라이트동작(프로그램동작)의 지시비트로 되고, PV비트는 라이트에 있어서의 검증동작의 지시비트로 된다. 소거블럭 지정레지스터 MBREG1 및 MBREG2는 각각 7분할된 대블럭과 8분할된 소블럭에 포함되는 어느 메모리블럭을 소거할지를 지정하는 레지스터로서, 그의 제0 비트∼제7 비트는 각 메모리블럭의 지정용 비트로 되고, 예를 들면 비트"1"은 대응 메모리블럭의 선택을 의미하고, 비트"0"은 대응 메모리블럭의 비선택을 의미한다. 예를 들면, 소거블럭 지정레지스터 MBREG2의제7 비트가 "1"일 때는 소메모리블럭 SMB7의 소거가 지정된다.
상기 제어레지스터 CREG는 외부로부터 리드/라이트가능하게 되어 있다. 제어회로 FCONT는 그의 제어레지스터 CREG의 설정내용을 참조하여, 그것에 따라서 소거/라이트 등의 제어를 실행한다. 외부에 있어서는 그의 제어레지스터 CREG의 내용을 리라이트하는 것에 의해서, 소거/라이트 동작의 상태를 제어할 수 있다.
도 18에 있어서, 제어회로 FCONT로는 제어신호로서 FLM, MS-FLN, MS-MISN, M2RDN, M2WRN, MRDN, MWRN, IOWORDN 및 RST가 공급되고, 또 상위 1바이트의 데이타 PDB8∼PDB15와 어드레스신호 PAB0∼PAB15의 소정 비트가 부여된다.
제어신호 FLM은 플래시 메모리 FMRY의 동작모드를 지정하는 신호로서, 그의 "0"이 제1 동작모드를 지정하고, "1"이 제2 동작모드를 지정한다. 이 신호FLM은 예를 들면 상기 모드신호 MD0∼MD2에 따라서 형성된다.
제어신호 MS-FLN은 플래시 메모리 FMRY의 선택신호로서, 그의 "0"이 선택을 지시하고, "1"이 비선택을 지시한다. 제1 동작모드에서는 중앙처리장치 CPU가 그의 제어신호 MS-FLN을 출력하고, 제2 동작모드에 있어서 그의 제어신호 MS-FLN은 PROM 라이터 PRW에서 공급되는 칩 인에이블신호 CE*에 대응된다.
제어신호 MS-MISN은 제어레지스터 CREG의 선택신호이다. 이 때, 프로그램/소거 제어레지스터 PEREG와 소거블럭 지정레지스터 MBREG1 및 MBREG2중의 어느것을 선택할지는 어드레스신호 PAB0∼PAB15의 소정 비트를 참조해서 결정된다. 제1 동작모드에서는 중앙처리장치 CPU가 그의 제어신호 MS-MISN을 출력한다. 제2 동작모드에서는 특히 제한되지 않지만, PROM 라이터가 출력하는 최상위 어드레스비트 EA16이 그의 제어신호 MS-MISN으로 간주된다.
M2RDN은 메모리리드 스트로브신호, M2WRN은 메모리라이트 스트로브신호, MRDN은 제어레지스터 CREG의 리드신호, MWRN은 제어레지스터 CREG의 라이트신호이다. 제1 동작모드에서는 중앙처리장치 CPU가 그들 제어신호를 출력한다. 제2 동작모드에서는 특히 제한되지 않지만, PROM 라이터에서 공급되는 라이트 인에이블신호 WE*가 상기 신호 M2WRN, MWRN으로 간주되고, PROM 라이터에서 공급되는 출력 인에이블신호 OE*가 상기 신호 M2RDN, MRDN으로 간주된다. 또한, 메모리라이트 스트로브신호 M2WRN은 메모리셀에 라이트할 데이타를 데이타 입력 래치회로 DILAT에 라이트하기 위한 스트로브신호로 간주된다. 메모리셀로의 실제의 라이트는 상기 제어레지스터 CREG의 P비트를 세트하는 것에 의해서 개시된다.
IOWORDN은 플래시 메모리 FMRY에 대한 8비트의 리드액세스와 16비트의 리드액세스의 전환신호로 된다. 제2 동작모드에 있어서는 상기 제어신호 IOWORDN은 8비트의 리드액세스를 지시하는 논리값으로 고정된다.
RST는 플래시 메모리 FMRY의 리세트신호이다. 이 신호RST에 의해서 플래시 메모리 FMRY가 리세트되는 것에 의해, 또는 상기 프로그램/소거 제어레지스터 PEREG의 Vpp플래그가 "0"으로 되는 것에 의해, 상기 프로그램/소거 제어레지스터 PEREG에 있어서의 EV, PV, E, P의 각 모드설정 비트가 클리어된다. 따라서, 도 7에 도시한 게이트(G7)의 출력이 리세트신호 RST로 되는 것에 의해서, 제어레지스터 PEREG의 각 비트를 클리어할 수 있다.
이상 본 발명자에 의해서 이루어진 발명을 실시예에 따라서 구체적으로 설명하였지만, 본 발명은 그것에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에 있어서 여러가지로 변경가능한 것은 물론이다.
예를 들면, 상기 실시예에서는 플래시 메모리의 라이트는 열전자에 의해 실행되는 것으로 하였지만, 터널효과에 의해 실행하는 것이라도 좋다.
또, 상기 실시예에서는 내장 ROM(18)로서 플래시 메모리를 적용하였지만, EPROM 등과 같이 사용자 프로그램 모드와 같은 온보드 라이트가 가능하게 되는 다른 반도체메모리를 적용할 수 있다.
이상의 설명에서는 주로 본 발명자에 의해서 이루어진 발명을 그 배경으로 된 이용분야인 싱글칩 마이크로컴퓨터에 적용한 경우에 대해서 설명하였지만, 본 발명은 그것에 한정되는 것은 아니고, 각종 데이타처리장치에 널리 제공할 수 있다.
본 발명은 적어도 전기적으로 소거 또는 라이트가 가능한 프로그램메모리를 포함하는 것을 조건으로 적용할 수 있다.
본원에 있어서 개시되는 발명중 대표적인 것에 의해서 얻어지는 효과를 간단히 설명하면 다음과 같다.
즉, 오동작 배제수단에 의해서 프로그램 메모리에 정확한 데이타가 존재하지 않는 경우에 있어서의 상기 프로그램 메모리의 소거 또는 라이트중의 인터럽트발생에 기인하는 오동작이 배제되고, 그것에 의해서 프로그램메모리의 온보드 라이트시의 시스템의 안전성의 향상을 도모할 수 있다.
프로그램 메모리의 소거 또는 라이트중의 인터럽트요구에 따라서 랜덤 액세스 가능한 기억수단의 일부가 프로그램 메모리의 벡터어드레스 에리어로 이동되는 것에 의해, 프로그램 메모리의 소거 또는 라이트중에 있어서의 인터럽트발생에 대해서 정확한 벡터어드레스의 취득이 가능하게 되고, 그것에 의해 프로그램 메모리의 온보드 라이트시의 시스템의 안전성의 향상을 도모할 수 있다.
프로그램 메모리의 소거 또는 라이트중의 인터럽트요구에 따라서 프로그램 메모리의 벡터어드레스 에리어가 기억수단으로 이동되는 것에 의해, 프로그램 메모리의 소거 또는 라이트중에 있어서의 인터럽트발생에 대해서 정확한 벡터어드레스의 취득이 가능하게 되고, 그것에 의해 프로그램 메모리의 온보드 라이트시의 시스템의 안전성의 향상을 도모할 수 있다.
프로그램 메모리의 소거 또는 라이트요구에 따라서 프로그램 메모리의 소거 또는 라이트가 실행되는 기간, 중앙처리장치에 대한 인터럽트요구가 배제되는 것에 의해 프로그램 메모리의 온보드 라이트시의 시스템의 안전성의 향상을 도모할 수 있다.
프로그램 메모리의 소거 또는 라이트요구에 따라서 프로그램 메모리의 소거 또는 라이트가 실행되는 기간에 중앙처리장치에 대해서 발생된 인터럽트요구에 호응해서 프로그램 메모리의 소거 또는 라이트를 위한 처리가 중지되는 것에 의해, 프로그램 메모리의 온보드 라이트시의 시스템의 안전성의 향상을 도모할 수 있다.
따라서, 플래시 메모리의 소거/라이트 프로그램(리라이트 제어프로그램)의 작성 미스나 오동작 및 외부회로의 조작 미드 등으로 잘못해서 발생한 인터럽트요구에 대해서도 플래시메모리의 소거/리라이트가 자동적으로 중지되고, 인터럽트처리중에 플래시 메모리의 소거/리라이트의 중지상태를 기록하는 처리를 실행하는 것에 의해서, 플래시 메모리를 과소거/과라이트 내지 중간상태 등의 이상(異常)상태로부터 보호할 수 있다. 따라서, 마이크로컴퓨터 응용시스템의 파괴로부터 보호할 수 있다.
도 1은 본 발명의 1실시예인 싱글칩 마이크로컴퓨터의 전체적인 구성예 블럭도,
도 2는 상기 마이크로컴퓨터에 포함되는 내장 RAM의 일부를 벡터어드레스 에리어로 이동시키는 경우의 어드레스맵의 설명도,
도 3은 내장 RAM(13)의 벡터어드레스 저장에리어 B-V를 플래시 메모리(18)의 벡터어드레스 저장에리어 A-V로 어드레스변환하는 경우의 버스컨트롤러(27)의 주요부 구성예를 내장 ROM(18)과 내장 RAM(13)의 관계로 도시한 도면,
도 4는 본 발명의 다른 실시예에 있어서의 어드레스맵의 설명도,
도 5는 도 1의 버스컨트롤러(27)에 마련되는 오동작 배제수단으로서의 어드레스 변환회로 ACC를 도시한 도면,
도 6은 내장ROM(18)로서의 플래시메모리의 소거 또는 라이트중에 있어서 NMI(Non-Maskable Interrupt)를 포함하는 전체인터럽트를 무시하기 위한 게이트 G5를 포함하는 버스컨트롤러(27)을 도시한 도면,
도 7은 내장ROM(18)의 소거, 라이트 또는 검증중에 라이트요구가 발생한 경우에 내장ROM(18)의 소거제어 비트레지스터, 라이트제어 비트레지스터, 검증제어 비트레지스터를 리세트하는 오동작 배제수단으로서의 제어논리회로 G6을 도시한 도면,
도 8은 도 3에 있어서 설명된 제어신호 CONT 및 도 5에 있어서 설명된 제어신호 CONT' 의 생성회로의 1예를 도시한 도면,
도 9는 도 1의 마이크로컴퓨터(30)의 플래시메모리(18)의 프로그래밍방법을 상기에서 설명된 PROM 모드 및 온보드라이트 모드와의 관계에서 도시한 도면,
도 10은 본 발명의 더욱 상세한 어드레스맵을 도시한 도면으로서, 통상 모드(싱글칩 모드 내지 외부메모리 확장 모드) 및 플래시메모리의 온보드리라이트 모드시에 있어서의 NMI의 벡터어드레스와 그것에 대한 NMI 처리루틴의 저장에리어를 도시한 도면,
도 11은 온보드 리라이트 모드시에 있어서의 NMI의 이용방법과 그 형성회로를 설명하기 위한 도면,
도 12는 플래시메모리(18)의 온보드 리라이트 모드(사용자 프로그램 모드의 예)시에 그 개시부터 종료시점까지 실행되는 리라이트 처리흐름을 도시한 도면,
도 13은 플래시메모리(18)의 메모리셀의 단면도,
도 14는 플래시메모리(18)의 메모리셀의 소거상태와 라이트상태의 임계값을 도시한 도면,
도 15는 플래시메모리(18)의 메모리어레이의 구성을 도시한 도면,
도 16은 플래시메모리(18)의 메모리셀에 대한 소거동작 및 라이트동작을 위한 전압조건의 1예를 도시한 도면,
도 17은 플래시메모리(18)의 블럭도,
도 18은 플래시메모리(18)의 전체적인 블럭도,
도 19는 플래시메모리(18)의 제어레지스터의 1예를 도시한 도면.

Claims (40)

  1. 전기적으로 소거 또는 라이트가 가능한 프로그램메모리;
    상기 프로그램메모리를 액세스 가능한 중앙처리장치;
    상기 중앙처리장치에 의한 랜덤 액세스가 가능한 기억수단 및;
    상기 프로그램메모리의 소거 또는 라이트중의 인터럽트요구에 따라서 상기 기억수단의 일부를 프로그램메모리의 벡터 어드레스 에리어로 이동시키기 위한 제어회로를 포함하는 것을 특징으로 하는 데이타처리장치.
  2. 전기적으로 소거 또는 라이트가 가능한 프로그램메모리;
    상기 프로그램메모리를 액세스 가능한 중앙처리장치;
    상기 중앙처리장치에 의한 랜덤 액세스가 가능한 기억수단 및;
    상기 프로그램메모리의 소거 또는 라이트중의 인터럽트요구에 따라서 상기 프로그램메모리의 벡터 어드레스 에리어를 상기 기억수단으로 이동시키기 위한 제어회로를 포함하는 것을 특징으로 하는 데이타처리장치.
  3. 전기적으로 소거 또는 라이트가 가능한 프로그램메모리;
    상기 프로그램메모리를 액세스 가능한 중앙처리장치 및;
    상기 프로그램메모리의 소거 또는 라이트요구에 따라서 상기 프로그램메모리의 소거 또는 라이트가 실행되는 기간에 상기 중앙처리장치에 대한 인터럽트요구를배제하기 위한 제어논리회로를 포함하는 것을 특징으로 하는 데이타처리장치.
  4. 전기적으로 소거 또는 라이트가 가능한 프로그램메모리;
    상기 프로그램메모리를 액세스 가능한 중앙처리장치 및;
    상기 프로그램메모리의 소거 또는 라이트요구에 따라서 상기 프로그램메모리의 소거 또는 라이트가 실행되는 기간에 상기 중앙처리장치에 대해서 발생된 인터럽트요구에 호응해서 상기 프로그램메모리의 소거 또는 라이트를 위한 처리를 중지시키기 위한 제어논리회로를 포함하는 것을 특징으로 하는 데이타처리장치.
  5. 반도체기판에 형성된 데이타 프로세서로서,
    중앙처리장치;
    하나 또는 복수의 벡터 어드레스에 관한 데이타를 기억하는 제1 영역 및 하나 또는 복수의 동작 프로그램에 관한 데이타를 저장하는 제2 영역을 포함하는 전기적으로 소거 및 라이트가 가능한 불휘발성 기억장치;
    입력신호에 응답해서 인터럽트요구를 상기 중앙처리장치로 공급하는 제어회로 및;
    상기 중앙처리장치가 상기 불휘발성 기억장치의 상기 제2 영역에 저장된 데이타의 소거동작 또는 상기 제2 영역으로의 동작 프로그램에 관한 데이타의 라이트동작을 실행할 때, 상기 제어회로에서 공급되는 인터럽트요구에 응답해서 상기 소거동작 또는 상기 라이트동작을 중단시키는 회로를 갖는 것을 특징으로 하는 데이타 프로세서.
  6. 제5항에 있어서,
    상기 데이타 프로세서는 외부신호에 응답해서 상기 데이타 프로세서의 동작모드를 제어하는 모드제어회로를 포함하고,
    상기 데이타 프로세서의 동작모드는
    상기 중앙처리장치가 상기 하나 또는 복수의 동작 프로그램을 실행하는 통상동작모드 및
    상기 중앙처리장치의 제어하에서 상기 불휘발성 기억장치의 상기 제2 영역에 저장된 데이타의 소거동작 또는 상기 제2 영역으로의 동작프로그램에 관한 데이타의 라이트동작을 실행하는 소거 또는 라이트동작모드를 갖는 것을 특징으로 하는 데이타 프로세서.
  7. 제5항에 있어서,
    상기 데이타 프로세서는 상기 중앙처리장치에 결합되고 제어프로그램을 저장하는 메모리를 포함하고,
    상기 제어프로그램은 상기 중앙처리장치에 의해서 실행되고 상기 불휘발성 기억장치의 상기 제2 영역에 저장된 데이타의 소거동작 또는 상기 제2 영역으로의 동작 프로그램에 관한 데이타의 라이트동작의 실행을 제어하는 것을 특징으로 하는 데이타 프로세서.
  8. 제7항에 있어서,
    상기 메모리는 랜덤 액세스 메모리인 것을 특징으로 하는 데이타 프로세서.
  9. 제5항에 있어서,
    상기 데이타 프로세서는 제1 제어비트를 포함하는 제1 제어레지스터를 포함하고,
    상기 제1 제어비트의 제1 상태는 상기 중앙처리장치에 상기 불휘발성 기억장치의 상기 제2 영역에 저장된 데이타의 소거동작을 가능하게 하고,
    상기 제1 제어비트의 제2 상태는 상기 중앙처리장치에 상기 불휘발성 기억장치의 상기 제2 영역에 저장된 데이타의 소거동작을 불가능하게 하고,
    상기 회로는 상기 인터럽트요구에 응답해서 상기 제1 제어비트를 상기 제2 상태로 설정하는 것을 특징으로 하는 데이타 프로세서.
  10. 제9항에 있어서,
    상기 불휘발성 기억장치는 메모리어레이를 갖고,
    상기 메모리어레이는 복수의 메모리블럭으로 분할되고,
    상기 복수의 메모리블럭의 각각은 일괄적으로 소거되는 메모리의 단위로 되고,
    상기 데이타 프로세서는 소거될 메모리블럭을 지정하기 위한 데이타를 저장하기 위한 복수의 제2 제어비트를 포함하는 제2 제어레지스터를 더 포함하는 것을 특징으로 하는 데이타 프로세서.
  11. 제5항에 있어서,
    상기 인터럽트요구는 마스크 불가능한 인터럽트요구를 포함하는 것을 특징으로 하는 데이타 프로세서.
  12. 중앙처리장치;
    하나 또는 복수의 벡터 어드레스에 관한 데이타를 기억하는 제1 영역 및 하나 또는 복수의 동작프로그램에 관한 데이타를 저장하는 제2 영역을 포함하는 전기적으로 소거 및 라이트가 가능한 불휘발성 기억장치;
    입력신호에 응답해서 인터럽트요구를 상기 중앙처리장치로 공급하는 제어회로;
    상기 불휘발성 기억장치의 동작모드를 제어하기 위한 제1 제어비트 및 제2 제어비트를 포함하는 제1 레지스터 및;
    인터럽트 제어회로에 결합된 회로를 갖고,
    상기 제1 제어비트의 세트상태는 상기 중앙처리장치에 상기 불휘발성 기억장치의 상기 제2 영역에 저장된 데이타의 소거를 가능하게 하고,
    상기 제1 제어비트의 리세트상태는 상기 중앙처리장치에 상기 불휘발성 기억장치의 상기 제2 영역에 저장된 데이타의 소거를 불가능하게 하고,
    상기 제2 제어비트의 세트상태는 상기 중앙처리장치에 상기 불휘발성 기억장치의 상기 제2 영역으로의 데이타의 라이트를 가능하게 하고,
    상기 제2 제어비트의 리세트상태는 상기 중앙처리장치에 상기 불휘발성 기억장치의 상기 제2 영역으로의 데이타의 라이트를 불가능하게 하고,
    상기 중앙처리장치가 상기 불휘발성 기억장치의 상기 제2 영역에 저장된 데이타의 소거동작 또는 상기 제2 영역으로의 동작프로그램에 관한 데이타의 라이트동작을 실행할 때, 상기 회로는 상기 인터럽트요구에 응답해서 상기 제1 제어비트 및 제2 제어비트를 상기 리세트상태로 설정하는 것을 특징으로 하는 싱글칩 데이타 프로세서.
  13. 제12항에 있어서,
    상기 싱글칩 데이타 프로세서는 외부신호에 응답해서 상기 데이타 프로세서의 동작모드를 제어하는 모드제어회로를 포함하고,
    상기 싱글칩 데이타 프로세서의 동작모드는
    상기 중앙처리장치가 상기 하나 또는 복수의 동작프로그램을 실행하는 통상동작모드 및
    상기 중앙처리장치의 제어하에서 상기 불휘발성 기억장치의 상기 제2 영역에 저장된 데이타의 소거동작 또는 상기 제2 영역으로의 동작프로그램에 관한 데이타의 라이트동작을 실행하는 소거 또는 라이트동작모드를 갖는 것을 특징으로 하는 싱글칩 데이타 프로세서.
  14. 제12항에 있어서,
    상기 제1 레지스터는 제3 제어비트를 더 포함하고,
    상기 제3 제어비트의 세트상태는 상기 중앙처리장치에 상기 불휘발성 기억장치의 상기 제2 영역에 저장된 데이타의 소거 및 라이트의 검증동작을 가능하게 하고,
    상기 제1 제어비트의 리세트상태는 상기 중앙처리장치에 상기 불휘발성 기억장치의 상기 제2 영역에 저장된 데이타의 소거 및 라이트의 검증동작을 불가능하게 하고,
    상기 중앙처리장치가 상기 불휘발성 기억장치의 상기 제2 영역에 저장된 데이타의 소거동작 또는 상기 제2 영역으로의 동작프로그램에 관한 데이타의 라이트동작을 실행할 때, 상기 회로는 상기 인터럽트요구에 응답해서 상기 제3 제어비트를 상기 리세트상태로 설정하는 것을 특징으로 하는 싱글칩 데이타 프로세서.
  15. 제12항에 있어서,
    상기 싱글칩 데이타 프로세서는 상기 중앙처리장치에 결합되고 제어프로그램을 저장하는 메모리를 포함하고,
    상기 제어프로그램은 상기 중앙처리장치에 의해서 실행되고, 상기 불휘발성 기억장치의 상기 제2 영역에 저장된 데이타의 소거동작 또는 상기 제2 영역으로의 동작프로그램에 관한 데이타의 라이트동작의 실행을 제어하는 것을 특징으로 하는싱글칩 데이타 프로세서.
  16. 제15항에 있어서,
    상기 메모리는 랜덤 액세스 메모리인 것을 특징으로 하는 싱글칩 데이타 프로세서.
  17. 제12항에 있어서,
    상기 불휘발성 기억장치는 메모리어레이를 갖고,
    상기 메모리어레이는 복수의 메모리블럭으로 분할되고,
    상기 복수의 메모리블럭의 각각은 일괄적으로 소거되는 메모리의 단위로 되고,
    상기 싱글칩 데이타 프로세서는 소거될 메모리블럭을 지정하기 위한 데이타를 저장하기 위한 복수의 비트를 포함하는 제2 제어레지스터를 더 포함하는 것을 특징으로 하는 싱글칩 데이타 프로세서.
  18. 제12항에 있어서,
    상기 인터럽트요구는 마스크 불가능한 인터럽트요구를 포함하는 것을 특징으로 하는 싱글칩 데이타 프로세서.
  19. 중앙처리장치;
    하나 또는 복수의 벡터어드레스와 동작프로그램을 저장하는 전기적으로 소거 및 라이트가 가능한 불휘발성 기억장치;
    입력신호에 응답해서 인터럽트요구를 상기 중앙처리장치로 공급하는 제어회로 및;
    상기 중앙처리장치가 상기 불휘발성 기억장치에 대한 소거동작 또는 라이트동작을 실행하는 동안 상기 중앙처리장치에 대해 상기 제어회로에서 공급되는 인터럽트요구를 무시시키는 회로를 갖는 것을 특징으로 하는 싱글칩 데이타 프로세서.
  20. 제19항에 있어서,
    상기 싱글칩 데이타 프로세서는
    상기 불휘발성 기억장치에 대한 소거동작 또는 라이트동작을 위한 전압이 공급되는 외부단자 및
    상기 외부단자에 결합되고 상기 전압의 공급에 응답해서 신호를 공급하는 검출회로를 갖고,
    상기 회로는 상기 중앙처리장치가 상기 불휘발성 기억장치에 대한 소거동작 또는 라이트동작을 실행하는 동안 상기 검출회로로부터의 상기 신호에 응답해서 상기 중앙처리장치에 상기 제어회로에서 공급되는 인터럽트요구를 무시시키는 것을 특징으로 하는 싱글칩 데이타 프로세서.
  21. 제19항에 있어서,
    상기 회로는 상기 중앙처리장치가 상기 불휘발성 기억장치에 대한 소거동작 또는 라이트동작을 실행하는 동안 상기 제어회로에서 공급되는 인터럽트요구의 상기 중앙처리장치로의 공급을 방지하는 것을 특징으로 하는 싱글칩 데이타 프로세서.
  22. 제21항에 있어서,
    상기 싱글칩 데이타 프로세서는 상기 불휘발성 기억장치에 대한 소거동작 또는 라이트동작을 실행하기 위한 제어프로그램을 저장하는 메모리를 포함하고,
    상기 중앙처리장치는 상기 불휘발성 기억장치에 대한 소거동작 또는 라이트동작 동안에 상기 제어프로그램을 실행하는 것을 특징으로 하는 싱글칩 데이타 프로세서.
  23. 제22항에 있어서,
    상기 메모리는 랜덤 액세스 메모리인 것을 특징으로 하는 싱글칩 데이타 프로세서.
  24. 제19항에 있어서,
    상기 인터럽트요구는 마스크 불가능한 인터럽트요구를 포함하는 것을 특징으로 하는 싱글칩 데이타 프로세서.
  25. 랜덤 액세스 메모리;
    벡터 어드레스를 저장하는 제1 벡터 어드레스영역, 상기 벡터 어드레스에 대응하는 처리루틴을 저장하는 제1 처리루틴영역 및 하나 또는 복수의 동작프로그램을 저장하는 영역을 포함하는 소거 및 라이트가 가능한 불휘발성 기억장치;
    중앙처리장치;
    입력신호에 응답해서 인터럽트요구를 상기 중앙처리장치로 공급하는 인터럽트 제어회로 및;
    제어회로를 갖고,
    상기 중앙처리장치는 상기 불휘발성 기억장치의 소거 또는 라이트모드에 응답해서 상기 불휘발성 기억장치에 저장된 상기 벡터 어드레스영역과 상기 제1 처리루틴영역의 내용을 상기 랜덤 액세스 메모리의 제2 벡터영역 및 제2 처리루틴영역에 각각 저장하고,
    상기 제어회로는 상기 불휘발성 기억장치의 소거 또는 라이트모드 동안에 상기 인터럽트요구에 응답해서 제어신호를 발생하고,
    상기 중앙처리장치는 상기 제어신호에 응답해서 상기 제2 벡터 어드레스영역을 액세스해서 벡터 어드레스를 취득하고, 상기 취득한 벡터 어드레스에 따라서 상기 제2 처리루틴영역을 액세스하는 것을 특징으로 하는 싱글칩 데이타 프로세서.
  26. 제25항에 있어서,
    상기 제어회로는 상기 불휘발성 기억장치의 상기 제1 벡터 어드레스영역에관한 제1 어드레스를 상기 랜덤 액세스 메모리의 상기 제2 벡터 어드레스영역에 관한 제2 어드레스로 변환하는 어드레스 변환회로를 갖고,
    상기 제1 어드레스는 상기 불휘발성 기억장치의 소거 또는 라이트모드 동안에 상기 인터럽트요구에 응답하는 상기 중앙처리장치에서 발생되는 것을 특징으로 하는 싱글칩 데이타 프로세서.
  27. 제26항에 있어서,
    상기 싱글칩 데이타 프로세서는 상기 제1 벡터 어드레스영역이 상기 제2 벡터 어드레스영역으로 변경된 것을 나타내는 데이타가 라이트되는 제어비트를 더 갖고,
    상기 어드레스 변환회로는 상기 불휘발성 기억장치의 소거 또는 라이트모드동안에 상기 제어비트의 데이타에 응답해서 활성화되는 것을 특징으로 하는 싱글칩 데이타 프로세서.
  28. 전기적으로 소거 및 라이트가 가능한 프로그램메모리;
    상기 프로그램메모리를 액세스 가능한 중앙처리장치 및;
    상기 프로그램메모리의 소거 또는 라이트가 실행되는 기간에 상기 중앙처리장치로의 인터럽트처리요구 또는 예외처리요구를 무효로 하기 위한 제어논리를 포함하는 것을 특징으로 하는 데이타 처리장치.
  29. 전기적으로 소거 및 라이트가 가능한 프로그램 메모리;
    상기 프로그램메모리를 액세스 가능한 중앙처리장치 및;
    상기 프로그램메모리의 소거 또는 라이트가 실행되는 기간에 상기 중앙처리장치로의 인터럽트처리요구 또는 예외처리요구의 발생에 호응해서 상기 프로그램메모리의 소거 또는 라이트처리를 중지시키기 위한 제어논리를 포함하는 것을 특징으로 하는 데이타 처리장치.
  30. 전기적으로 소거 및 라이트가 가능한 프로그램메모리;
    상기 프로그램메모리를 액세스 가능한 중앙처리장치;
    상기 중앙처리장치에 의한 액세스가 가능한 기억수단 및;
    상기 프로그램메모리의 소거 또는 라이트가 실행되는 기간에 상기 중앙처리장치에 대한 인터럽트처리요구 또는 예외처리요구가 발생했을 때, 그 요구에 응답하기 위한 상기 프로그램메모리의 소정의 기억영역의 액세스를 상기 기억수단의 소정의 기억영역의 액세스로 변경하는 선택메모리 변경수단을 포함하는 것을 특징으로 하는 데이타 처리장치.
  31. 제30항에 있어서,
    상기 선택메모리 변경수단은 상기 프로그램메모리의 소거처리 또는 라이트처리가 실행되고 있는 기간에 상기 중앙처리장치에 대한 인터럽트처리요구 또는 예외처리요구가 발생했을 때 상기 프로그램메모리의 상기 소정의 기억영역의 액세스의검출에 응답하여 상기 프로그램메모리의 선택신호를 불활성화하고 그 대신에 상기 기억수단의 선택신호를 활성화하는 것을 특징으로 하는 데이타 처리장치.
  32. 제30항에 있어서,
    상기 선택메모리 변경수단은 상기 프로그램메모리의 소거처리 또는 라이트처리가 실행되고 있는 기간에 상기 중앙처리장치에 대한 인터럽트처리요구 또는 예외처리요구가 발생했을 때, 상기 프로그램메모리의 상기 소정의 기억영역의 액세스의 검출에 응답하여 상기 프로그램메모리의 상기 소정의 기억영역을 액세스하기 위한 어드레스신호를 상기 기억수단의 소정의 기억영역을 액세스하는 어드레스신호로 변환하는 것을 특징으로 하는 데이타 처리장치.
  33. 제30항 내지 제32항중의 어느 한항에 있어서,
    상기 프로그램메모리의 소정의 기억영역은 상기 중앙처리장치에 대한 인터럽트처리요구 또는 예외처리요구가 발생했을 때 처리할 인터럽트처리 또는 예외처리를 위한 벡터 어드레스 데이타가 저장되는 영역인 것을 특징으로 하는 데이타 처리장치.
  34. 제33항에 있어서,
    상기 기억수단의 소정의 기억영역은 미리 상기 프로그램메모리의 소거처리 또는 라이트처리가 실행되고 있는 기간에 상기 중앙처리장치에 대한 인터럽트처리요구 또는 예외처리요구가 발생했을 때 처리할 인터럽트처리 또는 예외처리를 위한 벡터 어드레스 데이타가 저장되는 기억영역인 것을 특징으로 하는 데이타 처리장치.
  35. 중앙처리장치;
    제1 벡터 어드레스를 저장하는 제1 영역과 상기 중앙처리장치가 통상모드에 있어서 실행하는 동작 프로그램을 저장하는 제2 영역을 갖는 전기적으로 소거 및 라이트가 가능한 프로그램메모리;
    제2 벡터 어드레스를 저장하는 영역을 갖는 메모리 및;
    인터럽트사상에 응답해서 상기 중앙처리장치로 인터럽트요구를 공급하는 인터럽트 제어회로를 갖고,
    상기 제2 영역의 상기 동작 프로그램은 소거 또는 라이트모드에 있어서 소거 또는 라이트 가능하게 되어 있고,
    상기 전기적으로 소거 및 라이트가 가능한 프로그램메모리가 소거 또는 라이트모드로 되고 또한 상기 인터럽트 제어회로가 상기 중앙처리장치로 인터럽트요구를 공급했을 때, 상기 메모리의 상기 영역의 제2 벡터 어드레스가 이용되어 상기 인터럽트요구에 응답하는 것을 특징으로 하는 싱글칩 데이타 프로세서.
  36. 제35항에 있어서,
    상기 중앙처리장치는 상기 전기적으로 소거 및 라이트가 가능한 프로그램메모리의 소거 및 라이트모드에 있어서 상기 제2 벡터 어드레스에 따른 인터럽트요구에 대응하는 인터럽트처리를 실행하는 것을 특징으로 하는 싱글칩 데이타 프로세서.
  37. 제36항에 있어서,
    상기 전기적으로 소거 및 라이트가 가능한 프로그램메모리의 소거 및 라이트모드에 있어서 상기 전기적으로 소거 및 라이트가 가능한 프로그램메모리의 선택신호를 불활성화하고, 상기 메모리의 선택신호를 활성화시키는 버스제어장치를 더 포함하고, 그것에 의해서 상기 인터럽트요구가 상기 인터럽트 제어회로에서 발생한 경우 상기 제2 벡터 어드레스가 상기 중앙처리장치에 의해서 취득되는 것을 특징으로 하는 싱글칩 데이타 프로세서.
  38. 제37항에 있어서,
    상기 버스제어장치는 상기 전기적으로 소거 및 라이트가 가능한 프로그램메모리의 소거 및 라이트모드에 있어서 상기 인터럽트요구에 응답하는 상기 중앙처리장치에서 발생된 상기 제1 벡터 어드레스를 액세스하기 위한 제1 어드레스를 상기 제2 벡터 어드레스를 액세스하기 위한 제2 어드레스로 변환하는 어드레스 변환회로를 갖는 것을 특징으로 하는 싱글칩 데이타 프로세서.
  39. 제35항에 있어서,
    상기 전기적으로 소거 및 라이트가 가능한 프로그램메모리는 플로팅게이트와 제어게이트를 갖는 메모리셀을 포함하는 플래시메모리를 포함하는 것을 특징으로 하는 싱글칩 데이타 프로세서.
  40. 제35항에 있어서,
    상기 메모리는 랜덤 액세스 메모리를 포함하는 것을 특징으로 하는 싱글칩 데이타 프로세서.
KR1019960002518A 1995-02-07 1996-02-02 데이타처리장치 KR100444537B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP95-042301 1995-02-07
JP4230195 1995-02-07
JP95-154673 1995-05-08
JP95-353256 1995-12-27
JP35325695A JP3292864B2 (ja) 1995-02-07 1995-12-27 データ処理装置

Publications (2)

Publication Number Publication Date
KR960032175A KR960032175A (ko) 1996-09-17
KR100444537B1 true KR100444537B1 (ko) 2004-11-12

Family

ID=26381958

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960002518A KR100444537B1 (ko) 1995-02-07 1996-02-02 데이타처리장치

Country Status (3)

Country Link
US (2) US5881295A (ko)
JP (1) JP3292864B2 (ko)
KR (1) KR100444537B1 (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3292864B2 (ja) * 1995-02-07 2002-06-17 株式会社日立製作所 データ処理装置
US6738894B1 (en) * 1995-02-07 2004-05-18 Hitachi, Ltd. Data processor
US6134148A (en) * 1997-09-30 2000-10-17 Hitachi, Ltd. Semiconductor integrated circuit and data processing system
JPH10124474A (ja) * 1996-10-25 1998-05-15 Nec Corp マイクロコンピュータ
US6125157A (en) * 1997-02-06 2000-09-26 Rambus, Inc. Delay-locked loop circuitry for clock delay adjustment
JPH10269109A (ja) * 1997-03-21 1998-10-09 Mitsubishi Electric Corp マイクロコンピュータ
JPH11219299A (ja) * 1998-02-02 1999-08-10 Mitsubishi Electric Corp マイクロコンピュータ
JP3968876B2 (ja) * 1998-06-26 2007-08-29 株式会社デンソー 電子制御装置
JP4248624B2 (ja) * 1998-07-03 2009-04-02 株式会社デンソー 内燃機関用電子制御装置。
JP2000181898A (ja) * 1998-12-14 2000-06-30 Nec Corp フラッシュメモリ搭載型シングルチップマイクロコンピュータ
JP3727485B2 (ja) 1999-04-02 2005-12-14 シャープ株式会社 不揮発性メモリ内蔵マイクロコンピュータ
US6473853B1 (en) * 1999-06-21 2002-10-29 Intel Corporation Method and apparatus for initializing a computer system that includes disabling the masking of a maskable address line
JP3778774B2 (ja) 2000-05-12 2006-05-24 松下電器産業株式会社 データ処理装置
JP3918434B2 (ja) * 2001-01-05 2007-05-23 セイコーエプソン株式会社 情報処理装置
JP4230122B2 (ja) * 2001-03-30 2009-02-25 株式会社ルネサステクノロジ マイクロコンピュータ、書込み方法及び消去方法
JP4162863B2 (ja) * 2001-03-30 2008-10-08 株式会社ルネサステクノロジ マイクロコンピュータ
JP2002342266A (ja) * 2001-05-14 2002-11-29 Hitachi Ltd データプロセッサ
JP2002366426A (ja) * 2001-06-11 2002-12-20 Mitsumi Electric Co Ltd プログラム実行装置およびプログラム実行方法
DE10145219A1 (de) * 2001-09-13 2003-04-03 Bosch Gmbh Robert Verfahren und Vorrichtung zur Erzeugung von Programmunterbrechungen bei Teilnehmern eines Bussystems und Bussystem
JP2004213102A (ja) * 2002-12-26 2004-07-29 Fujitsu Ltd マイクロコンピュータ
US7392436B2 (en) * 2003-05-08 2008-06-24 Micron Technology, Inc. Program failure recovery
US20050021894A1 (en) * 2003-07-24 2005-01-27 Renesas Technology America, Inc. Method and system for interrupt mapping
JP2005078493A (ja) * 2003-09-02 2005-03-24 Renesas Technology Corp マイクロコンピュータ
CN1317649C (zh) * 2003-09-19 2007-05-23 联想(北京)有限公司 一种基于安全芯片的计算机终端安全系统
KR100604864B1 (ko) * 2004-06-03 2006-07-26 삼성전자주식회사 입출력 핀을 통하여 전송되는 신호의 특성을 제어하는반도체 장치 및 신호 특성 제어 방법
US8090916B2 (en) * 2004-06-29 2012-01-03 Macronix International Co., Ltd. In-circuit programming architecture with processor and delegable flash controller
US7406559B2 (en) * 2004-08-23 2008-07-29 Macronix International Co., Ltd. In-circuit programming architecture with processor, delegable flash controller, and code generator
CN101501639A (zh) * 2006-08-15 2009-08-05 皇家飞利浦电子股份有限公司 快闪存储器存取电路
US7567461B2 (en) * 2006-08-18 2009-07-28 Micron Technology, Inc. Method and system for minimizing number of programming pulses used to program rows of non-volatile memory cells
JP5565187B2 (ja) 2010-08-10 2014-08-06 富士通株式会社 情報処理装置および割込み制御プログラム
CN104734784B (zh) * 2013-12-19 2017-12-22 华为技术有限公司 一种确定输入光功率的方法和设备
US20160188414A1 (en) * 2014-12-24 2016-06-30 Intel Corporation Fault tolerant automatic dual in-line memory module refresh
CN112540952B (zh) * 2020-12-18 2021-09-17 广东高云半导体科技股份有限公司 具有片内并行接口的片上系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR880003251A (ko) * 1986-08-08 1988-05-14 원본미기재 전원차단으로 인한 컴퓨터에서의 상실을 방지하기 위한 워크 세이빙 시스템
JPS6326980B2 (ko) * 1980-03-11 1988-06-01 Hiroe Ogawa
JPH0343836A (ja) * 1989-07-11 1991-02-25 Nec Ibaraki Ltd ベクタード割込み制御方式
JPH05134888A (ja) * 1991-11-12 1993-06-01 Casio Comput Co Ltd 情報処理装置
US5283907A (en) * 1986-05-20 1994-02-01 Robert Bosch Gmbh Process for safeguarding transfer of data from a temporary part into a main part of a non-volatile memory
JPH06180664A (ja) * 1992-12-11 1994-06-28 Brother Ind Ltd メモリのプログラミング装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4872106A (en) * 1983-04-06 1989-10-03 New Forney Corp. Industrial process control system with back-up data processors to take over from failed primary data processors
JPH0738187B2 (ja) * 1984-03-23 1995-04-26 株式会社日立製作所 Lsiに構成されたマイクロコンピュータ
EP0350478B1 (de) * 1987-03-19 1993-11-03 Siemens Aktiengesellschaft Verfahren zum betrieb einer multiprozessor-zentralsteuereinheit eines vermittlungssystemes
US5163148A (en) * 1989-08-11 1992-11-10 Digital Equipment Corporation File backup system for producing a backup copy of a file which may be updated during backup
US5276890A (en) * 1989-11-30 1994-01-04 Kabushiki Kaisha Toshiba Resume control system and method for executing resume processing while checking operation mode of CPU
JPH04257030A (ja) * 1991-02-08 1992-09-11 Nec Corp 読み出し専用メモリパッチ方式
US5410711A (en) * 1991-02-14 1995-04-25 Dell Usa, L.P. Portable computer with BIOS-independent power management
US5276839A (en) * 1991-03-07 1994-01-04 United States Of America As Represented By The Secretary Of The Air Force System for programming EEPROM with data loaded in ROM by sending switch signal to isolate EEPROM from host system
US5687345A (en) * 1992-03-17 1997-11-11 Hitachi, Ltd. Microcomputer having CPU and built-in flash memory that is rewritable under control of the CPU analyzing a command supplied from an external device
JP2761326B2 (ja) * 1992-05-28 1998-06-04 三菱電機株式会社 マルチプロセッサ型ワンチップマイクロコンピュータ
US5435001A (en) * 1993-07-06 1995-07-18 Tandem Computers Incorporated Method of state determination in lock-stepped processors
US5603038A (en) * 1994-09-07 1997-02-11 International Business Machines Corporation Automatic restoration of user options after power loss
JP3292864B2 (ja) * 1995-02-07 2002-06-17 株式会社日立製作所 データ処理装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6326980B2 (ko) * 1980-03-11 1988-06-01 Hiroe Ogawa
US5283907A (en) * 1986-05-20 1994-02-01 Robert Bosch Gmbh Process for safeguarding transfer of data from a temporary part into a main part of a non-volatile memory
KR880003251A (ko) * 1986-08-08 1988-05-14 원본미기재 전원차단으로 인한 컴퓨터에서의 상실을 방지하기 위한 워크 세이빙 시스템
JPH0343836A (ja) * 1989-07-11 1991-02-25 Nec Ibaraki Ltd ベクタード割込み制御方式
JPH05134888A (ja) * 1991-11-12 1993-06-01 Casio Comput Co Ltd 情報処理装置
JPH06180664A (ja) * 1992-12-11 1994-06-28 Brother Ind Ltd メモリのプログラミング装置

Also Published As

Publication number Publication date
JP3292864B2 (ja) 2002-06-17
KR960032175A (ko) 1996-09-17
US5881295A (en) 1999-03-09
US6141700A (en) 2000-10-31
JPH08278895A (ja) 1996-10-22

Similar Documents

Publication Publication Date Title
KR100444537B1 (ko) 데이타처리장치
US20070083745A1 (en) Data processor
US6282644B1 (en) Apparatus and method for storing BIOS data of computer system
US20050262292A1 (en) Memory card
US20050172065A1 (en) Data move method and apparatus
US20020129195A1 (en) Microcomputer with built-in programmable nonvolatile memory
JPH1050078A (ja) 電気的に消去およびプログラムが可能なリード・オンリ・メモリの消去およびプログラミング保護方法および装置
JP2002157235A (ja) マイクロコントローラ
EP0370529B1 (en) Microcomputer having EEPROM
KR970066888A (ko) 불 휘발성 메모리를 사용한 마이크로컴퓨터
JP3376306B2 (ja) データ処理装置、そのデータ処理方法
JP2002015584A (ja) 不揮発性メモリのリードプロテクト回路
KR100223844B1 (ko) 옵션 자동 설정 회로
US6535442B2 (en) Semiconductor memory capable of debugging an incorrect write to or an incorrect erase from the same
JP3669625B2 (ja) データ処理システム及びデータ処理システムの動作方法
EP0708446B1 (en) Data processor having operating modes selected by at least one mask option bit and method therefor
JP3197865B2 (ja) マイクロコンピュータ
JP2002132746A (ja) データ処理装置及びシングルチップマイクロコンピュータ
JP2005202984A (ja) データ処理装置及びシングルチップマイクロコンピュータ
JP2000099346A (ja) デ―タ処理装置
JP3028567B2 (ja) Eeprom内蔵マイクロコンピュータ
JP2005078489A (ja) マイクロコントローラ装置及びその制御方法
JP3695931B2 (ja) マイクロコンピュータ
JP2000020498A (ja) マイクロコンピュータおよびその復帰方法
JP2581057B2 (ja) 評価用マイクロコンピユ−タ

Legal Events

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

Payment date: 20120724

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20130719

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee