La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 100 3. Evoluzione delle architetture indice 3Evoluzione tecnologica 3.1Pipeline."— Transcript della presentazione:

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

2 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 101 3. Evoluzione delle architetture evoluzione tecnologica l CPU- densità di transistor: +30% per anno - frequenza di clock: +20% per anno l Memoria- capacità: +60% per anno - velocità di accesso: +10% per anno - costo per bit: -25% per anno l Hard disk- capacità: +60% per anno

3 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 102 3. Evoluzione delle architetture evoluzione strutturale l a breve gli sviluppi tecnologici si dovranno limitare, in attesa di un cambiamento totale l l’aumento di prestazioni è legato sempre più ad organizzazioni più efficienti l parallelismo: se un lavoro non può essere fatto più velocemente da una sola persona, allora bisogna farlo fare da più persone contemporaneamente

4 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 103 3.1 Pipeline generalità 1 l per svolgere un lavoro si devono seguire tre fasi distinte e sequenziali L  [fase1] [fase2] [fase3] l se ogni fase richiede un tempo T, un unico esecutore svolge un lavoro ogni 3T l per ridurre i tempi di produzione si possono utilizzare più esecutori

5 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 104 3.1 Pipeline generalità 2 l 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

6 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 105 3.1 Pipeline generalità 3 l 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]

7 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 106 3.1 Pipeline generalità 4 l 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]

8 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 107 3.1 Pipeline scomposizione in fasi L’esecuzione di una generica istruzione può essere ad esempio suddivisa in l fetchlettura dell’istruzione l decodedecodifica dell’istruzione l read datalettura degli operandi l executeesecuzione dell’istruzione l write datascrittura del risultato

9 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 108 clock ciclo1 ciclo2 ciclo3 ciclo4 ciclo5 ciclo6 Fetch  Decode ............ Read M ......................... Execute ........................................ Write M ....................................................... 3.1 Pipeline evoluzione teorica istr 1 istr 2 istr 3 istr 4 istr 5 istr 2 istr 3 istr 4 istr 5 istr 6

10 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 109 3.1 Pipeline i problemi In pratica il pipeline non permette di rag- giungere il parallelismo teorico per l sbilanciamento delle fasi l problemi strutturali l dipendenza dei dati l dipendenza dai controlli

11 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 110 3.1 Pipeline sbilanciamento delle fasi 1 l la suddivisione in fasi va fatta in base all’istruzione più onerosa l non tutte le istruzioni richiedono le stesse fasi l non tutte le fasi richiedono lo stesso tempo di esecuzione (si pensi alla lettura di un operando tramite registro o mediante indirizzamento indiretto)

12 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 111 3.1 Pipeline sbilanciamento delle fasi 2 Fetch  Decode ............ Read M .................... Execute ....................... Write M ................................. X : tempi di attesa dovuti allo sbilanciamento delle fasi 1 1 12 2 3 3 45 4 6 123456 1 2 2 3 3 4 4 X XX

13 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 112 3.1 Pipeline sbilanciamento delle fasi 3 Possibili soluzioni allo sbilanciamento: l scomposizione in più sottofasi –i tempi di overhead diventano consistenti l 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

14 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 113 3.1 Pipeline problemi 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

15 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 114 3.1 Pipeline dipendenza dei dati 1 l 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

16 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 115 3.1 Pipeline dipendenza dei dati 2 Soluzioni: l introduzione di fasi non operative l individuazione del richio di dipendenza dei dati e prelievo del dato direttamente all’uscita dell’ALU (data forwarding) l risoluzione a livello di compilatore l riordino delle istruzioni (pipeline scheduling)

17 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 116 3.1 Pipeline dipendenza 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%.

18 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 117 3.1 Pipeline dipendenza dai controlli 2 Soluzioni: l mettere in stallo il pipeline fino a quando non si è calcolato l’indirizzo della prossima istru- zione (pessima efficienza, massima semplicità) l individuare prima possibile le istruzioni dannose e anticiparne l’esecuzione, eventual- mente con apposita logica di controllo

19 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 118 3.1 Pipeline dipendenza dai controlli 3 Soluzioni per salti condizionati: l 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) l usare due pipeline, e proseguire parallela- mente nelle due possibilità

20 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 119 3.1 Pipeline dipendenza dai controlli 4 Prevedere l’esito del salto: l staticamente –il compilatore aggiusta i controlli, e li organizza in modo che i salti siano meno probabili l dinamicamente –costruire una tabella storica dei salti effettuati (Branch Target Buffer) e utilizzarla statisticamente, campi BranchAddress, TargetAddress ed History

21 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 120 3.1 Pipeline superpipeline l 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 l prevedere n pipeline che possano operare in parallelo

22 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 121 3.1 Pipeline pipeline superscalare l riuscire ad eseguire più di un’istruzione per ciclo macchina duplicando gli esecutori più onerosi e facendoli operare in parallelo l tipicamente più ALU intere ed una Floating Point l richiede un control path notevole per sfruttare al meglio queste risorse

23 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 122 3.1 Pipeline dynamic scheduling l In run-time la CPU riordina le istruzioni al fine di ottimizzare l’utilizzo del pipeline, e poi riaggiusta l’ordine corretto dei risultati l maggiore è il blocco di istruzioni riordinate, migliore è l’efficienza e aumenta la com- plessità del control path e del datapath l viene detta anche out-of-order execution

24 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 123 3.1 Pipeline scoreboard L’esecuzione simultanea di più istruzioni su più unità esecutive si implementa con: l scoreboard –tabella centralizzata che tiene conto delle istru- zioni da eseguire e delle risorse a disposizione l reservation station –tecnica distribuita di inoltro delle singole istruzio- ni alle varie unità bufferizzate

25 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 124 3.2 Gerarchia di memoria tecnologie di memorizzazione L’ideale sarebbe avere una memoria molto grande, molto veloce e molto economica. tecnologiavelocitàdimensioni registro1 - 2 nS16 - 256 B cache on-chip3 - 10 nS1 - 32 KB SRAM20 - 50 nS32 - 512 KB DRAM60 - 250 nS1 - 1024 MB disk5 - 20 mS1 - 512 GB CD-ROM100 - 500 mS600 - 1200 MB tape1 - molti Ssuperiori

26 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 125 3.2 Gerarchia di memoria prestazioni CPU/memoria l le CPU hanno avuto un notevole aumento di prestazioni dovuto a innovazioni tecnologi- che e architetturali (..., pipeline, cache,...) l le memorie sono migliorate solo grazie alla tecnologia 1 10 100 1000 198019902000

27 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 126 3.2 Gerarchia di memoria proprietà dei programmi l proprietà statiche (dal file sorgente) l proprietà dinamiche (in esecuzione) –linearità dei riferimenti gli indirizzi sono molto spesso consecutivi –località dei riferimenti l località spaziale gli indirizzi vicini sono molto probabili l località temporale gli indirizzi più recenti hanno mggiore probabilità

28 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 127 3.2 Gerarchia di memoria legge 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.

29 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 128 3.2 Gerarchia di memoria dividi et impera Conviene suddividere la memoria in due parti: l livello 1: molto veloce e di dimensioni contenute (per il costo), in cui mettere le informazioni più probabili (cache) l livello 2: molto grande e più lenta (per il costo), in cui mettere tutte le informazioni

30 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 129 3.2 Gerarchia di memoria organizzazione gerarchica l suddivisione della memoria in livelli l il livello superiore (il primo) è utilizzato direttamente dalla CPU l ogni livello è più veloce, di dimensioni minori e di costo per byte superiore del livello sottostante l ogni livello contiene anche tutte le informazioni del livello sottostante

31 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 130 3.2 Gerarchia di memoria schema concettuale CPU cache memoria centrale livello superiore livello inferiore

32 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 131 3.2 Gerarchia di memoria suddivisione in blocchi l per implementare l’organizzazione gerarchica è necessario suddividere la memoria in blocchi l la dimensione di un blocco è la minima quantità indivisibile di informazioni che vengono ricopiate nel livello sovrastante l l’indirizzo di un’informazione sarà composto dall’indirizzo del blocco e da quello del dato all’interno del blocco

33 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 132 3.2 Gerarchia di memoria hit e miss Quando la CPU richiede un’informazione, questa può essere presente o meno in cache: l hit, o successo, deve avere una probabilità molto elevata (90 - 95 %) l miss, o fallimento In caso di miss si deve avviare una procedura di scambio (swap) dati con il livello sottostante.

34 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 133 3.2 Gerarchia di memoria tempo medio di accesso Il tempo medio di accesso ad un dato in memoria vale: T a = T h + T m (1-P h ) T a = tempo medio di accesso (average memory-access time) T h = tempo di accesso ad un dato presente in cache T m = tempo medio di accesso ad un dato non in cache P h = probabilità di hit N.B.= T m e P h dipendono dalla dimensione del blocco

35 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 134 3.2 Gerarchia di memoria tecnica 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

36 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 135 3.2 Gerarchia di memoria problematiche l organizzazione della cache e tecniche di allocazione l individuazione di hit o miss l rimpiazzo dei blocchi l congruenza dei blocchi

37 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 136 3.2 Gerarchia di memoria direct mapping 1 Associazione diretta (direct mapping) l 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 0gruppo 1gruppo 2gruppo 3gruppo N-1 livello inferiore livello superiore N gruppi da M line ciascuno N line ILI = Indirizzo Livello inferiore ILS = Indirizzo Livello Superiore ILS = ILI mod N }

38 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 137 3.2 Gerarchia di memoria direct mapping 2 Vantaggi l semplicità di traduzione da indirizzo ILI (memoria) a indirizzo ILS (cache) l determinazione veloce di hit o miss Svantaggi l necessità di contraddistinguere il blocco presente nella line (introduzione del Tag) l swap continui per dati di blocchi adiacenti

39 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 138 3.2 Gerarchia di memoria fully associative 1 Associazione completa (fully associative) l ogni blocco del livello inferiore può essere allo- cato in un qualsiasi blocco (line o slot) del livello superiore livello inferiore livello superiore M line N blocchi blocco 0blocco 1blocco 2blocco 3 blocco N-1

40 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 139 3.2 Gerarchia di memoria fully 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 l massima efficienza di allocazione Svantaggi l calcolo dell’indirizzo ILS e verifica hit/miss molto onerosi

41 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 140 3.2 Gerarchia di memoria n-way set associative 1 Associazione a gruppi (n-way set associative) l 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 0inisieme 1insieme 2insieme 3insieme N-1 livello inferiore livello superiore M insiemi da K line ciascuno M gruppi da N line ciascuno nell’esempio N=2 2-way set associative

42 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 141 3.2 Gerarchia di memoria n-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

43 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 142 3.2 Gerarchia di memoria rimpiazzo dei blocchi Quando la cache è piena, quale blocco mi conviene sostituire ? l Random, occupazione omogenea dello spazio l Last recently Used, coerente con la località temporale rimpiazzo casuale rimpiazzo LRU N-way 2 4 8 2 4 8 16 KB5,695,294,965,184,674,39 64 KB2,011,661,531,881,541,39 256 KB1,171,131,121,151,131,12 % P miss

44 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 143 3.2 Gerarchia di memoria il problema della scrittura 1 La scrittura dei dati determina incoerenza tra il blocco in cache e quello nei livelli inferiori. l 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 %)

45 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 144 3.2 Gerarchia di memoria il problema della scrittura 2 l 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

46 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 145 3.2 Gerarchia di memoria ridurre la probabilità di miss 1 l miss di primo accesso, non riducibile l miss di capacità insufficiente, quando in cache non trovano posto tutti i blocchi del programma –cache più ampie e blocchi più estesi (*) l miss di interferenza, quando nell’n-associative dobbiamo rimpiazzare un blocco e ci sono ancora blocchi non occupati –aumentare la dimensione di N

47 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 146 3.2 Gerarchia di memoria ridurre la probabilità di miss 2 l realizzare le tabelle con memorie associative, per ridurre i tempi di ricerca l distinguere tra cache dati e cache istruzioni l ottimizzare tramite compilatori –posizionamento accurato delle procedure ripetitive –fusione di vettori in strutture –loop interchange

48 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 147 3.2 Gerarchia di memoria quantificazione dimensione del blocco4 - 128 Byte durata hit 1 - 4 cicli machina durata miss8 - 32 cicli (ed anche di più) (tempo di accesso)(6-10 cicli) (tempo di trasferimento)(2 - 22 cicli) percentuale miss1% - 20% dimensione cache1 - 256 KByte

49 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 148 3.2 Gerarchia di memoria memoria DRAM 1 Dynamic Random Access Memory l memorizzazione assegnata a componenti capacitivi l richiedono un ciclo di refresh ogni 8-10 mS l organizzazione interna 2D e indirizzo diviso –Raw Access Strobe –Column Access Strobe

50 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 149 3.2 Gerarchia di memoria memoria DRAM 2 anno capacità ciclo di lettura 198064 Kb250 ns 1983256 Kb220 ns 19861 Mb190 ns 19894 Mb165 ns 199216 Mb145 ns 199564 Mb120 ns

51 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 150 3.2 Gerarchia di memoria memoria principale 1 CPU cache memoria Organizzazione diretta Il Bus tra CPU e cache ha la stessa dimensione di quello tra cache e memoria principale

52 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 151 3.2 Gerarchia di memoria memoria principale 2 Organizzazione estesa Multiplexer tra CPU ed N cache e bus ampio tra le N cache e la memoria principale memoria multiplexer CPU cache 128 bit 32 bit

53 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 152 3.2 Gerarchia di memoria memoria principale 3 Organizzazione interleaving Bus normale tra CPU e cache e collegamento a memoria interlacciata tra cache e moduli di memoria DRAM modulo 0 CPU cache modulo 1 modulo 2

54 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 153 3.2 Gerarchia di memoria evoluzione delle DRAM 1 l tempo di accesso: tempo necessario alla memoria per accedere alla cella indirizzata l 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

55 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 154 3.2 Gerarchia di memoria evoluzione delle DRAM 2 l memorie interleaving: accesso continuato alla memoria senza aspettare la conclusione della lettura

56 Evoluzione delle architetture Architettura degli elaboratori 1 - A. Memo 155 3.2 Gerarchia di memoria evoluzione delle DRAM 3 l memorie page mode: accesso continuato alla stessa colonna di memoria (multiple RAW access) (ciclo di lettura=100ns, column select=20ns)


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

Presentazioni simili


Annunci Google