#RISCVSUMMIT | tmt.knect365.com/risc-v-summit/
Practical Computer Architecture Education with RISC-VStefan WallentowitzProfessorMunich University of Applied Sciences@wallento
About Me
#RISCVSUMMIT | tmt.knect365.com/risc-v-summit/
•Graduated from RWTH Aachen and TU Munich, EE/Computer Engineering
•Research Interests: Manycore SoC, physical hardware security, verification
•Professor at Munich University of Applied Sciences since March 2019
Professional
•Long time user and contributor to OpenRISC, then RISC-V
•Many open source projects (HDL, Tools, …)
Hobbyist
•Director at Free and Open Source Silicon Foundation
Advocacy & Community
Munich University of Applied Sciences
► 18400 Students, 14 Departments
► Characteristics
• Primarily Bachelor and Masters Degrees
• Strong Focus on Practice and Application
• Application-oriented Research
• Small Class Sizes (5-40 students)
• Compulsory Industry Internship
• Professors: Min. 5 years industry experience
► (Comparable) Strategic Partners: Cal Poly (San Luis Obispo), TAMK (Tampere, Finland), UAS Vienna and Zurich
► My Faculty: Computer Science & Mathematics
#RISCVSUMMIT | tmt.knect365.com/risc-v-summit/
My First Course: Computer Architecture
► 4th Semester Bachelor
► Classic Curriculum
• Pipelining Basics
• How we got to large IPCs(BP, Superscalar, OoO)
• Memory, Interconnect, …
► Lecture & Integrated Laboratory
► … and all this cool open source stuff out there!
#RISCVSUMMIT | tmt.knect365.com/risc-v-summit/
How I see Computer Architecture
#RISCVSUMMIT | tmt.knect365.com/risc-v-summit/
© W
ikim
edia
/web
alys
, C
C-B
Y 4
.0
How my CS Students see Computer Architecture
#RISCVSUMMIT | tmt.knect365.com/risc-v-summit/
© W
ikim
edia
/Ru
ben
de
Rijc
ke, C
C-B
Y-SA
3.0
© W
ikim
edia
/Sae
19
62
, CC
-BY-
SA 3
.0
The Lecture
#RISCVSUMMIT | tmt.knect365.com/risc-v-summit/
The Laboratory
#RISCVSUMMIT | tmt.knect365.com/risc-v-summit/
• Refresher in Computer Systems, RISCV Instruction Set and Assembly
• Tools: rv8, spike, Venus
RISC-V Basics
• DLX Pipeline: Ripes Simulator
• Simulators, Emulators, Levels of Abstraction
• RTL Simulations of popular open source CPUs(ibex, SCR-1, Rocket, Ariane, BOOM)
Computer Architecture
• Nexys A7 FPGA board with different open source CPUs
FPGA Platform
RISC-V Basics
► Refresh Assembly Skills
► Small programs, calling conventions etc.
► Venus simulator (JavaScript in Browser)
#RISCVSUMMIT | tmt.knect365.com/risc-v-summit/
Venus Simulator: https://www.kvakil.me/venus/
Basic DLX Pipeline
► Move away from pure functional (instruction accurate)
► Understand basic (DLX) pipeline principle
► Ripes simulator (awesome project!)
#RISCVSUMMIT | tmt.knect365.com/risc-v-summit/
Ripes Simulator: https://github.com/mortbopet/Ripes
Simulators, Emulators, Level of Abstraction
► Step from visual simulators to other types of simulation/emulation
► rv8: Different modes, understand user mode emulation etc.
► Understand levels of abstraction
► RTL simulation (Verilator) and gtkwave: Syntacore SCR-1
#RISCVSUMMIT | tmt.knect365.com/risc-v-summit/
Syntacore SCR-1: https://github.com/syntacore/scr1
Computer Architecture Insights
► Goal: Understand Computer Architecture concepts
► Insights into core implementations without waveforms etc.but with real processor cores!
► Example of existing tools: BOOM and gem5 O3 pipeline viewer
► THAT, but with much moreµ-architectural details!
#RISCVSUMMIT | tmt.knect365.com/risc-v-summit/
Pipeline Viewer
► Python: pip install pipeline-viewer
► Re-implementation of basic pipeline viewer, but with extra modes
► Extensions of core simulation environment with DPI
► Example: Ariane 64-bit core
#RISCVSUMMIT | tmt.knect365.com/risc-v-summit/
Testbench
Ariane
DP
I µar
chTr
acer
Minimal extensions to ease tracking of instructions (may become obsolete)
Observe microarchitecture and trace events
Trace File
CTF (binary trace) or text file
pipeline-viewer
Pipeline Viewer: Instruction Trace
► Assignment: Observe instructions in pipeline, determine IPC
#RISCVSUMMIT | tmt.knect365.com/risc-v-summit/
Instruction lifecycle over time
Total retired instructions
DurationPC &
Disassembly
Pipeline Viewer: Branch Predictor
► Assignment: Compare expected behavior, impact of difference sizes
#RISCVSUMMIT | tmt.knect365.com/risc-v-summit/
Branch prediction and updates to the
predictor
Work-in-Progress: FPGA Integration
► Implement cores in FPGA and add micro-architecture trace
► Ran out of time in spring 2019, will be added in spring 2020
#RISCVSUMMIT | tmt.knect365.com/risc-v-summit/
FPGA
Core
µar
chTr
acer
CTFpipeline-viewer
Open SoC Debug
Outlook: Computer System Basics
► Course in Computer System Fundamentals
► Currently MMIX & VMB
► Switch to RISC-V
► Plan: Extend Venus simulator for example with I/O visualization
► ETA: Summer 2020
► Also: Benchmarking with Embench
#RISCVSUMMIT | tmt.knect365.com/risc-v-summit/
Summary
► Computer Architecture Teaching with Real Processor Cores
► Accessible to non-EE students, no need to touch HDL/waveforms
► Reusable infrastructure, WIP even for FPGACores: lowRISC Ibex, Syntacore SCR-1, ETH Ariane, Berkeley BOOM
► Laboratory Curriculum
► Soon available online: https://github.com/wallento/riscv-ca-teaching
► Get in touch!
[email protected] @wallento
#RISCVSUMMIT | tmt.knect365.com/risc-v-summit/