• Non ci sono risultati.

Architettura degli elaboratori – A. A. 2014-2015 Terzo appello – 17 luglio 2015

N/A
N/A
Protected

Academic year: 2021

Condividi "Architettura degli elaboratori – A. A. 2014-2015 Terzo appello – 17 luglio 2015"

Copied!
1
0
0

Testo completo

(1)

Architettura degli elaboratori – A. A. 2014-2015 Terzo appello – 17 luglio 2015

Indicare Nome Cognome Matricola e Corso (A/B) su tutti i fogli consegnati.

Risultati, bozza di correzione e calendario degli orali su web appena disponibili

Domanda 1

Una unità firmware Us implementa uno stack di 128 posizioni per l’interconnessione di tre altre unità Ua, Ub

ed Uc. Ua ed Ub possono eseguire operazioni di push di una parola, mentre Uc può eseguire operazioni di pop di una parola.

Si richiede la realizzazione di un arbitraggio fair fra Ua e Ub evitando comunque attese inutili di una unità e, al contempo, di dare priorità alle operazioni di pop.

Dell’unità si fornisca microcodice e tempo di servizio, facendo tutte le debite assunzioni su tempi di eventuali ALU e memorie utilizzate nella Parte Operativa.

Domanda 2

Per il seguente codice assembler, operante sui vettori A e P, ciascuno da N=8K posizioni, di interi:

1. ADD R0, #1, Rprefix

2. ADD R0, R0, Ri

3. loop: LOAD RbaseA, Ri, Rai

4. MUL Rai, Rprefix, Rprefix

5. STORE RbaseP, Ri, Rprefix

6. INC Ri

7. IF< Ri, RN, loop 8. END

si forniscano

 la traccia degli accessi in memoria principale per le prime iterazioni del ciclo, assumendo che il vettore P, il vettore A ed il codice siano allocati in memoria virtuale consecutivamente a partire dall’indirizzo 0 e che RbaseA, RbaseP ed RN siano inizializzati ai valori corretti

 il tempo di completamento su processore D-RISC, dotato di cache di primo livello associativa di insiemi (1K insieme da 4 linee di =16 parole ciascuna) e di memoria principale dotata di 1M pagine da 4K, con unità di esecuzione per moltiplicazione/divisione fra interi a 4 stadi,

 una possibile ottimizzazione del codice, con valutazione quantitativa del guadagno in termini di tempo di completamento.

Domanda 3

Si indichi il costo temporale della gestione di un’interruzione sul processore D-RISC monolitico come descritto nella prima parte del corso.

Riferimenti

Documenti correlati

Nell’ipotesi che la cache istruzioni abbia almeno 13 (lunghezza del codice) su  linee, e che quindi il codice possa essere mantenuto permanentemente nella cache IU e che la cache

Dunque si poteva ottimizzare il codice ancora (senza un grande effetto sul numero totale delle istruzioni eseguite, peraltro) come

L’analisi data flow del codice del corpo del ciclo ci permette di capire che alcune delle istruzioni possono essere spostate all’interno del codice assembler:.  il calcolo

Dunque il working set è cosituito da un blocco di A, B, C, D e dai blocchi che contengono il codice, ed è ragionevole pensare (sono 6 blocchi in tutto) che non vi siano problemi

Si fornisca un esempio di codice assembler il cui tempo di completamento risulti diverso quando eseguito su due sistemi con gerarchia di memoria con un unico livello di cache

Per esempio, un codice che accede, correndoli, a 3 vettori per i quali gli indirizzi fisici mappino sullo stesso insieme della cache set associativa, causano un numero di fault

 la traccia degli accessi in memoria principale per le prime iterazioni del ciclo, assumendo che il vettore P, il vettore A ed il codice siano allocati in

Il del tempo di servizio è minimizzato perché gli hit (in lettura e scrittura) sono serviti in un unico ciclo di clock (una microistruzione) e che il