Multiprocessori. Classificazione dei multiprocessori

Documenti analoghi
Architetture della memoria

Classificazione delle Architetture Parallele

Sistemi a processori multipli

La gerarchia di memorie (2)

Multiprocessori a memoria condivisa. Multiprocessori a memoria condivisa

Componenti e connessioni. Capitolo 3

static dynamic random access memory

Sistemi RAID. Motivazioni Concetti di base Livelli RAID. Sommario

Architettura hardware

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Sistemi Distribuiti Anno accademico 2009/10

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel

Introduzione alle gerarchie di memoria

Richiami sull architettura del processore MIPS a 32 bit

Cache: 1 livello della gerarchia di memoria

Modelli di programmazione parallela

Fallimenti nella TLB

Corso di Informatica

SISTEMI OPERATIVI DISTRIBUITI

Introduzione alle memorie cache. Cristina Silvano, 06/01/2013 versione 2 1

CPU, RAM, ROM e BUS Corso di Abilità Informatiche Laurea in Fisica

Sottosistemi ed Architetture Memorie

Blocchi di più parole

Capitolo 5 Elementi architetturali di base

La gestione dell I/O (Cap. 5, Tanenbaum)

Parte VIII. Architetture Parallele

Esame di INFORMATICA Lezione 4

Reti a Commutazione. Commutazione di Circuito. Esempio di Rete a Commutazione. Elementi di una Rete a Commutazione

Topologie delle reti di telecomunicazione

ISO- OSI e architetture Client-Server

Le reti rete La telematica telematica tele matica Aspetti evolutivi delle reti Modello con mainframe terminali Definizione di rete di computer rete

Sistemi Distribuiti. Informatica B. Informatica B

ARCHITETTURA DI UN ELABORATORE

Parte II - Reti di Calcolatori ed Internet IL LIVELLO RETE

LA GESTIONE DELLA I/O

Lezione 2 Chiamate di procedura e risposta alle interruzioni

Input/Output (Cap. 7, Stallings)

Modello a scambio di messaggi

Livelli del sottosistema di I/O

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)

Operazioni di I/O. Schema di collegamento fra dispositivi periferici e CPU

Architetture di rete. 4. Le applicazioni di rete

SCD. Sistemi distribuiti: introduzione. Sistemi distribuiti: introduzione. Sistemi distribuiti: introduzione

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

Architettura dei computer

Architettura degli elaboratori Tema d esame del 20/01/2016

Calcolatori Elettronici

Il Modello a scambio di messaggi

Il processore Pentium

Un semplice commutatore a pacchetto

Esercitazione su Gerarchie di Memoria

Metodo di arbitraggio

Gestione della memoria

Architettura dei calcolatori. Architettura dei calcolatori. Cos'è un computer?

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 13 Luglio 2004

Sistemi distribuiti e reti di calcolatori

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

Collegamento dati per accesso ad Internet. Informatica Generale (CdL in E&C), A.A Informatica Generale (CdL in E&C), A.A.

Informatica di Base - 6 c.f.u.

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Politecnico di Milano Scuola di Ingegneria Industriale e dell Informazione. Modelli Funzionali

Struttura delle memorie cache

Struttura interna del sistema operativo Linux

Laboratorio di Programmazione di Rete Laurea Triennale in Informatica Applicata Progetto di fine Corso - A.A. 08/09

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Architettura dei calcolatori e Software di sistema

Gerarchia fisica di memoria 1. Gerarchia fisica di memoria 2. Gerarchia fisica di memoria 3. Ricapitolazione di concetti base

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Architettura di rete. Modelli di Riferimento: TCP/IP e OSI. Modello di riferimento OSI. Modelli di riferimento. architettura di rete

Architettura dei calcolatori

Sistemi operativi e distribuiti

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

Calcolatori Elettronici Parte VIII: linguaggi assemblativi

Macchine Astratte. Luca Abeni. February 22, 2017

Gerarchia di Memoria e Memorie Cache. ma rallenta R / nw. Qui : modi di aumentare velocità di R / nw. dati e codice non tutti uguali

Commutazione di pacchetto

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Dispositivi di I/O. Dispositivi di I/O. Prestazioni degli hard disk. Dispositivi di I/O (2) Architetture dei Calcolatori (lettere A-I)

CAP9. Device drivers

Indirettezza. Fetch/Execute. Fetch/Execute. Introduzione della Indirettezza (indirect)

LE RETI DI COMPUTER. Il modello ISO/OSI Prima parte

Architettura del processore. Modello di calcolatore. Caratteristiche del processore. Caratteristiche del processore. Fondamenti di Informatica

06/05/2009. Caratteristiche desiderabili Ampia capacità Velocità Economicità

Valutazione delle prestazioni

Valutazione delle prestazioni. Valutazione delle prestazioni. Tempo di risposta e throughput. Prestazioni e tempo di esecuzione

Lo strato di applicazione in Internet

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni

Informatica giuridica

Sistemi a Microprocessore

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A.

I circuiti dei calcolatori, le memorie, i bus. I fondamenti della rappresentazione dell informazione e della sua trasmissione ed elaborazione.

Livello logico digitale bus e memorie

Sistemi Operativi: Concetti Introduttivi

Generalità sui protocolli Tecniche di multiplazione Tecniche di accesso Tecniche di commutazione

Influenza dell' I/O sulle prestazioni (globali) di un sistema

Corso di Alfabetizzazione Informatica 2001/2002. La CPU. F. Tortorella Università degli Studi. di Cassino

Transcript:

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Multiprocessori Corso di Sistemi Distribuiti Valeria Cardellini Anno accademico 2009/10 Classificazione dei multiprocessori Focalizziamo l attenzione sui multiprocessori (o architetture MIMD a memoria condivisa) Anche SMP SD - Valeria Cardellini, A.A. 2009/10 1

Architettura di base per SMP Tutti i processori hanno un tempo di accesso uniforme alla memoria Attenzione: memoria condivisa non implica che ci sia una singola memoria, bensì la memoria è suddivisa fisicamente in banchi La memoria ed i processori sono collegati tramite: Uno (o più) bus nel caso dei multiprocessori più semplici Oppure una rete di interconnessione La comunicazione tra processori avviene mediante un ampio spazio di indirizzamento condiviso Occorre gestire i conflitti per l accesso ai dati condivisi in memoria da parte di più processori Occorre sincronizzare gli accessi alla stessa locazione di memoria da parte di più processori Dimensione tipica per SMP: da 2 ad un centinaio processori SD - Valeria Cardellini, A.A. 2009/10 2 Interconnessione con bus e con switch SD - Valeria Cardellini, A.A. 2009/10 3

SMP con bus Un solo bus (sebbene ottimizzato) e la memoria condivisa possono facilmente diventare un collo di bottiglia del sistema Parallelismo dei processori UMA con bus limitato a 16-32 processori SD - Valeria Cardellini, A.A. 2009/10 4 SMP con rete di interconnessione Per aumentare la scalabilità e gestire quindi un numero più elevato di processori occorre una rete di interconnessione E una struttura più scalabile e complessa del bus SD - Valeria Cardellini, A.A. 2009/10 5

Reti di interconnessione Analizziamo due reti di interconnessione usate nei multiprocessori UMA (e NUMA) 1. Commutatore incrociato (crossbar switch) E lo schema più semplice per connettere n processori a k banchi di memoria 2. Reti di commutazione multi-stadio, in particolare rete omega SD - Valeria Cardellini, A.A. 2009/10 6 Crossbar switch (a) Un crossbar switch 8 8 (b) Un crosspoint aperto (c) Un crosspoint chiuso Ad ogni intersezione di una linea di comunicazione orizzontale e verticale è posizionato uno crosspoint (punto di incrocio), che può connettere (o meno) le due linee In figura: 3 switch sono chiusi e connettono le coppie processore-memoria (001-000), (101, 101), (110, 010) SD - Valeria Cardellini, A.A. 2009/10 7

Crossbar switch (2) Quante sono le possibili combinazioni di comunicazione simultanea tra coppie processorememoria? Problema detto Non-Attacking Rooks: come posizionare 8 torri su di una scacchiera senza che si attacchino Soluzione: 8! = 40320 Vantaggio del crossbar switch: è una rete non bloccante E possibile elaborare contemporaneamente qualsiasi insieme di richieste, indipendentemente dallo stato della rete Limiti del crossbar switch: il numero di crosspoint cresce quadraticamente con il numero di processori (memorie) coinvolti Adatti per sistemi UMA di medie dimensioni SD - Valeria Cardellini, A.A. 2009/10 8 Reti di commutazione multi-stadio Per connettere molti nodi si usa un commutatore bidirezionale a due ingressi e due uscite (switch 2 2) Ciascuno dei due ingressi può essere rediretto su ciascuna delle due uscite Nel formato di messaggio: Module: quale banco di memoria, quale processore Address: indirizzo interno al banco di memoria Opcode: tipo di operazione (ad es. READ o WRITE) Value: può contenere l operando (in caso di WRITE) SD - Valeria Cardellini, A.A. 2009/10 9

Reti di commutazione multi-stadio (2) E possibile comporre in molti modi gli switch 2 2 per definire una rete a commutazione multi-stadio La rete omega è una possibile composizione SD - Valeria Cardellini, A.A. 2009/10 10 Rete omega Nell esempio del lucido precedente: 8 processori connessi a 8 memorie, usando in tutto 12 switch 2 2 in 3 stadi Nel caso di n processori ed n memorie: log 2 n stadi, con n/2 switch per stadio; in totale (n/2)log 2 n switch La connessione tra uno stadio è l altro è regolata dalla permutazione perfect shuffle Ω(c) = Ω(i s-1, i s-2,..., i 1, i 0 ) = i s-2,..., i 1, i 0, i s-1 000 000 001 001 010 010 011 011 100 100 101 101 110 110 111 111 SD - Valeria Cardellini, A.A. 2009/10 11

Rete omega (2) Esempio di funzionamento: il processore 011 vuole leggere un dato dal banco di memoria 110 Il processore invia allo switch 1D il messaggio con READ e Module=110-011 Lo switch 1D preleva il bit più significativo per il routing (0: uscita superiore; 1: uscita inferiore) messaggio instradato verso 2D Lo switch 2D analizza il secondo bit più significativo e instrada il messaggio verso 3D Lo switch 3D usa il bit meno significativo per instradare verso il banco di memoria 110 Il dato letto deve essere instradato verso il processore: viene usato il suo indirizzo, leggendo però i bit da destra verso sinistra SD - Valeria Cardellini, A.A. 2009/10 12 Rete omega (3) Il processore 011 legge un dato dal banco di memoria 110 (percorso a); contemporaneamente: Il processore 001 può scrivere un dato dal banco di memoria 001 (percorso b) Ma il processore 000 non può accedere al banco 000 (conflitto sullo switch 3A) SD - Valeria Cardellini, A.A. 2009/10 13

Rete omega (4) La rete omega è bloccante Non tutte le sequenze di richieste possono essere servite contemporaneamente Per minimizzare la possibilità di conflitti e massimizzare il parallelismo delle comunicazioni processore-memoria sono possibili varie tecniche Ad es., usare un sistema di memoria interallacciato: permette di massimizzare il parallelismo perché la maggior parte dei riferimenti a memoria coinvolge indirizzi consecutivi SD - Valeria Cardellini, A.A. 2009/10 14 Coerenza della cache nell architettura SMP La cache locale per ciascun processore permette di ridurre il traffico sul bus o rete di interconnessione e la latenza di accesso ai dati I riferimenti in memoria che si concludono con un cache hit non richiedono un accesso alla memoria condivisa La cache locale può contenere: dati privati: usati solo sullo stesso processore dati condivisi: usati da più processori e che sostanzialmente forniscono il meccanismo di comunicazione tra i processori Accesso ad un dato condiviso: il dato può essere replicato in più cache Nascono problemi di coerenza della cache! Due processori diversi vedono la memoria tramite la propria cache ma le due viste possono essere diverse SD - Valeria Cardellini, A.A. 2009/10 15

Problema della coerenza della cache: esempio P 1 P 2 P 3 u =? u =? $ 4 $ 5 $ u = 5 u=5 3 u= 7 1 u = 5 2 Dispositivi di I/O Memoria I processori vedono valori diversi di u dopo l evento 3 Con cache di tipo write back, non è predicibile quando il nuovo valore di u verrà scritto in memoria I processori che accedono in memoria possono vedere un vecchio valore Inaccettabile per la programmazione! SD - Valeria Cardellini, A.A. 2009/10 16 Coerenza e consistenza In modo informale: un sistema di memoria è coerente se qualsiasi lettura di un dato fornisce il valore del dato scritto più recentemente Coerenza: definisce quali valori possono essere restituiti da un operazione di lettura Consistenza: definisce quando un valore che è stato scritto verrà restituito da un operazione di lettura SD - Valeria Cardellini, A.A. 2009/10 17

Coerenza del sistema di memoria Il sistema di memoria è coerente se: 1. Preserva l ordine di programma: una lettura della locazione X da parte del processore P che segue una scrittura di X da parte di P (senza scritture intermedie in X da parte di un altro processore) restituisce sempre il valore scritto da P 2. Vista coerente della memoria: una lettura della locazione X da parte di un processore che segue una scrittura di X da parte di un altro processore restituisce il valore scritto se lettura e scrittura sono separate da un tempo sufficiente e se non si verificano altre scritture in X tra le due operazioni 3. Serializzazione delle scritture: le operazioni di scrittura di una stessa locazione X sono serializzate, ovvero due scritture della locazione X da parte di una qualsiasi coppia di processori sono viste da tutti i processori nello stesso ordine SD - Valeria Cardellini, A.A. 2009/10 18 Schemi per mantenere la coerenza Schemi per mantenere la coerenza Gli schemi per garantire la coerenza della cache sono dette protocolli di coerenza della cache Attenzione: sono soluzioni implementate in hardware! Riconoscimento dinamico (a tempo di esecuzione) delle potenziali condizioni di incoerenza Alternativa ai protocolli di coerenza: soluzioni software (richiedono l intervento del compilatore e del sistema operativo) Due classi di protocolli di coerenza della cache: Protocolli di directory Directory che contiene informazioni sullo stato di condivisione dei blocchi di memoria presenti nelle cache locali Controllore responsabile della coerenza delle cache Protocolli di snooping Ogni cache che possiede una copia del blocco memorizza anche una copia dello stato di condivisione del blocco La responsabilità della coerenza della cache è distribuita tra i controllori di cache SD - Valeria Cardellini, A.A. 2009/10 19

Protocolli di snooping E la classe di protocolli più semplice per garantire la coerenza della cache Ogni cache che ha una propria copia dei dati contenuti in un blocco di memoria fisica ha anche una copia dello stato di condivisione del blocco Tutte le cache sono collegate alla memoria tramite un mezzo di comunicazione che consente il broadcast Un bus o uno switch Tutti i controllori delle cache monitorano o sbirciano (snoop) il mezzo di comunicazione, per verificare se hanno una copia del blocco di cache che viene richiesto mediante l accesso al bus o allo switch P 1 Bus snoop P n $ $ I/O devices SD - Valeria Cardellini, A.A. 2009/10 20 Mem Cache-memory transaction Protocolli di snooping (2) In seguito alla scrittura di un dato condiviso occorre scegliere se adottare una strategia di: Invalidazione oppure aggiornamento delle copie di un dato condiviso Invalidazione (write-invalidate protocol) Tutte le copie del dato presenti nelle altre cache sono rese non più valide Aggiornamento (write-update protocol) Tutte le copie del dato presenti nelle altre cache sono aggiornate I protocolli di snooping write-update consumano più banda per l aggiornamento: tutti i multiprocessori recenti usano protocolli di tipo write-invalidate SD - Valeria Cardellini, A.A. 2009/10 21

Esempio Esempio di protocollo di snooping con write-invalidate e cache di tipo write-back Scrittura seguita dalla lettura da parte di un altro processore Attività CPU Attività bus Cache CPU A Cache CPU B Contenuto della locazione X in mem 0 CPU A legge X Cache miss per X 0 0 CPU B legge X Cache miss per X 0 0 0 CPU A scrive 1 in X Invalidazione di X 1 0 t CPU B legge X Cache miss per X 1 1 1 SD - Valeria Cardellini, A.A. 2009/10 22 Tecniche basilari di realizzazione Per realizzare un protocollo di snooping writeinvalidate occorre risolvere due problemi 1. Come invalidare tutte le copie esistenti di un blocco di cache in cui si scrive? 2. Come individuare la copia aggiornata di un dato ogni volta che c è un fallimento nell accesso alla cache? SD - Valeria Cardellini, A.A. 2009/10 23

Invalidare le copie di un blocco Tutti i protocolli di coerenza hanno bisogno di un metodo che renda seriali gli accessi ad uno stesso blocco di cache Il bus singolo è il fattore chiave per realizzare un protocollo di snooping di tipo write-invalidate Il bus forza la serializzazione degli accessi in lettura e scrittura e quindi garantisce la serializzazione delle scritture In caso di scritture contemporanee di blocchi diversi: il primo processore che acquisisce il bus invalida le altre copie del blocco che sta scrivendo In caso di scritture contemporanee dello stesso blocco: il primo processore che acquisisce il bus invalida le altre copie del blocco SD - Valeria Cardellini, A.A. 2009/10 24 Individuare la copia aggiornata di un dato Strategia di scrittura write-through: si ottiene il dato aggiornato dalla memoria Più semplice ma necessita di banda di memoria sufficiente Strategia di scrittura write-back: la copia più recente del dato può essere in una cache anziché in memoria Più difficile Le due strategie possono usare lo stesso meccanismo di snooping 1. Controllare ogni indirizzo in transito sul bus 2. Se un processore possiede una copia dirty del blocco di cache richiesto, lo fornisce in risposta ad una richiesta di lettura ed interrompe l accesso in memoria E più complicato (e può essere anche più lento) ottenere il blocco da una cache anziché dalla memoria Write-back richiede meno banda di memoria Quindi supporta un maggior numero di processori E la strategia usata dalla maggior parte dei multiprocessori SD - Valeria Cardellini, A.A. 2009/10 25

Stato dei blocchi di cache Per implementare un protocollo di snooping writeinvalidate Si usano i bit di gestione dello stato già presenti per ogni blocco di cache (valid, dirty) Si usa il valid bit per l invalidazione Per ogni blocco si aggiunge un bit di gestione che segnala la condivisione del blocco (shared) In caso di scrittura di un blocco condiviso, il controllore della cache genera un invalidazione sul bus e marca il blocco come modificato (o esclusivo, a seconda del protocollo di snooping specifico) SD - Valeria Cardellini, A.A. 2009/10 26 Esempio di protocollo di snooping Analizziamo un esempio di protocollo di snooping con write-invalidate e strategia di scrittura di tipo write-back Protocollo di snooping implementato mediante un controllore a stati finiti (FSM) per ogni blocco di cache, che risponde a richieste provenienti dal processore e dal bus modificando lo stato del blocco di cache Tre stati possibili per ogni blocco di cache: shared (solo lettura): blocco pulito, condiviso (presente in almeno una cache) ed aggiornato con la memoria exclusive (lettura/scrittura): blocco dirty in esattamente una cache e non può essere condiviso Il fatto che lo stato sia modificato implica che il blocco sia esclusivo invalid: blocco contenente dati non validi Il protocollo analizzato assume che le operazioni siano atomiche SD - Valeria Cardellini, A.A. 2009/10 27

FSM per CPU FSM per le richieste del processore per ogni blocco di cache Invalid CPU read Place read miss on bus CPU read hit Shared (read only) CPU write Place write miss on bus CPU read hit CPU write hit Exclusive (read/write) CPU write Place write miss on bus CPU write miss (?) Write back cache block Place write miss on bus SD - Valeria Cardellini, A.A. 2009/10 28 FSM per operazioni sul bus FSM per le richieste sul bus per ogni blocco di cache Invalid Write miss for this block Shared (read only) Write miss for this block Write back block; (abort memory access) Exclusive (read/write) Read miss for this block Write back block; (abort memory access) SD - Valeria Cardellini, A.A. 2009/10 29

FSM per CPU - sostituzione del blocco FSM per le richieste del processore per ogni blocco di cache CPU write Place Write Miss on bus Invalid CPU read Place read miss on bus CPU read miss Write back block, place read miss on bus CPU read hit Shared (read only) CPU read miss Place read miss on bus Cache Block State CPU read hit CPU write hit Exclusive (read/write) CPU write Place write miss on bus CPU write miss Write back cache block Place write miss on bus SD - Valeria Cardellini, A.A. 2009/10 30 FSM per le richieste del processore per ogni blocco di cache e per le richieste sul bus per ogni blocco di cache Write miss for this block Write back block; (abort memory access) CPU read hit CPU write hit FSM completo Invalid CPU read Place read miss CPU write on bus Place write miss on bus Exclusive (read/write) Write miss for this block CPU read miss Write back block, place read miss on bus CPU read hit Shared (read only) CPU read miss Place read miss on bus CPU write Place write miss on bus Read miss for this block Write back block; (abort memory access) CPU write miss Write back cache block Place write miss on bus SD - Valeria Cardellini, A.A. 2009/10 31

Esempio P1 P2 Bus Memory step State Addr Value State Addr Value Action Proc. Addr Value Addr Value P1: Write 10 to A1 P1: P1: Read Read A1 A1 P2: Read A1 P2: Write 20 to A1 P2: Write 40 to A2 Assumiamo che A1 e A2 mappino sullo stesso blocco di cache, e che lo stato iniziale della cache sia invalid SD - Valeria Cardellini, A.A. 2009/10 32 Esempio (2) P1 P2 Bus Memory step State Addr Value State Addr Value Action Proc. Addr Value Addr Value P1: Write 10 to A1 Excl. A1 10 WrMs P1 A1 P1: P1: Read Read A1 A1 P2: Read A1 P2: Write 20 to A1 P2: Write 40 to A2 Assumiamo che A1 e A2 mappino sullo stesso blocco di cache SD - Valeria Cardellini, A.A. 2009/10 33

Esempio (3) P1 P2 Bus Memory step State Addr Value State Addr Value Action Proc. Addr Value Addr Value P1: Write 10 to A1 Excl. A1 10 WrMs P1 A1 P1: P1: Read Read A1 A1 Excl. A1 10 P2: Read A1 P2: Write 20 to A1 P2: Write 40 to A2 Assumiamo che A1 e A2 mappino sullo stesso blocco di cache SD - Valeria Cardellini, A.A. 2009/10 34 Esempio (4) P1 P2 Bus Memory step State Addr Value State Addr Value Action Proc. Addr Value Addr Value P1: Write 10 to A1 Excl. A1 10 WrMs P1 A1 P1: P1: Read Read A1 A1 Excl. A1 10 P2: Read A1 Shar. A1 RdMs P2 A1 Shar. A1 10 WrBk P1 A1 10 A1 10 Shar. A1 10 RdDa P2 A1 10 A1 10 P2: Write 20 to A1 P2: Write 40 to A2 Assumiamo che A1 e A2 mappino sullo stesso blocco di cache SD - Valeria Cardellini, A.A. 2009/10 35

Esempio (5) P1 P2 Bus Memory step State Addr Value State Addr Value Action Proc. Addr Value Addr Value P1: Write 10 to A1 Excl. A1 10 WrMs P1 A1 P1: P1: Read Read A1 A1 Excl. A1 10 P2: Read A1 Shar. A1 RdMs P2 A1 Shar. A1 10 WrBk P1 A1 10 A1 10 Shar. A1 10 RdDa P2 A1 10 A1 10 P2: Write 20 to A1 Inv. Excl. A1 20 WrMs P2 A1 A1 10 P2: Write 40 to A2 Assumiamo che A1 e A2 mappino sullo stesso blocco di cache SD - Valeria Cardellini, A.A. 2009/10 36 Esempio (6) P1 P2 Bus Memory step State Addr Value State Addr Value Action Proc. Addr Value Addr Value P1: Write 10 to A1 Excl. A1 10 WrMs P1 A1 P1: P1: Read Read A1 A1 Excl. A1 10 P2: Read A1 Shar. A1 RdMs P2 A1 Shar. A1 10 WrBk P1 A1 10 A1 10 Shar. A1 10 RdDa P2 A1 10 A1 10 P2: Write 20 to A1 Inv. Excl. A1 20 WrMs P2 A1 A1 10 P2: Write 40 to A2 WrMs P2 A2 A1 10 Excl. A2 40 WrBk P2 A1 20 A1 20 Assumiamo che A1 e A2 mappino sullo stesso blocco di cache, ma A1 A2 SD - Valeria Cardellini, A.A. 2009/10 37

Altri protocolli di snooping Il protocollo di snooping esaminato è a 3 stati ed è anche chiamato MSI (Modified Shared Invalid) Esistono varianti che estendono il protocollo esaminato ed hanno 4 o 5 stati del blocco di cache Obiettivo: ridurre il traffico sul mezzo di comunicazione condiviso MESI (Modified Exclusive Shared Invalid) Lo stato exclusive indica che il blocco di cache è presente solo in una cache ma è pulito ed aggiornato con la memoria Lo stato modified è analogo allo stato esclusivo del protocollo da noi analizzato MOSI (Modified Owned Shared Invalid) Aggiunto lo stato owned per assegnare al processore proprietario del blocco la responsabilità di aggiornamento nei confronti degli altri processori e della memoria MOESI (Modified Owned Exclusive Shared Invalid) SD - Valeria Cardellini, A.A. 2009/10 38 Coerenza basata su snooping Un protocollo di coerenza basato su snooping ha bisogno di: comunicare (tramite broadcast) con tutte le cache in occasione di ogni fallimento, compresi i casi di scrittura di dati potenzialmente condivisi L assenza di una struttura centralizzata che tenga traccia dello stato della cache E il vantaggio dei protocolli basati su snooping: poco costosi Ma il loro limite: scalabilità Analizziamo l alternativa per avere una coerenza scalabile: coerenza basata su directory Consideriamo l implementazione su un architettura NUMA SD - Valeria Cardellini, A.A. 2009/10 39

Architetture NUMA Come nelle architetture UMA, la comunicazione avviene ancora mediante uno spazio di indirizzamento condiviso Memorie fisicamente separate ma indirizzate come un unico spazio condiviso Qualunque processore può accedere a qualunque locazione di memoria, ma con tempi di accesso non uniformi Anche detti multiprocessori a memoria condivisa distribuita (Distributed Shared Memory o DSM) SD - Valeria Cardellini, A.A. 2009/10 40 Architetture NUMA (2) Per implementare la coerenza della cache, ogni nodo ha anche una directory Ogni directory tiene traccia di quali cache condividono gli indirizzi di memoria relativi alla porzione di memoria contenuta nel nodo SD - Valeria Cardellini, A.A. 2009/10 41

Le basi di un protocollo di directory Due operazioni fondamentali Gestire il fallimento di un accesso in lettura Gestire la scrittura di un blocco pulito di cache e condiviso (la gestione del fallimento in scrittura di un blocco condiviso è combinazione delle altre due operazioni) Tre stati possibili per ogni blocco di cache: shared (solo lettura): blocco pulito, condiviso (presente in almeno una cache) ed aggiornato con la memoria exclusive (lettura/scrittura): blocco dirty in esattamente una cache e non può essere condiviso invalid: blocco contenente dati non validi SD - Valeria Cardellini, A.A. 2009/10 42 Le basi di un protocollo di directory (2) Occorre tenere traccia di: Lo stato di ciascun blocco di memoria potenzialmente condiviso Quali sono i processori che ne posseggono una copia, per poter invalidare tutte le copie in caso di scrittura del blocco Per ciascun blocco di memoria si usa un vettore di bit: in caso di blocco condiviso, il bit indica se il processore corrispondente alla posizione del bit possiede o meno una copia del blocco Distinguiamo i processori in: Nodo locale: dove ha origine la richiesta Nodo home (di residenza): dove ha origine la locazione di memoria Nodo remoto: ha una copia del blocco (condivisa o modificata) Analizziamo i possibili messaggi scambiati tra i nodi per mantenere la coerenza P = numero del processore richiedente A = indirizzo richiesto D = contenuto del dato SD - Valeria Cardellini, A.A. 2009/10 43

Messaggi del protocollo di directory Message type Source Destination Msg Content Read miss Local cache Home directory P, A Processor P reads data at address A; make P a read sharer and request data Write miss Local cache Home directory P, A Processor P has a write miss at address A; make P the exclusive owner and request data Invalidate Home directory Remote caches A Invalidate a shared copy at address A Fetch Home directory Remote cache A Fetch the block at address A and send it to its home directory; change the state of A in the remote cache to shared Fetch/Invalidate Home directory Remote cache A Fetch the block at address A and send it to its home directory; invalidate the block in the cache Data value reply Home directory Local cache Data Return a data value from the home memory (read miss response) Data write back Remote cache Home directory A, Data Write back a data value for address A (invalidate response) SD - Valeria Cardellini, A.A. 2009/10 44 Diagramma delle transizioni di stato per un blocco di cache in sistema basato su directory Stati identici al caso con snooping; transizioni di stato molto simili al caso con snooping Transizioni causate da miss in lettura, miss in scrittura, invalidazioni, richieste di reperimento dati Generati messaggi di miss in lettura e miss in scrittura verso la home directory Miss in scrittura che erano inviati in broadcast sul bus nel caso di snooping => richieste di invalidazione esplicita e richieste di reperimento di dato nel caso di directory SD - Valeria Cardellini, A.A. 2009/10 45

FSM per ogni blocco di cache CPU Read hit FSM per richieste del processore per ogni blocco di memoria Stato invalid se in memoria Fetch/Invalidate Send data write back message to home directory CPU read hit CPU write hit Invalid Exclusive (read/write) Invalidate CPU Read Send read miss message CPU Write: Send write miss msg to home d. Shared (read/only) CPU read miss: Send read miss CPU Write: Send write miss message to home directory Fetch: Send data write back message to home directory CPU read miss: send data write back message and read miss to home directory CPU write miss: send data write back message and write miss to home directory SD - Valeria Cardellini, A.A. 2009/10 46 Diagramma delle transizioni di stato della directory Stessi stati e struttura del diagramma delle transizioni di un singolo blocco di cache Due tipi di azioni alla ricezione di un messaggio: aggiornamento dello stato della directory e invio di ulteriori messaggi per soddisfare la richiesta Tiene traccia dello stato di ciascun blocco in memoria Deve memorizzare anche l insieme dei processori che possiedono una copia del blocco: sharers SD - Valeria Cardellini, A.A. 2009/10 47

FSM per richieste della directory per ogni blocco di memoria Stato uncached se in memoria Data Write Back: Sharers = {} (Write back block) Write Miss: Sharers = {P}; send Fetch/Invalidate; send Data Value Reply msg to remote cache FSM per directory Uncached Exclusive (read/write) Read miss: Sharers = {P} send Data Value Reply Write Miss: Sharers = {P}; send Data Value Reply msg Shared (read only) Write Miss: send Invalidate to Sharers; then Sharers = {P}; send Data Value Reply msg Read miss: Sharers += {P}; send Fetch; send Data Value Reply msg to remote cache (Write back block) Read miss: Sharers += {P}; send Data Value Reply SD - Valeria Cardellini, A.A. 2009/10 48 Riferimenti per multiprocessori Capitolo 4 di Hennessy & Patterson, Computer Architecture: A Quantitative Approach, 4th edition Capitolo 8 di Tanenbaum, Structured Computer Organization, 5th edition Di entrambi i testi esiste la traduzione in italiano SD - Valeria Cardellini, A.A. 2009/10 49