PROGETTO DI DI SISTEMI DI DI DSP
INTRODUZIONE 2 I primi sistemi di DSP furono sviluppati intorno al 1950 con l obiettivo di simulare sistemi analogici (e testarne le prestazioni) in fase di progettazione, prima dell effettiva creazione di costosi prototipi. pi. I primi sistemi utilizzavano computer digitali e le simulazioni venivano realizzate senza particolari requisiti sulle tempistiche. Intorno al 1970 vennero sviluppate architetture di DSP in grado di ridurre le tempistiche per effettuare operazioni di moltiplicazione one mentre negli anni 80 lo sviluppo della tecnologia N-MOSN portò ad una drastica integrazione dei circuiti elettronici. Questi sviluppi condussero agli attuali dispositivi DSP, realizzati ati come single-chip e in grado di operare in real-time time.
CARATTERISCTICHE DI DIUN SISTEMA DI DIDSP 3 A differenza della altre tipologie di processori, quelli per applicazioni di DSP sono realizzati per riuscire ad operare in real-time time. Hanno quindi caratteristiche uniche quali: Possibilità di realizzare l operazione di moltiplicazione e di somma s (MAC, Multiply/Accumulate) in parallelo in un ciclo di istruzione (utilizzando un moltiplicatore hardware) Realizzare accessi multipli alla memoria in un singolo ciclo di istruzione (ad esempio un processore DSP può caricare una istruzione immagazzinando, inando, simultaneamente, il risultato dell istruzione precedente) Alcuni DSP sono in grado di eseguire processi numerici ripetitivi (tipici delle applicazioni di DSP) I I DSP devono garantire una elevata velocità di trasferimento dalla/alla memoria
METODOLOGIA di di PROGETTO 4 APPLICAZIONE DEFINIZIONE dei REQUISITI di SISTEMA software SELEZIONE del DISPOSITIVO DSP hardware SVILUPPO del PROGRAMMA SVILUPPO dello SCHEMA CORREZIONE del PROGRAMMA PROTOTIPO INTEGRAZIONE del SISTEMA TEST e CORREZIONE del SISTEMA
APPLICAZIONE: : da qui ci si muove per progettare DEFINIZIONE REQUISITI: : e una fase cruciale, da cui dipendono tempi, efficacia e complessita del progetto SELEZIONE DISPOSITIVO: : una fase importante anche per i costi dell oggetto da progettare SVILUPPO PROGRAMMA/SCHEMA: : e la fase realizzativa del S/W e dell H/W CORREZIONE/PROTOTIPO: : e la fase di emendamento di possibili bachi progettuali a livello S/W o H/W INTEGRAZIONE: : il S/W e l H/W vengono interfacciati a comporre l oggetto con le funzioni richieste TEST e DEBUGGING: : verifica ed eventuale correzioni sul sistema integrato 5
SELEZIONE DEL DISPOSITIVO 6 Il processore che viene selezionato necessita di un insieme di strumenti di sviluppo, qui suddivisi in requisiti di base e opzionali. REQUISITI di BASE: Documentazione progettuale dettagliata. Strumenti per lo sviluppo del Programma (S/W) a livello ASSEMBLER oppure ad alto livello. Strumenti per la verifica funzionale del Progetto. Note applicative oppure altro tipo di assistenza per il progetto
7 REQUISITI OPZIONALI: Compilatori di linguaggi ad alto livello per Software modulare (p.e. C, FORTRAN) Librerie applicative Sistemi operativi in tempo reale Strumenti a basso costo per accettare l appropriatezza del dispositivo. Possibilità di verificare l intero sistema in tempo reale e di correggere l hardware prototipazione a basso costo Basso time-to-market attraverso supporti avanzati Ambiente di sviluppo basato su workstation
La scelta del dispositivo viene dettata inoltre da un insieme di requisiti operativi relativi alla specifica applicazione. REQUISITI OPERATIVI : Consumo di potenza, velocità (misurata in MIPS, million instructions per second), memoria, dimensione dei registri di memoria, costi, tempi di sviluppo ecc. Aritmetica utilizzata: Virgola-fissa: i numeri vengono rappresentati come frazioni all interno di un intervallo fisso (processori di bassa potenza e alta velocità dovuta alla semplicità dell aritmetica, la programmazione risulta però più complessa) Virgola-mobile: i numeri vengono rappresentati da una mantissa e un esponente (alto intervallo dinamico per le variabili, facili da programmare ma con un consumo di potenza alto e più lenti rispetto a quelli in virgola-fissa) Dispositivi in virgola-fissa vengono utilizzati per applicazioni di alto-volume (basso costo e bassa potenza) Dispositivi in virgola-mobile vengono utilizzati per applicazioni che richiedono alto range dinamico e alta precisione 8
9 IN AMBIENTE PC: la scelta migliore consiste, in genere, nell acquisto di schede standard (disponibili da case costruttrici come ATLANTA SIGNAL PROCESSOR oppure LOUGHBOROUGH SOUND IMAGES) perchè tale approccio consente: Riduzione del processo di sviluppo al solo progetto di software; Possibili benefici dall uso di sistemi operativi, compilatori C e librerie di routine standard fornite con la scheda stessa.
COME SCRIVERE UN PROGRAMMA DSP 10 Ci sono due metodi per scrivere un programma per dispositivi DSP: impiego del linguaggio assembler impiego del linguaggio ad alto livello Spesso la soluzione ideale è di lavorare con una miscela dei due metodi.
Perché è attraente l impiego di linguaggi ad alto livello? 11 Un linguaggio quale il C è comprensibile per molti ingegneri. Questo rende il programma comprensibile assai di più che scrivendolo in un particolare linguaggio ASSEMBLER I linguaggi assemblativi tendono a essere di tipo mnemonico (sebbene stiano prendendo piede tipologie diverse) Con poche modifiche i linguaggi in C sono trasportabili tra DSP di diversa matrice. I linguaggi ad alto livello offrono un ambiente strutturato per lo sviluppo del software (disponibilità di funzioni, strutture di dati, tipologie di variabili che portano ad una soddisfacente intellegibilità e mantenibilità del software). Il linguaggio ad alto livello più utilizzato per applicazioni di DSP è il C (altri compilatori disponibili sono: ADA, FORTRAN)
Perché è attraente l impiego di linguaggi assemblativi? 12 L uso del compilatore C porta ad una penalizzazione in termini di velocità. Per progettare, infatti, un sistema di DSP il più efficace possibile dal punto di vista del costo è spesso necessario spremere il dispositivo fino all ultima goccia dal punto di vista prestazionale. Questo richiede un software strettamente sagomato sul particolare dispositivo, e dunque, l impiego di un linguaggio più vicino alla macchina. I moderni compilatori C, benchè molto efficienti, non possono sostituire un assembler sagomato. (p.e. un algoritmo di codifica della voce basato su predizione lineare (LPC) può subire una penalizzazione di un fattore 1.5 se realizzato con compilatore C invece che in ASSEMBLER, pur adottando un compilatore C molto efficiente!) La penalizzazione in velocità può essere accettabile o meno, dipende dal particolare sistema. Tipicamente, non è accettabile quando le velocità di campionamento sono alte e/o tra campioni successivi sono necessari parecchi calcoli. LA SOLUZIONE? Una sapiente miscela di C e ASSEMBLER!
13 Tutti i compilatori C per DSP generano uno stadio intermedio in linguaggio assemblativo.. Dunque tutte le routine critiche dal punto di vista temporale possono essere editate a questo punto, ad esempio. L uso combinato di C e linguaggio assemblativo è diventato il modo più diffuso per scrivere il software di un sistema di DSP di larghe dimensioni. Nel tipico software per DSP, la percentuale necessaria di sagomatura atura può essere anche solo del 5 %. Tale percentuale corrisponde, però, alla parte del software dove il processore trascorre la maggior parte del tempo, cioè il cuore dell algoritmo di DSP.
TEST DEL SOFTWARE SVILUPPATO Ci sono due metodologie di base per provare il software per DSP sviluppato: 14 1 - SIMULATORE Gira su PC o workstation e imita il comportamento del dispositivo DSP. L'interfaccia d utente mostra tutti i registri interni I/O, etc, nonché l effetto su di essi prodotto dall esecuzione di ogni istruzione Svantaggio (ovvio!): non succede niente in tempo reale ; dunque il software non può essere provato come nell applicazione finale. Le L operazioni di I/O sono simulate usando file su disco che possono essere scomodi da inizializzare e richiedere parecchia interpretazione.
2 -PIATTAFORMA Può essere sia un modulo di valutazione che un vero emulatore, dove: MODULO DI VALUTAZIONE = è una piattaforma hardware di tipo standard, che generalmente contiene un processore, memoria e I/O analogici, ma che ha possibilità limitate di espansione. E uno strumento appropriato per: prove in tempo reale del software prima che sia disponibile qualunque prototipo hardware del sistema casi di forti limitazioni del budget 15 EMULATORI= = consentono una prova del software in tempo reale nel suo vero contesto di sistema, fornendo una elevata sicurezza sulla la correttezza del comportamento. Sono generalmente utilizzati per provare il software sullo hardware are prototipale (cioè nella fase di integrazione di sistema)
La scrittura e la prova di un software per DSP è un procedimento altamente iterativo: L impiego di un simulatore o di una scheda di valutazione con un PC abbastanza potente consente di provare il software regolarmente man mano che viene scritto. La scrittura del software in moduli o sezioni aiuta la valutazione regolare, dal momento che ciascun modulo può essere valutato separatamente, aumentando così la probabilità che l intero sistema funzioni correttamente rettamente nella fase di integrazione E allora opportuno controllare che il DSP da impiegare abbia un u ASSEMBLER e un LINKER in grado di supportare un software modulare e, librerie a oggetti, etc. E anche importante fare attenzione a quanto è user-friendly il simulatore e le schede di valutazione (interfaccia d utente). 16
PROGETTO HARDWARE 17 I principali requisiti sulla velocità del processore + La dimensione di memoria + Specifiche su I/O + Il supporto di un processore host Vengono esaminati nelle fasi di iniziali di sviluppo
La realizzazione dell applicazione attorno a un particolare DSP è molto dipendente dal tipo di dispositivo e va dunque analizzata caso per caso. Alternative Hardware Gli algoritmi di DSP possono essere realizzati in modo diverso a seconda del tipo di applicazione: 18 applicazione in tempo reale Piattaforme H/W - Chip di DSP General Purpose - Chip DSP Special Purpose - Processori BIT-Slice - Microprocessori non in tempo reale (+ PC, etc)
19 DSP General Purpose: Dispositivi completamente programmabili e, dunque, molto flessibili. Hanno cicli realizzativi rapidi e loro versioni più veloci vengono realizzate a intervalli regolari, in accordo con gli avanzamenti tecnologici e delle tecniche progettuali. Vengono prodotti in grande quantità, portando un basso costo per unità.
Esempi di dispositivi GENERAL PURPOSE della TEXAS INSTRUMENTS ( Famiglia TMS 320) 20 Processore in virgola fissa a 16 bit con architettura Harward (spazi separati per programma e memoria dati) TI TMS320C25 G.P. DEVICE
Esempi di dispositivi GENERAL PURPOSE della TEXAS INSTRUMENTS ( Famiglia TMS 320) 21 Processore in virgola mobile a 32 bit (no Harward arc.) TI TMS 320C30 G.P. DEVICE
DSP Special Puropose: DISPOSITIVI FINALIZZATI A COMPITI PREFISSATI (p.e. filtri FIR, dispositivo per FFT, dispositivo per convoluzioni,, etc.) Prodotti da alcune case costruttrici (p.e. ZORAN; PLESSEY, SGS; THOMSON MICROELECTRONICS (STM), etc.) Si utilizzano quando è richiesto di effettuare una specifica operazione elaborativa con tempistica ridotta. 22 S.P. DSP più veloci di G.P. DSP avendo un architettura dedicata Lo svantaggio di tale approccio è la mancanza di mezzi di sviluppo po di tipo standard, il conseguentemente lungo ciclo progettuale, il costo dei componenti..
BIT-SLICE COMPONENT: Approccio più di tipo G.P. per il progetto di DSP ad alta velocità (caso intermedio). Tali componenti sono dei blocchi di base (componenti moltiplicatori, ALU, etc.) che vengono connessi tra loro per costituire una specifica architettura DSP. 23 MICROPROCESSORI: Ogni Computer per essere utilizzato per DSP e questo, dunque, vale anche per i comuni microprocessori (come i Motorola 68000 e gli Intel i86). Tali dispositivi non hanno l architettura e le caratteristiche on chip richieste per un DSP efficiente (in particolare mancano di un moltiplicatore hardware)! NON SONO UNA SOLUZIONE EFFICACE!
INTEGRAZIONE DI DISISTEMA 24 E una fase chiave per ogni SISTEMA. Costituisce, infatti, la prima p opportunità di provare il S/W con l H/W applicativo Un emulatore globale è il migliore strumento per provare e correggere H/W e S/W, anche se molti progetti perfettamente riusciti sono stati portati a temine senza un emulatore. 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 n la simulazione software