Corso di Laurea Ingegneria dell’Informazione Sistemi a Microprocessore Digital Signal Processor (DSP) A.A. 2007-2008 Prof. Ing. Ivan Bruno Introduzione Il processore digitale di segnale DSP rappresenta una specializzazione architetturale e funzionale dei sistemi di elaborazione, progettata per elaborare, in formato digitalizzato, segnali di qualsiasi natura (comunicazioni elettriche, sensori di misura, ecc.) ad un rapporto costo/prestazioni il più favorevole possibile. Dalla sua introduzione, questo tipo di componente è stato utilizzato in prevalenza nei campi in cui l’esecuzione estremamente veloce di elaborazioni complesse su segnali è un requisito importante, come ad esempio: telefonia mobile audio e video digitale settori del controllo automatico (azionamenti di motori elettrici, robotica) 07/12/2007 Sistemi a Microprocessore A.A. 20072008 2 1 Esempi Schema a blocchi di applicazione DSP per elaborazione del segnale in una videocamera digitale (fonte Texas Instruments) 07/12/2007 Sistemi a Microprocessore A.A. 20072008 3 Esempi Schema a blocchi di applicazione DSP per telefonia cellulare (fonte Texas Instruments) 07/12/2007 Sistemi a Microprocessore A.A. 20072008 4 2 Schema a blocchi di un generico DSP 07/12/2007 Sistemi a Microprocessore A.A. 20072008 5 Schema a blocchi di un generico DSP Come si vede, le componenti integrate sul chip sono analoghe a quelle analizzate durante la descrizione dei microcontrollori. Inoltre, è importante osservare che per i Digital Signal Processor il bus dati e il bus istruzioni sono quasi sempre separati. Come descritto in precedenza, questa tipologia di architettura, detta di Harvard, ha il notevole vantaggio di ridurre i tempi di esecuzione per istruzione rispetto alla tradizionale architettura di Von Neumann (istruzioni e dati sullo stesso bus). 07/12/2007 Sistemi a Microprocessore A.A. 20072008 6 3 Schema a blocchi di un generico DSP Tuttavia, la sola scelta dell’architettura di tipo Harvard non spiega completamente l’orientamento del DSP all’elaborazione di segnali. Per capire la particolarità di questi processori occorre anzitutto considerare quali sono le operazioni necessarie nelle applicazioni che richiedono DSP, le quali si possono ricondurre sostanzialmente alle categorie di filtraggio e convoluzione (FFT, modulazioni, demodulazioni, ecc.). In entrambi i casi, il processore deve eseguire un grande numero di operazioni aritmetiche di moltiplicazione e somma. 07/12/2007 Sistemi a Microprocessore A.A. 20072008 7 Motivo d’impiego dei DSP Ad esempio, i filtri digitali sono descrivibili tramite funzioni di trasferimento espresse secondo le Z-trasformate, in forma razionale fratta del tipo (m < n): o, più spesso, in forme nelle quali compaiono solo potenze di z−1: Dato che z−1 rappresenta l’operatore “ritardo unitario”, corrispondente ad un periodo di campionamento, quest’ultima forma può essere facilmente convertita in una equazione alle differenze, cioè l’operazione che viene effettivamente eseguita dal processore sui valori campionati agli istanti k, k−1, k−2 ecc., del segnale in ingresso (m valori, u(k), u(k−1), ecc.) e del segnale filtrato in uscita (n valori, y(k), y(k−1), ecc.): 07/12/2007 Sistemi a Microprocessore A.A. 20072008 8 4 Motivo d’impiego dei DSP se l’ordine del filtro è molto elevato, ad ogni istante di campionamento occorre eseguire un gran numero di moltiplicazioni, sommando nel contempo tutti i risultati. Pertanto, l’obiettivo di progetto di un processore di tipo DSP è massimizzare l’efficienza di esecuzione di queste operazioni, integrando nel componente dei blocchi moltiplicatori hardware, affiancati alla tradizionale ALU, in modo tale da poter addirittura eseguire una moltiplicazione ed una somma (“accumulazione”) in parallelo nello stesso ciclo macchina, grazie a particolari istruzioni chiamate Multiply/Accumulate (MAC). 07/12/2007 Sistemi a Microprocessore A.A. 20072008 9 Motivo d’impiego dei DSP Inoltre, per ottimizzare la gestione di memoria dei campioni, i DSP permettono di utilizzare dei metodi di indirizzamento specifici per l’implementazione di buffer circolari di dimensione programmabile, che sono particolari strutture dati molto efficienti per la memorizzazione di “finestre temporali” di campioni: La corretta gestione della struttura dati, in particolare l’avanzamento del puntatore in relazione all’acquisizione di nuovi campioni, avviene direttamente via hardware, grazie a istruzioni specifiche dei DSP, senza alcun costo computazionale aggiuntivo. 07/12/2007 Sistemi a Microprocessore A.A. 20072008 10 5 Motivo d’impiego dei DSP La grande capacità dei DSP di realizzare algoritmi che implementano funzioni di trasferimento discrete, anche di ordine elevato, risulta molto appetibile anche nel contesto dei sistemi di controllo. Si pensi, ad esempio, alla realizzazione di un controllo in retroazione con regolatore standard di tipo PID (Proporzionale-Integrale-Derivativo) Considerando la notevole efficienza computazionale nell’eseguire calcoli come quelli sopra descritti, le risorse fornite dai DSP permettono l’implementazione di schemi di controllo anche molto complessi, come quelli richiesti, nei casi di interesse pratico per l’automazione industriale, nel campo degli azionamenti elettrici ad elevate prestazioni 07/12/2007 Sistemi a Microprocessore A.A. 20072008 11 Motivo d’impiego dei DSP DSP per il controllo di motori elettrici (fonte Texas Instruments) 07/12/2007 Sistemi a Microprocessore A.A. 20072008 12 6 Motivo d’impiego dei DSP Il processore può effettivamente farsi carico di un numero molto maggiore di elaborazioni dei segnali elettrici, rispetto a quanto potrebbe fare un microcontrollore con frequenza di clock comparabile, eseguendo compiti di: Filtraggio digitale dei segnali provenienti dai sensori. Trasformazioni di coordinate (trifase-bifase, rotore-statore) necessarie per il controllo di coppia nei motori trifase sincroni (Brushless DC e sinusoidale) e asincroni (AC ad induzione). Algoritmi di compensazione delle oscillazioni di coppia. La coppia erogata da un motore elettrico è tipicamente proporzionale alla corrente fornita dal circuito di alimentazione. Come descritto in precedenza, la modulazione PWM della tensione di alimentazione genera oscillazioni sulla corrente, pertanto anche sulla coppia erogata. Algoritmi di stima del flusso di induzione (Motori AC Asincroni), e addirittura della posizione (controllo senza sensori o sensorless). 07/12/2007 Sistemi a Microprocessore A.A. 20072008 13 Motivo d’impiego dei DSP Pertanto, nello stesso tempo impiegato da un microcontrollore per il solo calcolo dell’algoritmo PID, un DSP può eseguire tutte le elaborazioni sopra citate. 07/12/2007 Sistemi a Microprocessore A.A. 20072008 14 7 Riassunto settore di utilizzo Speech, Audio and Video Compression Gli algoritmi di compressione audio, video e del parlato hanno caratteristiche diverse tra loro e sfruttano parti diverse del segnale acquisito. Esistono DSP dedicati alla compressione dei dati. Filtering Modulation and demodulation Error correction coding and decoding Serco control Audio processing (e.g. surround-sound, noise reduction, equalization, sample rate conversion, echo cancellation, spatialization, etc…) Speech recognition (identificazione vocale) Signal synthesis (e.g. music, speech) 07/12/2007 Sistemi a Microprocessore A.A. 20072008 15 Specifiche per un DSP Un DSP deve essere in grado di: Eseguire processi numerici ripetitivi Fornire una determinata accuratezza numerica Eseguire calcoli in virgola mobile Avere un’elevata velocità di trasferimento dalla/alla memoria Soddisfare i vincoli temporali in un’elaborazione real time 07/12/2007 Sistemi a Microprocessore A.A. 20072008 16 8 Requisiti DSP I processori DSO devono soddisfare le specifiche minimizzando: Costi Dissipazione potenza Uso della memoria Realizzare programmi che usino poca memoria, poiché la memoria è uno dei fattori che incide sul costo Tempo di sviluppo 07/12/2007 L’ottimizzazione di questo parametro non è semplice, occorre una buona conoscenza delle caratteristiche del processore, che non sono note a priori ma, solo conseguentemente al suo utilizzo. La programmazione del DSP spesso è fatta con un linguaggio di basso livello (assembler o direttamento in linguaggio macchina). Questo implica un aumento nel tempo di sviluppo. Se un DSP costa poco non fornisce ambiente e strumenti di sviluppo di alto livello o basso (assembler) Sistemi a Microprocessore A.A. 20072008 17 Scelta del DSP Una delle domande da porsi nella scelta del DSP è quale compito il dispositivo dovrà eseguire. Questo è legata alla scelta dei seguenti parametri FORMATO ARITMETICO Ampiezza formato dati Velocità Frequenza massima di campionamento Organizzazione della memoria Tool di sviluppo disponibili Supporto al multiprocessing Formato dei dati e dinamica delle rappresentazioni numeriche (numero di bit) Æ Precisione Possibilità di usare più processori insieme per estendere la potenza di calcolo Power Comsumption management Costo 07/12/2007 Sistemi a Microprocessore A.A. 20072008 18 9 DSP: Formato aritmetico Due formati possibili: Floating point È più facile da programmare Rappresentazione con esponente e mantissa DSP costoso per la presenza di HW dedicato al Floating point Fixed Point 07/12/2007 Difficoltà di programmazione, per la gestione della precisione Occorre definire la precisione e scalare il dato nella dimensione disponibile per il processore Sistemi a Microprocessore A.A. 20072008 19 DSP: Ampiezza dati L’ampiezza dei dati influisce su: Dimensione del chip e costo Tipi di device connessi (es. memorie) Il DSP non può essere visto come un elemento separato, ma integrato in un contesto con altri device I dati in ingresso/uscita al/dal DSP devono essere compatibili con il formato dei device accessori Precisione/Velocità richiesta dall’applicazione La velocità si può misurare una volta che si è implementata l’applicazione stessa Misure della velocità MIPS LOOP Perfomance Analisi tramiti Benchmark 07/12/2007 Sistemi a Microprocessore A.A. 20072008 20 10 Misure della velocità MIPS (vedi calcolatori) Loop perfomance Quanto tempo impiega un processore ad eseguire un determinato loop Questa misurazione da sola non è sufficiente a determinare le prestazione ma presa in considerazione come valutazione nei benchmark Analisi tramite Benchmark Basata su “nuclei di operazioni” dette FUNZIONI KERNEL come le trasformate o filtri (IIR, convolutional encoders, etc..) Le FK rispecchiano i task dei DSP (ripetitività, onerosità computazionale, numerosi trasferimenti di dati alla memoria Ciascuna FK è detta benchmark 07/12/2007 Sistemi a Microprocessore A.A. 20072008 21 BDTI (Berkley Design Tech. Inc) benchmark Si basa su 11 algoritmi kernel (benchmark set) Su ogni bechmarck si misurano 5 quantità Numero di Cicli Per valutare le prestazioni indipendentemente dal clock rate Tempo di esecuzione Rapporto costo-prestazioni Consumo energetico Uso della memoria 07/12/2007 Sistemi a Microprocessore A.A. 20072008 22 11 DSP: programmazione I tool di sviluppo costituiscono quello che viene chiamato ambiente di sviluppo Esso deve essere fornito dalla casa costruttrice del DSP o affiliata Deve fornire: Compiler Assembler Linker Simulator (versione software del dispositivo DSP usato come “cavia” per lo sviluppo) Debugger Librerie (algoritmi e altro di utilità) In-Circuit Emulator (simulazione diretta via scheda con il DSP vero attraverso un canale di controllo che consente di monitorare lo stato dei registri e della memoria; utile per la comparazione con la simulazione software) Real Time O.S. (sistema operativo real time per applicazioni tempo reale) 07/12/2007 Sistemi a Microprocessore A.A. 20072008 23 07/12/2007 Sistemi a Microprocessore A.A. 20072008 24 12