OVPsim

Ovpsim
Entwickler (en) Imperas
Stabile Version
20220727.0 / 27 Juli 2022; vor 8 Tagen
Betriebssystem Fenster, Linux
Typ Emulator
Lizenz Proprietär, Apache -Lizenz Version 2.0 für Modelle
Webseite www.ovpworld.org

Ovpsim ist ein Multiprozessor Plattform Emulator (oft als a genannt Vollsystemsimulator) verwendet, um unveränderte Produktionsbinärdateien der Zielhardware auszuführen. Es hat öffentlich Apis Ermöglicht den Benutzern, ihre eigenen zu erstellen Prozessor, peripher und Plattformmodelle. Verschiedene Modelle sind als Open Source erhältlich.[1] OVPSIM ist eine Schlüsselkomponente der Open Virtual Platform Initiative (OVP).[2] Eine Organisation, die erstellt hat, um die Verwendung offener virtueller Plattformen für die eingebettete Softwareentwicklung zu fördern. OVPSIM benötigt die OVP -Registrierung zum Herunterladen.

Lizenzierung

Ovpsim wird von Imperas entwickelt und aufrechterhalten.[3] Die Kernsimulationsplattform ist proprietäre Software; Es ist kostenlos für den nichtkommerziellen Gebrauch erhältlich. Die kommerzielle Nutzung erfordert eine kostengünstige Lizenz von Imperas, um die Wartung abzudecken. Verschiedener Prozessor, peripher und Plattformmodelle sind als erhältlich als gratis Software unter dem Apache -Lizenzversion 2.0.

Einzelheiten

Es gibt drei Hauptkomponenten von OVP: Open-Source-Modelle, schneller Ovpsim -Simulator und Modellierung Apis. Diese Komponenten sind so konzipiert, dass es einfach ist, heterogene oder homogene Plattformen mit mehr Kern mit komplexen Speicherhierarchien, Cache-Systemen und Schichten eingebetteter Software zusammenzustellen, die auf Hunderten von MIPS auf Standard-Desktop-PCs ausgeführt werden können. Ovpsim wird berücksichtigt Anweisung genau, aber nicht zyklusgenau. Es gibt viele Beispiele für Komponenten und vollständige virtuelle Plattformen, die a booten können Linux Kernel in weniger als 5 Sekunden auf der OVP -Homepage.

Open Source -Modelle

Innerhalb von OVP gibt es verschiedene Modellkategorien. Diese Modelle werden sowohl als vorkompilierter Objektcode als auch in einigen Fällen Quelldateien bereitgestellt. OVPSIM liefert keinen Quellcode mehr für die ARM- und MIPS -Prozessormodelle. Derzeit gibt es Prozessormodelle von ARM (Prozessoren, die die Anweisungssätze von ARMV4, ARMV5, ARMV6, ARMV7, ARMV8) bis zum ARM Cortex-A72MPX4 (und einschließlich Multi-Cluster-ARMV8-Modellen mit GICV3), bis zum ARM Cortex-A72MPX4) Vorstellung MIPS (Prozessoren verwenden MIPS32, MIPS64, Micromips, Nanomips und MIPS R6 -Befehlssätze) bis zur Microaptiv-, Interaptiv-, Proaptiv- und Kriegerkerne. Synops Virage ARC600/ARC700 und ARC EM, Renesas V850, RH850, RL78 und M16C, Powerpc, Altera Nios II, Xilinx Microblaze, Risc-v (models using 32bit RV32I, RV32M, RV32IM, RV32A, RV32IMA, RV32IMAC, RV32F, RV32D, RV32E, RV32EC, RV32C, RV32G, RV32GC, RV32GCN, RV32IMAFD and 64bit RV64I, RV64M, RV64IMAC, RV64F, RV64D, RV64C, RV64G, RV64GC , RV64GCN, RV64IMAFD ISA -Untergruppen), Anden -Technologie N25/NX25, N25F/NX25F, A25/AX25, A25F/AX25F, Microsemi Coreriscv/MIV-RV32IMA, Sieben E31, E51, U54, U54-MC, Freedom U540, Codasip Series 1, 3, 5, 7 Risc-V-Kerne, Intel NIOSV RISC-V Core, Texas Instrumente TMS320 DSP und OpenRISC Familien. Die OpenHW-Gruppe verwendet Ovpsim als goldene Referenz für ihre Open-Source-RISC-V CV32E40- und CV32E20-Kerne. Es gibt auch Modelle vieler verschiedene Arten von Systemkomponenten, einschließlich RAM, ROM, Cache und Brücke. Es gibt periphere Modelle wie Ethernet MAC, USB, DMA, UART und FIFO. Es stehen verschiedene vorgefertigte Plattformen zur Verfügung, einschließlich der häufigsten Betriebssysteme[4] Uclinux, Linux, Android, Freertos, Kern, Mikrium.

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

Ovpsim Simulator

Der OVPSIM-Simulator ist als OVP-Referenz erhältlich und für den nichtkommerziellen Gebrauch kostenlos. Der Simulator verwendet dynamisch binäre Übersetzung Technologie, um sehr hohe Simulationsgeschwindigkeiten zu erreichen. In einigen Fällen sind mehr als eine Milliarde simulierte Anweisungen pro Sekunde auf regelmäßigen Desktop -PC -Maschinen möglich. Ovpsim ist für verfügbar für x86 Fenster und Linux Gastgeber.

Ovpsim kommt mit einem GDB RSP -Schnittstelle (Remote Serial Protocol), mit der Anwendungen, die auf simulierten Prozessoren ausgeführt werden, mit jedem Standard -Debugger, der diese GDB -RSP -Schnittstelle unterstützt, debuggiert. Ovpsim ist mit dem grafischen Debugger von Imperas Igui sowie einer Eclipse -ID- und CDT -Schnittstelle ausgestattet.

Ovpsim kann eingekapselt und aus anderen Simulationsumgebungen aufgerufen werden[5] und kommt Standard mit Schnittstellendateien für C, C ++, und Systemc.[6] Ovpsim umfasst native Systems Tlm2.0 Schnittstellendateien. Es ist auch möglich, Legacy -Modelle von Prozessoren und Verhaltensmodellen zu verkörpern, damit sie von Ovpsim verwendet werden können.

Modellierung von APIs

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

Op

Die OP -API ist für die Steuerung, Verbindung und Beobachtung von Plattformen konzipiert. Diese API kann aus C, C ++ oder SystemC aufgerufen werden. Die Plattform bietet die Grundstruktur des Designs und erstellt, verbindet und konfiguriert die Komponenten. Die Plattform gibt auch die Adresszuordnung und die Software an, die auf die Prozessoren geladen wird. Bei OP ist es sehr einfach, sehr komplexe und vollständige Plattformen vieler verschiedener Prozessoren, lokaler und gemeinsamer Erinnerungen, Caches, Busbrücken, Peripheriegeräte und aller komplexen Adresskarten, Interrupts und Betriebssysteme und Anwendungssoftware anzugeben.

Die OP -API hat die ICM -API im Jahr 2016 ersetzt. Die ICM -API ist für ältere Plattformen immer noch verwendet.

VMI

Die Prozessormodellierung erfolgt von der VMI -API. Diese API -Funktionen bieten die Möglichkeit, das Verhalten des Prozessors leicht zu beschreiben. Ein in C unter Verwendung des VMI geschriebenes Prozessormodell decodiert die zu simulierte Zielanweisung und übersetzt diese in native X86 -Anweisungen, die dann auf dem PC ausgeführt werden. VMI kann zur Modellierung von Architekturen von 8, 16, 32 und 64 Bit verwendet werden. Es gibt einen Abfangen -Mechanismus, der die Nachahmung von Aufrufen von Funktionen in den Anwendungslaufzeitbibliotheken (z. B. Schreiben, Fstat usw.) ermöglicht, ohne dass das Prozessormodell oder die simulierte Anwendung geändert werden muss.

Ppm & bhm

Verhaltenskomponenten, Peripheriegeräte und die Gesamtumgebung werden mit C -Code und Aufrufen dieser beiden APIs modelliert. Diese APIs zugrunde liegt ein ereignisbasierter Planungsmechanismus, um die Modellierung von Zeit, Ereignissen und Parallelität zu ermöglichen. Periphere Modelle bieten Rückrufe an, die aufgerufen werden, wenn die Anwendungssoftware, die auf Prozessoren ausgeführt wird, in den Plattformzugriffsspeicherorten modelliert, an denen der Peripherieur aktiviert ist.

Benutzer

OVPSIM wird von mehreren Bildungseinrichtungen verwendet, um eine Simulationsinfrastruktur für die Forschung paralleler Computerplattformen bereitzustellen,[7][8] Hardware/Software-Co-Design,[9] Leistungsanalyse eingebetteter Systeme,[10] und als Grundlage für andere eingebettete Werkzeugentwicklungen. Es wird auch für Bildungskurse genutzt, damit die Schüler Anwendungssoftware entwickeln und debuggen und virtuelle Plattformen und neue Modelle erstellen können.

Eine Reihe führender Handelsorganisationen nutzen OVPSIM auch als Grundlage für ihre Produktangebote. Die Technologie wurde von MIPs lizenziert[11] Technologien zur Modellierung von Modellenunterstützung für ihre MIPS -Architektur Embedded Processor Range, Funktionen in einer Partnerschaft mit dem führenden Prozessoranbieter -Arm,[12][13] und ist Teil der Europraction[14] Produktpalette für den allgemeinen Zugang zu europäischen Universitäten. Eine Version von Ovpsim wird von der verwendet Risc-v Arbeitsgruppe Compliance der Stiftung[15] als Referenzsimulator. Führende Halbleiterunternehmen wie Renesas haben den Simulator für seine Prozessorentwicklungsarbeiten verwendet, wie sie in führenden Publikationen der elektronischen Industrie bekannt gegeben wurde.[16] Es wurde von Nephron+, einem EU -Forschungsprojekt, für seine Software- und Testentwicklungsumgebung ausgewählt.[17] Vinchip Systems Inc. von ChennaiIndien nutzte OpenOCD und Ovpsim, um den ersten 32-Bit-Prozessor in Indien zu entwickeln.[18] Die OVP -Modelle und virtuellen Plattformen bilden die Grundlage für andere Aktivitäten, die von Imperas durchgeführt werden.

Verweise

  1. ^ "Komponentenbibliothek der virtuellen Plattformen öffnen". Ovpworld.org. 21. November 2012. Abgerufen 8. Mai 2013.
  2. ^ "Öffnen virtuelle Plattformen". Ovpworld.org. 21. November 2012. Abgerufen 8. Mai 2013.
  3. ^ "Imperas". Imperas. 2. Juli 2008. Abgerufen 10. September 2013.
  4. ^ "MIPS Linux". Linux mips. 24. November 2008. Abgerufen 10. September 2013.
  5. ^ "Cadence Zynq". Kadenz. 2. April 2010. Abgerufen 10. September 2013.
  6. ^ "Es könnte Wert in den Imperas -Modellen geben". Systemc.org. 17. Februar 2010. Abgerufen 19. September 2013.
  7. ^ "Hybrid -Simulations -Framework für virtuelle Prototypen mit OVP, Systemc & scmleducation" (PDF). vdtt.iitd.ac.in. 11. Januar 2009. Abgerufen 9. Mai 2013.
  8. ^ Pinto, C.; Raghav, S.; Marongiu, A.; Ruggiero, M.; Atienza, D.; Benini, L. (2011). "GPGPU-beschleunigte parallele und schnelle Simulation von Tausendkernplattformen". 2011 11. IEEE/ACM Internationales Symposium über Cluster-, Cloud- und Grid -Computing (PDF). S. 53–62. doi:10.1109/ccgrid.2011.64. ISBN 978-1-4577-0129-0.
  9. ^ Nita, ich.; Lazarescu, V.; Constantinescu, R. (2009). "Eine neue HW/SW-Co-Design-Methode für Multiprozessorsysteme für Chipanwendungen". 2009 Internationales Symposium für Signale, Schaltkreise und Systeme. S. 1–4. doi:10.1109/ISSCs.2009.5206089. ISBN 978-1-4244-3785-6.
  10. ^ "Verwenden von Ovpsim für die Leistungsschätzung komplexer RISC -basierter Plattformen". www.embeded.com. 16. Dezember 2012. Abgerufen 8. Mai 2013.
  11. ^ "MIPS Technologies Signs Lizenz zur Verteilung der OEM -Version des Imperas OVP -Simulators". Bloomberg.com. 24. Februar 2011. Abgerufen 26. Juni 2013.
  12. ^ "Ovpsim von Imperas Software Ltd". ARM Connected Community. 1. Januar 2012. Abgerufen 26. Juni 2013.
  13. ^ "Imperas beruht schnelle Modelle des Arm Cortex-A15-Prozessors". Eetimes. 8. März 2012. Abgerufen 19. September 2013.
  14. ^ "Europractice Ovpsim Datenblatt" (PDF). Europraktik. 10. November 2012. Abgerufen 10. September 2013.
  15. ^ "RISC-V Compliance Arbeitsgruppe". riscv.org. 6. Juni 2018. Abgerufen 6. Juni 2018.
  16. ^ "Prozessormodelle helfen Automobilsoftware -Tests". Eetimes. 14. Oktober 2011. Abgerufen 10. September 2013.
  17. ^ Maxfield, Clive (15. Mai 2012). "Offene virtuelle Plattformen, die vom EU -Forschungsprojekt ausgewählt wurden". EE mal.
  18. ^ "'First' Indien entwickelte 32-Bit-Prozessordebüts ". EE Times-India. 24. Juni 2009. ... Vinchip Systems Inc. hat veröffentlicht ..., was behauptet, der erste 32-Bit-Prozessor, der in Indien entwickelt wurde. ... Die Unterstützung für virtuelle Prototypen wurde vom ... Ovpsim Simulator ... bereitgestellt ...

Externe Links