SMPCache Cos’è? È un simulatore software per l’analisi e lo studio della memoria cache e di altri componenti di un calcolatore. Da chi è stato sviluppato?

Slides:



Advertisements
Presentazioni simili
Gestione della memoria centrale
Advertisements

Modulo 1 – Ambiente di lavoro Windows 7
Classe III A A.s – 2011 Sistemi di Elaborazione e Trasmissione dell’Informazione 4 ore settimanali (2 laboratorio) Docenti Prof. Alberto Ferrari.
STRUTTURA DEL PERSONAL COMPUTER
Informatica Generale Marzia Buscemi
Informatica giuridica Hardware e software: glossario Lucio Maggio Anno Accademico 2000/2001.
Memoria virtuale Memoria virtuale – separazione della memoria logica dell’utente dalla memoria fisica. Solo alcune parti di un programma devono trovarsi.
Memorie.
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
Architetture dei Calcolatori (Lettere j-z) Il Processore (2)
2 Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione dati memorizzazione dati trasferimento.
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
La memoria cache Tecniche di rimpiazzo.
Struttura dei sistemi operativi (panoramica)
Xscale Nicola Rebagliati 2001s135. Cose Xscale Xscale è una microarchitettura per processori che fornisce ottime prestazioni con bassi consumi energetici.
FACOLTÁ DI INGEGNERIA CORSO DI LAUREA INGEGNERIA INFORMATICA Progetto e Sviluppo di un Algoritmo di Scheduling per il Sistema RTAI Candidato: Luca Marzario.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE.
INTRODUZIONE Il termine Informatica deriva dalla fusione dei termini INFORmazione autoMATICA si intende indicare la scienza che ha il compito di raccogliere,
EVOLUZIONE DEL PC Legge di Moore: La potenza dei calcolatori raddoppia ogni 18 mesi Metà anni 80 (Personal Computer IBM AT) Architettura 16 bit interna,
Informatica giuridica Hardware e software: glossario Lucio Maggio Anno Accademico 2001/2002.
L’Architettura del Sistema di Elaborazione
Informatica per medici
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
ARCHITETTURA DEGLI ELABORATORI
Il Calcolatore Elettronico
Modulo 1 - Concetti di base della Tecnologia dell'Informazione
STRUTTURA GENERALE DI UN ELABORATORE
Appunti di Informatica
L' ARCHITETTURA DI VON NEUMANN
PERCORSO DI FORMAZIONE UTILIZZO DEL COMPUTER 1° livello
Architettura del calcolatore
Configurazione in ambiente Windows Ing. A. Stile – Ing. L. Marchesano – 1/23.
Il Sistema Operativo (1)
La gerarchia di memoria Ing. Rosa Senatore Università degli Studi di Salerno Corso di Calcolatori Elettronici Anno 2013/14.
Progetto di una memoria cache per il processore DLX Andrea Grandi Filippo Malaguti Massimiliano Mattetti Gabriele Morlini Thomas Ricci Progetto di Calcolatori.
Progetto di una memoria cache per il processore DLX Andrea Grandi Filippo Malaguti Massimiliano Mattetti Gabriele Morlini Thomas Ricci Progetto di Calcolatori.
Progetto di una memoria cache per il processore DLX Andrea Grandi Filippo Malaguti Massimiliano Mattetti Gabriele Morlini Thomas Ricci Progetto di Calcolatori.
Progetto di una memoria cache per il processore DLX Andrea Grandi Filippo Malaguti Massimiliano Mattetti Gabriele Morlini Thomas Ricci Progetto di Calcolatori.
Informatica Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
1 Il Buffer Cache Unix (Bach: the Design of the Unix Operating System (cap: 3)
Prima di iniziare… Durata attività: due lezioni frontali + una lezione laboratorio + compiti per casa Prerequisiti: elementi base architettura dei calcolatori.
Hardware e software Hardware Software
Migliorare le prestazioni delle cache
Architettura del calcolatore
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
3  Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione  elaborazione dati  memorizzazione dati 
SCHEDA INFORMATIVA DI UNITÀ. Introduzione Applicazione della gerarchia di memoria –Memoria cache fra la CPU e la memoria centrale Il processore vedrà.
SCHEDA INFORMATIVA DI UNITÀ. Introduzione Applicazione della gerarchia di memoria –Memoria cache fra la CPU e la memoria centrale Il processore vedrà.
Calcolatori Elettronici Il Processore (2)
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali (corso TIE) CORSO LAUREA MAGISTRALE IN SCIENZE E TECNOLOGIE DELLE PRODUZIONI ANIMALI.
La gerarchia di memorie (1) Calcolatori Elettronici Valeria Cardellini Rielaborate da Salvatore Tucci.
MICROPROCESSORI Un processore è un circuito integrato in grado di effettuare operazioni di calcolo o di elaborazione dell'informazione Il circuito contiene.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
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.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
SUMMARY PLCs RIEPILOGO I PLC RIEPILOGO I PLC. »Un PLC consiste principalmente di una CPU, un’area di memoria, circuiti di ingresso ed uscita. »A PLC consists.
I Sistemi Operativi. Definizione Per Sistemi Operativi (di seguito SO) si intendono quei pacchetti software, a loro volta costituiti da più sottoprogrammi.
Click to add text L’ Unità di Elaborazione. Struttura : Unità di controllo: coordina attività CPU ALU: unità aritmetico-logica, esegue operazioni tra.
I Microprocessori Unità 3 del libro Internet Working Sistemi e reti.
Il modello di Von Neumann
Implementazioni di un analizzatore di protocollo Esistono quattro fondamentali tradeoff per la realizzazione di un analizzatore di protocollo:  Analisi.
HARDWARE (2). MEMORIE Due classi di memoria MEMORIA CENTRALE –media capacità - ottima velocità MEMORIA DI MASSA elevata capacità - bassa velocità.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Struttura del Computer
Transcript della presentazione:

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

Utilizzo 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!

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

Interfaccia grafica di SMPCache

Conoscenze basilari per l’uso Struttura fondamentale di un calcolatore elettronico La memoria cache: funzione; metodi di indirizzamento; algoritmi di sostituzione; politiche di scrittura; principio di località (spaziale e temporale).

Cosa analizza L’analisi effettuata da SMPCache consiste nel fornire all’utente 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 cache; numero operazioni effettuate dalla CPU;

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 di cache hits and misses.

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.

La simulazione 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.

Tipi di simulazione 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) Complete execution (la simulazione termina quando tutta la traccia di memoria viene esaminata)

Organizzazione hardware Prima di poter effetuare un’analisi è 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:

Architectural characteristics supported by the simulator 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, 131072, 262144, 524288, 1048576, 2097152 or 4194304 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

Tracce di memoria 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. Per informazioni sulla disponibilità di queste ed altre tracce contattare l’indirizzo email: tracebase@nmsu.edu

Name Classification Description Hydro - - - 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 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 Uses Lempel-Ziv coding for data compression. Compresses a 1 MB file 20 times Wawe Solves Maxwell’s equations and electromagnetic particle equations of motion Swm Solves a system of shallow water equations using finite difference approximations on a 256*256 grid Ucomp The uncompress version of comp

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

1) Simulazione della cache Se si è scelto di effettuare una simulazione della cache, sarà possibile visualizzare l’evoluzione 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 secondo metodo, invece, sarà possibile verificare lo stato di ogni signola linea di cache, oltre al numero e alla percentuale di misses e hits.

Evoluzione cache in formato grafico

Evoluzione cache in formato testo

2) Evoluzione del processore Effettuando un’analisi 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.

Evoluzione del processore

3) Evoluzione della memoria La simulazione della memoria centrale consiste nell’osservare l’evoluzione 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 (all’interno del processore o all’interno di una particolare cache). I risultati ottenuti saranno relativi al blocco selezionato.

Evoluzione di un blocco di memoria all’interno del processore

Evoluzione di un blocco di memoria all’interno della cache

Il problema della coerenza SMPCache simula l’evoluzione della cache anche su sistemi multiprocessore. La presenza di più cache introduce il problema della coerenza della cache, che causa l’inconsistenza dei dati. 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.

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: MSI MESI DRAGON L’idea 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 sull’invalidazione, mentre DRAGON è basato sull’aggiornamento

Protocolli basati sull’invalidazione Nei protocolli basati sull’invalidazione, 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.

Protocolli basati sull’aggiornamento Nei protocolli basati sull’aggiornamento, 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 sull’aggiornamento hanno un miss-rate più alto e generano più traffico nel bus, risultando più complessi nella gestione.

Il bus, invece, può supportare le seguenti transazioni: In entrambe le classi di protocolli, il processore può effettuare diverse richieste: PrRd: lettura; 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. Il bus, invece, può supportare le seguenti transazioni: BusRd: il controllore della cache invia l’indirizzo 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 l’indirizzo al bus e chiede una copia esclusiva del blocco che intende modificare; BusWB: il controllore della cache invia l’indirizzo 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) Ogni BusUpd è seguito da un’azione di Update sulla linea di cache da aggiornare.

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 un’azione nulla.

MSI Questo protocollo di coerenza utilizza tre stati per identificare la situazione dei blocchi di memoria: 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; 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.

Transition diagram for the MSI protocol

MESI Il protocollo MESI utilizza quattro stati: I (invalid): come per MSI; 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; M (modified): come per MSI.

Transition diagram for the MESI protocol

DRAGON Questo protocollo usa quattro stati: 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. 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.

Transition diagram for the DRAGON protocol

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

Alcuni testi da consultare: [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.