An open API service indexing awesome lists of open source software.

https://github.com/adarshpatil/dve

Improving DRAM Reliability and Performance On-Demand via Coherent Replication [ISCA 2021]
https://github.com/adarshpatil/dve

coherence dram reliability replication sockets

Last synced: 4 months ago
JSON representation

Improving DRAM Reliability and Performance On-Demand via Coherent Replication [ISCA 2021]

Awesome Lists containing this project

README

          

# ![Dve thumb](http://timewarp.adarshpatil.in/images/projects/dve/dve-thumb.png) Dvé: Coherent Replication Protocol

Dvé is a memory system architecture to improve the reliability and performance of DRAM main memory. This repository contains all artifacts used to experimentally evaluate Dvé [[ISCA '21 paper]](https://www.cs.utah.edu/~rajeev/pubs/isca21.pdf).

# Features of Dvé:
- Replicates memory on two different sockets of a multi socket NUMA system
![NUMA Replication](http://timewarp.adarshpatil.in/images/projects/dve/numa-replication.jpg)
- Modifies NUMA cache coherence communication by introducing replica directory to permit local replica access
![Coherent Replication](http://timewarp.adarshpatil.in/images/projects/dve/coherent-replication.jpg)

(Figure shows coherence communications in (a) Baseline NUMA (b) Dvé (c) Logical View)
- Proposes two protocol families — allow-based and deny-based — to achieve Coherent Replication
- Protocol Optimizations to further improve performance
- Speculative replica access
- Coarse-grained replica directory
- Sampling based dynamic protocol

# Repository contents
1. gem5 based implementation of Coherent Replication (forked from [VANDAL/SynchroTrace-gem5](https://github.com/VANDAL/SynchroTrace-gem5))\
The repo contains implementation of the baseline, proposed protocols and a variant of Intel's Mirroring implementation.
- numa-baseline: multi-socket NUMA baseline configuration
- deny-based protocol implementation
- allow-based protocol implementation
- intel-intel-ch-replication: An extention of Intel's Address Range Partial Mirroring implementation with read requests load balanced between both channels (requests are alternated between channels)

2. Trace generator (forked from [VANDAL/prism](https://github.com/VANDAL/prism))

3. Coherence protocol [specification](https://github.com/adarshpatil/dve/blob/master/Dve-ISCA21-Appendix.pdf) in table format.

4. [Murphi model](https://github.com/adarshpatil/dve/tree/master/murphi-model) for allow-based and deny-based protocol (generated using [ProtoGen](https://github.com/icsa-caps/ProtoGen))

# Additional Material
- Full Protocol Model Checking and Verification files are available in this [github source repo](https://github.com/Errare-humanum-est/Dve_Protocol_Model_Check)

- FAQ, talk videos, slides - [https://adar.sh/dve](https://adar.sh/dve)

# Referencing our work

If you are using Dvé for your work, please cite:**

```
@inproceedings{dve-isca21,
author = {Patil, Adarsh and Nagarajan, Vijay and Balasubramonian, Rajeev and Oswald, Nicolai},
title = {Dvé: Improving DRAM Reliability and Performance On-Demand via Coherent Replication},
year = {2021},
publisher = {IEEE Press},
booktitle = {Proceedings of the ACM/IEEE 48th Annual International Symposium on Computer Architecture},
pages = {526–539},
numpages = {14},
keywords = {Memory Systems, DRAM, Reliability, Coherence},
location = {Virtual Event},
series = {ISCA '21}
}
```
--------------------------------------------------------------
The title of the project is derived from the Sankrit word (द्वे) which means "the two",
referring here to the dual benefits of replication.