Progetto CPU (multiciclo) Salvatore Orlando

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Progetto CPU (multiciclo) Salvatore Orlando"

Transcript

1 Progetto CPU (multiciclo) Salvatore Orlando Arch. Elab. - S. Orlando 1

2 Problemi con progetto a singolo ciclo Problemi del singolo ciclo Ciclo di clock lungo Istruzioni potenzialmente più veloci sono rallentate impiegano lo stesso tempo dell istruzione più lenta Unità funzionali e collegamenti del Datapath sono replicati dobbiamo poter computare in parallelo tutti i passi computazionali necessari per l esecuzione di qualsiasi istruzione dell ISA Possibile soluzione: datapath multiciclo usiamo un ciclo più corto istruzioni differenti impiegano un numero di cicli diversi unità funzionali possono essere usate più volte per eseguire la stessa istruzione meno replicazione basta usarle in cicli differenti registri aggiuntivi usati per memorizzare i risultati parziali nell esecuzione delle istruzioni Arch. Elab. - S. Orlando 2

3 Esempio di riduzione del ciclo di clock Effettua un taglio su grafo delle dipendenze corrispondente al circuito combinatorio, e inserisci un registro nel mezzo Fai lo stesso lavoro di prima in 2 cicli più veloci, invece che in singolo ciclo più lento elemento di memoria elemento di memoria Logica Combinatoria Aciclica Logica Combinatoria Aciclica (A) elemento di memoria elemento di memoria Logica Combinatoria Aciclica (B) elemento di memoria Arch. Elab. - S. Orlando 3

4 Datapath multiciclo Addr dati Registri addizionali PC Registri interni addizionali usati per memorizzare valori intermedi, da usare nel ciclo di clock successivo per continuare l esecuzione della stessa istruzione IR, MDR, A, B, ALUOut Riuso di unità funzionali ALU usata anche per calcolare gli indirizzo dei salti e incrementare il PC Memoria usata sia per leggere le istruzioni e per leggere/scrivere i dati Arch. Elab. - S. Orlando 4

5 Suddivisione in passi del Datapth Nell inserire i registri addizionali, abbiamo pensato di spezzare l esecuzione delle istruzioni in passi ogni passo da eseguire in un ciclo di clock (ciclo più corto rispetto alla CPU a ciclo singolo) importante il bilanciamento della quantità di lavoro eseguito nei vari passi, perché dobbiamo fissare un ciclo di clock unico determinato sulla base del passo più lungo, ovvero più costoso dal punto di vista computazionale Al termine di ogni ciclo i valori intermedi, da impiegare nei cicli successivi, sono memorizzati nei registri interni addizionali Register File e PC sono invece impiegati per memorizzare valori da usare per l esecuzione di una nuova istruzione Arch. Elab. - S. Orlando 5

6 Sequenza dei cinque passi di esecuzione Fetch dell istruzione Decodifica dell istruzione e Lettura dei regs. (e Addr. Branch) R-type exe o Calcolo Indirizzo Memoria o Completa Branch o Completa Jump dipende dal tipo di istruzione Accesso alla memoria o Completa R-type (scrittura regs) dipende dal tipo di istruzione Write back (scrittura reg: solo LW) OGNI PASSO ESEGUITO IN UN CICLO DI CLOCK LE ISTRUZIONI IMPIEGANO DA 3 A 5 CICLI Arch. Elab. - S. Orlando 6

7 Inseriamo i multiplexer PC oppure ALUout (addr, lw/sw) Ulteriore ingresso: PC MDR oppure ALUOut Altri 2 ingressi, da sommare con PC: PC = PC + 4 PC = PC + (sign_ext(imm16) << 2) Arch. Elab. - S. Orlando 7

8 Controllo I segnali di controllo alle varie unità funzionali e ai multiplexer non dipendono solo dal tipo istruzione da eseguire es.: rispetto ad una sub, l ALU dovrà essere usata, in cicli di clock differenti, per PC = PC + 4; (somma) R[rd] < R[rs] R[rt]; (sottrazione) Quindi i segnali di controllo dovranno essere diversi durante i vari passi (cicli di clock) necessari per l esecuzione dell istruzione Il controllo sarà infatti implementato come circuito sequenziale l output del circuito (segnali di controllo) dipenderanno dallo stato interno al circuito al tempo t i stato del circuito sequenziale = passo di esecuzione di una istruzione Arch. Elab. - S. Orlando 8

9 Datapath e Controllo multi-ciclo Arch. Elab. - S. Orlando 9

10 Segnali di controllo di 1 bit Segnale Effetto se uguale a 0 Effetto se uguale a 1 RegDest Reg. dest. proviene da rt Reg. dest. proviene da rd Reg Write Nessuno Scrittura in Reg. File AluSrcA 1^ ingresso dell'alu è PC 1^ ingresso dell'alu è reg. A MemRead Nessuno Lettura da Mem. in reg. MDR MemWrite Nessuno Scrittura in Mem. MemtoReg Reg. scritto proviene da ALUOut Reg. scritto proviene da MDR IorD Addr.della Mem. proviene da PC Addr.della Mem. proviene da ALUOut IRWrite Nessuno Scrittura in IR (proviene da Mem.) PCWrite Nessuno Scrittura in PC PC viene scritto se è anche vero che PCWriteCond Nessuno Zero = 1 (beq) Per istruzioni di beq: PCWriteCond=1 e PCWrite=0 Il segnale di scrittura di PC è infatti calcolato come: PCWrite + (PCWriteCond Zero) Arch. Elab. - S. Orlando 10

11 Segnali di controllo di 2 bit Segnale Valore Effetto 00 ALU calcola somma (lw, sw, PC + ) ALUOp 01 ALU calcola sottrazione ( beq ) 10 ALU calcola l'operazione determinata da funct 00 2^ ingresso dell'alu è reg. B ALUSrcB 01 2^ ingresso dell'alu è costante ^ ingresso dell'alu è sign_ext(imm16) ( lw/sw ) 11 2^ ingresso dell'alu è sign_ext(imm16) << 2 ( beq ) 00 In PC viene scritto l'uscita dell'alu (PC+4 ) PCSource 01 In PC viene scritto ALUOut ( beq ) 10 In PC viene scritto PC[31-28] sign_ext(imm26) << 2 ( jump ) Arch. Elab. - S. Orlando 11

12 Passo 1: Fetch dell istruzione Usa PC per prelevare l istruzione dalla memoria e porla nell Instruction Register (IR) Incrementa PC di 4, e rimetti il risultato nel PC Passo identico per tutte le istruzioni Usando la notazione RTL: IR = M[PC]; PC = PC + 4; Durante questo passo (stesso ciclo di clock) usiamo: Memoria ALU Vediamo in dettaglio i valori dei segnali di controllo Arch. Elab. - S. Orlando 12

13 Passo 1: Fetch dell istruzione IR = M[PC]; MemRead 1 IRWrite 1 IorD 0 PC = PC + 4; ALUSrcA 0 ALUSrcB 01 ALUOp 00 (somma) PCWrite 1 PCSource 00 Arch. Elab. - S. Orlando 13

14 Passo 2: Decodifica istruzione & Lettura registri Leggi i registri rs e rt, e calcola l indirizzo del salto del beq IR (op) viene inviato al controllo per la decodifica e la determinazione dei passi successivi Decodifica dell istruzione RTL: A = Reg[ IR[25-21] ]; B = Reg[ IR[20-16] ]; ALUOut = PC + (sign-ext( IR[15-0] ) << 2); Passo identico per tutte le istruzioni, ma potremmo anticipare del lavoro non necessario. per certe istruzioni, i due campi (rs, rt) potrebbero essere non significativi calcoliamo l indirizzo a cui saltare, come se l istruzione fosse beq, ma il campo imm16 potrebbe essere non significativo Quali i vantaggi di questo lavoro anticipato? Durante questo passo (stesso ciclo di clock) usiamo: Register File ALU Vediamo i valori dei segnali di controllo Arch. Elab. - S. Orlando 14

15 Passo 2: Decodifica istruzione & Lettura registri A = Reg[ IR[25-21] ]; B = Reg[ IR[20-16] ]; A e B sovrascritti per ogni tipo di istruzioni ALUOut = PC + (sign-ext( IR[15-0] ) << 2) ALUSrcA 0 ALUSrcB 11 ALUOp 00 (somma) Arch. Elab. - S. Orlando 15

16 Passo 3: (dipende dall istruzione) Usiamo l ALU in dipendenza del tipo di istruzione Il controllo, avendo già decodificato l istruzione letta al passo precedente, può già decidere i segnali da inviare al Datapath in relazione al tipo di istruzione R-type exe: ALUOut = A op B; Calcolo Indirizzo Memoria (load/store) ALUOut = A + sign-ext( IR[15-0] ); Completa Branch if (A == B) then PC = ALUOut; Completa Jump PC = PC[31-28] II (IR[25-0] << 2); Arch. Elab. - S. Orlando 16

17 Passo 3: (dipende dall istruzione) R-type exe: ALUOut = A op B; ALUSrcA 1 ALUSrcB 00 ALUOp 10 (campo FUNCT) ALUOut riscritto ad ogni ciclo LOAD / STORE: ALUOut = A + sign-ext( IR[15-0] ); ALUSrcA 1 ALUSrcB 10 ALUOp 00 (somma) Arch. Elab. - S. Orlando 17

18 Passo 3: (dipende dall istruzione) Completa Branch if (A == B) then PC = ALUOut; ALUSrcA 1 ALUSrcB 00 ALUOp 01 (sottr.) (sottrazione registri A e B, check salto sulla base di Zero) Per abilitare la scrittura nel PC del valore precedentemente calcolato (ALUOut), necessari altri segnali di controllo non illustrati: PCWrite 0 PCWriteCond 1 PCSource 01 Arch. Elab. - S. Orlando 18

19 Passo 3: (dipende dall istruzione) Completa Jump PC = PC[31-28] II (IR[25-0] << 2); Per abilitare la scrittura nel PC, i segnali di controllo, non illustrati in figura, sono: PCWrite 1 PCSource 10 Arch. Elab. - S. Orlando 19

20 Passo 4: (dipende dall istruzione) LOAD e STORE accedono alla memoria MDR = Memory[ALUOut]; or Memory[ALUOut] = B; Terminazione istruzioni R-type Reg[ IR[15-11] ] = ALUOut; Durante questo passo usiamo: Register File (Write) oppure Memoria Vediamo i segnali di controllo Arch. Elab. - S. Orlando 20

21 Passo 4: (dipende dall istruzione) Load: MDR = Memory[ALUOut]; IorD 1 MemRead 1 Store: Memory[ALUOut] = B; IorD 1 MemWrite 1 R-type: Reg[ IR[15-11] ] = ALUOut; RegDest 1 RegWrite 1 MemtoReg 0 Arch. Elab. - S. Orlando 21

22 Passo 5: Write-back (LOAD) Load: Reg[ IR[20-16]]= MDR; RegDest 0 RegWrite 1 MemtoReg 1 NOTA: Le altre istruzioni non giungono al passo 5 Arch. Elab. - S. Orlando 22

23 Riassumendo Step name Action for R -type instructions Action for memory-reference instructions Action for branches Action for jumps Instruction fetch IR = Memory[P C ] PC = PC + 4 Instruction decode / A = Reg [IR[25-21]] register fetch/ B = Reg [IR[20-16]] branch addr. comp. A LUOut = P C + (sign-extend (IR[15-0]) << 2) Execution, address ALUOut = A op B ALUOut = A + sign-extend if (A ==B) then PC = PC[31-28] II computation, branch/ (IR[15-0]) PC = ALUOut (IR[25-0]<<2) jum p co m ple tion Memory access or R-type Reg [IR[15-11]] = Load: M D R = Mem ory[a LUOut] completion ALUOut or Store: M emory [A LUOut] = B Memory read completion Load: Reg[IR[20-16]] = MDR Arch. Elab. - S. Orlando 23

24 Alcune semplici domande Quanti cicli sono necessari per eseguire questo codice? lw $t2, 0($t3) lw $t3, 4($t3) beq $t2, $t3, Label #assume not add $t5, $t2, $t3 sw $t5, 8($t3) Label: Cosa accade durante l 8 o ciclo di esecuzione? Calcolo dell indirizzo della 2 a lw In quale ciclo avviene effettivamente la somma tra $t2 e $t3? Nel 16-esimo ciclo Arch. Elab. - S. Orlando 24

25 Definizione controllo Possiamo implementare il controllo della CPU come un circuito sequenziale di Moore, modellabile come un automa a stati finiti Automa ogni nodo corrisponde a un stato differente del circuito, in corrispondenza di un certo ciclo di clock gli output del controllo (segnali di controllo) dipendono dallo stato corrente da 3 a 5 stati devono essere attraversati (ovvero, da 3 a 5 cicli di clock) Inizio Fetch Decode, Read reg, Beq Addr. comp. R-type Exe Beq completam. Jump completam. M read R write M write R write Arch. Elab. - S. Orlando 25

26 Automa completo Etichette interni ai nodi corrispondono ai segnali che il Controllo deve inviare al Datapath Etichette sugli archi dipendono dagli input del Controllo ovvero, dal valore di del campo Op dell istruzione letta 10 stati ogni stato associato con un etichetta mnemonica, e anche con un identificatore numerico quanti bit sono necessari per il registro di stato? Arch. Elab. - S. Orlando 26

27 Componenti CPU (Datapath+Control) e Memoria CPU Operation = f(aluop, Funct) CONTROL PCWrite + (Zero PCWriteCond) PCSource RegDest ALUSrcA MemRead IorD IRWrite ALUSrcB RegWrite MemtoReg MemWrite MemRead Addr Instr/Data Memory PC (fetch) o ALUOut (sw,lw) IR (fetch) o MDR (lw) B (sw) DATA PATH Funct =IR[5:0] Op =IR[31:26] Zero Dataout Datain Nota: tra i segnali provenienti dal Datapath, solo Op è usato per selezionare il prossimo stato Arch. Elab. - S. Orlando 27

28 Dimensionamento ciclo di clock Ipotizziamo gli stessi costi precedenti (in ns) per le varie componenti Mem. Istr/Dati: 2 ns Reg. File: 1 ns ALU: 2 ns non li usiamo mai in sequenza possiamo ipotizzare un ciclo di 2 ns Più in dettaglio, per determinare il ciclo ci clock, consideriamo il diagramma di sotto, che si riferisce al 3 o passo della BEQ poiché il controllo è di Moore, l output (controlli) dipende solo dallo stato (veloce) decodifica del controllo dell ALU più complessa (2 livelli): Operation = f(aluop, Funct) l input del controllo, importante per la transizione di stato, è Op Op è un campo del registro IR del Datapath (non necessario calcolarlo) il segnale di Zero è importante nel caso di BEQ... Next State Controllo Datapath Op controlli ALU 2 ns Zero PC write signal Esempio di diagramma temporale per il 3 o passo di esecuzione di un istruzione Arch. Elab. - S. Orlando 28

29 Costo istruzioni Per le varie istruzioni, possiamo impiegare un numero differente di cicli introduciamo il concetto di CPI (no. di cicli per istruzione) Quant è il CPI delle varie istruzioni rispetto all architettura multi-ciclo? R-type, sw: 4 cicli (tempo: 8 ns) lw: 5 cicli (tempo: 10 ns) beq, jump: 3 cicli (tempo: 6ns) Nota che l istruzione di lw impiega ben 10 ns invece degli 8 ns dell architettura a singolo ciclo purtroppo ciò è dovuto alla necessità di fissare il ciclo di clock abbastanza lungo da permettere l esecuzione di uno qualsiasi dei passi previsti per le varie istruzioni il 5 o passo della lw, anche se usa solo il Register File (latenza 1 ns), viene comunque eseguito in un ciclo di clock da 2 ns Abbiamo ottenuto un risparmio solo per le istruzioni di beq e jump se avessimo considerato istruzioni molto più lunghe (come quelle FP), non avremmo osservato questa apparente decadimento di prestazione nel passare all architettura multi-ciclo in quel caso, la scelta del ciclo singolo ci avrebbe costretto ad allungare a dismisura il ciclo di clock per eseguire l istruzione FP Arch. Elab. - S. Orlando 29

30 Circuito sequenziale che implementa il controllo Controllo a due livelli ALUOp calcolato sulla base di Op, combinato con Funct (IR[5:0]) per generare il segnale a 3 bit (Operation) da inviare all ALU PCWrite e PCWriteCond usati assieme a Zero proveniente dal Datapath, per generare il segnale a 1 bit che permette la scrittura di PC Nota blocco combinatorio per calcolare NEXT_STATE & OUTPUTS state register per memorizzare stato corrente Arch. Elab. - S. Orlando 30

31 Implem. cablata (a logica sparsa) del Controllo Blocco combinatorio all interno del circuito sequenziale che implementa il controllo della CPU può essere implementato con logica digitale a 2 livelli PLA Numero minimo di porte logiche, e quindi di transistor Implementazione ottima, ma non modificabile poca flessibilità Efficiente finché il numero di stati del circuito è abbastanza piccolo Arch. Elab. - S. Orlando 31

32 Circuiti combinatori e ROM ROM = "Read Only Memory" i valori delle varie celle di memoria sono fissate in anticipo ROM usata per memorizzare una tabella di verità = il circuito combinatorio necessario per implementare il controllo della CPU se l indirizzo è di m bit, possiamo indirizzare 2 m celle della ROM gli output della ROM corrispondono al contenuti delle varie celle indirizzare dai m bit dell indirizzo m ROM n Tabella di verità Tabella di verità con m variabili in input e n in output sufficiente una ROM di 2 m x n bit Arch. Elab. - S. Orlando 32

33 Implementazione del controllo tramite ROM Quanti sono gli input del blocco combinatorio interno al controllo? 6 bit per Opcode, 4 bit per lo Stato < Opcode, Stato >= 10 linee di indirizzo 2 10 = 1024 indirizzi differenti Quanti sono gli output? 16 bit per i vari segnali di controllo del Datapath 4 bit per lo Stato 20 bit in output ROM è = 20K bits (dimensione non usuale) Soluzione che spreca molte risorse, poiché molte celle della ROM (e i corrispondenti output della ROM) sono identiche o quasi identiche Poiché il circuito sequenziale è di Moore, i 16 bit dell Output (relativi ai segnali di controllo) dipendono solo dallo Stato per gli indirizzi <X, Stato > le celle della ROM sono quasi identiche Da certi Stati, la transizione (i 4 bit di Output del Next State) avviene indipendentemente dall Opcode per alcuni indirizzi <X, Stato > le celle sono identiche Arch. Elab. - S. Orlando 33

34 ROM vs. PLA Spezziamo la tabella di verità in due parti (OUTPUTS e NEXT_STATE) i 4 bit di Stato determinano i 16 Outputs ROM di 2 4 x16 b = 2 8 b = 0.25 Kb i 10 bits (Opcode, Stato) determinano i 4 bit del prossimo Stato ROM di 2 10 x 4 b = 4 Kb Totale: ROM di 4.25 Kb (invece di 20 Kb) La PLA risulta sempre più piccola molti prodotti sono condivisi i DON T CARE sono tutti considerati attentamente per ridurre il numero di prodotti o il numero di fattori in ogni prodotto Il numero di celle PLA (porte AND e OR) sono: (#inputs #product-terms) + (#outputs #product-terms) nel nostro caso: (10x17)+(20x17) = 460 celle PLA Dimensione (in spazio e numero di transistor) delle celle PLA è simile alla dimensione delle celle ROM (celle PLA un po più grandi) Arch. Elab. - S. Orlando 34

35 Un altro stile di implementazione Spesso NEXT_STATE corrisponde a current state + 1 vedi, rispetto al nostro automa, le transizioni di stato 0 1, 3 4 o 6 7 Control unit PLA or ROM Input Outputs PCWrite PCWriteCond IorD MemRead MemWrite IRWrite BWrite MemtoReg PCSource ALUOp ALUSrcB ALUSrcA RegWrite RegDst AddrCtl 1 State Adder Address select logic Op[5 0] Instruction registerı opcode field Arch. Elab. - S. Orlando 35

36 Sequenzializzatore in dettaglio Dispatch ROM 1 Dispatch ROM 2 Op Opcode name Value Op Opcode name Value R-format lw jmp sw beq lw sw 0010 Fetch (0) Stato++ State number Address-control action Value of AddrCtl 0 Use incremented state 3 1 Use dispatch ROM Use dispatch ROM Use incremented state 3 4 Replace state number by Replace state number by Use incremented state 3 7 Replace state number by Replace state number by Replace state number by 0 0 Arch. Elab. - S. Orlando 36

37 Microprogrammazione Rappresentazione tramite automi a stati finiti diventa improponibile quando dobbiamo trattare un numero elevato di stati un foglio non basta più se si considerano tutte le istruzioni MIPS (> 100) e il numero di cicli necessari per i le istruzioni più complesse (oltre 20 cicli) Microprogrammazione idea prese in prestito dal campo della programmazione (dallo stile grafico a quello testuale: dagli automi ai microprogrammi) scopo di una microistruzione è quello di specificare (simbolicamente) i segnali di controllo da affermare nel Datapath ad un certo istante eseguire la microistruzione (Moore) avrà l effetto di affermare alcuni segnali di controllo per l esecuzione di una certa istruzione macchina ogni microistruzione dovrà specificare quale sarà la prossima microistruzione da eseguire, ovvero il prossimo stato del controllo la prossima microistruzione da eseguire potrà essere sempre univocamente determinata es. sempre la successiva secondo l ordine lessicografico del micoprogramma, oppure una determinata altra microistruzione la scelta della prossima microistruzione potrà dipendere dagli input (Op code) Arch. Elab. - S. Orlando 37

38 Formato microistruzione Field name Value Signals active Comment Add ALUOp = 00 Cause the ALU to add. ALU control Subt ALUOp = 01 Cause the ALU to subtract; this implements the compare for branches. Func code ALUOp = 10 Use the instruction's function code to determine ALU control. SRC1 PC ALUSrcA = 0 Use the PC as the first ALU input. A ALUSrcA = 1 Register A is the first ALU input. B ALUSrcB = 00 Register B is the second ALU input. SRC2 4 ALUSrcB = 01 Use 4 as the second ALU input. Extend ALUSrcB = 10 Use output of the sign extension unit as the second ALU input. Extshft ALUSrcB = 11 Use the output of the shift-by-two unit as the second ALU input. Read Read two registers using the rs and rt fields of the IR as the register numbers and putting the data into registers A and B. Write ALU RegWrite, Write a register using the rd field of the IR as the register number and Register RegDst = 1, the contents of the ALUOut as the data. control MemtoReg = 0 Write MDR RegWrite, Write a register using the rt field of the IR as the register number and RegDst = 0, the contents of the MDR as the data. MemtoReg = 1 Read PC MemRead, Read memory using the PC as address; write result into IR (and lord = 0 the MDR). Memory Read ALU MemRead, Read memory using the ALUOut as address; write result into MDR. lord = 1 Write ALU MemWrite, Write memory using the ALUOut as address, contents of B as the lord = 1 data. ALU PCSource = 00 Write the output of the ALU into the PC. PCWrite PC write control ALUOut-cond PCSource = 01, If the Zero output of the ALU is active, write the PC with the contents PCWriteCond of the register ALUOut. jump address PCSource = 10, Write the PC with the jump address from the instruction. PCWrite Seq AddrCtl = 11 Choose the next microinstruction sequentially. Sequencing Fetch AddrCtl = 00 Go to the first microinstruction to begin a new instruction. Dispatch 1 AddrCtl = 01 Dispatch using the ROM 1. Dispatch 2 AddrCtl = 10 Dispatch using the ROM 2. Arch. Elab. - S. Orlando 38

39 Microprogramma relativo alla nostra CPU Microprogramma completo della nostra semplice unità di controllo nota che per la corretta sequenzializzazione delle istruzioni, in 2 casi rimanda ad una specifica tabella di smistamento Label ALU control SRC1 SRC2 Register control Memory PCWrite control Seq uencing Fetch Add PC 4 Read PC ALU Seq Add PC Extshft Read Dispatch 1 Mem1 Add A Extend Dispatch 2 LW 2 Read ALU Seq W rite MDR Fetch SW2 Write ALU Fetch R form at1 Func code A B Seq W rite ALU Fetch BEQ1 Subt A B ALUOut-cond Fetch JUMP1 Jump address Fetch Un implementazione diversa di questa stessa ISA avrebbe lo stesso microcodice? Cosa dovrebbe un microassembler? Arch. Elab. - S. Orlando 39

40 Implementazione del microprogramma Microprogramma Rappresentazione alternativa all automa a stati finiti rappresenta il comportamento di un circuito sequenziale Per l implementazione, possibili tutte le alternative viste per gli automi PLA o ROM circuiti distinti per calcolare sequenzializzazione (NEXT_STATE) e output del circuito sequenziale Storicamente, le implementazioni del controllo microprogrammato impiegano ROM per memorizzare microistruzioni incrementatore esplicito e logica di sequenzializzazione per determinare la prossima microistruzione Label della microistruzione Registro di controllo Contatore di microprogramma Arch. Elab. - S. Orlando 40

41 Microprogrammazione: pro e contro Specifica del controllo tramite microprogramma Pro semplice da progettare e scrivere possiamo progettare l architettura e il codice assieme Implementazione del controllo tramite ROM off-chip (macchine anni 60-70) Pro Firmware (=Microcodice memorizzato nella ROM) facile da modificare basta sostituire la ROM stesso Datapath può emulare altre ISA Contro Eccessiva lentezza, considerando che oggi controllo implementato sullo stesso chip del processore (microprocessori) la ROM non è più (come un tempo) più veloce della RAM fetch di una microistruzione per inviare i controlli al Datapath sarebbe costoso come effettuare il fetch di una istruzione macchina non c e più necessità di riprogettare ISA, correggere errori, o apportare cambi al microcodice Arch. Elab. - S. Orlando 41

42 Eccezioni e interruzioni Il progetto del controllo del processore si complica a causa della necessità di considerare, durante l esecuzione delle istruzioni, il verificarsi di eventi inattesi, quali: interruzioni ed eccezioni Eccezione evento sincrono, generato all interno del processore, e provocato da problemi nell esecuzione di un istruzione es.: overflow, istruzione non valida Interruzione evento asincrono, che giunge dall esterno del processore segnale che giunge da un unità di I/O, utilizzato per comunicare alla CPU il verificarsi di certi eventi es.: la terminazione di un operazione di I/O la cui esecuzione era stata richiesta in precedenza dalla CPU Processore Control Datapath Interruzione I/O Memoria Arch. Elab. - S. Orlando 42

43 Gestione di eccezioni e interruzioni Il controllo di ogni processore deve essere predisposto per gestire il verificarsi di eventi inattesi Tutti i processori, quando si verifica un evento di eccezione/interruzione, la gestiscono secondo lo schema seguente: interruzione dell esecuzione del programma corrente salvataggio di parte dello stato di esecuzione corrente (almeno PC) salto ad una routine del codice che costituisce il Sistema Operativo (SO) il SO è stato caricato in memoria al momento del boot del sistema il salvataggio dello stato del programma interrotto serve al SO per poter riprenderne eventualmente l esecuzione, successivamente e se necessario Nota che le routine del SO possono essere invocate esplicitamente dai programmi (es.: invocazione routine di I/O) nel MIPS abbiamo l istruzione syscall esecuzione della syscall interpretata dal controllo come una particolare eccezione interna Arch. Elab. - S. Orlando 43

44 Gestione di eccezioni e interruzioni Problema: l handler del SO deve essere in grado di capire quale evento si è verificato Soluzioni alternative: 1 il controllo della CPU, prima di saltare all handler predisposto dal SO (ad un indirizzo fisso), deve salvare in un registro interno un identificatore numerico del tipo di eccezione/interruzione verificatosi. L handler accederà al registro interno per determinare la causa dell eccezione/interruzione 2 interruzioni vettorizzate: esistono handler diversi per eccezioni/interruzioni differenti. Il controllo della CPU deve scegliere l handler corretto, saltando all indirizzo corretto. A questo scopo, viene predisposto un vettore di indirizzi, uno per ogni tipo di eccezioni/interruzioni, da indirizzare tramite il codice numerico dell eccezione/interruzione Nel MIPS viene adottata la 1 a soluzione, usando un registro, denominato Cause, per memorizzare il motivo dell eccezione/interruzione Il PC corrente viene invece salvato nel registro EPC Arch. Elab. - S. Orlando 44

45 Gestione eccezioni nel MIPS Il Controllo (ma anche il Datapath corrispondente) deve essere progettato per individuare l evento inatteso interrompere l istruzione corrente salvare il PC corrente (nel registro interno EPC = Exception PC) salvare la causa dell interruzione nel registro Cause consideremo solo le eccezioni di overflow e istruzione non valida 0 = istruzione non valida 1=overflow saltare ad una routine del SO (exception/interrupt handler) ad un indirizzo fisso: 0xC Il MIPS non salva nessun altro registro oltre PC è compito dell handler salvare altre porzioni dello stato corrente del programma (es. tutti i registri generali), se necessario approccio RISC esistono CPU dove questo salvataggio esteso dello stato viene sempre effettuato prima di saltare all interrupt handler salvataggio garantito dal microcodice approccio CISC Arch. Elab. - S. Orlando 45

46 Rilevamento eccezione Overflow segnale che arriva al controllo dall ALU Istruzione non valida controllo lo deve rilevare sulla base del campo op dell istruzione Dobbiamo aggiungere 2 nuovi stati al nostro automa a partire dallo stato Instruction Decode, dobbiamo poter transire nel nuovo stato Invalid Instruction solo se giunge un Op non valido a partire dallo stato R-type Completion, dobbiamo poter anche transire nello stato Overflow solo se giunge un segnale di overflow dal Datapath (ALU) questa transizione si potrebbe anticipare allo stato Execution Problema: next state da calcolare in base ad un segnale calcolato dal Datapath durante lo stesso ciclo di clock I nuovi stati che gestiscono le eccezioni dovranno occuparsi di salvare in EPC il PC corrente (ovvero PC - 4) di salvare 0/1 in Cause di memorizzare 0xC in PC Il prossimo stato sarà il Fetch (ma della prima istruzione dell handler) Arch. Elab. - S. Orlando 46

47 Nuovo controllo Invalid Instruction Overflow Arch. Elab. - S. Orlando 47

48 Nuovo Datapath Nuovo ingresso per PC (ind. Interrupt handler): 0xC EPC viene caricato con il risultato dell ALU, che calcola PC- 4 Cause viene caricato con 0, oppure con 1. Arch. Elab. - S. Orlando 48

Problemi con progetto a singolo ciclo. Progetto CPU (multiciclo) Esempio di riduzione del ciclo di clock. Datapath multiciclo

Problemi con progetto a singolo ciclo. Progetto CPU (multiciclo) Esempio di riduzione del ciclo di clock. Datapath multiciclo Problemi con progetto a singolo ciclo Progetto CPU (multiciclo) Problemi del singolo ciclo Ciclo di clock lungo Istruzioni potenzialmente più veloci sono rallentate impiegano lo stesso tempo dell istruzione

Dettagli

Arch. Elab. - S. Orlando 2. unità funzionali possono essere usate più volte per eseguire la stessa

Arch. Elab. - S. Orlando 2. unità funzionali possono essere usate più volte per eseguire la stessa Progetto CPU (multiciclo) Salvatore Orlando Arch. Elab. - S. Orlando 1 Esempio di riduzione del ciclo di clock Effettua un taglio su grafo delle dipendenze corrispondente al circuito combinatorio, e inserisci

Dettagli

Progetto CPU (multiciclo)

Progetto CPU (multiciclo) Progetto CPU (multiciclo) Salvatore Orlando Arch. Elab. - S. Orlando 1 Problemi con progetto a singolo ciclo Problemi del singolo ciclo Ciclo di clock lungo Istruzioni potenzialmente più veloci sono rallentate

Dettagli

Progetto del processore e supporto del processore al SO (interruzioni eccezioni) Salvatore Orlando

Progetto del processore e supporto del processore al SO (interruzioni eccezioni) Salvatore Orlando Progetto del processore e supporto del processore al SO (interruzioni eccezioni) Salvatore Orlando Arch. Elab. - S. Orlando 1 Eccezioni e interruzioni Il progetto del controllo del processore si complica

Dettagli

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa) Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Parte di Controllo La Parte Controllo (Control) della CPU è un circuito sequenziale istruzioni eseguite in più cicli di clock

Dettagli

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa) Processore Memoria Control (Parte di controllo) Datapath (Parte operativa) I/O Memoria La dimensione del Register File è piccola registri usati per memorizzare singole variabili di tipo semplice purtroppo

Dettagli

Il processore: unità di controllo

Il processore: unità di controllo Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune

Dettagli

Progetto CPU (ciclo singolo) Salvatore Orlando

Progetto CPU (ciclo singolo) Salvatore Orlando Progetto CPU (ciclo singolo) Salvatore Orlando Arch. Elab. - S. Orlando 1 Processore: Datapath & Control Possiamo finalmente vedere il progetto di un processore MIPS-like semplificato Semplificato in modo

Dettagli

L'architettura del processore MIPS

L'architettura del processore MIPS L'architettura del processore MIPS Piano della lezione Ripasso di formati istruzione e registri MIPS Passi di esecuzione delle istruzioni: Formato R (istruzioni aritmetico-logiche) Istruzioni di caricamento

Dettagli

Processore: Datapath & Control. Progetto CPU (ciclo singolo) Rivediamo i formati delle istruzioni. ISA di un MIPS-lite

Processore: Datapath & Control. Progetto CPU (ciclo singolo) Rivediamo i formati delle istruzioni. ISA di un MIPS-lite Processore: Datapath & Control Possiamo finalmente vedere il progetto di un processore MIPS-like semplificato Progetto CPU (ciclo singolo) Semplificato in modo tale da eseguire solo: istruzioni di memory-reference:

Dettagli

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti Progetto della CPU MIPS a 1 colpo di clock - Istruzioni da implementare - Unità

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 28/29 CPU multiciclo Massimiliano Giacomin Esempi di processori che usano controllo a singolo ciclo: NESSUNO! Perché? Periodo di clock: abbastanza lungo per garantire la

Dettagli

Il processore: unità di elaborazione

Il processore: unità di elaborazione Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero

Dettagli

Realizzazione a cicli di clock multipli

Realizzazione a cicli di clock multipli Realizzazione a cicli di clock multipli Riprendiamo in esame la realizzazione dell'unità di calcolo per individuare, per ciascuna classe di istruzioni, le componenti utilizzate e suddividere le azioni

Dettagli

CPU a ciclo multiplo

CPU a ciclo multiplo Architettura degli Elaboratori e delle Reti Lezione CPU a ciclo multiplo Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 1/8 Sommario! I problemi

Dettagli

L unità di controllo di CPU a singolo ciclo

L unità di controllo di CPU a singolo ciclo L unità di controllo di CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1,

Dettagli

Architettura degli Elaboratori B Introduzione al corso

Architettura degli Elaboratori B Introduzione al corso Architettura degli Elaboratori B Introduzione al corso Salvatore Orlando Arch. Elab. - S. Orlando 1 Componenti di un calcolatore convenzionale Studieremo il progetto e le prestazioni delle varie componenti

Dettagli

CPU a ciclo multiplo

CPU a ciclo multiplo Architettura degli Elaboratori e delle Reti Lezione CPU a ciclo multiplo Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L /9 Sommario! I problemi

Dettagli

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Caratteristiche principali dell architettura del processore MIPS Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini E un architettura RISC

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC

Dettagli

CALCOLATORI ELETTRONICI 15 aprile 2014

CALCOLATORI ELETTRONICI 15 aprile 2014 CALCOLATORI ELETTRONICI 15 aprile 2014 NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli a stampa 1 Di seguito è riportato lo schema di una ALU a 32 bit in grado

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici CPU multiciclo: esercizi Massimiliano Giacomin 1 Prima tipologia di esercizi: valutazione delle prestazioni 2 Specchio riassuntivo su prestazioni e CPI 0) In generale: T esecuzione

Dettagli

Implementazione semplificata

Implementazione semplificata Il processore 168 Implementazione semplificata Copre un sottoinsieme limitato di istruzioni rappresentative dell'isa MIPS aritmetiche/logiche: add, sub, and, or, slt accesso alla memoria: lw, sw trasferimento

Dettagli

Architettura degli elaboratori - CPU multiciclo A.A. 2016/17. Architettura degli elaboratori

Architettura degli elaboratori - CPU multiciclo A.A. 2016/17. Architettura degli elaboratori Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori Marco Tarini Dipartimento di Scienze Teoriche e Applicate marco.tarini@uninsubria.it Progetto

Dettagli

Controllo con macchina a stati finiti

Controllo con macchina a stati finiti Controllo con macchina a stati finiti Durante l esecuzione di un programma applicativo i circuiti interpretano le istruzioni: del programma costituito dal< programma applicativo i servizi OS> Logica di

Dettagli

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune

Dettagli

Problemi del ciclo singolo

Problemi del ciclo singolo Problemi del ciclo singolo Ciclo di clock lungo Istruzioni potenzialmente veloci sono rallentate Impiegano sempre lo stesso tempo dell istruzione più lenta Unità funzionale e collegamenti della parte operativa

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Linguaggio macchina e assembler (caso di studio: processore MIPS) slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Architettura degli Elaboratori 1 1 Istruzioni

Dettagli

CALCOLATORI ELETTRONICI 29 giugno 2010

CALCOLATORI ELETTRONICI 29 giugno 2010 CALCOLATORI ELETTRONICI 29 giugno 2010 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si disegni lo schema di un flip-flop master-slave S-R sensibile ai fronti di salita e

Dettagli

Esempio: aggiungere j

Esempio: aggiungere j Esempio: add Esempio: load Esempio: beq Esempio: aggiungere j Eccezioni e interruzioni Il progetto del controllo del processore si complica a causa della necessità di considerare, durante l esecuzione

Dettagli

CALCOLATORI ELETTRONICI 29 giugno 2011

CALCOLATORI ELETTRONICI 29 giugno 2011 CALCOLATORI ELETTRONICI 29 giugno 2011 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si implementi per mezzo di una PLA la funzione combinatoria (a 3 ingressi e due uscite)

Dettagli

L unità di elaborazione e di controllo

L unità di elaborazione e di controllo L unità di elaborazione e di controllo 1 The Processor: Datapath & Control We're ready to look at an implementation of the MIPS Simplified to contain only: memory-reference instructions: lw, sw arithmetic-logical

Dettagli

CALCOLATORI ELETTRONICI 31 marzo 2015

CALCOLATORI ELETTRONICI 31 marzo 2015 CALCOLATORI ELETTRONICI 31 marzo 2015 NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli a stampa 1. Tradurre in linguaggio assembly MIPS il seguente frammento di

Dettagli

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H Architettura dei calcolatori e sistemi operativi Il processore Capitolo 4 P&H 4. 11. 2015 Sommario Instruction Set di riferimento per il processore Esecuzione delle istruzioni Struttura del processore

Dettagli

Calcolatori Elettronici B a.a. 2007/2008

Calcolatori Elettronici B a.a. 2007/2008 Calcolatori Elettronici B a.a. 27/28 Tecniche Pipeline: Elementi di base assimiliano Giacomin Reg[IR[2-6]] = DR Dal processore multiciclo DR= em[aluout] em[aluout] =B Reg[IR[5-]] =ALUout CASO IPS lw sw

Dettagli

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS) Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS) Salvatore Orlando Arch. Elab. - S. Orlando 1 Livelli di astrazione Scendendo di livello, diventiamo più concreti e scopriamo

Dettagli

Calcolo durata ciclo. Prestazioni Singolo Ciclo. Prestazioni singolo ciclo. Durata Ciclo Variabile

Calcolo durata ciclo. Prestazioni Singolo Ciclo. Prestazioni singolo ciclo. Durata Ciclo Variabile Prestazioni Singolo Ciclo Assumiamo i seguenti ritardi: Unita di memoria: 2 nanosecondi e adders: 2 nanosecondi Banco di istri: 1 nanosecondo per gli altri: insignificante Quale e la durata del ciclo?

Dettagli

CPU pipeline hazards

CPU pipeline hazards Architettura degli Elaboratori e delle Reti Lezione 23 CPU pipeline hazards Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 23 /24 Sommario!

Dettagli

CPU a singolo ciclo: l unità di controllo, istruzioni tipo J

CPU a singolo ciclo: l unità di controllo, istruzioni tipo J Architettura degli Elaboratori e delle Reti Lezione 9 CPU a singolo ciclo: l unità di controllo, istruzioni tipo J Pro. A. Borghese, F. Pedersini Dipartimento di Scienze dell Inormazione Università degli

Dettagli

Architettura di tipo registro-registro (load/store)

Architettura di tipo registro-registro (load/store) Caratteristiche principali dell architettura del processore MIPS E un architettura RISC (Reduced Instruction Set Computer) Esegue soltanto istruzioni con un ciclo base ridotto, cioè costituito da poche

Dettagli

Cicli di clock e istruzioni

Cicli di clock e istruzioni Cicli di clock e istruzioni Numero di cicli di clock differenti per istruzioni differenti Le moltiplicazioni impiegano più tempo delle addizioni Operazioni in virgola mobile impiegano più tempo delle operazioni

Dettagli

L unità di controllo di CPU multi-ciclo

L unità di controllo di CPU multi-ciclo L unità di controllo di CPU multi-ciclo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano A.A. 23-24 /2 Sommario I segnali di controllo

Dettagli

Elementi base per la realizzazione dell unità di calcolo

Elementi base per la realizzazione dell unità di calcolo Elementi base per la realizzazione dell unità di calcolo Memoria istruzioni elemento di stato dove le istruzioni vengono memorizzate e recuperate tramite un indirizzo. ind. istruzione Memoria istruzioni

Dettagli

Esercitazione su Instruction Level Parallelism Salvatore Orlando

Esercitazione su Instruction Level Parallelism Salvatore Orlando Esercitazione su Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Pipeline con e senza forwarding Si considerino due processori MIPS (processore A e B) entrambi con pipeline a

Dettagli

Data-path. ad un solo bus interno. Struttura del processore. L unità di elaborazione

Data-path. ad un solo bus interno. Struttura del processore. L unità di elaborazione Struttura del processore L unità di elaborazione Data-path ad un solo bus interno Faremo riferimento ad una generica CPU e a una memoria con parole da 32 bit I registri: PC; MAR/MDR (di appoggio per accesso

Dettagli

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).! ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).! MACCHINA DI VON NEUMANN! UNITÀ FUNZIONALI fondamentali! Processore

Dettagli

Esercizio n. 7 - Microcodice

Esercizio n. 7 - Microcodice Esercizio n. 7 - Microcodice Lo schema riportato qui di fianco illustra l architettura di processore a bus singolo di riferimento. Si scriva il microcodice capace di eseguire la coppia di istruzioni seguenti:

Dettagli

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j L insieme delle istruzioni (2) Architetture dei Calcolatori (lettere A-I) Istruzioni per operazioni logiche: shift Shift (traslazione) dei bit di una parola a destra o sinistra sll (shift left logical):

Dettagli

L unità di elaborazione PC: MAR/MDR IR: R0 Rn: TEMP, V, Z

L unità di elaborazione PC: MAR/MDR IR: R0 Rn: TEMP, V, Z Struttura del processore L unità di elaborazione Corso ACSO prof. Cristina SILVANO Politecnico di Milano Datapath ad un solo bus interno Faremo riferimento ad una generica CPU e a una memoria con parole

Dettagli

Esercitazione su Instruction Level Parallelism

Esercitazione su Instruction Level Parallelism Esercitazione su Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Pipeline con e senza forwarding Si considerino due processori MIPS (processore A e B) entrambi con pipeline a

Dettagli

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori circuiti combinatori: ALU slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello 1 ALU ALU (Arithmetic Logic Unit) circuito combinatorio all interno del processore per l esecuzione di istruzioni

Dettagli

1. Si effettui la divisione di 7/5 utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware.

1. Si effettui la divisione di 7/5 utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware. 1. Si effettui la divisione di 7/5 utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware. 2. Spiegare i diversi tipi di indirizzamento usati dalle istruzioni del set

Dettagli

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded Microelettronica Corso introduttivo di progettazione di sistemi embedded Architettura dei sistemi a microprocessore prof. Stefano Salvatori A.A. 2014/2015 Eccetto dove diversamente specificato, i contenuti

Dettagli

Instruction Level Parallelism Salvatore Orlando

Instruction Level Parallelism Salvatore Orlando Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Organizzazione parallela del processore I processori moderni hanno un organizzazione interna che permette di eseguire più istruzioni

Dettagli

Instruction Level Parallelism

Instruction Level Parallelism Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Organizzazione parallela del processore I processori moderni hanno un organizzazione interna che permette di eseguire più istruzioni

Dettagli

Capitolo 5 Elementi architetturali di base

Capitolo 5 Elementi architetturali di base Capitolo 5 Elementi architetturali di base Giuseppe Lami Istituto di Scienza e Tecnologie dell Informazione CNR Via Moruzzi, 1 - Pisa giuseppe.lami@isti.cnr.it Struttura - Unità di elaborazione e controllo

Dettagli

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione Architettura di un calcolatore e linguaggio macchina Primo modulo Tecniche della programmazione CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina

Dettagli

Struttura del processore. Funzionamento del processore

Struttura del processore. Funzionamento del processore Struttura del processore L unità di elaborazione Funzionamento del processore. Prelievo dell istruzione dalla memoria al processore (dall indirizzo indicato dal PC al registro di istruzione IR) IR [[PC]]

Dettagli

ARCHITETTURA DI UN ELABORATORE

ARCHITETTURA DI UN ELABORATORE ARCHITETTURA DI UN ELABORATORE memoria centrale Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40). John von Neumann (Neumann János) (December 28, 1903

Dettagli

Il pipelining: tecniche di base

Il pipelining: tecniche di base Il pipelining: tecniche di base Il pipelining E una tecnica per migliorare le prestazioni del processore basata sulla sovrapposizione dell esecuzione di più istruzioni appartenenti ad un flusso di esecuzione

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Architetture degli elaboratori Il calcolatore Un calcolatore è sistema composto da un elevato numero di componenti Il suo funzionamento può essere descritto se lo si considera come

Dettagli

Tutorato Architettura degli elaboratori

Tutorato Architettura degli elaboratori 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

Dettagli

Sistemi e reti CPU Concetti di base

Sistemi e reti CPU Concetti di base Sistemi e reti CPU Concetti di base A cura dell Ing. Claudio Traini Cenni Storici 1971 il primo processore mai realizzato : Intel 4004 Progettato dal vicentino Federico Faggin 1 Cenni Storici 1976 Faggin

Dettagli

Capitolo 5 Struttura di base del processore

Capitolo 5 Struttura di base del processore Capitolo 5 Struttura di base del processore 5.1. Il periodo di clock deve ospitare tutti i ritardi di propagazione più il tempo di impostazione per i registri. a. Minimo periodo di clock = 70 + 600 + 50

Dettagli

Controllo a ciclo singolo

Controllo a ciclo singolo Controllo a ciclo singolo Il controllo della CPU a singolo ciclo è combinatorio Il datapath è invece un circuito sequenziale i suoi output dipendono anche dal valore dei registri es. Zero, oppure l indirizzo

Dettagli

Il pipelining: tecniche di base

Il pipelining: tecniche di base Definizione di pipelining Il pipelining: tecniche di base Architetture Avanzate dei Calcolatori E una tecnica per migliorare le prestazioni del processore basata sulla sovrapposizione dell esecuzione di

Dettagli

Concetti di base delle Moderne architetture. Due concetti fondamentali. Due concetti fondamentali

Concetti di base delle Moderne architetture. Due concetti fondamentali. Due concetti fondamentali Concetti di base delle Moderne architetture una semplice architettura RISC esecuzione delle istruzioni in un unico ciclo di clock esecuzione delle istruzioni in più cicli di clock introduzione del pipelining

Dettagli

Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div

Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div MIPS load/store word, con indirizzamento al byte aritmetica solo su registri Istruzioni Significato add $t1, $t2, $t3 $t1 = $t2 + $t3 sub $t1, $t2, $t3 $t1 = $t2 - $t3 mult $t1, $t2 Hi,Lo = $t1*$t2 div

Dettagli

Macchine Astratte. Luca Abeni. February 22, 2017

Macchine Astratte. Luca Abeni. February 22, 2017 Macchine Astratte February 22, 2017 Architettura dei Calcolatori - 1 Un computer è composto almeno da: Un processore (CPU) Esegue le istruzioni macchina Per fare questo, può muovere dati da/verso la memoria

Dettagli

Architettura degli Elaboratori B Introduzione al corso

Architettura degli Elaboratori B Introduzione al corso Componenti di un calcolatore convenzionale Architettura degli Elaboratori B Introduzione al corso Salvatore Orlando http://www.dsi.unive.it/~arcb Studieremo il progetto e le prestazioni delle varie componenti

Dettagli

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando Un altro tipo di indirizzamento L insieme delle istruzioni (3) Architetture dei Calcolatori (lettere A-I) Tipi di indirizzamento visti finora Indirizzamento di un registro Indirizzamento con registro base

Dettagli

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 2007/2008 Francesco Tortorella Istruzioni di confronto Istruzione Significato slt $t1,$t2,$t3 if

Dettagli

ARCHITETTURA DI UN ELABORATORE

ARCHITETTURA DI UN ELABORATORE ARCHITETTURA DI UN ELABORATORE Unità funzionali Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40). La macchiana di Von Neumann: Non distingueva fra RAM

Dettagli

ISA (Instruction Set Architecture) della CPU MIPS

ISA (Instruction Set Architecture) della CPU MIPS Architettura degli Elaboratori Lezione 20 ISA (Instruction Set Architecture) della CPU MIPS Prof. Federico Pedersini Dipartimento di Informatica Uniersità degli Studi di Milano L16-20 1 Linguaggio macchina

Dettagli

Pinout PD32. Memoria di lavoro esterna. tramite l indirizzo ad esse associato. e possono essere lette o scritte: Le singole celle sono distinguibili

Pinout PD32. Memoria di lavoro esterna. tramite l indirizzo ad esse associato. e possono essere lette o scritte: Le singole celle sono distinguibili PD-32,prima parte Struttura a blocchi del sistema di calcolo MEMORIA KB Memory Address Bus Memory Data Bus Memory Control Bus PD32 I/O Address Bus I/O Data Bus I/O Control Bus IACK Device Device 7 Pinout

Dettagli

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni Istruzioni macchina Linguaggio macchina Insieme delle istruzioni (instruction set) che la CPU puo eseguire Capitolo 10 1 2 Elementi di un istruzione macchina Codice operativo Specifica l operazione da

Dettagli

Macchina di von Neumann/Turing

Macchina di von Neumann/Turing Macchina di von Neumann/Turing Concetto di programma memorizzato Memoria principale per dati e istruzioni ALU opera su dati in formato binario Unità di controllo che interpreta le istruzioni in memoria

Dettagli

$GGL]LRQDWRULPHWRGR &DUU\/RRNDKHDG

$GGL]LRQDWRULPHWRGR &DUU\/RRNDKHDG $GGL]LRQDWRULPHWRGR &DUU\/RRNDKHDG Salvatore Orlando & Marta Simeoni Arch. Elab. - S. Orlando 1 $GGL]LRQDWRUL Il circuito combinatorio che implementa l addizionatore a n bit è costruito collegando in sequenza

Dettagli

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica Il calcolatore È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica ogni livello di descrizione è caratterizzato da una struttura rappresentante l organizzazione

Dettagli

Step I: equazioni logiche per ogni singola uscita

Step I: equazioni logiche per ogni singola uscita SCO MIPS Multiciclo Logica Combinatoria di Controllo Registro di Stato Corrente Uscite: Segnali di Controllo (SC) Stato Futuro (SF) Modello Moore: SC dipende solo da stato corrente SF dipende anche da

Dettagli

DEC PDP8, III Generazione, '65-'75

DEC PDP8, III Generazione, '65-'75 Parte I DEC PDP8, III Generazione, '65-'75 PDP8 Architettura (Livello Registri) 12 bit Program Counter PC 12 bit Memory Address Register MAR Random Access Memory RAM 4096 x 16 1 bit I 3 bit Operation Code

Dettagli

Istruzioni di trasferimento dati

Istruzioni di trasferimento dati Istruzioni di trasferimento dati Leggere dalla memoria su registro: lw (load word) Scrivere da registro alla memoria: sw (store word) Esempio: Codice C: A[8] += h A è un array di numeri interi Codice Assembler:

Dettagli

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M.

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. di Cassino e del Lazio Meridionale Corso di MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 201/201 Francesco Tortorella Istruzioni di confronto Istruzione

Dettagli

ARCHITETTURA DI UN ELABORATORE

ARCHITETTURA DI UN ELABORATORE RCHITETTUR DI UN ELORTORE Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for dvanced Study, anni 40). MCCHIN DI VON NEUMNN UNITÀ FUNZIONLI fondamentali Processore (CPU) Memoria

Dettagli

Corso di Laurea in Informatica

Corso di Laurea in Informatica Corso di Laurea in Informatica Architetture degli Elaboratori Corsi A e B Scritto del 13 Dicembre 2004 Esercizio 1 (punti -1, 3) Si consideri l architettura nota come macchina di von Neumann (a) Come le

Dettagli

Reti combinatorie. Reti combinatorie (segue)

Reti combinatorie. Reti combinatorie (segue) Reti combinatorie Sommatore Sottrattore Reti sequenziali Generatore di sequenze Riconoscitore di sequenze Reti combinatorie PROGRAMMAZIONE Il programmatore riporta le istruzioni che il calcolatore dovrà

Dettagli

Il linguaggio macchina

Il linguaggio macchina Il linguaggio macchina Istruzioni macchina (PH 2.4) Indirizzamento (PH 2.9) Costanti a 32-bit (PH 2.9) 1 Linguaggio macchina Le istruzioni in linguaggio assembly devono essere tradotte in linguaggio macchina

Dettagli

Architettura degli elaboratori Tema d esame del 20/01/2016

Architettura degli elaboratori Tema d esame del 20/01/2016 Architettura degli elaboratori - Luigi Lavazza A.A. 5/6 Università degli Studi dell Insubria Dipartimento di Informatica e Comunicazione Architettura degli elaboratori Tema d esame del //6 Luigi Lavazza

Dettagli

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 19 Febbraio Attenzione:

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 19 Febbraio Attenzione: Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Appello del 19 Febbraio 2016 Attenzione: Inserire i propri dati nell apposito spazio sottostante e in testa a questa pagina.

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici CPU a singolo ciclo assimiliano Giacomin Schema del processore (e memoria) Unità di controllo Condizioni SEGNALI DI CONTROLLO PC emoria indirizzo IR dato letto UNITA DI ELABORAZIONE

Dettagli

Microelettronica. Introduzione al progetto di un microprocessore. Stefano Salvatori. Università degli Studi Roma Tre.

Microelettronica. Introduzione al progetto di un microprocessore. Stefano Salvatori. Università degli Studi Roma Tre. Microelettronica Introduzione al progetto di un microprocessore Stefano Salvatori (salvator@uniroma3.it) Microelettronica 2012 Sommario up minimo: Formato delle istruzioni Tipi di istruzione Percentuale

Dettagli

Lezione 15. L elaboratore Elettronico

Lezione 15. L elaboratore Elettronico Lezione 15 Architettura di un calcolatore L elaboratore Elettronico Un elaboratore elettronico è una macchina elettronica in grado di elaborare dati secondo le specifiche fornite da un algoritmo Internamente

Dettagli

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche 3 tipi di istruzioni macchina Linguaggio macchina e assembler 1) trasferimento tra RAM e registri di calcolo della CPU 2) operazioni aritmetiche: somma, differenza, moltiplicazione e divisione 3) operazioni

Dettagli

Fasi (MIPS) Dove NPC è un registro temporaneo PC (program counter) è il registro IP (instruction pointer)

Fasi (MIPS) Dove NPC è un registro temporaneo PC (program counter) è il registro IP (instruction pointer) Fasi (MIPS) Fasi senza pipeline: IF (istruction fetch): IR Mem[PC] ; NPC PC + 4 ; Dove NPC è un registro temporaneo PC (program counter) è il registro IP (instruction pointer) Lezione Architettura degli

Dettagli

Componenti principali

Componenti principali Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Classificazione dei calcolatori elettronici Sistemi basati sull architettura di Von Neumann Sistemi basati sull architettura Harward Architettura dei calcolatori: definizioni Evoluzione

Dettagli

Esercitazione sulle CPU pipeline

Esercitazione sulle CPU pipeline Esercitazione sulle CPU pipeline Una CPU a ciclo singolo come pure una CPU multi ciclo eseguono una sola istruzione alla volta. Durante l esecuzione parte dell hardware della CPU rimane inutilizzato perché

Dettagli

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2 La CPU e la Memoria Sistemi e Tecnologie Informatiche 1 Struttura del computer Sistemi e Tecnologie Informatiche 2 1 I registri La memoria contiene sia i dati che le istruzioni Il contenuto dei registri

Dettagli