Introduzione - Dipartimento di Ingegneria dell`Informazione

Corso di Laurea Ingegneria dell’Informazione
Sistemi a Microprocessore
Digital Signal Processor (DSP)
A.A. 2007-2008
Prof. Ing. Ivan Bruno
Introduzione
‡
Il processore digitale di segnale DSP rappresenta una
specializzazione architetturale e funzionale dei sistemi di
elaborazione, progettata per elaborare, in formato
digitalizzato, segnali di qualsiasi natura (comunicazioni
elettriche, sensori di misura, ecc.) ad un rapporto
costo/prestazioni il più favorevole possibile.
‡
Dalla sua introduzione, questo tipo di componente è stato
utilizzato in prevalenza nei campi in cui l’esecuzione
estremamente veloce di elaborazioni complesse su segnali
è un requisito importante, come ad esempio:
„
„
„
telefonia mobile
audio e video digitale
settori del controllo automatico (azionamenti di motori
elettrici, robotica)
07/12/2007
Sistemi a Microprocessore A.A. 20072008
2
1
Esempi
Schema a blocchi di applicazione DSP per elaborazione del segnale in
una videocamera digitale (fonte Texas Instruments)
07/12/2007
Sistemi a Microprocessore A.A. 20072008
3
Esempi
Schema a blocchi di applicazione DSP per telefonia cellulare (fonte
Texas Instruments)
07/12/2007
Sistemi a Microprocessore A.A. 20072008
4
2
Schema a blocchi di un generico DSP
07/12/2007
Sistemi a Microprocessore A.A. 20072008
5
Schema a blocchi di un generico DSP
‡
‡
Come si vede, le componenti integrate sul chip
sono analoghe a quelle analizzate durante la
descrizione dei microcontrollori. Inoltre, è
importante osservare che per i Digital Signal
Processor il bus dati e il bus istruzioni sono quasi
sempre separati.
Come descritto in precedenza, questa tipologia di
architettura, detta di Harvard, ha il notevole
vantaggio di ridurre i tempi di esecuzione per
istruzione rispetto alla tradizionale architettura di
Von Neumann (istruzioni e dati sullo stesso bus).
07/12/2007
Sistemi a Microprocessore A.A. 20072008
6
3
Schema a blocchi di un generico DSP
‡
‡
‡
Tuttavia, la sola scelta dell’architettura di tipo
Harvard non spiega completamente
l’orientamento del DSP all’elaborazione di segnali.
Per capire la particolarità di questi processori
occorre anzitutto considerare quali sono le
operazioni necessarie nelle applicazioni che
richiedono DSP, le quali si possono ricondurre
sostanzialmente alle categorie di filtraggio e
convoluzione (FFT, modulazioni, demodulazioni,
ecc.).
In entrambi i casi, il processore deve eseguire un
grande numero di operazioni aritmetiche di
moltiplicazione e somma.
07/12/2007
Sistemi a Microprocessore A.A. 20072008
7
Motivo d’impiego dei DSP
‡
Ad esempio, i filtri digitali sono descrivibili tramite funzioni di
trasferimento espresse secondo le Z-trasformate, in forma razionale fratta
del tipo (m < n):
o, più spesso, in forme nelle quali compaiono solo potenze di z−1:
Dato che z−1 rappresenta l’operatore “ritardo unitario”, corrispondente ad un
periodo di campionamento, quest’ultima forma può essere facilmente
convertita in una equazione alle differenze, cioè l’operazione che viene
effettivamente eseguita dal processore sui valori campionati agli istanti k,
k−1, k−2 ecc., del segnale in ingresso (m valori, u(k), u(k−1), ecc.) e del
segnale filtrato in uscita (n valori, y(k), y(k−1), ecc.):
07/12/2007
Sistemi a Microprocessore A.A. 20072008
8
4
Motivo d’impiego dei DSP
‡
‡
se l’ordine del filtro è molto elevato, ad ogni istante di
campionamento occorre eseguire un gran numero di
moltiplicazioni, sommando nel contempo tutti i risultati.
Pertanto, l’obiettivo di progetto di un processore di tipo DSP
è massimizzare l’efficienza di esecuzione di queste
operazioni, integrando nel componente dei blocchi
moltiplicatori hardware, affiancati alla tradizionale ALU, in
modo tale da poter addirittura eseguire una moltiplicazione
ed una somma (“accumulazione”) in parallelo nello stesso
ciclo macchina, grazie a particolari istruzioni chiamate
Multiply/Accumulate (MAC).
07/12/2007
Sistemi a Microprocessore A.A. 20072008
9
Motivo d’impiego dei DSP
‡
Inoltre, per ottimizzare la gestione di memoria dei campioni, i DSP
permettono di utilizzare dei metodi di indirizzamento specifici per
l’implementazione di buffer circolari di dimensione programmabile, che
sono particolari strutture dati molto efficienti per la memorizzazione di
“finestre temporali” di campioni:
‡
La corretta gestione della struttura dati, in particolare l’avanzamento del
puntatore in relazione all’acquisizione di nuovi campioni, avviene
direttamente via hardware, grazie a istruzioni specifiche dei DSP, senza
alcun costo computazionale aggiuntivo.
07/12/2007
Sistemi a Microprocessore A.A. 20072008
10
5
Motivo d’impiego dei DSP
‡
La grande capacità dei DSP di realizzare algoritmi che implementano
funzioni di trasferimento discrete, anche di ordine elevato, risulta molto
appetibile anche nel contesto dei sistemi di controllo.
‡
Si pensi, ad esempio, alla realizzazione di un controllo in retroazione con
regolatore standard di tipo PID (Proporzionale-Integrale-Derivativo)
‡
Considerando la notevole efficienza computazionale nell’eseguire calcoli
come quelli sopra descritti, le risorse fornite dai DSP permettono
l’implementazione di schemi di controllo anche molto complessi, come
quelli richiesti, nei casi di interesse pratico per l’automazione industriale,
nel campo degli azionamenti elettrici ad elevate prestazioni
07/12/2007
Sistemi a Microprocessore A.A. 20072008
11
Motivo d’impiego dei DSP
DSP per il controllo di motori elettrici (fonte Texas Instruments)
07/12/2007
Sistemi a Microprocessore A.A. 20072008
12
6
Motivo d’impiego dei DSP
‡
Il processore può effettivamente farsi carico di un numero
molto maggiore di elaborazioni dei segnali elettrici, rispetto
a quanto potrebbe fare un microcontrollore con frequenza
di clock comparabile, eseguendo compiti di:
„
„
„
Filtraggio digitale dei segnali provenienti dai sensori.
Trasformazioni di coordinate (trifase-bifase, rotore-statore)
necessarie per il controllo di coppia nei motori trifase sincroni
(Brushless DC e sinusoidale) e asincroni (AC ad induzione).
Algoritmi di compensazione delle oscillazioni di coppia.
‡
„
La coppia erogata da un motore elettrico è tipicamente
proporzionale alla corrente fornita dal circuito di alimentazione.
Come descritto in precedenza, la modulazione PWM della tensione
di alimentazione genera oscillazioni sulla corrente, pertanto anche
sulla coppia erogata.
Algoritmi di stima del flusso di induzione (Motori AC Asincroni),
e addirittura della posizione (controllo senza sensori o
sensorless).
07/12/2007
Sistemi a Microprocessore A.A. 20072008
13
Motivo d’impiego dei DSP
‡
Pertanto, nello stesso tempo impiegato da un
microcontrollore per il solo calcolo dell’algoritmo
PID, un DSP può eseguire tutte le elaborazioni
sopra citate.
07/12/2007
Sistemi a Microprocessore A.A. 20072008
14
7
Riassunto settore di utilizzo
‡
Speech, Audio and Video Compression
„
‡
‡
‡
‡
‡
‡
‡
Gli algoritmi di compressione audio, video e del parlato hanno
caratteristiche diverse tra loro e sfruttano parti diverse del
segnale acquisito. Esistono DSP dedicati alla compressione dei
dati.
Filtering
Modulation and demodulation
Error correction coding and decoding
Serco control
Audio processing (e.g. surround-sound, noise reduction,
equalization, sample rate conversion, echo cancellation,
spatialization, etc…)
Speech recognition (identificazione vocale)
Signal synthesis (e.g. music, speech)
07/12/2007
Sistemi a Microprocessore A.A. 20072008
15
Specifiche per un DSP
‡
Un DSP deve essere in grado di:
„
„
„
„
„
Eseguire processi numerici ripetitivi
Fornire una determinata accuratezza numerica
Eseguire calcoli in virgola mobile
Avere un’elevata velocità di trasferimento
dalla/alla memoria
Soddisfare i vincoli temporali in
un’elaborazione real time
07/12/2007
Sistemi a Microprocessore A.A. 20072008
16
8
Requisiti DSP
‡
I processori DSO devono soddisfare le specifiche
minimizzando:
„
„
„
Costi
Dissipazione potenza
Uso della memoria
‡
„
Realizzare programmi che usino poca memoria, poiché la memoria
è uno dei fattori che incide sul costo
Tempo di sviluppo
‡
‡
‡
07/12/2007
L’ottimizzazione di questo parametro non è semplice, occorre una
buona conoscenza delle caratteristiche del processore, che non
sono note a priori ma, solo conseguentemente al suo utilizzo.
La programmazione del DSP spesso è fatta con un linguaggio di
basso livello (assembler o direttamento in linguaggio macchina).
Questo implica un aumento nel tempo di sviluppo.
Se un DSP costa poco non fornisce ambiente e strumenti di
sviluppo di alto livello o basso (assembler)
Sistemi a Microprocessore A.A. 20072008
17
Scelta del DSP
‡
Una delle domande da porsi nella scelta del DSP è quale
compito il dispositivo dovrà eseguire. Questo è legata alla
scelta dei seguenti parametri
„
FORMATO ARITMETICO
‡
„
„
Ampiezza formato dati
Velocità
‡
„
„
„
„
Frequenza massima di campionamento
Organizzazione della memoria
Tool di sviluppo disponibili
Supporto al multiprocessing
‡
„
Formato dei dati e dinamica delle rappresentazioni numeriche
(numero di bit) Æ Precisione
Possibilità di usare più processori insieme per estendere la potenza
di calcolo
Power Comsumption management
Costo
07/12/2007
Sistemi a Microprocessore A.A. 20072008
18
9
DSP: Formato aritmetico
‡
Due formati possibili:
„
Floating point
‡
‡
‡
„
È più facile da programmare
Rappresentazione con esponente e mantissa
DSP costoso per la presenza di HW dedicato al
Floating point
Fixed Point
‡
‡
07/12/2007
Difficoltà di programmazione, per la gestione della
precisione
Occorre definire la precisione e scalare il dato nella
dimensione disponibile per il processore
Sistemi a Microprocessore A.A. 20072008
19
DSP: Ampiezza dati
‡
L’ampiezza dei dati influisce su:
„
„
Dimensione del chip e costo
Tipi di device connessi (es. memorie)
‡
‡
„
Il DSP non può essere visto come un elemento separato,
ma integrato in un contesto con altri device
I dati in ingresso/uscita al/dal DSP devono essere
compatibili con il formato dei device accessori
Precisione/Velocità richiesta dall’applicazione
‡
‡
La velocità si può misurare una volta che si è implementata
l’applicazione stessa
Misure della velocità
ƒ MIPS
ƒ LOOP Perfomance
ƒ Analisi tramiti Benchmark
07/12/2007
Sistemi a Microprocessore A.A. 20072008
20
10
Misure della velocità
‡
‡
MIPS (vedi calcolatori)
Loop perfomance
„
„
‡
Quanto tempo impiega un processore ad eseguire un
determinato loop
Questa misurazione da sola non è sufficiente a
determinare le prestazione ma presa in considerazione
come valutazione nei benchmark
Analisi tramite Benchmark
„
„
„
Basata su “nuclei di operazioni” dette FUNZIONI KERNEL
come le trasformate o filtri (IIR, convolutional encoders,
etc..)
Le FK rispecchiano i task dei DSP (ripetitività, onerosità
computazionale, numerosi trasferimenti di dati alla
memoria
Ciascuna FK è detta benchmark
07/12/2007
Sistemi a Microprocessore A.A. 20072008
21
BDTI (Berkley Design Tech. Inc)
benchmark
Si basa su 11 algoritmi kernel (benchmark
set)
‡ Su ogni bechmarck si misurano 5 quantità
‡
„
Numero di Cicli
‡
„
„
„
„
Per valutare le prestazioni indipendentemente dal
clock rate
Tempo di esecuzione
Rapporto costo-prestazioni
Consumo energetico
Uso della memoria
07/12/2007
Sistemi a Microprocessore A.A. 20072008
22
11
DSP: programmazione
‡
‡
‡
I tool di sviluppo costituiscono quello che viene chiamato
ambiente di sviluppo
Esso deve essere fornito dalla casa costruttrice del DSP o
affiliata
Deve fornire:
„
„
„
„
„
„
„
„
Compiler
Assembler
Linker
Simulator (versione software del dispositivo DSP usato come
“cavia” per lo sviluppo)
Debugger
Librerie (algoritmi e altro di utilità)
In-Circuit Emulator (simulazione diretta via scheda con il DSP
vero attraverso un canale di controllo che consente di
monitorare lo stato dei registri e della memoria; utile per la
comparazione con la simulazione software)
Real Time O.S. (sistema operativo real time per applicazioni
tempo reale)
07/12/2007
Sistemi a Microprocessore A.A. 20072008
23
07/12/2007
Sistemi a Microprocessore A.A. 20072008
24
12