Questa è una vecchia versione del documento!
Indice
Progetti Verilog A.A. 2016-17
Entro i primi di dicembre 2016 sarà disponibile una lista più esaustiva di progetti.
Elenco progetti disponibili
Unità stack con operazioni aritmetiche
Si realizzi una unità che presenta un'interfaccia di memoria “standard” (come quella del sosttosistema di memoria verso il processore D-RISC, non utilizza il campo INDIRIZZO, ovviamente) e che implementa le seguenti operazioni esterne:
- PUSH(val) : inserisce in cima allo stack il valore val
- POP() : restituisce il valore in cima allo stack, cancellandolo
- OP(op) : restituisce il risultato dell'operazione op (+ o -) sul contenuto della cima dello stack e della posizione immediatamente sottostante, cancellandole entrambe dallo stack
Lo stack ha capacità pari a 1024 parole da 32 bit. Eventuali errori devono essere comunicati mendiante il campo ESITO.
Memoria modulare con doppio accesso
Va realizzata una unità firwmare “memoria” con organizzazione interna modulare (indirizzi interallacciati) dotata di due interfacce di accesso, idealmente una per il processore e una per co-processori e unità di I/O. Entrambe le interfacce sono del tipo dell’interfaccia standard vista nel corso nella parte dedicata al processore monolitico di cui abbiamo visto l’interprete monolitico. Quindi con un registro da 32 bit per i dati da scrivere e uno per i dati letti, un registro operazione da 3 bit, un registro indirizzi ancora da 32 bit, un registro per comunicare l’esito dell’operazione da almeno 3 bit, e tutti gli indicatori a transizione di livello necessari. Va implementata una politica di arbitraggio che preveda priorità all’interfaccia dal processore. Nel caso in cui il processore richieda un’operazione il cui esito potrebbe essere influenzato da un’operazione pendente sulla seconda interfaccia, occorre fare in modo che i valori resituiti siano quelli relativi al completamento dell’operazione richiesta dopo il complemetamento dell’operazione pendente. In questo caso, prima di accettare una nuova operazione dall’interfaccia verso il processore, deve essere completata l’operazione dall’altra interfaccia.
MMU
Va realizzata un’unità che implementi l’algoritmo di traduzione degli indirizzi logici in indirizzi fisici nella MMU. L’unità riceve un indirizzo logico da 32 bit con IPL da 20 bit e OFFSET da 12 bit e lo traduce nel corrispondente indirizzo fisico utilizzando una cache completamente associativa da 8 posizioni. Va gestito il meccanismo di rimpiazzamento di un’entry della cache in caso di fault, che si avverrà di un’interfaccia standard verso il sottosistema di memoria in grado di richiedere operazioni di lettura e di un registro dedicato TABRIL contenente la base della tabella di rilocazione per il processo in esecuzione. La politica di rimpiazzamento nella cache può essere implementata come politica round robin.
Arbitro a richieste indipendenti
Va realizzata un’unità in grado di arbitrare richieste di servizio da parte di 8 altre unità. Le richieste arrivano mediante indicatori a transizione di livello e vengono servite mediante segnalazioni tramite indicatori a transizione di livello. Vanno implementate tre politiche di arbitraggio:
- Politica round robin
- Precedenza all’unità di indice minore
- Precedenza all’unità che ha inviato l’ultima richiesta prima di tutte le altre (LRU)
Assegnamento progetti
Studente | Progetto | stato |
---|---|---|
Antonio Lepore | STACK | Assegnato |