Schwerpunkte

Drei aktuelle On-Chip-Trace-Verfahren im Vergleich

Auf den Spuren der Fehler

14. November 2007, 15:37 Uhr   |  Heiko Riessland und Jens Braunes


Fortsetzung des Artikels von Teil 3 .

Für ARM-Cores: Emdedded Trace Macrocell (ETM)

Die Embedded Trace Macrocell (ETM) bzw. deren Weiterentwicklung Core-Sight von ARM ist für verschiedene ARM-Prozessoren als IP verfügbar, wobei unterschiedliche Versionen existieren, die den jeweiligen ARMProzessoren zugeordnet sind [2]. ETM unterstützt sowohl Programm- als auch Daten-Trace. CoreSight erlaubt zusätzlich das Tracen der Context-ID und ist zudem multicore-fähig. Zur Übertragung der Trace-Daten an den Debug-Host kommt ein relativ breitbandiger Trace-Port zum Einsatz, der in mehreren Modi mit unterschiedlichen Datenraten betrieben werden kann. Die zu übertragenden Trace-Daten werden vorher durch FIFO-Buffer serialisiert. Im Falle von Puffer-Überläufen bzw. zu geringer Trace-Port-Bandbreite sieht die ETM-Spezifikation zwei Alternativen vor:

  • Anhalten (Stall) des gesamten Systems, bis alle Trace-Daten aus den FIFOs übertragen wurden. Damit wird jedoch das Laufzeitverhalten des Systems beeinflusst. Echtzeit-Anforderungen an das Gesamtsystem können unter Umständen nicht mehr erfüllt werden.
  • Der Daten-Trace wird abgeschaltet. Der Programm-Trace bleibt davon unberührt. Aufgrund der viel geringeren Datenraten, die der Programm-Trace benötigt, werden FIFO-Überläufe verhindert. Der Verlust von Daten-Trace-Informationen wird im Ausgabeprotokoll gekennzeichnet.

Als Erweiterung des ETM-Konzeptes sieht ARM den Embedded-Trace- Buffer (ETB) vor. Dieser On-Chip-Speicher dient dazu, die Trace-Daten zu speichern. Wenn die Aufzeichnung beendet ist, können die Daten dann später vom Debug-Host über die JTAG-Schnittstelle ausgelesen werden Ein dedizierter Trace-Port ist nicht mehr notwendig. Vor allem bei hohen Taktfrequenzen der Cores ist der Einsatz des ETB sinnvoll, da eine vernünftige Übertragung der Daten in Echtzeit vom Chip herunter kaum noch möglich ist. ETM ist in unterschiedlich komplexen Konfigurationen verfügbar (Tabelle 2).

Dies spiegelt sich vor allem auch in der verfügbaren Filter- und Triggerlogik wider. Im Allgemeinen sieht das ETM-Konzept Komparatoren für Adressbereiche, Daten sowie den Zugriffsmodus (Lesen oder Schreiben) vor. Speziell für den Programm-Trace kann definiert werden, zu welchem Zeitpunkt in der Pipeline-Verarbeitung (Fetch oder Execute) ein Adresskomparator auf eine passende Adresse reagiert.

Durch Verknüpfung der einzelnen Komparatoren können komplexere Trigger-Bedingungen zur Steuerung der Trace-Aufzeichnung definiert werden. Mit Hilfe von Zählern und eines Sequenzers zur Realisierung einer State-Machine mit maximal drei Zuständen lässt sich auch das sequenzielle Verhalten sehr gut rekonstruieren. Leider ist der Sequenzer nicht in allen Konfigurationen verfügbar.

tabelle2_27.jpg
©

Tabelle 2. Die Embedded Trace Macrocell (ETM) von ARM und ihre Weiterentwicklung „Core-Sight“ ist in verschiedenen Konfigurationen im Chip implementierbar (a) ETM9; b) ETM7)

Multi-Core Debug Solution (MCDS) – die Infineon-Lösung

Infineon hat mit der Multi-Core Debug Solution eine komplexe On-Chip-Trace-Lösung entwickelt, die – bezogen auf die allgemeine Funktionalität einer Nexus-Implementierung – der Klasse 4+, also einer Erweiterung der Klasse-4-Features entspricht. Jedoch unterscheidet sich die tatsächliche Implementierung von den im Standard definierten Anforderungen. So wurde das Message-Format den eigenen Anforderungen entsprechend realisiert und der Auxiliary-Port weggelassen. Durch den On-Chip-Trace-Speicher kann die Übertragung der Trace-Daten vom Chip über die langsame JTAG-Schnittstelle asynchron zur eigentlichen Trace-Aufzeichnung erfolgen.

Derzeit ist die MCDS für die Entwicklungsversionen der Mikrocontroller TC1766 und TC1796 aus der Tri-Core-Familie verfügbar. Diese Emulation- Device-Chips (ED-Chips) verfügen über das gleiche Bondout wie ihre Produktionsvarianten. Die zusätzliche Hardware, die unter anderem für die Realisierung der MCDS notwendig ist, wird als so genannter Emulation Side Booster (ESB) bezeichnet und neben dem unveränderten Hard-Makro des TC1766 bzw. TC1796 auf dem Chip integriert.

Der ESB selbst ist eine Erweiterungseinheit mit eigenem Adressraum, die alle Busse des Produktions-Chips überwacht und dazu Trace-Speicher und zusätzliche Peripherie enthält. Der On-Chip-Trace-Speicher kann zudem als Overlay-RAM für Kalibrierungszwecke verwendet werden. Er ist in so genannte Tiles untergliedert und ermöglicht es so, parallel zur Aufzeichnung Trace-Daten über den Debug- Kanal vom Chip zu holen. Diese freigeräumten Bereiche stehen dann wieder zum Befüllen zur Verfügung. Ein kontinuierliches Tracen ist somit denkbar. Bei einer maximal möglichen Aufzeichnungsrate von 33 Gbit/s kann es jedoch immer noch zu Overrun-Situationen kommen, die dann durch entsprechende Nachrichten im Trace-Datenstrom gekennzeichnet werden.

MCDS erlaubt neben dem Programm- und Daten-Trace auch Ownership-Trace sowie das Tracen von Statusinformationen der Systembusse. Zur Filterung und zum Triggern der Trace-Aufzeichnung stehen diverse Komparatoren für Adressen und Address- Ranges (Code und Daten), für die Daten selbst, für Prozess-IDs sowie für Bus-Zugriffsmodi zur Verfügung. Mit Zählern und Timern nebst zugehörigen Komparatoren können Profiling-Aufgaben wie Execution- Counting und Laufzeitmessungen durchgeführt werden. Zusätzlich lassen sich im Gegensatz zu den anderen bereits vorgestellten Lösungen auch konkrete Aussagen zu absoluten zeitlichen Abläufen machen. Ein weiterer Vorteil: Neben der qualitativen Aussage zur Abfolge von Ereignissen ist auch eine Aussage über die Zeitdauer von Ereignissen beziehungsweise die Zeit zwischen zwei Ereignissen zu treffen. Ein Sequenzer, wie ihn ETM bietet, ist zwar nicht implementiert, allerdings können die 16 integrierten Zähler auch zur Realisierung von State-Machines verwendet werden, wobei für die Repräsentation der einzelnen Zustände jeweils ein Zähler benutzt wird.

Seite 4 von 4

1. Auf den Spuren der Fehler
2. Nur die Daten aufzeichnen, die auch benötigt werden
3. Neue Möglichkeiten erfordern neuartige Werkzeuge
4. Für ARM-Cores: Emdedded Trace Macrocell (ETM)

Auf Facebook teilenAuf Twitter teilenAuf Linkedin teilenVia Mail teilen