lezione 7 sommatori e moltiplicatori - unimi.itpedersini/aer/aer07_l07_clamult.pdf · title:...

18
1 L 7 – 1/36 A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI 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 L 7 – 2/36 A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI Sommario Sommatori ad anticipazione di riporto Addizionatori modulari Moltiplicatori – approccio hardware Moltiplicatori – approccio firmware

Upload: others

Post on 08-May-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lezione 7 Sommatori e Moltiplicatori - unimi.itpedersini/AER/AER07_L07_CLAMult.pdf · Title: L07_CLAMult.ppt Author: Federico Pedersini - Dip. Scienze dell'Informazione Created Date:

1

L 7 – 1/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Architettura degli Elaboratori e delle Reti

Lezione 7Sommatori e Moltiplicatori

Proff. A. Borghese, F. Pedersini

Dipartimento di Scienze dell’InformazioneUniversità degli Studi di Milano

L 7 – 2/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Sommario

Sommatori ad anticipazione di riporto

Addizionatori modulari

Moltiplicatori – approccio hardware

Moltiplicatori – approccio firmware

Page 2: Lezione 7 Sommatori e Moltiplicatori - unimi.itpedersini/AER/AER07_L07_CLAMult.pdf · Title: L07_CLAMult.ppt Author: Federico Pedersini - Dip. Scienze dell'Informazione Created Date:

2

L 7 – 3/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

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)

1 1 0 0 0 riporto 1 1 0 1 + 1 0 0 =–––––––– 1 0 0 0 1

FAa

b

rIN

rOUT

s

L 7 – 4/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Propagazione e generazione

Ho riporto quando ho almeno 2 dei 3 ingressi (rin, a, b) = “1”

Due casi possibili:

GENERAZIONE: giViene generato un riporto allo stadio i,per qualsiasi rin, se:

gi = aibi ; gi = 1 ri,out = 1

PROPAGAZIONE: piViene generato un riporto allo stadio i,se rin = 1 e (a OR b) = 1

pi = (ai + bi) ; pi ri,in = 1 ri,out = 1

FAa

b

rIN

rOUT

s

Page 3: Lezione 7 Sommatori e Moltiplicatori - unimi.itpedersini/AER/AER07_L07_CLAMult.pdf · Title: L07_CLAMult.ppt Author: Federico Pedersini - Dip. Scienze dell'Informazione Created Date:

3

L 7 – 5/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Esempio

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

r4,out = 0

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

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

r4,out = 1

Propagazione:p4r3,out =(a4+b4)r3,out = 1

r4,out = 1

Generazione:g4 = a4b4 = 1

Calcolo: r4,out supponiamo r0,in = 0

L 7 – 6/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Sviluppo della funzione logica riporto

ri,out = aibi + (ai + bi) ri,in == gi + pi ri,in

r0,out = g0 + p0· r0,in

r1,out = g1 + p1r0,out = g1 + p1g0 + p1p0 r0,in

r2,out = g2 + p2r1,out = g2 + p2(g1 + p1g0 + p1p0 r0,in)= g2 + p2g1 + p2p1g0 + p2p1p0 r0,in

r3,out = g3 + p3r2,out == g3 + p3(g2 + p2g1 + p2p1g0 + p2p1p0 r0,in) == g3 + p3g2 + p3p2g1 + p3p2p1g0 + p3p2p1p0·r0,in

ri = ri,out = ri+1,in = ri+1

Ricavo r3,out come funzione degli ingressi: ai , bi , rin,0:

FA4

r3,out

r0,in

a

b

s

Dato che:

Page 4: Lezione 7 Sommatori e Moltiplicatori - unimi.itpedersini/AER/AER07_L07_CLAMult.pdf · Title: L07_CLAMult.ppt Author: Federico Pedersini - Dip. Scienze dell'Informazione Created Date:

4

L 7 – 7/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Anticipazione di riporto (4 bit)

r3,out = g3 + p3r2 = g3 + p3(g2 + p2g1 + p2p1g0 + p2p1p0r0,in) == g3 + p3g2 + p3p2g1 + p3p2p1g0 + p3p2p1p0·r0,in

a3b3

a3b3

r0,in

a2b2a1b1a0b0

p3

p2

p1

p0

a2b2

a1b1

a0b0

g0

g1

g2

g3

p3p2

p1p0·p1g0

·

·

· p3p2p1p0r0

g3++g2p3

p3p2p1g0+g1p3p2

Cammino critico = 6

r3,out

L 7 – 8/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Sommario

Sommatori ad anticipazione di riporto

Addizionatori modulari

Moltiplicatori – approccio hardware

Moltiplicatori – approccio firmware

Page 5: Lezione 7 Sommatori e Moltiplicatori - unimi.itpedersini/AER/AER07_L07_CLAMult.pdf · Title: L07_CLAMult.ppt Author: Federico Pedersini - Dip. Scienze dell'Informazione Created Date:

5

L 7 – 9/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Addizionatori modulari

Moduli elementari, collegabili in cascata. Complessità del circuito tollerata per piccoli n

(es. n=4)

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

FA4

r3,out

r0,in

a

b

s

L 7 – 10/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

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

P0 = p3p2p1p0

G0 = g3 + p3g2 + p3p2g1 + p3p2p1g0

FA4

P0

r0,in

a

b

s

G0

Page 6: Lezione 7 Sommatori e Moltiplicatori - unimi.itpedersini/AER/AER07_L07_CLAMult.pdf · Title: L07_CLAMult.ppt Author: Federico Pedersini - Dip. Scienze dell'Informazione Created Date:

6

L 7 – 11/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

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

L 7 – 12/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Sommario

Sommatori ad anticipazione di riporto

Addizionatori modulari

Moltiplicatori – approccio hardware

Moltiplicatori – approccio firmware

Page 7: Lezione 7 Sommatori e Moltiplicatori - unimi.itpedersini/AER/AER07_L07_CLAMult.pdf · Title: L07_CLAMult.ppt Author: Federico Pedersini - Dip. Scienze dell'Informazione Created Date:

7

L 7 – 13/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Moltiplicazione binaria

1 1 0 1 1 x (2710) 1 1 1 = (710) ___________________ 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 – 1 1 0 1 1 – – ___________________ 1 0 1 1 1 1 0 1 (18910)

Moltiplicando

Moltiplicatore

Prodotto

Come fare il calcolocon circuiti logici ?

Possiamo scomporrel’operazione in due stadi:

Primo stadio: prodottiparziali si mette in AND ciascun bit

del moltiplicatore con i bitcorrispondenti delmoltiplicando

Secondo stadio: somme si effettuano le somme (full

adder) dei bit sulle righecontenenti i prodotti parziali

L 7 – 14/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

La matrice dei prodotti parziali

In binario i prodotti parziali sono degli AND

Page 8: Lezione 7 Sommatori e Moltiplicatori - unimi.itpedersini/AER/AER07_L07_CLAMult.pdf · Title: L07_CLAMult.ppt Author: Federico Pedersini - Dip. Scienze dell'Informazione Created Date:

8

L 7 – 15/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Il circuito che effettua i prodotti

L 7 – 16/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

1 1 0 1 1 x 1 1 1 =___________ 1 1 1 1 1 1 1 0 1 1 + 1 1 0 1 1 –___________ 1 1 0 1 0 0 0 1 + 1 1 0 1 1 –___________ 1 0 1 1 1 1 0 1

Somma – prime 2 righe dei prodotti parziali

Page 9: Lezione 7 Sommatori e Moltiplicatori - unimi.itpedersini/AER/AER07_L07_CLAMult.pdf · Title: L07_CLAMult.ppt Author: Federico Pedersini - Dip. Scienze dell'Informazione Created Date:

9

L 7 – 17/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Somma della terza riga

1 1 0 1 1 x 1 1 1 =___________ 1 1 1 1 1 1 1 0 1 1 + 1 1 0 1 1 –___________ 1 1 0 1 0 0 0 1 + 1 1 0 1 1 –___________ 1 0 1 1 1 1 0 1

L 7 – 18/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Somma prodotti parziali – circuito completo

Overflow: A e B su: N bit P su: 2N bit

Page 10: Lezione 7 Sommatori e Moltiplicatori - unimi.itpedersini/AER/AER07_L07_CLAMult.pdf · Title: L07_CLAMult.ppt Author: Federico Pedersini - Dip. Scienze dell'Informazione Created Date:

10

L 7 – 19/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Valutazione del cammino critico

20 20 20 17 12 6 2 1

1

25

8

111417

17

N = 4 Ritardo AND = 1

Ritardo HA = 1 Ritardo FA = 3

Cammino critico= 20

L 7 – 20/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Sommario

Sommatori ad anticipazione di riporto

Addizionatori modulari

Moltiplicatori – approccio hardware

Moltiplicatori – approccio firmware

Page 11: Lezione 7 Sommatori e Moltiplicatori - unimi.itpedersini/AER/AER07_L07_CLAMult.pdf · Title: L07_CLAMult.ppt Author: Federico Pedersini - Dip. Scienze dell'Informazione Created Date:

11

L 7 – 21/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

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

L 7 – 22/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

L’approccio firmware

La ALU contiene una unità di controllo e deiregistri 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 La soluzione HW conviene per le operazioni frequenti

Firmware: risolve l’operazione complessa mediante unasequenza di operazioni semplici. Meno veloce, ma più flessibile e, potenzialmente, adatta ad inserire

nuove procedure.

Page 12: Lezione 7 Sommatori e Moltiplicatori - unimi.itpedersini/AER/AER07_L07_CLAMult.pdf · Title: L07_CLAMult.ppt Author: Federico Pedersini - Dip. Scienze dell'Informazione Created Date:

12

L 7 – 23/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Presentazione seriale/parallela

Presentazione parallela Tutti i bit vengono presentati

simultaneamente;La ALU genera tutti i bit del risultato Tipico dell’approccio HW

Presentazione seriale Gli operandi vengono presentati 1 bit alla

volta, del quale viene eseguita l’operazione efornito il risultato 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

Presentazione seriale a gruppi I bit vengono presentati a gruppi di k bit (es.

k=8: bytes)

...

a0a1

an

ALU...

b0b1

bn

...

s0s1

sn

a0 a1 …an

ALU

b0 b1 …bn

s0 s1…sn

L 7 – 24/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

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

shift a sx d i 1

an-1 an-2 an-3 a0 0

an an-1 an-2 a1 a0

shift a dx d i 1

0 an an-1 a2 a1

Page 13: Lezione 7 Sommatori e Moltiplicatori - unimi.itpedersini/AER/AER07_L07_CLAMult.pdf · Title: L07_CLAMult.ppt Author: Federico Pedersini - Dip. Scienze dell'Informazione Created Date:

13

L 7 – 25/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

La moltiplicazione firmware

Algoritmo della moltiplicazione – firmware

1 1 0 1 1 x 1 0 1 =

_______________1 1 0 1 1 +

0 0 0 0 0 – 1 1 0 1 1 – – _______________ 1 0 0 0 0 1 1 1

Si analizzano sequenzialmente ibit del moltiplicatore

se il bit è = 1→ moltiplicando in posizioneopportuna

se il bit è = 0→ 0 in posizione opportuna

L 7 – 26/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Moltiplicazione firmware

Utilizzo unregistro prodotto da2n bit, inizializzato a 0

Ciclo iterativo: per ogni bitdel moltiplicatore Se bit = 1 → sommo il

moltiplicando al prodotto shift a SX di 1 bit del

moltiplicando

1 1 0 1 1 x 1 1 1 =_______________ 1 1 1 1 1 1 1 0 1 1 + 1 1 0 1 1 0_______________ 1 1 0 1 0 0 0 1 + 1 1 0 1 1 0 0_______________ 1 0 1 1 1 1 0 1

Page 14: Lezione 7 Sommatori e Moltiplicatori - unimi.itpedersini/AER/AER07_L07_CLAMult.pdf · Title: L07_CLAMult.ppt Author: Federico Pedersini - Dip. Scienze dell'Informazione Created Date:

14

L 7 – 27/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

AB

P

1 1 0 1 1 x 1 1 1 =_______________ 1 1 1 1 1 1 1 0 1 1 + 1 1 0 1 1 0_______________ 1 1 0 1 0 0 0 1 + 1 1 0 1 1 0 0_______________ 1 0 1 1 1 1 0 1

L’algoritmo

Inizio (P = 0, k = 0)

bk=1 ?

shift A a sx ,k=k+1

P ← A + P

k=n ?

no

no

Fine

L 7 – 28/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Implementazione circuitale

ALU 64

P (prodotto) – 64 bit Controllo

B (moltiplicatore) – 32 bit

add

A (moltiplicando) + shift sx – 64 bit

shift

scrivi

32

UC riceve 32bit ma ne legge

1 alla volta

Page 15: Lezione 7 Sommatori e Moltiplicatori - unimi.itpedersini/AER/AER07_L07_CLAMult.pdf · Title: L07_CLAMult.ppt Author: Federico Pedersini - Dip. Scienze dell'Informazione Created Date:

15

L 7 – 29/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Implementazione circuitale – modifica

ALU 64

P (prodotto) – 64 bit Controllo

B (moltiplicatore) + shift a dx – 32 bit

add

A (moltiplicando) + shift a sx – 64 bit

shift sx

scrivi

shift dx

Ad ogni iterazione:B ← shift_dx(B)UC riceve sempre

LSB

1

L 7 – 30/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Esempio

A,B: 4 bit – P: 8 bit2 x 3 = 6 ↔ 0010 x 0011 = 0110

0000 0100

Page 16: Lezione 7 Sommatori e Moltiplicatori - unimi.itpedersini/AER/AER07_L07_CLAMult.pdf · Title: L07_CLAMult.ppt Author: Federico Pedersini - Dip. Scienze dell'Informazione Created Date:

16

L 7 – 31/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Implementazione alternativa: idea

Soltanto metà dei bit delregistro moltiplicando vengonoutilizzati ad ogni iterazione Ad ogni iterazione si aggiunge 1 bit al

registro prodotto

IDEA Si caricano i risultati parziali in P

nella metà SINISTRA Si sposta la somma dei prodotti

parziali (in P) verso destra ad ogniiterazione

P0

shift

P1

shift

P2

L 7 – 32/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Seconda implementazione

ALU 32

P – prodotto + shift dx – 64 bit Controllo

B – moltiplicatore+ shift dx – 32 bit

add

A – moltiplicando, 32 bit

scrivishift dx

shift dx

Page 17: Lezione 7 Sommatori e Moltiplicatori - unimi.itpedersini/AER/AER07_L07_CLAMult.pdf · Title: L07_CLAMult.ppt Author: Federico Pedersini - Dip. Scienze dell'Informazione Created Date:

17

L 7 – 33/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Implementazione ottimizzata

Numero di bit del prodotto corrente

+Numero di bit da esaminare di B

=64 bit: costante ad ogni iterazione

elimino il registro moltiplicatore: B

1 1 0 1 1 x 1 1 1 =_______________ 1 1 1 1 1 1 1 0 1 1 + 1 1 0 1 1 -_______________ 1 1 0 1 0 0 0 1 + 1 1 0 1 1 - -_______________ 1 0 1 1 1 1 0 1

L 7 – 34/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Circuito ottimizzato

ALU 32

P – prodotto –64 bit

Controllo

add

A – moltiplicando, 32 bit

scrivi

shift dxMoltiplicatoreB – 32 bit

+ shift dx

Situazione alla prima iterazione

Page 18: Lezione 7 Sommatori e Moltiplicatori - unimi.itpedersini/AER/AER07_L07_CLAMult.pdf · Title: L07_CLAMult.ppt Author: Federico Pedersini - Dip. Scienze dell'Informazione Created Date:

18

L 7 – 35/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

L’algoritmo ottimizzato

Inizio (P = 0, k = 0)

bk=0?

shift [P|B] a dxk=k+1

P ← A + P

k=n ?

no

no

Fine

AB

P

1 1 0 1 1 x 1 1 1 =_______________ 1 1 1 1 1 1 1 0 1 1 + 1 1 0 1 1 0_______________ 1 1 0 1 0 0 0 1 + 1 1 0 1 1 0 0_______________ 1 0 1 1 1 1 0 1

L 7 – 36/36A.A. 2006/07 Copyright : A. Borghese, F. Pedersini – DSI, UniMI

Esempio di esecuzione alg. ottimizzato

A, B: 4 bit – P: 8 bit2 x 3 = 6 ↔ 0010 x 0011 = 0000 0110