Università degli Studi di Roma "La Sapienza" - 
Corso di Laurea in Ingegneria Informatica
a.a. 2005-2006
Un'interfaccia IFMVP opera come coprocessore per il calcolo di prodotti matrice-vettore y = Mx, dove x = { xi ≤ 0 = < 4 } e y = { yi, 0 ≤ i < 4 } sono vettori a 4 componenti e M = { Mij, 0 ≤ i, j < 4 }è una matrice 4×4; sia le componenti dei vettori che gli elementi della matrice sono numeri floating-point a 64 bit. L'interfaccia riceve dalla CPU PD-32 un vettore x e un intero k che identifica una tra 256 matrici M immagazzinate in una ROM residente sulla stessa interfaccia, e restituisce alla CPU il vettore prodotto y tale che
3  | 
    ||
| yi = | Σ  | 
    Mij xj | 
j=0  | 
    
Per l'esecuzione dei calcoli relativi, l'interfaccia utilizza un singolo modulo FPMA (Floating-Point Multiply Add, Fig. 1) per l'esecuzione dell'operazione R = A + BC, dove A, B, C, R sono numeri reali floating-point a 64 bit; tale operazione viene completata in un tempo non superiore a 4 periodi di System Clock.

Fig. 1
Il software di pilotaggio è organizzato sotto forma di subroutine che riceve in ingresso:
Progettare l'hardware dell'interfaccia e codificare la subroutine di pilotaggio, corredandola di adeguati commenti.
| 1. | (5 punti)    Una CPU opera con clock da 
    250 MHz e con una cache ad accesso diretto avente hit time pari a un singolo ciclo di 
    clock e miss penalty di 450 nsec. In tali condizioni, le misurazioni forniscono un tempo 
    medio di accesso alla memoria di 125 nsec. Se la cache ad accesso diretto viene sostituita 
    con una di tipo set-associativo, in cui il miss rate diminuisce del 25%, di quanto 
    migliorerà il tempo medio di accesso alla memoria? | 
  
| 2. | (5 punti)    Un sistema di 
    memoria virtuale ha le seguenti caratteristiche: indirizzo virtuale da 34 bit, pagine 
    fisiche da 4 Kbyte, memoria fisica da 2 Gbyte. Assumendo il byte come minima unità 
    indirizzabile, descrivere il meccanismo di paginazione corrispondente, e determinare le 
    dimensioni della Page Table. (Si trascuri lo spazio necessario per i bit di validità, 
    dirty, protezione, etc.; si trascuri anche lo spazio necessario per le informazioni di 
    puntamento al disco rigido.)  | 
  
| 3. | (5 punti)    Si voglia estendere il set di 
    istruzioni della CPU MIPS con l'istruzione Subtract Memory in formato I: subm $rt,offset($rs) ; $rt ← ($rt) - Memory[offset+(rs)] Discutere le varianti all'architettura multiciclo della CPU necessarie per 
    l'implementazione di tale istruzione e determinarne il diagramma degli stati per il 
    controllo dell'esecuzione.  |