3 research outputs found
Effiziente externe Beobachtung von CPU-AktivitÀten auf SoCs
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
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
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