Lecture 5. Other Adder Issues

Similar documents
Binary Arithmetic. Daniel Sanchez Computer Science & Artificial Intelligence Lab M.I.T.

Computer Architecture Set Four. Arithmetic

COMPUTER ORGANIZATION AND DESIGN. 5 th Edition. The Hardware/Software Interface. Chapter 3. Arithmetic for Computers Implementation

CAD4 The ALU Fall 2009 Assignment. Description

MOS High Performance Arithmetic

Number Systems and Computer Arithmetic

CPE300: Digital System Architecture and Design

Chapter 3 Arithmetic for Computers

Chapter 3: part 3 Binary Subtraction

Microcomputers. Outline. Number Systems and Digital Logic Review

M.J. Flynn 1. Lecture 6 EE 486. Bit logic. Ripple adders. Add algorithms. Addition. EE 486 lecture 6: Integer Addition

Jan Rabaey Homework # 7 Solutions EECS141

Learning Outcomes. Spiral 2 2. Digital System Design DATAPATH COMPONENTS

6.004 Computation Structures Spring 2009

Lecture 7: Instruction Set Architectures - IV

Lecture Topics. Announcements. Today: Integer Arithmetic (P&H ) Next: continued. Consulting hours. Introduction to Sim. Milestone #1 (due 1/26)

Part I: Translating & Starting a Program: Compiler, Linker, Assembler, Loader. Lecture 4

CS101 Lecture 04: Binary Arithmetic

Basic Arithmetic (adding and subtracting)

Partitioned Branch Condition Resolution Logic

At the ith stage: Input: ci is the carry-in Output: si is the sum ci+1 carry-out to (i+1)st state

Fundamentals of Computer Systems

POWER PERFORMANCE OPTIMIZATION METHODS FOR DIGITAL CIRCUITS

MULTIPLE OPERAND ADDITION. Multioperand Addition

CPE 335 Computer Organization. MIPS Arithmetic Part I. Content from Chapter 3 and Appendix B

Overview. EECS Components and Design Techniques for Digital Systems. Lec 16 Arithmetic II (Multiplication) Computer Number Systems.

ECE468 Computer Organization & Architecture. The Design Process & ALU Design

Learning Outcomes. Spiral 2-2. Digital System Design DATAPATH COMPONENTS

ECE331: Hardware Organization and Design

10.1. Unit 10. Signed Representation Systems Binary Arithmetic

Learning Outcomes. Spiral 2 2. Digital System Design DATAPATH COMPONENTS

Arithmetic Logic Unit. Digital Computer Design

CS Computer Architecture. 1. Explain Carry Look Ahead adders in detail

Floating Point Arithmetic

Inf2C - Computer Systems Lecture 2 Data Representation

Outline. EEL-4713 Computer Architecture Multipliers and shifters. Deriving requirements of ALU. MIPS arithmetic instructions

VTU NOTES QUESTION PAPERS NEWS RESULTS FORUMS Arithmetic (a) The four possible cases Carry (b) Truth table x y

Slide Set 5. for ENCM 369 Winter 2014 Lecture Section 01. Steve Norman, PhD, PEng


Topic Notes: Bits and Bytes and Numbers

Principles of Computer Architecture. Chapter 3: Arithmetic

Chapter 5. Digital Design and Computer Architecture, 2 nd Edition. David Money Harris and Sarah L. Harris. Chapter 5 <1>

MIPS Integer ALU Requirements

Arithmetic Circuits. Nurul Hazlina Adder 2. Multiplier 3. Arithmetic Logic Unit (ALU) 4. HDL for Arithmetic Circuit

Chapter 3 Arithmetic for Computers. ELEC 5200/ From P-H slides

Computer Architecture and Organization

ECE232: Hardware Organization and Design

DIGITAL TECHNICS. Dr. Bálint Pődör. Óbuda University, Microelectronics and Technology Institute

Data Representation Type of Data Representation Integers Bits Unsigned 2 s Comp Excess 7 Excess 8

Two-Level CLA for 4-bit Adder. Two-Level CLA for 4-bit Adder. Two-Level CLA for 16-bit Adder. A Closer Look at CLA Delay

CHAPTER 1 Numerical Representation

Lecture 3: Basic Adders and Counters

ECE 341. Lecture # 6

Kinds Of Data CHAPTER 3 DATA REPRESENTATION. Numbers Are Different! Positional Number Systems. Text. Numbers. Other

AN IMPROVED FUSED FLOATING-POINT THREE-TERM ADDER. Mohyiddin K, Nithin Jose, Mitha Raj, Muhamed Jasim TK, Bijith PS, Mohamed Waseem P

ECE331: Hardware Organization and Design

EE878 Special Topics in VLSI. Computer Arithmetic for Digital Signal Processing

Chapter 6 ARITHMETIC FOR DIGITAL SYSTEMS

E40M. Binary Numbers, Codes. M. Horowitz, J. Plummer, R. Howe 1

Introduction to Field Programmable Gate Arrays

CS 101: Computer Programming and Utilization

ECE 2020B Fundamentals of Digital Design Spring problems, 6 pages Exam Two Solutions 26 February 2014

UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Digital Computer Arithmetic ECE 666

ECE 550D Fundamentals of Computer Systems and Engineering. Fall 2017

CO212 Lecture 10: Arithmetic & Logical Unit

Design and Analysis of Kogge-Stone and Han-Carlson Adders in 130nm CMOS Technology

CHAPTER 5: Representing Numerical Data

Chapter Three. Arithmetic

Module 2: Computer Arithmetic

By, Ajinkya Karande Adarsh Yoga

Tailoring the 32-Bit ALU to MIPS

Arithmetic Processing

PESIT Bangalore South Campus

CHW 261: Logic Design

THE DESIGN OF AN IC HALF PRECISION FLOATING POINT ARITHMETIC LOGIC UNIT

Floating Point. CSE 351 Autumn Instructor: Justin Hsia

SIDDHARTH INSTITUTE OF ENGINEERING AND TECHNOLOGY :: PUTTUR (AUTONOMOUS) Siddharth Nagar, Narayanavanam Road QUESTION BANK UNIT I

COMPUTER ARCHITECTURE AND ORGANIZATION Register Transfer and Micro-operations 1. Introduction A digital system is an interconnection of digital

MACHINE LEVEL REPRESENTATION OF DATA

Topic Notes: Bits and Bytes and Numbers

COMPUTER ORGANIZATION AND ARCHITECTURE

Numeric Encodings Prof. James L. Frankel Harvard University

The ALU consists of combinational logic. Processes all data in the CPU. ALL von Neuman machines have an ALU loop.

Digital Logic & Computer Design CS Professor Dan Moldovan Spring 2010

Decimal & Binary Representation Systems. Decimal & Binary Representation Systems

Floating Point. CSE 351 Autumn Instructor: Justin Hsia

Operations On Data CHAPTER 4. (Solutions to Odd-Numbered Problems) Review Questions

Computer Science 324 Computer Architecture Mount Holyoke College Fall Topic Notes: Bits and Bytes and Numbers

CPE 323 REVIEW DATA TYPES AND NUMBER REPRESENTATIONS IN MODERN COMPUTERS

*Instruction Matters: Purdue Academic Course Transformation. Introduction to Digital System Design. Module 4 Arithmetic and Computer Logic Circuits

CPE 323 REVIEW DATA TYPES AND NUMBER REPRESENTATIONS IN MODERN COMPUTERS

Fundamentals of Computer Systems

COSC 243. Data Representation 3. Lecture 3 - Data Representation 3 1. COSC 243 (Computer Architecture)

Digital Circuit Design and Language. Datapath Design. Chang, Ik Joon Kyunghee University

EE878 Special Topics in VLSI. Computer Arithmetic for Digital Signal Processing

Signed integers: 2 s complement. Adder: a circuit that does addition. Sign extension 42 = = Arithmetic Circuits & Multipliers

Floating Point. CSE 351 Autumn Instructor: Justin Hsia

CS/COE 0447 Example Problems for Exam 2 Spring 2011

EECS150 - Digital Design Lecture 13 - Combinational Logic & Arithmetic Circuits Part 3

EC2303-COMPUTER ARCHITECTURE AND ORGANIZATION

Transcription:

Lecture 5 Other Adder Issues Mark Horowitz Computer Systems Laboratory Stanford University horowitz@stanford.edu Copyright 24 by Mark Horowitz with information from Brucek Khailany 1 Overview Reading There are many papers on fast adder design. I have collected a few of them and have posted a web page that lists them under reading You should read the Adder paper posted by Sam Naffziger. It should explain how to build Ling adder (useful for homework) Introduction: In the previous lecture we talked about different ways to organized adders, and showed a couple different ways to think about tree adders. This lecture will look at the Ling reformulation of the adder equations, and then look at some other issue that the designers of modern adders need to consider. If we have time, we will talk about the construction of floating point adder units. Much of this material first appeared in a lecture from Brucek Khailany 2

Review: Basic Tree Adder Architecture Convert input operands into propagate and generate P i = a i +b i G i = a i *b i Carry calculation Use P s & G s to compute carry to every bit (c i ) Either build a combining tree for each bit Or Fan-out results from tree(s) to each output Remember that C i+1 = G i: + P i: Cin Some times people try to combine Cin with the LSB of PG tree to remove the need for this gate (Make G = G +P Cin) Compute final sum Si = ai bi ci 3 Ling Adder Ling adders is just a way to reformulate the Pg Gg equations The normal equation are: G4 = G 3 + P 3 (G 2 + P 2 (G 1 + P 1 G )) P4 = P P 1 P 2 P 3 The equation for G4 requires a 4 stack since it is really G4 = G 3 + P 3 G 2 + P 3 P 2 G 1 + P 3 P 2 P 1 G Stacks are bad, so it is always nice to reduce them Notice if P = A+B, then if G is true P is also true, so G4 = P 3 G 3 + P 3 G 2 + P 3 P 2 G 1 + P 3 P 2 P 1 G G4 = P 3 (G 3 + G 2 + P 2 G 1 + P 2 P 1 G ) Define H4 = (G 3 + G 2 + P 2 G 1 + P 2 P 1 G ) H4 is easier to compute than G Can compute H4 directly from inputs w/o first computing P,G 4

Ling Adders cont d But now the problem is how to use H? Ultimately need G Want it to work in any tree type structure Each group does not need P MSB But the next more significant group need it to use H Define pseudo P called I to replace Pg I4 = P -1 P P 1 P 2 I4 1 = P 3 P 4 P 5 P 6 Then the combining formula looks just like it did before! H8 = H4 1 + I4 1 H4 I H 1 5 Who Cares? Normally this type of optimization would not matter much Trick only works with P,G, and not Pg Gg Gg does not imply that Pg is true H does not imply I either This means you get savings only at the first level of tree But adders are carefully optimized, and every bit helps Ultimately need to add the missing P back to generate Carry Put Cin into Ii in the open slot for P -1 When you generate C from H, I Cin i+1 = P i (H i: + I i: ), which is not much slower than normal Carry In carry select adders, P i can be added to the local chains 6

Ling vs. CLA Energy [pj] 6 55 5 45 4 35 3 25 2 15 1 R2 Ling R2 CLA R4 Ling R4 CLA 6 7 8 9 1 11 Delay [FO4] R. Zlatanovici, ESSCIRC 3 From Bora Nikolic 7 Review: Carry-Select Adders The Carry must fan-out to drive the width of the select group This fanout must be accounted for A.B[15:8] A.B[7:] Sum 1 SUM[7:] SUM[15:8] 8

Simple Linear Carry-Select Adders Now ripple the carry through the select blocks Critical path is linear with the number of blocks This could be a mux, but since carryout is monotonic on Cin you can simplify the mux 9 Select Trees: What To Do When C in is Late For the upper ½ of an adder, Cin 32 is usually late If the use the architecture on the previous page, you then need to ripple the carry through 4 selects Would be better to compute how Sum i depends on Cin 32 while we are computing Cin 32 Assume you have 8 bit groups the algorithm is Compute Sum1 (assume Cin to group is 1) and Sum Use Cout of previous group to create new Sum1* and Sum* Sum* 63-56 =(Cout 56? Sum1 63-56 : Sum 63-56 ) Sum1* 63-56 =(Cout1 56? Sum1 63-56 : Sum 63-56 ) The result is Sum1* is the correct sum if carryout 47 is 1 Sum* is the correct sum if carryout 47 is Effectively in one gate you have doubled the group size 1

Select Trees Generally need to use them in fast adders Otherwise can t generate the conditional sums fast enough But they are usually used only once In radix 4 systems to move 4 bit groups to depend on C16 In binary tree systems to make final group size around 8 But sometimes people go overboard In the Alpha adder, C32 was slow enough Rippled through 3 of these stages! These were differential pass transistors stages But still 11 Alpha Adder 12

72-bit Pentium II Adder 72-bit adder (Jason Stinson).35u process Domino Kogge-Stone CLA+sumselect Combines terms in both domino and CMOS stages 13 72-bit Pentium II Adder 14

72-bit Pentium II Adder 15 72-bit Pentium II Adder 16

72-bit Pentium II Adder 17 72-bit Pentium II Adder 18

72-bit Pentium II Adder 19 A Real-World Adder Design Example Part of Imagine A high-performance media processor designed at Stanford 32-bit segmented integer adder Two-level tree to compute global carries Uses carry-select to compute final sums from global carries Static CMOS logic Also pass gate logic Design constraints Area Design complexity (modularity) Speed 2

Adder Architecture A[31] B[31] A[24] B[24] A[23] B[23] A[16] B[16] A[15] B[15] A[8] B[8] A[7] B[7] A[] B[] PGK's: PGK's: PGK's: PGK's: Group PGK Group PGK Group PGK Group PGK COUT Global Carry Chain CIN PGK's[31:24] PGK's[23:16] PGK's[15:8] PGK's[7:] Conditional Sum 1 Conditional Sum 1 Conditional Sum 1 Sum CIN SUM[31:24] SUM[23:16] SUM[15:8] SUM[7:] 21 This Adder Is A Trade-off It is balancing design/logic complexity and speed It uses large groups which will ultimately limit performance It does use some tree structures It does not ripple carries But the group generation is a little slow Also uses large block sizes (8 bits) Does not move the carry select input to lower significance Need to worry about how outputs in block are generated 22

Segmented Adder: Details PGK s: Convert input operands into Propagate (P), Generate (G), Kill(K) Group PGK s: Determine P,G,K for groups of 8 bits Global carry chain: Compute cin[8], cin[16], cin[24], cout(cin[32]) from group PGK s and cin Conditional sums: Compute 8-bit sum for cin= and 8-bit sum for cin=1 as soon as PGK s are known Final Mux: Use cin s from global carry chain to select conditional sums 23 PGK Logic Pre-computation necessary to do fast carry computation P = a b A P B G = ab K = ~(a+b) A B G_b A B K Size gates to fan-out to four carry chains Note: To do A-B, use ~B here 24

Compute Group PGK s: Use Manchester Carry Chains Usually dynamic, but still works with static logic Group PGK s: GP = P[7].P[6].P[5].P[4].P[3].P[2].P[1].P[] GG = G[7] + G[6].P[7] + G[5].P[6].P[7]+ GK = ~(GG+GP) Use Carry chains Example for GG (group generate): P[] G_b[] P[1] G_b[1] P[2] G_b[2] P[3] G_b[3] P[] G_b[4] P[5] G_b[5] P[6] G_b[6] P[7] G_b[7] GG K[] K[1] K[2] K[3] K[4] K[5] K[6] K[7] 25 Carry Chain Sizing Minimize size of transistors not on critical path Taper sizes along carry chain Reduces diffusion capacitance 4 3 8 8 6 2 4 4 4 4 16 1 16 12 8 6 8 4 8 1 2 16 12 8 4 4 4 4 What does tapering decrease? It increases the LE of the critical input Why is the ratio of the first inverter funny 26

Static Carry Chains Sizing is to reduce the parasitic delay This delay dominates in large fanin structures, since it grows proportional to n 2 Using geometric sizing (reducing each transistor along the chain by α) makes the parasitic delay linear But still does not make them fast Even though this chain is static logic Drive the carry chain both up (K) and down (G) Output is degraded, since it uses nmos only pass devices Using CMOS transmission gates is usually slower because of the added parasitic capacitors 27 Global Carry Chain Must fan out GCIN[3:1] to 8 muxes Added load capacitance slows down the chain GG_b[] GG_b[1] GG_b[2] GG_b[3] GP[] GP[1] GP[2] GP[3] CIN COUT GK[] GK[1] GK[2] GK[3] GCIN[1] GCIN[2] GCIN[3] 28

Conditional Sums Use same carry chain Do two of these (one for cin=, one for cin=1): P[] G_b[] P[1] G_b[1] P[2] G_b[2] P[3] G_b[3] P[] G_b[4] P[5] G_b[5] P[6] G_b[6] P[7] G_b[7] CIN K[] K[1] K[2] K[3] K[4] K[5] K[6] K[7] P[] P[1] P[2] P[3] P[4] P[5] P[6] P[7] SUM[] SUM[1] SUM[2] SUM[3] SUM[4] SUM[5] SUM[6] SUM[7] Mux SUM[7:] and SUM1[7:] with output of global carry chain 29 Arithmetic Operations For Media Processing Used in Media processing DSP s, multimedia extensions to instruction set architectures (MMX, VIS) Consider three variations of conventional arithmetic: Segmented Arithmetic Break carry chain Arithmetic operations similar to add/subtract Example: 4 parallel 8-bit unsigned absolute differences Saturation Don t wraparound on overflow 3

Segmented add operation Support 32-bit, dual half-word, or quad byte ops Example: 4 parallel byte additions Treat each byte as a separate 2 s complement number Don t propagate the carries across byte boundaries 1 4 2 F F F F + F E 2 1 2 1 2 4 1 31 Modification For Segmentation PGK's: Only modify carry propagation in global carry chain A[31] B[31] A[24] B[24] PGK's: A[23] B[23] A[16] B[16] PGK's: A[15] B[15] A[8] B[8] PGK's: A[7] B[7] A[] B[] Group PGK Group PGK Group PGK Group PGK COUT Global Carry Chain CIN PGK's[31:24] PGK's[23:16] PGK's[15:8] PGK's[7:] Conditional Sum 1 Conditional Sum 1 Conditional Sum 1 Sum CIN SUM[31:24] SUM[23:16] SUM[15:8] SUM[7:] 32

Global Carry w/ Segment Support This method adds mux to critical path GG_b[2] We can improve on this Possible to move off critical path By moving to start of adder CIN GP[2] GK[2] GG_b[] GG_b[1] GG_b[2] GP[] GP[1] GP[2] CIN If the op type is known early GK[] For cells at start of segment Change P, G definition Change Cin to local carry chains GK[1] GK[2] CIN CIN GCIN[3] GCIN[2] CIN GCIN[1] 33 Absolute Difference Example: 4 parallel byte absolute differences Important in MPEG encoding algorithm Algorithm: Take two unsigned 8-bit numbers (between and 255) Compute a-b Result is unsigned (between and 255) 34

Absolute Difference How do we compute a-b? We need to compute a-b and b-a and take the positive one Remember that in 2 s complement, -x = ~x + 1 The carry-select adder will compute a+~b+1 and a+~b a+~b+1 = a-b a+~b = a -b-1 Note that ~(b - a) + 1 = a - b so ~(b - a) = a - b - 1 or b -a = ~(a -b-1) So, to compute a-b, just choose between SUM1 or ~SUM depending on the sign bit 35 Sum of Absolute Differences PGK's: A[31] B[31] Must do conditional sum for lower 8 bits Must further modify global carry chain to look at sign bits If positive, choose SUM1; If negative, choose ~SUM A[24] B[24] PGK's: A[23] B[23] A[16] B[16] PGK's: A[15] B[15] A[8] B[8] PGK's: A[7] B[7] A[] B[] Group PGK Group PGK Group PGK Group PGK COUT Global Carry Chain CIN PGK's[31:24] PGK's[23:16] PGK's[15:8] PGK's[7:] Conditional Sum 1 Conditional Sum 1 Conditional Sum 1 Conditional Sum 1 36 SUM[31:24] SUM[23:16] SUM[15:8] SUM[7:]

Saturation Often in media and signal processors, saturating arithmetic is supported: Don t wraparound on overflow Result should be largest (or smallest) value possible Examples: 32-bit saturating integer add: IADDS32(x7FFFFFFF,X1)=x7FFFFFFF 8-bit saturating unsigned subtract: USUBS8(x2FE2FE,x3FE1FF)=x1 37 Hardware Support For Saturation Overflow detection Example: signed addition Can look at sign bits of inputs and outputs Or can compute using ovf = cinmsb coutmsb Overflow propagation Similar to segmented, global carry chain, except for overflows Output muxing Need a many-to-one mux for each byte to choose between: xff,x,x7f,x8 and the unsaturated value Methods for speeding up saturation Could probably do carry-select saturation detection 38

Simulated Performance Two implementations: Custom circuits (using circuits from these slides) 15.1 FO4 delays through integer adder 9.3 FO4 delays through overflow detection and saturation ~3λ x 5λ for adder only (excluding ovf det and saturation) Standard cell implementation ~23.5 FO4 delays through integer adder ~1 FO4 delays through overflow detection and saturation ~8λ x 8λ for adder only (excluding ovf det and saturation) Significant room for speed improvement through any of the following techniques: Domino circuits Faster carry-chain structures e.g. carry-select on upper half of carry chains within each group pgk 39 Adder layout 323 µm 5 µm PGK s GROUP PGK LOCAL CARRY CHAINS SUM SUM SUM SUM SUM SUM SUM SUM -.25 µm process 4

Adder Results From Previous Years 8 bit Manchester carry chains are slow, no matter how you size them. If you are going to use 8 bit groups, you probably need look-ahead in that group Using dynamic gates is much faster than static gates but Need to worry a lot more about clock skew and noise margin issues. You also need to think about power It is possible to move segment overhead off the critical path Saturation is a pain since you need to know overflow condition before you can select the correct sum But you can calculate overflow early if you spend hardware 41 Floating-Point Number Representation IEEE Format Single-Precision Floating-Point numbers: Contain Sign bit, exponent, and mantissa Number represents (-1)S*(1.mantissa)*(2)Exp-127 Numbers are in sign magnitude form S Exp Mantissa 31 3 23 22 42

Floating-Point Addition A Basic Algorithm: Compare exponents of A & B Perform alignment shift: Whichever has smaller exponent, shift its mantissa right by exp(a)-exp(b) Add unshifted mantissa with shifted mantissa Round result Perform normalize shift: Shift output of add so that leading 1 lands in the right place, then adjust exponent of result >> + >> B 43 Alignment Shifter Use difference in exponents as shift amount Simplest shifter is 5 stages of 2:1 muxes Control wires for each stage come directly from exp diff: 44

Shifter Design Can improve on this: Stage 1: 4:1 mux; shift by, 8, 16, or 24 Stage 2: 6:1 mux; shift by, 1, 2, 3, 4, 5, or 6 Must do pre-computation on shift amount to convert to 1-hot mux selects, but need buffer chain for fan-out anyway Tradeoffs between number of stages and logical effort of each stage are possible But shifters are not fast Especially if the shift amount is not know in advance For floating point shift amount depends on the operands 45 Aside: What About Segmented Shifts? Example: support 32-bit arithmetic shifts or 16-bit arithmetic shifts Arithmetic shifts mean sign extend msb on right shifts Increases the number of mux inputs and/or stages of the shifter (at least for bits near the msb): Stage 1: 5:1 mux: 32-bit shift by, 8, 16, 24 or 16-bit shift by 8 Stage 2: 7:1 mux 32-bit shift by, 2, 4, 6 or 16-bit shift by 2, 4, 6 Stage 3: 3:1 mux 32-bit shift by, 1 or 16-bit shift by 1 46

Fast Floating Point Trick In general floating point requires two variable length shifts To normalize the inputs mantissa s to equal significance To renormalize the output, so mantissa s MSB is 1 The critical observation is that no operation requires two both If the numbers are the same significance Don t need a normalization shift greater than 1 bit But you can get large cancellation, and need renormalization If the numbers are difference significance Need to normalize them But they can t cancel, max renormalization is a shift of +/- 1 But don t use this trick if throughput more important than latency 47 Floating Point Rounding In integer world, there is a right answer You have all the bits to start with Overflow is an error With floating point numbers, there is not one right answer You loose bits all the time Example is when you right shift for normalization Need to decide what answer to give IEEE standard gives many options Most common is rounded Rounding seems easy, but it is quite complex Don t know the significance of result until you have it But you want to add the ½ for rounding during the add See Appendix A of Hennessy & Patterson for details 48

Normalize Shifter Shift mantissa so that leading one lands in the right place Adjust exponent if necessary If the input operands have very different exponents, the leading one will be in one of two places If the input operands have the same exponents or exponents that only differ by 1, the leading one could be anywhere e.g. 1. + -.11111 =.11 49 Floating-Point Adder Summary Basic operation: Shift, Add, Shift Carry-select adder important for rounding compute two correctly rounded adds in parallel choose the correct one based on overflow detection Can reuse same hardware for floating-point, integer, and segmented arithmetic operations Built 4-cycle pipelined floating-point adder runs at 3 FO4 delays per cycle in standard cell implementation (5 FO4 from clocking overhead) ~1,λ x 33λ 5