KR20010006947A - 비휘발성 메모리가 내장된 마이크로컴퓨터 - Google Patents

비휘발성 메모리가 내장된 마이크로컴퓨터 Download PDF

Info

Publication number
KR20010006947A
KR20010006947A KR1020000017159A KR20000017159A KR20010006947A KR 20010006947 A KR20010006947 A KR 20010006947A KR 1020000017159 A KR1020000017159 A KR 1020000017159A KR 20000017159 A KR20000017159 A KR 20000017159A KR 20010006947 A KR20010006947 A KR 20010006947A
Authority
KR
South Korea
Prior art keywords
program
nonvolatile memory
ram
stored
data
Prior art date
Application number
KR1020000017159A
Other languages
English (en)
Other versions
KR100413227B1 (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 KR20010006947A publication Critical patent/KR20010006947A/ko
Application granted granted Critical
Publication of KR100413227B1 publication Critical patent/KR100413227B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)
  • Stored Programmes (AREA)
  • Memory System (AREA)

Abstract

비휘발성 메모리가 내장된 마이크로컴퓨터는, 상기 마이크로컴퓨터의 메모리 공간에 제공되는 적어도 1개의 소거 가능한 플래쉬 메모리, 1-칩 마이크로컴퓨터를 시동하기 위한 초기 프로그램과 상기 초기 프로그램을 플래쉬 메모리에 전송하기 위한 전송 프로그램을 저장하기 위한 부트 ROM, 및 플래쉬 메모리에 어떤 프로그램도 저장되어 있지 않을 때, 상기 초기 프로그램을 상기 전송 프로그램에 따라 플래쉬 메모리에 전송하고, 그 후, 부트 ROM을 상기 메모리 공간으로부터 제거한다. 이에 따라, 새로운 프로그램이 상기 1-칩 마이크로컴퓨터의 비휘발성 메모리에 추가적으로 저장되어도, 상기 추가프로그램은 실행될 수 있다.

Description

비휘발성 메모리가 내장된 마이크로컴퓨터 {MICROCOMPUTER HAVING BUILT-IN NONVOLATILE MEMORY}
본 발명은, 예컨대 EEPROM, 플래쉬 메모리 및 FeRAM 등의 소거 가능한 비휘발성 메모리를 내장한 마이크로컴퓨터에 관한 것이다.
비휘발성 메모리가 내장된 마이크로컴퓨터의 예로, EEPROM 내장의 1-칩 마이크로컴퓨터가 알려져 있고, 이 형태의 마이크로컴퓨터는 IC 카드용으로서 널리 사용되고 있다. 이 IC 카드용의 1-칩 마이크로컴퓨터의 메모리 맵은, 예컨대 도16과같이 되어 있다.
이 메모리 맵에 있어서, 어드레스 0000H-7FFFH는 32-k바이트의 ROM(Read 0nly Memory)영역에 할당되고, 어드레스 8000H∼9FFFH는 8-k바이트의 EEPROM 영역에 할당되며, 어드레스 FF00H-FFFFH는 256바이트의 RAM 영역에 할당되어 있다.
상기 어드레스 0000H는 스타트 어드레스이고, 상기 어드레스 0000H∼000FH는 인터럽트 벡터에 할당되고 있다. 상기 1-칩 마이크로컴퓨터의 프로그램은, 상기 1-칩 마이크로컴퓨터가 리세트동작을 하면 ROM의 선두번지로 분기하고, 또한 인터럽트가 발생하면 ROM의 인터럽트 처리영역으로 프로그램이 분기한다. 즉, 상기 1-칩 마이크로컴퓨터에서는 시동할 때, ROM의 선두번지에서 프로그램을 독출한다. 또한, 인터럽트 처리는 프로그램 실행중 빈번히 수행되고, 상기 프로그램은 각 인터럽트 작업동안 ROM의 인터럽트 처리영역으로 되돌아가야 한다. 따라서, 이러한 1-칩 마이크로컴퓨터에서는, 프로그램이 실행되기 전에 프로그램이 상기 ROM 영역에 존재해야 한다. 또, 상기 EEPROM 영역은 데이터 영역 또는 프로그램영역으로서 사용된다.
한편, EEPROM 외의 비휘발성 메모리를 갖는 1-칩 마이크로컴퓨터, 즉 플래쉬 메모리를 내장한 1-칩 마이크로컴퓨터도 시장에 유통되고 있다. 도17은 플래쉬 메모리가 내장된 1-칩 마이크로컴퓨터의 메모리 맵의 예를 도시한다.
이 메모리 맵에서, 어드레스 0000H-7FFFH가 32 k바이트의 플래쉬 메모리영역에 할당되고, 어드레스 FF00H∼FFFFH가 256-바이트 RAM(Random Access Memory)영역에 할당된다.
EEPROM이 내장되고 IC 카드로 사용되는 도16의 1-칩 마이크로컴퓨터와 같이, 어드레스 0000H가 스타트 어드레스이고, 어드레스 0000H∼000FH가 인터럽트 벡터에 할당된다. 플래쉬 메모리는 4 k바이트마다 8개의 블록 (블록 0-7)으로 분할되고, 데이터는 블록마다 일괄적으로 소거될 수 있다. 이러한 1-칩 마이크로컴퓨터에 있어서, 비휘발성 메모리로써 플래쉬 메모리의 제공은 상기 전체 영역이 프로그램영역으로 사용될 수 있다는 가정하에서 제공된다. 즉, 플래쉬 메모리는 상기 플래시 메모리에 저장된 프로그램이 실행되는 중에는, 데이터가 기입될 수도 없고 플래시 메모리로부터 소거될 수도 없다는 전제하에서 제공된다.
프로그램을 상기 1-칩 마이크로컴퓨터의 플래쉬 메모리에 기입하기 위해, 다음과 같은 방법이 채택될 수 있다.
제 1 방법은 범용의 PROM 라이터(writer)를 사용한다. 이 방법에 있어서, 일반적으로 1-칩 마이크로컴퓨터가 설치된 장치는 소켓 어댑터를 통해 PROM 라이터의 소내로 삽입되고, 데이터가 상기 1-칩 마이크로컴퓨터의 외부단자를 통해 플래쉬 메모리에 직접 기입된다.
제 2 방법은 데이터가 1-칩 마이크로컴퓨터에 제공되는 시리얼 커뮤니케이션 인터페이스(이하, SCI라 칭한다)에 의해 플래시 메모리에 기입되는 일반적인 방법이다.
도18은 상기 제 2 방법을 수행하기 위한 구성을 도시한다. 이 도면에 있어서, 1-칩 마이크로컴퓨터(101)는, 변환보드(102)를 통해 퍼스널 컴퓨터(103)와 접속된다. 퍼스널 컴퓨터(103)에 저장되어 있는 기입 프로그램 코드는, 데이터선(104)을 통해 변환보드(102)로 전송되고, 직렬 데이터선(105)을 통해 상기 변환보드(102)로부터 1-칩 마이크로컴퓨터(101)의 SCI(106)에 입력된다. 상기 프로그램코드는, SCI(106)로부터 내부버스(107)를 통해 플래쉬 메모리(108)에 전송되고, 거기에 기입된다. CPU(109)는 플래쉬 메모리(108)를 제어하고, 상기 제어 프로그램은 ROM (l10) 또는 RAM(ll1)에 저장된다.
그러나, IC 카드로 사용되는 도16의 1-칩 마이크로컴퓨터의 경우, 상기 EEPROM은 주로 데이터 저장에 사용된다. 또한, 대부분의 프로그램은 소거할 수 없는 ROM에 저장되고 그중 일부분만 EEPROM에 저장된다. 상기 ROM에 저장되어 있는 프로그램은 다시 기입될 수 없기 때문에, 대폭적으로 변경될 수 없다. 특히, IC 카드의 OS 등이 R0M에 저장되어 있는 경우, 0S 등의 버전 업은 거의 불가능하다.
최근, 멀티-응용 IC 카드가 제안되고 있지만, 만약 그것이 상기와 같이 구성된 1-칩 마이크로컴퓨터를 포함하면, 일단 IC 카드가 발행되었을 때 별도의 응용 프로그램을 부가적으로 기입하는 것이 곤란하다.
또한, ROM에 저장되어 있는 프로그램과 상이한 프로그램이 이 EEPROM을 부가적으로 저장된 프로그램에 따라 데이터 영역으로 사용하도록 EEPROM에 부가적으로 저장될 때, 상기 프로그램은 전술한 것과 같이 처리가 시작되기 전에 ROM에 분기해야 한다. 이는, 메모리 장치(EEPR0M)를 CPU 측에서 본 경우, 동일한 하드웨어 어드레스가, 데이터 독출 및 기입 처리를 위해 상기 메모리 장치에 할당되나, 이 데이터 독출 및 데이터 기입 처리는 동일한 어드레스에서 동시에 실행될 수 없기 때문이다. 또한, 상기 추가 프로그램으로서 EEPROM에 저장된 액세스 프로그램은 ROM에 전송되어 저장될 수 없고, 이미 ROM에 저장되어 있는 액세스프로그램은 임의로 변경될 수 없다. 따라, 미리 ROM에 저장되어 있는 프로그램, 즉 기입/소거의 루틴은 이 경우에도 사용되고, 데이터는 그 안에 저장된 추가 프로그램에 따라 EEPROM에 기입 및 소거 될 수 없다.
한편, 플래쉬 메모리가 내장된 상기 1-칩 마이크로컴퓨터에서는, 플래쉬 메모리가 프로그램 ROM으로 교체되는 전제하에 제공된다. 따라, 동일한 플래쉬 메모리를 프로그램 영역과 데이터 영역으로 동시에 사용하는 것은 극히 곤란하다.
플래쉬 메모리를 ROM 대신으로서 사용하는 경우, 즉 ROM이 생략된 경우, 프로그램을 RAM에 전송하여 저장하면, 플래쉬 메모리로부터 데이터를 기입/소거 할 수 있다. 그런데, 상기한 바와 같이 프로그램을 단지 RAM에 전송함으로써 플래쉬 메모리의 일부를 데이터 영역으로 사용하려고 한 경우에는, 다음과 같은 문제가 발생한다.
즉, 프로그램을 플래쉬 메모리로부터 RAM에 전송하고, 이 RAM의 프로그램에 따라 플래쉬 메모리의 데이터 영역에 데이터를 기입/소거 할 때, 다른 블록으로부터 인터럽트 요구신호가 발생하면 (예컨대, 도18에 있어서 SCI(106)로부터 인터럽트 요구신호(112)가 발생하면), 상기 프로그램은 플래쉬 메모리상의 인터럽트벡터에 분기한다. 그러나 플래쉬 메모리로부터 데이터가 기입/소거되기 때문에, 인터럽트 벡터를 독출할 수 없고 시스템은 폭주한다. 특히, 플래쉬 메모리 등을 포함하는 비휘발성 메모리가 사용되면, 비휘발성 메모리가 CPU의 기입과 독출의 사이클보다 더 긴 시간을 요하기 때문에 이 문제는 현저해진다. 기입 소거의 사이클이 CPU의 사이클과 동일하지 않으면, 어떠한 비휘발성 메모리(FeRAM도 포함)에서도 이 문제가 발생한다. 따라서, 종래의 플래쉬 메모리가 내장된 1-칩 마이크로컴퓨터에 의하면, 동일한 플래쉬 메모리를 프로그램 영역과 데이터 영역으로 동시에 사용하는 것은 곤란하다.
또한, 일본국 공개특허공보 NO.278895/1996(공개일 1996년 10월22일)에는, 비휘발성 메모리가 내장된 1-칩 마이크로컴퓨터를 개시하며, 이는 자동적으로 인터럽트 벡터를 RAM이나 다른 메모리로 옮김으로써, 플래쉬 메모리로부터 데이터를 기입/소거하는 동안 인터럽트가 발생한 경우, 시스템의 폭주를 피하기 위해 배열되도록 구성되어 있다.
하지만, 이 발명은, 전술한 범용 플래쉬 메모리 내장 마이크로컴퓨터에 외부데이터를 기입할 때 시스템을 안정화시키는 수법이다. 즉, 이 발명은, 플래쉬 메모리에 저장된 프로그램에 따라, 상기 플래쉬 메모리의 데이터 영역에 대하여 데이터의 기입/소거에 영향을 주는 구성에 대해서는 검토되지 않고 있다.
또한, 상기 발명의 구성이 갖는 기능을 활성화하기 위해, 마이크로컴퓨터를 노멀 사용자모드와 상이한 모드로 해야한다. 이 점도 상기 과제를 해결하기 위한 구성으로는 부적당하다.
또한, 일본국 공개특허공보 342374/1993(공개일 1993년 12월24일)에는, 초기 단계에 프로그램을 다운 로드하는 수법에 관해 스타트되어 있다. 이 발명은 플래쉬 메모리 내장 마이크로컴퓨터에 프로그램 데이터를 다운 로드하는 기술에 관한 것으로, 상기 종래의 발명과 같이 마이크로컴퓨터를 노멀의 사용자모드와 다른 모드로 설정해야 한다. 즉, 이 기능을 노멀모드로 사용한 경우, 인터럽트벡터가 부트 ROM 내에 존재하기 때문에, 사용자 프로그램(사용자가 임의로 추가한 프로그램)안에서 인터럽트 처리를 자유롭게 변경할 수 없다.
본 발명은 상기 과제를 해결하기 위해 고안된 것으로, 본 발명의 목적은, 휘발성 메모리에 추가로 저장한 프로그램을 실행할 수 있는 비휘발성 메모리 내장 마이크로컴퓨터을 제공하는 것이다.
본 발명의 다른 목적은 비휘발성 메모리를, 동일한 비휘발성 메모리에 추가적으로 저장된 프로그램에 따라 데이터 영역으로 사용할 수 있는, 즉 프로그램 영역과 데이터 영역에 동시에 비휘발성 메모리를 사용할 수 있는 비휘발성 메모리 내장마이크로컴퓨터의 제공하는 것이다.
상기의 목적을 달성하기 위해, 본 발명의 비휘발성 메모리 내장마이크로컴퓨터는,
마이크로컴퓨터의 메모리 공간에 제공된 적어도 1개의 소거가능한 비휘발성 메모리;
마이크로컴퓨터를 시동하는 초기프로그램과 이 초기프로그램을 상기 비휘발성 메모리에 전송하기 위한 전송프로그램을 저장하는 부트 ROM;
상기 비휘발성 메모리에 아무 프로그램도 저장되어 있지 않을때, 상기 초기프로그램을 상기 전송프로그램에 따라 상기 비휘발성 메모리에 전송하여, 그 후, 부트 ROM을 마이크로컴퓨터의 메모리 공간에서 제거하는 제어부를 구비하는 특징이 있다.
상기 구성에 의하면, 비휘발성 메모리에 프로그램이 저장되어 있지 않을 때에, 부트 ROM에 저장되어 있는 전송프로그램에 따라 제어부가 부트 ROM에 저장되어 있는 초기프로그램을 비휘발성 메모리에 전송하고, 상기 비휘발성 메모리에 프로그램을 저장한다. 그 후, 제어부는 마이크로컴퓨터의 메모리 공간에서 부트 ROM을 제거한다.
이에 따라, 초기프로그램은 제조 직후에 어떤 데이터도 저장되어 있지 않은 상태의 비휘발성 메모리에 전송되어 저장된다.
또한, 새로운 프로그램을 비휘발성 메모리에 추가적으로 저장한 경우, 제어부는 부트 ROM을 고려하지 않고, 이 추가프로그램을 적절히 실행할 수 있다.
또한, 인터럽트 처리의 선두번지를 비휘발성 메모리상에 배치하는 것이 가능해지기 때문에, OS 등을 포함하는 프로그램이 기입되거나 새로운 프로그램이 비휘발성 메모리상에 빈번히 추가될 경우라도, 이들 새로운 프로그램의 실행중에 인터럽트 처리를 할 수 있다. 따라, 상기 프로그램은 더 유연하게 수정될 수 있다.
상기 비휘발성 메모리 내장마이크로컴퓨터는, 마이크로컴퓨터에 RAM을 제공하고;
초기프로그램이 인터럽트 처리의 선두번지를 포함하고;
비휘발성 메모리가 비휘발성 메모리에 저장된 프로그램을 RAM에 전송하기 위한 전송프로그램을 저장하고; 및
제어부가 RAM에 저장된 프로그램을 수행하고, 비휘발성 메모리에 저장된 프로그램을 전송프로그램에 따라 RAM에 전송하고, RAM에 저장된 프로그램이 실행할 때 초기프로그램에 포함된 인터럽트 처리의 선두번지를 상기 비휘발성 메모리에서 상기 RAM으로 이동시키는 방식으로 구성될 수도 있다.
상기 구성에 의하면, 전송프로그램에 따라 비휘발성 메모리에 전송되고 저장된 프로그램, 예컨대 외부장치로부터 비휘발성 메모리상에 다운 로드된 비휘발성 메모리에 대한 기입 및 소거 동작을 하기 위한 프로그램이 RAM에 전송되고, 실행될 때에는, 인터럽트 처리의 선두번지가 비휘발성 메모리로부터 RAM으로 이동한다.
그래서, 비휘발성 메모리로부터 RAM에 전송된 프로그램에 따라, 데이터 영역으로 사용되는 비휘발성 메모리에 관한 처리, 예컨대 기입 및 소거의 처리가 가능해진다.
RAM 상에서 비휘발성 메모리로부터 전송된 프로그램을 실행하는 중에 인터럽트가 발생한 경우에, 상기 프로그램이 폭주하지 않고, 상기 인터럽트 처리를 적절히 할 수 있다.
본 발명의 다른 비휘발성 메모리 내장마이크로컴퓨터는
RAM;
마이크로컴퓨터의 메모리 공간에 제공되어, 인터럽트 처리의 선두번지, 및 저장한 제1프로그램을 상기 RAM에 전송하기 위한 전송프로그램을 저장하기 위한 적어도 1개의 소거 가능한 비휘발성 메모리; 및
상기 RAM에 저장된 프로그램을 실행하고, 상기 전송프로그램에 따라, 상기 제1 프로그램을 비휘발성 메모리로부터 RAM에 전송함고, 이 RAM에 저장된 제1 프로그램을 실행할 때에, 상기인터럽트 처리의 선두번지를 비휘발성 메모리상에서 RAM 상에 이동시키는 제어부를 구비는 것을 특징으로 한다.
상기 구성에 의하면, 비휘발성 메모리에 저장된 제1 프로그램, 예컨대 외부장치로부터 비휘발성 메모리상에 다운 로드된 비휘발성 메모리에 대하여 기입 및 소거를 하기 위한 사용자 프로그램이 전송프로그램에 따라 RAM에 전송되고, RAM 상에서 제1 프로그램을 실행할 때, 인터럽트 처리의 선두번지가 비휘발성 메모리로부터 RAM으로 이동한다.
그 결과, 비휘발성 메모리로부터 RAM에 전송된 제1 프로그램에 따라, 비휘발성 메모리가 데이터 영역으로 사용될 때 비휘발성 메모리에 관한 처리, 예컨대 기입 및 소거의 처리가 가능해진다.
또한, RAM 상에 제1 프로그램을 실행하는 중에 인터럽트가 발생한 경우, 프로그램이 폭주하는 일없이, 그 인터럽트 처리를 적절히 할 수 있다.
상기 비휘발성 메모리 내장마이크로컴퓨터는,
프로그램영역과 데이터 영역이 동일한 상기 비휘발성 메모리상에 설정되고;
상기 프로그램영역에는 동일한 비휘발성 메모리의 데이터 영역을 사용하도록 지령하는 제2 프로그램이 저장되고;
상기 제어부가 상기 제2 프로그램에 따라 상기 데이터 영역을 데이터저장용으로 사용하도록 구성될 수 있다.
상기 구성에 의하면, 제2 프로그램에 따라 동일한 비휘발성 메모리를 프로그램영역과 데이터 영역의 양쪽에 용이하게 사용할 수가 있다.
구체적으로는, 제2프로그램에 따라, 예컨대, 비휘발성 메모리의 지정어드레스와 지정데이터수와 RAM의 지정어드레스에 관련된 정보에 따라 RAM에 저장된 비휘발성 메모리의 지정어드레스로부터 지정데이터수를 연속적으로 독출할 수 있다. 그 후, 데이터를 이 데이터를 RAM에서 연속적으로 독출하고 비휘발성 메모리의 데이터 영역의 지정어드레스에 기입할 수 있다.
본 발명의 특징 및 이점을 충분히 이해하기 위해 첨부도면을 참조하여 본 발명의 1 실시예를 상세히 설명한다.
도1은 본 발명의 1실시예에 따른 1-칩 마이크로컴퓨터의 리세트 동작 직후의 동작을 도시한 플로우 챠트;
도2는 도1의 동작을 수행하는 1-칩 마이크로컴퓨터의 구성을 도시한 블록도;
도3은 도2의 1-칩 마이크로컴퓨터의 메모리구성을 도시한 설명도;
도4는 도3의 메모리구성에 있어서, 부트 ROM이 제거되었을 때의 메모리구성을 도시한 설명도;
도5는 도4의 메모리구성에 있어서 제어가 RAM으로 절환되었을 때의 메모리구성을 도시한 설명도;
도6은 본 발명의 또다른 실시예에 따른 1-칩 마이크로컴퓨터의 블록도;
도7은 도6의 1-칩 마이크로컴퓨터의 메모리구성을 도시한 설명도;
도8은 도7의 메모리구성에 있어서 비휘발성 메모리에 대한 독출 및 기입 동작을 수행하기 위한 구성을 도시한 블록도;
도9는 도7의 비휘발성 메모리로부터 연속적인 데이터 독출 동작을 도시한 플로우 챠트;
도10은 도6의 비휘발성 메모리 또는 RAM의 지정영역으로부터 데이터를 독출하고, 그 데이터를 비휘발성 메모리의 지정영역에 기입하는 동작을 도시한 플로우 챠트;
도11은 도10의 RAM의 내부 루틴의 동작을 도시한 플로우 챠트;
도12는 도11의 비휘발성 메모리에 대한 기입/소거 동작중에 발생한 인터럽트 처리루틴을 도시한 플로우 챠트;
도13은 도6의 비휘발성 메모리에 대한 데이터 소거동작을 도시한 플로우 챠트;
도14는 도6의 비휘발성 메모리에 대한 데이터의 덮어쓰기 동작을 도시한 플로우 챠트;
도15a는 도14의 시퀀스 1에서 비휘발성 메모리에 대한 처리를 도시한 설명도;
도15b는 도14의 시퀀스 2에서 비휘발성 메모리에 대한 처리를 도시한 설명도;
도15c는 도14의 시퀀스 3에서 비휘발성 메모리에 대한 처리를 도시한 설명도;
도15d는 도14의 시퀀스 4에서 비휘발성 메모리에 대한 처리를 도시한 설명도;
도16은 종래의 IC 카드용 EEPROM 내장마이크로컴퓨터의 메모리구조를 도시한 설명도;
도17은 종래의 플래쉬 메모리 내장마이크로컴퓨터의 메모리구조를 도시한 설명도; 및
도18은 종래의 플래쉬 메모리 내장마이크로컴퓨터로의 데이터기입 방법을 도시한 블록도이다.
(실시예 1)
도1 내지 도5를 참조하여 본 발명의 1 실시예를 이하에 설명한다.
본 발명의 실시예 1에 따르면 비휘발성 메모리 내장마이크로컴퓨터를 나타내는 1-칩 마이크로컴퓨터는 도2에 도시된 것과 같이 구성되어 있다. 이 1-칩 마이크로컴퓨터는 IC 카드로서 실장되어 있다. 상기 도면에서, 1-칩 마이크로컴퓨터(1)는, 각종 프로그램을 실행하는 CPU(2)(제어수단), RAM(3), 비휘발성 메모리(반도체 비휘발성 메모리)로서 플래쉬 메모리(4), 부트 ROM(5) 및 시리얼 커뮤니케이션 인터페이스(이하, SCI라 칭한다)(6)를 포함하고 있다.
상기 1-칩 마이크로컴퓨터(1)에는, 소거 가능한 비휘발성 메모리로서 플래쉬 메모리(4)를 내장하고 있으나, 이는 다른 형태의 소거 가능한 비휘발성 메모리, 예컨대 EEPROM이나 FeRAM을 내장하여도 좋다. 1-칩 마이크로컴퓨터(1)가 데이터를 덮어쓰기하는 전제하에 사용되는 카드로서 실장되는 경우, 플래쉬 메모리 (비휘발성 메모리)(4)는, 덮어쓰기 가능회수가 10만회 정도인 것이 바람직하다.
도3은 상기 1-칩 마이크로컴퓨터(1)의 제조 직후와 같은 상태에 있는 메모리 맵을 도시한다. 즉, 어드레스 0000H-0FFFH가 4-k바이트의 부트 ROM 영역(부트 ROM 5)에 할당되고, 어드레스 0000H∼7FFFH가 32-k바이트의 플래쉬 메모리영역(플래쉬 메모리(4))에 할당되고, 어드레스 FF00H∼FFFFH가 256-바이트의 RAM 영역(RAM3)에 할당되어 있다.
어드레스 0000H는 스타트 어드레스이고, 어드레스 0000H∼000FH는 인터럽트벡터에 할당된다. 플래쉬 메모리(4)는 4-k바이트마다 8개의 블록(블록 0∼7)으로 분할되어 있다. 예컨대 데이터는 각 블록당 일괄적으로 소거될 수 있다.
도3은 부트 ROM(5)(부트 ROM 영역)이 인에이블된 상태를 나타내고, 1-칩 마이크로컴퓨터(1)의 리세트 직후에, 부트 ROM(5)에 저장되어 있는 초기프로그램이 실행된다. 부트 ROM(5)는 플래쉬 메모리(4)에 프로그램을 전송하고 저장하기 위한 전송프로그램을 저장한다. 인터럽트 처리의 선두번지는 부트 ROM상에 있고, 인터럽트 처리의 프로그램은 부트 ROM에 저장되어 있다.
상기 전송프로그램에 따라, 플래쉬 메모리(4)로의 부트 ROM(5)에 저장되어 있는 프로그램의 전송이 종료되면, 프로그램(제어)을 플래쉬 메모리(4)에 분기시키고, 부트 ROM(5)을 메모리 공간으로부터 제거한다. 상기 프로그램의 전송동작은, 플래쉬 메모리(4)에 어떠한 프로그램도 저장되어 있지 않을 때 행하여진다. 도4는 이 상태에서의 메모리 맵을 도시한다. 이 때, 인터럽트 처리의 선두번지는 플래쉬 메모리(4)상에 존재하고, 인터럽트 처리의 번지는 플래쉬 메모리(4)에 전송된 프로그램 내에서 자유롭게 설정가능하다.
플래쉬 메모리(4)에 프로그램을 전송하고, 전송된 프로그램에 따라 동일한 플래쉬 메모리(4)로부터 데이터를 기입하거나 소거하기 위해, 즉, 동일한 플래쉬 메모리(4)를 프로그램영역 및 데이터 영역으로서 동시에 사용하기 위해, 인터럽트 처리의 선두번지(인터럽트벡터), 및 플래쉬 메모리(4)의 데이터 영역에 대한 기입/소거 프로그램(제1 프로그램)을 플래쉬 메모리(4)로부터 RAM(3)에 전송하여, 거기에 저장한다.
상기 프로그램 이외에, 플래쉬 메모리(4)로부터 RAM(3)에 전송된 프로그램은 인터럽트 처리프로그램에 대한 선행프로그램 (예컨대, 플래쉬 메모리(4)에 대한 기입/소거의 중단처리 프로그램), 플래쉬 메모리(4)상의 인터럽트 처리프로그램에 대한 분기처리 프로그램, 및 인터럽트 처리가 종료된 후에 실행되는 인터럽트 처리프로그램에 대한 후처리 프로그램 (예컨대, 플래쉬 메모리(4)에 대한 기입/소거의 재개 처리프로그램)이 포함된다.
도5는 상기 처리를 완료한 후의 메모리 맵을 도시한다. 이 경우, 인터럽트 처리의 선두번지는 RAM(3)상에 있고, 데이터가 플래쉬 메모리(4)로부터 기입/소거가 되는 동안 인터럽트가 발생하더라도, RAM(3)에 저장된 인터럽트 처리의 선두번지로부터 인터럽트 처리를 스타트할 수 있다. 이 때에도, 도5에 도시된 바와 같이, 부트 ROM(5)는 메모리 공간에서 제거된다.
다음, 도1의 플로우 챠트에 따라, 전원이 인가되어 1-칩 마이크로컴퓨터(1)이 리셋된 직후에 제어가 부트 ROM(5)에서 비휘발성 메모리로서 플래쉬 메모리(4)로 스위칭되는 동작을 설명한다.
우선, 전원이 투입되면 1-칩 마이크로컴퓨터(1)는 소정의 리세트 동작(S201)을 행한다. 이 리세트 동작이 완료하면, CPU(2)는 메모리 공간(S202)에 있는 부트 ROM(5)가 인에이블하도록 1-칩 마이크로컴퓨터를 세트한다. 이 때의 메모리 맵은 도3에 도시된다. 그 후, CPU(2)는 부트 ROM(5)의 어드레스를 프로그램 카운터(S203)에 세트한다.
S203을 종료한 후, 1-칩 마이크로컴퓨터(1), 즉 CPU(2)는 부트 ROM(5)(S204)에 저장된 프로그램의 실행을 시작한다.
우선, CPU(2)는 프로그램이 이미 부트 ROM(5) (S205)에서 플래쉬 메모리(4)로 전송되었는지를 판정한다. 만약 플래쉬 메모리(4)에 프로그램이 이미 저장되어 있으면 S207로 진행하는 한편, 아직 저장되어 있지 않으면, 부트 ROM(5)(S206)에 저장된 전송프로그램에 따라, 부트 ROM(5)에 저장되어 있는 프로그램을 플래쉬 메모리(4)에 전송하고 기입한다.
그 후, CPU(2)는 상기 메모리 공간에서 부트 ROM(5)를 제거하고 플래쉬 메모리(4)(S207)를 인에이블하게 한다. 이때의 메모리 맵(4)는 도4에 도시된 바와 같다.
그 후, 상기 CPU(2)는 플래쉬 메모리(4)의 어드레스를 프로그램 카운터(S208)로 세트하고 플래쉬 메모리(4)(S209)에 저장된 프로그램을 실행시키기 시작한다.
그 후, 플래쉬 메모리(4)에 저장된 데이터를 업데이트 하기 위해, 업데이트 프로그램(기입/소거 프로그램)과 플래쉬 메모리(4)에 있는 인터럽트 벡터(3)을 플래쉬 메모리(4)(S210)에 저장된 전송프로그램에 따라 RAM(3)에 전송하고 저장한다. 이 때의 메모리 맵은, 도5에 도시된 바와 같이 된다.
상기의 예로 부트 ROM(5)가 독립적으로 제공되는 경우를 상술하였다. 그러나 상기 예의 경우에서와 같이 부트 ROM(5)에 저장된 프로그램이 미리 플래쉬 메모리(4)에 저장될 수도 있다. 즉, 부트 ROM(5)을 생략한 구성도 채택될 수 있으며, 이 경우에는, 상기 S202∼S208의 동작이 생략된다.
또한, 플래쉬 메모리(4)에 사용자(사용자 프로그램)가 임의로 선택한, 예컨대 응용 프로그램이나 버젼 업된 0S 등의 프로그램을 저장하는 경우에는, 도18에 설명한 바와 같이, 1-칩 마이크로컴퓨터(1)를 변환보드(102)를 통해 퍼스널 컴퓨터(103)에 접속한다. 이 경우, 부트 ROM(5) 또는 동등한 비휘발성 메모리(플래쉬 메모리(4))가 인에이블 되고, 거기에 저장된 제어 프로그램을 사용하여, 퍼스널 컴퓨터(103)로부터 공급되는 사용자 프로그램이 비휘발성 메모리(플래쉬 메모리(4)) 에 기입된다.
상기의 구성에 의해, 사용자가 임의로 응용 프로그램을 플래쉬 메모리(4)내에 혼잡시키고, 상기 응용 프로그램을 실행시킨다. 즉 거기에 추가적으로 저장된 적용 프로그램에 따라, 상기 플래쉬 메모리(4)의 데이터 영역을 덮어쓰기할 수 있다.
또한, 상기한바와 같이, 동일한 플래쉬 메모리(비휘발성 메모리)(4)에 프로그램 영역과 데이터 영역을 설정할 수 있기 때문에, 이들 각 영역을 별칩으로 제공할 필요가 없다. 따라, 1-칩 마이크로컴퓨터(1), 더 자세히 말하자면 1-칩 마이크로컴퓨터(1)로 이루어지는 IC 카드를 소형화할 수가 있다.
〔실시예 2〕
본 발명의 다른 실시예를 도6~도15를 참조하여 이하에 설명한다.
도6은 본 발명의 실시예 2에 따른 1-칩 마이크로컴퓨터의 구성을 나타낸다. 즉, 1-칩 마이크로컴퓨터(11)는, 프로그램을 실행하는 CPU(2), RAM(3)을 포함하는 메모리세트, 소거 가능한 비휘발성 메모리(14)(반도체 비휘발성 메모리) 및 부트 ROM(5)를 포함하고, 또한 상기 SCI(6)를 구비한다.
도7은 상기 도1을 참조하여 설명한 동작을 완료한 후의 1-칩 마이크로컴퓨터(11)의 메모리 구성을 나타낸다. RAM(3) 및 비휘발성 메모리(14)는 CPU(2)의 어드레스 공간에 할당되어, CPU(2)로부터 각 메모리로 독출 액세스 및 기입 액세스가 가능해진다. 비휘발성 메모리(14)의 프로그램 영역에 상기 부트 ROM(5)에 저장되어 있던 프로그램이 저장되고 CPU(2)에 의해 실행된다.
상기 프로그램에 따라, CPU(2)로부터 출력되는 명령에 대해 제어가능한 메모리가 비휘발성 메모리(14)로 사용된다. 상기 명령의 예는, 비휘발성 메모리(14)를 독출모드에 설정하는 명령, 비휘발성 메모리(14)에 대한 기입모드에 설정하는 명령, 비휘발성 메모리(14)를 소거모드에 설정하는 명령, 비휘발성 메모리(14)에 대한 기입/소거 동작을 중단하는 명령, 및 비휘발성 메모리(14)에 대한 기입/소거 동작을 재개하는 명령, 및 비휘발성 메모리(14)에 대한 기입/소거 동작을 종료를 감시하는 명령을 포함한다.
비휘발성 메모리(14)는, 각각 4 k바이트의 블록 A∼F로 구성되고 비휘발성 메모리(14)에 기입되는 데이터는 상기의 각 블록단위로 소거된다.
블록 A에는, 1-칩 마이크로컴퓨터(11)의 시스템 프로그램인 동작 시스템과 감시 시스템이 저장된다.
블록 B에는, 사용자 응용 프로그램이 저장된다. 이 응용 프로그램으로부터 블록 A에 저장된 시스템 프로그램의 명령을 호출할 수 있다.
블록 C∼E는, 데이터 영역(데이터 영역1∼3)으로 사용된다.
블록 F는 백업영역으로서 사용된다. 이 백업영역에는, 상기 데이터 영역의 일부를 덮어쓰기하는 경우에 보존이 필요한 데이터가 일시적으로 저장된다.
RAM(3)은, 1-칩 마이크로컴퓨터(11)의 인터럽트벡터영역과, 비휘발성 메모리(14)에 대한 데이터의 기입 동작및 소거동작을 행하기 위한 프로그램, 즉 기입/소거프로그램을 저장하기 위한 비휘발성 메모리 기입/소거 프로그램영역, 시스템 프로그램을 실행할 때 작업영역이 되는 시스템 프로그램 작업영역 및 사용자영역으로 구성되어 있다.
인터럽트 벡터 및 비휘발성 메모리(14)에 대한 기입/소거 프로그램은, 최초 비휘발성 메모리(14)의 시스템 프로그램영역에 저장되고, 도1에 따라 설명한 바와 같이, 상기 프로그램은 시스템 프로그램에 따라 미리 RAM(3)에 전송된다.
도8은 비휘발성 메모리(14)에 대한 독출 액세스 및 기입 액세스를 나타낸다. 비휘발성 메모리(14)로의 액세스는 시스템 프로그램의 명령에 따라 CPU(2)에 의해 제어된다.
상기 처리(각 액세스)는, 시스템 프로그램 으로부터의 명령의 발행(P1)에 의해 시작된다. 상기 명령은, 명령 인터페이스(P2)에 의해서 해석되어, 비휘발성 메모리(14)로부터 데이터를 독출하는 명령을 참조계 명령으로 하고, 비휘발성 메모리(14)에 대하여 데이터를 기입 또는 소거하는 명령(제 2 프로그램)을 갱신계 명령으로 처리한다. 이들 각 명령은, 비휘발성 메모리(14)에 저장되어 있고, 비휘발성 메모리(14)에서 실행된다.
상기 참조계 명령이 발행된 경우, 제어가 비휘발성 메모리(14)에 대한 독출 루틴(P3)으로 제어가 이동되고, 비휘발성 메모리(14)의 데이터 영역에 있는 데이터가 독출된다(P4).
한편, 갱신계 명령이 발행된 경우, 비휘발성 메모리(14)상에 데이터의 기입/소거에 필요한 파라미터가 설정된 후, RAM(3)에 미리 저장된 비휘발성 메모리(14)에 대해 기입/소거 루틴(P5)으로 제어가 이동된다.
즉, 상기한 갱신계 명령이 발행된 경우, 본 발명의 1-칩 마이크로컴퓨터11가 하나의 비휘발성 메모리(14)만을 포함하고 있기 때문에, 비휘발성 메모리(14)에 저장된 프로그램을 실행하면서, 동일한 비휘발성 메모리(14)로부터 데이터를 기입하거나 소거할 수 없다. 따라서, 이 경우에는, 상기한 바와 같이 미리 RAM(3)에 전송하여 저장된 비휘발성 메모리(14)에 대한 기입/소거 루틴(P5)으로 제어를 이동시킴으로써, 비휘발성 메모리(14)의 데이터 영역에 대한 기입/소거동작(P4)이 행하여진다.
이 기입/소거 동작은, 비휘발성 메모리(14)로부터 데이터를 독출할 때와 비교하여 시간이 걸린다. 특히 기입 동작은 수백배의 시간이 필요하고, 또한 블록단위의 소거는 초단위의 시간이 필요하다. 예컨대, 1바이트의 데이터 독출은 수천 나노초가 걸리는 반면, 1바이트의 기입은 수십 마이크로초, 블록당 64 k바이트의 소거는 수백 마이크로초가 필요하다. 여기서, 예컨대 1블록 소거에 600 밀리초가 걸린다고 가정하면, 블록을 3개 소거할 경우에는 약 1. 8초가 걸린다.
이와 같이, 기입/소거 동작은 장시간을 요하기 때문에, 비휘발성 메모리(14)에 대한 RAM(3)상에서의 기입/소거 루틴의 실행중에는, 인터럽트의 발생을 감시한다.
인터럽트가 발생하면, 상기 기입/소거 루틴을 중단하고, 비휘발성 메모리(14)상의 인터럽트 처리루틴을 실행한다(P6). 인터럽트 처리가 종료하면, 다시 RAM(3)상의 비휘발성 메모리(14)에 대한 기입/소거 루틴으로 제어가 되돌아가고, 상기 기입/소거 동작을 재개한다.
다음, 1-칩 마이크로컴퓨터(11)의 비휘발성 메모리(14)로부터 데이터를 연속적으로 독출하는 독출 동작을 도9의 플로우 챠트에 따라 설명한다.
우선, 비휘발성 메모리(14)로부터 연속적인 데이터의 독출을 명령하는 연속독출을 발행하면(S1), CPU(2)는 이 명령이 시스템 프로그램으로부터 호출된 것인가 아닌가를 판정한다(S2).
이 결과, 시스템 프로그램으로부터 호출한 것이 아니면, S12로 분기하여 처리를 중지한다. 한편, 상기 명령이 시스템 프로그램으로부터 호출된 경우, 데이터독출 소스로서 원래의 비휘발성 메모리(14)의 어드레스를 변수(SRC)로 설정한다(S3).
다음, 비휘발성 메모리(14)로부터의 데이터 독출을 위한 RAM의 저장 어드레스를 변수(DST)로 설정하고(S4), 비휘발성 메모리(14)로부터의 데이터 독출 회수를 변수(CNT)에 설정한다(S5).
다음, 데이터 독출 회수(CNT)가 0인가 아닌가를 판정하여(S6), 0이면 S13으로 분기하여 처리를 중지하고, 데이터 독출 회수(CNT)가 0이 아니면, CPU(2)는, 비휘발성 메모리(14)에 대하여 독출모드와 동일하게 설정하라는 명령을 발행함으로써, 비휘발성 메모리(14)를 독출 모드로 설정한다(S7).
다음, 비휘발성 메모리(14)의 어드레스(SRC)로부터 데이터를 독출하고, RAM(3)의 어드레스(DST)에 저장한다(S8). 그 후, 어드레스 SRC와 DST를 다음 데이터독출을 위해 어드레스로 업데이트하고(S9), 독출 수 CNT를 1 감소시킨다(S10).
다음, 비휘발성 메모리(14)로부터의 데이터 독출 회수, 즉 변수 CNT가 0인가 아닌가를 판정함으로써, 최후까지 데이터를 독출 했는지를 판단한다(S11). 이 결과, 데이터를 최후까지 독출하지 않았으면, 최후의 데이터를 독출할때까지 S8∼S11의 동작을 되풀이하여, 데이터를 최후까지 읽어 내면 처리를 종료한다(S13).
다음, 1-칩 마이크로컴퓨터(11)에 있어서의 비휘발성 메모리(14) 또는 RAM(3)의 지정된 영역으로부터 연속적으로 데이터를 독출하고, 비휘발성 메모리(14)의 지정된 영역에 데이터를 기입하는 동작을 도10의 플로우 챠트에 따라 설명한다.
우선, 비휘발성 메모리(14)로의 연속적인 데이터 기입을 지령하는 명령이 발행되면(S21), CPU(2)는 이 명령이 시스템 프로그램으로부터 호출된 것인가 아닌가를 판정한다(S22).
이 결과, 시스템 프로그램으로부터 호출된 것이 아니면, S33으로 분기하여 처리를 중지한다. 한편, 상기 명령이 시스템 프로그램으로부터 호출된 것이면, 데이터 독출 소스로서 상기 비휘발성 메모리(14) 또는 RAM(3)의 어드레스를 변수 SRC에 설정한다(S23).
다음, 비휘발성 메모리(14)로의 기입 데이터의 설정시에 이용되는 저장 어드레스를 변수(DST)로 설정하고(S24), 비휘발성 메모리(14)로의 데이터의 기입 수를 변수(CNT)로 설정한다(S25).
다음, 데이터 기입 수 CNT가 0인가 아닌가를 판정하여(S26), 0이면 S34로 분기하여 처리를 종료한다. 한편, 데이터 기입 수 CNT가 0이 아니면, 비휘발성 메모리(14)의 업데이트중을 나타내는 플래그를 1로 설정하고(S27), 인터럽트를 금지한다(S28).
이와 같이, 인터럽트를 금지하는 것은, 다음 S29의 동작에 의해 제어가 RAM(3)상의 루틴에 스위칭 되었을 때, 인터럽트의 발생에 의해 비휘발성 메모리(14)상의 인터럽트 처리 루틴을 필요없이 실행시키지 않기 때문이다. 여기까지의 처리는, 비휘발성 메모리(14)상의 프로그램(비휘발성 메모리(14)에 저장되어 있는 프로그램)에 의해서 실행된다.
여기서, 비휘발성 메모리(14)에 저장된 프로그램을 비휘발성 메모리(14)상에서 실행하면서, 데이터를 동일한 비휘발성 메모리(14)에 기입할 수 없다. 따라서, 미리 시스템 프로그램 즉, RAM의 내부 루틴에 따라 비휘발성 메모리(14)로부터 RAM(13)에 전송된 프로그램으로 제어를 이동시킨다(S29).
RAM의 내부루틴의 처리가 종료되면, 금지되어 있는 인터럽트를 다시 인에이블시켜, 다시 비휘발성 메모리(14)상의 프로그램으로 제어를 이동시킨다(S30).
다음, 비휘발성 메모리(14)의 업데이트 플래그를 0으로 리세트하고(S31), 비휘발성 메모리(14)에 대한 기입 동작을 종료한다(S32).
다음, 도10의 S29에 도시된 RAM 내부 루틴의 동작을 도11의 플로우 챠트에 따라 설명한다. 여기서의 동작은, 비휘발성 메모리(14)에 대한 데이터의 기입 또는 소거를 위한 것이다.
비휘발성 메모리(14)상의 프로그램으로부터 RAM(3)상의 프로그램으로 제어를 이동시키면, 우선 CPU(2)는 프로그램으로부터 호출한 명령이 기입명령인지 또는 소거명령인지를 판정한다(S41). 상기 기입명령은, 비휘발성 메모리(14)의 데이터 영역으로 데이터의 기입을 명령하는 것이고, 상기 소거명령은 비휘발성 메모리(14)의 데이터 영역에 독출된 데이터의 소거를 명령하는 것이다.
상기 판정의 결과, 기입명령이면, CPU(2)가 비휘발성 메모리(14)를 독출 모드로 설정하는 명령을 발행함으로써, 비휘발성 메모리(14)를 독출 모드로 설정한다(S42). 그 후, CPU(2)는, 변수(SRC)로써 설정되어 있는 어드레스로부터 데이터를 독출한다(S43).
다음, CPU(2)가 비휘발성 메모리(14)를 기입 모드로 설정하는 명령을 발행함으로써, 비휘발성 메모리(14)를 기입 모드로 설정한다(S44). 그 후, CPU(2)는 변수 DST에 설정되어 있는 비휘발성 메모리(14)의 어드레스에 S43에서 독출한 데이터를 기입한다(S45). 이로써, 비휘발성 메모리(14)로의 기입이 개시된다.
그 후, 다음번의 데이터 기입를 위해, SRC 어드레스와 DST 어드레스를 업데이트하고(S46), 기입 수 CNT를 1 감소시킨다(S47).
다음, 비휘발성 메모리(14)로의 데이터 기입은 시간이 걸리기 때문에, CPU(2)는 인터럽트를 인에이블하고(S48), 비휘발성 메모리(14)로의 기입 동작의 종료를 감시하는 명령을 발행하여, 이 동작의 종료를 기다린다(S49). 상기 기입 동작이 종료하기 전에 우선도가 높은 인터럽트가 발생하면 , 후술하는 도12의 인터럽트 처리 루틴으로 제어를 이동시킨다.
그 후, CPU(2)가 비휘발성 메모리(14)로의 기입 동작의 종료를 검출하면, 인터럽트를 금지한다(S50).
다음, CPU(2)는 이번의 비휘발성 메모리(14)로의 기입 동작에 의해 에러가 발생한 것인가 아닌가를 판정한다(S51). 에러가 있다고 판정한 경우, S54로 진행하여, CPU(2)가 비휘발성 메모리(14)에 독출모드로 설정하라는 명령을 발행함으로써, 비휘발성 메모리(14)를 독출모드로 하여, RAM의 내부 루틴의 처리를 종료한다(S55).
또한, S51의 판정에 있어서, 상기 에러가 발생하지 않고 비휘발성 메모리(14)로의 기입 동작이 정상으로 종료한 경우, 비휘발성 메모리(14)에 대한 처리를 지령한 지시이 기입명령이면(S52) S53으로 진행하고, 소거명령이면 S54로 진행한다.
S53에서는, 비휘발성 메모리(14)로의 잔여 데이터 기입 수를 지시하는 변수 CNT가 0인가 아닌가를 판정함으로써, 최종 데이터를 비휘발성 메모리(14)에 기입할것인지를 판정한다. 이 때, 최후까지 데이터를 기입하지 않으면, S42∼S52의 동작을 되풀이한다. 한편, 최후까지 데이터를 기입하면, S54로 진행하여, 비휘발성 메모리(14)를 독출모드로 설정하고, RAM의 내부루틴의 동작을 종료한다(S55) .
다음, 도 11에 도시된 RAM의 내부 루틴에서의 S49의 동작으로, 비휘발성 메모리(14)에 대한 기입 동작의 종료를 감시하고 있을 때, 인터럽트가 발생한 경우의 동작을 도 12의 플로우 챠트에 따라 설명한다.
S49의 루프 내에서, 인터럽트가 발생하면 , 도7에 도시된 RAM(3) 내의 인터럽트 벡터로부터, 해당하는 인터럽트 처리 루틴의 어드레스를 CPU(2)가 독출한다. 따라서, 비휘발성 메모리(14)내에 저장된 인터럽트 처리 루틴으로 제어를 이동시킨다.
또한, 전술의 인터럽트 처리의 선두번지(인터럽트벡터)와, 비휘발성 메모리(14)의 데이터 영역에 대한 기입/소거프로그램 이외에, 인터럽트 처리프로그램에 대한 전처리 프로그램(예컨대, 비휘발성 메모리(14)에 대한 기입/소거 동작의 중단처리 프로그램), 비휘발성 메모리(14)상의 인터럽트 처리프로그램에 대한 분기처리프로그램, 및 인터럽트 처리 종료후에 실행되는 인터럽트 처리프로그램에 대한 후처리프로그램(예컨대, 비휘발성 메모리(14)에 대한 기입/소거 동작의 재개 처리 프로그램)이 미리 전송되어 있다.
상기 인터럽트 처리에서는, 우선, 인터럽트가 발생하였을 때, 비휘발성 메모리(14)의 데이터가 업데이트 되는지 즉, 비휘발성 메모리(14)에 대한 기입/소거 동작을 하는지를 판정한다(S61). 비휘발성 메모리(14)의 데이터를 업데이트하면, CPU(2)가 비휘발성 메모리(14)에 대하여 업데이트 동작을 중단하는 명령을 발행함으로써, 그 처리를 중단한다. 즉, CPU(2)가, 인터럽트벡터의 내용으로부터, RAM(3)에 존재하는 인터럽트 처리에 대한 전처리 루틴(인터럽트 처리에 대한 전처리의 선두 어드레스)으로 제어를 분기하여, 비휘발성 메모리(14)에 대한 기입/소거의 중단처리를 한다. 한편, 비휘발성 메모리(14)에 있는 데이터를 업데이트 하지 않는 경우는, S62의 처리를 생략하여 S63으로 진행한다.
S63에서는, CPU(2)가 비휘발성 메모리(14)에 대하여, 독출모드로 설정하는 명령을 발행함으로써, 비휘발성 메모리(14)를 독출 모드로 설정한다.
여기서, CPU(2)는, 비휘발성 메모리(14)에 저장되어 있는 인터럽트 처리 루틴을 실행할 수 있도록 되어 있기 때문에, 비휘발성 메모리(14)상의 프로그램으로 제어를 이동시켜, 즉 비휘발성 메모리(14)상에 존재하는 인터럽트 처리를 위한 어드레스로 제어를 분기하고, 인터럽트 처리를 실행한다(S64).
그 후, 비휘발성 메모리(14)상에서 상기의 인터럽트 처리가 종료되면, 다시 RAM(3)에 저장된 프로그램에 복귀하고, CPU(2)는 비휘발성 메모리(14)의 갱신 처리가 중단중인지 아닌지를 판정한다(S65).
그 결과, 비휘발성 메모리(14)의 갱신 처리가 중단되지 않으면, S67로 진행하고, 인터럽트 처리 루틴을 종료한다. 또한, 비휘발성 메모리(14)에 대한 갱신 처리가 중단중이면, CPU(2)는, 비휘발성 메모리(14)에 대하여, 기입/소거 동작을 재개하는 명령을 발행함으로써, 비휘발성 메모리(14)의 갱신 처리를 재개한다(S66). 즉, CPU(2)는, RAM(3)상의 인터럽트 처리에 대한 후처리 루틴(인터럽트 처리에 대한 후처리의 선두 어드레스)으로 제어를 분기하고, 상기 갱신 처리를 재개한다. 다음, 이 갱신 처리가 종료되면, 인터럽트 처리 루틴을 종료한다(S67). 그 후, 도 11의 S49의 루프로 복귀하는 상기의 동작에 의해, 비휘발성 메모리(14)의 갱신중에 발생한 인터럽트 요인에 대하여, 정확히 인터럽트 처리를 실행하는 것이 가능하게 된다.
다음, 비휘발성 메모리(14)에서 지정한 블록의 소거동작을 도 13의 플로우 챠트에 따라 설명한다.
우선, 비휘발성 메모리(14)에 대한 소거명령이 발행되면(S71), CPU(2)는, 이 명령이 시스템 프로그램으로부터 호출된 것인지 아닌지를 판정한다(S72).
그 결과, 시스템 프로그램으로부터 호출된 것이 아니면, S80으로 분기하여 처리를 중지한다. 한편, 상기 명령이 시스템 프로그램으로부터 호출한 것이면, 비휘발성 메모리(14)에서 소거하는 블록의 어드레스를 변수(DST)으로 설정한(S73) 다음, CPU(2)는 비휘발성 메모리(14)의 갱신중 플래그를 1로 설정한(S74) 후, 인터럽트를 금지한다(S75).
이와 같이, 인터럽트를 금지하는 것은, 다음 S76의 동작에 의해 제어가 RAM(3)상의 루틴으로 이동되었을 때에, 인터럽트의 발생에 의해 불필요하게 비휘발성 메모리(14)상의 인터럽트 처리 루틴을 실행시키지 않도록 하기 위한 것이다. 여기까지의 처리는, 비휘발성 메모리(14)상의 프로그램에 의해 실행된다.
여기서, 비휘발성 메모리(14)상의 프로그램을 실행하면서, 비휘발성 메모리(14)의 임의의 블록을 소거할 수 없다. 따라서, 이 다음에, 미리 시스템 프로그램에 따라 RAM(3)에 전송되어 여기에 저장된 프로그램, 즉 RAM내 루틴으로 제어를 옮긴다(S76).
RAM내 루틴의 처리가 종료되면, CPU(2)는 금지하고 있는 인터럽트를 다시 허가하고, 다시 비휘발성 메모리(14)상의 프로그램, 즉 비휘발성 메모리(14)에 있어서의 블록 소거 동작으로 제어를 이동시킨다(S77).
다음, 비휘발성 메모리(14)의 갱신중 플래그를 0으로 리셋하고(S78), 비휘발성 메모리(14)에 대한 블록 소거 동작을 종료한다(S79).
상기 S76에서의 RAM내 루틴의 동작은, 상기 도 11의 플로우 챠트에 도시한 것이다. 도 11의 플로우 챠트중 S41에서, 상기 명령은 소거 명령이기 때문에, S56으로 진행하여, CPU(2)가 비휘발성 메모리(14)를 소거하는 명령을 발행함으로써, 변수(DST)에 설정된 비휘발성 메모리(14)의 어드레스를 포함하는 1블록의 소거가 시작된다.
다음, 비휘발성 메모리(14)의 1블록의 소거동작은 시간이 걸리기 때문에, 인터럽트를 하여(S48), CPU(2)가, 인터럽트의 발생을 감시하면서, 상기 소거 동작의 완료를 기다린다(S49). 또, 인터럽트가 발생하였을 때의 동작은, 상기 도 12의 플로우 챠트에 따라 설명한 것과 같다.
그 후, CPU(2)는, 비휘발성 메모리(14)에 있어서의 1블록의 소거동작의 종료를 검출하면, 인터럽트를 금지한다(S50).
다음, CPU(2)는, 상기 비휘발성 메모리(14)에 있어서의 1블록의 소거동작으로 에러가 발생하는지의 여부를 판정한다(S51). 에러가 있다고 판정된 경우, S54로 진행하고, CPU(2)는, 비휘발성 메모리(14)에 대하여 독출 모드로 설정하는 명령을 발행함으로써, 비휘발성 메모리(14)를 독출모드로 하고, RAM내 루틴의 처리를 종료한다(S55).
또한, S51의 판정에서, 상기 에러가 발생하지 않고 비휘발성 메모리(14)에서의 1블록의 소거동작이 정상으로 종료한 경우, 비휘발성 메모리(14)에 대한 처리를 지령한 명령이 소거명령이면(S52), S54로 진행하고, 상기한 동작을 완료한 후, RAM내 루틴의 처리를 종료한다(S55).
다음, 비휘발성 메모리(14)에 대한 데이터의 덮어쓰기 동작(갱신 동작)을 도 14및 도 15의 플로우 챠트 에 따라 상세히 설명한다.
비휘발성 메모리(14)에 데이터 덮어쓰기를 하기 위해서는, 비휘발성 메모리(14)에서의 덮어쓰기 영역의 데이터를 소거해야 한다. 본 실시예의 1-칩 마이크로컴퓨터(11)가 포함하는 비휘발성 메모리(14)는, 1블록마다 소거를 행한다. 블록내의 임의의 영역만을 소거하기 위해서는, 특별한 수순이 필요하다.
도 15에서는, 상기 비휘발성 메모리(14)의 임의의 영역을 소거하기 위한 순서를 설명하고 있다. 비휘발성 메모리(14)에 대한 덮어쓰기 동작은, 최초로 덮어쓰기 대상 영역을 소거한 후, 그 영역에 대해 연속기입을 행하는 것이다. 도 14의 S93으로부터 S101의 처리는, 도 15a의 시퀀스(1)로부터 도 15d의 시퀀스(4)의 처리 순서에 상당한다. 상기 처리를 각 시퀀스로 분할하는 것은, 각각의 시퀀스에 시간이 걸리기 때문에, 시퀀스마다 시스템 프로그램의 처리를 실행할 수 있도록 하기 위한 것이다. 또, 예컨대 도 15a의 블록 C∼E는, 도 7의 데이터 영역 1∼3으로서의 블록 C∼E에 대응한다.
도 14에 있어서, 시스템 프로그램에 따라, 비휘발성 메모리(14)로의 데이터 덮어쓰기 명령이 발행되면(S91), CPU(2)는, 우선, 덮어쓰기 대상 영역을 소거 한다.
이 때, 시퀀스 번호를 1로 설정하고(S92), 소거 대상 블록(블록 C∼E)중 소거 대상 영역(블록 D)을 제외한 백업 대상 영역 1, 2(블록 C, E)의 각각의 스타트 어드레스와 사이즈를 산출한다(S93).
다음, 필요에 따라 시스템 프로그램 또는 사용자 프로그램의 처리를 실행한다(S94).
다음, 임의의 영역을 소거하기 위한 소거 동작 시퀀스가 모두 완료되었는지의 여부를 판정한다(S95). 이 때, 시퀀스 번호가 0이 아니면, 아직 시퀀스 처리중인 것으로, 시퀀스 번호에 따라 S96∼S99로 진행된다.
시퀀스 번호가 1일때, S96에서는, 도 15a에 도시된 바와 같이, S92에서 산출한 백업 대상 영역의 스타트 어드레스와 사이즈에 따라, 비휘발성 메모리(14)에 대한 연속기입 동작에 의해, 백업용의 블록(백업 블록)으로의 기입이 행해진다. 백업용의 블록으로는, 예컨대 도 7에 도시한 비휘발성 메모리(14)에서의 백업 영역(F 블록)을 사용한다. 또, 이 백업 영역 내의 데이터는 미리 소거하여 둔다.
상기 백업 동작이 완료되면, 다음 시퀀스로 이동시키기 위해, 시퀀스번호가 S100에서 하나씩 증분되고, S94부터의 동작을 되풀이한다.
시퀀스 번호가 2일 때에는, S97에서, 도 15b에 도시한 바와 같이, 소거 대상 영역을 포함하는 소거 대상 블록 내의 데이터를 소거한다.
시퀀스 번호가 3일 때에는, S98에서, 도 15c에 도시한 바와 같이, S96의 동작으로 백업한 백업 영역 1, 2를 원래의 소거 대상 블록 내로 다시 기입한다.
시퀀스 번호가 4일 때에는, S99에서, 도 15d에 도시한 바와 같이, 백업 블록내의 데이터를 모두 소거한다.
이상의 일련의 동작에 의해, 비휘발성 메모리(14)의 임의 영역의 소거 동작이 완료된다.
다음, S101에서는, 시퀀스 번호를 0으로 클리어하고, S94, S95를 거쳐 S102로 진행한다. 이 S102에서는, 비휘발성 메모리(14)의 도 15c에 도시한 소거 영역(블록 D)에 데이터를 기입한다. 이로써, 비휘발성 메모리(14)의 데이터 덮어쓰기 동작이 완료된다(S103).
상기 1-칩 마이크로컴퓨터(1,11)에서는, 일방의 비휘발성 메모리를 프로그램을 저장하는 프로그램 영역이나 데이터를 저장하고 덮어쓰기하는 데이터 영역으로 사용하지만, 프로그램 영역과 데이터 영역에 동시에 사용될 수 있다. 두가지 다른 영역으로 사용하면 큰 용량의 비휘발성 메모리를 사용할 때 특히 유효하다. 또한 상기 비휘발성 메모리를 두가지 다른 영역에 동시에 사용할 수 있기 때문에 1-칩 마이크로컴퓨터(1)로 구성되는 IC 카드를 하나의 칩을 사용함으로써 소형화할 수 있다.
또한, 예컨대 상기 1-칩 마이크로컴퓨터(1, 11)를 구비한 IC 카드에 있어서, 대용량의 비휘발성 메모리를 탑재한 경우, 프로그램의 용량이나 데이터 영역을 다이나믹하게 변화시켜 사용할 수가 있다. 따라서, IC 카드가 대단히 유연성이 풍부하고 동시에 높은 안정성을 가질 수 있으며, 다이나믹하게 덮어쓰기될 수 있는 멀티 응용 시스템을 실현할 수 있다.
즉, 예컨대 IC 카드 용도로 멀티 응용을 할 수 있도록 대용량 메모리 탑재판이 종래 제안되고 있지만, 프로그램이 여전히 ROM상에 있기 때문에 사용이 제한된다. 이에 대하여, 본 발명의 1-칩 마이크로컴퓨터(1,11)를 사용하면, IC 카드 발행후에 다이나믹하게 응용의 추가 및 소거가 가능한 뿐만 아니라, 0S의 버젼 업도 가능하게 된다.
본 발명의 비휘발성 메모리 내장 마이크로컴퓨터는,
적어도 1개의 소거 가능한 비휘발성 메모리;
마이크로컴퓨터를 스타트하는 초기프로그램 및 이 초기프로그램을 상기 비휘발성 메모리에 전송하기 위한 전송프로그램을 저장하는 부트 ROM; 및
상기 비휘발성 메모리에 어떠한 프로그램도 저장되어 있지 않을 때, 상기 초기프로그램을 상기 전송프로그램에 따라 상기 비휘발성 메모리에 전송하는 제어수단을 구비하도록 구성될 수도 있다.
따라서, 어떠한 데이터도 저장되어 있지 않은 제조 직후의 상태의 비휘발성 메모리에 대하여, 부트 ROM에서 용이하게 데이터를 전송하여 저장할 수 있다.
상기 비휘발성 메모리 내장 마이크로컴퓨터는, 상기 제어수단이, 상기 비휘발성 메모리로부터 RAM에 전송되어 저장된 프로그램에 따라, 상기 비휘발성 메모리에 대한 데이터의 기입과 소거중 적어도 하나를 실행하는 구성이다.
상기 구성에 의하면, RAM에 저장된 프로그램에 따라, 비휘발성 메모리에 대한 데이터의 기입과 소거중 적어도 하나를 실행할 수 있다. 또한, 이 처리는, RAM 상의 프로그램에 따라 행하여지기 때문에, 비휘발성 메모리에서 별도의 프로그램이 실행중이더라도, 그 처리에 영향을 주지 않고 실행할 수 있다.
상기 비휘발성 메모리 내장 마이크로컴퓨터는, 상기 제어 수단이, 상기 RAM에 저장된 프로그램에 따라, 상기 비휘발성 메모리 또는 RAM의 소정영역으로부터 데이터를 독출하고, 이 데이터를 상기 비휘발성 메모리의 소정영역에 기입하는 구성이다.
상기 구성에 의하면, RAM에 저장된 프로그램에 따라, 비휘발성 메모리 또는 RAM의 소정영역에서 데이터를 독출하고, 이 데이터를 비휘발성 메모리의 소정영역에 기입할 수 있다. 또한, 이 처리는, RAM상의 프로그램에 따라 행하여지기 때문에, 비휘발성 메모리상에서 별도의 프로그램이 실행중이더라도, 그 처리에 영향을 주지 않고 실행할 수 있다.
상기 비휘발성 메모리 내장 마이크로컴퓨터는, 상기 비휘발성 메모리가 인터럽트 처리의 프로그램에 저장되고, 상기 제어수단이, 상기 RAM에 저장된 프로그램에 따라 상기 비휘발성 메모리에 대한 데이터의 기입과 소거중 적어도 하나를 실행중에 인터럽트가 발생하였을 때, 상기 인터럽트 처리의 선두 번지에 따라 상기 비휘발성 메모리에 저장된 인터럽트 처리의 프로그램으로 제어를 분기할 수 있는 구성이다.
상기 구성에 의하면, 제어수단은, RAM에 저장된 프로그램에 따라 비휘발성 메모리에 대한 데이터의 기입과 소거중 적어도 하나를 실행중에 인터럽트가 발생하였을 때, 상기의 처리를 중단함과 동시에, 인터럽트 처리의 선두 번지에 따라 비휘발성 메모리에 저장된 인터럽트 처리의 프로그램에 제어를 이동시키고, 이 프로그램을 실행한다. 따라서, 인터럽트가 발생한 경우에, 그 인터럽트를 적절하게 할 수 있다.
이상, 본 발명이 설명되었지만, 여러 가지 방식으로 변경될 수 있다. 이러한 변경은 본 발명의 정신과 범위에서 벗어나는 것으로 간주되지 않으며, 그러한 모든 변경은 첨부된 특허청구의 범위내에 포함되는 것임을 당업자들은 이해할 수 있을 것이다.

Claims (21)

  1. 마이크로컴퓨터의 메모리 공간에 배치된 적어도 하나의 소거 가능한 비휘발성 메모리;
    상기 마이크로컴퓨터를 시동하기 위한 초기 프로그램 및 이 초기프로그램을 상기 비휘발성 메모리에 전송하기 위한 전송 프로그램을 저장하는 부트 ROM; 및
    상기 비휘발성 메모리에 어느 프로그램도 저장되어 있지 않을 때, 상기 초기프로그램을 상기 전송프로그램에 따라 상기 비휘발성 메모리로 전송하고, 그 후, 상기 부트 ROM을 마이크로컴퓨터의 메모리 공간으로부터 제거하는 제어수단을 구비하는 것을 특징으로 하는 비휘발성 메모리 내장 마이크로컴퓨터.
  2. 제 1항에 있어서, RAM을 더 포함하고,
    상기 초기프로그램은 인터럽트 처리의 선두번지를 포함하고,
    상기 비휘발성 메모리는, 이 비휘발성 메모리에 저장된 프로그램을 상기 RAM에 전송하기 위한 전송프로그램을 저장하고,
    상기 제어수단은, 상기 RAM에 저장된 프로그램을 실행하고, 상기 전송프로그램에 따라 상기 비휘발성 메모리에 저장된 프로그램을 RAM으로 전송함과 동시에, 상기 RAM에 저장된 프로그램을 실행할 때, 상기 초기프로그램에 포함되는 인터럽트 처리의 선두번지를 비휘발성 메모리로부터 RAM으로 이동시키는 것을 특징으로 하는 비휘발성 메모리 내장 마이크로컴퓨터.
  3. 제 2항에 있어서, 프로그램 영역과 데이터 영역이 동일한 비휘발성 메모리에 설정되고,
    상기 프로그램영역에는 동일한 비휘발성 메모리에 데이터 영역을 사용하는 것을 지령하는 프로그램이 저장되고,
    상기 제어수단은, 상기 프로그램에 따라, 상기 데이터 영역을 데이터 저장용으로서 사용하는 것을 특징으로 하는 비휘발성 메모리 내장 마이크로컴퓨터.
  4. 제 2항에 있어서, 상기 제어수단은, 상기 비휘발성 메모리로부터 RAM으로 전송되어 저장된 프로그램에 따라, 상기 비휘발성 메모리에 대한 데이터의 기입과 소거의 적어도 일방을 행하는 것을 특징으로 하는 비휘발성 메모리 내장 마이크로컴퓨터.
  5. 제 2항에 있어서, 상기 제어수단은, 상기 RAM에 저장된 프로그램에 따라, 상기 비휘발성 메모리 또는 RAM의 소정영역에서 데이터를 독출하고, 이 데이터를 상기 비휘발성 메모리의 소정영역에 기입하는 것을 특징으로 하는 비휘발성 메모리 내장 마이크로컴퓨터.
  6. 제 2항에 있어서, 상기 비휘발성 메모리에는 인터럽트 처리의 프로그램이 저장되고,
    상기 제어수단은, 상기 RAM에 저장된 프로그램에 따라 상기 비휘발성 메모리에 대한 데이터의 기입과 소거의 적어도 일방을 실행중에 인터럽트가 발생하였을 때, 상기 인터럽트 처리의 선두번지에 따라 제어를 상기 비휘발성 메모리에 저장된 인터럽트 처리의 프로그램으로 분기하는 것을 특징으로 하는 비휘발성 메모리 내장 마이크로컴퓨터.
  7. 제 6항에 있어서, 상기 제어수단은, 상기 RAM에 저장된 프로그램을 처리하는 동안, 다른 처리의 인터럽트를 금지하는 것을 특징으로 하는 비휘발성 메모리 내장 마이크로컴퓨터.
  8. 제 4항에 있어서, 상기 비휘발성 메모리에는 인터럽트 처리의 프로그램이 저장되고,
    상기 비휘발성 메모리로부터 RAM으로 전송되어 저장된 프로그램에는, 비휘발성 메모리에 대한 데이터의 기입과 소거의 적어도 일방을 행하는 기입/소거 프로그램 외에, 상기 기입/소거 프로그램의 처리의 중단처리 프로그램, 상기 인터럽트 처리프로그램으로의 분기처리 프로그램, 및 상기 기입/소거 프로그램의 처리의 재개처리프로그램이 포함되는 것을 특징으로 하는 비휘발성 메모리 내장 마이크로컴퓨터.
  9. 제 1항에 있어서, 상기 비휘발성 메모리가 플래쉬 메모리인 비휘발성 메모리 내장 마이크로컴퓨터.
  10. 제 1항에 있어서, 상기 비휘발성 메모리가 EEPROM인 비휘발성 메모리 내장 마이크로컴퓨터.
  11. 제 1항에 있어서, 상기 비휘발성 메모리가 FeRAM인 비휘발성 메모리 내장 마이크로컴퓨터.
  12. RAM;
    마이크로컴퓨터의 메모리 공간에 배치되고, 인터럽트 처리의 선두번지, 및 저장된 제 1 프로그램을 상기 RAM으로 전송하기 위한 전송프로그램을 저장하는 적어도 하나의 소거 가능한 비휘발성 메모리; 및
    상기 RAM에 저장된 프로그램을 실행하고, 상기 전송프로그램에 따라, 상기 제 1 프로그램을 비휘발성 메모리로부터 RAM으로 전송함과 동시에, 이 RAM에 저장된 제 1 프로그램을 실행할 때, 상기 인터럽트 처리의 선두번지를 비휘발성 메모리로부터 RAM으로 이동시키는 제어수단을 구비하는 것을 특징으로 하는 비휘발성 메모리 내장 마이크로컴퓨터.
  13. 제 12항에 있어서, 프로그램 영역과 데이터 영역이 동일한 비휘발성 메모리상에 설정되고, 상기 프로그램영역에는 동일한 비휘발성 메모리의 데이터 영역을 사용하는 것을 지령하는 제 2 프로그램이 저장되고, 상기 제어수단은, 상기 제 2 프로그램에 따라, 상기 데이터 영역을 데이터 저장용으로서 사용하는 것을 특징으로 하는 비휘발성 메모리 내장 마이크로컴퓨터.
  14. 제 12항에 있어서, 상기 제어수단은, 상기 비휘발성 메모리로부터 RAM으로 전송되어 저장된 프로그램에 따라, 상기 비휘발성 메모리에 대한 데이터의 기입과 소거의 적어도 일방을 행하는 것을 특징으로 하는 비휘발성 메모리 내장 마이크로컴퓨터.
  15. 제 12항에 있어서, 상기 제어수단은, 상기 RAM에 저장된 프로그램에 따라, 상기 비휘발성 메모리 또는 RAM의 소정영역으로부터 데이터를 독출하고, 이 데이터를 상기 비휘발성 메모리의 소정영역에 기입하는 것을 특징으로 하는 비휘발성 메모리 내장 마이크로컴퓨터.
  16. 제 12항에 있어서, 상기 비휘발성 메모리에는 인터럽트 처리의 프로그램이 저장되고,
    상기 제어수단은, 상기 RAM에 저장된 프로그램에 따라 상기 비휘발성 메모리에 대한 데이터의 기입과 소거의 적어도 일방을 실행중에 인터럽트가 발생하였을 때, 상기 인터럽트 처리의 선두번지에 따라 제어를 상기 비휘발성 메모리에 저장된 인터럽트 처리의 프로그램으로 분기하는 것을 특징으로 하는 비휘발성 메모리 내장 마이크로컴퓨터.
  17. 제 16항에 있어서, 상기 제어수단은, 상기 RAM에 저장된 프로그램을 처리하는 동안, 다른 처리의 인터럽트를 금지하는 것을 특징으로 하는 비휘발성 메모리 내장 마이크로컴퓨터.
  18. 제 14항에 있어서, 상기 비휘발성 메모리에는 인터럽트 처리의 프로그램이 저장되고,
    상기 비휘발성 메모리로부터 RAM에 전송되어 저장된 프로그램에는, 비휘발성 메모리에 대한 데이터의 기입과 소거의 적어도 일방을 행하는 기입/소거 프로그램 외에, 상기 기입/소거 프로그램의 처리의 중단처리프로그램, 상기 인터럽트 처리프로그램으로의 분기처리 프로그램, 및 상기 기입/소거 프로그램의 처리의 재개처리 프로그램이 포함되는 것을 특징으로 하는 비휘발성 메모리 내장 마이크로컴퓨터.
  19. 제 12항에 있어서, 상기 비휘발성 메모리가 플래쉬 메모리인 비휘발성 메모리 내장 마이크로컴퓨터.
  20. 제 12항에 있어서, 상기 비휘발성 메모리가 EEPROM인 비휘발성 메모리 내장 마이크로컴퓨터.
  21. 제 12항에 있어서, 상기 비휘발성 메모리가 FeRAM인 비휘발성 메모리 내장 마이크로컴퓨터.
KR1020000017159A 1999-04-02 2000-04-01 비휘발성 메모리가 내장된 마이크로컴퓨터 KR100413227B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP09686499A JP3727485B2 (ja) 1999-04-02 1999-04-02 不揮発性メモリ内蔵マイクロコンピュータ
JP11-96864 1999-04-02

Publications (2)

Publication Number Publication Date
KR20010006947A true KR20010006947A (ko) 2001-01-26
KR100413227B1 KR100413227B1 (ko) 2003-12-31

Family

ID=14176323

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000017159A KR100413227B1 (ko) 1999-04-02 2000-04-01 비휘발성 메모리가 내장된 마이크로컴퓨터

Country Status (5)

Country Link
US (1) US6598137B1 (ko)
EP (1) EP1041486A3 (ko)
JP (1) JP3727485B2 (ko)
KR (1) KR100413227B1 (ko)
TW (1) TW460836B (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020077050A (ko) * 2001-03-30 2002-10-11 가부시키가이샤 히타치세이사쿠쇼 마이크로 컴퓨터, 기록방법 및 소거방법
KR100847913B1 (ko) * 2005-09-30 2008-07-22 주식회사 아도반테스토 시험 장치, 및 시험 방법
KR101010489B1 (ko) * 2005-06-21 2011-01-21 미츠비시덴키 가부시키가이샤 프로그램 실행 시스템을 위한 프로그래밍 시스템 및검사장치용 프로그램 작성 시스템
KR20150120429A (ko) * 2013-02-22 2015-10-27 마벨 월드 트레이드 리미티드 판독 전용 메모리의 부트 코드 패칭

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4034032B2 (ja) * 2000-08-07 2008-01-16 Necエレクトロニクス株式会社 キャッシュ内蔵マイクロコンピュータ
US7072879B2 (en) * 2001-10-22 2006-07-04 Siemens Building Technologies, Inc. Partially embedded database and an embedded database manager for a control system
JP2004030438A (ja) * 2002-06-27 2004-01-29 Renesas Technology Corp マイクロコンピュータ
JP2004334486A (ja) * 2003-05-07 2004-11-25 Internatl Business Mach Corp <Ibm> ブートコードを用いた起動システム、及び起動方法
KR100604877B1 (ko) 2004-07-03 2006-07-31 삼성전자주식회사 내장 시스템의 메모리 어드레스의 매핑을 제어하는 장치와방법
FR2872603B1 (fr) * 2004-07-03 2007-02-09 Samsung Electronics Co Ltd Procede et dispositif pour executer le code d'amorcage de systemes integres
US20060080522A1 (en) * 2004-10-13 2006-04-13 Button Russell E Method, apparatus, and system for facilitating secure computing
ATE381061T1 (de) * 2005-03-08 2007-12-15 Bosch Gmbh Robert Verfahren und vorrichtung zum wiederbeschreiben eines sektors mit bootloader-software in einem sektor-löschbaren nichtflüchtigen halbleiterspeicher
US7480836B2 (en) * 2005-04-25 2009-01-20 Hewlett-Packard Development Company, L.P. Monitoring error-handler vector in architected memory
JP2007052717A (ja) * 2005-08-19 2007-03-01 Fujitsu Ltd データ転送装置およびデータ転送方法
US7640424B2 (en) * 2005-10-13 2009-12-29 Sandisk Corporation Initialization of flash storage via an embedded controller
JP5754264B2 (ja) 2011-06-24 2015-07-29 富士ゼロックス株式会社 プログラム実行装置、画像処理装置およびプログラム
DE102015213138A1 (de) * 2015-07-14 2017-01-19 Siemens Schweiz Ag Verfahren zur Durchführung eines Betriebssystem-Updates

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4698750A (en) * 1984-12-27 1987-10-06 Motorola, Inc. Security for integrated circuit microcomputer with EEPROM
US5187792A (en) * 1990-05-09 1993-02-16 International Business Machines Corporation Method and apparatus for selectively reclaiming a portion of RAM in a personal computer system
IT1254937B (it) * 1991-05-06 1995-10-11 Aggiornamento dinamico di memoria non volatile in un sistema informatico
US5388267A (en) * 1991-05-29 1995-02-07 Dell Usa, L.P. Method and apparatus for updating and restoring system BIOS functions while maintaining BIOS integrity
US5473775A (en) * 1991-10-11 1995-12-05 Kabushiki Kaisha Toshiba Personal computer using flash memory as BIOS-ROM
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
JPH05342374A (ja) 1992-06-11 1993-12-24 Mitsubishi Electric Corp ワンチップマイクロコンピュータ
US5574926A (en) * 1993-03-11 1996-11-12 Olympus Optical Co., Ltd. One-chip microcomputer system having function for substantially correcting contents of program
US5522076A (en) * 1993-05-13 1996-05-28 Kabushiki Kaisha Toshiba Computer system having BIOS (basic input/output system)-ROM (Read Only Memory) writing function
JPH08101794A (ja) 1994-09-30 1996-04-16 Nec Corp ファームウェアのプログラム書き換え方式
JP3292864B2 (ja) * 1995-02-07 2002-06-17 株式会社日立製作所 データ処理装置
KR100224552B1 (ko) * 1996-03-15 1999-10-15 하나와 요시카즈 자동차용 로크 방지 브레이크 제어 시스템
JP2940480B2 (ja) * 1996-07-05 1999-08-25 日本電気株式会社 コンピュータシステム
JPH10116187A (ja) * 1996-10-11 1998-05-06 Mitsubishi Electric Corp マイクロコンピュータ
JP3773607B2 (ja) * 1996-11-28 2006-05-10 Necエレクトロニクス株式会社 フラッシュeeprom内蔵マイクロコンピュータ
JP3173407B2 (ja) 1997-02-05 2001-06-04 日本電気株式会社 フラッシュeeprom内蔵マイクロコンピュータ
JPH11219299A (ja) * 1998-02-02 1999-08-10 Mitsubishi Electric Corp マイクロコンピュータ
US6308265B1 (en) * 1998-09-30 2001-10-23 Phoenix Technologies Ltd. Protection of boot block code while allowing write accesses to the boot block
US6457175B1 (en) * 1998-11-09 2002-09-24 Tut Systems, Inc. Method and apparatus for installing a software upgrade within a memory resource associated with a computer system
US6434695B1 (en) * 1998-12-23 2002-08-13 Apple Computer, Inc. Computer operating system using compressed ROM image in RAM

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020077050A (ko) * 2001-03-30 2002-10-11 가부시키가이샤 히타치세이사쿠쇼 마이크로 컴퓨터, 기록방법 및 소거방법
KR101010489B1 (ko) * 2005-06-21 2011-01-21 미츠비시덴키 가부시키가이샤 프로그램 실행 시스템을 위한 프로그래밍 시스템 및검사장치용 프로그램 작성 시스템
KR100847913B1 (ko) * 2005-09-30 2008-07-22 주식회사 아도반테스토 시험 장치, 및 시험 방법
KR20150120429A (ko) * 2013-02-22 2015-10-27 마벨 월드 트레이드 리미티드 판독 전용 메모리의 부트 코드 패칭

Also Published As

Publication number Publication date
JP2000293367A (ja) 2000-10-20
EP1041486A3 (en) 2003-04-23
KR100413227B1 (ko) 2003-12-31
US6598137B1 (en) 2003-07-22
JP3727485B2 (ja) 2005-12-14
EP1041486A2 (en) 2000-10-04
TW460836B (en) 2001-10-21

Similar Documents

Publication Publication Date Title
KR100413227B1 (ko) 비휘발성 메모리가 내장된 마이크로컴퓨터
KR100415371B1 (ko) 컴퓨터
EP0522780B1 (en) Control method for a computer memory device
US5825649A (en) Kernel substitution method in multi-processor system and multi-processor system having kernel substitution function
CN110321170B (zh) 开机方法
US5940627A (en) User selectable feature set for a flash ROM based peripheral
JP2003216511A (ja) 不揮発性メモリ装置、データ更新方法、データ更新プログラム及びそのプログラムが記録されたコンピュータ読み取り可能な記録媒体
CN111338771B (zh) 引导程序切换处理方法及装置、计算机设备、介质
JP2002175193A (ja) プログラム書き換え装置及びプログラム書き換え方法
KR100316584B1 (ko) 시스템에서 부팅 및 수행 프로그램을 공유하는 플래시메모리 및 그 메모리 갱신 방법
JPH11282690A (ja) 制御プログラムの書込方法及び情報処理装置並びに情報処理システム
JPH1063497A (ja) プログラム更新方法
JP2003216449A (ja) パッチ処理システム
JP2002007152A (ja) ダウンロード方法および装置
JP2001053891A (ja) 携帯端末装置のプログラム更新方法およびその装置
US6510316B2 (en) Wireless communication apparatus
JP2001184255A (ja) 電子機器、メモリ制御プログラムが記憶された記憶媒体
JP2002073360A (ja) 起動情報書換装置
JP2001325105A (ja) 動作プログラム書き換え方法
CN116669224A (zh) 网络连接方法、智能设备以及存储介质
JPH0644064A (ja) ファームウェア書換えシステム
JP3070524B2 (ja) 記憶装置
JPH08138005A (ja) フラッシュメモリカードのデータ書き込みシステム
JP2002024044A (ja) 制御装置
JP2003308253A (ja) 情報処理装置

Legal Events

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

Payment date: 20121130

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20131129

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20141205

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20151204

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee