Architettura dei sistemi di elaborazione: La memoria (parte...

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

Transcript of Architettura dei sistemi di elaborazione: La memoria (parte...

Page 1: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

Architettura dei sistemi di elaborazione:

La memoria (parte 1)

Page 2: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

La tecnologia consente di realizzare CPU sempre più veloci. A partire dal 2006 sono stati messi sul mercato processori con frequenza di clock superiore ai 3GHz. Purtroppo le memorie non sono così veloci, cioè non hanno tempi di accesso paragonabili al periodo di clock delle CPU attuali.

Le prestazioni delle CPU non devono essere troppo negativamente influenzate dal tempo di accesso alle memorie. In aiuto al progettista viene la proprietà di località spaziale e temporale esibita dai programmi.

200

100

ns

1980 1990 2000

Tempo di accesso memoria

Tempo di ciclo CPU

CPU e Memoria

Page 3: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

La memoria - definizioni • La memoria è semplicemente un grande vettore unidimensionale di “parole” o “celle” (tipicamente bytes) in sequenza. • Ogni parola di memoria ha un indirizzo, (simile all’indice di un vettore)

Memory[0], Memory[1], Memory[2], …

0,1,2 sono gli “indirizzi” di una parola

Page 4: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

Dimensione (nel senso di capacità) – data in bit o byte; spesso la dimensione viene riportata in modo da descrivere l’organizzazione interna. es. 64K x 8 bit indica una memoria di 65536 celle di 8 bit ciascuna. Velocità – indicata come tempo di accesso (intervallo di tempo tra la richiesta del dato e il momento in cui viene reso disponibile). Consumo – questo parametro indica la potenza media assorbita. Costo – il parametro più aleatorio, dipende anche dal volume di acquisto. Integrazione – maggiore l’integrazione, minore l’ingombro e il consumo e i costi di assemblaggio delle parti, dell’alimentazione e dello smaltimento del calore. Idealmente un calcolatore dovrebbe avere quanta più memoria possibile, ad alta velocità, basso consumo, basso ingombro e minimo costo.

La Memoria – parametri di valutazione

Page 5: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

La modalità di accesso ai dati in memoria è in genere prevedibile, cioè vale il principio per cui Questo significa che nel breve periodo gli indirizzi generati da un programma sono confinati in regioni limitate (località spaziele) e vengono richiesti in tempi brevi (località temporale)

La distribuzione degli accessi alla memoria in un dato intervallo può essere misurato direttamente su un sistema.

se al tempo t si accede all'indirizzo X è "molto probabile" che l'indirizzo X+X sia richiesto fra t e t+ t.

La Memoria – Principio di Località

Page 6: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

Idealmente un calcolatore dovrebbe avere quanta più memoria possibile, ad alta velocità, basso consumo, basso ingombro e minimo costo. Non è possibile avere un’unica memoria con tutte queste caratteristiche, ma il principio di località suggerisce di realizzare una gerarchia: - memorie piccole e veloci (e costose) ai livelli alti, vicino alla CPU; - memorie ampie, più lente (e meno costose) ai livelli più bassi.

Memoria M1

CPU … Memoria M2

Gerarchie di memoria

Page 7: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

A diversi livelli, le memorie sono realizzate con tecnologie diverse. • Costo per bit: c1 > c2 > … • Tempi di accesso: tA1 < tA2 < … • Dimensioni: S1 < S2 < … Un tipico sistema di memoria è il seguente: •  memoria interna alla CPU •  memoria ROM •  memoria cache •  memoria principale •  memoria secondaria c tA S

Gerarchie di memoria

Page 8: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

Registri

Cache

Memoria principale

Dischi magnetici

Nastri

Dischi ottici

+lente

+capacita`di memorizzazione

Da 32KB a alcuni MB

Da 16MB a decine di GB

Da alcuni GB a decine di TB

Memorizzazione di archivi Memorizzazione permanente

Gerarchie di memoria

Page 9: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

I criteri di gestione si rifanno al principio di località: • I dati utilizzati più spesso vanno posti in memorie facilmente accessibili. • I dati utilizzati più raramente sono posti in memorie con tempi di accesso elevato. • Allocazione dinamica per utilizzare gli spazi disponibili con la massima efficienza. • Spostamento automatico dei dati tra i livelli. • Canali di comunicazione veloci fra i livelli.

Questa politica di gestione tende a mimare una memoria che abbia: • i tempi di accesso della più veloce, • le dimensioni della maggiore, • i costi della più economica.

Gerarchie di memoria

Page 10: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

All’inizio dell’era informatica le memorie erano costose e poco capienti. I programmatori impiegavano molto tempo nel tentativo di assottigliare i programmi perché entrassero in memorie minuscole. Quando il programma era troppo grande, veniva messo nella memoria secondaria diviso in pezzi, ciascuno dei quali poteva entrare in memoria principale. I pezzi venivano portati nella memoria principale ed eseguiti uno alla volta. La gestione di questo procedimento era interamente nelle mani dei programmatori. Nel 1968 un gruppo di ricercatori propose di automatizzare questo processo separando i concetti di spazio degli indirizzi e di locazioni di memoria. Questo metodo è oggi chiamato MEMORIA VIRTUALE.

Memoria virtuale

Page 11: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

Ad es. una CPU a 16 bit vede uno spazio degli indirizzi che va da 0 a 65535 (216 parole di memoria virtuale). La memoria principale può avere comunque, fisicamente, meno di 65536 locazioni (supponiamo 4096). • Indirizzi utilizzabili dal programma: indirizzi virtuali (o logici).

• Indirizzi effettivi della memoria principale: indirizzi fisici. Esiste una corrispondenza (se necessaria) tra indirizzo logico e indirizzo fisico. La corrispondenza prende il nome di allocazione, ed è una funzione f tale che:

indirizzo fisico = f(indirizzo logico)

Memoria virtuale

Page 12: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

Analogia (per la memoria virtuale)

• State scrivendo una relazione (siete il processore) • La biblioteca è il disco

– Sostanzialmente senza limiti – Per trovare il libro che serve ci mettete del tempo (lenta)

• Il tavolo dove studiate è la memoria – Ha meno posto…: se il tavolo è pieno dovete restituire un libro – Trovare il libro da usare è molto più veloce, se l’avete già sul tavolo

Page 13: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

• I libri aperti sul tavolo sono la cache – Capacità ancora più piccola: si possono avere pochi libri aperti sul tavolo… quando sono troppi bisogna chiuderne uno… – Molto più veloce nel recuperare i dati

• Si vuole creare un’illusione: l’intera biblioteca “aperta” sul tavolo. Due idee (semplici)

– Tenere aperti sul tavolo i libri usati più recentemente (e il più a lungo possibile… è probabile doverli riutillizzare) – Tenere i libri sul tavolo il più a lungo possibile… restituirli fa perdere tempo

Analogia (per la memoria virtuale)

Page 14: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

Gerarchie di memoria

Tiriamo le somme • più il livello è vicino al processore

– più è piccolo – più è veloce – Contiene un sottoinsieme dei dati del livello sottostante (di solito quelli usati più recentemente) – Contiene tutti i dati contenuti nei livelli soprastanti

• Il livello più basso (il disco) contiene tutti i dati

Page 15: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

Registri interni alla CPU:

-  visibili o no al programmatore -  memorizzano temporaneamente dati e istruzioni -  dimensione: qualche byte -  tempo di accesso: qualche ns

In tempi recenti si è iniziato a collocare sullo stesso chip della CPU anche memorie di tipo cache. Nelle CPU più recenti cresce la quantità di risorse dedicate alla memoria:

–  1980: processori senza cache (I386) –  1995: Alpha 21164 55% dei transistor –  2000: Merced (Intel-HP) 85% dei transistor

Memoria interna alla CPU

Page 16: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

Registri •  Un registro è un elemento di memoria

–  in grado di memorizzare un insieme di n bit –  composto da un insieme di flip-flop –  l’informazione memorizzata in un registro prende

il nome di parola (se 8 bit si identifica anche come byte)

bit in ingresso

bit in uscita

Page 17: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

Implementazione cella: Latch S-R

R

S

Q

Q

CK

R Q

Q S

CK

0 0 0 Q 0 0 1 Q 0 1 0 Q 0 1 1 ? 1 0 0 Q 1 0 1 0 1 1 0 1 1 1 1 ?

CK S R Q’

Quando CK=1 allora si ha il consenso alla transizione

Page 18: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

Implementazione cella: Flip/flop D • Un solo ingresso più uno di abilitazione • Usato come unità elementare di memorizzazione

– Presenta in uscita ciò che è presente in ingresso quando il CK = 1, altrimenti presenta l’ultimo valore di D quando il CK commuta da 1 a 0 (delay).

R Q

S

CK

Q

D

CK

D Q

D

CK

Q

Page 19: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

Registro parallelo-parallelo

D Q D Q D Q

D0 D1 D3

Q0 Q1 Q3

Clock

D Q

D2

Q2

Page 20: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

Shift register

D Q D Q D Q D Q

CLOCK

D Q

Page 21: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

Registro circolare (n=4)

D Q D Q D Q

D0 D1 D3

Q

Clock

D Q

D2

Write/Shift Scrivi/Scorri

Page 22: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

• memoria elettronica (matrice logica) a sola lettura • ad accesso casuale (il tempo di accesso a una cella è indipendente dalla sua posizione) • Impiegata per contenere i programmi che inizializzano la macchina all’atto dell’accensione e il nucleo di base del sistema operativo. • Implementabile con 3 componenti fondamentali

Memoria ROM

E

E

=

x1 x2

y

Porta AND

Decodificatore x2

y x1

Porta OR

Page 23: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

Schema logico di una ROM

0 0 0

Funzioni di commutazioni realizzate come OR di mintermini

fusibile

Page 24: Architettura dei sistemi di elaborazione: La memoria (parte 1)wpage.unina.it/fpalmier/CalcolatoriElettronici/item10.pdf · Architettura dei sistemi di elaborazione: La memoria (parte

Implementazione ROM con C-MOS

• ROM 4x4 (numero parole x dimensione parola)

Uscita

R R R R

Vdd

Indirizzo

DE

C

Assenza collegamento =1

“Interruttore”