STAR-Laboratory / morphcounters

Morphable Counters: Enabling Compact Integrity Trees For Low-Overhead Secure Memories -- MICRO 2018

Home Page:https://prashantnair.bitbucket.io/assets/pdf/saileshwar2018morphablecounters.pdf

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GENERAL INFO

This simulator was used for Morphable Counters paper in MICRO-2018 (https://ieeexplore.ieee.org/abstract/document/8574558). This is a fork of USIMM (https://github.com/pranith/usimm).

COMPILATION INFO

To compile the simulator:
1. Specify the path to your "zlib" package in ./simscript/env_zlib.sh. Then "source simscript/env_zlib.sh".
2. Inside ./src_turbo, and type "make".
3. This should create the executable inside ./bin/

RUN INFO

To run the simulator:
1. Specify the path to "zlib" package in ./simscript/env_zlib.sh. Then "source simscript/env_zlib.sh".
2. Specify the path to the folder containing the "simscript" in runall.pl "trace_dir" variable.
3. Set symbolic links to GAP_traces and WL_traces in "input".
4. Run the simulator using runall.pl with the commands shown in run_MICRO_5bn.sh, using the appropriate flags for workload and configuration parameters.

TRACES INFO

OTHER INFO

The folders in this repo:

  • bin: contains the simulator compiled binary goes.
  • input: contains the files for DRAM power/timing parameters (e.g. 4Gb_x8.vi) & Memory-System parameters with memory-size, num-banks/ranks etc. (e.g. SGX_Baseline_16Gmem.cfg). Also need to modify the sym-links to point to benchmarks.
  • obj: contains the object files produced during compilation.
  • src_turbo: has all the code. Key files - ctr_sim.h/c that contains all the code for the organization & manipulations of counters, compression.h contains the compression mechanisms, memsys_ctr_flow.h that issues extra access for counters on data-access.
  • RESULTS: contains the main results used in the paper.
  • simscript: contains the scripts for launching the simulator in different configurations (run_MICRO_5Bn.sh has all the run scripts).

Counter-Designs Supported: (defined in memOrg.h and used in ctr_sim.c)
Format below: #define-value - #define-variable - explanation.
1 - MONO8_CTR - SGX 8 byte counters - 8 per CL
4 - SPLIT64_CTR - Split counters - 64 per CL (1 x 64-bit Major, 64 x 6-bit Minor)
5 - SPLIT32_CTR_v1 - Split counters - 32 per CL (1 x 64-bit Major, 32 x 12-bit Minor)
6 - SPLIT16_CTR_v1 - Split counters - 16 per CL (1 x 64-bit Major, 16 x 24-bit Minor)
8 - SPLIT128_CTR - Split counters - 128 per CL (1 x 64-bit Major, 128 x 3-bit Minor)

Compression-Modes supported: (check compression.c)
0 - None.
7 - ZCC-only.
8 - ZCC + Rebasing (rebase when ZCC is going to have a overflow)

More information on how to specify the counter-design and the compression-mode are defined in ./simscript/run_MICRO_5bn.sh

About

Morphable Counters: Enabling Compact Integrity Trees For Low-Overhead Secure Memories -- MICRO 2018

https://prashantnair.bitbucket.io/assets/pdf/saileshwar2018morphablecounters.pdf

License:GNU General Public License v3.0


Languages

Language:C 88.8%Language:Perl 7.8%Language:Shell 3.0%Language:Makefile 0.4%