Top Banner
Prototyping RISC-V Based Heterogeneous Systems-on-Chip with the ESP Open-Source Platform Paolo Mantovani, Giuseppe Di Guglielmo, Davide Giri and Luca P. Carloni
15

Prototyping RISC-V Based Heterogeneous ... - open SoC platform

Mar 15, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Prototyping RISC-V Based Heterogeneous ... - open SoC platform

Prototyping RISC-V Based Heterogeneous Systems-on-Chip

with the ESP Open-Source Platform

Paolo Mantovani, Giuseppe Di Guglielmo, Davide Giri and Luca P. Carloni

Page 2: Prototyping RISC-V Based Heterogeneous ... - open SoC platform

Why ESP?

Heterogeneous systems are pervasive

Integrating accelerators into a SoC is hard

Doing so in a scalable way is very hard

Keeping the system simple to program while doing so is even harder

ESP makes it easy

ESP combines a scalable architecture with a flexible methodology

ESP enables several accelerator design flowsand takes care of the hardware and software integration

2

BLADE

CENTER

DATA

CPU GPU

$

Accelerators

I/O

DD

REmbedded SoC

Page 3: Prototyping RISC-V Based Heterogeneous ... - open SoC platform

RapidPrototyping

SoC Integration

Ap

plic

atio

n D

evel

op

ers

Har

dw

are

Des

ign

ers

ESP Vision: Domain Experts Can Design SoCs

3

**

By

lew

ing

@is

c.ta

mu

.ed

uL

arry

Ew

ing

an

d T

he

GIM

P

**

…accelerator

accelerator

acceleratorHLS

DesignFlows

RTLDesignFlows

* B

y N

vid

ia C

orp

ora

tio

n

*

Page 4: Prototyping RISC-V Based Heterogeneous ... - open SoC platform

ESP Architecture

• RISC-V Processors

• Many-Accelerator

• Distributed Memory

• Multi-Plane NoC

4

The ESP architecture implements a distributed system, which is scalable,

modular and heterogeneous,giving processors and accelerators

similar weight in the SoC

Page 5: Prototyping RISC-V Based Heterogeneous ... - open SoC platform

ESP Architecture: Processor Tile

• Processor off-the-shelf o RISC-V Ariane (64 bit)

SPARC V8 Leon3 (32 bit)

o L1 private cache

• L2 private cacheo Configurable size

o MESI protocol

• IO/IRQ channelo Un-cached

o Accelerator config. registers,

interrupts, flush, UART, …

5

Page 6: Prototyping RISC-V Based Heterogeneous ... - open SoC platform

ESP Architecture: Memory Tile

• External Memory Channel

• LLC and directory partitiono Configurable size

o Extended MESI protocol

o Supports coherent-DMA

for accelerators

• DMA channels

• IO/IRQ channel

6

Page 7: Prototyping RISC-V Based Heterogeneous ... - open SoC platform

ESP Architecture: Accelerator Tile

• Accelerator Socket

w/ Platform Services

o Direct-memory-access

o Run-time selection of

coherence model:

Fully coherent

LLC coherent

Non coherent

o User-defined registers

o Distributed interrupt

7

Page 8: Prototyping RISC-V Based Heterogeneous ... - open SoC platform

ESP Accelerator Socket

8

Page 9: Prototyping RISC-V Based Heterogeneous ... - open SoC platform

Miscellaneous Tile

ESP Platform Services

9

Memory Tile

Accelerator tile Processor TileDMA

Reconfigurable coherence

Point-to-point

ESP or AXI interface

DVFS controller

Coherence

I/O and un-cached memory

Distributed interrupts

DVFS controller

Debug interface

Performance counters access

Coherent DMA

Shared peripherals (UART, ETH, …)

Independent DDR Channel

LLC Slice

DMA Handler

Page 10: Prototyping RISC-V Based Heterogeneous ... - open SoC platform

ESP Software Socket

10

kern

el

mo

de

Linux

ESP core

ESP accelerator driver

us

er

mo

de

ESP alloc

ESP Library

Application

• ESP accelerator API

o Generation of device driver

and unit-test application

o Seamless shared memory

/*

* Example of existing C application

* with ESP accelerators that replace

* software kernels 2, 3 and 5

*/

{

int *buffer = esp_alloc(size);

for (...) {

kernel_1(buffer,...); /* existing software */

esp_run(cfg_k2); /* run accelerator(s) */

esp_run(cfg_k3);

kernel_4(buffer,...); /* existing software */

esp_run(cfg_k5);

}

validate(buffer); /* existing checks */

esp_cleanup(); /* memory free */

}

Page 11: Prototyping RISC-V Based Heterogeneous ... - open SoC platform

ESP Methodology In Practice

11

interactiveautomated

manualmanual (opt.)

Generate accelerator

Test behavior

Generate RTL

Test RTL

Optimize RTL

Specialize accelerator* this step is automated* for ML applications

Accelerator Flow

Ap

plic

atio

n D

eve

lop

ers

Har

dw

are

Des

ign

ers

HLSDesignFlows

RTLDesignFlows

…accelerator

accelerator

accelerator

Compile bare-metal

Simulate system

Implement for FGPA

Generate sockets

Configure RISC-V SoC

SoC Flow…

…accelerator

accelerator

accelerator

Compile Linux

Deploy prototype

Configure runtime

**

Page 12: Prototyping RISC-V Based Heterogeneous ... - open SoC platform

ESP Accelerator Flow

Developers focus on the high-level specification, decoupled from

memory access, system communication, hardware/software interface

Ap

plic

atio

n D

evel

op

ers

Har

dw

are

Des

ign

ers

HLSDesignFlows

RTLDesignFlows

Performance

Are

a /

Po

we

r

3

2

1 High-Level Synthesis

Code Transformation

Ver. 1

Ver. 2

Ver. 3

RTLDesign Space

Programmer ViewDesign Space

…accelerator

accelerator

accelerator

12

Page 13: Prototyping RISC-V Based Heterogeneous ... - open SoC platform

13

ESP Interactive SoC Flow

SoC Integration

…accelerator

accelerator

accelerator

Page 14: Prototyping RISC-V Based Heterogeneous ... - open SoC platform

ESP: A Flexible Platform for Open-Source Hardware

14

We hope that ESP will serve the OSH community as a Platform to

develop software for RISC-V and

accelerators for any application domain

ESPMonitorGUI forFPGA

prototype

RapidPrototyping **

Page 15: Prototyping RISC-V Based Heterogeneous ... - open SoC platform

System Level Design Group

Thank you from the ESP team!

https://esp.cs.columbia.edu

https://github.com/sld-columbia/esp