Skip to content

FleximSharp - A modular and highly extensible multicore simulator written in C#/Mono. This project is suspended for the moment. Please continue hacking with my new project "FleximJ" which is a clone and continuing effort of flexim in Java.

mcai/FleximSharp

Repository files navigation

 _______________________________________
/ README: FleximSharp - A modular and   \
| highly extensible multicore simulator |
\ written in C#/Mono.                   /
 ---------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

Current Version: 0.1 Pre-release.

This README briefly describes what FleximSharp is and how to setup & run FleximSharp. For more details, 
please refer to the FleximSharp User Guide (to be added in near future)  under the subdirectory doc/ of the distribution.

== License Information ==
   Copyright (c) 2010 by Min Cai <min.cai.china@gmail.com>
   
   This program is free software, licensed under the GPL3.
   Please, read the license file "COPYING" for further information.

== About ==
   FleximSharp is an active clone of Flexim (http://github.com/mcai/flexim) written in C#/Mono.
   It is a modular and highly extensible architectural simulator for evaluating
   emerging multicore processors. It can run statically compiled MIPS32 LE programs.
   
   FleximSharp strives to provide a clearly-written, object-oriented, type-safe and pointerless
   multicore simulation environment running on managed .NET CLR for architectural researchers.

== Web Site ==   
   Please obtain the latest FleximSharp code from http://github.com/mcai/FleximSharp.

== Key Features ==
   Architectural:
   * Simulation of a superscalar pipeline with out-of-order execution.
   
   * Multi-level memory hierarchy with the directory-based MESI cache coherence protocol.
   
   Non-architectural:
   * Developed from scratch in the object-oriented programming language C# on Mono.
     Great efforts are made to advocate software engineering practices in the simulator construction.
     
   * A powerful infrastructure that provides common functionalities such as eventing and logging.
   
   * Pervasive use of XML-based I/O for architectural, workload and simulation configs and stats.
   
   * Support for Syscall-emulation mode simulation (i.e., application only, no need to boot an OS).
   
   * Correct execution of several state-of-the-art benchmark suites,
     e.g., wcet_bench, Olden and CPU2006.
     
   * Easy to begin with and easy to use. No scripting.
     Only required are Mono installation, the compiled simulator executable and a few XML files.

== System Requirements ==
 1. Make sure that you have a Linux machine running (e.g., Ubuntu, OpenSUSE, Fedora).
 
 2. Make sure that you have Mono 2.8.1 and MonoDevelop 2.4.1 installed.
   If not, follow the Mono website (http://www.mono-project.com/) for installation instructions.

== How to compile Benchmarks for FleximSharp ==
   FleximSharp supports the statically linked MIPS32 LE binaries. It supports the full set of wcet_bench benchmarks.
   Other popular benchmarks such as Olden and CPU2006 are being tested.
 
   Download and unpack cross-compiler-mipsel.tar.bz2 from http://github.com/mcai/flexim/downloads/.
   Use it to compile MIPS32 LE binaries to be simulated by FleximSharp.
   See the Makefiles under the subdirectory tests/ of the Flexim distribution for sample use.

== How to Build and Run FleximSharp ==
 1. Unpack the zip or tar file containing the FleximSharp source.
 
 2. In the main directory of the distribution (the one that this file is in), you can
    edit and build FleximSharp source code by opening the .NET solution file within MonoDevelop.
    Note: By default, the FleximSharp binary is placed in the MinCai.Simulators.Flexim/bin/Debug folder.

 3. In order to run the simulator, you will need to set up a few configuration files.
    The FleximSharp User Guide (to be added in near future) describes these files in detail.
    A few sample configuration files have been provided for your reference.


Happy hacking!

Min Cai

School of Computer Science and Technology
Beijing Institute of Technology
Beijing, China
<min.cai.china@gmail.com>
  

About

FleximSharp - A modular and highly extensible multicore simulator written in C#/Mono. This project is suspended for the moment. Please continue hacking with my new project "FleximJ" which is a clone and continuing effort of flexim in Java.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages