optimsoc - previous fosdem editions · optimsoc build your own system-on-chip! ... tiled manycore...

38
Technische Universität München Institute for Integrated Systems Prof. Dr. Andreas Herkersdorf Arcisstraße 21 80333 München Germany http://www.lis.ei.tum.de OpTiMSoC Build Your Own System-on-Chip! Philipp Wagner FOSDEM 2014 February 2nd 2014

Upload: lamkiet

Post on 09-Sep-2018

220 views

Category:

Documents


0 download

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

2

Technische Universität München

Philipp WagnerOpTiMSoC @ FOSDEM 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

9

Technische Universität München

Philipp WagnerOpTiMSoC @ FOSDEM 2014

Network-on-Chip (NoC): Mesh

10

Technische Universität München

Philipp WagnerOpTiMSoC @ FOSDEM 2014

Network-on-Chip (NoC): Ring

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

28

Technische Universität München

Philipp WagnerOpTiMSoC @ FOSDEM 2014

Programming?

?

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 pkg­config ­­variable=buildscriptdir optimsoc­baremetal)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

33

Technische Universität München

Philipp WagnerOpTiMSoC @ FOSDEM 2014

Debugging: Implementation

34

Technische Universität München

Philipp WagnerOpTiMSoC @ FOSDEM 2014

OpTiMSoC Host GUI

35

Technische Universität München

Philipp WagnerOpTiMSoC @ FOSDEM 2014

OpTiMSoC Host GUI

36

Technische Universität München

Philipp WagnerOpTiMSoC @ FOSDEM 2014

OpTiMSoC Host GUI

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