programming heterogeneous many-core platforms … heterogeneous many-core platforms in nanometer...

71
Programming Heterogeneous Many-core platforms in Nanometer Technology: the P2012 experience Luca Benini STMicroelectronics & Università di Bologna ARTIST DESIGN Summer school Autrans, France, Sept 6 th 2010

Upload: lamnguyet

Post on 28-Mar-2018

221 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

Programming Heterogeneous Many-core platforms in Nanometer Technology: the P2012 experience

Luca Benini STMicroelectronics & Università di Bologna

ARTIST DESIGN Summer school Autrans, France, Sept 6th 2010

Page 2: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

2

2

SoCs for Digital Convergence

Tight power and silicon area budgets

Page 3: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

3

Flexibility is mandatory

3

Key advantages   Lower Cost   Faster Time to Market   Support for Multiple Applications (Current and Future)   Bug Fixes After Manufacturing

Programmable Unified Architectures vs. multiple hardwired IPs

[Ramacher09]

Page 4: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

4

SOC Consumer Portable Processing Performance Trends. Source: ITRS

Multi/Many cores to bridge the gap between individual processing performance and system processing performance requirement

The multy-core Moore’s Law

Page 5: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

5

Multi-core and Silicon Efficiency

C1 C2

C3 C4

Cache

Large Core

Cache

1

2

3

4

1

2

3

4

1

2

3

4

1

2

Power

Performance

Small Core 1 1

Power = 1/4

Performance = 1/2

Multi-Core: Better power & computational

density

Page 6: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

6

Integrated SoC (AP+BB)

  High-speed SMP for “almost sequential” GP   “Processor arrays” for domain-specific throughput

computing (100x GOPS/W)

Page 7: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

7

Core’s Law in ST

Cor

es p

er C

hip

2004

2002

2006

2012

  Embedded cores in SoC products 2x every ~2 years   Total SoC area very stable across tech nodes

2

4

8

16

32

64

128

256

2008

2010

2014

2016

Multi-core

Many-core

Dual-core

???

Source: Casual observation

x x

x x

X: Data points in ST

Source: Sample ST consumer SoCs

Page 8: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

Challenges

Yield and variability Modular Fabric

Page 9: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

9

Next generation process variations

  The next generation of MOSFETs are atomic-scale devices

  Intra-die variations becomes significant   Random Dopant Fluctuation   Across Chip Length Variation   RC variations

  Over-design leading to higher power consumption and larger chip

  Yield likely to decrease for complex non regular design

Wafer-to-wafer Lot-to-lot

Die-to-die Intra-Die

22 nm MOSFET 4 nm MOSFET

Page 10: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

10

Manufacturing Yield

35 % of yield improvement traded

against a 2% performance or area

penalty

Computing Islands are decoupled. Non-functional ones can be removed at test time or even dynamically. Spare parts can be provisioned at design time.

Lifetime increase of a process node Earlier process node migration possible

Time

Threshold for Volume

Production

System Computing islands

Page 11: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

11

Parametric Yield (variability)

Clk Clk Clk

Root cause: Variability

100%

50% Yiel

d

1/Throughput

[Garg DATE07]

Yield gain at same throughput with limited power impact + Wearout Mgt

Decoupling

Clock and voltage can be adapted for each domain correcting local

variations of the process

Page 12: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

12

Decoupling GALS   Several synchronous clock domains (Synchronous

Blocks) communicate through asynchronous channels   Each SB can be clocked independently for local needs

Data Handshake

CLK1 SB1

CLK2 SB2

CLK3 SB3

  Pros   Reduced average frequency   Reduced global power   Globally skew tolerant   No global clock in GALS: easier

local clock design

  Cons   Global communication overhead

from handshake protocol   Total area, average wirelength

and power penalty from protocol   Local clock overhead

Page 13: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

13

Closed Loop Control

V F

Sensor (P, V, T) Actuator (V, F) Control

Computing Tile

Page 14: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

14

Effect of local adaptation on power

V,F

V1,F1 V2,F2 V2,F2 V2,F2 V2,F2 V2,F2 V2,F2 V2,F2

Decoupled

Coupled

Page 15: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

15

System Bridge

P2012 Top-Level Architectural View

Core

Core

Core

Core

L1

L1

L1

L1

L2

Core

Core

Core

Core

L1

L1

L1

L1

Synchronizer

XFC NI

Core

Core

Core

Core

L1

L1

L1

L1

L2

Core

Core

Core

Core

L1

L1

L1

L1

Synchronizer

XFC NI

Core

Core

Core

Core

L1

L1

L1

L1

L2

Core

Core

Core

Core

L1

L1

L1

L1

Synchronizer

XFC NI

Core

Core

Core

Core

L1

L1

L1

L1

L2

Core

Core

Core

Core

L1

L1

L1

L1

Synchronizer

XFC NI

Core

Core

Core

Core

L1

L1

L1

L1

L2

Core

Core

Core

Core

L1

L1

L1

L1

Synchronizer

XFC NI

Core

Core

Core

Core

L1

L1

L1

L1

L2

Core

Core

Core

Core

L1

L1

L1

L1

Synchronizer

XFC NI

Core

Core

Core

Core

L1

L1

L1

L1

L2

Core

Core

Core

Core

L1

L1

L1

L1

Synchronizer

XFC NI

Core

Core

Core

Core

L1

L1

L1

L1

L2

Core

Core

Core

Core

L1

L1

L1

L1

Synchronizer

XFC NI

Core

Core

Core

Core

L1

L1

L1

L1

L2

Core

Core

Core

Core

L1

L1

L1

L1

Synchronizer

XFC NI

System Bridge

Fabric Controller

Core Cluster

A tightly-coupled computing domain, sharing

•  Local controller •  Memory •  Fabric interface

Strong physical & electrical decoupling (clock, power)

Fabric

A loosely-coupled computing domain, sharing

•  Asynchronous NoC •  Host interface –with

configuration controller •  System bridges to L3

memory and other SoC mega-IPs SoC Interfaces

Page 16: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

16

Modular, hierarchical Control

[STM]

E2E latency

In rate Out rate

Page 17: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

Challenges

Silicon efficiency Multi-Grained Acceleration

Page 18: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

18

Silicon Efficiency @ Core Level

1 2 3 4 5 6 7 8

I II Instruction

Level Parallelism

Data Level Parallelism

X=Y+Z || T=U*V

Vz[1..8]=Vx[1..8]+Vy[1..8]

X=Y+Z

Instruction Optimization

<x1,..,xn> = f(……)

Page 19: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

19

P2012 Core

Optional features

Basic 7-pipe stage core

Exte

rna

l bu

s

VECx extension, 8,16,32

Program Data

Slot0-inputs Slot1-inputs Slot0-output Slot1-output dual pipe

Extension

Slot0 Slot1

Memories and/or Caches

ITC

EVC

MFU

M

UL

MPU

H

WL

X VECx

  STXp70: an ASIP “on steroids”   Domain-specific instructions   Domain-specific parameterized vector extension VECx   Dual issue

Instruction-level acceleration

Page 20: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

20

…xN…

Local Interconnect (LIC)

ANOC

L2 Energy &

Variability Unit

(E&VU) WDT

ITs

ITs

On/Off

NI STxP70-Based CDMA

M S M

HWS

STxP70 + ITC+EVT

#0 VECx-EFU

P-$ D-$

OCE

TCDM MPU

STxP70 + ITC+EVT

#1 VECx-EFU

P-$ D-$

OCE

TCDM MPU

STxP70 + ITC + EVT

#7 VECx-EFU

P-$ D-$

OCE

TCDM MPU

Debug & Trace Unit

OCE

Sensors

JTAG signal

TMS TCK TDI TD0 BI BO TMS TCK TDI TD0 BI BO TMS TCK TDI TD0 BI BO TMS TCK TDI TD0 BI BO

Multi-processor Cluster Partitioned local memory configuration

Page 21: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

21

…xN…

Local Interconnect (LIC)

ANOC

L2 Energy &

Variability Unit

(E&VU) WDT

ITs

ITs

On/Off

NI STxP70-Based CDMA

M S M

HWS

STxP70 + ITC+EVT

#0 VECx-EFU

P-$ D-$

OCE

TCDM MPU

STxP70 + ITC+EVT

#1 VECx-EFU

P-$ D-$

OCE

TCDM MPU

STxP70 + ITC + EVT

#7 VECx-EFU

P-$ D-$

OCE

TCDM MPU

Debug & Trace Unit

OCE

Sensors

JTAG signal

TMS TCK TDI TD0 BI BO TMS TCK TDI TD0 BI BO TMS TCK TDI TD0 BI BO TMS TCK TDI TD0 BI BO

Multi-processor Cluster Partitioned local memory configuration

2-level of Hierarchy in the cluster:  Maximize fMAX Max peak performance  Decoupled processors PVT management  Small L1 working set harder to program

Page 22: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

22

…xN…

ANOC

Multi-Ported SHMEM I$, D$/TCDM

Energy & Variability

Unit (E&VU)

WDT ITs

ITs

On/Off

NI STxP70-Based CDMA

M S M

HWS

STxP70 + ITC+EVT

#0 VECx-EFU

OCE

STxP70 + ITC+EVT

#1 VECx-EFU

OCE

STxP70 + ITC + EVT

#7 VECx-EFU

OCE

Debug & Trace Unit

OCE

Sensors

JTAG signal

TMS TCK TDI TD0 BI BO TMS TCK TDI TD0 BI BO TMS TCK TDI TD0 BI BO TMS TCK TDI TD0 BI BO

Multi-processor Cluster Shared local memory configuration

Page 23: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

23

…xN…

ANOC

Multi-Ported SHMEM I$, D$/TCDM

Energy & Variability

Unit (E&VU)

WDT ITs

ITs

On/Off

NI STxP70-Based CDMA

M S M

HWS

STxP70 + ITC+EVT

#0 VECx-EFU

OCE

STxP70 + ITC+EVT

#1 VECx-EFU

OCE

STxP70 + ITC + EVT

#7 VECx-EFU

OCE

Debug & Trace Unit

OCE

Sensors

JTAG signal

TMS TCK TDI TD0 BI BO TMS TCK TDI TD0 BI BO TMS TCK TDI TD0 BI BO TMS TCK TDI TD0 BI BO

Multi-processor Cluster Shared local memory configuration

Makes sense iff:  Minimize L1 access conflicts multiported  fMAX small penalty Fast P-L1 “crossbar”  Low PVT impact limited Δs @cluster-level

Page 24: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

24

Efficient? Still not enough! Core

Core

Core

Core

L1

L1

L1

L1

L2

Core

Core

Core

Core

L1

L1

L1

L1

Synchronizer

XFC NI

?

1

Pure HW custom block

1.3

P2012 HW cluster

F1

F2 F4

F3 F1

F2 F4

F3

F4

F3 F1

F2

Application spec

P2012 Heterogeneous HW-SW cluster

2.5

P2012 Homogeneous SW cluster

>5

Page 25: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

25

  Goal: provide cluster-level infrastructure for a range of mixed HW-SW implementation options

Core

Core

Core

Core

L1

L1

L1

L1

L2

Core

Core

Core

Core

L1

L1

L1

L1

Synchronizer

XFC NI

?

1

Pure HW custom block

1.3

P2012 HW cluster P2012 Heterogeneous HW-SW cluster

2.5

P2012 Homogeneous SW cluster

>5 Why? •  Minimum extra cost •  Max energy efficiency •  Scalability and modularity are

preserved •  Infrastructure handles

communication and synchronization

Why? •  SW flexibility is maintained •  Leverage pre-existing application-

specific processor IPs •  Support for mixed Proc+HW

accelerated function within cluster •  SW componentization + high-level

specification & programming environment available

Why? •  Fastest to silicon •  Max regularity (yield) •  Max flexibility •  IP development, integration

and qualification •  Demonstrate P2012: silicon,

programming model and tools

Efficient? Still not enough!

Page 26: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

26

P2012 Heterogeneous Cluster

  Homogeneous tiles   Programmable cores

only   Energy & Variability

management   Asynchronous interconnect   Multi-Proc design

  Heterogeneous tiles   Mix of programmable cores and

hardware blocks within a tile   Energy & Variability

management   Asynchronous interconnect   System Level design

Core

Core

Core

Core

L1

L1

L1

L1

L2

Core

Core

Core

Core

L1

L1

L1

L1

HW Synchronizer, CDMA, D&TU, T&MU, E&VU

NI

Core

HWPU

HWPU

L1

L2

HWPU

HWPU

HWPU

HWPU

HW Synchronizer, CDMA, D&TU, T&MU, E&VU

NI

Core L1

Page 27: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

Local InterConnect, LIC

Slave Master T3 T1

HW PE#N-1

SIF S SI SO

IT

HW PE#k+1

SIF S SI SO

IT

Clk, Power domain

HW PE#k

SIF S SO SI

IT

HW PE#0

SIF S SO SI

IT

P2012 HW-SW Cluster

NI S M

ANOC

Cluster Controller

Debug & Test Unit BOUT BIN B I

JTAG

ENCore<N>

… TMS TCK TDI TD0 BI BO

S M

E V

E V

BO

C T L

I T

S M

S M

M M

TMS TCK TDI TD0 BI BO TMS TCK TDI TD0 BI BO

SO SI M M S

C T L

M M

Shared Instr. $

Shared DMEM

PE1 PE2 PEN

HWS OCE STxP70

#0

I-$ TCDM

OCE

ITC DMA

DMA

27

Page 28: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

28

What is the cost of infrastructure?

x3

Pre-existing Image Enhancement HW-IP

DMA Stream-IF

Core L1

LIC

HWPU

HWPU

HWPU

HWPU NI

P2012 Mapping

PE granularity is key

Page 29: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

29

P2012 Design Flow

F1 F2

F3 F4

Application

Runtime SW libraries & drivers

L2 CC

STxP70 +ITC #0

EFU

P-$ D-$

OCE

TCDM MPU

Customizable core

NI

DMA

L2

CC

Customizable tile

NI

DMA

L2

CC

SW only cluster

NI

DMA

L2

CC

HW/SW cluster

NI

DMA

L2

CC

HW cluster V1 SW fabric

Tools

Page 30: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

Challenges

Memory Bottleneck 3D-Integrated Hierarchy

Page 31: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

CONFIDENTIAL 31

Next-Gen Mobile Platform Traffic

Graphic Video Imaging Display

ST NoC

Channel 1 DDR3(+)

Channel 2 DDR3(+)

  Multiple bandwidth hungry initiators ( Display, Graphic, Video, Imaging) that exchange data through main memory buffers

  Aggregate bandwidth is rapidly raising   Traditional JDEC DRAM channels are saturating   New standards are increasingly expensive (power, area, timing convergence)

Multi-ported frontend

Scheduler Phy

DRAM Ctrl

>10GBps

31

Page 32: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

32

Help from technology Bandwidth hungry, even more so for predictability

Through-silicon vias are at the technology bleeding edge today Industry interest is growing: http://www.emc3d.org/

Page 33: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

33

Understanding TSV technoology

SOI fabrication process Bulk Si fabrication process

  For a whole via of 50µm, delay is 16/18.5ps (SOI/bulk)   For a 1.5mm horizontal link, delay is around 200ps

Page 34: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

34

3D DRAM+Logic Integration

[Samsung09]

[Samsung10]

Page 35: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

35

3D-Multi-Channel Wide-IO Interface   Multiple logical channels onto multiple vertical

physical channels

SoC front-end

+ Queue

+ Scheduler

S1

S2

Sk

Slave port/s

PHY Memory backend

Memory backend

Memory backend

CH1

CH2

CH3

Logic DIE DRAM 1

Page 36: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

36

SoC front-end

+ Queue

+ Scheduler

S1

S2

Sk

Slave port/s

PHY Memory backend

Memory backend

Memory backend

CH1

CH2

CH3

DRAM 1

3D-Multi-Channel Wide-IO Interface   Multiple logical channels onto multiple vertical

physical channels

Page 37: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

37

SoC front-end

+ Queue

+ Scheduler

S1

S2

Sk

Slave port/s

PHY Memory backend

Memory backend

Memory backend

CH1

CH2

CH3

DRAM 1 DRAM 2

  Multiple logical channels onto multiple vertical physical channels

3D-Multi-Channel Wide-IO Interface

Page 38: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

38

SoC front-end

+ Queue

+ Scheduler

S1

S2

Sk

Slave port/s

PHY Memory backend

Memory backend

Memory backend

CH1

CH2

CH3

DRAM 3

Advantage: does not require functional changes to DRAM interface

  Multiple logical channels onto multiple vertical physical channels

3D-Multi-Channel Wide-IO Interface

Page 39: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

39

Scalability bottleneck

Bottleneck

 Single controller becomes a bottleneck even with many slave ports

  All cores need to reach it! Even using NoC interconnect, the latency price is high

  Internal management of multiple slave interface and many transaction queues creates complexity bottlenecks

 This approach does not exploit the possibility of fine-grain distribution of 3D vias

 Creates a single point of failure

Page 40: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

40

MEM MEM MEM MEM MEM MEM MEM MEM

MEM MEM MEM MEM

MEM MEM MEM MEM MEM MEM MEM MEM

MEM MEM MEM MEM

3D-Network on-chip • Packet-based

communication with QoS support (TDMA/priorities/ regulated traffic)

• Architecturally scalable: more nodes, more bandwidth

• Physically scalable: segmented P2P links

Scalable 3D-platform

TSV

s

TSV

s

TSV

s

PE PE

PE

TSV

s

PE

TSV

s

SW

PE TS

Vs

SW

PE SW SW SW

SW SW

PE

TSV

s

SW

Vertically Integrated main memory (not only DRAM!) • TSV main-memory communication from 10pJ/bit to 10fJ/bit • 105 interconnect density increase

Page 41: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

41

3D-NoC Implementation

20mOhm 37fF(depl.)

Measured TSV resistance Measured TSV capacitance Measured TSV resistance Measured TSV capacitance

10um 5um

Bottom tier Top tier

25um

Cu - Cu bonding

10um 5um

Bottom tier Top tier

25um

Cu - Cu bonding

16 - bit 3x3

NoC ROUTER TOP

TSV LINK Top

d_dt <16

>

d_va

lid

d_st

all

d_dt <16

>

d_va

lid

d_st

all

u_dt <16

>

u_va

lid

u_st

all

u_dt <16

>

u_va

lid

u_st

all

d_dt <16

>

d_va

lid

d_st

all

u_dt <16

>

u_va

lid

u_st

all 2 TSV per

logic wire On Data

Links TSV LINK BOTTOM

d_dt <16

>

d_va

lid

d_st

all

d_dt <16

>

d_va

lid

d_st

all

u_dt <16

>

u_va

lid

u_st

all

u_dt <16

>

u_va

lid

u_st

all

16 - bit 3x3

NoC ROUTER BOTTOM

MEMORY TOP

TRAFFIC GENERATOR

TOP

Netw

ork

In

terf

ace Bi - link<16 >

Bi - link<16>

MEMORY BOTTOM

TRAFFIC GEN BOTTOM

Netw

ork

In

terf

ace

JTAG TOP

JTAG BOTTOM

Scan in Scan out Scan Clk Update

Scan in Scan out Scan Clk Update

Bi - link<16 >

Bi - link<16>

PAD SELECT

PADS BOTTOM

PADS TOP

PADS BOTTOM

CPY

TM

S

TD

I

TCK

TD

O

TRST 3 TSV per

pad for JTAG BOTTOM

except TCK 3xG

ND

3xV

DD top

bottom

PLAN

E I

D

1.5V

[email protected]/25C Limited by test equipment

Page 42: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

42

P2012 & 3D Integration

System Bridge

Core Core Core Core

L1 L1 L1 L1

L2

Core Core Core Core

L1 L1 L1 L1

Synchronizer

XFC NI

Core Core Core Core

L1 L1 L1 L1

L2

Core Core Core Core

L1 L1 L1 L1

Synchronizer

XFC NI

Core Core Core Core

L1 L1 L1 L1

L2

Core Core Core Core

L1 L1 L1 L1

Synchronizer

XFC NI

Core Core Core Core

L1 L1 L1 L1

L2

Core Core Core Core

L1 L1 L1 L1

Synchronizer

XFC NI

Core Core Core Core

L1 L1 L1 L1

L2

Core Core Core Core

L1 L1 L1 L1

Synchronizer

XFC NI

Core Core Core Core

L1 L1 L1 L1

L2

Core Core Core Core

L1 L1 L1 L1

Synchronizer

XFC NI

Core Core Core Core

L1 L1 L1 L1

L2

Core Core Core Core

L1 L1 L1 L1

Synchronizer

XFC NI

Core Core Core Core

L1 L1 L1 L1

L2

Core Core Core Core

L1 L1 L1 L1

Synchronizer

XFC NI

Core Core Core Core

L1 L1 L1 L1

L2

Core Core Core Core

L1 L1 L1 L1

Synchronizer

XFC NI

Core Core Core Core

L1 L1 L1 L1

L2

Core Core Core Core

L1 L1 L1 L1

Synchronizer

XFC NI

Core Core Core Core

L1 L1 L1 L1

L2

Core Core Core Core

L1 L1 L1 L1

Synchronizer

XFC NI

Core Core Core Core

L1 L1 L1 L1

L2

Core Core Core Core

L1 L1 L1 L1

Synchronizer

XFC NI

Core Core Core Core

L1 L1 L1 L1

L2

Core Core Core Core

L1 L1 L1 L1

Synchronizer

XFC NI

Core Core Core Core

L1 L1 L1 L1

L2

Core Core Core Core

L1 L1 L1 L1

Synchronizer

XFC NI

Core Core Core Core

L1 L1 L1 L1

L2

Core Core Core Core

L1 L1 L1 L1

Synchronizer

XFC NI

Core Core Core Core

L1 L1 L1 L1

L2

Core Core Core Core

L1 L1 L1 L1

Synchronizer

XFC NI

Core Core Core Core

L1 L1 L1 L1

L2

Core Core Core Core

L1 L1 L1 L1

Synchronizer

XFC NI

Core Core Core Core

L1 L1 L1 L1

L2

Core Core Core Core

L1 L1 L1 L1

Synchronizer

XFC NI

Core Core Core Core

L1 L1 L1 L1

L2

Core Core Core Core

L1 L1 L1 L1

Synchronizer

XFC NI

Core Core Core Core

L1 L1 L1 L1

L2

Core Core Core Core

L1 L1 L1 L1

Synchronizer

XFC NI

System Bridge

XFC NI

Mem Mem Mem Mem Mem

Mem

XFC NI

Mem Mem Mem Mem Mem

Mem

XFC NI

Mem Mem Mem Mem Mem

Mem

XFC NI

Mem Mem Mem Mem Mem

Mem

XFC NI

Mem Mem Mem Mem Mem

Mem

XFC NI

Mem Mem Mem Mem Mem

Mem

XFC NI

Mem Mem Mem Mem Mem

Mem

XFC NI

Mem Mem Mem Mem Mem

Mem

XFC NI

Mem Mem Mem Mem Mem

Mem

XFC NI

Mem Mem Mem Mem Mem

Mem

XFC NI

Mem Mem Mem Mem Mem

Mem

XFC NI

Mem Mem Mem Mem Mem

Mem

XFC NI

Mem Mem Mem Mem Mem

Mem

XFC NI

Mem Mem Mem Mem Mem

Mem

XFC NI

Mem Mem Mem Mem Mem

Mem

XFC NI

Mem Mem Mem Mem Mem

Mem

XFC NI

Mem Mem Mem Mem Mem

Mem

XFC NI

Mem Mem Mem Mem Mem

Mem

XFC NI

Mem Mem Mem Mem Mem

Mem

XFC NI

Mem Mem Mem Mem Mem

Mem

  Main memory TSV-based DRAM wide-IO   On-chip memory 3D-NoC

SoC

NO

C

DR

AM

Ctrl

Page 43: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

Programming P2012

Page 44: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

Programming Tools

  Programmer’s environment for   High-level application capture

and simulation   User-driven platform mapping   Programming model aware

Debug, Trace and Analysis tools   Leverages

  Fabric Runtime   Host-side Dynamic Deployment Environment   xP70 compile, link and debug tools   GUIs STWorkbench

  Supports multiple Parallel Programming Models

F1 F2

F3 F4

44

Page 45: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

P2012 Platform! Visualization/debug!Performance Analysis!

Application Specification!

Streaming!

Application C functions!

Threading!

Platform Mapping Tools Flow Integrated Development Environment (STWorkbench)!

MIND Component Infrastructure

Component assembly, C code generation

Patterns

Component repository

Runtime Execution Engines

Apex

Native Programming Layer

Communication Generation Task-to-PE Assignment

Data Level Parallelism!

L3

Shared L1

PE0 PE1 … PEn

C

C

C

C DMA

HWS

45

Page 46: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

46

Parallel Programming Patterns

Pattern A

Platform

NPL / HAL

Inter-cluster

Intra-cluster Pattern B

Application PPP Component repository

Component Framework

  High-level set of patterns used to parallelize applications   Exploiting different types of parallelism   Interchangeable pattern

implementations   Component-based

(MIND framework)   Explicit application capture

SIMD

SISD

MIMD

SPMD

MISD

Single Instruction

Multiple Instructions

Single Data

Multiple Data

Single Program

Multiple Programs

MPMD

Data-level parallelism

Task-level parallelism

L1

L1-L3 via CDMA

Multiple implemns.

L1-L3

Page 47: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

47

Communication patterns (examples)   Exchanger: buf = exchange(buf)

  Swapping buffers between two participants   Queue Iterator: nextBuf=writeNext(buf);

nextBuf=readNext()   Iteration based communication between

producer(s) and consumer(s)   Single queue   Split / Join / Broadcast

  Synchronized buffer: request/release{read,write}(buf)   Synchronized read/write on shared buffer

  Paired Synchronized buffer: Specialization when there are only two participants

  Segmented Synchronized buffer: Specialization to access a large buffer in smaller slices

  FIFO: push(); pop()   Packet based streaming between producer and consumer

  Buffer copy or buffer pointer passing   Single queue   Split / Join / Broadcast

T1 Ti Tn

split

join

T1 T2

Synch buffer

FIFO

T1 T2

T1 T2

… …

Page 48: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

Memory access patterns

  Prefetcher: key=load(ptrL3,size), ptrL1=get(key), free(key)   Prefetching data from L3 to L1

  load() programs the DMA prefetch and returns a key without waiting for the transfer

  get() returns a pointer to L1, blocks until the DMA transfer is completed   Also supports 2D arrays: key=load(ptr, width, height)

  Async. Prefetcher: load(ptr, size, handler(key)), free(key)   Enables efficient thread-pool execution engines

  load() programs the prefetch and returns waiting for the transfer   handler(key) is invoked by the execution engine when the transfer is

completed   Also supports 2D arrays: load(ptr, width, height, handler(key))

48

Page 49: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

49

Execution Patterns: thread-based   Static mapping of kernels on a set

of platform resources   Minimal runtime overhead

  No kernel multiplexing required   Manual load balancing

  Similar computational requirements for each kernels

T.P. registration I/F

Runnable I/F

Thread Creation Bootstrap

main() main() main()

C1 C2

C3 C1

C2

C3

Component Constructors

  Dynamic dispatch of kernels on a set of platform resources   Some runtime overhead   Mux K kernels on R resources

  Dynamic load balancing   Different heuristics can be

offered   Job stealing   Affinity

App Main Controller

Kernel #1

Thread Pool

[ ]

… Kernel #N

Page 50: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

Parallel Programming Pattern (PPP) lib

Execution model

Exchanger

Synchr Buffer

Communication/ synchronization

Memory access

Async Prefetch ...

SDF variant

SDF

Prefetch

Thread

Run-to- Compl.

DDF

Queue iterator

Parallel Programming Models

HAL    

Abs

trac

tion

Na've  Programming  Layer  (NPL)  

   Application F1 F3 F2

Parallel Programming Models High-­‐level  threading  for    Data  Level  Parallelism  

GCD-­‐like  (future)  

Stream  DDF,  SDF  (S/W,  HW/SW)  

Codec, IQI, Modem …

Thread pool

FIFO

50

Page 51: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

Flexibility is nice, but…

T1

T3 T4

T2

Dup

Fork

Ctrl (with host)

DataIn DataOut (DMA tunnel)

Component wrapper

  Programmers need programming model stability   Minimize learning curve, build-up SW legacy

  Efficiency is key   Highly optimized patterns (HW-accelerated)

Optimally exploit shared-L1 cluster-level parallelism

DMA-accelerated asynchronous data transfer (inter-cluster & global)

51

Page 52: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

Ultra-fast Fork/Dup

52

Fork_join(N) {Body_DOALL;}

1.  The “red dot” represents the call to the DTD API – master is defined when invoking DTD interface

2.  Master can execute only work-items of its own fork 3.  Barrrier semantics – master active polling until all slaves done 4.  If no work-item left, slaves move to IDLE 5.  Master continues sequential execution after join

N=6 P1 P2 P3 P4 DTD*

(M) (S) (S) (S)

In IDLE Working on a “parallel slave thread” Working in “master thread”

Active Polling

*DTD= dynamic task dispatcher (can be hardware-accelerated)

Page 53: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

PE

PE

PE

PE

PE

PE

PE

PE

Peripherals (HWS, DMA, …)

NI

Shared L1

Application-to-Platform Mapping

PE

PE

PE

PE

Shared L1

PE

PE

PE

PE

Peripherals (HWS, DMA, …)

NI

T2 F1

T2’ T2’’

F2 T1

T3

F3 F4 F5

ANoC

Dataflow filter

Data Level Parallelism Patterns

Identical working tasks

Comm. PPP

Dynamic Task Pools

T5

F4 F5

F3

F1

Mapping tools : assignment, transformations, comm. generation, runtime link"

Runtime: dynamic assignment &scheduling"

53

Page 54: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

Platform 2012

Runtime

Execute  

Na've  Progr.  Layer  

Synchro   Queues  

HAL  

Deploy  

Dynamic  Deployment  

Code  Loading  

PlaKorm  QoS  Power  mana-­‐  gement  

Monitoring  

Dynamic  Load  Balancing    Execu'on  engine  Streaming    Execu'on  Engine  

HAL  

Fault-­‐  tolerance  

Thread  alloc  

Comm  alloc  

Mem  alloc  

HAL  

Parallel  Progr.  Models  

Fabric Controller

Cluster N

PE Synch / Control

Monitor PE PE

Cluster 1

PE Synch / Control

Monitor PE PE

54

Page 55: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

Application simulation flow   Same application C dialect

used in all environments   Application capture (ADL) is

factorized through templates   Can move from one to the

other depending on the needs (by recompiling)

55

Common Top ADL (w/ template)

Apex mapping ADL

TLM mapping ADL

- Quick simulation - Verify functional correctness and parallel execution

- Debug the algorithm using Linux tools like Valgrind

App C code

-  Verify memory constraints -  Profile the application with traces -  Different precision levels: . Untimed TLM . Cycle-approx perf model . Cycle-acc ISS/mem + cycle-approx periph.

SoC mapping ADL

-  cycle-accurate measures -  based on STM traces

Page 56: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

ADL

ADL ADL

56

MIND Toolchain

ADL

ADL ADL IDL

ADL ADL C

mindc

mpp gcc

ADL ADL Generated C

Executable/ Loadable binary

ADL : Architecture Description Language IDL : Interface Definition Language mindc : MIND ADL/IDL parser and C code generator mpp : MIND PreProcessor

Inputs

ADL F1

F2

F3 F4 F5

interface comm.QueueWriter { void createQ(size_t sz, int nb); void destroyQueue(); void * readNext(); }

int METH(itf, func) (void) { while( (in= CALL(input, readNext)()) !=0) { compute_fct (in,out,PRIVATE.arg); } }

Page 57: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

57

MIND: Component framework

  Implementation of the Fractal component model   http://fractal.ow2.org/

  Defines 3 languages/dialects   ADL describe the architecture of the application as a set of components

bound to each-others   IDL defines the type of component interfaces   C dialect defines a set of macro to capture “object-oriented” notions

  Provides   mindc : a compiler that generates C “glue-code” from ADL and IDL   mindEd : IDE based on Eclipse (3.6) that provides, among others,

graphical editor for ADL files   Open source (LGPL) available on OW2 consortium

  http://mind.ow2.org/

Page 58: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

58

Debug flow

Mapping!tools!

F1 F2 F3

Component hierarchy!

description!

Component awareness!Extensions (Python) !

Standard GDB V7

Terminal STWorkbench

Multi-core support

SoC

Cluster 2

Cluster N

Fabric Ctrl P2012

Host

Debug & Test Unit

Cluster 0

Cluster 1

Page 59: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

59

Visualization & Analysis flow

Mapping!tools!

Visualization and analysis tools (in STWorkbench)!

Low-level!Traces!

• Correspondence between application descriptionand platform resources!

• Application mapping results!

• Used resources!• Symbolic names / physical IDs!

SoC

Cluster 2

Cluster N

Fabric Ctrl P2012

Host

System Trace Module

F1 F2 F3

Cluster 0

Cluster 1

Trace Database

Page 60: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

OpenCL : Standard of the convergence

Multi-core CPU GPU Many-core

More programmability More parallelism

Handles memory constrained systems

Scalability and “load balancing”

Provides access to all the system parallelism Task, SPMD/MIMD, SIMD

Handles dynamism of adaptive applications

Tapping into a large and growing SW ecosytem 60

Page 61: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

SoCs and OpenCL

P2012

GPU

Hardwired sub-system

DDR MEMORY

Hw

ARM

61

Page 62: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

host sub- device 0

sub- device 1

CLAM architecture

kernels OpenCL C

Host appli C / C++

Many-core P2012 Multi-core ARM/x86

work-items work-items

Comete/Mind

NPL with RLlib

gcc

POSIX

xp70cc

P2012 TLM platform with host native wrapper

OpenCL API

OpenCL host run-time

OpenCL device run-time for POSIX

OpenCL device run-time for P2012

OpenCL C compiler

62

Page 63: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

ANOC (LIC) ANOC

Net

wor

k In

terf

ace

Ckl, Power domain

HW PE

SIF T SI SO

T SO SI

Configurable Cluster Master

M

CTL

BO BI

JTAG

CTL

HW PE

SIF T SI SO

What about HW-acceleration?

M

HW PE

SIF T SI SO

HW PE

SIF T SI SO

Cluster Controller

Xp70 multi-core cluster

Data processing in SW or HW

63

Page 64: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

64

Mapping to HW/SW Platform

STxP70 ISS

NOC Model

PE 1 PE 2 PE 0 PE 3

Confg. Ctl Itr Ctl

Fa Fj …

Fk Fm …

Fn Fr …

Fs Fz …

Functional MODEL TLM / COSIM

  Application capture using DF variant prog. model   Host execution (APEX) for functional validation   Automatic control code generation for TLM/COSIM

for perfomance analysis

Connectivity “Glue”

Filter 1 Filter 0

Iteration Controller

Configuration Controller

Filter 2 Filter N … …

Page 65: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

HW-SW Interaction in P2012

HWPE

L2 Memory

Streamer

STXp70

SI SO

SO

HWPE SI SO

SI

HWPE SI SO

HWPE SI SO

M

T

M

L3 Memory

Data streaming

Load/Store

Streaming data flow

Configuration and control flow

Hardware Processing

Data Mover Cluster Control

65

Page 66: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

Linux process

SoC integration: SW stack

Fabric driver

Fabric proxy CM OpenCL

Application

libMP

NPL

Fabric components

libCM

OpenCL OpenMAX

OpenCL

OpenCL kernels

Linux userland P2012 Fabric

Linux kernel

OpenCL kernels

66

PPM Execution Engines

Page 67: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

Final thoughts

Page 68: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

68

Summing up: P2012 Space

1 > 100 5 15

CPU GPU HW IP

Gop/s/mm2 in 32 nm

P2012 Space

Programmable

SW HW Mixed

Page 69: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

69

And to do what ? IPs for Product Groups

P2012

• Video Codecs • Imaging • Base Band • IQI • …

1 Tips 60 mm2

Standalone SoC

Very Likely mixing HW and SW

Pure programmable device

• Eco System • Analytics

?

?

Area/Power/Productivity

Flexibility/Quick Prototyping

Page 70: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

70

Conclusion   Homogeneous processor fabrics are

conceptually appealing, but most likely not an industry-viable answer   heterogeneous IOs/L3   heterogeneous applications   …and cost !!!

  GOPS/W & GOPS/mm2 are a hard reality

  We don’t need homogeneity, we need modularity!

  The real challenge is how to design a scalable modular heterogeneous many-core system

  … and how to program it! [NXP09]

Page 71: Programming Heterogeneous Many-core platforms … Heterogeneous Many-core platforms in Nanometer Technology: ... Production System Computing ... accelerated function within cluster

71