Upload
others
View
13
Download
0
Embed Size (px)
Citation preview
ΠΟΛΛΑΠΛΑΣΙΑΣΤΕΣ
ΜΑΡΓΑΡΗΣ ΝΙΚΟΛΑΟΣ ΑΜ 2473ΤΑΜΤΑΜΗΣ ΠΑΝΑΓΙΩΤΗΣ ΑΜ 2537
ΕΙΣΑΓΩΓΗ
ΠΟΛΛΑΠΛΑΣΙΑΣΤΗΣ:Αποτελεί το 10% κατά µέγιστο του συνολικού ηµιαγωγικού υλικού σε ένα ψηφιακό επεξεργαστή.Συνήθως µοιράζεται το hardware και µε άλλες πράξεις όπως αυτές της διαίρεσης και της στρογγυλοποίησης προκειµένου να επιτευχθεί µεγαλύτερη ταχύτητα.Το µέσο κόστος του αυξάνεται ανά τετραγωνική ρίζα µήκους ψηφιολέξης, ενώ ο χρόνος εκτέλεσης αυξάνεται ανά δυαδικό λογάριθµο µήκους ψηφιολέξης.Κατά µέσο όρο η πράξη του πολλαπλασιασµού διαρκεί περίπου τέσσερις φορές από ότι η πρόσθεση.Το 1/3 των αριθµητικών πράξεων είναι πολλαπλασιασµοί.Αύξηση κατά πολύ της ταχύτητας του πολλαπλασιασµού εκτιµάται σε διπλασιασµό της ταχύτητας της cpu
ΚΑΤΗΓΟΡΙΕΣ
Adder bypassing
Reducing addition time
Multiple shifts
Multiplier Recoding
High Radix Multiplication
ΕΜΕΣΟΙΠΟΛΛΑΠΛΑΣΙΑΣΤΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΥΛΙΚΟ
Τυπική έµµεση µονάδα πολλαπλασιασµού
Αποτελείται από:
3 καταχωρητές(AC,MR,AX)
n-bit Parallel Adder
2 ξεχωριστά flip-flops
Μετρητής ελέγχου (Control Counter –CTR)
Εξισώσεις Πολλαπλασιασµού
S=Sn-1…S1S0 αποτέλεσµα αθροιστή
AX^MR0=
Cout.S←(AC)+(AX^MR0)
AC.MR←Cout.Sn-1…S1S0MRn-1…MR1
⎭⎬⎫
⎩⎨⎧
==0MR αν 0,
1MR αν AX,
0
0
UNSIGNED AND SIGN-MAGNITUDE MULTIPLICATION
Πολλαπλασιασµός 2 n-bit απρόσηµων αριθµώνΧρειάζονται n+1 κύκλοιΤο φόρτωµα των δεδοµένων στους καταχωρητέςκαι τα flip-flop γίνεται στον κύκλο C0
To loop του πολλαπλασιασµού αποτελείται από n κύκλουςΑν έχουµε απρόσηµους αριθµούς τότε τα As και Bs flip-flop γεµίζουν µε µηδενικά, αλλιώς µε τα πρόσηµα.Στο τέλος του πολλαπλασιασµού το πρόσηµο εξάγεται µε πράξη XOR µεταξύ των As και Bsflip-flop Χρόνος εκτέλεσης πολλαπλασιασµού n+1 κύκλοι
Indirect Sign-Complement Multiplications
Απαιτούνται 2 complemented stages: precomplemented/postcompemented
Χρόνοι:
OC (1’s complement) απαιτεί n+3 κύκλους
TC (2’s complement) απαιτεί n+5 κύκλους
Το κύριο loop πολλαπλασιασµού είναι ίδιο µε εκείνο του unsigned and sing-magnitude πολλαπλασιασµού.
Indirect Universal Multiplier Design
Περιέχει όλες τις προηγούµενες τεχνικές πολλαπλασιασµού
Απαιτούνται µόνο 2 γραµµές ελέγχου για να καθορίσουµε πια πράξη εκτελούµε
Ο χρονισµός του κυκλώµατος είναι ίδιος µε αυτόν του επεξεργαστή
Υπάρχουν περιπτώσεις όπου ο επεξεργαστής µένει ανενεργός
Multiple Shifts in Multiplication
Βασίζεται στην ιδιότητα ότι παράγουµε συγκεκριµένα γινόµενα τα οποία προσθέτουµε συνέχειαΧρησιµοποιείται για να επιταχύνουµε την πράξη του πολλαπλασιασµούΜπορεί να είναι επικαλυπτόµενη ή µηΓίνεται χρήση Carry Save Adder και Carry propagate Adder δέντρων, και loop αυτώνΜεγαλύτερο κόστος στο υλικόΕπιτυγχάνεται µε τον έλεγχο πολλαπλών bit τη φορά ανά οµάδεςΧρησιµοποιούµε ζυγό αριθµό µήκος λέξης. Αν δεν είναι συµπληρώνουµε µε µηδενικά
Γενικά
Non Overllapped Multiple-Bit Scanning ShiftsΌσο πιο µεγάλο είναι το µπλοκ των bits που σαρώνεταιτόσο πιο πολλά είναι τα γινόµενα που θα προστεθούν, εποµένως χρειαζόµαστε περισσότερες προσθέσειςΧρειαζόµαστε γενικά t= + 1 κύκλους, για m ίσο µε τον αριθµό των bit που ελέγχουµε κάθε φοράΠροκειµένου να αυξήσουµε τον αριθµό των bit που θα σαρώνουµε κάθε φορά χρειαζόµαστε περισσότερων επιπέδων CSA δέντραΗ πρόσθεση κάθε επιπέδου CSA προσθέτει 2∆ καθυστέρησηΗ καθυστέρηση των καταχωρητών των πολυπλεκτών και της επιλογής γινοµένου υπολογίζεται µαζί σε 8∆Εποµένως για m bit σάρωση, έχοντας ένα u-level CSAδέντρο, έχουµε συνολικό χρόνο πολλαπλασιασµού: (20+2u)( +1)∆, και χρειαζόµαστε m-1 CSA’s
⎥⎥⎤
⎢⎢⎡
m
n
⎥⎥⎤
⎢⎢⎡m
n
Overlapped Multiple-Bit Shifts
H βασική ιδέα στηρίζεται στο shift-άρισµα από την εύρεση µηδενικών στον τελεστή –πολλαπλασιαστή προκειµένου να γλιτώσουµε προσθέσειςΓια µεγάλο αριθµό µηδενικών γλιτώνουµε παρά πολύ χρόνοΜειώνει στο µισό τον αριθµό των γινοµένων που θα προστεθούνΧρειάζονται µόνο οι µισοί CSA’s για την πράξη του πολλαπλασιασµού
Βασίζεται στους τύπους:Εάν έχουµε ένα string:∆ιάταξη: …,i+k,i+k-1,i+k-2,…,i,i-1,…Περιεχόµενο: …, 0 , 1, 1,…,1,0,…
↑ k συνεχόµενα 1↑Από την ιδιότητα:2i+k-2i=2i+k-1+2i+k-2+…+2i+1+2i
Μπορούµε να αντικαταστήσουµε τα k συνεχή 1 µε το ακόλουθο string:
∆ιάταξη: …,i+k+1,i+k,i+k-1,…,i+1,i,i-1,…Περιεχόµενο: …, 0 , 1, 0,…,0, ,…
1 πρόσθεση↑ k συνεχόµενα0’s ↑ 1 αφαίρεση
1
Βασίζεται στη ιδέα µετατροπής ενός δυαδικού αριθµού στην αντίστοιχη SDµορφή του έτσι ώστε να µην περιέχει συνεχόµενους άσους και αυτοί να χωρίζονται από µηδενικά∆ηλαδή Dn-1xDn-2≠1 για D=Dn-1Dn-2…D0
Η ιδιότητα αυτή πάντα πληρείται εάν στηναριστερή πλευρά του προσθέσουµε ένα 0 Dn=0
Canonical Multiplier Recoding
Χρειαζόµαστε µόνο τους τελεστές Α ,-Α
Τα µηδενικά shift-αρονται γλιτώνοντας χρόνο
Αν παίρνουµε τα bit ανά δυάδες τότε έχουµε 4 δυνατές καταστάσεις ( 0,0 ,01,10) που µπορεί να προσοµοιωθεί σαν 4SD διάνυσµα.
Έτσι χρειαζόµαστε τους τελεστές 0,Α,-Α,2Α,-2Α
Αυτή η τεχνική εφαρµόστηκε στους ILLIAC
11
String Recoding & Booth Multiplier
Βασίζεται στην ιδιότητα που έχει το δυαδικό string στην µέθοδο Overlapped Multiple-Bit Shifts
Το τροποποιηµένο string το ξανακωδικοποιούµε σύµφωνα µε τον αλγόριθµο
Di= ⎪⎭
⎪⎬
⎫
⎪⎩
⎪⎨
⎧
⟩
⟨=
1-ii
1-ii
1-ii
BΒ αν ,1
BΒ αν 1,
BB αν 0,
Η διαδικασία απαιτεί την εισαγωγή 2 µηδενικών bit δεξιά και αριστερά του string δηλαδή B-
1=Bn=0Παράδειγµα:
B=(0 0 1 0 1 0 1 0 1 0)2
D=(0 1 ΄1 1 ΄1 1 ΄1 1 ΄1 0)SD
Με τη µέθοδο αυτή αποφεύγουµε τα complemented stages: pre/postcompementedαφού δύο 2’s complement αριθµοί µπορούν να πολλαπλασιαστούν αµέσωςΈτσι αν στο D string βρούµε:
0 shift-αρουµε δεξιά1 προσθέτουµε A΄1 αφαιρούµε A
Υλοποιείται µε CSAδέντραΑπαιτεί κύκλους µηχανής όπου m ο αριθµός των ζευγαριών που ελέγχουµεΥπάρχει trade-off µεταξύ ταχύτητας και πολυπλοκότητας υλικούΤο απλούστερο σχέδιο είναι να σαρώνουµε ένα µόνο ζευγάρι από τα bitτου τελεστή-πολλαπλασιαστή αλλά αυτό απαιτεί n κύκλους
⎥⎥⎤
⎢⎢⎡ +
m
n 1
Iterative Cellular Array Multipliers
∆ηµιουργήθηκαν µε σκοπό την αποφυγή των πολλών add-shifts
Επιτυγχάνουν µεγάλη ταχύτητα υπολογισµού
Εκµεταλλεύονται τον παράλληλο πολλαπλασιασµό των µερικών όρων γινοµένου (summands: aibj)
Στοχεύουν στην µείωση των άσων σε κάθε τέτοιο όρο
Braun’s Array Multiplier
n(n-1) FA’s
n2 AND’s
∆US=(4n-2)∆ µε RCA
∆US=(2n-8)∆ µε CLA
Sign Complemented Array MultipliersΧρήση pre / postcomplementersστην 1’s και 2’s complementαναπαράσταση1’s: χρήση XOR2’s: χρήση n bits 2’s complementers µε καθυστέρηση (2n+3)∆Χρόνοι: ∆SM=(4n-2)∆ ∆OC=(4n+4)∆ ∆TC=(8n+4)∆
Nonadditive Multiply Modules with Wallace Trees
Wallace Tree k-εισόδων:bit-slice summing unit µε 3-προς-2 CSFA’s
Μέσος χρόνος:16bit χρόνος: 75nsec32bit χρόνος:115nsec
Additive Multiply ModulesΧρόνος καθυστέρησης για 4mx4m ΑΜΜ Networkµε 4-προς-2 AMM’s: ∆4mx4m=(30m-8)∆
#AMM’s=2m2
Direct 2’s Complement Multiplication
Γίνεται χρήση των Generalized Full Adders
Στηρίζεται σε µια ιδιόµορφη αναπαράσταση των αρνητικών αριθµών σε 2’s complement πχ.
⎪⎪⎭
⎪⎪⎬
⎫
⎪⎪⎩
⎪⎪⎨
⎧
=⎥⎦
⎤⎢⎣
⎡−+−
=+
=
−
−
=
−
−
=
∑
∑
1,2)1(1
0,2
1
2
0
1
2
0
n
n
i
ii
n
n
i
ii
u
aa
aa
N
01234210
01234210
2121202021)10011()13(
2120212120)01101()13(
⋅+⋅+⋅+⋅+⋅−==−=−
⋅+⋅+⋅+⋅+⋅−==+=
N
N
Generalized Full AddersΤύπος 0:C21+S20=X20+Y20+Z20
Τύπος 1: C21+(-S)20=X20+Y20+(-Z)20
Τύπος 2:(-C)21+S20=(-X)20+(-Y)20+Z20
Τύπος 3:(-C)21+(-S)20=(-X)20+(-Y)20+(-Z)20
Τύπος 0 ή Τύπος 3:S=X’Y’Z+X’YZ’+XY’Z’+XYZC=XY+YZ+ZX
Τύπος 1 ή Τύπος 2:S=X’Y’Z+X’YZ’+XY’Z’+XYZC=XY+XZ’+YZ’
Pezaris Array MultiplierΕίναι άµεσος πολλαπλασιαστής για 2’s complement εισόδους
Γίνεται χρήση ανάµεικτων Generalized FA’s
∆p=(4n-2)∆
∆p(CLA)=(2n+8)∆
Tri-section Array MultiplierΑλλαγή FA’s τύπου 2 µε FA’s τύπου 1
Bi-section Array Multiplier∆BS=4n∆∆BS(CLA)=(2n+10)∆
Baugh-Wooley 2’s Complement Multipliers
Baugh-Wooley Multipliers µε χρήση 2’s complement των αρνητικών summands
Συγκρίσεις
2(m+n)∆2(m+n)∆2(m+n)-2∆2(m+n)∆-2∆Multiply TIme
0001Τύπος 3
02(m-1)2(m-1)m+n-3Τύπος 2
002(m-1)(n-2)m-2Τύπος 1
m(n-1)+3(m-2)(n-1)2(m-1)(n-2)(m-2)(n-2)Τύπος 0
#FA’s
Baugh-Wooley
Bi-SectionTri-SectionPezaris
mxn 2’s Complement Array Multiplier
Universal Multiplication Arrays
2’s complement
11
1’s complement
10
Sign-magnitude
01
Unsigned00
Λειτουργίαπολλαπλασι
ασµού
Mode Control
XY
Αλγόριθµος για UMA’sPik=aibk για Pn-1,n-1=an-1bn-1
Ei=(XY ai)bn-1 γιαFk=an-1(XY bk) γιαQa=XYa’n-1; Qb=XYb’n-1
Za=XYan-1; Zb=XYbn-1
W=XYΧρειάζονται: n2-n+3 FA’s,6n-3 XOR’s,N2+11 AND’s,3 OR’s,1 dual 4-to-1 MUX
⎭⎬⎫
⎩⎨⎧
−≤≤−≤≤
20
20
nk
ni
⊕
⊕ 20 −≤≤ ni
20 −≤≤ nk
Programmable Additive Multiply Modules (PAM’s)
‘Εχουµε 4 διαφορετικές λειτουργίες κατ’ επιλογή
Χαρακτηριστικά
Mode 00:
Mode 01:
Mode 10:
Mode 11:
( ) ( )∑∑ ∑−
=
−
=
−
=
×++×=×1
0
1
0
1
000 22
k
i
k
j
k
r
rrr
iji dcbakkM
( ) ( )∑∑ ∑ ∑−
=
−
=
−
=
−
=
−+−
+ ++×+×=×1
0
2
0
1
0
1
0
1101 22
k
i
k
j
k
i
k
rrr
ikki
jiji dcbabakkM
( ) ( ) rk
i
k
j
k
j
k
rrr
jkjk
jiji dcbabakkM 222
2
0
1
0
1
0
1
0
1110 ×++×+×=× ∑∑ ∑ ∑
−
=
−
=
−
=
−
=
−+−
+
( )
( ) ( ) rk
rrr
kkk
k
j
k
i
kikki
jkjk
k
i
k
j
kkk
jiji
dcba
baba
babakkM
22
2122
22
1
0
111
1
0
1
0
1211
11
2
0
2
0
221111
×++×++
×+×+×+
×+×=×
∑
∑ ∑
∑∑
−
=
−−−
−
=
−
=
−−+−
−+−
−
=
−
=
−−−
+
Universal Multiplication Networks
Χρονοκαθυστερήσεις
(7n-5)∆(4n+15)∆n2-n-3Nxn
219∆64143∆98932x32
107∆1679∆23716x16
51∆447∆538x8
Multiply Time
#PAM’sMultiply Time
#FA’sSize nxn
UMN(nxn)UMA(nxn)
2
4 ⎟⎠⎞⎜
⎝⎛ n
Recoded Array MultiplicationΓίνεται χρήση µιας ιδιαίτερης δοµής αναπαράστασης των 2’s complemented αριθµώνΧρησιµοποιούνται CASS’s (Controlled Add-Substract Shifters)Aκολουθείται Booth αλγόριθµοςΧρόνος: ∆=(16n-5)∆ µεταξύ array και serial-parallel πολλαπλασιαστών
CSAA’s
S=A BP CPT=(A D)(B+C)+BCU=B;Q=P;R=DΑν P=0 τότε U=BAν P=1 και D=0 τότε το κελί λειτουργεί σαν AdderΑν P=1 και D=1 τότε το κελί ενεργεί σαν Substractor
⊕⊕⊕
ROM Adder Multiplication NetworksΧρησιµοποιούνται ROM’s µε περιεχόµενο ανάλογο µε το γινοµένου του αριθµού γραµµής επί του αριθµού στήληςΥπάρχουν 2m+n πιθανές λέξεις για ένα (m+n) γινόµενοΣυνολικός αποθηκευτικός χώρος: Ν=2m+nx(m+n)∆ηµιουργείται, όµως, λάθος στρογγυλοποίησης στο αποτέλεσµα emax=0.5/(2n-1)x100
Array Multiplier µε ROM’s
Λογαριθµικοί Πολλαπλασιαστές
Γίνεται χρήση ROM’s οι οποίες, όµως, έχουν αποθηκευµένες τιµές ίσες µε τους λογαρίθµους (ή αντίστροφα αν πρόκειται για διαίρεση) των αναµενόµενων τιµών
Έτσι απαιτείται πολύ µικρός αποθηκευτικός χώρος
Σχέσεις: Α x B = antilog(logA + logB) A / B = antilog(logA – logB)