aritm_computazionale
-
Upload
blackcoursar -
Category
Documents
-
view
15 -
download
1
Transcript of aritm_computazionale
1
Elettronica deiSistemi Digitali LAUniversità di Bologna, sede di Cesena
Aritmetica ComputazionaleF.Campi
A.a. 2004-2005
2
Elettronica dei Sistemi Digitali
Aritmetica Computazionale
Si studiano possibili architetture hardware (ASIC) per realizzare operazioniMatematiche su segnali composti da stringhe di bit, in modo da realizzare le Specifiche fisiche che ci si propone (Funzionalita’, Timing, Power, Area):
RAPPRESENTAZIONI: • Unsigned (Codifica Esadecimale di numeri positivi)• Two’s complement (Complemento a Due)
OPERAZIONI:• Addizione• Moltiplicazione• (Divisione, Radice Quadrata, etc) -> Non verranno trattate
3
Elettronica dei Sistemi Digitali
Codifica Binaria:N = { bn ....... b0} ove bi rappresenta il numero bi * 2i
Tipicamente n puo’ essere: 8 -> Bytes, 16-> Half Word, 32->Word o piu’.Nel caso di architetture programmabili (Microprocessori, DSP) N e’ fissato,
mentre nel caso degli ASIC viene regolato a seconda della precisione volutain modo da ottimizzare le risorse utilizzate,
ES: 11 = { 1*8 + 0*4 + 1*2 + 1*1 } = 23 + 21 + 20 = { 0 0 0 0 1 0 1 1 }
Complemento a 2: In modo da facilitare la esecuzione della sottrazione, I numerinegativi sono espressi attraverso la seguente formula:
-n = (ñ) + 1ES: -11 = -1 * {0 0 0 0 1 0 1 1} + 1 = { 11110100 } +1 = 11110101
4
Elettronica dei Sistemi Digitali
Complemento a 2La operazione di complemento ad 1 e’ realizzata attraverso unanegazione bit a bit, che puo’ essere a sua volta realizzata con un operazione di Xor con 1:
1}1,.....,1,1{
1)12*(2*
2*2*
2*0
2*
1
0
1
0
1
0
1
0
+⊕=−
+−+=−
−=−
−=−
=
∑
∑
∑
∑
−
=
−
=
−
=
−
=
XX
xxX
xxX
xX
xX
NN
iN
i
i
iN
i
iN
N
iN
i
i
iN
i
i
5
Elettronica dei Sistemi Digitali
Sommatori
OBIETTIVO: Realizzare dei circuiti ASIC a gate level che descrivano la operazione di somma tra vettori di bit:
Problema: Scegliere il corretto TRADE-OFF (Compromesso) tra risorse fisiche(Area e Consumo) e velocita’ di elaborazione
{an … a0}
{bn … b0}+ {zn … z0}
6
Elettronica dei Sistemi Digitali
Si vuole realizzare quindi la operazione seguente:
1 0 1 0 1 + Vogliamo scomporre la operazione0 0 0 0 1 = su un singolo bit, sara’ poi sufficiente_____1___ replicare N volte la stessa logica1 0 1 1 1
Si puo’ scomporre dunque il calcolo in due funzioni logiche a bits, il calcolo dellasomma (Sum) e del riporto (Carry Out): In generale, la operazione e’ descrittadalle seguenti mappe di Karnaugh per S e Co.
Sommatori Ripple Carry
7
Elettronica dei Sistemi Digitali
Half-Adder
011
100
10A/B
101
000
10A/B
SUM Carry Out
Si ottiene quindi
S= A XOR B Co = A and B
Tale Circuito, definito HALF ADDER, ha pero’ senso solo se riferito al primo stadioDella somma, mentre gli stadi successivi dovranno tenere conto del CO deiprecedenti. Sara’ quindi necessario un circuito a 3 ingressi.
8
Elettronica dei Sistemi Digitali
Full-Adder
01011
10100
10110100AB/Cin
SUM Carry Out
11101
01000
10110100AB/Cin
9
Elettronica dei Sistemi Digitali
Full Adder: Calcolo di Sum
cbabacbac
babacbabac
cbacbacbacbaSum
⊕⊕==⊕+⊕=
=+++=
=+++=
)()(*)(*
)**(*)**(*
********
)(*)(*
))(*)((*)(*)(*
bacbbbabaaac
babacabbacabbac
⊕=+++=
=++=+=+
Nota:
10
Elettronica dei Sistemi Digitali
Full Adder: Calcolo di Carry-out
cacbbaCout *** ++=
Che puo’ essere scritto anche come:
cbabaCout *)(* ⊕+=
11
Elettronica dei Sistemi Digitali
Full Adder
a
b Sum
Cout
Cin
12
Elettronica dei Sistemi Digitali
Sommatori Ripple-Carry
RIPPLE=Propagazione del CarryVantaggi:1. Hardware facilmente replicabile per N stadi2. Molto piccolo: uno stadio e’ calcolato con 5 gates
Svantaggi:Ogni stadio deve concludere la propria elaborazione prima che il seguentepossa incominciarla: il ritardo introdotto e’ proporzionale al numero di stadi,e quindi al numero di bit degli operandi.
Delay= o(N)
a b
CinCoutSum
a b
CinCoutSum
a b
CinCoutSum
a b
CinCoutSum
0
13
Elettronica dei Sistemi Digitali
Sommatori Carry-Lookahead
)(** bacbaCout ++=
cacbbaCout *** ++=
Si ricordi il calcolo per la determinazione del Carryout nel full-adder
Si puo’ scrivere come
Definendo a*b= GENERATE (G) , a+b = PROPAGATE
PCinGCout *+=
14
Elettronica dei Sistemi Digitali
Sommatori Carry-Lookahead
0012301231232334
00120121223
0010112
0001
CPPPPGPPPGPPGPGCCPPPGPPGPGC
CPPGPGCCPGC
++++=+++=
++=+=
Il calcolo dei diversi carry out presenti nel sommatore a 4 bit puo’ esserequindi descritto secondo l’algoritmo seguente:
15
Elettronica dei Sistemi Digitali
Sommatori Carry-Lookahead
Anticipando il calcolo del carry secondo quanto descritto e’ possibileRealizzare il seguente sommatore Carry-Lookahead.
Lo svantaggio principale di questa architettura e’ che le equazioni logicheDiventano troppo complesse oltre l’ordine 4. Di conseguenza i CLA vengono
utilizzati di solito in blocchi gerarchici a 4 bit.
p3 p0p2 p1
s3 s2 s1s0
G3 P3 G2 P2 G1 P1 G0 P0
C3 C2 C1 C0
16
Elettronica dei Sistemi Digitali
Sommatori Carry-Lookahead
Il principale vantaggio di questi sommatori e’ di offrire, al prezzodi un superiore utilizzo di logica un ritardo inferiore.
La logica del carry offre infatti un ritardo, nel caso di adder a 4 bit, diDue livelli di gates. Piu’ in generale si avrebbe
Delay = o(Log2n)
17
Elettronica dei Sistemi Digitali
Sommatori Carry-Select
Da quanto descritto appare utile definire un metodo per la “connessione veloce” diStadi di somma gerarchici composti da un numero di bit > 1.Una possibile tecnica e’ il Carry-Select:Vengono in effetti determinati due calcoli diversi dipendenti da Cin (che dovra’ essereprodotto in seguito), e una volta eseguito il conto viene selezionata la uscitaopportuna in base al valore di Cin:
4-bit adderC3out
A3,0 , B3,0
S3,0
A3,0 , B3,0
4-bit adder
A7,4 , B7,4
S7,4
4-bit adder
A7,4 , B7,4
S7,4
‘0’ ‘1’
mux
S7,4
18
Elettronica dei Sistemi Digitali
Sommatori Carry-Select
Il vantaggio immediato di questa tecnica e’ il guadagno in velocita’, lo svantaggioe’ il rilevante aumento in termini di area occupata e di consumo.
0
1
0
1
0
14-bit add
4-bit add
4-bit add 4-bit add
4-bit add 4-bit add
4-bit add
1* −≈ + stadimuxstadiodelay NTTT
19
Elettronica dei Sistemi Digitali
Sommatori Carry-Bypass
1* −≈ + stadibypassstadiodelay NTTT
0123 PPPP 0123 PPPP
Il Cin di un blocco puo’ essere propagato in uscita dallo sesso solo se tutti I Pi sono ad 1. Se cio’ non succede per almeno 1 Pi, (condizione detta di DELETE) nonha senso propagare il Cin.
4-bit add 4-bit add 4-bit add 4-bit add
0123 PPPP
20
Elettronica dei Sistemi Digitali
Determinazione dell’Overflow
Se la operazione di somma (o sottrazione) e’ eseguita senza segno, il bitdi overflow e’ semplicemente determinato dal Carry-out dello stadio N.In caso di operazione in complemento a 2, si utilizza il seguente algoritmo:
1. Se il bit di maggior peso dei due operandi e’ diverso, non ci puo’ essereoverflow
2. Se I due operandi hanno uguale bit di maggior peso, il bit di maggior peso del risultato deve essere uguale ai due bit degli operandi
)(*)( 1111 −−−− ⊕⊕= NNNN SABAOF
21
Elettronica dei Sistemi Digitali
Moltiplicatori Hardware
• Moltiplicatore Seriale• Moltiplicatore Parallelo• Moltiplicatore Booth-Encoded
22
Elettronica dei Sistemi Digitali
Algoritmo di Moltiplicazione
ii
N
i
xX 21
0∑
−
=
= ii
M
i
yY 21
0∑
−
=
=
0110 *0011 =
______0110 +
0110- +0000-- +
0000--- =________0010010
X3 X2 X1 X0 *Y3 Y2 Y1 Y0 =
----------------------------X3Y0 X2Y0 X1Y0 X0Y0 +
X3Y1 X2Y1 X1Y1 X0Y1 - +X3Y0 X2Y0 X1Y0 X0Y0 - - +
X3Y0 X2Y0 X1Y0 X0Y0 - - - +-----------------------------------------------
Z7 Z6 Z5 Z4 Z3 Z2 Z1 Z0
jij
N
i
M
j
iyxYXZ +−
=
−
=∑∑== 2*
1
0
1
0
23
Elettronica dei Sistemi Digitali
Moltiplicatore Ripple-carry ad arrayY0
Y1
Y2
Y3
Z0Z1Z2Z3Z4Z5Z6
X3 X2 X1 X0
Z7
X3 X2 X1 X0
X3 X2 X1 X0
X3 X2 X1 X0
HAHA
HA
HA
FAFA
FA FA FA
FA FA FA
24
Elettronica dei Sistemi Digitali
Moltiplicatore Ripple-carryad Array
Vantaggi: • Grande simmetria (layout rettangolare)• Buone prestazioni (elevato parallelismo)
Svantaggi:• Notevole Impiego di risorse Hardware• Critical Path non ben identificabile
Delay:Tmult=[(M-1)+(N-2)]tcarry+(N-1)tsum+tand
25
Elettronica dei Sistemi Digitali
Moltiplicatore Carry-Ripple a 8-bit
8-bit CRA
8-bit CRA
8-bit CRA
8-bit CRA
8-bit CRA
8-bit CRA
8-bit CRA
Risultato parziale (8bit)
Carry-out (1bit)
Tdelay= o(N)
XY0XY1XY2XY3XY4XY5XY6XY7
26
Elettronica dei Sistemi Digitali
Moltiplicatore Carry-Save
MERGE ADDER
27
Elettronica dei Sistemi Digitali
Computazione nel dominio dello spazio: strutture ad albero
La computazione nel dominio del tempo, tipica delle macchineprogrammabili, si sviluppa tipicamente secondo una struttura lineare:Sum= (((a + b)+c)+d) Ritardo o(N) N=num operandi
Per sfruttare appieno i vantaggi della computazione nel dominio dello spazio è necessario esplicitare più possibile il parallelismo insito in un determinato tipo di calcolo, con una struttura “logaritmica”:
Sum= ( (a+b) + (c+d) ) Ritardo o(log2N)
28
Elettronica dei Sistemi Digitali
Moltiplicatore Carry-Save a 8-bit
8-bit CSA
8-bit CSA
8-bit CSA
8-bit CSA
8-bit CSA
8-bit CSA
8-bit CSA
Risultato parziale (8bit)
Carry-Save out (8bit)
Merge adder
Tdelay= o(N)
XY4XY6XY0XY1
XY2XY3XY7XY5
8-bit
29
Elettronica dei Sistemi Digitali
Moltiplicatore Wallace Tree Carry-Save a 8-bit
8-bit CSA
8-bit CSA
Risultato parziale (8bit)
Carry-Save out (8bit)
Merge adder
8-bit CSA
8-bit CSA
8-bit CSA
8-bit CSA
Tdelay= o(Log2N)
30
Elettronica dei Sistemi Digitali
Moltiplicatore ad albero di WallaceVantaggi: • Cala la complessita’ dell’albero, viene aumentata la prestazione• Diminuisce il numero di risorse utilizzate
Svantaggi:• Layout fortemente asimmetrico
Delay:Tmult= (N-1)tcarry+tand+tmerge = o(N)
31
Elettronica dei Sistemi Digitali
Codifica di BoothOBIETTIVO : La complessita’ dei moltiplicatori e’ legata al numero di bit necessari per codificare gli operandi, ed e’ proporzionale a N2.Si puo’ pensare di codificare il numero binario in ingresso in modo diverso in modo da diminuire il numero di simboli necessari a descriverlo: ad esempio, ilnumero 12 in base 2 e’ codificato con 4 simboli, potrebbe essere rappresentato in base 4 con 2 Simboli.
12= (1100)2 = 1*23 + 1*22 + 0*21 + 0*20
12 = (30)4 = 3*41 + 0*40
Lo svantaggio e’ che le operazioni di somma e prodotto simbolo a simbolonecessarie oer realizzare l’algoritmo di moltiplicazione con base 4 potrebberodiventare troppo complesse. Di certo lo sarebbero In base 4 usando una codifica in complemento a 2. Ma si puo’ investigare un tipo di codifica base 4 che descrivasomma e prodotto Tra simboli in un modo semplice dal punto di vista dellaimplementazione Hardware.
32
Elettronica dei Sistemi Digitali
Codifica di Booth
]22*[)2*(22*
22*2*
22
]22[
2
1*1
12
12
1
1212
12
1
122
12
0
2
1*1
12
12
1
122
12
0
2
1*1
1
0
*
1
0
*1
*1
1
0
*
−−
−
−
=
−−
−
=
−
−
=
−−
−
−
=
−
−
=
−−
−
=
−
=
−−
−
=
+−+=
−+=
−=
−−=
=
∑∑∑
∑∑
∑
∑
∑
NN
i
N
i
ii
N
i
ii
N
i
i
NN
i
N
i
ii
N
i
i
NN
N
i
ii
N
i
ii
NN
N
i
ii
XXXXX
XXXX
XXX
XXX
XX
(Rappr. In Complemento a 2)
33
Elettronica dei Sistemi Digitali
∑∑∑
∑∑∑
∑∑∑
=
−
=
+−
−
=
+′
−
=′
+′
−
=
−
−
=
−−
−
−
=
−−
−
=
−
−
=
==++=
−≡′
−+=
+−+=
J
n
ii
N
i
iiii
N
i
i
i
N
i
i
N
n
ii
i
N
n
i
NN
i
N
i
ii
N
i
ii
N
i
i
MiFXXXX
ii
XXXX
XXXXX
0
12
0
212212
12
0
2
12
12
1
12
12
1
212
2
12
0
2
1*1
12
12
1
1212
12
1
122
12
0
2
*4)2(*2)*2(*2
)1(
2*2*2*
]22*[)2*(22*
Codifica di Booth
34
Elettronica dei Sistemi Digitali
Codifica di Booth
00111
-Y-1011
-2Y-2001
-Y-1101
2Y2110
Y1010
Y1100
00000
Fi *YFiX2i-1X2iX2i+1
Se dovessi fare un prodotto X*Y e volessi generare i prodotti parziali usando un moltiplicatore codificato in questa forma, dovrei sostituire nella struttura del moltiplicatore a matrice operazioni di shift(*2) e di complemento a due in luogo deigates and.
35
Elettronica dei Sistemi Digitali
Codifica di BoothOgni operazione di prodotto parziale viene gestita con un multiplexer che seleziona le possibili uscite tra le operazioni imposte
MUXX2i+1X2iX2i-1
Ad ogni passo il prodotto parziale puo’ essere shiftato di DUE PASSI (invece che uno)Verso sinistra. Il numero di livelli necessari a realizzare questo tipo di moltiplicazionee’ quindi N/2 invece di N, l’area e il ritardo si dimezzano praticamente, anche se si introduce una logica di controllo piu’ complessa.
Y –Y 2Y -2Y 0
BOOTH ENCODING:
36
Elettronica dei Sistemi Digitali
Booth Encoded Multiplier a 8 bit
MUXX1X0X-1
Y –Y 2Y -2Y 0
MUXX3X2X1
Y –Y 2Y -2Y 0
MUXX5X4X3
Y –Y 2Y -2Y 0
6 bit
8 bit
MUXX7X6X5
Y –Y 2Y -2Y 0
8 bit adder stage
8 bit adder stage
8 bit adder stage
8 bit
2 bit
6 bit2 bit
8 bit
6 bit2 bit
37
Elettronica dei Sistemi Digitali
Moltiplicatore Seriale
Basato sui registri :• A Moltiplicatore• B Moltiplicando (64 bit)• P Registro accumulazione parziale (64 bit)Il Prodotto e’ basato su una serie di AND bit a bit,
A (shift left)
64-bit adder
P
B (shift right)
en
38
Elettronica dei Sistemi Digitali
Moltiplicatore Seriale (2)
Basato sui registri :• A Moltiplicatore• B Moltiplicando (64 bit)• P Registro accumulazione parziale (64 bit)In questa soluzione P ed A sono concatenati, permettendo un notevole
risparmio di risorse:
A
32-bit adder
P/B (Shift Right) en