Che materia stai cercando?

Cache - Architettura elaboratori

Questi sono un misto tra appunti e riassunti riguardo le memorie cache; quindi il loro funzionamento, la loro struttura, il perchè della loro ideazione e altro. Ti aiuteranno. Appunti basati su appunti personali del publisher presi alle lezioni del prof. Mei.

Esame di Architettura degli elaboratori docente Prof. A. Mei

Anteprima

ESTRATTO DOCUMENTO

cache. Ovviamente il “puntatore” che mi indirizza al blocco nel quale è contenuto il dato è l’indirizzo

di questo che solitamente si trova con una semplice operazione.

(indirizzo del blocco in memoria)modulo(numeri di blocchi nella cache)

Poichè ogni elemento della cache può contenere dati provenienti da più locazioni della memoria

principale. Quindi quello che ci chiediamo è se il dato si trovi davvero nella cache oppure no. Quindi se

nella ricerca otteniamo un HIT oppure un Miss. Questo problema è risolto ponendo nella cache un

insieme di bit che prendono il nome di TAG. Essi contengono tutte le informazioni necessarie a

verificare se una parola della cache corrisponde o meno alla parola cercata.

Succede però che all’avvio del processore la cache vuota ha numeri all’interno dei campi tag che non

hanno alcun significato. Anche dopo aver eseguito un certo numero di istruzioni potrebbe accadere

che alcune locazioni della cache rimangano vuote. Occorre perciò sapere quando il campo tag

associato a queste locazioni deve essere ignorato. Viene allora introdotto un singolo bit che viene

chiamato BIT DI VALIDITÀ (0 | 1).

Esso è ad uno dal momento che andiamo a riempire una locazione della cache, e che quindi andiamo

a settare un campo tag non “corrotto”. Ovviamente all’avvio del processore tutti i validity bit vengono

settati a 0.

L’indice di un blocco nella cache, insieme al contenuto del campo tag, spefica in maniera univoca

l’indirizzo della memoria principale associato alla parola contenuta in quel blocco della cache.

Alla fine unendo tutti i bit che sono stati aggiunti per risolvere tutti i vari problemi essi risultano essere

in funzione della dimensione della cache e della dimensione dell’indirizzo del dato, poichè essa deve

contenere spazio di memoria si per i dati sia per i tag.

Ovviamente la dimensione di un blocco non è di una sola parola ma di più; solitamente sono di 8 word

-> 32 byte oppure di 16 word -> 64 byte.

Generalmente ci troviamo in una situazione del genere:

⚫ Indirizzo su 32 bit;

⚫ Cache a mappatura diretta; 2

⚫ Dimensione della cache a 2^n blocchi, per cui n bit vengono utilizzati per l’indice

⚫ Dimensione del blocco della cache di 2^m parole, ossia 2^(m+2) byte, per cui m

bit vengono utilizzati per individuare una parola all’interno di un blocco, mentre i

due bit servono ad individuare un byte all’interno di una parola.

⚫ In questo caso la dimensione del campo tag è 32-(n+m+2)

Il numero totale di bit che una cache può contenere è

2^n*(dimensione_blocco+dim_tag+bit_validità) = 2^n*[2^m*32+(32-n-m-2)+1]

GESTIONE DELLE MISS DELLA CACHE

L’unità di controllo deve riconoscere il fallimaneto del tentativo di accesso e provvedere a risolverlo

andando a prelevare i dati dalla memoria principale, opppure da una cache di livello inferiore.

Modificare l’unità di controllo del processore per gestire una hit è un’operazione semplice. La gestione

delle miss, invece, richiede del lavoro aggiuntvo e un’unità di controllo separata che collabora con il

processore. Questa si occupa dell’accesso in memoria principale.

La risoluzione di una miss richiede lo stallo della pipeline che è differente da un interrupt, che

implicherebbe il salvataggio dello stato dei registri.

Riassumendo i passi che devono essere eseguiti quando si verifica una miss nella cache sono:

⚫ Inviare il valore originale del PC (corrente-4) alla memoria;

⚫ Comandare alla memoria principale di eseguire un’operazione di lettura ed

attendere che questa venga completata;

⚫ Scrivere la parola che proviene dalla memoria nella posizione opportuna del

blocco della cache, aggiornare il tempo tag corrispondente e impostare il

validity bit ad 1;

⚫ Far ripartire l’esecuzione dell’istruzione dallo stato di fetch che questa volta

troverà l’istruzione all’interno della cache.

GESTIONE DELLA SCRITTURA. 3


PAGINE

6

PESO

305.16 KB

AUTORE

ABsintio

PUBBLICATO

4 mesi fa


DETTAGLI
Corso di laurea: Corso di laurea in informatica
SSD:
A.A.: 2018-2019

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher ABsintio di informazioni apprese con la frequenza delle lezioni di Architettura degli elaboratori e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università La Sapienza - Uniroma1 o del prof Mei Alessandro.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Architettura degli elaboratori

Pipeline - Architettura elaboratori
Appunto
La memoria virtuale - Architettura elaboratori
Appunto
Laboratorio di basi di dati I - la progettazione concettuale
Appunto
Informatica di base - Appunti
Appunto