FaCSim: a fast and cycle-accurate architecture simulator for embedded systems

J Lee, J Kim, C Jang, S Kim, B Egger, K Kim… - ACM Sigplan …, 2008 - dl.acm.org
J Lee, J Kim, C Jang, S Kim, B Egger, K Kim, SY Han
ACM Sigplan Notices, 2008dl.acm.org
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. In this paper, we
describe the design and implementation of a fast and cycle-accurate architecture simulator
called FaCSim as 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 …
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. In this paper, we describe the design and implementation of a fast and cycle-accurate architecture simulator called FaCSim as 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. Using 21 applications from the EEMBC benchmark suite, FaCSim's accuracy is validated against the ARM926EJ-S development board from ARM, and is accurate in a ±7% error margin. Due to basic-block level caching and parallelization, FaCSim is, on average, more than three times faster than ARMulator and more than six times faster than SimpleScalar.
ACM Digital Library