1 / 56

3. Evoluzione delle architetture indice

3. Evoluzione delle architetture 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. 3. Evoluzione delle architetture evoluzione tecnologica. CPU - densità di transistor: +30% per anno

margo
Télécharger la présentation

3. Evoluzione delle architetture indice

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 3. Evoluzione delle architettureevoluzione 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 Architettura degli elaboratori 1 - A. Memo

  3. 3. Evoluzione delle architettureevoluzione 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 Architettura degli elaboratori 1 - A. Memo

  4. 3.1 Pipelinegeneralità 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 Architettura degli elaboratori 1 - A. Memo

  5. 3.1 Pipelinegeneralità 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 Architettura degli elaboratori 1 - A. Memo

  6. 3.1 Pipelinegeneralità 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] [fase1] [fase2] [fase3] [fase1] [fase1] [fase2] [fase3] Architettura degli elaboratori 1 - A. Memo

  7. 3.1 Pipelinegeneralità 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] [fase1] [fase1] [fase1] [fase1] [fase2] [fase2] [fase2] [fase2] [fase3] [fase3] [fase3] Architettura degli elaboratori 1 - A. Memo

  8. 3.1 Pipelinescomposizione in fasi L’esecuzione di una generica istruzione può essere ad esempio suddivisa in • fetchlettura dell’istruzione • decodedecodifica dell’istruzione • readdatalettura degli operandi • executeesecuzione dell’istruzione • write datascrittura del risultato Architettura degli elaboratori 1 - A. Memo

  9. 3.1 Pipelineevoluzione teorica clock ciclo1 ciclo2 ciclo3 ciclo4 ciclo5 ciclo6 Fetch Þ Decode Þ ............ Read M Þ ......................... Execute Þ ........................................ Write M Þ ....................................................... istr 1 istr 2 istr 3 istr 4 istr 5 istr 6 istr 1 istr 2 istr 3 istr 4 istr 5 istr 1 istr 2 istr 3 istr 4 istr 1 istr 2 istr 3 istr 1 istr 2 Architettura degli elaboratori 1 - A. Memo

  10. 3.1 Pipelinei 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 Architettura degli elaboratori 1 - A. Memo

  11. 3.1 Pipelinesbilanciamento 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) Architettura degli elaboratori 1 - A. Memo

  12. 3.1 Pipelinesbilanciamento delle fasi 2 Fetch Þ Decode Þ ............ Read M Þ .................... Execute Þ ....................... Write M Þ ................................. X : tempi di attesa dovuti allo sbilanciamento delle fasi 1 2 3 4 5 6 1 2 3 4 5 6 1 2 3 4 1 2 3 4 X 1 2 3 4 X X Architettura degli elaboratori 1 - A. Memo

  13. 3.1 Pipelinesbilanciamento 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 Architettura degli elaboratori 1 - A. Memo

  14. 3.1 Pipelineproblemi 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 Architettura degli elaboratori 1 - A. Memo

  15. 3.1 Pipelinedipendenza 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 D1 RM1 E1 WM1 F2 D2 RM2 E2 WM2 Architettura degli elaboratori 1 - A. Memo

  16. 3.1 Pipelinedipendenza 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) Architettura degli elaboratori 1 - A. Memo

  17. 3.1 Pipelinedipendenza 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%. Architettura degli elaboratori 1 - A. Memo

  18. 3.1 Pipelinedipendenza 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 Architettura degli elaboratori 1 - A. Memo

  19. 3.1 Pipelinedipendenza 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à Architettura degli elaboratori 1 - A. Memo

  20. 3.1 Pipelinedipendenza 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 Architettura degli elaboratori 1 - A. Memo

  21. 3.1 Pipelinesuperpipeline • 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 Architettura degli elaboratori 1 - A. Memo

  22. 3.1 Pipelinepipeline 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 Architettura degli elaboratori 1 - A. Memo

  23. 3.1 Pipelinedynamic 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 Architettura degli elaboratori 1 - A. Memo

  24. 3.1 Pipelinescoreboard • 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 Architettura degli elaboratori 1 - A. Memo

  25. 3.2 Gerarchia di memoriatecnologie di memorizzazione L’ideale sarebbe avere una memoria molto grande, molto veloce e molto economica. tecnologia velocità dimensioni registro 1 - 2 nS 16 - 256 B cache on-chip 3 - 10 nS 1 - 32 KB SRAM 20 - 50 nS 32 - 512 KB DRAM 60 - 250 nS 1 - 1024 MB disk 5 - 20 mS 1 - 512 GB CD-ROM 100 - 500 mS 600 - 1200 MB tape 1 - molti S superiori Architettura degli elaboratori 1 - A. Memo

  26. 3.2 Gerarchia di 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 1000 100 10 1 1980 1990 2000 Architettura degli elaboratori 1 - A. Memo

  27. 3.2 Gerarchia di memoriaproprietà dei programmi • proprietà statiche (dal file sorgente) • proprietà dinamiche (in esecuzione) • linearità dei riferimenti gli 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à Architettura degli elaboratori 1 - A. Memo

  28. 3.2 Gerarchia di memorialegge 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. Architettura degli elaboratori 1 - A. Memo

  29. 3.2 Gerarchia di memoriadividi 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 Architettura degli elaboratori 1 - A. Memo

  30. 3.2 Gerarchia di memoriaorganizzazione 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 Architettura degli elaboratori 1 - A. Memo

  31. 3.2 Gerarchia di memoriaschema concettuale livello inferiore memoria centrale CPU cache livello superiore Architettura degli elaboratori 1 - A. Memo

  32. 3.2 Gerarchia di memoriasuddivisione 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 Architettura degli elaboratori 1 - A. Memo

  33. 3.2 Gerarchia di memoriahit 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. Architettura degli elaboratori 1 - A. Memo

  34. 3.2 Gerarchia di memoriatempo 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 Architettura degli elaboratori 1 - A. Memo

  35. 3.2 Gerarchia di memoriatecnica 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 Architettura degli elaboratori 1 - A. Memo

  36. 3.2 Gerarchia di memoriaproblematiche • organizzazione della cache e tecniche di allocazione • individuazione di hit o miss • rimpiazzo dei blocchi • congruenza dei blocchi Architettura degli elaboratori 1 - A. Memo

  37. 3.2 Gerarchia di memoriadirect 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 N gruppi da M line ciascuno livello inferiore } livello superiore ILI = Indirizzo Livello inferiore ILS = Indirizzo Livello Superiore N line ILS = ILI mod N Architettura degli elaboratori 1 - A. Memo

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

  39. 3.2 Gerarchia di memoriafully 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 livello inferiore N blocchi livello superiore blocco 0 blocco 1 blocco 2 blocco 3 M line blocco N-1 Architettura degli elaboratori 1 - A. Memo

  40. 3.2 Gerarchia di memoriafully 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 Architettura degli elaboratori 1 - A. Memo

  41. 3.2 Gerarchia di memorian-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 M insiemi da K line ciascuno livello inferiore M gruppi da N line ciascuno livello superiore nell’esempio N=2 2-way set associative Architettura degli elaboratori 1 - A. Memo

  42. 3.2 Gerarchia di memorian-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 Architettura degli elaboratori 1 - A. Memo

  43. 3.2 Gerarchia di memoriarimpiazzo dei blocchi • Quando la cache è piena, quale blocco mi conviene sostituire ? • Random, occupazione omogenea dello spazio • Last recently Used, coerente con la località temporale % Pmiss 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 Architettura degli elaboratori 1 - A. Memo

  44. 3.2 Gerarchia di memoriail 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 %) Architettura degli elaboratori 1 - A. Memo

  45. 3.2 Gerarchia di memoriail 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 Architettura degli elaboratori 1 - A. Memo

  46. 3.2 Gerarchia di memoriaridurre 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 Architettura degli elaboratori 1 - A. Memo

  47. 3.2 Gerarchia di memoriaridurre 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 Architettura degli elaboratori 1 - A. Memo

  48. 3.2 Gerarchia di memoriaquantificazione 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 Architettura degli elaboratori 1 - A. Memo

  49. 3.2 Gerarchia di memoriamemoria 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 Architettura degli elaboratori 1 - A. Memo

  50. 3.2 Gerarchia di memoriamemoria 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 Architettura degli elaboratori 1 - A. Memo

More Related