Università degli Studi di Roma "La Sapienza" -
Corso di Laurea in Ingegneria Informatica
a.a. 2002-2003
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.
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.