EMBEDDED
56 • maggio • 2015
hardware
|
MANY-CORE
54
indicatore della sua qualità. L’unica cosa da fare
per risolvere le probabilità di conflitto fra le task
è complicare ulteriormente sia la progettazione
degli algoritmi in parallelo sia la loro verifica
funzionale in hardware e ciò significa innalzare
esponenzialmente i tempi e i costi del ciclo di svi-
luppo.
Array di core
È soprattutto per questa ragione che da qualche
anno i principali laboratori dei costruttori di pro-
cessori hanno pensato bene di separare ancora
di più i core, pur continuando a integrarli sullo
stesso silicio e iniziare a realizzare i nuovi many-
core. In pratica, i core sono connessi in rete e an-
che le risorse più critiche come i bus, gli I/O e le
memorie vengono condivise in rete, in modo tale
che ciascun core possa decidere quali utilizzare e
per quanto tempo. In que-
sto modo, obbedendo alle
istruzioni sull’algoritmo,
ciascuna task occupa i
core che le servono e poi li
libera quando è conclusa,
mentre l’arbitraggio si
occupa di fare in modo
che siano eseguite in pa-
rallelo tutte le task che
riescono a occupare i core
presenti. In altre parole,
viene eseguito task dopo
task tutto il programma
con un livello di paral-
lelismo variabile, che si
adatta alla disponibilità
delle risorse e impedi-
sce che si creino conflit-
ti. Questa impostazione
di calcolo parallelo viene
chiamata anche Invasi-
ve Computing, oppure
Resource Aware Compu-
ting, perché è l’algoritmo
parallelo che decide da
solo quali e quante risor-
se occupare e per quanto
tempo, nonché il numero
di task effettivamente
Fig. 2 – Nei processori many-core le risorse
sono assegnate in parallelo ai diversi core in-
sieme alla temporizzazione sincrona in funzione
delle task da eseguire e con dimensioni decise di
volta in volta per ciascuna task
Fig. 3 – Schema a blocchi dell’MPPA256, che esprime ben 500 GOPS
con un consumo massimo di 5W ossia circa 80 GOPS/W oppure 50
GFLOPS/W




