architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/arch/arches1.pdf ·...

40

Upload: buibao

Post on 18-Feb-2019

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Architettura degli elaboratori 2012/2013Rappresentazione ed aritmetica binaria di base

Michele �Jazzinghen� Bianchi1

1Dipartimento di Ingegneria e Scienze dell'Informazione

Universtià degli Studi di Trento

21 Febbraio 2013

1 of 27

Page 2: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Introduzione

� Contatti: [email protected]

� Sito web con i materiali: http://disi.unitn.it/~bianchi

� Ricevimento: scrivetemi una mail, così ci mettiamo d'accordo.

� Domande o parti poco chiare: Ovviamente sono qui per questo, quindichiedete pure, altrimenti mandatemi le domande via mail, alle qualirisponderò all'inizio della lezione successiva

2 of 27

Page 3: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

IntroduzioneExtra

� Sulla mia pagina è presente una Quick Start Guide per quanto riguarda laseconda parte del corso. Vi potrebbe essere utile leggerla subito, così se cisono casini metto a posto

� Aggiungerò dei link a delle risorse online utili per il corso, dateciun'occhiata ogni tanto. So che vi sentite dire questa cosa spesso, ma ameservono hit per prendere soldi nel mio caso vi potrebbe essere utile, vistoche non ci sono ancora tutti i contenuti.

3 of 27

Page 4: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Storia

� Sistemi unari (dita, tacche, ideogrammi)

� Sistemi di numerazione additivi (Romani, Egizi)

� Sistemi letterali (e.g. Sixty nine, Soixante dix-neuf, Settantanove)

� Notazioni posizionali (Babilonesi [base60], Hindu-Arabic [base10])

4 of 27

Page 5: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Basi informatiche

� Base-2 (Binario): rappresentazione grezza delle linee logiche

� Base-8 (Ottale): rappresentazione di 3 bit (deprecato)

� Base-16 (Esadecimale): rappresentazione 4 bit (e.g. Colori per CSS)

5 of 27

Page 6: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

De�nizioni di base

� Bit [0,1]: stato di una linea logica

� Byte [0,255]: 8 bit assieme (e.g. 1 carattere ASCII)

� Word [0,2bits − 1]: numero variabile di byte a seconda del sistema (e.g.�oat da 4byte)

6 of 27

Page 7: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

� Integer (8, 16, 32, 64 bit)� Unsigned: Da 0 a 2bit − 1� Signed: Da −2bit−1 a 2bit−1 − 1

� Float� Single: 1.175494351e−38 a 3.402823466e38

� Double: 2.2250738585072014e−308 a 1.7976931348623158e308

� Quad (There is no kill like overkill): 3.362e−4932 a 1.20e4932

N.B.

Per iniziare lavoreremo con i numeri naturali (interi positivi) a 8 bit. Ovveroda 0 a 255, come se stessimo giocando a Final Fantasy VII.

7 of 27

Page 8: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Strutture complesse

� Testo: Sequenza di byte o, nel caso di sistemi moderni, di word da 8 a 32bit (UTF-8)

� Immagini: Bitmap a profondità variabile (1, 8, 16, 24, 32 bit)� 1 bit: Bianco e Nero� 8 bit: 256 colori (NES! MSX2! :D Glorious Retrogaming)� 16 bit: 65536 colori (SNES, Windows 95)� 24 bit: 16 milioni di colori (Circa tutto adesso)� 32 bit: 16 milioni di colori + Alpha Channel

� Audio: Dati stereo codi�cati tramite Pulse Code Modulation (PCM)1

1Dannato PCM!8 of 27

Page 9: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Conversione base-10 a base-2Valore di un numero base-10

Un numero in base-10 è formato da unità, decine, centinaia, migl... blah blah.In pratica è la somma di multipli di potenze di 10, partendo da 100 = 1Quindi, se prendiamo un numero tipo il 8550016410 avremo:

9 of 27

Page 10: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Conversione base-10 a base-2Valore di un numero base-2

Alla stessa maniera un numero base-2 è formato da unità, due, quattro, ottoed avanti così per potenze di 2.La conversione, quindi, da base-2 a base-10 è molto semplice, basta sommarele potenze di 2 rappresentate dagli 1 e avremo così il numero in base-10.

10 of 27

Page 11: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Conversione base-10 a base-2

Ci sono due metodi per farlo:

� Divisione e Modulo: Continuare a dividere per due e mantenere il resto

� Sottrazione: Testare se il numero è contenuto in un multiplo di due, se sìve lo segnate da parte e poi lo sottraete dal numero e continuate così

11 of 27

Page 12: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Conversione base-10 a base-2Divisione e modulo

� Più facilmente implementabile

Data: n: Numero base-10 da convertireResult: s: Numero convertito in base-2s = stringa vuota;while n>0 do

s = (n mod 2) + s;n = n div 2;

end

9710 =??

n s

9748 124 0112 0016 00013 000011 1000010 1100001

9710 = 11000012

12 of 27

Page 13: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Conversione base-10 a base-2Divisione e modulo

� Più facilmente implementabile

Data: n: Numero base-10 da convertireResult: s: Numero convertito in base-2s = stringa vuota;while n>0 do

s = (n mod 2) + s;n = n div 2;

end

9710 =??

n s

9748 124 0112 0016 00013 000011 1000010 1100001

9710 = 11000012

12 of 27

Page 14: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Conversione base-10 a base-2Divisione e modulo

� Più facilmente implementabile

Data: n: Numero base-10 da convertireResult: s: Numero convertito in base-2s = stringa vuota;while n>0 do

s = (n mod 2) + s;n = n div 2;

end

9710 =??

n s

9748 124 0112 0016 00013 000011 1000010 1100001

9710 = 11000012

12 of 27

Page 15: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Conversione base-10 a base-2Sottrazione

� Terribile se usato con numeri grandi

Data: n: Numero base-10 da convertireResult: s: Numero convertito in base-2s = stringa vuota;i = massima potenza di due contenuta in n;repeat

if i ≤ n then

s = s + �1�;n = n - i;

else

s = s + �0�;end

i = i div 2;

until i=0 ;

11710 =??

n i s

117 6453 32 121 16 115 8 1115 4 11101 2 111011 1 1110100 0 1110101

11710 = 11101012

13 of 27

Page 16: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Conversione base-10 a base-2Sottrazione

� Terribile se usato con numeri grandi

Data: n: Numero base-10 da convertireResult: s: Numero convertito in base-2s = stringa vuota;i = massima potenza di due contenuta in n;repeat

if i ≤ n then

s = s + �1�;n = n - i;

else

s = s + �0�;end

i = i div 2;

until i=0 ;

11710 =??

n i s

117 6453 32 121 16 115 8 1115 4 11101 2 111011 1 1110100 0 1110101

11710 = 11101012

13 of 27

Page 17: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Conversione base-10 a base-2Sottrazione

� Terribile se usato con numeri grandi

Data: n: Numero base-10 da convertireResult: s: Numero convertito in base-2s = stringa vuota;i = massima potenza di due contenuta in n;repeat

if i ≤ n then

s = s + �1�;n = n - i;

else

s = s + �0�;end

i = i div 2;

until i=0 ;

11710 =??

n i s

117 6453 32 121 16 115 8 1115 4 11101 2 111011 1 1110100 0 1110101

11710 = 11101012

13 of 27

Page 18: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Somma di naturaliUn'introduzione, prima

A B Carry C Carry

0 0 0 0 01 0 0 1 00 1 0 1 01 1 0 0 10 0 1 1 01 0 1 0 10 1 1 0 11 1 1 1 1

A + B + Carry = C + Carry

14 of 27

Page 19: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Somma di naturaliEsempio

11710 + 9710 = 11101012 + 11000012 = ?

1 1 1 0 1 0 1 +1 1 0 0 0 0 1 =

1 1 0 1 0 1 1 0

110101102 = 21410

15 of 27

Page 20: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Somma di naturaliEsempio

11710 + 9710 = 11101012 + 11000012 = ?

1 1 1 0 1 0 1 +1 1 0 0 0 0 1 =

1 1 0 1 0 1 1 0

110101102 = 21410

15 of 27

Page 21: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Somma di naturaliEsempio

11710 + 9710 = 11101012 + 11000012 = ?

1 1 1 0 1 0 1 +1 1 0 0 0 0 1 =

1 1 0 1 0 1 1 0

110101102 = 21410

15 of 27

Page 22: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Sottrazione di naturaliOperazione di base e �Il prestito�

Come nella somma si va da destra a sinistra seguendo delle regole banali:

A 0 1 1 0

B 0 0 1 1

A-B 0 1 0 1

Nell'ultimo caso bisogna scorrere a sinistra �nchè non si trova un 1,invertendo il valore di tutte le cifre incontrate, 1 compreso.

10..0→ 01..1

16 of 27

Page 23: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Sottrazione di naturaliEsempio

21410 − 11710 = 110101102 − 11101012 = ?

1 1 0 1 0 1 1 0 -1 1 1 0 1 0 1 =

1 1 0 0 0 0 1

11000012 = 9710

17 of 27

Page 24: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Sottrazione di naturaliEsempio

21410 − 11710 = 110101102 − 11101012 = ?

1 1 0 1 0 1 1 0 -1 1 1 0 1 0 1 =

1 1 0 0 0 0 1

11000012 = 9710

17 of 27

Page 25: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Sottrazione di naturaliEsempio

21410 − 11710 = 110101102 − 11101012 = ?

1 1 0 1 0 1 1 0 -1 1 1 0 1 0 1 =

1 1 0 0 0 0 1

11000012 = 9710

17 of 27

Page 26: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Moltiplicazione di naturaliMoltiplicazione (e divisione) per potenze di due

Ok, se dobbiamo moltiplicare un numero base-10 per 10 dobbiamo...

Aggiungere uno 0 a destra.

18 of 27

Page 27: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Moltiplicazione di naturaliMoltiplicazione (e divisione) per potenze di due

Ok, se dobbiamo moltiplicare un numero base-10 per 10 dobbiamo...

Aggiungere uno 0 a destra.

18 of 27

Page 28: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Moltiplicazione di naturaliMoltiplicazione (e divisione) per potenze di due, cont.

Nel caso dei numeri base-2, aggiungere uno 0 a destra signi�ca moltiplicare ilnumero per 2, mentre eliminando la prima cifra a desra signi�ca dividere per 2.

Questa operazione è chiamata shifting, utilizzata spesso dai compilatori perottimizzare la moltiplicazione.

19 of 27

Page 29: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Moltiplicazione di naturaliMoltiplicazione tra due Naturali

Moltiplicare due numeri base-2 naturali altro non è che l'applicazione dishifting multipli e poi della somma sui risultati degli shifting.

Alla �ne non è di�erente dalla moltiplicazione in base-10, solo che è piùsemplice perché o bisogna sommare uno dei due moltiplicatori shiftati o nulla.

20 of 27

Page 30: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Moltiplicazione di naturaliEsempio

1310x1710 = 11012x100012 = ?

1 1 0 1 x1 0 0 0 1 =

1 1 0 1 +- +

- +- +

1 1 0 1

1 1 0 1 1 1 0 1

110111012 = 22110

21 of 27

Page 31: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Moltiplicazione di naturaliEsempio

1310x1710 = 11012x100012 = ?

1 1 0 1 x1 0 0 0 1 =

1 1 0 1 +- +

- +- +

1 1 0 1

1 1 0 1 1 1 0 1

110111012 = 22110

21 of 27

Page 32: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Moltiplicazione di naturaliEsempio

1310x1710 = 11012x100012 = ?

1 1 0 1 x1 0 0 0 1 =

1 1 0 1 +- +

- +- +

1 1 0 1

1 1 0 1 1 1 0 1

110111012 = 22110

21 of 27

Page 33: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Error CheckingOver�ow/Under�ow

Fino ad ora abbiamo sempre fatto calcoli pensando diavere cifre in�nite a nostra disposizone....Purtroppo, la realtà ci impone dei limiti di spazio,dettati dall'architettura di basso livello del calcolatore.A causa di questo si possono rischiare errori dasemplicemente stupidi a catastro�ci.

Tipo quello che è successo all'Ariane 5 501, missileGeostationary Transfer Orbit (GTO), progettato dallaAstrium per l'ESA. A causa di un errore di conversionee di mancato controllo degli Over�ow la casa diproduzione ha bruciato 370M$ in circa 40 secondi.

22 of 27

Page 34: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Error CheckingOver�ow/Under�ow

Fino ad ora abbiamo sempre fatto calcoli pensando diavere cifre in�nite a nostra disposizone....Purtroppo, la realtà ci impone dei limiti di spazio,dettati dall'architettura di basso livello del calcolatore.A causa di questo si possono rischiare errori dasemplicemente stupidi a catastro�ci.

Tipo quello che è successo all'Ariane 5 501, missileGeostationary Transfer Orbit (GTO), progettato dallaAstrium per l'ESA. A causa di un errore di conversionee di mancato controllo degli Over�ow la casa diproduzione ha bruciato 370M$ in circa 40 secondi.

22 of 27

Page 35: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Error CheckingOver�ow/Under�ow cont.

Possiamo immaginare i numeri in base-2 con una quantità limitata di cifrecome se fossero posti intorno ad una ruota:

23 of 27

Page 36: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Error CheckingOver�ow/Under�ow cont.

Nel caso precedente il numero è formato al massimo da 3 cifre binarie, quindi,se noi provassimo a calcolare 1112 + 12 il risultato dovrebbe essere 10002, soloche non abbiamo abbastanza cifre per contenere tutte le informazioni.Il risultato sarà quindi 0002. In pratica, 710 + 110 = 010.

Fortunatamente le ALU contengono delle �ag che indicano se è avvenuto unover�ow (o un under�ow) durante un'operazione aritmetica.

24 of 27

Page 37: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Error CheckingOver�ow/Under�ow cont.

Nel caso precedente il numero è formato al massimo da 3 cifre binarie, quindi,se noi provassimo a calcolare 1112 + 12 il risultato dovrebbe essere 10002, soloche non abbiamo abbastanza cifre per contenere tutte le informazioni.Il risultato sarà quindi 0002. In pratica, 710 + 110 = 010.

Fortunatamente le ALU contengono delle �ag che indicano se è avvenuto unover�ow (o un under�ow) durante un'operazione aritmetica.

24 of 27

Page 38: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Aggiungere il segno agli interi

Il supporto per i numeri negativi è stato aggiunto in vari modi2:

� Segno-e-Modulo: Un bit fa da segno, gli altri sono il valore del numero

� Complemento ad 1: Per avere il numero negativo invertiamo tutti i bit.

� Complemento a 2: Facciamo il complemento ad 1 e poi sommiamo 1.

2I quali dimezzano il numero massimo rappresentabile25 of 27

Page 39: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Aggiungere il segno agli interiRappresentazione in Segno-e-Modulo

� Più vicino (Anzi, esattamente IL) al metodo usato per la rappresentazionedei negativi nei �oat

� Permette l'esistenza di due 0: +0 e −0� Richiede una logica più complessa per venir implementato.

26 of 27

Page 40: Architettura degli elaboratori 2012/2013 - dit.unitn.itpalopoli/courses/Arch/ArchEs1.pdf · Architettura degli elaboratori 2012/2013 Rappresentazione ed aritmetica binaria di base

Aggiungere il segno agli interiComplemento a 2

Il complemento ad 1 è migliore del Segno-e-Modulo per gli interi, ma haancora dei problemi, tipo il doppio 0 oppure il fatto che è macchinoso a causadell'o�set di −1 dei numeri negativi.Per questo è stato inventato il complemento a 2:

� Solo uno 0

� Trasparente per somma, sottrazione e moltiplicazione

� Per questo molto più facilmente implementabile a livello hardware

27 of 27