|
-
The peLIFO interface class (written in C++) is provided below. This interface
should be used with the main LLC simulator. The LLC simulator has to make the
appropriate calls to the peLIFO class methods. Please see peLIFO.h for details
on the methods and the expected interface with the LLC. Before using this code,
one should read the MICRO'09 paper and the brief note on the extended results.
The set sampling technique explained in the extended note is useful for
understanding the code. The code for set sampling is designed specifically
for sixteen set samples per policy in a bank-pair. For a different number of
samples, the code should be modified appropriately. From my experience, this
is where the major tuning is needed. Too many set samples usually degrade the
performance of workloads that are not peLIFO-friendly.
The code provides two possible ways of approximating
the escape probabilities. The default is the one discussed in MICRO'09 paper.
This technique approximates the hit counts by the next power of two. A second
technique provided in the code approximates a hit count h in (2^(k-1), 2^k] to the next power of
two 2^k if h is bigger than or equal to (2^k + 2^(k-1))/2; otherwise h is
approximated to 2^(k-1). This second approximation
technique can be enabled by adding MIDPOINT_EP_APPROX to the define list at compilation
time.
The README file details
the expected interface with the LLC and shows an example.
README
peLIFO.h
peLIFO.cc (Note on tuning here)
Updated: 06-MAR-2010
|