DE102013022137A1 - Mehrstufige Ablaufprotokollierung - Google Patents

Mehrstufige Ablaufprotokollierung Download PDF

Info

Publication number
DE102013022137A1
DE102013022137A1 DE102013022137.4A DE102013022137A DE102013022137A1 DE 102013022137 A1 DE102013022137 A1 DE 102013022137A1 DE 102013022137 A DE102013022137 A DE 102013022137A DE 102013022137 A1 DE102013022137 A1 DE 102013022137A1
Authority
DE
Germany
Prior art keywords
trace
information
hbti
lbti
chip
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
DE102013022137.4A
Other languages
English (en)
Inventor
Albrecht Meyer
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 DE102013022137A1 publication Critical patent/DE102013022137A1/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/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3068Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data format conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • G06F11/364Software debugging by tracing the execution of the program tracing values on a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3027Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3471Address tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time

Landscapes

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

Abstract

Die Erfindung betrifft Verfahren und Systeme für Ablaufprotokollierungslösungen in einem Computer-Verarbeitungssystem. Genauer gesagt betrifft die Erfindung Verfahren und Systeme für eine mehrschichtige Ablaufprotokollierungsarchitektur zum Beobachten und Protokollieren der Abläufe einer oder mehrerer Computer-Verarbeitungseinheiten in einem Echtzeitsystem. Gemäß einem Aspekt der Erfindung umfasst ein Verfahren für eine mehrstufige Ablaufprotokollierungsarchitektur zum Aufteilen der Ablaufprotokoll-Rohdaten die Schritte des Empfangens von Ablaufprotokoll-Rohdaten von einer oder mehreren CPUs und/oder von einem oder mehreren Bussen in dem System, das Aufteilen der Ablaufprotokoll-Rohdaten in Ablaufprotokollinformationen mit hoher Bandbreite (HBTI) und Ablaufprotokollinformationen mit niedriger Bandbreite (LBTI), das Aufzeichnen der HBTI in einem Ablaufprotokollierungspuffer auf dem Chip, bis ein spezielles Ereignis ausgelöst wird, und das parallele Bereitstellen der LBTI über eine Ablaufprotokollierungsschnittstelle außerhalb des Chips.

Description

  • Die Erfindung betrifft Verfahren und Systeme für Ablaufprotokollierungslösungen in einem Computer-Verarbeitungssystem. Genauer gesagt betrifft die Erfindung Verfahren und Systeme für eine mehrschichtige Ablaufprotokollierungsarchitektur zum Beobachten und Protokollieren der Abläufe einer oder mehrerer Computer-Verarbeitungseinheiten in einem Echtzeitsystem.
  • Zum Software-Debugging oder zur 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. Ein Ablaufprotokollierungssystem bzw. eine Ablaufprotokollierungssoftware wird verwendet, um das Verhalten eines Echtzeit-Steuerungssystems (zum Beispiel eines elektronischen Steuergeräts, ECU, im Automobilbereich) auf einer höheren Ebene zu beobachten. Ein derartiges Echtzeit-Steuerungssystem erhält Eingabewerte von Sensoren, aus denen der Steuerungsalgorithmus Werte für Stellglieder berechnet. Bei allen diesen Werten handelt es sich um so genannte Signale, die zum Analysieren des Systemverhaltens beobachtet werden müssen.
  • 1 ist ein Blockdiagramm höherer Ebene, das eine herkömmliche Ablaufprotokollierungsarchitektur für ein Computersystem 10 veranschaulicht. Das herkömmliche Ablaufprotokollierungssystem ist auf einem Mikrochip implementiert und kann eine oder mehrere zentrale Verarbeitungseinheiten (CPUs) 12 mit einem Ablaufprotokollierungsadapter 12a, einen oder mehrere Busse 14 mit einem lokalen Ablaufprotokollierungsadapter 14a und eine zum Empfangen von Ablaufprotokolldaten von der einen oder den mehreren CPUs 12 und von dem einen oder den mehreren Bussen 14 gekoppelte Ablaufprotokollierungseinheit 16 aufweisen. Die Ablaufprotokollierungseinheit 16 weist des Weiteren einen Nachrichtengenerator 18 zum Generieren von Ablaufprotokolldaten und einen Nachrichtenpacker 20 zum Packen der generierten Ablaufprotokolldaten auf. Der Nachrichtenpacker 20 stellt dann die gepackten Ablaufprotokolldaten einem Multiplexer oder Replikator 22 bereit, der die Möglichkeit vorsieht, die Daten exklusiv oder parallel an unterschiedliche Ziele auszugeben. Die gepackten Ablaufprotokollnachrichten werden dann über eine Ablaufprotokollierungsschnittstelle außerhalb des Chips 26 und Kontaktstifte 28 entweder an einen Ablaufprotokollierungspuffer auf dem Chip 24 oder außerhalb des Chips (nicht gezeigt) ausgegeben. Typische Architekturen, die diesem Ansatz folgen, sind CoreSight von ARM, MCDS von Infineon und Architekturen, die konform zu dem Nexus-Standard sind.
  • Herkömmliche Ablaufprotokollierungseinheiten, wie die in 1 gezeigten, weisen mehrere Nachteile auf. Herkömmliche Ablaufprotokollierungseinheiten verfolgen die Aktivitäten der CPU und des Busses und verwenden denselben Datenstrom, der dann entweder an einen Puffer auf dem Chip und/oder über Kontaktstifte an eine Schnittstelle außerhalb des Chips ausgegeben wird, für gepackte Ablaufprotokollnachrichten. Ein Nachteil herkömmlicher Ablaufprotokollierungseinheiten besteht in der begrenzten Bandbreite, die eine Ablaufprotokollierung lediglich auf den Programmablauf mit keinem oder nur wenigen Datenzugriffen, die zum Beispiel anhand eines Adressbereichs genauer bestimmt sind, begrenzt. Zum Auffinden sporadischer Fehler in einem harten Echtzeitsystem, in dem die Ablaufprotokollierung aller internen Aktivitäten auf dem Chip über einen langen Zeitraum gewünscht wird, ist eine Hochgeschwindigkeitsschnittstelle, die eine größere Chip-Fläche und/oder ein alternatives Gehäuse, eine alternative Platinenkonstruktion und/oder Werkzeugbereitstellung erfordert, nicht finanzierbar.
  • Zudem weisen herkömmliche Chips Ablaufprotokollierungsschnittstellen mit begrenzter Bandbreite auf, die eine Protokollierung des Programmablaufs mit keinen oder nur wenigen Datenzugriffen erlauben. Bei Vorrichtungen mit mehreren Kernen, die mit hohen Frequenzen laufen, ist jedoch selbst dieser Ansatz wirtschaftlich nicht mehr praktikabel.
  • Eine weitere Möglichkeit besteht in einem kleinen Ablaufprotokollierungspuffer auf dem Chip und einer leistungsfähigen Auslöselogik, wobei die Ablaufprotokollierungseinheit so konfiguriert ist, dass sie den Puffer auf dem Chip als Umlaufspeicher verwendet und die Aufzeichnung des Ablaufprotokolls angehalten wird, wenn der Trigger erreicht ist. Ein typischer Fehlerfall ist der eines Programms, das einen Datenwert aufgrund eines falschen Adresszeigers an eine unzulässige oder unerlaubte Position schreibt. In diesem Fall befände sich der Trigger zum Anhalten der Ablaufprotokollierung auf der unzulässigen Adresse. Dieser Ansatz ist in Situationen hilfreich, in denen die ursprüngliche Ursache für die Auswirkung kurz vor der eigentlichen Auswirkung eintritt und es möglich ist, als Trigger die Auswirkung vorzusehen, die dann in dem Ablaufprotokoll erfasst wird. Dieser Ansatz ist jedoch nicht für alle Fälle ideal, insbesondere, wenn ein längerer Fehlerkontext benötigt wird, zum Beispiel in welcher Task und warum die bestimmte Funktion auf der Stufe N aufgerufen wurde. Für derartige Informationen ist eine längere Historie notwendig.
  • Zudem gibt es Ablaufprotokollierungsarchitekturen mit mehr als einem parallelen Pfad für Ablaufprotokollierungseinheiten, Nachrichtenpacker, FIFOs und Kontaktstifte auf dem Chip. Diese Pfade sind jedoch fest einer bestimmten CPU oder einem bestimmten Bus oder Teilsystem zugeordnet und können nicht verwendet werden, um dieselbe CPU, denselben Bus oder dasselbe Teilsystem mit unterschiedlichen Einstellungen für Ablaufprotokollierungseinheiten zu beobachten, die für einen Ablaufprotokollierungspuffer auf dem Chip und eine Ablaufprotokollierungsschnittstelle außerhalb des Chips, die als verschiedene Ausgabeziele fungieren, angepasst sind.
  • Somit ist die aktuelle Architektur herkömmlicher Ablaufprotokollierungseinheiten zur Unterstützung der Beobachtung von Ablaufverfolgungen mit langer Historie nicht geeignet, und herkömmliche Ablaufprotokollierungssysteme können auf Grund der aufwändigen Verdrahtung und der begrenzten Bandbreite für die Ablaufprotokollierung nicht auf einfache Weise erweitert werden.
  • Daher besteht eine Notwendigkeit für ein System und ein Verfahren für eine mehrstufige Ablaufprotokollierungsarchitektur zur Ablaufprotokollierung eines Kontexts mit einer längeren Historie, welche die Kosten, Effizienz oder Anzahl der Beobachtungseinheiten nicht maßgeblich erhöht. Genauer gesagt besteht eine Notwendigkeit für eine Architektur zur mehrstufigen Ablaufprotokollierung, welche die Ausgabe der Ablaufprotokolldaten für Ablaufprotokollinformationen mit niedrigerer Bandbreite und Ablaufprotokollinformationen mit höherer Bandbreite aufteilt.
  • Gemäß einem Aspekt der vorliegenden Erfindung weist ein System zum Durchführen einer mehrstufigen Ablaufprotokollierung in einem Computersystem einen Pfad für Ablaufprotokollinformationen mit niedriger Bandbreite (LBTI, Low Bandwidth Trace Information) zum Verarbeiten von Ablaufprotokollinformationen mit niedriger Bandbreite aus der Vielzahl von CPUs und/oder Bussen, einen Pfad für Ablaufprotokollinformationen mit hoher Bandbreite (HBTI, High Bandwidth Trace Information) zum Verarbeiten von Ablaufprotokollinformationen mit hoher Bandbreite aus der Vielzahl von CPUs und/oder Bussen, einen Ablaufprotokollierungspuffer auf dem Chip zum Empfangen und Aufzeichnen der Ablaufprotokollinformationen mit hoher Bandbreite, bis ein spezifischer Ereignis-Trigger auftritt, und eine Tool-Schnittstelle außerhalb des Chips zum parallelen Empfangen und Ausgeben der Ablaufprotokollinformationen mit niedriger Bandbreite auf. Bei einer Ausführungsform weist die vorliegende Erfindung des Weiteren eine LBTI-Ablaufprotokollierungseinheit zum Generieren einer LBTI-Nachricht, eine HBTI-Ablaufprotokollierungseinheit zum Generieren einer HBTI-Nachricht und einen mit der Vielzahl von CPUs und/oder Bussen gekoppelten Replikator auf, um Ablaufprotokoll-Rohdaten von den CPUs und/oder Bussen zu empfangen und der LBTI-Ablaufprotokollierungseinheit und der HBTI-Ablaufprotokollierungseinheit bereitzustellen.
  • Bei einer weiteren Ausführungsform weist die vorliegende Erfindung eine einzelne Ablaufprotokollierungseinheit zum Empfangen der Ablaufprotokoll-Rohdaten von einer oder mehreren der CPUs und/oder von einem oder mehreren der Busse und zum Aufteilen der Ablaufprotokoll-Rohdaten in Ablaufprotokollinformationen mit großer Bandbreite und Ablaufprotokollinformationen mit niedriger Bandbreite auf. Eine HBTI-Nachricht wird generiert und einem HBTI-Nachrichtenpacker bereitgestellt, und eine LBTI-Nachricht wird generiert und einem LBTI-Nachrichtenpacker bereitgestellt. Die gepackte HBTI-Nachricht wird dem Ablaufprotokollierungspuffer auf dem Chip bereitgestellt, und die gepackte LBTI-Nachricht wird parallel der Ablaufprotokollierungsschnittstelle außerhalb des Chips bereitgestellt.
  • Gemäß einem weiteren Aspekt der Erfindung umfasst ein Verfahren zum Durchführen einer mehrstufigen Ablaufprotokollierung die Schritte des Empfangens von Ablaufprotokoll-Rohdaten von einem Computersystem, das Aufteilen der Ablaufprotokoll-Rohdaten in Ablaufprotokollinformationen mit hoher Bandbreite (HBTI) und Ablaufprotokollinformationen mit niedriger Bandbreite (LBTI), das Aufzeichnen der HBTI in einem Ablaufprotokollierungspuffer auf dem Chip, bis ein spezielles Ereignis ausgelöst wird, und das parallele ständige Bereitstellen der LBTI über eine Tool-Schnittstelle außerhalb des Chips. Bei einer Ausführungsform werden die Ablaufprotokoll-Rohdaten gesonderten Ablaufprotokollierungseinheiten für HBTI und LBTI bereitgestellt. Eine HBTI-Nachricht wird von der HBTI-Ablaufprotokollierungseinheit generiert, und die HBTI-Nachricht wird einem HBTI-Nachrichtenpacker und dann weiter dem Ablaufprotokollierungspuffer auf dem Chip bereitgestellt. Eine LBTI-Nachricht wird von der LBTI-Ablaufprotokollierungseinheit generiert, und die LBTI-Nachricht wird einem LBTI-Nachrichtenpacker und dann weiter einer Ablaufprotokollierungsschnittstelle außerhalb des Chips bereitgestellt. Bei einer weiteren Ausführungsform werden die Ablaufprotokoll-Rohdaten einer einzelnen Ablaufprotokollierungseinheit bereitgestellt, wobei für die HBTI eine HBTI-Nachricht generiert wird und für eine LBTI eine LBTI-Nachricht generiert wird. Die HBTI-Nachricht und die LBTI-Nachricht werden dann getrennt einem HBTI- bzw. einem LBTI-Nachrichtenpacker bereitgestellt.
  • Gemäß einem Aspekt wird ein System bereitgestellt zum Aufteilen von von einer Vielzahl von CPUs und/oder Bussen ausgegebenen Ablaufprotokolldaten, wobei das System Folgendes aufweist:
    einen Pfad für Ablaufprotokollinformationen mit niedriger Bandbreite (LBTI) zum Empfangen und Verarbeiten von Ablaufprotokollinformationen mit niedriger Bandbreite von der Vielzahl von CPUs und/oder Bussen;
    einen Pfad für Ablaufprotokollinformationen mit hoher Bandbreite (HBTI) zum Empfangen und Verarbeiten von Ablaufprotokollinformationen mit hoher Bandbreite von der Vielzahl von CPUs und/oder Bussen;
    einen Ablaufprotokollierungspuffer auf dem Chip zum Aufzeichnen der Ablaufprotokollinformationen mit hoher Bandbreite, bis ein spezifischer Ereignis-Trigger auftritt; und
    eine Ablaufprotokollierungsschnittstelle außerhalb des Chips zum parallelen Empfangen und Ausgeben der Ablaufprotokollinformationen mit niedriger Bandbreite.
  • Vorteilhaft weist das System des Weiteren Folgendes auf:
    eine HBTI-Ablaufprotokollierungseinheit zum Verarbeiten der Ablaufprotokollinformationen mit hoher Bandbreite und zum Generieren einer HBTI-Nachricht;
    eine LBTI-Ablaufprotokollierungseinheit zum Verarbeiten der Ablaufprotokollinformationen mit niedriger Bandbreite und zum Generieren einer LBTI-Nachricht; und
    einen mit der Vielzahl von CPUs und/oder Bussen gekoppelten Replikator zum Empfangen von Ablaufprotokoll-Rohdaten von den CPUs und/oder Bussen und zum Bereitstellen der Ablaufprotokoll-Rohdaten an die HBTI-Ablaufprotokollierungseinheit und an die LBTI-Ablaufprotokollierungseinheit.
  • Vorteilhaft weist das System des Weiteren Folgendes auf:
    einen mit der HBTI-Ablaufprotokollierungseinheit gekoppelten HBTI-Nachrichtenpacker zum Empfangen und Packen der Ablaufprotokollinformationen mit hoher Bandbreite und zum Weiterleiten derselben an den Ablaufprotokollierungspuffer auf dem Chip.
  • Vorteilhaft weist das System des Weiteren Folgendes auf:
    einen mit der LBTI-Ablaufprotokollierungseinheit gekoppelten LBTI-Nachrichtenpacker zum Empfangen und Packen der Ablaufprotokollinformationen mit niedriger Bandbreite und zum Weiterleiten derselben an die Ablaufprotokollierungsschnittstelle außerhalb des Chips.
  • Vorteilhaft weist das System des Weiteren Folgendes auf:
    eine Ablaufprotokollierungseinheit zum Empfangen von Ablaufprotokoll-Rohdaten von den CPUs und/oder Bussen und zum Weiterleiten der Ablaufprotokollinformationen mit hoher Bandbreite an einen HBTI-Nachrichtenpacker und zum Weiterleiten der Ablaufprotokollinformationen mit niedriger Bandbreite an einen LBTI-Nachrichtenpacker;
    wobei der HBTI-Nachrichtenpacker die Ablaufprotokollinformationen mit hoher Bandbreite an den Ablaufprotokollierungspuffer auf dem Chip weiterleitet und der LBTI-Nachrichtenpacker die Ablaufprotokollinformationen mit niedriger Bandbreite an die Ablaufprotokollierungsschnittstelle außerhalb des Chips weiterleitet.
  • Vorteilhaft weist die Ablaufprotokollierungseinheit des Weiteren einen Nachrichtengenerator zum Generieren einer HBTI-Nachricht und/oder einer LBTI-Nachricht auf.
  • Vorteilhaft stellt die LBTI eine Untermenge der HBTI dar.
  • Vorteilhaft umfassen die Ablaufprotokollinformationen mit niedriger Bandbreite Ablaufprotokollinformationen einer hohen Ebene mit niedriger Bandbreite.
  • Vorteilhaft umfassen die Ablaufprotokollinformationen mit hoher Bandbreite Ablaufprotokollinformationen einer niedrigen Ebene mit hoher Bandbreite.
  • Vorteilhaft umfassen die Ablaufprotokollinformationen einer hohen Ebene mit niedriger Bandbreite die bei Task-Wechseln als Datenablaufprotokollierung aufgezeichneten Task-IDs.
  • Vorteilhaft umfassen die Ablaufprotokollinformationen einer niedrigen Ebene mit hoher Bandbreite den vollständigen Programmablauf und alle Datenzugriffe der CPU.
  • Gemäß einem Aspekt wird ein Verfahren bereitgestellt zum Aufteilen von Ablaufprotokolldaten von einer Vielzahl von CPUs und/oder Bussen, wobei das Verfahren die folgenden Schritte umfasst:
    Empfangen von Ablaufprotokoll-Rohdaten von den CPUs und/oder Bussen;
    Aufteilen der Ablaufprotokoll-Rohdaten in Ablaufprotokollinformationen mit hoher Bandbreite (HBTI) und Ablaufprotokollinformationen mit niedriger Bandbreite (LBTI);
    Aufzeichnen der Ablaufprotokollinformationen mit hoher Bandbreite auf einem Ablaufprotokollierungspuffer auf dem Chip, bis ein spezifisches Ereignis ausgelöst wird; und
    paralleles Ausgeben der Ablaufprotokollinformationen mit niedriger Bandbreite über eine Ablaufprotokollierungsschnittstelle außerhalb des Chips.
  • Vorteilhaft umfasst das Verfahren des Weiteren die Schritte des Bereitstellens der Ablaufprotokoll-Rohdaten an eine HBTI-Ablaufprotokollierungseinheit und an eine LBTI-Ablaufprotokollierungseinheit und das Generieren einer HBTI-Nachricht in der HBTI-Ablaufprotokollierungseinheit und das Generieren einer LBTI-Nachricht in der LBTI-Ablaufprotokollierungseinheit.
  • Vorteilhaft umfasst das Verfahren des Weiteren die Schritte:
    Bereitstellen der HBTI aus der HBTI-Ablaufprotokollierungseinheit an einen HBTI-Nachrichtenpacker;
    Bereitstellen der gepackten HBTI an den Ablaufprotokollierungspuffer auf dem Chip;
    Bereitstellen der LBTI aus der LBTI-Ablaufprotokollierungseinheit an einen LBTI-Nachrichtenpacker; und
    Bereitstellen der gepackten LBTI an eine Ablaufprotokollierungsschnittstelle außerhalb des Chips.
  • Vorteilhaft werden die Ablaufprotokoll-Rohdaten einer einzelnen Ablaufprotokollierungseinheit bereitgestellt.
  • Vorteilhaft umfasst das Verfahren des Weiteren die Schritte:
    Generieren einer HBTI-Nachricht und einer LBTI-Nachricht;
    Bereitstellen der HBTI-Nachricht an einen HBTI-Nachrichtenpacker;
    Bereitstellen der LBTI-Nachricht an einen LBTI-Nachrichtenpacker;
    Bereitstellen der gepackten HBTI an den Ablaufprotokollierungspuffer auf dem Chip; und
    paralleles Bereitstellen der gepackten LBTI an eine Ablaufprotokollierungsschnittstelle außerhalb des Chips.
  • Vorteilhaft stellen die LBTI eine Teilmenge der HBTI dar.
  • Vorteilhaft umfassen die Ablaufprotokollinformationen mit niedriger Bandbreite Ablaufprotokollinformationen einer hohen Ebene mit niedriger Bandbreite.
  • Vorteilhaft umfassen die Ablaufprotokollinformationen mit hoher Bandbreite Ablaufprotokollinformationen einer niedrigen Ebene mit hoher Bandbreite.
  • Vorteilhaft umfassen die Ablaufprotokollinformationen einer hohen Ebene mit niedriger Bandbreite die bei Task-Wechseln als Datenablaufprotokollierung aufgezeichneten Task-IDs.
  • Vorteilhaft umfassen die Ablaufprotokollinformationen einer niedrigen Ebene mit hoher Bandbreite den vollständigen Programmablauf und alle Datenzugriffe der CPU.
  • Gemäß einem Aspekt wird ein System bereitgestellt zum Aufteilen von von einer Vielzahl von CPUs und/oder Bussen ausgegebenen Ablaufprotokoll-Rohdaten, wobei das System Folgendes aufweist:
    eine Ablaufprotokollierungseinheit für Ablaufprotokollinformationen mit niedriger Bandbreite (LBTI) zum Verarbeiten von Ablaufprotokollinformationen mit niedriger Bandbreite;
    eine Ablaufprotokollierungseinheit für Ablaufprotokollinformationen mit hoher Bandbreite (HBTI) zum Verarbeiten von Ablaufprotokollinformationen mit hoher Bandbreite; und
    einen mit der Vielzahl von CPUs gekoppelten Replikator zum Empfangen von Ablaufprotokoll-Rohdaten von den CPUs und/oder Bussen und zum Bereitstellen der Ablaufprotokoll-Rohdaten an die LBTI-Ablaufprotokollierungseinheit und an die HBTI-Ablaufprotokollierungseinheit;
    einen Ablaufprotokollierungspuffer auf dem Chip zum Aufzeichnen der HBTI, bis ein spezifischer Ereignis-Trigger auftritt; und
    eine Ablaufprotokollierungsschnittstelle außerhalb des Chips zum parallelen Empfangen und Ausgeben der LBTI.
  • Vorteilhaft teilen die LBTI-Ablaufprotokollierungseinheit und die HBTI-Ablaufprotokollierungseinheit die Ablaufprotokoll-Rohdaten in HBTI und LBTI auf, wobei die LBTI-Ablaufprotokollierungseinheit für die LBTI eine LBTI-Nachricht generiert und die HBTI-Ablaufprotokollierungseinheit für die HBTI eine HBTI-Nachricht generiert.
  • Vorteilhaft weist das System des Weiteren Folgendes auf:
    einen mit der HBTI-Ablaufprotokollierungseinheit gekoppelten HBTI-Nachrichtenpacker zum Packen der Ablaufprotokollinformationen mit hoher Bandbreite und zum Weiterleiten derselben an den Ablaufprotokollierungspuffer auf dem Chip.
  • Vorteilhaft weist das System des Weiteren Folgendes auf:
    einen mit der LBTI-Ablaufprotokollierungseinheit gekoppelten LBTI-Nachrichtenpacker zum Packen der Ablaufprotokollinformationen mit niedriger Bandbreite und zum Weiterleiten derselben an die Ablaufprotokollierungsschnittstelle außerhalb des Chips.
  • Vorteilhaft stellen die LBTI eine Untermenge der HBTI dar.
  • Vorteilhaft umfassen die Ablaufprotokollinformationen mit niedriger Bandbreite Ablaufprotokollinformationen einer hohen Ebene mit niedriger Bandbreite.
  • Vorteilhaft umfassen die Ablaufprotokollinformationen mit hoher Bandbreite Ablaufprotokollinformationen einer niedrigen Ebene mit hoher Bandbreite.
  • Vorteilhaft umfassen die Ablaufprotokollinformationen einer hohen Ebene mit niedriger Bandbreite die bei Task-Wechseln als Datenablaufprotokollierung aufgezeichneten Task-IDs.
  • Vorteilhaft umfassen die Ablaufprotokollinformationen einer niedrigen Ebene mit hoher Bandbreite den vollständigen Programmablauf und alle Datenzugriffe der CPU.
  • Gemäß einem Aspekt wird ein System bereitgestellt zum Aufteilen von von einer Vielzahl von CPUs und/oder Bussen ausgegebenen Ablaufprotokoll-Rohdaten, wobei das System Folgendes aufweist:
    eine Ablaufprotokollierungseinheit zum Empfangen der Ablaufprotokoll-Rohdaten von den CPUs und/oder Bussen und zum Aufteilen der Ablaufprotokoll-Rohdaten in Ablaufprotokollinformationen mit hoher Bandbreite (HBTI) und in Ablaufprotokollinformationen mit niedriger Bandbreite (LBTI);
    einen Ablaufprotokollierungspuffer auf dem Chip zum Empfangen und Aufzeichnen der HBTI von der Ablaufprotokollierungseinheit, bis ein spezifischer Ereignis-Trigger auftritt; und
    eine Ablaufprotokollierungsschnittstelle außerhalb des Chips zum parallelen Empfangen der LBTI von der Ablaufprotokollierungseinheit.
  • Vorteilhaft generiert die Ablaufprotokollierungseinheit eine HBTI-Nachricht für die Ablaufprotokollinformationen mit hoher Bandbreite und eine LBTI-Nachricht für die Ablaufprotokollinformationen mit niedriger Bandbreite.
  • Vorteilhaft weist das System des Weiteren Folgendes auf:
    einen HBTI-Nachrichtenpacker zum Packen der HBTI, bevor sie dem Ablaufprotokollierungspuffer auf dem Chip bereitgestellt werden; und
    einen LBTI-Nachrichtenpacker zum Packen der LBTI, bevor sie der Ablaufprotokollierungsschnittstelle außerhalb des Chips bereitgestellt werden.
  • Vorteilhaft stellt die LBTI eine Untermenge der HBTI dar.
  • Vorteilhaft umfassen die Ablaufprotokollinformationen mit niedriger Bandbreite Ablaufprotokollinformationen einer hohen Ebene mit niedriger Bandbreite.
  • Vorteilhaft umfassen die Ablaufprotokollinformationen mit hoher Bandbreite Ablaufprotokollinformationen einer niedrigen Ebene mit hoher Bandbreite.
  • Vorteilhaft umfassen die Ablaufprotokollinformationen einer hohen Ebene mit niedriger Bandbreite die bei Task-Wechseln als Datenablaufprotokollierung aufgezeichneten Task-IDs.
  • Vorteilhaft umfassen die Ablaufprotokollinformationen einer niedrigen Ebene mit hoher Bandbreite den vollständigen Programmablauf und alle Datenzugriffe der CPU.
  • 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. Andere 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 Schemadiagramm eines herkömmlichen Ablaufprotokollierungssystems.
  • 2 zeigt ein beispielhaftes Schemadiagramm einer Architektur zur mehrstufigen Ablaufprotokollierung gemäß einer Ausführungsform der vorliegenden Erfindung.
  • 3 zeigt ein beispielhaftes Schemadiagramm einer Architektur zur mehrstufigen Ablaufprotokollierung gemäß einer weiteren Ausführungsform der vorliegenden Erfindung.
  • 4 ist ein Ablaufdiagramm, das ein Verfahren zum Durchführen einer mehrstufigen Ablaufprotokollierung gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
  • 5 ist ein Ablaufdiagramm, das ein Verfahren 500 zum Durchführen einer mehrstufigen Ablaufprotokollierung gemäß einer weiteren Ausführungsform der vorliegenden Erfindung zeigt.
  • 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 versteht sich, dass weitere Ausführungsformen verwendet werden können und strukturelle oder andere Änderungen vorgenommen werden können, ohne dass von dem 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 das Software-Debugging von 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 Task-orientierten eingebetteten und nicht eingebetteten Anwendungen zu analysieren, die auf diversen Software-/Hardware-Plattformen ausgeführt werden. Beispielsweise können Task-orientierte 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 umfassen. 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.
  • 2 ist ein Blockdiagramm höherer Ebene, das eine Architektur zur mehrstufigen Ablaufprotokollierung 100 gemäß einer Ausführungsform der vorliegenden Erfindung veranschaulicht. Eine Architektur zur mehrstufigen Ablaufprotokollierung gemäß der vorliegenden Erfindung 100 ist auf einem Mikrochip implementiert und weist eine oder mehrere zentrale Verarbeitungseinheiten (CPUs) 112 mit einem Ablaufprotokollierungsadapter 112a, einen oder mehrere Busse 114 mit einem lokalen Ablaufprotokollierungsadapter 114a, einen mit den CPU-Ablaufprotokollierungsadaptern 112a und den Bus-Ablaufprotokollierungsadaptern 114a gekoppelten Replikator 115, wenigstens zwei zum Empfangen von Eingaben von dem Replikator 115 gekoppelte Ablaufprotokollierungseinheiten 116a und 116b auf. Jede Ablaufprotokollierungseinheit 116a, 116b weist des Weiteren wenigstens einen Nachrichtengenerator 118a, 118b zum Generieren von Ablaufprotokolldaten und einen Nachrichtenpacker 120a, 120b zum Packen der generierten Ablaufprotokolldaten auf. Die Nachrichtenpacker 120a, 120b geben dann die gepackten Ablaufprotokolldaten entweder an einen Ablaufprotokollierungspuffer auf dem Chip 124 oder über eine Ablaufprotokollierungsschnittstelle 126 und Kontaktstifte 128 an einen Ablaufprotokollierungspuffer außerhalb des Chips (nicht gezeigt) aus.
  • Die CPU-Ablaufprotokollierungsadapter 112a und die Bus-Ablaufprotokollierungsadapter 112b sammeln die erforderlichen Ablaufprotokollinformationen aus den Signalen innerhalb der CPU-Konstruktion und konvertieren sie in ein einfacheres und standardisiertes Format mit weniger Signalen. Zum Beispiel können Adressen und Daten aneinander ausgerichtet sein, nur Daten von tatsächlich ausgeführten Anweisungen können ausgegeben werden und/oder Pipelining-Effekte können entfernt werden.
  • Der Replikator 115 ist so gekoppelt, dass er Ablaufprotokoll-Rohdaten von den CPU-Ablaufprotokollierungsadaptern 112a und den Bus-Ablaufprotokollierungsadaptern 114a empfängt und den Ablaufprotokollierungseinheiten 116a und 116b Ausgaben bereitstellt. Der Replikator 115 überträgt Ablaufprotokollinformationen von allen Ablaufprotokollierungsadaptern an die Ablaufprotokollierungseinheiten. Je nach Funktionalität der Ablaufprotokollierungseinheit erhalten beide dieselben Informationen oder unterschiedliche Auswahlen, die jedoch einen großen Teil gemeinsam haben. Wenn nur Informationen, welche die Ablaufprotokollierungseinheit verarbeiten kann, an eine Ablaufprotokollierungseinheit übertragen werden, wird eine aufwändige Verdrahtung unnötig, und es wird somit Chip-Fläche eingespart. Bei einer Ausführungsform können die Architektur des Ablaufprotokollierungsadapters und der Replikator in einer einzelnen Einheit zusammengefasst sein.
  • Die Ablaufprotokollierungseinheiten 116 ermöglichen die Rekonstruktion eines überwachten Programmablaufs und verarbeiten Ablaufprotokolldaten, das heißt Informationen über eine laufende Anwendung, ohne deren Ausführung anzuhalten, und sie können die Ablaufprotokolldaten sequenziell aufzeichnen, das heißt Informationen über ausgeführte Anweisungen können in der Reihenfolge ihrer Ausführung gespeichert werden. Die Ablaufprotokollierungseinheiten 116 können Werte von einem oder mehreren Anweisungszeigerregistern, auch als Programmzähler bekannt, und die Werte von einem oder mehreren Stacks der CPU aufzeichnen, und/oder sie können Daten, auf welche die CPU zugreift und die sie verarbeitet, und/oder den Datenfluss auf dem Systembus oder auf anderen Bussen der CPU oder des Systems 200 aufzeichnen.
  • Die Nachrichtengeneratoren 118 konvertieren die Ablaufprotokollinformationen von der CPU in Ablaufprotokollnachrichten. Sie sind in der Regel besonders gut konfigurierbar und können die Informationen näher bestimmen und komprimieren. Bei einer Datenablaufprotokollierung kann in der Regel konfiguriert werden, dass nur Zugriffe auf einen bestimmten Adressbereich oder bestimmte Adressbereiche zu einer Nachricht führen (genaue Bestimmung mittels Adresse). Einige Architekturen unterstützen zusätzlich eine genaue Bestimmung anhand von Lese- und/oder Schreibzugriffen, der Master-ID des Busses, der Datenbreite und sogar des Datenwerts. Die Ausgabe-Ablaufprotokollnachricht kann nur die Adresse oder auch den Wert enthalten. Es gibt außerdem viele bekannte Optionen für die Protokollierung des Programmablaufs.
  • Die beiden Ablaufprotokollierungseinheiten in 2 können bei einem einfachen Betrieb des Tools ähnlich sein oder zur Verringerung der Chip-Fläche an die Bandbreite des Ausgangspfads angepasst sein. Bei der Schnittstelle außerhalb des Chips braucht es sich nicht zwangsweise um einen Ablaufprotokollierungs-Port zu handeln, bei dem die Daten aktiv von dem Chip ausgegeben werden, wie es beispielsweise typisch für die Nexus-Schnittstelle oder ARM ETM ist. Bei dem FIFO kann es sich auch um einen Ablaufprotokollierungspuffer auf dem Chip handeln, der von dem Tool über eine JTAG-Schnittstelle (Nexus), eine SWD-Schnittstelle von ARM, eine DAP-Schnittstelle von Infineon oder um ähnliche Schnittstellen gelesen wird.
  • Somit sieht die in 2 beschriebene Ausführungsform der vorliegenden Erfindung eine mehrstufige Ablaufprotokollierungsarchitektur 100 vor, die unterschiedliche Bandbreiten für die Ablaufprotokollierung auf dem Chip und außerhalb des Chips erlaubt. Anders ausgedrückt sieht die vorliegende Erfindung vorteilhafterweise für die Ablaufprotokollierungslösung vor, die Ablaufprotokolldaten zu trennen oder aufzuteilen, beispielsweise in Ablaufprotokollinformationen mit hoher Bandbreite (HBTI) und Ablaufprotokollinformationen mit niedriger Bandbreite (LBTI). Beispielsweise kann in dem Fall, bei dem die Ablaufverfolgung für eine einzelne CPU durchgeführt wird, die Ablaufprotokollierungseinheit für den Ablaufprotokollierungspuffer auf dem Chip eine vollständige Protokollierung des Programmablaufs und alle Datenzugriffe mit Adresse und Datenwert ausgeben. Diese Informationen mit hoher Bandbreite werden in dem Umlaufspeicher auf dem Chip aufgezeichnet, bis die Trigger-Bedingung erfüllt ist. Die andere Ablaufprotokollierungseinheit kann die Task-ID ausgeben (bei einem Task-Wechsel schreibt das Betriebssystem die Task-ID als Datenwert in eine spezifische Adresse, und nur diese Adresse wird verfolgt). Diese Ablaufprotokollierung der Task-ID benötigt eine sehr niedrige Bandbreite und kann selbst bei einer vergleichsweise langsamen JTAG-Schnittstelle von einem kleinen FIFO auf dem Chip gelesen werden.
  • Bei einer Ausführungsform kann die Bandbreite der Ablaufprotokollinformationen das wesentliche Unterscheidungsmerkmal zwischen den beiden Informationsströmen sein. Außerdem kann der Unterschied zwischen Ablaufprotokollinformationen mit hoher und mit niedriger Bandbreite konfigurierbar sein und von solchen Faktoren wie der Architektur des Chips und den Protokollen, der Technologie und/oder dem von dem System verwendeten Gehäuse abhängen. Bei einer Ausführungsform kann zum Beispiel die Größenordnung für diese Unterscheidung 10 MByte/s sein, und die niedrige Bandbreite kann 1 MByte/s und darunter betragen, und die hohe Bandbreite kann 100 MByte/s und mehr betragen.
  • In der Regel weisen die Ablaufprotokollinformationen mit hoher Bandbreite Ablaufprotokollinformationen einer niedrigen Ebene auf, wie beispielsweise einen vollständigen Programmablauf und alle Datenzugriffe der CPU, und die Ablaufprotokollinformationen mit niedriger Bandbreite weisen Ablaufprotokollinformationen einer hohen Ebene auf, wie beispielsweise die bei den Task-Wechseln als Datenablaufprotokollierung aufgezeichneten Task-IDs. Bei einer weiteren Ausführungsform kann es sich jedoch bei den Ablaufprotokollinformationen mit niedriger Bandbreite um eine Untermenge der Ablaufprotokollinformationen mit hoher Bandbreite handeln, und somit können die Ablaufprotokollinformationen mit hoher Bandbreite auch die Ablaufprotokollinformationen einer hohen Ebene enthalten. Wenn die Bandbreite begrenzt ist, wird sie somit verwendet, um die interessantesten Informationen zu übertragen, wobei es sich in der Regel, aber nicht zwangsläufig um Ablaufprotokollinformationen einer hohen Ebene handelt. Bei einem weiteren Beispiel kann der Programmablauf innerhalb der Begrenzungen für die niedrige Bandbreite liegen, wenn nur eine sehr kurze Codesequenz verfolgt wird, die in langen Abständen auftritt.
  • 3 zeigt ein beispielhaftes Schemadiagramm einer Architektur zur mehrstufigen Ablaufprotokollierung 200 gemäß einer weiteren Ausführungsform der vorliegenden Erfindung. Eine Architektur zur mehrstufigen Ablaufprotokollierung gemäß einer weiteren Ausführungsform der vorliegenden Erfindung 200 ist auf einem Mikrochip implementiert und weist eine oder mehrere zentrale Verarbeitungseinheiten (CPUs) 212 mit einem Ablaufprotokollierungsadapter 212a, einen oder mehrere Busse 214 mit einem lokalen Ablaufprotokollierungsadapter 214a, eine Ablaufprotokollierungseinheit 216, die des Weiteren wenigstens einen Nachrichtengenerator 218 zum Generieren von Ablaufprotokolldaten aufweist, und wenigstens zwei Nachrichtenpacker 220a, 220b zum Packen der generierten Ablaufprotokolldaten auf. Die Nachrichtenpacker 220a, 220b geben dann die gepackten Ablaufprotokolldaten entweder an einen Ablaufprotokollierungspuffer auf dem Chip 224 oder über eine Ablaufprotokollierungsschnittstelle 226 und Kontaktstifte 228 an einen Ablaufprotokollierungspuffer außerhalb des Chips (nicht gezeigt) aus. Bei einer Ausführungsform gibt der Nachrichtenpacker 220a die gepackten Ablaufprotokolldaten ausschließlich an einen Ablaufprotokollierungspuffer auf dem Chip 124 aus, und der Nachrichtenpacker 220b gibt die gepackten Ablaufprotokolldaten über eine Ablaufprotokollierungsschnittstelle auf dem Chip 226 und Kontaktstifte 228 ausschließlich nach außerhalb des Chips aus.
  • Die Ablaufprotokollierungseinheit 216 ermöglicht die Rekonstruktion eines überwachten Programmablaufs und verarbeitet Ablaufprotokolldaten, das heißt Informationen über eine laufende Anwendung, ohne deren Ausführung anzuhalten, und sie kann die Ablaufprotokolldaten sequenziell aufzeichnen, das heißt Informationen über ausgeführte Anweisungen können in der Reihenfolge ihrer Ausführung gespeichert werden. Die Ablaufprotokollierungseinheit 216 kann Werte von einem oder mehreren Anweisungszeigerregistern, auch als Programmzähler bekannt, und die Werte von einem oder mehreren Stacks der CPU aufzeichnen, und/oder sie kann Daten, auf welche die CPU zugreift und die sie verarbeitet, und/oder den Datenfluss auf dem Systembus oder auf anderen Bussen der CPU oder des Systems 100 aufzeichnen. Die Ablaufprotokollierungseinheit 216 weist des Weiteren ein Nachrichtengeneratormerkmal auf.
  • Die Nachrichtengeneratoren 218 sind dahingehend konfigurierbar, ob eine spezifische Nachricht an einen Nachrichtenpacker, an den anderen Nachrichtenpacker oder an beide ausgegeben wird. Dies kann für den gesamten Nachrichtengenerator und/oder für verschiedene Bestimmungseinheiten innerhalb eines derartigen Nachrichtengenerators konfiguriert werden. Zum Beispiel wird ein Adressbereichskomparator mit großem Bereich für die Ablaufprotokollierung mit hoher Bandbreite auf dem Chip verwendet, und ein zweiter Komparator mit einem kleinen Bereich wird für die Ablaufprotokollierung außerhalb des Chips verwendet. Eine weitere Option besteht darin, den Komparator mit einem kleinen Bereich für beide zu verwenden, aber für die Ablaufprotokollierung mit hoher Bandbreite auf dem Chip ist ein zweiter Komparator vorhanden, der einen zweiten, größeren Adressbereich hinzufügt.
  • Somit sieht die in 3 beschriebene, erfindungsgemäße Ausführungsform eine Architektur zur mehrstufigen Ablaufprotokollierung 200 vor, wobei innerhalb der Teilblöcke der Ablaufprotokollierungseinheit 216 konfiguriert werden kann, ob eine Nachricht entweder an den Ablaufprotokollierungspuffer auf dem Chip 224 oder an den Ablaufprotokollierungspuffer auf dem Chip 226 oder an beide ausgegeben wird. Diese Eigenschaft erlaubt dadurch, dass nur eine Ablaufprotokollierungseinheit anstatt zweien vorhanden ist, erhebliche Einsparungen an Chip-Fläche im Vergleich zu der Ausführungsform in 2. Zur Unterstützung der Ausführungsform in 2 genügt es, dass jeder Nachrichtengenerator lediglich über die beiden Steuerungs-Bits für das Ziel der Ablaufprotokollierungsausgabe verfügt. Der Nachrichtengenerator für die Datenablaufprotokollierung benötigt lediglich einen Komparator mit dieser Fähigkeit. Für die Ablaufprotokollierung auf dem Chip wird keine genaue Bestimmung der Datenadresse verwendet, und für die Ablaufprotokollierung der Task-ID ist der einzelne Komparator ausreichend. Somit besteht der einzige erhebliche Zuschlag an Fläche im Vergleich zu dem herkömmlichen System in 1 in dem zusätzlichen Nachrichtenpacker.
  • Somit unterstützt die vorliegende Erfindung vorteilhafterweise die Beobachtung von Ablaufverfolgungen mit langer Historie für eine oder mehrere CPUs und/oder für einen oder mehrere Busse in einem Computersystem, indem die Aufteilung von Ablaufprotokolldaten in Ablaufprotokollinformationen mit hoher Bandbreite und Ablaufprotokollinformationen mit niedriger Bandbreite vorgesehen wird, ohne die Kosten und die Anzahl der erforderlichen Ablaufprotokollierungseinheiten erheblich zu erhöhen.
  • 4 und 5 zeigen Verfahren zum Durchführen einer mehrstufigen Ablaufprotokollierung. Im Allgemeinen umfasst ein Verfahren zum Durchführen einer mehrstufigen Ablaufprotokollierung die Schritte des Empfangens von Ablaufprotokoll-Rohdaten von einem Computersystem, das Aufteilen der Ablaufprotokoll-Rohdaten in Ablaufprotokollinformationen mit hoher Bandbreite (HBTI) und Ablaufprotokollinformationen mit niedriger Bandbreite (LBTI), das Aufzeichnen der HBTI in einem Ablaufprotokollierungspuffer auf dem Chip, bis ein spezielles Ereignis ausgelöst wird, und das parallele Bereitstellen der LBTI über eine Ablaufprotokollierungs-Tool-Schnittstelle außerhalb des Chips. Bei einer Ausführungsform werden die HBTI und die LBTI gesonderten Ablaufprotokollierungseinheiten für HBTI bzw. LBTI bereitgestellt. Bei einer weiteren Ausführungsform werden die HBTI und die LBTI einer einzelnen Ablaufprotokollierungseinheit bereitgestellt und dann getrennten Nachrichtenpackern für HBTI und LBTI bereitgestellt.
  • Genauer gesagt ist 4 ein Ablaufdiagramm, das ein Verfahren 400 zum Durchführen einer mehrstufigen Ablaufprotokollierung gemäß einer Ausführungsform der vorliegenden Erfindung mit gesonderten Ablaufprotokollierungseinheiten zeigt. Zur Verdeutlichung ist das Verfahren 400 zum Durchführen einer mehrstufigen Ablaufprotokollierung in Zusammenhang mit dem System 200 beschrieben. Bei alternativen Ausführungsformen können jedoch andere Konfigurationen verwendet werden. Außerdem können weitere Ausführungsformen die hier beschriebenen Schritte in anderen Reihenfolgen durchführen, und/oder weitere Ausführungsformen können zusätzliche und/oder andere Schritte als die hier beschriebenen durchführen.
  • Das System der vorliegenden Erfindung empfängt (410) alle Ablaufprotokoll-Rohdaten, die von einer oder mehreren der CPUs und/oder von einem oder mehreren der Busse in dem System benötigt werden. Der Replikator stellt diese Ablaufprotokoll-Rohdaten beiden Pfaden zur Verfügung (420). Die HBTI-Ablaufprotokollierungseinheit konvertiert die Ablaufprotokoll-Rohinformationen in HBTI-Nachrichten (430). Die HBTI-Nachrichten können auch die LBTI aufweisen, was aber nicht erforderlich ist. Die LBTI-Ablaufprotokollierungseinheit generiert (440) aus den Ablaufprotokoll-Rohdaten Nachrichten mit einer viel niedrigeren Bandbreite. Die HBTI werden dann einem HBTI-Nachrichtenpacker bereitgestellt (450) und dann auf einem Ablaufprotokollierungspuffer auf dem Chip aufgezeichnet (460), bis ein spezifischer Trigger auftritt. Die LBTI werden einem LBTI-Nachrichtenpacker bereitgestellt (470) und schließlich einer Ablaufprotokollierungsschnittstelle außerhalb des Chips bereitgestellt (480).
  • 5 ist ein Ablaufdiagramm, das ein Verfahren 500 zum Durchführen einer mehrstufigen Ablaufprotokollierung gemäß einer weiteren Ausführungsform der vorliegenden Erfindung zeigt, welches eine einzelne Ablaufprotokollierungseinheit umfasst. Zur Verdeutlichung ist das Verfahren 500 zum Durchführen einer mehrstufigen Ablaufprotokollierung in Zusammenhang mit dem System 300 beschrieben. Bei alternativen Ausführungsformen können jedoch andere Konfigurationen verwendet werden. Außerdem können weitere Ausführungsformen die hier beschriebenen Schritte in anderen Reihenfolgen durchführen, und/oder weitere Ausführungsformen können zusätzliche und/oder andere Schritte als die hier beschriebenen durchführen.
  • Das Computer-Verarbeitungssystem empfängt (510) Ablaufprotokoll-Rohdaten von einer oder mehreren der CPUs und/oder von einem oder mehreren der Busse in dem System. Die Ablaufprotokoll-Rohdaten werden dann einer einzelnen Ablaufprotokollierungseinheit bereitgestellt (520). Die Ablaufprotokollierungseinheit konvertiert (530) die Ablaufprotokoll-Rohdaten in HBTI- und LBTI-Nachrichten. Die HBTI werden einem HBTI-Nachrichtenpacker bereitgestellt (540) und dann auf einem Ablaufprotokollierungspuffer auf dem Chip aufgezeichnet (560). Die LBTI werden einem LBTI-Nachrichtenpacker bereitgestellt (550) und dann weiter einer Ablaufprotokollierungsschnittstelle außerhalb des Chips bereitgestellt (570). Wie oben erwähnt, können sich die HBTI und die LBTI überschneiden, oder, wie es häufiger der Fall ist, die LBTI können eine Untermenge der HBTI sein. Somit sind die Nachrichtengeneratoren bei einer Ausführungsform der vorliegenden Erfindung konfigurierbar und können eine HBTI-Nachricht, eine LBTI-Nachricht oder beides generieren, die dann an einen oder beide Nachrichtenpacker gesendet wird bzw. werden. Zum Beispiel kann ein Adressbereichskomparator mit großem Bereich für die Ablaufprotokollierung mit hoher Bandbreite auf dem Chip verwendet werden, und ein zweiter Komparator mit einem kleinen Bereich kann für die Ablaufprotokollierung außerhalb des Chips verwendet werden. Bei einer weiteren Ausführungsform kann ein Komparator mit einem kleinen Bereich für beide verwendet werden, aber für die Ablaufprotokollierung mit hoher Bandbreite auf dem Chip kann ein zweiter Komparator verwendet werden, der einen zweiten, größeren Adressbereich hinzufügt.
  • 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 von dem 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 Aufteilen von von einer Vielzahl von CPUs und/oder Bussen ausgegebenen Ablaufprotokolldaten, wobei das System Folgendes aufweist: einen Pfad für Ablaufprotokollinformationen mit niedriger Bandbreite (LBTI) zum Empfangen und Verarbeiten von Ablaufprotokollinformationen mit niedriger Bandbreite von der Vielzahl von CPUs und/oder Bussen; einen Pfad für Ablaufprotokollinformationen mit hoher Bandbreite (HBTI) zum Empfangen und Verarbeiten von Ablaufprotokollinformationen mit hoher Bandbreite von der Vielzahl von CPUs und/oder Bussen; einen Ablaufprotokollierungspuffer auf dem Chip zum Aufzeichnen der Ablaufprotokollinformationen mit hoher Bandbreite, bis ein spezifischer Ereignis-Trigger auftritt; und eine Ablaufprotokollierungsschnittstelle außerhalb des Chips zum parallelen Empfangen und Ausgeben der Ablaufprotokollinformationen mit niedriger Bandbreite.
  2. System nach Anspruch 1, das des Weiteren Folgendes aufweist: eine HBTI-Ablaufprotokollierungseinheit zum Verarbeiten der Ablaufprotokollinformationen mit hoher Bandbreite und zum Generieren einer HBTI-Nachricht; eine LBTI-Ablaufprotokollierungseinheit zum Verarbeiten der Ablaufprotokollinformationen mit niedriger Bandbreite und zum Generieren einer LBTI-Nachricht; und einen mit der Vielzahl von CPUs und/oder Bussen gekoppelten Replikator zum Empfangen von Ablaufprotokoll-Rohdaten von den CPUs und/oder Bussen und zum Bereitstellen der Ablaufprotokoll-Rohdaten an die HBTI-Ablaufprotokollierungseinheit und an die LBTI-Ablaufprotokollierungseinheit.
  3. System nach Anspruch 2, das des Weiteren Folgendes aufweist: einen mit der HBTI-Ablaufprotokollierungseinheit gekoppelten HBTI-Nachrichtenpacker zum Empfangen und Packen der Ablaufprotokollinformationen mit hoher Bandbreite und zum Weiterleiten derselben an den Ablaufprotokollierungspuffer auf dem Chip.
  4. System nach Anspruch 2, das des Weiteren Folgendes aufweist: einen mit der LBTI-Ablaufprotokollierungseinheit gekoppelten LBTI-Nachrichtenpacker zum Empfangen und Packen der Ablaufprotokollinformationen mit niedriger Bandbreite und zum Weiterleiten derselben an die Ablaufprotokollierungsschnittstelle außerhalb des Chips.
  5. System nach Anspruch 1, das des Weiteren Folgendes aufweist: eine Ablaufprotokollierungseinheit zum Empfangen von Ablaufprotokoll-Rohdaten von den CPUs und/oder Bussen und zum Weiterleiten der Ablaufprotokollinformationen mit hoher Bandbreite an einen HBTI-Nachrichtenpacker und zum Weiterleiten der Ablaufprotokollinformationen mit niedriger Bandbreite an einen LBTI-Nachrichtenpacker; wobei der HBTI-Nachrichtenpacker die Ablaufprotokollinformationen mit hoher Bandbreite an den Ablaufprotokollierungspuffer auf dem Chip weiterleitet und der LBTI-Nachrichtenpacker die Ablaufprotokollinformationen mit niedriger Bandbreite an die Ablaufprotokollierungsschnittstelle außerhalb des Chips weiterleitet.
  6. System nach Anspruch 5, wobei die Ablaufprotokollierungseinheit des Weiteren einen Nachrichtengenerator zum Generieren einer HBTI-Nachricht und/oder einer LBTI-Nachricht aufweist.
  7. System nach Anspruch 1, wobei die LBTI eine Untermenge der HBTI darstellen.
  8. Verfahren zum Aufteilen von Ablaufprotokolldaten von einer Vielzahl von CPUs und/oder Bussen, wobei das Verfahren die folgenden Schritte umfasst: Empfangen von Ablaufprotokoll-Rohdaten von den CPUs und/oder Bussen; Aufteilen der Ablaufprotokoll-Rohdaten in Ablaufprotokollinformationen mit hoher Bandbreite (HBTI) und Ablaufprotokollinformationen mit niedriger Bandbreite (LBTI); Aufzeichnen der Ablaufprotokollinformationen mit hoher Bandbreite auf einem Ablaufprotokollierungspuffer auf dem Chip, bis ein spezifisches Ereignis ausgelöst wird; und paralleles Ausgeben der Ablaufprotokollinformationen mit niedriger Bandbreite über eine Ablaufprotokollierungsschnittstelle außerhalb des Chips.
  9. System zum Aufteilen von von einer Vielzahl von CPUs und/oder Bussen ausgegebenen Ablaufprotokoll-Rohdaten, wobei das System Folgendes aufweist: eine Ablaufprotokollierungseinheit für Ablaufprotokollinformationen mit niedriger Bandbreite (LBTI) zum Verarbeiten von Ablaufprotokollinformationen mit niedriger Bandbreite; eine Ablaufprotokollierungseinheit für Ablaufprotokollinformationen mit hoher Bandbreite (HBTI) zum Verarbeiten von Ablaufprotokollinformationen mit hoher Bandbreite; und einen mit der Vielzahl von CPUs gekoppelten Replikator zum Empfangen von Ablaufprotokoll-Rohdaten von den CPUs und/oder Bussen und zum Bereitstellen der Ablaufprotokoll-Rohdaten an die LBTI-Ablaufprotokollierungseinheit und an die HBTI-Ablaufprotokollierungseinheit; einen Ablaufprotokollierungspuffer auf dem Chip zum Aufzeichnen der HBTI, bis ein spezifischer Ereignis-Trigger auftritt; und eine Ablaufprotokollierungsschnittstelle außerhalb des Chips zum parallelen Empfangen und Ausgeben der LBTI.
  10. System zum Aufteilen von von einer Vielzahl von CPUs und/oder Bussen ausgegebenen Ablaufprotokoll-Rohdaten, wobei das System Folgendes aufweist: eine Ablaufprotokollierungseinheit zum Empfangen der Ablaufprotokoll-Rohdaten von den CPUs und/oder Bussen und zum Aufteilen der Ablaufprotokoll-Rohdaten in Ablaufprotokollinformationen mit hoher Bandbreite (HBTI) und in Ablaufprotokollinformationen mit niedriger Bandbreite (LBTI); einen Ablaufprotokollierungspuffer auf dem Chip zum Empfangen und Aufzeichnen der HBTI von der Ablaufprotokollierungseinheit, bis ein spezifischer Ereignis-Trigger auftritt; und eine Ablaufprotokollierungsschnittstelle außerhalb des Chips zum parallelen Empfangen der LBTI von der Ablaufprotokollierungseinheit.
DE102013022137.4A 2012-12-27 2013-12-27 Mehrstufige Ablaufprotokollierung Pending DE102013022137A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201261746390P 2012-12-27 2012-12-27
US61/746,390 2012-12-27
US13/762,660 US9164868B2 (en) 2012-12-27 2013-02-08 Multi-tier trace
US13/762,660 2013-02-08

Publications (1)

Publication Number Publication Date
DE102013022137A1 true DE102013022137A1 (de) 2014-07-03

Family

ID=50928535

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013022137.4A Pending DE102013022137A1 (de) 2012-12-27 2013-12-27 Mehrstufige Ablaufprotokollierung

Country Status (3)

Country Link
US (1) US9164868B2 (de)
CN (1) CN103902426B (de)
DE (1) DE102013022137A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140359374A1 (en) * 2013-06-03 2014-12-04 Qualcomm Incorporated System and method for managing trace data in a portable computing device
US9547038B2 (en) * 2015-01-09 2017-01-17 Samsung Electronics Co., Ltd. Low-overhead debug architecture using a speculative, concurrent and distributed data capture and propagation scheme
US10990493B2 (en) * 2017-06-26 2021-04-27 Fuji Corporation Substrate-related operation machine control device

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060277435A1 (en) * 2005-06-07 2006-12-07 Pedersen Frode M Mechanism for storing and extracting trace information using internal memory in microcontrollers
CN101751327B (zh) * 2008-12-04 2012-04-18 北京中电华大电子设计有限责任公司 嵌入式处理器的跟踪调试方法
US20120036501A1 (en) * 2010-08-03 2012-02-09 Tomas Evensen Method and System for Capturing System and User Events Using Hardware Trace Devices
US20120042212A1 (en) * 2010-08-10 2012-02-16 Gilbert Laurenti Mixed Mode Processor Tracing
US8825922B2 (en) * 2011-04-18 2014-09-02 Infineon Technologies Ag Arrangement for processing trace data information, integrated circuits and a method for processing trace data information
CN102207913B (zh) * 2011-06-09 2019-05-31 中兴通讯股份有限公司 嵌入式***中写保护的控制方法和装置

Also Published As

Publication number Publication date
CN103902426A (zh) 2014-07-02
US9164868B2 (en) 2015-10-20
CN103902426B (zh) 2017-04-12
US20140189437A1 (en) 2014-07-03

Similar Documents

Publication Publication Date Title
DE202017106613U1 (de) Verfolgung verteilter Hardware
DE102018113625A1 (de) Fehlerinjektionstestvorrichtung und -verfahren
DE60002908T2 (de) Vorrichtung und verfahren zur verbesserten fehlerortung und diagnose in rechnern
DE112012005320T5 (de) Multicore-Prozessor mit intern integriertem entscheidungsbasierten Selbsttest
EP2962205B1 (de) Mehrkern-prozessorsystem mit fehleranalysefunktion
EP1720100A1 (de) Verfahren und Vorrichtung zur Emulation einer programmierbaren Einheit
EP0104635A2 (de) Verfahren und Anordnung zum Prüfen eines digitalen Rechners
DE102013015936A1 (de) Architektur zur ablaufprotokollbasierten Messung
DE102006041444B4 (de) Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem
DE102012224276B4 (de) Verzögerte Ausführung auf mehreren Prozessoren
DE102013022137A1 (de) Mehrstufige Ablaufprotokollierung
DE112011100168B4 (de) Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung
EP1246033A1 (de) Verfahren zur Überwachung konsistenter Speicherinhalte in redundanten Systemen
DE102009004726A1 (de) Systeme und Verfahren zum Verfolgen von Befehlszeigern und Datenzugriffen
WO2004049159A2 (de) Einrichtung und verfahren zur analyse von eingebetteten systemen
DE102011011333B4 (de) Lesen in Peripheriegeräte und schreiben aus Peripheriegeräten mit zeitlich getrennter, redundanter Prozessorausführung
AT505630B1 (de) Einrichtung zum koordinierten testen und zur fehlersuche in verteilten eingebetteten mikroprozessorsystemen
DE10132313A1 (de) Programmgesteuerte Einheit
DE60212455T2 (de) System und verfahren zum takten eines ip-core während einer fehlersuchoperation
DE10119265A1 (de) Programmgesteuerte Einheit
EP1224547B1 (de) Integrierter elektronischer baustein mit duplizierter kernlogik und hardware-fehlereinspeisung für prüfzwecke
EP1917596A1 (de) Verfahren und vorrichtung zur analyse von abläufen in einem rechnersystem mit mehreren ausführungseinheiten
DE102005037236A1 (de) Vorrichtung und Verfahren zur Konfiguration einer Halbleiterschaltung
DE19544723C2 (de) Prozessor-Analysesystem
EP2634700A1 (de) Verfahren und Entwicklungsumgebung zur Überwachung eines ablaufenden Programms

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

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

R016 Response to examination communication