DE69523884T2 - Mikroprozessor mit Fehlersuchsystem - Google Patents

Mikroprozessor mit Fehlersuchsystem

Info

Publication number
DE69523884T2
DE69523884T2 DE69523884T DE69523884T DE69523884T2 DE 69523884 T2 DE69523884 T2 DE 69523884T2 DE 69523884 T DE69523884 T DE 69523884T DE 69523884 T DE69523884 T DE 69523884T DE 69523884 T2 DE69523884 T2 DE 69523884T2
Authority
DE
Germany
Prior art keywords
signal
processor core
program counter
address
debug
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
DE69523884T
Other languages
English (en)
Other versions
DE69523884D1 (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
Original Assignee
Toshiba Corp
Agilent Technologies Inc
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, Agilent Technologies Inc filed Critical Toshiba Corp
Publication of DE69523884D1 publication Critical patent/DE69523884D1/de
Application granted granted Critical
Publication of DE69523884T2 publication Critical patent/DE69523884T2/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/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • G06F11/364Software debugging by tracing the execution of the program tracing values on a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

    HINTERGRUND DER ERFINDUNG 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft einen Mikroprozessor und ein Austestsystem mit einer Funktion zum Verfolgen eines Programmzählers und einer Funktion zum Mitteilen nach außen, daß auf eine voreingestellte Adresse oder auf Daten zugegriffen worden ist.
  • 2. Beschreibung des Standes der Technik
  • Fig. 1 zeigt ein Austestsystem, das Emulator innerhalb einer Schaltung genannt wird, gemäß einem Stand der Technik.
  • Das System enthält ein Anwender-Zielsystem 500 und eine Austesteinheit 505 zum Austesten des Zielsystems 500. Das Zielsystem 500 hat einen Mikroprozessor 501, einen Speicher 503 und eine I/O-Einheit 502. Die Austesteinheit 505 hat einen Austest-Mikroprozessor 506 und einen Überwachungsprogramm-Speicher 507.
  • Zum Austesten des Zielsystems 500 wird der Mikroprozessor 501 entfernt oder gesperrt, und Sonden der Austesteinheit 505 werden an die Stelle des Mikroprozessors 501 angeschlossen, so daß der Mikroprozessor 506 anstelle des Mikroprozessors 501 arbeiten kann. Der Mikroprozessor 506 führt ein Überwachungsprogramm aus, das im Speicher 507 gespeichert ist, um ein im Speicher 503 gespeichertes Anwenderprogramm zu steuern.
  • Der Mikroprozessor 506 führt das Anwenderprogramm aus, greift auf Daten im Speicher 503 zu und greift auf die I/O-Einheit 502 zu. Die Austesteinheit 505 hat einen Verfolgungsspeicher 508, so daß der Mikroprozessor 506 Verfolgungsinformation über einen internen Zustand liefern kann, wie beispielsweise den Wert eines Programmzählers, der normalerweise nicht vorgesehen ist, und zwar durch den Mikroprozessor 501 über einen Prozessorbus 504.
  • Der Stand der Technik der Fig. 1 muß jedoch die Austesteinheit 505 an alle Anschlußstifte des Mikroprozessors 501 des Zielsystems 500 anschließen. Der Mikroprozessor 501 hat beispielsweise 70 Anschlußstifte für 30 Adressensignale, vier Byte-Freigabesignale, ein Lesesignal, ein Schreibsignal, ein Lesebestätigungssignal, ein Schreibbestätigungssignal und 32 Datensignale. Die Austesteinheit 505 muß Sonden für diese Anschlußstifte haben und daher teuer und instabil. Der Mikroprozessor 506 muß Busse von einem zum anderen umschalten, um auf den Speicher 503 des Zielsystems 500 und den Speicher 507 der Austesteinheit 505 zuzugreifen, und ist daher nicht auf einen Hochgeschwindigkeits-Mikroprozessor anwendbar.
  • Wenn der Ziel-Mikroprozessor periphere Elemente hat, können sie eine unterschiedliche Anschlußstiftanordnung haben. In diesem Fall muß die Austesteinheit Sonden haben, die für eine solche Anschlußstiftanordnung geeignet sind. Wenn sie mit dem Zielsystem 500 verbunden sind, können die Sonden der Austesteinheit 505 Signale im Zielsystem 500 beeinflussen und destabilisieren.
  • Fig. 2 zeigt ein Austestsystem, das ROM-Überwachungseinheit bzw. ROM-Monitor genannt wird, gemäß einem weiteren Stand der Technik.
  • Ein Anwender-Zielsystem 510 hat eine serielle Schnittstelle 512, die mit einem Hostcomputer 517 verbunden ist. Ein Speicher 513 speichert ein Überwachungsprogramm 514. Ein Mikroprozessor 511 führt das Überwachungsprogramm 514 aus, um auf den Speicher 513, eine I/O-Einheit 515 und ein Reformierungsreaktionskammer 516 zuzugreifen. Ein Software- Abbruchbefehl bzw. -Unterbrechungsbefehl wird zum Ausführen und Steuern eines Anwenderprogramms verwendet.
  • Dieser Stand der Technik verwendet den Anwenderspeicher 513 zum Speichern des Überwachungsprogramms 514. Wenn das Speichersystem des Zielsystems 510 nicht perfekt ist, wird das Überwachungsprogramm 514 selbst instabil werden. Wenn die Kapazität des Speichers 513 klein ist, wird es keinen Platz zum Speichern des Überwachungsprogramms 514 geben. Da ein Überwachungsmode durch eine Anwenderunterbrechung begonnen wird, kann es sein, daß ein Programm nicht ausgetestet wird. Die am Zielsystem 510 angebrachte serielle Schnittstelle 512 ist imperativ bzw. befehlend zum Austesten, ist aber nach einem Austesten nutzlos. Die Austestleistung dieses Standes der Technik ist schlecht, weil er keine Hardware- Abbruchstelle hat und weil er einen Programmzähler nicht verfolgen kann.
  • Fig. 3 zeigt ein Austestsystem gemäß einem weiteren Stand der Technik.
  • Das Anwender-Zielsystem 520 hat einen Mikroprozessor 521, der eine serielle Schnittstelle 526 und eine Ablauffolgesteuerung 525 enthält. Die serielle Schnittstelle 526 kommuniziert mit einem Austestwerkzeug 529. Das Austestwerkzeug 529 sendet Signale zur Schnittstelle 526 und die Ablauffolgesteuerung 525 interpretiert die Signale. In Antwort auf die Signale stoppt die Ablauffolgesteuerung 525 die Ausführung eines Anwenderprogramms temporär, greift auf ein Register 528 zu, verwendet eine Bus-Steuerung 527 zum Zugreifen auf eine I/O- Einheit 523 und einen Speicher 524 und steuert das Anwenderprogramm. Die serielle Schnittstelle 526 ist normalerweise unfähig zum direkten Kommunizieren mit einem Hostcomputer 530. Demgemäß wandelt das Austestwerkzeug 529 einen Befehl vom Hostcomputer 530 in ein Signal um, das vom Mikroprozessor 531 verstanden wird, und ein Signal vom Mikroprozessor 521 in ein Datenformat, das vom Hostcomputer 530 verstanden wird.
  • Der Mikroprozessor 521 enthält die Ablauffolgesteuerung 525, die auf den Mikroprozessor 521 sowie auf das Austestwerkzeug bzw. Austest-Dienstprogramm 529 zugreifen muß. Auf diese Weise verwendet dieser Stand der Technik eine komplizierte Verbindungslogik, was einen Chipbereich erhöht. Wenn das Zielsystem 520 mit einem zusätzlichen Register versehen ist, muß die Ablauffolgesteuerung 525 durch eine komplizierte Arbeit entsprechend modifiziert werden. Dieser Stand der Technik ist unfähig zum Verfolgen eines Programmzählers.
  • Wie es oben erklärt ist, ist der Stand der Technik unfähig zum Verfolgen eines Programmzählers, oder diese Techniken müssen selbst dann, wenn sie es können, viele Signale zwischen einem Austestprozessor und einem Zielsystem durch einen Prozessorbus verbinden. Gemäß dem Stand der Technik der Fig. 1 muß der Mikroprozessor 506 der Austesteinheit 505 auf den Speicher 503 und die I/O-Einheit 502 des Zielsystems 500 zugreifen, und es ist schwierig, die Zeitgabe dieser Zugriffsoperationen zu steuern.
  • Der Stand der Technik der Fig. 2 speichert ein Überwachungsprogramm im Anwenderspeicher 513, um einen Anwenderspeicherraum zu reduzieren. Ein Austesten durch diesen Stand der Technik ist unsicher und unzureichend.
  • Der Stand der Technik der Fig. 3 enthält die Ablauffolgesteuerung 525 im Mikroprozessor 521 des Zielsystems 520, um Signale zu interpretieren und auszuführen, die vom Austest-Dienstprogramm 529 gesendet werden. Dieser Stand der Technik enthält nämlich eine komplizierte Verbindung zwischen einem Zielsystem und einem Austest-Dienstprogramm. Wenn es erforderlich ist, den Mikroprozessor 521 zu modifizieren, muß die Ablauffolgesteuerung 525 auch durch eine komplizierte Arbeit modifiziert werden.
  • Der Stand der Technik der Fig. 2 und 3 hat keine Triggerfunktion. Der Stand der Technik der Fig. 1 kann die Triggerfunktion im Austest-Mikroprozessor 506 haben, aber mit zusätzlichen Signalen zum Liefern von Triggerinformation.
  • Das Dokument "ELECTRONIC DESIGN, vol. 38, no. 9, 10. Mai 1990, HASBROUCK HEIGHTS, NEW JERSEY, US, Seiten 29-30, XP000125949 DAVE BURSKY: "Dedicated Emulation Logic On Chip Debugs Digital Processor's Hardware And Software"" bildet einen relativen Stand der Technik für die vorliegende Erfindung, da es ein Austestsystem zum Austesten eines Anwenderprogramms für einen Mikroprozessor offenbart, wobei das System auf dem Chip einen kleinen Logikteil aufweist, der in einem beliebigen komplexen IC integriert sein kann, der eine Emulation auf dem Chip, eine Verfolgungsprogrammausführung sowie eine Abbruchsstelleneinstellung auf verschiedenen Adressenbussen zuläßt.
  • ZUSAMMENFASSUNG DER Erfindung
  • Es ist eine Aufgabe der vorliegenden Erfindung, einen Mikroprozessor zu schaffen, der in einem Anwender-Zielsystem angeordnet ist, zum Erreichen einer Austestfunktion mit einer kleinen Anzahl von Signalen zwischen dem Zielsystem und einer Austesteinheit.
  • Es ist eine weitere Aufgabe der vorliegenden Erfindung, einen Mikroprozessor zu schaffen, der in einem Anwender-Zielsystem angeordnet ist, zum Erreichen einer Austestfunktion, wobei der Mikroprozessor auf dem Zielsystem arbeitet, um auf einfache Weise auf Speicher und I/O-Einheiten des Zielsystems zuzugreifen.
  • Es ist eine weitere Aufgabe der vorliegenden Erfindung, einen Mikroprozessor zu schaffen, der in einem Anwender-Zielsystem angeordnet ist, zum Erreichen einer Austestfunktion zum Verfolgen eines Programmzählers mit einer kleinen Anzahl von Signalen.
  • Es ist eine weitere Aufgabe der vorliegenden Erfindung, einen Mikroprozessor zu schaffen, der in einem Anwender-Zielsystem angeordnet ist, zum Erreichen einer Austestfunktion mit minimaler Hardware durch ein gemeinsames Nutzen von Adressen- und Datenkomparatoren mit einer Hardware-Abbruchfunktion und einer Triggerfunktion und durch ein gemeinsames Nutzen von Ausgangssignalen mit einer Programmzählerinformation und einer Triggerinformation.
  • Zum Erreichen der Aufgaben schafft ein erster Aspekt der vorliegenden Erfindung einen Mikroprozessor, wie er im Anspruch 1 definiert ist, mit einem Prozessorkern und einem Austestmodul. Der Prozessorkern führt ein Anwenderprogramm sowie ein Überwachungsprogramm zum Austesten eines Anwender- Zielsystems aus. Das Austestmodul ist mit dem Prozessorkern über eine interne Austestschnittstelle und einen Prozessorbus verbunden. Das Austestmodul hat eine Schnittstelle, die dem Prozessorkern ermöglicht, ein in einem Austest-Dienstprogramm gespeichertes Überwachungsprogramm auszuführen. Das Austestmodul hat auch eine Ausführungssteuerung zum Durchführen einer Unterbrechungs- oder Ausnahmeanforderung bzw. -anfrage zum Prozessorkern zum Umschalten des Prozessorkerns vom Anwenderprogramm zum Überwachungsprogramm.
  • Ein zweiter Aspekt der vorliegenden Erfindung, wie er im abhängigen Anspruch 2 definiert ist, schafft ein Austestsystem. Im System speichert ein Austest-Dienstprogramm ein Überwachungsprogramm zum Austesten eines Anwender- Zielsystems. Das Zielsystem enthält einen Mikroprozessor, einen Speicher und eine I/O-Einheit. Der Mikroprozessor hat einen Prozessorkern und ein Austestmodul. Der Prozessorkern führt ein Anwenderprogramm oder das Überwachungsprogramm aus. Das Austestmodul ist über eine interne Austestschnittstelle und einen Prozeßbus mit dem Prozessorkern verbunden, und über eine externe Austestschnittstelle mit dem Austest- Dienstprogramm. Die Schnittstellen des Austestmoduls geben den Prozessorkern dafür frei, das Überwachungsprogramm auszuführen. Das Austestmodul hat auch eine Ausführungssteuerung zum Durchführen einer Unterbrechungs- oder Ausnahmeanfrage zum Prozessorkern zum Umschalten des Prozessorkerns vom Anwenderprogramm zum Überwachungsprogramm. Der Speicher ist über den Prozessorbus mit dem Mikroprozessor verbunden und speichert Information, die für den Mikroprozessor zum Ausführen des Anwenderprogramms nötig ist. Die I/O-Einheit ist mit dem Mikroprozessor über den Prozessorbus verbunden.
  • Gemäß dem ersten und dem zweiten Aspekt hat der Mikroprozessor des Zielsystems die Austestfunktion zum Reduzieren der Anzahl von Signalen zwischen dem Zielsystem und dem Austest-Dienstprogramm. Der erste und der zweite Aspekt betreiben den Mikroprozessor während eines Austestens, um auf einfache Weise auf den Speicher und die I/O-Einheit des Zielsystems zuzugreifen.
  • Ein dritter Aspekt der vorliegenden Erfindung, wie er im unabhängigen Anspruch 14 definiert ist, schafft einen Mikroprozessor mit einem Prozessorkern zum Ausführen eines Programms und einen Tracer bzw. einen Ablaufverfolger zum Verfolgen eines Programmzählers. Der Ablaufverfolger ist über eine interne Austestschnittstelle mit dem Prozessorkern verbunden und liefert ein Programmzählersignal, das die Adresse eines Befehls darstellt, der durch den Prozessorkern auszuführen ist. Die Anzahl von Signalleitungen zum Übertragen des Ausgangssignals ist kleiner als die Anzahl von Bits der Befehlsadresse.
  • Gemäß dem dritten Aspekt hat der Mikroprozessor des Zielsystems die Austestfunktion zum Reduzieren der Anzahl von Schnittstellensignalen, die zum Verfolgen des Programmzählers verwendet werden.
  • Ein vierter Aspekt der vorliegenden Erfindung, wie er im unabhängigen Anspruch 24 definiert ist, schafft einen Mikroprozessor mit einem Prozessorkern zum Ausführen von Programmen, einer Abbruchschaltung und einem Programmzähler- Ablaufverfolger. Die Abbruchschaltung liefert dem Prozessorkern eine Abbruchanfrage oder eine Triggeranfrage, wenn eine Adresse, auf die zugegriffen wird, mit einer eingestellten Adresse übereinstimmt, oder wenn eine Adresse und Daten, auf die zugegriffen wird, mit einer Adresse und Daten übereinstimmen, die eingestellt sind. Der Ablaufverfolger liefert ein externes Statussignal, das darüber informiert, daß die Triggeranfrage freigegeben worden ist.
  • Gemäß dem vierten Aspekt hat der Mikroprozessor des Zielsystems die Austestfunktion, wird ein Adressenkomparator durch die Hardware-Abbruchfunktion und -Triggerfunktion gemeinsam genutzt und wird die Ausgabe des Ablaufverfolgers zum Liefern von Triggerinformation verwendet, um Hardware zu minimieren.
  • Das gemeinsame erfinderische Konzept, das die unabhängigen Ansprüche 1, 12 und 24 verbindet, liegt in der internen Austestschnittstelle zum Prozessorkern.
  • Die europäische Patentanmeldung EP-A-0 720 092 ist von denselben Anmeldern (Hewlett-Packard Company & Kabushiki Kaisha Toshiba) und hat dieselben effektiven Daten (dasselbe Prioritätsdatum und dasselbe Veröffentlichungsdatum), bestimmt dieselben Staaten und hat eine im Wesentlichen identische Beschreibung wie die vorliegende Anmeldung. Die Hauptansprüche der europäischen Patentanmeldung EP-A- 0 720 092 betreffen einen Mikroprozessor in einem Austestsystem zum Austesten eines Anwenderprogramms für den Mikroprozessor und richten sich hauptsächlich auf die Handhabung von Signalen zwischen dem Mikroprozessor und dem Austest-Dienstprogramm, das außerhalb des Prozessors angeordnet ist.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Diese und weitere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden Beschreibung bevorzugter Ausführungsbeispiele in Zusammenhang mit den beigefügten Zeichnungen klar werden, wobei:
  • Fig. 1 ein Austestsystem zum Austesten eines Anwender- Zielsystems gemäß einem Stand der Technik zeigt;
  • Fig. 2 ein Austestsystem zum Austesten eines Anwender- Zielsystems gemäß einem weiteren Stand der Technik zeigt;
  • Fig. 3 ein Austestsystem zum Austesten eines Anwender- Zielsystems gemäß einem weiteren Stand der Technik zeigt;
  • Fig. 4 ein Austestsystem und einen Mikroprozessor gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt;
  • Fig. 5 ein Austestmodul des Ausführungsbeispiels der Fig. 4 zeigt;
  • Fig. 6 eine Registerschaltung des Ausführungsbeispiels der Fig. 4 zeigt;
  • Fig. 7 ein Austest-Steuerregister (DCR) der Registerschaltung der Fig. 6 zeigt;
  • Fig. 8 ein Register für eine Befehlsabbruchadresse 0 (IBA0) der Registerschaltung der Fig. 6 zeigt;
  • Fig. 9 ein Register für eine Befehlsabbruchsteuerung 0 (IBC0) der Registerschaltung der Fig. 6 zeigt;
  • Fig. 10 ein Register für einen Befehlsabbruchstatus (IBS) der Registerschaltung der Fig. 6 zeigt;
  • Fig. 11 ein Register für eine Datenabbruchadresse 0 (DBA0) der Registerschaltung der Fig. 6 zeigt;
  • Fig. 12 ein Register für eine Datenabbruchsteuerung 0 (DBC0) der Registerschaltung der Fig. 6 zeigt;
  • Fig. 13 ein Register für einen Datenabbruchstatus (DBS) der Registerschaltung der Fig. 6 zeigt;
  • Fig. 14 ein Register für eine Prozessorbus-Abbruchadresse (PBA0) der Registerschaltung der Fig. 6 zeigt;
  • Fig. 15 ein Register für Prozessorbus-Abbruchdaten 0 (PBD0) der Registerschaltung der Fig. 6 zeigt;
  • Fig. 16 ein Register für eine Prozessorbus-Maske 0 (PBM0) der Registerschaltung der Fig. 6 zeigt;
  • Fig. 17 ein Register für eine Prozessorbus-Steuerung 0 (PBC0) der Registerschaltung der Fig. 6 zeigt;
  • Fig. 18 ein Register für einen Prozessorbus-Abbruchstatus (PBS) der Registerschaltung der Fig. 6 zeigt,
  • Fig. 19 eine Befehls/Daten-Adressenabbruchsschaltung des Austestmoduls der Fig. 5 zeigt;
  • Fig. 20 eine Prozessorbus-Abbruchsschaltung des Austestmoduls der Fig. 5 zeigt;
  • Fig. 21 eine serielle Überwachungsbusschaltung des Austestmoduls der Fig. 5 zeigt;
  • Fig. 22 ein Zeitdiagramm ist, das eine Leseoperation der seriellen Überwachungsbusschaltung zeigt;
  • Fig. 23 ein Zeitdiagramm ist, das eine Schreiboperation der seriellen Überwachungsbusschaltung zeigt;
  • Fig. 24 ein Zeitdiagramm ist, das eine Leseoperation der seriellen Überwachungsbusschaltung gemäß einem Befehl CFC0 zeigt;
  • Fig. 25 ein Zeitdiagramm ist, das eine Schreiboperation der seriellen Überwachungsbusschaltung gemäß einem Befehl CTC0 zeigt;
  • Fig. 26 ein Ablaufdiagramm ist, das den Betrieb der seriellen Überwachungsbusschaltung der Fig. 21 zeigt;
  • Fig. 27 ein Ablaufdiagramm ist, das eine Leseoperation der seriellen Überwachungsbusschaltung zeigt;
  • Fig. 28 ein Ablaufdiagramm ist, das eine Schreiboperation der seriellen Überwachungsbusschaltung zeigt;
  • Fig. 29 einen Programmzähler-Ablaufverfolger des Austestmoduls der Fig. 5 zeigt;
  • Fig. 30 ein Zeitdiagramm ist, das eine Programmzählerausgabe gemäß einem Verzweigungsbefehl zeigt;
  • Fig. 31 ein Zeitdiagramm ist, das eine Programmzählerausgabe gemäß einem indirekten Sprungbefehl zeigt;
  • Fig. 32 ein Zeitdiagramm ist, das eine Programmzählerausgabe gemäß einer Ausnahme und einem indirekten Sprungbefehl zeigt;
  • Fig. 33 ein Zeitdiagramm ist, das einen Befehls/Daten- Adressenverfolgungstrigger zeigt;
  • Fig. 34 ein Zeitdiagramm ist, das einen in Reaktion auf einen Ausnahmeerzeugungsbefehl erzeugten Befehls/Daten-Adressenverfolgungstrigger zeigt;
  • Fig. 35 ein Zeitdiagram ist, das einen in Reaktion auf einen indirekten Befehl erzeugten Befehls/Daten- Adressenverfolgungstrigger zeigt;
  • Fig. 36 ein Zeitdiagramm ist, das ein Ausgangssignal PCST[2 : 0] zeigt, wenn eine Austestausnahme auftritt;
  • Fig. 37 ein Zeitdiagramm ist, das das Signal PCST[2 : 0] zeigt, wenn eine Austestaufnahme auftritt, während die Ausgabe eines Ziel-Programmzählers geliefert wird;
  • Fig. 38 ein Zeitdiagramm ist, das das Signal PCST[2 : 0] zeigt, wenn ein normaler Mode nach einem Austestmode wiederhergestellt wird;
  • Fig. 39 ein Zeitdiagramm ist, das die Ausgabe eines Ziel- Programmzählers zeigt;
  • Fig. 40 ein Zeitdiagramm ist, das den nächsten indirekten Sprung zeigt, der auftrat, während die Ausgabe eines Ziel-Programmzählers geliefert wird;
  • Fig. 41 ein Zeitdiagramm ist, das eine Ausnahme zeigt; die auftrat, während die Ausgabe eines Ziel- Programmzählers geliefert wird;
  • Fig. 42 eine externe Schnittstellenschaltung des Austestmoduls der Fig. 5 zeigt;
  • Fig. 43 ein Expansions-IBS-Register zeigt; und
  • Fig. 44 ein Austestsystem gemäß einem Ausführungsbeispiel der vorliegenden Erfindung zeigt.
  • DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSBEISPIELE
  • Fig. 4 zeigt ein Austestsystem und einen Mikroprozessor gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
  • Das Austestsystem hat ein Anwender-Zielsystem 70 und eine Austesteinheit 60.
  • Das Zielsystem 70 hat den Mikroprozessor 10, einen Speicher 40 und eine I/O-Einheit 50. Der Mikroprozessor 10 hat eine Austestfunktion.
  • Der Mikroprozessor 10 hat einen Prozessorkern 20 und ein Austestmodul 30. Der Prozessorkern 20 greift auf den Speicher 40 und die I/O-Einheit 50 über einen Prozessorbus 80 zu und führt ein Programm aus. Der Prozessorkern 20 ist mit dem Austestmodul 30 über eine interne Austestschnittstelle und den Prozessorbus 80 verbunden. Das Austestmodul 30 ist mit der Austesteinheit 60 über eine externe Austestschnittstelle verbunden.
  • Das Austestsystem nimmt einen Austestmode an, um ein Überwachungsprogramm auszuführen, und einen normalen Mode, um ein Anwenderprogramm auszuführen.
  • < Austestmode>
  • Der Prozessorkern 20 erzeugt eine Austestausnahme oder ein Austestrücksetzen, um den Austestmode zu beginnen. Der Prozessorkern 20 springt zu einer Austestausnahme- Vektoradresse FF20_0200 oder einer Austestrücksetz- Vektoradresse FF20_0000 und aktiviert ein Austestmodensignal DM. Ein Speicher, auf den mit diesen Vektoradressen zugegriffen wird, ist in der Austesteinheit 60. Der Prozessorkern 20 führt das in der Austesteinheit 60 gespeicherte Überwachungsprogramm über das Austestmodul 30 aus. Das Überwachungsprogramm führt das Anwenderprogramm durch Lesen und Schreiben von Speichern und Registern und durch Spezifizieren von Start- und Endadressen des Anwenderprogramms aus und steuert es. Der Prozessorkern 20 kann einen Rücksprungbefehl ausführen, um zum normalen Mode zurückzuspringen und das Anwenderprogramm auszuführen. In diesem Fall springt der Prozessorkern 20 zu einer durch den Rücksprungbefehl spezifizierten Adresse und negiert das Austestmodensignal DM.
  • < Normaler Mode>
  • Unter dem normalen Mode führt das Austestsystem das Anwenderprogramm aus und verfolgt gleichzeitig einen Programmzähler. Das Austestsystem kann den normalen Mode durch Erzeugen einer Austestausnahme oder eines Austestrücksetzens für den Prozessorkern 20 durch einen Hardwareabbruch, einen Softwareabbruch oder eine Austestunterbrechung zum Austestmode umschalten.
  • Die Programmzähler-Ablaufverfolgungsfunktion, die Hardwareabbruchfunktion, die Softwareabbruchfunktion, die Austestunterbrechungsfunktion, die Austestrücksetzfunktion und die Ablaufverfolgungstriggerfunktion, die unter dem normalen Mode freigegeben werden., werden erklärt werden.
  • Die Programmzähler-Ablaufverfolgungsfunktion verfolgt einen Wert im Programmzähler, während der Prozessorkern 20 das im Speicher 40 gespeicherte Anwenderprogramm ausführt. Während der Prozessorkern 20 das Anwenderprogramm ausführt, wird die Programmzählerinformation zur internen Austestschnittstelle gesendet. Das Austestmodul 30 verarbeitet die Information und sendet die verarbeitete Information über die externe Austestschnittstelle zur Austesteinheit 60.
  • Die Hardwareabbruchfunktion erzeugt eine Austestausnahme, wenn ein Befehl mit einer vorbestimmten Adresse ausgeführt oder wenn auf Daten bei einer vorbestimmten Adresse zugegriffen wird, um den Prozessorkern 20 das Überwachungsprogramm ausführen zu lassen. Genauer gesagt vergleicht das Austestmodul 30 die Adresse eines durch den Prozessorkern 20 auszuführenden Befehls mit einer im Austestmodul 30 gespeicherten Befehlsadresse oder die Adresse von Daten, auf die durch den Prozessorkern 20 zuzugreifen ist, mit einer im Austestmodul 30 gespeicherten Datenadresse oder durch den Prozessorkern 20 gelieferte Daten mit im Austestmodul 30 gespeicherten Daten, und liefert dem Prozessorkern 20 dann, wenn sie miteinander übereinstimmen, eine Austestausnahmeanfrage oder eine Austestunterbrechungsanfrage.
  • Die Softwareabbruchfunktion erzeugt einen Softwareabbruchbefehl zum erzeugen einer Austestausnahme, um den Prozessorkern 20 das Überwachungsprogramm ausführen zu lassen.
  • Die Austestunterbrechungsfunktion aktiviert ein Austestunterbrechungssignal zum Erzeugen einer Austestausnahme, um den Prozessorkern 20 das Überwachungsprogramm ausführen zu lassen.
  • Die Austestrücksetzfunktion aktiviert ein Austestrücksetzsignal zum Veranlassen eines Austestrücksetzens, um die internen Zustände des Prozessorkerns 20 und des Austestmoduls 30 zu initialisieren. Dann wird der Prozessorkern 20 in den Austestmode versetzt, um das Austestprogramm ab der Austestrücksetz-Vektoradresse FF20_0000 zu beginnen.
  • Die Ablaufverfolgungs-Triggerfunktion läßt den Mikroprozessor 10 ein externes Signal senden, das anzeigt, daß ein Befehl mit einer vorbestimmten Adresse ausgeführt wird, oder daß auf Daten bei einer vorbestimmten Adresse zugegriffen wird. In Reaktion auf das Signal schaltet die Austesteinheit 60 die Programmzähler-Ablaufverfolgungsfunktion EIN/AUS. Die Funktion wird ausgeführt, um der Austesteinheit 60 Triggerinformation zu liefern, nachdem das Austestmodul 30 die Adresse eines durch den Prozessorkern 20 auszuführenden Befehls mit der im Austestmodul 30 gespeicherten Befehlsadresse vergleicht, oder die Adresse von Daten, auf die durch den Prozessorkern 20 zuzugreifen ist, mit der im Austestmodul 30 gespeicherten Adresse, oder vom Prozessorkern 20 zur internen Austestschnittstelle und zum Prozessorbus 80 gesendete Daten mit im Austestmodul 30 gespeicherten Daten, und wenn sie miteinander übereinstimmen.
  • Die Details des Austestmoduls 30 werden erklärt werden.
  • Fig. 5 zeigt interne Blöcke des Austestmoduls 30.
  • Das Austestmodul 30 hat eine Befehls/Daten- Adressenabbruchschaltung 31, einen Programmzähler- Ablaufverfolger 32, eine Prozessorbus-Abbruchschaltung 33, eine serielle Überwachungsbusschaltung 34, eine Registerschaltung 35, eine externe Schnittstellenschaltung 36 und einen Taktgenerator 37.
  • Die Befehls/Daten-Adressenabbruchschaltung 31 ist über die interne Austestschnittstelle mit dem Prozessorkern 20 verbunden. Die Schaltung 31 vergleicht eine Befehlsadresse, die durch den Prozessorkern 20 geliefert wird, mit einer in der Registerschaltung 35 eingestellten Befehlsadresse, und wenn sie miteinander übereinstimmen, liefert sie dem Prozessorkern 20 eine Befehlsadressen-Abbruchausnahmeanfrage. Die Schaltung 31 vergleicht auch eine durch den Prozessorkern 20 gelieferte Datenadresse mit einer in der Registerschaltung 35 eingestellten Datenadresse, und wenn sie miteinander übereinstimmen, liefert sie dem Prozessorkern 20 eine Datenadressen-Abbruchausnahmeanfrage.
  • Der Programmzähler/Ablaufverfolger 32 ist mit dem Prozessorkern 20 über die interne Austestschnittstelle verbunden, um eine Programmzähler- Ablaufverfolgungsinformation zu verarbeiten, die durch den Prozessorkern 20 geliefert wird, und um der externen Schnittstellenschaltung 36 die verarbeitete Information zu liefern.
  • Die Prozessorbus-Abbruchschaltung 33 ist mit dem Prozessorkern 20 über den Prozessorbus 80 verbunden. Die Schaltung 33 überwacht Buszyklen im Prozessorbus 80, und liefert dann, wenn ein Buszyklus für die Adresse und die Daten, die in der Registerschaltung 35 eingestellt sind, ausgeführt wird, dem Prozessorkern 20 eine Ausnahmeanfrage.
  • Die serielle Überwachungsbusschaltung 34 ist mit dem Prozessorkern 20 über den Prozessorbus 80 verbunden und dient als Schnittstelle, wenn der Prozessorkern 20 das Überwachungsprogramm der Austesteinheit 60 ausführt.
  • Die Registerschaltung 35 enthält Steuerregister zum Steuern der Funktionen des Austestmoduls 30. Die Registerschaltung 35 ist mit dem Prozessorkern 20 über den Prozessorbus 80 und eine interne Austestschnittstelle verbunden, so daß der Prozessorkern 20 die Inhalte der Steuerregister lesen und schreiben kann. Die Inhalte der Steuerregister werden den Elementen des Austestmoduls 30 und des Prozessorkerns 20 zugeführt, um die Austestfunktionen zu steuern.
  • Die externe Schnittstellenschaltung 36 bildet eine Schnittstelle zum Programmzähler-Ablaufverfolger 32 und zur seriellen Überwachungsbusschaltung 34 des Austestmoduls 30 und des Prozessorkerns 20 mit der Austesteinheit 60.
  • Der Taktgenerator 37 teilt die Frequenz eines Taktsignals CLK und liefert der seriellen Überwachungsbusschaltung 34 ein Taktsignal CLK2. <
  • Externe Signale>
  • Das Austestsignal 30 verwendet die folgenden acht bestimmten Schnittstellensignale zum Kommunizieren mit der externen Austesteinheit 60:
  • 1. SDA0/TPC (Ausgabe)
  • 2. SDI/DINT* (Eingabe)
  • 3. DCLK (Ausgabe)
  • 4. DRESET* (Eingabe)
  • 5. bis 7. PCST[2 : 0] (Ausgabe)
  • 6. DBGE* (Eingabe)
  • (1) Austest-Taktsignal DCLK (Ausgabe)
  • Dieses Signal ist ein Ausgangs-Taktsignal zur Austesteinheit 60, um die Zeitgabe von Signalen in einem seriellen Überwachungsbus- und Programmzähler-Ablaufverfolgungs- Schnittstelle zu steuern. Für den Betrieb des seriellen Überwachungsbusses wird dieses Signal durch Halbieren der Frequenz eines Betriebstaktsignals des Prozessorkerns 20 ausgebildet.
  • (2) Austestrücksetzsignal DRESET* (Eingabe zum Pull-In- Anschluß)
  • Dieses Signal ist ein niedrig aktives Signal und wird aktiviert, um das Austestmodul 30 ungeachtet des Eingangssignals DBGE* zu initialisieren. Ein Anschluß für dieses Signal wird aufgetrennt, wenn die Austesteinheit 60 nicht verwendet wird.
  • (3) Programmzähler-Ablaufverfolgungsstatussignal PCST[2 : 0] (Ausgabe)
  • Dieses Signal stellt die folgenden Programmzähler- Ablaufverfolgungszustände und einen seriellen Überwachungsbuscode dar:
  • 111: Pipeline-Verzögerungszustand (STL)
  • 110: Zustand für eine genommene Verzweigung/einen genommenen Sprung (JMP) (mit einer Programmzählerausgabe)
  • 101: Zustand für genommene Verzweigung/genommenen Sprung (BRT) (ohne Programmzählerausgabe)
  • 100: Ausnahmezustand (EXP) (mit Ausnahme-Vektorcodeausgabe)
  • 011: Zustand für sequentielle Ausführung (SEQ) (Befehlsausführung)
  • 010: Ablaufderfolgungstrigger-Ausgangszustand (TST) bei einer Pipeline-Verzögerung
  • 001: Ablaufverfolgungs-Triggerausgangszustand (TSQ) bei einer Ausführung
  • 000: Austestmode (DBM) (0: niedriger Pegel, 1:. hoher Pegel)
  • (4) Austesteinheits-Freigabesignal DBGE* (Eingabe zum Pull- In-Anschluß)
  • Dieses Signal zeigt an, ob die Austesteinheit 60 angeschlossen ist oder nicht. Wenn die Austesteinheit 60 nicht angeschlossen ist, ist das Signal hoch, und wenn sie angeschlossen ist, ist das Signal niedrig.
  • Wenn das Signal DBGE* hoch ist, um anzuzeigen, daß die Austesteinheit 60 nicht angeschlossen ist, ist ein Signal DEV des Prozessorkerns 20 niedrig und ist eine Austestausnahme- Vektoradresse FF200200. Ein Anwender-Rücksetzsignal RESET* initialisiert die Funktionen des Austestmoduls 30 und sperrt die Funktionen der Austesteinheit 60. Zu dieser Zeit werden die Ausgangssignale SDA0/TPC, DCLK und PCST[2 : 0] hoch.
  • Wenn das Signal DBGE* niedrig ist, um anzuzeigen, daß die Austesteinheit 60 angeschlossen ist, ist das Signal DEV hoch und ist eine Austestausnahme-Vektoradresse FF20_0200 (in einem Überwachungsbereich). Das Anwender-Rücksetzsignal RESET* initialisiert das Austestmodul 30 nicht.
  • (5) Signal für serielle Daten- und Adressenausgabe/einen Zielprogrammzähler SDA0/TPC (Ausgabe)
  • Dieses Signal dient als Signal für eine serielle Daten- und Adressenausgabe SDA0, wenn das Signal PCST[2 : 0] den Austestmode (DBM) anzeigt, und als Zielprogrammzählersignal TPC, wenn das Signal PCST[2 : 0] den Austestmode nicht anzeigt.
  • Wenn das Signal PCST[2 : 0] den Austestmode anzeigt, liefert das Signal Daten-, Adressen-, Lese/Schreib- und Byte- Freigabesignale Bit für Bit in einer Reihenfolge. Vor einem Beginnen eines Buszyklus wird ein Start-Bit-Signal niedrigen Pegels für eine Taktperiode geliefert.
  • Bei einer Leseoperation werden die Signale in einer Reihenfolge vom Start-Bit niedrigen Pegels, über Adressenbits A[2] bis A[19] ein Lese/Schreib-Bit R/W* und Byte-Freigabe- Bits BE[0]* bis BE[3]* geliefert. Bei einer Schreiboperation werden die Signale in einer Reihenfolge ab dem Start-Bit niedrigen Pegels über A[2] bis A[19], R/W*, BE[0]* bis zu BE[3]* und zu Datenbits D[0] zu D[31] geliefert.
  • Wenn das Signal PCST[2 : 0] den normalen Mode anzeigt, liefert das Signal TPC die Zieladresse eines Verzweigungs/Sprung- Befehls und die Vektorzahl einer Ausnahme/Unterbrechung. Die Zieladresse wird sequentiell von einem Bit A[2] zu einem Bit A[31] geliefert.
  • (6) Signal für serielle Dateneingabe/Austestunterbrechung SDI/DINT* (Eingabe zum Pull-In-Anschluß) Dieses Signal dient als Signal für die serielle Überwachungsbusschnittstelle SDI, wenn das Signal PCST[2 : 0] den Austestmode anzeigt, und als Programmzähler- Ablaufverfolgungsschnittstellensignal DINT*, wenn das Signal PCST[2 : 0] den normalen Mode anzeigt.
  • Das Signal SDI ist ein Dateneingabesignal. Wenn ein externes Startbit, das für eine Taktperiode niedrig ist, bei einer Leseoperation empfangen wird, beginnt eine Dateneingabeoperation ab dem nächsten Takt. Wenn es eine Eingabe niedrigen Pegels bei einer Schreiboperation gibt, endet der Buszyklus.
  • Bei einer Leseoperation werden Bits in einer Reihenfolge ab einem Startbit niedrigen Pegels zu Datenbits D[0] bis D[31] geliefert. Bei einer Schreiboperation wird nur ein Endbit niedrigen Pegels empfangen.
  • Das Signal DINT* ist ein Austestunterbrechungseingabesignal von der Austesteinheit 60. Wenn die Austesteinheit 60 nicht verwendet wird, wird der Anschluß abgetrennt.
  • Fig. 6 zeigt die Details der Registerschaltung 35.
  • Die Registerschaltung 35 besteht aus einem Adressendecodierer 351 und einer Registereinheit 352.
  • Der Adressendecodierer 351 empfängt vom Prozessorkern 20 über den Prozessorbus 80 ein Adresseneingangssignal A[31 : 0], ein Lesesignal RD*, ein Schreibsignal WR*, ein Austestmodensignal DM und ein Kern-Taktsignal CLK. Beim Lesen eines Registers in der Registereinheit 352 empfängt der Adressendecodierer 351 eine Adresse, die das Register anzeigt, decodiert er die Adresse, aktiviert er ein Register-Lesesignal entsprechend dem Register und aktiviert er ein Lesebestätigungssignal RDACK* zum Prozessorkern 20.
  • Beim Schreiben von Daten zu einem Register in der Registereinheit 352 entsprechend einer gegebenen Adresse aktiviert der Adressendecodierer 351 ein Register- Schreibsignal entsprechend dem Register, das Lese- Bestätigungssignal RDACK* und ein Schreib-Bestätigungssignal WRACK*.
  • Auf die Registereinheit 352 kann unter dem normalen Mode nicht zugegriffen werden. In diesem Fall aktiviert der Adressendecodierer 351 nur das Lese-Bestätigungssignal RDACK* zum Prozessorkern 20 in einem Lesebuszyklus und das Schreib- Bestätigungssignal WRACK* zum Prozessorkern 20 in einem Schreibbuszyklus. Als Ergebnis ist ein zu lesender Wert nicht definiert und werden Schreibdaten ignoriert.
  • Selbst unter dem Austestmode kann auf die Register der Registereinheit 352 mit Ausnahme des Registers DCR nicht zugegriffen werden, wenn ein Speicherschutztreffer MP des Registers DCR eingestellt ist. In diesem Fall aktiviert der Adressendecodierer 351 nur das Lese-Bestätigungssignal RDACK* in einem Lesebuszyklus und das Schreib-Bestätigungssignal WRACK* in einem Schreibbuszyklus. Als Ergebnis ist ein zu lesender Wert nicht definiert und werden Schreibdaten ignoriert.
  • Die Tabelle 1 zeigt den Betrieb des Adressendecodierers 351. Tabelle 1
  • Die Registereinheit 352 enthält ein Austest-Steuerregister (DCR), ein Befehlsabbruchsstatus-(IBS-)Register, ein Datenabbruchstatus-(DBS-)Register, ein Prozessorbusabbruchstatus-(PBS-)Register, ein Befehlsabbruchadressen-0-(IBA0-)Register, ein Befehlsabbruchsteuerungs-0-(IBC0-)Register, ein Datenabbruchadressen-0-(DBA0-)Register, ein Datenabbruchsteuerungs-0-(DBC0-)Register, ein Prozessorbusabbruchadressen-0-(PBA0-)Register, ein Prozessorbusabbruchdaten-0-(PBD0-)Register, ein Prozessorbusabbruchdatenmasken-0-(PBM0-)Register und ein Prozessorbusabbruchsteuerungs-0-(PBC0-)Register.
  • Die Register werden rückgesetzt, wenn das Austest- Rücksetzsignal DRESET* aktiviert wird, oder wenn das Anwender-Rücksetzsignal RESET* aktiviert wird, wobei das Signal DBGE* hoch ist, um anzuzeigen, daß die Austesteinheit 60 abgetrennt ist.
  • Die Funktionen der Register werden erklärt werden.
  • Fig. 7 zeigt das Austeststeuerungsregister (DCR)
  • Ablaufverfolgungsmode-Bit TM (auf 0 rückgesetzt).
  • Dieses Bit spezifiziert eine Programmzähler- Ablaufverfolgungsoperation.
  • 0: Liefert Programmzählerablaufverfolgungsinformation in Echtzeit
  • 1: Liefert vollständige Programmzählerablaufverfolgungsinformation (ohne eine Echtzeitoperation sicherzustellen)
  • Das Bit TM wird dem Programmzähler-Ablaufverfolger 32 zugeführt.
  • Maskenanwender-Rücksetzbit MRst (auf 0 rücksetzen)
  • Dieses Bit spezifiziert eine Anwender-Rücksetzmaske.
  • 0: Maskieren eines Anwenderrücksetzens bei einer Austestausnahme
  • 1: Freigeben eines Anwenderrücksetzens bei einer Austestausnahme
  • Das Bit MRst wird der externen Schnittstellenschaltung 36 zugeführt.
  • Speicherschutzbit MP (auf 1 rücksetzen)
  • 0: Freigeben einer Schreiboperation zum Überwachungsbereich unter dem Austestmode
  • 1: Schützen eines Speicherbereichs (FF20_0000 bis FF3F_FFFF) mit Ausnahme des Registers DCR gegenüber einer Schreiboperation unter dem Austestmode
  • Das Bit MP wird dem Adressendecodierer 351 und der seriellen Überwachungsbusschaltung 34 zugeführt.
  • Maskieren eines nicht maskierten Unterbrechungsbits MNmI (auf 1 rücksetzen)
  • 0: Maskieren von NmI des Prozessorkerns 20 1: Freigeben von NmI
  • Das Bit MNmI wird dem Prozessorkern 20 zugeführt.
  • Maskieren eines Unterbrechungsbits MInt (auf 1 rücksetzen)
  • 0: Maskieren einer externen Unterbrechung (Int[5 : 0]*) des Prozessorkerns 20
  • 1: Freigeben einer externen Unterbrechung (Int[5 : 0]*) Das Bit MInt wird der externen Schnittstellenschaltung 36 zugeführt.
  • Endian-Speicherbit ENM
  • Dieses Bit zeigt den Wert eines Endian-Signals an, wenn eine Anwender-Rücksetzoperation ausgeführt wird. Dieses Bit wird nur gelesen, und eine Schreiboperation zu dem Bit wird ignoriert.
  • 0: Kleiner Endian
  • 1: Großer Endian
  • Das Bit ENM wird durch Zwischenspeichern des Endiansignals bei einem Anstieg des Kern-Taktsignals ausgebildet, während das Anwender-Rücksetzsignal RESET* niedrig ist.
  • Haltestatus-Bit HIS
  • Dieses Bit zeigt den Wert eines Haltesignals an, wenn das Signal DINT* aktiv ist. Das Bit HIS wird nur gelesen, und eine Schreiboperation zu diesem Bit wird ignoriert.
  • 0: Kein Haltezustand
  • 1: Haltezustand
  • Das Bit HIS wird durch Zwischenspeichern des Haltesignals bei einer Anstiegsflanke des Austestunterbrechungssignals DINT* ausgebildet.
  • Schlafstatusbit DzS
  • Dieses Bit zeigt den Wert eines Schlafsignals an, wenn das Signal DINT* aktiv ist. Das Bit DzS wird nur gelesen, und eine Schreiboperation zu diesem Bit wird ignoriert.
  • 0: Kein Schlafzustand
  • 1: Schlafzustand
  • Das Bit DzS wird durch Zwischenspeichern des Schlafsignals bei einer Abfallflanke des Austestunterbrechungssignals DINT* ausgebildet.
  • Fig. 8 zeigt das Befehlsabbruchadressen-0-Register IBA0.
  • Befehlsabbruchadressenfeld IBA
  • Dieses Feld des Registers IBA0 speichert eine Befehlsabbruchadresse bzw. Befehlshalteadresse, die eine virtuelle Adresse ist. Das Feld IBA wird der Befehls/Datenadressen-Abbruchschaltung 31 zugeführt.
  • Fig. 9 zeigt das Befehlsabbruchsteuerungs-0-Register IBC0.
  • Abbruchfreigabebit (Rücksetzen auf 0)
  • Dieses Bit spezifiziert die Gültigkeit der Befehlsadressenabbruchfunktion.
  • 0: Sperren der Befehlsadressenabbruchfunktion
  • 1: Freigeben der Befehlsadressenabbruchfunktion
  • Wenn die virtuelle Adresse eines auszuführenden Befehls mit einer im Register IBA0 eingestellten Adresse übereinstimmt, während das Bit BE 1 ist, wird eine Befehlsabbruchanfrage zum Prozessorkern 20 durchgeführt, um ein Bit BS0 des Registers IBS einzustellen. (Der Prozessorkern 20 erzeugt eine Befehlsadressenabbruchausnahme genau vor einem Ausführen des Befehls, dessen Adresse die Übereinstimmung durchgeführt hat.) Das Bit BE wird der Abbruchschaltung 31 zugeführt.
  • Ablaufverfolgungs-Triggerfreigabebit TE (Rücksetzen auf 0 =
  • Dieses Bit spezifiziert die Gültigkeit der Befehlsadressen- Ablaufverfolgungstriggerfunktion.
  • 0: Sperren der Befehlsadressen- Ablaufverfolgungstriggerfunktion
  • 1: Freigeben der Befehlsadressen- Ablaufverfolgungstriggerfunktion
  • Wenn die virtuelle Adresse eines ausgeführten Befehls mit einer im Register IBA0 eingestellten Adresse übereinstimmt, während das Bit TE 1 ist, um die freigegebene Befehlsadressen-Ablaufverfolgungstriggerfunktion anzuzeigen, stellt das Signal PCST[2 : 0] den Ablaufverfolgungstrigger- Ausgangszustand TST(010) oder TSQ(001) dar, um ein Bit BS0 des Registers IBS einzustellen bzw. zu setzen. Das Bit TE wird zur Abbruchschaltung 31 zugeführt.
  • Fig. 10 zeigt das Befehlsabbruchstatusregister IBS.
  • Abbruchkanalanzahlfeld BCN
  • Dieses Feld zeigt die Anzahl von Kanälen eines Befehlsabbruchs an. Das Feld wird nur gelesen, und eine Schreiboperation zu diesem Feld wird ignoriert.
  • 0000: Keiner (reserviert)
  • 0001: Ein Kanal
  • ...
  • 1111 : 15 Kanäle (reserviert)
  • Abbruchstatus-0-Bit BS0
  • Dies ist ein Statusbit, das das Auftreten eines Befehlsadressenabbruchs oder eines Befehlsadressen- Ablaufverfolgungstriggers anzeigt.
  • 0: Kein Befehlsadressenabbruch oder kein Befehlsadressen- Ablaufverfolgungstrigger des Kanals 0
  • 1: Auftreten einer Befehlsadressenabbruchausnahme oder eines Befehlsadressen-Ablaufverfolgungstriggers, während das Bit BE 1 ist oder TE 1 ist, und zwar im Register IBC0, was anzeigt, daß die virtuelle Adresse eines Befehls mit einer eingestellten Adresse übereinstimmt.
  • Das Bit BS0 wird durch Schreiben von 0 dorthin gelöscht und wird gesetzt, wenn ein BS0-Setzsignal von der Abbruchschaltung 31 aktiviert wird.
  • Fig. 11 zeigt das Datenabbruchadressen-0-Register DBA0.
  • Datenabbruchadressenfeld DBA
  • Dieses Feld speichert eine Datenabbruchadresse, die eine virtuelle Adresse ist. Dieses Feld wird der Abbruchschaltung 31 zugeführt.
  • Fig. 12 zeigt das Datenabbruchsteuerungs-0-Register DBCO.
  • Abbrechen eines Freigabebits BE (Rücksetzen auf 0)
  • Dieses Bit spezifiziert die Gültigkeit der Datenadressenabbruchsfunktion.
  • 0: Sperren der Datenadressenabbruchfunktion
  • 1: Freigeben der Datenadressenabbruchfunktion
  • Wenn die virtuelle Adresse von Daten, auf die zuzugreifen ist, mit einer im Register DBA0 eingestellten Adresse übereinstimmt, während das Bit BE 1 ist, wird eine Datenabbruchanfrage zum Prozessorkern 20 durchgeführt, und ein Bit BS0 des Registers DBS wird eingestellt bzw. gesetzt. Das Bit BE wird der Abbruchschaltung 31 zugeführt.
  • Ablaufverfolgungstrigger-Freigabebit TE (Rücksetzen auf 0)
  • Dieses Bit spezifiziert die Gültigkeit der Datenadressen- Ablaufverfolgungstriggerfunktion.
  • 0: Sperren der Datenadressen-Ablaufverfolgungstriggerfunktion
  • 1: Freigeben der Datenadressen- Ablaufverfolgungstriggerfunktion
  • Wenn die virtuelle Adresse von Daten, auf die zugegriffen wird, mit einer im Register DBA0 eingestellten Adresse übereinstimmt, während das Bit TE 1 ist, um die freigegebene Datenadressen-Ablaufverfolgungstriggerfunktion anzuzeigen, stellt das Signal PCST[2 : 0] den Ablaufverfolgungstrigger- Ausgangszustand TST(010) oder TSQ(001) dar, und das Bit BS0 des Registers DBS wird gesetzt. Das Bit TE wird der Abbruchschaltung 31 zugeführt.
  • Fig. 13 zeigt das Datenabbruchstatusregister DBS.
  • Abbruchkanalanzahlfeld BCN
  • Dieses Feld zeigt die Anzahl von Kanälen eines Datenabbruchs an. Dieses Feld wird nur gelesen, und eine Schreiboperation zu diesem Feld wird ignoriert.
  • 0000: Keiner (reserviert)
  • 0001: Ein Kanal
  • ...
  • 1111 : 15 Kanäle (reserviert)
  • Abbruchstatus-0-Bit BS0
  • Dies ist ein Statusbit, das anzeigt, daß ein Datenadressenabbruch oder ein Datenadressen- Ablaufverfolgungstrigger aufgetreten ist.
  • 0: Kein Datenadressenabbruch oder Datenadressen- Ablaufverfolgungstrigger des Kanals 0
  • 1: Datenadressenabbruchausnahme oder Datenadressen- Ablaufverfolgungstrigger, der bei der virtuellen Adresse von Daten aufgetreten ist, die mit einer eingestellten Adresse übereinstimmt, während das Bit BE 1 ist oder TE 1 ist, und zwar im Register DBC0.
  • Das Bit BS0 wird durch Schreiben von 0 dorthin gelöscht und wird gesetzt bzw. eingestellt, wenn ein BS0-Setzsignal von der Abbruchschaltung 31 aktiviert wird.
  • Fig. 14 zeigt das Prozessorbus-Abbruchadressenregister PBA0.
  • Prozessorbus-Abbruchadressenfeld PBA
  • Dieses Feld speichert eine Abbruchadresse der Prozessorbusabbruch/Ablaufverfolgungstriggerfunktion. Diese Adresse ist eine physikalische Adresse. Das Feld PBA wird der Prozessorbusabbruchschaltung 33 zugeführt.
  • Fig. 15 zeigt das Prozessorbusabbruchdaten-0-Register PBD0.
  • Prozessorbus-Abbruchdatenfeld PBD
  • Dieses Feld speichert Abbruchdaten der Prozessorbus- Abbruch/Ablaufverfolgungstriggerfunktion. Das Feld PBD wird der Prozessorbus-Abbruchsschaltung 33 zugeführt.
  • Fig. 16 zeigt das Prozessorbusmasken-0-Register PBM0.
  • Prozessorbus-Abbruchdatenmaskenfeld PBM
  • Dieses Feld zeigt Bits an, die den Vergleich von im Register PBD0 gespeicherten Daten gemäß der Prozessorbus- Abbruch/Ablaufverfolgungstriggerfunktion sperren (maskieren).
  • 0: Freigeben des Vergleichs eines entsprechenden Bits des Registers PBD0
  • 1: Vergleich eines entsprechenden Bits des Registers PBD0
  • Das Feld PBM wird der Prozessorbus-Abbruchschaltung 33 zugeführt.
  • Fig. 17 zeigt das Prozessorbussteuerungs-0-Register PBCO.
  • Abbruchfreigabebit BE (Rücksetzen auf 0)
  • Dieses Bit spezifiziert die Gültigkeit eines Prozessorbusabbruchs.
  • 0: Sperren eines Prozessorbusabbruchs
  • 1: Freigeben eines Prozessorbusabbruchs
  • Wenn eine Adresse und Daten mit eingestellten Werten übereinstimmen, wird eine Austestunterbrechungsanfrage zum Prozessorkern 20 durchgeführt. Das Bit BE wird der Prozessorbus-Abbruchschaltung 33 zugeführt.
  • Ablaufverfolgungstrigger-Freigabebit TE (Rücksetzen auf 0)
  • Dieses Bit spezifiziert die Gültigkeit eines Prozessorbus- Ablaufverfolgungstriggers.
  • 0: Sperren eines Prozessorbus-Ablauffolgetriggers
  • 1: Freigeben eines Prozessorbus-Ablaufverfolgungstriggers
  • Wenn eine Adresse und Daten mit eingestellten Werten übereinstimmen, stellt das Signal PCST[2 : 0] den Ablaufverfolgungstrigger-Ausgabezustand TST(010) oder TSQ(001) dar. Das Bit TE wird der Prozessorbus- Abbruchschaltung 33 zugeführt.
  • Bit für ein Befehlsholen aus einem Bereich, der nicht ein Cache -ist IFUC
  • Dieses Bit spezifiziert, ob eine Adresse und Daten mit eingestellten Werten verglichen werden oder nicht, und zwar für einen Befehl, der aus einem Bereich geholt wird, der kein Cache ist.
  • 0: Sperren des Vergleichs
  • 1: Freigeben des Vergleichs
  • Das Bit IFUC wird der Prozessorbus-Abbruchschaltung 33 zugeführt.
  • Bit für ein Laden von Daten aus einem Bereich, der kein Cache ist DLUC
  • Dieses Bit spezifiziert, ob der Vergleich einer Adresse oder von Daten gemäß Daten ausgeführt wird oder nicht, die aus einem Bereich geladen sind, der kein Cache ist.
  • 0: Sperren des Vergleichs
  • 1: Freigeben des Vergleichs
  • Das Bit DLUC wird der Prozessorbus-Abbruchschaltung 33 zugeführt.
  • Bit für ein Speichern von Daten zu einem Bereich, der kein Cache ist DSUC
  • Dieses Bit spezifiziert, ob der Vergleich einer Adresse oder von Daten ausgeführt wird oder nicht, wenn die Daten in einen Bereich gespeichert werden, der kein Cache ist.
  • 0: Sperren des Vergleichs
  • 1: Freigeben des Vergleichs
  • Das Bit DSUC wird der Prozessorbus-Abbruchschaltung 33 zugeführt.
  • Bit für ein Speichern von Daten zu einem Bereich, der ein Cache ist DSCA
  • Dieses Bit spezifiziert, ob der Vergleich einer Adresse oder von Daten ausgeführt wird oder nicht, wenn die Daten in einem Cache-Bereich gespeichert sind.
  • 0: Sperren des Vergleichs
  • 1: Freigeben des Vergleichs
  • Das Bit DSCA wird der Prozessor-Abbruchschaltung 33 zugeführt.
  • Fig. 18 zeigt das Prozessorbus-Abbruchstatusregister PBS.
  • Abbruchkanalanzahlfeld BCN
  • Dieses Feld zeigt die Anzahl von Kanälen eines Prozessorbusabbruchs an.
  • 0000: 0 Kanäle (reserviert)
  • 0001: Ein Kanal
  • ...
  • 1111 : 15 Kanäle (reserviert)
  • Abbruchstatus-0-Bit BS0 (Rücksetzen auf 0)
  • Dies ist ein Statusbit, das anzeigt, ob ein Prozessorbusabbruch oder ein Prozessorbus- Ablaufverfolgungstrigger aufgetreten ist oder nicht.
  • 0: Kein Prozessorbusabbruch oder Prozessorbus- Ablaufverfolgungstrigger des Kanals 0
  • 1: Prozessorbusabbruch oder Prozessorbus- Ablaufverfolgungstrigger des Kanals 0, während das Bit BE 1 ist oder TE 1 ist, und zwar im Register PBE0.
  • Das Bit BS0 wird durch Schreiben von 0 dorthin gelöscht. Wenn das Bit BE 1 ist, wird auch eine Austestunterbrechungsanfrage zum Prozessorkern 20 gelöscht. Das Bit BS0 wird gesetzt, wenn ein BS0-Setzsignal von der Prozessorbus-Abbruchschaltung 33 aktiviert wird.
  • Fig. 19 zeigt die Befehls/Datenadressen-Abbruchschaltung 31. Diese Schaltung hat einen Befehlsadressenkomparator 311, einen Datenadressenkomparator 312 und UND-Schaltungen 313, 314, 315 und 316.
  • Wenn das Abbruchfreigabebit BE oder das Triggerfreigabebit TE des Registers IBC0 gesetzt bzw. eingestellt wird und wenn ein Befehlsadressenfreigabesignal vom Prozessorkern 20 aktiviert wird, vergleicht der Komparator 311 eine Eingangsbefehlsadresse vom Prozessorkern 20 mit einer im Register IBA0 gespeicherten Adresse. Wenn sie miteinander übereinstimmen, liefert der Komparator 311 ein Signal, um das Bit BS0 des Registers IBS einzustellen. Wenn das Bit BE des Registers IBC0 zu dieser Zeit eingestellt wird, wird die Ausgabe der UND-Schaltung 313 aktiviert, um dem Prozessorkern 20 eine Befehlsadressen-Abbruchanfrage zu liefern. Wenn das Bit TE des Registers IBC0 eingestellt wird, wird die Ausgabe der UND-Schaltung 314 aktiviert, um dem Programmzähler- Ablaufverfolger 32 eine Befehlsadressen- Ablaufverfolgungstriggeranfrage zu liefern.
  • Wenn das Bit BE oder TE des Registers DBC0 eingestellt ist und wenn ein Datenadressenfreigabesignal vom Prozessorkern 20 aktiviert ist, vergleicht der Komparator 312 eine Eingangs- Datenadresse vom Prozessorkern 20 mit einer im Register DBA0 gespeicherten Adresse. Wenn sie miteinander übereinstimmen, liefert der Komparator 312 ein Signal, um das Bit BS0 des Registers DBS einzustellen. Wenn das Bit BE des Registers DBC0 zu dieser Zeit eingestellt wird, wird die Ausgabe der UND-Schaltung 315 aktiviert, um dem Prozessorkern 20 eine Datenadressen-Abbruchanfrage zu liefern. Wenn das Bit BE des Registers DBCO eingestellt wird, wird die Ausgabe der UND- Schaltung 316 aktiviert, um dem Programmzähler- Ablaüfverfolger 32 eine Datenadressen- Ablaufverfolgungstriggeranfrage zu liefern.
  • Fig. 20 zeigt die Details der Prozessorbus-Abbruchschaltung 33.
  • Die Schaltung 33 überwacht eine Busoperation im Prozessorbus und liefert dem Prozessorkern 20 eine Austestunterbrechungsanfrage, wenn eine Busoperation für eine Adresse und Daten, die in Registern eingestellt sind, auftritt.
  • Die Schaltung 33 hat einen Prozessorbus-Adressenkomparator 331, einen Datenkomparator 332 mit einer Maske und UND- Schaltungen 333, 334 und 335.
  • Wenn das Abbruchfreigabebit BE oder das Triggerfreigabebit TE des Registers PBC0 eingestellt ist, vergleicht der Komparator 331 eine Adresse im Prozessorbus mit einer im Register PBA0 eingestellten Adresse. Die Bits DSCA, DSUC, DLUC und IFUC des Registers PBC0 zeigen die Gültigkeit eines Vergleichs in bezug auf einen Bereich, der nicht im Cache ist/Cachebereich, Daten speichern/Daten laden und ein Befehlsholen an. Der Komparator 331 arbeitet, wie es in der Tabelle 2 gezeigt ist, gemäß einem Signal ID (das anzeigt, ob es ein Befehlsholen oder ein Datenzugriff ist), einem Lesesignal RD*, einem Schreibsignal WR* und einem Signal CACHE*. Tabelle 2
  • In einem Lesebuszyklus vergleicht der Datenkomparator 332, während das Lesesignal RD* niedrig ist, Eingangsdaten DIN[31 : 0] vom Prozessorbus 80 mit im Register PBG0 gespeicherten Daten nur für Bits, deren entsprechende Bits im Register PBM0 jeweils 0 sind. In einem Schreibbuszyklus vergleicht der Komparator 332, während das Schreibsignal WR* niedrig ist, Ausgangsdaten DOUT[31 : 0] des Prozessorbusses 80 mit den im Register PBD0 gespeicherten Daten nur für Bits, deren entsprechende Bits im Register PBM0 jeweils 0 sind.
  • Wenn eine jeweilige der Ausgaben der Komparatoren 331 und 332 hoch ist, d.h. wenn die Adresse und die Daten mit der Adresse und den Daten übereinstimmen, die eingestellt sind, wird die Ausgabe der UND-Schaltung 333 aktiviert, um die Registerschaltung 35 zum Einstellen des Bits BS0 des Registers PBS anzufragen. Wenn das Bit BE des Registers PBCO zu dieser Zeit eingestellt ist, wird die Ausgabe der UND- Schaltung 334 aktiviert, um dem Prozessorkern 20 eine Austestunterbrechungsanfrage zu liefern. Wenn das Bit TE des Registers PBC0 eingestellt ist, wird die Ausgabe der UND- Schaltung 335 aktiviert, um dem Programmzähler- Ablaufverfolger 32 eine Prozessorbus- Ablaufverfolgungstriggeranfrage zu liefern.
  • Fig. 21 zeigt die Details der seriellen Überwachungsbusschaltung 34. Die Schaltung 34 hat eine serielle Überwachungsbussteuerung 341, eine serielle Ausgangsschaltung 342 und eine serielle Eingangsschaltung 343.
  • Die serielle Überwachungsbussteuerung 341 empfängt ein Datenausgangssignal DOUT[31 : 0], ein Adressensignal A[31 : 20], ein Lesesignal RD*, ein Schreibsignal WR*, ein Coprozessor- Lesesignal CPRD*, ein Coprozessor-Schreibsignal CPWR* und ein Austestmodensignal DM vom Prozessorbus 80. Die Steuerung 341 empfängt auch das Taktsignal CLK2 vom Taktgenerator 37, das Bit MP des Registers DCR von der Registerschaltung 35 und das Signal SDI von der externen Schnittstellenschaltung 36.
  • Die Steuerung 341 liefert dem Prozessorbus 80 ein Lesebestätigungssignal RDACK*, ein Schreibbestätigungssignal WRACK*, ein Coprozessor-Lesebestätigungssignal CPWRACK* und ein Coprozessor-Schreibbestätigungssignal CPWRACK*. Die Steuerung 341 liefert der seriellen Ausgangsschaltung 342 ein serielles Überwachungsbus-Lese/Schreibsignal, ein serielles Überwachungsbus-Bytefreigabesignal, ein serielles Überwachungsbus-Datensignal und für ein Ausgangsschieberegister 344 der Schaltung 342 ein Datenladesignal und ein Ausgangsschiebesignal. Die Steuerung 341 liefert der seriellen Eingangsschaltung 343 ein Eingangsschiebesignal für ein Eingangsschieberegister 345 und ein Ausgangsfreigabesignal für einen Ausgangspuffer 346. Das serielle Überwachungsbus-Lese/Schreibsignal ist bei einer Lesebusoperation hoch und bei einer Schreibbusoperation niedrig.
  • Wenn das Datenladesignal von der Steuerung 341 zum Ausgangsschieberegister 344 aktiviert wird, werden ein Startbit (auf niedrig fixiert), Adressenbits A[1] bis A[19], ein serielles Überwachungsbus-Lese/Schreibsignal, ein serielles Überwachungsbus-Bytefreigabesignal und ein serielles Überwachungsbus-Datensignal vom LSB zum Ausgangsschieberegister 344 geladen. Wenn das Ausgangsschiebesignal zum Register 344 aktiviert wird, wird der Wert im Register 344 von MSB in Richtung zu LSB um ein Bit verschoben, und MSB wird auf hoch eingestellt. Der Wert von LSB des Ausgangsschieberegister 344 wird durch ein Ausgangssignal SDA0 getragen.
  • Wenn das Eingangsschiebesignal von der Steuerung 341 zum Eingangsschieberegister 345 aktiviert wird, wird der Wert des Registers 345 von LSB in Richtung zu MSB um ein Bit verschoben, und der Wert des Eingangssignals SDI wird in LSB eingestellt.
  • Der Betrieb der seriellen Überwachungsbusschaltung 34 der Fig. 31 wird erklärt werden.
  • Wenn der Prozessorkern 20 unter dem Austestmode auf einen Bereich von 0xFF20_0000 bis 0xFF2F_FFFF zugreift, oder wenn eine Coprozessor-Lese/Schreiboperation (CTC0, CFC0) unter dem Austestmode ausgeführt wird, wird auf dem Speicher im Debugger bzw. in der Austesteinheit 60 über die serielle Überwachungsbusschaltung 34 zugegriffen. Bei einer Schreiboperation unter Verwendung des seriellen Überwachungsbusses liefert die Schaltung 34 als das Ausgangssignal SDA0 ein Adressensignal, ein Bussteuersignal und ein Datensignal Bit für Bit in einer Serie. Bei einer Leseoperation liefert die Schaltung 34 als das Ausgangssignal SDA0 ein Adressensignal und ein Bussteuersignal und empfängt Daten, die durch das Eingangssignal SDI getragen werden, Bit für Bit in einer Serie.
  • Die serielle Überwachungsbusschaltung 34 arbeitet gemäß dem Taktsignal CLK2, das durch Halbieren der Frequenz des Betriebstaktsignals CLK des Prozessorkerns 20 erhalten wird.
  • a) Zugriff durch eine Lese/Schreib-Busoperation
  • Bei einer Lesebusoperation liefert der Prozessorkern 20 eine Adresse A[31 : 0] zum Zugreifen und aktiviert das Signal RD*. Wenn das Lesebestätigungssignal RDACK* aktiviert wird, werden Daten DIN[31 : 0] gelesen, und die Busoperation endet.
  • Bei einer Schreibbusoperation sendet der Prozessorkern 20 eine Adresse A[31 : 0] zum Zugreifen auf Daten DOUT [31 : 0] die zu schreiben sind, und aktiviert das Signal WR*. Wenn das Schreibbestätigungssignal WRACK* aktiviert ist, endet die Busoperation.
  • Wenn der Prozessorkern 20 eine Busoperation bezüglich des unten angegebenen Überwachungsbereichs unter dem Austestmode ausführt, wird auf die Austesteinheit 60 über die serielle Überwachungsbusschaltung 34 zugegriffen.
  • Der Überwachungsbereich erstreckt sich zwischen 0xFF20_0000 und 0xFF2F_FFFF für ein Megabyte.
  • (A[31 : 20] = 1111_1111_0010 (0: niedrig, 1: hoch)
  • Die Schreibbusoperation verwendet beispielsweise einen Speicherbefehl (SW) zum Schreiben von Daten zum Speicher. Das Folgende ist ein Beispiel des Speicherbefehls:
  • sw r8 0x0004 (r9)
  • Bei diesem Beispiel wird eine Speicheradresse durch Addieren eines 16-Bit-Offsetwerts 0 · 0004 zu einem allgemeinen Register r9 erhalten. Zum Zugreifen auf den Speicherbereich muß der Wert des allgemeinen Registers im voraus auf 0xFF2O_0000 bis 0xFF2F_0000 eingestellt werden.
  • Die serielle Überwachungsbusschaltung 34 liefert als das Ausgangssignal SDA0 das Adressensignal A[19 : 2] von niederwertigeren Bits, und ein Signal hohen Pegels bei einer Leseoperation oder ein Signal niedrigen Pegels bei einer Schreiboperation. Danach wird das Bytefreigabesignal BE[3 : 0] von niederwertigeren Bits geliefert. Bei einer Leseoperation werden 32-Bit-Daten als das Eingangssignal SDI empfangen und werden als Daten DIN[31 : 0] zum Prozessorbus 80 geliefert. Bei einer Schreiboperation werden Daten DOUT[31 : 0] vom Prozessorbus 80 durch das Ausgangssignal SDA0 getragen.
  • Das 18-Bit-Adressensignal A[19 : 2] vom Prozessorkern 20 wird zum Zugreifen auf den Speicherraum von einem Megabyte verwendet.
  • Das Bytefreigabesignal BE[3 : 0] des Prozessorkerns 20 wird dem seriellen Überwachungsbus zugeführt, um auf ein Byte, ein Halbwort oder drei Bytes zuzugreifen. Der serielle Bus überträgt jedoch 32-Bit-Daten D[31 : 0] selbst für einen Zugriff auf ein Byte, ein Halbwort oder drei Bytes. Beim Schreiben von Daten von einem Byte, einem Halbwort oder drei Bytes werden Bitpositionen des Signals BE[3 : 0] entsprechend den erforderlichen Bytepositionen der Daten D[31 : 0] eingestellt. Bei einer Leseoperation werden Bytepositionen von Daten entsprechend inaktiver Bitpositionen des Signals BE[3 : 0] durch den Prozessorkern 20 ignoriert.
  • Wenn der Überwachungsbereich im Austestmode mit dem Bit MP des Registers DCR geschützt wird, das 1 ist, wird eine Schreiboperation zu einem Bereich von FF20_0000 bis FF2F_FFFF ignoriert. In diesem Fall bringt die serielle Überwachungsbusschaltung 34 nur das Signal WRACK* zum Prozessorkern 20 zurück, um die Busoperation zu beenden.
  • Beim Lesen des Bereichs von FF20_0000 bis FF2F_FFFF im Austestmode werden richtige Daten vom seriellen Überwachungsbus ungeachtet des Werts des Bits MP gelesen.
  • Im normalen Mode wird eine Schreiboperation zum Überwachungsbereich von FF20_0000 bis FF2F_FFFF ignoriert, und das Ergebnis einer Leseoperation ist nicht definiert. Zu dieser Zeit bringt die serielle Überwachungsbusschaltung 34 das Signal WRACK* oder RDACK* zum Prozessorkern 20 zurück und beendet die Busoperation.
  • b) Zugriff durch eine Coprozessor-Busoperation (CTC0/CFC0)
  • Wenn der Befehl CFC0 ausgeführt wird, führt der Prozessorkern 20 eine Lesebusoperation des Coprozessors aus, und wenn der Befehl CTC0 ausgeführt wird, eine Schreibbusoperation des Coprozessors. Bei der Coprozessor-Busoperation werden die Befehle CFC0 und CTC0 zur Adresse A[31 : 0] des Prozessorbusse wie folgt geliefert wie sie sind:
  • A[31 : 0] COP0 CT rt rd 0
  • A[31 : 0] COP0 CF rt rd 0
  • CFC0 (0: niedriger Pegel, 1: hoher Pegel)
  • rt: allgemeines Register
  • rd: Steuerregister des Coprozessors (keine Signifikanz für den seriellen Überwachungsbus)
  • Bei einer Coprozessor-Leseoperation aktiviert der Prozessorkern 20 das Signal CPRD*, und wenn das Coprozessor- Lesebestätigungssignal CPRDACK* aktiviert ist, liest er Daten DIN[31 : 0] und beendet die Busoperation.
  • Bei einer Coprozessor-Schreiboperation aktiviert der Prozessorkern 20 das Signal CPWR* und liefert als das Datenbussignal DOUT[31 : 0] den Wert eines allgemeinen Registers im Prozessorkern 20. Wenn das Coprozessor- Schreibbestätigungssignal CPWRACK* aktiviert ist, beendet der Prozessorkern 20 die Busoperation.
  • Der Prozessorkern 20 führt eine Coprozessor-Busoperation mit den Befehlen CTC0 und CFC0 aus, um über den seriellen Überwachungsbus auf die Austesteinheit 60 zuzugreifen.
  • Die serielle Überwachungsbusschaltung 34 liefert als das Ausgangssignal SDA0 Buszyklussignale mit der Rate bzw. Geschwindigkeit von einem Bit pro Taktperiode. Das Adressensignal A[19 : 2] des Prozessorkerns 20 wird von niederwertigeren Bits geliefert. Danach wird ein Signal hohen Pegels bei der Coprozessor-Leseoperation geliefert, und wird bei der Coprozessor-Schreiboperation ein Signal niedrigen Pegels geliefert. Ein Bytefreigabesignal im seriellen Überwachungsbus ist ein. Signal niedrigen Pegels für vier Taktperioden, ohne das Signal BE[3 : 0] des Prozessorbusses zu beachten.
  • In Antwort auf den Befehl CFC0 werden 32-Bit-Daten als das Eingangssignal SDI empfangen, das als das Datensignal DIN[31 : 0] zum Prozessorbus zugeführt wird. In Antwort auf den Befehl-CTC0 wird das Datenausgangssignal DOUT[31 : 0] vom Prozessorbus als das Ausgangssignal SDA0 zugeführt.
  • Im Austestmode wird eine Schreiboperation des seriellen Überwachungsbusses gemäß dem Befehl CTC0 ungeachtet des Schutzes des Überwachungsbereichs ausgeführt, d.h. ungeachtet des Werts des Bits MP des Registers DCR. Ebenso wird eine Leseoperation des seriellen Überwachungsbusses gemäß dem Befehl CFC0 ausgeführt.
  • Im normalen Mode wird die Schreiboperation gemäß dem Befehl CTC0 ignoriert, und das Ergebnis der Leseoperation gemäß dem Befehl CFC0 ist nicht definiert. Das Austestmodul bringt nur die Signale CPRDACK* und CDWRACK* zum Prozessorkern 20 zurück und beendet die Busoperation.
  • Zeitdiagramme der seriellen Überwachungsbusoperätionen werden erklärt werden.
  • a) Leseoperation des seriellen Überwachungsbusses
  • Fig. 22 ist ein Zeitdiagramm, das eine Leseoperation des seriellen Überwachungsbusses zeigt.
  • (1) Im Zyklus 1 beginnt der Prozessorkern 20 die Leseoperation zu dem Bereich von 0xFF2O_0000 bis 0xFF2F_FFFF (A[31 : 20] = 1111_1111_0010). Der Prozessorkern 20 liefert eine Adresse A[31 : 0] zum Zugreifen und aktiviert das Signal RD*. Das Bytefreigabesignal BE[3 : 0] für zu lesende Bytepositionen wird aktiviert.
  • (2) Im Zyklus 2 bestätigt die serielle Überwachungsbusschaltung 34 den Beginn der Leseoperation und liefert als das Ausgangssignal SDA0 ein Signal niedrigen Pegels für eine Taktperiode des Taktsignals CLK2, das durch Teilen der Frequenz des Kern-Taktsignals CLK ausgebildet ist.
  • (3) In den Zyklen 3 bis 25 liefert die Schaltung 34 als das Ausgangssignal SDA0 Adressenbits A[2] bis A[19], ein Bit hohen Pegels (das die Leseoperation anzeigt) und Bytefreigabebits BE[0]* bis BE[3]*, die durch den Prozessorkern 20 geliefert werden, bei jeder Taktperiode des Signals CLK2.
  • (4) Im Zyklus n liefert die Austesteinheit 60 als das Signal SDI ein Signal niedrigen Pegels für eine Taktperiode vor einem Liefern von Daten. Nach einem Erfassen des Signals niedrigen Pegels empfängt die Schaltung 34 in Zyklen n + 1 bis n + 32 Daten D[0] bis D[31] mit der Rate von einem Bit pro Taktperiode.
  • (5) Im Zyklus n + 33 aktiviert die Schaltung 34 das Bestätigungssignal RDACK* zum Prozessorkern 20 und liefert als das Datensignal DIN[31 : 0] die Lese-32-Bit-Daten D[31 : 0].
  • (6) Im Zyklus n + 33 liest der Prozessorkern 20 das Datensignal DIN[31 : 0]. Dies beendet die Leseoperation.
  • b) Schreiboperation auf dem seriellen Überwachungsbus
  • Fig. 23 ist ein Zeitdiagramm, das eine Schreiboperation des seriellen Überwachungsbusses zeigt.
  • (1) Im Zyklus 1 beginnt der Prozessorkern 20 die Schreiboperation zum Bereich von 0xFF2O_0000 bis 0xFF2F_FFFF (A[31 : 20] = 1111_1111_0010). Der Prozessorkern 20 liefert eine Adresse A[31 : 0] zum Zugreifen und aktiviert das Signal WR*. Das Bytefreigabesignal BE[3 : 0] für Bytepositionen, wo Daten geschrieben werden, wird aktiviert.
  • (2) Im Zyklus 2 bestätigt die serielle Überwachungsbusschaltung 34 den Beginn der Schreiboperation und liefert als das Ausgangssignal SDA0 ein Signal niedrigen Pegels für eine Taktperiode des Taktsignals CLK2.
  • (3) In den Zyklen 3 bis 57 liefert die Schaltung 34 als das Ausgangssignal SDA0 Adressenbits A[2] bis A[19], ein Bit niedrigen Pegels (das die Schreiboperation anzeigt), Bytefreigabebits BE[0]* bis BE[3]* und durch den Prozessorkern 20 gelieferte Schreibdaten DOUT[0] bis DOUT [31]
  • (4) Im Zyklus n beendet die Austesteinheit 60 das Schreiben von Daten und liefert als das Eingangssignal SDI ein Signal niedrigen Pegels für eine Taktperiode.
  • (5) Im Zyklus n + 1 erfaßt die Schaltung 34 ein Signal niedrigen Pegels und aktiviert das Schreibbestätigungssignal WRACK* zum Prozessorkern 20.
  • (6) Im Zyklus n + 1 beendet der Prozessorkern 20 die Schreiboperation.
  • c) Lesebusoperation durch den Befehl CFC0
  • Fig. 24 ist ein Zeitdiagramm, das eine Lesebusoperation gemäß dem Befehl CFC0 zeigt.
  • (1) Im Zyklus 1 beginnt der Prozessorkern 20 die Coprozessor- Lesebusoperation gemäß dem Befehl CFC0, liefert eine Adresse A[31 : 21] = 01000000010zum Prozessorbus und aktiviert das Signal CPRD*.
  • (2) Im Zyklus 2 bestätigt die serielle Überwachungsbusschaltung 34 den Beginn der Leseoperation und liefert als das Ausgangssignal SDA0 ein Signal niedrigen Pegels für eine Taktperiode des Signals CKL2.
  • (3) In-den Zyklen 3 bis 20 liefert die Schaltung 34 als das Ausgangssignal SD0 Adressenbits A[2] bis A[19] der Adresse A[31 : 21]. Im Zyklus 21 wird ein Signal hohen Pegels für eine Taktperiode geliefert, um die Leseoperation anzuzeigen. In den Zyklen 22 bis 25 wird ein Signal niedrigen Pegels für vier Taktperioden ohne Berücksichtigung des Bytefreigabesignals des Prozessorbusses geliefert.
  • (4) Im Zyklus n liefert die Austasteinheit 60 als das Eingangssignal SDI ein Signal niedrigen Pegels für eine Taktperiode vor einem Liefern von Daten. Die Schaltung 34 erfaßt das Signal niedrigen Pegels und liest Daten D[0] bis D[31] jeweils in den Zyklen n + 1 bis n + 32.
  • (5) Im Zyklus n + 33 aktiviert die Schaltung 34 das Coprozessor-Lesebestätigungssignal CPRDACK* zum Prozessorkern 20 und liefert als das Datenbussignal DIN[31 : 0] die Lese-32- Bit-Daten D[31 : 0].
  • (6) Im Zyklus n + 33 liest der Prozessorkern 20 das Signal DIN[31 : 0] und beendet die Coprozessor-Lesebusoperation.
  • d) Schreibbusoperation gemäß dem Befehl CTC0
  • Fig. 25 ist ein Zeitdiagramm, das eine Schreibbusoperation gemäß dem Befehl CTC0 zeigt.
  • (1) Im Zyklus 1 beginnt der Prozessorkern 20 die Coprozessor- Schreibbusoperation gemäß dem Befehl CTC0, liefert eine Adresse A[31 : 21] = 0100_0000_110 des Prozessorbusses und aktiviert das Signal CPWR*.
  • (2) Im Zyklus 2 bestätigt die serielle Überwachungsbusschaltung 34 den Beginn der Schreiboperation und liefert als das Ausgangssignal SDA0 ein Signal niedrigen Pegels für eine Taktperiode des Signals CLK2.
  • (3) In den Zyklen 3 bis 20 liefert die Schaltung 34 als das Ausgangssignal SDA0 Adressenbits A[2] bis A[19] der Adresse A[31 : 21]. Im Zyklus 21 wird ein Signal niedrigen Pegels, das die Schreiboperation anzeigt, für eine Taktperiode geliefert. In den Zyklen 22 bis 25 wird das Ausgangssignal SDA0 für vier Taktperioden niedrig, ohne das Bytefreigabesignal des Prozessorbusses zu berücksichtigen. In den Zyklen 26 bis 57 liefert das Ausgangssignal SDA0 Datenbusausgangsbits DOUT[0] bis DOUT[31].
  • (4) Im Zyklus n beendet die Austesteinheit 60 das Schreiben der Daten und liefert als das Eingangssignal SDI ein Signal niedrigen Pegels für eine Taktperiode.
  • (5) Im Zyklus n + 1 erfaßt die Schaltung 34 das Signal niedrigen Pegels und aktiviert das Coprozessor- Schreibbestätigungssignal CPWRACK* zum Prozessorkern 20.
  • (6) Im Zyklus n + 1 beendet der Prozessorkern 20 die Coprozessor-Schreibbusoperation.
  • Fig. 26 ist ein Ablaufdiagramm, das die Operation der seriellen Überwachungsbussteuerung 341 zeigt.
  • Die Steuerung 341 überwacht die Operationen des Prozessorbusses 80.
  • (1) In den Schritten S120, S124 und S125 beginnt eine Leseoperation des seriellen Überwachungsbusses, weil eine Adresse A[31 : 20] 0xFF2 anzeigt, das Lesesignal RD* aktiviert (niedrig) ist und das Signal DM hoch ist, um den Austestmode anzuzeigen.
  • (2) In den Schritten S120, S124, S132 und S133 wird das Signal-RDACK* des Prozessorkerns 20 aktiviert, um die Busoperation zu beenden, weil das Signal DM niedrig ist, um den normalen Mode anzuzeigen, obwohl A[31 : 20] = 0xFF2 und das Signal RD* aktiviert (niedrig) ist.
  • (3) In den Schritten S120, S121, S126 und S127 beginnt eine Schreiboperation des seriellen Überwachungsbusses, weil A[31 : 20] = 0xFF2, das Schreibsignal WR* aktiviert (niedrig) ist, das Signal DM hoch ist, um den Austestmode anzuzeigen, und das Bit MP des Registers DCR 0 ist, um einen Schreibfreigabezustand anzuzeigen.
  • (4) In den Schritten S120, S121, S126, S134 und S135 wird das Signal WRACK* des Prozessorkerns 20 aktiviert, um die Busoperation zu beenden, weil das Signal DM niedrig ist, um den normalen Mode anzuzeigen, oder das Bit MP des Registers DCR 1 ist, um einen Schreibverhinderungszustand anzuzeigen, obwohl A[31 : 20] = 0xFF2 und das Schreibsignal WR* aktiviert (niedrig) ist.
  • (5) In den Schritten S120, S121, S122, S128 und S129 beginnt eine Coprozessor-Leseoperation des seriellen Überwachungsbusses, weil A[31 : 21] = 0100_0000_010, das Coprozessor-Lesebusoperationssignal CPRD* für den Befehl CFC0 aktiviert (niedrig) ist und das Signal DM hoch ist, um den Austestmode anzuzeigen.
  • (6) In den Schritten S120, S121, S122, S128, S136 und S137 wird das Signal CPRDACK* des Prozessorkerns 20 aktiviert, um die Busoperation zu beenden, weil das Signal DM niedrig ist, um den normalen Mode anzuzeigen, obwohl A[31 : 21] = 0100_0000_010 und das Signal CPRD* für den Befehl CFC0 aktiviert (niedrig) ist.
  • (7) In den Schritten S120, S121, S122, S123, S130 und S131 beginnt die Coprozessor-Leseoperation des seriellen Überwachungsbusses, weil A[31 : 21] = 0100_0000_110, das Coprozessor-Schreibbusoperationssignal CPWR* für den Befehl CTC0 aktiviert (niedrig) ist und das Signal DM hoch ist, um den Austestmode anzuzeigen.
  • (8) In den Schritten S120, S121, S122, S123, S138 und S139 wird das Signal CPWRACK* des Prozessorkerns 20 aktiviert, um die Busoperation zu beenden, weil das Signal DM niedrig ist, um den normalen Mode anzuzeigen, obwohl A[31 : 21] = 0100_0000_110 und das Signal CPWR* für den Befehl CTC0 aktiviert (niedrig) ist.
  • Fig. 27 ist ein Ablaufdiagramm, das die Leseoperation der seriellen Überwachungsbusschaltung 34 zeigt.
  • Bei der Leseoperation liefert die serielle Überwachungsbussteuerung 341 im Zyklus 1 dem Ausgangsschieberegister 344 ein Lese/Schreibsignal mit hohem Pegel des seriellen Überwachungsbusses, ein Bytefreigabesignal des seriellen Überwachungsbusses BE[3 : 0] und ein Datensignal hohen Pegels des seriellen Überwachungsbusses und aktiviert ein Datenladesignal.
  • Bei einer Coprozessor-Lesebusoperation gemäß dem Befehl CFC0 liefert die serielle Überwachungsbussteuerung 341 dem Ausgangsschieberegister 344 ein Lese/Schreib-Signal hohen Pegels des seriellen Überwachungsbusses, ein Bytefreigabesignal niedrigen Pegels und ein Datensignal hohen Pegels des seriellen Überwachungsbusses und aktiviert das Datenladesignal. Das Schieberegister 344 speichert diese Werte und einen niedrigen Pegel bei einem LSB zwischen.
  • Das Ausgangssignal SBA0 wird auf niedrig eingestellt. Die Steuerung 341 aktiviert das Ausgangsschiebesignal im Zyklus 2.
  • In den Zyklen 3 bis 25 aktiviert die Steuerung 341 das Ausgangsschiebesignal. Die durch das Register 344 im Zyklus 1 zwischengespeicherten Bits werden als das Ausgangssignal SBA0 mit der Rate von einem Bit pro Taktperiode zugeführt.
  • In den Zyklen 26 bis n wartet die Steuerung 341 darauf, daß das Eingangssignal SDI auf niedrig aktiviert wird.
  • In den Zyklen n + 1 bis n + 32 aktiviert die Steuerung 341 das Eingangsschiebesignal zur seriellen Eingangsschaltung 343 und das Eingangssignal SDI trägt Eingangsdaten D[0] bis D[31] zum Eingangsschieberegister 345.
  • Im Zyklus n + 33 aktiviert die Steuerung 341 das Lesebestätigungssignal RDACK* des Prozessorbusses bei der Leseoperation. Bei der Coprozessor-Lesebusoperation aktiviert die Steuerung 341 das Coprozessor-Lesebestätigungssignal CPRDACK*. Das Ausgangsfreigabesignal zur seriellen Eingangsschaltung 343 wird aktiviert und die Daten D[31 : 0] it Eingangsschieberegister 345 wird durch das Datenbuseingangssignal DIN[31 : 0] getragen.
  • Fig. 28 ist ein Ablaufdiagramm, das die Schreiboperation der seriellen Überwachungsbusschaltung 34 zeigt.
  • Bei der Schreiboperation liefert die serielle Überwachungsbussteuerung 341 im Zyklus 1 dem Ausgangsschieberegister 344 das Lese/Schreib-Signal niedrigen Pegels des seriellen Überwachungsbusses, das Bytefreigabesignal des seriellen Überwachungsbusses BE[3 : 0] und das Datensignal des seriellen Überwachungsbusses DOUT[31 : 0] und aktiviert das Datenladesignal.
  • Bei der Coprozessor-Schreibbusoperation gemäß dem Befehl CTC0 liefert die Steuerung 341 dem Register 344 das Lese/Schreib- Signal niedrigen Pegels des seriellen Überwachungsbusses, das 4-Bit-Bytefreigabesignal niedrigen Pegels des seriellen Überwachungsbusses und das Datensignal des seriellen Überwachungsbusses DOUT[31 : 0] und aktiviert das Datenladesignal. Das Register 344 speichert diese Werte und einen niedrigen Pegel bei einem LSB im Zyklus 1 zwischen.
  • Im Zyklus 2 wird das Ausgangssignal SDA0 auf niedrig eingestellt. Die Steuerung 341 aktiviert das Ausgangsschiebesignal.
  • In den Zyklen 3 bis 57 aktiviert die Steuerung 341 das Ausgangsschiebesignal. Die durch das Register 344 im Zyklus 1 zwischengespeicherten Werte werden durch das Ausgangssignal SDA0 mit der Rate eines Bits pro Taktperiode getragen.
  • In den Zyklen 58 bis n wartet die Steuerung 341 darauf, daß das Eingangssignal SDI auf niedrig aktiviert wird.
  • Im Zyklus n + 1 aktiviert die Steuerung 341 das Schreibbestätigungssignal WRACK* zum Prozessorbus bei der Schreiboperation. Wenn sie die Coprozessor-Busoperation ist, aktiviert die Steuerung 341 das Coprozessor- Schreibbestätigungssignal CPWRACK*.
  • Der Programmzähler-Ablaufverfolger 32 wird erklärt werden.
  • Ein indirekter Sprung, ein direkter Sprung und eine Verzweigung sind wie folgt definiert:
  • Ein in einem Register oder einem Speicher gespeicherter Wert wird als die Zieladresse eines Sprungs verwendet. Ein Sprungbefehl selbst spezifiziert nämlich die Zieladresse des Sprungs nicht.
  • Direkter Sprung
  • Die Zieladresse eines Sprungbefehls wird durch einen Programmzähler und einen im Befehl enthaltenen Code spezifiziert.
  • Verzweigung (oder bedingte Verzweigung)
  • Dies ist ein Sprungbefehl, dessen Zielort durch einen Programmzähler und die Summe von Teilen von Codes, die im Befehl enthalten sind, spezifiziert wird. Ob die Verzweigung tatsächlich ausgeführt wird oder nicht, wird gemäß Bedingungen bestimmt. Wenn die Verzweigung tatsächlich ausgeführt wird, wird sie "genommene Verzweigung" genannt und wenn sie nicht ausgeführt wird, wird sie "nicht genommene Verzweigung" genannt.
  • Fig. 29 zeigt die Details des Programmzähler-Ablaufverfolgers 32. Der Ablaufverfolger 32 empfängt die folgenden Signale vom Prozessorkern 20:
  • Austestmodensignal DM
  • Dieses Signal zeigt an, ob der aktuelle Mode der Austestmode oder der normale Mode ist.
  • Pipelineausführungssignal
  • Dieses Signal zeigt die Ausführung eines Befehls an.
  • 30-Bit-Ziel-Programmzähler-[31 : 2]-Signal
  • Dieses Signal zeigt die Zieladresse oder einen Verzweigungsbefehl oder einen Sprungbefehl an, oder die Vektoradresse eine Ausnahme und wird dann freigegeben, wenn das unten angegebene indirekte Sprungsignal, das direkte Sprungsignal, ein Signal für eine genommene Verzweigung, ein Signal für eine verursachte Ausnahme aktiviert werden.
  • Indirektes Sprungsignal
  • Dieses Signal zeigt an, daß ein indirekter Sprung ausgeführt worden ist.
  • Direktes Sprungsignal
  • Dieses Signal zeigt an, daß ein direkter Sprung ausgeführt worden ist.
  • Signal für genommene Verzweigung.
  • Dieses Signal zeigt an, daß ein Verzweigungsbefehl ausgeführt und genommen worden ist.
  • Signal für eine veranlaßte Ausnahme
  • Dieses Signal zeigt an, daß eine Ausnahme aufgetreten ist.
  • Der Ablaufverfolger 32 liefert dem Prozessorkern 20 die folgenden Signale zum vollständigen Verfolgen des Programmzählers:
  • Pipelineverzögerungsanfragesignal
  • Dieses Signal verzögert einen Pipelineprozeß des Prozessorkerns 20, um dem Ziel-Programmzähler eine Ausgabe vollständig liefern zu lassen. Wenn der nächste indirekte Sprung auftritt, während der Ablaufverfolger 32 das Ziel- Programmzählersignal eines indirekten Sprungs empfängt, aktivierter der Ablaufverfolger 32 das Pipelineverzögerungsanfragesignal zum Verzögern eines Pipelineprozesses des Prozessorkerns 20. Wenn das Ziel- Programmzählersignal einmal endet, wird das Pipelineverzögerungsanfragesignal negiert, um den Pipelineprozeß wieder aufzunehmen.
  • Der Ablaufverfolger 32 empfängt eine Triggeranfrage von der Befehls/Datenadressen-Abbruchschaltung 31 oder von der Prozessorbus-Abbruchschaltung 33. Der Ablaufverfolger 32 empfängt das Bit TM des Registers TCR und das Austestfreigabesignal DBGE*. Wenn das Signal DBGE* auf niedrig aktiviert wird, zeigt es an, daß die Austesteinheit bzw. der Debugger 60 gültig ist.
  • Der Ablaufverfolger 32 konvertiert eine Programmzähler- Ablaufverfolgungsinformation, die durch den Prozessorkern 20 unter dem normalen Mode geliefert wird, in eine Ein-Bit- Programmzählerausgabe TPC und ein 3-Bit-Statussignal PCST[2 : 0], die der Austesteinheit 60 zugeführt werden.
  • Die Signale PCST[2 : 0] und TPC werden erklärt werden.
  • a) PCST[2 : 0]
  • Der Ausführungszustand eines Befehls wird durch das Signal PCST[2 : 0] mit der Rate von einem Bit pro Taktperiode getragen. (0: niedrig, 1: hoch)
  • 111: Pipelineverzögerungszustand (STL)
  • Dieser Zustand zeigt an, daß die Ausführung eines Befehls nicht beendet worden ist, wenn es keine Ablaufverfolgungstriggeranfrage gibt.
  • 110: Zustand für genommene Verzweigung/genommenen Sprung (JMP) (mit Programmzählerausgabe)
  • Dieser Zustand zeigt an, daß ein Befehl für eine genommene Verzweigung oder einen Sprung ausgeführt worden ist, und die Zieladresse davon gelangt dazu, durch das Signal TPC getragen zu werden.
  • 101: Zustand für genommene Verzweigung/genommenen Sprung (BRT) (ohne Programmzählerausgabe)
  • Dieser Zustand zeigt an, daß ein Befehl für eine genommene Verzweigung oder einen direkten Sprung ausgeführt worden ist und keine Zieladresse durch das Signal TPC getragen wird.
  • 100: Ausnahmezustand (EXP) (mit einer Ausnahmevektorcodeausgabe)
  • Dieser Zustand zeigt an, daß eine Ausnahme aufgetreten ist und daß ein Ausnahmevektorcode dahin geht, durch das Signal TPC getragen zu werden.
  • 0ll: Zustand einer sequentiellen Ausführung (SEQ) (Befehlsausführung)
  • Dieser Zustand zeigt an, daß ein Befehl nicht unter den Zustand JMP, BRT oder TSQ ausgeführt worden ist. Dieser Zustand wird auch dann gebildet, wenn ein Verzweigungsbefehl noch nicht genommen worden ist.
  • 010: Ablaufverfolgungstriggerausgabezustand (TST) bei einer Pipelineverzögerung
  • Dieser Zustand zeigt an, daß ein Adressen- Ablaufverfolgungstrigger oder ein Prozessorbusablaufverfolgungstrigger in einem Takt aufgetreten ist, in welchem ein Befehl noch ausgeführt wird.
  • 001: Ablaufverfolgungstriggerausgabezustand (TSQ) bei einer Ausführung
  • Dieser Zustand zeigt an, daß ein Adressenablaufverfolgungstrigger oder ein Prozessorbusablaufverfolgungstrigger in einem Takt aufgetreten ist, in welchem die Ausführung eines Befehls beendet ist.
  • 000: Austestmode (DBM)
  • Dieser Zustand ist unter dem normalen Mode unerreichbar.
  • Das Signal TPC wird zum Liefern der Zieladresse eines Verzweigungs- oder Sprungbefehls verwendet. In einem Takt, in welchem das Signal PCST[2 : 0] den Zustand "110" (JMP) anzeigt, wird die Zieladresse von einem niederwertigeren Bit A(2) mit der Rate von einem Bit pro Taktperiode geliefert. In einem Takt, in welchem das Signal PCST[2 : 0] den Zustand "100" (EXP) anzeigt, wird ein 3-Bit-Ausnahmevektorcode von niederwertigeren Bits in einer Reihenfolge vom Code(0), Code(1) und Code(2) mit der Rate von einem Bit pro Taktperiode geliefert. Die Ausnahmevektoradresse und der 3- Bit-Code sind wie folgt:
  • Da eine Zieladresse durch das Signal TPC Bit für Bit in einer Serie bzw. Reihenfolge getragen wird, kann der nächste Verzweigungsbefehl, Sprungbefehl oder eine Ausnahme auftreten, während der aktuelle Verzweigungs/Sprung-Befehl durch das Signal TPC getragen wird. Die Priorität von Zieladressen, die durch das Signal TPC getragen werden, ist wie folgt:
  • a) Wenn ein neuer indirekter Sprungbefehl auftritt, während ein Ziel-Programmzählersignal geliefert wird, wird dieses Ziel-Programmzählersignal beendet, und ein Ziel- Programmzählersignal für den neuen indirekten Sprungbefehl wird begonnen.
  • b) Wenn eine Ausnahme auftritt, während ein Ziel- Programmzählersignal geliefert wird, wird das Ziel- Programmzählersignal kurzzeitig unterbrochen, wird die 3-Bit- Vektorzahl der Ausnahme geliefert und wird darauffolgend das kurzzeitig unterbrochene Signal wiederaufgenommen.
  • c) Wenn ein neuer direkter Sprung- oder Verzweigungsbefehl auftritt, während ein Ziel-Programmzählersignal geliefert wird, wird die Zieladresse des direkten Sprung- oder Verzweigungsbefehls nicht geliefert. Nur wenn das Ziel- Programmzählersignal nicht geliefert wird, wird ein Ziel- Programmzählersignal für den Befehl für einen direkten Sprung oder eine Verzweigung geliefert.
  • Beispiele von Programmzähler-Ablaufverfolgungsausgaben werden unter Bezugnahme auf die Zeichnungen erklärt werden.
  • (Beispiel 1) Programmzähler-Ablaufverfolgung eines Verzweigungsbefehls
  • Fig. 30 zeigt ein Beispiel eines Programmzähler- Ablaufverfolgungssignals für einen Verzweigungsbefehl. Wenn ein erster Befehl für eine genommene Verzweigung "beq" ausgeführt wird, trägt das Ausgangssignal TPC kein Ziel- Programmzählersignal. Demgemäß zeigt das Signal PCST[2 : 0] den Zustand JMP an, und das Signal TPC beginnt ein Tragen eines Ziel-Programmzählersignals für den Befehl "beq". In Reaktion auf einen Befehl für eine nicht genommene Verzweigung "bne" zeigt das Signal PCST[2 : 0] den Code SEQ an. In Antwort auf einen zweiten Befehl für eine genommene Verzweigung "bne" wird kein Ziel-Programmzählersignal durch das Signal TPC getragen, weil das Signal TPC das Ziel-Programmzählersignal für den ersten Verzweigungsbefehl "beq" trägt. Zu dieser Zeit zeigt das Signal PCST[2 : 0] den Zustand BRT an.
  • (Beispiel 2) Programmzähler-Ablaufverfolgung eines Befehls für einen indirekten Sprung
  • Fig. 31 zeigt ein Beispiel eines Programmzähler- Ablaufverfolgungssignals für einen Befehl für einen indirekten Sprung.
  • In Antwort auf einen ersten Befehl für einen indirekten Sprung "jr1" zeigt das Signal PCST[2 : 0] den Zustand JMP an und beginnt das Signal TPC ein Ziel-Programmzählersignal zu tragen. In Antwort auf einen Befehl für eine nicht genommene Verzweigung "bne" zeigt das Signal PCST[2 : 0] den Zustand SEQ an. In Antwort auf einen zweiten Befehl für einen indirekten Sprung "jr2" stoppt das Signal TPC ein Tragen des Ziel- Programmzählersignals für den ersten Befehl für einen indirekten Sprung "jr1" und beginnt ein Ziel- Programmzählersignal für den zweiten Befehl "jr2" zu tragen. Zu dieser Zeit zeigt das Signal PCST[2 : 0] den Zustand JMP an.
  • (Beispiel 3) Programmzähler-Ablaufverfolgung eines Befehls für eine Ausnahme und einen indirekten Sprung
  • Fig. 32 zeigt ein Beispiel einer Programmzählerablaufverfolgung für einen Befehl für eine Ausnahme und einen indirekten Sprung.
  • In Antwort auf einen Software-Abbruchbefehl "Abbruch" tritt eine Ausnahme auf, und das Signal PCST[2 : 0] zeigt den Zustand EXP an. Zu dieser Zeit beginnt das Signal TPC einen Ausnahmevektorcode zu tragen. Bei einem Befehl für eine nicht genommene Verzweigung "bne" zeigt das Signal PCST[2 : 0] den Zustand SEQ an. Bei einem Befehl für einen indirekten Sprung "jr2" trägt das Signal TPC ein Ziel-Programmzählersignal für diesen Befehl "jr" und zeigt das Signal PCST[2 : 0] den Zustand JMP an.
  • Der Ablaufverfolgungstriggerzustand TSQ oder TST des Signals PCST[2 : 0] wird erklärt werden.
  • Wenn die Übereinstimmung einer Adresse und Daten in einem Buszyklus auftritt, tritt ein Befehls/Datenadressenabbruch oder ein Prozessorbusabbruch auf, um zu veranlassen, daß das Signal PCST[2 : 0] den Zustand TSQ oder TST anzeigt.
  • Wenn eine Befehlsadressen-Ablaufverfolgungstriggeranfrage eine Datenadressen-Ablaufverfolgungstriggeranfrage oder eine Prozessorbus-Ablaufverfolgungstriggeranfrage gemacht wird, zeigt das Signal PCST[2 : 0] den Zustand TSQ oder TST an. Wenn das Signal PCST[2 : 0] den Zustand JMP, BRT oder EXP anzeigt, wird der Zustand TSQ oder TST verzögert werden. Wenn es keine Ablaufverfolgungstriggeranfrage gibt, kann das Signal PCST[2 : 0] den Zustand TSQ oder TST in einer Taktperiode anzeigen, in welcher das Signal PCST[2 : 0] dahin geht, den Zustand SEQ oder STL anzuzeigen.
  • (a) Befehls/Datenadressen-Ablaufverfolgungstrigger
  • Wenn ein Befehls/Datenadressen-Ablaufverfolgungstrigger auftritt, zeigt das Signal PCST[2 : 0] den Zustand TSQ an. Wenn ein Ablaufverfolgungstrigger durch einen Befehl für eine genommene Verzweigung, einen Sprungbefehl oder einen Befehl, der nicht veranlaßt, daß das Signal PCST[2 : 0] den Zustand SEQ anzeigt, verursacht wird, wird die Ausgabe des Ablaufverfolgungstriggers verzögert. Wenn es keine Ablaufverfolgungstriggeranfrage gibt, zeigt das Signal PCST[2 : 0] den Zustand TSQ oder TST in einem Takt an, in welchem das Signal PCST[2 : 0] derart geplant wird, den Zustand SEQ oder STL anzuzeigen.
  • (Beispiel 1) Beispiel eines Befehls/Datenadressen- Ablaufverfolgungstriggers
  • Fig. 33 zeigt ein Beispiel eines Befehls/Datenadressen- Ablaufverfolgungstriggers.
  • In Antwort auf einen Befehl "Addieren", der einen Befehls- Ablaufverfolgungstrigger oder einen Datenadressen- Ablaufverfolgungstrigger verursacht, zeigt das Signal PCST[2 : 0] den Zustand TSQ an.
  • (Beispiel 2) Beispiel eines Befehls/Datenadressen- Ablaufverfolgungstriggers aufgrund einer Ausnahme
  • Fig. 34 zeigt ein Beispiel eines Befehls/Datenadressen- Ablaufverfolgungstriggers aufgrund einer Ausnahme.
  • Wenn ein Softwareabbruch-Befehlsabbruch einen Befehlsadressen-Ablaufverfolgungstrigger oder einen Datenadressen-Ablaufverfolgungstrigger verursacht, zeigt das Signal PCST[2 : 0] den Zustand EXP an, und im nächsten Takt den Ablaufverfolgungstriggerzustand TST für eine Pipelineverzögerung.
  • (Beispiel 3) Beispiel eines Befehls/Datenadressen- Ablaufverfolgungstriggers aufgrund eines Befehls für einen indirekten Sprung
  • Fig. 35 zeigt ein Beispiel eines Befehls/Datenadressen- Ablaufverfolgungstriggers aufgrund eines Befehls für einen indirekten Sprung
  • Wenn ein Befehl für einen indirekten Sprung "jr2" einen Befehlsadressen-Ablaufverfolgungstrigger oder einen Datenadressen-Ablaufverfolgungstrigger verursacht, zeigt das Signal PCST[2 : 0] den Zustand JMP an, und im nächsten Takt den Ablaufverfolgungstriggerzustand TSQ für einen Befehlsausführungszustand.
  • (b) Prozessorbus-Ablaufverfolgungstrigger
  • Wenn eine Prozessorbus-Ablaufverfolgungstriggeranfrage durchgeführt wird, zeigt das Signal PCST[2 : 0] den Zustand TSQ oder TST an. Wenn das Signal PCST[2 : 0] den Zustand MP, BRT oder EXP anzeigt, wird der Ablaufverfolgungstriggerzustand TSQ oder TST verzögert. Wenn es keine Ablaufverfolgungstriggeranfrage gibt, zeigt das Signal PCST[2 : 0] den Zustand TSQ oder TST in einem Takt an, in welchem das Signal PCST[2 : 0] derart geplant wird, den Zustand SEQ oder STL anzuzeigen.
  • Die Erzeugung des Austestmodenzustands DBM wird erklärt werden.
  • Wenn der Prozessorkern 20 eine Austestausnahme oder ein Austestrücksetzen veranlaßt, wird das Austestmodensignal DM auf hoch aktiviert, um in den Austestmode einzutreten. Dann liefert der Ablaufverfolger 32 das Signal PCST[2 : 0], das den Austestmodenzustand DBM anzeigt.
  • Fig. 36 zeigt die Ausgabezeitgabe des Signals PCST[2 : 0], wenn eine Austestausnahme auftritt.
  • Wenn kein Ziel-Programmzählersignal geliefert wird, beginnt der Austestmode genau nach dem Ende des Befehls, der die Austestausnahme verursacht hat. Die Programmzähler- Ablaufverfolgungsinformation genau vor dem Auftreten der Austestausnahme wird geliefert.
  • Fig. 37 zeigt die Zeitgabe des Signals PCST[2 : 0], wenn ein Zielprogrammzählersignal geliefert wird, wenn eine Austestausnahme auftritt.
  • In diesem Fall beginnt der Austestmode nach der Beendigung des Zielprogrammzählersignals. Eine Programmzähler- Ablaufverfolgungsinformation bis zu einem Befehl genau vor dem Auftreten der Austestaufnahme wird geliefert. Während das Zielprogrammzählersignal geliefert wird, zeigt das Signal PCST[2 : 0] den Zustand STL an.
  • Fig. 38 zeigt die Zeitgabe des Signals PCST[2 : 0], wenn es aus dem Austestmode zurückkehrt.
  • Der Austestmode dauert an, bis ein Verzweigungsverzögerungsschlitzbefehl eines Rücksprungbefehls DERET von einer Austestausnahme oder einem Austestmode geliefert wird. Der normale Mode beginnt ab einem Befehl, der ein Ziel des Befehls DERET ist, um eine Programmzähler- Ablaufverfolgung vorzugeben.
  • Wendet man sich wieder der Fig. 29 zu, wird der Ablaufverfolger 32 erklärt werden.
  • Der Ablaufverfolger 32 hat eine Programmzähler- Ablaufverfolgungssteuerung 321, ein Zielprogrammzähler- Schieberegister 322, einen Ausnahmevektorcodierer 323, ein Ausnahmecode-Schieberegister 324 und einen Selektor 325.
  • Die Steuerung 321 hat ein Ausnahmecode-Ausgabestatusbit 326 und einen Zielprogrammzähler-Ausgabezähler 329.
  • Der Betrieb des Ablaufverfolgers 321 wird erklärt werden.
  • Die Tabelle 3 zeigt die Ausgaben des Signals PCST[2 : 0], wenn das Bit TM des Registers DCR 0 ist. In der Tabelle 3 zeigt "1" einen aktiven Zustand an und zeigt "x" einen "keine Sorge"-Zustand an. Tabelle 3
  • In dieser Tabelle ist das Triggeranfragesignal die ODER- Verknüpfung eines Befehlsadressen- Ablaufverfolgungstriggeranfragesignals, eines Datenadressen- Ablaufverfolgungstriggeranfragesignals und eines Prozessorbus-Ablaufverfolgungstriggeranfragesignals.
  • Wenn der 5-Bit-Zähler 327 nicht 0 ist, zeigt es an, daß das Signal TPC geliefert wird. Wenn das Ausnahmecode- Ausgabestatusbit 326 1 ist, wird ein Ausnahmecodevektor geliefert. In der Tabelle 2 wird der interne Zustand "Ausgeben von TPC oder von einem Ausnahmecode" 1 werden, wenn der Zähler 327 nicht 0 ist, oder wenn das Ausnahmecode- Ausgabestatusbit 326 1 ist. Der Zähler 327 wird wie folgt einem Updaten unterzogen:
  • (1) Wenn das Signal TPC kein Zielprogrammzählersignal trägt oder wenn ein neues Programmzählersignal geliefert wird, wird der Zähler 327 auf 0 gelöscht.
  • (2) Wenn das Signal TPC einen Ausnahmevektor trägt, werden der interne Status, der anzeigt, daß das Programmzählersignal geliefert wird, und der Zähler 327 gehalten, wie sie sind.
  • (3) Wenn der Zähler 327 30 erreicht, wird der Zähler 327 auf Null gesetzt. Dies zeigt an, daß die Ausgabe des Zielprogrammzählers vollständig ist.
  • (4) In einem Fall, der ein anderer als die obigen Fälle (1), (2) und (3) ist, wird der Zähler 327 um Eins inkrementiert. Zu dieser Zeit trägt das Signal PTC das Zielprogrammzählersignal.
  • Wenn eine Ausnahme auftritt, aktiviert das Ausnahmecode- Ausgabestatusbit 326 für drei Taktperioden einen internen Zustand, der anzeigt, daß ein Ausnahmecode geliefert wird. Wenn das Statusbit 326 aktiviert ist, werden ein Ausnahmecode-Schiebesignal und ein Ausnahmecode- Ausgabeumschaltsignal aktiviert. Ein Ausnahmecode-Ladesignal wird aktiviert, wenn das Signal PCST[2 : 0] den Zustand EXP anzeigt. Zu dieser Zeit wird die Ausgabe des Ausnahmevektorcodierers 323 zum Ausnahmecode-Schieberegister 324 geladen. Ein Zielprogramrrizähler-Ladesignal wird aktiviert, und das Signal PCST[2 : 0] zeigt den Zustand JMP an. Dann wird der Wert des Zielprogrammzählers zum Zielprogrammzähler-Schieberegister 322 geladen. Das Zielprograrnmzähler-Schiebesignal wird aktiviert, wenn der Zähler 327 nicht 0 ist und wenn das Statusbit 326 nicht aktiviert ist.
  • Wenn das Bit TM des Registers DCR 1 ist, wird eine Programmzähler-Ablaufverfolgung vollständig ausgeführt. Wenn das Signal DBGE* aktiviert wird, das Bit TM gesetzt wird und der nächste indirekte Sprung auftritt, während das Zielprogrammzählersignal für einen direkten Sprung geliefert wird, aktiviert die Steuerung 321 ein Pipelineverzögerungsanfragesignal zum Verzögern eines Pipelineprozesses des Prozessorkerns 20. Wenn der aktuelle Zielprogrammzähler vollständig geliefert ist, wird das Pipelineverzögerungsanfragesignal negiert, um den Pipelineprozeß wiederaufzunehmen.
  • Die Tabelle 4 zeigt die Ausgabe des Signals PCST[2 : 0], während das Bit TM 1 ist. In der Tabelle 4 zeigt "1" einen aktiven Zustand an und zeigt "x" einen "keine Sorge"-Zustand an. Tabelle 4
  • Wenn ein Signal für einen indirekten Sprung aufgrund der Ausführung eines indirekten Sprungs aktiv wird, während das Zielprogrammzählersignal oder ein Ausnahmecode geliefert wird, wird das Pipelineverzögerungsanfragesignal zum Prozessorkern 20 aktiviert. Der interne Zustand, der anzeigt, daß das Zielprogrammzählersignal oder der Ausnahmecode geliefert wird, wird für 30 Taktperioden nach dem Beginn des Zielprogrammzählersignals aktiv.
  • Das Zielprogrammzähler-Schieberegister 322 lädt den Wert einer -Zielprogrammzählerausgabe, wenn das Zielprogrammzähler- Ladesignal von der Steuerung 321 aktiviert wird. Das Register 322 verschiebt seinen Wert von MSB in Richtung zu LSB um ein Bit, wenn das Zielprogrammzähler-Schiebesignal von der Steuerung 321 aktiviert wird.
  • Der Ausnahmevektorcodierer 323 codiert eine Ausnahmevektoradresse gemäß Bits A[29], A[8] und Ä[7] der Vektoradresse wie folgt:
  • Der Codierer 323 liefert dem Ausnahmecode-Schieberegister 324 die Adressenbits A[2], A[8] und A[7] der Zielprogrammzählerausgabe.
  • Das Register 324 lädt den Ausnahmevektorcode vom Codierer 323, wenn ein Ausnahmecode-Ladesignal von der Steuerung 321 aktiviert wird. Wenn ein Ausnahmecode-Schiebesignal von der Steuerung 321 aktiviert wird, wird der Wert des Ausnahmecode- Schieberegisters 324 vom MSB in Richtung zum LSB um ein Bit verschoben.
  • Der Selektor 325 liefert das Signal TPC mit dem LSB des Registers 324, wenn ein Ausnahmecode-Ausgabeumschaltsignal von der Steuerung 321 aktiviert wird. Wenn das Ausnahmecode- Ausgabeumschaltsignal negiert wird, liefert der Selektor 325 das Signal TPC mit dem LSB des Registers 322.
  • Der Betrieb des Ablaufverfolgers 32 wird unter Bezugnahme auf Zeitgabediagramme erklärt werden.
  • Fig. 39 zeigt den Betrieb des Ablaufverfolgers 32, wenn ein Zielprogrammzählersignal geliefert wird.
  • Wenn der Zähler 3270 hält und wenn ein Signal für einen indirekten Sprung, ein Signal für einen direkten Sprung oder ein Signal für eine genommene Verzweigung aktiviert wird, aktiviert die Steuerung 321 das Zielprogrammzähler- Ladesignal.
  • Beim nächsten Takt wird das LSB, d.h. A[2] der zum Register 322 geladenen Zieladresse, zum Signal TPC zugeführt. Gleichzeitig zeigt das Signal PCST[2 : 0] den Zustand JMP an und aktiviert die Steuerung 321 das Zielprogrammzähler- Schiebesignal. Als Ergebnis wird das Register 322 vom MSB in Richtung zum LSB um ein Bit verschoben, und das Bit A[3] wird zum Signal TPC im nächsten Takt geliefert. Das Zielprogrammzähler-Schiebesignal wird kontinuierlich aktiviert, um dem Signal TPC die Programmzählerausgabe zu liefern, bis der Zähler 327 30 zählt. Wenn der Zähler 327 30 zählt, wird der Zähler 327 auf 0 gelöscht, und wird das Zielprogrammzähler-Schiebesignal negiert, um die Zielprogrammzählerausgabe zum Signal TPC zu beenden.
  • Fig. 40 zeigt den Betrieb des Ablaufverfolgers 32, wenn der nächste indirekte Sprung auftritt, während gerade ein Zielprogrammzählersignal geliefert wird.
  • Wenn der zweite indirekte Sprung auftritt, wird der Zähler 327 auf 0 gelöscht und wird das Zielprogrammzähler-Ladesignal aktiviert. Beim nächsten Takt wird das LSB, d.h. das Bit A[2] der zum Register 322 geladenen Zieladresse, zum Signal TPC geliefert. Gleichzeitig zeigt das Signal PCST[2 : 0] den Zustand JMP an, und aktiviert die Steuerung 321 das Zielprogrammzähler-Schiebesignal. Ab dem nächsten Takt wird die Zieladresse in jedem Zyklus zum Signal TPC geliefert.
  • Fig. 41 zeigt eine Betriebszeitgabe, wenn eine Ausnahme auftritt, während gerade ein Zielprogrammzählsignal geliefert wird.
  • Wenn das Signal für ein Auftreten einer Ausnahme aktiviert wird, während gerade ein Zielprogrammzählersignal geliefert wird, wird das Ausnahmecode-Ladesignal aktiviert, um den Ausnahmecode zum Ausnahmecode-Schieberegister 325 zu laden. Ab dem nächsten Takt werden das Ausnahmecode-Ausgabestatusbit 326, das Ausnahmecode-Schiebesignal und das Ausnahmecode- Ausgabeumschaltsignal aktiviert. Der Ausnahmecode wird für drei Taktperioden geliefert. Während dieser Perioden wird das Zielprogrammzähler-Schiebesignal negiert. Wenn das Statusbit 326 und das Ausnahmecode-Umschaltsignal negiert werden, wird das Zielprogrammzählersignal wieder durch das Signal TPC getragen.
  • Fig. 42 zeigt die Details der externen
  • Schnittstellenschaltung 36.
  • Die externe Schnittstellenschaltung 36 hat einen DBM- Codedetektor 361, Selektoren 362 und 363, Maskenschaltungen 364, 365 und 366, Ausgangspuffer 367A, 367B und 367C, Pull- In-Widerstands-Eingangspuffer 368A, 368B und 368C und Eingangspuffer 369A und 369B.
  • Der DBM-Codedetektor 361 aktiviert ein Ausgangssignal, wenn das Signal PCST[2 : 0] den Austestmodenzustand DBM (000) anzeigt.
  • Der Selektor 362 liefert das frequenzgeteilte Taktsignal CLK2, wenn die Ausgabe des DBM-Codedetektors 361 aktiviert wird, d.h. wenn er im Austestmode ist, und liefert das Kern- Taktsignal CLK, wenn die Ausgabe des DBM-Codedetektors 361 negiert wird, d.h., wenn es der normale Mode ist.
  • Der Selektor 363 liefert die Ausgabe SDA0 der seriellen Überwachungsbusschaltung 34, wenn die Ausgabe des DBM- Codedetektors 368 aktiviert ist, d.h. wenn sie der Austestmode ist; und liefert das Signal TPC des Ablaufverfolgers 32, wenn die Ausgabe DBM-Codedetektors 368 negiert ist, d.h. wenn es der normale Mode ist.
  • Im Austestmode maskiert die Maskenschaltung 364 das externe Eingangssignal DINT*/SDI, so daß das Eingangssignal DINT* zum Prozessorkern 20 immer negiert ist.
  • Wenn das Bit MInt des Registers DCR 0 ist, setzt die Maskenschaltung 365 das Signal Int[5 : 0] zum Prozessorkern 20, um eine Unterbrechung zu maskieren.
  • Wenn das Bit MRst des Registers DCR 0 ist, maskiert die Maskenschaltung 366 das Anwender-Rücksetzsignal RESET* während der Ausführung einer Austest- Ausnahmehandhabungseinheit (wobei das Signal DM hoch ist).
  • Der Ausgangspuffer 367A liefert die Ausgabe des Selektors 362 als das Signal DCLK nach außen. Der Ausgangspuffer 367B liefert die Ausgabe des Selektors 363 als das Signal TPC/SDA0 nach außen. Der Ausgangspuffer 367C liefert das Signal PCST[2 : 0] des Ablaufverfolgers 32 als das externe Signal PCST[2 : 0] nach außen.
  • Der Pull-In-Widerstands-Eingangspuffer 368A empfängt das externe Signal DINT*/SDI. Da dieser Puffer einen Pull-In- Widerstand hat, ist seine Ausgabe immer hoch, wenn das externe Signal DINT*/SDI abgetrennt ist. Der Pull-In- Widerstands-Eingangspuffer 368B empfängt das externe Signal DBGE*. Da dieser Puffer einen Pull-In-Widerstand bzw. einen Endwiderstand hat, ist seine Ausgabe immer hoch, wenn das externe Signal DBGE* abgetrennt ist. Der Pull-In-Widerstands- Eingangspuffer 368C empfängt das externe Signal DRESET*. Da dieser Puffer einen Pull-In-Widerstand hat, ist seine Ausgabe immer hoch, wenn das externe Signal DRESET* abgetrennt ist.
  • Diese externen Signale DINT*/SDI, DBGE* und DRESET* sind abgetrennt, wenn die Austesteinheit 60 abgetrennt ist. Dann bilden diese Signale interne Signale hohen Pegels aus und werden die Funktionen des Austestmoduls gesperrt.
  • Der Eingangspuffer 369A empfängt das externe Unterbrechungssignal DINT[5 : 0]*. Der Eingangspuffer 369B empfängt das externe Anwender-Rücksetzsignal RESET*.
  • Fig. 44 zeigt einen Mikroprozessor und ein Austestsystem gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung.
  • Dieses Ausführungsbeispiel ist dadurch gekennzeichnet, daß der Mikroprozessor 10 einen Speicher 90 und eine periphere Schaltung 100 enthält. Der weitere Aufbau dieses Ausführungsbeispiels ist derselbe wie derjenige des ersten Ausführungsbeispiels.
  • Ein Prozessorkern 20 liest ein Programm über einen internen Prozessorbus 80 aus dem Speicher 90 aus, führt das gelesene Programm aus, liest oder schreibt Daten aus dem oder zu dem Speicher 90 und greift auf die periphere Schaltung 100 zu. Unter einem Austestmode führt der Prozessorkern 20 ein Überwachungsprogramm einer Austesteinheit 60 über ein Austestmodul 30 aus.
  • Wenn die Funktionen und die Zeitgabe von Schnittstellensignalen des Austestmoduls 30 und der Austesteinheit 60 einander gleich sind, wird die Austesteinheit 60 des ersten Ausführungsbeispiels ungeachtet des Unterschieds des eingebauten Speichers 90 und der eingebauten peripheren Schaltung 100 für das zweite Ausführungsbeispiel verwendet.
  • Wenn die Funktionen des Prozessorkerns 20 des zweiten Ausführungsbeispiels dieselben wie diejenigen des ersten Ausführungsbeispiels sind, wird dasselbe Überwachungsprogramm wie dasjenige des ersten Ausführungsbeispiels für das zweite Ausführungsbeispiel verwendet werden.
  • Die obigen zwei Ausführungsbeispiele verwenden jeweils einen Befehls/Datenadressen-Abbruchkanal und einen Prozessorbus- Abbruchkanal. Die vorliegende Erfindung ist nicht auf diesen Aufbau beschränkt, sondern kann zwei oder mehrere Kanäle verwenden. Fig. 43 zeigt ein Register IBS, das 15 Befehlsadressen-Abbruchkanäle enthält.
  • Die obigen zwei Ausführungsbeispiele verwenden jeweils einen seriellen Überwachungsbus mit einer Bitbreite von Eins. Die vorliegende Erfindung ist nicht auf diesen Aufbau beschränkt. Die Bitbreite kann Zwei oder darüber sein, wenn viele externe Mikroprozessorsignale für einen seriellen Überwachungsbus verwendet werden.
  • Die obigen zwei Ausführungsbeispiele verwenden jeweils ein externes Signal zum Tragen der Ausgabe eines Zielprogrammzählers. Die vorliegende Erfindung ist nicht auf diesen Aufbau beschränkt. Die Ausgabe eines Zielprogrammzählers kann durch eine Vielzahl von externen Signalen getragen werden, wenn sie verfügbar sind.
  • Gemäß den obigen zwei Ausführungsbeispielen halbiert der Taktgenerator 37 die Frequenz des Taktsignals CLK für den Prozessorkern. Die vorliegende Erfindung ist nicht darauf beschränkt. Die Frequenz des Taktsignals für die serielle Überwachungsschaltung kann dieselbe wie diejenige des Taktsignals CLK oder ein ganzzahliges Vielfaches einer Potenz von 2 von derjenigen des Taktsignals CLK sein.
  • Wie es oben erklärt ist, kann die vorliegende Erfindung die Hardware eines Austest-Dienstprogramms mit vielen Funktionen gemeinsam nutzen und die Anzahl von Signalen reduzieren, die mit dem Austest-Dienstprogramm verbunden sind. Der Stand der Technik muß beispielsweise 30 Adressensignale, 4 Bytefreigabesignale, ein Lesesignal, ein Schreibsignal, ein Lesebestätigungssignal, ein Schreibbestätigungssignal und 32 Datensignale, d.h. insgesamt 70 Signale, zum Verbinden eines Anwenderzielsystems mit einem Debugger bzw. einer Austesteinheit verwenden. Andererseits erfordert die vorliegende Erfindung acht Signale zum Verbinden eines Anwenderzielsystems mit einer Austesteinheit. Dies resultiert in einem Minimieren der Anzahl von Sonden und einem Reduzieren von Kosten.
  • Gemäß der vorliegenden Erfindung greift ein Mikroprozessor auf einem Anwenderzielsystem auf Speicher und I/O-Einheiten zu, um Bedingungen bezüglich der Zeitgabe eines Austest- Dienstprogramms zu vereinfachen. Signale, die nicht mit dem Austest-Dienstprogramm verbunden sind, werden durch ein Austesten nicht beeinflußt. Die vorliegende Erfindung kann eine Kommunikationsgeschwindigkeit zwischen einem Austest- Dienstprogramm und einem Mikroprozessor verlangsamen, wenn die Betriebsgeschwindigkeit des Mikroprozessors zu hoch ist.
  • Verglichen mit dem Stand der Technik der Fig. 2 speichert die vorliegende Erfindung ein Überwachungsprogramm in einen Speicher in einem Austest-Dienstprogramm ohne Verwendung von Anwenderspeicher. Zum Beginnen einer Überwachung eines Zielsystems verwendet die vorliegende Erfindung eine bestimmte Austestausnahme und ein bestimmtes Austestrücksetzen, ohne Anwenderunterbrechungen zu beschränken. Es ist nicht erforderlich, daß ein Anwenderzielsystem eine serielle Schnittstelle zum Austesten hat. Die vorliegende Erfindung kann eine Hardware- Abbruchstelle verwenden.
  • Verglichen mit dem Stand der Technik der Fig. 3 erfordert die vorliegende Erfindung nicht, daß eine Ablauffolgesteuerung in einem Mikroprozessor eingebaut wird, wodurch eine Logikschaltung zum Austesten vereinfacht wird. Da die vorliegende Erfindung ein Überwachungsprogramm zum Zugreifen auf Register verwendet, kann auf zusätzliche Register nur durch Modifizieren des Überwachungsprogramms zugegriffen werden.
  • Zusammenfassend stellt die vorliegende Erfindung einen Mikroprozessor eines Anwenderzielsystems mit einer Austestfunktion zur Verfügung, um Signale zum Verbinden des Zielsystems mit einer Austesteinheit zu reduzieren. Während eines Austestens betreibt die vorliegende Erfindung den Mikroprozessor des Zielsystems, um auf Speicher und I/O- Einheiten des Zielsystems auf einfache Weise zuzugreifen.
  • Gemäß der vorliegenden Erfindung kann auf Steuerregister im Austest-Dienstprogramm und im Austestmodul nicht während der Ausführung eines Anwenderprogramms unter einem normalen Mode zugegriffen werden, so daß die Speicher und Register des Austest-Dienstprogramms niemals durch das Anwenderprogramm zerstört werden, wodurch die Zuverlässigkeit des Systems verbessert wird.
  • Die vorliegende Erfindung verhindert ein Zugreifen auf die Steuerregister des Austest-Dienstprogramms und des Austestmoduls selbst dann, nachdem der Austestmode begonnen hat. Wenn eine Schreiboperation des Anwenderprogramms zum Steuerregister des Austest-Dienstprogramms oder des Austestmoduls unvollständig ist, wenn eine Austestausnahme zum Beginnen des Austestmodes auftritt, wird die Schreiboperation durch Einstellen des Bits MP des Registers DCR abgehalten. Dies verhindert, daß die Speicher und Register des Austest-Dienstprogramms fehlerhaft durch das Anwenderprogramm unterbrochen werden, wodurch die Zuverlässigkeit des Austestsystems verbessert wird.
  • Gemäß der vorliegenden Erfindung ist eine Schreiboperation zum Austest-Dienstprogramm gemäß einem Befehl CTC0 unter dem Austestmode immer zugelassen, und zwar ungeachtet des Werts des Bits MP. Da die Adresse eines Überwachungsbereichs separat von einem Speicherschreibbefehl vorbereitet wird, ist es nicht nötig, ein allgemeines Register zu verwenden.
  • Demgemäß werden die Inhalte des allgemeinen Registers niemals durch die Schreiboperation unterbrochen werden, und der Wert des allgemeinen Registers kann im Speicher des Austest- Dienstprogramms genau nach dem Auftreten einer Austestausnahme gesichert werden. Auf diese Weise zerstört das Austest-Dienstprogramm bzw. -Werkzeug der vorliegenden Erfindung die Inhalte von allgemeinen Anwenderregistern nie, wodurch eine gute Transparenz des Austestsystems realisiert wird.
  • Die vorliegende Erfindung stellt einen Mikroprozessor eines Anwenderzielsystems mit einer Austestfunktion zur Verfügung, um ein Schnittstellensignal zum Tragen einer Programmzähler- Ablaufverfolgungsausgabe zu eliminieren.
  • Die vorliegende Erfindung stellt einen Mikroprozessor eines Anwenderzielsystems mit einer Austestfunktion zur Verfügung und realisiert eine Triggerfunktion mit minimaler Hardware.
  • Verschiedene Modifikationen werden für Fachleute auf dem Gebiet-nach einem Erhalten der Lehren der gegenwärtigen Offenbarung möglich werden, ohne vom Schutzumfang davon abzuweichen.

Claims (26)

1. Mikroprozessor, der folgendes aufweist:
einen Prozessorkern zum Ausführen eines Anwenderprogramms und eines Überwachungsprogramms zum Austesten eines Anwenderzielsystems; und
ein Austestmodul, das mit dem Prozessorkern durch eine interne Austestschnittstelle und/oder einen Prozessorbus verbunden ist, mit einer Schnittstelleneinrichtung, die als Schnittstelle dient, mit einem Austestwerkzeug, so daß der Prozessorkern das Überwachungsprogramm ausführen kann, und einer Steuereinrichtung zum Fragen des Prozessorkerns nach einer Unterbrechung oder einer Ausnahme, um den Prozessorkern vom Anwenderprogramm zum Überwachungsprogramm zu schalten.
2. Austestsystem mit einem Mikroprozessor nach Anspruch 1, das folgendes aufweist:
ein Austestwerkzeug mit einem Überwachungsprogramm zum Austesten eines Anwenderzielsystems;
einen Speicher, der mit dem Mikroprozessor durch den Prozessorbus im Anwenderzielsystem verbunden ist, zum Speichern von Information, die für den Mikroprozessor zum Ausführen des Anwenderprogramms nötig ist; und
eine I/O-Einheit, die mit dem Mikroprozessor durch den Prozessorbus im Anwenderzielsystem verbunden ist.
3. Mikroprozessor nach Anspruch 1, wobei das Austestmodul folgendes aufweist:
eine Abbruchschaltung zum Vergleichen der Adresse eines Befehls oder von Daten, der bzw. die durch den Prozessorkern geliefert wird bzw. werden, mit einer voreingestellten Adresse oder voreingestellten Daten, und dann, wenn sie miteinander übereinstimmen, zum Senden einer Adressenabbruchausnahmeaufforderung zum Prozessorkern;
einen Überwacher zum Verarbeiten von Programmzählerverfolgungsinformation, die durch den Prozessorkern geliefert wird, und zum Liefern der verarbeiteten Information;
eine Prozessorbus-Abbruchschaltung, die mit dem Prozessorkern durch den Prozessorbus verbunden ist, zum Überwachen von Buszyklen im Prozessorbus, und dann, wenn ein Buszyklus für eine voreingestellte Adresse und für voreingestellte Daten ausgeführt wird, zum Senden einer Ausnahmeaufforderung zum Prozessorkern;
eine serielle Überwachungsbusschaltung, die mit dem Prozessorkern durch den Prozessorbus verbunden ist, und die als Schnittstelle zum Austestwerkzeug dient, wenn der Prozessorkern das im Austestwerkzeug gespeicherte Überwachungsprogramm ausführt;
eine Registerschaltung zum Speichern von Information zum Steuern der Funktionen des Austestwerkzeugs, wobei auf die Information durch den Prozessorkern zugegriffen wird;
eine externe Schnittstellenschaltung, die als Schnittstelle für den Überwacher, die serielle Überwachungsbusschaltung und den Prozessorkern mit dem Austestwerkzeug dient; und
einen Taktsignalgenerator zum Beliefern des Austestwerkzeugs mit einem Taktsignal, das die Übertragungsgeschwindigkeit von Signalen definiert, die zwischen dem Mikroprozessor und dem Austestwerkzeug übertragen werden.
4. Mikroprozessor nach Anspruch 3, wobei der Taktsignalgenerator ein Taktsignal zuführt, dessen Frequenz ein Vielfaches einer Potenz von 2 der Frequenz eines Taktsignals ist, das den Prozessorkern treibt.
5. Mikroprozessor nach Anspruch 1, wobei das Austestmodul mit dem Austestwerkzeug mit bestimmten Signalen verbunden ist.
6. Mikroprozessor nach Anspruch 1, wobei das Austestmodul mit dem Austestwerkzeug mit unidirektionalen Signalen verbunden ist.
7. Mikroprozessor nach Anspruch 1, wobei:
wenn der Prozessorkern auf einen spezifischen Bereich zugreift, das Austestmodul Adressen- und Bus- Steuersignale vom Prozessorkern zum Austestwerkzeug in vorbestimmten Intervallen sequentiell überträgt bzw. transferiert;
wenn der Zugriff auf den spezifischen Bereich ein Schreibzugriff ist, das Austestmodul Datensignale zum Austestwerkzeug in vorbestimmten Intervallen sequentiell überträgt; und
wenn der Zugriff auf den spezifischen Bereich ein Lesezugriff ist, das Austestmodul Signale vom Austestwerkzeug in vorbestimmten Intervallen sequentiell empfängt, ein Mehrbit-Datensignal bildet und das Datensignal zum Prozessorkern sendet.
8. Mikroprozessor nach Anspruch 7, wobei die vorbestimmten Intervalle gemäß dem Ausgangs-Taktsignal eines Taktsignalgenerators definiert sind.
9. Mikroprozessor nach Anspruch 1, wobei das Austestmodul Busschnittstellensignale vom Prozessorkern zum Austestmodul über eine erste Übertragungsleitung Bit für Bit in Aufeinanderfolge überträgt und das Austestwerkzeug Information zum Austestmodul über eine zweite Übertragungsleitung Bit für Bit in Aufeinanderfolge überträgt.
10. Mikroprozessor nach Anspruch 1, wobei
der Prozessorkern ein Modemsignal hat, das freizugeben ist, wenn eine Ausnahme- oder eine Rücksetzaufforderung zum Starten des Überwachungsprogramms durchgeführt wird; und
das Austestmodul zuläßt, daß der Prozessorkern auf das Austestwerkzeug oder eine Registerschaltung im Austestmodul nur dann zugreift, wenn das Modemsignal freigegeben wird.
11. Mikroprozessor nach Anspruch 1, wobei
der Prozessorkern ein Modemsignal hat, das freizugeben ist, wenn eine Ausnahme- oder Rücksetzanfrage zum Starten des Überwachungsprogramms durchgeführt wird; und
das Austestmodul ein Steuerbit hat, das dann, wenn es freigegeben ist, dem Prozessorkern verbietet, auf das Austestwerkzeug oder eine Registerschaltung im Austestmodul zuzugreifen, und zwar selbst dann, wenn das Modemsignal freigegeben ist.
12. Mikroprozessor nach Anspruch 1, wobei der Prozessorkern folgendes aufweist:
einen Mode, der freigegeben wird, wenn eine Ausnahme- oder Rücksetzaufforderung zum Starten des Überwachungsprogramms durchgeführt wird;
einen ersten Schreibbefehl zum Liefern des Werts eines allgemeinen Registers als Datensignal und zum Freigeben eines ersten Schreibsignals; und
einen zweiten Schreibbefehl zum Liefern des Werts des allgemeinen Registers als Datensignal und zum Freigeben eines zweiten Schreibsignals.
13. Mikroprozessor nach Anspruch 12, wobei:
das Austestmodul ein Steuerbit dafür hat, den Prozessorkern davon abzuhalten, auf das Austestmodul zuzugreifen;
ein Schreibzugriff zum Austestmodul gemäß dem ersten Schreibsignal verhindert wird, wenn das Steuerbit freigegeben ist; und
ein Schreibzugriff zum Austestmodul gemäß dem zweiten Schreibsignal ohne Berücksichtigung des Steuerbits freigegeben wird.
14. Mikroprozessor, der folgendes aufweist:
einen Prozessorkern zum Ausführen eines Programms; und
einen Programmzählerüberwacher, der mit dem Prozessorkern über eine interne Austestschnittstelle verbunden ist, zum Liefern eines Programmzählersignals, das die Adresse eines Befehls darstellt, der durch den Prozessorkern ausgeführt wird, wobei die Anzahl von Leitungen, die das Programmzählersignal übertragen, kleiner als die Anzahl von Bits der Adresse ist.
15. Mikroprozessor nach Anspruch 14, wobei:
der Prozessorkern ein indirektes Sprungsignal aktiviert, wenn er einen indirekten Sprungbefehl ausführt, und den Programmzählerüberwacher die Zieladresse des indirekten Sprungbefehls liefert; und
auf ein Empfangen des aktivierten indirekten Sprungbefehls hin der Programmzählerüberwacher die Zieladresse annimmt, die Zieladresse als das Programmzählersignal ab einem niederwertigeren Bit von ihm überträgt und ein Programmzähler-Statussignal liefert, das anzeigt, daß die Übertragung der Zieladresse begonnen hat.
16. Mikroprozessor nach Anspruch 14, wobei:
der Prozessorkern ein Ausnahmesignal aktiviert, wenn eine Ausnahme auftritt, und dem Programmzählerüberwacher die Zieladresse der Ausnahme liefert; und
auf ein Empfangen des aktivierten Ausnahmesignals hin der Programmzählerüberwacher die Zieladresse annimmt, die Zieladresse in Information codiert, deren Anzahl von Bitskleiner als diejenige der Zieladresse ist, die codierte Information als das Programmzählersignal überträgt und ein Programmzähler-Statussignal liefert, das anzeigt, daß die Übertragung der Zieladresse begonnen hat.
17. Mikroprozessor nach Anspruch 15, wobei dann, wenn der Prozessorkern einen zweiten indirekten Sprungbefehl ausführt, während der Programmzählerüberwacher die Zieladresse eines ersten indirekten Sprungbefehls überträgt:
der Prozessorkern das indirekte Sprungsignal aktiviert, wenn er den zweiten indirekten Sprungbefehl ausführt, und dem Programmzählerüberwacher die Zieladresse des zweiten indirekten Sprungbefehls liefert; und
auf ein Empfangen des aktivierten indirekten Sprungsignals hin der Programmzählerüberwacher die Zieladresse des zweiten indirekten Sprungbefehls annimmt, ein Übertragen der Zieladresse des ersten indirekten Sprungbefehls stoppt, die Zieladresse des zweiten indirekten Sprungbefehls als das Programmzählersignal überträgt und ein Programmzähler-Statussignal liefert, das anzeigt, daß die Übertragung der Zieladresse begonnen hat.
18. Mikroprozessor nach Anspruch 15, wobei dann, wenn eine Ausnahme auftritt, während der Programmzählerüberwacher die Zieladresse eines indirekten Sprungbefehls überträgt:
der Prozessorkern ein Ausnahmesignal aktiviert, das anzeigt, daß die Ausnahme aufgetreten ist, und dem Programmzählerüberwacher die Zieladresse der Ausnahme liefert; und
auf ein Empfangen des aktivierten Ausnahmesignals hin der Programmzählerüberwacher die Zieladresse annimmt, die Übertragung der Zieladresse des indirekten Sprungbefehls kurzzeitig unterbricht, die Zieladresse der Ausnahme in Information codiert, deren Anzahl von Bits kleiner als die der Zieladresse ist, die codierte Information als das Programmzählersignal überträgt, ein Programmzähler- Statussignal liefert, das anzeigt, daß die Übertragung der Zieladresse der Ausnahme begonnen hat, und, nachdem die Übertragung der codierten Information beendet ist, die Übertragung der Zieladresse des indirekten Sprungbefehls wiederaufnimmt.
19. Mikroprozessor nach Anspruch 14, wobei:
der Prozessorkern ein direktes Sprungsignal aktiviert, wenn er einen direkten Sprungbefehl oder einen genommenen konditionalen Verzweigungsbefehl ausführt, und dem Programmzählerüberwacher die Zieladresse des direkten Sprungbefehls oder des Verzweigungsbefehls liefert;
wenn der Programmzählerüberwacher die Zieladresse eines indirekten Sprungbefehls nicht überträgt, wenn er das aktivierte direkte Sprungsignal empfängt, der Programmzählerüberwacher die Zieladresse vom Prozessorkern annimmt, die Zieladresse als das Programmzählersignal ab einem niederwertigen Bit davon überträgt, ein Programmzähler-Statussignal liefert, das anzeigt, daß die Übertragung der Zieladresse begonnen hat; und
wenn der Programmzählerüberwacher die Zieladresse eines indirekten Sprungbefehls überträgt, wenn er das aktivierte direkte Sprungsignal empfängt, der Programmzählerüberwacher nur ein Programmzähler- Statussignal liefert, das anzeigt, daß der direkte Sprungbefehl oder der Befehl für eine genommene konditionale Verzweigung ausgeführt worden ist.
20. Mikroprozessor nach Anspruch 14, wobei:
der Prozessorkern ein Pipeline-Signal aktiviert, wenn er einen Befehl ausführt;
wenn das Pipeline-Signal aktiviert ist und vom Programmzählerüberwacher empfangen wird, der Programmzählerüberwacher ein Programmzähler-Statussignal liefert, das anzeigt, daß der Befehl durch den Prozessorkern ausgeführt worden ist; und
wenn das Pipeline-Signal nicht aktiviert ist und vom Programmzählerüberwacher empfangen wird, der Programmzählerüberwacher ein Programmzähler-Statussignal liefert, das anzeigt, daß der Befehl nicht ausgeführt worden ist.
21. Mikroprozessor nach Anspruch 14, wobei dann, wenn der Prozessorkern einen zweiten indirekten Sprungbefehl ausführt, während der Programmzählerüberwacher die Zieladresse eines ersten indirekten Sprungbefehls überträgt:
der Prozessorkern ein indirektes Sprungsignal aktiviert, wenn er den zweiten indirekten Sprungbefehl ausführt, dem Programmzählerüberwacher die Zieladresse des zweiten indirekten Sprungbefehls liefert, und dann, wenn ein Prozessorkern-Stoppsignal aktiviert ist, die Ausführung des zweiten indirekten Sprungbefehls kurzzeitig unterbricht; und
der Programmzählerüberwacher das Prozessorkern- Stoppsignal aktiviert, wenn das indirekte Sprungsignal für den zweiten indirekten Sprungbefehl aktiviert ist, die Übertragung der Zieladresse des ersten Sprungbefehls beendet, die Zieladresse des zweiten indirekten Sprungbefehls vom Prozessorkern annimmt, die Zieladresse des zweiten indirekten Sprungbefehls als das Programmzählersignal überträgt und ein Programmzähler- Statussignal liefert, das anzeigt, daß die Übertragung der Zieladresse gestartet hat.
22. Mikroprozessor nach Anspruch 14, wobei dann, wenn der Prozessorkern einen zweiten indirekten Sprungbefehl ausführt, während der Programmzählerüberwacher die Zieladresse eines ersten indirekten Sprungbefehls überträgt:
der Prozessorkern ein indirektes Sprungsignal aktiviert, wenn er den zweiten indirekten Sprungbefehl ausführt, dem Programmzählerüberwacher die Zieladresse des zweiten indirekten Sprungbefehls liefert, und dann, wenn ein Prozessorkern-Stoppsignal aktiviert ist, die Ausführung des zweiten indirekten Sprungbefehls kurzzeitig unterbricht;
der Programmzählerüberwacher auf ein Verfolgungsmodemsignal wartet, das anzeigt, ob die Übertragung der Zieladresse des ersten indirekten Sprungbefehls beendet werden muß oder nicht;
wenn das Verfolgungsmodemsignal anzeigt, die Übertragung zu beenden, der Programmzählerüberwacher das Prozessorkern-Stoppsignal in Antwort auf das aktivierte indirekte Sprungsignal für den zweiten indirekten Sprungbefehl aktiviert, die Übertragung der Zieladresse des ersten indirekten Sprungbefehls beendet, die Zieladresse des zweiten indirekten Sprungbefehls vom Prozessorkern annimmt, die Zieladresse des zweiten indirekten Sprungbefehls als das Programmzählersignal überträgt und ein Programmzähler-Statussignal liefert, das anzeigt, daß die Übertragung der Zieladresse begonnen hat; und
wenn das Verfolgungsmodemsignal anzeigt, die Übertragung nicht zu beenden, der Programmzählerüberwacher die Zieladresse des zweiten indirekten Sprungbefehls vom Prozessorkern in Antwort auf das aktivierte indirekte Sprungsignal für den zweiten indirekten Sprungbefehl annimmt, die Übertragung der Zieladresse des ersten indirekten Sprungbefehls stoppt, die Zieladresse des zweiten indirekten Sprungbefehls als das Programmzählersignal überträgt und ein Programmzähler-Statussignal liefert, das anzeigt, daß die Übertragung der Zieladresse begonnen hat.
23. Mikroprozessor nach Anspruch 14, wobei:
wenn eine Unterbrechung oder eine Ausnahme von außen gefordert wird, um den Prozessorkern von einem Anwenderprogramm zu einem Überwacherprogramm zu schalten, um ein Anwenderzielsystem auszutesten, der Prozessorkern das Anwenderprogramm kurzzeitig unterbricht, zum Überwachungsprogramm springt und Befehle des Überwachungsprogramms holt; und
wenn der Programmzählerüberwacher die Zieladresse eines Sprungbefehls oder eines Ausnahmecodes überträgt, wenn der Prozessorkern zum Überwachungsprogramm springt, der Prozessorkern das Holen der Befehle des Überwachungsprogramms verzögert, bis der Programmzählerüberwacher die Überwachung beendet.
24. Mikroprozessor, der folgendes aufweist:
einen Prozessorkern zum Ausführen eines Programms;
eine Abbruchschaltung zum Durchführen einer Abbruchanfrage oder zum Aktivieren eines Triggeranfragesignals zum Prozessorkern, wenn eine Adresse, auf die zugegriffen wird, mit einer eingestellten Adresse übereinstimmt, oder dann, wenn eine Adresse und Daten, auf die zugegriffen wird, mit einer eingestellten Adresse und eingestellten Daten übereinstimmt bzw. übereinstimmen; und
einen Programmzählerüberwacher, der mit dem Prozessor über eine interne Austestschnittstelle verbunden ist, zum Liefern eines externen Statussignals, das anzeigt, daß das Triggeranfragesignal aktiviert worden ist, nachdem die Abbruchschaltung dasselbe aktiviert.
25. Mikroprozessor nach Anspruch 24, wobei der Programmzählerüberwacher den internen Zustand des Prozessorkerns codiert und ein externes Statussignal liefert, das den codierten internen Zustand anzeigt,
wenn der Prozessorkern in einem ersten internen Zustand ist und wenn das Triggeranfragesignal aktiviert ist, der Programmzählerüberwacher ein externes Statussignal liefert, das einen internen Zustand von keiner Triggeranfrage ohne Berücksichtigung des aktivierten Triggeranfragesignals anzeigt, und
wenn der Prozessorkern in einem zweiten internen Zustand ist und wenn das Triggeranfragesignal aktiviert ist, der Programmzählerüberwacher ein externes Statussignal liefert, das anzeigt, daß die Triggeranfrage durchgeführt worden ist.
26. Mikroprozessor nach Anspruch 25, wobei der erste interne Zustand einem Ausführen eines Sprungbefehls oder einem Erzeugen einer Ausnahme entspricht, und der zweite interne Zustand einem sequentiellen Ausführen von Befehlen oder einem Veranlassen einer Pipeline- Verzögerung entspricht.
DE69523884T 1994-12-28 1995-12-28 Mikroprozessor mit Fehlersuchsystem Expired - Lifetime DE69523884T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32899394 1994-12-28

Publications (2)

Publication Number Publication Date
DE69523884D1 DE69523884D1 (de) 2001-12-20
DE69523884T2 true DE69523884T2 (de) 2002-06-27

Family

ID=18216413

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69523884T Expired - Lifetime DE69523884T2 (de) 1994-12-28 1995-12-28 Mikroprozessor mit Fehlersuchsystem

Country Status (5)

Country Link
US (1) US5978937A (de)
EP (1) EP0720093B1 (de)
KR (1) KR100255026B1 (de)
CN (3) CN1316368C (de)
DE (1) DE69523884T2 (de)

Families Citing this family (171)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2752592B2 (ja) * 1994-12-28 1998-05-18 日本ヒューレット・パッカード株式会社 マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法
US5724505A (en) * 1996-05-15 1998-03-03 Lucent Technologies Inc. Apparatus and method for real-time program monitoring via a serial interface
DE69712587T2 (de) * 1996-10-31 2003-01-09 Stmicroelectronics Ltd., Almondsbury Mikrorechner mit Zugriff auf einen externen Speicher
DE69715346T2 (de) * 1996-10-31 2003-06-05 Stmicroelectronics Ltd., Almondsbury Mikrorechner mit Fehlersuchsystem
US5983017A (en) * 1996-11-12 1999-11-09 Lsi Logic Corporation Virtual monitor debugging method and apparatus
US6314530B1 (en) 1997-04-08 2001-11-06 Advanced Micro Devices, Inc. Processor having a trace access instruction to access on-chip trace memory
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
US6154856A (en) * 1997-04-08 2000-11-28 Advanced Micro Devices, Inc. Debug interface including state machines for timing synchronization and communication
JP3542463B2 (ja) * 1997-07-29 2004-07-14 Necエレクトロニクス株式会社 集積回路装置、その動作制御方法
KR100576006B1 (ko) * 1997-08-30 2006-08-01 삼성전자주식회사 실시간오퍼레이팅시스템의효율적인온라인디버깅처리및그를위한프로세스스케쥴링방법
US6356960B1 (en) 1997-10-29 2002-03-12 Sgs-Thomson Microelectronics Limited Microprocessor having an on-chip CPU fetching a debugging routine from a memory in an external debugging device in response to a control signal received through a debugging port
US6311325B1 (en) * 1998-10-22 2001-10-30 International Business Machines Corporation Method and apparatus for profiling processes in a data processing system background of the invention
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
US6230119B1 (en) * 1998-02-06 2001-05-08 Patrick Michael Mitchell Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit
US6145100A (en) * 1998-03-04 2000-11-07 Advanced Micro Devices, Inc. Debug interface including timing synchronization logic
GB9805486D0 (en) 1998-03-13 1998-05-13 Sgs Thomson Microelectronics Adapter
GB9805479D0 (en) * 1998-03-13 1998-05-13 Sgs Thomson Microelectronics Microcomputer
US6687865B1 (en) 1998-03-25 2004-02-03 On-Chip Technologies, Inc. On-chip service processor for test and debug of integrated circuits
JP3671667B2 (ja) * 1998-03-31 2005-07-13 セイコーエプソン株式会社 マイクロコンピュータ、電子機器及びデバッグシステム
US6438715B1 (en) * 1998-05-04 2002-08-20 Stmicroelectronics N.V. Trace operations in an integrated circuit for a disk drive
US6145123A (en) * 1998-07-01 2000-11-07 Advanced Micro Devices, Inc. Trace on/off with breakpoint register
CN1071038C (zh) * 1998-08-04 2001-09-12 英业达股份有限公司 用于调试串行通讯的诊断装置
DE19835610A1 (de) * 1998-08-06 2000-02-10 Siemens Ag Programmgesteuerte Einheit und Verfahren zum Debuggen derselben
US6738778B1 (en) * 1998-12-11 2004-05-18 International Business Machines Corporation Method and apparatus for monitoring the execution of a program
JP3736980B2 (ja) 1998-12-28 2006-01-18 富士通株式会社 マイクロコントローラの評価装置および評価方法
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
US6446221B1 (en) * 1999-05-19 2002-09-03 Arm Limited Debug mechanism for data processing systems
JP4335999B2 (ja) * 1999-05-20 2009-09-30 株式会社ルネサステクノロジ プロセッサ内蔵半導体集積回路装置
JP4260984B2 (ja) * 1999-06-04 2009-04-30 株式会社東芝 情報処理装置および情報処理方法
US6668339B1 (en) * 1999-07-28 2003-12-23 Mitsubishi Denki Kabushiki Kaisha Microprocessor having a debug interruption function
JP2001147821A (ja) 1999-09-10 2001-05-29 Toshiba Corp プロセッサ
US6859891B2 (en) * 1999-10-01 2005-02-22 Stmicroelectronics Limited Apparatus and method for shadowing processor information
US7793261B1 (en) * 1999-10-01 2010-09-07 Stmicroelectronics Limited Interface for transferring debug information
US6298394B1 (en) * 1999-10-01 2001-10-02 Stmicroelectronics, Ltd. System and method for capturing information on an interconnect in an integrated circuit
US6601189B1 (en) 1999-10-01 2003-07-29 Stmicroelectronics Limited System and method for communicating with an integrated circuit
GB2362729B (en) * 1999-12-23 2004-02-11 St Microelectronics Sa Memory access debug facility
JP2001202270A (ja) * 2000-01-21 2001-07-27 Mitsubishi Electric Corp 内部バストレース機能付プロセッサ
US6769076B1 (en) * 2000-02-07 2004-07-27 Freescale Semiconductor, Inc. Real-time processor debug system
WO2001063416A1 (en) * 2000-02-24 2001-08-30 Bops Incorporated Methods and apparatus for scalable array processor interrupt detection and response
US6985848B2 (en) * 2000-03-02 2006-01-10 Texas Instruments Incorporated Obtaining and exporting on-chip data processor trace and timing information
EP1130501B1 (de) * 2000-03-02 2009-07-15 Texas Instruments Incorporated Dynamisch konfigurierbare Debug-Schnittstelle mit gleichzeitiger Verwendung von Fehlerbeseitigung von mehreren Prozessorkernen
US6732311B1 (en) * 2000-05-04 2004-05-04 Agere Systems Inc. On-chip debugger
US20040078690A1 (en) * 2000-05-30 2004-04-22 Yasuo Kohashi Program counter trace system, program counter trace method, and semiconductor device
JP4409056B2 (ja) * 2000-06-30 2010-02-03 富士通株式会社 Lsi,lsiを搭載した電子装置、デバッグ方法、lsiのデバッグ装置
US6728906B1 (en) * 2000-08-24 2004-04-27 Triscend Corporation Trace buffer for a configurable system-on-chip
US8176296B2 (en) 2000-10-26 2012-05-08 Cypress Semiconductor Corporation Programmable microcontroller architecture
US8149048B1 (en) 2000-10-26 2012-04-03 Cypress Semiconductor Corporation Apparatus and method for programmable power management in a programmable analog circuit block
US8160864B1 (en) 2000-10-26 2012-04-17 Cypress Semiconductor Corporation In-circuit emulator and pod synchronized boot
US7765095B1 (en) 2000-10-26 2010-07-27 Cypress Semiconductor Corporation Conditional branching in an in-circuit emulation system
US6724220B1 (en) 2000-10-26 2004-04-20 Cyress Semiconductor Corporation Programmable microcontroller architecture (mixed analog/digital)
US7188063B1 (en) * 2000-10-26 2007-03-06 Cypress Semiconductor Corporation Capturing test/emulation and enabling real-time debugging using an FPGA for in-circuit emulation
US8103496B1 (en) 2000-10-26 2012-01-24 Cypress Semicondutor Corporation Breakpoint control in an in-circuit emulation system
US6842879B1 (en) 2000-11-21 2005-01-11 Unisys Corporation Methods and apparatus for facilitating the design of an adapter card of a computer system
US6484273B1 (en) * 2000-11-29 2002-11-19 Lsi Logic Corporation Integrated EJTAG external bus interface
US6986026B2 (en) * 2000-12-15 2006-01-10 Intel Corporation Single-step processing and selecting debugging modes
US6857083B2 (en) * 2000-12-18 2005-02-15 International Business Machines Corporation Method and system for triggering a debugging unit
JP3913470B2 (ja) * 2000-12-28 2007-05-09 株式会社東芝 システムlsi
US7287147B1 (en) * 2000-12-29 2007-10-23 Mips Technologies, Inc. Configurable co-processor interface
US7237090B1 (en) 2000-12-29 2007-06-26 Mips Technologies, Inc. Configurable out-of-order data transfer in a coprocessor interface
US7185234B1 (en) * 2001-04-30 2007-02-27 Mips Technologies, Inc. Trace control from hardware and software
US7178133B1 (en) * 2001-04-30 2007-02-13 Mips Technologies, Inc. Trace control based on a characteristic of a processor's operating state
KR100422586B1 (ko) * 2001-04-30 2004-03-12 주식회사 하이닉스반도체 유에스비 마이크로 컨트롤러 유닛 디버깅 방법
US7134116B1 (en) 2001-04-30 2006-11-07 Mips Technologies, Inc. External trace synchronization via periodic sampling
US7181728B1 (en) 2001-04-30 2007-02-20 Mips Technologies, Inc. User controlled trace records
US7124072B1 (en) 2001-04-30 2006-10-17 Mips Technologies, Inc. Program counter and data tracing from a multi-issue processor
US7069544B1 (en) * 2001-04-30 2006-06-27 Mips Technologies, Inc. Dynamic selection of a compression algorithm for trace data
US7065675B1 (en) 2001-05-08 2006-06-20 Mips Technologies, Inc. System and method for speeding up EJTAG block data transfers
US7043668B1 (en) 2001-06-29 2006-05-09 Mips Technologies, Inc. Optimized external trace formats
US7231551B1 (en) 2001-06-29 2007-06-12 Mips Technologies, Inc. Distributed tap controller
JP2003177938A (ja) * 2001-12-07 2003-06-27 Fujitsu Ltd 電子装置及びそのデバッグ認証方法
US6889344B2 (en) * 2001-08-09 2005-05-03 International Business Machines Corporation System and method for exposing hidden events on system buses
EP1421704B1 (de) * 2001-08-29 2007-11-14 Analog Devices, Inc. Verfahren und apparat zur takt- und leistungssteuerung in drahtlosen systemen
US20030056071A1 (en) * 2001-09-18 2003-03-20 Triece Joseph W. Adaptable boot loader
DE10148157B4 (de) * 2001-09-28 2006-05-18 Infineon Technologies Ag Programmgesteuerte Einheit
GB2380826A (en) * 2001-10-12 2003-04-16 Siroyan Ltd Debugging of processors
US20030074650A1 (en) * 2001-10-17 2003-04-17 Tankut Akgul Debugger operating system for embedded systems
US7406674B1 (en) 2001-10-24 2008-07-29 Cypress Semiconductor Corporation Method and apparatus for generating microcontroller configuration information
US8078970B1 (en) 2001-11-09 2011-12-13 Cypress Semiconductor Corporation Graphical user interface with user-selectable list-box
US8042093B1 (en) 2001-11-15 2011-10-18 Cypress Semiconductor Corporation System providing automatic source code generation for personalization and parameterization of user modules
US7844437B1 (en) 2001-11-19 2010-11-30 Cypress Semiconductor Corporation System and method for performing next placements and pruning of disallowed placements for programming an integrated circuit
US8069405B1 (en) 2001-11-19 2011-11-29 Cypress Semiconductor Corporation User interface for efficiently browsing an electronic document using data-driven tabs
US7774190B1 (en) 2001-11-19 2010-08-10 Cypress Semiconductor Corporation Sleep and stall in an in-circuit emulation system
US7770113B1 (en) 2001-11-19 2010-08-03 Cypress Semiconductor Corporation System and method for dynamically generating a configuration datasheet
US6971004B1 (en) 2001-11-19 2005-11-29 Cypress Semiconductor Corp. System and method of dynamically reconfiguring a programmable integrated circuit
US7117352B1 (en) * 2002-02-13 2006-10-03 Lsi Logic Corporation Debug port disable mechanism
JP2003263339A (ja) * 2002-03-08 2003-09-19 Seiko Epson Corp デバック機能内蔵型マイクロコンピュータ
JP2003263337A (ja) * 2002-03-08 2003-09-19 Seiko Epson Corp デバック機能内蔵型マイクロコンピュータ
US7266848B2 (en) * 2002-03-18 2007-09-04 Freescale Semiconductor, Inc. Integrated circuit security and method therefor
US8103497B1 (en) 2002-03-28 2012-01-24 Cypress Semiconductor Corporation External interface for event architecture
EP1349071A1 (de) * 2002-03-29 2003-10-01 STMicroelectronics N.V. Integrierte Schaltung mit Direktfehlerbeseitigungsarchitektur
US7308608B1 (en) 2002-05-01 2007-12-11 Cypress Semiconductor Corporation Reconfigurable testing system and method
US20030233601A1 (en) * 2002-06-17 2003-12-18 Vaid Kushagra V. Non-intrusive signal observation techniques usable for real-time internal signal capture for an electronic module or integrated circuit
US6687129B1 (en) 2002-08-29 2004-02-03 Hewlett-Packard Development Company, L.P. Circuit board and frame assembly
JP2004102331A (ja) * 2002-09-04 2004-04-02 Renesas Technology Corp 半導体装置
US7761845B1 (en) 2002-09-09 2010-07-20 Cypress Semiconductor Corporation Method for parameterizing a user module
US8374841B2 (en) * 2002-11-22 2013-02-12 Texas Instruments Incorporated Precise detection of triggers and trigger ordering for asynchronous events
CN100440140C (zh) * 2003-02-11 2008-12-03 Vi实验室有限公司 用于调节计算机软件的执行的***和方法
US7444571B1 (en) 2003-02-27 2008-10-28 Marvell International Ltd. Apparatus and method for testing and debugging an integrated circuit
US7216276B1 (en) 2003-02-27 2007-05-08 Marvell International Ltd. Apparatus and method for testing and debugging an integrated circuit
US7496818B1 (en) * 2003-02-27 2009-02-24 Marvell International Ltd. Apparatus and method for testing and debugging an integrated circuit
WO2004097545A2 (en) * 2003-05-01 2004-11-11 Maz Laboratory A method of executing a computer program
US7159101B1 (en) 2003-05-28 2007-01-02 Mips Technologies, Inc. System and method to trace high performance multi-issue processors
US20050060690A1 (en) * 2003-09-15 2005-03-17 Kuo-Jung Tung Microprocessor system with software emulation processed by auxiliary hardware
US7194663B2 (en) * 2003-11-18 2007-03-20 Honeywell International, Inc. Protective bus interface and method
US7065593B2 (en) * 2003-12-17 2006-06-20 Tellabs Petaluma, Inc. Centralized, double bandwidth, directional, shared bus communication system architecture
WO2005091144A2 (fr) * 2004-02-23 2005-09-29 Stmicroelectronics S.A. Surveillance de l’execution d’un programme par un processeur d’un circuit electronique
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
US8286125B2 (en) 2004-08-13 2012-10-09 Cypress Semiconductor Corporation Model for a hardware device-independent method of defining embedded firmware for programmable systems
US8069436B2 (en) 2004-08-13 2011-11-29 Cypress Semiconductor Corporation Providing hardware independence to automate code generation of processing device firmware
CN100371907C (zh) * 2004-11-19 2008-02-27 凌阳科技股份有限公司 用于处理器的追踪调试方法及***
CN100359486C (zh) * 2004-11-24 2008-01-02 中兴通讯股份有限公司 一种调试操作***内核态程序的方法及装置
US7332976B1 (en) 2005-02-04 2008-02-19 Cypress Semiconductor Corporation Poly-phase frequency synthesis oscillator
JP2006268727A (ja) * 2005-03-25 2006-10-05 Seiko Epson Corp 集積回路装置、デバッグシステム、マイクロコンピュータ及び電子機器
US7400183B1 (en) 2005-05-05 2008-07-15 Cypress Semiconductor Corporation Voltage controlled oscillator delay cell and method
US8089461B2 (en) 2005-06-23 2012-01-03 Cypress Semiconductor Corporation Touch wake for electronic devices
US7437616B2 (en) * 2005-12-15 2008-10-14 Atmel Corporation Dual CPU on-chip-debug low-gate-count architecture with real-time-data tracing
US8085067B1 (en) 2005-12-21 2011-12-27 Cypress Semiconductor Corporation Differential-to-single ended signal converter circuit and method
KR101242602B1 (ko) * 2006-02-08 2013-03-19 삼성전자주식회사 테스트 회로를 내장한 시스템 온 칩
US8067948B2 (en) 2006-03-27 2011-11-29 Cypress Semiconductor Corporation Input/output multiplexer bus
JP2007328403A (ja) * 2006-06-06 2007-12-20 Matsushita Electric Ind Co Ltd バス監視回路および情報処理検査システム
JP4795147B2 (ja) * 2006-07-11 2011-10-19 富士通株式会社 伝送装置
DE112007001641T5 (de) * 2006-09-15 2009-05-28 Mitsubishi Electric Corp. Austestsystem
US20080179386A1 (en) * 2006-10-26 2008-07-31 Daniel Oberan Atm dispensable non-cash media sheet with separable folding card and process of dispensing from automated teller
TWI331278B (en) * 2007-03-14 2010-10-01 Ind Tech Res Inst Debug method
US9564902B2 (en) 2007-04-17 2017-02-07 Cypress Semiconductor Corporation Dynamically configurable and re-configurable data path
US8026739B2 (en) 2007-04-17 2011-09-27 Cypress Semiconductor Corporation System level interconnect with programmable switching
US8516025B2 (en) 2007-04-17 2013-08-20 Cypress Semiconductor Corporation Clock driven dynamic datapath chaining
US7737724B2 (en) 2007-04-17 2010-06-15 Cypress Semiconductor Corporation Universal digital block interconnection and channel routing
US8040266B2 (en) 2007-04-17 2011-10-18 Cypress Semiconductor Corporation Programmable sigma-delta analog-to-digital converter
US8130025B2 (en) 2007-04-17 2012-03-06 Cypress Semiconductor Corporation Numerical band gap
US8092083B2 (en) 2007-04-17 2012-01-10 Cypress Semiconductor Corporation Temperature sensor with digital bandgap
US8266575B1 (en) 2007-04-25 2012-09-11 Cypress Semiconductor Corporation Systems and methods for dynamically reconfiguring a programmable system on a chip
US8065653B1 (en) 2007-04-25 2011-11-22 Cypress Semiconductor Corporation Configuration of programmable IC design elements
US9720805B1 (en) 2007-04-25 2017-08-01 Cypress Semiconductor Corporation System and method for controlling a target device
US8049569B1 (en) 2007-09-05 2011-11-01 Cypress Semiconductor Corporation Circuit and method for improving the accuracy of a crystal-less oscillator having dual-frequency modes
CN101458725B (zh) * 2007-12-14 2012-01-25 上海海尔集成电路有限公司 微控制器芯片及其调试方法
TWI426381B (zh) * 2008-11-28 2014-02-11 Hon Hai Prec Ind Co Ltd 嵌入式系統之測試裝置及方法
US8166344B2 (en) * 2009-01-28 2012-04-24 Dspace Digital Signal Processing And Control Engineering Gmbh Method for controlling an operating mechanism and a manipulation unit
US8171341B2 (en) * 2009-01-28 2012-05-01 Dspace Digital Signal Processing And Control Engineering Gmbh Method for controlling an operating mechanism and a manipulation unit
US8074118B2 (en) * 2009-01-28 2011-12-06 Dspace Digital Signal Processing And Control Engineering Gmbh Method for influencing a control unit and manipulation unit
US8375250B2 (en) * 2009-03-04 2013-02-12 Infineon Technologies Ag System and method for testing a module
US9448964B2 (en) 2009-05-04 2016-09-20 Cypress Semiconductor Corporation Autonomous control in a programmable system
KR101324370B1 (ko) * 2009-05-27 2013-11-01 미쓰비시덴키 가부시키가이샤 시퀀스 프로그램의 디버그 장치, 디버그 방법, 및 프로그램
CN101739338B (zh) * 2009-12-21 2012-05-23 龙芯中科技术有限公司 一种处理器地址数据跟踪的装置及方法
CN103279326A (zh) * 2009-12-23 2013-09-04 上海高性能集成电路设计中心 一种用于软件调试的微处理器数据流地址匹配自陷装置
CN102360329B (zh) * 2011-09-29 2014-11-05 西北工业大学 总线监控与调试控制装置及进行总线监控与总线调试的方法
CN102662835B (zh) * 2012-03-23 2015-10-28 凌阳科技股份有限公司 一种针对嵌入式***的程序调试方法及嵌入式***
CN104380266B (zh) * 2012-05-07 2017-07-18 密克罗奇普技术公司 具有复位条件跟踪能力的处理器装置
CN103514077B (zh) * 2012-06-21 2017-08-25 深圳市祈飞科技有限公司 计算机***瘫痪报警装置及报警方法
US9489287B2 (en) * 2013-08-23 2016-11-08 Atmel Corporation Breaking code execution based on time consumption
JP6309919B2 (ja) * 2015-06-23 2018-04-11 ファナック株式会社 データ取得機能を有する数値制御装置
US9419621B1 (en) 2015-09-18 2016-08-16 Freescale Semiconductor, Inc. System on chip and method of operating a system on chip
US10254337B2 (en) * 2015-10-27 2019-04-09 Marvell World Trade Ltd. System and method for establishing a trusted diagnosis/debugging agent over a closed commodity device
US10120740B2 (en) * 2016-03-22 2018-11-06 Micron Technology, Inc. Apparatus and methods for debugging on a memory device
CN106126360B (zh) * 2016-06-28 2020-08-25 海信视像科技股份有限公司 地址空洞屏蔽方法及装置
CN106250260B (zh) * 2016-08-03 2019-07-23 北京小米移动软件有限公司 处理器溢出监控和调试方法及装置
CN106970877A (zh) * 2017-03-15 2017-07-21 杭州中天微***有限公司 控制调试请求的装置及数据处理器
CN107301102B (zh) * 2017-06-22 2020-05-26 湖南国科微电子股份有限公司 一种处理器调试方法及***
CN109284223B (zh) * 2017-07-21 2023-10-20 超威半导体(上海)有限公司 可配置的调试方法和***
EP3557422A4 (de) * 2018-03-09 2020-01-08 Shenzhen Goodix Technology Co., Ltd. Verfahren für den zugriff auf code-sram und elektronische vorrichtung
US11105850B2 (en) * 2018-05-24 2021-08-31 Seagate Technology Llc Secure debug system for electronic devices
JP6981920B2 (ja) * 2018-05-25 2021-12-17 ルネサスエレクトロニクス株式会社 半導体装置、およびデバッグ方法
JP6961553B2 (ja) 2018-08-30 2021-11-05 株式会社東芝 情報処理装置、システム及び方法
CN111737103A (zh) * 2019-03-25 2020-10-02 阿里巴巴集团控股有限公司 一种包括调试单元的处理器和调试***
JP7378254B2 (ja) * 2019-09-19 2023-11-13 キヤノン株式会社 マルチプロセッサデバイス
CN113672554B (zh) * 2021-07-06 2023-12-29 平头哥(杭州)半导体有限公司 处理器核、处理器、片上***和调试***
CN114024878A (zh) * 2021-11-18 2022-02-08 芯翼信息科技(上海)有限公司 数据传输方法、装置、介质和设备
CN114510432B (zh) * 2022-04-20 2022-07-12 苏州浪潮智能科技有限公司 一种寄存器调试平台和调试方法
CN116340188B (zh) * 2023-05-26 2023-08-04 深流微智能科技(深圳)有限公司 Gpu芯片渲染任务的调试方法及***
CN116383091B (zh) * 2023-05-29 2023-08-29 珠海妙存科技有限公司 eMMC验证平台的启动方法、启动装置及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63155336A (ja) * 1986-12-19 1988-06-28 Hitachi Ltd デ−タ処理装置
DE3740762A1 (de) * 1987-01-22 1988-08-04 Nat Semiconductor Corp Datenverarbeitungssystem mit einer externen schnittstelle
US5084814A (en) * 1987-10-30 1992-01-28 Motorola, Inc. Data processor with development support features
CN1019336B (zh) * 1988-12-02 1992-12-02 霍尼威尔布尔公司 微处理器定向中断
DE69127992T2 (de) * 1990-04-20 1998-06-04 Hitachi Ltd Mikroprozessor zur Buszykluseinfügung zwecks Informationslieferung für eine Emulation
US5581695A (en) * 1990-05-09 1996-12-03 Applied Microsystems Corporation Source-level run-time software code debugging instrument
US5493723A (en) * 1990-11-06 1996-02-20 National Semiconductor Corporation Processor with in-system emulation circuitry which uses the same group of terminals to output program counter bits
JPH06290076A (ja) * 1993-04-05 1994-10-18 Nec Ic Microcomput Syst Ltd デバッグ装置
JPH0744419A (ja) * 1993-08-03 1995-02-14 Nec Ic Microcomput Syst Ltd マイコン開発支援装置
US5630052A (en) * 1993-09-30 1997-05-13 Intel Corporation System development and debug tools for power management functions in a computer system
US5539901A (en) * 1993-09-30 1996-07-23 Intel Corporation Method and apparatus for system management mode support for in-circuit emulators
US5533192A (en) * 1994-04-21 1996-07-02 Apple Computer, Inc. Computer program debugging system and method
US5615331A (en) * 1994-06-23 1997-03-25 Phoenix Technologies Ltd. System and method for debugging a computing system
US5630102A (en) * 1994-12-19 1997-05-13 Intel Corporation In-circuit-emulation event management system
JP2752592B2 (ja) * 1994-12-28 1998-05-18 日本ヒューレット・パッカード株式会社 マイクロプロセッサ、マイクロプロセッサ−デバッグツール間信号伝送方法及びトレース方法
US5544311A (en) * 1995-09-11 1996-08-06 Rockwell International Corporation On-chip debug port

Also Published As

Publication number Publication date
KR960024921A (ko) 1996-07-20
KR100255026B1 (ko) 2000-05-01
EP0720093B1 (de) 2001-11-14
US5978937A (en) 1999-11-02
CN1316368C (zh) 2007-05-16
CN1133455A (zh) 1996-10-16
CN1279449C (zh) 2006-10-11
DE69523884D1 (de) 2001-12-20
EP0720093A1 (de) 1996-07-03
CN1362677A (zh) 2002-08-07
CN1540518A (zh) 2004-10-27
CN1122226C (zh) 2003-09-24

Similar Documents

Publication Publication Date Title
DE69523884T2 (de) Mikroprozessor mit Fehlersuchsystem
DE69616462T2 (de) Datenprozessor mit eingebauter Emulationsschaltung
DE69616463T2 (de) Datenprozessor mit eingebauter Emulationsschaltung
DE69830718T2 (de) Ablaufdaten-cachespeicher fuer mikroprozessorbasierte anordung
DE69415600T2 (de) Mikrokontroller mit hardwaremässiger Fehlerbeseitigungsunterstützung nach dem Boundary-Scanverfahren
DE69616917T2 (de) Datenprozessor mit eingebauter Emulationsschaltung
DE69414985T2 (de) Verzweigungsentscheidungskodierung
DE69801220T2 (de) Fehlersuchschnittstelle mit kompaktem ablaufdatenspeicher
DE69523549T2 (de) Mikroprozessor mit Fehlersuchsystem
DE69616708T2 (de) Datenprozessor mit eingebauter Emulationschaltung
DE69027471T2 (de) Fehlersuchperipherie für Mikrorechner, Mikroprozessoren und Kernprozessor beinhaltende integrierte Schaltungen und Vorrichtung die diese Fehlersuchperipherie verwendet
DE69622112T2 (de) Auf-Chip-Schnittstelle zur Fehlerbeseitigung
DE4313594C2 (de) Mikroprozessor
DE69127992T2 (de) Mikroprozessor zur Buszykluseinfügung zwecks Informationslieferung für eine Emulation
DE69432514T2 (de) Leistungssteuerung in einem Computersystem
DE2953432C1 (de) Vorrichtung zum Testen eines Mikroprogramms
DE102008060790B4 (de) Debugging-System
DE10333817B4 (de) Emulationsschnittstellensystem
DE69512485T2 (de) Fehlerbeseitigungs- und Systemverwaltungsunterbrechung
DE4418892C2 (de) Mikrocomputer
DE4311441C2 (de) Verfahren zum Betreiben eines Mikroprozessors mit einem externen Anschluß
DE2533737A1 (de) Datenprozessor
DE19604251A1 (de) Microcomputersystem, Verfahren zur Erfassung einer Vielzahl von Statusdaten und Computersystem
EP0500973A1 (de) Initialisierungsroutine im EEPROM
DE69411096T2 (de) Entwicklungsunterstützungssystem für einen Mikrocomputer mit internem Cachespeicher

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: KABUSHIKI KAISHA TOSHIBA, KAWASAKI, KANAGAWA, JP A

8364 No opposition during term of opposition