DE69127992T2 - Mikroprozessor zur Buszykluseinfügung zwecks Informationslieferung für eine Emulation - Google Patents
Mikroprozessor zur Buszykluseinfügung zwecks Informationslieferung für eine EmulationInfo
- 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
Links
- 239000000872 buffer Substances 0.000 claims description 41
- 230000006870 function Effects 0.000 claims description 19
- 230000008859 change Effects 0.000 claims description 6
- 239000004065 semiconductor Substances 0.000 claims description 5
- 230000002093 peripheral effect Effects 0.000 claims description 3
- 238000005070 sampling Methods 0.000 claims description 3
- 230000002708 enhancing effect Effects 0.000 claims 1
- 230000004044 response Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 238000003780 insertion Methods 0.000 description 8
- 230000037431 insertion Effects 0.000 description 8
- 230000007704 transition Effects 0.000 description 8
- 238000001514 detection method Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 5
- 101100394003 Butyrivibrio fibrisolvens end1 gene Proteins 0.000 description 3
- 101001068634 Homo sapiens Protein PRRC2A Proteins 0.000 description 3
- 102100033954 Protein PRRC2A Human genes 0.000 description 3
- 101100296979 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) PEP5 gene Proteins 0.000 description 3
- 101100533616 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SLA2 gene Proteins 0.000 description 3
- 101100533615 Schizosaccharomyces pombe (strain 972 / ATCC 24843) end4 gene Proteins 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100152436 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) TAT2 gene Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006735 deficit Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 229910021421 monocrystalline silicon Inorganic materials 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
- G06F11/364—Software debugging by tracing the execution of the program tracing values on a bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3652—Software debugging using additional hardware in-circuit-emulation [ICE] arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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.
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)
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)
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 |
-
1991
- 1991-04-17 DE DE69127992T patent/DE69127992T2/de not_active Expired - Fee Related
- 1991-04-17 KR KR1019910006125A patent/KR910018909A/ko not_active Application Discontinuation
- 1991-04-17 EP EP91303435A patent/EP0453268B1/de not_active Expired - Lifetime
-
1994
- 1994-02-24 US US08/201,488 patent/US5564041A/en not_active Expired - Fee Related
-
1998
- 1998-03-27 HK HK98102618A patent/HK1003603A1/xx not_active IP Right Cessation
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 |