[go: up one dir, main page]

DE69523549T2 - Mikroprozessor mit Fehlersuchsystem - Google Patents

Mikroprozessor mit Fehlersuchsystem

Info

Publication number
DE69523549T2
DE69523549T2 DE69523549T DE69523549T DE69523549T2 DE 69523549 T2 DE69523549 T2 DE 69523549T2 DE 69523549 T DE69523549 T DE 69523549T DE 69523549 T DE69523549 T DE 69523549T DE 69523549 T2 DE69523549 T2 DE 69523549T2
Authority
DE
Germany
Prior art keywords
debug
microprocessor
output
address
tool
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69523549T
Other languages
English (en)
Other versions
DE69523549D1 (de
Inventor
Takashi Miyamori
Tatsuo Yano
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.)
Toshiba Corp
Agilent Technologies Inc
Original Assignee
Toshiba Corp
Hewlett Packard Co
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 Toshiba Corp, Hewlett Packard Co filed Critical Toshiba Corp
Publication of DE69523549D1 publication Critical patent/DE69523549D1/de
Application granted granted Critical
Publication of DE69523549T2 publication Critical patent/DE69523549T2/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/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3648Debugging of software using additional hardware
    • G06F11/3656Debugging of software using additional hardware using a specific debug interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3636Debugging of software by tracing the execution of the program

Landscapes

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

Description

    Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft ein Fehlersuchsystem zur Fehlersuche in Anwendungssystemen für einen Mikrocomputer.
  • Stand der Technik
  • Fig. 1 zeigt ein Beispiel 1 gemäß dem Stand der Technik, das ein Fehlersuchsystem darstellt, das im allgemeinen als ROM Monitor bezeichnet wird. Eine serielle Schnittstelle 80 zum Verbinden eines Host-Computers 90 wird auf einem Anwenderzielsystem 70 zu Verfügung gestellt, und ein Monitorprogramm 41 wird auf einem Speicher 40 gespeichert. Ein Mikroprozessor 10 greift auf eine Eingabe/Ausgabe E/A-Vorrichtung 50, einen Speicher 40 und ein Register 11 zu, indem er ein Monitorprogramm 41 durchführt. Darüber hinaus wird die Ausführungssteuerung der Anwenderprogramme unter Verwendung von Softwareunterbrechungsbefehlen bzw. Software-Halte-Befehlen durchgeführt.
  • Fig. 2 zeigt ein Beispiel 2 gemäß dem Stand der Technik. Eine serielle Schnittstelle 12, die für eine Kommunikation mit einem Fehlersuchwerkzeug 100 benötigt wird, und ein Sequenzer 13 zum Interpretieren und Ausführen des elektrischen Signals, das von dem Fehlersuchwerkzeug 100 gesendet wird, sind in dem Mikroprozessor 10 auf dem Anwenderzielsystem 70 enthalten. Gemäß den empfangenen Signalen hält der Sequenzer 13 die Ausführung des Zugriffs des Anwenderprogramms auf ein Register 11 oder den Zugriff auf einen Speicher 40 oder eine E/A-Vorrichtung 50 unter Verwendung der Bussteuerung 14 zeitweise an. Darüber hinaus wird die Ausführungssteuerung von Anwenderprogrammen unter Nutzung von Hardware-Haltepunkten oder Softwareunterbrechungsbefehlen durchgeführt.
  • Weil häufig Signale von der seriellen Schnittstelle 12 nicht direkt mit dem Host-Computer 90 verbunden werden können, wandelt ein Fehlersuchwerkzeug 100 die Befehle von dem Host- Computer 90 in elektrische Signale um, die direkt mit dem Mikroprozessor 10 verbunden bzw. an diesen weitergeleitet werden können, und wandelt Signale von dem Mikroprozessor 10 in ein Datenformat um, das der Host-Computer 90 versteht.
  • Fig. 3 zeigt ein Beispiel 3 gemäß dem Stand der Technik, bei dem es sich um ein Fehlersuchsystem handelt, das im allgemeinen als schaltungsinterner Emulator bezeichnet wird. Während der Fehlersuche wird der Mikroprozessor 10 auf dem Anwenderzielsystem 70 entfernt oder inaktiv geschaltet, und stattdessen wird die Probe des Fehlersuchwerkzeuges 110 zum Betreiben des Mikroprozessors 120 zur Fehlersuche hiermit verbunden. Der Mikroprozessor 120 zur Fehlersuche steuert die Ausführung der Anwenderprogramme, greift auf Daten in dem Speicher 40 zu und greift auf die E/A-Vorrichtung 50 zu, indem das Monitorprogramm, das in dem Monitorprogrammspeicher 130 auf dem Fehlersuchwerkzeug gespeichert ist, ausgeführt wird. Darüber hinaus führt der Mikroprozessor 120 zur Fehlersuche Programme aus, die in dem Speicher 40 auf dem Anwenderzielsystem gespeichert sind, so als ob der Mikroprozessor 10 sie ausführen würde. Darüber hinaus weist das Fehlersuchwerkzeug 110 einen Verfolgungsspeicher 140 auf und kann den Zustand des Prozessorbusses des Mikroprozessors 120 zur Fehlersuche verfolgen. Der Mikroprozessor 120 zur Fehlersuche gibt die Verfolgungsinformation aus, die nicht über den Mikroprozessor 10 zur Verfügung steht. Dadurch können einige der internen Zustände des Prozessors verfolgt werden, die ansonsten nicht von dem Prozessorbus alleine verfolgt werden können.
  • Fig. 4 zeigt ein Beispiel 4 gemäß dem Stand der Technik, bei dem ein Fehlersuchsystem dargestellt ist, das im allgemeinen als Vorverarbeitungsprozessor (pre-processor) bezeichnet wird. Beim Verbinden der Probe eines Logikanalysators 150 mit dem Prozessorbus 90 des Mikroprozessors 10 auf dem Anwenderzielsystem 40 können Zugriffe auf den Speicher 40 und die E/A-Vorrichtung 50 des Mikroprozessors 10 verfolgt werden.
  • Weil die Betriebsvorgänge und die Schaltkreisstrukturen der Beispiele gemäß dem Stand der Technik, die in den Fig. 1 bis 4 beschrieben worden sind, den Fachleuten in diesem Gebiet gut bekannt sind, wird an dieser Stelle keine weitere Erklärung gegeben.
  • Probleme, die durch die vorliegende Erfindung gelöst werden sollen
  • Bei Beispiel 1 gemäß dem Stand der Technik gibt es Fälle, bei denen der Monitor selbst nicht in einem stabilen Zustand läuft, weil das Monitorprogramm auf dem Anwenderspeicher läuft, falls ein Betrieb des Speichersystems des Anwenderzielsystems nicht vollständig ist. Darüber hinaus ist es möglich, daß der Adreßraum, der von dem Monitor verwendet werden soll, nicht zur Verfügung steht, falls in dem Speicher des Zielsystems kein Speicherraum verbleibt. Weil darüber hinaus einige der Anwenderunterbrechungen bzw. Anwender-Interrupts für den Eintritt in den Monitormodus verwendet werden müssen, ist die Fehlersuche teilweise, abhängig von der Art des Programms, unmöglich. Darüber hinaus ist es erforderlich, Schaltkreise, wie z. B. serielle Schnittstellen-Schaltkreise, in dem Zielsystem zur Verfügung zu stellen, die nach der Fehlersuche möglicherweise nicht mehr verwendet werden. Weil darüber hinaus keine Ressourcen für die Fehlersuche, wie z. B. Hardware-Haltepunkte, zur Verfügung gestellt werden, sind die Fehlersuchfunktionen mangelhaft und Verfolgungsschritte können nicht erzielt werden.
  • Bei Beispiel 2 gemäß dem Stand der Technik werden die Logikschaltkreise für eine Verbindung mit einem Fehlersuchwerkzeug komplex und der Oberflächenbereich, den sie auf dem Chip erfordern, wird sehr groß, weil ein Sequenzer in dem Mikroprozessor enthalten ist und der Sequenzer auf die Register zugreift. Darüber hinaus muß der Sequenzer, wenn zusätzliche Register oder ähnliches zur Verfügung gestellt werden, aktualisiert werden. Darüber hinaus können bei diesem Beispiel gemäß dem Stand der Technik keine Verfolgungsinformationen erzielt werden.
  • Bei Beispiel 3 gemäß dem Stand der Technik wird die Probe teuer und der Kontakt der Probe ist häufig unstabil, weil das Fehlersuchwerkzeug mit allen Anschlüssen des Mikroprozessors auf dem Anwenderziel angeschlossen ist. Darüber hinaus müssen die Busse schnell geschaltet werden, wenn ein Schalten zwischen dem Speicher auf dem Ziel und dem Monitorspeicher in dem Fehlersuchwerkzeug auftritt; daher ist es schwierig, ein solches System mit Prozessoren zu implementieren, die mit einer hohen Betriebsfrequenz arbeiten. Wenn weiterentwickelte Mikroprozessoren vorhanden sind, müssen Fehlersuchwerkzeuge mit Proben für die entsprechenden weiterentwickelten Mikroprozessoren vorbereitet werden, weil die Baugruppen der Mikroprozessoren, die Anschlußnumerierung und die Anschlußzuordnung unterschiedlich sind, obwohl im wesentlichen das gleiche Fehlersuchwerkzeug verwendet werden kann. Darüber hinaus hat das Verbinden der Probe einen Einfluß auf die Signale, die in dem Anwenderziel verwendet werden, was manchmal den Betrieb des Anwenderziels selbst instabil macht.
  • Obwohl bei dem Beispiel 4 gemäß dem Stand der Technik eine Verfolgung möglich ist, selbst nicht mit hochfrequenten Prozessoren, kann ein Verfolgen im Hinblick auf Prozessoren mit einem internen Cache-Speicher nicht durchgeführt werden, während auf den Cache zugegriffen wird. Darüber hinaus ist es im Hinblick auf die Prozessoren mit internen Warteschlangen (Queues) nicht möglich, zu bestimmen, ob abgerufene Informationen ausgeführt worden sind oder nicht. Darüber hinaus gibt es keine Funktion zur Steuerung der Ausführung des Anwenderprogramms, und es ist nicht möglich, die Inhalte des Anwenderspeichers oder der E/A- Vorrichtung zu lesen.
  • Das Dokument "ELECTRONIC DESIGN, vol. 38, Nr. 9, 10. Mai 1990, HASBROUCK HEIGHTS, NEW JERSEY, US, Seiten 29 bis 30, XP000125949 DAVE BURSKY: ' Dedicated Emulation Logic On Chip Debugs Digital Processors's Hardware And Software' " bildet einen relevanten Hintergrund für die vorliegende Erfindung, weil es ein Fehlersuchsystem zur Fehlersuche bei einem Anwenderprogramm für einen Mikroprozessor offenbart, wobei dieses System einen kleinen Logikbereich auf dem Chip umfaßt, der in jeden komplexen integrierten Schaltkreis IC integriert werden kann, der eine on-chip Emulation, eine Durchführung eines Verfolgungsprogramms sowie das Setzen von Haltepunkten an verschiedenen Adreßbussen ermöglicht.
  • Die vorliegende Erfindung stellt einen Mikroprozessor in einem Fehlersuchsystem zur Verfügung, der die Merkmale des Anspruchs 1 umfaßt, sowie ein Verfolgungsverfahren zum Handhaben von Signalen zwischen einem Mikroprozessor und einem Fehlersuchwerkzeug gemäß Anspruch 2.
  • Um die Probleme des Beispiels 1 gemäß dem Stand der Technik zu lösen, wird der Monitorspeicher in dem Fehlersuchwerkzeug zur Verfügung gestellt, das Monitorprogramm wird unter Verwendung von Signalen, die für das Fehlersuchwerkzeug reserviert sind, betrieben, ein Interrupt bzw. eine Unterbrechung, der bzw. die für das Fehlersuchwerkzeug reserviert ist, wird zur Verfügung gestellt, und eine Hardware-Haltefunktion wird in den Mikroprozessor eingebracht. Um die Probleme des Beispiels 2 des Standes der Technik zu lösen, wird auf die Register, den Anwenderspeicher und die E/A-Vorrichtung unter Verwendung eines Monitorprogramms zugegriffen. Um die Probleme des Beispiels 3 gemäß dem Stand der Technik, zu lösen, werden die Logikschaltkreise zum Betreiben der Monitorprogramme in dem Monitorspeicher in dem Fehlersuchwerkzeug, die Logikschaltkreise zum Durchführen der Ausführungssteuerung einschließlich der Hardware-Haltepunkte und die Logikschaltkreise zum Ausgeben der PC Informationen der ausgeführten Befehle in den Mikroprozessor integriert. Darüber hinaus werden die Anschlüsse, die für die Verbindung mit dem Fehlersuchwerkzeug reserviert sind, in dem Mikroprozessor zur Verfügung gestellt, und nur diese Anschlüsse werden mit dem Fehlersuchwerkzeug verbunden. Darüber hinaus wird eine Funktion hinzugefügt, die die Taktfrequenz nur während der Ausführung des Monitorprogramms verringert. Um die Probleme des Beispiels 4 gemäß dem Stand der Technik zu lösen, werden der Logikschaltkreis zum Ausführen des Monitorprogramms auf dem Monitorspeicher in dem Fehlersuchwerkzeug, der Logikschaltkreis zum Ausführen der Steuerung einschließlich der Hardware- Haltepunkte und der Logikschaltkreis zum Ausgeben von PC Informationen der durchgeführten Befehle in den Mikroprozessor integriert.
  • Die Europäische Patentanmeldung EP-A-0 720 093 stammt von den gleichen Anmeldern (Toshiba AG und Hewlett-Packard Company), weist die gleichen effektiven Daten (das gleiche Prioritätsdatum und das gleiche Veröffentlichungsdatum) auf, benennt die gleichen Staaten und weist eine zu der vorliegenden Erfindung im wesentlichen identische Beschreibung auf. Die Hauptansprüche der Europäischen Patentanmeldung EP-A-0 720 093 beziehen sich auf einen Mikroprozessor in einem Fehlersuchsystem zur Fehlersuche bei einem Anwendungsprogramm für diesen Mikroprozessor und konzentriert sich hauptsächlich auf eine allgemeine, interne Fehlersuchschnittstelle für diesen Mikroprozessorkern.
  • Kurze Beschreibung der Zeichnungen
  • Fig. 1 stellt ein Diagramm dar, das die Struktur des Beispiels 1 gemäß dem Stand der Technik zeigt.
  • Fig. 2 stellt ein Diagramm dar, das die Struktur des Beispiels 2 gemäß dem Stand der Technik zeigt.
  • Fig. 3 stellt ein Diagramm dar, das die Struktur des Beispiels 3 gemäß dem Stand der Technik zeigt.
  • Fig. 4 stellt ein Diagramm dar, das die Struktur des Beispiels 4 gemäß dem Stand der Technik zeigt.
  • Fig. 5 stellt ein Diagramm dar, das die Struktur einer Ausführungsform der vorliegenden Erfindung zeigt.
  • Fig. 6 stellt ein Diagramm dar, das die Struktur des Fehlersuchmoduls einer Ausführungsform der vorliegenden Erfindung zeigt.
  • Fig. 7 stellt ein Diagramm dar, das die Struktur des Fehlersuchwerkzeugs einer Ausführungsform der vorliegenden Erfindung zeigt.
  • Fig. 8 stellt ein Diagramm dar, das einen Überblick über Schaltkreise zeigt, die sich auf einen seriellen Monitorbus einer Ausführungsform der vorliegenden Erfindung beziehen.
  • Fig. 9 zeigt ein Zeitablaufdiagramm eines Schreibbusbetriebs des seriellen Monitorbusses bei einer Ausführungsform der vorliegenden Erfindung.
  • Fig. 10 zeigt ein. Zeitablaufdiagramm eines Schreibbusbetriebs des seriellen Monitorbusses bei einer Ausführungsform der vorliegenden Erfindung.
  • Fig. 11 zeigt ein Zeitablaufdiagramm, das ein Beispiel für die Ausgabe der PC Verfolgung eines Sprungbefehls bzw. Verzweigungsbefehls bei einer Ausführungsform der vorliegenden Erfindung zeigt.
  • Fig. 12 zeigt ein Zeitablaufdiagramm, das ein Beispiel für die Ausgabe der PC Verfolgung eines indirekten Sprungbefehls bei einer Ausführungsform der vorliegenden Erfindung zeigt.
  • Fig. 13 zeigt ein Zeitablaufdiagramm, das ein Beispiel für die Ausgabe der PC Verfolgung eines Ausnahme- und indirekten Sprungbefehls bei einer Ausführungsform der vorliegenden Erfindung zeigt.
  • Fig. 14 zeigt ein Zeitablaufdiagramm, das ein Beispiel des Ausgabezeitablaufs des PCST[2 : 0] zeigt, wenn eine Fehlersuchausnahme bei einer Ausführungsform der vorliegenden Erfindung auftritt.
  • Fig. 15 zeigt ein Zeitablaufdiagramm, das die zeitliche Regulierung der Ausgabe des PCST[2 : 0] für den Fall darstellt, bei dem ein Ziel PC ausgegeben wird, wenn eine Fehlersuchausnahme auftritt, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Fig. 16 zeigt ein Zeitablaufdiagramm, das die zeitliche Regulierung der Ausgabe des PCST[2 : 0] darstellt, wenn eine Rückgabe von dem Fehlersuchmodus auftritt, gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Fig. 17 zeigt ein Zeitablaufdiagramm eines Beispiels eines Auftretens eines Verfolgungstriggers, während der aufeinanderfolgenden Ausführung von üblichen Befehlen.
  • Fig. 18 zeigt ein Zeitablaufdiagramm eines Beispiels für den Fall, bei dem ein Verfolgungstrigger während der Ausführung eines Ausnahme-Auftritts-Befehls stattgefunden hat.
  • Fig. 19 ist ein Zeitablaufdiagramm, das ein Beispiel für den Fall darstellt, bei dem ein Verfolgungstrigger während der Ausführung eines indirekten Sprungbefehls aufgetreten ist.
  • Fig. 20 ist ein Zeitablaufdiagramm, das die Struktur der Verfolgungsspeicherschnittstelle und des Verfolgungsspeichers in dem Fehlersuchwerkzeug 60 darstellt.
  • Fig. 21 zeigt ein Diagramm, das die Struktur des Energieversorgungselements des Fehlersuchmoduls darstellt.
  • Fig. 22 zeigt ein Diagramm, das die Struktur des Initialisierungsschaltkreises des Fehlersuchmoduls darstellt.
  • Bezugszeichenliste
  • 10: Mikroprozessor
  • 15: interne Fehlersuchschnittstelle
  • 16: interner Prozessorbus
  • 20: Prozessorkern
  • 30: Fehlersuchmodul
  • 31: Befehls/Daten Adreß-Halteschaltkreis
  • 32: PC Vorfolgunsgschaltkreis
  • 33: Prozessorbus-Halteschaltkreis
  • 34: serieller Monitorbus-Schaltkreis
  • 35: Registerschaltkreis
  • 36: externer Schnittstellenschaltkreis
  • 37: Frequenzteilungsschaltkreis
  • 38: Energieversorgungsschalter
  • 40: Speicher
  • 50: E/A-Vorrichtung
  • 60: Fehlersuchwerkzeug
  • 70: Anwenderzielsystem
  • 71: externe Fehlersuchschnittstelle
  • 90: Prozessorbus
  • 342: serieller Ausgabeschaltkreis A
  • 343: serieller Eingabeschaltkreis A
  • 620: Kommunikationsschnittstelle
  • 630: Steuerung
  • 640: Monitorspeicher '
  • 650: Monitorspeicher-Schnittstelle
  • 651: serieller Eingabeschaltkreis B
  • 652: serieller Ausgabeschaltkreis B
  • 660: Verfolgungsspeicher-Schnittstelle
  • 661: Versorgungsspeicher-Steuerungsschnittstelle
  • 662: Verfolgungsadreßzähler
  • 663: Verfolgungsdatenregister
  • 664: Verfolgungstriggerdekoder
  • 665: Steuerungsadreßregister
  • 667: Steuerungsdatenregister
  • 670: Verfolgungsspeicher.
  • 680: Ablauf-Steuerung
  • 690: Zielschnittstelle
  • Detaillierte Beschreibung der Erfindung
  • Die vorliegende Erfindung wird nachfolgend in Bezug auf die Ausführungsformen beschrieben, bei denen die vorliegende Erfindung auf einem Mikroprozessor angewendet wird, dei einen Prozessorkern mit 32-bit Adressen und einem 32-bit Datenbus umfaßt. Die Sternchen (*), die den Signalnamen in den Figuren und während der nachfolgenden Beschreibung zugeordnet sind, zeigen an, daß diese Signale einer negativen Logik entsprechen.
  • Allgemeine Beschreibung des Fehlersuchsystems
  • Fig. 5 zeigt ein strukturelles Diagramm des Fehlersuchssytems gemäß einer Ausführungsform der vorliegenden Erfindung. Das Fehlersuchsystem umfaßt ein Anwenderzielsystem 70 und ein Fehlersuchwerkzeug 60. Das Anwenderzielsystem 70 umfaßt einen Mikroprozessor 10, in dem eine Fehlersuchfunktion, ein Speicher 40 und eine E/A-Vorrichtung 50 enthalten sind. Der Mikroprozessor 10 umfaßt einen Prozessorkern 21 und ein Fehlersuchmodul 30. Der Prozessorkern 20 greift auf den Speicher 40 und die E/A-Vorrichtung 50 über einen Prozessorbus 20 zu und führt die Programme aus. Der Prozessorkern 20 ist ferner mit dem Fehlersuchmodul 30 über eine interne Fehlersuchschnittstelle 15 und einen internen Prozessorbus 16 verbunden. Das Fehlersuchmodul 30 ist mit dem Fehlersuchmodul 60 über eine externe Fehlersuchschnittstelle 71 verbunden.
  • Beschreibung der Ausführungsmodi
  • Das Fehlersuchsystem hat zwei Ausführungsmodi: Einen Ausführungsmodus, bei dem der Mikroprozessor das Monitorprogramm ausführt und einen normalen Modus, bei dem der Mikroprozessor das Anwenderprogramm ausführt.
  • Beschreibung des Fehlersuchmodus
  • Falls in dem Prozessorkern 20 eine Fehlersuchausnahme oder ein Fehlersuch-Reset auftritt, wird ein Sprung zu der Vectoradresse der Fehlersuchausnahme oder des Resets durchgeführt, und es wird in den Fehlersuchmodus übergegangen. Die Speicher, die diesen Vectoradressen entsprechen, sind in dem Fehlersuchwerkzeug 60 angeordnet. Der Prozessorkern 20 führt das Monitorprogramm auf dem Fehlersuchwerkzeug 60 über das Fehlersuchmodul 30 aus. Das Monitorprogramm implementiert die Ausführungssteuerungsfunktionen, wie z. B. das Lesen von einem Speicher und das Schreiben auf einen Speicher, eine E/A-Vorrichtung und Register, das Setzen von Hardware-Haltepunkten, die Angabe der Ausführungsstartadresse des Anwenderprogramms etc. Das Ausführen eines Befehls für ein Zurückkehren des Prozessorkerns 20 zu dem normalen Modus führt zu einer Rückkehr in den normalen Modus, um die Ausführung des Anwenderprogramms zu starten oder erneut zu starten.
  • Beschreibung des normalen Modus
  • In dem normalen Modus führt das Fehlersuchsystem das Anwenderprogramm aus. In dem normalen Modus wird die PC (Program Counter, Programmzähler) Information an eine externe Fehlersuchschnittstelle 71 ausgegeben. Das Fehlersuchsystem fordert von dem Prozessorkern 20 eine Fehlersuchausnahme oder ein Fehlersuch-Reset an, und zwar mittels eines Hardware-Halts, eines Software-Halts, eines Fehlersuch-Interrupts, eines Fehlersuch-Resets etc., und gibt die Steuerung an den Fehlersuchmodus weiter.
  • Zusammenfassende Erläuterung der Funktionen des Fehlersuchmoduls
  • Nachfolgend werden die serielle Monitorbusfunktion, die während des Fehlersuchmodus aktiv ist, und die PC Verfolgungsfunktion, die Verfolgungstriggerfunktionen, die Hardware- Haltefunktion, die Software-Haltefunktionen, der Fehlersuch-Interrupt, der Fehlersuch-Reset und die Maskenfunktion beschrieben werden, die während des normalen Modus durchgeführt werden.
  • Beschreibung der Funktion des seriellen Monitorbusses
  • Wenn der Prozessorkern 20 auf den für den Monitor reservierten Adreßbereich zugreift, wird die Funktion des seriellen Monitorbusses durch einen Zugriff auf den Monitorspeicher in dem Fehlersuchwerkzeug 60 über einen seriellen Übertragungspfad mittels der Anschlüsse durchgeführt, die für die Fehlersuche reserviert sind. Wenn auf einen Bereich außerhalb des Speichers zugegriffen wird, der für den Monitor reserviert ist, wird der Zugriff über den üblichen Prozessorbus durchgeführt. Dadurch kann der Monitor auch auf den Speicher und die E/A- Vorrichtung auf dem Anwenderzielsystem zugreifen. Obwohl die Bit-Breite des seriellen Monitorbusses bei den nachfolgenden Ausführungsformen 1 Bit beträgt, falls mehr Mikroprozessoranschlüsse für diesen Bus zur Verfügung stehen, können diese ebenfalls in einer Breite von mehreren Bit vorgesehen werden.
  • Beschreibung der PC Verfolgungsfunktion
  • Die PC Verfolgungsfunktion verfolgt die Werte des Programmzählers (Program Counter, PC), während der Prozessorkern 20 ein Anwenderprogramm ausführt. Dies wird durch Ausgabe der PC Verfolgungsinformation an die interne Fehlersuchschnittstelle 15 durchgeführt, wenn der Prozessorkern 20 das Anwenderprogramm von dem Speicher 40 ausführt, diese wird von dem Fehlersuchmodul 30 empfangen und verarbeitet und dann über die externe Fehlersuchschnittstelle zu dem Fehlersuchwerkzeug ausgegeben.
  • Beschreibung der Verfolgungstriggerfunktion
  • Es gibt drei Arten von Verfolgungstriggerfunktionen: Den Befehlsadreß-Verfolgungstrigger, den Datenadreßhaltepunkt und den Prozessorbus-Verfolgungstrigger. Die Befehlsadressen- Verfolgunstriggerfunktion wird durch einen Vergleich des Werts der Befehlsausführungsadresse, die der Prozessorkern 20 an die interne Fehlersuchschnittstelle ausgibt, mit dem Wert der Adresse, die in dem Register in dem Fehlersuchmodul 30 festgelegt wird, ausgeführt. Wenn sie übereinstimmen, wird das Fehlersuchwerkzeug 60 über die externe Fehlersuchschnittstelle 71 darüber informiert, daß ein Verfolgungstrigger aufgetreten ist. Die Datenadreß-Verfolgungstriggerfunktion wird durch einen Vergleich des Werts der Datenzugriffsadresse, die der Prozessorkern 20 an die interne Fehlersuchschnittstelle ausgibt, mit dem Wert der Adresse ausgeführt, die in dem Register in dem Fehlersuchmodul 30 festgesetzt worden ist. Wenn sie übereinstimmen, wird das Fehlersuchwerkzeug 60 über die externe Fehlersuchschnittstelle 71 darüber informiert, daß ein Verfolgungstrigger aufgetreten ist. Die Prozessorbus-Verfolgungstriggerfunktion wird durch einen Vergleich des Werts der Datenzugriffsadresse und der Daten, die der Prozessorkern 20 an die interne Fehlersuchschnittstelle ausgibt, mit dem Wert der Adresse und der Daten durchgeführt, die in dem Register in dem Fehlersuchmodul 30 festgelegt worden sind. Wenn sie übereinstimmen, wird das Fehlersuchmodul 60 über die externe Fehlersuchschnittstelle 71 darüber informiert, daß ein Verfolgungstrigger aufgetreten ist.
  • Beschreibung der Hardware-Haltefunktion
  • Es gibt drei Arten von Hardware-Haltefunktionen: Einen Befehlsadreß-Halt, einen Datenadreß-Halt und einen Prozessorbus-Halt. Die Befehlsadress-Haltefunktion wüd durch einen Vergleich des Werts der Befehlsausführungsadresse, die der Prozessorkern 20 an die interne Fehlersuchschnittstelle ausgibt, mit dem Wert der Adresse durchgeführt, die in dem Register in dem Fehlersuchmodul 30 festgelegt worden ist. Wenn sie übereinstimmen, wird eine Fehlersuchausnahme an den Prozessorkern 20 abgegeben. Die Datenadreß-Haltefunktion wird durch einen Vergleich des Werts der Datenzugriffsadresse, die der Prozessorkern 20 an die interne Fehlersuchschnittstelle abgibt, mit dem Wert der Adresse durchgeführt, die in dem Register in dem Fehlersuchmodul 30 festgelegt worden ist. Wenn sie übereinstimmen, wird eine. Fehlersuchausnahme an den Prozessorkern 20 abgegeben. Die Prozessorbus- Haltefunktion wird durch einen Vergleich der Werte der Datenzugriffsadresse und der Daten, die der Prozessorkern 20 an die interne Fehlersuchschnittstelle ausgibt, mit den Werten für die Adresse und die Daten durchgeführt, die in dem Register in dem Fehlersuchmodul 30 festgelegt worden sind. Wenn sie übereinstimmen, wird eine Fehlersuch-Interrupt-Anfrage an den Prozessorkern 20 ausgegeben.
  • Beschreibung der Software-Haltefunktion
  • Die Software-Haltefunktion verursacht eine Fehlersuchausnahme, wobei der Prozessorkern 20 einen Software-Haltebefehl ausführt. Dies führt zu einem Übergang zu dem Fehlersuchmodus.
  • Beschreibung der Fehlersuch-Interruptfunktion
  • Bei der Fehlersuch-Interruptfunktion verursacht der Prozessor 20 einen Fehlersuch-Interrupt, indem ein Fehlersuch-Interruptsignal geltend gemacht bzw. ausgegeben wird. Dies führt zu einem Übergang in den Fehlersuchmodus.
  • Beschreibung der Fehlersuch-Rücksetzfunktion
  • Bei der Fehlersuch-Rücksetzfunktion bzw. Fehlersuch-Reset-Funktion verursacht der Prozessor 20 einen Fehlersuch-Reset, indem er ein Fehlersuch-Reset-Signal ausgibt. Es initialisiert die internen Zustände des Prozessors 20 und des Fehlersuchmoduls 30, setzt den Prozessorkern 20 in den Fehlersuchmodus und stellt eine Ausführung des Programms sicher, so daß dieses von der Vektoradresse für den Fehlersuch-Reset startet.
  • Beschreibung der Maskenfunktion
  • Die Maskenfunktion maskiert, entsprechend ihrer Einstellung, den Anwender-Interrupt während des normalen Modus oder maskiert den Anwender-Reset während des Fehlersuchmodus.
  • Detaillierte Beschreibung der Gesamtkonstruktion des Fehlersuchmoduls.
  • Das Fehlersuchmodul 30 wird nun nachfolgend im Detail beschrieben. Fig. 6 zeigt die internen Blöcke des Fehlersuchmoduls 30. Das Fehlersuchmodul 30 umfaßt einen Befehls/Daten- Adreß-Halteschaltkreis 31, einen PC Verfolgungsschaltkreis 32, einen Prozessorbus- Halteschaltkreis 33, einen seriellen Monitorbus-Schaltkreis 34, einen Registerschaltkreis 35, einen externen Schnittstellenschaltkreis 36 und einen Frequenzteilerschaltkreis 37.
  • Der PC Verfolgungsschaltkreis ist mit dem Kernprozessor 20 über eine interne Fehlersuchschnittstelle 15 verbunden. Die PC Information der ausgeführten Befehle, der Ausgabe von dem Prozessor 20, wird eingegeben, die Information wird verarbeitet, und das Ergebnis wird an den externen Schnittstellenschaltkreis 36 ausgegeben.
  • Der Befehls/ Daten-Adreß-Halteschaltkreis 31 ist mit dem Prozessorkern 20 über die interne Fehlersuchschnittstelle 15 verbunden. In dem Fall, in dem der Schaltkreis 31 die Befehlsadreßausgabe von dem Prozessor 20 eingibt und der Wert der Befehlsadresse entspricht, die in dem Registerschaltkreis 35 eingestellt ist, fordert der Schaltkreis eine Befehlsadreß- Halteausnahme von dem Prozessorkern 20, falls die Verwendung der Befehlsadreßhaltepunkte ermöglicht worden ist. Dann, wenn die Verwendung der Verfolgungstrigger ermöglicht worden ist, wird der PC Verfolgungsschaltkreis 32 über das Auftreten des Triggers informiert.
  • Wenn der Schaltkreis die Datenadreßausgabe von dem Prozessorkern 20 eingibt und der Wert der Datenadresse entspricht, die in dem Registerschaltkreis 35 festgesetzt worden ist, wird eine Nachfrage für eine Adreßhalteausnahme an den Prozessorkern 20 ausgegeben, wenn die Verwendung von Datenadreßhaltepunkten ermöglicht worden ist. Wenn die Verwendung von Verfolgungstriggern ermöglicht worden ist, wird der PC Verfolgungsschaltkreis 32 über das Vorhandensein des Triggers informiert. Die Verwendung eines Halts bzw. eines Haltepunktes oder eines Verfolgungstriggers wird durch den Wert des entsprechenden Bit des zugehörigen Registers in dem Registerschaltkreis 35 ermöglicht.
  • Der Prozessorbus-Halteschaltkreis 33 ist mit dem Prozessorkern 20 über den internen Prozessorbus 16 verbunden. Jedes Bit der Daten kann maskiert sein. Dieser Schaltkreis überwacht die Buszyklen auf dem Prozessorbus, und falls die Adresse und die Daten, die in dem Registerschaltkreis 35 festgelegt sind, der Adresse und den Daten entsprechen, die während des Buszyklusses auftreten, wird er eine Ausnahmeanfrage an den Prozessorkern absenden. Falls die Verwendung der Verfolgungstrigger ermöglicht worden ist, wird dann der PC Verfolgungsschaltkreis 32 über das Auftreten des Triggers informiert.
  • Der serielle Monitorbusschaltkreis 34 ist mit dem Kernprozessor 20 über den internen Prozessorbus 16 verbunden. Wenn der Prozessorkern ein Monitorprogramm auf dem Fehlersuchwerkzeug 60 ausführt, wandelt der Schaltkreis die Daten in einem parallelen Format in ein serielles Format um, oder er konvertiert die Daten in einem seriellen Format in ein paralleles Format, um ein Verbinden zwischen diesen zu ermöglichen.
  • Der Registerschaltkreis 35 umfaßt Steuerungsregister, die die Funktionen des Fehlersuchmoduls steuern. Jedem Register wird eine Adresse zugeordnet. Sie sind mit dem Kernprozessor 20 über einen internen Prozessorbus 16 und eine interne Fehlersuchschnittstelle 15 verbunden, so daß die Inhalte der Steuerungsregister durch ein Laufenlassen des Monitorprogrammes gelesen oder geschrieben werden können. Darüber hinaus können die Inhalte der Steuerungsregister an jeden Schaltkreis in dem Fehlersuchmodul 30 und an den Prozessorkern 20 ausgegeben werden, um die Fehlersuchfunktion zu steueren.
  • Der externe Schnittstellenschaltkreis 36 steuert den PC Verfolgungschaltkreis. 32 in dem Fehlersuchmodul 30, den seriellen Monitorbusschaltkreis 34 und die Schnittstelle des Prozessorkerns 20 und das Fehlersuchwerkzeug 60. Die Maskenfunktion wird ferner innerhalb des externen Schnittstellenschaltkreis 36 durchgeführt.
  • Der Frequenzteilerschaltkreis 37 teilt die Frequenz des Taktsignals CLK. Der serielle Monitorbusschaltkreis wird mit dem frequenzgeteilten Takt CLK 2 betrieben.
  • Detaillierte Beschreibung der Gesamtkonstruktion des Fehlersuchwerkzeugs
  • Fig. 7 zeigt die Gesamtkonstruktion des Fehlersuchwerkzeugs. Das Fehlersuchwerkzeug 60 umfaßt eine Kommunikationsschnittstelle 620, eine Steuerung 630, einen Monitorspeicher 640, eine Monitorspeicherschnittstelle 650, eine Verfolgungsspeicherschnittstelle 660, einen Verfolgungsspeicher 670, eine Ablauf-Steuerung (Run Controller) 680 und eine Zielschnittstelle 690.
  • Die Kommunikationsschnittstelle 620 führte die Kommunikation mit dem Host-Computer durch. Die Steuerung bzw. der Controller 630 analysiert die Befehle, die über die Kommunikationsschnittstelle 620 von dem Host-Computer gesendet werden, führt diese durch und sendet die Ergebnisse zurück. Der Monitorspeicher 640 ist der Speicher zum Speichern und Ausführen des Monitorprogramms. Die Monitorspeicherschnittstelle 650 konvertiert die seriellen Signale von dem Anwenderzielsystem 70 in parallele Signale, die für den Monitorspeicher 640 zugänglich sind, und verteilt auch die Zugriffsanfragen von dem Controller 630 und dem Mikroprozessor auf dem Anwenderziel.
  • Der Verfolgungsspeicher 670 ist der Speicher zum Speichern der PC Information, die von dem Mikroprozessor 10 auf dem Anwenderzielsystem 70 gesendet wird. Die Verfolgungsspeicherschnittstelle 660 speichert in dem Verfolgungsspeicher 670 die PC Informationen, die von dem Mikroprozessor 10 auf dem Anwenderzielsystem gesendet wird. Wenn es eine Zugriffsanfrage von dem Controller 630 gibt, verteilt sie diese Anfrage so, daß der Speicher der PC Informationen, die von dem Mikroprozessor auf dem Anwenderziel gesendet wird, nicht gesperrt wird.
  • Der Ablauf-Controller 680 gibt das Anwender-Fehlersuch-Reset-Signal RESET* ein, welches von dem Anwenderzielsystem 70 zugeführt wird, und gibt ferner die Spannung VDD der Energiequellenleitung des Anwendersystems ein. Wenn das Fehlersuch-Interrupt-Signal DINT* und das Fehlersuch-Reset-Signal DRESET* an das Anwenderzielsystem abgegeben werden, setzt dieses das Anwenderprogramm zurück, stoppt es oder führt es aus.
  • Die Zielschnittstelle 690 besteht aus einem Schaltkreis zum Schutz des Anwenderzielsystems 70 und des Fehlersuchwerkzeugs 60, wenn die Leistung eingeschaltet wird, und aus einem Schaltkreis, der die Eingangs-/Ausgangsspannung gemäß der Spannung der Versorgungsquelle des Zielanwendersystems 70 reguliert.
  • Schnittstellensignale zwischen dem Fehlersuchwerkzeug und dem Mikroprozessor
  • Es gibt insgesamt zwanzig Leitungen für die Schnittstellensignale zwischen dem Fehlersuchwerkzeug und dem Mikroprozessor. Die Eingabe/Ausgabe-Ziele zeigen die Richtungen, wenn sie von der Mikroprozessor-Seite aus gesehen werden. Die folgenden acht Leitungen sind für die externen Fehlersuch-Schnittstellen-Signale zwischen den Fehlersuchmodulen 30 und dem Fehlersuchwerkzeug 60:
  • 1. DCLK: Ausgabe
  • 2. DRESET: Eingabe
  • 3. - 5. PCST (2 : 0): Ausgabe
  • 6. SDAO/TPC Ausgabe
  • 7. SDI/DINT: Eingabe
  • 8. DBGE: Eingabe
  • Die folgenden Signale werden ebenso mit dem Fehlersuchwerkzeug 60 verbunden, obwohl sie nicht für das Fehlersuchwerkzeug reserviert bzw. bestimmt sind.
  • 9. RESET Ausgabe
  • 10. VDD: Ausgabe
  • Zehn Erde- bzw. Masseleitungen sind ebenfalls angeschlossen bzw. verbunden.
  • 11.-20. GND: Masse
  • (1) DCLK (Fehlersuchtakt): Ausgabe-Anschluß;
  • Dies ist die Taktausgabe an das Fehlersuchwerkzeug 60. Der Zeitablauf sowohl des seriellen Monitorbusses als auch der PC Verfolgungs-Schnittstellen-Signale wird von diesem Fehlersuchtakt DCLK definiert. Wenn der serielle Monitorbus funktionsfähig ist, ist der DCLK der Takt, der durch ein Frequenzteilen des Betriebstakts des Prozessorkerns 20 erzeugt wird.
  • (2) DRESET* (Fehlersuch-Rücksetzung): Eingabeanschluß (Anschluß mit pull-up);
  • Fehlersuch-Rücksetzeingabe. Ein niederaktives (Low-Active) Signal. Wenn DRESET* ausgegeben bzw. geltend gemacht wird, wird das ICE Modul initialisiert (steht nicht in Zusammenhang mit DBGE). Wenn das Fehlersuchwerkzeug 60 nicht verwendet wird, sollte dieser Anschluß nicht angeschlossen werden.
  • (3) PCST (2 : 0) (PC Verfolgungsstatus): Ausgangsanschluß;
  • Diese Anschlüsse geben die PC Verfolgungsstatus-Information und den unten angegebenen seriellen Busmodus aus. Die nachfolgende Tabelle zeigt die Bedeutungen der 3-bit Codeausgaben von dem PCST.
  • Tabelle 1
  • 111 (STL): Pipeline-Stall
  • 110 (JMP): Verzweigung/Sprung vorgenommen (mit PC Ausgabe)
  • 101 (BRT): Verzweigung/Sprung vorgenommen (ohne PC Ausgabe)
  • 100 (EXP): Ausnahme stattgefunden (mit einer Ausnahme-Vektorcodeausgabe)
  • 011 (SEQ): Sequenzielle Ausführung (die anzeigt, daß ein Befehl ausgeführt worden ist)
  • 010 (TST): Verfolgungstrigger-Ausgabe während eines Pipeline-Stalis
  • 001 (TSQ): Verfolgungstrigger-Ausgabe während der Ausführung
  • 000 (DBM): Fehlersuchmodus (0: niedriger Level, 1: hoher Level)
  • (4) DBGE* (Fehlersuche ermöglichen): Eingabeanschluß (Anschluß mit pull-up);
  • Dieser Anschluß zeigt an, ob das Fehlersuchwerkzeug 60 verbunden bzw. angeschlossen ist oder nicht. Falls das Fehlersuchwerkzeug 60 nicht extern verbunden ist, wird es aufgrund des pull-up auf ein hohes Niveau bzw. einen hohen Level gesetzt. Weil die Seite des Fehlersuchwerkzeuges 60 auf ein niedriges Niveau bzw. auf einen niedrigen Level gesetzt ist, führt eine Verbindung dazu, daß das Fehlersuchwerkzeug auf ein niedriges Niveau gesetzt wird.
  • Wenn das Fehlersuchwerkzeug nicht verbunden bzw. angeschlossen ist (wenn das DBGE* Signal auf einem hohen Niveau ist), wird die Fehlersuch-Ausnahme-Vektoradresse des Prozessorkerns 20 ein Bereich, der für den Anwender freigegeben wird, was ermöglicht, daß die Steuerung auf einen Monitor übertragen wird, der von dem Anwender auf der Fehlersuchausnahme vorbereitet wird. Darüber hinaus wird der Anwender-Reset außer Kraft gesetzt (was die Fehlersuchmodulfunktion dahingehend initialisiert, die Fehlersuchfunktionen außer Kraft zu setzen), mit der Ausnahme der Hardware-Haltefunktion, wodurch der Energieverbrauch des Mikroprozessors gesenkt wird. Darüber hinaus zeigen alle Ausgangssignale (SDAO/TPC, DCLK, PCST [2 : 0]) einen Zustand einer hohen Impedanz.
  • Wenn das Fehlersuchwerkzeug 60 verbunden wird, wird die Fehlersuchausnahme- Vektoradresse des Prozessorkerns 20 der Monitor-reservierte Bereich, der nicht dem Anwender zugänglich gemacht wird. Zu diesem Zeitpunkt initialisiert der Anwender-Reset nicht das Fehlersuchmodul, was ermöglicht, daß die Fehlersuchfunktionen verwendet werden, selbst unmittelbar nach einem Anwender-Reset.
  • (5) SDAO/TP (serielle Daten- und Adreß-Ausgabe/Ziel PC): Ausgangsanschluß;
  • Wenn der Mikroprozessor ein Monitorprogramm ausführt (nachfolgend bezeichnet als Fehlersuchmodus), arbeitet dieser Anschluß als der Anschluß SDAO (Seriell Data and Adress Output, serielle Daten- und Adreß-Ausgabe), der seriell Daten/Adressen ausgibt. Wenn der Mikroprozessor ein Anwenderprogramm ausführt (nachfolgend bezeichnet als der normale Modus), arbeitete er als Anschluß TPC (Target PC, Ziel PC), der seriell den Ziel PC ausgibt.
  • Funktion als SDAO
  • Dies ist der Signalanschluß der Daten, Adresse, Lese/Schreib und Byte-Freigabe Signale seriell ausgibt, ein Bit nach dem anderen. Vor dem Start jedes Buszyklusses gibt er ein Startbit aus (d. h. er gibt für eine Taktperiode das niedrige Niveau aus). Seine Ausgabereihenfolge bezüglich des Lesens ist wie folgt: Ein Start-Bit (niedriges Niveau bzw. niedriger Level), A2-A19, RD, WR, BEO-BE3; bezüglich des Schreibens ist die Ausgabereihenfolge wie folgt:
  • ein Startbit (niedriges Niveau), A2-A 19, RD, WR, BEO-BE3, DO-D31.
  • Funktion als TPC
  • Dies ist das Signal zur Ausgabe der Zieladressen für einen Verzweigungs/Sprungbefehl und eine Vektoranzahl von Ausnahmen/Interrupt. Die Zieladresse wird in Sequenz von der niedrigen Adresse A[2] zu der hohen Adresse A[31] ausgegeben.
  • (6) SDI/DINT* (serieller Daten Input/Fehlersuch-Interrupt): Eingabeanschluß (mit pull-up);
  • Bei diesem Fehlersuchmodus arbeitet der Anschluß als der serielle Dateneingabeanschluß SDI (Serial Data Input, serielle Dateneingabe); in dem normalen Modus arbeitet er als der Fehlersuch-Interrupt-Anschluß DINT* (Debug Interrupt, Fehlersuch-Interrupt).
  • Funktion als SDI
  • Dateneingabe-Signalanschluß. Beim Lesen wird die Dateneingabe vom nächsten Takt starten, wenn ein Start-Bit (niedriges Niveau) von der Außenseite eingegeben wird. Beim Schreiben wird der Buszyklus vervollständigt, wenn ein niedriges Niveau eingegeben wird. Die Reihenfolge der Eingabe beim Lesen ist wie folgt: Ein Start-Bit (niedriges Niveau), D[0]-D[31]. Beim Schreiben wird lediglich ein End-Bit (niedriges Niveau) eingegeben.
  • Funktion als DINT*
  • Fehlersuch-Interrupt-Eingabe von dem Fehlersuchwerkzeug 60. Wenn das Fehlersuchwerkzeug 60 nicht verwendet wird, sollte dieser Anschluß nicht verbunden bzw. angeschlossen sein.
  • (7) RESET* (Rücksetzung): Ausgabeanschluß;
  • Anwender-Reset-Anschluß. Wenn dieses Signal an das Fehlersuchwerkzeug angeschlossen wird, z. B. wenn keine Antwort von dem Fehlersuchmodul 30 vorliegt, kann es bestimmen, ob dies auf ein Anwender-Reset-Signal zurückzuführen ist oder nicht. Ein Verursachen des Fehlersuch-Resets unmittelbar nach dem Anwender-Reset kann nur dadurch realisiert werden, daß DRESET* aktiv gehalten wird bis zu einem Zeitpunkt, nachdem das RESET* Signal auf einen hohen Wert geht bzw. hoch geht.
  • (8) VDD (VDD): Ausgangsanschluß;
  • Die Energieversorgungsleitung des Anwenderzielsystems. Durch Eingabe in das Fehlersuchwerkzeug 60 kann das Fehlersuchwerkzeug 60 die Spannung der Energieversorgung des Anwenderzielsystems 70 herausfinden. Dies ermöglicht eine Änderung des Schwellwerts der Eingabewellenform und des Spannungsniveaus der Ausgabewellenform in Übereinstimmung mit der Spannung der Energieversorgung des Anwenderzielsystems. Darüber hinaus können die Ausgabevorrichtungen des Fehlersuchwerkzeuges 60 auf hohe Impedanz gesetzt werden, um sie zu schützen, wenn festgestellt worden ist, daß die Energieversorgung des Anwenderzielsystems 70 nicht eingeschaltet ist.
  • (9) GND (GND)
  • Um die Grundniveaus des Fehlersuchwerkzeugs 60 und des Anwenderzielsystems 70 aufeinander anzupassen, werden zehn Erdeleitungen bzw. Masseleitungen angeschlossen. Sie überlappen mit den oben erwähnten Signalen (1) bis (8) in dem Übertragungskabel zwischen dem Fehlersuchwerkzeug 60 und dem Anwenderzielsystem 70, so daß ein Übersprechen zwischen diesen Signalen bzw. eine gegenseitige Beeinflussung reduziert wird.
  • Detaillierte Beschreibung des seriellen Monitorbus-Schaltkreises
  • Der Betrieb des seriellen Monitorbus-Schaltkreises 34 aus Fig. 6 wird beschrieben werden.
  • Abriß der Funktion des seriellen Monitorbusses
  • Während des Fehlersuchmodus, wenn der Prozessorkern 20 auf den Monitor reservierten Bereich zugreift, wird auf den Speicher des Fehlersuchwerkzeuges 60 über den seriellen Monitorbus-Schaltkreis 34 zugegriffen. Bei Schreibvorgängen, die den seriellen Monitorbus verwenden, gibt der serielle Monitorbus-Schaltkreis 34 die Adresse, die Bussteuersignale und die Daten an das SDAO Signal aus, und zwar seriell ein Bit nachdem anderen. Bei Lesevorgängen gibt er die Adresse und die Bussteuersignale seriell, ein Bit nach dem anderen aus. Bei Lesevorgängen gibt er die Adresse und die Bussteuersignale an das SDAO Signal aus und gibt Daten von dem SDI Signal seriell, ein Bit nach dem anderen ein.
  • Der serielle Monitorbus wird mit dem Takt CLK 2 betrieben, der den Betriebstakt CLK des Prozessorkerns 20 in seiner Frequenz teilt. 18 Bit A[19 : 2] des Adressignals des Prozessorkerns werden an den seriellen Monitorbus ausgegeben, was den Zugriff auf 1 Mbyte Speicherraum ermöglicht. Weil das Byte-Freischaltsignal BE[3 : 0] des Prozessorkerns 20 an den seriellen Monitorbus ausgegeben wird, sind auch Byte, Halb-Worte und 3-Byte-Zugriffe möglich. In dem seriellen Monitorbus werden jedoch selbst im Falle von Byte, Halb-Worten oder 3-Byte-Zugriffen 32-Bit breite Daten übertragen.
  • Wenn ein Byte, Halb-Wort oder drei Bytes geschrieben werden, ist der Datenbereich, der der Byte-Position entspricht, bei der BE[3 : 0] inaktiv ist, nicht definiert. Beim Lesen werden die Daten an den inaktiven Byte-Positionen von dem Prozessorkern 20 ignoriert und werden nicht gelesen.
  • Bei dem normalen Modus wird ein Schreiben auf die Bereiche, die für den Monitor reserviert sind, ignoriert; beim Lesen ist das Ergebnis nicht definiert. Wenn diese Art eines Schreibzugriffes stattgefunden hat, sendet der serielle Monitorbus-Schaltkreis 34 ein Bestätigungssignal, das die Vervollständigung des Busbetriebes anzeigt, an den Prozessorkern 20, und dann wird der Busbetrieb vervollständigt.
  • Detaillierte Beschreibung des Verfahrens zum Übertragen der Signale des seriellen Monitorbusses
  • Fig. 8 zeigt ein Blockdiagramm des seriellen Monitorbusses. Bezugnehmend auf Fig. 8 wird das Verfahren zur Übertragung der Signale beschrieben werden.
  • Der Prozessorkern 20 führt ein Speicherauslesen durch
  • (1) Die Parallel-Format Adresse, das Lesesignal und die Byte-Freigabe-Ausgabe von dem Prozessorkern 20 werden von dem seriellen Ausgabe-Schaltkreis A342 in ein serielles Format konvertiert und von dem SDAO ausgegeben.
  • (2) Der serielle Monitor-Eingabe-Schaltkreis B651 in dem Fehlersuchwerkzeug 60 gibt sie, ein und konvertiert sie in ein paralleles Format und gibt das parallele Format an den Monitorspeicher 640 aus.
  • (3) Die Daten indem parallelen Format, die von dem Speicher ausgegeben werden, werden von dem seriellen Ausgabe-Schaltkreis B652 in ein serielles Format konvertiert und werden über den SDI ausgegeben.
  • (4) Der serielle Eingabe-Schaltkreis A343 in dem Fehlersuchmodul 30 konvertiert sie in ein paralleles Format und gibt sie an den Prozessorkern 20 aus.
  • (5) Der Prozessorkern 20 liest die Daten in parallelem Format.
  • Der Prozessorkern 20 führt ein Speicherschreiben aus
  • (1) Die Adresse, das Schreibsignal, Byte-Freigabe und Daten in parallelem Format, wie sie von dem Prozessorkern 20 ausgegeben werden, werden von dem seriellen Ausgabe- Schaltkreis A342 in ein serielles Format umgewandelt und von dem SDAO ausgegeben.
  • (2) Der serielle Eingabe-Schaltkreis B651 in dem Fehlersuchwerkzeug 60 gibt diese ein und wandelt sie in ein paralleles Format um und gibt die Signale an den Monitorspeicher 640 aus.
  • (3) Wenn das Schreiben auf dem Monitorspeicher 640 vollständig durchgeführt ist, gibt der serielle Ausgabe-Schaltkreis B652 für einen Takt ein niedriges Niveau an den SDI.
  • (4) Der serielle Eingabe-Schaltkreis A343 in dem Mikroprozessor 10 in dem Anwenderzielsystem 70 informiert den Prozessorkern 20, daß der Schreibzyklus vollständig abgeschlossen ist, wenn dieses niedrige Niveau eingegeben worden ist.
  • (5) Der Prozessorkern 20 beendet den Schreibzyklus:
  • Detaillierte Beschreibung des Zeitablaufs des Betriebs des seriellen Monitorbusses
  • Der Betrieb des seriellen Monitorbusses wird nachfolgend unter Verwendung von Zeitabfolgediagrammen im Detail beschrieben werden.
  • Lese-Bus-Betrieb des seriellen Monitorbusses
  • Fig. 9 zeigt das Ablauf-Zeitdiagramm des Lese-Bus-Betriebs des seriellen Monitorbusses.
  • (1) Der Prozessorkern 20 startet einen Lese-Bus-Betrieb auf dem Monitor reservierten Bereich (Zyklus 1). Der Prozessorkern 20 gibt die Adresse, auf die zugegriffen werden soll, in parallem Format an den Prozessorbus aus, gibt ein Lesesignal aus und gibt die Byte-Freigabe- Signale an die Byte-Positionen, so daß sie gelesen werden.
  • (2) Der serielle Monitorbus-Schaltkreis 34 gibt ein niedriges Niveau für einen Takt des CLK 2 aus, bei dem es sich um einen frequenzgeteilten Takt des Kerntakts CLK handelt, und zwar an das SDAO Signal, wenn der Start des Lese-Bus-Betriebs an den Monitorbereich erkannt worden ist (Zyklus 2).
  • (3) Der serielle Monitorbus-Schaltkreis 34 gibt die Adresse A[2]-A[19], ein hohes Niveau (was einen Lesevorgang anzeigt) und die Byte-Freigabe-Signale BE[O]*-BE[3]* aus, die in dem Lese-Bus-Betrieb des Prozessorkerns 20 ausgegeben worden sind, und zwar an das SDAO Signal in dieser Reihenfolge, wobei jeder einen Takt des CLK 2 Signals (Zyklus 3-25) in Anspruch nimmt.
  • (4) Die Monitor-Speicher-Schnittstelle 650 in dem Fehlersuchwerkzeug 60 gibt die Adresse A[2]-A[19], das hohe Niveau (das einen Lesevorgang anzeigt) und die Byte-Freigabe-Signale BE[0]*-BE[3]* aus, die an das SDAO Signal in dieser Reihenfolge, ein Bit bei jedem Takt des DCLK, ausgegeben worden sind. Die Adreß- und Byte-Freigabe-Signale werden dann in ein paralleles Format konvertiert und an den Monitorspeicher 640 ausgegeben.
  • (5) Die Monitorspeicher-Schnittstelle 650 konvertiert die in einem parallelen Format vorliegenden Daten, die von dem Speichermonitor 640 ausgegeben werden, in ein serielles Format. Bevor die Daten ausgegeben werden, wird für einen Takt (Zyklus n) ein niedriges Signal an das SDI Signal ausgegeben. Danach werden die Daten sequentiell von D[0] bis D[31], ein Bit nach dem anderen, synchronisiert mit DCLK (Zyklen n+1 bis n+32) ausgegeben.
  • (6) Der serielle Monitorbus-Schaltkreis 34 liest in den Daten D[0]-D[31] von dem nächsten Zyklus, für jeden Takt des DCLK (Zyklen n+1 bis n+32), wenn in dem SDI (Zyklus n) ein niedriges Niveau detektiert worden ist.
  • (7) Der serielle Monitorbus-Schaltkreis 34 gibt ein Antwortsignal auf den Lese-Bus des Prozessorkerns 20 aus, und gibt die 32 Bits der Daten, die von dem Prozessorbus gelesen werden, in parallelem Format aus (Zyklus n+33).
  • (8) Der Prozessorkern 20 liest die Daten auf dem Prozessorbus und vervollständigt den Lese- Bus-Betrieb.
  • Schreib-Bus-Betrieb des seriellen Monitorbusses
  • Fig. 10 zeigt das Zeitablaufdiagramm des Schreib-Bus-Betriebs des seriellen Monitorbusses.
  • (1) Der Prozesssorkern 20 startet einen Schreib-Bus-Betrieb an dem Monitor reservierten Bereich (Zyklus 1). Der Prozessorkern 20 gibt die Adresse, auf die zugegriffen werden soll, an den Prozessorbus aus und erzeugt ein Schreib-Signal. Das Byte-Freigabe-Signal der Position des zu schreibenden Bytes wird erzeugt.
  • (2) Der serielle Monitorbus-Schaltkreis 34 gibt ein niedriges Niveau für einen Takt des CLK 2 aus, bei dem es sich um einen frequenzgeteilten Takt des Kerntakts CLK handelt, wenn der Start des Schreib-Bus-Betriebs an dem Monitorbereich erkannt worden ist (Zyklus 2).
  • (3) Der serielle Monitorbus-Schaltkreis 34 gibt die Adresse A[2]-A[19], ein niedriges Niveau (das einen Lesevorgang anzeigt), die Byte-Freigabe-Signale BE[0]*-BE[3]* und die Schreibdaten DOUT[0] - DOUT[31] aus, die in dem Schreib-Bus-Betrieb des Prozessorkerns 20 in dieser Reihenfolge an das SDAO Signal, ein Bit mit jedem Takt des CLK 2 Signals (Zyklen 3-57), ausgegeben worden sind.
  • (4) Die Monitorspeicher-Schnittstelle 650 in dem Fehlersuchwerkzeug 60 gibt die Adresse A[2] - A[19] (wobei das hohe Niveau einen Lesebetrieb anzeigt), die Byte-Freigabe-Signale BE[0]* - BE[3]* und die Schreibdaten DOUT[0] - DOUT [31] ein, die an das SDAO Signal in dieser Reihenfolge, ein Bit mit jedem Takt des DCLK, ausgegeben worden sind. Die Adresse, Byte-Freigabe-Signale und Schreibdaten werden dann in ein paralleles Format umgewandelt und an den Monitorspeicher 640 ausgegeben.
  • (5) Wenn die Monitorspeicher-Schnittstelle 650 das Schreiben auf den Monitorspeicher 640 vollständig abgeschlossen hat, wird ein niedriges Niveau an das SDI Signal für einen Takt (Zyklus n) ausgegeben.
  • (6) Der serielle Monitorbus-Schaltkreis 34 gibt ein Schreib-Bus-Antwortsignal an den Prozessorkern (Zyklus n+l) aus, wenn ein niedriges Niveau in dem SDI erkannt wird.
  • (7) Der Prozessorkern 20 vervollständigt den Schreib-Bus-Betrieb.
  • PC Verfolgungs-Schaltkreis
  • Die Begriffe "indirekter Sprung (indirect jump)", "direkter Sprung (direct jump)" und "Verzweigung (branch)" werden nachfolgend definiert werden.
  • Indirekter Sprung: Ein Sprung, bei dem die Sprungadresse nicht in dem Befehl selbst bestimmt werden kann, wie z. B. ein Sprung zu einer Adresse, die in einem Register gespeichert ist.
  • Direkter Sprung: Ein Sprung, bei dem die Sprungadresse von einer Adresse, bei der Befehl selbst angeordnet ist, und dem Befehlscode bestimmt ist.
  • Verzweigung: Ein Sprung, bei dem die Sprung- bzw. Verzweigungs-Adresse durch die Summe der Adresse, bei der der Befehl selbst angeordnet ist, und einen Teil des Bereichs des Befehlscodes bestimmt werden kann. Bei einer Verzweigung wird von Bedingungen bestimmt, ob der Sprung tatsächlich durchgeführt wird oder nicht. Wenn der Sprung tatsächlich durchgeführt wird, wird dies "Verzweigung durchgeführt" bzw. "Sprung durchgeführt" (branch taken) genannt, falls dieser nicht durchgeführt wird, wird dies als "Verzweigung" bzw. "Sprung nicht durchgeführt" bezeichnet.
  • Die PC Verfolgungen umfassen die folgenden zwei Arten von Verfolgungsmodi.
  • Echtzeitverfolgungsmodus: In diesem Modus wird die Ausführung des Prozessorkerns 20 immer in Echtzeit durchgeführt, aber wenn der nächste indirekte Sprung während der Ziel- PC-Ausgabe des vorherigen indirekten Sprungs auftritt, wird das Ausgeben des Ziel-PC des indirekten Sprungs, der zuerst stattgefunden hat, abgebrochen, und das Ausgeben des neuen Ziel-PC wird begonnen.
  • Nicht-Echtzeit Verfolgungsmodus: Bei diesem Modus wird das Verarbeiten der Pipeline des Prozessorkerns 20 angehalten, wenn angrenzende, indirekte Sprünge, wie oben beschrieben, auftreten, bis der Target PC des vorher erzeugten, indirekten Sprungs vollständig ausgegeben ist. Auf diese Weise wird die Echtzeit-Ausführung des Prozessorkerns beeinträchtigt, aber der Ziel PC des indirekten Sprungs wird immer vollständig ausgegeben.
  • Der PC-Verfolgung-Schaltkreis 32 gibt die folgenden Signale von dem Prozessorkern 20 ein.
  • Fehlersuchmodus-Signal: Dieses Signal gibt an, ob sich der Prozessorkern 20 in dem Fehlersuch- oder dem normalen Modus befindet.
  • Pipelineausführungssignal: Dieses Signal gibt an, daß ein Befehl ausgeführt worden ist.
  • 30-bit Ziel-PC-Signal [31 : 0]: Dieses Signal gibt die Zieladresse des Verzweigungs- oder Sprung-Befehls oder eine Vectoradresse einer Ausnahme an. Dies wird wirksam, wenn das folgende indirekte Sprungsignal, direkte Sprungsignal, das Sprung-Durchführungs-Signal (branch taken signal) oder das Signal beim Auftreten einer Ausnahme (Ausnahme-Auftritts- Signal, exception occurrence signal) ausgegeben bzw. erzeugt wird.
  • Indirektes Sprungsignal: Dieses Signal gibt an, daß ein indirekter Sprung durchgeführt worden ist.
  • Direktes Sprungsignal: Dieses Signal zeigt an, daß ein direkter Sprung durchgeführt worden · ist.
  • Sprung-Durchführungs-Signal: Dieses Signal gibt an, daß ein tatsächlich durchgeführter Sprungbefehl ausgeführt worden ist.
  • Ausnahme-Auftritts-Signal: Dieses Signal zeigt an, daß eine Ausnahme aufgetreten ist.
  • Der PC-Verfolgung-Schaltkreis gibt für eine vollständige Durchführung der PC-Verfolgung die folgenden Signale an den Prozessorkern 20 aus.
  • Pipline-Stall-Nachfragesignal: In einem Nicht-Echtzeit-Verfolgungsmodus, bei dem die Ziel- PC-Ausgaben vollständig durchgeführt worden sind, bringt dieses Signal die Pipeline des Prozessorkerns 20 zum Stillstand (pipeline stall). Der PC-Verfolgungs-Schaltkreis 32 erzeugt dieses Signal und bringt die Pipeline des Prozessorkerns 20 zum Stillstand (stall), wenn ein nachfolgender indirekter Sprung auftritt, während ein indirekter Sprung-Ziel-PC ausgegeben wird. Wenn der Ziel-PC während der Ausgabe vollständig ausgegeben ist, wird dieses Signal negiert und der Pipeline-Prozess des Prozessorkerns 20 wird wieder aufgenommen.
  • Der PC-Verfolgungs-Schaltkreis 32 gibt Trigger-Nachfrage-Signale von dem Befehls/Daten- Adreß-Halteschaltkreis 31 und dem Prozessor-Halteschaltkreis 33 ein. Er gibt ferner den Status des bit ein, der den Verfolgungs-Modus schaltet, der einem Register in einem Registerschaltkreis 35 zugeordnet ist.
  • Der PC-Verfolgungs-Schaltkreis 32 konvertiert die PC-Verfolgungs-Information, die der Prozessorkern 20 während des normalen Modusbetriebs ausgibt, in eine 1-bit PC-Ausgabe (TPC Signal) und eine 3-bit Statusinformation (PCST[2 : 0] Signale) und gibt diese an das Fehlersuchwerkzeug 60 aus. Die PCST[2 : 0] und TCP Signale werden nachfolgend beschrieben werden.
  • PCST[2 : 0]: Mit jedem Takt wird der Ausführungsstatus der Befehle an PCST[2 : 0] ausgegeben. Bei der folgenden Erläuterung stellt eine "0" das niedrige Niveau bzw. den niedrigen Level und eine "1" das hohe Niveau dar.
  • 111 (STL): Pipeline-Stall: Dies zeigt an, daß die Ausführung des Befehls nicht vollständig abgeschlossen wurde, in einem Status, bei dem keine Verfolgungs-Trigger-Ausgabe vorhanden ist.
  • 110 (JMP): Verzweigung/Sprung durchgeführt (PC Ausgabe existiert):
  • Dies zeigt an, daß ein Verzweigungsbefehl empfangen bzw. durchgeführt oder ein Sprungbefehl durchgeführt worden ist und daß die Ausgabe der Zieladresse (Adresse der Verzweigung oder des Sprungs) an das TPC-Signal begonnen worden ist.
  • 101 (BRT): Verzweigung/ Sprung durchgeführt (es existiert keine PC-Ausgabe):
  • Dies zeigt an, daß ein Verzweigungsbefehl erhalten oder ein Sprungbefehl durchgeführt worden ist, aber es gibt keine Ausgabe der Ziel-Adresse. (Adresse der VerzWeigung oder des Sprungs) an das TPC-Signal.
  • 100 (EXP): Ausnahme aufgetreten (es existiert eine Code-Ausgabe des Ausnahmevectors):
  • Dies zeigt an, daß eine Ausnahme aufgetreten ist. Es zeigt gleichzeitig an, daß die Code- Ausgabe des Ausnahmevectors an das TPC-Signal begonnen wurde. Der Code besteht aus 3 Bits und wird an das TPC Signal in der Reihenfolge des niedrigsten Codes (0), des Codes (1) und des Codes (2) ausgegeben.
  • Hier ist BEV ein Bit in dem Register in dem Registerschaltkreis 35; die Vectoradresse der Ausnahmehandhabung kann durch ihren Wert geändert werden.
  • 011 (SEQ): sequentielle Ausführung (die anzeigt, daß ein Befehl ausgeführt worden ist):
  • Dies zeigt an, daß ein Befehl ausgeführt worden ist, wobei es sich bei diesem Befehl um einen anderen als den handelt, daß ein Sprung oder eine Abzweigung durchgeführt worden ist (JMP, BRT), in einem Status, bei dem es keine Verfolgungs-Trigger-Ausgabe-Anfrage (TSQ) gibt. Dieser Code wird auch ausgegeben, wenn eine Abzweigung bzw. ein Sprung nicht durchgeführt worden ist.
  • 010 (TST): Der Verfolgungs-Trigger wird während des Pipeline-Stalls ausgegeben:
  • Dies zeigt an, daß ein Befehlsadreß-Verfolgungs-Trigger oder ein Prozessorbus-Verfolgungs- Trigger in einem Takt aufgetreten ist, zudem kein Befehl vervollständigt worden ist.
  • 001 (TSQ): Der Verfolgungs-Trigger wird während der Ausführung ausgegeben:
  • Dies zeigt an, daß ein Befehlsadreß-Verfolgungs-Trigger oder ein Prozessorbus-Verfolgungs- Trigger während eines Takts stattgefunden hat, bei dem kein Befehl vervollständigt worden ist.
  • 000 (DBM): Fehlersuchmodus: Dieser Code wird bei dem normalen Modus nicht ausgegeben.
  • TPC: Dies ist das Signal zum Ausgeben der Zieladresse eines Verzweigungs-bzw. Sprungbefehls. Die Ausgabe der Zieladresse wird von dem Takt an gestartet, bei dem der 110 (JMP) an das PCST[2 : 0] ausgegeben worden ist. Die Zieladresse wird mit einem Bit je Takt von einem niedrigen A(2) ausgegeben.
  • Der 3-Bit Code des Ausnahmevectors wird an den PCST[2 : 0] von dem Takt an ausgegeben, in dem der 100 (EXP) ausgegeben worden ist. Der Code wird mit einem Bit je Takt von dem niedrigen Code (0) ausgegeben.
  • Weil die Zieladresse in 1-Bit serieller Weise an das TPC Signal ausgegeben wird, tritt der nächste Verzweigungs- oder Sprung-Befehl oder die Ausnahme teilweise auf, während der vorhergehende Verzweigungs- oder Sprung-Befehl an das TPC Signal ausgegeben wird. Die Priorität der Ziel-Adreß-Ausgabe an den TPC in diesem Fall ist wie folgt definiert.
  • (1) Wenn der Verfolgungs-Modus sich in dem Echtzeitmodus befindet, wird, falls ein neuer indirekter Sprung während der Ziel-PC-Ausgabe auftritt, die vorhergehende Ziel-PC- Ausgabe abgebrochen und die Ziel-PC-Ausgabe des neuen indirekten Sprungs wird immer gestartet.
  • (2) Wenn der Verfolgungs-Modus sich in dem Nicht-Echtzeit-Modus befindet, wird, falls ein neuer indirekter Sprung während einer Ziel-PC-Ausgabe auftritt, die Pipelineverarbeitung des Prozessorkerns angehalten, bis die vorhergehende Ziel-PC-Ausgabe vollständig abgeschlossen ist. Das Verarbeiten der Pipeline des Prozessorkerns wird erneut gestarten und die Ausgabe des Ziel-PC des neuen indirekten Sprungs wird gestartet, nachdem die Ziel- PC-Ausgabe vollständig abgeschlossen ist.
  • (3) Wenn eine Ausnahme während einer Ziel-PC-Ausgabe stattgefunden hat, wird die Vectornummer (3 Bit) der Ausnahme immer ausgegeben, wobei danach die unterbrochene PC-Ausgabe erneut gestartet wird.
  • (4) Wenn ein neuer direkter Sprung oder eine Verzweigung während einer Ziel-PC-Ausgabe stattgefunden hat, wird die Ausgabe der Zieladresse dieses direkten Sprungs oder der Verzweigung nicht durchgeführt. Im Hinblick auf einen direkten Sprung oder eine Verzweigung wird deren Ziel-PC nur dann ausgegeben, wenn ein anderer Ziel-PC nicht ausgegeben wird, wenn er bzw. sie auftritt.
  • Im Falle eines direkten Sprungs oder einer Verzweigung kann, selbst wenn die Zieladresse nicht ausgegeben wird, falls die Adresse des Befehls bekannt ist, die Adresse des Sprung- bzw. Verzweigungs-Ziels durch Inbezugnahme auf den Code des in dem Speicher gespeicherten Befehls bestimmt werden. Die Adresse dieses Befehls wird durch den Taktzähler zwischen der Ausführung dieses Befehls und dem vorher aufgetretenen direkten Sprung oder der Verzweigung bestimmt.
  • Beispiele von PC-Verfolgungs-Ausgaben werden nachfolgend mit Bezug auf die Zeichnungen beschrieben werden.
  • (Beispiel 1) PC Verfolgung eines Verzweigungsbefehls
  • Fig. 11 zeigt ein Beispiel einer PC-Verfolgung-Ausgabe eines Verzweigungsbefehls. Wenn der erste Verzweigungsbefehls beq aufgenommen wird, wird kein Ziel-PC an TPC ausgegeben. Deshalb wird der JMP Code an PCST [2 : 0] ausgegeben, und die Ausgabe des Ziel-PC an TPC wird begonnen. Wenn der Verzweigungsbefehl bne nicht aufgenommen wird, wird der SEQ Code an PCST[2 : 0] ausgegeben. Der zweite aufgenommene Verzweigungsbefehl bne ist ein direkter Sprung; während der Ziel-PC des ersten Verzweigungsbefehls ausgegeben wird, wird der Ziel-PC nicht an den TPC ausgegeben. Der BRT Code wird an den PCST[2 : 0] ausgegeben.
  • (Beispiel 2) PC-Verfolgung eines indirekten Sprungbefehls
  • Fig. 12 zeigt ein Beispiel einer PC-Verfolgungs-Ausgabe eines indirekten Sprungbefehls. Für den ersten indirekten Sprungbefehl jr1 wird der JMP Code an den PCST[2 : 0] ausgegeben, und die Ausgabe des Ziel-PC an den TPC wird begonnen. Für den Verzweigungsbefehl bne, der nicht aufgenommen wird, wird der SEQ Code an PCST [2 : 0] ausgegeben. Für den zweiten indirekten Sprungcode jr2, wird die Ausgabe des Ziel PC des ersten indirekten Sprungbefehls abgebrochen, und der Ziel-PC von jr2 wird an TPC ausgegeben. Der JMP Code wird an den PCST[2 : 0] ausgegeben.
  • (Beispiel 3) PC-Verfolgung eines Ausnahme- und eines indirekten Sprungbefehls
  • Fig. 13 zeigt ein Beispiel einer PC-Verfolgungs-Ausgabe eines Ausnahme- und eines indirekten Sprungbefehls. Wenn eine Software-Halte-Befehl-Halteausnahme auftritt, wird der EXP Code an den PCST[2 : 0] ausgegeben, und die Ausgabe des Ausnahmevectorcodes an den TPC wird begönnen. Für den Verzweigungsbefehl bne, der nicht aufgenommen wird, wird der SEQ Code an dem PCST[2 : 0] ausgegeben. Für den indirekten Sprungbefehl jr2 wird der Ziel PC des jr2 an den TPC ausgegeben, und der JMP-Code wird an dem PCST[2 : 0] ausgegeben.
  • (Beispiel 4) PC Verfolgung, wenn zu dem Zeitpunkt, zu dem eine Fehlersuchausnahme auftritt, kein PC ausgegeben wird.
  • Fig. 14 zeigt ein Beispiel einer Ausgabe-Zeitabfolge des PCST[2 : 0], wenn eine Fehlersuchausnahme auftritt. In dieser Figur ist das DM Singal ein internes Signal in dem Prozessorkern 20, und wenn es sich auf einem hohen Niveau befindet, zeigt es den Fehlersuchmodus an, während ein niedriges Niveau den normalen Modus anzeigt. Wenn der Prozessorkern 20 eine Fehlersuchausnahme oder einen Fehlersuch-Reset hervorruft, schaltet der Prozessor in den Fehlersuchmodus um. Zu diesem Zeitpunkt gibt der PC-Verfolgungs-Schaltkreis 32 den DBM-Code an die PCST[2 : 0] Ausgabe ab. Wenn kein Ziel-PC ausgegeben wird, tritt der Prozessor unmittelbar nach der Vervollständigung der Ausführung des Befehls, der die Fehlersuchausnahme hervorgerufen hat in den Fehlersuch-Modus ein. Die PC-Verfolgungs- Information wird bis zu dem Befehl unmittelbar vor dem Auftreten der Fehlersuche ausgegeben.
  • (Beispiel 5) PC-Verfolgung, wenn ein PC zu dem Zeitpunkt, an dem eine Fehlersuchausnahme auftritt, ausgegeben wird.
  • Fig. 15 zeigt den Ausgabe-Zeitablauf des PCST[2 : 0] in einem Fall, bei dem ein Ziel PC ausgegeben wird, wenn eine Fehlersuchausnahme auftritt. Wenn der Ziel-PC ausgegeben wird, beginnt der Prozessor den Fehlersuchmodus, nachdem dieser Target-PC vollständig abgeschlossen ist. Die PC-Verfolgungs-Information wird bis zu dem Befehl unmittelbar vor dem Auftreten der Fehlersuchausnahme ausgegeben. Wenn ein Ziel-PC ausgegeben wird, wird STL an den PCST[2 : 0] ausgegeben.
  • (Beispiel 6) PC-Verfolgung zum Zeitpunkt des Übergang vom Fehlersuchmodus zum normalen Modus.
  • Fig. 16 zeigt den Ausgabe-Zeitablauf zum Zeitpunkt der Rückkehr zu dem Fehlersuchmodus. Die Befehle bis zu dem Verzweigungs-Verzögeruns-Slot-Befehl des Rückkehrbefehls von der Fehlersuchausnahme oder des Fehlersuch-Resets, DERET Befehl, gehören zu dem Fehlersuchmodus. Von dem Befehl der Rückkehradresse des DERET Befehls an tritt der Prozessor in den normalen Modus ein, und die PC-Verfolgung wird wirksam.
  • Detaillierte Beschreibung der Verfolgungs-Trigger
  • Die Ausgabe der Verfolgungs-Trigger an das PCST[2 : 0]-Signal wird nachfolgend beschrieben:
  • Wenn entweder ein Befehlsadreß-Verfolgungs-Trigger, ein Datenadreß-Verfolgungs-Trigger oder ein Prozessorbus-Verfolgungs-Trigger aufgetreten ist, wird die Verfolgungs-Trigger- Information an den PCST[2 : 0] über die folgende Logik ausgegeben.
  • (1) Ein Fall, bei dem ein Verzweigungsbefehl aufgenommen oder ein Sprungbefehl zu der Zeit durchgeführt worden ist, oder eine Ausnahme aufgetreten ist: Hier sollen der JMP, BRT oder EXP Code an den PCST[2 : 0] ausgegeben werden, wenn der Verfolgungs-Trigger nicht auftritt. In diesem Fall (1) wird, selbst wenn ein Verfolgungs-Trigger auftritt, die Ausgabe des PCST[2 : 0] nicht verändert und wird aufrecht erhalten, und die Verfolgungs-Trigger- Information wird in den unmittelbar folgenden Fällen (2) oder (3) ausgegeben.
  • (2) Ein Fall, bei dem die Pipeline zum Stillstand gebracht worden ist (Stall): Hier soll der STL Code an den PCST[2 : 0] ausgegeben werden, wenn der Verfolgungs-Trigger nicht auftritt. In diesem Fall (2) wird der TST Code an den PCST[2 : 0] ausgegeben, wenn der Verfolgungs- Trigger auftritt.
  • (3) Andere als die unter (1) und (2) genannten Fälle, d. h. Fälle, bei denen die Pipeline eine sequentielle Ausführung durchführt: Hier soll der SEQ Code an dem PCST[2 : 0] ausgegeben werden, wenn ein Verfolgungs-Trigger nicht auftritt. In diesem Fall (3) wird der TSQ Code an den PCST[2 : 0]ausgegeben, wenn ein Verfolgung-Trigger auftritt.
  • Einige Ausführungsformen werden nachfolgend mit Bezug auf die Wellenformdiagramme gezeigt.
  • (Beispiel 1) Beispiel eines Auftretens eines Verfolgungs-Triggers: Fig. 17 zeigt ein Beispiel, bei dem ein Verfolgungs-Trigger während der sequentiellen Ausführung von normalen Befehlen auftritt.
  • Weil der Verfolgungs-Trigger während der Ausführung eines "Additions" Befehls auftritt, wird der Code TSQ des Verfolgungs-Triggers ausgegeben.
  • (Beispiel 2) Beispiel eines Falls, bei dem ein Verfolgungs-Trigger während der Ausführung des Befehls auftritt, der die Ausnahme hervorruft: Fig. 18 zeigt ein Beispiel, bei dem ein Verfolgungs-Trigger während der Ausführung des Befehls auftritt, der die Ausnahme hervorruft: Der Verfolgung-Trigger tritt während der Ausführung eines Software-Halte-Befehls "Halt (break)" auf, aber der Code EXP für das Auftreten der Ausnahme wird in dem Takt der "Halte" Befehlsausführung an das PCST[2 : 0] Signal ausgegeben, und der Code des Verfolgungs-Triggers wird in dem nächsten Takt ausgegeben. Bei diesem Beispiel wird der TST Code ausgegeben, weil der Status des nächsten Takts ein Stall-Status ist.
  • (Beispiel 3) Beispiel in den Fall, bei dem ein Verfolgungs-Trigger während der Ausführung eines indirekten Sprungbefehls auftritt: Fig. 19 zeigt ein Beispiel eines Falls, bei dem ein Verfolgung-Trigger während des Ausführens eines indirekten Sprungbefehls auftritt. Der Verfolgung-Trigger tritt während der Ausführung des indirekten jmp Befehls jr2 auf, aber der Code JMP des Sprungs wird während des Takts der jr2 Befehlsausführung an das PCST[2 : 0] Signal ausgegeben, und der Code des Verfolgungs-Triggers wird während des nächsten Taktes ausgegeben. Bei diesem Beispiel wird der TSQ Code ausgegeben, weil der Status des nächsten Takts ein Befehlsausführ-Status ist.
  • Beschreibung des Verfolgungs-Speicher-Schnittstellen-Schaltkreises
  • Fig. 20 zeigt ein Diagramm einer Verfolgung-Speicher-Schnittstelle 660 und den Verfolgungspeicher 670 in dem Fehlersuchwerkzeug 60.
  • Die TPC und PCST[2 : 0] Ausgaben von dem Fehlersuchmodul 60 werden über ein Verfolgungs-Daten-Register 663 auf den Verfolgungspeicher 670 geschrieben. Der Wert der Adresse zu dieser Zeit wird von dem Verfolgungs-Adreß-Zähler 662 zur Verfügung gestellt. Der PCST[2 : 0] wird auch in den Verfolgungs-Trigger-Decoder 664 eingegeben, und das Auftreten des Verfolgungs-Triggers wird an den Verfolgungs-Speicher-Steuerungsschaltkreis 661 weitergegeben. Das Festsetzen des ursprünglichen Werts des Verfolgungs-Adreß-Zählers und die Angabe des Wachstums (increment)/Stops wird von dem Verfolgungs-Speicher- Steuerungsschaltkreis 661, basierend auf den Ausgabeergebnissen des Verfolgungs-Trigger- Decoders 664, durchgeführt.
  • Wenn die Steuerung 630 die Inhalte des Verfolgungs-Speichers 670 ausliest, wird die Adresse in dem Steuerungs-Adreß-Register festgesetzt, und wenn eine Leseanfrage zu dem Verfolgungs-Speicher-Schaltkreis 661 ausgesendet wird, werden die Daten in das Steuerungs- Datenregister 667 eingelesen. Dann liest die Steuerung dies aus.
  • Wenn die Steuerung 630 die Daten in den Verfolgungs-Speicher 670 schreibt, wird die Adresse in dem Steuerungs-Adreßregister 665 festgesetzt, die Daten werden in dem Steuerungs-Datenregister 667 festgesetzt, und eine Schreibanfrage wird an den Verfolgungs- Speicher-Steuerungschahkreis 661 gesendet.
  • Detaillierte Beschreibung der Reduktion des Energieverbrauchs
  • Fig. 21 zeigt die Struktur der Energiezuführung in dem Fehlersuchmodul. Wenn das Fehlersuchwerkzeug nicht verbunden bzw. angeschlossen ist, wird das Signal DBGE* auf ein hohes Niveau gesetzt. Zu dem Zeitpunkt eines Anwender-Reset wird, wenn sich dieses DBGE* auf einem hohen Niveau befindet, der Energiezuführungsschalter 38 ausgeschaltet, und es wird keine Leistung zu dem seriellen Monitorbus-Schaltkreis 34 oder zu dem PC-Verfolgungs- Schaltkreis. 32 übertragen. Weil es keinen Grund gibt, diese Schaltkreise zu verwenden, wenn kein externes Fehlersuchwerkzeug angeschlossen ist, kann der Energieverbrauch in dem Mikroprozessor insgesamt reduziert werden, indem keine Leistung zugeführt wird.
  • Selbst wenn das Fehlersuchwerkzeug nicht angeschlossen ist, wird dem Befehls/Daten- Adreß-Halte-Schaltkreis 31, dem Prozessorbus-Halte-Schaltkreis 33 und dem Registerschaltkreis 35 Leistung zugeführt, und auch den Funktionen der Befehls/Daten-Adreß-Halte- und Prozessorbus-Halte-Funktionen. Beim Wechseln der Vectoradressen der Fehlersuchausnahmen in dem Anwenderbereich, kann der Anwender diese Hardware-Halte-Funktionen in den Fehlersuchanwendungen verwenden.
  • Detaillierte Beschreibung des Initialisierungsschaltkreises des Fehlersuchmoduls
  • Fig. 22 zeigt den Initialisierungsschaltkreis des Fehlersuchmoduls. Weil das DBGE* auf einem hohen Niveau liegt, wenn das Fehlersuchmodul nicht angeschlossen ist, wird, wenn ein Anwender-Reset durchgeführt wird, ein Fehlersuchmodul-Initialisierungssignal erzeugt, und das Fehlersuchmodul 30 wird initialisiert.
  • Selbst wenn das Fehlersuchwerkzeug nicht angeschlossen ist, gibt es eine Möglichkeit, daß das Fehlersuchmodul aufgrund des Rauschens der Energiezuführleitung oder ähnlichem in den falschen Zustand schalten wird und möglicherweise eine Anfragen für einen Interrupt an den Prozessorkern 20 abgeben wird. Weil das Fehlersuchwerkzeug nicht angeschlossen ist, kann das Fehlersuch-Reset-Signal (DRESET*) nicht weitergeleitet werden. Falls das Fehlersuchmodul nicht durch einen Anwender-Reset initialisiert werden kann, gibt es kein Mittel zum Initialisieren dieses Fehlersuchmoduls. Deshalb ist es für einen Anwender-Reset extrem wichtig, das Fehlersuch-Modul zu initialisieren, wenn das Fehlersuchwerkzeug nicht angeschlossen ist.
  • Umgekehrt wird das DBGE* auf ein niedriges Niveau gesetzt, wenn das Fehlersuchwerkzeug angeschlossen ist; deshalb wird selbst dann, wenn ein Anwender-Reset erzeugt wird, ein Fehlersuchmodul-Initialisierungssignal nicht erzeugt, und das Fehlersuchmodul 30 wird nicht initialisiert.
  • Dieser Betrieb ist in solchen Fällen extrem wirksam, bei denen man es ermöglichen will, daß ein Verfolgungs-Trigger unmittelbar nach einem Anwender-Reset etc. auftritt. Falls der Anwender-Reset das Fehlersuchmodul 30 initialisiert, würde es notwendig werden, z. B. temporär in den Fehlersuchmodus zu gehen, um das notwendige Register zurückzusetzen, so daß ein Verfolgungs-Trigger auftreten kann. Beim Eintreten in den Fehlersuchmodus würde jedoch der Echtzeit-Betrieb während dieses Zeitraums beeinträchtigt werden, und es wäre wahrscheinlich, daß ein gesuchtes Phänomen nicht erkannt wird.
  • Selbst in den Fällen, bei denen das Fehlersuchmodul selbst aufgrund eines Rauschens der Energiezuführleitung oder ähnlichem Fehlfunktionen aufweist, wenn das Fehlersuchwerkzeug angeschlossen ist, kann der Fehlersuch-Reset (DRESET*) von dem Fehlersuchwerkzeug initialisiert werden, und daher gibt es diesbezüglich kein Problem.
  • Auswirkung der Erfindung
  • Wie oben beschrieben werden die nachfolgenden Auswirkungen und Effekte durch die vorliegende Erfindung, im Vergleich mit dem Beispielen des Standes der Technik, erzielt. Verglichen mit Beispiel 1 gemäß dem Stand der Technik werden die folgenden Wirkungen erzielt:
  • Weil für den Eintritt in den Monitor spezielle Fehlersuchausnahmen zur Verfügung gestellt werden, werden für die Anwender-Interrupts keine Beschränkungen erforderlich.
  • Es ist nicht notwendig, eine serielle Schnittstelle für das Anwender-Ziel-System zur Verfügung zu stellen.
  • Hardware-Haltepunkte können verwendet werden.
  • Verglichen mit Beispiel 2 gemäß dem Stand der Technik werden die folgenden Wirkungen erzielt:
  • Weil es nicht erforderlich ist, einen Sequenzer in dem Mikroprozessor vorzusehen, sind die Logikschaltkreise zur Fehlersuche, die zusätzlich in den Mikroprozessor eingesetzt werden, einfach.
  • Weil auf die Register durch das Monitor-Programm zugegriffen wird, selbst wenn die Register in einem weiterentwickelten Prozessor (derivative processor) eingesetzt sind, ist es möglich, auf diese lediglich durch ein Wechseln des Monitors zuzugreifen.
  • Aus den beiden oben genannten Gründen können, selbst wenn eine Anzahl peripherer Schaltkreise zu dem Mikroprozessorkern hinzugefügt werden, übliche Logikschaltkreise für die Fehlersuche verwendet werden. Indem dieses übliche Modul in den Mikroprozessor als Teil der peripheren Schaltkreise eingesetzt wird, kann ein übliches Fehlersuchwerkzeug für eine Vielzahl von weiterentwickelten Mikroprozessoren mit einem üblichen Prozessorkern und unterschiedlichen peripheren Schaltkreisen eingesetzt werden.
  • Verglichen mit Beispiel 3 gemäß dem Stand der Technik werden die folgenden Wirkungen erzielt:
  • Die Hardwarespezifikation des Fehlersuchwerkzeugs kann auf üblichem Niveau gehalten werden.
  • Die Anzahl der Signale für eine Verbindung mit dem Fehlersuchwerkzeug wird reduziert. Aus diesem Grund können Proben kleiner und kostengünstiger hergestellt werden.
  • Weil der Mikroprozessor auf dem Anwender-Ziel auf den Speicher und die E/A-Vorrichtung zugreift, werden die Zeitabfolgebedingungen, die für das Fehlersuchwerkzeug erforderlich sind, verbessert.
  • Es gibt keine Auswirkungen auf Signale, die nicht mit dem Fehlersuchwerkzeug verbunden sind.
  • Falls gewünscht können die Kommunikationsgeschwindigkeiten zwischen dem Fehlersuchwerkzeug und dem Mikroprozessor verlangsamt werden.
  • Aus diesem Grund ist auch eine Anwendung bei Hochgeschwindigkeits-Mikroprozessoren möglich.
  • Verglichen mit Beispiel 4 gemäß dem Stand der Technik werden die folgenden Wirkungen erzielt:
  • Mittels eines Einsatzes des Fehlersuchwerkzeuges kann ein Zugriff auf den Ziel-Speicher und die E/A-Vorrichtung und eine Ausführungssteuerung realisiert werden.
  • Die Adreßinformation für Befehle, die in dem Cache-Speicher ausgeführt worden sind, können ebenso verfolgt werden.

Claims (3)

1. Mikroprozessor in einem. Fehlersuchsystem zur Fehlersuche in einem Anwendungsprogramm für den Mikroprozessor, wobei der Mikroprozessor (10) folgende Merkmale aufweist:
eine erste Logikeinrichtung, die ein Fehlersuchmodul (30) umfaßt, zum Ausführen eines Monitorprogramms, auf das über eine reservierte Fehlersuchschnittstelle (15, 71) von einem Monitorspeicher (640) in einem Fehlersuchwerkzeug (60), das außerhalb des Mikroprozessors liegt, zugegriffen wird;
eine zweite Logikeinrichtung mit einem Prozessorkern (20) zum Steuern der Ausführung eines Anwenderprogramms, das Hardware-Haltepunkte enthält; und
eine dritte Logikeinrichtung (32) zum Verfolgen des Anwenderprogramms und zum Liefern von Verfolgungsinformationen über das Fehlersuchmodul (30) an das Fehlersuchwerkzeug (60).
2. Verfolgungsverfahren zum Handhaben von Signalen zwischen einem Mikroprozessor (10) gemäß Anspruch 1 und einem Fehlersuchwerkzeug (60), das außerhalb des Mikroprozessors liegt, mit folgenden Verfahrensschritten:
falls der Mikroprozessor (10)
a. einen Befehl bei einer voreingestellten Adresse ausgeführt hat,
b. auf Daten bei einer voreingestellten Adresse zugegriffen hat,
c. vorgegebene Daten auf ein voreingestellte Adresse geschrieben hat oder
d. vorgegebene Daten von einer voreingestellten Adresse gelesen hat,
Erfassen des Auftretens beliebiger Ereignisse a) - d) in dem Fehlersuchwerkzeug (60) über eine reservierte Fehlersuchschnittstelle (15, 71), welche den Mikroprozessor (10) und das Fehlersuchwerkzeug (60) verbindet und für die Signalübertragung zwischen dem Mikroprozessor (10) und dem Fehlersuchwerkzeug (60) bestimmt ist; und
beim Auftreten solcher Ereignisse, Festlegen der Zeitpunkte eines Beginns oder Endes der Speicherung von Verfolgungsinformationen in einem Verfolgungsspeicher (670) des Fehlersuchwerkzeugs (60).
3. Verfolgungsverfahren nach Anspruch 2, mit folgenden Verfahrensschritten:
Speichern eines Ausführungsstatus eines Befehls in den Mikroprozessor (10) in einen Verfolgungsspeicher (670) in dem Fehlersuchwerkzeug (60);
im Fall, daß der Befehl ein Sprung oder ein Verzweigungsbefehl ist, weiterhin Speichern einer Zieladresse des Sprungs oder Verzweigungsbefehls indem Verfolgungsspeicher;
im Fall, daß eine Ausnahme aufgetreten ist, weiterhin Speichern einer Ausnahmevektornummer dieser Ausnahme in dem Verfolgungsspeicher; und
wobei der Ausführungsstatus, die Adresse und die Ausnahmevektornummer über die reservierte Fehlersuchschnittstelle. (15, 71) übertragen werden.
DE69523549T 1994-12-28 1995-12-21 Mikroprozessor mit Fehlersuchsystem Expired - Lifetime DE69523549T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6339958A JP2752592B2 (ja) 1994-12-28 1994-12-28 マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法

Publications (2)

Publication Number Publication Date
DE69523549D1 DE69523549D1 (de) 2001-12-06
DE69523549T2 true DE69523549T2 (de) 2002-07-11

Family

ID=18332380

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69523549T Expired - Lifetime DE69523549T2 (de) 1994-12-28 1995-12-21 Mikroprozessor mit Fehlersuchsystem

Country Status (4)

Country Link
US (1) US5943498A (de)
EP (1) EP0720092B1 (de)
JP (1) JP2752592B2 (de)
DE (1) DE69523549T2 (de)

Families Citing this family (127)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978937A (en) * 1994-12-28 1999-11-02 Kabushiki Kaisha Toshiba Microprocessor and debug system
EP0840224B1 (de) * 1996-10-31 2002-09-18 STMicroelectronics Limited Mikrorechner mit Urladungsystem
GB9622684D0 (en) * 1996-10-31 1997-01-08 Sgs Thomson Microelectronics An integrated circuit device and method of communication therwith
EP0840221B1 (de) * 1996-10-31 2002-09-18 STMicroelectronics Limited Mikrorechner mit Paketbus
US6697931B1 (en) 1996-10-31 2004-02-24 Stmicroelectronics Limited System and method for communicating information to and from a single chip computer system through an external communication port with translation circuitry
GB9622682D0 (en) * 1996-10-31 1997-01-08 Sgs Thomson Microelectronics An integrated circuit device and method of communication therewith
DE69712587T2 (de) 1996-10-31 2003-01-09 Stmicroelectronics Ltd., Almondsbury Mikrorechner mit Zugriff auf einen externen Speicher
GB9622687D0 (en) * 1996-10-31 1997-01-08 Sgs Thomson Microelectronics An integrated circuit with tap controller
GB9622685D0 (en) * 1996-10-31 1997-01-08 Sgs Thomson Microelectronics An integrated circuit device and method of communication therewith
GB9626401D0 (en) * 1996-12-19 1997-02-05 Sgs Thomson Microelectronics Diagnostic procedures in an integrated circuit device
GB9626367D0 (en) * 1996-12-19 1997-02-05 Sgs Thomson Microelectronics Providing an instruction trace
JP3129397B2 (ja) * 1996-12-27 2001-01-29 日本電気株式会社 マイクロコンピュータ用エミュレーション装置
US6189140B1 (en) * 1997-04-08 2001-02-13 Advanced Micro Devices, Inc. Debug interface including logic generating handshake signals between a processor, an input/output port, and a trace logic
US6314530B1 (en) 1997-04-08 2001-11-06 Advanced Micro Devices, Inc. Processor having a trace access instruction to access on-chip trace memory
EP1184790B1 (de) * 1997-04-08 2009-11-25 Advanced Micro Devices, Inc. Ablaufdaten-Cachespeicher für mikroprozessorbetriebene Anordung
US6047124A (en) * 1997-10-31 2000-04-04 Sun Microsystems, Inc. System and method for tracing device drivers using a computer
US6175914B1 (en) 1997-12-17 2001-01-16 Advanced Micro Devices, Inc. Processor including a combined parallel debug and trace port and a serial port
US6311327B1 (en) * 1998-03-02 2001-10-30 Applied Microsystems Corp. Method and apparatus for analyzing software in a language-independent manner
US6112312A (en) * 1998-03-10 2000-08-29 Advanced Micro Devices, Inc. Method for generating functional tests for a microprocessor having several operating modes and features
GB9805479D0 (en) * 1998-03-13 1998-05-13 Sgs Thomson Microelectronics Microcomputer
GB9805486D0 (en) * 1998-03-13 1998-05-13 Sgs Thomson Microelectronics Adapter
EP0943996B1 (de) * 1998-03-20 2003-06-11 Texas Instruments Incorporated Prozessor mit Echtzeit-Ablaufsteuerung zur Fehlerbeseitigung ohne Fehlerbeseitigungsmonitor
US6145123A (en) * 1998-07-01 2000-11-07 Advanced Micro Devices, Inc. Trace on/off with breakpoint register
DE19835610A1 (de) * 1998-08-06 2000-02-10 Siemens Ag Programmgesteuerte Einheit und Verfahren zum Debuggen derselben
US6131080A (en) * 1998-08-17 2000-10-10 Motorola, Inc. Method of monitoring a computer simulation of an electrical circuit
GB9818377D0 (en) * 1998-08-21 1998-10-21 Sgs Thomson Microelectronics An integrated circuit with multiple processing cores
US6317847B1 (en) * 1998-08-31 2001-11-13 Advanced Micro Devices, Inc. Software read and write tracing using hardware elements
US6378124B1 (en) 1999-02-22 2002-04-23 International Business Machines Corporation Debugger thread synchronization control points
US6587967B1 (en) * 1999-02-22 2003-07-01 International Business Machines Corporation Debugger thread monitor
US6397382B1 (en) * 1999-05-12 2002-05-28 Wind River Systems, Inc. Dynamic software code instrumentation with cache disabling feature
JP4335999B2 (ja) * 1999-05-20 2009-09-30 株式会社ルネサステクノロジ プロセッサ内蔵半導体集積回路装置
US6598178B1 (en) * 1999-06-01 2003-07-22 Agere Systems Inc. Peripheral breakpoint signaler
US6711684B1 (en) 1999-06-08 2004-03-23 General Instrument Corporation Variable security code download for an embedded processor
JP2001034504A (ja) * 1999-07-19 2001-02-09 Mitsubishi Electric Corp ソースレベルデバッガ
US6668339B1 (en) * 1999-07-28 2003-12-23 Mitsubishi Denki Kabushiki Kaisha Microprocessor having a debug interruption function
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
US6412043B1 (en) 1999-10-01 2002-06-25 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6298394B1 (en) 1999-10-01 2001-10-02 Stmicroelectronics, Ltd. System and method for capturing information on an interconnect in an integrated circuit
US6684348B1 (en) 1999-10-01 2004-01-27 Hitachi, Ltd. Circuit for processing trace information
US6693914B1 (en) 1999-10-01 2004-02-17 Stmicroelectronics, Inc. Arbitration mechanism for packet transmission
US6487683B1 (en) 1999-10-01 2002-11-26 Stmicroelectronics Limited Microcomputer debug architecture and method
US6574651B1 (en) 1999-10-01 2003-06-03 Hitachi, Ltd. Method and apparatus for arithmetic operation on vectored data
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
US6557119B1 (en) 1999-10-01 2003-04-29 Stmicroelectronics Limited Microcomputer debug architecture and method
US6598177B1 (en) 1999-10-01 2003-07-22 Stmicroelectronics Ltd. Monitoring error conditions in an integrated circuit
US6463553B1 (en) 1999-10-01 2002-10-08 Stmicroelectronics, Ltd. Microcomputer debug architecture and method
US6859891B2 (en) 1999-10-01 2005-02-22 Stmicroelectronics Limited Apparatus and method for shadowing processor information
US6434665B1 (en) 1999-10-01 2002-08-13 Stmicroelectronics, Inc. Cache memory store buffer
US6590907B1 (en) 1999-10-01 2003-07-08 Stmicroelectronics Ltd. Integrated circuit with additional ports
US7793261B1 (en) 1999-10-01 2010-09-07 Stmicroelectronics Limited Interface for transferring debug information
US6457118B1 (en) 1999-10-01 2002-09-24 Hitachi Ltd Method and system for selecting and using source operands in computer system instructions
US6732307B1 (en) 1999-10-01 2004-05-04 Hitachi, Ltd. Apparatus and method for storing trace information
US6502210B1 (en) 1999-10-01 2002-12-31 Stmicroelectronics, Ltd. Microcomputer debug architecture and method
US6820195B1 (en) 1999-10-01 2004-11-16 Hitachi, Ltd. Aligning load/store data with big/little endian determined rotation distance control
US6546480B1 (en) 1999-10-01 2003-04-08 Hitachi, Ltd. Instructions for arithmetic operations on vectored data
US6412047B2 (en) * 1999-10-01 2002-06-25 Stmicroelectronics, Inc. Coherency protocol
US6629115B1 (en) 1999-10-01 2003-09-30 Hitachi, Ltd. Method and apparatus for manipulating vectored data
US6351803B2 (en) 1999-10-01 2002-02-26 Hitachi Ltd. Mechanism for power efficient processing in a pipeline processor
US6615370B1 (en) 1999-10-01 2003-09-02 Hitachi, Ltd. Circuit for storing trace information
US6598128B1 (en) 1999-10-01 2003-07-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6460174B1 (en) 1999-10-01 2002-10-01 Stmicroelectronics, Ltd. Methods and models for use in designing an integrated circuit
US6826191B1 (en) 1999-10-01 2004-11-30 Stmicroelectronics Ltd. Packets containing transaction attributes
US6665816B1 (en) 1999-10-01 2003-12-16 Stmicroelectronics Limited Data shift register
US6408381B1 (en) 1999-10-01 2002-06-18 Hitachi, Ltd. Mechanism for fast access to control space in a pipeline processor
US6349371B1 (en) 1999-10-01 2002-02-19 Stmicroelectronics Ltd. Circuit for storing information
US6567932B2 (en) 1999-10-01 2003-05-20 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6601189B1 (en) 1999-10-01 2003-07-29 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US7266728B1 (en) 1999-10-01 2007-09-04 Stmicroelectronics Ltd. Circuit for monitoring information on an interconnect
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
US6701405B1 (en) 1999-10-01 2004-03-02 Hitachi, Ltd. DMA handshake protocol
US6928073B2 (en) 1999-10-01 2005-08-09 Stmicroelectronics Ltd. Integrated circuit implementing packet transmission
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
US6530047B1 (en) 1999-10-01 2003-03-04 Stmicroelectronics Limited System and method for communicating with an integrated circuit
US6772325B1 (en) * 1999-10-01 2004-08-03 Hitachi, Ltd. Processor architecture and operation for exploiting improved branch control instruction
US6918065B1 (en) 1999-10-01 2005-07-12 Hitachi, Ltd. Method for compressing and decompressing trace information
US6542983B1 (en) 1999-10-01 2003-04-01 Hitachi, Ltd. Microcomputer/floating point processor interface and method
US6553460B1 (en) 1999-10-01 2003-04-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US7260745B1 (en) 1999-10-01 2007-08-21 Stmicroelectronics Ltd. Detection of information on an interconnect
US6779145B1 (en) 1999-10-01 2004-08-17 Stmicroelectronics Limited System and method for communicating with an integrated circuit
JP4190114B2 (ja) 1999-11-10 2008-12-03 株式会社ルネサステクノロジ マイクロコンピュータ
JP4475709B2 (ja) 1999-11-15 2010-06-09 株式会社ルネサステクノロジ マイクロコンピュータ
GB2365546B (en) 1999-12-23 2004-02-18 St Microelectronics Sa A computer system with two debug watch modes
GB2366006B (en) 1999-12-23 2004-06-30 St Microelectronics Sa A computer system with debug facility
GB2362730B (en) 1999-12-23 2004-02-11 St Microelectronics Sa Computer register watch
JP2001195281A (ja) * 2000-01-07 2001-07-19 Sony Corp システム監視装置
US6658650B1 (en) * 2000-02-18 2003-12-02 International Business Machines Corporation Service entry point for use in debugging multi-job computer programs
US6985848B2 (en) * 2000-03-02 2006-01-10 Texas Instruments Incorporated Obtaining and exporting on-chip data processor trace and timing information
WO2001093040A1 (fr) * 2000-05-30 2001-12-06 Matsushita Electric Industrial Co., Ltd. Systeme et procede d'analyse de compteur de programme, et dispositif a semi-conducteur
DE10036278A1 (de) * 2000-07-26 2002-02-07 Bosch Gmbh Robert Verfahren zur Überwachung eines Programmablaufs mittels einer Debug Logik
JP3913470B2 (ja) 2000-12-28 2007-05-09 株式会社東芝 システムlsi
JP2002202900A (ja) * 2000-12-28 2002-07-19 Seiko Epson Corp デバッグ装置
US20020144235A1 (en) * 2001-03-30 2002-10-03 Charles Simmers Debugging embedded systems
DE10116861A1 (de) * 2001-04-04 2002-10-31 Infineon Technologies Ag Programmgesteuerte Einheit
DE10125388A1 (de) 2001-05-23 2002-12-12 Infineon Technologies Ag Programmgesteuerte Einheit
JP2003263339A (ja) * 2002-03-08 2003-09-19 Seiko Epson Corp デバック機能内蔵型マイクロコンピュータ
GB2389432B (en) * 2002-06-07 2005-09-07 Advanced Risc Mach Ltd Instruction tracing in data processing systems
GB0218206D0 (en) * 2002-08-06 2002-09-11 Ibm Device with detachable battery mounting
DE10244922B4 (de) * 2002-09-25 2009-08-13 Infineon Technologies Ag Programmgesteuerte Einheit und Verfahren zum Debuggen von einer programmgesteuerten Einheit ausgeführten Programmen
US8374841B2 (en) * 2002-11-22 2013-02-12 Texas Instruments Incorporated Precise detection of triggers and trigger ordering for asynchronous events
US20040153895A1 (en) * 2002-11-22 2004-08-05 Manisha Agarwala Imprecise detection of triggers and trigger ordering for asynchronous events
US7159101B1 (en) * 2003-05-28 2007-01-02 Mips Technologies, Inc. System and method to trace high performance multi-issue processors
JP2005070950A (ja) * 2003-08-21 2005-03-17 Sanyo Electric Co Ltd プログラム処理装置
JP2005070949A (ja) * 2003-08-21 2005-03-17 Sanyo Electric Co Ltd プログラム処理装置
US20050060690A1 (en) * 2003-09-15 2005-03-17 Kuo-Jung Tung Microprocessor system with software emulation processed by auxiliary hardware
US7533251B2 (en) 2003-12-24 2009-05-12 Panasonic Corporation Semiconductor integrated circuit, development support system and execution history tracing method
EP1754156B1 (de) * 2004-05-12 2015-12-23 Callahan Cellular L.L.C. Datenverarbeitungssystem mit einem trace-coprozessor
JP4494899B2 (ja) * 2004-07-29 2010-06-30 富士通株式会社 プロセッサデバッグ装置およびプロセッサデバッグ方法
US7817293B2 (en) * 2005-01-07 2010-10-19 Infoprint Solutions Company, Llc Trace and debug tool for high speed printer systems
JP4235831B2 (ja) * 2005-02-22 2009-03-11 セイコーエプソン株式会社 ターゲットシステム、デバッグシステム、集積回路装置、マイクロコンピュータ及び電子機器
US7793160B1 (en) * 2005-03-29 2010-09-07 Emc Corporation Systems and methods for tracing errors
US20060273944A1 (en) * 2005-05-13 2006-12-07 Swoboda Gary L System With Trace Capability Accessed Through the Chip Being Traced
US20060277435A1 (en) 2005-06-07 2006-12-07 Pedersen Frode M Mechanism for storing and extracting trace information using internal memory in microcontrollers
US7409330B2 (en) * 2005-06-16 2008-08-05 Kabushiki Kaisha Toshiba Method and system for software debugging using a simulator
US8108840B2 (en) 2006-01-12 2012-01-31 International Business Machines Corporation Method for enhancing debugger performance of hardware assisted breakpoints
JP2009042815A (ja) * 2007-08-06 2009-02-26 Renesas Technology Corp 半導体集積回路及びデバッグシステム
US8407457B2 (en) * 2007-09-28 2013-03-26 Freescale Semiconductor, Inc. System and method for monitoring debug events
US8417924B2 (en) * 2008-02-22 2013-04-09 Freescale Semiconductor, Inc. Data processing device and method of halting exception processing
US10073797B2 (en) * 2008-02-22 2018-09-11 Nxp Usa, Inc. Data processor device supporting selectable exceptions and method thereof
US8799719B2 (en) * 2011-05-19 2014-08-05 International Business Machines Corporation On demand tracing of application code execution
KR20130101927A (ko) * 2012-03-06 2013-09-16 한국전자통신연구원 디버깅 기능을 가지는 멀티코어 SoC
US9071564B2 (en) * 2012-06-07 2015-06-30 Apple Inc. Data synchronization using mail and push notification services
WO2017072664A1 (en) * 2015-10-27 2017-05-04 Marvell World Trade Ltd. System and method for establishing a trusted diagnosis/debugging agent over a closed commodity device
US10824540B2 (en) 2018-12-28 2020-11-03 Datalogic Ip Tech S.R.L. Terminal failure buster
US11132283B2 (en) * 2019-10-08 2021-09-28 Renesas Electronics America Inc. Device and method for evaluating internal and external system processors by internal and external debugger devices
CN114556306A (zh) * 2019-10-18 2022-05-27 罗姆股份有限公司 跟踪电路、半导体装置、跟踪器及跟踪系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4463421A (en) * 1980-11-24 1984-07-31 Texas Instruments Incorporated Serial/parallel input/output bus for microprocessor system
JPS595478A (ja) * 1982-07-02 1984-01-12 Toshiba Corp 電子計算機のアドレス装置
US4630195A (en) * 1984-05-31 1986-12-16 International Business Machines Corporation Data processing system with CPU register to register data transfers overlapped with data transfer to and from main storage
JPS6280743A (ja) * 1985-10-01 1987-04-14 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション アドレス変換例外処理方法
US4788683A (en) * 1986-01-14 1988-11-29 Ibm Corporation Data processing system emulation with microprocessor in place
JPS63155336A (ja) * 1986-12-19 1988-06-28 Hitachi Ltd デ−タ処理装置
US5263153A (en) * 1987-01-22 1993-11-16 National Semiconductor Corporation Monitoring control flow in a microprocessor
DE3740762A1 (de) * 1987-01-22 1988-08-04 Nat Semiconductor Corp Datenverarbeitungssystem mit einer externen schnittstelle
JPS63284644A (ja) * 1987-05-18 1988-11-21 Matsushita Electric Ind Co Ltd 命令アドレス出力回路
US5084814A (en) * 1987-10-30 1992-01-28 Motorola, Inc. Data processor with development support features
JPH0241532A (ja) * 1988-08-01 1990-02-09 Fuji Electric Co Ltd マイクロプロセッサの例外処理方法
JPH0727472B2 (ja) * 1990-07-16 1995-03-29 日本ケミコン株式会社 デバッグ環境を備えた集積回路
JPH04190430A (ja) * 1990-11-26 1992-07-08 Mitsubishi Electric Corp ソフトウェア開発用エミュレータ
US5345580A (en) * 1990-11-29 1994-09-06 Kabushiki Kaisha Toshiba Microprocessor device and emulator device thereof
EP0545581B1 (de) * 1991-12-06 1999-04-21 National Semiconductor Corporation Integriertes Datenverarbeitungssystem mit CPU-Kern und unabhängigem parallelen, digitalen Signalprozessormodul
JPH06161809A (ja) * 1992-11-25 1994-06-10 Toshiba Corp 半導体集積回路装置
JPH06202901A (ja) * 1993-01-06 1994-07-22 Ricoh Co Ltd Romエミュレート方式デバッガ及びromエミュレート方法
US5978937A (en) * 1994-12-28 1999-11-02 Kabushiki Kaisha Toshiba Microprocessor and debug system

Also Published As

Publication number Publication date
DE69523549D1 (de) 2001-12-06
EP0720092B1 (de) 2001-10-31
US5943498A (en) 1999-08-24
JP2752592B2 (ja) 1998-05-18
EP0720092A1 (de) 1996-07-03
JPH08185336A (ja) 1996-07-16

Similar Documents

Publication Publication Date Title
DE69523549T2 (de) Mikroprozessor mit Fehlersuchsystem
DE4313594C2 (de) Mikroprozessor
DE69708255T2 (de) Diagnosesystem und Verfahren bei einer integrierten Schaltung
DE69225750T2 (de) Datenverarbeitungssystem mit internem Befehlspufferspeicher
DE69706271T2 (de) Integrierter Rechner mit Befehlsverfolgung
DE69801156T2 (de) Mikroprozessorbetriebene anordnung mit cache-speicher zum aufnehmen von software-leistungsprofildaten
DE69106507T2 (de) In-circuit-emulator.
DE10333817B4 (de) Emulationsschnittstellensystem
DE69705813T2 (de) Diagnosesystem und Verfahren bei einer integrierten Halbleiterschaltung
DE69830718T2 (de) Ablaufdaten-cachespeicher fuer mikroprozessorbasierte anordung
DE69330537T2 (de) System zur Analyse und Fehlerbeseitigung integrierter Software durch dynamischen und interactiven Gebrauch von Kode-Markierern
DE3851033T2 (de) Datenprozessor mit Entwicklungsunterstützungsmerkmalen.
DE19834191C2 (de) Integrierte Schaltungsvorrichtung und ihr Steuerverfahren
DE69908682T2 (de) Prozessor mit Echtzeit-Ablaufsteuerung zur Fehlerbeseitigung ohne Fehlerbeseitigungsmonitor
EP1449083B1 (de) Verfahren zum debuggen rekonfigurierbarer architekturen
DE4418892C2 (de) Mikrocomputer
DE69019441T2 (de) Line Computer.
CH654943A5 (de) Pruefeinrichtung fuer mikroprogramme.
DE69815006T2 (de) Datenverarbeitungseinheit mit Fehlerbeseitungsmöglichkeiten
DE69802977T2 (de) Steuervorrichtung einer Auslösesignalreihenfolge
EP1565825A2 (de) Einrichtung und verfahren zur analyse von eingebetteten systemen
EP0500973A1 (de) Initialisierungsroutine im EEPROM
DE69714379T2 (de) Integrierte Halbleiterspeicheranordnung und Kommunikationsverfahren dafür
DE68924507T2 (de) Verfahren und Gerät zur Markierung von Emulationsanalysezuständen.
DE60010847T2 (de) Verfahren zur Fehlerbeseitigung in einem Thread-Programm

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: KABUSHIKI KAISHA TOSHIBA, TOKIO/TOKYO, JP

Owner name: AGILENT TECHNOLOGIES, INC. (N.D.GES.D.STAATES DELA