optimsoc - previous fosdem editions · optimsoc build your own system-on-chip! ... tiled manycore...
TRANSCRIPT
Technische Universität München
Institute for Integrated SystemsProf. Dr. Andreas Herkersdorf
Arcisstraße 2180333 MünchenGermany
http://www.lis.ei.tum.de
OpTiMSoCBuild Your Own System-on-Chip!
Philipp Wagner
FOSDEM 2014February 2nd 2014
3
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
It's his fault! (not really)
Pho
to b
y In
telF
reeP
ress
, CC
-BY
-SA
-2.0
http
://w
ww
.fic
kr.c
om/p
hoto
s/in
telfr
eep
ress
/842
9166
752/
size
s/o/
in/p
hoto
stre
am/
4
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Figu
re b
y W
gsim
on C
C-B
Y-S
A-3
.0 o
r G
FDL,
via
Wik
imed
ia C
omm
ons
http
://c
omm
ons.
wik
imed
ia.o
rg/w
iki/F
ile%
3ATr
ansi
stor
_Cou
nt_a
nd_M
oore
's_L
aw_-
_201
1.sv
g
5
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
scalable
reusable
robust
Goals
6
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
The solution is not new
Pho
to b
y m
harr
sch
on F
lickr
, CC
-BY
-SA
-2.0
http
://w
ww
.fic
kr.c
om/p
hoto
s/m
harr
sch/
2931
9685
/siz
es/o
/in/s
et-6
5364
0/
7
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Tiles: our basic building blocks
a tile
8
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Tiles can be very different ...
compute tile
accelerator tile
memory tile
11
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Intel Single-chip Cloud Computer (SCC)
Slid
e 6
from
SC
C A
nnou
ncem
ent
Pre
sent
atio
n b
y Ju
stin
Rat
tner
(CTO
Inte
l), D
ec. 2
009
http
://d
ownl
oad
.inte
l.com
/pre
ssro
om/p
df/
rock
cree
k/S
CC
_Ann
ounc
emen
t_Ju
stin
Rat
tner
.pd
f
12
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Adapteva Epiphany (→ Parallela)
Graphic from the “Epiphany Introduction” by Adaptevahttp://www.adapteva.com/introduction/
13
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Tilera TILE-Gx64
Graphic taken from “Tilera TILE-Gx8072Processor Product Brief”http://www.tilera.com/sites/default/files/images/products/TILE-Gx8072_PB041-03_WEB.pdf
14
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Op Ti M SoCOpen Tiled Many-
CoreSystem-on-Chip
Let's talk about
15
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Building Blocks for your
Tiled Manycore System-on-Chip
Not a production ready solution!
16
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
The OpTiMSoC “Bag of Components”
Jeffrey Beall via Flickr, C
C-B
Y-S
A-2.0 (ed
ited)
ww
w.fickr.com
/photos/d
enverje ffrey/439241833 4
17
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Compute Tile: Distributed Memory• OpenRISC Core
– OR1200 (old)– mor1kx (new)
• Extended for multicore– core identifier SPR– Compare-and-Swap (CAS)
unit (memory mapped)– scratch memory for each
core• Shared memory (with L2$)
version currently under development
18
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Network Adapter
• Computation Communication↔
• DMA Engine– Transfer bulk data between tiles
• Message Passing (MP)– Explicit communication between
tiles– Asynchronous
To NoC From NoC
IRQ
Bus
write read
19
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Memory Tile
On-Chip SRAM External DDR Memoryor
20
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
I/O Tiles
• UART• SPI• LCD dotmatrix display
21
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Accelerator Tiles
• For CPU offoad• Needs to handle NoC
protocol and possibly Message Passing protocol
• currently working on AES (crypto) tile
22
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Network-on-Chip: LISNoC
• Basic NoC implementation– mesh or ring– wormhole– packet switched– dimension routing– configurable buffers– virtual channel support
• Other features “available on request” (bufferless, multicast, ...)
23
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Photo b
y cliff106 6TM, via Flickr; C
C-B
Y-2.0
http://w
ww
.fickr .com/p
hotos/no stri-imago/3137 422976/
Target
Platforms
24
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Target Platforms
RTL Simulation FPGA Emulation
25
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Target: RTL Simulation
• ModelSim– signal-level insight into HW– short turnaround times– rather slow
• Verilator– great for system-level and software
development– much faster than ModelSim– free software!
• Icarus Verilog– free software– never tested
26
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Target: FPGA
ZTEX USB-FPGA 1.15b/dXilinx Spartan 6 FPGA and
Cypress FX2 USB 2.0
Xilinx University Program Virtex 5 (XUPV5; almost ML505)
pro: fast, real hardwarecon: hard-ware = hard bugs
29
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Programming: the basics
• newlib C library port• OpenRISC GCC
30
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Programming: “Operating System”
• libbaremetal: drivers, utility functions– Mutex, CAS, interrupt handling, DMA, timer
• libruntime: simple runtime system– scheduler, thread handling
• Multicore Association Communication (MCAPI) and Task Management API (MTAPI)– message passing (MCAPI) and heterogeneous task
management (MTAPI) APIs• Linux support is being worked on, ETA end of 2014
31
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Programming: Hello World
$> cat hello_simple.c#include <stdio.h>
void main() { printf("Hello World!\n");}
$> cat MakefilePROGRAM=hello_simple
BUILDSCRIPTS=$(shell pkgconfig variable=buildscriptdir optimsocbaremetal)include $(BUILDSCRIPTS)/Makefile.inc
All build infrastructure is included!
32
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Debugging: Concept
• tracing only• hardware support
– filtering, compression– no interference with system
• debug modules in hardware– instruction traces– software traces
• printf()• send events from software
– NoC status• initialization of memories
37
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
What can I use OpTiMSoC for?
• Use your FPGA: Build your own SoC– often 1 or 2 CPU cores are enough
• Develop/evaluate hardware architectures/extensions• Look inside a SoC• <insert your ideas here>
38
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Get Started!
Code & Documentation @ www.optimsoc.org
39
Technische Universität München
Philipp WagnerOpTiMSoC @ FOSDEM 2014
Questions?
The “Army of Awesome”: Andreas Lankes, Philipp Wagner, Stefan WallentowitzAlexandra Weber, Andreas Oeldemann, Andreas Wilhelm, Christian Morgenstern, Daniel Haug, Daniel Thaler, Dexin Chen, Eugen Egel, Falco Cescolini, Hans-Christian Wild, Johannes Ehm, Julia Müller, Markus Göhrle, Martin Lowinski, Manuel Krause, Michael Faath, Michael Tempelmeier, Preethi Parayil, Robert Specht, Sebastian Herzog, Simon Schulze, Stefan Rösch, Umbreen Mian