Dsp seminario

33
Università Degli Studi Di Genova Corso Di Implementazione Di Linguaggi A.A. 2010/2011 DSPs Digital Signal Processors DSPs Digital Signal Processors PAOLO FARINA 1

Transcript of Dsp seminario

Page 1: 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

Page 2: Dsp seminario

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

Page 3: Dsp seminario

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)

Page 4: Dsp seminario

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

Page 5: Dsp seminario

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

Page 6: Dsp seminario

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

Page 7: Dsp seminario

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.

Page 8: Dsp seminario

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.

Page 9: Dsp seminario

DSP SOFTWARE – STRUTTURA SVILUPPO

AMBIENTE DI SVILUPPO

C/Basic

Compilatore

Scheda Di

Programmazione

9

Assembler

Compilatore

DSP

Page 10: Dsp seminario

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

Page 11: Dsp seminario

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

Page 12: Dsp seminario

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

Page 13: Dsp seminario

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

Page 14: Dsp seminario

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)

Page 15: Dsp seminario

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

Page 16: Dsp seminario

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

Page 17: Dsp seminario

DSPs – Buffer Circolari

17

Page 18: Dsp seminario

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

Page 19: Dsp seminario

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.

Page 20: Dsp seminario

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

Page 21: Dsp seminario

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

Page 22: Dsp seminario

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.

Page 23: Dsp seminario

DSPs – TMS320C6457 Unità Funzionali

23

Page 24: Dsp seminario

DSPs – TMS320C6457 Unità Funzionali

24

Page 25: Dsp seminario

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

Page 26: Dsp seminario

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.

Page 27: Dsp seminario

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

Page 28: Dsp seminario

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

Page 29: Dsp seminario

DSPs – DSPs con FPGA – ALTERA STRATIX V

29

Page 30: Dsp seminario

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.

Page 31: Dsp seminario

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

Page 32: Dsp seminario

DSPs – DSPs con FPGA – XILINX VIRTEX-6 DSP48E1

slice

32

Page 33: Dsp seminario

Grazie per l’attenzione e … … BUONE

FESTE!

33