- 191 -
Information
/ Kommunikation
Verfahren
zur Simulation von Prozessorkernen (Virtual CPU)
Idee: Dr.
Albrecht Mayer, Deisenhofen
Komplexe
Systeme bestehen heutzutage aus mehreren Prozessorkernen, Bussen, Speichern
undPeripheriemodulen. Diese können sogar alle auf dem gleichen Chip sein
(System on a Chip,SoC). Systemsimulationen dienen dazu, möglichst
kosteneffizient die Architektur zu verifizierenund zu optimieren. Die
Systemsimulation sollte schnell und einfach erstellbar sein und mit hoherSimulationsgeschwindigkeit
ablaufen.
Bisher
wurden sogenannte Instruction Set Simulatoren (ISS) verwendet, die für eine
bestimmteCPU (z. B. C166S, TriCore) Binärprogramme funktional richtig
abarbeiten können. Diesebekommen für die Systemsimulation ein mehr oder weniger
zeitlich genaues Interface zurHardware. Falls ein exaktes Zeitverhalten
gewünscht wird (cycle accurate), dann ist die Erstellungund Verifikation dieser
Modelle sehr aufwendig. Weitere Nachteile dieses Ansatzes sind:
-� � � � Die Erstellung, Verifikation und Wartung
der Prozessormodelle ist aufwendig und teuer.
-� � � � Die Integration eines solchen
Prozessormodells in eine Systemsimulation ist aufwendig.
-� � � � Für verschiedene Szenarien mit
unterschiedlichen CPUs tritt dieser Aufwand mehrfach auf. -
- � � � � Das Zeitverhalten der CPU kann nicht
direkt gesteuert werden, um kritische Fälle zuerzwingen.
-� � � � Systemtests, die auf dem Prozessor
ablaufen, benötigen für die Fehlererkennung selbstsimulierte Zeit und
beeinflussen dadurch das Systemverhalten.
-� � � � Die Simulationsgeschwindigkeit eines genauen Prozessormodells
ist niedrig.
-� � � � Die Entwicklungsumgebung (Compiler,
Linker, Debugger) des spezifischen Prozessors mussverwendet werden.
Im folgenden
wird eine neue Modellierungsmethode von Prozessorkernen in
Systemsimulationenbeschrieben.
Die Virtual
CPU (VC) Idee löst das Problem der Prozessormodellierung für C++
basierteSystemsimulationen. Die Grundidee ist, dass in diesem Fall ja die ganze
Simulation ein„C-Programm" ist und damit ein Block das Verhalten einer CPU
nachbilden kann. DieGrundeigenschaften eines Programms, das auf einer CPU
ausgeführt wird sind:
1.� � � � Berechnungen, Anweisungen, etc. werden
durchgeführt.
Siemens
Technik Report
Jahrgang
4� Nr. 12� Juli 2001
- 192 -
2.� � � � Unterprogramme werden aufgerufen.
3� � � � Während der Programmverarbeitung vergeht
Zeit.
3.� � � � Auf Hardwarekomponenten wird über
spezielle Datenadressen zugegriffen.
4.� � � � Interrupts werden mit Interrupt Service
Routines (ISR) automatisch bedient.
5.� � � � Ein Reset setzt die CPU in ihren
Anfangszustand zurück.
Der Virtual
CPU Ansatz erlaubt es, diese Eigenschaften direkt, d.h. ohne den Umweg über
einISS basiertes Prozessormodell, mit einem Objekt in der Systemsimulation zu
erreichen. Dazuwird eine C++ Basisklasse mit den folgenden Eigenschaften zur
Verfügung gestellt:
-� � � � Es gibt eine Methode um simulierte Zeit
vergehen zu lassen wait(n cycles).
-� �...