Skip to content

Gem5 implementation of "InvisiSpec", a defense mechanism of speculative execution attacks on cache hierarchy.

License

BSD-3-Clause, Unknown licenses found

Licenses found

BSD-3-Clause
LICENSE
Unknown
COPYING
Notifications You must be signed in to change notification settings

pluviophilee/InvisiSpec-1.0

 
 

Repository files navigation

InvisiSpec-1.0

This repository contains the gem5 implementation of InvisiSpec, a defense mechanism against speculative execution on cache hierarchy. Please check our paper for design details.

InvisiSpec: Making Speculative Execution Invisible in the Cache Hierarchy. Mengjia Yan†, Jiho Choi†, Dimitrios Skarlatos, Adam Morrison, Christopher W. Fletcher, and Josep Torrellas. Proceedings of the 51th International Symposium on Microarchitecture (MICRO), October 2018.

Major changes in the simulator.

We made following major changes in gem5:

  • modify "DerivO3" classes to track when instructions reach their visibility points, and issue load requests accordingly
  • modify "MESI_Two_Level" coherence protocol by adding 3 new transactions: SpecGetS, Expose, Validation
  • add a SpecBuffer at each L1, and a per-core SpecBuffer LLC

How to run the simulator?

We added several configuration paramters to the simulator for different modes of InvisiSpec as follows.

  • --scheme: configure the 5 modes of the simulator
    • UnsafeBaseline: the unmodified out-of-order CPU
    • SpectreSafeFence: simulate a fence after every branch instruction.
    • FuturisticSafeFence: simulate a fence before every load instruction.
    • SpectreSafeInvisibleSpec: InvisiSpec working under Spectre threat model.
    • FuturisticSafeInvisibleSpec: InvisiSpec working under Futuristic threat model.
  • --needsTSO: configure the consistency model
    • True: use TSO
    • False: use RC

Please check ./exp_script/ for example scripts. The simulator can work using x86 and ARM ISAs. And we have tested it on SPEC and PARSEC benchmarks.

About

Gem5 implementation of "InvisiSpec", a defense mechanism of speculative execution attacks on cache hierarchy.

Resources

License

BSD-3-Clause, Unknown licenses found

Licenses found

BSD-3-Clause
LICENSE
Unknown
COPYING

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 76.3%
  • Python 17.3%
  • C 3.9%
  • Assembly 1.1%
  • HTML 0.4%
  • Shell 0.3%
  • Other 0.7%