1. Università Degli Studi Di Genova
Corso Di Implementazione Di Linguaggi
A.A. 2010/2011
DSPs – Digital Signal ProcessorsDSPs – Digital Signal Processors
PAOLO FARINA
1
2. DSP – DIGITAL SIGNAL PROCESSING
DIGITAL SIGNAL PROCESSING: è una tecnica di analisi ed
elaborazione digitale dei segnali che si basa sull'uso di
processori dedicati, con un elevato grado di
specializzazione.
- Lo scopo del DSP è di solito la misura o il filtraggio di segnali analogici del
2
- Lo scopo del DSP è di solito la misura o il filtraggio di segnali analogici del
mondo reale è quindi necessario prima convertire il segnale analogico in
digitale attraverso un apposito convertitore (ADC – Analog to Digital
Converter) ed eventualmente riconvertire il segnale digitale in segnale
analogico attraverso un altro convertitore (DAC – Digital to Analog Converter)
DSPADC DACInput Output
3. SEGNALI DIGITALI E SEGNALI ANALOGICI
SEGNALE ANALOGICO: In generale, un segnale analogico è la
rappresentazione o trasformazione di una grandezza fisica
tramite una sua analoga.
- In elettronica per analogico si intende il modo di rappresentare il
segnale elettrico all'interno di una data apparecchiatura; il segnale
è detto analogico quando i valori utili che lo rappresentano sono
3
è detto analogico quando i valori utili che lo rappresentano sono
continui (infiniti).
- La rappresentazione numerica di una grandezza analogica è quasi
sempre data da un numero reale (con precisione teoricamente
infinita) o da una loro combinazione.
Esempi: lancette dell’orologio (tempo), termometro di mercurio
(temperatura), segnale elettrico (segnale acustico)
4. SEGNALI DIGITALI E SEGNALI ANALOGICI
DIGITALE: In informatica ed elettronica con digitale ci si
riferisce a tutto ciò che viene rappresentato con numeri o che
opera manipolando numeri.
SEGNALE DISCRETO: Per segnale discreto o segnale discreto
nel tempo si intende una successione di valori di una certa
grandezza dati in corrispondenza di una serie di valori discreti
4
grandezza dati in corrispondenza di una serie di valori discreti
nel tempo.
SEGNALE DIGITALE: Un segnale digitale è un segnale discreto
che può assumere soltanto valori appartenenti ad un insieme
discreto
5. SIGNAL PROCESSING
I segnali possono essere elaborati in moltissimo modi
differenti:
• Conversione: Un segnale analogico è convertito in una sequenza
discreta di valori rappresentati in modo digitale
• Filtraggio: Processo attraverso il quale un segnale viene modificato
alterando le sue componenti e caratteristiche
5
alterando le sue componenti e caratteristiche
• Smoothing: consiste nell'applicazione di una funzione di filtro il cui
scopo è evidenziare i pattern significativi, attenuando il rumore
generato da artefatti ambientali.
• Digitalizzazione: è il processo di conversione, che applicato alla
misurazione di un fenomeno fisico ne determina il passaggio dal
campo dei valori continui a quello dei valori discreti.
• Compressione
• Modulazione
6. APPLICAZIONI DEL DSP
Il Digital Signal Processing e conseguentemente i Digital
Signal Processors sono utilizzati in un’ampia gamma di
applicazioni e dispositivi.
Per esempio:
• Telefonia e Fax
6
• Telefonia e Fax
•Sistemi Radar
•Sistemi Audio: microfoni, amplificatori,
sintetizzatori ecc.
•Sonar
•TV digitale
•Sistemi multimediali: pc, periferiche I/O,
controller
•Automazione e Process Control (servodrive)
•Sistemi Video: videocamere, editing video
7. DSP SOFTWARE
Per lo sviluppo di applicazioni per il DIGITAL SIGNAL PROCESSING si usano
solitamente gli stessi linguaggi che si usano per le applicazioni scientifiche e
ingegneristiche: il C, BASIC e il linguaggio ASSEMBLY
Ciascuno dei tre linguaggi citati è usato in differenti contesti, in relazione
7
È molto importante durante lo sviluppo di algoritmi per il DSP, come ad
esempio la creazione di un filtro, tenere presente l’ERRORE associato alla
rappresentazione dei numeri.
Ciascuno dei tre linguaggi citati è usato in differenti contesti, in relazione
all’esperienza del programmatore e al livello di astrazione a cui si intende
gestire le istruzioni.
8. DSP SOFTWARE - LIVELLI
Un microprocessore DSP è solitamente dotato di molte
funzionalità integrate, per esempio filtri , I/O analogici e I/O
digitali, questo potrà essere programmato in modi differenti, in
base a ciò che il costruttore fornisce.
Assembler: che costringe il programmatore a studiare l’architettura interna del
8
Assembler: che costringe il programmatore a studiare l’architettura interna del
dispositivo per scrivere programmi in assembler che usano uno specifico
instruction set
Compilatore C: che permette di scrivere programmi in C astraendo dalla specifica
architettura del processore
Software ad alto livello provvisto di librerie specifiche con algoritmi e funzioni
prefabbricate, routines di I/O e strumenti per il debugging.
9. DSP SOFTWARE – STRUTTURA SVILUPPO
AMBIENTE DI SVILUPPO
C/Basic
Compilatore
Scheda Di
Programmazione
9
Assembler
Compilatore
DSP
10. DSPs – DIGITAL SIGNAL PROCESSORS
Il Digital Signal Processor è un microprocessore ottimizzato per
eseguire in maniera estremamente efficiente sequenze di istruzioni
ricorrenti (come ad esempio somme, moltiplicazioni e traslazioni) nel
condizionamento di segnali digitali.
Manipolazione Dei Dati Calcoli Matematici
10
Sistemi Operativi, word
processing, gestione di DB,
fogli di calcolo, ecc.
Elaborazione dei segnali
digitali, controllo di sistemi,
simulazioni.
Movimentazione di dati (A-
>B) e Verifica di condizioni (if
A==B then…)v
Addizioni (A+B =C)
Moltiplicazioni (AxB=C)
Applicazioni
Tipiche
Operazioni
Principali
Microprocessori Tradizionali DSP
11. DSPs – ARCHITETTURA
Architettura di Von Neumann: Contiene una sola memoria e un solo bus per
il trasferimento dei dati. Per moltiplicare due numeri sono necessari tre cicli
di clock.
Memoria
Dati e Istruzioni
CPUAddress bus
Bus dati
11
Architettura Harvard: caratterizzata dalla separazione dei dati e dalle
istruzioni del programma attraverso bus separati. (Largamente usata)
Dati e Istruzioni Bus dati
Memoria di
Programma
Solo Istruzioni
CPUPM address bus
PM data bus
Memoria
Dati
Solo dati
DM address bus
DM data bus
12. DSPs – ARCHITETTURA
Architettura Super Harvard: simile all’architettura Harvard ma con l’aggiunta
di funzionalità che ne aumentano il throughput, per esempio con l’aggiunta
di un instruction cache e un I/O controller
Memoria di
Programma
Istruzioni e Dati
CPUPM address bus
PM data bus
Memoria
Dati
DM address bus
DM data busCache
12
Instruction Cache: contiene solitamente le ultime n istruzioni del programma
e viene utilizzata quando si presentano dei loop.
I/O Controller: controller dell’Input/Output per trasferimento dati in
memoria ad alta velocità.
Istruzioni e Dati
Secondari
PM data bus
Solo dati
DM data busCache
Istruzioni
I/O ControllerDati
13. DSPs – ARCHITETTURA INTERNA
Memoria
Programma
Istruzioni e Dati
secondari
Memoria
Dati
Solo Dati
PM Data
Address
Generator
DM Data
Address
Generator
Program Sequencer
Instruction Cache
DM address busPM address bus
13
I/O Controller
(DMA)
Registri
Dati
Shifter
ALU
Multiplier
PM data bus
High Speed I/O
(serial, parrarel, ADC,
DAC, ecc.)
DM data bus
14. DSPs – ARCHITETTURA INTERNA
DATA ADDRESS GENERATOR: uno per ognuna delle due memorie.
Controllano gli indirizzi mandati dalle memorie dati e programma
specificando dove le informazioni devono essere lette o scritte. Controllano i
buffer circolari.
DATA REGISTERS: registri dati usati come nelle normali CPU (flag, data buffer,
ecc.)
14
MULTIPLIER: prende i valori da due registri, li moltiplica e salva il risultato in
un altro registro.
ALU: effettua addizioni, sottrazioni, valori assoluti, operazoni logiche,
conversioni da virgola fissa a virgola mobile ecc.
BARREL SHIFTER: effettua operazioni binarie elementari come shiftare,
ruotare, estrarre, e depositare segmenti.
SHADOW REGISTERS: sono registri duplicati che possono essere usati al
posto di loro corrispettivi registri dati in un singolo ciclo di clock. (Usati per il
Fast context switching)
15. DSPs – FIXED versus FLOATING POINT
I Digital Signal Processors possono essere divisi in due categorie, a virgola
fissa e a virgola mobile, in riferimento al formato di salvataggio e
manipolazione dei dati all’interno del dispositivo.
Fixed point DSPs
Solitamente si utilizza il formato a 16
bit. (Ma anche a 24 bit come alcuni
15
Fixed point DSPs bit. (Ma anche a 24 bit come alcuni
prodotti Motorola)
Floating point DSPs
Solitamente si utilizza il formato a 32
bit. I valori massimo e minimo
rappresentabili sono rispetivamente:
±3.4×10^38 e ±1.2×10^-38
16. DSPs – Buffer Circolari
Nei DSP viene implementata in hardware la gestione dei buffer circolari per
supplire alla carenza di memoria derivante da alcune operazioni. (Lettura del
campione nei filtri FIR)
Per la gestione dei Buffer Circolari sono necessari 4 parametri:
- Puntatore al primo indirizzo di memoria usato
16
- Puntatore al primo indirizzo di memoria usato
-Puntatore all’ultimo indirizzo
- Step
- Puntatore al valore più recente
Nei DSPs questi parametri sono mappati su appositi registri
18. DSPs – In Definitiva
• Funzioni general-purpose:
– Registri, accumulatore, ALU, etc
– Anche dal punto di vista della programmazione si comportano come
processori general purpose
A cui si aggiungono il supporto per la rapida esecuzione delle istruzioni tipiche del
loro dominio
18
• Accesso efficiente ai dati Tramite bus multipli
• Indirizzamento efficiente dei dati Dag, buffer circolari
• Elevata capacità di interfacciamento Elevato numero di pin e interfacce di I/O
• Tempi di esecuzione predibili
19. DSPs – PANORAMICA STORICA
Le origini dei DSPs risalgono agli anni settanta quando divennero
disponibili i primi computer digitali
Il primo DSPs monolitico venne lanciato sul mercato nel 1978 da Intel (Intel
2920), era dotato di Alu priva di moltiplicatore e un’architettura Harvard
VLIW(very long instruction word) di 24 bit.
19
VLIW(very long instruction word) di 24 bit.
Raggiungeva in 2.5 MIPS (Million Instruction per Second)
Nel 1982 la Texas Instruments produce il suo primo dispositivo DSP, un
microprocessore dalle funzioni estremamente specializzate in grado di eseguire
in tempi velocissimi elaborazioni di segnali digitali.
20. DSPs – TMS320C6457
CORE
Gestione memoria esterna
con phased-locked loop
Coprocessori per le
operazioni di decodifica
dei segnali.
Ethernet Media Access
Controller interfaccia per
supporto standard
20
supporto standard
ethernet 10/100/1000
Timer
General-Purpouse
I/O Port
21. DSPs – TMS320C6457 CPU
La C64x+CPU consiste in 8 unità
funzionali 2 register files e 2 data paths:
• Le 8 unità funzionali sono in grado di
eseguire una istruzione per ogni ciclo di
colck.
-.M = operazioni di moltiplicazione
21
-.M = operazioni di moltiplicazione
-.S, .L= possono eseguire svariate f
unzioni logiche e aritmetiche,
.L(ALU) può operare somme e
sottrazioni in parallelo su una
coppia di input comuni
-.D= carica i dati dalla memoria al
registro e salva il risultato dal
registro alla memoria.
Frequenza da 850 MHz, 1 e 1.2 GHz
22. DSPs – TMS320C6457 CPU
• Ulteriori funzionalità includono:
SPLOOP: Un piccolo buffer per le istruzioni che aiuta la CPU nella creazione di software
pipelining loops dove iterazioni multiple di un ciclo sono eseguite in parallelo
Compact Instructions: Istruzioni molto comuni possono essere espresse a 16 bit invece che a
32.
22
Exception Handling: aiuta il programmatore nell’isolamento dei bugs.
Privilege: definisce 2 livelli di operatività, user e superuser fornendo al sistema operativo un
sistema di protezione delle risorse a basso livello.
Time-Stamp Counter: realizzato per sistemi operativi real time, un free-running time stamp
counter è implementato nella CPU.
25. DSPs – PARTE DELL’INSTRUCTION SET
Valore Assoluto
Somma tra due
numeri
Somma tra due
numeri usando il
doubleword
addressing mode
25
AND logico tra
due numeri
Inverte l’ordine
dei bit in una
parola di 32 bit
26. DSPs – DSP con FPGA
Al posto dei tradizionali Digital Signal Processor si possono sviluppare FPGA(Field
Programmable Gate Array) specifici per il Digital Signal Processing .
CARATTERISTICHE:
Flessibilità: gli FPGA possono essere riprogrammati in poco tempo. Revisioni sul
design possono essere implementate in poco tempo.
26
design possono essere implementate in poco tempo.
Costi Bassi: gli FPGA sono prodotti generici prodotti in grandi quantitativi, per cui
il costo è considerevolmente basso.
Basso Tempo di Sviluppo: la flessibilità degli FPGA elimina i lunghi cicli per il
design associati agli ASICs.
27. DSPs – DSPs con FPGA
CAUSE DELLA LIMITATA DIFFUSIONE:
Poca esperienza nell’uso di questi dispositivi per intensa applicazione di calcolo
Gli algoritmi sviluppati per microprocessori possono essere difficili da tradurre in
27
Gli algoritmi sviluppati per microprocessori possono essere difficili da tradurre in
hardware
Scarsa disponibilità di tools per FPGA progettati per lo sviluppo di DSP
Il successo di un FPGA DSP è strettamente dipendente dall’esperienza del
progettista soprattutto nello sviluppo di algoritmi per l’efficienza dell’hardware
28. DSPs – DSPs con FPGA – ALTERA STRATIX V
L’ALTERA STRATIX V GS è un FPGA ottimizzato per l’implementazione di DSP
28
Più di 1 milione di elementi logici (Les)
Più di 50 Mb di memoria
Ottimizzazione delle prestazioni specifiche per le applicazioni di digital signal
processing a precisione variabile
30. DSPs – DSPs con FPGA – XILINX VIRTEX-6
Xilinx Virtex-6 LX240T include:
• 769 DSP48E1 slices clocking at 600 MHz
• 241K celle logiche
•461 blocchi RAMs, 32 Kb ognuno
30
•461 blocchi RAMs, 32 Kb ognuno
•24 buffer driver bidirezionali a bassa potenza
I moduli DSP48E1 sono un’estensione dei moduli DSP48E presenti nei
Vertex-5 e sono dei Digital Signal Processor pre-implementati sul
FPGA.
31. DSPs – DSPs con FPGA – XILINX VIRTEX-6 DSP48E1
slice
Le principali caratteristiche del Virtex-6 FPGA DSP48E1 sono:
• Pre-Addizionatore a 25-bit con un registro D per migliorare le capacità del
path.
• Moltiplicatore 25 x 18 bit.
31
• Moltiplicatore 25 x 18 bit.
• Un clock indipendente per una maggiore flessibilità
• Modi operativi controllati dinamicamente dall’utente
• Unità logiche a 48-bit
• Registri opzionali di input, output e pipeline
• Pattern Detector per rilevazione di underflow e overflow