SlideShare a Scribd company logo
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

PPTX
Informazioni sui
PDF
Presentazione 7Box-Hd
DOC
Standard
PDF
Voce digitale
PDF
Progettazione di un convertitore analogico digitale in architettura multistadio
PDF
Westcon IPO webinar I
PPTX
PQS Ketenteraan T5
PPTX
New sensex levels
Informazioni sui
Presentazione 7Box-Hd
Standard
Voce digitale
Progettazione di un convertitore analogico digitale in architettura multistadio
Westcon IPO webinar I
PQS Ketenteraan T5
New sensex levels

Similar to Dsp seminario (20)

PDF
Dsp cosa sono i digital signal processor - seconda parte - 2010-10-19
PPTX
An IoT prototype: from ideation to promotion
PPT
Thesis Ardemagni Sangalli Slide It
DOC
Standard
PPT
3DD 1e Christian B
PDF
EuComm
ODP
Lezioni 2009
PDF
Arduino 2- Slide descrizione Architettura
PDF
Microcontrollori
ODP
Conversione A/D-D/A e applicazioni nell'ambito musicale
PPTX
Progettazione di universal active filters e realizzazione di un software per ...
PPT
Realizzazione di filtri adattativi su fpga
PDF
Corso live streaming sett 2013 lesson 3
PDF
Prelaurea Buriola
PDF
Software libero nei sistemi embedded
PPT
Digitalizzazione audio-dal segnale analogico allo streaming
PDF
SLIDES PRESENTAZION LEZIONE 1 ARDUINO.pdf
PPTX
Architettura dell'Elaboratore Elettronico (Computer)
PDF
SOFREL S4W - La telegestione 4.0 per reti idriche connesse
PPT
DHow2 - L4
Dsp cosa sono i digital signal processor - seconda parte - 2010-10-19
An IoT prototype: from ideation to promotion
Thesis Ardemagni Sangalli Slide It
Standard
3DD 1e Christian B
EuComm
Lezioni 2009
Arduino 2- Slide descrizione Architettura
Microcontrollori
Conversione A/D-D/A e applicazioni nell'ambito musicale
Progettazione di universal active filters e realizzazione di un software per ...
Realizzazione di filtri adattativi su fpga
Corso live streaming sett 2013 lesson 3
Prelaurea Buriola
Software libero nei sistemi embedded
Digitalizzazione audio-dal segnale analogico allo streaming
SLIDES PRESENTAZION LEZIONE 1 ARDUINO.pdf
Architettura dell'Elaboratore Elettronico (Computer)
SOFREL S4W - La telegestione 4.0 per reti idriche connesse
DHow2 - L4
Ad

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