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
Uh oh!
There was an error while loading. Please reload this page.
-
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