ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b...

30
ARITMETICA ARITMETICA BINARIA BINARIA

Transcript of ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b...

Page 1: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

ARITMETICAARITMETICABINARIABINARIA

Page 2: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Rappresentazione BinariaRappresentazione Binaria

Un numero binario è un vettore di n bit:

B = bn-1 bn-2….. b1 b0

con bi {0,1} con 0 i n-1

questo vettore rappresenta valori interi positivi V(B) {0,2n-1}

V(B) = bn-1 • 2n-1+…..+ b1 • 21+ b0 • 20

Page 3: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Rappresentazione Numeri con segnoRappresentazione Numeri con segno

1. Modulo e Segno

2. Complemento a 1

3. Complemento a 2

Page 4: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

xi yi ci si ci+1

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

Addizione di numeri positiviAddizione di numeri positivi

si= xi yi ci + xi yi ci + xi yi ci + xi yi ci

ci+1= xi yi ci + xi yi ci + xi yi ci + xi yi ci

= yi ci + xi ci + xi yi

Page 5: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Struttura di un SommatoreStruttura di un Sommatore

si= xi yi ci + xi yi ci + xi yi ci + xi yi ci

yi

xi

si

ci

Page 6: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Struttura di un SommatoreStruttura di un Sommatore

ci= yi ci + xi ci + xi yi

yi

xi

ci+1

ci

Page 7: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Sommatore a propagazione di riportoSommatore a propagazione di riporto

xi yi

si

cici+1Adder

x0 y0

s0

c0

c1Adder

x1 y1

s1

cn-1

Adder…..

xn-1 yn-1

sn-1

Addercn c2

Page 8: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

PrestazioniPrestazioni

Operazione di somma in un ciclo di clock

Clock = 100 Mhz Ciclo = 10 ns

Ritardo ci e ci+1 = 1 ns Ritardo per p.l. = 0.5 ns

Tempo x 32 bit = (31x1)+1.5 = 32.5ns > 10ns

Adottare una tecnologia più veloce

Struttura di rete logica più efficiente

Page 9: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Rete logica + efficienteRete logica + efficiente

si= xi yi ci + xi yi ci + xi yi ci + xi yi ci

ci+1= yi ci + xi ci + xi yi

ci+1= xi yi + (yi + xi )ci

Gi= xi yi Pi= (yi + xi )

G = funzione di generazione

P = funzione di propagazione

ci+1= Gi + PiGi-1 + Pi Pi-1Gi-2 + ….. + Pi Pi-1 …. P1G0 + Pi Pi-1 …. P0c0

Page 10: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Sommatore ad anticipo di riportoSommatore ad anticipo di riporto

x3

s1

c0c4Adder

c4= G3 + P3G2 + P3 P2G1 + P3 P2 P1G0 + P3 P2 P1P0c0

x2 x1 x0

s0s2s3

x3

s1

c0

c4Adder

x2 x1 x0

s0s2s3

x7

s5

c8Adder

x6 x5 x4

s4s6s7

…..

x31

s29

c31c32Adder

x30 x29 x28

s28s30s31

Page 11: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Addizione e sottrazione con segnoAddizione e sottrazione con segno

SOMMAsommare bit a bit le rappresentazionidei due addendi ignorando il riportodalla posizione più significativa.

DIFFERENZA

sommare il numero con il complemento a 2 del sottraendo.

Risultato [-2n-1, 2n-1 –1] OVERFLOW

Page 12: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

OVERFLOWOVERFLOW

Per numeri positivi il riporto è un indicatore di overflow

Non valido per aritmetica con segno

Verificare per : (+7) + (+4) e (-4) + (-6)

Regole per l’overflow

si verifica quando si sommanonumeri concordi in segno

il riporto non è sufficiente

Page 13: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Condizione di OverflowCondizione di Overflow

Se i due addendi hanno segno concorde l’overflowsi verifica quando la somma ha segno diverso daQuello degli addendi

OVERFLOW = xn-1 yn-1sn-1 + xn-1 yn-1sn-1

Page 14: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Moltiplicazione tra numeri positiviMoltiplicazione tra numeri positiviMolt.do

Molt.ore

0

0

0

0

0000

m0m1m2m3m4m5m6m7

Parz. m

q

ci-1

ci

s

A

Page 15: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Algoritmo di BoothAlgoritmo di Booth

Si verifica con le seguenti regole scorrendo il numero binarioDa destra a sinistra

bit i+1 bit i

0 0 0 x Moltiplicando

0 1 1 x “”

1 0 -1 x “”

1 1 0 x “”

Es: 110110 0-1+10-10

Page 16: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Codifica a coppie di bitCodifica a coppie di bit

Bit

i+1

Bit

i

Bit

i-1

Risultato

0 0 0 0

0 0 1 +1

0 1 0 +1

0 1 1 +2

1 0 0 -2

1 0 1 -1

1 1 0 -1

1 1 1 0

Es: 11010 00-1+1-10 0 -1 -2

Page 17: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Divisione tra interiDivisione tra interi

Sommatorea n bit

0n-1 0

0

n-1

n-1

Registro A Quoziente

Divisore

Macchina Sequenzialedi controllo

Add/Sub

Left shift

Page 18: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Rappresentazione Floating PointRappresentazione Floating Point

Un numero binario è un vettore di n bit:

B = bn-1 bn-2….. b1 b0

con bi {0,1} con 0 i n-1

questo vettore rappresenta valori interi positivi V(B) {0,2n-1}

V(B) = bn-1 • 2n-1+…..+ b1 • 21+ b0 • 20

Page 19: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Rappresentazione Floating PointRappresentazione Floating Point

B = bn-1 bn-2….. b1 b0.

V(B) = -b0 • 20+…..+ b-(n-2) • 2-(n-2)+ b-(n-1) • 2-(n-1)

B = b0. b-1….. b - (n-2) b- (n-1)

Rappresenta numeri nell’intervallo:

-1 V(B) 1 –2-(n-1)

Page 20: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Rappresentazione Floating PointRappresentazione Floating Point

Se n=32

Come Interi: [-231, 231] [-2.15 x 109, 2.15 x 109 ]

Come floating point:

[ -1, 1-2-31] [-1, 1[

con precisione fino a 4.66 x 10-10

Page 21: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Rappresentazione Floating PointRappresentazione Floating Point

m0. m1 m2 m3 m4 m5 m6 x 10 xy

Rappresenta numeri:

[-1.0 x 1099 , 1.0 x 1099]

Con 32 bit:

8 bit 23 bit

Bit segno

esponenteexcess-127

mantissa

Page 22: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Rappresentazione Floating PointRappresentazione Floating Point

8 bit 23 bit

Bit segno

esponenteexcess-127

mantissa

Single Precision (1038 con mantissa a 7 cifre decimali):

Double Precision (10308 con mantissa a 16 cifre decimali):

11 bit 52 bit

Bit segno

esponenteexcess-1023

mantissa

Page 23: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Operazioni Floating PointOperazioni Floating Point

Somma e differenza

1. Prende il numero con esponente più piccolo e shiftare la mantissa a sinistra un numero di volte pari alla differenza dei due esponenti

3. Eseguire la somma o la differenza tra le mantisse

2. Assegnare al risultato l’esponente più grande

4. Normalizzare il risultato

Page 24: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Operazioni Floating PointOperazioni Floating Point

Prodotto:

1. Sommare gli esponenti e sottrarre 127

3. Normalizzare il risultato

2. Prodotto delle mantisse

Page 25: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Operazioni Floating PointOperazioni Floating Point

Divisione:

1. Sottrarre gli esponenti e sommare 127

3. Normalizzare il risultato

2. Divisione delle mantisse

Page 26: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

ApprossimazioneApprossimazione

Chopping (approssimazione polarizzata (biased)):

Da 0. b-1 b-2 b-3 000 a 0. b-1 b-2 b-3 111

0. b-1 b-2 b-3

Arrotondamento di Von Neumann (approssimazione unbiased):

Se 0. b-1 b-2 b-3 000 0. b-1 b-2 b-3

Se 0. b-1 b-2 b-3 xxx con almeno un x=1 0. b-1 b-2 1

Page 27: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

ApprossimazioneApprossimazione

Arrotondamento:

Se 0. b-1 b-2 b-3 xyz se x=0 allora 0. b-1 b-2 b-3

Se 0. b-1 b-2 b-3 xyz se x=1 allora 0. b-1 b-2 b-3 + 0.001

Errore da –1/2 a +1/2

Standard IEEE per operazioni Floating Point

Page 28: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

PROCESSORIPROCESSORIA CONFRONTOA CONFRONTO

Page 29: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Processor PerformancesProcessor Performances

Page 30: ARITMETICA BINARIA. Rappresentazione Binaria Un numero binario è un vettore di n bit: B = b n-1 b n-2 ….. b 1 b 0 con b i {0,1} con 0 i n-1 questo vettore.

Processor PerformancesProcessor Performances