Gerarchie di memoria Divide et impera. Gerarchie di memoria La congettura 90/10. Gerarchie di memoria Schema concettuale



Documenti analoghi
Memorie Caratteristiche principali

Memorie Caratteristiche principali

Capitolo 11 La memoria cache

Strutture di Memoria 1

La memoria - generalità

Gerarchie di memoria Politiche di rimpiazzo dei blocchi

La memoria centrale (RAM)

Corso di Informatica

Organizzazione della memoria principale Il bus

Architettura dei calcolatori II parte Memorie

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Memoria secondaria. Architettura dell elaboratore. Memoria secondaria. Memoria secondaria. Memoria secondaria

PROGETTAZIONE FISICA

Architettura dei computer

Informatica 3. LEZIONE 21: Ricerca su liste e tecniche di hashing. Modulo 1: Algoritmi sequenziali e basati su liste Modulo 2: Hashing

La Memoria Cache. Informatica B. Daniele Loiacono

Materiali per il modulo 1 ECDL. Autore: M. Lanino

Gerarchia delle memorie

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Tipi classici di memoria. Obiettivo. Principi di localita. Gerarchia di memoria. Fornire illimitata memoria veloce. Static RAM. Problemi: Dynamic RAM

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

DMA Accesso Diretto alla Memoria

MEMORIA GERARCHIE DI MEMORIA

Architettura hardware

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale

Organizzazione della memoria

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

ARCHITETTURA CALCOLATORI: Memoria di massa (o secondaria)

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Gestione della memoria centrale

L unità di elaborazione pipeline L unità Pipelining

Architettura di un sistema di calcolo

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

Corso di Sistemi di Elaborazione delle informazioni

Gestione della Memoria

Appunti di informatica. Lezione 6 anno accademico Mario Verdicchio

Informatica - A.A. 2010/11

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini

IL PROBLEMA DELLA MEMORIA

Laboratorio di Informatica

Architettura hardware

Migliorare le prestazioni di processori e memorie

C. P. U. MEMORIA CENTRALE

Esame di INFORMATICA

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici

STRUTTURE DEI SISTEMI DI CALCOLO

memoria virtuale protezione

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Le gerarchie di memoria: memoria cache

Varie tipologie di memoria

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

1.4b: Hardware. (Memoria Centrale)

Calcolatori Elettronici A a.a. 2008/2009

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

La Gestione delle risorse Renato Agati

12. Implementazione di un File System Struttura a livelli Allocazione contigua

Gerarchia di memorie

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Le virtual machine e la memoria virtuale

Il File System. Il file system

Introduzione alle memorie cache. Sommario

La Memoria Virtuale Ottimizzazione della memoria centrale

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Sistemi Operativi. 5 Gestione della memoria

La memoria. I sistemi di memoria di un elaboratore possono essere suddivisi in: Memoria interna al processore Memoria principale Memoria secondaria

Sistema operativo: Gestione della memoria

Sistemi a Microprocessore

1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi:

GESTIONE DELLA MEMORIA CENTRALE

Calcolatori Elettronici A a.a. 2008/2009

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Capitolo Silberschatz

Memoria virtuale. Riassumendo Meccanismo di traduzione indirizzi con tabella TLB Ogni processo ha la sua PMT Politiche della memoria virtuale E

CPU. Maurizio Palesi

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Lezione 10: Librerie e compilazione separata

Architettura del calcolatore

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007

SISTEMI OPERATIVI DISTRIBUITI

Lez. 5 Memorie Secondarie

Tecnologia di un Database Server (centralizzato) Gestione del buffer

Corso di Sistemi di Elaborazione delle informazioni

Unità Periferiche. Rete Di Controllo

Il memory manager. Gestione della memoria centrale

Gerarchie di Memoria Andrea Gasparetto

Calcolatori Elettronici

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Dispensa di Informatica I.4

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo. (continua) Gestione della memoria principale

Calcolo numerico e programmazione Architettura dei calcolatori

COME È FATTO IL COMPUTER

Cache e gerarchia di memoria

Il Sistema Operativo: il File System

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Transcript:

Memorie Caratteristiche principali Tecnologie di memoria Locazione: processore, interna (principale), esterna (secondaria) Capacità: dimensione parola, numero di parole Unità di trasferimento: parola, blocco Metodo di accesso: sequenziale, diretto, casuale, associativo Prestazioni: tempo di accesso, tempo di ciclo, velocità trasferimento Modello fisico: a semiconduttore, magnetico, ottico, magnetico-ottico Caratteristiche fisiche: volatile/non volatile, riscrivibile/non riscrivibile Organizzazione L ideale sarebbe una memoria molto ampia, molto veloce e molto economica Tecnologia registro cache SRAM DRAM disco CD/DVD-ROM [meno capace di disco!] nastro v e l o c i t à a m p i e z z a c o s t o Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 139 Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 140 1000 100 10 1 Prestazioni CPU/memoria 1980 1990 2000 Le CPU hanno avuto un aumento di prestazioni notevole, dovuto ad innovazioni tecnologiche ed architetturali Le memorie sono migliorate solo grazie agli avanzamenti tecnologici Proprietà dei programmi Proprietà statiche (dal file sorgente) Proprietà dinamiche (dall esecuzione) Linearità dei riferimenti Gli indirizzi acceduti sono spesso consecutivi Località dei riferimenti Località spaziale Gli accessi ad indirizzi contigui sono più probabili Località temporale La zona di accesso più recente è quella di permanenza più probabile Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 141 Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 142

La congettura 90/10 Un programma impiega mediamente il 90% del suo tempo di esecuzione alle prese con un numero di istruzioni pari a circa il 10% di tutte quelle che lo compongono. Divide et impera Conviene organizzare la memoria su più livelli gerarchici: Livello 1 (cache): molto veloce e molto costosa dimensioni ridotte, per i dati ad accesso più probabile [anche più livelli di cache] Livello 2 (memoria centrale): molto ampia e lenta costo contenuto, per tutti i dati del programma Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 143 Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 144 Organizzazione gerarchica Memoria a livelli Al livello più alto (superiore) stanno i supporti di memoria più capaci, più lenti e meno costosi Ai livelli più bassi (inferiori) si pongono supporti più veloci, più costosi e meno capaci La CPU usa direttamente il livello più basso Ogni livello superiore deve contenere tutti i dati presenti ai livelli inferiori (ed altri) Schema concettuale CPU Cache Memoria centrale trasferimento di parola Livello inferiore Livello superiore trasferimento di blocco Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 145 Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 146

Suddivisione in blocchi Per realizzare un organizzazione gerarchica conviene suddividere la memoria in blocchi La dimensione di un blocco è la quantità minima indivisibile di dati che occorre prelevare (copiare) dal livello superiore L indirizzo di un dato diviene l indirizzo del blocco che lo contiene sommato alla posizione del dato all interno del blocco Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 147 Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 148 Hit e miss Un dato richiesto dalla CPU può essere presente in cache (hit) oppure mancante (miss) Un hit, successo, deve essere molto probabile (>90%) se si vuole guadagnare efficienza prestazionale Un miss, fallimento, richiede l avvio di una procedura di scambio dati (swap) con il livello superiore Tempo medio di accesso T a : Tempo medio di accesso ad un dato in memoria T a = T h P h + T m (1 P h ) T h = tempo di accesso ad un dato presente in cache T m = tempo medio di accesso ad un dato non in cache (funzione della dimensione del blocco) P h = probabilità di hit (funzione della dimensione del blocco e della politica di gestione) Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 149 Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 150

Tecnica generale Suddivisione della memoria centrale in blocchi logici Dimensionamento della cache in multiplo di blocchi Per ogni indirizzo emesso dalla CPU Hit Ιl dato richiesto viene fornito immediatamente alla CPU Miss La cache richiede il dato al livello superiore Il blocco contenente il dato viene posto in cache Il dato richiesto viene fornito alla CPU Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 151 Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 152 Problematiche Organizzazione della cache e tecniche di allocazione Individuazione di hit o miss Politica di rimpiazzo dei blocchi Congruenza dei blocchi Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 153 Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 154

Associazione diretta Tecnica nota come direct mapping Ogni blocco del livello superiore può essere allocato solo in uno specifica posizione (detta linea o slot) del livello inferiore Associazione diretta Insieme 0 Insieme 1 Insieme 2 Insieme 3 Insieme M-1 Livello superiore Livello inferiore N posizioni di blocco ILI = Indirizzo Livello Inferiore ILS = Indirizzo Livello Superiore } M insiemi da N blocchi ILI = ILS mod N Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 155 Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 156 Esempio di associazione diretta Associazione diretta Vantaggi Semplicità di traduzione da indirizzo ILS (memoria) ad indirizzo ILI (cache) Determinazione veloce di hit o miss Svantaggi Necessità di contraddistinguere il blocco presente in ILI (introduzione di un etichetta, tag ) Swap frequenti per accesso a dati di blocchi adiacenti Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 157 Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 158

blocco 0 blocco 1 blocco 2 blocco 3 Lezioni 5 e 6i Associazione completa Tecnica nota come fully associative Ogni blocco del livello superiore può essere posto in qualunque posizione del livello inferiore Associazione completa livello superiore M blocchi Blocco M-1 livello inferiore N posizioni di blocco Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 159 Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 160 Esempio di associazione completa Associazione completa Alla cache capace di N blocchi viene associata una tabella di N posizioni, contenenti il numero di blocco effettivo (tag) in essa contenuto. Vantaggi Massima efficienza di allocazione Svantaggi Determinazione onerosa della corrispondenza ILI-ILS e della verifica di hit/miss Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 161 Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 162

Associazione a gruppi Tecnica nota come N-way set associative Ogni blocco di un certo insieme di blocchi del livello superiore può essere allocato liberamente in uno specifico gruppo di blocchi del livello inferiore Associazione a gruppi Insieme 0 Insieme 1 Insieme 2 Insieme 3 Insieme M-1 Livello superiore livello inferiore R gruppi da N posizioni di blocco In questo caso: N=2 2-way set associative M insiemi da R blocchi Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 163 Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 164 Esempio di associazion e a gruppi Associazione a gruppi Alla cache, composta da R gruppi di N posizioni di blocco ciascuno, si affiancano R tabelle di N elementi, contenenti le etichette (tag) che designano i blocchi effettivi posti nelle posizione corrispondente. Valutazione: buona efficienza di allocazione a fronte di una sopportabile complessità di ricerca Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 165 Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 166

Politiche di rimpiazzo dei blocchi Quale blocco conviene sostituire in cache per effettuare uno swap? (Penalità di miss) Casuale, per occupazione omogenea dello spazio Least Recently Used (LRU), per preservare località temporale Ampiezza cache P(miss) rimpiazzo casuale rimpiazzo LRU N-way 2 4 8 2 4 8 16 KB 5,69 5,29 4,96 5,18 4,67 4,39 64 KB 2,01 1,66 1,53 1,88 1,54 1,39 256 KB 1,17 1,13 1,12 1,15 1,13 1,12 Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 167 Il problema della scrittura La scrittura dei dati determina incoerenza tra il blocco in cache e quello nei livelli superiori Write through Scrittura contemporanea in cache e nel livello di memoria superiore Aumento di traffico per frequenti scritture nel medesimo blocco, ma i dati sono sempre coerenti tra i livelli Si ricorre a buffer di scrittura asincroni (differiti) verso la memoria. N.B.: La memoria contiene istruzioni e dati, e solo il 50% delle operazioni sui dati sono scritture (circa 12 % del totale) Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 168 Il problema della scrittura Write back Scrittura in memoria superiore differita al rimpiazzo del blocco di cache corrispondente Occorre ricordare se sono avvenute operazioni di scrittura nel blocco Consente ottimizzazione del traffico tra livelli Causa periodi di incoerenza Il problema dei miss Miss di primo accesso, inevitabile e non riducibile Miss per capacità insufficiente, quando la cache non può contenere tutti i blocchi necessari all esecuzione del programma Miss per conflitto, quando più blocchi possono essere mappati (con associazione diretta o a gruppi) su uno stesso gruppo Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 169 Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 170

Il problema dei miss Tecniche classiche di soluzione Maggior dimensione di blocco Buona per fruire di località spaziale Causa incremento di miss per conflitto (meno blocchi disponibili) Maggiore associatività Causa incremento del tempo di localizzazione in gruppo (hit) Soggetta alla regola del 2:1 Una cache ad N blocchi con associazione diretta ha una probabilità di miss pressoché uguale ad una cache di dimensione N/2 con associazione a 2 vie Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 171 Altre tecniche Il problema dei miss Separazione tra cache dati e cache istruzioni (già visto in pipeline) Ottimizzazione degli accessi mediante compilatori Posizionamento accurato delle procedure ripetitive Fusione di vettori in strutture (località spaziale) Trasformazioni di iterazioni annidate (località spaziale) Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 172 Es.: Fusione di vettori in strutture /* prima della ottimizzazione */ int val[size]; int key[size]; merged_array[0] MEMORIA val key val key val[0] key[0] MEMORIA /* dopo l ottimizzazione */ struct merge { int val; int key; }; struct merge merged_array[size]; Es.: Iterazioni annidate /* prima della ottimizzazione */ for (j=0;j<100;j=j+1) for (i=0;i<5000;i=i+1) x[i][j] = 2*x[i][j]; /* dopo l ottimizzazione */ for (i=0;i<5000;i=i+1) for (j=0;j<100;j=j+1) x[i][j] = 2*x[i][j]; x[0][0] i j x[1][0] x[2][0] x[4999][0] controllo controllo prima dopo Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 173 Introduzione, Struttura e funzione CPU Architettura degli elaboratori -1 Pagina 174