CSE 675.02: Introduction to Computer Architecture Arithmetic / Logic Unit – ALU Design Presentation F Slides by Gojko Babi Reading Assignment: B5, 3.4 32-bit ALU ALU Control A 32 32-bit ALU B 32 Result Zero Overflow Carry out 32 • Our ALU should be able to perform functions: – logical and function – logical or function – arithmetic add function – arithmetic subtract function – arithmetic slt (set-less-then) function – logical nor function • ALU control lines define a function to be performed on A and B. g. babic Presentation F 2 1 Functioning of 32-bit ALU ALU Control ALU Control lines Function Ainvert Binvert and 0 0 00 or 0 0 01 add 0 0 10 subtract 0 1 10 slt 0 1 11 nor 1 1 00 4 Operation A 32 32-bit ALU B 32 Result Zero Overflow Carry out 32 • Result lines provide result of the chosen function applied to values of A and B • Since this ALU operates on 32-bit operands, it is called 32-bit ALU • Zero output indicates if all Result lines have value 0 • Overflow indicates integer overflow of add and subtract functions; for unsigned integers, this overflow indicator does not provide any useful information • Carry out indicates carry out and unsigned integer overflow g. babic Presentation F 3 Designing 32-bit ALU: Beginning 1. Let us start with and function 2. Let us now add or function Operation = 0 and = 1 or a0 b0 Result0 0 1 a1 b1 0 Result1 1 a2 b2 0 Result2 1 a31 b31 0 Result31 1 g. babic 4 2 Designing 32-bit ALU: Principles Operation = 0 and • A number of functions are performed internally, but only one a0 result is chosen for b0 the output of ALU = 1 or and or a1 • 32-bit ALU is built out of 32 identical 1-bit ALU’s 1 and b1 or a2 Result1 0 1 and b2 or a31 Result0 0 Result2 0 1 and b31 or Result31 0 1 g. babic 5 Designing the Adder • 32-bit adder is built out of 32 1-bit adders 1-bit Adder 1-bit Adder Truth Table Input b Carry In Sum Carry Out 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Figure B.5.2 From the truth table and after minimization, we can have this design for CarryOut Figure B.5.5 g. babic Output a Figure B.5.3 Presentation F 6 3 32-bit Adder “0” Cin a0 sum0 + b0 Cout This is a ripple carry adder. Cin a1 sum1 + b1 Cout Cin a2 sum2 + b2 The key to speeding up addition is determining carry out in the higher order bits sooner. Result: Carry look-ahead adder. Cout Cin a31 sum31 + b31 Cout Carry out g. babic Presentation F 7 32-bit ALU With 3 Functions =0 1-bit ALU Operation = 00 and = 01 or = 10 add Figure B.5.6 Figure B.5.7 CarryOut g. babic Presentation F + carry out 8 4 32-bit Subtractor “0” “1” Cin a0 Result0 + b0 =A+B+1 Cout Cin a1 Result1 + b1 A – B = A + (–B) Cout Cin a2 Result2 + b2 Cout Cin a31 Result31 + b31 Cout CarryOut g. babic Presentation F 9 32-bit Adder / Subtractor binvert Cin a0 b0 “0” 0 Result0 + Cout 1 Cin a1 b1 0 Result1 + Cout 1 Cin a2 b2 0 Result2 + Binvert = 0 addition = 1 subtraction Cout 1 Cin a31 b31 0 1 g. babic Result31 + Cout 0 1 CarryOut 10 5 32-bit ALU With 4 Functions 1-bit ALU B in ve rt B in v e r t O p e r a tio n O pe ra tion C a r r y In a0 b0 a C a rryI n ALU0 R e s u l t0 0 C a rryO u t 1 0 b R e s u lt a1 b1 2 1 Figure B.5.8 a2 b2 Control lines Binvert (1 line) Operation (2 lines) and 0 00 or 0 01 add 0 10 subtract 1 10 R e s u l t1 C a rryO u t C a r ry O u t Function C a rryI n ALU1 C a rryI n ALU2 R e s u l t2 C a rryO u t C a rr y In a3 1 b3 1 g. babic R e s u l t3 1 C a rryI n A L U 31 Presentation F 0 Carry Out 1 11 2’s Complement Overflow • 2’s complement overflow happens: – if a sum of two positive numbers results in a negative number – if a sum of two negative numbers results in a positive number B in v e r t O p e r a tio n C a r ry In a 0 1 R e s u lt b 0 + 2 1 L e ss 3 Carry Out O v e r f lo w d e te c tio n O v e rflo w 1-bit ALU for the most significant bit Other 1-bit ALUs, i.e. non-most significant bit ALUs, are not affected. g. babic Presentation F 12 6 32-bit ALU With 4 Functions and Overflow B in v e r t O p e r a tio n a0 b0 C a rryI n ALU0 R e s u l t0 C a rryO u t Control lines Binvert (1 line) Operation (2 lines) and 0 00 Function or 0 01 add 0 10 subtract 1 10 a1 b1 C a rryI n ALU1 R e s u l t1 C a rryO u t a2 b2 C a rryI n ALU2 R e s u l t2 C a rryO u t C a rr y In a3 1 b3 1 Missing: slt & nor functions and Zero output C a rryI n A L U 31 R e s u l t3 1 O v e r flo w Carry Out g. babic Presentation F 7