corso di sistemi ad elevate prestazioni – prof. nicola mazzocca

10
Università degli Studi di Napoli “Federico II” Università degli Studi di Napoli “Federico II” Facoltà di Ingegneria Facoltà di Ingegneria Dipartimento di Informatica e Sistemistica Dipartimento di Informatica e Sistemistica Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca Sistemi ad elevate Sistemi ad elevate prestazioni prestazioni Lezione 4 Lezione 4

Upload: axel-mclaughlin

Post on 02-Jan-2016

28 views

Category:

Documents


1 download

DESCRIPTION

Università degli Studi di Napoli “Federico II” Facoltà di Ingegneria Dipartimento di Informatica e Sistemistica. Sistemi ad elevate prestazioni Lezione 4. Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca. Due pipe disgiunte. Due pipe non disgiunte. Architetture Superscalari. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca

Università degli Studi di Napoli “Federico II”Università degli Studi di Napoli “Federico II”Facoltà di IngegneriaFacoltà di Ingegneria

Dipartimento di Informatica e SistemisticaDipartimento di Informatica e Sistemistica

Corso di Sistemi ad elevate prestazioni – Prof. Nicola MazzoccaCorso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca

Sistemi ad elevate prestazioniSistemi ad elevate prestazioniLezione 4Lezione 4

Page 2: Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca

Sistemi ad elevate prestazioni - PrSistemi ad elevate prestazioni - Prof. re Nicola Mazzoccaof. re Nicola Mazzocca

Architetture Superscalari Architetture Superscalari

L’utilizzo delle pipe porta dei vantaggi L’utilizzo delle pipe porta dei vantaggi non in termini di attraversamento di non in termini di attraversamento di una istruzione, che rimane invariato, una istruzione, che rimane invariato, ma in termini di produttività.ma in termini di produttività.

Per ottenere ancora prestazioni Per ottenere ancora prestazioni migliori, allora, si può pensare di migliori, allora, si può pensare di realizzare un architettura che presenti realizzare un architettura che presenti più pipe che eseguono diverse più pipe che eseguono diverse istruzioni in parallelo, così da istruzioni in parallelo, così da aumentare la produttività del sistema, aumentare la produttività del sistema, tale tipo di tale tipo di architetturaarchitettura viene viene chiamata chiamata SuperscalareSuperscalare

Due pipe disgiunte

Due pipe non disgiunte.

Page 3: Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca

Sistemi ad elevate prestazioni - PrSistemi ad elevate prestazioni - Prof. re Nicola Mazzoccaof. re Nicola Mazzocca

Principali problematichePrincipali problematiche Le pipe devono condividere un unico accesso alla Le pipe devono condividere un unico accesso alla

memoria comune per il prelievo delle istruzioni. memoria comune per il prelievo delle istruzioni. Se le pipe non sono del tutto separate ma Se le pipe non sono del tutto separate ma

condividono alcune delle stazioni nascono anche condividono alcune delle stazioni nascono anche dei problemi di conflitto tra le pipe nell’utilizzo delle dei problemi di conflitto tra le pipe nell’utilizzo delle unità funzionali condiviseunità funzionali condivise

Un esempio di processore superscalare è il Un esempio di processore superscalare è il Pentium, tale processore è stato uno dei primi Pentium, tale processore è stato uno dei primi esempi con più pipe, infatti ne aveva già 2 (U e V), esempi con più pipe, infatti ne aveva già 2 (U e V), le quali però non erano usate in modo efficiente, le quali però non erano usate in modo efficiente, poiché una era utilizzata sempre (pipe principale), poiché una era utilizzata sempre (pipe principale), l’altra solo se si era sicuri che non provocasse delle l’altra solo se si era sicuri che non provocasse delle collisioni collisioni

Page 4: Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca

Sistemi ad elevate prestazioni - PrSistemi ad elevate prestazioni - Prof. re Nicola Mazzoccaof. re Nicola Mazzocca

Collisioni nei Sistemi Collisioni nei Sistemi Superscalari con più Pipeline Superscalari con più Pipeline

(1)(1) Supponiamo di avere un processore Supponiamo di avere un processore

che realizza l’operazione di addizione che realizza l’operazione di addizione e di moltiplicazione floating-point.e di moltiplicazione floating-point.

Addizione

Moltiplicazione

Page 5: Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca

Sistemi ad elevate prestazioni - PrSistemi ad elevate prestazioni - Prof. re Nicola Mazzoccaof. re Nicola Mazzocca

Collisioni nei Sistemi Collisioni nei Sistemi Superscalari con più Pipeline Superscalari con più Pipeline

(2)(2)

7 stadi per la moltiplic.

9 stadi per

l’addiz.

Page 6: Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca

Sistemi ad elevate prestazioni - PrSistemi ad elevate prestazioni - Prof. re Nicola Mazzoccaof. re Nicola Mazzocca

Collisioni nei Sistemi Collisioni nei Sistemi Superscalari con più Pipeline Superscalari con più Pipeline

(3)(3) Ad esempio se parte la moltiplicazione X e un istante dopo Ad esempio se parte la moltiplicazione X e un istante dopo anche la moltiplicazione Y, si hanno due sovrapposizioni anche la moltiplicazione Y, si hanno due sovrapposizioni (caselle XY dello schema seguente. Abbiamo ovviamente (caselle XY dello schema seguente. Abbiamo ovviamente sovrapposto le griglie delle due moltiplicazioni). sovrapposto le griglie delle due moltiplicazioni).

Sovrapponendo Sovrapponendo le maschere le maschere costruisco il costruisco il vettore delle vettore delle collisioni che collisioni che può essere può essere usato dal usato dal compilatorecompilatore

Page 7: Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca

Sistemi ad elevate prestazioni - PrSistemi ad elevate prestazioni - Prof. re Nicola Mazzoccaof. re Nicola Mazzocca

Vettore delle Collisioni (1)Vettore delle Collisioni (1) È da notare che non vale la proprietà È da notare che non vale la proprietà

commutativa: mettendo prima la moltiplicazione commutativa: mettendo prima la moltiplicazione e poi l’addizione, non si verificano mai conflitti. e poi l’addizione, non si verificano mai conflitti.

Quindi un altro modo per evitare conflitti è Quindi un altro modo per evitare conflitti è invertire le due operazioni in tale ordine, se invertire le due operazioni in tale ordine, se possibile.possibile.

OccorreOccorre determinare determinare tutti glitutti gli altri collision vector: altri collision vector: esempio esempio quello di un’addizione seguita da quello di un’addizione seguita da un’addizione, e quello della moltiplicazione un’addizione, e quello della moltiplicazione seguita da una moltiplicazione. seguita da una moltiplicazione.

Se per ipotesi avessimo 8 operazioni floating Se per ipotesi avessimo 8 operazioni floating point effettuabili in hardware, dovremmo point effettuabili in hardware, dovremmo realizzare ben 64 collision vector. Il compito del realizzare ben 64 collision vector. Il compito del compilatore diviene sempre più difficile.compilatore diviene sempre più difficile.

Page 8: Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca

Sistemi ad elevate prestazioni - PrSistemi ad elevate prestazioni - Prof. re Nicola Mazzoccaof. re Nicola Mazzocca

Vettore delle Collisioni (2)Vettore delle Collisioni (2) Supponiamo di dover eseguire una sequenza Supponiamo di dover eseguire una sequenza

di istruzioni: di istruzioni: add mol mol add add mol…add mol mol add add mol…

occorroccorree il vettore di collisione addizione- il vettore di collisione addizione-moltiplicazione e poi quello moltiplicazione-moltiplicazione e poi quello moltiplicazione-moltiplicazione. moltiplicazione.

AdessoAdesso bisogna inserire la seconda bisogna inserire la seconda moltiplicazione tenendo conto di eventuali moltiplicazione tenendo conto di eventuali conflitti non solo con la precedente conflitti non solo con la precedente moltiplicazione, ma anche con l’addizione che moltiplicazione, ma anche con l’addizione che viene subito prima!viene subito prima!

Page 9: Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca

Sistemi ad elevate prestazioni - PrSistemi ad elevate prestazioni - Prof. re Nicola Mazzoccaof. re Nicola Mazzocca

Hardware per la Gestione delle Hardware per la Gestione delle CollisioniCollisioni

Page 10: Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca

Sistemi ad elevate prestazioni - PrSistemi ad elevate prestazioni - Prof. re Nicola Mazzoccaof. re Nicola Mazzocca

Prossima LezioneProssima Lezione

Gestione delle ISR in sistemi Gestione delle ISR in sistemi pipelinedpipelined

Architetture VLIWArchitetture VLIW