Computer architecture simulator
![]() | It has been suggested that Full system simulator be merged into this article. (Discuss) Proposed since April 2010. |
![]() | It has been suggested that Cycle accurate simulator be merged into this article. (Discuss) Proposed since April 2010. |
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.
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 is done), while timing simulators strive to accurately reproduce the performance/timing features (when is it done) of the targets in addition to their functionalities.
- Input (sometimes called Workload): 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.
Microarchitecture Simulation is a technique for modeling the design and behavior of a microprocessor and its components.
Full system simulation consist in the simulation of a complete computer system able to execute unmodified programs (it is this thus execution-driven). Such simulators are called emulator, in particular when they imitate existing (or discontinued) hardware instead of under development hardware.
Instruction Set Simulator and Cycle Accurate Simulator are simulators which scope is the simulation of a sole microprocessor. They diverge in the level of details that they provide. Instruction set simulators focus on the fast simulation of the processor functions while cycle accurate simulators aim at allowing accurate timings of the processor.
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 Sim, 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
- gem5: a freely available academic full system simulator developed at the University of Michigan
- GEMS [1]: General Execution-driven Multiprocessor Simulator
- MARSSx86: Micro-ARchitectural and System Simulator for x86-based Systems
- MikroSim: a Microcode programmable CPU simulator
- OVPsim [2]: a freely available full system simulator
- PTLsim, a cycle accurate x86-64 full system simulator
- SESC:a cycle-accurate MIPS architectural simulator
- Simics: a full system simulator
- SimpleScalar: a microarchitectural simulator suite
See also
External links
- The Archer virtual infrastructure for computer architecture simulation
- "Mikrocodesimulator MikroSim 2010". 0/1-SimWare. Retrieved 2010-12-06.