Debugging und Tracing sind beim Entwickeln von SoCs essenziell, um fertige, hochsichere Chips schneller in den Markt einführen zu können. Im Teil 2 unserer Serie für Depug-freundliche SoCs geht es um Sicherheitsaspekte, Off-Chip-Trace-Funktionen und die wichtigsten IP-Blöcke für eine leistungsstarke Debug-Infrastruktur.
Trace-Visualisierung in der TRACE32-PowerView-Software: Wenn ein SoC-Hersteller seine Chips von Anfang an so gestaltet, dass sie „einfach und leicht debugbar“ sind, erspart er Kunden in späteren Phasen der Entwicklung viele potenzielle Probleme.
(Bild: Lauterbach)
Ein aus Debugger-Sicht optimal gestalteter Chip bedeutet für den Kunden weniger Aufwand, eine schnellere Markteinführung und vor allem geringere Entwicklungskosten sowie für den Chip-Hersteller einen höheren Absatz, denn jedes fehlgeschlagene Projekt führt zu reduzierten Stückzahlen. In Teil 1 dieser Artikelreihe wurde die Bedeutung von Debugging und Tracing für Time-to-Market diskutiert und erste wichtige Überlegungen für Debug-freundliche SoC-Designs angestellt. An dieser Stelle knüpft Teil 2 mit weiteren Punkten an.
Überlegungen für Debug-freundliche SoCs
Security: Die Implementierung von Sicherheitsmechanismen auf einem SoC ist für die Hersteller von entscheidender Bedeutung. Der Hersteller muss sich Gedanken über Bedrohungen und verschiedene Benutzertypen machen, welche Domänen für Debugging offen und welche gesperrt sein sollten und ob es zwischen ihnen Wechselwirkungen gibt. Auch die Signale für Reset und Power Down müssen im SoC getrennt werden. Debugging-Mechanismen bieten tiefen Zugriff auf interne Hardwareressourcen, was potenziell ein Einfallstor für Angreifer darstellt. Entwickler müssen daher Debugging-Schnittstellen standardmäßig deaktivieren oder durch Authentifizierung absichern. Nur autorisierte Benutzer sollten über diese Schnittstellen auf das System zugreifen können.
Viele Systeme implementieren auch Secure Boot um sicherzustellen, dass nur vertrauenswürdige, authentische Firmware ausgeführt wird. In sicherheitskritischen SoCs sollte das Debugging nur für nicht sicherheitsrelevante Anwendungsbereiche erlaubt sein. Zertifizierungen wie ISO 26262 oder Common Criteria verlangen oft, Debugging-Schnittstellen zu deaktivieren oder ganz zu entfernen, um die Sicherheit des Systems zu gewährleisten. Ferner gibt es Technologien wie Arm CoreSight SDC-600 secure debug channel und „Secure JTAG“, die darauf abzielen, den Debugging-Prozess sicher zu machen und ein eigenes Ökosystem für die Sicherheit auf ihrem IP aufzubauen. Noch ein sicherer Ansatz für die Implementierung von Debugging-Funktionen in Produktionssystemen ist die Verwendung von Schlüsseln oder Debug-Tokens. Intel verwendet etwa hardwarebasierte Authentifizierung wie „Disable CPU Debug“ oder „Delayed Authentication Mode“.
Off-Chip-Trace-Funktionen: Off-Chip-Trace ermöglicht die kontinuierliche Aufzeichnung der Programmausführung und des Datenflusses, um das Systemverhalten im Detail zu analysieren, ohne die Trace-Daten durch den begrenzten internen Speicher einzuschränken. Es müssen genügend Pins zur Verfügung stehen, um die Trace-Daten mit der erforderlichen Bandbreite zu übertragen. Off-Chip-Trace-Pins werden oft mit anderen Funktionen gemultiplext, aber wesentliche Funktionen sollten nicht doppelt mit Trace-Pins vorhanden sein. High-Speed-Seriell und Parallel werden als Interfaces verwendet. Zudem erfordert Off-Chip-Trace kompatible externe Tools, die die Trace-Daten interpretieren und analysieren können.
Funktionale Sicherheit: Neben der Security ist die Safety besonders wichtig, vor allem bei sicherheitskritischen Anwendungen wie in der Automobilindustrie, Medizintechnik oder Luftfahrt. So sollte das System beispielsweise so ausgelegt sein, dass es im Fehlerfall automatisch in einen sicheren Zustand übergeht. Für die Sicherheit gibt es verschiedene Vorschriften, die z.B. in der ISO 26262 für den Automobilbereich oder der DO-178 für die Avionik dokumentiert sind. Für verschiedene Anforderungen aus diesen Sicherheitsstandards, wie z.B. Code-Abdeckungsmessungen oder Timing-Analysen, ist die Verfügbarkeit von Off-Chip-Traces eine wesentliche Voraussetzung, um diese zeit- und ressourceneffizient durchführen zu können. Ein SoC, das (auch) für sicherheitskritische Anwendungen entwickelt wurde, muss daher ein Trace-Interface implementieren.
Dokumentation: Die Dokumentation dient als wichtige Informationsquelle und strafft den gesamten Prozess. So bietet die Dokumentation etwa einen umfassenden Überblick über die Systemarchitektur, einschließlich aller IP-Blöcke, Schnittstellen und Kommunikationspfade. Sie hilft bekannte Fehler und typische Probleme schneller zu erkennen. In sicherheitskritischen Anwendungen wie der Luft- und Raumfahrt, der Automobilindustrie und der Medizintechnik ist eine gründliche Dokumentation für die Rückverfolgbarkeit unerlässlich. Sie stellt sicher, dass Informationen über bekannte Probleme und deren Lösungen für spätere Entwicklungsphasen und andere Teams verfügbar sind. Eine detaillierte und präzise Dokumentation ist der Schlüssel, um den Debugging-Prozess schneller, konsistenter und sicherer zu machen.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel Communications Group GmbH & Co. KG, Max-Planckstr. 7-9, 97082 Würzburg einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von redaktionellen Newslettern nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung, Abschnitt Redaktionelle Newsletter.
Zehn essenzielle IP-Blöcke fürs Debugging
All diese Anforderungen münden in einem SoC, das aus Debugger-Anbieter-Perspektive das „perfekte SoC“ für das Debugging ist. Um ein SoC hierfür optimal vorzubereiten, müssen spezielle IP-Blöcke integriert werden, die den Entwicklungs- und Debugging-Prozess unterstützen. Nachfolgend sind die zehn wichtigsten Blöcke für eine effektive Debug- und Trace-Infrastruktur aufgeführt:
JTAG (oder andere Debug-Schnittstelle): Bietet eine Standardschnittstelle für den Zugriff auf interne Register und Speicherinhalte. Sie ermöglicht das Anhalten und Kontrollieren der CPU sowie das Auslesen von Statusinformationen.
Debug Unit: Verwaltet die Debugging-Funktionen des SoC, z.B. das Setzen und Verwalten von Breakpoints, Watch-Points und Einzelschrittabarbeitung.
Trace-Module: Program-Flow-Trace zum Beispiel zeichnet die Abfolge der ausgeführten Befehle auf, um die Programmausführung zu verfolgen. Daten-Trace zeichnet Speicherzugriffe und Datenänderungen auf. Dies ist wichtig, um Speicherfehler oder Dateninkonsistenzen zu erkennen. Event-Trace und System-Trace hingegen ermöglichen die Verfolgung von Ereignissen (Software oder Hardware) und Signalen innerhalb des SoC, um zeitliche Abläufe zu analysieren und nach Synchronisationsproblemen Ausschau zu halten.
Trace-Puffer oder Export-Schnittstellen: Speichert Trace-Daten vorübergehend, bevor sie exportiert werden. Diese Puffer müssen groß genug sein, um Datenverluste zu vermeiden, insbesondere bei hohen Ausführungsfrequenzen. Die Exportschnittstellen müssen zugänglich sein und eine ausreichende Bandbreite für die wesentlichen Nutzungsszenarien bieten.
Eingebettetes Cross-Triggering: Koordiniert Debug- und Trace-Aktivitäten zwischen mehreren Kernen oder Subsystemen. Es kann Trigger-Ereignisse erzeugen und empfangen, um eine synchrone Analyse in Multi-Core-Architekturen zu ermöglichen. Besonders wichtig in Systemen mit mehreren Prozessoren, um komplexe Interaktionen zwischen Kernen zu verfolgen.
System Monitoring und Performance Counters: Überwachen die Leistungsparameter des SoC wie CPU-Auslastung, Speicherzugriffe, Bus- oder Cache-Nutzung und Latenzen. Diese Daten sind nützlich, um Engpässe und ineffiziente Codeabschnitte zu identifizieren.
Eingebettete Logikanalysatoren: Ermöglichen die Abtastung und Analyse interner Signale direkt auf dem Chip. Diese Analysatoren arbeiten wie externe Logikanalysatoren, sind aber in das System-on-Chip integriert. Auf diese Weise ermöglichen sie die Überwachung und Diagnose von Problemen auf Signalebene, ohne dass externe Geräte erforderlich sind.
Sicherheitsmodule: Kontrollieren den Zugriff auf Debug-Funktionen, um sicherzustellen, dass sensible Informationen geschützt bleiben. Häufig werden Zugangskontrollen, Verschlüsselung und Authentifizierung eingesetzt. Sie sind auch wichtig für den Schutz vor unberechtigtem Zugriff; insbesondere bei sicherheitskritischen und vertrauenswürdigen Anwendungen.
Busse oder Netzwerke: Ein separater Bus oder ein internes Netzwerk, das nur für Debugging- und Trace-Zwecke verwendet wird, sorgt für eine geringe Komplexität beim Debugging. Es schafft einen einfachen und skalierbaren Zugang zu verschiedenen Debug- und Trace-Komponenten, auch herstellerunabhängig.
Energieverwaltung: Ermöglicht die Durchführung von Debugging in verschiedenen Stromsparmodi. Dies ermöglicht es den Entwicklern, den Zustand des SoCs zu analysieren, auch wenn sich Teile des Systems in einem stromsparenden Zustand befinden. Dabei müssen alle möglichen Low-Power-Mode-Szenarien und deren Einfluss auf das Debugging berücksichtigt werden. Dies betrifft z.B. Einstellungen der Debug-Pins in der Firmware, so dass diese auch im Low-Power-Mode aktiv sind oder eine mögliche manuelle Auswahl geeigneter Taktgeneratoren für Peripheriegeräte. Da viele Chips oft alle Oszillatoren, die keine Low-Speed-Oszillatoren sind, beim Stoppen abschalten, kann es vorkommen, dass ein verwendetes Peripheriegerät seine Taktquelle von einem abgeschalteten Taktgenerator bezieht und ein Low-Speed-Oszillator manuell ausgewählt werden muss.
Zusammenfassend lässt sich sagen: System-on-Chips (SoC) benötigen Software als Grundlage für die Funktionalität. Die Integration von Software auf einem SoC ist ein wichtiger Schritt in der Entwicklung und Produktion von eingebetteten Systemen. Bei der Erstellung von Softwarecode können allerdings Fehler auftreten, die die Entwickler mit großem Aufwand, beispielsweise durch Debugging, finden und beseitigen müssen.
Eine umfassende Debug- und Trace-Infrastruktur ist für den Entwicklungs- und Testprozess eines SoCs entscheidend, da sie die Effizienz und Qualität des Produkts maßgeblich beeinflusst. Eine gut dimensionierte Debug-Lösung wie Lauterbach TRACE32 ermöglicht es Entwicklern, Fehler schnell zu identifizieren und die Funktionalität des SoCs im Detail zu analysieren.
Trace-Funktionen bieten eine lückenlose Verfolgung der Programmausführung und machen kritische Fehler und Optimierungspotenziale deutlich sichtbar. Gerade in komplexen, sicherheitskritischen Anwendungen, wie z.B. in der Automobil- oder Medizintechnik, ist eine genaue Überwachung erforderlich, um die Systemintegrität zu gewährleisten und unvorhergesehene Probleme frühzeitig zu erkennen.
Darüber hinaus erleichtern spezielle Trace-Ports und Puffer die Analyse ohne Leistungseinbußen. Ein zielgerichteter Daten-Trace und effiziente Exportmechanismen ermöglichen es Entwicklern, auch in hochkomplexen Systemen den Überblick über alle Prozesse und Speicherzugriffe zu behalten und die Zuverlässigkeit und Stabilität des SoCs langfristig zu sichern. (sg)