Dsp seminario
-
Upload
paolo-farina -
Category
Technology
-
view
132 -
download
0
Transcript of Dsp seminario
Università Degli Studi Di GenovaCorso 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 edelaborazione digitale dei segnali che si basa sull'uso diprocessori dedicati, con un elevato grado dispecializzazione.
- 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 delmondo reale è quindi necessario prima convertire il segnale analogico indigitale attraverso un apposito convertitore (ADC – Analog to DigitalConverter) ed eventualmente riconvertire il segnale digitale in segnaleanalogico attraverso un altro convertitore (DAC – Digital to Analog Converter)
DSPADC DACInput Output
SEGNALI DIGITALI E SEGNALI ANALOGICI
SEGNALE ANALOGICO: In generale, un segnale analogico è larappresentazione o trasformazione di una grandezza fisicatramite una sua analoga.
- In elettronica per analogico si intende il modo di rappresentare ilsegnale 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 sonocontinui (infiniti).
- La rappresentazione numerica di una grandezza analogica è quasisempre data da un numero reale (con precisione teoricamenteinfinita) 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 siriferisce a tutto ciò che viene rappresentato con numeri o cheopera manipolando numeri.
SEGNALE DISCRETO: Per segnale discreto o segnale discreto
nel tempo si intende una successione di valori di una certagrandezza dati in corrispondenza di una serie di valori discreti
4
grandezza dati in corrispondenza di una serie di valori discretinel tempo.
SEGNALE DIGITALE: Un segnale digitale è un segnale discretoche può assumere soltanto valori appartenenti ad un insiemediscreto
SIGNAL PROCESSING
I segnali possono essere elaborati in moltissimo modi differenti:
• Conversione: Un segnale analogico è convertito in una sequenzadiscreta di valori rappresentati in modo digitale• Filtraggio: Processo attraverso il quale un segnale viene modificatoalterando le sue componenti e caratteristiche
5
alterando le sue componenti e caratteristiche• Smoothing: consiste nell'applicazione di una funzione di filtro il cuiscopo è evidenziare i pattern significativi, attenuando il rumoregenerato da artefatti ambientali.• Digitalizzazione: è il processo di conversione, che applicato allamisurazione di un fenomeno fisico ne determina il passaggio dalcampo dei valori continui a quello dei valori discreti.• Compressione
• Modulazione
APPLICAZIONI DEL DSP
Il Digital Signal Processing e conseguentemente i DigitalSignal Processors sono utilizzati in un’ampia gamma diapplicazioni 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 usanosolitamente 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 adesempio la creazione di un filtro, tenere presente l’ERRORE associato allarappresentazione dei numeri.
Ciascuno dei tre linguaggi citati è usato in differenti contesti, in relazioneall’esperienza del programmatore e al livello di astrazione a cui si intendegestire le istruzioni.
DSP SOFTWARE - LIVELLI
Un microprocessore DSP è solitamente dotato di moltefunzionalità integrate, per esempio filtri , I/O analogici e I/Odigitali, questo potrà essere programmato in modi differenti, inbase 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 pereseguire in maniera estremamente efficiente sequenze di istruzioniricorrenti (come ad esempio somme, moltiplicazioni e traslazioni) nelcondizionamento 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 (ifA==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 busSolo 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 programmaspecificando dove le informazioni devono essere lette o scritte. Controllano ibuffer 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 inun 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 alposto di loro corrispettivi registri dati in un singolo ciclo di clock. (Usati per ilFast context switching)
DSPs – FIXED versus FLOATING POINT
I Digital Signal Processors possono essere divisi in due categorie, a virgolafissa e a virgola mobile, in riferimento al formato di salvataggio emanipolazione dei dati all’interno del dispositivo.
Fixed point DSPsSolitamente 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 DSPsSolitamente 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 purposeA 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 HarvardVLIW(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, unmicroprocessore dalle funzioni estremamente specializzate in grado di eseguirein 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-PurpouseI/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 funzioni 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 stampcounter è 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 doublewordaddressing 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(FieldProgrammable 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 signalprocessing 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