1 Fondamenti di Informatica E-mail: [email protected] Monica Bianchini Dipartimento di Ingegneria...

98
1 Fondamenti di Fondamenti di Informatica Informatica E-mail: E-mail: [email protected] [email protected] Monica Bianchini Monica Bianchini Dipartimento di Ingegneria Dipartimento di Ingegneria dell’Informazione dell’Informazione ENIAC (1946 ca.) ENIAC (1946 ca.) ENIAC Il primo calcolatore elettronico, l’ENIAC Electronical Numerical Integrator and Electronical Numerical Integrator and Calculator Calculator nacque per esigenze belliche (per il calcolo di tavole balistiche). Venne commissionato dal Dipartimento di Guerra degli Stati Uniti all’Università della Pennsylvania, ed il suo prototipo fu realizzato alla fine della seconda guerra mondiale, nel 1946. L’ENIAC, per la cui costruzione furono usate 18000 valvole termoioniche, occupava una stanza lunga più di 30 metri e dissipava una quantità enorme di energia elettrica. L’impiego di componenti elettroniche, tuttavia, lo rendeva capace di eseguire 300 moltiplicazioni al secondo, molte più dei precedenti calcolatori elettromeccanici.

Transcript of 1 Fondamenti di Informatica E-mail: [email protected] Monica Bianchini Dipartimento di Ingegneria...

Page 1: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

1

Fondamenti di InformaticaFondamenti di Informatica

E-mail: E-mail: [email protected]@ing.unisi.it

Monica BianchiniMonica BianchiniDipartimento di Ingegneria dell’InformazioneDipartimento di Ingegneria dell’Informazione

ENIAC (1946 ca.)ENIAC (1946 ca.)

ENIAC

Il primo calcolatore elettronico, l’ENIAC Electronical Numerical Integrator and CalculatorElectronical Numerical Integrator and Calculator nacque per esigenze belliche (per il calcolo di tavole balistiche). Venne commissionato dal Dipartimento di Guerra degli Stati Uniti all’Università della Pennsylvania, ed il suo prototipo fu realizzato alla fine della seconda guerra mondiale, nel 1946.

L’ENIAC, per la cui costruzione furono usate 18000 valvole termoioniche, occupava una stanza lunga più di 30 metri e dissipava una quantità enorme di energia elettrica. L’impiego di componenti elettroniche, tuttavia, lo rendeva capace di eseguire 300 moltiplicazioni al secondo, molte più dei precedenti calcolatori elettromeccanici.

ENIAC

Il primo calcolatore elettronico, l’ENIAC Electronical Numerical Integrator and CalculatorElectronical Numerical Integrator and Calculator nacque per esigenze belliche (per il calcolo di tavole balistiche). Venne commissionato dal Dipartimento di Guerra degli Stati Uniti all’Università della Pennsylvania, ed il suo prototipo fu realizzato alla fine della seconda guerra mondiale, nel 1946.

L’ENIAC, per la cui costruzione furono usate 18000 valvole termoioniche, occupava una stanza lunga più di 30 metri e dissipava una quantità enorme di energia elettrica. L’impiego di componenti elettroniche, tuttavia, lo rendeva capace di eseguire 300 moltiplicazioni al secondo, molte più dei precedenti calcolatori elettromeccanici.

Page 2: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

2

L’algebra di BooleL’algebra di Booleda Analisi Matematica della Logica (1847) al progetto degli elaboratori digitali

Sistemi di numerazioneSistemi di numerazioneda decimale a binario, a esadecimale: l’alfabeto dell’elaboratore

La rappresentazione dei datiLa rappresentazione dei dati e e l’aritmetica degli elaboratoril’aritmetica degli elaboratoridai bit ai numeri, ai testi, alle immagini, alla musica, ai video in digitale

La struttura del calcolatoreLa struttura del calcolatoreda ENIAC al PC, ad HAL2000: cosa c’è “sotto” ?

SommarioSommario

UNIVAC (1951)UNIVAC (1951)

UNIVAC

Il primo calcolatore concepito ed impostato come prodotto commerciale, fu realizzato da Eckert e Mauchly (gli stessi costruttori dell’ENIAC) per l’Ufficio Centrale di Statistica degli Stati Uniti.

L’algebra di Boole

Fu teorizzata dal matematico inglese George Boole (18101864) nel lavoro “Analisi Matematica della Logica”, pubblicato nel 1847. Include un insieme di operazioni su variabili logiche (o variabili booleane), che possono assumere i due soli valori true true e falsefalse, indicati da 1 e 0. Le tecniche sviluppate nell’algebra booleana possono essere applicate all’analisi ed alla progettazione dei circuiti elettronici, poiché essi sono realizzati con dispositivi che possono assumere solo due stati.

Su insiemi di costanti e variabili logiche possono essere definite funzioni che hanno esse stesse la caratteristica di assumere due soli valori. La definizione di una funzione booleana può essere effettuata per mezzo di una tabella di veritàtabella di verità, che indica il valore della funzione in corrispondenza di ogni possibile configurazione dei valori degli argomenti. Le funzioni booleane possono essere scritte e manipolate anche con metodi algebrici, dato un insieme di funzioni (o operazioni) elementari tramite le quali poter esprimere ogni altra funzione.

UNIVAC

Il primo calcolatore concepito ed impostato come prodotto commerciale, fu realizzato da Eckert e Mauchly (gli stessi costruttori dell’ENIAC) per l’Ufficio Centrale di Statistica degli Stati Uniti.

L’algebra di Boole

Fu teorizzata dal matematico inglese George Boole (18101864) nel lavoro “Analisi Matematica della Logica”, pubblicato nel 1847. Include un insieme di operazioni su variabili logiche (o variabili booleane), che possono assumere i due soli valori true true e falsefalse, indicati da 1 e 0. Le tecniche sviluppate nell’algebra booleana possono essere applicate all’analisi ed alla progettazione dei circuiti elettronici, poiché essi sono realizzati con dispositivi che possono assumere solo due stati.

Su insiemi di costanti e variabili logiche possono essere definite funzioni che hanno esse stesse la caratteristica di assumere due soli valori. La definizione di una funzione booleana può essere effettuata per mezzo di una tabella di veritàtabella di verità, che indica il valore della funzione in corrispondenza di ogni possibile configurazione dei valori degli argomenti. Le funzioni booleane possono essere scritte e manipolate anche con metodi algebrici, dato un insieme di funzioni (o operazioni) elementari tramite le quali poter esprimere ogni altra funzione.

Page 3: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

3

L’algebra di BooleL’algebra di Boole

Page 4: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

4

Algebra BooleanaAlgebra Booleana

Contempla due costanti 00 e 11 (falsofalso e verovero)Corrispondono a due stati che si escludono a vicendaPossono descrivere lo stato di apertura o chiusura di un generico contatto o di un circuito a più contatti

Si definiscono delle operazioni fra i valori booleani:ANDAND, OROR, NOTNOT sono gli operatori fondamentali

0 1

Le operazioni AND e OR sono operazioni binarie, l’operazione NOT è unaria. Nella valutazione delle espressioni booleane esiste una relazione di precedenza fra gli operatori NOT, AND e OR, nell’ordine in cui sono stati elencati; le parentesi vengono utilizzate nel modo consueto.

Le operazioni AND e OR sono operazioni binarie, l’operazione NOT è unaria. Nella valutazione delle espressioni booleane esiste una relazione di precedenza fra gli operatori NOT, AND e OR, nell’ordine in cui sono stati elencati; le parentesi vengono utilizzate nel modo consueto.

Page 5: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

5

L’operazione di ORL’operazione di OR

Si definisce l’operazione di somma logicasomma logica (OR):il valore della somma logica è il simbolo 1 se il valore di almeno uno degli operandi è il simbolo 1

0

0

0

1

0+0 0+1

0+0 = 00+1 = 11+0 = 11+1 = 1

1

1

1

0

1+0 1+1

Page 6: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

6

L’operazione di ANDL’operazione di AND

Si definisce l’operazione di prodotto logicoprodotto logico (AND):il valore del prodotto logico è il simbolo 1 se il valore di tutti gli operandi è il simbolo 1

00 = 001 = 010 = 011 = 1

11

11

01

10

10

01

00

00

Page 7: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

7

La negazione NOTLa negazione NOT

Si definisce l’operatore di negazionenegazione (NOT):l’operatore inverte il valore della costante su cui opera

0 = 11 = 0

dalla definizione…

0 = 01 = 1

Page 8: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

8

Variabili binarieVariabili binarie

Una variabile binaria indipendente può assumere uno dei due valori 0 e 1

Date n variabili binarie indipendenti la loro somma logica (OR) è

x0

1

x1+ x2+ …+ xn =

1 se almeno una xi vale 1

0 se x1= x2= …= xn = 0

Page 9: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

9

AND e NOT con variabili binarieAND e NOT con variabili binarie

x1 x2 … xn =

0 se almeno una xi vale 0

1 se x1= x2= …= xn = 1

x = 0 se x = 1x = 1 se x = 0

L’elemento x’ = NOT(x) viene detto complementocomplemento di x. Il complemento è unico.L’elemento x’ = NOT(x) viene detto complementocomplemento di x. Il complemento è unico.

Page 10: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

10

Alcune identitàAlcune identità

x + 1 = 1

x + 0 = x

x + x = x

x 1 = xx 0 = 0 x x = x

x 1 = x

1 1 = 101 = 0

x = 0 x = 1

OK!OK!

0 è l’elemento neutroelemento neutro per l’operazione di OR; 1 è l’elemento neutro per l’AND. Gli elementi neutri sono unici.

La legge x + x = x·x = x è detta legge dell’idempotenzalegge dell’idempotenza.

0 è l’elemento neutroelemento neutro per l’operazione di OR; 1 è l’elemento neutro per l’AND. Gli elementi neutri sono unici.

La legge x + x = x·x = x è detta legge dell’idempotenzalegge dell’idempotenza.

Page 11: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

11

Per gli operatori AND e OR valgono le seguenti proprietà:

Per l’operatore NOT si provano le seguenti identità:

Altre proprietàAltre proprietà

commutativacommutativa x1+x2 = x2+x1 x1 x2 = x2 x1

associativaassociativa x1+x2+x3 = x1+(x2+x3) x1 x2 x3 = x1(x2 x3)

distributiva deldistributiva del prodotto rispetto alla sommaprodotto rispetto alla somma x1 x2 + x1 x3 =

x1(x2+x3)

x + x = 1x x = 0

x = x

Page 12: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

12

Date n variabili binarie indipendenti x1, x2,…, xn, queste possono assumere 2n configurazioni distinte

Una configurazione specifica è individuata univocamente da un AND di tutte le variabili, dove quelle corrispondenti ai valori 0 compaiono negate

Configurazioni delle variabiliConfigurazioni delle variabili

Ad esempio per n=3 si hanno 8 configurazioni

x1x2x3000 001 010 011100 101 110 111

x1x2x3010

Page 13: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

13

Una variabile y è una funzione delle n variabili indipendenti x1, x2,…, xn, se esiste un criterio che fa corrispondere in modo univoco ad ognuna delle 2n configurazioni delle x un valore di y

Una rappresentazione esplicita di una funzione è la tabella di veritàtabella di verità, in cui si elencano tutte le possibili combinazioni di x1, x2, …, xn, con associato il valore di y

Funzioni logicheFunzioni logiche

y = F(x1,x2,…,xn)

x1 x2 y0 0 00 1 11 0 11 1 1

y = x1+x2

Page 14: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

14

Una tabella di veritàUna tabella di verità

Date 3 variabili booleane (A,B,C) si scrive la funzione F che vale 1 quando solo due di esse hanno valore 1

A B C F0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 01 0 1 11 1 0 11 1 1 0

Si può scrivere la funzione come somma logica delle configurazioni corrispondenti agli 1

F(A,B,C) = ABC + ABC + ABC

Forma canonica: somma di prodotti (OR di AND)Forma canonica: somma di prodotti (OR di AND) tutte le funzioni logiche si possono scrivere in questa forma

Page 15: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

15

Un esempio: lo XORUn esempio: lo XOR

x1 x2 XOR0 0 00 1 11 0 11 1 0

XOR = x1x2 + x1x2

ESEMPIESEMPI

1) La legge dell’assorbimento legge dell’assorbimento x1+ x1· x2 = x1

2) Le leggi di De Morgan leggi di De Morgan

(x1+ x2)' = x1’· x2’ ( x1 · x2)’ = x1’+ x2’ ( ’ un modo alternativo per indicare la negazione).

Dalle leggi di De Morgan si evince che la scelta delle funzioni OR, AND e NOT, come funzioni primitive, è ridondante. L’operazione logica AND può essere espressa in funzione delle operazioni OR e NOT; in modo analogo, l’operazione OR può essere espressa tramite AND e NOT.

3) Le relazioni stabilite sono generalmente applicate nelle trasformazioni di funzioni booleane in altre equivalenti, ma di più facile realizzazione circuitale.

ESEMPIESEMPI

1) La legge dell’assorbimento legge dell’assorbimento x1+ x1· x2 = x1

2) Le leggi di De Morgan leggi di De Morgan

(x1+ x2)' = x1’· x2’ ( x1 · x2)’ = x1’+ x2’ ( ’ un modo alternativo per indicare la negazione).

Dalle leggi di De Morgan si evince che la scelta delle funzioni OR, AND e NOT, come funzioni primitive, è ridondante. L’operazione logica AND può essere espressa in funzione delle operazioni OR e NOT; in modo analogo, l’operazione OR può essere espressa tramite AND e NOT.

3) Le relazioni stabilite sono generalmente applicate nelle trasformazioni di funzioni booleane in altre equivalenti, ma di più facile realizzazione circuitale.

Page 16: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

16

Un circuito con due interruttoriUn circuito con due interruttori

I due interruttori corrispondono a due variabili (A,B) a valori booleani le variabili assumono i due valori 0 e 1 che corrispondono alle due posizioni dell’interruttore

A B L

0 0 10 1 01 0 01 1 1

L = AB+ABA B

A B0

11

0

A=1 B=0

L

A B

A B0

11

0

A=1 B=1

L

A B

A B0

11

0

A=0 B=1

L

A B

A B0

11

0

A=0 B=0

L

Page 17: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

17

Un esercizioUn esercizio

Progettare un circuito per accendere e spegnere una lampada da uno qualsiasi di tre interruttori indipendenti

A B C

1 1 1

0 0 0

A B C

1 1

0

1

0 0

0 00

0 01

Cambia lostato di uninterruttorequalsiasi

L = 0

L = 1

Page 18: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

18

Analisi delle combinazioniAnalisi delle combinazioni

Si considera cosa succede a partire dalla configurazione di partenza, cambiando lo stato di un interruttore per volta

A B C

0 00

L = 0

L = 1A B C

0 10

A B C

0 01

L = 1

A B C

1 00

L = 1 L = 0A B C

1 01

A B C

1 11

L = 10 11

A B CL = 0

1 10

A B CL = 0

Page 19: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

19

Scrittura della funzione logicaScrittura della funzione logica

A B C L0 0 0 00 0 1 10 1 0 10 1 1 01 0 0 11 0 1 01 1 0 01 1 1 1

L = ABC + ABC + ABC + ABC

Page 20: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

20

Come collegare gli interruttoriCome collegare gli interruttori

Si può manipolare l’espressione di L usando la proprietà distributiva dell’AND rispetto all’OR

L = A (BC + BC) + A (BC + BC)

L = ABC + ABC + ABC + ABC

A

A

B

B

C

C

C

CB

B A

A

B

B

C

C

C

CB

B

1 0 0 1 0 1

Page 21: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

21

Sistemi di numerazioneSistemi di numerazione

Page 22: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

22

Sistemi di numerazioneSistemi di numerazione

Sistemi di numerazione posizionaliposizionali:

La basebase del sistema di numerazioneLe cifrecifre del sistema di numerazione

Il numero è scritto specificando le cifre in ordine ed il suo valore dipende dalla posizione relativaposizione relativa delle cifreEsempioEsempio: Il sistema decimale (Base 10)

Cifre : 0 1 2 3 4 5 6 7 8 9

5641 = 5·103 + 6·102 + 4·101 + 1·100

Posizione: 3 2 1 0

Page 23: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

23

Sistemi in base BSistemi in base B

La base definisce il numero di cifre diverse nel sistema di numerazioneLa cifra di minor valore è sempre lo 0; le altre sono, nell’ordine, 1,2,…,B1; se B>10 occorre introdurre B10 simboli in aggiunta alle cifre decimali

N = cnBn+cn-1Bn-1+...+c2B2+c1B1+c0B0

Un numero frazionariofrazionario N’ si rappresenta come (0,c1c2…cn)B

Un numero interointero N si rappresenta con la scrittura (cncn-1…c2c1c0)B

N’ = c1B-1+c2B-2+...+cnB-n

ccnn è la cifra più significativacifra più significativa, cc00 la meno significativameno significativa

Page 24: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

24

Numeri interi senza segnoNumeri interi senza segno

Con n cifre in base B si rappresentano tutti i numeri interi positivi da 0 a Bn1 (Bn numeri distinti)

EsempioEsempio: base 10

2 cifre: da 0 a 1021 = 99

000102….9899

EsempioEsempio: base 2

2 cifre: da 0 a 221 = 3

00011011

102 = 100 valori

22 = 4 valori

Page 25: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

25

Il sistema binario (B=2)Il sistema binario (B=2)

La base 2 è la più piccola per un sistema di numerazioneLa base 2 è la più piccola per un sistema di numerazione

Cifre: 0 1 bitbit (binary digitbinary digit)

EsempiEsempi:

(101101)2 = 125 + 024 + 123 + 122 + 021 + 120 = 32 + 0 + 8 + 4 + 0 + 1 = (45)10

(0,0101)2 = 02-1 + 12-2 + 02-3 + 12-4 = 0 + 0,25 + 0 + 0,0625 = (0,3125)10

(11,101)2 = 121 + 120 + 12-1 + 02-2 + 12-3 = 2 + 1 + 0,5 + 0 + 0,125 = (3,625)10

FormaFormapolinomipolinomiaa

Page 26: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

26

Un bytebyte è un insieme di 8 bit (un numero binario a 8 cifre)

Con un byte si rappresentano i numeri interi fra 0 e 281 = 255

È l’elemento base con cui si rappresentano i dati nei calcolatoriSi utilizzano sempre dimensioni multiple (di potenze del 2) del byte: 2 byte (16 bit), 4 byte (32 bit), 8 byte (64 bit)…

Dal bit al byteDal bit al byte

b7b6b5b4b3b2b1b0

00000000000000010000001000000011…………….1111111011111111

28 = 256 valori distinti

Page 27: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

27

Da decimale a binario Da decimale a binario 1 1

Si divide ripetutamente il numero interointero decimale per 2 fino ad ottenere un quoziente nullo; le cifre del numero binario sono i resti delle divisioni; la cifra più significativa è l’ultimo resto

EsempioEsempio: convertire in binario (43)10

43 : 2 = 21 + 121 : 2 = 10 + 110 : 2 = 5 + 0 5 : 2 = 2 + 1 2 : 2 = 1 + 0 1 : 2 = 0 + 1

resti

bit più significativo

(43)10 = (101011)2

Page 28: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

28

Si moltiplica ripetutamente il numero frazionariofrazionario decimale per 2, fino ad ottenere una parte decimale nulla o, dato che la condizione potrebbe non verificarsi mai, per un numero prefissato di volte; le cifre del numero binario sono le parti intere dei prodotti successivi; la cifra più significativa è il risultato della prima moltiplicazione

Da decimale a binario Da decimale a binario 2 2

EsempioEsempio: convertire in binario (0,21875)10 e (0,45)10 0,45 2 = 0,9

0,90 2 = 1,80,80 2 = 1,60,60 2 = 1,20,20 2 = 0,4 etc.

(0.45)10 (0.01110)2

0,21875 2 = 0 ,43750,4375 2 = 0,8750,875 2 = 1,750,75 2 = 1,50,5 2 = 1,0

(0.21875)10 = (0.00111)2

Page 29: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

29

Da binario a decimaleDa binario a decimale

Oltre all’espansione esplicita in potenze del 2 forma polinomiaforma polinomia…

…si può operare nel modo seguente: si raddoppia il bit più significativo e si aggiunge al secondo bit; si raddoppia la somma e si aggiunge al terzo bit… si continua fino al bit meno significativo

EsempioEsempio: convertire in decimale (101011)2

bit più significativo

(101011)2 = 125 + 024 + 123 + 022 + 121 + 120 = (43)10

1 x 2 = 2 + 0 2 x 2 = 4 + 1 5 x 2 = 10 + 0 10 x 2 = 20 + 1 21 x 2 = 42 + 1 = 43

(101011)2 = (43)10

EsercizioEsercizio

Si verifichino le seguenti corrispondenze:

a) (110010)2=(50)10

b) (1110101)2=(102)10

c) (1111)2=(17)10

d) (11011)2=(27)10

e) (100001)2=(39)10

f) (1110001110)2=(237)10

EsercizioEsercizio

Si verifichino le seguenti corrispondenze:

a) (110010)2=(50)10

b) (1110101)2=(102)10

c) (1111)2=(17)10

d) (11011)2=(27)10

e) (100001)2=(39)10

f) (1110001110)2=(237)10

Page 30: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

30

Sistema esadecimaleSistema esadecimale

La base 16 è molto usata in campo informaticoLa base 16 è molto usata in campo informatico

Cifre: 0 1 2 3 4 5 6 7 8 9 A B C D E F

EsempioEsempio:

(3A2F)16 = 3163 + 10162 + 2161 + 15160 = 34096 + 10256 + 216 + 15 = (14895)10

La corrispondenza in decimale delle cifre oltre il 9 è

A = (10)10 D = (13)10

B = (11)10 E = (14)10

C = (12)10 F = (15)10

Page 31: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

31

Da binario a esadecimaleDa binario a esadecimale

0000 0 1000 80001 1 1001 90010 2 1010 A0011 3 1011 B0100 4 1100 C0101 5 1101 D0110 6 1110 E0111 7 1111 FF corrisponde a 4 bit a 1

0 corrisponde a 4 bit a 0

Page 32: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

32

Dai bit all’hexDai bit all’hex

Un numero binario di 4n bit corrisponde a un numero esadecimale di n cifre

EsempioEsempio: 32 bit corrispondono a 8 cifre esadecimali

1101 1001 0001 1011 0100 0011 0111 1111 D 9 1 B 4 3 7 F

(D91B437F)16

EsempioEsempio: 16 bit corrispondono a 4 cifre esadecimali

0000 0000 1111 1111 0 0 F F

(00FF)16

Page 33: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

33

Da esadecimale a binarioDa esadecimale a binario

La conversione da esadecimale a binario si ottiene espandendo ciascuna cifra con i 4 bit corrispondenti

EsempioEsempio: convertire in binario il numero esadecimale 0x0x0c8f

Notazione usata in molti linguaggi di programmazione per rappresentare numeri esadecimali

0 c 8 f 0000 1100 1000 1111

Il numero binario ha 4 x 4 =16 bit

Page 34: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

34

Esempi Esempi 1 1

In qualsiasi base, l’essere il sistema di numerazione posizionaleposizionale, impone che combinazioni diverse di cifre uguali rappresentino numeri diversi; ad esempio:

(319)10 (193)10

(152)6 (512)6, infatti... (152)6=162+561+260=36+30+2=(68)10

(512)6=562+161+260=180+6+2=(188)10

Numeri che hanno identica rappresentazione, in basi diverse, hanno valori diversi:

(234)10 (234)8 , infatti...(234)8 = 282 + 381 + 480 = 264 + 38 + 4 = 128+24+4 =

(156)10

OsservazioneOsservazione: più piccola è la base, minore è il valore del numero rappresentato dalla stessa sequenza di cifre

Page 35: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

35

Esempi Esempi 2 2

La notazione posizionale si applica anche per il calcolo del valore dei numeri frazionari, infatti...

(0,872)10 = 8101 + 7102 + 2103

= 8/10 + 7/100 + 2/1000 = 0,8 + 0,07 + 0,002

Quante cifre occorreranno per rappresentare il numero decimale 36 in base 2? Sappiamo che con n cifre si rappresentano i numeri da 0 a 2n1, quindi...

per n=1 (con una cifra) si rappresentano 0...211 0,1per n=2: 0...221 0...3per n=3: 0...231 0...7per n=4: 0...241 0...15per n=5: 0...251 0...31per n=6: 0...261 0...63

Effettivamente possiamo verificare che (100100)2=(36)10, infatti...

100100=125+024+023+122+021+020

= 32 + 4 = 36

con 66 cifre necessarie per la codifica del numero in base 2

Page 36: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

36

Esempi Esempi 3 3

QuesitoQuesito: Per quale base B risulterà vera l’uguaglianza17 + 41 + 22 = 102 ?

Se i numeri sono rappresentati in base B, sappiamo che:(17)B = 1B1+7B0 = B+7

(41)B = 4B1+1B0 = 4B+1

(22)B = 2B1+2B0 = 2B+2

(102)B = 1B2+0B1+2B0 = B2+2

da cui...B+7+4B+1+2B+2 = 7B+10 = B2+2

Si ottiene un’equazione di 2° grado: B2 7B 8 = 0Risolvendo: = 49+32 = 81

B = (7 )/2 =(79)/2 = 1

(7+9)/2 = 8 È la soluzione!È la soluzione!

Non può essere una base

Page 37: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

37

La rappresentazione dei datiLa rappresentazione dei dati e l’aritmetica degli elaboratorie l’aritmetica degli elaboratori

Page 38: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

38

Numeri interi positiviNumeri interi positivi

I numeri interi positivi sono rappresentati all’interno dell’elaboratore utilizzando un multiplo del byte (generalmente 2/4 byte)Se l’intero si rappresenta con un numero di cifre minore, vengono aggiunti zeri nelle cifre più significative

EsempioEsempio: 12 viene rappresentato in un byte come…

00001100

Page 39: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

39

Numeri con segnoNumeri con segno

Per rappresentare numeri con segno, occorre utilizzare un bit per definire il segno del numeroSi possono usare 3 tecniche di codifica

Modulo e segno Complemento a 2 Complemento a 1

Page 40: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

40

Modulo e segnoModulo e segno

Il bit più significativo rappresenta il segno: 0 per i numeri positivi, 1 per quelli negativiEsiste uno zero positivo (00…0) e uno zero negativo (10…0)Se si utilizzano n bit si rappresentano tutti i numeri compresi fra (2n11) e +2n11

EsempioEsempio: con 4 bit si rappresentano i numeri fra 7 ((231)) e +7 (231)

0000 +00001 +10010 +20011 +30100 +40101 +50110 +60111 +7

1000 01001 11010 21011 31100 41101 51110 61111 7

positivi negativi

Page 41: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

41

Complemento a 2Complemento a 2

01010111

10101000

10101001

complemento a 1

+ 1

100000000011111111 01010111 10101000

10101001

28

281N281N

281N+1

2n(N)2 = 10……0(N)2

{n

Page 42: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

42

Interi in complemento a 2Interi in complemento a 2

I numeri positivinumeri positivi sono rappresentati in modulo e segnoI numeri negativinumeri negativi hanno un 1 nella posizione più significativa e sono rappresentati in complemento a 2Lo zero è rappresentato come numero positivo (con una sequenza di n zeri)Il campo dei numeri rappresentabili è da 2n1 a +2n11

EsempioEsempio: numeri a 4 cifre0000 +00001 +10010 +20011 +30100 +40101 +50110 +60111 +7

1000 81001 71010 61011 51100 41101 31110 21111 1

Nota: 0111 +7 1000 8

Page 43: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

43

Interi a 16 bitInteri a 16 bit

Numeri interi rappresentati su 16 bit in complemento a 2:

Il più grande numero intero positivo è 2151=(32767)10

0111 1111 1111 11110x 7 F F F

Il più piccolo numero intero negativo è 215=(32768)10

1000 0000 0000 00000x 8 0 0 0

0111 1111 1111 1111 + 1 1000 0000 0000 0000

Il numero intero –1 è rappresentato come

1111 1111 1111 11110x F F F F

0000 0000 0000 0000 + 1 0000 0000 0000 0001

Page 44: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

44

Addizione binariaAddizione binaria

0 + 0 = 00 + 1 = 11 + 0 = 11 + 1 = 0 con riporto di 1

EsempioEsempio1 11 101011011+0101101010110101

riporti

181

91+90

Page 45: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

45

Sottrazione binaria Sottrazione binaria 1 1

Le regole per la sottrazione di due bit sono

La sottrazione può divenire complicata: quando si ha una richiesta sulla cifra precedente a sinistra, che è uno 0, l’operazione si propaga a sinistra fino alla prima cifra ad 1 del sottraendo

0 0 = 0 1 0 = 1 1 1 = 010 1 = 1 con prestito di 1 dalla cifra precedente a sinistra EsempioEsempio

0 10 1 1 0 0 1 1 0 11 0 1 0 0 20

25 5

Page 46: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

46

Sottrazione binaria – 2Sottrazione binaria – 2

Utilizzando la rappresentazione in complemento a 2, addizione e sottrazione sono trattate come un’unica operazione

N1N2 = N1+(2nN2)2n

complemento a 2 di N2: (N2)

si trascura il bit n +1

Si calcola il complemento a 2 di N2

Si somma N1 con il complemento a 2 di N2

Si trascura il bit più significativo del risultato

EsempioEsempio: (010001)2(000101)2 = (17)10(5)10

010001 + 1110111001100 (12)10

{

Page 47: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

47

Sono utili perché l’operazione di somma può essere realizzata non curandosi del bit di segnoIn complemento a 1 (più semplice da calcolare)…

Zero ha due rappresentazioni: 00000000 e 11111111 La somma bit a bit funziona “quasi sempre”

In complemento a 2…Zero ha una sola rappresentazioneLa somma bit a bit funziona sempre

Rappresentazioni in Rappresentazioni in complementocomplemento

11001 + (6)

11010 = (5)

1001110011 (12)

00110 + (6)

10101 = (10)

11011 (4)

Page 48: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

48

OverflowOverflow

EsempioEsempio: 5 bit [16,+15]

01110 +0101011000

14 +1024

11000 + 10110101110

8 +10188 +14

Punteggio nei vecchi videogame… sorpresa per i campioni!0111 1111 1111 1111 + 1 = 1000 0000 0000 0000 32767 + 1 = 32768

Page 49: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

49

Moltiplicazione binariaMoltiplicazione binaria

0 0 = 00 1 = 01 0 = 01 1 = 1

EsempioEsempio 1100111 x 101 1100111 0000000 11001111000000011

110011 x 10000 = 11001100000000 16 = 24

Page 50: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

50

La divisione binaria di A per B viene calcolata in modo analogo alla divisione decimale, così da ottenere un quoziente Q ed un resto R, tali che A = BQ + RLa divisione binaria si compone di una serie di sottrazioni

Dividere per 2n equivale a scorrere il numero a destra di n posizioni; le cifre scartate costituiscono il resto

Divisione binariaDivisione binaria

1 1 0 1 1 0 1 0 11 0 1 1 0 1 0 1 1 1

1 0 1 1 0 0

(

^^^

51:16 = 3 con resto 3

110011 10000 = 11 con resto 11

54 = 510 + 4

Page 51: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

51

EserciziEsercizi

Esercizio 1Esercizio 1 Assumendo che un elaboratore rappresenti i numeri interi con segno su quattro bit, si calcolino entrambi i membri della seguente identità:

(A(AC)+B = (A+B)C)+B = (A+B)CC,con A=7A=7, B=5B=5, C=7C=7. Si ottiene lo stesso risultato dal calcolo dei due membri? Discutere le motivazioni della risposta.

Esercizio 2Esercizio 2a) Si determini, se esiste, la base b di un sistema di

numerazione tale che

(842)(842)bb = (1202) = (1202)1010

b) Si determini, se esiste, la base b 16 di un sistema di numerazione tale che

(725)(725)bb (626) (626)bb = (224) = (224)1010

Page 52: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

52

Numeri in virgola mobileNumeri in virgola mobile

La rappresentazione dei numeri in virgola mobile è in relazione con la notazione scientificanotazione scientifica (es. 1.2102=120)La IEEE ha previsto uno standard per la rappresentazione in virgola mobile singola precisionesingola precisione (32 bit = 4 byte)

doppia precisionedoppia precisione (64 bit = 8 byte) quadrupla precisionequadrupla precisione (128 bit = 16 byte)

Singola precisione031 2223

23 bit8 bit

Mantissa(o Caratteristica)

Segno

Il valore è(1)S 1.M2E127 se E0(1)S 0.M2127 se E=0

Esponente

Page 53: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

53

Singola precisioneSingola precisione

0 11111111 11111111111111111111111 2255127 1.111111111111111111111111

0 00000000 00000000000000000000001 2127 0.00000000000000000000001

0.50 1 2 4

223 valori223 valori 223 valori223 valori

Page 54: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

54

Metodo per il calcolo dell’addizione1. Se le caratteristiche dei numeri sono diverse, si

considera il numero con caratteristica minore e… 1.1 Si trasla la mantissa di un posto a destra 1.2 Si incrementa la caratteristica di 1, fino a quando

le due

2. La mantissa del risultato è ottenuta dalla somma delle due mantisse

3. Se l’addizione comporta un riporto oltre la cifra più significativa, si trasla la mantissa del risultato a destra di un posto, il riporto nel bit più significativo, e si incrementa la caratteristica di 1

L’aritmetica floatingL’aritmetica floatingpoint: addizionepoint: addizione

caratteristiche sono uguali, e corrispondono alla caratteristica del risultato

Page 55: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

55

Supponiamo che per la rappresentazione floating–point vengano utilizzati otto bit, di cui uno per il segno, tre per la caratteristica e quattro per la mantissa

La caratteristica del secondo operando è più piccola di una unità, quindi la mantissa deve scorrere di una posizione a destra

La caratteristica del risultato è 110 e la mantissa è 1101+ 0100 = 10001; la caratteristica deve essere aumentata di 1 e portata a 111, e la mantissa del risultato traslata a destra di una posizione:

Un esempio di addizione Un esempio di addizione

0 1 001 11 0

1001 0100

Codifica il numero 4 (dato che la caratteristica si rappresenta in eccesso a 4), ma il risultato corretto è 4.375: errore di errore di troncamentotroncamento

1.125

3.25

01 100 01 1

0 0 111 11 0N = (1)s0.M2E4

Page 56: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

56

Metodo per il calcolo della moltiplicazione1. Si moltiplicano le due mantisse2. Si addizionano le due caratteristiche3. Si trasla a sinistra il prodotto delle due mantisse fino

ad ottenere un 1 come cifra più significativa; si diminuisce la caratteristica di 1 per ogni traslazione eseguita

4. Si tronca la mantissa al numero di bit utilizzati nella rappresentazione; la mantissa del prodotto è il risultato del troncamento

5. Si sottrae l’eccesso alla somma delle caratteristiche, ottenendo la caratteristica del prodotto

L’aritmetica floatingL’aritmetica floatingpoint: point: moltiplicazionemoltiplicazione

Page 57: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

57

Supponiamo che per la rappresentazione floating–point vengano utilizzati otto bit, di cui uno per il segno, tre per la caratteristica e quattro per la mantissa

Moltiplicando le mantisse e sommando le caratteristiche si ottiene:

La mantissa del risultato deve essere traslata di un posto a sinistra, e la somma delle caratteristiche deve essere decrementata di 1; infine la mantissa deve essere troncata alle 4 cifre significative e l’eccesso (100) sottratto alla caratteristica:

Un esempio di moltiplicazione Un esempio di moltiplicazione

M=01110101 E=111

0 0 010 11 1Codifica il numero 0.21875, ma il risultato corretto è 0.228515625: errore di troncamentoerrore di troncamento

01 100 01 1 1.125

0.2031250 0 110 11 0N = (1)s0.M2E4

Page 58: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

58

L’aritmetica “interna” degli elaboratori differisce notevolmente dall’aritmetica classicaSebbene le stesse operazioni possano essere realizzate secondo modalità diverse su elaboratori diversi, si riscontrano alcune caratteristiche comuni:

Rappresentazione binaria dei numeriRappresentazione binaria dei numeri

Rango finito dei numeri rappresentabiliRango finito dei numeri rappresentabili

Precisione finita dei numeriPrecisione finita dei numeri

Operazioni espresse in termini di operazioni più Operazioni espresse in termini di operazioni più semplicisemplici

L’aritmetica degli elaboratori L’aritmetica degli elaboratori 1 1

Page 59: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

59

Rango finito dei numeri rappresentabiliRango finito dei numeri rappresentabili Qualunque sia la codifica utilizzata, esistono sempre il più grande ed il più piccolo numero rappresentabileI limiti inferiore e superiore del rango di rappresentazione dipendono sia dal tipo di codifica, sia dal numero di bit utilizzatiSe il risultato di un’operazione non appartiene al rango dei numeri rappresentabili, si dice che si è verificato un overflow (un underflowunderflow, più precisamente, se il risultato è più piccolo del più piccolo numero rappresentabile)

L’aritmetica degli elaboratori L’aritmetica degli elaboratori 2 2

Page 60: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

60

Precisione finita dei numeriPrecisione finita dei numeriLa precisioneprecisione della rappresentazione di un numero frazionario è una misura di quanto essa corrisponda al numero che deve essere rappresentatoNegli elaboratori, i numeri frazionari sono rappresentati in virgola mobile (floating–pointfloating–point), utilizzando un numero finito di bitÈ plausibile che un numero reale non ammetta una rappresentazione finita, quindi dovrà essere codificato in maniera approssimataNegli elaboratori si rappresentano soltanto numeri razionali (fino ad una data precisione)

L’aritmetica degli elaboratori L’aritmetica degli elaboratori 3 3

Page 61: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

61

Operazioni espresse in termini di operazioni più Operazioni espresse in termini di operazioni più semplicisemplici

La maggior parte degli elaboratori non possiede circuiti in grado di eseguire direttamente tutte le operazioni:

La sottrazione si realizza per mezzo di una complementazione e di un’addizioneLa moltiplicazione si realizza per mezzo di una successione di addizioni e di shift shift (traslazioni)La divisione si realizza per mezzo di una successione di shift e sottrazioni

Le operazioni più semplici sono eseguite direttamente da appositi circuiti (in hardwarehardware); le operazioni più complesse sono realizzate mediante l’esecuzione di successioni di operazioni più semplici, sotto il controllo di programmi appositamente realizzati, e generalmente memorizzati permanentemente (in firmwarefirmware)

L’aritmetica degli elaboratori L’aritmetica degli elaboratori 4 4

Page 62: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

62

Codifica dei caratteri alfabetici – Codifica dei caratteri alfabetici – 11

Oltre ai numeri, molte applicazioni informatiche elaborano caratteri (simboli)Gli elaboratori elettronici trattano numeriSi codificano i caratteri e i simboli per mezzo di numeriPer poter scambiare dati (testi) in modo corretto, occorre definire uno standard di codifica

A 01000001

3 00110011

$ 00100100

Page 63: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

63

Codifica dei caratteri alfabetici – Codifica dei caratteri alfabetici – 22

Quando si scambiano dati, deve essere noto il tipo di codifica utilizzato

In genere un sistema informatico deve supportare più standard di codifica

La codifica deve prevedere le lettere dell’alfabeto, le cifre numeriche, i simboli, la punteggiatura, i caratteri speciali per certe lingue (æ, ã, ë, è,…)

Il più diffuso è il codice ASCIIcodice ASCII, per American American Standard Code for Information InterchangeStandard Code for Information Interchange

Page 64: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

64

Codifica ASCIICodifica ASCII

Definisce una tabella di corrispondenza fra ciascun carattere e un codice a 7 bit7 bit (128 caratteri)I caratteri, in genere, sono rappresentati con 1 byte1 byte (8 bit); i caratteri con il bit più significativo a 1 (quelli con codice dal 128 al 255) rappresentano un’estensione della codificaLa tabella comprende sia caratteri di controllocaratteri di controllo (codici da 0 a 31) che caratteri stampabilicaratteri stampabiliI caratteri alfabetici/numerici hanno codici ordinati secondo l’ordine alfabetico/numerico

A 65B 66…….Y 89Z 90

a 97b 98…….y 121Z 122

0 481 49…….8 569 57

cifre maiuscole minuscole

Page 65: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

65

Caratteri di controllo ASCIICaratteri di controllo ASCII

I caratteri di controllo (codice da 0 a 31) hanno funzioni specialiSi ottengono o con tasti specifici o con una sequenza Ctrl+carattereCtrl+carattere

Ctrl Dec Hex Code Nota^@ 0 0 NULL carattere nullo^A 1 1 SOH partenza blocco…… … … …… …………………^G 7 7 BEL beep^H 8 8 BS backspace^I 9 9 HT tabulazione orizzontale^J 10 A LF line feed (cambio linea)^K 11 B VT tabulazione verticale^L 12 C FF form feed (alim. carta)^M 13 D CR carriage return (a capo)…… … … …… ……………………^Z 26 1A EOF fine file^[ 27 1 B ESC escape…… … … …… ………^_ 31 1F US separatore di unità

Page 66: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

66

Caratteri ASCII stampabiliCaratteri ASCII stampabili

Dec Hx Chr Dec Hx Chr Dec Hx Chr Dec Hx Chr Dec Hx Chr Dec Hx Chr

32 20 SPACE 48 30 0 64 40 @ 80 50 P 96 60 ` 112 70 p33 21 ! 49 31 1 65 41 A 81 51 Q 97 61 a 113 71 q34 22 ” 50 32 2 66 42 B 82 52 R 98 62 b 114 72 r 35 23 # 51 33 3 67 43 C 83 53 S 99 63 c 115 73 s36 24 $ 52 34 4 68 44 D 84 54 T 100 64 d 116 74 t37 25 % 53 35 5 69 45 E 85 55 U 101 65 e 117 75 u38 26 & 54 36 6 70 46 F 86 56 V 102 66 f 118 76 v39 27 ’ 55 37 7 71 47 G 87 57 W 103 67 g 119 77 w40 28 ( 56 38 8 72 48 H 88 58 X 104 68 h 120 78 x 41 29 ) 57 39 9 73 49 I 89 59 Y 105 69 i 121 79 y42 2A * 58 3A : 74 4A J 90 5A Z 106 6A j 122 7A z43 2B + 59 3B ; 75 4B K 91 5B [ 107 6B k 123 7B {44 2C , 60 3C < 76 4C L 92 5C \ 108 6C l 124 7C |45 2D - 61 3D = 77 4D M 93 5D ] 109 6D m 125 7D }46 2E . 62 3E > 78 4E N 94 5E ^ 110 6E n 126 7E ~47 2F / 63 3F ? 79 4F O 95 5F _ 111 6F o 127 7F DEL

NotaNota: il valore numerico di una cifra può essere calcolato come differenza del suo codice ASCII rispetto al codice ASCII della cifra 0 (es. ‘5’‘0’ = 53 48 = 5)

Page 67: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

67

Tabella ASCII estesaTabella ASCII estesa

I codici oltre il 127 non sono compresi nello standard originario

Page 68: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

68

Codifica UNICODE – 1Codifica UNICODE – 1

È lo standard emergente per la codifica dei caratteri nei testi; è basato sulle caratteristiche del codice ASCII, ma supera la limitazione di poter rappresentare in modo coerente solo l’alfabeto latino

Fornisce un unico codice per ogni carattere di unico codice per ogni carattere di ogni lingua scrittaogni lingua scritta, indipendentemente dalla piattaforma, dal linguaggio o dal programma

Lo standard iniziale prevedeva di codificare i caratteri con 16 bit, per un totale di oltre 65000 caratteri rappresentabili

Page 69: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

69

Codifica UNICODE – 2Codifica UNICODE – 2

La versione 3.0 dello standard fornisce i codici per 4919449194 caratteri, derivati dagli alfabeti usati nel mondo, dagli insiemi di ideogrammi, dalle collezioni di simboli

L’ultima versione dello standard definisce tre tipi diversi di codifica che permettono agli stessi dati di essere trasmessi in byte (8 bit UTF-8UTF-8), word (16 bit UTF-16UTF-16) o double word (32 bit UTF-32UTF-32)

Tutte le codifiche presuppongono, al più, l’utilizzo di 32 bit per carattere

Page 70: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

70

Codifica delle immagini Codifica delle immagini 1 1

Le immagini vengono anch’esse codificate come una sequenza di bit: il processo di “traduzione” da un’immagine ad una sequenza binaria prende il nome di digitalizzazionedigitalizzazione

L’immagine è suddivisa in punti o pixel pixel (per pictpicture ure elelement ement ), e ciascun punto viene codificato con un numero, che corrisponde ad un colore o ad un particolare tono di grigio

Si utilizzano un numero di colori o di sfumature che sia una potenza del 2, in modo da codificare l’informazione legata a ciascun pixel con un opportuno numero di bit

Page 71: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

71

Codifica delle immagini Codifica delle immagini 2 2

Le immagini vengono memorizzate come lunghe sequenze di bit: per interpretarle è necessario conoscere...

...le dimensioni dell’immagine (base ed altezza in numero di pixel), detta anche risoluzionerisoluzione

...il numero di colori (o toni di grigio) disponibili per ogni pixel

Se un immagine viene codificata ad una data risoluzione, potrà comunque essere presentata su un dispositivo a più bassa risoluzione, a patto di “ignorare” alcuni dei bit che descrivono i pixel

Page 72: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

72

Codifica delle immagini Codifica delle immagini 3 3

Come è avvenuto per i caratteri, anche per le immagini sono stati definiti standard di codifica, che assicurano la compatibilità fra sistemi diversi, per quanto concerne la trasmissione e la visualizzazione delle immagini

TIFFTIFF Tagged Image File FormatTagged Image File Format

JPEGJPEG

PNGPNG Portable Network GraphicsPortable Network Graphics

Per ridurre lo spazio necessario per memorizzare le immagini si utilizzano tecniche di compressionecompressione (utili anche per la trasmissione su rete Internet)

Page 73: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

73

Codifica delle immagini Codifica delle immagini 4 4

Le tecniche di compressione si dividono in...Tecniche losslessTecniche lossless: non provocano perdita di informazione, sono adatte a codificare immagini in cui sono presenti ampie aree monocromatiche si codificano in maniera compatta insiemi di pixel aventi le stesse caratteristiche

Tecniche losslyTecniche lossly: provocano perdita di informazione, facendo decadere la qualità dell’immagine

Normalmente ai formati JPEGJPEG e PNGPNG, molto diffusi per lo scambio di immagini su Internet, si applicano metodi di compressione lossly

Page 74: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

74

La struttura del calcolatoreLa struttura del calcolatore

Page 75: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

75

Il mercato informatico nel 1964Il mercato informatico nel 1964

IBM S/360 Mod 40 IBM S/360 Mod 40 1.6 MHz 32KB1.6 MHz 32KB256KB256KB225.000$225.000$

IBM S/360 Mod 50 IBM S/360 Mod 50 2.0 MHz 128KB2.0 MHz 128KB256KB256KB550.000$550.000$

IBM S/360 Mod 65IBM S/360 Mod 655.0 MHz 256KB5.0 MHz 256KB1MB1MB1.200.000$1.200.000$

Nel 1964, IBM lanciò sul mercato la serie /360, coniando per l’occasione la definizione di generazione: “The third generation begins” era infatti il titolo dell’articolo in cui veniva presentata la serie IBM/360, per la quale venivano impiegati per la prima volta i circuiti integrati.

La base dei circuiti integrati è un cristallo di silicio, ampio qualche millimetro quadrato. Su questa base possono trovarsi migliaia di componenti logiche elementari, stampate direttamente sul circuito o inserite e saldate nei punti di connessione: si raggiungono tempi dell’ordine dei nanosecondi per le operazioni elementari.

Nel 1964, IBM lanciò sul mercato la serie /360, coniando per l’occasione la definizione di generazione: “The third generation begins” era infatti il titolo dell’articolo in cui veniva presentata la serie IBM/360, per la quale venivano impiegati per la prima volta i circuiti integrati.

La base dei circuiti integrati è un cristallo di silicio, ampio qualche millimetro quadrato. Su questa base possono trovarsi migliaia di componenti logiche elementari, stampate direttamente sul circuito o inserite e saldate nei punti di connessione: si raggiungono tempi dell’ordine dei nanosecondi per le operazioni elementari.

Page 76: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

76

Struttura del calcolatoreStruttura del calcolatore

Si possono considerare vari livelli di astrazione:Circuiti elettronici (hardware)Architettura e linguaggio macchinaSistema operativo (software di sistema)Linguaggi di programmazioneProgrammi applicativi

Silicon GraphicsSilicon Graphics

Il calcolatore è basato su circuiti elettronici digitali, ovvero modellabili con l’algebra booleana; i circuiti elettronici implementano le funzioni logiche AND, OR, NOT, permettono di memorizzare il valore di variabili booleane, etc.

Page 77: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

77

Architettura a BUSArchitettura a BUS

L’architettura più consolidata per il calcolatore prevede unità funzionali fra loro collegate attraverso un unico canale di comunicazione, il busbusIl bus è fisicamente realizzato mediante un insieme di conduttori elettrici

MemoriaprincipaleCPU I/O I/OI/O

BUSIndirizziDatiControllo

Dispositivi di Input/Output

Page 78: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

78

Il BUSIl BUS

MemoriaprincipaleCPU

Il bus è utilizzato per trasferire dati fra le unità funzionali L’unità che inizia il trasferimento (in genere la CPU) fornisce l’indirizzo, che individua univocamente il dato, sulle linee del bus bus indirizziindirizzi, e configura le linee del bus controllobus controllo inviando un comando al dispositivo che contiene il dato (es. READ)Il dato da trasferire è reso disponibile sul bus datibus dati e viene ricopiato nel dispositivo destinatario

READ=1 MEM=1

0008AB38

0008AB38 0008AB38Indirizzo a32 bit (32 fili)

MemoriaprincipaleCPU

READ=1 MEM=1

0008AB38

5F66B102Dato a 32 bit (32 fili)

trasferito dalla memoria principale alla CPU

5F66B1025F66B102

5F66B102

Page 79: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

79

La CPULa CPU

La Central Processing UnitCentral Processing Unit è l’unità che controlla il funzionamento del calcolatore (esegue le istruzioni del programma e ne regola il flusso, esegue i calcoli)È costituita da tre elementi fondamentali:

Intel PentiumIntel Pentium

Unità AritmeticoLogica (ALU) Registri Unità di Controllo (CU)

ALU CU

PC

IR

registriContatore di programma

(Program CounterProgram Counter)

Registro Istruzione(Istruction RegisterIstruction Register)BUS

Page 80: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

80

L’Unità AritmeticoL’Unità AritmeticoLogicaLogica

Il tipo di operazione selezionata, in un dato istante, dipende dallo stato di alcune linee di controllo provenienti dalla CULe operazioni logiche (es. AND) vengono eseguite bit a bit fra i due operandiPuò esistere una unità specializzata per le operazioni in virgola mobile (FPUFPU)

L’ALU (ArithmeticArithmeticLogic UnitLogic Unit) è un circuito in grado di eseguire operazioni aritmetiche e logiche su 2 operandi, rappresentati su n bit (es. 32 bit); oltre al risultato dell’operazione può produrre informazioni ulteriori su linee specifiche (il risultato è zero, si è verificato un overflow, il risultato è negativo)

ALU ResultZero

Overflow

a

b

ALU operation

CarryOut

Page 81: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

81

I registriI registri

I registri sono dispositivi di memorizzazione che consentono un accesso molto veloce ai dati che contengono; hanno dimensioni prefissate (es. 32 bit)Alcuni registri hanno funzioni specifiche (es. contatore di programma)In alcune CPU le operazioni della ALU si possono effettuare solo fra dati presenti in due registriIl risultato di un’operazione effettuata dalla ALU può essere memorizzato in un registro

EIP Instruction pointer (PC)

EFLAGS Condition codes

Code segment pointerCS

Stack segment pointer (top of stack)SS

Data segment pointer 0DS

Data segment pointer 1ES

Data segment pointer 2FS

Data segment pointer 3GS

031

GPR 0EAX

GPR 3EBX

GPR 1ECX

GPR 2EDX

GPR 6ESI

GPR 7EDI

GPR 5EBP

GPR 4ESP

Name Use

Registri delPentium

Page 82: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

82

Registro puntatore allo stackRegistro puntatore allo stack (Stack Pointer): lo stack è un insieme di celle di memoria che può essere acceduto in modalità LIFO (Last In First Out); la posizione in cui si trova l’elemento inserito per ultimo è la testa dello stack, che viene puntata dal registro SP; lo stack è organizzato in modo da crescere verso indirizzi decrescenti: SP viene decrementato ad ogni nuova immissione (pushpush) ed incrementato ad ogni prelievo (poppop)

Registri e loro funzioni Registri e loro funzioni

Registri accumulatoriRegistri accumulatori: sono integrati alla ALU, che vi può operare direttamente; mantengono risultati temporanei

Registro di statoRegistro di stato: contiene informazioni che globalmente determinano, in ogni istante, lo stato dell’unità centrale

2100

SP2000

2000

Page 83: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

83

L’Unità di ControlloL’Unità di Controllo

Esegue le istruzioni prelevandole dalla memoria nella fase di fetchfetchLa prossima istruzione da eseguire è individuata dall’indirizzo presente nel registro contatore di programmaregistro contatore di programma (PC)L’istruzione in esecuzione è memorizzata nel registro istruzioneregistro istruzione (IR)L’istruzione è un codice binario che deve essere decodificatodecodificato dalla CU; specifica il tipo di operazione, gli eventuali operandi, etc.Normalmente le istruzioni sono eseguite in sequenza: dopo il fetch, il PC viene incrementatoPC viene incrementato, per fare riferimento all’istruzione successiva

CU

IR

PC

memoriaBUS

Istruzione 1Istruzione 2Istruzione 3

02AD77F2

02AD77F2

Segnali di controllo(ALU, Registri, etc.)

Page 84: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

84

La memoria principale La memoria principale 1 1

L’unità di memorizzazione è il byteCiascun byte nella memoria è individuato da un indirizzoindirizzo che lo distingue da tutti gli altri, costituito da un numero variabile da 0 a 2N1 dove N è la dimensione in bit dell’indirizzo (es. numero di bit sul bus indirizzi)

128 MB = 27 220 byte = = 137438953472 byte

227

00000xxxxxxxxxxxxxxxxxxxxxxxxxxx27 bit indirizzo all’interno

del blocco

00000000

07FFFFFF

32 bit

128 MB

Page 85: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

85

Fino agli anni `70, le celle erano costituite da nuclei di ferrite attraversati da fili elettrici, che potevano magnetizzarli in un senso o nell’altro, con opportune intensità di corrente, realizzando le cifre 0 e 1

Attualmente le memorie sono realizzate con tecnologia VLSIVLSI (Very Large Scale Integrated Very Large Scale Integrated CircuitCircuit), cioè mediante circuiti elettronici ad elevato grado di integrazione (più bit codificabili su chip di una data dimensione)

La memoria principale La memoria principale 2 2

Page 86: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

86

La memoria principale La memoria principale 3 3

La memoria centrale viene anche chiamata memoria ad accesso casualememoria ad accesso casuale o RAMRAM (Random Random Access MemoryAccess Memory): qualsiasi cella può essere letta/scritta in un tempo (mediamente) costante

Una parte della memoria centrale, la ROMROM (Read Read Only MemoryOnly Memory), viene scritta in modo permanente in fase costruttiva: le celle della ROM possono essere successivamente lette (ed in generale contengono informazioni fondamentali, specialmente per l’inizializzazione dell’elaboratore), ma mai riscritte

La memoria centrale RAM è volatileLa memoria centrale RAM è volatile

Page 87: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

87

Le operazioni che si effettuano sulla memoria sono operazioni di letturalettura e scritturascrittura

Entrambe presuppongono l’utilizzo di un indirizzo che identifica univocamente la cella interessata all’operazione

L’operazione di scrittura è distruttivadistruttiva, cioè cancella l’informazione precedentemente contenuta nella cella

L’operazione di lettura preserva il contenuto della cella indirizzata: all’esterno della memoria centrale viene trasferita copia dell’informazione

Operazioni sulla memoria Operazioni sulla memoria principaleprincipale

Page 88: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

88

Il registro indirizziregistro indirizzi contiene l’indirizzo della cella che deve essere acceduta; la sua dimensione deve essere tale da permettere che tutte le celle di memoria possano essere indirizzateEsempioEsempio: un registro a 16 bit indirizza 65536 posizioni di memoriaIl decodificatore di indirizzidecodificatore di indirizzi è un dispositivo in grado di selezionare la cella il cui indirizzo corrisponde a quello contenuto nel registro indirizziIl registro datiregistro dati contiene l’informazione scritta/letta sulla/dalla cella indirizzata; la dimensione del registro è uguale a quella delle celle

Architettura della memoria Architettura della memoria principaleprincipale

BU

SB

US

Registro datiRegistro dati

Memoria centraleMemoria centrale

Registro indirizziRegistro indirizzi

Decodificatore indirizziDecodificatore indirizzi

Page 89: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

89

Il linguaggio macchinaIl linguaggio macchina

0000000010100001000000000001100000000000100011100001100000100001100011000110001000000000000000001000110011110010000000000000010010101100111100100000000000000000

PC

Page 90: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

90

Il set di istruzioni macchinaIl set di istruzioni macchina

L’insieme delle istruzioni eseguibili, e la relativa codifica, sono generalmente diverse per modelli diversi di processore (es. Intel Pentium, Power PC, Alpha)Le istruzioni possono essere codificate con un numero variabile di bit (es. Pentium) o con un numero fisso (es. MIPS 32 bit)Le categorie di istruzioni normalmente disponibili sono:

Trasferimento datiTrasferimento dati: spostano dati (byte, word) tra registri, memoria principale e dispositivi di ingresso/uscita (I/O)

AritmeticoAritmeticologichelogiche: eseguono i calcoli nell’ALU

Salti (condizionati e incondizionati)Salti (condizionati e incondizionati): prendono decisioni e alterano la normale esecuzione sequenziale delle istruzioni

Page 91: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

91

AssemblerAssembler

Per facilitare la programmazione è stato definito il linguaggio assemblyassemblyL’assembly impiega una notazione simbolica che è in stretta relazione con i codici in linguaggio macchina; il programma scritto in assembly è convertito automaticamente in linguaggio macchina per mezzo del programma traduttore assemblerassembler

LOAD R1, MEM1 CMP R1, R2 BEQ RISZERO STORE R1, MEM1RISZERO: LOAD R2, MEM2

Assembler

1000100011011010110101010101010001001000100100000000000000000000110000000000000000000000000010001001100011011010110101010101010010001001010110101101001000001100

OPCODE(LOAD)

registro

Page 92: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

92

Trasferimento dei datiTrasferimento dei dati

Le istruzioni di trasferimento dati permettono di copiare il valore di un dato fra registri o fra un registro e la memoriaSi fa riferimento ad un assemblyassembly generico

LOAD MEM, REG1LOAD [REG2], REG1

STORE REG1, MEMSTORE REG1, [REG2]

MOVE REG1, REG2

REG1

MEM

REG1

REG2

memoriaregistro

registromemoria

registroregistro

Indirizzamento diretto

Indirizzamento indiretto

Page 93: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

93

Operazioni aritmeticoOperazioni aritmeticologichelogiche

Permettono di eseguire operazioni aritmetiche o logiche su due operandi

ADD REG1, REG2

ALUADD

REG1REG2

OR REG1, REG2 0010 1100 1100 0101 1100 1111 0101 00001010 1110 0000 0000 0010 0001 1000 0001

1010 1110 1100 0101 1110 1111 1101 0001

REG1REG2

REG1

Page 94: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

94

Istruzioni di saltoIstruzioni di salto

CMP REG1, REG2 BREQ UGUALI LOAD REG1, MEM1UGUALI: STORE REG2, MEM1

Confronta il contenuto dei registri REG1 e REG2

BRanch EQual

Page 95: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

95

La memoria secondariaLa memoria secondaria

Il disco fisso è costituito da uno o più piatti ricoperti di materiale magnetico su entrambe le facceCiascuna superficie è associata ad una o più testine di lettura/scrittura che si muovono radialmente per leggere l’informazione memorizzata su tracce concentriche

Dischi magneticiDischi magnetici

Esistono diversi dispositivi di memoria secondaria: dischi magnetici (hard disk e floppy), dischi ottici (CD–R, CD–RW, DVD), nastri magneticiMemoria non volatile ad alta capacità

Page 96: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

96

I dischi magneticiI dischi magnetici

L’informazione è disposta sul disco in traccetracce, ovvero in cerchi concentriciLe tracce sono divise in settorisettori Il numero di bit contenuti in una traccia è dell’ordine delle centinaia di migliaia (512/4096 byte a settore)

Platter

Track

Platters

Sectors

Tracks

Per leggere o scrivere sul disco, la testina si deve posizionare sulla traccia che contiene il dato, ed attendere che il dato passi sotto di essa

Page 97: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

97

Accesso al discoAccesso al disco

Il tempo medio di accesso all’informazione memorizzata su disco è dato da

tseek è il tempo di ricercatempo di ricerca, necessario per posizionare la testina sulla traccia che contiene l’informazione; dipende dall’ampiezza dello spostamentotlat è il tempo di latenzatempo di latenza, necessario perché l’informazione ricercata passi sotto la testina; dipende dalla velocità di rotazione dei dischittr è il tempo di trasferimentotempo di trasferimento ; dipende dalla velocità di rotazione, dalla densità di registrazione e dalla quantità di informazione da trasferire

T = tseek + tlat + ttr

Page 98: 1 Fondamenti di Informatica E-mail: monica@ing.unisi.it Monica Bianchini Dipartimento di Ingegneria dellInformazione ENIAC (1946 ca.) ENIAC Electronical.

98

I dispositivi di InputI dispositivi di InputOutputOutput

ComportamentoComportamento: Input (read once), output (write only), memoria (rilettura/riscrittura)

PartnerPartner: uomo o macchina

Velocità del flusso dei datiVelocità del flusso dei dati: quantità di dati nell’unità di tempo trasferiti da o verso la CPU o la memoria centrale

TastieraTastiera input uomo 0.01 KB/sMouse Mouse input uomo 0.02 KB/sRete Rete input/output macchina 1000 KB/sHard DiskHard Disk storage macchina 5000 KB/s

I dispositivi di I/O sono molti variSi possono considerare tre diverse caratteristiche: