DE4313594C2 - Mikroprozessor - Google Patents

Mikroprozessor

Info

Publication number
DE4313594C2
DE4313594C2 DE4313594A DE4313594A DE4313594C2 DE 4313594 C2 DE4313594 C2 DE 4313594C2 DE 4313594 A DE4313594 A DE 4313594A DE 4313594 A DE4313594 A DE 4313594A DE 4313594 C2 DE4313594 C2 DE 4313594C2
Authority
DE
Germany
Prior art keywords
command
mode
processor
external
microprocessor
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 - Lifetime
Application number
DE4313594A
Other languages
English (en)
Other versions
DE4313594A1 (de
Inventor
Robert S Dreyer
Donald B Alpert
Nimish H Modi
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE4313594A1 publication Critical patent/DE4313594A1/de
Application granted granted Critical
Publication of DE4313594C2 publication Critical patent/DE4313594C2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31705Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318555Control logic
    • 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/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • 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

Description

Die Erfindung bezieht sich auf einen Mikroprozessor nach dem Oberbegriff des Patentanspruchs 1 sowie auf ein Verfah­ ren zum Betreiben eines Mikroprozessors nach dem Oberbegriff des Patentanspruchs 10.
Ein Mikroprozessor ist das Herz der meisten gegenwärtig gebräuchlichen Computer und bildet einen zentralen Ort für viele Funktionen, welche durch Ausführen einer Serie von Be­ fehlen realisiert werden. Mikroprozessoren weisen charakte­ ristischerweise eine Steuereinheit zum Überwachen und Leiten der Funktionseinheiten auf, welche gemeinsam Befehle ausführen. Insbesondere überwacht und steuert die Steuer­ einheit den Befehlsfluß durch die Stufen der Verarbeitung. Die auszuführenden Befehle sind im allgemeinen in einem Com­ puterspeicher, wie beispielsweise einem Nur-Lese-Speicher (ROM) oder einem RAM gespeichert. Der Steuerung durch die Steuereinheit unterworfen holt eine Heranhol-Einheit jeden Befehl aus dem Speicher heran. Die Befehle werden dann ggf. decodiert und an eine Ausführungseinheit angelegt. Die Aus­ führungseinheit kann eine Anzahl von Mehrzweckregistern, eine arithmetische Einheit (ALU), Steuerregister und Steu­ erlogik enthalten. Die in den Registern gespeicherten Daten, welche insgesamt den "Prozessorzustand" repräsentieren, werden oftmals während des Betriebs der Ausführungseinheit modifiziert. Bei vielen unterschiedlichen Stufen der Entwicklung eines Computerprodukts kann es höchst nützlich sein, den Prozessorzustand während des Betriebs überprüfen und modifizieren zu können oder die Operation der ALU und der Steuerlogik mit Testdaten zu testen. Jedoch ist ein di­ rekter Zugriff auf die Ausführungseinheit im allgemeinen in­ folge der damit verbundenen Verringerung der Leistungsfähig­ keit und der sich ergebenden Kosten nicht praktikabel, ins­ besondere bei einem massenhaft produzierten Mikroprozessor.
Zusätzlich zur Untersuchung und Modifizierung des Pro­ zessorzustands kann es nützlich sein, den Systemspeicher und den Eingabe/Ausgabe(I/O)-Raum zu überprüfen und zu ändern. Während der Entwicklung eines Computers wäre diese Fähigkeit vorteilhaft, um Interaktionen zwischen den vielen inte­ grierten Schaltungen, Peripheriekomponenten und dem Mikro­ prozessor zu analysieren. Bei der Entwicklung von Software auf Systemebene und von Anwendungsprogrammen, die auf dem System abgearbeitet werden sollen, kann die Fähigkeit, Kenntnisse über den Prozessorzustand zu erhalten, die Bemü­ hungen bei der Beseitigung von Fehlern beträchtlich er­ leichtern.
Beim Entwurf eines einen Mikroprozessor verwendenden Computers oder bei der Beseitigung der vielen unvermeidbar während der Entwicklung eines Computerprodukts auftretenden Probleme kann ein In-Circuit-Emulator (ICE) verwendet wer­ den. Ein In-Circuit-Emulator ist ein speziell konstruiertes Werkzeug, das die Funktionen des von ihm zu unterstützenden Mikroprozessors nachbildet und zusätzliche eingebaute Merk­ male aufweist, die die Bemühungen zur Fehlerbeseitigung be­ trächtlich erleichtern. Im Betrieb wird ein In-Circuit-Emu­ lator physisch anstelle des Mikroprozessors in dessen Steck­ platz auf der Leiterplatte eingesetzt. In-Circuit-Emulatoren implementieren einen alternativen Speicherraum, der verwendet wird, um den Prozessorzustand und andere für die spätere Analyse relevante Daten zu speichern. In-Circuit- Emulatoren haben Nachteile, insbesondere höhere Kosten pro Einheit im Vergleich zu den massenhaft produzierten Mikro­ prozessoren; sie sind nicht in der Lage, ein Problem inner­ halb des Mikroprozessors selbst zu erkennen, und verursachen größere Arbeitskosten beim physischen Einsetzen des In- Circuit-Emulators in den Steckplatz sowie einen größeren Aufwand für den zugeordnete alternativen Speicherraum, für Verbindungen und andere Ausrüstungen.
Um integrierte Schaltungen auf einer Leiterplatte zu testen, wird ein Schaltungstester verwendet, der als ein "Nagelbrett" bezeichnet werden kann. Der Tester wird an die Leiterplatte angeklemmt, und jeder Draht der Baueinheit ist mit einem zugehörigen Stift an dem Tester verbunden. Nachdem der Tester mit jedem der Drähte verbunden ist, wird ein Testmuster angelegt, um die Schaltung zu testen, und die In­ formationen werden in einem alternativen Adreßraum gespei­ chert. Mit zunehmend kleineren Geometrien und höheren Dich­ ten wird es unpraktikabel, einen Stift für jeden Draht der Schaltung vorzusehen. Darüber hinaus wechseln bei höheren Betriebsgeschwindigkeiten die Signale schneller, als der Tester sie erfassen kann, ohne den Betrieb des Systems zu stören. Um dem Problem des Testens integrierter Schaltung zu begegnen, wurde ein IEEE-"Randabtast"-Standard ("boundary scan"-Standard) entwickelt. Bei einer Randabtastungsschal­ tung (boundary scan circuit) schlängelt sich eine einfache serielle Verbindung durch die gesamte Leiterplatte, um die Schaltung zu testen. Der Zugriff wird durch einen Test- Zugriffs-Port (TAP) ermöglicht, der Teil jedes dem Standard entsprechenden Chips ist.
Probleme können während der Entwicklung eines Programms durch einen Anwendungsprogrammierer oder beim Integrieren des Programms in die Plattform oder später während der Aus­ führung eines Programms durch einen Anwender auftreten. Bei­ spielsweise kann es vorkommen, daß der Mikroprozessor ein­ fach anhält, oder daß er sinnlose Daten ausgibt oder Daten im Speicher zerstört. Die Lokalisierung der Ursache eines solchen Problems kann extrem schwierig sein. Um den Anwen­ dungsprogrammierer bei seinen Entwicklungsanstrengungen zu unterstützen, wurden Fehlerbeseitigungswerkzeuge entwickelt. Die Fehlerbeseitigungswerkzeuge können in die Hardware eines Computers eingebaut sein, oder sie können eine Software- Hardware-Kombination enthalten.
Manchmal bezieht sich der Fehler auf die Software, und es kann ein Software-Debugger ausreichend sein, um die Ursa­ che des Fehlers zu isolieren. Software-Debugger sind Maschi­ nencodeprogramme, die auf der Systemebene ausgeführt werden. Bei einer bekannten Fehlerbeseitigungsmethode werden Unterbrechungspunkte an bestimmten Stellen im Befehlscode des Programms gesetzt. Die Unterbrechungspunkte halten die Programmabarbeitung an der nächsten geeigneten Stelle an und versetzen die Programmabarbeitung in einen Fehlerbeseiti­ gungsmodus. Da der normale Ablauf der Programmabarbeitung von einem Unterbrechungspunkt unterbrochen wird, ist dieser oftmals wie ein Interrupt implementiert.
Software-Debugger können in einigen Fällen für eine Feh­ lerbeseitigung ausreichend sein; wenn jedoch das System nicht betriebsfähig ist, können die Debugger-Programme nicht abgearbeitet werden. Darüber hinaus ist ein Software- Debugger nicht für Hardware-Probleme, Firmware-Probleme und Zeitgabe-Probleme brauchbar. Ein Software-Debugger arbeitet nicht in Echtzeit (d. h. er verlangsamt die Abarbeitung des Programms durch Einfügen zusätzlicher Schritte). Folglich ist ein Software-Debugger nicht für von der Zeitgabe abhän­ gige Probleme brauchbar, bei welchen die zeitliche Synchro­ nisation wichtig ist. Wenn ein solches Problem auftritt, er­ fordert eine vollständige Analyse im allgemeinen zusätzliche Hardware, wie beispielsweise einen In-Circuit-Emulator oder einen anderen Hardware-Debugger.
Wenn ein Mikroprozessor eines installierten Computer­ systems eine Störungssuche oder Fehlerbeseitigung erforder­ lich macht, kann ein Serviceruf erforderlich sein. Das Er­ gebnis eines Servicerufs ist oftmals ein unzufriedener Kunde, ein zeitweilig abgeschalteter Computer, unnötiger Aufwand und ein Verlust an Reputation. Von Vorteil wäre ein Mikroprozessor, der von einer entfernten Stelle aus diagno­ stiziert werden kann.
Aus der US-Patentschrift 4,399,505 ist ein Computer­ system bekannt, bei dem eine CPU entweder eigene Befehle oder Befehle einer externen Einheit empfängt und ausführt. Dieser Prozessor ist jedoch nicht geeignet, zu Diagnose­ zwecken von außen genauer untersucht zu werden. Ein Artikel der US-Zeitschrift "Computer-Design", April 1985, S. 157-162, beschreibt ein Computersystem, bei dem der Prozessor­ zustand untersucht werden kann. Dazu müssen vier zusätzliche Pins, zusätzliche Register zum Zwischenspeichern aller Regi­ sterwerte des Prozessors und ein zusätzlicher Multiplexer vorgesehen werden.
Aufgabe der Erfindung ist es, einen Mikroprozessor mit Hilfe von Testbefehlen und Testdaten untersuchen zu können, ohne den Zustand des im normalen Betrieb verwendeten Be­ fehlspfades zu ändern.
Diese Aufgabe wird erfindungsgemäß durch einen Mikropro­ zessor mit den Merkmalen des Patentanspruchs 1 bzw. ein Verfahren mit den Merkmalen des Patentanspruchs 10 gelöst.
Die Erfindung schafft einen externen Befehlsmodus zum direkten Zugreifen auf den Prozessorzustand und die Ausfüh­ rungseinheit in Abhängigkeit von extern erzeugten Kommandos und Befehlen. Ein Vorteil des externen Befehlsmodus ist die verbesserte Testbarkeit des Mikroprozessors. Auch schafft der externe Befehlsmodus eine Möglichkeit, den Betrieb des Mikroprozessors zu überwachen. Ein Systementwickler oder Wartungsingenieur kann den Prozessorzustand überprüfen und modifizieren, ohne dabei die Inhalte der Register zu beein­ flussen, einschließlich der Register, die nur für ein Pro­ gramm auf einem Supervisorniveau oder ein privilegiertes Programm sichtbar wären. Im bevorzugten Ausführungsbeispiel kann auf sämtliche Register und Zähler zugegriffen werden. Außerdem kann der Benutzer die Inhalte des Speichers und des I/O-Raumes überprüfen und modifizieren. Es sind Befehle vor­ gesehen, um auf die Gleitkommaeinheit und beliebige andere parallele Verarbeitungseinheiten zuzugreifen. Auch kann je­ der von der Ausführungseinheit ausführbare Befehl über den externen Befehlsmodus ausgeführt werden.
Der externe Befehlsmodus ermöglicht einen direkten Zu­ griff auf die Ausführungseinheit und vermeidet ein implizi­ tes Aktualisieren, das den Zustand des Prozessors beein­ flussen und folglich ein Sichern des Prozessorzustands er­ fordern würde. Weil der Prozessorzustand nicht geändert wird, ist die Notwendigkeit zum Sichern des Prozessorzu­ stands in einen alternativen Speicher beseitigt. Ein anderer Vorteil ist die Verwendung von herkömmlichen, bereits für einen anderen Zweck auf dem Chip vorhandenen Schaltungen mit geringen Modifikationen und die Verwendung eines Standard- Kommunikationsprotokolls, das mit Serienkomponenten implementiert werden kann. Im bevorzugten Ausführungsbei­ spiel werden die externen Kommandos und Befehle über einen Standard-Test-Zugriffs-Port (TAP - Test Access Port) zuge­ führt, der entsprechend dem Randabtast-Standard IEEE 1149.1 entwickelt wurde und der das Joint-Test-Access-Group(JTAG)- Protokoll für die Kommunikationen verwendet. Das Verwenden dieses Ports bedeutet, daß keine zusätzlichen Pins erforder­ lich sind, um den Sondierungsmodus zu implementieren, wo­ durch Kosten gespart werden. Der externe Befehlsmodus ist auf Prozessoren mit einer Pipeline anwendbar und auf Prozes­ soren, bei denen mehrere Pipelines parallel arbeiten.
Die Erfindung verwendet eine Schaltung, die jeweils in einem von zumindest zwei Moden arbeitet. In einem pro­ zessorgesteuerten Modus, welcher ein herkömmlicher Modus des Computerbetriebs ist, reagiert die Schaltung auf eine Serie von in dem Computerspeicher gespeicherten Befehlen. In dem externen Befehlsmodus, der in dem bevorzugten Ausführungs­ beispiel "Sondierungsmodus" genannt wird, reagiert die Schaltung auf extern erzeugte Kommandos und Befehle, die durch einen Zugriffsport fließen. Die Computerschaltung enthält eine Modusauswahleinheit zum Auswählen zwischen dem Sondierungsmodus und dem prozessorgesteuerten Modus des Be­ triebs. Im bevorzugten Ausführungsbeispiel sind drei Ver­ fahren zum Auswählen des externen Befehlsmodus vorgesehen. Ein erstes Verfahren benutzt einen "Run/Stop"(R/S)-Pin ge­ nannten externen Anschluß, der an dem Mikroprozessor vorge­ sehen wird. Ein zweites Verfahren verwendet einen über den Zugriffsport eingegebenen externen Befehl. Ein drittes Ver­ fahren verwendet eine Fehlerbeseitigungs-Ausnahme, die nor­ malerweise durch einen Software-Debug-Manager gehandhabt wird. Für eine geeignete Anzeige, ob sich die Schaltung im externen Befehlsmodus befindet, ist ein zusätzlicher "Bestätigungspin" genannter Anschluß vorgesehen, um anzuzei­ gen, daß die Ausführungseinheit bereit ist, ein externes Signal zu akzeptieren.
Die Schaltung enthält einen prozessorgesteuerten Be­ fehlspfad, einen externen Befehlspfad und eine Ausführungs­ einheit. Der prozessorgesteuerte Befehlspfad holt im Spei­ cher des Computers gespeicherte Befehle heran und legt sie unter Steuerung des Prozessors an die Ausführungseinheit an. Der externe Befehlspfad stellt der Ausführungseinheit extern erzeugte Befehle unter externer Steuerung zur Verfügung. Der aktuell an die Ausführungseinheit anzulegende Befehl wird durch einen Multiplexer ausgewählt, der von einer zentralen Steuereinheit abhängig ist, die auf die Modusauswahleinheit anspricht. Mit anderen Worten, jeder Pfad schafft ein Eingangssignal für einen Multiplexer, der den aktuell an die Ausführungseinheit anzulegenden Befehlspfad auswählt.
Der prozessorgesteuerte Befehlspfad aktualisiert impli­ zit die Prozessorzustandsinformationen, bevor er seinen Be­ fehl an die Ausführungseinheit anlegt. Die Prozessorzu­ standsinformationen umfassen den Befehlszeiger. In Ausfüh­ rungsbeispielen, die einen Decodierer und einen Vor-Heranho­ ler für Befehle variabler Länge aufweisen, umfaßt das impli­ zite Verhalten des prozessorgesteuerten Pfades auch das Her­ anholen eines nächsten Befehls, das Berechnen seiner Länge und das entsprechende Einstellen des Befehlszeigers. Der externe Befehlspfad aktualisiert nicht die Zustandsinforma­ tion, bevor sein Befehl an die Ausführungseinheit angelegt wird. In Ausführungsbeispielen, die einen Decodierer ent­ halten, wird dieses implizite Verhalten im externen Be­ fehlsmodus vermieden, indem der Decodierer umgangen wird und der Befehl direkt an die Ausführungseinheit geliefert wird.
Der externe Befehlspfad enthält ein Sondierungsbefehls­ register (PIR - Probe Instruction Register) genanntes Be­ fehlsregister, zum Laden und Halten eines Befehls, der durch die Ausführungseinheit gelesen werden soll. Ein Zugriffsport bearbeitet den Informationsfluß zwischen einer externen Signalquelle und dem Befehlsregister. Außerdem ist ein Son­ dierungsdatenregister (PDR - Probe Data Register) genanntes Datenregister vorgesehen, das entsprechend dem Befehl in dem Befehlsregister von dem Zugriffsport oder der Ausfüh­ rungseinheit geladen bzw. gelesen werden kann.
Ein weiterer Vorteil der Erfindung besteht darin, daß Hardware und Pins verwendet werden, die bereits auf dem Chip vorhanden sind, so daß die Kosten der Implementierung der Schaltung gering sind und folglich ihr Einbau in massenhaft produzierte Mikroprozessoren für den Kunden kosteneffektiv ist. Ein solcher Mikroprozessor findet Anwendung bei Computerentwicklern, -herstellern, Systemprogrammierern, Anwendungsprogrammierern und Kunden-Servicepersonal.
Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
Im folgenden wird die Erfindung anhand eines in der Zeichnung dargestellten Ausführungsbeispiels näher be­ schrieben. In der Zeichnung zeigen:
Fig. 1 ein Blockschaltbild der Struktur eines Zu­ griffsports und eines Prozessors sowie ihrer Schnittstelle;
Fig. 2 ein Ablaufdiagramm, das die im prozessorgesteuer­ ten Modus und die im externen Befehlsmodus auf­ tretenden Schritte zeigt;
Fig. 3 ein Ablaufdiagramm, das die in dem Sondierungsmo­ dus des bevorzugten Ausführungsbeispiels auftre­ tenden Schritte näher darstellt;
Fig. 4 ein Ablaufdiagramm, das die Auswahl des Sondie­ rungsmodus zum Handhaben einer Fehlerbeseiti­ gungsausnahme veranschaulicht; und
Fig. 5 ein Ablaufdiagramm, das ein Verfahren zum Zugrei­ fen auf den Sondierungsmodus durch eine Fehlerbe­ seitigungsausnahme veranschaulicht.
Im folgenden wird auf Fig. 1 Bezug genommen, in welcher ein eine Prozessoreinheit 10 und einen Zugriffsport 12 ver­ anschaulichendes Blockschaltbild gezeigt ist. Im bevorzugten Ausführungsbeispiel sind diese Strukturen, die Pro­ zessoreinheit 10 und der Zugriffsport 12, auf einem einzigen Halbleiterchipbaustein untergebracht. Bei anderen Ausfüh­ rungsbeispielen können die darin beschriebenen Funktionen durch entsprechende Einheiten auf separaten Chips ausgeführt werden.
Der Prozessor 10 weist einen prozessorgesteuerten Be­ fehlspfad 14 auf. In diesem prozessorgesteuerten Befehlspfad 14 sind Anordnungen zum Anlegen von Befehlen an eine Ausführungseinheit enthalten. Diese Anordnungen können be­ liebige herkömmliche Anordnungen sein. Der prozessorgesteu­ erte Befehlspfad 14 kann Einheiten zum Cache-Speichern, Her­ anholen, Puffern, (ggf. erforderlichen) Decodieren und er­ neuten Puffern (vor der Ausfüh­ rung) von Befehlen enthalten. In dem prozessorgetriebenen Be­ fehlspfad 14 befinden sich Komponenten, welche in herkömmlicher Weise durch eine zentrale Steuereinheit 16 gesteuert werden. Um ihre Funktionen ausführen zu können, enthält die zentrale Steuereinheit 16 herkömmliche Steuerlogik, die zum Überwachen und Steuern der Operationen des Prozessors 10 einschließlich des prozessorgetriebenen Befehlspfads 14 erforderlich ist. Ein durch den prozessorgetriebenen Befehlspfad 14 zur Verfügung ge­ stellter Befehl wird an einen Multiplexer 18 geliefert, welcher wiederum den Befehl an eine Ausführungseinheit 20 anlegt. Die Ausführungseinheit 20 kann eine Anzahl von Mehrzweckregistern, eine arithmetische Einheit (ALU), Steuerregister und Steuerlo­ gik enthalten. Die Ausführungseinheit 20 kann auf einen Spei­ cher 21 zugreifen. Ein Co-Prozessor, wie beispielsweise eine Gleitkommaeinheit 22, kann mit der Ausführungseinheit 20 ver­ bunden sein, um zusätzliche Funktionen neben dem normalerweise in der Ausführungseinheit ausgeführten Funktionen zur Verfügung zu stellen. Ein I/O-Raum 23 kann außerdem mit der Ausführungs­ einheit 20 verbunden sein.
Innerhalb der zentralen Steuereinheit 16 gibt es eine Logik zur Modusauswahl, wie sie durch eine Modusauswahleinheit 24 dargestellt ist. Im bevorzugten Ausführungsbeispiel kann der Sondierungsmodus durch eines von drei Verfahren ausgewählt wer­ den, welche detaillierter später beschrieben werden. Kurz zu­ sammengefaßt: Ein Verfahren überprüft die Inhalte des Sondie­ rungsmodus-Steuerregisters 26 nach dem Auftreten einer Fehler­ beseitigungsausnahme um festzustellen, ob auf den Sondierungs­ modus zugegriffen oder ein Software-Debugger aufgerufen werden soll. Das Zugreifen auf den Sondierungsmodus über das Sondie­ rungsmodus-Steuerregister 26 wird näher anhand von Fig. 4 be­ schrieben. Ein anderes Verfahren des Auswählens eines Modus verwendet ein Aktivieren eines Run/Stop-Pins 30, der an der Au­ ßenseite des Mikroprozessorchips vorgesehen ist. Wenn ein Si­ gnal an den Run/Stop-Pin 30 angelegt wird, stoppt die zentrale Steuereinheit 16 den Betrieb des Prozessors 10 an einer Be­ fehlsgrenze. Kurz zusammengefaßt: Wenn ein Signal an den Run/Stop-Pin 30 angelegt wird, wird der Betrieb des Prozessors 10 an der nächsten Befehlsgrenze angehalten. Eine "Befehlsgrenze" wird von Standpunkt der Ausführungseinheit aus gesehen. Eine Befehlsgrenze kann als der Punkt zwischen Befeh­ len definiert werden, an dem die Ausführungseinheit ihre sämt­ lichen Änderungen von Registern und des Speichers für einen er­ sten Befehl abgeschlossen hat, aber bevor sie beginnt, Änderun­ gen der Register, Flags und des Speichers für den nächsten in der Pipeline folgenden Befehl vorzunehmen. Wenn der Prozessor dadurch angehalten wird, bleibt die Ausführungseinheit 20 für eine Ausführung von Operationen verfügbar, der prozessorgetrie­ bene Befehlspfad 14 wird jedoch daran gehindert, weitere Be­ fehle an die Ausführungseinheit 20 auszugeben. Ein weiteres Verfahren des Zugreifens auf den Sondierungsmodus bedient sich des unten beschriebenen Zugriffsports 12.
Durch den Zugriffsport 12 wird ein externer Befehlspfad zur Verfügung gestellt, der in dem externen Befehlsmodus verwendet wird. Ein externes Signal 32 stellt Kommandos sowie Daten und Befehle einer Schnittstelleneinheit 34 innerhalb des Zugriffs­ ports 12 zur Verfügung. Das externe Signal 32 wird durch eine externe Steuereinheit, wie beispielsweise einen Hardware-Debug­ ger, einen In-Circuit-Emulator, einer mit einem Diagnoseprozes­ sor verbundenen Steuereinheit oder einen Leiterplattentester während der Herstellung zur Verfügung gestellt. Die Schnitt­ stelleneinheit 34 ist mit einem Sondierungsbefehlsregister (PIR) 36 und einem Sondierungsdatenregister (PDR) 38 verbunden. Die Schnittstelleneinheit 34 enthält Steuerlogik 40, welche mit der zentralen Steuereinheit 16 verbunden ist. Definitionsgemäß ist ein "Kommando" eine Anweisung an den Zugriffsport 12, wel­ cher eine Funktion ausführt oder ein Kommando ausgibt, bei­ spielsweise ein Kommando zum Ausführen eines in dem Sondie­ rungsbefehlsregister 36 gespeicherten Befehls, zum Unterbrechen des Betriebs des Prozessors 10 oder zum Auswählen des externen Befehlsmodus. Ein "Befehl" oder "Mikrobefehl" ist eine in dem Sondierungsbefehlsregister 36 gespeicherte Instruktion, die in der Ausführungseinheit 20 ausgeführt werden soll.
Das Sondierungsbefehlsregister (PIR) 36 ist mit einem Ein­ gang des Multiplexers 18 verbunden. Wenn der Prozessor in den externen Befehlsmodus eingetreten ist, steuert die zentrale Steuereinheit 16 den Multiplexer derart, daß die Inhalte des Sondierungsbefehlsregister 36 an die Ausführungseinheit ange­ legt werden. Das Sondierungsdatenregister 38 ist ebenfalls mit der Ausführungseinheit 20 verbunden, welche dessen Inhalte le­ sen und Daten in ihm speichern kann. Das Sondierungsdatenregi­ ster 38 wird für den Transfer von Daten zur und von der Ausfüh­ rungseinheit 20 verwendet. Das Sondierungsdatenregister 38 wird bei Verwendung in einer Operation mit Hilfe des externen Si­ gnals 32 geladen, bevor mit der Ausführung eines in dem Sondie­ rungsbefehlsregister 36 gespeicherten Befehls begonnen wird. Wenn nach einer Befehlsausführung in der Ausführungseinheit 20 als Folge eines von dem Sondierungsbefehlsregister 36 zur Ver­ fügung gestellten Befehls Daten in das Sondierungsdatenregister 38 gebracht wurden, dann können darüberhinaus diese Daten über die Schnittstelle 34 zu einem beliebigen Zeitpunkt nach ihrer Speicherung in das Sondierungsdatenregister 38 ausgelesen wer­ den.
In dem bevorzugten Ausführungsbeispiel ist der Zugriffsport 12 ein Standard-Test-Zugriffs-Port (TAP), der entsprechend dem Randabtast-Standard IEEE 1149.1 konstruiert ist. Außerdem ver­ wendet der Zugriffsport 12 das Kommunikationsprotokoll der Joint Test Access Group (JTAG). Als Teil der JTAG-Anforderungen werden Minimalmerkmale für einen solchen TAP gefordert. Die IEEE-Spezifikation 1149.1 spezifiziert einen Mechanismus zum Hinzufügen zusätzlicher Merkmale zu dem TAP. Bei dem bevorzug­ ten Ausführungsbeispiel sind das Sondierungsbefehlsregister 36 und das Sondierungsdatenregister als "Testdatenregister" gemäß diesem Mechanismus zum Hinzufügen zusätzlicher Merkmale gemäß der IEEE-Spezifikation 1149.1 implementiert. Es sind TAP-Be­ fehle vorgesehen, um auf diese Register 36 und 38 zuzugreifen und um die durch den Block 40 dargestellte Steuerung auszufüh­ ren. Insgesamt hat der Zugriffsport 12 eine JTAG-Schnittstelle, wie sie im IEEE-Standard 1149.1 beschrieben ist, welche ein Austauschen von Daten und Befehlen zwischen dem Zugriffsport 12 und einem externen Signal 32 gestattet. Entsprechend dem IEEE- Standard 1149.1 bilden 5 Pins (nicht gezeigt) eine serielle Schnittstelle zwischen dem Signal 32 und dem Prozessor 10. Diese Pins enthalten den Testdateneingabe-Pin (TDI-Pin) und den Testdatenausgabe-Pin (TDO-Pin). Der TDI-Pin wird verwendet, um in serieller Weise Daten oder Befehle in den Zugriffsport 12 zu schieben. Über den TDO-Pin werden die Antwortdaten hinausge­ schoben. Der Testmodusauswahl-Pin (TMS-Pin) wird verwendet, um den Zustand der Zugriffsport-Steuereinrichtung zu steuern. Der Testtakt (TCK) wird über den TCK-Pin zur Verfügung gestellt; typischerweise werden die Eingangssignale mit der ansteigenden Flanke dieses Signals abgetastet. Der Testlogik-Rücksetzzu­ stand-Pin (TRST-Pin) zwingt die Zugriffsport-Steuereinrichtung in den Rücksetzzustand der Testlogik. Weitere Informationen sind dem IEEE-Standard 1149.1 zu entnehmen.
Der Zugriffsport 12 implementiert ein Kommando "WRITE PIR", welches verwendet wird, um einen Mikrobefehl zur Auslieferung an die Ausführungseinheit aufzubauen. Der Zugriffsport 12 im­ plementiert auch ein Kommando "SUBMIT PIR" um anzuzeigen, daß das Sondierungsbefehlsregister 36 einen gültigen Mikrobefehl enthält und daß die Ausführung innerhalb der Ausführungseinheit 20 beginnen soll. Die Inhalte des Sondierungsbefehlsregisters 36 werden nur über den Zugriffsport 12 eingeschrieben und sind nicht von der Ausführungseinheit 20 schreibbar. Mikrobefehle können für sich wiederholende Operationen, wie beispielsweise das Lesen oder Schreiben von Speicherblöcken, erneut vorgelegt werden. Es ist dann nicht erforderlich, das Sondierungsbefehls­ register 36 erneut zu beschreiben, wenn der Befehl an die Aus­ führungseinheit 20 erneut angelegt werden soll.
Im folgenden wird auf Fig. 2 Bezug genommen, in welche ein Ablaufdiagramm einer Sequenz von Schritten zeigt, die auftre­ ten, wenn der prozessorgetriebene Modus ausgewählt wird, und die außerdem eine Sequenz von Schritten zeigt, die auftreten, wenn der externe Befehlsmodus ausgewählt wird. Beginnend bei dem Startblock an der Spitze des Ablaufdiagramms gemäß Fig. 2 wird eine Auswahl getroffen (wie durch den Block 50 darge­ stellt), um den prozessorgetriebenen Modus oder den externen Befehlsmodus auszuwählen. Auf der Grundlage dieser Auswahl er­ folgt eine Entscheidung, wie sie durch den Entscheidungsblock 52 dargestellt ist. Wenn der prozessorgetriebene Modus ausge­ wählt wurde, wird ein Befehl aus dem Speicher herangeholt (Block 54). Der Befehl wird decodiert (Block 55). Als nächstes werden die Zustandsinformationen, wie beispielsweise der Be­ fehlszeiger, im Prozessor 10 implizit aktualisiert (Block 56). Dann wird ein Mikrobefehl ausgegeben (Block 57). Dieser Mikro­ befehl wird ausgeführt (Block 58). Bei einem Entscheidungsblock 59 wird bestimmt, ob weitere Mikrobefehle zum Abschließen der Ausführung des herangeholten Befehls erforderlich sind. Wenn weitere Mikrobefehle nötig sind, dann wird ein Mikroprogramm- Zuordner aufgerufen (Block 60). Der Mikroprogramm-Zuordner gibt einen nächsten Mikrobefehl aus (Block 61), und der Ablauf kehrt dann zum Anfang der Schleife zurück, um den Mikrobefehl auszu­ führen (Block 58). Bei einigen Prozessoren ist es möglich, daß der herangeholte Befehl die Ausgabe vieler Mikrobefehle erfor­ dert, bevor seine Ausführung abgeschlossen ist. Bei anderen Prozessoren, wie beispielsweise RISC-Prozessoren ist die Deco­ dierung des herangeholten Befehls minimal, bevor er an die Aus­ führungseinheit 20 angelegt wird.
Die Operation des Prozessors vom Heranholen bis zum Deco­ dieren und Aktualisieren der Zustandsinformationen kann durch das folgende Beispiel veranschaulicht werden. Bei diesem Bei­ spiel wird ein nicht-decodierter Befehl variabler Länge aus dem Speicher herangeholt (Block 54). Gemäß der Annahme dieses Bei­ spiels soll eine Decodierung erforderlich sein. Die Länge des Befehls ist unbestimmt und der Befehl wird decodiert. Auf der Grundlage der Länge des Befehls werden die Zustandsinformatio­ nen (z. B. der Befehlszeiger) des Befehls aktualisiert.
Im folgenden wird wieder auf Fig. 2 Bezug genommen. Nachdem keine weiteren Mikrobefehle erforderlich sind, wird die Ausfüh­ rung des herangeholten Befehls abgeschlossen. Um die prozessor­ getriebene Schleife abzuschließen, kehrt die Operation von dem Entscheidungsblock 59 zu der Stelle vor dem Auswahlblock 50 zu­ rück, bei welchem der prozessorgetriebene Modus oder der ex­ terne Befehlsmodus ausgewählt wird. Im Betrieb wird die Schleife des prozessorgetriebenen Modus üblicherweise viele Male ausgeführt, bevor eine Auswahl getroffen wird, in den ex­ ternen Befehlsmodus zu gehen. Die durch den Block 50 darge­ stellte Auswahl eines Modus wird detaillierter anhand von Fig. 4 in einem späteren Teil der Beschreibung ausgeführt.
Wenn anstelle des prozessorgetriebenen Modus der externe Befehlsmodus ausgewählt wurde, dann kann ein extern erzeugter Befehl angelegt werden (Operationsblock 70). Wie durch den Ent­ scheidungsblock 72 dargestellt, wartet dann der Prozessor auf das Ausführungskommando und führt den Befehl nach Empfang des Kommandos aus (Block 74). Um die Schleife des externen Befehls abzuschließen, kehrt die Operation nach der Ausführung zum Block 50 zurück, bei welchem eine Auswahl zwischen dem prozes­ sorgetriebenen Modus und dem externen Befehlsmodus getroffen werden kann. Folgt man der Schleife des externen Befehls erneut (wenn der externe Befehlsmodus ausgewählt wurde), so wartet der Prozessor, bis ein extern erzeugter Befehl angelegt worden ist, das Ausführungskommando empfangen wurde (wie dargestellt durch Block 72) und der Befehl ausgeführt worden ist (wie dargestellt in Block 74). Die Abarbeitung des externen Befehlsmodus ist un­ ten näher anhand von Fig. 3 dargestellt. Im bevorzugten Ausfüh­ rungsbeispiel wird der externe Befehlsmodus als "Sondierungsmodus" bezeichnet, weil er verwendet werden kann, um das Computersystem einschließlich der Ausführungseinheit, ihrer Register, des Speichers und der Gleitkommaeinheit zu te­ sten.
Im folgenden wird auf Fig. 3 Bezug genommen, welche ein die Operationsweise des als "Sondierungsmodus" bezeichneten exter­ nen Befehlsmodus in dem bevorzugten Ausführungsbeispiel veran­ schaulicht. Block 80 stellt dar, daß der Sondierungsmodus aus­ gewählt worden ist. Nach der Auswahl des Sondierungsmodus ver­ geht eine gewisse Zeit, bevor sich der Prozessor tatsächlich in dem Sondierungsmodus befindet und bereit ist, einen Sondie­ rungsmodusbefehl auszuführen. Wie in einem Entscheidungsblock 82 dargestellt, wartet der Prozessor 10, bis er in dem Sondie­ rungsmodus ist, bevor er fortfährt. Im bevorzugten Ausführungs­ beispiel wartet der Prozessor 10, bis der aktuell ausgeführte Befehl sämtliche Modifikationen von Registern abgeschlossen hat. Als nächste Operation (Block 84) wird ein Signal an den Bestätigungspin 86 angelegt. Der Bestätigungspin 86 in Fig. 1 gezeigt. Aus dem Ablaufdiagramm gemäß Fig. 3 geht hervor, daß der Bestätigungspin 86 aktiviert wird, um anzuzeigen, daß der Prozessor sich in dem Sondierungsmodus befindet und zur Ausfüh­ rung von Befehlen bereit ist. Als nächstes (dargestellt im Ent­ scheidungsblock 88) wartet die Operation, bis vom Zugriffsport 12 ein Kommando zum Ausführen eines Befehls empfangen wurde. Nachdem das Kommando empfangen worden ist, wird der Bestäti­ gungspin 86 deaktiviert (Block 90), um anzuzeigen, daß die Aus­ führungseinheit 20 den in dem Sondierungsbefehlsregister (PIR) 36 gespeicherten Befehl akzeptiert und mit seiner Ausführung begonnen hat. Die Ausführung wird bis zum ihrem Abschluß fort­ gesetzt (Block 92). Nachdem die Ausführung abgeschlossen ist, wird der Bestätigungspin 86 aktiviert (Block 94). Nach der Ope­ ration kehrt der Prozessor 10 zu dem Zustand vor dem Entschei­ dungsblock 88 zurück.
Wenn während der Ausführung Daten zu dem Sondierungsdaten­ register (PDR) 38 geschrieben wurden, so kann ein zusätzlicher Schritt durch den Betreiber ausgeführt werden, um die Daten über den Zugriffsport auszulesen. Wie in dem Block 96 veran­ schaulicht, können dann, wenn die Daten in das PDR 38 während der Ausführung geschrieben worden sind, bei einem nächsten Schritt die Daten aus dem PDR über den Zugriffsport 12 ausgele­ sen werden (Block 98). Wenn jedoch während der Ausführung keine Daten in das PDR 38 geschrieben worden sind, dann ist keine weitere Aktivität erforderlich (Block 99).
Im folgenden wird auf die obere rechte Seite der Darstel­ lung gemäß Fig. 3 Bezug genommen, wo zwei Blöcke das Fließen von Informationen in die Register 36 und 38 veranschaulichen. Beim Block 100 wird das Sondierungsbefehlsregister 36 über den Zugriffsport 12 geladen. Beim Block 102 wird das Sondierungsda­ tenregister 38 über den Zugriffsport 12 geladen. Wie in Fig. 3 gezeigt ist, werden diese Informationen vorzugsweise vor dem Entscheidungsblock 88 zur Verfügung gestellt, in welchem ein Ausführungskommando empfangen wird. Es sei jedoch angemerkt, daß die Operationen in den Blöcken 100 und 102 nicht an ein spezielles Ereignis an einer anderen Stelle des Ablaufdiagramms gebunden sind. Bei der Operation des bevorzugten Ausführungs­ beispiels wird das Laden des Sondierungsbefehlsregisters 36 und des Sondierungsdatenregisters 38 unabhängig von den restlichen Operationen ausgeführt. Folglich ist es aus der Perspektive eines Benutzers des Sondierungsmodus vorteilhaft, daß der Be­ nutzer weiß, ob sich ein einwandfreier Befehl in dem Sondie­ rungsbefehlsregister befindet, bevor ein Kommando zum Ausführen des Befehls ausgegeben wird, und daß der Prozessor 10 zum Ak­ zeptieren eines Kommandos bereit ist, wie es durch den Bestäti­ gungspin 86 angezeigt wird. Wenn darüberhinaus Daten zum Aus­ führen des Kommandos erforderlich sind, muß der Benutzer si­ chern, daß einwandfreie Daten in dem Sondierungsdatenregister zur Verfügung gestellt werden, bevor die Ausführung des Befehls aufgenommen wird.
Im folgenden soll der Mechanismus zum Auswählen des Sondie­ rungsmodus erörtert werden. Es wurde anhand von Fig. 1 darge­ legt, daß die Modusauswahl in dem Modusauswahlblock 24 der zentralen Steuereinheit 16 stattfindet. Unter Bezugnahme auf Fig. 2 wurde gesagt, daß eine Auswahl zwischen dem prozessorge­ triebenen Modus und dem externen Befehlsmodus in einem Opera­ tionsblock 50 getroffen wird. In Fig. 3 wurde angenommen (Block 80), daß der Sondierungsmodus ausgewählt wurde. Im bevorzugten Ausführungsbeispiel kann die Auswahl des Sondierungsmodus durch eines von drei Verfahren ausgeführt werden: Ein erstes Verfah­ ren basiert auf einem Kommando, das über den Zugriffsport 12 ausgegeben wird, ein zweites Verfahren beruht auf einem Fehler­ beseitigungsmechanismus, der entweder in dem prozessorgetriebe­ nen Befehlspfad 14 oder der Ausführungseinheit 20 vorgesehen ist, und ein drittes Verfahren verwendet den Run/Stop-Pin 30.
Bei dem ersten und dem dritten Verfahren des bevorzugten Ausführungsbeispiels hat der Übergang in den Sondierungsmodus gemeinsame Charakteristiken. Innerhalb der Modusauswahleinheit 24 kann ein Interrupt-Prioritätsgeber vorgesehen sein, welcher die Unterbrechung des Prozessors 10 überwacht und steuert. Das erste und das dritte Verfahren arbeiten über den Interrupt- Prioritätsgeber. Im bevorzugten Ausführungsbeispiel erzeugen diese Verfahren ein Interrupt hoher Priorität in dem Interrupt- Prioritätsgeber, der die Operation des prozessorgetriebenen Be­ fehlspfades an der nächsten Befehlsgrenze anhält, und einen Eingang in den Multiplexer 18 auswählt, so daß ein Befehlspfad aus dem Sondierungsbefehlsregister 36 zur Verfügung gestellt wird. Darüberhinaus wird, nachdem die Auswahl des Sondierungs­ modus abgeschlossen ist, ein Signal an den Bestätigungspin 86 angelegt, um anzuzeigen, daß die Ausführungseinheit bereit ist, Sondierungsmodusbefehle zu empfangen.
Bei dem ersten Verfahren zum Zugreifen auf den Sondierungs- bzw. Ruhemodus, wird ein Kommando in dem externen Signal 32 über die Schnittstelle 34 gesendet. Die Steuerlogik 40 stellt fest, ob das Kommando zum Zugreifen auf den Sondierungsmodus ausgegeben wurde. Wenn dies der Fall ist, stellt sie ein Signal für die Modusauswahleinheit 24 innerhalb der zentralen Steuereinheit zur Verfügung. Alternativ dazu stellt das Run/Stop-Pin 30 der Modusauswahleinheit 24 ein ähnliches Signal zur Verfügung.
Im folgenden wird auf die Fig. 4 und 5 Bezug genommen, wel­ che Ablaufdiagramme sind, die in dem bevorzugten Ausführungs­ beispiel ein Zugreifen auf den Sondierungsmodus über eine Feh­ lerbeseitigungsausnahme darstellen. Der Block 110 veranschau­ licht eine Auswahl eines Benutzers vor Beginn einer Fehlerbe­ seitigungs-Sitzung, wo er beispielsweise angibt, welche Fehler­ beseitigungsausnahmen den Sondierungsmodus und welche einen Fehlerbeseitigungs-Handler 112 (Fig. 1) aufrufen sollen. Im be­ vorzugten Ausführungsbeispiel ist ein Sondierungsmodus-Steuer­ register (PMCR) Teil des Prozessorzustands, der innerhalb des Sondierungsmodus durch einen Befehl modifiziert werden kann. Dieses Steuerregister enthält ein Einzelbit-Flag, das Inter­ rupt-Umadressier-Flag (IR-Flag), das abgefragt wird, wenn Un­ terbrechungspunkt-Ausnahmen erfaßt wurden, wie es weiter unten detaillierter beschrieben wird. Als nächstes wird eine festge­ stellt (wie im Entscheidungsblock 114 dargestellt), ob der Son­ dierungsmodus ausgewählt wurden. Wenn der Sondierungsmodus aus­ gewählt wurde, wird in den Sondierungsmodus übergegangen (Block 115). Als nächstes wird ein Befehl über den Zugriffsport 12 ausgegeben, um das IR-Flag in dem Sondierungsmodus-Steuerre­ gister (PMCR) 27 zu setzen (Block 116). Danach verläßt der Pro­ zessor den Sondierungsmodus (Block 117), und der Betrieb wird am Block 118 fortgesetzt. Wenn der Sondierungsmodus nicht aus­ gewählt worden ist, so wird ausgehend vom Entscheidungsblock 114 der Fehlerbeseitigungs-Handler 112 ausgeführt (Block 119).
Im folgenden wird auf das Ablaufdiagramm gemäß Fig. 5 Bezug genommen, in welchem bei "Start" die Operation des Prozessors 10 beginnt. Nach dem Start wird ein Befehl herangeholt (Block 120). Wenn kein Unterbrechungspunkt-Fehler erfaßt wird (Entscheidungsblock 122), dann wird der Befehl decodiert (Block 124). Die Erfassung des Unterbrechungspunkts kann vor oder gleichzeitig mit dem Decodieren im Block 124 auftreten. Als nächstes wird der Befehl ausgeführt (Block 126). Ein "Fehler"- Unterbrechungspunkt ist definiert als eine Ausnahme, die vor Ausführung eines Befehls bedient wird. Ein "Trap"-Unter­ brechungspunkt ist definiert als eine Ausnahme, die nach dem Abschluß des Befehls, der diese Ausnahme erzeugte, bedient wird. Wenn während der Ausführung des Befehls (Block 126) kein Unterbrechungspunkt-Trap erfaßt wurde (wie dargestellt in einem Entscheidungsblock 128), dann wird die Schleife beginnend mit dem Heranholen des Befehls (Block 120), dem Decodieren des Be­ fehls (Block 124) usw. wiederholt.
Wenn der Unterbrechungspunkt-Fehler in dem Entscheidungs­ block 122 nach dem Decodieren erfaßt worden ist, oder wenn ein Unterbrechungspunkt-Trap während der Ausführung im Block 126 erfaßt worden ist, dann wird das IR-Flag in dem Sondierungsmo­ dus-Steuerregister 26 überprüft, um zu sehen, ob es gesetzt ist, wie dies in einem Entscheidungsblock 130 dargestellt ist. Wenn das IR-Flag gesetzt ist, dann tritt der Prozessor ohne Ausführung zusätzlicher Befehle in den Sondierungsmodus ein (Block 132). Wenn jedoch das IR-Flag nicht gesetzt ist, dann wird der Unterbrechungspunkt über den Fehlerbeseitigungs-Hand­ ler gehandhabt, wie es durch den Block 134 veranschaulicht ist. Die Arbeitsweise des Fehlerbeseitigungs-Handlers (Block 134) ist eine herkömmliche Art der Handhabung der Fehlerbeseitigung und der Unterbrechungspunkte.
Um den Sondierungsmodus zu verlassen, wurden zwei Verfahren implementiert. Bei einem Verfahren wird das Run/Stop-Pin 30 (Fig. 1) einfach deaktiviert, beispielsweise indem es auf eine geringe Spannung herabgezogen wird, sofern es "aktiv hoch" ist. Bei einem anderen Verfahren wird ein Kommando aus der Steuerlo­ gik 50 ausgegeben, welches die Modusauswahleinheit 24 anweist, den prozessorgetriebenen Modus auszuwählen. Dieses Kommando hat jedoch keine Wirkung, wenn der Run/Stop-Pin 30 aktiv ist. D. h., die Aktivierung des Run/Stop-Pins 30 überschreibt bei dieser Implementierung ein über den Zugriffsport 12 eingehendes exter­ nes Kommando.
Das Format des Sondierungsmodusbefehl wird unten erörtert. Wie oben gesagt, wird ein in der Ausführungseinheit 20 auszu­ führender Sondierungsmodusbefehl zunächst in dem Sondierungsbe­ fehlsregister (PIR) 36 gespeichert. Dieser Befehl wird dann direkt über den Multiplexer 18 zur Ausführungseinheit 20 gelie­ fert. Folglich muß das Format des Befehls innerhalb des Sondie­ rungsbefehlsregister 36 derartig sein, daß es von der Ausfüh­ rungseinheit 20 ausführbar ist. Damit ein Befehl von der Aus­ führungseinheit 20 erkennbar ist, muß er ein Format haben, das eine Untermenge der innerhalb der Ausführungseinheit 20 aus­ führbaren Befehle ist. Infolge der großen Vielfalt von Befehlen in unterschiedlichen Computerarchitekturen gibt die Erfindung keine bestimmte Form von Befehlen oder Befehls-Untermengen für einen über das Sondierungsbefehlsregister 36 zur Verfügung ge­ stellten Befehl an. Im allgemeinen sind diese Befehle einfache Lade/Speichere-Befehle zum Testen des Zustandes des Prozessors 10, insbesondere der Register innerhalb der Ausführungseinheit 20. Es sind jedoch komplexere Operationen ausführbar und tatsächlich ist jeder beliebige durch die Ausführungseinheit 20 erkennbare Befehl darin ausführbar. Solche Operationen schließen den Zugriff auf sekundäre Speicher, den Zugriff auf periphere Komponenten und arithmetische Operationen innerhalb der Ausführungseinheit 20 ein. Die in dem bevorzugten Ausfüh­ rungsbeispiel implementierten Befehle sind im folgenden be­ schrieben. Die Erfindung ist jedoch nicht auf diese speziellen Mikrobefehle beschränkt. Im Sondierungsmodus des bevorzugten Ausführungsbeispiels kann der Mikroprozessor einfache Lade/Speichere-Befehle akzeptieren. Die Befehle sind eine Un­ termenge des innerhalb der Ausführungseinheit 20 ausführbaren Mikroprogramms und umgehen den prozessorgetriebenen Befehlspfad 14 wie oben beschrieben. Sondierungsmodusbefehle gestatten ein Schreiben und Lesen sämtlicher für den Programmierer sichtbarer Register. Zusätzlich kann auf den Speicher und den I/O(Eingabe/Ausgabe)-Raum zugegriffen werden. Im Sondierungsmo­ dus bleiben externe Interrupts anhängig und werden nicht be­ dient, bis der Sondierungsmodus verlassen wurde. Andere Opera­ tionen, die während der Ausführung asynchron auftreten können, wie beispielsweise Snooping- und Rückschreib-Operationen, tre­ ten auf normale Weise während des Sondierungsmodus auf.
Wie oben erörtert, hält das Sondierungsbefehlsregister 36 einen Befehl. Im bevorzugten Ausführungsbeispiel enthält das Sondierungsbefehlsregister 36 ein Befehlswort festen Formats, welches Felder für "Befehlscodes", Quellen- und Zielregister und für die Direktdaten enthält. Das Sondierungsdatenregister 38 wird verwendet, um Datenwerte mit der Ausführungseinheit 20 auszutauschen. Um beispielsweise ein Register innerhalb der Ausführungseinheit 20 zu lesen, würde ein Befehl von dem Son­ dierungsbefehlsregister 36 ausgegeben werden, der den Inhalt des gewünschten Registers in das Sondierungsdatenregister 38 schreibt, und dann das Sondierungsdatenregister 38 über den Zu­ griffsport 12 ausliest. In einer ähnlichen Weise kann ein Spei­ cher, Hauptspeicher oder sekundärer Speicher, überprüft werden durch Ausgabe eines Befehls zum Lesen aus dem Speicher in ein temporäres Register innerhalb der Ausführungseinheit 20 und an­ schließendem Lesen dieses temporären Registers in das Sondie­ rungsdatenregister 38. Ein anderes Register ist das oben be­ schriebene Sondierungssteuerregister.
Die Erfindung wurde in einem Prozessor implementiert, der zwei Pipelines, eine "u"-Pipeline und eine "v"-Pipeline auf­ weist. Der in dem Sondierungsmodus ausgeführte Befehl, welcher als "Mikrobefehl" bezeichnet werden kann, hat die volle Kon­ trolle sowohl über die u- als auch v-Pipeline.
Das Sondierungsbefehlsregister enthält zwei Hauptfelder, eines zum Steuern der Integer-u-Pipeline und ein beinahe iden­ tisches Feld zum Steuern der Integer-v-Pipeline. Das u-Pipe­ line-Feld kann außerdem verwendet werden, um auf den Gleit­ kommaprozessorzustand zuzugreifen. Wenn es einen Architekturzu­ stand gibt, der über Befehlsgrenzen hinweg erhalten wird, ist es zweckmäßig, daß auf ihn über den Sondierungsmodus zugegrif­ fen werden kann. Beispielsweise hat der 80 × 86 zusätzlich zu den Mehrzweckregistern Gleitkommaregister und Segmentregister. Die Erfindung schafft eine Schaltung und ein Verfahren zum Zugrei­ fen auf diese Register über den Sondierungsmodus.

Claims (17)

1. Mikroprozessor (10) mit einer Ausführungseinheit (20) zum Ausführen von Befehlen, wobei der Mikroprozessor in ei­ nem prozessorgesteuerten Modus arbeiten kann und dabei eine Reihe von in einem Computerspeicher gespeicherten Befehlen ausführt, dadurch gekennzeichnet,
daß der Mikroprozessor (10) in einen externen Befehlsmo­ dus überführbar ist, wobei er ein externes Signal empfängt, das einen externen Befehl spezifiziert; und
daß der Mikroprozessor (10) aufweist:
Modusauswahlmittel (24, 26, 30) zum Auswählen des pro­ zessorgesteuerten Modus oder des externen Befehlsmodus:
eine Ausführungseinheit (20) zum Ausführen von Befehlen;
einen Multiplexer (18), der einen Befehl auswählt und der Ausführungseinheit (20) zur Verfügung stellt;
einen prozessorgesteuerten Befehlspfad (14), der die ge­ speicherten Befehle zwischenspeichert und an einen ersten Eingang des Multiplexers (18) anlegt,
einen externen Befehlspfad (34, 36), der den externen Befehl an einen zweiten Eingang des Multiplexers (18) an­ legt, und
eine mit dem Multiplexer (18) und dem prozessorgesteu­ erten Befehlspfad (14) gekoppelte Steuereinheit (16), die den Multiplexer (18) derart steuert, daß der Multiplexer (18) während des Betriebs im prozessorgesteuerten Modus ei­ nen Befehl aus dem prozessorgesteuerten Befehlspfad (14) und während des Betriebs im externen Befehlsmodus einen externen Befehl aus dem externen Befehlspfad (34, 36) auswählt, wobei die Steuereinheit (16) den prozessorgesteuerten Befehlspfad (14) während des Betriebs im externen Befehlsmodus anhält.
2. Mikroprozessor nach Anspruch 1, dadurch gekennzeich­ net, daß die Modusauswahlmittel (24, 26, 30) einen Run/Stop- Pin (30) aufweisen, wobei bei dessen Ansteuerung der Betrieb des prozessorgesteuerten Befehlspfads (14) angehalten wird.
3. Mikroprozessor nach Anspruch 1 oder 2, dadurch ge­ kennzeichnet, daß die Modusauswahlmittel (24, 26, 30) eine Modusauswahleinheit (24) enthalten, die auf ein externes Kommando anspricht, um den Betrieb des prozessorgesteuerten Befehlspfads (14) anzuhalten.
4. Mikroprozessor nach einem der Ansprüche 1 bis 3, da­ durch gekennzeichnet, daß die Modusauswahlmittel (24, 26, 30) ein Sondierungsmodus-Steuerregister (26) mit einem Befehls-Umadressier-Flag (IR-Flag) aufweisen zum Anhalten des Betriebs des prozessorgesteuerten Befehlspfads (14), wenn eine Fehlerbeseitigungsausnahme während des Betriebs des prozessorgesteuerten Befehlspfads (14) auftritt.
5. Mikroprozessor nach einem der Ansprüche 1 bis 4, da­ durch gekennzeichnet, daß der externe Befehlspfad aufweist:
einen Zugriffsport (12) mit
einer Schnittstelle (34) zum Empfangen und Senden des externen Signals (32);
einer Steuerlogik (40) zum Steuern der Schnitt­ stelle zwischen dem Zugriffsport (12) und dem Mikro­ prozessor (10);
ein Sondierungsbefehlsregister (36) zum Halten eines mit dem externen Signal (32) empfangenen Befehls; und
ein Sondierungsdatenregister (38) zum Halten von Daten.
6. Mikroprozessor nach einem der Ansprüche 1 bis 5, ge­ kennzeichnet durch eine zweite Steuereinheit (40) zum Ini­ tiieren der Ausführung eines in dem Sondierungsbefehlsregi­ ster (36) gespeicherten Befehls, die auf einen externen Be­ fehl ansprechen.
7. Mikroprozessor nach einem der Ansprüche 1 bis 6, ge­ kennzeichnet durch einen Bestätigungspin (86), der ein Signal zur Verfügung stellt, das anzeigt, ob sich der Mikro­ prozessor (10) im externen Befehlsmodus befindet und zum Ausführen eines im Sondierungsbefehlsregister (36) gespei­ cherten Befehls bereit ist.
8. Mikroprozessor nach einem der Ansprüche 1 bis 7, ge­ kennzeichnet durch
Aktualisierungsmittel, die bei ausgewähltem prozessorge­ steuertem Modus Mikroprozessor-Zustandsinformationen aktua­ lisieren, bevor der gespeicherte Befehl an die Ausführungs­ einheit (20) angelegt wird, wobei die Mikroprozessor- Zustandsinformationen einen Befehlszeiger enthalten; und durch
eine Steuerlogik, die ein Umgehen der Aktualisierungs­ mittel bewirkt, wenn der externe Befehlsmodus ausgewählt ist.
9. Mikroprozessor nach einem der Ansprüche 1 bis 8, da­ durch gekennzeichnet, daß der prozessorgesteuerte Befehls­ pfad (14) einen Decodierer enthält, der den Befehlszeiger aktualisiert, bevor der decodierte Befehl an die Ausfüh­ rungseinheit (20) angelegt wird.
10. Verfahren zum Betreiben eines Mikroprozessors (10), wobei in einem prozessorgesteuerten Modus Befehle ausge­ führt werden, indem
ein Befehl aus einem Speicher herangeholt und einem Decodierer zur Verfügung gestellt wird,
der Befehl decodiert wird, um einen oder mehrere Mikrobefehle zu gewinnen, die nacheinander an eine Ausführungseinheit (20) angelegt werden,
Mikroprozessor-Zustandsinformationen einschließlich eines Befehlszeigers aktualisiert werden und
die von dem Decodierer angelegten Mikrobefehle aus­ geführt werden;
dadurch gekennzeichnet,
daß entweder der prozessorgesteuerte Modus oder ein ex­ ternen Befehlsmodus ausgewählt wird;
daß bei Auswahl des externen Befehlsmodus Befehle ausgeführt werden, indem
wenigstens ein externer Befehl zur Verfügung ge­ stellt wird und der wenigstens eine externe Befehl ausgeführt wird, ohne den Befehlszeiger und andere Mikroprozessor-Zustandsinformationen im prozessor­ gesteuerten Befehlspfad (14) zu aktualisieren.
11. Verfahren nach Anspruch 10, dadurch gekennzeichnet,
daß im externen Befehlsmodus ein externer Befehl in ei­ nem externen Befehlsregister (36) gespeichert wird; und
daß das Befehlsregister (36) gelesen wird, wenn der Be­ fehl ausgeführt werden soll.
12. Verfahren nach Anspruch 10 oder 11, dadurch gekenn­ zeichnet,
daß ein externer Datenpfad (12) gebildet wird, über den das externe Signal mit der Ausführungseinheit (10) gekoppelt wird, wobei in dem externen Datenpfad ein Datenregister (38) zur Verfügung gestellt wird, das in Abhängigkeit von der Steuerung durch ein externes Signal beschrieben oder gelesen werden kann;
daß Daten in das Datenregister (38) gespeichert und mit Hilfe des externen Signals ausgelesen werden, wenn der Be­ fehl die Anweisung zum Lesen des Mikroprozessor-Zustands oder anderer Daten aus der Ausführungseinheit (10) enthält; und
daß mit Hilfe des externen Signals Daten im Datenregi­ ster (38) gespeichert werden und dann das Datenregister von der Ausführungseinheit gelesen wird, wenn der Befehl die Anweisung zum Schreiben von Daten zur Ausführungseinheit (10) enthält.
13. Verfahren nach einem der Ansprüche 10 bis 12, da­ durch gekennzeichnet, daß das Ausführen des Befehls durch Anlegen eines externen Kommandos an eine Steuereinheit (40) initiiert wird.
14. Verfahren nach einem der Ansprüche 10 bis 13, da­ durch gekennzeichnet, daß ein Bestätigungspin (86) beauf­ schlagt wird, um anzuzeigen, daß der externe Befehlsmodus ausgewählt wurde und der Mikroprozessor bereit ist, einen Befehl auszuführen.
15. Verfahren nach einem der Ansprüche 10 bis 14, da­ durch gekennzeichnet, daß zum Auswählen des Betriebsmodus ein externer Pin (30) mit einem Signal beaufschlagt und der prozessorgesteuerte Befehlspfad so gesteuert wird, daß die Heranhol-, Decodier- und Aktualisier-Operationen im prozessorgesteuerten Modus angehalten werden.
16. Verfahren nach Anspruch 15, dadurch gekennzeichnet, daß beim Auswählen des Betriebsmodus ein Signal an eine Steuerlogik (26) angelegt wird, die die Heranhol-, Decodier- und Aktualisier-Operationen des prozessorgesteuerten Be­ triebsmodus anhält.
17. Verfahren nach Anspruch 15 oder 16, dadurch gekenn­ zeichnet, daß beim Auswählen des Betriebsmodus
ein Interrupt-Umadressier-Flag in einem Sondierungs­ modus-Steuerregister (26) gesetzt wird;
während des Betriebs im prozessorgesteuerten Modus eine Fehlerbeseitigungsausnahme erfaßt wird;
das Interrupt-Umadressier-Flag getestet wird, um festzu­ stellen, ob es gesetzt wurde; und
der externen Befehlsmodus mit einer Steuerlogik ausgewählt wird, die die Heranhol-, Decodier- und Aktualisier-Operatio­ nen des prozessorgesteuerten Betriebsmodus anhält, wenn das Interrupt-Umadressier-Flag gesetzt wurde.
DE4313594A 1992-04-27 1993-04-26 Mikroprozessor Expired - Lifetime DE4313594C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US87464292A 1992-04-27 1992-04-27

Publications (2)

Publication Number Publication Date
DE4313594A1 DE4313594A1 (de) 1993-10-28
DE4313594C2 true DE4313594C2 (de) 1998-09-17

Family

ID=25364236

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4313594A Expired - Lifetime DE4313594C2 (de) 1992-04-27 1993-04-26 Mikroprozessor

Country Status (5)

Country Link
US (1) US5479652B1 (de)
JP (1) JP2824978B2 (de)
DE (1) DE4313594C2 (de)
FR (1) FR2690539B1 (de)
GB (1) GB2266606B (de)

Families Citing this family (179)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5848289A (en) * 1992-11-27 1998-12-08 Motorola, Inc. Extensible central processing unit
EP0652516A1 (de) * 1993-11-03 1995-05-10 Advanced Micro Devices, Inc. Integrierter Mikroprozessor
GB2289147B (en) * 1994-04-25 1998-04-15 Advanced Risc Mach Ltd Testing data processing apparatus
JP3313007B2 (ja) 1995-04-14 2002-08-12 三菱電機株式会社 マイクロコンピュータ
US5699506A (en) * 1995-05-26 1997-12-16 National Semiconductor Corporation Method and apparatus for fault testing a pipelined processor
US5694589A (en) * 1995-06-13 1997-12-02 Intel Corporation Instruction breakpoint detection apparatus for use in an out-of-order microprocessor
JP3846939B2 (ja) * 1995-08-30 2006-11-15 フリースケール セミコンダクター インコーポレイテッド データプロセッサ
US5964893A (en) * 1995-08-30 1999-10-12 Motorola, Inc. Data processing system for performing a trace function and method therefor
US5544311A (en) * 1995-09-11 1996-08-06 Rockwell International Corporation On-chip debug port
JP3739797B2 (ja) * 1995-10-06 2006-01-25 パトリオット サイエンティフィック コーポレイション 縮小命令セット・コンピューター・マイクロプロセッサーの構造
EP0788057B1 (de) * 1996-01-31 2003-05-02 Compaq Computer Corporation Rechnersystem mit einem Modem ohne Steuerung
US5838897A (en) * 1996-02-27 1998-11-17 Cyrix Corporation Debugging a processor using data output during idle bus cycles
US5889981A (en) * 1996-05-07 1999-03-30 Lucent Technologies Inc. Apparatus and method for decoding instructions marked with breakpoint codes to select breakpoint action from plurality of breakpoint actions
GB9611715D0 (en) * 1996-06-05 1996-08-07 Int Computers Ltd Peripheral device control
US5826105A (en) * 1996-06-10 1998-10-20 Standard Microsystems Corporation System for using an external CPU to access multifunction controller's control registers via configuration registers thereof after disabling the embedded microprocessor
US5768152A (en) * 1996-08-28 1998-06-16 International Business Machines Corp. Performance monitoring through JTAG 1149.1 interface
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
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
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
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
US6018815A (en) * 1996-10-18 2000-01-25 Samsung Electronics Co., Ltd. Adaptable scan chains for debugging and manufacturing test purposes
US5805608A (en) * 1996-10-18 1998-09-08 Samsung Electronics Co., Ltd. Clock generation for testing of integrated circuits
US5793776A (en) * 1996-10-18 1998-08-11 Samsung Electronics Co., Ltd. Structure and method for SDRAM dynamic self refresh entry and exit using JTAG
US5880671A (en) * 1996-10-31 1999-03-09 Hewlett-Packard Company Flexible circuitry and method for detecting signal patterns on a bus
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
US5983017A (en) * 1996-11-12 1999-11-09 Lsi Logic Corporation Virtual monitor debugging method and apparatus
US5812562A (en) * 1996-11-15 1998-09-22 Samsung Electronics Company, Ltd. Low cost emulation scheme implemented via clock control using JTAG controller in a scan environment
US5935266A (en) * 1996-11-15 1999-08-10 Lucent Technologies Inc. Method for powering-up a microprocessor under debugger control
US5956477A (en) * 1996-11-25 1999-09-21 Hewlett-Packard Company Method for processing information in a microprocessor to facilitate debug and performance monitoring
US5881217A (en) * 1996-11-27 1999-03-09 Hewlett-Packard Company Input comparison circuitry and method for a programmable state machine
US6009539A (en) * 1996-11-27 1999-12-28 Hewlett-Packard Company Cross-triggering CPUs for enhanced test operations in a multi-CPU computer system
US5828824A (en) * 1996-12-16 1998-10-27 Texas Instruments Incorporated Method for debugging an integrated circuit using extended operating modes
US6112298A (en) * 1996-12-20 2000-08-29 Texas Instruments Incorporated Method for managing an instruction execution pipeline during debugging of a data processing system
US6065106A (en) * 1996-12-20 2000-05-16 Texas Instruments Incorporated Resuming normal execution by restoring without refetching instructions in multi-word instruction register interrupted by debug instructions loading and processing
DE69728513T2 (de) * 1996-12-20 2005-04-07 Texas Instruments Inc., Dallas Prozessortestanschluss mit Abtastketten und Datenströmung
US5915083A (en) * 1997-02-28 1999-06-22 Vlsi Technology, Inc. Smart debug interface circuit for efficiently for debugging a software application for a programmable digital processor device
US6052811A (en) * 1997-04-15 2000-04-18 Intel Corporation Method and apparatus for locating critical speed paths in integrated circuits using JTAG protocol
JP3151808B2 (ja) * 1997-07-16 2001-04-03 日本電気株式会社 集積回路装置、回路検査装置および方法
US6023759A (en) * 1997-09-30 2000-02-08 Intel Corporation System for observing internal processor events utilizing a pipeline data path to pipeline internally generated signals representative of the event
US6185703B1 (en) 1997-10-10 2001-02-06 Intel Corporation Method and apparatus for direct access test of embedded memory
US6356960B1 (en) 1997-10-29 2002-03-12 Sgs-Thomson Microelectronics Limited Microprocessor having an on-chip CPU fetching a debugging routine from a memory in an external debugging device in response to a control signal received through a debugging port
US6549930B1 (en) 1997-11-26 2003-04-15 Compaq Computer Corporation Method for scheduling threads in a multithreaded processor
US6332178B1 (en) 1997-11-26 2001-12-18 Compaq Computer Corporation Method for estimating statistics of properties of memory system transactions
US6092180A (en) * 1997-11-26 2000-07-18 Digital Equipment Corporation Method for measuring latencies by randomly selected sampling of the instructions while the instruction are executed
US6119075A (en) * 1997-11-26 2000-09-12 Digital Equipment Corporation Method for estimating statistics of properties of interactions processed by a processor pipeline
US5964867A (en) * 1997-11-26 1999-10-12 Digital Equipment Corporation Method for inserting memory prefetch operations based on measured latencies in a program optimizer
US6163840A (en) * 1997-11-26 2000-12-19 Compaq Computer Corporation Method and apparatus for sampling multiple potentially concurrent instructions in a processor pipeline
US6237059B1 (en) 1997-11-26 2001-05-22 Compaq Computer Corporation Method for estimating statistics of properties of memory system interactions among contexts in a computer system
US6195748B1 (en) 1997-11-26 2001-02-27 Compaq Computer Corporation Apparatus for sampling instruction execution information in a processor pipeline
US6374367B1 (en) 1997-11-26 2002-04-16 Compaq Computer Corporation Apparatus and method for monitoring a computer system to guide optimization
US6148396A (en) * 1997-11-26 2000-11-14 Compaq Computer Corporation Apparatus for sampling path history in a processor pipeline
US6070009A (en) * 1997-11-26 2000-05-30 Digital Equipment Corporation Method for estimating execution rates of program execution paths
US6442585B1 (en) 1997-11-26 2002-08-27 Compaq Computer Corporation Method for scheduling contexts based on statistics of memory system interactions in a computer system
US6000044A (en) * 1997-11-26 1999-12-07 Digital Equipment Corporation Apparatus for randomly sampling instructions in a processor pipeline
US5809450A (en) * 1997-11-26 1998-09-15 Digital Equipment Corporation Method for estimating statistics of properties of instructions processed by a processor pipeline
US5923872A (en) * 1997-11-26 1999-07-13 Digital Equipment Corporation Apparatus for sampling instruction operand or result values in a processor pipeline
US6230119B1 (en) * 1998-02-06 2001-05-08 Patrick Michael Mitchell Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit
US5968188A (en) * 1998-03-10 1999-10-19 Grammar Engine System for providing real-time code coverage
WO1999048001A1 (en) * 1998-03-18 1999-09-23 Lsi Logic Corporation Improvements in microprocessor development systems
EP0943995A3 (de) * 1998-03-20 2000-12-06 Texas Instruments Incorporated Prozessor mit Echtzeit-Einfügung von externen Befehlen zur Fehlerbeseitigung ohne Fehlerbeseitigungsmonitor
US6687865B1 (en) * 1998-03-25 2004-02-03 On-Chip Technologies, Inc. On-chip service processor for test and debug of integrated circuits
US6185523B1 (en) * 1998-10-05 2001-02-06 International Business Machines Corporation Apparatus and method for computer system interrupt emulation
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
US6249893B1 (en) * 1998-10-30 2001-06-19 Advantest Corp. Method and structure for testing embedded cores based system-on-a-chip
US6543048B1 (en) * 1998-11-02 2003-04-01 Texas Instruments Incorporated Debugger with real-time data exchange
US6266793B1 (en) 1999-02-26 2001-07-24 Intel Corporation JTAG boundary scan cell with enhanced testability feature
US6233675B1 (en) * 1999-03-25 2001-05-15 Rise Technology Company Facility to allow fast execution of and, or, and test instructions
US6711684B1 (en) 1999-06-08 2004-03-23 General Instrument Corporation Variable security code download for an embedded processor
US6961930B1 (en) 1999-09-22 2005-11-01 Hewlett-Packard Development Company, L.P. Efficient, transparent and flexible latency sampling
US7793261B1 (en) 1999-10-01 2010-09-07 Stmicroelectronics Limited Interface for transferring debug information
US6859891B2 (en) 1999-10-01 2005-02-22 Stmicroelectronics Limited Apparatus and method for shadowing processor information
US6408381B1 (en) 1999-10-01 2002-06-18 Hitachi, Ltd. Mechanism for fast access to control space in a pipeline processor
US6701405B1 (en) 1999-10-01 2004-03-02 Hitachi, Ltd. DMA handshake protocol
US6457118B1 (en) 1999-10-01 2002-09-24 Hitachi Ltd Method and system for selecting and using source operands in computer system instructions
US6567932B2 (en) 1999-10-01 2003-05-20 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6633971B2 (en) 1999-10-01 2003-10-14 Hitachi, Ltd. Mechanism for forward data in a processor pipeline using a single pipefile connected to the pipeline
US6591369B1 (en) 1999-10-01 2003-07-08 Stmicroelectronics, Ltd. System and method for communicating with an integrated circuit
US6460174B1 (en) 1999-10-01 2002-10-01 Stmicroelectronics, Ltd. Methods and models for use in designing an integrated circuit
US6629115B1 (en) 1999-10-01 2003-09-30 Hitachi, Ltd. Method and apparatus for manipulating vectored data
US7000078B1 (en) 1999-10-01 2006-02-14 Stmicroelectronics Ltd. System and method for maintaining cache coherency in a shared memory system
JP2001142692A (ja) * 1999-10-01 2001-05-25 Hitachi Ltd 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法
US6918065B1 (en) 1999-10-01 2005-07-12 Hitachi, Ltd. Method for compressing and decompressing trace information
US6298394B1 (en) 1999-10-01 2001-10-02 Stmicroelectronics, Ltd. System and method for capturing information on an interconnect in an integrated circuit
US6412047B2 (en) 1999-10-01 2002-06-25 Stmicroelectronics, Inc. Coherency protocol
US6557119B1 (en) 1999-10-01 2003-04-29 Stmicroelectronics Limited Microcomputer debug architecture and method
US6434665B1 (en) 1999-10-01 2002-08-13 Stmicroelectronics, Inc. Cache memory store buffer
US6449712B1 (en) 1999-10-01 2002-09-10 Hitachi, Ltd. Emulating execution of smaller fixed-length branch/delay slot instructions with a sequence of larger fixed-length instructions
US6615370B1 (en) 1999-10-01 2003-09-02 Hitachi, Ltd. Circuit for storing trace information
US6349371B1 (en) 1999-10-01 2002-02-19 Stmicroelectronics Ltd. Circuit for storing information
US6463553B1 (en) 1999-10-01 2002-10-08 Stmicroelectronics, Ltd. Microcomputer debug architecture and method
US6574651B1 (en) 1999-10-01 2003-06-03 Hitachi, Ltd. Method and apparatus for arithmetic operation on vectored data
US6684348B1 (en) 1999-10-01 2004-01-27 Hitachi, Ltd. Circuit for processing trace information
US6553460B1 (en) 1999-10-01 2003-04-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6542983B1 (en) 1999-10-01 2003-04-01 Hitachi, Ltd. Microcomputer/floating point processor interface and method
US6732307B1 (en) 1999-10-01 2004-05-04 Hitachi, Ltd. Apparatus and method for storing trace information
US6598128B1 (en) 1999-10-01 2003-07-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6546480B1 (en) 1999-10-01 2003-04-08 Hitachi, Ltd. Instructions for arithmetic operations on vectored data
US6412043B1 (en) 1999-10-01 2002-06-25 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US7260745B1 (en) 1999-10-01 2007-08-21 Stmicroelectronics Ltd. Detection of information on an interconnect
US6590907B1 (en) 1999-10-01 2003-07-08 Stmicroelectronics Ltd. Integrated circuit with additional ports
US6487683B1 (en) 1999-10-01 2002-11-26 Stmicroelectronics Limited Microcomputer debug architecture and method
US6826191B1 (en) 1999-10-01 2004-11-30 Stmicroelectronics Ltd. Packets containing transaction attributes
US7072817B1 (en) 1999-10-01 2006-07-04 Stmicroelectronics Ltd. Method of designing an initiator in an integrated circuit
US6693914B1 (en) 1999-10-01 2004-02-17 Stmicroelectronics, Inc. Arbitration mechanism for packet transmission
US6351803B2 (en) 1999-10-01 2002-02-26 Hitachi Ltd. Mechanism for power efficient processing in a pipeline processor
US6820195B1 (en) 1999-10-01 2004-11-16 Hitachi, Ltd. Aligning load/store data with big/little endian determined rotation distance control
US6530047B1 (en) 1999-10-01 2003-03-04 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6502210B1 (en) 1999-10-01 2002-12-31 Stmicroelectronics, Ltd. Microcomputer debug architecture and method
US6779145B1 (en) 1999-10-01 2004-08-17 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6665816B1 (en) 1999-10-01 2003-12-16 Stmicroelectronics Limited Data shift register
US6598177B1 (en) 1999-10-01 2003-07-22 Stmicroelectronics Ltd. Monitoring error conditions in an integrated circuit
US7266728B1 (en) 1999-10-01 2007-09-04 Stmicroelectronics Ltd. Circuit for monitoring information on an interconnect
US6772325B1 (en) * 1999-10-01 2004-08-03 Hitachi, Ltd. Processor architecture and operation for exploiting improved branch control instruction
US6601189B1 (en) 1999-10-01 2003-07-29 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6629207B1 (en) 1999-10-01 2003-09-30 Hitachi, Ltd. Method for loading instructions or data into a locked way of a cache memory
US6928073B2 (en) * 1999-10-01 2005-08-09 Stmicroelectronics Ltd. Integrated circuit implementing packet transmission
US6675374B2 (en) 1999-10-12 2004-01-06 Hewlett-Packard Development Company, L.P. Insertion of prefetch instructions into computer program code
US6378092B1 (en) * 1999-10-15 2002-04-23 Hewlett-Packard Company Integrated circuit testing
US6367032B1 (en) * 1999-10-21 2002-04-02 Sony Corporation Of Japan Method and system for debugging a microprocessor core
JP4190114B2 (ja) * 1999-11-10 2008-12-03 株式会社ルネサステクノロジ マイクロコンピュータ
US6643800B1 (en) * 2000-02-02 2003-11-04 Hewlett-Packard Development Company, L.P. Method and apparatus for testing microarchitectural features by using tests written in microcode
US6348826B1 (en) 2000-06-28 2002-02-19 Intel Corporation Digital variable-delay circuit having voltage-mixing interpolator and methods of testing input/output buffers using same
US6348811B1 (en) 2000-06-28 2002-02-19 Intel Corporation Apparatus and methods for testing simultaneous bi-directional I/O circuits
US6377103B1 (en) 2000-06-28 2002-04-23 Intel Corporation Symmetric, voltage-controlled CMOS delay cell with closed-loop replica bias
US7765095B1 (en) 2000-10-26 2010-07-27 Cypress Semiconductor Corporation Conditional branching in an in-circuit emulation system
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US6823282B1 (en) * 2000-10-26 2004-11-23 Cypress Semiconductor Corporation Test architecture for microcontroller providing for a serial communication interface
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US7127630B1 (en) 2000-10-26 2006-10-24 Cypress Semiconductor Corp. Method for entering circuit test mode
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
US6754867B2 (en) 2000-12-28 2004-06-22 Intel Corporation Method of determining non-accessible device I/O pin speed using on chip LFSR and MISR as data source and results analyzer respectively
US7180352B2 (en) * 2001-06-28 2007-02-20 Intel Corporation Clock recovery using clock phase interpolator
US7406674B1 (en) 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
US7009416B1 (en) * 2001-10-29 2006-03-07 Juniper Networks, Inc. Systems and methods for monitoring integrated circuit internal states
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US7844437B1 (en) 2001-11-19 2010-11-30 Cypress Semiconductor Corporation System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit
US7770113B1 (en) 2001-11-19 2010-08-03 Cypress Semiconductor Corporation System and method for dynamically generating a configuration datasheet
US7774190B1 (en) 2001-11-19 2010-08-10 Cypress Semiconductor Corporation Sleep and stall in an in-circuit emulation system
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US8069405B1 (en) 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
US7308608B1 (en) 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
US6971045B1 (en) * 2002-05-20 2005-11-29 Cyress Semiconductor Corp. Reducing tester channels for high pinout integrated circuits
US7761845B1 (en) 2002-09-09 2010-07-20 Cypress Semiconductor Corporation Method for parameterizing a user module
US7305586B2 (en) * 2003-04-25 2007-12-04 International Business Machines Corporation Accessing and manipulating microprocessor state
US7296187B1 (en) * 2003-07-14 2007-11-13 Zilog, Inc. Hardware debug device having script-based host interface
US7437623B2 (en) * 2003-11-05 2008-10-14 Texas Instruments Incorporated Apparatus and method for performing speculative reads from a scan control unit using FIFO buffer units
US7457986B2 (en) * 2003-11-05 2008-11-25 Texas Instruments Incorporated Apparatus and method for using variable end state delay to optimize JTAG transactions
US7434205B1 (en) 2004-02-19 2008-10-07 Steenhagen Shawn K Virtual type interpretation, interaction and detection
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
US8069436B2 (en) 2004-08-13 2011-11-29 Cypress Semiconductor Corporation Providing hardware independence to automate code generation of processing device firmware
US8286125B2 (en) 2004-08-13 2012-10-09 Cypress Semiconductor Corporation Model for a hardware device-independent method of defining embedded firmware for programmable systems
US7332976B1 (en) 2005-02-04 2008-02-19 Cypress Semiconductor Corporation Poly-phase frequency synthesis oscillator
US7840845B2 (en) * 2005-02-18 2010-11-23 Intel Corporation Method and system for setting a breakpoint
JP4211751B2 (ja) * 2005-03-25 2009-01-21 セイコーエプソン株式会社 集積回路装置
US7400183B1 (en) 2005-05-05 2008-07-15 Cypress Semiconductor Corporation Voltage controlled oscillator delay cell and method
US8089461B2 (en) 2005-06-23 2012-01-03 Cypress Semiconductor Corporation Touch wake for electronic devices
US8085067B1 (en) 2005-12-21 2011-12-27 Cypress Semiconductor Corporation Differential-to-single ended signal converter circuit and method
US8067948B2 (en) 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
US8245199B2 (en) * 2006-05-05 2012-08-14 International Business Machines Corporation Selectively marking and executing instrumentation code
US7783866B2 (en) * 2006-05-05 2010-08-24 International Business Machines Corporation Method and apparatus for executing instrumentation code using processor instructions
US7737724B2 (en) 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8130025B2 (en) 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US8092083B2 (en) 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US8040266B2 (en) 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
US8049569B1 (en) 2007-09-05 2011-11-01 Cypress Semiconductor Corporation Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes
US9448964B2 (en) 2009-05-04 2016-09-20 Cypress Semiconductor Corporation Autonomous control in a programmable system
US9785508B2 (en) 2014-09-10 2017-10-10 Nxp Usa, Inc. Method and apparatus for configuring I/O cells of a signal processing IC device into a safe state
JP6338114B2 (ja) 2015-06-25 2018-06-06 京セラドキュメントソリューションズ株式会社 Icチップ
US9810739B2 (en) * 2015-10-27 2017-11-07 Andes Technology Corporation Electronic system, system diagnostic circuit and operation method thereof

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4399505A (en) * 1981-02-06 1983-08-16 Data General Corporaton External microcode operation in a multi-level microprocessor

Family Cites Families (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3639911A (en) * 1970-06-10 1972-02-01 Incoterm Digital processor having automatic conflict-resolving logic
US3805245A (en) * 1972-04-11 1974-04-16 Ibm I/o device attachment for a computer
US3937938A (en) * 1974-06-19 1976-02-10 Action Communication Systems, Inc. Method and apparatus for assisting in debugging of a digital computer program
US4010448A (en) * 1974-10-30 1977-03-01 Motorola, Inc. Interrupt circuitry for microprocessor chip
US4149244A (en) * 1976-06-07 1979-04-10 Amdahl Corporation Data processing system including a program-executing secondary system controlling a program-executing primary system
US4236204A (en) * 1978-03-13 1980-11-25 Motorola, Inc. Instruction set modifier register
US4200912A (en) * 1978-07-31 1980-04-29 Motorola, Inc. Processor interrupt system
US4422141A (en) * 1979-07-30 1983-12-20 Bell Telephone Laboratories, Incorporated Microprocessor architecture for improved chip testability
JPS5660959A (en) * 1979-10-23 1981-05-26 Toshiba Corp Diagnostic system
IT1126475B (it) * 1979-12-03 1986-05-21 Honeywell Inf Systems Apparato di comunicazione tra piu' processori
US4312066A (en) * 1979-12-28 1982-01-19 International Business Machines Corporation Diagnostic/debug machine architecture
JPS56115525A (en) * 1980-02-18 1981-09-10 Chiyou Lsi Gijutsu Kenkyu Kumiai Manufacture of semiconductor device
US4350904A (en) * 1980-09-22 1982-09-21 Bell Telephone Laboratories, Incorporated Current source with modified temperature coefficient
US4403287A (en) * 1981-08-24 1983-09-06 Bell Telephone Laboratories, Incorporated Microprocessor architecture having internal access means
US4547849A (en) * 1981-12-09 1985-10-15 Glenn Louie Interface between a microprocessor and a coprocessor
US4455622A (en) * 1982-03-05 1984-06-19 Burroughs Corporation Bit-oriented line adapter system
US4680698A (en) * 1982-11-26 1987-07-14 Inmos Limited High density ROM in separate isolation well on single with chip
JPS59208657A (ja) * 1983-05-13 1984-11-27 Matsushita Electric Ind Co Ltd 内部テスト機能を有するlsiマイクロプロセツサ
US4644494A (en) * 1984-02-06 1987-02-17 Sundstrand Data Control, Inc. Solid state memory for aircraft flight data recorder systems
DE3587643T2 (de) * 1984-03-02 1994-03-24 Nec Corp Informationsverarbeitungseinheit mit Unterbrechungsfunktion.
US4719565A (en) * 1984-11-01 1988-01-12 Advanced Micro Devices, Inc. Interrupt and trap handling in microprogram sequencer
US4734882A (en) * 1985-04-01 1988-03-29 Harris Corp. Multilevel interrupt handling scheme
US5027273A (en) * 1985-04-10 1991-06-25 Microsoft Corporation Method and operating system for executing programs in a multi-mode microprocessor
US4674089A (en) * 1985-04-16 1987-06-16 Intel Corporation In-circuit emulator
JPS625446A (ja) * 1985-07-01 1987-01-12 Hitachi Ltd マイクロプロセツサの制御方法および装置
US4720811A (en) * 1985-04-26 1988-01-19 Hitachi, Ltd. Microprocessor capable of stopping its operation at any cycle time
US4677586A (en) * 1985-06-04 1987-06-30 Texas Instruments Incorporated Microcomputer device having test mode substituting external RAM for internal RAM
JPS6168647A (ja) * 1985-09-20 1986-04-09 Nec Corp データ処理装置
US5036453A (en) * 1985-12-12 1991-07-30 Texas Instruments Incorporated Master/slave sequencing processor
US4907150A (en) * 1986-01-17 1990-03-06 International Business Machines Corporation Apparatus and method for suspending and resuming software applications on a computer
US5125088A (en) * 1986-09-08 1992-06-23 Compaq Computer Corporation Computer system speed control at continuous processor speed
JPH06103472B2 (ja) * 1986-10-29 1994-12-14 日本電気株式会社 デバツグ用マイクロプロセツサ
DE3685117D1 (de) * 1986-12-30 1992-06-04 Ibm Einrichtung und verfahren zur erweiterung des befehlssatzes und der funktionen eines rechners.
JPS63240639A (ja) * 1987-03-27 1988-10-06 Nec Corp マイクロコンピユ−タ
JPS63250702A (ja) * 1987-04-07 1988-10-18 Hitachi Ltd シ−ケンスコントロ−ラ
US5032983A (en) * 1987-04-10 1991-07-16 Tandem Computers Incorporated Entry point mapping and skipping method and apparatus
US5329471A (en) * 1987-06-02 1994-07-12 Texas Instruments Incorporated Emulation devices, systems and methods utilizing state machines
US4896289A (en) * 1987-07-29 1990-01-23 Xitron, Inc. Expansion interface board system for connecting several personal computers to an electronic typesetter connected to a host personal computer
JPH0198313A (ja) * 1987-10-09 1989-04-17 Nec Corp 同期化回路
US5084814A (en) * 1987-10-30 1992-01-28 Motorola, Inc. Data processor with development support features
US5056015A (en) * 1988-03-23 1991-10-08 Du Pont Pixel Systems Limited Architectures for serial or parallel loading of writable control store
US5263143A (en) * 1988-07-11 1993-11-16 Star Semiconductor Corporation Real time probe device for internals of signal processor
US4945536A (en) * 1988-09-09 1990-07-31 Northern Telecom Limited Method and apparatus for testing digital systems
JPH02105942A (ja) * 1988-10-14 1990-04-18 Nec Corp マイクロコンピュータ
JPH031231A (ja) * 1989-02-09 1991-01-07 Nec Corp マイクロプログラム制御装置
JPH0719215B2 (ja) * 1989-06-01 1995-03-06 三菱電機株式会社 マイクロプロセッサ
US4949360A (en) * 1989-08-08 1990-08-14 International Business Machines Corporation Synchronizing circuit
US5136714A (en) * 1989-12-04 1992-08-04 International Business Machines Corporation Method and apparatus for implementing inter-processor interrupts using shared memory storage in a multi-processor computer system
US5276824A (en) * 1990-01-08 1994-01-04 Motorola, Inc. Data processor having a multi-stage instruction pipe and selection logic responsive to an instruction decoder for selecting one stage of the instruction pipe
JPH03217988A (ja) * 1990-01-23 1991-09-25 Matsushita Electric Ind Co Ltd 1チップマイクロコンピュータ
JP2526688B2 (ja) * 1990-02-22 1996-08-21 三菱電機株式会社 プログラマブルコントロ―ラおよびシ―ケンスプログラムの部分実行方法
US5228039A (en) * 1990-05-09 1993-07-13 Applied Microsystems Corporation Source-level in-circuit software code debugging instrument
US5265005A (en) * 1990-08-31 1993-11-23 Allen-Bradley Company, Inc. Processor for a programmable controller
US5175853A (en) * 1990-10-09 1992-12-29 Intel Corporation Transparent system interrupt
US5128970A (en) * 1990-12-20 1992-07-07 Unisys Corporation Non-return to zero synchronizer
EP0503117B1 (de) * 1991-03-13 1995-06-28 Siemens Aktiengesellschaft Prozessorschaltung
US5254942A (en) * 1991-04-25 1993-10-19 Daniel D'Souza Single chip IC tester architecture
GB9111179D0 (en) * 1991-05-23 1991-07-17 Motorola Gmbh An implementation of the ieee 1149.1 boundary-scan architecture
US5636363A (en) * 1991-06-14 1997-06-03 Integrated Device Technology, Inc. Hardware control structure and method for off-chip monitoring entries of an on-chip cache
US5274834A (en) * 1991-08-30 1993-12-28 Intel Corporation Transparent system interrupts with integrated extended memory addressing
US5274826A (en) * 1991-08-30 1993-12-28 Intel Corporation Transparent system interrupts with automated input/output trap restart
US5291604A (en) * 1991-08-30 1994-03-01 Intel Corporation Transparent system interrupts with automated halt state restart
US5353424A (en) * 1991-11-19 1994-10-04 Digital Equipment Corporation Fast tag compare and bank select in set associative cache
DE4309532C2 (de) * 1992-03-25 1996-10-31 Intel Corp Verfahren zum Sichern einer Systemabbildung eines Computersystems auf einer permanenten Speichereinrichtung sowie ein Computersystem

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4399505A (en) * 1981-02-06 1983-08-16 Data General Corporaton External microcode operation in a multi-level microprocessor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US-Z: "Computer Design", April 1985, S. 157-162 *

Also Published As

Publication number Publication date
JP2824978B2 (ja) 1998-11-18
GB9218391D0 (en) 1992-10-14
DE4313594A1 (de) 1993-10-28
FR2690539A1 (fr) 1993-10-29
FR2690539B1 (fr) 1995-10-13
GB2266606A (en) 1993-11-03
JPH05334114A (ja) 1993-12-17
US5479652B1 (en) 2000-05-02
GB2266606B (en) 1996-02-14
US5479652A (en) 1995-12-26

Similar Documents

Publication Publication Date Title
DE4313594C2 (de) Mikroprozessor
DE3903835C2 (de)
DE19834191C2 (de) Integrierte Schaltungsvorrichtung und ihr Steuerverfahren
DE69830718T2 (de) Ablaufdaten-cachespeicher fuer mikroprozessorbasierte anordung
DE2953432C1 (de) Vorrichtung zum Testen eines Mikroprogramms
DE69737732T2 (de) Nachrichtenübertragungsverfahren für eine Testzugriffsportsteuerungsvorrichtung (TAP)
US4312066A (en) Diagnostic/debug machine architecture
DE60212271T2 (de) Eingebauter Selbsttest mit eingebautem Speicher und Prozessor in einer ASIC Vorrichtung
DE69915377T2 (de) Auf-chip fehlersuchsystem
EP0503117B1 (de) Prozessorschaltung
DE4311441C2 (de) Verfahren zum Betreiben eines Mikroprozessors mit einem externen Anschluß
DE4434895C2 (de) Verfahren und Vorrichtung zur Behandlung von Ausnahmebedingungen
DE102004009693A1 (de) Technik zum Kombinieren eines Abtasttests und eines eingebauten Speicherselbsttests
EP0104635A2 (de) Verfahren und Anordnung zum Prüfen eines digitalen Rechners
DE19604251C2 (de) Emulationsvorrichtung für Microcomputer, Verfahren zur Erfassung einer Vielzahl von Statusdaten und Fehlerbeseitigungssystem
DE69815006T2 (de) Datenverarbeitungseinheit mit Fehlerbeseitungsmöglichkeiten
DE2658864A1 (de) Pruefsystem fuer eine mikroprogrammierte verarbeitungseinheit
EP1565825A2 (de) Einrichtung und verfahren zur analyse von eingebetteten systemen
DE2461592A1 (de) Anordnung zur durchfuehrung von wartungsoperationen bei einem datenverarbeitungssystem
DE112008001590B4 (de) Prozessorbetriebsinspektionssystem und Betriebsinspektionsschaltung
DE102009012768B4 (de) JTAG Nachrichtenbox
DE60010847T2 (de) Verfahren zur Fehlerbeseitigung in einem Thread-Programm
DE69915788T2 (de) Mikrokontrollgerät mit Fehlerbeseitigungsunterstützung
DE19635284C2 (de) Ein-Chip-Prozessor mit extern ausgeführter Testfunktion
DE2622140C3 (de) Einrichtung zur Steuerung manueller Operationen

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
R071 Expiry of right
R071 Expiry of right