Architettura degli Elaboratori, 28 Febbraio 2003


Non e' ammesso l'uso di alcun testo, appunti o calcolatrici. Le risposte vanno scritte nel foglio di bella copia. Massima SINTETICITA'. L'eccessiva verbosita' verra' considerata negativamente.

Esercizio 1
* Cos'e' un Multiplexer? Cos'e' un Demultiplexer?
* Dire brevemente perche' in un latch SR la configurazione S=1, R=1 non viene utilizzata.
Esercizio 2
Dire brevemente che cosa si intende per Input/Output gestito ad interruzioni (interrupt driven I/O).
Nel programma del corso e' descritto un semplice modo di introdurre I/O gestito ad interruzioni nell'architettura Mic-1. In tale descrizione si dice che per programmare in IJVM il gestore delle interruzioni e' necessario estendere l'insieme di istruzioni IJVM con l'istruzione RETI.
Cosa fa RETI? Perche' non e' sufficiente l'istruzione RETURN?
Esercizio 3
Dire qual e' l'istruzione Mic-1 in formato mal corrispondente alla seguente stringa di 36 bit.
101100101001010011001001111011010010
Esercizio 4
Scrivere un programma Mic-2 (Due!) che interpreti la seguente istruzione che intendiamo aggiungere all'IJVM:
ADDLCL varnum1 varnum2 num3 la cui semantica e' la seguente
M[LV + varnum1] <-- M[LV + varnum2] + num3
(si pone nella variabile locale indicata da varnum1 la somma di num3 con il contenuto della variabile locale indicata da varnum2.
I campi varnum- solo lunghi un byte.
Quelli num- sono lunghi due byte. Volendo, per semplicita', si possono utilizzare, per memorizzare valori temporanei, i registri TOS, CPP e OPC, senza preoccuparsi di ripristinare i loro valori precedenti (per TOS e CPP infatti non farlo in pratica creerebbe problemi).

Esercizio 5
* Delle varie fasi del ciclo di un interprete in una macchina astratta, qual e' quella piu' lenta a venire eseguita? Perche'?
* Che cos'e' un codice ad espansione? Fornire qualche esempio di utilizzo.

Esercizio 6
Scrivere un metodo in assembly IJVM che corrisponda alla traduzione della seguente funzione scritta nel fantastico linguaggio di programmazione ITALIAN.
Funzion Pippo(arg1, arg2, arg3)
Se arg1 Piugrandougual arg2
Allor Restituisc Pippo(2Perarg2, arg3Menoarg2, arg3)
Altriment Restituisc arg1Piu'arg2Piu'arg3
Findellafunzion


Architettura degli Elaboratori
28 Febbraio 2003
Parte aggiuntiva per Anni Precedenti


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.



Si consideri la funzione booleana f= a'b + cd'b + d'b + ab'c' (l'apice " ' " corrisponde alla funzione not)
  • Quale degli implicanti dell'insieme I = { ab'c'd, c', bc, a'bd } e' un implicante di f ?
  • Qualche elemento di I e' un implicante primo di f?
  • I e' un insieme irridondante di implicanti?
  • Eliminando c' da I si ha un insieme irridondante?
    Giustificare formalmente tutte le risposte.