56
Evoluzione delle architett ure Architettura degli elabor atori 1 - A. Memo 1 3. Evoluzione delle 3. Evoluzione delle architetture architetture indice indice 3 Evoluzione tecnologica 3.1 Pipeline 3.2 Gerarchia di memoria 3.3 Memoria virtuale 3.4 Architettura RISC 3.5 L’architettura x86

Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Embed Size (px)

Citation preview

Page 1: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

1

3. Evoluzione delle architetture3. Evoluzione delle architettureindiceindice

3 Evoluzione tecnologica

3.1 Pipeline

3.2 Gerarchia di memoria

3.3 Memoria virtuale

3.4 Architettura RISC

3.5 L’architettura x86

Page 2: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

2

3. Evoluzione delle architetture3. Evoluzione delle architettureevoluzione tecnologicaevoluzione tecnologica

CPU - densità di transistor: +30% per anno

- frequenza di clock: +20% per anno

Memoria - capacità: +60% per anno

- velocità di accesso: +10% per anno

- costo per bit: -25% per anno

Hard disk - capacità: +60% per anno

Page 3: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

3

3. Evoluzione delle architetture3. Evoluzione delle architettureevoluzione strutturaleevoluzione strutturale

a breve gli sviluppi tecnologici si dovranno limitare, in attesa di un cambiamento totale

l’aumento di prestazioni è legato sempre più ad organizzazioni più efficienti

parallelismo: se un lavoro non può essere fatto più velocemente da una sola persona, allora bisogna farlo fare da più persone contemporaneamente

Page 4: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

4

3.1 Pipeline3.1 Pipelinegeneralità 1generalità 1

per svolgere un lavoro si devono seguire tre fasi distinte e sequenziali

L [fase1] [fase2] [fase3] se ogni fase richiede un tempo T, un unico

esecutore svolge un lavoro ogni 3T per ridurre i tempi di produzione si possono

utilizzare più esecutori

Page 5: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

5

3.1 Pipeline3.1 Pipelinegeneralità 2generalità 2

soluzione totalmente parallela

Esec 1 [fase1] [fase2] [fase3] [fase1] [fase2] [fase3]

Esec 2 [fase1] [fase2] [fase3] [fase1] [fase2] [fase3]

Esec 3 [fase1] [fase2] [fase3] [fase1] [fase2] [fase3]

- N esecutori svolgono un lavoro ogni 3T/N

- purtroppo non va bene in informatica perché

i lavori (istruzioni) sono (spesso) sequenziali

Page 6: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

6

3.1 Pipeline3.1 Pipelinegeneralità 3generalità 3

soluzione pipeline ad esecutori generici

Esec 1

Esec 2 ............

Esec 3 .........................

- N esecutori svolgono a regime un lavoro ogni 3T/N e la sequenza dei lavori viene rispettata

[fase1]

[fase2] [fase3]

[fase1] [fase2] [fase3]

[fase1] [fase2] [fase3]

[fase1] [fase2][fase1]

Page 7: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

7

3.1 Pipeline3.1 Pipelinegeneralità 4generalità 4

soluzione pipeline ad esecutori specifici

Esec 1

Esec 2 ............

Esec 3 .........................

- ogni esecutore svolge sempre e solo la stessa fase di tutti i lavori

- soluzione più efficiente in termini di risorse

[fase1]

[fase2]

[fase3]

[fase1]

[fase2]

[fase3]

[fase1]

[fase2]

[fase3]

[fase1]

[fase2]

[fase1]

Page 8: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

8

3.1 Pipeline3.1 Pipelinescomposizione in fasiscomposizione in fasi

L’esecuzione di una generica istruzione può essere ad esempio suddivisa in fetch lettura dell’istruzione decode decodifica dell’istruzione read data lettura degli operandi execute esecuzione dell’istruzione write data scrittura del risultato

Page 9: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

9

clock ciclo1 ciclo2 ciclo3 ciclo4 ciclo5 ciclo6

Fetch

Decode ............

Read M .........................

Execute ........................................

Write M .......................................................

3.1 Pipeline3.1 Pipelineevoluzione teoricaevoluzione teorica

istr 1

istr 1

istr 1

istr 1

istr 1 istr 2

istr 2

istr 2

istr 2

istr 3

istr 3

istr 3

istr 4

istr 4

istr 5

istr 2

istr 3

istr 4

istr 5

istr 6

Page 10: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

10

3.1 Pipeline3.1 Pipelinei problemii problemi

In pratica il pipeline non permette di rag-giungere il parallelismo teorico per

sbilanciamento delle fasi problemi strutturali dipendenza dei dati dipendenza dai controlli

Page 11: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

11

3.1 Pipeline3.1 Pipelinesbilanciamento delle fasi 1sbilanciamento delle fasi 1

la suddivisione in fasi va fatta in base all’istruzione più onerosa

non tutte le istruzioni richiedono le stesse fasi

non tutte le fasi richiedono lo stesso tempo di esecuzione (si pensi alla lettura di un operando tramite registro o mediante indirizzamento indiretto)

Page 12: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

12

3.1 Pipeline3.1 Pipelinesbilanciamento delle fasi 2sbilanciamento delle fasi 2

Fetch

Decode ............

Read M ....................

Execute .......................

Write M .................................

X : tempi di attesa dovuti allo sbilanciamento delle fasi

1

1

1 2

2

3

3

4 5

4

6

1 2 3 4 5 6

1

2

2

3

3

4

4

X

X X

Page 13: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

13

3.1 Pipeline3.1 Pipelinesbilanciamento delle fasi 3sbilanciamento delle fasi 3

Possibili soluzioni allo sbilanciamento: scomposizione in più sottofasi

– i tempi di overhead diventano consistenti duplicare gli esecutori delle fasi più lunghe

e farli operare in parallelo– le CPU più recenti hanno più ALU intere e

un’ALU Floating Point

Page 14: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

14

3.1 Pipeline3.1 Pipelineproblemi strutturaliproblemi strutturali

Problemi:– Se servono più risorse interne, prima o poi la

tecnologia ci permetterà di duplicarle– il vero collo di bottiglia è l’accesso alle risorse

esterne (memoria): anche 3 accessi per ciclo

Possibili soluzioni:– suddividere le memorie– introdurre fasi non operative

Page 15: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

15

3.1 Pipeline3.1 Pipelinedipendenza dei dati 1dipendenza dei dati 1

può succedere che un dato modificato nella fase di execute venga utilizzato dalla fase di lettura dell’istruzione successiva

INC [0123]

CMP [0123],AL

F1

F2

D1

D2

RM1

RM2

E1

E2

WM1

WM2

Page 16: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

16

3.1 Pipeline3.1 Pipelinedipendenza dei dati 2dipendenza dei dati 2

Soluzioni: introduzione di fasi non operative individuazione del richio di dipendenza dei

dati e prelievo del dato direttamente all’uscita dell’ALU (data forwarding)

risoluzione a livello di compilatore riordino delle istruzioni (pipeline scheduling)

Page 17: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

17

3.1 Pipeline3.1 Pipelinedipendenza dai controlli 1dipendenza dai controlli 1

Tutte le istruzioni che modificano l’Instruc-tion Pointer (salti condizionati e non, chiamate a e ritorni da procedure, interrupt) mettono in crisi il pipeline.

La fase di fetch successiva carica l’istruzione seguente, che non è detto sia quella giusta.

Queste istruzioni purtroppo sono circa il 30%.

Page 18: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

18

3.1 Pipeline3.1 Pipelinedipendenza dai controlli 2dipendenza dai controlli 2

Soluzioni: mettere in stallo il pipeline fino a quando non

si è calcolato l’indirizzo della prossima istru-zione (pessima efficienza, massima semplicità)

individuare prima possibile le istruzioni dannose e anticiparne l’esecuzione, eventual-mente con apposita logica di controllo

Page 19: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

19

3.1 Pipeline3.1 Pipelinedipendenza dai controlli 3dipendenza dai controlli 3

Soluzioni per salti condizionati: ipotizzare che non ci sia il salto: se va bene

siamo andati avanti, altrimenti facciamo ripartire il pipeline con il nuovo indirizzo– alcune istruzioni modificano lo stato della CPU

fin dalle prime fasi: in tal caso bisogna ripristi-nare tutto come era prima (squashing)

usare due pipeline, e proseguire parallela-mente nelle due possibilità

Page 20: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

20

3.1 Pipeline3.1 Pipelinedipendenza dai controlli 4dipendenza dai controlli 4

Prevedere l’esito del salto: staticamente

– il compilatore aggiusta i controlli, e li organizza in modo che i salti siano meno probabili

dinamicamente– costruire una tabella storica dei salti effettuati

(Branch Target Buffer) e utilizzarla statisticamente, campi BranchAddress, TargetAddress ed History

Page 21: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

21

3.1 Pipeline3.1 Pipelinesuperpipelinesuperpipeline

Suddivisione delle singole fasi lunghe T in n sottofasi distinte, e far partire fino ad n istruzioni nella medesima fase, ad intervalli regolari T/n

prevedere n pipeline che possano operare in parallelo

Page 22: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

22

3.1 Pipeline3.1 Pipelinepipeline superscalarepipeline superscalare

riuscire ad eseguire più di un’istruzione per ciclo macchina duplicando gli esecutori più onerosi e facendoli operare in parallelo

tipicamente più ALU intere ed una Floating Point

richiede un control path notevole per sfruttare al meglio queste risorse

Page 23: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

23

3.1 Pipeline3.1 Pipelinedynamic schedulingdynamic scheduling

In run-time la CPU riordina le istruzioni al fine di ottimizzare l’utilizzo del pipeline, e poi riaggiusta l’ordine corretto dei risultati

maggiore è il blocco di istruzioni riordinate, migliore è l’efficienza e aumenta la com-plessità del control path e del datapath

viene detta anche out-of-order execution

Page 24: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

24

3.1 Pipeline3.1 Pipelinescoreboardscoreboard

L’esecuzione simultanea di più istruzioni su più unità esecutive si implementa con: scoreboard

– tabella centralizzata che tiene conto delle istru-zioni da eseguire e delle risorse a disposizione

reservation station– tecnica distribuita di inoltro delle singole istruzio-

ni alle varie unità bufferizzate

Page 25: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

25

3.2 Gerarchia di memoria3.2 Gerarchia di memoriatecnologie di memorizzazionetecnologie di memorizzazione

L’ideale sarebbe avere una memoria molto grande, molto veloce e molto economica.tecnologia velocità dimensioniregistro 1 - 2 nS 16 - 256 Bcache on-chip 3 - 10 nS 1 - 32 KBSRAM 20 - 50 nS 32 - 512 KBDRAM 60 - 250 nS 1 - 1024 MBdisk 5 - 20 mS 1 - 512 GBCD-ROM 100 - 500 mS 600 - 1200 MBtape 1 - molti S superiori

Page 26: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

26

3.2 Gerarchia di memoria3.2 Gerarchia di memoriaprestazioni CPU/memoriaprestazioni CPU/memoria

le CPU hanno avuto un notevole aumento di prestazioni dovuto a innovazioni tecnologi-che e architetturali

(..., pipeline, cache, ...) le memorie sono

migliorate solo grazie alla tecnologia

1

10

100

1000

1980 1990 2000

Page 27: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

27

3.2 Gerarchia di memoria3.2 Gerarchia di memoriaproprietà dei programmiproprietà dei programmi

proprietà statiche (dal file sorgente) proprietà dinamiche (in esecuzione)

– linearità dei riferimentigli indirizzi sono molto spesso consecutivi

– località dei riferimenti località spaziale

gli indirizzi vicini sono molto probabili località temporale

gli indirizzi più recenti hanno mggiore probabilità

Page 28: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

28

3.2 Gerarchia di memoria3.2 Gerarchia di memorialegge del 90/10legge del 90/10

Un programma utilizza mediamente il

90 % del suo tempo di esecuzione per

effettuare un numero limitato di

istruzioni, pari a circa il 10 % di tutte

quelle che lo compongono.

Page 29: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

29

3.2 Gerarchia di memoria3.2 Gerarchia di memoriadividi et imperadividi et impera

Conviene suddividere la memoria in due parti: livello 1: molto veloce e di dimensioni

contenute (per il costo), in cui mettere le informazioni più probabili (cache)

livello 2: molto grande e più lenta (per il costo), in cui mettere tutte le informazioni

Page 30: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

30

3.2 Gerarchia di memoria3.2 Gerarchia di memoriaorganizzazione gerarchicaorganizzazione gerarchica

suddivisione della memoria in livelli il livello superiore (il primo) è utilizzato

direttamente dalla CPU ogni livello è più veloce, di dimensioni

minori e di costo per byte superiore del livello sottostante

ogni livello contiene anche tutte le informazioni del livello sottostante

Page 31: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

31

3.2 Gerarchia di memoria3.2 Gerarchia di memoriaschema concettualeschema concettuale

CPU cachememoria

centralelivello

superiore

livello inferiore

Page 32: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

32

3.2 Gerarchia di memoria3.2 Gerarchia di memoriasuddivisione in blocchisuddivisione in blocchi

per implementare l’organizzazione gerarchica è necessario suddividere la memoria in blocchi

la dimensione di un blocco è la minima quantità indivisibile di informazioni che vengono ricopiate nel livello sovrastante

l’indirizzo di un’informazione sarà composto dall’indirizzo del blocco e da quello del dato all’interno del blocco

Page 33: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

33

3.2 Gerarchia di memoria3.2 Gerarchia di memoriahit e misshit e miss

Quando la CPU richiede un’informazione, questa può essere presente o meno in cache: hit, o successo, deve avere una probabilità

molto elevata (90 - 95 %) miss, o fallimento

In caso di miss si deve avviare una procedura di scambio (swap) dati con il livello sottostante.

Page 34: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

34

3.2 Gerarchia di memoria3.2 Gerarchia di memoriatempo medio di accessotempo medio di accesso

Il tempo medio di accesso ad un dato in memoria vale:

Ta = Th + Tm (1-Ph)

Ta = tempo medio di accesso (average memory-access time)

Th = tempo di accesso ad un dato presente in cache

Tm = tempo medio di accesso ad un dato non in cache

Ph = probabilità di hit

N.B.= Tm e Ph dipendono dalla dimensione del blocco

Page 35: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

35

3.2 Gerarchia di memoria3.2 Gerarchia di memoriatecnica generaletecnica generale

- suddivisione della memoria centrale in blocchi

- dimensionamento della cache in multiplo di blocchi

- la CPU emette un indirizzo:

hit - il dato viene fornito immediatamente alla CPU

miss - la cache richiede al dato al suo livello inferiore

- in cache viene memorizzato un intero blocco

- viene fornito il dato alla CPU

Page 36: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

36

3.2 Gerarchia di memoria3.2 Gerarchia di memoriaproblematicheproblematiche

organizzazione della cache e tecniche di

allocazione

individuazione di hit o miss

rimpiazzo dei blocchi

congruenza dei blocchi

Page 37: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

37

3.2 Gerarchia di memoria3.2 Gerarchia di memoriadirect mapping 1direct mapping 1

Associazione diretta (direct mapping) ogni blocco di un certo gruppo di blocchi del livello

inferiore può essere allocato solo in un ben preciso blocco (line o slot) del livello superiore

gruppo 0 gruppo 1 gruppo 2 gruppo 3 gruppo N-1

livelloinferiore

livellosuperiore

N gruppida M lineciascuno

N line ILI = Indirizzo Livello inferioreILS = Indirizzo Livello Superiore ILS = ILI mod N}

Page 38: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

38

3.2 Gerarchia di memoria3.2 Gerarchia di memoriadirect mapping 2direct mapping 2

Vantaggi semplicità di traduzione da indirizzo ILI

(memoria) a indirizzo ILS (cache) determinazione veloce di hit o missSvantaggi necessità di contraddistinguere il blocco

presente nella line (introduzione del Tag) swap continui per dati di blocchi adiacenti

Page 39: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

39

3.2 Gerarchia di memoria3.2 Gerarchia di memoriafully associative 1fully associative 1

Associazione completa (fully associative) ogni blocco del livello inferiore può essere allo-

cato in un qualsiasi blocco (line o slot) del livello superiore

livelloinferiore

livellosuperiore M line

N blocchi

bloc

co 0

bloc

co 1

bloc

co 2

bloc

co 3

bloc

co N

-1

Page 40: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

40

3.2 Gerarchia di memoria3.2 Gerarchia di memoriafully associative 2fully associative 2

Alla cache composta da M blocchi viene affiancata una tabella di M elementi, contenenti il numero di blocco (tag) posto nella line corrispondente.Vantaggi massima efficienza di allocazione

Svantaggi calcolo dell’indirizzo ILS e verifica hit/miss molto onerosi

Page 41: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

41

3.2 Gerarchia di memoria3.2 Gerarchia di memorian-way set associative 1n-way set associative 1

Associazione a gruppi (n-way set associative) ogni blocco di un certo insieme di blocchi del livello

inferiore può essere allocato liberamente in un ben preciso gruppo di blocchi del livello superiore

insieme 0 inisieme 1 insieme 2 insieme 3 insieme N-1

livelloinferiore

livellosuperiore

M insiemida K lineciascuno

M gruppida N lineciascuno

nell’esempio N=22-way set associative

Page 42: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

42

3.2 Gerarchia di memoria3.2 Gerarchia di memorian-way set associative 2n-way set associative 2

Alla cache composta da M gruppi di N line ciascuno vengono affiancate M tabelle di N elementi ciascuna, contenenti i tag che contraddistinguono i blocchi posti nelle line corrispondenti (tecnica più diffusa).

Si ottiene una adeguata efficienza di allocazione a fronte di una sopportabile complessità di ricerca

Page 43: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

43

3.2 Gerarchia di memoria3.2 Gerarchia di memoriarimpiazzo dei blocchirimpiazzo dei blocchi

Quando la cache è piena, quale blocco mi conviene sostituire ? Random, occupazione omogenea dello spazio Last recently Used, coerente con la località temporale

rimpiazzo casuale rimpiazzo LRU

N-way 2 4 8 2 4 8

16 KB 5,69 5,29 4,96 5,18 4,67 4,39

64 KB 2,01 1,66 1,53 1,88 1,54 1,39

256 KB 1,17 1,13 1,12 1,15 1,13 1,12

% Pmiss

Page 44: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

44

3.2 Gerarchia di memoria3.2 Gerarchia di memoriail problema della scrittura 1il problema della scrittura 1

La scrittura dei dati determina incoerenza tra il blocco in cache e quello nei livelli inferiori. write through

– scrittura contemporanea in cache e nel livello di memoria inferiore: aumento di traffico per frequenti scritture nel medesimo blocco, ma in entrambi i livelli i dati sono sempre coerenti. Si utilizzano buffer di scrittura asincroni verso la memoria.

N.B.= in memoria ci sono istruzioni e dati, e solo il 50% delle operazioni sui dati sono scritture (circa 12 %)

Page 45: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

45

3.2 Gerarchia di memoria3.2 Gerarchia di memoriail problema della scrittura 2il problema della scrittura 2

write back– scrittura differenziata in memoria inferiore solo

quando il blocco di cache viene rimpiazzato: necessità di riconoscere se ci sono state operazioni di scrittura nel nlocco, ottimizzazione del traffico ma periodi di non coerenza

Page 46: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

46

3.2 Gerarchia di memoria3.2 Gerarchia di memoriaridurre la probabilità di miss 1ridurre la probabilità di miss 1

miss di primo accesso, non riducibile miss di capacità insufficiente, quando in cache

non trovano posto tutti i blocchi del programma– cache più ampie e blocchi più estesi (*)

miss di interferenza, quando nell’n-associative dobbiamo rimpiazzare un blocco e ci sono ancora blocchi non occupati– aumentare la dimensione di N

Page 47: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

47

3.2 Gerarchia di memoria3.2 Gerarchia di memoriaridurre la probabilità di miss 2ridurre la probabilità di miss 2

realizzare le tabelle con memorie associative, per ridurre i tempi di ricerca

distinguere tra cache dati e cache istruzioni ottimizzare tramite compilatori

– posizionamento accurato delle procedure ripetitive– fusione di vettori in strutture– loop interchange

Page 48: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

48

3.2 Gerarchia di memoria3.2 Gerarchia di memoriaquantificazionequantificazione

dimensione del blocco 4 - 128 Byte

durata hit 1 - 4 cicli machina

durata miss 8 - 32 cicli (ed anche di più)

(tempo di accesso) (6-10 cicli)

(tempo di trasferimento) (2 - 22 cicli)

percentuale miss 1% - 20%

dimensione cache 1 - 256 KByte

Page 49: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

49

3.2 Gerarchia di memoria3.2 Gerarchia di memoriamemoria DRAM 1memoria DRAM 1

Dynamic Random Access Memory memorizzazione assegnata a componenti

capacitivi richiedono un ciclo di refresh ogni 8-10 mS organizzazione interna 2D e indirizzo diviso

– Raw Access Strobe– Column Access Strobe

Page 50: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

50

3.2 Gerarchia di memoria3.2 Gerarchia di memoriamemoria DRAM 2memoria DRAM 2

anno capacità ciclo di lettura

1980 64 Kb 250 ns

1983 256 Kb 220 ns

1986 1 Mb 190 ns

1989 4 Mb 165 ns

1992 16 Mb 145 ns

1995 64 Mb 120 ns

Page 51: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

51

3.2 Gerarchia di memoria3.2 Gerarchia di memoriamemoria principale 1memoria principale 1

CPU

cache

memoria

Organizzazione diretta

Il Bus tra CPU e cache hala stessa dimensione di

quello tra cache e memoriaprincipale

Page 52: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

52

3.2 Gerarchia di memoria3.2 Gerarchia di memoriamemoria principale 2memoria principale 2

Organizzazione estesa

Multiplexer tra CPUed N cache e bus ampio

tra le N cache ela memoria principale

memoria

multiplexer

CPU

cache cache cache

128 bit

32 bit

Page 53: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

53

3.2 Gerarchia di memoria3.2 Gerarchia di memoriamemoria principale 3memoria principale 3

Organizzazioneinterleaving

Bus normale tra CPUe cache e collegamento a memoria interlacciata

tra cache e modulidi memoria DRAM

modulo0

CPU

cache

modulo1

modulo2

Page 54: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

54

3.2 Gerarchia di memoria3.2 Gerarchia di memoriaevoluzione delle DRAM 1evoluzione delle DRAM 1

tempo di accesso: tempo necessario alla memoria per accedere alla cella indirizzata

tempo di lettura: tempo necessario alla CPU per acquisire un dato dal DB, dal momento in cui emette l’indirizzo in AB

tempo di accesso

tempo di lettura

Page 55: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

55

3.2 Gerarchia di memoria3.2 Gerarchia di memoriaevoluzione delle DRAM 2evoluzione delle DRAM 2

memorie interleaving: accesso continuato alla memoria senza aspettare la conclusione della lettura

Page 56: Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline

Evoluzione delle architetture

Architettura degli elaboratori 1 - A. Memo

56

3.2 Gerarchia di memoria3.2 Gerarchia di memoriaevoluzione delle DRAM 3evoluzione delle DRAM 3

memorie page mode: accesso continuato alla stessa colonna di memoria (multiple RAW access) (ciclo di lettura=100ns, column select=20ns)