-
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.