Calcolatori Elettronici Valutazione delle Prestazioni Francesco Lo Presti Rielaborate da Salvatore Tucci.

Slides:



Advertisements
Presentazioni simili
1 Introduzione ai calcolatori Parte II Software di base.
Advertisements

La struttura fisica e logica di un elaboratore
Time Sharing Il termine “Time Sharing” proviene dall'inglese e significa letteralmente “partizione di tempo”. Questa è una tecnica sviluppatasi negli.
Memoria virtuale Memoria virtuale – separazione della memoria logica dell’utente dalla memoria fisica. Solo alcune parti di un programma devono trovarsi.
5.1 Sistemi operativi Scheduling della CPU Concetti di base Criteri di scheduling Algoritmi di scheduling Scheduling in sistemi con più processori Valutazione.
Scheduling della CPU Concetti di base Criteri di scheduling
MICROCONTROLLORI Di Tiziano Ragazzi.
Modello di simulazione
Architetture dei Calcolatori (Lettere j-z) Il Processore (2)
1 Introduzione Sistema di calcolo (1) Valutazione delle prestazioni (2) Metriche oggettive (3)
1 Introduzione Ottimizzazione di un sistema (per es. di calcolo) (1) Analisi dellimpatto delle varie soluzioni possibili (2) Legge di Amdhal (3) Scelta.
1 Introduzione Sistema di calcolo Valutazione dellimpatto delle varie modifiche sulle prestazioni globali del sistema Modifiche allarchitettura.
1 Introduzione Il concetto di prestazione si presta facilmente a valutazioni soggettive, spesso fuorvianti Metriche di analisi oggettive sono utili per.
SCHEDA INFORMATIVA DI UNITÀ. Introduzione Ottimizzazione SISTEMA DI CALCOLO Costi rilevanti PREVISIONE delleffetto dei MIGLIORAMENTI.
Tipo Documento: unità didattica 0 Modulo 0 Compilatore: ??? Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione C.Corpo D.Riepilogo.
2 Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione dati memorizzazione dati trasferimento.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Corso di Informatica (Programmazione)
Criticità sul controllo
Struttura dei sistemi operativi (panoramica)
L. Servoli - Corso Fisica dei Dispositivi Elettronici 1 Uno scheduler deve avere implementate almeno le seguenti funzionalità: 1) Inizializzatore: preparazione.

Il Linguaggio Macchina
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
CPU (central process unit)
Le procedure di gestione input/output Poiché le operazioni di input/output sono più lente rispetto alla velocità del processore, occorrerà sincronizzarle.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Sistemi Complessi di reti sequenziali Pipeline
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
L' ARCHITETTURA DI VON NEUMANN
Architetture dei Calcolatori (Lettere j-z ) Il Processore
Architettura del calcolatore
Unità centrale di processo
Esercitazioni I/O. Dischi: Esercizio 1 Si consideri un programma che legge blocchi di 2 KB da disco, esegue un’elaborazione su questi, e quindi li riscrive.
Arch. Elab. - S. Orlando 1 Esercitazione su Instruction Level Parallelism Salvatore Orlando.
1 Introduzione Sistema di calcolo + applicazioni Possibilità di effettuare confronti e stime dei tempi di esecuzione Metriche di misura delle prestazioni.
Architettura di una CPU
CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano introduzione alle architetture superscalari Come.
Migliorare le prestazioni delle cache
1 Introduzione Sistema di calcolo Valutazione dell’impatto delle varie modifiche sulle prestazioni globali del sistema Modifiche all’architettura.
3  Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione  elaborazione dati  memorizzazione dati 
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
Calcolatori Elettronici Il Processore
SCHEDA INFORMATIVA DI UNITÀ. Introduzione Esigenze di memoria per un sistema di calcolo –Dati –Istruzioni Obiettivi –Raggiungere i migliori compromessi.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Calcolatori Elettronici Il Processore (2)
Corsi di Laurea in Biotecnologie
Gestione del processore (Scheduler)
Tipo Documento: unità didattica 3 Modulo 7 Compilatore: Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione C.Corpo D.Riepilogo.
Clocking Il segnale di Clock definisce quando i segnali possono essere letti e quando possono essere scritti Fronte di discesa (negativo) Falling edge.
Informatica Lezione 8 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
Sistema operativo Il Sistema Operativo gestisce le risorse hw e sw del sistema di elaborazione Facilita l'interazione tra utente e sistema Esistono diversi.
SPIM Esercizi. Esercizio 1 – il comando ‘li’ Il codice deve eseguire una singola operazione: mettere il valore immediato 1023 nel registro s3.
Informatica Generale Marzia Buscemi
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Informatica Generale Marzia Buscemi
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
Tipo Documento: unità didattica 3 Modulo 7 Compilatore: Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione C.Corpo D.Riepilogo.
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
1 Introduzione Sistema di calcolo + applicazioni Possibilità di effettuare confronti e stime dei tempi di esecuzione Metriche di misura delle prestazioni.
I Microprocessori Unità 3 del libro Internet Working Sistemi e reti.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Architettura degli elaboratori
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi Interconnessione tramite reti Lezione n°6.
Transcript della presentazione:

Calcolatori Elettronici Valutazione delle Prestazioni Francesco Lo Presti Rielaborate da Salvatore Tucci

Prestazioni1 Valutazione delle Prestazioni  Misura/valutazione di un insieme di parametri quantitativi per caratterizzare le prestazioni di un un calcolatore m Prestazioni ~ Tempo di esecuzione di un insieme di applicazioni m Cosa significa “il calcolatore A ha prestazioni migliori del calcolatore B”? Termina lo stesso compito in un tempo minore rispetto al calcolatore B Termina lo stesso compito in un tempo minore rispetto al calcolatore B Nello stesso periodo di tempo riesce ad eseguire più compiti Nello stesso periodo di tempo riesce ad eseguire più compiti  Obiettivo: Comprendere i fattori – sia HW che SW - che determinano le prestazioni di un calcolatore m Quali algoritmo/istruzioni sono usate da un certo programma m Come l’hardware implementa il set di istruzioni m Come il sistema di memoria-I/O opera

Prestazioni2 Tempo di risposta e throughput  Tempo di risposta (o di esecuzione) m Intervallo temporale che intercorre tra l’inizio ed il completamento di programma/job Inclusi tempo di esecuzione del processore, accessi al disco, accessi in memoria, attività di I/O, overhead del sistema operativo, … Inclusi tempo di esecuzione del processore, accessi al disco, accessi in memoria, attività di I/O, overhead del sistema operativo, … m Esempio: durata dell’esecuzione di un programma m Metrica di interesse per l’utente  Throughput m Ammontare complessivo di lavoro svolto in un dato intervallo temporale m Esempio: numero di programmi eseguiti nell’unità di tempo m Metrica di interesse per l’amministratore del sistema

Prestazioni3 Prestazioni e Tempo di Esecuzione  La frase “X è più veloce di Y” è usata per indicare che il tempo di risposta (o di esecuzione), per un dato lavoro, è minore in X che in Y  Prestazione X =1/Tempo di esecuzione X  Miglioramento delle prestazioni m Diminuzione del tempo di esecuzione

Prestazioni4 Tempo di risposta e di CPU  Tempo di risposta: rappresenta la latenza per il completamento di un programma ed include accessi al disco, accessi alla memoria, attività di I/O, …  Tempo di CPU: rappresenta il tempo speso dalla CPU per eseguire il programma dato: non include il tempo di attesa per I/O o per l’esecuzione di altri programmi  Tempo di CPU = tempo di CPU di utente + tempo di CPU di sistema m Tempo di CPU di utente: tempo speso dalla CPU per eseguire le linee di codice che sono nel programma m Tempo di CPU di sistema: tempo speso dal sistema operativo per eseguire i compiti richiesti dal programma

Prestazioni5 Ciclo di clock  Durata del periodo di un’oscillazione completa del segnale di sincronizzazione m Spesso sostituisce i secondi come unità di misura del tempo di CPU m Durata del ciclo di clock = tempo tra due impulsi consecutivi m Secondi per ciclo  Frequenza di clock = cicli di clock per secondo m 1 Hz = sec -1  Esempio: un calcolatore con frequenza di clock pari a 4 GHz possiede un ciclo di clock di durata (4 * 10 9 ) -1 = 0.25 * = 0.25 nanosecondi

Prestazioni6 Tempo di CPU  Per un dato programma  oppure  Per migliorare le prestazioni, a parità di tutto il resto, occorre: m Ridurre il numero di cicli richiesti da un programma m Ridurre la durata del ciclo di clock Aumentare la frequenza del clock Aumentare la frequenza del clock Tempo di CPU= Cicli di Clock della CPU per il programma * Ciclo di Clock Tempo di CPU= Cicli di Clock della CPU per il programma Frequenza di Clock

Prestazioni7 Numero Totale di Cicli di Clock  In genere, istruzioni di tipo diverso richiedono quantità diverse di tempo. Esempi: m La moltiplicazione richiede più tempo dell’addizione m L’accesso alla memoria richiede più tempo dell’accesso ai registri  n tipi di istruzioni diverse m ALU, lw, sw, jump, branch, etc…  I i = numero di volte che l’istruzione di tipo i viene eseguita nel programma  CPI i = numero di cicli di clock per l’istruzione di tipo i  Possiamo quindi utilizzare questa formula per esprimere il tempo di CPU: Cicli di Clock della CPU per il programma= Σ (CPI i *I i ) i=1 n Tempo di CPU=Ciclo di Clock * Σ (CPI i *I i ) i=1 n

Prestazioni8 Cicli di Clock per Istruzione (CPI)  CPI: numero medio di cicli di clock per istruzione di un dato programma m Ogni singolo CPI i viene moltiplicato per la frazione delle occorrenze nel programma - f i =I i /Numero Istruzioni - delle istruzioni di tipo i  Riscriviamo il Tempo di CPU CPI = ( CPI i * f i ) Σ n i=1 Tempo di CPU = Numero Istruzioni * CPI Frequenza di Clock Tempo di CPU= Numero Istruzioni * CPI * Ciclo di Clock

Prestazioni9 Esempio  Si consideri un calcolatore in grado di eseguire le istruzioni indicate in tabella  Calcolare CPI e tempo di CPU per eseguire un programma composto da 100 istruzioni, supponendo che la frequenza di clock sia 500 MHz Tempo di CPU= Numero Istruzioni * CPI * Ciclo di Clock CPI = ( CPI i * f i ) Σ n i=1 CPI=0.43*1+0.21*4+0.12*4+0.12*2+0.12*2=2.23 Tempo di CPU= 100 * 2.23* 2 (ns) =446 (ns)

Prestazioni10 Fattori che influiscono sulle prestazioni  Algoritmo m Influisce sul numero di istruzioni (CI) Numero di istruzioni nel programma sorgente Numero di istruzioni nel programma sorgente m Influisce su CPI Uso di istruzioni più veloci o più lente Uso di istruzioni più veloci o più lente  Linguaggio di programmazione m Influisce sul numero di istruzioni (CI) m Influisce su CPI Caratteristiche del linguaggio (es: astrazione dei dati) Caratteristiche del linguaggio (es: astrazione dei dati)  Compilatore m Influisce sul numero di istruzioni (CI) e su CPI  Insieme di istruzioni dell’architettura m Influisce sul numero di istruzioni (CI), su CPI e sulla frequenza del ciclo di clock

Prestazioni11 Principi quantitativi di progettazione dei calcolatori  Rendere veloce il caso più comune m Si deve favorire il caso più frequente a discapito di quello più raro m Il caso più frequente è spesso il più semplice e può essere reso più veloce del caso infrequente  Legge di Amdahl m Il miglioramento di prestazione che può essere ottenuto usando alcune modalità di esecuzione più veloci è limitato dalla frazione di tempo nella quali tali modalità sono impiegate m La legge di Amdahl permette di calcolare questo guadagno di prestazione

Prestazioni12 Speedup oppure  Lo speedup fornisce informazioni su quanto più velocemente un lavoro verrà eseguito usando il calcolatore con la miglioria rispetto al calcolatore originale

Prestazioni13 Legge di Amdahl  Frazione migliorato (  1), ovvero la frazione del tempo di calcolo che può essere modificato per avvantaggiarsi dei miglioramenti Esempio: se 20 sec del tempo di esecuzione di un programma che dura 60 sec possono essere modificati grazie al miglioramento, la frazione è 20/60 Frazione migliorato = Parte Migliorabile Tempo di Calcolo Tempo di Calcolo Migliorabile Tempo di Calcolo Parte non Migliorabile

Prestazioni14 Legge di Amdahl  Speedup migliorato (  1), ovvero il miglioramento ottenuto dal modo di esecuzione più veloce m Esempio: se il modo di esecuzione più veloce è 2 sec, mentre il modo originale è 5 secondi per la stessa porzione di programma, lo speedup è 5/2 Parte Migliorabile Tempo di Calcolo Migliorabile Tempo di Calcolo Migliorato Parte Migliorata Speedup migliorato = Tempo di Calcolo Migliorabile Tempo di Calcolo Migliorato

Prestazioni15 Legge di Amdahl Tempo di calcolo nuovo =Tempo di calcolo non migliorabile+Tempo di calcolo migliorato Tempo di calcolo nuovo =Tempo di calcolo non migliorabile+ Tempo di calcolo nuovo =Tempo di calcolo*(1-Frazione migliorato )+ Tempo di calcolo nuovo =Tempo di calcolo*[(1-Frazione migliorato )+ Speedup globale = = Tempo di calcolo migliorabile Speedup migliorato Tempo di calcolo*Frazione migliorato Speedup migliorato Frazione migliorato Speedup migliorato Tempo di calcolo Tempo di calcolo nuovo 1 Frazione migliorato Speedup migliorato (1-Frazione migliorato )+

Prestazioni16 Esempio  Si consideri un miglioramento di un processore di un sistema utilizzato per servizi Web, tale che la nuova CPU sia 10 volte più veloce di quella originale per le applicazioni Web. Assumendo che la CPU originale è occupata nella computazione per il 40% del tempo ed è in attesa dell’I/O per il 60%, quale è lo speedup globale? Frazione migliorato = 0.4 Speedup migliorato = 10 Speedup globale = 1/( /10) = 1/0.64  1.56

Prestazioni17 Corollario della legge di Amdahl  Se un miglioramento è utilizzabile solo per una frazione del lavoro complessivo, allora non è possibile accelerare il lavoro più del reciproco di uno meno tale frazione