drcachesim: add config file for more complex cache configs
Split from #1703 (closed).
Initially our cache simulator only supports a simple 2-level hierarchy with homogeneous L1 caches. To support more complex cache layouts we would want to add a configuration-file-based input to describe them.
We would want to support heterogeneous peers at any level, any number of levels, and in fact perhaps any arbitrary tree. The only constraints would be that I vs D splits must be at the lower levels.
We would need to add a tree data struct to the cache handling code.
*** TODO have a default that doesn't need file
The default would be our existing 2-level, with perhaps the parameters matching the current underlying cpu.
*** TODO file format
Maybe something like this:
{
type=unified
associativity=16
linesize=64
size=8M
replace=LRU
children = {
type=unified
associativity=8
linesize=64
size=512K
replace=LRU
children = {
type=data
associativity=8
linesize=64
size=32K
replace=LRU
} repeat=4
{
type=instruction
associativity=8
linesize=64
size=32K
replace=LRU
} repeat=4
} repeat=4
}