Esercizi d'esame di Architettura degli Elaboratori I

Appello del 3 luglio 1998

Esercizio 1 (15 punti)

Progettare l'architettura di un bus di comunicazione "molti-molti" (ovvero tra più sorgenti e più destinazioni), che consenta di caricare il contenuto di 2 fra N registri R1...RN su 1 fra M dispositivi di elaborazione E1....EM a due ingressi (dunque la comunicazione avviene fra 2 su N sorgenti ed 1 su M destinazioni)

Disegnare lo schema a blocchi evidenziando tutti i segnali di controllo necessari per:

- selezionare 2 fra N registri sorgente, ovvero i due operandi (OP1 e OP2)

- convogliare i 2 operandi in ingresso ad uno fra M dispositivi di elaborazione, Ei.

Disegnare lo schema circuitale (quindi con tutti i dettagli fino al livello di FF , porte logiche, numero e ruolo dei segnali di controllo Ci necessari) per il caso di:

• 3 registri sorgente a due bit (N=3), con FF di tipo JK

• 2 dispositivi destinazione(M=2), di cui uno sia un sommatore aritmetico, e l'altro un circuito logico che esegua l'AND fra i due registri sorgente selezionati.

(Ad esempio, se OP1=R1 e OP2=R3 e Ei=AND, si dovrà eseguire: R1 AND R3)

Non occorre preoccuparsi anche della memorizzazione del risultato.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Soluzione

Figura 1

La figura 1 mostra uno schema a blocchi del sistema di connessione di (2 fra) N registri ed M dispositivi di elaborazione, ciascuno dei quali elabora due operandi. Ogni multiplexer é in realtà composto da 2 gruppi di multiplexer. Il primo gruppo seleziona il primo operando (1 fra N registri) il secondo seleziona il secondo operando (1 fra N registri). Poiché ogni operando é di K bit (dimensioni del registro), in realtà per ogni operando occorrono K multiplexer, attivati dagli stessi segnali di controllo, ciascuno dei quali seleziona il bit j-esimo (j=1..K) del p-esimo operando (p=1...N).

Occorrono 2n segnali di controllo, con n=Èlog2N˜ (parte intera superiore). C1..Cn selezionano il primo operando, Cn+1..C2n selezionano il secondo operando. Infine, occorre un segnale di controllo per ogni dispositivo E1..EM, per abilitare la lettura degli operandi.

Figura 2

La figura 2 mostra lo schema dettagliato nel caso di 3 registri a 2 bit.

MPX1 seleziona il bit 1 del primo operando OP1(1), scegliendolo fra le uscite Q31 Q21 e Q11 dei registri R3, R2 ed R1.

Analogamente, MPX2 seleziona il bit 0 del primo operando OP1(0), MPX3 seleziona il bit 1 del secondo operando OP2(1) e MPX4 il bit 0 del secondo operando OP2(0).

 

I segnali di controllo c1 e c2 selezionano il primo operando. Ad esempio:

c2 c1

seleziona

0 0

nessuno

0 1

R1

1 0

R2

1 1

R3

analoghe combinazioni di c3 e c4 selezionano il secondo operando. I segnali and e add abilitano una delle due elaborazioni considerate.

Ad esempio, la quintupla di segnali di controllo:

and=1, c2=0 c1=1, c3=1 c4=1

abilita l'esecuzione dell'elaborazione:

AND R1 R3

 

Esercizio 2

Una macchina sequenziale, posta in uno stesso stato iniziale, riceve in ingresso una volta la sequenza 1 1 1 0 1 0 0 1 0 1 1 0, producendo in uscita la sequenza 1 0 1 0 1 0 1 0 1 0 1 0, e una volta la sequenza 0 0 0 0 0 0 1 1 1 1 1 0, fornendo in uscita e 0 1 0 0 1 0 1 0 1 0 1 0.

Si mostri l'automa a stati finiti che descrive il comportamento della macchina, assumendo che per ogni continuazione delle sequenze, la macchina continui a produrre in uscita 0 e 1 alternati.

(Non sono richiesti tabella di verità né schema circuitale, ma solo il diagramma degli stati. Si suggerisce di usare automi di Mealy).

Soluzione

Si può osservare che a partire da un certo istante in poi, l'automa, indipendentemente dall'ingresso, si alterna a produrre 0 o 1. In particolare, questo avviene a partire dal quarto istante, in cui viene comunque emesso uno 0.

Se si modella il sistema come una macchina di Mealy, si può allora pensare che l'automa si componga di un contatore in grado di contare fino a 5 (quindi con cinque stati) e che gli ultimi due stati rappresentino un ciclo in cui il sistema, indipendentemente dall'input, produce alternativamente uno 0 o un 1.

Resta il problema di identificare la funzione di uscita, considerando che nei primi tre stati l'ingresso può influenzare l'uscita.

Assumiamo allora la seguente codifica per i cinque stati, osserando che avremo bisogno di tre bit (e dunque 3 FF):

S0=000, S1=001, S2=010, S3=011, S4=100. Chiamiamo Q0 il bit meno significativo e Q2 quello più significativo.

Otteniamo, dalle specifiche ingresso-uscita, la seguente tabella:

x

Q2

Q1

Q0

Q2'

Q1'

Q0'

y

0

0

0

0

0

0

1

0

0

0

0

1

0

1

0

1

0

0

1

0

0

1

1

0

0

0

1

1

1

0

0

0

0

1

0

0

0

1

1

1

0

1

0

1

X

X

X

X

0

1

1

0

X

X

X

X

0

1

1

1

X

X

X

X

1

0

0

0

0

0

1

1

1

0

0

1

0

1

0

0

1

0

1

0

0

1

1

1

1

0

1

1

1

0

0

0

1

1

0

0

0

1

1

1

1

1

0

1

X

X

X

X

1

1

1

0

X

X

X

X

1

1

1

1

X

X

X

X

In definitiva, l'automa può essere rappresentato nel seguente modo:

Nel caso si scelga di modellare il sistema come un automa di Moore, trascurando l'uscita prodotta dal sistema quando si trova nello stato iniziale, uno dei possibili automi è

Si osservi infatti che nulla sappiamo di cosa potrebbe succedere nel caso che al primo 0 segua un 1. Per semplicità abbiamo assunto che sia solo il primo bit letto in ingresso a determinare la catena di stati intermedi da seguire.