FaCSim A Fast and Cycle-Accurate ARM Architecture Simulator

Overview

There have been strong demands for a fast and cycle-accurate virtual platforms in the embedded systems area where developers can do meaningful software development including performance debugging in the context of the entire platform.

FaCSim is a fast and cycle-accurate ARM architecture simulator developed by the members of Advanced Compiler Research Laboratory at Seoul National University and a first step towards such a virtual platform.

FacSim accurately models the ARM9E-S processor core and ARM926EJ-S processor’s memory subsystem. It accurately simulates exceptions and interrupts to enable whole-system simulation including the OS. Since it is implemented in a modular manner in C++, it can be easily extended with other system components by subclassing or adding new classes.

FaCSim is based on an interpretive simulation technique to provide flexibility, yet achieving high speed. It enables fast cycle-accurate architecture simulation by means of three mechanisms. First, it computes elapsed cycles in each pipeline stage as a chunk and incrementally adds it up to advance the core clock instead of performing cycle-by-cycle simulation. Second, it uses a basic-block cache that caches decoded instructions at the basic-block level. Finally, it is parallelized to exploit multicore systems that are available everywhere these days.

Publications

Please use the citation below to reference FaCSim.

  • [LCTES] Jaejin Lee, Junghyun Kim, Choonki Jang, Seungkyun Kim, Bernhard Egger, Kwangsub Kim, and SangYong Han. FaCSim: A Fast and Cycle-Accurate Architecture Simulator for Embedded Systems. LCTES ’08: Proceedings of the ACM SIGPLAN/SIGBED 2008 International Conference on Languages, Compilers, and Tools for Embedded Systems (also appears in ACM SIGPLAN Notices, Vol. 43,  No. 7, July 2008), pp. 89—99, Tucson, Arizona, USA, June 2008, DOI: 10.1145/1379023.1375670.

Tested Platforms

  • FaCSim builds on most 64-bit flavors of Unix/Linux. You need a little-endian machine (e.g., x86) and gcc 4.1.0 or higher.

      Download

      If you would like to download the FaCSim, please email us. 

      Contributors

      • Current: Junghyun Kim, Seungkyun Kim, and Jaejin Lee
      • Past: Bernhard Egger, Choonki Jang, Chihun Kim, Kwangsub Kim, and Yoonsung Nam

      Contact and Bug Report

      License

      Copyright (c) 2008, Seoul National University.
          All rights reserved.
          
          Redistribution and use in source and binary forms, with or without
          modification, are permitted provided that the following conditions
          are met:
           1. Redistributions of source code must retain the above copyright
           notice, this list of conditions and the following disclaimer.
           2. Redistributions in binary form must reproduce the above copyright
           notice, this list of conditions and the following disclaimer in the
           documentation and/or other materials provided with the distribution.
           3. Neither the name of Seoul National University nor the names of its
           contributors may be used to endorse or promote products derived
           from this software without specific prior written permission.
          
          THIS SOFTWARE IS PROVIDED BY SEOUL NATIONAL UNIVERSITY "AS IS" AND ANY
          EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
          WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
          DISCLAIMED. IN NO EVENT SHALL SEOUL NATIONAL UNIVERSITY BE LIABLE FOR ANY
          DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
          DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
          OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
          HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
          STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
          ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
          POSSIBILITY OF SUCH DAMAGE.
          
          Contact information:
           Advanced Compiler Research Laboratory
           School of Computer Science and Engineering
           Seoul National University, Seoul 151-744, Korea
          
          https://thunder.snu.ac.kr
          
          Contributors:
           Jaejin Lee, Junghyun Kim, Choonki Jang, Seunkyun Kim, Bernhard Egger,
           Yoonsung Nam, Kwangsub Kim, Jungwon Kim, Posung Chun, and Sangmin Seo