Progettazione di Sistemi DSP

Slides:



Advertisements
Presentazioni simili
Linguaggio C e C++.
Advertisements

Traduzione ed Interpretazione
Informatica Generale Marzia Buscemi
Dalla scrittura all’esecuzione
I linguaggi di programmazione
Definizione e tipi di implementazione
Linguaggi di programmazione
Hard disk.
DAL MICROPROCESSORE AI SISTEMI EMBEDDED Informatica per lAutomazione II (Informatica B o II) Anno accademico 2008/2009 Prof. Giuseppe Mastronardi Ing.
Dr. Francesco Fabozzi Corso di Informatica
Fondamenti di Informatica
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
1 14. Verifica e Validazione Come assicurarsi che il software corrisponda alle necessità dellutente? Introdurremo i concetti di verifica e validazione.
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Iterazione enumerativa (for)
Politecnico di Milano Algoritmi e Architetture per la Protezione dellInformazione Multichannel Adaptive Information Systems Paolo Maistri Dipartimento.
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
IL PATRIMONIO DI DATI - LE BASI DI DATI. Il patrimonio dei dati Il valore del patrimonio di dati: –Capacità di rispondere alle esigenze informative di.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
Introduzione DSP. Trestino Cosmo Università degli studi di Padova Capitolo 1, Slide 2 Obiettivi della lezione Perché elaborare i segnali in digitale ?
1 2. Analisi degli Algoritmi. 2 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo:
Introduzione ai PLC.
Struttura dei sistemi operativi (panoramica)
Unità Didattica 2 I Linguaggi di Programmazione
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Estensioni allarchitettura di Von Neumann Vito Perrone Corso di Informatica A per Gestionali.
Fondamenti di Informatica1 Software di base Tra il linguaggio macchina (basso livello) e i linguaggi evoluti (alto livello) esiste uno strato di software.
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
Metodologia sviluppo KBS Fabio Sartori 12 ottobre 2005.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
La progettazione di un sistema informatico
Relatore: Prof. Carla VACCHI Correlatore: Ing. Daniele SCARPA
MODULO 01 Il computer.
Il MIO COMPUTER.
PRESENTAZIONE di RICCARDO
Modulo 1 - Concetti di base della Tecnologia dell'Informazione
Introduzione al linguaggio assembly del microprocessore a parte
Introduzione al linguaggio assemby del microprocessore a parte
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
Architettura del calcolatore
VHDL per FPGA Courtesy of S. Mattoccia.
la traduzione dei programmi
10 azioni per lo scheduling su Grid Uno scheduler per Grid deve selezionare le risorse in un ambiente dove non ha il controllo diretto delle risorse locali,
SCHEDA INFORMATIVA DI UNITÀ. Introduzione Applicazione della gerarchia di memoria –Memoria cache fra la CPU e la memoria centrale Il processore vedrà.
SCHEDA INFORMATIVA DI UNITÀ. Introduzione Applicazione della gerarchia di memoria –Memoria cache fra la CPU e la memoria centrale Il processore vedrà.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali (corso TIE) CORSO LAUREA MAGISTRALE IN SCIENZE E TECNOLOGIE DELLE PRODUZIONI ANIMALI.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Sistemi embedded per l’auto: ricevitore GPS
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
L’esecuzione dei programmi
Concetti Fondamentali sulla Programmazione
Master MATITCiclo di vita del Sistema Informativo1 CICLO DI VITA DEL SISTEMA INFORMATIVO.
Il software Claudia Raibulet
Informatica Lezione 6 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Problemi, algoritmi e programmazione
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
PROGETTO DI SISTEMI DI DSP Cosimo Stallo & Paolo Emiliozzi- Modulo di Elaborazione dei Segnali, a.a. 2009/2010.
Tipo Documento: unità didattica 3 Modulo 7 Compilatore: Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione C.Corpo D.Riepilogo.
Click to add text L’ Unità di Elaborazione. Struttura : Unità di controllo: coordina attività CPU ALU: unità aritmetico-logica, esegue operazioni tra.
Implementazioni di un analizzatore di protocollo Esistono quattro fondamentali tradeoff per la realizzazione di un analizzatore di protocollo:  Analisi.
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
1 Informatica di Base Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

Progettazione di Sistemi DSP Un possibile diagramma di flusso è il seguente: software APPLICAZIONE DEFINIZIONE dei REQUISITI di SISTEMA SELEZIONE del DISPOSITIVO DSP INTEGRAZIONE del SISTEMA TEST e CORREZIONE del SISTEMA hardware SVILUPPO del PROGRAMMA SVILUPPO dello SCHEMA CORREZIONE del PROGRAMMA PROTOTIPO Progetto di sistemi di DSP

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

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

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

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

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

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

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

Una sapiente miscela di C e ASSEMBLER! 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

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

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

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 sistema) Progetto di sistemi di DSP

Progetto di sistemi di DSP 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 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

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” - Chip DSP “Special Purpose” - Processori BIT-Slice - Microprocessori in tempo reale Piattaforme H/W applicazione non in tempo reale (+ PC, etc) Progetto di sistemi di DSP

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

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

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

S.P. DSP più veloci di G.P. DSP avendo un’architettura dedicata 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

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