Esercizi di Microprogrammazione (Parte 1: MIC-1)

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Esercizi di Microprogrammazione (Parte 1: MIC-1)"

Transcript

1 Esercizi di Microprogrammazione (Parte 1: MIC-1) Esercizio MIC-1.1 Supponendo di avere nei registri TOS e SP memorizzati dei numeri rappresentati in complemento a due, scrivere un programma Mic1 che memorizzi nel registro OPC il valore 2(A - B). Possibile Soluzione H = TOS H = SP = SP - H OPC = SP + H Esercizio MIC-1.2 Implementare l istruzione SIPUSH, che ha un comportamento simile alla BIPUSH, ma combina i 2 byte costanti che seguono il codice operativo in una costante a 16 bit che viene posta sullo stack. sipush1 SP = MAR = SP +1 // Aggiorna SP e prepara l indirizzo // di scrittura del risultato sipush2 PC = PC + 1; fetch // Legge il secondo byte (il primo è // già in MBR) sipush3 H = MBR << 8 // Carica il primo byte in H e //prepara lo spazio per il secondo sipush4 PC = PC + 1; fetch // Fetch della prossima istruzione sipush5 MDR=TOS=MBRU OR H;wr; goto Main1 // Completa la ricostruzione della // costante a 16 bit, scrive in TOS // e nella posizione corrente nello // stack Esercizio MIC-1.3 Si consideri il seguente codice per una ipotetica nuova microistruzione: i1 i2 i3 MDR=TOS MAR=SP=SP+1; wr MAR=SP=SP+1;wr; goto Main1 a) Quale operazione svolge? 1

2 b) Si consideri ora il seguente frammento di codice e si dica se consente di ottenere lo stesso risultato: i1 MAR=SP; rd i2 MAR=SP=SP+1; wr // Attenzione: scrivo il NUOVO valore di // MDR (quello // prodotto da i1), dato che la read // termina durante il secondo ciclo e // comunque prima della write // (non sto usando MDR per il salvataggio // nei registri, quindi non devo // attendere un ciclo a vuoto per // utilizzare il valore letto in i1) i3 MAR=SP=SP+1;wr; goto Main1 Soluzione a) La microistruzione crea due copie addizionali dell elemento in cima allo stack, aggiornando lo stack pointer di conseguenza: DUP DUP b) Il risultato ottenuto è lo stesso, al costo di una lettura in più dalla memoria, che è di fatto inutile dato che l elemento da replicare è già contenuto in TOS Esercizio MIC-1.4 (Tanenbaum 4.2) Nel MIC-1 ci vuole 1 ns per preparare MIR, 1 ns per mettere il contenuto di un registro sul bus B, 3 ns per far funzionare l'alu e lo shifter, e 1 ns perchè i risultati ritornino ai registri. La larghezza dell'impulso di clock è di2ns. Questa macchina può funzionare a 100 MHz? E a 150 MHz? Soluzione: Il data path occupa 6 ns così ripartiti: - 1 ns per preparare MIR; - 1 ns per mettere il contenuto di un registro sul bus B; - 3 ns per far funzionare l'alu e lo shifter; - 1 ns perchè i risultati ritornino ai registri. Ai 6 ns del data path bisogna aggiungere i 2 ns della larghezza dell'impulso di clock. Quindi, per far funzionare correttamente la macchina, il periodo del clock deve essere superiore a 8 ns. A 100 MHz, il periodo del clock è: T = 1/(100*10^6) = 10 nsec ed è quindi sufficiente a far funzionare correttamente la macchina. A 150 MHz, il periodo del clock è: T = 1/(150*10^6) = (1/1.5) *10^(-8) = 6,667 ns e non è sufficiente a far funzionare correttamente la macchina. 2

3 Esercizio Mic1.5 (Tanenbaum 4.11 ) Quanto tempo occorre (espresso in ns) perchè una macchina MIC-1 con clock a 200 MHz esegua l'istruzione JAVA: i = j + k L'istruzione Java i = j + k corrisponde alle seguenti istruzioni IJVM : ILOAD j ILOAD k IADD ISTORE i Vedendo poi le istruzioni mic1 di cui sono composte queste istruzioni IJVM si può notare che: ILOAD è formato da 5 istruzioni mic1 IADD è formato da 3 istruzioni mic1 ISTORE è formato da 6 istruzioni mic1 Quindi il codice sovrastante è costituito da = 19 istruzioni mic1, a cui vanno aggiunte altre 4 istruzioni. Queste vanno aggiunte perchè prima di eseguire un' istruzione IJVM si deve eseguire l'istruzione mic1 dell'indirizzo Main1 (cioè PC = PC + 1; fetch; goto (MBR) ) Il numero di istruzioni mic1 totale da eseguire è quindi = 23 Sapendo che il clock è di 200 Mhz, la durata di un impulso di clock è 5 nsec. Quindi, poichè ogni istruzione mic1 viene eseguita in un ciclo di clock, il tempo per eseguire i = j + k è di 5*23 = 115 nsec Esercizio Mic-1.6 (Tanenbaum 4.14) L istruzione ISHR (arithmetic shift right integer) esiste in JVM ma non in IJVM. Essa utilizza i due valori posti sulla cima dello stack sostituendoli con un valore singolo, il risultato. La parola che si trova al secondo posto in cima allo stack è l operando da spostare. Il suo contenuto viene spostato verso destra di un valore che si trova fra 0 e 31 inclusi, a seconda del valore dei 5 bit meno significativi della parola in cima allo stack (gli altri 27 bit della parola in cima allo stack vengono ignorati). Il bit di segno viene ripetuto sulla destra per tanti bit quanti sono i bit da spostare. L opcode per ISHR è 122 (0x7a) a) Qual è l operazione aritmetica corrispondente allo spostamento e destra di 2 bit? b) Estendere il microcodice di MIC-1 per eseguire questa istruzione in IJVM Traccia di possibile soluzione a)l'operazione aritmetica equivalente allo shift a destra di 2 bit di un registro (per esempio H) è il quoziente della divisione H / 4 b) Il microcodice MIC-1 per l''istruzione ISHR è : // Creo in H la maschera con i 5 bit meno significativi a 1 3

4 122: ISHR1 H = -1 // H = 0xFFFFFFFF ISHR2 H = H << 8 // H = 0xFFFFFF00 ISHR3 H = H >> 1 // H = 0xFFFFFF80 ISHR4 H = H >> 1 // H = 0xFFFFFFC0 ISHR5 H = H >> 1 // H = 0xFFFFFFE0 ISHR6 H = H' // H = 0x F //H' sta per "H negato" ISHR7 MAR = SP; rd // Preparo la lettura del primo // operando ISHR8 MAR = SP = SP - 1; rd // Preparo la lettura del secondo // operando ISHR9 OPC = H AND MDR // ignora i 27 bit più //significativi di MDR (che // ora contiene l operando da //spostare) ISHR10 Z = OPC; if (Z) goto ISHR13; else goto ISHR 11 ISHR11 MDR = MDR >> 1 // Ciclo di shift aritmetici a dx // in base al contanuto di OPC ISHR12 OPC = OPC - 1; goto ISHR10 ISHR13 TOS = MDR; wr; goto Main1 Nella soluzione è possibile eliminare una microistruzione, ovvero quella relativa alla lettura della prima parola contenuta nella stack (riga ISHR7) in quanto questa è già contenuta nel registro TOS. Bisogna però modificare la successiva operazione di AND: la stessa operazione dovrà essere effettuata tra H e il registro TOS (OPC=H AND TOS). Per il resto resta tutto uguale. Soluzione alternativa Il codice operativo di ciascuna istruzione corrisponde all indirizzo della prima microistruzione e nel caso di ISHR tale indirizzo è 122. A tale indirizzo si salta dopo la fase di fetch effettuata in Main1: Main1: PC=PC+1; fetch; goto(mbr) 122:ISHR1... // Qui MBR conterrà il valore 122 fino alla fine del ciclo // e solo alla fine del ciclo viene aggiornato con il contenuto della nuova //cella puntata da PC Possiamo sfruttare questa caratteristica per costruire la maschera di bit in modo più elegante, ottenendo nel contempo una riduzione nel numero complessivo di microistruzioni: 122: ISHR1 H = MBRU >>1 // H contiene 61 (Shift a dx aritmetico di un //valore positivo) ISHR2 H = H >> 1 // H contiene 30 ISHR3 H = H + 1 // H contiene 31 ISHR4 MAR = SP = SP 1; rd // Preparo la lettura del secondo //operando ISHR5 OPC = H AND TOS // Applica la maschera al primo operando e //salva il risultato in OPC ISHR7 Z = OPC; if (Z) goto ISHR10; else goto ISHR8 ISHR8 MDR = MDR >> 1 ISHR9 OPC = OPC - 1; goto ISHR7 ISHR10 TOS = MDR; wr; goto Main1 // Ciclo di shift aritmetici a dx // in base al contenuto di OPC 4

5 Lo svantaggio di questo approccio è la dipendenza dal codice operativo (se cambia non funziona più nulla). Esercizio Mic-1.7 (Tanenbaum 4.17) Scrivere il microcodice per MIC-1 per implementare l istruzione IJVM POPTWO. Questa istruzione toglie due parole dalla cima dello stack. Possibile soluzione: POP2.1 SP=SP-1 // Sposta lo stack pointer una prima volta POP2.2 MAR=SP=SP-1;rd // Sposta lo stack pointer la seconda volta e // legge il contenuto POP2.3 POP2.4 TOS=MDR;goto Main1 // Aggiorna il contenuto di TOS Soluzione alternativa: POP2.1 SP=SP-1; goto pop1 // Riusa il codice esistente di POP 5

6 Esercizi di Microprogrammazione (Parte 2: MIC-2) Esercizio Mic-2.1 Scrivere il microcodice per MIC-2 per implementare l istruzione IJVM IMAX. Questa istruzione consuma le due parole in cima alla pila e vi deposita il valore del più grande tra i due (la parola A è sulla cima della pila, B è nella posizione successiva). Possibile soluzione: 1. MAR=SP=SP-1;rd // Prepara la lettura del secondo // operando e riposiziona lo stack // pointer 2. // ciclo di attesa (per caricare MDR) 3. H=TOS-MDR; if (N) goto 5 // A>B? 4. MDR=TOS;wr;goto(MBR1) // A>B: Scrivo A in cima alla pila 5. TOS=MDR;goto(MBR1) // A<=B Scrivo B in cima alla pila e // aggiorno TOS Esercizio Mic-2.2 Scrivere il microcodice per MIC-2 per implementare le istruzioni IJVM ISET 32-bit-mask ICLEAR 32-bit-mask L istruzione ISET istruzione utilizza una maschera a 32 bit che segue il codice operativo e applica la maschera all elemento che si trova sulla cima dello stack, forzando a 1 i bit che sono 1 nella mask e lasciando intatti gli altri. L istruzione ICLEAR utilizza una maschera a 32 bit che segue il codice operativo e applica la maschera all elemento che si trova sulla cima dello stack, azzerando i bit che sono 1 nella mask e lasciando intatti gli altri. Possibile soluzione: a) ISET 1. H=MBR2U<<8 // Carica in H la parte alta della maschera //(primi 16 bit che seguono il codice // operativo) 2. H=H<<8 3. H=H or MBR2U // Carica in H la parte bassa della maschera 4. MDR=TOS=TOS or H // Applica la maschera al valore sulla 6

7 // cima dello stack 5. MAR=SP;wr;goto(MBR1) // Riscrive il nuovo valore sulla cima // dello stack b) ICLEAR 1. H=MBR2U<<8 // Carica in H la parte alta della maschera //(primi 16 bit che seguono il codice // operativo) 2. H=H<<8 3. H=H or MBR2U // Carica in H la parte bassa della maschera 4. H = not H //Complementa tutti i bit della maschera (per azzerare i bit a 1 nella maschera iniziale devo creare una nuova maschera con i bit a zero nelle stesse posizioni e poi applicare la maschera con una AND 5. MDR=TOS=TOS AND H // Applica la maschera 6. MAR=SP;wr;goto(MBR1) // Riscrive il nuovo valore sulla cima // dello stack Esercizio Mic-2.3 Scrivere il microcodice per MIC-2 per implementare l istruzione IJVM IXOR. Questa istruzione effettua lo XOR logico fra gli operandi a e b che si trovano nelle prime due posizioni dello stack (Si ricorda che a XOR b = a and (not b) or (not a) and b). Possibile soluzione: Esistono diverse soluzioni possibili, che si differenziano in base al metodo scelto per calcolare lo XOR. In particolare, una implementazione economica dell operazione XOR si basa sulla proprietà che a xor b = (a or b) and not (a and b). 1. MAR=SP=SP-1;rd // Preparo il nuovo valore per SP e leggo il // secondo operando OPC=TOS or MDR // OPC = a or b 4. H=TOS and MDR // H = a and b 5. H=not H // H = not (a and b) 6. MDR=TOS=OPC and H;wr; goto(mbr1) // Scrivo il risultato il TOS e //nella nuova cima della pila 7

8 Esercizio Mic-2.4 Scrivere l istruzione IJVM MIC-2 IFGREQ label che consente di saltare all etichetta indicata dopo il codice operativo se l elemento in cima alla pila è 0. Possibile soluzione L implementazione è una variante della IFLT offset (cambia solo l ultima istruzione) 1. MAR=SP=SP-1;rd // Aggiorno lo stack pointer 2. OPC = TOS // Salvo in OPC il valore da controllare 3. TOS = MDR // Aggiorno il contenuto di TOS 4. N = OPC; if (N) goto F else goto T // Se OPC è negativo non salto dove F e T sono etichette nel microprogramma standard di MIC-2: T H = PC 1; goto goto2 // Prepara il registro H F H = MBR2 // Legge il contenuto di MBR2 per // scartarlo F2 goto(mbr1) goto1 H = PC 1 goto2 PC = H + MBR2 goto3 goto4 goto(mbr1) // Carica in H l indirizzo dell istruzione // Somma l offset e scrive il PC // Attesa per il fetch del nuovo opcode Esercizio Mic-2.5 IMUL Implementazione per mic-2. Il moltiplicando si trova nella penultima posizione nello stack, mentre il moltiplicatore è sulla cima dello stack. Soluzione 1 (il risultato è corretto solo se il moltiplicatore è positivo!!) 1. MAR=SP=SP-1;rd // Prepara il caricamento in MDR del // moltiplicando 2. OPC=0 //Azzera il risultato 3. Z=TOS; if(z) goto 7 // Se moltiplicatore==0 ho finito 4. N=TOS; if(n) goto 8 // Se moltiplicatore negativo goto 8 5. OPC=OPC+MDR // Somma il moltiplicando al risultato 6. TOS=TOS-1; if (Z) goto 7 else goto 5 // Decrementa il moltiplicatore. Salta a 7 se 0 altrimenti a 5 7. MDR=TOS=OPC;wr;goto(MBR1) // Scrive il risultato finale nella cima dello stack e aggiorna TOS 8. OPC=OPC+MDR // Somma il moltiplicando al risultato 9. TOS=TOS+1; if (Z) goto 7 else goto 8 8

9 // Incrementa il moltiplicatore. Se è 0 ho finito (salta a 7) altrimenti salta a 8. Problemi dell algoritmo proposto: a) Prestazioni: se mem(sp-1) è 0 facciamo un ciclo di somme nulle! b) Se c è un overflow non viene segnalato. c) Il risultato è corretto soltanto se il moltiplicatore è positivo. Consideriamo separatamente i diversi casi: 1. Moltiplicando e moltiplicatore positivi: il risultato è corretto 2. Moltiplicando e moltiplicatore negativi: E corretto procedere incrementando il moltiplicatore fino a zero, ma il risultato finale ha il segno negativo e non positivo come invece dovrebbe essere. 3. Moltiplicando positivo e moltiplicatore negativo e: Il risultato ha il segno positivo (sbagliato: dovrebbe essere negativo) 4. Moltiplicando negativo e moltiplicatore positivo: Il risultato è corretto Per risolvere il problema c) si può procedere nel modo seguente: 1. Se il moltiplicatore è positivo si procede come prima 2. Se il moltiplicatore è negativo si cambia segno al moltiplicando e si procede come prima. Così facendo a. Se il moltiplicando era positivo si ricade nel caso 4 (- x -) e si ottiene un risultato negativo, che è corretto b. Se il moltiplicando era negativo (- x -) si ricade nel caso 3 (+ x -) ottenendo un risultato positivo, ancora corretto. Il nuovo microprogramma è il seguente: 1. MAR=SP=SP-1;rd // Carica in MAR il moltiplicando 2. OPC=0 //Azzera il risultato 3. Z=TOS; if(z) goto 7 // Se moltiplicatore==0 ho finito. 4. N=TOS; if(n) goto 4bis else goto 5 4bis. MDR=-MDR // Cambia segno al moltiplicando. Con // MIC-1 avremmo dovuto scrivere due // istruzioni separate: H=MDR e MDR=-H 5. OPC=OPC+MDR // Somma il moltiplicando al risultato 6. TOS=TOS-1; if (Z) goto 7 else goto 5 // Decrementa il // moltiplicatore. Salta //a fine se 0 altrimenti a 5 7. MDR=TOS=OPC;wr;goto(MBR1) // Scrive il risultato finale nella cima dello stack e aggiorna TOS 8. OPC=OPC+MDR // Somma il moltiplicando al risultato 9. TOS=TOS+1; if (Z) goto 7 else goto 8 // Incrementa il moltiplicatore. Se è 0 ho finito (salta a 7) altrimenti salta a 8. 9

10 Esercizio Mic-2.6 Scrivere del microcodice Mic-2 che interpreti l'istruzione NOEXECZ che vogliamo aggiungere ad IJVM. Si suppone che le 10 istruzioni che seguono NOEXECZ in ogni programma siano tutte istruzioni senza argomenti (cioe' formate da un solo byte, il codice operativo (come IADD, per intenderci) tra cui c'e' almeno un'istruzione che ha il codice operativo che inizia con un 1. La semantica di NOEXECZ e' la seguente: salta tutte le prossime istruzioni che precedono la prima il cui codice operativo inizia con un 1 e salta anche quest'ultima. In altre parole l'istruzione che dovra' essere eseguita dopo NOEXECZ e' quella successiva alla prima istruzione dopo NOEXECZ che ha il codice operativo che inizia con un 1. Possibili soluzioni Soluzione NON corretta noexecz1 noexecz2 N=MBR1; if (N) goto(mbr1) goto noexecz1 La soluzione non è corretta perchè in questo caso non si salta anche l istruzione il cui codice operativo comincia per 1. Possibile soluzione corretta noexecz1 noexecz2 noexecz2 N=MBR1; if (N) goto noexecz2 else goto noexecz3 goto(mbr1) goto noexecz1 Notare come il test viene effettuato su MBR1 ( N=MBR1) e non su MBR1U (N=MBR1U). Considerazioni: Il codice scritto non fa alcun controllo per stabilire se nelle prossime 10 istruzioni effettivamente una ha un codice operativo che inizia per 1. Se tale istruzione non è presente il microcodice continua a scandire la memoria senza mai fermarsi. Per rendere un po più robusta l implementazione si potrebbe inserire un contatore inizializzato a 10. Se nelle prossime 10 istruzioni non è presente una istruzione con il codice operativo che inizia per 1 si salta semplicemente all undicesima. noexecz0 goto inizializza noexecz1 Z=H; if (Z) goto(mbr1) noexecz1 N=MBR1; if (N) goto noexecz2 else goto noexecz3 noexecz2 goto(mbr1) noexecz3 H = H 1; goto noexecz2 inizializza H=1 H << 8 // H = 256 H >> 1 // H = 128 H >> 1 // H = 64 H >> 1 // H = 32 10

11 H >> 1 // H = 16 H >> 1 // H = 8 H = H + 1 // H = 9 H = H + 1 // H = 10 goto noexecz1 Ovviamente l inizializzazione del registro H si può fare in altro modo (magari più efficiente ed elegante di questo) Esercizio Mic-2.7 (Tanenbaum 4.12) Quanto tempo occorre (espresso in ns) perchè una macchina MIC-2 con clock a 200 MHz esegua l'istruzione JAVA: i = j + k Basandosi su questo calcolo, quanto tempo impiegherebbe un programma che richiede per funzionare 100 sec su Mic-1 se lo si eseguisse su Mic-2? Soluzione L'istruzione Java i = j + k corrisponde alle seguenti istruzioni IJVM : ILOAD j ILOAD k IADD ISTORE i Vedendo poi le istruzioni mic2 di cui sono composte queste istruzioni IJVM si può notare che: ILOAD è formato da 3 istruzioni mic2 IADD è formato da 3 istruzioni mic2 ISTORE è formato da 5 istruzioni mic2 Quindi il codice sovrastante è costituito da = 14 istruzioni mic2 Sapendo che il clock è di 200 Mhz, la durata di un impulso di clock è 5 nsec. Quindi, poichè ogni istruzione mic2 viene eseguita in un ciclo di clock, il tempo per eseguire i = j + k è di 5*14 = 70 nsec. Quindi avendo un programma che viene eseguito su mic1 in 100 nsec, in mic2 sarà eseguito in (100*70)/115 = 60,8 nsec (ricordando che 115 nsec è il tempo ottenuto dall'esercizio Tanenbaum 4.11) 11

12 Esercizio Mic-3 (Tratto da Tanenbaum 4.18) Implementare una nuova istruzione JVM DLOAD x. Tale istruzione usa un indice di 1 byte che segue il codice operativo e mette la variabile locale indicata dall indice e quella seguente sullo stack. 1. Definire il microcodice per questa nuova istruzione per la macchina MIC-1 e per la macchina MIC-2 e confrontare i tempi di esecuzione nelle due versioni. 2. Si implementi il microcodice per l esecuzione della istruzione DLOAD sulla macchina MIC-3 Possibile soluzione a) Microcodice per la macchina MIC-1 dload1 H = LV // salva LV in H dload2 H = MAR = H + MBRU; rd // Calcola l indirizzo della prima variabile locale //e carica il valore in MDR dload3 H = H + 1; // Scrive in H l indirizzo della seconda variabile // locale dload4 MAR = SP = SP + 1; wr // Scrive il valore della variabile locale nella //nuova cima dello stack dload5 MAR = H ; rd // Carica in MAR l indirizzo della variabile locale //successiva e richiede la lettura del suo valore dload6 PC = PC + 1; fetch // Prepara la scrittura della seconda variabile // sulla nuova cima dello stack. dload5 MAR = SP = SP + 1; wr // Scrive la seconda variabile // sulla nuova cima dello stack. dload6 TOS = MDR; goto (MBR1)// Aggiorna il contenuto di TOS e continua //con la prossima istruzione. b) Microcodice per la macchina MIC-2 dload1 H = MAR = LV + MBR1U; rd // Calcola l indirizzo della prima variabile locale //e carica il valore in MDR dload2 H = H + 1; // Scrive in H l indirizzo della seconda variabile // locale dload3 MAR = SP = SP + 1; wr // Scrive il valore della variabile locale nella //nuova cima dello stack dload4 MAR = H ; rd // Carica in MAR l indirizzo della variabile locale //successiva e richiede la lettura del suo valore dload5 MAR = SP = SP + 1 // Prepara la scrittura della seconda variabile // sulla nuova cima dello stack. dload6 TOS = MDR; wr; goto (MBR1)// Aggiorna il contenuto di TOS e continua //con la prossima istruzione. Confronto: L esecuzione dell istruzione DLOAD <x> sulla macchina MIC-1 richiede 8 cicli macchina, contro i 6 necessari per l esecuzione sulla machina MIC-3 12

13 c) Microcodice per la macchina MIC-3 H=MAR=LV+MBR1U ;rd H=H+1 MAR=SP=SP+1;wr MAR=H;rd MAR=SP=SP+1 TOS=MDR;wr;goto(MBR1) 1 A=MBR1U; B=LV 2 C=A+B 3 H=MAR=C; rd 4 MDR = mem B=H 5 C=B+1 B=SP 6 H=C C=B+1 B=H 7 MAR=SP=C; wr C=B B=SP 8 mem=mdr MAR=C;rd C=B+1 9 MDR=mem MAR=SP=C 10 B=MDR 11 C=B 12 TOS=C;wr 13 mem=mdr; goto MBR1 Ipotizzando che sulla macchina MIC-3 il ciclo di clock sia tre volte più veloce rispetto a MIC-2 si ha: MIC-3: 13 cicli di clock MIC2: 6 x 3 = 18 cicli di clock Guadagno = NcicliMIC2/NcicliMIC3 = 18/13 = 1,38 13

MAL. Fondamenti di Informatica II Ingegneria Informatica e Biomedica I anno, II semestre A.A. 2005/2006

MAL. Fondamenti di Informatica II Ingegneria Informatica e Biomedica I anno, II semestre A.A. 2005/2006 Fondamenti di Informatica II Ingegneria Informatica e Biomedica I anno, II semestre A.A. 2005/2006 MAL Prof. Mario Cannataro Università degli Studi Magna Graecia di Catanzaro 24.05.2006 1 Sommario 1. Introduzione

Dettagli

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 3 aprile 2006 Esercizio 1 (punti 3) Considerare una codifica su 8 bit in complemento a due e rappresentare i seguenti

Dettagli

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 12 settembre 2005 Esercizio 1 (punti -1, 4) Considerare la rappresentazione in complemento a due del numero decimale

Dettagli

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

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

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

Corso di Laurea in Informatica

Corso di Laurea in Informatica Corso di Laurea in Informatica Architetture degli Elaboratori Corsi A e B Scritto del 10 luglio 2006 Si ricorda che non è possibile usare appunti, calcolatrici, e nessun altro materiale cartaceo o elettronico.

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 2006 Si ricorda che non è possibile usare appunti, calcolatrici, e nessun altro materiale cartaceo o elettronico.

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

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

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

Assembler MIPS R2000/3000 Progetto

Assembler MIPS R2000/3000 Progetto TITLE Assembler MIPS R2000/3000 Progetto Riccardo Solmi 1 Introduzione Scopo del progetto Utilizzare l assembly MIPS per realizzare un programma complesso Prendere confidenza con l architettura degli elaboratori

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

Memoria centrale (RAM) Registri della CPU. Definizioni. Architettura considerata in CPUSim. Programma in linguaggio macchina

Memoria centrale (RAM) Registri della CPU. Definizioni. Architettura considerata in CPUSim. Programma in linguaggio macchina Architettura considerata in CPUSim Linguaggio macchina -- esempio in CPUSim Manuale di CPU Sim Memoria con 128 celle Indirizzi da 12 bit Registri usuali per un architettura di Von Neumann (, IR,, ) Un

Dettagli

CORSO DI ARCHITETTURA DEGLI ELABORATORI Linguaggio IJVM

CORSO DI ARCHITETTURA DEGLI ELABORATORI Linguaggio IJVM UNIVERSITÀ DEGLI STUDI DI CAGLIARI Facoltà di Scienze Corso di Laurea in Informatica CORSO DI ARCHITETTURA DEGLI ELABORATORI Linguaggio IJVM Danilo Dessì danilo_dessi@unica.it Instruction set Istruzioni

Dettagli

Integer Java VM: IJVM

Integer Java VM: IJVM 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

Dettagli

Livello microarchitettura. Corso di. Architetture degli Elaboratori. Central Processing Unit (richiamo) Esempio: una microarchitettura per IJVM

Livello microarchitettura. Corso di. Architetture degli Elaboratori. Central Processing Unit (richiamo) Esempio: una microarchitettura per IJVM Corso di Architettura degli Elaboratori Livello microarchitettura Il livello della microarchitettura: data path e formato delle microistruzioni Studio del Livello 1: ha il compito di interpretare il livello

Dettagli

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti

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

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

Una microarchitettura per IJVM. Corso di Architettura degli Elaboratori. Architetture degli Elaboratori. Central Processing Unit (richiamo)

Una microarchitettura per IJVM. Corso di Architettura degli Elaboratori. Architetture degli Elaboratori. Central Processing Unit (richiamo) Corso di Architettura degli Elaboratori Il livello della microarchitettura: data path e formato delle microistruzioni Dipartimento di Informatica Università degli Studi di Torino C.so Svizzera, 185 I-10149

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

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi Somma di numeri floating point Algoritmi di moltiplicazione e divisione per numeri interi Standard IEEE754 " Standard IEEE754: Singola precisione (32 bit) si riescono a rappresentare numeri 2.0 10 2-38

Dettagli

ESERCIZIO: PROGETTO DI UNA CPU A PIU REGISTRI

ESERCIZIO: PROGETTO DI UNA CPU A PIU REGISTRI ESERCIZIO: PROGETTO DI UNA CPU A PIU REGISTRI Progettare una unità centrale di elaborazione microprogrammata, dotata di registri ad uso generale di bit, che sia in grado di indirizzare una memoria di 64k

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 Costanti globali Sono dichiarate in una sezione all inizio del

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

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini Architettura degli Elaboratori e delle Reti Lezione 8 CPU a singolo ciclo Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 8 /33 Sommario! La

Dettagli

Architettura degli elaboratori Tema d esame del 8/2/2016

Architettura degli elaboratori Tema d esame del 8/2/2016 Architettura degli elaboratori - Esame del 8 febbraio 6 A.A. -6 Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori Tema d esame del 8//6 Luigi

Dettagli

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

Introduzione all'architettura dei Calcolatori. Maurizio Palesi Introduzione all'architettura dei Calcolatori Maurizio Palesi 1 Agenda Architettura generale di un Sistema di Elaborazione La memoria principale Il sottosistema di comunicazione La CPU Miglioramento delle

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

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

0ROWLSOLFD]LRQHH'LYLVLRQH WUDQXPHULUHODWLYL

0ROWLSOLFD]LRQHH'LYLVLRQH WUDQXPHULUHODWLYL 0ROWLSOLFD]LRQHH'LYLVLRQH WUDQXPHULUHODWLYL Salvatore Orlando & Marta Simeoni Arch. Elab. - S. Orlando 1 0ROWLSOLFD]LRQHWUDQXPHULLQWHUL Oltre ai circuiti per realizzare somme e sottrazioni di interi, è

Dettagli

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione Lezione 5 e 6 - Concetto di blocco - Controllo del flusso di un programma - Costrutti per la scelta if e switch - Costrutti while e for - Operatori in C Fabio Scotti (2004-2009) Laboratorio di programmazione

Dettagli

CORSO DI ARCHITETTURA DEGLI ELABORATORI Linguaggio IJVM

CORSO DI ARCHITETTURA DEGLI ELABORATORI Linguaggio IJVM UNIVERSITÀ DEGLI STUDI DI CAGLIARI Facoltà di Scienze Corso di Laurea in Informatica CORSO DI ARCHITETTURA DEGLI ELABORATORI Linguaggio IJVM Danilo Dessì danilo_dessi@unica.it Sezioni di un programma IJVM

Dettagli

Esercizio 1. Progettare la PO a partire dal microprogramma eseguibile e successivamente:

Esercizio 1. Progettare la PO a partire dal microprogramma eseguibile e successivamente: Architettura degli Elaboratori Prima prova di verifica intermedia - A.A. 2014-2015 Riportare Nome, Cognome, Numero di matricola e Corso di appartenenza su tutti i fogli consegnati. I risultati saranno

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 degli Elaboratori Lez. 10 Esercizi su CPU MIPS a 1 ciclo di clock. Prof. Andrea Sterbini

Architettura degli Elaboratori Lez. 10 Esercizi su CPU MIPS a 1 ciclo di clock. Prof. Andrea Sterbini Architettura degli Elaboratori Lez. 10 Esercizi su CPU MIPS a 1 ciclo di clock Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti Argomenti della lezione - Esercizi sulla CPU MIPS a 1 colpo di clock

Dettagli

CPUSim. Laboratorio 30/11/2016

CPUSim. Laboratorio 30/11/2016 CPUSim Laboratorio 30/11/2016 Tommaso Padoan e-mail: padoan@math.unipd.it CPUsim Scaricare il simulatore: www.math.unipd.it/~sperduti/architettura1.html scorrere fino a sezione Simulatori, aprire la pagina

Dettagli

Architettura degli elaboratori

Architettura degli elaboratori Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori Tema d esame del /9/24 Dipartimento di Scienze Teoriche e Applicate luigi.lavazza@uninsubria.it

Dettagli

ARCHITETTURE DEI CALCOLATORI (canale A-I) - Prima prova in itinere del 16/6/2003 Compito tipo A

ARCHITETTURE DEI CALCOLATORI (canale A-I) - Prima prova in itinere del 16/6/2003 Compito tipo A ARCHITETTURE DEI CALCOLATORI (canale A-I) - Prima prova in itinere del 16/6/2003 Compito tipo A *** indicano le affermazioni corrette. 1. Con riferimento alle architetture dei calcolatori ed alla valutazione

Dettagli

Lezione 7 ALU: Moltiplicazione e divisione

Lezione 7 ALU: Moltiplicazione e divisione Architettura degli Elaboratori e delle Reti Lezione 7 ALU: Moltiplicazione e divisione F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 7 1/34 Sommario! Sommatori

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

Architettura degli Elaboratori

Architettura degli Elaboratori Moltiplicazione e divisione tra numeri interi: algoritmi e circuiti slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Operazioni aritmetiche e logiche Abbiamo visto che le ALU sono in grado

Dettagli

Progetto CPU a singolo ciclo

Progetto CPU a singolo ciclo Architettura degli Elaboratori e delle Reti Progetto CPU a singolo ciclo Proff. A. Borghese, F. Pedersini Dipartimento di Informatica Università degli Studi di Milano 1/50 Sommario! La CPU! Sintesi 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

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

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra

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

Esercitazione del 05/05/ Soluzioni

Esercitazione del 05/05/ Soluzioni Esercitazione del 05/05/2005 - Soluzioni Una CPU a ciclo singolo richiede un ciclo di clock di durata sufficiente a permettere la stabilizzazione del circuito nel caso dell istruzione più complicata (con

Dettagli

Esercizi su microistruzioni. 1 Esercizi con architettura a 1 bus

Esercizi su microistruzioni. 1 Esercizi con architettura a 1 bus Esercizi su microistruzioni Ogni riga elenca i segnali che vengono attivati nello stesso ciclo di clock. Si assume che lettura e scrittura dei registri avvengano all inizio e alla fine del ciclo di clock,

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

Ogni CPU è in grado di eseguire un insieme limitato di istruzioni macchina codificate in binario secondo il seguente schema generale.

Ogni CPU è in grado di eseguire un insieme limitato di istruzioni macchina codificate in binario secondo il seguente schema generale. Ogni CPU è in grado di eseguire un insieme limitato di istruzioni macchina codificate in binario secondo il seguente schema generale. Campo Codice Operativo Campo Operandi K bit n-k bit n bit 1 Istruzione

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

La macchina di Von Neumann. UNIVERSITÀ DEGLI STUDI DEL SANNIO Benevento DING DIPARTIMENTO DI INGEGNERIA CORSO DI "PROGRAMMAZIONE I"

La macchina di Von Neumann. UNIVERSITÀ DEGLI STUDI DEL SANNIO Benevento DING DIPARTIMENTO DI INGEGNERIA CORSO DI PROGRAMMAZIONE I 23/11/218 UNIVERSITÀ DEGLI STUDI DEL SANNIO Benevento DING DIPARTIMENTO DI INGEGNERIA La macchina di Von Neumann Unità periferiche Memoria Centrale CPU CORSO DI "PROGRAMMAZIONE I" Bus Dati Bus Indirizzi

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

Moltiplicazione e Divisione tra numeri relativi

Moltiplicazione e Divisione tra numeri relativi Moltiplicazione e Divisione tra numeri relativi Salvatore Orlando & Marta Simeoni Arch. Elab.A M. Simeoni 1 Moltiplicazione tra numeri interi Oltre ai circuiti per realizzare somme e sottrazioni di interi,

Dettagli

Moltiplicazione tra numeri interi. Moltiplicazione e Divisione tra numeri relativi. Moltiplicazione: algoritmo carta e penna (base 2)

Moltiplicazione tra numeri interi. Moltiplicazione e Divisione tra numeri relativi. Moltiplicazione: algoritmo carta e penna (base 2) Arch. Elab.A M. Simeoni 1 Moltiplicazione tra numeri interi Moltiplicazione e Divisione tra numeri relativi Salvatore Orlando & Marta Simeoni Oltre ai circuiti per realizzare somme e sottrazioni di interi,

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

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

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

Il modello di von Neumann

Il modello di von Neumann 1 Organizzazione di (quasi) tutti gli elaboratori moderni: personal computer, workstation, portatili, smartphone,... CPU memoria Control Unit I/O ALU 2 Il cuore è la CPU (Control Processing Unit): esegue

Dettagli

CPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore

CPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore CPU CPU e programmazione (Parte 1) La CPU (Central Processing Unit) e` in grado di eseguire dei programmi, cioe` sequenze di istruzioni elementari ( istruzioni macchina ) Idea fondamentale dell'architettura

Dettagli

Firmware Division. Sommario

Firmware Division. Sommario Firmware Division Prof. Alberto Borghese Dipartimento di Informatica borghese@di.unimi.it Università degli Studi di Milano Riferimenti sul Patterson 5a ed.: 3.4, 3.5 1/33 Sommario Divisione intera 2/33

Dettagli

1 Esercizi con architettura a 1 bus

1 Esercizi con architettura a 1 bus 1 Esercizi con architettura a 1 bus 1.1 Fetch dell istruzione NOTA: l istruzione ClearY azzera il registro Y mentre l istruzione CB imposta a 1 il bit di riporto/prestito in modo da sommare/sottrarre 1.

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

Architettura degli elaboratori - Luigi Lavazza A.A. 2014/15

Architettura degli elaboratori - Luigi Lavazza A.A. 2014/15 niversità degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori Tema d esame del 14/09/2015 Luigi Lavazza Dipartimento di Scienze Teoriche e Applicate luigi.lavazza@uninsubria.it

Dettagli

Firmware Multiplier. Sommario

Firmware Multiplier. Sommario Firmware Multiplier Prof. lberto Borghese Dipartimento di Informatica borghese@di.unimi.it Università degli Studi di Milano Riferimenti sul Patterson 5a ed.: B.6 & 3.4 /33 Sommario Il moltiplicatore firmware

Dettagli

Firmware Multiplier. Sommario

Firmware Multiplier. Sommario Firmware Multiplier Prof. lberto Borghese Dipartimento di Informatica borghese@di.unimi.it Università degli Studi di Milano Riferimenti sul Patterson 5a ed.: B.6 & 3.4 /33 Il moltiplicatore firmware 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 Memoria La dimensione del Register File è piccola registri usati per memorizzare singole variabili di tipo semplice purtroppo

Dettagli

Progetto CPU a singolo ciclo

Progetto CPU a singolo ciclo Architettura degli Elaboratori e delle Reti Progetto CPU a singolo ciclo Proff. A. Borghese, F. Pedersini Dipartimento di Informatica Università degli Studi di Milano 1/60 Sommario v La CPU v Sintesi di

Dettagli

MIPS MIPS MIPS MIPS. Registri. Dati e modi di indirizzamento. Formato Istruzioni. Lezione 5 e 6. Architettura degli Elaboratori A.

MIPS MIPS MIPS MIPS. Registri. Dati e modi di indirizzamento. Formato Istruzioni. Lezione 5 e 6. Architettura degli Elaboratori A. MS Architettura RISC Architettura molto regolare con insieme di istruzioni semplice e compatto Architettura progettata per una implementazione efficiente di pipeline (lo vedremo più avanti) Codifica delle

Dettagli

CALCOLATORI ELETTRONICI 25 giugno 2018

CALCOLATORI ELETTRONICI 25 giugno 2018 CALCOLATORI ELETTRONICI 25 giugno 2018 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si implementi per mezzo di porte logiche OR, AND, NOT la funzione combinatoria (a 3 ingressi

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

Fetch Decode Execute Program Counter controllare esegue prossima

Fetch Decode Execute Program Counter controllare esegue prossima Stored Program Istruzioni sono stringhe di bit Programmi: sequenze di istruzioni Programmi (come i dati) memorizzati in memoria La CPU legge le istruzioni dalla memoria (come i dati) Ciclo macchina (ciclo

Dettagli

Architettura degli elaboratori CPU a ciclo singolo

Architettura degli elaboratori CPU a ciclo singolo Architettura degli elaboratori CPU a ciclo singolo Prof. Alberto Borghese Dipartimento di Informatica borghese@di.unimi.it Università degli Studi di Milano iferimento sul Patterson: capitolo 4.2, 4.4,

Dettagli

Fondamenti di Informatica A. A / 1 9

Fondamenti di Informatica A. A / 1 9 Fondamenti di Informatica Prof. Marco Lombardi A. A. 2 1 8 / 1 9 Architettura di Von Neumann Architettura di Von Neumann: l Unità di Elaborazione L Unità di Elaborazione L unità di elaborazione (CPU) contiene

Dettagli

Lezione 29 Il processore: unità di controllo (2)

Lezione 29 Il processore: unità di controllo (2) Lezione 29 Il processore: unità di lo (2) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione 2 Un riepilogo: ruolo della unità di

Dettagli

Architettura degli elaboratori CPU a ciclo singolo

Architettura degli elaboratori CPU a ciclo singolo Architettura degli elaboratori CPU a ciclo singolo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@di.unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo

Dettagli

Architettura degli Elaboratori Gestione dei control-hazard nella pipeline. Prof. Andrea Sterbini

Architettura degli Elaboratori Gestione dei control-hazard nella pipeline. Prof. Andrea Sterbini Architettura degli Elaboratori Gestione dei control-hazard nella pipeline Prof. Andrea Sterbini sterbini@di.uniroma1.it Argomenti - Spostare Jump nella fase IF - Come gestire i control hazard - Eliminare

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

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

Assembly (3): le procedure

Assembly (3): le procedure Architettura degli Elaboratori e delle Reti Lezione 13 Assembly (3): le procedure Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 13 1/23 Chiamata

Dettagli

Arithmetic and Logic Unit e moltiplicatore

Arithmetic and Logic Unit e moltiplicatore Arithmetic and Logic Unit e moltiplicatore M. Favalli Engineering Department in Ferrara (ENDIF) ALU - multiplier Analisiesintesideicircuitidigitali 1 / 34 Sommario 1 Arithmetic and Logic Unit - ALU 2 Moltiplicatore

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

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

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

Firmware Division & Floating pointer adder

Firmware Division & Floating pointer adder Firmware Division & Floating pointer adder Prof. Alberto Borghese Dipartimento di Scienze dell Informazione borghese@di.unimi.it Università degli Studi di Milano Riferimenti sul Patterson: 3.4, 3.5 1/47

Dettagli

Informatica 2 Prova di lunedì 28 Giugno 2004

Informatica 2 Prova di lunedì 28 Giugno 2004 Politecnico di Milano Dipartimento di Elettronica e Informazione prof. Cesare Alippi prof.ssa Anna Antola prof. Luciano Baresi prof. Luca Breveglieri Informatica 2 Prova di lunedì 28 Giugno 2004 Matricola

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

Architettura degli elaboratori A.A

Architettura degli elaboratori A.A Architettura degli elaboratori A.A. 2018-2019 Prima prova di verifica intermedia 2 nov 2018 Compito Tipo A Indicare in alto a destra su tutti i fogli ricevuti il proprio nome, cognome, numero di matricola

Dettagli

Firmware Division. Prof. Alberto Borghese Dipartimento di Informatica Università degli Studi di Milano

Firmware Division. Prof. Alberto Borghese Dipartimento di Informatica Università degli Studi di Milano Firmware Division Prof. Alberto Borghese Dipartimento di Informatica borghese@di.unimi.it Università degli Studi di Milano Riferimenti sul Patterson 5a ed.: 3.4, 3.5 1/36 Sommario Divisione intera Circuiti

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

Lezione 7 Sommatori e Moltiplicatori

Lezione 7 Sommatori e Moltiplicatori Architettura degli Elaboratori e delle Reti Lezione 7 Sommatori e Moltiplicatori Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 7 /36 Sommario

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

Firmware Division. Prof. Alberto Borghese Dipartimento di Informatica Università degli Studi di Milano

Firmware Division. Prof. Alberto Borghese Dipartimento di Informatica Università degli Studi di Milano Firmware Division Prof. Alberto Borghese Dipartimento di Informatica borghese@di.unimi.it Università degli Studi di Milano Riferimenti sul Patterson 5a ed.: 3.4, 3.5 1/36 Sommario Divisione intera Circuiti

Dettagli

ALU e Control Unit. ALU e Control Unit

ALU e Control Unit. ALU e Control Unit Massimo VIOLANTE Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Unità aritmentica/logica Unità di controllo. 2 M. Violante 1.1 Unità aritmetica/logica Contiene tutti i circuiti

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