[Gems-users] Interpreting cache results from ruby output


Date: Mon, 22 Oct 2007 18:01:09 -0400
From: "Jack Tzu-Han Hung" <thhung@xxxxxxxxxxxxxxxx>
Subject: [Gems-users] Interpreting cache results from ruby output

Hi,
 
Does anybody know how to interpret the results from ruby output? I find it fairly hard. Below is my result from running a test program, walking through an array multiple times using a loop. I use the default configuration, except the L1D associativity is 1.
 
------------------------------------------
instruction_executed: 286820499 [ 286820499 ]
cycles_per_instruction: 0.570198 [ 0.570198 ]
misses_per_thousand_instructions: 0.258381 [ 0.258381 ]
...
L1D_cache cache stats:
  L1D_cache_total_misses: 512423
  L1D_cache_total_demand_misses: 512423
  L1D_cache_total_prefetches: 0
  L1D_cache_total_sw_prefetches: 0
  L1D_cache_total_hw_prefetches: 0
  L1D_cache_misses_per_transaction: 512423
  L1D_cache_misses_per_instruction: 0.00178656
  L1D_cache_instructions_per_misses: 559.734

  L1D_cache_request_type_LD:   84.6488%
  L1D_cache_request_type_ST:   9.76849%
  L1D_cache_request_type_ATOMIC:   5.58269%

  L1D_cache_access_mode_type_SupervisorMode:   272090    53.0987%
  L1D_cache_access_mode_type_UserMode:   240333    46.9013%
  L1D_cache_request_size: [binsize: log2 max: 64 count: 512423 average: 5.94929 | standard deviation: 6.83207 | 0 14544 8970 313205 169318 0 0 6386 ]

........

Simics Driver Transaction Stats
----------------------------------
Insn requests: 0
Data requests: 115499491
....................................................

------------------------------------------
 
My questions are:
 
(1) What does "L1D_cache_access_mode_type_SupervisorMode" mean? I suppose that's the number of cache misses (not access) from OS, but my toy program doesn't have too many system calls (actually, just one printf). Isn't the number too high to be reasonable?
 
(2) Since ruby can separate the misses fomr OS and user code, I wonder if I can get the individual numbers of executed instructions from OS and user code. Or if anyone has better ideas how we can reduce the effect from OS?
 
(3) Does "Data requests" mean the number of toal memory accesses (sending out from cpu)?
 
I really appreciate your help. Thanks a lot.
 
Jack

[← Prev in Thread] Current Thread [Next in Thread→]