SlideShare a Scribd company logo
1 of 33
Download to read offline
Università Degli Studi Di Genova
Corso Di Implementazione Di Linguaggi
A.A. 2010/2011
DSPs – Digital Signal ProcessorsDSPs – Digital Signal Processors
PAOLO FARINA
1
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
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)
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
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
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
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.
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.
DSP SOFTWARE – STRUTTURA SVILUPPO
AMBIENTE DI SVILUPPO
C/Basic
Compilatore
Scheda Di
Programmazione
9
Assembler
Compilatore
DSP
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
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
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
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
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)
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
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
DSPs – Buffer Circolari
17
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
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.
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
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
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.
DSPs – TMS320C6457 Unità Funzionali
23
DSPs – TMS320C6457 Unità Funzionali
24
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
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.
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
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
DSPs – DSPs con FPGA – ALTERA STRATIX V
29
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.
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
DSPs – DSPs con FPGA – XILINX VIRTEX-6 DSP48E1
slice
32
Grazie per l’attenzione e …
… BUONE
FESTE!
33

More Related Content

Similar to Dsp seminario

Dsp cosa sono i digital signal processor - seconda parte - 2010-10-19
Dsp  cosa sono i digital signal processor  - seconda parte - 2010-10-19Dsp  cosa sono i digital signal processor  - seconda parte - 2010-10-19
Dsp cosa sono i digital signal processor - seconda parte - 2010-10-19Ionela
 
An IoT prototype: from ideation to promotion
An IoT prototype: from ideation to promotionAn IoT prototype: from ideation to promotion
An IoT prototype: from ideation to promotionJennifer De Filicaia
 
Thesis Ardemagni Sangalli Slide It
Thesis Ardemagni Sangalli Slide ItThesis Ardemagni Sangalli Slide It
Thesis Ardemagni Sangalli Slide ItMarco Santambrogio
 
EuComm
EuCommEuComm
EuCommiBLio
 
Microcontrollori
MicrocontrolloriMicrocontrollori
Microcontrollorisamu97
 
Conversione A/D-D/A e applicazioni nell'ambito musicale
Conversione A/D-D/A e applicazioni nell'ambito musicaleConversione A/D-D/A e applicazioni nell'ambito musicale
Conversione A/D-D/A e applicazioni nell'ambito musicaleVittorio Pellegrini
 
Progettazione di universal active filters e realizzazione di un software per ...
Progettazione di universal active filters e realizzazione di un software per ...Progettazione di universal active filters e realizzazione di un software per ...
Progettazione di universal active filters e realizzazione di un software per ...SamanthaGaio
 
Realizzazione di filtri adattativi su fpga
Realizzazione di filtri adattativi su fpgaRealizzazione di filtri adattativi su fpga
Realizzazione di filtri adattativi su fpgaalan lenisa
 
Corso live streaming sett 2013 lesson 3
Corso live streaming sett 2013 lesson 3 Corso live streaming sett 2013 lesson 3
Corso live streaming sett 2013 lesson 3 InSide Training
 
Prelaurea Buriola
Prelaurea BuriolaPrelaurea Buriola
Prelaurea Buriolaguest37fa19
 
Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embeddedDaniele Costarella
 
Digitalizzazione audio-dal segnale analogico allo streaming
Digitalizzazione audio-dal segnale analogico allo streamingDigitalizzazione audio-dal segnale analogico allo streaming
Digitalizzazione audio-dal segnale analogico allo streamingCory sky
 
Architettura dell'Elaboratore Elettronico (Computer)
Architettura dell'Elaboratore Elettronico (Computer)Architettura dell'Elaboratore Elettronico (Computer)
Architettura dell'Elaboratore Elettronico (Computer)Luca Santoro
 
SOFREL S4W - La telegestione 4.0 per reti idriche connesse
SOFREL S4W - La telegestione 4.0 per reti idriche connesseSOFREL S4W - La telegestione 4.0 per reti idriche connesse
SOFREL S4W - La telegestione 4.0 per reti idriche connesseLACROIX Sofrel Srl
 

Similar to Dsp seminario (20)

Dsp cosa sono i digital signal processor - seconda parte - 2010-10-19
Dsp  cosa sono i digital signal processor  - seconda parte - 2010-10-19Dsp  cosa sono i digital signal processor  - seconda parte - 2010-10-19
Dsp cosa sono i digital signal processor - seconda parte - 2010-10-19
 
An IoT prototype: from ideation to promotion
An IoT prototype: from ideation to promotionAn IoT prototype: from ideation to promotion
An IoT prototype: from ideation to promotion
 
Thesis Ardemagni Sangalli Slide It
Thesis Ardemagni Sangalli Slide ItThesis Ardemagni Sangalli Slide It
Thesis Ardemagni Sangalli Slide It
 
Standard
StandardStandard
Standard
 
3DD 1e Christian B
3DD 1e Christian B3DD 1e Christian B
3DD 1e Christian B
 
EuComm
EuCommEuComm
EuComm
 
Lezioni 2009
Lezioni 2009Lezioni 2009
Lezioni 2009
 
Microcontrollori
MicrocontrolloriMicrocontrollori
Microcontrollori
 
Conversione A/D-D/A e applicazioni nell'ambito musicale
Conversione A/D-D/A e applicazioni nell'ambito musicaleConversione A/D-D/A e applicazioni nell'ambito musicale
Conversione A/D-D/A e applicazioni nell'ambito musicale
 
Progettazione di universal active filters e realizzazione di un software per ...
Progettazione di universal active filters e realizzazione di un software per ...Progettazione di universal active filters e realizzazione di un software per ...
Progettazione di universal active filters e realizzazione di un software per ...
 
Realizzazione di filtri adattativi su fpga
Realizzazione di filtri adattativi su fpgaRealizzazione di filtri adattativi su fpga
Realizzazione di filtri adattativi su fpga
 
Corso live streaming sett 2013 lesson 3
Corso live streaming sett 2013 lesson 3 Corso live streaming sett 2013 lesson 3
Corso live streaming sett 2013 lesson 3
 
Prelaurea Buriola
Prelaurea BuriolaPrelaurea Buriola
Prelaurea Buriola
 
Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embedded
 
Digitalizzazione audio-dal segnale analogico allo streaming
Digitalizzazione audio-dal segnale analogico allo streamingDigitalizzazione audio-dal segnale analogico allo streaming
Digitalizzazione audio-dal segnale analogico allo streaming
 
Architettura dell'Elaboratore Elettronico (Computer)
Architettura dell'Elaboratore Elettronico (Computer)Architettura dell'Elaboratore Elettronico (Computer)
Architettura dell'Elaboratore Elettronico (Computer)
 
SOFREL S4W - La telegestione 4.0 per reti idriche connesse
SOFREL S4W - La telegestione 4.0 per reti idriche connesseSOFREL S4W - La telegestione 4.0 per reti idriche connesse
SOFREL S4W - La telegestione 4.0 per reti idriche connesse
 
DHow2 - L4
DHow2 - L4DHow2 - L4
DHow2 - L4
 
Tecnologie Di Base
Tecnologie Di BaseTecnologie Di Base
Tecnologie Di Base
 
Hardware e software
Hardware e softwareHardware e software
Hardware e software
 

Dsp seminario

  • 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
  • 17. DSPs – Buffer Circolari 17
  • 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.
  • 23. DSPs – TMS320C6457 Unità Funzionali 23
  • 24. DSPs – TMS320C6457 Unità Funzionali 24
  • 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
  • 29. DSPs – DSPs con FPGA – ALTERA STRATIX V 29
  • 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
  • 32. DSPs – DSPs con FPGA – XILINX VIRTEX-6 DSP48E1 slice 32
  • 33. Grazie per l’attenzione e … … BUONE FESTE! 33