Replies: 1 comment
-
The following parameters added can be checked as follows:
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
This discussion is to validate my suggestions in configuring the cache-replacement policies, and making it easy to add more replacement policies to Olympia. Building on Issue#61.
Problem Statement:
Currently, Olympia's CacheFuncModel is hardcoded to
TreePLRU
from Sparta. TheSimpleCache2
model from Sparta uses theReplacementIF
Interface, and also consists of implementations ofLRU
andMRU
implemented in the sameLRUReplacement.hpp
Proposed Solution:
I have added parameters to L1-D, L1-I and L2 Cache to select the cache replacement algorithm in their header files. To preserve backward compatibility, I have set the default configuration to
TreePLRU
.Modified
CacheFuncModel
which takes the defined replacement configuration and associativity, Created a newReplacementFactory
(in Olympia) where we can configure the required policy.I would like to make new policies local to Olympia:
Random
replacement, andFIFO
andLIFO
as sugggested by @h0lyalg0rithm, in his documentation for the LSU. I am guessing thatMRU
andLRU
can be borrowed from Sparta as-is.Doubt
Since for any new replacement policy I add need to use
ReplacementIF
forSimpleCache2
, I am currently stuck at wondering how to modify the newReplacementFactory
to make my local policies use the SparcianReplacementIF
. Any suggestions/directions from the experts would be highly appreciated!My current code (work in progress) can be viewed at PR#230.
Beta Was this translation helpful? Give feedback.
All reactions