# Introduction This data repository contains the gem5 sources, modified based on the sve/beta1 branch available at https://gem5.googlesource.com/arm/gem5/+/sve/beta1 , to support SRV. A detailed description of the SRV technique can be found in the paper: Speculative Vectorisation with Selective Replay, Peng Sun, Giacomo Gabrielli, Timothy M. Jones, ISCA 2021 Please cite this paper if you produce any work that builds upon this code and / or data. # Licence The gem5-based SRV simulator is licensed under the gem5 License (gem5-srv/LICENSE). The rest of our repository is licensed under a Creative Commons BY-SA licence. # Build the repo To build gem5, go to the root directory of gem5-srv and execute: ``` $ ./cmd_build.sh ``` Binaries named gem5.opt and gem5.debug will be generated at: build/ARM/ # Run the simulation To run gem5, go to the root of the gem5-srv directory, and execute: ``` $ ./build/ARM/gem5.opt configs/baremetal/baremetal-switch.py \ --arm-sve-vl= \ [--caches] \ ``` The binaries should be built using the arm tool chain. Gem5 was modified to capture the start and the end of the region of interest (ROI), in this case the sp_start and sp_end instruction if the binaries are built with SRV features. The baremetal-switch.py script then catches these events, setting gem5 to run the ROI with the detailed CPU and the rest with the atomic CPU. # Contact For further information, please contact the author at ps702@cl.cam.ac.uk