You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+66-11Lines changed: 66 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,9 +8,9 @@ This repository branch contains DAS extensions based on MemPool.
8
8
9
9
# MemPool
10
10
11
-
MemPool is a many-core system targeting image processing applications. It implements 256 RISC-V cores that can access a large, shared L1 memory in at most five cycles.
11
+
MemPool is a many-core system targeting image processing and wireless applications. It implements 256 RISC-V cores that can access a large, shared L1 memory in at most five cycles. TeraPool and MinPool, respectively a 1024 RISC-V cores scaled-up and a 16 RISC-V cores scaled-down parametrizations of MemPool are also supported.
12
12
13
-
This repository contains the software and hardware of MemPool, as well as infrastructure for compilation and simulation.
13
+
This repository contains the software and hardware of MinPool, MemPool, and TeraPool, as well as infrastructure for compilation and simulation.
14
14
15
15
## Structure
16
16
@@ -42,12 +42,6 @@ If the repository path of any submodule changes, run the following command to ch
42
42
git submodule sync --recursive
43
43
```
44
44
45
-
MemPool requires to patch a few hardware dependencies. To update the dependencies and apply the patches, run the following command after checking out in the project's root directory:
46
-
47
-
```bash
48
-
make update-deps
49
-
```
50
-
51
45
## Build dependencies
52
46
### Compiler
53
47
@@ -68,13 +62,20 @@ make halide
68
62
69
63
### RTL Simulation
70
64
71
-
We use [Bender](https://github.com/pulp-platform/bender) to generate our simulation scripts. Make sure you have Bender installed, or install it in the MemPool repository with:
65
+
We use [Bender](https://github.com/pulp-platform/bender) to checkout hardware dependencies and to generate our simulation scripts. Make sure you have Bender installed, or install it in the MemPool repository with:
72
66
73
67
```bash
74
68
# Install Bender
75
69
make bender
76
70
```
77
71
72
+
To checkout the hardware dependencies using Bender run:
73
+
74
+
```bash
75
+
# Update hardware dependencies
76
+
make update-deps
77
+
```
78
+
78
79
The RTL simulation, or more specifically, the tracing in the simulation, relies on the SPIKE simulator. To build it, run the following command in the project's directory:
79
80
80
81
```bash
@@ -191,6 +192,22 @@ To get a visualization of the traces, check out the `scripts/tracevis.py` script
191
192
192
193
We also provide Synopsys Spyglass linting scripts in the `hardware/spyglass`. Run `make lint` in the `hardware` folder, with a specific MemPool configuration, to run the tests associated with the `lint_rtl` target.
193
194
195
+
## Hardware Configurations
196
+
197
+
MemPool's core-count is parametrizable. In `./config`, the `config.mk` file includes other configuration files, which represent specific parametrizations of MemPool. We currently support three parametrizations:
198
+
-`terapool`: 1024 cores, organized into 128 tiles with eight cores each
199
+
-`mempool`: 256 cores, organized into 64 tiles with four cores each (default)
200
+
-`minpool`: 16 cores, organized into 4 tiles with four cores each
201
+
202
+
The software and the hardware for different MemPool configurations can be compiled specifying the desired configuration on the command line. For example, to compile and simulate the `hello_world` app for TeraPool:
203
+
```bash
204
+
cd hardware
205
+
# Compile the hello_world for TeraPool configuration
206
+
config=terapool make COMPILER=gcc hello_world
207
+
# Run the simulation with the *hello_world* binary loaded
208
+
config=terapool app=baremetal/hello_world make sim
209
+
```
210
+
194
211
## DRAMsys Co-Simulation
195
212
196
213
The MemPool system supports both on-chip SRAM or off-chip DRAM co-simulation for higher hierarchy memory transfering. For off-chip DRAM co-simulation, it incorporates the `dram_rtl_sim` tool as a submodule, build at `hardware/deps/dram_rtl_sim`. Leveraging DRAMSys5.0, it facilitates an effective co-simulation environment between RTL models and DRAMSys5.0 for the simulation of DRAM + CTRL models, with contemporary off-chip DRAM technologies (e.g., LPDDR, DDR, HBM).
@@ -225,7 +242,7 @@ For data transfer testing between the MemPool system and higher hierarchy memory
225
242
**Note:** Currently, the simulation crafting tool for off-chip DRAM co-simulation is not open-sourced. We utilize the `Questasim` simulator exclusively.
226
243
227
244
## Publications
228
-
If you use MemPool in your work or research, you can cite us:
245
+
If you use MemPool or TeraPool in your work or research, you can cite us:
229
246
230
247
**MemPool: A Scalable Manycore Architecture with a Low-Latency Shared L1 Memory**
231
248
@@ -244,8 +261,23 @@ If you use MemPool in your work or research, you can cite us:
244
261
```
245
262
This paper was published on [IEEE Xplore](https://ieeexplore.ieee.org/document/10227739) and is also available on [arXiv:2303.17742 [cs.AR]](https://arxiv.org/abs/2303.17742) and the [ETH Research Collection](https://doi.org/10.3929/ethz-b-000643341).
246
263
264
+
**TeraPool: A Physical Design Aware, 1024 RISC-V Cores Shared-L1-Memory Scaled-Up Cluster Design With High Bandwidth Main Memory Link**
265
+
266
+
```
267
+
@article{Zhang2025TeraPool,
268
+
title={TeraPool: A Physical Design Aware, 1024 RISC-V Cores Shared-L1-Memory Scaled-Up Cluster Design With High Bandwidth Main Memory Link},
269
+
author={Zhang, Yichao and Bertuletti, Marco and Zhang, Chi and Riedel, Samuel and Shen, Diyou and Wang, Bowen and Vanelli-Coralli, Alessandro and Benini, Luca},
270
+
journal={IEEE Transactions on Computers},
271
+
year={2025},
272
+
volume={74},
273
+
number={11},
274
+
pages={3667-3681},
275
+
doi={10.1109/TC.2025.3603692}
276
+
}
277
+
```
278
+
This paper was published on [IEEE Xplore](https://ieeexplore.ieee.org/document/11145329).
247
279
248
-
The following publications give more details about MemPool, its extensions, and use cases:
280
+
The following publications give more details about MemPool, TeraPool, its extensions, and use cases:
249
281
250
282
### 2021
251
283
@@ -631,6 +663,29 @@ This paper is available on [IEEE Xplore](https://ieeexplore.ieee.org/document/10
631
663
```
632
664
This paper is available on [ACM DIGITAL LIBRARY](https://dl.acm.org/doi/10.1145/3649476.3658735).
633
665
666
+
### 2025
667
+
668
+
</p>
669
+
</details>
670
+
671
+
<details>
672
+
<summary><i>A 66-Gb/s/5.5-W RISC-V Many-Core Cluster for 5G+ Software-Defined Radio Uplinks</i></summary>
673
+
<p>
674
+
675
+
```
676
+
@article{Bertuletti2025TeraPool,
677
+
title={A 66-Gb/s/5.5-W RISC-V Many-Core Cluster for 5G+ Software-Defined Radio Uplinks},
678
+
author={Bertuletti, Marco and Zhang, Yichao and Vanelli-Coralli, Alessandro and Benini, Luca},
679
+
journal={IEEE Transactions on Very Large Scale Integration (VLSI) Systems},
680
+
year={2025},
681
+
volume={33},
682
+
number={8},
683
+
pages={2225-2238},
684
+
doi={10.1109/TVLSI.2025.3576855}
685
+
}
686
+
```
687
+
This paper is available on [IEEE Xplore](https://ieeexplore.ieee.org/abstract/document/11038837).
0 commit comments