Corso di Architettura dei Calcolatori (I anno) Prova scritta finale 6 luglio 2007 aa 2006/2007 COGNOME: NOME: 1 (punti 2) Considerare la seguente configurazione su 16 bit: c =0000 0000 0111 1111 (a) Calcolare la configurazione a 16 bit che corrisponde al cambiamento di segno di c in eccesso 2 15 (b) Calcolare la configurazione a 16 bit che corrisponde al cambiamento di segno di c in complemento a 2 (c) Calcolare la configurazione a 16 bit che corrisponde al cambiamento di segno di c in complemento a 1 (d) Calcolare la seguente addizione in complemento a 2 su 16 bit: 0000 0000 0111 1111 + 0111 1111 1111 1111 2 (punti 2) Considerare il codice con cifra di espansione per rappresentare i numeri naturali da 1 a 14 mediante i seguenti formati, aventi rispettivamente lunghezza di 2, 4 e 5 bit: 0x 10xx 11xxx (a) Quanti numeri vengono rappresentati con il formato a 2 bit? (b) Quanti numeri vengono rappresentati con il formato a 4 bit? (c) Quanti numeri vengono rappresentati con il formato a 5 bit? (d) In totale, quanti bit sono necessari per rappresentare tutti e 14 i numeri? 3 (punti 2) Considerare un codice di 7 bit per la rilevazione degli errori, usato per codificare 8 elementi, che segue il seguente formato: p 3 p 2 p 1 p 0 d 2 d 1 d 0 I 3 bit d 2 d 1 d 0 rappresentano il dato, mentre p 3 p 2 p 1 p 0 sono 4 bit di parità determinati nel modo seguente: p 0 è determinato da d 0 ; p 1 è determinato da d 1 ; p 2 è determinato da d 2 ; p 3 è determinato da d 0, d 1 e d 2 (a) Qual è la ridondanza del codice? (b) Se il dato è rappresentato da 100, qual è la configurazione corretta completata con i bit di parità? (c) Assumendo che sia stato commesso un solo errore, correggere la seguente configurazione: 1000000 (d) Qual è la distanza di Hamming minima tra due configurazioni valide distinte? 4 (punti 3) Considerare il codice in virgola mobile che usa il seguente formato su 16 bit: S E M dove S è il bit di segno, E rappresenta i 6 bit dell esponente ed M i 9 bit della mantissa L esponente viene codificato in eccesso 32, tutte le configurazioni sono valide, a parte 000000 che è riservata per la codifica del numero zero La mantissa m è normalizzata in modo che 1 m < 2; quindi il bit più significativo di M corrisponde alla potenza 2 1 (a) Qual è la codifica binaria del minimo numero positivo (quindi diverso da zero) rappresentabile in modo esatto? (b) Qual è la codifica binaria del massimo numero positivo rappresentabile in modo esatto? 1
(c) Qual è la codifica binaria del minimo numero naturale positivo (quindi diverso da zero) rappresentabile in modo esatto? (d) Qual è la codifica binaria del massimo numero naturale rappresentabile in modo esatto? 5 (punti 4) Considerare un circuito combinatorio che, preso in ingresso un numero intero i codificato in complemento a 2 su 4 bit i 3 i 2 i 1 i 0, restituisce la codifica u 3 u 2 u 1 u 0 di i in complemento a 2, sempre su 4 bit (a) Compilare la tavola di verità della funzione realizzata dal circuito (b) Compilare la mappe di Karnaugh corrispondente all uscita u 1 (c) Qual è la formula in forma normale disgiuntiva minimale corrispondenti all uscita u 1? (d) Supponendo di avere a disposizione, oltre al not, le porte logiche elementari and, or, nand, nor, xor e xnor, tutte a 2 ingressi, qual è il numero minimo di porte logiche elementari necessarie per la realizzazione dell uscita u 1? 6 (punti 4) Considerare la seguente funzione ricorsiva scritta in C: int fun(int n,int m) { int res=0; int j; for (j=0;j<n;j++){ res += m+fun(j,m); m++; } return res; } Tradurre fun in assembler VM-2 rispettando le seguenti convenzioni: il passaggio dei parametri avviene tramite lo stack e il risultato viene depositato nel registro ACC Il programma non deve contenere più di 25 istruzioni 7 (punti 3) Considerare un di tipo sincrono per il collegamento tra CPU e RAM al quale possono essere connessi altri dispositivi master La CPU ha una frequenza di clock di 2 GHz (un ciclo di clock in 05 ns) Il protocollo del prevede un ciclo di clock per l arbitraggio daisy chain, seguito da tre o più cicli di clock per il completamento di un operazione di lettura o scrittura Il protocollo prevede la possibilità per lo slave di chiedere proroghe di uno o più cicli completi, purché la richiesta arrivi al master in tempo (ovvero la richiesta del quarto ciclo deve arrivare prima che si concluda il terzo) Il tempo massimo di propagazione dei segnali tra le due estremità del è di 05 ns Supporre che, oltre alla CPU, sia connesso un altro dispositivo master M di priorità più bassa e che il ritardo di ogni stadio della daisy chain sia non superiore a 05 ns (a) Se il ritardo della RAM è non superiore a 7 ns, qual è la frequenza massima del clock del affinché possano essere portate a termine operazioni di lettura senza proroghe? (b) Se il ritardo della RAM è non superiore a 75 ns, qual è la frequenza massima del clock del affinché possano essere portate a termine operazioni di scrittura senza proroghe? (c) Se la CPU porta a termine un operazione di lettura in 20 cicli di clock di CPU a partire dalla sua richiesta, supponendo che la RAM sia inizialmente idle, qual è la frequenza minima del clock del? (d) Qual è il numero massimo di dispositivi master tollerato dal protocollo se la frequenza del clock del è 1 GHz? 8 (punti 4) Supporre di modificare la macchina VM-1 sostituendo l istruzione JPOS yyy con la nuova BOH? yyy e riutilizzando lo stesso codice operativo 0000 per specificare una serie di azioni diverse Le nuove microistruzioni che realizzano BOH? sono memorizzate nelle celle di indirizzi 32 e 33 (che quindi sostituiscono quelle usate per la realizzazione di JPOS) e nelle celle libere 83, 84 e 85, come mostrato di seguito (il campo Int è stato omesso in quanto inutilizzato): indir in CS A L U C S R n W M A R M B R D mpx A B 32 xxx 1 1 1 0 xx 11 xx xx 0 xx 0 xx 000 xxxxxxx 33 xxx 0 1 0 1 xx xx xx xx 0 xx 0 xx 001 1010011 83 000 0 x 0 0 10 xx xx xx 0 10 1 xx 000 xxxxxxx 84 110 0 0 0 1 10 xx 10 xx 0 11 1 xx 000 xxxxxxx 85 110 0 0 0 1 10 xx 11 xx 0 01 1 xx 001 0000001 CA CA en CD CD en D m cond Addr 2
Se dopo aver completato il fetch e la decodifica dell istruzione BOH? i seguenti registri e celle contengono le configurazioni iniziali indicate in base 2 (l indirizzo della cella è in base 16): IR = 0000 0000 0000 1100 ACC = 0001 0000 0000 0000 M[00C] = 0001 0000 0111 1110 quali sono le configurazioni (in base 2) contenute nei seguenti registri e celle alla fine dell esecuzione della microistruzione all indirizzo 85? (a) ACC (b) B (c) C (d) MBR 9 (punti 2) Considerare un sistema di traduzione da indirizzamento virtuale a indirizzamento fisico realizzato mediante la tecnica di segmentazione e paginazione, per una RAM da 2 GB con parole da 32 b Ogni indirizzo logico può far riferimento a un massimo di 512 segmenti con il metodo della segmentazione esplicita Ciascun segmento può avere la dimensione massima di 2 MB e ciascuna pagina è costituita da 16 KB Considerare le seguenti tabelle dei segmenti e delle pagine (dove tutti i dati sono espressi in base 16): n segm accessi pagine tab pag 0 - - X A tp0 1 R W - 58 tp1 2 R W - 15 tp2 3 R - - 30 tp3 tp2 n pag log n pag fis 0 101 1 79 13 BB5A 14 5B5 tp0 n pag log n pag fis 0 37F 1 FF1A 8 D73 9 1270 tp3 n pag log n pag fis 0 2323 1 1D09 2E 2F 3C C37 (a) Negli indirizzi virtuali quanti bit sono riservati per il numero di segmento? (b) Negli indirizzi virtuali quanti bit sono riservati per il numero di pagina? (c) Negli indirizzi virtuali quanti bit sono riservati per l offset? (d) Negli indirizzi fisici quanti bit sono riservati per il numero di pagina? (e) Quanti bit contiene un indirizzo fisico? tp1 n pag log n pag fis 0 0B 1 DE11 56 0F 57 FD1 (f) Assumendo che il formato per gli indirizzi virtuali preveda che, a partire dai bit più significativi, venga codificato prima il numero di segmento, poi il numero di pagina e, infine, l offset, tradurre il seguente indirizzo virtuale in indirizzo fisico esprimendo il risultato in base 16: D7D00 10 (punti 2) Considerare una memoria cache di 8 MB associativa di livello 4, organizzata in linee da 256 b e collegata a una RAM da 1 GB con parole da 32 b (a) Quante linee contiene la cache? (b) Da quanti bit è formato il campo tag della cache? (c) Calcolare (esprimendolo in base 2) il tag associato all indirizzo 00E0000 11 (punti 4) Considerare una realizzazione pipeline della macchina VM-R organizzata su 3 stadi (fetch, decode, exec) e con salti (sia condizionali che non) ritardati di un delay slot Per le istruzioni di salto non condizionale considerare come conclusione dell esecuzione la fase decode (visto che è in questa fase che viene modificato il program counter), mentre per le istruzioni di salto condizionale viene adottata una tecnica di predizione statica, dove F e T indicano che la condizione di salto sarà rispettivamente falsa o vera Nel caso in cui la predizione sia esatta l istruzione di salto condizionale viene eseguita senza perdita di cicli di clock, mentre in caso contrario gli stadi decode e exec vengono mandati in stallo di un ciclo di clock Considerare come conclusione dell esecuzione di un istruzione di salto condizionale la fase exec, indipendentemente dal fatto che la predizione sia esatta o no 3
Per semplicità di calcolo dei tempi di esecuzione ipotizzare che ogni accesso alla memoria sia pari a un ciclo di clock della CPU e che l esecuzione di ogni stadio duri sempre un ciclo di clock Partendo dalla situazione di pipeline vuota, simulare l esecuzione del seguente programma a partire dalla prima istruzione, indicando per ogni istruzione il numero di cicli di clock che devono trascorrere dall inizio del fetch della prima istruzione prima di poterne vedere il completamento per la prima volta LDIB R01, 1 LDIB R02, 2 SCMP R01, R02 CJMD LT, 4, T ADD3 R03, R01, R02 CJMD GE, 4, F ADD3 R01, R01, R01 JUMD -7 SHFT R01, R01, 1 12 (punti 4) Considerare il seguente programma in assembler VM-R: LDIB R01, 1 LDIB R02, 32767 LDIW R08 32784 LOAD R12, R08, R00 SCMP R12, R02 CJMP GE, 12 MOV2 R09, R08 LOAD R10, R09, R00 LOAD R11, R09, R01 SCMP R10, R11 CJMP GE, 2 STOR R10, R09, R01 STOR R11, R09, R00 LOAD R10, R09, R00 SCMP R10, R02 CJMP GE, -13 ADD3 R09, R09, R01 JUMP -11 HALT 32784: 1 2 3 4 5 32767 Supponendo che il programma venga eseguito a partire dalla prima istruzione, quale valore in base 10 è contenuto alla fine dell esecuzione nelle seguenti celle di memoria: (a) M[32784] (b) M[32785] (c) M[32786] (d) M[32787] (e) M[32788] (f) M[32789] 4
Corso di Architettura dei Calcolatori (I anno) Risposte prova scritta finale 6 luglio 2007 COGNOME: NOME: 1 (punti 2) (a) (b) (c) (d) 2 (punti 2) (a) (b) (c) (d) 3 (punti 2) (a) (b) (c) (d) 4 (punti 3) (a) (b) (c) (d) 5 (punti 4) (a) Tavola di verità (parte 1) i 3 i 2 i 1 i 0 u 3 u 2 u 1 u 0 0000 0001 0010 0011 0100 0101 0110 0111 (b) Mappa per u 1 i 3 i 2 \i 1 i 0 00 01 11 10 00 01 11 10 Tavola di verità (parte 2) i 3 i 2 i 1 i 0 u 3 u 2 u 1 u 0 1000 1001 1010 1011 1100 1101 1110 1111 (c) (d) 5
6 (punti 4) 7 (punti 3) (a) (b) (c) (d) 8 (punti 4) (a) (b) (c) (d) 9 (punti 2) (a) (b) (c) (d) (e) (f) 10 (punti 2) (a) (b) (c) 6
11 (punti 4) 12 (punti 4) istruzione LDIB R01, 1 LDIB R02, 2 SCMP R01, R02 CJMD LT, 4, T ADD3 R03, R01, R02 CJMD GE, 4, F ADD3 R01, R01, R01 JUMD -7 SHFT R01, R01, 1 ciclo di clock (a) (b) (c) (d) (e) (f) 7