HY121 Ηλεκτρικϊ Κυκλώματα Διδϊςκων: Χ. ωτηρύου, Βοηθού: Ε. Βαςιλϊκησ, Δ. Πούλιοσ http://www.csd.uoc.gr/~hy121 1 Στατικόσ Πλιρθσ Ακροιςτισ MO Ακροιςτισ Παράκαμψθσ (arry ypass) Ακροιςτισ Επιλογισ Κρατουμζνου (arry elect) Πρόγνωςθ Κρατουμζνου (arry 2 1
Στατικόσ Πλιρθσ Ακροιςτισ MO Ακροιςτισ Παράκαμψθσ (arry ypass) Ακροιςτισ Επιλογισ Κρατουμζνου (arry elect) Πρόγνωςθ Κρατουμζνου (arry 3 Δομικού Λύθοι Ψηφιακών Κυκλωμϊτων Κατηγορίεσ Αρικμθτικζσ, Λογικζσ Μονάδεσ Παραδείγματα Ακροιςτζσ, Πολλαπλαςιαςτζσ,, Συγκριτζσ, κτλ. Μνιμθ RM, ROM, ουρζσ, καταχωρθτζσ Κυκλϊματα Ελζγχου Μετρθτζσ, Μθχανζσ Πεπεραςμζνων Καταςτάςεων Κυκλϊματα Διαςυνδεςιμότθτασ Δρομολογθτζσ (witches), Διαιτθτζσ (rbiters), Κυκλϊματα Διαφλων (us) 4 2
it slice 63 Loopback us Loopback us Loopback us it slice 2 it slice 1 it slice 0 Δομό κυκλώματοσ κατατετμημϋνου ανϊ ψηφύο (bit-sliced) ontrol it 3 Data-In Register dder hifter Multiplexer it 2 it 1 it 0 Data-Out Η μεκοδολογία κατάτμθςθσ ανά bit χωροκετεί Οριηοντίωσ τα ψθφία των δρϊμενων 5 Είςοδοσ και Tile Ζξοδοσ identical οριηόντιαprocessing elements Κακζτωσ τα τμιματα των κυκλϊματα επεξεργαςίασ τουσ Σιματα Ελζγχου κάκετα Δομό κυκλώματοσ κατατετμημϋνου ανϊ ψηφύο (bit-sliced) From register files / ache / ypass Multiplexers hifter dder stage 1 Wiring dder stage 2 Wiring dder stage 3 um elect To register files / ache 6 3
Itanium Ακϋραιο Σμόμα Δεδομϋνων 7 Στατικόσ Πλιρθσ Ακροιςτισ MO Ακροιςτισ Παράκαμψθσ (arry ypass) Ακροιςτισ Επιλογισ Κρατουμζνου (arry elect) Πρόγνωςθ Κρατουμζνου (arry 8 4
Πλόρησ Αθροιςτόσ (Full dder) a b ci co s κρατοφμενο 0 0 0 0 0 αναίρεςθ 0 0 1 0 1 αναίρεςθ 0 1 0 0 1 προϊκθςθ 0 1 1 1 0 προϊκθςθ 1 0 0 0 1 προϊκθςθ 1 0 1 1 0 προϊκθςθ 1 1 0 1 0 ανάκεςθ 1 1 1 1 1 ανάκεςθ s = a b ci + a bci + ab ci + abci = ci (a b + ab) + ci (a b + ab ) = ci (a (+) b) + ci (a (+) b) = a (+) b (+) c co = a bci + ab ci + abci + abci = ab (ci + ci ) + ci (a b + ab ) = ab + ci(a (+) b) 9 Ιδιότητα Αντιςτροφόσ F o F o = o = o 10 5
Ιδιότητα Αντιςτροφόσ Even cell Odd cell 0 0 1 1 2 2 3 3,0 o,0 o,1 o,2 o,3 F F F F 0 1 2 3 Χρησιμοποιώντας την ιδιότητα Αντιστρουής 11 Στατικόσ Πλιρθσ Ακροιςτισ MO Ακροιςτισ Παράκαμψθσ (arry ypass) Ακροιςτισ Επιλογισ Κρατουμζνου (arry elect) Πρόγνωςθ Κρατουμζνου (arry 12 6
τατικόσ Πλόρησ Αθροιςτόσ MO V DD V DD X V DD V DD o 28 Transistors 13 Στατικόσ Πλιρθσ Ακροιςτισ MO Ακροιςτισ Παράκαμψθσ (arry ypass) Ακροιςτισ Επιλογισ Κρατουμζνου (arry elect) Πρόγνωςθ Κρατουμζνου (arry 14 7
Έμμεςη Τλοπούηςη και όματα a b ci co s κρατοφμενο 0 0 0 0 0 αναίρεςθ 0 0 1 0 1 αναίρεςθ 0 1 0 0 1 προϊκθςθ 0 1 1 1 0 προϊκθςθ 1 0 0 0 1 προϊκθςθ 1 0 1 1 0 προϊκθςθ 1 1 0 1 0 ανάκεςθ 1 1 1 1 1 ανάκεςθ Σε κάποιεσ υλοποιιςεισ ακροιςτϊν οι ζξοδοι (s, co) προκφπτουν από ζμμεςεσ εκφράςεισ: G =. D =. P = + ι P = (+) Έτσι, οι εκυπάσειρ για co, s μετατπέπονται ωρ εξήρ: co = G + P ci και s = p (+) ci 15 Στατικόσ Πλιρθσ Ακροιςτισ MO Ακροιςτισ Παράκαμψθσ (arry ypass) Ακροιςτισ Επιλογισ Κρατουμζνου (arry elect) Πρόγνωςθ Κρατουμζνου (arry 16 8
ειριακό Κρατούμενο Η απλοφςτερθ υλοποίθςθ ενόσ ν-bit ακροιςτι Εν ςειρά το κάκε ψθφίο ν παίρνει κρατοφμενο από το (ν-1) Μειονεκτιματα Μεγάλθσ κακυςτζρθςθσ κρίςιμο μονοπάτι Από το co μζχρι το δεξιότερο κρατοφμενο 17 Στατικόσ Πλιρθσ Ακροιςτισ MO Ακροιςτισ Παράκαμψθσ (arry ypass) Ακροιςτισ Επιλογισ Κρατουμζνου (arry elect) Πρόγνωςθ Κρατουμζνου (arry 18 9
Αθροιςτόσ Mirror «Καθρϋφτησ» V DD V DD V DD "0"-Propagate Kill o "1"-Propagate Generate 24 transistors Βαςίηεται ςτισ: co = G + P ci, s = p (+) ci, d = a b, g = ab, p = a + b 19 Γρϊμμο-διϊγραμμα Αθροιςτό Mirror V DD o o GND 20 10
Στατικόσ Πλιρθσ Ακροιςτισ MO Ακροιςτισ Παράκαμψθσ (arry ypass) Ακροιςτισ Επιλογισ Κρατουμζνου (arry elect) Πρόγνωςθ Κρατουμζνου (arry 21 Αθροιςτόσ Σρανζύςτορ Διϋλευςησ P V DD V DD P P um Generation V DD P P P V DD o arry Generation etup P 24 τρανηίςτορ 22 11
Αθροιςτόσ Παρϊκαμψησ (arry- ypass/kip) P 0 G 1 P 0 G 1 P 2 G 2 P 3 G 3 ή arry-kip,0 o,0 o,1 o,2 F F F F o,3 P 0 G 1 P 0 G 1 P 2 G 2 P 3 G 3 P=P o P 1 P 2 P 3,0 o,0 o,1 o,2 F F F F Multiplexer o,3 If (P0P1P2P3) Idea: If (P0 and o,3 P1 and = P2 1 and P3 = 1) then o3 = else 0, else o,3 kill = or i,0 generate. else GENERTE or DELETE 23 Αθροιςτόσ Παρϊκαμψησ (arry- ypass/kip) it 0 3 etup t setup it 4 7 etup t bypass it 8 11 etup it 12 15 etup arry propagation arry propagation arry propagation arry propagation um um um t sum um M bits t adder = t setup + M tcarry + (N/M-1)t bypass + (M-1)t carry + t sum 24 12
Στατικόσ Πλιρθσ Ακροιςτισ MO Ακροιςτισ Παράκαμψθσ (arry ypass) Ακροιςτισ Επιλογισ Κρατουμζνου (arry elect) Πρόγνωςθ Κρατουμζνου (arry 25 Αθροιςτόσ Παρϊκαμψησ (arry- ypass/kip) t p ripple adder bypass adder 4..8 N 26 13
Στατικόσ Πλιρθσ Ακροιςτισ MO Ακροιςτισ Παράκαμψθσ (arry ypass) Ακροιςτισ Επιλογισ Κρατουμζνου (arry elect) Πρόγνωςθ Κρατουμζνου (arry 27 Αθροιςτόσ Επιλογόσ Κρατουμϋνου etup P,G "0" "0" arry Propagation "1" "1" arry Propagation o,k-1 Multiplexer o,k+3 um Generation arry Vector 28 14
Αθροιςτόσ Επιλογόσ Κρατουμϋνου - Γραμμικόσ it 0 3 it 4 7 it 8 11 it 12 15 etup etup etup etup 0 0-arry 0 0-arry 0 0-arry 0 0-arry 1 1-arry 1 1-arry 1 1-arry 1 1-arry Multiplexer Multiplexer Multiplexer Multiplexer,0 o,3 o,7 o,11 o,15 um Generation um Generation um Generation um Generation 0 3 4 7 8 11 12 15 29 Αθροιςτόσ Επιλογόσ Κρατουμϋνου Ρύζασ it 0-1 it 2-4 it 5-8 it 9-13 it 14-19 etup etup etup etup (1) "0" "0" arry "0" "0" arry "0" "0" arry "0" "0" arry (1) "1" "1" arry "1" "1" arry "1" "1" arry "1" "1" arry (3) (3) (4) (5) (6) (4) (5) (6) (7) Multiplexer Multiplexer Multiplexer Multiplexer,0 um Generation um Generation um Generation um Generation 0-1 2-4 5-8 9-13 (7) Mux (8) um 14-19 (9) 30 15
t p (in unit delays) Αθροιςτόσ Επιλογόσ Κρατουμϋνου Ρύζασ 50 40 Ripple adder 30 20 Linear select 10 quare root select 0 0 20 40 N 60 31 Στατικόσ Πλιρθσ Ακροιςτισ MO Ακροιςτισ Παράκαμψθσ (arry ypass) Ακροιςτισ Επιλογισ Κρατουμζνου (arry elect) Πρόγνωςθ Κρατουμζνου (arry Πολλαπλαςιαςτισ Δζντρου Wallace Διαίρεςθ 32 16
Πρόγνωςη Κρατουμϋνου Ο βαςικόσ ςτόχοσ είναι να μειωκεί θ μεγάλθ κακυςτζρθςθ τθσ αλυςίδασ των κρατουμζνων των ν-bit Βαςικι ιδζα Ακριβισ πρόγνωςθ πριν αυτό προκφψει από τισ εξιςϊςεισ Για ομάδεσ ν-bit (όπου ςυνικωσ v ~ 4) Υπολογίηεται θ πρόγνωςθ του αυτι προωκείται ςτθν επόμενθ ομάδα Η κακυςτζρθςθ τθσ πρόγνωςθσ είναι ςθμαντικά μικρότερθ από τον ςειριακι προϊκθςθ του 33 Πρόγνωςη Κρατουμϋνου - Γϋνεςη, Προώθηςη Στθν πρόςκεςθ + Β παράγεται κρατοφμενο μόνο όταν ΑΒ: G = Ζνα κρατοφμενο προάγεται ςτο επόμενο ψθφίο όταν: P = + Το κρατοφμενο μπορεί να εκφραςτεί ωσ: co = G + P ci Για ν=4-bits: c1 = G0 + P0 c0 c2 = G1 + P1 c1 = G1 + P1(G0 + P0 c0) = G1 + G0P1 + c0p0p1 c3 = G2 + G1P2 + G0P1P2 + 0P0P1P2 4 = G3 + G2P3 + G1P2P3 + 0P0P1P2P3 34 17
Πρόγνωςη Κρατουμϋνου 4-bit Αθροιςτόσ 4 = (G3 + G2P3 + G1P2P3 + G0P1P2P3) + 0(P0P1P2P3) PG = P0P1P2P3 GG = G3 + G2P3 + G1P2P3 + G0P1P2P3 4 = GG + 0 PG 35 Πρόγνωςη Κρατουμϋνου 16-bit Αθροιςτόσ Ιεραρχικά θ μονάδα LU υπολογίηει τα: PG, GG c16 36 18
Πρόγνωςη Κρατουμϋνου 64-bit Αθροιςτόσ Ίδια ιδζα με 2 ο επίπεδο ιεραρχίασ 37 Στατικόσ Πλιρθσ Ακροιςτισ MO Ακροιςτισ Παράκαμψθσ (arry ypass) Ακροιςτισ Επιλογισ Κρατουμζνου (arry elect) Πρόγνωςθ Κρατουμζνου (arry 38 19
Αλγόριθμοσ Πολλαπλαςιαςμού MULTIPLY(x, y, m) // Είςοδοι - x : πολλαπλαςιαςτζοσ, y : πολλαπλαςιαςτισ, Ζξοδοσ m : γινόμενο { n = LENGTH(y); m = 0; t = x; // ολιςκθτισ // for i in 1 to n // για κάκε ψθφίο του y // { if (y[i] == 1) m = m + t; // πρόςκεςθ μερικοφ παράγοντα // t = t << 1; // ολίςκθςθ 1 ψθφίο δεξιά για κάκε ψθφίο του y // } return r; } 39 Μερικών Γινομϋνων 67 x 54 1 ο με 1 ο 2 ο με 1 ο 1 ο με 2 ο 2 ο με 2 ο 67 X 54 28 240 350 3000 + 3618 67 X 54 28 240 350 3000 + 3618 67 X 54 28 240 350 3000 + 3618 67 X 54 28 240 350 3000 + 3618 οι τζςςερισ αυτοί ςυνδυαςμοί μποροφν να γίνουν ςε ςφνολα από δυαδικά ψηφία 40 20
Μερικών Παραγόντων + x 1 0 1 0 1 0 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 0 Multiplicand Πολλαπλαςιαςτζοσ Multiplier Πολλαπλαςιαςτισ Partial Μερικά products Γινόμενα Result Τελικό Αποτζλεςμα Μια πφλθ ND αρκεί για κάκε ψθφίο του πολλαπλαςια 41 Στατικόσ Πλιρθσ Ακροιςτισ MO Ακροιςτισ Παράκαμψθσ (arry ypass) Ακροιςτισ Επιλογισ Κρατουμζνου (arry elect) Πρόγνωςθ Κρατουμζνου (arry 42 21
Πολλαπλαςιαςτόσ Πύνακα (rray) X 3 X 2 X 1 X 0 Y 0 X 3 X 2 X 1 X 0 Y 1 Z 0 H F F H X3 X 2 X 1 X 0 Y 2 Z 1 F F F H X3 X 2 X 1 X 0 Y 3 Z 2 F F F H Z 7 Z 6 Z 5 Z 4 Z 3 43 Πολλαπλαςιαςτόσ Πύνακα (rray) - Κρύςιμη Οδόσ H F F H F F F H ritical Path 1 ritical Path 2 F F F H ritical Path 1 & 2 NxM πολλαπλαςιαςμόσ 44 22
Στατικόσ Πλιρθσ Ακροιςτισ MO Ακροιςτισ Παράκαμψθσ (arry ypass) Ακροιςτισ Επιλογισ Κρατουμζνου (arry elect) Πρόγνωςθ Κρατουμζνου (arry 45 Πολλαπλαςιαςτόσ Αποθόκευςησ Κρατουμϋνου (arry ave) H H H H H F F F H F F F H F F H Vector Merging dder 46 23
Στατικόσ Πλιρθσ Ακροιςτισ MO Ακροιςτισ Παράκαμψθσ (arry ypass) Ακροιςτισ Επιλογισ Κρατουμζνου (arry elect) Πρόγνωςθ Κρατουμζνου (arry 47 Χωροθϋτηςη Πολλαπλαςιαςτό X 3 X 2 X 1 X 0 Y 0 Y 1 Z 0 H Multiplier ell F Multiplier ell Y 2 Z 1 Vector Merging ell Y 3 Z 2 X and Y signals are broadcasted through the complete array. ( ) Z 7 Z 6 Z 5 Z 4 Z 3 48 24
Στατικόσ Πλιρθσ Ακροιςτισ MO Ακροιςτισ Παράκαμψθσ (arry ypass) Ακροιςτισ Επιλογισ Κρατουμζνου (arry elect) Πρόγνωςθ Κρατουμζνου (arry Πολλαπλαςιαςτισ Δζντρου Wallace Διαίρεςθ 49 Δυαδικόσ Ολιςθητόσ Right nop Left i i i-1 i-1 it-lice i... 50 25
Περιςτροφικόσ Ολιςθητόσ (arrel) 3 3 h1 2 2 h2 : Data Wire 1 1 : ontrol Wire h3 0 0 h0 h1 h2 h3 51 Περιςτροφικόσ Ολιςθητόσ 4x4 3 2 1 0 h0 h1 h2 h3 Width barrel ~ 2 p m M uffer 52 26
Λογαριθμικόσ Ολιςθητόσ h1 h1 h2 h2 h4 h4 3 3 2 2 1 1 0 0 53 0-7 bit Λογαριθμικόσ Ολιςθητόσ Out3 Out2 Out1 Out0 54 27