You can use this software to reproduce my results and make further modifications to M5 and the O3+VTC CPU, which is the O3 CPU plus the virtual trace controller (VTC) described in my paper. The software is a patch that must be applied to the M5 source code. It is GNU licensed.
There are two versions of the patch. One is for M5 version 2.0b4 - this is the version I used to generate the results in the paper. The other is for M5 version 2.0b5. It generates slightly different results due to changes within the CPU core. Various bugs were fixed by the M5 programmers. One bug that affected the VTC was in src/cpu/o3/inst_queue_impl.hh; it hid an additional source of timing noise which is removed in the 2.0b5 patch.
To use this patch you will need:
- M5 source code, version 2.0b4 or 2.0b5.
- The benchmark archive (below). This contains the compiled subset of the Malardalen WCET benchmarks used for my paper.
- All of the prerequisites for compiling M5, such as Python and scons.
On a 2.4GHz Intel Core 2 PC, the experiments should take between 7 and 8 CPU hours to execute. You should make sure you have several gigabytes of free disk space as large log files are created.
- vt-patch-2.0b4.bz2 - patch for M5 version 2.0b4.
- vt-patch-2.0b5.bz2 - patch for M5 version 2.0b5.
- bench.tar.bz2 - archive containing compiled benchmark programs and "bench_data" index file. The benchmark source code comes from Malardalen.
- results.tar.bz2 - results produced by the experiments on M5 version 2.0b4, as raw data and in Latex, gnuplot and CSV format.
- m5_2.0b4.tar.bz2 - a mirrored copy of the M5 simulator version 2.0b4.