Git Product home page Git Product logo

yujie-cui / pinnedloads Goto Github PK

View Code? Open in Web Editor NEW

This project forked from zzrcxb/pinnedloads

0.0 0.0 0.0 233.36 MB

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

License: BSD 3-Clause "New" or "Revised" License

Shell 0.16% C++ 78.95% Python 12.72% Perl 0.05% C 6.55% Emacs Lisp 0.01% Java 0.01% Scala 0.01% Fortran 0.03% SuperCollider 0.02% Assembly 0.29% Awk 0.01% Forth 0.01% Hack 0.46% Makefile 0.13% HTML 0.28% CMake 0.17% M4 0.11% Dockerfile 0.04% Roff 0.02%

pinnedloads's Introduction

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.