Table of Contents Table of Contents
Previous Page  34 / 104 Next Page
Information
Show Menu
Previous Page 34 / 104 Next Page
Page Background

34

- ELETTRONICA OGGI 452 - MARZO 2016

a tendenza che sembra accanirsi da qualche

anno su progettisti e costruttori non si limita al

passaggio dai Single Core ai Multi Core ma ha ormai

coinvolto gli Heterogeneous Core che di questi tem-

pi sono chiamati anche Chip MultiProcessor (CMP),

Multi Processing SoC (MPSoC), Many Core, Massive-

ly Multi Core e persino Various Multi Core anche se

il significato è evidentemente lo stesso perché con-

siste nel mettere sullo stesso die core con diverse

caratteristiche hardware e software e persino con

funzionalità specifiche non solo a livello fisico bensì

pure a livello di proprietà intellettuale.

L’OpenCL, o Open Computing Language, costituisce

una piattaforma di programmazione basata sul lin-

guaggio C che consente di amalgamare nello stesso

silicio core CPU, GPU, DSP e FPGA in moduli funzi-

onali distinti. Il fattore chiave che consente questa

nuovo paradigma nella programmazione a livello di

sistema è il partizionamento delle temporizzazioni

fra i core simmetrici SMP, Symmetric MultiProcess-

ing, e i core asimmetrici AMP, Asymmetric MultiPro-

cessing, perché solo così è possibile far convivere

core con esigenze applicative che possono essere

molto diverse. Basti pensare che un DSP deve per

sua natura ignorare per quanto possibile gli inter-

rupt per poter reiterare indefinitamente i cicli di

elaborazione sulle lunghe sequenze di simboli che

rappresentano i segnali audio o video e perciò la-

vorare senza interruzioni per garantire un’usci-

ta sincronizzata in tempo reale con l’acquisizione.

D’altro canto, implementando algoritmi con un el-

evato Instruction-Level Parallelism (ILP) si ottiene

un sofisticato livello di partizione delle risorse che

permette di far convivere due o più sistemi oper-

ativi di diverso tipo e cioè general-purpose, GPOS,

e in tempo reale, RTOS, limitatamente ad alcuni dei

core installati. I due OS hanno esigenze diverse per-

ché i GP devono occuparsi di un maggior numero di

attività offrendo un’elaborazione composita da più

funzionalità e perciò devono avere procedure di ac-

cesso alle periferiche più sofisticate mentre gli RT

agiscono sull’hardware a basso livello per accedere

a risorse limitate ma in grado di generare un’effi-

cace elaborazione in tempo reale. L’asimmetria del-

le temporizzazioni a livello hardware assume così

un significato nella differenziazione delle risorse

software e viceversa.

Per le sue caratteristiche di versatilità il linguaggio

OpenCL diventa fondamentale per l’elaborazione

eterogenea e per la riutilizzabilità delle funzioni sul

silicio soprattutto grazie al Device Partitioning intro-

dotto nella versione OpenCL 1.2 e alla possibilità di

gestire le Shared Virtual Memory introdotta nelle

versioni OpenCL 2.x. In pratica, le comunicazioni fra

le diverse unità avvengono a un metalivello che è in

effetti una memoria virtuale opportunamente gestita

in modo da assegnare in successione sequenziale

la temporizzazione a tutti gli eventi sincronizzando

le attività. Di conseguenza, si ottiene un parallelis-

mo scalabile globalmente asincrono ma sincrono

TECH-FOCUS

NEW COMPUTING

Il passo evolutivo che segue dopo l’integrazione di più core nello stesso

silicio è la loro differenziazione funzionale per creare processori capaci di

svolgere in parallelo le mansioni di CPU, DSP, GPU e persino Cpld o Fpga

L

Gianluca Scotti

PROCESSORI ETEROGENEI

Fig. 1 – L’all-in-one SoC Qualcomm Snapdragon 820 integra in

geometria di riga da 14 nm l’innovativa CPU quad-core Kryo a 64

bit insieme al DSP Hexagon 680 e alla GPU Adreno 530 grazie a una

gestione delle temporizzazioni “sinfonica”