DE69127992T2 - Mikroprozessor zur Buszykluseinfügung zwecks Informationslieferung für eine Emulation - Google Patents

Mikroprozessor zur Buszykluseinfügung zwecks Informationslieferung für eine Emulation

Info

Publication number
DE69127992T2
DE69127992T2 DE69127992T DE69127992T DE69127992T2 DE 69127992 T2 DE69127992 T2 DE 69127992T2 DE 69127992 T DE69127992 T DE 69127992T DE 69127992 T DE69127992 T DE 69127992T DE 69127992 T2 DE69127992 T2 DE 69127992T2
Authority
DE
Germany
Prior art keywords
instruction
bus
microprocessor
address
cycle
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
DE69127992T
Other languages
English (en)
Other versions
DE69127992D1 (de
Inventor
Kouji Hashimoto
Ikuya Kawasaki
Yoshiyuki Kondo
Shigezumi Matsui
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 Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi Microcomputer System Ltd
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 JP2104700A external-priority patent/JP2923570B2/ja
Priority claimed from JP3049346A external-priority patent/JPH04284546A/ja
Application filed by Hitachi Microcomputer System Ltd, Hitachi Ltd filed Critical Hitachi Microcomputer System Ltd
Application granted granted Critical
Publication of DE69127992D1 publication Critical patent/DE69127992D1/de
Publication of DE69127992T2 publication Critical patent/DE69127992T2/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/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • 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/3636Software debugging by tracing the execution of the program
    • G06F11/364Software debugging by tracing the execution of the program tracing values on a bus
    • 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/3636Software debugging by tracing the execution of the program
    • 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/3652Software debugging using additional hardware in-circuit-emulation [ICE] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment

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)
  • Advance Control (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

  • Die Erfindung betrifft einen Mikroprozessor zum Einfügen eines Buszyklus bei der Ausgabe interner Information für z. B. eine Emulation.
  • Einige bekannte Mikrocomputer verfügen über ein Befehlsregister vom Vorabauslesetyp, bei dem einige Befehle, zusätzlich zum auszuführenden Befehl&sub1; vorab ausgelesen werden. So kann die Ausführung eines Programms dadurch beschleunigt werden, dass mehrere Befehle vorab in das Befehlsregister vom Vorabauslesetyp ausgelesen werden.
  • Wenn ein Benutzer ein neues Mikrocomputersystem oder Software hierfür entwickelt, emuliert er häufig das System, um die Fehlerbeseitigung zu erleichtern. Bei einer derartigen Emulation wird die Ausführung des Programms in demjenigen Moment unterbrochen, zu dem ein bestimmter Befehl im Programm ausgeführt wird, oder die Daten auf einem Bus werden zu einem bestimmten Zeitpunkt im Speicher protokolliert. Durch Analysieren des so protokollierten Inhalts des Speichers können darüber hinaus Gründe für ein Außerkontrollegeraten des Programms geklärt werden, um die Fehlerbeseitigung im Programm oder System zu erleichtern. Daher wird ein Datenbus oder Adressenbus während der Emulation überwacht, um einen Anhaltepunkt oder einen Protokollierpunkt zu erkennen.
  • Bei einem Mikrocomputer mit einem Befehlsregister zum Vorabauslesen mehrerer Befehle, wie oben beschrieben, unterscheidet sich der Befehlscode oder die Adresse, wie er bzw. sie auf dem aktuellen Bus auftritt, von dem bzw. der des ausgeführten Befehls, während die Emulation ausgeführt wird. Dies macht es unmöglich, die Ausführung des Programms im gewünschten Moment zu unterbrechen, und es erschwert es, den Protokollinhalt nach der Emulation zu analysieren.
  • Daher schlug die japanische Patentoffenlegung Nr. 62-197 831 eine Anordnung vor, bei der dadurch von außen auf einen Befehl zugegriffen werden kann, der von einem Mikrocomputer vom Befehlsvorabauslesetyp ausgeführt wird, dass ein Stift zum Ausgeben der Differenz zwischen der Adresse des ausgeführten Befehls und einer vorab ausgelesenen Adresse bereitgestellt wird. Ferner schlug die japanische Patentoffenlegung Nr. 61-286 936 eine Anordnung vor, bei der die Ausführung eines Programms für jede Befehlsausführung dadurch interpretiert wird, dass eine Interruptfunktion verwendet wird, um dadurch eine andere Befehlsserie auszuführen, die dazu dient, den internen Zustand des Mikroprozessors nach außen zu leiten.
  • Das bekannte System, bei dem ein Stift zum Ausgeben der Differenz zwischen der Adresse des ausgeführten Befehls und der vorab ausgelesenen Adresse bereitgestellt wird, hat die Nachteile, dass die Herstellkosten erhöht sind, die Entwicklungsperiode verlängert ist und das System dem Zuwachs der erforderlichen Informationsmenge nicht genügen kann, da die Anzahl der Stifte des Mikroprozessors erhöht werden muss oder da ein anderer Chip mit einem zusätzlichen Spezialstift hergestellt werden muss. Andererseits kann ein System, bei dem das Programm für jede Befehlsausführung einem Interrupt unterzogen wird, seine Echtzeiteigenschaft verlieren oder es kann während der Emulation unter einem Außerkontrollegeraten leiden.
  • Das Dokument US-A-4,636,945 offenbart einen Mikroprozessor, bei dem eine Prüfschaltung vorhanden ist, damit Daten aus einem Akkumulator oder einem Register ausgelesen werden können. Beim Fehlen eines Prüfsignals arbeitet der Mikroprozessor normal, jedoch wird, wenn das Prüfsignal vorhanden ist, die gesamte Verarbeitung durch den Mikroprozessor angehalten, mit Ausnahme von Daten, die unter Steuerung der Prüfschaltung ausgelesen werden.
  • Daher schlägt die Erfindung einen Mikroprozessor mit folgendem vor:
  • (a) einem Befehlspuffer zum Halten einer Vielzahl von aus einem Speicher ausgelesenen Befehlsworten;
  • (b) einem mit dem Befehlspuffer verbundenen Befehlsdecoder zum Decodieren von Befehlswörtern und Herstellen von decodierten Ergebnissen;
  • (c) einer mit dem Befehlsdecoder verbundenen Befehlsausführeinheit mit einer Betriebsvorrichtung und Betriebsregistern zum Ausführen des Befehls;
  • (d) einem mit der Befehlsausführeinheit verbundenen Adressensteuergerät mit einem Befehlsauslese-Zeiger zum Kennzeichnen einer Adresse;
  • (e) einer mit dem Befehlspuffer, der Befehlsausführeinheit und dem Adressensteuergerät verbundenen Bussteuerschaltung mit einer Zyklusänderungsschaltung, die ausgelegt ist, um einen Buszyklus zum Ausgeben interner Information des Mikroprozessors einzufügen, wenn ein Bus-Anforderungssignal und ein spezielles Buszyklus-Anforderungssignal an die Zyklusänderungsschaltung geliefert werden, wobei das Bus-Anforderungssignal Priorität vor dem speziellen Buszyklus-Anforderungssignal hat und durch den Mikroprozessor erzeugt wird; wobei
  • (f) der Befehlspuffer, der Befehlsdecoder, die Befehlsausführeinheit, das Adressensteuergerät und die Bussteuerschaltung alle in einem einzigen Halbleiterbauelement enthalten sind, der Speicher ein externer Speicher ist, der Mikroprozessor ausgelegt ist, um eine Vielzahl von Befehlsworten aus dem externen Speicher vorauszulesen, un das Adressensteuergerät ausgelegt ist, um eine Adresse zum Auslesen der Befehlsworte aus dem externen Speicher zu halten.
  • Diese spezielle Funktion des Einfügens eines Buszyklus kann entweder durch die Hardware einer externen Bussteuerschaltung oder einer begleitenden Schaltung oder durch Firmware wie eine Mikroprogrammsteuerung realisiert werden. Die Information innerhalb des Mikrocomputers, die im speziellen Buszyklus nach außen auszugeben ist, ist beispielsweise die Adresse (die eine logische Adresse statt eine physikalische Adresse sein kann) des ausgeführten Befehls in einem Speicherraum, den Befehlscode oder den Code zum Kennzeichnen des ausgeführten Befehls in der vorab ausgelesenen Befehlsgruppe gegeben.
  • Bei der Emulation eines Systems unter Verwendung eines Mikroprozessors vom Befehlsvorabauslesetyp, entsprechend der oben beschriebenen Maßnahme, kann der Befehl, der ausgeführt wurde, von außen leicht erkannt werden, wodurch genaue Emulationsanalyse ermöglicht ist und die Analyse von Protokolldaten erleichtert ist, um den Wirkungsgrad bei der Fehlersuche zu verbessern.
  • Da ein intern nutzloser, spezieller Buszyklus eingefügt ist, ist das Verhalten nicht vollständig ein Echtzeitverhalten. Jedoch existiert im Vergleich mit bekannten Systemen zum Herausleiten interner Information zur Außenseite des Mikroprozessors durch Ausführen einer vorbestimmten Befehlsserie durch eine Interruptfunktion nur eine sehr kleine Beeinträchtigung im Echtzeitverhalten, da die Einfügung nur für einen Zyklus erfolgt.
  • Die Erfindung kann es so einem Mikroprozessor vom Befehlsvorabauslesetyp ermöglichen, interne Information wie die Adresse eines ausgeführten Befehls nach außen zu leiten, ohne dass die Anzahl von Stiften erhöht wird oder eine komplizierte externe Schaltung hinzugefügt wird.
  • -Die Erfindung kann es auch einem Mikroprozessor ermöglichen, nach außen interne Information zu leiten, ohne dass sich sein Echtzeitverhalten wesentlich verschlechtert. Ein derartiger Mikroprozessor kann demgemäß hohe Flexibilität aufweisen, was eine Zunahme der erforderlichen Informationsmenge ermöglicht.
  • Die Erfindung kann ferner eine innerhalb der Schaltung befindliche Emulationseinrichtung schaffen, die leicht die Ausführung eines Programms an einem korrekten Anhaltepunkt unterbrechen oder eine Protokollführung zu einem gewünschten Moment bei der Emulation eines Mikrocomputers mit einem Befehlsregister oder Cache zum Vorabauslesen mehrerer Befehle starten kann.
  • Die Erfindung kann auch einen Mechanismus schaffen, der leicht, von dessen Außenseite her, den internen Zustand eines Mikroprozessors erkennen kann, wie zur Fehlerbeseitigung im System oder im Mikroprozessor erforderlich, wie den Inhalt eines Registers zum Zwischenspeichern des Ergebnisses einer arithmetischen oder logischen Operation.
  • Nun werden Ausführungsformen der Erfindung im einzelnen beispielhaft unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.
  • Fig. 1 ist ein Blockdiagramm, das ein erstes Ausführungsbeispiel eines Mikroprozessors gemäß der Erfindung zeigt;
  • Fig. 2 ist ein zeitbezogenes Diagramm, das Betriebsabläufe im speziellen Buszyklus-Einfügemodus des in Fig. 1 dargestellten Mikroprozessors zeigt;
  • Fig. 3 ist eine perspektivische Ansicht, die ein Beispiel des Aufbaus der innerhalb der Schaltung vorhandenen Emulationseinrichtung zeigt;
  • Fig. 4 ist ein Blockdiagramm, das einen Teil eines Mikrocomputersystems unter Verwendung eines erfindungsgemäßen Mikroprozessor und eines Emulationssystems zeigt;
  • Fig. 5 ist ein Blockdiagramm, das ein zweites Ausführungsbeispiel eines erfindungsgemäßen Mikroprozessors zeigt;
  • Fig. 6 ist ein Blockdiagramm, das ein drittes Ausführungsbeispiel eines erfindungsgemäßen Mikroprozessors zeigt;
  • Fig. 7 ist ein Blockdiagramm, das ein viertes Ausführungsbeispiel eines erfindungsgemäßen Mikroprozessors zeigt;
  • Fig. 8 ist ein zeitbezogenes Diagramm, das Betriebsabläufe im speziellen Buszyklus-Einfügemodus des in Fig. 7 dargestellten Mikroprozessors zeigt;
  • Fig. 9 ist ein Blockdiagramm, das ein Beispiel der externen Bussteuerung 11 und der speziellen Buszyklus-Erzeugungseinrichtung 19 des in Fig. 1 dargestellten Mikroprozessors zeigt;
  • Fig. 10 zeigt ein Beispiel eines Buszustands-Übergangsdiagramms des in Fig. 1 dargestellten Mikroprozessors;
  • Fig. 11 zeigt die Anordnung des Speichers mit Befehlen a bis d des Programms;
  • Fig. 12 zeigt Positionen über den Speicher mit den Ausführungsbefehlen hinweg, wie durch den speziellen Buszyklus angegeben;
  • Fig. 13 ist ein Blockdiagramm, das ein Beispiel der innerhalb der Schaltung befindlichen Emulationseinrichtung zeigt;
  • Fig. 14 ist ein Blockdiagramm, das die externe Bussteuerung 11 und die spezielle Buszyklus-Erzeugungseinrichtung 19 des in Fig. 7 dargestellten Mikroprozessors zeigt; und
  • Fig. 15 zeigt ein Beispiel eines Buszustands-Übergangsdiagramm des in Fig. 7 dargestellten Mikroprozessors.
  • Fig. 1 zeigt ein Ausführungsbeispiel für den Fall, dass die Erfindung auf einen Mikroprozessor vom Befehlsvorabauslesetyp angewandt ist.
  • Jeder Schaltungsblock, wie er in Fig. 1 dargestellt ist, ist auf einem Halbleiterchip wie einem einkristallinen Siliziumsubstrat ausgebildet, obwohl keine spezielle Beschränkung hierauf besteht.
  • Der Mikroprozessor dieses Ausführungsbeispiels ist ein solcher mit zwei Befehlspuffern loa und lob vom FIFO-Typ, von denen jeder zwei Befehlscodes von 16 Bits speichern kann, wobei jedoch keine spezielle Beschränkung hierauf besteht. Es ist auch eine externe Bussteuerung 11 zum Steuern des Buszyklus vorhanden, mit der ein Adressenbus ADB von 30 Bits und ein Datenbus DTB von 32 Bits verbunden sind. Die externe Bussteuerung 11 liest Befehlscodes oder Daten mit einer Breite von 32 Bits jeweils auf einmal über den Datenbus DTB aus einem externen Speicher aus. Darüber hinaus werden die Befehlscodes mit einer Breite von 32 Bits, die so auf einmal im Befehlsauslesezyklus ausgelesen wurden&sub1; in zwei Codes von 16 Bits aufgeteilt, die jeweils in die oben genannten zwei Befehlspuffer 10a bzw. 10b eingespeichert werden.
  • Übrigens verfügt ein Befehlswort des Mikroprozessors dieses Ausführungsbeispiels über eine variable Länge von 16 Bits × n (n: positive, ganze Zahl). Bei diesem Ausführungsbeispiel ist darüber hinaus die externe Bussteuerschaltung 11 dazu in die Lage versetzt, Bytecodes BC0 bis BC3 von vier Bits zu erzeugen und auszugeben, damit sie einen Befehl mit einer Einheit von 16 Bits auslesen und Daten mit Byteeinheit lesen/schreiben kann. Diese Bytecodes BC0 bis BC3 werden im allgemeinen auf Grundlage entweder des insignifikanten Bits 1 eines Befehlsauslesezeigers lsa oder der insignifikanten zwei Bits der Adresse von 32 Bits, wie über einen internen Bus 18 von einer Operationsverarbeitungseinheit 17 geliefert, erzeugt.
  • Die in den oben genannten Befehlspuffern 10a und 10b abgespeicherten Befehlscodes können wahlweise über eine Auswähleinrichtung 12 an einen Befehlsdecodierer 13 mit einer Breite von 16 Bits oder eine Einrichtung 14 für sofortige Erzeugung mit einer Breite von 32 Bits geliefert werden. Die eben genannte Auswähleinrichtung 12 wird durch ein Steuersignal SC, das von einer Befehlsadressensteuerung 15 mit einem Befehlscodezeiger lsb herrührt, zu einem geeigneten Zeitpunkt geschaltet.
  • Der Befehlsdecodierer 13 decodiert den ihm zugeführten Befehlscode, und er erkennt die Befehlslänge, um die oben genannte Befehlsadressensteuerung 15 durch ein Signal WL zu informieren oder um eine Operationssteuerschaltung 16 vom Mikroprogramm-Steuerungstyp zu starten. Diese Operationssteuerschaltung 16 erzeugt ein Steuersignal für die Operationsverarbeitungseinheit 17 mit einer Arithmetikvorrichtung, d.h. einer Einheit für arithmetisch-logische Operationen, oder mit einer Universalregistergruppe, um dadurch eine Verarbeitung entsprechend dem im Befehlsdecodierer 13 abgespeicherten Befehlscode auszuführen.
  • Das Operationsergebnis wird über den internen Bus 18 mit der Breite von 64 Bits (der aus zwei Sätzen mit einer Breite von 32 Bits besteht) an die externe Bussteuerung 11 oder die Befehlsadressensteuerung 15 geliefert. Andererseits werden die vom externen Speicher gelesenen Daten über den internen Bus 18 an die Operationsverarbeitungseinheit 17 geliefert. Wenn die Daten von außen her einzulesen sind, wenn die Daten nach außen hin zu schreiben sind oder wenn ein Befehl von außen her einzulesen ist, wird von der Operationssteuerschaltung 16 ein Datenzugriffs-Anforderungssignal DAR an die externe Bussteuerung 11 geliefert.
  • Bei diesem Ausführungsbeispiel ist die oben genannte Befehlsadressensteuerung 15 zustzlich zum Befehlsauslesezeiger 15a zum Einspeichern der Befehlsausleseadresse mit folgendem versehen: dem Befehlscodezeiger 15b mit einer Breite von 31 Bits zum Anweisen, welcher der in die oben genannten Befehlspuffer 10a und 10b eingelesenen Befehlscodes auszuführen ist; und einen Programmzähler 15c zum Einspeichern der führenden Adresse eines auszuführenden Befehis. Das geringssignifikante Bit 1 des Befehlscodezeigers 15b wird als Auswähleinrichtungs-Steuersignal SC an die oben genannte Auswähleinrichtung 12 geliefert. Der Befehlscodezeiger 15b wird durch die Länge des Befehlsworts automatisch auf Grundlage des Signals WL inkrementiert, das die Wortlänge des vom Befehlsdecodierer 13 her kommenden, auszuführenden Befehls anzeigt.
  • Andererseits wird die Befehlsausleseadresse mit einer Länge von 31 Bits, wie im Befehlsauslesezeiger 15a abgespeichert, an die externe Bussteuerung 11 geliefert, die die signifikanteren 30 Bits derselben an den externen Adressenbus ADB ausgibt. Der Befehlsauslesezeiger 15a wird automatisch aktualisiert, bis die Befehlspuffer 10a und 10b vollständig belegt sind. Im Fall eines Verzweigungsbefehls wird die von der Operationsverarbeitungseinheit 17 gelieferte Zieladresse nicht nur in den Befehlscodezeiger 15b eingeschrieben, sondern auch in den Programmzähler lsc. Dieser Programmzähler 15c ist so ausgebildet, dass er eine Breite von 31 Bits aufweist. Wenn die Datenposition z. B. durch eine Relativadresse angegeben wird, wird der Wert des Programmzählers 15c über den internen Bus 18 an die Operationsverarbeitungseinheit 17 geliefert, so dass der durch Addieren eines Verschiebewerts (oder Versatzes) erhaltene Wert als Adresse nach außen ausgegeben wird. Die Einrichtung 14 für unmittelbare Erzeugung ist so ausgebildet, dass sie eine Breite von 32 Bits aufweist und auf das Steuersignal des Befehlsdecodierers 13 hin dem Befehlswort einen unmittelbaren Wert entnimmt und diesen an die Operationsverarbeitungseinheit 17 liefert.
  • Bei diesem Ausführungsbeispiel ist die oben genannte externe Bussteuerung 17 mit einem Spezielbuszyklus-Generator 19 versehen.
  • Andererseits wird ein Befehlsausführungs-Endesignal ENDE an jedem Befehlsende von der Operationssteuereinheit 16 an den Spezialbuszyklus-Generator 19 und die Befehlsadressensteuerung 15 geliefert. Auf dieses Signal hin wird der Programmzähler 15c mit dem Wert (d.h. der Adresse des auszuführenden Befehls) des Befehlscodezeigers geladen, und der Spezialbuszyklus-Generator 19 wird mit dem geringstsignifikanten Bit des Programmzählers 15c versorgt. Dabei werden die Befehlspuffer 10a und 10b gelöscht.
  • Andererseits wird der Spezialbuszyklus-Generator 19 auf ein Moduszuordnungssignal wie eine Spezialbuszyklus-Anforderung SBR, die von außen herrührt, hin gültig geschaltet, und er beliefert die externe Bussteuerung 11 mit einem Steuersignal zum Einfügen des speziellen Buszyklus für Ausgabe nach außen, wobei das vordere Ende eines Befehls (von 16 Bits × n (n: ganze Zahl)), der als nächster auszuführen ist, mehr oder weniger kennzeichnend für den Befehlscode mit einer Länge von 32 Bits ist, der gleichzeitig damit zwischengespeichert wurde.
  • Jedoch verfügt die externe Bussteuerung 11 über die Funktion, zu entscheiden, ob der spezielle Buszyklus oder ein anderer Buszyklus (oder Datenzyklus) zu bevorzugen ist.
  • Der Mikroprozessor dieses Ausführungsbeispiels zeigt an, ob der als nächstes auszuführende Befehl zur stärker oder weniger signifikanten Seite der 32 Bits gehört, und zwar durch Ausgeben eines dem geringstsignifikanten Bit des Programmzählers 15c in den Bytecodes BC0 bis BC3 entsprechenden Signals durch den speziellen Buszyklus. Da darüber hinaus die Befehlspuffer 10a und 10b bei diesem Ausführungsbeispiel zum Zeitpunkt des Einfügens des speziellen Buszyklus gelöscht werden, wird der nächste Befehlscode erneut im nächsten Zyklus ausgelesen, selbst wenn er bereits einmal ausgelesen wurde. Dies ermöglicht es, den auszuführenden Befehlscode zu erfahren, und zwar angesichts des Signals auf dem Datenbus im Zyklus benachbart zum speziellen Buszyklus.
  • Jedoch können alle Bits des Programmzählers 15c im speziellen Buszyklus ausgegeben werden, anstatt dass die Daten ausgegeben werden, wie sie dem geringstsignifikanten Bit des Programmzählers 15c entsprechen, und zwar zum Zeitpunkt des Einfügens des speziellen Buszyklus. In diesem Fall reicht es aus, den Adressenbus ADB und die Bytecodes BC0 bis BC3 zusammen zu verwenden. Dann ist der als nächstes ausgeführte Befehl von außen her selbst dann erkennbar, wenn die Befehlspuffer 10a und 10b nicht gelöscht werden.
  • Beim Mikroprozessor dieses Ausführungsbeispiels zeigen darüber hinaus die Signale BAT0 bis BAT2 von drei Bits vom Buszugriffstyp an, dass der Buszyklus ein spezieller ist, wenn dieser spezielle Buszyklus ausgeführt wird. Diese Signale BAT0 bis BAT2 vom Buszugriffstyp werden dazu verwendet, nicht nur den speziellen Buszyklus sondern auch einen Befehisauslesezyklus, einen Datenschreibzyklus, einen Datenlesezyklus oder einen Befehlslieferungszyklus für einen Coprozessor zu kennzeichnen.
  • Übrigens wurde es beim vorstehenden Ausführungsbeispiel beschrieben, dass der Spezialbuszyklus-Generator 19 auf die externe Bussteuerung 11 folgt. Jedoch kann der Spezielbuszyklus-Generator 19 weder in einem Gehäuse mit der externen Bussteuerung 11 untergebracht sein, noch kann er mit dieser externen Bussteuerung 11 integriert sein.
  • Beim Mikroprozessor dieses Ausführungsbeispiels wird darüber hinaus auf eine Anfrage dadurch reagiert, dass der spezielle Buszyklus verwendet wird, wenn ein Interrupt angefordert ist. Dabei wird gesorgt, dass Codes (mit geringstsignifikanten drei Bits 000, 001, 010, 011, 100, 101 und 110), die die Interruptpegel 0 bis 6 anzeigen, auf dem Adressenbus ADB auftreten. Bei diesem Ausführungsbeispiel werden daher die geringstsignifikanten drei Bits 111 auf dem Adressenbus ADB, dem Code (mit der Adresse 0000001C in Hexadezimalnotation) zugeordnet, so dass der spezielle Buszyklus, der die höhere/geringere Bedeutung des als nächstes auszuführenden Befehls anzeigt, aus dem speziellen Buszyklus für die Interruptreaktion erkannt werden kann.
  • Beim vorstehenden Ausführungsbeispiel ist darüber hinaus der spezielle Buszyklus, der die höhere/geringere Bedeutung anzeigt, unmittelbar vor der Befehlsausführung eingefügt. Jedoch kann der spezielle Buszyklus nach dem Befehlsausführungszyklus eingeführt sein, um im nächsten Buszyklus nach außen hin mitzuteilen, ob der ausgeführte Befehl höhere oder geringere Bedeutung aufweist, und zwar durch Liefern des geringstsignifikanten Bits der Adresse des vorangehenden Befehls an den Spezialbuszyklus-Generator 19, und durch Einspeichern desselben im Generator 19, gleichzeitig mit dem Laden der Befehlsadresse aus dem Befehlscodezeiger 15b in den Programmzähler 15c im Mikroprozessor des Ausführungsbeispiels von Fig. 1.
  • Fig. 9 zeigt ein Beispiel für die externe Bussteuerung 11 und den Spezialbuszyklus-Generator 19 beim Mikroprozessor von Fig. 1.
  • In Fig. 9 bezeichnet die Bezugszahl 101 ein Adressenausgaberegister, die Zahl 102 einen Spezialadressengenerator, die Zahl 103 eine Änderungsschaltung für einen normalen/speziellen Zyklus, die Zahl 104 einen Bytecodegenerator, die Zahl 105 einen Generator vom Buszugriffstyp, die Zahl 106 ein Dateneingaberegister, die Zahl 107 ein Datenausgaberegister, die Zahlen 108 und 109 Auswähleinrichtungen und die Zahl 110 eine Interrupterkennungsschaltung
  • Das Adressenausgaberegister 101 speichert eine Adresse von 32 Bits ein, um auf die Daten eines externen Speichers zuzugreifen, wie von der Operationsverarbeitungseinheit 17 über den internen Bus 18 geliefert. Die Auswähleinrichtung 108 wählt entweder das Ausgangssignal des Adressenausgaberegisters 101 oder das Ausgangssignal des die Befehlsauslesead resse einspeichernden Befehlsauslesezeigers isa auf ein Datenbefehlssignal DI hin aus, das anzeigt, ob auf die Daten oder den Befehl des Signals vorn Buszugriffstyp, wie von der Befehlsausführungseinheit 20 ausgegeben, zuzugreifen ist. Da das Ausgabesignal des Befehlsauslesezeigers 15a bei diesem Ausführungsbeispiel eine Länge von 31 Bits aufweist, hat die Auswähleinrichtung 108 die Funktion, das geringstsignifikante Bit ihres Ausgangssignals auf "0" zu setzen, damit sich eine Länge von 32 Bits ergibt, wenn sie das Ausgangssignal des Befehlsauslesezeigers 15a auswählt.
  • Der Spezialadressengenerator 102 erzeugt eine spezielle Adresse, wie sie in einem speziellen Buszyklus an den Adressenbus ADB auszugeben ist, und zwar auf den Interruptanforderungspegel des Ausgangssignals der Interrupterkennungsschaltung 110 und das Spezialbuszyklus-Anforderungssignal SBR hin. Die Interrupterkennungsschaltung 110 ist eine solche, die dazu dient, zu entscheiden, ob ein Interrupt anzunehmen ist oder nicht, und zwar durch Vergleichen des von außen kommenden Interruptanforderungspegel-Signals mit einem Interruptmaskenpegel im Mikroprozessor. Wenn der Interrupt angenommen wird, liefert die Interrupterkennungsschaltung 110 den Annahmepegel an den Spezialadressengenerator 102, und sie aktiviert ein Interruptgewährungssignal INT, das die Annahme des Interrupts anzeigt.
  • Auf das Interruptgewährungssignal INT, das Datenzugriffsanforderungs-Signal DAR, das Spezialbuszykluserzeugungs-Anforderungssignal SBR und das Anweisungsausführungsende-Signal ENDE hin, erzeugt die Änderungsschaltung 103 für einen normalen/speziellen Zyklus ein Signal NS für die Auswähleinrichtung 109 zum Auswählen eines der Ausgangssignale der Auswähleinrichtung 108 und des Spezialadressengenerators 102, ein Signal INTC, das den Interruptzyklus anzeigt und ein Signal SBC, das den Spezialbuszyklus anzeigt.
  • Der Bytecodegenerator 104 beliefert die Bytecode-Ausgabeschaltung mit Bytecodedaten, wie für die einzelnen Zyklen erforderlich, und zwar auf die geringstsignifikanten zwei Bits der Adresse von 32 Bits, ein Signal DW, das die Breite der von der Befehlsausführungseinheit 20 ausgegebenen Zugriffsdaten anzeigt, das den Interruptzyklus anzeigende Signal INTC, das den speziellen Buszyklus anzeigende Signal SBC und das geringstsignifikante Bit des Programmzählers 15c hin. Im speziellen Buszyklus gibt, gemäß diesem Ausführungsbeispiel, auf das geringstsignifikante Bit des Programmzählers 15c hin, der Bytecodegenerator 104 einen Bytecode aus, um nach außen auszugeben, ob der Kopf des als nächstes auszuführenden Befehis zur mehr oder weniger signifikanten Seite des Befehlscodes einer Länge von 32 Bits, wie gleichzeitig ausgelesen, gehört.
  • Der Buszugriffstyp-Generator 105 liefert die Buszugriffstyp- Daten auf das den Interrupt anzeigende Signal INTC, das den speziellen Buszyklus anzeigende Signal SBC und das Buszugriffstyp-Signal, wie von der Befehlsausführungseinheit 20 ausgegeben, hin an die Buszugriffstyp-Ausgabeschaltung. Im Interruptzyklus und im speziellen Buszyklus sind die gemäß diesem Ausführungsbeispiel ausgegebenen Buszugriffstyp-Signale BAT0 und BAT2 "010".
  • Das Dateneingaberegister 106 und das Datenausgaberegister 107 bilden Schnittstellen zwischen dem internen Bus 18 und der Daten-Eingabe/Ausgabe-Schaltung, und es sind Register zum Zwischenspeichern von Eingangs- und Ausgangsdaten.
  • Bei diesem Ausführungsbeispiel ist das Adressenausgaberegister 101 zwischen den internen Bus 18 und die Auswähleinrichtung 108 eingefügt, jedoch kann es auch zwischen die Auswähleinrichtung 108 und die Auswähleinrichtung 109 oder zwischen die Auswähleinrichtung 109 und die Adressenbus-Ausgangsschaltung eingefügt sein.
  • Fig. 10 zeigt ein Beispiel für den Zustandsübergang eines Buszyklus, wie von der externen Bussteuerschaltung 11 und dem Spezialbuszyklus-Generator 19 des Mikroprozessors von Fig. 1 zu steuern.
  • Der Buszyklus gelangt auf ein Signal RESET zum Initialisieren des Mikroprozessors, was in Fig. 1 nicht dargestellt ist, in einen Zustand Ti. Der Buszyklus befindet sich im Zustand Ti in einem Leerlaufzustand, und er geht in einen normalen Buszyklus (d.h. Zustände T0 und T1), einen speziellen Buszyklus (d.h. Zustände T0S und T1S) und einen Interruptstartzustand T2 über. Die übergänge vom Zustand T0 in den Zustand T1, vom Zustand T0S in den Zustand T1S und vom Zustand T2 in den Zustand T0S erfolgen bedingungsfrei.
  • Bei diesem Ausführungsbeispiel ist der Interruptzyklus einer der speziellen Buszyklen (d.h. der Zustände T01 und T1S), wobei jedoch keine spezielle Beschränkung hierauf besteht. Im speziellen Buszyklus (d.h. den Zuständen T0S und T1S) wird darüber hinaus das Befehlsausführungsende-Signal ENDE nicht erzeugt. Bei diesem Ausführungsbeispiel ist darüber hinaus das Interruptgewährungssignal INT bevorzugt, wenn dieses Interruptgewährungssignal INT und das Spezialbuszyklus-Anforderungssignal SBR gleichzeitig erzeugt werden. Bei diesem Ausführungsbeispiel werden darüber hinaus der normale Buszyklus und der spezielle Buszyklus automatisch ohne externe Bedingung beendet, jedoch können sie auf ein Bestäti gungssignal oder dergleichen hin beendet werden, das vorn externen Speicher her kommt. In diesem Fall wird der Zustand T1 oder T1S fortgesetzt, bis das Bestätigunqssignal eingegeben wird.
  • Fig. 2 zeigt die Betriebszeitpunkte der einzelnen Busse für den Fall, dass beispielsweise das folgende Programm im System unter Verwendung des oben genannten Mikroprozessors ausgeführt wird.
  • Der Befehl BEQ an der Adresse 100 beim vorstehend angegebenen Programm ist der Beginn einer Verzweigung, und durch Ausführung des Verzweigungsbefehls wird der Operationszeitpunkt für den Sprung auf MARKE1 (bei der Adresse 1002) übersprungen.
  • Gemäß Fig. 2 werden in einem Buszyklus Sl inmittelbar vor einem Buszyklus S2 zum Auslesen von Befehlen a und b die Buszugriffs-Signale BAT0 bis TAT2 als "010" ausgegeben, um anzuzeigen, dass der Buszyklus ein spezieller ist. In diesem Buszyklus S1 wird darüber hinaus die Byteposition des führenden Endes des auszuführenden Befehis aus den Befehiscodes von 32 Bits, wie als nächstes auszulesen, durch die Bytecodes BC0 bis BC3 (1101) klargestellt. In Fig. 2 ist die führende Position des auszuführenden Befehls durch "0" von BC0 bis BC3 angezeigt. Im nächsten Buszyklus S2 werden darüber hinaus die Befehlscodes a und b über den Datenbus ausgelesen (und gleichzeitig ausgeführt, da das Befehisregister gelöscht ist) 6 Daher zeigt es sich, dass der im Buszyklus S2 auszuführende Befehl der Befehl b ist (ADD #1, R0.w).
  • Im Operationszeitablauf gemäß Fig. 2 ist der spezielle Buszyklus erneut in einem Buszyklus S3 benachbart zum Buszyklus S2 eingefügt, um nach außen mitzuteilen, ob der im nächsten Buszyklus S4 auszuführende Befehl zur höher/weniger signifikanten Seite des ausgelesenen Befehlsworts (von 32 Bits) gehört.
  • Da sich in Fig. 2 die Bytes BC0 bis BC3 im speziellen Buszyklus S3 auf 0111 befinden, zeigt es sich, dass der Befehl c (MOV R1.w, @R0.h) unter den ausgelesenen Befehlen c und d derjenige ist, der im nächsten Buszyklus S4 ausgeführt wird. Da dieser Befehl c ein Datenübertragungsbefehl ist, wird das Befehlsausführungsende-Signal ENDE ausgegeben, nachdem der Datenschreibzyklus in einem Buszyklus S5 ausgeführt wurde.
  • So ergibt es sich aus Fig. 2, dass der spezielle Buszyklus in einem nächsten Buszyklus S6 eingefügt wird.
  • Fig. 11 zeigt die Beziehungen zwischen den Daten des geringstsignifikanten Bits im Programmzähler 15c und den Bytecodes BC0 bis BC3, die Entsprechungen zwischen den Adressen des Speichers und den Bytecodes BC0 bis BC3 sowie die Anordnungen der oben genannten Programmbefehle a bis d über den Speicher hinweg.
  • Bei diesem Ausführungsbeispiel ist der Befehl eine positive, ganze Zahl mit einer Länge von 16 Bits, und der Kopf eines Befehis liegt immer an einer ganzzahligen Adresse. So sind die Bytecodes zum Zeitpunkt des speziellen Buszyklus nur für BC0 und BC2 "0". Übrigens sind die Bytecodes BC0 bis BC3 zum Zeitpunkt eines Befehisauslesezyklus "0000".
  • Fig. 12 zeigt die Bytecodes BC0 bis BC3 der speziellen Buszyklen (d.h. der Buszyklen S1, S3 und S6) von Fig. 2, und es ist die Kopfposition im Speicher für den Befehl schraffiert, der durch einen Buszyklus benachbart zum speziellen Buszyklus auszuführen ist, wie durch die Adresse auf dem Adressenbus ADB gekennzeichnet, wie sie in Buszyklen (d.h. S2, S4 und S7) benachbart zum speziellen Buszyklus ausgegeben wird. So können die im Mikroprozessor von Fig. 1 ausgeführten Befehle von außen dadurch erkannt werden, dass die Bytecodes BC0 bis BC3 der speziellen Buszyklen, der Adressenbus ADB und der Datenbus DTB für Buszyklen benachbart zum speziellen Buszyklus usw. überwacht werden.
  • Fig. 2 zeigt nur den Fall, dass ein Befehl von einem Wort (mit einer Länge von 16 Bits) ausgeführt wird. Wenn ein Befehl von zwei Wörtern oder mehr ausgeführt wird, werden zwei oder mehr Befehiszyklen zusammenhängend ausgeführt, wie bei den oben genannten Buszyklen S4 und S5.
  • Übrigens ist der Mikroprozessor beim obigen Ausführungsbeispiel vom Typ, bei dem alle Befehle von außen eingelesen werden. Jedoch können die Befehle intern gelesen werden, wenn intern ein Cachespeicher untergebracht wird. Da jedoch in diesem Fall nicht von außen auf den Befehl zugegriffen werden kann, der in den Befehispuffer eingelesen wird, muss der Betrieb des Cachespeichers im Spezialbuszyklus-Einfügemodus unterbrochen werden, damit der Befehl von außen eingelesen werden kann. Daher kann das von außen zugeführte Spezialbuszyklus-Anforderungssignal SPR als Anforderungssignal zum Unterbrechen des Betriebs des Cachespeichers wirken.
  • Fig. 3 zeigt ein Beispiel für den Systemaufbau einer innerhalb der Schaltung befindlichen Emulationseinrichtung zum Emulieren eines Mikrocornputersystems (oder eines Nutzersystems) unter Verwendung des Mikroprozessors des obigen Ausführungsbeispiels.
  • In Fig. 3 bezeichnet die Bezugszahl 1 eine Mikrocomputersystem-Platine, die als von einem Nutzer entwickeltes Nutzersystem wirkt und hinsichtlich Störungen zu bereinigen ist, und die Zahl 2 kennzeichnet einen Emulatorkasten, der, wie in Fig. 13 dargestellt, folgendes enthält: einen Emulationsmikroprozessor 41, der die Funktion des Mikroprozessors im oben genannten Nutzersystem 1 ersetzt; einen Protokolispeicher 21 zum Abtasten und Einspeichern eines Signals auf dem Bus des Nutzersystems während der Emulation; eine Emulationssteuereinheit 203 zum Erzielen der Emulation oder verschiedener Stirbeseitigungsfunktionen; eine Anhaltepunkt- Steuerschaltung 204 zum Einstellen der Bedingungen zum Starten der Ausführung des Programms oder zum Beenden der Protokollierung, um das Programm zu unterbrechen oder eine Protokollführung vorzunehmen, wenn die Bedingungen gelten; und einen Emulationsspeicher 205, der zu verwenden ist, falls im Nutzersystem kein Speicher vorhanden ist. Der Verbinder 3a am vorderen Ende eines sich vom Gehäuse des Emulatorkastens 2 aus erstreckenden Kabels 3 ist in einen Sockel für einen Zielprozessor des Nutzersystems 1 eingesteckt und mit dem Nutzersystem verbunden. Gleichzeitig ist der Ernulatorkasten 2 über ein anderes Kabel 4, das sich von seinem Gehäuse aus erstreckt, mit einer Emulatorstation 5 verbunden, in der eine serielle Schnittstelle 206 für Datenkommunikationsvorgänge mit dem Hostcomputer, ein Mikrocomputer (eine Steuer-CPU) 207 zum Steuern der Schnittstelle, ein Diskettenlaufwerk (FDD) 5a usw. untergebracht sind. Der Hostcomputer kann beispielsweise ein Minicomputer, eine Ingenieursworkstation oder ein PC sein.
  • Aus dem oben genannten Gehäuse 5 der Emulatorstation erstrecken sich ein Druckeranschlusskabel 6a, ein Hostcomputer-Anschlusskabel 6b und ein CRT-Anzeigeanschlusskabel 6c. Die Zahl 7 kennzeichnet eine Sonde zum Abtasten eines beliebigen Signais aus dem Nutzersystem 1.
  • Fig. 4 zeigt in repräsentativer Weise ein Beispiel des Aufbaus des oben genannten Nutzersystems 1, wobei damit nur der Protokolispeicher 21 des Emulators verbunden ist.
  • In Fig. 4 bezeichnet die Bezugszahl 41 einen erfindungsgemäßen Mikroprozessor, wie in Fig. 1 dargestellt. Dieser Mikroprozessor 41 ist mit einem Speicher 43, der Programme oder Daten einspeichert, einer Peripherievorrichtung 44, wie einer Festplattensteuerung, einem Protokolispeicher 21, einem Steuerschalter 45 zum Erzeugen des Spezialbuszyklus-Anforderungssignals SBR usw. über einen Systembus 42 verbunden, der aus dem Adressenbus ADB den Datenbus DTB, einem Steuerbus CTB usw. besteht.
  • Übrigens sind die CPU 41 und der Steuerschalter 45 in Fig. 4 auf der Seite des Benutzersystems angeordnet, jedoch können sie auf der Seite des Ernulatorkastens 2 angeordnet sein, so dass die CPU 41 als Ersatzmikroprozessor arbeiten kann.
  • Die Tabelle 1 zeigt einen Teil der Daten, wie sie durch Ernulieren des Nutzersystems 1 unter Verwendung des Mikroprozessors des Ausführungsbeispiels von Fig. 1 durch die in der Schaltung befindliche Emulationseinrichtung von Fig. 1 in den Protokolispeicher 21 eingespeichert werden. Tabelle 1
  • In der Tabelle 1 sind die zur mit AB gekennzeichneten Spalte gehörigen Daten die Datengruppe (mit der Absolutadresse) wie sie vom Adressenbus abgetastet wurden; die zur mit DB gekennzeichneten Spalte gehörigen Daten sind die vom Datenbus abgetastete Datengruppe; die mit BC gekennzeichneten Spalte gehörenden Daten sind die von den Bytecodes BC0 bis BC3 abgetastete Datengruppe; die Buchstaben R/W kennzeichnen ein Lese/Schreib-Steuersignal; und die Buchstaben BAT kennzeichnen Signale vorn Buszugriffstyp, wie für einfaches Verständnis abgetastet und aufgezeichnet.
  • In der Tabelle 1 sind die Codes in der Spalte DB in der mit PGM in der Spalte BAT gekennzeichneten Zeile Befehlscodes, und die Codes in der Spalte DB in der mit DAT gekennzeichneten Zeile sind Lese/Schreib-Daten. Darüber hinaus sind die Daten in der mit I/P in der Spalte BAT gekennzeichneten Zeile solche, die im jeweiligen Buszyklus abgetastet wurden. Aus der Spalte BC in dieser Zeile ist erkennbar, ob von den Befehlscodes in der Spalte DB hinsichtlich der Daten in der nächsten Zeile derjenige mit höherer oder geringerer Signifikanz ausgeführt wurde.
  • Fig. 5 zeigt ein zweites Ausführungsbeispiel der Erfindung.
  • Der Mikroprozessor dieses Ausführungsbeispiels ist mit vier Sätzen von Befehlspuffern 10, Befehlsdecodierern 13 und Befehlsausführungseinheiten 20 versehen, so dass er auf einmal vier Befehle auslesen kann und sie gleichzeitig parallel verarbeiten kann. Im Ergebnis kann die Verarbeitungsge schwindigkeit des Mikroprozessors verbessert werden.
  • Obwohl so vier Befehle parallel verarbeitet werden können, werden sie nicht immer gleichzeitig ausgeführt, das es erforderlich sein kann, dass ein Befehl auf die Ausführungs eines anderen warten muss. Im Ergebnis ist von außen nicht abrufbar, welcher Befehl auszuführen ist, selbst wenn der Befehispuffer 10 nur einstufig ist.
  • Bei diesem Ausführungsbeispiel ist daher der Spezialbuszyklus-Generator 19 vorhanden, um einen speziellen Buszyklus einzufügen, um an den externen Datenbus an jedem Ende eines Befehiszyklus den als nächstes auszuführenden Befehl auszugeben, wenn von außen ein Spezialbuszyklus-Anforderungssignal SBR eintrifft.
  • Dieser Spezialbuszyklus-Generator 19 wird am Ende der Befehlsausführung mit den Befehlsausführungsende-Signalen ENDE1 bis ENDE4 von den vier Befehlsausführungseinheiten 20a bis 20d versorgt. Darüber hinaus werden die oben genannten Befehlsausführungsende-Signale ENDE1 bis ENDE4 auch an die Befehlsadressensteuerung 15 geliefert. Diese Befehisadressensteuerung 15 ist mit einem Programmzähler und vier Befehlszählern zum Ausführen der Befehisadressen mit den jeweiligen Werten unter den Adressen in diesem Programmzähler versehen. Wenn eines der Befehlsausführungsende-Signale EN- DE1 bis ENDE4 empfangen wird, wird nur der entsprechende Befehiszeiger aktualisiert. Darüber hinaus wird ein Signal, das anzeigt, welcher Befehl ausgeführt wurde, dadurch an das Bussteuersignal BCT ausgegeben, dass der Wert des Zeigers an den Spezialbuszyklus-Generator 19 geliefert wird.
  • Der Mikroprozessor dieses Ausführungsbeispiels ist insbesondere beim Befehlstyp mit fester Länge wirkungsvoll.
  • Fig. 6 zeigt eine Modifizierung des Mikroprozessors des Ausführungsbeispiels von Fig. 5.
  • Der Mikroprozessor dieser Modifizierung unterscheidet sich vom Ausführungsbeispiel von Fig. 5 nur dadurch, dass eine Umschaltstufe 31 zusätzlich zwischen die Befehispuffer 10a bis 10d und die Befehlsdecodierer 13a bis 13d eingefügt ist.
  • Bei diesem Ausführungsbeispiel stehen die Befehlspuffer 10a bis 10d und die Befehlsdecodierer 13a bis 13d nicht in eineindeutiger Beziehung, so dass die Befehlscodes, wie sie aus den einzelnen Befehlspuffern 10a bis 10d ausgelesen werden, an einen beliebigen der Befehlsdecodierer geliefert werden können. Wenn die vier gleichzeitig ausgelesenen Befehle teilweise vorab ausgeführt werden, können sie wirkungsvoll dadurch verarbeitet werden, dass ein nächster Befehlscode in einen freien Befehlsdecodierer eingegeben wird.
  • Der Mikroprozessor dieses Ausführungsbeispiels ist auch mit dem Spezialbuszyklus-Generator 19 versehen, damit der Code des als nächstes auszuführenden Befehis und die Befehlsadresse nach außen ausgegeben werden können.
  • Fig. 7 zeigt ein Ausführungsbeispiel für den Fall, dass die Erfindung auf einen Mikroprozessor angewandt wird, der auch einen Cachespeicher beherbergt. Der Gesamtaufbau des Mikroprozessors ist im wesentlichen identisch mit dem von Fig. 1, und im Folgenden wird der Unterschied in der Hardware beschrieben.
  • In Fig. 7 bezeichnet die Bezugszahl 22 einen Cachespeicher, der im Mikroprozessor untergebracht ist. Die externe Bussteuerung 11 hat die Funktion, den Befehlscode an den Befehispuffer 10 zu liefern, und die Funktion, einen Datenoder Befehlszugriff nach außen abhängig vom Datenzugriffs- Anforderungssignal DAR der Befehlsausführungseinheit 20 erhalten. Beim Auslesen eines Befehis wird zunächst auf den Cachespeicher 22 zugegriffen. Der Befehlscode im Cachespeicher wird an den Befehispuffer 10 gegeben, und wenn ein Treffer vorliegt, wird auf den Adressenbus ADB zugegriffen, während im Fall eines Fehlschlags der Befehl aus dem externen Speicher ausgelesen wird.
  • Übrigens wird eine Übereinstimmungssteuerung dazu verwendet, die Übereinstimmung zwischen den Daten im externen Speicher und im Cachespeicher aufrechtzuerhalten, und sie überwacht die Aktualisierung der Daten im externen Speicher und sie entfernt entsprechende Daten aus dem Cachespeicher, wenn ihre Adresse mit der im Cachespeicher eingespeicherten Datenadresse übereinstimmt.
  • Die externe Bussteuerung 11 ist mit einer Adressenumsetztabelle (d.h. TLB: Umsetznachschlagepuffern) 11a versehen, wobei jedoch keine spezielle Beschränkung hierauf besteht, um eine von der Befehisadressensteuerung 15 oder der Befehisverarbeitungseinheit 17 über den internen Bus 18 gelieferte logische Adresse in eine physikalische Adresse umzusetzen.
  • Dieses Ausführungsbeispiel geht davon aus, einen Mikroprozessor vom Typ mit Befehlen fester Länge aufzubauen, und die Befehlsadressensteuerung 15 ist mit dem Befehisauslesezeiger 15a und dem Programmzähler 15c versehen.
  • Beim Mikroprozessor dieses Ausführungsbeispiels wird darüber hinaus im speziellen Buszyklus, wie er durch den Spezialbuszyklus-Generator 19 einzufügen ist, der Code des ausgeführten Befehis an den Datenbus DTB ausgegeben, und die logische Adresse im Programmzähler 15c wird als Befehlskennungsadresse an den Adressenbus ADB ausgegeben.
  • Nachfolgend werden die Betriebsabläufe beim oben genannten Mikroprozessor beschrieben.
  • Die externe Bussteuerung ii setzt als erstes die vom Befehisausiesezeiger isa angezeigte Adresse mittels der Adressenumsetztabelle 11a in eine physikalische Adresse um, sie liefert die physikalische Adresse zum Abrufen durch den Cachespeicher 22, sie liest den Befehlscode aus dem Cachespeicher 22 aus, wenn das Treffersignal H erhalten wird, und sie liefert den Befehlscode an den Befehispuffer 10. Der mittels des Befehlspuffers 10 ausgelesene Befehlscode wird an den Befehisdecodierer 13 übertragen und von diesem decodiert, um die Art des Befehis, die Erkennung des Adressiermodus, die Erzeugung des unmittelbaren Werts und die Betriebssteuerungsinformation zu entnehmen. Gemäß dieser Information führt die Befehlsausführungseinheit 20 Verarbeitungen wie eine Übertragung oder eine Operation an Daten aus.
  • Übrigens ist der Befehlsdecodierer 13 mit einem Puffer zum Einspeichern des Befehis vor dem ausgeführten Befehl versehen und er kann den Code des ausgeführten Befehis im speziellen Buszyklus auf den Datenbus DTB geben. Dieser Puffer kann in der externen Bussteuerung 11 oder im Spezialbuszyklus-Generator angeordnet sein.
  • An jedem Ende einer Befehisausführung wird das Befehlsausführungsende-Signal ENDE von der Betriebssteuerschaltung 16 ausgegeben, um die Befehisadressensteuerung 15 und den Spezialbuszyklus-Generator 19 über das Ende der Befehisausfüh rung zu informieren. Wenn die Notiz zum Ende dieses Befehis von der Befehlsadressensteuerung 15 empfangen wird, wird der Programmzähler 15c inkrementiert.
  • Übrigens ist der Programmzähler 15c mit einem Puffer zum Einspeichern des Werts vor einer Inkrementierung versehen und er kann eine Befehiskennungsadresse im speziellen Buszyklus auf den Adressenbus ADB ausgeben. Dieser Puffer kann in der externen Bussteuerung 11 oder im Spezialbuszyklus- Generator 19 angeordnet sein.
  • Wenn das Programm zu verzweigen ist, wird die Verzweigungsziel-Befehlsadresse, wie sie in der Befehisausführungseinheit 20 erstellt wird, über den internen Bus 18 an die Befehisadressensteuerung 15 geliefert und in den Programmzähler 15c und den Befehisauslesezeiger 15a eingetragen.
  • Wenn sich dagegen beim Zugriff auf den Cachespeicher 22 ein Fehlschlag ergibt, wird die oben genannte Umsetzungsadresse (oder physikalische Adresse) an den externen Adressenbus ADB ausgegeben, damit der Befehlscode über den Datenbus DTB aus dem externen Speicher abgerufen wird und an den Befehispuffer 10 geliefert wird. Gleichzeitig damit wird der ausgelesene Befehl an den Cachespeicher 22 geliefert und in diesen eingespeichert.
  • Der Auslesevorgang für den Befehl wird ausgeführt, während der Befehisausiesezeiger 15a automatisch inkrementiert wird, bis der Befehispuffer 10 vollständig belegt ist. Wenn der Befehispuffer 10 vollständig belegt ist, wird das Signal VOLL vom Befehispuffer 10 an die Befehisadressensteuerung 15 geliefert, um die Aktualisierung des Befehlsauslesezeigers 15a zu unterbrechen.
  • Beim oben genannten normalen Betriebsrnodus kann ein intern ausgeführter Befehl nicht von außerhalb des Prozessors erkannt werden, wenn sich der Befehlscode im Cachespeicher 22 befindet. Wenn bei diesem Ausführungsbeispiel das Spezialbuszyklus-Anforderungssignal SBR von außen her eingegeben wird, wird der Modus auf den Spezialbuszykius-Einfügemodus verstellt, in dem der intern ausgeführte Befehlscode und die Adresse, die die Position des Befehis anzeigt, nach außen ausgegeben werden. Bei den Betriebsabläufen des vorliegenden speziellen Modus wird die Befehisausführung im Prozessor ausgeführt, zusätzlich zum oben genannten normalen Modus. Jedesmal dann, wenn das Befehlsausführungsende-Signal ENDE ausgegeben wird, steuert der Spezialbuszykius-Generator 19 die externe Bussteuerung 11 so, dass sie, parallel mit der internen Befehisausführung, die Befehiskennungsadresse für den Befehl vor dem gerade ausgeführten Befehl sowie den Code für den ausgeführten Befehl an den freien Adressenbus ADB bzw. den Datenbus DTB liefert und das Signal zum Kennzeichnen des Buszugriffstyps oder des Datentyps als Code zum Kennzeichnen des speziellen Buszyklus an das Bussteuersignal BCT ausgibt.
  • Im Ergebnis können das Wort des ausgeführten Befehls im Prozessor und die Adresse dadurch erkannt werden, dass eine Beobachtung von der Außenseite des Prozessors her erfolgt. Dabei kann jedoch ein Konflikt mit dem internen Auslesen des Befehlsworts und dem Datenzugriff auf Grund eines Cache- Fehlschlags auftreten. Wenn jedoch die Anforderungen der mehreren Buszyklen in Konflikt stehen, erzeugt die externe Bussteuerung entsprechend einen externen Buszyklus mit vorbestimmter Priorität. Genauer gesagt, wird, im Spezialbus zyklus-Einfügernodus, der spezielle Buszyklus vor dem Buszyklus auf Grund des Cache-Fehlschiags erzeugt.
  • Im Fall eines Cache-Fehlschlags kann der spezielle Buszyklus folgend auf den Befehisausiesezyklus zum Zeitpunkt, zu dem der Prozessor den Befehl aus dem externen Speicher ausliest, eingefügt werden oder nicht. Der Zweck des Überwachens des externen Busses liegt darin, einen derartigen Befehlsauslesezyklus zu erkennen. Wenn jedoch der spezielle Buszyklus, der dies nach außen hin anzeigt, nicht folgend auf den Befehisauslesezyklus bei einem Fehlschlag eingefügt ist, kann der Vorteil erzielt werden, dass die Geschwindigkeit entsprechend wegen des Fehlens des speziellen Buszyklus erhöht werden kann, obwohl die Hardware selbst mehr oder weniger kompliziert ist.
  • Fig. 14 zeigt ein Beispiel für die externe Bussteuerung 11 und den Spezialbuszyklus-Generator 19 beim Mikroprozessor von Fig. 7.
  • In Fig. 14 bezeichnet die Bezugszahl 101 ein Adressenausgaberegister, die Zahl 102 einen Spezialadressengenerator, die Zahl 103 eine Änderungsschaitung für eine gewöhnlichen, einen Interrupt- und einen speziellen Zyklus, die Zahl 104 eine Bytecode-Erzeugungseinrichtung, die Zahl 105 eine Buszugriffstyp-Erzeugungseinrichtung, die Zahl 106 ein Dateneingaberegister, die Zahl 107 ein Datenausgaberegister, die Zahlen 108, 109, 111, 112 und 113 Auswähleinrichtungen und die Zahl 110 eine Interrupterkennungsschaltung. Die Strukturen der externen Bussteuerung 11 und des Spezialbuszyklus Generators 19 sind im wesentlich identisch mit denen von Fig. 9. Die Unterschiede in der Hardware werden im folgenden beschrieben.
  • Der Spezialadressengenerator 102 erzeugt eine spezielle Adresse, wie sie im Interruptzyklus an den Adressenbus ADB auszugeben ist, abweichend von Fig. 9, entsprechend dem Interruptanforderungspegel des Ausgangssignals der Interrupterkennungsschaltung 110.
  • Auf das Interruptsgewährungssignal INT, das Datenzugriffsanforderungs-Signal DAR, das Spezialbuszyklus-Erzeugungsanforderungssignal SBR und das Befehlausführungsende-Signal ENDE hin erzeugt die Änderungsschaltung 103 für einen gewöhnlichen, einen Interrupt- und einen speziellen Zyklus ein Signal NS1 zum Auswählen des Ausgangssignals der Auswähleinrichtung 108 oder des Ausgangssignals des TLB 11a oder des Ausgangssignals des Spezialadressengenerators 102 mittels der Auswähleinrichtung 109, ein Signal NS2 zum Auswählen des Ausgangssignals der Auswähleinrichtung 109 oder des Ausgangssignals des Programmzählers 105c zum Liefern der Befehlskennungsadresse mittels der Auswähleinrichtung 111 und zum Auswählen des Ausgangssignals des Datenausgaberegisters 107 oder des Ausgangssignals des Befehlsdecodierers 13 mittels der Auswähleinrichtung 112, ein den Interruptzyklus anzeigendes Signal INTC sowie ein den speziellen Buszyklus anzeigendes Signal SBC. Die Auswähleinrichtungen 111 und 112 haben die Funktion, die Bitlänge einzustellen, ähnlich wie die Auswähleinrichtung 109 von Fig. 9.
  • Die Bytecode-Erzeugungseinrichtung 104 beliefert die Bytecode-Ausgabeschaltung mit Bytecodedaten, wie sie für die einzelnen Zyklen erforderlich sind, und zwar auf die weniger signifikanten zwei Bits der Adresse von 32 Bits, ein Signal DW, das die Breite der von der Befehlsausführungseinheit 20 ausgegebenen Daten, auf die zuzugreifen ist, und ein Signal INTC hin, das den Interruptzyklus anzeigt.
  • Auf das vom Cachespeicher 22 herrührende Treffersignal H hin whlt die Auswähleinrichtung 113 den Befehl im Cachespeicher 22 oder den aus dem externen Speicher ausgelesenen Befehl aus und liefert ihn an den Befehispuffer 10 oder das Dateneingaberegister 106.
  • Die Bussteuersignal-Erzeugungseinrichtung 114 beliefert die Bussteuersignal-Ausgabeschaltung mit Kennungssignaldaten wie Buszugriffstypdaten und dem Datentyp auf das Signal INTC, das den Interruptzyklus anzeigt, das Signal SBC, das den speziellen Buszyklus anzeigt, und das Buszugriffstyp-Signal hin, wie von der Befehlsausführungseinheit 20 ausgegeben.
  • Das Adressenausgaberegister 101 ist bei diesem Ausführungsbeispiel zwischen den internen Bus und die Auswähleinrichtung 108 eingefügt, jedoch kann es zwischen die Auswähleinrichtung 108 und den TLB 11a, zwischen den TLB 11a und die Auswähleinrichtung 109, zwischen die Auswähleinrichtung 109 und die Auswähleinrichtung 111 oder zwischen die Auswähleinrichtung 111 und die Adressenbus-Ausgabeschaltung eingefügt sein.
  • Fig. 15 zeigt ein Beispiel für Zustandsübergänge der Buszyklen, wie sie von der externen Bussteuerschaltung 11 und dem Spezialbuszyklus-Generator 19 des Mikroprozessors von Fig. 7 zu steuern sind.
  • Der Zustand Ti wird auf das Signal RESET zum Initialisieren des Mikroprozessors, in Fig. 7 nicht dargestellt, erreicht. Im Zustand Ti befindet sich der Buszyklus im Leerlauf, und dieser Zustand geht in den normalen Buszyklus (d.h. die Zustände T0 und T1), den speziellen Buszyklus (d.h. die Zustände T0S und T1S) und den Interruptzustand T2 über, was in Kombination aus dem Datenzugriffsanforderungs-Signal DAR, dem Treffersignal H, dem Spezialbuszyklus-Anforderungssignal SBR, dem Befehlsausführungsende-Signai ENDE und dem Interruptgewährungssignal INT erfolgt. Die Übergänge vom Zustand T0 in den Zustand T1 sowie vom Zustand T0S in den Zustand T1S sind bedingungsfrei.
  • Dieses Ausführungsbeispiel unterscheidet sich vom Ausführungsbeispiel von Fig. 10 dahingehend, dass der Interruptzyklus nicht einer der speziellen Buszyklen (d.h. die Zustände T0S und T1S) sondern einer der normalen Buszyklen (d.h. die Zustände T0 und T1) sind, obwohl keine spezielle Beschränkung hierauf besteht. Bei diesem Ausführungsbeispiel ist darüber hinaus das Spezialbuszyklus-Anforderungssignal SBR bevorzugt, wobei jedoch keine spezielle Beschränkung hierauf besteht, wenn das Interruptgewährungssignal INT und das Spezialbuszyklus-Anforderungssignal SBR gleichzeitig erzeugt werden. Darüber hinaus wird der spezielle Buszyklus vorzugsweise auf Grund des Buszyklus wegen eines Cachefehlschlags erstellt. Noch ferner werden der normale Buszyklus und der spezielle Buszyklus bei diesen Ausführungsbeispiel ohne externe Bedingung automatisch beendet. Jedoch kann z. B. der Buszyklus auf ein Bestätigungssignai oder dergleichen hin beendet werden, das vom externen Speicher herrührt. In diesem Fall dauert der Zustand T1 oder T1S an, bis das Bestätigungssignal eingegeben ist.
  • Fig. 8 zeigt die Betriebszeitpunkte der einzelnen Busse, wenn das folgende Programm im System unter Verwendung des oben genannten Mikroprozessors ausgeführt wird:
  • Übrigens entsprechen die Betriebszeitpunkte von Fig. 8 dem Fall, bei dem die Befehle a bis d in den Cachespeicher 22 eingespeichert sind.
  • Gemäß Fig. 8 wird der Befehl a im Buszyklus S1 im Prozessor ausgeführt. Im Buszyklus S2 erfolgt folgendes parallel zur Ausführung des Befehis b im Prozessor: der im Zyklus 51 ausgeführte Befehlscode a wird an den externen Datenbus ausgegeben; die Befehisadresse wird an den externen Adressenbus ausgegeben und der den speziellen Buszyklus anzeigende Code wird an das Bussteuersignal BCT ausgegeben.
  • Da der nächste Befehl c (MOV @R0.h, R1.W) von einem Datenzugriff begleitet ist, ergibt es sich auch aus Fig. 8, dass die Ausführung des Befehis c im Prozessor unterbrochen wird, dass der spezielle Buszyklus vorzugsweise im Buszyklus S3 ausgeführt wird und dass der Befehlscode des im vorangehenden Zyklus ausgeführten Befehis b sowie die Adresse ausgegeben werden. Darüber hinaus erfolgt die Ausführung des Befehls c im Zyklus S4, folgend auf den speziellen Buszyklus S3, so dass sich die Adresse, die die Position der gewünschten Daten anzeigt, auf dem Adressenbus befindet, wohingegen sich die gelesenen Daten auf dem Datenbus befinden. Der Code und die Adresse des im Buszyklus S4 ausgeführten Befehls c werden im nächsten Buszyklus S5 nach außen ausgegeben. Dabei wird der Befehl d parallel im Prozessor ausgeführt, so dass der Code und die Adresse des Befehis d im nächsten Buszyklus S6 nach außen ausgegeben werden.
  • Übrigens wird beim Mikroprozessor des Ausführungsbeispiels von Fig. 7 die Adresse des ausgeführten Befehis im speziellen Buszyklus als logische Adresse ausgegeben. Jedoch kann die vom Programmzähler 15c an die Speziaibuszyklus-Generator 19 gelieferte Befehiskennungsadresse als physikalische Adressenumsetztabelle 11a ausgegeben werden.
  • Darüber hinaus veranschaulicht das Ausführungsbeispiel von Fig. 7 einen Mikroprozessor zum Handhaben von Befehlen fester Länge. Wie beim Ausführungsbeispiel von Fig. 1 können jedoch Befehle variabler Länge dadurch gehandhabt werden, dass zwei Sätze von Befehispuffern bereitgestellt werden und der Befehlscodezeiger 15b im Innern der Befehlsadressensteuerung 15 hinzugefügt wird, und die Erfindung kann auch bei einem Mikroprozessor mit in diesem vorhandenen Cachespeicher angewandt werden.
  • Beim insoweit beschriebenen Ausführungsbeispiel hat der Mikroprozessor mit einem Puffer oder einem Speicher, der mehrere Befehle vorab einspeichern kann, die Funktion, einen speziellen Buszyklus auszuführen, um die interne Information im Prozessor in einem vorbestimmten Betriebsmodus für jede Befehisausführung nach außen auszugeben. Im Ergebnis ermöglicht es die Emulation eines Systems unter Verwendung eines Mikroprozessors vom Typ mit einem Vorabauslesen von Befehlen, von außen leicht zu erkennen, weicher Befehl ausgeführt wurde. Es kann der Effekt erzielt werden, dass ein genaue Emulationskontrolle ausgeführt werden kann, während die Analyse von Protokolidaten zum Verbessern des Störbeseitigungs- Wirkungsgrads verbessert ist.
  • Da darüber hinaus der intern überflüssige spezielle Buszyk lus eingefügt ist, kann keine komplette Echtzeitfunktion erzielt werden. Trotz dieser Tatsache ist jedoch die Echtzeitfunktion im Vergleich mit dem bekannten System kaum beeinträchtigt, bei dem vorbestimmte Befehisserien durch eine Interruptfunktion oder dergleichen ausgeführt werden, um die interne Information nach außen mitzuteilen, da nur ein Zyklus eingefügt wird.
  • Da, noch ferner hin, die für die Ernulation erforderliche Information im Zeitmultiplex mit einem normalen Zyklus ausgegeben wird, kann der im Nutzersystem verwendete Mikroprozessor und der Mikroprozessor für die Emulation durch einen Mikroprozessor gebildet sein. Ferner kann die Belastung bei der LSI-Entwickiung erleichtert werden, da die Hardware zum Einfügen des speziellen Buszyklus nur wenig umfangreicher ist.
  • Obwohl unsere Erfindung in Verbindung mit deren Ausführungsbeispielen speziell beschrieben wurde, soll sie nicht hierauf beschränkt sein, sondern sie kann selbstverständlich auf verschiedene Weisen modifiziert werden, ohne vom Grundgedanken derselben abzuweichen. Bei den vorstehenden Ausführungsformen wird z. B. der Spezialbuszyklus-Einfügemodus auf Grundlage des von einem externen Stift herrührenden Spezialbuszyklus-Anforderungssignals ausgeführt, jedoch kann der Spezialbuszyklus-Generator 19 mit einem Flag oder einem Register versehen sein, um tatsächlich eine Verschiebung des Spezialbuszyklus-Einfügemodus durch Einschreiben in das Flag oder das Register zu bewirken.
  • Darüber hinaus liegt bei den vorstehenden Ausführungsbeispielen nur ein spezieller Buszyklus vor, jedoch können mehrere eingefügt werden. Bei den vorstehenden Ausführungsbeispielen wird ferner Information, die entweder den auszuführenden Befehl oder den unmittelbar zuvor ausgeführten Befehl anzeigt, im Spezialbuszyklus ausgegeben. Dennoch kann die zur Fehierbeseitung erforderliche Information, wie der Inhalt des Registers zum Zwischenspeichern eines Arithmetikergebnisses, im speziellen Buszyklus ausgegeben werden. Ferner kann im speziellen Buszyklus nicht nur die für den Benutzer des Mikroprozessors betrachtbare Information wie der Inhalt des Registers zum Zwischenspeichern des Ergebnisses einer arithmetischen oder logischen Operation ausgegeben werden, sondern auch interne Information aus dem Mikroprozessor, die vom Benutzer nicht beobachtbar ist, und zwar an einen Zwischenspeicher, der zur Fehlerbeseitigung oder zum Testen einer LSI-Schaltung erforderlich ist.
  • Die insoweit erfolgte Beschreibung ist auf den Fall gerichtet, dass unsere Erfindung bei einem Mikroprozessor angewandt wird, was das hintergrundbildende Gebiet der Anmeldung ist. Jedoch soll die Erfindung nicht hierauf beschränkt sein, sondern sie kann allgemein bei Einchip-Mikrocomputern oder anderen Datenprozessoren vorn Programmsteuerungstyp angewandt werden.
  • Wie es aus der obigen Beschreibung ersichtlich ist, kann interne Information wie die Adresse eines Befehls, der ausgeführt wird, zur Außenseite eines Mikroprozessors vom Typ mit Vorabauslesen von Befehlen geleitet werden, ohne die Stiftanzahl zu erhöhen und ohne dass irgendeine komplizierte externe Schaltung erforderlich ist.
  • Darüber hinaus ist es möglich, einen Mikroprozessor zu schaffen, der, zur Außenseite des Mikroprozessors, interne Information leiten kann, ohne die Echtzeitfunktion zu beeinträchtigen, und der hoch-flexibel ist, um eine Zunahme der erforderlichen Informationsmenge zu ermöglichen.
  • Unter Verwendung eines erfindungsgemäßen Mikroprozessors ist es möglich, ohne irgendeinen Mikroprozessor speziell für eine Emulation bereitzustellen, eine in der Schaltung befindliche Emulationseinrichtung zum Emulieren eines Nutzersystems unter Verwendung eines Mikrocomputers zu schaffen, der mit einem Befehisregister oder einem Cache versehen ist, um vorab mehrere Befehle abzurufen.

Claims (11)

1. Mikroprozessor mit
(a) einem Befehlspuffer (10) zum Halten einer Vielzahl von aus einem Speicher ausgelesenen Befehlsworten;
(b) einem mit dem Befehispuffer verbundenen Befehlsdecoder (13) zum Dekodieren von Befehlswörtern und Herstellen von dekodierten Ergebnissen;
(c) einer mit dem Befehlsdecoder verbundenen Befehlsausführeinheit (20) mit einer Betriebsvorrichtung und Betriebsregistern zum Ausführen des Befehls;
(d) einem mit der Befehisausführeinheit (20) verbundenen Adressensteuergerät (15) mit einem Befehlsauslese-Zeiger (15a) zum Kennzeichnen einer Adresse;
(e) einer mit dem Befehlspuffer (10), der Befehisausführeinheit (20) und den Adressensteuergerät (15) verbundenen Bussteuerschaltung (11, 19) mit einer Zyklusänderungsschaltung (103), die ausgelegt ist, um einen Buszyklus zum Ausgeben interner Information des Mikroprozessors einzufügen, wenn ein Bus-Anforderungssignal und ein spezielles Buszyklus-Anforderungssignal an die Zyklusänderungsschaltung (103) geliefert werden, wobei das Bus-Anforderungssignal Priorität vor dem speziellen Buszyklus-Anforderungssignal hat und durch den Mikroprozessor erzeugt wird; wobei
(f) der Befehlspuffer (10), der Befehlsdecoder (13), die Befehlsausführeinheit (20), das Adressensteuergerät (15) und die Bussteuerschaltung (11, 19) alle in einem einzigen Halbleiterbauelement enthalten sind, der Speicher ein externer Speicher ist, der Mikroprozessor ausgelegt ist, um eine Vielzahl von Befehisworten aus dem externen Speicher vorauszulesen, und das Adressensteuergerät ausgelegt ist, um eine Adresse zum Auslesen der Befehlsworte aus dem externen Speicher zu halten.
2. Mikroprozessor gemäß Anspruch 1, wobei die Zyklusänderungsschaltung eine Steuereinrichtung enthält, die in Übereinstimmung mit einem Endsignal zum Anzeigen des Endes des ausgeführten Befehis und dem speziellen Buszyklus-Anforderungssignal betrieben wird.
3. Mikroprozessor gemäß Anspruch 1 oder 2, wobei das spezielle Buszyklus-Anforderungssignal durch eine externe Quelle oder eine interne Quelle in dem Mikroprozessor geliefert wird.
4. Mikroprozessor gemäß einem der vorstehenden Ansprüche, wobei das Adressensteuergerät auch mit dem Befehlspuffer und dem Befehlsdecoder verbunden ist.
5. Mikroprozessor gemäß einem der Ansprüche 1 bis 4 mit einer Vielzahl von Ausführeinheiten, wobei der Mikroprozessor zum parallelen Ausführen einer Vielzahl von Befehlen ausgelegt ist.
6. Mikroprozessor gemäß einem der Ansprüche 1 bis 5, wobei der Speicher ein interner Speicher des Mikroprozessors ist.
7. Mikroprozessor gemäß Anspruch 6, wobei der interne Speicher sich in demselben Halbleiterbauteil wie der Befehlspuffer, der Befehlsdecoder, die Befehlsausführeinheit, das Adressensteuergerät und die Bussteuerschaltung befindet.
8. Mikroprozessor gemäß Anspruch 6 oder 7, wobei der interne Speicher zum Speichern einer Vielzahl von Befehlen ausgelegt ist, und der Befehisausiese-Zeiger eine Adresse zum Auslesen von Befehlen aus dem internen Speicher hält.
9. Mikroprozessor gemäß einem der vorstehenden Ansprüche, wobei das interne Steuersignal ein Interruptsignal (INT) ist.
10. Echtzeit-Emuiator zum Emulieren eines in einem Mikroprozessor zum Vorauslesen einer Vielzahl von Befehlen verwendeten System, mit einem Emulations-Mikroprozessor gemäß einem der vorstehenden Ansprüche, wobei der Echtzeit-Emulator:
(i) einen Protokolispeicher zum Abtasten und Speichern eines Signals auf einem Bus im System;
(ii) eine Emulationssteuereinheit zum Verbessern einer Emulation oder einer Debug-Funktion;
(iii) eine Anhaltepunkt-Steuereinheit zum Festlegen einer Bedingung zum Speichern einer Ausführung eines Programms oder zum Anhalten des Protokolls, um ein Programm zu unterbrechen; und
(iv) einen Emulationsspeicher zum Verwenden als den Systemspeicher aufweist.
11. System mit einem Mikroprozessor zum Vorausiesen einer Vielzahl von Befehlen, wobei der Mikroprozessor einem der Ansprüche 1 bis 9 entspricht; und
die Befehlausführeinheit, das Adressensteuergerät und die Bussteuerschaltung alle in einem einzelnen Halbleiter ausgebildet sind und das System
(i) den externen Speicher zum Speichern der Befehle und Daten;
(ii) ein Peripheriegerät mit einem Festplattensteuergerät; und
(iii) einen den Mikroprozessor, den externen Speicher und das Peripheriegerät verbindenden Systembus mit einem Adreßbus, einem Datenbus und einem Steuerbus, aufweist.
DE69127992T 1990-04-20 1991-04-17 Mikroprozessor zur Buszykluseinfügung zwecks Informationslieferung für eine Emulation Expired - Fee Related DE69127992T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2104700A JP2923570B2 (ja) 1990-04-20 1990-04-20 インサーキットエミュレータおよびマイクロプロセッサ
JP3049346A JPH04284546A (ja) 1991-03-14 1991-03-14 データ処理装置及びそれを用いたシステム開発装置

Publications (2)

Publication Number Publication Date
DE69127992D1 DE69127992D1 (de) 1997-11-27
DE69127992T2 true DE69127992T2 (de) 1998-06-04

Family

ID=26389734

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69127992T Expired - Fee Related DE69127992T2 (de) 1990-04-20 1991-04-17 Mikroprozessor zur Buszykluseinfügung zwecks Informationslieferung für eine Emulation

Country Status (5)

Country Link
US (1) US5564041A (de)
EP (1) EP0453268B1 (de)
KR (1) KR910018909A (de)
DE (1) DE69127992T2 (de)
HK (1) HK1003603A1 (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271705A (ja) * 1994-02-09 1995-10-20 Hitachi Ltd データプロセッサ及びこれを用いたトレース回路
US5548794A (en) * 1994-12-05 1996-08-20 Motorola, Inc. Data processor and method for providing show cycles on a fast multiplexed bus
CN1279449C (zh) * 1994-12-28 2006-10-11 株式会社东芝 微处理器
JPH08320808A (ja) * 1995-05-24 1996-12-03 Nec Corp エミュレーション方式
DE69633166T2 (de) * 1995-05-26 2005-08-18 National Semiconductor Corp., Santa Clara Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration
DE19536622A1 (de) * 1995-09-30 1997-04-03 Kontron Elektronik Emulationsvorrichtung
US5754827A (en) * 1995-10-13 1998-05-19 Mentor Graphics Corporation Method and apparatus for performing fully visible tracing of an emulation
US5819027A (en) * 1996-02-28 1998-10-06 Intel Corporation Bus patcher
US5903912A (en) * 1996-08-14 1999-05-11 Advanced Micro Devices, Inc. Microcontroller configured to convey data corresponding to internal memory accesses externally
US5860161A (en) * 1996-08-14 1999-01-12 Advanced Micro Devices, Inc. Microcontroller configured to indicate internal memory accesses externally
US6003107A (en) * 1996-09-10 1999-12-14 Hewlett-Packard Company Circuitry for providing external access to signals that are internal to an integrated circuit chip package
US5867644A (en) * 1996-09-10 1999-02-02 Hewlett Packard Company System and method for on-chip debug support and performance monitoring in a microprocessor
US5881224A (en) * 1996-09-10 1999-03-09 Hewlett-Packard Company Apparatus and method for tracking events in a microprocessor that can retire more than one instruction during a clock cycle
US5887003A (en) * 1996-09-10 1999-03-23 Hewlett-Packard Company Apparatus and method for comparing a group of binary fields with an expected pattern to generate match results
US5848264A (en) * 1996-10-25 1998-12-08 S3 Incorporated Debug and video queue for multi-processor chip
US5956476A (en) * 1996-10-31 1999-09-21 Hewlett Packard Company Circuitry and method for detecting signal patterns on a bus using dynamically changing expected patterns
US5880671A (en) * 1996-10-31 1999-03-09 Hewlett-Packard Company Flexible circuitry and method for detecting signal patterns on a bus
US5956477A (en) * 1996-11-25 1999-09-21 Hewlett-Packard Company Method for processing information in a microprocessor to facilitate debug and performance monitoring
US6009539A (en) * 1996-11-27 1999-12-28 Hewlett-Packard Company Cross-triggering CPUs for enhanced test operations in a multi-CPU computer system
US5881217A (en) * 1996-11-27 1999-03-09 Hewlett-Packard Company Input comparison circuitry and method for a programmable state machine
US6078742A (en) * 1996-12-19 2000-06-20 Ati International Hardware emulation
US5862148A (en) * 1997-02-11 1999-01-19 Advanced Micro Devices, Inc. Microcontroller with improved debug capability for internal memory
US6374370B1 (en) 1998-10-30 2002-04-16 Hewlett-Packard Company Method and system for flexible control of BIST registers based upon on-chip events
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
GB2362968B (en) 1999-12-23 2003-12-10 St Microelectronics Sa Computer system with debug facility
GB2365546B (en) 1999-12-23 2004-02-18 St Microelectronics Sa A computer system with two debug watch modes
GB2362729B (en) 1999-12-23 2004-02-11 St Microelectronics Sa Memory access debug facility
US6792563B1 (en) * 2000-04-28 2004-09-14 Intel Corporation Method and apparatus for bus activity tracking
US7596719B2 (en) * 2006-02-14 2009-09-29 Atmel Corporation Microcontroller information extraction system and method
US8108198B2 (en) * 2006-02-21 2012-01-31 Mentor Graphics Corporation Memory tracing in an emulation environment
US8543768B2 (en) 2008-11-13 2013-09-24 International Business Machines Corporation Memory system including a spiral cache
US8370579B2 (en) * 2009-12-17 2013-02-05 International Business Machines Corporation Global instructions for spiral cache management

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2937777C2 (de) * 1979-09-19 1982-04-08 Ibm Deutschland Gmbh, 7000 Stuttgart Steuereinrichtung in einer elektronischen Datenverarbeitungsanlage zur Programmunterbrechung und für die Durchführung erzwungener Operationen
JPS58223848A (ja) * 1982-06-23 1983-12-26 Oki Electric Ind Co Ltd マイクロプロセツサ
JPS619734A (ja) * 1984-06-26 1986-01-17 Nec Corp プロセツサ制御方式
US4674089A (en) * 1985-04-16 1987-06-16 Intel Corporation In-circuit emulator
JPS61269734A (ja) * 1985-05-23 1986-11-29 Hitachi Ltd マイクロプログラム制御方式
JPS61286936A (ja) * 1985-06-14 1986-12-17 Panafacom Ltd ステップ動作制御方式
US4791557A (en) * 1985-07-31 1988-12-13 Wang Laboratories, Inc. Apparatus and method for monitoring and controlling the prefetching of instructions by an information processing system
US5140687A (en) * 1985-10-22 1992-08-18 Texas Instruments Incorporated Data processing apparatus with self-emulation capability
US4908749A (en) * 1985-11-15 1990-03-13 Data General Corporation System for controlling access to computer bus having address phase and data phase by prolonging the generation of request signal
US5165027A (en) * 1986-01-24 1992-11-17 Intel Corporation Microprocessor breakpoint apparatus
JPS62197831A (ja) * 1986-02-26 1987-09-01 Hitachi Ltd デ−タ処理装置
US4811345A (en) * 1986-12-16 1989-03-07 Advanced Micro Devices, Inc. Methods and apparatus for providing a user oriented microprocessor test interface for a complex, single chip, general purpose central processing unit
DE3740762A1 (de) * 1987-01-22 1988-08-04 Nat Semiconductor Corp Datenverarbeitungssystem mit einer externen schnittstelle
JPH0193837A (ja) * 1987-10-05 1989-04-12 Nec Corp デバッグ用マイクロプロセッサ
JP2589713B2 (ja) * 1987-11-20 1997-03-12 株式会社日立製作所 データプロセッサ及びデータ処理システム
US5047926A (en) * 1989-03-15 1991-09-10 Acer Incorporated Development and debug tool for microcomputers
US5226127A (en) * 1989-04-07 1993-07-06 Intel Corporation Method and apparatus providing for conditional execution speed-up in a computer system through substitution of a null instruction for a synchronization instruction under predetermined conditions

Also Published As

Publication number Publication date
US5564041A (en) 1996-10-08
EP0453268A2 (de) 1991-10-23
DE69127992D1 (de) 1997-11-27
EP0453268B1 (de) 1997-10-22
HK1003603A1 (en) 1998-10-30
EP0453268A3 (en) 1992-10-14
KR910018909A (ko) 1991-11-30

Similar Documents

Publication Publication Date Title
DE69127992T2 (de) Mikroprozessor zur Buszykluseinfügung zwecks Informationslieferung für eine Emulation
DE69633166T2 (de) Integrierter schaltkreis mit mehreren funktionen und gemeinsamer verwendung mehrerer interner signalbusse zur verteilung der steuerung des buszugriffes und der arbitration
DE4329336C2 (de) Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors
DE69830718T2 (de) Ablaufdaten-cachespeicher fuer mikroprozessorbasierte anordung
DE3751356T2 (de) Informationsverarbeitungssystem.
EP1720100B1 (de) Verfahren und Vorrichtung zur Emulation einer programmierbaren Einheit
DE69728244T2 (de) Verfahren und Vorrichtung für die Fehlerbeseitigungsunterstützung eines Pipeline-Mikroprozessors
DE68927172T2 (de) Multiprozessorsystem mit cache-speichern
DE60108851T2 (de) Mehrkanal, mehrdienstfehlerbeseitigung in pipeline-cpu-architektur
US7739668B2 (en) Method and system of profiling applications that use virtual memory
DE60012132T2 (de) Mikroprozessor mit Prüfinstruktionsspeicher
DE68927492T2 (de) Verfahren und Vorrichtung zur gleichzeitigen Verteilung von Befehlen an mehrere funktionelle Einheiten
DE3750236T2 (de) Gerät zur In-line-Abfragesteuerung für Datenprozessorprüfung.
DE69728632T2 (de) Einzelne Schrittausführung von Prozessor- und Teilsystempipelines während der Fehlersuche in einem Datenverarbeitungssystem
DE4313594A1 (de) Mikroprozessor
DE102008012337A1 (de) Programmcode-Trace-Signatur
CH654943A5 (de) Pruefeinrichtung fuer mikroprogramme.
DE19729618C2 (de) Mikroprozessor und Mehrprozessorsystem
DE102006041444B4 (de) Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem
DE4418892A1 (de) Mikrocomputer
DE112005003216T5 (de) System und Verfahren für Steuerregister, auf die über private Rechenoperationen zugegriffen wird
DE68924507T2 (de) Verfahren und Gerät zur Markierung von Emulationsanalysezuständen.
DE10136724A1 (de) Ablaufverfolgungssteuerschaltung
DE3700800C2 (de) Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor
DE60010847T2 (de) Verfahren zur Fehlerbeseitigung in einem Thread-Programm

Legal Events

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