Corso di Laurea in Informatica Architetture degli Elaboratori Corsi A e B Scritto del 10 luglio 2006 Si ricorda che non è possibile usare appunti, calcolatrici, e nessun altro materiale cartaceo o elettronico. Per ogni esercizio il massimo punteggio conseguibile è indicato nella prima riga. La somma di tutti i punteggi conseguibili è uguale a 33. Per gli esercizi a risposte multiple vero/falso, per ogni risposta lo studente può fare una croce su V, se ritiene che l affermazione sia corretta, su F se ritiene che l affermazione sia errata, oppure non rispondere. Se l esercizio vale N punti e ci sono K risposte possibili, ogni risposta corretta apporta un punteggio di N/K, ogni risposta errata comporta al più una diminuzione di punteggio pari a N/K, mentre ogni risposta saltata lascia il punteggio invariato. Esercizio 1 (punti 2) Considerare una codifica su 8 bit in complemento a due e rappresentare i seguenti numeri A = 33 e B = 98. Eseguire, inoltre, le operazioni che seguono in binario segnalando, qualora si verifichi, la presenza di overflow. (a) A + B (b) A - B (c) A and B (d) A or B Esercizio 2 (punti 2) Dati i valori 16 e 16 in base dieci, dare la corrispondente rappresentazione nei seguenti casi o indicare esplicitamente se non è possibile: 1. Rappresentazione in base due in complemento a uno su 5 bit; 2. Rappresentazione in base due in complemento a due su 5 bit; 3. Rappresentazione in base due in complemento a uno su 8 bit; 4. Rappresentazione in base due in complemento a due su 8 bit; 5. Rappresentazione in base due in valore assoluto e segno su 8 bit. Esercizio 3 (punti 2) Si vuole memorizzare su di una memoria flash di 128 MByte un certo numero di immagini della dimensione 1024 512 pixel in cui ogni pixel e rappresentato in RGB. Ognuno dei tre canali di colore è memorizzata su di un byte. 1
Esercizio 4 (punti 2) Si supponga di avere un elaboratore con 256 MByte di memoria principale. Si supponga inoltre che tale elaboratore memorizzi gli interi su 16 bit in complemento a due e che tali valori siano prelevati dalla memoria mediante un singolo ciclo di lettura. Indicare l ampiezza minima del registro di indirizzamento alla memoria (MAR) e del registro che memorizza i dati provenienti dalla memoria (MDR). Esercizio 5 (punti 2) Data la microistruzione MAL wideiload4 MAR = LV + H; rd; goto iload3 nella microarchitettura Mic-1, fornire la corrispondente configurazione dei bit del MIR, supponendo che iload3 si trovi all indirizzo 0x0F5, che i registri sul bus B sono codificati nel seguente modo: MDR (0), PC (1), MBR (2), MBRU (3), SP (4), LV (5), CPP (6), TOS (7), OPC (8) e che i segnali di controllo dell ALU sono dati dalla seguente tabella: F 0 F 1 ENA ENB INV A INC F unzione 0 1 1 0 0 0 A 0 1 0 1 0 0 B 0 1 1 0 1 0 A 1 0 1 1 0 0 B 1 1 1 1 0 0 A + B 1 1 1 1 0 1 A + B + 1 1 1 1 0 0 1 A + 1 1 1 0 1 0 1 B + 1 1 1 1 1 1 1 B A 1 1 0 1 1 0 B 1 1 1 1 0 1 1 A 0 0 1 1 0 0 A AND B 0 1 1 1 0 0 A OR B 0 1 0 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 1 0 1 Esercizio 6 (punti 2) Le seguenti microistruzioni realizzano l istruzione IJVM GOTO offset che fornisce il branch non condizionato. Completare le parti mancanti. = PC - 1 PC = PC + 1; H = MBR << 8 H = MBRU OR = OPC + H; fetch goto Main1 Esercizio 7 (punti 3) Data un informazione memorizzata su n + r bits (n bits per i dati e r per il controllo: (a) con r = 1 e tecnica del bit di parità, solo 2 n configurazioni sono valide; (b) con il bit di parità si rilevano tutti gli errori di un bit; (c) con il bit di parità si rilevano tutti gli errori che sono in numero dispari; (d) se l errore è di un solo bit, con il bit di parità posso correggerlo; (e) in un codice con n = 12, in cui le sole 4 configurazioni che rappresentano codici validi sono 0x000, Ox03F, OxF C0, 0xF F F, se arriva la parola 0x00F e si sono verificati al più errori doppi, la parola inviata era 0x03F. 2
Esercizio 8 (punti 3) In un bus con arbitraggio centralizzato a un livelli, con 6 dispositivi numerati da 1 a 6 per distanza crescente dall arbitro (a) se tutti i dispositivi richiedono costantemente il bus, tutti lo avranno in un ordine casuale; (b) se tutti i dispositivi richiedono costantemente il bus, tutti lo avranno nell ordine da 1 a 6; (c) lo avrà sempre il dispositivo 1; (d) è l arbitro che, in base a proprie politiche, decide a chi va il bus; (e) l arbitraggio prevede che i dispositivi siano collegati a festone (daisy chaining) (f) necessita di un gestore delle interruzioni; (g) l arbitraggio centralizzato necessita di un arbitro; Esercizio 9 (punti 3) Cosa differenzia un bus sincrono da un bus asincrono: breve descrizione di ognuno e vantaggi/svantaggi dell uno e dell altro. Esercizio 10 (punti 3) In un architettura a pipeline a 5 stadi, assumendo che ogni stadio impieghi 2 unità di tempo e che la pipeline possa essere caricata con un istruzione ogni 2 unità di tempo, partendo dal tempo T = 0: (a) la prima istruzione termina l esecuzione al tempo 2; (b) la prima istruzione termina l esecuzione al tempo 10; (c) ogni 2 unità di tempo termina sempre 1 istruzione; (d) dal tempo 10 in poi, in ogni istante di tempo ci sono esattamente 5 istruzioni in esecuzione, se il programma è sequenziale; (e) rispetto ad una CPU senza pipeline con un ciclo di 10 unità di tempo, il numero di istruzioni completate nell unità di tempo è sino a 5 volte maggiore nella cpu con pipeline; Esercizio 11 (punti 3) Considerando una rappresentazione in virgola mobile mantissa (frazione) ed esponente n = f 10 exp, con 0 f < 1 usando la rappresenzatione modulo e segno in base 10 per f e exp, e assegnando 2 cifre più segno sia per f che per exp, fare un esempio di (a) numero rappresentabile; (b) underflow positivo; (c) overflow positivo; (d) underflow negativo; (e) overflow negativo; 3
Esercizio 12 (punti 3) Si consideri l architettura denominata Mic-2. (a) Il control store contiene un numero di microistruzioni superiore rispetto all architettura Mic-1 ma inferiore in termini di lunghezza della singola microistruzione. (b) Dispone di una unità per l esecuzione in parallelo del caricamento delle istruzioni (prefetch). (c) L operando di sinistra dell ALU (bus A) è implicito, in quanto fornito sempre dal registro H. (d) L ALU effettua l incremento del registro PC per reperire l istruzione successiva. (e) In generale, i tempi di preparazione dei segnali di controllo ( w), di caricamento del contenuto di un registro sul bus B ( x), di funzionamento della ALU e dello shifter ( y), di propagazione dei risultati ai registri ( z) e la larghezza dell impulso di clock sono assunti più brevi rispetto a quelli dell architettura Mic-1. Esercizio 13 (punti 3) Scrivere una sequenza di istruzioni in MAL per il Mic-1 che realizzi l istruzione IJVM ILOAD 2 formata da un solo byte che carica sul top dello stack la variabile locale di offset 2. Ci si ispiri al codice che microinterpreta l istruzione ILOAD: H = LV MAR = MBRU + H; rd MAR = SP = SP + 1 PC = PC + 1; fetch; wr TOS = MDR; goto Main1 Punti totali: 33/30. 4
Scritto di Architetture degli Elaboratori del 10/7/2006 MODULO RISPOSTE Cognome: Nome: Matricola: Corso: A B 1. (Punti 2) (a) A = (b) B = (c) A + B = (d) A - B = (e) A and B = (f) A or B = 2. (Punti 2) (1) Base 2, compl. 1, 5 bit: (2) Base 2, compl. 2, 5 bit: (3) Base 2, compl. 1, 8 bit: (4) Base 2, compl. 2, 8 bit: (5) Base 2, modulo e segno, 8 bit: 3. (Punti 2) Numero immagini: 4. (Punti 2) Dimensione MDR: Dimensione MAR: 5. (Punti 2) NEXT ADDRESS (in binario, 9 bit): JMPC, JAMN, JAMZ: SLL8, SRA1: F 0, F 1, ENA, ENB, INVA, INC: H, OPC, TOS, CPP, LV, SP, PC, MDR, MAR: WRITE, READ, FETCH: Bus B: 5
6. (Punti 2) 7. (Punti 3) = PC - 1 PC = PC + 1; H = MBR << 8 H = MBRU OR = OPC + H; fetch goto Main1 8. (Punti 3) (f) V F (g) V F 9. (Punti 3) 10. (Punti 3) 11. (Punti 4, -1) (a) (b) (c) 6
(d) (e) 12. (Punti 3) 13. (Punti 3) 7
Scritto di Architetture degli Elaboratori del 10/7/2006 SOLUZIONI Cognome: Matricola: Nome: Corso: 1. (Punti 2) (a) A = 11011111 (b) B = 10011110 (c) A + B = overflow (d) A - B = 01000001 (e) A and B = 10011110 (f) A or B = 11011111 2. (Punti 2) (1) Base 2, compl. 1, 5 bit: NO NO (2) Base 2, compl. 2, 5 bit: 10000 NO (3) Base 2, compl. 1, 8 bit: 11101111 00010000 (4) Base 2, compl. 2, 8 bit: 11110000 00010000 (5) Base 2, modulo e segno, 8 bit: 10010000 00010000 3. (Punti 2) Numero immagini: 85 4. (Punti 2) Dimensione MDR: 16 bit Dimensione MAR: 27 bit 5. (Punti 2) 6. (Punti 2) NEXT ADDRESS (in binario, 9 bit): 011110101 JMPC, JAMN, JAMZ: 000 SLL8, SRA1: 00 F 0, F 1, ENA, ENB, INVA, INC: 111100 H, OPC, TOS, CPP, LV, SP, PC, MDR, MAR: 000000001 WRITE, READ, FETCH: 010 Bus B: 0101 OPC = PC - 1 PC = PC + 1; fetch H = MBR << 8 8
7. (Punti 3) H = MBRU OR H PC = OPC + H; fetch goto Main1 8. (Punti 3) (f) V F (g) V F 9. (Punti 3)... 10. (Punti 3) 11. (Punti 4, -1) (a) (b) (c) (d) (e) 12. (Punti 3) 13. (Punti 3) MAR = LV + 1 MAR = MAR + 1; rd MAR = SP = SP +1 TOS = MDR; wr; goto Main1 9