/csRNA

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

This is Han Gu RNIC Simulator implemented in gem5

The gem5 website can be found at http://www.gem5.org

The gem5 version we based on is Version 20.1.0.2

Han Gu RNIC related code is founded in src/dev/rdma/, including Han Gu RNIC and 
its attached driver. The test code is located in tests/test-progs/hangu-rnic/.

# The structure of the code.

The basic source release includes these subdirectories:
   - configs: example simulation configuration scripts
   - ext: less-common external packages needed to build gem5
   - src: source code of the gem5 simulator
   - system: source for some optional system software for simulated systems
   - tests: regression tests
   - util: useful utility programs and files
   - scripts: useful scripts for RNIC build and execution

This is the V1.5 version of our implemented RNIC.

# How to Run the code?

The simulator is tested under Ubuntu 18.04.6 LTS (GNU/Linux 4.15.0-193-generic x86_64).

To build the simulator, one need to execute the scripts in scripts/ directory.


1. To begin with, you need to run ./build.sh to setup the environment:

```
./build.sh
```

2. Run analysis.py to start build & run csRNA:

```
python3 analysis.py

```


In this version, we implement the followinng features based on RNIC-V1.1: 
    1. out of order execution for qpc request in one qpc request channel, with 
    three channels in total: two for sender side, and one for receiver side.