DE10039183B4 - Mikrocomputer mit Programmrevisionsfähigkeit - Google Patents

Mikrocomputer mit Programmrevisionsfähigkeit Download PDF

Info

Publication number
DE10039183B4
DE10039183B4 DE10039183A DE10039183A DE10039183B4 DE 10039183 B4 DE10039183 B4 DE 10039183B4 DE 10039183 A DE10039183 A DE 10039183A DE 10039183 A DE10039183 A DE 10039183A DE 10039183 B4 DE10039183 B4 DE 10039183B4
Authority
DE
Germany
Prior art keywords
address
program
data
stored
vector
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
DE10039183A
Other languages
English (en)
Other versions
DE10039183A1 (de
Inventor
Hiroyuki Takahashi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Pentax Corp
Original Assignee
Pentax Corp
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 Pentax Corp filed Critical Pentax Corp
Publication of DE10039183A1 publication Critical patent/DE10039183A1/de
Application granted granted Critical
Publication of DE10039183B4 publication Critical patent/DE10039183B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0638Combination of memories, e.g. ROM and RAM such as to permit replacement or supplementing of words in one module by words in another module

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Microcomputers (AREA)

Abstract

Ein Mikrocomputer hat einen ROM mit vorgespeicherten Programmen, einen RAM, der ein Revisionsprogramm zum Auführen einer Unterbrechungsverarbeitung speichert, und einen Programmzähler, in dem eine Adresse während einer Ausführung der ROM-gespeicherten Programme sukzessive erneuert wird. Ein erstes Register speichert eine Vergleichsadresse, die einer wahlfreien Adresse der ROM-gespeicherten Programme entspricht, an der eine Unterbrechungsverarbeitung ausgeführt werden soll, um so die ROM-gespeicherten Programme virtuell zu revidieren. Ein zweites Register speichert ein Vektoradressdatum, das einer Kopfadresse des Revisionsprogramms entspricht. Ein Adressvergleicher vergleicht das Vergleichsadressdatum mit einer erneuten Adresse des Programmzählers. Eine Steuerung/Rechenvorrichtung greift auf die dem Vektoradressdatum des zweiten Registers entsprechende Kopfadresse des Revisionsprogramms zu, wenn Übereinstimmung zwischen dem Vergleichsadressdatum und der erneuten Adresse des Programmzählers gegeben ist, wodurch die Unterbrechungsverarbeitung gemäß dem Revisionsprogramm ausgeführt wird.

Description

  • Hintergrund der Erfindung
  • 1. Technisches Gebiet der Erfindung
  • Die Erfindung betrifft einen Mikrocomputer mit Programmrevisionsfähigkeit, in dem ein Programmspeicher nicht einfach von einem Substrat entfernt werden kann, insbesondere einen Einzelchip-Mikrocomputer, in dem alle den Mikrocomputer bildenden Funktionselemente einstückig als Einzelchip ausgebildet sind.
  • 2. Beschreibung des Standes der Technik
  • Bekanntlich besteht ein Mikrocomputer aus einer zentralen Prozessoreinheit (CPU), einem Nur-Lese-Speicher (ROM) zum Speichern verschiedener Programme und Konstanten, einem Speicher mit wahlfreiem Zugriff (RAM) zum Speichern temporärer Daten und einer Eingang/Ausgang-Schnittstellenschaltung (I/O), wobei diese Elemente geeignet auf einer Leiterplatte angeordnet und dort installiert sind. In einem Einzelchip-Mikrocomputer sind die typischen Elemente CPU, ROM, RAM und I/0 einstückig als Einzelchip ausgebildet, und die Programme werden im Vorfeld im Laufe der Herstellung des Einzelchip-Mikrocomputers in dem ROM gespeichert. In ähnlicher Weise werden in einem Mikrocomputer, in dem der ROM nicht einfach von der Leiterplatte entfernt werden kann, die Programme im Vorfeld während der Herstellung des Mikrocomputers in dem ROM gespeichert. Nach Herstellung dieser Mikrocomputer kann in den in dem ROM gespeicherten Programmen praktisch keine Revision vorgenommen werden.
  • Stellt sich während der Herstellung des Mikrocomputers oder danach heraus, daß in den in dem ROM gespeicherten Programmen eine Revision vorgenommen werden muß, so müssen die hergestellten Mikrocomputer verschrottet werden. Ist der hergestellte Mikrocomputer fest an einem elektronischen Produkt angebracht, so muß auch dieses verschrottet werden.
  • Als Beispiel für die Revision der gespeicherten Programme sind Fälle zu nennen, in denen in einem der gespeicherten Programme Fehler gefunden werden, in denen in einem der gespeicherten Programme eine Änderung gemacht wird, und in denen den gespeicherten Programmen ein Zusatzprogramm hinzugefügt wird.
  • Dagegen kann in einem Mikrocomputer, in dem der ROM entfernbar auf der Leiterplatte installiert ist, eine Revision in den gespeicherten Programmen in einfacher Weise vorgenommen werden, z.B. unter Verwendung einer ROM-Schreibvorrichtung. Der ROM wird nämlich von der Leiterplatte entfernt und dann in der ROM-Schreibvorrichtung montiert, um die Revision in den gespeicherten Programmen vorzunehmen. Nachdem die Revision abgeschlossen ist, wird der ROM wieder auf die Leiterplatte gebracht und dort installiert.
  • In dieser Beschreibung ist mit dem Begriff "Mikrocomputer" ein Mikrocomputer einschließlich eines Einzelchip-Mikrocomputers gemeint, in dem der ROM nicht einfach entfernt werden kann.
  • Herkömmlicherweise wird vorgeschlagen, einem Mikrocomputer einen elektrisch löschbaren Nur-Lese-Speicher (EEPROM) zuzuordnen, um eine Revision in zuvor in einem ROM des Mikrocomputers gespeicherten Programmen vorzunehmen, wie dies beispielsweise in dem US-Patent 5 809 345 beschrieben ist. Wird eine Revision in den gespeicherten Programmen nach Herstellung des Mikrocomputers vorgenommen, wird ein Revisionsprogramm später in den EEPROM geschrieben. Wird der Mikrocomputer eingeschaltet, so wird das Revisionsprogramm aus dem EEPROM ausgelesen und dann unter einer vorbestimmten Adresse eines RAMs des Mikrocomputers gespeichert. Während der Ausführung der Programme des ROMs erfolgt ein Zugriff auf die vorbestimmte Adresse des ROMs um so das Revisionsprogramm auszuführen, was im Ergebnis zu einer virtuellen Revision der Programme des ROMs führt.
  • Insbesondere kann unter den verschiedenen Programmen, die in dem ROM gespeichert sind, ein Programm sein, das anfällig für die Entwicklung von Fehlern ist, und/oder ein Programm, das zukünftig gebraucht wird. In diesem Fall wird im Vorfeld in einen Kopf des betreffenden Programms ein Programmaufruf-Befehl geschrieben und eine Adresse, die dem Programmaufruf-Befehl entspricht, im Vorfeld in dem RAM gesetzt.
  • Nach der Herstellung des Mikrocomputers wird dann, wenn in dem betreffenden Programm unglücklicherweise Fehler gefunden werden oder in dem betreffenden Programm eine Revision vorgenommen werden muß, ein Revisionsprogramm geschrieben und in dem EEPROM gespeichert. Wann immer der Mikrocomputer eingeschaltet wird, wird das Revisionsprogramm aus dem EEPROM ausgelesen und dann unter der im Vorfeld gesetzten Adresse des RAMs gespeichert.
  • Während der Ausführung der in dem ROM gespeicherten Programme wird, wenn der Programmaufruf-Befehl gelesen wird, die Ausführung der Programme des ROMs einmal unterbrochen, und es erfolgt ein Zugriff auf die im Vorfeld gesetzte Adresse des RAMs. Ist das Revisionsprogramm unter der im Vorfeld gesetzten Adresse des RAMs gespeichert, so wird das Revisionsprogramm ausgeführt, und die Ausführung der Programme des ROMs wird nach vollendeter Ausführung des Revisionsprogramms wieder aufgenommen. Ist dagegen das Revisionsprogramm nicht unter der im Vorfeld gesetzten Adresse des RAMs gespeichert, so wird die Ausführung der Programme des ROMs unmittelbar wieder aufgenommen. Auf diese Weise ist eine virtuelle Revision der in dem ROM gespeicherten Programme möglich.
  • Wie aus dem vorstehend Erläuterten jedoch hervorgeht, kann in dem herkömmlichen Verfahren eine Revision nicht an einer wahlfreien Stelle der in dem ROM gespeicherten Programme vorgenommen werden, da ein Programmaufruf-Befehl in einen Kopf eines Programms geschrieben werden muß, das im Vorfeld aus den in dem ROM gespeicherten Programmen ausgewählt worden ist. So ist es unmöglich, eine Revision in einem Programm vorzunehmen, in dessen Kopf der Programmaufruf-Befehl nicht geschrieben worden ist.
  • Ein Mikrocomputer nach dem Oberbegriff des Anspruchs 1 ist aus der US 5 813 043 A bekannt.
  • Kurzzusammenfassung der Erfindung
  • Es ist deshalb Aufgabe der Erfindung, einen Mikrocomputer mit Programmrevisionsfähigkeit bereitzustellen, bei dem eine Revision an einer wahlfreien Stelle der in einem ROM des Mikrocomputers gespeicherten Programmen vorgenommen werden kann.
  • Diese Aufgabe wird gelöst durch den Gegenstand des Anspruchs 1.
  • Vorzugsweise enthält der Mikrocomputer weiterhin einen wiederbeschreibbaren, nichtflüchtigen Speicher, der das Revisionsprogramm, das Vergleichsadressdatum und das Vektoradressdatum speichert, ein Lese/Schreib-System, das das Revisionsprogramm, das Vergleichsadressdatum und das Vektoradressdatum aus dem wiederbeschreibbaren, nichtflüchtigen Speicher ausliest und dann diese Daten jedes Mal in den Speicher mit wahlfreiem Zugriff, die Vergleichsadress-Speichervorrichtung bzw. die Vektoradress-Speichervorrichtung schreibt, wenn der Computer eingeschaltet wird.
  • In dem Mikrocomputer kann der Adressvergleicher an den Programmzähler angeschlossen sein, um so aus diesem die erneuerte Adresse wiederzugewinnen. Auch kann der Adressvergleicher an einen sich zu dem Programmzähler erstreckenden Adressbus angeschlossen sein, um so aus dem Programmzähler die erneuerter Adresse wiederzugewinnen.
  • Der Mikrocomputer kann weiterhin ein Vektoradress-Datensetzsystem enthalten, das das Vektoradressdatum aus der Vektoradress-Speichervorrichtung ausliest und dann in dem Programmzähler setzt, wobei die Steuerung/Rechnervorrichtung auf die Kopfadresse des Revisionsprogramms zugreift, wodurch die Unterbrechungsverarbeitung gemäß dem Revisionsprogramm ausgeführt wird.
  • Der Mikrocomputer kann weiterhin enthalten eine zur temporären Speicherung bestimmte Vektoradress-Speichervorrichtung, die das Vektoradressdatum von der Vektoradress-Speichervorrichtung empfängt, wenn der Adressvergleicher feststellt, daß Übereinstimmung zwischen Vergleichsadressdatum und erneuerter Adresse des Programmzählers gegeben ist, und ein Vektoradress-Datensetzsystem, das das Vektoradressdatum aus der Vektoradress-Speichervorrichtung ausliest und dann in dem Programmzähler setzt, wobei die Steuerung/Rechnervorrichtung auf die Kopfadresse des Revisionsprogramms zugreift, wodurch der Interrupt-Prozess gemäß dem Revisionsprogramm ausgeführt wird.
  • Der Mikrocomputer enthält weiterhin ein Rücksprungadress-Setzsystem, das das Vergleichsadressdatum als Rücksprungadressdatum in dem Programmzähler setzt, wenn die Ausführung des Interrupt-Prozesses gemäß dem Revisionsprogramm abgeschlossen ist, und ein Adress-Koinzidenz-Deaktivie-rungssystem, das die Übereinstimmung zwischen dem Vergleichsadressdatum und der Rücksprungadresse, die in dem Programmzähler von dem Rücksprungadress-Setzsystem gesetzt worden ist, außer Kraft setzt.
  • Kurzbeschreibung der Zeichnungen
  • Die Aufgabe sowie weitere Aufgaben der Erfindung sind besser mit folgender Beschreibung verständlich, worin auf die beigefügten Zeichnungen Bezug genommen wird. Darin zeigen:
  • 1 ein Blockdiagramm eines gemäß vorliegender Erfindung ausgebildeten Mikrocomputers,
  • 2 ein Blockdiagramm eines typischen Schaltungselementes aus acht Schaltungselementen, die in einer Adress-Koinzidenz-Unterbrechungs-Steuerung (ACIC) enthalten sind, die einen Teil eines ersten Ausführungsbeispiels des erfindungsgemäßen Mikrocomputers bildet,
  • 3 eine schematische Darstellung eines Speicherbereichs eines elektrisch löschbaren Nur-Lese-Speichers (EEPROM), der einen Teil des erfindungsgemäßen Mikrocomputers bildet,
  • 4 eine schematische Darstellung eines Vergleichsadress-Registers (CAR), eines Adress-Koinzidenz-Unterbrechungsfreigabe-Registers (ACIAR) und eines Vektoradress-Registers (VAR) eines ersten Schaltungselementes, die Vergleichsadress-Daten (CA0), Flagdaten (FE0) bzw. Vektoradressdaten (VA0) halten,
  • 5 eine schematische Darstellung eines Vergleichsadress-Registers (CAR), eines Adress-Koinzidenz-Unterbrechungsfreigabe-Registers (ACIAR) und eines Vektoradress-Registers (VAR) eines zweiten Schaltungselementes, die Vergleichsadress-Daten (CA1), Flagdaten (FEI) bzw. Vektoradressdaten (VA1) halten,
  • 6 eine schematische Darstellung eines Vergleichsadress-Registers (CAR), eines Adress-Koinzidenz-Unterbrechungsfreigabe-Registers (ACIAR) und eines Vektoradress-Registers (VAR) eines dritten Schaltungselementes, die Vergleichsadress-Daten (CA2), Flagdaten (FE2) bzw. Vektoradress-Daten (VA2) halten,
  • 7 eine schematische Darstellung eines Vergleichsadress-Registers (CAR). eines Adress-Koinzidenz-Unterbrechungsfreigabe-Registers (ACIAR) und eines Vektoradress-Registers (VAR) eines vierten Schaltungselementes, die Vergleichsadress-Daten (CA3), Flagdaten (FE3) bzw. Vektoradressdaten (VA3) halten,
  • 8 eine schematische Darstellung eines Vergleichsadress-Registers (CAR), eines Adress-Koinzidenz-Unterbrechungsfreigabe-Registers (ACIAR) und eines Vektoradress-Registers (VAR) eines fünften Schaltungselementes, die Vergleichsadress-Daten (CA4), Flagdaten (FE4) bzw. Vektoradressdaten (VA4) halten,
  • 9 eine schematische Darstellung eines Vergleichsadress-Registers (CAR), eines Adress-Koinzidenz-Unterbrechungsfreigabe-Registers (ACIAR) und eines Vektoradress-Registers (VAR) eines sechsten Schaltungselementes, die Vergleichsadress-Daten (CA5), Flagdaten (FE5) bzw. Vektoradressdaten (VA5) halten,
  • 10 eine schematische Darstellung eines Vergleichsadress-Registers (CAR), eines Adress-Koinzidenz-Unterbrechungsfreigabe-Registers (ACIAR) und eines Vektoradress-Registers (VAR) eines siebenten Schaltungselementes, die Vergleichsadress-Daten (CA6), Flagdaten (FE6) bzw. Vektoradressdaten (VA6) halten,
  • 11 eine schematische Darstellung eines Vergleichsadress-Registers (CAR), eines Adress-Koinzidenz-Unterbrechungsfreigabe-Registers (ACIAR) und eines Vektoradress-Registers (VAR) eines achten Schaltungselementes, die Vergleichsadress-Daten (CA7), Flagdaten (FE7) und Vektoradressdaten (VA7) halten,
  • 12 eine schematische Darstellung eines Speicherbereichs eines Speichers mit wahlfreiem Zugriff (RAM), der einen Teil des erfindungsgemäßen Mikrocomputers bildet,
  • 13 eine schematische Darstellung eines Adress-Koinzidenz-Unterbrechungsverbot-Registers (ACIPR), eines Adress-Koinzidenz-Unterbrechungslösch-Registers (ACICR) und eines Adress-Koinzidenz-Unterbrechungsüberwachungs-Registers (ACIMR) des ersten Schaltungselementes, die Flagdaten (FD0, FC0 bzw. FM0) halten,
  • 14 eine schematische Darstellung eines Adress-Koinzidenz-Unterbrechungsverbot-Registers (ACIPR), eines Adress-Koinzidenz-Unterbrechungslösch-Registers (ACICR) und eines Adress-Koinzidenz-Unterbrechungsüberwachungs-Registers (ACIMR) des zweiten Schaltungselementes, die Flagdaten (FD1, FC1 bzw. FM1) halten,
  • 15 eine schematische Darstellung eines Adress-Koinzidenz-Unterbrechungsverbot-Registers (ACIPR), eines Adress-Koinzidenz-Unterbrechungslösch-Registers (ACICR) und eines Adress-Koinzidenz-Unterbrechungsüberwachungs-Registers (ACIMR) des dritten Schaltungselementes, die Flagdaten (FD2, FC2 bzw. FM2) halten,
  • 16 eine schematische Darstellung eines Adress-Koinzidenz- Unterbrechungsverbot-Registers (ACIPR), eines Adress-Koinzidenz-Unterbrechungslösch-Registers (ACICR) und eines Adress- Koinzidenz-Unterbrechungsüberwachungs-Registers (ACIMR) des vierten Schaltungselementes, die Flagdaten (FD3; FC3 bzw. FM3) halten,
  • 17 eine schematische Darstellung eines Adress-Koinzidenz-Unterbrechungsverbot-Registers (ACIPR), eines Adress-Koinzidenz-Unterbrechungslösch-Registers (ACICR) und eines Adress-Koinzidenz-Unterbrechungsüberwachungs-Registers (ACIMR) des fünften Schaltungselementes, die Flagdaten (FD4, FC4 bzw. FM4) halten,
  • 18 eine schematische Darstellung eines Adress-Koinzidenz-Unterbrechungsverbot-Registers (ACIPR), eines Adress-Koinzidenz-Unterbrechungslösch-Registers (ACICR) und eines Adress-Koinzidenz-Unterbrechungsüberwachungs-Registers (ACIMR) des sechsten Schaltungselementes, die Flagdaten (FD5, FC5 bzw. FM5) halten,
  • 19 eine schematische Darstellung eines Adress-Koinzidenz-Unterbrechungsverbot-Registers (ACIPR), eines Adress-Koinzidenz-Unterbrechungslösch-Registers (ACICR) und eines Adress-Koinzidenz-Unterbrechungsüberwachungs-Registers (ACIMR) des siebenten Schaltungselementes, die Flagdaten (FD6, FC6 bzw. FM6) halten,
  • 20 eine schematische Darstellung eines Adress-Koinzidenz-Unterbrechungsverbot-Registers (ACIPR), eines Adress-Koinzidenz-Unterbrechungslösch-Registers (ACICR) und eines Adress-Koinzidenz-Unterbrechungsüberwachungs-Registers (ACIMR) des achten Schaltungsregisters, die Flagdaten (FD7, FC7 bzw. FM7) halten,
  • 21 ein Flußdiagramm einer sequentiellen Unterbrechungs-Obergangs-Verarbeitung, die von einer Steuereinheit (CU) ausgeführt wird, die einen Teil des erfindungsgemäßen Mikrocomputers bildet,
  • 22 den Schaltplan einer Rücksetzschaltung, die einen Teil des erfindungsgemäßen Mikrocomputers bildet,
  • 23 ein Zeitdiagramm der in 22 gezeigten Rücksetzschaltung,
  • 24 ein Flußdiagramm einer sequentiellen Unterbrechungs-Rücksprung-Verarbeitung, die von der Steuereinheit (CU) des erfindungsgemäßen Mikrocomputers ausgeführt wird,
  • 25 einen Schaltplan einer anderen Rücksetzschaltung, die einen Teil des erfindungsgemäßen Mikrocomputers bildet,
  • 26 ein Zeitdiagramm der in 25 gezeigten Rücksetzschaltung,
  • 27 ein Flußdiagramm einer Systembetriebsroutine für ein elektronisches Produkt, in dem der erfindungsgemäße Mikrocomputer eingebaut ist, z.B. einem Drucker, einer Videokamera, einer digitalen Einzelbildkamera, einer elektronischen Uhr etc.,
  • 28 einen Teil einer Verarbeitungsroutine, die in Schritt 2709 der in 27 gezeigten Systembetriebsroutine auszuführen ist,
  • 29 eine schematische Darstellung des Zusammenhangs zwischen Adressen, die in einem einen Teil des erfindungsgemäßen Mikrocomputers bildenden Programmzähler sukzessiv erneuert werden, und Befehlen, die in den Schritten 2801 bis 2810 der in 28 gezeigten Verarbeitungsroutine ausgeführt werden,
  • 30 eine schematische Darstellung eines Teilspeicherbereichs eines Nur-Lese-Speichers (ROM), der einen Teil des erfindungsgemäßen Mikrocomputers bildet,
  • 31 eine schematische Darstellung eines Teils eines Programmspeicherbereichs des RAMs,
  • 32 ein Blockdiagramm eines modifizierten typischen Schaltungselementes aus den acht Schaltungselementen, die in der Adress-Koinzidenz-Unterbrechungs-Steuerung (ACIC) des ersten Ausführungsbeispiels des erfindungsgemäßen Mikrocomputers enthalten sind,
  • 33 ein Blockdiagramm eines typischen Schaltungselementes aus den acht Schaltungselementen, die in einer Adress-Koinzidenz-Unterbrechungs-Steuerung (ACIC) enthalten sind, die einen Teil eines zweiten Ausführungsbeispiels des erfindungsgemäßen Mikrocomputers bildet,
  • 34 ein Flußdiagramm einer sequentiellen Unterbrechungs-Übergangs-Verarbeitung, die von der Steuereinheit (CU) des zweiten Ausführungsbeispiels des erfindungsgemäßen Mikrocomputers ausgeführt wird,
  • 35 eine schematische Darstellung eines Teilspeicherbereichs des ROMs des zweiten Ausführungsbeispiels des erfindungsgemäßen Mikrocomputers, und
  • 36 ein modifiziertes typisches Schaltungselement aus den acht Schaltungselementen, die in der Adress-Koinzidenz-Unterbrechungs-Steuerung (ACIC) des zweiten Ausführungsbeispiels des erfindungsgemäßen Mikrocomputers enthalten sind.
  • Beschreibung der bevorzugten Ausführungsbeispiele
  • 1 zeigt ein Blockdiagramm eines Mikrocomputers mit Programmrevisionsfähigkeit, der gemäß der vorliegenden Erfindung als Einzelchip-Mikrocomputer ausgebildet ist.
  • Der Mikrocomputer enthält eine zentrale Verarbeitungseinheit (CPU) 10, einen Nur-Lese-Speicher (ROM) 12 zum Speichern verschiedener Programme und Konstanten, einen Speicher mit wahlfreiem Zugriff (RAM) 14 zum Speichern temporärer Daten und eine Eingabe/Ausgabe-Schnittstellenschaltung (I/O) 16. Die CPU 10 ist über die I/O 16 mit einigen Elementen nicht gezeigter Peripheriegeräte verbunden, so daß verschiedene Befehlssignale und Datensignale zwischen der CPU 10 und den Elementen der Peripheriegeräte ausgetauscht werden. Die CPU 10 zeichnet sich durch einen elektrisch löschbaren, an die I/0 16 angeschlossenen Nur-Lese-Speicher (EEPROM) 18 aus, der verschiedene Daten zum Durchführen von Revisionen in den in dem ROM 12 gespeicherten Programmen, mindestens ein Revisionsprogramm und/oder mindestens ein Zusatzprogramm speichert, falls dies erforderlich ist. Unter der Voraussetzung, daß das Revisionsprogramm und/oder das Zusatzprogramm in dem EEPROM 18 gespeichert ist, werden diese Programme, jedes Mal wenn die CPU 10 eingeschaltet wird, aus dem EEPROM 18 ausgelesen und dann in den RAM 14 geschrieben. Jedes der in dem RAM 14 gespeicherten Programme wird während einer Ausführung der ROM-gespeicherten Programme in geeigneter Weise ausgeführt, wie nachfolgend im Detail erläutert wird.
  • Wie in 1 gezeigt, enthält die CPU 10 eine Steuereinheit (CU) 20, die mit einem Taktimpulsgenerator 22 und einer Rückstellschaltung 24 versehen ist. Der Taktimpulsgenerator 22 erzeugt eine Reihe von Grundtaktimpulsen, und die CU 20 erzeugt auf Grundlage dieser Reihe von Grundtaktimpulsen unterschiedliche Arten von Steuertaktimpulsen mit verschiedenen Frequenzen. Die unterschiedlichen Arten von Steuertaktimpulsen werden zur Steuerung verschiedener Ele mente eingesetzt, die die CPU 10 bilden. Die Rücksetzschaltung 24 gibt an die CU 20 ein Rückstellsignal aus, wenn die CPU 10 eingeschaltet wird, wodurch die verschiedenen, die CPU 10 bildenden Elemente initialisiert werden.
  • Die CPU 10 enthält weiterhin einen Programmzähler 26, ein Befehlsregister 28 und einen Befehlsdecoder 30, und die CU 20 arbeitet mit diesen Elementen 26, 28 und 30 zusammen, um Befehle, die nacheinander aus den ROM-gespeicherten Programmen ausgelesen werden, zu decodieren, und gibt gemäß den decodierten Befehlen Steuersignale an verschiedene Elemente aus, welche die CPU 10 bilden.
  • Insbesondere besteht jedes der ROM-gespeicherten Programme aus einer Reihe von Programmbefehlen, die jeweils unter einer vorgegebenen Adresse des ROMs 12 gespeichert sind. Die CU 20 liest einen Befehl aus einer Adresse des ROMs 12 aus, die von dem Programmzähler 26 angezeigt wird. Der ausgelesene Befehl wird in dem Befehlsregister 28 gehalten und von dem Befehlsdecoder 30 decodiert. Dann gibt die CU 20 ein Steuersignal gemäß dem decodierten Befehl an eines der die CPU 10 bildenden Elemente aus, und in dem betreffenden Element der CPU 10 wird auf Grundlage des decodierten Befehls eine Verarbeitung ausgeführt. Sobald die Verarbeitung vollständig ausgeführt ist, wird die von dem Programmzähler 26 angezeigte Adresse um beispielsweise 1 inkrementiert, was zu einer Erneuerung der Adresse führt, wobei aus der erneuerten Adresse ein Befehl von der CU 20 ausgelesen werden soll. In diesem Ausführungsbeispiel besteht jede Adresse des ROMs 12 aus 16 Bits, und der Programmzähler ist als 16-Bit-Register ausgebildet.
  • Die CPU 10 enthält weiterhin eine Arithmetik-Logik-Einheit (ALU) 32, ein temporäres Register 34, einen Akkumulator 36 und ein Statusregister 38. Die ALU 32 führt in Verbindung mit dem temporären Register 34, dem Akkumulator 36 und dem Statusregister 38 eine Binäroperation auf Grundlage eines von der CU 20 ausgegebenen Steuersignals aus.
  • Die in der Binäroperation zu verarbeitenden Binärdaten werden von der ALU 32 in geeigneter Weise aus dem temporären Register 34 und dem Akkumulator 36 wiedergewonnen. Beispielsweise werden aus dem ROM 12 ausgelesene konstante Daten oder aus dem RAM 14 ausgelesene temporäre Daten in dem temporären Register 34 gehalten und dann von der ALU 32 aus dem temporären Register 34 wiedergewonnen, wobei die Daten in der von der ALU 32 ausgeführten Binäroperation verarbeitet werden. Die verarbeiteten Daten oder resultierende Daten werden dem Akkumulator 36 zugeführt, der eine Berechnungsfunktion hat. Die dem Akkumulator 36 zugeführten resultierenden Daten werden nämlich mittels dessen Berechnungsfunktion verarbeitet und in dem Akkumulator 36 gehalten. Auch werden von der ALU 32 die Daten aus dem Akkumulator 36 in geeigneter Weise wiedergewonnen, falls dies notwendig ist.
  • Das Statusregister 38 hält verschiedene Statusinformationselemente in Form von Flagdaten, welche die Zustände der von der ALU 32 ausgeführten Binäroperation darstellen. So werden beispielsweise zur Darstellung der Zustände der von der ALU 32 ausgeführten Binäroperation von dem Statusregister 38 ein Übertragflag, ein Überlaufflag, ein Nullflag, ein Vorzeichenflag und dergleichen gehalten.
  • Auch hält das Statusregister 38 ein Unterbrechungsfreigabeflag, das auf den Wert 0 initialisiert wird, wenn die CPU 10 eingeschaltet wird. Ist das Unterbrechungsfreigabeflag auf 1 eingestellt, so sind in der CPU 10 verschiedene Unterbrechungen erlaubt. Ist das Unterbrechungsfreigabeflag 0, so sind alle Unterbrechungen verboten, mit Ausnahme einer nichtmaskierbaren Unterbrechung (NMI) und einer Softwareunterbrechung.
  • Wie in 1 gezeigt, ist die CPU weiterhin mit einer Unterbrechungssteuerung 40, einem Allzweckregister 42 und einem Stapelzeiger 44 versehen. Die Unterbrechungssteuerung 40 steuert die Ausführung einer Unterbrechungsverarbeitung oder -unterroutine, die auf einem Unterbrechungssignal basiert, das entweder von der CU 20 oder einem Element der an die I/0 16 angeschlossenen Peripheriegerate (nicht gezeigt) ausgegeben wird. Das Allzweckregister 42 wird als Mehr zweckregister eingesetzt. Das Allzweckregister 42 ist nämlich in einige Bereiche unterteilt, die jeweils beispielsweise als Akkumulator, Indexregister, Stapelspeicher oder dergleichen festgelegt sind. Der Stapelspeicher 44 ist als Register zum Anzeigen einer Adresse des Stapelspeichers ausgebildet, festgelegt in dem Allzweckregister 42, aus dem die Daten ausgelesen werden sollen. Beispielsweise hält der Stapelspeicher eine Rücksprungadresse, auf die zurückgegriffen werden soll, nachdem die Ausführung einer Unterbrechungsverarbeitung oder – unterroutine abgeschlossen ist.
  • In 1 ist mit 46 ein Multiplexer bezeichnet, der verwendet wird, um Steuersignale und Daten auf die Unterbrechungssteuerung 40, das Allzweckregister 42 und den Stapelspeicher 44 zu verteilen.
  • Obgleich die vorstehend genannten Elemente der CPU 10 auf diesem Gebiet wohl bekannt sind, zeichnet sich die CPU 10 durch ein neues Element aus, nämlich einer Adress-Koinzidenz-Unterbrechungs-Steuerung (ACIC) 48, die gemäß der vorliegenden Erfindung ausgebildet ist.
  • In einem ersten Ausführungsbeispiel der Erfindung enthält die ACIC 48 acht Schaltungselemente, von denen in 2 nur eines stellvertretend dargestellt ist und die mit den Bezugszeichen 48n (n = 0,1, ... 6 und 7) bezeichnet sind. Die Schaltungselemente 48 sind natürlich im wesentlichen identisch. Die Anzahl der Schaltungselemente 48n entspricht einer Anzahl wahlfreier Stellen, an denen jeweils die ROM-gespeicherten Programme revidiert werden sollen. In diesem Ausführungsbeispiel ist es so möglich, die ROM-gespeicherten Programme an acht wahlfreien Programmstellen zu revidieren, wie nachfolgend im Detail beschrieben wird.
  • Wie in 2 gezeigt, enthält jedes Schaltungselement 48 ein Vergleichsadress-Register (CAR) 50, das initialisiert wird, wenn die CPU 10 eingeschaltet wird, und das über einen Steuerbus, einen Adressbus und einen Datenbus in geeigneter Weise an die Elemente des Mikrocomputers angeschlossen ist. Das CAR 50 ist als 16-Bit-Register ausgebildet, dessen Bitanzahl gleich der einer Adresse des ROMs 12 ist. In jedes der acht Schaltungselemente 48n wird eine gegebene Adresse in das CAR 50 geschrieben, falls dies erforderlich ist.
  • Stellt sich beispielsweise heraus, daß Fehler in einem der ROM-gespeicherten Programme enthalten sind, so wird eine Kopfadresse des die Fehler enthaltenden Programms in das CAR 50 geschrieben. Soll ein Zusatzprogramm an einer Stelle der in dem ROM 12 gespeicherten Programme hinzugefügt werden, so wird eine dieser Stelle entsprechende Adresse in das CAR 50 geschrieben. Das Schreiben der Adresse in das CAR 50 wird nachfolgend im Detail erläutert.
  • Wie in 2 gezeigt, ist das CAR 50 über einen Bus mit einem Adressvergleicher 52 verbunden, und der Programmzähler 26 ist über einen Bus an den Adressvergleicher 52 angeschlossen. Wie vorstehend erläutert, wird in dem Programmzähler 26 eine Adresse sukzessive erneuert, während die ROM-gespeicherten Programme ausgeführt werden. Jedes Mal, wenn die Adresse erneuert wird, wird die erneuerte Adresse von dem Adressvergleicher 52 mit der in dem CAR 50 gespeicherten Adresse verglichen. Selbstredend werden die jeweiligen Vergleiche der erneuerten Adressen mit den in den CARs 50 der Schaltungselemente 48n gehaltenen Adressen gleichzeitig ausgeführt.
  • Der Adressvergleicher 52 hat einen Ausgangsanschluss, der mit einem von zwei Eingangsanschlüssen eines UND-Gatters 54 verbunden ist, wobei der auf das UND-Gatter 54 geführte Ausgangspegel des Adressvergleichers 52 normalerweise ein niedriger Pegel ist. Stimmen die erneuerten Adressen des Programmzählers 26 mit den in dem CAR 50 gehaltenen Adressen überein, so ändert sich der Ausgangspegel des Adressvergleichers 53 von niedrigem Pegel zu hohem Pegel. Besteht nämlich Übereinstimmung zwischen der erneuerten Adresse des Programmzählers 26 und der Adresse des CAR 50, so wird von dem Adressvergleicher 52 ein Adress-Koinzidenz-Signal (AC) als Hochpegelsignal ausgegeben. Wird die CPU 10 eingeschaltet, so wird der Adressvergleicher 52 so initialisiert, daß das Niederpegelsignal aus dem Adressvergleicher 52 ausgegeben wird.
  • Wie in 2 gezeigt, ist der andere Eingangsanschluss des UND-Gatters 54 mit einem Ausgangsanschluss eines Inverters 56 verbunden, und ein Eingangsanschluss des Inverters 56 ist dann an einen Ausgangsanschluss eines Adress-Koinzidenz-Unterbrechungsverbot-Registers (ACIPR) 58 angeschlossen. Das ACIPR 58 ist als 1-Bit-Register ausgebildet und über einen Steuerbus, einen Adressbus und einen Datenbus in geeigneter Weise an die Elemente des Mikrocomputers angeschlossen. Normalerweise ist das ACIPR 58 auf 0 eingestellt, so daß der auf den Inverter 56 führende Ausgangspegel des ACIPR 58 ein Niedrigpegel ist. Ist jedoch das ACIPR 58 auf 1 eingestellt, so wird der Ausgangspegel des ACIPR 58 von niedrig nach hoch verändert. Die 1-Bit-Daten des ACIPR 58 sind also normalerweise 0, so daß ein Hochpegelsignal von dem Inverter 56 ausgegeben wird. Ändern sich die 1-Bit-Daten des ACIPR 58 von 0 nach 1, so wird von dem Inverter 56 ein Niederpegelsignal ausgegeben. Die Änderung der 1-Bit-Daten des ACIPR 58 von 0 nach 1 wird im folgenden im Detail erläutert.
  • Dem ACIPR 58 ist eine Rücksetzschaltung 60 zugeordnet, die dafür vorgesehen ist, die 1-Bit-Daten des ACIPR 58 jedes Mal von 1 auf 0 zurückzusetzen, wenn die 1-Bit-Daten des ACIPR 58 von 0 nach 1 geändert werden. Nachdem die 1-Bit-Daten des ACIPR 58 von 0 nach 1 geändert worden sind, werden nämlich, wenn ein Rückstellsignal RE1 als Hochpegelsignal von der Rückstellschaltung 60 an den ACIPR 58 ausgegeben wird, die 1-Bit-Daten das ACIPR 58 von 1 auf 0 zurückgesetzt.
  • Nicht nur das Adress-Koinzidenz-Signal (AC) wird von dem Adressvergleicher 52 der Rücksetzschaltung 60 zugeführt, sondern auch eine Reihe von Systemtaktimpulsen, um die zeitlichen Festlegungen für verschiedene Operationen der CPU 10 zu steuern. Die Rücksetzschaltung 60 erzeugt auf Grundlage des AC-Signals und der Systemtaktimpulse das Rücksetzsignal RE1, wie nachfolgend im Detail erläutert wird. Die Rücksetzschaltung 60 wird durch ein ihr zugeführtes Rücksetzsignal initialisiert, wenn die CPU 10 eingeschaltet wird.
  • Wie in 2 gezeigt, ist ein Ausgangsanschluss des UND-Gatters 54 mit einem Eingangsanschluss C des Flipflops 62 verbunden, dessen Eingangsanschluss D nach Einschalten der CPU 10 stets ein Hochpegelsignal zugeführt wird. Wird das Adress-Koinzidenz-Signal (AC) von dem Adressvergleicher 52 ausgegeben, so gibt das UND-Gatter 54 unter der Voraussetzung, daß das Hochpegelsignal aus dem Inverter 56 ausgegeben wird, aus seinem Ausgangsanschluss ein Hochpegelsignal an den Eingangsanschluss C des Flipflops 62 aus. Zu diesem Zeitpunkt wird ein Adress-Koinzidenz-Unterbrechungsanforderungssignal (ACIR) als Hochpegelsignal von dem Ausgangsanschluss Q des Flipflops 62 ausgegeben.
  • Der Ausgangsanschluss Q des Flipflops 62 ist mit einem Eingangsanschluss eines Adress-Koinzidenz-Unterbrechungsüberwachungs-Registers (ACIMR) 64 verbunden. Wie das ACIPR 58 ist auch das ACIMR als 1-Bit-Register ausgebildet und über einen Steuerbus, einen Adressbus und einen Datenbus in geeigneter Weise an die Elemente des Mikrocomputers angeschlossen. 1-Bit-Daten des ACIMR 64 werden durch ein ihm zugeführtes Rücksetzsignal auf 0 initialisiert, wenn die CPU 10 eingeschaltet wird. Wird das Adress-Koinzidenz-Unterbrechungsanforderungssignal (ACIR) (Hochpegel) von dem Ausgangsanschluss Q des Flipflops 62 ausgegeben, so ändern sich die 1-Bit-Daten des ACIMR 64 von 0 nach 1. Kommt die Ausgabe des ACIR-Signals zum Stillstand, d.h. ändert sich der Ausgangspegel des Ausgangsanschlusses Q des Flipflops 62 von hoch nach niedrig, so werden die 1-Bit-Daten des ACIMR 64 von 1 auf 0 zurückgeführt. Durch Auslesen der 1-Bit-Daten aus dem ACIMR 64 ist es also möglich zu bestimmen, ob das ACIR-Signal von dem Ausgangsanschluss Q des Flipflops 62 ausgegeben wird.
  • Wie in 2 gezeigt, ist der Ausgangsanschluss Q des Flipflops 62 mit einem von zwei Eingangsanschlüssen eines UND-Gatters 66 verbunden, und der andere Eingangsanschluss des UND-Gatters 66 ist mit einem Ausgangsanschluss eines Adress-Koinzidenz-Unterbrechungsfreigabe-Registers (ACIAR) 68 verbunden. Das ACIAR 68 ist ebenfalls als 1-Bit-Register ausgebildet und über einen Steuerbus, einen Adressbus und einen Datenbus in geeigneter Weise an die Elemente des Mikrocomputers angeschlossen. 1-Bit-Daten des ACIAR werden durch ein ihm zugeführtes Rücksetzsignal auf 0 initialisiert, wenn die CPU 10 eingeschaltet wird. Ist das ACIAR 68 auf 1 eingestellt, so wird aus dem Ausgangsanschluss des ACIAR 68 ein Hochpegelsignal ausgegeben und dann dem anderen Eingangsanschluss des UND-Gatters 66 zugeführt. Ist das ACIAR 68 auf 0 eingestellt, so wird aus dem Ausgangsanschluss des ACIAR 68 ein Niederpegelsignal ausgegeben und dann dem anderen Eingangsanschluss des UND-Gatters 66 zugeführt.
  • Ist das ACIAR 68 auf 1 eingestellt, und wird das Adress-Koinzidenz-Unterbrechungsanforderungssignal (ACIR) von dem Ausgangsanschluss Q des Flipflops 62 ausgegeben, so werden deshalb beiden Eingangsanschlüssen des UND-Gatters 66 Hochpegelsignale zugeführt, wobei ein Adress-Koinzidenz-Unterbrechungssignal als Hochpegelsignal von einem Ausgangsanschluss des UND-Gatters 66 an die Unterbrechungssteuerung 40 ausgegeben wird. Wird das ACI-Signal der Unterbrechungssteuerung 40 zugeführt, so wird in der CPU 10 eine Unterbrechungsverarbeitung ausgeführt, wie nachfolgend im Detail erläutert wird.
  • Wie aus 2 hervorgeht, wird das Adress-Koinzidenz-Unterbrechungssignal (ACI) von dem UND-Gatter 66 auch einem Vektoradress-Register (VAR) 70 zugeführt. Das VAR 70 wird durch ein ihm zugeführtes Rücksetzsignal initialisiert, wenn die CPU 10 eingeschaltet wird, und ist über einen Steuerbus, einen Adressbus und einen Datenbus in geeigneter Weise an die Elemente des Mikrocomputers angeschlossen. Wie das CAR 50 ist auch das VAR 70 als 16-Bit-Register ausgebildet, dessen Bitanzahl gleich der einer Adresse des ROMs 12 ist.
  • In jedem der acht Schaltungselemente 48n wird eine gegebene Vektoradresse in das VAR 70 geschrieben, falls dies erforderlich ist. Eine in das jeweilige VAR 70 zu schreibende Vektoradresse entspricht einer Kopfadresse eines in dem RAM 14 gespeicherten Programms. Wird die CPU 10 eingeschaltet, so werden unter der Voraussetzung, daß in dem EEPROM 18 ein Revisionsprogramm und/oder ein Zusatzprogramm gespeichert sind, diese Programme aus dem EEPROM 18 ausgelesen und, wie vorstehend erläutert, in den RAM 14 geschrieben.
  • Wird das Adress-Koinzidenz-Unterbrechungssignal (ACI) von dem UND-Gatter 66 dem VAR 70 zugeführt, so wird von dem VAR 70 die Vektoradresse an einen Programmzähler 26 ausgegeben und dann in diesen geschrieben. Das Schreiben einer Vektoradresse in das jeweilige VAR 70 wird nachfolgend im Detail erläutert.
  • Nachdem das Adress-Koinzidenz-Unterbrechungsanforderungssignal (ACIR) von dem Ausgangsanschluss Q des Flipflops 62 ausgegeben worden ist, wird ein Rücksetzsignal RE2 als Hochpegelsignal von einer Rücksetzschaltung 72 an einen Rücksetzanschluss R des Flipflops 62 ausgegeben, so daß der Flipflop 62 entsperrt wird, wodurch die Ausgabe des ACIR-Signals zum Stillstand kommt. In Folge der Ausgabe des Rücksetzsignals RE2 von der Rücksetzschaltung 72 an den Rücksetzanschluss R des Flipflops 62 wird nämlich der Ausgangspegel des Ausgangsanschlusses Q des Flipflops 62 von hoch nach niedrig zurückgeführt.
  • Wie in 2 gezeigt, ist der Rücksetzschaltung 72 ein Adress-Koinzidenz-Unterbrechungslösch-Register (ACICR) 74 zugeordnet, das ein Löschsignal CL erzeugt und an die Rücksetzschaltung 72 ausgibt. Weiterhin werden der Rücksetzschaltung 72 die vorstehend genannten Systemtaktimpulse zugeführt. Das Rücksetzsignal RE2 wird auf Grundlage des Löschsignals CL und der Systemtaktimpulse erzeugt, wie nachfolgend im Detail erläutert wird. Die Rücksetzschaltung 72 wird durch ein ihr zugeführtes Rücksetzsignal initialisiert, wenn die CPU 10 eingeschaltet wird.
  • Auch das ACICR 74 ist als 1-Bit-Register ausgebildet und über einen Steuerbus, einen Adressbus und einen Datenbus in geeigneter Weise an die Elemente des Mikrocomputers angeschlossen. Normalerweise ist das ACICR 74 auf 0 gesetzt, jedoch ändern sich die 1-Bit-Daten des ACICR 74 von 0 nach 1, nachdem das UND-Gatter 66 das Adress-Koinzidenz-Unterbrechungssignal (ACI) der Unterbrechungssteuerung 40 zugeführt hat. Zu diesem Zeitpunkt wird das Löschsignal CL als Hochpegelsignal von dem ACICR 74 an die Rücksetzschaltung 72 ausgegeben. Das Setzen der an das ACICR auszugebenden 1-Bit-Daten wird im folgenden im Detail erläutert.
  • Wird das Flipflop 62 entsperrt, indem die Rücksetzschaltung 72 das Rücksetzsignal RE2 dem Flipflop 62 zuführt, so gibt die Rücksetzschaltung 72 ein Rücksetzsignal RE3 an das ACICR 74 aus, wobei 1-Bit-Daten des ACICR von 1 nach 0 zurückgeführt werden, so daß die Ausgabe des Löschsignals CL von dem ACICR 74 an die Rücksetzschaltung 72 zum Stillstand kommt. Der auf die Rücksetzschaltung 72 führende Ausgangspegel des ACICR 74 wird nämlich von hohem Pegel auf niedrigen Pegel zurückgeführt. Ähnlich dem Rücksetzsignal RE2 wird das Rücksetzsignal RE3 auf Grundlage des Löschsignals CL und der Systemtaktimpulse erzeugt, wie nachfolgend im Detail erläutert wird.
  • In dem ersten Ausführungsbeispiel speichert der EEPROM 18 acht Vergleichsadressdaten, acht Flagdaten und acht Vektoradressdaten. Jedes Mal wenn die CPU 10 eingeschaltet wird, werden die acht Vergleichsadressdaten, die acht Flagdaten und die acht Vektoradressdaten aus dem EEPROM 18 ausgelesen und in die CARs 50, die ACIARs 68 bzw. die VARs 70 der acht Schaltungselemente 48, geschrieben. Wie schon vorher erläutert, speichert der EEPROM 18, falls dies erforderlich ist, ein Revisionsprogramm und/oder ein Zusatzprogramm, um in den ROM-gespeicherten Programmen Revisionen durchzuführen. Diese Programme werden jedes Mal, wenn die CPU 10 eingeschaltet wird, in dem RAM 14 gespeichert.
  • Ist der EEPROM 18 fest in dem Mikrocomputer installiert, d.h. kann er aus diesem nicht entfernt werden, so werden die vorstehend genannten verschiedenen Daten und Programme mittels eines nicht dargestellten EEPROM-Schreibcomputers, der an den Mikrocomputer (1) angeschlossen ist, in den EEPROM 18 geschrieben. Das Schreiben der verschiedenen Daten und Programme in den EEPROM 18 erfolgt nämlich durch den EEPROM-Schreibcomputer über die CPU 10 des Mikrocomputers. Natürlich wird in diesem Fall ein EEPROM-Schreibprogramm vorher in dem ROM 12 gespeichert.
  • Ist dagegen der EEPROM 18 entfernbar in dem Mikrocomputer installiert, so wird der EEPROM 18 einmal aus dem Mikrocomputer entfernt und dann in einen nicht gezeigten EEPROM-Schreibcomputer montiert, um die verschiedenen Daten und Programme in den EEPROM 18 zu schreiben. Nachdem das Schreiben der verschiedenen Daten und Programme in den EEPROM 18 abgeschlossen ist, wird der EEPROM 18 aus dem EEPROM-Schreibcomputer entfernt und dann wieder in den Mikrocomputer gebracht. In diesem Fall ist die Speicherung des EEPROM-Schreibprogramms in dem ROM 12 selbstredend überflüssig.
  • In 3 ist ein Speicherbereich des EEPROMs 18 schematisch dargestellt. Wie in dieser Zeichnung gezeigt, enthält der EEPROM 18 acht Vergleichsadress-Speicherzonen CAZ0, CAZ1, ... CAZ6 und CAZ7, in denen Vergleichsadressdaten CA0[CA000, CA001, ... Ca014, CA015], Ca1[CA100, CA101, ... CA114, CA115], ... CA6[CA600, CA601, ... CA614, CA615] bzw. CA7[CA700, CA701, ... CA714, CA715] gespeichert sind. Der EEPROM 18 enthält auch acht Vektoradress-Speicherzonen VAZ0, VAZ1, ... VAZ6 und VAZ7, in denen Vektoradressdaten VAO[VA000, VA001, ... VA014, VA015], VA1[VA100, VA101, ... VA114, VA115], ... VA6[VA600, VA601, ... VA614, VA615] bzw. VA7[Va700, VA701, ... VA714, VA715] gespeichert sind. Wie vorstehend erläutert, sind die Vergleichsadressdaten CA0, Ca1, ... CA6 und CA7 jeweils als 16-Bit-Daten und auch die Vektoradressdaten Va0, VA1, ... VA6 und VA7 als 16-Bit-Daten ausgebildet. Der EEPROM 18 enthält weiterhin acht Flagdaten-Speicherzonen, in denen Flagdaten FE0, FE1, ... FE6 bzw. FE7 gespeichert sind, die jeweils als 1-Bit-Daten ausgebildet sind. Die jeweiligen Vergleichsadressdaten CA0, CA1, ... CA6 und CA7 entsprechen den Vektoradressdaten VA0, VA1, ... VA6 und VA7 und auch den Flagdaten FE0, FE1, ... FE6 und FE7.
  • Weiterhin enthält der EEPROM 18 einen Programmspeicherbereich und einen Datenspeicherbereich. In dem Programmspeicherbereich sind, falls dies erforder lich ist, ein Revisionsprogramm und/oder ein Zusatzprogramm für die Durchführung von Revisionen in den ROM-gespeicherten Programmen gespeichert. Der Datenspeicherbereich wird auch eingesetzt, um verschiedene Daten, z. B. Korrekturdaten, für ein elektronisches Produkt, in das der Computer (1) eingebaut ist, zu speichern, wie es beispielsweise eine elektronische Kamera, eine Videokamera, ein Drucker oder dergleichen darstellt. Ein erstes Beispiel für die Revision der ROM-gespeicherten Programme ist auf einen Fall gerichtet, in dem eines der ROM-gespeicherten Programme Fehler enthält. In diesem ersten Beispiel ist ein Revisionsprogramm oder korrektes Programm, das das die Fehler enthaltende Programm ersetzen soll, vorbereitet und in dem Programmspeicherbereich des EEPROM 18 (3) gespeichert. Eine Adresse, unter der ein Befehl gespeichert ist, mit dem eine Ausführung des die Fehler enthaltenden Programms geleitet wird, ist als Vergleichsadresse in eine der Vergleichsadress-Speicherzonen CAZ0, CAZ1, ... CAZ6 und CAZ7 des EEPROM 18 (3) geschrieben. Eine Adresse des RAMs 14, unter der ein erster Befehl des korrekten Programms gespeichert werden soll, d.h. eine Kopfadresse des korrekten Programms, wird in Form von Vektoradressdaten in eine Vektoradress-Speicherzone (VAZ0, VAZ1, ... VAZ6, VAZ7) geschrieben, entsprechend der Vergleichsadress-Speicherzone (CAZ0, CAZ1, ... CAZ6, CAZ7), in welche die Vergleichsadressdaten geschrieben sind. Weiterhin werden Flagdaten (FE0, FE1, ... FE6, FE7) entsprechend der Vergleichsadress-Speicherzone (CAZ0, CAZ1, ... CAZ6, CAZ7), in die die Vergleichsadressdaten geschrieben sind, auf 1 gesetzt. Sind beispielsweise die Vergleichsadressdaten in die Vergleichsadress-Speicherzone CAZ0 geschrieben, so werden die Vektoradressdaten in die entsprechende Vektoradress-Speicherzone VAZ0 geschrieben, und die entsprechenden Flagdaten FE0 werden auf 1 gesetzt.
  • Die Adresse des RAMs 14, unter der der erste Befehl des korrekten Programms gespeichert werden soll, wird im folgenden als Kopfadresse des korrekten Programms bezeichnet.
  • Ein zweites Beispiel für die Revision der ROM-gespeicherten Programme ist auf einen Fall gerichtet, in dem ein Zusatzprogramm den ROM-gespeicherten Programmen an einer wahlfreien Programmstelle hinzugefügt wird. In diesem zweiten Beispiel ist ein Zusatzprogramm, das den ROM-gespeicherten Programmen hinzugefügt werden soll, vorbereitet und in dem Programmspeicherbereich des EEPROM 18 gespeichert. Eine Adresse, die dieser Stelle der ROM-gespeicherten Programme entspricht, ist als Vergleichsadressdatum in eine der Vergleichsadress-Speicherzonen CAZ0, CAZ1, ... CAZ6 und CAZ/ des EEPROMs 18 geschrieben. Eine Adresse des RAMs 14, unter der ein erster Befehl des Zusatzprogramms gespeichert werden soll, wird als Vektoradressdatum in eine Vektoradress-Speicherzone (VAZ0, VAZ1, ... VAZ6, VAZ7) geschrieben, entsprechend der Vergleichsadress-Speicherzone (CAZ0, CAZ1, ... CAZ6, CAZ7), in die das Vergleichsadressdatum geschrieben ist. Weiterhin wird ein Flagdatum (FE0, FE1, FE6, FE7), das der Vergleichsadress-Speicherzone (CAZ0, CAZ1, ... CAZ6, CAZ7) entspricht, in die das Vergleichsadressdatum geschrieben ist, auf 1 gesetzt. Weiterhin wird ein Flagdatum (FE0, FE1, ... FE6, FE7) auf 1 gesetzt, das der Vergleichsadress-Speicherzone (CAZ0, CAZ1, ... CAZ6, CAZ7) entspricht, in die das Vergleichsadressdatum geschrieben ist. Ist beispielsweise das Vergleichsadressdatum in die Vergleichsadress-Speicherzone CAZ1 geschrieben, so wird das Vektoradressdatum in die entsprechende Vektoradress-Speicherzone VAZ1 geschrieben, und das entsprechende Flagdatum FEI wird auf 1 gesetzt.
  • Die Adresse des RAMs 14, unter der der erste Befehl des Zusatzprogramms gespeichert werden soll, wird im folgenden als Kopfadresse des Zusatzprogramms bezeichnet.
  • Ein drittes Beispiel für die Revision der ROM-gespeicherten Programme ist auf einen Fall gerichtet, daß eines der ROM-gespeicherten Programme an einer anderen wahlfreien Stelle der Programme ausgeführt wird. in diesem dritten Beispiel ist ein Aufrufprogramm, mit dem aus den ROM-gespeicherten Programmen das betreffende Programm aufgerufen wird, vorbereitet und in den Programmspeicherbereich des EEPROMs 18 gespeichert. Eine dieser Stelle der ROM-gespeicherten Programme entsprechende Adresse ist als Vergleichsadressdatum in eine der Vergleichsadress-Speicherzonen CAZ0, CAZ1, ... CAZ6 und CAZ7 des EEPROMs 18 geschrieben. Eine Adresse des RAMs 14, unter der ein erster Befehl des Aufrufprogramms gespeichert werden soll, ist als Vektoradressdatum in einer Vektoradress-Speicherzone (VAZ0, VAZ1, ... VAZ6, VAZ7) gespeichert, die der Vergleichsadress-Speicherzone (CAZ0, CAZ1, ... CAZ6, CAZ7) entspricht, in die die Vergleichsadresse geschrieben ist. Weiterhin wird ein Flagdatum (FE0, FE1, ... FE6, FE7) auf 1 gesetzt, das der Vergleichsadress-Speicherzone (CAZ0, CAZ1, ... CAZ6, CAZ7) entspricht, in die die Vergleichsadressdatum geschrieben ist. Ist beispielsweise das Vergleichsadressdatum in die Vergleichsadress-Speicherzone CAZ2 geschrieben, so wird das Vektoradressdatum in die entsprechende Vektoradress-Speicherzone VAZ2 geschrieben, und das entsprechenden Flagdatum FE2 wird auf 1 gesetzt.
  • Die Adresse des RAMs 14, unter der der erste Befehl des Aufrufprogramms gespeichert werden soll, wird im Folgenden als Kopfadresse des Aufrufprogramms bezeichnet.
  • Die Flagdaten FE1, FE1, ... FE6 und FE7 werden jeweils zur Unterscheidung eingesetzt, ob eine in einer entsprechenden Vergleichsadress-Speicherzone (CAZ0, CAZ1, ... CAZ6, CAZ7) gespeicherte Vergleichsadresse und eine entsprechende Vektoradress-Speicherzone (VAZ0, VAZ1, ... VZ6, VAZ7) an einer aktuellen Revision der ROM-gespeicherten Programme teilhaben. Sind die vorstehend genannten drei Beispiele in den ROM-gespeicherten Programmen enthalten, so werden lediglich die drei Flagdaten FE0, FE1 und FE2 auf 1 gesetzt, da die entsprechenden Vergleichsadressdaten CA0, CA1 und CA2 und die entsprechenden Vektoradressdaten VA0, VA1 und VA2 an den aktuellen Revisionen der ROM-gespeicherten Programme teilhaben. In diesem Fall werden die übrigen Flagdaten FE3, FE4, ... FE6 und FE7 auf 0 gesetzt, da ein bestimmtes, als Vergleichsadressdatum (CA3, CA4, ... CA6, CA7) in der jeweiligen Vergleichsadress-Speicherzone (CAZ3, CAZ4, ... CAZ6, CAZ7) gespeichertes Datum und ein bestimmtes, als Vektoradressdatum (VA3, VA4, ... VA6, VA7) in der jeweiligen Vektoradress-Speicherzone (VAZ3, VAZ4, ... VAZ6, VAZ7) gespeichertes Datum an der aktuellen Revision der ROM-gespeicherten Programme nicht teilhaben.
  • Wie schon vorher erläutert, werden die Vergleichsadressdaten CA0, CA1, ... CA6 und CA7 jedes Mal aus den Vergleichsadress-Speicherzonen CAZ0, CAZ1, ... CAZ6, CAZ7 des EEPROMs 18 ausgelesen, wenn die CPU 10 eingeschaltet wird, und dann in die CARs 50 der jeweiligen Schaltungselemente 48n geschrieben, gleichgültig ob die jeweiligen Vergleichsadressdaten an der aktuellen Revision der ROM-gespeicherten Programme teilhaben oder nicht. In ähnlicher Weise werden, wann immer die CPU 10 eingeschaltet wird, die Vektoradressdaten VA0, VA1, ... VA6 und VA7 aus den Vektoradress-Speicherzonen VAZ0, VAZ1, ... VAZ6 und VAZ7 des EEPROMs 18 ausgelesen und dann in die VARs 70 der jeweiligen Schaltungselemente 48n geschrieben. Außerdem werden, wann immer die CPU 10 eingeschaltet wird, die Flagdaten FE0, FE1, ... FE6 und FE7 aus dem EEPROM 18 ausgelesen und dann in die ACIARs der jeweiligen Schaltungselemente 48n geschrieben.
  • In den 4 bis 11 sind schematisch das CAR 50, das ACIAR 68 und das VAR 70 eines jeden Schaltungselementes 48n gezeigt, welche die entsprechenden Vergleichsadressdaten (CA0, CA1, ... CA6, CA7), die entsprechenden Flagdaten (FE0, FE1, ... FE6, FE7) bzw. die entsprechenden Vektoradressdaten (VA0, VA1, VA6, VA7) halten. Sind die vorstehend genannten Revisionsbeispiele in die ROM-gespeicherten Programme eingearbeitet, so nehmen, wie oben erläutert, die Vergleichsadressdaten CA0, CA1 und CA2 und die Vektoradressdaten VA0, VA1 und VA2 an den aktuellen Revisionen der ROM-gespeicherten Programme teil, so daß die Flagdaten FE0, FE1 und FE2 auf 1 gesetzt sind (4, 5 und 6). Dagegen nehmen die Vergleichsadressdaten CA3, CA4, ... CA6 und CA7 und die Vektoradressdaten VA3, VA4, ... VA6 und VA7 an keiner aktuellen Revision der ROM-gespeicherten Programme teil, so daß die Flagdaten FE3, FE4, ... FE6 und FE7 auf 0 gesetzt sind (7, 8, 9, 10 und 11). Kurz gesagt, kann durch die Werte (1 oder 0) der jeweiligen Flagdaten (FE0, FE1, ... FE6, FE7) unterschieden werden, ob sowohl den betreffenden Flagdaten entsprechende Vergleichsadress daten als auch den betreffenden Flagdaten entsprechende Vektoradressdaten an einer aktuellen Revision der ROM-gespeicherten Programme teilhaben oder nicht.
  • Wenn die vorstehend genannten Revisionsbeispiele in den ROM-gespeicherten Programmen eingearbeitet sind, werden jedes Mal, wenn die CPU 10 eingeschaltet wird, das Revisionsprogramm, das Zusatzprogramm und das Aufrufprogramm aus dem Programmspeicherbereich des EEPROMs 18 ausgelesen und dann in den RAM 14 gespeichert. Selbstverständlich werden zu diesem Zeitpunkt die verschiedenen Daten, wie z.B. die Korrekturdaten, für das elektronische Produkt, in das der Mikrocomputer (1) eingebaut ist, aus dem Datenspeicherbereich des EEPROMs 18 ausgelesen und dann in dem RAM 14 gespeichert.
  • In 12 ist ein Speicherbereich des RAMs 14 schematisch dargestellt. Wie in dieser Zeichnung gezeigt, enthält der RAM 14 einen für die Programmausführung bestimmten Arbeitsbereich, einen Datenspeicherbereich, einen Programmspeicherbereich und Stapelspeicherbereich, wobei diese Bereiche in dem RAM 14 festgelegt sind. Der für die Programmausführung bestimmte Arbeitsbereich wird verwendet, um beispielsweise verschiedene temporäre Daten zu speichern, die während einer Ausführung der ROM-gespeicherten Programme erzeugt werden. Der Datenspeicherbereich dient der Speicherung verschiedener Daten, die aus dem Datenspeicherbereich des EEPROMs 18 ausgelesen werden. Der Programmspeicherbereich ist für das Revisionsprogramm, das Zusatzprogramm und das Aufrufprogramm vorgesehen, die aus dem Programmspeicherbereich des EEPROMs 18 ausgelesen werden. Der Stapelspeicherbereich dient als Arbeitsbereich zum Speichern verschiedener Daten, die später während der Ausführung der ROM-gespeicherten Programme zu verarbeiten sind.
  • In den 13 bis 20 sind die ACIPRs 58, die ACICRs 74 und die ACIMRs 64 der Schaltungselemente 48n schematisch gezeigt, wobei jedes dieser Register 58, 74 und 64 als 1-Bit-Register ausgebildet ist, wie schon oben erläutert wurde.
  • In den ACIPRs 58 der Schaltungselemente 48n sind Flagdaten FD0, FD1, ... FD6 bzw. FD7 definiert, die auf den Wert 0 initialisiert werden, wenn die CPU 10 eingeschaltet wird. Das geeignete Einstellen des Wertes 1 für die jeweiligen Flagdaten (FD0, FD1, ... FD6, FD7) erfolgt gemäß einem Betriebsaspekt der CPU 10.
  • In den ACICRs 74 der Schaltungselemente 48n sind Flagdaten FC0, FC1, ... FC6 bzw. FC7 festgelegt, die auf den Wert 0 initialisiert werden, wenn die CPU 10 eingeschaltet wird. Die geeignete Einstellung des Wertes 1 der jeweiligen Flagdaten (FC0, FC1, ... FC6, FC7) erfolgt gemäß einem Betriebsaspekt der CPU 10.
  • In den ACIMRs 64 der Schaltungselemente 48n sind Flagdaten FM0, FM1, ... FM6 bzw. FM7 festgelegt, die auf den Wert 0 initialisiert werden, wenn die CPU 10 eingeschaltet wird. Die geeignete Einstellung des Wertes 1 für die jeweiligen Flagdaten (FM0, FM1, ... FM6, FM7) erfolgt gemäß einem Betriebsaspekt der CPU 10.
  • Wie schon erläutert, wird während des Betriebs der CPU 10 eine Adresse in dem Programmzähler 26 sukzessive erneuert. In jedem der Schaltungselemente 48n gewinnt ein entsprechender Adressvergleicher 52 die sukzessiv erneuerte Adresse aus dem Programmzähler 26 wieder und vergleicht diese mit einem Vergleichsadressdatum (CA0, CA1, ... CA6, CA7), das in dem entsprechenden CAR 50 gehalten ist. Besteht eine Übereinstimmung zwischen der wiedergewonnenen Adresse und dem in einem der acht CARs 50 gehaltenen Vergleichsadressdatum, so wird von dem Adressvergleicher 52 ein Adress-Koinzidenz-Signal (AC) als Hochpegelsignal ausgegeben.
  • Stimmt beispielsweise die wiedergewonnene Adresse mit dem Vergleichsadressdatum CA0 überein, das in dem CAR 50 des Schaltungselementes 480 gehalten ist, so wird das Adress-Koinzidenz-Signal (AC) von dem Adressvergleicher 52 des Schaltungselementes 480 ausgegeben und dann einem der beiden Eingangsanschlüsse des UND-Gatters 54 des Schaltungselementes 480 zugeführt. Anderer seits gibt der Ausgangsanschluss des Inverters 56 ein Hochpegelsignal an den anderen Eingangsanschluss des UND-Gatters 54 aus, und zwar wegen der anfänglichen Einstellung des Wertes 0 für das Flagdatum FD0, das in dem ACIPR 58 des Schaltungselementes 480 festgelegt ist. Wird also das AC-Signal von dem Adressvergleicher 52 ausgegeben, so ändert sich der Ausgangspegel des UND-Gatters 54 von niedrig nach hoch, und das Hochpegelsignal wird dem Eingangsanschluss C des Flipflops 62 zugeführt.
  • Wie vorstehend erläutert, wird dem Eingangsanschluss D des Flipflops 62 stets das Hochpegelsignal zugeführt. Wird das AC-Signal von dem Adressvergleicher 52 ausgegeben, so gibt deshalb der Ausgangsanschluss Q des Flipflops 62 ein Adress-Koinzidenz-Unterbrechungsanforderungssignal (ACIR) an einen der Eingangsanschlüsse des UND-Gatters 66 aus.
  • Sind die vorstehend genannten Revisionsbeispiele in die ROM-gespeicherten Programme eingearbeitet, nehmen die Vergleichsadressdaten CA0, CA1 und CA2, die in den CARs 50 der Schaltungselemente 480 , 481 bzw. 482 gehalten sind, an den aktuellen Revisionen der ROM-gespeicherten Programme teil, und die entsprechenden Flagdaten FE0, FE1 und FE2 werden auf den Wert 1 eingestellt. In jedem der Schaltungselemente 480 , 481 und 482 wird so ein Adress-Koinzidenz-Unterbrechungsfreigabesignal (ACTA) als Hochpegelsignal von dem ACIAR 68 ausgegeben.
  • Folglich wird, wenn eine aus dem Programmzähler 26 wiedergewonnene Adresse mit einem in dem CAR 50 gespeicherten Vergleichsadressdatum (CA0, CA1, CA2) übereinstimmt, d.h. ein Adress-Koinzidenz-Signal (AC) von dem Adressvergleicher 52 ausgegeben wird, ein Adress-Koinzidenz-Unterbrechungssignal (ACI) aus dem Ausgangsanschluss des UND-Gatters 66 an die Unterbrechungssteuerung 40 und das VAR 70 ausgegeben, und zwar wegen des ACIR-Signals, das von dem ACIAR 68 an das UND-Gatter 66 ausgegeben wird (FE0 = 1, FE1 = 1, FE2 = 1).
  • Obgleich die übrigen Vergleichsadressdaten CA3, CA4, CA5, CA6 und CA7 jeweils an einer aktuellen Revision der ROM-gespeicherten Programme nicht teilhaben, werden die Vergleichsadressdaten jeweils in Form vorbestimmter 16-Bit-Daten in einer entsprechenden Vergleichsadress-Speicherzone (CAZ3, CAZ4, CAZ5, CAZ6, CAZ7) des EEPROMs 18 gespeichert. Wie vorstehend erläutert, werden die jeweiligen Vergleichsadressdaten CA3, CA4, CA5, CA6 und CA7, wenn die CPU 10 eingeschaltet wird, aus den Vergleichsadress-Speicherzonen CAZ3, CAZ4, CAZ5, CAZ6 und CAZ7 des EEPROMs 18 ausgelesen und dann in die CARs 50 der Schaltungselemente 483 , 484 , 485 , 486 und 487 geschrieben. Folglich kann in jedem der Schaltungselemente 483 bis 487 eine aus dem Programmzähler 26 wiedergewonnene Adresse zufälligerweise mit einem in dem CAR 50 gehaltenen Vergleichsadressdatum (CA3, CA4, CA5, CA6, CA7) übereinstimmen. Besteht eine Übereinstimmung zwischen der wiedergewonnenen Adresse und den Vergleichsadressdaten (CA3, CA4, CA5, CA6, CA7), so wird selbstverständlich ein Adress-Koinzidenz-Signal (AC) von dem Adressvergleicher 52 ausgegeben, was zur Folge hat, daß der Ausgangsanschluß Q des Flipflops 62 ein Adress-Koinzidenz-Unterbrechungsanforderungssignal (ACIR) ausgibt. Jedoch kann ein Adress-Koinzidenz-Unterbrechungssignal (ACI) nicht von dem Ausgangsanschluss des UND-Gatters 66 an die Unterbrechungssteuerung 40 und das VAR 70 ausgegeben werden, da die Flagdaten FE3, FE4, FE5, FE6 und FE7 jeweils 0 sind, wodurch angezeigt wird, daß keine der Vergleichsadressdaten CA3, CA4, CA5, CA6 und CA7 an einer aktuellen Revision der ROM-gespeicherten Programme teilhaben.
  • In jedem der Schaltungselemente 480 , 481 und 482 wird, wenn der Ausgangsanschluss des UND-Gatters 66 der Unterbrechungssteuerung 40 das ACI-Signal zuführt, eine sequentielle Unterbrechungs-Übergangs-Verarbeitung von der CU 20 der CPU 10 gemäß einem in 21 gezeigten Flußdiagramm ausgeführt. Die Ausführung der sequentiellen Unterbrechungs-Übergangs-Verarbeitung wird unabhängig von den ROM-gespeicherten Programmen jedes Mal automatisch ausgeführt, wenn das ACI-Signal der Unterbrechungssteuerung 40 zugeführt wird.
  • In Schritt 2101 wird die Adresse des Programmzählers 26, die mit den Vergleichsadressdaten (CA0, CA1, CA2) übereinstimmt, temporär als Rücksprungadresse in dem Stapelspeicherbereich des RAMs 14 (12) gespeichert. Dann werden in Schritt 2102 die verschiedenen Flagdaten (wie das Übertragflag, das Überlaufflag, das Nullflag, das Vorzeichenflag und dergleichen) des Statusregisters 38 temporär in dem Stapelspeicherbereich des RAMs 14 gespeichert. Nachfolgend wird in Schritt S2103 das in dem Statusregister 38 gehaltene Unterbrechungsfreigabeflag auf 0 gesetzt, wodurch, wie schon oben erwähnt, alle Unterbrechungen mit Ausnahme einer nichtmaskierbaren Unterbrechung (NMI) und einer Softwareunterbrechung unterbunden sind.
  • Die mit den Schritten 2101, 2102 und 2103 erfolgende Verarbeitung ist Teil einer gewöhnlichen sequentiellen Unterbrechungs-Übergangs-Verarbeitung, die in einem herkömmlichen Mikrocomputer ausgeführt wird.
  • In Schritt 2104 werden die in dem VAR 70 gehaltenen Vektoradressdaten (VA0, VA1, VA2) auf Grundlage eines von dem UND-Gatter 66 an das VAR 70 ausgegebenen ACI-Signals in dem Programmzähler 26 gesetzt. Beispielsweise wird nämlich in dem Schaltungselement 48, wenn das UND-Gatter 66 das ACI-Signal an an das VAR 70 ausgibt, das Vektoradressdatum VA0 aus dem VAR 70 ausgelesen und dann in dem Programmzähler 70 gesetzt. Kurz gesagt, wird die Adresse des Programmzählers 26 durch die in dem VAR 70 gehaltenen Vektoradressdaten (VA0, VA1, VA2) erneuert.
  • In den vorstehend genannten Revisionsbeispielen entsprechen, wie schon oben erläutert, die jeweiligen Vektoradressdaten VA0, VA1 und VA2 den Kopfadressen des korrekten Programms, des Zusatzprogramms und des Aufrufprogramms, die in dem Programmspeicherbereich des RAMs 17 gespeichert sind. Nachdem die Adresse des Programmzählers 26 durch die Vektoradressdaten (VA0, VA, VA2) erneuert worden sind, greift die CU 20 auf die Kopfadresse (Vektoradresse) eines entsprechenden Programms aus korrektem Programm, Zusatzprogramm und Aufrufprogramm des RAMs 14 zu, so daß das entsprechende Revisionsprogramm als Unterbrechungsverarbeitung ausgeführt wird (Schritt 2105).
  • Sobald die Ausführung der Unterbrechungsverarbeitung gestartet ist (Schritt 2105), werden ein entsprechendes Flagdatum (FC0, FC1, FC2), das in dem ACICR 74 gehalten ist, auf 1 gesetzt, wodurch das Löschsignal aus dem ACICR 74 an die Rücksetzschaltung 72 ausgegeben wird. Wie oben erläutert, wird das Rücksetzsignal RE2, wenn das Löschsignal CL als Hochpegelsignal der Rücksetzschaltung 72 zugeführt, dort erzeugt und dann an den Rücksetzanschluss R des Flipflops 62 ausgegeben, so daß der Flipflop 62 entsperrt wird, wodurch die Ausgabe des ACIR-Signals aus dem Ausgangsanschluss Q des Flipflops 62 zum Stillstand kommt. Wegen der Ausgabe des Rücksetzsignals RE2 an den Rücksetzanschluss R des Flipflops 62 wird nämlich der Ausgangspegel des Ausgangsanschlusses Q des Flipflops 62 von hohem Pegel auf niedrigen Pegel zurückgeführt. So kommt auch die Ausgabe des ACI-Signals aus dem Ausgangsanschluss des UND-Gatters 66 an die Unterbrechungssteuerung 40 zum Stillstand. Andererseits wird auch das Rücksetzsignal RE3 in der Rücksetzschaltung 72 erzeugt und dann an das ACICR 74 ausgegeben, wodurch das entsprechende Flagdatum (FC0, FC1, FC2) auf 0 zurückgesetzt wird, so daß die Ausgabe des Löschsignals CL aus dem ACICR 74 an die Rücksetzschaltung 72 zum Stillstand kommt.
  • 22 zeigt einen Schaltplan der Rücksetzschaltung 72. Wie in dieser Zeichnung gezeigt, enthält die Rücksetzschaltung 72 ein erstes Flipflop 72A, ein zweites Flipflop 72B, ein UND-Gatter 72C und ein ODER-Gatter 72D. Der Ausgangsanschluss des ACICR 74 ist an einen Eingangsanschluss D des ersten Flipflops 72A und an einen von zwei Eingangsanschlüssen des UND-Gatters 72C angeschlossen. Der andere Eingangsanschluss des UND-Gatters 72C ist an einen invertierten (mit einem Balken versehenen) Ausgangsanschluss Q des zweiten Flipflops 72B angeschlossen. Ein Ausgangsanschluss Q des ersten Flipflops 72A ist mit einem Eingangsanschluss D des zweiten Flipflops 726 verbunden, und ein Ausgangsanschluss des zweiten Flipflops 728 ist an einen von zwei Eingangsan schlüssen des ODER-Gatters 72D angeschlossen. Ein Ausgangsanschluss des UND-Gatters 72C ist mit dem Rücksetzanschluss R des Flipflops 62 verbunden, und ein Ausgang des ODER-Gatters 72D ist an den Eingangsanschluss des ACICR 74 angeschlossen.
  • Wird die CPU 10 eingeschaltet, so wird das Rücksetzsignal beiden Rücksetzanschlüssen R des ersten und des zweiten Flipflops 72A und 72B zugeführt, wodurch das erste und das zweite Flipflop 72A und 72B zurückgesetzt werden. Das Rücksetzsignal wird auch dem anderen Eingangsanschluss des ODER-Gatters 72D zugeführt und aus diesem als Rücksetzsignal RE3 ausgegeben, wobei das in dem ACICR 74 gehaltene Flagdatum (F0, FC1, FC2) auf 0 zurückgesetzt wird. Außerdem wird, wie in 22 gezeigt, beiden Eingangsanschlüssen C des ersten und des zweiten Flipflops 72A und 72B eine Reihe von Systemtaktimpulsen fortgesetzt zugeführt, nachdem die CPU 10 eingeschaltet worden ist.
  • 23 zeigt ein Zeitdiagramm der in 22 dargestellten Rücksetzschaltung 72.
  • Während das in dem ACICR 74 gehaltene Flagdatum (FC0, FC1, FC2) gleich 0 ist, d.h. sich der Ausgangspegel des ACICR 74 auf niedrigem Pegel befindet, ist der Ausgangspegel Q1 des Ausgangsanschlusses Q des ersten Flipflops 72A niederpegelig, wie in dem Zeitdiagramm nach 23 gezeigt ist. Andererseits ist ein Ausgangspegel Q2 des Ausgangsanschlusses Q des zweiten Flipflops 726 niederpegelig und ein (mit dem Balken versehener) Ausgangspegel Q2 des invertierten (mit dem Balken versehenen) Ausgangsanschlusses Q des zweiten Flipflops 728 hochpegelig. So befindet sich ein Ausgangspegel (RE2) des UND-Gatters 72C auf niedrigem Pegel und ein Ausgangspegel (RE3) des ODER-Gatters 72D auf niedrigem Pegel.
  • Wenn das in dem ACICR 74 gehaltene Flagdatum (FC0, FC1, FC2) auf 1 gesetzt wird, d.h. das Löschsignal CL von dem ACICR 74 als Hochpegelsignal an die Rücksetzschaltung 72 ausgegeben wird, wird das Löschsignal CL und dem UND-Gatter 72C zugeführt, wobei das Rücksetzsignal RE2 als Hochpegelsignal von dem Ausgangsanschluss des UND-Gatters 72b ausgegeben wird, wie in dem Zeitdiagramm nach 23 gezeigt ist. Zu diesem Zeitpunkt befindet sich der (mit dem Balken versehene) Ausgangspegel Q2 des (mit dem Balken versehenen) invertierten Ausgangsanschlusses Q des zweiten Flipflops 726 auf hohem Pegel. Wie vorstehend erläutert, wird so das Flipflop 62 entsperrt, wodurch die Ausgabe des ACIR-Signals aus dem Ausgangsanschluss Q des Flipflops 62 zum Stillstand kommt.
  • Wird das Löschsignal CL dem Eingangsanschluss D des ersten Flipflops 72A zugeführt, so wird andererseits, wie in dem Zeitdiagramm nach 23 dargestellt, der Ausgangspegel Q1 des Ausgangsanschlusses Q des ersten Flipflops 72A von niedrigem Pegel zu hohem Pegel verändert, und zwar in Synchronisation mit dem Anstieg eines der Systemtaktimpulse, wie ebenfalls in 23 dargestellt ist. Wird dieses Hochpegelsignal (Q1) dem Eingangsanschluss D des zweiten Flipflops 726 zugeführt, so wird der Ausgangspegel Q2 des Ausgangsanschlusses Q des zweiten Flipflops 726 von niedrigem Pegel zu hohem Pegel verändert, und der (mit dem Balken versehene). Ausgangspegel Q des (mit Balken versehenen) invertierten Ausgangsanschlusses Q des zweiten Flipflops 728 wird von hohem Pegel zu niedrigem Pegel verändert, wobei beide Änderungen zugleich in Synchronisation mit dem Anstieg eines der Systemtaktimpulse auftreten, wie in dem Zeitdiagramm nach 23 gezeigt ist.
  • Der Ausgangspegel des UND-Gatters 72C wird so von hohem Pegel auf niedrigen Pegel zurückgeführt, da sich der (mit dem Balken versehene) Ausgangspegel Q des (mit dem Balken versehenen) invertierten Ausgangsanschlusses des zweiten Flipflops 72B von hohem Pegel auf niedrigen Pegel ändert. Die Ausgabe des Rücksetzsignals RE2 aus dem UND-Gatter 72C kommt nämlich zum Stillstand. Andererseits ändert sich der Ausgangspegel des ODER-Gatters 72D von niedrigem Pegel auf hohen Pegel, da sich der Ausgangspegel Q2 des Ausgangsanschlusses Q des zweiten Flipflops 726 von niedrigem Pegel auf hohen Pegel ändert. Das Rücksetzsignal RE3 wird nämlich als Hochpegelsignal an das ACIC-Register 74 ausgegeben, wie in dem Zeitdiagramm nach 23 gezeigt ist.
  • Wird das Rücksetzsignal RE3 dem ACICR 74 zugeführt, so wird das Flagdatum (FC0, FC1, FC2) von 1 auf 0 zurückgesetzt, wobei der auf die Rücksetzschaltung 72 führende Ausgangspegel des ACICR 74 von hohem Pegel auf niedrigen Pegel zurückgeführt wird. Die Ausgabe des Löschsignals CL von dem ACICR 74 an die Rücksetzschaltung 72 kommt nämlich zum Stillstand. Wie aus dem Zeitdiagramm nach 23 hervorgeht, wird das erste Flipflop 72A in Synchronisation mit dem Anstieg eines der Systemtaktimpulse entsperrt, nachdem die Ausgabe des Löschsignals CL von dem ACICR 74 an die Rücksetzschaltung 72 zum Stillstand gekommen ist, wobei der Ausgangspegel Q1 des Ausgangsanschlusses Q des ersten Flipflops 72A von hohem Pegel zu niedrigem Pegel zurückgeführt wird, wie in dem Zeitdiagramm nach 23 gezeigt ist.
  • Nach der Rückführung des Ausgangspegels Q1 des Ausgangsanschlusses Q des ersten Flipflops 72A von hohem Pegel auf niedrigen Pegel wird dann das zweite Flipflop 72B in Synchronisation mit dem Anstieg eines der Systemtaktimpulse entsperrt, wobei der Ausgangspegel Q1 des Ausgangsanschlusses Q des zweiten Flipflops 72B von hohem Pegel auf niedrigen Pegel zurückgeführt wird und der (mit dem Balken versehene) Ausgangspegel Q2 des (mit dem Balken versehenen) invertierten Ausgangsanschlusses Q des zweiten Flipflops 72A von niedrigem Pegel auf hohen Pegel zurückgeführt wird, wie in dem Zeitdiagramm der 23 gezeigt ist.
  • Kurz gesagt, wird also, wie unter Bezugnahme auf die vorstehend genannten Revisionsbeispiele erklärt wurde, das in dem ACICR 74 gehaltene Flagdatum (FC0, FC1, FC2) auf 1 gesetzt, sobald die Unterbrechungsverarbeitung für die Revision der ROM-gespeicherten Programme infolge der Ausgabe des ACI-Signals von dem UND-Gatter 66 an die Unterbrechungssteuerung 40 ausgeführt wird, wobei die Ausgabe des ACI-Signals von dem UND-Gatter 66 an die Unterbrechungssteuerung 40 zum Stillstand kommt. Sobald die Ausgabe des ACI-Signals von dem UND-Gatter 66 an die Unterbrechungssteuerung 40 zum Still stand kommt, wird dann das in dem ACICR 74 gehaltene Flagdatum (FC0, FC1, FC2) von 1 auf 0 zurückgeführt.
  • Nachdem die Ausführung der auf dem vorstehend genannten zweiten oder dritten Revisionsbeispiel basierenden Unterbrechungsverarbeitung abgeschlossen ist, wird von der CU 20 der CPU 10 gemäß einem in 24 gezeigten Flußdiagramm eine sequentielle Unterbrechungs-Rücksprung-Verarbeitung durchgeführt.
  • Wie nachfolgend im Detail erläutert, werden beim Ausführung der Unterbrechungsverarbeitung die in dem ACIPR 58 gehaltenen Flagdaten (FD1, FD2) auf 1 gesetzt, wobei der auf den Inverter 56 führende Ausgangspegel des ACIPR 58 von niedrigem Pegel auf hohen Pegel geändert wird, was zu einer Änderung des Ausgangspegels des Inverters 56 von hohem Pegel zu niedrigem Pegel führt.
  • In Schritt 2401 werden verschiedene, temporär in dem Stapelspeicherbereich des RAMs 14 gespeicherte Flagdaten in das Statusregister 38 zurückgeführt, und das in dem Statusregister 38 gehaltene Unterbrechungsfreigabeflag wird auf 1 gesetzt, wodurch wieder alle Unterbrechungen erlaubt sind.
  • In Schritt 2402 wird die in dem Stapelspeicherbereich des RAMs 14 temporär gespeicherte Rücksprungadresse in den Programmzähler 26 zurückgeführt und dort gesetzt. Dann greift in Schritt 2403 die CU 20 auf die durch den Programmzähler 26 angezeigte Rücksprungadresse des ROMs 12 zu, wodurch eine auf den ROM-gespeicherten Programmen basierende Verarbeitung durchgeführt wird.
  • In der sequentiellen Unterbrechungs-Rücksprung-Verarbeitung nach 24 wird, wenn die Rücksprungadresse in dem Programmzähler 26 gesetzt ist (Schritt 2402), das AC-Signal wieder von dem Adressvergleicher 52 ausgegeben, da Übereinstimmung zwischen der Rücksprungadresse und den in dem CAR 50 gehaltenen Vergleichsadressdaten (CA1, CA2) besteht. Jedoch wird die Ausgabe des AC-Signals aus dem Adressvergleicher 52 ignoriert, da der auf das UND-Gatter 54 führende Ausgangspegel des Inverters 56 infolge der Einstellung der Flagdaten (FD1, FD2) auf 1 der niedrige Pegel ist. Das ACIR-Signal kann also nicht von dem Ausgangsanschluss Q des Flipflops 62 ausgegeben werden.
  • Ist die Rücksprungadresse in dem Programmzähler 26 gesetzt (Schritt 2402), so wird andererseits das von dem Adressvergleicher 52 ausgegebene AC-Signal der Rücksetzschaltung 60 zugeführt. Wird die Rücksprungadresse des Programmzählers 26 gemäß der Ausführung der ROM-gespeicherten Programme erneuert, so kommt dann die Ausgabe des AC-Signals aus dem Adressvergleicher 52 zum Stillstand, da keine Übereinstimmung zwischen der erneuerten Adresse und den in dem CAR 50 gehaltenen Vergleichsadressdaten (CA1, CA2) besteht. Kommt die Ausgabe des AC-Signals aus dem Adressvergleicher 52 zum Stillstand, d.h. wird der auf die Rücksetzschaltung 60 führende Ausgangspegel des Adressvergleichers 52 von hohem Pegel auf niedrigen Pegel zurückgeführt, so wird in der Rücksetzschaltung 60 das Rücksetzsignal RE1 erzeugt und an das ACIPR 58 ausgegeben, wobei die in dem ACIPR 58 gehaltenen Flagdaten (FD1, FD2) von 1 auf 0 zurückgeführt werden, was wiederum dazu führt, daß der auf den Inverter 56 führende Ausgangspegel des ACIPR 58 von hohem Pegel auf niedrigen Pegel zurückgeführt wird.
  • 25 zeigt einen Schaltplan der Rücksetzschaltung 60. Wie in dieser Zeichnung gezeigt, enthält die Rücksetzschaltung 60 ein erstes Flipflop 60A, ein zweites Flipflop 606, einen Inverter 60C, ein UND-Gatter 60D und ein ODER-Gatter 60E. Der Ausgangsanschluss des Adressvergleichers 52 ist mit einem Eingangsanschluss D des ersten Flipflops 60A und einem Eingangsanschluss des Inverters 60C verbunden, und ein Ausgangsanschluss Q des ersten Flipflops 60A ist an einen Eingangsanschluss D des zweiten Flipflops 60B angeschlossen. Ein Ausgangsanschluss des Inverters 60C ist mit einem der beiden Eingangsanschlüsse des UND-Gatters 60D und der andere Eingangsanschluss des UND-Gatters 60D mit einem Ausgangsanschluss Q des zweiten Flipflops 60B verbunden. Ein Ausgangsanschluss des UND-Gatters 60D ist mit einem der beiden Eingangsanschlüsse des ODER-Gatters 60E verbunden, und ein Ausgangsanschluss des ODER-Gatters 60E ist an einen Eingangsanschluss des ACIPR 58 angeschlossen.
  • Wird die CPU 10 eingeschaltet, so wird das Rücksetzsignal beiden Rücksetzanschlüssen R des ersten und des zweiten Flipflops 60A und 60B zugeführt, wodurch das erste und das zweite Flipflop 60A und 60B zurückgesetzt werden. Das Rücksetzsignal wird auch dem anderen Eingangsanschluss des ODER-Gatters 60E zugeführt und dann als Rücksetzsignal RE1 von dem Ausgangsanschluss des ODER-Gatters 60E ausgegeben, wodurch das in dem ACIPR 58 gehaltene Flagdatum (FD1, FD2) auf 0 zurückgesetzt wird. Wie in 25 gezeigt, wird weiterhin eine Reihe von Systemtaktimpulsen beiden Eingangsanschlüssen C des ersten und des zweiten Flipflops 60A und 60B fortgesetzt zugeführt, nachdem die CPU 10 eingeschaltet worden ist.
  • 26 zeigt ein Zeitdiagramm der in 25 dargestellten Rücksetzschaltung 60.
  • Wie schon vorher erwähnt, wird das AC-Signal, wenn die Rücksprungadresse in den Programmzähler 26 während der Ausführung der sequentiellen Unterbrechungs-Rücksprung-Verarbeitung nach 24 gesetzt wird (Schritt 2402), wieder von dem Adressvergleicher 52 ausgegeben, da zwischen der Rücksprungadresse und dem in dem CAR 50 gehaltenen Vergleichsadressdatum (CA1, CA2) Übereinstimmung besteht. Der Ausgangspegel des Adressvergleichers 52 wird nämlich von niedrigem Pegel auf hohen Pegel geändert, wie das Zeitdiagramm nach 26 zeigt.
  • Obgleich das AC-Signal von dem Adressvergleicher 52 ausgegeben wird, kann das ACIR-Signal nicht von dem Ausgangsanschluss Q des Flipflops 62 ausgegeben werden, da das in dem ACIPR 58 gehaltene Flagdatum (FD1, FD2) auf 1 gesetzt ist, wie schon oben erläutert wurde.
  • Wird das von dem Adressvergleicher 52 ausgegebene AC-Signal an den Inverter 60C ausgegeben, so wird ein Ausgangspegel INV des Inverters 60C von hohem Pegel auf niedrigen Pegel geändert, wie in dem Zeitdiagramm nach 26 gezeigt ist. Nachdem das AC-Signal dem Eingangsanschluss D des ersten Flipflops 60A zugeführt worden ist, wird ein Ausgangspegel des Ausgangsanschlusses Q des ersten Flipflops 60A von niedrigem Pegel auf hohen Pegel in Synchronisation mit einem Anstieg eines der Systemtaktimpulse geändert. Nachdem dieses Hochpegelsignal (Q1) dem Eingangsanschluss D des zweiten Flipflops 60B zugeführt worden ist, wird ein Ausgangspegel Q2 des Ausgangsanschlusses Q des zweiten Flipflops 60B von niedrigem Pegel auf hohen Pegel in Synchronisation mit einem Anstieg eines der Systemtaktimpulse geändert, wie das Zeitdiagramm nach 26 zeigt. Zu diesem Zeitpunkt ist der Ausgangspegel des UND-Gatters 60D immer noch auf niedrigem Pegel, da der Inverter 60C vorhanden ist.
  • Wird die Rücksprungadresse des Programmzählers 26 gemäß der Ausführung der ROM-gespeicherten Programme erneuert, so kommt die Ausgabe des AC-Signals aus dem Adressvergleicher 52 zum Stillstand, da keine Übereinstimmung zwischen der erneuerten Adresse und dem in dem CAR 50 gehaltenen Vergleichsadressdatum (CA1, CA2) besteht. Der Ausgangspegel des Adressvergleichers 52 wird nämlich von hohem Pegel auf niedrigen Pegel zurückgeführt, wie in dem Zeitdiagramm nach 26 gezeigt ist. Der Ausgangspegel INV des Inverters 60C wird so von niedrigem Pegel auf hohen Pegel zurückgeführt, wodurch sich der Ausgangspegel des UND-Gatters 60D von niedrigem Pegel auf hohen Pegel ändert, was zu einer Ausgabe des Rücksetzsignals RE1 aus dem Ausgangsanschluss des ODER-Gatters 60E an das ACIPR 58 führt. Wird das Rücksetzsignal RE1 dem ACIPR 58 zugeführt, so wird das dort gehaltene Flagdatum (FD1, FD2) auf 0 zurückgesetzt, wie schon oben erläutert wurde.
  • Nachdem die Ausgabe des AC-Signals aus dem Adressvergleicher 52 zum Stillstand gekommen ist, d.h. der auf den Eingangsanschluss des ersten Flipflops 60A führende Ausgangspegel des Adressvergleichers 52 von hohem Pegel auf niedrigen Pegel zurückgeführt worden ist, wird andererseits das erste Flipflop 60A in Synchronisation mit einem Anstieg eines der Systemtaktimpulse entsperrt, wodurch der Ausgangspegel Q1 des Ausgangsanschlusses Q des ersten Flipflops 60A von hohem Pegel auf niedrigen Pegel zurückgeführt wird, wie das Zeitdiagramm nach 26 zeigt. Nachdem das Niederpegelsignal (Q1) dem Ausgangsanschluss Q des zweiten Flipflops 60B zugeführt worden ist, wird dieses Flipflop 60B in Synchronisation mit einem Anstieg eines der Systemtaktimpulse entsperrt, wodurch der Ausgangspegel Q2 des Ausgangsanschlusses Q des zweiten Flipflops 60B von hohem Pegel auf niedrigen Pegel zurückgeführt wird, wie in dem Zeitdiagramm nach 26 gezeigt ist. Der Ausgangspegel des UND-Gatters 60D wird so von hohem Pegel auf niedrigen Pegel zurückgeführt, wodurch die Ausgabe des Rücksetzsignals RE1 aus dem ODER-Gatter 60E zum Stillstand kommt. Der Ausgangspegel des ODER-Gatters 60E wird nämlich von hohem Pegel auf niedrigen Pegel zurückgeführt.
  • In dem vorstehend genannten zweiten und dritten Revisionsbeispiel wird also vor Abschluss der Ausführung der Unterbrechungsverarbeitung das in dem ACIPR 58 gehaltene Flagdatum (FD1, FD2) auf 1 gesetzt, wodurch die Ausgabe des ACIR-Signals aus dem Ausgangsanschluss Q des Flipflops 62 und damit die Ausgabe des ACI-Signals aus dem UND-Gatter 66 verboten ist, was der Ausgabe des AC-Signals aus dem Adressvergleicher 52 nicht entgegensteht, da Übereinstimmung zwischen der Rücksprungadresse und dem in dem CAR 50 gehaltenen Vergleichsadressdatum (CA1, CA2) besteht. Ist die Rücksprungadresse des Programmzählers 26 erneuert, so wird dann das Flagdatum (FD1, FD2) infolge der Rücksetzschaltung 60, die wie in 25 gezeigt ausgebildet ist, auf 0 zurückgesetzt.
  • In dem vorstehend genannten ersten Revisionsbeispiel, das auf den Fall gerichtet ist, daß die ROM-gespeicherten Programme Fehler enthalten, kann das in dem ACIPR 58 gehaltene Flagdatum FD0, wie nachfolgend erläutert, selbst dann nicht auf 1 gesetzt werden, wenn die Ausführung der Unterbrechungsverarbeitung abgeschlossen ist, so daß die sequentielle Unterbrechungs-Rücksprung-Verarbeitung (24) nicht ausgeführt werden kann, da ansonsten infolge der Rückführung der Rücksprungadresse aus dem Stapelspeicherbereich des RAMs 14 auf den Programmzähler 26 das Programm mit seinen Fehlern ausgeführt werden würde. In dem vorstehend genannten ersten Revisionsbeispiel muß also die CU 20 nach Abschluss der Ausführung der Unterbrechungsverarbeitung einen Zugriff auf eine geeignete Adresse vornehmen, bevor die Ausführung des die Fehler enthaltenden Programms verhindert werden kann. In dem vorstehend genannten ersten Revisionsbeispiel wird nämlich nach Abschluss der Ausführung eine in diesem Sinne geeignete Adresse in dem Programmzähler 26 gesetzt.
  • In dem vorstehend genannten ersten Revisionsbeispiel werden die verschiedenen in dem Stapelspeicherbereich des RAMs 14 temporär gespeicherten Flagdaten während der Ausführung der Unterbrechungsverarbeitung verwendet, falls dies erforderlich ist, und ansonsten "weggeworfen". Selbstredend wird die in dem Stapelspeicherbereich des RAMs 14 temporär gespeicherte Rücksprungadresse weggeworfen.
  • In dem vorstehend genannten zweiten und dritten Revisionsbeispiel greift die CU 20 nach Abschluss der Ausführung der Unterbrechungsverarbeitung nicht notwendigerweise auf die Rücksprungadresse zu. Die CU 20 nimmt nämlich ähnlich wie im Fall des vorstehend genannten ersten Revisionsbeispiels einen Zugriff auf eine geeignete Adresse vor, nachdem die Ausführung der Unterbrechungsverarbeitung abgeschlossen ist.
  • 27 zeigt beispielhaft eine Systembetriebsroutine für ein elektronisches Produkt, in das der vorstehend beschriebene Mikrocomputer eingebaut ist, wie es z.B. ein Drucker, eine Videokamera, eine digitale Einzelbildkamera, eine elektronische Uhr etc. darstellt. Die Ausführung der Systembetriebsroutine wird dadurch gestartet, daß das elektronische Produkt elektrisch eingeschaltet wird.
  • In Schritt 2701 wird die CPU 10 initialisiert, und in Schritt 2702 werden dann in dem elektronischen Produkt enthaltene Peripherieschaltungen initialisiert.
  • In Schritt 2703 wird ermittelt, ob Bedarf besteht, Revisionsprogramme und verschiedene Daten in den EEPROM 18 zu schreiben. Wie schon vorher erläutert, ist der Mikrocomputer (1), wenn der EEPROM 18 nicht aus dem Mikrocomputer entfernt werden kann, mit dem EEPROM-Schreibcomputer (nicht gezeigt) verbunden, um die Revisionsprogramme und verschiedene Daten in den EEPROM 18 zu schreiben. In diesem Fall gibt der EEPROM-Schreibcomputer an die CPU 10 des Mikrocomputers ein Signal aus, mit dem verlangt wird, daß die Revisionsprogramme und die verschiedenen Daten in den EEPROM 18 geschrieben werden. Auf diese Weise ist es möglich zu ermitteln, ob ein Bedarf besteht, die Revisionsprogramme und die verschiedenen Daten in den EEPROM 18 zu schreiben.
  • Bestätigt sich in Schritt 2703, daß ein Bedarf besteht, die Revisionsprogramme und die verschiedenen Daten in den EEPROM 18 zu schreiben, so fährt der Steuerablauf mit Schritt 2704 fort, in dem das im Vorfeld in dem ROM 12 gespeicherte EEPROM-Schreibprogramm ausgeführt wird, wodurch die Revisionsprogramme und die verschiedenen Daten unter der Steuerung des EEPROM-Schreibcomputers in den EEPROM 18 geschrieben werden. Sind die vorstehend genannten drei Revisionsbeispiele in die ROM-gespeicherten Programme eingearbeitet, so werden selbstverständlich die Vergleichsadressdaten CA0, CA1 und CA2, die Vektoradressdaten VA0, VA1 und VA2 sowie die Flagdaten FE0, FE1 und FE2 in Schritt 2704 in den EEPROM 18 geschrieben. Falls erforderlich, werden in Schritt 2704 auch verschiedene auf das elektronische Produkt bezogene Daten, z.B. Korrektionsdaten, in den EEPROM 18 geschrieben.
  • Wenn das Schreiben der Revisionsprogramme und der verschiedenen Daten in den EEPROM 18 abgeschlossen ist, d.h. der EEPROM-Schreibcomputer von dem Mikrocomputer getrennt wird, fährt der Steuerablauf mit Schritt S2705 fort. Besteht dagegen in Schritt 2704 kein Bedarf, Revisionsprogramme und verschiedene Daten in den EEPROM 18 zu schreiben, d.h. ist der Mikrocomputer nicht an den EEPROM-Schreibcomputer angeschlossen, so überspringt der Steuerablauf Schritt 2704 und fährt mit Schritt 2705 fort.
  • In beiden Fällen werden in Schritt 2705 die verschiedenen Daten für das elektronische Produkt, z.B. Korrekturdaten, aus dem Datenspeicherbereich des EE- PROMs 18 (3) ausgelesen und dann in den Datenspeicherbereich des RAMs 14 (12) geschrieben.
  • Ist der EEPROM 18 entfernbar in dem Mikrocomputer eingebaut, so werden die Revisionsprogramme und die verschiedenen Daten mittels des EEPROM-Schreibcomputers, auf dem der entfernte EEPROM 18 montiert ist, direkt in den EEPROM 18 geschrieben, wie schon oben erläutert wurde. In diesem Fall werden in der Systembetriebsroutine nach 27 die Schritte 2703 und 2704 weggelassen.
  • In Schritt 2706 wird bestimmt, ob eine Anzahl von aus dem Programmspeicherbereich des EEPROMs 18 (3) auszulesenden Bytes gleich 0 ist. Ist mindestens ein Revisionsprogramm in dem Programmspeicherbereich des EEPROMs gespeichert, so ist eine Anzahl an Bytes entsprechend dem gespeicherten Revisionsprogramm vorhanden. Ist jedoch in dem Programmspeicherbereich des EE-PROMs 18 kein Revisionsprogramm gespeichert, so ist die Anzahl an Bytes, die aus dem Programmspeicherbereich des EEPROMs 18 auszulesen sind, gleich 0.
  • Ist die Anzahl an Bytes, die aus dem Programmspeicherbereich des EEPROMs 18 auszulesen sind, nicht gleich Null, d.h. ist mindestens ein Revisionsprogramm in dem Programmspeicherbereich des EEPROMs 18 gespeichert, so fährt der Steuerablauf mit Schritt 2707 fort, in dem das Revisionsprogramm aus dem Programmspeicherbereich des EEPROMs 18 ausgelesen und dann in den Programmspeicherbereich des RAMs 14 geschrieben wird.
  • In Schritt 2708 werden die jeweiligen Vergleichsadressdaten CA0, CA1, ... CA6 und CA7 aus den Vergleichsadress-Speicherzonen CAZ0, CAZ1, ... CAZ6 und CAZ7 des EEPROMs 18 ausgelesen und dann in die CARs 50 der Schaltungselemente 48 geschrieben, die jeweiligen Vektoradressdaten VA0, VA1, ... VA6 und VA7 aus den Vektoradress-Speicherzonen VAZ0, VAZ1, ... VAZ6 und VAZ7 des EEPROMs 18 ausgelesen und dann in die VARs 70 der Schaltungselemente geschrieben sowie die jeweiligen Flagdaten FE0, FEI, ... FE6 und FE7 aus den acht Flagdaten-Speicherzonen des EEPROMs 18 ausgelesen und dann in die ACIARs 68 der Schaltungselemente 48 geschrieben. Anschließend werden in Schritt 2709 verschiedene Verarbeitungsroutinen gemäß den ROM-gespeicherten Programmen ausgeführt.
  • Ist in Schritt 2706 die Anzahl an Bytes, die aus dem Programmspeicherbereich des EEPROMs 18 auszulesen sind, gleich Null, d.h. kein Revisionsprogramm in dem Programmspeicherbereich des EEPROMs 18 gespeichert, so überspringt der Steuerablauf selbstredend die Schritte 2707 sowie 2708 und fährt mit Schritt 2709 fort.
  • In 28 ist ein Teil einer in Schritt 2709 der Systembetriebsroutine (27) auszuführenden Verarbeitungsroutine beispielhaft gezeigt. Wie aus 28 hervorgeht, enthält die Verarbeitungsroutine Schritte 2801 bis 2810, wobei in jedem Schritt (2801, 2802, ... 2809, 2810) ein Befehl ausgeführt wird, der in dem ROM 12 unter einer vorgegebenen Adresse gespeichert ist.
  • In dem Mikrocomputer (1) besteht ein in dem jeweiligen Schritt (2801, 2802, ... 2809, 2810) auszuführender Befehl aus 4 Bytes, und ist deshalb in einer 4-Byte-Adresse (ROM 12) gespeichert.
  • In Schritt 2801 wird eine Unterroutine A aufgerufen und ausgeführt. Ein Befehl zum Aufrufen und Ausführen der Unterroutine A ist in einer 4-Byte-Adresse gespeichert, die beispielsweise aus vier aufeinanderfolgenden Adressen 9800H bis 9803H (ROM 12) besteht, die jeweils aus einem Byte bestehen. Das Zeichen "H", das jeweils den vier Ziffern enthaltenden Adressnummern angefügt ist, gibt an, daß die Adressnummer auf der hexadezimalen Darstellung beruht. Eine Kopfadressnummer der Unterroutine A wird dabei beispielsweise als 1000H dargestellt.
  • In Schritt 2802 wird ein Befehl zur Unterscheidung eines bedingten Abzweiges X ausgeführt. Dieser Befehl ist in einer 4-Byte-Adresse gespeichert, die aus vier aufeinanderfolgenden Adressen 9804H bis 9807H besteht, die der Adresse 9803H folgen.
  • Unter der Voraussetzung, daß der Steuerablauf ausgehend von Schritt 2802 infolge des Ergebnisses der Unterscheidung des bedingten Abzweigs X mit Schritt 2803 fortfährt, wird eine Unterroutine B aufgerufen und ausgeführt (Schritt 2803). Ein Befehl zum Aufrufen und Ausführen der Unterroutine B ist in einer 4-Byte-Adresse gespeichert, die aus vier aufeinanderfolgenden Adressen 9808H bis 980BH besteht, die der Adresse 9807H folgen. Eine Kopfadressnummer der Unterroutine B wird beispielsweise als 2000H dargestellt.
  • In Schritt 2804 wird eine Unterroutine C aufgerufen und ausgeführt. Ein Befehl zum Aufrufen und Ausführen der Unterroutine C ist in einer 4-Byte-Adresse gespeichert, die aus vier der Adresse 980BH folgenden Adressen 980CH bis 980FH besteht. Eine Kopfadressnummer der Unterroutine C ist beispielsweise als 3000H dargestellt.
  • In Schritt 2804 springt der Steuerablauf nach Abschluss der Ausführung der Unterroutine C zu einem optionalen Schritt "W". Ein Befehl, der den Steuerablauf zum Sprung nach Schritt "W" veranlasst, ist in einer 4-Byte-Adresse gespeichert, die aus vier aufeinanderfolgenden Adressen 9810H bis 9813H besteht, der Adresse 980FH folgen.
  • Unter der Voraussetzung, daß der Steuerablauf ausgehend von Schritt 2802 als Folge des Ergebnisses der Unterscheidung des bedingten Abzweigs X nach Schritt 2805 springt, wird ein Befehl zur Unterscheidung eines bedingten Abzweigs Y ausgeführt (Schritt 2805). Dieser Befehl ist in einer 4-Byte-Adresse gespeichert, der aus vier aufeinanderfolgenden Adressen 9814H bis 9817H besteht, die der Adresse 9813H folgen.
  • Unter der Voraussetzung, daß der Steuerablauf ausgehend von Schritt 2805 infolge der Unterscheidung des bedingten Abzweigs Y mit Schritt 2806 fortfährt, wird eine Unterroutine D aufgerufen und ausgeführt (Schritt 2806). Ein Befehl zum Aufrufen und Ausführen der Unterroutine D ist in einer 4-Byte-Adresse gespeichert, die aus vier aufeinanderfolgenden Adressen 9818H bis 981BH besteht, die der Adresse 9817H folgen. Eine Kopfadressnummer der Unterroutine D wird beispielsweise als 4000H dargestellt.
  • In Schritt 2807 wird ein Befehl zur Unterscheidung eines bedingten Abzweigs Z ausgeführt. Dieser Befehl ist in einer 4-Byte-Adresse gespeichert, die aus vier aufeinanderfolgenden Adressen 981CH bis 981FH besteht, die der Adresse 981 BH folgen.
  • Unter der Voraussetzung, daß der Steuerablauf ausgehend von Schritt 2807 infolge der Unterscheidung des bedingten Abzweigs Z mit Schritt 2808 fortfährt, wird eine Unterroutine E aufgerufen und ausgeführt (Schritt 2808). Ein Befehl zum Aufrufen und Ausführen der Unterroutine E ist in einer 4-Byte-Adresse gespeichert, die aus vier aufeinanderfolgenden Adressen 9820H bis 9823H besteht, die der Adresse 981FH folgen. Eine Kopfadressnummer der Unterroutine E wird beispielsweise als 5000H dargestellt.
  • In Schritt 2808 springt der Steuerablauf nach Abschluss der Ausführung der Unterroutine E zu dem optionalen Schritt "W'. Ein Befehl, der den Steuerablauf zu dem Schritt "W" springen lässt, ist in einer 4-Byte-Adresse gespeichert, die aus vier aufeinanderfolgenden Adressen 9824H bis 9827H besteht, die der Adresse 9823H folgen.
  • Unter der Voraussetzung, daß der Steuerablauf infolge der Unterscheidung des bedingten Abzweigs Z ausgehend von Schritt 2807 zu Schritt 2809 springt, wird eine Unterroutine F aufgerufen und ausgeführt (Schritt 2809). Ein Befehl zum Aufrufen und Ausführen der Unterroutine F ist in einer 4-Byte-Adresse gespeichert, die aus vier aufeinanderfolgenden Adressen 9828H bis 982BH besteht, die der Adresse 9827H folgen. Eine Kopfadressnummer der Unterroutine F wird beispielsweise als 6000H dargestellt.
  • In Schritt 2809 springt der Steuerablauf nach Abschluss der Ausführung der Unterroutine F zu dem optionalen Schritt "W". Ein Befehl, der den Steuerablauf zu dem Schritt "W' springen lässt, ist in einer 4-Byte-Adresse gespeichert, die aus vier aufeinanderfolgenden Adressen 982CH bis 982FH besteht, die der Adresse 982BH folgen.
  • Unter der Voraussetzung, daß der Steuerablauf infolge der Unterscheidung des bedingten Abzweigs Y ausgehend von Schritt 2805 zu Schritt 2810 springt, wird eine Unterroutine G aufgerufen und ausgeführt (Schritt 2810). Ein Befehl zum Aufrufen und Ausführen der Unterroutine G ist in einer 4-Byte-Adresse gespeichert, die aus vier aufeinanderfolgenden Adressen 9830H bis 9833H besteht, die der Adresse 982FH folgen. Eine Kopfadressnummer der Unterroutine G wird beispielsweise als 7000H dargestellt.
  • In Schritt 2810 springt der Steuerablauf nach Abschluss der Ausführung der Unterroutine G zu dem optionalen Schritt "W'. Ein Befehl, der den Steuerablauf zu Schritt "W' springen lässt, ist in einer 4-Byte-Adresse gespeichert, die aus vier aufeinanderfolgenden Adressen 9834H bis 9837H besteht, die der Adresse 9833H folgen.
  • 29 zeigt schematisch den Zusammenhang zwischen den in dem Programmzähler 26 sukzessive erneuerten Adressen und den Befehlen, die in den Schritten 2801 bis 2810 der Verarbeitungsroutine nach 28 ausgeführt werden.
  • Während der Ausführung der Verarbeitungsroutine nach 28 werden in dem Mikrocomputer (1) vier aufeinanderfolgende 1-Byte-Adresselemente sukzessive in dem Programmzähler erneuert, während ein in einer 4-Byte-Adresse gespeicherter Befehl von der CU 20 decodiert wird. Beispielsweise werden die Adressen 9800H bis 9803H sukzessive in dem Programmcomputer erneuert, während die CU 20 auf die vier aufeinanderfolgenden Adressen 9800H bis 9803H zugreift, um den Befehl zum Aufrufen und Ausführen der Unterroutine H zu deco dieren. Während die Verarbeitungsroutine nach 28 ausgeführt wird, wird also eine 1-Byte-Adresse sukzessive in dem Programmzähler 28 erneuert, wie in 29 dargestellt ist.
  • Andererseits sind die Unterroutinen A, B, C, D, E, F und G, die in den Schritten 2801, 2803, 2804, 2806, 2808, 2809 bzw. 2810 ausgeführt werden, in dem ROM 12 gespeichert, wie schematisch in 30 dargestellt.
  • Wie aus 30 hervorgeht, ist die Unterroutine A in Form eines Programms gespeichert, das aus einer Reihe von Befehlen besteht, die in dem ROM 12 in der Kopfadresse 1000H und den nachfolgenden Adressen gespeichert sind. Die Unterroutine B ist als Programm gespeichert, das aus einer Reihe von Befehlen besteht, die in dem ROM 12 in der Kopfadresse 2000H und den nachfolgenden Adressen gespeichert sind. Die Unterroutine C ist als Programm gespeichert, das aus einer Reihe von Befehlen besteht, die in dem ROM 12 in der Kopfadresse 3000H und den nachfolgenden Adressen gespeichert sind. Die Unterroutine D ist als Programm gespeichert, das aus einer Reihe von Befehlen besteht, die in dem ROM 12 in der Kopfadresse 4000H und den nachfolgenden Adressen gespeichert sind. Die Unterroutine E ist als Programm gespeichert, das aus einer Reihe von Befehlen besteht, die in dem ROM 12 in der Kopfadresse 5000H und den nachfolgenden Adressen gespeichert sind. Die Unterroutine F ist als Programm gespeichert, das aus einer Reihe von Befehlen besteht, die in dem ROM 12 in der Kopfadresse 6000H und den nachfolgenden Adressen besteht. Schließlich ist die Unterroutine G als Programm gespeichert, das aus einer Reihe von Befehlen besteht, die in dem ROM 21 in der Kopfadresse 7000H und den nachfolgenden Adressen gespeichert sind.
  • In der Verarbeitungsroutine nach 28 wird beispielsweise, falls in dem Programm der Unterroutine B Fehler vorhanden sind, als vorstehend genanntes erstes Revisionsbeispiel ein Revisionsprogramm oder korrektes Programm, welches das Programm der Unterroutine B ersetzen soll, vorbereitet und in dem Programmspeicherbereich des EEPROMs 18 gespeichert (Schritt 2704). Zu diesem Zeitpunkt wird die erste 1-Byte-Adresse 9808H der 4-Byte-Adresse, in der der Befehl zum Aufrufen der Unterroutine B gespeichert ist, als Vergleichsadressdatum CA0[CA000, CA001, ... CA014, CA015] in die Vergleichsadress-Speicherzone CAZ0 des EEPROMs 18 geschrieben. Weiterhin wird eine Kopfadresse (z.B. 0600H) des korrekten Programms, wenn sie aus dem EEPROM 18 ausgelesen und in dem RAM 14 gespeichert wird, als Vektoradresse VA0[VA000, VA001, ... VA014, VA015] in die Vektoradress-Speicherzone VAZ0 geschrieben, die der Vergleichsadress-Speicherzone CAZ0 entspricht. Weiterhin wird das den Adressdaten CA0 und VA0 entsprechende Flagdatum FE0 auf 1 gesetzt.
  • In der Verarbeitungsroutine nach 28 wird beispielsweise, falls eine Zusatzroutine unmittelbar vor Ausführen der Unterroutine D ausgeführt werden soll, als vorstehend genanntes zweites Beispiel ein Zusatzprogramm für die Zusatzroutine vorbereitet und in dem Programmspeicherbereich des EEPROMs 18 gespeichert (Schritt 2704). Zu diesem Zeitpunkt wird die erste 1-Byte-Adresse 9818H der 4-Byte-Adresse, in der der Befehl zum Aufrufen der Unterroutine D gespeichert ist, als Vergleichsadressdatum CA1 [CA100, CA101, ... CA114, CA115] in die Vergleichsadress-Speicherzone CAZ1 des EEPROMs 18 geschrieben. Auch wird eine Kopfadresse (z.B. 0800H) des Zusatzprogramms, wenn sie aus dem EEPROM 18 ausgelesen und in dem RAM 14 gespeichert wird, als Vektoradresse VA1(VA100, VA101, ... VA114, VA115] in die Vektoradress-Speicherzone VAZ1 gespeichert, die der Vergleichsadress-Speicherzone CAZ1 entspricht. Weiterhin wird das Flagdatum FE1, das den Adressdaten CA1 und VA1 entspricht, auf 1 gesetzt.
  • In der Verarbeitungsroutine nach 28 wird beispielsweise, falls die Unterroutine G unmittelbar vor Ausführen der Unterroutine E ausgeführt werden soll, als vorstehend genanntes drittes Beispiel ein Aufrufprogramm zum Aufrufen der Unterroutine G vorbereitet und in dem Programmspeicherbereich des EEPROMs 18 gespeichert (Schritt 2704). Zu diesem Zeitpunkt wird die erste 1-Byte-Adresse 9820H der 4-Byte-Adresse, in der der Befehl zum Aufrufen der Unterroutine E gespeichert ist, als Vergleichsadressdatum CA2[CA200, CA201, ... CA214, CA215] in die Vergleichsadress-Speicherzone CAZ2 des EEPROMs 18 geschrieben. Auch wird eine Kopfadresse (z.B. 0A00H) des Aufrufprogramms, wenn sie aus dem EEPROM 18 ausgelesen und in dem RAM 14 gespeichert wird, als Vektoradresse VA2[VA200, VA201, ... VA214, VA215] in die Vektoradress-Speicherzone VAZ2 geschrieben, die der Vergleichsadress-Speicherzone CAZ2 entspricht. Weiterhin wird das Flagdatum FE2, das den Adressdaten CA2 und VA2 entspricht, auf 1 gesetzt.
  • Wie vorstehend erläutert, werden während der Systembetriebsroutine nach 27 das korrekte Programm, das Zusatzprogramm und das Aufrufprogramm aus dem Programmspeicherbereich des EEPROMs 18 ausgelesen und in den Programmspeicherbereich des RAMs 14 geschrieben (Schritt 2707). Jedes dieser Revisionsprogramme wird als Unterbrechungsroutine in dem RAM 14 gespeichert, wie schematisch in 31 dargestellt ist. Insbesondere ist das korrekte Programm in dem RAM 14 als Unterbrechungsroutine J in einer Reihe von Adressen gespeichert, die die Kopfadresse 0600H enthält, unter der ein erster Befehl des korrekten Programms gespeichert ist. Das Zusatzprogramm ist in dem RAM 14 als Unterbrechungsroutine K in einer Reihe von Adressen gespeichert, die die Kopfadresse 0800H enthält, unter der ein erster Befehl des Zusatzprogramms gespeichert ist. Schließlich ist das Aufrufprogramm in dem RAM 14 als Unterbrechungsroutine L in einer Reihe von Adressen gespeichert, die die Kopfadresse 0A00H enthält, unter der ein erster Befehl des Aufrufprogramms gespeichert ist.
  • Während der Systembetriebsroutine nach 27 werden die jeweiligen Vergleichsadressdaten CA0, CA1, ... CA6 und CA7 aus den Vergleichsadress-Speicherzonen CAZ0, CAZ1, ... CAZ6 und CAZ7 des EEPROMs 18 ausgelesen und dann in die CARs 50 der Schaltungselemente 48 geschrieben, die jeweiligen Vektoradressdaten VA0, VA1, ... VA6 und VA7 aus den Vektoradress-Speicherzonen VAZ0, VAZ1, ... VAZ6 und VAZ7 des EEPROMs 18 ausgelesen und dann in die VARs 70 der Schaltungselemente 48 geschrieben sowie die jeweiligen Flagdaten FE0, FE1, ... FE6 und FE7 aus den acht Flagdaten-Speicherzonen des EEPROMs 18 ausgelesen und dann in die ACIARs 68 der Schaltungselemente 48 geschrieben (Schritt 2708).
  • Selbstredend entsprechen in diesem Fall die jeweiligen Vergleichsadressdaten CA0, CA1 und CA2 den Adressen 9808H, 9818H und 9820H und die entsprechenden Vektoradressdaten VA0, VA1 und VA2 den Adressen 0600H, 0800H und 0A00H, wobei lediglich die Flagdaten FE0, FE1 und FE2 auf 1 gesetzt werden. Andererseits sind die Vergleichsadressdaten CA3, CA4, CA5, CA6 und CA7 jeweils als bestimmte 16-Bit-Daten in einem CAR 50 eines entsprechenden Schaltungselementes (483 , 484 , 485 , 486 , 487 ) und die Vektoradressdaten VA3, VA4, VA5, VA6 und VA7 jeweils als bestimmte 16-Bit-Daten in einem VAR 70 eines entsprechenden Schaltungselementes (483 , 484 , 485 , 486 , 487 ) gehalten, wobei die Flagdaten FE3, FE4, FE5, FE6 und FE7 jeweils auf 0 gesetzt sind.
  • Der auf dem ersten Revisionsbeispiel beruhende Betrieb der CPU 10 wird unten erläutert.
  • Eine Adresse wird sukzessive in dem Programmzähler 26 erneuert. Erreicht eine erneuerte Adresse die erste 1-Byte-Adresse 9808H der 4-Byte-Adresse, unter der der Befehl zum Aufrufen der Unterroutine B gespeichert ist, d.h. stimmt die erneuerte Adresse 9808H mit dem in dem CAR 50 des Schaltungselementes 480 gespeicherten Vergleichsadressdatum CAO überein, so wird ein Adress-Koinzidenz-Signal (AC) als Hochpegelsignal von dem Adressvergleicher 50 des Schaltungselementes 480 ausgegeben, wobei ein Adress-Koinzidenz-Unterbrechungsanforderungssignal (ACIR) von dem Ausgangsanschluss Q des Flipflops 62 ausgegeben wird. Auf diese Weise wird ein Adress-Koinzidenz-Unterbrechungssignal von dem UND-Gatter 66 des Schaltungselementes 480 ausgegeben, da ein Adress-Koinzidenz-Unterbrechungsfreigabesignal (ACTA) infolge des auf 1 gesetzten Flagdatums FE0 von dem ACIAR 68 an das UND-Gatter 66 ausgegeben wird.
  • Wird das von dem UND-Gatter 66 des Schaltungselementes 480 ausgegebene ACI-Signal der Unterbrechungssteuerung 40 zugeführt, so wird die sequentielle Unterbrechungs-Übergangs-Verarbeitung (21) von der CU 20 der CPU 10 ausgeführt, ohne auf die 4-Byte-Adresse (9808H bis 980BH) zuzugreifen, unter der der Befehl zum Aufrufen der Unterroutine B gespeichert ist. Die Adresse 9808H des Programmzählers 26 ist nämlich in dem Stapelspeicherbereich des RAMs 14 (12) temporär als Rücksprungadresse gespeichert, und die verschiedenen Flagdaten (z.B. das Übertragflag, das Überlaufflag, das Nullflag, das Vorzeichenflag etc.) des Statusregisters 38 sind in dem Stapelspeicherbereich des RAMs 14 temporär gespeichert. Weiterhin wird das in dem VAR 70 des Schaltungselementes 48 gehaltene Vektoradressdatum VA0 (0600H) in dem Programmzähler 26 gesetzt. Auf diese Weise erfolgt durch die CU 20 ein Zugriff auf die Kopfadresse 0600H der Unterbrechungsroutine J, was zu einer Ausführung der Unterbrechungsroutine J führt.
  • Wie vorher erläutert, wird in der Ausführung der sequentiellen Unterbrechungs-Übergangs-Verarbeitung (21) das in dem Statusregister 38 gehaltene Unterberechungsfreigabeflag auf 0 gesetzt, womit alle Unterbrechungen unterbunden sind, mit Ausnahme einer nichtmaskierbaren Unterbrechung (NMI) und einer Softwareunterbrechung.
  • In der Ausführung der Unterbrechungsroutine J wird zunächst in Schritt J1 das in dem ACICR 74 des Schaltungselementes 480 gehaltene Flagdatum FC0 (13) auf 1 gesetzt, so daß ein Löschsignal CL von dem ACICR 74 an die Rücksetzschaltung 72 ausgegeben wird. Wird das Löschsignal CL der Rücksetzschaltung 72 zugeführt, so wird in vorstehend erläuterter Weise (22 und 23) ein Rücksetzsignal RE2 von der Rücksetzschaltung 72 an den Rücksetzanschluss R des Flipflops 63 ausgegeben, wobei das Flipflop 62 entsperrt wird, so daß die Ausgabe des ACIR-Signals aus dem Ausgangsanschluss Q des Flipflops 62 zum Stillstand kommt. Nach Ausgabe des Rücksetzsignals RE2 gibt die Rücksetzschaltung 72 ein Rücksetzsignal RE3 an das ACICR 74 aus, wodurch das Flagdatum FC0 des ACICR 74 von 1 auf 0 zurückgeführt wird.
  • In Schritt J2 wird eine Revisionsroutine gemäß dem korrekten Programm ausgeführt, das die die Fehler enthaltende Unterroutine B ersetzt. Ist die Ausführung der Revisionsroutine abgeschlossen, so fährt der Steuerablauf mit Schritt J3 fort, in dem verschiedene Statusinformationselemente zurückgeführt werden. So werden verschiedene Flagdaten, die temporär in dem Stapelspeicherbereich des RAMs 14 gespeichert sind, zu dem Statusregister 38 zurückgeführt, und das in dem Statusregister 38 gehaltene Unterbrechungsfreigabeflag wird auf 1 gesetzt, womit wieder alle Unterbrechungen erlaubt sind. Weiterhin wird in Schritt J3 die Rücksprungadresse, die temporär in dem Stapelspeicherbereich des RAMs 14 gespeichert ist, weggeworfen, ohne wieder dem Programmzähler 26 zugeführt zu werden.
  • In Schritt J4 springt der Steuerablauf zu der ersten 1-Byte-Adresse 980CH der 4-Byte-Adresse, unter der der Befehl zum Aufrufen der Unterroutine C gespeichert ist, wobei die CU 20 auf die Adresse 980CH zugreift, was zur Ausführung der Unterroutine C führt. Zu diesem Zeitpunkt ist selbstredend in dem Programmzähler 26 die Adresse 980CH gesetzt.
  • Werden also nach der Herstellung des Mikrocomputers (1) Fehler in einem der ROM-gespeicherten Programme gefunden, so kann eine virtuelle Revision des die Fehler enthaltenden Programms vorgenommen werden, wodurch eine korrekte Funktion der ROM-gespeicherten Programme insgesamt möglich wird.
  • Im folgenden wird ein auf dem zweiten Revisionsbeispiel basierender Betrieb der CPU 10 erläutert.
  • Erreicht eine Adresse, die in dem Programmzähler 26 sukzessive erneuert wird, die erste 1-Byte-Adresse 9818H der 4-Byte-Adresse, unter der der Befehl zum Aufrufen der Unterroutine D gespeichert ist, d.h. stimmt die erneuerte Adresse 9818H mit dem in dem CAR 50 des Schaltungselementes 48, gespeicherten Vergleichsadressdatum CA1 überein, so wird ein Adress-Koinzidenz-Signal (AC) als Hochpegelsignal von dem Adressvergleicher 50 des Schaltungselementes 481 ausgegeben, wodurch ein Adress-Koinzidenz-Unterbrechungsanforderungssignal (ACIR) aus dem Ausgangsanschluss Q des Flipflops 62 ausgegeben wird. Auf diese Weise wird ein Adress-Koinzidenz-Unterbrechungssignal (ACI) von dem UND-Gatter 66 des Schaltungselementes 48, ausgegeben, da das ACIAR 68 infolge des auf 1 eingestellten Flagdatums FEI ein Adress-Koinzidenz-Unterbrechungsfreigabesignal (ACTA) an das UND-Gatter 66 ausgibt.
  • Wird das von dem UND-Gatter 66 des Schaltungselementes 48, ausgegebene ACI-Signal der Unterbrechungssteuerung 40 zugeführt, so führt die CU 20 der CPU 10 eine sequentielle Unterbrechungs-Übergangs-Verarbeitung (21) aus, ohne auf die 4-Byte-Adresse (9818H bis 981BH) zuzugreifen, unter der der Befehl zum Aufrufen der Unterroutine D gespeichert ist. Die Adresse 9818H des Programmzählers 26 ist nämlich in dem Stapelspeicherbereich des RAMs 14 ( 12) temporär als Rücksprungadresse gespeichert, und die verschiedenen Flagdaten, z.B. das Übertragflag, das Überlaufflag, das Nullflag, das Vorzeichenflag etc.) des Statusregisters 38 sind temporär in dem Stapelspeicherbereich des RAMs 14 gespeichert. Weiterhin wird das in dem VAR 70 des Schaltungselementes 48, gehaltene Vektoradressdatum VA1 (0800H) in dem Programmzähler 26 gesetzt. So greift die CU 20 auf die Kopfadresse 0800H der Unterbrechungsroutine K zu, was zur Ausführung der Unterbrechungsroutine K führt.
  • Ähnlich wie in dem ersten Revisionsbeispiel wird in der Ausführung der sequentiellen Unterbrechungs-Übergangs-Verarbeitung (21) das in dem Statusregister 38 gehaltene Unterbrechungsfreigabeflag auf 0 gesetzt, wodurch alle Unterbrechungen mit Ausnahme einer nichtmaskierbaren Unterbrechung (NMI) und einer Softwareunterbrechung unterbunden sind.
  • In der Ausführung der Unterbrechungsroutine K wird zunächst in Schritt K1 das in dem ACICR 74 des Schaltungselementes 48, gespeicherte Flagdatum FC1 ( 14) auf 1 gesetzt, so daß ein Löschsignal CL von dem ACICR 74 an die Rücksetzschaltung 72 ausgegeben wird. Wird das Löschsignal CL der Rücksetzschaltung 72 zugeführt, so wird in vorstehend erläuterter Weise (22 und 23) ein Rücksetzsignal RE2 von der Rücksetzschaltung 72 an den Rücksetzanschluss R des Flipflops 63 ausgegeben, wobei das Flipflop 62 entsperrt wird, so daß die Ausgabe des ACIR-Signals aus dem Ausgangsanschluss Q des Flipflops 62 zum Stillstand kommt. Nach Ausgabe des Rücksetzsignals RE2 wird von der Rücksetzschaltung 72 ein Rücksetzsignal RE3 an das ACICR 74 ausgegeben, wodurch das Flagdatum FEI des ACICR 74 von 1 auf 0 zurückgeführt wird.
  • In Schritt K2 wird eine Revisions- oder Zusatzroutine gemäß dem Zusatzprogramm ausgeführt. Ist die Ausführung der Zusatzroutine abgeschlossen, so fährt der Steuerablauf mit Schritt K3 fort, in dem das in dem ACIPR 58 des Schaltungselementes 48, gehaltene Flagdatum FD1 auf 1 gesetzt wird.
  • Anschließend führt die CU der CPU 10 die sequentielle Unterbrechungs-Rücksprung-Verarbeitung (24) auf Grundlage eines Unterbrechungs-Rücksprung-Befehls aus, der als letzter Befehl in das Zusatzprogramm geschrieben ist. Die verschiedenen in dem Stapelspeicherbereich des RAMs 14 temporär gespeicherten Flagdaten werden in das Statusregister 38 zurückgeführt, und das in dem Statusregister 38 gehaltene Unterbrechungsfreigabeflag wird auf 1 gesetzt, wodurch wieder alle Unterbrechungen erlaubt sind. Die in dem Stapelspeicherbereich des RAMs 14 temporär gespeicherte Rücksprungadresse 9818H wird in den Programmzähler 26 zurückgeführt und zurückgesetzt, was zu einer Ausführung der Unterroutine D führt.
  • Wird die Rücksprungadresse 9818H in den Programmzähler 26 zurückgeführt und dort gesetzt, so wird ein Adress-Koinzidenz-Signal (AC) wieder von dem Adressvergleicher 50 des Schaltungselementes 481 ausgegeben, da Übereinstimmung zwischen der Rücksprungadresse 9818H und dem in dem CAR 50 des Schaltungselementes 48, gehaltenen Vergleichsadressdatum CA1 besteht. Jedoch wird eine Ausgabe eines Adress-Koinzidenz-Unterbrechungsanforderungssignals (ACIR) aus dem Ausgangsanschluss Q des Flipflops 62 verhindert, da das Flagdatum FD1 des ACIPR 58 auf 1 gesetzt ist (Schritt K3). Auf diese Weise wird eine Ausgabe eines Adress-Koinzidenz-Unterbrechungssignals (ACI) aus dem UND-Gatter 66 des Schaltungselementes 481 der Unterbrechungssteuerung 40 verboten.
  • Wird die Rücksprungadresse 9818H in dem Programmzähler 26 durch die Adresse 9819H erneuert, so kommt die Ausgabe des AC-Signals aus dem Adressvergleicher 50 des Schaltungselementes 481 zum Stillstand, wodurch das Flagdatum FD1 auf 0 zurückgesetzt wird, wie aus der Erläuterung unter Bezugnahme auf die 25 und 26 hervorgeht.
  • Im folgenden wird ein auf dem dritten Revisionsbeispiel basierender Betrieb der CPU 10 erläutert.
  • Erreicht eine Adresse, die in dem Programmzähler 26 sukzessive erneuert wird, die erste 1-Byte-Adresse 9820H der 4-Byte-Adresse, unter der der Befehl zum Aufrufen der Unterroutine E gespeichert ist, d.h. stimmt die erneuerte Adresse 9820H mit dem in dem CAR 50 des Schaltungselementes 482 gehaltenen Vergleichsadressdatum CA2 überein, so wird ein Adress-Koinzidenz-Signal (AC) als Hochpegelsignal von dem Adressvergleicher 50 des Schaltungselementes 482 ausgegeben, wodurch der Ausgangsanschluss Q des Flipflops 62 ein Adress-Koinzidenz-Unterbrechungsanforderungssignal (ACIR) ausgibt. Auf diese Weise wird ein Adress-Koinzidenz-Unterbrechungssignal (ACI) von dem UND-Gatter 66 des Schaltungselementes 482 ausgegeben, da das ACIAR 68 wegen des auf 1 gesetzten Flagdatums FE2 ein Adress-Koinzidenz-Unterbrechungsfreigabesignal (ACTA) an das UND-Gatter 66 ausgibt.
  • Wird das von dem UND-Gatter 66 des Schaltungselementes 48, ausgegebene ACI-Signal der Unterbrechungssteuerung 40 zugeführt, so führt die CU 20 der CPU 10 die sequentielle Unterbrechungs-Übergangs-Verarbeitung (21) aus, ohne auf die 4-Byte-Adresse (9820H bis 9823H) zuzugreifen, unter der der Befehl zum Aufrufen der Unterroutine E gespeichert ist. Die Adresse 9820H des Programmzählers 26 ist nämlich in dem Stapelspeicherbereich des RAMs 14 ( 12) temporär als Rücksprungadresse gespeichert, und die verschiedenen Flagdaten (z.B. das Übertragflag, das Überlaufflag, das Nullflag, das Vorzeichenflag etc.) des Statusregisters 38 sind temporär in dem Stapelspeicherbereich des RAMs 14 gespeichert. Außerdem wird das in dem VAR 70 des Schaltungselementes 482 gehaltene Vektoradressdatum (0A00H) in dem Programmzähler 26 gesetzt. Die CU 20 greift so auf die Kopfadresse 0A00H der Unterbrechungsroutine L zu, was zu einer Ausführung der Unterbrechungsroutine L führt.
  • Ähnlich wie bei dem ersten Revisionsbeispiel wird in der Ausführung der sequentiellen Unterbrechungs-Übergangs-Verarbeitung (21) das in dem Statusregister 38 gehaltene Unterbrechungsfreigabeflag auf 0 gesetzt, womit alle Unterbrechungen unterbunden sind, mit Ausnahme einer nichtmaskierbaren Unterbrechung (NMI) und einer Softwareunterbrechung.
  • In der Ausführung der Unterbrechungsroutine L wird zunächst in Schritt L1 das in dem ACICR 74 des Schaltungselementes 482 gehaltene Flagdatum FC2 (15) auf 1 gesetzt, so daß das ACICR 74 ein Löschsignal CL an die Rücksetzschaltung 72 ausgibt. Wird das Löschsignal CL der Rücksetzschaltung 72 zugeführt, so gibt in vorstehend erläuterter Weise (22 und 23) die Rücksetzschaltung 72 ein Rücksetzsignal RE2 an den Rücksetzanschluss R des Flipflops 63 aus, wodurch das Flipflop 62 entsperrt wird, so daß die Ausgabe des ACIR-Signals aus dem Ausgangsanschluss Q des Flipflops 62 zum Stillstand kommt. Nach Ausgabe des Rücksetzsignals RE2, gibt die Rücksetzschaltung 72 ein Rücksetzsignal RE3 an das ACICR 74 aus, wodurch das Flagdatum FC2 des ACICR 74 von 1 auf 0 zurückgesetzt wird.
  • In Schritt L2 wird die Unterroutine G mit ihrer Kopfadresse 7000H aufgerufen und ausgeführt. Ist die Ausführung der Unterroutine G abgeschlossen, so fährt der Steuerablauf mit Schritt L3 fort, in dem das in dem ACIPR 58 des Schaltungselementes 482 gehaltene Flagdatum FD2 auf 1 gesetzt wird.
  • Anschließend führt die CU 20 der CPU 10 die sequentielle Unterbrechungs-Rücksprung-Verarbeitung (24) auf Grundlage eines Unterbrechungs-Rücksprung-Befehls aus, der als letzter Befehl in das Aufrufprogramm geschrieben ist. Die verschiedenen in dem Stapelspeicherbereich des RAMs 14 temporär gespeicherten Flagdaten werden nämlich in das Statusregister 38 zurückgeführt, und das in dem Statusregister 38 gehaltene Unterbrechungsfreigabeflag wird auf 1 gesetzt, wodurch wieder alle Unterbrechungen erlaubt sind. Weiterhin wird die in dem Stapelspeicherbereich des RAMs 14 temporär gespeicherte Rücksprungadresse 9820H in den Programmzähler 26 zurückgeführt und dort gesetzt, was zu einer Ausführung der Unterroutine E führt.
  • Wird die Rücksprungadresse 9820H in den Programmzähler 26 zurückgeführt und dort gesetzt, so wird ähnlich dem zweiten Revisionsbeispiel wieder ein Adress-Koinzidenz-Signal (AC) von dem Adressvergleicher 50 des Schaltungselementes 482 ausgegeben, da Übereinstimmung zwischen der Rücksprungadresse 9820H und dem in dem CAR 50 des Schaltungselementes 482 gehaltenen Vergleichsadressdatum besteht. Eine Ausgabe eines Adress-Koinzidenz-Unterbrechungsanforderungssignals (ACIR) aus dem Ausgangsanschluss Q des Flipflops 62 wird jedoch verhindert, da das Flagdatum FD2 des ACIPR 58 (Schritt L3) auf 1 gesetzt ist. Auf diese Weise ist die Ausgabe eines Adress-Koinzidenz-Unterbrechungssignals aus dem UND-Gatter 66 des Schaltungselementes 482 an die Unterbrechungssteuerung 40 unterbunden.
  • Wird die Rücksprungadresse 9820H in dem Programmzähler 26 durch die Adresse 9821H erneuert, so kommt die Ausgabe des AC-Signals aus dem Adressvergleicher 50 des Schaltungselementes 482 zum Stillstand, wodurch das Flagdatum FD2 auf 0 zurückgesetzt wird, wie aus der Erläuterung unter Bezugnahme auf die 25 und 26 hervorgeht.
  • Obgleich das ACIMR 64 nicht direkt an der Revision der ROM-gespeicherten Programme teilnimmt, kann dieses Register (ACIMR) vorteilhaft eingesetzt werden, um beispielsweise an den ROM-gespeicherten Programme eine Fehlersuche/-korrektur vorzunehmen. Insbesondere werden, bevor an den ROM-gespeicherten Programmen die Fehlersuche/-korrektur ausgeführt wird, aus den Adressen der ROM-gespeicherten Programme in geeigneter Weise acht Adressen ausgewählt und in die jeweiligen ACRs 50 der Schaltungselemente 48n ge schrieben. Während der Ausführung der Fehlersuche/-korrektur der ROM-gespeicherten Programme wird überwacht, ob die in den acht ACIMRs 64 gehaltenen acht Flagdaten FM0, FM1, ... FM6 und FM7 jeweils von 0 nach 1 geändert worden sind. Auf diese Weise kann einfach und schnell bestätigt werden, ob die CU 20 der CPU 10 auf jede der geeignet ausgewählten Adressen zugegriffen hat, was zu einer Vereinfachung der Ausführung der Fehlersuche/-korrektur der ROM-gespeicherten Programme führt. Während der Ausführung der Fehlersuche/-korrektur der ROM-gespeicherten Programme werden selbstverständlich alle Flagdaten FE0, FE1, ... FE6 und FE7 der ACIARs 68 auf 0 gesetzt, wodurch die Ausgabe eines Adress-Koinzidenz-Unterbrechungssignals (ACI) aus jedem der UND-Gatter 66 der Schaltungselemente 48 unterbunden wird.
  • 32 zeigt eine Abwandlung des Schaltungselementes (48n ), das in 2 stellvertretend dargestellt ist. In dieser Abwandlung enthält jedes der acht Schaltungselemente 48n eine Adress-Latchschaltung 76, durch die der Adressvergleicher 52 mit einem Adressbus verbunden ist, der sich zum Programmzähler 26 erstreckt. Eine von dem Programmzähler 26 sukzessiv erneuerte Adresse wird aus dem Adressbus durch die Adress-Latchschaltung 76 wiedergewonnen und dann an den Adressvergleicher 52 ausgegeben. Abgesehen davon, ist die Abwandlung nach 32 im wesentlichen identisch mit dem in 2 gezeigten Schaltungselement (48n ).
  • 33 zeigt stellvertretend eines von acht Schaltungselementen 80n , die in einem zweiten Ausführungsbeispiel des erfindungsgemäßen Mikrocomputers verwendet werden. Im zweiten Ausführungsbeispiel der Erfindung enthält nämlich die in 1 gezeigte Adress-Koinzidenz-Unterbrechungs-Steuerung (ACIC) 48 die Schaltungselemente 800 , 801 , ... 806 und 807 , die im wesentlichen identisch sind. In 33 sind Merkmale, die denen der 2 entsprechen, mit denselben Bezugszeichen versehen.
  • Ähnlich wie bei dem ersten Ausführungsbeispiel entspricht die Anzahl der Schaltungselemente 80n einer Anzahl wahlfreier Stellen, an denen jeweils die ROM- gespeicherten Programme revidiert werden sollen. In dem zweiten Ausführungsbeispiel ist es so möglich, die ROM-gespeicherten Programme an acht wahlfreien Programmstellen zu revidieren.
  • In dem zweiten Ausführungsbeispiel zeichnet sich die CPU 10 durch ein temporäres Vektoradress-Register (VATR) 78 aus, das einen Teil der ACIC 48 bildet und mit den Vektoradress-Registern (VAR) 70 der Schaltungselemente 80n verbunden ist. Das VATR 78 ist als 16-Bit-Register ausgebildet, dessen Bitzahl gleich der einer Adresse des ROMs 12 ist. Das VATR 78 ist in geeigneter Weise über einen Steuerbus, einen Adressbus und einen Datenbus an die Elemente des Mikrocomputers angeschlossen, wie in 33 gezeigt ist, und wird durch ein Rücksetzsignal initialisiert, wenn die CPU 10 eingeschaltet wird.
  • In dem zweiten Ausführungsbeispiel können Revisionen in den ROM-gespeicherten Programmen im wesentlichen in gleicher Weise wie bei dem ersten Ausführungsbeispiel vorgenommen werden, abgesehen davon, daß jedes Mal eine sequentielle Unterbrechungs-Übergangs-Verarbeitung gemäß einem in 34 gezeigten Flußdiagramm ausgeführt wird, wenn das UND-Gatter 66 ein Adress-Koinzidenz-Unterbrechungssignal (ACI) an die Unterbrechungssteuerung 40 ausgibt. In dem zweiten Ausführungsbeispiel können also die erste, die zweite und die dritte Revision, die vorstehend unter Bezugnahme auf die 28 und 29 erläutert wurden, in die ROM-gespeicherten Programme eingearbeitet werden, sofern im Vorfeld eine Unterbrechungs-Verarbeitungsunterroutine M als Programm gespeichert worden ist, das aus einer Reihe von Befehlen besteht, die in dem ROM 12 unter einer Kopfadresse (z.B. 8000H) und nachfolgenden Adressen gespeichert sind, wie in 35 gezeigt ist.
  • Ein auf dem ersten Revisionsbeispiel basierender Betrieb der CPU 10 gemäß dem zweiten Ausführungsbeispiel wird im folgenden erläutert.
  • Eine Adresse wird sukzessive in dem Programmzähler 26 erneuert. Erreicht die erneuerte Adresse die erste 1-Byte-Adresse 9808H der 4-Byte-Adresse, unter der der Befehl zum Aufrufen der Unterroutine B gespeichert ist, d.h. stimmt die erneuerte Adresse 9808H mit dem in dem CAR 50 des Schaltungselementes 800 gehaltenen Vergleichsadressdatum CA0 über, so wird ein Adress-Koinzidenz-Unterbrechungssignal (AC) als Hochpegelsignal von dem Adressvergleicher 50 des Schaltungselementes 800 ausgegeben, wodurch der Ausgangsanschluss Q des Flipflops 62 ein Adress-Koinzidenz-Unterbrechungsanforderungssignal (ACIR) ausgibt. Auf diese Weise wird von dem UND-Gatter 66 des Schaltungselementes 800 ein Adress-Koinzidenz-Unterbrechungssignal (ACI) ausgegeben, da das ACIAR 68 wegen des auf 1 gesetzten Flagdatums FE0 ein Adress-Koinzidenz-Unterbrechungsfreigabesignal (ACTA) an das UND-Gatter 66 ausgibt.
  • Wird das von dem UND-Gatter 66 des Schaltungselementes 800 ausgegebene ACI-Signal der Unterbrechungssteuerung 40 zugeführt, so führt die CU 20 der CPU 10 die sequentielle Unterbrechungs-Übergangs-Verarbeitung (34) aus, ohne auf die 4-Byte-Adresse (9808H bis 980BH) zuzugreifen, unter der der Befehl zum Aufruf der Unterroutine B gespeichert ist.
  • Insbesondere wird in Schritt 3401 eine Adresse des Programmzählers 26 und deshalb die Adresse 9808H temporär als Rücksprungadresse in dem Stapelspeicherbereich des RAM 14 gespeichert. Dann werden in Schritt 3402 die verschiedenen Flagdaten (wie das Übertragflag, das Überlaufflag, das Nullflag, das Vorzeichenflag etc.) des Statusregisters 38 temporär in dem Stapelspeicherbereich des RAM 14 gespeichert. In Schritt 3403 wird ferner das in dem Statusregister 38 gehaltene Unterbrechungsfreigabefiag auf 0 gesetzt, wodurch alle Unterbrechungen mit Ausnahme einer nichtmaskierbaren Unterbrechung (NMI) und einer Softwareunterbrechung unterbunden sind.
  • In Schritt 3404 wird das in dem VAR 70 des Schaltungselementes 800 gehaltene Vektoradressdatum VA0 (0600H) in dem VATR 78 gesetzt, da das ACI-Signal dem VAR 70 des Schaltungselementes 800 von dem UND-Gatter 66 zugeführt wird. Dann wird in Schritt 3405 eine Vektoradresse, die der betreffenden Adress-Koinzidenz-Unterbrechung entspricht, aus einem in dem ROM 12 festgelegten Unterbrechungs-Vektorbereich ausgewählt und dann in dem Programmzähler 26 gesetzt. Die Kopfadresse 8000H des Programms der Unterbrechungsverarbeitungs-Unterroutine M (35) wird nämlich als Vektoradresse in dem Programmzähler 26 gesetzt. In dem Unterbrechungs-Vektorbereich des ROM 12 sind verschiedene Vektoradressen gespeichert.
  • Ist die Vektoradresse 8000H in dem Programmzähler 26 gesetzt, so greift die CU 20 der CPU 10 auf die Vektoradresse 8000H zu (Schritt 3406), wodurch der Steuerablauf zur Vektoradresse 8000H springt, was zu einer Ausführung der Unterbrechungsverarbeitungs-Unterroutine M führt.
  • Wie in 35 gezeigt, wird in der Unterbrechungsverarbeitungs-Unterroutine M ein Befehl ausgeführt, der den Steuerablauf zu einer in dem temporären Vektoradress-Register (VATR) 80 gesetzten Vektoradresse springen lässt, wodurch die Adresse des Programmzählers durch die Vektoradresse erneuert wird. In diesem ersten Revisionsbeispiel wird nämlich die in dem VATR 80 gehaltene Vektoradresse VA0 (0600H) in dem Programmzähler 26 gesetzt. Auf diese Weise greift die CU 20 auf die Kopfadresse 0600H der Unterbrechungsroutine J zu, was zu einer Ausführung der Unterbrechungsroutine J führt. Die Revisionsroutine wird also gemäß dem korrekten Programm ausgeführt (Schritt J2), das die die Fehler enthaltende Unterroutine B ersetzt.
  • Nach Abschluss der Unterbrechungsroutine J springt der Steuerablauf zu der ersten 1-Byte-Adresse 980CH der 4-Byte-Adresse, unter der der Befehl zum Aufruf der Unterroutine C gespeichert ist, wodurch die CU 20 auf die Adresse 980CH zugreift, was zu einer Ausführung der Unterroutine C führt. Zu diesem Zeitpunkt ist in dem Programmzähler 26 selbstredend auf die Adresse 980CH eingestellt.
  • Werden also nach Herstellung des Mikrocomputers (1) in einem der ROMgespeicherten Programme Fehler gefunden, so ist es ähnlich wie in dem ersten Ausführungsbeispiel möglich, virtuelle eine Revision des die Fehler enthaltenden Programms vorzunehmen, wodurch eine korrekte Funktion der ROMgespeicherten Programme insgesamt möglich wird.
  • Im folgenden wird ein auf dem zweiten Revisionsbeispiel basierender Betrieb der CPU 10 erläutert.
  • Erreicht eine Adresse, die in dem Programmzähler 26 sukzessive erneuert wird, die erste 1-Byte-Adresse 9818H der 4-Byte-Adresse, unter der der Befehl zum Aufruf der Unterroutine D gespeichert ist, d.h. stimmt die erneuerte Adresse 9818H mit dem in dem CAR 50 der Schaltungselemente 80, gehaltenen Vergleichsadressdatum CA1 überein, so gibt der Adressvergleicher 50 des Schaltungselementes 801 ein Adress-Koinzidenz-Signal (AC) aus, wodurch ein Adress-Koinzidenz-Unterbrechungsanforderungssignal (ACIR) aus dem Ausgangsanschluss Q des Flipflops 62 ausgegeben wird. Das UND-Gatter 66 des Schaltungselementes 80, gibt so ein Adress-Koinzidenz-Unterbrechungssignal (ACI) aus, da das ACIAR wegen des auf 1 eingestellten Flagdatums FEI ein Adress-Koinzidenz-Unterbrechungsfreigabesignal (ACTA) an das UND-Gatter 66 ausgibt.
  • Wird das von dem UND-Gatter 66 des Schaltungselementes 801 ausgegebene ACI-Signal der Unterbrechungssteuerung 40 zugeführt, so führt die CU 20 der CPU 10 die sequentielle Unterbrechungs-Übergangs-Verarbeitung (34) aus, ohne auf die 4-Byte-Adresse (9818H bis 981BH) zuzugreifen, unter der der Befehl zum Aufruf der Unterroutine D gespeichert ist.
  • Ähnlich dem vorstehend erläuterten Fall wird in Schritt 3401 eine Adresse des Programmzählers 26 und deshalb die Adresse 9818H in dem Stapelspeicherbereich des RM 14 temporär als Rücksprungadresse gespeichert. Dann werden in Schritt 3402 die verschiedenen Flagdaten (wie das Übertragflag, das Überlaufflag, das Nullflag, das Vorzeichenflag etc.) des Statusregisters 38 temporär in dem Stapelspeicherbereich des RAM 14 gespeichert. In Schritt 3403 wird ferner das in dem Statusregister 38 gehaltene Unterbrechungsfreigabeflag auf 0 gesetzt, wodurch alle Unterbrechungen mit Ausnahme einer nichtmaskierbaren Unterbrechung (NMI) und einer Softwareunterbrechung unterbunden sind.
  • In Schritt 3404 wird das in dem VAR 70 des Schaltungselementes 801 gehaltene Vektoradressdatum VA1 (0800H) in dem VATR gesetzt, da das Ad-Signal von dem UND-Gatter 66 an das VAR 70 des Schaltungselementes 801 ausgegeben wird. Dann wird in Schritt 3405 eine Vektoradresse, die der betreffenden Adress-Koinzidenz-Unterbrechung entspricht, aus dem in dem ROM 12 festgelegten Unterbrechungs-Vektorbereich ausgewählt und dann in dem Programmzähler 26 gesetzt. Die Kopfadresse 8000H des Programms der Unterbrechungsverarbeitungs-Unterroutine M (35) wird nämlich als Vektoradresse in dem Programmzähler 26 gesetzt. In dem Unterbrechungs-Vektorbereich des ROM 12 sind verschiedene Vektoradressen gespeichert.
  • Wird die Vektoradresse 8000H in dem Programmzähler 26 gesetzt, so greift die CU 20 der CPU 10 auf die Vektoradresse 8000H zu (Schritt 3406), wodurch der Steuerablauf an die Vektoradresse 8000H springt, was zu einer Ausführung der Unterbrechungsverarbeitungs-Unterroutine M führt.
  • Wie in 35 gezeigt, wird in der Unterbrechungsverarbeitungs-Unterroutine M ein Befehl ausgeführt, der den Steuerablauf an eine in dem temporären Vektoradress-Register (VATR) 80 gesetzte Vektoradresse springen lässt, wodurch die Adresse des Programmzählers 26 durch die Vektoradresse ersetzt wird. In diesem zweiten Revisionsbeispiel wird nämlich die in dem VATR 80 gehaltene Vektoradresse VA1 (0800H) in dem Programmzähler 26 gesetzt. Die CU 20 greift so auf die Kopfadresse 0800H der Unterbrechungsroutine K zu, was zu einer Ausführung der Unterbrechungsroutine K führt.
  • Nach Ausführen der Unterbrechungsroutine K erfolgt die sequentielle Unterbrechungs-Rücksprung-Verarbeitung (24) im wesentlichen in der Weise, wie es oben erläutert wurde. Die ROM-gespeicherten Programme werden also derart virtuell revidiert, daß die Revisions- oder Zusatzroutine (Schritt K2) gemäß dem Zusatzprogramm unmittelbar vor Ausführung der Unterroutine D ausgeführt wird.
  • Im folgenden wird ein auf dem dritten Revisionsbeispiel basierender Betrieb der CPU 10 gemäß dem zweiten Ausführungsbeispiel erläutert.
  • Erreicht eine Adresse, die in dem Programmzähler 26 sukzessive erneuert wird, die erste 1-Byte-Adresse 9820H der 4-Byte-Adresse, unter der der Befehl zum Aufruf der Unterroutine E gespeichert ist, d.h. stimmt die erneuerte Adresse 9820H mit dem in dem CAR 50 des Schaltungselementes 802 gehaltenen Vergleichsadressdatum CA2 überein, so gibt der Adressvergleicher 50 des Schaltungselementes 802 ein Adress-Koinzidenz-Signal (AC) als Hochpegelsignal aus, wodurch ein Adress-Koinzidenz-Unterbrechungsanforderungssignal (ACIR) aus dem Ausgangsanschluss Q des Flipflops 62 ausgegeben wird. Das UND-Gatter 66 des Schaltungselementes 802 gibt so ein Adress-Koinzidenz-Unterbrechungssignal (ACI) aus, da das ACIAR 68 wegen des auf 1 gesetzten Flagdatums FE2 ein Adress-Koinzidenz-Unterbrechungsfreigabesignal (ACTA) an das UND-Gatter 66 ausgibt.
  • Wird das von dem UND-Gatter 66 des Schaltungselementes 802 ausgegebene ACI-Signal der Unterbrechungssteuerung 40 zugeführt, so führt die CU 20 der CPU 10 die sequentielle Unterbrechungs-Übergangs-Verarbeitung (34) aus, ohne auf die 4-Byte-Adresse (9820H bis 9823H) zuzugreifen, unter der der Befehl zum Aufruf der Unterroutine E gespeichert ist.
  • Ähnlich dem oben erläuterten Fall wird in Schritt 3401 eine Adresse des Programmzählers 26 und deshalb die Adresse 9820H in dem Stapelspeicherbereich des RAM 14 temporär als Rücksprungadresse gespeichert. Dann werden in Schritt 3402 die verschiedenen Flagdaten (wie das Übertragflag, das Überlaufflag, das Nullflag, das Vorzeichenflag etc.) des Statusregisters 38 temporär in dem Stapelspeicherbereich des RAM 14 gespeichert. In Schritt 3403 wird weiterhin das in dem Statusregister 38 gespeicherte Unterbrechungsfreigabeflag auf 0 gesetzt, wodurch alle Unterbrechungen mit Ausnahme einer nichtmaskierbaren Unterbrechung (NMI) und einer Softwareunterbrechung unterbunden sind.
  • In Schritt 3404 wird das in dem VAR 70 des Schaltungselementes 802 gehaltene Vektoradressdatum VA2 (0A00H) in dem VATR 78 gesetzt, da das UND-Gatter 66 das ACI-Signal dem VAR 70 des Schaltungselementes 802 zuführt. Dann wird in Schritt 3405 eine Vektoradresse, die der betreffenden Adress-Koinzidenz-Unterbrechung entspricht, aus dem in dem ROM 12 festgelegten Unterbrechungs-Vektorbereich ausgewählt und dann in dem Programmzähler 26 gesetzt. Die Kopfadresse 8000H des Programms der Unterbrechungsverarbeitungs-Unterroutine M (35) wird nämlich als Vektoradresse in dem Programmzähler 26 gesetzt. In dem Unterbrechungs-Vektorbereich des ROM 12 sind verschiedene Vektoradressen gespeichert.
  • Wird die Vektoradresse 8000H in dem Programmzähler 26 gesetzt, so greift die CU 20 der CPU 10 auf die Vektoradresse 8000H zu (Schritt 3406), wodurch der Steuerablauf zur Vektoradresse 8000H springt, was zu einer Ausführung der Unterbrechungsverarbeitungs-Unterroutine M führt.
  • Wie in 35 gezeigt, wird in der Unterbrechungsverarbeitungs-Unterroutine M ein Befehl ausgeführt, der den Steuerablauf zu der in dem temporären Vektoradress-Register (VATR) 80 gesetzten Vektoradresse springen lässt, wodurch die Adresse des Programmzählers 26 durch die Vektoradresse erneuert wird. In diesem dritten Revisionsbeispiel wird nämlich die in dem VATR 80 gesetzte Vektoradresse VA2 (0A00H) in dem Programmzähler 26 gesetzt. Die CU 20 greift so auf die Kopfadresse 0A00H der Unterbrechungsroutine K zu, was zu einer Ausführung der Unterbrechungsroutine L führt.
  • Nach Ausführen der Unterbrechungsroutine L erfolgt die sequentielle Unterbrechungs-Rücksprung-Verarbeitung (24) im wesentlichen in gleicher Weise, wie dies oben erläutert wurde. Die ROM-gespeicherten Programme werden so in der Weise virtuell revidiert, daß die Unterroutine G (Schritt L2) unmittelbar vor Ausführen der Unterroutine E abgearbeitet wird.
  • In dem vorstehend genannten zweiten Ausführungsbeispiel kann die Unterbrechungsverarbeitungs-Unterroutine M einen Schritt enthalten, in dem alle Flagdaten FC0, FC1, ... FC6 und FC7 der ACICRs der Schaltungselemente 80n auf 1 gesetzt werden. Ist dieser Schritt in der Unterbrechungsverarbeitungs-Unterroutine M enthalten, so können natürlich die jeweiligen Schritte J1, K1 und L1 in den Unterbrechungsroutinen J, K und L weggelassen werden.
  • 36 zeigt eine Abwandlung des Schaltungselementes (80n ), das stellvertretend in 33 dargestellt ist. Ähnlich der Anwandlung nach 32 enthält in der Abwandlung des zweiten Ausführungsbeispiels jedes der Schaltungselemente 80n eine Adress-Latchschaltung 76, durch die der Adressvergleicher 52 an einen Adressbus angeschlossen ist, der sich zu dem Programmzähler 26 erstreckt. Eine Adresse, die von dem Programmzähler 26 sukzessive erneuert wird, wird aus dem Adressbus durch die Adress-Latchschaltung 76 wiedergewonnen und dann an den Adressvergleicher 52 ausgegeben. Abgesehen davon ist die Abwandlung nach 36 im wesentlichen identisch mit dem in 33 gezeigten Schaltungselement (80n ).
  • Obgleich vorstehend auf das erste, das zweite und das dritte Revisionsbeispiel Bezug genommen wurde, kann auch eine andere Art von Revision in die ROMgespeicherten Programme eingearbeitet werden. Beispielsweise können die ROM-gespeicherten Programme in der Weise revidiert werden, daß eines der ROM-gespeicherten Programme an seiner Ausführung gehindert ist.
  • Wie aus dem Vorstehenden hervorgeht, ist es in dem erfindungsgemäßen Mikrocomputer möglich, eine Revision an einer wahlfreien Stelle von Programmen vorzunehmen, die in einem ROM des Mikrocomputers gespeichert sind. Dies ermöglicht nicht nur große Flexibilität beim Entwurf eines Mikrocomputers, sondern senkt auch die Kosten für die Herstellung der Mikrocomputer beträchtlich.
  • Der Fachmann erkennt, daß das die vorstehende Beschreibung bevorzugte Ausführungsbeispiele angibt und verschiedene, unter die Erfindung fallende Änderungen und Abwandlungen möglich sind.

Claims (6)

  1. Mikrocomputer mit einem Nur-Lese-Speicher, der Programme speichert, einer Steuerung/Rechnervorrichtung, die sukzessive auf Adressen der in dem Nur-Lese-Speicher gespeicherten Programme zugreift, um aus jeder dieser Zugriffsadressen einen Befehl wiederzugewinnen und zu decodieren und dabei eine Verarbeitung auf Grundlage des decodierten Befehls auszuführen, und einem Programmzähler, in dem eine Adresse, auf die von der Steuerung/Rechnervorrichtung zuzugreifen ist, sukzessive erneuert und angegeben wird, wobei der Mikrocomputer enthält: mindestens eine Vergleichsadress-Speichervorrichtung, die ein Vergleichsadressdatum speichert, das einer wahlfreien Adresse der in dem Nur-Lese-Speicher gespeicherten Programme entspricht, an der ein Interrupt-Prozess durchgeführt werden soll, um die in dem Nur-Lese-Speicher gespeicherten Programme virtuell zu revidieren, einen Speicher mit wahlfreiem Zugriff, der ein Revisionsprogramm speichert, in das der Interrupt-Prozess programmiert ist, mindestens eine Vektoradress-Speichervorrichtung, die ein Vektoradressdatum speichert, das einer Kopfadresse des in dem Speicher mit wahlfreiem Zugriff gespeicherten Revisionsprogramms entspricht, und einen Adressvergleicher, der das Vergleichsadressdatum mit einer sukzessive in dem Programmzähler erneuerten Adresse vergleicht, wobei die Steuerung/Rechnervorrichtung auf die Kopfadresse des in dem Speicher mit wahlfreiem Zugriff gespeicherten Revisionsprogramms zugreift, die dem in der Vektoradress-Speichervorrichtung gespeicherten Vektoradressdatum entspricht, wenn der Adressvergleicher feststellt, daß Übereinstimmung zwischen Vergleichsadressdatum und erneuerter Adresse des Programmzählers besteht, wodurch der Interrupt-Prozess gemäß dem Revisionsprogramm ausgeführt wird, gekennzeichnet durch ein Rücksprungadress-Setzsystem, das das Vergleichsadressdatum als Rücksprungadressdatum in dem Programmzähler setzt, wenn die Ausführung des Interrupt-Prozesses gemäß dem Revisionsprogramm abgeschlossen ist, und ein Adress-Koinzidenz-Deaktivierungssystem, das die Übereinstimmung zwischen dem Vergleichsadressdatum und der Rücksprungadresse, die in dem Programmzähler von dem Rücksprungadress-Setzsystem gesetzt worden ist, außer Kraft setzt.
  2. Mikrocomputer nach Anspruch 1, gekennzeichnet durch einen wiederbeschreibbaren, nichtflüchtigen Speicher, der das Revisionsprogramm, das Vergleichsadressdatum und das Vektoradressdatum speichert, ein Lese/Schreib-System, das das Revisionsprogramm, das Vergleichsadressdatum und das Vektoradressdatum aus dem wiederbeschreibbaren, nichtflüchtigen Speicher ausliest und dann diese Daten jedes Mal in den Speicher mit wahlfreiem Zugriff, die Vergleichsadress-Speichervorrichtung bzw. die Vektoradress-Speichervorrichtung schreibt, wenn der Computer eingeschaltet wird.
  3. Mikrocomputer nach Anspruch 1, dadurch gekennzeichnet, daß der Adressvergleicher an den Programmzähler angeschlossen ist, um so aus diesem die erneuerte Adresse wiederzugewinnen.
  4. Mikrocomputer nach Anspruch 1, dadurch gekennzeichnet, daß der Adressvergleicher an einen sich zu dem Programmzähler erstreckenden Adressbus angeschlossen ist, um so aus dem Programmzähler die erneuerte Adresse wiederzugewinnen.
  5. Mikrocomputer nach Anspruch 1, gekennzeichnet durch ein Vektoradress-Datensetzsystem, das das Vektoradressdatum aus der Vektoradress-Speichervorrichtung ausliest und dann in dem Programmzähler setzt, wobei die Steuerung/Rechnervorrichtung auf die Kopfadresse des Revisionsprogramms zugreift, wodurch der Interrupt-Prozess gemäß dem Revisionsprogramm ausgeführt wird.
  6. Mikrocomputer nach Anspruch 1, gekennzeichnet durch eine zur temporären Speicherung bestimmte Vektoradress-Speichervorrichtung, die das Vektoradressdatum von der Vektoradress-Speichervorrichtu ng empfängt, wenn der Adressvergleicher feststellt, daß Übereinstimmung zwischen Vergleichsadressdatum und erneuerter Adresse des Programmzählers gegeben ist, und ein Vektoradress-Datensetzsystem, das das Vektoradressdatum aus der Vektoradress-Speichervorrichtung ausliest und dann in dem Programmzähler setzt, wobei die Steuerung/Rechnervorrichtung auf die Kopfadresse des Revisionsprogramms zugreift, wodurch der Interrupt-Prozess gemäß dem Revisionsprogramm ausgeführt wird.
DE10039183A 1999-08-10 2000-08-10 Mikrocomputer mit Programmrevisionsfähigkeit Expired - Fee Related DE10039183B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP22658499 1999-08-10
JP11-226584 1999-08-10

Publications (2)

Publication Number Publication Date
DE10039183A1 DE10039183A1 (de) 2001-03-01
DE10039183B4 true DE10039183B4 (de) 2008-05-29

Family

ID=16847476

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10039183A Expired - Fee Related DE10039183B4 (de) 1999-08-10 2000-08-10 Mikrocomputer mit Programmrevisionsfähigkeit

Country Status (2)

Country Link
US (1) US6973522B1 (de)
DE (1) DE10039183B4 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004126658A (ja) * 2002-09-30 2004-04-22 Toshiba Corp プロセッサシステム
EP2275935A3 (de) * 2009-06-30 2012-10-03 Incard SA Verfahren zur Änderung einer Befehlsfolge, die in einem Read-only-Speicher (ROM) einer Smart Card gespeichert ist, und entsprechende Smart Card
AU2014354629B2 (en) 2013-11-27 2019-05-02 Abbott Diabetes Care Inc. Systems and methods for revising permanent ROM-based programming
AU2015349931B2 (en) 2014-11-19 2020-08-13 Abbott Diabetes Care Inc. Systems, devices, and methods for revising or supplementing ROM-based RF commands

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5813043A (en) * 1996-07-12 1998-09-22 Motorola, Inc. Method and system including memory patching utilizing a transmission control signal and circuit

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4610000A (en) * 1984-10-23 1986-09-02 Thomson Components-Mostek Corporation ROM/RAM/ROM patch memory circuit
US4831517A (en) * 1986-10-10 1989-05-16 International Business Machines Corporation Branch and return on address instruction and methods and apparatus for implementing same in a digital data processing system
US5357627A (en) * 1989-03-28 1994-10-18 Olympus Optical Co., Ltd. Microcomputer having a program correction function
JPH04346127A (ja) * 1991-05-23 1992-12-02 Sony Corp 電子装置
US5561493A (en) 1993-06-11 1996-10-01 Asahi Kogaku Kogyo Kabushiki Kaisha Method of controlling an operation of an electronically controlled camera
US5809345A (en) 1995-03-31 1998-09-15 Asahi Kogaku Kogyo Kabushiki Kaisha Programmable electronic device
US6154834A (en) * 1997-05-27 2000-11-28 Intel Corporation Detachable processor module containing external microcode expansion memory
US6434695B1 (en) * 1998-12-23 2002-08-13 Apple Computer, Inc. Computer operating system using compressed ROM image in RAM

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5813043A (en) * 1996-07-12 1998-09-22 Motorola, Inc. Method and system including memory patching utilizing a transmission control signal and circuit

Also Published As

Publication number Publication date
DE10039183A1 (de) 2001-03-01
US6973522B1 (en) 2005-12-06

Similar Documents

Publication Publication Date Title
DE3751297T2 (de) Schaltung zur Programmsteuerung.
DE4305442C2 (de) Verfahren und Vorrichtung zum Erzeugen eines Testvektors
DE10159901B4 (de) Mikrocomputer mit eingebautem programmierbarem, nichtflüchtigem Speicher
DE4329336C2 (de) Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors
DE2629459C2 (de)
DE69023018T2 (de) Prozessor-Unterbrechungssteuerung.
DE4331703C2 (de) Elektronische Einrichtung
DE4027510C2 (de)
DE3048365A1 (de) Speicherschutzsystem und datenverarbeitungssystem mit einem solchen speicherschutzsystem
DE2648229A1 (de) Einschaltkreis als urlader fuer digitalrechner
DE2714805A1 (de) Datenverarbeitungssystem
CH654943A5 (de) Pruefeinrichtung fuer mikroprogramme.
DE68924400T2 (de) Fliessbanddatenverarbeitungsvorrichtung.
EP1019819B1 (de) Programmgesteuerte einheit und verfahren zum debuggen derselben
EP0011685A1 (de) Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung
DE1285219B (de) Steuerwerk zur Ausfuehrung von Unterprogrammen
DE2747633A1 (de) Dv-system mit einer unterbrechungseinrichtung
DE3690031C2 (de) Prüfbaueinheit zum Prüfen eines von einem ROM zu speichernden Programms
DE2926322A1 (de) Speicher-subsystem
DE10039183B4 (de) Mikrocomputer mit Programmrevisionsfähigkeit
DE3700800C2 (de) Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor
DE3323824A1 (de) Speicherprogrammierbare steuerung
DE4429764C2 (de) Zeitgebereinrichtung für einen Mikrocomputer
DE19652290A1 (de) Mikrocomputer
DE3811658A1 (de) Sequenz-controller

Legal Events

Date Code Title Description
8127 New person/name/address of the applicant

Owner name: PENTAX CORP., TOKIO/TOKYO, JP

8110 Request for examination paragraph 44
8327 Change in the person/name/address of the patent owner

Owner name: HOYA CORP., TOKIO/TOKYO, JP

8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20120301