Home
People
Publications
Multiprocessor Architecture Watch
Concurrency Abstraction Watch
Laboratory
Modern Embedded Systems: Compilers, Architectures, and Languages
Forum
Downloads
Previous topic  |  This topic  |  Next topic
Previous article  |  This article  |  Next article

Simit-ARM: A series of free instruction-set simulators and micro-architecture simulators
Christopher Brooks, 14 Feb 2005
Last updated: 14 Feb 2005

SimIt-ARM

Primary Author: Wei Qin (Princeton)
See http://simit-arm.sourceforge.net/ for up to date information.

SimIt is the name of a series of free instruction-set simulators and micro-architecture simulators. The intention of SimIt is to share research infrastructures with colleagues in all fields related to computer architecture.

The first release of the SimIt series is SimIt-ARM: simulators for the ARM architecture. The SimIt-ARM package contains an instruction-set simulator (sometimes called emulator) and a cycle-accurate simulator for the StrongARM architecture. Both simulators read ELF32 little-endian ARM-linux binaries and can simulate most of the SPEC Int and SPEC FP benchmarks. The instruction set simulator was formerly released as Armsim.

SimIt-ARM was developed to demonstrate the usefulness of the Operation State Machine model and the Mescal Architecture Description Language. SimIt-ARM is free software and you may use it under the terms of the GNU General Public License. See the enclosed COPYING file for more information.

SimIt-ARM features:

  • Very high simulation speed.
    On a Pentium III 846MHz desktop, the instruction-set simulator runs at above 9.5MIPS, and the cycle-accurate simulator runs at around 1MHz.


  • High accuracy.
    The cycle-accudate simulator is calibrated against a Linux based IPAQ PDA containing a SA-1100 chip. The timing accuracy is within 3% for integer benchmarks according to my measurements.


  • FPE support.
    The ARM FPE instructions are emulated by the NetWinder FPE library, which reflects the real execution trace on a Linux based ARM platform.


  • Auto-synthesized components.
    The binary decoders used in release 1.0 and above are automatically synthesized with high quality and guaranteed correctness (see reference 2). The cycle-accurate simulator in release 2.0 is mostly synthesized from a MADL (Mescal Architecture Description Language) program.


  • Multi-processor simulation support.
    Release 1.1 and beyond supports multi-processor simulation. More than one emulator or simulator instances can be created at the same time. Moreover, in relase 2.0, the processor core can communicate with external devices through either memory mapped means or comminication APIs.

The structure of the instruction set simulator resembles that of the powerpc emulator written by Gilles Mouchard. Simplescalar was also used for reference and validation. The cycle accurate simulator is based on the Operation State Machine formalism (see reference 1).

  • Sourceforge download page
  • With the help of Artur Klauser, the speed of the instruction set simulator (ISS) of release 2.0.2 can improve by 20% if configured with the --enable-mmap switch. The result of the switch is that 4MB memory pages will be used for emulation, instead of the default 4KB pages. Release 2.0 and later features the fastest cycle-accurate simulation speed for StrongARM. Its speed almost doubles that of all previous releases. The secret of the blazing speed is the Mescal Architecture Description Language. The cycle-accurate simulator is mostly synthesized from a description in MADL (check out simulator/src/).

    To build ARM-linux binaries, you need a cross-compiler. The simplest way to obtain such a compiler is to download prebuilt binaries from here. But if you don't have the permission to install RPMs on your system, or if you prefer trying the hard way, you can build the cross-compiler yourself. See here for building instructions. Note that you should avoid using the cross-compiler distributed along with the simplescalar ARM target. That cross-compiler utilizes header files from some possibly old linux kernel, which is not compatible with SimIt-ARM (The problem is related to the definition of the stat structure).

    Download some prebuilt benchmarks benchmarks.tar.bz2(6.25MBytes).

    Feedback or contributions are welcome!

    Reference:

    1. Wei Qin, Sharad Malik. Flexible and Formal Modeling of Microprocessors with Application to Retargetable Simulation. Design, Automation, and Test in Europe (DATE), March, 2003.
    2. Wei Qin, Sharad Malik. Automated Synthesis of Efficient Binary Decoders for Retargetable Software Toolkits. DAC'03, June, 2003.

    Previous topic  |  This topic  |  Next topic
    Previous article  |  This article  |  Next article
    Send feedback to mescal@gigascale.org
    Contact 
    ©2002-2018 U.C. Regents