Die Kosten für die Trace-Implementierung auf einem Hochleistungsprozessor werden im Wesentlichen durch die Bandbreite bestimmt. Selbst mit einem hocheffizienten Trace-Kompressionsverfahren macht der Export von Trace-Daten auf einem Multi-Gigahertz-Prozessor eine hohe Bandbreite erforderlich. Dieser Anforderung wurde man bislang durch die Verwendung vieler Pins (20 und mehr) für den Trace-Port gerecht. Doch mit zunehmender Taktrate der Prozessoren wurde dieser Weg undurchführbar.
Der explosionsartigen Vermehrung von Pins begegnet man inzwischen auf die gleiche Weise wie bei anderen Hochgeschwindigkeits-Schnittstellen: durch Serialisierung. Der Einsatz von seriellen Multi-Gigabit-Bussen öffnet einen sehr breiten Kanal für die On-Chip-Daten. Dieser Wechsel erleichtert außerdem das Tracen mehrerer Quellen, beispielsweise Multicore-Prozessoren, On-Chip-Logikanalyse, DMA Engines etc. Volle Sichtbarkeit auf Systemebene lässt sich durch eine einzige Debug-Verbindung erreichen.
Hersteller von hochentwickelten Prozessoren für Standard-Computerboards haben den Vorteil derartiger Echtzeit-Trace-Ports für ihre kommenden Designs erkannt: Software-Fehler, die sonst ein Entwicklungsprojekt wochenlang zum Stillstand bringen könnten, lassen sich mit den jüngsten Trace-Debugging-Tools rasch auffinden. Das ist ein großer Vorteil in einem äußerst hart umkämpften Markt. Bald werden in neuen Hochleistungsprozessoren Trace-Ports zu finden sein.
Was ist Echtzeit-Trace? |
![]() | Neil Puthuff ist Director of Hardware Engineering bei Green Hills Software. Er hat mehr als 20 Jahre Erfahrung in der Entwicklung von Hardware und Software für Embedded-Systeme. Außerdem hält er mehrere US-Patente. neil@ghs.com |
Eine Methode zur Erzeugung trace-ähnlicher Information auf Systemen ohne RTT-Ports wurde durch mehrere Anbieter von Echtzeit-Betriebssystemen (RTOS) implementiert. Spezielle Funktionsaufrufe oder instrumentierte Kernel-Varianten bieten eine High-Level-Ansicht von Betriebssystem-Ereignissen über die Zeit. Der Entwickler kann sehen, welche Threads laufen und wann Betriebssystem-Ereignisse stattfinden (Bild 2), doch es fehlen die Möglichkeiten des Source-Level-Debuggings oder der Timing-Analyse eines echten Echtzeit-Trace-Entwicklungssystems.
Für eine detailliertere Echtzeit- Trace-Ansicht auf Quellcode-Ebene für ein Programm, das auf Standard-Computerboards läuft, muss das Echtzeit-Trace-Tool tiefer in die Anwendung hineinschauen. Die neue Technologie „TraceEdge“ von Green Hills (www.ghs.com) setzt dazu eine instrumentierte Lösung ein, die keine Recompilierung des Applikationscodes notwendig macht. Es werden kurze Befehlsfolgen an bestimmten Stellen der Anwendung eingefügt. Diese Befehle übertragen Daten in Echtzeit auf einen freien PMC- oder PCI-Slot. Aus diesen Daten wird schließlich der Programmablauf rekonstruiert, so dass eine vollständige Trace-Darstellung entsteht. Ein anderer Ansatz exportiert die Trace-Daten in einen speziell zugeordneten Puffer im Hauptspeicher des Zielsystems, der später durch eine standardmäßige Debug-Verbindung ausgelesen wird.