-
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, Ausgabeanschlüsse, DMA-Controller, Co-Prozessoren und Speicher.
-
Ein DMA-Controller kann Daten zwischen verschiedenen Speichern und den durch den Mikrocontroller gesteuerten Geräten übertragen und kann so Datenübertragungsraten mit geringer CPU-Beteiligung ermöglichen. Der DMA-Controller kann Daten zwischen Speichern und Geräten unter Verwendung einer Anzahl unabhängiger DMA-Kanäle übertragen und kann eine Anzahl unabhängiger und paralleler Datenübertragungen ermöglichen.
-
Die DMA-Controller können Daten zwischen SRAM (static random access memory) und Geräten, zwischen SRAM-Stellen und zwischen Geräteregistern übertragen. Mit dem Zugriff auf alle Geräte kann der DMA-Controller eine automatische Datenübertragung an/von Kommunikationsmodulen (d. h., Ports) handhaben. Der DMA-Controller kann auch von einem auf einen Speicher abgebildeten EEPROM (electronic erasable programmable read only memory) lesen.
-
ZUSAMMENFASSUNG
-
In einem Aspekt beinhaltet ein Steuersystem ein Trace- oder Ablaufverfolgungsmodul, das Übertragungsanforderungen für Direktspeicherzugriffskanäle empfängt, Zeitstempel empfängt, die eine Übertragungsanforderungszeit angeben, Ablaufverfolgungsaufzeichnungen erzeugt, wobei jede Ablaufverfolgungsaufzeichnung einen jeweiligen Zeitstempel enthält, der eine Übertragungsanforderungszeit angibt, Speicheranweisungen erzeugt und die Ablaufverfolgungsaufzeichnungen und die Speicheranweisungen als Ausgabe liefert; und ein Speichermodul zur Speicherung von Ablaufverfolgungsaufzeichnungen.
-
In einem anderen Aspekt beinhaltet ein Verfahren den Empfang von Übertragungsanforderungen für Direktspeicherzugriffskanäle; den Empfang von Zeitstempeln, die eine Zeit angeben, die mit einer bestimmten Anforderung verbunden ist; das Abtasten der empfangenen Übertragungsanforderungen; das Erzeugen von Ablaufverfolgungsaufzeichnungen, wobei jede Ablaufverfolgungsaufzeichnung einen jeweiligen Zeitstempel beinhaltet, der eine Übertragungsanforderungszeit angibt; das Erzeugen von Speicheranweisungen als Reaktion auf die empfangenen Übertragungsanforderungen; und das Speichern einer Ablaufverfolgungsaufzeichnung als Reaktion auf eine Speicheranweisung in einem externen Gerät.
-
Implementierungen können ein oder mehrere der folgenden Merkmale enthalten. Das Ablaufverfolgungsmodul kann ein Auffangmodul beinhalten, das die empfangenen Übertragungsanforderungen empfängt, ein Zusammenstellungsmodul, das Ablaufverfolgungsaufzeichnungen erzeugt, und ein Detektionsmodul, das die Übertragungsanforderungen detektiert und Speicheranweisungen als Reaktion darauf erzeugt, um die Speicherung der Ablaufverfolgungsaufzeichnungen zu ermöglichen.
-
Das Speichermodul speichert ein oder mehrere Ablaufverfolgungsaufzeichnungen als Reaktion auf den Empfang entsprechender Speicheranweisungen, wobei das Speichermodul ein Überlaufsignal liefert, und das Überlaufsignal setzt oder löscht ein Überlaufbit einer aktuellen Ablaufverfolgungsaufzeichnung nach einer nicht erfolgreichen Speicherung einer vorhergehenden Ablaufverfolgungsaufzeichnung, oder nach erfolgreicher Speicherung der vorhergehenden Ablaufverfolgungsaufzeichnung.
-
Ein oder mehrere Peripheriegeräte können mit dem Steuersystem gekoppelt sein und die Übertragungsanforderungen können durch die Steuereinheit oder durch ein Peripheriegerät initiiert werden. Das Steuersystem kann Bestandteil einer auf einem Chip integrierten Schaltung sein. Übertragungsanforderungen können eine Leseanforderung von einem Direktspeicherzugriffskanal oder eine Schreibanforderung an einen Direktspeicherzugriffskanal sein, und eine Übertragungsanforderung kann für jede Einheit der von/an die Direktspeicherübertragungskanäle übertragenen Daten erzeugt werden.
-
Das Steuersystem kann mit einem oder mit mehreren Geräten zum Speichern und/oder Betrachten der Ablaufverfolgungsaufzeichnungen gekoppelt sein. Die Geräte können einen dezidierten Zeitstempelablaufverfolgungspuffer, einen dezidierten physikalischen Ablaufverfolgungsport, einen bestehenden Ablaufverfolgungsport, wobei der bestehende Ablaufverfolgungsport dazu eingerichtet ist, geteilt zu werden, oder einen Onboard-Direktspeicherzugriffskanal, der mit einem Onboard-SRAM gekoppelt ist, beinhalten.
-
Die Erzeugung einer Ablaufverfolgungsaufzeichnung beinhaltet desweiteren das Empfangen eines Überlaufsignals, wobei das Überlaufsignal den Erfolg oder Misserfolg einer vorhergehenden Speicheranweisung zur Speicherung einer Ablaufverfolgungsaufzeichnung angibt, und das Modifizieren eines Überlaufbits einer aktuellen Ablaufverfolgungsaufzeichnung gemäß dem empfangenen Überlaufsignal, beinhaltend das Setzen des Überlaufbits, wenn eine vorhergehende Ablaufverfolgungsaufzeichnung nicht gespeichert werden konnte. Ein Überlaufbit einer aktuellen Ablaufverfolgungsaufzeichnung kann gelöscht werden, wenn eine vorherige Ablaufverfolgungsaufzeichnung erfolgreich gespeichert wurde.
-
Aspekte der Erfindung können keinen, einen oder mehrere der folgenden Vorteile haben. Die vorgeschlagenen Systeme und Verfahren können verwendet werden, um einen DMA-Controller mit einem Speichermodul zu verbinden, um die Speicherung von Zeitstempeln zu ermöglichen, die entsprechende Zeiten der DMA-Übertragungsanforderungen angeben.
-
Die Details von einer oder mehreren Implementierungen werden im Folgenden durch die beigefügten Zeichnungen und die Beschreibung erläutert. Andere Aspekte, Merkmale und Vorteile ergeben sich aus der Beschreibung und den Zeichnungen und aus den Ansprüchen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Diagramm eines beispielhaften Steuersystems.
-
2 ist ein Diagramm eines beispielhaften Ablaufverfolgungsmoduls.
-
3 ist ein Flussdiagramm eines beispielhaften Verfahrens zur Speicherung von Ablaufverfolgungsaufzeichnungen.
-
4 ist ein Flussdiagramm eines beispielhaften Verfahrens zum Setzen/Löschen eines Überlaufbits.
-
DETAILLIERTE BESCHREIBUNG
-
Mikrocontroller können zur Steuerung von einem oder mehreren anderen Geräten (die im Folgenden als Peripheriegeräte bezeichnet werden) verwendet werden. DMA-Controller können Daten zwischen Speichern und Peripheriegeräten mit geringer Beteiligung der zentralen Verarbeitungseinheit(en) (CPU(s)) des Mikrocontrollers übertragen und können hohe Datenübertragungsraten zwischen Peripheriegeräten und Speichern ermöglichen.
-
Eine DMA-Transaktion ist definiert als kompletter DMA-Lese- oder Schreibzugriff zwischen Speichern oder zwischen Speichern und Peripheriegeräten. DMA-Transaktionen werden traditionellerweise in Datenblöcken durchgeführt. Datenblockgrößen können softwaregesteuert sein und können in kleinere Impulsübertragungen (burst transfers) aufgeteilt werden, die als sukzessive einzelne Einheiten von Daten gekennzeichnet werden können, wobei eine einzelne Dateneinheit als ein einzelner Bus-Zugriff definiert werden kann. Eine Dateneinheit kann von der Architektur des Systems abhängen und kann dazu eingerichtet sein, z. B. die Größe eines Bytes, eines halben Wortes (half-word) oder eines Wortes (word) zu unterstützen. Ein burst kann als N-Einheiten von Daten definiert werden, wobei N in manchen Konfigurationen eine ganze Zahl wie z. B. 1, 2, 4 oder 8 sein kann. DMA-Übertragungen beginnen, wenn eine DMA-Übertragungsanforderung detektiert wird. Eine Übertragungsanforderung kann durch Software, durch ein Peripheriegerät oder als Reaktion auf ein Ereignis ausgelöst werden.
-
Bezugnehmend auf 1 wird ein Beispiel einer Steuereinheit 100 gezeigt, das ein Ablaufverfolgungsaufzeichnung 150 beinhaltet, das Übertragungsanforderungen 120 über den Eingangsanschluss 112 empfängt. Das Ablaufverfolgungsmodul 150 empfängt auch über den Eingangsanschluss 114 Systemzeitstempel 135, die durch die Steuereinheit 100 erzeugt werden. Auf Basis der Übertragungsanforderungen 120 und der Zeitstempel 135 erzeugt das Ablaufverfolgungsmodul 150 Ablaufverfolgungsaufzeichnungen und Speicheranweisungen. Die Ablaufverfolgungsaufzeichnungen und Speicheranweisungen werden jeweils über die Ausgangsanschlüsse 115 und 117 an ein Speichermodul 160 geliefert. Das Ablaufverfolgungsmodul 150 wird untenstehend im Zusammenhang mit 2 beschrieben.
-
Das Speichermodul 160 empfängt die Ablaufverfolgungsaufzeichnungen über den Eingangsanschluss 124 und die Speicheranweisungen über den Eingangsanschluss 126. Als Reaktion auf den Empfang einer Speicheranweisung über den Eingangsanschluss 126 speichert das Speichermodul 160 die entsprechende über den Eingangsanschluss 124 empfangene Ablaufverfolgungsaufzeichnung. Das Speichermodul 160 speichert eine oder mehrere Ablaufverfolgungsaufzeichnungen und kann die gespeicherten Ablaufverfolgungsaufzeichnungen 140 am Ausgangsanschluss 128 zur Verfügung stellen.
-
In manchen Implementierungen kann das Speichermodul 160 gekoppelt sein mit einem Ader ersetzt werden durch einen dezidierten Ablaufverfolgungspuffer zur Speicherung der Ablaufverfolgungsaufzeichnungen. In manchen Implementierungen kann das Speichermodul 160 mit einem dezidierten physikalischen Ablaufverfolgungsanschluss gekoppelt sein, oder kann mit einem bestehenden Ablaufverfolgungsanschluss gekoppelt sein, der dazu eingerichtet ist, geteilt zu werden, und das Speichern der Ablaufverfolgungsaufzeichnungen ermöglichen. In manchen Implementierungen kann das Speichermodul 160 mit einem Onboard-Direktspeicherzugriffskanal gekoppelt sein, der mit einem Onboard-SRAM gekoppelt ist, zur Speicherung der Ablaufverfolgungsaufzeichnungen. In manchen Implementierungen kann das Speichermodul 160 mit einem externen Puffer gekoppelt sein, unter Verwendung eines Ethernet-Ports oder eines universellen seriellen Busses (USB).
-
In manchen Implementierungen kann das Speichermodul 160 ein Überlaufsignal 145 über den Ausgangsanschluss 122 des Moduls 160 an den Eingangsanschluss 118 des Ablaufverfolgungsmoduls 150 liefern. Das Überlaufsignal 145 kann durch das Speichermodul 160 verwendet werden, um dem Ablaufverfolgungsmodul 150 zu signalisieren, dass das Speichermodul 160 die letzte Speicheranweisung des Ablaufverfolgungsmoduls 150 erfolgreich/nicht erfolgreich ausgeführt hat, und dass eine Ablaufverfolgungsaufzeichnung, die mit der letzten Speicheranweisung verbunden 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 Mikrocontrollerchip implementiert sein, und die Systemzeitstempel können unter Bezugnahme auf einen Systemtakt auf dem Chip erzeugt werden. In manchen Implementierungen können die an dem Ausgang 128 des Speichermoduls 160 erzeugten Ablaufverfolgungsaufzeichnungen 140 mit Anweisungsverfolgungsaufzeichnungen von einem oder von mehreren Softwareprogrammen (z. B. erzeugt durch einen Programm-Debugger) kombiniert werden, wobei alle Ablaufverfolgungsaufzeichnungen die gleichen Zeitstempel verwenden und kombinierte Ablaufverfolgungsaufzeichnungen der Programmanweisungen und der Übertragungsanforderungen erzeugen.
-
In manchen Implementierungen können die an dem Ausgang 128 des Speichermoduls 160 erzeugten Ablaufverfolgungsaufzeichnungen 140 mit Ereignisverfolgungsaufzeichnungen, die Signalisierungsereignisse der Steuereinheit 100 erfassen, und Anweisungsverfolgungsaufzeichnungen des Softwareprogramms kombiniert werden, wobei alle drei Ablaufverfolgungen den gleichen Zeitstempel haben und kombinierte Ablaufverfolgungsaufzeichnungen der Programmanweisungen, der Signalisierungsereignisse und der Übertragungsanforderungen erzeugen. In manchen Implementierungen ist der Systemtakt, der mit den Zeitstempeln verbunden ist, eine präzise Uhr.
-
In manchen Implementierungen können die Ablaufverfolgungsaufzeichnungen 140 oder die oben beschriebenen kombinierten Ablaufverfolgungsaufzeichnungen zusätzlich mit anderen Aufzeichnungen auf Basis der jeweiligen Zeitstempel kombiniert werden, wobei die jeweiligen Zeitstempel mit den Zeitstempeln der Ablaufverfolgungsaufzeichnungen 140 korreliert sein können. Zum Beispiel können die oben beschriebenen Ablaufverfolgungsaufzeichnungen mit den mit Zeitstempeln versehenen Leistungsmessungen oder mit den mit Zeitstempeln versehenen Datenübertragungen kombiniert werden.
-
2 zeigt ein Beispiel eines Ablaufverfolgungsmoduls 150. Das Ablaufverfolgungsmodul 150 beinhaltet ein Auffangmodul 180. Das Auffangmodul 180 empfängt die Übertragungsanforderungen 120 über den Eingangsanschluss 112. Das Auffangmodul 180 kann dazu eingerichtet sein, die Übertragungsanforderungen abzutasten und zu halten. Die abgetasteten Übertragungsanforderungen können durch den Ausgangsanschluss 172 an ein Detektionsmodul 190 weitergeleitet werden. In manchen Implementierungen können Übertragungsanforderungen synchron abgetastet werden. In manchen Implementierungen können Flankendetektoren zur asynchronen Abtastung der Übertragungsanforderungen verwendet werden.
-
Das Detektionsmodul 190 empfängt die abgetasteten Übertragungsanforderungen über den Eingangsanschluss 182. Wenn Übertragungsanforderungen durch das Detektionsmodul 190 detektiert werden, können Speicheranweisungen 177 erzeugt werden und am Ausgangsanschluss 117 zur Verfügung gestellt werden. In manchen Implementierungen kann das Detektionsmodul 190 eine Speicheranweisung als Reaktion auf jede einzelne Übertragungsanforderung erzeugen.
-
In manchen Implementierungen kann auch auf die Verwendung des Detektionsmoduls 190 verzichtet werden und der Eingangsanschluss 182 kann direkt mit dem Ausgangsanschluss 177 gekoppelt sein, und die abgetasteten Übertragungsanforderungen des Eingangsanschlusses 182 können als Speicheranweisungen verwendet werden.
-
In manchen Implementierungen beinhaltet eine Übertragungsanforderung eine Schreibanforderung an einen DMA-Kanal und/oder eine Leseanforderung von einem DMA-Kanal und die Übertragungsanforderungen können z. B. durch Software oder Peripheriegeräte initiiert werden. Beispiele von Peripheriegeräten, die Übertragungsanforderungen initiieren, beinhalten einen Analog-Digital-Wandler, Drahtlosanschlüsse, optische Anschlüsse, Zeitgeber, Co-Prozessoren, sekundäre CPU-Kerne und Berührungsbildschirme. In manchen Implementierungen wird eine Übertragungsanforderung für das Schreiben/Lesen jedes einzelnen Bytes initiiert.
-
In manchen Implementierungen kann das Detektionsmodul 190 Maskierungsdaten empfangen, die Übertragungsanforderungen angeben, die maskiert werden können. Die maskierten Übertragungsanforderungen sind die Anforderungen, die nicht nachverfolgt/überwacht werden, und die in manchen Implementierungen verworfen werden können. In manchen Implementierungen können nur die Übertragungsanforderungen, die nicht maskiert sind, Speicheranweisungen erzeugen. In manchen Implementierungen können alle Übertragungsanforderungen mit Ausnahme der Übertragungsanforderungen eines einzigen Speichermoduls maskiert werden. In manchen Implementierungen können alle Übertragungsanforderungen mit Ausnahme der Übertragungsanforderungen, die mit einem einzigen DMA-Kanal verbunden sind, maskiert werden. In manchen Implementierungen können keine Übertragungsanforderungen maskiert werden.
-
Das Zusammenstellungsmodul 195 empfängt die abgetasteten Übertragungsanforderungen über den Eingangsanschluss 186 und die Zeitstempel 135 über den Eingangsanschluss 114. Das Zusammenstellungsmodul 195 kann eine Ablaufverfolgungsaufzeichnung erzeugen, die mit einer unmaskierten Anforderung verbunden ist, und einen Zeitstempel in die Ablaufverfolgungsaufzeichnung einfügen. Die erzeugten Ablaufverfolgungsaufzeichnungen werden im Ausgangsanschluss 115 des Zusammenstellungsmoduls 195 zur Verfügung gestellt. In manchen Implementierungen kann das Zusammenstellungsmodul 195 ein Überlaufsignal 145 über den Eingangsanschluss 118 empfangen und kann das Überlaufsignal 145 in die Ablaufverfolgungsaufzeichnungen einfügen. In manchen Implementierungen kann das Zusammenstellungsmodul 195 einen Speicherpuffer zur Kombinierung eines Zeitstempels und des Überlaufsignals und zur Erzeugung einer Ablaufverfolgungsaufzeichnung beinhalten. Zum Beispiel kann der Speicherpuffer ein oder mehrere Bits beinhalten, die für einen Zeitstempel bestimmt sind, und zumindest ein Bit zur Einfügung des Überlaufsignals 145.
-
Wie im Zusammenhang mit 1 beschrieben wurde, können die jeweiligen Ausgangsanschlüsse 115 und 117 des Zusammenstellungsmoduls 195 und des Detektionsmoduls 190 mit dem Speichermodul 160 gekoppelt sein, um die Speicherung der Ablaufverfolgungsaufzeichnungen zu ermöglichen. Das Speichermodul 160 kann das Überlaufsignal 145 zur Verfügung stellen, um dem Zusammenstellungsmodul 195 zu signalisieren, dass das Speichermodul die Speicheranweisung erfolgreich oder nicht erfolgreich ausgeführt hat.
-
In manchen Implementierungen beinhaltet jede Ablaufverfolgungsaufzeichnung ein einzelnes Überlaufbit und jede gespeicherte Ablaufverfolgungsaufzeichnung kann angeben, ob eine vorhergehende Ablaufverfolgungsaufzeichnung erfolgreich/nicht erfolgreich gespeichert wurde. Zum Beispiel kann ein Benutzer der Ablaufverfolgungsaufzeichnung durch Überprüfen der Überlaufbits der Ablaufverfolgungsaufzeichnungen herausfinden, ob eine Lücke in den Ablaufverfolgungsaufzeichnungen der Übertragungsanforderungen besteht. In manchen Implementierungen können die Ablaufverfolgungsaufzeichnungen zwischen einem und zehn (z. B. 5) Überlaufbits enthalten. In manchen Implementierungen können die Überlaufbits die Anzahl aufeinanderfolgender Misserfolge oder Erfolge angeben.
-
In manchen Implementierungen können zwei oder mehrere Module, wie z. B. des Auffangmoduls 180, des Detektionsmoduls 190 und des Zusammenstellungsmoduls 195, zu einem einzigen Anweisungsmodul zusammengeführt werden, das die Funktionen der Kombination ausführt.
-
Bezugnehmend auf 3 wird ein Flussdiagramm eines Verfahrens 300 dargestellt. Zum Beispiel kann das Verfahren 300 durch das System 100 aus 1 ausgeführt werden. Das Verfahren beinhaltet das Empfangen von Übertragungsanforderungen für Direktspeicherzugriffskanäle (310). Die Übertragungsanforderungen können durch eine auf einer oder auf mehreren CPUs laufenden Software, ein Peripheriegerät oder als Reaktion auf ein Ereignis initiiert werden. Die Übertragungsanforderungen können durch ein beispielhaftes Ablaufverfolgungsmodul 150, das in 1 dargestellt ist, empfangen werden. Die Übertragungsanforderungen können parallel erzeugt werden und können daher simultan zur Verfügung stehen.
-
Die Zeitstempel werden z. B. durch das Ablaufverfolgungsmodul empfangen (320). In manchen Implementierungen werden Systemzeitstempel intern erzeugt und beziehen sich auf einen Systemtakt. Die Systemzeitstempel können jedem Modul des Systems 100 zugänglich gemacht werden.
-
Die empfangenen Übertragungsanforderungen werden abgetastet (330). Das Abtasten der Übertragungsanforderungen wird z. B. durch ein Auffangmodul 180 ausgeführt. Das Weiterleiten der Übertragungsanforderungen könnte durch die Abtastung nicht beeinflusst werden. Die Übertragungsanforderungen können ein paar Taktzyklen dauern und die Abtastzeitperiode kann so eingestellt werden, dass sichergestellt ist, dass keine Übertragungsanforderungen verloren gehen.
-
In manchen Implementierungen können die Übertragungsanforderungen eine sehr kurze Zeitdauer andauern und eine synchrone Abtastung müsste nicht ausgeführt werden. In manchen Implementierungen kann das Auffangregister Flankendetektoren zur asynchronen Detektion und zum Auffangen der Übertragungsanforderungen verwenden.
-
Ablaufverfolgungsaufzeichnungen werden erzeugt, wobei jede Ablaufverfolgungsaufzeichnung einen Zeitstempel enthält (340). Zum Beispiel werden die Ablaufverfolgungsaufzeichnungen durch das Zusammenstellungsmodul 195 erzeugt und jede Ablaufverfolgungsaufzeichnung beinhaltet einen Zeitstempel, der eine entsprechende Zeit der Abtastung angibt. In manchen Implementierungen kann das Zusammenstellungsmodul 195 ein oder mehrere Überlaufbits in jede Ablaufverfolgungsaufzeichnung einfügen. In manchen Implementierungen können Ablaufverfolgungsaufzeichnungen die DMA-Kanalnummer und/oder das Zielspeichermodul, das mit einer gegebenen Anforderung verbunden ist, angeben. Das Setzen oder Löschen der Überlaufbits der Ablaufverfolgungsaufzeichnungen wird im Zusammenhang mit 4 beschrieben.
-
Speicheranweisungen werden als Reaktion auf empfangene Übertragungsanforderungen erzeugt (350). Zum Beispiel kann die Detektion der Übertragungsanforderungen in dem Detektionsmodul 190 erfolgen, wobei auf die Detektion einer Übertragungsanforderung eine Speicheranweisung erzeugt werden kann, und die Speicheranweisung ein beispielhaftes Speichermodul 160 veranlassen kann, eine Ablaufverfolgungsaufzeichnung zu speichern.
-
Als Reaktion auf die Ausgabe/den Empfang einer Speicheranweisung wird eine Ablaufverfolgungsaufzeichnung gespeichert (360). Zum Beispiel empfängt ein Speichermodul 160 extern zu dem Ablaufverfolgungsmodul 150 die Speicheranweisungen und die Ablaufverfolgungsaufzeichnungen über die Anschlüsse 126 bzw. 124. Wenn eine Speicheranweisung durch ein beispielhaftes Speichermodul 160 empfangen wird, speichert das Speichermodul 160 als Reaktion darauf den entsprechenden Inhalt der Ablaufverfolgungsaufzeichnung, die am Eingangsanschluss 124 des Speichermoduls 160 geliefert wird. In manchen Implementierungen wird das Speichermodul 160 als Puffer verwendet und die Ablaufverfolgungsaufzeichnungen werden an ein Speichermodul extern zu dem Speichermodul 160 geliefert. In manchen Implementierungen werden eine oder mehrere Ablaufverfolgungsaufzeichnungen in dem Speichermodul 160 gespeichert.
-
In manchen Implementierungen können Ablaufverfolgungsaufzeichnungen von unterschiedlichen DMA-Kanälen durch die Verwendung von getrennten Puffern zum Speichern der Ablaufverfolgungsaufzeichnungen von verschiedenen DMA-Kanälen getrennt werden. In manchen Implementierungen kann die DMA-Kanalnummer in einer Ablaufverfolgungsaufzeichnung enthalten sein und kann den DMA-Kanal angeben, zu dem die Ablaufverfolgungsaufzeichnung gehört.
-
In manchen Implementierungen können die Systemzeitstempel mit einem Debugger-Modul geteilt werden, das dazu eingerichtet ist, Anweisungsverfolgungsaufzeichnungen des auf einer oder auf mehreren CPUs laufenden Softwareprogramms zu erzeugen. Die Systemzeitstempel können auch mit einem Ereignisnachverfolgungssystem geteilt werden, das dazu eingerichtet ist, Ereignisverfolgungsaufzeichnungen der Signalisierungsereignisse zu erzeugen. Eine Kombination der Ablaufverfolgungsaufzeichnung 140 mit Ereignisverfolgungsaufzeichnungen und Anweisungsverfolgungsaufzeichnungen, die die gleichen Zeitstempel verwenden, kann eine kombinierte Ablaufverfolgungsaufzeichnung der Programmanweisungen, der Signalisierungsereignisse und der Übertragungsanforderungen erzeugen.
-
In manchen Implementierungen können die oben beschriebenen Ablaufverfolgungsaufzeichnungen mit anderen Aufzeichnungen auf Basis jeweiliger Zeitstempel kombiniert werden, die in der Nachverarbeitung synchronisiert werden.
-
Bezugnehmend auf 4 wird das Flussdiagramm eines Verfahrens 400 gezeigt. Das Verfahren 400 kann z. B. durch das Zusammenstellungsmodul 195 aus 2 ausgeführt werden und kann verwendet werden, um die Überlaufbits der Ablaufverfolgungsaufzeichnungen zu setzen oder zu löschen. Ein Überlaufsignal, das den Erfolg oder Misserfolg einer vorhergehenden Speicheranweisung angibt, wird empfangen (410). Das Überlaufsignal 145 wird z. B. am Eingangsanschluss 118 des Zusammenstellungsmoduls 195 empfangen. In manchen Implementierungen wird das Überlaufsignal 145 von einem beispielhaften Speichermodul 160 empfangen, das dazu eingerichtet ist, die Ablaufverfolgungsaufzeichnungen zu puffern oder zu speichern.
-
Das/die Überlaufbit(s) einer aktuellen Ablaufverfolgungsaufzeichnung wird/werden gemäß dem empfangenen Überlaufsignal modifiziert (420). In manchen Implementierungen kann jede Ablaufverfolgungsaufzeichnung ein Überlaufbit enthalten und das Überlaufbit wird gemäß dem empfangenen Überlaufsignal modifiziert.
-
Ein Überlaufbit wird gesetzt/gelöscht, wenn die vorhergehende Ablaufverfolgungsaufzeichnung nicht erfolgreich/erfolgreich gespeichert wurde (430). Zum Beispiel setzt oder löscht das Zusammenstellungsmodul 195 das Überlaufbit einer aktuellen Ablaufverfolgungsaufzeichnung. In manchen Implementierungen kann das Überlaufbit gesetzt werden, wenn die vorherige Ablaufverfolgungsaufzeichnung nicht gespeichert werden konnte, und wird gelöscht (zurückgesetzt), wenn die vorhergehende Ablaufverfolgungsaufzeichnung erfolgreich gespeichert wurde, oder umgekehrt.
-
Konkrete Implementierungen des Gegenstands wurden beschrieben. Andere Implementierungen liegen im Bereich der folgenden Ansprüche. In manchen Fällen können die in den Ansprüchen angeführten Aktionen in einer anderen Reihenfolge ausgefü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 eine sequenzielle Reihenfolge, um wünschenswerte Ergebnisse zu erzielen. In manchen Implementierungen kann Multitasking und Parallelverarbeitung vorteilhaft sein.