Evoluzione dei sistemi embedded

34
Evoluzione dei Sistemi Embedded: Verso architetture multi-core 21 Giugno 2012 Centro Congressi Milanofiori - Milano Embedded - IC & Automation Fortronic Carlo Brandolese Patrick Bellasi CEFRIEL Politecnico di Milano Evoluzione dei Sistemi Embedded: Verso architetture multi-core by CEFRIEL-Politecnico di Milano is licensed under a Creative Commons Attribution - Noncommercial - No Derivative Works 3.0 Unported License.

description

La presentazione fatta il 21 giugno 2012 durante l'evento Embedded - IC & Automation Fortronic

Transcript of Evoluzione dei sistemi embedded

Page 1: Evoluzione dei sistemi embedded

Evoluzione dei Sistemi Embedded: Verso architetture multi-core

21 Giugno 2012 Centro Congressi Milanofiori - Milano

Embedded - IC & Automation Fortronic

Carlo Brandolese

Patrick Bellasi

CEFRIEL – Politecnico di Milano

Evoluzione dei Sistemi Embedded: Verso architetture multi-core by CEFRIEL-Politecnico di Milano is

licensed under a Creative Commons Attribution - Noncommercial - No Derivative Works 3.0 Unported

License.

Page 2: Evoluzione dei sistemi embedded

2

Multi-Core in Ambito Embedded

Ci stanno già andando... non perdiamo la corsa!

© CEFRIEL – Politecnico di Milano 2012

© CEFRIEL – Politecnico di Milano 2012

Page 3: Evoluzione dei sistemi embedded

3

Multi-Core in Ambito Embedded Che Vantaggi Offre?

Non solo miglioramento delle prestazioni...

… diverse ottimizzazioni progettuali

riduzione di componenti e TCO e.g. disponibilità di GPU integrate con processori general-purpose

=> no display processor esterno, migliori prestazioni

integrazione di più funzionalità e.g. sfruttando alcuni cores interni per funzionalità specifiche

=> eliminazione di DPS o FPGA esterni

riduzione di “form-factor” e dei consumi => riduzione o eliminazione di dissipatori

=> in ambito mobile: batterie e packaging più piccoli

© CEFRIEL – Politecnico di Milano 2012

Page 4: Evoluzione dei sistemi embedded

4

Multi-Core in Ambito Embedded A che punto siamo?

La scelta di una archiettura è fondamentale influenza direttamente le prestazioni del sistema

oltre che la sue funzionalità, e.g. componenti, I/O, consumi energetici...

Soluzioni multi-core si stanno affermando sempre più prospettiva di maggiori prestazioni grazie al parallelismo

Esistono diverse sfumature possibili Multi-core asimmetrici

ogni core esegue indipendentemente

interazione di applicationi real-time e non

Multi-core simmetrico multipli threads gestiti da un singolo SO che alloca le risorse condivise

Virtualizzazione un “ipervisore” isola ed alloca le risorse a diversi run-time

consente l'integrazione di real-time, general purpose e software legacy

© CEFRIEL – Politecnico di Milano 2012

Page 5: Evoluzione dei sistemi embedded

5

Multi-Core in Ambito Embedded Cosa Sono i Multi-Cores Asimmetrici (AMP)?

Gestione “manuale”

delle risorse condivise

Ogni core ha un suo OS ogni core esegue indipendentemente

integrazione di applicazioni legacy

mix Real-Time e General-purpose

comunicazione IPC fra cores

Svantaggi Time-to-market

Impattato dalla gestione delle risorse condivise che

aumenta la complessità del codice

Scalabilità limitata dall'aumento di complessità

Prestazioni probabile sotto-utilizzazione dei core

intense comunicazioni fra cores

© CEFRIEL – Politecnico di Milano 2012

Page 6: Evoluzione dei sistemi embedded

6

Multi-Core in Ambito Embedded Cosa Sono i Multi-Cores Simmetrici (SMP)?

Unico OS che gestisce tutti i cores Scalabilità

è possibile migliorare le prestazioni

“semplicemente” aumentando i cores

Prestazioni Il bilanciamento del carico consente di sfruttare al

massimo i cores

semplici privitive di gestione dei threads

Time-to-market gestione delle risorse condivise a carico dell'OS

conseguente riduzione di complessità

sia di design che di codice

Svantaggi le applicazioni debbono essere scritte

“bene” per sfruttare il parallelismo

Le risorse condivise vengono gestite in

modo trasparente dal Sistema

Operativo

© CEFRIEL – Politecnico di Milano 2012

Page 7: Evoluzione dei sistemi embedded

7

Multi-Core in Ambito Embedded Lightway vs Full-Virtualization

A volte serve sia AMP che SMP coesistenza di OS diversi

e.g. RTOS e General-Purpose OS

parallelizzaione spinta delle applicazioni

La virtualizzzazion garantisce la

flessibilità dell'SMP e il controllo

dell'AMP

Lightway virtualization sfrutta servizi dell'OS per creare “containers”

isolamento applicazioni, assegnamento risorse

Full virtualization richiede un monitor hardware

supporta molteplici OS indipendenti ciascuno vede solo parte delle risorse

Le risorse condivise vengono

partizionate (dinamicamente) fra le

diverse applicazioni

© CEFRIEL – Politecnico di Milano 2012

Page 8: Evoluzione dei sistemi embedded

8

Multi-Core in Ambito Embedded Quali Solozioni Vanno per la Maggiore?

Molte piattaforme embedded attuali sono basate su

architetture multi-core asimmetriche diversi processori integrati all'interno dello stesso chip, o sistema

L'avvento dei System-on-Chip (SoC) ha favorito questo

tipo di soluzioni

Architetture specializzate vengono impiegate per

supportare funzionalità specifiche elaborazione di dati multimediali (Audio/Video DSP)

accellerazione e rendering grafico (GPU)

© CEFRIEL – Politecnico di Milano 2012

Page 9: Evoluzione dei sistemi embedded

9

Multi-Core in Ambito Embedded Dalle Board ai SoC... fino a PSoC ed FPGA

© CEFRIEL – Politecnico di Milano 2012

Page 10: Evoluzione dei sistemi embedded

10

Multi-Core in Ambito Embedded Dentro un OMAP5 (Texas Instuments)

Samsung Galaxy S3

© CEFRIEL – Politecnico di Milano 2012

Page 11: Evoluzione dei sistemi embedded

11

Multi-Core in Ambito Embedded Dentro un U9500 (ST-Ericsson)

Nokia Lumia 800

© CEFRIEL – Politecnico di Milano 2012

Page 12: Evoluzione dei sistemi embedded

12

Multi-Core in Ambito Embedded Abbiamo Davvvero Bisogno di Tante Prestazioni?

La disponibilità di architetture parallele consente lo

sviluppo di nuove classi di applicazioni

Le elaborazione multimediali in generale possono

beneficiare di queste nuove architetture grandi quantità di dati da processare (e.g. video in FullHD)

stringenti vincoli temporali (e.g. elevati framerates)

I dispositivi portatili sono sempre più poli-funzionali

Nuove classi di applicazioni stanno emergendo

come richieste di mercato

© CEFRIEL – Politecnico di Milano 2012

Page 13: Evoluzione dei sistemi embedded

13

Multi-Core in Ambito Embedded

Quali Nuove Applicazioni Possiamo Aspettarci?

Nuove forme di interazione “uomo-macchina”

Google Glass Project

Augmented Reality

© CEFRIEL – Politecnico di Milano 2012

Page 14: Evoluzione dei sistemi embedded

14

Multi-Core in Ambito Embedded

Quali Nuove Applicazioni Possiamo Aspettarci?

Diffusione della Computer Vision

Businness

Intelligence

Controllo

di Accessi

Monitorazzio

& Sicurezza

Assistenza alla

guida

© CEFRIEL – Politecnico di Milano 2012

Page 15: Evoluzione dei sistemi embedded

15

Multi-Core in Ambito Embedded Quali Caratteristiche Hanno Queste Applicazioni?

Esempio: Scalable Video Coding (SVC) singolo stream video in ingresso

diverse possibili configurazioni di decodifica

Framerate

Qualità

Risoluzione

A diversi profili di decodifica corrispondono diversi

rapporti qualità vs prestazioni richieste

© CEFRIEL – Politecnico di Milano 2012

Page 16: Evoluzione dei sistemi embedded

16

Multi-Core in Ambito Embedded Quali Caratteristiche Hanno Queste Applicazioni?

Esempio: Scalable Video Coding (SVC) Elevata complessità computazionale...

… ma anche elevato livello di parallelismo

Tuttavia spesso questi sono solo alcuni passi

di applicazioni complete...

© CEFRIEL – Politecnico di Milano 2012

Page 17: Evoluzione dei sistemi embedded

17

Multi-Core in Ambito Embedded Quali Caratteristiche Hanno Queste Applicazioni?

Diverse fasi di elaborazione ciascuna con diverso grado di

parallelismo e requisiti di risore

computazionali

si prestano ad essere eseguite in

concorrenza fra loro

Si prestano ed essere

programmate seguendo “nuovi”

paradigmi di programmazione

Stream-Processing

© CEFRIEL – Politecnico di Milano 2012

Page 18: Evoluzione dei sistemi embedded

18

Multi-Core in Ambito Embedded Quali Scenari Computazionali?

Sistemi multi-core molteplici unità di elaborazione

sia simmetriche che asimmetriche

Applicazioni complesse significativi carichi computazionali

variabilità dei requisiti in termini di risorse anche a run-time, i.e. cambiano durante l'esecuzione

composte da sequenze di attività parallelizzabili

Sistemi polifunzionali diversi carichi di lavoro (mixed workload)

diversi requisiti funzionali... e.g. tempistiche, qualità

… che possono anche modificarsi a run-time

© CEFRIEL – Politecnico di Milano 2012

Page 19: Evoluzione dei sistemi embedded

19

Evoluzioni Architetturali

Tanti grossi: bene... molti piccoli: meglio!

© CEFRIEL – Politecnico di Milano 2012

Page 20: Evoluzione dei sistemi embedded

20

far-lotti

in-lotto

fra-chip

in-chip

22nm

4nm

Evoluzioni Architetturali Future Quali Sono le Prossime Sfide?

Fattori Tecnologici e Produttivi i “transistor” di nuova generazione hanno

dimensioni in scala “atomica”

le variazioni in fase di produzione

divengono sempre più significative

non è più possibile differenziare i prodotti

in funzione del lotto di produzione

differenze di misurano addirittura

all'interno del singolo chip Imoatto su prestazioni e consumi energetici

Richiesta di maggiore flessibilità...

© CEFRIEL – Politecnico di Milano 2012

Page 21: Evoluzione dei sistemi embedded

21

[Ramacher09]

Esempio: produzione

di dispositivi multistandard

Evoluzioni Architetturali Future Come Supportare La Flessibiltià?

Progettare e produrre HW custom è costoso oltre certi livelli di integrazione non è più conveniente

Spinta verso “architetture programmabili”

Vantaggi Manutenibilità post-produzione

Supporto per applicazioni diverse sia presenti che future

Riduzione di costi e tempi di produzione

da SW ad-hoc su HW ad-hoc...

… a SW ad-hoc su HW generico

© CEFRIEL – Politecnico di Milano 2012

Page 22: Evoluzione dei sistemi embedded

22

Evoluzioni Architetturali Future Come si Confrontano Con le Soluzioni Attuali?

Rappresentano una nuova classe di dispositivi

Architetture

programmabili

Gops/mm^2 @ 32nm

© CEFRIEL – Politecnico di Milano 2012

Page 23: Evoluzione dei sistemi embedded

23

Computation

Fabric

Multi-Core

Computation

Cluster

Evoluzioni Architetturali Future Come si Presentano Queste Nuove Architetture?

Da HW ad-hoc ad HW generico Accelleratori Specializzati

Accelleratore Programmabile

© CEFRIEL – Politecnico di Milano 2012

Page 24: Evoluzione dei sistemi embedded

24

Evoluzioni Architetturali Future Come Possiamo Sfruttarle?

Esempio: Software Defined Radio (SDR)

Approccio

“classico”

Approccio

“ri-programmabile”

© CEFRIEL – Politecnico di Milano 2012

Page 25: Evoluzione dei sistemi embedded

25

Evoluzioni Architetturali Future Che Sfide Si Presentano a Livello Software?

Sviluppo di codice parallelizzato

Nuovi paradigmi di programmazione a supporto dello svilupppo di SW parallelizzato

in grado di astrarre dallo specifico target “write one run anywhere”

Programmazione “a componenti” riutilizzabili moduli SW autonomi e parallelizzabili (filters)

con interfaccie ben definite e quindi componibili (pipeline)

Ambienti di sviluppo descrizione ad alto livello delle applicazioni

simulazione ed ottimizazione per lo specifico target

suppporto a diversi modelli di ptrogrammazione parallela

© CEFRIEL – Politecnico di Milano 2012

Page 26: Evoluzione dei sistemi embedded

26

Evoluzioni Architetturali Future Quali Paradigmi di Programmazione? (1/3)

Proprietari e/o per specifiche piattaforme

Fractal definito da OW2 Consortium

middleware modulare ed estensibile

agnostico al linguaggio (e.g. C, Java, .NET)

Native Programming Model sviluppato da STMicroelectronics

collezione di primitive di

decomposizione-composizione

Thread Building Blocks (TBB) proposta di Intel

principalment orientata ad HPC

supporta solo su x86

http://fractal.ow2.org

http://threadingbuildingblocks.org

© CEFRIEL – Politecnico di Milano 2012

Page 27: Evoluzione dei sistemi embedded

27

Evoluzioni Architetturali Future Quali Paradigmi di Programmazione? (2/3)

OpenCL: “lo” standard Industriale

© CEFRIEL – Politecnico di Milano 2012

Page 28: Evoluzione dei sistemi embedded

28

Evoluzioni Architetturali Future Quali Paradigmi di Programmazione? (3/3)

standard aperto per la

programmazione parallela

di sistemi eterogenei

OpenCL in pillole linguaggio (C99-based) per scrivere kernels

i.e. “funzioni” da eseguire su un device OpenCL

parallelismo a livello di dati e task

API per controllar la piattaforma architettura “astratta” di riferimento

http://www.khronos.org/opencl

configura la

piattaforma

Copia dati

da elaborare

Esecuzione parallela

su più cores

Copia dei

risultati

© CEFRIEL – Politecnico di Milano 2012

Page 29: Evoluzione dei sistemi embedded

29

Evoluzioni Architetturali Future Che Sfide Si Presentano a Sistema Operativo?

Gestione Dinamica delle Risorse

Identificare un compromesso ottimale fra

esigenze prestazionali (QoS) delle applicazioni e

disponibilità delle risorse

Risorse HW condivise, diverse classi di applicazioni sofisticati dispositivi many-core di nuova generazione

variabilità di processo ed a run-time

risorse condivise fra applicazioni in competizione

Necessità di efficaci ma semplici supporti SW in grado di adattarsi a diversi modi d'uso, a run-time

adeguati al supporto di applicazioni sia best-effort che critiche

© CEFRIEL – Politecnico di Milano 2012

Page 30: Evoluzione dei sistemi embedded

30

Evoluzioni Architetturali Future Che Supporto Ci Si Aspetta dalla GDR? (1/2)

Astrazione dalle risorse

Assegnare opportunamente le risorse

al fine di ottimizzare l'uso della piattaforma

Considerando fenomeni di variazione di processo

hot-spots e rotture

variazioni del carico

Possibili strategia? 1. assegnamento di “risorse virtuali”

2. mapping su risorse fisiche a run-time gestendo opportunamente i fenomeni di variabilità

Assiste

nza alla

guida

Workloads Critici

Google

Glass

Project

Workloads Best-Effort

Run-Time

Resources

Manager

Richiesta Risorse

Assegnazione Risorse

© CEFRIEL – Politecnico di Milano 2012

Page 31: Evoluzione dei sistemi embedded

31

Tutto cambia... per rimanere simile!

Conclusioni

© CEFRIEL – Politecnico di Milano 2012

Page 32: Evoluzione dei sistemi embedded

32

Evoluzioni Architetturali Future Come si Possono Sfruttare i Many-Cores?

Con lo stesso principio dei LEGO

“raccogliere, mettere insieme”

dal Danese “leg godt” = “giocare bene”

© CEFRIEL – Politecnico di Milano 2012

Page 33: Evoluzione dei sistemi embedded

33

Conclusioni Perchè Abbiamo “Un Data-Server In Tasca”?

L'embedded va verso architetture many-core molte unità di calcolo, “sostanzialmente” simili

applicazioni complesse decomposte in moduli parallelizzabili

Le funzionalità di un dispositivo sono polimorfiche dipendono da come lo si programma

possono cambiare a run-time adattandosi quindi agli scenario d'uso

Tutto ciò è molto simile a quello

che già avviene in ambito HPC

Barcelona Supercomputing Centre

10.240 processors

Tilera Tile-Gx100

100 cores indipendenti

Barcelona Supercomputing Centre

cambia solo il “fattore si scala”

stessi benefici ma “portabili”

© CEFRIEL – Politecnico di Milano 2012

Page 34: Evoluzione dei sistemi embedded

34

Grazie per l'attenzione

© CEFRIEL – Politecnico di Milano 2012