[go: up one dir, main page]

DE60130178T2 - Programmentwicklungsunterstützungsapparat - Google Patents

Programmentwicklungsunterstützungsapparat Download PDF

Info

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
Application number
DE60130178T
Other languages
English (en)
Other versions
DE60130178D1 (de
Inventor
Katsumi Nakahara-ku Kawasaki-shi Watanabe
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.)
Renesas Electronics Corp
Original Assignee
NEC Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Electronics Corp filed Critical NEC Electronics Corp
Application granted granted Critical
Publication of DE60130178D1 publication Critical patent/DE60130178D1/de
Publication of DE60130178T2 publication Critical patent/DE60130178T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3636Debugging of software by tracing the execution of the program

Landscapes

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

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 JP-A-11-259335 (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. 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 Auswertechip 301, der zur Programmentwicklung vorbereitet ist, und einen Tracer oder Verfolger 302 zum Speichern eines Befehlsverfolgungsergebnisses. Befehlsadreß-/Befehlscodedaten, die von einer CPU 303 im Auswertechip 301 ausgegeben werden, werden durch eine Befehlsadreß-/Befehlscode-Latchschaltung oder Zwischenspeicherschaltung 321 synchron zu einem Taktsignal CLK zwischengespeichert, und eine Sprungbefehl-Bestimmungsschaltung 323 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 Verfolgungssteuerschaltung 324 kombiniert komprimierte Daten mehrerer Befehlsadressen zu Verfolgungsdaten in Übereinstimmung mit der Bitbreite eines Verfolgungsspeichers 306. Die kombinierten Verfolgungsdaten werden in den Verfolgungsspeicher 306 eingeschrieben. Ist der Befehl ein Sprungbefehl, wird die Befehlsadresse ohne Kompression direkt in den Verfolgungsspeicher 306 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 bis 6I 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 bis 9I 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 Auswertechip 1 zum Ausführen eines Zielprogramms und einen Tracer bzw. Verfolger 2 zum Speichern eines Ausführungsergebnisses.
  • Der Auswertechip 1 hat eine CPU 3 zum eigentlichen Ausführen des Zielprogramms und einen Ereignisdetektionsabschnitt 4, der als Ereignisverwaltungseinrichtung dient. Der Ereignisdetektionsabschnitt 4 empfängt Befehlsadreß-/Befehlscodedaten 14 von der CPU 3 und bestimmt, ob die Befehlsadresse oder der Befehlscode mit einer voreingestellten Ereignisbedingung übereinstimmt. Stimmen sie überein, aktiviert der Ereignisdetektionsabschnitt 4 ein Abschnittsverfolgungs-Startsignal 16 und hält ein Datenzwischenspeichersignal 15 für die Abschnittsverfolgungsperiode aktiv.
  • Der Verfolger 2 hat einen Verfolgungsdaten-Erzeugungsabschnitt 5 und einen Verfolgungsspeicher 6 zum Speichern von Verfolgungsdaten. Der Verfolgungsdaten-Erzeugungsabschnitt 5 empfängt ein Taktsignal 13, die Befehlsadreß-/Befehlscodedaten 14, das Datenzwischenspeichersignal 15 für die Abschnittsverfolgungsperiode und das Abschnittsverfolgungs-Startsignal 16 vom Auswertechip 1. Ist die Befehlsadresse der Befehlsadreß-/Befehlscodedaten 14 ein Sprungbefehl oder ist das Abschnittsverfolgungs-Startsignal 16 aktiv, schreibt der Verfolgungsdaten-Erzeugungsabschnitt 5 eine Befehlsadresse 27 in den Verfolgungsspeicher 6 ohne Kompression ein.
  • Ist andererseits ein Befehlscode 28 der Befehlsadreß-/Befehlscodedaten 14 kein Sprungbefehl und ist das Abschnittsverfolgungs-Startsignal 16 inaktiv, erzeugt der Verfolgungsdaten-Erzeugungsabschnitt 5 eine komprimierte Befehlsadresse 31, die einem Differenzwert entspricht, der durch Subtrahieren der Befehlsadresse der vorhergehenden Befehlsadreß-/Befehlscodedaten von der Befehlsadresse 27 der aktuellen Befehlsadreß-/Befehlscodedaten 14 erhalten wird. Außerdem kombiniert der Verfolgungsdaten-Erzeugungsabschnitt 5 mehrere komprimierte Befehlsadressen 31 in Entsprechung zu mehreren aufeinanderfolgenden Befehlsadreß-/Befehlscodedaten 14 in Übereinstimmung mit der Bitbreite des Verfolgungsspeichers 6 und schreibt die kombinierten Daten in den Verfolgungsspeicher 6 als Verfolgungsdaten 32 ein.
  • Der Ereignisdetektionsabschnitt 4 hat eine Ereigniseinstellschaltung 11 und eine Ereignisdetektionsschaltung 12. Ist eine Befehlsadresse oder ein Befehlscode als Ereignisbedingung extern vorab eingestellt, behält die Ereigniseinstellschaltung 11 die aktive Periode des Datenzwischenspeichersignals 15 bei. Bei Detektieren, daß der Einstellwert einer Befehlsadresse oder eines Befehlscodes, der von der Ereigniseinstellschaltung 11 durch ein Ereigniseinstelldatensignal 17 übertragen wird, mit der Befehlsadresse oder dem Befehlscode übereinstimmt, die (der) von der CPU 3 ausgegeben wird, aktiviert die Ereignisdetektionsschaltung 12 das Abschnittsverfolgungs-Startsignal 16 und aktiviert auch das Datenzwischenspeichersignal 15 während der in der Ereigniseinstellschaltung 11 eingestellten Periode. Ist keine Ereignisbedingung eingestellt, gibt das Datenzwischenspeichersignal 15 kontinuierlich den aktiven Pegel aus.
  • Der Verfolgungsdaten-Erzeugungsabschnitt 5 verfügt über eine Befehlsadreß-/Befehlscode-Zwischenspeicherschaltung 21, eine Befehlsadreßdaten-Kompressionsschaltung 22, eine Sprung befehl-Bestimmungsschaltung 23, eine Verfolgungssteuerschaltung 24 und eine ODER-Schaltung 25 mit zwei Eingängen.
  • Die Befehlsadreß-/Befehlscode-Zwischenspeicherschaltung 21 führt eine Zwischenspeicherung der von der CPU 3 im Auswertechip 1 ausgegebenen Befehlsadreß-/Befehlscodedaten 14 auf der Grundlage des Datenzwischenspeichersignals 15 synchron zum Taktsignal 13 durch und gibt die Befehlsadresse 27 und den Befehlscode 28 aus.
  • Die Befehlsadreßdaten-Kompressionsschaltung 22 empfängt die Befehlsadresse 27 von der Befehlsadreß-/Befehlscode-Zwischenspeicherschaltung 21 und ein Auswahlsignal 30 für unkomprimierte Daten von der ODER-Schaltung 25 mit zwei Eingängen. Ist das Auswahlsignal 30 für unkomprimierte Daten aktiv, gibt die Befehlsadreßdaten-Kompressionsschaltung 22 die Befehlsadresse 27 als komprimierte Befehlsadresse 31 ohne Kompression aus. Ist andererseits das Auswahlsignal 30 für unkomprimierte Daten inaktiv, gibt die Befehlsadreßdaten-Kompressionsschaltung 22 Differenzdaten, die durch Subtrahieren der unmittelbar vorhergehenden Befehlsadresse von der aktuellen Befehlsadresse erhalten werden, als komprimierte Befehlsadresse 31 aus.
  • Die Sprungbefehl-Bestimmungsschaltung 23 empfängt den Befehlscode 28 von der Befehlsadreß-/Befehlscode-Zwischenspeicherschaltung 21 und bestimmt, ob der Befehlscode 28 ein Sprungbefehl ist. Wird bestimmt, daß der Befehlscode ein Sprungbefehl ist, assertiert (bestätigt) die Sprungbefehl-Bestimmungsschaltung 23 ein Sprungbefehl-Detektionssignal 29 (setzt es logisch wahr) (H-Pegel).
  • Die Verfolgungssteuerschaltung 24 empfängt die komprimierte Befehlsadresse 31 von der Befehlsadreßdaten-Kompressionsschaltung 22 und das Auswahlsignal 30 für unkomprimierte Daten von der ODER-Schaltung 25 mit zwei Eingängen. Ist das Auswahlsignal 30 für unkomprimierte Daten aktiv, gibt die Verfolgungssteuerschaltung 24 die komprimierte Befehlsadresse 31 als Verfolgungsdaten 32 ohne Verarbeitung aus. Ist andererseits das Auswahlsignal 30 für unkomprimierte Daten inaktiv, kombiniert die Verfolgungssteuerschaltung 24 mehrere kontinuierlich empfangene komprimierte Befehlsadressen 31 in Übereinstimmung mit der Bitbreite des Verfolgungsspeichers 6 und gibt die kombinierten Daten als Verfolgungsdaten 32 aus und gibt zusätzlich zum Verfolgungsspeicher 6 ein Verfolgungsdaten-Schreibsignal 34 zum Bezeichnen eines Schreibvorgangs der Verfolgungsdaten und eine Verfolgungsspeicheradresse 33 zum Bezeichnen einer Speicheradresse aus.
  • Die ODER-Schaltung 25 mit zwei Eingängen assertiert (bestätigt) das Auswahlsignal 30 für unkomprimierte Daten und gibt es aus, wenn das Sprungbefehl-Detektionssignal 29 von der Sprungbefehl-Bestimmungsschaltung 23 und/oder das Abschnittsverfolgungs-Startsignal 16 vom Ereignisdetektionsabschnitt 4 aktiv ist (H-Pegel).
  • Im folgenden werden Einzelheiten der Befehlsadreß-/Befehlscode-Zwischenspeicherschaltung 21 anhand von 2 beschrieben. Gemäß 2 hält die Befehlsadreß-/Befehlscode-Zwischenspeicherschaltung 21 die Befehlsadreß-/Befehlscodedaten 14 durch einen Datenzwischenspeicher 211 und extrahiert die Befehlsadresse 27 und den Befehlscode 28.
  • Die Befehlsadreß-/Befehlscodedaten 14 werden durch den Datenspeicher bzw. Datenzwischenspeicher 211 grundsätzlich synchron zu den Befehlsadreß-/Befehlscodedaten 14 in Übereinstimmung mit dem von der CPU 3 ausgegebenen Taktsignal 13 (zwischen) gespeichert. In diesem Fall wird der Zwischenspeicherbetrieb EIN/AUS-gesteuert, indem das Gatter einer UND-Schaltung 212 durch das Datenzwischenspeichersignal 15 von der Ereignisdetektionsschaltung 12 EIN/AUS-gesteuert wird. Bei der Abschnittsverfolgung ist das Datenzwischenspeichersignal 15 nur im Verlauf der Periode vom Start bis zum Ende der Abschnittsverfolgung aktiv. Im Normalverfolgungszustand behält das Datenzwischenspeichersignal 15 stets den aktiven Pegel.
  • Als nächstes werden Einzelheiten der Befehlsadreßdaten-Kompressionsschaltung 22 anhand von 3 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-Kompressionsschaltung 22 verfügt über einen Zwischenspeicher 221 für vorhergehende Befehlsadressen, einen Subtrahierer 222 und einen Kompressions-/Nichtkompressions-Schaltkreis 223.
  • 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 Subtrahierer 222 berechnet die Differenz zwischen der aktuellen Befehlsadresse und der Ausgabe vom Zwischenspeicher 221 für vorhergehende Befehlsadressen, um komprimierte Daten zu erzeugen. Der Kompressions-/Nichtkompressions-Schaltkreis 223 schaltet zwischen den komprimierten Daten vom Subtrahierer 222 und den Befehlsadreßdaten 27 als unkomprimierte Daten um. Ist das Auswahlsignal 30 für unkomprimierte Daten assertiert, wird die unkomprimierte Befehlsadresse 27 vom Kompressions-/Nichtkompressions-Schaltkreis 223 als komprimierte Befehlsadresse 31 ausgegeben.
  • Im folgenden werden Einzelheiten der Verfolgungssteuerschaltung 24 anhand von 4 beschrieben. Die Verfolgungssteuerschaltung 24 verfügt über ein Schieberegister 241 für komprimierte Daten, einen Zwischenspeicher 242 für unkomprimierte Daten, einen Verfolgungsdaten-Schaltkreis 243, einen Verfolgungsdatenzähler 244 und eine ODER-Schaltung 245 mit zwei Eingängen. Die Verfolgungssteuerschaltung 24 mit diesen Komponenten erzeugt die in den Verfolgungsspeicher 6 einzuschreibende Verfolgungsspeicheradresse 33, das Verfolgungsschreibsignal 34 zum Freigeben des Schreibbetriebs und ein Zeitsteuersignal zum abschließenden Einschreiben der Daten in den Verfolgungsspeicher 6. Außerdem richtet die Verfolgungssteuerschaltung 24 das komprimierte Befehlsadreßsignal 31, das durch die Befehlsadreßdaten-Kompressionsschaltung 22 erzeugt wird, zur Bitbreite des Verfolgungsspeichers 6 aus.
  • Ist das Verfolgungsschreibsignal 34 aktiv, wird der Verfolgungsdatenzähler 244 synchron zur Vorderflanke des Taktsignals 13 um eins inkrementiert. Die vom Verfolgungsdatenzähler 244 ausgegebene Verfolgungsspeicheradresse 33 repräsentiert eine Adresse, an der die Verfolgungsdaten 32 in einem Rahmen des Verfolgungsspeichers 6 sequentiell zu protokollieren sind. Die Verfolgungsspeicheradresse 33 ändert sich synchron zur Schreibzeitsteuerung des Verfolgungsspeichers 6 und wird normalerweise unmittelbar nach Beendigung des Schreibvorgangs im Verfolgungsspeicher 6 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 Verfolgungsspeichers 6 wird das Schieberegister 241 für komprimierte Daten verwendet. Sind die Daten der komprimierten Befehlsadresse 31 komprimiert, speichert das Schieberegister 241 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 Schieberegister 241 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ßsignal 246 assertiert und im Verfolgungsspeicher 6 über die ODER-Schaltung 245 mit zwei Eingängen als Daten eines Rahmens protokolliert. Gleichzeitig werden die Inhalte im Schieberegister 241 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 Daten 247, die zur Bitbreite durch das Schieberegister 241 für komprimierte Daten ausgerichtet wurden, wird als auszugebende Verfolgungsdaten 32 durch den Verfolgungsdaten-Schaltkreis 243 in Übereinstimmung mit einem vom Zwischenspeicher 242 für unkomprimierte Daten ausgegebenen Signal ausgewählt. Der Zwischenspeicher 242 für unkomprimierte Daten gibt ein Signal, das durch temporäres Zwischenspeichern des Auswahlsignals 30 für unkomprimierte Daten und Einstellen seiner Zeitsteuerung erhalten wird, zum Verfolgungsdaten-Schaltkreis 243 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 bis 6I zeigen Betriebszeitsteuerungen beim Bestimmen eines Sprungbefehls. Der Betrieb gemäß 6A bis 6I 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 Datenzwischenspeichersignal 15 immer aktiv. Die Befehlsadreß-/Befehlscode-Zwischenspeicherschaltung 21 führt eine Zwischenspeicherung der Befehlsadreß-/Befehlscodedaten 14 vom Befehl 1 als Reaktion auf jedes Taktsignal 13 sequentiell durch und gibt die Befehlsadresse 27 aus (6A bis 6C).
  • Fährt das Programm mit dem Befehl 26 (5) als Sprungbefehl fort, wechseln die von der CPU 3 ausgegebenen Befehlsadreß-/Befehlscodedaten 14 zum Befehl 3. Hierbei bestimmt die Sprungbefehl-Bestimmungsschaltung 23, daß der Sprungbefehl unmittelbar zuvor ausgeführt wurde und assertiert das Sprungbefehl-Bestimmungssignal 29 (6D).
  • Die Befehlsadreßdaten-Kompressionsschaltung 22 gibt als komprimierte Befehlsadresse 31 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 Verfolgungssteuerschaltung 24 das Verfolgungsdaten-Schreibsignal 34 und gibt es zum Verfolgungsspeicher 6 während einer 2-Takt-Periode aus (6H). Die Verfolgungsspeicheradresse 33 wird auf (00000) synchron zur ersten Vorderflanke des Taktsignals 13 inkrementiert (6I). Die Befehlsadresse des Befehls 3 wird als unkomprimierte Daten an einer entsprechenden Rahmenadresse des Verfolgungsspeichers 6 eingeschrieben. Ist das Einschreiben in den Rahmen beendet, wird zum Einschreiben in den nächsten Rahmen die Verfolgungsspeicheradresse 33 um eins auf (00001) synchron zur zweiten Vorderflanke des Taktsignals 13 während der aktiven Periode des Verfolgungsdaten-Schreibsignals 34 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 Schieberegister 241 für komprimierte Daten der Verfolgungssteuerschaltung 24 sequentiell gesendet. Sind die komprimierten Daten des Befehls 7 eingegeben, ist das Schieberegister 241 für komprimierte Daten gefüllt und gibt das Ausrichtungsabschlußsignal 246 aus (6G). Die Verfolgungssteuerschaltung 24 erzeugt das Verfolgungsdaten-Schreibsignal 34 in Übereinstimmung mit dem Ausrichtungsabschlußsignal 246 und schreibt in den Verfolgungsspeicher 6 die durch Kombinieren der komprimierten Daten der vier Befehle 4 bis 7 erhaltenen Verfolgungsdaten 32 ein (6G und 6H). Danach wird die Verfolgungsspeicheradresse 33 um eins auf (00002) synchron zur Vorderflanke des Taktsignals 13 inkrementiert. Dieser Betrieb wird fortgesetzt, bis der nächste Sprungbefehl detektiert wird.
  • 7 zeigt den Datenzustand im Verfolgungsspeicher 6 nach Sprungbefehlbestimmung. Dieser Datenzustand ist das Ausführungsergebnis des durch den o. g. Betrieb im Verfolgungsspeicher 6 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 bis 9I 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ß-/Befehlscodedaten 14 werden durch den Datenzwischenspeicher 211 der Verfolgungsdaten-Zwischenspeicherschaltung 21 nur während der Periode abgetastet, in der die Befehle 4 bis 7 auf der Grundlage der aktiven Periode des Datenzwischenspeichersignals 15 ausgeführt werden, die in der Ereigniseinstellschaltung 11 eingestellt ist. Aus diesem Grund werden als Befehlsadresse 27 nur die Befehlsadressen der Befehle 4 bis 7 von der Befehlsadreß-/Befehlscode-Zwischenspeicherschaltung 21 zur Befehlsadreßdaten-Kompressionsschaltung 22 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-Startsignal 16 wird zur ODER-Schaltung 25 mit zwei Eingängen zusammen mit dem Sprungbefehl-Detektionssignal 29 eingegeben. Wird das Abschnittsverfolgungs-Startsignal 16 assertiert (H-Pegel), so wird das von der ODER-Schaltung 25 mit zwei Eingängen ausgegebene Auswahlsignal 30 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 Taktsignals 13 als unkomprimierte Daten ausgegeben.
  • Die Erzeugung komprimierter Daten der Befehle 5 bis 7 und die Kombination mit Verfolgungsdaten sind mit 6A bis 6I 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 Verfolgungsspeicher 6 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 in 8.
  • 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ß-Vergleichsschaltung 26 zugefügt ist und eine ODER-Schaltung 25a mit 3 Eingängen anstelle der ODER-Schaltung 25 mit 2 Eingängen verwendet wird.
  • Die Rahmenadreß-Vergleichsschaltung 26 empfängt ein Ereigniseinstelldatensignal 17 und eine Verfolgungsspeicheradresse 33, und stimmen vorbestimmte Abschnitte der beiden Daten überein, assertiert sie ein Rahmenübereinstimmungssignal 35. Die ODER-Schaltung 25a mit 3 Eingängen empfängt das Rahmenübereinstimmungssignal 35 zusätzlich zu einem Sprungbefehl-Detektionssignal 29 und einem Abschnittsverfolgungs-Startsignal 16, und ist mindestens eines dieser Signale aktiv, assertiert sie ein Auswahlsignal 30 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 Ereigniseinstellschaltung 11 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)

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
DE60130178T 2000-03-28 2001-03-27 Programmentwicklungsunterstützungsapparat Expired - Lifetime DE60130178T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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