Introduzione
5
processamento di segnali (frequenti ad esempio nei telefoni cellulari), otterremmo
due cons umi del tu tto d ivers i da cu i s i ev ince l'inadeguatezza del dato di targa per
la caratterizzazione in potenza. L'obiettivo della nos tra ricerca è sviluppare un
metodo di validità generale per la stima del consumo di energia del software
ottenuta grazie ad una modellizzazione in potenza di ciascuna istruzione del
microprocessore che tenga conto anche degli operandi coinvolti. In tal senso il
metodo proposto deve intendersi dipendente dai dati, dividendo la dipendenza
dagli "s timoli" d'ingresso in due fattori, is truzioni e dati. Attualmente, infatti, uno
studio in potenza che tenga conto anche della componente software, è possibile
soltanto a livello "trans is tor" o a livello "gate", cioè eseguendo delle simulazioni
che propaghino gli stimoli generati dalle istruzioni processate, al microprocessore
visto rispettivamente come interconnessione di transistor o di porte logiche.
Questo metodo di stima è però sconveniente sia per la lentezza dei tool a
disposizione che lo rendono inaccettabile dal punto di vista del produttore del
microproces s o re, s ia per la mancanza d i in fo rmazion i a livello circuitale che solo
il produttore può avere e che lo rendono perciò inaccettabile dal punto di vista del
clien te.
Chi realizza sistemi integrati scegliendo di far eseguire un software
specifico su un certo microprocessore, necess ita di un tool che considerando il
microprocessore come una black box, sia in grado di stimare il consumo del
software progettato.
In questo contesto si inquadra il nostro lavoro di ricerca il cui risultato è
utile per una modellizzazione in potenza a livello software, ma anche per
Introduzione
6
verificare i vincoli di potenza in fase di progettazione. Ed ancora, può essere usato
per l'ottimizzazione in potenza del software e per la realizzazione di compilatori
"Power Oriented". Un altro aspetto interessante è il feedback che tale studio può
fo rn ire al p rogett is ta hardware, che p iù facilmente può individuare le "zone calde"
del microproces s o re e p revedere mig lio ri s o luzion i arch itet tu rali.
Per meglio comprendere la necessità di affrontare approfonditamente il
problema low power, è bene soffermarsi brevemente sugli aspetti ad esso più
strettamente connessi compresi quelli d i carattere commerciale che facilmen te
possono essere dedotti.
Il settore di mercato che più beneficerebbe di nuove soluzioni per ridurre il
cons umo d i energ ia è quello delle app licazion i po rtatili, at tualmente uno dei più
fiorenti e senz'altro quello che ha conosciuto una più rapida espansione negli
u lt imi ann i. Per tali app licazion i un requ is ito fondamentale è un'autonomia
maggiore poss ibile e spesso è su ques to campo che s i scontrano i detentori del
mercato dei telefoni cellulari tanto per citare uno dei prodotti che funge da traino
nel s etto re delle app licazion i po rtatili. Con tinuando con questo esempio, se il
microprocessore utilizzato nel telefono, che ne è una componente importante del
consumo, è già ottimizzato dal punto di vista architetturale nei riguardi del
cons umo d i energ ia, è ancora pos s ib ile d iminu ire il cons umo dell'apparecchio
ottimizzando il software che "stimola" il microprocessore. Motorola dichiara di
aver ridotto di circa il 40% il consumo di un modello prodotto semplicemente
cambiando il software. Recenti studi condotti da Tiwari e Malick ([2],[4])
illu s trano come una riduzione d i cons umo compres a tra il 30 ed il 40% sia stata
Introduzione
7
ottenuta sul microprocessore 486DX2 utilizzando delle tecniche di ottimizzazio n e
a livello software. Quanto detto, per essere applicato deve ovviamente avere alla
base una metrica di misura per il costo del software, cioè in definitiva un criterio
d i s t ima. L'au tonomia delle app licazion i po rtatili è qu ind i il p rimo degli aspetti,
forse quello verso cui maggior attenzione prestano i produttori di embedded
systems, che ha costretto i progettisti ad aumentare la priorità dei vincoli di
potenza in fase di progettazione.
Altro fattore fortemente legato al problema low power è quello dello
s maltimen to del calo re. Neg li u lt imi ann i il trend è stato quello di ridurre
drasticamente le dimensioni aumentando la scala d'integrazione. Di conseguenza,
lo smaltimento del calore è diventato un problema d'importanza paragonabile a
quello del consumo dato che implica sforzi per realizzare package sempre più
termoconduttivi e quindi più costosi. Ad esempio un package plastico è
caratterizzato da una res is tenza termica dell'ordine di 40-50 °C/W (ossia per ogni
watt diss ipato la temperatura aumenta di 40-50 °C), mentre un package ceramico
è caratterizzato da un valore tipico di 15-30 °C/W e l'utilizzo del primo piuttosto
che del secondo può comportare una riduzione di circa 5-10US$ sul costo
comples s ivo del chip.
Il problema dello smaltimento del calore è anche particolarmente importante
nella progettazione delle smartcard, ormai di uso quotidiano e quindi di grande
interesse. La potenza dissipata dal chip in s erito s u queste speciali carte, gioca un
ruolo fondamentale nell'affidabilità della carta s tes s a che po trebbe "fondere"
qualo ra i valo ri d i po tenza med ia s uperas s ero un certo limite. È quindi di grande
Introduzione
8
interesse avere una stima del consumo del chip n ella s ua reale applicazione sulla
smartcard. Ciò sarebbe impossibile qualora si prescindesse dal particolare
s o ftware che s t imola il microproces s o re.
Po tremmo qu ind i iden tificare nel trinomio :
• Low power;
• Autonomia delle applicazioni portatili;
• Smaltimento del calore;
uno dei principali trend nel campo della microelettronica.
Da quanto detto si evince l'interesse verso l'argomento low power e le
t e c n ic h e a d e s s o c o r r e la t e d i s t ima e d o t t imizza z io n e f r a lo ro comp lemen ta ri. No i
ci concen treremo s u lle prime, ma d imos treremo come dalla s trett is s ima
correlazione fra p rob lemi d i s t ima, s o ftware e s ua implemen tazione a livello di
microprogramma, possano evincersi numerosi ed importanti spunti di
ottimizzazione hardware.
In questo capitolo introduttivo, abbiamo chiarito il contesto in cui s'inserisce
il nostro lavoro. Il secondo capitolo fornirà una breve overview s u lle cau s e d e l
consumo di potenza nei sistemi digitali e sui metodi di stima attualmente
utilizzati, evidenziandone pregi e limiti. Il terzo cap ito lo s arà ded icato ad un
esame obiettivo di una tecnica di s tima a livello software proposta in letteratura ed
alla sua applicazione ad un caso concreto di s tudio. I risultati mostreranno la sua
inadeguatezza.
Nel quarto capitolo s i proporrà, quindi, una nuova metodologia di stima del
consumo del software che, pur non essendo una risposta definitiva ai problemi
discussi, rappresenta un interessante punto d'inizio e che ha mostrato dei risultati
Introduzione
9
eccellenti. Il quinto capitolo sarà dedicato all'esame dei risultati della metodologia
proposta e ad un confronto con quelli o ttenu ti co l metodo proposto nel terzo
capitolo. Infine, saranno evidenziati i limiti ed i pos s ib ili s v iluppi della nostra
proposta.
Il consumo di potenza nei circuiti digitali
10
2 Il consumo di potenza nei
circuiti digitali
P r ima d i p a r l a r e d e l p r o b le ma d e l l a s t ima d iv e r s i a i l iv e lli d i as t razio n e d i u n
progetto, è opportuno analizzare brevemente le principali cause di consumo
all’interno dei componenti CMOS.
Si farà inoltre una breve rassegna dei più importanti approcci al problema
della s t ima ai d ivers i livelli d i as trazione.
2.1 Sorgenti del consumo di potenza
La potenza diss ipata in un circuito CMOS può essere generata dalle seguenti
quattro componenti:
• corrente di dispersione (leakage current): è principalmente determinata dal
processo di fabbricazione tecnologico, e può essere ulteriormente suddivisa
nelle due componenti:
− corrente di polarizzazione inversa nei diodi parassiti formati dalle due
diffusioni di source e di drain con la regione di bulk nel transistor MOS;
− correnti sottosoglia a tensioni di gate in ferio ri alla tens ione d i soglia;
• corrente di standby (standby current): è la corrente continua che fluisce
con tinuamen te dall’alimen tazione vers o mas s a.
• corrente di corto circuito (short-circuit current): è dovuta al percorso
continuo tra alimen tazione e mas s a duran te le trans izion i dell’us cita.
Il consumo di potenza nei circuiti digitali
11
• corrente capacitiva (capacitance current): è dovuta al flusso di carica e
scarica della capacità di carico durante le transizioni logiche.
2.2 Dissipazione di potenza statica
Il termine dissipazione di potenza statica s i riferis ce alla s omma delle
dissipazioni dovute alla corrente di dispersione e alla corrente di standby. Ques te
ultime sono presenti, per esempio, in un invertitore pseudo-nMOS quando sia il
transistor nMOS che il transistor pMOS sono continuamente nello stato ON,
oppure quando il drain di un transistor nMOS pilota il gate di un altro transistor
nMOS in una pass-transistor logic. La potenza diss ipata a causa delle correnti di
standby è data dal prodotto della tensione V
dd
e della corrente DC che fluisce
dall’alimen tazione vers o mas s a, ed è s ign ificativa s o lo in particolari architetture
logiche.
La componente più importante della corrente di dispersione è dovuta alle
correnti sottosoglia che per dispos itivi a canale lungo aumenta linearmente con il
rapporto tra la larghezza di canale e la sua lunghezza, e diminu is ce
esponenzialmente con (VV
gs t
− ). Con la riduzione della tensione di soglia queste
correnti potrebbero diventare più pronunciate. Inoltre in dispositivi a canale corto
la corrente sottosoglia dipende anche esponenzialmente dalla tensione di drain.
Il consumo di potenza nei circuiti digitali
12
2.3 Dissipazione di potenza dinamica
Con il termine dissipazione di potenza dinamica s i in tende la s omma delle
dissipazioni dovute alla corrente di corto circuito ed alla corrente capacitiva,
presenti solo durante le transizioni logiche dell’uscita.
La causa dominante della dissipazione di potenza nei circuiti CMOS è la
carica e scarica delle capacità dei nodi, chiamata anche dissipazione di potenza
capacit iva. La s ituazione è illu s trata in figu ra 1. Si cons ideri il cas o di un ciclo
completo di operazioni con due trans izioni sul segnale di figura 1(a). Quando il
segnale di ingresso commuta da 1 a 0, viene generata una corrente (I
char
) e
caricata la capacità C
load
(figura 1.b). Si può facilmen te ricavare che l’energia,
mis u rata in jou le, fo rn ita dall’alimen tazione è:
ECV
load dd
=
2
dove V
dd
è la tens ione d i alimen tazione.
I
char
I
dis
C
load
T
cycle
da 0 a 1 da 1 a 0
C
load
(a) (b) (c)
figura 1 (a) Forma d’onda di ingresso, (b) Carica, (c) scarica della capacità di carico Cload.
Metà di questa energia è dissipata attraverso il transistor pMOS, a causa
della corrente I
char
. L’altra metà è accumulata nella capacità C
load
. Quando il
Il consumo di potenza nei circuiti digitali
13
segnale di ingresso cambia a 1, circola una corrente I
dis
e la capacità C
load
si
s carica. L’energ ia immagazzinata in C
load
durante la precedente transizione
d e l l ’ in g r e s s o v ie n e o r a d i s s ip a t a a t t r a v e r s o i l t r a n s i s t o r n M OS; l’a limen tazio n e
non fornisce ulteriore energia. Perciò, l’energia media erogata dall’alimen tazio n e
per una coppia di transizioni dell’uscita, da 0 a 1 e da 1 a 0, è:
ECV
avg load dd
=
1
2
2
Assumendo che l’uscita dell’invertitore commuti ad ogni ciclo, il consumo
di potenza medio dovuto alla carica e scarica della capacità C
load
è dato
dall’equazione:
PCVf
av load dd
=
1
2
2
,
dove f è la frequenza operativa.
Tenuto conto che non sempre le uscite dei gate commutano, l’espressione
precedente diventa:
PCVf
av load dd
=
1
2
2
α (1)
dove α , detta switching activity, è il numero di volte che la capacità C
load
è
caricata o scaricata durante un periodo. Il prodotto C
load
α è detto switched
capacitance. Il contributo di questa componente alla potenza totale dissipata
dipende dal tipo di circuito. Per circuiti “data-path” (moltip licato ri, sommatori,
signal processors, ecc..) essa influisce per circa l’80% della dissipazione di
potenza complessiva.
Il consumo di potenza nei circuiti digitali
14
Facendo riferimento a questa categoria di applicazioni, la formula
precedente mette in evidenza i tre gradi di libertà a disposizione per ridurre la
diss ipazione di potenza nell’ipotes i che la frequenza operativa sia fissata: tensione
d i alimen tazione, capacità fis ica, e switching activity. Vista la sua dipendenza
quadratica dalla tensione V
dd
, i miglioramenti più significativi si ottengono
riducendo tale valore. La diminuzione delle capacità fis iche può essere ottenuta
fondamentalmente riducendo le dimensioni dei dispositivi e delle
interconnessioni. Tuttavia una volta fissate le dimensioni del dispositivo e la
tens ione d i alimen tazione, è l’at t iv ità d i switching dei segnali del circuito che
principalmente determina la sua dissipazione di potenza. Appare chiaro quindi
che, ai fini del problema della stima in un sistema integrato a microprocessore,
non si può prescindere dalla dipendenza dall'attività di commutazione,
quest'ultima determinata a sua volta dal particolare software inteso come
particolare combinazione di istruzioni e dati. Basti pensare banalmente che
maggiore è il numero di bit degli operandi che possono commutare, maggiore sarà
la p robab ilità che il numero d i trans izion i nei reg is tri della macchina e quindi
l'attività indotta nel datapath siano di conseguenza alti. Così operazioni a 32 bit
saranno più costose rispetto ad operazioni a 16 bit ad esempio ed ancora allocare
dati in regioni molto "dis tanti" in memoria con conseguenti grosse variazioni dei
registri degli indirizzi e dei relativi bus, risulta più costoso che operare all'interno
d i una reg ione p iù limitata. E' ch iaro che i cons umi variano drasticamente anche a
seconda del tipo di istruzione a causa delle diverse attiv ità indotte nella macchina.
Da quanto detto, s i evince chiaramente l'inadeguatezza di un unico dato di targa
Il consumo di potenza nei circuiti digitali
15
per la caratterizzazione in potenza del microprocessore, dato fra l'altro riferito ad
una situazione media che tuttavia è diversa a seconda dell'applicazione per cui
ancor meno indicativo. Si evince altresì il parametro più significativo sulla base
del quale tentare una s tima del consumo ad un livello d'as trazione che non sia
troppo basso per i motivi già accennati e che sottolineeremo ancora.
2.4 Il problema della stima ai diversi livelli d'astrazione
Il progetto di un microprocessore o di un sistema integrato a
microprocessore, può e deve essere af f r o n t a t o a d iv e rs i liv e lli d 'a s t razio n e . I liv e lli
che s'incontrano nel flusso di progettazione sono:
- livello comportamen tale
- livello logico
- livello circu itale
Al di sotto del livello circuitale abbiamo il livello di "layout" e quindi di
processo. Il problema della s tima del consumo di energia, dovrebbe poter essere
affrontato a ciascuno di questi livelli con comples s ità e p recis ione fra lo ro
opposte. Prima di procedere oltre, riteniamo opportuna una breve rassegna dei
principali criteri di s tima per meglio evidenziare poi l'es igenza di nuovi metodi.
2.5 Tecniche di analisi e stima della potenza dissipata
Per s tima della potenza nei circuiti digitali s i intende, generalmente, la stima
della potenza diss ipata mediamente. Ques t’approccio differisce dal problema della
s t ima del p icco d i po tenza as s o rb ito is tan taneamente. Parametri come temperatura
Il consumo di potenza nei circuiti digitali
16
del circuito integrato, o vita media delle batterie sono direttamente legati alla
potenza media e non a quella istantanea.
Il problema della s tima di potenza nei circuiti integrati digitali può, e deve,
es s ere affron tato a tu tt i i livelli del ciclo d i p rogettazione d i un chip. A liv e lli d i
as trazione magg io ri, come quelli comportamen tale o arch itetturale, è importante
per il progettista conoscere il valore di potenza dissipata, se non in modo preciso
almeno come ordine di grandezza. È in ques te fas i infatti che vengono prese le
decis ioni più importanti sull’architettura finale, le quali possono condizionare in
modo significativo caratteristiche come l’area, la velocità o la potenza dissipata.
Avere uno strumento in grado di stimare in modo rapido almeno l’ordine di
grandezza del consumo energetico di una architettura, e sin dal momento in cui
essa è pensata, permette di valutare da subito l’opportunità di certe scelte, senza
dover attendere l’implementazione a livello di porte logiche o addirittura
circuitale, quando quasi tutte le decisioni sono state prese, e molto tempo e fatica
sono stati spesi.
D’altronde gli stimatori di livello più astratto non potranno mai raggiungere
predizioni di precisione elevate, non essendo a disposizione molti dettagli
implementativi importanti per un calcolo accurato del consumo di potenza. Si
rendono spesso necessarie, quindi, tecniche di s tima a più basso livello, le quali,
nonostante abbiano la necess ità di s timare meno informazioni, essendo noti un
maggior numero di dettagli, devono però gestire rappresentazioni di complessità
molto superiore. Un moderno circuito integrato può, infatti, avere un numero di
trans is to r dell’o rd ine del milione. Con ques to modo di procedere la precisione
Il consumo di potenza nei circuiti digitali
17
raggiungibile è sicuramente superiore, ma, per contro, si paga parecchio in sforzi
computazionali, e quindi in tempo di calcolo.
2.6 Stima della potenza dissipata a livello circuitale
A livello circu itale è pos s ib ile s t imare la po tenza d is s ipata dall’intero cir-
cuito mediante s imulatori di tipo elettrico (SPICE, ELDO, ...) i quali sono in
grado di fornire accurate valutazioni delle tensioni e delle correnti, anche in
funzione del tempo, e quindi il dato relativo alla potenza complessivamente dis-
sipata dal chip in esame. Il vantaggio di questa tecnica è principalmente la sua
precisione. I risultati della simulazione, però, dipendono dagli specifici segnali di
ingresso che pilotano il simulatore e, per progetti di grosse dimensioni, il loro
impiego è praticamente improponibile. Verificare il circuito per tutti i possibili
vettori di ingresso sarebbe un compito eccessivo dal punto di vista
computazionale . Nell’impos s ib ilità d i s imulare tu tto a livello elettrico, si possono
concepire due strategie complementari.
La prima mira allo sviluppo di simulatori specificatamente dedicati alla
valutazione del consumo di potenza i quali, utilizzando modelli semplificati per i
trans is to r M OS, ris u ltano p iù veloci d i quelli a livello elettrico, sono in grado di
analizzare circuiti di circa due ordini di grandezza maggiori a spese, però, della
precisione e della accuratezza dei dati che sono in grado di fornire. In questa
categoria rientra, ad esempio, PowerMill, un tool che è in grado non solo di
ripo rtare in fo rmazion i dettag liate s u lla po tenza comples s ivamente dissipata, sia
Il consumo di potenza nei circuiti digitali
18
media che istantanea, ma anche di evidenziare i “punti caldi” del circuito in cui ne
viene dissipata una buona percentuale.
La seconda possibilità s i bas a s u lla ind iv iduazione preventiva, all’interno di
un circuito complesso e per una data sequenza di stimoli di ingresso, dell’insieme
dei soli componenti che commutano e quindi si limita a s imulare a livello
elettrico s o lo ques ti u lt imi. A ncora una vo lta l’app licazione d i un metodo di
questo tipo per tutte le sequenze di ingresso richiederebbe tempi di esecuzione
eccessivi; più frequentemente, ci si limita all’ind iv iduazione della s o la
configurazione elettrica del caso peggiore, tra tutte quelle esistenti.
L’unica vera alternativa, nel caso di circuiti di grosse dimensioni, rimane
quindi quella di affrontare il problema della stima ad un livello di astrazione più
elevato, considerando come elemento di base del circuito non più il singolo
transistore ma la porta logica (gate).
2.7 Stima della potenza dissipata a livello logico
Nella sezione precedente si è già accennato al metodo più diretto per la
stima della potenza dissipata, detto per simulazione: eseguire delle s imulazioni
circuitali del progetto e rilevare le forme d’onda della corrente erogata
dall’alimen tato re. È ch iaro che i ris u ltat i in ques to cas o s ono fortemente
dipendenti dai segnali d’ingresso utilizzati: è richies ta perciò una conoscenza
s pecifica e completa dell’in s ieme d i s egnali s celto per la s imulazione, che, nel
caso di analisi circuitale, significa conoscere le forme d’onda delle relative
tensioni. Per questo motivo tali tecniche sono etichettate come strettamente