CPU pipeline 4: le CPU moderne

Documenti analoghi
CPU pipeline 4: le CPU moderne

CPU pipeline 4: le CPU moderne

Esercizi su Microarchitetture. Università Roma Tre

Tecniche di parallelismo, processori RISC

Trend di sviluppo delle pipeline

Aumentare il parallelismo a livello di istruzione (2)

Fasi (MIPS) Dove NPC è un registro temporaneo PC (program counter) è il registro IP (instruction pointer)

Laboratorio di Architettura degli Elaboratori

Esercitazione su Instruction Level Parallelism

Cicli di clock e istruzioni

Lezione4: MIPS e Istruzioni (1 Parte)

Lecture 2: Prime Istruzioni

Richiami sull architettura del processore MIPS a 32 bit

Architettura dei calcolatori I parte Introduzione, CPU

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione:

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Aumentare il parallelismo a livello di istruzione (1)

Calcolatori Elettronici

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H

INCREMENTO DELLE PRESTAZIONI DI UN PROCESSORE

Concetti di base del PIPELINING. L architettura MIPS pipelined. L architettura MIPS pipelined

Implementazione semplificata

Parte V. Architettura della CPU

Architettura degli elaboratori Docente:

Analisi ed Esplorazione della Potenza Dissipata e delle Prestazio. delle Prestazioni di una Architettura Superscalare

Calcolatori Elettronici

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Caratteristiche di un PC

Architettura dei computer

Parte IV Architettura della CPU Central Processing Unit

Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf

LA MEMORIA NEL CALCOLATORE

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

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

FALSO FALSO VERO FALSO VERO VERO VERO VERO

Università degli Studi di Cassino e del Lazio Meridionale

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

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

Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010

Il Modello di von Neumann (2) Prevede 3 entità logiche:

Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011

Calcolatori Elettronici

L architettura di riferimento

Elementi di base del calcolatore

Architetture CISC e RISC

CALCOLATORI ELETTRONICI

Metodi Software per ottenere ILP

CPU. Maurizio Palesi

Microarchitettura dei processori per Pc

Sistemi superscalari. Contenuto della lezione. Unità multifunzionali parallele Architetture superscalari Esecuzione fuori ordine

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA

Esempio: aggiungere j

Organizzata secondo il modello della macchina di von Neumann definita nei tardi anni 40 all Institute for Advanced Study di Princeton.

Architetture CISC e RISC. Misura della potenza di calcolo. Cos'è la potenza di calcolo. Prestazioni della CPU. Fondamenti di Informatica

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel

Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per:

Lezione n.19 Processori RISC e CISC

Architettura del Calcolatore. Danilo Ardagna Politecnico di Milano

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

Parte IV Architettura della CPU

DEFINIZIONE. particolare l'unità di elaborazione centrale è una tipologia di

La gestione dell I/O (Cap. 5, Tanenbaum)

Computer e Programmazione

Fondamenti di informatica: un po di storia

Memoria Secondaria o di Massa

Sistemi a microprocessore

La memoria principale

Hazard sul controllo. Sommario

Procedura operativa per la gestione della funzione di formazione classi prime

Evoluzione dei Sistemi. Prof. Giuseppe Pirlo Dipartimento di Informatica Università degli Studi di Bari

Il Processore: i registri

Calcolatori Elettronici Parte VI: Microarchitetture, Cache e Pipeline

ARCHITETTURA DI UN ELABORATORE. Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).

Calcolatori Elettronici

La memoria: tecnologie di memorizzazione

Sistemi operativi e distribuiti

Lezione 1: L hardware

Linguaggi di alto livello, compilatori e interpreti

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

Elementi base per la realizzazione dell unità di calcolo

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

Il Sottosistema di Memoria

INTRODUZIONE desktops.

Fondamenti VBA. Che cos è VBA

CERTIFICATI CON TIMBRO DIGITALE MANUALE D USO DEL DECODER 2D-PLUS PER LA VERIFICA DEI CERTIFICATI RILASCIATI DAL COMUNE DI PARMA

Note_Batch_Application 04/02/2011

Parte I Scheduling. 1 Scheduling dei blocchi basici. 1.1 Impedire gli stalli della pipeline. 1.2 Attesa nei salti condizionati (branch delay)

Personal Computer: introduzione

Bit, Byte, Word e Codifica Dati

Struttura del calcolatore

Compilazione on-line del Piano di Studio

Memoria cache, interrupt e DMA

La memoria: tecnologie di memorizzazione

EXCEL: FORMATTAZIONE E FORMULE

Transcript:

Architettura degli Elaboratori e delle Reti Lezione 25 CPU pipeline 4: le CPU moderne Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 25 1/16 Pipeline più spinte! Superpipelining: pipelines più lunghe! Architettura Superscalare (statica/dinamica): più di una istruzione viene iniziata nello stesso ciclo di pipeline " Scheduling statico: parallelismo definito a priori dal programmatore o dal compilatore (IA-64) " Scheduling dinamico: parallelismo deciso automaticamente dalla CPU. L hardware cerca di individuare le istruzioni pronte per essere eseguite (MIPS, Pentium 4)! è possibile l esecuzione in ordine diverso da quello dato.! è possibile avere un unica istruzione per più dati: architettura SIMD: Single Instruction Multiple Data Esempio: Intel Pentium IV: tempi medi di esecuzione della ALU sono metà del periodo di clock fino a 126 istruzioni contemporanee L 25 2/16

Superpipeline! Pipelines più lunghe: teoricamente guadagno in velocità proporzionale al n. di stadi Es: Digital DEC Alpha: 5-7 stadi, Intel/AMD: oltre 20 stadi! Problemi: " Criticità sui dati: stalli più frequenti. " Criticità sul controllo: numero maggiore di stadi di cui annullare l esecuzione. " Maggior numero di registri # maggiori dimensioni chip # il clock non si riduce con il numero degli stadi L 25 3/16 Schedulazione statica: IA-64! Scheduling statico: parallelismo definito a priori dall utente (programmatore / compilatore)! IA-64: Instruction-level parallelism (ILP) implementato esplicitamente " EPIC: Explicitly Parallel Instruction Computer! Le istruzioni sono raggruppate in bundles eseguiti in parallelo " 128 registri accedibili a finestre (in parallelo) " Istruzione: 128 bit = 5 bit: template field + 3 x 41 bit: 3 istruzioni in parallelo! Predication: trasformazione di branch in predicati: If (p) then (statement 1) else (statement 2) " (p) # statement 1 # statements 1 e 2 possono (~p) # statement 2 # essere parallelizzati! L 25 4/16

Pipeline Superscalari: MIPS MIPS R2000: pipeline classica R3000: " Register File a doppia banda (4 porte di lettura, 2 porte di scrittura) " 2 ALU: general purpose, base+offset R8000: pipeline superscalare " Replicate le unità funzionali per eseguire più istruzioni in parallelo " Ottengo più di 1 istruzione per ciclo di clock: N > 1 instr. / CC L 25 5/16 Schedulazione dinamica: Schedulazione Dinamica:! Fetch: Prelievo ed invio alla coda istruzioni! Decodifica: Conversione in microistruzioni " Valutazione criticità (branch)! Esecuzione: Le istruzioni vengono alla stazione di prenotazione corrispondente all unità funzionale richiesta (smistamento) " Un riferimento all istruzione viene inserito nel buffer di riordino. " Esecuzione vera e propria (calcolo) " Eventuali criticità portano a far attendere alcune istruzioni! Commit Unit: Riordino istruzioni in modo che terminino in modo sequenziale " Può fornire in uscita più itruzioni in un ciclo di clock. " Commit Unit tiene traccia di tutte le istruzioni pendenti. L 25 6/16

Pipeline con schedulazione dinamica! Esistono cammini paralleli per le diverse fasi dell istruzione (Exec/Mem)! Durante lo stallo eseguo istruzioni successive # supero gli stalli L 25 7/16 Pipeline: processori INTEL! Esecuzione speculativa (Intel 80x86 dal Pentium) " scheduling dinamico " predizione dei salti! Dal Pentium 4: " architettura super-scalare " super-pipeline L 25 8/16

Scheduling dinamico: PentiumPro IF ID Exec WB L 25 9/16 Pipeline PentiumPro: funzionamento! Fetch: Prelievo di 16 byte dalla MI ed invio alla coda istruzioni! Decodifica: Conversione in microistruzioni di lunghezza fisssa: 72 bit " In questa fase vengono valutate le branch (su un certo numero di istruzioni) attraverso una Branch Prediction Table di 512 elementi " Recupero operandi ed assegnazione registri replicati (rename buffer)! Esecuzione: Le istruzioni vengono alla stazione di prenotazione corrispondente all unità funzionale richiesta (smistamento) " Un riferimento all istruzione viene inserito nel buffer di riordino. " Esecuzione vera e propria (calcolo)! Riconsegna: Riordino istruzioni in modo che terminino in modo sequenziale " L unità di consegna tiene traccia di tutte le istruzioni pendenti all'interno del buffer di riordino. " Può fornire in uscita più istruzioni in un ciclo di clock. L 25 10/16

Esecuzione dell istruzione! Per considerare un istruzione serve spazio nel Buffer di riordino e nella stazione di prenotazione della pipeline richiesta! La CPU contiene registri duplicati " con più istruzioni in esecuzione, il registro destinazione potrebbe essere occupato # scrivo su un registro ausiliario: rename registers/buffers " In attesa che l unità di consegna dia il permesso di scrivere i registri effettivi! L'istruzione viene eseguita quando: " nella stazione di prenotazione ci sono tutti gli operandi, " l unità funzionale è libera.! L unità di consegna decide quando l istruzione è terminata " Se la predizione di un salto è scorretta, vengono scartate le istruzioni sbagliate dalle stazioni di prenotazione e dai buffer di riordino e liberati i registri interni L 25 11/16 Pipeline del Pentium 4! Fetch delle istruzioni della Memoria (Cache)! Decodifica: Ciascuna istruzione viene tradotta in una o più microistruzioni di lunghezza fissa (RISC)! Il processore esegue le micro-istruzioni in una pipeline superscalare a schedulazione dinamica! Il processore restituisce ai registri il risultato dell esecuzione delle micro-istruzioni relative alla stessa istruzione " rispettando l ordine di esecuzione delle microistruzioni Il Pentium 4 trasforma un ISA CISC in un ISA interno RISC costituito dalle micro-operazioni L 25 12/16

LA CPU del Pentium 4 Front End Trace cache Scheduling Execution Fig. 14.7 Stallings L 25 13/16 Pipeline del Pentium 4: Front end! Le istruzioni passano dalla cache primaria al buffer L2 (64 byte). " Qui vengono gestiti casi di missing ed i trasferimenti da cache! In parallelo i dati vengono caricati da cache al buffer dati L1 " Nel trasferimento da L1 ed L2 agiscono Branch Target Buffer e lookaside buffer che gestiscono le predizioni sulle branch! Inizia la fase Fetch e Decodifica che legge il numero di byte pari alla lunghezza dell istruzione! Il decoder traduce l istruzione in micro-operazioni (da 1 a 4): " Microistruzione: 118 bit, appartenenti ad un ISA RISC. L 25 14/16

Pipeline del Pentium 4: Trace cache Trace cache: riorganizzazione delle istruzioni in decodifica, per ottimizzare il flusso di esecuzione! Funzioni svolte: " Riordino locale del codice, in modo da minimizzare le criticità! la pipeline ha 20 stadi. " Invio alla fase di esecuzione (Allocate e Renaming). " Istruzioni complesse (> 4 microistruzioni) vengono create in questa fase con una macchina a stati finiti! Implementata con una ROM + memoria L 25 15/16 Pipeline del Pentium 4: Esecuzione! Elemento centrale è il Reorder Buffer o Scheduler " È un buffer circolare può contenere fino a 126 micro-istruzioni " Contiene le micro-istruzioni con il loro stato, la presenza o assenza dei dati, per tutta la durata dell esecuzione. " Alloca i registri (traducendo i registri simbolici dell Assembly in uno dei 128 registri di pipeline). " Avvia alla coda di esecuzione l istruzione (coda per le lw/sw e coda per le altre istruzioni). " Lo scheduling avviene prendendo la prima istruzione che può essere eseguita nella coda. Dagli scheduler si può passare alle ALU in modi diversi.! La fase di esecuzione scrive poi i risultati nei registri o nella cache L1! C è una parte dedicata ai flag che vengono poi inviati alla BTB per predirre correttamente i salti. L 25 16/16