Calcolatori Elettronici 2 Williamette Core (0.18μm) 217 mm 2 m/42mtr Northwood Core (0.13μm) Dothan Core (0.09μm) 145 mm 2 /55Mtr 84 mm 2 /140Mtr Conroe Core (0.065μm) 143 mm 2 /291Mtr Cell Processor (0.09μm) 221 mm 2 /234Mtr Intel-Pentium-4 (11/2000) Intel-Pentium-4 (01/2002) Intel-Pentium-M (05/2004) Intel-Core2-Duo (07/2006) Sony/Toshiba/IBM (11/2006) Kentsfield=2 x Conroe Core 286 mm 2 /582Mtr (2 chips, 1 package) Intel-Core2-Quad (11/2006) 275 mm 2 /100Mtr (Intel 80-core research chip 09/2006) Penryn Core (0.045μm) 107 mm 2 /410Mtr Intel-Core2-Duo (01/2008) Evoluzione dei Processori Intel Single Core (85/05) Silicon Process Technology 1.5µ 1.0µ 0.8µ 0.6µ 0.35µ 0.25µ 0.18µ 0.13µ 0.09µ Intel386 DX Processor Intel486 DX Processor Pentium Processor Pentium Pro Processor Pentium II Processor Pentium III Processor Pentium 4 Processor Roberto Giorgi, Universita di Siena, C208L01, Slide 2
Il futuro e Multi-Core Gennaio 2008: Barcelona (AMD) 4 UltraSPARC-T2 (SUN) 8 CELL (IBM) 1+8 Polaris (Intel) 80 Ma anche: (a.k.a. Niagara-2 -- 64 threads) Larrabee (Intel) 16/24 http://www.intel.com (GPU con x86 ISA) TILE64 (Tilera) 64 http://www.tilera.com (Embedded: firewall,ids,h.264, ) G8x (NVIDIA) 128 http://www.nvidia.com (GPU) AM2045 (Ambric) 360 http://www.ambric.com (Embedded) AM2045 Roberto Giorgi, Universita di Siena, C208L01, Slide 3 TILE64 Obiettivi del corso Il corso costituisce un approfondimento nello studio dei calcolatori elettronici attuali e mira a fornire La padronanza dei principi dei microprocessori ad alte prestazioni (Superscalari, VLIW) La comprensione dei meccanismi di base per la programmazione di applicazioni che sfruttino il parallelismo reso disponibile dal sistema (Scheduling Statico) Introduzione ai Sistemi MultiCore/MultiProcessore Roberto Giorgi, Universita di Siena, C208L01, Slide 4
Amministrazione del Corso Docente: Roberto Giorgi (giorgi@unisi.it) Telefono: 0577-23-4630 Ricevimento: Martedi 15:00/17:30 Dispense: http://www.dii.unisi.it/~giorgi/didattica/calel2 Testo di Riferimento: Hennessy and Patterson, Computer Architecture: t A Quantitative Approach Fourth Edition, Morgan Kauffman, 2007, ISBN 978-0-12-370490-0 Altri Testi Consigliati D. Culler, J.P. Singh, A. Gupta, "Parallel Computer Architecture: A Hardware/Software Approach", Morgan Kaufman/Elsevier, 1998, ISBN-10 1558603433. M.J. Flynn, "Computer Architecture: Pipelined and Parallel Processor Design", Jones and Bartlett Publishers, Inc., 1995, ISBN 0867202041 Roberto Giorgi, Universita di Siena, C208L01, Slide 5 Architettura dei Calcolatori Il termine ARCHITETTURA e usato qui per descrivere l insieme degli attributi di un sistema, cosi come questo appare al programmatore*, ovvero la sua struttura tt concettuale e il suo funzionamento, con una distinzione rispetto all organizzazione delle reti che gestiscono il flusso dei dati e delle reti di controllo, rispetto alla progettazione logica e rispetto all implementazione fisica -- Gene Amdahl, IBM Journal of R&D, Apr. 1964 Roberto Giorgi, Universita di Siena, C208L01, Slide 6 *programmatore == programmatore di sistema (operativo) o ingegnere del compilatore
Architettura: un termine con piu sfumature In senso stretto: interfaccia Hardware/Software Set delle istruzioni Gestione e protezione della memoria Interruzioni ed eccezioni (trap) Formati dei dati (esempio IEEE 754 per il floating point) Organizzazione: anche chiamata Microarchitettura In questo senso e l implementazione dell architettura - (Questa parte Gene Amdahl l aveva esclusa) Specifica delle unita funzionali e connessioni Configurazione della pipeline Posizione i e configurazione i delle memorie cache Come disciplina, Architettura dei Calcolatori include anche la microarchitettura Per evitare confusione quando si parla dell interfaccia HW/SW si usa Instruction Set Architecture (ISA) L ARCHITETTURA DEI CALCOLATORI riguarda l interfaccia i fra cio che la tecnologia fornisce e cio che il mercato richiede -- Yale Patt, ISCA, Jun 2006 Roberto Giorgi, Universita di Siena, C208L01, Slide 7 Levelli dell Architettura di un Calcolatore Software 1 Application Programs 2 Libraries 3 3 Operating System 4 5 6 Memory Drivers Scheduler Manager 8 8 8 8 7 7 ISA Execution Hardware 9 10 10 Memory Translation System Interconnect (bus) 11 11 12 Controllers Controllers 13 14 I/O devices and Networking Hardware Main Memory Interfaces: 1: user interface 3,7: ABI 4: driver interface 7,8: ISA 9: memory arch. 10: I/O arch. 13: bus architecture ABI=Application Application Binary Interface ISA=Instruction Set Architecture Roberto Giorgi, Universita di Siena, C208L01, Slide 8
Cio che la tecnologia fornisce: Legge di Moore Il numero di TRANSISTOR raddoppia ogni 18 mesi (successivamente riveduta in 24 mesi ) Dovutoa - maggiore densita (transistor/area) - disponibilita di chip piu grandi 1000 Mtr/100mm2 (dati dalla slide iniziale) 100 10 Intel CPU Moore's Law (18) 2000/11 2001/06 2002/01 2002/08 2003/03 2003/10 2004/05 2004/12 2005/07 2006/02 2006/09 2007/04 2007/11 NB: La legge di Moore e puramente PSICOLOGICA! Roberto Giorgi, Universita di Siena, C208L01, Slide 9 Cio che il mercato richiede: le Applicazioni Trend delle Applicazioni DA numeriche, scientifiche A commerciali, intrattenimento DA poche, grosse A omnipresenti (ubiquitous), piccole - mainframes -- minis -- microprocessors -- handheld, embedded DA poca memoria A molta memoria (primaria e secondaria) DA single-thread A multiple-threads DA standalone A networked DA orientate ai caratteri A multimedia (grafica e suono) Roberto Giorgi, Universita di Siena, C208L01, Slide 10
Principali Applicazioni Scientifiche/Numeriche Computational Fluid Dynamics, Weather Prediction, ECAD Long word length, floating point arithmetic Commerciali inventory control, billing, payroll, decision support byte oriented, fixed point, high I/O, large secondary storage Real-Time/Embedded control, some communications predictable performance interrupt architecture important, low power, cost critical Home Computing multimedia, intrattenimento high bandwidth data movement, grafica crittografia, compressione/decompressione i Roberto Giorgi, Universita di Siena, C208L01, Slide 11 App.Trends: Multimedia, Reti, Web-servers Grande verieta di dispositivi multimediali dotati di Display grafici (LCD, etc.) Audio ad alta definizione Ampie capacita di memoria secondaria per immagini, suono, etc. Servizi via Web e reti ad alte prestazioni richiedono Molti thread independenti Ampia banda di comunicazione Roberto Giorgi, Universita di Siena, C208L01, Slide 12
ARCHITETTURE DI MICROPROCESSORI Il crescente numero di transistor (meno costosi e piu veloci) ha alimentato la richiesta di CPU a maggiori prestazioni 1970s CPU seriale, 1-bit x interi 1980s RISC a 32-bit con pipeline -La semplicita dell ISA simplicity permette di integrare l intero processore sul chip 1990s CPU piu grosse, superscalari - Anche nel caso CISC 2000s Multiprocessori su chip. Roberto Giorgi, Universita di Siena, C208L01, Slide 13 Struttura del corso 1. Pipelining ad Alte Prestazioni 2. Branch Prediction 3. Processori Superscalari 4. Media Processing: processori VLIW 5. Multiprocessori e problemi connessi 6. TLP: Thread Level Parallelism li Roberto Giorgi, Universita di Siena, C208L01, Slide 14
PIPELINING Roberto Giorgi, Universita di Siena, C208L01, Slide 15 Pipelining Principi del Pipelining Pipeline semplice Criticita strutturali (Structural Hazards) Criticita sui dati (Data Hazards) Criticita sul controllo (Control Hazards) Roberto Giorgi, Universita di Siena, C208L01, Slide 16
Principi del Pipelining T 1 2... n 1 2... n 1 2... n 1 2... n Sia T il tempo per eseguire un istruzione Senza pipelining pp Latenza = T Throughput seq = 1 / T Con una pipeline ideale a n stadi Latenza = T Throughput pipe = n / T Lo speedup ideale ottenibile da Speedup = Throughput pipe /Throughput seq = n una pipeline ideale a pari ad n. Roberto Giorgi, Universita di Siena, C208L01, Slide 17 Implementazione di una Pipeline Semplice Pipeline di base a 5 stadi F -- Instruction Fetch D -- Instruction Decode X -- Execution and Effective Address M -- Memory Access W -- Writeback Results latch latch latch latch latch latch F D X M W clock Roberto Giorgi, Universita di Siena, C208L01, Slide 18
Notazione F inst. fetch D inst. decode X execute M memory access W write back Pipeline a 5 stadi 1 2 3 4 5 6 7 8 9 i F D X M W i+1 F D X M W i+2 F D X M W i+3 F D X M W i+4 F D X M W Roberto Giorgi, Universita di Siena, C208L01, Slide 19 Criticita della Pipeline (Hazards) Condizioni che conducono ad un funzionamento non corretto se non vengono prese determinate contromisure Criticita strutturali (Structural Hazards) Due istruzioni vogliono usare la stessa risorsa hardware nello stesso ciclo (conflitto sulle risorse, es. mem.istruzioni e mem.dati) Criticita sui dati (Data Hazards) Due istruzioni usano uno stesso dato: cio deve avvenire nell ordine previsto dal programmatore anche se l esecuzione sovrappone fasi dell esecuzione di un istruzione (vedere RAW, WAW, W WAR) Criticita sul controllo (Control Hazards) Un istruzione determina irrevocabilmente quali istruzioni sono eseguite successivamente (branch, jump, call) Roberto Giorgi, Universita di Siena, C208L01, Slide 20
Criticita strutturali Due istruzioni vogliono usare la stessa risorsa hardware nello stesso ciclo Esempio: Una load/store usa la stessa memoria che viene usata dal fetch istruzioni i F D X M B <-- istruzione di load i+1 F D X M W i+2 F D X M W i+3 * F D X M W <-- i-fetch va in stallo i+4 F D X M... Roberto Giorgi, Universita di Siena, C208L01, Slide 21 Risoluzione delle criticita strutturali Stallo di una delle istruzioni coinvolte + Soluzione economica e semplice - Riduce le prestazioni - Usata per alcuni eventi rari Pipelin-izzare la risorsa Utile se possibile (es. risorse che richiedono piu cicli) + Buone prestazioni - In alcuni casi troppo complesso da fare (e.g. RAM) Replicare la risorsa + Buone prestazioni -Ha deicosti -e probabilmente introduce ritardi De-mux Mux - Usato per risorse poco costose (o indivisibili) Roberto Giorgi, Universita di Siena, C208L01, Slide 22
Linee guida per ridurre le criticita strutturali Le criticita strutturali sono ridotte se ogni istruzione usa una determinata risorsa: Al piu una volta - (es. Memoria istruzioni e memoria dati separate) Sempre nello stesso ciclo di pipeline - (es. I-Fetch nello stadio F, R/W nello stadio M) Per un solo ciclo - (es. Uso di memorie cache) Molti ISA di processori RISC sono stati ti progettati ti con questo in mente Roberto Giorgi, Universita di Siena, C208L01, Slide 23 Criticita sui dati Due istruzioni usano uno stesso dato: cio deve avvenire nell ordine previsto dal programmatore anche se l esecuzione sovrappone fasi dell esecuzione di un istruzione. Esempio: R1 <- R2 + R3 R2 <- R1 - R7 R1 <- R5 OR R6 Read-After-Write (RAW, true-dependence) Esiste un reale passaggio di un dato da un istruzione a un altra Write-After-Read (WAR, anti-dependence) Una dipendenza artificiosa che deriva da un cattivo assegnamento dei reg. Write-After-Write (WAW, output-dependence) d Una dipendenza artificiosa che deriva da un cattivo assegnamento dei reg. Read-After-Read (RAR) Non e una criticita Roberto Giorgi, Universita di Siena, C208L01, Slide 24
Semplice soluzione della criticita RAW L hardware rileva la criticita RAW, e poi... Genera uno stallo per permettere all istruzione i produttrice di finirei R1<-R2+R3 R2<-R1-R7 F D X M W F D X M W F * * D X M W (Si assume che i registri possano essere scritti nella prima meta del ciclo (W) e letti nella seconda meta del ciclo (D)) + Soluzione economica e semplice -Riducele prestazioni Roberto Giorgi, Universita di Siena, C208L01, Slide 25 Implementazione: Rete di controllo per gli stalli Lo stallo viene rilevato effettuando il seguente confronto if (RS1(D)==RD(X) RS1(D) == RD(M)) then STALL Analogamente per RS2 RD RD RS1 Stall Control stall Register file A B Execution unit D-Cache Roberto Giorgi, Universita di Siena, C208L01, Slide 26
Inserimento degli Stalli Rispetto alla istruzione di stallo e necessario Sugli stadi a monte: bloccare tutti i latch fra gli stadi Suglistadia valle: disattivare il valid bit in modo che la bolla possa proseguire nella pipeline senza fare danni HOLD all Flip-Flops clear valid bit V V detect hazardard Roberto Giorgi, Universita di Siena, C208L01, Slide 27 Riduzione degli stalli RAW Rete di Bypass/Forward/Short-Circuit IF ID EX ME WB bypasses Idea: usare i dati prima che siano scritti nei registri + Riduce (potenzialmente evita) gli stalli - Complessita aggiuntiva Roberto Giorgi, Universita di Siena, C208L01, Slide 28
Bypass Hardware aggiuntivo Multiplexer per selezionare il valore in ingresso alla ALU da Registri o dalla rete di Bypass Logica di rilevazione delle criticita (interlock) che controlla tali multiplexer Result latch bypass Register file bypass control operand latches MUX MUX Execution unit bypass control Roberto Giorgi, Universita di Siena, C208L01, Slide 29 Rete di controllo del Bypass Aggiungere dei latch per ricordarsi i registri RS1/RS2/RD ad ogni stadio (analogamente alla rete di controllo per gli stalli) Es. Sull ingresso A della ALU, tale rete agira cosi : if RS1(D)==RD(X) then select ALUOUT(X) else if RS1(D)==RD RD (M) then CACHEOUT(M) CHEOUT(M) else select (A) RD RD RS1 Bypass Control similmente sull ingresso B Result latch Register file A B MUX Execution unit D-Cache MUX Roberto Giorgi, Universita di Siena, C208L01, Slide 30
Interazione fra reti di controllo Stall/Bypass Azioni separate sulle reti di controllo di Stallo e di Bypass La logica di stallo e consapevole della presenza dei bypass La logica di bypass si attiva indipendentemente da ogni condizione di stallo load RD RD RS1 Stall Control Bypass Control Register file A B MUX Execution unit D-Cache MUX Roberto Giorgi, Universita di Siena, C208L01, Slide 31 Pipeline Scheduling Scheduling delle istruzioni a tempo di compilazione (riordinamento delle istruzioni per ridurre gli stalli): PRIMA: a= b + c; R1 <- mem(b) d = e - f; R2 <- mem(c) stall R3 <- R1 + R2 mem(a) <- R3 R4 <- mem(e) R5 <- mem(f) stall R6 <- R4 - R5 mem(d) <- R6 After: R1 <- mem(b) R2 <- mem(c) R4 <- mem(e) R3 <- R1 + R2 R5 <- mem(f) mem(a) <- R3 R6 <- R4 - R5 mem(d) <- R6 Roberto Giorgi, Universita di Siena, C208L01, Slide 32