static dynamic random access memory

Documenti analoghi
Introduzione alle gerarchie di memoria

La memoria cache. Lab di Calcolatori

Blocchi di più parole

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

Università degli Studi di Cassino e del Lazio Meridionale

Architettura hardware

Il Sottosistema di Memoria

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

Corso di Informatica

Architettura degli elaboratori - 2 -

Esercitazione su Gerarchie di Memoria

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

Circuiti di Indirizzamento della Memoria

Architettura dei computer

Il Sottosistema di Memoria

Il Sottosistema di Memoria

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

Corso di Calcolatori Elettronici I A.A Le memorie Lezione 16

La memoria - tecnologie

Esercizi svolti sulle cache - Soluzioni

Gli attori principali di un architettura

La memoria - tecnologie

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

Le Memorie. Si distinguono per: Supporti sui quali le informazioni vengono fisicamente memorizzate.

La memoria principale

MEMORIE AD ACCESSO CASUALE

Livello logico digitale bus e memorie

Fallimenti nella TLB

La gerarchia di Memoria

Esercitazione su Gerarchie di Memoria

Memorie elettroniche. 1. Parametri delle memorie

Architettura dei sistemi di elaborazione: La memoria (parte 1)

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

Cache: 1 livello della gerarchia di memoria

Architettura dei computer

LA MEMORIA NEL CALCOLATORE

Calcolatori Elettronici

Capitolo 5 Le infrastrutture HardWare. La memoria centrale

Esame di INFORMATICA Lezione 4

Calcolatori Elettronici A a.a. 2008/2009

Dal sistema operativo all' hardware

Memorie Caratteristiche principali

Struttura delle memorie cache

Struttura di un elaboratore

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

Il processore. Istituzionii di Informatica -- Rossano Gaeta

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

Architettura dei calcolatori

La memoria: tecnologie di memorizzazione

La gerarchia di memorie (2)

Gerarchia di Memorie

La tecnologia delle memorie

Informatica. Informazione L Informazione è un dato, o un insieme di dati, interpretati in un determinato contesto.

Lezione 15. L elaboratore Elettronico

PRESTAZIONI. senza e con memoria cache

Strutture di Memoria 1

1.4b: Hardware. (Memoria Centrale)

Le gerarchie di memoria: memoria cache

Componenti di un processore

Hardware. Sommario. Architettura dei computer

Hardware. I parte. Sommario

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

FONDAMENTI DIINFORMATICA LA MEMORIA

Informatica giuridica

ELETTRONICA II. Prof. Dante Del Corso - Politecnico di Torino

Memoria Virtuale e I/O

La memoria: tecnologie di memorizzazione

Il Processore: l unità di controllo

L organizzazione interna della memoria e del banco di registri prevedono generalmente che le uscite di 2 o più componenti

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

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

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

Memorie. Definizione di memoria

SOLUZIONI: Memoria virtuale

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

Matlab/Octave - Esercitazione 13

Struttura hw del computer

ARCHITETTURA DI UN CALCOLATORE ELETTRONICO

Il processore: unità di elaborazione

Organizzazione della memoria principale Il bus

SISTEMI INFORMATIVI AZIENDALI

Le fasi classiche. Informatica di Base -- R.Gaeta 1

La gerarchia delle memorie. Sommario

LEZIONE 2 Il processore e la memoria centrale

Struttura dell elaboratore elettronico

SIMULAZIONE DELLA PROVA INTERMEDIA DEL CORSO DI CALCOLATORI ELETTRONICI

Gestione della Memoria

MEMORIA GERARCHIE DI MEMORIA

Architettura dei Calcolatori

La memoria secondaria

Laboratorio di Architettura degli Elaboratori

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

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Elaborazione dell informazione

Gestione della memoria

Clocking. Architetture dei Calcolatori (Lettere. Elementi di Memoria. Periodo del Ciclo di Clock. scritti

Fondamenti di informatica: un po di storia

Corso di Sistemi di Elaborazione delle informazioni

L architettura del calcolatore

Transcript:

LA MEMORIA SRAM e D R A M static dynamic random access memory SRAM: unità che memorizza un gran numero di parole in un insieme di flip-flop, opportunamente connessi, mediante un sistema di indirizzamento e trasferimento (lettura/scrittura) di parole. I flip-flop della memoria si dividono in 2k gruppi di h flip-flop, ciascuno dei quali memorizza una parola di h bit. Ogni gruppo è sostanzialmente un registro cui è logicamente associato un indirizzo di k bit nell intervallo.. 2k. La configurazione di una SRAM è completamente definita specificando il numero 2k di celle indirizzabili (dimensione verticale o altezza height) e la dimesione h della cella (dimensione orrizzontale o larghezza width).

k h SRAM 2k h h k ingressi per l indirizzo h ingressi per i dati h uscite per i dati attivazione/selezione (chip select) 3 ingressi di controllo abilitazione uscita (output enable) abilitazione scrittura (write enable) La struttura con i multiplexor utilizzata per l indirizzamento all interno del banco dei registri non è utilizzabile per memorie a grandi dimensioni. In questo caso si utilizzano porte di collegamento a tre stati che, distribuite tra le celle di memoria, risultano più efficienti di un unico (gigantesco) multiplexor. Per evitare decodificatori troppo grandi si organizza la memoria in modo gerarchico e si usa un metodo di decodifica a due fasi.

Esempio. Si consideri una SRAM 32 2. Per indirizzare una tale memoria servono 5 bit (25 =32). I dati in input ed in output sono di 2 bit. Si puo utilizzare prima un indirizzo a 3 bit (bit 4-3-2) per selezionare la memoria di primo livello ed accedere poi ai dati utilizzando i rimanenti 2 bit (bit -).

DRAM Mentre nella memoria statica (SRAM) il bit memorizzato viene mantenuto per un tempo arbitrario (finché c è alimentazione), nella memoria dinamica (DRAM) un bit viene espresso sotto forma di stato di carica di un transistor, non è stabile e quindi va rinfrescato periodicamente. Questo può essere fatto direttamente con un circuito di controllo integrato sul componente di memoria liberando il processore dall operazione di rinfresco. Usando meno transistor, la densità di bit memorizzati in una DRAM è molto più alta rispetto ad una SRAM e quindi la DRAM ha, a parità di capacità, un costo inferiore. Nella DRAM la decodifica dell indirizzo è un processo a due fasi, simile a quello visto per la SRAM ma generalmente più lento. Desiderio.. irrealizzabile: avere tanta memoria (potenzialmente infinita) ad accesso molto veloce. Soluzione più realistica: avere tanta memoria (potenzialmente infinita) strutturata gerarchicamete, con quella che ha più alta probabilità di servire subito ad accesso più veloce; le altre, scendendo nella gerarchia, ad accesso sempre più lento.

CACHE Le memorie più veloci (SRAM) saranno fisicamente più vicine alla CPU al livello più alto, e manterranno i dati usati più di recente, le altre (DRAM e dischi) formeranno i livelli più bassi. La memoria più vicina al processore viene detta cache. (cache = nascondiglio, luogo sicuro) CPU Cache più veloce più piccola più costosa RAM Dischi, etc. più lenta più grande meno costosa Lo scambio di informazione avvene solo tra due livelli adiacenti. L unità di informazione che viene scambiata si dice blocco.

Quando arriva la richiesta di un dato ad un livello (livello superiore) ci sono ovviamente due possibilità: il dato è presente a quel livello, e quindi la richiesta ha successo (hit); il dato non è presente a quel livello, e quindi la richiesta non ha successo (miss) e deve essere inoltrata al livello inferiore. hit ratio: frequenza dei successi miss ratio: frequenza dei fallimenti (. hit ratio) hit time: è il tempo necessario per cercare il dato al livello superiore. Nota: anche quando il dato non è presente al livello superiore, viene speso del tempo per cercare il dato in quel livello prima di inoltrare la richiesta al livello inferiore. miss penality: è il tempo necessario per passare l informazione (il blocco che contiene il dato cercato) da un livello inferiore ad un livello superiore. Principio di località: Località temporale: è probabile che un dato già utilizzato venga riutilizzato dopo breve tempo. Località spaziale: è probabile che i dati utilizzati in un breve intervallo di tempo siano memorizzati in zone vicine della memoria.

Le memorie (memoria istruzioni e memoria dati) indicate nella descrizione del processore sono cache. come si fa a sapere se un dato è presente nella cache? come si recupera un dato presente nella cache? L hit time chiaramente dipende dalla risposta a queste due domande. La risposta alla prima domanda diventa facile quando ogni blocco può essere memorizzato in un solo posto della cache, ovvero se ad ogni locazione di memoria corrisponde esattamente una locazione della cache: indirizzamento diretto. Sia M il numero di blocchi che possono essere contenuti nella cache. Un semplice metodo di indirizzamento diretto consiste nel prendere come indirizzo nella cache l indirizzo del blocco modulo M. Se M = 2m allora l indirizzo del blocco modulo M è dato dagli m (=log 2 (M)) bit meno significativi dell indirizzo.

M = 8 = 23 Supponiamo di cercare il dato all indirizzo 2 = 2. Dobbiamo prima sapere se la posizione della cache contiene un dato reale o no (cioè se è gia stata caricata o no): aggiungiamo un bit di validità. Inoltre, dobbiamo sapere se la posizione della cache contiene il dato cercato oppure quello ad uno degli altri indirizzi che vengono mappati in : aggiungiamo un insieme di tag. 5 9 3 7 2 25 29 3

Memorizzando un bit di validità ed un insieme di (etichette) tag che contengono i bit più significativi dell indirizzo (non usati per l indirizzamento nella cache) si può dare una risposta veloce alle domande precedenti. Esempio. Supponiamo di cercare i dati ai seguenti indirizzi in una cache inizialmente vuota. ind ind 2 cache hit/miss 22 miss 26 miss 22 hit 26 hit 6 miss 3 miss 8 miss Indirizzo bit di validità cache tag blocco N N Y Mem() N N N Y Mem() N

Osservazione. Nell architettura MIPS, i due bit meno significativi di ogni indirizzo servono per individuare il byte all interno della parola. Se ogni blocco della cache contiene una parola (4 byte), i due bit meno significativi dell indirizzo non servono per indirizzare all interno della cache e l indirizzo nella cache si forma considerando i bit da 2 in poi. Tag Indice Byte offset Tag Bit di validita' =

Le memorie (memoria istruzioni e memoria dati) indicate nella descrizione del processore sono cache. In caso di miss la soluzione più semplice e che l unità di controllo del processore sospenda (ponendosi in una situazione di stallo) ogni operazione finchè, utilizzando un controllo separato, la memoria non sia stata aggiornata. Alcuni accorgimenti possono essere presi per diminuire i tempi di stallo (e quindi di esecuzione). Primo tipo di implementazione cache: blocchi di una parola (DECStation 3 - con processore MIPS2) La gestione delle richieste di lettura (sia di dato che di istruzione) è quella più ovvia: - L indirizzo viene inviato alla memoria appropriata. - Viene effettuato il controllo per la presenza nella cache. In caso di hit si procede con l esecuzione. In caso di miss la richiesta viene inviata alla memoria principale. Appena disponibile, il dato (o l istruzione) viene scritto nella cache e l esecuzione riprende. La gestione delle richieste di scrittura è un po meno ovvia. Problema dell' inconsistenza tra cache e memoria principale. Se eseguendo una store il dato viene registrato solo nella cache e non viene riportato anche nella memoria principale, due posizioni corrispondenti (indirizzo + tag) potrebbero contenere dati diversi.

Richieste di scrittura Per mantenere la memoria principale e la cache sempre consistenti, ogni modifica alla cache dovrebbe essere subito riportata nella memoria principale. Questa soluzione è detta di write-through. Questa scelta ha chiaramente un costo (attesa che l operazione di scrittura in memoria principale sia completata) che, per programmi con frequenti operazioni di memorizzazione, puo diventare molto elevato. Per ridurre i costi si puo' utilizzare una memoria tampone (write buffer): il processore scrive il dato nella cache e nel buffer e poi prosegue l esecuzione. Il processo di scrittura nella memoria principale avviene in parallelo prelevando un dato alla volta dal write buffer (liberando man mano spazio per memorizzazioni successive). In caso di frequenti operazioni di scrittura, il processore può ugualmente dover entrare in una situazione di stallo aspettando che il buffer si liberi. Un'altra tecnica utilizzata prevede la scrittura in memoria solo nel momento in cui il dato nella cache deve venir riscritto (write back).