Progetto CPU (multiciclo)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Progetto CPU (multiciclo)"

Transcript

1 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 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

2 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 Datapath multiciclo Addr dati Registri addizionali 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 sia per leggere/scrivere i dati PC Arch. Elab. - S. Orlando 4

3 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 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

4 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 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

5 Datapath e Controllo multi-ciclo Arch. Elab. - S. Orlando 9 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) Se PCWriteCond=0 il valore di PC che punta alla prossima istruzione rimane invariato Arch. Elab. - S. Orlando 10

6 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 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

7 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 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

8 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 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

9 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 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

10 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 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

11 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 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

12 Riassumendo Step name Action for R -type instructions Action for memory-reference instructions Action for branches Action for jumps Instruction fetch IR = Memory[PC] 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 P C = P C [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 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

13 Definizione controllo Possiamo implementare il controllo della CPU come un circuito sequenziale di Moore, modellabile con 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 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

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

15 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 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

16 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 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 blocco combinatorio al interno del circuito sequenziale che implementa 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 Tabella di verità con m variabili in input e n in output sufficiente una ROM di 2 m x n bit Tabella di verità m ROM n m n Arch. Elab. - S. Orlando 32

17 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 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

18 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 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

19 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 microprogramma, oppure una determinata altra microistruzione la scelta della prossima microistruzione potrà dipendere dagli input (Op code) Arch. Elab. - S. Orlando 37 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

20 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 Sequencing 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 Write MDR Fetch SW2 Write ALU Fetch Rformat1 Func code A B Seq Write 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 fare un microassembler? Arch. Elab. - S. Orlando 39 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

21 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 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 Interruzione es.: overflow, istruzione non valida 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

22 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 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

23 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 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

24 Nuovo controllo Invalid Instruction Overflow Arch. Elab. - S. Orlando 47 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

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 Memoria La dimensione del Register File è piccola registri usati per memorizzare singole variabili di tipo semplice purtroppo

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

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

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

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

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

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

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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754 Addizionatori: metodo Carry-Lookahead Costruzione di circuiti combinatori Standard IEEE754 Addizionatori Il circuito combinatorio che implementa l addizionatore a n bit si basa su 1-bit adder collegati

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

Corso di Alfabetizzazione Informatica 2001/2002. La CPU. F. Tortorella Università degli Studi. di Cassino

Corso di Alfabetizzazione Informatica 2001/2002. La CPU. F. Tortorella Università degli Studi. di Cassino Corso di Alfabetizzazione Informatica / La CPU CPU (Central Processing Unit) Funzione: eseguire i programmi immagazzinati in memoria principale prelevando le istruzioni (e i relativi), interpretandole

Dettagli

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU:

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU: Struttura e Funzione del Processore Capitolo 12 Struttura CPU Compiti CPU: Prelevare istruzioni Interpretare istruzioni Prelevare dati Elaborare dati Scrivere (memorizzare) dati 1 CPU con bus di sistema

Dettagli

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

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione: Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Appello del 18 Febbraio 2015 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

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

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003 Il Ciclo Fetch-Decode-Execute C Nyssen/Aberdeen College 2003 Linguaggio Assembler Op code (Mnemonico) Operando #assembly code program 0000 LDA-24 #loads 0001 ADD-25 #adds 0002 HLT #stops #end of program

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

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

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

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

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

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

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Il processore. Istituzionii di Informatica -- Rossano Gaeta Il processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Dettagli

Esempio: aggiungere j

Esempio: aggiungere j Esempio: aggiungere j 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

Dettagli

Componenti e connessioni. Capitolo 3

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

Dettagli

Architettura hardware

Architettura hardware Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

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

Indirettezza. Fetch/Execute. Fetch/Execute. Introduzione della Indirettezza (indirect)

Indirettezza. Fetch/Execute. Fetch/Execute. Introduzione della Indirettezza (indirect) Ciclo esecutivo delle istruzioni: Fetch/Execute Lo avete visto nel corso di Introduzione alle Architetture degli Elaboratori Stallings, Capitolo 3 Ne vediamo una versione revisionata Indirettezza Per recuperare

Dettagli

Componenti di un processore

Componenti di un processore Componenti di un processore Unità di Controllo Bus Interno REGISTRI Program Counter (PC) Registro di Stato (SR) Registro Istruzioni (IR) Registri Generali Unità Aritmetico- Logica Registro Indirizzi Memoria

Dettagli

Il processore Pentium

Il processore Pentium Caratteristiche principali (I) Architettura interna a 32 bit Address bus a 32 bit: si possono indirizzare fino a 4 GB di memoria fisica Data bus a 64 bit (si tratta in pratica di 2 data bus a 32 bit in

Dettagli

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli

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

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE Il computer o elaboratore è una macchina altamente organizzata capace di immagazzinare, elaborare e trasmettere dati con notevole precisione e rapidità. Schematicamente

Dettagli

Architetture Digitali

Architetture Digitali Corso di Lezione 3 Sintesi RTL Federico Pedersini Laboratorio di (DALab) Dipartimento di Scienze dell Informazione Università degli Studi di Milano Riferimenti bibliografici: [1] F. Fummi, M. Sami, C.

Dettagli

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf Architettura di un calcolatore e ciclo macchina Appunti per la classe 3 Dinf Il Sistema di Elaborazione Computer Hardware Software 2 Hardware Struttura fisica del calcolatore formata dai circuiti elettronici

Dettagli

Linguaggio Assembly e linguaggio macchina

Linguaggio Assembly e linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Il processore: unità di elaborazione e unità di controllo (3)

Il processore: unità di elaborazione e unità di controllo (3) Il processore: nità di elaborazione e nità di lo () rchitettre dei Calcolatori (lettere -I) Limitazione del ciclo singolo I tempi di accesso per le diverse istrzioni variano, ad esempio ccesso in memoria:

Dettagli

Modi di esecuzione user / kernel

Modi di esecuzione user / kernel Corso di Gestione eccezioni nel MIPS Interruzioni Anno Accademico 2006/2007 Francesco Tortorella Modi di esecuzione user / kernel Due modi di esecuzione: User kernel Per ognuno dei due modi di esecuzione

Dettagli

Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).

Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40). 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

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La

Dettagli

Università degli studi di Bologna Anno Accademico 2000/2001 Corso di Architettura degli elaboratori

Università degli studi di Bologna Anno Accademico 2000/2001 Corso di Architettura degli elaboratori Università degli studi di Bologna Anno Accademico 2000/2001 Corso di Architettura degli elaboratori Esercitazione di Reti Logiche Realizzazione completa di un'architettura di processore attraverso strumenti

Dettagli

Architettura di una CPU

Architettura di una CPU Massimo VIOLANTE Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni 2 M. Violante 1.1

Dettagli

HARDWARE 1.4a: (Processore)

HARDWARE 1.4a: (Processore) HARDWARE 1.4a: (Processore) 2 23 nov 2011 Bibliografia Curtin, Foley, Sen, Morin Informatica di base, Mc Graw Hill Sciuto, Buonanno, Mari, Introduzione ai sistemi informatici, Mc Graw Hill Questi lucidi

Dettagli

Architettura di un processore basato su registri generali.

Architettura di un processore basato su registri generali. Architettura di un processore basato su registri generali. M. Esposito (mesposit@unina.it) 26 febbraio 2007 In Fig. 1 è riportato uno schema di principio che raffigura l architettura di un processore basato

Dettagli

Il Processore: l unità di controllo

Il Processore: l unità di controllo Il Processore: l unità di controllo La frequenza con cui vengono eseguiti i cicli di esecuzione è scandita da una componente detta clock Ad ogni impulso di clock la UC esegue un ciclo di esecuzione di

Dettagli

static dynamic random access memory

static dynamic random access memory LA MEMORIA SRAM e D R A M static dynamic random access memory SRAM: unità che memorizza un gran numero di parole in un insieme di flip-flop, opportunamente connessi, mediante un sistema di indirizzamento

Dettagli

Introduzione alle gerarchie di memoria

Introduzione alle gerarchie di memoria Introduzione alle gerarchie di memoria 1 Un ripasso Circuito sequenziale Segnale di clock Circuito sincrono Temporizzazione sensibile ai fronti Latch tipo S-R Latch tipo D Flip-flop tipo D Register file

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore Architettura di un calcolatore Corso di Informatica A Vito Perrone Indice La macchina di Von Neumann Memoria CPU Bus Interfacce Esempio L algoritmo Il programma Fasi di esecuzione di un istruzione 2 1

Dettagli

Elaborazione dell informazione

Elaborazione dell informazione Elaborazione dell informazione Primo esempio Ricominciamo dai numeri (45 + 25) è definita rigorosamente Un primo calcolatore (a) Figura 1.1 Configurazione del pallottoliere (a) prima e (b) dopo l esecuzione

Dettagli

Le prestazioni di un calcolatore la CPU

Le prestazioni di un calcolatore la CPU Le prestazioni di un calcolatore la CPU Mariagiovanna Sami 1 Perché valutare le prestazioni? Le prestazioni dello hardware (che si considerano qui) sono spesso essenziali per valutarwe le prestazioni di

Dettagli

Linguaggio Assembly e linguaggio macchina

Linguaggio Assembly e linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 11 Linguaggio Assembly e linguaggio macchina Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

LA GESTIONE DELLA I/O

LA GESTIONE DELLA I/O LA GESTIONE DELLA I/O Il S.O. È l interfaccia tra l hardware e i programmi che effettuano richieste di I/O Sottosistema di I/O strutturato in moduli chiamati DRIVER uno per ogni dispositivo I Driver rendono

Dettagli

COMPITINO #1 di CALCOLATORI ELETTRONICI 1 del 03-11-09 COGNOME NOME

COMPITINO #1 di CALCOLATORI ELETTRONICI 1 del 03-11-09 COGNOME NOME MATRICOLA COGNOME NOME 1) [28/40] Trovare il codice assembly MIPS corrispondente dei seguenti micro-benchmark (utilizzando solo e unicamente istruzioni dalla tabella sottostante), rispettando le convenzioni

Dettagli

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

Elementi di Architettura

Elementi di Architettura Elementi di Architettura Fondamenti di Informatica Roberto BASILI Marzo, 2007 Classi di Istruzioni Istruzioni di assegnamento/modifica Istruzioni di controllo delle sequenze Istruzioni di I/O Classi di

Dettagli

Architettura dei sistemi di elaborazione: La CPU: Architettura (parte1)

Architettura dei sistemi di elaborazione: La CPU: Architettura (parte1) Architettura dei sistemi di elaborazione: La CPU: Architettura (parte1) La CPU Architettura L organizzazione interna di una CPU è caratterizzata dal data path, che è costituito da una serie di componenti,

Dettagli

Lecture 2: Prime Istruzioni

Lecture 2: Prime Istruzioni [http://www.di.univaq.it/muccini/labarch] Modulo di Laboratorio di Architettura degli Elaboratori Corso di Architettura degli Elaboratori con Laboratorio Docente: H. Muccini Lecture 2: Prime Istruzioni

Dettagli

Architettura dei calcolatori

Architettura dei calcolatori Cos'è un calcolatore? Architettura dei calcolatori Esecutore automatico di algoritmi Macchina universale Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura

Dettagli

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O L ARCHITETTURA DEI CALCOLATORI Il processore La memoria centrale La memoria di massa Le periferiche di I/O Caratteristiche dell architettura 2 Flessibilità adatta a svolgere diverse tipologie di compiti

Dettagli

Unità Aritmetico-Logica

Unità Aritmetico-Logica Unità Aritmetico-Logica A ritmethic L ogic U nit E l unità che esegue le operazioni aritmetiche e le operazioni logiche AND e OR 1-bit ALU : è una componente dell ALU che produce un singolo bit sui 32

Dettagli

Corso di Informatica

Corso di Informatica CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Il Processore (CPU) 2 rchitettura del processore CPU Unità di Controllo Unità ritmetica Logica

Dettagli

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Architettura degli Elaboratori Lezione 20 Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Prof. F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a Docente: H. Muccini

Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a Docente: H. Muccini [http://www.di.univaq.it/muccini/labarch] Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a. 2006-2007 Docente: H. Muccini Lecture 12: - Numeri con segno -Somma e sottrazione

Dettagli

LINGUAGGIO MACCHINA e ASSEMBLER. Una CPU MINIMA Il linguaggio macchina di MINIMA Il linguaggio Assembler per MINIMA

LINGUAGGIO MACCHINA e ASSEMBLER. Una CPU MINIMA Il linguaggio macchina di MINIMA Il linguaggio Assembler per MINIMA LINGUAGGIO MACCHINA e ASSEMBLER Una CPU MINIMA Il linguaggio macchina di MINIMA Il linguaggio Assembler per MINIMA Nel computer non vengono memorizzati soltanto i dati da elaborare ma anche il programma

Dettagli

La macchina programmata Instruction Set Architecture (1)

La macchina programmata Instruction Set Architecture (1) Corso di Laurea in Informatica Architettura degli elaboratori a.a. 2014-15 La macchina programmata Instruction Set Architecture (1) Schema base di esecuzione Istruzioni macchina Outline Componenti di un

Dettagli

Esame di Architetture Canale MZ Prof. Sterbini 8/6/15

Esame di Architetture Canale MZ Prof. Sterbini 8/6/15 Esame di Architetture Canale MZ Prof. Sterbini 8/6/15 Cognome e Nome: Matricola: Parte 1 (per chi non ha superato l'esonero 1 ora) Esercizio 1 (14 punti). In una partita di CPU a ciclo di clock singolo

Dettagli