Calcolatori Elettronici Il Processore (2) Francesco Lo Presti Rielaborate da Salvatore Tucci.

download Calcolatori Elettronici Il Processore (2) Francesco Lo Presti Rielaborate da Salvatore Tucci.

If you can't read please download the document

  • date post

    03-May-2015
  • Category

    Documents

  • view

    216
  • download

    1

Embed Size (px)

Transcript of Calcolatori Elettronici Il Processore (2) Francesco Lo Presti Rielaborate da Salvatore Tucci.

  • Slide 1
  • Calcolatori Elettronici Il Processore (2) Francesco Lo Presti Rielaborate da Salvatore Tucci
  • Slide 2
  • CPU (2)2 Suddividere lesecuzione di una istruzione in piu passi (steps) Fetch, Decode, Execute, Memory Access, Write Back Ogni passo richiede un ciclo di clock Istruzioni diverse possono richiedere un numero diverso di passi (cicli) I passi scelti in modo da bilanciare il carico di lavoro In modo da minimizzare la durata del ciclo di clock In modo da minimizzare la durata del ciclo di clock Assunzione: in un passo/ciclo di clock si puo effettuare una sola operazione tra: Accesso in memoria Accesso al banco dei registri (lettura o scrittura) Operazione ALU Approccio Multiciclo
  • Slide 3
  • CPU (2)3 Approccio Multiciclo Alla fine di ogni ciclo Bisogna memorizzare i valori richiesti dai cicli successivi dellistuzione corrente Richiede limpiego di registri addizionali interni (invisibili al programmatore): IR: Instruction Register IR: Instruction Register MDR: Memory Data Register MDR: Memory Data Register A & B:Valori letti dai registri A & B:Valori letti dai registri ALUout: Registro che memorizza il risultato delle operazioni ALU ALUout: Registro che memorizza il risultato delle operazioni ALU
  • Slide 4
  • CPU (2)4 Approccio Multiciclo Vantaggi Unita funzionali che devono essere usata piu volte per la stessa istruzione non devono essere replicate se impiegate in passi diversi Una sola memoria per dati e istruzioni Una sola memoria per dati e istruzioni Una sola ALU (no adder) Una sola ALU (no adder) Tempo di ciclo piu breve Tempi di esecuzione inferiori Istruzioni usano il solo tempo (cicli) necessario alla loro esecuzione Istruzioni usano il solo tempo (cicli) necessario alla loro esecuzione
  • Slide 5
  • CPU (2)5 Unit di elaborazione a ciclo multiplo: una vista astratta Contiene listruzione Dati dalla memoria Dati dal secondo registro Risultato della ALU Dati dal primo registro
  • Slide 6
  • CPU (2)6 Una vista pi dettagliata Poich le unit funzionali sono condivise, occorre aggiungere dei multiplexer ed ampliare quelli gi esistenti nel ciclo singolo Unica Memoria per dati e istruzioni Si aggiunge un multiplexer per selezionare il PC o ALUOut come indirizzo della memoria da leggere/scrivere Dovendo condividere la ALU Si aggiunge un multiplexer per il primo ingresso della ALU per selezionare il registro A (primo registro) oppure il PC (per il calcolo dellindirizzo dellistruzione successiva) Il multiplexer a 2 vie sul secondo ingresso della ALU viene ampliato a 4 vie Una per il valore 4 (per il calcolo dellindirizzo dellistruzione successiva) Una per il valore 4 (per il calcolo dellindirizzo dellistruzione successiva) Una per il valore dellindirizzo (16 bit, estesi in segno a 32 e traslati a sinistra) Una per il valore dellindirizzo (16 bit, estesi in segno a 32 e traslati a sinistra)
  • Slide 7
  • CPU (2)7 Una vista pi dettagliata (2) Mux su primo ingresso ALU Mux su secondo ingresso ALU Indirizzo da PC o da ALU
  • Slide 8
  • CPU (2)8 I segnali di controllo Nellunit a ciclo multiplo occorre cambiare anche linsieme dei segnali di controllo Gli elementi di memoria visibili al programmatore (il PC, la memoria ed i registri) e lIR hanno bisogno di un segnale di controllo per la scrittura La memoria ha anche bisogno di un segnale di controllo per la lettura Ciascuno dei due multiplexer a due vie aggiunti ha bisogno di un segnale di controllo a 1 bit Il multiplexer a quattro vie ha bisogno di un segnale di controllo a 2 bit
  • Slide 9
  • CPU (2)9 Lunit con i segnali di controllo
  • Slide 10
  • CPU (2)10 Implementazione dei salti Per le istruzioni di jump e branch, ci sono tre possibili sorgenti per il valore da scrivere in PC Loutput della ALU, con il valore PC+4 calcolato durante la fase di fetch dellistruzione Il registro ALUOut, dove memorizzato lindirizzo del branch una volta che stato calcolato I 26 bit meno significativi dellIR traslati a sinistra di 2 e concatenati con i 4 bit pi significativi del PC incrementato, se listruzione di jump
  • Slide 11
  • CPU (2)11 Implementazione dei salti: jump Prelievo dei 26 bit per jump Scelta del valore da scrivere in PC: 0: PC+4 1: indirizzo del salto condizionato 2: indirizzo di jump
  • Slide 12
  • CPU (2)12 Implementazione dei salti: beq Zero (dalla ALU) AND PCWriteCond Scelta del valore in PC In OR con PCWrite per indicare la scrittura di PC
  • Slide 13
  • CPU (2)13 Il controllo della ALU Unit di controllo della ALU ALUOp come input 6 bit di funct come input 3 bit di controllo alla ALU come output
  • Slide 14
  • CPU (2)14 Lunit di elaborazione multi-ciclo
  • Slide 15
  • CPU (2)15 I segnali di controllo ad 1 bit Segnale Effetto quando vale 0 Effetto quando vale 1 RegDst Registro destinazione = rt Registro destinazione = rd RegWriteNessuno Nel registro indicato sullingresso Write register viene scritto il valore Write data ALUSrcA Il primo operando di ALU PC Il primo operando di ALU registro A MemReadNessuno Lettura della locazione di memoria indicata da Address MemWriteNessuno Scrittura della locazione di memoria indicata da Address MemtoReg Il valore in Write data (registri) viene da ALUOut Il valore in Write data (registri) viene da MDR IorD Lindirizzo proviene da PC Lindirizzo proviene da ALUOut IRWriteNessuno Uscita memoria scritta in IR PCWriteNessuno Scrittura in PC: provenienza da PCSource PCWriteCondNessuno Scrittura in PC se Zero di ALU 1
  • Slide 16
  • CPU (2)16 I segnali di controllo a 2 bit SegnaleValEffetto ALUOp00 LALU calcola la somma 01 LALU calcola la sottrazione 10 Operazione determinata dal campo funct ALUScrB00 Il secondo ingresso della ALU: proviene da reg. B 01 : la costante 4 10 : il valore dei 16 bit meno sign. di IR, estesi a 32 11 : il valore dei 16 bit meno sign. di IR, estesi a 32, traslati a sinistra di 2 bit PCSource00 In PC viene scritta luscita della ALU (PC+4) 01 In PC viene scritto ALUOut (indirizzo di beq) 10 In PC viene scritto lindirizzo di jump (26 bit meno sign. di IR, traslati a sinistra di 2 bit e concatenati con i 4 bit pi sign. di PC)
  • Slide 17
  • CPU (2)17 Esecuzione di una istruzione in pi cicli Obiettivo: Decomporre le istruzioni in modo da bilanciare il carico di lavoro in ogni ciclo (e minimizzare la durata del ciclo di clock) Suddividiamo le istruzioni in una serie di passi Ogni passo coincide con un ciclo di clock Ogni passo comprende al pi: Unoperazione con la ALU Unoperazione con la ALU Un accesso al banco dei registri Un accesso al banco dei registri Un accesso alla memoria Un accesso alla memoria In questo modo, la durata del ciclo di clock sar pari alla durata della pi lenta di queste tre operazioni
  • Slide 18
  • CPU (2)18 Alla fine di ciascun ciclo di clock Tutti i valori che sono necessari al passo successivo/Istruzione Sono memorizzati in qualche componente Ad esempio Il Program Counter Il banco dei registi La memoria Uno dei registri addizionali A, B, MDR oppure ALUOut A, B, MDR oppure ALUOut IR (dotato di segnale di controllo per la scrittura) IR (dotato di segnale di controllo per la scrittura) IR lunico tra i registri addizionali a contenere lo stesso dato (listruzione) per tutti i passi di esecuzione di una istruzione
  • Slide 19
  • CPU (2)19 Si suddividono le istruzioni nei seguenti passi potenziali non tutte le istruzioni le richiedono tutte 1. Prelievo Istruzione e Incremento del PC (IF) Si preleva listruzione in base a PC e si salva in IR. PC e incrementato di 4 2. Decodifica Istruzione e Prelievo Registri (ID) Si leggono i registri rs e rt in caso servano Si calcola lindirizzo di salto (nel caso listruzione sia di salto). 3. Esecuzione, Calcolo Indirizzo di Memoria, o completamento salto (EX) ALU esegue una delle seguenti funzioni in base al tipo di istruzione memory reference memory reference R-type R-type branch (Istruzione Completata) jump (Istruzione Completata) Suddivisione in Passi
  • Slide 20
  • CPU (2)20 1. Accesso in Memoria e Completamento Istruzione R (MEM) In base al tipo di istruzione Legge dalla memoria Legge dalla memoria Scrive in memoria (Istruzione Completata) Scrive in memoria (Istruzione Completata) Scrittura nel Registro Destinazione (Istruzione Completata) Scrittura nel Registro Destinazione (Istruzione Completata) 2. Completamento lettura da Memoria (WB) Il dato letto dalla memoria in 4 viene scritto nel registro Destinazione (Load completato) Le istruzioni MIPS richiedono da 3 a 5 cicli di clock Jump e branch: 3 cicli Formato R, store:4 cicli Write:5 cicli Suddivisione in Passi
  • Slide 21
  • CPU (2)21 Prelievo dellIstruzione (IF) IR = M[PC]; PC = PC + 4; 4 PC + 4
  • Slide 22
  • CPU (2)22 A = Reg[IR[25-21]];(A = Reg[rs]) B = Reg[IR[20-15]];(B = Reg[rt]) ALUOut = (PC + sign-extend(IR[15-0])