Software-Entwicklung Vorgetäuschte Hardware

Wenn die Hardware noch nicht zur Verfügung steht oder das Einsatzszenario aus tausenden Geräten im Feld so komplex ist, dass es nicht mit einem Testaufbau durchgespielt werden kann, ist das ein typischer Fall für den Simulator wie Wind Rivers Simics, der in einer neuen Version erschienen ist.

Simulation gibt es auf mehreren Ebenen, entweder auf Software- oder auf Hardware-Ebene. Wind Rivers VxSim ist beispielsweise ein Software-Simulator, der das Betriebssystem VxWorks simuliert und sich für den Test von compilierten VxWorks-Anwendungen eignet. Dieser Simulator bildet das API von VxWorks nach und auch das nur auf x86-Prozessoren.

Wenn die gesamte Software inklusive Betriebssystem getestet werden soll, ist ein Hardware-Simulator nötig. Hier unterscheidet man wiederum zwischen Gate-Level- und Transaction-Level-Simulation. Gate-Level-Simulation wird für die Chip-Entwicklung benötigt, wenn fast jeder Transistor simuliert werden muss. Für die Software-Entwicklung reicht die Transaction-Level-Simulation aus, bei der die Prozessor-befehle simuliert werden. Zu dieser Kategorie von Simulatoren gehört Simics von Wind River, das jetzt in Version 5.0 erschienen ist.

Generell gilt die Simulation von Hardware als langsam, da der Instruktionssatz des Zielsystems, also z.B. PowerPC oder ARM, in Intel-Prozessorbefehle übersetzt werden muss. Allerdings ist die Geschwindigkeitsfrage differenziert zu betrachten. Da Simics die Prozessor-Befehle nicht en detail nachbildet, sondern nur das Ergebnis liefert, gehen manche Vorgänge auch schneller. Beispiele: Wenn aus dem Hauptspeicher gelesen wird, kann auf die Wartezyklen verzichtet werden und beim Booten kann auf die Initialisierung bzw. das Warten auf Peripheriegeräte verzichtet werden. So geht das simulierte Booten z.B. wesentlich schneller als auf der realen Hardware, wohingegen der Ablauf eines rechenintensiven Programms etwa um den Faktor zwei bis drei verlangsamt ist.

Eine der neuen Fähigkeiten von Simics 5 ist nun, dass die Simulation multi-threaded – also parallelisiert – ablaufen kann. Bei einer entsprechend leistungsfähigen Entwicklungsstation kann das dazu führen, dass die Simulation sogar schneller ist als das reale Zielsystem. Der große Vorteil eines Hardware-Simulators wie Simics ist, dass die Software nichts davon merkt, dass sie sich in einer virtuellen, simulierten Welt befindet.