Elettronica_Oggi_436 - page 58

58
- ELETTRONICA OGGI 436 - MAGGIO 2014
DIGITAL
SoC
Alcune regole per il progetto
di un sistema SoC ibrido
I
l software dei moderni SoC (System on
Chip) è composto da diverse applica-
zioni, da quelle hard real time, come ad
esempio il controllo del motore di un’au-
tomobile, a quelle a elevato throughput,
come lo streaming di contenuti video in
alta definizione. Il progetto di sistemi ibridi
è divenuto via via più impegnativo poiché
i SoC attuali stanno evolvendo, divenendo
sempre più sistemi a elevato throughput che
integrano un numero via via maggiore di
core e interconnessioni a elevata ampiezza
di banda. Riuscire a garantire un comporta-
mento di tipo hard real time (in cui cioè le
scadenze temporali devono essere garantite
in modo incondizionato) – caratterizzato da
tempi di risposta dell’ordine del μs con jitter inferiore a 1
μs – per sistemi di questo tipo richiede un’attenta analisi dei
vari compromessi possibili e un partizionamento del siste-
ma stesso. Inoltre è essenziale prendere in considerazione
strategie che tengono conto delle future evoluzioni in previ-
sione di un ulteriore aumento della complessità dei SoC. Gli
approcci utilizzabili per la progettazione che gli sviluppatori
possono scegliere per ottimizzare i sistemi SoC ibridi sono
fondamentalmente tre: AMP (Asymmetric Multi-Processing),
hypervisor e SMP (Symmetric Multi-Processing) con isola-
mento del core (Fig. 1).
Multiprocessing asimmetrico – AMP
Questo tipo di multi-elaborazione è fondamentalmente un
porting di più sistemi operativi su core processori fisica-
mente differenti (in altre parole a ciascun processore viene
assegnato un compito specifico). Un esempio potrebbe
essere quello di fare girare un sistema operativo in moda-
lità bare-metal per gestire i processi (task) in real time sul
primo core ed eseguire un sistema operativo completamente
aperto come Linux sugli altri core. Il più delle volte, il porting
iniziale dei sistemi operativi sui core è un’operazione sem-
plice. In ogni caso il codice di avviamento (startup code) e
la gestione delle risorse, come ad esempio memorie, cache
e periferiche, sono soggetti a errori. Nel momento in cui più
sistemi operativi hanno accesso alla medesima periferica,
i comportamenti diventano non deterministici e il debug
potrebbe risultare un’operazione molto lunga. Spesso è
quindi necessario ricorrere a un’architettura di protezione
come ad esempio ARM TrustZone.
Un’ulteriore complicazione è rappresentata dal fatto che
il trasferimento dei messaggi (message passing) tra i vari
Nick Ni
Altera
Molto spesso gli sviluppatori degli odierni
sistemi basati su SoC devono ricercare il miglior
compromesso possibile tra il determinismo
richiesto dalle applicazioni real time e la bassa
latenza necessaria nelle applicazioni caratterizzate
da un elevato throughput
1...,48,49,50,51,52,53,54,55,56,57 59,60,61,62,63,64,65,66,67,68,...104
Powered by FlippingBook