Integer Java VM: IJVM

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Integer Java VM: IJVM"

Transcript

1 Integer Java VM: IJVM Calcolatori Elettronici C.Brandolese Politecnico di Milano Sommario Introduzione Architettura Data Path Stack Modello di Memoria Instruction Set Microarchitettura Il livello microistruzione Microistruzioni Microcodice Aumento delle prestazioni Architettura a tre bus Prefetching Pipelining Branch prediction 13 Novembre 2000 Calcolatori Elettronici 2 1

2 Introduzione La microarchitettura IJVM E una versione molto ridotta di una JVM reale Utilizza solo aritmetica intera E realizzata con un esecutore specializzato Lo scopo è quello di eseguire un programma Java Java Source Java Compiler Java Bytecode IJVM Instruction Decoder Control Unit Microistruzioni Data Path 13 Novembre 2000 Calcolatori Elettronici 3 Data Path SP MAR LV CPP MDR PC MAIN MEMORY TOS MBR OPC H 6 N Z SHIFTER 2 SHIFT 13 Novembre 2000 Calcolatori Elettronici 4 2

3 Data Path Il data path dispone di due bus: BUS C: Scrittura sui registri BUS B: Lettura dai registri I registri dispongono di almeno due segnali di controllo: R: Legge dal BUS C e memorizza nel registro i dati letti W: Scrive sul BUS B i dati memorizzati in un registro Alcuni registri dispongono di segnali specifici E possibile leggere e scrivere un registro nello stesso ciclo di clock BUS C Read (from BUS C) REGISTER Write (to BUS B) BUS B 13 Novembre 2000 Calcolatori Elettronici 5 Data Path La ha 6 segnali di controllo: F0, F1: Function ENA, ENB: Enable input A and B INVA: Invert input A INC: Set carry-in to 1 La ha due segnali di uscita: N: Negative Z: Zero Operazioni con due operandi: Si usa una funzione che fornisce in uscita l operando B Lo si memorizza nel registro H Si connette il BUS B con il 2 operando 6 Operand A Result Operand B N Z 13 Novembre 2000 Calcolatori Elettronici 6 3

4 Data Path Alcune delle funzioni realizzate dalla in base ai segnali di controllo sono riportate nella tabella seguente F0 F1 ENA ENB INVA INC Funzione A B A+B A B-A A A AND B Novembre 2000 Calcolatori Elettronici 7 Stack L architettura IJVM non dispone di registri generici Le operazioni sui dati vengono svolte usando: Il registro H per mantenere uno dei dati Il registro MDR I dati, cioè le variabili, di ogni procedura vengono mantenuti in una zona di memoria detta stack o pila Due registri gestiscono lo stack: SP: Stack Pointer. Punta alla cima dello stack, cioè alla locazione di memoria occupata con indirizzo più alto LV: Local Variables. Punta alla locazione con indirizzo più basso contenete una variabile locale della procedura corrente Ogni procedura deve gestire i registri SP ed LV 13 Novembre 2000 Calcolatori Elettronici 8 4

5 Stack La figura mostra lo stato dello stack: Dopo la chiamata della procedura A con variabili a1, a2, a3 Dopo la chiamata della procedura B con variabili b1, b2, b3 e b4 Dopo la terminazione di B calls A A calls B B returns to A A returns to... SP LV b4 b3 b2 b1 Local Frame of B SP LV a3 a2 a1 Local Frame of A a3 a2 a1 SP LV a3 a2 a1 13 Novembre 2000 Calcolatori Elettronici 9 Stack Lo stack viene usato anche per mantenere gli operandi durante l esecuzione di una operazione svolta dalla Primo operando sullo stack (PUSH) Secondo operando sullo stack (PUSH) Operazione Prelievo del risultato dallo stack (POP) PUSH a2 PUSH a3 ADD POP a1 SP a3 SP a2 a2 SP a2 + a3 SP a3 a3 a3 a3 SP a3 a2 a2 a2 a2 a2 LV a1 LV a1 LV a1 LV a1 LV a2 + a3 13 Novembre 2000 Calcolatori Elettronici 10 5

6 Modello di Memoria La memoria ha una dimensione di 4GB Visibili come 4G Bytes Visibili come 1G Words La memoria non è indirizzabile direttamente Gli indirizzi sono offset rispetto ad un puntatore: CPP: Contant Pool Pointer. Indica la base di una zona di memoria riservata alle costanti SP: Stack Pointer. Indica la cima del local frame LV: Local Variables. Indica la base del local frame PC: Program Counter. Punta all istruzione da eseguire I registri CPP, SP ed LV sono allineati alle word Il registro PC è allineato al byte 13 Novembre 2000 Calcolatori Elettronici 11 Instruction Set L instruction set della IJVM si compone di 20 istruzioni Ogni istruzione è formata da: Codice operativo Un operando (opzionale) Le istruzioni possono essere divise in 6 classi in base al tipo di operazione che svolgono Load/Store Stack Branch Subroutine Altre 13 Novembre 2000 Calcolatori Elettronici 12 6

7 Instruction Set Load/Store Istruzione ILOAD offset ISTORE offset Significato Push della variabile sullo stack Pop dello stack e copia nella variabile Stack Istruzione BIPUSH byte DUP LDCW offset POP SWAP Significato Push di un byte sullo stack Duplica la variabile alla cima dello stack e push Push di una costante sullo stack Elimina la variabile alla cima dello stack Scambia le due parole alla cima dello stack 13 Novembre 2000 Calcolatori Elettronici 13 Instruction Set Istruzione IADD IAND IINC offset inc IOR ISUB Significato Pop di due parole dallo stack e push della loro somma Pop di due parole dallo stack e push del loro AND logico Somma di una costante ad una variabile locale Pop di due parole dallo stack e push del loro OR logico Pop di due parole dallo stack e push della loro differenza Branch Istruzione GOTO offset IFEQ offset IFLT offset IFICMPEQ offset Significato Salta in modo incondizionato Pop di una parola dallo stack e salta se è zero Pop di una parola dallo stack e salta se è negativa Pop di due parole dallo stack e salta se sono uguali 13 Novembre 2000 Calcolatori Elettronici 14 7

8 Instruction Set Subroutine Istruzione INVOKE offset IRETURN Significato Chiama una procedura Ritorna da una procedura con un valore intero Altre Istruzione NOP WIDE Significato Nessuna operazione Indica che l istruzione successiva ha un indice di 16 bit 13 Novembre 2000 Calcolatori Elettronici 15 Instruction Set L istruzione INVOKE funziona secondo questo schema: Push dell offset OBJREF che indica il riferimento ad un oggetto Push degli argomenti Chiamata del metodo specificando la posizione nel constant pool alla quale si trova l indirizzo del codice nella area dei metodi CPP+offset CPP 0x1b84 0x04f0 0x0240 0x00c8 PC + 0x04f0 0x20 0x00 0x01 0x00 0x19 13 Novembre 2000 Calcolatori Elettronici 16 8

9 Instruction Set La prima word puntata nell area dei metodi ha il significato: b 0 b 1 : Numero di argomenti, OBJREF incluso b 2 b 3 : Dimesione del local frame La posizione di OBJREF è data da SP - b 0 b 1 CPP+offset 0x1b84 0x04f0 0x20 0x00 0x0020: Dimensione del local frame 0x0240 0x00c8 PC + 0x04f0 0x02 0x00 0x0002: Numero di argomenti 0x19 13 Novembre 2000 Calcolatori Elettronici 17 Microarchitettura SP MAR LV CPP MDR PC MAIN MEMORY TOS MBR OPC Segnali di controllo 6 H N Z 9 per la scrittura dal BUS C 9 per la lettura sul BUS B 8 per il controllo di e SHIFTER 2 per la lettura/scrittura della memoria 1 per la lettura tramite PC/MBR SHIFTER 2 SHIFT 13 Novembre 2000 Calcolatori Elettronici 18 9

10 Microarchitettura Il BUS B può leggere un solo registro I registri sono in mutua esclusione I nove segnali di controllo possono essere codificati su 4 bit Questi 24 segnali controllano il data path per un solo ciclo Per determinare l operazione da svolgere al ciclo seguente è necessario introdurre altri segnali: NEXT: Indirizzo della microistruzione seguente JAM: Codici di condizione per i salti Una possibile codifica è la seguente: J J J M A A S S F F E E I I L R 0 1 N N N N H O T C L S P M M P O P V P C D A W R F R E E NEXT P M M C N Z L A 8 1 A B V C A T S P R R I A T T D C BUS B E H Addr JAM BUS C Mem BUS B 13 Novembre 2000 Calcolatori Elettronici 19 Microarchitettura Ogni istruzione della IJVM viene realizzata mediante l esecuzione di una sequenza di microistruzioni Le microistruzioni: Sono memorizzate in una apposita ROM, detta Control Store, formata da 512 (2 9 ) parole di 36 bit Non vengono eseguite nell ordine in cui sono memorizzate Dispongono di un apposito campo che indica l indirizzo della microistruzione successiva Il control store utilizza: MPC: Micro Program Counter. Indica, ad ogni passo di controllo, quale microistruzione leggere MIR: Micro Instruction Register. Contiene la microistruzione letta all indirizzo contenuto in MPC 13 Novembre 2000 Calcolatori Elettronici 20 10

11 Microarchitettura La figura mostra: Il Control Store ed i registri MPC e MIR Il decoder per i segnali di controllo per il BUS B La logic per il calcolo degli indirizzi MPC 9 Control Store 512 x 36 bit MBR N Z High bit Jump Logic JMPC Addr J BUS C Mem BUS B Addr[0] JAMN JAMZ & SHIFT RAM MIR 4 D at a P at h 13 Novembre 2000 Calcolatori Elettronici 21 Microarchitettura Il blocco di logica denominato High Bit Determina il bit MPC[0] del micro program counter Svolge la seguente funzione: Se JAMN=0 e JAMZ=0 allora MBR[0]=Addr[0]; Se JAMN=0 e JAMZ=1 allora MBR[0]=Addr[0] + Z; Se JAMN=1 e JAMZ=0 allora MBR[0]=Addr[0] + N; Se JAMN=1 e JAMZ=1 allora MBR[0]=Addr[0] + N + Z; La funzione che ne risulta è MPC[0] = Addr[0] + Z JAMZ + N JAMN Z JAMZ N JAMN Addr[0] High Bit MPC[0] 13 Novembre 2000 Calcolatori Elettronici 22 11

12 Microarchitettura Il blocco indicato con Jump Logic Determina il valore dei bit MPC[1..8] del micro program counter Svolge la seguente funzione Se JMPC=0 allora MPC[1..8]=Addr[1..8]; Se JMPC=1 allora MPC[1..8]=Addr[1..8] OR MBR[0..7]; La funzione per la linea i-esima di MPC è la seguente: MPC[i] = Addr[i] + JAMZ MBR[i 1] Normalmente MBR contiene un opcode Porre JMPC=1 significa caricare il valore corrispondente all opcode nel micro program counter Questo meccanismo consente un efficiente salto all inizio del microcodice per una specifica istruzione. 13 Novembre 2000 Calcolatori Elettronici 23 Microistruzioni Una microistruzione: Parola di 36 bit Insieme di segnali di controllo La rappresentazione di una microistruzione può essere: Esplicita: Una sequenza di bit o un elenco dei segnali con valore 1 Simbolica: Una notazione più leggibile ed immediata Esempio: Lettura dello stack e salto alla microistruzione all indirizzo 122 Esplicita: Read SP, =INC, Write SP, Read, NextAddr=122 Simbolica: SP = SP + 1; Read; goto Novembre 2000 Calcolatori Elettronici 24 12

13 Microistruzioni L architettura della IJVM consente due tipi di salti Salti incondizionati: goto A Carica nel micro-pc l indirizzo A Salti condizionati: if (cond) goto A1 else goto A2 Se il bit cond è a 1 carica lindirizzo A1 nel micro-pc Se il bit cond è a 0 carica lindirizzo A2 nel micro-pc Gli indirizzi A1 ed A2 devono devono differire solo per l MSB Il bit di condizione cond può essere N (Negative) o Z (Zero) Per fissare il valore de N e Z si usano le microistruzioni: Z=TOS oppure N=TOS Per saltare ad un indirizzo letto dalla memoria: Si usa l istruzione: goto (MBR) 13 Novembre 2000 Calcolatori Elettronici 25 Microcodice L esecuzione di ogni istruzione ISA consiste in: Lettura dell istruzione dalla memoria Salto al microcodice dell istruzione ISA Esecuzione del microcodice Ritorno al microcodice per il caricamento dell aprossima istruzione I segnale Read e Fetch hanno significati differenti: Read viene usato per leggere una word dalla memoria in MDR Fetch viene usaro per leggere un byte dalla memoria in MBR Microcodice per il caricamento dell istruzione: Label MAIN1 Microcode PC=PC+1; Fetch; goto(mbr) 13 Novembre 2000 Calcolatori Elettronici 26 13

14 Microcodice: Esempio 1 Istruzione: IADD Significato: Somma i 2 valori sulla cima dello stack Rimuove i due valori dalla cima dello stack Pone il risultao sulla cima dello stack Microcodice: Label IADD1 IADD2 IADD3 Microcode MAR=SP=SP-1; Read H=TOS MDR=TOS=MDR+H; Write; goto MAIN1 13 Novembre 2000 Calcolatori Elettronici 27 Microcodice: Esempio 2 Istruzione: BIPUSH Significato: Legge in MBR il byte successivo all opcode BIPUSH Estende il segno Mette il byte in MBR sulla cima dello stack Microcodice: Label BIPUSH1 Microcode SP=MAR=SP+1; BIPUSH2 BIPUSH3 PC=PC+1; Read MDR=TOS=MDR; Write; goto MAIN1 13 Novembre 2000 Calcolatori Elettronici 28 14

15 Architettura a tre bus Le operazioni aritmetiche richiedono: Un primo ciclo di clock per caricare un operando nel registro H Durante tale ciclo la viene usata solo come connessione Un secondo ciclo di clock per eseguire l operazione Un possibile miglioramento consiste nel rendere possibile la connessione diretta di tutti i registri con entrambi gli inressi dati della Questa soluzione richiede l aggiunta di un ulteriore bus L architettura risultante è pertanto detta a tre bus: BUS A: Lettura dei registri sull opernado A della BUS B: Lettura dei registri sull operando B della BUS C: Scrittura dell uscita della (e Shifter) sui registri 13 Novembre 2000 Calcolatori Elettronici 29 Architettura a tre bus BUS A BUS B SP MAR LV CPP MDR PC MAIN MEMORY TOS MBR OPC H BUS C 6 SHIFTER 2 N Z SHIFT 13 Novembre 2000 Calcolatori Elettronici 30 15

16 Architettura a tre bus Con questa architettura si ha un notevole risparmio in termini di cicli di clock Si consideri, ad esempio, l istruzione: MDR=TOS+SP Architettura a due bus: T=1: Read SP, Write H T=2: Read TOS, =ADD, Write MDR Architettura a tre bus: T=1: ReadA SP, ReadB TOS, =ADD, Write MDR In molte istruzioni la alu viene semplicemente usata per copiare il valore da un registro al registro temporaneo H 13 Novembre 2000 Calcolatori Elettronici 31 Prefetching L esecuzione di ogni istruzione richiede: Lettura dell istruzione dalla memoria Decodifica dei campi dell istruzione In termini di microistruzioni: PC passa attraverso la e viene incrementato PC viene usato per leggere il byte seguente nel programma PC ed vengono usati per leggere gli eventuali operandi La è utilizzata per diversi cicli di clock: Per operazioni non legate alla esecuzione di una istruzione ma piuttosto al suo caricamento Come collegamento per copiare un valore da un registro ad un altro, senza svolgere alcuna operazione Ciò comporta un notevole spreco di tempo 13 Novembre 2000 Calcolatori Elettronici 32 16

17 Prefetching Soluzione 1: Aggiungere al data path una seconda Costoso in termini di area sul silicio Una completa sarebbe fortemente sottutilizzata Soluzione 2: Aggiungere percorsi addizionali Ad esempio percorsi da TOS a MDR o vice versa Aumento del numero dei segnali di controllo Microistruzioni e microcodice più complessi Soluzione 3: Introduzione di una unità dedicata In grado di gestire il program counter autonomamente In grado di leggere alcuni byte dalla memoria prima che siano effettivamente necessari Non molto costosa in termini di area sul silicio 13 Novembre 2000 Calcolatori Elettronici 33 Prefetching La soluzione 3 è la migliore L unità aggiuntiva è detta Instruction Fetch Unit o IFU L unità svolge le seguenti operazioni: Gestione del program counter Lettura di byte dalla memoria Assemblaggio di operandi a 8 o 16 bit Per fare ciò la IFU: Legge i due byte successivi Rende disponibile il byte successivo (8 bit) Rende disponibili due byte successivi (16 bit) L unità principale di escuzione richiede i byte necessari 13 Novembre 2000 Calcolatori Elettronici 34 17

18 Prefetching Lo schema di tale unità è il seguente: Instruction Fetch Unit Shifter MBR2 MAIN MEMORY IMAR MBR1 Inc1 Inc12 PC BUS C BUS B 13 Novembre 2000 Calcolatori Elettronici 35 18

19 Prefetching BUS A BUS B SP MAR LV MDR CPP PC MAIN MEMORY TOS MBR1 IFU OPC MBR2 H BUS C 6 SHIFTER 2 N Z SHIFT 13 Novembre 2000 Calcolatori Elettronici 37 Prefetching Il registro a scorrimento della IFU chiamato Shifter: Mantiene una coda di 6 byte letti da memoria ad indirizzi consecutivi Il byte più vecchio alimenta MBR1 I due byte più vecchi, scambiati di posizione, alimentano MBR2 Ogni volta che MBR1 viene letto, Shift scorre di una posizione Ogni volta che MBR2 viene letto, Shift scorre di due posizioni Quando in Shift si hanno 4 byte vuoti, una nuova parola viene letta Questo comportamento è regolato dalla FSM: Read MBR1 Read MBR2 Read Memory (4 bytes) 13 Novembre 2000 Calcolatori Elettronici 38 19

20 Prefetching Dal punto di vista della microprogrammazione la IFU: Legge l istruzione successiva in MBR1 Prepara gli eventuali operandi in MBR2 Quindi: Sparisce il microcodice per il fetch delle istruzoni Sparisce il salto a MAIN1 alla fine di ogni microprocedura Il fetch e decode del istruzione successiva viene eseguito semplicemente dalla microistruzione goto (MBR1) alla fine di ogni microprocedura Una tale architettura comporta alcuni controlli aggiuntivi: Il registro MBR2 deve contenere due byte quando viene letto Lo shifter deve attendere la fine della lettura dalla memoria Una IFU reale è più complessa di quella mostrata 13 Novembre 2000 Calcolatori Elettronici 39 Prefetching: Esempio Istruzione: BIPUSH Significato: Legge in MBR il byte successivo all opcode BIPUSH Estende il segno Mette il byte in MBR sulla cima dello stack Microcodice: Label Microcode BIPUSH1 SP=MAR=SP+1; BIPUSH2 PC=PC+1; Read Questa operazione è svolta autonomamente dalla unità di prefetch BIPUSH3 MDR=TOS=MDR; Write; goto MAIN1 13 Novembre 2000 Calcolatori Elettronici 40 20

21 Pipelining L introduzione del bus A e della unità di prefetching ha migliorato le prestazioni dell architettura per due motivi: Non è necessario caricare un operando alla volta per usare la Non è necessario usare la per caicare istruzioni ed operandi Questo comporta una riduzione del numero medio di microistruzioni per ogni istruzione a livello ISA Si ha quindi un amumento del parallelismo Per migliorare ulteriormente le prestazioni si può: Aumentare ulteriormente il parallelismo Ridurre il periodo di clock Ciò si ottiene mediante una tecnica detta pipelining 13 Novembre 2000 Calcolatori Elettronici 41 Pipelining L esecuzione di una microistruzione comporta: Lettura dei registri sui bus Elaborazione dei dati da parte della e dello SHIFTER Scrittura dei risultati nei registri Le tre operazioni devono svolgersi in un ciclo di clock Per ridurre il periodo di clock è possibile: Utilizzare una tecnologia (transistor) più veloci Eseguire operazioni più semplici in ogni ciclo di clock: Ciclo i: Lettura dei registri sui bus Ciclo i+1: Elaborazione dati da parte della e dello SHIFTER Ciclo i+2: Scrittura dei risultati nei registri La prima soluzione, anche se comunemente utilizzata, non riguarda il progetto logico o architetturale 13 Novembre 2000 Calcolatori Elettronici 42 21

22 Pipelining Il pipelining consente di: Ridurre il periodo di clock Le operazioni svolte in ogni ciclo sono più semplici Massimizzare il parallelismo Le sezioni del data path che svolgono le operazioni semplici possono essere opportunamente isolate L architettura mostrata: È simile alla precedente Utilizza tre latch per isolare le diverse sezioni del data path REGISTERS Latch C Latch A Latch B C A B 6 N Z IFU RAM SHIFTER 2 SHIFT 13 Novembre 2000 Calcolatori Elettronici 43 Pipelining Nella discussione che segue è comodo visualizzare l architettura ad un livello di minore dettaglio Gli elementi di interesse sono: IFU: Instruction Fetch Unit REG: Regsiter File A: Latch on bus A B: Latch on bus B C: Latch on bus C : and SHIFTER Si veda lo schema a lato Stage 1 Stage 2 IFU REG C A B Stage 3 Stage 4 13 Novembre 2000 Calcolatori Elettronici 44 22

23 Pipelining Tempo T=0: Prefetch dell istruzione 1 Tempo T=1: Prefetch dell istruzione 2 ReadReg dell istruzione 1 INSTR 1 INSTR 2 INSTR 1 IFU IFU REG REG C A B C A B 13 Novembre 2000 Calcolatori Elettronici 45 Pipelining Tempo T=2: Prefetch dell istruzione 3 ReadReg dell istruzione 2 Execute dell istruzione 1 Tempo T=3: Prefetch dell istruzione 4 ReadReg dell istruzione 3 Execute dell istruzione 2 Write-Back dell istruzione 1 INSTR 3 INSTR 2 INSTR 4 INSTR 3 IFU IFU REG REG C A B C A B INSTR 1 INSTR 1 INSTR 2 13 Novembre 2000 Calcolatori Elettronici 46 23

24 Pipelining Tempo T=4: Prefetch dell istruzione 5 ReadReg dell istruzione 4 Execute dell istruzione 3 Write-Back dell istruzione 2 Tempo T=5: Prefetch dell istruzione 6 ReadReg dell istruzione 5 Execute dell istruzione 4 Write-Back dell istruzione 3 INSTR 5 INSTR 4 INSTR 6 INSTR 5 IFU REG IFU REG C A B C A B INSTR 2 INSTR 3 INSTR 3 INSTR 4 13 Novembre 2000 Calcolatori Elettronici 47 Pipelining Gli schemi di esecuzione appena mostrati mettono in evidenza alcuni aspetti importanti del pipelining: La prima microistruzione richiede 4 cicli per essere completata Il tempo di completamento della prima microistruzione o, equivalentemente, il tempo che una istruzione impiega ad attraversare tutti gli stadi della pipeline viene detto latenza Nei cicli successivi viene completata una microistruzione ogni ciclo Il numero di microistruzioni completate per unità di tempo è detto throughput. Nel caso ideale il trhoughput è pari alla frequenza del clock Dopo una fase iniziale, tutti gli stadi sono simultaneamente utilizzati Il parallelismo è massimizzato Ad ogni ciclo sono in esecuzione 4 istruzioni Ogni istruzione si trova in uno stadio di elaborazione differente 13 Novembre 2000 Calcolatori Elettronici 48 24

25 Pipelining L esecuzione pipelined è solitamente rappresentata così: Stato della pipeline al tempo T=4 Fetch I1 Read I1 Exec I1 Write I1 Fetch I2 Read I2 Exec I2 Write I2 Stato della pipeline al tempo T=6 Fetch I3 Read I3 Exec I3 Write I3 Fetch I4 Read I4 Exec I4 Write I4 Fetch I5 Read I5 Exec I5 Write I5 Fetch I6 Read I6 Exec I6 Write I6 Fetch I7 Read I7 Exec I7 Fetch I8 Read I T 13 Novembre 2000 Calcolatori Elettronici 49 Pipelining La situazione appena mostrata è una situazione ideale Sia I1 una istruzione che inizia al tempo t: I1 legge i registri nello stadio 1, cioè al tempo t+1 I1 scrive i registri nello stadio 3, cioè al tempo t+3 Sia I2 una istruzione che inizia al tempo t+1: I2 legge i registri nello stadio 1, cioè al tempo t+2 I2 scrive i registri nello stadio 3, cioè al tempo t+4 Si supponga che I1 scriva un registro che I2 deve leggere: I1 scriverà il risultato nel registro al tempo t+3 I2 leggerà il registro al tempo t+2 I2 legge il registro prima che I1 lo abbia scritto Questa situazione è detta conflitto o hazard 13 Novembre 2000 Calcolatori Elettronici 50 25

26 Pipelining Esitono diversi tipi di conflitti dovuti a cause diverse Conflitto Read After Write: RAW hazard Una istruzione tenta di leggere un registro prima che sia stato scritto Si risolve ritardando l esecuzione della seconda istruzione Un ritardo inserito dopo la fase di fetch prende il nome di stallo Conflitto di controllo: Control hazard Una istruzione di salto provoca sempre un conflitto di controllo L unità di fetch ha già letto l istruzione successiva, senza tener conto del fatto che il salto potrebbe prevenirne l esecuzione Si risolve inserendo una istruzione fittizia (NOP) tra un salto e l istruzione seguente Pipeline più complesse (7 o 13 stadi) sono soggette anche ad altri tipi di conflitti 13 Novembre 2000 Calcolatori Elettronici 51 Pipelining Per aumentare l efficacia di una architettura pipeline è necessario ridurre il numero di stalli Si può procedere in due modi, non mutuamente esclusivi: Studio di opportune tecniche di compilazione mirate alla riduzione del numero di situazioni potenzialmente critiche tramite: Riordino delle istruzioni nel rispetto delle dipendenze tra i dati Introduzione di istruzioni fittizie Realizzazione di una unità hardware in grado di prevedere situazioni critiche con un sufficiente margine di anticipo Riordino dinamico delle istruzioni Predizione dei salti I moderni processori (CISC) contengono pipeline complesse ed adottano ampiamente queste tecniche 13 Novembre 2000 Calcolatori Elettronici 52 26

27 Branch Prediction: Problemi Una architettura pipeline massimizza le prestazioni se il codice non contiene istruzioni di salto Il codice reale, tuttavia, ha una alta percentuale di salti, circa uno ogni 4-5 istruzioni Salti condizionati: Non è noto a priori quale sarà l istruzione successiva L unità di fetch deve attendere il completamento della fase di esecuzione dell istruzione di salto (2 cicli, nell esempio visto) Salti incondizionati La destinazione è nota senza ambiguità L unità di fetch deve attendere il completamento della fase di lettura degli operandi dell istruzione di salto (1 ciclo, nell esempio visto) 13 Novembre 2000 Calcolatori Elettronici 53 Branch Prediction: Soluzioni Salti incondizionati Una unità hardware dedicata ha un costo molto elevato L indirizzo di destinazione è noto al secondo stadio della pipeline quindi una sola istruzione dopo il salto è già stata iniziata Salto Fetch Jump Istruzione successiva Read Target Exec Jump Write Fetch I2 Read I2 Exec I2 Fetch I3 Soluzione a compile-time: Eseguire comunque l istruzione successiva al salto (NOP) Soluzione a run-time: Introdurre uno stallo in modo da ritardare l esecuzione della istruzione seguente 13 Novembre 2000 Calcolatori Elettronici 54 27

28 Branch Prediction: Soluzioni Salti condizionati Una unità hardware dedicata ha un costo molto elevato L esecuzione dei salti condizionati richiede il completamento di un numero maggiore di stadi della pipeline Più di una istruzione successiva al salto inizia d essere eseguita Soluzioni a compile-time Inserimento di NOP Soluzioni a run-time Inserimento di stalli Nel codice assembly si ha una elevata frequenza di salto: Significativa riduzione delle performance SI accetta anche il costo di una unità hardware aggiuntiva 13 Novembre 2000 Calcolatori Elettronici 55 Branch Prediction: Soluzioni Le unità hardware che gestiscono i salti prendono il nome di Branch Prediction Unit Il loro scopo è quello di determinare se un salto sarà preso o meno, prima che l istruzione inizi ad essere eseguita A tale scopo: Sono state sviluppate diverse techniche Sono stati realizzati circuiti digitali che implementano le metodologie sviluppate La criticità di una mancata previsione aumenta all aumentare della profondità della pipeline 13 Novembre 2000 Calcolatori Elettronici 56 28

29 Branch Prediction: Soluzioni Se la previsione è corretta Si conosce l indirizzo di destinazione L unità di prefetch aggiorna il program counter nel modo corretto L esecuzione può procedere normalmente Se la previsione è sbagliata Si deve determinare quale è l indirizzo reale di destinazione Gestire il fatto che alcune istruzioni che non avrebbero dovuto essere eseguite sono in realtà state eseguite (anche parzialmente) Le istruzioni erroneamente eseguite possono modificare lo stato della macchina È necessario quindi adottare una delle due strategie Prevenire la modifica dello stato della macchina Salvare lo stato prima della modifica ed eventualmente recuperarlo 13 Novembre 2000 Calcolatori Elettronici 57 Branch Prediction: Soluzioni Il problema di determinare l indirizoo di alto corretto non pone grossi problemi Il problema di mantenere corretto lo stato della macchina è la causa dei problemi maggiori Una possibile soluzione: Si eseguono le istruzioni normalmente fino a quando una istruzione tenta di modificare lo stato della macchina Scrittura di un registro Scrittura della memoria Si salvano i risultati in appositi registri di scratch (temporanei) Se la previsione si rivela corretta si copiano i registri di scratch nelle destinazioni effettive Se la previsione si rivela scorretta si ignora il contenuto dei registri di scratch 13 Novembre 2000 Calcolatori Elettronici 58 29

30 Branch Prediction: Statica Questa tecnica consiste nel fare le assunzioni seguenti Salti condizionati all indietro sempre effettuati Di solito un salto all indietro costituisce la fine di un loop È probabile che il loop venga eseguito molte volte quindi conviene assumere che il salto sia effettuato Salti condizionati in avanti mai effettuati Solitamente un salto in avanti è causato da eccezioni o situazioni di errore nel software Tali condizioni sono abbastanza rare Per errori di previsone si adotta, adpio, la soluzione basata si registri scratch 13 Novembre 2000 Calcolatori Elettronici 59 Branch Prediction: Dinamica Questa tecnica consiste nel Mantenere traccia della storia dei salti effettuati più di recente Si usa una history table realizzata in hardware Le dimensioni della tabella influenzano la bontà della previsione Si ipotizza che un salto si comporti come l ultima volta Il comportamento di un salto è indicato da un bit 0: Not taken 1: Taken Se la predizione è Corretta La tabella rimane invariata Errata Il bit che indica il comportamaneto del salto viene aggiornato 13 Novembre 2000 Calcolatori Elettronici 60 30

31 Branch Prediction: Dinamica Una possibile realizzazione hardware è la seguente Gli indirizzi sono di m bit Si usa una tabella con n bit per l indirizzamento La tabella ha 2 n linee Ogni linea contiene Un bit che indica la validità delle informazioni Un bit che indica l esito dell ultimo salto (taken/not taken) La destinazione del salto espressa su (m n 2)bit Le istruzioni sono allineate alle parole di memoria Gli ultimi due bit di ogni indirizzo sono sempre 00 Gli n+2 bit meno significativi dell indirizzo vengono usati come indice all interno della tabella 13 Novembre 2000 Calcolatori Elettronici 61 Branch Prediction: Dinamica Esempio Indirizzi a 8 bit Tabella con 2 3 linee (16) (20) (24) (48) (52) (56) (80) (84) (88) Main Memory History Table Valid Branch Address Prediction 13 Novembre 2000 Calcolatori Elettronici 62 31

32 Branch Prediction: Dinamica Il metodo visto presenta un limite Mentre un ciclo viene eseguito il bit di predizione è a 1 (taken) All ultimo ciclo il branch non viene eseguito Si ha un errore nella predizione Il bit di predizione viene aggiornato a 0 (not taken) Se il ciclo viene ripetuto una seconda volta Il primo branch dovrebbe essere eseguito Il bit di predizione era stato posto a 0 (not taken) Si ha un errore nella predizione Questa situazione è molto critica quando si hanno cicli annidati o cicli in procedure che vengono usate spesso Una soluzione consiste nel mantenere una history con profondità maggiore 13 Novembre 2000 Calcolatori Elettronici 63 Branch Prediction: Dinamica Per realizzare una history con profondità pari a 2: Si usa una history table hardware simile alla precedente Si usano due bit per la predizione Si usa una FSM per aggiornare i bit di predizione Le transizioni indicano se i salti sono effettuati (T) o no (NT) Gli stati indicano la predizione: J: Jump NJ: Don t jump T NT 00 NJ T 01 NJ 10 J T 11 J T NT NT NT 13 Novembre 2000 Calcolatori Elettronici 64 32

Corso di Laurea in Informatica Architetture degli Elaboratori

Corso di Laurea in Informatica Architetture degli Elaboratori Corso di Laurea in Informatica Architetture degli Elaboratori Corsi A e B Scritto del 6 dicembre 2005 Esercizio 1 (punti -1, 2) Considerare una codifica su 8 bit in complemento a due e rappresentare i

Dettagli

06 Livello di micro architettura

06 Livello di micro architettura Livello di micro architettura Pagina 2 Introduzione il livello di micro architettura implementa le funzioni del livello sovrastante (ISA) come livello ISA di riferimento si sceglie una parte della JVM

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

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

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

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

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

Integer Java Virtual Machine (IJVM)

Integer Java Virtual Machine (IJVM) Integer Java Virtual Machine (IJVM) Calcolatori Elettronici II Prof. Antonino Mazzeo mazzeo@unina.it Ing. Luigi Romano Ing. Alessandro Cilardo Ing. Luigi Coppolino lrom@unina.it acilardo@unina.it lcoppoli@unina.it

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

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico 2006 2007 pagina 1

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico 2006 2007 pagina 1 La microarchitettura. anno accademico 2006 2007 pagina 1 Integer Java virtual machine Ogni microprocessore può avere una microarchitettura diversa, ma la modalità di funzionamento per certi aspetti è generale.

Dettagli

Il livello della CPU, e in particolare come le istruzioni ISA (Instruction Set Architecture) che costituisce la CPU.

Il livello della CPU, e in particolare come le istruzioni ISA (Instruction Set Architecture) che costituisce la CPU. Il livello della microarchitettura descrive il funzionamento interno di una CPU, e in particolare come le istruzioni ISA (Instruction Set Architecture) vengono interpretate ed eseguite dall hardware (livello

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

Microarchitettura. Giacomo Fiumara Anno Accademico / 101

Microarchitettura. Giacomo Fiumara Anno Accademico / 101 Microarchitettura Giacomo Fiumara gumara@unime.it Anno Accademico 2014-2015 1 / 101 Introduzione 2 / 101 Introduzione Il livello di micro-architettura implementa le funzioni del livello sovrastante ISA

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

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

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

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

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

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

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

Struttura di programmi MAL Elementi lessicali

Struttura di programmi MAL Elementi lessicali Elementi lessicali Ogni microistruzione è definita su una linea di programma Le linee vuote vengono ignorate Le linee con solo commenti vengono ignorate Il carattere di fine linea (RETURN ENTER INVIO)

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

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

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

Pipeline Problemi 1. Pipeline Problemi 2

Pipeline Problemi 1. Pipeline Problemi 2 Problemi 1 Vari fenomeni pregiudicano il raggiungimento del massimo di parallelismo teorico (stallo) Sbilanciamento delle fasi Durata diversa per fase e per istruzione Problemi strutturali La sovrapposizione

Dettagli

IJVM. Danilo Dessì. Architettura degli Elaboratori.

IJVM. Danilo Dessì. Architettura degli Elaboratori. IJVM Architettura degli Elaboratori Danilo Dessì danilo_dessi@unica.it Instruction set Istruzioni di salto BRANCH Istruzione GOTO label IFEQ label IFLT label IF_ICMPEQ label Significato Salta in modo incondizionato

Dettagli

Il livello della CPU, e in particolare come le istruzioni ISA (Instruction Set Architecture) che costituisce la CPU.

Il livello della CPU, e in particolare come le istruzioni ISA (Instruction Set Architecture) che costituisce la CPU. Il livello della microarchitettura descrive il funzionamento interno di una CPU, e in particolare come le istruzioni ISA (Instruction Set Architecture) vengono interpretate ed eseguite dall hardware (livello

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

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

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

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

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

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

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

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

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

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

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

Struttura schematica di un calcolatore. Processore. Componenti processore: Data Path. Il processore (CPU)

Struttura schematica di un calcolatore. Processore. Componenti processore: Data Path. Il processore (CPU) Processore Presentazione a livelli del calcolatore: dopo porte logiche, circuiti base e memorie, esaminiamo il: Processore (CPU - Central Processing Unit): cuore del calcolatore, l à che esegue le istruzioni

Dettagli

Architettura dei Calcolatori Elettronici

Architettura dei Calcolatori Elettronici Architettura dei Calcolatori Elettronici Prof. Orazio Mirabella L architettura del Calcolatore: esame delle sue caratteristiche Fondamentali Capacità di eseguire sequenze di istruzioni memorizzate Calcolatore

Dettagli

La CPU a singolo ciclo

La CPU a singolo ciclo La CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 5 (fino a 5.4) 1/44 Sommario

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

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

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

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

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

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

Architettura di un calcolatore: Introduzione parte 2

Architettura di un calcolatore: Introduzione parte 2 Corso di Calcolatori Elettronici I Architettura di un calcolatore: Introduzione parte 2 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle

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

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

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

Instruction Level Parallelism Andrea Gasparetto

Instruction Level Parallelism Andrea Gasparetto Tutorato di architettura degli elaboratori Instruction Level Parallelism Andrea Gasparetto andrea.gasparetto@unive.it IF: Instruction Fetch (memoria istruzioni) ID: Instruction decode e lettura registri

Dettagli

ISA e linguaggio macchina

ISA e linguaggio macchina ISA e linguaggio macchina Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@di.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1, D2. 1/55

Dettagli

Il linguaggio macchina

Il linguaggio macchina Architettura degli Elaboratori e delle Reti Lezione 16 Il linguaggio macchina Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità degli Studi di Milano L 16 1/33 Linguaggio

Dettagli

Struttura schematica di un calcolatore. Processore. Componenti processore: Data Path. Il processore (CPU) Data Path. Micro-operazione.

Struttura schematica di un calcolatore. Processore. Componenti processore: Data Path. Il processore (CPU) Data Path. Micro-operazione. Processore Presentazione a livelli del calcolatore: dopo porte logiche, circuiti base e memorie, esaminiamo il: Processore (CPU - Central Processing Unit): cuore del calcolatore, l à che esegue le istruzioni

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

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

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

L insieme delle istruzioni (6)

L insieme delle istruzioni (6) L insieme delle istruzioni (6) Architetture dei Calcolatori (lettere A-I) Alcune note conclusive I due principi dell architettura a programma memorizzato Uso di istruzioni indistinguibili dai dati Uso

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

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

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

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

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

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

Struttura di un elaboratore

Struttura di un elaboratore Struttura di un elaboratore Fondamenti di Informatica 1 Modello architetturale di un computer Ogni computer è costituito da un insieme di blocchi funzionali tra loro interconnessi da sistemi di comunicazioni,

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

Architettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori

Architettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori rchitettura dei Calcolatori Giuseppe Pozzi Impianti di Elaborazione Facoltà di Ingegneria dell'informazione Politecnico di Milano giuseppe.pozzi@polimi.it - versione del 20 settembre 2002 - rchitettura

Dettagli

Il linguaggio assembly

Il linguaggio assembly Il linguaggio assembly PH 2.3 (continua) 1 Argomenti Organizzazione della memoria Istruzioni di trasferimento dei dati Array Istruzioni logiche 2 1 La memoria del MIPS I contenuti delle locazioni di memoria

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

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

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

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

CPU pipeline 4: le CPU moderne

CPU pipeline 4: le CPU moderne Architettura degli Elaboratori e delle Reti Lezione 25 CPU pipeline 4: le CPU moderne Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 25 1/16

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

Macchina di Riferimento: argomenti

Macchina di Riferimento: argomenti Macchina di Riferimento: argomenti L'architettura di una macchina MIPS Organizzazione della memoria I registri della CPU L'esecuzione dei programmi Il ciclo fetch-execute Il simulatore SPIM 1 Architettura

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

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

Linguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F.

Linguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F. Architettura degli Elaboratori e delle Reti Lezione 16 Il linguaggio macchina Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità degli Studi di Milano L 16 1/32 Linguaggio

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

Architettura dei Calcolatori elettronici

Architettura dei Calcolatori elettronici Architettura dei Calcolatori elettronici CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II Dal punto di vista architetturale un calcolatore

Dettagli

Corso di Fondamenti di Informatica Elementi di Architettura

Corso di Fondamenti di Informatica Elementi di Architettura di Cassino e del Lazio Meridionale Corso di Informatica Elementi di Architettura Anno Accademico 2016/2017 Francesco Tortorella Modello di von Neumann Bus di sistema CPU Memoria Centrale Interfaccia Periferica

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 Instruction Set Architecture: nozioni generali Massimiliano Giacomin 1 DOVE CI TROVIAMO Livello del linguaggio specializzato Traduzione (compilatore) o interpretazione

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

Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento

Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento Architetture degli Elaboratori e delle Reti Lezione 17 Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento Proff. A. Borghese, F. Pedeini Dipaimento di Scienze dell Informazione Univeità

Dettagli

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria

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

Scopo della lezione. Analizzare i tipi di macchine Indirizzamento e memorie Tipi di dato

Scopo della lezione. Analizzare i tipi di macchine Indirizzamento e memorie Tipi di dato Scopo della lezione Analizzare i tipi di macchine Indirizzamento e memorie Tipi di dato Little endian e big endian Indirizzamento logico e fisico Comprendere la struttura del micro Von Neumann architecture

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

Introduzione alla Microprogrammazione

Introduzione alla Microprogrammazione Introduzione alla Microprogrammazione Corso Calcolatori Elettronici 2 Prof. Antonino Mazzeo Ing. Casola Valentina Organizzazione a bus singolo dell architettura interna della CPU del 68000 Porte di ingresso

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

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

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

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

Il Processore. Informatica di Base -- R.Gaeta 27

Il Processore. Informatica di Base -- R.Gaeta 27 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

Prefazione Unit`a di misura xiii La memoria cache

Prefazione Unit`a di misura xiii La memoria cache Indice Prefazione Unità di misura xi xiii 1 La memoria cache 1 1.1 Tempo di accesso........................... 1 1.1.1 Funzionamento........................ 2 1.2 Organizzazione............................

Dettagli

Contenuto della lezione

Contenuto della lezione Contenuto della lezione Come scrivere un programma IJVM Costanti Metodo MAIN Metodi Variabili locali Etichette Commenti I/O Alcuni esempi Problema numero 6 Supporre di avere sullo stack una sequenza di

Dettagli

Sottosistemi ed Architetture Memorie

Sottosistemi ed Architetture Memorie Sottosistemi ed Architetture Memorie CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II La memoria centrale Memoria centrale: array di

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