Professional Documents
Culture Documents
http://pulp-platform.org
2Integrated Systems Laboratory
Welcome to the RISC-V Tutorial @ HiPEAC
Platforms
Accelerators
We have developed several optimized RISC-V cores
RISC-V Cores
RI5CY Micro Zero Ariane
riscy riscy
32b 32b 32b 64b
Only processing cores are not enough, we need more
RISC-V Cores Peripherals Interconnect
RI5CY Micro Zero Ariane JTAG SPI Logarithmic interconnect
riscy riscy
UART I2S APB – Peripheral Bus
32b 32b 32b 64b
DMA GPIO AXI4 – Interconnect
Accelerators
HWCE Neurostream HWCrypt PULPO
(convolution) (ML) (crypto) (1st order opt)
All these components are combined into platforms
RISC-V Cores Peripherals Interconnect
RI5CY Micro Zero Ariane JTAG SPI Logarithmic interconnect
riscy riscy
UART I2S APB – Peripheral Bus
32b 32b 32b 64b
DMA GPIO AXI4 – Interconnect
Platforms
M M M M
I M M M M M M M M
M M interconnect
M
interconnect
M MinterconnectM M
I
interconnect
O R5 interconnect
R5 R5 R5 R5
I
interconnect
interconnect
A R5 R5 R5 R5 R5 R5 R5
cluster
A O cluster A R5 R5 R5
cluster
O
cluster
Single Core R5 Multi-core
• PULPino • Fulmine R5 Multi-cluster
• PULPissimo • Mr. Wolf • Hero
IOT HPC
Accelerators
HWCE Neurostream HWCrypt PULPO
(convolution) (ML) (crypto) (1st order opt)
Today we will discuss three HPC applications of PULP
N User-Level Interrupts
Our RISC-V family explained
32 bit 64 bit
Low Cost Core with DSP Floating-point Linux capable
Core enhancements capable Core Core
RISC-V: “To support development of proprietary custom extensions, portions of the encoding
space are guaranteed to never be used by standard extensions.”
For 8-bit values the following can be executed in a single cycle (pv.dotup.b)
Z = D1 × K1 + D2 × K2 + D3 × K3 + D4 × K4
What About Floating Point Support?
21
Memory Protection (PMU and MMU)
od or
SP go y
f
D y ff c
r c is rol
fo ir s e-o o
r
- t
Y o- d r on
C r tra c
i c
I5 Ze M
R
Finally the step into 64-bit cores
§ For the first 4 years of the PULP project we used only 32bit cores
§ Luca once famously said “We will never build a 64bit core”.
§ Most IoT applications work well with 32bit cores.
§ A typical 64bit core is much more than 2x the size of a 32bit core.
§ But times change:
§ Using a 64bit Linux capable core allows you to share the same address space as
main stream processors.
§ We are involved in several projects where we (are planning to) use this capability
§ There is a lot of interest in the security community for working on a contemporary
open source 64bit core.
§ Open research questions on how to build systems with multiple cores.
ARIANE: Our Linux Capable 64-bit core
Main properties of Ariane
30
Ariane booting Linux on a Digilent Genesys 2 board
The pulp-platforms put everything together
RISC-V Cores Peripherals Interconnect
RI5CY Micro Zero Ariane JTAG SPI Logarithmic interconnect
riscy riscy
UART I2S APB – Peripheral Bus
32b 32b 32b 64b
DMA GPIO AXI4 – Interconnect
Platforms
I M
interconnect
O R5
A
Single Core
• PULPino
• PULPissimo
Accelerators
HWCE Neurostream HWCrypt PULPO
(convolution) (ML) (crypto) (1st order opt)
PULPino our first single core platform
AXI - interconnect
APB-interconnect
§ Makes it easy in HW RISC-V
I2C Boot core
§ Not meant as a Harvard arch. ROM
UART
§ Can be configured to work I$
with all our 32bit cores SPI M
AXI - interconnect
§ Useful for in-house testing I$
Ariane
APB-interconnect
I2C
§ A more advanced version Boot
D$
ROM
will likely be developed UART
Debug
soon.
SPI M
Bus
GPIO AXI2Per
Adapt
Kerbin Coreplex
The main PULP systems we develop are cluster based
RISC-V Cores Peripherals Interconnect
RI5CY Micro Zero Ariane JTAG SPI Logarithmic interconnect
riscy riscy
UART I2S APB – Peripheral Bus
32b 32b 32b 64b
DMA GPIO AXI4 – Interconnect
Platforms
I M M M M M M
interconnect
I
interconnect
O R5 interconnect
A R5 R5 R5
A O cluster
Accelerators
HWCE Neurostream HWCrypt PULPO
(convolution) (ML) (crypto) (1st order opt)
The main components of a PULP cluster
CLUSTER
All cores can access all memory banks in the cluster
interconnect
CLUSTER
Data is copied from a higher level through DMA
L2
DMA Mem Mem Mem Mem Mem
interconnect
Mem
interconnect
CLUSTER
There is a (shared) instruction cache that fetches from L2
L2
DMA Mem Mem Mem Mem Mem
interconnect
Mem
interconnect
I$ I$ I$ I$
CLUSTER
Hardware Accelerators can be added to the cluster
L2
DMA Mem Mem Mem Mem Mem
interconnect
Mem
interconnect
I$ I$ I$ I$
CLUSTER
Event unit to manage resources (fast sleep/wakeup)
L2
DMA Mem Mem Mem Mem Mem
interconnect
Mem
interconnect
I$ I$ I$ I$
CLUSTER
An additional microcontroller system (PULPissimo) for I/O
Ext.
Mem
Tightly Coupled Data Memory
Mem
Mem Mem Mem Mem Mem
Cont
L2
DMA Mem Mem Mem Mem Mem
interconnect
Mem
interconnect
RISC-V
core
Event HW RISC-V RISC-V RISC-V RISC-V
Unit ACCEL core core core core
I/O
I$ I$ I$ I$
PULPissimo CLUSTER
How do we work: Initiate a DMA transfer
Ext.
Mem
Tightly Coupled Data Memory
Mem
Mem Mem Mem Mem Mem
Cont
L2
DMA Mem Mem Mem Mem Mem
interconnect
Mem
interconnect
RISC-V
core
Event HW RISC-V RISC-V RISC-V RISC-V
Unit ACCEL core core core core
I/O
I$ I$ I$ I$
PULPissimo CLUSTER
Data copied from L2 into TCDM
Ext.
Mem
Tightly Coupled Data Memory
Mem
Mem Mem Mem Mem Mem
Cont
L2
DMA Mem Mem Mem Mem Mem
interconnect
Mem
interconnect
RISC-V
core
Event HW RISC-V RISC-V RISC-V RISC-V
Unit ACCEL core core core core
I/O
I$ I$ I$ I$
PULPissimo CLUSTER
Once data is transferred, event unit notifies cores/accel
Ext.
Mem
Tightly Coupled Data Memory
Mem
Mem Mem Mem Mem Mem
Cont
L2
DMA Mem Mem Mem Mem Mem
interconnect
Mem
interconnect
RISC-V
core
Event HW RISC-V RISC-V RISC-V RISC-V
Unit ACCEL core core core core
I/O
I$ I$ I$ I$
PULPissimo CLUSTER
Cores can work on the data transferred
Ext.
Mem
Tightly Coupled Data Memory
Mem
Mem Mem Mem Mem Mem
Cont
L2
DMA Mem Mem Mem Mem Mem
interconnect
Mem
interconnect
RISC-V
core
Event HW RISC-V RISC-V RISC-V RISC-V
Unit ACCEL core core core core
I/O
I$ I$ I$ I$
PULPissimo CLUSTER
Accelerators can work on the same data
Ext.
Mem
Tightly Coupled Data Memory
Mem
Mem Mem Mem Mem Mem
Cont
L2
DMA Mem Mem Mem Mem Mem
interconnect
Mem
interconnect
RISC-V
core
Event HW RISC-V RISC-V RISC-V RISC-V
Unit ACCEL core core core core
I/O
I$ I$ I$ I$
PULPissimo CLUSTER
Once our work is done, DMA copies data back
Ext.
Mem
Tightly Coupled Data Memory
Mem
Mem Mem Mem Mem Mem
Cont
L2
DMA Mem Mem Mem Mem Mem
interconnect
Mem
interconnect
RISC-V
core
Event HW RISC-V RISC-V RISC-V RISC-V
Unit ACCEL core core core core
I/O
I$ I$ I$ I$
PULPissimo CLUSTER
During normal operation all of these occur concurrently
Ext.
Mem
Tightly Coupled Data Memory
Mem
Mem Mem Mem Mem Mem
Cont
L2
DMA Mem Mem Mem Mem Mem
interconnect
Mem
interconnect
RISC-V
core
Event HW RISC-V RISC-V RISC-V RISC-V
Unit ACCEL core core core core
I/O
I$ I$ I$ I$
PULPissimo CLUSTER
All these components are combined into platforms
RISC-V Cores Peripherals Interconnect
RI5CY Micro Zero Ariane JTAG SPI Logarithmic interconnect
riscy riscy
UART I2S APB – Peripheral Bus
32b 32b 32b 64b
DMA GPIO AXI4 – Interconnect
Platforms
M M M M
I M M M M M M M M
M M interconnect
M
interconnect
M MinterconnectM M
I
interconnect
O R5 interconnect
R5 R5 R5 R5
I
interconnect
interconnect
A R5 R5 R5 R5 R5 R5 R5
cluster
A O cluster A R5 R5 R5
cluster
O
cluster
Single Core R5 Multi-core
• PULPino • Fulmine R5 Multi-cluster
• PULPissimo • Mr. Wolf • Hero
IOT HPC
Accelerators
HWCE Neurostream HWCrypt PULPO
(convolution) (ML) (crypto) (1st order opt)
Multi-cluster systems for HPC applications
§ The way we design ICs has changed, big part is now infrastructure
§ Processors, peripherals, memory subsystems are now considered infrastructure
§ Very few (if any) groups design complete IC from scratch
§ High quality building blocks (IP) needed
@pulp_platform
The image part with relationship ID rId9 was not found in the file.
http://pulp-platform.org
Who says Open Source does not pay?
3000€
§ For winner & 1000€ for two runner ups
6000€
§ Register by 1st of March
§ Register by 1st of March § Has to be open source
§ https://www.eurolab4hpc.eu/open- § http://oprecomp.eu/open-source
source/call/
Join us in Week of Open Source HW, June 11-14 Zürich