-
Technischer Bereich
-
Die vorliegende Offenbarung bezieht sich allgemein auf Elektronik, insbesondere auf Steuereinheiten.
-
Hintergrund
-
Mikrocontroller können zur Steuerung von anderen Geräten verwendet werden. Geräte, die durch Mikrocontroller gesteuert werden können, beinhalten Analog-Digital-Wandler, Digital-Analog-Wandler, Ein- und Ausgabeanschlüsse, DMA-Controller, Coprozessoren und Speicher.
-
Die Geräte, die durch einen Mikrocontroller gesteuert werden, können Informationen in Form eines Signalisierungsereignisses senden und empfangen. Signalisierungsereignisse können verwendet werden, um den Mikrocontroller und/oder die anderen Geräte über Ereignisse zu informieren, wie z. B. eine Zustandsänderung eines bestimmten Gerätes. Ein Gerät kann auf ein Signalisierungsereignis, das von einem anderen Gerät empfangen wir, reagieren oder der Mikrocontroller kann eine entsprechende Aktion ausführen.
-
Eine Erhöhung der Zahl der Geräte in einem System kann die Zahl der auftretenden Signalisierungsereignisse erhöhen. In manchen Architekturen kann ein Ereignissystem zur Verfügung gestellt werden, dass Multiplexer beinhaltet, die Signalisierungsereignisse zwischen den Geräten und dem Mikrocontroller weiterleiten oder routen.
-
In einem Aspekt beinhaltet ein Steuersystem ein Ereignissubsystem, das Signalisierungsereignisse empfängt, die von einem oder von mehreren zugehörigen Peripheriegeräten erzeugt werden; und ein Verfolgungsmodul, das mit dem Ereignissubsystem gekoppelt ist. Das Verfolgungsmodul empfängt die Signalisierungsereignisse, tastet die empfangenen Signalisierungsereignisse ab, empfängt Zeitstempel, erzeugt Ereignisverfolgungsaufzeichnungen, wobei jede Ereignisverfolgungsaufzeichnung ein abgetastetes Signalisierungsereignis und einen jeweiligen Zeitstempel beinhaltet, der die Abtastzeit angibt, erzeugt Speicherbefehle und liefert die Ereignisverfolgungsaufzeichnungen und die Speicherbefehle als Ausgaben.
-
In einem anderen Aspekt beinhaltet ein Verfahren das Empfangen von Signalisierungsereignissen für ein oder mehrere Peripheriegeräte; Empfangen von Zeitstempeln, die einer Ereigniszeit für ein gegebenes Signalisierungsereignis entsprechend; Abtasten der empfangenen Signalisierungsereignisse, inklusive Identifizieren von einem oder mehreren unmaskierten Signalisierungsereignissen; Empfangen von Zeitstempeln, die einer Abtastzeit für das eine oder die mehreren unmaskierten Signalisierungsereignisse entsprechen; Erzeugen von Ereignisverfolgungsaufzeichnungen, wobei jede Ereignisverfolgungsaufzeichnung ein abgetastetes unmaskiertes Signalisierungsereignis und einen entsprechenden Zeitstempel enthält, der die Abtastzeit angibt; Erzeugen von Speicherbefehlen als Reaktion auf Änderungen der unmaskierten Signalisierungsereignisse; und Speichern einer Ereignisverfolgungsaufzeichnung als Reaktion auf einen Speicherbefehl in einem externen Gerät.
-
Implementierungen können ein oder mehrere der folgenden Merkmale enthalten. Das Verfolgungsmodul kann ein Auffangmodul, das die empfangenen Signalisierungsereignisse abtastet, ein Kombinationsmodul, das die abgetasteten Signalisierungsereignisse und die jeweiligen Zeitstempel kombiniert und eine Ereignisverfolgungsaufzeichnung erzeugt, und ein Maskierungsmodul enthalten, das Maskierungsdaten empfängt, wobei die Maskierungsdaten Null oder mehr Signalisierungsereignisse identifizieren, die empfangenen Signalisierungsereignisse mit den Maskierungsdaten vergleicht und unmaskierte Signalisierungsereignisse als die abgetasteten Signalisierungsereignisse bestimmt, die nicht mit den durch die Maskierungsdaten identifizierten Signalisierungsereignissen übereinstimmen. Das Verfolgungsmodul kann ein Detektionsmodul enthalten, das Änderungen an den unmaskierten Signalisierungsereignissen detektiert und abhängig davon Speicherbefehle erzeugt, um das Speichern der Ereignisverfolgungsaufzeichnungen zu ermöglichen.
-
Das Steuersystem kann ein Speichermodul zur Speicherung von einer oder mehreren Ereignisverfolgungsaufzeichnungen als Reaktion auf den Empfang entsprechender Speicherbefehle enthalten, wobei das Speichermodul ein Überlaufsignal zur Verfügung stellt, um ein oder mehrere Überlaufbits einer gegenwärtigen Ereignisverfolgungsaufzeichnung nach erfolgloser Speicherung einer vorherigen Ereignisverfolgungsaufzeichnung oder nach erfolgreicher Speicherung der vorherigen Ereignisverfolgungsaufzeichnung zu setzen und zu löschen.
-
Eine Änderung eines unmaskierten Signalisierungsereignisses beinhaltet ein Setzen oder Zurücksetzen des unmaskierten Signalisierungsereignisses. Das Erzeugen des Speicherbefehls kann als Reaktion auf eine Änderung eines einzigen unmaskierten Signalisierungsereignisses oder als Reaktion auf eine Änderung einer Kombination von unmaskierten Signalisierungsereignissen erfolgen. Das Steuersystem kann Bestandteil einer integrierten Schaltung sein, die in einem Chip enthalten ist. Das Steuersystem kann einen oder mehrere Multiplexer enthalten, und die Multiplexer können die Signalisierungsereignisse in Ereigniskanälen leiten.
-
Das Steuersystem kann mit einem oder mit mehreren Geräten zum Speichern und/oder Betrachten der Ereignisverfolgungsaufzeichnungen gekoppelt sein. Die Geräte können einen dezidierten Ereignisverfolgungspuffer, einen dezidierten physikalischen Verfolgungsanschluss, einen bestehenden Verfolgungsanschluss, wobei der bestehende Verfolgungsanschluss dazu eingerichtete ist, geteilt zu werden, oder einen Onboard-Speicherdirektzugriffskanal enthalten, der mit einem statischen Onboard-RAM gekoppelt ist..
-
Die Identifizierung von einem oder von mehreren Signalisierungsereignissen kann das Empfangen von Maskierungsdaten, die Null oder mehrere Signalisierungsereignisse identifizieren, das Vergleichen der abgetasteten Signalisierungsereignisse mit den Maskierungsdaten und das Bestimmen von Maskierungsdaten als die abgetasteten Signalisierungsereignisse beinhalten, die nicht mit den durch die Maskierungsdaten identifizierten Signalisierungsereignissen übereinstimmen.
-
Das Erzeugen einer Ereignisverfolgungsaufzeichnung kann das Empfangen eines Überlaufsignals, wobei das Überlaufsignal den Erfolg oder Nicht-Erfolg eines vorherigen Speicherbefehls zum Speichern einer Ereignisverfolgungsaufzeichnung angibt, und das Modifizieren eines Überlaufbits einer gegenwärtigen Ereignisverfolgungsaufzeichnung gemäß dem empfangenen Überlaufsignal beinhalten, wobei das Überlaufbit gesetzt wird, wenn eine vorherige Ereignisverfolgungsaufzeichnung nicht gespeichert werden konnte. Ein Überlaufbit einer gegenwärtigen Ereignisverfolgungsaufzeichnung kann gelöscht werden, wenn eine vorherige Ereignisverfolgungsaufzeichnung erfolgreich gespeichert wurde.
-
Aspekte der Erfindung können keinen, einen, oder mehrere der folgen Vorteile implementieren. Die vorgeschlagenen Systeme und Verfahren können in Verbindung mit einem Ereignisspeichermodul verwendet werden, um so eine Speicherung der Signalisierungsereignisse zusammen mit einem Zeitstempel zu ermöglichen, der eine entsprechende Zeit des Signalisierungsereignisses angibt.
-
Die Details von einer oder mehreren Implementierungen werden im Folgenden in den beigefügten Zeichnungen und der untenstehenden Beschreibung erläutert. Andere Aspekte, Merkmale und Vorteile ergeben sich aus der Beschreibung, den Zeichnungen und den Ansprüchen.
-
Kurze Beschreibung der Zeichnungen
-
1 ist ein Diagramm eines beispielhaften Controllers.
-
2 ist ein Diagramm eine beispielhaften Verfolgungsmoduls.
-
3 ist ein Flussdiagramm eines beispielhaften Verfahrens zur Speicherung von Ereignisverfolgungsaufzeichnungen.
-
4 ist ein Flussdiagramm eines beispielhaften Verfahrens zur Bestimmung unmaskierter Ereignisse.
-
5 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Setzen/Löschen eines Überlaufbits.
-
6 ist ein Diagramm eines beispielhaften Ereignissubsystems.
-
Detaillierte Beschreibung
-
Mikrocontroller können zur Steuerung von einem oder mehreren anderen Geräten verwendet werden (die im Folgenden als Peripheriegeräte bezeichnet werden). Peripheriegeräte können Befehle von einem zugehörigen Mikrocontroller in einem Gerät empfangen. Ein Ereignissystem kann in dem Gerät enthalten sein, das eine direkte Kommunikation und Signalisierung von Peripheriegerät zu Peripheriegerät ermöglicht. Das Ereignissystem kann verwendet werden, um Zustandsänderungen in einem Peripheriegerät an ein oder mehrere andere Peripheriegeräte zu übertragen, um so automatisch Aktionen in den anderen Peripheriegeräten auszulösen. Das Ereignissystem kann eine autonome Steuerung und Interaktion der Peripheriegeräte ohne die Verwendung von Ressourcen, wie z. B. einer System-CPU (die Interrupts erzeugt) oder eines DMA-Controllers, ermöglichen, und somit die Komplexität, Größe und Ausführungszeit eines auf dem Mikrocontroller laufenden Programms verringern. Signalisierungsereignisse können direkt an andere Peripheriegeräte unter Verwendung eines Ereignisleitnetzwerks übergeben werden. Zusätzlich können Signalisierungsereignisse auch durch ein auf dem Mikrocontroller laufendes Programm erzeugt werden.
-
Bezugnehmend auf 1 wird ein Beispiel eines Controllers 100 gezeigt, der ein Ereignissubsystem 130 enthält, das eine Anzahl von Signalisierungsereignissen empfängt. Das Ereignissubsystem 130 empfängt die Signalisierungsereignisse 120 über verschiedene Eingangsanschlüsse 110 und liefert die Signalisierungsereignisse 120 über die Ereigniskanäle 112 an ein Verfolgungsmodul 150. Das Verfolgungsmodul 150 empfängt über den Eingangsanschluss 114 auch die von dem Controller 100 erzeugten Systemzeitstempel 135. Auf Basis der empfangenen Signalisierungsereignisse 120 und der Zeitstempel 135 erzeugt das Verfolgungsmodul 150 Ereignisverfolgungsaufzeichnungen und Speicherbefehle. Die Ereignisverfolgungsaufzeichnungen und Speicherbefehle werden jeweils über die Ausgangsanschlüsse 115 und 117 an ein Speichermodul 160 geliefert. Das Speichermodul 150 wird untenstehend im Zusammenhang mit 2 beschrieben.
-
Das Speichermodul 160 empfängt die Ereignisverfolgungsaufzeichnungen über den Eingangsanschluss 124 und die Speicherbefehle über den Eingangsanschluss 126. Als Reaktion auf den Empfang eines Speicherbefehls von dem Eingangsanschluss 126 speichert das Speichermodul 160 die entsprechende von dem Eingangsanschluss 124 empfangene Ereignisverfolgungsaufzeichnung. Das Speichermodul 160 speichert eine oder mehrere Ereignisverfolgungsaufzeichnungen 140 und kann die gespeicherten Ereignisverfolgungsaufzeichnungen 140 an dem Ausgangsanschluss 124 zur Verfügung stellen.
-
Das Ereignissubsystem 130 empfängt die Signalisierungsereignisse 120 von Peripheriegeräten und verteilt die Signalisierungsereignisse über Ereigniskanäle unter den Peripheriegeräten. Ein Beispiel eine Ereignissubsystem 130 wird in Verbindung mit 6 beschrieben. Das Ereignissubsystem 130 kann Multiplexer verwenden, um Ereignissignale zu Ereignisverbrauchern zu leiten oder zu routen, die von den Ereignisquellen empfangen werden. Die von den Ereigniskonsumenten (den die Ereignisse überwachenden Geräten) empfangenen Signalisierungsereignisse können eine oder mehrere entsprechende Aktionen auslösen. In dem Ereignissubsystem 130 kann es eine Weiterleitungsverzögerung geben, die eine Verzögerung zwischen der Erzeugung/dem Empfang eines Signalisierungsereignisses und dem Zeitpunkt, zu dem die Ereignisaktion in anderen Peripheriegeräten ausgelöst wird, angibt.
-
In manchen Implementierungen kann das Speichermodul 160 in der Form eines dezidierten Ereignisverfolgungspuffers zur Speicherung der Ereignisverfolgungsaufzeichnungen vorliegen. In manchen Implementierungen kann das Speichermodul 160 mit einem dezidierten physikalischen Verfolgungsanschluss gekoppelt sein oder kann mit einem bestehenden Verfolgungsanschluss gekoppelt sein, der dazu konfiguriert ist, zur Speicherung der Ereignisverfolgungsaufzeichnungen geteilt zu werden. In manchen Implementierungen kann das Speichermodul 160 mit einem Onboard-Direktzugriffspeicherkanal verbunden sein, der mit einem Onboard-SRAM (static random access memory) zur Speicherung der Ereignisverfolgungsaufzeichnungen gekoppelt ist. In manchen Implementierungen kann das Speichermodul 160 mit einem externen Puffer gekoppelt sein, der einen Ethernet-Anschluss oder einen USB-Anschluss (universal serial bus) verwendet.
-
In manchen Implementierungen kann das Speichermodul 160 ein Überlaufsignal 145 über den Ausgangsanschluss 122 des Speichermoduls 160 an den Eingangsanschluss 118 des Verfolgungsmodul 150 liefern. Das Überlaufsignal 145 kann durch das Speichermodul 160 verwendet werden, um dem Verfolgungsmodul 150 anzuzeigen, dass das Speichermodul 160 die letzte Speicheranweisung erfolgreich/nicht erfolgreich ausgeführt hat, und dass eine Ereignisverfolgungsaufzeichnung, die mit der neuester Speicheranweisung verknüpft war, gespeichert/nicht gespeichert wurde. Zum Beispiel kann ein Spannungswert für das Überlaufsignal 145 verwendet werden, wobei ein hoher Spannungswert einen Erfolg und ein niedriger Spannungswert einen Misserfolg angeben kann, oder umgekehrt.
-
In manchen Implementierungen kann die Steuereinheit 100 als integrierte Schaltung auf einem Mikrocontroller-Chip implementiert sein und die Systemzeitstempel können auf einem Systemtakt auf dem Chip basieren. In manchen Implementierungen können die am Ausgang 128 des Speichermoduls 160 erzeugten Ereignisverfolgungsaufzeichnungen 140 mit einer Anweisungsverfolgung des Mikrocontrollerprogramms kombiniert werden, wobei beide Verfolgungen die gleichen Zeitstempel verwenden und eine kombinierte Verfolgung der Programmanweisungen und der Signalisierungsereignisse produzieren.
-
2 illustriert ein Beispiel eines Verfolgungsmoduls 150. Das Verfolgungsmodul 150 beinhaltet ein Auffangregistermodul 180. Das Auffangregistermodul 180 empfängt die Signalisierungsereignisse 120 über die Ereigniskanäle 112. Das Auffangregistermodul 180 kann dazu konfiguriert sein, die Signalisierungsereignisse abzutasten und zu halten, die durch die Ereigniskanäle 112 passieren. Das Auffangregistermodul 180 transferiert die abgetasteten Signalisierungsereignisse durch den Ausgangsanschluss 172 an ein Maskierungsmodul 185. In manchen Implementierungen kann ein Signalisierungsereignis synchron abgetastet werden. In manchen Implementierungen könne Flankendetektoren zur asynchronen Abtastung der Signalisierungsereignisse verwendet werden.
-
Das Maskierungsmodul 185 empfängt die abgetasteten Signalisierungsereignisse über den Eingangsanschluss 174. Das Maskierungsmodul 185 empfängt auch die Maskierungsdaten 170 über den Eingangsanschluss 176. Die Maskierungsdaten geben die Signalisierungsereignisse an, die maskiert werden können. Die maskierten Signalisierungsereignisse sind die Ereignisse, die nicht verfolgt/überwacht werden, und die in manchen Implementierungen verworfen werden können. Basierend auf den empfangenen Maskierungsdaten kann das Maskierungsmodul 185 die Signalisierungsereignisse, die nicht überwacht oder verfolgt werden, daran hindern, an den Ausgangsanschluss 178 zu gelangen. Nur die nicht maskierten Signalisierungsereignisse, d. h. die unmaskierten Signalisierungsereignisse, können an den Ausgangsanschluss 178 des Maskierungsmoduls gelangen. In manchen Implementierungen kann das Maskierungsmodul 185 Signalisierungsereignisse mit niedriger Priorität maskieren. In manchen Implementierungen könnte das Maskierungsmodul 185 kein einziges Signalisierungsereignis maskieren.
-
Das Detektionsmodul 190 empfängt die unmaskierten Signalisierungsereignisse über den Eingangsanschluss 182. Wenn eine Änderung eines unmaskierten Signalisierungsereignisses durch das Detektionsmodul 190 detektiert wird, kann eine Speicheranweisung 177 erzeugt werden und über den Ausgangsanschluss 117 zur Verfügung gestellt werden. Das Detektionsmodul 190 kann eine Speicheranweisung als Reaktion auf eine Änderung eines jeden einzelnen unmaskierten Signalisierungsereignisses erzeugen. In manchen Implementierungen kann das Detektionsmodul 190 die Speicheranweisung als Reaktion auf eine Änderung einer Kombination von einer oder mehreren unmaskierten Signalisierungsereignissen erzeugen, die im wesentlichen simultan, der Reihe nach oder in einem gegebenen Zeitraum auftreten. In manchen Implementierungen beinhaltet eine Änderung eines Signalisierungsereignisses ein Setzen und/oder Zurücksetzen eines Signalisierungsereignisses.
-
Das Kombinationsmodul 195 empfängt die abgetasteten Signalisierungsereignisse über den Eingangsanschluss 186 und die Zeitstempel 135 über den Eingangsanschluss 114. Das Kombinationsmodul 195 kann die empfangenen abgetasteten Signalisierungsereignisse und einen Zeitstempel kombinieren und eine Ereignisverfolgungsaufzeichnung erzeugen. Die erzeugten Ereignisverfolgungsaufzeichnungen werden am Ausgangsanschluss 115 des Kombinationsmoduls 195 zur Verfügung gestellt. In manchen Implementierungen kann das Kombinationsmodul 195 ein Überlaufsignal 145 über den Eingangsanschluss 118 empfangen und das Überlaufsignal 145 in die Ereignisverfolgungsaufzeichnungen einbetten. In manchen Implementierungen kann das Kombinationsmodul 195 einen Pufferspeicher beinhalten, um die abgetasteten Signalisierungsereignisse und einen Zeitstempel zu kombinieren und damit eine Ereignisverfolgungsaufzeichnung zu erzeugen. Der Pufferspeicher kann zum Beispiel ein oder mehrere Bits, die für die abgetasteten Signalisierungsereignisse bestimmt sind, ein oder mehrere Bits, die für den Zeitstempel bestimmt sind, und zumindest ein Bit zur Einbettung des Überlaufsignals beinhalten.
-
Wie im Zusammenhang mit 1 beschrieben wurde, können die jeweiligen Ausgangsanschlüsse 115 und 117 des Kombinationsmoduls 195 und des Detektionsmoduls 190 mit dem Speichermodul 160 gekoppelt sein, um die Speicherung der Ereignisverfolgungsaufzeichnungen zu ermöglichen. Das Speichermodul 160 kann das Überlaufsignal 145 erzeugen, um dem Kombinationsmodul 195 die erfolgreiche oder gescheiterte Durchführung der Speicheranweisung anzuzeigen. In manchen Implementierungen, beinhaltet jede Ereignisverfolgungsaufzeichnung ein einzelnes Überlaufbit und jede gespeicherte Ereignisverfolgungsaufzeichnung kann anzeigen, ob eine vorherige Ereignisverfolgungsaufzeichnung erfolgreich/nicht erfolgreich gespeichert wurde. Zum Beispiel kann ein Benutzer der Ereignisverfolgungsaufzeichnungen durch Überprüfen des Überlaufbits herausfinden, ob eine Lücke in den gespeicherten Signalisierungsereignissen vorliegt. In manchen Implementierungen können die Ereignisverfolgungsaufzeichnungen zwischen einem und zehn (z. B. fünf) Überlaufbits beinhalten. In manchen Implementierungen können die Überlaufbits eine Anzahl von aufeinander folgenden Fehlern oder Erfolgen angeben.
-
In manchen Implementierungen können zwei oder mehrere Module des Auffangregistermoduls 180, des Maskierungsmoduls 185, des Detektionsmoduls 190 und des Kombinationsmoduls 195 zu einem einzigen Anweisungsmodul vereint sein, das die Funktionen der Kombination ausführt.
-
In 3 ist ein Flussdiagramm eines Verfahrens 300 dargestellt. Zum Beispiel kann das Verfahren 300 durch das System 100 der 1 ausgeführt werden. Das Verfahren beinhaltet das Empfangen von Signalisierungsereignissen für Peripheriegeräte (310). Jedes Peripheriegerät kann ein oder mehrere Signalisierungsereignisse als Reaktion auf eine Bedingung, wie z. B. eine Zustandsänderung erzeugen. Die Signalisierungsereignisse können durch ein beispielhaftes Ereignissubsystem 130, das in 1 dargestellt ist, empfangen werden. Die Signalisierungsereignisse der Peripheriegeräte können parallel zu einander erzeugt werden und die an das Ereignissubsystem übertragenen Signalisierungsereignisse können daher simultan zur Verfügung stehen.
-
Die Zeitstempel werden empfangen (320). Zum Beispiel überträgt das Ereignissubsystem 130 die Signalisierungsereignisse auf parallelen Ereigniskanälen 112 und das Verfolgungsmodul 150 kann auf die Ereigniskanäle zugreifen und ein oder mehrere Signalisierungsereignisse basierend auf dem Zugriff empfangen. Das Verfolgungsmodul kann auch Zeitstempel empfangen. In manchen Implementierungen werden Systemzeitstempel intern mit Bezug auf einen Systemtakt des Systems 100 erzeugt und die Systemzeitstempel können jedem Modul des Systems 100 zur Verfügung gestellt werden. In manchen Implementierungen ist der Systemtakt, der die Erzeugung der Zeitstempel unterstützt, eine präzise Uhr.
-
Die empfangenen Signalisierungsereignisse werden abgetastet und unmaskierte Signalisierungsereignisse werden identifiziert (330). Zum Beispiel wird das Abtasten der Signalisierungsereignisse durch ein Auffangregistermodul 180 durchgeführt. Das Leiten der Signalisierungsereignisse zwischen den Peripheriegeräten könnte durch das Abtasten der Signalisierungsereignisse nicht beeinträchtigt werden. Die Signalisierungsereignisse können ein paar Taktzyklen dauern und die Abtastzeitdauer kann so eingestellt werden, dass sichergestellt ist, dass keine Signalisierungsereignisse verloren gehen. Ein Teil der im Verfolgungsmodul 150 ausgeführten Schritte werden im Zusammenhang mit 4 beschrieben, wobei eine Gruppe der empfangenen und abgetasteten Signalisierungsereignisse zur Überwachung/für Aktionen ausgewählt werden können und der Rest verworfen werden kann. Zum Beispiel kann das Maskierungsmodul 185 die empfangenen Signalisierungsereignisse ausfiltern und nur die unmaskierten Signalisierungsereignisse werden übertragen.
-
In manchen Implementierungen können die Signalisierungsereignisse eine sehr kurze Zeitdauer haben und eine synchrone Abtastung könnte nicht durchgeführt werden. In manchen Implementierungen kann das Auffangregistermodul Flankendetektoren zur asynchronen Detektion und Zwischenspeicherung der Signalisierungsereignisse verwenden.
-
Ereignisverfolgungsaufzeichnungen werden erzeugt, wobei jede Ereignisverfolgungsaufzeichnung abgetastete Signalisierungsereignisse und einen Zeitstempel enthält. Zum Beispiel werden Ereignisverfolgungsaufzeichnung durch das Kombinationsmodul 195 erzeugt und jede Ereignisverfolgungsaufzeichnung enthält eine Gruppe von einem oder mehreren Signalisierungsereignissen und einen Zeitstempel, der einen entsprechenden Abtastzeitpunkt angibt. In manchen Implementierungen ist der Zeitpunkt des Zeitstempels eine mit der Erzeugung des Signalisierungsereignisses verbundene Zeit. In manchen Implementierungen kann das Kombinationsmodul 195 ein oder mehrere Überlaufbits in jede Ereignisverfolgungsaufzeichnung einbetten. Das Setzen oder Löschen des/der Überlaufbits der Ereignisverfolgungsaufzeichnungen wird im Zusammenhang mit 5 beschrieben.
-
Speicheranweisungen werden als Reaktion auf Änderungen von unmaskierten Signalisierungsereignissen erzeugt (350). In manchen Implementierungen kann eine Speicheranweisung erzeugt werden, wenn eine Änderung von einem oder von mehreren der unmaskierten Signalisierungsereignissen detektiert wird. Zum Beispiel kann die Detektion einer Änderung der unmaskierten Signalisierungsereignisse in dem Detektionsmodul 190 auftreten, wobei auf eine Änderung eines unmaskierten Signalisierungsereignisses von gesetzt auf gelöscht und/oder von gelöscht auf gesetzt hin eine Speicheranweisung erzeugt werden kann und die Speicheranweisung dafür sorgen kann, dass eine beispielhaftes Speichermodul 160 eine Ereignisverfolgungsaufzeichnung speichert. In manchen Implementierungen kann eine Änderung einer Kombination von Signalisierungsereignissen von gesetzt nach gelöscht und/oder von gelöscht nach gesetzt eine Speicheranweisung erzeugen.
-
Als Reaktion auf die Ausgabe/den Empfang der Speicheranweisung wird eine Ereignisverfolgungsaufzeichnung gespeichert (360). Zum Beispiel empfängt ein bezüglich des Verfolgungsmoduls 150 externes Speichermodul 160 die Speicheranweisung und die Ereignisverfolgungsaufzeichnungen durch die Anschlüsse 126 bzw. 124. Wenn eine Speicheranweisung durch das Speichermodul 160 empfangen wird, speichert das Speichermodul 160 als Reaktion darauf den Inhalt der Ereignisverfolgungsaufzeichnung, die am Eingangsanschluss 124 des Modul 160 geliefert wird. In manchen Implementierungen werden ein oder mehrere Ereignisverfolgungsaufzeichnungen in dem Speichermodul 160 gespeichert.
-
In manchen Implementierungen können die Systemzeitstempel mit einem Debugger-Modul geteilt werden, das dazu konfiguriert ist, Anweisungsverfolgungsaufzeichnungen von einem oder von mehreren Software-Programmen zu erzeugen. Eine Kombination der Ereignisverfolgungsaufzeichnungen 140 mit Anweisungsverfolgungsaufzeichnungen, die den gleichen Zeitstempel tragen, können eine kombinierte Verfolgungsaufzeichnung der Programmanweisungen und der Signalisierungsereignisse ergeben. In manchen Implementierungen können die Ereignisverfolgungsaufzeichnungen 140 mit den anderen Aufzeichnungen auf Basis der jeweiligen Zeitstempel kombiniert werden. Zum Beispiel können die Ereignisverfolgungsaufzeichnungen mit den mit Zeitstempeln versehenen Leistungsmessungen kombiniert werden.
-
In 4 ist das Flussdiagramm eines Verfahrens 400 dargestellt. Das Verfahren 400 kann zum Beispiel in dem Maskierungsmodul 185 ausgeführt werden. Das Verfahren beinhaltet das Empfangen von Maskierungsdaten, die ein oder mehrere Signalisierungsereignisse identifizieren, die verfolgt werden sollen (410). In manchen Implementierungen sind die durch die Maskierungsdaten identifizierten Signalisierungsereignisse diejenigen, die nicht für die Verfolgung ausgewählt sind und die ignoriert werden können, und Speicheranweisungen müssen nicht erzeugt werden, wenn die durch die Maskierungsdaten identifizierten Signalisierungsereignisse auftreten.
-
Empfangene Signalisierungsereignisse werden mit den Maskierungsdaten verglichen (420). Ein beispielhaftes Maskierungsmodul 185 empfängt alle Signalisierungsereignisse. Die Maskierungsdaten geben an, welche Signalisierungsereignisse ignoriert werden können. Der Vergleich der empfangenen Signalisierungsereignisse mit den durch die Maskierungsdaten bestimmten Signalisierungsereignissen und das Auffinden der Übereinstimmungen ermöglicht die Identifikation der Signalisierungsereignisse, die nicht weiter verarbeitet werden sollen (die z. B. verworfen werden können).
-
Die Signalisierungsereignisse, die nicht mit den Signalisierungsereignissen in den Maskierungsdaten übereinstimmen, werden als unmaskierte Signalisierungsereignisse bestimmt (430). Die unmaskierten Signalisierungsereignisse sind diejenigen, die zur Erzeugung einer Speicheranweisung führen können, und die die Speicherung einer Ereignisverfolgungsaufzeichnung verursachen können. Die Signalisierungsereignisse, die maskiert sind, werden nicht verfolgt und können nicht dazu führen, dass eine Ereignisverfolgungsaufzeichnung gespeichert wird.
-
In 5 ist das Flussdiagramm eines Verfahrens 500 gezeigt. Zum Beispiel kann das Verfahren 500 durch das Kombinationsmodul 195 der 2 ausgeführt werden, um das/die Überlaufbit(s) einer Ereignisverfolgungsaufzeichnung zu setzen oder zu löschen. Ein Überlaufsignal wird empfangen, das den Erfolg oder Misserfolg einer vorherigen Speicheranweisung angibt (510). Zum Beispiel wird das Überlaufsignal 145 durch den Eingangsanschluss 118 des Kombinationsmoduls 195 empfangen. In manchen Implementierungen wird das Überlaufsignal 145 von einem beispielhaften Speichermodul 160 empfangen, das die Ereignisverfolgungsaufzeichnungen speichern kann.
-
Das/Die Überlaufbit(s) einer aktuellen Ereignisverfolgungsaufzeichnung wird/werden gemäß dem empfangenen Überlaufsignal geändert (520). In manchen Implementierungen kann jede Ereignisverfolgungsaufzeichnung ein oder mehrere Überlaufbits enthalten und das/die Überlaufbit(s) wird/werden gemäß dem empfangenen Überlaufsignal modifiziert.
-
Das Überlaufbit wird gesetzt/gelöscht, wenn die vorherige Verfolgungsaufzeichnung fehlerhaft/erfolgreich gespeichert wurde (530). Zum Beispiel setzt oder löscht das Kombinationsmodul 195 das Überlaufbit einer aktuellen Ereignisverfolgungsaufzeichnung. In manchen Implementierungen kann das Überlaufbit gesetzt werden, wenn die vorherige Ereignisverfolgungsaufzeichnung nicht gespeichert werden konnte, und wird gelöscht, wenn die vorherige Ereignisverfolgungsaufzeichnung erfolgreich gespeichert werden konnte.
-
In 6 ist ein Beispiel für ein Subsystem 600 zur Leitung der Signalisierungsereignisse dargestellt. Das Subsystem 600 beinhaltet 22 Peripheriegeräte 630 und 8 Multiplexer 640 zum Leiten der Signalisierungsereignisse durch 8 Ereigniskanäle 610. Durch Zurverfügungstellung eines Zugriffs auf die Ereigniskanäle 610 können die Signalisierungsereignisse 620 als Ausgaben geliefert werden.
-
Konkrete Implementierungen des Gegenstands wurden beschrieben. Andere Implementierungen liegen im Bereich der nachfolgenden Ansprüche. In manchen Fällen können die in den Ansprüchen angeführten Aktionen in einer anderen Reihenfolge durchgeführt werden, wobei dennoch wünschenswerte Ergebnisse erzielt werden. Darüber hinaus erfordern die in den begleitenden Figuren dargestellten Prozesse nicht notwendigerweise die konkret dargestellte oder sequentielle Reihenfolge, um wünschenswerte Ergebnisse zu erzielen. In manchen Implementierungen kann Multitasking und Parallelverarbeitung vorteilhaft sein.