Computer architecture simulator
Encyclopedia
In computer science
, a computer architecture simulator, or an architectural simulator, is a piece of software to model computer devices (or components) to predict outputs and performance
metrics on a given input. An architectural simulator can model a target microprocessor
only (see instruction set simulator
), or an entire computer system (see full system simulator) including a processor, a memory system, and I/O devices.
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...
, a computer architecture simulator, or an architectural simulator, is a piece of software to model computer devices (or components) to predict outputs and performance
Performance
A performance, in performing arts, generally comprises an event in which a performer or group of performers behave in a particular way for another group of people, the audience. Choral music and ballet are examples. Usually the performers participate in rehearsals beforehand. Afterwards audience...
metrics on a given input. An architectural simulator can model a target microprocessor
Microprocessor
A microprocessor incorporates the functions of a computer's central processing unit on a single integrated circuit, or at most a few integrated circuits. It is a multipurpose, programmable device that accepts digital data as input, processes it according to instructions stored in its memory, and...
only (see instruction set simulator
Instruction Set Simulator
An instruction set simulator is a simulation model, usually coded in a high-level programming language, which mimics the behavior of a mainframe or microprocessor by "reading" instructions and maintaining internal variables which represent the processor's registers.Instruction simulation is a...
), or an entire computer system (see full system simulator) including a processor, a memory system, and I/O devices.
Categories
Computer architecture simulators can be classified into many different categories depending on the context.- Scope: micro-architecture vs. full-system simulators. The modeled scope could be only one microprocessor or the whole computer system.
- Detail: functional vs. timing (or performance) simulators. Functional simulators emphasize achieving the same function as the modeled components(What to be done.), while timing simulators strive to accurately reproduce the performance/timing features (When is done.) of the targets in addition to their functionalities.
- Input: trace-driven (or event-driven) vs. execution-driven simulators. Traces/Events are pre-recorded streams of instructions with some fixed input. Execution-driven simulators allow dynamic change of instructions to be executed depending on different input data.
Benefits of simulators
Architectural simulators are very useful for the following purposes:- evaluating different hardware designs without building costly physical hardware systems.
- enabling the opportunities to access non-existing computer components or systems
- obtaining detailed performance metrics: A single execution of simulators can often generate a large set of performance data.
- debugging: Debugging on real hardware typically require re-booting and re-running the code to reproduce the problems. In contrast, some simulators have a fully controlled environment and allow software developers to run code backward once an error is detected.
Implementations
Some popular architectural simulators include:- CPU SimCPU SimCPU Sim is a software development environment for the simulation of simple computers. It was developed by Dale Skrien to help students understand computer architectures. With this application the user is able to simulate new or existing simple CPUs. Users can create new virtual CPUs with custom...
, a Java application that allows the user to design and create a simple architecture and instruction set and then run programs of instructions from the set through simulation - M5: a freely available academic full system simulator developed at the University of MichiganUniversity of MichiganThe University of Michigan is a public research university located in Ann Arbor, Michigan in the United States. It is the state's oldest university and the flagship campus of the University of Michigan...
- MikroSimMikroSimThe program MikroSim is an educational software for hardware-non-specific explanation of the general functioning and behaviour of a virtual processor, running on the operating system Microsoft Windows...
: a Microcode programmable CPU simulator - OVPsimOVPsimOVPsim is a multiprocessor platform emulator that uses dynamic binary translation technology to achieve high simulation speeds. It has public APIs allowing users to create their own processor, peripheral and platform models. Various models are available as source . OVPsim is a key component of the...
http://www.OVPworld.org: a freely available full system simulator - PTLsim, a cycle accurate x86-64 full system simulator
- SESC:a cycle-accurate architectural simulator
- SimicsSimicsSimics is a full-system simulator used to run unchanged production binaries of the target hardware at high-performance speeds. Simics was originally developed by the Swedish Institute of Computer Science , and then spun off to Virtutech for commercial development in 1998...
: a full system simulator - SimpleScalar: a microarchitectural simulator suite
- MARSSx86: Micro-ARchitectural and System Simulator for x86-based Systems
- GEMSGems-Gems:*gemstones*Gems , a 1988 compilation album by Aerosmith*Gems , a 1994 studio album by Patti LaBelle*Gems , a 2011 studio album by Michael Bolton...
http://www.cs.wisc.edu/gems/home.html: General Execution-driven Multiprocessor Simulator