Esame Architetture degli Elaboratori, 15 Luglio 1999



NOME E COGNOME:

MATRICOLA:
ANNO DI CORSO:

Non e' ammesso l'uso di alcun testo, appunti o calcolatrici. Le risposte ai quesiti vanno scritte nel foglio di bella copia.

Esercizio 1

Ho un sistema di calcolo in cui il livello superiore implementa una macchina astratta il cui linguaggio e' il linguaggio JAVA. Voglio implementare sopra questo livello la macchina astratta corrispondente al linguaggio di microprogrammazione Mic-1. Posso farlo?
Se si, perche' cio' e' possibile ed in che modo posso realizzarlo?
Se no, perche' non e' possibile e quali sono le caratteristiche del Mic-1 che impediscono tale implementazione?



Esercizio 2

(a) Si consideri di avere a disposizione un elaboratore con parole di 10 bit che usa per i numeri negativi una rappresentazione in complemento a due.
Si dica per quali numeri e' possibile fornire una rappresentazione secondo le convenzioni di cui sopra. Per i numeri per cui tale rappresentazione e' possibile, fornire la rappresentazione di
-128  -733 +105
(b) Fornire la dimostrazione di correttezza dell'algoritmo di complementazione di un numero rappresentato in complemento a 2. Dimostrare cioe' che, data la rappresentazione di un numero in complemento a due, la rappresentazione del suo opposto si ottiene lasciando inalterati gli 0 meno significativi fino all'1 meno significativo compreso, ed applicando poi la negazione logica al resto delle cifre.



Esercizio 3

(a) Dare la definizione di: (b) Sintetizzare (descrivendo tutti i passi di sintesi, per quanto possano essere semplici) un circuito sequenziale che prenda in ingresso una sequenza di caratteri "a" e "b" ed invii un segnale 1 ogni volta che nella sequenza compare un carattere "b" che si trova in posizione pari dentro una sottosequenza formata da soli "b". Esempio:
-Input: aabbaaabbbbbaba....
Output: 000100001010000.....

N.B.: i circuiti combinatori della rete devono essere sintetizzati utilizzando il procedimento per ottenere forme SP minimali.



Esercizio 4

Il seguente codice rappresenta una procedura Mac1 che azzera cinque parole di memoria a partire dall'indirizzo fornito dal parametro di input.

	Z = 0
	I = 1
	A = 3

AZZERA:	DESP 2
	LOCO 0
	STOL Z
	STOL I
CICLO:	LODL A
	ADDL I
	POPI
	DESP 1
	LOCO 1
	ADDL I
	STOL I
	SUBD C5
	JNZE CICLO
	INSP 2
	RETN
c5:	5





Esercizio 5

Si consideri il seguente frammento iniziale del microprogramma (interprete) che interpreta Mac1 su Mic1.

0: mar:=pc; rd;
1: pc:=pc+1; rd;
2: ir:=mbr; if n then goto 28;
3: tir:=lshift(ir+ir); if n then goto 19;
4: tir:=lshift(tir); if n then goto 11;
5: alu:=tir; if n then goto 9;

Si ricordi che
COND: 0:nessun salto; 1:salta se N=1; 2:salta se Z=1; salta sempre
ALU: 0:A+B; 1: A and B; 2: A; 3:notA.
Il registro tir e' il numero 4.





Esercizio 6

Per ciascuna delle seguenti modalita' di indirizzamento, si specifichi come viene localizzato l'operando.
Immediato, Diretto, Indiretto, Registro, Registro indice.



Esercizio 7

Supponiamo di avere un bus con le seguenti linee
Ind -------------------------------------------------------
Dati -------------------------------------------------------
Mreq -------------------------------------------------------
Read -------------------------------------------------------

Indichiamo con t il tempo, scandito da un impulso di clock
t______________________________________________________________

Ck |-------|-------|-------|-------|-------|-------|------

Posizionare in modo coerente sulla linea t del tempo gli istanti x0, x1 e x2, dove Gli xi vanno posizionati tenendo conto che il bus e' sincrono e che la memoria impiega 3 cicli per eseguire una lettura.
Supponendo di avere un bus settling time di 30ns ed un ciclo di 100ns, dire quale deve essere il tempo minimo tra x0 e x1 e tra x1 e il termine del ciclo di clock nel quale si trova x1 e perche'. Dopo quanti nanosecondi a partire da x2 si puo' leggere senza problemi sulle linee Dati e perche?




Esercizio 8

Perche' nelle architetture RISC (ad esempio SPARC) e' necessario prevedere l'uso di istruzioni di tipo NO-OP?