La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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?

Presentazioni simili


Presentazione sul tema: "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?"— Transcript della presentazione:

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? Da chi è stato sviluppato? Miguel A. Vega Rodriguez prof. del Dipartimento di Informatica dellUniversità di Extremadura (Spain).

2 Utilizzo Principalmente per scopo didattico o di ricerca, è un ottimo strumento che facilita gli studenti alla comprensione dei meccanismi di funzionamento della cache. Principalmente per scopo didattico o di ricerca, è un ottimo strumento che facilita gli studenti alla comprensione dei meccanismi di funzionamento della cache. Ottimo spunto per un progetto di Architettura degli Elaboratori! Ottimo spunto per un progetto di Architettura degli Elaboratori!

3 Proprietà di SMPCache Compatibile con sistemi Windows 98 e superiori Compatibile con sistemi Windows 98 e superiori Scritto con un linguaggio visuale Scritto con un linguaggio visuale Interfaccia grafica con menus, toolbars, statusbar ecc.. Interfaccia grafica con menus, toolbars, statusbar ecc.. Userfriendly Userfriendly Contiene un completo sistema contestuale di help Contiene un completo sistema contestuale di help Include una serie di esempi Include una serie di esempi Simula il funzionamento della cache anche su architetture multiprocessore Simula il funzionamento della cache anche su architetture multiprocessore Permette di analizzare tracce di memoria create con linguaggi di programmazione comuni (es. C, Fortran) Permette di analizzare tracce di memoria create con linguaggi di programmazione comuni (es. C, Fortran)

4 Interfaccia grafica di SMPCache

5 Conoscenze basilari per luso Struttura fondamentale di un calcolatore elettronico Struttura fondamentale di un calcolatore 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 temporale). principio di località (spaziale e temporale).

6 Cosa analizza Lanalisi effettuata da SMPCache consiste nel fornire allutente una serie di risultati di alcuni parametri come: Lanalisi effettuata da SMPCache consiste nel fornire allutente una serie di risultati di alcuni parametri come: numero di accessi in memoria e tipo di accesso (instruction captures, data readings and data writings); numero di accessi in memoria e tipo di accesso (instruction captures, data readings and data writings); numero di accessi in cache; numero di accessi in cache; numero operazioni effettuate dalla CPU; numero operazioni effettuate dalla CPU;

7 numero di transazioni sul bus; numero di transazioni sul bus; numero dello stato di transazione (ogni blocco in cache ha associato uno stato che specifica come cambia la disposizione di un blocco); numero dello stato di transazione (ogni blocco in cache ha associato uno stato che specifica come cambia la disposizione di un blocco); numero di cache hits and misses. numero di cache hits and misses.

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

9 La simulazione Un simulatore è un programma che modella il comportamento di un sistema fisico nel corso del tempo. Un simulatore è un programma che modella il comportamento di un sistema fisico nel corso del tempo. La simulazione, quindi, consiste nella riproduzione di operazioni che devono essere effettuate dalla memoria cache e dagli altri componenti di un sistema reale. Per questo motivo è necessario utilizzare una combinazione di parametri significativa.

10 Tipi di simulazione Step by step (la simulazione si ferma dopo ogni accesso in memoria) Step by step (la simulazione si ferma dopo ogni accesso in memoria) With breakpoint (la simulazione si ferma dopo un numero specifico di accessi in memoria) With breakpoint (la simulazione si ferma dopo un numero specifico di accessi in memoria) Complete execution (la simulazione termina quando tutta la traccia di memoria viene esaminata) Complete execution (la simulazione termina quando tutta la traccia di memoria viene esaminata)

11 Organizzazione hardware Prima di poter effetuare unanalisi è necessario impostare i parametri hardware salvando la configurazione necessaria in un file *.cfg Prima di poter effetuare unanalisi è necessario impostare i parametri hardware salvando la configurazione necessaria in un file *.cfg In relazione alle caratteristiche delle memorie e dei processori, SMPCache supporta le seguenti opzioni di parametri: In relazione alle caratteristiche delle memorie e dei processori, SMPCache supporta le seguenti opzioni di parametri:

12 16 MB Maximum cache size (excluded labels, block state bits, counts, etc.) 32 GB Maximum main memory size 8 KB Maximum block size To memory words Reference 1 Cache levels in the memory hierarchy Write Back (for cache coherence protocol used) Writing strategies Random, LRU, FIFO or LFU Replacement policies 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, or 2048 Cache sets (for set associative caches) Direct, Set-Associative or Fully-Associative Mapping 1, 2, 4, 8, 16, 32, 64, 128, 256, 1024 or 2048 Blocks in cache 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32728, 65536, , , , , or Blocks in main memory 1, 2, 4, 8, 16, 32, 64, 128, 256, 512, or 1024 Words 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

13 Tracce di memoria Dopo aver configurato il sistema è necessario aprire una traccia di memoria per avviare la simulazione. Dopo aver configurato il sistema è necessario aprire una traccia di memoria per avviare la simulazione. Oltre a dare all'utente la possibilità di esaminare una propria traccia, SMPCache include una serie di tracce di memoria che rappresentano una grande varietà di programmi applicativi reali. Tali esempi sono stati forniti da Nadeem Malik di IBM. Oltre a dare all'utente la possibilità di esaminare una propria traccia, SMPCache include una serie di tracce di memoria che rappresentano una grande varietà di programmi applicativi reali. Tali esempi sono stati forniti da Nadeem Malik di IBM. Per informazioni sulla disponibilità di queste ed altre tracce contattare lindirizzo Per informazioni sulla disponibilità di queste ed altre tracce contattare lindirizzo

14 NameClassificationDescription Hydro Astrophysics: Hydrodynamic Naiver Stokes equations Nasa7Fortran 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 CexpC Portion of a Gnu C compiler that exhibits strong random behaviour MdljdFortran 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 CompC Uses Lempel-Ziv coding for data compression. Compresses a 1 MB file 20 times WaweFortran Solves Maxwells equations and electromagnetic particle equations of motion SwmFortran Solves a system of shallow water equations using finite difference approximations on a 256*256 grid UcompC The uncompress version of comp

15 Dopo aver configurato il sistema e aperto una traccia di memoria è possibile avviare la simulazione. Dopo aver configurato il sistema e aperto una traccia di memoria è possibile avviare la simulazione. SMPCache permette di effettuare diverse tipologie di simulazione: SMPCache permette di effettuare diverse tipologie di simulazione: Simulazione della cache; Simulazione della cache; Simulazione del processore; Simulazione del processore; Evoluzione dei blocchi di memoria centrale. Evoluzione dei blocchi di memoria centrale.

16 1) Simulazione della cache Se si è scelto di effettuare una simulazione della cache, sarà possibile visualizzare levoluzione in maniera grafica o testuale. Se si è scelto di effettuare una simulazione della cache, sarà possibile visualizzare levoluzione in maniera grafica o testuale. Col primo metodo verranno forniti dei grafici su: blocchi trasferiti, transazioni sul bus, cache hits, hit rate (%), cache misses, miss rate (%). Col primo metodo verranno forniti dei grafici su: blocchi trasferiti, transazioni sul bus, cache hits, hit rate (%), cache misses, miss rate (%). Col secondo metodo, invece, sarà possibile verificare lo stato di ogni signola linea di cache, oltre al numero e alla percentuale di misses e hits. Col secondo metodo, invece, sarà possibile verificare lo stato di ogni signola linea di cache, oltre al numero e alla percentuale di misses e hits.

17 Evoluzione cache in formato grafico

18 Evoluzione cache in formato testo

19 2) Evoluzione del processore Effettuando unanalisi del processore, o dei processori, SMPCache fornisce un grafico in cui viene visualizzato lo stato dei processori attivi e le transazioni dei blocchi di memoria. Effettuando unanalisi del processore, o dei processori, SMPCache fornisce un grafico in cui viene visualizzato lo stato dei processori attivi e le transazioni dei blocchi di memoria. Inoltre, è possibile stabilire il numero di dati letti e scritti dal processore e la percentuale di successi e fallimenti nella ricerca. Inoltre, è possibile stabilire il numero di dati letti e scritti dal processore e la percentuale di successi e fallimenti nella ricerca.

20 Evoluzione del processore

21 3) Evoluzione della memoria La simulazione della memoria centrale consiste nellosservare levoluzione di un particolare blocco di memoria a seconda dei parametri scelti. La simulazione della memoria centrale consiste nellosservare levoluzione di un particolare blocco di memoria a seconda dei parametri scelti. È possibile selezionare il blocco di memoria da studiare e il livello di visione desiderato (allinterno del processore o allinterno di una particolare cache). I risultati ottenuti saranno relativi al blocco selezionato. È possibile selezionare il blocco di memoria da studiare e il livello di visione desiderato (allinterno del processore o allinterno di una particolare cache). I risultati ottenuti saranno relativi al blocco selezionato.

22 Evoluzione di un blocco di memoria allinterno del processore

23 Evoluzione di un blocco di memoria allinterno della cache

24 Il problema della coerenza SMPCache simula levoluzione della cache anche su sistemi multiprocessore. La presenza di più cache introduce il problema della coerenza della cache, che causa linconsistenza dei dati. SMPCache simula levoluzione della cache anche su sistemi multiprocessore. La presenza di più cache introduce il problema della coerenza della cache, che causa linconsistenza dei dati. Es. Es. Un processo A gira nel processore I che produce il dato X che è consumato dal processo B, che gira sul processore J. Il processo A scrive X nella sua cache, mentre il processo B continua ad utilizzare il vecchio valore di X presente nella sua cache senza essere informato del nuovo valore assunto da X.

25 Protocolli di coerenza Per ovviare a tale problema SMPCache supporta tre principali protocolli di coerenza utilizzati nei più moderni sistemi di elaborazione che utilizzano una politica di scrittura write-back: Per ovviare a tale problema SMPCache supporta tre principali protocolli di coerenza utilizzati nei più moderni sistemi di elaborazione che utilizzano una politica di scrittura write-back: MSI MSI MESI MESI DRAGON DRAGON Lidea che sta alla base di questi protocolli è di associare ad ogni blocco di memoria uno stato che indica la disposizione del blocco stesso (invalid, valid or dirty) Lidea che sta alla base di questi protocolli è di associare ad ogni blocco di memoria uno stato che indica la disposizione del blocco stesso (invalid, valid or dirty) MSI e MESI sono dei protocolli basati sullinvalidazione, mentre DRAGON è basato sullaggiornamento MSI e MESI sono dei protocolli basati sullinvalidazione, mentre DRAGON è basato sullaggiornamento

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

27 Protocolli basati sullaggiornamento Nei protocolli basati sullaggiornamento, quando un processore modifica una locazione condivisa il suo valore viene aggiornato nelle caches di tutti i processori che possiedono quel blocco. Nei protocolli basati sullaggiornamento, quando un processore modifica una locazione condivisa il suo valore viene aggiornato nelle caches di tutti i processori che possiedono quel blocco. Per questo motivo i protocolli basati sullaggiornamento hanno un miss-rate più alto e generano più traffico nel bus, risultando più complessi nella gestione. Per questo motivo i protocolli basati sullaggiornamento hanno un miss-rate più alto e generano più traffico nel bus, risultando più complessi nella gestione.

28 In entrambe le classi di protocolli, il processore può effettuare diverse richieste: In entrambe le classi di protocolli, il processore può effettuare diverse richieste: PrRd: lettura; PrRd: lettura; PrWr: scrittura. PrWr: scrittura. Nel protocollo Dragon esistono due ulteriori richieste PrRdMiss e PrWrMiss, che si verificano quando un nuovo blocco di memoria è richiesto per la prima volta dal processore. Nel protocollo Dragon esistono due ulteriori richieste PrRdMiss e PrWrMiss, che si verificano quando un nuovo blocco di memoria è 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 lindirizzo al bus e chiede una copia del blocco che non intende modificare (in caso di ricerca fallita nella cache); BusRd: il controllore della cache invia lindirizzo al bus e chiede una copia del blocco che non intende modificare (in caso di ricerca fallita nella cache); BusRdX: il controllore della cache invia lindirizzo al bus e chiede una copia esclusiva del blocco che intende modificare; BusRdX: il controllore della cache invia lindirizzo al bus e chiede una copia esclusiva del blocco che intende modificare; BusWB: il controllore della cache invia lindirizzo e il contenuto del blocco di memoria al bus; la RAM viene aggiornata; BusWB: il controllore della cache invia lindirizzo e il contenuto del blocco di memoria al bus; la RAM viene aggiornata; Bus Upd: è una nuova transazione che prende una parola specifica scritta dal processore e la trasmette al bus così che tutte le altre caches si possono aggiornare. (usata solo in DRAGON) Bus Upd: è una nuova transazione che prende una parola specifica scritta dal processore e la trasmette al bus così che tutte le altre caches si possono aggiornare. (usata solo in DRAGON) Ogni BusUpd è seguito da unazione di Update sulla linea di cache da aggiornare. Ogni BusUpd è seguito da unazione di Update sulla linea di cache da aggiornare.

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

30 MSI Questo protocollo di coerenza utilizza tre stati per identificare la situazione dei blocchi di memoria: Questo protocollo di coerenza utilizza tre stati per identificare la situazione dei blocchi di memoria: I (invalid): il blocco di memoria è invalido; I (invalid): il blocco di memoria è invalido; S (shared): il blocco è presente in uno stato non modificato in una o più cache; le copie in memoria centrale e nelle altre caches sono tutte aggiornate; S (shared): il blocco è presente in uno stato non modificato in una o più cache; le copie in memoria centrale e nelle altre caches sono tutte aggiornate; M (modified or dirty): solo un processore ha una copia valida del blocco nella sua cache; la copia in memoria centrale è obsoleta e nessun altra cache ha una copia valida. M (modified or dirty): solo un processore ha una copia valida del blocco nella sua cache; la copia in memoria centrale è obsoleta e nessun altra cache ha una copia valida.

31 Transition diagram for the MSI protocol

32 MESI Il protocollo MESI utilizza quattro stati: Il protocollo MESI utilizza quattro stati: I (invalid): come per MSI; I (invalid): come per MSI; S (shared): due o più processori hanno questo blocco nella loro cache in uno stato non modificato; S (shared): due o più processori hanno questo blocco nella loro cache in uno stato non modificato; E (exclusive): solo una cache ha una copia del blocco ed essa non è stata modificata. La memoria centrale è aggiornata; E (exclusive): solo una cache ha una copia del blocco ed essa non è stata modificata. La memoria centrale è aggiornata; M (modified): come per MSI. M (modified): come per MSI.

33 Transition diagram for the MESI protocol

34 DRAGON Questo protocollo usa quattro stati: Questo protocollo usa quattro stati: E (exclusive): come per MESI; E (exclusive): come per MESI; SC (shared-clean): potenzialmente due o più processori hanno questo blocco nella cache. La memoria centrale può essere o non essere aggiornata. SC (shared-clean): potenzialmente due o più processori hanno questo blocco nella cache. La memoria centrale può essere o non essere aggiornata. SM (shared-modified): potenzialmente due o più processori hanno questo blocco nella loro cache. La memoria centrale non è aggiornata ed è responsabilità di tale processore ad aggiornare la memoria centrale quando il blocco è rimpiazzato. SM (shared-modified): potenzialmente due o più processori hanno questo blocco nella loro cache. La memoria centrale non è aggiornata ed è responsabilità di tale processore ad aggiornare la memoria centrale quando il blocco è rimpiazzato. M (modified): come per MESI. M (modified): come per MESI.

35 Transition diagram for the DRAGON protocol

36 Spunti per possibili progetti di architettura degli elaboratori 1. Evoluzione delle prestazioni del sistema utilizzando architetture multiprocessore. 2. La cache e il problema della coerenza: come incidono i protocolli e quali sono i rispettivi vantaggi e svantaggi. 3. Implementare una versione limitata del simulatore. 4. Simulare il funzionamento di caches multilivello, analizzando le differenze rispetto a sistemi che utilizzano un solo livello di cache. 5. Come sfruttare la località dei riferimenti: studio della località spaziale e della località temporale.

37 Alcuni testi da consultare: [1] [1] Stallings W.; Architettura e organizzazione dei calcolatori. Progetto e prestazioni 6a ed. Addison Wesley, [02] Tanenbaum A.; Structured Computer Organization Prentice Hall,1999. [03] Hwang, K.; Briggs, F. A.; Computer Architecture and Parallel Processing. McGraw-Hill, [4] Lovett, T.; Thakkar, S.; The Symmetry Multiprocessor System. Proc. Int. Conf. Parallel Processing, Vol. I, August [5] McCreight, E. M.; The Dragon Computer System: An Early Overview. Technical Report, Xerox Corporation, September 1984.


Scaricare ppt "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?"

Presentazioni simili


Annunci Google