Gli attori principali di un architettura

Documenti analoghi
La struttura gerarchica delle memorie

La struttura gerarchica delle memorie

La gerarchia delle memorie. Sommario

Struttura delle memorie cache

La tecnologia delle memorie

Struttura gerarchica delle memorie

Introduzione alle gerarchie di memoria

Architettura degli elaboratori - 2 -

Von Neumann Bottleneck

La gerarchia di Memoria

Miglioramento delle prestazioni

Blocchi di più parole

Calcolatori Elettronici A a.a. 2008/2009

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

Architettura dei calcolatori

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

La memoria cache. Lab di Calcolatori

Esercizi svolti sulle cache - Soluzioni

Gerarchia di memoria

CPU a ciclo multiplo

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

CPU a ciclo multiplo

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione:

Lezione 22 La Memoria Interna (1)

static dynamic random access memory

La memoria principale

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

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

Gerarchia di Memorie

La Memoria Cache. Informatica B. Daniele Loiacono

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 19 Febbraio Attenzione:

Università degli Studi di Cassino

Calcolatori Elettronici

Cache: 1 livello della gerarchia di memoria

Struttura gerarchica delle memorie

La memoria - tecnologie

La gerarchia di Memoria

Il Processore. Informatica di Base -- R.Gaeta 27

Architettura hardware

La memoria - tecnologie

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Architettura dei computer

Valutazione delle prestazioni

Pentium: architettura di sistema

Fallimenti nella TLB

Esercitazione su Gerarchie di Memoria

Strutture di Memoria 1

La Gerarchia delle Memorie. Calcolatori Elettronici II

Il Sottosistema di Memoria

Capitolo 5 Le infrastrutture HardWare. La memoria centrale

Componenti di un processore

Architettura dei calcolatori

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

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

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

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

PRESTAZIONI. senza e con memoria cache

Componenti e connessioni. Capitolo 3

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

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

Il Processore: l unità di controllo

Il processore: unità di elaborazione

Componenti principali

Esercitazione su Gerarchie di Memoria

ESERCIZIO 1 Si consideri la seguente funzione f (A, B, C, D) non completamente specificata definita attraverso il suo ON-SET e DC-SET:

Architettura hardware

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore

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

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

La memoria - tecnologie

A controllo di programma diretto A controllo di programma con polling Ad interruzione Ad accesso diretto alla memoria (DMA)

Lezione 15. L elaboratore Elettronico

Valutazione delle prestazioni

Lez. 4 L hardware. Prof. Pasquale De Michele Gruppo 2

Gerarchia di memoria

Capitolo 5 Elementi architetturali di base

Sottosistemi ed Architetture Memorie

Elementi di informatica

Memoria Virtuale e I/O

PROVA SCRITTA DEL MODULO/CORSO DI. 24 novembre 2016

Porte Input/Output (I/O Connectors)

SISTEMI INFORMATIVI AZIENDALI

Architettura dei calcolatori I parte Introduzione, CPU

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Memoria Secondaria o di Massa

Università degli Studi di Cassino e del Lazio Meridionale

Il Sottosistema di Memoria

Corso di laurea in ingegneria informatica Esame di sistemi operativi 21 gennaio 2009 SOLUZIONI

La gerarchia di memorie (2)

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

LEZIONE 2 Il processore e la memoria centrale

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

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

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

Gerarchia di memoria

Calcolatori Elettronici A a.a. 2008/2009

Capitolo 7: Input/Output. Es.1 - Bus sincrono. Es.1 - Risposta (a)

Matlab/Octave - Esercitazione 13

Il bus. Bus di sistema: insieme di collegamenti (solitamente in rame) che connette tutti i componenti di un architettura

Transcript:

Memoria Architettura degli Elaboratori e delle Reti, Turno I Alberto Borghese Università degli Studi di Milano Dipartimento di Scienze dell Informazione email: borghese@dsi.unimi.it Gli attori principali di un architettura Memoria Register File UC PC IR ALU CPU C D A http://homes.dsi.unimi.it/~borghese 2/21 1

Principio di località I programmi riutilizzano dati e istruzioni che hanno usato di recente. Regola pratica: un programma spende circa il 90% del suo tempo di esecuzione per solo il 10% del suo codice. Basandosi sul passato recente del programma, è possibile predire con ragionevole accuratezza quali dati e istruzioni userà nel prossimo futuro. Località temporale: elementi ai quali si è fatto riferimento di recente saranno utilizzati ancora nel prossimo futuro. Località spaziale: elementi i cui indirizzi sono vicini, tendono ad essere referenziati in tempi molto ravvicinati. http://homes.dsi.unimi.it/~borghese 3/21 Gerarchia di memorie Nel livello superiore troviamo un sottoinsieme dei dati del livello inferiore. Ciascun livello vede il livello inferiore. http://homes.dsi.unimi.it/~borghese 4/21 2

Gerarchia di memorie - caratteristiche Livello Dimensioni indicative Tempo di Accesso Velocità di Trasferimento (Mbyte/s) Registri < 1 Kbyte < 0,01 ns 400,000 (4 byte) Cache Primaria (Pentium 4, 3Ghz) ExecTrace cache Cache Secondaria (Pentium 4, 3Ghz) 8kbyte 12kbyte 256-512 kbyte 0.16ns 0.3ns 192,000 (32 byte) 96,000 (32 byte in parallelo) Memoria centrale (RAM, DRAM) Bus PCI Bus PCI 64 Dischi < 4 Gbyte 133 Mhz 100 Mhz > 50 Gbyte < 3-5 ns (233Mhz / 320Mhz) 8 byte 64 byte < 10ms 1,600 3,000 (DDSRAM doppia lettura) 1,060 (8 byte) 6,400 (64 byte) < 200 (Seagate Cheetah SCSI) Nastri > 100 Gbyte > 100ms 1 http://homes.dsi.unimi.it/~borghese 5/21 Tassonomia del funzionamento HIT Successo nel tentativo di accesso ad un dato: è presente al livello superiore della gerarchia. MISS Fallimento del tentativo di accesso al livello superiore della gerarchia => l indirizzo deve essere cercato al livello inferiore. HIT_RATE Percentuale dei tentativi di accesso ai livelli superiori della gerarchia che hanno avuto successo. HIT_RATE=Numero_successi/Numero_accessi_memoria MISS_RATE Percentuale dei tentativi di accesso ai livelli superiori della gerarchia che sono falliti MISS_RATE=Numero_fall./Numero_accessi_memoria HIT_RATE + MISS_RATE = 1 http://homes.dsi.unimi.it/~borghese 6/21 3

Sottosistema di memoria Porta nella cache primaria i dati richiesti mentre il binomio processore-memoria sta lavorando. 1) Controlla se un dato è in cache (Hit). 2) Porta un dato in cache dal livello inferiore (Miss). http://homes.dsi.unimi.it/~borghese 7/21 Principio di funzionamento della cache lw $t0, 0($s4) X n -> $t0 Indirizzo Cache 000 001 010 011 100 101 110 111 Prima del caricamento di Xn X n-1 Problemi: Corrispondenza tra 0($s4) e l indirizzo di cache. Dopo il caricamento Xn X 4 X 4 X 1 X 1 X n-2 X n-2 X n X 2 X 2 X 3 X 3 X n-1 Come si fa a sapere se un dato è già in cache? Come si fa a recuperare un dato nella cache? http://homes.dsi.unimi.it/~borghese 8/21 4

Corrispondenza diretta (direct mapped) Ad ogni indirizzo di RAM corrisponde un indirizzo di cache. Cache RAM Indirizzi diversi di RAM corrispondono allo stesso indirizzo di cache. http://homes.dsi.unimi.it/~borghese 9/21 Come si può recuperare un dato dalla cache? Mediante operazione di modulo: Indirizzo_cache = indirizzo_ram (in #parole) modulo #parole_cache. Esempio: lw $t0, 65($zero) => Indirizzo in cache di 4 parole è: 65 appartiene alla 17a parola in RAM. indirizzo_cache = 1 (17 modulo 4). Nel caso in cui la base sia binaria: Indirizzo_cache = least_significant_bits (tolti quelli di offset all interno della parola) #Indirizzi è log2(#parole_cache) http://homes.dsi.unimi.it/~borghese 10/21 5

Come si può sapere se un dato è presente in cache? Aggiungiamo a ciascuna parola della memoria, un campo (tag). Il tag contiene i bit che costituiscono la parte più significativa dell indirizzo. Occorre anche l informazione dato valid / not_valid: bit di validità. http://homes.dsi.unimi.it/~borghese 11/21 Circuito di lettura/scrittura cache Hit Tag Memory address Offset di parola (da cache leggiamo parole di 4 byte). Dati (32 bit) Cache address http://homes.dsi.unimi.it/~borghese 12/21 6

Esercizi Sia data una cache a corrispondenza diretta contenente 64Kbyte di dati e avente blocchi di 1 parola. Assumendo che gli indirizzi siano di 32 bit quale è il numero totale di bit richiesto per l implementazione della cache? Supponendo che il MIPS abbia una cache di 512byte, indicare cosa succede nei campi della cache quando vengono eseguite le seguenti istruzioni: lw $t1, 0x0000($t0) $t0 = 1kbyte = 1,024 byte lw $t1, 0x0000($t0) $t0 = 0 lw $t1, 0x0202($t0) $t0 = 1kbyte = 1,024 byte lw $t1, 0x0001($t0) $t0 = 0 lw $t1, 0x0201($t0) $t0 = 1kbyte = 1,024 byte http://homes.dsi.unimi.it/~borghese 13/21 Gestione dei fallimenti di una cache Hit è quello che vorremmo ottenere, il funzionamento della CPU non viene alterato. Miss in lettura devo aspettare che il dato sia pronto in cache -> stallo. Passi da eseguire in caso di Miss: 1) Ricaricare l indirizzo dell istruzione (PC-> PC-4) 2) Leggere il blocco di memoria dalla memoria principale. 3) Trasferire il blocco in cache, aggiornare i campi validita e tag. 4) Riavviare la fase di fetch dell istruzione. NB Il programma non può continuare!! In scrittura? http://homes.dsi.unimi.it/~borghese 14/21 7

Cache a blocchi, funzionamento http://homes.dsi.unimi.it/~borghese 15/21 Come migliorare le prestazioni di una cache? Tempi di accesso: 1 ciclo di clock per inviare l indirizzo. 15 cicli di clock per ciascuna attivazione della RAM (lettura di 1 parola). 1 ciclo di clock per trasferire una parola al livello superiore (cache). Blocco di cache di 4 parole, blocco di memoria RAM di 1 parola Miss_Penalty = 1 + 15 * 4 (parole) + 1 * 4 (parole) = 65 cicli_clock #byte / ciclo_clock = 4(parole) * 4(byte/parola) / 65(cicli_clock) = 0,25(byte / ciclo_clock) Diminuire la penalità di fallimento (miss_penalty). Diminuire il tasso di fallimento (miss_rate). http://homes.dsi.unimi.it/~borghese 16/21 8

Diminuzione della miss_penalty Architettura standard: penalità di miss è di 65 cicli_clock. Maggiore ampiezza della memoria: Organizzazione della RAM per blocchi. Bus più ampio (bus dati largo un blocco). Per blocchi di RAM di 2 parole, blocchi di cache di 4 parole: Miss_penalty = 1 + 15 * 2 + 1 * 2 = 33 cicli_clock. #byte / ciclo_clock = 4(parole) * 4(byte/parola) / 33(cicli_clock) = 0,48(byte / ciclo_clock) Interleaving: Organizzazione della RAM per banchi con accesso indipendente alla memoria. Bus standard (trasferimento di 1 parola alla volta). Per blocchi di RAM di 1 parola, blocchi di cache di 4 parole: Miss_penalty = 1 + 15 * 1 + 1*4 = 20 cicli_clock. #byte / ciclo_clock = 4(parole) * 4(byte/parola) / 20(cicli_clock) = 0,80(byte / ciclo_clock) http://homes.dsi.unimi.it/~borghese 17/21 Miss rate e cache a blocchi La parola di cache (blocco) è un multiplo della parola della macchina. Vantaggi: per la località spaziale, diminuisco la frequenza di miss. Svantaggi:per le dimensioni del blocco aumenta la penalità di miss. Dimensione cache http://homes.dsi.unimi.it/~borghese 18/21 9

Diminuzione della miss_rate A corrispondenza diretta: un blocco di memoria può essere scritto in un unica posizione nella cache. Completamente associative: un blocco di memoria può essere trasferito in un qualsiasi blocco della cache. n-associative: un blocco di memoria può essere trasferito in un insieme ridotto di possibili blocchi della cache (almeno 2). http://homes.dsi.unimi.it/~borghese 19/21 Accesso alle memorie associative Campo tag 30 2 Tag Tramite comparatori individuo in quale blocco si trova il mio dato. Il segnale di Hit si genera come AND (comparatore_output, Valido) Dove scrivo il blocco? http://homes.dsi.unimi.it/~borghese 20/21 10

Cache Principio di località. Copia di porzioni di RAM. Organizzazione a blocchi. Direct mapped o associative. http://homes.dsi.unimi.it/~borghese 21/21 11