Skip to content

zzrcxb/PinnedLoads

Pinned Loads

This repository contains a gem5 implementation of Pinned Loads: Taming Speculative Loads in Secure Processors.

Please check our paper for details:

@inproceedings{Zhao:PinnedLoads:ASPLOS22,
author = {Zhao, Zirui Neil and Ji, Houxiang and Morrison, Adam and Marinov, Darko and Torrellas, Josep},
title = {Pinned Loads: Taming Speculative Loads in Secure Processors},
year = {2022},
publisher = {Association for Computing Machinery},
booktitle = {Proceedings of the 27th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'22)},
}

You can find the Pinned Loads paper here!

Building Pinned Loads

Depending on your system, it may take about 5 to 20 minutes to build gem5.

Using Docker

To make the building process easier, we provide a Dockerfile under docker/ and a script cgem.sh that will build the Docker image and compile Pinned Loads. Before you start, please set environment variable GEM5_ROOT to the root of Pinned Loads (absolute path):

export GEM5_ROOT=<Path to Pinned Loads>  # e.g., export GEM5_ROOT=$HOME/PinnedLoads

Then, execute the script:

./cgem.sh

to build the Docker image and Pinned Loads.

For more information about installing and using Docker, please refer to Docker's official documents.

Manual

You will need all libraries that are required by gem5. Note that due to a bug in gem5, it might crash on some SPEC benchmarks in SE mode if gem5 is built on a system that is newer than Ubuntu 16.04.

Once all libraries are installed, execute the following command under the Pinned Loads directory:

scons build/X86_MESI_Two_Level/gem5.opt -j$(nproc)

Running Pinned Loads

We provide scripts that run Pinned Loads for all the schemes proposed in our paper. For more details, please refer to this README.

Reproducibility

All the results in the paper can be reproduced. For more information about re-running our experiments, please refer to this section in the README.

License

All Pinned Loads related changes are released under MIT license. The rest of contents are under the original gem5 license.

About

Gem5 implementation of Pinned Loads: Taming Speculative Loads in Secure Processors

Resources

License

BSD-3-Clause and 2 other licenses found

Licenses found

BSD-3-Clause
LICENSE
Unknown
COPYING
MIT
LICENSE.PinnedLoads

Code of conduct

Stars

Watchers

Forks

Packages

No packages published