ΠΟΛΛΑΠΛΑΣΙΑΣΤΕΣ - ceid.upatras.gr · ΠΟΛΛΑΠΛΑΣΙΑΣΤΕΣ ΜΑΡΓΑΡΗΣ...

Post on 06-Oct-2020

14 views 0 download

Transcript of ΠΟΛΛΑΠΛΑΣΙΑΣΤΕΣ - ceid.upatras.gr · ΠΟΛΛΑΠΛΑΣΙΑΣΤΕΣ ΜΑΡΓΑΡΗΣ...

ΠΟΛΛΑΠΛΑΣΙΑΣΤΕΣ

ΜΑΡΓΑΡΗΣ ΝΙΚΟΛΑΟΣ ΑΜ 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)