Beruflich Dokumente
Kultur Dokumente
2
“Rocket Chip” SoC Generator
Rocket
Tile
Rocket
Tile HTIF
! Generates n Tiles
Core
ROCC
Core
ROCC - (Rocket) Core
- RoCC Accelerator
Accel. Accel.
FPU FPU
- L1 I$
L1 Inst
sets,
L1 Data
sets,
L1 Inst
sets,
L1 Data
sets,
- L1 D$
! Generates HTIF
ways ways ways ways
4
Why Chisel?
- object-oriented
Scala/JVM
programming
- functional C++
FPGA
programming code
Verilog
ASIC
Verilog
C++ Compiler
6
ARM Cortex-A5 vs. RISC-V Rocket
Category ARM Cortex-A5 RISC-V Rocket
ISA 32-bit ARM v7 64-bit RISC-V v2
Architecture Single-Issue In-Order Single-Issue In-Order 5-stage
Performance 1.57 DMIPS/MHz 1.72 DMIPS/MHz
Process TSMC 40GPLUS TSMC 40GPLUS
Area w/o Caches 0.27 mm2 0.14 mm2
Area with 16K Caches 0.53 mm2 0.39 mm2
Area Efficiency 2.96 DMIPS/MHz/mm2 4.41 DMIPS/MHz/mm2
Frequency >1GHz >1GHz
Dynamic Power <0.08 mW/MHz 0.034 mW/MHz
8
Important Interfaces in the Rocket Chip
! ROCCIO
Tile Tile HTIF
Rocket Rocket HTIFIO
Core Core
ROCCIO
ROCC
Accel.
ROCC
Accel. - Interface between
Rocket/Accelerator
FPU FPU
HostIO
! TileLinkIO
client client client client client
- Coherence Fabric
TileLink
O
inkI
L1 NetworkO arb
kIO nkI
! MemIO
Li
L
Lin Tile
Tile
Tile
Coherence Manager
mngr
- Simple AXI-like
memory interface
client arb
! HostIO
TileLinkIO
TileLink
9
TileLinkIO
Client Client
Cache Cache
Release
Release
Acquire
Acquire
Probe
Probe
Finish
Finish
Grant
Grant
Manager
10
UncachedTileLinkIO
Client Client
Cache
Release
Acquire
Acquire
Probe
Finish
Finish
Grant
Grant
Manager
MemReqCmd.valid
MemReqCmd.ready
Decoupled(MemData)
Decoupled(MemResp)
core_id
Decoupled(CSRReq)
Decoupled(CSRResp)
Decoupled(IPIReq)
Decoupled(IPIResp)
RISC-V
Rocket Chip HostIO Frontend
MemIO
Server
pthread
DRAMSim2
15
Rocket Chip FPGA Setup
ZYNQ FPGA
Rocket Chip
MemIO
HostIO
HostIO/AXI MemIO/AXIHP
Convertor Convertor
AXI HP
AXI
ARM
Processing System
DDR3 DRAM
MemIO
Rocket Chip
MemIO
Serializer
M
em
HostIO
Se
ri a
lIO
ZYNQ FPGA
ARM
Processing System
DDR3 DRAM
17
Rocket Chip “SoC” Setup
Interrupts
mIO
Me
18
Who should use the Rocket Chip Generator?
People who would like to develop …
! A RISC-V SoC
Tile Tile HTIF
Rocket Rocket HTIFIO
Core
ROCCIO
ROCC
Core
ROCC - Look into Chisel
parameters
Accel. Accel.
FPU FPU
! New Accelerators
HostIO
L1 Inst
sets,
L1 Data
sets,
L1 Inst
sets,
L1 Data
sets,
- Drop in at ROCCIO level
ways ways ways ways
! Own RISC-V Core
client client client client client
- Drop in at TileLinkIO level
or MemIO level
TileLink
O
! Own Device
inkI
L1 NetworkO arb
kIO Li nkI
L
Lin Tile
Tile
Tile
Coherence Manager
- Drop in at TileLinkIO or
UncachedTileLinkIO
mngr
client arb
TileLinkIO
TileLink
19
New Features: L2$ with Directory Bits
Tile Tile HTIF ! Shared L2$ with
multiple banks
Rocket Rocket
Core Core
ROCC ROCC
TileLink
L1 Network arb
20
New Features: ROCC interfaces with L2$
Tile Tile HTIF ! ROCC talks directly
to the L2$ to
Rocket Rocket
Core Core
ROCC
ROCC
Accel.
L1 Inst
L1 Inst L1 Data L1 Data
sets, sets, sets,
ways ways ways
TileLink
L1 Network arb
21
New Features on the Deck
22