Calcolatori Elettronici 2



Documenti analoghi
CPU. Maurizio Palesi

La macchina di Von Neumann. Archite(ura di un calcolatore. L unità di elaborazione (CPU) Sequenza di le(ura. Il bus di sistema

Architettura del calcolatore

Calcolatori Elettronici A a.a. 2008/2009

CPU pipeline 4: le CPU moderne

Calcolatori Elettronici

L unità di elaborazione pipeline L unità Pipelining

Parte IV Architettura della CPU Central Processing Unit

Calcolatori Elettronici

In realtà, non un solo microprocessore, ma un intera famiglia, dalle CPU più semplici con una sola pipeline a CPU molto complesse per applicazioni ad

MODELLO DLX IN UNISIM

Struttura del calcolatore

Informatica di base. Hardware: CPU SCHEDA MADRE. Informatica Hardware di un PC Prof. Corrado Lai

CALCOLATORI ELETTRONICI 29 giugno 2011

L architettura di riferimento

La macchina programmata Instruction Set Architecture (1)

1.4a: Hardware (Processore)

CALCOLATORI ELETTRONICI 31 marzo 2015

Fondamenti di informatica: un po di storia

STRUTTURE DEI SISTEMI DI CALCOLO

Tecniche di parallelismo, processori RISC

Architettura hardware

Architettura dei calcolatori I parte Introduzione, CPU

Metodi Software per ottenere ILP

Hardware di un Computer

Lezione n.19 Processori RISC e CISC

Università degli Studi di Cassino e del Lazio Meridionale

Esempio: aggiungere j

CALCOLATORI ELETTRONICI

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Calcolatori Elettronici

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Schedulazione dinamica. Elettronica dei Calcolatori 1

Hazard sul controllo. Sommario

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

CPU pipeline 4: le CPU moderne

CALCOLATORI ELETTRONICI 29 giugno 2010

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Esame di INFORMATICA

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

La memoria centrale (RAM)

Dispensa di Informatica I.1

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Laboratorio di Informatica

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Architettura di tipo registro-registro (load/store)

Lezione 3: Architettura del calcolatore

Introduzione all'architettura dei Calcolatori

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Architettura dei Calcolatori

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

C. P. U. MEMORIA CENTRALE

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Elettronica dei Sistemi Programmabili

Architettura dei computer

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Aumentare il parallelismo a livello di istruzione (2)

CALCOLATORI ELETTRONICI A cura di Luca Orrù

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Calcolatori Elettronici L-A

Architetture CISC e RISC

L architettura del calcolatore (Prima parte)

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Vari tipi di computer

L HARDWARE parte 1 ICTECFOP@GMAIL.COM

Livello logico digitale. bus e memorie

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

CALCOLATORI ELETTRONICI 15 aprile 2014

Esercitazione sulle CPU pipeline

Il microprocessore 8086

Laboratorio di Ingegneria del software Sistema di controllo di un ascensore Requisisti preliminari

Informatica per la Storia dell Arte. Anno Accademico 2014/2015

Corso di Sistemi di Elaborazione A.A. 2008/2009

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

Sistema operativo: Gestione della memoria

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Informatica - A.A. 2010/11

Architettura di un calcolatore

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

INCREMENTO DELLE PRESTAZIONI DI UN PROCESSORE

8 Microcontrollori PIC

Componenti di base di un computer

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

DMA Accesso Diretto alla Memoria

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Migliorare le prestazioni di processori e memorie

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

ARCHITETTURA DELL ELABORATORE

CPU chips e bus. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico pagina 1

Centro Iniziative Sociali Municipio III

introduzione I MICROCONTROLLORI

Architettura di un sistema di calcolo

Ottimizzazioni 1 Corso di sviluppo Nvidia CUDATM. Davide Barbieri

Transcript:

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