Politecnico di Milano Digital Signal Processors Mariagiovanna Sami
Le classi di CPU Di tipo generale ad alte prestazioni: Usate per sw di tipo generale Sistemi operativi pesanti - UNIX, NT Workstations, PC Processori Embedded e core in sistemi sul chip (SoC) Un solo programma Sistemi operativi leggeri, spesso di tempo reale Support per l elaborazione digitale di segnale (DSP) terlefoni cellulari, elettronica consumer (es. CD o DVD players) Microcontrollori Bassissimi costo Parola breve spesso 8 bit Altissimo volume di produzione Costi crescenti Volumi di produzione crescenti - 2-2007-
I DSP: Introduzione Elaborazione numerica del segnale (Digital Signal Processing): applicazion di operazioni matematiche a segnali rappresentati in forma numerica come sequenze di campioni I segnali digitali sono ottenuti da quelli fisici mediante trasduttori (es., microfoni) e convertitori analogico-digitali (ADC) I segnali digitali sono riconvertiti in segnali fisici mediante convertitori digitale-analogico (DAC) Digital Signal Processor (DSP): un sistema elettronico che elabora segnali in forma numerica. - 3-2007-
Algoritmi e applicazioni più comuni per DSP Applicazioni: Strumenti a misure Communicazioni Elaborazione audio e video Grafica, 3- D rendering Guida alla navigazione, radar, GPS Controlli - robotica, visione di macchina, guida Algoritmi Filtraggio nel dominio delle frequenze - FIR and IIR Trasformate nel dominio delle frequenze - FFT Correlazione - 4-2007-
Cosa deve fare bene un DSP? La maggior parte dei compiti DSP richiedono: Calcoli numerici ripetitivi Attenzione alla fedeltà numerica Elevata banda di memoria, organizzata prevalentemente in accessi ad array; Elaborazione in tempo reale. I DSP devono operare in modo efficiente e minimizzare: Costo Potenza Uso di memoria Tempo di sviluppo. - 5-2007-
Perché è un settore critico? DSP: tecnologia abilitante per molti tipi di prodotti elettronici; Le operazioni DSP-intensive sono il collo di bottiglia in molte applicazioni dei calcolatori I requisiti computazionali delle operazioni DSPintensive crescono molto rapidamente In molte applicazioni embedded, oggi i microprocessors di tipo generale non sono competitivi con i processori di tipo Mercato che si misura in miliardi di dollari, anche se le singole unità costano pochissimi dollari! - 6-2007-
DSP: le origini I DSP sono un evoluzione degli Analog Signal Processors, che usavano circuiti analogici per trasformare i segnali fisici Si è passati da ASP a DSP perchè I DSP non sono sensibili all ambiente (es., se funziona, la risposta non dipende dalle condizioni climatiche!) Le prestazioni del DSP sono identiche anche a fronte di tolleranze dei componenti; il comportamento dei sistemi analogici dipende fortemente dalle tolleranze dei componenti - 7-2007-
DSP o CPU General Purpose? In genere sui DSP si fa girare un solo programma, non molti programmi sistemi operativi molto più semplici, non si usano memoria virtale o protezioni Sui DSP a volte firano applicazioni di tempo reale stretto, quindi: Si deve render conto di tutto quanto può accadere in un interrvallo di tempo, in particolare di tutti i possibili interrupt o eccezioni (il tempo che potrebbero richiedere deve essere sottratto dall intervallo di tempo) le eccezioni sono da evitare! I DSP hanno un flusso di dati infinito e continuo. - 8-2007-
Caratteristiche comuni a molti DSP Data path configurato per l elaborazione di segnale Insieme di istruzioni specializzato Più banchi di memoria e bus Modi di indirizzamento specializzati Controllo dell esecuzione specializzato Periferiche specializzate per DSP - 9-2007-
Il Data Path di un DSP: l aritmetical I DSP trattano numeri che rappresentano il mondo reale occorrono i numeri reali e le frazioni I DSP trattano numeri che rappresentano indirizzi occorrono i numeri interi Si devono supportare virgola fissa e interi S. -1 x < 1 Punto decimale S. 2 N 1 x < 2 N 1 Punto decimale - 10-2007-
Il Data Path di un DSP: la precisione La lunghezza della parola influenza la precisione dei numeri in virgola fissa; DSP: Parole dati di 16, 20 o 24 bit I DSP dotati di virgola mobile costano da 2 a 4 volte quelli dotati di virgola fiussa e sono più lenti I programmatori di DSP programmers scalano i valori nel programma Librerie SW Esponente esplicito separato Virgola mobile bloccata un solo esponente per un gruppo di frazioni - 11-2007-
Il Data Path di un DSP: e l overflow? l Pensando alla soluzione analogica: che fare quando si raggiunge il fine corsa? (es., alzando il volume dello stereo). Ricorrere all aritmetica in modulo? Il massimo valore positivo è (2 N 1 1), il più negativo è ( 2 N 1 ) : saturazione Si sono sviluppati molti algorimi basandosi su questo modello. - 12-2007-
Il Data Path di un DSP: il moltiplicatore Hardware specializzato che compie tutte le operazioni aritmetiche fondamentali in 1 ciclo 50% delle istruzioni possono coinvolgere il moltiplicatore moltiplicatore con latenza di un solo ciclo Operazione spesso necessaria: multiplyaccumulate (MAC) Moltiplicatore a n-bit prodotto di 2n-bit. - 13-2007-
Il Data Path di un DSP: l accumulatorel Si vuole evitare sia l overflow sia la necessità di scalare l accumulatore Prima opzione: accumulatore più grande del prodotto: bit di guardia Es.: Motorola DSP: 24b x 24b prodotto di 48b, Accumulatore di 56b Seconda opzione: scorrimento a destra e arrotondamento prima dell addizionatore Multiplier Multiplier Shift ALU ALU Accumulator G Accumulator - 14-2007-
Il Data Path di un DSP: l arrotondamento Anche usando i bit di guardia, occorre arrotondare quando si trasferisce il risultato dall accumulatore alla memoria. Ci sono tre opzioni standard: Troncamento: si tagliano i bit meno significativi si polarizza il risultato verso i valori più alti Arrotondamento al valore più prossimo: < 1/2 si arrotonda verso il basso, 1/2 si arrotonda verso l alto (più positivo) la polarizzazione è inferiore Convergente: < 1/2 si arrotonda verso il basso, > 1/2 si arrotonda verso l alto (più positivo), = 1/2 si arrotonda portando a zero il bit meno signioficativo (+1 se 1, +0 se 0) non c è polarizzazione. - 15-2007-
La memoria dei DSP Es.: il filtro FIR richiede più accessi alla memoria il DSP chiede più porte dati della memoria Alcuni DSP hanno tecniche speciali per ridurre la richiesta di banda di memoria: Instruction repeat buffer : si ripete fino a 256 volte un istruzione (utile per i cicli interni) Spesso si disabilita l interrupt, Alcuni DSP nuovi hanno la cache istruzione, possono permettere al programmatore di bloccare ( lock in ) istruzioni nella cache Nessun DSP ha cache dati; possono esserci più memorie dati - 16-2007-
DSP: l indirizzamentol Si usano i modi di indirizzamento standard: immediato, a spiazzamento, indiretto da registro ipotesi: qualsiasi istruzione in più implica ulteriori cicli di clock per i loop interni vanno bene modi di indirizzamento complessi, a patto di non usare il data path per calcolarli! Spesso usato: indirizzamento indiretto da registro con autoincremento/autodecremento lw r1,0(r2)+ => r1 <- M[r2]; r2<-r2+1 Si può usarlo prima dell indirizzamento, con passo positivo o negativo - 17-2007-
L indirizzamento per i DSP: i buffer I DSP trattano I/O continuo Spesso interagiscono con un buffer di I/O (linee di ritardo) Per risparmiare memoria, il buffer è spesso organizzato com un buffer circolare What can do to avoid overhead of address checking instructions for circular buffer? Ogni DSP ha indirizzamento in modulo o circolare addressing Altri modi di indirizzamento consentono di ottimizzare gli accessi ai dati per algoritmi particolari (es. FFT). - 18-2007-
DSP: le istruzioni Si possono specificare più operazioni in una sola istruzione Si deve supportare la Multiply-Accumulate (MAC) Di norma c è speciale supporto per i costrutti di ciclo in modo da ridurre il sovraccarico dovuto ai salti condizionali (es., Loop su un istruzione o una sequenza di istruzioni) Può essere usata aritmetica saturane Può esserci essecuzione condizional o predicata per ridurre i salti condizionati - 19-2007-