Calcolatori Elettronici La Pipeline Superpipeline Pipeline superscalare Schedulazione dinamica della pipeline Processori reali: l architettura Intel e la pipeline dell AMD Opteron X4
Ricapitolando Con la pipeline aumenta il numero di istruzioni prodotte nell unità di tempo (aumenta il throughput) Per realizzare la pipeline: tutte le istruzioni hanno lo stesso numero di fasi (l unità di calcolo va percorsa segmento dopo segmento) tutte le fasi hanno la stessa durata (sincronizzazione delle attività) il tempo di esecuzione della singola istruzione potrebbe aumentare Per far funzionare la pipeline bisogna risolvere: criticità strutturali (più facile nelle macchine RISC) criticità sui dati criticità sul controllo combinazione di tecniche hardware e software Calcolatori Elettronici - Pipeline (3) - Slide 3 L. Tarantino - a.a. 2004/2005
Migliorare ancora le prestazioni Tre approcci Superpipeline Pipeline superscalare spesso combinate Schedulazione dinamica della pipeline Calcolatori Elettronici - Pipeline (3) - Slide 4 L. Tarantino - a.a. 2004/2005
Superpipeline Dividere i segmenti in segmenti più piccoli per iniziare l esecuzione della prossima istruzione deve finire il primo sottosegmento (più corto del segmento intero) Calcolatori Elettronici - Pipeline (3) - Slide 5 L. Tarantino - a.a. 2004/2005
Pipeline superscalare (1) replicare i componenti interni della CPU per lanciare l esecuzione di più istruzioni alla volta Caso limite se avessimo due unità di calcolo potremmo eseguire due istruzioni completamente in parallelo se ognuna di queste lavora in pipeline ad ogni ciclo di clock escono due istruzioni escono due istruzioni istr1 IF ID EX MEM WB istr2 IF ID EX MEM WB istr3 IF ID EX MEM WB istr4 IF ID EX MEM WB istr5 IF ID EX MEM WB istr6 IF ID EX MEM WB Calcolatori Elettronici - Pipeline (3) - Slide 6 L. Tarantino - a.a. 2004/2005
Pipeline superscalare (2) si replicano solo parti dell unità di calcolo e si fissano particolari combinazioni di istruzioni che possono essere eseguite in parallelo Esempio la prima istruzione è aritmetica o salto la seconda è trasferimento dati Realizzazione (vedi Fig. 4.69 del libro di testo) vengono prelevati 64 bit dalla cache istruzioni (due istruzioni alla volta) si duplica l estensore nel segmento ID uno serve se la prima è un salto uno serve per la seconda si duplica la ALU nel segmento EX (seconda ed. : Fig. 6.45, pag. 347) si deve poter eseguire contemporaneamente l operazione aritmetica e il calcolo dell indirizzo ovviamente le due istruzioni devono essere indipendenti Calcolatori Elettronici - Pipeline (3) - Slide 7 L. Tarantino - a.a. 2004/2005
64 bit Calcolatori Elettronici - Pipeline (3) - Slide 8 L. Tarantino - a.a. 2004/2005
Calcolatori Elettronici - Pipeline (3) - Slide 9 L. Tarantino - a.a. 2004/2005
Loop unrolling ( srotolamento del ciclo ) Calcolatori Elettronici - Pipeline (3) - Slide 10 L. Tarantino - a.a. 2004/2005
Schedulazione dinamica della pipeline (1) evitare stalli cercando di eseguire istruzioni successive in attesa che lo stallo sia risolto Esempio lw $t0,10($s0) addi $t1,$t0,4 add $s1,$s2,$t3 add $t4,$t5,$a2 sono indipendenti dalle precedenti e possono essere eseguite mentre si aspetta che si risolva lo stallo Osservazione la lw accede in memoria e potrebbe anche esserci fallimento in cache con questa tecnica potrei eseguire altre istruzioni anche mentre si completa il caricamento del blocco mancante serve hw aggiuntivo per consentire questo grado di parallelismo Calcolatori Elettronici - Pipeline (3) - Slide 11 L. Tarantino - a.a. 2004/2005
Schedulazione dinamica della pipeline (2) Unità Idea di di esecuzione base vedi Fig. 6.61 del libro di testo la pipeline è suddivisa in tre porzioni: invia l istruzione alla corretta unità funzionale contiene (ed. nuova: Fig. 6.49, pag. 352) diverse unità funzionali in grado di effettuare la fase di esecuzione invia l istruzione di istruzioni alla diverse corretta unità funzionale unità di prelievo e decodifica unità di esecuzione da 5 a 10 contiene diverse unità funzionali in grado di effettuare la fase di esecuzione di istruzioni diverse unità di consegna scrive i risultati (nel banco o in memoria) scrive i risultati (nel banco o in memoria) Calcolatori Elettronici - Pipeline (3) - Slide 12 L. Tarantino - a.a. 2004/2005
Schedulazione dinamica della pipeline (2) L unità di esecuzione da 5 a 10 unità funzionali ogni unità possiede una stazione di prenotazione la stazione conserva operandi ed operazione appena la stazione contiene tutti gli operandi richiesti e l unità funzionale è pronta viene calcolato il risultato L unità di consegna vedi Fig. 4.72 del libro di testo decide dove scrivere il risultato completamento in ordine: scrivere i risulati seguendo l ordine di esecuzione delle istruzioni previsto dal programma Calcolatori Elettronici - Pipeline (3) - Slide 14 L. Tarantino - a.a. 2004/2005
Schedulazione dinamica della pipeline (3) Solitamente la schedulazione dinamica è combinata con l esecuzione superscalare ciascuna unità può consegnare da quattro a sei istruzioni per ciclo di clock E opportuno che la cache sia non bloccante in caso di fallimento deve consentire altri accessi prima che sia caricato il blocco che ha dato fallimento altrimenti si bloccherebbe l esecuzione di istruzioni successive e non si sfrutterebbero tutte le unità funzionali Calcolatori Elettronici - Pipeline (3) - Slide 16 L. Tarantino - a.a. 2004/2005
L Intel 80x86 Architettura IA-32 (1) 1978 8086 architettura a 16 bit, registri a scopo specifico 1980 8087 60 nuove istruzioni in virgola mobile 1982 80286 indirizzamento a 24 bit, alcune nuove istruzioni per rendere più regolare il set istruzioni 1985 80386 architettura a 32 bit, nuove modalità di indirizzamento in memoria, nuove operazioni, supporto per la paginazione 1989-1995 80486, Pentium, Pentium Pro, Pentium II prestazioni più elevate, 4 nuove istruzioni 1997 estensione MMX 57 nuove istruzioni e trattamento virgola mobile per velocizzare applicazioni legate alla multimedialità ed alle comunicazioni 1999 Pentium III 70 nuove istruzioni (SSE) per trattamento multimedialità Calcolatori Elettronici - Pipeline (3) - Slide 22 L. Tarantino - a.a. 2004/2005
L Intel 80x86 Architettura IA-32(2) 2001 estensione SSE2 144 nuove istruzioni che estendono MMX e SSE 2003 l AMD (e NON Intel!) migliora l architettura spazio di indirizzamento e registri a 64 bit 2004 Intel si arrende a AMD adotta l architettura AMD denominandola EM64T (Extended Memory 64 Technology) 2006 estensione SSE4 54 nuove istruzioni da Intel 2007 estensione SSE5 170 nuove istruzioni da parte di AMD, comprendente 46 istruzioni con tre operandi a completare l insieme di base (come nel MIPS) 2007 estensione Advanced Vector Extension Intel ridefinenisce 250 istruzioni e ne aggiunge 128 nuove E la storia continua. Calcolatori Elettronici - Pipeline (3) - Slide 23 L. Tarantino - a.a. 2004/2005
Cosa dicono di lui..... architettura difficile da spiegare ed impossibile da apprezzare.... la mancanza di eleganza dell 80x86 ha già origine dal set di istruzioni dell 8086 ed è esacerbata dalle espansioni architetturalmente incoerenti dell 8087, 80286, 80386 e MMX.. Calcolatori Elettronici - Pipeline (3) - Slide 24 L. Tarantino - a.a. 2004/2005
Caratteristiche generali (1) 8 registri a scopo generale da 32 bit pagine da 4 KB memoria non allineata istruzioni aritmetiche a 2 operandi Esempio add $s1,$s0 # s0 = s0 + s1 Svantaggio : un operando va sempre distrutto Vantaggio (?) : istruzioni più corte vedi Fig. 2.36 del libro di testo (seconda edizione : Fig. 2.40 a pag. 109) Calcolatori Elettronici - Pipeline (3) - Slide 25 L. Tarantino - a.a. 2004/2005
Calcolatori Elettronici - Pipeline (3) - Slide 26 L. Tarantino - a.a. 2004/2005
Caratteristiche generali (2) Architettura registro-memoria (contrapposta a load/store) un operando può risiedere in memoria Esempio add 12(%gp),%s0 # s0=s0+mem[12+gp] Svantaggio: tempi di esecuzione delle istruzioni aritmetiche: - più lunghi Vantaggio: - legati alla natura degli operandi (2 registri oppure un registro + una locazione di memoria) non devo caricare il dato con la lw Istruzioni a lunghezza variabile da 1 byte a 17 byte (vedi Fig. 2.41 del libro di testo seconda ed.: Fig. 2.45, pag. 113) Varietà di metodi di indirizzamento alla memoria (non solo base + spiazzamento) Calcolatori Elettronici - Pipeline (3) - Slide 27 L. Tarantino - a.a. 2004/2005
Calcolatori Elettronici - Pipeline (3) - Slide 28 L. Tarantino - a.a. 2004/2005
La pipeline dell AMD Opteron X4 CPU basata su schedulazione dinamica della pipeline (vedi Fig. 4.74 del libro di testo) le istruzioni non entrano direttamente nella pipeline vengono prima tradotte in sequenze di micro-operazioni di lunghezza simili a istruzioni MIPS il processo di traduzione richiede 2 cicli di clock per il fetch (inclusa determinazione della lunghezza dell istruzione 3 cicli per creare le micro-operazioni Calcolatori Elettronici - Pipeline (3) - Slide 31 L. Tarantino - a.a. 2004/2005
Calcolatori Elettronici - Pipeline (3) - Slide 32 L. Tarantino - a.a. 2004/2005
THE END Calcolatori Elettronici - Pipeline (3) - Slide 33 L. Tarantino - a.a. 2004/2005