3 research outputs found

    Effiziente externe Beobachtung von CPU-AktivitÀten auf SoCs

    Get PDF
    Die umfassende Beobachtbarkeit von System‐on‐Chips (SoCs) ist eine wichtige Voraussetzung fĂŒr das effiziente Testen und Debuggen eingebetteter Systeme. Ausgehend von einer Analyse verschiedener AnwendungsfĂ€lle ergibt sich ein Katalog von Anforderungen an die Beobachtbarkeit von SoCs. Ein wichtiges Kriterium ist hier die VollstĂ€ndigkeit der Beobachtung und umfasst die AktivitĂ€ten der CPU (ausgefĂŒhrte Instruktionen, gelesene und geschriebene Daten, Verhalten des Caches, AusfĂŒhrungszeiten), des Bussystems und von Umgebungsbedingungen. Weitere Kriterien sind die EchtzeitfĂ€higkeit und die KontinuitĂ€t der Beobachtung sowie die gleichzeitige DurchfĂŒhrung verschiedener Beobachtungsaufgaben. Dabei soll es zu einer möglichst geringen Beeinflussung des SoCs kommen. Weitere wichtige Aspekt sind die Kosten der Lösung, die UniversalitĂ€t, die Skalierbarkeit sowie die Latenz der VerfĂŒgbarkeit der Beobachtungsergebnisse. FĂŒr viele Anwendungen, besonders in sicherheitskritischen Bereichen, muss zudem nachgewiesen werden, dass das Beobachtungsverfahren kein Fehlverhalten des SoCs bewirkt bzw. ein solches maskiert. Eine besondere Herausforderung stellen Multiprozessor‐SoCs (MPSoCs) dar, da hier die Kommunikation zwischen den einzelnen CPUs im Inneren des SoC stattfindet und entsprechend schwierig fĂŒr einen externen Bobachter sichtbar zu machen ist. Der Stand der Technik zur Beobachtung von SoCs wird im Wesentlichen durch zwei Verfahren dargestellt. Bei der Software‐Instrumentierung wird zum funktionalen Programmcode zusĂ€tzlicher Code hinzugefĂŒgt, welcher zur Beobachtung des Programms dient. Diese Methode ist einfach und universell anwendbar, erfĂŒllt aber die genannten Kriterien nur sehr eingeschrĂ€nkt. Nachteilig ist hier der Ressourcenverbrauch im Falle des Verbleibs der Instrumentierung im fertigen Produkt. Wird die Instrumentierung nur temporĂ€r dem Code hinzugefĂŒgt, muss sichergestellt werden, dass das Beobachtungsergebnis auch fĂŒr den finalen Code anwendbar ist – was besonders bei ressourcen‐abhĂ€ngigen Integrationstests nur schwierig erfĂŒllbar ist. Eine alternative Lösung stellt eine spezielle Hardware‐UnterstĂŒtzung in SoCs („embedded Trace“) dar. Hier werden im SoC Zustandsinformationen (z.B. Taskwechsel, ausgefĂŒhrte Instruktionen, Datentransfers) gesammelt und mittels Trace‐Nachrichten an den Beobachter ĂŒbermittelt. Dabei stellt die Bandbreite, die zur Ausgabe der Trace‐Nachrichten vom SoC verfĂŒgbar ist, ein entscheidendes Nadelöhr dar ‐ im SoC sind viel mehr den Beobachter interessierende Informationen verfĂŒgbar als nach außen transferiert werden können. Damit haben beide dem gegenwĂ€rtige Stand der Technik entsprechende Beobachtungsverfahren eine Reihe von EinschrĂ€nkungen, die sich besonders bei der VollstĂ€ndigkeit der Beobachtung, der FlexibilitĂ€t, der KontinuitĂ€t und der UnterstĂŒtzung von MPSoCs zeigen. In dieser Arbeit wird nun ein neuer Ansatz vorgestellt, welcher gegenĂŒber dem Stand der Technik in einigen Bereichen deutliche Verbesserungen bietet. Dabei werden die Trace‐Daten nicht vom zu beobachtenden SoC direkt, sondern aus einer parallel mitlaufenden Emulation gewonnen. Die Bandbreite der fĂŒr die Synchronisation der Emulation erforderlichen Daten ist in vielen FĂ€llen deutlich geringer als bei der Ausgabe von umfassenden Trace‐Nachrichten mittels „embedded Trace“‐Lösungen. Gleichzeitig ist eine vollstĂ€ndige, Ă€ußerst detaillierte Beobachtung der VorgĂ€nge innerhalb des SoC möglich. Das neue Beobachtungsverfahren wurde mittels verschiedener FPGA-basierter Implementierungen evaluiert, hier konnte auch die Anwendbarkeit fĂŒr MPSoCs gezeigt werden

    Effiziente externe Beobachtung von CPU-AktivitÀten auf SoCs

    Get PDF
    Die umfassende Beobachtbarkeit von System‐on‐Chips (SoCs) ist eine wichtige Voraussetzung fĂŒr das effiziente Testen und Debuggen eingebetteter Systeme. Ausgehend von einer Analyse verschiedener AnwendungsfĂ€lle ergibt sich ein Katalog von Anforderungen an die Beobachtbarkeit von SoCs. Ein wichtiges Kriterium ist hier die VollstĂ€ndigkeit der Beobachtung und umfasst die AktivitĂ€ten der CPU (ausgefĂŒhrte Instruktionen, gelesene und geschriebene Daten, Verhalten des Caches, AusfĂŒhrungszeiten), des Bussystems und von Umgebungsbedingungen. Weitere Kriterien sind die EchtzeitfĂ€higkeit und die KontinuitĂ€t der Beobachtung sowie die gleichzeitige DurchfĂŒhrung verschiedener Beobachtungsaufgaben. Dabei soll es zu einer möglichst geringen Beeinflussung des SoCs kommen. Weitere wichtige Aspekt sind die Kosten der Lösung, die UniversalitĂ€t, die Skalierbarkeit sowie die Latenz der VerfĂŒgbarkeit der Beobachtungsergebnisse. FĂŒr viele Anwendungen, besonders in sicherheitskritischen Bereichen, muss zudem nachgewiesen werden, dass das Beobachtungsverfahren kein Fehlverhalten des SoCs bewirkt bzw. ein solches maskiert. Eine besondere Herausforderung stellen Multiprozessor‐SoCs (MPSoCs) dar, da hier die Kommunikation zwischen den einzelnen CPUs im Inneren des SoC stattfindet und entsprechend schwierig fĂŒr einen externen Bobachter sichtbar zu machen ist. Der Stand der Technik zur Beobachtung von SoCs wird im Wesentlichen durch zwei Verfahren dargestellt. Bei der Software‐Instrumentierung wird zum funktionalen Programmcode zusĂ€tzlicher Code hinzugefĂŒgt, welcher zur Beobachtung des Programms dient. Diese Methode ist einfach und universell anwendbar, erfĂŒllt aber die genannten Kriterien nur sehr eingeschrĂ€nkt. Nachteilig ist hier der Ressourcenverbrauch im Falle des Verbleibs der Instrumentierung im fertigen Produkt. Wird die Instrumentierung nur temporĂ€r dem Code hinzugefĂŒgt, muss sichergestellt werden, dass das Beobachtungsergebnis auch fĂŒr den finalen Code anwendbar ist – was besonders bei ressourcen‐abhĂ€ngigen Integrationstests nur schwierig erfĂŒllbar ist. Eine alternative Lösung stellt eine spezielle Hardware‐UnterstĂŒtzung in SoCs („embedded Trace“) dar. Hier werden im SoC Zustandsinformationen (z.B. Taskwechsel, ausgefĂŒhrte Instruktionen, Datentransfers) gesammelt und mittels Trace‐Nachrichten an den Beobachter ĂŒbermittelt. Dabei stellt die Bandbreite, die zur Ausgabe der Trace‐Nachrichten vom SoC verfĂŒgbar ist, ein entscheidendes Nadelöhr dar ‐ im SoC sind viel mehr den Beobachter interessierende Informationen verfĂŒgbar als nach außen transferiert werden können. Damit haben beide dem gegenwĂ€rtige Stand der Technik entsprechende Beobachtungsverfahren eine Reihe von EinschrĂ€nkungen, die sich besonders bei der VollstĂ€ndigkeit der Beobachtung, der FlexibilitĂ€t, der KontinuitĂ€t und der UnterstĂŒtzung von MPSoCs zeigen. In dieser Arbeit wird nun ein neuer Ansatz vorgestellt, welcher gegenĂŒber dem Stand der Technik in einigen Bereichen deutliche Verbesserungen bietet. Dabei werden die Trace‐Daten nicht vom zu beobachtenden SoC direkt, sondern aus einer parallel mitlaufenden Emulation gewonnen. Die Bandbreite der fĂŒr die Synchronisation der Emulation erforderlichen Daten ist in vielen FĂ€llen deutlich geringer als bei der Ausgabe von umfassenden Trace‐Nachrichten mittels „embedded Trace“‐Lösungen. Gleichzeitig ist eine vollstĂ€ndige, Ă€ußerst detaillierte Beobachtung der VorgĂ€nge innerhalb des SoC möglich. Das neue Beobachtungsverfahren wurde mittels verschiedener FPGA-basierter Implementierungen evaluiert, hier konnte auch die Anwendbarkeit fĂŒr MPSoCs gezeigt werden

    Effiziente externe Beobachtung von CPU-AktivitÀten auf SoCs

    No full text
    Die umfassende Beobachtbarkeit von System‐on‐Chips (SoCs) ist eine wichtige Voraussetzung fĂŒr das effiziente Testen und Debuggen eingebetteter Systeme. Ausgehend von einer Analyse verschiedener AnwendungsfĂ€lle ergibt sich ein Katalog von Anforderungen an die Beobachtbarkeit von SoCs. Ein wichtiges Kriterium ist hier die VollstĂ€ndigkeit der Beobachtung und umfasst die AktivitĂ€ten der CPU (ausgefĂŒhrte Instruktionen, gelesene und geschriebene Daten, Verhalten des Caches, AusfĂŒhrungszeiten), des Bussystems und von Umgebungsbedingungen. Weitere Kriterien sind die EchtzeitfĂ€higkeit und die KontinuitĂ€t der Beobachtung sowie die gleichzeitige DurchfĂŒhrung verschiedener Beobachtungsaufgaben. Dabei soll es zu einer möglichst geringen Beeinflussung des SoCs kommen. Weitere wichtige Aspekt sind die Kosten der Lösung, die UniversalitĂ€t, die Skalierbarkeit sowie die Latenz der VerfĂŒgbarkeit der Beobachtungsergebnisse. FĂŒr viele Anwendungen, besonders in sicherheitskritischen Bereichen, muss zudem nachgewiesen werden, dass das Beobachtungsverfahren kein Fehlverhalten des SoCs bewirkt bzw. ein solches maskiert. Eine besondere Herausforderung stellen Multiprozessor‐SoCs (MPSoCs) dar, da hier die Kommunikation zwischen den einzelnen CPUs im Inneren des SoC stattfindet und entsprechend schwierig fĂŒr einen externen Bobachter sichtbar zu machen ist. Der Stand der Technik zur Beobachtung von SoCs wird im Wesentlichen durch zwei Verfahren dargestellt. Bei der Software‐Instrumentierung wird zum funktionalen Programmcode zusĂ€tzlicher Code hinzugefĂŒgt, welcher zur Beobachtung des Programms dient. Diese Methode ist einfach und universell anwendbar, erfĂŒllt aber die genannten Kriterien nur sehr eingeschrĂ€nkt. Nachteilig ist hier der Ressourcenverbrauch im Falle des Verbleibs der Instrumentierung im fertigen Produkt. Wird die Instrumentierung nur temporĂ€r dem Code hinzugefĂŒgt, muss sichergestellt werden, dass das Beobachtungsergebnis auch fĂŒr den finalen Code anwendbar ist – was besonders bei ressourcen‐abhĂ€ngigen Integrationstests nur schwierig erfĂŒllbar ist. Eine alternative Lösung stellt eine spezielle Hardware‐UnterstĂŒtzung in SoCs („embedded Trace“) dar. Hier werden im SoC Zustandsinformationen (z.B. Taskwechsel, ausgefĂŒhrte Instruktionen, Datentransfers) gesammelt und mittels Trace‐Nachrichten an den Beobachter ĂŒbermittelt. Dabei stellt die Bandbreite, die zur Ausgabe der Trace‐Nachrichten vom SoC verfĂŒgbar ist, ein entscheidendes Nadelöhr dar ‐ im SoC sind viel mehr den Beobachter interessierende Informationen verfĂŒgbar als nach außen transferiert werden können. Damit haben beide dem gegenwĂ€rtige Stand der Technik entsprechende Beobachtungsverfahren eine Reihe von EinschrĂ€nkungen, die sich besonders bei der VollstĂ€ndigkeit der Beobachtung, der FlexibilitĂ€t, der KontinuitĂ€t und der UnterstĂŒtzung von MPSoCs zeigen. In dieser Arbeit wird nun ein neuer Ansatz vorgestellt, welcher gegenĂŒber dem Stand der Technik in einigen Bereichen deutliche Verbesserungen bietet. Dabei werden die Trace‐Daten nicht vom zu beobachtenden SoC direkt, sondern aus einer parallel mitlaufenden Emulation gewonnen. Die Bandbreite der fĂŒr die Synchronisation der Emulation erforderlichen Daten ist in vielen FĂ€llen deutlich geringer als bei der Ausgabe von umfassenden Trace‐Nachrichten mittels „embedded Trace“‐Lösungen. Gleichzeitig ist eine vollstĂ€ndige, Ă€ußerst detaillierte Beobachtung der VorgĂ€nge innerhalb des SoC möglich. Das neue Beobachtungsverfahren wurde mittels verschiedener FPGA-basierter Implementierungen evaluiert, hier konnte auch die Anwendbarkeit fĂŒr MPSoCs gezeigt werden
    corecore