smpcache cosè? cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di...

37
SMPCache SMPCache Cos’è? Cos’è? È un simulatore software per l’analisi e È un simulatore software per l’analisi e lo studio della memoria cache e di altri lo studio della memoria cache e di altri componenti di un calcolatore. componenti di un calcolatore. Da chi è stato sviluppato? Da chi è stato sviluppato? Miguel A. Vega Rodriguez prof. del Miguel A. Vega Rodriguez prof. del Dipartimento di Informatica Dipartimento di Informatica dell’Università di Extremadura (Spain). dell’Università di Extremadura (Spain). e-mail: [email protected] e-mail: [email protected]

Upload: giada-di-martino

Post on 01-May-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

SMPCacheSMPCache

Cos’è?Cos’è?

È un simulatore software per l’analisi e lo studio È un simulatore software per l’analisi e lo studio della memoria cache e di altri componenti di un della memoria cache e di altri componenti di un calcolatore.calcolatore.

Da chi è stato sviluppato?Da chi è stato sviluppato?

Miguel A. Vega Rodriguez prof. del Dipartimento Miguel A. Vega Rodriguez prof. del Dipartimento di Informatica dell’Università di Extremadura di Informatica dell’Università di Extremadura (Spain).(Spain).

e-mail: [email protected]: [email protected]

Page 2: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

UtilizzoUtilizzo

Principalmente per scopo didattico o Principalmente per scopo didattico o di ricerca, è un ottimo strumento che di ricerca, è un ottimo strumento che facilita gli studenti alla comprensione facilita gli studenti alla comprensione dei meccanismi di funzionamento dei meccanismi di funzionamento della cache.della cache.

Ottimo spunto per un progetto di Ottimo spunto per un progetto di Architettura degli Elaboratori!Architettura degli Elaboratori!

Page 3: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Proprietà di SMPCacheProprietà di SMPCache

Compatibile con sistemi Windows 98 e Compatibile con sistemi Windows 98 e superiorisuperiori

Scritto con un linguaggio visualeScritto con un linguaggio visuale Interfaccia grafica con menus, toolbars, Interfaccia grafica con menus, toolbars,

statusbar ecc..statusbar ecc.. UserfriendlyUserfriendly Contiene un completo sistema contestuale Contiene un completo sistema contestuale

di helpdi help Include una serie di esempiInclude una serie di esempi Simula il funzionamento della cache anche Simula il funzionamento della cache anche

su architetture multiprocessoresu architetture multiprocessore Permette di analizzare tracce di memoria Permette di analizzare tracce di memoria

create con linguaggi di programmazione create con linguaggi di programmazione comuni (es. C, Fortran)comuni (es. C, Fortran)

Page 4: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Interfaccia grafica di SMPCache

Page 5: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Conoscenze basilari per Conoscenze basilari per l’usol’uso

Struttura fondamentale di un Struttura fondamentale di un calcolatore elettronicocalcolatore elettronico

La memoria cache:La memoria cache: funzione;funzione; metodi di indirizzamento;metodi di indirizzamento; algoritmi di sostituzione; algoritmi di sostituzione; politiche di scrittura;politiche di scrittura; principio di località (spaziale e principio di località (spaziale e

temporale).temporale).

Page 6: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Cosa analizzaCosa analizza

L’analisi effettuata da SMPCache L’analisi effettuata da SMPCache consiste nel fornire all’utente una consiste nel fornire all’utente una serie di risultati di alcuni parametri serie di risultati di alcuni parametri come:come:

numero di accessi in memoria e tipo di numero di accessi in memoria e tipo di accesso (instruction captures, data accesso (instruction captures, data readings and data writings);readings and data writings);

numero di accessi in cache;numero di accessi in cache; numero operazioni effettuate dalla CPU;numero operazioni effettuate dalla CPU;

Page 7: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

numero di transazioni sul bus;numero di transazioni sul bus; numero dello stato di transazione (ogni numero dello stato di transazione (ogni

blocco in cache ha associato uno stato blocco in cache ha associato uno stato che specifica come cambia la che specifica come cambia la disposizione di un blocco);disposizione di un blocco);

numero di cache hits and misses.numero di cache hits and misses.

Page 8: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Inoltre, SMPCache usando dei dati Inoltre, SMPCache usando dei dati statistici è capace di estrapolare dei statistici è capace di estrapolare dei grafici in relazione ai risultati grafici in relazione ai risultati ottenuti, come lo hit rate e il miss ottenuti, come lo hit rate e il miss rate, cioè la percentuale di successi e rate, cioè la percentuale di successi e fallimenti di ricerca in cache.fallimenti di ricerca in cache.

Page 9: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

La simulazioneLa simulazione

Un simulatore è un programma che Un simulatore è un programma che modella il comportamento di un modella il comportamento di un sistema fisico nel corso del tempo. sistema fisico nel corso del tempo.

La simulazione, quindi, consiste nella La simulazione, quindi, consiste nella riproduzione di operazioni che riproduzione di operazioni che devono essere effettuate dalla devono essere effettuate dalla memoria cache e dagli altri memoria cache e dagli altri componenti di un sistema reale. componenti di un sistema reale.

Per questo motivo è necessario Per questo motivo è necessario utilizzare una combinazione di utilizzare una combinazione di parametri significativa.parametri significativa.

Page 10: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Tipi di simulazioneTipi di simulazione

Step by stepStep by step (la simulazione si (la simulazione si ferma dopo ogni accesso in memoria)ferma dopo ogni accesso in memoria)

With breakpointWith breakpoint (la simulazione si (la simulazione si ferma dopo un numero specifico di ferma dopo un numero specifico di accessi in memoria)accessi in memoria)

Complete executionComplete execution (la simulazione (la simulazione termina quando tutta la traccia di termina quando tutta la traccia di memoria viene esaminata)memoria viene esaminata)

Page 11: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Organizzazione hardwareOrganizzazione hardware

Prima di poter effetuare un’analisi è Prima di poter effetuare un’analisi è necessario impostare i parametri necessario impostare i parametri hardware salvando la configurazione hardware salvando la configurazione necessaria in un file *.cfgnecessaria in un file *.cfg

In relazione alle caratteristiche delle In relazione alle caratteristiche delle memorie e dei processori, SMPCache memorie e dei processori, SMPCache supporta le seguenti opzioni di supporta le seguenti opzioni di parametri:parametri:

Page 12: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

16 MBMaximum cache size (excluded labels, block state bits, counts, etc.)

32 GBMaximum main memory size

8 KBMaximum block size

To memory wordsReference

1Cache levels in the memory hierarchy

Write Back (for cache coherence protocol used)Writing strategies

Random, LRU, FIFO or LFUReplacement policies

1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, or 2048Cache sets (for set associative caches)

Direct, Set-Associative or Fully-AssociativeMapping

1, 2, 4, 8, 16, 32, 64, 128, 256, 1024 or 2048Blocks in cache

1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32728, 65536, 131072, 262144, 524288, 1048576, 2097152 or 4194304

Blocks in main memory

1, 2, 4, 8, 16, 32, 64, 128, 256, 512, or 1024Words by block

8, 16, 32 or 64 World wide (bits)

Random, LRU or LFU Schemes for bus arbitration

MSI, MESI OR DRAGON Cache coherence protocols

1, 2, 3, 4, 5, 6, 7, or 8 Processors in SMP

Architectural characteristics supported by the simulator

Page 13: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Tracce di memoriaTracce di memoria Dopo aver configurato il sistema è Dopo aver configurato il sistema è

necessario aprire una traccia di necessario aprire una traccia di memoria per avviare la simulazione.memoria per avviare la simulazione.

Oltre a dare all'utente la possibilità di Oltre a dare all'utente la possibilità di esaminare una propria traccia, esaminare una propria traccia, SMPCache include una serie di tracce SMPCache include una serie di tracce di memoria che rappresentano una di memoria che rappresentano una grande varietà di programmi grande varietà di programmi applicativi reali. Tali esempi sono stati applicativi reali. Tali esempi sono stati forniti da Nadeem Malik di IBM.forniti da Nadeem Malik di IBM.

Per informazioni sulla disponibilità di queste ed Per informazioni sulla disponibilità di queste ed altre tracce contattare l’indirizzo email: altre tracce contattare l’indirizzo email: [email protected]@nmsu.edu

Page 14: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Name Classification DescriptionHydro - - - Astrophysics: Hydrodynamic Naiver Stokes

equations

Nasa7 Fortran A collection of 7 kernels. For each kernel, the program generates its own input data, performs the kernel and compares the result against an expected result

Cexp C Portion of a Gnu C compiler that exhibits strong random behaviour

Mdljd Fortran Solves the equations of motion for a model of 500 atoms interacting through the idealized Lennard-Jonnes potential. It is a numerical program that exhibits mixed looping and random behaviour

Ear - - - - - -

Comp C Uses Lempel-Ziv coding for data compression. Compresses a 1 MB file 20 times

Wawe Fortran Solves Maxwell’s equations and electromagnetic particle equations of motion

Swm Fortran Solves a system of shallow water equations using finite difference approximations on a 256*256 grid

Ucomp C The uncompress version of comp

Page 15: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Dopo aver configurato il sistema e Dopo aver configurato il sistema e aperto una traccia di memoria è aperto una traccia di memoria è possibile avviare la simulazione.possibile avviare la simulazione.

SMPCache permette di effettuare SMPCache permette di effettuare diverse tipologie di simulazione:diverse tipologie di simulazione: Simulazione della cache;Simulazione della cache; Simulazione del processore;Simulazione del processore; Evoluzione dei blocchi di memoria Evoluzione dei blocchi di memoria

centrale.centrale.

Page 16: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

1) Simulazione della cache1) Simulazione della cache

Se si è scelto di effettuare una simulazione Se si è scelto di effettuare una simulazione della cache, sarà possibile visualizzare della cache, sarà possibile visualizzare l’evoluzione in maniera grafica o testuale.l’evoluzione in maniera grafica o testuale.

Col primo metodo verranno forniti dei Col primo metodo verranno forniti dei grafici su: blocchi trasferiti, transazioni sul grafici su: blocchi trasferiti, transazioni sul bus, cache hits, hit rate (%), cache misses, bus, cache hits, hit rate (%), cache misses, miss rate (%) .miss rate (%) .

Col secondo metodo, invece, sarà possibile Col secondo metodo, invece, sarà possibile verificare lo stato di ogni signola linea di verificare lo stato di ogni signola linea di cache, oltre al numero e alla percentuale cache, oltre al numero e alla percentuale di misses e hits.di misses e hits.

Page 17: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Evoluzione cache in formato Evoluzione cache in formato graficografico

Page 18: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Evoluzione cache in formato Evoluzione cache in formato testotesto

Page 19: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

2) Evoluzione del 2) Evoluzione del processoreprocessore

Effettuando un’analisi del Effettuando un’analisi del processore, o dei processori, processore, o dei processori, SMPCache fornisce un grafico in cui SMPCache fornisce un grafico in cui viene visualizzato lo stato dei viene visualizzato lo stato dei processori attivi e le transazioni dei processori attivi e le transazioni dei blocchi di memoria.blocchi di memoria.

Inoltre, è possibile stabilire il numero Inoltre, è possibile stabilire il numero di dati letti e scritti dal processore e di dati letti e scritti dal processore e la percentuale di successi e fallimenti la percentuale di successi e fallimenti nella ricerca. nella ricerca.

Page 20: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Evoluzione del processoreEvoluzione del processore

Page 21: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

3) Evoluzione della memoria3) Evoluzione della memoria

La simulazione della memoria centrale La simulazione della memoria centrale consiste nell’osservare l’evoluzione di consiste nell’osservare l’evoluzione di un particolare blocco di memoria a un particolare blocco di memoria a seconda dei parametri scelti.seconda dei parametri scelti.

È possibile selezionare il blocco di È possibile selezionare il blocco di memoria da studiare e il livello di memoria da studiare e il livello di visione desiderato (all’interno del visione desiderato (all’interno del processore o all’interno di una processore o all’interno di una particolare cache). I risultati ottenuti particolare cache). I risultati ottenuti saranno relativi al blocco selezionato.saranno relativi al blocco selezionato.

Page 22: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Evoluzione di un blocco di Evoluzione di un blocco di memoria all’interno del memoria all’interno del

processoreprocessore

Page 23: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Evoluzione di un blocco di Evoluzione di un blocco di memoria all’interno della memoria all’interno della

cachecache

Page 24: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Il problema della coerenzaIl problema della coerenza SMPCache simula l’evoluzione della cache SMPCache simula l’evoluzione della cache

anche su sistemi multiprocessore. La anche su sistemi multiprocessore. La presenza di più cache introduce il presenza di più cache introduce il problema della problema della coerenza della cache, coerenza della cache, che che causa l’inconsistenza dei dati.causa l’inconsistenza dei dati.

Es.Es.Un processo A gira nel processore I che Un processo A gira nel processore I che produce il dato X che è consumato dal produce il dato X che è consumato dal processo B, che gira sul processore J. Il processo B, che gira sul processore J. Il processo A scrive X nella sua cache, processo A scrive X nella sua cache, mentre il processo B continua ad utilizzare mentre il processo B continua ad utilizzare il vecchio valore di X presente nella sua il vecchio valore di X presente nella sua cache senza essere informato del nuovo cache senza essere informato del nuovo valore assunto da X.valore assunto da X.

Page 25: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Protocolli di coerenzaProtocolli di coerenza Per ovviare a tale problema SMPCache supporta tre Per ovviare a tale problema SMPCache supporta tre

principali protocolli di coerenza utilizzati nei più principali protocolli di coerenza utilizzati nei più moderni sistemi di elaborazione che utilizzano una moderni sistemi di elaborazione che utilizzano una politica di scrittura write-back:politica di scrittura write-back:

MSIMSI MESIMESI DRAGONDRAGON

L’idea che sta alla base di questi protocolli è di L’idea che sta alla base di questi protocolli è di associare ad ogni blocco di memoria uno stato che associare ad ogni blocco di memoria uno stato che indica la disposizione del blocco stesso (invalid, indica la disposizione del blocco stesso (invalid, valid or dirty)valid or dirty)

MSI e MESI sono dei protocolli basati MSI e MESI sono dei protocolli basati sull’invalidazione, mentre DRAGON è basato sull’invalidazione, mentre DRAGON è basato sull’aggiornamentosull’aggiornamento

Page 26: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Protocolli basati Protocolli basati sull’invalidazionesull’invalidazione

Nei protocolli basati Nei protocolli basati sull’invalidazione, quando una sull’invalidazione, quando una locazione condivisa viene modificata locazione condivisa viene modificata da un processore, lo stato della da un processore, lo stato della cache di quel blocco è settato ad cache di quel blocco è settato ad invalido nella cache di tutti gli altri invalido nella cache di tutti gli altri processori che possiedono quel processori che possiedono quel blocco.blocco.

Page 27: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Protocolli basati Protocolli basati sull’aggiornamentosull’aggiornamento

Nei protocolli basati sull’aggiornamento, Nei protocolli basati sull’aggiornamento, quando un processore modifica una quando un processore modifica una locazione condivisa il suo valore viene locazione condivisa il suo valore viene aggiornato nelle caches di tutti i aggiornato nelle caches di tutti i processori che possiedono quel blocco.processori che possiedono quel blocco.

Per questo motivo i protocolli basati Per questo motivo i protocolli basati sull’aggiornamento hanno un miss-rate sull’aggiornamento hanno un miss-rate più alto e generano più traffico nel bus, più alto e generano più traffico nel bus, risultando più complessi nella gestione.risultando più complessi nella gestione.

Page 28: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

In entrambe le classi di protocolli, il processore può In entrambe le classi di protocolli, il processore può effettuare diverse richieste:effettuare diverse richieste:

PrRd: lettura;PrRd: lettura; PrWr: scrittura.PrWr: scrittura. Nel protocollo Dragon esistono due ulteriori richieste PrRdMiss e Nel protocollo Dragon esistono due ulteriori richieste PrRdMiss e

PrWrMiss, che si verificano quando un nuovo blocco di memoria PrWrMiss, che si verificano quando un nuovo blocco di memoria è richiesto per la prima volta dal processore.è richiesto per la prima volta dal processore.

Il bus, invece, può supportare le seguenti transazioni:Il bus, invece, può supportare le seguenti transazioni: BusRd: il controllore della cache invia l’indirizzo al bus e chiede BusRd: il controllore della cache invia l’indirizzo al bus e chiede

una copia del blocco che non intende modificare (in caso di una copia del blocco che non intende modificare (in caso di ricerca fallita nella cache);ricerca fallita nella cache);

BusRdX: il controllore della cache invia l’indirizzo al bus e chiede BusRdX: il controllore della cache invia l’indirizzo al bus e chiede una copia esclusiva del blocco che intende modificare;una copia esclusiva del blocco che intende modificare;

BusWB: il controllore della cache invia l’indirizzo e il contenuto BusWB: il controllore della cache invia l’indirizzo e il contenuto del blocco di memoria al bus; la RAM viene aggiornata;del blocco di memoria al bus; la RAM viene aggiornata;

Bus Upd: è una nuova transazione che prende una parola Bus Upd: è una nuova transazione che prende una parola specifica scritta dal processore e la trasmette al bus così che specifica scritta dal processore e la trasmette al bus così che tutte le altre caches si possono aggiornare. (usata solo in tutte le altre caches si possono aggiornare. (usata solo in DRAGON)DRAGON)

Ogni BusUpd è seguito da un’azione di Update sulla linea di Ogni BusUpd è seguito da un’azione di Update sulla linea di cache da aggiornare.cache da aggiornare.

Page 29: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

In aggiunta al cambiamento dello stato dei In aggiunta al cambiamento dello stato dei blocchi, il controllore della cache può blocchi, il controllore della cache può intervenire nelle transazioni del bus e intervenire nelle transazioni del bus e mettere il contenuto del blocco referenziato mettere il contenuto del blocco referenziato sul bus (“flush”), piuttosto che permettere sul bus (“flush”), piuttosto che permettere alla memoria centrale di fornire i dati. alla memoria centrale di fornire i dati. Poiché più processori possono avere una Poiché più processori possono avere una copia del blocco di memoria nella loro copia del blocco di memoria nella loro cache, è necessario selezionare un solo cache, è necessario selezionare un solo processore che fornisce il dato al bus. Il processore che fornisce il dato al bus. Il “flush” risulta valido per quel processore, “flush” risulta valido per quel processore, mentre gli altri processori effettuano mentre gli altri processori effettuano un’azione nulla.un’azione nulla.

Page 30: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

MSIMSI Questo protocollo di coerenza utilizza tre Questo protocollo di coerenza utilizza tre

stati per identificare la situazione dei stati per identificare la situazione dei blocchi di memoria:blocchi di memoria: II (invalid): il blocco di memoria è invalido; (invalid): il blocco di memoria è invalido;

SS (shared): il blocco è presente in uno stato (shared): il blocco è presente in uno stato non modificato in una o più cache; le copie in non modificato in una o più cache; le copie in memoria centrale e nelle altre caches sono memoria centrale e nelle altre caches sono tutte aggiornate;tutte aggiornate;

MM (modified or dirty): solo un processore ha (modified or dirty): solo un processore ha una copia valida del blocco nella sua cache; la una copia valida del blocco nella sua cache; la copia in memoria centrale è obsoleta e nessun copia in memoria centrale è obsoleta e nessun altra cache ha una copia valida.altra cache ha una copia valida.

Page 31: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Transition diagram for the Transition diagram for the MSI protocolMSI protocol

Page 32: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

MESIMESI

Il protocollo MESI utilizza quattro stati:Il protocollo MESI utilizza quattro stati: II (invalid): come per MSI; (invalid): come per MSI;

SS (shared): due o più processori hanno questo (shared): due o più processori hanno questo blocco nella loro cache in uno stato non blocco nella loro cache in uno stato non modificato;modificato;

EE (exclusive): solo una cache ha una copia del (exclusive): solo una cache ha una copia del blocco ed essa non è stata modificata. La blocco ed essa non è stata modificata. La memoria centrale è aggiornata;memoria centrale è aggiornata;

MM (modified): come per MSI. (modified): come per MSI.

Page 33: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Transition diagram for the Transition diagram for the MESI protocolMESI protocol

Page 34: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

DRAGONDRAGON Questo protocollo usa quattro stati:Questo protocollo usa quattro stati:

EE (exclusive): come per MESI; (exclusive): come per MESI;

SCSC (shared-clean): potenzialmente due o più (shared-clean): potenzialmente due o più processori hanno questo blocco nella cache. La processori hanno questo blocco nella cache. La memoria centrale può essere o non essere memoria centrale può essere o non essere aggiornata.aggiornata.

SMSM (shared-modified): potenzialmente due o (shared-modified): potenzialmente due o più processori hanno questo blocco nella loro più processori hanno questo blocco nella loro cache. La memoria centrale non è aggiornata cache. La memoria centrale non è aggiornata ed è responsabilità di tale processore ad ed è responsabilità di tale processore ad aggiornare la memoria centrale quando il aggiornare la memoria centrale quando il blocco è rimpiazzato.blocco è rimpiazzato.

MM (modified): come per MESI. (modified): come per MESI.

Page 35: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Transition diagram for the Transition diagram for the DRAGON protocolDRAGON protocol

Page 36: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Spunti per possibili progetti Spunti per possibili progetti di architettura degli di architettura degli

elaboratorielaboratori1.1. Evoluzione delle prestazioni del sistema Evoluzione delle prestazioni del sistema

utilizzando architetture multiprocessore.utilizzando architetture multiprocessore.

2.2. La cache e il problema della coerenza: come La cache e il problema della coerenza: come incidono i protocolli e quali sono i rispettivi incidono i protocolli e quali sono i rispettivi vantaggi e svantaggi.vantaggi e svantaggi.

3.3. Implementare una versione limitata del Implementare una versione limitata del simulatore.simulatore.

4.4. Simulare il funzionamento di caches multilivello, Simulare il funzionamento di caches multilivello, analizzando le differenze rispetto a sistemi che analizzando le differenze rispetto a sistemi che utilizzano un solo livello di cache.utilizzano un solo livello di cache.

5.5. Come sfruttare la località dei riferimenti: studio Come sfruttare la località dei riferimenti: studio della della località spazialelocalità spaziale e della e della località temporalelocalità temporale..

Page 37: SMPCache Cosè? Cosè? È un simulatore software per lanalisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Alcuni testi da consultare:Alcuni testi da consultare:[1] [1] Stallings W.; “Architettura e organizzazione dei calcolatori.

Progetto e prestazioni 6a ed.” Addison Wesley, 2003.

[02] Tanenbaum A.; “Structured Computer Organization” Prentice Hall,1999.

[03] Hwang, K.; Briggs, F. A.; “Computer Architecture and Parallel Processing”. McGraw-Hill, 1984.

[4] Lovett, T.; Thakkar, S.; “The Symmetry Multiprocessor System”. Proc. Int. Conf. Parallel Processing, Vol. I, August 1988.

[5] McCreight, E. M.; “The Dragon Computer System: An Early Overview”. Technical Report, Xerox Corporation, September 1984.