tree: 39aba984cb0e97d72be74ab5d3a2c1c51d2a4814 [path history] [tgz]
  1. renode_scripts/
  2. src/
  3. README.md
  4. requirements.txt
tools/guest_cache/README.md

Renode Guest Cache Modelling Analyzer

Generating traces from Renode:

Add the following lines to the resc file:

cpu MaximumBlockSize 1
cpu CreateExecutionTracing "tracer" $ORIGIN/trace.log PCAndOpcode
tracer TrackMemoryAccesses

Usage:

  • Using build-in presets

      ./renode_cache_interface.py trace.log presets 'fu740.u74'
    
  • Custom cache configuration

    ./renode_cache_interface.py trace.log config            \
                              --memory_width 64             \
                              --l1i_cache_width 15          \
                              --l1i_block_width 6           \
                              --l1i_lines_per_set 4         \
                              --l1i_replacement_policy LRU  \
                              --l1d_cache_width 15          \
                              --l1d_block_width 6           \
                              --l1d_lines_per_set 8         \
                              --l1d_replacement_policy LRU  \
    

An example output of the analysis:

$ ./renode_cache_interface.py trace.log presets fu740.u74
l1i,u74 configuration:
Cache size:          32768 bytes
Block size:          64 bytes
Number of lines:     512
Number of sets:      128 (4 lines per set)
Replacement policy:  RAND

l1d,u74 configuration:
Cache size:          32768 bytes
Block size:          64 bytes
Number of lines:     512
Number of sets:      64 (8 lines per set)
Replacement policy:  RAND

Instructions read: 174620452
Total memory operations: 68952483 (read: 50861775, write 18090708)
Total I/O operations: 1875 (read: 181, write 1694)

l1i,u74 results:
Misses: 168
Hits: 174620284
Invalidations: 3
Hit ratio: 100.0%

l1d,u74
Misses: 17320212
Hits: 51632271
Invalidations: 17319700
Hit ratio: 74.88%

Full documentation on guest CPU cache modeling is available in the Renode documentation.