1 / 8

Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca

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

indira-mays
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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Università degli Studi di Napoli “Federico II”Facoltà di IngegneriaDipartimento di Informatica e Sistemistica Sistemi ad elevate prestazioniLezione 3 Corso di Sistemi ad elevate prestazioni – Prof. Nicola Mazzocca

  2. 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: • conflitti Read after Write (R/W); • conflitti Write after Read (W/R). Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca

  3. R2 R5 DEMUX ALU Esempio di conflitto R/W i R2 = R1 + R3 i+1 R4 = R2 + R5 (1) (2) (3) (4) (5) i IF ID EX MEM WB i+1 IF ID ID EX • Quando l’istruzione 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 dell’anticipo degli operandi (Operand Forwarding), cioè si crea un canale (hardware), che renda i risultati disponibili appena l’ALU li calcola. • Questa tecnica è realizzabile solo se si opera su registri del processore ed ogni fase impiega un solo ciclo di clock (processori RISC). Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca

  4. In tal caso si usa la tecnica dell’Internal Forwarding: che consiste nell’ibernare 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. Utilizzando le proprietà associativa e commutativa è possibile evitare stalli della pipe cambiando l’ordine delle istruzioni. Ma ciò non è sempre praticabile ! RISULTATO ADD ADD MUL MUL DIV BOO LOAD STORE operando1 operando2 TAG VALORE VALORE TAG La tecnica dell’Internal Forwarding (1) Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca

  5. i R1 = MEMA; i+1 R2 = R1 + R3; 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 R2 dovrà assumere due valori diversi nell’ambito delle istruzioni ed alla fine è necessario trovare, per eseguire l’ultima istruzione, un registro R2 con il valore corretto R1= MEMA; R2=R1 + R3; R4=R2 + R5 R2=R6 + R7; R4=R2 + R4; La tecnica dell’Internal Forwarding (2) Per fare questo i registri del processore sono utilizzati comeForwarding Register ! Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca

  6. operazioni sospese bit occupato valore 42 R0 OPR(0) R1 32 7 OPR(1) 8 R2 OPR(2) OPR(3) R3 14  15 R4 OPR(7) R5 1 16 Operand register 0 OPR(8) 2 R6 1 R7 OPR(n) Forwarding register OPR(0) OPR(1) OPR(2) OPE(3) OPR(4) OPR(5) ........ OPE(N) R0 R1 R2 R3 R4 R5 R6 R7 R1 La tecnica dell’Internal Forwarding (3) • 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 dell’elaborazione, 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. Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca

  7. operazioni sospese bit occupato valore i R1 = MEMA; i+1 R2 = R1 + R3; i+2 R4 = R2 + R5;  i+3 R2 = R6 + R7; i+4 R4 = R2 + R4; OPR(0) OPR(1) OPR(2) OPR(3) R1= MEMA; R2=R1 + R3; R4=R2 + R5  R2=R6 + R7; OPR(7) R4=R2 + R4; OPR(8) OPR(N) ADD ADD MUL MUL DIV BOO LOAD STORE La tecnica dell’Internal Forwarding (4) 42 0 R0 32 0 R1 7 74 0 2 R2 8 R3 14 R4 15 operando1 operando2 R5 16 82 1 0 1 Contenitore 2 tag valore tag valore 7 14 8 R6 0 1 1 2 0 8 16 15 R7 1 Si sblocca i+1 Arriva R1 dalla memoria ! Istruzione i +1 Si sblocca i+2 Istruzione i+4 … Istruzione i +2 Istruzione i : cache miss ! Istruzione i +3 MEMA 7 Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca

  8. 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 dall’overflow dell’istruzione i+3 (R2=R6+R7), perché in tal caso si interromperebbe prima dell’esecuzioni di istruzioni precedenti, credendo di interrompere avendo una macchina modificata dall’esecuzione di tali istruzioni ibernate ! • Sistemi superscalari – Gestione dei conflitti nella gestione di pipe multiple (vettore delle collisioni) – Gestione delle istruzioni Sistemi ad elevate prestazioni - Prof. re Nicola Mazzocca

More Related