DE4313594A1 - Mikroprozessor - Google Patents

Mikroprozessor

Info

Publication number
DE4313594A1
DE4313594A1 DE4313594A DE4313594A DE4313594A1 DE 4313594 A1 DE4313594 A1 DE 4313594A1 DE 4313594 A DE4313594 A DE 4313594A DE 4313594 A DE4313594 A DE 4313594A DE 4313594 A1 DE4313594 A1 DE 4313594A1
Authority
DE
Germany
Prior art keywords
command
mode
processor
execution unit
driven
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.)
Granted
Application number
DE4313594A
Other languages
English (en)
Other versions
DE4313594C2 (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 Computerprozessoren; insbe­ sondere betrifft die Erfindung einen Betriebsmodus für die Dia­ gnose und Beseitigung von Fehlern der Computer-Hardware und -Software.
Ein Mikroprozessor ist das Herz der meisten gegenwärtig ge­ bräuchlichen Computer und bildet einen zentralen Ort für viele Funktionen, welche durch Ausführen einer Serie von Befehlen re­ alisiert werden. Mikroprozessoren weisen charakteristischer­ weise eine Steuereinheit zum Überwachen und Leiten der Funk­ tionseinheiten auf, welche gemeinsam Befehle ausführen. Insbe­ sondere überwacht und steuert die Steuereinheit den Befehlsfluß durch die Stufen der Verarbeitung. Die auszuführenden Befehle sind im allgemeinen in einem Computerspeicher, wie beispiels­ weise 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 Be­ fehle werden dann ggf. decodiert und an eine Ausführungseinheit angelegt. Die Ausführungseinheit kann eine Anzahl von Mehr­ zweckregistern, eine arithmetische Einheit (ALU), Steuerregi­ ster und Steuerlogik enthalten. Die in den Registern gespei­ cherten Daten, welche insgesamt den "Prozessorzustand" reprä­ sentieren, werden oftmals während des Betriebs der Ausführungs­ einheit 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 direkter Zugriff auf die Ausführungseinheit im allgemeinen infolge der damit verbundenen Verringerung der Leistungsfähigkeit und der sich ergebenden Kosten nicht praktikabel, insbesondere bei einem massenhaft produzierten Mikroprozessor.
Zusätzlich zur Untersuchung und Modifizierung des Prozes­ sorzustands 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 beispielsweise wäre diese Fähigkeit vorteilhaft, um Interaktionen zwischen den vielen in­ tegrierten Schaltungen, Peripheriekomponenten und dem Mikropro­ zessor zu analysieren. Bei der Entwicklung von Software auf Sy­ stemebene und von Anwendungsprogrammen, die auf dem System ab­ gearbeitet werden sollen, kann die Fähigkeit, Kenntnisse über den Prozessorzustand zu erhalten, die Bemühungen bei der Besei­ tigung von Fehlern beträchtlich erleichtern.
Beim Entwurf eines einen Mikroprozessor verwendenden Com­ puters oder bei der Beseitigung der vielen unvermeidbar während der Entwicklung eines Computerprodukts auftretenden Probleme kann ein In-Circuit-Emulator (ICE) verwendet werden. Ein In- Circuit-Emulator ist ein speziell konstruiertes Werkzeug, das die Funktionen des von ihm zu unterstützenden Mikroprozessors nachbildet und zusätzliche eingebaute Merkmale aufweist, die die Bemühungen zur Fehlerbeseitigung beträchtlich erleichtern. Im Betrieb wird ein In-Circuit-Emulator physisch anstelle des Mikroprozessors in dessen Steckplatz auf der Leiterplatte ein­ gesetzt. In-Circuit-Emulatoren implementieren einen alternati­ ven Speicherraum, der verwendet wird, um den Prozessorzustand und andere für die spätere Analyse relevante Daten zu spei­ chern. In-Circuit-Emulatoren haben Nachteile, insbesondere hö­ here Kosten pro Einheit im Vergleich zu den massenhaft produ­ zierten Mikroprozessoren; sie sind nicht in der Lage, ein Pro­ blem innerhalb des Mikroprozessors selbst zu erkennen, und ver­ ursachen 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 Ver­ bindungen 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 Informationen werden in einem alternativen Adreßraum gespeichert. Mit zuneh­ mend kleineren Geometrien und höheren Dichten wird es unprak­ tikabel, einen Stift für jeden Draht der Schaltung vorzusehen. Darüberhinaus 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 Randabtastungsschaltung (boundary scan circuit) schlängelt sich eine einfache serielle Verbindung durch die ge­ samte 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 Ausführung eines Programms durch einen Anwender auftreten. Beispielsweise kann der Mikroprozessor einfach anhalten, oder er kann sinnlose Daten ausgeben oder Daten im Speicher zerstören. Die Lokalisie­ rung der Ursache eines solchen Problems kann extrem schwierig sein. Um den Anwendungsprogrammierer bei seinen Entwicklungsan­ strengungen zu unterstützen, wurden Fehlerbeseitigungswerkzeuge entwickelt. Die Fehlerbeseitigungswerkzeuge können in die Hard­ ware eines Computers eingebaut sein, oder sie können eine Soft­ ware-Hardware-Kombination enthalten.
Manchmal bezieht sich der Fehler auf die Software, und es kann ein Software-Debugger ausreichend sein, um die Ursache des Fehlers zu isolieren. Software-Debugger sind Maschinencodepro­ gramme, 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 Programmabar­ beitung in einen Fehlerbeseitigungsmodus. Da der normale Ablauf der Programmabarbeitung von einem Unterbrechungspunkt unter­ brochen wird, ist dieser oftmals wie ein Interrupt implemen­ tiert.
Software-Debugger können in einigen Fällen für eine Fehler­ beseitigung ausreichend sein; wenn jedoch das System nicht be­ triebsfähig ist, können die Debugger-Programme nicht abgearbei­ tet werden. Darüberhinaus 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ängige Probleme brauchbar, bei welchen die zeitliche Synchronisation wichtig ist. Wenn ein solches Problem auftritt, erfordert eine vollständige Analyse im allgemeinen zusätzliche Hardware, wie beispielweise einen In-Circuit-Emulator oder einen anderen Hardware-Debugger.
Wenn ein Mikroprozessor eines installierten Computersystems eine Störungssuche oder Fehlerbeseitigung erforderlich macht, kann ein Serviceruf erforderlich sein. Das Ergebnis eines Ser­ vicerufs 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 diagnostiziert werden kann.
Es wäre ferner ein Vorteil, einen Mikroprozessor mit einer Schaltung zu schaffen, die unter Verwendung von durch ein ex­ ternes Signal angelegten Befehlen den Prozessorzustand son­ dieren und Befehle ohne Beeinflussung dieses Zustandes ausfüh­ ren kann. Zusätzlich wäre es von Vorteil, wenn die Schaltung Hardware und Pins verwendet, die bereits auf dem Chip vorhanden sind, so daß die Kosten der Implementierung der Schaltung ge­ ring sind und folglich ihr Einbau in massenhaft produzierte Mi­ kroprozessoren für den Kunden kosteneffektiv wäre. Ein solcher Mikroprozessor würde Anwendung finden bei Computerentwicklern, -herstellern, Systemprogrammierern, Anwendungsprogrammierern und Kunden-Servicepersonal.
Die Erfindung schafft einen externen Befehlsmodus zum di­ rekten Zugreifen auf den Prozessorzustand und die Ausführungs­ einheit in Abhängigkeit von extern erzeugten Kommandos und Be­ fehlen. Ein Vorteil des externen Befehlsmodus ist die Testbar­ keit des Mikroprozessors. Auch schafft der externe Befehlsmodus eine Möglichkeit, den Betrieb des Mikroprozessors zu über­ wachen. Ein Systementwickler oder Wartungsingenieur kann den Prozessorzustand überprüfen und modifizieren, ohne dabei die Inhalte der Register zu beeinflussen, einschließlich der Re­ gister, die nur für ein Programm auf einem Supervisorniveau oder ein privilegiertes Programm sichtbar wären. Im bevorzugten Ausführungsbeispiel kann auf sämtliche Register und Zähler zu­ gegriffen werden. Außerdem kann der Benutzer die Inhalte des Speichers und des I/O-Raumes überprüfen und modifizieren. Es sind Befehle vorgesehen, um auf die Gleitkommaeinheit und be­ liebige andere parallele Verarbeitungseinheiten zuzugreifen. Auch kann jeder von der Ausführungseinheit ausführbare Befehl über den externen Befehlsmodus ausgeführt werden.
Der externe Befehlsmodus ermöglicht einen direkten Zugriff auf die Ausführungseinheit und vermeidet ein implizites Aktua­ lisieren, das den Zustand des Prozessors beeinflussen und folg­ lich ein Sichern des Prozessorzustandes erfordern würde. Weil der Prozessorzustand nicht geändert wird, ist die Notwendigkeit zum Sichern des Prozessorzustandes in einen alternativen Spei­ cher beseitigt. Ein anderer Vorteil ist die Verwendung von her­ kömmlichen, bereits für einen anderen Zweck auf dem Chip vor­ handenen Schaltungen mit geringen Modifikationen und die Ver­ wendung eines Standard-Kommunikationsprotokolls, das mit Se­ rienkomponenten implementiert werden kann. Im bevorzugten Aus­ führungsbeispiel werden die externen Kommandos und Befehle über einen Standard-Test-Zugriffs-Port (TAP - Test Access Port) zu­ geführt, der entsprechend dem Randabtast-Standard IEEE 1149.1 entwickelt wurde und der das Joint-Test-Access-Group(JTAG)-Pro­ tokoll für die Kommunikationen verwendet. Das Verwenden dieses Ports bedeutet, daß keine zusätzlichen Pins erforderlich sind, um den Sondierungsmodus zu implementieren, wodurch Kosten ge­ spart werden. Der externe Befehlsmodus ist auf Prozessoren mit einer Pipeline anwendbar und auf Prozessoren, bei denen mehrere Pipelines parallel arbeiten.
Die Erfindung ist in einer Computerschaltung verkörpert, die jeweils in einem von zumindest zwei Moden arbeitet. In ei­ nem prozessorgetriebenen Modus, welcher ein herkömmlicher Modus des Computerbetriebs ist, reagiert die Schaltung auf eine Serie von in dem Computerspeicher gespeicherten Befehlen. In dem ex­ ternen Befehlsmodus, der in dem bevorzugten Ausführungsbeispiel "Sondierungsmodus" genannt wird, reagiert die Schaltung auf ex­ tern erzeugte Kommandos und Befehle, die durch einen Zugriffs­ port fließen. Die Computerschaltung enthält eine Modusauswahl­ einheit zum Auswählen zwischen dem Sondierungsmodus und dem prozessorgetriebenen Modus des Betriebs. Im bevorzugten Ausfüh­ rungsbeispiel sind drei Verfahren zum Auswählen des externen Befehlsmodus vorgesehen. Ein erstes Verfahren benutzt einen "Run/Stop"(R/S)-Pin genannten externen Anschluß, der an dem Mi­ kroprozessor zur Verfügung gestellt wird. Ein zweites Verfahren verwendet einen über den Zugriffsport eingegebenen externen Be­ fehl. Ein drittes Verfahren verwendet eine Fehlerbeseitigungs- Ausnahme, die normalerweise durch einen Software-Debug-Manager gehandhabt wird. Für eine geeignete Anzeige, ob sich die Schal­ tung im externen Befehlsmodus befindet, ist ein zusätzlicher "Bestätigungspin" genannter Anschluß vorgesehen, um anzuzeigen, daß die Ausführungseinheit bereit ist, ein externes Signal zu akzeptieren.
Die Computerschaltung enthält einen prozessorgetriebenen Befehlspfad, einen externen Befehlspfad und eine Ausführungs­ einheit. Der prozessorgetriebene Befehlspfad holt im Speicher des Computers gespeicherte Befehle heran und legt sie unter Steuerung des Prozessors an die Ausführungseinheit an. Der ex­ terne 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 Mul­ tiplexer ausgewählt, der von einer zentralen Steuereinheit ab­ hängig ist, die auf die Modusauswahleinheit anspricht. Mit an­ deren Worten, jeder Pfad schafft ein Eingangssignal für einen Multiplexer, der den aktuell an die Ausführungseinheit anzule­ genden Befehlspfad auswählt.
Der prozessorgetriebene Befehlspfad aktualisiert implizit die Prozessorzustandsinformationen, bevor er seinen Befehl an die Ausführungseinheit anlegt. Die Prozessorzustandsinforma­ tionen enthalten den Befehlszeiger. In Ausführungsbeispielen, die einen Decodierer und einen Vor-Heranholer für Befehle variabler Länge aufweisen, umfaßt das implizite Verhalten des prozessorgetriebenen Pfades auch das Heranholen eines nächsten Befehls, das Berechnen seiner Länge und das entsprechende Ein­ stellen des Befehlszeigers. Der externe Befehlspfad aktuali­ siert nicht implizit die Zustandsinformation, bevor sein Befehl an die Ausführungseinheit angelegt wird. In Ausführungsbeispie­ len, die einen Decodierer enthalten, wird dieses implizite Ver­ halten im externen Befehlsmodus vermieden, indem der Decodierer umgangen wird und der Befehl direkt an die Ausführungseinheit geliefert wird.
Der prozessorgetriebene Befehlspfad enthält ein Sondie­ rungsbefehlsregister (PIR - Probe Instruction Register) genann­ tes Befehlsregister, zum Laden und Halten eines Befehls, der durch die Ausführungseinheit gelesen werden soll. Ein Zugriffs­ port bearbeitet den Informationsfluß zwischen einer externen Signalquelle und dem Befehlsregister. Außerdem ist ein Sondie­ rungsdatenregister (PDR - Probe Data Register) genanntes Daten­ register vorgesehen, das entsprechend dem Befehl in dem Be­ fehlsregister von dem Zugriffsport oder der Ausführungseinheit geladen bzw. gelesen werden kann.
Im folgenden wird die Erfindung anhand eines in der Zeich­ nung dargestellten Ausführungsbeispiels näher beschrieben. In der Zeichnung zeigen:
Fig. 1 ein Blockschaltbild der Struktur eines Zugriffsports und eines Prozessors sowie ihrer Schnittstelle;
Fig. 2 ein Ablaufdiagramm, das die im prozessorgetriebenen Modus und die im externen Befehlsmodus auftretenden Schritte zeigt;
Fig. 3 ein Ablaufdiagramm, das die in dem Sondierungsmodus des bevorzugten Ausführungsbeispiels auftretenden Schritte näher darstellt;
Fig. 4 ein Ablaufdiagramm, das die Auswahl des Sondierungs­ modus zum Handhaben einer Fehlerbeseitigungsausnahme veranschaulicht; und
Fig. 5 ein Ablaufdiagramm, das ein Verfahren zum Zugreifen auf den Sondierungsmodus durch eine Fehlerbeseiti­ gungsausnahme veranschaulicht.
Im folgenden wird auf Fig. 1 Bezug genommen, in welcher ein eine Prozessoreinheit 10 und einen Zugriffsport 12 veranschau­ lichendes Blockschaltbild gezeigt ist. Im bevorzugten Ausfüh­ rungsbeispiel sind diese Strukturen, die Prozessoreinheit 10 und der Zugriffsport 12, auf einem einzigen Halbleiterchipbau­ stein untergebracht. Bei anderen Ausführungsbeispielen können die darin beschriebenen Funktionen durch entsprechende Einhei­ ten auf separaten Chips ausgeführt werden.
Der Prozessor 10 weist einen prozessorgetriebenen Befehls­ pfad 14 auf. In diesem prozessorgetriebenen Befehlspfad 14 sind Anordnungen zum Anlegen von Befehlen an eine Ausführungseinheit enthalten. Diese Anordnungen können beliebige herkömmliche An­ ordnungen sein. Der prozessorgetriebene Befehlspfad 14 kann Einheiten zum Cache-Speichern, Heranholen, Puffern, (ggf. er­ forderlichen) Decodieren und erneuten 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 vom 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 aus zu­ 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/Speicher-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/Speicher-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 (30)

1. Computerschaltung, die in einem prozessorgetriebenen Mo­ dus arbeiten kann und dabei auf eine Serie von in einem Com­ puterspeicher gespeicherten Befehlen anspricht und die außerdem in einem externen Befehlsmodus arbeiten kann und dabei auf einen extern erzeugten Befehl und ein extern erzeugtes Kommando anspricht, gekennzeichnet durch
Modusauswahlmittel (24, 26, 30) zum Auswählen des externen Befehlsmodus oder des prozessorgetriebenen Modus;
eine Ausführungseinheit (20) zum Ausführen von Befehlen; einen Multiplexer (18), der einen ausgewählten Befehl der Ausführungseinheit (20) zur Verfügung stellt;
einen prozessorgetriebenen Befehlspfad (14) zum Anlegen der gespeicherten Befehle an einen Eingang des Multiplexers (18);
einen externen Befehlspfad (34, 36) zum Anlegen des extern erzeugten Befehls an einen Eingang des Multiplexers (18); und
auf die Modusauswahlmittel (24, 26, 30) ansprechende Mittel (16) zum Steuern des Multiplexers (18) derart, daß der Multi­ plexer (18)
während des Betriebs im prozessorgetriebenen Modus einen gespeicherten Befehl aus dem prozessorgetriebenen Befehlspfad (14) und
während des Betriebs im externen Befehlsmodus ein extern erzeugten Befehl aus dem externen Befehlspfad (34, 36) auswählt.
2. Computerschaltung nach Anspruch 1, dadurch gekennzeich­ net, daß der prozessorgetriebene Befehlspfad (14) einen De­ codierer aufweist, der einen Befehlszeiger gleichzeitig mit dem Decodieren eines Befehls aktualisiert.
3. Computerschaltung nach Anspruch 1 oder 2, dadurch ge­ kennzeichnet daß der externe Befehlspfad (34, 36) ein Befehls­ register (36) zum Speichern eines extern erzeugten Befehls auf­ weist.
4. Computerschaltung nach einem der Ansprüche 1 bis 3, da­ durch gekennzeichnet, daß die Modusauswahlmittel (24, 26, 30) einen Run/Stop-Pin (30) aufweisen, der bei Aktivierung den Be­ trieb des prozessorgetriebenen Befehlspfads (14) anhält.
5. Computerschaltung nach einem der Ansprüche 1 bis 4, da­ durch gekennzeichnet, daß die Modusauswahlmittel (24, 26, 30) eine Steuerlogik enthalten, die auf ein extern erzeugtes Kom­ mando anspricht, um den Betrieb des prozessorgetriebenen Be­ fehlspfads (14) anzuhalten.
6. Computerschaltung nach einem der Ansprüche 1 bis 5, da­ durch gekennzeichnet, daß die Modusauswahlmittel (24, 26, 30) ein Sondierungsmodus-Steuerregister (26) mit einem Befehls-Um­ adressier-Flag (IR-Flag) aufweisen zum Anhalten des Betriebs des prozessorgetriebenen Befehlspfads (14), wenn eine Fehlerbe­ seitigungsausnahme während des Betriebs des prozessorgetrie­ benen Befehlspfads (14) auftritt.
7. Computerschaltung nach einem der Ansprüche 1 bis 6, ge­ kennzeichnet durch einen Bestätigungspin (86), der ein Signal zur Verfügung stellt, welches anzeigt, ob sich der Prozessor (10) in dem externen Befehlsmodus befindet und zum Ausführen eines extern erzeugten Befehls bereit ist.
8. Computerschaltung mit einem Prozessor (10), die in einem prozessorgetriebenen Modus arbeiten kann und dabei eine Reihe von in einem Computerspeicher gespeicherten Befehlen ausführt und die außerdem in einem Sondierungsmodus arbeiten kann, und dabei ein externes Signal (32) empfängt, das extern erzeugte Kommandos und einen Sondierungsmodusbefehl und Sondierungsmo­ dusdaten enthalten kann, gekennzeichnet durch
Modusauswahlmittel (24, 26, 30) zum Auswählen zwischen dem prozessorgetriebenen Modus und dem Sondierungsmodus;
einen Zugriffsport (12) mit Mitteln (34) zum Empfangen und Senden des externen Si­ gnals (32);
Mitteln zum Senden von Informationen zu dem Prozessor (10) und Empfangen von Informationen aus dem Prozessor; und
einer Steuerlogik zum Steuern der Schnittstelle zwi­ schen dem Zugriffsport (12) und dem Prozessor (10); und ein Sondierungsbefehlsregister (36) zum Halten eines mit dem externen Signal (32) empfangenen Sondierungsmodusbefehls;
ein Sondierungsdatenregister (38) zum Halten von Daten;
eine Ausführungseinheit (20) zum Ausführen von Befehlen; und
einen Multiplexer (18), der einen der Ausführungseinheit (20) zur Verfügung zu stellenden Befehl auswählt, wobei der Multiplexer (18) aus einem einen Befehl aus dem prozessorge­ triebenen Pfad (14) enthaltenden Eingangssignal und einem Son­ dierungsmodusbefehl aus dem Sondierungsbefehlsregister (36) auswählt.
9. Computerschaltung nach 8, gekennzeichnet durch Mittel zum Initiieren der Ausführung eines in dem Sondierungsbefehls­ register (36) gespeicherten Befehls, die auf ein extern er­ zeugtes Kommando ansprechen.
10. Computerschaltung nach Anspruch 8 oder 9, dadurch ge­ kennzeichnet, daß die Modusauswahlmittel einen Run/Stop-Pin (30) enthalten, der den Betrieb des prozessorgetriebenen Be­ fehlspfads (14) anhält, wenn er aktiviert ist.
11. Computerschaltung nach einem der Ansprüche 8 bis 10, dadurch gekennzeichnet, daß die Modusauswahlmittel eine Steuer­ logik zum Anhalten des Betriebs des prozessorgetriebenen Be­ fehlspfads (14) enthalten, die auf ein extern erzeugtes Kom­ mando anspricht.
12. Computerschaltung nach einem der Ansprüche 8 bis 11, dadurch gekennzeichnet, daß die Modusauswahlmittel ein Sondie­ rungsmodus-Steuerregister (26) mit einem Befehls-Umadressier- Flag aufweisen, das den Betrieb des prozessorgetriebenen Be­ fehlspfads (14) anhält, wenn eine Fehlerbeseitigungsausnahme während des Betriebs im prozessorgetriebenen Modus auftritt.
13. Computerschaltung nach einem der Ansprüche 8 bis 12, gekennzeichnet durch einen Bestätigungspin (86), der ein Signal zur Verfügung stellt, das anzeigt, ob sich der Prozessor (10) in dem Sondierungsmodus befindet und zum Ausführen eines in dem Sondierungsbefehlsregister (36) gespeicherten Befehls bereit ist.
14. Mikroprozessor (10), der selektiv in einem prozessorge­ triebenen Modus arbeiten kann, in welchem der Mikroprozessor auf eine Serie von in einem Computerspeicher gespeicherten Be­ fehlen anspricht, und der in einem externen Befehlsmodus arbei­ ten kann, in welchem der Mikroprozessor (10) auf extern er­ zeugte Befehle anspricht, gekennzeichnet durch
Mittel (24, 30) zum Auswählen zwischen dem externen Be­ fehlsmodus und dem prozessorgetriebenen Modus;
eine Ausführungseinheit (20) zum Ausführen von Befehlen;
Mittel (18, 36), die einen extern erzeugten Befehl an die Ausführungseinheit (20) anlegen, wenn der externe Befehlsmodus ausgewählt ist;
Mittel (18, 14), die einen gespeicherten Befehl an die Aus­ führungseinheit (20) anlegen, wenn der prozessorgetriebene Mo­ dus ausgewählt ist;
Aktualisierungsmittel, die implizit bei ausgewähltem pro­ zessorgetriebenen Modus die Prozessorzustandsinformationen ak­ tualisieren, bevor der gespeicherte Befehl an die Ausführungs­ einheit (20) angelegt wird, wobei die Prozessorzustandsinforma­ tionen einen Befehlszeiger enthalten; und
Mittel, die ein Umgehen der Aktualisierungsmittel bewirken, wenn der externe Befehlsmodus ausgewählt ist.
15. Mikroprozessor nach Anspruch 14, dadurch gekennzeich­ net, daß die Mittel (18, 14) zum Anlegen eines gespeicherten Befehls an die Ausführungseinheit (20) ferner einen Decodierer enthalten, der den Befehlszeiger aktualisiert, bevor der deco­ dierte Befehl an die Ausführungseinheit (20) angelegt wird.
16. Mikroprozessor nach Anspruch 14 oder 15, dadurch ge­ kennzeichnet, daß die Mittel (18, 36) zum Anlegen eines extern erzeugten Befehls an die Ausführungseinheit (20) ein Befehlsre­ gister (36) zum Speichern eines extern erzeugten Befehls ent­ halten.
17. Mikroprozessor nach einem der Ansprüche 14 bis 16, da­ durch gekennzeichnet, daß ein Bestätigungspin (86) vorgesehen ist, der ein Signal zur Verfügung stellt, das anzeigt, ob der Prozessor (10) sich in dem externen Befehlsmodus befindet und zum Ausführen eines extern erzeugten Befehls bereit ist.
18. Verfahren zum Betreiben eines einen Pipeline-Befehls­ fluß durch einen prozessorgetriebenen Befehlspfad aufweisenden Mikroprozessor durch externe Befehle, wobei Zustandsinformatio­ nen, einschließlich eines Befehlszeigers implizit aktualisiert werden, bevor ein Befehl an eine Ausführungseinheit angelegt wird, dadurch gekennzeichnet,
daß ein ein externes Signal mit der Ausführungseinheit kop­ pelnder externer Befehlspfad zur Verfügung gestellt wird, über den die implizite Aktualisierung des prozessorgetriebenen Be­ fehlspfads umgangen wird;
daß ein Befehl über den externen Befehlspfad zur Ausführung in der Ausführungseinheit angelegt und in der Ausführungsein­ heit ausgeführt wird.
19. Verfahren nach Anspruch 18, dadurch gekennzeichnet,
daß in dem externen Befehlspfad ein Befehlsregister zur Verfügung gestellt wird;
daß beim Anlegen des Befehls über den externen Befehlspfad der Befehl in dem Befehlsregister gespeichert wird; und
daß beim Ausführen des Befehls in der Ausführungseinheit das Befehlsregister gelesen wird.
20. Verfahren nach Anspruch 18 oder 19, dadurch gekenn­ zeichnet,
daß ein externer Datenpfad zur Verfügung gestellt wird, über den das externe Signal mit der Ausführungseinheit gekop­ pelt wird, wobei in dem externen Datenpfad ein Datenregister zur Verfügung gestellt wird, das in Abhängigkeit von der Steue­ rung durch ein externes Signal beschrieben oder gelesen wird;
daß Daten in das Datenregister gespeichert und mit Hilfe des externen Signals ausgelesen werden, wenn der Befehl die An­ weisung zum Lesen des Prozessorzustands oder anderer Daten aus der Ausführungseinheit enthält; und
daß mit Hilfe des externen Signals Daten in dem Datenregi­ ster gespeichert werden, und dann das Datenregister von der Ausführungseinheit gelesen wird, wenn der Befehl die Anweisung zum Schreiben von Daten zur Ausführungseinheit entfällt.
21. Verfahren nach einem der Ansprüche 8 bis 20, dadurch gekennzeichnet, daß das Ausführen des Befehls durch Anlegen eines extern erzeugten Kommandos an eine Steuereinheit initi­ iert wird.
22. Verfahren zum Betreiben eines Mikroprozessors, dadurch gekennzeichnet,
daß ein Betriebsmodus zum Ausführen von Befehlen ausgewählt wird, wobei der Modus ein Sondierungsmodus oder ein prozessor­ getriebener Modus sein kann;
daß bei Auswahl des prozessorgetriebenen Modus Befehle da­ durch ausgeführt werden, daß
ein Befehl aus einem Speicher herangeholt und einem Decodierer zur Verfügung gestellt wird,
der Befehl decodiert wird, um einen oder mehrere Mi­ krobefehle zur Verfügung zu stellen, die nacheinander an eine Ausführungseinheit angelegt werden,
Prozessorzustandsinformationen einschließlich eines Befehlszeigers aktualisiert werden und
die von dem Decodierer angelegten Mikrobefehle aus ge­ führt werden; und
daß bei Auswahl des Sondierungsmodus Befehle dadurch ausge­ führt werden, daß
ein extern erzeugter Befehl zur Verfügung gestellt wird und
der extern erzeugte Befehl ausgeführt wird, ohne den Befehlszeiger und andere Prozessorzustandsinformationen implizit zu aktualisieren.
23. Verfahren nach Anspruch 22, dadurch gekennzeichnet, daß ein Bestätigungspin aktiviert wird, wenn der Sondierungsmodus ausgewählt wurde und der Prozessor bereit ist, einen Befehl auszuführen.
24. Verfahren nach Anspruch 22 oder 23, dadurch gekenn­ zeichnet, daß im Falle der Auswahl des Sondierungsmodus bei der Ausführung der extern erzeugten Befehle ferner ein extern erzeugter Befehl in einem Befehlsregister ge­ speichert wird und das Befehlsregister gelesen wird, um den gespeicherten ex­ tern erzeugten Befehl auszuführen.
25. Verfahren nach einem der Ansprüche 22 bis 24, dadurch gekennzeichnet, daß Daten aus der Ausführungseinheit in ein Da­ tenregister gespeichert und dann aus dem Datenregister gelesen werden, wenn der extern erzeugte Befehl ein Lesen der Daten aus der Ausführungseinheit anweist.
26. Verfahren nach einem der Ansprüche 22 bis 25, dadurch gekennzeichnet, daß Daten in ein Datenregister gespeichert und dann die Daten aus dem Datenregister in die Ausführungseinheit ausgelesen werden, wenn der extern erzeugte Befehl ein Schrei­ ben der Daten in die Ausführungseinheit anweist.
27. Verfahren nach einem der Ansprüche 22 bis 26, dadurch gekennzeichnet, daß die Ausführung des extern erzeugten Befehls durch Anlegen eines extern erzeugten Kommandos an eine Steuereinheit initiiert wird.
28. Verfahren nach einem der Ansprüche 22 bis 27, dadurch gekennzeichnet, daß beim Auswählen des Betriebsmodus ein exter­ ner Pin aktiviert und der prozessorgetriebene Befehlspfad so gesteuert wird, daß das Heranholen, Decodieren und Aktuali­ sieren des prozessorgetriebenen Modus angehalten wird.
29. Verfahren nach einem der Ansprüche 22 bis 28, dadurch gekennzeichnet, daß beim Auswählen des Betriebsmodus ein Signal an die Steuerlogik angelegt wird, die die Heranhol-, Decodier- und Aktualisier-Operationen des prozessorgetriebenen Betriebs­ modus anhält.
30. Verfahren nach einem der Ansprüche 22 bis 29, dadurch gekennzeichnet, daß beim Auswählen des Betriebsmodus
ein Interrupt-Umadressier-Flag in einem Sondierungsmodus- Steuerregister gesetzt wird,
während des Betriebs in dem prozessorgetriebenen Modus eine Fehlerbeseitigungsausnahme erfaßt wird,
das Interrupt-Umadressier-Flag getestet wird, um festzu­ stellen, ob es gesetzt wurde, und
der Sondierungsmodus mit einer Steuerlogik ausgewählt wird, die die Heranhol-, Decodier- und Aktualisier-Operationen des prozessorgetriebenen 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 true DE4313594A1 (de) 1993-10-28
DE4313594C2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19952272B4 (de) * 1998-10-30 2007-05-31 Advantest Corp. Verfahren und System zum Prüfen von auf eingebetteten Bausteinen basierenden integrierten Systemchip-Schaltungen

Families Citing this family (178)

* 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
WO1997015001A2 (en) * 1995-10-06 1997-04-24 Patriot Scientific Corporation Risc microprocessor architecture
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
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
US5867644A (en) * 1996-09-10 1999-02-02 Hewlett Packard Company System and method for on-chip debug support and performance monitoring in a microprocessor
US5881224A (en) * 1996-09-10 1999-03-09 Hewlett-Packard Company Apparatus and method for tracking events in a microprocessor that can retire more than one instruction during a clock cycle
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
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
US5956476A (en) * 1996-10-31 1999-09-21 Hewlett Packard Company Circuitry and method for detecting signal patterns on a bus using dynamically changing expected patterns
US5880671A (en) * 1996-10-31 1999-03-09 Hewlett-Packard Company Flexible circuitry and method for detecting signal patterns on a bus
US5983017A (en) * 1996-11-12 1999-11-09 Lsi Logic Corporation Virtual monitor debugging method and apparatus
US5935266A (en) * 1996-11-15 1999-08-10 Lucent Technologies Inc. Method for powering-up a microprocessor under debugger control
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
US5956477A (en) * 1996-11-25 1999-09-21 Hewlett-Packard Company Method for processing information in a microprocessor to facilitate debug and performance monitoring
US6009539A (en) * 1996-11-27 1999-12-28 Hewlett-Packard Company Cross-triggering CPUs for enhanced test operations in a multi-CPU computer system
US5881217A (en) * 1996-11-27 1999-03-09 Hewlett-Packard Company Input comparison circuitry and method for a programmable state machine
US5828824A (en) * 1996-12-16 1998-10-27 Texas Instruments Incorporated Method for debugging an integrated circuit using extended operating modes
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
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
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
US6374367B1 (en) 1997-11-26 2002-04-16 Compaq Computer Corporation Apparatus and method for monitoring a computer system to guide optimization
US6549930B1 (en) 1997-11-26 2003-04-15 Compaq Computer Corporation Method for scheduling threads in a multithreaded processor
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
US6195748B1 (en) 1997-11-26 2001-02-27 Compaq Computer Corporation Apparatus for sampling instruction execution information in 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
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
US6148396A (en) * 1997-11-26 2000-11-14 Compaq Computer Corporation Apparatus for sampling path history in a processor pipeline
US6119075A (en) * 1997-11-26 2000-09-12 Digital Equipment Corporation Method for estimating statistics of properties of interactions processed by a processor pipeline
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
US6070009A (en) * 1997-11-26 2000-05-30 Digital Equipment Corporation Method for estimating execution rates of program execution paths
US6332178B1 (en) 1997-11-26 2001-12-18 Compaq Computer Corporation Method for estimating statistics of properties of memory system transactions
US6163840A (en) * 1997-11-26 2000-12-19 Compaq Computer Corporation Method and apparatus for sampling multiple potentially concurrent 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
US6000044A (en) * 1997-11-26 1999-12-07 Digital Equipment Corporation Apparatus for randomly sampling instructions in 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
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
US6574590B1 (en) * 1998-03-18 2003-06-03 Lsi Logic Corporation 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
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
US6820195B1 (en) 1999-10-01 2004-11-16 Hitachi, Ltd. Aligning load/store data with big/little endian determined rotation distance control
US7260745B1 (en) 1999-10-01 2007-08-21 Stmicroelectronics Ltd. Detection of information on an interconnect
US6772325B1 (en) * 1999-10-01 2004-08-03 Hitachi, Ltd. Processor architecture and operation for exploiting improved branch control instruction
US6859891B2 (en) 1999-10-01 2005-02-22 Stmicroelectronics Limited Apparatus and method for shadowing processor information
US6629115B1 (en) 1999-10-01 2003-09-30 Hitachi, Ltd. Method and apparatus for manipulating vectored data
US6557119B1 (en) 1999-10-01 2003-04-29 Stmicroelectronics Limited Microcomputer debug architecture and method
US7793261B1 (en) 1999-10-01 2010-09-07 Stmicroelectronics Limited Interface for transferring debug information
US6553460B1 (en) 1999-10-01 2003-04-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6412047B2 (en) 1999-10-01 2002-06-25 Stmicroelectronics, Inc. Coherency protocol
US6591369B1 (en) 1999-10-01 2003-07-08 Stmicroelectronics, Ltd. 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
US6601189B1 (en) 1999-10-01 2003-07-29 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6530047B1 (en) 1999-10-01 2003-03-04 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6298394B1 (en) 1999-10-01 2001-10-02 Stmicroelectronics, Ltd. System and method for capturing information on an interconnect in an integrated circuit
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
US6408381B1 (en) 1999-10-01 2002-06-18 Hitachi, Ltd. Mechanism for fast access to control space in a pipeline processor
US6693914B1 (en) 1999-10-01 2004-02-17 Stmicroelectronics, Inc. Arbitration mechanism for packet transmission
US6598128B1 (en) 1999-10-01 2003-07-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6502210B1 (en) 1999-10-01 2002-12-31 Stmicroelectronics, Ltd. Microcomputer debug architecture and method
US6684348B1 (en) 1999-10-01 2004-01-27 Hitachi, Ltd. Circuit for processing trace information
JP2001142692A (ja) * 1999-10-01 2001-05-25 Hitachi Ltd 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法
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
US6665816B1 (en) 1999-10-01 2003-12-16 Stmicroelectronics Limited Data shift register
US6732307B1 (en) 1999-10-01 2004-05-04 Hitachi, Ltd. Apparatus and method for storing trace information
US6918065B1 (en) 1999-10-01 2005-07-12 Hitachi, Ltd. Method for compressing and decompressing trace information
US6615370B1 (en) 1999-10-01 2003-09-02 Hitachi, Ltd. Circuit for storing trace information
US6567932B2 (en) 1999-10-01 2003-05-20 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6928073B2 (en) * 1999-10-01 2005-08-09 Stmicroelectronics Ltd. Integrated circuit implementing packet transmission
US6457118B1 (en) 1999-10-01 2002-09-24 Hitachi Ltd Method and system for selecting and using source operands in computer system instructions
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
US6460174B1 (en) 1999-10-01 2002-10-01 Stmicroelectronics, Ltd. Methods and models for use in designing an integrated circuit
US6701405B1 (en) 1999-10-01 2004-03-02 Hitachi, Ltd. DMA handshake protocol
US6542983B1 (en) 1999-10-01 2003-04-01 Hitachi, Ltd. Microcomputer/floating point processor interface and method
US6574651B1 (en) 1999-10-01 2003-06-03 Hitachi, Ltd. Method and apparatus for arithmetic operation on vectored data
US6598177B1 (en) 1999-10-01 2003-07-22 Stmicroelectronics Ltd. Monitoring error conditions in an integrated circuit
US6779145B1 (en) 1999-10-01 2004-08-17 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6412043B1 (en) 1999-10-01 2002-06-25 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6463553B1 (en) 1999-10-01 2002-10-08 Stmicroelectronics, Ltd. Microcomputer debug architecture and method
US7000078B1 (en) * 1999-10-01 2006-02-14 Stmicroelectronics Ltd. System and method for maintaining cache coherency in a shared memory system
US7072817B1 (en) 1999-10-01 2006-07-04 Stmicroelectronics Ltd. Method of designing an initiator in an integrated circuit
US6351803B2 (en) 1999-10-01 2002-02-26 Hitachi Ltd. Mechanism for power efficient processing in a pipeline processor
US7266728B1 (en) 1999-10-01 2007-09-04 Stmicroelectronics Ltd. Circuit for monitoring information on an interconnect
US6349371B1 (en) 1999-10-01 2002-02-19 Stmicroelectronics Ltd. Circuit for storing information
US6590907B1 (en) 1999-10-01 2003-07-08 Stmicroelectronics Ltd. Integrated circuit with additional ports
US6546480B1 (en) 1999-10-01 2003-04-08 Hitachi, Ltd. Instructions for arithmetic operations on vectored data
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
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
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
US7765095B1 (en) 2000-10-26 2010-07-27 Cypress Semiconductor Corporation Conditional branching in an in-circuit emulation system
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
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US6823282B1 (en) * 2000-10-26 2004-11-23 Cypress Semiconductor Corporation Test architecture for microcontroller providing for a serial communication interface
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
US8069405B1 (en) 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
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
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US7774190B1 (en) 2001-11-19 2010-08-10 Cypress Semiconductor Corporation Sleep and stall in an in-circuit emulation system
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
US8130025B2 (en) 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US8040266B2 (en) 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US7737724B2 (en) 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US8092083B2 (en) 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
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
EP0153764B1 (de) * 1984-03-02 1993-11-03 Nec Corporation 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
US4720811A (en) * 1985-04-26 1988-01-19 Hitachi, Ltd. Microprocessor capable of stopping its operation at any cycle time
JPS625446A (ja) * 1985-07-01 1987-01-12 Hitachi Ltd マイクロプロセツサの制御方法および装置
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 日本電気株式会社 デバツグ用マイクロプロセツサ
EP0273070B1 (de) * 1986-12-30 1992-04-29 International Business Machines Corporation 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
US5274826A (en) * 1991-08-30 1993-12-28 Intel Corporation Transparent system interrupts with automated input/output trap restart
US5274834A (en) * 1991-08-30 1993-12-28 Intel Corporation Transparent system interrupts with integrated extended memory addressing
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 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19952272B4 (de) * 1998-10-30 2007-05-31 Advantest Corp. Verfahren und System zum Prüfen von auf eingebetteten Bausteinen basierenden integrierten Systemchip-Schaltungen

Also Published As

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

Similar Documents

Publication Publication Date Title
DE4313594C2 (de) Mikroprozessor
DE3903835C2 (de)
DE2953432C1 (de) Vorrichtung zum Testen eines Mikroprogramms
DE2722099C2 (de)
DE60212271T2 (de) Eingebauter Selbsttest mit eingebautem Speicher und Prozessor in einer ASIC Vorrichtung
DE102006009224B4 (de) Auswahl eines Testalgorithmus in einer Steuerung für eingebauten Speicherselbsttest
US6052774A (en) Apparatus and method for identifying exception routines indicated by instruction address issued with an instruction fetch command
DE69919404T2 (de) On-line fehlerbeseitigungs- und ablaufverfolgungssytem und verfahren
DE69720821T2 (de) Fehlersuchsystem für Programme mit einer graphischen Benutzerschnittstelle
DE60023882T2 (de) System auf einem Chip mit reprogrammierbarem Testgerät, Fehlerbeseitiger und Busüberwachung
DE4206062C2 (de) Pipelineverarbeitung von Instruktionen
DE19831761A1 (de) Prüfung einer integrierten Schaltungsvorrichtung während der Anbringung an einer Leiterplatte
DE19834191C2 (de) Integrierte Schaltungsvorrichtung und ihr Steuerverfahren
DE4311441C2 (de) Verfahren zum Betreiben eines Mikroprozessors mit einem externen Anschluß
DE4418892C2 (de) Mikrocomputer
DE102004009693A1 (de) Technik zum Kombinieren eines Abtasttests und eines eingebauten Speicherselbsttests
DE4329336A1 (de) Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors
EP1720100A1 (de) Verfahren und Vorrichtung zur Emulation einer programmierbaren Einheit
DE102009019961A1 (de) Vorrichtung, Systeme und Verfahren zum effizienten Verwenden von Hardware-Ressourcen für einen Softwaretest
DE102006019292A1 (de) Modellieren programmierbarer Einrichtungen
EP0104635A2 (de) Verfahren und Anordnung zum Prüfen eines digitalen Rechners
WO2004049159A2 (de) Einrichtung und verfahren zur analyse von eingebetteten systemen
DE102004034766A1 (de) Fehlererfassungsverfahren und System für Prozessoren, das verriegelungsschrittweise betriebene gleichzeitige Teilprozesse verwendet
DE2461592C3 (de) Anordnung zur Durchführung von Wartungsoperationen bei einem Datenverarbeitungssystem
EP2962205A1 (de) Mehrkern-prozessorsystem mit fehleranalysefunktion

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