Lezione 1 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · Simone Buso - Microcontrollori...

40
Simone Buso - Microcontrollori e DSP - Lezione 1 1 Lezione 1 Lezione 1 Sommario Definizione di microcontrollore (mC) Definizione di Digital Signal Processor (DSP) Criteri per il confronto delle prestazioni di mC e DSP Misura delle prestazioni Valutazione critica delle più comuni unità di misura delle prestazioni Sommario Definizione di microcontrollore (mC) Definizione di Digital Signal Processor (DSP) Criteri per il confronto delle prestazioni di mC e DSP Misura delle prestazioni Valutazione critica delle più comuni unità di misura delle prestazioni

Transcript of Lezione 1 - DEIpel/MicroC_e_DSP/Materiale_da_scaricare/Lezioni... · Simone Buso - Microcontrollori...

Simone Buso - Microcontrollori e DSP - Lezione 1 1

Lezione 1Lezione 1Sommario

• Definizione di microcontrollore (mC)• Definizione di Digital Signal Processor

(DSP)• Criteri per il confronto delle prestazioni di

mC e DSP• Misura delle prestazioni• Valutazione critica delle più comuni unità di

misura delle prestazioni

Sommario

• Definizione di microcontrollore (mC)• Definizione di Digital Signal Processor

(DSP)• Criteri per il confronto delle prestazioni di

mC e DSP• Misura delle prestazioni• Valutazione critica delle più comuni unità di

misura delle prestazioni

Simone Buso - Microcontrollori e DSP - Lezione 1 2

Lezione 1Lezione 1Materiale di riferimento

1. D. A. Patterson, J. L. Hennessy, “Computer Organization and Design”, Morgan Kaufmann, cap. 2 pagg. 54 – 102.

2. Berkeley Design Technology, Inc.(BDTi), “Evaluating DSP processor performance”, reperibile sul sito del corso in formato pdf.

3. P. Lapsley, J. Bier, A. Shoham, E.A. Lee, "DSP Processor Fundamentals - Architectures and Features", IEEE Press, New York, 1997, cap. 1.

Materiale di riferimento

1. D. A. Patterson, J. L. Hennessy, “Computer Organization and Design”, Morgan Kaufmann, cap. 2 pagg. 54 – 102.

2. Berkeley Design Technology, Inc.(BDTi), “Evaluating DSP processor performance”, reperibile sul sito del corso in formato pdf.

3. P. Lapsley, J. Bier, A. Shoham, E.A. Lee, "DSP Processor Fundamentals - Architectures and Features", IEEE Press, New York, 1997, cap. 1.

Simone Buso - Microcontrollori e DSP - Lezione 1 3

Microcontrollori (mC)Microcontrollori (mC)Un microcontrollore è un processore ottimizzato per lo svolgimento di compiti di controllo, temporizzazione, supervisione, di apparati o dispositivi. E’ caratterizzato dalla disponibilità “on chip” di memoria (ROM, EEPROM, Flash.. ) e di numerose periferiche, che svolgono diverse funzioni (I/O, conversione A/D, timer, contatori, PWM, …). Inoltre presenta di norma una ridotta complessità di uso e basso costo.

Un microcontrollore è un processore ottimizzato per lo svolgimento di compiti di controllo, temporizzazione, supervisione, di apparati o dispositivi. E’ caratterizzato dalla disponibilità “on chip” di memoria (ROM, EEPROM, Flash.. ) e di numerose periferiche, che svolgono diverse funzioni (I/O, conversione A/D, timer, contatori, PWM, …). Inoltre presenta di norma una ridotta complessità di uso e basso costo.

Simone Buso - Microcontrollori e DSP - Lezione 1 4

Microcontrollori (mC)Microcontrollori (mC)

I microcontrollori permettono la realizzazione su vasta scala e a costi contenuti di funzioni di controllo nei prodotti più diversi in ambito civile e industriale. La riduzione dei costi deriva dalla flessibilità, economicità, e diversificazione dei mC. Esistono unità da 4 a 32 bit, disponibili in differenti packages e con un corredo di periferiche dedicato per ciascuna delle applicazioni più tipiche.

I microcontrollori permettono la realizzazione su vasta scala e a costi contenuti di funzioni di controllo nei prodotti più diversi in ambito civile e industriale. La riduzione dei costi deriva dalla flessibilità, economicità, e diversificazione dei mC. Esistono unità da 4 a 32 bit, disponibili in differenti packages e con un corredo di periferiche dedicato per ciascuna delle applicazioni più tipiche.

Simone Buso - Microcontrollori e DSP - Lezione 1 5

Periferiche più comuni nei mC

• Convertitori A/D (numero di bit, velocità di conversione, linearità molto variabili da modello a modello)

• Timer e contatori• Modulatori PWM• Memorie esterne (ROM, EEPROM, FLASH)• Porte di comunicazione (seriali, I2C, bus di campo)

Periferiche più comuni nei mC

• Convertitori A/D (numero di bit, velocità di conversione, linearità molto variabili da modello a modello)

• Timer e contatori• Modulatori PWM• Memorie esterne (ROM, EEPROM, FLASH)• Porte di comunicazione (seriali, I2C, bus di campo)

Microcontrollori (mC)Microcontrollori (mC)

Simone Buso - Microcontrollori e DSP - Lezione 1 6

Microcontrollori (mC)Microcontrollori (mC)L’uso di mC è molto diffuso nella realizzazione di:• strumenti di misura portatili;• periferiche per PC;• fax/fotocopiatrici;• elettrodomestici;• telefoni cellulari;• applicazioni industriali, in particolare nel settore automotive (strumenti di bordo, centraline) e degli azionamenti elettrici.

L’uso di mC è molto diffuso nella realizzazione di:• strumenti di misura portatili;• periferiche per PC;• fax/fotocopiatrici;• elettrodomestici;• telefoni cellulari;• applicazioni industriali, in particolare nel settore automotive (strumenti di bordo, centraline) e degli azionamenti elettrici.

Simone Buso - Microcontrollori e DSP - Lezione 1 7

Digital Signal Processors (DSP)Digital Signal Processors (DSP)

I DSP sono microprocessori ottimizzati per lo svolgimento efficiente di funzioni di elaborazione numerica del segnale in tempo reale (real-time). Si caratterizzano per le elevate potenze di calcolo e il costo relativamente basso (rispetto a processori per uso generico). Particolare attenzione è rivolta al consumo di potenza (e.g. nelle applicazioni di tipo “embedded”, specialmente se portatili).

I DSP sono microprocessori ottimizzati per lo svolgimento efficiente di funzioni di elaborazione numerica del segnale in tempo reale (real-time). Si caratterizzano per le elevate potenze di calcolo e il costo relativamente basso (rispetto a processori per uso generico). Particolare attenzione è rivolta al consumo di potenza (e.g. nelle applicazioni di tipo “embedded”, specialmente se portatili).

Simone Buso - Microcontrollori e DSP - Lezione 1 8

Digital Signal Processors (DSP)Digital Signal Processors (DSP)Esistono molte famiglie di DSP sul mercato. Presentano alcune caratteristiche comuni:• disponibilità di un circuito moltiplicatore all’interno della CPU (istruzione MAC);

• capacità di operare accessi multipli alla memoria in un singolo ciclo di clock;

• modi di indirizzamento specifici per registri circolari e stack;

• modalità sofisticate per il controllo del flusso del programma (interruzioni);

• presenza di DMA (solo “top di gamma”).

Esistono molte famiglie di DSP sul mercato. Presentano alcune caratteristiche comuni:• disponibilità di un circuito moltiplicatore all’interno della CPU (istruzione MAC);

• capacità di operare accessi multipli alla memoria in un singolo ciclo di clock;

• modi di indirizzamento specifici per registri circolari e stack;

• modalità sofisticate per il controllo del flusso del programma (interruzioni);

• presenza di DMA (solo “top di gamma”).

Simone Buso - Microcontrollori e DSP - Lezione 1 9

Digital Signal Processors (DSP)Digital Signal Processors (DSP)

L’uso primario dei DSP riguarda la realizzazione di funzioni (algoritmi) come:• codifica/decodifica del parlato, di segnali audio (alta fedeltà) e video;

• compressione/decompressione di dati; • criptazione/decriptazione di dati;• mixaggio di segnali audio e/o video;• sintesi del suono.

L’uso primario dei DSP riguarda la realizzazione di funzioni (algoritmi) come:• codifica/decodifica del parlato, di segnali audio (alta fedeltà) e video;

• compressione/decompressione di dati; • criptazione/decriptazione di dati;• mixaggio di segnali audio e/o video;• sintesi del suono.

Simone Buso - Microcontrollori e DSP - Lezione 1 10

DSP vs mCDSP vs mCTradizionalmente, i mC venivano impiegati nello svolgimento di funzioni di controllo data la larga disponibilità di periferiche on-chip. La potenza di calcolo era limitata (CPU a 8 bit o meno, niente moltiplicatore hardware). I DSP, invece, venivano utilizzati quasi esclusivamente per lo svolgimento di funzioni di signal-processing, dove la potenza di calcolo è il parametro chiave.Attualmente questa diversificazione negli usi appare assai più sfumata.

Tradizionalmente, i mC venivano impiegati nello svolgimento di funzioni di controllo data la larga disponibilità di periferiche on-chip. La potenza di calcolo era limitata (CPU a 8 bit o meno, niente moltiplicatore hardware). I DSP, invece, venivano utilizzati quasi esclusivamente per lo svolgimento di funzioni di signal-processing, dove la potenza di calcolo è il parametro chiave.Attualmente questa diversificazione negli usi appare assai più sfumata.

Simone Buso - Microcontrollori e DSP - Lezione 1 11

I DSP più recenti incorporano spesso periferiche tradizionalmente proprie dei mC. D’altro canto, i mC presentano, nelle serie di costo più elevato, organizzazioni hardware e potenze di calcolo sempre più vicine a quelle dei DSP. I costi e le prestazioni sono talvolta (i.e. per alcune applicazioni) molto vicini.

Si pone il problema di confrontare diversi dispositivi per effettuare una scelta.

I DSP più recenti incorporano spesso periferiche tradizionalmente proprie dei mC. D’altro canto, i mC presentano, nelle serie di costo più elevato, organizzazioni hardware e potenze di calcolo sempre più vicine a quelle dei DSP. I costi e le prestazioni sono talvolta (i.e. per alcune applicazioni) molto vicini.

Si pone il problema di confrontare diversi dispositivi per effettuare una scelta.

DSP vs mCDSP vs mC

Simone Buso - Microcontrollori e DSP - Lezione 1 12

I parametri fondamentali nel confronto sono, ovviamente, costo e prestazioni.L’obiettivo di ogni progetto è ottenere le funzionalità richieste per il prodotto al minimo costo complessivo.Questo non è determinato solamente dal costo dei dispositivi utilizzati, ma anche dal tempo necessario a completare lo sviluppo del prodotto (time to market).

I parametri fondamentali nel confronto sono, ovviamente, costo e prestazioni.L’obiettivo di ogni progetto è ottenere le funzionalità richieste per il prodotto al minimo costo complessivo.Questo non è determinato solamente dal costo dei dispositivi utilizzati, ma anche dal tempo necessario a completare lo sviluppo del prodotto (time to market).

DSP vs mCDSP vs mC

Simone Buso - Microcontrollori e DSP - Lezione 1 13

Il costo dei dispositivi è largamente determinato dal volume di produzione.Il tempo e le risorse necessarie allo sviluppo dell’applicazione sono invece funzione di molti fattori, tra i quali:• la disponibilità di sistemi di sviluppo di buona qualità;

• un efficace supporto da parte del costruttore del dispositivo utilizzato.

Il costo dei dispositivi è largamente determinato dal volume di produzione.Il tempo e le risorse necessarie allo sviluppo dell’applicazione sono invece funzione di molti fattori, tra i quali:• la disponibilità di sistemi di sviluppo di buona qualità;

• un efficace supporto da parte del costruttore del dispositivo utilizzato.

DSP vs mCDSP vs mC

Simone Buso - Microcontrollori e DSP - Lezione 1 14

L’applicazione fissa il livello di prestazionirichiesto al processore in termini di:

• periferiche necessarie e loro caratteristiche (e.g. convertitore A/D a 8, 10 o 12 bit);

• condizioni di funzionamento (e.g. massimo consumo di potenza ammissibile, temperatura);

• potenza di calcolo richiesta (controllo realtime, signal processing …).

L’applicazione fissa il livello di prestazionirichiesto al processore in termini di:

• periferiche necessarie e loro caratteristiche (e.g. convertitore A/D a 8, 10 o 12 bit);

• condizioni di funzionamento (e.g. massimo consumo di potenza ammissibile, temperatura);

• potenza di calcolo richiesta (controllo realtime, signal processing …).

DSP vs mCDSP vs mC

Simone Buso - Microcontrollori e DSP - Lezione 1 15

Misura delle prestazioniMisura delle prestazioni

Le prestazioni di un processore si valutano in termini di tempo richiesto per l’esecuzione di un dato programma.

Nel caso di un mC o DSP questo, nei casi più comuni, coincide con il tempo che il processore effettivamente dedica al programma (tempo di calcolo), non essendo molto comune la presenza di un sistema operativo che gestisca più processi in time-sharing.

Le prestazioni di un processore si valutano in termini di tempo richiesto per l’esecuzione di un dato programma.

Nel caso di un mC o DSP questo, nei casi più comuni, coincide con il tempo che il processore effettivamente dedica al programma (tempo di calcolo), non essendo molto comune la presenza di un sistema operativo che gestisca più processi in time-sharing.

Simone Buso - Microcontrollori e DSP - Lezione 1 16

Stima del tempo di calcoloStima del tempo di calcolo

Il tempo di calcolo richiesto da un programma è un parametro chiave nelle applicazioni che comportano attività di signal-processing e/o controllo real time. La sua stima può essere ottenuta sulla base di alcuni dati fondamentali:

• periodo di clock del processore;

• numero di cicli richiesto dalle istruzioni di uso più comune nel programma;

• numero di istruzioni (per ciascun tipo) richiesto dal programma.

Il tempo di calcolo richiesto da un programma è un parametro chiave nelle applicazioni che comportano attività di signal-processing e/o controllo real time. La sua stima può essere ottenuta sulla base di alcuni dati fondamentali:

• periodo di clock del processore;

• numero di cicli richiesto dalle istruzioni di uso più comune nel programma;

• numero di istruzioni (per ciascun tipo) richiesto dal programma.

Simone Buso - Microcontrollori e DSP - Lezione 1 17

Il periodo di clock (o tempo di ciclo) e il numero di cicli richiesto dalle istruzioni di interesse possono essere ricavati leggendo il datasheet/manuale del processore.

Il numero di istruzioni richiesto da un dato programma dipende dall’architettura del processore.

Per architettura si intende l’insieme delle risorse disponibili al programmatore per la realizzazione del suo codice.

Il periodo di clock (o tempo di ciclo) e il numero di cicli richiesto dalle istruzioni di interesse possono essere ricavati leggendo il datasheet/manuale del processore.

Il numero di istruzioni richiesto da un dato programma dipende dall’architettura del processore.

Per architettura si intende l’insieme delle risorse disponibili al programmatore per la realizzazione del suo codice.

Stima del tempo di calcoloStima del tempo di calcolo

Simone Buso - Microcontrollori e DSP - Lezione 1 18

Una data architettura può essere realizzata in modi molto diversi a livello hardware.

Si parla quindi di organizzazione del processore per indicare la particolare realizzazione della sua architettura.

L’architettura ha un effetto diretto sul numero di istruzioni di un dato programma, l’organizzazione invece ha effetto sul tempo di ciclo e sul numero di cicli richiesto dalle istruzioni.

Una data architettura può essere realizzata in modi molto diversi a livello hardware.

Si parla quindi di organizzazione del processore per indicare la particolare realizzazione della sua architettura.

L’architettura ha un effetto diretto sul numero di istruzioni di un dato programma, l’organizzazione invece ha effetto sul tempo di ciclo e sul numero di cicli richiesto dalle istruzioni.

Stima del tempo di calcoloStima del tempo di calcolo

Simone Buso - Microcontrollori e DSP - Lezione 1 19

Il tempo di calcolo di un dato programma è quindi stimabile tramite una relazione del tipo della seguente:

Il tempo di calcolo di un dato programma è quindi stimabile tramite una relazione del tipo della seguente:

∑=

⋅⋅=clN

1iiiclkcal NCNTT ∑

=⋅⋅=

clN

1iiiclkcal NCNTT

dove Tclk è il periodo di clock del processore, Ni è il numero di istruzioni di tipo i, NCi è il numero medio di cicli richiesto dalle istruzioni di tipo i, Ncl è il numero di classi di istruzioni considerato.

dove Tclk è il periodo di clock del processore, Ni è il numero di istruzioni di tipo i, NCi è il numero medio di cicli richiesto dalle istruzioni di tipo i, Ncl è il numero di classi di istruzioni considerato.

(1)(1)

Stima del tempo di calcoloStima del tempo di calcolo

Simone Buso - Microcontrollori e DSP - Lezione 1 20

La relazione (1) assume che il programma non venga interrotto nella sua esecuzione da altri processi e trascura i ritardi dovuti alla gestione della memoria.

Si vede allora che aumentare la velocità di un processore può significare:

• ridurre il suo tempo di ciclo (Tclk);

• ridurre il numero di cicli richiesto dalle istruzioni di uso più comune (NC);

• ridurre il numero di istruzioni richiesto.

La relazione (1) assume che il programma non venga interrotto nella sua esecuzione da altri processi e trascura i ritardi dovuti alla gestione della memoria.

Si vede allora che aumentare la velocità di un processore può significare:

• ridurre il suo tempo di ciclo (Tclk);

• ridurre il numero di cicli richiesto dalle istruzioni di uso più comune (NC);

• ridurre il numero di istruzioni richiesto.

Stima del tempo di calcoloStima del tempo di calcolo

Simone Buso - Microcontrollori e DSP - Lezione 1 21

Limiti di velocità!Limiti di velocità!La riduzione del tempo di ciclo si accompagna ad un incremento della potenza dissipata dal processore.

Questa può essere limitata dalla riduzionedella tensione di alimentazione.

Ciò spiega l’attuale “corsa” verso processori alimentati a tensioni molto basse (<1V).

I limiti sono essenzialmente tecnologici(servono processi/materiali innovativi).

La riduzione del tempo di ciclo si accompagna ad un incremento della potenza dissipata dal processore.

Questa può essere limitata dalla riduzionedella tensione di alimentazione.

Ciò spiega l’attuale “corsa” verso processori alimentati a tensioni molto basse (<1V).

I limiti sono essenzialmente tecnologici(servono processi/materiali innovativi).

Simone Buso - Microcontrollori e DSP - Lezione 1 22

Limiti di velocità!Limiti di velocità!

La riduzione del numero di cicli per istruzione richiede una organizzazione hardware del processore più complessa, e.g. a controllo cablato piuttosto che micro-programmato, con maggiori caratteristiche di parallelismo (ottenibile in diverse maniere) o facente uso di pipeline.

Ciò porta verso processori complessi e di costo elevato. Il limite è essenzialmente “economico”.

La riduzione del numero di cicli per istruzione richiede una organizzazione hardware del processore più complessa, e.g. a controllo cablato piuttosto che micro-programmato, con maggiori caratteristiche di parallelismo (ottenibile in diverse maniere) o facente uso di pipeline.

Ciò porta verso processori complessi e di costo elevato. Il limite è essenzialmente “economico”.

Simone Buso - Microcontrollori e DSP - Lezione 1 23

Limiti di velocità!Limiti di velocità!

Il numero di istruzioni necessarie a realizzare un certo programma dipende dall’architetturadel processore, ovvero dalle risorse a disposizione del programmatore e/o del compilatore.

La sua riduzione porta verso architetture con istruzioni complesse (CISC), rispetto a quelle con istruzioni semplici e in numero ridotto (RISC). Questo di nuovo influisce sulla organizzazione del processore e sul suo costo.

Il numero di istruzioni necessarie a realizzare un certo programma dipende dall’architetturadel processore, ovvero dalle risorse a disposizione del programmatore e/o del compilatore.

La sua riduzione porta verso architetture con istruzioni complesse (CISC), rispetto a quelle con istruzioni semplici e in numero ridotto (RISC). Questo di nuovo influisce sulla organizzazione del processore e sul suo costo.

Simone Buso - Microcontrollori e DSP - Lezione 1 24

Massimizzare le prestazioniMassimizzare le prestazioni

Le prestazioni di un processore dipendono sia dalla sua architettura logica che dalla sua organizzazione hardware.

La massimizzazione delle prestazioni richiede una progettazione coordinata delle due.

Il problema è ulteriormente complicato dalla presenza di vincoli come:

• costo;

• consumo di potenza elettrica.

Le prestazioni di un processore dipendono sia dalla sua architettura logica che dalla sua organizzazione hardware.

La massimizzazione delle prestazioni richiede una progettazione coordinata delle due.

Il problema è ulteriormente complicato dalla presenza di vincoli come:

• costo;

• consumo di potenza elettrica.

Simone Buso - Microcontrollori e DSP - Lezione 1 25

Misura delle prestazioniMisura delle prestazioniUn modo diffuso di valutare le prestazioni dei processori per uso generico è attraverso il benchmarking, ovvero l’uso di programmi campione. Questo metodo ha il vantaggio di valutare globalmente le prestazioni di un processore, includendo anche la gestione della memoria.

Attualmente questa tecnica viene applicata anche ai DSP. I programmi che vengono presi in considerazione sono tipici algoritmi per signal-processing (FFT, filtri FIR, IIR etc.).

Un modo diffuso di valutare le prestazioni dei processori per uso generico è attraverso il benchmarking, ovvero l’uso di programmi campione. Questo metodo ha il vantaggio di valutare globalmente le prestazioni di un processore, includendo anche la gestione della memoria.

Attualmente questa tecnica viene applicata anche ai DSP. I programmi che vengono presi in considerazione sono tipici algoritmi per signal-processing (FFT, filtri FIR, IIR etc.).

Simone Buso - Microcontrollori e DSP - Lezione 1 26

Misura delle prestazioniMisura delle prestazioniIl modo usuale di operare il benchmarking per processori “general purpose” fa uso di applicazioni complete (e.g. metodo SPEC).

Questo approccio è inapplicabile ai DSP perché tende a valutare l’insieme compilatore - processore, più che il solo processore.

Inoltre rende molto difficile qualunque ottimizzazione e spesso anche la realizzazione di confronti a parità di condizioni.

Per i DSP si parla di kernel benchmarking.

Il modo usuale di operare il benchmarking per processori “general purpose” fa uso di applicazioni complete (e.g. metodo SPEC).

Questo approccio è inapplicabile ai DSP perché tende a valutare l’insieme compilatore - processore, più che il solo processore.

Inoltre rende molto difficile qualunque ottimizzazione e spesso anche la realizzazione di confronti a parità di condizioni.

Per i DSP si parla di kernel benchmarking.

Simone Buso - Microcontrollori e DSP - Lezione 1 27

DSP BenchmarkingDSP BenchmarkingI codici di benchmarking devono presentare 4 caratteristiche di base:

1) rilevanza rispetto alle tipiche applicazioni del DSP;

2) facilità di definizione univoca (ad es. quale tipo di algoritmo FFT si considera);

3) semplicità;

4) ottimizzazione: devono poter essere rapidamente ottimizzati per ciascun DSP sotto test.

I codici di benchmarking devono presentare 4 caratteristiche di base:

1) rilevanza rispetto alle tipiche applicazioni del DSP;

2) facilità di definizione univoca (ad es. quale tipo di algoritmo FFT si considera);

3) semplicità;

4) ottimizzazione: devono poter essere rapidamente ottimizzati per ciascun DSP sotto test.

Simone Buso - Microcontrollori e DSP - Lezione 1 28

Esistono sul mercato, ma sono piuttosto costosi (>2000 Euro), cataloghi che forniscono i benchmark relativi ai DSP più diffusi.

Esistono sul mercato, ma sono piuttosto costosi (>2000 Euro), cataloghi che forniscono i benchmark relativi ai DSP più diffusi.

DSP BenchmarkingDSP Benchmarking

Simone Buso - Microcontrollori e DSP - Lezione 1 29

Indici di prestazioniIndici di prestazioniIndici comuni di prestazioni sono i seguenti:

• MACS: operazioni MAC al secondo

• MIPS: milioni di istruzioni al secondo

• MOPS: milioni di operazioni al secondo

• FLOPS: milioni di operazioni a virgola mobile al secondo

Tutti forniscono indicazioni molto poco affidabili sulla velocità di un processore. Certamente non permettono confronti tra dispositivi di famiglie diverse.

Indici comuni di prestazioni sono i seguenti:

• MACS: operazioni MAC al secondo

• MIPS: milioni di istruzioni al secondo

• MOPS: milioni di operazioni al secondo

• FLOPS: milioni di operazioni a virgola mobile al secondo

Tutti forniscono indicazioni molto poco affidabili sulla velocità di un processore. Certamente non permettono confronti tra dispositivi di famiglie diverse.

Simone Buso - Microcontrollori e DSP - Lezione 1 30

Indici di prestazioniIndici di prestazioniL’indice MACS esprime il massimo numero di moltiplicazioni (con somma sull’accumulatore) che una CPU è in grado di operare nell’unità di tempo (valore di picco).

Nella normale attività di un DSP intervengono però anche altri tipi di operazioni (e.g. somme semplici, accessi alla memoria, etc. ), in misura non facilmente quantificabile.

L’indice non è quindi rappresentativo della reale velocità del processore in una tipica applicazione.

L’indice MACS esprime il massimo numero di moltiplicazioni (con somma sull’accumulatore) che una CPU è in grado di operare nell’unità di tempo (valore di picco).

Nella normale attività di un DSP intervengono però anche altri tipi di operazioni (e.g. somme semplici, accessi alla memoria, etc. ), in misura non facilmente quantificabile.

L’indice non è quindi rappresentativo della reale velocità del processore in una tipica applicazione.

Simone Buso - Microcontrollori e DSP - Lezione 1 31

Indici di prestazioniIndici di prestazioniL’indice MIPS indica il massimo numero di istruzioni che una CPU è in grado di operare nell’unità di tempo (valore di picco).

Il numero di istruzioni richiesto da una certa funzione dipende dall’architettura della CPU (la quantità di lavoro svolto da una istruzione può essere molto diverso da CPU a CPU) e dalla qualità del compilatore.

L’indice permette al più di confrontare dispositivi con la stessa architettura di base.

L’indice MIPS indica il massimo numero di istruzioni che una CPU è in grado di operare nell’unità di tempo (valore di picco).

Il numero di istruzioni richiesto da una certa funzione dipende dall’architettura della CPU (la quantità di lavoro svolto da una istruzione può essere molto diverso da CPU a CPU) e dalla qualità del compilatore.

L’indice permette al più di confrontare dispositivi con la stessa architettura di base.

Simone Buso - Microcontrollori e DSP - Lezione 1 32

Indici di prestazioniIndici di prestazioniL’indice MOPS esprime il massimo numero di operazioni che una CPU è in grado di operare nell’unità di tempo (valore di picco).

La sua stessa definizione è ambigua in quanto non si definisce univocamente cosa sia un’operazione e quanto lavoro un’operazione sia in grado di svolgere o quale sia il set di operazioni di riferimento.

La significatività di questo indice è quindi molto bassa.

L’indice MOPS esprime il massimo numero di operazioni che una CPU è in grado di operare nell’unità di tempo (valore di picco).

La sua stessa definizione è ambigua in quanto non si definisce univocamente cosa sia un’operazione e quanto lavoro un’operazione sia in grado di svolgere o quale sia il set di operazioni di riferimento.

La significatività di questo indice è quindi molto bassa.

Simone Buso - Microcontrollori e DSP - Lezione 1 33

Indici di prestazioniIndici di prestazioniL’indice FLOPS indica il massimo numero di operazioni a virgola mobile che una CPU è in grado di operare nell’unità di tempo (valore di picco).

Chiaramente la sua validità è la stessa dell’indice MOPS, ulteriormente ristretta perché applicabile solo a processori con aritmetica a virgola mobile.

Nessuno degli indici citati considera poi aspetti essenziali per le prestazioni di una CPU, e.g. la velocità degli accessi in memoria.

L’indice FLOPS indica il massimo numero di operazioni a virgola mobile che una CPU è in grado di operare nell’unità di tempo (valore di picco).

Chiaramente la sua validità è la stessa dell’indice MOPS, ulteriormente ristretta perché applicabile solo a processori con aritmetica a virgola mobile.

Nessuno degli indici citati considera poi aspetti essenziali per le prestazioni di una CPU, e.g. la velocità degli accessi in memoria.

Simone Buso - Microcontrollori e DSP - Lezione 1 34

Esempio: MIPS vs Tempo di calcoloEsempio: MIPS vs Tempo di calcolo

3C2B1A

Numero medio di cicli (NC)Classi di istruzioni

Un processore dispone di 3 classi di istruzioni. Ciascuna classe richiede un differente numero medio di cicli di clock. Un dato programma avrà un certo numero di istruzioni per ciascuna classe (dipendente dal compilatore).

Un processore dispone di 3 classi di istruzioni. Ciascuna classe richiede un differente numero medio di cicli di clock. Un dato programma avrà un certo numero di istruzioni per ciascuna classe (dipendente dal compilatore).

Simone Buso - Microcontrollori e DSP - Lezione 1 35

Esempio: MIPS vs Tempo di calcoloEsempio: MIPS vs Tempo di calcolo

Due diversi compilatori/programmatori organizzano il codice in modo diverso, usando un numero diverso di istruzioni e distribuendole diversamente nelle varie classi.

Due diversi compilatori/programmatori organizzano il codice in modo diverso, usando un numero diverso di istruzioni e distribuendole diversamente nelle varie classi.

111021151CBA

Compilatore / Programmatore

Numero istruzioni per classe (in centinaia)

Simone Buso - Microcontrollori e DSP - Lezione 1 36

Esempio: MIPS vs Tempo di calcoloEsempio: MIPS vs Tempo di calcolo

Applicando la (1) siamo in grado di valutare il tempo di calcolo per i due codici. Risulta:

Tcal1 = Tclk·100·(5·1+1·2+1·3) = 1000·Tclk

Tcal2 = Tclk·100·(10·1+1·2+1·3) = 1500·Tclk

Il secondo codice ha un tempo di esecuzione più lungo del 50% rispetto al primo. E’ quindi decisamente più lento del primo.

Applicando la (1) siamo in grado di valutare il tempo di calcolo per i due codici. Risulta:

Tcal1 = Tclk·100·(5·1+1·2+1·3) = 1000·Tclk

Tcal2 = Tclk·100·(10·1+1·2+1·3) = 1500·Tclk

Il secondo codice ha un tempo di esecuzione più lungo del 50% rispetto al primo. E’ quindi decisamente più lento del primo.

Simone Buso - Microcontrollori e DSP - Lezione 1 37

Esempio: MIPS vs Tempo di calcoloEsempio: MIPS vs Tempo di calcoloValutando l’indice MIPS per le due situazioni troviamo:

MIPS1 = 10-6·100·(5+1+1)/(1000·Tclk) =

0.7 ·Fclk·10-6

MIPS2 = 10-6·100·(10+1+1)/(1500·Tclk) =

0.8·Fclk ·10-6

Il secondo codice ha un indice MIPS più alto del primo e quindi sembrerebbe risultare più veloce!

Valutando l’indice MIPS per le due situazioni troviamo:

MIPS1 = 10-6·100·(5+1+1)/(1000·Tclk) =

0.7 ·Fclk·10-6

MIPS2 = 10-6·100·(10+1+1)/(1500·Tclk) =

0.8·Fclk ·10-6

Il secondo codice ha un indice MIPS più alto del primo e quindi sembrerebbe risultare più veloce!

Simone Buso - Microcontrollori e DSP - Lezione 1 38

Esempio: Data-sheetEsempio: Data-sheet

Il costruttore dichiara una velocità massima di 30MIPS (Fclk = 40 MHz)

Il costruttore dichiara una velocità massima di 30MIPS (Fclk = 40 MHz)

Simone Buso - Microcontrollori e DSP - Lezione 1 39

Esempio: Data-sheetEsempio: Data-sheet

Il costruttore dichiara una velocità massima di 8000 MIPS!Ma qui Fclk = 1000 MHz!

Il costruttore dichiara una velocità massima di 8000 MIPS!Ma qui Fclk = 1000 MHz!

Simone Buso - Microcontrollori e DSP - Lezione 1 40

Esempio: Data-sheetEsempio: Data-sheet

Il costruttore dichiara una velocità massima di 40MIPS (Fclk = 80 MHz).

Il costruttore dichiara una velocità massima di 40MIPS (Fclk = 80 MHz).