• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Dsp seminario
 

Dsp seminario

on

  • 164 views

 

Statistics

Views

Total Views
164
Views on SlideShare
164
Embed Views
0

Actions

Likes
0
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Dsp seminario Dsp seminario Presentation Transcript

    • Università Degli Studi Di GenovaCorso Di Implementazione Di LinguaggiA.A. 2010/2011DSPs – Digital Signal ProcessorsDSPs – Digital Signal ProcessorsPAOLO FARINA1
    • DSP – DIGITAL SIGNAL PROCESSINGDIGITAL SIGNAL PROCESSING: è una tecnica di analisi edelaborazione digitale dei segnali che si basa sulluso diprocessori dedicati, con un elevato grado dispecializzazione.- Lo scopo del DSP è di solito la misura o il filtraggio di segnali analogici del2- 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 ANALOGICISEGNALE 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 allinterno di una data apparecchiatura; il segnaleè detto analogico quando i valori utili che lo rappresentano sono3è 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 ANALOGICIDIGITALE: 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 discretonel tempo si intende una successione di valori di una certagrandezza dati in corrispondenza di una serie di valori discreti4grandezza 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 PROCESSINGI segnali possono essere elaborati in moltissimo modidifferenti:• 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 caratteristiche5alterando le sue componenti e caratteristiche• Smoothing: consiste nellapplicazione 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 DSPIl Digital Signal Processing e conseguentemente i DigitalSignal Processors sono utilizzati in un’ampia gamma diapplicazioni e dispositivi.Per esempio:• Telefonia e Fax6• 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 SOFTWAREPer lo sviluppo di applicazioni per il DIGITAL SIGNAL PROCESSING si usanosolitamente gli stessi linguaggi che si usano per le applicazioni scientifiche eingegneristiche: il C, BASIC e il linguaggio ASSEMBLYCiascuno dei tre linguaggi citati è usato in differenti contesti, in relazione7È 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 - LIVELLIUn 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 del8Assembler: che costringe il programmatore a studiare l’architettura interna deldispositivo per scrivere programmi in assembler che usano uno specificoinstruction setCompilatore C: che permette di scrivere programmi in C astraendo dalla specificaarchitettura del processoreSoftware ad alto livello provvisto di librerie specifiche con algoritmi e funzioniprefabbricate, routines di I/O e strumenti per il debugging.
    • DSP SOFTWARE – STRUTTURA SVILUPPOAMBIENTE DI SVILUPPOC/BasicCompilatoreScheda DiProgrammazione9AssemblerCompilatoreDSP
    • DSPs – DIGITAL SIGNAL PROCESSORSIl 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 Matematici10Sistemi Operativi, wordprocessing, gestione di DB,fogli di calcolo, ecc.Elaborazione dei segnalidigitali, controllo di sistemi,simulazioni.Movimentazione di dati (A->B) e Verifica di condizioni (ifA==B then…)vAddizioni (A+B =C)Moltiplicazioni (AxB=C)ApplicazioniTipicheOperazioniPrincipaliMicroprocessori Tradizionali DSP
    • DSPs – ARCHITETTURAArchitettura di Von Neumann: Contiene una sola memoria e un solo bus peril trasferimento dei dati. Per moltiplicare due numeri sono necessari tre ciclidi clock.MemoriaDati e IstruzioniCPUAddress busBus dati11Architettura Harvard: caratterizzata dalla separazione dei dati e dalleistruzioni del programma attraverso bus separati. (Largamente usata)Dati e Istruzioni Bus datiMemoria diProgrammaSolo IstruzioniCPUPM address busPM data busMemoriaDatiSolo datiDM address busDM data bus
    • DSPs – ARCHITETTURAArchitettura Super Harvard: simile all’architettura Harvard ma con l’aggiuntadi funzionalità che ne aumentano il throughput, per esempio con l’aggiuntadi un instruction cache e un I/O controllerMemoria diProgrammaIstruzioni e DatiCPUPM address busPM data busMemoriaDatiDM address busDM data busCache12Instruction Cache: contiene solitamente le ultime n istruzioni del programmae viene utilizzata quando si presentano dei loop.I/O Controller: controller dell’Input/Output per trasferimento dati inmemoria ad alta velocità.Istruzioni e DatiSecondariPM data busSolo datiDM data busCacheIstruzioniI/O ControllerDati
    • DSPs – ARCHITETTURA INTERNAMemoriaProgrammaIstruzioni e DatisecondariMemoriaDatiSolo DatiPM DataAddressGeneratorDM DataAddressGeneratorProgram SequencerInstruction CacheDM address busPM address bus13I/O Controller(DMA)RegistriDatiShifterALUMultiplierPM data busHigh Speed I/O(serial, parrarel, ADC,DAC, ecc.)DM data bus
    • DSPs – ARCHITETTURA INTERNADATA 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.)14MULTIPLIER: 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 POINTI 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 16bit. (Ma anche a 24 bit come alcuni15Fixed point DSPs bit. (Ma anche a 24 bit come alcuniprodotti Motorola)Floating point DSPsSolitamente si utilizza il formato a 32bit. I valori massimo e minimorappresentabili sono rispetivamente:±3.4×10^38 e ±1.2×10^-38
    • DSPs – Buffer CircolariNei DSP viene implementata in hardware la gestione dei buffer circolari persupplire alla carenza di memoria derivante da alcune operazioni. (Lettura delcampione nei filtri FIR)Per la gestione dei Buffer Circolari sono necessari 4 parametri:- Puntatore al primo indirizzo di memoria usato16- Puntatore al primo indirizzo di memoria usato-Puntatore all’ultimo indirizzo- Step- Puntatore al valore più recenteNei DSPs questi parametri sono mappati su appositi registri
    • DSPs – Buffer Circolari17
    • DSPs – In Definitiva• Funzioni general-purpose:– Registri, accumulatore, ALU, etc– Anche dal punto di vista della programmazione si comportano comeprocessori general purposeA cui si aggiungono il supporto per la rapida esecuzione delle istruzioni tipiche delloro dominio18• 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 STORICALe origini dei DSPs risalgono agli anni settanta quando divennerodisponibili i primi computer digitaliIl primo DSPs monolitico venne lanciato sul mercato nel 1978 da Intel (Intel2920), era dotato di Alu priva di moltiplicatore e un’architettura HarvardVLIW(very long instruction word) di 24 bit.19VLIW(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 – TMS320C6457COREGestione memoria esternacon phased-locked loopCoprocessori per leoperazioni di decodificadei segnali.Ethernet Media AccessController interfaccia persupporto standard20supporto standardethernet 10/100/1000TimerGeneral-PurpouseI/O Port
    • DSPs – TMS320C6457 CPULa C64x+CPU consiste in 8 unitàfunzionali 2 register files e 2 data paths:• Le 8 unità funzionali sono in grado dieseguire una istruzione per ogni ciclo dicolck.-.M = operazioni di moltiplicazione21-.M = operazioni di moltiplicazione-.S, .L= possono eseguire svariate funzioni logiche e aritmetiche,.L(ALU) può operare somme esottrazioni in parallelo su unacoppia di input comuni-.D= carica i dati dalla memoria alregistro e salva il risultato dalregistro 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 softwarepipelining loops dove iterazioni multiple di un ciclo sono eseguite in paralleloCompact Instructions: Istruzioni molto comuni possono essere espresse a 16 bit invece che a32.22Exception Handling: aiuta il programmatore nell’isolamento dei bugs.Privilege: definisce 2 livelli di operatività, user e superuser fornendo al sistema operativo unsistema 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à Funzionali23
    • DSPs – TMS320C6457 Unità Funzionali24
    • DSPs – PARTE DELL’INSTRUCTION SETValore AssolutoSomma tra duenumeriSomma tra duenumeri usando ildoublewordaddressing mode25AND logico tradue numeriInverte l’ordinedei bit in unaparola di 32 bit
    • DSPs – DSP con FPGAAl 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 suldesign possono essere implementate in poco tempo.26design possono essere implementate in poco tempo.Costi Bassi: gli FPGA sono prodotti generici prodotti in grandi quantitativi, per cuiil costo è considerevolmente basso.Basso Tempo di Sviluppo: la flessibilità degli FPGA elimina i lunghi cicli per ildesign associati agli ASICs.
    • DSPs – DSPs con FPGACAUSE DELLA LIMITATA DIFFUSIONE:Poca esperienza nell’uso di questi dispositivi per intensa applicazione di calcoloGli algoritmi sviluppati per microprocessori possono essere difficili da tradurre in27Gli algoritmi sviluppati per microprocessori possono essere difficili da tradurre inhardwareScarsa disponibilità di tools per FPGA progettati per lo sviluppo di DSPIl successo di un FPGA DSP è strettamente dipendente dall’esperienza delprogettista soprattutto nello sviluppo di algoritmi per l’efficienza dell’hardware
    • DSPs – DSPs con FPGA – ALTERA STRATIX VL’ALTERA STRATIX V GS è un FPGA ottimizzato per l’implementazione di DSP28Più di 1 milione di elementi logici (Les)Più di 50 Mb di memoriaOttimizzazione delle prestazioni specifiche per le applicazioni di digital signalprocessing a precisione variabile
    • DSPs – DSPs con FPGA – ALTERA STRATIX V29
    • DSPs – DSPs con FPGA – XILINX VIRTEX-6Xilinx Virtex-6 LX240T include:• 769 DSP48E1 slices clocking at 600 MHz• 241K celle logiche•461 blocchi RAMs, 32 Kb ognuno30•461 blocchi RAMs, 32 Kb ognuno•24 buffer driver bidirezionali a bassa potenzaI moduli DSP48E1 sono un’estensione dei moduli DSP48E presenti neiVertex-5 e sono dei Digital Signal Processor pre-implementati sulFPGA.
    • DSPs – DSPs con FPGA – XILINX VIRTEX-6 DSP48E1sliceLe principali caratteristiche del Virtex-6 FPGA DSP48E1 sono:• Pre-Addizionatore a 25-bit con un registro D per migliorare le capacità delpath.• 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 DSP48E1slice32
    • Grazie per l’attenzione e …… BUONEFESTE!33