Architettura. Indice:

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Architettura. Indice:"

Transcript

1

2 Architettura Indice: Architettura 1 Architettura degli elaboratori (3 / 10 / 2006)...4 Livelli di astrazione...4 Architettura di Von Neumann...4 La CPU...5 La memoria...5 Rappresentare gli interi...6 Rappresentazione numeri in virgola mobile...9 Circuiti logici...10 Circuito per la somma di 2 numeri...13 Circuiti sequenziali...14 Il 3-state...15 Ritornando ai registri...15 Architettura MIPS e Assembler...17 La memoria Assembler parte Ciclo fondamentale...21 Struttura dei registri del MIPS Esempio completo di una istruzione di somma...22 Assembler parte Flusso di istruzioni...23 Pseudoistruzioni...27 Convenzioni di uso della memoria...28 Implementazione hardware delle istruzioni macchina...29 Unità Operativa (DataPath) multiciclo...33 Simulatore SPIM per architettura MIPS Unità di controllo: macchina a stati finiti...38 Supporto alle eccezioni / interruzioni...42 Le periferiche e gli interrupt...44 Il gestore delle eccezioni...48 DMA (Direct Memory Access)...51 Modularizzazione del software...53 Esercitazioni...56 Architettura 2 Reti (8 / 1 / 2007)...60 Introduzione (8 / 1 / 2007)...60 Accesso alla rete...60 Dentro la rete...60 Circuit Switching...61 Packet Switching (9 / 1 / 2007)...61 Reti datagram e a circuito virtuale...62 Ritardi e sorgenti di ritardo...62 I Livelli...63 Esercitazione del 10 / 1 /

3 Quaderno virtuale di teoria Strato di applicazione (15 / 1 / 2006)...67 Protocollo http (15 / 1 / 2006)...68 Protocollo ftp (16 / 1 / 2006)...71 Posta elettronica (16 / 1 / 2006)...72 DNS (domain name system) (16 / 1 / 2006)...74 Web cache 2 (22 / 1 / 2007)...75 P2P (22 / 1 / 2007)...75 emule (22 / 1 / 2007)...76 Strato di trasporto (22 / 1 / 2007)...77 Principi di trasporto affidabile (22 / 1 / 2007)...78 Esercitazione del 24 / 1 / Principi di trasporto affidabile 2 (29 / 1 / 2007)...88 TCP (Generalità)(29 / 1 / 2007)...90 Esercitazione del 31 / 1 / Strato di rete (19 / 2 / 2007) Router (19 / 2 / 2007) Protocollo IP (20 / 2 / 2007) IPv6 (20 / 2 / 2007) Algoritmi di routing (26 27 / 2 / 2007) Strato di link e strato fisico (27 / 2 / / 3 / 2007) Multimedialità in rete (12 13 / 3 / 2006) Esercitazioni del 28 / 2 / / 3 / / 3 / Appendici collegate: Appendice 1 Datapath ultima modifica: 16/11/2006 (Contiene 0 errore/i) Appendice 2 FSM Diagram ultima modifica: 27/11/2006 (Contiene 1 errore/i) Appendice 3 Gestione delle eccezioni ultima modifica: 29/11/2006 (Contiene 0 errore/i) Appendice 4 P2P (peer to peer) ultima modifica: 23/01/2007 (Contiene 0 errore/i) Dati riguardanti il quaderno virtuale: Ultima sezione aggiunta: Esercitazioni varie in data 16 / 3 / 2007 Errori: Nessun errore rilevato 3

4 Architettura Architettura 1 Architettura degli elaboratori (3 / 10 / 2006) Livelli di astrazione Fisica dello stato solido (spiega il funzionamento dei semiconduttori) Elettronica digitale (permette di eseguire operazioni logiche) 0 0 (AND) 1 Architettura hardware (Alu, registri, ) (si tiene conto anche della fisica che si utilizza [i ritardi di propagazione del segnale,..] Esempio: se ho 1000 file l hardware necessario per eseguire l Or di questi fili sarà differente rispetto a quello per eseguire l Or di due fili Instruction Set Architecture (ISA [noi considereremo il MIPS]) (Quella usata normalmente oggi è l Intel Alchitecture a 32 bit) Programmazione Assembler utilizza il set di istruzioni predefinito del circuito Normalmente il programmi vengono scritti in codice ad alto livello (Java, C++, ), il che presuppone che la macchina sia in grado di eseguire questo codice; in realtà non esiste una macchina che può fare le operazioni scritte in codice ad alto livello in modo nativo. Per far si che un pc esegua le istruzioni che noi abbiamo programmato occorre un compilatore che trasformi il linguaggio ad alto livello in un linguaggio a basso livello (linguaggio macchina).c.exe Compilatore Tramite diversi compilatori lo stesso codice può essere adattato per ISA differenti Intel Architecture a 32 bit (Intel e AMD).C MIPS PowerPC Architettura di Von Neumann Un calcolatore è costituito da tre blocchi fondamentali: CPU MEMORIA Dispositivi I/O BUS Il Bus è un insieme di fili che trasporta le 4

5 Quaderno virtuale di teoria informazioni tra i vari blocchi Questa struttura è detta: Architettura di Von Neumann. Ho una memoria sola dove memorizzo sia dati che istruzioni quindi sarà il Sistema Operativo a dire cosa posso o non posso fare con i dati o con le istruzioni e come le devo elaborare. La CPU Registri: locazioni di memoria con un numero predefinito di bit rispetto all architettura Unità di controllo: prende una istruzione, capisce cosa c è dentro e dice alla ALU cosa fare (ha bisogno di 2 registri speciali) Instruction Register ALU, unità aritmetico logica. Si disegna così perché ci sono 2 operandi e un risultato Program Counter: memorizza l indirizzo di memoria dell istruzione da controllare e passa alla successiva quando quella precedente è stata eseguita Questa è una visione semplificata di un calcolatore moderno (può avere più ALU, ha unità specifiche per numeri non interi, può eseguire più istruzioni contemporaneamente) La memoria È un insieme di parole indicizzate di dove risiedono i dati CPU Una parte della memoria viene usata per ricopiare alcune informazioni che più probabilmente la CPU controlla e richiede. Questa parte di memoria si chiama CACHE. 5

6 Architettura I componenti della CPU (registri, ) sono visibili in programmazione Assembler, mentre la Cache non lo è. Alcuni programmi disabilitano la Cache perché se no il loro funzionamento sarebbe rallentato Il BUS si divide in: Address Bus, Data Bus e Control Bus. 6 Rappresentare gli interi Facciamo finta di avere 3 bit. Rappresentazione degli interi senza segno: Rappresentazione con modulo e segno Per convenzione i valori con segno positivo hanno bit più significativo 0 mentre quelli negativi hanno bit più significativo La rappresentazione in modulo e segno dei problemi: Ha due serie di bit per indicare lo zero (±0) Logica complicata per vedere se un numero è maggiore di un altro Alcune operazioni matematiche non riescono Esempio: 1 2 = Ottengo come risultato 3. Cosa che non è possibile Allora venne inventata la notazione in Complemento a 2: un numero a positivo si rappresenta come a, mentre il negativo a = 2 n a

7 Quaderno virtuale di teoria Ho un unica rappresentazione per lo zero I moduli mi dicono qual è il valore più grande tra i numeri dello stesso segno La somma funziona = = 3 Quindi la somma funziona a b = a +(-b) altro non è che la somma di a e del complemento a 2 di b. Quanti numeri diversi posso rappresentare con n bit: 2 (n 1) 1 (posso rappresentare +3 e non +4) Mentre il numero più negativo è dato da: 2 (n 1) = 4 Se faccio = Ottengo un OVERFLOW perché il 5 non lo posso rappresentare La macchina non sa se il risultato è giusto ma deve essere in grado di segnalare l errore. A b a+b Risultato + + Se > 2 (n 1) 1 Ottengo un risultato con 1 nel bit significativo, quindi il risultato avrà segno negativo Se > 2 (n 1) + Ottengo un risultato con 0 nel bit più significativo, quindi il risultato avrà segno positivo + / / Non può esserci condizione di Overflow Condizioni di Overflow: I due operandi hanno lo stesso segno; il risultato ha segno opposto Il Carry In (riporto sul) bit di segno è diverso dal carry out In uscita dal calcolo ho un carry out che vale 1 Il carry in (dell ultimo calcolo) è uguale al carry out (1 = 1) quindi non ho situazione di overflow. Carry In (1) Arrivo qui è ho un riporto (che sarebbe il carry out del calcolo precedente). Esempio: 1+1+1=1 riporto 1 (questo è il carry out, che sarà il carry in del calcolo successivo) 7

8 Architettura In uscita dal calcolo ho un carry out che vale 1 Carry In (0) Il carry out è diverso dal carry in (1 0) quindi mi trovo in una situazione di overflow. Come faccio a rappresentare il complemento a 2 del numero a = 2 n a Prendo un numero, partendo dal bit meno significativo; fino a che ci sono zeri li lascio, quando incontro il primo 1 lo lascio e dal successivo bit faccio il complemento, cioè se c è 0 scriverò 1 e viceversa Sul -4 non può funzionare perché il +4 non è nel range di valori rappresentabili Come metodo va bene per gli esseri umani ma non per i calcolatori. Un numero in complemento a 2 si può anche calcolare come: a = a +1 Dove a significa che cambio tutti i bit di a e poi aggiungo 1 a a = Questo metodo è più veloce per il calcolatore. Per quanto riguarda la sottrazione posso utilizzare il seguente metodo: a b = a + ( b)= a + b +1 Ci sono anche altre notazioni, tra cui la notazione polarizzata Nell esempio la polarizzazione o excess è 3 (perché inizio con -3) 8

9 Quaderno virtuale di teoria L ordinamento dei numeri è naturale e sono facilitato nella confronti. Definisco io l inizio della notazione Serve nella notazione in virgola mobile Rappresentazione numeri in virgola mobile L obiettivo della rappresentazione in virgola mobile (Floating Point) è quello di approssimare la rappresentazione dei numeri reali. I pc utilizzano la notazione scientifica: 1, , Le cifre significative si chiamano Mantissa. Rappresentazione di riferimento per i numeri reali: ± 1,xxxxxx 2 yyyyyy segno mantissa esponente Nella prima posizione della mantissa ho inserito 1 (questo 1 ci sarà sempre e sarà il sistema a ricordarsi di inserirlo) per far si che ho più bit significativi dopo la virgola; la maggior precisione è data dall esponente. Devo tener presente che ho un numero di bit limitati. N di bit S EXP MANTISSA Segno: rappresentato rappresentata in notazione senza segno 0 (+) in notazione 1 ( ) polarizzata Esempio 1: Dato 0,625 trasformarlo in binario (mettiamo che l esponente abbia notazione con polarizzazione 3) 0, ,25 2 (nel calcolo successivo non tengo conto dell 1 prima della virgola) 0,50 2 1,0 Il numero in binario è dato dalle cifre prima della virgola Quindi 0,625 in binario è 0,101 (posso rappresentare solo numeri che siano somme di potenze di 2) Rappresento nella notazione standard: 0,101 normalizzato è 1, S EXP MANTISSA Esempio 2: Dato 0,15 trasformarlo in binario 0,15 2 0,30 2 0,60 2 1,2 2 (considero 0,2) 0,4 2 0,8 2 9

10 Architettura 1,6 2 1,2 Il numero è periodico in base 2 Il codice binario è: 0, che normalizzato è: 1, (La parte periodica sarà quella scritta come mantissa) S EXP MANTISSA L esponente è 000 perché la notazione ha polarizzazione 3. C è comunque approssimazione perché in realtà la rappresentazione corrisponde a: 0, Anche nel Floating Point esiste l overflow Ci sono anche delle rappresentazioni standard: la IEEE754 A singola precisione (32 bit) N di bit S EXP MANTISSA L esponente ha polarizzazione 127 Doppia precisione (64 bit) N di bit S EXP MANTISSA L esponente ha polarizzazione 1023 Le unità logiche del pc non sanno cosa ci sia scritto nei registri, cioè se sono parole o numeri Oltre ai numeri dobbiamo anche rappresentare i caratteri e per questo si usa la codifica ASCII (a 8 bit). La tabella ascii ha i caratteri in ordine crescente; il numero che rappresenta la A è più piccolo di quello della B A < B < C < D Circuiti logici Portano dei segnali a 2 stati (0 e 1) Ingressi (I) I 0 U 0 I n-1 U m-1 Uscite (U) Il circuito può avere 2 n combinazioni di ingressi. Si distinguono in 2 categorie: Combinatori a un certo istante le uscite dipendono esclusivamente dagli ingressi; U = f (I) Sequenziali hanno una memoria riguardo allo stato (S) precedente; U = f (I, S) I n S 0 S k-1 S m U 10 Si dice che ha k bit di memoria CIRCUITI COMBINATORI La tabella di verità di un circuito ci da tutti i valori di uscita per ogni possibile ingresso. Esempio: Abbiamo 3 bit, quindi abbiamo 2 n righe per le possibili combinazioni di ingressi (2 3 = 8).

11 Quaderno virtuale di teoria U 1 vale 0 se c è almeno uno zero fra gli ingressi e vale 1 se tutti e tre gli ingressi sono a 1. U 0 vale 0 se tutti gli ingressi sono a zero, mentre vale 1 per tutti gli altri casi. I 2 I 1 I 0 U 1 U Nei circuiti combinatori ci sono combinazioni di funzioni logiche elementari che vengono realizzate da porte logiche; le porte logiche sono circuiti che eseguono funzioni logiche elementari AND logico Viene indicato con: F = A B A A B F F B vale zero se c è almeno uno zero OR logico Si indica con: F = A + B A B F A B F vale 1 se c è almeno un 1 NOT Si indica con: F = A (cioè negazione di A) A F Combinando opportunamente queste tre funzioni logiche posso realizzare qualsiasi espressione logica. Esistono anche altre porte particolari: NAND (nega un AND logico), viene indicato con: F = Il pallino dopo la porta And ha funzione di negazione A B A F F A B F A B 11

12 Architettura Da sola, la porta NAND, costituisce un insieme completo perché posso realizzare qualsiasi funzione in logica booleana utilizzando una serie di NAND. Esempio: Per simulare un AND metto in sequenza due porte NAND Per simulare un OR nego gli ingressi della porta NAND Per simulare il NOT è sufficiente sdoppiare il segnale in arrivo in modo che entri nei due ingressi della porta NAND. Costruttivamente una porta NAND è una porta AND tolto un transistor. I circuiti integrati utilizzano un insieme di porte NAND EXOR (OR esclusivo), si indica con: F = A B A A B F F B L EXOR 1. serve per un test di uguaglianza (se gli ingressi sono uguali l EXOR vale 0) 2. A meno del riporto l EXOR è la somma di 2 bit (quindi è un componente del circuito della somma) 3. Fa il complemento comandato Il complementatore comandato è un circuito che dato un ingresso, un uscita e un segnale di controllo esegue: se C (segnale di controllo) = 1 allora l uscita è la negazione dell ingresso, mentre se C = 0 l uscita è uguale all ingresso MULTIPLEXER Seleziona e mette nell uscita il valore dell ingresso indicato dal segnale di controllo. Se il numero di segnali di controllo è n, il numero massimo di ingressi sarà 2 n. Se ho 2 ingressi ho bisogno di 1 segnale di controllo Se ho 4 ingressi ho bisogno di 2 segnali di controllo Se ho 8 ingressi ho bisogno di 3 segnali di controllo Se ho 9 ingressi ho bisogno di 4 segnali di controllo (perché con 4 segnali di controllo posso rappresentare 2 4 = 16 combinazioni possibili) I 0 I! I 2 I 3 F F = I C1 C0 Se C 1 C 0 = 00 F = I 0 Se C 1 C 0 = 01 F = I 1 Se C 1 C 0 = 10 F = I 2 Se C 1 C 0 = 11 F = I 3 C 0 C 1 DECODER Prende un numero binario in ingresso e attiva la linea di uscita corrispondente (al numero binario in ingresso) 12

13 Quaderno virtuale di teoria I 0 I 1 F 0 F 1 F 2 F 3 Se I 1 I 0 = 00 F 0 = 1, F 1,2,3 = 0 Se C 1 C 0 = 01 F 0 = 0, F 1 = 0, F 2,3 = 0 Circuito per la somma di 2 numeri Il circuito necessario per eseguire la somma a 1 bit si chiama Full Adder. Se devo sommare 2 numeri a 4 bit avrò bisogno di 4 Full Adder (1 per ogni bit) riporti (0) (1) (1) A = (3) B = (3) S = (6) A B C IN (Carry In) Full Adder C OUT (Carry Out) S Esempio: somma a 4 bit (nella tabella indico la posizione dei vari bit) A = a 3 a 2 a 1 a 0 B = b 3 b 2 b 1 b 0 S = s 3 s 2 s 1 s 0 a 3 b 3 a 2 b 2 a 1 b 1 a 0 b 0 (non ho carry in iniziale) 0 Carry out s 3 s 2 s 1 s 0 Lo schema usato ha un difetto di prestazioni, è un metodo lento e il carry deve avere un segnale stabile. Ci sono dei circuiti, i Carry Look Ahead, che sono pensati per velocizzare la somma Il sommatore è costituito da due funzioni: ( A B) CIN = A B CIN S = COUT = A B + A CIN + B CIN Il C out viene fuori quando almeno 2 bit sono a 1 13

14 Architettura Tavola di verità di C OUT A B C IN C OUT qui si verificano tutte e 3 le condizioni SOMMA E SOTTRAZIONE (in un unico circuito) a 3 b 3 a 2 b 2 a 1 b 1 a 0 b 0 C in C out s 3 s 2 È un complementatore comandato cioè una porta EXOR. In uscita ottengo l ingresso negato a seconda del segnale sottrai Si ricorda che la sottrazione a b = a + ( b)= a + b +1 s 1 s 0 Il C in assume il valore 1 se il segnale sottrai è a 1, ciò vuol dire che devo eseguire la sottrazione Sottrai (segnale che indica se devo are la somma o la sottrazione) Circuiti sequenziali Hanno una memoria. Hanno un segnale di temporizzazione per la logica sequenziale. Il segnale di temporizzazione è dato dal clock. T 1 frequenza T = Se la frequenza è 1 GHz, il periodo è di 1 ns (nano secondo) In alcuni casi può essere necessario filtrare il segnale di clock in maniera che si fermi. Il FLIP FLOP D (la D sta per ritardo) contiene 1 bit di memoria D Q segnale di clock 14

15 Quaderno virtuale di teoria Il Flip Flop campiona il segnale di indresso D a instanti predefiniti, che sono dati dal segnale di clock, e ne memorizza lo stato fornendo, anche, un uscita Q. Il Flip Flop che stiamo studiando, in particolare, è il Flip Flop D Negative Edge Triggered. Clock D Q Circuiti sequenziali importanti: Registro (a n bit) elemento di memoria base Macchina a stati finiti Il 3-state Il 3-State non è una funzione logica in senso proprio. A F C A C F qualunque 1 A sia A 0 - Dove il trattino indica uno stato di alta impedenza che non fa passare il segnale elettrico Il 3-state varia stato a seconda del segnale di controllo C e non dipende dall ingresso A. Serve per il Bus. Il Bus non può ricevere più stati di segnale contemporaneamente altrimenti il circuito si brucerebbe. Il 3-state si trova tra la periferica (memoria, cpu, ) e il bus in modo da far passare un solo segnale elettrico alla volta. Ritornando ai registri La realizzazione di un registro (unità di memoria) a 4 bit utilizza 4 flip-flop. A ogni colpo di clock (CK) il flip-flop memorizza un nuovo valore ma dimentica il valore precedente. Write (WR) è un segnale che dice quando scrivere, però ho anche bisogno di un segnale di abilitazione (enable EN) perché non tutti i registri devono memorizzare quel determinato valore nello stesso tempo. Avrò anche un segnale di read (RD lettura) che mi dice quale registro è attivo per la lettura. Il disegno sulla pagina successiva rappresenta in modo completo quello che ho appena detto. 15

16 Architettura D 3 d 2 d 1 d 0 CK WR EN q 3 q 2 q 1 q 0 RD MACCHINE A STATI FINITI (FSM) È un circuito che serve per realizzare la logica di controllo. Lo schema qui sotto rappresenta la Macchina di Moore. I n Funzione di stato k Bit di stato k Funzione di futuro (insieme di uscite m flip-flop) k U k Dipende anche dallo stato presente che arriva dai bit di stato Non è l unico modello di macchina a stati finiti; c è anche la Macchina di Mealy che ha un collegamento in più che dagli ingressi I va direttamente alla funzione di uscita e di conseguenza l uscita dipende anche dall ingresso corrente e non solo dai bit di stato. Una macchina a stati finiti può essere anche costituita solamente da un flip-flop e come logica di stato futuro avere una porta NAND; questa macchina a stati finiti ha 1 bit di stato. In questo caso se l ingresso I vale 0 ha un uscita bloccata a 1, mentre se I vale 1 mi genera un segnale periodico che vale la metà rispetto a al clock, se il clock è di 1 GHz il segnale in uscita sarà di 500 MHz, quindi dimezza la velocità del clock. I PALLOGRAMMI mi aiutano a descrivere una macchina a stati finiti a seconda dello stato che assume. Se ho n bit ho 2 n stati possibili. 0 I = 1 I = 0 1 I = 1 0 I =

17 Quaderno virtuale di teoria Se sono nello stato 0 e I vale 1 al colpo di clock si dovrà passare allo stato 1 e lo stesso vale se sono nello stato 0 e I = 1. Mentre se sono nello stato 1 torno allo stato 0 solo se al colpo di clock I = 1. La macchina di Moore, ad esempio, ha 4 stati. Architettura MIPS e Assembler CPU Memoria Periferiche BUS k i fili Registro istruzione (non è possibile accedervi in fase di programmazione) Register file N di registri 0 Bit dentro al registro La MIPS progetta la CPU e vende la licenza di costruzione. La CPU MIPS di riferimento del corso è la R2000/3000 a 32 bit che è di tipo RISC cioè con un set di istruzioni ridotte. I 32 bit della CPU indicano la parola del calcolatore Istruzione ADD L istruzione ADD esegue la somma del contenuto di due registri e ne memorizza il risultato in un 3 registro Per convenzione i registri si indicano con $ seguito dal numero del registro tenendo presente che si inizia a contare da 0. Sintassi dell istruzione: add $13, $14, $15 1 operando Registro dove viene memorizzato il risultato 2 operando Formato dell istruzione in linguaggio macchina 17

18 Architettura L istruzione, in linguaggio macchina, viene rappresentata su 32 bit. I 6 bit più significativi (da 26 a 31) rappresentano il codice operativo (operative code) dell istruzione da eseguire (nel nostro caso sono ) Per specificare gli operandi servono 5 bit perché 2 5 =32. Il formato dell istruzione è di tipo R 15 bit operando 1 operando risultato SHAMT FUNCT In realtà il codice operativo della add è uguale anche a quello di altre operazioni 3 gruppi di bit per indicare gli operandi e dove salvare il risultato Shift Amount 5 bit Function Sono i 6 bit meno significativi Quando l operative code ha 6 zeri entrano in gioco i 6 bit meno significativi, cioè la function, che è l estensione del codice operativo. Per l add, la function è 0x20 (in esadecimale), in binario è: ; sono 8 bit ma ne abbiamo solo 6 a disposizione quindi eliminiamo i primi 2, quindi ottengo: L istruzione sub (sottrazione) ha codice operativo 0x22 cioè in binario. La memoria bit riga = parola di memoria, cella, locazione di memoria. Ci sono 2 32 locazioni di memoria possibili, il che vorrebbe dire che noi teoricamente possiamo avere 4GB di memoria RAM disponibile. Noi pensiamo che la nostra macchina virtuale abbia sempre 4GB di memoria Dentro al circuito di memoria c è un decodificatore che riceve 32 bit che specificano una delle 2 32 possibili locazioni di memoria ed ha anche 32 bit di uscita. Le informazioni arrivano dal BUS. Ricordo che il bus è diviso in 3 sezioni: il Bus dati, il Bus indirizzi (per il MIPS ha 32 bit) e il bus di controllo. Si utilizzano più parole di memoria per un dato che occupa più di 8 bit; posso spostare 4 parole di memoria in contemporanea purché siano adiacenti fra loro cioè con indirizzi vicini. Dalla CPU escono i 32 bit del bus indirizzi e arrivano al decodificatore. Dal decodificatore si attiva un solo filo riferito a una sola parola di memoria. Il contenuto di 8 bit della parola di memoria viene trasferito sul bus dati che li porta alla CPU. Questa è una lettura in memoria. 18

19 Quaderno virtuale di teoria Memoria Bus indirizzi Bus dati Bus controllo Il tratto rosso indica che la CPU fornisce un indirizzo di memoria, mentre il tratto blu indica che dalla memoria arrivano alla CPU i dati. Ogni trasferimento parte con un dato che è l indirizzo della memoria che proviene dalla CPU. Attraverso il bus indirizzi arriva al decodificatore, presente nella memoria, che riconosce l informazione e attiva un solo filo di uscita che va nella memoria vera e propria. Bistabile circuito con 2 stati stabili, sono sempre gli stessi (flip-flop). La memoria non è fatta con bistabili perché costerebbe troppo. Interruttore comandato Dal decoder C D Q Interruttore comandato D Q Read / write Nella scrittura in memoria solo una cella di memoria è coinvolta e devo fare in modo che i dati sul bus interno alla memoria arrivino all ingresso del flip-flop per scrivere i dati. Non posso chiudere contemporaneamente tutti gli interruttori; ci vuole un controllo C che tramite un segnale logico dice che sono in lettura o in scrittura per far si che venga aperto/chiuso l interruttore corretto. Questo segnale parte dalla CPU e arriva alla memoria tramite il bus di controllo. Ritornando al discorso della possibilità di spostare 4 parole di memoria in contemporanea. È possibile eseguire questa operazione solo quando è verificata una determinata condizione: I 2 bit meno significativi dell indirizzo devono essere 0. Quando questa condizione si verifica posso spostare le 4 parole di memoria successive a questo indirizzo. Questo gruppetto si dice che è allineato alla parola del calcolatore (o allineato a 4 byte). 19

20 Architettura Posso suddividere tutta la memoria in vari gruppetti purché la parola di memoria iniziale del gruppetto abbia l indirizzo che termina con due 0. Lo schema sottostante mostra come devono essere allineate le parole di memoria per poterle spostare tutte e 4 in contemporanea Assembler parte 2 Istruzione LW (load word) carica un valore dalla memoria con indirizzo specifico e lo scrive in un registro del register file. Con questa istruzione movimento 32 bit dalla memoria cioè 4 parole di memoria Sintassi dell istruzione lw $19, indirizzo Registro del register file Indirizzo della posizione di memoria L istruzione sw (store word) permette di memorizzare in memoria il contenuto di un registro del register file ed ha sintassi: sw $19, indirizzo Registro del register file Indirizzo della posizione di memoria Entrambi le istruzioni lw e sw hanno formato I cioè Immediate e l indirizzo è la somma di due entità: numero + contenuto registro La sintassi corretta e il formato sono: lw $19, numero($15) Registro base Registro di destinazione (nel register file) Spiazzamento, immediato o offset 20

21 Quaderno virtuale di teoria 10 bit Registro base Destinazione Immediato (ho 16 bit per memorizzarlo) Codice operativo della load word (in esadecimale è 0x23) 1 gruppi da 5 bit per indicare i registri Lo piazzamento mi fornisce una finestra di accesso a una serie di spazi di memoria quindi mi devo solo ricordare del registro base. Esempio: lw $19, 1024($15) $ Lo spiazzamento viene convertito in un numero binario in complemento a 2 su 16 bit quindi io ho un range di valori che è pari alla metà dello spiazzamento in su rispetto al registro base e in giù rispetto al registro base. Se ho offset 0 recupero il contenuto del registro base. L offset per gli spostamenti va incrementato ogni volta di 4 per andare alla parola di memoria successiva, ad esempio se ho offset 8 rispetto al registro base che ho indicato vuol dire che io recupero il contenuto che sta 2 registri sopra al registro base che ho indicato. Ricordo che l offset può essere negativo perché nella conversione in binario si utilizza la notazione in complemento a 2; con offset negativo recupero il contenuto di un registro sotto al registro base (devo comunque ricordare che ho una finestra di accesso che è 2 16 possibili combinazioni) Istruzioni lb e sb (load byte e store byte) Movimento dalla (o nella) memoria 1 byte cioè una sola parola di memoria. Le istruzioni load byte e store byte hanno un formato I come la load word e la store word lb $19, indirizzo sb $19, indirizzo Ciclo fondamentale Ma come fa il registro istruzioni a prendere il valore dell istruzione e non uno a caso? Esiste un registro che contiene l indirizzo dell istruzione o puntatore all istruzione (Instruction Pointer). L Instruction pointer nella realtà viene chiamato Program Counter. Quando ho un dato che funge da indirizzo si chiama puntatore Il pc è in grado di eseguire solamente il ciclo fondamentale che è composto da 4 passaggi: 21

22 Architettura 1. REPERIMENTO DELL ISTRUZIONE (fetch) Tramite il bus indirizzi viene comunicato alla memoria in quale registro leggere e tramite il bus dati arriva l istruzione. Questa operazione è fatta dall hardware 2. DECODIFICA (dell istruzione) Guardo il codice operativo e vedo cosa devo fare 3. ESECUZIONE (specifica di ciascuna istruzione) (4.) INCREMENTO DEL PROGRAM COUNTER (PC = PC + 4 tipico del MIPS perché passo alla parola di memoria successiva) Questo incremento può essere fatto dove si vuole purché sia prima del reperimento di una nuova istruzione. Normalmente questo incremento viene effettuato tra la fase 1 e la fase 2. Si chiama Ciclo Fondamentale perché il pc fa sempre queste cose da quando lo si accende. La macchina, in automatico, è in grado di eseguire una serie di istruzioni che partono da un punto preciso della memoria e continuano in sequenza. Struttura dei registri del MIPS 32 Il MIPS ha 32 registri suddivisi in maniera specifica. Al momento ci occupiamo dei registri da 8 a 15 e dei registri da 16 a 23 I registri da 8 a 15 sono registri temporanei e vengono indicati con la sigla $t seguita da un numero progressivo che va da 0 a 7 Numero registro Nome registro $t0 $t1 $t2 $t3 $t4 $t5 $t6 $t7 I registri da 16 a 23 vengono denominati saved temporary e si indicano con $s seguito da un numero progressivo da 0 a 7 Numero registro Nome registro $s0 $s1 $s2 $s3 $s4 $s5 $s6 $s7 Gli altri registri disponibili vengono utilizzati in fase di scrittura del codice assembly per permettere delle azioni da parte dell utente come ad esempio l input e l output di dati. Esempio completo di una istruzione di somma (sintassi, formato e conversione in hex) Scrivere l istruzione che fa la somma di 3 e 2. $t0 := 3 $t1 := 2 $t2 := risultato 22

23 Quaderno virtuale di teoria La sintassi dell istruzione è: add $t2, $t0, $t1 Il formato dell istruzione è: (si ricorda che la add ha formato R) Operative code $t0 (registro 8) $t1 (registro 9) $t2 (registro 10) Shift Amount Function code (in questo caso è 32 (10) ) Per ottenere la rappresentazione esadecimale raggruppo ogni 4 bit e eseguo la rispettiva conversione in decimale di ogni gruppetto: Il esadecimale è: (16) oppure è anche possibile scrivere 0x Assembler parte 3 Se devo sommare il valore di un registro con una costante che non è memorizzata in nessun registro uso l istruzione addi (add immediate) La sintassi è la seguente: addi $t0, $t1, 100 Il formato dell istruzione è I perché si utilizza l immediato su 16 bit per passare la costante Operative code (in questo caso è 8 in decimale) $t0 1 registro $t1 2 registro Costante (in binario su 16 bit) Devo trasformare 100 in binario: 100 = = Nelle posizioni indicate dall esponente delle potenze di 2 si trova il bit = 1. Flusso di istruzioni Devo inserire, io programmatore, le istruzioni in memoria in modo continuo cosicché la CPU possa eseguirne una dietro l altra per ottenere il cosiddetto flusso di istruzioni. Ma oggi come oggi non è possibile avere una sequenza di istruzioni perché, ad esempio, se devo eseguire una divisione devo eseguire azioni diverse (che non sono in sequenza) a seconda che il divisore sia 0 o no. Questa è chiamata alterazione del flusso. 23

CALCOLATORI ELETTRONICI 15 aprile 2014

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

Dettagli

CALCOLATORI ELETTRONICI 29 giugno 2010

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

Dettagli

CALCOLATORI ELETTRONICI 31 marzo 2015

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

Dettagli

Lezione n.19 Processori RISC e CISC

Lezione n.19 Processori RISC e CISC Lezione n.19 Processori RISC e CISC 1 Processori RISC e Superscalari Motivazioni che hanno portato alla realizzazione di queste architetture Sommario: Confronto tra le architetture CISC e RISC Prestazioni

Dettagli

Architettura MIPS (RISC) Architetture dei Calcolatori (Lettere. Principi di Progettazione ISA MIPS MIPS R3000 ISA. Il Set di Istruzioni MIPS

Architettura MIPS (RISC) Architetture dei Calcolatori (Lettere. Principi di Progettazione ISA MIPS MIPS R3000 ISA. Il Set di Istruzioni MIPS Architettura MIPS (RISC) Architetture dei Calcolatori (Lettere A-I) Il Set di Istruzioni MIPS Ing.. Francesco Lo Presti Sviluppata e progettata a Stanford (USA) Progettata nei primi anni 80 Prodotta e

Dettagli

Codifica dei numeri negativi

Codifica dei numeri negativi E. Calabrese: Fondamenti di Informatica Rappresentazione numerica-1 Rappresentazione in complemento a 2 Codifica dei numeri negativi Per rappresentare numeri interi negativi si usa la cosiddetta rappresentazione

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

Così come le macchine meccaniche trasformano

Così come le macchine meccaniche trasformano DENTRO LA SCATOLA Rubrica a cura di Fabio A. Schreiber Il Consiglio Scientifico della rivista ha pensato di attuare un iniziativa culturalmente utile presentando in ogni numero di Mondo Digitale un argomento

Dettagli

Architettura dei Calcolatori

Architettura dei Calcolatori Architettura dei Calcolatori Sistema di memoria parte prima Ing. dell Automazione A.A. 2011/12 Gabriele Cecchetti Sistema di memoria parte prima Sommario: Banco di registri Generalità sulla memoria Tecnologie

Dettagli

Informatica Applicata

Informatica Applicata Ing. Irina Trubitsyna Concetti Introduttivi Programma del corso Obiettivi: Il corso di illustra i principi fondamentali della programmazione con riferimento al linguaggio C. In particolare privilegia gli

Dettagli

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori"

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori" slide a cura di Salvatore Orlando & Marta Simeoni " Architettura degli Elaboratori 1 Interi unsigned in base 2" Si utilizza un

Dettagli

MIPS Instruction Set 2

MIPS Instruction Set 2 Laboratorio di Architettura 15 aprile 2011 1 Architettura Mips 2 Chiamata a Funzione 3 Esercitazione Registri MIPS reference card: http://refcards.com/docs/waetzigj/mips/mipsref.pdf 32 registri general

Dettagli

Floating Point N = M BE. Notazione in virgola mobile. base. esempi 34.76 104 3.6891 106 = 36.891 105 =368.91 104 12.78 10-3 1.

Floating Point N = M BE. Notazione in virgola mobile. base. esempi 34.76 104 3.6891 106 = 36.891 105 =368.91 104 12.78 10-3 1. Floating Point Notazione in virgola mobile N = M BE mantissa base esponente esempi 34.76 104 3.6891 106 = 36.891 105 =368.91 104 12.78 10-3 1.6273 102 forma normalizzata: la mantissa ha una sola cifra

Dettagli

Architetture CISC e RISC

Architetture CISC e RISC FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Architetture CISC e RISC 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide n.

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997 1 RAPPRESENTAZIONE BINARIA DEI NUMERI Andrea Bobbio Anno Accademico 1996-1997 Numeri Binari 2 Sistemi di Numerazione Il valore di un numero può essere espresso con diverse rappresentazioni. non posizionali:

Dettagli

Esercizi per il recupero del debito formativo:

Esercizi per il recupero del debito formativo: ANNO SCOLASTICO 2005/2006 CLASSE 3 ISC Esercizi per il recupero del debito formativo: Disegnare il diagramma e scrivere la matrice delle transizioni di stato degli automi a stati finiti che rappresentano

Dettagli

Rappresentazione dei numeri in un calcolatore

Rappresentazione dei numeri in un calcolatore Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri

Dettagli

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense Linguaggio del calcolatore Circuiti e reti combinatorie ppendice + dispense Solo assenza o presenza di tensione: o Tante componenti interconnesse che si basano su e nche per esprimere concetti complessi

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Sistemi di numerazione posizionali Rappresentazione dei numeri Rappresentazione dei numeri nei calcolatori rappresentazioni finalizzate ad algoritmi efficienti per le operazioni

Dettagli

I componenti di un Sistema di elaborazione. CPU (central process unit)

I componenti di un Sistema di elaborazione. CPU (central process unit) I componenti di un Sistema di elaborazione. CPU (central process unit) I componenti di un Sistema di elaborazione. CPU (central process unit) La C.P.U. è il dispositivo che esegue materialmente gli ALGORITMI.

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

Un ripasso di aritmetica: Conversione dalla base 10 alla base 16

Un ripasso di aritmetica: Conversione dalla base 10 alla base 16 Un ripasso di aritmetica: Conversione dalla base 1 alla base 16 Dato un numero N rappresentato in base dieci, la sua rappresentazione in base sedici sarà del tipo: c m c m-1... c 1 c (le c i sono cifre

Dettagli

CIRCUITI INTEGRATI ESEMPI: INTEL

CIRCUITI INTEGRATI ESEMPI: INTEL CIRCUITI INTEGRATI Costruzione di circuiti (logici e non) su un substrato di silicio. Non solo la parte attiva, ma anche le connessioni tra le porte. Incredibile miglioramento nelle prestazioni, nell affidabilità

Dettagli

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it

INTRODUZIONE, LINGUAGGIO, HANDS ON. Giuseppe Cirillo g.cirillo@unina.it INTRODUZIONE, LINGUAGGIO, HANDS ON Giuseppe Cirillo g.cirillo@unina.it Il linguaggio C 1972-Dennis Ritchie 1978-Definizione 1990-ANSI C 1966 Martin Richars (MIT) Semplificando CPL usato per sviluppare

Dettagli

Guida rapida all uso di ECM Titanium

Guida rapida all uso di ECM Titanium Guida rapida all uso di ECM Titanium Introduzione Questa guida contiene una spiegazione semplificata del funzionamento del software per Chiputilizzare al meglio il Tuning ECM Titanium ed include tutte

Dettagli

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File

Dettagli

Rappresentazione numeri in virgola mobile

Rappresentazione numeri in virgola mobile Rappresentazione numeri in virgola mobile Un numero non intero può essere rappresentato in infiniti modi quando utilizziamo la notazione esponenziale: Es. 34.5 = 0.345 10 2 = 0.0345 10 3 = 345 10-1 Questo

Dettagli

Descrizioni VHDL Behavioral

Descrizioni VHDL Behavioral 1 Descrizioni VHDL Behavioral In questo capitolo vedremo come la struttura di un sistema digitale è descritto in VHDL utilizzando descrizioni di tipo comportamentale. Outline: process wait statements,

Dettagli

LA NOTAZIONE SCIENTIFICA

LA NOTAZIONE SCIENTIFICA LA NOTAZIONE SCIENTIFICA Definizioni Ricordiamo, a proposito delle potenze del, che = =.000 =.000.000.000.000 ovvero n è uguale ad seguito da n zeri. Nel caso di potenze con esponente negativo ricordiamo

Dettagli

Esempi di algoritmi. Lezione III

Esempi di algoritmi. Lezione III Esempi di algoritmi Lezione III Scopo della lezione Implementare da zero algoritmi di media complessità. Verificare la correttezza di un algoritmo eseguendolo a mano. Imparare a valutare le prestazioni

Dettagli

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 1.1 Che cos è un algoritmo CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 Gli algoritmi sono metodi per la soluzione di problemi. Possiamo caratterizzare un problema mediante i dati di cui si dispone all inizio

Dettagli

Introduzione ad Access

Introduzione ad Access Introduzione ad Access Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

Dettagli

ALGORITMI 1 a Parte. di Ippolito Perlasca. Algoritmo:

ALGORITMI 1 a Parte. di Ippolito Perlasca. Algoritmo: ALGORITMI 1 a Parte di Ippolito Perlasca Algoritmo: Insieme di regole che forniscono una sequenza di operazioni atte a risolvere un particolare problema (De Mauro) Procedimento che consente di ottenere

Dettagli

ESTRAZIONE DI RADICE

ESTRAZIONE DI RADICE ESTRAZIONE DI RADICE La radice è l operazione inversa dell elevamento a potenza. L esponente della potenza è l indice della radice che può essere: quadrata (); cubica (); quarta (4); ecc. La base della

Dettagli

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno La Vista CAS L ambiente di lavoro Le celle Assegnazione di una variabile o di una funzione / visualizzazione

Dettagli

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO... Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...

Dettagli

MODBUS-RTU per. Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie. Expert NANO 2ZN

MODBUS-RTU per. Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie. Expert NANO 2ZN per Expert NANO 2ZN Specifiche protocollo di comunicazione MODBUS-RTU per controllo in rete dispositivi serie Expert NANO 2ZN Nome documento: MODBUS-RTU_NANO_2ZN_01-12_ITA Software installato: NANO_2ZN.hex

Dettagli

IL SAMPLE AND HOLD UNIVERSITÀ DEGLI STUDI DI MILANO. Progetto di Fondamenti di Automatica. PROF.: M. Lazzaroni

IL SAMPLE AND HOLD UNIVERSITÀ DEGLI STUDI DI MILANO. Progetto di Fondamenti di Automatica. PROF.: M. Lazzaroni UNIVERSITÀ DEGLI STUDI DI MILANO FACOLTÀ DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea in Informatica IL SAMPLE AND HOLD Progetto di Fondamenti di Automatica PROF.: M. Lazzaroni Anno Accademico

Dettagli

Fondamenti di Informatica 300 ed oltre esercizi di teoria

Fondamenti di Informatica 300 ed oltre esercizi di teoria Fondamenti di Informatica 300 ed oltre esercizi di teoria Fulvio Corno Antonio Lioy Politecnico di Torino Dip. di Automatica e Informatica v. 4.02 01/09/2009 Indice 1 Introduzione 2 1.1 Nota metodologica........................................

Dettagli

Materiale di approfondimento: numeri interi relativi in complemento a uno

Materiale di approfondimento: numeri interi relativi in complemento a uno Materiale di approfondimento: numeri interi relativi in complemento a uno Federico Cerutti AA. 2011/2012 Modulo di Elementi di Informatica e Programmazione http://apollo.ing.unibs.it/fip/ 2011 Federico

Dettagli

1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame.

1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame. 1. Si consideri uno spazio di indirizzamento logico di otto pagine di 1024 parole ognuna, mappate su una memoria fisica di 32 frame. (a) Da quanti bit è costituito l indirizzo logico? (b) Da quanti bit

Dettagli

Introduzione alle pipeline e all'architettura RISC

Introduzione alle pipeline e all'architettura RISC Introduzione alle pipeline e all'architettura RISC Introduzione Pipeline Processori RISC Salti Appendice A: Storia Bibliografia Versione con i frame Versione in pdf Architettura del processore Una possibile

Dettagli

Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento.

Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento. Excel: le funzioni Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento. DEFINIZIONE: Le funzioni sono dei procedimenti

Dettagli

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 02 Tipi semplici in C

Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009. Lab 02 Tipi semplici in C Fondamenti di Informatica e Laboratorio T-AB Ingengeria dell Automazione a.a. 2008/2009 Lab 02 Tipi semplici in C Obiettivo dell esercitazione Acquistare familiarità con i tipi di dato semplici supportati

Dettagli

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette.

Dettagli

ESEMPIO 1: eseguire il complemento a 10 di 765

ESEMPIO 1: eseguire il complemento a 10 di 765 COMPLEMENTO A 10 DI UN NUMERO DECIMALE Sia dato un numero N 10 in base 10 di n cifre. Il complemento a 10 di tale numero (N ) si ottiene sottraendo il numero stesso a 10 n. ESEMPIO 1: eseguire il complemento

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org.

Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org. Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org. Nuovo documento Anteprima di stampa Annulla Galleria Apri Controllo ortografico Ripristina Sorgente dati Salva Controllo

Dettagli

GENERALITA SUI CONVERTITORI DAC E ADC CONVERTITORI DIGITALE-ANALOGICO DAC

GENERALITA SUI CONVERTITORI DAC E ADC CONVERTITORI DIGITALE-ANALOGICO DAC I.T.I. Modesto PANETTI A R I ia Re David, 86-8-54.54. - 75 ARI Fax 8-54.64.3 Internet http://www.itispanetti.it email : ATF5C@istruzione.it Tesina sviluppata dall alunno Antonio Gonnella della classe 5

Dettagli

Il Concetto di Processo

Il Concetto di Processo Processi e Thread Il Concetto di Processo Il processo è un programma in esecuzione. È l unità di esecuzione all interno del S.O. Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1 DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica

Dettagli

ALLEGATO al verbale della riunione del 3 Settembre 2010, del Dipartimento di Elettrotecnica e Automazione.

ALLEGATO al verbale della riunione del 3 Settembre 2010, del Dipartimento di Elettrotecnica e Automazione. ALLEGATO al verbale della riunione del 3 Settembre 2010, del Dipartimento di Elettrotecnica e Automazione. COMPETENZE MINIME- INDIRIZZO : ELETTROTECNICA ED AUTOMAZIONE 1) CORSO ORDINARIO Disciplina: ELETTROTECNICA

Dettagli

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. "Generate debugging information"

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. Generate debugging information FASE DEBUGGING: Prima della compilazione, si devono inserire 1 nel progetto informazioni per il debug cioè si devono visualizzare le opzioni di progetto seguendo il percorso: controllando che la voce Genera

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Test di comunicazione tra due LOGO! 0BA7: Master - Master

Test di comunicazione tra due LOGO! 0BA7: Master - Master Industry Test di comunicazione tra due LOGO! 0BA7: Master - Master Dispositivi utilizzati: - 2 LOGO! 0BA7 (6ED1 052-1MD00-0AB7) - Scalance X-208 LOGO! 0BA7 Client IP: 192.168.0.1 LOGO! 0BA7 Server IP:

Dettagli

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate.

Comandi filtro: sed. Se non si specificano azioni, sed stampa sullo standard output le linee in input, lasciandole inalterate. Comandi filtro: sed Il nome del comando sed sta per Stream EDitor e la sua funzione è quella di permettere di editare il testo passato da un comando ad un altro in una pipeline. Ciò è molto utile perché

Dettagli

Determinare la grandezza della sottorete

Determinare la grandezza della sottorete Determinare la grandezza della sottorete Ogni rete IP possiede due indirizzi non assegnabili direttamente agli host l indirizzo della rete a cui appartiene e l'indirizzo di broadcast. Quando si creano

Dettagli

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software.

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software. Generalità Definizione Un firewall è un sistema che protegge i computer connessi in rete da attacchi intenzionali mirati a compromettere il funzionamento del sistema, alterare i dati ivi memorizzati, accedere

Dettagli

MANUALE UTENTE DEL SOFTWARE DI GESTIONE DEGLI ART. SDVR040A/SDVR080A/SDVR160A

MANUALE UTENTE DEL SOFTWARE DI GESTIONE DEGLI ART. SDVR040A/SDVR080A/SDVR160A MANUALE UTENTE DEL SOFTWARE DI GESTIONE DEGLI ART. SDVR040A/SDVR080A/SDVR160A Leggere attentamente questo manuale prima dell utilizzo e conservarlo per consultazioni future Via Don Arrigoni, 5 24020 Rovetta

Dettagli

Energy Studio Manager Manuale Utente USO DEL SOFTWARE

Energy Studio Manager Manuale Utente USO DEL SOFTWARE Energy Studio Manager Manuale Utente USO DEL SOFTWARE 1 ANALYSIS.EXE IL PROGRAMMA: Una volta aperto il programma e visualizzato uno strumento il programma apparirà come nell esempio seguente: Il programma

Dettagli

Trattamento aria Regolatore di pressione proporzionale. Serie 1700

Trattamento aria Regolatore di pressione proporzionale. Serie 1700 Trattamento aria Serie 7 Serie 7 Trattamento aria Trattamento aria Serie 7 Serie 7 Trattamento aria +24VDC VDC OUTPUT MICROPROCESS. E P IN EXH OUT Trattamento aria Serie 7 Serie 7 Trattamento aria 7 Trattamento

Dettagli

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Rappresentazione concreta di insiemi e Hash table Copyright 2006-2015 by Claudio Salati. Lez. 9a 1 Rappresentazione

Dettagli

Excel basi e funzioni

Excel basi e funzioni Esercitazione di Laboratorio Excel basi e funzioni Contenuto delle celle 1. Testo 2. Numeri 3. Formule Formattazione delle celle (1) Formattazione del testo e dei singoli caratteri: Orientamento a 45 Allineamento

Dettagli

Dipartimento di Sistemi e Informatica Università degli Studi di Firenze. Dev-C++ Ing. Michele Banci 27/03/2007 1

Dipartimento di Sistemi e Informatica Università degli Studi di Firenze. Dev-C++ Ing. Michele Banci 27/03/2007 1 Dipartimento di Sistemi e Informatica Università degli Studi di Firenze Dev-C++ Ing. Michele Banci 27/03/2007 1 Utilizzare Dev-C++ Tutti i programmi che seranno realizzati richiedono progetti separati

Dettagli

SubnetMask: come funzionano e come si calcolano le sottoreti (SpySystem.it)

SubnetMask: come funzionano e come si calcolano le sottoreti (SpySystem.it) SubnetMask: come funzionano e come si calcolano le sottoreti (SpySystem.it) In una rete TCP/IP, se un computer (A) deve inoltrare una richiesta ad un altro computer (B) attraverso la rete locale, lo dovrà

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

WAN 80.80.80.80 / 24. L obiettivo è quello di mappare due server web interni (porta 80) associandoli agli indirizzi IP Pubblici forniti dall ISP.

WAN 80.80.80.80 / 24. L obiettivo è quello di mappare due server web interni (porta 80) associandoli agli indirizzi IP Pubblici forniti dall ISP. Configurazione di indirizzi IP statici multipli Per mappare gli indirizzi IP pubblici, associandoli a Server interni, è possibile sfruttare due differenti metodi: 1. uso della funzione di Address Translation

Dettagli

Rapida Introduzione all uso del Matlab Ottobre 2002

Rapida Introduzione all uso del Matlab Ottobre 2002 Rapida Introduzione all uso del Matlab Ottobre 2002 Tutti i tipi di dato utilizzati dal Matlab sono in forma di array. I vettori sono array monodimensionali, e così possono essere viste le serie temporali,

Dettagli

Informatica per la comunicazione" - lezione 9 -

Informatica per la comunicazione - lezione 9 - Informatica per la comunicazione" - lezione 9 - Protocolli di livello intermedio:" TCP/IP" IP: Internet Protocol" E il protocollo che viene seguito per trasmettere un pacchetto da un host a un altro, in

Dettagli

LATCH E FLIP-FLOP. Fig. 1 D-latch trasparente per ck=1

LATCH E FLIP-FLOP. Fig. 1 D-latch trasparente per ck=1 LATCH E FLIPFLOP. I latch ed i flipflop sono gli elementi fondamentali per la realizzazione di sistemi sequenziali. In entrambi i circuiti la temporizzazione è affidata ad un opportuno segnale di cadenza

Dettagli

Informatica. Scopo della lezione

Informatica. Scopo della lezione 1 Informatica per laurea diarea non informatica LEZIONE 1 - Cos è l informatica 2 Scopo della lezione Introdurre le nozioni base della materia Definire le differenze tra hardware e software Individuare

Dettagli

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma Dev C++ Note di utilizzo 1 Prerequisiti Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma 2 1 Introduzione Lo scopo di queste note è quello di diffondere la conoscenza

Dettagli

SIMATIC. SCL per S7-300/400 Programmazione di blocchi. Prefazione, Contenuto. Parte 1: Sviluppo di programmi. Parte 2: Uso e test

SIMATIC. SCL per S7-300/400 Programmazione di blocchi. Prefazione, Contenuto. Parte 1: Sviluppo di programmi. Parte 2: Uso e test Prefazione, Contenuto Parte 1: Sviluppo di programmi Parte 2: Uso e test SIMATIC Parte 3: Descrizione del linguaggio Programmazione di blocchi Appendici Glossario, Indice analitico Manuale Numero di ordinazione

Dettagli

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO CLSMS SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO Sommario e introduzione CLSMS SOMMARIO INSTALLAZIONE E CONFIGURAZIONE... 3 Parametri di configurazione... 4 Attivazione Software...

Dettagli

Modello OSI e architettura TCP/IP

Modello OSI e architettura TCP/IP Modello OSI e architettura TCP/IP Differenza tra modello e architettura - Modello: è puramente teorico, definisce relazioni e caratteristiche dei livelli ma non i protocolli effettivi - Architettura: è

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

Quando troncare uno sviluppo in serie di Taylor

Quando troncare uno sviluppo in serie di Taylor Quando troncare uno sviluppo in serie di Taylor Marco Robutti October 13, 2014 Lo sviluppo in serie di Taylor di una funzione è uno strumento matematico davvero molto utile, e viene spesso utilizzato in

Dettagli

Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore)

Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore) Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore) Autore: Matteo Veroni Email: matver87@gmail.com Sito web: matteoveroni@altervista.org Fonti consultate: http://openmeetings.apache.org/

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

Flops. Ad esempio nel caso del prodotto classico tra matrici, vengono eseguite 2*N 3 operazioni, quindi ad esempio:

Flops. Ad esempio nel caso del prodotto classico tra matrici, vengono eseguite 2*N 3 operazioni, quindi ad esempio: Flops FLOPS e' un'abbreviazione di Floating Point Operations Per Second e indica il numero di operazioni in virgola mobile eseguite in un secondo dalla CPU. (Top500 e il BlueGene) Ad esempio nel caso del

Dettagli

Progetti reali con ARDUINO

Progetti reali con ARDUINO Progetti reali con ARDUINO Introduzione alla scheda Arduino (parte 2ª) ver. Classe 3BN (elettronica) marzo 22 Giorgio Carpignano I.I.S. Primo LEVI - TORINO Il menù per oggi Lettura dei pulsanti Comunicazione

Dettagli

Dati importati/esportati

Dati importati/esportati Dati importati/esportati Dati importati Al workspace MATLAB script Dati esportati file 1 File di testo (.txt) Spreadsheet Database Altro Elaborazione dati Grafici File di testo Relazioni Codice Database

Dettagli

Bus di sistema. Bus di sistema

Bus di sistema. Bus di sistema Bus di sistema Permette la comunicazione (scambio di dati) tra i diversi dispositivi che costituiscono il calcolatore E costituito da un insieme di fili metallici che danno luogo ad un collegamento aperto

Dettagli

Semantica operazionale dei linguaggi di Programmazione

Semantica operazionale dei linguaggi di Programmazione Semantica operazionale dei linguaggi di Programmazione Oggetti sintattici e oggetti semantici Rosario Culmone, Luca Tesei Lucidi tratti dalla dispensa Elementi di Semantica Operazionale R. Barbuti, P.

Dettagli

Programmare in assembly in GNU/Linux con sintassi AT&T

Programmare in assembly in GNU/Linux con sintassi AT&T Programmare in assembly in GNU/Linux con sintassi AT&T Fulvio Ferroni fulvioferroni@teletu.it 2011.08.05 Questo documento intende dare le basi essenziali per la programmazione assembly in ambiente GNU/Linux

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello della Web Application 5 3 Struttura della web Application 6 4 Casi di utilizzo della Web

Dettagli

Appunti di Sistemi Operativi. Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo

Appunti di Sistemi Operativi. Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo Appunti di Sistemi Operativi Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo Indice 1 Cenni su alcuni algoritmi del Kernel di Unix 1 1.1 Elementi di Unix Internals.................................

Dettagli

GUIDA RAPIDA emagister-agora Edizione BASIC

GUIDA RAPIDA emagister-agora Edizione BASIC GUIDA RAPIDA emagister-agora Edizione BASIC Introduzione a emagister-agora Interfaccia di emagister-agora Configurazione dell offerta didattica Richieste d informazioni Gestione delle richieste d informazioni

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione

Dettagli

Procedura corretta per mappare con ECM Titanium

Procedura corretta per mappare con ECM Titanium Procedura corretta per mappare con ECM Titanium Introduzione: In questo documento troverete tutte le informazioni utili per mappare correttamente con il software ECM Titanium, partendo dalla lettura del

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP

Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP Protocolli di rete Sommario Introduzione ai protocolli di rete Il protocollo NetBEUI Il protocollo AppleTalk Il protocollo DLC Il protocollo NWLink Il protocollo TCP/IP Configurazione statica e dinamica

Dettagli

Cos è un protocollo? Ciao. Ciao 2:00. tempo. Un protocollo umano e un protocollo di reti di computer:

Cos è un protocollo? Ciao. Ciao 2:00. <file> tempo. Un protocollo umano e un protocollo di reti di computer: Cos è un protocollo? Un protocollo umano e un protocollo di reti di computer: Ciao Ciao Hai l ora? 2:00 tempo TCP connection request TCP connection reply. Get http://www.di.unito.it/index.htm Domanda:

Dettagli

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it il server? virtualizzalo!! Se ti stai domandando: ma cosa stanno dicendo? ancora non sai che la virtualizzazione è una tecnologia software, oggi ormai consolidata, che sta progressivamente modificando

Dettagli

INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02

INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02 INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02 Download Si può scaricare gratuitamente la versione per il proprio sistema operativo (Windows, MacOS, Linux) dal sito: http://www.codeblocks.org

Dettagli