Architettura degli Elaboratori Appello del 21 febbraio Domanda 1 (tutti)

Documenti analoghi
Architettura degli Elaboratori

Architettura degli Elaboratori

Esercitazione 5 di verifica

Architettura degli Elaboratori. Domanda 1 (per tutti)

Architettura degli Elaboratori Seconda prova di verifica intermedia

Prima prova di verifica intermedia

Architettura degli Elaboratori

Architettura degli Elaboratori

Architettura degli Elaboratori

Architettura degli elaboratori

Esercitazione 4 di verifica

Architettura degli Elaboratori

Architettura degli elaboratori Primo Appello A.A gennaio 2018

Architettura degli Elaboratori,

Esercizio 1. Progettare la PO a partire dal microprogramma eseguibile e successivamente:

Architettura degli Elaboratori, Domanda 1

Architettura degli Elaboratori A.A appello 23 giugno 2010

Architettura degli Elaboratori. Domanda 1 (tutti)

Architettura degli Elaboratori, a.a Correzione

Architettura degli Elaboratori A.A Appello 5 settembre 2016

Architettura degli Elaboratori A.A Quarto Appello 14 gennaio 2015

Architetture degli Elaboratori Prima prova di verifica intermedia bozza di soluzione

Architettura degli elaboratori A. A o Appello 7 febbraio 2017

Architettura degli Elaboratori - A.A Primo Appello - 5 giugno 2015 Risultati e calendario degli orali su web appena disponibili

Architettura degli Elaboratori - Correzione

Architettura degli Elaboratori - Correzione Appello del 18 luglio 2006, A.A. 2005/06

Architettura degli Elaboratori, Prima prova di verifica intermedia. 7 novembre Domanda 1

Architettura degli Elaboratori A.A Quarto Appello 14 gennaio 2015

Esercizi sulla macchina assembler, strutturazione a livelli, spazio di indirizzamento

Architettura degli Elaboratori, a.a Correzione della Prima Prova di Verifica Intermedia

Architettura degli Elaboratori A.A Seconda Verifica Intermedia

Architettura degli Elaboratori, Esercitazione 2

Domanda 2 Si dica se le seguenti affermazioni sono vere o false, dandone opportuna e sintetica motivazione:

Architettura degli elaboratori A.A aprile 2019

Architettura degli elaboratori Anno Accademico Appello del 4 settembre 2017

Seconda Esercitazione di Verifica Intermedia

Architettura degli Elaboratori, Esercitazione 4. Domanda 1

Architettura degli elaboratori A.A

Archittettura degli elaboratori A.A

Architettura degli Elaboratori

Architettura degli elaboratori A.A

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Pre-appello del 12 Gennaio Attenzione:

Architetture degli elaboratori A.A

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 22 giugno Attenzione:

Architettura dell elaboratore

Architettura dell elaboratore

Instruction Level Parallelism Andrea Gasparetto

Architettura degli Elaboratori A. A Prima prova di verifica intermedia e appello straordinario 3 novembre 2017

Testi di Esercizi e Quesiti 1

memoria PSW R1 R2 CPU Struttura logica dell elaboratore unità di controllo ALU unità di ingresso unità organo coordinatore clock di uscita

Note sull utilizzazione di componenti logici di tipo memoria

Prima Esercitazione di Verifica Intermedia

Architettura degli elaboratori A. A

Esercizio 1.A Aritmetica binaria (nel presentare le soluzione mostrare, almeno nei passaggi piú significativi, i calcoli eseguiti) (3 punti)

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

ESERCIZIO: PROGETTO DI UNA CPU A PIU REGISTRI

Lezione 17 Il Set di Istruzioni (3)

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (3) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto

Capitolo 5 Elementi architetturali di base

Corso di Laurea in Informatica

Elementi di Informatica e Programmazione Allievi Ingegneria Informatica, Elettronica e delle Telecomunicazioni, Automazione Industriale

1) Un calcolatore con processore R3000 avente frequenza di clock pari a 2GHz esegue il seguente programma:

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

Esercitazione su Instruction Level Parallelism

Architettura degli Elaboratori, Esercitazione 1

CALCOLATORI ELETTRONICI 14 giugno 2010

Il linguaggio macchina

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 8 novembre Attenzione:

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Pre-appello del 14 Gennaio Attenzione:

Richiami sull architettura del processore MIPS a 32 bit

CALCOLATORI ELETTRONICI 27 giugno 2017

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. 27 Febbraio 2001

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

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

L'architettura del processore MIPS

Integrazioni sull architettura con cache

Stall on load e Hazard sul controllo

Richiami sull architettura del processore MIPS a 32 bit

Ogni CPU è in grado di eseguire un insieme limitato di istruzioni macchina codificate in binario secondo il seguente schema generale.

Esercitazione su Instruction Level Parallelism Salvatore Orlando

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

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello dell 11 Settembre Attenzione:

Reti combinatorie. Reti combinatorie (segue)

Reti combinatorie (segue) Reti combinatorie. Lezione 2. Architettura degli Elaboratori A. Sperduti 1

Stall on load e Hazard sul controllo

Stall on load e Hazard sul controllo. Sommario

Informazioni varie. Lezione 18 Il Set di Istruzioni (5) Dove siamo nel corso. Un quadro della situazione

Rappresentazione dell informazione

CALCOLATORI ELETTRONICI 15 luglio 2014

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

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 20 Giugno Attenzione:

ARCHITETTURE DEI CALCOLATORI (canale A-I) - Prima prova in itinere del 16/6/2003 Compito tipo A

Elaborazione dell informazione

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 12 Gennaio Attenzione:

Architettura hardware

Transcript:

Architettura degli Elaboratori Appello del 21 febbraio 2011 Riportare su tutti i fogli consegnati nome, cognome, numero di matricola, corso di appartenenza, e la sigla NEW (per nuovo ordinamento), oppure OLD-0 (per vecchio ordinamento, programma 2009-10), oppure OLD-1 (per vecchio ordinamento, programma 2008-09). I risultati verranno pubblicati sulle pagine web del corso/dei docenti appena disponibili. Domanda 1 (tutti) Un sistema a livello firmware consta delle unità U, U1, CU, M. Le unità U e CU sono realizzate sullo stesso chip. CU è una unità cache completamente associativa, operante su domanda, write-through, capacità 64K parole, blocchi di 16 parole. M è una unità contenente un componente logico memoria di capacità massima 4G parole, interallacciato con 4 moduli. M ha ciclo di clock uguale a, con ciclo di clock di U. I collegamenti interchip hanno latenza di trasmissione uguale a U è collegato solo a U1 e a CU. U riceve di U1 messaggi (OP, A, B, C) con OP di 1 bit e A, B, C ognuno di 32 bit. Se OP = 0, A rappresenta un indirizzo di M, mentre B e C sono due numeri interi. I valori B e C devono essere scritti nelle locazioni di indirizzo A e A+1. Se OP = 1, A, B, C rappresentano gli indirizzi base in M di tre array di N = 16K interi ciascuno. U esegue il seguente algoritmo: i = 0.. N 1: C[i] = 0; j = 0.. N 1: C[i] = if pred(b[j]) then C[i] B[j] + A[i] / 2048 else C[i] + B[j] A[i] % 4096 La funzione booleana pred(x) restituisce vero se e solo se X è un numero positivo, minore di 256, esprimibile come 2 h + 2 k, con h k. I numeri sono rappresentati in complemento a due. È noto il ritardo di stabilizzazione t p di una porta logica con al più 8 ingressi. Una ALU ha ritardo di stabilizzazione uguale a 5t p. Il requisito è la minimizzazione del tempo medio di elaborazione della seconda operazione esterna (OP = 1) per quanto riguarda tanto il valore ideale in assenza di fault di cache, quanto il valore effettivo considerando i fault di cache. É richiesto il microprogramma di U e la valutazione dei tempi medi di elaborazione di entrambe le operazioni esterne in funzione di e N. Prima del microprogramma deve essere riportata la spiegazione di quali scelte sono effettuate per soddisfare il suddetto requisito sui tempi di elaborazione. Ogni rete combinatoria utilizzata, che sia diversa da una ALU o un commutatore, deve essere completamente definita e implementata.

2 Domanda 2 (NEW, OLD-0) Per una macchina D-RISC con CPU pipeline, compilare con ottimizzazioni un programma simile alla computazione della Domanda 1: int A[N], B[N], C[N]; i = 0.. N 1: C[i] = 0; j = 0.. N 1: C[i] = if (B[j] < 0) then C[i] B[j] + A[i] / 2048 else C[i] + B[j] A[i] % 4096 Solo agli effetti della valutazione, si assuma trascurabile la probabilità che B[j] < 0. Valutare il tempo di completamento per una architettura con la stessa cache primaria e memoria principale della Domanda 1 e senza cache secondaria. Domanda 2 (OLD-1) Si consideri il supporto a tempo di esecuzione della comunicazione sincrona tra processi LC. Scrivere e spiegare il codice D-RISC della fase di copia del messaggio, tanto per il supporto della send quanto per quello della receive. All inizio del codice richiesto, nel registro Rch è presente l indirizzo logico base del descrittore di canale e nel registro Rmsg l indirizzo logico base del valore del messaggio, oppure nel registro Rvtg l indirizzo logico base della variabile targa. Valutare il tempo medio di elaborazione della copia in funzione della lunghezza L del messaggio in parole. L architettura dispone di cache primaria e memoria principale come nella Domanda 1 e non ha cache secondaria.

3 Soluzione Domanda 1 (tutti) Il requisito è che il tempo medio di elaborazione della seconda operazione esterna: T 1 = T 1-id + T fault sia minimizzato tanto per quanto riguarda T 1-id quanto T fault. In entrambi i casi, trattandosi di un doppio loop della stessa cardinalità e con i calcoli concentrati nel loop più interno, si tratta di minimizzare il tempo di elaborazione del loop più interno Riguardo alla minimizzazione di T 1-id, si osserva che il calcolo richiesto è una espressione condizionale, la cui realizzazione più efficiente è un unica rete combinatoria in modo da minimizzare il prodotto numero di cicli di clock per ciclo di clock, senza variabili di condizionamento complesse. Detti a = A[i], b = B[i], c = C[i], la rete F(a, b, c) è cosi definita: viene utilizzata una ALU1 per eseguire r1 = c + b oppure r1 = c b, ed una ALU2 in cascata per eseguire c = r1 r2 oppure c = r1 + r2, dove r2 è l uscita di un commutatore avente in ingresso la parola A/2048 (11 zeri concatenati ai 21 bit più significativi di a) e la parola A%4096 (20 zeri concatenati ai 12 bit meno significativi di a); il commutatore, ALU1 e ALU2 sono controllati dall uscita della rete combinatoria che implementa pred(c), così definita: i 24 bit più significativi di c uguali a zero e, degli 8 bit meno significativi, due e solo due uguali a uno e gli altri 6 a zero (scrivere l espressione logica). Il ritardo della rete pred è 4t p, quindi il ritardo della rete F è di 14t p. Nella scrittura del microprogramma occorre, ovviamente, procurare i valori di a, b interagendo a domanda risposta con CU e, all uscita del loop più interno, scrivere il valore di c in cache. Poiché la cache è writethrough, tutte le scritture avvengono anche in memoria (a cura dell unità CU). Si verifica facilmente che la banda delle richieste di scrittura (una ogni loop esterno) è minore della banda della memoria interallacciata. La computazione è caratterizzata da solo località per gli array A e C e da località e riuso per B. L insieme di lavoro è quindi costituito da tutti i blocchi di B e dal blocco corrente di A e di C. Tale insieme di lavoro può risiedere permanentemente in cache, la cui capacità è maggiore di N + 2. A questo scopo, le richieste di lettura degli elementi di B sono accompagnate dall opzione non deallocare, così che ogni blocco di B, una volta caricato in cache in seguito al fault sul primo accesso, vi risieda permanentemente. Quindi, il numero di fault è dato da N fault = 2 N σ senza considerare quelli sugli elementi di C, in quanto non provocano trasferimento di blocco. L applicabilità del riuso di B è importante, in quanto la penalità per i fault di cache scende da ordine O(N 2 ) a O(N), quindi trascurabile rispetto al tempo di elaborazione ideale che è O(N 2 ). La latenza di trasferimento di un blocco da memoria principale a cache vale: T trasf = 2 T tr + σ m τ M + mτ = 54 τ Quindi T fault = N fault T trasf = 2 54 16 N τ ~ 7 N τ La seconda operazione esterna consta solo di due scritture interagendo con CU a domanda risposta. Sulla prima viene generato un fault di cache, che non ha effetto sulle prestazioni essendo il blocco usato in sola scrittura ed essendo aggiornato in memoria attraverso il meccanismo write-through (le due scritture avvengono in moduli distinti di M).

4 Microprogramma: 0. (RDY1, OP = 0 -) nop, 0; (= 1 0) reset RDY1, set ACK1, A IND, B DATAOUT, C C1, write OPC,set RDYOUTC, 1; (= 1 1) reset RDY1, set ACK1, A INDA, B INDB, C INDC, 0 I, 3 Prima operazione esterna: attesa fine prima scrittura e richiesta seconda scrittura: 1. (RDYINC = 0) nop, 1; ( = 1) reset RDYINC, IND + 1 IND, C1 DATAOUT, write OPC, set RDYOUTC, 2 attesa fine seconda scrittura 2. (RDYINC = 0) nop, 1; ( = 1) reset RDYINC, 0 Ciclo esterno: leggi A[i] in A1 inizializza temporaneo C1 per C[i] inizializza j Seconda operazione esterna: controllo ciclo esterno, richiesta lettura A[i]; all uscita del ciclo esterno si torna in 0 3. (I 0 = 0) INDA IND, read OPC, set RDYOUTC, INDA + 1 INDA, 4; (= 1) nop, 0 attesa fine lettura A[i], inizializzazione indice j loop interno, inizializzazione temporaneo C1 per C[i] 4. (RDYINC = 0) nop, 4; (= 1) reset RDYINC, DATAIN A1, 0 J, 0 C1, 5 Ciclo interno: leggi B[j] calcola C1 = F(A1, B[j], C1) incrementa j e rimani in ciclo, oppure scrivi C1 in C[i] e torna al ciclo esterno controllo loop interno, richiesta lettura B[j]; all uscita del ciclo interno richiesta scrittura C[i] 5. (J 0 = 0) INDB IND, (read, non_deallocare) OPC, set RDYOUTC, 6; ( = 1) INDC IND, C1 DATAOUT, write OPC, INDC + 1 INDC, 7 attesa fine lettura B[j], calcolo della funzione F, si continua nel loop interno 6. (RDYINC = 0) nop, 6; (= 1) reset RDYINC, F(A1, DATAIN, C1) C1, INDB + 1 INDB, J + 1 J, 5 attesa fine scrittura C[i], si continua nel ciclo esterno 7. (RDYINC = 0) nop, 7; (= 1) reset RDYINC, I + 1 I, 3

5 Essendo il tempo di accesso in cache t c = 2, i tempi medi ideali di elaborazione sono: T 0-id = + 2t c = T 1-id ~ N 2 ( + t c ) = 4 N I tempi di elaborazione effettivi sono: T 0 = T 0-id = T 1 = T 1-id + T fault ~ T 1-id = 4 N Per la valutazione del ciclo di clock: T PO = 0 T PC = T PC = 2t p T PO (ritardo della funzione F + commutatore all ingresso di C1) = 16t p = 19 t p Domanda 2 (NEW, OLD-0) Il codice D-RISC senza ottimizzazioni è: LOOPi: CLEAR Rc LOAD RA, Ri, Ra CLEAR Rj LOOPj: THEN: CONT: LOAD RB, Rj, Rb, non_deallocare IF < 0 Rb, THEN ADD Rc, Rb, Rc MOD Ra, R4096, Ra1 SUB Rc, Ra1, Rc GOTO CONT SUB Rc, Rb, Rc DIV Ra, R2048, Ra1 ADD Rc, Ra1, Rc INCR Rj IF < Rj, RN, LOOPj STORE RC, Ri, Rc INCR Ri IF < Ri, RN, LOOPi END Alla luce di quanto già discusso nella Domanda 1, ottimizziamo il loop interno. Se la generica iterazione di questo loop ha tempo di completamento T iter, allora il tempo di completamento complessivo è dato da: T c = N 2 T iter + T fault N 2 Titer

6 Nel codice del loop interno LOOPj: THEN: CONT: LOAD RB, Rj, Rb, non_deallocare IF < 0 Rb, THEN ADD Rc, Rb, Rc MOD Ra, R4096, Ra1 SUB Rc, Ra1, Rc GOTO CONT SUB Rc, Rb, Rc DIV Ra, R2048, Ra1 ADD Rc, Ra1, Rc INCR Rj k = 1, N Q = 1 IF < Rj, RN, LOOPj k = 1, N Q = 2 si rilevano le dipendenze logiche indicate e istruzioni che provocano salto, GOTO e IF < Ri, in quanto la probabilità che IF< 0 provochi salto è trascurabile. Per ottimizzare, replichiamo codice nei due rami then ed else, per eliminare GOTO, applichiamo la tecnica del delayed branch alla IF < Rj, anticipiamo INCR Rj e DIV/MOD per aumentare la distanza delle dipendenze logiche: Considerando solo il ramo else nel loop interno: LOAD RB, Rj, Rb, non_deallocare LOOPj: MOD Ra, R4096, Ra1 INCR Rj IF < 0 Rb, THEN ADD Rc, Rb, Rc SUB Rc, Ra1, Rc IF < Rj, RN, LOOPj, delayed_branch LOAD RB, Rj, Rb Il risultato è quindi: = 0 = 0 T = t = = 1 T iter = 7 T = T c = 14 N 2 La valutazione dell impatto della memoria cache è identico a quanto visto nella Domanda 1, quindi trascurabile sul tempo di completamento grazie al riuso di B.

7 Domanda 2 (OLD-1) Facciamo riferimento alla struttura tipica del descrittore di canale: nell ordine, campo wait, lunghezza L, riferimento a variabile targa o messaggio, riferimento al PCB del processo in attesa. Con l implementazione alla pari, sia nella send che nella receive, in modo del tutto duale, viene copiato il messaggio direttamente nella variabile targa. Assumiamo che il metodo per trattare le strutture condivise riferite indirettamente sia quello degli indirizzi logici coincidenti. Il codice della send è è: LOOP: LOAD Rch, 1, RL LOAD Rch, 2, Rvtg CLEAR Ri LOAD Rmsg, Ri, Rx STORE Rvtg, Ri, Rx INCR Ri IF < Ri, RL, LOOP nella receive sarebbe: LOAD Rch, 2, Rmsg Il tempo di completamento di questo programma è dato da: dove, essendo t c = : T copy = T id + T fault T id = 3 T ch + 2 T ex-load + T ex-corte + L (4 T ch + 2 T ex-load + T ex-corte + T ex-if ) = (26 + 33 L) Possiamo assumere che il descrittore di canale risieda già in cache (è stato acquisito all atto della lettura del campo wait), ma dobbiamo considerare che il messaggio e la variabile targa non risiedano in cache. Essendo strutture caratterizzate da sola località, abbiamo (T trasf è quello valutato nella Domanda 1): N fault = 2 L σ = L 8 T fault = N fault T trasf ~ 7 L τ La valutazione dei tempi di trasferimento blocco anche per le scritture è motivato dal fatto che, in questo caso, la banda della memoria interallacciata non è sufficiente a far fronte ad una sequenza di L parole molto ravvicinate tra loro. È come se ogni blocco della variabile targa dovesse essere trasferito. Quindi: T copy = (26 + 40 L)