...

Lezione 7 Sommatori e Moltiplicatori Sommario Sommatori ad

by user

on
Category: Documents
11

views

Report

Comments

Transcript

Lezione 7 Sommatori e Moltiplicatori Sommario Sommatori ad
Architettura degli Elaboratori e delle Reti
Lezione 7
Sommatori e Moltiplicatori
Proff. A. Borghese, F. Pedersini
Dipartimento di Scienze dell’Informazione
Università degli Studi di Milano
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 1/36
Sommario

Sommatori ad anticipazione di riporto

Addizionatori modulari

Moltiplicatori – approccio hardware

Moltiplicatori – approccio firmware
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 2/36
1
Anticipazione di riporto

Anticipazione di riporto (carry look-ahead)



Approccio per diminuire la latenza della somma
Propagazione di riporto: tL = 3N
Principio di funzionamento:

Si genera un riporto in uscita quando ho almeno due “1” sui tre
ingressi (rin, a, b)
rIN
a
b
s
FA
rOUT
A.A. 2006/07
1 1 0 0 0  riporto
1101+
100=
––––––––
10001
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 3/36
Propagazione e generazione

Ho riporto quando ho almeno 2 dei 3 ingressi (rin, a, b) = “1”

Due casi possibili:

GENERAZIONE: gi
Viene generato un riporto allo stadio i,
per qualsiasi rin, se:
gi = aibi ;

gi = 1  ri,out = 1
PROPAGAZIONE: pi
Viene generato un riporto allo stadio i,
se rin = 1 e (a OR b) = 1
pi = (ai + bi) ;
A.A. 2006/07
rIN
a
b
FA
s
rOUT
pi ri,in = 1  ri,out = 1
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 4/36
2
Esempio

Calcolo: r4,out

supponiamo r0,in = 0
10100101+
10000=
1
10101101+
11010=
r4,out = 0
A.A. 2006/07
10110101+
10100=
r4,out = 1
r4,out = 1
Propagazione:
Generazione:
p4r3,out =(a4+b4)r3,out = 1
g4 = a4b4 = 1
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 5/36
Sviluppo della funzione logica riporto
Dato che:
ri,out = aibi + (ai + bi) ri,in =
= gi + pi ri,in

ri = ri,out = ri+1,in = ri+1
Ricavo r3,out come funzione degli ingressi: ai , bi , rin,0:
r0,out = g0 + p0· r0,in
r0,in
r1,out = g1 + p1r0,out = g1 + p1g0 + p1p0 r0,in
r2,out = g2 + p2r1,out = g2 + p2(g1 + p1g0 + p1 p0 r0,in)
= g2 + p2g1 + p2p1g0 + p2p1p0 r0,in
r3,out = g3 + p3r2,out =
= g3 + p3(g2 + p2g1 + p2p1g0 + p2p1p0 r0,in) =
= g3 + p3g2 + p3p2g1 + p3p2p1 g0 + p3p2p1p0·r0,in
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
s
a
b
FA4
r3,out
L 7 – 6/36
3
Anticipazione di riporto (4 bit)
r3,out
= g3 + p3r2 = g3 + p3(g2 + p2g1 + p2p1g0 + p2p1p0r0,in) =
= g3 + p3g2 + p3p2g1 + p3p2p1g0 + p3p2p1p0·r0,in
r0,in
p3
a3
b3
a2
b2
a1
b1
a0
b
a00
b0
a1
b1
a2
b2
a3
b3
p2
p1
p0
g0
·
p3p2
·
·
p3p2p1p0r0
r3,out
p1p0
p1g0
·
p3p2p1g0
+g1p3p2
g1
g2
g3++g2p3
g3
Cammino critico = 6
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 7/36
Sommario

Sommatori ad anticipazione di riporto

Addizionatori modulari

Moltiplicatori – approccio hardware

Moltiplicatori – approccio firmware
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 8/36
4
Addizionatori modulari

Moduli elementari, collegabili in cascata.


Complessità del circuito tollerata per piccoli n
(es. n=4)
r0,in
Cammino critico C:


M moduli da 4 bit: C = 6·M
N = 32 bit  M = N/4
 C = 6·N/4 = 48
A propagazione di riporto:
N = 32 bit
 C = 3·N = 96
A.A. 2006/07
s
a
FA4
b
r3,out
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 9/36
Struttura sommatore a blocchi

Vogliamo 32 bit → 8 sommatori elementari

Come collegarli tra loro?
r3 = g3 + p3r2 =
= g3 + p3(g2 + p2g1 + p2p1g0 + p2p1p0r0) =
= (g3+ p3g2+ p3p2g1+ p3p2p1g0) + p3p2p1p0·r0 =
= G0 + P0·r0
r0,in
s
a
P0 = p3p2p1p0
G0 = g3 + p3g2 + p3p2g1 + p3p2p1g0
FA4
b
P0 G0
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 10/36
5
Struttura di un sommatore su 16 bit
C1 = G0 + P0·r0
C2 = G1 + P1·C1 =
= G1 + P1·G0 + P1·P0·r0
C3 = G2 + P2·C2 =
= G2 + P2·G1 + P2·P1·G0 +
+ P2·P1·P0·r0
rout = C4 = G3 + P3·C3 =
= G3 + P3·G2 + P3·P2·G1 +
+ P3·P2·P1·G0 + P3·P2·P1·P0·r0
Cammino critico = 6+6 = 12
• CLA + prop: 6M = 24
• Prop: 3N = 48
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 11/36
Sommario

Sommatori ad anticipazione di riporto

Addizionatori modulari

Moltiplicatori – approccio hardware

Moltiplicatori – approccio firmware
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 12/36
6
Moltiplicazione binaria
Moltiplicando
1 1 0 1 1 x (2710)
1 1 1 = (710)
___________________
111111
1 1 0 1 1 Moltiplicatore
11011–
11011––
___________________
1 0 1 1 1 1 0 1 (18910)

Come fare il calcolo
con circuiti logici ?

Possiamo scomporre
l’operazione in due stadi:

Primo stadio: prodotti
parziali


Secondo stadio: somme

Prodotto
A.A. 2006/07
si mette in AND ciascun bit
del moltiplicatore con i bit
corrispondenti del
moltiplicando
si effettuano le somme (full
adder) dei bit sulle righe
contenenti i prodotti parziali
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 13/36
La matrice dei prodotti parziali
In binario i prodotti parziali sono degli AND
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 14/36
7
Il circuito che effettua i prodotti
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 15/36
Somma – prime 2 righe dei prodotti parziali
11011 x
111 =
___________
11111
11011 +
11011–
___________
1
1010001 +
11011–
___________
10111101
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 16/36
8
Somma della terza riga
11011 x
111 =
___________
11111
11011 +
11011–
___________
1
1010001 +
11011–
___________
10111101
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 17/36
Somma prodotti parziali – circuito completo
Overflow: A e B su: N bit  P su: 2N bit
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 18/36
9
Valutazione del cammino critico

N=4

Ritardo AND = 1

Ritardo HA = 1
Ritardo FA = 3


1
Cammino critico
= 20
2
5
8
14
17
11
17
20
A.A. 2006/07
20
20
17
12
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
6
2
1
L 7 – 19/36
Sommario

Sommatori ad anticipazione di riporto

Addizionatori modulari

Moltiplicatori – approccio hardware

Moltiplicatori – approccio firmware
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 20/36
10
Approcci tecnologici alla ALU.

Approcci tecnologici alla costruzione di ALU:

Hardware

Ad ogni operazione corrisponde un circuito combinatorio specifico

ROM



Approccio esaustivo (tabellare).
Per ogni funzione, per ogni ingresso viene memorizzata l’uscita. Utilizzabile per
funzioni molto particolari (ad esempio di una variabile). Non molto utilizzato.
Firmware o microprogrammato


Si dispone di circuiti specifici solamente per alcune operazioni
elementari (tipicamente addizione e sottrazione).
Le operazioni più complesse vengono sintetizzate a partire
dall’algoritmo che le implementa
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 21/36
L’approccio firmware

La ALU contiene una unità di controllo e dei
registri

L’unità di controllo attiva opportunamente le unità
aritmetiche ed il trasferimento da e verso i registri.



Approccio “controllore-datapath”
Viene inserito un microcalcolatore dentro la ALU
FIRMWARE vs. HARDWARE:

Hardware: più veloce ma più costosa per numero di porte e
complessità dei circuiti

Firmware: risolve l’operazione complessa mediante una
sequenza di operazioni semplici.


A.A. 2006/07
La soluzione HW conviene per le operazioni frequenti
Meno veloce, ma più flessibile e, potenzialmente, adatta ad inserire
nuove procedure.
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 22/36
11
Presentazione seriale/parallela

Presentazione parallela

an
Tipico dell’approccio HW
b0
b1


Viene utilizzata un’unica copia del circuito aritmetico
Il tempo di calcolo cresce linearmente con il numero
di bit
non si possono utilizzare tecniche di carry look-ahead
sn
bn
a0 a1 …an
Presentazione seriale a gruppi

s0
s1
..
.
Gli operandi vengono presentati 1 bit alla
volta, del quale viene eseguita l’operazione e
fornito il risultato

ALU
..
.
Presentazione seriale


..
.


a0
a1
Tutti i bit vengono presentati
simultaneamente;
La ALU genera tutti i bit del risultato
I bit vengono presentati a gruppi di k bit (es.
k=8: bytes)
ALU
s0 s 1…s n
b0 b1 …bn
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 23/36
Operazione di SHIFT (scalamento)
Dato A={an an-1 … a1 a0} → sk(A)=A′ , a′j = aj–k

k: shift amount


Tempo comparabile con quello della somma
Effettuato al di fuori delle operazioni selezionate dal MUX della ALU, da un
circuito denominato Barrel Shifter
an
an-1
an-2
a1
a0
an-1
an-2
an-3
a0
0
0
an
an-1
a2
a1
shift a sx d i 1
shift a d x d i 1
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 24/36
12
La moltiplicazione firmware
Algoritmo della moltiplicazione – firmware
Si analizzano sequenzialmente i
bit del moltiplicatore
se il bit è = 1
→ moltiplicando in posizione
opportuna
se il bit è = 0
→ 0 in posizione opportuna
A.A. 2006/07
11011x
101=
_______________
11011+
00000–
11011––
_______________
10000111
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 25/36
Moltiplicazione firmware

Utilizzo un
registro prodotto da
2n bit, inizializzato a 0

Ciclo iterativo: per ogni bit
del moltiplicatore


Se bit = 1 → sommo il
moltiplicando al prodotto
shift a SX di 1 bit del
moltiplicando
A.A. 2006/07
11011x
111=
_______________
11111
11011+
110110
_______________
1
1010001+
1101100
_______________
10111101
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 26/36
13
L’algoritmo
Inizio (P = 0, k = 0)
A
B
P
11011x
111=
_______________
11111
11011+
110110
_______________
1
1010001+
1101100
_______________
10111101
no
bk=1 ?
sì
P←A+P
shift A a sx ,
k=k+1
k=n ?
no
sì
Fine
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 27/36
Implementazione circuitale
A (moltiplicando) + shift sx – 64 bit
B (moltiplicatore) – 32 bit
ALU 64
add
shift
P (prodotto) – 64 bit
scrivi
32
Controllo
UC riceve 32
bit ma ne legge
1 alla volta
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 28/36
14
Implementazione circuitale – modifica
A (moltiplicando) + shift a sx – 64 bit
1
ALU 64
add
P (prodotto) – 64 bit
A.A. 2006/07
B (moltiplicatore)
+ shift a dx – 32 bit
shift dx
shift sx
scrivi
Controllo
Ad ogni iterazione:
B ← shift_dx(B)
UC riceve sempre
LSB
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 29/36
Esempio
A,B: 4 bit – P: 8 bit
2x3=6
0010 x 0011 = 0110
0000 0100
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 30/36
15
Implementazione alternativa: idea
P0

Soltanto metà dei bit del
registro moltiplicando vengono
utilizzati ad ogni iterazione

shift
Ad ogni iterazione si aggiunge 1 bit al
registro prodotto
P1

IDEA


Si caricano i risultati parziali in P
nella metà SINISTRA
Si sposta la somma dei prodotti
parziali (in P) verso destra ad ogni
iterazione
A.A. 2006/07
shift
P2
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 31/36
Seconda implementazione
A – moltiplicando, 32 bit
B – moltiplicatore
+ shift dx – 32 bit
add
ALU 32
shift dx
P – prodotto + shift dx – 64 bit
A.A. 2006/07
scrivi
shift dx
Controllo
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 32/36
16
Implementazione ottimizzata
11011x
111=
_______________
11111
11011+
11011_______________
1
1010001+
11011- _______________
10111101
Numero di bit del prodotto corrente
+
Numero di bit da esaminare di B
=
64 bit: costante ad ogni iterazione

elimino il registro moltiplicatore: B
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 33/36
Circuito ottimizzato

Situazione alla prima iterazione
A – moltiplicando, 32 bit
ALU 32
P – prodotto –
64 bit
add
scrivi
Moltiplicatore
B – 32 bit
shift dx
Controllo
+ shift dx
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 34/36
17
L’algoritmo ottimizzato
Inizio (P = 0, k = 0)
P
A
11011x
B
111=
_______________
11111
11011+
110110
_______________
1
1010001+
1101100
_______________
10111101
sì
bk=0?
no
P←A+P
shift [P|B] a dx
k=k+1
k=n ?
no
sì
Fine
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 35/36
Esempio di esecuzione alg. ottimizzato
A, B: 4 bit – P: 8 bit
2x3=6
0010 x 0011 = 0000 0110
A.A. 2006/07
Copyright : A. Borghese, F. Pedersini – DSI, UniMI
L 7 – 36/36
18
Fly UP