39
Calcolatori Elettronici Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari” Calcolatori Elettronici Memorie 6.1 CLASSIFICAZIONE DELLE MEMORIE La Memoria è l’ unità logica di memorizzazione di dati nel calcolatore. Nell’architettura dei calcolatori si distingue la memoria centrale, in diretto collegamento con la CPU e che contiene memoria in uso con dati ed istruzioni, dalla memoria di massa che ha il compito come periferica di I/O di mantenere dati ed istruzioni in modo permanente. I dispositivi di memoria sono le implementazioni fisiche delle memorie e possono avere struttura e caratteristiche fisiche e architetturali diverse. Esistono ad esempio dispositivi a semiconduttore, a dischi magnetici etc.. Alcuni dispositivi di memoria compongono la memoria centrale, altri fanno parte dell’I/O (la cosiddetta “memoria di massa”, come gli hard disk o le memorie nelle schede grafiche), altri sono interni al microprocessore (le cache) e altri nella stessa CPU (registri). Esistono diversi tipi di dispositivi di memoria che possono essere classificati in base a: 1. Capacità 2. Caratteristiche fisiche 3. Modalità di Accesso 4. Organizzazione 5. Prestazioni 6.2 CAPACITA’ La capacità si misura come C= MxN dove M è il numero di parole, e N in bit la dimensione delle parole. Normalmente N=8 (byte- wide) o N=1 (bit-wide). Ad esempio una memoria di 512Kbyte è composta da 512K (2^19) byte. Spesso la dimensione delle parole è maggiore per la presenza di bit di ridondanza ( bit di parità), che non vengono però conteggiati nella capacità.

Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

Calcolatori Elettronici

Memorie

6.1 CLASSIFICAZIONE DELLE MEMORIE

La Memoria è l’ unità logica di memorizzazione di dati nel calcolatore. Nell’architettura dei

calcolatori si distingue la memoria centrale, in diretto collegamento con la CPU e che contiene

memoria in uso con dati ed istruzioni, dalla memoria di massa che ha il compito come periferica

di I/O di mantenere dati ed istruzioni in modo permanente. I dispositivi di memoria sono le

implementazioni fisiche delle memorie e possono avere struttura e caratteristiche fisiche e

architetturali diverse. Esistono ad esempio dispositivi a semiconduttore, a dischi magnetici etc..

Alcuni dispositivi di memoria compongono la memoria centrale, altri fanno parte dell’I/O (la

cosiddetta “memoria di massa”, come gli hard disk o le memorie nelle schede grafiche), altri

sono interni al microprocessore (le cache) e altri nella stessa CPU (registri).

Esistono diversi tipi di dispositivi di memoria che possono essere classificati in base a:

1. Capacità

2. Caratteristiche fisiche

3. Modalità di Accesso

4. Organizzazione

5. Prestazioni

6.2 CAPACITA’

La capacità si misura come

C= MxN

dove M è il numero di parole, e N in bit la dimensione delle parole. Normalmente N=8 (byte-

wide) o N=1 (bit-wide). Ad esempio una memoria di 512Kbyte è composta da 512K (2^19) byte.

Spesso la dimensione delle parole è maggiore per la presenza di bit di ridondanza ( bit di parità),

che non vengono però conteggiati nella capacità.

Page 2: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

6.3 CARATTERISTICHE FISICHE

Le memorie possono essere classificate in base alle caratteristiche fisiche:

a) Tipo (di tecnologia impiegata):

a semiconduttore

a superficie magnetica

memorie ottiche…

Attualmente nei personal computer le memorie centrali sono realizzate con tipologia a

semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica o di tipo ottico

(come i CD). Le memorie di massa quali le “penne” USB sono invece memorie a semiconduttore.

Nei nuovi calcolatori portatili anche gli hard disk sono ora realizzati in tecnologia a stato solido

ossia a semiconduttore. Nei server invece rimangono in uso le tecnologie a superfici magnetiche

dovendo gestire grandi quantità (TByte, Pbyte) di dati.

b) Consumo: dipende dalla tecnologia e può comportare la necessità di sistemi di

raffreddamento.

c) Affidabilità: come tutti i dispositivi elettronici è di solito misurata dal tempo medio tra 2

guasti . Si usa il termine Mean Time Between Failure –MTBF (o MTTF; in realta’ MTBF=

MTTF+MTTR Mean time to repair che però è spesso trascurabile) soprattutto per dispositivi

esterni come gli hard disk è dell’ordine delle decine di migliaia di ore.

d) Alterabilità: (o funzionalità) indica se la memoria può essere cancellata e quindi sovrascritta

da un sistema diverso da quello di fabbricazione e potenzialmente dall’utente. Si

differenziano con i termini memoria cancellabile/non-cancellabile. Nel primo caso essere

cancellabile significa in realtà essere potenzialmente riscritta, mentre non cancellabile indica

che il contenuto non può essere sovrascritto.

e) Durevolezza: (o volatilità) indica il tempo definito o indefinito in cui i dati permangono in

memoria. Si classifica quindi come memoria volatile/non-volatile. In base alla durevolezza o

volatilità, si possono definire due categorie:

Memorie che perdono le informazioni se non alimentate elettricamente: lo sono la

maggior parte delle memorie elettroniche, come le RAM.

Memorie che mantengono le informazioni anche se non alimentate elettricamente:

come l’hard disk o le flash.

I difetti della volatilità sono i seguenti:

Consumo di energia per conservare le informazioni e necessità di una fonte di

energia che rende meno portabile e maneggevole la memoria.

Perdita della persistenza delle informazioni in caso di malfunzionamento o

manutenzione del computer.

Page 3: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

Nonostante i loro difetti, le memorie volatili sono molto utilizzate, anzi costituiscono la massima

parte della memoria centrale in quanto hanno tempi di accesso ossia latenza molto inferiori a

quelli di altre memorie.

Tra le memorie volatili ne esistono diverse categorie.

Vi sono alcune tecnologie particolari, nelle quali l’operazione di lettura causa la cancellazione del

dato memorizzato (Destructive Readout - DRO). In tal caso dopo ogni lettura è necessario

eseguire un’operazione di riscrittura del dato.

In altre tecnologie ( memore statiche) le memorie sono costituite da bistabili sincroni o a

sincroni che mantengono il bit memorizzato fino ad una nuova riscrittura con FF o D Latch.

In altre tecnologie (memorie dinamiche) il bit è memorizzato sotto forma di carica all’interno di

un condensatore, a causa delle correnti di scarica e il valore 1 memorizzato diventa 0. È quindi

necessario che periodicamente si provveda a leggere ogni bit e a riscrivere i bit con valore 1

(Refreshing).

6.4 MODALITÀ DI ACCESSO

L’architettura della memoria definisce la sua modalità di accesso. A seconda della modalità di

accesso si hanno diverse prestazioni e diversi tempi di accesso:

a) Sequenziale: se per accedere ad un dato in una fissata posizione (locazione) della memoria è

necessario accedere a tutti i dati memorizzati in posizioni precedenti . Un tipico esempio di

memorie con accesso sequenziale sono i nastri magnetici ancora usati per il backup.

b) Diretto: se è possibile avere un accesso direttamente alla locazione di memoria voluta senza

dovere accedere alle locazioni precedenti. In molti casi però il tempo di accesso è

dipendente dalla posizione e dalla locazione letta o scritta precedentemente (es. negli hard

disk in cui il seek time (tempo di ricerca) dipende dalla posizione della testina.)

Per le memorie con accesso sequenziale e diretto l’accesso avviene tramite l’interfaccia tra

CPU e controller. Tipicamente le memorie di massa catalogate come I/O sono di questo tipo

come gli hard disk. La CPU manda al controller hardware (vera e propria periferica di I/O) una

configurazione, una richiesta di accesso, un identificatore di partenza (come un “indirizzo”) e

la dimensione del blocco.

Dato= Read_Direct_Mem (id)

Viene acceduta la memoria tramite un identificatore che può essere composto da più

campi; ad esempio negli hard disk è compost da più campi come il disco , la traccia e il

Page 4: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

settore, il dato letto può avere diverse dimensioni e di solito è di parecchi byte che sono letti

in sequenza a partire dal valore dell’identificatore.

Il dispositivo dopo un tempo iniziale di decodifica della richiesta e di ricerca manda i dati con

un tempo proporzionale alla dimensione dei dati (si veda il capitolo corrispondente)..

Taccesso= Treq +Tstartup + N * Tdato

Fig. 1 memoria ad accesso diretto

c) Casuale: è un accesso diretto in cui il tempo di accesso è costante e non dipende nè

dall’indirizzo nè dalla precedente locazione acceduta. È tipico delle memorie centrali

realizzato in tecnologia RAM,ROM, etc.

MDR<--M[MAR]; ad ogni indirizzo corrisponde un solo dato.

Se nelle memorie casuali vengono letti più byte , se la parola è di dimensione maggiore e il

bus dei dati è di dimensione maggiore allora vengono letti più byte consecutivi a partire da

tale indirizzo.

Per le memorie con accesso casuale -Random access memory -(memorie centrali) c’è una

corrispondenza 1 a 1 tra l’indirizzo mandato dalla CPU e la locazione di memoria. Ogni

indirizzo corrisponde ad una locazione ( o all’inizio del blocco). Non c’e bisogno di un

controller e driver perchè la CPU manda direttamente l’indirizzo che arriva al più tramite

un’interfaccia data dal bus controller alla memoria. La memoria trova in un tempo costante

la locazione di memoria che deve essere letta o scritta.

Taccesso= Taddr+Tdato con Tdato= ritardo della memoria

Fig. 2 memoria casuali

d) Associativo: (o per contenuto): se per accedere ad un dato bisogna cercare un’associazione

(un confronto) tra l’indirizzo e il contenuto. Più precisamente l’indirizzo è a sua volta

Page 5: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

contenuto nella locazione di memoria; l’indirizzo non è un indice ma è parte del dato. Parte

dell’indirizzo o una funzione dell’indirizzo stesso (chiave hash), contenuta nella locazione di

memoria, viene confrontata con la corrispondente parte dell’indirizzo cercato. Dato che il

dato potrebbe essere contenuto in ogni locazione di memoria bisogna accedere a tutte le

locazioni presenti per verificare la presenza del dato.

Le cache sono esempio di memorie associative; le memorie associative contengono meno

locazioni del numero di indirizzi possibili. Per questo non ci può essere corrispondenza 1 a 1 tra

indirizzo e locazione. Ogni locazione di memoria libera contiene il dato e l’indirizzo (o parte)

chiamato TAG. L’accesso avviene tramite la richiesta di una corrispondenza o associazione tra

indirizzo mandato dalla CPU e TAG. Se la corrispondenza c’è (HIT) allora il dato è presente e può

essere letto o scritto. Se la corrispondenza non c’è (MISS) il dato non è presente.

Fig. 1 memoria associative

Come si vede dalla Fig. 1 la CPU emette l’indirizzo attraverso il MAR, sul bus esterno di indirizzi ( o

all’interno del chip nel caso di cache interne al microprocessore). L’indirizzo o parte di esso

viene confrontato con tutti i tag presenti (tanti quante le locazioni della memoria che nel caso

delle cache si chiamano linee o blocchi). Se una associazione ha buon fine (caso di Hit) allora il

dato è presente e può essere letto o scritto. Nelle cache ogni linea contiene molti byte di indirizzi

consecutivi e per questo il TAG contiene solo la parte più significativa dell’indirizzo, perchèè un

indirizzo allineato alla lunghezza della linea.

Se la linea contiene B byte allora il TAG è composto dal numero di bit na dell’indirizzo meno i

log (B) bit che servono per indirizzare il singolo byte dentro alla parola.

Page 6: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

Ad esempio se l’indirizzo è a 32 bit e ogni linea contiene 16 byte l’indirizzo del TAG è composto

solo da 32- log2(16)=32-4=28 bit i più significativi. Gli altri 4 sono considerati offset per cercare

nella linea il byte di interesse.

6.5 TECNOLOGIE PER LA MEMORIA CENTRALE

La memoria centrale è un blocco logico ad accesso casuale tramite indirizzi, che viene letto e

scritto dalla CPU all’atto dell’esecuzione di una istruzione di memoria ld o st. Fornisce dati o

legge dati in base a segnali di controllo:

– Di lettura: RD# o OE#

– Di scrittura: WR#

– Ad abilitazione CS# o CE#

Tutti i segnali sono storicamente in logica negata.

Tecnologicamente la memoria centrale può essere realizzata in molti modi differenti:

RAM:

SRAM

DRAM

ROM:

PROM

EPROM

EEPROM

FLASH

6.5.1 MEMORIE RAM

Le memorie RAM si chiamano random access memory; sono memorie volatili a lettura e

scrittura in cui il tempo di accesso è costante per ogni locazione di memoria indirizzata. Perciò

hanno per definizione modalità di accesso casuale. Sono realizzate in diverse tecnologie e si

dividono in due classi.

SRAM: MEMORIE RAM STATICHE

Come detto nei capitoli precedenti sono memorie molto veloci, realizzate in diverse tecnologie

che permettono al dato di rimanere staticamente memorizzato fino a che il dispositivo è

alimentato. Sono composte da:

– Tanti Flip Flop(FF) quanti i bit da memorizzare.

Page 7: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

– Logica combinatoria di selezione del FF ( o dei FF se la parola ha parallelismo maggiore di

1 bit) a partire dagli indirizzi.

– Logica combinatoria di selezione di lettura e scrittura.

A parità di prezzo, rispetto alle DRAM, le SRAM sono più veloci, a più bassa capacità e a più alti

consumi come dissipazione di potenza. Sono usate nei registri interni, nelle memorie cache o in

applicazioni embedded come memorie centrali.

Tipi di SRAM:

1. Async SRAM: Vecchia versione di memoria asincrona dove i segnali non avevano una

corrispondenza con un clock ma venivano accettati nell'ordine in cui arrivavano ai pin del

chip ( come nello schema del capitolo precedente).

2. Sync SRAM: Tipo di RAM statica sincronizzata con un clock esterno che permette un

funzionamento più affidabile e veloce. I segnali infatti vengono "campionati" sul fronte

del clock.

3. Pipeline Burst SRAM: Evoluzione della normale SRAM sincrona, fa uso di pipeline interne

per i segnali e velocizza il trasferimento di word multiple consecutive tramite accessi

sequenziali a più byte ( o burst). Contiene contatori specifici che si incrementano per

permettere il trasferimento di più parole di seguito

4. Dual Port e Video RAM (VRAM): Le dual port RAM sono delle memorie statiche a doppia

porta di accesso. È possibile leggere e scrivere dalle due porte indipendentemente.

Questo per esempio permette ad un processo elaborativo di accedere in lettura mentre

un'altro processo indipendente esegue operazioni di scrittura. La VRAM è una particolare

Dual Port Ram adatta all'impiego in schede video (da cui il nome) dove un processo

esegue la lettura da una porta (RAMDAC) mentre l'altro (CPU) opera indisturbato delle

elaborazioni. Le dual port RAM sono spesso usate nei piccoli buffer interni ai chip, nelle

cache e nelle FIFO per velocizzare due accessi concorrenti. Si veda ad esempio una VRAM

in http://www.ic72.com/pdf_file/i/14843.pdf. Negli ultimi anni i chip di VRAM negli

acceleratori grafici sono stati sostituiti da DRAM sincrone che sono comunque diventate

talmente veloci da sostituire le VRAM con logica di gestione esterna per permettere

comunque un accesso doppia porta.

Il mercato delle SRAM è in costante espansione per ottenere dispositivi sempre più piccoli e

veloci. Si veda ad es. il sito della Cypress http://www.cypress.com/sync_SRAMs/.

DRAM MEMORIE RAM DINAMICHE

Come detto nei capitoli precedenti, le memorie dinamiche non usano FF ma il bit è memorizzato

in un condensatore che può essere caricato o scaricato e necessita di refresh . La DRAM è stata

creata con l'intenzione di archiviare più memoria possibile anche a discapito della velocità.

Le memorie DRAM sono ottime per costituire la memoria centrale del sistema. Gli sviluppi

recenti delle memorie dinamiche (SDRAM, DDR, Rambus) sono infatti tutti versati alla

Page 8: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

massimizzazione della banda mentre le latenze di accesso rimangono tipicamente su livelli

medio-alti.

Essendo la DRAM una memoria di grande capacità, i progettisti per risparmiare linee hanno

deciso di spezzare la trasmissione dell'indirizzo in due parti Column Address e Row Address.

Per accedere ad una locazione di memoria è quindi necessario prima specificare il Row Address

(che viene memorizzato dal chip in un buffer interno) quindi, terminata questa operazione,

segue la trasmissione del Column Address usando le stesse linee. Se gli accessi successivi sono

nella stessa "pagina" (ossia hanno lo stesso row address) non è necessario specificare di nuovo il

Row Address ma solo il Column Address.

Fig. 4 esempio di DDR2 e DDR3

Le DRAM sincrone hanno un ritardo (Tacc) sincrono con un clock dato (SDRAM Synchronous

Dynamic RAM). Sono generalmente più lente delle corrispondenti memorie asincrone ma hanno

un ritardo predicibile ( n Tck) in cui la CPU può attendere (con segnale di rdy#) o far partire

un’altra attività.

La CPU definisce quanti cicli di clock sono necessari in un ciclo di bus per

– Trasferimento singolo (1 sola parola larga al massimo come il data bus)

– Trasferimento a BURST (sequenze di parole con indirizzi consecutivi)

Ci sono diversi tipi di DRAM:

FP DRAM, EDO RAM e BEDO RAM: Fast Page DRAM, Extended Data-Out DRAM e Burst

EDO RAM sono moduli DRAM asincroni. I segnali di controllo vengono interpretati

appena arrivano. Queste memorie erano tipicamente presenti nei moduli SIMM di

Page 9: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

qualche anno fa e sono state del tutto soppiantate dalle memorie DRAM di tipo

sincrono.

Synchronous DRAM (SDRAM): La SDRAM è una memoria dinamica sincrona che utilizza

un segnale di clock esterno per la sincronizzazione delle operazioni di I/O. Permette un

incremento delle prestazioni e una maggiore efficienza. Attualmente I chip di SDRAM in

commercio hanno frequenze di funzionamento dai 66MHz ai 200MHz e più negli ultimi

anni. I moduli di memoria che utilizzano la SDRAM hanno il formato DIMM, la banda

massima teorica delle memorie DIMM PC100 è di 800MB/s e 1064MB/s per le PC133.

Direct Rambus DRAM (RDRAM): Sviluppate da Rambus Inc. e inizialmente patrocinate

da Intel, questo tipo di DRAM utilizza soluzioni originali per ottenere un'elevata banda

di trasferimento dati. L'ampiezza del bus si riduce a 16bit e i dati vengono trasferiti su

entrambi i fronti di una segnale di clock a 400MHz per una banda complessiva di

1600MB/s; il ridotto numero di segnali permette anche la creazione di sistemi multi

canale. Internamente si discostano un pò dal modello tradizionale delle DRAM con

aumento del numero di banchi interni e una diversa gestione del multiplexing.

Double Data Rate SDRAM (DDR-SDRAM) È la naturale evoluzione della memoria

SDRAM. Permette il trasferimento dei dati su entrambi i fronti del clock. Le memorie

DDR si trovano a frequenze anche molto elevate (300MHz x 2) e il loro uso è stato

lanciato più dalle schede grafiche 3D che non dai processori. Attualmente tuttavia

rappresentano lo standard de facto nel campo delle memorie di sistema con frequenze

di 133, 166MHz (x2) e si trovano in moduli DIMM capaci di fornire una banda di 2100-

2700MB/s. ora le DRAM DDR3 ottengono le prestazioni migliori tarsferendo di fatto 8

moduli contemporanemanete

Standard JEDEC DDR3

Page 10: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

Il nome delle memorie DDR dipende dalla frequenza che ne determina la velocità di

trasferimento ( x2 perche’ raddoppia il clock rate e x8 perche’ ci sono 8 banchi di memoria)

standard

name

Memory

clock

(MHz)

Cycle

time

(ns)

I/O bus

clock

(MHz)

Data

rate

(MT/s)

Module

name

Peak

trr rate

(MB/s)

Timings

(CL-tRCD-

tRP)

CAS

latency

(ns)

DDR3-

800D 100 10 400 800 PC3-6400 6400

5-5-5

12 1⁄2

  

DDR3-

1066E 133⅓ 7

1⁄2 533⅓ 1066⅔ PC3-8500 8533⅓

6-6-6

11 1⁄4

DDR3-

1333F* 166⅔ 6 666⅔ 1333⅓ PC3-10600 10666⅔

7-7-7

10 1⁄2

DDR3-

1600G* 200 5 800 1600 PC3-12800 12800

8-8-8

10  

DDR3-

1866J* 233⅓ 4

2⁄7 933⅓ 1866⅔ PC3-14900 14933⅓

10-10-10

10 5⁄7 

DDR3-

2133N* 266⅔ 3

3⁄4 1066⅔ 2133⅓ PC3-17000 17066⅔

14-14-14 13

1⁄8

SDRAM ECC (Error Correcting Code): Le SDRAM ECC (con Codice di Correzione di

Errore) sono un particolare tipo di SDRAM che permette il controllo dei dati ed

un'eventuale correzione grazie ad un bit aggiuntivo agli otto tradizionali, il nono bit,

detto anche bit di parità. Questa funzione di controllo e correzione, permette a queste

RAM di avere una maggiore stabilità e sicurezza rispetto alle RAM "tradizionali", infatti

queste memorie sono utilizzate dalla maggior parte dei server, sono un pò più lente

delle memorie "tradizionali", esse hanno infatti tempi d'accesso maggiori.

Fig. 5 scheda di espansione con memorie

Esempio di memoria HP 4GB (1x4GB) DDR3-1600 ECC RAM Memory A2Z48AA

Page 11: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

In generale le RAM dinamiche sono molto veloci ma malgrado la loro alta bandwidth hanno

ritardi dovuti al refresh

ES A 256 Mb DRAM chip is organized as a 32M 8 memory externally and as a 16K 16K array internally. Rows must be refreshed at least once every 50 ms to forestall data loss; refreshing a row takes 100 ns. What fraction of the total memory bandwidth is lost to refresh cycles?

SOL. Refreshing all 16K rows takes 16 1024 100 ns = 1.64 ms. Loss of 1.64 ms every 50 ms

amounts to 1.64/50 = 3.3% of the total bandwidth.

1990 1980 2000 2010

Nu

mb

er

of

me

mo

ry c

hip

s

Calendar year

1

10

100

1000

Large

PCs

Work-

stations

Servers

Super-

computers

1 MB

4 MB

16 MB

64 MB

256 MB

1 GB

4 GB

16 GB

64 GB

256 GB

1 TB

Computer class

Memory size

Small

PCs

Il trend di crescita delle RAM dinamiche segue la legge di Moore.

Column mux

Row

deco

de

r

/

h

Address

Square or

almost square

memory matrix

Row buffer

Row

Column

g bits data out

/

g

/

h

Write enable

/

g

Data in

Address

Data out

Output enable

Chip select

.

.

.

. . .

. . .

(a) SRAM block diagram (b) SRAM read mechanism

Page 12: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

6.5.2 MEMORIE ROM

Le memorie ROM (Read only memory) sono memorie di sola lettura, esse non hanno logica

dedicate per la scrittura ma vengono scritte attraverso differenti apparati tecnologici.

Fig. 6 memorie ROM

Le ROM possono essere classificate in:

Masked ROM: ROM in cui le celle di memoria sono state scritte in fase di integrazione

(nella maschera usata per creare l'integrato); le MROM non possono essere cancellate

ma garantiscono bassi costi di produzione per grandi quantità. Le singole celle della ROM

sono come collegamenti elettrici presenti (0) o interrotti (1). Quando si vuole leggere il

contenuto di una cella di memoria gli viene inviato un livello elettrico alto, se il

collegamento è presente, il segnale passa (1) altrimenti la cella vale 0.

Programmable ROM (PROM): programmabili una volta impiegando un pin speciale (ad

elevato voltaggio). È una ROM vuota, ossia non ancora programmata. La ROM nasce

come un insieme di bit a 1, per scrivere uno 0 in uno specifico bit si esegue una procedura

di scrittura una tantum che, bruciando un microscopico fusibile interno, interrompe per

quel bit la conduzione di corrente che viene interpretata in lettura come uno 0.

Page 13: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

B i t l i n e s

Word

lines

Word contents

1 0 1 0

1 0 0 1

0 0 1 0

1 1 0 1

S u p p l y v o l t a g e

Eraseable Programmable ROM (EPROM): cancellabili in toto con luce ultravioletta. È una

ROM di tipo programmabile(PROM) ma realizza l'interruzione di una connessione

elettrica nella cella tramite un fenomeno di intrappolamento delle cariche con segnali di

programmazione di una certa potenza. La memoria può quindi essere scritta con questo

procedimento ma può anche essere "resettata" ossia totalmente cancellata esponendo il

core del chip ad una radiazione ultravioletta (tramite la tipica finestrella trasparente delle

EPROM) che fornisce alle cariche intrappolate l'energia necessaria per liberarsi con

conseguente azzeramento delle celle di memoria.

Electrically Eraseable Programmable ROM (EEPROM): sono cancellabili elettricamente

senza doverle estrarre dalla scheda, tipicamente risultano più lente e di ridotta capacità

di memorizzazione. Questo tipo di ROM è simile all'EPROM ma può essere cancellato

elettricamente. Risulta quindi molto più pratico dell'EPROM, inoltre si può operare la

cancellazione su blocchi limitati oltre che sull'intera memoria. È l’antenato delle Flash

ROM. Le EEPROM sono state utilizzate a lungo nei BIOS.

FLASH: leggibili e scrivibili a blocchi senza estrarle dal circuito. Sono memorie ad alta

capacità ma caratterizzate da un limite finito di scritture. Sono Memorie EEPROM dove

le informazioni vengono registrate in un array di transistors chiamati celle, ognuna delle

quali conserva il valore di un bit. Le nuove flash utilizzano delle celle multilivello che

permettono di registrare il valore di più bit attraverso un solo transistor.

Page 14: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

S o u r c e l i n e s

B i t l i n e s

Word

lines

n+

n

p subs-

trate

Control gate

Floating gate

Source

Drain

Le Flash vengono classificate in base alla rete logica che le realizza in:

NOR FLASH: Le prime flash inventate da Intel nel 1988. Per programmare il valore di una

cella si avvia un flusso di elettroni poi una tensione molto elevata sul Gate che genera un

campo elettrico sufficientemente elevato affinché gli elettroni vengano intrappolati nel

Floating Gate. ("hot-electron injection“). È da qui che prende origine la denominazione di

flash. Per la cancellazione viene applicata una differenza di tensione per far sì che gli

elettroni vengano estratti dal gate. Le memorie NOR moderne raggruppano le celle in

segmenti chiamati blocchi o settori in maniera che le operazioni di cancellazione

avvengano contemporaneamente su tutte le celle appartenenti allo stesso segmento. Le

memorie NOR vengono utilizzate ad esempio per contenere il firmware di un

microcontrollore che viene eseguito direttamente e non viene aggiornato

frequentemente. Sono state usate nelle prime Compact Flash soprattutto per conservare

il firmware delle fotocamere digitali e dei PDA. Ne esiste una recente variante

denominata DINOR che prevede la cancellazione contemporanea di più settori.

NAND FLASH: È stata concepita per la memorizzazione di grandi quantità di dati in

maniera sequenziale, a piccoli blocchi e con un costo contenuto. Il progetto nasce nel

1989 da una collaborazione tra Samsung e Toshiba.Le memorie NAND sono ottimizzate

per l'aggiornamento rapido dei dati. Si consideri che il settore di cancellazione per le

NAND è di 8 Kb contro i 64 Kb delle NOR. Inoltre a parità di capacità risulta meno costoso

produrre una Flash di tipo NAND rispetto ad una di tipo NOR. Grazie a queste migliori

prestazioni, le NAND Flash vengono solitamente utilizzate nelle schede di memoria

Compact Flash, Smart Media, SD, MMC, xD, PC cards, memory stick USB e come

principale Storage di Portatili moderni (2006 Samsung).

Recentemente Hitachi ha introdotto una quarta tipologia di memoria chiamata AND che

sembra sintetizzare i migliori aspetti delle Flash NAND e NOR con alte velocità di

cancellazione, basso consumo, blocchi di lettura e scrittura ridotti.

Page 15: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

Vale la pena osservare che l'accesso sia in lettura che in scrittura alle memorie FLASH richiede

molto più tempo rispetto ad una RAM attuale, e che comunque il numero di scritture che una

memoria FLASH può supportare non è illimitato seppur molto alto (oltre 105 cicli di scrittura).i

6.6 ORGANIZZAZIONE DELLA MEMORIA

Per la memoria centrale l’organizzazione della memoria è un’organizzazione piatta (non

gerarchica) con dispositivi in serie ed in parallelo:

e) In parallelo: per aumentare la dimensione di parola.

f) In serie: per aumentare lo spazio di indirizzamento fisico coperto.

Nell’architettura di un calcolatore si cerca di avere il parallelismo delle memorie almeno uguale

al parallelismo del bus dei dati della CPU. Spesso i dispositivi sono di parallelismo minore,

tipicamente di un byte. I dispositivi di memoria sono organizzati in banchi con più dispositivi

inparallelo che a loro volta sono organizzati in serie per creare moduli di dimensioni più grandi.

Dispositivi in parallelo per realizzare un banco di memorie di dimensione N maggiori

della dimensione del singolo dispositivo.

Dispositivi in serie per realizzare un modulo con più locazioni di memoria di quante

presenti in un singolo dispositivo o banco.

Una memoria di capacità C può essere costituita da più dispositivi fisici in serie o in parallelo

(veda il punto di organizzazione). Se la disposizione è in parallelo la dimensione della parola è

multipla di byte ma per convenzione la capacità si misura sempre in byte (o bit). Ad esempio in

figura 1 è indicata una memoria logica implementata con un’architettura in parallelo costituita

da un banco di 4 dispositivi fisici ognuno con parallelismo di un byte. Se ogni dispositivo avesse

la capacità di 512Kbyte, il banco avrebbe la capacità di 512kbyte x 4= 2Mbyte in totale.

ESEMPIO:

Avendo a disposizione dispositivi di memoria di capacità di 1Mbyte con parallelismo 1 byte si

vuole realizzare un modulo di memoria di 8 MByte con parallelismo pari al bus della CPU a 32 bit.

Come devono essere disposti i dispositivi in serie e i parallelo?

Ogni banco da 32 bit deve essere composto da np=4 dispositivi da 8 bit in parallelo.

Page 16: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

Fig. 7 memorie in serie e in parallelo

La capacità del banco Cb= C x np quindi Cp=1MB * 4=4MB

La capacità del modulo Cm=8MB. Il numero di banchi in serie ns=Cm/Cb quindi ns=2

Sono necessari 2 banchi in serie ognuno con 4 dispositivi in parallelo. Ogni parola è di 4 byte. Il

numero di parole M=Cm/np quindi uguale a 2M

In questo caso se si volesse leggere o scrivere una parola per volta sarebbero necessari na bit di

indirizzo: Il numero di bit di indirizzo necessari per indirizzare il modulo a livello di parola sono:

log2(Cm/np) * na=21

Con 21 bit si indirizzano 2M parole. Nelle memorie centrali Se NB numero di byte per parola di un

banco con più dispositivi in parallelo ed è nota la capacità C e quindi M si conosce quanto è la

dimensione del bus degli indirizzi necessario per indirizzare le locazioni di memoria:

na=log2(M/NB)

Ad esempio una memoria centrale di capacità 512Mbyte con parallelismo di 64 bit ha da

indirizzare 512/8 = 64M parole con 26 indirizzi diversi. Attenzione che questi sono gli indirizzi per

leggere e scrivere parole intere ma la cpu deve poter indirizzare anche i singoli byte se promette

un metodo di indirizzamento non allineato.

Perciò in totale la CPU necessita di log2(C ) = 29 bit per indirizzare i byte di una memoria a

512Mbyte, di cui 3 bit (i meno significativi) indirizzano i byte nella parola e i 26 più significativi

servono per scegliere la parola.

I banchi di memoria sono composti da dispositivi in parallelo per permettere di leggere o

scrivere parole di dimensioni maggiori. Se il metodo di indirizzamento e’ allineato allora tutte le

parole sono lette e scritte contemporaneamente; se e’ permesso anche un indirizzamento non

allineato allora si possono leggere e scrivere solo alcuni dei dispositivi di memoria tramite

opportuni segnali di controllo detti Byte enable (BE#). I processori sprsso eprmettono entrambi i

metodi di indirizzamento ma se la memoria e’ impiegata in gerarchia ( si veda dopo) il

Page 17: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

trasferimento avviene solo in modo allineato considerando che sii devono trasferire molti byte

consecutivi.

I banchi comunque sono messi in serie per coprire uno spazio di indirizzamento maggiore. In

questo caso i bit piu’ significativi dell’indirizzo sono utilizzati nella gestione dei chip select.

Se invece di osservare solo la memoria centrale si osserva tutta la memoria del calcolatore ( dai

registri alla memoria di massa) allora si vede che il calcolatore ha un’organizzazione gerarchica

della memoria. Ciò non accade nei sistemi embedded dove l’organizzazione è di solito non

gerarchica.

Organizzazione non gerarchica e’ l’organizzazione che abbiamo visto fino ad ora in cui lo

spazio di indirizzamento è coperto solo da memorie centrali ad accesso casuale con

corrispondenza 1 a 1 tra indirizzi e locazioni disponibili.La CPU indirizza una locazione di

memoria e se e’ presente il chip di memoria che contiene tali locazioni il dato e’ letto e

scritto. Se lo spazio di memoria non e’ completamente coperto da banchi in serie allora

esisteranno alcuni indirizzi vietati che non corrispondono a zone di memoria.

Fig. 8 memorie non gerarchiche

In questo caso la CPU è collegata a memorie diverse magari di velocità diversa ma tutte in

corrispondenza 1 a 1 con gli indirizzi. Unite costituiscono tutto lo spazio di indirizzamento.

Nei sistemi embedded, normalmente l’organizzazione non è gerarchica. Alcune memorie

sono dedicate, ossia sono progettate per contenere specifici tipi di dati ( es. la EPROM o

flash di bootstrap). Altre memorie sono general-purpose e possono essere accedute

mediante specifici metodi di indirizzamento per leggere o scrivere dati di qualsiasi tipo. Il

loro impiego dipende dalle loro caratteristiche e da come il dato viene impiegato durante il

funzionamento del calcolatore. Ad esempio il progettista indicando indirizzi non rilocabili

pone nelle memorie veloci il codice ed i dati più utili e frequenti e sulle memorie più lente i

dati da usare in inizializzazione o in caso di termine delle operazioni quando sono richieste

prestazioni minori.

Organizzazione gerarchica: Il calcolatore contiene memorie di tipi, prestazioni e costi

diverse. Le memorie nella gerarchia hanno copie dei dati che si trovano anche nella

gerarchia inferiore.

Page 18: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

L’organizzazione gerarchica tende ad accedere prima alle memorie più veloci. Il dato può

non essere presente e quindi viene richiesto in una memoria di gerarchia inferiore.

La memoria ideale dovrebbe essere a capacità infinita, tempo di accesso nullo e costo e

consumo nullo. L’organizzazione gerarchica nasce epr permettere alla CPU di accedere il piu’

possibile alle memorie veloci seppur piccole impiegando il meccanismo hardware del

trasferimento gerarchico per piazzare e rimpiazzare i dati nella gerarchia in modo da usare

poche piccole memorie pur mantenedo nelle memorie piu’ lente grandi quantità di dati.

La memoria del calcolatore è organizzata gerarchicamente in modo da comprendere poche

memorie a bassa capacità ed alti costi ma molto veloci e molta memoria più lenta e di

capacità maggiore.

Fig. 9 gerarchia di memorie

La regola base dell'efficienza è quella di “rendere di massima velocità il caso comune”. Si cerca

così di strutturare la località spaziale e temporale.

“Per il Principio di località un programma in ogni istante utilizza una porzione limitata dello

spazio di indirizzamento”

Per la località temporale (accedendo ad un dato è assai probabile che si debba accedere

nuovamente ad esso in un breve intervallo di tempo ossia in un tempo “localmente vicino”). Se è

vero che i programmi hanno una grande località temporale ossia un riuso dei dati conviene

quindi replicare i dati anche in memorie temporanee veloci a cui accedere più velocemente. Ciò

accade per le variabili e per gli operandi ma spesso anche per le istruzioni. Si pensi ai cicli di

istruzioni in cui la stessa istruzione viene utilizzata più volte. Per questo conviene durante il fetch

dell’istruzione copiarla anche in una memoria veloce da cui riprenderla al prossimo accesso.

Questo è ilo primo uso delle cache mantenere dati da riutilizzare nel tempo con un accesso più

veloce della memoria centrale.

Page 19: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

Per la località spaziale (accedendo ad un dato è assai probabile che si debba accedere ad un dato

allocato in uno spazio in memoria localmente vicino). Se è vero che i programmi sfruttano la

località spaziale conviene portare nelle memorie veloci non singoli dati ma blocchi di dati

adiacenti perchè si prevede di utilizzarli nel prossimo futuro. Questo caricamento è un’azione

speculativa nel senso che viene eseguita anche se non espressamente richiesto dal programma.

Quindi conviene replicare non singoli dati ma blocchi di dati adiacenti. La dimensione dei blocchi

dipende dal costo del trasferimento, più la memoria è lenta più è conveniente accedervi

raramente e quindi spostare blocchi di grandi dimensioni. Più si pensa che la località spaziale sia

grande più i blocchi dovrebbero essere grandi. Se i blocchi risultassero troppo grandi si

rischierebbe di caricare dati inutili e quindi perdere tempi nei trasferimento.

Il progetto della gerarchia di memoria è molto complesso.

Dati che inizialmente si trovano ad un livello più basso:

– (loc. temporale) conviene spostarli in memorie più veloci

– (loc. spaziale) conviene spostare anche i dati vicini

I programmi NON vedono la gerarchia ma referenziano i dati come se fossero sempre in

memoria centrale (a parte per i registri che sono nominati esplicitamente nel linguaggio

macchina come deciso dal compilatore) perciò bisogna mantenere il più vicino possibile alla CPU

dati utilizzati più recentemente. La gerarchia delle memorie deve prevedere in successione

memorie sempre più capienti e più lente per mantenere i dati nei livelli più alti

proporzionatamente alla previsione della frequenza d’uso.

I principi di località di referenziazione sono stati ben studiati teoricamente e verificati. Il termine

è stato coniato nel 1972 da P.J. Denning, S.C. Schwartz, in un lavoro su Communications of the

ACM, Volume 15 , Issue 3 (1972). Da allora è stato sfruttato nel progetto dei nuovi calcolatori

con gerarchia di memoria. Fino a qualche anno fa però era un problema trascurato dai

programmatori che scrivevano i programmi “naturalmente” con località spaziale e temporale.

Con l’avvento di calcolatori con gerarchie spinte con cache di I, II e III livello e soprattutto dei

sistemi multi-core con cache locali, poter ottimizzare il codice per avere maggiore località può

influire fortemente le prestazioni.

Ad esempio un prodotto di matrici

for i in 0..n

for j in 0..m

for k in 0..p

C[i][j] = C[i][j] + A[i][k] * B[k][j];

Se le matrici sono molto grandi il principio non è sfruttato al meglio. Ad esempio se le matrici

sono memorizzate per righe l’accesso per colonne non sfrutta la località spaziale. E il codice può

essere scritto in modo diverso. Anche per la località temporale può convenire scrivere il codice

Page 20: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

diversamente: ad esempio la tecnica di blocking che divide le matrici grandi in sotto-blocchi può

migliorare le prestazioni con alti speedup.

for (ii = 0; ii < SIZE; ii += BLOCK_SIZE)

for (kk = 0; kk < SIZE; kk += BLOCK_SIZE)

for (jj = 0; jj < SIZE; jj += BLOCK_SIZE)

for (i = ii; i < ii + BLOCK_SIZE && i < SIZE; i++)

for (k = kk; k < kk + BLOCK_SIZE && k < SIZE; k++)

for (j = jj; j < jj + BLOCK_SIZE && j < SIZE; j++)

C[i][j] = C[i][j] + A[i][k] * B[k][j];

Riscrivendo il codice in questo modo ogni sottoblocco è usato più volte e anche la località

spaziale viene migliorata.

6.7 GERARCHIA DI MEMORIA NEL CALCOLATORE

La memoria interna alla CPU è costituita dai registri ed è caratterizzata da alta velocità

(comparabile con quella del processore) e limitate dimensioni (al più qualche migliaio di

byte). Nei sistemi attuali un livello o più di memorie cache è stato inserito tra CPU e

memorie centrali. Essa è sia interna al microprocessore sia allocata esternamente sulla

mother board. La memoria centrale o principale è caratterizzata da dimensioni molto

maggiori della memoria interna alla CPU (fino a qualche Gbyte) ma tempi di accesso più

elevati. È accessibile in modo diretto tramite indirizzi. Le Memorie secondarie sono di

differenti tipi in un calcolatore. Sono tipicamente memorie di massa ad alta capacità

bassi costi e non volatili.

Page 21: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

Fig. 10 gerarchia in un PC

La CPU o lavora esplicitamente con i registri, ossia con la memoria interna, o deve accedere alla

memoria.; nel momento in cui esegue operazioni di memoria (istruzioni ld/st o quando deve

eseguire il fetch di una istruzione) genera l’indirizzo necessario. L’indirizzo esce dalla CPU ed in

un’organizzazione non gerarchica arriva alla memoria eventualmente attraverso il bus controller

che è usato per interfacciare in modo corretto i segnali. In un’organizzazione gerarchica come

quella attuale nei PC, l’indirizzo è catturato dalla MMU (memory management unit) all’interno

del microprocessore e viene impiegato per accedere in modo associativo alla cache di primo

livello. Se il dato (o l’istruzione) viene ritrovato nella cache L1 (hit) l’accesso avviene in un tempo

molto basso , impiegando lo stesso tempo di clock della CPU. In caso contrario (miss), l’indirizzo

passa all’esterno del microprocessore sul bus proprietario e veloce, catturato dal bus controller

che lo impiega per cercare in modo associativo la presenza del dato nella cache L2. In caso di hit

il dato arriva con un tempo di accesso più alto che nelle cache L1 ma minore che per la

memoria centrale e nel frattempo viene spostato in cache L1 anche un blocco (o linea) di dati

adiacenti, tanti quanti contenuti nella linea di L1. In caso di miss il dato viene cercato in memoria

centrale dove il dato sicuramente si trova e viene spostato assieme ai dati adiacenti in L2 ed L1.

Tutto questo processo è gestito dall’hardware e non è visibile nè al programmatore nè al sistema

operativo.

Nei sistemi in cui il sistema operativo lo consente, esiste anche un ulteriore livello di gerarchica

che è la Memoria Virtuale realizzata con parte della memoria di massa. Dato che la memoria

centrale è di dimensione normalmente minore di quanto sia prevista dallo spazio di

indirizzamento della CPU, non tutti i dati ed i programmi possono risiedere

Page 22: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

contemporaneamente in memoria centrale. Per questo la memoria centrale è considerata come

una “cache” della memoria virtuale, ossia della memoria che virtualmente si avrebbe a

disposizione, grande come tutto lo spazio di indirizzamento, e che viene invece sostituita da una

memoria di massa come l’hard disk.

Se un dato fa riferimento ad un indirizzo in memoria, in questo caso l’indirizzo virtuale viene

trasformato dal bus controller in un indirizzo fisico reale di quelli possibili data la memoria

centrale a disposizione. Se il dato si trova già nella memoria centrale (memoria fisica) si ha un hit

e come nel caso precedente il dato viene acceduto correttamente. Se il dato non si trova in

memoria centrale (miss o Page Fault) il dato e il suo blocco corrispondente che si chiama pagina

viene richiesto tramite il sistema operativo nella memoria di massa che con un meccanismo di

Direct Memory Access(DMA) trasferisce la pagina da memoria di massa a memoria centrale. Il

sistema operativo quindi è chiamato ad eseguire un programma di trasferimento e di correzione

delle tabelle delle pagine. Al termine di questa operazione, molto lunga (decine di ms) il dato

può essere trasferito alla CPU e prima ancora nelle cache.

6.8 PRESTAZIONI

Le prestazioni delle memorie si misurano in tempo: la latenza per le memorie si chiama

tempo di accesso mentre il throughput si calcola come reciproco del tempo di ciclo.

Tempo di accesso (Tacc): il tempo necessario per una operazione di lettura (o

scrittura). Per le memorie ad accesso casuale è il tempo che intercorre da

quando vengono forniti gli indirizzi a quando sono pronti i dati. Per le memorie

sequenziali comprende anche il tempo per raggiungere i dati.

Tempo di ciclo: è il tempo di accesso più il tempo per terminare l’operazione

prima di poter compiere un altro accesso. Di solito si calcola in lettura (Trc); è di

solito più lungo del tempo di accesso. Nelle memorie sincrone determina la

massima frequenza del bus a cui possono essere collegate.

Velocità di trasferimento (bit rate, br): per le memorie ad accesso casuale è il

reciproco del tempo di ciclo (throughput) considerando il numero di bit trasferiti.

Per le memorie di massa ad accesso diretto o sequenziale deve considerare

anche il tempo di interfaccia con il controller.

In generale T= ts+ N/br

Bisogna considerare un tempo di startup ts (per l’accesso al bus, la traduzione degli

indirizzi, l’accesso iniziale..), più un tempo proporzionale al numero di bit trasferiti N

rispetto alla velocità in “bit per second”(bps) br. Di solito i tempi di startup e il bit rate

sono fissati dalla CPU a cui la memoria o si adegua o introduce ritardi. Più la memoria è

Page 23: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

lenta più il ts è alto ed è per questo che nella gerarchia della memoria è conveniente

trasferire blocchi di grandi dimensioni.

Nella gerarchia di memoria:

Blocco: unità di informazione minima scambiata fra livelli (es: 32 bytes)

Hit: un accesso alla memoria che trova l'informazione cercata nel livello

superiore.

Hit Rate: frequenza di accessi trovati nel livello superiore (h).

Miss Rate: (1 - h).

Hit Time: tempo di accesso al livello superiore Th.

Miss Penalty: tempo per rimpiazzare un blocco nel livello superiore più il tempo

per fornirlo alla CPU. Il "miss penalty“ (Tmp) può anche essere scomposto nei

tempi per reperire il primo dato di un blocco più il tempo per trasferire gli altri.

Comprende certamente un Th e un “overhead” nel caso di miss (Tmiss).

Tacc = h Th + (1-h)Tmp

Tacc = Th + (1-h)Tmiss

Il Tmiss comprende il tempo per reperire il blocco nella gerarchia di livello più basso più

(eventualmente trascurabile) il tempo per rimpiazzare i dati dal livello alto al livello più

basso (se il livello più alto deve essere “svuotato”) .

ESERCIZIO:

Supponiamo un sistema a due livelli in cui per accedere al primo livello (memoria

centrale) il tempo di accesso sia 0.1 microsec (100 ns) per ogni dato e per accedere al

secondo (ad esempio HD) sia di 0.1msec .Quando si accede al secondo livello il dato deve

essere copiato nel primo. Ipotizziamo che le probabilità di trovare il dato al primo livello

siano del 95% (h). Trascuriamo il tempo necessario al processore per capire dove si trova

il dato nell’hard disk (trascurabile rispetto al tempo di accesso) e il tempo di

trasferimento di un intero blocco:

Quanto è il tempo di accesso medio?

Tacc= 0.95 * 0.1 + 0.05 * (0.1 +100)= 0.095+5.5= 5.596 microsec

Page 24: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

Basta un 5% di penalizzazione di miss che tutto l’accesso medio risulta fortemente

rallentato. Nel caso specifico di ben 5 volte. Ipotizzando circa una differenza di 103 per le

dimensioni(es. 10K – 10M) e 103 per il tempo di accesso(es. 10-7s – 10-4s).

Approssimativamente lo speedown calcolato tra il sistema ideale (solo memoria

centrale) e quello reale per quel che riguarda il tempo di accesso risulta:

Sp=0.1/5.596=0.0178 ( 55.96 volte più lento ) .

Fig.11 Cache memory

Come si vede dalla fig. 10 l’indirizzo viene fornito dalla CPU, la parte più alta

dell’indirizzo (tag) viene confrontato ossia associato ai tag memorizzati nella cache. Se il

confronto è positivo allora (hit) il dato si trova sulla cache e viene letto dalla cache

Tag Offset

es(hit) No(miss)

Main memory

Address

=

=

=

Tag

Tag

Tag

Tag =

Data Block

Data Block

Data Block

Data Block

Cache memory

Data bus

Page 25: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

memory. Se l’associazione non c’è e nessun tag della cache corrisponde al tag

dell’indirizzo allora il dato viene trovato nella memoria di gerarchia più bassa. In caso di

lettura viene anche caricato sulla cache ( con i byte vicini, tanti quanti richiesti dal

blocco) per sfruttare la località spaziale e temporale.

6.9 APPROFONDIMENTI SULLE CACHE

Le memorie cache sono realizzate normalmente con tecnologia SRAM, in parte

all’interno del chip e in parte all’esterno del chip.

La cache è costituita dalla parte chiamata anche cache RAM che contiene i blocchi di

dati o linee e dalla parte (di solito integrata nel cache controller) detta anche cache

directory che contiene i tag ed eventuali bit di stato. Ogni linea ha infatti uno o più bit di

stato per indicare lo stato della linea, ad esempio è sempre presente il bit V (Valid) che

vale 0 se la linea non è valida o è vuota; tale stato invalida l’associazione tra il tag e

l’indirizzo e forza anche ad una miss. Di solito sono presenti più bit 8 come nel protocollo

MESI modified, exclusive, shared e invalid) utilizzati nei sistemi multiprocessore.

La cache viene classificata a seconda del grado di associatività per quel che riguarda il

piazzamento dei dati, in tre categorie

1) cache fully associative: è la cache con maggiore grado di libertà in quanto la linea

che viene scritta a partire dal livello di gerarchia più basso può essere piazzata in

una qualsiasi linea presente. L’indirizzo è quindi composto da una parte di offset di

NB=log2B bit ( B dimensione del blocco) e da NT= na-log2B bit di Tag che vengono

usati per essere associati a tutte le linee della cache come in figura. Questa

architettura è la più efficiente, ha mediamente la miss rate più bassa ma è anche la

più costosa per il costo della logica di controllo dei tag.

Fig.12 Cache fully associative

2) cache direct mapped: come estremo opposto, la cache direct mapped prevede una

sola possibilità di piazzamento per ogni linea . Ogni linea infatti usa parte del tag

come chiave unica di indice ed in particolare la parte meno significativa dell

indirizzo. In questo modo due blocchi adiacenti vengono mappati in due linee

Page 26: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

consecutive e non si sovrappongono. Ogni linea se è presente sulla cache può

risiedere in una sola posizione data dalla parte di indirizzo chiamata index e quindi

la associazione del tag avviene con un confronto 1:1. L’indirizzo è quindi composto

da una parte di offset di NB=log2B bit ( B dimensione del blocco) da una parte di

index di Ni= log2L ( con L il numero di linee) e da NT= na-Ni-NB bit di Tag che

vengono usati per essere associati al tag memorizzato all’interno. È la cache

potenzialmente con il più alto miss rate ma è anche la meno costosa. Si veda la

figura corrispondente.

Fig.13 cache direct mapped.

3) Cache n-way associative: è la cache più usata, compromesso tra le architetture

precedenti. Le linee della cache sono divise in S set da n vie ognuna (n-way

associative). Ogni linea del livello inferiore della gerarchia può essere piazzata in un

solo set ma in una qualsiasi delle n linee dentro al set. È una cache quindi direct

mapped a livello di set ma totalmente associativa dentro al set; perciò il miss rate è

Address (showing bit positions)

20 10

Byte

offset

Valid Tag DataIndex

0

1

2

1021

1022

1023

Tag

Index

Hit Data

20 32

31 30 13 12 11 2 1 0

Page 27: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

minore rispetto al caso precedente perchè ci sono più possibilità di mantenere la

linea nella cache senza doverla rimpiazzare. L’indirizzo è composto da una parte di

offset di NB=log2B bit ( B dimensione del blocco) da una parte di index di Ni= log2S

( con S=L/n il numero di set) e da NT= na-Ni-NB bit di Tag che vengono usati per

essere associati al tag memorizzato all’interno.

Le cache attualmente si usano con una associatività variabile da 2,4 8 perchè è stato

verificato sperimentalmente che non serve aumentare ulteriormente la associatività

ma con associatività di 8 o 16 si ottiene mediamente una miss rate molto simile a

quella di una cache totalmente associativa.

Fig. 14 cache a n-way associative.

Nella figura che segue si vede la differenza tra l’accesso diretto e l’accesso 2 way-

associative.

Page 28: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

Fig. 15 memory access.

ESERCIZIO

Sia data una cache di capacità ( la capacità si riferisce sempre e solo alla cache RAM) di

128Kbyte a 4 –way associative con blocchi di 16Byte.

Quanti sono i bit di tag, index e offset se lo spazio di indirizzamento è a 4Gbyte?

Essendo na=32, NB=log2 16 =4 , ci sono L= 128KB /16B =2^13= 8K linee e S=L/4=2K set

Ni= log2 S ossia Ni=11. N tag= 32-11-4= 17 bit

Quanto è grande in byte ( arrotondando a un numero intero di byte) la cache directory?

La Cache directory contiene tanti tag quanti le linee. Ogni tag di 17 bit arrotondato a 3

Byte per 8K linee ossia circa 24Kbyte.

RIMPIAZZAMENTO

Quando la cache e’ piena o il set e’ pieno la linea deve essere rimpiazzata. Epr

rimpiazzare la linea si dovrebbe rimpiazzare la linea meno utile. Se e’ possibile si

implementa il protocollo LRU least recently used che sceglie di rimpiazzare la linea che

Page 29: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

da piu’ tempo non e’ usata. Per far cio’ ogni linea deve avere alcuni bit di contatori

dedicati. Se direct mapped, non c’e’ problema a scegliere, se n-way associativa con n

piccolo la tecnica LRU e’ conveniente, al crescere dell’associatività diventa complesso

sostenere il costo di una rete logica LRU per ogni linea e si preferisce la scelta RANDOM

che pero’ offre risultati non troppo lontani in termini di miss rate

Esempio:

• Miss rates for caches with different size, associativity and replacemnt

algorithm.

Associativity: 2-way 4-way 8-way

Size LRU Random LRU Random LRU Random

16 KB 5.18% 5.69% 4.67% 5.29% 4.39% 4.96%

64 KB 1.88% 2.01% 1.54% 1.66% 1.39% 1.53%

256 KB 1.15% 1.17% 1.13% 1.13% 1.12% 1.12%

For caches with low miss rates, random is almost as good as LRU.

MISS IN LETTURA

Esistono diverse cause che possono provocare una cache miss, che a sua volta crea la

necessità di accesso alla memoria di livello inferiore e riempimento della linea con un

peggioramento delle prestazioni in tempo di accesso di qualche ordine di grandezza. Le

miss possono essere catalogate di tre tipologie a seconda della motivazione che le causa:

Compulsory (obbligatorie) se sono inevitabili; esse si verificano quando la linea

richiesta non è mai stata in cache.

Conflict se sono dovute a un conflitto dovute alla limitata associatività: il dato

viene richiesto nella cache, sarebbe stato presente ma è stato rimpiazzato perchè

una altra linea con lo stesso index è stata richiesta in seguito e a causa della

limitata associatività ha preso il suo posto.

Capacity se sono dovute alla limitata capacità della cache: la linea sarebbe stata

presente ma essendo la cache di capacità limitata essa è stata rimpiazzata da

un’altra.

Cosa fare per aumentare l’hit rate (o ridurre il miss rate )?

Page 30: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

Per ridurre le miss del primo tipo bisognerebbe aumentare la dimensione della linea in

modo da diminuire la probabilità di non avere il dato sulla cache. Se però la dimensione

si aumenta troppo si rischia di prendere troppi dati inutili per la limitata località spaziale,

provocando un initile impiego della memoria ed un inutile lungo tempo di line fill.

Per limitare le miss del secondo tipo converrebbe aumentare la associatività e per le

terze nulla da fare se non aumentare la dimensione della cache.

In realtà i problemi sono molto complessi e negli ultimi dieci anni sono state studiate

molte soluzioni alternative per diminuire il miss rate senza aumentare l’hit time o il miss

time. Si veda per questo il testo di Hennessy Patterson.

ESERCIZIO

Si deve eseguire un programma con un ciclo di 10 iterazioni; in ogni ciclo si devono

leggere le variabili var1,var2, var3 e var4 che sono allocate in memoria agli indirizzi

rispettivamente F000A023, F000A021, A000A022, F000A025.

a) Con uno spazio di indirizzamento a 32 bit ed una cache direct mapped con linee

di 16B di dati e di capacità di 1Mbyte, quante miss e di che tipo si verificano?

b) E se la cache è a 2 vie associative?

c) E se la cache è come a) ma con 32 B di dimensione di Linea?

d) E se è come b) e c)?

Soluzione a) Innanzitutto la cache ha 256 K linee . Quindi ha NB=4, Ni=18 e NT=10.

Perciò

Tag Index Offset

Var1 1111000000 000000101000000010 0011 Miss compulsory

Var2 1111000000 000000101000000010 0001 Hit

Var3 1010000000 000000101000000010 0010 Miss compulsory

E rimpiazza la precedente stesso index

Var4 1111000000 000000101000000010 0011 Miss conflict (sarebbe stata in cache se non fosse stata rimpiazzata da

Page 31: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

var3)

Dalla tabella si vede che tutte e 4 le variabili hanno lo stesso index ma non lo stesso tag.

Var1,var2 e var4 sono sulla stessa linea ma la linea viene rimpiazzata a causa di var3

Perciò

1° iterazione 3 miss e 1 hit 2 compulsory e 1 conflict

2° alla 10° iterazione 2h (var1 e var2) e 2 miss di conflitto

Totale 21 miss e 19 hit; come cambia negli altri casi?

MISS IN SCRITTURA

Quello che è stato visto fino ad esso riguarda la lettura. Cosa succede invece in caso di

scrittura? Esistono due possibili strategie in caso di hit. Se il dato da scrivere è già

presente sulla cache:

write-back è la strategia per cui la scrittura avviene solo al livello più alto della

gerarchia e viene copiato nei livelli più bassi solo se la linea viene rimpiazzata o al

termine della esecuzione del task ( o quando richiesto dal sistema operativo). È il

metodo più efficiente dal punto di vista del tempo di accesso

write through: è la strategia per cui ad ogni scrittura il dato viene scritto in tutti i

livelli della gerarchia.

La tecnica WB è certamente la più efficiente ma può creare problemi di coerenza dei dati

nella gerarchia perchè per un certo periodo di tempo i dati scritti sulla cache non sono

consistenti con i dati presenti nei livelli inferiori della gerarchia. Ciò crea problemi negli

ambienti multiprocessore o più semplicemente nei sistemi multi master in cui altre unità

logiche possono diventare master del bus (ad esempio il Direct Memory Acess Controller

si veda capitoli successivi) perchè i dati nella memoria non sono gli ultimi. Esistono

strategie per ovviare a questi inconvenienti con protocolli di controllo complessi come il

MESI . Si veda il corso di sistemi di Elaborazione Multimediali.

I quattro stati presentati raffigurano la modalità con cui si trovano i dati in

quello specifico momento ed in quella determinata memoria cache:

• Modified: indica l’avvenuta modifica della linea di cache in una sua parte;

Page 32: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

•Exclusive: legato al concetto di livelli multipli di memoria cache indica nello specifico la

concordanza tra la linea corrente e quella presente nel livello inferiore (verso la me

moria centrale) che può a sua volta risultare modificata rispetto ad un livello successi

vo;

•Shared: in parte sfruttato nel contesto di livelli multipli di cache ma soprattutto utili

zzato nel caso di processori multipli garantisce la coerenza tra la linea corrente e qu

ella nel livello successivo, e indica che al linea e’ condivisa ma mai modificata.

Fig. 16 protocollo MESI

Page 33: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

Il protocollo mesi si impiega in caso di uso di write back, forzando ogni linea ad essere

vista anche da altri processori (snooping degli indirizzi) e se i l dato a cui si deve accedere

e’ presente anche in una altra cache , il protocollo forza a modificare lo stato della linea

anche degli altri processori ( in shared se e’ uan richiesta in lettura, in invalid se e’ di

scrittura)

.. per dettagli si veda il simulatore

https://www.cs.tcd.ie/Jeremy.Jones/vivio/caches/MESIHelp.htm

Nel caso di miss, ossia se il dato non è presente in memoria i sistemi che adottano la

politica di wT di solito usano una politica chiamata write allocate ossia il dato viene

prima allocato sulla cache e poi si applica il WB. I sistemi che impiegano invece la politica

WT in caso di miss usano una politica write not allocate in cui i dati non vengono scritti

sulla cache.

Si ricorda che I processori hanno tutti ormai cache divise in

cache dati

cache di codice

per avere l’accesso contemporaneo al codice(fetch) e ai dati (ld/st). Ciò che è stato detto

vale per entrambe le cache, anche se la parte di scrittura vale solo epr la cache di dati.

ESERCIZIO :

Un processore a 16 bit di dati e 24 bit di indirizzo ha una cache direct mapped di

16KByte. Ogni linea della cache ha lunghezza 2 PAROLE. Si deve:

1)Scrivere le dimensioni di tag, index e offset.

2)Si supponga che la cache sia inizialmente vuota e che debbano essere letti in

sequenza i dati A,B,C,D,E,F,G,H i cui indirizzi in memoria sono indicati in tabella.

a) Indicare quali dati provocano una sostituzione di un dato in cache e che dato

viene sostituito

b) Indicare (possibilmente con uno schema) quali dati saranno in cache alla fine e

in che posizione della cache.

Page 34: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

c) Indicare quali dati generano una miss (indicando se di tipo obbligatorio)e quali

una hit.

Dato Indirizzo

A 000000H

B 000001H

C 000030H

D 004000H

E 004003H

F 000002H

G FF8033H

H 000031H

6.10 CENNI SULLA MEMORIA VIRTUALE

Come e’ detto la memoria centrale e’ considerata dalla CPU come una memoria non

gerarchica a cui accedere in lettura o in scrittura con un indirizzamento diretto. Nel caso

di architettura gerarchica un modulo hardware si prende cura di utilizzare parte

dell’indirizzo per verificare se il dato si trova in livelli piu’ alti della gerarchia.

Page 35: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

La CPU eseguendo il programma suppone di avere tutto lo spazio di indirizzamento a

disposizione ma si sa che la memoria fisica puo’ essere di dimensioni assai minori.

In assenza di gerarchia come avviene nei sistemi embedded la CPU non puo’ accedere

agli indirizzi dove non c’e’ memoria fisica.

Nei sistemi con gerarchia la memoria centrale fisica e’ usata come “cache” della

memoria virtualmente presente e realizzata con memoria di massa (normalmente l’hard

disk).

Percio’ l’indirizzo che finisce verso la memoria centrale deve invece essere utilizzato

come puntatore per vedere se il dato si trova davvero in memoria centrale o e’ invece

nella memoria virtuale.

Il meccanismo di accesso non avviene in questo modo con una associazione del tag ma

attraverso una funzione di mapping. Ossia l’indirizzo che a questo punto e’ solo

considerato un indirizzo virtuale viene sempre visto come diviso in due parti: la parte

piu’ bassa indica il byte di partenza all’interno del blocco. Il blocco si chiama pagina e

l’allocazione delle pagine e’ fully associative in memoria centrale. Le pagine attualmente

sono di dimensioni variabili dipendenti dai sistemi operativi di 4K a 4Mbyte o piu’. Se ad

esempio la pagina e’ di 4Kbyte i primi 12 bit sono considerati di pagina e i 20 bit rimasti

sono considerati di VPN Virtual Page Number e devono essere trasformati in PPN

Physical Page Number attraverso la traduzione.

Attualmente la traduzione viene attuata attraverso l’accesso ad una Page Table, ossia

ad una tabella che si trova in memoria e che contiene in ogni riga la corrispondenza tra

indirizzo virtuale ed indirizzo fisico con bit di stato che (oltre alla protezione e a altre

informazioni) indicano se la pagina si trova in memoria. Percio’ per accedere ad un dato

con una istruzione assembler di lettura o scrittura, l’indirizzo va in cache di 1° 2° etc

livello in caso di miss l’indirizzo prima di andare in memoria viene usato come puntatore

in una tabella e trasformato in indirizzo fisico per accedere alla memoria. Se la pagina

non e’ in memoria centrale la miss non e’ gestita in hardware ma in software dal sistema

operativo che attraverso una eccezione di page fault va in memoria di massa a prendere

la pagina e la copia in uno spazio libero della memoria centrale oin alternativa decide

quale pagina rimpiazzare con politica LRU.

Page 36: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

Fig.17 traduzione nella tabelle delle pagine.

Senza volere entrare troppo nei dettagli si ricorda che questo meccanismo e’ da una

parte assai efficiente perche’ per la località dei programmi la maggior parte dei dati e dei

codici si trovano su poche pagine in memoria, ma dall’altra il meccanismo di traduzione

richiede che per accedere ad un dato in memoria si deve di fatto accedere alla memoria

2 volte, una per la traduzione dell’indirizzo e una per l’accesso vero e proprio. Per questo

le CPU che lavorano con la memoria virtuale possiedono una piccola cache totalmente

associativa chiamata TLB.

Per rendere più veloce l'accesso alle pagine ( anche la tabella delle pagine e' in memoria)

si usa quinidi il TLB Translation lookaside buffer: una cache della tabella delle pagine. Se

il tag e’ nel TLB, viene preso l’indirizzo della pagina direttamente, altrimenti si va alla

tabella delle pagine in memoria che puo’ puntare alla memoria centrale o di massa (se

page fault). Si veda la figura che segue.

Page 37: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

Fig.17 Pagine e TLB.

Nello schema ( dove manca la cache L3) si vede la gerarchia di memoria come avviene

ora. La CPU scambia i dati tra il register file e la cache di primo livello sempre divisa in I

cache e D cache, se non trova i dati passa alla ceche di livello maggiore e alla memoria;

si usacla cache TLB per trasformare indirizzo virtuale in fisico; se si ha una Miss nel TLB il

Page 38: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

mapping tar VPN e PPN avviene nella Page table che e’ in memoria; se la pagina non e’ in

memoria si reperisce nella memoria virtuale.

I livelli di gerarchia di cache nel icore7.

Qualche nota sul TLB nel core 7

For many years now, processors have been working not with physical memory

addresses, but with virtual addresses. Among other advantages, this approach lets more memory be allocated to a program than the computer actually has,

keeping only the data necessary at a given moment in actual physical memory with the rest remaining on the hard disk. This means that for each memory access a virtual address has to be translated into a physical address, and to do

that an enormous table is put in charge of keeping track of the correspondences. The problem is that this table gets so large that it can’t be stored on-chip—it’s placed in main memory, and can even be paged (part of the table can be absent

from memory and itself kept on the hard disk). If this translation stage were necessary at each memory access, it would make access much too slow. As a result, engineers returned to the principle of physical

addressing by adding a small cache memory directly on the processor that stored the correspondences for a few recently accessed addresses. This cache memory

is called a Translation Lookaside Buffer (TLB). Intel has completely revamped the operation of the TLB in their new architecture. Up until now, the Core 2 has used a level 1 TLB that is extremely small (16 entries) but also very fast for loads

only, and a larger level 2 TLB (256 entries) that handled loads missed in the level 1 TLB, as well as stores. Nehalem now has a true two-level TLB: the first level of TLB is shared between

data and instructions. The level 1 data TLB now stores 64 entries for small pages

Page 39: Calcolatori Elettronici Memorieimagelab.ing.unimore.it/didattica/corsi/ce13/materiale/1) Dispense/ce... · semiconduttore, la memoria di massa, quale i dischi, a superficie magnetica

Calcolatori Elettronici

Prof. R. Cucchiara- Calcolatori Elettronici A -Dipartimento di Ingegneria “Enzo Ferrari”

(4K) or 32 for large pages (2M/4M), while the level 1 instruction TLB stores 128

entries for small pages (the same as with Core 2) and seven for large pages. The second level is a unified cache that can store up to 512 entries and operates only with small pages. The purpose of this improvement is to increase the

performance of applications that use large sets of data. As with the introduction of two-level branch predictors, this is further evidence of the architecture’s server orientation.

In questo sito http://www.7-cpu.com/cpu/SandyBridge.html si possono trovare alcuni

dati sui ritardi e le latenze nell’accesso alle cache e al TLB con il core I 5, a seconda delle

dimensioni di pagina, e quindi a seconda delle scelte del Sistema operative.