Esercizi di Microprogrammazione (Parte 1: MIC-1)
|
|
- Veronica Manca
- 5 anni fa
- Visualizzazioni
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
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
DettagliCorso 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
DettagliCorso 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
DettagliCorso 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
DettagliCorso 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
DettagliStruttura 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)
DettagliCorso 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.
DettagliCorso 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.
Dettagli06 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
DettagliInteger 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
DettagliLa 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.
DettagliAssembler 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
DettagliIJVM. 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
DettagliMemoria 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
DettagliCORSO 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
DettagliInteger 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
DettagliLivello 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
DettagliCPU 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!
DettagliMicroarchitettura. 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
DettagliUna 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
DettagliEsercizio 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:
DettagliSomma 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
DettagliESERCIZIO: 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
DettagliContenuto 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
DettagliIl 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
DettagliCPU 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
DettagliArchitettura 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
DettagliIntroduzione 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
DettagliL'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
DettagliLinguaggio 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
Dettagli0ROWLSOLFD]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, è
DettagliLezione 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
DettagliCORSO 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
DettagliEsercizio 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
DettagliLe 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):
DettagliArchitettura 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
DettagliCPUSim. 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
DettagliArchitettura 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
DettagliARCHITETTURE 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
DettagliLezione 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
DettagliContenuto 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
DettagliArchitettura 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
DettagliProgetto 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
DettagliProgettazione 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
DettagliRichiami 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
DettagliDiagramma 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
DettagliIl 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
DettagliEsercitazione 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
DettagliEsercizi 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,
DettagliIl 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
DettagliOgni 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
DettagliIl 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
DettagliLa 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
DettagliProcessore. 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
DettagliMoltiplicazione 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,
DettagliMoltiplicazione 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,
DettagliCPU 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!
DettagliIl 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
DettagliPinout 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
DettagliIl 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
DettagliCPU. 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
DettagliFirmware 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
Dettagli1 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.
DettagliCorso 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
DettagliArchitettura 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
DettagliFirmware 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
DettagliFirmware 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
DettagliProcessore. 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
DettagliProgetto 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
DettagliMIPS 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
DettagliCALCOLATORI 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
DettagliARCHITETTURA 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
DettagliFetch 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
DettagliArchitettura 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,
DettagliFondamenti 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
DettagliLezione 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
DettagliArchitettura 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
DettagliArchitettura 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
DettagliDEC 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
DettagliRichiami 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
DettagliAssembly (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
DettagliArithmetic 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
DettagliIstruzioni 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:
DettagliComponenti 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
DettagliComponenti 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
DettagliFirmware 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
DettagliInformatica 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
DettagliElaborazione 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
DettagliArchitettura 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
DettagliFirmware 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
DettagliArchitettura 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
DettagliLezione 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
DettagliLezione 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
DettagliFirmware 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
DettagliALU 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
DettagliArchitettura 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