Università degli Studi di Roma "La Sapienza" -
Corso di Laurea in Ingegneria Informatica
a.a. 2004-2005
Un'interfaccia IFCMP opera come coprocessore per l'esecuzione di moltiplicazioni tra numeri complessi, rappresentati come coppie ordinate di numeri reali floating-point a 64 bit. L'interfaccia riceve dalla CPU PD-32 due operandi complessi X = XR + j XI, Y = YR + j YI, dove j = Ö(-1) è l'unità immaginaria, e trasmette alla CPU il risultato
Z = ZR + j ZI = (XR YR - XI YI) + j (XR YI + XI YR)
L'hardware dell'interfaccia utilizza un singolo modulo sequenziale FPMA (Floating-Point Multiply/Add, Fig. 1) per l'esecuzione dell'operazione R = A + B C, dove A, B, C, R sono numeri reali floating-point a 32 bit; l'inizio e il termine delle operazioni del modulo sono determinati dai segnali presenti rispettivamente all'ingresso BEGIN e all'uscita END (Fig. 2).
Fig. 1 |
Fig. 2 |
Il software di pilotaggio è organizzato sotto forma di subroutine che riceve in ingresso:
Progettare l'hardware dell'interfaccia e codificare la relativa subroutine di pilotaggio, corredandola di adeguati commenti.
NOTE:
1. | (5 punti) Descrivere l'organizzazione
di una cache set-associativa a 4 vie, con capacità di 4 MByte (tag e bit di controllo
esclusi) e lunghezza di blocco pari a 8 parole da 32 bit; evidenziare inoltre i vari campi
in cui viene suddiviso l'indirizzo a 32 bit applicato alla cache e discutere la loro
funzione. |
2. | (5 punti) Un programma
viene eseguito in 2.1 secondi; una sua subroutine, che viene richiamata 70 volte nel corso
del programma, richiede un tempo di esecuzione di 10 millisecondi. Se la subroutine viene
riscritta in modo da risultare il 75% più veloce, di quanto aumenterà la velocità
dell'intero programma? |
3. | (5 punti) Descrivere le circostanze in
cui si verificano conflitti di dati in una CPU MIPS-32 organizzata in pipeline, e
discutere le tecniche per ridurre o eliminare gli stalli che ne conseguono. |