DE69830718T2 - Ablaufdaten-cachespeicher fuer mikroprozessorbasierte anordung - Google Patents

Ablaufdaten-cachespeicher fuer mikroprozessorbasierte anordung Download PDF

Info

Publication number
DE69830718T2
DE69830718T2 DE69830718T DE69830718T DE69830718T2 DE 69830718 T2 DE69830718 T2 DE 69830718T2 DE 69830718 T DE69830718 T DE 69830718T DE 69830718 T DE69830718 T DE 69830718T DE 69830718 T2 DE69830718 T2 DE 69830718T2
Authority
DE
Germany
Prior art keywords
sequence
processor
cache
instruction
information
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
DE69830718T
Other languages
English (en)
Other versions
DE69830718D1 (de
Inventor
P. Daniel MANN
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.)
GlobalFoundries Inc
Original Assignee
Advanced Micro Devices 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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Application granted granted Critical
Publication of DE69830718D1 publication Critical patent/DE69830718D1/de
Publication of DE69830718T2 publication Critical patent/DE69830718T2/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/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches

Description

  • TECHNISCHES GEBIET
  • Die Erfindung betrifft eine Software-Debug-Unterstützung in Mikroprozessoren, und insbesondere eine mikroprozessor-basierte Vorrichtung mit einem auf dem Chip angeordneten Instruktions-Abfolge-Cache.
  • TECHNISCHER HINTERGRUND
  • Der Anstieg der Software-Komplexität in Verbindung mit ansteigenden Prozessor-Taktgeschwindigkeiten hat die Entwickler von Anwender-Software mit zunehmenden Herausforderungen konfrontiert. Die Kosten für Entwicklung und Debugging neuer Software-Produkte ist nun ein wichtiger Faktor bei der Prozessor-Wahl. Ein Versagen eines Prozessors in der adäquaten Erleichterung des Software-Debugging verursacht längere Kunden-Entwicklungszeiten und reduziert die Attraktivität des Prozessors für die Verwendung in der Industrie. Das Erfordernis der Schaffung einer Software-Debug-Unterstützung ist besonders akut in der Industrie für eingebettete Produkte, bei denen spezialisierte Produkte oft mit einem Prozessor-Kern kombiniert werden.
  • Außer den Software-Ingenieuren sind auch andere Parteien von der Debug-Tool-Konfiguration betroffen. Zu diesen Partein zählen: der "Abfolge"-Algorithmus-Entwickler, der erfasste Software-Abfolge-Daten durchsuchen muss, die den Instruktions-Ausführungs-Fluss in einem Prozessor reflektiert; der Entwickler von In-circuit-Emulatoren, der sich mit den Problemen der Signal-Synchronisation, Taktfrequenz und Abfolge-Bandbreite befasst; und der Prozessor-Hersteller, der keine Lösung anstrebt, die erhöhte Prozessor-Kosten oder Design- und Entwicklungskomplexität verursacht.
  • Bei Desktop-Systemen stehen derzeit komplexe Multitasking-Operationen zur Verfügung, um das Debugging zu unterstützen. Die anfängliche Aufgabe jedoch, diese Operationen zuverlässig zu betreiben, erfordert oft eine spezielle Entwicklungsvorrichtung. Wenngleich sie nicht den Standard in der Desktop-Umgebung bildet, handelt es sich bei der Verwendung einer derartigen Vorrichtung oft um den Ansatz, der in der Industrie eingebetteter Produkte verwendet wird. Häufig werden logische Analysevorrichtungen, Nurlesespeicher-(ROM-)Emulatoren und In-circuit-Emulatoren (ICE) verwendet. In-circuit-Emulatoren bieten in der Tat bestimmte Vorteile gegenüber anderen Debug-Systemen, wobei sie eine vollständige Steuerung und eine vollständige Sichtbarkeit der Speicher- und Register-Inhalte bietet, während die Überlagerung und der Abfolge-Speicher beim Systemspeicher unzureichend sind. Die Verwendung herkömmlicher In-circuit-Emulatoren, bei denen ein Interfacing zwischen einem Kunden-Emulator-Back-Ende und einer Prozesser-Buchse erforderlich ist, um die Kommunikation zwischen der Emulations-Vorrichtung und dem Target-System zu ermöglichen, wird in der derzeitigen Ära exotischer Packs und schrumpfender Produktlebenszyklen zunehmend schwierig und kostenaufwendig.
  • Wenn man annimmt, dass eine Vollfunktions-In-circuit-Emulation erforderlich ist, existieren nur wenige bekannte Prozessor-Herstellungstechniken, die in der Lage sind, die erforderliche Unterstützung für die Emulations-Vorrichtung zu bieten. Bei den meisten für Personal-Computer-(PC-) Systeme vorgesehenen Prozessoren wird ein Multiplex-Ansatz verwendet, bei dem existierende Stifte für die Verwendung beim Software-Debugging gemultiplext werden. Dieser Ansatz ist in der Industrie für eingebettete Produkte, bei denen größere Schwierigkeiten hinsichtlich einer Überlastung der Stift-Funktionen bestehen, nicht besonders wünschenswert.
  • Bei weiteren hochentwickelten Prozessoren werden die Debug-Stifte zeitlich gemultiplext. Bei derartigen Prozessoren wird der Adress-Bus verwendet, um während eines BTA-Zyklus (Branch Target Address) Software-Ablauferfolgungs-Information mitzuteilen. Der BTA-Zyklus jedoch muss aus dem regulären Bus-Betrieb entwendet werden. In Debug-Umgebungen, bei denen die Abzweig-Aktivität hoch ist und die Cache-Treffer-Raten niedrig sind, wird es unmöglich, die BTA-Zyklen zu verbergen. Der resultierende Konflikt hinsichtlich des Zugriffs auf den Adress-Bus erfordert ein Prozessor"Zurückdrosseln", um einen Verlust an Instruktions-Abfolge-Information zu verhindern. In der Kommunikationsindustrie beispielsweise macht die Software extensiven Gebrauch von Abzweigungen und erleidet eine unzureichende Cache-Nutzung, was oft einer Zurückdrosselung um 20 % oder mehr resultiert. Dieser Betrag an Drosselung ist für eingebettete Produkte, bei denen Echtzeit-Einschränkungen aufgenommen werden müssen, inakzeptabel.
  • Gemäß einem weiteren Ansatz wird ein zweiter "Abfolge"- oder "Slave"-Prozessor mit dem Hauptprozessor kombiniert, wobei die beiden Prozessoren miteinander in Schritt arbeiten. Nur der Hauptprozessor ist zum Abrufen von Instruktionen erforderlich. Der zweite Prozessor, der Slave-Prozessor, wird zum Überwachen der abgerufenen Instruktionen auf dem Datenbus verwendet und hält seinen internen Zustand mit dem Hauptprozessor synchronisiert. Der Adress-Bus des Slave-Prozessors funktioniert zum Liefern von Abfolge-Information. Nach dem Hochfahren wird über einen JTAG(Joint Test Action Group) Eingang der zweite Prozessor in eine Slave-Betriebsart geschaltet. Frei von der Notwendigkeit zum Abruf von Instruktionen liefern sein Adress-Bus und weitere Stifte die erforderliche Abfolge-Information.
  • Ein weiterer existierender Ansatz beinhaltet das Erstellen einer Debug-Unterstützung in jedem Prozessor, wobei jedoch nur die erforderlichen Signalstifte in einer beschränkten Anzahl von Packen außengebondet werden. Diese "speziell" gepackten Versionen des Prozessors werden während des Debugging verwendet und für die Endproduktion durch das kleinere Pack ersetzt. Dieser Außenbond-Ansatz leidet unter dem Erfordernis, zusätzliche Bond-Pad-Stellen in sämtlichen fabrizierten Vorrichtungen zu unterstützen. Dies kann bei kleinen Packen und bei Konzepten mit Pad-Limitationen eine Belastung darstellen, insbesondere falls durch die Debug-Unterstützungs-Variante eine beträchtliche Anzahl von "Extra"-Stiften erforderlich ist. Zudem ist die Debug-Fähigkeit der speziell gepackten Prozessoren bei typischen prozessor-basierten Produktionssystemen unvermeidlich.
  • Bei einem wiederum weiteren Ansatz (dem "Background Debug Mode" von Motorola, Inc.) ist eine begrenzte 0n-chip-Schaltung für die basale Betriebssteuerung erforderlich. Obwohl es sich um ein speziell zugewiesenes serielles Link handelt, das zusätzliche Stifte erfordert, ermöglicht dieser Ansatz einem Debugger, das Target-System zu starten und zu stoppen und basale Code-Breakpoints einzuführen, indem spezielle Instruktionen in den Systemspeicher eingegeben werden. Nachdem ein Anhalten erfolgt ist, werden spezielle Instruktionen verwendet, um Speichervariablen und Registerinhalte zu inspizieren. Dieser serielle Link jedoch bietet keine Abfolge-Unterstützung – es sind zusätzliche speziell vorgesehene Stifte und kostenaufwendige externe Abfolge-Erfassungs-Hardware erforderlich, um Instruktions-Abfolge-Daten zu liefern. Die Europäische Patentanmeldung EP-A-O 762 276 von Motorola beschreibt ein Debug-Modul eines Datenprozessors, das einen parallelen Ausgangs-Port aufweist, um interne Betriebsinformation über ein DDATA-Signal und ein PST-Signal zu liefern. Das DDATA-Signal liefert Daten, die Operandenwerte reflektieren, und das PSI-Signal liefert kodierte Status-Information, die einen Ausführungsstatus der zentralen Verarbeitungseinheit reflektiert.
  • Somit leiden die derzeitigen Lösungen für das Software-Debugging unter einer Vielzahl von Beschränkungen, zu denen zählen: erhöhte Packungs- und Entwicklungskosten, Schaltungskomplexität, Prozessor-Drosselung und Schwierigkeiten bei der Bandbreiten-Anpassung. Ferner existiert derzeit kein adäquates kostengünstiges Verfahren zum Erhalt von Abfolge-Informa tion. Die Limitationen der existierenden Lösungen werden in der Zukunft wahrscheinlich noch verschärft, wenn die Taktfrequenzen interner Prozessoren weiterhin zunehmen.
  • OFFENBARUNG DER ERFINDUNG
  • Kurz ausgedrückt weist eine prozessor-basierte Vorrichtung gemäß der vorliegenden Erfindung einen On-chip-Instruktions-Abfolge-Cache auf, der in der Lage ist, Information zum Rekonstruieren des Instruktions-Ausführungs-Flusses zu liefern. Die Abfolge-Information kann erfasst werden, ohne den normalen Prozessorbetrieb anzuhalten. Es sind sowohl serielle als auch parallele Kommunikationskanäle vorgesehen, um die Abfolge-Information an externe Vorrichtungen zu übermitteln. Bei der offenbarten Ausführungsform der Erfindung werden die Steuerbarkeit und Beobachtbarkeit des Instruktions-Abfolge-Cache mittels eines Software-Debug-Ports erzielt, der ein für IEEE-1 149.1–1990 geeignetes JTAG- (Joint Test Action Group) Interface oder ein ähnliches genormtes Interface verwendet, das in die prozessorbasierte Vorrichtung integriert ist.
  • Gemäß einem ersten Aspekt wird mit der vorliegenden Erfindung eine prozessorbasierte elektronische Vorrichtung geschaffen, die in der Lage ist, eine Folge aus externen Quellen erhaltener Instruktionen auszuführen, wobei die prozessor-basierte Vorrichtung mit Pins zur Verbindung mit externen Leitern versehen ist, wobei die prozessor-basierte elektronische Vorrichtung gekennzeichnet ist durch:
    einen mit einem Prozessor-Kern verbundenen Abfolge-Cache zum Speichern von Abfolge-Information, welche die Reihenfolge angibt, in der die Instruktionen von dem Prozessor-Kern ausgeführt werden, wobei der Abfolge-Cache mehrere Speicherelemente aufweist, von denen jedes in der Lage ist, Abfolge-Information zu speichern, die Abfolge-Information mehrere Instruktions-Abfolge-Aufzeichnungen aufweist, die Adress- und Daten-Information enthalten, der Abfolge-Cache derart konfiguriert ist, dass er auf einen Lade-Befehl hin Daten aus dem Prozessor-Kern lädt, und derart konfiguriert ist, dass der Prozessor-Kern auf einen Aufruf-Befehl hin Daten aus dem Abfolge-Cache aufruft;
    und einen zwischen dem Abfolge-Cache und gewählten der Pins angeordneten Kommunikationskanal zum Übertragen von Abfolge-Information von dem Abfolge-Cache zu externen Vorrichtungen.
  • Gemäß einem zweiten Aspekt wird mit der vorliegenden Erfindung ein Verfahren zum Analysieren von Abfolge-Information in einer prozessorbasierten Vorrichtung mit einem Prozessor-Kern angegeben, das folgende Schritte aufweist:
    Bereitstellen eines Abfolge-Cache in der prozessor-basierten Vorrichtung, wobei der Abfolge-Cache mehrere Speicherelemente aufweist, die zum Speichern von Abfolge-Information in der Lage sind;
    Erfassen von Abfolge-Information aus dem Prozessor-Kern, welche die Reihenfolge angibt, in der die Folge von Instruktionen durch den Prozessor-Kern ausgeführt wird;
    Speichern der Abfolge-Information in den Abfolge-Cache-Speicherelementen als Instruktions-Abfolge-Aufzeichnungen;
    Aufrufen der Abfolge-Information durch den Prozessor-Kern aus den Abfolge-Cache-Speicherelementen auf einen Aufruf-Befehl hin; und
    Laden weiterer Information aus dem Prozessor-Kern in die Abfolge-Cache-Speicherelemente auf einen Lade-Befehl hin;
    Bereitstellen eines Kommunikationskanals aus dem Abfolge-Cache zu gewählten Pins der prozessor-basierten Vorrichtung; und
    Zuführen der Abfolge-Information aus dem Abfolge-Cache zu den gewählten Pins über den Kommunikationskanal.
  • Vorzugsweise wird die in dem Instruktions-Abfolge-Cache gespeicherte Information derart "komprimiert", dass ein kleinerer Cache verwendet werden kann. Ferner erlaubt das Komprimieren der Abfolge-Daten, dass externe Hardware mit normalen Busgeschwindigkeiten arbeitet, selbst wenn der interne Prozessor sehr viel schneller arbeitet. Somit kann mit einer gemäß der vorliegenden Erfindung ausgebildeten prozessor-basierten Vorrichtung weniger kostenaufwendige externe Erfassungs-Hardware verwendet werden.
  • Wenn bei der offenbarten Ausführungsform der Erfindung eine Adresse in einem Instruktions-Fluss aus einem Programm-Bild (Objekt-Modul) erhalten werden kann, dann ist sie nicht in den Abfolge-Daten vorgesehen. Vorzugsweise werden nur Instruktionen mitgeteilt, die den Instruktions-Fluss unterbrechen, und ferner nur Instruktionen, bei denen die Trarget-Adresse in irgendeiner Weise abhängig ist. Zu derartigen "Unterbrechungs"-Ereignissen zählen z.B. Anruf-Instruktionen oder bedingungslose Abzweig-Instruktionen, bei denen die Target-Adresse aus einem Datenregister oder einer anderen Speicherstelle wie z.B. einem Stapel vorgelegt wird. Im Fall zahlreicher bedingungsloser Abzweige oder sequentieller Instruktionen wird kein Eintrag in dem Abfolge-Cache platziert, da die Target-Adresse vollständig aus dem Instruktions-Fluss bestimmt werden kann. Zu der weiteren Information, die von dem Instruktions-Abfolge-Cache geliefert wird, zählen: die Target-Adresse einer Trap- oder Interrupt-Handhabungsvorrichtung, die Target-Adresse einer Rücklauf-Instruktion, Adressen aus den Abfolge-Rückläufen, Task-Identifikationen und Abfolge-Erfassungs-Stop-/Start-Information. Diese Technik reduziert die Menge an Information, die aus dem Abfolge-Cache an die externe Debug-Hardware übermittelt wird.
  • Somit wird mit der Erfindung eine prozessor-basierte Vorrichtung geschaffen, die eine präzise, hochleistungsfähige Lösung für das Vorlegen von In struktions-Abfolge-Information bietet. Der offenbarte On-chip-Instruktions-Abfolge-Cache behebt verschiedenen der Bandbreiten- und Taktsynchronisationsprobleme, die bei zahlreichen existierenden Lösungsansätzen existieren.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Ein besseres Verständnis der vorliegenden Erfindung ergibt sich aus der folgenden detaillierten Beschreibung in Verbindung mit den folgenden Zeichnungen, in denen folgendes gezeigt ist:
  • 1 zeigt ein Blockschaltbild einer Software-Debug-Umgebung, bei der eine Software-Debug-Lösung gemäß der vorliegenden Erfindung verwendet wird;
  • 2 zeigt ein Blockschaltbild zur Darstellung von Einzelheiten eines Beispiels eines eingebetteten Prozessor-Produkts, das einen On-chip-Instruktions-Abfolge-Cache gemäß der vorliegenden Erfindung aufweist;
  • 3 zeigt ein vereinfachtes Blockschaltbild zur Darstellung des Verhältnisses zwischen einem Beispiel eines Instruktions-Abfolge-Cache und anderen Komponenten eines eingebetteten Prozessor-Produkts gemäß der vorliegenden Erfindung;
  • 4 zeigt ein Flussdiagramm zur Veranschaulichung des Durchlaufs eines Software-Debug-Befehls gemäß einer Ausführungsform der Erfindung;
  • 5 zeigt ein Flussdiagramm zur Veranschaulichung des Durchlaufs des verbesserten Software-Port-Befehls gemäß einer zweiten Ausführungsform der Erfindung; und
  • 6A6G zeigen das generelle Format verschiedener Abfolge-Cache-Einträge zur Mitteilung einer Instruktions-Ausführung gemäß der Erfindung.
  • ART(EN) ZUM AUSFÜHREN DER ERFINDUNG
  • In den nun zu erläuternden Zeichnungen zeigt 1 ein Beispiel einer Software-Debug-Umgebung zur Veranschaulichung einer vorgesehenen Verwendung der vorliegenden Erfindung. Es ist ein Target-System T gezeigt, das eine eingebettete Prozessor-Vorrichtung gemäß der vorliegenden Erfindung enthält, die mit dem System-Speicher 106 verbunden ist. Die eingebettete Prozessor-Vorrichtung 102 enthält einen Prozessor-Kern 104, einen Instruktions-Abfolge-Cache 200 (2) und einen Debug-Port 100. Obwohl dies nicht als kritisch für die Erfindung angesehen wird, kann die eingebettete Prozessor-Vorrichtung 102 (nicht gezeigte) zusätzliche Schaltungen zum Durchführen anwendungsspezifischer Funktionen enthalten, oder sie kann in Form eines freistehenden Prozessors oder Digitalsignalprozessors ausgebildet sein. Vorzugsweise wird bei dem Debug-Port 100 ein für IEEE-1149.1–1990 geeignetes JTAG-Interface oder ein anderes standardisiertes Seriell-Port-Interface verwendet.
  • Ein Host-System H wird zur Anwendung der Debug-Steuerungs-Software 112 verwendet, um auf höherer Ebene angesetzte Befehle zu übertragen und die Extraktion und Analyse von Debug-Information, die von dem Taget-System T erzeugt wird, zu steuern. Das Host-System H und das Target-System T der offenbarten Ausführungsform der Erfindung kommunizieren über ein serielles Link 110. Die meisten Computer sind mit einem seriellen oder parallelen Interface ausgestattet, das mittels eines seriellen Konnek tors 108 in kostengünstiger Weise mit dem Debug-Port 100 verbunden werden kann, so dass viele verschiedene Computer als Host-System H funktionieren können. Alternativ kann der serielle Konnektor 108 durch eine für höhere Geschwindigkeit ausgelegte JTAG-/Netzwerk-Konvertierungs-Ausrüstung ersetzt werden. Ferner kann das Target-System T zum internen Analysieren von Debug-/Abfolge-Information konfiguriert sein.
  • Die nun zu erläuternde 2 zeigt Einzelheiten einer eingebetteten Prozessor-Vorrichtung 102 gemäß der vorliegenden Erfindung. Zusätzlich zu dem Prozessor-Kern 104 zeigt 2 verschiedene Elemente einer fortentwickelten Ausführungsform des Debug-Port 100, die zum Verwenden und Steuern des Abfolge-Cache 200 in der Lage ist. Zahlreiche weitere Konfigurationen sind möglich, wie Fachleuten auf dem Gebiet ersichtlich ist, und die verschiedenen Komponenten der Prozessor-Vorrichtung 102, die nachstehend beschrieben werden, sind zur Veranschaulichung der Vorteile gezeigt, die durch das Vorsehen eines On-chip-Abfolge-Cache 200 erzielt werden.
  • Signifikant für die offenbarte Ausführungsform der Erfindung ist, dass die Abfolge-Steuerungs-Schaltung 218 und der Abfolge-Cache 200 derart arbeiten, dass die Abfolge-Information zum Rekonstruieren des Instruktions-Ausführungs-Flusses in dem Prozessor-Kern 104 liefern. Die Abfolge-Steuerungs-Schaltung 218 unterstützt das "Ablaufverfolgen" zu einem Abfolge-Pad-Intergface-Port 220 oder zu einem Instruktions-Abfolge-Cache 200 und ermöglicht dem Benutzer eine Steuerung zum selektiven Aktivieren der Instruktions-Abfolge-Erfassung. Zu den weiteren Merkmalen, die durch die Abfolge-Steuerungs-Schaltung 218 ermöglicht werden, zählen die Programmierbarkeit der Synchronisationsadress-Erzeugung und der benutzerspezifizierten Abfolge-Aufzeichnungen, wie nachstehend eingehender erläutert wird. Die Abfolge-Steuerungs-Schaltung 218 steuert ferner einen Abfolge-Pad-Interface-Port 220. Bei Benutzung ist der Abfolge-Pad-Interface-Port 220 in der Lage, Abfolge-Daten zu liefern, während der Prozessor-Kern 104 Instruktion ausführt, obwohl Taktsynchronisations- und andere Probleme auftreten können. Der Instruktions-Abfolge-Cache 200 befasst sich mit zahl reichen dieser Probleme, wobei er die Bandbreiten-Anpassung verbessert und die Notwendigkeit beseitigt, eine Zurückdrosselungs-Schaltung in dem Prozessor-Kern 104 vorzusehen.
  • Bei der beschriebenen Ausführungsform der Erfindung brauchen zumindest die herkömmlichen JTAG-Stifte nicht in dem Software-Debug-Port 100 unterstützt zu werden. Die JTAG-Stifte werden essentiell zu einem Transportmechanismus, wobei existierende Stifte verwendet werden, um Befehle einzugeben, die von dem Prozessor-Kern 104 ausgeführt werden sollen. Insbesondere sind das Tesr-Taktsignal TCK, das Test-Modus-Wahl-Signal TMS, das Test-Daten-Eingangssignal TDI und das Test-Daten-Ausgangssignal TDO, die von dem JTAG-Test-Zugriffs-Port-(TAP)Controller 204 geliefert und gesteuert werden, herkömmliche JTAG-Unterstützungs-Signale und Fachleuten auf dem Gebiet bekannt. Wie nachstehend noch eingehender zu erläutern ist, wird durch eine "fortentwickelte" Ausführungsform des Debug-Ports 100 das Befehls-Bestätigungssignal CMDACK, das UnterbrechungsRequest-/Ablauferfassungs-Signal BRTC, das Stop-Übertragungs-Signal STOPTX und das Trigger-Signal TRIG zusätzlich an das Standard-JTAG-Interface übermittelt. Diese zusätzlichen Signale ermöglichen eine extreme Präzision der externen Unterbrechungspunkt-Veranlassung und -Überwachung, das Triggern externer Vorrichtungen auf externe Unterbrechungspunkte hin und das Entfallen des Status-Abfragens des JTAG-Seriell-Interface. Diese "Seitenband"-Signale bieten eine zusätzliche Funktionalität und verbessern die Kommunikationsgeschwindigkeiten für den Debug-Port 100. Diese Signale helfen ferner bei dem Betrieb eines optionalen Parallel-Ports 214, der an speziellen Außenbond-Versionen der offenbarten eingebetteten Prozessor-Vorrichtung 102 vorgesehen ist.
  • Über die herkömmlichen JTAG-Signale erhält der JTAG-TAP-Controller 204 Standard-JTAG-Seriell-Daten und Steuerdaten. Wenn eine DEBUG-Instruktion in das JTAG-Instruktions-Register geschrieben worden ist, wird ein serieller Debug-Shifter 212 derart mit dem JTAG-Testdaten-Eingangssignal TDI und dem Testdaten-Ausgangssignal TDO verbunden, dass Befehle und Daten dann in die Debug-Register 210 geladen und aus diesen gelesen werden können. Bei der offenbarten Ausführungsform der Erfindung weisen die Debug-Register 210 zwei Debug-Register zum Senden (TX_DATA-Register) und Empfangen (RX_DATA-Register) von Daten, ein Instruktions-Abfolge-Konfigurationsregister (ITCR) und ein Debug-Steuer-Status-Register (DCSR) auf.
  • Eine Steuer-Interface-Zustandsmaschine 206 koordiniert das Laden/Lesen von Daten in den bzw. aus dem Debug-Shifter 212 und in die bzw. aus den Debug-Registern 210. Ein Befehls-Dekodier- und Verarbeitungs-Block 208 dekodiert Befehle/Daten und sendet sie an die Prozessor-Interface-Logik 202 und die Abfolge-Debug-Interface-Logik 216. Zusätzlich zum Durchführen anderer Funktionen koordinieren die Abfolge-Debug-Interface-Logik 216 und die Abfolge-Steuerlogik 218 die Kommunikation von Abfolge-Information aus dem Abfolge-Cache 200 zu dem TAP-Controller 204. Die Prozessor-Interface-Logik 202 kommuniziert direkt mit dem Prozessor-Kern 104 sowie mit der Abfolge-Steuerlogik 218. Wie nachstehend detaillierter beschrieben wird, kommuniziert die parallele Port-Logik 214 mit der Steuer-Interface-Zustandsmaschine 206 und den Debug-Registern 210, um parallele Lese-/Schreib-Operationen bei optionalen Außenbond-Versionen der eingebetteten Prozessor-Vorrichtung 102 durchzuführen.
  • Bevor die Debug-Information unter Verwendung nur herkömmlicher JTAG-Signale über den Debug-Port 100 übermittelt wird, wird der Port 100 aktiviert, indem die öffentliche JTAG-Instruktion DEBUG in ein JTAG-Instruktions-Register geschrieben wird, das in dem TAP-Controler 204 enthalten ist. Wie nachstehend gezeigt, handelt es sich bei dem JTAG-Instruktions-Register der offenbarten Ausführungsform um ein 38-Bit-Register, das ein 32-Bit-Datenfeld (debug_data [31:0]), ein Vier-Bit-Befehlsfeld zum Verweisen auf verschiedene interne Register und vom Debug-Port geleistete Funktionen, ein Befehl-anhängig-Flag und ein Befehl-beendet-Flag aufweist. Es besteht die Möglichkeit, dass einige Befehle Bits aus dem debug_data-Feld als Unterfeld verwenden, um die Anzahl verfügbarer Befehle zu erweitern.
  • Figure 00130001
    JTAG-Instruktions-Register.
  • Das JTAG-Instruktions-Register wird durch Toggeln des Test-Modus-Wähl-Signals TMS gewählt. Das Test-Modus-Wähl-Signal TMS ermöglicht ein Verändern des JTAG-Wegs des Taktens in dem Abtastweg, so dass mehrere Wege variabler Länge verwendet werden können. Vorzugsweise kann auf das JTAG-Instruktions-Register über einen kurzen Weg zugegriffen werden. Dieses Register ist derart konfiguriert, dass es ein "weiches" Register zum Halten von Werten enthält, die in spezifizierte System-Register geladen oder aus diesen empfangen werden sollen.
  • Die nun zu erläuternde 3 zeigt ein vereinfachtes Blockschaltbild zur Veranschaulichung des Verhältnisses zwischen dem Beispiel eines Instruktions-Abfolge-Cache 200 und weiteren Komponenten einer eingebetteten Prozessor-Vorrichtung 102 gemäß der vorliegenden Erfindung. Bei einer vorgesehenen Ausführungsform der Erfindung ist der Abfolge-Cache 200 ein 128-Eintrags-First-in-first-out-(FIFO-)Zirkulär-Cache, der die aktuellsten Abfolge-Einträge aufzeichnet. Durch Vergrößerung der Bemessung des Abfolge-Cache 200 wird die Menge an Instruktions-Cache-Information, die erfasst werden kann, vergrößert, obwohl auch die Menge an erforderlichem Siliciumbereich zunehmen kann.
  • Wie nachstehend noch genauer beschrieben wird, werden in dem Abfolge-Cache 200 gemäß der offenbarten Ausführungsform der Erfindung mehrere Abfolge-Einträge von 20 Bit (oder mehr) gespeichert, welche die Reihenfolge angeben, in der Instruktionen von dem Prozessor-Kern 104 ausgeführt werden. Weitere Information, wie z.B. Task-Identifikationen und Abfolge-Erfassungs-Stop-/Start-Information, kann ebenfalls in dem Abfolge-Cache 200 platziert werden. Der Inhalt des Abfolge-Cache 200 wird an externe Hardware, wie z.B. das Host-System H, entweder über serielle oder paralle- le Abfolge-Stifte 230 übermittelt. Alternativ kann das Target-System T zum internen Prüfen des Inhalts des Abfolge-Cache 200 konfiguriert sein.
  • 4 zeigt ein auf hoher Ebene angesetztes Flussdiagramm des Befehls-Durchlaufs bei Verwendung eines Standard-JTAG-Interface. Beim Eintritt in den Debug-Modus in Schritt 400 wird in Schritt 402 die DEBUG-Instruktion in den TAP-Controller 204 geschrieben. Als nächstes wird in Schritt 404 der 38-Bit-Seriell-Wert als ganzes eingeschoben, wobei das Befehl-anhängig-Flag gesetzt und die gewünschten Daten (falls zutreffend, andernfalls null) in dem Datenfeld vorhanden sind. Der Steuervorgang rückt auf Schritt 406 vor, in dem der anhängige Befehl geladen/entladen wird und das Befehlbeendet-Flag geprüft wird. Das Beenden eines Befehls beinhaltet typischerweise das Übertragen eines Werts zwischen einem Datenregister und einer Prozessorregister- und/oder Speicher-IO-Stelle. Nachdem der Befehl abgeschlossen worden ist, löscht der Prozessor 104 das Befehl-anhängig-Flag und setzt das Befehl-beendet-Flag, wobei gleichzeitig ein Wert in dem Datenfeld gespeichert wird, falls zutreffend. Das gesamte 38-Bit-Register wird abgetastet, um die Befehl-beendet- und Befehl-anhängig-Flags zu überwachen. Falls das Befehl-anhängig-Flag auf Null rückgesetzt ist und das Beendet-Flag auf Eins gesetzt ist, ist der vorherige Befehl beendet worden. Der Status der Flags wird von der Steuer-Interface-Zustandsmaschine 206 erfasst. Eine Slave-Kopie des Status des Flag wird intern gespeichert, um festzustellen, ob die nächste Instruktion geladen werden soll. Die Slave-Kopie wird aufgrund der Möglichkeit einer Veränderung des Flag-Status zwischen Zuständen des TAP-Controllers 204 aufrechterhalten. Dies gibt dem Prozessor 104 die Möglichkeit, festzustellen, ob die vorherige Instruktion abgeschlossen worden ist, bevor die nächste Instruktion geladen wird.
  • Falls gemäß der Bestimmung in Schritt 408 das Beendet-Flag nicht gesetzt ist, rückt der Steuervorgang auf Schritt 410, und das Laden/Entladen des 38-Bit-Befehls wird wiederholt. Ferner wird das Befehls-beendet-Flag geprüft. Der Steuervorgang kehrt dann auf Schritt 408 zurück. Falls gemäß der Bestimmung in Schritt 408 das Beendet-Flag gesetzt ist, kehrt der Steuervorgang auf Schritt 406 zurück, um den nächsten Befehl zu verarbeiten. Der Austritt aus dem DEBUG-Modus erfolgt über einen typischen JTAG-Vorgang.
  • Nochmals gemäß 2 werden die bereits erwähnten optischen Seitenband-Signale bei dem fortentwickelten Debug-Port 100 verwendet, um zusätzliche Funktionen bereitzustellen. Die optischen Seitenband-Signale enthalten ein Unterbrechungs-Request-/Abfolge-Erfassungs-Signal BRTC; das als Unterbrechungs-Request-Signal oder als Abfolge-Erfassungs-Aktivierungs-Signal funktionieren kann, je nach dem Status des in dem Debug-Steuer-/Status-Register gesetzten Bit. Falls das Unterbrechungs-Request/Abfolge-Erfassungs-Signal BRTC derart gesetzt ist, dass es als Unterbrechungs-Request-Signal funktionieren kann, wird es aktiviert, um den Prozessor 104 zu veranlassen, in den Debug-Modus einzutreten. (Der Prozessor kann auch gestoppt werden, indem ein Befehl von Anhalten über die konventionellen JTAG-Signale eingescannt wird.) Falls das Signal derart gesetzt ist, dass es als Abfolge-Erfassungs-Aktivierungs-Signal funktioniert, ermöglicht das Aktivieren des Unterbrechungs-Request-/Abfolge-Erfassungs-Signals BRTC eine Abfolge-Erfassung. Durch Deaktivieren des Signals wird die Erfassung ausgeschaltet. Das Signal wird bei der nächsten Instruktions-Grenze wirksam, nachdem es detektiert worden ist, und es wird mit, dem internen Prozessor-Takt synchronisiert. Das Unterbrechungs-Request-/Abfolge-Erfassungs-Signal BRTC kann zu jedem Zeitpunkt aktiviert werden.
  • Das Trigger-Signal TRIG ist derart ausgelegt, dass immer dann pulsiert, wenn ein Intern-Prozessor-Unterbrechungspunkt aktiviert wird. Das Trigger-Signal TRIG kann zum Triggern einer externen Erfassungsvorrichtung wie z.B. einer logischen Analysevorrichtung verwendet werden und ist synchronisiert mit dem Abfolge-Aufzeichnungs-Erfassungs-Taktsignal TRACECLK. Wenn ein Unterbrechungspunkt generiert wird, wird das Ereignis mit dem Abfolge-Erfassungs-Taktsignal TRACECLK synchronisiert, woraufhin das Trigger-Signal TRIG während der Dauer der Abfolge-Erfassung aktivgehalten wird.
  • Das Stop-Übertragungssignal STOPTX wird aktiviert, wenn der Prozessor 104 in den DEBUG-Modus eingetreten ist und für eine Register-Abfrage/Modifikation, Speicher- oder I/O-Lesevorgänge und -Schreibvorgänge durch den Debug-Port 100 bereit ist. Bei der offenbarten Ausführungsform der Erfindung reflektiert das Stop-Übertragungssignal STOPTX den Zustand eines Bits in dem Debug-Steuer-Status-Register (DCSR). Das Stop-Übertragungssignal STOPTX ist synchron mit dem Abfolge-Erfassungs-Taktsignal TRACECLK.
  • Das Befehls-Bestätigungs-Signal CMDACK wird anhand von 5 beschrieben, die einen vereinfachten Befehls-Durchlauf bei dem fortentwickelten Debug-Port 100 gemäß 2 zeigt. Wiederum wird, um das Target-System T in den DEBUG-Modus zu versetzen, in Schritt 502 eine DEBUG-Instruktion in den TAP-Controller 204 geschrieben. Der Steuervorgang rückt auf Schritt 504, und das Befehls-Bestätigungs-Signal CMDACK wird in dem Host-System H überwacht, um den Befehls-Beendigungs-Status festzustellen. Das Signal wird von dem Target-System T gleichzeitig mit dem Befehlbeendet-Flag auf high gesetzt und bleibt high, bis der nächste Schiebe-Zyklus beginnt. Wenn das Befehls-Bestätigungs-Signal CMDACK verwendet wird, ist es nicht erforderlich, das JTAG-Instruktions-Register herauszuschieben, um den Befehl-beendet-Flag-Status zu erfasssen. Das Befehls-Bestätigungs-Signal CMDACK geht bei der nächsten Anstiegsflanke des Tast-Taktsignals TCK auf high über, nachdem das Befehl-beendet-Flag von null auf eins gewechselt hat. Bei Verwendung der fortentwickelten JTAG-Signale wird eine neue Schiebe-Seguenz (Schritt 506) von dem Host-System H erst dann gestartet, wenn das Befehls-Bestätigungs-Signal CMDACK auf high gesetzt worden ist. Das Befehls-Bestätigungs-Signal CMDACK ist synchron mit dem Test-Taktsignal TCK. Das Test-Taktsignal TCK braucht nicht jederzeit getaktet zu werden, wird jedoch idealerweise durchgehend getaktet, wenn auf eine Reaktion des Bestätigungs-Signals CMDACK gewartet wird.
  • BETRIEBSSYSTEM-/ANWENDUNGS-KOMMUNIKATION ÜBER DEN DEBUG-PORT 100 In dem Debug-Register-Block 210 ist ferner ein Instruktions-Abfolge-Konfigurations-Register (ITCR) enthalten. Dieses 32-Bit-Register ist für die Aktivierung/Deaktivierung und die Konfiguration der Instruktions-Abfolge-Debug-Funktionen zuständig. Es können zahlreiche derartige Register vorgesehen sein, einschließlich verschiedener Ebenen der Abfolgeverfolgung, der Abfolge-Synchronisationsstärke-Zählstände, der Abfolge-Initialisierung, der Instruktions-Abfolge-Modi, der Taktteilerverhältnis-Information sowie zusätzlicher Funktionen, die in der folgenden Tabelle gezeigt sind. Auf das ITCR wird durch einen JTAG-Tnstruktions-Register-Schreib-/Lese-Befehl zugegriffen, wie es bei den anderen Registern des Debug-Register-Blocks 210 der Fall ist, oder über eine reservierte Instruktion.
  • Figure 00180001
    Instruktions-Abfolge-Konfigurations-Register (ITCR).
  • Ein weiteres Debug-Register, das Debug-Steuer-/Status-Register (DCSR), liefert einen Hinweis darauf, wann der Prozessor 104 in den Debug-Modus eingetreten ist, und ermöglicht, dass der Prozessor 104 durch das fortentwickelte JTAG-Interface in den DEBUG-Modus gezwungen wird. Wie in der folgenden Tabelle gezeigt, aktiviert das DCSR auch verschiedene Steuer-Merkmale, wie z.B.: Zwingen eines Ready-Signals in den Prozessor 104, Steuern des Speicher-Zugriffs-Raums für durch den Debug-Port initiierte Zugriffe, Cache-Flush-Deaktivierung beim Eintritt in den DEBUG-Modus, die TX- und RX-Bits, die den Parallel-Port 214 betreffenden Aktivierungen, erzwungenen Unterbrechungen, erzwungenen globalen Rücksetzungen und andere Funktionen.
  • Figure 00190001
  • Figure 00200001
    Debug-Steuer-/Status-Register (DCSR).
  • Wenn es in einer Cross-Debug-Umgebung wie derjenigen gemäß 1 für den an dem Target-System T betriebenen Parent-Task erforderlich, Information an die Host-Plattform zu senden, die das System steuert. Diese Daten können z.B. aus einem Typen-Strom von einem Printf()-Anruf oder aus Register-Information aus einem Task's Control Block (TCB) bestehen. Ein vorgesehenes Verfahren zum Übertragen der Daten besteht darin, dass das Betriebssystem die Daten in einem bekannten Bereich platziert und dann über eine Trap-Instruktion veranlasst, dass der Eintritt in den DEBUG-Modus erfolgt.
  • Über die Befehle am Debug-Port 100 kann das Host-System H dann den Grund bestimmen, aus dem der Eintritt in den DEBUG-Modus erfolgt ist, und es kann reagieren, indem es die Daten aus dem reservierten Bereich aufruft. Während sich der Prozessor 104 in dem DEBUG-Modus befindet, wird jedoch der normale Prozessor-Ausführungsvorgang gestoppt. Wie oben erwähnt, ist dies bei zahlreichen Echtzeit-Systemen unerwünscht.
  • Gemäß der vorliegenden Erfindung wird diese Situation gehandhabt, indem in dem Debug-Port 100 zwei Debug-Register für das Senden (TX_DATA-Register) und das Empfangen (RX_DATA-Register) vorgesehen sind. Auf diese Register kann mittels der Soft-Adress- und JTAG-Instruktions-Register-Befehle zugegriffen werden. Wie angemerkt, wird, nachdem das Host-System H eine Debug-Instruktion in das JTAG-Instruktions-Register geschrieben hat, der serielle Debug-Shifter 212 mit der Test-Daten-Eingangssignal-TDI-Leitung und der Test-Daten-Ausgangssignal-TDO-Leitung verbunden.
  • Wenn der Prozessor 104 den Code ausführt, der ihn zum Senden von Daten veranlasst, testet er zuerst ein TX-Bit in dem ITCR. Falls das TX-Bit auf Null gesetzt ist, dann führt der Prozessor 104 eine Prozessor-Instruktion aus (entweder einen Speicher- oder einen I/O-Schreibvorgang), um die Daten in das TX-DAT-Register zu übertragen. Der Debug-Port 100 setzt das TX-Bit in dem DCST und dem ITCR, was dem Host-System anzeigt, dass die Bereitschaft zum Senden von Daten besteht. Ferner wird der STOPTX-Stift auf high gesetzt. Nachdem das Host-System das Lesen der Sende-Daten aus dem TX_DATA-Register beendet hat, wird das TX-Bit auf Null gesetzt. Dann wird ein TXINTEN-Bit in dem ITCR gesetzt, um ein Signal zum Unterbrechen des Prozessors 104 zu erzeugen. Das Interrupt wird nur erzeugt, wenn das TX-Bit in den ITCR-Übergängen null beträgt. Wenn das TXINTEN-Bit nicht gesetzt ist, fragt der Prozessor 104 das ICTR ab, um den Status des TX-Bits zwecks weiterer Übertragung von Daten zu bestimmen.
  • Wenn das Host-System N Daten senden möchte, testet es zuerst ein RX-Bit in dem ITCR. Falls das RX-Bit auf Null gesetzt ist, schreibt das Host-System N die Daten in das RX_DATA-Register, und das RX-Bit wird sowohl in dem DCSR als auch in dem ITCR auf Eins gesetzt. Dann wird ein RXINT-Bit in dem ITCR gesetzt, um ein Signal zum Unterbrechen des Prozessors 104 zu erzeugen. Dieses Interrupt wird nur erzeugt, wenn das RX in dem ITCR auf Eins übergeht. Wenn das RXINTEN-Bit nicht gesetzt ist, fragt der Prozessor 104 das ITCR ab, um den Status des RX-Bits zu prüfen. Falls das RX-Bit auf Eins gesetzt ist, wird die Prozessor-Instruktion ausgeführt, um Daten aus dem RX_DATA-Register zu lesen. Nachdem die Daten von dem Prozessor 104 aus dem RX_DATA-Register gelesen worden sind, wird das RX-Bit auf Null gesetzt. Das Host-System H liest das ITCR kontinuierlich, um zwecks weiteren Senden von Daten den Status des RX-Bits zu bestimmen.
  • Diese Technik ermöglicht einem Betriebssystem oder einer Anwendung, mit dem Host-System zu kommunizieren, ohne dass der Ausführungsvorgang des Prozessors 104 gestoppt wird. Die Kommunikation wird in praktischer Weise über den Debug-Port 100 mit minimalem Einfluss auf On-chip-An wendungs-Ressourcen erzielt. In manchen Fällen ist es nötig, System-Interrupts zu deaktivieren. Dies erfordert, dass die RX- und TX-Bits durch den Prozessor geprüft werden. In dieser Situation wird das Kommunikations-Link in einem abgefragten Modus betrieben.
  • PARALLEL-INTERFACE ZUM DEBUG-PORT 100
  • Einige eingebettete System verlangen, dass die Instruktions-Abfolge überwacht wird, während die I/O- und Datenverarbeitungs-Operationen aufrechterhalten werden. Ohne die Verwendung eines Multi-Tasking-Betriebssystems wird bevorzugt, dass ein eine Außenbond-Version der eingebetteten Prozessor-Vorrichtung 102 die Abfolge-Daten liefert, da das Überprüfen des Abfolge-Cache 200 über den Debug-Port 100 verlangt, dass der Prozessor 104 gestoppt wird.
  • Bei der offenbarten Ausführungsform der Erfindung ist ferner ein paralleler Port 214 bei einer otionalen Außenbond-Version der eingebetteten Prozessor-Vorrichtung 102 vorgesehen, um einen parallelen Befehls- und Daten-Zugriff auf den Debug-Port 10 zu ermöglichen. Dieses Interface bildet einen 16 Bit breiten bidirektionalen Datenbus (PDATA[15:0]), einen 3-Bit-Adress-Bus (PADR[2:0]), ein paralleles Debug-Port-Lese-/Schreib-Wähl-Signal (PRW), einen Abfolge-gültig-Signal TV und ein Instruktions-Abfolge-Aufzeichnungs-Ausgangs-Taktsignal TRACECLOCK (TC). Obwohl nicht gemeinsam mit dem Abfolge-Pad-Interface-Port 220 benutzt, ist ferner ein (nicht gezeigtes) Parallel-Bus-Request-/Gewährungs-Signal-Paar PBREG/PBGNT vorgesehen. Der parallele Port 214 wird aktiviert, indem ein Bit in dem DCSR gesetzt wird. Die seriellen Kommunikationen über den Debug-Port 100 werden nicht deaktiviert, wenn der parallele Port aktiviert ist.
  • Figure 00230001
    Format der Außenbond-Stifte/des Parallel-Ports 214.
  • Der parallele Port 214 ist primär für schnelle Downloads/Uploads in den und aus dem Target-System-T-Speicher vorgesehen. Der parallele Port 214 kann jedoch für sämtliche Debug-Kommunikationen mit dem Target-System jedes Mal verwendet werden, wenn der Prozessor 214 gestoppt ist. Die seriellen Debug-Signale (standardgemäß oder fortentwickelt) werden zum Debug-Zugriff auf das Target-System T verwendet, wenn der Prozessor 104 Instruktionen ausführt.
  • In ähnlicher Weise wie bei dem JTAG-Standard werden sämtliche Eingangssignale zu dem parallelen Port 214 an der Anstiegsflanke des Test-Takt-Signals TCK abgetastet, und sämtliche Ausgangssignale werden an der Abstiegsflanke des Test-Takt-Signals TCK geändert. Bei den offenbarten Ausführungsformen teilt sich der parallele Port 214 Stifte mit dem Abfolge-Pad-Interface 220, was ein Initiieren paralleler Befehle nur dann erfordert, wenn der Prozessor 104 gestoppt ist und das Abfolge-Pad-Interface 220 von dem gemeinsam benutzten Bus abgetrennt ist.
  • Das Parallel-Bus-Request-Signal PBREG und das Parallel-Bus-Gewährungs-Signal PBGNT werden ausgegeben, um das Multiplexen der Gemeinsam-Bus-Signale zwischen dem Abfolge-Cache 200 und dem parallele Port 214 zu beschleunigen. Wenn das Host-Interface zu dem parallelen Port 214 feststellt, dass das Parallel-Bus-Request-Signal PBREG aktiviert ist, beginnt es die Signale des parallelen Ports 214 zu treiben und gibt das Parallel-Bus-Gewährungs-Signal PBGNT aus.
  • Beim Eintritt in den DEBUG-Modus oder beim Austritt aus diesem im aktivierten Zustand des parallelen Ports 214 wird der parallele Port 214 für die Prozessor-Zustands-Speicher- und Wiederherstellungs-Zyklen verwendet.
  • Das Parallel-Bus-Request-Signal PBREG wird unmittelbar vor dem Beginn einer Speicherungs-Zustands-Sequenz ausgegeben, welche die vorletzte vor dem Eintritt in den DEBUG-Modus ist. Nach dem letzten Wiederherstellungs-Zustands-Zyklus wird das Parallel-Bus-Request-Signal PBREG deaktiviert, nachdem die Schreib-Daten gelatcht worden sind. Das Host-Inteface des parallelen Ports 214 reagiert auf die Deaktivierung des Parallel-Bus-Request-Signals PBREG durch Dreizustandsbildung an seinen Parallel-Port-Treibern und Deaktivieren des Parallel-Bus-Gewährungs-Signals PBGNT. Der parallele Port 214 aktiviert dann die Debug-Abfolge-Port-Stift-Treiber, schließt den letzten Wiederherstellungs-Zustands-Zyklus ab, gibt das Befehls-Bestätigungs-Signal CMDACK aus und gibt die Steuerung des Interface an die Abfolge-Steuerlogik 218 zurück.
  • Bei der Kommunikation über den parallelen Port 214 werden die Adress-Stifte PADR[2:0] für die Wahl des Felds des JTAG-Instruktions-Registers verwendet, das wie in der folgenden Tabelle gezeigt auf den 16-Bit-Datenbus PDATA[15:0] abgebildet wird.
  • Figure 00240001
  • Es ist nicht erforderlich, beide Hälften des debug data [31:0]-Registers zu aktualisieren, falls nur eine der beiden Hälften verwendet wird (z.B. bei 8-Bit-I/O-Zyklus-Daten-Schreibvorgängen). Das Befehl-anhängig-Flag wird automatisch gesetzt, wenn eine Schreiboperation in das Vier-Bit-Befehlsregister durchgeführt wird, und es wird gelöscht, wenn das Befehls-beendet-Flag aktiviert ist. Das Host-System N kann das Befehls-Bestätigungs- Signal CMDACK überwachen, um festzustellen, wann das Beendet-Flag aktiviert worden ist. Die Verwendung des parallelen Ports 214 ermöglicht eine volle Sichtbarkeit der Ausführungs-Historie, ohne dass ein Drosseln des Prozessor-Kerns 104 erforderlich ist. Der Abfolge-Cache 200 kann bei Bedarf derart konfiguriert sein, dass er als Puffer für den parallelen Port 214 verwendbar ist, um jegliche Bandbreiten-Anpassungs-Probleme zu beseitigen.
  • BETRIEBSSYSTEM- UND DEBUGGER-INTEGRATION
  • Bei der offenbarten Ausführungsform der Erfindung kann der Betrieb sämtlicher Debug-Unterstützungs-Merkmale einschließlich des Abfolge-Cache 200 durch den Debug-Port 100 oder über Prozessor-Instruktionen gesteuert werden. Diese Prozessor-Instruktionen können von einem Monitor-Programm, einem target-gehosteten Debugger oder einer herkömmlichen Pod-Anordnung kommen. Der Debug-Port 100 führt die Datenbewegungen aus, die durch Seriell-Daten-Port-Befehle statt durch Prozessor-Instruktionen initiiert sind.
  • Der Betrieb des Prozessors aus einem herkömmlichen Pod-Raum heraus hat große Ähnlichkeit mit dem Betrieb im DEBUG-Modus aus einem Monitor-Programm heraus. Sämtliche Debug-Operationen können über Prozessor-Instruktionen gesteuert werden. Es macht keinen Unterschied, ob diese Instruktionen aus dem Pod-Raum oder einem regulären Speicher kommen. Dies ermöglicht ein Erweitern eines Betriebsystems dahingehend, dass es zusätzliche Debug-Fähigkeiten aufweist.
  • Selbstverständlich haben Betriebssysteme über privilegierte System-Anrufe wie z.B. ptrace() seit langem Debug-Vorrichtungen unterstützt. Die Einbeziehung eines On-chip-Abfolge-Cache 200 macht es nun jedoch möglich, dass ein Betriebssystem eine Instruktions-Abfolge-Fähigkeit bietet. In der Debug-Umgebung gemäß der vorliegenden Erfindung ist es möglich, eine limitierte Abfolgeverfolgung zu unterstützen, ohne eine "externe" Logik-Analysevorrichtung oder einen In-circuit-Emulator einzubeziehen.
  • Zu den Beispielen von Instruktionen, die für das interne Unterstützungs-Laden und Wiederaufrufen des Inhalts des Abfolge-Cache 200 verwendet werden, zählen ein Lade-Instruktions-Abfolge-Cache-Aufzeichnungs-Befehl LITCR und ein Speicher-Instruktions-Abfolge-Cache-Aufzeichnungs-Befehl SITCR. Der Befehl LITCR bewirkt das Laden einer indizierten Aufzeichnung in dem Abfolge-Cache 200, wie spezifiziert durch einen Abfolge-Cache-Pointer ITREC.PTR, mit dem Inhalt des EAX-Registers des Prozessor-Kerns 104. Der Abfolge-Cache-Pointer ITREC.PTR ist derart vor-inkrementiert, dass die generelle Operation des Befehls LITCR wie folgt beschaffen ist:
    ITREC. PTR < –ITREC. PTR + 1;
    ITREC[ITREC.PTR] < –EAX.
  • In dem Fall, dass die Instruktions-Abfolge-Aufzeichnung (siehe die nachfolgende Beschreibung der Abfolge-Aufzeichnung) kleiner ist als die EAX-Aufzeichnung, wird nur ein Teil des EAX-Registers verwendet.
  • In ähnlicher Weise wird der Speicher-Instruktions-Abfolge-Cache-Aufzeichnungs-Befehl SITCR verwendet, um eine indizierte Aufzeichnung aus dem Abfolge-Cache 200 aufzurufen und (in dem EAX-Register) zu speichern. Der Inhalt des ECX-Registers des Prozessor-Kerns 104 wird als ein Offset verwendet, das dem Abfolge-Cache-Pointer ITREC.PTR hinzugefügt wird, um einen Index zu dem Abfolge-Cache 200 zu erzeugen. Das ECX-Register ist nach-inkrementiert, während der Abfolge-Cache-Pointer ITREC.PTR unbeeinflusst bleibt, derart, dass:
    EAX < –ITREC[ECX + ITREC.PTR];
    ECX < –ECX + 1.
  • Fachleuten auf dem Gebiet werden zahlreiche Variationen der LITR- und SITCR-Befehle ersichtlich sein.
  • Das Erweitern eines Betriebssystems dahingehend, dass ein On-chip-Ablauf unterstützt wird, hat in der Kommunikationsindustrie bestimmte Vorteile. Es ermöglicht das Aufrechterhalten der System-I/O- und Kommunikations-Aktivität, während ein Task verfolgt wird. Traditionell hat die Verwendung eines On-chip-Emulators das Erfordernis nach sich gezogen, den Prozessor zu stoppen, bevor der Zustand und die Abfolge des Prozessors geprüft werden können [anders als ptrace()]. Dadurch wird die kontinuierliche Unterstützung der I/O-Datenverarbeitung unterbrochen.
  • Zudem ist der Abfolge-Cache 200 sehr nützlich, wenn er mit der Apparatur im Feld verwendet wird. Falls ein unerwarteter System-Absturz eintritt, kann der Abfolge-Cache 200 untersucht werden, um zu prüfen, um die Ausführungs-Historie zu beobachten, die zu dem Absturz-Ereignis geführt hat. Bei Verwendung in tragbaren Systemen oder anderen Umgebungen, in denen auf den Energieverbrauch zu achten ist, kann der Abfolge-Cache 200 wie erforderlich über eine Energiehandhabungsschaltung deaktiviert werden.
  • BEISPIEL EINES ABFOLGE-AUFZEICHNUNGS-FORMATS
  • Bei der offenbarten Ausführungsform der Erfindung ist eine Abfolge-Instruktions-Aufzeichnung 20 Bits breit und besteht aus zwei Feldern, TCODE (Trace Code) und TDATA (Trace Data) sowie einem Gültig-Bit V. Bei dem TCODE-Feld handelt es sich um einen Code, der den Typ von Daten in dem TDATA-Feld identifiziert. Das TDATA-Feld enthält Software-Abfolge-Information, die für Debug-Zwecke verwendet wird.
  • Figure 00280001
    Instruktions-Abfolge-Aufzeichungs-Format.
  • Bei einer vorgesehenen Ausführungsform der Erfindung teilt die eingebettete Prozessor-Vorrichtung 102 elf verschiedene Abfolge-Codes mit, die in der folgenden Tabelle aufgeführt sind:
    Figure 00280002
    Der Abfolge-Cache 200 hat eine limitierte Speicherkapazität; somit ist ein bestimmtes Maß an "Kompression" in den erfassten Abfolge-Daten wünschenswert. Hinsichtlich des Erfassens der Abfolge-Daten wird in der folgenden Diskussion angenommen, dass dem Host-System N ein Bild des Programms, das gerade in seinem Ablauf verfolgt wird, zur Verfügung steht. Falls eine Adresse aus einem Programm-Bild (Objekt-Modul) erhalten werden kann, dann ist sie nicht in den Abfolge-Daten vorgesehen. Vorzugsweise werden nur Instruktionen mitgeteilt, die den Instruktions-Fluss unterbrechen, und ferner nur diejenigen, bei denen die Target-Adresse in irgendei ner Weise abhängig ist. Zu derartigen "unterbrechenden" Ereignissen zählen Anruf-Instruktionen oder bedingungslose Abzweig-Instruktionen, bei denen die Target-Adresse aus einem Datenregister oder einer anderen Speicherstelle wie z.B. einem Stapel vorgelegt wird.
  • Wie in der vorstehenden Tabelle aufgeführt, zählt zu den weiteren gewünschten Abfolge-Informationen folgende: die Target-Adresse einer Trap- oder Interrupt-Handhabungsvorrichtung; die Target-Adresse einer Rücklauf-Instruktion; eine bedingte Abzweig-Instruktion, die eine Target-Adresse aufweist, welche datenregister-abhängig ist (andernfalls wird nur eine 1-Bit-Abfolge benötigt, die angibt, ob der Abzweig genommen wurde oder nicht); und – am häufigsten – Adressen aus den Vorgangs-Rückläufern. Andere Information, wie z.B. Task-Identifikationen und Abfolge-Erfassungs-Stop- /Start-Information, kann ebenfalls in dem Abfolge-Cache 200 platziert werden. Der präzise Inhalt und die präzise Beschaffenheit der Abfolge-Aufzeichnungen werden nicht als kritisch für die Erfindung angesehen.
  • 6A zeigt ein Beispiel eines Formats zum Melden bedingter Abzweig-Ereignisse. Bei der offenbarten Ausführungsform der Erfindung kann das Ergebnis von bis zu 15 Abzweig-Ereignissen in einem einzigen Abzweig-Eintrag gruppiert werden. Das 16-Bit-TDATA-Feld (oder "BFIELD") enthält 1-Bit-Abzweig-Ergebnis-Abfolge-Einträge und wird bezeichnet als Eintrag TCODE = 0001. Das TDATA-Feld wird anfangs gelöscht, mit Ausnahme am weitesten links angeordneten Bit, das auf 1 gesetzt ist. Mit dem Auftreten jedes neuen bedingten Abzweig wird auf der linken Seite ein neuer Bit-Eintrag hinzugefügt, und sämtliche anderen Einträge werden um ein Bit nach rechts verschoben.
  • Die Verwendung eines 128-Eintrags-Abfolge-Cache 200 ermöglicht das Speichern von 320 Bytes von Information. Nimmt man eine Abzweig-Frequenz von einem Abzweig für jeweils sechs Instruktionen an, bildet der offenbarte Abfolge-Cache 200 somit einen effektiven Abzweig-Rekord von 1.536 Instruktionen. Diese Schätzung berücksichtigt nicht das Auftreten von Anruf-, Sprung- und Rücklauf-Instruktionen.
  • Bei der offenbarten Ausführungsform der Erfindung überwacht die Abfolge-Steuerlogik 218 die Instruktions-Ausführung über eine Prozessor-Interface-Logik 202. Wenn eine Abzweig-Target-Adresse gemeldet werden muss, wird Information, die in einem aktuellen bedingten Abzweig-TDATA-Feld enthalten ist, von der Abfolge-Steuerlogik 218 als vollständig markiert, selbst falls nicht 15 Einträge angesammelt worden sind. Gemäß 6B wird dann die Target-Adresse (bei einer prozessor-basierten Vorrichtung 102 mit Verwendung von 32-Bit-Adressierung) in einem Abfolge-Eintrags-Paar aufgezeichnet, wobei der erste Eintrag (TCODE = 0010) die im High-Zustand befindlichen 16 Bits der Target-Adresse und der zweite Eintrag (TCODE = 0111) die im Low-Zustand befindlichen 16 Bits der Target-Adresse liefert. Wenn eine Abzweig-Target-Adresse für eine bedingte Sprung-Instruktion vorgelegt wird, erscheint kein 1-Bit-Abzweig-Ergebnis-Eintrag für den gemeldeten Abzweig.
  • STARTEN UND STOPPEN DER ABFOLGE-ERFASSUNG
  • Im Zusammenhang mit der nun zu erläuternden 6 kann es wünschenswert sein, die Abfolge-Erfassung während bestimmter Abschnitte der Programm-Ausführung zu starten und zu stoppen, z.B. wenn ein Task-Kontext-Umschalten erfolgt. Wenn die Abfolge-Erfassung gestoppt ist, werden keine Abfolge-Einträge in den Abfolge-Cache 200 eingegeben, und es treten auch keine Abfolge-Einträge an den Außenbond-Stiften des Abfolge-Ports 214 auf. Für das Aktivieren und Deaktivieren der Abfolge-Erfassung sind verschiedene Verfahren vorgesehen. Beispielsweise kann ein x86-Befehl vorgesehen sein, oder ein existierender x86-Befhel kann verwendet werden, um ein Bit in einer I/0-Operation zu toggeln. Alternativ können (nicht gezeigte) On-chip-Unterbrechungspunkt-Steuerregister derart konfiguriert sein, dass sie die Adressen angeben, an denen die Abfolge-Erfassung starten/stoppen sollte. Wenn das Abfolge-Verfolgen angehalten wird, wird ein Abfolge-Eintrag (TCODE = 1000, TCODE = 0111), der die letzte Abfolge-Adresse aufzeichnet, in dem Abfolge-Strom platziert. Wenn das Abfolge-Verfolgen wiederaufgenommen wird, wird ein Abfolge-Synchronisations-Eintrag (TCODE = 0110, TCODE = 0111) erzeugt, der die Adresse der derzeit ausgeführten Instruktion enthält.
  • Es kann wichtig sein, Segment-Veränderungen zu berücksichtigen, die auftreten, während das Abfolge-Verfolgen gestoppt ist. Diese Situation kann teilweise behoben werden, indem eine Option gewählt wird, gemäß der auf einen Eintrag TCODE = 1000 unmittelbar ein aktueller Segment-Basis-Adress-Eintrag (TCODE = 0100, TCODE = 0111) folgt, wie 6C zeigt. Ferner ist eine Konfigurations-Option wünschenswert, mit der ein aktueller Segment-Basis-Adress-Eintrag an dem Ende einer Abfolge vor dem Eintritt in den Debug-Modus aktiviert wird. Im Gegensatz dazu kann es möglicherweise nicht wünschenswert sein, Segment-Basis-Information vorzulegen, wenn sich die Basis nicht verändert hat, wie z.B. wenn ein Interrupt aufgetreten ist.
  • Gemäß 6D wird nach dem Auftreten eines synchronen oder asynchronen Ereignisses wie z.B. eines Interrupt oder Trap ein Abfolge-Eintrag TCODE = 0101 erzeugt, um die Adresse der Target-Interrupt-Handhabungsvorrichtung vorzulegen. Es ist jedoch auch wünschenswert, die Adresse der Instruktion, die unterbrochen wurde, aufzuzeichnen, indem ein Abfolge-Synchronisations- (TCODE = 0110) Eintrag unmittelbar vor dem Interrupt-Eintrag sowie die vorherige Segment-Basis-Adresse (TCODE = 0011) erzeugt wird. Der Abfolge-Synchronisations-Eintrag enthält die Adresse der letzten zurückgezogenen Instruktion vor dem Start der Interrupt-Handhabungsvorrichtung.
  • SEGMENT-VERÄNDERUNGEN
  • 6E zeigt einen Abfolge-Eintrag, der zur Meldung einer Veränderung in den Segment-Parametern verwendet wird. Wenn ein Abfolge-Strom gemäß der Erfindung verarbeitet wird, werden Abfolge-Adress-Werte mit einer Segment-Basis-Adresse kombiniert, um die lineare Adresse einer Instruktion zu bestimmen. Die Basis-Adresse sowie die Vorgabe-Daten-Operanden-Größe (32- oder 16-Bit-Modus) unterliegen Veränderungen. Als Ergebnis werden die Einträge TCODE = 0011 und 0111 derart konfiguriert, dass sie die für die präzise Rekonstruktion des Instruktions-Strom erforderliche Information liefern. Das TDATA-Feld, das dem Eintrag TCODE = 0011 entspricht, enthält die 16 Bits der vorherigen Segment-Basis-Adresse, während der entsprechende Eintrag TCODE = 0111 die im Low-Zustand befindlichen 15 oder 4 Bits enthält (je nachdem, ob die Instruktion im echten oder geschützten Modus ausgeführt wird). Der Eintrag TCODE = 0111 enthält vorzugsweise ferner Bits, welche die aktuelle Segment-Größe (32 Bits oder 16 Bits) und den Betriebsmodus (echt oder geschützt) angeben, und ein Bit, das angibt, ob ein Paging verwendet wird. Die Segment-Information betrifft generell das vorherige Segment, nicht ein aktuelles (Target-) Segment. Die aktuelle Segment-Information wird erhalten, indem der Zustand des Prozessor-Kerns 104 angehalten und geprüft wird.
  • BENUTZERSPEZIFISCHER ABFOLGE-EINTRAG
  • Es existieren Umstände, unter denen ein Anwendungsprogramm oder Betriebsystem möglicherweise zusätzliche Information zu einem Abfolge-Strom hinzugeben will. Damit dies erfolgen kann, ist vorzugsweise ein x86-Instruktion vorgesehen, die ermöglicht, dass ein 16-Bit-Datenwert an einer gewünschten Ausführungsposition in dem Abfolge-Strom platziert wird. Die Instruktion kann in Form einer Bewegung zu dem I/O-Raum implementiert werden, wobei der Operand von einem Speicher oder Register vorgelegt wird. Wenn der Prozessor-Kern 104 diese Instruktion ausführt, wird der be nutzen-spezifizierte Abfolge-Eintrag mittels der Abfolge-Steuerlogik 218 erfasst und in dem Abfolge-Cache 200 platziert. Gemäß 6F wird für diesen Zweck gemäß der bevorzugten Ausführungsform der Erfindung ein Eintrag TCODE = 1001 verwendet. Dieser Eintrag kann z.B. eine vorherige oder aktuelle Task-Identifizierung liefern, wenn ein Task-Umschalten in einem Multi-Tasking-Betriebssystem erfolgt.
  • SYNCHRONISATION VON ABFOLGE-DATEN
  • Beim Ausführen typischer Software in einer prozessor-basierten Vorrichtung 102 gemäß der offenbarten Ausführungsform der Erfindung enthalten nur wenige Abfolge-Einträge Adress-Werte. Die meisten Einträge haben das Format TCODE = 0001, bei dem ein einzelnes Bit das Ergebnis einer bedingten Operation angibt. Beim Prüfen eines Abfolge-Stroms jedoch können Daten nur in Relation zu einer bekannten Programm-Adresse studiert werden. Beispielsweise sind, beginnend mit dem ältesten Eintrag in dem Abfolge-Cache 200 sämtliche Einträge bis zu einem Adress-Eintrag nur von wenig Nutzen. Eine Algorithmus-Synchronisation beginnt typischerweise ausgehend von einem Abfolge-Eintrag, der eine Target-Adresse liefert.
  • Falls der Abfolge-Cache 200 keine Einträge enthält, die eine Adresse vorlegen, dann kann die Abfolge-Analyse nicht erfolgen. Diese Situation ist selten, jedoch möglich. Aus diesem Grund ist gemäß der bevorzugten Ausführungsform der Erfindung ein Synchronisations-Register TSYNC vorgesehen, um das Eingeben von Synchronisations-Adress-Information zu steuern. Falls das Synchronisations-Register TSYNC auf Null gesetzt ist, dann werden keine Abfolge-Synchronisations-Einträge erzeugt.
  • Figure 00330001
    Abfolge-Eintrags-Synchronisationseintrags-Steuerregister.
  • 6G zeigt ein Beispiel eines Abfolge-Synchronisations-Eintrags. Bei Betrieb wird jedes Mal, wenn ein Abfolge-Eintrag, der eine Target-Adresse enthält, erzeugt wird, ein Zähler-Register auf den im Synchronisations-Register TSYNC enthaltenen Wert eingestellt. Der Zähler wird für sämtliche anderen Abfolge-Einträge um Eins dekrementiert. Falls der Zähler Null erreicht, wird ein Abfolge-Eintrag (TCODE = 0110) eingegeben, der die Adresse der zuletzt zurückgezogenen Instruktion enthält (oder alternativ die anhängige Instruktion). Ferner erscheint, wenn ein Synchronisations-Eintrag in dem Abfolge-Cache 200 aufgezeichnet wird, dieser auch an den Abfolge-Stiften, um eine hinreichende Verfügbarkeit von Synchronisations-Abfolge-Daten für eine Vollfunktions-ICE-Apparatur zu gewährleisten.
  • Die Abfolge-Eintrags-Information kann auch dahingehend erweitert werden, dass sie Daten enthält, welche die Code-Abdeckung oder die Ausführungs-Leistung betreffen. Diese Information ist z.B. für das Code-Testen und Leistungs-Abstimmen nützlich. Selbst ohne diese Verbesserungen ist es wünschenswert, den Prozessor-Kern 104 zum Zugreifen auf den Abfolge-Cache 200 zu befähigen. Im Falle einer Microcontroller-Vorrichtung kann dieses Merkmal erzielt werden, indem der Abfolge-Cache 200 innerhalb eines Teils des I/O- oder Speicher-Raums abgebildet wird. Ein eher genereller Ansatz beinhaltet die Einbeziehung einer Instruktion, die das Bewegen von Daten des Abfolge-Cache 200 in den System-Speicher unterstützt.
  • Somit wurde eine prozessor-basierte Vorrichtung beschrieben, die eine flexible, hochleistungsfähige Lösung zum Erzeugen von Instruktions-Abfolge-Information bietet. Die prozessor-basierte Vorrichtung enthält einen Instruktions-Abfolge-Cache, der in der Lage ist, Abfolge-Information zum Rekonstruieren des Instruktions-Ausführungs-Stroms in dem Prozessor zu liefern, ohne dass der Prozessor-Betrieb gestoppt wird. Es sind sowohl serielle als auch parallele Kommunikationskanäle vorgesehen, um Abfolge-Daten an externe Vorrichtungen zu übermitteln. Der offenbarte On-chip-Instruktions-Abfolge-Cache beseitigt zahlreiche der bei existierenden Lösungen auftretenden Bandbreiten- und Taktsynchronisations-Probleme und erlaubt die Verwendung einer weniger kostenaufwendigen externen Erfassungs-Hardware.
  • Die vorstehende Offenbarung und Beschreibung der Erfindung dient lediglich zur Veranschaulichung und als Beispiel, und es können zahlreiche Veränderungen hinsichtlich der Größe, der Form, der Materialien, der Komponenten der Schaltungselemente, der Verdrahtungsverbindungen und der Kontakte sowie hinsichtlich der Einzelheiten der gezeigten Schaltung, der Ausgestaltung und des Betriebsverfahrens vorgenommen werden, ohne vom Umfang der Erfindung abzuweichen.

Claims (15)

  1. Prozessor-basierte elektronische Vorrichtung (102), die in der Lage ist, eine Folge aus externen Quellen (106) erhaltener Instruktionen auszuführen, wobei die Prozessor-basierte Vorrichtung mit Pins zur Verbindung mit externen Leitern versehen ist, wobei die Prozessor-basierte elektronische Vorrichtung gekennzeichnet ist durch: einen mit einem Prozessor-Kern (104) verbundenen Abfolge-Cache (200) zum Speichern von Abfolge-Information, welche die Reihenfolge angibt, in der die Instruktionen von dem Prozessor-Kern ausgeführt werden, wobei der Abfolge-Cache mehrere Speicherelemente aufweist, von denen jedes in der Lage ist, Abfolge-Information zu speichern, die Abfolge-Information mehrere Instruktions-Abfolge-Aufzeichnungen aufweist, die Adress- und Daten-Information enthalten, der Abfolge-Cache (200) derart konfiguriert ist, dass er auf einen Lade-Befehl hin Daten aus dem Prozessor-Kern (104) lädt, und derart konfiguriert ist, dass der Prozessor-Kern (104) auf einen Aufruf-Befehl hin Daten aus dem Abfolge-Cache (200) aufruft; und einen zwischen dem Abfolge-Cache (200) und gewählten der Pins angeordneten Kommunikationskanal zum Übertragen von Abfolge-Information von dem Abfolge-Cache zu externen Vorrichtungen.
  2. Prozessor-basierte Vorrichtung nach Anspruch 1, bei der die Instruktions-Abfolge-Aufzeichnungen jeweils ein Abfolge-Datenfeld (TDATA) und ein Abfolge-Code-Feld (TCODE) zum Speichern eines Codes zur Identifizierung des Daten-Typs in dem Abfolge-Datenfeld aufweist.
  3. Prozessor-basierte Vorrichtung nach Anspruch 1 oder 2, konfiguriert dahingehend, dass sie aus der gespeicherten Abfolge-Information In struktions-Abfolge-Aufzeichnungen für Instruktionen zwischen Instruktionen weglässt, welche den Instruktionsfluss unterbrechen.
  4. Prozessor-basierte Vorrichtung nach Anspruch 1, 2 oder 3, bei der Information zu ausgeführten Abzweig-Instruktionen, die eine nicht daten-register-abhängige Target-Adresse haben, in Form eines Einzel-Bits im Abfolge-Cache gespeichert wird.
  5. Prozessor-basierte Vorrichtung nach einem der vorhergehenden Ansprüche, bei der der Abfolge-Cache (200) ferner zum Liefern von Abfolge-Erfassungs-Start-/Stopp-Information konfiguriert ist.
  6. Prozessor-basierte Vorrichtung nach einem der vorhergehenden Ansprüche, bei der der Abfolge-Cache (200) ferner zum periodischen Erfassen eines Synchronisierungs-Eintrags konfiguriert ist, wobei der Synchronisierungs-Eintrag die Adresse der zuletzt vom Prozessor-Kern (104) ausgeführten Instruktion ist.
  7. Prozessor-basierte Vorrichtung nach einem der vorhergehenden Ansprüche, bei der der Abfolge-Cache (200) ferner zum Ausgeben von Interrupt- oder Ausführungsvektor-Information konfiguriert ist.
  8. Prozessor-basierte Vorrichtung nach einem der vorhergehenden Ansprüche, bei der jede Instruktions-Abfolge-Aufzeichnung ferner ein Daten-gültig-Bit (V) aufweist.
  9. Prozessor-basierte Vorrichtung nach einem der vorhergehenden Ansprüche, bei der der Abfolge-Cache (200) ferner zum Ausgeben von Aufgaben-Identifikations-Information konfiguriert ist.
  10. Prozessor-basierte Vorrichtung nach einem der vorhergehenden Ansprüche, bei der der Inhalt des Abfolge-Cache (200) durch ein Betriebssystem aufrufbar ist.
  11. Prozessor-basierte Vorrichtung nach einem der vorhergehenden Ansprüche, bei der das Kommunikations-Interface ein serielles Interface (204) aufweist, das im Wesentlichen dem Interface-Standard IEEE-1149.1–1990 JTAG oder einem ähnlichen Standard entspricht.
  12. Prozessor-basierte Vorrichtung nach einem der vorhergehenden Ansprüche, bei der der Abfolge-Cache (200) ein First-in-first-out-(FIFO-) Zirkular-Cache ist.
  13. Prozessor-basierte Vorrichtung nach einem der Ansprüche 1 bis 12, ferner mit: einem Prozessor-Interface (202), das mit dem Prozessor-Kern (104) und dem Abfolge-Cache verbunden ist, wobei der Abfolge-Cache in der Lage ist, die Abfolge-Information über das Prozessor-Interface (202) aus dem Prozessor-Kern (104) zu laden, und wobei der Prozessor-Kern (104) in der Lage ist, die Abfolge-Information über das Prozessor-Interface (202) aus dem Abfolge-Cache aufzurufen.
  14. Verfahren zum Analysieren von Abfolge-Information in einer prozessorbasierten Vorrichtung (102) mit einem Prozessor-Kern (104), mit folgenden Schritten: Bereitstellen eines Abfolge-Cache (200) in der prozessor-basierten Vorrichtung (102), wobei der Abfolge-Cache mehrere Speicherelemente aufweist, die zum Speichern von Abfolge-Information in der Lage sind; Erfassen von Abfolge-Information aus dem Prozessor-Kern (104), welche die Reihenfolge angibt, in der die Folge von Instruktionen durch den Prozessor-Kern ausgeführt wird; Speichern der Abfolge-Information in den Abfolge-Cache-Speicherelementen als Instruktions-Abfolge-Aufzeichnungen; Aufrufen der Abfolge-Information durch den Prozessor-Kern (104) aus den Abfolge-Cache-Speicherelementen auf einen Aufruf-Befehl hin; und Laden weiterer Information aus dem Prozessor-Kern (104) in die Abfolge-Cache-Speicherelemente auf einen Lade-Befehl hin; Bereitstellen eines Kommunikationskanals (230) aus dem Abfolge-Cache zu gewählten Pins der prozessor-basierten Vorrichtung (102); und Zuführen der Abfolge-Information aus dem Abfolge-Cache (200) zu den gewählten Pins über den Kommunikationskanal (230).
  15. Verfahren nach Anspruch 14, bei dem in den Lade- und Aufruf-Schritten die Abfolge-Information zwischen dem Prozessor-Kern (104) und dem Abfolge-Cache über ein Prozessor-Interface (202) übertragen wird.
DE69830718T 1997-04-08 1998-04-07 Ablaufdaten-cachespeicher fuer mikroprozessorbasierte anordung Expired - Lifetime DE69830718T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US4307097P 1997-04-08 1997-04-08
US43070P 1997-04-08
US94989797A 1997-10-14 1997-10-14
US949897 1997-10-14
PCT/US1998/006837 WO1998045783A1 (en) 1997-04-08 1998-04-07 Trace cache for a microprocessor-based device

Publications (2)

Publication Number Publication Date
DE69830718D1 DE69830718D1 (de) 2005-08-04
DE69830718T2 true DE69830718T2 (de) 2006-05-18

Family

ID=26720001

Family Applications (2)

Application Number Title Priority Date Filing Date
DE69830718T Expired - Lifetime DE69830718T2 (de) 1997-04-08 1998-04-07 Ablaufdaten-cachespeicher fuer mikroprozessorbasierte anordung
DE69841339T Expired - Lifetime DE69841339D1 (de) 1997-04-08 1998-04-07 Ablaufdaten-Cachespeicher für mikroprozessorbetriebene Anordung

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE69841339T Expired - Lifetime DE69841339D1 (de) 1997-04-08 1998-04-07 Ablaufdaten-Cachespeicher für mikroprozessorbetriebene Anordung

Country Status (6)

Country Link
US (1) US6167536A (de)
EP (1) EP0974094B1 (de)
JP (1) JP2001519948A (de)
KR (1) KR100546087B1 (de)
DE (2) DE69830718T2 (de)
WO (1) WO1998045783A1 (de)

Families Citing this family (89)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6286114B1 (en) * 1997-10-27 2001-09-04 Altera Corporation Enhanced embedded logic analyzer
US6687865B1 (en) * 1998-03-25 2004-02-03 On-Chip Technologies, Inc. On-chip service processor for test and debug of integrated circuits
JP3736980B2 (ja) 1998-12-28 2006-01-18 富士通株式会社 マイクロコントローラの評価装置および評価方法
EP1039386A1 (de) * 1999-03-19 2000-09-27 Motorola, Inc. Rechneranlage mit einer Ablaufverfolgungsvorrichtung und Verfahren dazu
US6918065B1 (en) 1999-10-01 2005-07-12 Hitachi, Ltd. Method for compressing and decompressing trace information
US6684348B1 (en) * 1999-10-01 2004-01-27 Hitachi, Ltd. Circuit for processing trace information
US6732307B1 (en) 1999-10-01 2004-05-04 Hitachi, Ltd. Apparatus and method for storing trace information
ES2167190B2 (es) * 1999-12-20 2003-04-01 Univ Catalunya Politecnica Unidad de construccion de trazas
EP1272934B1 (de) 2000-04-11 2003-10-01 Analog Devices, Inc. Verfahren und anordnung zum eingriffsfreien profilieren von anwendungsprogrammkoden
US6694427B1 (en) * 2000-04-20 2004-02-17 International Business Machines Corporation Method system and apparatus for instruction tracing with out of order processors
DE10100344A1 (de) * 2001-01-05 2002-07-25 Infineon Technologies Ag Integrierte Schaltung und Verfahren zum Herstellen einer integrierten Schaltung
US7260684B2 (en) * 2001-01-16 2007-08-21 Intel Corporation Trace cache filtering
US6988264B2 (en) * 2002-03-18 2006-01-17 International Business Machines Corporation Debugging multiple threads or processes
GB2389432B (en) * 2002-06-07 2005-09-07 Advanced Risc Mach Ltd Instruction tracing in data processing systems
US7197671B2 (en) * 2002-06-07 2007-03-27 Arm Limited Generation of trace elements within a data processing apparatus
GB2389931B (en) * 2002-06-07 2005-12-14 Advanced Risc Mach Ltd Generation of trace elements within a data processing apparatus
KR100423891B1 (ko) * 2002-06-21 2004-03-22 삼성전자주식회사 트레이스 모듈을 구비한 마이크로프로세서
JP3972936B2 (ja) * 2002-10-15 2007-09-05 エステーミクロエレクトロニクス ソシエテ アノニム デジタルメッセージ伝送プロトコル
EP1554653B1 (de) * 2002-10-15 2011-08-24 STMicroelectronics S.A. Übertragung von wiederholungsdigitalnachrichten zwischen einer überwachungsschaltung eines mikroprozessors und eines analysewerkzeugs
WO2004042580A1 (fr) * 2002-10-29 2004-05-21 Stmicroelectronics S.A. Correlation temporelle de messages transmis par un circuit de surveillance d'un microprocesseur
WO2004042576A1 (fr) * 2002-10-29 2004-05-21 Stmicroelectronics S.A. Transmission de messages numeriques generiques par un circuit de surveillance d'un microprocesseur
JP4305389B2 (ja) * 2002-10-29 2009-07-29 エステーミクロエレクトロニクス ソシエテ アノニム 時間追跡可能メッセージを送信することによるマイクロプロセッサプログラムの監視
US20040117690A1 (en) * 2002-12-13 2004-06-17 Andersson Anders J. Method and apparatus for using a hardware disk controller for storing processor execution trace information on a storage device
US7149926B2 (en) * 2003-05-22 2006-12-12 Infineon Technologies Ag Configurable real-time trace port for embedded processors
US7133969B2 (en) * 2003-10-01 2006-11-07 Advanced Micro Devices, Inc. System and method for handling exceptional instructions in a trace cache based processor
US7555633B1 (en) 2003-11-03 2009-06-30 Advanced Micro Devices, Inc. Instruction cache prefetch based on trace cache eviction
US8069336B2 (en) 2003-12-03 2011-11-29 Globalfoundries Inc. Transitioning from instruction cache to trace cache on label boundaries
US7213126B1 (en) * 2004-01-12 2007-05-01 Advanced Micro Devices, Inc. Method and processor including logic for storing traces within a trace cache
US7404178B2 (en) 2004-02-18 2008-07-22 Hewlett-Packard Development Company, L.P. ROM-embedded debugging of computer
US7197630B1 (en) 2004-04-12 2007-03-27 Advanced Micro Devices, Inc. Method and system for changing the executable status of an operation following a branch misprediction without refetching the operation
US7707395B2 (en) * 2004-05-12 2010-04-27 Nxp B.V. Data processing system with trace co-processor
US7365007B2 (en) * 2004-06-30 2008-04-29 Intel Corporation Interconnects with direct metalization and conductive polymer
US20060273944A1 (en) * 2005-05-13 2006-12-07 Swoboda Gary L System With Trace Capability Accessed Through the Chip Being Traced
US7555681B2 (en) * 2005-05-13 2009-06-30 Texas Instruments Incorporated Multi-port trace receiver
US20060277435A1 (en) * 2005-06-07 2006-12-07 Pedersen Frode M Mechanism for storing and extracting trace information using internal memory in microcontrollers
EP1922555B1 (de) * 2005-08-09 2014-10-08 Texas Instruments Incorporated Wählbarer jtag- oder trace-zugriff mit datenspeicher und ausgabe
US7873820B2 (en) * 2005-11-15 2011-01-18 Mips Technologies, Inc. Processor utilizing a loop buffer to reduce power consumption
US7562191B2 (en) * 2005-11-15 2009-07-14 Mips Technologies, Inc. Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme
US7496771B2 (en) * 2005-11-15 2009-02-24 Mips Technologies, Inc. Processor accessing a scratch pad on-demand to reduce power consumption
JP4944518B2 (ja) * 2006-05-26 2012-06-06 富士通セミコンダクター株式会社 タスク遷移図表示方法及び表示装置
US20080077778A1 (en) * 2006-09-25 2008-03-27 Davis Gordon T Method and Apparatus for Register Renaming in a Microprocessor
US20080215804A1 (en) * 2006-09-25 2008-09-04 Davis Gordon T Structure for register renaming in a microprocessor
US7644233B2 (en) * 2006-10-04 2010-01-05 International Business Machines Corporation Apparatus and method for supporting simultaneous storage of trace and standard cache lines
US7610449B2 (en) * 2006-10-04 2009-10-27 International Business Machines Corporation Apparatus and method for saving power in a trace cache
US8386712B2 (en) * 2006-10-04 2013-02-26 International Business Machines Corporation Structure for supporting simultaneous storage of trace and standard cache lines
US7934081B2 (en) * 2006-10-05 2011-04-26 International Business Machines Corporation Apparatus and method for using branch prediction heuristics for determination of trace formation readiness
US20080250206A1 (en) * 2006-10-05 2008-10-09 Davis Gordon T Structure for using branch prediction heuristics for determination of trace formation readiness
US20080250207A1 (en) * 2006-11-14 2008-10-09 Davis Gordon T Design structure for cache maintenance
US20080114964A1 (en) * 2006-11-14 2008-05-15 Davis Gordon T Apparatus and Method for Cache Maintenance
US20080120468A1 (en) * 2006-11-21 2008-05-22 Davis Gordon T Instruction Cache Trace Formation
US20080235500A1 (en) * 2006-11-21 2008-09-25 Davis Gordon T Structure for instruction cache trace formation
US7707462B1 (en) * 2007-04-24 2010-04-27 Netapp, Inc. Non-disruptive generation of core files without reboot
US7698598B1 (en) * 2007-04-24 2010-04-13 Netapp, Inc. Automatic generation of core files and automatic generation of support information with generation of core files
US20090070745A1 (en) * 2007-09-04 2009-03-12 Mark Everly System and corresponding method for testing software embedded in an electronic device
US7802142B2 (en) * 2007-12-06 2010-09-21 Seagate Technology Llc High speed serial trace protocol for device debug
US8667476B1 (en) 2009-01-20 2014-03-04 Adaptmicrosys LLC Instruction grouping and ungrouping apparatus and method for an adaptive microprocessor system
US8438547B2 (en) * 2009-05-05 2013-05-07 Freescale Semiconductor, Inc. Address translation trace message generation for debug
US8589738B2 (en) * 2009-05-05 2013-11-19 Freescale Semiconductor, Inc. Program trace message generation for page crossing events for debug
US8490060B2 (en) * 2009-09-23 2013-07-16 International Business Machines Corporation Tracing memory updates and accesses for debugging computer programs
JP5310819B2 (ja) 2010-11-29 2013-10-09 株式会社デンソー マイクロコンピュータ
US9092236B1 (en) 2011-06-05 2015-07-28 Yong-Kyu Jung Adaptive instruction prefetching and fetching memory system apparatus and method for microprocessor system
KR20130066402A (ko) * 2011-12-12 2013-06-20 삼성전자주식회사 트레이스 데이터 저장 장치 및 방법
US8935574B2 (en) 2011-12-16 2015-01-13 Advanced Micro Devices, Inc. Correlating traces in a computing system
KR101404129B1 (ko) * 2012-06-26 2014-06-10 인텔렉추얼디스커버리 주식회사 데이터 저장 시스템 및 데이터 관리 방법
US8832500B2 (en) 2012-08-10 2014-09-09 Advanced Micro Devices, Inc. Multiple clock domain tracing
US8959398B2 (en) 2012-08-16 2015-02-17 Advanced Micro Devices, Inc. Multiple clock domain debug capability
US8856769B2 (en) 2012-10-23 2014-10-07 Yong-Kyu Jung Adaptive instruction prefetching and fetching memory system apparatus and method for microprocessor system
US9710349B2 (en) * 2013-11-05 2017-07-18 Texas Instruments Incorporated Storing first computer trace information in memory of second computer
US20160283243A1 (en) * 2015-03-28 2016-09-29 Yong-Kyu Jung Branch look-ahead instruction disassembling, assembling, and delivering system apparatus and method for microprocessor system
US10031833B2 (en) 2016-08-31 2018-07-24 Microsoft Technology Licensing, Llc Cache-based tracing for time travel debugging and analysis
US10042737B2 (en) * 2016-08-31 2018-08-07 Microsoft Technology Licensing, Llc Program tracing for time travel debugging and analysis
US10031834B2 (en) 2016-08-31 2018-07-24 Microsoft Technology Licensing, Llc Cache-based tracing for time travel debugging and analysis
US10310977B2 (en) 2016-10-20 2019-06-04 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using a processor cache
US10324851B2 (en) 2016-10-20 2019-06-18 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using way-locking in a set-associative processor cache
US10310963B2 (en) 2016-10-20 2019-06-04 Microsoft Technology Licensing, Llc Facilitating recording a trace file of code execution using index bits in a processor cache
US10489273B2 (en) 2016-10-20 2019-11-26 Microsoft Technology Licensing, Llc Reuse of a related thread's cache while recording a trace file of code execution
US10540250B2 (en) 2016-11-11 2020-01-21 Microsoft Technology Licensing, Llc Reducing storage requirements for storing memory addresses and values
KR20180054364A (ko) * 2016-11-15 2018-05-24 삼성전자주식회사 트레이스 데이터를 생성하는 스토리지 장치 및 상기 스토리지 장치의 동작 방법
US10318332B2 (en) 2017-04-01 2019-06-11 Microsoft Technology Licensing, Llc Virtual machine execution tracing
US10296442B2 (en) 2017-06-29 2019-05-21 Microsoft Technology Licensing, Llc Distributed time-travel trace recording and replay
US10459824B2 (en) 2017-09-18 2019-10-29 Microsoft Technology Licensing, Llc Cache-based trace recording using cache coherence protocol data
US10558572B2 (en) 2018-01-16 2020-02-11 Microsoft Technology Licensing, Llc Decoupling trace data streams using cache coherence protocol data
US11907091B2 (en) 2018-02-16 2024-02-20 Microsoft Technology Licensing, Llc Trace recording by logging influxes to an upper-layer shared cache, plus cache coherence protocol transitions among lower-layer caches
US10496537B2 (en) 2018-02-23 2019-12-03 Microsoft Technology Licensing, Llc Trace recording by logging influxes to a lower-layer cache based on entries in an upper-layer cache
US10642737B2 (en) 2018-02-23 2020-05-05 Microsoft Technology Licensing, Llc Logging cache influxes by request to a higher-level cache
US10466986B2 (en) 2018-03-30 2019-11-05 Oracle International Corporation Optimized recompilation using hardware tracing
US11169810B2 (en) 2018-12-28 2021-11-09 Samsung Electronics Co., Ltd. Micro-operation cache using predictive allocation
US11288071B2 (en) * 2020-05-04 2022-03-29 Morgan Stanley Services Group Inc. System and method for prefetching instructions and data
CN113821257B (zh) * 2021-09-29 2023-05-23 杭州迪普科技股份有限公司 处理器内核调用栈信息查询方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3707725A (en) * 1970-06-19 1972-12-26 Ibm Program execution tracing system improvements
JPS59194245A (ja) * 1983-04-19 1984-11-05 Nec Corp マイクロプログラム制御装置
US4788683A (en) * 1986-01-14 1988-11-29 Ibm Corporation Data processing system emulation with microprocessor in place
JPH01134541A (ja) * 1987-11-20 1989-05-26 Toshiba Corp 情報処理装置
JP2678283B2 (ja) * 1988-03-15 1997-11-17 株式会社日立製作所 データ通信制御装置
JPH04148242A (ja) * 1990-10-08 1992-05-21 Fujitsu Ltd ロード・モジュール実行時トレース処理方法
US5377198A (en) * 1991-11-27 1994-12-27 Ncr Corporation (Nka At&T Global Information Solutions Company JTAG instruction error detection
EP0636976B1 (de) * 1993-07-28 1998-12-30 Koninklijke Philips Electronics N.V. Mikrokontroller mit hardwaremässiger Fehlerbeseitigungsunterstützung nach dem Boundary-Scanverfahren
US5964893A (en) * 1995-08-30 1999-10-12 Motorola, Inc. Data processing system for performing a trace function and method therefor
US5724505A (en) * 1996-05-15 1998-03-03 Lucent Technologies Inc. Apparatus and method for real-time program monitoring via a serial interface
GB9626367D0 (en) * 1996-12-19 1997-02-05 Sgs Thomson Microelectronics Providing an instruction trace
US5978902A (en) * 1997-04-08 1999-11-02 Advanced Micro Devices, Inc. Debug interface including operating system access of a serial/parallel debug port

Also Published As

Publication number Publication date
US6167536A (en) 2000-12-26
KR100546087B1 (ko) 2006-01-26
WO1998045783A1 (en) 1998-10-15
DE69830718D1 (de) 2005-08-04
KR20010006188A (ko) 2001-01-26
JP2001519948A (ja) 2001-10-23
EP0974094B1 (de) 2005-06-29
EP0974094A1 (de) 2000-01-26
DE69841339D1 (de) 2010-01-07

Similar Documents

Publication Publication Date Title
DE69830718T2 (de) Ablaufdaten-cachespeicher fuer mikroprozessorbasierte anordung
US6009270A (en) Trace synchronization in a processor
KR100517679B1 (ko) 컴팩트한 트레이스 기록 기억장치를 포함하는 디버그 인터페이스
US6185732B1 (en) Software debug port for a microprocessor
DE3903835C2 (de)
EP0974096B1 (de) Mikroprozessorbetriebene anordnung mit cache-speicher zum aufnehmen von software-leistungsprofildaten
DE60319125T2 (de) Integrierte schaltung mit mehreren betriebsarten
DE10333817B4 (de) Emulationsschnittstellensystem
US6243836B1 (en) Apparatus and method for circular buffering on an on-chip discontinuity trace
EP0567722B1 (de) System zur Analyse und Fehlerbeseitigung integrierter Software durch dynamischen und interactiven Gebrauch von Kode-Markierern
DE60010420T2 (de) Automatisches Regressionstesten von Arbeitsplatz-Software
DE60108851T2 (de) Mehrkanal, mehrdienstfehlerbeseitigung in pipeline-cpu-architektur
DE4313594A1 (de) Mikroprozessor
DE19834191A1 (de) Integrierte Schaltungsvorrichtung und ihr Steuerverfahren
EP0104635A2 (de) Verfahren und Anordnung zum Prüfen eines digitalen Rechners
WO2004049159A2 (de) Einrichtung und verfahren zur analyse von eingebetteten systemen
EP1184790B1 (de) Ablaufdaten-Cachespeicher für mikroprozessorbetriebene Anordung
US20020049893A1 (en) Accessing diagnostic program counter value data within data processing systems
DE3037475A1 (de) Schnittstellenschaltungsanordnung fuer eine datenverarbeitungsanlage
DE60212455T2 (de) System und verfahren zum takten eines ip-core während einer fehlersuchoperation
EP1248195B1 (de) Verbindungsprüfung zwischen einer programmgesteuerten Einheit und einer Schaltung
DE4142161C2 (de) Busemulationsvorrichtung
EP1249759A1 (de) Programmgesteuerte Einheit
EP1365325A1 (de) Anordnung zur In-Circuit-Emulation einer programmgesteuerten Einheit
DD253311A1 (de) Schaltungsanordnung zur pruefung von mikrorechnerschaltungsanordnungen einschliesslich des mikrorechners selbst

Legal Events

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

Owner name: GLOBALFOUNDRIES INC. MAPLES CORPORATE SERVICES, KY