OVPsim
Encyclopedia
OVPsim is a multiprocessor
Multiprocessor
Computer system having two or more processing units each sharing main memory and peripherals, in order to simultaneously process programs.Sometimes the term Multiprocessor is confused with the term Multiprocessing....

 platform emulator
Emulator
In computing, an emulator is hardware or software or both that duplicates the functions of a first computer system in a different second computer system, so that the behavior of the second system closely resembles the behavior of the first system...

 that uses dynamic binary translation
Binary translation
In computing, binary translation is the emulation of one instruction set by another through translation of code. Sequences of instructions are translated from the source to the target instruction set...

 technology to achieve high simulation speeds. It has public APIs allowing users to create their own processor
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...

, peripheral
Peripheral
A peripheral is a device attached to a host computer, but not part of it, and is more or less dependent on the host. It expands the host's capabilities, but does not form part of the core computer architecture....

 and platform models. Various models are available as source http://ovplib.googlecode.com. OVPsim is a key component of the Open Virtual Platforms initiative. Requires registration to actually download.

Licensing

OVPsim is written and maintained by Imperas. The core simulation platform is proprietary software
Proprietary software
Proprietary software is computer software licensed under exclusive legal right of the copyright holder. The licensee is given the right to use the software under certain conditions, while restricted from other uses, such as modification, further distribution, or reverse engineering.Complementary...

; it is available free of charge
Gratis
Gratis is the process of providing goods or services without compensation. It is often referred to in English as "free of charge" or "complimentary"...

 for non-commercial usage, but commercial usage requires a license from Imperas.
Various processor, peripheral
Peripheral
A peripheral is a device attached to a host computer, but not part of it, and is more or less dependent on the host. It expands the host's capabilities, but does not form part of the core computer architecture....

 and platform models are available as free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

 under the Apache License 2.0
Apache License
The Apache License is a copyfree free software license authored by the Apache Software Foundation . The Apache License requires preservation of the copyright notice and disclaimer....

.

Details

There are three main components of OVP: open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 models, fast OVPsim simulator, and modeling API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

s. These components are designed to make it easy to assemble multi-core heterogeneous or homogeneous platforms with complex memory hierarchies, cache systems and layers of embedded software that can run at hundreds of MIPS on standard desktop PCs.
OVPSim is not cycle-accurate.
There are many examples of components, and complete virtual platforms that can boot Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

 in under 5 seconds at OVP Homepage.

Open source models

Within OVP there are several different model categories. These models are provided as both pre-compiled object code, and as source files. Currently there are processor models of ARM (processors using the ARMv4, ARMv5, ARMv6, ARMv7 instruction sets), MIPS (processors using the MIPS32 and microMIPS instruction sets), ARC600/ARC700, NEC v850, PowerPC and OpenRisc families. There are also models of many different types of system components including RAM, ROM, cache, and bridge. There are also peripheral models including DMA, UART, and FIFO. There are also models of several different pre-built platforms including software like ucLinux to run on them.
One of the main uses of the OVP simulation infrastructure is the ability to create and simulate your own models - either from scratch, or by using one of the open source models as a starting point. The OVP APIs are tailored to different model types: processors, behavioral models of peripherals, and platforms.

OVPsim simulator

The OVPsim is available as an OVP reference and is free for non-commercial usage. The simulator uses dynamic binary translation
Binary translation
In computing, binary translation is the emulation of one instruction set by another through translation of code. Sequences of instructions are translated from the source to the target instruction set...

 technology to achieve very high simulation speeds (more than a billion simulated instructions per second is possible in some cases on regular desktop PC machines). OVPsim is available for x86 Windows and Linux hosts.

OVPsim comes with a GDB RSP interface to allow simulated processors to be debugged with any standard debugger that supports this GDB RSP interface.

OVPsim can be encapsulated and called from within other simulation environments and comes as standard with wrappers for C, C++, and SystemC. OVPsim includes native SystemC TLM2.0 wrappers. It is also possible to encapsulate legacy models of processors and behavioral models so that they can be used by OVPsim.

Modeling APIs

OVP models are created using C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....

/C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

 API
Application programming interface
An application programming interface is a source code based specification intended to be used as an interface by software components to communicate with each other...

s. There are three main APIs: ICM, VMI, BHM/PPM.

ICM

For platforms there is the ICM API for controlling, connecting, and observing platforms. This API can be called from C, C++, or SystemC. The platform provides the basic structure of the design and creates, connects, and configures the components. The platform also specifies the address mapping, and software that is loaded on the processors. It is very easy with ICM to specify very complex and complete platforms of many different processors, local and shared memories, caches, bus bridges, peripherals and all their complex address maps, interrupts and operating systems and application software.

VMI

For processor modeling there is the VMI API. These API functions provide the ability to easily describe the behavior of the processor. A processor model written in C using the VMI decodes the target instruction to be simulated and translates this to native x86 instructions that are then executed on the PC. VMI can be used for modeling 8, 16, 32, and 64 bit architectures. There is an interception mechanism enabling emulation of calls to functions in the application runtime libraries (such as write, fstat etc) without requiring modification of either the processor model or the simulated application.

PPM & BHM

Behavioral components, peripherals, and the overall environment is modeled using C code and calls to these two APIs. Underlying these APIs is an event based scheduling mechanism to enable modeling of time, events, and concurrency. Peripheral models provide callbacks that are called when the application software running on processors modeled in the platform access memory locations where the peripheral is enabled.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK