Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Istruzioni
Si scriva solo negli spazi previsti nel testo della prova e non si separino i fogli.
Per la minuta si utilizzino le pagine bianche inserite in fondo al fascicolo distribuito con il testo della prova. I
fogli di minuta, se staccati, vanno consegnati intestandoli con nome e cognome.
È vietato portare con sé libri, eserciziari e appunti, nonché cellulari e altri dispositivi mobili di calcolo o
comunicazione. Chiunque fosse trovato in possesso di documentazione relativa al corso – anche se non
strettamente attinente alle domande proposte – vedrà annullata la propria prova.
Tempo a disposizione 2 h : 00 m
/ variabili globali /
/ stringa inizializzata, termina con il carattere NULL /
char animal [ ] = “RAT”
int n = 1
int off [ ] = 13, -14, 14
/ funzione ricorsiva /
int ping (int ptr, char string)
int tmp = 0
if (strlen (string) > 0)
string [0] = string [0] – ptr
tmp = ping (ptr - 1, &string [1]) + tmp - 65
/ if /
return tmp
/ ping /
spiazzamento
contenuto indirizzo assoluto
rispetto a
simbolico iniziale (in hex)
gp 0x 1000 8000
OFF [0]
ANIMAL [3]
punto 1 – codice MIPS della sezione dichiarativa globale (numero di righe non significativo)
spiazz. rispetto
contenuto simbolico
a stack pointer
indirizzi alti
indirizzi bassi
punto 3 – codice MIPS dello statement riquadrato in MAIN (num. righe non significativo)
// rientro
testo testo
indirizzo indirizzo
istruzione istruzione
di parola di parola
0 lui $a0, 0x 0000 0
4 ori $a0, $a0, 0x 0000 4
8 jal 0x 0000000 8
C lw $a0, 0x 0000($gp) C
10 lui $v0, 0x 0000 10
14 ori $v0, $v0, 0x 0001 14
18 syscall 18
1C lui $v0, 0x 0000 1C
20 ori $v0, $v0, 0x 000A 20
24 syscall 24
28
2C
dati dati
indirizzo indirizzo
contenuto contenuto
di parola di parola
0 ꞌWꞌ ꞌAꞌ ꞌLꞌ ꞌLꞌ
4 ꞌAꞌ ꞌBꞌ ꞌYꞌ 0x00
indirizzo indirizzo
cod. operativo simbolo cod. operativo simbolo
di parola di parola
0 lui STR (parte %hi)
4 ori STR (parte %lo)
8 jal ROUTINE
C lw STR
NELLA TABELLA DEL CODICE ESEGUIBILE SI CHIEDONO SOLO LE ISTRUZIONI DEI MODULI
MAIN E ROUTINE CHE ANDRANNO COLLOCATE AGLI INDIRIZZI SPECIFICATI
testo
...
0x 0040 0008
0x 0040 000C
...
0x 0040 0030
...
0x 0040 003C
0x 0040 0040
...
0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1
IN
1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0
SEL
D1
0 0 0 0
Q1
D2
0 0 0 0
Q2
CLK 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 0 0 0
Sono dati il seguente frammento di codice macchina MIPS (simbolico), che inizia l’esecuzione all’indirizzo
indicato, e i valori iniziali per alcuni registri e parole di memoria.
000010
6 bit 5 bit 5 bit 16 bit
La pipeline NON è ottimizzata per la gestione dei conflitti di controllo. Si consideri il ciclo di clock 5 in cui
l’esecuzione delle istruzioni nei vari stadi è la seguente:
ciclo di clock
1 2 3 4 5 6 7 8 9 10
_______________________________________________________________________________
_______________________________________________________________________________________
4) Dire se il salto condizionato bne viene preso (taken) e calcolarne l’ind. di destinazione:
________________________________________________________________________
segnali all’ingresso dei registri di interstadio (subito prima del fronte di SALITA del clock – ciclo 5)
IF ID EX MEM
registro IF/ID registro ID/EX registro EX/MEM registro MEM/WB
.WB.MemtoReg .WB.MemtoReg .WB.MemtoReg
.M.MemWrite .M.MemWrite
.M.MemRead .M.MemRead
.M.Branch .M.Branch
.istruzione .(Rs)
.(Rt) .(Rt)
.Rt .R .R
.Rd
****************
.imm/offset esteso .ALU_out .ALU_out
****************
.EX.ALUSrc .Zero .DatoLetto
****************
.EX.RegDest
segnali di altre unità funzionali (subito prima del fronte di SALITA del clock – ciclo 5)
Mem.indirizzo RegWrite
MemWrite RegDest
MemRead MemtoReg
NOTA BENE: per percorsi attivi nello stesso ciclo di clock e riferiti alla stessa istruzione, utilizzare una
sola colonna per rappresentarli.
Tabella 3
istruzione che ne
usufruisce
tipo (o tipi) di
propagazione
ID / EX.Rs
segnali di ingresso all’unità di propagazione
ID / EX.Rt
EX / MEM.R
EX / MEM.RegWrite
MEM / WB.R
MEM / WB.RegWrite
MUX di propagazione
interessato
ingresso di selezione
segnali di uscita
di propagazione
MUX PA
dell’unità
ingresso di selezione
MUX PB
1) Si indichi la struttura degli indirizzi di memoria per le memorie cache (istruzioni e dati sono uguali)
spiazzamento: _____________________________________________________________
indice: ___________________________________________________________________
etichetta: _________________________________________________________________
4) Il tempo di accesso alla memoria centrale è pari a 10 cicli di clock per la prima parola del blocco e a 2
cicli di clock per le parole a indirizzi successivi (memoria interallacciata). Il bus dati è da 32 bit. Si
calcoli il tempo necessario per caricare un blocco di memoria in cache in caso di fallimento (miss).
5) Si calcoli il tempo medio di accesso alla memoria considerando che il tempo di accesso alla cache è pari
a 1 ciclo di clock, lo hit rate (tasso di successo) della cache istruzioni è pari al 98 %, e lo hit rate
della cache dati è pari al 90 %. Si supponga che il 25 % delle istruzioni eseguite siano lw e sw.
Si consideri un bus con queste ipotesi: il bus è sincrono e svolge un’operazione (arbitraggio, lettura,
scrittura) entro un ciclo di clock; i segnali di controllo sono attivi alti; tutti i segnali hanno ritardo di
propagazione nullo. Si svolgano i punti seguenti:
1) Il processore è master, quando un controllore di DMA (DMAC) chiede (e ottiene) il controllo del bus
tramite arbitraggio centralizzato con segnali BUS_BUSY, BUS_REQ e BUS_GRANT. L’arbitro del bus
(componente del processore) ha ritardo di 10 ns. Il DMAC ha ritardo di 5 ns.
Si completi il diagramma temporale sotto (scrivendo 0 o 1), fino a quando il DMAC ha acquisito il
controllo del bus e il bus è tornato nella situazione iniziale (numero di colonne non significativo):
2) Quanto tempo occorre affinché il controllo del bus sia pienamente trasferito al DMAC ?
Tempo: _________________________________________________________________________
Frequenza: ______________________________________________________________________