PROGETTO DI DI SISTEMI DI DI DSP

Documenti analoghi
REALIZZAZIONE DI SISTEMI DI ELABORAZIONE NUMERICA DEI SEGNALI. E. Del Re - Fondamenti di Elaborazione Numerica dei Segnali 1

Ingegneria e Tecnologie dei Sistemi di Controllo. Unità di Elaborazione: MicroControllori e DSP

Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP

Introduzione. Caratteristiche generali. Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP

Sistemi a Microprocessore Digital Signal Processor (DSP) A.A Prof. Ing. Ivan Bruno

F SISTEMI DI ELABORAZIONE DIGITALE DEI SEGNALI

Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a Docente: H. Muccini

Il Software programmabili programma algoritmo

Ingegneria dell Informazione F SISTEMI DI ELABORAZIONE DIGITALE DEI SEGNALI

Ingegneria dell Informazione D SISTEMI DI ELABORAZIONE DIGITALE DEI SEGNALI

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

Architettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione

Fondamenti di Informatica e Programmazione. P ro f. G i a n n i D A n g e l o

Lezione 15 Il Set di Istruzioni (1)

Cosa è un programma. Informatica di Base -- R.Gaeta 18

MIPS & SPIM. Modulo del Corso di Architettura degli Elaboratori. Nicola Paoletti. Università di Camerino Scuola di Scienze e Tecnologie

L insieme delle istruzioni (6)

Istruzioni e linguaggio macchina

Sistema Operativo. (hardware e software) della della macchina

Tecnologie dei Sistemi di Automazione

Estensioni all architettura di Von Neumann

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Macchine Astratte. Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari. Linguaggi di Programmazione feb, 2016

L adozione di MATLAB e Simulink nei Corsi di Ingegneria al Politecnico di Milano. Maurizio Magarini MATLAB EXPO Milano, 4 novembre 2014

Macchina di Riferimento: argomenti

Calcolatori Elettronici

Traduzione e interpretazione

Corso di Architettura (Prof. Scarano) 09/04/2002

Progettazione di circuiti integrati

Valutazione delle prestazioni

Valutazione delle prestazioni. Valutazione delle prestazioni. Tempo di risposta e throughput. Prestazioni e tempo di esecuzione

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Calcolo di funzioni non lineari

Laboratorio di Informatica I

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo

Linguaggi di Programmazione

Settimana n.2. Obiettivi Esecuzione di un programma. Tutorial su CodeBlocks e ambiente di sviluppo.

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo. Classificazione. I microcontrollori

Architetture dei sistemi elettronici 14. Il microcontrollore

A.A. 2018/2019. CPU e Linguaggio Macchina FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

I Linguaggi di Programmazione

DEFINIZIONE. particolare l'unità di elaborazione centrale è una tipologia di

Lezione 6. Lezione 6. Moltiplicatori a look-up table. Moltiplicatori a look-up table. Moltiplicatori veloci. Moltiplicatori a look-up table.

Sistemi Informativi Aziendali. Programma del corso

TECNICO SUPERIORE PER L AUTOMAZIONE INDUSTRIALE

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

Ambienti di Sviluppo SW Classici

ESERCITAZIONE Unità centrale di elaborazione Ciclo base di un istruzione Meccanismo di interruzione

Progettazione di circuiti integrati

Unità Didattica 2 I Linguaggi di Programmazione

Architettura del Calcolatore

Componenti di un sistema di acquisizione dati

Indice Capitolo 1 Capitolo 2 Capitolo 3 Capitolo 4 Capitolo 5 Capitolo 6

ISTITUZIONE SCOLASTICA DI ISTRUZIONE TECNICA LYCÉE TECHNIQUE PROGRAMMAZIONE EDUCATIVA E DIDATTICA ANNUALE PER COMPETENZE A.S.

Lezione A0. Presentazione del modulo. Richiami su condizionamento di segnale. Elettronica per l informatica

Istruzioni e linguaggio macchina

Lezione A0 Elettronica per l informatica Indice della lezione A0 Elettronica per l informatica Ruolo di questo corso Obiettivi di questo corso

Il linguaggio di programmazione Python

Modulo 1: Le I.C.T. UD 1.4i: Prestazioni di un Computer

Algoritmo PARTE A: Algoritmi, linguaggi di programmazione e programmi

Laboratorio di Informatica (Chimica)

SERVIZI DI INGEGNERIA ELETTRONICA

INFORMATICA. L informatica comprende:

Lezione 7 Sommatori e Moltiplicatori

Architettura degli elaboratori

Architetture dei Calcolatori (Lettere

Verso Arduino... E oltre!

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

2. Cenni di sistemi operativi

Corso di Architettura (Prof. Scarano) 10/05/2002

A.S. 2015/16 CLASSE 5 AEE MATERIA: T.P.S.E. UNITA DI APPRENDIMENTO 1: AMPLIFICATORI OPERAZIONALI

Marco Tarini - Università dell'insubria A.A. 2016/17. Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate

Linguaggi di alto livello, compilatori e interpreti

pdseln 1 SISTEMI ELETTRONICI Ingegneria dell Informazione Modulo Obiettivi del gruppo di lezioni D Obiettivi di questa lezione (D2)

Calcolo numerico e programmazione Programmazione

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto

Organizzazione strutturata

Assembly. Linguaggio di programmazione corrispondente al linguaggio macchina P.H. Cap. 2.1, 2.2 e App. A. Linguaggio assembly (App.

Modulo 1: Le I.C.T. UD 1.4c: Il Processore

UD 1.4c: Il Processore IL MICROPROCESSORE

Laboratorio di Architettura degli Elaboratori

PECUP ELETTRONICA ED ELETTROTECNICA ELETTROTECNICA SISTEMI AUTOMATICI TERZO COMPETENZE ABILITA' CONOSCENZE

Struttura hw del computer

Linguaggi, compilatori e interpreti

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Lezione 1. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Traduzione ed Interpretazione. Queste sconosciute

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Classe III A. A.s Programma di Informatica 5 ore settimanali (3 laboratorio) Docenti. Prof. Alberto Ferrari Prof.

La ALU. Prof. Alberto Borghese Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Concetti Introduttivi

Informatica 1. 4 Programmazione e Sviluppo del software. ing. Luigi Puzone

STORIA E CARATTERISTICHE

Architettura hardware

LEZIONE 2 Il processore e la memoria centrale

Argomenti. Processori microprogrammati. Architetture CISC Architetture RISC. » Pipeline» Architetture superscalari

Transcript:

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