Astrazione dell implementazione Il processore: nità di elaborazione e nità di lo (2) Architettre dei Calcolatori (lettere A-I) Ideal emory ress Net ress Rd Rs Rt 5 5 5 Rw Ra Rb -bit Registers A B als Conditions ress In Ideal emory Ot Clk Clk Clk path Architettre dei Calcolatori 2/5 Valeria Cardellini Il lo Abbiamo costrito l nità di elaborazione a ciclo singolo Per n insieme limitato delle istrzioni del IPS Finora non ci siamo occpati dei segnali di lo Passiamo ora a considerare l nità di lo Riceve dei segnali di ingresso e genera n segnale di scrittra per ogni elemento, i segnali di selezione di ogni mltipleer, ed il lo della Consideriamo prima il lo della Architettre dei Calcolatori 2/5 Valeria Cardellini 2 Il lo della linee da pilotare per il mltipleer di Reslt and (nor), or, sm (sb), slt Qindi servono 2 linee di Operation (siano S e S2) Poi servono i segnali di Bnegate e Ainvert In totale ci sono linee di lo (solo 6 combinazioni sate) Operazione Ainvert Bnegate S S and or add sb slt nor Architettre dei Calcolatori 2/5 Valeria Cardellini 3
Il lo della (2) Per generare i bit di lo della si deve considerare il tipo di operazione che viene richiesta alla Per le istrzioni di accesso alla memoria izione (calcolo dell indirizzo come somma del valore di n registro e dello spiazzamento) Per le istrzioni di tipo R (and, or, add, sb, slt) L operazione dipende dal campo fnct dell istrzione (i 6 bit meno significativi) Per le istrzioni di branch condizionale (beq) Sottrazione Il lo della (3) Per indicare le operazioni da fare, siamo de bit aggintivi (detti Op e Op2) da passare all nità di lo per la Op = se l operazione è na somma per lw o sw Op = se l operazione è na sottrazione per beq Op = se l operazione (formato R) è determinata dal campo fnct dell istrzione L nità di lo per la Ha in inpt i de bit di lo Op e Op2 ed il campo fnct dell istrzione Ha in otpt i qattro bit di lo da inviare alla Architettre dei Calcolatori 2/5 Valeria Cardellini Architettre dei Calcolatori 2/5 Valeria Cardellini 5 Il lo della () La tabella per il calcolo dell otpt dell nità di lo della è qindi: Codice operativo Op Operazione fnct Azione della Otpt per il lo della LW load word somma SW store word somma BEQ branch eqal sottrazione Tipo-R somma somma Tipo-R sottrazione sottrazione Tipo-R AND and Tipo-R OR or Tipo-R slt set on less than Architettre dei Calcolatori 2/5 Valeria Cardellini 6 Istrzioni del set ridotto Tre classi di istrzioni (tipo-r, load e store, branch) che tilizzano de formati differenti di istrzioni Istrzione di tipo R Istrzione di load o store 3 26 25 2 2 6 5 6 5 rs rt rd shamt fnct 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit 3 26 25 2 2 6 5 35 o 3 rs rt 6 bit 5 bit 5 bit 6 bit 3 26 25 2 2 6 5 Istrzione di branch rs rt 6 bit 5 bit 5 bit 6 bit Architettre dei Calcolatori 2/5 Valeria Cardellini 7
Istrzioni del set ridotto (2) Il codice operativo (campo opcode) è sempre nei bit 3-26 Indicato con Op[5-] I de registri da leggere sono sempre indicati dai campi rs (bit 25-2) e rt (bit 2-6) Eccetto per l istrzione di load Il registro base per load e store è sempre nel campo rs (bit 25-2) L offset per le istrzioni di branch, load e store è sempre nei bit 5- Il registro di destinazione è Nei bit 2-6 (rt) per l istrzione load Nei bit 5- (rd) per na istrzione di tipo R Occorre n mltipleer per selezionare qale campo dell istrzione indica il registro di destinazione Architettre dei Calcolatori 2/5 Valeria Cardellini 8 L nità di elaborazione a singolo ciclo con i segnali di lo Aggingiamo il mltipleer per il registro di destinazione ed evidenziamo le linee di lo Reg [25 2] em [2 6] Src emtoreg [3 ] 2 ress [5 ] Registers [5 ] 6 em Registro da scrivere [5 ] viene da rt o da rd Op Unità di lo Architettre dei Calcolatori 2/5 della Valeria Cardellini 9 Src Scelta del valore in Segnale Reg Src Src em em emtoreg I segnali di lo ad bit Effetto qando vale Registro destinazione = rt Nessno Il secondo operando di viene da 2 Scrittra di con + Nessno Nessno Il valore in (registri) viene dalla Effetto qando vale Registro destinazione = rd Nel registro indicato sll ingresso viene scritto il valore Il secondo operando di viene dall estensione di segno Scrittra di con l otpt del sommatore per il branch Lettra della locazione di memoria indicata da ress Scrittra della locazione di memoria indicata da ress Il valore in (registri) viene dalla memoria dati Architettre dei Calcolatori 2/5 Valeria Cardellini Come stabilire i segnali di lo L nità di lo pò stabilire ttti i valori dei segnali (eccetto no) sando soltanto il campo opcode dell istrzione L eccezione è il segnale Src In qesto ltimo caso, il segnale di lo deve essere settato se l istrzione è beq e l otpt dalla è pari a = se i de registri confrontati hanno stesso contento Per generare Src, aggingiamo n AND che ha in ingresso il segnale dall nità di lo e l otpt della = se l istrzione è beq Architettre dei Calcolatori 2/5 Valeria Cardellini
L nità di elaborazione a singolo ciclo con ttti i segnali di lo Unità di lo principale [3 26] em emtoreg Op Src Istrzione tipo-r lw Segnali di lo Src emto Reg Reg em em Op Op em Src [3 ] [25 2] [2 6] [5 ] Reg Registers 2 ress sw beq [5 ] 6 [5 ] Unità di lo della Architettre dei Calcolatori 2/5 Valeria Cardellini 2 Architettre dei Calcolatori 2/5 Valeria Cardellini 3 Fnzionamento dell nità di elaborazione Consideriamo n istrzione di tipo R, ad esempio add $t, $t2, $t3 Primo passo per istrzione di tipo R L istrzione è caricata dalla memoria istrzione ed il viene incrementato em [3 26] emtoreg Op em Src Reg [25 2] [2 6] [3 ] Registers 2 ress [5 ] 6 [5 ] [5 ] Architettre dei Calcolatori 2/5 Valeria Cardellini Fnzionamento dell nità di elaborazione (2) Secondo passo per istrzione di tipo R Vengono letti i de registri del banco contenenti gli operandi sorgente e l nità di lo principale determina i valori dei segnali di lo em [3 26] emtoreg Op em Src Reg [25 2] [2 6] [3 ] Registers 2 ress [5 ] 6 [5 ] [5 ] Architettre dei Calcolatori 2/5 Valeria Cardellini 5
Fnzionamento dell nità di elaborazione (3) Terzo passo per istrzione di tipo R L esege l operazione indicata (sm), tilizzando il campo fnct dell istrzione Fnzionamento dell nità di elaborazione () Qarto passo per istrzione di tipo R Il risltato della viene scritto nel registro destinazione indicato dai bit 5- dell istrzione em em [3 26] emtoreg Op [3 26] emtoreg Op em em Src Src Reg Reg [3 ] [25 2] [2 6] [5 ] Registers 2 ress [3 ] [25 2] [2 6] [5 ] Registers 2 ress [5 ] 6 [5 ] 6 [5 ] [5 ] Architettre dei Calcolatori 2/5 Valeria Cardellini 6 Architettre dei Calcolatori 2/5 Valeria Cardellini 7 Fnzionamento dell nità di elaborazione (5) Consideriamo n istrzione di load, ad esempio lw $t, offset($t2) Primo passo per istrzione di load L istrzione è caricata dalla memoria istrzione ed il viene incrementato Secondo passo per istrzione di load Il registro $t2 viene letto dal banco dei registri Terzo passo per istrzione di load L calcola la somma tra $t2 e offset (esteso in segno) Qarto passo per istrzione di load La somma calcolata dalla è tilizzata come indirizzo della memoria dati Qinto passo per istrzione di load Il dato dalla memoria viene scritto nel banco dei registri nel registro in $t indicato dai bit 2-6 dell istrzione Architettre dei Calcolatori 2/5 Valeria Cardellini 8 Fnzionamento dell nità di elaborazione (6) em [3 26] emtoreg Op em Src Reg [25 2] [2 6] [3 ] Registers 2 ress [5 ] 6 [5 ] [5 ] Architettre dei Calcolatori 2/5 Valeria Cardellini 9
Fnzionamento dell nità di elaborazione (7) Consideriamo n istrzione di beq, ad esempio beq $t, $t2, offset Primo passo per istrzione di beq L istrzione è caricata dalla memoria istrzione ed il viene incrementato Secondo passo per istrzione di beq I de registro $t e $t2 vengono letti dal banco dei registri Terzo passo per istrzione di beq L calcola la sottrazione tra $t e $t2; il valore di + è agginto ad offset (esteso in segno) e traslato di 2 bit a sinistra Qarto passo per istrzione di beq Il risltato dell è tilizzato per decidere qale risltato dei sommatori occorre memorizzare in Fnzionamento dell nità di elaborazione (8) em [3 26] emtoreg Op em Src Reg [25 2] [2 6] [3 ] Registers 2 ress [5 ] 6 [5 ] [5 ] Architettre dei Calcolatori 2/5 Valeria Cardellini 2 Architettre dei Calcolatori 2/5 Valeria Cardellini 2 Inst emory r L nità di lo <3:> <:5> <:5> <6:2> <2:25> <:5> <26:3> Op Fn Rs Rt Rd Imm6 Riassmiamo i segnali di lo Opcode decimale -> binario RegWr Src Op emrd emwr emtoreg DATA PATH Architettre dei Calcolatori 2/5 Valeria Cardellini 22 Architettre dei Calcolatori 2/5 Valeria Cardellini 23
Istrzione di jmp Estendiamo l nità di elaborazione vista finora per spportare l istrzione di jmp Come determinare l indirizzo di jmp I de bit meno significativi - sono sempre Bit 2-27: campo immediate dell istrzione Bit 28-3: bit più significativi di + Istrzione di jmp Aggingiamo n mltipleer per selezionare il valore da memorizzare nel Aggingiamo il segnale di lo Jmp per lare qesto lteriore mltipleer [25 ] Jmp [3 ] 26 28 + [3 28] [3 26] Jmp em emtoreg Op em Src Reg [3 ] [25 2] [2 6] [5 ] Registers 2 ress [5 ] 6 Architettre dei Calcolatori 2/5 Valeria Cardellini 2 [5 ] Architettre dei Calcolatori 2/5 Valeria Cardellini 25