Metodologie di Stima e Ottimizzazione della Potenza Dissipata nei Circuiti e Sistemi Digitali...
-
Upload
santa-giorgi -
Category
Documents
-
view
213 -
download
0
Transcript of Metodologie di Stima e Ottimizzazione della Potenza Dissipata nei Circuiti e Sistemi Digitali...
Metodologie di Stima e Ottimizzazionedella Potenza Dissipata
nei Circuiti e Sistemi Digitali
Metodologie di Stima e Ottimizzazionedella Potenza Dissipata
nei Circuiti e Sistemi Digitali
Cristina Silvano
Dottorato di Ricerca in Ingegneria dell’Informazione - XI CicloDipartimento di Elettronica per l’Automazione
Università degli Studi di Brescia
Anno Accademico 1997-1998
10/12/98 Cristina Silvano - Università di Brescia 2
Sommario
Introduzione
Obiettivi della Ricerca
Metodologia di Stima della Potenza Dissipata a Livello Software
Metodologia di Stima della Potenza Dissipata ad Alto Livello
Tecniche di Codifica per Ridurre la Potenza Dissipata a Livello dei Bus di Sistema
Metodologia di Stima della Potenza Dissipata a Livello dei Bus di Sistema
Tecniche di Assegnamento degli Stati nelle FSM per Ridurre la Potenza Dissipata
Conclusioni e Sviluppi Futuri
10/12/98 Cristina Silvano - Università di Brescia 3
Introduzione
Le problematiche legate al consumo di potenza nei circuiti integrati e sistemi digitali sono diventate di importanza fondamentale a causa di diversi fattori.
Fattori tecnologici:Aumento delle frequenze di funzionamentoCrescente livello di integrazione
Fattori legati all’evoluzione del mercato:Enorme diffusione di sistemi portatili alimentati da batterie a limitata
autonomia
Fattori economiciLa dissipazione di potenza causa surriscaldamento pertanto sono necessari
package costosi che implicano un incremento del costo globale dei dispositivi
10/12/98 Cristina Silvano - Università di Brescia 4
Introduzione
L’enorme diffusione sul mercato di sistemi portatili ad elevate prestazioni ha reso il problema del consumo di potenza contestuale al problema del raggiungimento delle prestazioni.
Tecniche di progetto orientate a bassa dissipazione di potenza e accurati metodi di stima della potenza devono essere considerati ai diversi livelli di astrazione durante la progettazione.
Tecniche di ottimizzazione e stima della potenza dissipata ad alto livello sono fondamentali per determinare il consumo globale e per raggiungere le prestazioni del sistema nel rispetto dei tempi di progetto.
10/12/98 Cristina Silvano - Università di Brescia 5
Introduzione
Principali vantaggi delle tecniche di ottimizzazione e stima della potenza ad alto livello:Determinare in anticipo il bilancio di potenza delle componenti HW e SW
di un sistema prima che i dati di progetto siano disponibili, senza sintetizzare ogni alternativa di progetto.
Esplorare lo spazio di progetto architetturale in tempi accettabili e misurare l’efficacia e i vantaggi delle diverse soluzioni.
Raggiungere le prestazioni globali nel rispetto dei tempi di progetto.
L’accuratezza relativa delle stime ad alto livello è molto più importante dell’accuratezza assoluta, infatti l’obiettivo finale è il confronto di diverse alternative di progetto.
Ad alto livello possono essere sfruttati maggiori gradi di libertà per realizzare ottimizzazioni della potenza dissipata.
10/12/98 Cristina Silvano - Università di Brescia 6
Sorgenti di Dissipazione di Potenza nei Circuiti CMOS
Tre sono le sorgenti di dissipazione di potenza nei circuiti CMOS:
PMedia = PComm. + PCorto-Circuito + PPerdita
Parte predominante è PComm La maggior parte delle tecniche di riduzione della potenza è costituita da tecniche di ottimizzazione della potenza di commutazione:
PComm. = CL V 2dd f CLK
dove è l’attività di commutazione di una porta logica definita come probabilità che il nodo di uscita esegua una transizione ad ogni ciclo di clock.
Si definisce capacità efficace Ceff = CL il termine che include sia la capacità di carico sia l’attività di commutazione.
Fissata fCLK, per minimizzare PComm occorre: Ridurre la capacità efficace Ceff
Ridurre la tensione di alimentazione Vdd
10/12/98 Cristina Silvano - Università di Brescia 7
Obiettivi della Ricerca
Definizione di tecniche di stima della potenza dissipata a livello sistema da integrare in un flusso di progetto congiunto HW/SW per sistemi digitali.Metodologia di stima della potenza dissipata a livello software.Metodologia di stima della potenza dissipata ad alto livello.Metodologia di stima della potenza dissipata a livello dei bus di sistema.
Definizione di tecniche di ottimizzazione della potenza dissipata a livello sistema.Tecniche di codifica dei bus di sistema adatte per la comunicazione tra
microprocessore e sotto-sistema di memoria.Tecniche di assegnamento degli stati nelle Macchine a Stati Finiti (FSM).
10/12/98 Cristina Silvano - Università di Brescia 8
Metodologia di Stima della Potenza a Livello Software
La disponibilità di una metodologia di progetto congiunto HW/SW è di primaria importanza durante tutte le fasi del progetto di sistemi digitali dedicati.
Le tecniche di co-progettazione si propongono di raggiungere i requisiti a livello sistema sfruttando la sinergia tra le parti HW e SW.
Metriche di stima della potenza associata al software sono necessarie per guidare la fase di partizionamento in modo da misurare e confrontare soluzioni di progetto alternative .
10/12/98 Cristina Silvano - Università di Brescia 9
Principali Tecniche di Stima della Potenza a Livello Software
Tecniche di stima della potenza associata al software sono apparse soltanto recentemente.
Approcci basati sulla simulazione della descrizione a livello RT o logico del processore.
Approcci basati sulla stima dell’attività di commutazione dei bus di sistema.
Approcci basati sulla stima a livello di istruzione.
Non esistono tool commerciali per l’analisi di potenza del software.
10/12/98 Cristina Silvano - Università di Brescia 10
Metodologia di Stima della Potenza a Livello Software
Obiettivi della ricerca: Definizione di una metodologia di stima statica e dinamica della potenza a
livello del software da integrare in un ambiente di co-progettazione HW/SW per sistemi dedicati.
Metodologia di analisi basata sulle caratteristiche dell’architettura di sistema in termini di processore e sotto-sistema di memoria.
Indipendenza della metodologia proposta dal linguaggio di specifica ad alto livello e dal processore target.
Realizzazione di un programma per l’applicazione automatica della metodologia proposta.
10/12/98 Cristina Silvano - Università di Brescia 11
Ambiente di Co-progettazione TOSCA
L’ambiente di co-progettazione TOSCA (Tools for System Co-design Automation) costituisce il framework per lo sviluppo della metodologia di stima proposta.
Il metodo di stima parte dal modello del sistema interno all’ambiente TOSCA e basato sui linguaggi OCCAM2 e VIS:Il linguaggio VIS (Virtual Instruction Set) costituisce un livello di
descrizione intermedia (pseudo-assembler) che permette alla metodologia di essere indipendente dal processore target.
Il linguaggio OCCAM2 consente alla metodologia proposta di essere indipendente da: Linguaggio di descrizione ad alto livello. Caratterizzazione specifica del sistema in termini di parti HW e SW
(partizionamento).
Il linguaggio OCCAM2 permette la modellizzazione delle funzionalità di sistema ad alto livello attraverso la rappresentazione di processi paralleli e sequenziali.
10/12/98 Cristina Silvano - Università di Brescia 12
Ambiente di Co-progettazione TOSCA
System Synthesis
System Re-Modeling formal transformations hw/sw migration
Software Executor customizable VIS-machine
(VHDL kernel model) target CPU parameters
High-Level Co-Simulation system profiling timing violations functional debug estimation metrics (power,
speed, cost, …)
System Description functionality constraints/requirements design goals
Sw-Bound partsVIS code
Hw-Bound partsVHDL
Hw/Swinterface
Commercial VHDL Simulator
OCCAM file+ timing constraints+ initial hw/sw allocation
TOSCA Graphical Co-DesignEnvironment
10/12/98 Cristina Silvano - Università di Brescia 13
Metodologia di Stima della Potenza a Livello Software
Design Entry
Compilation & Linking
Mapping
VIS
OCCAM2
ASSEMBLER
LEVEL 0Estimation
Annotated OCCAM2
Annotated VIS
Annotated ASSEMBLER
Back-Annotation
Back-AnnotationLibraries
LEVEL 1Estimation
LEVEL 2Annotation
LEVEL 0Profiling
LEVEL 1Profiling
10/12/98 Cristina Silvano - Università di Brescia 14
Metodologia di Stima della Potenza a Livello Software
Analisi in potenza operante a 3 livelli di descrizione:Linguaggio ad alto livello (OCCAM2)Linguaggio pseudo-assembler a livello intermedio (VIS)Linguaggio assembler del processore target
Dati relativi alla caratterizzazione in potenza dell’architettura di sistema sono raccolti in 2 file:Processor Technology File: contiene i dati di potenza associati ad ogni
istruzione e relative modalità di indirizzamento previste dall’insieme di istruzioni del processore target.
Memory Technology File: contiene i dati di potenza delle operazioni di lettura/scrittura dei diversi livelli di gerarchia del sotto-sistema di memoria (on-processor e off-processor).
10/12/98 Cristina Silvano - Università di Brescia 15
Metodologia di Stima della Potenza a Livello Software
Compilazione del SoftwarePHASE 1: Compilazione da OCCAM2 a VISPHASE 2: Mappatura da VIS a target-assembler
Back-Annotation del SoftwarePHASE 1 : Back-Annotation da target-assembler a VISPHASE 2: Back-Annotation da VIS a OCCAM2
Stima della Potenza del Software (Analisi Statica)LEVEL 2: Fase di annotazione in potenzaLEVEL 1: Fase di stima della potenza a livello intermedioLEVEL 0: Fase di stima della potenza ad alto livello
Profiling del Software (Analisi Dinamica)LEVEL 0: Profiling funzionale di OCCAM2LEVEL 1: Profiling strutturale di VIS
10/12/98 Cristina Silvano - Università di Brescia 16
Compilazione del Software
PHASE 1: Compilazione da OCCAM2 a VIS Il codice VIS viene generato attraverso diversi passi di compilazione
controllabili dall’utente.Il codice VIS viene schedulato basandosi su un approccio semi-dinamico.Applicate diverse strategie di scheduling.Per gli scopi della fase di back-annotation, ogni istruzione VIS mantiene
traccia dell’istruzione OCCAM2 originaria.
PHASE 2: Mappatura da VIS a target-assemblerLa mappatura è basata su una libreria.Re-targeting non coinvolge la prima fase di compilazione.Per gli scopi della fase di back-annotation, ogni istruzione del target-
assembler mantiene traccia dell’istruzione VIS originaria.
10/12/98 Cristina Silvano - Università di Brescia 17
Back-Annotation del Software
PHASE1 : Back-Annotation da target-assembler a VISLe istruzioni assembler sono caratterizzate in base ai dati contenuti nei
file tecnologici relativi al processore target.Le figure di consumo di potenza dipendono dalle modalità di
indirizzamento previste e dall’architettura del sotto-sistema di memoria.La dissipazione statica di un’istruzione VIS viene calcolata sommando i
contributi delle istruzioni assembler espanse.
PHASE 2: Back-Annotation da VIS a OCCAM2La dissipazione statica di un’istruzione OCCAM2 viene calcolata
sommando i contributi delle istruzioni VIS espanse.La back-annotation considera il fatto che la traduzione da istruzioni
complesse coinvolge larghe porzioni del codice VIS.
10/12/98 Cristina Silvano - Università di Brescia 18
Stima della Potenza del Software (Analisi Statica)
LEVEL 2: Fase di annotazione in potenzaLe istruzioni assembler sono annotate con i dati derivati dai file
tecnologici relativi al processore target.
LEVEL 1: Fase di stima della potenza a livello intermedioLe istruzioni VIS sono annotate con i dati derivati dal modello analitico e
parametrico del set di istruzioni del processore target.Differenti insiemi di parametri caratterizzano i diversi processori.Sia il modello analitico sia i parametri sono derivati da una fase di
benchmarking e analisi statistica.
LEVEL 0: Fase di stima della potenza ad alto livelloLa potenza associata al codice OCCAM2 funzionale viene derivata dalla
stima ottenuta a livello intermedio.Si considera il costo implicito dovuto allo scheduling e alla gestione di
strutture dati ausiliarie.
10/12/98 Cristina Silvano - Università di Brescia 19
Profiling del Software (Analisi Dinamica)
LEVEL 0: Profiling funzionale del codice OCCAM2Le istruzioni funzionali del codice OCCAM2 vengono simulate.Il profiling a questo livello risulta di accuratezza limitata ma richiede
tempi di esecuzione ridotti.
LEVEL 1: Profiling strutturale del codice VISLe istruzioni del codice VIS compilato e schedulato vengono simulate.Il profiling a questo livello fornisce stime più accurate al costo di un
maggior tempo di esecuzione.
10/12/98 Cristina Silvano - Università di Brescia 20
Metodologia di Stima della Potenza ad Alto Livello
Principali problemi legati alla stima di potenza ad alto livello:La stima di potenza è fortemente dipendente dai vettori di ingresso
(strongly pattern-dependent) cioè dipende dalle caratteristiche degli ingressi applicati al circuito.
Ai più alti livelli di astrazione, la conoscenza di alcune caratteristiche del circuito è molto limitata.
10/12/98 Cristina Silvano - Università di Brescia 21
Metodologia di Stima della Potenza ad Alto Livello
Obiettivi della ricerca: Definizione di un ambiente integrato per la stima della potenza associata
alla parte HW dei sistemi dedicati descritti in VHDL a livello comportamentale e RT e basato sulla probabilità dei segnali di ingresso fornite dal progettista.
Possibilità di confrontare diverse soluzioni nello spazio di progetto architetturale senza richiedere la sintesi del progetto.
Realizzazione di un programma per l’applicazione automatica del modello teorico studiato.
10/12/98 Cristina Silvano - Università di Brescia 22
Principali Tecniche di Stima della Potenza ad Alto Livello
Tecniche di stima della potenza ad alto livello sono apparse soltanto recentemente.
Livello Architetturale/RTMetodi analitici, basati su correlazione tra potenza dissipata e
capacità/attività di commutazione dei nodi.Metodi empirici, basati su un approccio di macro-modellizzazione a
partire da misure di potenza ricavate da implementazioni esistenti.
Livello ComportamentalePredizione statica dell’attività, basata su analisi statica per stimare la
frequenza di accesso alle diverse risorse.Predizione dinamica dell’attività, basata su analisi dinamica per
determinare le frequenze di attivazione delle diverse risorse.
Il mercato dei tool EDA non offre strumenti per l’analisi accurata della potenza ad alto livello.
10/12/98 Cristina Silvano - Università di Brescia 23
Architettura Obiettivo a Livello Sistema
Registerfiles
crossbar network
MUX MUX
Register-x Register-n
MUX
MUX
Register-1
MUX
functional units
datapath control lines
MUX
MUX
Memory
Data INRegister
Data OUTRegister
Embedded Processor(core cell)
ProcessorMemory
DATAPATH
R/WAddress
MEMORY
EMBEDDED SOFTWARE
CONTROL UNIT
CLK
CLOCK DISTRIBUTION (balanced tree)
PRIMARY I/Os
next stateregister
controllogic
stateregister
Approccio System-On-a-Chip (SOC) Sistema sincrono e tutti i trasferimenti avvengono a livello di registri
10/12/98 Cristina Silvano - Università di Brescia 24
Modello di Stima della Potenza ad Alto Livello
Il modello è basato su un metodo analitico che correla la potenza dissipata associata alla descrizione VHDL alle capacità e attività di commutazione dei nodi.
L’approccio di stima è gerarchico:Modelli analitici progettati ad-hoc per ogni tipologia di elementi
dell’architettura obiettivo.Modelli analitici basati su una libreria di macro-moduli e celle standard.
L’approccio di stima è debolmente dipendente dai pattern di ingresso e richiede probabilità di ingresso che riflettano il comportamento tipico degli ingressi.
Modello basato su stima probabilistica dell’attività di commutazione; le probabilità di ingresso sono derivate dalla specifica a livello sistema.
10/12/98 Cristina Silvano - Università di Brescia 25
Modello di Stima della Potenza ad Alto Livello
La potenza media dissipata da un generico ASIC è composta da:
P = PIO + PCORE
dove PIO e PCORE sono la potenza media dissipata dai nodi di ingresso/uscita e dai nodi interni dell’ASIC.
PCORE può essere espressa come:
PCORE = PDP + PMEM + PCNTR + PPROC + PCLK
dove i singoli termini rappresentano la potenza media dissipata da data-path, memoria, logica di controllo, processore e logica di distribuzione del clock.
10/12/98 Cristina Silvano - Università di Brescia 26
Stima di PDATA-PATH
La potenza media dissipata dal data-path è composta da:
PDP = PREG + PMUX + PFU
dove: PREG potenza media dissipata dai registri;
PMUX potenza media dissipata dai multiplexer;
PFU potenza media dissipata dalle unità funzionali.
Stima di PREG:Il metodo denominato live variable analysis è stato applicato al codice
VHDL a livello comportamentale per stimare il numero di registri richiesti e la massima attività di commutazione di ogni registro.
L’algoritmo esamina la vita di una variabile in base alla sua definizione e uso nelle istruzioni del codice VHDL.
Il modello analitico dei registri tiene conto sia della potenza di commutazione sia della potenza di non-commutazione, dovuta ai pilotanti interni del clock.
kn
iCLKiiiSk fCPP
1
)(
k
k
n
iCLKikNS fPP
10 )1(
10/12/98 Cristina Silvano - Università di Brescia 27
Stima di PDATA-PATH
Stima di PMUX:
Stima del numero dei percorsi nel data-path a partire dal codice VHDL per determinare la dimensione e il numero dei multiplexer.
Definizione del modello di potenza di un multiplexer non-invertente a due ingressi, basato sulla probabilità statica dell’ingresso di selezione e sulla massima attività di commutazione degli ingressi di dato.
Stima di PFU:
I modelli analitici delle unità funzionali sono basati sulla stima della complessità logica.
La complessità logica delle unità funzionali è descritta in termini di porte logiche equivalenti.
MUX
i
N
iCLKiieeMUX fCPnP
1
)(
FU
LIB
n
iCLKiiiFU fCPP
1
)(
10/12/98 Cristina Silvano - Università di Brescia 28
Modello di Potenza delle FSM
INGRESSIPRIMARI
USCITEPRIMARIE
STATOPROSSIMO
REGISTRIDI STATO
CLK
STATOPRESENTE
x1
x2
xn
y1
y2
ym
b1
b2
b1
b2
bVAR bVAR
LOGICACOMBINATORIA
10/12/98 Cristina Silvano - Università di Brescia 29
Stima di PCNTR
La stima di potenza delle FSM, descritte a livello di Grafo di Transizione degli Stati (STG), è di tipo probabilistico e basata sul calcolo delle probabilità di transizione dei nodi, ricavate modellizzando le FSM come catene di Markov.
La potenza media dissipata dalla logica di controllo è composta da:
PCNTR = PIN + PST_REG + PCOMB + POUT
dove: PIN potenza media dissipata dagli ingressi primari;
PST_REG potenza media dissipata dai registri di stato;
PCOMB potenza media dissipata dalla logica combinatoria;
POUT potenza media dissipata dalle uscite primarie.
10/12/98 Cristina Silvano - Università di Brescia 30
Stima di PCNTR
Stima di PIN:La stima di potenza dipende dalle attività di commutazione degli ingressi
primari, ricavate dalla specifica a livello sistema o da simulazioni ad alto livello, e dalle capacità degli ingressi.
Stima di PST_REG:L’attività di commutazione delle linee di stato dipende dalla codifica degli
stati e dalle probabilità totali di transizione di stato.Il modello analitico dei registri tiene conto sia della potenza di
commutazione sia della potenza di non-commutazione.
Stima di PCOMB:La stima di potenza della logica combinatoria è basata su una
implementazione a due-livelli.
Stima di POUT:La stima di potenza dipende dalle attività di commutazione delle uscite
primarie, ricavate in base alla codifica delle uscite e alle probabilità totali di transizione delle uscite.
10/12/98 Cristina Silvano - Università di Brescia 31
Risultati Sperimentali
Risultati sperimentali sono stati ricavati da FSM standard del benchmark MCNC e da casi di studio industriali.
Le stime sono state confrontate con quelle ottenute dal tool Design Power di Synopsys per la stima di potenza operante a livello logico in modalità probabilistica.
La libreria di celle utilizzata è la libreria HCMOS6 di ST caratterizzata da 0.35 m e 3.3 V e operante a frequenza di 100 MHz.
10/12/98 Cristina Silvano - Università di Brescia 32
FSM - Potenza Sequenziale [W]
0
100
200
300
400
500
600
700
bbar
a
bbta
s
beec
ount
dk14
dk16
dk27
donf
ile
ex2
ex4
ex6
keyb lion
mar
k1
mod
ulo1
2
plan
et s1 s27
sand sse
tav
tma
trai
n4
Estimation
Design Pow er
10/12/98 Cristina Silvano - Università di Brescia 33
FSM - Potenza Combinatoria [W]
0
1000
2000
3000
4000
5000
6000
bbar
a
bbta
s
beec
ount
dk14
dk16
dk27
donf
ile
ex2
ex4
ex6
keyb lion
mar
k1
mod
ulo1
2
plan
et s1 s27
sand sse
tbk
trai
n11
Estimation
Design Pow er
10/12/98 Cristina Silvano - Università di Brescia 34
FSM - Potenza Totale [W]
0
1000
2000
3000
4000
5000
6000
7000
bbar
a
bbta
s
beec
ount
dk14
dk16
dk27
donf
ile
ex2
ex4
ex6
keyb lion
mar
k1
mod
ulo1
2
plan
et s1 s27
sand sse
tav
tma
trai
n4
Estimation
Design Pow er
10/12/98 Cristina Silvano - Università di Brescia 35
Risultati Sperimentali
0
5
10
15
20
25
30
35
40
45
50
MU
XM
EM
GC
D
DIF
FE
Q-T
DIF
FE
Q-A
EL
LIP
F
DH
RC
PA
CE
CE
RB
ER
O
Circuito
Po
ten
za [
mW
]
Design Pow er[mW]
VHDL2POW-RTL[mW]
VHDL2POW-Comp[mW]
Circuito DesignPower [mW]
vhdl2powRTL [mW]
vhdl2powComp [mW]
Errore %(RTL)
Errore %(Comp)
MEM_INT 6.3478 5.817 - -8.3% -GCD 1.8173 1.658 1.32 -8.7% -29%DIFFEQ-T 43.4 47.415 39.181 -9.7% 9.25%DIFFEQ-A 30.26 23.437 27.368 -9.55% -22.5%ELLIPF 18.1273 - 15.038 - -17%DHRC 9.2 - 11.22 - 21.9%PACE 1.745 - 1.9 - 8.88%CERBERO 0.231 - 0.208 - -10%
10/12/98 Cristina Silvano - Università di Brescia 36
Tecniche di Codifica a Livello dei Bus di Sistema
Nei circuiti VLSI, le capacità di carico dei nodi di I/O sono maggiori di alcuni ordini di grandezza rispetto alle capacità dei nodi interni la potenza dissipata dagli I/O contribuisce per una frazione considerevole alla potenza di commutazione globale.
Un significativo risparmio di potenza può essere ottenuto diminuendo l’attività di transizione degli I/O attraverso tecniche di codifica.
Svantaggi:Aumento della potenza interna a causa della presenza dei circuiti di
codifica/decodifica.Eventuale aggiunta di bit di ridondanza.
10/12/98 Cristina Silvano - Università di Brescia 37
Principali Tecniche di Codifica a Livello dei Bus di Sistema
Tecniche di codifica a livello di bus di sistema per limitare il numero di transizioni dei bus dati e indirizzi:
Per bus dati, caratterizzati da informazioni da trasmettere distribuite in modo casuale:Codice One-hot garantisce 2 transizioni per ogni ciclo, ma richiede 2N bit. Codice Bus-Invert aggiunge ridondanza per segnalare che gli N bit di
dato trasmessi sono stati invertiti, quando la distanza di Hamming tra due dati successivi è maggiore di N/2.
Per bus indirizzi, caratterizzati da elevata sequenzialità:Codice Gray è un codice non-ridondante che garantisce un singolo bit di
transizione per indirizzi consecutivi.Codici basati sulla definizione di Working Zone relativa allo spazio di
indirizzamento e adozione del codice Modified One-hot (MOE).
10/12/98 Cristina Silvano - Università di Brescia 38
Codice Bus-Invert
Assunzioni: pattern equiprobabili e incorrelati la probabilità di avere 0 oppure 1 su ogni linea del bus è pari a ½ in media N/2 transizioni per ciclo di clock sul bus.
Metodo di codifica:
(B (t), INV (t)) = (b (t), 0) se H (t) N/2
(b´ (t), 1) se t > 0 H (t) > N/2
dove B (t) bus codificato al tempo t, INV (t) linea ridondante al tempo t,
b (t) bus indirizzi al tempo t, H (t) = (B (t-1) INV (t - 1), b (t) 0)distanza di Hamming e N larghezza del bus b (t).
Vantaggio: Garantisce che il massimo numero di transizioni per ciclo di clock sia N/2 valore dimezzato rispetto al valore originale.
Svantaggio: Richiede una linea ridondante sul bus per indicare quando il pattern è stato invertito.
10/12/98 Cristina Silvano - Università di Brescia 39
Codice Gray e Codice T0
Per indirizzi sequenziali, il codice Gray è ottimo per codici non-ridondanti, richiedendo una commutazione sul bus indirizzi per ogni coppia di indirizzi consecutivi.
Per codici ridondanti, prestazioni migliori rispetto al codice Gray possono essere ottenute sfruttando il principio di località spaziale degli indirizzi.
Il codice T0 fornisce prestazioni asintotiche costituite da zero transizioni sul bus indirizzi nel caso di sequenza infinita di indirizzi consecutivi.
Il codice T0 offre prestazioni migliori del codice Gray anche nel caso realistico di sequenze di indirizzi consecutivi di lunghezza limitata.
10/12/98 Cristina Silvano - Università di Brescia 40
Codice T0
Metodo di codifica:
(B (t), INC (t)) = (B (t-1), 1) se t > 0 b (t) = b (t-1) + S
(b (t), 0) altrimenti
dove B (t) bus codificato al tempo t, INC (t) linea ridondante al tempo t, b (t) bus indirizzi al tempo t, S valore costante potenza di 2 chiamato stride.
Per sequenze ideali di indirizzi consecutivi di durata infinita, la linea INC è mantenuta a uno e tutte le altre linee di bus non presentano commutazioni, ottenendo prestazioni asintotiche di zero transizioni per indirizzi emessi consecutivi.
10/12/98 Cristina Silvano - Università di Brescia 41
Metodi di Codifica Misti
Obiettivo: sfruttare le peculiarità dei metodi di codifica illustrati per ottenere riduzioni di potenza a livello sistema attraverso la loro applicazione combinata.
Schemi di codifica proposti:Codifica T0_BI, adatta per architetture basate su un singolo bus indirizzi
usato per dati e istruzioni.Codifica Dual_T0, estensione della codifica T0 per architetture basate su
bus indirizzi condiviso nel tempo tra dati e istruzioni, come il bus relativo al microprocessore MIPS.
Codifica Dual_T0_BI, estensione della codifica T0_BI per architetture basate su bus indirizzi condiviso nel tempo.
10/12/98 Cristina Silvano - Università di Brescia 42
Metodi di Codifica Misti
Metodo di Codifica T0_BI:
(B(t), INC(t), INV(t)) = (B(t-1), 1, 0) se t > 0 b(t) = b(t-1) + S
= (b(t), 0, 0) se t 0 b(t) b(t-1) + S H(t) (N+2) / 2
= (b´(t), 0, 1) se t > 0 b(t) b(t-1) + S H(t) > (N+2) / 2
dove B (t) bus codificato al tempo t, INC(t) e INV (t) linee ridondanti al tempo t, b(t) bus indirizzi al tempo t, H(t) = (B(t-1) INC(t - 1) INV(t - 1), b(t) 0 0)distanza di Hamming, S stride e N larghezza del bus b (t).
10/12/98 Cristina Silvano - Università di Brescia 43
Metodi di Codifica Misti
Metodo di Codifica Dual_T0:
(B (t), INC (t)) = (B (t-1), 1) se t > 0 SEL = 1 b (t) = b (t) + S
= (b (t), 0) altrimenti
dove B (t) bus codificato al tempo t, INC(t) linea ridondante al tempo t, b(t) bus indirizzi al tempo t, S stride e b (t) dato da:
b (t) = b (t-1) se SEL = 0
= b (t-1) se SEL = 1
10/12/98 Cristina Silvano - Università di Brescia 44
Metodi di Codifica Misti
Metodo di Codifica Dual_T0_BI:
(B (t), INCV (t)) = (B (t-1), 1) se t > 0 SEL =1 b (t) = b (t) + S
(b´ (t), 1) se t > 0 SEL =0 H (t) > N /2
(b (t), 0) altrimenti
dove B (t) bus codificato al tempo t, INCV (t) linea ridondante al tempo t, b (t) bus indirizzi al tempo t, H (t) = (B (t-1) INCV (t - 1), b (t) 0)distanza di Hamming, S lo stride e b (t) dato da:
b (t) = b (t-1) se SEL = 0
= b (t-1) se SEL = 1
10/12/98 Cristina Silvano - Università di Brescia 45
Confronto Prestazioni dei Metodi di Codifica Misti
Programma Lunghezza PercentualeIndirizzi
CodificaBinaria
Codifica T0_BI Codifica Dual_T0 Codifica Dual_T0_BI
Sequenza Sequenziali Transizioni Transizioni Guadagno Transizioni Guadagno Transizioni Guadagno
gzip 153495 46.34% 8337995 7157171 14.16% 7363731 11.68% 7097691 14.88%
gunzip 78486 52.81% 482093 356057 26.14% 426705 11.49% 343335 28.78%
ghostview 517284 46.65% 3067635 2661381 13.24% 2785341 9.20% 2785341 14.29%
espresso 2322423 44.39% 15147444 12349832 18.47% 13586402 10.31% 11883056 21.55%
nova 765045 36.03% 5526484 5218195 5.57% 5254072 4.29% 5054617 8.53%
jedi 20835298 37.18% 152427486 131617956 13.65% 141103112 7.43% 126132486 17.25%
latex 900426 55.55% 7002828 4202462 39.99% 6202718 11.43% 4002340 42.85%
matlab 7604436 64.47% 42405967 32257681 23.93% 34005845 19.81% 30775139 27.43%
oracle 620437 56.43% 3939551 3116685 20.89% 3479391 11.68% 2964637 24.75%
Media 48.65% 19.56% 12.15% 22.25%
10/12/98 Cristina Silvano - Università di Brescia 46
Consumo Codificatore/Decodificatore per Carichi Esterni
Carico Est. CodificaBinaria
Codifica T0 Codifica Dual_T0_BI
(pF) Pot. Tot. (mW) Pot. Pad (mW) Pot. Tot. (mW) Pot. Pad (mW) Pot. Tot. (mW)
5 43.46 38.38 47.81 31.97 95.94
10 60.19 53.16 62.59 44.28 108.25
15 76.92 67.94 77.37 56.59 120.56
20 93.65 82.71 92.14 68.90 132.86
25 110.38 97.49 106.92 81.21 145.17
30 127.11 112.26 121.70 93.52 157.48
40 160.57 141.82 151.25 118.13 182.10
50 194.03 171.37 180.80 142.75 206.72
60 227.49 200.92 210.35 167.37 231.33
70 260.95 230.48 239.91 191.98 255.95
80 294.41 260.03 269.46 216.60 280.57
90 327.87 289.58 299.01 241.22 305.18
100 361.33 319.13 328.56 265.84 329.80
110 394.93 348.81 358.24 290.55 354.52
120 428.53 378.48 387.91 315.27 379.24
130 462.13 408.15 417.59 339.99 403.96
140 495.73 437.83 447.26 364.71 428.67
150 529.32 467.50 476.93 389.43 453.39
10/12/98 Cristina Silvano - Università di Brescia 47
Metodologia di Stima della Potenza a Livello dei Bus di Sistema
Obiettivi della ricerca: Definizione di un modello per valutare l’effetto di tecniche di codifica
sulla potenza dissipata dai bus di sistema in presenza di una gerarchia di memoria.
Modellizzazione di diverse configurazioni di sistema in termini di processore target, sotto-sistema di memoria e bus dati e indirizzi.
Definizione di un modello che includa diverse tecniche di codifica dei bus dati e indirizzi orientate alla bassa dissipazione di potenza.
Analizzare il comportamento dei bus di sistema utilizzando stream dati e indirizzi derivati Tracciando il comportamento reale di microprocessori Simulando l’esecuzione di un programma e la la generazione degli stream
dati e indirizzi.
Realizzazione di un programma per l’applicazione automatica del modello teorico studiato.
10/12/98 Cristina Silvano - Università di Brescia 48
Modello di Sistema
Modello della gerarchia di memoria: Memorie cache unificate o separate Dimensione della cache Dimensione del blocco Grado di associatività (Cache a indirizzamento diretto, set associative e
completamente associative) Strategia di scrittura (Write-through e Write-back) Politica di gestione del fallimento in scrittura (Write-allocate e No-write-
allocate) Politica di sostituzione del blocco (Random e LRU) Gestione del problema della coerenza
Modello che implementa le principali tecniche di codifica del bus dati e indirizzi:
Binary, Bus-Invert, T0, T0_BI, Gray, Dual_T0 e Dual_T0_BI
Modello di generazione degli stream dati e indirizzi da parte del processore verso il sotto-sistema di memoria, considerando il principio di località spaziale e temporale.
10/12/98 Cristina Silvano - Università di Brescia 49
Configurazioni di Sistema
Il modello proposto consente di tracciare il comportamento dei bus dati e indirizzi a livello sistema per una vasta gamma di configurazioni processore-memoria.
Analizzati due casi di studio che differiscono per il processore target, il sotto-sistema di memoria e i principali parametri di sistema:
Frequenza dei bus interni ed esterni Carico capacitivo dei bus interni ed esterni Tensione di alimentazione
10/12/98 Cristina Silvano - Università di Brescia 50
Casi di Studio
Sistema embedded basato su processore a 32-bit ARM7TDMI a bassa dissipazione e sotto-sistema di memoria composto da cache L1 e memoria principale.
Sistema di elaborazione high-end basato sul processore a 64-bit PowerPC604e e gerarchia di memoria composta da L1, L2 e memoria principale.L1 composta da 32KB cache on-processor set associativa a 4-vie L2 off-processor configurabile
CPUProc. Cache L1L1 Cache MainMemory
MainMemory
Proc. L1 Cache Cache L2L2 Cache MainMemory
MainMemory
Embedded System
High-End System
10/12/98 Cristina Silvano - Università di Brescia 51
Sistema Embedded - CASO A
Effetto codificatore di bus on-processor senza cache
Proc. BusEncoder
MainMemory
MainMemory
Frequency:Capacitance:
33MHz0.1pF
66MHz60pF
Encoding Address BusPower [mW]
% PowerSaved
Data BusPower [mW]
% PowerSaved
Binay 197.64 Ref 330.53 RefBI 190.88 3.42% 293.37 11.24%T0 185.95 5.91% 330.8 -0.08%T0_BI 180.96 8.44% 296.11 10.41%Gray 102.38 48.20% 339.37 -2.67%Dual_T0 35.12 82.23% 330.8 -0.08%Dual_T0_BI 23.32 88.20% 323.74 2.05%
Potenza bus dati e indirizzi per diverse tecniche di codifica
10/12/98 Cristina Silvano - Università di Brescia 52
Sistema Embedded - CASO B
Effetto della cache L1 off-processor senza codifica dei bus
Frequency:Capacitance:
66MHz10pF
66MHz60pF
ARMProc. Cache L1L1 Cache MainMemory
MainMemory
50
60
70
80
90
4K 8K 16K 32K
Cache Size (Bytes)
Po
wer
(m
W) 32
64
128
256
Block Size (Bits)
100
120
140
160
180
200
220
4K 8K 16K 32K
Cache Size (Bytes)
Po
wer
(m
W) 32
64
128
256
Block Size (Bits)
Cache Size % Power Saved on Address Busvs Reference
% Power Saved on Data Busvs Reference
Min. Ave. Max. Min. Ave. Max4KBytes 55.99 60.00 64.17 35.60 45.06 48.048KBytes 65.01 67.99 70.04 53.48 59.01 60.6116KBytes 69.40 72.32 73.67 59.65 66.54 67.9332KBytes 70.85 72.88 73.92 62.02 67.47 68.27
Percentuale di potenza risparmiata su bus dati e indirizzi rispetto all’architettura di riferimento per 4 diverse dimensioni della cache
Potenza bus indirizzi vs dim. della cache per una cache set-associativa a 2-vie e 4 diverse dim.blocco
Potenza bus dati vs dim. della cache per una cache set-associativa a 2-vie e 4 diverse dim.blocco
10/12/98 Cristina Silvano - Università di Brescia 53
Sistema Embedded - CASO C
Effetto combinato di codificatore di bus on-processor e cache L1 off-processor
Frequency:Capacitance:
33MHz0.1pF
66MHz10pF
Proc. Encoder MainMemory
MainMemoryCache L1L1 Cache
66MHz60pF
2030405060708090
4K 8K 16K 32K
Cache Size (Bytes)
Po
wer
(m
W) Binary
Gray
BI
T0
T0 BI
Dual T0
Dual T0 BI
Bus Encoding
90
110
130
150
170
190
4K 8K 16K 32K
Cache Size (Bytes)
Po
wer
(m
W) Binary
Gray
BI
T0
T0 BI
Dual T0
Dual T0 BI
Bus Encoding
Cache Size Average % Power Saved Address Bus vs ReferenceBinary Gray BI T0 T0_BI Dual_T0 Dual_T0_BI
4KBytes 58.78 66.74 59.28 59.70 60.12 72.42 73.418KBytes 67.46 75.42 67.96 68.38 68.80 81.10 82.0916KBytes 72.17 80.13 72.67 73.08 73.50 85.80 86.8032KBytes 72.76 80.72 73.26 73.68 74.10 86.40 87.39
Cache Size Average % Power Saved Address Bus vs Binary EncodingGray BI T0 T0_BI Dual_T0 Dual_T0_BI
4KBytes 19.32 1.22 2.22 3.25 33.09 35.508KBytes 24.48 1.54 2.82 4.11 41.92 44.9816KBytes 28.65 1.80 3.30 4.81 49.06 52.6332KBytes 29.25 1.84 3.36 4.91 50.08 53.74
Potenza bus indirizzi vs dim. della cache per una cache set-associativa a 2-vie e diverse codifiche
Potenza bus dati vs dim. della cache per una cache set-associativa a 2-vie e diverse codifiche
10/12/98 Cristina Silvano - Università di Brescia 54
Sistema Embedded - CASO D
Effetto combinato di L1 cache off-processor e codificatore di bus off-processor
Frequency:Capacitance:
66MHz10pF
66MHz10pF
Proc. L1 Cache MainMemory
MainMemoryEncoder
BusEncoder
66MHz60pF
Cache Size Average % Power Saved Address Bus vs ReferenceBinary Gray BI T0 T0_BI Dual_T0 Dual_T0_BI
4KBytes 58.78 63.80 55.22 57.73 57.87 69.17 69.518KBytes 67.46 69.55 65.04 66.42 66.41 71.69 71.8516KBytes 72.17 72.68 70.40 71.10 70.98 73.02 73.1332KBytes 72.76 73.06 71.08 71.71 71.58 73.26 73.37
Cache Size Average % Power Saved Address Bus vs Binary EncodingGray BI T0 T0_BI Dual_T0 Dual_T0_BI
4KBytes 12.17 -8.64 -2.55 -2.21 25.21 26.038KBytes 6.40 -7.42 -3.19 -3.23 13.01 13.4816KBytes 1.81 -6.33 -3.83 -4.25 3.05 3.4432KBytes 1.09 -6.18 -3.84 -4.31 1.82 2.26
10/12/98 Cristina Silvano - Università di Brescia 55
Metodi di Assegnamento degli Stati nelle FSM
Obiettivi della ricerca: Realizzazione di un ambiente integrato per risolvere il problema
dell’assegnamento degli stati nelle FSM orientate alla bassa dissipazione di potenza.
Definizione di metodi per visitare lo STG e assegnare una priorità agli stati simbolici.
Definizione di tecniche di codifica per assegnare codici binari agli stati simbolici per ridurre l’attività di commutazione delle variabili di stato.
Realizzazione di un programma per l’applicazione automatica dei metodi di codifica proposti.
10/12/98 Cristina Silvano - Università di Brescia 56
Problema dell’Assegnamento degli Stati nelle FSM
Dato lo STG associato ad una FSM, trovare un assegnamento di codici binari ai registri di stato per minimizzare una data funzione di costo.
Metodi di codifica degli stati orientati alla bassa dissipazione di potenza sono in genere finalizzati a ridurre l’attività di commutazione dei registri di stato tra cicli di clock consecutivi.
Funzione di costo: Somma delle distanze di Hamming tra parole di codice assegnate a coppie di stati si e sj tra i quali può avvenire una transizione:
C = ij H (ci, cj)
Una funzione di costo più efficace deve assegnare codici vicini a coppie di stati caratterizzati da elevata probabilità di transizione:
C = ij wij H (ci, cj)
10/12/98 Cristina Silvano - Università di Brescia 57
Principali Tecniche di Assegnamento degli Stati
Cyclop considera le probabilità di transizione condizionate come fattori di peso nella funzione di costo.
POW3 considera le probabilità di transizioni totali come fattori di peso.
Galops introduce una combinazione convessa di attività di transizione e area della parte combinatoria come pesi di STG.
LPSA propone un modello di costo per implementazioni della logica combinatoria a 2-livelli e multi-livello.
Metodi basati su codici a lunghezza variabile, ad esempio codifica di Huffman per assegnare parole di codice con lunghezza minore agli stati più probabili.
10/12/98 Cristina Silvano - Università di Brescia 58
Modello Probabilistico di FSM
Dato STG composto da ns stati, si approssima l’attività di commutazione media dei nodi usando probabilità di transizione derivate modellizzando la FSM come catena di Markov.Probabilità di transizione di stato condizionate:
pij = Prob (Next =sj | Present = si)
Probabilità di transizioni di stato totali Pij = pij Pi
Probabilità statica di stato Pi : PT = PT p i=1 …ns Pi =1
P300
S4
S2 S3
11
01,-0
01,-0 0- 10,-1
1-
S1
11
P2
P1 P4
p23
p42
p34
p43
p21
p12
10/12/98 Cristina Silvano - Università di Brescia 59
Metodi di Codifica degli Stati nelle FSM
Processo di assegnamento degli stati consiste in due fasi:Problema dell’ordinamento degli stati selezionando i lati del STG in
modo da ottimizzare una data funzione di costo. Obiettivo: Assegnare una priorità agli stati simbolici per la successiva fase di
codifica.
Problema della codifica degli stati in modo da attribuire parole di codice a lunghezza minima agli stati simbolici ordinati, ottimizzando una data funzione di costo. Funzione di costo finalizzata ad assegnare parole di codice a distanza minima
a stati con alta probabilità di transizione.
10/12/98 Cristina Silvano - Università di Brescia 60
Metodi di Codifica degli Stati nelle FSM
Proposte tre strategie euristiche di ordinamento degli stati per identificare la traiettoria di nodi consecutivi nel grafo caratterizzati da maggiore probabilità di transizione:Identifica la traiettoria di visita effettuando una scelta ottima locale ad
ogni passo del lato a peso massimo rispetto al nodo di arrivo selezionato al passo precedente.
Identifica la traiettoria di visita effettuando una scelta ottima locale ad ogni passo rispetto ad entrambi i nodi di arrivo e partenza selezionati al passo precedente.
Identifica la traiettoria di visita effettuando una scelta ottima locale ad ogni passo rispetto ad entrambi i nodi di arrivo e partenza selezionati in tutti i passi precedenti.
10/12/98 Cristina Silvano - Università di Brescia 61
Metodi di Codifica degli Stati nelle FSM
Proposti due metodi di codifica per gli stati assegnati secondo la lista di priorità ottenuta nella fase precedente.Date tutte le parole di codice a lunghezza minima rispetto alla codifica
assegnata al passo precedente, si assegna la nuova codifica minimizzando H(sn, s n-1)
Date tutte le parole di codice a lunghezza minima rispetto alla codifica assegnata al passo precedente, si assegna la nuova codifica minimizzando una funzione di costo parziale Cp che contiene H(sn, s n-1) e H (sn , sj) con sj nodi non ancora assegnati.
10/12/98 Cristina Silvano - Università di Brescia 62
Metodi di Codifica degli Stati nelle FSM
Proposti quattro metodi di assegnamento degli stati:Depth FirstMinimum Distance1_Level1_Level_Tree
10/12/98 Cristina Silvano - Università di Brescia 63
Risultati Confronto Metodi di Codifica degli Stati in FSM
bb
ara
bb
se
bb
tas
bb
tasm
od
be
eco
un
t
cse
dk1
4
dk1
5
dk1
6
dk1
7
dk2
7
dk5
12
do
nfil
e
ex1
ex4
ex6
keyb
kirk
ma
n
lion
lion
9
mc
mo
du
lo1
2
pla
ne
t
pla
ne
t1 s1
s14
88
s1a
s20
8
s27
s38
6
s42
0
s51
0 s8
s82
0
s83
2
san
d
shift
reg
styr tav
tbk
tma
tra
in1
1
tra
in4
1Level Tree Pow3 Huffman
10/12/98 Cristina Silvano - Università di Brescia 64
Conclusioni e Sviluppi Futuri
Definita una metodologia di analisi della potenza dissipata a livello sistema integrata in un ambiente di co-progettazione HW/SW per sistemi dedicati.
Definito un modello a livello sistema per la valutazione degli effetti congiunti delle tecniche di codifica dei bus e della gerarchia di memoria.
Risultati sperimentali su circuiti di benchmark e casi di studio industriali hanno mostrato accuratezza relativa soddisfacente rispetto a tool di stima a livello logico.
Sviluppi futuri:Estendere l’analisi alla definizione e validazione di metriche di stima delle
parti HW e SW per guidare la fase di partizionamento. Analisi della parte di comunicazione HW/SW.Validazione della metodologia di stima proposta attraverso ulteriori casi
di studio industriali.
10/12/98 Cristina Silvano - Università di Brescia 65
Conclusioni e Sviluppi Futuri
Definite nuove tecniche di codifica dell’informazione finalizzate alla riduzione delle transizioni dei bus a livello sistema.
Definite nuove tecniche di assegnamento degli stati nelle FSM.
Le prestazioni fornite dalle tecniche di codifica e dai modelli proposti sono state dimostrate analiticamente e confermate attraverso misure effettuate su circuiti di benchmark e casi di studio industriali.
Sviluppi futuri:Definizione di nuove tecniche di codifica ad-hoc adatte a diverse
architetture del sotto-sistema di memoria e di I/O e a diverse famiglie di processori.
Definizione di nuovi metodi di assegnamento degli stati nelle FSM basati su codici a lunghezza variabile finalizzati alla riduzione della potenza di commutazione.