Parte IV Architettura della CPU IV.1 Pinout Logico del µP Significato dei vari Pin • Indirizzamento • Dati • Controllo – Controllo del ciclo di bus – Gestione delle interruzioni – Arbitraggio del bus – Gestione del coprocessore – Segnalazione di stato – Vari (alimentazione etc.) IV.2 Pinout Logico del µP Significato dei vari Pin • due dei parametri chiave che determinano le performance della CPU sono il numero degli address pin e dei data pin • un chip con m address pin può indirizzare 2m locazioni di memoria •Un chip con n data pin può leggere e scrivere una n-bit word in una singola operazione ( se n=8 faccio 4 operazioni per leggere una word di 32 bit ) •Oggi sia m che n valgono 32 o 64 IV.3 Memorie cache • Scopo della cache: disaccoppiare le velocità di CPU e RAM • Località spaziale: alta probabilità di accedere in tempi successivi a indirizzi molto vicini • Località temporale: alta probabilità di accedere più volte agli stessi indirizzi in tempi molto vicini • Gerarchie di cache: a 2 o 3 livelli • Cache inclusive: ciascuna contiene sempre quella del livello superiore IV.4 Pipeline e architetture superscalari • Per aumentare la capacità di elaborazione della CPU: – Pipeline a molti stadi (anche 10 e più) – Architetture superscalari: parti di pipeline (o intere pipeline) multiple • Latenza: tempo necessario a completare l’elaborazione di un istruzione • Banda della CPU: numero di istruzioni elaborate nell’unità di tempo Pipeline e architetture superscalari aumentano la banda della CPU ma non riducono la latenza IV.5 Pentium II • Architettura a 32 bit completamente compatibile con i predecessori, 266 e 333 MHz • Aritmetica Floating-point IEEE 754 • Bus di memoria a 64 bit o • Cache 1 livello 16KB dati +16KB istruzioni o • Cache 2 livello 256/512 KB nel package • SEC (Single Edge Cartridge) a 242 pin • Dissipa oltre 55W! IV.6 Microarchitettura del Pentium II IV.7 Unità funzionali Fetch-Decode Unit Preleva le istruzioni dalla cache L1 e le scompone in microoperazioni che vengono messe nel ROB (ReOrder Buffer) Dispatch-Execute Unit Preleva dal ROB le µ-operazioni che possono andare in esecuzione e le esegue su unità funzionali multiple Retire Unit Ritira dal ROB le µ-operazioni la cui esecuzione è terminata, aggiorna i registri ‘ufficiali’ aggiornati dalle µ-operazioni IV.8 La Sezione di Controllo • FETCH Fase di prelievo nel corso della quale l’istruzione individuata dal registro PC Program Counter viene trasferita nel registro IR Instruction Register e il contenuto di PC viene aggiornato in modo da puntare all’istruzione successiva • DECODE/EXECUTE Fase di decodifica e di esecuzione dell’istruzione contenuta nel registro IR IV.9 I problemi del Pentium II • IA-32 è irrimediabilmente CISC: le sue istruzioni possono essere spezzate in istruzioni RISC ma questo richiede tempo e spazio su chip • Indirizzamento orientato a memoria • Pochi registri e asimmetrici: molti risultati intermedi devono essere appoggiati in memoria • Pochi registri=molte dipendenze: rende difficile l’esecuzione parallela di più istruzioni • Necessita’ di una pipeline lunga: rende difficile la predizione dei salti • Rimedia con l’esecuzione speculativa ma di fatto crea altri problemi • 4 GB di spazio di indirizzamento: ormai poco per un grosso server IV.10 Pentium III • “ Intel potenzia la tecnologia del Pentium II. Il Pentium III, fino a 1.26 GHZ, utilizza: • memorie Synchronized Dynamic Random Access Memory (SDRAM), che permettono un veloce trasferimento dei dati tra il microprocessore e la memoria. • 70 nuove istruzioni, chiamate Streaming SIMD Extensions, che potenziano le caratteristiche multimediali e 3D. • una cache con una più ampia banda • 100 MHz front-side bus IV.11 Pentium 4 • “ 32-bit microprocessore, fino a 3.4MHZ, con tecnologia hyperpipelined, una larghezza di banda tre volte quella del Pentium III, L2 fino a 2 MB, FSB fino a 800 MHz, disegnato per i giochi on line, video e foto digitali, riconoscimento vocale e gestione MP3. Inoltre: •Nuova Level 1 cache technology, che migliora ancora la comunicazione tra microprocessore e memoria •NetBurst microarchitecture, che raddoppia la lunghezza della pipeline fino a 20 stati. •Estensione della Streaming SIMD extension 2 (SSE2) -- 144 nuove istruzioni, con un 128-bit SIMD integer arithmetic e 128-bit SIMD double precision floating point instructions. IV.12 Overview of the NetBurst Microarchitecture for Pentium 4 The block diagram of the Pentium 4. Trace Cache:Level 1 Instruction Retirement Unit: controlla le microoperazioni terminate IV.13 L’architettura IA-64 • Dopo aver spremuto fino in fondo la IA-32, Intel rompe con il passato e propone una nuova ISA: la IA-64 • La IA-64 è una architettura a 64 bit, dual core ( e sono allo studio 80 cuori ), nuovi supermateriali. • Nome iniziale Pentium 4 serie 600/Itanium ( 2001/2002) • EPIC Explicitly Parallel Instrucion Computing è il termine usato da Intel quando fa riferimento a questa nuova tecnologia • Ampio uso di pipeline • Raddoppio della memoria cache a 2 MB • Tecnologia SpeedStep utilizzata nei notebook per ridurre la dissipazione dei chip • Tanto per non parlare di compatibilità all’indietro è un processore dual-mode e può eseguire anche il vecchio codice IA-32 IV.14 L’architettura IA-64 • Perché una nuova architettura ? •Attualmente gli incrementi di prestazioni delle CPU sono dovuti in massima parte al miglioramento del processo tecnologico del silicio, che ha portato e ancora porterà frequenze di lavoro sempre maggiori e integrazione di unità di calcolo sempre più potenti e parallele. Tuttavia le limitazioni intrinseche delle attuali architetture rendono sempre più difficile e oneroso ogni nuovo miglioramento. Intel si è resa conto che per ottenere miglioramenti più cospicui era necessario sviluppare una architettura completamente diversa, progettata in modo da tenere conto dei vantaggi e degli svantaggi delle varie famiglie di processori esistenti (CISC e RISC). IV.15 L’architettura IA-64 • Perché una nuova architettura ? •La figura di merito con cui si è soliti misurare la potenza di un microprocessore è il numero di istruzioni che esegue in un secondo. In prima approssimazione questa figura di merito è direttamente proporzionale alla frequenza di clock del processore. Per aumentare la frequenza massima applicabile sono state ideate strutture di esecuzione a pipeline, che eseguono più istruzioni un pezzo alla volta, come in una catena di montaggio IV.16 L’architettura IA-64 • Perché una nuova architettura ? Con l'aumento delle istruzioni al secondo è sorto il problema di fornire queste istruzioni alle unità di esecuzione, dato che le memorie esterne non erano abbastanza veloci da sostenere il flusso richiesto dal processore. A tal fine è stata introdotta la memoria cache, una memoria locale, di dimensioni ridotte, ma molto veloce, in cui sono conservate le istruzioni più recentemente richieste, in modo che siano rapidamente disponibili per l'esecuzione. Quando la tecnologia di integrazione lo ha reso disponibile, per aumentare il fattore di proporzionalità diretta con la frequenza, sono state introdotte più unità di calcolo capaci di eseguire le istruzioni in parallelo. IV.17 L’architettura IA-64 • Perché una nuova architettura ? A questo punto l'architettura ha cominciato a mostrare i suoi limiti. Per esempio più unità di esecuzione parallele possono in teoria permettere l'esecuzione delle istruzioni in parallelo, però per il processore è difficile stabilire se una certa sequenza di istruzioni può essere parallelizzata. A volte non è possibile, a volte è possibile ma non c'è modo di capirlo, a volte basterebbe cambiare leggermente l'ordine delle istruzioni per renderlo possibile. Per esempio nei processori a 32 bit della famiglia P6 (Pentium Pro, PII e PIII), è presente una logica di controllo che, quando può, riordina le istruzioni per poter meglio parallelizzarle (out of order execution). Si tratta sicuramente di un miglioramento, ma sempre poco rispetto a quanto sarebbe possibile ottenere. Da queste considerazioni è nata l'architettura EPIC (Explicitly Parallel Instruction Computing) di Intel. L'approccio è stato quello di stabilire prima di quali risorse interne aveva bisogno il processore per eliminare gli svantaggi delle architetture esistenti pur avendone i vantaggi, e poi di sviluppare un set di istruzioni capace di controllare e sfruttare a pieno queste risorse. IV.18 L’architettura IA-64 • Perché una nuova architettura ? Il set di istruzioni a 32 bit risulta intrinsecamente sequenziale e difficilmente parallelizzabile, non è inoltre possibile operare una ottimizzazione a livello di compilazione valida per tutti i tipi di processore. Nell'architettura IA-64 si sono risolte queste limitazioni agendo su due fronti. In fase di compilazione le istruzioni vengono assemblate in modo da favorire la parallelizzazione e inserendo direttamente all'interno del formato dell'istruzione le informazioni relative alla dipendenza reciproca. Si parla appunto di parallelismo esplicito, nel senso che viene indicato all'interno dell'istruzione stessa quali istruzioni possono essere eseguite in parallelo. Nei processori a 32 bit questo compito è svolto dalla logica di controllo interna al chip, in modo non molto efficiente e comunque con approccio fortemente conservativo. Nel caso della IA-64, in fase di esecuzione una logica di controllo molto più semplice ed efficiente sa già a priori quali istruzioni possono essere parallelizzate. Questo approccio si chiama EPIC (Explicitly Parallel Instruction Computing) ossia esecuzione esplicitamente parallela delle istruzioni. IV.19 Evoluzione architettura IA-64 • Nuovi materiali, puntando a realizzare nuovi microprocessori • con circuiti di 45 /32 nanometri ( oggi siamo a 65 ), • che vuol dire minore dispersione di corrente ( e quindi meno calore e consumo energetico ) • e aumento della velocità, anche più del 20% . • Miglioramenti di architetture interne Enhanced Intel SpeedStep® Technology e Intel® Virtualization Technology Intel® Core™2 Duo Processors 64 bit, dual core, 65nm. IV.20 AMD Athlon 64 • AMD Athlon™64 Processor: Now Available in Models 4000+ You live at the forefront of technology, and you won’t settle for less from your favorite software. That’s why AMD is proud to bring you the AMD Athlon™ 64 processor, with AMD64 technology for dramatically higher performance and built-in support for future 64-bit applications — even 32- and 64-bit simultaneous computing. Maximize system efficiency and stay ahead of the curve with the technically superior PC processor, packed with advances such as HyperTransport™ technology, an integrated DDR memory controller, Cool'n'Quiet™ and Enhanced Virus Protection for Microsoft® Windows® XP SP2. Whether it is for business, school or play, with the AMD Athlon 64 processor, you can address your current and future computing needs. **** slides estratte dal sito AMD **** IV.21 AMD Athlon 64 • IV.22 Architettura dei computer paralleli Le frequenze dei clock sono in crescita ma…. La velocita della luce e’ un limite…. Sempre di piu’ emerge il problema della dissipazione di calore….. Per cui l’architettura dei computer farà ricorso sempre maggiormente al calcolo in parallelo, come il Dual Core di Intel IV.23 Architettura dei computer paralleli Progettati per eseguire in parallelo più job ( tipo banche) Oppure lo stesso job costituito da molti processi paralleli ( come un programma di scacchi) IV.24 Architettura dei computer paralleli Multiprocessore tutte le CPU condividono la memoria fisica CPU CPU Memoria condivisa CPU CPU IV.25 Multiprocessors (a) multiprocessor con 16 CPU che condividono la stessa memoria (b) Una immagine viene partizionata in 16 sezioni, ognuna analizzata dalle 16 differenti CPU IV.26 Architettura dei computer paralleli Multicomputer tutte le CPU hanno la loro memoria CPU + Mem CPU + Mem Rete di interconnessione CPU + Mem CPU + Mem IV.27 Multicomputers (a) multicomputer con 16 CPU, ognuno con la propria memoria (b) L’immagine della slide precedente viene splittata fra le diverse 16 memorie IV.28 Architettura dei computer paralleli I multiprocessori sono difficili da costruire Ma facili da programmare I multicomputer sono facili da costruire Ma difficili da programmare Vari sforzi per costruire sistema ibrido Concentrandosi sulle reti di interconnessione IV.29 Esercizio •Una Architettura di computer paralleli di tipo multiprocessor è realizzata con sedici CPU e deve analizzare una immagine complessa. Una sola delle seguenti affermazioni è vera: –Tutte le CPU lavorano contemporaneamente sull’intera immagine –L’immagine viene divisa in sedici porzioni ciascuna esaminata da una differente CPU –A turno ogni CPU esamina l’intera immagine •Motivare brevemente la risposta (massimo tre righe + 1 figura) IV.30