OVPsim - OVPsim

OVPsim
Entwickler Imperas
Stabile Version
20210408.0 / 8. April 2021 ; Vor 43 Tagen  ( 2021-04-08 )
Betriebssystem Windows , Linux
Art Emulator
Lizenz Proprietary , Apache License Version 2.0 für Modelle
Webseite www .ovpworld .org

OVPsim ist ein Multiprozessor- Plattform- Emulator (oft als Vollsystem -Simulator bezeichnet ), mit dem unveränderte Produktions-Binärdateien der Zielhardware ausgeführt werden. Es verfügt über öffentliche APIs , mit denen Benutzer ihre eigenen Prozessor- , Peripherie- und Plattformmodelle erstellen können . Verschiedene Modelle sind als Open Source verfügbar. OVPsim ist eine Schlüsselkomponente der Open Virtual Platforms-Initiative (OVP), einer Organisation, die gegründet wurde, um die Verwendung offener virtueller Plattformen für die Entwicklung eingebetteter Software zu fördern. OVPSim erfordert zum Herunterladen eine OVP-Registrierung.

Lizenzierung

OVPsim wird von Imperas entwickelt und gepflegt . Die Kernsimulationsplattform ist proprietäre Software . Es ist kostenlos für nichtkommerzielle Zwecke erhältlich. Für die kommerzielle Nutzung ist eine kostengünstige Lizenz von Imperas erforderlich, um die Wartung abzudecken. Unter der Apache License Version 2.0 sind verschiedene Prozessor-, Peripherie- und Plattformmodelle als kostenlose Software verfügbar .

Einzelheiten

Es gibt drei Hauptkomponenten von OVP: Open-Source-Modelle , schneller OVPsim-Simulator und Modellierungs- APIs . Diese Komponenten sollen es einfach machen, heterogene oder homogene Multi-Core-Plattformen mit komplexen Speicherhierarchien, Cache-Systemen und Schichten eingebetteter Software zusammenzustellen, die mit Hunderten von MIPS auf Standard-Desktop-PCs ausgeführt werden können. OVPSim gilt als Anweisung genau , aber nicht zyklusgenau. Auf der OVP-Homepage gibt es viele Beispiele für Komponenten und vollständige virtuelle Plattformen, mit denen ein Linux- Kernel in weniger als 5 Sekunden gestartet werden kann.

Open Source Modelle

Innerhalb von OVP gibt es verschiedene Modellkategorien. Diese Modelle werden sowohl als vorkompilierter Objektcode als auch wie in einigen Fällen als Quelldateien bereitgestellt. OVPsim liefert keinen Quellcode mehr für die ARM- und MIPS-Prozessormodelle. Derzeit gibt es Prozessormodelle von ARM (Prozessoren mit den Befehlssätzen ARMv4, ARMv5, ARMv6, ARMv7, ARMv8) bis zu ARM Cortex-A72MPx4 (einschließlich ARMv8-Modellen mit mehreren Clustern mit GICv3), Imagination MIPS (Prozessoren mit MIPS32 , MIPS64) (microMIPS-, nanoMIPS- und MIPS R6-Befehlssätze) bis zu den Kernen microAptiv, interAptiv, proAptiv und Warrior, Synopsys Virage ARC600 / ARC700 und ARC EM, Renesas v850 , RH850, RL78 und m16c, PowerPC , Altera Nios II , Xilinx MicroBlaze , RISC-V (Modelle mit 32-Bit-RV32I, RV32M, RV32IM, RV32A, RV32IMA, RV32IMAC, RV32F, RV32D, RV32E, RV32EC, RV32C, RV32G, RV32GC, RV32GCN, RV32IMAFD und 64-Bit-RV64I, RV64M, RV64IMAC, RV64I, RV64M, RV64IMC , RV64G, RV64GC, RV64GCN, RV64IMAFD (ISA-Teilmengen), Anden-Technologie N25 / NX25, N25F / NX25F, A25 / AX25, A25F / AX25F, Microsemi CoreRISCV / MiV-RV32IMA, SiFive E31, E51, U54, U54 und OpenRisc- Familien. Die OpenHW-Gruppe verwendet OVPsim als goldene Referenz für ihre Open-Source-RISC-V CV32E40-Kerne. Es gibt auch Modelle vieler verschiedener Arten von Systemkomponenten, einschließlich RAM, ROM, Cache und Bridge. Es gibt Peripheriemodelle wie Ethernet MAC, USB, DMA, UART und FIFO. Es stehen verschiedene vorgefertigte Plattformen zur Verfügung, darunter die gängigsten Betriebssysteme ucLinux , Linux , Android , FreeRTOS , Nucleus und Micrium.

Eine der Hauptanwendungen der OVP-Simulationsinfrastruktur ist die Möglichkeit, benutzerdefinierte Modelle zu erstellen und zu simulieren - entweder von Grund auf neu oder mithilfe eines der Open Source-Modelle als Ausgangspunkt. Die OVP-APIs sind auf verschiedene Modelltypen zugeschnitten: Prozessoren, Verhaltensmodelle von Peripheriegeräten und Plattformen. Es stehen über 100 Quellmodellvarianten zum Download zur Verfügung.

OVPsim-Simulator

Der OVPsim-Simulator ist als OVP-Referenz verfügbar und für den nichtkommerziellen Gebrauch kostenlos. Der Simulator verwendet die dynamische binäre Übersetzungstechnologie , um sehr hohe Simulationsgeschwindigkeiten zu erreichen. Mehr als eine Milliarde simulierte Anweisungen pro Sekunde sind möglich, in einigen Fällen auf normalen Desktop-PC-Computern. OVPsim ist für x86 Windows- und Linux- Hosts verfügbar .

OVPsim wird mit einer GDB- RSP-Schnittstelle (Remote Serial Protocol) geliefert, mit der Anwendungen, die auf simulierten Prozessoren ausgeführt werden, mit jedem Standard-Debugger debuggt werden können, der diese GDB-RSP-Schnittstelle unterstützt. OVPsim wird mit dem Imperas iGui Graphical Debugger sowie einer Eclipse IDE- und CDT-Schnittstelle geliefert.

OVPsim kann in anderen Simulationsumgebungen gekapselt und aufgerufen werden und wird standardmäßig mit Schnittstellendateien für C , C ++ und SystemC geliefert . OVPsim enthält native SystemC TLM 2.0-Schnittstellendateien. Es ist auch möglich, Legacy-Modelle von Prozessoren und Verhaltensmodelle zu kapseln, damit sie von OVPsim verwendet werden können.

Modellierungs-APIs

OVP-Modelle werden mithilfe von C / C ++ - APIs erstellt . Es gibt drei Haupt-APIs: OP, VMI, BHM / PPM.

OP

Die OP-API dient zum Steuern, Verbinden und Beobachten von Plattformen. Diese API kann von C, C ++ oder SystemC aufgerufen werden. Die Plattform stellt die Grundstruktur des Entwurfs bereit und erstellt, verbindet und konfiguriert die Komponenten. Die Plattform gibt auch die Adresszuordnung und die Software an, die auf die Prozessoren geladen wird. Mit OP ist es sehr einfach, sehr komplexe und vollständige Plattformen mit vielen verschiedenen Prozessoren, lokalen und gemeinsam genutzten Speichern, Caches, Busbrücken, Peripheriegeräten und all ihren komplexen Adresszuordnungen, Interrupts und Betriebssystemen sowie Anwendungssoftware anzugeben.

Die OP-API hat die ICM-API im Jahr 2016 abgelöst. Die ICM-API kann weiterhin für ältere Plattformen verwendet werden.

VMI

Die Prozessormodellierung wird von der VMI-API bereitgestellt. Diese API-Funktionen bieten die Möglichkeit, das Verhalten des Prozessors einfach zu beschreiben. Ein mit dem VMI in C geschriebenes Prozessormodell decodiert den zu simulierenden Zielbefehl und übersetzt diesen in native x86-Befehle, die dann auf dem PC ausgeführt werden. VMI kann zum Modellieren von 8-, 16-, 32- und 64-Bit-Architekturen verwendet werden. Es gibt einen Abfangmechanismus, der die Emulation von Aufrufen von Funktionen in den Laufzeitbibliotheken der Anwendung (wie Schreiben, fstat usw.) ermöglicht, ohne dass das Prozessormodell oder die simulierte Anwendung geändert werden müssen.

PPM & BHM

Verhaltenskomponenten, Peripheriegeräte und die Gesamtumgebung werden mithilfe von C-Code modelliert und diese beiden APIs aufgerufen. Diesen APIs liegt ein ereignisbasierter Planungsmechanismus zugrunde, mit dem Zeit, Ereignisse und Parallelität modelliert werden können. Peripheriemodelle bieten Rückrufe, die aufgerufen werden, wenn die Anwendungssoftware auf Prozessoren ausgeführt wird, die an den Speicherorten des Plattformzugriffs modelliert sind, an denen das Peripheriegerät aktiviert ist.

Benutzer

OVPsim wird von mehreren Bildungseinrichtungen verwendet, um eine Simulationsinfrastruktur für die Erforschung paralleler Computerplattformen, das gemeinsame Design von Hardware und Software, die Leistungsanalyse eingebetteter Systeme und als Grundlage für andere Entwicklungen eingebetteter Tools bereitzustellen. Es wird auch für Bildungskurse genutzt, um es den Schülern zu ermöglichen, Anwendungssoftware zu entwickeln und zu debuggen sowie virtuelle Plattformen und neue Modelle zu erstellen.

Eine Reihe führender Handelsunternehmen verwenden OVPSim auch als Grundlage für ihr Produktangebot. Die Technologie wurde von MIPS Technologies lizenziert, um Modellierungsunterstützung für die eingebettete Prozessorserie der MIPS-Architektur bereitzustellen , die in Zusammenarbeit mit dem führenden Prozessoranbieter ARM angeboten wird, und ist Teil der Europractice-Produktpalette für den allgemeinen Zugang zu europäischen Universitäten. Eine Version von OVPsim wird von der Compliance-Arbeitsgruppe der RISC-V Foundation als Referenzsimulator verwendet. Führende Halbleiterunternehmen wie Renesas haben den Simulator für ihre Prozessorentwicklungsarbeiten verwendet, wie in führenden Veröffentlichungen der Elektronikindustrie offenbart. Es wurde von NEPHRON +, einem EU-Forschungsprojekt, für seine Software- und Testentwicklungsumgebung ausgewählt. VinChip Systems Inc. aus Chennai , Indien, verwendete OpenOCD und OVPsim, um den möglicherweise ersten in Indien entwickelten 32-Bit-Prozessor zu entwickeln. Die OVP-Modelle und virtuellen Plattformen bilden die Grundlage für andere Aktivitäten von Imperas.

Verweise

Externe Links