Università degli Studi di Roma "La Sapienza" - Corso di Laurea in Ingegneria Informatica
a.a. 2002-2003

Calcolatori Elettronici II (A-L)

Appello del 7 luglio 2003

 

Prima prova (15 punti)

Un'interfaccia IFRTC (Real Time Clock) utilizza un generatore interno di clock a 32 kHz per mantenere un orologio in tempo reale con le seguenti informazioni: anno, mese, giorno, ore, minuti, secondi, millisecondi.

Il driver software residente sulla CPU PD-32 è strutturato in due subroutine, GET_RTC e SET_RTC, ciascuna delle quali accetta come argomento un puntatore a un blocco di dati da 10 byte così strutturato:

La subroutine GET_RTC legge dall'interfaccia le informazioni di data/ora corrente e riempie il blocco, mentre la subroutine SET_RTC utilizza le informazioni trovate nel blocco per inizializzare l'orologio.

Descrivere la struttura hardware dell'interfaccia IFRTC (assumendo che gli anni esattamente divisibili per 4 siano sempre bisestili) e codificare le due subroutine di pilotaggio.

 

Seconda prova

1.    (5 punti)    Descrivere i conflitti che possono aver luogo in una CPU organizzata in pipeline e discutere i metodi utilizzati per eliminarli o ridurne gli effetti.

2.    (5 punti)    In una CPU con clock a 250 MHz, il 30% del tempo di esecuzione di un programma è utilizzato per accessi alla memoria, ognuno dei quali richiede 6 cicli di clock. Supponendo che tra CPU e memoria venga interposta una cache con i seguenti parametri:

stimare l'aumento della velocità di esecuzione del programma stesso.

3.    (5 punti)    Descrivere le sequenze di eventi che, a seconda del successo o del fallimento nel reperire i dati, possono aver luogo nel corso di un accesso alla memoria virtuale da parte di una CPU in presenza di Translation Lookaside Buffer (TLB) e di cache.