I am looking for a realistic physical memory access trace/dump of significant, but not insane, length (on the order of 1M accesses) for the purpose of cache simulation. Preferably for a 16-bit or 32-bit RAM. Preferably in Tarmac format. The actual architecture is irrelevant. Are such files publicly available, and if so, where can I find them? (Googling did not help.)
-
$\begingroup$ Your best bet might be to generate such a memory trace yourself, by instrumenting a single program or an interpreter for some architecture (e.g., Bochs). I'm not sure that requests for data sets are on topic here. $\endgroup$– D.W. ♦Nov 30, 2021 at 6:47
-
$\begingroup$ @D.W. I could not find requests for data sets on the list of off topic questions. Also, when I was a grad student (30 years ago), we had access to sample memory traces and used them precisely to simulate caches. So, unless those traces evaporated in the last 30 years, I hope that someone still knows where to find them. $\endgroup$– DYZNov 30, 2021 at 7:55
-
1$\begingroup$ OK! You might be right! My initial reaction might have been off-base. $\endgroup$– D.W. ♦Nov 30, 2021 at 7:58
1 Answer
Incidentally, I found an answer to my question: valgrind
, when instrumented with lackey
tool, can capture reliable, though not perfect, traces. For example, here's how one saves the trace for ls -l
:
$ valgrind --log-fd=1 --tool=lackey -v --trace-mem=yes ls -l > trace.log
Hope it helps not just me but others as well.
-
1$\begingroup$ You could also use SimpleScalar if you don't mind an artificial CPU. This is useful is you need to control for details like the specifics of operating systems. $\endgroup$– Pseudonym ♦Dec 2, 2021 at 6:37