Software-Entwicklung

Vorgetäuschte Hardware

17. August 2015, 15:45 Uhr | Joachim Kroll
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Vorwärts und rückwärts

Simics ist ein Systemsimulator. Er ermöglicht den Test komplexer Systeme – egal ob es sich dabei um Systeme handelt, die selbst komplex sind, weil sie aus heterogenen oder Multi-Core-Prozessoren bestehen, oder um einfache Systeme, die aber sehr kompl
Bild 2. Simics ist ein Systemsimulator. Er ermöglicht den Test komplexer Systeme – egal ob es sich dabei um Systeme handelt, die selbst komplex sind, weil sie aus heterogenen oder Multi-Core-Prozessoren bestehen, oder um einfache Systeme, die aber sehr komplex zu testen sind, z.B. weil tausende Netzwerkknoten zusammenwirken
© Wind River

Im Simulator läuft das originale Binärabbild, das der Compiler auswirft. Das erlaubt dann auch Effekte, die auf der echten Hardware nicht möglich sind: Mit Simics kann ein Snapshot des aktuellen Systemzustands gespeichert werden – entweder, um Teammitgliedern einen bestimmten Effekt oder Arbeitspunkt zu demonstrieren und von hier aus weiterzuarbeiten, oder um von hier den Code rückwärts ablaufen zu lassen, um Fehler einzugrenzen. Letzterer Effekt kann auch mit einem Hardware Debugger erreicht werden, der einen Trace aufgezeichnet hat.

Eine weitere neue Funktion von Simics 5 ist die Fehlerinjektion: mittels eines Framework, das alle möglichen Fehlerquellen simulieren kann. So lassen sich diverse Szenarien durchspielen, wie z.B. den Ausfall eines Prozessorkerns, einer Netzwerkverbindung oder die elektrische Trennung eines PCI-Gerätes. Die Fehlersimulation ist besonders sinnvoll für die Zertifizierung von Systemen mit funktionalen Sicherheitsanforderungen nach ISO 26262. Die Reaktion der Software auf zahlreiche Fehlerfälle, die mit realer Hardware nur mit großem Aufwand durchführbar sind, lässt sich hier testen.

Ein anderer Anwendungsfall für Simulation sind IoT-Szenarien aus verteilten Systemen. Man denke z.B. an eine Smart-Meter-Installation mit Tausenden von angeschlossenen Messstationen, die noch dazu für die Abrechnung relevant sind. Hier können möglicherweise ungeahnte Effekte auftauchen, die sich einer Testinstallation mit nur wenigen Testgeräten nicht einstellen. Wie gut, wenn man die Fernablesung bzw. -steuerung tausender Smart Meters vorher simulieren kann.

Modellierung des Zielsystems

Voraussetzung für eine Simulation ist das Vorhandensein eines Software-Modells des Zielsystems. Um an diese Modelle zu gelangen, erhält der Kunde drei Dinge: fertige, lauffähige Simulationsplattformen, ein Modellierungs- und Debug Tool, um diese Modelle zu modifizieren, und schließlich IP-Blöcke für Peripherie wie USB, PCI, I2C und Memory Controller. Die lauffähigen Simulationsmodelle sind in der Regel die Referenz-Boards für die jeweiligen Plattformen, die von Simics unterstützt werden. Dazu zählen Boards für die verschiedenen x86-CPUs von Intel, PowerPC/PowerQUICC von Freescale und die Cortex-Referenz-Boards von ARM. Das im jeweiligen Projekt genutzte Zielsystem kann sich der Kunde von Wind River entweder als Dienstleistung modellieren lassen oder er kann es mit dem Modellierungs-Tool selbst entwerfen. Wer selbst IP-Blöcke besitzt und die Hardware-Beschreibungssprache SystemC nutzt, kann auch eigene Blöcke in Simics einbauen. Durch diese Flexibilität lassen sich auch spezielle SoCs nachbilden. Das Lizenzmodell von Simics umfasst zwei Komponenten: die Entwicklungs-Tools, die pro Arbeitsplatz lizenziert werden, und die Architekturlizenz. Eine einfache Installation mit einem Arbeitsplatz und Unterstützung für ein Referenz-Board beginnt bei ca. 4000 US-Dollar. Große Installationen mit vielen Teammitgliedern können dann allerdings in die Hunderttausende gehen.

passend zum Thema


  1. Vorgetäuschte Hardware
  2. Vorwärts und rückwärts

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!