+ All Categories
Home > Documents > Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area...

Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area...

Date post: 20-Oct-2019
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
44
Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Tobias Strauch R&D, EDAptix, Munich, Germany [email protected] —————————– 4th RISC-V Workshop at MIT, Boston, USA July 13, 2016
Transcript
Page 1: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

Improving the Performance Per Area Factor ofRISC-V Based Multi-Core Systems

Tobias StrauchR&D, EDAptix, Munich, Germany

[email protected]—————————–

4th RISC-V Workshop at MIT, Boston, USA

July 13, 2016

Page 2: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

Agenda

I C-Slow RetimingI System Hyper Pipelining

I Basic IdeaI Performance BalancingI Deep PipeliningI Extended PipeliningI Performance per Area Factor

I microRISC Project

I miniRISC Project

I Miscellaneous

Page 3: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

C-Slow Retiming

Page 4: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

C-Slow Retiming

Page 5: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

C-Slow Retiming

Page 6: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

C-Slow Retiming

Page 7: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

C-Slow Retiming

Page 8: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

C-Slow Retiming

Page 9: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

C-Slow Retiming

Page 10: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

C-Slow Retiming

Page 11: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

C-Slow Retiming

Page 12: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

C-Slow Retiming

Page 13: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

C-Slow Retiming

Page 14: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

C-Slow Retiming

Page 15: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

C-Slow Retiming

Page 16: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

C-Slow Retiming

Page 17: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

C-Slow Retiming

I Known since the 60’s, Barrel processors

I Leiserson [1]

I Berkeley summer class in 2001

I CSR on FPGAs (LUT level) by Weaver et al. [2]

I Millions of engineers

Page 18: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

C-Slow Retiming (Personal Work)

I Diploma Thesis in 1998 on CSR of FSM

I LSI Logic (Milpitas, CA), RISC Processor, CSR on gate level

I 2001: Timing estimation on RTL, RTL code modification, ...

I 2010: Automatically apply CSR on RTL

I 2010: AVR Core (VHDL) on opencores.org

I 2010: OpenRISC Core (Verilog) on opencores.org

I Papers on CSR on RTL, CSR in safety critical designs, ...

Page 19: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

System Hyper Pipelining

Page 20: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

System Hyper Pipelining

Page 21: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

System Hyper Pipelining

Page 22: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

System Hyper Pipelining

Page 23: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

System Hyper Pipelining

Page 24: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

System Hyper Pipelining

Page 25: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

System Hyper Pipelining

Page 26: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

System Hyper Pipelining

Page 27: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

System Hyper Pipelining

Page 28: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

System Hyper Pipelining

Page 29: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

System Hyper Pipelining

Page 30: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

System Hyper Pipelining

Page 31: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

System Hyper Pipelining

Page 32: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

System Hyper Pipelining

I Based on CSR

I Replaces original registers with memories (D).

I Adds thread stalling and therefore thread bypassing features.

I Cycle accurate performance balancing

I Late read / early write [3]

Page 33: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

SHP, Performance Balancing

I Predictive runtime of specific threads

I Sync. start/execution, ”Dynamic Length Instruction Words”

Page 34: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

SHP, Deep Pipelining, T0 in “Beast Mode“

I Detect instruction dependency, LSB RISC-V ISA

I 1) Instruction LSB-sniffing

I 2) Enhanced PM read

I 3) Consider stall/flush signal

I No back-to-back, turned on/off on the fly

Page 35: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

SHP, Extended Pipelining, “Frequency-Over-Scaling“

I Less registers per path than necessary

I Multi-cycle path for example in datapath section

I Re-execution of thread with valid multi-cycle path

Page 36: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

SHP, Performance per Area Factor

I CHStone

Page 37: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

SHP, System Level

I Performance (frequency) over area curve

I System level performance improvements !!!

I microRISC (Vscale), microcontroller, virtual peripherals, ...

I miniRISC (lowRISC, Rocket), SoC, OS, FPU, accelerators, ...

Page 38: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

microRISC

I Vscale @80MHz async DDR3, SHP-ed @250MHz synchron

I Based on RV32IM subset (no FENCE and no SI, ”RV32B”)

I Individual threads handle interrupts (less stack activity).

I Main focus on virtual peripherals

I TC with event handler (complex timer)

Page 39: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

microRISC

I UARTs

I PWMs

I ...

I Standard toolchain compatible (C++, ...)I Demo: How to run timing critical software peripherals based

on a highly dynamic SHP-ed core.

Page 40: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

lowRISC / University of Cambridge

I Diagram: Wei Song, lowRISC / University of Cambridge

I Wei: ”personal view”

Page 41: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

miniRISC (based on lowRISC)

I Minions part of Rocket core, heterogeneous multi-core

I SHP impact on performance per area and SoC architecture

I Arbiter/multiplexer: blocking

I Multilayer: complex

I SHP: time sliced usage at higher speed

Page 42: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

Miscellaneous

I Simple programming model

I Fork-join operations, OpenMP

I Estimated ASIC numbers in paper [3]

I Altera Hyper Pipelining technology looks promising

I More on-FPGA memory (memory wall)

I Power consumption (work ongoing)

I Source code of projects in PDVL (VHDL, Verilog)

Page 43: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

References

[1] C. Leiserson and J. Saxe, “Retiming Synchronous Circuitry“,Algorithmica, vol. 6, no. 1, pp. 5-35, 1991.

[2] N. Weaver, Y. Markovskiy, Y. Patel and J. Wawrzynek,“Post-Placement C-slow Retiming for the Xilinx Virtex FPGA,“FPGA 2003, February 23-25, 2003, Monterey, CA, USA.

[3] T. Strauch, “The Effects of System Hyper Pipelining on ThreeComputational Benchmarks Using FPGAs“, 11th InternationalSymposium in Applied Reconfigurable Computing, ARC 2015,13-17 April 2015, Bochum, Germany, pp. 280-290.

Page 44: Improving the Performance Per Area Factor of RISC-V Based ... · Improving the Performance Per Area Factor of RISC-V Based Multi-Core Systems Author Tobias Strauch R&D, EDAptix, Munich,

You made it !!!

I Thank you

I @arduissimo

I www.cloudx.cc

I [email protected]

I Call for cooperation: SHP-ed CPU in an ASIC technology


Recommended