DE60130178T2 - Programmentwicklungsunterstützungsapparat - Google Patents
Programmentwicklungsunterstützungsapparat Download PDFInfo
- Publication number
- DE60130178T2 DE60130178T2 DE60130178T DE60130178T DE60130178T2 DE 60130178 T2 DE60130178 T2 DE 60130178T2 DE 60130178 T DE60130178 T DE 60130178T DE 60130178 T DE60130178 T DE 60130178T DE 60130178 T2 DE60130178 T2 DE 60130178T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- instruction
- address
- command
- tracking
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/362—Debugging of software
- G06F11/3636—Debugging of software by tracing the execution of the program
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Description
- Die Erfindung betrifft eine Vorrichtung zur Unterstützung der Programmentwicklung und insbesondere eine Vorrichtung zur Unterstützung der Programmentwicklung, die die Fehlersuche in einem Computerprogramm unterstützt.
- Insbesondere kommt eine Vorrichtung zur Unterstützung der Programmentwicklung zum Einsatz, um ein Programm zum Betreiben eines Computers zu entwickeln und von Fehlern zu befreien. Speziell wird eine Vorrichtung zur Unterstützung der Programmentwicklung mit einer Trace-Funktion oder Verfolgungsfunktion verwendet, um eine Befehlsadresse und einen Befehlscode einer CPU (Zentraleinheit), die sich bei Ausführung eines Programms allgemein jeden Moment ändern, in einem als Trace-Speicher oder Verfolgungsspeicher bezeichneten Speicher zu speichern und sie als Programmausführungsergebnis zu analysieren.
- In den letzten Jahren wurden auf Computern installierte Programme komplex und umfangreich, und ein Verfolgungsspeicher muß eine große Kapazität haben, um eine größere Menge von Ausführungsergebnissen zu speichern. Da andererseits die Betriebsgeschwindigkeit einer CPU steigt, ist ein schnellerer Speicher notwendig. Allgemein muß eine Vorrichtung zur Unterstützung der Programmentwicklung mit einer Verfolgungsfunktion mit der gleichen Geschwindigkeit wie die Betriebsfrequenz der CPU betrieben werden. Da aber ein Speicher mit großer Kapazität und hoher Geschwindigkeit sehr teuer ist, war es erforderlich, die im Verfolgungsspeicher zu speichernde Verfolgungsdatenmenge zu verringern.
- Eine dieser Forderung nachkommende Technik ist in der
(Dokument 1) offenbart, bei der der Differenzwert zwischen dem unmittelbar vorhergehenden Programmzählerwert und dem aktuellen Programmzählerwert im Verfolgungsspeicher protokolliert und nur für einen Verzweigungsbefehl oder Sprungbefehl der Programmzählerwert selbst protokolliert wird, was die Verfolgungsdaten komprimiert.JP-A-11-259335 12 zeigt die im Dokument 1 offenbarte herkömmliche Vorrichtung zur Unterstützung der Programmentwicklung. - Gemäß
12 hat die Vorrichtung zur Unterstützung der Programmentwicklung einen Evaluationchip oder Auswertechip301 , der zur Programmentwicklung vorbereitet ist, und einen Tracer oder Verfolger302 zum Speichern eines Befehlsverfolgungsergebnisses. Befehlsadreß-/Befehlscodedaten, die von einer CPU303 im Auswertechip301 ausgegeben werden, werden durch eine Befehlsadreß-/Befehlscode-Latchschaltung oder Zwischenspeicherschaltung321 synchron zu einem Taktsignal CLK zwischengespeichert, und eine Sprungbefehl-Bestimmungsschaltung323 bestimmt, ob der Befehl ein Sprungbefehl ist. - Ist der Befehl kein Sprungbefehl, komprimiert eine Befehlsadreßdaten-Kompressionsschaltung
322 die Befehlsadresse durch Erzeugen des Differenzwerts zwischen dem unmittelbar vorhergehenden Programmzählerwert und dem aktuellen Programmzählerwert. Eine Verfolgungssteuerschaltung324 kombiniert komprimierte Daten mehrerer Befehlsadressen zu Verfolgungsdaten in Übereinstimmung mit der Bitbreite eines Verfolgungsspeichers306 . Die kombinierten Verfolgungsdaten werden in den Verfolgungsspeicher306 eingeschrieben. Ist der Befehl ein Sprungbefehl, wird die Befehlsadresse ohne Kompression direkt in den Verfolgungsspeicher306 eingeschrieben. - Da bei dieser bekannten Technik Befehlsadressen mit Ausnahme der von Sprungbefehlen komprimiert und im Verfolgungsspeicher gespeichert werden, kann die Kapazität des Verfolgungsspeichers verringert sein. Werden zudem komprimierte Differenzwerte beginnend von unkomprimierten Daten der Befehlsadresse eines Sprungbefehls addiert, kann die Befehlsadresse rekonstruiert werden.
- Allerdings werden in der bekannten Technik gemäß
12 nur Sprungbefehle detektiert. Soll nur ein bestimmter Bereich eines Programms wiederholt verfolgt werden, wie z. B. bei der Abschnittsverfolgung (Section Trace), kann die ursprüngliche Adresse nicht aus den komprimierten Daten rekonstruiert werden. Grund dafür ist, daß die Startbefehlsadresse der Abschnittsverfolgung kein Sprungbefehl und daher wie andere Befehlsadressen komprimiert ist. - Die
US-A-5491793 betrifft eine Zentraleinheit (CPU) mit Möglichkeiten zur Unterstützung der Fehlersuche. Zu den Möglichkeiten zur Fehlersuchunterstützung zählen eine Fehlersuchunterstützungseinheit (debug support unit – DSU), ein Fehlersuchunterstützungs-Schnittstellenbus (debug support interface bus) und ein Diagnoseinstrument. Während einer Ausführungsverfolgung sendet die DSU solche Verfolgungsdaten wie eine Befehlsadresse und einen Verfolgungsstatus über den Bus zum Diagnoseinstrument. Befehlsadressen werden in 4-Bit-Segmenten in einem Taktzyklus während einer Verfolgung gesendet. Zum Verfolgungsstatus gehört eine Angabe von nicht sequentieller Befehlsausführung durch die Befehlseinheit (Instruction Unit – IU). Ein Steuerbit dient zum Umschalten in einen Haltezustand des IU-Betriebs, wenn ein nicht sequentieller Befehl im Verfolgungsmodus auftritt. Das Diagnoseinstrument verwendet durch die DSU bereitgestellte Verfolgungsdaten, um eine komplette Ausführungsverfolgung in Echtzeit zu erzeugen. Im Verlauf von Breakpoint- oder Haltepunktoperationen wird für Eingaben, z. B. eines Fehlersuchbefehls, durch das Diagnoseinstrument über den Fehlersuchunterstützungs-Schnittstellenbus zur CPU zur Ausführung durch sie gesorgt. - Eine Aufgabe der Erfindung ist, eine Vorrichtung zur Unterstützung der Programmentwicklung bereitzustellen, die eine Befehlsadresse auch dann komprimieren und rekonstruieren kann, wenn ein spezifischer Bereich beginnend von einem spezifischen Befehlscode oder einer spezifischen Adresse mit Ausnahme eines Sprungbefehls wie bei der Abschnittsverfolgung zu verfolgen ist, und eine enorme Menge von Verfolgungsdaten auch mit einer begrenzten Speicherkapazität speichern kann.
- Die Aufgabe der Erfindung wird mit den Merkmalen der Ansprüche gelöst.
- Zur Lösung dieser Aufgabe wird erfindungsgemäß folgendes bereitgestellt: eine Vorrichtung zur Unterstützung der Programmentwicklung mit einer CPU (Zentraleinheit) zum Ausführen eines Zielprogramms und Ausgeben von Befehlsadreß-/Befehlscodedaten; einer Ereignisverwaltungseinrichtung zum Assertieren bzw. Bestätigen (Logisch-Wahr-Setzen) und Ausgeben eines Abschnittsverfolgungs-Startsignals bei Detektieren, daß die Befehlsadreß-/Befehlscodedaten von der CPU mit einer vorbestimmten Befehlsadresse oder einem vorbestimmten Befehlscode übereinstimmen, die (der) als Ereignisbedingung vorab eingestellt ist, wobei sich der vorbestimmte Befehlscode von einem Sprungbefehl unterscheidet; einer Verfolgungsdaten-Erzeugungseinrichtung zum: Ausgeben einer unkomprimierten Befehlsadresse als Verfolgungsdaten, wenn ein Befehlscode der Befehlsadreß-/Befehlscodedaten von der CPU ein Sprungbefehl ist; Ausgeben einer unkomprimierten Befehlsadresse als Verfolgungsdaten, wenn das Abschnittsverfolgungs-Startsignal von der Ereignisverwaltungseinrichtung aktiv ist; Erzeugen mehrerer komprimierter Befehlsadressen, wobei die Kompression durch Berechnen des Versatzes zwischen zwei aufeinanderfolgenden Befehlsadressen durchgeführt wird; Kombinieren der komprimierten Befehlsadressen und Ausgeben der komprimierten Befehlsadressen als Verfolgungsdaten, wenn die Befehlsadresse der Befehlsadreß-/Befehlscodedaten kein Sprungbefehl ist und das Abschnittsverfolgungs-Startsignal inaktiv ist; und einem Verfolgungsspeicher zum Speichern der Verfolgungsdaten von der Verfolgungsdaten-Erzeugungseinrichtung.
-
1 ist ein Blockdiagramm einer Vorrichtung zur Unterstützung der Programmentwicklung gemäß einer ersten Ausführungsform der Erfindung; -
2 ist ein Schaltbild einer Befehlsadreß-/Befehlscode-Zwischenspeicherschaltung gemäß1 ; -
3 ist ein Schaltbild einer Befehlsadreßdaten-Kompressionsschaltung gemäß1 ; -
4 ist ein Schaltbild einer Verfolgungssteuerschaltung gemäß1 ; -
5 ist eine Ansicht einer Programmbeispielliste; -
6A bis6I sind Zeitdiagramme eines Sprungbefehl-Bestimmungsbetriebs durch die Vorrichtung zur Unterstützung der Programmentwicklung gemäß1 ; -
7 ist eine Ansicht von Daten in einem Verfolgungsspeicher nach Sprungbefehlbestimmung; -
8 ist ein Ablaufplan eines Verfolgungsdaten-Leseverfahrens; -
9A bis9I sind Zeitdiagramme eines Abschnittsverfolgungsbetriebs durch die Vorrichtung zur Unterstützung der Programmentwicklung gemäß1 ; -
10 ist eine Ansicht von Daten im Verfolgungsspeicher nach Abschnittsverfolgung; -
11 ist ein Blockdiagramm einer Vorrichtung zur Unterstützung der Programmentwicklung gemäß einer zweiten Ausführungsform der Erfindung; und -
12 ist ein Blockdiagramm einer herkömmlichen Vorrichtung zur Unterstützung der Programmentwicklung. - Im folgenden wird die Erfindung anhand der beigefügten Zeichnungen näher beschrieben.
- Eine Vorrichtung zur Unterstützung der Programmentwicklung der Erfindung stellt einen Ereignisdetektionsabschnitt zum Detektieren einer vorbestimmten Befehlsadresse oder eines vorbestimmten Befehlscodes bereit, die (der) extern vorab eingestellt ist, und hat einen Mechanismus zum Speichern einer Befehlsadresse in einem Verfolgungsspeicher zum Speichern der detektierten Befehlsadresse oder des detektierten Befehlscodes ohne Kompression, wenn ein Ereignis detektiert wird.
-
1 zeigt eine Vorrichtung zur Unterstützung der Programmentwicklung gemäß einer Ausführungsform der Erfindung. Gemäß1 hat die Vorrichtung zur Unterstützung der Programmentwicklung einen Evaluation- oder Auswertechip1 zum Ausführen eines Zielprogramms und einen Tracer bzw. Verfolger2 zum Speichern eines Ausführungsergebnisses. - Der Auswertechip
1 hat eine CPU3 zum eigentlichen Ausführen des Zielprogramms und einen Ereignisdetektionsabschnitt4 , der als Ereignisverwaltungseinrichtung dient. Der Ereignisdetektionsabschnitt4 empfängt Befehlsadreß-/Befehlscodedaten14 von der CPU3 und bestimmt, ob die Befehlsadresse oder der Befehlscode mit einer voreingestellten Ereignisbedingung übereinstimmt. Stimmen sie überein, aktiviert der Ereignisdetektionsabschnitt4 ein Abschnittsverfolgungs-Startsignal16 und hält ein Datenzwischenspeichersignal15 für die Abschnittsverfolgungsperiode aktiv. - Der Verfolger
2 hat einen Verfolgungsdaten-Erzeugungsabschnitt5 und einen Verfolgungsspeicher6 zum Speichern von Verfolgungsdaten. Der Verfolgungsdaten-Erzeugungsabschnitt5 empfängt ein Taktsignal13 , die Befehlsadreß-/Befehlscodedaten14 , das Datenzwischenspeichersignal15 für die Abschnittsverfolgungsperiode und das Abschnittsverfolgungs-Startsignal16 vom Auswertechip1 . Ist die Befehlsadresse der Befehlsadreß-/Befehlscodedaten14 ein Sprungbefehl oder ist das Abschnittsverfolgungs-Startsignal16 aktiv, schreibt der Verfolgungsdaten-Erzeugungsabschnitt5 eine Befehlsadresse27 in den Verfolgungsspeicher6 ohne Kompression ein. - Ist andererseits ein Befehlscode
28 der Befehlsadreß-/Befehlscodedaten14 kein Sprungbefehl und ist das Abschnittsverfolgungs-Startsignal16 inaktiv, erzeugt der Verfolgungsdaten-Erzeugungsabschnitt5 eine komprimierte Befehlsadresse31 , die einem Differenzwert entspricht, der durch Subtrahieren der Befehlsadresse der vorhergehenden Befehlsadreß-/Befehlscodedaten von der Befehlsadresse27 der aktuellen Befehlsadreß-/Befehlscodedaten14 erhalten wird. Außerdem kombiniert der Verfolgungsdaten-Erzeugungsabschnitt5 mehrere komprimierte Befehlsadressen31 in Entsprechung zu mehreren aufeinanderfolgenden Befehlsadreß-/Befehlscodedaten14 in Übereinstimmung mit der Bitbreite des Verfolgungsspeichers6 und schreibt die kombinierten Daten in den Verfolgungsspeicher6 als Verfolgungsdaten32 ein. - Der Ereignisdetektionsabschnitt
4 hat eine Ereigniseinstellschaltung11 und eine Ereignisdetektionsschaltung12 . Ist eine Befehlsadresse oder ein Befehlscode als Ereignisbedingung extern vorab eingestellt, behält die Ereigniseinstellschaltung11 die aktive Periode des Datenzwischenspeichersignals15 bei. Bei Detektieren, daß der Einstellwert einer Befehlsadresse oder eines Befehlscodes, der von der Ereigniseinstellschaltung11 durch ein Ereigniseinstelldatensignal17 übertragen wird, mit der Befehlsadresse oder dem Befehlscode übereinstimmt, die (der) von der CPU3 ausgegeben wird, aktiviert die Ereignisdetektionsschaltung12 das Abschnittsverfolgungs-Startsignal16 und aktiviert auch das Datenzwischenspeichersignal15 während der in der Ereigniseinstellschaltung11 eingestellten Periode. Ist keine Ereignisbedingung eingestellt, gibt das Datenzwischenspeichersignal15 kontinuierlich den aktiven Pegel aus. - Der Verfolgungsdaten-Erzeugungsabschnitt
5 verfügt über eine Befehlsadreß-/Befehlscode-Zwischenspeicherschaltung21 , eine Befehlsadreßdaten-Kompressionsschaltung22 , eine Sprung befehl-Bestimmungsschaltung23 , eine Verfolgungssteuerschaltung24 und eine ODER-Schaltung25 mit zwei Eingängen. - Die Befehlsadreß-/Befehlscode-Zwischenspeicherschaltung
21 führt eine Zwischenspeicherung der von der CPU3 im Auswertechip1 ausgegebenen Befehlsadreß-/Befehlscodedaten14 auf der Grundlage des Datenzwischenspeichersignals15 synchron zum Taktsignal13 durch und gibt die Befehlsadresse27 und den Befehlscode28 aus. - Die Befehlsadreßdaten-Kompressionsschaltung
22 empfängt die Befehlsadresse27 von der Befehlsadreß-/Befehlscode-Zwischenspeicherschaltung21 und ein Auswahlsignal30 für unkomprimierte Daten von der ODER-Schaltung25 mit zwei Eingängen. Ist das Auswahlsignal30 für unkomprimierte Daten aktiv, gibt die Befehlsadreßdaten-Kompressionsschaltung22 die Befehlsadresse27 als komprimierte Befehlsadresse31 ohne Kompression aus. Ist andererseits das Auswahlsignal30 für unkomprimierte Daten inaktiv, gibt die Befehlsadreßdaten-Kompressionsschaltung22 Differenzdaten, die durch Subtrahieren der unmittelbar vorhergehenden Befehlsadresse von der aktuellen Befehlsadresse erhalten werden, als komprimierte Befehlsadresse31 aus. - Die Sprungbefehl-Bestimmungsschaltung
23 empfängt den Befehlscode28 von der Befehlsadreß-/Befehlscode-Zwischenspeicherschaltung21 und bestimmt, ob der Befehlscode28 ein Sprungbefehl ist. Wird bestimmt, daß der Befehlscode ein Sprungbefehl ist, assertiert (bestätigt) die Sprungbefehl-Bestimmungsschaltung23 ein Sprungbefehl-Detektionssignal29 (setzt es logisch wahr) (H-Pegel). - Die Verfolgungssteuerschaltung
24 empfängt die komprimierte Befehlsadresse31 von der Befehlsadreßdaten-Kompressionsschaltung22 und das Auswahlsignal30 für unkomprimierte Daten von der ODER-Schaltung25 mit zwei Eingängen. Ist das Auswahlsignal30 für unkomprimierte Daten aktiv, gibt die Verfolgungssteuerschaltung24 die komprimierte Befehlsadresse31 als Verfolgungsdaten32 ohne Verarbeitung aus. Ist andererseits das Auswahlsignal30 für unkomprimierte Daten inaktiv, kombiniert die Verfolgungssteuerschaltung24 mehrere kontinuierlich empfangene komprimierte Befehlsadressen31 in Übereinstimmung mit der Bitbreite des Verfolgungsspeichers6 und gibt die kombinierten Daten als Verfolgungsdaten32 aus und gibt zusätzlich zum Verfolgungsspeicher6 ein Verfolgungsdaten-Schreibsignal34 zum Bezeichnen eines Schreibvorgangs der Verfolgungsdaten und eine Verfolgungsspeicheradresse33 zum Bezeichnen einer Speicheradresse aus. - Die ODER-Schaltung
25 mit zwei Eingängen assertiert (bestätigt) das Auswahlsignal30 für unkomprimierte Daten und gibt es aus, wenn das Sprungbefehl-Detektionssignal29 von der Sprungbefehl-Bestimmungsschaltung23 und/oder das Abschnittsverfolgungs-Startsignal16 vom Ereignisdetektionsabschnitt4 aktiv ist (H-Pegel). - Im folgenden werden Einzelheiten der Befehlsadreß-/Befehlscode-Zwischenspeicherschaltung
21 anhand von2 beschrieben. Gemäß2 hält die Befehlsadreß-/Befehlscode-Zwischenspeicherschaltung21 die Befehlsadreß-/Befehlscodedaten14 durch einen Datenzwischenspeicher211 und extrahiert die Befehlsadresse27 und den Befehlscode28 . - Die Befehlsadreß-/Befehlscodedaten
14 werden durch den Datenspeicher bzw. Datenzwischenspeicher211 grundsätzlich synchron zu den Befehlsadreß-/Befehlscodedaten14 in Übereinstimmung mit dem von der CPU3 ausgegebenen Taktsignal13 (zwischen) gespeichert. In diesem Fall wird der Zwischenspeicherbetrieb EIN/AUS-gesteuert, indem das Gatter einer UND-Schaltung212 durch das Datenzwischenspeichersignal15 von der Ereignisdetektionsschaltung12 EIN/AUS-gesteuert wird. Bei der Abschnittsverfolgung ist das Datenzwischenspeichersignal15 nur im Verlauf der Periode vom Start bis zum Ende der Abschnittsverfolgung aktiv. Im Normalverfolgungszustand behält das Datenzwischenspeichersignal15 stets den aktiven Pegel. - Als nächstes werden Einzelheiten der Befehlsadreßdaten-Kompressionsschaltung
22 anhand von3 beschrieben. Als Befehlsadreß-Kompressionsverfahren wird im Nichtkompressionsmodus der Befehlsadreßwert (z. B. 32 Bit lang) als Basisadresse protokolliert, und im Kompressionsmodus wird der Differenzwert (z. B. 8 Bit lang) zwischen dem unmittelbar vorhergehenden Befehlsadreßwert und dem aktuellen Befehlsadreßwert als komprimierte Befehlsadreßdaten protokolliert. Die Befehlsadreßdaten-Kompressionsschaltung22 verfügt über einen Zwischenspeicher221 für vorhergehende Befehlsadressen, einen Subtrahierer222 und einen Kompressions-/Nichtkompressions-Schaltkreis223 . - Der Speicher bzw. Zwischenspeicher
221 für vorhergehende Befehlsadressen erzeugt Differenzdaten zwischen dem aktuellen Befehlsadreßwert und dem vorhergehenden Befehlsadreßwert als komprimierte Befehlsadreßdaten. Der Subtrahierer222 berechnet die Differenz zwischen der aktuellen Befehlsadresse und der Ausgabe vom Zwischenspeicher221 für vorhergehende Befehlsadressen, um komprimierte Daten zu erzeugen. Der Kompressions-/Nichtkompressions-Schaltkreis223 schaltet zwischen den komprimierten Daten vom Subtrahierer222 und den Befehlsadreßdaten27 als unkomprimierte Daten um. Ist das Auswahlsignal30 für unkomprimierte Daten assertiert, wird die unkomprimierte Befehlsadresse27 vom Kompressions-/Nichtkompressions-Schaltkreis223 als komprimierte Befehlsadresse31 ausgegeben. - Im folgenden werden Einzelheiten der Verfolgungssteuerschaltung
24 anhand von4 beschrieben. Die Verfolgungssteuerschaltung24 verfügt über ein Schieberegister241 für komprimierte Daten, einen Zwischenspeicher242 für unkomprimierte Daten, einen Verfolgungsdaten-Schaltkreis243 , einen Verfolgungsdatenzähler244 und eine ODER-Schaltung245 mit zwei Eingängen. Die Verfolgungssteuerschaltung24 mit diesen Komponenten erzeugt die in den Verfolgungsspeicher6 einzuschreibende Verfolgungsspeicheradresse33 , das Verfolgungsschreibsignal34 zum Freigeben des Schreibbetriebs und ein Zeitsteuersignal zum abschließenden Einschreiben der Daten in den Verfolgungsspeicher6 . Außerdem richtet die Verfolgungssteuerschaltung24 das komprimierte Befehlsadreßsignal31 , das durch die Befehlsadreßdaten-Kompressionsschaltung22 erzeugt wird, zur Bitbreite des Verfolgungsspeichers6 aus. - Ist das Verfolgungsschreibsignal
34 aktiv, wird der Verfolgungsdatenzähler244 synchron zur Vorderflanke des Taktsignals13 um eins inkrementiert. Die vom Verfolgungsdatenzähler244 ausgegebene Verfolgungsspeicheradresse33 repräsentiert eine Adresse, an der die Verfolgungsdaten32 in einem Rahmen des Verfolgungsspeichers6 sequentiell zu protokollieren sind. Die Verfolgungsspeicheradresse33 ändert sich synchron zur Schreibzeitsteuerung des Verfolgungsspeichers6 und wird normalerweise unmittelbar nach Beendigung des Schreibvorgangs im Verfolgungsspeicher6 inkrementiert. Die Schreibzeitsteuerung wird später beschrieben. - Als nächstes wird der Betrieb zum Ausrichten der komprimierten Daten zur Bitbreite des Verfolgungsspeichers
6 beschrieben. Zum Ausrichten komprimierter Daten mit einer kleineren Bitbreite als eine Basisadresse zur Bitbreite des Verfolgungsspeichers6 wird das Schieberegister241 für komprimierte Daten verwendet. Sind die Daten der komprimierten Befehlsadresse31 komprimiert, speichert das Schieberegister241 für komprimierte Daten die Daten, während es sie sequentiell verschiebt, bis Daten gespeichert sind, die die Bitbreite des Verfolgungsspeichers füllen. Da gemäß4 das Datenbreitenverhältnis "unkomprimierter Daten" zu "komprimierten Daten" 4:1 beträgt, speichert das Schieberegister241 für komprimierte Daten sequentiell komprimierte Daten von maximal vier Befehlsadressen. - Sind die vierten komprimierten Daten in das Schieberegister
241 für komprimierte Daten eingeschrieben, wird ein Ausrichtungsabschlußsignal246 assertiert und im Verfolgungsspeicher6 über die ODER-Schaltung245 mit zwei Eingängen als Daten eines Rahmens protokolliert. Gleichzeitig werden die Inhalte im Schieberegister241 für komprimierte Daten gelöscht, um es auf die Speicherung der nächsten komprimierten Daten vorzubereiten. - Die Befehlsadresse
27 als unkomprimierte Daten oder ausgerichtete komprimierte Daten247 , die zur Bitbreite durch das Schieberegister241 für komprimierte Daten ausgerichtet wurden, wird als auszugebende Verfolgungsdaten32 durch den Verfolgungsdaten-Schaltkreis243 in Übereinstimmung mit einem vom Zwischenspeicher242 für unkomprimierte Daten ausgegebenen Signal ausgewählt. Der Zwischenspeicher242 für unkomprimierte Daten gibt ein Signal, das durch temporäres Zwischenspeichern des Auswahlsignals30 für unkomprimierte Daten und Einstellen seiner Zeitsteuerung erhalten wird, zum Verfolgungsdaten-Schaltkreis243 aus. - Als nächstes wird der Datenkompressions-/-nichtkompressionsbetrieb für einen Sprungbefehl und einen Normalbefehl in der Vorrichtung zur Unterstützung der Programmentwicklung mit der o. g. Anordnung beschrieben.
-
5 zeigt eine Programmbeispielliste zur Erläuterung des Verfolgungsbetriebs. Dieses Programmbeispiel ist ein Teilauszug aus einem großen Programm. Von Befehlen 1 bis 27 bilden Befehle 3 bis 26 eine einzelne Schleife, so daß das Programm zum Befehl 3 in Übereinstimmung mit einer Sprungbefehlsbedingung des Befehls 26 mit beliebiger Häufigkeit wiederholt springt. Der Befehlsadreßraum hat 32 Bit. Die Befehlscodelänge beträgt 4 oder 2 Byte. Der Verfolgungsspeicher verwendet einen Ringpuffer mit Adressen (00000) bis (000FF). -
6A bis6I zeigen Betriebszeitsteuerungen beim Bestimmen eines Sprungbefehls. Der Betrieb gemäß6A bis6I verwendet keine Abschnittsverfolgung und ist grundsätzlich mit dem der bekannten Technik gemäß12 identisch. - Ist keine Ereignisbedingung in der Ereigniseinstellschaltung
11 eingestellt und wird keine Abschnittsverfolgung verwendet, so ist das Datenzwischenspeichersignal15 immer aktiv. Die Befehlsadreß-/Befehlscode-Zwischenspeicherschaltung21 führt eine Zwischenspeicherung der Befehlsadreß-/Befehlscodedaten14 vom Befehl 1 als Reaktion auf jedes Taktsignal13 sequentiell durch und gibt die Befehlsadresse27 aus (6A bis6C ). - Fährt das Programm mit dem Befehl 26 (
5 ) als Sprungbefehl fort, wechseln die von der CPU3 ausgegebenen Befehlsadreß-/Befehlscodedaten14 zum Befehl 3. Hierbei bestimmt die Sprungbefehl-Bestimmungsschaltung23 , daß der Sprungbefehl unmittelbar zuvor ausgeführt wurde und assertiert das Sprungbefehl-Bestimmungssignal29 (6D ). - Die Befehlsadreßdaten-Kompressionsschaltung
22 gibt als komprimierte Befehlsadresse31 unkomprimierte Daten der Befehlsadresse des Befehls 3 anstelle der Differenz zwischen unmittelbar vorhergehenden Adreßwerten, d. h. komprimierten Daten, die ausgegeben wurden, aus (6E ). - Ist das Sprungbefehl-Detektionssignal
29 aktiviert, assertiert die Verfolgungssteuerschaltung24 das Verfolgungsdaten-Schreibsignal34 und gibt es zum Verfolgungsspeicher6 während einer 2-Takt-Periode aus (6H ). Die Verfolgungsspeicheradresse33 wird auf (00000) synchron zur ersten Vorderflanke des Taktsignals13 inkrementiert (6I ). Die Befehlsadresse des Befehls 3 wird als unkomprimierte Daten an einer entsprechenden Rahmenadresse des Verfolgungsspeichers6 eingeschrieben. Ist das Einschreiben in den Rahmen beendet, wird zum Einschreiben in den nächsten Rahmen die Verfolgungsspeicheradresse33 um eins auf (00001) synchron zur zweiten Vorderflanke des Taktsignals13 während der aktiven Periode des Verfolgungsdaten-Schreibsignals34 inkrementiert (6I ). - Danach berechnet in Übereinstimmung mit dem Befehl 4 die Befehlsadreßdaten-Kompressionsschaltung
22 "Befehlsadresse von Befehl 4" minus "Befehlsadresse von Befehl 3" und komprimiert das Ergebnis zu geringeren 1-Byte-Daten. Auf ähnliche Weise werden komprimierte Daten in Übereinstimmung mit den Befehlen 5, 6 und 7 erzeugt und zum Schieberegister241 für komprimierte Daten der Verfolgungssteuerschaltung24 sequentiell gesendet. Sind die komprimierten Daten des Befehls 7 eingegeben, ist das Schieberegister241 für komprimierte Daten gefüllt und gibt das Ausrichtungsabschlußsignal246 aus (6G ). Die Verfolgungssteuerschaltung24 erzeugt das Verfolgungsdaten-Schreibsignal34 in Übereinstimmung mit dem Ausrichtungsabschlußsignal246 und schreibt in den Verfolgungsspeicher6 die durch Kombinieren der komprimierten Daten der vier Befehle 4 bis 7 erhaltenen Verfolgungsdaten32 ein (6G und6H ). Danach wird die Verfolgungsspeicheradresse33 um eins auf (00002) synchron zur Vorderflanke des Taktsignals13 inkrementiert. Dieser Betrieb wird fortgesetzt, bis der nächste Sprungbefehl detektiert wird. -
7 zeigt den Datenzustand im Verfolgungsspeicher6 nach Sprungbefehlbestimmung. Dieser Datenzustand ist das Ausführungsergebnis des durch den o. g. Betrieb im Verfolgungsspeicher6 protokollierten Programmbeispiels. - Bei den im Verfolgungsspeicher
6 gespeicherten Verfolgungsdaten haben dem Befehl 3 entsprechende Daten ein Kompressionsflag "0", das darstellt, daß die Befehlsadresse als unkomprimierte Daten ausgelesen werden kann. Da für jeden der übrigen Befehle ein Inkrement (das mit der Anzahl von Bytes des Befehlscodes übereinstimmt) des unmittelbar vorhergehenden Befehlsadresse gespeichert ist, kann eine rekonstruierte Adresse durch Auslesen der Befehlsadresse und ihr Addieren zur vorhergehenden Befehlsadresse erhalten werden. - Im folgenden wird der Verfolgungsdaten-Lesebetrieb anhand von
8 näher beschrieben. - Schritte S1 bis S3 entsprechen der Initialisierung des Lesebetriebs. Im Schritt S1 wird der Lesezeiger auf den Startrahmen des Verfolgungsspeichers
6 gesetzt. Im Schritt S2 wird die Befehlsadresse am Startrahmen als Basisadresse eingestellt. Im Schritt S3 wird bestimmt, ob das Kompressionsflag "1" ist. Bei NEIN im Schritt S3 geht der Ablauf zu Schritt S4 über. Bei JA im Schritt S3 geht der Ablauf zu Schritt S5 über. - Im Schritt S4 werden die Verfolgungsdaten vom Startrahmen des Verfolgungsspeichers
6 zwischengespeichert, und die Befehlsadresse im unkomprimierten Rahmen wird als Basisadresse eingestellt. Im Schritt S6 wird der Befehlscode der Adresse aus der Basisadresse ausgelesen, und der Befehl wird angezeigt. Im Schritt S7 wird der Lesezeiger inkrementiert, und der nächste Verfolgungsrahmen wird ausgelesen. - Bei JA im Schritt S3 sind die Rahmendaten komprimierte Daten. Im Schritt S5 wird ein Versatz zur Basisadresse addiert, um eine neue Basisadresse einzustellen. Der Ablauf fährt mit Schritt S6 fort, um den gleichen Betrieb wie zuvor beschrieben durchzuführen. Die Befehlsadressen werden gemäß dem o. g. Verfahrensablauf rekonstruiert, um die rekonstruierten Adressen gemäß
7 zu erhalten. - Als nächstes wird der Betrieb mit Hilfe der Abschnittsverfolgung anhand von
9A bis9I beschrieben. - Bei Abschnittsverfolgung wird eine Verfolgung nur für einen spezifischen Bereich eines Programms durchgeführt. Als näheres Beispiel wird der Betrieb zur Durchführung der Verfolgung nur für den Bereich von vier Schritten von Befehl 4 bis 7 in der Programmbeispielliste gemäß
5 beschrieben, wobei die Daten eingeschrieben werden. - Die von der CPU
3 ausgegebenen Befehlsadreß-/Befehlscodedaten14 werden durch den Datenzwischenspeicher211 der Verfolgungsdaten-Zwischenspeicherschaltung21 nur während der Periode abgetastet, in der die Befehle 4 bis 7 auf der Grundlage der aktiven Periode des Datenzwischenspeichersignals15 ausgeführt werden, die in der Ereigniseinstellschaltung11 eingestellt ist. Aus diesem Grund werden als Befehlsadresse27 nur die Befehlsadressen der Befehle 4 bis 7 von der Befehlsadreß-/Befehlscode-Zwischenspeicherschaltung21 zur Befehlsadreßdaten-Kompressionsschaltung22 ausgegeben (9C ). - Hierbei wird das Abschnittsverfolgungs-Startsignal
16 als Darstellung der Abschnittsverfolgungs-Startposition während der 2-Takt-Periode ab dem Ausführungsbeginn des Befehls 4 assertiert (9D ). Das Abschnittsverfolgungs-Startsignal16 wird zur ODER-Schaltung25 mit zwei Eingängen zusammen mit dem Sprungbefehl-Detektionssignal29 eingegeben. Wird das Abschnittsverfolgungs-Startsignal16 assertiert (H-Pegel), so wird das von der ODER-Schaltung25 mit zwei Eingängen ausgegebene Auswahlsignal30 für unkomprimierte Daten unabhängig davon assertiert, ob der Befehl ein Sprungbefehl ist. Als Ergebnis wird die Befehlsadresse des Befehls 4 während der L-Pegelperiode des Taktsignals13 als unkomprimierte Daten ausgegeben. - Die Erzeugung komprimierter Daten der Befehle 5 bis 7 und die Kombination mit Verfolgungsdaten sind mit
6A bis6I identisch, weshalb eine Beschreibung entfällt. -
10 zeigt den Datenzustand im Verfolgungsspeicher nach Abschnittsverfolgung. Dieser Datenzustand ist das Ausführungsergebnis von Abschnittsverfolgung des Beispielprogramms, das im Verfolgungsspeicher6 durch den o. g. Betrieb protokolliert ist. Daten, die dem Befehl 4 als Verfolgungsdaten entsprechen, haben ein Kompressionsflag "0", das darstellt, daß die Befehlsadresse unkomprimiert ist. Die bei Abschnittsverfolgung eingelesenen Verfolgungsdaten sind auch die gleichen wie in8 . -
11 zeigt eine Vorrichtung zur Unterstützung der Programmentwicklung gemäß einer zweiten Ausführungsform der Erfindung. Die Grundanordnung der Vorrichtung zur Unterstützung der Programmentwicklung gemäß11 ist die gleiche wie in der ersten Ausführungsform gemäß1 mit der Ausnahme, daß eine Rahmenadreß-Vergleichsschaltung26 zugefügt ist und eine ODER-Schaltung25a mit 3 Eingängen anstelle der ODER-Schaltung25 mit 2 Eingängen verwendet wird. - Die Rahmenadreß-Vergleichsschaltung
26 empfängt ein Ereigniseinstelldatensignal17 und eine Verfolgungsspeicheradresse33 , und stimmen vorbestimmte Abschnitte der beiden Daten überein, assertiert sie ein Rahmenübereinstimmungssignal35 . Die ODER-Schaltung25a mit 3 Eingängen empfängt das Rahmenübereinstimmungssignal35 zusätzlich zu einem Sprungbefehl-Detektionssignal29 und einem Abschnittsverfolgungs-Startsignal16 , und ist mindestens eines dieser Signale aktiv, assertiert sie ein Auswahlsignal30 für unkomprimierte Daten und gibt es aus. - Ist z. B. ein Wert, der mit der Verfolgungsspeicheradresse
33 in einem vorbestimmten Rahmenintervall übereinstimmt, in einer Ereigniseinstellschaltung11 als Ereignisbedingung eingestellt, können unkomprimierte Verfolgungsdaten in einen beliebigen Rahmen eingebettet sein. Auch wenn in dieser Ausführungsform der Abschnittsverfolgungsbereich die maximale Anzahl von Rahmen des Verfolgungsspeichers übersteigt (im zur Erläuterung dienenden Beispiel sind die Rahmen des Verfolgungsspeichers 00000 bis 000FF), können unkomprimierte Daten in die Verfolgungsdaten eingebettet sein. Somit kann auch in diesem Fall die ursprüngliche Befehlsadresse aus komprimierten Verfolgungsdaten mit Hilfe der unkomprimierten Daten als Basisbefehlsadresse rekonstruiert werden. - Wie zuvor beschrieben, kann erfindungsgemäß eine Befehlsadresse, die nicht zu komprimieren und die als Basisadresse beim Rekonstruieren komprimierter Verfolgungsdaten zu verwenden ist, im Ereignisdetektionsabschnitt extern eingestellt sein. Infolge dessen kann auch dann, wenn die Verfolgungsdaten keinen Sprungbefehl wie bei der Abschnittsverfolgung enthalten, die Basisadresse als Rekonstruktionsbasis in den Verfolgungsdaten verbleiben, und die Befehlsadresse läßt sich korrekt rekonstruieren.
- Nicht nur bei der Abschnittsverfolgung, sondern auch bei der Verfolgung von DMA (direktem Speicherzugriff) oder Interrupt der CPU werden Adreßinformationen eines Befehls zum Andern der Programmausführungsreihenfolge, obwohl er keinen Sprungbefehl enthält, oder eines Befehls zur Durchführung eines sich vom CPU-Betrieb unterscheidenden Buszugriffs eingestellt. Da auch in diesem Fall eine Befehlsadresse im Verfolgungsspeicher als unkomprimierte Daten gespeichert und als Basisadresse beim Rekonstruieren der Befehlsadresse verwendet werden kann, läßt sich die Befehlsadresse korekt rekonstruieren.
Claims (5)
- Vorrichtung zur Unterstützung der Programmentwicklung mit: einer CPU (
3 ), Zentraleinheit, zum Ausführen eines Zielprogramms und Ausgeben von Befehlsadreß-/Befehlscodedaten; einer Ereignisverwaltungseinrichtung (4 ) zum Bestätigen und Ausgeben eines Abschnittsverfolgungs-Startsignals bei Detektieren, daß die Befehlsadreß-/Befehlscodedaten von der CPU mit einer vorbestimmten Befehlsadresse oder einem vorbestimmten Befehlscode übereinstimmen, die (der) als Ereignisbedingung vorab festgelegt ist, wobei sich der vorbestimmte Befehlscode von einem Sprungbefehl unterscheidet; einer Verfolgungsdaten-Erzeugungseinrichtung (5 ) zum: Ausgeben einer unkomprimierten Befehlsadresse als Verfolgungsdaten, wenn ein Befehlscode der Befehlsadreß-/Befehlscodedaten von der CPU ein Sprungbefehl ist; Ausgeben einer unkomprimierten Befehlsadresse als Verfolgungsdaten, wenn das Abschnittsverfolgungs-Startsignal von der Ereignisverwaltungseinrichtung aktiv ist; Erzeugen mehrerer komprimierter Befehlsadressen, die unterschiedlichen Werten entsprechen, die durch Subtrahieren der Befehlsadresse der vorhergehenden Befehlsadreß-/Befehlscodedaten von der Befehlsadresse der aktuellen Befehlsadreß-/Befehlscodedaten erhalten werden; und Kombinieren der komprimierten Befehlsadressen und Ausgeben der komprimierten Befehlsadressen als Verfolgungsdaten, wenn die Befehlsadresse der Befehlsadreß-/Befehlscodeda ten kein Sprungbefehl ist und das Abschnittsverfolgungs-Startsignal inaktiv ist; und einem Verfolgungsspeicher (6 ) zum Speichern der Verfolgungsdaten von der Verfolgungsdaten-Erzeugungseinrichtung. - Vorrichtung nach Anspruch 1, wobei die Ereignisverwaltungseinrichtung (
4 ) während einer vorbestimmten Periode ein Datenspeichersignal aktiv hält und das Datenspeichersignal ausgibt, und die Verfolgungsdaten-Erzeugungseinrichtung (5 ) die Befehlsadreß-/Befehlscodedaten von der CPU (3 ) und das Abschnittsverfolgungs-Startsignal von der Ereignisverwaltungseinrichtung empfängt und bei aktivem Datenspeichersignal von der Ereignisverwaltungseinrichtung die Befehlsadreß-/Befehlscodedaten zwischenspeichert. - Vorrichtung nach Anspruch 2, wobei die Ereignisverwaltungseinrichtung (
4 ) aufweist: eine Ereigniseinstelleinrichtung (11 ), in der Ereigniseinstelldaten, die die vorbestimmte Befehlsadresse/den vorbestimmten Befehlscode als Ereignisbedingung und die aktive Periode des Datenspeichersignals enthalten, vorab eingestellt sind, und eine Ereignisdetektionseinrichtung zum Bestätigen und Ausgeben des Abschnittsverfolgungs-Startsignals, wenn detektiert wird, daß die Befehlsadresse/der Befehlscode, die (der) in den Ereigniseinstelldaten enthalten ist, die von der Ereigniseinstelleinrichtung ausgegeben werden, mit der (dem) Befehlsadresse/Befehlscode von der CPU übereinstimmt, und Bestätigen des Datenspeichersignals während der in der Ereigniseinstelleinrichtung eingestellten aktiven Periode und Ausgeben des Datenspeichersignals. - Vorrichtung nach Anspruch 2 oder 3, wobei die Verfolgungsdaten-Erzeugungseinrichtung (
5 ) aufweist: eine Befehlsadreß-/Befehlscode-Speichereinrichtung (21 ) zum Zwischenspeichern der Befehlsadreß-/Befehlscodedaten von der CPU während der aktiven Periode des Datenspeichersignals und Ausgeben der Befehlsadresse/des Befehlscodes, eine Befehlsadreßdaten-Kompressionseinrichtung (22 ) zum Ausgeben der Befehlsadresse von der Befehlsadreß-/Befehlscode-Speichereinrichtung als komprimierte Befehlsadresse, wenn ein empfangenes Auswahlsignal für unkomprimierte Daten aktiv ist, und zum Ausgeben von Differenzdaten, die durch Subtrahieren einer unmittelbar vorhergehenden Befehlsadresse von einer aktuellen Befehlsadresse erhalten werden, als komprimierte Befehlsadresse, wenn das Auswahlsignal für unkomprimierte Daten inaktiv ist, eine Sprungbefehl-Bestimmungseinrichtung (23 ) zum Bestimmen, ob der Befehlscode von der Befehlsadreß-/Befehlscode-Speichereinrichtung ein Sprungbefehl ist, und Bestätigen und Ausgeben eines Sprungbefehl-Detektionssignals bei Bestimmen, daß der Befehlscode ein Sprungbefehl ist, eine Verfolgungssteuereinrichtung (24 ) zum Ausgeben der komprimierten Befehlsadresse von der Befehlsadreßdaten-Kompressionseinrichtung als Verfolgungsdaten, wenn das empfangene Auswahlsignal für unkomprimierte Daten aktiv ist, und zum Kombinieren mehrerer kontinuierlich empfangener komprimierter Befehlsadressen in Übereinstimmung mit einer Bitbreite des Verfolgungsspeichers und Ausgeben der kombinierten Befehlsadressen als Verfolgungsdaten, wenn das Auswahlsignal für unkomprimierte Daten inaktiv ist, sowie Ausgeben eines Verfolgungsdaten- Schreibsignals zum Anweisen des Verfolgungsspeichers, die Verfolgungsdaten einzuschreiben, und einer Verfolgungsspeicheradresse zum Bezeichnen einer Speicheradresse des Verfolgungsspeichers, und eine ODER-Einrichtung (25 ) zum Bestätigen und Ausgeben des Auswahlsignals für unkomprimierte Daten, wenn das Sprungbefehl-Detektionssignal von der Sprungbefehl-Bestimmungseinrichtung und/oder das Abschnittsverfolgungs-Startsignal von der Ereignisverwaltungseinrichtung aktiv ist. - Vorrichtung nach Anspruch 4, wobei die Vorrichtung ferner eine Rahmenadreß-Vergleichseinrichtung (
26 ) zum Bestätigen und Ausgeben eines Rahmenübereinstimmungssignals aufweist, wenn die Befehlsadresse/der Befehlscode, die (der) in den Ereigniseinstelldaten enthalten ist, die von der Ereigniseinstelleinrichtung ausgegeben werden, mit der Verfolgungsspeicheradresse von der Verfolgungssteuereinrichtung übereinstimmt, und die ODER-Einrichtung das Auswahlsignal für unkomprimierte Daten bestätigt und ausgibt, wenn das Sprungbefehl-Detektionssignal von der Sprungbefehl-Bestimmungseinrichtung, das Abschnittsverfolgungs-Startsignal von der Ereignisdetektionseinrichtung und/oder das Rahmenübereinstimmungssignal von der Rahmenadreß-Vergleichseinrichtung aktiv ist.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000089636A JP3629181B2 (ja) | 2000-03-28 | 2000-03-28 | プログラム開発支援装置 |
| JP2000089636 | 2000-03-28 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE60130178D1 DE60130178D1 (de) | 2007-10-11 |
| DE60130178T2 true DE60130178T2 (de) | 2008-05-21 |
Family
ID=18605367
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE60130178T Expired - Lifetime DE60130178T2 (de) | 2000-03-28 | 2001-03-27 | Programmentwicklungsunterstützungsapparat |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US7065749B2 (de) |
| EP (1) | EP1187003B1 (de) |
| JP (1) | JP3629181B2 (de) |
| DE (1) | DE60130178T2 (de) |
Families Citing this family (36)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 |
| US7124072B1 (en) | 2001-04-30 | 2006-10-17 | Mips Technologies, Inc. | Program counter and data tracing from a multi-issue processor |
| US7134116B1 (en) | 2001-04-30 | 2006-11-07 | Mips Technologies, Inc. | External trace synchronization via periodic sampling |
| US7069544B1 (en) | 2001-04-30 | 2006-06-27 | Mips Technologies, Inc. | Dynamic selection of a compression algorithm for trace data |
| US7178133B1 (en) | 2001-04-30 | 2007-02-13 | Mips Technologies, Inc. | Trace control based on a characteristic of a processor's operating state |
| US7181728B1 (en) | 2001-04-30 | 2007-02-20 | Mips Technologies, Inc. | User controlled trace records |
| US7168066B1 (en) | 2001-04-30 | 2007-01-23 | Mips Technologies, Inc. | Tracing out-of order load data |
| US7185234B1 (en) * | 2001-04-30 | 2007-02-27 | Mips Technologies, Inc. | Trace control from hardware and software |
| 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 |
| JP2003085000A (ja) * | 2001-09-10 | 2003-03-20 | Mitsubishi Electric Corp | トレース情報生成装置およびその方法 |
| US7865879B1 (en) * | 2003-04-29 | 2011-01-04 | Globalfoundries Inc. | Efficient branch trace messaging with hardware debug features |
| US7159101B1 (en) | 2003-05-28 | 2007-01-02 | Mips Technologies, Inc. | System and method to trace high performance multi-issue processors |
| US7308681B2 (en) * | 2003-10-28 | 2007-12-11 | International Business Machines Corporation | Control flow based compression of execution traces |
| US7533251B2 (en) * | 2003-12-24 | 2009-05-12 | Panasonic Corporation | Semiconductor integrated circuit, development support system and execution history tracing method |
| US20050146449A1 (en) * | 2003-12-30 | 2005-07-07 | Ali-Reza Adl-Tabatabai | Mechanism to improve performance monitoring overhead |
| US8271955B1 (en) * | 2004-07-23 | 2012-09-18 | Green Hille Software, Inc. | Forward post-execution software debugger |
| US8136096B1 (en) * | 2004-07-23 | 2012-03-13 | Green Hills Software, Inc. | Backward post-execution software debugger |
| US8132159B1 (en) | 2004-07-23 | 2012-03-06 | Green Hills Software, Inc. | Post-execution software debugger with event display |
| US20060101415A1 (en) * | 2004-11-01 | 2006-05-11 | Evans Mark S | Service logic program tracing |
| US7640539B2 (en) * | 2005-04-12 | 2009-12-29 | International Business Machines Corporation | Instruction profiling using multiple metrics |
| US7657875B2 (en) * | 2005-04-12 | 2010-02-02 | International Business Machines Corporation | System and method for collecting a plurality of metrics in a single profiling run of computer code |
| JP2007058588A (ja) * | 2005-08-24 | 2007-03-08 | Toshiba Corp | プログラム保護機能を持つプロセッサ |
| US8108198B2 (en) * | 2006-02-21 | 2012-01-31 | Mentor Graphics Corporation | Memory tracing in an emulation environment |
| US7861070B2 (en) * | 2008-06-12 | 2010-12-28 | National Tsing Hua University | Trace compression method for debug and trace interface wherein differences of register contents between logically adjacent registers are packed and increases of program counter addresses are categorized |
| US8561033B2 (en) * | 2010-07-30 | 2013-10-15 | International Business Machines Corporation | Selective branch-triggered trace generation apparatus and method |
| GB2483509B (en) * | 2010-09-13 | 2017-08-02 | Advanced Risc Mach Ltd | Data processing apparatus, trace unit and diagnostic apparatus |
| KR101738640B1 (ko) * | 2011-01-18 | 2017-05-24 | 삼성전자주식회사 | 트레이스 데이터 압축 장치 및 방법 |
| JP6041749B2 (ja) * | 2013-04-19 | 2016-12-14 | 三菱電機株式会社 | トレース収集回路及びトレース収集方法 |
| JP6478562B2 (ja) | 2013-11-07 | 2019-03-06 | 株式会社半導体エネルギー研究所 | 半導体装置 |
| JP6393590B2 (ja) * | 2013-11-22 | 2018-09-19 | 株式会社半導体エネルギー研究所 | 半導体装置 |
| GB2553582B (en) | 2016-09-13 | 2020-07-08 | Advanced Risc Mach Ltd | An apparatus and method for generating and processing a trace stream indicative of instruction execution by processing circuitry |
| US10506079B2 (en) * | 2017-09-14 | 2019-12-10 | Arm Limited | Packet compression |
| US11573883B1 (en) * | 2018-12-13 | 2023-02-07 | Cadence Design Systems, Inc. | Systems and methods for enhanced compression of trace data in an emulation system |
Family Cites Families (22)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB1264066A (de) * | 1970-06-24 | 1972-02-16 | ||
| JPS5341A (en) | 1976-06-24 | 1978-01-05 | Fujitsu Ltd | Order address collection controll system |
| JPS59161746A (ja) * | 1983-03-04 | 1984-09-12 | Omron Tateisi Electronics Co | プログラムアナライザ |
| US4641348A (en) * | 1983-11-09 | 1987-02-03 | Hewlett-Packard Company | Timing or logic state analyzer with automatic qualified inferential marking and post processing of captured trace data |
| US5535331A (en) * | 1987-09-04 | 1996-07-09 | Texas Instruments Incorporated | Processor condition sensing circuits, systems and methods |
| JPH0261731A (ja) | 1988-08-29 | 1990-03-01 | Matsushita Electric Ind Co Ltd | マイクロプロセッサ |
| JPH04237340A (ja) | 1991-01-22 | 1992-08-25 | Nec Eng Ltd | プログラム評価支援装置 |
| US5491793A (en) * | 1992-07-31 | 1996-02-13 | Fujitsu Limited | Debug support in a processor chip |
| JPH06348490A (ja) * | 1993-06-08 | 1994-12-22 | Hitachi Ltd | 演算処理方法、及びマイクロコンピュータ |
| GB9406666D0 (en) * | 1994-04-05 | 1994-05-25 | Communicate Ltd | Computer system |
| JPH08161196A (ja) | 1994-12-09 | 1996-06-21 | Nec Corp | 命令トレース装置 |
| US5764885A (en) * | 1994-12-19 | 1998-06-09 | Digital Equipment Corporation | Apparatus and method for tracing data flows in high-speed computer systems |
| US5621886A (en) * | 1995-06-19 | 1997-04-15 | Intel Corporation | Method and apparatus for providing efficient software debugging |
| US5740413A (en) * | 1995-06-19 | 1998-04-14 | Intel Corporation | Method and apparatus for providing address breakpoints, branch breakpoints, and single stepping |
| JP3846939B2 (ja) * | 1995-08-30 | 2006-11-15 | フリースケール セミコンダクター インコーポレイテッド | データプロセッサ |
| US6216213B1 (en) * | 1996-06-07 | 2001-04-10 | Motorola, Inc. | Method and apparatus for compression, decompression, and execution of program code |
| US5764994A (en) * | 1996-09-16 | 1998-06-09 | International Business Machines Corporation | Method and system for compressing compiled microcode to be executed within a data processing system |
| JP3019922B2 (ja) | 1997-06-30 | 2000-03-15 | 日本電気株式会社 | トレースデータ削減方式 |
| JP2878264B1 (ja) * | 1998-03-11 | 1999-04-05 | 甲府日本電気株式会社 | トレーサ装置、トレースデータ圧縮方法および圧縮トレースデータ読み出し方法 |
| JPH11353205A (ja) * | 1998-06-04 | 1999-12-24 | Ricoh Co Ltd | トレースメモリ内蔵のプロセッサ |
| JP4406119B2 (ja) * | 1999-08-24 | 2010-01-27 | パナソニック株式会社 | インサーキットエミュレータ |
| US6732307B1 (en) * | 1999-10-01 | 2004-05-04 | Hitachi, Ltd. | Apparatus and method for storing trace information |
-
2000
- 2000-03-28 JP JP2000089636A patent/JP3629181B2/ja not_active Expired - Fee Related
-
2001
- 2001-03-27 DE DE60130178T patent/DE60130178T2/de not_active Expired - Lifetime
- 2001-03-27 EP EP01107450A patent/EP1187003B1/de not_active Expired - Lifetime
- 2001-03-28 US US09/819,351 patent/US7065749B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| EP1187003B1 (de) | 2007-08-29 |
| JP3629181B2 (ja) | 2005-03-16 |
| US7065749B2 (en) | 2006-06-20 |
| JP2001282575A (ja) | 2001-10-12 |
| US20010054175A1 (en) | 2001-12-20 |
| EP1187003A2 (de) | 2002-03-13 |
| EP1187003A3 (de) | 2004-12-01 |
| DE60130178D1 (de) | 2007-10-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE60130178T2 (de) | Programmentwicklungsunterstützungsapparat | |
| DE3687842T2 (de) | Verfahren und Gerät zum Software-Austesten. | |
| DE69028190T2 (de) | Verfahren und Vorrichtung zur Softwareüberwachung und -entwicklung | |
| DE4211222B4 (de) | Abzweigungs-Vorhersage-Vorrichtung und Abzweigungs-Vorhersage-Verfahren für einen Super-Skalar-Prozessor | |
| DE69225750T2 (de) | Datenverarbeitungssystem mit internem Befehlspufferspeicher | |
| DE69523549T2 (de) | Mikroprozessor mit Fehlersuchsystem | |
| DE69133302T2 (de) | Registerabbildung in einem einzigen Taktzyklus | |
| CH654943A5 (de) | Pruefeinrichtung fuer mikroprogramme. | |
| DE3752280T2 (de) | Mustergenerator | |
| DE3322249C2 (de) | ||
| DE69326175T2 (de) | Daten-Reprogrammierungsverfahren in einem EEPROM und in einer EEPROM-Karte | |
| DE3116100A1 (de) | Sprungabschaetz-zentraleinheit | |
| DE2339636A1 (de) | Programmsteuereinrichtung | |
| DE2145709A1 (de) | Datenverarbeitungsanlage | |
| DE69500748T2 (de) | Elektronischer Schaltkreis und Verfahren für die Verwendung mit einem Koprozessor | |
| DE19526008A1 (de) | Vertikal partitionierter, primärer Befehls-Cache-Speicher | |
| EP1230590B1 (de) | Prozessorsystem | |
| DE19824289A1 (de) | Pipelineverarbeitungsmaschine | |
| DE10136724A1 (de) | Ablaufverfolgungssteuerschaltung | |
| DE69032776T2 (de) | Steuerungsschaltung zum Zugriff auf partiellen Speicher | |
| DE2246863C3 (de) | Einrichtung zur Protokollierung des Programmablaufs in einer Datenverarbeitungsanlage | |
| DE3700800C2 (de) | Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor | |
| DE2245284A1 (de) | Datenverarbeitungsanlage | |
| DE2658950A1 (de) | Mikroprogrammierte verarbeitungseinheit sowie verfahren zur organisation derselben | |
| DE2710436C2 (de) | Datenverarbeitungseinrichtung |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition | ||
| R082 | Change of representative |
Ref document number: 1187003 Country of ref document: EP Representative=s name: VOSSIUS & PARTNER, DE |
|
| R081 | Change of applicant/patentee |
Ref document number: 1187003 Country of ref document: EP Owner name: RENESAS ELECTRONICS CORPORATION, JP Free format text: FORMER OWNER: NEC ELECTRONICS CORP., KAWASAKI, JP Effective date: 20120828 |
|
| R082 | Change of representative |
Ref document number: 1187003 Country of ref document: EP Representative=s name: VOSSIUS & PARTNER, DE Effective date: 20120828 |