Embra

Overview

Embra is a simulator for the processors, caches, and memory systems of uniprocessors and cache-coherent multiprocessors. When Embra runs as part of the SimOS simulation system, it models the processors of a MIPS R3000/R4000 machine faithfully enough to run a commercial operating system and arbitrary user applications.

Dynamic Binary Translation

To achieve high simulation speed, Embra uses dynamic binary translation to generate code sequences which simulate the workload. It is the first machine simulator to use this technique.

Raw Performance

Embra can simulate real workloads such as multi-process compiles and the SPEC92 benchmarks running on Silicon Graphic's IRIX 5.3 at speeds only 3 to 9 times slower than native execution of the workload, making Embra the fastest reported complete machine simulator.

Cache Simulation

Embra can customize its generated code to include a processor cache model which allows it to compute the cache misses and memory stall time of a workload. Customized code generation allows Embra to simulate a machine with caches at slowdowns of only a factor of 7 to 20. Most of the statistics generated at this speed match those produced by a slower reference simulator to within 1%.

Self-hosting Studies

In order to study Embra's memory system performance we use the SimOS simulation system to examine Embra itself. We present a detailed breakdown of Embra's memory system performance for two cache hierarchies to understand Embra's current performance and to show that Embra's implementation techniques benefit significantly from the larger cache hierarchies that are becoming available.

Experience

Embra has been used for operating system development and testing as well as for studies of computer architecture. In this capacity it has simulated large, commercial workloads including IRIX running a relational database system and a CAD system for billions of simulated machine cycles.

More Information

Emmett Witchel and Mendel Rosenblum, Embra: Fast and Flexible Machine Simulation. The proceedings of ACM SIGMETRICS '96: Conference on Measurement and Modeling of Computer Systems, Philadelphia, 1996. Available as: abstract, postscript (216 kB), and compressed postscript (85kB).