aritmetica - intranet deibhome.deib.polimi.it/silvano/filepdf/archi/aritmetica.pdf · 1010 10 -2...
Post on 24-Jan-2019
225 Views
Preview:
TRANSCRIPT
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 1
Aritmetica binaria
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 2
Codifica binaria dell’informazione
Il calcolatore utilizza un alfabeto binario: usiamo dispositivi elettronici digitali in grado di assumere due solo stati: acceso/spento, ON/OFF, 1/0, VERO/FALSO.Un alfabeto binario non limita le funzionalità di un calcolatore.Il simbolo o cifra binaria si indica con bit (da Binary digIT): quantità d’informazione che si ottiene selezionando una configurazione da un insieme che ne contiene due.La risposta SI oppure NO a una domanda porta 1 bitdi informazione.
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 2
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 3
Codifica binaria
Numeri binari: base b = 2Alfabeto binario: cifre ci ∈ { 0 , 1}
Notazione posizionale in base 2:(ck … c1 c0)2 rappresenta: N = ck x 2k + ck-1 x 2k-1 + … + c0 x 20 =
= Σ(i=0… k) ci x 2 i
c0 bit meno significativock bit più significativo
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 4
Codifica binaria su n bit
Con una sequenza di n bit si possono rappresentare 2n numeri interi assoluti da 0 a 2n-1.Esempio: n = 4 bit ⇒ 24 = 16 numeri interi assoluti da 0 a 15.La lunghezza delle sequenze di bit adottate stabilisce il massimo numero che può essere rappresentato.
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 3
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 5
Codifica binaria su n+1 bit
Se passiamo da una sequenza di lunghezza n bit ad una sequenza di n+1 bit si raddoppiano i numeri che si possono rappresentare (2n+1).Esempio: • n = 4 bit ⇒ 24 = 16 numeri da 0 a 15.• n = 5 bit ⇒ 25 = 32 numeri da 0 a 31.
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 6
Codifica binaria su 2n bit
Se raddoppiamo la lunghezza di una sequenza dan bit a 2n bit i numeri che si possono rappresentare aumentano esponenzialmente (22n)Esempio: • n = 4 bit ⇒ 24 = 16 numeri da 0 a 15.• n = 8 bit ⇒ 28 = 256 numeri da 0 a 255.
Esempio: Con 32 bit si possono rappresentare 232 numeri naturali da 0 a 232-1= 4 294 967 295 ≈ 4 x 109.Con 64 bit si possono rappresentare 264 numeri naturali da 0 a 264-1= 16 x 1018 = 1,6 x 1019
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 4
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 7
Addizione binaria
Addizione binaria tra due bit (a + b):oltre al bit di somma S occorre memorizzare il bit di riporto R (carry):
1011
0101
0110
0000
RSba
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 8
Addizione binaria su n bit
Addizione binaria tra due numeri interi assoluti di lunghezza n bit:• si allineano i due numeri in colonne da destra verso
sinistra (cioè partendo dal bit meno significativo);• si eseguono le somme bit a bit da destra verso
sinistra considerando per ogni colonna (successiva alla colonna corrispondente al bit meno significativo) il riporto generato dalla colonna alla sua destra
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 5
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 9
Addizione binaria tra 2 bit ai e bi con riporto in ingresso Ri
11111
10011
10101
01001
10110
01010
01100
00000
Ri+1SiRibiai
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 10
Esempio
4 bit: A = 0101 B = 0011R 1 1 1A 0 1 0 1 510
B 0 0 1 1 310
A+B 1 0 0 0 810
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 6
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 11
Overflow
Se si considerano due numeri interi assoluti rappresentati su n bit ⇒ si verifica la condizione di overflow ogni volta che il risultato supera 2n-1Esempio: 4 bit: A = 0101 B = 1011R 1 1 1 1A 0 1 0 1 510
B 1 0 1 1 1110
A+B 1 0 0 0 0 1610
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 12
Rappresentazione dei numeri interi relativi (o con segno)
Codifica modulo e segno
Codifica in complemento a due
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 7
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 13
Codifica modulo e segno
Soluzione: indicare il segno seguito dal valore assoluto.• 1 bit per indicare il segno
(convenzione: 0 positivo e 1 negativo)• Restanti (n-1) bit per rappresentare il modulo (o valore
assoluto) del numero
Indispensabile indicare il numero n di bit utilizzati• Esempio: 4 bit +610 = 0110ms –610 = 1110ms
Problema: ci sono 2 rappresentazioni dello zero: • Esempio: 4 bit +010 = 0000ms –010 = 1000ms
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 14
Codifica modulo e segno
Con una sequenza di n bit si possono rappresentare 2n numeri interi assoluti da 0 a 2n-1.Con una sequenza di n bit si possono rappresentare con la codifica modulo e segno 2n-1 numeri interi relativi compresi nell’intervallo da – (2n-1 –1) a 2n-1-1.Esempio: • 4 bit ⇒ 16 numeri interi assoluti da 0 a 15• 4 bit ⇒ 15 numeri interi relativi da –7 a 7
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 8
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 15
Diverse interpretazioni della codifica binaria su 4 bit
000000
-7151111
-6141110
-5131101
-4121100
-3111011
-2101010
-191001
-081000
770111
660110
550101
440100
330011
220010
110001
Rappr. numeri interirelativi (modulo e segno)
Rappres. numeri interi assoluti
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 16
Codifica in complemento a due
Alfabeto binario:• Anche il segno è rappresentato da 0 o 1• Indispensabile indicare il numero n di bit utilizzati
Complemento a due:• Date le sequenze di n bit, per rappresentare il
numero X si utilizza il valore binario corrispondente a 2n + x
• Esempio: • 4 bit +610 ⇒ 24 + 6 = 22 ⇒ [1] 0110 ⇒ 0110C2
• 4 bit -610 ⇒ 24 - 6 = 10 ⇒ [0] 1010 ⇒ 1010C2
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 9
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 17
Codifica in complemento a due
Con una sequenza di n bit si possono rappresentare con la codifica in complemento a due 2n numeri interi relativi compresi nell’intervallo da – 2n-1 a 2n-1-1.Esempio: 4 bit ⇒ 16 numeri interi relativi da –8 a 7Notare: c’è una sola rappresentazione dello zero:• 4 bit: +010 = 0000C2 (mentre 1000C2 = -810)
Ciò impedisce il bilanciamento tra numeri positivi e negativi: • 4 bit: zero + 7 numeri positivi (fino a 7) + 8 numeri negativi
(fino a –8).
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 18
Codifica in complemento a due
Primo metodo pratico per calcolare la rappresentazione di –X a partire da quella di X:• Effettuare il complemento di ogni bit di X e
aggiungere 1.
Esempio: 4 bit • +610 = 0110C2
• Complemento di tutti i bit: 1001C2
• Aggiungere 1: (1001 + 0001) = 1010C2 = -610
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 10
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 19
Codifica in complemento a due
Secondo metodo pratico per calcolare la rappresentazione di –X a partire da quella di X:• Partendo da destra verso sinistra, lasciare invariati
tutti i bit fino al primo 1 compreso, e complementare tutti gli altri bit.
Esempio: 4 bit • +610 = 0110C2
• Gli ultimi due bit rimangono invariati __10 • Complementare gli altri 2 bit: 1010C2 = -610
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 20
Diverse interpretazioni della codifica binaria su 4 bit
-1-7151111
-2-6141110
-3-5131101
-4-4121100
-5-3111011
-6-2101010
-7-191001
-8-081000
7770111
6660110
5550101
4440100
3330011
2220010
1110001
0000000
Rappr. numeri interirelativi (C2)
Rappr. numeri interirelativi (MS)
Rappres. numeri interi assoluti
minint
maxint
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 11
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 21
Codifica in complemento a due
Data la rappresentazione di un numero su n bit, la rappresentazione dello stesso numero su n+1 bit si ottiene aggiungendo a sinistra un bit uguale al bit più significativo (operazione di estensione del segno – sign extension) in modo da rispettare il valore del numero.Esempio: • Rappresentazione di –6 su 4 bit = 1010C2
• Rappresentazione di –6 su 5 bit = 11010C2
• Rappresentazione di –6 su 8 bit = 11111010C2
• Rappresentazione di –6 su 16 bit = 1111111111111010C2
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 22
Codifica in complemento a due
Operazione di estensione del segno (sign extension)• Propagazione a sinistra del MSB (rispetta il valore del
numero)
Operazione di estensione di zero (zero extension)• Riempimento con 0 dei bit più significativi (può non
rispettare il valore del numero).• Es.: da 4 a 8 bit: 0011 ⇒ 0000 0011 (da 3 a 3)• Es.: da 4 a 8 bit: 1010 ⇒ 0000 1010 (da –6 a 10)
Nella costruzione di costanti su32 bit (superiori a 65535) può servire il riempimento con 0.
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 12
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 23
Numeri in C2 su 32 bit0000 0000 0000 0000 0000 0000 0000 00002 = 010
0000 0000 0000 0000 0000 0000 0000 00012 = 110
0000 0000 0000 0000 0000 0000 0000 00102 = 210
….0111 1111 1111 1111 1111 1111 1111 11012 = 2 147 483 64510
0111 1111 1111 1111 1111 1111 1111 11102 = 2 147 483 64610
0111 1111 1111 1111 1111 1111 1111 11112 = 2 147 483 64710
1000 0000 0000 0000 0000 0000 0000 00002 = -2 147 483 64810
1000 0000 0000 0000 0000 0000 0000 00012 = -2 147 483 64710
1000 0000 0000 0000 0000 0000 0000 00102 = -2 147 483 64610
….1111 1111 1111 1111 1111 1111 1111 11012 = -310
1111 1111 1111 1111 1111 1111 1111 11102 = -210
1111 1111 1111 1111 1111 1111 1111 11112 = -110
minint
maxint
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 24
Osservazioni
In entrambe le rappresentazioni (MS e C2) i numeri positivi iniziano con 0, quelli negativi con 1 (è come se il primo bit rappresentasse il segno del numero).Nella rappresentazione C2:• 1000 … 0000 è minint• 1111 … 1111 è -1
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 13
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 25
Osservazioni
Principale vantaggio della notazione in complemento a due: la sottrazione tra due numeri (a – b) si effettua come somma algebrica a + (-b)C2
Esempi:4 – 6 = 4 + (-6)C2 = 0100 + 1010 = 1110 = (-2)C2
7 – 3 = 7 + (-3)C2 = 0111 + 1101 = [1]0100 = +4
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 26
Somma algebrica
Si consideri l’operazione di somma algebrica di due numeri interi di n bit dotati di segno e rappresentati in complemento a dueIl risultato dell’addizione è corretto, a patto che cada nel campo dei valori rappresentabili (-2n-1 ≤ N ≤ 2n-1 –1), pur di trascurare l’eventuale riporto in uscita dal bit piùsignificativo.
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 14
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 27
Esempi
2 + 3 = 0010 + 0011 = 0101 = 5-5 - 2 = (-5)+ (-2) = 1011 + 1110 = [1]1001 = -7-3 – (-7) = (-3)+ 7 = 1101 + 0111 = [1]0100 = +4-7 – 1 = (-7)+ (-1) = 1001 + 1111 = [1]1000 = -8+2 – (-3) = 2 + 3 = 0010 + 0011 = 0101 = +5
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 28
Overflow/underflow
Il segnale di riporto in uscita non è sufficiente per indicare un overflow/underflow di una somma algebrica di numeri interi con segno.Sommando 2 numeri di n bit, la somma può eccedere gli n bit (il bit di segno prende il valore del risultato anziché il valore del segno corretto).Si ha superamento di capacità se:• Sommando due numeri positivi si ottiene un risultato
negativo (generazione di overflow)• Sommando due numeri negativi si ottiene un risultato
positivo (generazione di underflow)
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 15
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 29
Esempi
7 + 4 = 0111 + 0100 = 1011 = -5 NO! OVERFLOW!-4 - 6 = (-4)+ (-6) = 1100 + 1010 = [1]0110 = 6 NO! UNDERFLOW!
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 30
Overflow/underflow
Nel processore MIPS le istruzioni:• add, addi, sub causano eccezione in caso di
overflow• addu, addiu, subu NON causano eccezione in
caso di overflow (utili per manipolare indirizzi di memoria).
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 16
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 31
Caratteristiche dei numeri in C2
Una sola rappresentazione dello 0Intervallo di rappresentazione asimmetico • -231; 231 – 1
MSB rappresenta il bit di segnoOccorre fare attenzione tra la rappresentazione di numeri signed e unsignedLa sottrazione tra due numeri si effettua come somma algebrica
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 32
Caratteristiche dei numeri in C2
Signed vs. unsigned• Gli indirizzi di memoria sono solo positivi (sfruttano
tutti e 32 i bit): • (2 32–1) max indirizzo di memoria possibile
• MSB = 1 in un numero unsigned più grande di 0111 … 1111 (maxint)
• MSB = 0 non c’è differenza tra unsigned e signed.
Nel processore MIPS ci sono istruzioni apposite che operano con numeri unsigned
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 17
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 33
Circuiti Aritmetici
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 34
Half Adder
Addizionatore binario tra due bit (xi + yi)con uscite il bit di somma si e il bit di riporto ci+1 (carry):
1011
0101
0110
0000
ci+1siyixiHALF
ADDERxi
yi
si
ci+1
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 18
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 35
Half Adder
si = xi xor yici+1 = xi and yi
xi
yi
si
ci+1
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 36
Full Adder
Addizionatore binario tra due bit (xi + yi) con riporto in ingresso ci (carry in) e con uscite il bit di somma si e il bit di riporto ci+1 (carry out):
FULL ADDERxi
ci
si
ci+1
yi
11111
10011
10101
01001
10110
01010
01100
00000
ci+1siciyixi
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 19
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 37
Full Adder: Implementazione
Calcoliamo la prima forma canonica di si e ci+1
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
Possiamo semplificare ci+1:ci+1 = xi’ yi ci + xi yi ci+ xi yi’ ci + xi yi ci+ xi yi ci’ + xi yi ci
= (xi’ + xi ) yi ci+ (yi’ + yi ) xi ci+ (ci’ + ci ) xi yi
= 1 yi ci+ 1 xi ci+ 1 xi yi
= yi ci+ xi ci+ xi yi
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 38
Full Adder: Implementazione AND-OR (2 livelli)
si = xi’ yi’ ci + xi’ yi ci’ + xi yi’ ci’ + xi yi ci
ci+1 = xi yi + xi ci + yi ci
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 20
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 39
Full Adder: Implementazione con Half Adder
Oppure possiamo riscrivere si e ci+1 come:si = xi’ yi’ ci + xi’ yi ci’ + xi yi’ ci’ + xi yi ci
= ci (xi’ yi’ + xi yi ) + ci’ ( xi’ yi + xi yi’ )= ci (xi xor yi)’ + ci’ ( xi xor yi)= (xi xor yi) xor ci
ci+1 = xi’ yi ci + xi yi’ ci + xi yi ci’ + xi yi ci
= ci (xi’ yi + xi yi’ )+ xi yi (ci’ + ci)= ci (xi xor yi)+ xi yi
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 40
Full Adder: Implementazione con Half Adder
HALF ADDERxi
yi
si
ci+1
xi
yi
ci
si
ci+1
HALF ADDERxi
yi
si
ci+1
FULL ADDER
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 21
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 41
Full Adder: Generico stadio i di un addizionatore su n bit
FAxi
ci+1si
ci
yi
Ogni stadio i possiede un bit di riporto in ingresso ci(carry in) dallo stadio precedente (i-1) e un bit di riporto in ingresso ci+1 (carry out) verso lo stadio successivo (i+1).
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 42
Full Adder su n-bit
Per realizzare un addizionatore binario tra due vettori da n bit (X + Y) con riporto in ingresso ci (carryin) e con uscite il vettore somma S e il bit di riporto ci+1 (carry out): Si devono sommare le coppie di bit dei 2 vettori partendo dal bit meno significativo (a destra) e propagando il riporto verso le posizioni più significative (a sinistra)
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 22
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 43
Esempio: 4-bit Ripple Carry Adder
Addizionatore a propagazione di riporto per numeri binari su 4 bit
c4
FAxi
ci+1si
ci
yi
FAxi
ci+1si
ci
yi
FAxi
ci+1si
ci
yi
FAxi
ci+1si
ci
yi c0c1c2c3
y0x0y1x1y2x2y3x3
4-bit RCA s0s1s2s3
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 44
Esempio: 4-bit Ripple Carry Adder
Quando c4=1:• Condizione di overflow cioè il risultato non può
essere rappresentato su 4 bit.• Oppure c4 può rappresentare il riporto verso un
successivo stadio nel caso di implementazione a cascata di addizionatori da 4 bit
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 23
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 45
8-bit Ripple Carry Adder
4RCA
x3 0
c4
s3 0
c0
y3 0
4RCA
x3 0
c4
s3 0
c0
y3 0
y3 0x3 0y7 4x7 4
s3 0s7 4
c0c8
8-bit RCA
c4
Addizionatore a propagazione di riporto per numeri binari su 8 bit realizzato con 2 stadi da 4 bit collegati in cascata.
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 46
32-bit Ripple Carry Adder
Addizionatore a propagazione di riporto per numeri binari su 32 bit realizzato con 8 stadi da 4 bit collegati in cascata.
4RCA
x3 0
c4
s3 0
c0
y3 0
4RCA
x3 0
c4
s3 0
c0
y3 0
y3 0x3 0y31 28x31 28
s3 0s31 28
c0c32
32-bit RCA
c4…
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 24
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 47
32-bit Ripple Carry Adder
Addizionatore a propagazione di riporto per numeri binari su 32 bit realizzato con 4 stadi da 8 bit collegati in cascata.
8RCA
x70
c8
s70
c0
y70
8RCA
x70
c8
s70
c0
y70
y7 0x7 0y31 24x31 24
s7 0s31 24
c0c32
32-bit RCA
c8…
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 48
Numeri in C2 su n-bit
Si considerino i numeri interi con segno rappresentati in complemento a 2 su n bit.Per sommare due numeri X e Y occorre fornire la loro rappresentazione in C2 all’addizionatore e ignorare il riporto in uscita dal bit più significativo. La somma in uscita costituisce il valore algebrico corretto del risultato in C2 per risultati compresi tra -2n-1 ≤ N ≤ 2n-1 –1
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 25
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 49
Numeri in C2 su n-bit
Per sottrarre due numeri (X – Y) occorre calcolare il C2 di Y e sommarlo ad X come nel caso precedente. La somma in uscita costituisce il valore algebrico corretto del risultato in C2 per risultati compresi tra -2n-1 ≤ N ≤ 2n-1 –1.L’operazione di sottrazione richiede il calcolo del C2 del sottraendo.
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 50
4-bit Ripple Carry Adder/Sub
Addizionatore/Sottrattore a propagazione di riporto per numeri interi con segno in C2 su 4 bit
c4FA
xi
ci+1si
ci
yi
FAxi
ci+1si
ci
yi
FAxi
ci+1si
ci
yi
FAxi
ci+1si
ci
yi c0c1c2c3
x0x1x2x3
4-bit RCA s0s1s2s3
y0y1y3 y2
ADD/SUB
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 26
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 51
4-bit Ripple Carry Adder/Sub
Il segnale di controllo ADD/SUB è c0:c0=0 per ADD (Applicati gli ingressi yi)c0=1 per SUB (Applicati gli ingressi yi’ con incremento di 1 per calcolare il C2 di Y).Seconda soluzione: posso sostituire gli xor con dei mux2 e degli inverter nel seguente modo.Anche in questo caso il segnale di controllo ADD/SUB è c0
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 52
4-bit Ripple Carry Adder/Sub
Addizionatore/Sottrattore a propagazione di riporto per numeri interi con segno in C2 su 4 bit
c4FA
xi
ci+1si
ci
yi
FAxi
ci+1si
ci
yi
FAxi
ci+1si
ci
yi
FAxi
ci+1si
ci
yi c0c1c2c3
x0x1x2x3
4-bit RCA s0s1s2s3
y0y1y3 y2
ADD/SUB
0 10 10 10 1
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 27
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 53
Rappresentazione in C2
La rappresentazione dei numeri interi con segno in C2 viene scelta nei calcolatori per la semplicità e velocità delle operazioni aritmetiche di somma e sottrazione.
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 54
Overflow
Per le somme di numeri interi senza segno, il riporto in uscita indica la condizione di overflow oppure il riporto verso uno stadio successivo.Per le somme di numeri interi con segno in C2, l’overflow(underflow) si verifica quando si sommano due numeri dello stesso segno e il segno della somma non è concorde con il segno dei due numeri.
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 28
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 55
Overflow per numeri in C2 su 4-bit
V
x3 y3 s3 y3x3 s3
V = x3y3s3’ + x3’ y3’ s3
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 56
Ripple Carry Adder
La commutazione dei circuiti combinatori non è istantanea, ma richiede un tempo di propagazionedel segnale elettrico che dipende dal numero di livelli logici attraversati dal segnale.Per esempio un’implementazione di tipo AND-OR richiede 2 livelli logici.Problema: L’addizionatore con propagazione di riporto è lento:• Il riporto si propaga sequenzialmente
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 29
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 57
4-bit Ripple Carry Adder
Rivediamo il calcolo del riporti e dei ritardi associati:c1 = x0 y0 + x0 c0 + y0 c0 2 livellic2 = x1 y1 + x1 c1 + y1 c1 =
= x1 y1 + x1 (x0 y0 + x0 c0 + y0 c0) ++ y1 (x0 y0 + x0 c0 + y0 c0) 4 livelli
c3 = x2 y2 + x2 c2 + y2 c2 == x2 y2 + x2 (x1 y1 + ….) + y2 (x1 y1 + …) 6 livelli
c4 = x3 y3 + x3 c3 + y3 c3 == x3 y3 + x3 (x2 y2 + ….) + y3 (x2 y2 + …) 8 livelli
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 58
4-bit Ripple Carry Adder
Il ritardo nel calcolo del riporto incide sul ritardo associato ai bit di somma:
s0 = x0’ y0’ c0 + x0’ y0 c0’ + x0 y0’ c0’ + x0 y0 c0 2 livellis1 = x1’ y1’ c1 + x1’ y1 c1’ + x1 y1’ c1’ + x1 y1 c1 4 livellis2 = x2’ y2’ c2 + x2’ y2 c2’ + x2 y2’ c2’ + x2 y2 c2 6 livellis3 = x3’ y3’ c3 + x3’ y3 c3’ + x3 y3’ c3’ + x3 y3 c3 8 livelli
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 30
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 59
Ripple Carry Adder
Si consideri un RCA su 16-bit. Calcolare i ritardi associati ai bit c16, s15.
Si consideri un RCA su 32-bit. Calcolare i ritardi associati ai bit c32, s31.
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 60
Ripple Carry Adder
Il calcolo del riporto è troppo lento per n grande.Obiettivo: modificare l’algoritmo il modo da esprimere il riporto in modo non sequenzialeProgettazione di addizionatori veloci: Addizionatori con anticipo del calcolo del riporto (Carry Look Ahead Adder).
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 31
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 61
Carry Look Ahead Adderci+1 = xi yi + xi ci + yi ci = xi yi + (xi + yi) ci =
= Gi + Pi ci dove:Gi = xi yi GenerazionePi = xi + yi Propagazione
Se Gi = 1 ⇒ ci+1 = 1 indipendentemente da ciSe Pi = 1 ⇒ un riporto in ingresso ci genera un riporto in uscita ci+1Le funzioni Gi e Pi possono essere generate in maniera indipendente e in parallelo, dati xi e yi con un ritardo pari ad una porta logica elementare (1 livello).
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 62
4-bit Carry Look Ahead Adder
Calcolo del riporti e dei ritardi associati: c1 = G0 + P0 c0 3 livellic2 = G1 + P1 c1 = G1 + P1 G0 + P1 P0 c0 3 livellic3 = G2 + P2 c2 =
= G2 + P2 G1 + P2 P1 G0 + P2 P1 P0 c0 3 livellic4 = G3 + P3 c3 =
= G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 G0 + P3 P2 P1 P0 c03 livelli
Si noti che c4 che utilizza porte logiche a 5 ingressi
28/04/2003
Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 32
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 63
n-bit Carry Look Ahead Adder
Il ritardo associato ai riporti ci è pari a 3 livelli (1 livello per Pi e Gi e 2 livelli per AND-OR) INDIPENDENTEMENTE DA n.Il ritardo associato ai bit di somma:
si = xi’ yi’ ci + xi’ yi ci’ + xi yi’ ci’ + xi yi ci
è pari a 5 livelli (3 livelli per ci e 2 livelli per AND-OR) INDIPENDENTEMENTE DA n.
28/04/2003 Corso Architettura degli Elaboratori e delle Reti – prof. C. Silvano 64
n-bit Carry Look Ahead Adder
Problema: L’estensione del CLA a n bit porta ad introdurre delle porte logiche a molti ingressi (in pratica aumenta il numero dei livelli logici)Soluzioni: • Combinare 8 addizionatori CLA a 4 bit in modo
seriale (con propagazione di riporto)• Oppure usiamo 8 addizionatori CLA a 4 bit e
applichiamo il principio del CLA anche al risultato dei singoli blocchi da 4-bit in modo da evitare la propagazione del riporto tra i blocchi da 4 bit.
top related