Fast-Cache provides a framework for implementing memory system simulators. It is a SPARC implementation of the active memory abstraction [1] developed by Alvin R. Lebeck and David A. Wood. In this abstraction, memory references logically invoke a user-specified function depending upon the reference's type and accessed memory block state. Active memory allows simulator writers to specify the appropriate action on each reference, including "no action" for the common case of cache hits. Because the abstraction hides implementation details, implementations can be carefully tuned for particular platforms, permitting much more efficient on-the-fly simulation than the traditional trace-driven abstraction.
Fast-Cache eliminates unnecessary overhead in the common ``no action'' case, e.g., a cache hit. Measurements on a SPARCstation 10/51 show that simple data-cache simulations run two to three times faster than highly-tuned trace-driven simulators. More importantly, Fast-Cache simulations run only 2 to 5.5 times slower than the original program, making cache simulation feasible for every-day performance tuning.
The input to fast-cache consists of a fully linked application executable (a.out), an object file containing the simulation routines (handler.o), and a configuration file that specifies data and instruction block sizes and the mapping from memory reference type (load, store, instruction fetch) and block state to simulator routines.
Note: Fast-Cache currently runs under Solaris 2.5.1 or older. It does NOT
run under SunOS.
In the near future, CProf will be ported to use Fast-Cache.
Man Page is here.
[1] Active Memory: A New Abstraction For Memory System Simulation Alvin R. Lebeck and David A. Wood, in ACM SIGMETRICS, May 1995, pages 220-230 .