DE3856067T2 - Datenprozessor mit einer Unterbrechungsfunktion - Google Patents

Datenprozessor mit einer Unterbrechungsfunktion

Info

Publication number
DE3856067T2
DE3856067T2 DE3856067T DE3856067T DE3856067T2 DE 3856067 T2 DE3856067 T2 DE 3856067T2 DE 3856067 T DE3856067 T DE 3856067T DE 3856067 T DE3856067 T DE 3856067T DE 3856067 T2 DE3856067 T2 DE 3856067T2
Authority
DE
Germany
Prior art keywords
mode
signal
microprocessor
interrupt
processor
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
DE3856067T
Other languages
English (en)
Other versions
DE3856067D1 (de
Inventor
Yoshikazu Aoto
Shiro Baba
Shinji Kawashima
Hiroyuki Kida
Keiichi Kurakazu Keii Kurakazu
Satoshi Masuda
Yoshiaki Naruse
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP62168086A external-priority patent/JPS6412340A/ja
Priority claimed from JP62214200A external-priority patent/JPS6458024A/ja
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3856067D1 publication Critical patent/DE3856067D1/de
Application granted granted Critical
Publication of DE3856067T2 publication Critical patent/DE3856067T2/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
    • 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/3648Software debugging using additional hardware
    • 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/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

    HINTERGRUND DER ERFINDUNG
  • Beim Entwickeln von Software für einen Mikrocomputer werden verschiedene Entwicklungshilfen verwendet. Das Dokument GB- A-1 192 372 offenbart eine derartige Hilfe. Als typisches Beispiel wird in weitem Umfang ein Echtzeit-Testemulator (ICE = in-circuit emulator = in der Schaltung befindlicher Emulator) verwendet. Eine der Funktionen des ICE ist die sogenannte "Adressen-Anhaltefunktion" gemäß der dann, wenn die Ausführung der Befehle einer Benutzersoftware bis zu einer bestimmten Adresse gelangt ist, der Prozess vorläufig ausgesetzt wird und der Zustand des Mikrocomputers zu diesem Zeitpunkt angezeigt wird. Um die Haltefunktion zu realisieren, wird ein nicht-maskierbarer Interrupt ( ), der eine der Interrupt- oder Unterbrechungsfunktion des Mikrocomputers bildet, verwendet. Genauer gesagt, wird dann, wenn ein Benutzerprogramm bis zu einer Adresse gelangt ist, an der ein Halt auszuführen ist, diese Adresse erkannt und es wird eine -Anforderung in den Mikrocomputer eingegeben. Wenn der Mikrocomputer die -Anforderung empfangen hat, setzt er das Benutzterprogramm vorläufig aus und verstellt die Steuerung auf die Seite des ICE. So startet der Mikrocomputer die Ausführung eines ICE-Programms und führt entsprechend eine Anzeige seines internen Zustands usw. aus Alternativ wird, wenn die Adresse erkannt wird, bei der der Halt auszuführen ist, ein Befehl bei dieser Gelegenheit auf einen Softwareinterruptanforderungs-Befehl (SWI) geändert, der ausgeführt wird, wodurch das vorläufige Aussetzen des Benutzerprogrammes ähnlich wie im obigen Fall bewirkt wird, um die Steuerung auf die Seite des ICE umzuschalten.
  • Ein derartiger Echtzeit-Testemulator ist z.B. in "HITACHI MICROCOMPUTER SYSTEM 6305UO/6305VO EMULATOR USERS MANUAL", herausgegeben von Hitachi, Ltd. im September 1985 beschrieben.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Indessen wurde ein Mikrocomputer mit Befehlskellerspeicher- Abruffunktion entwickelt, um die Informationsverarbeitungsgeschwindigkeit zu erhöhen. in diesem Fall tritt eine Diskrepanz zwischen der Abrufadresse eines Programms und der Adresse eines aktuell ausgeführten Befehls auf. Daher zieht ein Halt auf Grundlage der -Anforderung, wie oben ausgeführt, das Problem nach sich, dass der Halt unmittelbar an der Adresse eines Befehls auftritt, der nicht ausgeführt wird. In diesem Fall kann die oben beschriebene Technik verwendet werden, gemäß der dann, wenn die Adresse, an der das Programm zu unterbrechen ist, erkannt wird, der Befehl bei dieser Gelegenheit durch den SWI (Softwareinterrupt) ersetzt wird Zum Ersetzen des Befehls ist es jedoch erforderlich, dass ein Bus, mit dem der Mikrocomputer und eine das Programm einspeichernde Speichervorrichtung verbunden sind, so geschaltet wird, dass das Befehlswort SWI eingegeben wird. In diesem Fall wird in einem Mikrocomputer, dessen Geschwindigkeit so erhöht wird, wie oben ausgeführt, der Befehlsabruf schnell, so dass das Umschalten des Busses nicht rechtzeitig erfolgt und es fehlschlägty den oben genannten Halt zu erzielen.
  • Darüber hinaus unterliegt, wenn die Befehle und SWI zum Anhalten des Benutzerprogramms verwendet werden, wie oben beschrieben, das Benutzerprogramm der Beschränkung, dass die Interruptprozesse wie und SWI nicht als solche ausgeführt werden können. Außerdem muss eine externe Schaltung angebracht werden, um die Tatsache zu erkennen, dass die Datenverarbeitungsfunktion des Mikrocomputers auf die Ausführung des Programms seitens des ICE umgeschaltet wurde. Aus diesem Grund wird die Anzahl der Komponenten des Echtzeit-Testemulators entsprechend der externen Schaltung größer.
  • Es ist eine Aufgabe der in den beigefügten Ansprüchen definierten Erfindung, einen Datenprozessor mit hoher Geschwindigkeit und zuverlässiger Haltefunktion mit einfachem Aufbau zu schaffen.
  • Eine andere Aufgabe der in den beigefügten Ansprüchen definierten Erfindung ist es, einen Datenprozessor zu schaffen, der eine Mehrfachfunktion realisiert.
  • Die obigen und andere Aufgaben und neuartige Merkmale der Erfindung werden aus der Beschreibung der Unterlagen und der beigefügten Zeichnungen deutlich.
  • Typische Gesichtspunkte zum Funktionsvermögen der Erfindung werden kurz wie folgt zusammengefasst: eine Schaltung ist so aufgebaut, dass Befehlswörter und Einzeldaten, wie sie in einer Speicherschaltung abgespeichert sind, abhängig von von außen zugeführten Signalen umgeschaltet und eingegeben werden. Außerdem wird durch Einstellen eines speziellen Betriebsmodus eine Interruptfunktion errichtet, die gesondert von normalen Interrupts ist.
  • Gemäß dem obigen Hilfsmittel werden abgerufene Programme und spezifizierte Befehle oder Einzeldaten durch die interne Schaltung ersetzt, so dass zuverlässige Haltevorgänge hoher Geschwindigkeit realisiert werden können. Außerdem kann dann, wenn der spezifizierte Betriebsmodus eingestellt wird, ein Benutzerprogramm mit normalen Interruptprozessen leicht mittels der speziellen Interruptfunktion unterbrochen werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist ein Blockdiagramm&sub1; das ein Ausführungsbeispiel eines Mikroprozessors zeigt, bei dem die Erfindung angewandt ist;
  • Fig. 2 ist ein schematisches Blockdiagramm eines ICE-Systems, bei dem der Mikroprozessor verwendet ist;
  • Fig. 3 ist ein zeitbezogenes Diagramm zum Erläutern eines Beispiels der Halteoperation des ICE-Systems;
  • Fig. 4 ist ein Blockdiagramm, das ein Ausführungsbeispiel eines Einchip-Mikrocomputers zeigt, bei dem die Erfindung angewandt ist;
  • Fig. 5 ist ein Blockdiagramm, das ein anderes Ausführungsbeispiel des Mikrocomputers zeigt, bei dem die Erfindung angewandt ist; und
  • Fig. 6 ist ein Blockdiagramm, das ein anderes Ausführungsbeispiel des Einchip-Mikrocomputers zeigt, bei dem die Erfindung angewandt ist.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE [Ausführungsbeispiel 1]
  • In Fig. 1 ist ein Blockdiagramm eines Ausführungsbeispiels eines Mikroprozessors dargestellt, bei dem die Erfindung angewandt ist. Obwohl keine spezielle Beschränkung hierauf besteht, ist der Mikroprozessor in der Figur auf einem einzelnen Halbleitersubstrat wie einem solchen aus einkristallinem Silicium durch bekannte Techniken zum Herstellen integrierter Halbleiterschaltungen ausgebildet.
  • Der Mikroprozessor dieses Ausführungsbeispiels besteht aus einer arithmetisch-logischen Einheit ALU, einem Befehlsregister ISTR, einem Mikroprogramm-ROM (nachfolgend als "mROM" bezeichnet), der im Register ISTR abgespeicherte Befehlswörter decodiert und verschiedene zum Ausführen derselben erforderliche Steuersignale bildet, einer Steuerschaltung REG/ALUC, die verschiedene Register REG, wie unten angegeben, und die arithmetisch-logische Einheit ALU usw. steuert.
  • Beispielsweise gehören zu den Registern, die ein Programmierer benutzen kann, die folgenden.
  • Bei einem Mikroprozessor, der z.B. für 8 Bits aufgebaut ist, sind die Programmzähler PCL und PCH 2-Byte(16-Bit)-Register, und sie arbeiten so, dass sie die aktuelle Programmadresse anzeigen. Inkrementiereinrichtungen INL und INH führen Operationen des Inkrementierens (+1) der Programmzähler PCL und PCH aus. Ein Register TEP ist ein Zwischenregister. Stapelzeiger SPL und SPH sind 2-Byte-Register, und sie arbeiten so, dass sie die Adresse anzeigen, die bei einer Stapeloperation wirksam ist, die anschließend in einem externen Kellerspeicher-/Stackauslese-Stackbereich ausgeführt wird. Für den Stackbereich wird im Allgemeinen ein RAM (Direktzugriffsspeicher) verwendet, und dieser kann an jeder beliebigen gewünschten Adresse liegen. Bei einem Anwendungsfall, bei dem Information innerhalb eines Stacks beim Ausfall der Spannungsversorgung auf zubewahren ist, wird der für den Stackbereich verwendete RAM mit einer Batteneunterstützungsfunktion versehen.
  • Indexregister INXL und INXH sind Register von 2 Bytes, und sie dienen zum Einspeichern von Daten oder einer 16-Bit- Speicheradresse zur Verwendung bei einem Indexmodus der Speicheradressierung.
  • Akkumulatoren ACCA und ACCB arbeiten so, dass sie einen Operanden oder ein Operationsergebnis von der arithmetisch-logischen Einheit ALU zwischenspeichern.
  • Ein Bedingungscoderegister CC zeigt den Status des Operationsergebnisses der arithmetisch-logischen Einheit ALU an. Es verfügt über Flags für z.B. negativ, null, Überlauf, Übertrag vom Bit 7 und Halbübertrag vom Bit 3. Außerdem verfügt es über ein Interrupt-Maskenbit. Wenn dieses Maskenbit gesetzt ist, wird ein Interrupt von einem (interrupt request = Interruptanforderung)-Anschluss nicht akzeptiert. Wenn vom -Anschluss ein Interruptsignal im Rücksetzstatus des Maskenbits geliefert wird, wird nach Abschluss eines gerade ausgeführten Befehlszyklus eine Interruptfolge gestartet. Genauer gesagt, werden die Inhalte der Programmzähler PCL, PCH, der Indexregister INXL, INXH, der Akkumulatoren ACCA, ACCB und des Bedingungscoderegisters CC in den Stack gespeichert. Dann wird das Maskenbit gesetzt, damit kein weiterer Interrupt ( ) mehr angenommen wird. Eine unter einer spezifizierten Speicheradresse abgespeicherte Adresse wird in den Programmzähler eingespeichert, und die Steuerung des Mikroprozessors wird zur durch diesen Programmzähler angezeigten Interruptfolge verzweigt.
  • Die Steuerschaltung REG/ALUC führt die Auswahl eines beliebigen der verschiedenen Register wie auch die Operationssteuerung derselben sowie die Steuerung der arithmetischlogischen Einheit ALU entsprechend dem Ausgangssignal des mROM, dem Inhalt des Bedingungscoderegisters CC und der Anweisung einer Steuerschaltung BCC für eine Verzweigungsbedingungssteuerung aus.
  • Eine Zeitsteuergenerator-Schaltung TG erzeugt Zeitsteuerungssignale, wie sie für die Operationen der Steuerschaltung REG/ALUC und des Befehlsregisters ISTR erforderlich sind, und zwar abhängig vom Ausgangssignal des mROM und des Ausgangssignals einer Interruptsteuerschaltung INTC, die nachfolgend beschrieben wird.
  • Die Interruptsteuerschaltung INTC empfängt ein Signal und das Signal , wie sie von außen zugeführt werden, und sie erzeugt Steuersignale für einen Interruptprozess. Eine Haltsteuerschaltung HLTC empfängt ein von außen zugeführtes Signal und überführt den Betrieb des Mikroprozessors in einen Haltezustand. Beispielsweise führt der Mikroprozessor dann, wenn sich das Signal auf hohem Pegel befindet, einen Befehl aus, und wenn es den niedrigen Pegel einnimmt, verfällt der Mikroprozessor in den Haltezustand. Der Mikroprozessor ist in diesem Haltezustand tatsächlich von einem Systembus getrennt. Eine Rücksetzsteuerschaltung RESC empfängt ein von außen zugeführtes Signal und steuert eine Rücksetzoperation. Beispielswiese wird dieses Signal verwendet, wenn der Mikroprozessor ausgehend vom "Aus"-Zustand der Spannungsversorgung rückgesetzt und gestartet wird. Es wird auch dann verwendet, wenn der Mikroprozessor zu einem beliebigen gewünschten Zeitpunkt nach dem Start neu initialisiert wird.
  • Obwohl keine spezielle Beschränkung hierauf besteht, ist dieses Ausführungsbeispiel mit einer Befehlskellerspeicher- Abruffunktion für Datenverarbeitung mit hoher Geschwindigkeit versehen. Zu diesem Zweck wird ein Befehlswort oder ein Datenwert, wie von Datenbusanschlüssen eingegeben, über eine FIFO(first-in first-out)-Anordnung, die eine Befehlsspeicherschaltung bildet, an das Befehlsregister ISTR übertragen.
  • Bei diesem Ausführungsbeispiel ist ein Multiplexer MPX im Eingangsteil der FIFO-Anordnung vorhanden, um den Mikroprozessor mit der Funktion zu versehen, einen Halt an jeder beliebigen gewünschten Ausführungsadresse schnell und zuverlässig zu erzielen. Die Eingänge dieses Multiplexers MPX sind auf einer Seite mit einem Datenbus (DATENBUS) verbunden. Die Eingänge des Multiplexers MPX werden auf der anderen Seite mit den Ausgangssignalen einer Mustergeneratorschaltung PTG versorgt. Diese Mustergeneratorschaltung PTG besteht aus einer Speicherschaltung, in der z.B. der zuvor erläuterte SWI-Befehl abgespeichert ist. Der Schaltvorgang des Multiplexers MPX wird durch ein von außen zugeführtes Triggersignal TRG gesteuert. Wenn der Befehl SWI ausgeführt wird, wird von der Steuerschaltung REG/ALUC ein Signal BACK ausgegeben, das die Annahme des Interrupts anzeigt, wobei dies jedoch keine spezielle Beschränkung bedeutet.
  • Der Datenbus (DATENBUS) ist über eine Ausgangsschaltung mit drei Zuständen TSB mit einem internen Datenbus verbunden.
  • Der Mikroprozessor dieses Ausführungsbeispiels lädt Befehle von den Datenbusanschlüssen und speichert sie aufeinanderfolgend in die FIFO-Anordnung ein. In diesem Fall ist das Triggersignal TRG z.B. auf den niedrigen Pegel gesetzt und der Multiplexer MPX wird auf die Seite des Datenbusses geschaltet. Demgemäß werden die von einer externen Speichervorrichtung abgerufenen Programmen über die Datenbusanschlüsse (DATENBUS) eingegeben, und die über den Multiplexer MPX wie auch die FIFO-Anordnung geladenen Befehle werden aufeinanderfolgend decodiert und ausgeführt. Einzeldaten, wie sie bei diesem Datenprozess erzeugt werden, werden von den Datenbusanschlüssen über die Ausgangsschaltung mit drei Zuständen TSB ausgegeben. Adressen-Einzelinformationen, wie vom Programmzähler erzeugt, werden von Adressenbusanschlüssen (ADDRESENBUS) über eine Vektoradressen-Generatorschaltung VAG wie auch einen Adressenpuffer ADB ausgegeben, wodurch die Adressierung eines ROM (Festwertspeicher) oder eines RAM, in dem die Befehlswörter abgespeichert sind, sowie die Adressierung eines RAM oder dergleichen, der die Übertragungsziele der auszugebenden Einzeldaten anzeigt, ausgeführt werden. Beispielsweise erzeugt die Vektoradressen-Generatorschaltung VAG Adressen $FFFC, FFFD für den Interrupt NMI sowie $FFF8, FFF9 für den Interrupt IRQ, woraufhin die Steuerung auf Interrupt-Dienstroutinen umgestellt wird.
  • In Fig. 2 ist ein Blockdiagramm eines Ausführungsbeispiels eines Echtzeit-Testemulators ICE dargestellt, bei dem der Mikroprozessor mit der obigen Anordnung als Ziel-Mikroprozessor TMPU verwendet ist.
  • Bei diesem Ausführungsbeispiel übernimmt der Mikroprozessor TMPU die Steuerungsvorgänge für einen Nutzerraum UB und einen ICE-Systemraum SB'. Im Systemraum SB des ICE existieren ein Hauptprozessor MMPU; Speicherschaltungen RAM1 und ROM1, die in Entsprechung zum Hauptprozessor angebracht sind; eine Eingangs/Ausgangs-Schnittstellenschaltung I/O, an die eine Diskettenspeicherschaltung FDD, eine Konsole CRT, ein Drucker PRT usw. angeschlossen sind; eine Protokollierschaltung TRC; eine Halteoperationsschaltung BKC und eine Speicherschaltung RAM2. Die Protokollierschaltung TRC und die Halteoperationsschaltung BKC werden über eine Auswähleinrichtung SEL2 mit dem Hauptmikroprozessor MMPU oder dem Zielmikroprozessor TMPU verbunden. Außerdem kann über eine Auswählein richtung SEL1 wahlfrei vom Hauptmikroprozessor MMPU oder vom Zielmikroprozessor TMPU auf die Speicherschaltung RAM2 zugegriffen werden. Der Zielmikroprozessor TMPU wird über die Auswähleinrichtung SEL1 oder SEL2, wie oben angegeben, mit dem Systemraum SB verbunden, und er arbeitet unter Steuerung durch den Hauptmikroprozessor MMPU.
  • Beispielsweise schreibt der Hauptmikroprozessor MMPU, wenn eine Halteanweisung und eine Halteadresse als Eingangssignale von der Konsole CRT eingegeben werden, die zugeführte Halteanweisung in die Speicherschaltung RAM2, und er schreibt die Halteadresse in ein Register innerhalb der Halteoperationsschaltung BKC.
  • Die Halteoperationsschaltung BKC verfügt über eine Adressenkomparatorschaltung, die die im Register eingespeicherte Halteädresse und ein Adressensignal vergleicht, wie es von außen vom Zielmikroprozessor TMPU geliefert wird (Adressensignal des Adressenbusses des Benutzerraums UB). Bei dieser Gelegenheit verbindet eine Auswähleinrichtung SEL3 den Mikroprozessor TMPU und den Benutzerraum UB entsprechend dem hohen Pegel des Unterbrechungsbestätigungssignals , wie es vom Mikroprozessor TMPU ausgegeben wird. So führt der Zielmikroprozessor TMPU einen Datenverarbeitungsvorgang, der einem in einem ROM oder dergleichen, was nicht dargestellt ist, abgespeicherten, zu entwickelnden Programm entspricht, im Benutzerraum UB aus, bis ein Haltevorgang akzeptiert wird, d.h. in der Zeitperiode, in der sich das Haltebestätigungssignal auf dem hohen Pegel befindet, wie es im zeitbezogenen Diagramm von Fig. 3 veranschaulicht ist.
  • Wenn die Halteadresse und die Ausführungsadresse des Zielmikroprozessors TMPU übereinstimmen, wechselt die Halteoperationsschaltung BKC ein Haltesignal BRK von niedrigem auf hohen Pegel. So fügt der Zielmikroprozessor TMPU einen Befehl SWI mit hohem Pegel als Triggersignal TRG ein. Außerdem wird, wenn die Halteoperation ausgeführt wurde, wie später beschrieben, das Signal auf seinem niedrigen Pegel aktiv. Gemäß dem niedrigen Pegel des Signals trennt die Auswähleinrichtung SEL3 den Benutzerraum UB vom Zielmikroprozessor TMPU und schließt die Speicherschaltungen ROM3 und RAM3 an. Die Inhalte der Programmzähler PCL, PCH, des Bedingungscoderegisters CC usw. des Zielmikroprozessors TMPU zum Zeitpunkt der Halteoperation werden stapelmäßig in die Speicherschaltung RAM3 eingespeichert. Danach analysiert der Zielmikroprozessor TMPU, entsprechend dem Programm in der Speicherschaltung ROM3, eine Anweisung in der Speicherschaltung RAM2, und er ruft den Inhalt der Programmzähler PCL, PCH, des Bedingungscoderegisters CC usw., wie in die Speicherschaltung RAM3 eingeschrieben, ab, und er schreibt die sen Inhalt in die Speicherschaltung RAM2. Die in die Speicherschaltung RAM2 eingeschriebenen Einzelinformationen werden über die Eingangs/Ausgangs-Schnittstellenschaltung I/O auf solche Weise abgerufen und angezeigt, dass der Hauptmikroprozessor MMPU entsprechend dem Programm der Speicherschaltung ROM1 arbeitet.
  • Das Signal kehrt auf solche Weise vom niedrigen auf den hohen Pegel zurück, dass der Zielmikroprozessor TMPU einen in die Speicherschaltung ROM3 eingeschriebenen Rückkehrbefehl ausführt.
  • Eine Moduseinstellschaltung MDC erzeugt Betriebsmodussignale für den Zielmikroprozessor TMPU.
  • Wenn das Triggersignal TRG (Haltesignal BRK) auf seinen hohen Pegel eingestellt ist, schaltet der Zielmikroprozessor TMPU den Multiplexer MPX auf die Seite der Mustergeneratorschaltung PTG in Fig. 1. So wird ein unter der obigen Adresse abgespeichertes Programmwort durch einen Befehl SWI ersetzt, wie er in der Mustergeneratorschaltung PTG abgespeichert ist und dieser Befehl wird in den FIFO eingegeben.
  • Wenn der Befehl SWI über den FIFO in das Befehlsregister ISTR eingegeben wird, führt seine Ausführung zum Einspeichern der Inhalte der Programmzähler PCL, PCH, der Indexre gister INXL, INXH, der Akkumulatoren ACCA, ACCB und des Bedingungscoderegisters CC in einen Stapel, ähnlich wie beim oben beschriebenen Interruptprozess. Anschließend wird das Maskenbit so gesetzt, dass kein weiterer Interrupt akzeptiert wird. Dann werden beispielsweise $FFF8 und FFF9 in die Programmzähler PCL bzw. PCH eingetragen, wie beim vorigen Interrupt, und die Steuerung verzweigt zu einer Interruptfolge, wie sie an dieser Adresse abgespeichert ist. Auf diese Weise wird der Haltevorgang bewirkt, woraufhin der Mikroprozessor vom Benutzerprogramm auf das in der Speicherschaltung ROM3 in Fig. 2 abgespeicherte ICE-Systemprogramm wechselt und z.B. einen Datenprozess zum Ausgeben der internen Zustände des Mikroprozessors ausführt, wie oben beschrieben. Übrigens wird, wenn der Mikroprozessor MPU über eine eingebaute Watchdog-Zeitgeberschaltung verfügt, die Zeitgeberfunktion desselben entsprechend der Halteoperation auf Grundlage des Befehls SWI außer Kraft gesetzt.
  • Hinsichtlich des Signals BACK zum externen Zuführen des Haltezustands als Ausgangssignal, um diesen Zustand von einem Interrupt auf Grundlage eines normalen Befehls SWI zu unterscheiden, kann eine Latchschaltung zum Einspeichern der Tatsache, dass das Triggersignal TRG eingegeben wurde, vorhanden sein, um das logische Produkt zwischen dem Ausgangssignal dieser Latchschaltung und einem Signal auszugeben, das durch die Ausführung des Befehls SWI erzeugt wurde.
  • Wenn es nicht erwünscht ist, dass das Einfügen des Befehls SWI durch die Mustergeneratorschaltung PTG für den Benutzer erkennbar ist, können z.B. ein Moduseinstellanschluss und eine Modusbestimmungsschaltung, wie unten beschrieben, angebracht werden, wobei die Eingabe des Triggersignals TRG nur dann gültig gemacht wird, wenn der ICE-Modus spezifiziert wurde. Genauer gesagt, wird dann, wenn der Mikroprozessor der vorigen Anordnung für einen Echtzeit-Testemulator verwendet wird, ein Signal, das diese Situation anzeigt, an den Moduseinstellanschluss geliefert. Auf das Decodieren des Signalpegels am Moduseinstellanschluss bringt die Modusbestimmungsschaltung ein Modussignal auf hohen Pegel (logisch "1"). Das Triggersignal TRG wird über eine UND-Torschaltung eingegeben, die durch dieses Modussignal gesteuert wird.
  • Wenn der Halt des Benutzerprogramms mit hoher Zuverlässigkeit auszuführen ist, ist eine Komparatorschaltung vorhanden. Beispielsweise wird, wenn der Mikroprozessor einen Befehl SWI decodiert hat, von der später beschriebenen Komparatorschaltung entschieden, ob der ICE-Modus spezifiziert ist oder nicht, und der Befehl wird nur im ICE-Modus ausgeführt. In diesem Fall kann die UND-Torschaltung, in die das Triggersignal TRG eingegeben wird, gut weggelassen werden. Diese Anordnung ermöglicht es, SWI-Befehle als solche im Benutzerprogramm zu verwenden. Demgemäß können die Adressen der Interruptsdienstroutinen im ICE-Modus und im Benutzermodus verschieden sein.
  • Bei diesem Ausführungsbeispiel werden in einer Speicherschaltung aufbewahrte Befehlswörter SWI umgeschaltet, und sie werden, tatsächlich, durch von außen zugeführte Signale eingegeben, so dass zuverlässige Haltevorgänge mit hoher Geschwindigkeit realisiert werden können. Außerdem wird, selbst in einem Fall, in dem eine Befehlskellerspeicher-Abruffunktion vorliegt, wie beim Ausführungsbeispiel, das Befehlswort dadurch umgeschaltet, dass eine Adresse erfasst wird, und demgemäß kann der Befehl SWI an der gewünschten Adresse für die Halteoperation eingefügt werden.
  • Ferner können, da kein Interruptanschluss verwendet ist, Interruptsignale , usw. in einem Benutzerprogramm verwendet werden. Wenn eine Modusbestimmungsschaltung usw. vorhanden sind, wird es auch möglich, Befehle SWI in das Benutzerprogramm einzufügen. Wenn die Funktion bereitgestellt wird, einen externen Anschluss mit einem Ausgangssignal zu versorgen, der das Fortschreiten der Halteoperation anzeigt, ist es nicht erforderlich, zusätzlich außerhalb irgendeine spezielle Schaltung anzubringen, und es kann Vereinfachung eines Emulatorsystems erzielt werden.
  • [Ausführungsbeispiel 2]
  • In Fig. 4 ist ein Blockdiagramm eines Ausführungsbeispiels eines Einchip-Mikrocomputers dargestellt, auf den die Erfindung angewandt ist.
  • In der Figur ist ein durch eine gestrichelte Linie umschlossener Abschnitt eine integrierte Schaltung LSI. Hier ausgebildete verschiedene Schaltungsblöcke bilden insgesamt den Einchip-Mikrocomputer, und sie sind auf einem einzelnen Halbleitersubstrat wie einem solchen aus einkristallinem Silicium durch bekannte Techniken zum Herstellen integrier ter Halbleiterschaltungen ausgebildet.
  • Durch das Symbol CPU ist ein Prozessor gekennzeichnet, dessen Hauptaufbaublöcke in typischer Weise veranschaulicht sind.
  • Das Symbol A bezeichnet einen Akkumulator, das Symbol X ein Indexregister, das Symbol CC ein Bedingungscoderegister,das Symbol SP einen Stapelzeiger, die Symbole PCH und PCL Programmzähler, das Symbol CPU-CONT einen CPU-Controller und das Symbol ALU eine arithmetisch-logische Einheit.
  • Die Anordnung einer derartigen Prozessor-CPU ist z.B. aus "FUNDAMENTALS OF MICROCOMPUTERS" von Kohji Yada, herausgegeben von Kabushiki-Kaisha Ohm-shaam 10. April 1978 bekannt, und die prinzipiellen Funktionen der jeweiligen Register sind ähnlich den zuvor erläuterten, so dass die Register nicht im Einzelnen beschrieben werden.
  • Mit den Symbolen PO1 bis PO4 sind Eingangs/Ausgangs-Ports bezeichnet, in denen jeweils Register für die Datenübertragungsrichtung enthalten sind. Jeder der Eingangs/Ausgangs- Ports PO3 und PO4 wird zum Eingeben und Ausgeben von Daten von 8 Bits verwendet, und er hat auch die Funktion des Ausgebens von Adressensignalen, wie sie auf einem unten angegebenen Bus BUS transportiert werden. Beispielsweise ist zwischen dem Eingangs/Ausgangs-Port PO3 und dem Bus BUS ein Multiplexer angeordnet, der so umgeschaltet wird, dass er die Daten und die Adressen umschaltet. Außerdem arbeitet der Eingangs/Ausgangs-Port PO4 als Daten-Eingangs/Ausgangs-Port oder als Adressenausgangsport, abhängig von der Einstellung des Betriebsmodus.
  • Obwohl keine spezielle Beschränkung hierauf besteht, besteht der Eingangs/Ausgangs-Port PO2 aus sechs Anschlüssen, und er verfügt über eine Eingangs/Ausgangs-Richtung, die durch das zugehörige Datenrichtungsregister bestimmt wird. Ein Ausgangspuffer von 6 Bits ist als Ausgangspuffer mit drei Zuständen aufgebaut, und er nimmt einen Zustand mit hoher Impedanz ein, wenn der Eingangs/Ausgangs-Port PO2 in der Eingaberichtung betrieben wird. Vier der Anschlüsse des Eingangs/Ausgangs-Ports PO2 werden zur Modusprogrammierung während einer Rücksetzperiode verwendet. Die Pegel der vier, Anschlüsse werden bei einer Rücksetzoperation in der Latchschaltung des Eingangs/Ausgangs-Ports PO2 gespeichert. Die Betriebsarten, die mit den vier Anschlüssen einstellbar sind, sind z.B. ein Einchipmodus, ein erweiterter Multiplexmodus, ein erweiterter Nichtmultiplexmodus und der oben beschriebene ICE-Modus. Derartige Modi werden durch eine Modusbestimmungsschaltung MODUS bestimmt. Die Modusbestimmungsschaltung MODUS dieses Ausführungsbeispiels wird gemeinsam von den anderen Signalanschlüssen, wie oben angegeben, genutzt, so dass die von den vier Anschlüssen gelieferten Moduseinstellsignale gültig gemacht werden, wenn ein Systemrücksetzsignal zugeführt wurde. D.h., dass beim NeueINstellen eines Modus das Erfordernis besteht, den Mikroprozessor rückzusetzen.
  • Das Symbol OSC kennzeichnet eine Oszillatorschaltung, die unter Verwendung eines extern angebrachten Quarzoszillator Xtal mit hoher Genauigkeit ein Bezugsfreguenzsignal erzeugt, wobei keine spezielle Beschränkung auf diesen Aufbau besteht. Taktimpulse, wie sie in der Mikroprozessor-CPU erforderlich sind, werden auf Grundlage des Bezugsfreguenzsignals erzeugt. Außerdem wird das Bezugsfrequenzsignal als Bezugszeitimpuls eines Zeitgebers verwendet. Dieser Zeitgeber besteht aus einem Zähler COUT, einem Prescaler (digitaler Freguenzteiler) PR und einem Controller CONT. In einem derartigen Zeitgeber ist auch eine Watchdog-Zeitgeberschaltung enthalten.
  • Das Symbol RAM kennzeichnet einen Direktzugriffsspeicher, der beispielsweise als Speicherschaltung für Zwischendaten, als Stackbereich oder als Universalregister verwendet wird.
  • Das Symbol ROM kennzeichnet einen Festwertspeicher, in den prinzipiell Programme usw. für verschiedene Informationsprozesse eingeschrieben sind. Dieser ROM besteht aus einem Masken-ROM, einem EPROM (löschbarer & programmierbarer Festwertspeicher), der nicht-löschbar gemacht ist, oder dergleichen.
  • Die verschiedenen, oben angegebenen Schaltungsblöcke sind mittels des Busses BUS um den Mikroprozessor CPU herum miteinander verbunden. Dieser Bus BUS enthält einen Datenbus und einen Adressenbus.
  • Eine Interruptsteuerschaltung INTC führt Interruptsteueroperationen für Interruptsignale und aus, wie oben angegeben. In der Figur ist auch dargestellt, dass ein einen Haltezustand im ICE-Modus anzeigendes Ausgangssignal über die Interruptsteuerschaltung INTC ausgegeben wird.
  • Die Haltesteuerschaltung HLTC und die Rücksetzsteuerschaltung RESC, wie oben angegeben, können in der Interruptsteuerschaltung INTC enthalten sein. In diesem Fall werden entsprechende Eingangssignale und zugeführt. Als Eingangsanschlüsse für derartige Interrupts können beliebige Anschlüsse in den Eingangs/Ausgangs-Ports PO1 bis PO4 gemeinsam genutzt werden.
  • Bei diesem Ausführungsbeispiel ist die Mikroprozessor-CPU mit einem Multiplexer MPX und einer Mustergeneratorschaltung PTG, wie im vorigen Fall, versehen. Der Schaltvorgang des Multiplexers MPX wird durch ein Triggersignal TRG gesteuert. Bei diesem Ausführungsbeispiel wird die Eingabe des Triggersignals TRG nur dann gültig gemacht, wenn der ICE-Modus von der Modusbestimmungsschaltung MODUS spezifiziert wurde. Obwohl es keine spezielle Beschränkung bedeuten soll, werden die Adressensignale während des Ablaufs des im ROM abgespeicherten Programms über einen beliebigen der Ports zugeführt. Wenn durch Überwachen der Adressensignale eine spezielle Adresse erkannt wurde, wird das Triggersignal TRG eingegeben, wodurch eine auf einem Befehl SWI beruhende Halteoperation möglich wird, wie im vorigen Fall. Selbstverständlich wird in diesem Fall der Modusbestimmungsschaltung MODUS der ICE-Modus angewiesen. Bei diesem Ausführungsbeispiel wird ein Interrupt auf Grundlage des Befehls SWI nur im ICE-Modus gültig gemacht, wie im vorigen Fall. Außerdem kann von einem Anschluss BACK das Signal ausgegeben werden, das das Fortschreiten der Halteoperation anzeigt.
  • Außerdem kann die Eingabe des Triggersignals TRG in einem normalen Modus dadurch ungültig gemacht werden, dass eine Eingabe in die Modusbestimmungsschaltung MODUS spezifiziert wird.
  • [Ausführungsbeispiel 3]
  • In Fig. 5 ist ein Blockdiagramm eines anderen Ausführungsbeispiels eines Mikroprozessors dargestellt, auf den die Erfindung angewandt ist. Obwohl keine spezielle Beschränkung hierauf besteht, ist der Mikroprozessor in der Figur auf einem einzelnen Halbleitersubstrat wie einem solchen aus einkristallinem Silicium durch bekannte Techniken zum Herstellen integrierter Halbleiterschaltungen ausgebildet.
  • Da die grundsätzliche Anordnung des Prozessors MPU aus der Beschreibung betreffend Fig. 1 ersichtlich ist oder umfangreich aus verschiedenen Literaturstellen bekannt ist, wie aus "HITACHI MICROCOMPUTER DATA BOOK", herausgegeben von Hitachi, Ltd. im September 1985, wird der interne Aufbau desselben nicht veranschaulicht. Dieser Prozessor besteht aus einer arithmetisch-logischen Einheit, einem Befehlsregister, einem Befehlsdecodierer, der ein im Befehlsregister abgespeichertes Befehlswort decodiert und verschiedene Steuersignale und Zeitsteuersignale erzeugt, wie sie zur zugehörigen Ausführung erforderlich sind, verschiedenen Registern, einer Steuerschaltung, die die arithmetisch-logische Einheit wie auch die Register usw. steuert.
  • Beispielsweise gehören, wie im vorstehenden Fall, die folgenden Register zu solchen, die ein Programmierer nutzen kann. Bei einem 8-Bit-Mikroprozessor sind die Programmzähler z.B. 2-Byte(16-Bit)-Register, und sie arbeiten so, dass sie die aktuelle Programmadresse anzeigen. Stapelzeiger sind 2- Byte-Register, und sie arbeiten so, dass sie eine Adresse anzeigen, die in einer Stapeloperation wirkungsvoll ist, wie sie anschließend in einem externen Kellerspeicheroperation- Stapelentnahme-Stackbereich ausgeführt wird. Für den Stack bereich wird im Allgemeinen ein RAM verwendet, und er kann an jeder gewünschten Adresse liegen. Im Fall einer Verwendung, in der Information innerhalb eines Stapels beim Ausfall der Spannungsversorgung aufrechtzuerhalten ist, ist der für den Stackbereich verwendete RAM mit Batteneunterstützungsfunktion versehen.
  • Indexregister sind 2-Byte-Register, und sie dienen dazu, Daten oder eine 16-Bit-Speicheradresse zum Gebrauch in einem Indexmodus der Speicheradressierung zu speichern.
  • Akkumulatoren arbeiten so, dass sie zeitweilig einen Operanden oder ein Operationsergebnis von der arithmetisch-logischen Einheit einspeichern.
  • Ein Bedingungscoderegister zeigt den Zustand des Operationsergebnisses der arithmetisch-logischen Einheit an. Es verfügt über Flags für z.B. negativ, null, Überlauf, Übertrag vom Bit 7 sowie Halbübertrag vom Bit 3. Außerdem verfügt es über ein Interruptmaskenbit. Wenn dieses Maskenbit gesetzt ist, wird ein Interrupt von einem Anschluss (interrupt request Interruptanforderung) nicht akzeptiert. Wenn vom Anschluss ein Interruptsignal im Rücksetzzustand des Maskenbits geliefert wird, wird eine Interruptfolge nach Abschluss des gerade ausgeführten Befehlszyklus gestartet. Genauer gesagt, werden die Inhalte der Programmzähler, der Indexregister, der Akkumulatoren und des Bedingungscoderegisters in den Stapel gespeichert. Dann wird das Maskenbit gesetzt, damit kein weiterer Interrupt ( ) akzeptiert wird. Danach wird eine unter einer speziellen Speicheradresse abgespeicherte Adresse in den Programmzähler eingespeichert, und die Steuerung des Mikroprozessors verzweigt zur durch diesen Programmzähler angezeigten Interruptfolge. Obwohl keine spezielle Beschränkung hierauf besteht, ist das Bedingungscoderegister außer mit den oben angegebenen Flags noch mit einem Flag versehen, das die Bestätigung eines Halteoperations-Anforderungssignals anzeigt, wie später beschrieben.
  • Obwohl keine spezielle Beschränkung hierauf besteht, enthält eine eingebaute Eingangs/Ausgangs-Einrichtung IOC einen RAM (Direktzugriffsspeicher), eine Zeitgeberschaltung, eine Watchdog-Zeitgeberschaltung zum Überwachen des internen Betriebszustands der MPU usw. Der RAM kann als Stackbereich oder als Universalregister verwendet werden.
  • Der Mikroprozessor MPU führt aufeinanderfolgend Befehle aus, wie sie von Datensignalanschlüssen her geladen werden, und er liefert durch die Ausführung erzeugte Daten als Ausgangssignale an den Datensignalanschlüssen. Eine durch den Programmzähler erzeugte Adresse wird an Adressensignalanschlüssen ausgegeben, um dadurch die Adressierung eines ROM (Festwertspeicher) oder eines RAM auszuführen, in dem das Befehlswort abgespeichert ist, sowie die Adressierung eines RAM oder dergleichen, der die Übertragungsrichtung der auszugebenden Daten anzeigt.
  • Der Mikroprozessor MPU, wie oben angegeben, ist zusätzlich mit den folgenden Schaltungen versehen.
  • Ein von mindestens einem Moduseinstellanschluss MOD zugeführtes Signal wird an eine Modusbestimmungsschaltung MODUS geliefert. Diese Modusbestimmungsschaltung MODUS decodiert den Signalpegel oder die Kombination von Signalpegeln vom Moduseinstellanschluss (von den Moduseinstellanschlüssen) MOD, und sie erzeugt dann, wenn der Mikroprozessor als ICE verwendet wird, ein Emulatormodussignal ICE. Das Signal ICE wird einerseits an einen Eingang einer UND-Torschaltung G geliefert. Der andere Eingang der UND-Torschaltung G wird mit einem Signal von einem Halteoperationsanschluss BRG versorgt. Das Ausgangssignal der UND-Torschaltung G wird an eine Interruptsteuerschaltung INTC geliefert. Die Interruptsteuerschaltung INTC empfängt das Ausgangssignal der UND- Torschaltung G wie auch Interruptsignale von Anschlüssen für normale Interrupts, wie und , und sie überträgt sie an den Mikroprozessor MPU.
  • Obwohl keine spezielle Beschränkung hierauf besteht, wird das Signal ICE an einen Komparator DC geliefert. Wenn der Komparator DC ein Prüfanforderungssignal CHK für den ICE- Modus vom Mikroprozessor MPU empfängt, erzeugt er ein Ausgangssignal dahingehend, ob der ICE-Modus abläuft oder nicht. Anders gesagt, überträgt der Komparator DC, wenn er mit dem Anforderungssignal CHK versorgt wird, das zugehörige Bestätigungssignal OK an den Mikroprozessor MPU. Eine derartige Funktion kann durch den Mikroprogramm-ROM des Mikroprozessors MPU realisiert werden.
  • Wenn der Mikroprozessor MPU das Halteoperations-Anforderungssignal empfängt, wie unten angegeben, setzt er das entsprechende Flag des Bedingungscoderegisters. So wird ein Steuersignal zum Ungültigmachen der Watchdog-Zeitgeberschaltung der Eingangs/Ausgangs-Vorrichtung IOC geliefert, und von einem externen Anschluss wird ein Signal geliefert, das einen Haltezustand anzeigt.
  • Wenn der Mikroprozessor MPU mit der obigen Anordnung als Echtzeit-Testemulator verwendet wird, wird der Moduseinstellanschluss MOD mit einem Signal versorgt, das diese Situation anzeigt. Die Modusbestimmungsschaltung MODUS decodiert den Signalpegel am Moduseinstellanschluss MOD und bringt das Signal ICE auf den hohen Pegel (logisch "1"). Auf dieses Signal hohen Pegels hin öffnet die UND-Torschaltung G ihr Tor, d.h. sie wird so aktiviert, dass sie das Signal vom Halteoperationsanschluss aufnimmt.
  • Beim Entwickeln der Software eines Mikrocomputersystems, das den Mikroprozessor MPU verwendet, wird, wenn ein Benutzerprogramm bis zu einer für die Halteoperation gewünschten Adresse fortgeschritten ist, die Adresse erfasst und der Halteoperationsanschluss BRK wird auf den hohen Pegel (aktiv) geführt, wie unter Bezugnahme auf die Fig. 2 und 3 beschrieben. Das Halteoperations-Anforderungssignal vom Halteoperationsanschluss BRK wird über die UND-Torschaltung G an die Interruptsteuerschaltung INTC übertragen. Diese Interruptsteuerschaltung INTC überträgt das Interruptsignal an den Mikroprozessor MPU. Der Mikroprozessor MPU unterbricht das Benutzerprogramm und führt eine Interruptabfolge entsprechend einem Prozess ähnlich dem obigen aus. In diesem Fall kann der Mikroprozessor MPU, falls erforderlich, mit der Funktion versehen sein, dass er die Annahme einer weiteren Halteoperationsanforderung zurückweist, ähnlich wie beim Maskieren des Signals .
  • Wenn der Interrupt auf Grundlage der Halteoperationsanforderung akzeptiert wurde, wird das Benutzerprogramm angehalten, und demgemäß wird der Watchdog-Zeitgeber der Eingangs/Ausgangs-Vorrichtung IOC entsprechend dem Flag angehalten. Außerdem wird am Anschluss ein Signal ausgegeben, das die Annahme der Halteoperationsanforderung anzeigt.
  • Bei diesem Ausführungsbeispiel, wie es insoweit beschrieben wurde, ist ein Interrupt zur Analyse des Benutzerprogramms mit einem Signal möglich, das von normalen Interruptanforderungssignalen verschieden ist, so dass die normalen Interruptsignale , usw. innerhalb des Benutzerprogramms verwendet werden können. Darüber hinaus ist es nicht erforderlich, da das Signal, das das Fortschreiten der Halteoperation anzeigt, am externen Anschluss ausgegeben wird, zusätzlich außerhalb irgendeine spezielle Schaltung anzubringen, und es kann eine Vereinfachung eines Emulatorsystems erzielt werden.
  • Wenn die Halteoperation betreffend das Benutzerprogramm mit hoher Zuverlässigkeit auszuführen ist, wird der Komparator DC verwendet. Genauer gesagt, liefert der Mikroprozessor MPU, wenn er mit der Interruptanforderung auf Grundlage des Signals am Anschluss BRK von der Interruptsteuerschaltung INTC versorgt wird, das Prüfsignal CHK an den Komparator DC, und er führt den Interruptprozess aus, wenn er das Signal OK betreffend das Erkennen des ICE-Modus empfängt.
  • Als anderes Halteoperationsverfahren kann anstelle des Signals vom Anschluss BRK ein Haltebefehl (SWI oder BRK) geliefert werden. Genauer gesagt, wird der Haltebefehl (SWI oder BRK) an einem Platz eingefügt, für den es erwünscht ist, einen Halt innerhalb des Benutzerprogramms auszuführen. Wenn das Benutzerprogramm ausgeführt wird, wird der Haltebefehl (SWI oder BRK) aus einem Programmspeicher abgerufen und an den Mikroprozessor MPU übertragen. Dann decodiert der Mikroprozessor den Befehl und er hebt die Ausführung des Benutzerprogramms wie im obigen Fall auf und verschiebt den Prozess auf die ICE-Seite, ähnlich wie im Fall des Interrupts. Wenn der Komparator DC vorhanden ist, kann der Mikroprozessor in diesem Fall den Befehl (SWI oder BRK) ausführen, wenn er das Erkennungssignal OK für den ICE-Modus empfangen hat.
  • Es ist auch möglich, die beiden Unterbrechungsfunktionen auf Grundlage des Signals vom Anschluss BRK und des Befehls (SWI oder BRK) bereitzustellen. In diesem Fall können die Unterbrechungsoperationen durch das optimale Verfahren für das Benutzerprogramm ausgeführt werden.
  • [Ausführungsbeispiel 4]
  • In Fig. 6 ist ein Blockdiagramm eines anderen Ausführungsbeispiels eines Einchip-Mikrocomputers dargestellt, auf den die Erfindung angewandt ist.
  • Der Einchip-Mikrocomputer in dieser Figur ist grundsätzlich dem Mikrocomputer in Fig. 4 ähnlich. Daher werden dieselben Bestandteile wie in Fig. 4 aus der Beschreibung weggelassen.
  • Bei diesem Ausführungsbeispiel ist eine Interruptsteuerschaltung INTC' vorhanden, um für die Funktion normaler Interrupts zu sorgen, die für den Benutzer offen sind, wie oben ausgeführt, sowie für die Funktion des Interrupts (Halteoperation), die nur im ICE-Modus verwendbar ist. Diese Interruptsteuerschaltung INTC' enthält die UND-Torschaltung G von Fig. 5 neben der in der Figur dargestellten Interruptsteuerschaltung INTC. Falls erforderlich, ist die Interruptsteuerschaltung INTC' auch mit der Funktion der Komparatorschaltung DC in Fig. 5 versehen. Daher wird ein Haltesignal von einem Anschluss BRK über diese Interruptsteuerschaltung INTC' geliefert. In Fig. 6 ist auch dargestellt, dass das Signal eines Ausgangsanschlusses zum Ausgeben des Haltezustands über die Interruptsteuerschaltung INTCj' geliefert wird. Als normaler Interruptanschluss ist der Anschluss als typisch veranschaulicht, jedoch ist zu beachten, dass auch die Anschlüsse usw. vorhanden sind. Derartige Interruptanschlüsse können gemeinsam mit beliebigen Anschlüssen unter den Eingangs/Ausgangs-Ports PO1 bis PO4 genutzt werden.
  • Auch bei diesem Ausführungsbeispiel wird der Interrupt vom Anschluss BRK nur im ICE-Modus gültig gemacht wie im vorigen Fall. Außerdem gilt dies für den Fall, dass ein Haltebefehl (SWI oder BRK) geliefert wird.
  • Funktionseffekte, wie sie durch die obigen Ausführungsbeispiele erzielt werden, sind die folgenden.
  • (1) Es ist eine Schaltung vorhanden, durch die ein in einer Speicherschaltung enthaltener Befehl SWI auf ein von außen zugeführtes Signal in geschalteter Weise eingegeben wird, wodurch das Ersetzen eines Programmworts unter Verwendung einer derartigen internen Schaltung erzielt werden kann. Dies führt zum Effekt, dass eine zuverlässige Halteoperation mit hoher Geschwindigkeit ausgeführt werden kann.
  • (2) Selbst in einem Mikroprozessor mit Befehlskellerspeicher-Abruffunktion ist es nur erforderlich, dass Programmadressen zum Abrufen von Befehlen aus einer Speichervorrichtung überwacht werden und dass ein Triggersignal eingegeben wird, wenn eine für eine Halteoperation gewünschte Adresse erkannt wurde. Dies führt zum Effekt, dass die Halteoperation an der gewünschten Programmadresse möglich wird.
  • (3) Unter Verwendung der Halteoperation auf Grundlage des Befehls SWI können Interrupts auf Grundlage von Eingaben von Anschlüssen in ein Benutzerprogramm eingebaut werden. So besteht beim Entwickeln von Benutzersoftware keine Beschränkung hinsichtlich der Verarbeitung von Interruptfunktionen auf Grundlage von Eingaben an Anschlüssen. Dies führt zum Effekt, dass die Softwareentwicklung betreffend die tatsächlich zu entwickelnde Software einfach ausgeführt werden kann.
  • (4) Durch zusätzliches Bereitstellen der Funktion des Ausgebens eines Signals, das einen Interrupt auf Grundlage des Befehls SWI anzeigt, anders gesagt, die bewirkt, dass sich das Benutzerprogramm in einem Haltezustand befindet, kann eine externe Schaltung zum Erkennen des Haltezustands weggelassen werden. Dies führt zum Effekt, dass ein System zur Verwendung in einem Echtzeit-Testemulator vereinfacht werden kann.
  • (5) Es wird eine Interruptfunktion gesondert von normalen Interrupts dadurch bereitgestellt, dass ein spezieller Betriebsmodus eingestellt wird. Dies führt zum Effekt, dass dann, wenn ein Datenprozessor als Echtzeit-Testemulator verwendet wird, Halteoperationen betreffend das Benutzerprogramm einschließlich normalen Interruptprozessen leicht dadurch ausgeführt werden können, dass die spezielle Interruptfunktion verwendet wird.
  • (6) Dank des obigen Punkts (5) sind Interruptfunktionsprozesse nicht in der Entwicklung der Benutzersoftware beschränkt, und demgemäß kann der Effekt erzielt werden, dass eine Softwareentwicklung entsprechend der tatsächlich zu entwickelnden Software leicht ausgeführt werden kann.
  • (7) Beim Interruptprozess, wie er nur im speziellen Betriebsmödus akzeptiert wird, ist die Funktion des Bestätigens des Modus vorhanden, was zum Effekt führt, dass ein Interruptprozess mit hoher Zuverlässigkeit möglich wird.
  • (8) Die Funktion des Ausgebens des Effekts, dass der Interruptprozess im speziellen Modus abläuft, ist zusätzlich vorhanden, wodurch eine externe Schaltung zum Erkennen des Interruptprozesses weggelassen werden kann. Dies führt zum Effekt, dass ein System zur Verwendung als Echtzeit-Testemulator vereinfacht werden kann.
  • Obwohl vorstehend die vom Erfinder getätigte Erfindung in Verbindung mit Ausführungsbeispielen konkret beschrieben wurde, ist es selbstverständlich, dass diese Erfindung nicht auf die vorstehenden Ausführungsbeispiel beschränkt ist, sondern dass sie in verschiedener Weise innerhalb des Schutzumfangs abgeändert werden kann, ohne vom zugehörigen Sinn abzuweichen. Z.B. kann, in Fig. 1, die Mustergeneratorschaltung PTG nicht nur aus dem Masken-ROM sondern auch aus einem Register, einem EPROM oder dergleichen bestehen, um ein Einschreiben auf Grundlage von Software zu ermöglichen. In diesem Fall wird jedes beliebige gewünschte Befehlswort oder Datenwert zusätzlich zum Befehl SWI abgespeichert, wie oben angegeben, wodurch das gewünschte Befehlswort oder der Datenwert in das Benutzerprogramm eingeführt werden kann. Der Datenprozessor muss keine Befehlskellerspeicher-Abruffunktion aufweisen, wie in Fig. 4. Im Gegensatz hierzu kann der Einchip-Mikrocomputer von Fig. 4 mit der Befehlskellerspeicher-Abruffunktion versehen sein. Außerdem können die Vektoradressen der Interruptprozesse auf Grundlage der Signale an den Anschlüssen oder der Befehle in Übereinstimmung oder fehlender Übereinstimmung stehen. Ferner können, wenn die Vektoradressen der normalen Interrupts neu zugeordnet werden können, die Vektoradressen der Interrupts auf Grundlage der Befehle im ICE-Modus neu zugeordnet oder fixiert werden. Auf diese Weise kann das Interruptverarbeitungssystem verschiedene Funktionsvorgehensweisen einnehmen.
  • Das Halteoperations-Erkennungsignal BACK im ICE-Modus wird aktiviert, wenn ein Interrupt auf Grundlage des Befehls SWI oder des Signals BRK akzeptiert wurde. Es kann dadurch deaktiviert werden, dass der entsprechende Befehl (z.B. der Befehl RTB) zur Rückkehr aus dem Haltezustand ausgeführt wird. Beim Vorliegen der Modusbestimmungsschaltung kann dieser Rückkehrbefehl (RTB) auch nach dem Prüfen des IC-Modus ausgeführt werden. Ferner kann neben dem Befehl SWI ein spezieller Haltebefehl vorhanden sein und in der Mustergeneratorschaltung abgespeichert sein.
  • Vorstehend wurde die Erfindung hauptsächlich hinsichtlich Anwendungen von Mikroprozessoren oder Mikrocomputern beschrieben, die den zugehörigen Hintergrund bilden. Jedoch ist die Erfindung nicht darauf beschränkt, sondern sie kann extensiv für verschiedene Datenprozessoren verwendet werden, die Datenverarbeitung entsprechend Programmen ausführen.
  • Nachfolgend werden Wirkungen, wie sie durch typische Erscheinungsformen betreffend die Funktion der Erfindung erzielt werden, kurz erläutert: es ist eine Schaltung vorhanden, durch die ein in einer Speicherschaltung enthaltener Befehl SWI in geschalteter Weise auf ein von außen zugeführ tes Signal hin eingegeben wird, wodurch die Ersetzung eines Programmworts unter Verwendung einer derartigen internen Schaltung erzielt werden kann, so dass eine zuverlässige Halteoperation mit hoher Geschwindigkeit erfolgen kann. Darüber hinaus wird eine Interruptfunktion gesondert von normalen Interrupts dadurch errichtet, dass ein spezieller Betriebsmodus eingestellt wird, wodurch dann, wenn ein Datenprozessor als Emulator verwendet wird, die Halteoperation betreffend ein Benutzerprogramm mit normalen Interruptprozessen einfach dadurch ausgeführt werden kann, dass die spezielle Interruptfunktion genutzt wird. Auch kann eine externe Schaltung dadurch vereinfacht werden, dass zusätzliche die Funktion des Ausgebens eines Signals vorhanden ist, das den Haltezustand anzeigt.

Claims (7)

1. Integrierter Mikroprozessor, aufweisend:
einen Prozessor (CPU, MPU), um in einem ersten Betriebsmodus ein zu entwickelndes Programm und in einem zweiten Betriebsmodus ein Emulatorprogramm auszuführen,
einen Steuersignal-Eingangsanschluß (BRK, TRG), um ein externes Haltesignal zu empfangen, das den Prozessor aus dem ersten in den zweiten Betriebsmodus unschaltet, wenn es von einem ersten in einen zweiten Zustand wechselt, und
einen Ausgangsanschluß (BACK), an den der Prozessor ein Halte-Bestätigungssignal mit einem ersten Pegel, wenn sich der Prozessor im ersten Betriebsnodus befindet, und einem zweiten Pegel, wenn sich der Prozessor im zweiten Betriebsmodus befindet, liefert.
2. Mikroprozessor nach Anspruch 1, wobei das Halte-Bestätigungssignal vom zweiten zum ersten Pegel wechselt, wenn der Prozessor einen Rückkehrbefehl von dem Emulatorprogramm ausführt.
3. Mikroprozessor nach Anspruch 1 oder 2, weiterhin aufweisend:
einen Modussignal-Eingangsanschluß (MOD) zum Empfang eines Modussteuersignals,
eine Modusidentifiziereinrichtung (MODE) zur Lieferung eines Emulatormodussignals (ICE), wenn das Modussteuersignal (MOD) angibt, daß der integrierte Mikroprozessor in einem Emulatormodus betrieben werden soll, in den der Prozessor (CPU, MPU) in seinen zweiten Betriebsmodus das Emulatorprogramm ausführt, und
eine Torschaltung (G), die mit dem Steuersignal-Eingangsanschluß (BRK) und der Modus-Identifziereinrichtung (MODE) verbunden ist, um das Haltesignal an dem Steuersignal- Eingangsanschluß lediglich dann gültig zu machen, wenn die Modusidentifziereinrichtung das Emulatornodussignal (ICE) erzeugt.
4. Mikroprozessor nach Anspruch 3, aufweisend:
einen Unterbrechungsanforderungs-Eingangs anschluß (NMI, ) zum Empfang eines Unterbrechungsanforderungssignals, und
eine Unterbrechungssteuerungseinrichtung (INTC), die mit dem Unterbrechungsanforderungs-Eingangsanschluß und der Torschaltung (G) verbunden ist, um an den Prozessor (CPU, MPU) ein Unterbrechungssteuersignal zu liefern.
5. Mikroprozessor nach Anspruch 3 oder 4, aufweisend:
eine Prüfeinrichtung (DC), um dann, wenn sie ein Prüfanforderungssignal von dem Prozessor (CPU, MPU) empfängt, ein Signal an ihn zu liefern, das angibt, ob sich der integrierte Mikroprozessor in dem Emulatormodus befindet.
6. Mikroprozessor nach Anspruch 5, wobei der Prozessor aufgrund eines Wechsels des Haltesignals von dem ersten in den zweiten Zustand vom ersten Betriebsmodus in den zweiten Betriebsmodus umgeschaltet wird, nachdem er von der Prüfeinrichtung (DC) das Signal erhalten hat, das angibt, daß sich der intregrierte Mikroprozessor im Enulatormodus befindet.
7. Mikroprozessor nach Anspruch 5, wobei der Prozessor (CPU, MPU) aufgrund eines Haltebefehls in dem zu entwickelnden Programm von dem ersten in den zweiten Betriebsmodus umgeschaltet wird, und
wobei der Prozessor den Haltebefehl ausführt, nachdem er von der Prüfeinrichtung (DC) das Signal empfangen hat, das angibt, daß sich der integrierte Mikroprozessor in dem Emulatormodus befindet.
DE3856067T 1987-07-06 1988-06-24 Datenprozessor mit einer Unterbrechungsfunktion Expired - Fee Related DE3856067T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP62168086A JPS6412340A (en) 1987-07-06 1987-07-06 Data processor
JP62214200A JPS6458024A (en) 1987-08-28 1987-08-28 Data processor

Publications (2)

Publication Number Publication Date
DE3856067D1 DE3856067D1 (de) 1997-12-18
DE3856067T2 true DE3856067T2 (de) 1998-06-10

Family

ID=26491927

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3856067T Expired - Fee Related DE3856067T2 (de) 1987-07-06 1988-06-24 Datenprozessor mit einer Unterbrechungsfunktion

Country Status (5)

Country Link
US (3) US4998197A (de)
EP (1) EP0306644B1 (de)
KR (1) KR970011211B1 (de)
DE (1) DE3856067T2 (de)
HK (1) HK1003602A1 (de)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155809A (en) * 1989-05-17 1992-10-13 International Business Machines Corp. Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware
JPH0312742A (ja) * 1989-06-09 1991-01-21 Ricoh Co Ltd 中央演算処理装置
JPH03252731A (ja) * 1990-03-01 1991-11-12 Fujitsu Ltd マイクロプロセッサ
JPH04107630A (ja) * 1990-08-28 1992-04-09 Nec Corp 中央処理装置
EP0474256A3 (en) * 1990-09-07 1993-01-27 Nec Corporation In-circuit emulator
US5175853A (en) * 1990-10-09 1992-12-29 Intel Corporation Transparent system interrupt
GB2266605B (en) * 1992-04-27 1995-10-11 Intel Corp Microprocessor having a run/stop pin for accessing an idle mode
US5448743A (en) * 1992-07-21 1995-09-05 Advanced Micro Devices, Inc. General I/O port interrupt mechanism
JP2927108B2 (ja) * 1992-07-22 1999-07-28 日本電気株式会社 インサーキットエミュレータ
US5471618A (en) * 1992-11-30 1995-11-28 3Com Corporation System for classifying input/output events for processes servicing the events
US5758059A (en) * 1992-12-03 1998-05-26 Intel Corporation In-circuit emulator in which abrupt and deferred arming and disarming of several events on a microprocessor chip are controlled using a single-input pin
US5497456A (en) * 1992-12-31 1996-03-05 Intel Corporation Apparatus for transferring information between an interrupt producer and an interrupt service environment
JP2513417B2 (ja) * 1993-07-05 1996-07-03 日本電気株式会社 情報処理装置
JPH08171504A (ja) * 1994-12-19 1996-07-02 Mitsubishi Denki Semiconductor Software Kk エミュレ−ション装置
US5673824A (en) * 1995-05-31 1997-10-07 Taplast Srl Plastic dosing pump for dispensing liquids from containers
JP3676882B2 (ja) 1996-06-12 2005-07-27 株式会社リコー マイクロプロセッサ及びその周辺装置
US6106565A (en) * 1997-02-27 2000-08-22 Advanced Micro Devices, Inc. System and method for hardware emulation of a digital circuit
US5901309A (en) * 1997-10-07 1999-05-04 Telefonaktiebolaget Lm Ericsson (Publ) Method for improved interrupt handling within a microprocessor
DE19747082C1 (de) * 1997-10-24 1999-01-28 Dspecialists Ges Fuer Innovati Schaltungsanordnung zur zeitweisen Deaktivierung einer Überwachungsschaltung für einen Mikroprozessor
US6145103A (en) * 1998-04-07 2000-11-07 Advanced Micro Devices, Inc. Emulator support mode for disabling and reconfiguring timeouts of a watchdog timer
US6631463B1 (en) * 1999-11-08 2003-10-07 International Business Machines Corporation Method and apparatus for patching problematic instructions in a microprocessor using software interrupts
GB2365546B (en) 1999-12-23 2004-02-18 St Microelectronics Sa A computer system with two debug watch modes
GB2362730B (en) 1999-12-23 2004-02-11 St Microelectronics Sa Computer register watch
GB2366006B (en) * 1999-12-23 2004-06-30 St Microelectronics Sa A computer system with debug facility
GB2362729B (en) 1999-12-23 2004-02-11 St Microelectronics Sa Memory access debug facility
GB2362968B (en) 1999-12-23 2003-12-10 St Microelectronics Sa Computer system with debug facility
DE10138918A1 (de) * 2001-08-08 2003-03-06 Infineon Technologies Ag Programmgesteuerte Einheit
US7370193B2 (en) * 2002-04-27 2008-05-06 Tong Shao Computing system being able to quickly switch between an internal and an external networks and a method thereof
WO2006080227A1 (ja) * 2005-01-25 2006-08-03 Yokogawa Electric Corporation 情報処理装置および情報処理方法
US10042692B1 (en) * 2015-09-29 2018-08-07 Xilinx, Inc. Circuit arrangement with transaction timeout detection

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1192372A (en) * 1967-05-18 1970-05-20 Plessey Co Ltd Improvements relating to Digital Computers
US4303990A (en) * 1976-07-01 1981-12-01 Gulf & Western Industries, Inc. Programmable controller using microprocessor
US4338660A (en) * 1979-04-13 1982-07-06 Relational Memory Systems, Inc. Relational break signal generating device
DE3070320D1 (en) * 1980-09-27 1985-04-25 Ibm Deutschland Priority stage controlled interruption device
US4527234A (en) * 1982-08-02 1985-07-02 Texas Instruments Incorporated Emulator device including a semiconductor substrate having the emulated device embodied in the same semiconductor substrate
US4523277A (en) * 1982-09-30 1985-06-11 Ncr Corporation Priority interrupt system for microcomputer
US4626988A (en) * 1983-03-07 1986-12-02 International Business Machines Corporation Instruction fetch look-aside buffer with loop mode control
US4636941A (en) * 1983-05-24 1987-01-13 Iwatsu Electric Co., Ltd. Method and apparatus for analysis of microprocessor operation
ATE24784T1 (de) * 1983-09-16 1987-01-15 Ibm Einrichtung im befehlswerk eines fliessbandprozessors zur befehlsunterbrechung und -wiederholung.
US4691279A (en) * 1984-03-02 1987-09-01 Unisys Corporation Instruction buffer for a digital data processing system
US4635193A (en) * 1984-06-27 1987-01-06 Motorola, Inc. Data processor having selective breakpoint capability with minimal overhead
JPS61195429A (ja) * 1985-02-26 1986-08-29 Canon Inc 演算処理装置
US4674089A (en) * 1985-04-16 1987-06-16 Intel Corporation In-circuit emulator
US4791560A (en) * 1985-07-31 1988-12-13 Unisys Corporation Macro level control of an activity switch in a scientific vector processor which processor requires an external executive control program
US4709324A (en) * 1985-11-27 1987-11-24 Motorola, Inc. Data processor control unit having an interrupt service using instruction prefetch redirection

Also Published As

Publication number Publication date
HK1003602A1 (en) 1998-10-30
US5644703A (en) 1997-07-01
DE3856067D1 (de) 1997-12-18
EP0306644B1 (de) 1997-11-12
EP0306644A2 (de) 1989-03-15
US5493659A (en) 1996-02-20
EP0306644A3 (de) 1990-06-27
US4998197A (en) 1991-03-05
KR970011211B1 (ko) 1997-07-08
KR890002779A (ko) 1989-04-11

Similar Documents

Publication Publication Date Title
DE3856067T2 (de) Datenprozessor mit einer Unterbrechungsfunktion
DE10297856B4 (de) Verfahren und Vorrichtung zum Suspendieren der Ausführung eines Threads, bis ein spezifizierter Speicherzugriff auftritt
DE3851033T2 (de) Datenprozessor mit Entwicklungsunterstützungsmerkmalen.
DE69126498T2 (de) Wiederherstellungsverfahren und Gerät für eine Pipeline-Verarbeitungseinheit eines Multiprozessor-systems
DE3853759T2 (de) Datenprozessor mit zwei Betriebsmoden.
DE68925615T2 (de) Digitalrechnersystem mit Niederstromverbrauchmodus
DE4329336C2 (de) Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors
DE4434895C2 (de) Verfahren und Vorrichtung zur Behandlung von Ausnahmebedingungen
DE69633166T2 (de) Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration
DE3685863T2 (de) Rechnersystem zur steuerung virtueller maschinen.
DE69523549T2 (de) Mikroprozessor mit Fehlersuchsystem
DE4313594C2 (de) Mikroprozessor
DE2722099C2 (de)
DE102008062692B4 (de) Eingebettetes Mikrocontrollersystem und Verfahren zur Konfiguration eines eingebetteten Mikrocontrollersystems mit gesteuertem Schaltmodus
DE69432514T2 (de) Leistungssteuerung in einem Computersystem
DE3110378C2 (de)
DE68924400T2 (de) Fliessbanddatenverarbeitungsvorrichtung.
DE19635204A1 (de) Ausnahme-Sicherheitsschaltung
DE112005001515T5 (de) Verfahren und Vorrichtung zur spekulativen Ausführung von nicht kollisionsbehafteten Sperrbefehlen
DE4418892C2 (de) Mikrocomputer
DE4311441C2 (de) Verfahren zum Betreiben eines Mikroprozessors mit einem externen Anschluß
DE69525129T2 (de) Verfahren und Datenprozessor zum durchsichtigem Betrieb in einem Hintergrundmodus
DE2721623C2 (de)
DE102006039747A1 (de) Verfahren für Kontextzustandsmanagement
DE69320741T2 (de) Verfahren und Einrichtung zur Emulation der Umgebung eines Mikroprozessors

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee