Presentation is loading. Please wait.

Presentation is loading. Please wait.

Part III The Arithmetic/Logic Unit

Similar presentations


Presentation on theme: "Part III The Arithmetic/Logic Unit"— Presentation transcript:

1 Part III The Arithmetic/Logic Unit
July 2005 Computer Architecture, The Arithmetic/Logic Unit

2 III The Arithmetic/Logic Unit
Overview of computer arithmetic and ALU design: Review representation methods for signed integers Discuss algorithms & hardware for arithmetic ops Consider floating-point representation & arithmetic Topics in This Part Chapter Number Representation Chapter 10 Adders and Simple ALUs Chapter 11 Multipliers and Dividers Chapter 12 Floating-Point Arithmetic July 2005 Computer Architecture, The Arithmetic/Logic Unit

3 Computer Architecture, The Arithmetic/Logic Unit
10 Adders and Simple ALUs Addition is the most important arith operation in computers: Even the simplest computers must have an adder An adder, plus a little extra logic, forms a simple ALU Topics in This Chapter Simple Adders Carry Propagation Networks Counting and Incrementation Design of Fast Adders Logic and Shift Operations Multifunction ALUs July 2005 Computer Architecture, The Arithmetic/Logic Unit

4 Computer Architecture, The Arithmetic/Logic Unit
10.1 Simple Adders Digit-set interpretation: {0, 1} + {0, 1} = {0, 2} + {0, 1} (x + y = c + s) Digit-set interpretation: {0, 1} + {0, 1} + {0, 1} = {0, 2} + {0, 1} (x + y + cin = cout + s) Figures 10.1/ Binary half-adder (HA) and full-adder (FA). July 2005 Computer Architecture, The Arithmetic/Logic Unit

5 Full-Adder Implementations
Figure Full adder implemented with two half-adders, by means of two 4-input multiplexers, and as two-level gate network. July 2005 Computer Architecture, The Arithmetic/Logic Unit

6 Ripple-Carry Adder: Slow But Simple
Critical path Figure Ripple-carry binary adder with 32-bit inputs and output. July 2005 Computer Architecture, The Arithmetic/Logic Unit

7 10.2 Carry Propagation Networks
gi = xi yi pi = xi  yi Figure The main part of an adder is the carry network. The rest is just a set of gates to produce the g and p signals and the sum bits. July 2005 Computer Architecture, The Arithmetic/Logic Unit

8 Ripple-Carry Adder Revisited
The carry recurrence: ci+1 = gi  pi ci Latency of k-bit adder is roughly 2k gate delays: 1 gate delay for production of p and g signals, plus 2(k – 1) gate delays for carry propagation, plus 1 XOR gate delay for generation of the sum bits Figure The carry propagation network of a ripple-carry adder. July 2005 Computer Architecture, The Arithmetic/Logic Unit

9 First Carry Speed-Up Method: Carry Skip
Figures 10.7/ A 4-bit section of a ripple-carry network with skip paths and the driving analogy. July 2005 Computer Architecture, The Arithmetic/Logic Unit

10 Θ(log n)-time Recursive Wired-OR Carry-Skip Adder
(8 bit segment shown) With this recursive structure, we can do a 2n-bit add in 2(n+1) logic levels. Hardware overhead is < 2× regular ripple-carry! Cin S A B S A B S A B S A B S A B S A B S A B S A B G Cin GCoutCin G Cin GCoutCin G Cin GCoutCin G Cin GCoutCin P P P P P P P P Pms Gls Pls Pms Gls Pls Pms Gls Pls Pms Gls Pls MS LS MS G GCout Cin G LS GCout Cin P P P P Pms Gls Pls Pms Gls Pls MS G LS GCout Cin P P Pms Gls Pls GCout LS Cin P

11 10.3 Counting and Incrementation
Figure Schematic diagram of an initializable synchronous counter. July 2005 Computer Architecture, The Arithmetic/Logic Unit

12 Circuit for Incrementation by 1
Substantially simpler than an adder Figure Carry propagation network and sum logic for an incrementer. July 2005 Computer Architecture, The Arithmetic/Logic Unit

13 Computer Architecture, The Arithmetic/Logic Unit
10.4 Design of Fast Adders  Carries can be computed directly without propagation  For example, by unrolling the equation for c3, we get: c3 = g2  p2 c2 = g2  p2 g1  p2 p1 g0  p2 p1 p0 c0  We define “generate” and “propagate” signals for a block extending from bit position a to bit position b as follows: g[a,b] = gb  pb gb–1  pb pb–1 gb–2   pb pb–1 … pa+1 ga p[a,b] = pb pb– pa+1 pa  Combining g and p signals for adjacent blocks: g[h,j] = g[i+1,j]  p[i+1,j] g[h,i] p[h,j] = p[i+1,j] p[h,i] h i i+1 j [h, j] = [i + 1, j] ¢ [h, i] July 2005 Computer Architecture, The Arithmetic/Logic Unit

14 Second Carry Speed-Up Method: Carry Lookahead
[a,b]= For bits from positions a through b Figure Brent-Kung lookahead carry network for an 8-digit adder, along with details of one of the carry operator blocks. July 2005 Computer Architecture, The Arithmetic/Logic Unit

15 Recursive Structure of Brent-Kung Carry Network
Figure Brent-Kung lookahead carry network for an 8-digit adder, with only its top and bottom rows of carry-operators shown. July 2005 Computer Architecture, The Arithmetic/Logic Unit

16 Carry-Lookahead Logic with 4-Bit Block
Figure Blocks needed in the design of carry-lookahead adders with four-way grouping of bits. July 2005 Computer Architecture, The Arithmetic/Logic Unit

17 Third Carry Speed-Up Method: Carry Select
Allows doubling of adder width with a single-mux additional delay (Carry in to position a) Figure Carry-select addition principle. July 2005 Computer Architecture, The Arithmetic/Logic Unit

18 10.5 Logic and Shift Operations
Conceptually, shifts can be implemented by multiplexing Figure Multiplexer-based logical shifting unit. July 2005 Computer Architecture, The Arithmetic/Logic Unit

19 Computer Architecture, The Arithmetic/Logic Unit
Arithmetic Shifts Purpose: Multiplication and division by powers of 2 sra $t0,$s1,2 # $t0  ($s1) right-shifted by 2 srav $t0,$s1,$s0 # $t0  ($s1) right-shifted by ($s0) Figure The two arithmetic shift instructions of MiniMIPS. July 2005 Computer Architecture, The Arithmetic/Logic Unit

20 Practical Shifting in Multiple Stages
Figure Multistage shifting in a barrel shifter. July 2005 Computer Architecture, The Arithmetic/Logic Unit

21 Bit Manipulation via Shifts and Logical Operations
AND with mask to isolate a field: Right-shift by 10 positions to move field to the right end of word The result word ranges from 0 to 63, depending on the field pattern Figure A 4  8 block of a black-and-white image represented as a 32-bit word. July 2005 Computer Architecture, The Arithmetic/Logic Unit

22 Computer Architecture, The Arithmetic/Logic Unit
10.6 Multifunction ALUs Logic fn (AND, OR, . . .) Logic unit Arith 1 Operand 1 Result Operand 2 Select fn type (logic or arith) Arith fn (add, sub, . . .) General structure of a simple arithmetic/logic unit. July 2005 Computer Architecture, The Arithmetic/Logic Unit

23 Computer Architecture, The Arithmetic/Logic Unit
An ALU for MiniMIPS Figure A multifunction ALU with 8 control signals (2 for function class, 1 arithmetic, 3 shift, 2 logic) specifying the operation. July 2005 Computer Architecture, The Arithmetic/Logic Unit


Download ppt "Part III The Arithmetic/Logic Unit"

Similar presentations


Ads by Google