ecklonia maxima - Agri 2000 Italia fertirrigazione, nutrizione

Calcolatori Elettronici T (Ing. Elettronica e Telecomunicazioni, Ing.
dell’Automazione), Prova Scritta del 29/01/2014
Esercizio N.1 (punti 18)
Si supponga di voler estendere il set di istruzioni del DLX con la nuova istruzione
CPB_ABS++ (Ri), (Rj)
ove Ri ed Rj sono registri generali. La nuova istruzione (Copy Absolute Byte) copia nella locazione di
memoria M[Ri] il valore assoluto del byte memorizzato nella locazione di memoria M[Rj]. Dopo il
trasferimento del dato, sono incrementati entrambi i registri utilizzati per indirizzare la memoria. La nuova
istruzione può essere descritta in linguaggio RTL come segue:
M[Ri]  | M[Rj] | ;
Ri  Ri +1;
Rj  Rj +1;





Si mostri come può essere codificata la nuova istruzione utilizzando il più idoneo fra i 3 formati delle
istruzioni DLX (punti 1).
Con riferimento al datapath del DLX sequenziale, si disegni il diagramma degli stati che controlla
l’esecuzione della nuova istruzione, avendo cura di minimizzare il numero degli stati ed inserendo anche
gli stati necessari al fetch ed alla decodifica. Inoltre, si richiede di specificare se il controllo realizzato
richiede o meno delle modifiche HW al datapath del DLX sequenziale studiato a lezione (punti 6).
Nell’ipotesi che tutti gli accessi alla memoria siano completati in 4 clock, si calcoli il numero di cicli di
clock (CPI) necessari per l’esecuzione della nuova istruzione (punti 2).
Utlizzando la nuova istruzione CPB_ABS++, si scriva il codice DLX necessario a copiare i valori
assoluti di 1024 bytes memorizzati consecutivamente a partire dall’indirizzo contenuto in R2 in un’area
di memoria di pari dimensioni avente indirizzo iniziale contenuto in R1 (punti 4).
Si riscriva il codice necessario all’esecuzione dell’operazione precedente usando l’ISA DLX standard
(quindi privo della CPB_ABS++). Assumendo ancora che gli accessi alla memoria siano completati in 4
clock ed ipotizzando che la metà dei byte memorizzati a partire dall’indirizzo contenuto in R2 abbia
valore negativo, si confronti il CPUtime relativo alle due versioni del codice, indicando quale, a parità di
periodo di clock della CPU, risulta più efficiente. (punti 5).
Esercizio N.2 (punti 13)
Un sistema a microprocessore, con BA[23..0], BD[15..0], I/O isolato a 64KB (BA[15..0]), è dotato di 640
KB di EPROM mappati agli indirizzi alti, 2304 KB di RAM mappati agli indirizzi bassi (6 chip di RAM)
porte di I/O.
 Si scrivano le espressioni dei segnali di CS delle EPROM e delle RAM, mostrando chiaramente
l’intervallo di indirizzi associato ai chip nonché la decodifica completa e la decodifica semplificata
(punti 5).
 Considerando solo i chip di RAM, si mostri l’interfacciamento al bus di sistema e la rete logica che
genera i segnali di CS secondo la decodifica semplificata (punti 4).
 Si progetti la rete logica per la generazione del segnale di READY della CPU nelle seguenti ipotesi
(punti 4):
 La CPU dispone di un segnale, detto IO/M#, che diviene valido all’inizio del ciclo di bus
(con la medesima temporizzazione degli indirizzi) e durante il ciclo discrimina fra accessi
nello spazio di I/O (IO/M#=1) ed accessi nello spazio di memoria (IO/M#=0).
 Le porte di I/O richiedono 2 stati di wait, le RAM di taglia maggiore di 128K richiedono 1
stato di wait, le RAM di taglia minore o uguale a 128K non richiedono stati di wait, le
EPROM di taglia maggiore di 128K richiedono 2 stati di wait, le EPROM di taglia minore o
uguale a 128K richiedono 1 stato di wait.