Architettura degli elaboratori, 5 Ottobre 2010
Per A.A. precedente a 08/09 (6 crediti): esercizi 1-4
Per A.A. 08/09 e successivi (9 crediti): esercizi 1-5
(Indicare sul compito se il proprio piano di studi richiede 6 o 9 crediti)
Non e' ammesso l'uso di alcun testo, appunti o
calcolatrici. Le risposte vanno scritte nel foglio di bella copia. Si
raccomanda la massima SINTETICITA'. L'eccessiva verbosita' verra'
considerata negativamente.
Gli iscritti alla laurea
triennale debbono essersi prenotati sul portale studenti del nostro
ateneo. Se cio' non e' stato fatto, comunicatelo immediatamente
al docente o all'assistente in aula.
Gli orali si terranno giovedi' 7 alle ore 14 in aula 41.
Esercizio 1
Cosa si intende per multiplexed bus?
A cosa serve la linea WAIT in un bus sincrono?
Perche' deve esser presente anche nei bus asincroni?
Esercizio 2
Supponiate di non avere in IJVM l'istruzione IADD e che
per fare una somma abbiate pero' a disposizione un metodo add.
Con queste assunzioni, scrivere un metodo in assembly IJVM che calcoli la moltiplicazione in modo ricorsivo
utilizzando la somma, nel seguente modo:
x*0 = 0
x*y = x + x*(y-1) se y e' diverso da 0
Commentare il codice.Codice non commentato non verra' valutato.
Esercizio 3
Nelprogramma del corso e' presente un esempio di
I/O gestito ad interruzioni per la macchina del livello ISA del Tanenbaum.
In tale esempio il controllo della presenza di
interruzioni e' realizzato dall'interprete microprogrammato estendendo
il microinterprete del Tanenbaum con le seguenti microistruzioni
int1 if opc[15] goto main1;
int2 if (not(opc[0]) and not(opc[1]) ... and not(opc[7])) goto main1;
int3 SP=MAR=SP+1;
int4 MDR=PC; wr;
int5 SP=MAR=SP+1;
int6 MDR=OPC; wr;
int7 MAR=OxFF; rd;
int8 OPC[15]=1;
int9 PC=MDR; fetch;
int10
Descrivere cosa fanno (e perche') tali microistruzioni. Non tutte le microistruzioni
sono microistruzioni Mic-1. Quali non lo sono? perche' sono state aggiunte?
Modificare il precedente microcodice affiche' il gestore delle interruzioni
venga eseguito ad interruzioni abilitate.
Dire brevemente e informalmente come si potrebbe far si che il gestore
gestisca le interruzioni supponendo che esistano delle priorita' tra i vari devices.
Perche' il gestore delle interruzioni deve necessariamente essere realizzato
con un segmento di codice IJVM e non in Mic-1?
E' possibile poter far si che il controllo della presenza di interruzioni
sia realizzato in hardware? Se si, descrivere informalmente un modo possibile di farlo,
se no, giustificare la risposta negativa.
Esercizio 4
Prendendo in considerazione l'esempio di assemblaggio per l'assembly IJVM proposto nel materiale
del corso, descrivere il comportamento del Linker.
Esercizio 5
Rappresentazione dei numeri razionali in Virgola Mobile
e Standard IEEE 754.
Discuterne brevemente.