Università degli Studi di Napoli “Federico II”
This presentation is the property of its rightful owner.
Sponsored Links
1 / 12

Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca PowerPoint PPT Presentation


  • 76 Views
  • Uploaded on
  • Presentation posted in: General

Università degli Studi di Napoli “Federico II” Facoltà di Ingegneria Dipartimento di Informatica e Sistemistica. Sistemi ad elevate prestazioni Lezione 2. Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca. Conflitti nei sistemi basati su pipeling - La gestione dei salti (1).

Download Presentation

Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Corso di sistemi ad elevate prestazioni prof nicola mazzocca

Università degli Studi di Napoli “Federico II”Facoltà di IngegneriaDipartimento di Informatica e Sistemistica

Sistemi ad elevate prestazioniLezione 2

Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca


Conflitti nei sistemi basati su pipeling la gestione dei salti 1

Conflitti nei sistemi basati su pipeling - La gestione dei salti (1)

  • In presenza di un salto non deve essere sempre prelevata dalla memoria l’istruzione successiva, e può non essere facile o possibile determinare subito l’istruzione a cui saltare;

    1. IF 2. ID 3. EX 4. MEM 5. WB

  • Quando il processore preleva una istruzione, non sa che tipo di istruzione ha prelevato finché non la interpreta (fase ID), ma, a questo punto, ne avrà già presa un’altra (quella immediatamente successiva);

  • Potrebbe rendersi conto che l’istruzione precedente era un salto, dovendo quindi saltare ad un’istruzione diversa da quella successiva, rendendo, quindi, il successivo prelievo inutile (branch penalty).

Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca


Conflitti nei sistemi basati su pipeling la gestione dei salti 2

Conflitti nei sistemi basati su pipeling - La gestione dei salti (2)

  • Mediamente il 25% del totale delle istruzioni in un programma è rappresentato da istruzioni di salto;

  • Se si verifica ‘branch penalty’ dovendo gestire l’evoluzione di istruzioni che non dovevano essere caricate su ¼ delle istruzioni del programma allora la cosa risulta preoccupante;

  • Consideriamo un esempio, in cui abbiamo supposto che ogni istruzione occupi 4 byte…

Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca


La gestione dei salti esempio 1

La gestione dei salti – Esempio (1)

  • Esempio:

    76 CMP R1, R3;

    80 JEQ 100

    ……………………...

    100 MOVE R1, R2

    ……………………...

  • il processore procede nel seguente modo:

    (1) (2) (3) (4) (5)

    80 IF ID EX MEM WB

    84 IF ID EX MEM

    88 IF ID EX

     tempo

Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca


La gestione dei salti esempio 2

La gestione dei salti – Esempio (2)

  • Solo alla fine della 3° fase si conoscerà l’indirizzo della prossima istruzione da prelevare !

  • Nel caso in cui il salto non deve essere eseguito la pipe continua a funzionare normalmente; se, però, il salto deve essere eseguito le istruzioni 84 e 88 dovranno essere eliminate (flush della pipe) e bisognerà prelevare l’istruzione 100 e successive.

  • Si crea un ritardo, che diminuisce la produttività della pipe, detto branch penalty.

    (1) (2) (3) (4) (5) (6) (7) (8)

    80 IF ID EX MEM WB

    84 IF ID

    88 IF

    100 IF ID EX MEM WB

    104 IF ID EX MEM

    108 IF ID EX

    112 IF ID

     tempo

Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca


La gestione dei salti approccio conservativo

La gestione dei salti – Approccio conservativo

  • Il problema è risolvibile secondo approcci fondamentali:

    • Approccio conservativo: nel momento in cui il processore interpreta una istruzione come istruzione di salto (fase ID di decodifica dell’istruzione), ferma la pipe, disabilita la propagazione della istruzione che era stata erroneamente già prelevata, determina l’istruzione a cui saltare (fase EX) e la preleva;

      (1) (2) (3) (4) (5) (6) (7) (8)

      80 IF ID EX MEM WB

      84 IF

      88

      100 IF ID EX MEM WB

      104 IF ID EX MEM

      108 IF ID EX

      112 IF ID

       tempo

Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca


La gestione dei salti branch delay

La gestione dei salti – Branch Delay

  • Branch Delay. Possiamo avere un accorgimento effettuabile in fase di compilazione che ci permette di evitare l’approccio conservativo, facciamo un esempio. Abbiamo due istruzioni:

    a = a + b

    if (c == 0)…

    in fase di compilazione le due istruzioni possono essere invertite, perché l’istruzione a = a + b deve essere eseguita comunque, indipendentemente alla destinazione del salto determinata dalla if, ma questo approccio non è sempre praticabile !

Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca


La gestione dei salti approccio ottimistico branch prediction 1

100

112

La gestione dei salti – Approccio ottimistico (branch prediction) (1)

  • Branch Prediction.Si tenta di fare una previsione su quale sia il ramo da eseguire in una istruzione condizionale. Consideriamo il seguente segmento di codice iterato ciclicamente:

    100 if condizione

    then

    104 …

    else

    112 …

    Il ramo then segue immediatamente il ramo if, mentre il ramo else è localizzato all’indirizzo 112 e quindi la sua esecuzione richiede un salto.

Branch Prediction

Table

Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca


La gestione dei salti approccio ottimistico branch prediction 2

100

112

La gestione dei salti – Approccio ottimistico (branch prediction) (2)

La situazione si complica in presenza di due o più cicli for innestati. Ad esempio:

for i… 92 CMP

JMP

for j… CMP

100 JXX

104 …

112 JMP 92

L’errore si verifica nel momento in cui si entra per la seconda volta nel ciclo esterno in quanto nella tabella abbiamo salvato un indirizzo fuorviante relativo agli effetti dell’n-esima iterazione del ciclo interno

Branch Prediction

Table

Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca


La gestione dei salti approccio ottimistico branch prediction 3

N.S.

Forte

N.S.

Debole

S.

Debole

S.

Forte

Figura 9:I4 stadi del Branch Prediction.

La gestione dei salti – Approccio ottimistico (branch prediction) (3)

I processori moderni evolvono fra quattro stati descritti da due bit: NON SALTARE (FORTE), NON SALTARE (DEBOLE), SALTA (FORTE) e SALTA (DEBOLE).

Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca


La gestione dei salti approccio ottimistico branch prediction 4

Si noti dunque che il processore sbaglia alla fine della prima esecuzione e alla fine della seconda.

Supponendo allora che il ciclo esterno sia di 10 iterazioni e quello interno di 1000, il processore sbaglia una volta per ciascuna esecuzione del ciclo interno (sull’ultima iterazione, un errore inevitabile), più una volta sul ciclo esterno, e quindi 10 + 1 = 11 volte soltanto, su 10*1000 = 10000 iterazioni.

Da questo si capisce anche il perché i numero di cicli esterni deve essere minore del numero di cicli interni, in quanto come visto dal conteggio degli errori nella pipe, se ho più cicli esterni commetto più errori rispetto al caso opposto.

for i… 92 CMP

JMP

for j… CMP

100 JXX

104 …

112 JMP 92

N.S.

Forte

N.S.

Debole

S.

Debole

S.

Forte

Figura 9:I4 stadi del Branch Prediction.

La gestione dei salti – Approccio ottimistico (branch prediction) (4)

Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca


Prossima lezione

Prossima Lezione

  • Conflitti nei sistemi basati su pipelining: Conflitti sui dati - Internal Forwarding

Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca


  • Login