Progettazione di Sistemi DSP Un possibile diagramma di flusso è il seguente: 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 Progetto di sistemi di DSP • 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 Progetto di sistemi di DSP 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 Progetto di sistemi di DSP 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 Progetto di sistemi di DSP OBIETTIVO: selezione di un dispositivo che consenta di: • rispettare la tempisitica del progetto • realizzare la soluzione più efficace dal punto di vista del costo APPLICAZIONNI AD ALTO VOLUME: la scelta cade probabilmente sul dispositivo meno caro in grado di effettuare quanto richiesto. PER APPLICAZIONI A MEDIO E BASSO VOLUME: la scelta è dettata da un compromesso tra costo dello strumento di sviluppo e efficacia/costo del dispositivo. PER APPLICAZIONI A BASSISSIMO VOLUME: è spesso ragionevole scegliere un dispositivo facile da progettare oppure uno con i costi più bassi per gli strumenti di sviluppo. Progetto di sistemi di DSP 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. Progetto di sistemi di DSP ATTENZIONE A ... • E’ possibile che la scelta del dispositivo per il progetto diventi un processo iterativo. Dunque, la prima scelta effettuata può rivelarsi non opportuna per vari motivi: – Problemi imprevisti con il programma – Scoperta di poter impiegare un dispositivo meno caro e meno potente. – Modifica delle specifiche di progetto, con conseguente necessità di rivisitazione della realizzazione prescelta I casi 1. e 2. possono essere evitati con una ricerca profonda e meditata dei dispositivi disponibili. Progetto di sistemi di DSP • Nel progetto di qualsiasi applicazione di DSP, la progettazione software e hardware segue percorsi paralleli. Pertanto: – se come accade in progetti di dimensioni medie o grandi, il S/W e lo H/W non sono responsabilità dello stesso ingegnere, è importante uno scambio continuo ed efficace di informazione tra i due gruppi – quando l'intera fase di progettazione ha avuto inizio, tutti coloro che lavorano nel progetto devono possedere piena conoscenza del dispositivo DSP scelto, in particolare dei suoi: – punti di forza – punti deboli – caratteristiche specifiche Questo può ad esempio ottenersi seguendo corsi di addestramento sul dispositivo, organizzati da molte delle case costruttici (il costo di “training” è compensato dalla riduzione del “time-to-market”, che può essere discriminante sull’efficacia o meno del progetto). Progetto di sistemi di DSP COME SCRIVERE UN PROGRAMMA DSP • 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. Progetto di sistemi di DSP Perché è attraente l’impiego di linguaggi ad alto livello? • 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) Progetto di sistemi di DSP Perché è attraente l’impiego di linguaggi assemblativi? • 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. Progetto di sistemi di DSP • 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! Progetto di sistemi di DSP 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” 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. Progetto di sistemi di DSP • Pur tenendo conto della semplicità nella stesura del software utilizzando un compilatore C, va comunque ricordato che: – Esistono una gran quantità di compilatori C per dispositivi DSP, non tutti soddisfacenti – E’ comunque necessario l’uso di una assemblatore e linker nell'ambito dello sviluppo di software con linguaggio ad alto livello. Progetto di sistemi di DSP TEST DEL SOFTWARE SVILUPPATO Ci sono due metodologie di base per provare il software per DSP sviluppato: 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 operazioni di I/O sono simulate usando file su disco che possono essere scomodi da inizializzare e richiedere parecchia interpretazione. Progetto di sistemi di DSP 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 • EMULATORI= consentono una prova del software in tempo reale nel suo vero contesto di sistema, fornendo una elevata sicurezza sulla correttezza del comportamento. Sono generalmente utilizzati per provare il software sullo hardware prototipale (cioè nella fase di integrazione di Progetto di sistemi di DSP 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 nella fase di integrazione • E’ allora opportuno controllare che il DSP da impiegare abbia un ASSEMBLER e un LINKER in grado di supportare un software modulare , librerie a oggetti, etc. • E’ anche importante fare attenzione a quanto è user-friendly il simulatore e le schede di valutazione (interfaccia d’utente). Progetto di sistemi di DSP PROGETTO HARDWARE 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 Progetto di sistemi di DSP 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: - Chip di DSP “General Purpose” in tempo reale Piattaforme H/W - Chip DSP “Special Purpose” - Processori BIT-Slice applicazione - Microprocessori non in tempo reale (+ PC, etc) Progetto di sistemi di DSP • 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à. Progetto di sistemi di DSP Esempi di dispositivi “GENERAL PURPOSE” della TEXAS INSTRUMENTS ( Famiglia TMS 320) Processore in virgola fissa a 16 bit con architettura Harward (spazi separati per programma e memoria dati) TI TMS320C25 G.P. DEVICE Progetto di sistemi di DSP Esempi di dispositivi “GENERAL PURPOSE” della TEXAS INSTRUMENTS ( Famiglia TMS 320) Processore in virgola mobile a 32 bit (no Harward arc.) TI TMS 320C30 G.P. DEVICE Progetto di sistemi di DSP DSP Special Puropose: DISPOSITIVI FINALIZZATI A COMPITI PREFISSATI (p.e. filtri FIR, dispositivo per FFT, dipsositivo 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. S.P. DSP più veloci di G.P. DSP avendo un’architettura dedicata Lo svantaggio di tale approccio è la mancanza di mezzi di sviluppo di tipo standard, il conseguentemente lungo ciclo progettuale, il costo dei componenti….. Progetto di sistemi di DSP 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. 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! Progetto di sistemi di DSP INTEGRAZIONE DI SISTEMA • E’ una fase chiave per ogni SISTEMA. Costituisce, infatti, la prima 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. Progetto di sistemi di DSP Ci sono due tipi base di emulatori: • I TRADIZIONALI “IN CIRCUIT” (per dispositivi di DSP progettati prima del 1988) • I NUOVI “IN - SYSTEM” (emulatore si comporta da controllore di un dispositivo con possibilità emulative “on chip”). Adatti per alte velocità. Progetto di sistemi di DSP