PROVA SCRITTA DEL MODULO DI CORSO DI LAUREA IN INGEGNERIA ELETTRICA ED ELETTRONICA, INGEGNERIA BIOMEDICA - 6 CFU Settembre 204 NOME: COGNOME: MATRICOLA: ESERCIZIO RETI LOGICHE (0 punti) Si vuole implementare una rete sequenziale finalizzata al riconoscimento della stringa osso, utilizzando due ingressi X e Y, i cui valori a coppie indicano i seguenti caratteri {X=0, Y=0} a, {0} n, {0} s, {} o. La rete è dotata di una uscita Z posta ad solo se viene riconosciuta la stringa di cui sopra. Si usino FF-T nell implementazione della rete, e le mappe di Karnaugh per semplificare le reti di transizione di stato ed uscita. ESERCIZIO 2 UNITA DI MEMORIA (8 punti) Si consideri un unità di memoria primaria da 024 parole, ed una cache di 64 parole. La memoria è organizzata in blocchi da quattro parole ciascuno, e il metodo di indirizzamento è associativo su insiemi a due vie. ) ( punto) Spiegare, precisando bene il significato e la funzione dei diversi campi, come vengono interpretati gli indirizzi logici per recuperare l informazione contenuta nella cache. 2) (4 punti) Supporre che vengano richieste, in sequenza, e per dieci volte consecutive, le parole dall indirizzo 0 all indirizzo 3 e dall indirizzo 52 all indirizzo 543. Motivando ogni passaggio intermedio, indicare chiaramente lo stato finale della cache dopo l ultima chiamata e calcolare l hit ratio. 3) (3 punti) Calcolare il valore minimo dell hit ratio nel caso sia necessario avere un tempo medio di accesso ad una gerarchia cache-primaria inferiore a 0 ns, sapendo che il tempo medio di accesso in cache è 5 ns e quello di accesso alla primaria è 50 ns. Il valore di hit ratio trovato al punto precedente soddisfa queste specifiche? ESERCIZIO 3 LINGUAGGIO ASSEMBLY MIPS (8 punti) Si implementi in Assembly MIPS una funzione che, ricevendo in ingresso l indirizzo iniziale di un vettore v di interi compresi fra 0 e 99 in $4 e la sua dimensione in $5, memorizzi il valore contenuto nel vettore la cui frequenza è massima in $6, e tale frequenza in $7. Nel risolvere il problema si consideri l area di memoria completamente libera dall indirizzo 024 all indirizzo 2048 (tutte le parole dell area sono impostate a 0). Spiegare come si intendono usare i registri e l area di memoria indicata. ESERCIZIO 4 UNITA LOGICO-ARITMETICA (7 punti) Siano dati 6 bit per la rappresentazione di valori numerici in virgola mobile. Si consideri una mantissa M frazionaria e normalizzata in segno e valore con modalità.m (bit di parte intera implicito), esponente a 7 bit in eccesso 64, e bit di segno. ) (3 punti) Spiegando bene ogni passo del ragionamento, indicare il minimo ed il massimo numero rappresentabili, escluso lo zero. Spiegare e motivare se il valore 2 30 è rappresentabile. 2) (2 punti) Rappresentare i valori 32.75 e 2.25, qui espressi in notazione decimale, nella notazione in virgola mobile indicata nel testo, indicando chiaramente i valori dei bit nei campi segno, esponente e mantissa. 3) (2 punti) Sommare i valori al punto 2, secondo l algoritmo di somma utilizzato nei calcolatori elettronici. E richiesta l esposizione dettagliata di ogni passo di tale algoritmo.
ESERCIZIO RETI LOGICHE (0 punti) Il grafo degli stati della rete è il seguente: Tabella delle transizioni, impostando ciascuno stato tramite una coppia di bit AB tali che {} S0, {0} S, {0} S2, {} S3. A B X Y A TA B TB 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 La rete di transizione dell uscita non necessita semplificazione in quanto Z vale solo in corrispondenza del riconoscimento di osso. Da cui. Semplifichiamo ora gli ingressi del blocco di ritardo attraverso le mappe di Karnaugh. XY AB 0 0 XY AB 0 0 0 0 0 0 Calcolatori Elettronici Settembre 204
ESERCIZIO 2 UNITA DI MEMORIA (8 punti) I campi di indirizzamento sono offset, set index, e tag. I blocchi sono da quattro parole, quindi per la singola parola entro il blocco occorrono due bit, ovvero l offset è di due bit. Il numero di bit nei campi cache index e tag dell indirizzo a dieci bit, dipende dal metodo di indirizzamento della cache. Poiché la cache è indirizzato con metodo set-associativo, il campo set index è dato dal numero di bit necessari per indirizzare la cache tolti i bit di offset e il bit non necessario per l indirizzamento delle due vie per set. Poiché la cache si indirizza con 6 bit, abbiamo che il set index è dato tre bit. In sintesi: < tag 5 bit > <set index 3 bit > < offset 2 bit>. Se vengono richieste, in sequenza, le parole da 0 a 3, significa che vengono richiesti, in sequenza, i primi otto blocchi di memoria primaria. Infatti le prime trentadue parole, essendo raggruppate per quattro (dimensione di ogni blocco), corrispondono ai primi otto blocchi. La cache, come si evince dai dati, è data da 64 parole, organizzate in otto set con due linee per set (ogni linea ha la stessa dimensione del blocco). Poiché il metodo è set-associativo, e la cache si può supporre inizialmente vuota, ciascuno dei blocchi viene copiato in cache nella prima linea libera di ciascun set, causando un miss e tre hit per ciascun blocco. Al termine del primo ciclo, avremo totalizzato dunque 3 * 8 = 24 hit su 32 chiamate complessive. Il secondo blocco di parole presenta lo stessa sequenza di set index del precedente (per verificarlo è sufficiente dividere 52/4 = 28, e poi 28/8 = 6 con resto 0). Poiché il metodo è a due vie, i blocchi trovano spazio nella seconda linea libera di ciascun set, con 3 * 8 = 24 hit su 32 chiamate. Dall iterazione 2 alla 0, tutte le parole risiedono in cache quindi avremo 64 hit per ciascuna delle nove iterazioni. Quindi, l hit ratio è dato da: Per quanto riguarda lo stato finale della cache, dal ragionamento fatto sopra: Set Contiene le parole 0 (linea 0) 0-3, (linea ) 52-55 4-7, 56-59 2 8-, 520-523 3 2-5, 524-527 4 6-9, 528-53 5 20-23, 532-535 6 24-27, 536-539 7 28-3, 540-543 Il valore minimo dell hit ratio dati i valori nel testo si calcola dalla formula: Da cui: ( ) Dove Tc è il tempo di accesso in cache, Tp il tempo di accesso in primaria, Tm il tempo medio di accesso alla gerarchia. Dal calcolo risulta evidente che il valore di Hc trovato nel punto precedente soddisfa le specifiche, avendo ottenuto un hit ratio pari 0.975 chiaramente superiore a 0.9. Calcolatori Elettronici Settembre 204
ESERCIZIO 3 LINGUAGGIO ASSEMBLY MIPS (8 punti) Nella soluzione che proponiamo utilizzeremo i registri come segue: $8 come contatore delle parole lungo la dimensione del vettore in ingresso $0 per contenere il valore v[$8] $ per contere la frequenza del valore v[$8] L area di memoria sarà usata come segue. Le prime locazioni a partire dalla 024 conterranno la frequenza del valore x = v[$8]. Verranno quindi indirizzate come 024+x*4. L area è costituita da 256 locazioni libere quindi possiamo utilizzarla allo scopo. Ci serviremo infine di un registro $9 atto a svolgere varie mansioni: - Destinatario del valore $8 * 4; - Destinatario del valore x * 4; - Indirizzo di v[$8]; - Valore di verità del confronto massima frequenza trovata < frequenza di v[$8]. Con queste premesse, il codice Assembly è il seguente: maxfreq: addi $29, $29, -6 sw $8, 0($29) sw $9, 4($29) sw $0, 8($29) sw $, 2($29) move $8, $0 move $7, $0 loop: beq $8, $5, exit muli $9, $8, 4 add $9, $9, $4 lw $0, 0($9) muli $9, $0, 4 lw $, 024($9) addi $, $, sw $, 024($9) slt $9, $7, $ bne $9, $0, update continue: addi $8, $8, j loop exit: lw $8, 0($29) lw $9, 4($29) lw $0, 8($29) lw $, 2($29) addi $29, $29, 6 jr $3 update: move $6, $0 move $7, $ j continue Calcolatori Elettronici Settembre 204
ESERCIZIO 4 UNITA LOGICO-ARITMETICA (7 punti) Con i bit a disposizione, il valore in virgola mobile ha, oltre al bit di segno, sette bit di esponente e otto bit per la mantissa. La configurazione minima si ottiene impostando a zero tutti i bit della mantissa, lasciando quindi il solo bit implicito, e calcolando il minimo esponente possibile. Dal momento che l esponente è in eccesso 64, il minimo sarà appunto -64. Quindi il minimo valore rappresentabile sarà 2-64. Il massimo valore si ottiene considerando ad uno tutti gli otto bit della mantissa e calcolando il massimo esponente, che sarà dato da 27 (massimo valore rappresentabile in eccesso 0) a cui sottrarremo l eccesso. Il massimo esponente è dunque 63. Per quanto riguarda la mantissa, essa corrisponderà alla configurazione., ovvero + 2-8, da cui 2 2-8. Quindi il massimo valore rappresentabile è dato da 2 63 *(2 2-8 )= 2 64 2 55. Questo valore è chiaramente inferiore a 2 30, che non può essere rappresentato. Per rappresentare i due valori, li rappresentiamo in virgola fissa usando per la parte intera il metodo delle divisioni successive e per la parte frazionaria il metodo delle moltiplicazioni successive. 32.75 = 0. =.0 *2 5. 2.25 =.0 =.0*2 3. Per rappresentare gli esponenti 5 e 3 dobbiamo sommare l eccesso (64), ottenendo e. Quindi i due valori si rappresentano nel seguente modo: Esp. Mantissa S S Con S bit di segno (lo stesso per entrambi). La somma di questi due valori seguendo l algoritmo dei calcolatori prevede i passaggi: ) Confronto degli esponenti: il primo valore ha esponente superiore al secondo. La differenza fra i due è 5-3=2. 2) Shift a sinistra della mantissa del numero superiore in corrispondenza della differenza calcolata al punto :..0 3) Somma delle mantisse:.0+.0 = 0.0 4) Normalizzazione della mantissa: 0.0 *2 3 =.*2 5. Quindi la somma è rappresentata nel seguente modo: S 0 Calcolatori Elettronici Settembre 204