Il processore Pentium

Documenti analoghi
Pipeline Problemi 1. Pipeline Problemi 2

CPU pipeline 4: le CPU moderne

Instruction Level Parallelism Andrea Gasparetto

Problemi del ciclo singolo

Prefazione Unit`a di misura xiii La memoria cache

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo

Trend di sviluppo delle pipeline

L'architettura del processore MIPS

Calcolatori Elettronici II parte (CdL Ingegneria Informatica) Esame del 22 settembre 2011 tempo a disposizione: 1 ora e 30 minuti

Sistemi e reti CPU Concetti di base

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

Il processore: unità di elaborazione

Architettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori

Università degli Studi di Cassino

Università degli Studi di Milano - Corso Architettura II Prof. Borghese Appello del

Richiami sull architettura del processore MIPS a 32 bit

CPU a ciclo multiplo

Cicli di clock e istruzioni

Cache: 1 livello della gerarchia di memoria

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore

Componenti principali

Richiami sull architettura del processore MIPS a 32 bit

CPU a ciclo multiplo

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

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

Miglioramento delle prestazioni

Architettura degli Elaboratori

Il pipelining: tecniche di base

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Componenti e connessioni. Capitolo 3

CPU pipeline hazards

L unità di controllo di CPU a singolo ciclo

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

CPU pipeline 4: le CPU moderne

Elementi di informatica

Il processore. Istituzionii di Informatica -- Rossano Gaeta

La gerarchia di memorie (2)

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

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Esercitazione su Instruction Level Parallelism

L unità di elaborazione pipeline L unità Pipelining

Assembly. Modello x86

Instruction Level Parallelism Salvatore Orlando

Instruction Level Parallelism

Indirettezza. Fetch/Execute. Fetch/Execute. Introduzione della Indirettezza (indirect)

CPU pipeline 4: le CPU moderne

Componenti di un processore

Architettura di una CPU

Assembler. In verde sono evidenziati i comandi del debug. Attiva la scrittura di istruzioni assembler nella locazione 0100.

ESERCIZIO 1. Sia dato il seguente ciclo di un programma in linguaggio ad alto livello:

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

Il pipelining: tecniche di base

Pipeline nel Mondo Reale

Calcolatori Elettronici

CALCOLATORI ELETTRONICI 15 luglio 2014

Scopo della lezione. Analizzare i tipi di macchine Indirizzamento e memorie Tipi di dato

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Il processore Pentium (G. Manduchi - M. Moro )

Esercitazione su Gerarchie di Memoria

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

Architettura degli elaboratori Tema d esame del 20/01/2016

ESERCIZIO 1 Si consideri la seguente funzione f (A, B, C, D) non completamente specificata definita attraverso il suo ON-SET e DC-SET:

Struttura delle memorie cache

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Struttura delle memorie cache

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 13 Luglio 2004

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)

CPU. Maurizio Palesi

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU:

Architettura dei sistemi di elaborazione: La CPU: Architettura (parte1)

Le memorie Cache n-associative

Capitolo 2: Strutture dei sistemi di calcolo

ARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088

Il Sottosistema di Memoria

Come aumentare le prestazioni Cenni alle architetture avanzate

Progetto del processore e supporto del processore al SO (interruzioni eccezioni) Salvatore Orlando

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi

Caching Andrea Gasparetto

Aumentare il parallelismo a livello di istruzione (2)

Gli attori principali di un architettura

Architettura hardware

Von Neumann Bottleneck

Esercitazione del 12/05/ Soluzioni

Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore:

HARDWARE 1.4a: (Processore)

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

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)

Corso di Alfabetizzazione Informatica 2001/2002. La CPU. F. Tortorella Università degli Studi. di Cassino

Esercitazione su Gerarchie di Memoria

Elettronica per l informatica. Cosa c è nell unità A. Unità A: Bus di comunicazione. A.1 Architetture di interconnessione A.2 Esempi commerciali

Il Sottosistema di Memoria

La memoria cache. Lab di Calcolatori

La CPU a singolo ciclo

ARCHITETTURA DI UN ELABORATORE

Comparazione fra vari processori

Calcolatori Elettronici T. ISA DLX: Implementazione Tramite Struttura Pipelined

Capitolo 5 Struttura di base del processore

Il linguaggio macchina

Transcript:

Caratteristiche principali (I) Architettura interna a 32 bit Address bus a 32 bit: si possono indirizzare fino a 4 GB di memoria fisica Data bus a 64 bit (si tratta in pratica di 2 data bus a 32 bit in parallelo). Con cicli di bus pipelined in burst-mode, si arriva ad un transfer rate di 528 MB/s (ipotizzando di avere un clock di 66 MHz) Address bus e data bus hanno un parity bit per ogni byte 2

Caratteristiche principali (II) Architettura superscalare: vi sono due pipeline intere ed una floating point Unità floating point integrata On-chip cache da 16 KB: 8 KB per il codice e 8 KB per i dati Supporto per la cache di secondo livello Totale compatibilità software con i precedenti processori della famiglia x86, pur avendo un set di istruzioni più ampio 3

Caratteristiche principali (III) Il Pentium è stato progettato con tecniche RISC: molte istruzioni sono eseguite in un solo colpo di clock Supporto per l ambiente multiprocessore Clock da 60 MHz a 166 MHz Fino a 200 MIPS

Architettura Code Cache Branch Prediction 64 bit 256 bit 64 bit Bus Interface U pipe Prefetch Buffers Integer ALU Integer ALU V pipe 64 bit Pipelined Floating Point Unit 64 bit 32 bit 32 bit Register Set Data Cache Multiplier Adder Divider 6

Pipeline Il Pentium, come il 486, esegue le istruzioni mediante una pipeline composta da 5 stadi: Prefetch, Decode1, Decode2, Execute e Write Back Rispetto al 486, il Pentium integra hardware aggiuntivo, in modo da aumentare la velocità di esecuzione Di conseguenza, vengono eseguite in un solo colpo di clock molte istruzioni che nel 486 ne richiedono 2. Ne sono un esempio le istruzioni con un displacement ed un dato immediato e le istruzioni con indirizzamento indicizzato 7

Prefetch (PF) E la fase in cui la CPU esegue il prefetch delle istruzioni dalla code cache, inserendole nel Prefetch Buffer attivo E presente una coppia di buffer da 32 byte ciascuno, dei quali uno solo è attivo ed esegue il fetch delle istruzioni in modo sequenziale Nel caso in cui compaia nel buffer un istruzione di salto, se il BTB (Branch Target Buffer) predice che il salto verrà eseguito, diviene attivo l altro buffer, nel quale vengono caricate le istruzioni a partire dal punto a cui punta il salto 8

Decode1 (D1) E la fase in cui la CPU effettua una prima decodifica delle istruzioni, generando una control word In questo stadio inizia e finisce la decodifica delle istruzioni semplici Le istruzioni più complesse, invece, richiedono una sequenza di controllo di microcodice 9

Decode2 (D2) In questa fase prosegue l operazione di decodifica delle istruzioni complesse iniziata nello stadio precedente (D1) Questa fase non viene quindi eseguita nel caso in cui si abbia un istruzione semplice In questo stadio viene inoltre generato l indirizzo nel caso in cui si debba accedere a dati presenti in memoria 10

Execute (EX) E la fase in cui la CPU accede alla data cache o svolge i calcoli nella ALU o in un altra unità funzionale presente nel data path In questo stadio vengono eseguiti sia i calcoli nella ALU sia l accesso alla cache: di conseguenza, un istruzione che debba effettuare entrambe le operazioni richiede più di un ciclo di clock Nello stadio EX vengono verificate le predizioni riguardanti i salti su condizione eseguiti nella U pipe 11

Write Back (WB) E la fase in cui la CPU aggiorna i registri ed i flag in base ai risultati ottenuti nello stadio precedente (EX) Tutte le condizioni che possono generare un eccezione devono essere risolte prima che l istruzione arrivi a questo stadio In questo stadio vengono verificate le predizioni riguardanti i salti su condizione eseguiti nella V pipe 12

Esecuzione superscalare (I) L organizzazione superscalare (ossia la presenza di 2 pipe intere) del Pentium consente l esecuzione contemporanea di 2 istruzioni, secondo il seguente algoritmo: 13

Algoritmo Decodifica 2 istruzioni successive I1 e I2; if (I1 è semplice && I2 è semplice && I1 non è un salto && (Destinazione di I1!= Sorgente di I2) && (Destinazione di I1!= Destinazione di I2)) Invia I1 alla U pipe e I2 alla V pipe; else Invia I1 alla U pipe;

Esecuzione superscalare (II) Le istruzioni eseguite in parallelo devono procedere di pari passo nelle 2 pipeline: di conseguenza, se una delle due provoca uno stallo, si ferma anche l altra In particolare, le 2 istruzioni devono entrare ed uscire contemporaneamente dagli stadi D1 e D2 Nella fase EX, se si blocca la U pipe, si ferma anche la V pipe. Se invece si blocca la V pipe, la U pipe continua l esecuzione, ma nessun altra istruzione vi può entrare fintanto che la V pipe non sia uscita dalla situazione di stallo 14

Istruzioni semplici Le istruzioni semplici sono quelle che non richiedono una sequenza di microcodice per essere eseguite e che, quindi, richiedono un solo colpo di clock. Esse sono: operazioni ALU reg, reg/mem/imm MOV, INC, DEC, PUSH, POP, LEA e NOP salti, salti su condizione e CALL di tipo near 15

Istruzioni semplici (2) Le istruzioni ALU mem, reg (es.: ADD [BX], CX) sono considerate semplici anche se vengono eseguite in 2 colpi di clock. Un istruzione semplice (single-cycle) non può essere eseguita in parallelo ad una complessa (multiple-cycle).

Dipendenza dalle risorse Si ha una dipendenza dalle risorse quando 2 istruzioni richiedono l utilizzo della stessa unità del data path Nel Pentium, questo tipo di dipendenza è fortemente ridotto, poiché le istruzioni eseguite in parallelo sono semplici Le istruzioni eseguite dalla V pipe sono le operazioni ALU, i riferimenti in memoria e i salti Le istruzioni eseguite dalla U pipe sono le stesse della V pipe, più altre che utilizzano unità 16 funzionali presenti unicamente nella U pipe stessa

Dipendenza dai dati Si ha una dipendenza dai dati quando un istruzione scrive un risultato che viene letto o scritto da un altra istruzione La logica presente nello stadio D1 permette di risolvere i conflitti di tipo RAW (Read After Write) e WAW (Write After Write) Una logica opportuna consente di risolvere alcuni tipi di dipendenze dai dati. Ad esempio, un salto condizionale che effettui un test sul valore di un flag può essere eseguito in parallelo ad un istruzione che modifichi lo stesso flag (il salto viene eseguito nella V pipe) 17

Dipendenza dal controllo Si ha una dipendenza dal controllo quando l esecuzione di un istruzione è determinata dal risultato dell istruzione precedente Le dipendenze di questo tipo sono eliminate nello stadio D1, evitando di inviare un istruzione alla V pipe nel caso in cui la U pipe stia eseguendo un istruzione di salto 18

Branch Prediction (I) La pipeline offre le migliori prestazioni nel caso in cui non si abbiano né istruzioni di salto su condizione né interrupt, dato che in tale caso si può continuare a fare il fetch delle istruzioni in modo continuo I salti su condizione comportano un overhead nel caso in cui il processore sbagli nel prevedere che un certo salto venga eseguito o meno 19

Branch Prediction (II) Il Pentium effettua una predizione dinamica del fatto che un salto venga eseguito o meno. In pratica, il Pentium realizza un profiling dei programmi in esecuzione, utilizzando il BTB (Branch Target Buffer) per mantenere traccia della destinazione dei salti eseguiti in precedenza Il BTB è una memoria associativa di 1 KB con 256 entry, ognuna delle quali contiene un branch target address e 2 bit di history. Il tag è costituito dall indirizzo dell istruzione di salto Il BTB garantisce un efficienza dell 80% nelle predizioni 20

Floating Point Unit (I) Il Pentium è dotato di una Floating Point Unit con una struttura a pipeline I dati sono rappresentati internamente secondo un formato speciale su 80 bit Le istruzioni f. p. sono eseguite con un throughput di un istruzione/colpo di clock, purché: non si abbiano dipendenze dai dati si abbia cache hit nella code cache e nella data cache 21

Floating Point Unit (II) Le istruzioni f.p. sono eseguite nella U pipe e, in generale, non possono essere eseguite in parallelo ad un altra istruzione f.p. o intera Esiste un unica eccezione a questa regola: l istruzione FXCH (che scambia il contenuto del Top Of Stack con quello di un altro registro f.p.) può essere eseguita nella V pipe contemporaneamente ad un altra istruzione f.p. nella U pipe 22

Floating Point Unit (III) Il set di istruzioni f.p. prevede un operando a 64 bit in memoria e l altro nel register file floating point Le 2 porte della data cache, normalmente usate dalla U pipe e dalla V pipe, sono utilizzate in parallelo per leggere un dato a 64 bit in un solo colpo di clock Questa pipeline si articola in 8 stadi: Prefetch (PF), Decode1 (D1), Decode2 (D2), Operand Fetch (EX), Execute1 (X1), Execute2 (X2), Write Float (WF) e Error Reporting (ER) 23

Floating Point Unit (IV) Durante l esecuzione di un istruzione f.p., il Pentium può generare diverse eccezioni: invalid operation, divide by zero, denormalized operand, overflow, underflow, inexact (che si ha quando è richiesto un arrotondamento) E indispensabile garantire che le eccezioni vengano notificate in modo corretto: per tale motivo, un istruzione non può procedere oltre lo stadio X1 (bloccando pertanto l istruzione precedente allo stadio EX), finché non si è sicuri che non genererà eccezioni 25

Floating Point Unit (V) Se così non fosse, un istruzione potrebbe modificare lo stato della CPU mentre quella precedente genera una trap per il gestore software delle eccezioni Le istruzioni f.p. sono quindi suddivise in 2 categorie: safe: istruzioni che certamente non generano eccezioni unsafe: istruzioni che possono generare un eccezione Il Pentium usa la logica di Safe Instruction Recognition per decidere se un istruzione sia safe oppure no, prima dello stadio X1 26

Floating Point Unit (VI) Se la logica SIR decide che l istruzione è unsafe, la pipeline ha uno stallo di 3 colpi di clock, in modo tale da permettere all istruzione stessa di raggiungere lo stadio ER e di generare l eventuale eccezione, evitando così che le istruzioni successive modifichino lo stato del processore

Cache (I) Il Pentium ha una on-chip cache di 16 KB, suddivisa in modo da avere 8 KB per il codice e 8 KB per i dati, secondo l architettura Harvard Entrambe le cache sono 2-way associative Ogni via consta di 128 set di dimensione pari a 32 byte, che vengono caricati effettuando 4 letture in memoria in burst mode (l aggiornamento avviene in modalità LRU) 27

Cache (II) La data cache supporta completamente il protocollo MESI (Modified Exclusive Shared Invalid), mentre la code cache lo supporta solo parzialmente (protocollo SI). Pertanto, ogni entry nella data cache ha 2 bit di stato, mentre le entry nella code cache ne hanno solo uno I tag della data cache sono a tripla porta per consentire alle due ALU di accedere ai dati contemporaneamente, mentre la terza porta è usata ai fini del bus snooping in ambiente multimaster 28

Cache (III) La linea di dato è invece a singola porta ed è divisa in 8 banchi da 4 byte ciascuno: di conseguenza, si ha l accesso simultaneo ai dati soltanto se essi sono contenuti in banchi differenti In caso di accesso simultaneo al medesimo banco, la U pipe assume priorità più elevata ed accede ai dati, mentre la V pipe è costretta a fermarsi Anche i tag della code cache sono a tripla porta: la terza, come prima, è usata per il bus snooping 29

Cache (IV) 2 porte consentono l accesso simultaneo alla metà inferiore ed a quella superiore della linea Il bus di uscita dalla code cache consente di riempire in un singolo ciclo uno dei due Prefetch Buffer (256 bit) La cache del Pentium può essere gestita, oltre che in modalità write-through, anche in modalità writeback (la modalità write-back è disponibile a partire dal Write Back Enhanced 486DX2)