DE102013000857A1 - Kompakte Funktionsablaufprotokollierung - Google Patents

Kompakte Funktionsablaufprotokollierung Download PDF

Info

Publication number
DE102013000857A1
DE102013000857A1 DE102013000857A DE102013000857A DE102013000857A1 DE 102013000857 A1 DE102013000857 A1 DE 102013000857A1 DE 102013000857 A DE102013000857 A DE 102013000857A DE 102013000857 A DE102013000857 A DE 102013000857A DE 102013000857 A1 DE102013000857 A1 DE 102013000857A1
Authority
DE
Germany
Prior art keywords
trace
function
output mode
data
program
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.)
Pending
Application number
DE102013000857A
Other languages
English (en)
Inventor
Albrecht Mayer
Harry Siebert
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102013000857A1 publication Critical patent/DE102013000857A1/de
Pending legal-status Critical Current

Links

Images

Classifications

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

Abstract

Die Erfindung betrifft Verfahren und Systeme zur Fehlersuche bei Software, die in einer Vielzahl von Mikroprozessorkernen läuft, insbesondere in Mikroprozessoren, die in ein System auf einem Chip eingebettet sind. Genauer gesagt betrifft die Erfindung Verfahren und Systeme zum Generieren von kompakten Funktionsablaufprotokolldaten in einem Mikroprozessor.
Gemäß einem Aspekt der Erfindung weist ein System zum Generieren von kompakten Funktionsablaufprotokolldaten für Blattfunktionen eine zentrale Verarbeitungseinheit (CPU) auf, die zum Generieren eines Programmablaufprotokolls benötigte Programmablaufdaten ausgeben kann, und eine Ablaufprotokollierungseinheit, die mit der CPU gekoppelt ist und die Programmablaufinformationen von der CPU empfangen kann, um kompakte Funktionsablaufprotokolldaten zu generieren. Die Ablaufprotokollierungseinheit weist ferner eine erste Ausgabebetriebsart und eine zweite Ausgabebetriebsart auf und kann ferner entweder die erste Ausgabebetriebsart oder die zweite Ausgabebetriebsart zum Generieren von kompakten Funktionsablaufprotokolldaten auswählen.

Description

  • Die Erfindung betrifft Verfahren und Systeme zum Erzeugen von Ablaufprotokollierungslösungen zur Fehlersuche und Leistungsanalyse bei computergestützten Verarbeitungssystemen. Speziell betrifft die Erfindung Verfahren und Systeme zum Generieren von kompakten Funktionsablaufprotokolldaten in einem Computersystem.
  • Zur Softwarefehlersuche oder Leistungsanalyse ermöglicht eine Ablaufverfolgung die Rekonstruktion eines überwachten Programmablaufs und ist daher nützlich, um zu ermitteln, welche Art von Ereignissen vor dem Auftreten eines bestimmten Softwareproblems stattgefunden hat. Zum Zwecke der Fehlersuche wird nur eine begrenzte Ablaufprotokollierungstiefe benötigt, wenn die Auslöselogik ein Anhalten der Ablaufprotokollaufzeichnung zum Zeitpunkt des Fehlersymptoms oder kurz danach erlaubt. Zur Leistungsanalyse werden jedoch lange Ablaufprotokolle mit hoher Zeitauflösung benötigt, um die minimale/maximale/durchschnittliche Ausführungsdauer einer Funktion zu messen. Diese Analyse kann entweder flach sein oder mit der vollständigen Hierarchie der Funktionsaufrufe verschachtelt sein.
  • Herkömmliche Ablaufprotokollschnittstellen weisen mehrere Nachteile auf. Ein Nachteil besteht in der erforderlichen Schnittstelle mit hoher Bandbreite für die Ablaufprotokollierung, die typischerweise wenigstens 5 Kontaktstifte für die Protokollierung erfordert. Ein weiterer Nachteil besteht darin, dass die Zeitstempelung extern erfolgt. Der auf dem Chip befindliche FIFO-Puffer (First-in, First-out) für Ablaufprotokollierungsnachrichten kann zu einer gewissen Ungenauigkeit der Zeitstempel führen.
  • Daher besteht eine Notwendigkeit für ein System und ein Verfahren zum Generieren von kompakten Funktionsablaufprotokolldaten in einem Mikroprozessor zur Fehlersuche und Leistungsanalyse, welche die Kosten senken und weniger Bandbreite erfordern.
  • Die Erfindung löst diese bzw. weitere Aufgaben durch die Gegenstände der unabhängigen Ansprüche. Vorteilhafte Weiterbildungen sind in den Unteransprüchen angegeben.
  • Gemäß einem Aspekt der Erfindung weist ein System zum Generieren von kompakten Funktionsablaufprotokolldaten eine zentrale Verarbeitungseinheit (CPU) auf, die zum Generieren eines Programmablaufprotokolls benötigte Programmablaufinformationen ausgeben kann, und eine Ablaufprotokollierungseinheit, die mit der CPU gekoppelt ist und die Programmablaufinformationen von der CPU empfangen kann, um kompakte Funktionsablaufprotokolldaten zu generieren. Die Ablaufprotokollierungseinheit kann ferner eine erste Ausgabebetriebsart und eine zweite Ausgabebetriebsart aufweisen und kann ferner entweder die erste Ausgabebetriebsart oder die zweite Ausgabebetriebsart zum Generieren von kompakten Funktionsablaufprotokolldaten auswählen.
  • In einer Ausführungsform wird die vorliegende Erfindung verwendet, um kompakte Funktionsablaufprotokolldaten für Blattfunktionen zu generieren. In dieser Ausführungsform kann die erste Ausgabebetriebsart eine Betriebsart für sehr kurze Blattfunktionen sein, wobei in diesem Fall mittels der Ablaufprotokollierungseinheit keine Ablaufprotokolldaten generiert werden, und die zweite Ausgabebetriebsart kann eine Betriebsart für kurze Blattfunktionen sein, wobei in diesem Fall Ablaufprotokolldaten nur für eine CALL-Anweisung generiert werden.
  • In einer weiteren Ausführungsform kann das System ferner einen mit der Ablaufprotokollierungseinheit gekoppelten Ablaufprotokollpuffer aufweisen. Der Ablaufprotokollpuffer kann ferner einen Ablaufprotokollpufferfüllstand aufweisen, und die Ablaufprotokollierungseinheit kann ferner dazu geeignet sein, zum Ausgeben von kompakten Funktionsablaufprotokolldaten gemäß dem Ablaufprotokollpufferfüllstand entweder die erste Ausgabebetriebsart oder die zweite Ausgabebetriebsart auszuwählen.
  • Gemäß einem weiteren Aspekt der Erfindung kann ein Verfahren zum Generieren von kompakten Funktionsablaufprotokolldaten für eine Blattfunktion die Schritte des Vergleichens der Ausführungsdauer der Blattfunktion mit wenigstens einem Schwellenwert für die Funktionsausführungsdauer und des Generierens von kompakten Funktionsablaufprotokolldaten für die Blattfunktion umfassen, wenn die Ausführungsdauer der Funktion den Schwellenwert für die Funktionsausführungsdauer überschreitet.
  • Eine Ausführungsform der vorliegenden Erfindung kann eine Betriebsart für sehr kurze Blattfunktionen sein, wobei in diesem Fall keine Ablaufprotokolldaten generiert werden, wenn die Ausführungsdauer der Funktion den Schwellenwert für die Funktionsausführungsdauer nicht überschreitet. In einer weiteren Ausführungsform der Erfindung umfasst das Verfahren ferner die Schritte des Vergleichens der Ausführungsdauer der Blattfunktion mit einem zweiten Schwellenwert für die Funktionsausführungsdauer und des Generierens von kompakten Funktionsablaufprotokolldaten für die Blattfunktion, wenn die Ausführungsdauer der Blattfunktion den zweiten Schwellenwert für die Funktionsausführungsdauer nicht überschreitet. Diese Ausführungsform kann für kurze Blattfunktionen verwendet werden, wobei in diesem Fall nur Ablaufprotokolldaten für eine CALL-Anweisung generiert werden können, wenn die Ausführungsdauer der Blattfunktion den zweiten Schwellenwert für die Funktionsausführungsdauer nicht überschreitet. In noch einer weiteren Ausführungsform kann das Verfahren ferner die Schritte des Vergleichens des Ablaufprotokollpufferfüllstands mit einem Schwellenwert für den Ablaufprotokollpufferfüllstand und des Generierens von kompakten Funktionsablaufprotokolldaten für die Blattfunktion in Abhängigkeit davon umfassen, ob der Ablaufprotokollpufferfüllstand den Schwellenwert für den Ablaufprotokollpufferfüllstand überschreitet oder nicht.
  • Gemäß einem weiteren Aspekt wird ein System bereitgestellt zum Generieren von kompakten Funktionsablaufdaten, das Folgendes umfasst:
    eine zentrale Verarbeitungseinheit (CPU), die zum Generieren einer Programmablaufprotokollierung benötigte Programmablaufinformationen ausgeben kann; und
    eine mit der CPU gekoppelte und zum Empfangen der Programmablaufinformationen von der CPU geeignete Ablaufprotokollierungseinheit zum Generieren von kompakten Programmablaufprotokolldaten, wobei die Ablaufprotokollierungseinheit wenigstens eine erste Ausgabebetriebsart und eine zweite Ausgabebetriebsart aufweist und ferner entweder die erste Ausgabebetriebsart oder die zweite Ausgabebetriebsart zum Generieren von kompakten Funktionsablaufprotokolldaten auswählen kann.
  • Vorteilhaft werden die kompakten Funktionsablaufprotokolldaten für Blattfunktionen generiert.
  • Vorteilhaft ist die erste Ausgabebetriebsart eine Betriebsart für sehr kurze Blattfunktionen, wobei in diesem Fall mittels der Ablaufprotokollierungseinheit keine Ablaufprotokolldaten generiert werden.
  • Vorteilhaft ist die zweite Ausgabebetriebsart eine Betriebsart für sehr kurze Blattfunktionen, wobei in diesem Fall nur für eine CALL-Anweisung Ablaufprotokolldaten generiert werden.
  • Vorteilhaft weist das System ferner einen mit der Ablaufprotokollierungseinheit gekoppelten Ablaufprotokollpuffer auf, wobei der Ablaufprotokollpuffer einen Ablaufprotokollpufferfüllstand aufweist und wobei die Ablaufprotokollierungseinheit ferner zum Ausgeben von kompakten Funktionsablaufprotokolldaten gemäß dem Ablaufprotokollpufferfüllstand entweder die erste Ausgabebetriebsart oder die zweite Ausgabebetriebsart auswählen kann.
  • Vorteilhaft weist das System ferner einen mit der Ablaufprotokollierungseinheit gekoppelten Ablaufprotokollpuffer auf, wobei der Ablaufprotokollpuffer einen Ablaufprotokollpufferfüllstand aufweist und wobei die Ablaufprotokollierungseinheit ferner den Schwellenwert für die kurzen Blattfunktionen und/oder die sehr kurzen Blattfunktionen gemäß dem Ablaufprotokollpufferfüllstand auswählen kann.
  • Vorteilhaft weisen die kompakten Funktionsablaufprotokolldaten einen Zeitstempel auf.
  • Gemäß einem weiteren Aspekt wird ein Verfahren bereitgestellt zum Generieren von kompakten Funktionsablaufprotokolldaten für eine Blattfunktion, wobei die Blattfunktion eine Ausführungsdauer aufweist und das Verfahren die folgenden Schritte umfasst:
    Vergleichen der Ausführungsdauer der Blattfunktion mit wenigstens einem Schwellenwert für die Funktionsausführungsdauer; und
    Generieren von Ablaufprotokolldaten für die Blattfunktion, wenn die Ausführungsdauer der Funktion den Schwellenwert für die Funktionsausführungsdauer überschreitet.
  • Vorteilhaft werden keine Ablaufprotokolldaten generiert, wenn die Ausführungsdauer der Funktion den Schwellenwert für die Funktionsausführungsdauer nicht überschreitet.
  • Vorteilhaft umfasst das Verfahren ferner folgende Schritte:
    Vergleichen der Ausführungsdauer der Blattfunktion mit einem zweiten Schwellenwert für die Funktionsausführungsdauer; und
    Generieren von Ablaufprotokolldaten für die Blattfunktion, wenn die Ausführungsdauer der Blattfunktion den zweiten Schwellenwert für die Funktionsausführungsdauer nicht überschreitet.
  • Vorteilhaft werden keine Ablaufprotokolldaten für eine CALL-Anweisung generiert, wenn die Ausführungsdauer der Blattfunktion den zweiten Schwellenwert für die Funktionsausführungsdauer nicht überschreitet.
  • Vorteilhaft umfasst das Verfahren ferner folgende Schritte:
    Auswerten des Füllstands eines Ablaufprotokollpuffers:
    Vergleichen des Ablaufprotokollpufferfüllstands mit einem Schwellenwert für den Ablaufprotokollpufferfüllstand; und
    Generieren von Ablaufprotokolldaten für die Blattfunktion, wenn der Ablaufprotokollpufferfüllstand den Schwellenwert für den Ablaufprotokollpufferfüllstand nicht überschreitet.
  • Vorteilhaft umfasst das Verfahren ferner folgende Schritte:
    Auswerten des Füllstands eines Ablaufprotokollpuffers:
    Vergleichen des Ablaufprotokollpufferfüllstands mit einem Schwellenwert für den Ablaufprotokollpufferfüllstand; und
    Anpassen des Schwellenwerts für die kurzen Blattfunktionen und/oder die sehr kurzen Blattfunktionen in Abhängigkeit von dem Ablaufprotokollpufferfüllstand.
  • Gemäß einem Aspekt wird ein System bereitgestellt zum Generieren von kompakten Funktionsablaufdaten, das Folgendes umfasst:
    einen Ablaufprotokoll-Nachrichtengenerator zum Generieren von kompakten Funktionsablaufprotokolldaten für eine Funktion; und
    ein mit dem Ablaufprotokoll-Nachrichtengenerator gekoppeltes Ausgabebetriebsart-Auswahlmodul zum Auswerten eines Schwellenwerts und zum Bestimmen der mittels des Ablaufprotokoll-Nachrichtengenerators auf der Grundlage des Schwellenwerts zu generierenden kompakten Funktionsablaufprotokolldaten.
  • Vorteilhaft handelt es sich bei der Funktion um eine Blattfunktion, die eine Ausführungsdauer aufweist, und wobei der Schwellenwert einen Schwellenwert für die Funktionsausführungsdauer aufweist und das Ausgabebetriebsart-Auswahlmodul die Funktionsausführungsdauer und den Schwellenwert für die Funktionsausführungsdauer auswertet, um kompakte Funktionsablaufprotokolldaten zu generieren.
  • Vorteilhaft weist das System ferner einen zweiten Schwellenwert auf, wobei der erste Schwellenwert einen Schwellenwert für eine sehr kurze Blattfunktion aufweist und der zweite Schwellenwert einen Schwellenwert für eine kurze Blattfunktion aufweist und das Ausgabebetriebsart-Auswahlmodul die Funktionsausführungsdauer der Blattfunktion mit dem Schwellenwert für die sehr kurze Blattfunktion und dem Schwellenwert für die kurze Blattfunktion vergleicht.
  • Vorteilhaft werden für eine sehr kurze Blattfunktion keine Programmablaufprotokolldaten ausgegeben.
  • Vorteilhaft werden Programmablaufprotokolldaten nur für eine CALL-Anweisung für eine kurze Blattfunktion generiert.
  • Vorteilhaft kann die Ablaufprotokollierungseinheit eine Quelladresse für eine RET-Anweisung für eine Blattfunktion ausgeben.
  • Vorteilhaft weist das System ferner einen mit dem Ablaufprotokoll-Nachrichtengenerator gekoppelten Puffer auf, wobei der Puffer einen Ablaufprotokollpufferfüllstand aufweist, wobei das Ausgabebetriebsart-Auswahlmodul kompakte Funktionsablaufprotokolldaten gemäß dem Ablaufprotokollpufferfüllstand generieren kann.
  • Gemäß einem weiteren Aspekt wird ein System bereitgestellt zum Generieren von Programmablaufprotokolldaten für Blattfunktionen, das Folgendes aufweist:
    eine zentrale Verarbeitungseinheit (CPU), die einen Stack aufweist, der Anweisungsadressen eines Programms speichern kann, wobei die CPU Programmablaufprotokolldaten für Blattfunktionen generieren kann; und
    eine mit der CPU gekoppelte Ablaufprotokollierungseinheit, die Programmablaufprotokolldaten für Blattfunktionen gemäß einer Ausgabebetriebsart ausgeben kann; und
    ein mit der Ablaufprotokollierungseinheit gekoppeltes Betriebsart-Auswahlmodul für die Ablaufprotokollierung, wobei das Betriebsart-Auswahlmodul für die Ablaufprotokollierung wenigstens eine erste Ausgabebetriebsart und eine zweite Ausgabebetriebsart aufweist und entweder die erste Ausgabebetriebsart oder die zweite Ausgabebetriebsart zum Ausgeben von Programmablaufprotokolldaten auswählen kann.
  • Vorteilhaft weist das System ferner einen mit der Ablaufprotokollierungseinheit gekoppelten Ablaufprotokollpuffer auf, wobei das Betriebsart-Auswahlmodul für die Ablaufprotokollierung entweder die erste Ausgabebetriebsart oder die zweite Ausgabebetriebsart zum Ausgeben von Programmablaufprotokolldaten gemäß dem Ablaufprotokollpufferfüllstand auswählen kann.
  • Vorteilhaft weist das System ferner einen mit der Ablaufprotokollierungseinheit gekoppelten Ablaufprotokollpuffer auf, wobei der Schwellenwert für die kurzen Blattfunktionen und/oder die sehr kurzen Blattfunktionen gemäß dem Ablaufprotokollpufferfüllstand geändert wird.
  • Gemäß einem weiteren Aspekt wird ein System bereitgestellt zum Generieren von kompakten Funktionsablaufprotokolldaten für eine Blattfunktion, das Folgendes aufweist:
    eine zentrale Verarbeitungseinheit (CPU), die zum Generieren einer Programmablaufprotokollierung benötigte Programmablaufinformationen übertragen kann; und
    eine mit der CPU gekoppelte und zum Empfangen der Programmablaufinformationen von der CPU geeignete Ablaufprotokollierungseinheit zum Generieren von kompakten Programmablaufprotokolldaten, wobei die Ablaufprotokollierungseinheit wenigstens eine erste Ausgabebetriebsart und eine zweite Ausgabebetriebsart aufweist und ferner entweder die erste Ausgabebetriebsart oder die zweite Ausgabebetriebsart zum Generieren von kompakten Funktionsablaufprotokolldaten auswählen kann; wobei die erste Ausgabebetriebsart eine Betriebsart für sehr kurze Blattfunktionen ist, wobei in diesem Fall mittels der Ablaufprotokollierungseinheit keine Ablaufprotokolldaten generiert werden, und wobei die zweite Ausgabebetriebsart eine Betriebsart für kurze Blattfunktionen ist, wobei in diesem Fall nur für eine CALL-Anweisung kompakte Funktionsablaufprotokolldaten generiert werden.
  • Vorteilhaft weist das System ferner einen mit der Ablaufprotokollierungseinheit gekoppelten Ablaufprotokollpuffer auf, wobei der Ablaufprotokollpuffer einen Ablaufprotokollpufferfüllstand aufweist und wobei die Ablaufprotokollierungseinheit ferner zum Ausgeben von kompakten Funktionsablaufprotokolldaten gemäß dem Ablaufprotokollpufferfüllstand entweder die erste Ausgabebetriebsart oder die zweite Ausgabebetriebsart auswählen kann.
  • Weitere Merkmale, Aspekte und Vorteile der vorliegenden Erfindung werden aus der folgenden ausführlichen Beschreibung der Erfindung unter Bezugnahme auf die beigefügten Zeichnungen deutlich.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die begleitenden Zeichnungen sind beigefügt, um ein tieferes Verständnis der vorliegenden Erfindung zu ermöglichen, und sind in diese Schrift aufgenommen und bilden einen Teil davon. Die Zeichnungen veranschaulichen Ausführungsformen der vorliegenden Erfindung und dienen zusammen mit der Beschreibung dazu, die Prinzipien der Erfindung zu erklären. Weitere Ausführungsformen der vorliegenden Erfindung und viele der angestrebten Vorteile der vorliegenden Erfindung können ohne Weiteres gewürdigt werden, da sie durch Bezugnahme auf die folgende ausführliche Beschreibung besser verstanden werden.
  • 1 zeigt ein beispielhaftes Schemadiagramm eines Systems gemäß einer Ausführungsform der Erfindung.
  • 2 zeigt ein beispielhaftes Schemadiagramm einer Ablaufprotokollierungseinheit gemäß einer Ausführungsform der Erfindung.
  • 3 zeigt ein Ablaufdiagramm beispielhafter Verfahrensschritte zum Generieren von kompakten Funktionsablaufprotokolldaten gemäß einer Ausführungsform der Erfindung.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • In der folgenden ausführlichen Beschreibung wird auf die begleitenden Zeichnungen Bezug genommen, die einen Teil hiervon bilden und in denen zur Veranschaulichung spezifische Ausführungsformen dargestellt sind, mit denen die Erfindung in die Praxis umgesetzt werden kann. Es sei klargestellt, dass weitere Ausführungsformen verwendet werden können und strukturelle oder andere Änderungen vorgenommen werden können, ohne dass vom Schutzumfang der vorliegenden Erfindung abgewichen wird. Daher soll die folgende ausführliche Beschreibung nicht in beschränkendem Sinne aufgefasst werden, und der Schutzumfang der vorliegenden Erfindung wird durch die beigefügten Ansprüche definiert.
  • Ablaufverfolgungen sind für die Software-Fehlersuche bei Anwendungen nützlich, um zu ermitteln, welche Art von Ereignissen vor dem Auftreten eines bestimmten Softwareproblems stattgefunden hat. Ablaufverfolgungen sind auch nützlich, um die Leistung von aufgabenorientierten eingebetteten und nicht eingebetteten Anwendungen zu analysieren, die auf diversen Software/Hardware-Plattformen ausgeführt werden. Beispielsweise können aufgabenorientierte Softwareprogramme mittels Prozessoren ausgeführt werden, die für Steuerungsaspekte von Industrie- und Verbrauchervorrichtungen geeignet sind, oder sie können Software für Geschäfts- und Wissenschaftsanwendungen aufweisen. Zum Zwecke dieser Beschreibung weisen Anwendungen, Softwareprogramme, Anwendungssoftware, Programmanwendungen und Programme von Mikroprozessoren auszuführende Anweisungssätze auf, und diese Begriffe sind austauschbar. Im Allgemeinen ermöglichen Ablaufverfolgungen die Rekonstruktion eines überwachten Programmablaufs.
  • 1 ist ein Blockdiagramm höherer Ebene, das ein computergestütztes Verarbeitungssystem 100 zum Generieren von kompakten funktionsbezogenen Programmablaufprotokolldaten für Blattfunktionen gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. In einer Ausführungsform kann das computergestützte Verarbeitungssystem auf einem Mikrochip implementiert sein, und es weist eine zentrale Verarbeitungseinheit (CPU) 104, einen Systembus 106, einen Speicher-Controller 108, einen internen Speicher 110, eine Ablaufprotokollierungseinheit 112 und eine Tool-Schnittstelle 114 auf.
  • Die CPU 104 ist über den Systembus 106 mit dem internen Speicher 110 und über den Systembus 106 und den Speicher-Controller 108 mit einem externen Speicher 116 gekoppelt. Wie veranschaulicht, können der interne Speicher 110 und die CPU 104 auf einem einzelnen Mikrochip vorgesehen sein. Für den Fachmann auf diesem Gebiet ist es offensichtlich, dass der Schutzumfang der vorliegenden Erfindung auch eine Vielzahl von Mikrochips abdeckt, die diverse Konfigurationen der Komponenten des Verarbeitungssystems 100 vorsehen können.
  • Der Speicher 110 kann jegliche Kombination von flüchtigem Schreib-Lese-Speicher (RAM) und nichtflüchtigem Nur-Lese-Speicher (ROM) zum Speichern eines Betriebssystems (OS) und eingebetteter und/oder nicht eingebetteter Programmanwendungen aufweisen.
  • Die CPU 104 weist einen oder mehrere Stacks 118 auf, in denen aktuelle Programmanweisungsadressen gespeichert werden können. Der eine oder die mehreren Stacks 118 weisen Rückkehradressen-Stacks (auch als CALL-Stacks bezeichnet) zum Speichern von Adressen von mit CALL-Anweisungen an eine Funktion oder Subroutine des aktuellen, von der CPU ausgeführten Programms verbundenen Rückkehranweisungen auf. Die aktuellen, den Adressen entsprechenden Programmanweisungen können von dem Speicher 110 zur Ausführung mittels der CPU 104 geladen werden. Außerdem kann die CPU 104 ein oder mehrere Anweisungszeigerregister 120 aufweisen, die Speicheradressen von Anweisungen enthalten, die aktuell mittels der CPU 104, oder in alternativen Ausführungsformen, mittels anderer Mikroprozessoren (nicht gezeigt) des computergestützten Verarbeitungssystems 100 ausgeführt werden. In weiteren Ausführungsformen können einige oder alle der Stacks 118 oder Register 120 Bestandteile des Speichers 110 sein.
  • Der externe Speicher 116 kann jegliche Kombination von RAM und ROM aufweisen, die so konfiguriert sind, dass zu verwendende und möglicherweise mittels der CPU 104 bei der Ausführung der Programmanwendungen geänderte Daten gespeichert werden. Der interne Speicher 110 kann außerdem geeignet sein, sowohl Daten als auch Programmanweisungen zu speichern. Der externe Speicher 116 kann außerdem auf einem Mikrochip vorgesehen sein, der sich von dem Mikrochip 102 unterscheidet.
  • Die Ablaufprotokollierungseinheit 112 ermöglicht die Rekonstruktion eines überwachten Programmablaufs über Dekomprimierungsalgorithmen für Ablaufprotokolldaten, die mittels eines mit den Kontaktstiften 122 der Tool-Schnittstelle 114 gekoppelten externen Tools (nicht gezeigt) implementiert sind. Zu diesen Zwecken verarbeitet die Ablaufprotokollierungseinheit 112 Ablaufprotokolldaten, das heißt Informationen über eine laufende Anwendung, ohne deren Ausführung anzuhalten, und sie kann die Ablaufprotokolldaten sequenziell aufzeichnen, das heißt die Informationen über ausgeführte Anweisungen können in der Reihenfolge ihrer Ausführung gespeichert werden. Die Ablaufprotokollierungseinheit 112 kann zum Empfangen der zum Generieren eines Ablaufprotokolls benötigten Programmablaufinformationen direkt mit der CPU 104 gekoppelt sein. Die Ablaufprotokollierungseinheit 112 kann Werte von einem oder mehreren Anweisungszeigerregistern 120 (auch als Programmzähler bekannt) und die Werte von einem oder mehreren Stacks 118 der CPU 104 aufzeichnen, und/oder sie kann Daten, auf welche die CPU 104 zugreift oder die sie verarbeitet, und/oder den Datenstrom auf dem Systembus 106 oder auf anderen Bussen der CPU 104 oder im System 100 aufzeichnen.
  • Wie veranschaulicht, handelt es sich bei dem Programmzähler 120 um ein Register in der CPU 104, das angibt, wo sich die CPU 104 in ihrer Anweisungssequenz beim Ausführen der in dem Stack 118 gespeicherten Anweisungen gerade befindet. Je nach Typ des Mikroprozessors bzw. der CPU 104 weist das Anweisungsprogrammregister 120 entweder die Adresse der gerade ausgeführten Anweisung oder die Adresse der als nächstes auszuführenden Anweisung auf.
  • Bei der Ablaufprotokollierung des Anweisungszeigerregisters 120 empfängt die Ablaufprotokollierungseinheit 112 ständig Nachrichten mit Programmablaufinformationen, die auch als Ablaufprotokolldaten bezeichnet werden. Gemäß einer Ausführungsform der vorliegenden Erfindung empfängt die Ablaufprotokollierungseinheit 112 Programmablaufprotokolldaten für Aufrufanweisungen (CALL) und Rückkehranweisungen (RET) und gibt als Reaktion auf eine ausgewählte Ausgabebetriebsart oder einen ausgewählten Schwellenwert die Programmablaufprotokolldaten an eine Tool-Schnittstelle 114 aus. Beispielsweise kann in einer Ausführungsform die Ablaufprotokollierungseinheit 112 die Ausgabe von Programmablaufprotokolldaten für Blattfunktionen einer bestimmten Länge begrenzen. In weiteren Ausführungsformen der vorliegenden Erfindung kann die Ablaufprotokollierungseinheit 112 die Ausgabe der Programmablaufprotokolldaten als Reaktion auf die verfügbare Bandbreite oder auf eine von einem Benutzer der Tool-Schnittstelle 114 ausgewählte Ausgabebetriebsart begrenzen. Wie ein Fachmann auf diesem Gebiet erkennen würde, wird der Begriff Blattfunktion verwendet, um Funktionen oder Subroutinen in einem Programm zu bezeichnen, die keine weiteren Funktionen aufrufen.
  • 2 ist ein Blockdiagramm höherer Ebene der in 1 veranschaulichten Ablaufprotokollierungseinheit 112 zum Generieren von kompakten funktionsbezogenen Programmablaufprotokolldaten gemäß einer Ausführungsform der Erfindung. Die Ablaufprotokollierungseinheit 112 umfasst einen Ablaufprotokoll-Nachrichtengenerator 202, ein Ausgabebetriebsart-Auswahlmodul 204 und einen FIFO-Puffer 206.
  • In dem Betrieb generiert der Ablaufprotokoll-Nachrichtengenerator 202 eine oder mehrere Dateneinheiten bzw. Nachrichten für die Programmablaufprotokollierung, während die CPU 102 ein Programm ausführt. Das Ausgabebetriebsart-Auswahlmodul 204 wertet ein oder mehrere Kriterien aus, um zu ermitteln, ob die Programmablaufprotokolldaten ausgegeben werden sollen oder nicht, und wenn ja, welche Daten auszugeben sind. Nach dieser Auswertung ermittelt das Ausgabebetriebsart-Auswahlmodul 204 die Ausgabe der Programmablaufprotokolldaten an den FIFO-Puffer 206 mittels des Ablaufprotokoll-Nachrichtengenerators 202.
  • In einer Ausführungsform wird die Ablaufprotokollierungseinheit 112 der vorliegenden Erfindung verwendet, um kompakte Programmablaufprotokolldaten für Funktionen oder Subroutinen zu generieren. Beispielsweise kann das Ausgabebetriebsart-Auswahlmodul 204 festlegen, dass: 1) bei sehr kurzen Blattfunktionen keine Ablaufprotokolldaten generiert werden, 2) bei kurzen Blattfunktionen nur die CALL-Anweisung eine Ablaufprotokollnachricht ausgibt, und 3) bei der RET-Anweisung nur die Quelladresse ausgegeben wird. Die Festlegung durch das Ausgabebetriebsart-Auswahlmodul 204 kann mittels Auswerten der Ausführungsdauer der Blattfunktion oder mittels Auswerten des Füllstands des FIFO-Puffers 206 erfolgen. In einer weiteren Ausführungsform der vorliegenden Erfindung kann ein Benutzer in der Lage sein, das Ausgabebetriebsart-Auswahlmodul 204 direkt über die Tool-Schnittstelle 114 zu betätigen und die Ausgabebetriebsart auszuwählen oder zwischen den diversen Ausgabebetriebsarten umzuschalten. In noch einer weiteren Ausführungsform kann das Ausgabebetriebsart-Auswahlmodul 204 eine höher auflösende Ablaufprotokollierungsbetriebsart umfassen, die Programmablaufprotokolldaten ohne jegliche Auslassungen ausgeben kann. Eine solche Betriebsart kann auch auf der Grundlage der Ausführungsdauer der Funktion bestimmt werden, auf der Grundlage des Füllstands des FIFO-Puffers 206 bestimmt werden oder direkt von einem Benutzer der Tool-Schnittstelle 114 ausgewählt werden.
  • 3 ist ein Ablaufdiagramm, das ein Verfahren 300 des Generierens kompakter Funktionsablaufprotokolldaten gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. Weitere Ausführungsformen können die hier beschriebenen Schritte in anderen Reihenfolgen durchführen. Außerdem können weitere Ausführungsformen zusätzliche und/oder andere als die hier beschriebenen Schritte durchführen.
  • Anfänglich wertet die Ablaufprotokollierungseinheit in Schritt 310 als Reaktion auf eine CPU, die eine CALL/RET-Funktion ausführt, die Ausführungsdauer der CALL/RET-Funktion aus, um in Schritt 312 zu ermitteln, ob sie einen ersten Schwellenwert für die Funktionsausführungsdauer überschreitet. In einer Ausführungsform kann dieser erste Schwellenwert für die Funktionsausführungsdauer ein Schwellenwert für „sehr kurze” Blattfunktionen sein. Ein Beispiel für das Ermitteln eines Schwellenwerts für eine sehr kurze Blattfunktion wird weiter unten noch ausführlicher beschrieben.
  • In einer Ausführungsform werden, wenn die CALL/RET-Funktion den ersten Schwellenwert für die Funktionsausführungsdauer oder den Schwellenwert für eine „sehr kurze Blattfunktion” nicht überschreitet, möglicherweise in Schritt 314 keine Ablaufprotokolldaten generiert oder ausgegeben.
  • Wenn die Ausführungsdauer der CALL/RET-Funktion den ersten Schwellenwert für die Funktionsausführungsdauer überschreitet, kann die Ablaufprotokollierungseinheit in Schritt 316 auswerten, ob die Ausführungsdauer der CALL/RET-Funktion einen zweiten Schwellenwert für die Funktionsausführungsdauer überschreitet. In einer Ausführungsform kann dieser zweite Schwellenwert für die Funktionsausführungsdauer dazu verwendet werden, um eine „kurze” Blattfunktion zu identifizieren. Ein Beispiel für das Bestimmen eines Schwellenwerts für eine kurze Blattfunktion wird weiter unten ausführlicher beschrieben.
  • In einer Ausführungsform kann die Ablaufprotokollierungseinheit, wenn die CALL/RET-Funktion den zweiten Schwellenwert für die Funktionsausführungsdauer oder den Schwellenwert für eine „kurze Blattfunktion” nicht überschreitet, in einer Betriebsart vom Typ „nur CALL-Ablaufprotokollierung” funktionieren und in Schritt 318 kompakte Funktionsablaufprotokolldaten nur für die CALL-Anweisung generieren.
  • Wenn die Ausführungsdauer der CALL/RET-Funktion den zweiten Schwellenwert für die Funktionsausführungsdauer oder den Schwellenwert für eine kurze Blattfunktion überschreitet, kann die Ablaufprotokollierungseinheit in Schritt 318 Ablaufprotokolldaten für die CALL/RET-Anweisung generieren. In einer Ausführungsform gibt die Ablaufprotokollierungseinheit für jede CALL-Funktion die Quelladresse plus einen Zeitstempel und für jede RET-Anweisung die Quelladresse, die Zieladresse und einen Zeitstempel aus, die typischerweise bis zu 150 Bit groß sind. Das Einschließen eines Zeitstempels in die Ausgabe ist optional.
  • Folglich senkt die vorliegende Erfindung zweckmäßigerweise die Bandbreite und verringert die Kosten durch Begrenzen oder Unterbinden der generierten oder ausgegebenen Ablaufprotokolldaten je nach gewähltem Schwellenwert. Obwohl die Ausführungsdauer einer Blattfunktion verwendet wird, um zu ermitteln, welche kompakten Funktionsablaufprotokolldaten generiert oder ausgegeben werden sollen, werden die Fachleute auf dem Gebiet erkennen, dass die Auswahl, Begrenzung oder Unterbindung von zu generierenden oder auszugebenden Ablaufprotokolldaten auf der Grundlage anderer Faktoren erfolgen kann, wie beispielsweise des Füllstands eines Puffers oder anhand der Auswahl durch einen Benutzer.
  • Die Schwellenwerte der Funktionsausführungsdauer der vorliegenden Erfindung sind konfigurierbar und können gemäß anderer Leistungsspezifikationen unterschiedlich sein. Zudem kann es nur einen Schwellenwert oder mehrere für die Funktionsausführungsdauer geben. Zum Beispiel kann eine statistische Analyse diverser Anwendungsablaufprotokolldaten, wie beispielsweise diejenigen, die für die Ablaufprotokolldaten diverser Antriebsstranganwendungen verwendet werden, einen durchschnittlichen Funktionsaufruf alle 60 Taktzyklen der CPU angeben, in denen bei 80% der Funktionsaufrufe Blattfunktionen aufgerufen wurden. Von diesen Aufrufen von Blattfunktionen können 22% aller Funktionsaufrufe 8 oder weniger Zyklen beansprucht haben, 39% können 16 oder weniger Zyklen beansprucht haben, und 15% können dieselbe Funktion wie zuvor erneut aufrufen. Folglich kann in einer Ausführungsform der Schwellenwert für die Funktionsausführungsdauer für ausgelassene Funktionen oder „sehr kurze Blattfunktionen” 16 Zyklen betragen, und der Schwellenwert für die Funktionsausführungsdauer für Funktionen vom Typ „nur CALL-Ablaufprotokollierung” oder für „kurze Blattfunktionen” kann 100 Zyklen betragen. Mittels Begrenzens der Ausgabe der Programmablaufverfolgungsdaten für Blattfunktionen, die bestimmte Schwellenwerte nicht überschreiten, verringert die vorliegende Erfindung zweckmäßigerweise die erforderliche Menge an Bandbreite zum Ausgeben der Funktionsablaufprotokolldaten. In diesem Beispiel würden für eine gegebene Funktion nur 45 Bit Ablaufprotokolldaten generiert werden. Folglich würden für eine CPU mit 300 MHz etwa 28 MByte/Sek. an Ablaufprotokolldaten generiert werden, die geringer als die verfügbare Bandbreite einer DAP-Debug-Tool-Schnittstelle mit drei Kontakten wären.
  • Für eine RET-Anweisung kann eine ähnliche Vorgehensweise angewendet werden, um den Schwellwert der Funktionsausführungsdauer zu bestimmen, die Nachricht kann jedoch unmittelbar ausgegeben werden. In diesem Fall ist die Dauer der ausgeführten Funktion zu diesem Zeitpunkt bekannt, daher kann die Entscheidung, ob eine vollständige Ablaufprotokollierungsnachricht, eine reduzierte Ablaufprotokollierungsnachricht oder keine Ablaufprotokollierungsnachricht ausgegeben werden soll, unmittelbar getroffen und ausgeführt werden. Eine vollständige Ablaufprotokollierungsnachricht enthält die Quelladresse, die Zieladresse und einen Zeitstempel. Eine kompakte bzw. reduzierte Ablaufprotokollierungsnachricht enthält lediglich die Quelladresse und optional einen Zeitstempel.
  • In einer weiteren Ausführungsform der vorliegenden Erfindung kann die Ablaufprotokollierungseinheit außerdem den Füllstand des Ablaufprotokollpuffers auswerten, um zu ermitteln, ob kompakte Funktionsablaufprotokolldaten generiert oder ausgegeben werden sollen. Eine Ablaufprotokollierungseinheit gemäß der vorliegenden Erfindung kann die Generierung oder Ausgabe von Ablaufprotokolldaten für eine Funktion in Abhängigkeit davon begrenzen, ob der Ablaufprotokollpufferfüllstand einen angegebenen Schwellwert für den Ablaufprotokollpufferfüllstand überschreitet oder nicht.
  • Beispielsweise kann in einer Ausführungsform der vorliegenden Erfindung als Reaktion auf eine CPU, die eine CALL/RET-Funktion ausführt, die Ablaufprotokollierungseinheit den Ablaufprotokollpufferfüllstand und einen Schwellenwert für den Ablaufprotokollpufferfüllstand auswerten. Wenn der Ablaufprotokollpufferfüllstand einen ersten Schwellenwert für den Ablaufprotokollpufferfüllstand überschreitet, können mittels der Ablaufprotokollierungseinheit keine Ablaufprotokolldaten generiert bzw. ausgegeben werden. Die Ablaufprotokollierungseinheit kann dann den Ablaufprotokollpufferfüllstand im Vergleich zu einem niedrigeren Schwellenwert für den Ablaufprotokollpufferfüllstand auswerten. Wenn der Ablaufprotokollpufferfüllstand den zweiten Schwellenwert für den Ablaufprotokollpufferfüllstand überschreitet, können die generierten oder ausgegebenen Ablaufprotokolldaten begrenzt sein. In einer Ausführungsform kann die Ablaufprotokollierungseinheit dann in einer Betriebsart vom Typ „nur CALL-Ablaufprotokollierung” funktionieren und nur für die CALL-Anweisung Ablaufprotokolldaten generieren.
  • Wenn die Ausführungsdauer der CALL/RET-Funktion weder den ersten noch den zweiten Schwellenwert für die Funktionsausführungsdauer überschreitet, kann die Ablaufprotokollierungseinheit Ablaufprotokolldaten für die CALL/RET-Anweisung generieren. In einer Ausführungsform kann die Ablaufprotokollierungseinheit für jede CALL-Funktion die Quelladresse plus einen optionalen Zeitstempel und für jede RET-Anweisung die Quelladresse, die Zieladresse und einen optionalen Zeitstempel ausgeben, die typischerweise alle bis zu 150 Bit groß sind.
  • Der Schwellenwert für den Ablaufprotokollpufferfüllstand der vorliegenden Erfindung ist konfigurierbar und kann gemäß anderen Leistungsspezifikationen unterschiedlich sein. Zudem kann es nur einen Schwellenwert für den Ablaufprotokollpufferfüllstand geben oder mehrere.
  • In noch einer weiteren Ausführungsform der vorliegenden Erfindung kann der Ablaufprotokollpufferfüllstand dazu verwendet werden, den Schwellenwert für kurze Blattfunktionen und/oder sehr kurze Blattfunktionen zu ermitteln oder zu konfigurieren. In einer solchen Ausführungsform kann die vorliegende Erfindung den Ablaufprotokollpufferfüllstand mit einem Schwellenwert für den Ablaufprotokollpufferfüllstand vergleichen und dann den Schwellenwert für die kurzen Blattfunktionen und/oder die sehr kurzen Blattfunktionen, zum Beispiel den Schwellenwert für die Funktionsausführungsdauer, in Abhängigkeit von dem Ablaufprotokollpufferfüllstand anpassen.
  • In einer weiteren Ausführungsform der vorliegenden Erfindung können die mittels einer CALL-Funktion generierten Programmablaufprotokolldaten lokal mit einem Zeitstempel in einer Speichereinheit gespeichert werden, bis der in Zyklen gemessene Schwellenwert für „ausgelassene Funktionen”, nachdem die Ablaufprotokolldaten ausgegeben werden, abgelaufen oder nicht mehr gültig ist. Um die Verletzung einer strengen zeitlichen Reihenfolge von Ablaufprotokolldaten aus diversen Quellen in einem Ablaufprotokollpuffer zu vermeiden oder Ablaufprotokolldaten und Programmablaufprotokollierung abzugleichen, kann die Betriebsart für die Programmablaufprotokollierung zeitweilig mittels einer zweiten Ablaufprotokollquelle geändert werden. Bei dieser zweiten Ablaufprotokollquelle kann es sich beispielsweise um eine andere CPU auf demselben Chip handeln. Eine als Teil der Software auf der zweiten CPU laufende Funktion interagiert mit der Software auf der ersten CPU. Folglich wird die Ablaufprotokollierungsbetriebsart auf der ersten CPU in eine höher auflösende Betriebsart geändert, während diese spezifische Funktion auf der zweiten CPU läuft.
  • In einer weiteren Ausführungsform der vorliegenden Erfindung können Schwellenwerte auch dazu verwendet werden, die Ausgabebetriebsart für Interrupts auszuwählen. Beispielsweise können die Ablaufprotokolldaten für Interrupts entweder vollständig unterdrückt oder als Standard-Funktionsaufrufe ohne eine CALL-Anweisung behandelt werden. Zudem kann die aktuelle Task-ID in einer noch weiteren Ausführungsform ebenfalls protokolliert werden. Dies kann mit einer Datenablaufverfolgung der Variablen für die Task-ID erfolgen, was dann eine hierarchische Analyse der Funktionsaufrufe für die verschiedenen Tasks erlaubt.
  • Obwohl in diesem Dokument spezifische Ausführungsformen veranschaulicht und beschrieben wurden, werden es die Durchschnittsfachleute auf dem Gebiet würdigen, dass die gezeigten und beschriebenen, spezifischen Ausführungsformen durch eine Vielzahl von alternativen und/oder äquivalenten Implementierungen ersetzt werden können, ohne dass vom Schutzumfang der vorliegenden Erfindung abgewichen wird. Diese Anmeldung soll jegliche Adaptionen oder Variationen der in diesem Dokument erörterten, spezifischen Ausführungsformen umfassen. Daher soll die Erfindung nur durch die Ansprüche und deren Äquivalente beschränkt werden.

Claims (10)

  1. System zum Generieren von kompakten Funktionsablaufdaten, das Folgendes umfasst: eine zentrale Verarbeitungseinheit (CPU), die zum Generieren einer Programmablaufprotokollierung benötigte Programmablaufinformationen ausgeben kann; und eine mit der CPU gekoppelte und zum Empfangen der Programmablaufinformationen von der CPU geeignete Ablaufprotokollierungseinheit zum Generieren von kompakten Programmablaufprotokolldaten, wobei die Ablaufprotokollierungseinheit wenigstens eine erste Ausgabebetriebsart und eine zweite Ausgabebetriebsart aufweist und ferner entweder die erste Ausgabebetriebsart oder die zweite Ausgabebetriebsart zum Generieren von kompakten Funktionsablaufprotokolldaten auswählen kann.
  2. System nach Anspruch 1, wobei die erste Ausgabebetriebsart eine Betriebsart für sehr kurze Blattfunktionen ist, wobei in diesem Fall mittels der Ablaufprotokollierungseinheit keine Ablaufprotokolldaten generiert werden.
  3. System nach Anspruch 1, wobei die zweite Ausgabebetriebsart eine Betriebsart für sehr kurze Blattfunktionen ist, wobei in diesem Fall nur für eine CALL-Anweisung Ablaufprotokolldaten generiert werden.
  4. System nach Anspruch 1, das ferner einen mit der Ablaufprotokollierungseinheit gekoppelten Ablaufprotokollpuffer aufweist, wobei der Ablaufprotokollpuffer einen Ablaufprotokollpufferfüllstand aufweist und wobei die Ablaufprotokollierungseinheit ferner zum Ausgeben von kompakten Funktionsablaufprotokolldaten gemäß dem Ablaufprotokollpufferfüllstand entweder die erste Ausgabebetriebsart oder die zweite Ausgabebetriebsart auswählen kann.
  5. System nach Anspruch 1, das ferner einen mit der Ablaufprotokollierungseinheit gekoppelten Ablaufprotokollpuffer aufweist, wobei der Ablaufprotokollpuffer einen Ablaufprotokollpufferfüllstand aufweist und wobei die Ablaufprotokollierungseinheit ferner den Schwellenwert für die kurzen Blattfunktionen und/oder die sehr kurzen Blattfunktionen gemäß dem Ablaufprotokollpufferfüllstand auswählen kann.
  6. Verfahren zum Generieren von kompakten Funktionsablaufprotokolldaten für eine Blattfunktion bzw. leaf function, wobei die Blattfunktion eine Ausführungsdauer aufweist und das Verfahren die folgenden Schritte umfasst: Vergleichen der Ausführungsdauer der Blattfunktion mit wenigstens einem Schwellenwert für die Funktionsausführungsdauer; und Generieren von Ablaufprotokolldaten für die Blattfunktion, wenn die Ausführungsdauer der Funktion den Schwellenwert für die Funktionsausführungsdauer überschreitet.
  7. Verfahren nach Anspruch 6, wobei keine Ablaufprotokolldaten generiert werden, wenn die Ausführungsdauer der Funktion den Schwellenwert für die Funktionsausführungsdauer nicht überschreitet.
  8. System zum Generieren von kompakten Funktionsablaufdaten, das Folgendes umfasst: einen Ablaufprotokoll-Nachrichtengenerator zum Generieren von kompakten Funktionsablaufprotokolldaten für eine Funktion; und ein mit dem Ablaufprotokoll-Nachrichtengenerator gekoppeltes Ausgabebetriebsart-Auswahlmodul zum Auswerten eines Schwellenwerts und zum Bestimmen der mittels des Ablaufprotokoll-Nachrichtengenerators auf der Grundlage des Schwellenwerts zu generierenden kompakten Funktionsablaufprotokolldaten.
  9. System zum Generieren von Programmablaufprotokolldaten für Blattfunktionen, das Folgendes aufweist: eine zentrale Verarbeitungseinheit (CPU), die einen Stack aufweist, der Anweisungsadressen eines Programms speichern kann, wobei die CPU Programmablaufprotokolldaten für Blattfunktionen generieren kann; und eine mit der CPU gekoppelte Ablaufprotokollierungseinheit, die Programmablaufprotokolldaten für Blattfunktionen gemäß einer Ausgabebetriebsart ausgeben kann; und ein mit der Ablaufprotokollierungseinheit gekoppeltes Betriebsart-Auswahlmodul für die Ablaufprotokollierung, wobei das Betriebsart-Auswahlmodul für die Ablaufprotokollierung wenigstens eine erste Ausgabebetriebsart und eine zweite Ausgabebetriebsart aufweist und entweder die erste Ausgabebetriebsart oder die zweite Ausgabebetriebsart zum Ausgeben von Programmablaufprotokolldaten auswählen kann.
  10. System zum Generieren von kompakten Funktionsablaufprotokolldaten für eine Blattfunktion, das Folgendes aufweist: eine zentrale Verarbeitungseinheit (CPU), die zum Generieren einer Programmablaufprotokollierung benötigte Programmablaufinformationen übertragen kann; und eine mit der CPU gekoppelte und zum Empfangen der Programmablaufinformationen von der CPU geeignete Ablaufprotokollierungseinheit zum Generieren von kompakten Programmablaufprotokolldaten, wobei die Ablaufprotokollierungseinheit wenigstens eine erste Ausgabebetriebsart und eine zweite Ausgabebetriebsart aufweist und ferner entweder die erste Ausgabebetriebsart oder die zweite Ausgabebetriebsart zum Generieren von kompakten Funktionsablaufprotokolldaten auswählen kann; wobei die erste Ausgabebetriebsart eine Betriebsart für sehr kurze Blattfunktionen ist, wobei in diesem Fall mittels der Ablaufprotokollierungseinheit keine Ablaufprotokolldaten generiert werden, und wobei die zweite Ausgabebetriebsart eine Betriebsart für kurze Blattfunktionen ist, wobei in diesem Fall nur für eine CALL-Anweisung kompakte Funktionsablaufprotokolldaten generiert werden.
DE102013000857A 2012-01-18 2013-01-18 Kompakte Funktionsablaufprotokollierung Pending DE102013000857A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/352,431 2012-01-18
US13/352,431 US8868982B2 (en) 2012-01-18 2012-01-18 Compact function trace based on execution length of leaf functions

Publications (1)

Publication Number Publication Date
DE102013000857A1 true DE102013000857A1 (de) 2013-07-18

Family

ID=48693315

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013000857A Pending DE102013000857A1 (de) 2012-01-18 2013-01-18 Kompakte Funktionsablaufprotokollierung

Country Status (3)

Country Link
US (1) US8868982B2 (de)
CN (1) CN103218219B (de)
DE (1) DE102013000857A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10067852B2 (en) * 2013-10-29 2018-09-04 Nxp Usa, Inc. Switching between traditional and history program trace modes without halting a processor
US9864670B2 (en) * 2015-04-15 2018-01-09 International Business Machines Corporation Dynamically choosing data to collect in a system
WO2018071450A1 (en) 2016-10-11 2018-04-19 Green Hills Software, Inc. Systems, methods, and devices for vertically integrated instrumentation and trace reconstruction
US11016773B2 (en) * 2019-09-27 2021-05-25 Intel Corporation Processor trace extensions to facilitate real-time security monitoring
US11558243B2 (en) * 2020-01-08 2023-01-17 Arris Enterprises Llc Proactive error capture
CN112433945A (zh) * 2020-11-26 2021-03-02 百富计算机技术(深圳)有限公司 一种用于程序动态跟踪的方法、装置及电子设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5732272A (en) * 1995-07-31 1998-03-24 Apple Computer, Inc. Subroutine execution time tracer
US6918065B1 (en) * 1999-10-01 2005-07-12 Hitachi, Ltd. Method for compressing and decompressing trace information
JP3796111B2 (ja) * 2000-11-10 2006-07-12 株式会社ルネサステクノロジ データプロセッサ
US7644397B2 (en) * 2004-06-19 2010-01-05 Apple Inc. Software performance analysis using data mining
US7793160B1 (en) * 2005-03-29 2010-09-07 Emc Corporation Systems and methods for tracing errors
US7653848B2 (en) * 2006-07-14 2010-01-26 International Business Machines Corporation Selectively engaging optional data reduction mechanisms for capturing trace data
CN101237350B (zh) * 2008-02-27 2010-12-01 中兴通讯股份有限公司 用于多任务环境单板机的全局变量异常改写定位方法
US8286032B2 (en) * 2009-04-29 2012-10-09 Freescale Semiconductor, Inc. Trace messaging device and methods thereof
JP2011013867A (ja) * 2009-06-30 2011-01-20 Panasonic Corp データ処理装置、性能評価解析システム
US9582275B2 (en) * 2011-05-31 2017-02-28 Intel Corporation Method and apparatus for obtaining a call stack to an event of interest and analyzing the same

Also Published As

Publication number Publication date
US8868982B2 (en) 2014-10-21
US20130185601A1 (en) 2013-07-18
CN103218219A (zh) 2013-07-24
CN103218219B (zh) 2016-12-28

Similar Documents

Publication Publication Date Title
DE102013000857A1 (de) Kompakte Funktionsablaufprotokollierung
DE69814997T2 (de) Durch programmierbare Logik gesteuerte Leistungszähler
DE102006059156B4 (de) Verfahren zum Testen eines integrierten Schaltkreischips mit zumindest zwei Schaltungskernen sowie integrierter Schaltkreischip und Testsystem
DE202017106508U1 (de) Synchrone Hardware-Ereignis-Sammlung
DE10333817A1 (de) Emulationsschnittstellensystem
DE102007009909B4 (de) Verfahren zum Validieren einer atomaren Transaktion in einer Multikernmikroprozessorumgebung
CH654943A5 (de) Pruefeinrichtung fuer mikroprogramme.
DE102006041444B4 (de) Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem
DE102014116367A1 (de) Verwaltung von leistungsstufen von informationstechnologiesystemen
EP0368190A1 (de) Verfahren zur Beobachtung des zeitlichen Ablaufs eines von einem Rechnersystem ausgeführten Objektprogrammes und Beobachtungswerkzeug zur Durchführung dieses Verfahrens
DE102014102551A1 (de) Maschine und Verfahren zum Evaluieren von fehlschlagenden Softwareprogrammen
DE10127170A1 (de) Fehlersuchverfahren und Fehlersuchvorrichtung
EP2962205B1 (de) Mehrkern-prozessorsystem mit fehleranalysefunktion
DE69815006T2 (de) Datenverarbeitungseinheit mit Fehlerbeseitungsmöglichkeiten
DE112014000336T5 (de) Vorablesezugriff für einen übergeordneten Kern in einem Mehrkern-Chip
WO2004049159A2 (de) Einrichtung und verfahren zur analyse von eingebetteten systemen
DE102013015936A1 (de) Architektur zur ablaufprotokollbasierten Messung
DE112011100168B4 (de) Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung
DE102009004726A1 (de) Systeme und Verfahren zum Verfolgen von Befehlszeigern und Datenzugriffen
DE102006052757B4 (de) Verfahren zum Betrieb eines Automatisierungsgerätes mit einer Verarbeitungseinheit mit mehreren Verarbeitungskernen
DE102010053333B4 (de) Hochkomprimierte Programmablaufverfolgung
WO2015086357A1 (de) Verfahren zur beeinflussung eines steuerprogramms eines steuergeräts
DE102018130166A1 (de) Latenzmessungstechnologie
DE60010847T2 (de) Verfahren zur Fehlerbeseitigung in einem Thread-Programm
DE102019132679A1 (de) Überwachungsverfahren für cpu-nutzungsmenge im betrieb von fahrzeug-ecu und überwachungseinheit

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R082 Change of representative

Representative=s name: VIERING, JENTSCHURA & PARTNER MBB PATENT- UND , DE