Tutorato Architettura degli elaboratori Dott. Damiano Braga
Before we start.. Orario 12 Aprile h. 14.00-16.00 aula F6 20 Aprile h. 11.30-13.30 aula F6 10 Maggio h. 14.00-16.00 aula F4 18 Maggio h. 11.30-13.30 aula F6 26 Maggio h. 11.30-13.30 aula F6 7 Giugno h. 14.00-16.00 aula F4 damiano.braga@student.unife.it
Faremo esercizi su.. - logica combinatoria - prestazioni - macchine a stati - segnali di controllo
Si completi la tabella sul retro del foglio con i valori dei segnali di controllo relativi alla realizzazione del processore MIPS descritta in figura per eseguire l istruzione SUBI $R4 $R5 OxAB SUBI prende il valore OxAB (in 32 bit) e lo sottrae a ciò che è contenuto in R5, a quel punto mette il risultato in R4.
SUBI $R4 $R5 OxAB Che tipo di istruzione è?
Istruzioni MIPS R registro I immediato J jump rs - registro dell operando (R) rt - registro dell operando (R) - destinazione (I) rd - registro destinazione, cioè il risultato dell op shamt - valore scalamento (shift) funct - codice funzione immediate - dato immediato / offset address - indirizzo di salto
SUBI $R4 $R5 OxAB Che tipo di istruzione è? E di tipo I (immediato) Dobbiamo scomporre l istruzione in più fasi: - fetch - decode -execute -mem -write back
Per ogni fase dobbiamo verificare il comportamento di ogni segnale e completare quindi una tabella PCWriteCond PCWrite IO RD Mem Read Mem Write Mem to Reg IR write PC Source ALUOP ALU SRCA ALU SRCB RegWrite RegDest
1) fetch
2) decode
3) execute
3) execute
4) mem
5) write back
SUBI $R4 $R5 OxAB
SUBI $R4 $R5 OxAB
SUBI $R4 $R5 OxAB
SUBI $R4 $R5 OxAB
SUBI $R4 $R5 OxAB
Per esercizio: - add $R2 $R3 $R4 -addi $R2 $R3 200 - sw $R2 1000($R3) -beq $R2 $R3 target
Si consideri una macchina a stati che realizzi un contatore a 3 bit, controllata da 2 bit c0 e c1. -Se c0=c1=0 la macchina transisce allo stato associato al valore 000. - Se c0=1 e C1=0 +1 -Se c0=c1=1 la macchina rimane nello stato corrente. -Se c0=0 e c1=1 la macchina incrementa di 2 il contatore Si descriva la macchina tramite tabella di verità e diagramma a bolle.
un pò di notazione..?? diagramma S0?? -Ogni stato è un tondino -Ogni tondino ha una o più frecce uscenti ed eventualmente una o più frecce entranti -La freccia rappresenta la transizione dello stato -La notazione deve essere chiara e COERENTE
un pò di notazione.. tabella - riporta i segnali di controllo, stato attuale e stato futuro - per ogni stato bisogna riportare tutte le possibili transizioni! - PRESENTE e FUTURO ma MAI PASSATO!!
DOMANDE? INIZIAMO
Un processore ha un clock di frequenza 2,66 GHz. Un programma lanciato su tale proc esegue 7x10^7 istruzioni. il 37% di tali istruzioni viene eseguito in 4 cicli di clock ognuna. Il 16% viene eseguito in 3 ognuna. le rimanenti vengono eseguite in 5 cicli di cock ognuna. Si calcoli: - Periodo di clock del processore - Tempo necessario per esecuzione del programma - Tempo necessario per esecuzione del programma se tutte le istruzioni impiegano 4 cicli di clock ognuna
f = 2,66 GHz 2,66 x 10^ 9 Hz Hz = 1/s 1) Periodo di Clock? T = 1/ 2,66x10^9 Hz T = 1 f T circa 3,76 x 10^-10
2) Tempo di esecuzione programma Tot istruzioni = 7x10^7 A 37% B 16% C 47% 4 cicli di clock 3 cicli di clock 5 cicli di clock
2) Tempo di esecuzione programma A 7x10^7 * 37% = 25900000 4 cicli di clock B 7x10^7 * 16% = 11200000 3 cicli di clock C 7x10^7 * 47% = 32900000 5 cicli di clock tcpu = cicli_clock_cpu f clock
2) Tempo di esecuzione programma A 7x10^7 * 37% = 25900000 4 cicli di clock B 7x10^7 * 16% = 11200000 3 cicli di clock C 7x10^7 * 47% = 32900000 5 cicli di clock cicli_clock_cpu = N istruz_programma x N avg cicli clock pi
2) Tempo di esecuzione programma ta = tb = 25900000 * 4 4 cicli di clock 2,6 x 10^9 11200000 * 3 3 cicli di clock 2,6 x 10^9 tc = 32900000 * 5 2,6 x 10^9 5 cicli di clock
2) Tempo di esecuzione programma texec = ta+tb+tc = circa 0,078336
3) Tempo di esecuzione programma Tot istruzioni = 7x10^7 A 37% B 16% C 47% 4 cicli di clock 4 cicli di clock 4 cicli di clock
3) Tempo di esecuzione programma A 7x10^7 * 37% = 25900000 4 cicli di clock B 7x10^7 * 16% = 11200000 4 cicli di clock C 7x10^7 * 47% = 32900000 4 cicli di clock
3) Tempo di esecuzione programma ta = tb = 25900000 * 4 4 cicli di clock 2,6 x 10^9 11200000 * 4 4 cicli di clock 2,6 x 10^9 tc = 32900000 * 4 2,6 x 10^9 4 cicli di clock
3) Tempo di esecuzione programma texec = ta+tb+tc = circa 0,10764
Si ha a disposizione una funzione f(a,b,c) chiamata funzione di maggioranza. La funzione assume significato quando vi è una maggioranza di bit a 1. Si determini la tabella di verità di f e di f negata e si semplifichi a scelta una delle due funzioni. Si disegni poi il circuito risultante.
DOMANDE? INIZIAMO