La gerarchia di memorie (2)

Documenti analoghi
Gerarchia di memoria

La gerarchia di Memoria

La gerarchia di Memoria

Introduzione alle gerarchie di memoria

Miglioramento delle prestazioni

La memoria cache. Lab di Calcolatori

Università degli Studi di Cassino

Gerarchia di memoria

Cache: 1 livello della gerarchia di memoria

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

Il Sottosistema di Memoria

static dynamic random access memory

Von Neumann Bottleneck

Criteri di caratterizzazione di una memoria

Architettura degli elaboratori - 2 -

Gerarchia di memoria

Le memorie Cache n-associative

Struttura delle memorie cache

PRESTAZIONI. senza e con memoria cache

Il Sottosistema di Memoria

Architettura degli elaboratori - 2 -

Memoria Cache. G. Lettieri. 16 Marzo 2017

Gerarchie di memoria Politiche di rimpiazzo dei blocchi

Blocchi di più parole

La Memoria Cache. Informatica B. Daniele Loiacono

Calcolatori Elettronici

REGISTRI MEMORIA CACHE MEMORIA PRINCIPALE DISCO. Figura 1 Gerarchia di memoria.

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

Il quadro di insieme. Tecnologie per la memoria e gerarchie di memoria. Un ripasso: latch D e flip-flop D. Un ripasso: clock

Struttura delle memorie cache

Gerarchia di Memorie

Lezione 22 La Memoria Interna (1)

Fallimenti nella TLB

Esercizi sulle prestazioni delle memorie cache

Università degli Studi di Cassino e del Lazio Meridionale

Corso di Calcolatori Elettronici I. Memorie. Prof. Roberto Canonico

Esercitazione su Gerarchie di Memoria

Esercitazione su Gerarchie di Memoria

La memoria - tecnologie

La Gerarchia delle Memorie. Calcolatori Elettronici II

Capitolo 2: Strutture dei sistemi di calcolo

Università degli Studi di Cassino e del Lazio Meridionale

Esercitazione su Instruction Level Parallelism

Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore:

Instruction Level Parallelism Andrea Gasparetto

Il processore Pentium

Circuiti di Indirizzamento della Memoria

La memoria - tecnologie

Il Sottosistema di Memoria

Gli attori principali di un architettura

Le gerarchie di memoria: concetti e organizzazione. Mariagiovanna Sami

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

Architettura hardware

Corso di Fondamenti di Informatica Elementi di Architettura

8 bit per la parola nel blocco 10 bit per l insieme (gruppo) nella cache 12 bit di etichetta. Esercizio 3 Memoria Cache

La memoria - tecnologie

Struttura delle cache a indirizzamento diretto

La tecnologia delle memorie

Gestione della memoria

Tecnologie per la memoria e gerarchie di memoria

Architetture Avanzate dei Calcolatori. Valeria Cardellini. Divario delle prestazioni processore- memoria

ORGANIZZAZIONE DEI CALCOLATORI LE GERARCHIE DI MEMORIA

Prefazione Unit`a di misura xiii La memoria cache

1.4b: Hardware. (Memoria Centrale)

Valutazione delle prestazioni

CPU pipeline 4: le CPU moderne

DIAGRAMMI TEMPORALI relativi all'esecuzione di una istruzione e agli accessi alla memoria:

Richiami sull architettura del processore MIPS a 32 bit

La memoria - tecnologie

Capitolo 5 Le infrastrutture HardWare. La memoria centrale

Componenti e connessioni. Capitolo 3

Componenti principali

Architettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori

La struttura gerarchica delle memorie

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

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Valutazione delle prestazioni

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

Struttura di un elaboratore

Memorie Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella

Richiami sull architettura del processore MIPS a 32 bit

Architettura degli Elaboratori

Esame di INFORMATICA Lezione 4

Mari, Buonanno, Sciuto Informatica e cultura dell informazione McGraw-Hill

Come aumentare le prestazioni Cenni alle architetture avanzate

La struttura gerarchica delle memorie

Memoria Virtuale e I/O

Calcolatori Elettronici II parte (CdL Ingegneria Informatica) Esame del 22 settembre 2011 tempo a disposizione: 1 ora e 30 minuti

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

Esercizi sulla memoria cache - Informatica 2 - L. Breveglieri 1

L'architettura del processore MIPS

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Compilatori e Livelli di Compilazione

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU:

Compilatori e Livelli di Compilazione

Architettura hardware

Memorie a semiconduttore

Sistemi RAID. Motivazioni Concetti di base Livelli RAID. Sommario

Clocking. Architetture dei Calcolatori (Lettere. di Memoria. Elemento. scritti. Tecnologie per la Memoria e Gerarchie di Memoria

Memoria Cache. La memoria cache

Transcript:

La gerarchia di memorie (2) Architetture Avanzate dei Calcolatori Valeria Cardellini Migliorare le prestazioni delle cache Consideriamo la formula del tempo medio di accesso in memoria (AMAT) AMAT = hit time + miss rate miss penalty Come possiamo migliorare l AMAT? Riducendo i fattori presenti nella formula: hit time, miss rate e miss penalty Analizziamo quattro categorie di ottimizzazioni delle cache Riduzione del miss penalty Riduzione del miss rate Riduzione del miss penalty e del miss rate tramite parallelismo Riduzione dell hit time AAC - Valeria Cardellini, A.A. 2007/08 1

Ridurre il miss penalty Esaminiamo le seguenti soluzioni per ridurre il miss penalty Cache multi-livello Critical word first, early restart Priorità ai read miss rispetto alle scritture Fusione sul write buffer Victim cache AAC - Valeria Cardellini, A.A. 2007/08 2 Cache multi-livello livello Gerarchia composta da due o più livelli di cache Cache più piccole e veloci vicino al processore Cache più grandi e lente scendendo nella gerarchia Anche 3 livelli di cache nei processori moderni Nel caso di 2 livelli (L1 e L2): Cache di primo livello abbastanza piccola da essere molto veloce Cache di secondo livello abbastanza grande da soddisfare molti degli accessi che altrimenti andrebbero in DRAM AMAT = hit time L1 + miss rate L1 miss penalty L1 miss penalty L1 = hit time L2 + miss rate L2 miss penalty L2 AMAT = hit time L1 + miss rate L1 (hit time L2 + miss rate L2 miss penalty L2 ) miss rate L2 si misura sugli accessi alla cache L1 che non hanno avuto successo AAC - Valeria Cardellini, A.A. 2007/08 3

Cache multi-livello livello (2) Local miss rate (frequenza di fallimento locale): numero di miss in una cache diviso il numero totale di accessi alla stessa cache Per cache L1: local miss rate L1 = miss rate L1 Per cache L2: local miss rate L2 = miss rate L2 Global miss rate (frequenza di fallimento globale): numero di miss nella cache diviso il numero totale di accessi generato dal processore Per cache L1: global miss rate L1 = miss rate L1 Per cache L2: global miss rate L2 = miss rate L1 miss rate L2 AAC - Valeria Cardellini, A.A. 2007/08 4 Ridurre il miss penalty con cache multi-livello livello La cache di secondo livello ha senso se è molto più grande della cache di primo livello La velocità della cache di primo livello influenza il ciclo di clock del processore La velocità della cache di secondo livello influenza solo il miss penalty della cache di primo livello (miss penalty L1 ) Per la cache di secondo livello si può usare un organizzazione semplice (es. indirizzamento diretto) I dati presenti nella cache di primo livello sono presenti anche nella cache di secondo livello? Due soluzioni: Multi-level inclusion: i dati in L1 sono sempre presenti in L2 Si mantiene la consistenza tra cache e I/O Multi-level exclusion: i dati in L1 non sono mai presenti in L2 Soluzione ragionevole per cache L2 di piccole dimensioni AAC - Valeria Cardellini, A.A. 2007/08 5

Early restart e critical word first Early restart Miss penalty = latenza per la prima parola + tempo di trasferimento per il resto del blocco Con l early restart si riprende l esecuzione non appena arriva la parola richiesta (senza aspettare tutto il blocco) Efficace per accessi ad istruzioni Critical word first (anche detta requested word first) In presenza di read miss, la parola mancante viene richiesta alla memoria di livello inferiore e inviata al processore non appena arriva Il processore inizia l esecuzione mentre si riempie anche il resto del blocco Queste tecniche sono utili per ridurre il miss penalty solo se i blocchi sono grandi AAC - Valeria Cardellini, A.A. 2007/08 6 Priorità ai read miss rispetto alle scritture Cache di tipo write-through con write buffer Il write buffer potrebbe contenere il valore di una parola richiesta in caso di read miss Soluzione più semplice: un read miss attende che il write buffer sia vuoto (lenta!) Soluzione più veloce: in caso di read miss, si controlla il contenuto del write buffer; se non c è conflitto, si serve il read miss (che riceve priorità sulla scrittura) Cache di tipo write-back Il read miss può rimpiazzare un blocco dirty Si copia il blocco dirty in un buffer, si effettua la lettura dalla memoria di livello inferiore, infine si scrive il blocco dirty dal buffer in memoria AAC - Valeria Cardellini, A.A. 2007/08 7

Fusione sul write buffer Si usa il write buffer anche per cache write-back Se il write buffer è vuoto: Vi si scrivono i dati e l indirizzo completo; dal suo punto di vista, il processore ha finito la scrittura Se il write buffer contiene blocchi modificati: Si controlla l indirizzo dei dati da memorizzare; se il nuovo indirizzo è uguale a quello di un elemento valido nel write buffer, i nuovi dati vengono combinati con tale elemento (write merging) Se il write buffer è pieno e non ci sono coincidenze di indirizzo: Il processore aspetta finché nel write buffer non si libera una posizione AAC - Valeria Cardellini, A.A. 2007/08 8 Victim cache Idea base: ciò che viene scartato potrebbe essere di nuovo utile a breve Si inserisce una piccola cache associativa (detta victim cache) fra la cache ed il suo percorso di riempimento La victim cache contiene solo i blocchi scartati dalla cache in caso di miss In caso di miss, i blocchi scartati e messi nella victim cache vengono verificati prima di passare alla memoria di livello inferiore Se il blocco richiesto è nella victim cache, si scambia questo blocco con quello in cache La victim cache è particolarmente utile per ridurre il miss penalty causato dai miss di conflitto AAC - Valeria Cardellini, A.A. 2007/08 9

Ridurre il miss rate Soluzioni già esaminate Per ridurre il miss rate si può: Aumentare la dimensione del blocco Si sfrutta il principio di località spaziale e si riducono i compulsory miss (ma aumenta il miss penalty) Aumentare la dimensione della cache Si riducono i capacity miss ed i conflict miss (ma aumenta l hit time ed il costo) Aumentare il grado di associatività Si riducono i conflict miss (ma aumenta l hit time) Ottimizzazioni del compilatore AAC - Valeria Cardellini, A.A. 2007/08 10 Ottimizzazioni del compilatore Le altre tecniche per ridurre il miss rate richiedono modifiche o aggiunte all hardware Ottimizzazioni del codice effettuate durante la compilazione permettono di ridurre il numero di miss senza modificare l hardware Ottimizzazioni orientate a risolvere separatamente instruction miss e data miss Le tecniche di ottimizzazione attuate dal compilatore riorganizzano il codice in modo da migliorare la località temporale e/o spaziale Analizziamo due tecniche per ridurre il data miss rate: Loop interchange Blocking AAC - Valeria Cardellini, A.A. 2007/08 11

Loop interchange Obiettivo del loop interchange: migliorare la località spaziale Si scambia l ordine di cicli annidati in modo che si acceda ai dati nell ordine in cui questi sono memorizzati Esempio In C le matrici (array bidimensionali) sono memorizzate secondo il row major order Loop /* Before */ interchange /* After */ for (j=0; j<100; j++) for (i=0; i<5000; i++) for (i=0; i<5000; i++) for (j=0; j<100; j++) x[i][j] = 2*x[i][j]; x[i][j] = 2*x[i][j]; AAC - Valeria Cardellini, A.A. 2007/08 12 Blocking Obiettivo del blocking: migliorare la località temporale Per un algoritmo in cui ad alcune matrici si accede per righe e ad altre per colonne, memorizzare le matrici per righe piuttosto che per colonne non migliora le prestazioni Con il blocking, invece di operare su righe o colonne intere, l algoritmo opera su sottomatrici (blocchi): lo scopo è massimizzare l accesso ai dati in cache prima che vengano sostituiti AAC - Valeria Cardellini, A.A. 2007/08 13

Blocking (2) Esempio: moltiplicazioni tra due matrici quadrate y e z N=6 i=1 /* Before */ for (i=0; i<n; i++) for (j=0; j<n; j++) { r = 0; for (k=0; k<n; k++) r += y[i][k]*z[k][j]; x[i][j] = r; } x j 0 1 2 3 4 5 y k 0 1 2 3 4 5 z j 0 1 2 3 4 5 i 0 1 2 0 1 i 2 k 3 4 5 3 4 5 AAC - Valeria Cardellini, A.A. 2007/08 14 0 1 2 3 4 5 B=3 Blocking (3) /* After */ for (jj=0; jj<n; jj+=b) for (kk=0; kk<n; kk+=b) for (i=0; i<n; i++) for (j=jj; j<min(jj+b,n); j++) { r = 0; for (k=kk; k<min(kk+b,n); k++) r += y[i][k]*z[k][j]; x[i][j] += r; } x j 0 1 2 3 4 5 y k 0 1 2 3 4 5 z j 0 1 2 3 4 5 i 0 1 2 0 1 i 2 k 3 4 5 3 4 5 Il codice lavora su una sottomatrice di dimensione BxB (B è detto fattore di blocking) AAC - Valeria Cardellini, A.A. 2007/08 15 0 1 2 3 4 5

Ridurre il miss penalty e miss rate tramite parallelismo Principio: sovrapporre l esecuzione del programma all attività della gerarchia di memorie A volte gli approcci sono ottimizzati per le specifiche architetture di processori Soluzioni esaminate Cache non bloccanti Prefetching hardware di istruzioni e dati Prefetching controllato dal compilatore AAC - Valeria Cardellini, A.A. 2007/08 16 Cache non bloccanti Il processore continua a leggere istruzioni dalla I-cache durante un D-cache miss Più in generale: la D-cache continua a fornire hit anche durante un miss ( hit under miss ) E una tecnica che ha senso per processori dotati di parallelismo intrinseco La complessità del controllore della cache aumenta AAC - Valeria Cardellini, A.A. 2007/08 17

Prefetching hardware di istruzioni e dati Idea base: lettura anticipata (prefetch) di elementi (istruzioni o dati) prima che siano richiesti dal processore Prefetching di istruzioni Spesso fatto in hardware In caso di miss, il processore legge il blocco richiesto e quello immediatamente consecutivo. Il blocco richiesto viene portato in cache, quello anticipato viene posto nell instruction stream buffer (ISB) Se un blocco richiesto è presente nell ISB, lo si legge dall ISB, si cancella la richiesta alla cache, si invia la prossima richiesta di prefetch Prefetching di dati In modo simile a quello delle istruzioni AAC - Valeria Cardellini, A.A. 2007/08 18 Prefetching controllato dal compilatore Il compilatore inserisce istruzioni di prefetch per richiedere i dati prima che occorrano Register prefetch: carica il valore in un registro Cache prefetch: carica i dati in cache AAC - Valeria Cardellini, A.A. 2007/08 19

Ridurre l hit time Per ridurre l hit time si può: Usare cache piccole e semplici Cache L2 di dimensioni contenute è integrabile sul chip Un organizzazione semplice (es. mappatura diretta) implica un tempo di accesso inferiore (occorre compiere un minor numero di operazioni) Accesso alla cache in pipeline Aumenta il numero di stadi della pipeline Esempio: nel Pentium 4, occorrono 4 cicli di clock per accedere alla I-cache Trace cache Soluzione adottata nel Pentium 4 per evitare di non dover decodificare in micro-istruzioni una istruzione già incontrata durante l'esecuzione del programma Soluzione non più usata nelle architetture Intel Core AAC - Valeria Cardellini, A.A. 2007/08 20 Progettare il sistema di memoria per supportare le cache Si può ridurre il miss penalty aumentando la larghezza di banda del bus tra DRAM e cache, in modo tale da poter usare blocchi di grandi dimensioni Tre organizzazioni possibili del sistema di memoria Semplice Larga Interallacciata (interleaved) Obiettivo: aumentare la larghezza di banda (fisicamente o logicamente) AAC - Valeria Cardellini, A.A. 2007/08 21

Come aumentare la larghezza di banda della memoria Tre organizzazioni del sistema di memoria CPU CPU CPU Cache Multiplexor Cache Cache Bus Bus Bus Memory Memory bank 0 Memory bank 1 Memory bank 2 Memory bank 3 Memory b. Wide memory organization c. Interleaved memory organization Semplice a. One-word-wide memory organization CPU, Cache, Bus, Memoria: stessa larghezza (es. 32 bit) Larga Interallacciata CPU, Cache, Bus: 1 parola Memoria a N banchi (es. N=4) CPU/Mux: 1 parola Mux/Cache, Bus, Memoria: N parole (es. Alpha: 64 bit e 256 bit) AAC - Valeria Cardellini, A.A. 2007/08 22 Organizzazione interallacciata Organizzazione della memoria principale in banchi con accesso indipendente m parole aventi indirizzi consecutivi sono allocate in altrettanti banchi di memoria distinti e consecutivi L accesso al blocco da leggere in memoria è fatto in parallelo su ogni banco Obiettivo: accedere in parallelo a tutte le parole in un blocco di m parole consecutive Bus di larghezza standard AAC - Valeria Cardellini, A.A. 2007/08 23

Organizzazione interallacciata (2) Accesso senza interallacciamento: Tempo di accesso Tempo di ciclo CPU Memoria D1 disponibile Inizio accesso per D1 Inizio accesso per D2 Accesso con interallacciamento a 4 vie: CPU Banco memoria 0 Banco memoria 1 Banco memoria 2 Accesso banco 0 Accesso banco 1 Accesso banco 2 Accesso banco 3 Nuovo accesso a banco 0 Banco memoria 3 AAC - Valeria Cardellini, A.A. 2007/08 24 Esempio Tempi di accesso al sistema di memoria: 1 ciclo di clock del bus per inviare l indirizzo 15 cicli di clock del bus per ogni accesso in DRAM 1 ciclo di clock del bus per inviare una parola Cache con blocchi da 4 parole Con organizzazione semplice: Larghezza del bus e della memoria pari ad 1 parola Miss penalty = 1 + 4 15 + 4 1 = 65 cicli di clock del bus Transfer rate = # byte / cicli di clock = 4 4 / 65 = 0,25 B/ciclo AAC - Valeria Cardellini, A.A. 2007/08 25

Esempio (2) Con organizzazione larga: Larghezza del bus e della memoria pari a 2 parole Miss penalty = 1 + 2 15 + 2 1 = 33 cicli di clock del bus Transfer rate = # byte / cicli di clock = 4 4 / 33 = 0,48 B/ciclo Larghezza del bus e della memoria pari a 4 parole Miss penalty = 1 + 1 15 + 1 1 = 17 cicli di clock del bus Transfer rate = # byte / cicli di clock = 4 4 / 17 = 0,94 B/ciclo Con organizzazione interallacciata: Larghezza del bus e della memoria pari a 1 parola e memoria con 4 banchi interallacciati Miss penalty = 1 + 1 15 + 4 1 = 20 cicli di clock del bus Transfer rate = # byte / cicli di clock = 4 4 / 20 = 0,8 B/ciclo AAC - Valeria Cardellini, A.A. 2007/08 26