Computer architecture simulator
From Wikipedia, the free encyclopedia
| This article does not cite any references or sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed. (June 2009) |
|
|
It has been suggested that Full system simulator be merged into this article or section. (Discuss) Proposed since April 2010. |
|
|
It has been suggested that Cycle accurate simulator be merged into this article or section. (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.
Contents |
[edit] 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.
[edit] 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.
[edit] 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
- M5: a freely available academic full system simulator developed at the University of Michigan
- MikroSim: a Microcode programmable CPU simulator
- OVPsim [1]: a freely available full system simulator
- PTLsim, a cycle accurate x86-64 full system simulator
- SESC:a cycle-accurate architectural simulator
- Simics: a full system simulator
- SimpleScalar: a microarchitectural simulator suite
- MARSSx86: Micro-ARchitectural and System Simulator for x86-based Systems
- GEMS [2]: General Execution-driven Multiprocessor Simulator
[edit] See also
[edit] External links
- SimpleScalar Official Website
- The Archer virtual infrastructure for computer architecture simulation
- "Mikrocodesimulator MikroSim 2010". 0/1-SimWare. http://www.mikrocodesimulator.de/index_eng.php. Retrieved 2010-12-06.
| This simulation software article is a stub. You can help Wikipedia by expanding it. |