Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da...

21
Calcolatori Calcolatori Elettronici Elettronici Cenni sulle memorie Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci Rielaborate da Salvatore Tucci

Transcript of Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da...

Page 1: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Calcolatori ElettroniciCalcolatori Elettronici

Cenni sulle memorieCenni sulle memorie

Francesco Lo PrestiFrancesco Lo Presti

Rielaborate da Salvatore TucciRielaborate da Salvatore Tucci

Page 2: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Memoria 2

ClockingClocking

Il segnale di Clock definisce quando i segnali possono Il segnale di Clock definisce quando i segnali possono essere letti e quando possono essere scrittiessere letti e quando possono essere scritti

Fronte di discesa (negativo)Falling edge

Fronte di salita (positivo)Rising edge

Periodo di clock

Freq. clock = 1/(Periodo di Clock)Freq. clock = 1/(Periodo di Clock) e.g., Periodo di 10 nsec e.g., Periodo di 10 nsec 100 MHz 100 MHz Periodo di 1 nsec Periodo di 1 nsec 1 GHz 1 GHz

Opzioni per gli elementi di memoriaOpzioni per gli elementi di memoria Latch sensibili al livello Latch sensibili al livello Flip-Flop master-slave/edge-triggeredFlip-Flop master-slave/edge-triggered

Page 3: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Memoria 3

Elementi di MemoriaElementi di Memoria

Latch Set-reset Latch Set-reset

Latch D sensibile al livelloLatch D sensibile al livello

Il latch e’ Il latch e’ transparentetransparente quando il clock e’ alto quando il clock e’ alto (l’ingresso e’ copiato in uscita)(l’ingresso e’ copiato in uscita)

R

S

Q

!Q

RR SS Q(t+1Q(t+1))

!!Q(t+1)Q(t+1)

11 00 00 11

00 11 11 00

00 00 Q(t)Q(t) !Q(t)!Q(t)

11 11 -- --

clock

D

Q

!Q

clock

D

Q

Page 4: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Memoria 4

Periodo del Ciclo di ClockPeriodo del Ciclo di Clock

Il periodo T deve essere scelto lungo Il periodo T deve essere scelto lungo abbastanza da garantire che l’output della rete abbastanza da garantire che l’output della rete combinatoria sia stabilizzatocombinatoria sia stabilizzato Deve esserlo prima del periodo di apertura di del flip-Deve esserlo prima del periodo di apertura di del flip-

flop (set-up time)flop (set-up time) Deve rimanere stabile per un certo tempo (hold-time) Deve rimanere stabile per un certo tempo (hold-time)

Determina il limite superiore alla frequenza di Determina il limite superiore alla frequenza di clockclock

T

Page 5: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Memoria 5

Elementi di MemoriaElementi di Memoria

Problemi con i latch: Problemi con i latch: corse critichecorse critiche … …

Elementi di memoria usati come input ed Elementi di memoria usati come input ed output nello stesso ciclooutput nello stesso ciclo

Il clock deve rimanere ad 1 per un tempo Il clock deve rimanere ad 1 per un tempo sufficiente da garantire che l’ingresso sia sufficiente da garantire che l’ingresso sia memorizzatomemorizzato

……ma tale da non permettere il propagarsi del ma tale da non permettere il propagarsi del nuovo valore attraverso la rete combinatorianuovo valore attraverso la rete combinatoria

Difficile garantire entrambe le condizioniDifficile garantire entrambe le condizioni Dipende dai tempi di propagazione e dalla presenza Dipende dai tempi di propagazione e dalla presenza

di diversi percorsi attraverso la rete combinatoriadi diversi percorsi attraverso la rete combinatoria

Elemento di

Memoria

Logica Combinatoria

Page 6: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Memoria 6

Elementi di MemoriaElementi di Memoria

Soluzione: Flip-Flops che cambiano lo stato (Q) solo sui Soluzione: Flip-Flops che cambiano lo stato (Q) solo sui fronti del segnale di clockfronti del segnale di clock (master-slave) (master-slave)

Master (primo D-latch) copia in Q l’ingresso quando il clock Master (primo D-latch) copia in Q l’ingresso quando il clock e’ alto (lo slave (secondo D-latch) e’ bloccato e non cambia e’ alto (lo slave (secondo D-latch) e’ bloccato e non cambia stato )stato )

Slave copia il valore del master Slave copia il valore del master quando il clock va a 0quando il clock va a 0 (il (il master e’ bloccato nel suo stato di memoria ed eventuali master e’ bloccato nel suo stato di memoria ed eventuali cambi all’ingresso non vengono letti)cambi all’ingresso non vengono letti)

D

clock

Q

!Q

D-latchD

clock

Q

!Q

D-latchQ

!Q

D

clockclock

D

Q

D

C

Set-up time Hold time

Setup e hold time per un flip-flop D

Page 7: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Memoria 7

AssunzioniAssunzioni

Metodologia edge-triggeredMetodologia edge-triggered Comportamento tipicoComportamento tipico

Leggere il contenuto di elementi di memoria Leggere il contenuto di elementi di memoria I valori sono input di una o piu’ reti combinatorieI valori sono input di una o piu’ reti combinatorie Scrivere i risultati in uno o piu’ elementi di memoriaScrivere i risultati in uno o piu’ elementi di memoria

Si assume che gli elementi di memoria siano Si assume che gli elementi di memoria siano scritti ad ogni ciclo di clockscritti ad ogni ciclo di clock Altrimenti si aggiunge un esplicito segnale di writeAltrimenti si aggiunge un esplicito segnale di write

In AND con il clockIn AND con il clock La scrittura avviene solo quando occorre la transizione La scrittura avviene solo quando occorre la transizione

di livello attiva ed il segnale di controllo e’ affermatodi livello attiva ed il segnale di controllo e’ affermato

Stateelement

1

Stateelement

2

Combinationallogic

clock

one clock cycle

Page 8: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Memoria 8

RegistroRegistro

RegistroRegistro Simile ad un flip flop D eccettoSimile ad un flip flop D eccetto

n bit di ingresso e uscitan bit di ingresso e uscita Input WriteInput Write

Write:Write: Se negato (0): i dati in uscita Se negato (0): i dati in uscita

(Data Out) non cambiano(Data Out) non cambiano Se affermato (1): i dati in uscita Se affermato (1): i dati in uscita

(Data Out) divengono uguali ai (Data Out) divengono uguali ai dati in ingresso (Data In)dati in ingresso (Data In)

clock

D

clock

Q

!Q

Flip-FlopDD0

Q0

D

clock

Q

!Q

D1

Q1

D

clock

Q

!Q

Dn-1

Qn-1

Write

Flip-FlopD

Flip-FlopD

Page 9: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Memoria 9

Banco di registri (register file)Banco di registri (register file)

Banco di registri ad accesso rapido per Banco di registri ad accesso rapido per memorizzare temporaneamente gli memorizzare temporaneamente gli operandi usati nelle istruzionioperandi usati nelle istruzioni

Nel MIPS il banco dei registri è composto Nel MIPS il banco dei registri è composto da 32 registri generalida 32 registri generali Due porte in lettura da 32 bit Due porte in lettura da 32 bit

Read data 1/2Read data 1/2 Una porta in scrittura da 32 bit Una porta in scrittura da 32 bit

Write dataWrite data Tre porte per selezionare i registri da 5 bitTre porte per selezionare i registri da 5 bit

Read register #1 (#2) : primo (secondo) Read register #1 (#2) : primo (secondo) registro da leggereregistro da leggere

Write register: registro da scrivere Write register: registro da scrivere WriteWrite: segnale di controllo: segnale di controllo

In AND con il clock (non mostrato)In AND con il clock (non mostrato) Solo se Write=1 il valore in Write data e’ Solo se Write=1 il valore in Write data e’

scritto nel registro indicato da Write Reg. scritto nel registro indicato da Write Reg.

Page 10: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Memoria 10

Banco di registri (2)Banco di registri (2)

Un banco di registri può essere implementato con un Un banco di registri può essere implementato con un multiplexer per ciascuna porta read, un decoder per multiplexer per ciascuna porta read, un decoder per ciascuna porta write ed un array di registri costruiti ciascuna porta write ed un array di registri costruiti partendo da flip-flop Dpartendo da flip-flop D

Esempio: implementazione di due porte read per un Esempio: implementazione di due porte read per un banco di registri composto da banco di registri composto da nn registri registri

Mux

Register 0

Register 1

Register n – 1

Register n

Mux

Read data 1

Read data 2

Read registernumber 1

Read registernumber 2

Page 11: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Memoria 11

Banco di registri (3)Banco di registri (3)

Esempio: implementazione di una porta write Esempio: implementazione di una porta write per un banco di registri composto da per un banco di registri composto da nn registri registri

Log2n to n

Page 12: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Memoria 12

Principali tecnologie per RAMPrincipali tecnologie per RAM

Le memorie RAM sono di due tipiLe memorie RAM sono di due tipi Memorie staticheMemorie statiche: Static Random Access Memory (SRAM) : Static Random Access Memory (SRAM) Memorie dinamicheMemorie dinamiche: Dynamic Random Access Memory : Dynamic Random Access Memory

(DRAM)(DRAM) Memorie staticheMemorie statiche

Il singolo elemento corrisponde ad un latchIl singolo elemento corrisponde ad un latch Memorie dinamicheMemorie dinamiche

Il singolo elemento corrisponde ad un condensatore ed un Il singolo elemento corrisponde ad un condensatore ed un transistortransistor

L’informazione è memorizzata sotto forma di carica del L’informazione è memorizzata sotto forma di carica del condensatorecondensatore

Richiedono un refresh periodico dell’informazioneRichiedono un refresh periodico dell’informazione Le memorie statiche sono (rispetto a quelle dinamiche)Le memorie statiche sono (rispetto a quelle dinamiche)

Più veloci (5ns vs. 50-100ns)Più veloci (5ns vs. 50-100ns) Più costose (6 transistor per bit)Più costose (6 transistor per bit) Persistenti (non è richiesto il refresh)Persistenti (non è richiesto il refresh) Più affidabiliPiù affidabili

Page 13: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Memoria 13

Memoria Principale, Cache e TecnologieMemoria Principale, Cache e Tecnologie

Prestazioni della memoria principalePrestazioni della memoria principale LatenzaLatenza

Tempo di accessoTempo di accesso: tempo tra quando arriva la richiesta e la parola: tempo tra quando arriva la richiesta e la parola Tempo di cicloTempo di ciclo: tempo tra richieste: tempo tra richieste

BandaBanda

La memoria principale è La memoria principale è DRAMDRAM Dinamica in quanto ha bisogno di essere rinfrescata Dinamica in quanto ha bisogno di essere rinfrescata

periodicamente (8 ms)periodicamente (8 ms)

La memoria cache usa La memoria cache usa SRAMSRAM No refresh (6 transistor/bit vs. 1 transistor)No refresh (6 transistor/bit vs. 1 transistor)

DimensioneDimensione: SRAM/DRAM = : SRAM/DRAM = 4-84-8 Costo/Tempo di CicloCosto/Tempo di Ciclo: SRAM/DRAM = : SRAM/DRAM = 8-168-16

Page 14: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Memoria 14

Obiettivo: Illusione di una Memoria Grande, Obiettivo: Illusione di una Memoria Grande, Veloce ed EconomicaVeloce ed Economica

OsservazioniOsservazioni: : Le memorie di grandi dimensioni sono lenteLe memorie di grandi dimensioni sono lente Le memorie veloci hanno dimensioni piccoleLe memorie veloci hanno dimensioni piccole

Come creare unCome creare una memora memoriaia che siache sia grandegrande, , economica e veloceeconomica e veloce ( (per la maggior parte del per la maggior parte del tempotempo)?)? GerarchiaGerarchia ParallelismParallelismoo

Page 15: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Memoria 15

Gerarchia di memoriaGerarchia di memoria

La memoria di un calcolatore è implementata come una La memoria di un calcolatore è implementata come una gerarchia di memoriegerarchia di memorie Differenti tempi di accesso e di costo corrispondenti ai diversi Differenti tempi di accesso e di costo corrispondenti ai diversi

livelli di memoria livelli di memoria

..

..

Livello 1Livello 1

Livello 2Livello 2

Livello Livello nn

CPUCPU

Aumenta il tempo Aumenta il tempo di accessodi accesso

Aumenta la Aumenta la capacità di capacità di memorizzazionememorizzazione

Diminuisce il costo Diminuisce il costo per bitper bit

Dimensione della memoria ad ogni livelloDimensione della memoria ad ogni livello

Page 16: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Memoria 16

Gerarchia di memoria (2)Gerarchia di memoria (2)

Obiettivi della gerarchia di memoria:Obiettivi della gerarchia di memoria: Fornire all’utente una quantità di memoria pari a Fornire all’utente una quantità di memoria pari a

quella disponibile nella tecnologia più economicaquella disponibile nella tecnologia più economica Fornire una velocità di accesso pari a quella Fornire una velocità di accesso pari a quella

garantita dalla tecnologia più velocegarantita dalla tecnologia più veloce

Control

Datapath

SecondaryStorage(Disk)

Processor

Registe

rs

MainMemory(DRAM)

SecondLevelCache(SRAM)

On-C

hip

Cach

e

1 10,000,000 (10 ms)

Speed (ns): 10 100

100 GSize (bytes): K M

TertiaryStorage(Tape)

10,000,000,000

(10 sec)T

Page 17: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Memoria 17

Gerarchia di memoria: Esempio del Gerarchia di memoria: Esempio del PentiumPentium

Page 18: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Memoria 18

Memoria CacheMemoria Cache

La memoria principale (DRAM) è sempre più lenta del La memoria principale (DRAM) è sempre più lenta del processore e tende a rallentarloprocessore e tende a rallentarlo

Sono disponibili memorie più veloci (SRAM) ma solo per Sono disponibili memorie più veloci (SRAM) ma solo per dimensioni limitatedimensioni limitate

La La cache cache opera alla velocità del processore, e quindi opera alla velocità del processore, e quindi nascondenasconde la “lentezza” della memoriala “lentezza” della memoria Scopo della cacheScopo della cache: disaccoppiare le velocità di processore e RAM: disaccoppiare le velocità di processore e RAM

Contiene le ultime porzioni di memoria acceduta: se il Contiene le ultime porzioni di memoria acceduta: se il processore richiede l’accesso ad una di esse evita un accesso processore richiede l’accesso ad una di esse evita un accesso alla memoriaalla memoria

Funziona bene sfruttando il principio di località dei riferimentiFunziona bene sfruttando il principio di località dei riferimenti

Page 19: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Memoria 19

Strategia di Utilizzo della CacheStrategia di Utilizzo della Cache

La prima volta che il processore richiede dei dati si ha La prima volta che il processore richiede dei dati si ha un cache missun cache miss I dati vengono caricati dalla memoria principale e vengono I dati vengono caricati dalla memoria principale e vengono

copiati anche nella cachecopiati anche nella cache Si legge un blocco di parole contigueSi legge un blocco di parole contigue

Le volte successive, quando il processore richiede Le volte successive, quando il processore richiede l’accesso ad una cella di memorial’accesso ad una cella di memoria Se il dato è presente in un blocco contenuto nella cache, la Se il dato è presente in un blocco contenuto nella cache, la

richiesta ha successo ed il dato viene passato direttamente richiesta ha successo ed il dato viene passato direttamente al processoreal processore

Si verifica un cache hitSi verifica un cache hit Altrimenti la richiesta fallisce ed il blocco contenente il Altrimenti la richiesta fallisce ed il blocco contenente il

dato viene anche caricato nella cache e passato al dato viene anche caricato nella cache e passato al processoreprocessore

Si verifica un cache missSi verifica un cache miss Obiettivo: aumentare quanto più possibile il tasso di Obiettivo: aumentare quanto più possibile il tasso di

cache hitcache hit

Page 20: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Memoria 20

Principio di localitàPrincipio di località

Osservazione: i programmi accedono ad una porzione Osservazione: i programmi accedono ad una porzione relativamente piccola del loro spazio di indirizzamentorelativamente piccola del loro spazio di indirizzamento

Esistono due tipi differenti di localitàEsistono due tipi differenti di località1.1. Località temporaleLocalità temporale (nel tempo): se un elemento (dato o (nel tempo): se un elemento (dato o

istruzione) è stato acceduto, tenderà ad essere acceduto istruzione) è stato acceduto, tenderà ad essere acceduto nuovamente in un tempo ravvicinato nuovamente in un tempo ravvicinato

2.2. Località spazialeLocalità spaziale (nello spazio): se un elemento (dato o (nello spazio): se un elemento (dato o istruzione) è stato acceduto, gli elementi i cui indirizzi sono istruzione) è stato acceduto, gli elementi i cui indirizzi sono vicini tenderanno ad essere acceduti in un tempo ravvicinato vicini tenderanno ad essere acceduti in un tempo ravvicinato

EsempioEsempio I programmi contengono cicli: le istruzioni ed i dati saranno I programmi contengono cicli: le istruzioni ed i dati saranno

acceduti ripetutamente (acceduti ripetutamente (località temporalelocalità temporale)) Gli accessi agli elementi di un array presentano un’elevata Gli accessi agli elementi di un array presentano un’elevata

località spazialelocalità spaziale; nell’esecuzione di un programma è altamente ; nell’esecuzione di un programma è altamente probabile che la prossima istruzione sia contigua a quella in probabile che la prossima istruzione sia contigua a quella in esecuzioneesecuzione

Spazio di indirizzamento0 2n-1

Probabilità di riferimento

Page 21: Calcolatori Elettronici Cenni sulle memorie Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci.

Memoria 21

Principio di località (2)Principio di località (2)

Come sfruttare la:Come sfruttare la:

1.1. Località temporaleLocalità temporale Tenendo gli elementi acceduti più frequentemente Tenendo gli elementi acceduti più frequentemente

vicino al processorevicino al processore

2.2. Località spazialeLocalità spaziale Spostando blocchi contigui di parole al livello Spostando blocchi contigui di parole al livello

superioresuperiore