Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoFortunata Locatelli Modificato 11 anni fa
1
Università degli Studi di Napoli Federico II Facoltà di Ingegneria Dipartimento di Informatica e Sistemistica Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca Sistemi ad elevate prestazioni Lezione 3
2
Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca Conflitti nei sistemi basati su pipelining - La gestione del conflitto sui dati Se due istruzioni consecutive tentano di accedere contemporaneamente ad uno stesso registro/locazione di memoria, si generano conflitti sui dati, classificati secondo due tipologie: Se due istruzioni consecutive tentano di accedere contemporaneamente ad uno stesso registro/locazione di memoria, si generano conflitti sui dati, classificati secondo due tipologie: conflitti Read after Write (R/W); conflitti Read after Write (R/W); conflitti Write after Read (W/R). conflitti Write after Read (W/R).
3
Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca Esempio di conflitto R/W i R2 = R1 + R3 i+1 R4 = R2 + R5 (1) (2) (3) (4) (5) (1) (2) (3) (4) (5) i IF ID EX MEM WB i+1 IF ID ID EX Quando listruzione i+1 giunge nella fase ID essa deve prelevare il valore di R2; tale operazione, però, non è possibile siccome il nuovo valore non è stato ancora memorizzato nel registro R2; la pipe, quindi, entra in stallo. Quando listruzione i+1 giunge nella fase ID essa deve prelevare il valore di R2; tale operazione, però, non è possibile siccome il nuovo valore non è stato ancora memorizzato nel registro R2; la pipe, quindi, entra in stallo. Per risolvere questo conflitto si utilizza la tecnica dellanticipo degli operandi (Operand Forwarding), cioè si crea un canale (hardware), che renda i risultati disponibili appena lALU li calcola. Per risolvere questo conflitto si utilizza la tecnica dellanticipo degli operandi (Operand Forwarding), cioè si crea un canale (hardware), che renda i risultati disponibili appena lALU li calcola. Questa tecnica è realizzabile solo se si opera su registri del processore ed ogni fase impiega un solo ciclo di clock (processori RISC). Questa tecnica è realizzabile solo se si opera su registri del processore ed ogni fase impiega un solo ciclo di clock (processori RISC). R2 R5 DEMUX ALU
4
Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca La tecnica dellInternal Forwarding (1) In tal caso si usa la tecnica dellInternal Forwarding: che consiste nellibernare le istruzioni, che non possono essere eseguite subito, perché in conflitto con le precedenti, per iniziare ad eseguire le successive. In tal caso si usa la tecnica dellInternal Forwarding: che consiste nellibernare le istruzioni, che non possono essere eseguite subito, perché in conflitto con le precedenti, per iniziare ad eseguire le successive. Per implementare questa tecnica si utilizza una memoria detta tabella di ibernazione statica ed interna al processore, dove annotare le istruzioni già decodificate e cioè con chiara la conoscenza degli operandi e di quale operazione deve essere effettuata. Per implementare questa tecnica si utilizza una memoria detta tabella di ibernazione statica ed interna al processore, dove annotare le istruzioni già decodificate e cioè con chiara la conoscenza degli operandi e di quale operazione deve essere effettuata. Utilizzando le proprietà associativa e commutativa è possibile evitare stalli della pipe cambiando lordine delle istruzioni. Ma ciò non è sempre praticabile ! Utilizzando le proprietà associativa e commutativa è possibile evitare stalli della pipe cambiando lordine delle istruzioni. Ma ciò non è sempre praticabile ! operando1operando2 RISULTATO ADD MUL DIV BOO LOAD STORE TAGVALORETAGVALORE
5
Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca La tecnica dellInternal Forwarding (2) i R1 = MEMA; i+1 R2 = R1 + R3; i+2 R4 = R2 + R5; i+2 R4 = R2 + R5; i+3 R2 = R6 + R7; i+4 R4 = R2 + R4; il registro R2 è presente in due blocchi che abbiamo indicato come eseguibili in maniera distinta dal processore in base alle due proprietà: commutativa e associativa il registro R2 è presente in due blocchi che abbiamo indicato come eseguibili in maniera distinta dal processore in base alle due proprietà: commutativa e associativa R2 dovrà assumere due valori diversi nellambito delle istruzioni ed alla fine è necessario trovare, per eseguire lultima istruzione, un registro R2 con il valore corretto R2 dovrà assumere due valori diversi nellambito delle istruzioni ed alla fine è necessario trovare, per eseguire lultima istruzione, un registro R2 con il valore corretto R1= MEMA; R2=R1 + R3; R4=R2 + R5 R2=R6 + R7; R4=R2 + R4; Per fare questo i registri del processore sono utilizzati come Forwarding Register !
6
Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca La tecnica dellInternal Forwarding (3) I registri del processore (Forwarding Register), quindi, sono utilizzati come puntatori ai Registri Operando; I registri del processore (Forwarding Register), quindi, sono utilizzati come puntatori ai Registri Operando; I registri operando contengono, oltre al valore attuale dei registri del processore, anche i valori che essi hanno assunto nel corso dellelaborazione, ovvero la loro storia passata. Ad ogni registro operando è associato un contatore, per tener traccia del numero di operazioni sospese su quel registro ed un bit di occupato, che è pari a zero quando il dato contenuto nel registro è valido. I registri operando contengono, oltre al valore attuale dei registri del processore, anche i valori che essi hanno assunto nel corso dellelaborazione, ovvero la loro storia passata. Ad ogni registro operando è associato un contatore, per tener traccia del numero di operazioni sospese su quel registro ed un bit di occupato, che è pari a zero quando il dato contenuto nel registro è valido. OPR(0) OPR(1) OPR(2) OPE(3) OPR(4) OPR(5)........ OPE(N) Operand register Forwarding register R0 R1 R2 R3 R4 R5 R6 R7 R1 OPR(0) OPR(1) OPR(n) OPR(8) OPR(7) OPR(3) OPR(2) R0 R1 R7 R6 R5 R4 R3 R2 7 1 0 16 15 14 8 2 1 42 32 operazioni sospese valore bit occupato
7
Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca La tecnica dellInternal Forwarding (4) i R1 = MEMA; i+1 R2 = R1 + R3; i+2 R4 = R2 + R5; i+2 R4 = R2 + R5; i+3 R2 = R6 + R7; i+4 R4 = R2 + R4; R1= MEMA; R2=R1 + R3; R4=R2 + R5 R2=R6 + R7; R4=R2 + R4; Contenitore ADD MUL DIV BOO STORE LOAD tagvalore 7 8 8 15 7 14 16 MEMA tagvalore operando2 operando1 OPR(0) OPR(1) OPR(N) OPR(8) OPR(7) OPR(3) OPR(2) R0 R1 R7 R6 R5 R4 R3 R2 7 1 0 16 15 14 8 1 1 42 32 82 74 0 0 0 0 operazioni sospese valore bit occupato Istruzione i : cache miss ! Istruzione i +1 Istruzione i +2Istruzione i +3 2 Arriva R1 dalla memoria ! 2 2 1 Si sblocca i+1 1 Si sblocca i+2 0 Istruzione i+4 …
8
Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca Conclusioni & Prossima Lezione Si capisce che il modello di Von Neumann non è rispettato, la cosa risulta ancora più chiara in occasione di una interruzione causata per esempio dalloverflow dellistruzione i+3 (R2=R6+R7), perché in tal caso si interromperebbe prima dellesecuzioni di istruzioni precedenti, credendo di interrompere avendo una macchina modificata dallesecuzione di tali istruzioni ibernate ! Si capisce che il modello di Von Neumann non è rispettato, la cosa risulta ancora più chiara in occasione di una interruzione causata per esempio dalloverflow dellistruzione i+3 (R2=R6+R7), perché in tal caso si interromperebbe prima dellesecuzioni di istruzioni precedenti, credendo di interrompere avendo una macchina modificata dallesecuzione di tali istruzioni ibernate ! Sistemi superscalari – Gestione dei conflitti nella gestione di pipe multiple (vettore delle collisioni) – Gestione delle istruzioni Sistemi superscalari – Gestione dei conflitti nella gestione di pipe multiple (vettore delle collisioni) – Gestione delle istruzioni
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.