Architettura degli elaboratori, 13 Luglio 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.
Se si passa lo scritto, si deve obbligatoriamente sostenere anche un
colloquio orale. Date ed orari degli orali
verranno indicati nella pagina dei risultati e sul Forum.
Esercizio 1
Cosa si intende per "gerarchia di memoria" (memory hierarchy)?
Discuterne.
Esercizio 2
La rappresentazione binaria delle istruzioni Mic-2 e' identica
a quella per le istruzioni Mic-1? Se si, giustificare. Se no,
specificare cosa occorre modificare rispetto alla rappresentazione
binaria di Mic-1.
Esercizio 3
Si supponga di aggiungere a IJVM (realizzato per interpretazione su Mic-1)
una nuova istruzione BOING e di aver inserito nel Control Store il codice Mic-1
che la realizza.
Si supponga che il codice operativo di BOING sia 0x01 e che,
per motivi a noi ignoti, sia impossibile inserire il segmento di codice Mic-1
che realizza BOING nel Control Store a partire dall'indirizzo 0x01.
Scrivere le istruzioni (due o piu') da mettere nel microinterprete al posto dell'istruzione Main1 affinche' tutto possa funzionare comunque correttamente.
Nello scrivere il codice si supponga che l'etichetta "boing1" corrisponda all'indirizzo del Control Store dove e' stato memorizzato il codice che realizza BOING.
Commentare il codice. Codice non commentato non verra' valutato.
Se si utilizzasse Mic-2 al posto di Mic-1 per risolvere lo stesso problema,
si potrebbe pensare di concludere ogni microprogramma
delle varie istruzioni IJVM con un'istruzione "goto Main1" (eliminando quindi
il "goto(MBR) )" e poi di aggiungere al microinterprete Mic-2 la microistruzione
Main1 Z=MBR1-1; if(Z) goto boing1; else goto(MBR1)
Questa soluzione pero' non funzionerebbe. Perche'?
Descrivere brevemente perche', se si usa Mic-2, la soluzione di questo problema richiederebbe una pesante modifica del microinterprete.
Esercizio 4
Elencare alcuni modi per implementare operazioni di Input/Output.
Nel corso si e' fatto un esempio dettagliato di una particolare implementazione
di Input/Output, estendendo e modificando l'hw Mic-1.
Supponiamo che ad un dato istante si abbia la seguente situazione all'
interno del controller della tastiera:
IP RDY
CSR 0000000000000001 BR 0110111000000000
Che cosa e' probabile che sia successo negli istanti precedenti? Cosa accadra' probabilmente
negli istanti successivi?
Esercizio 5
Descrivere la rappresentazione (a lunghezza fissa)
in complemento a due dei numeri interi.
Fornire una procedura per ottenere, data la rappresentazione
in complemento a due di un numero, quella del suo opposto.
Dimostrare formalmente la correttezza di tale procedura.