lecture 4 arithmetic logic unit
play

Lecture 4 Arithmetic-Logic Unit 1 Arithmetic - Logic Unit ALU - PowerPoint PPT Presentation

ECE 0142 Computer Organization Lecture 4 Arithmetic-Logic Unit 1 Arithmetic - Logic Unit ALU Handles integers Does the calculations 2 Arithmetic-Logic Unit ALU Performs arithmetic add, subtract Performs logic and, or, invert,


  1. ECE 0142 Computer Organization Lecture 4 Arithmetic-Logic Unit 1

  2. Arithmetic - Logic Unit ALU  Handles integers  Does the calculations 2

  3. Arithmetic-Logic Unit ALU  Performs arithmetic add, subtract  Performs logic and, or, invert, complement  Shifts right, left, arithmetic, logical  Provides result and status 3

  4. Review Binary Addition Binary Decimal Carry 1 1 1 1 0 0 0 1 1 0 1 1 2 7 1 0 1 1 0 2 2 1 1 0 0 0 1 0 4 9 4

  5. Example Numbers  8 bit 2’s complement +127 = 01111111 = 2 7 -1 -128 = 10000000 = -2 7  16 bit 2’s complement +32767 = 011111111 11111111 = 2 15 - 1 -32768 = 100000000 00000000 = -2 15 5

  6. Sign Extension  Positive number pack with leading zeros +18 = 00010010 +18 = 00000000 00010010  Negative number pack with leading ones -18 = 11101110 -18 = 11111111 11101110  i.e. pack with MSB (sign bit) 6

  7. Addition and Subtraction  Normal binary addition circuitry  Take two’s complement of subtrahend and add to minuend i.e. a - b = a + (-b)  Need only addition and complement circuits 7

  8. Consider Binary Addition Assume 5 bits 2’s complement arithmetic 12 - 7 = 12 + (-7) = 5 Binary Carry 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 Carry out 8

  9. Consider Binary Addition Assume 5 bits 2’s complement arithmetic 12 - 13 = 12 + (-13) = -1 Binary Carry 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 1 1 1 1 1 Carry out 9

  10. ALU Inputs and Outputs 10

  11. ALU - Addition Could try this as an 8 input, 4 output combinational logic problem I nt rod uce B A b0 a 0 b3 a 3 t his n ot a tion 4 4 A d der 4 C c0 c3 C = A + B c0 = f (a 3 ,a 2 ,a 1 ,a 0 ,b 3 ,b2 ,b 1 ,b0 ) c1 = f (a 3 ,a 2 ,a 1 ,a 0 ,b 3 ,b2 ,b 1 ,b0 ) ..... c3 =f (a 3 ,a 2 ,a 1 ,a 0 ,b 3 ,b2 ,b 1 ,b0 ) 11

  12. Instead - Consider Stages FA - Full Adder Depends on 1’s or 2’s comp arithmetic 12

  13. Full Adder Truth Table A B C in S C S = A’B’C in + A’BC in ’ + 0 0 0 0 0 AB’C in ’ + ABC in 0 0 1 1 0 = A ⊕ B ⊕ C in 0 1 0 1 0 0 1 1 0 1 C = A’BC in + AB’C in + 1 0 0 1 0 ABC in ’ + ABC in 1 0 1 0 1 = ( A ⊕ B)C in + AB 1 1 0 0 1 1 1 1 1 1 13

  14. Full Adder A ⊕ B A ⊕ B ⊕ C in A B C in ( A ⊕ B)C in AB ( A ⊕ B)C in + AB Graph from: Logic and Computer Design 14 Fundamentals, Mano & Kime, Prentice Hall

  15. 4 Bit Ripple Carry 2’s Complement Adder 15

  16. Constructing an Arithmetic Logic Unit Start with a 1-Bit ALU 16

  17. Simple Logical Operations 1. AND gate (c = a . b) a b c = a . b 0 0 0 a c 0 1 0 b 1 0 0 1 1 1 2. OR gate (c = a + b) a b c = a + b 0 0 0 a c 0 1 1 b 1 0 1 1 1 1 ฀ 3. Inverter (c = a) a c = a a c 0 1 1 0 4. Multiplexor ฀ d d c (if d = = 0, c = a; ฀ 0 a else c = b) a 0 1 b c b 1 17

  18. Starting from “AND” and “OR” Operation a 0 Result 1 b If Operation is 0, then Result = a AND b If Operation is 1, then Result = a OR b 18

  19. Consider a 1 bit Full Adder CarryIn a Sum b CarryOut 19

  20. With “add” Operation CarryIn a 0 If Op is 0, then Result = a AND b 1 Result If Op is 1, then Result = a OR b If Op is 2, then Result = sum of (a + b) 2 b CarryOut 20

  21. CarryIn Operation a0 CarryIn Result0 ALU0 b0 CarryOut If we repeat the 1-Bit ALU 32 times a1 CarryIn Result1 ALU1 b1 CarryOut a2 CarryIn If Op is 0, then Res i = a i AND b i Result2 ALU2 b2 If Op is 1, then Res i = a i OR b i CarryOut If Op is 2, then Res i = sum of (a i + b i ) a31 CarryIn Result31 ALU31 b31 21

  22. With Subtraction Binvert Operation CarryIn If Op is 0, then Res = a AND b If Op is 1, then Res = a OR b a 0 If Op is 2, and if Binvert is 0, 1 Result then Res = sum (a + b) if Binvert is 1, 0 b 2 then Res = sum (a + (-b)) 1 Note that (- b) is 1’s comp CarryOut Add a 1 into CarryIn 0 to get 2’s comp 22

  23. ALU with Zero Detection — for comparing a and b Control Lines Function 000 and 001 or 010 add 110 sub 23

  24. Overflow  Result too large for finite computer word: – e.g., adding two n-bit numbers does not yield an n-bit number 0111 note that overflow term is somewhat misleading , + 0001 1000 it does not mean a carry “overflowed” 24

  25. Detecting Overflow  No overflow when adding a positive and a negative number  No overflow when signs are the same for subtraction  Overflow occurs when the value affects the sign: – overflow when adding two positives yields a negative – or, adding two negatives gives a positive – or, subtract a negative from a positive and get a negative – or, subtract a positive from a negative and get a positive  Consider the operations A + B, and A – B – Can overflow occur if B is 0 ? – Can overflow occur if A is 0 ? Yes 25

  26. Example Overflow Logic A N B N S N ' A N ' B N ' S N AND AND OR Overflow if ‘1’ How is this derived? – Homework! 26

  27. Effects of Overflow  An exception (interrupt) occurs – Control jumps to predefined address for exception – Interrupted address is saved for possible resumption  Details based on software system / language – example: flight control vs. homework assignment  Don't always want to detect overflow – MIPS instructions: addu, addiu, subu – More later 27

  28. Common Symbol for ALU ALU operation a Zero ALU Result Overflow b CarryOut 28

  29. Recall Full Adder AB’ + A’B ABC in + AB’ C in ’ + A’BC in ’ + A’B’ C in A B C in ( A ⊕ B)C in AB ( A ⊕ B)C in + AB Graph from: Logic and Computer Design 29 Fundamentals, Mano & Kime, Prentice Hall

  30. Full Adder - Half Adders 2 delays 3 delays 4 delays From Z to C is 2 delays for each subsequent stage or 2N + 2 Graphics from: Logic and Computer Design 30 Fundamentals, Mano & Kime, Prentice Hall

  31. 4 Bit Ripple Carry Adder 2 2 2 4 2n+2 gate delays (10) for 2’s complement 31

  32. Carry Lookahead Equations Let g i = a i b i generating carry p i = a i + b i propagating carry c 1 = b 0 c 0 + a 0 c 0 + a 0 b 0 c 1 = g 0 +p 0 c 0 c 2 = b 1 c 1 + a 1 c 1 + a 1 b 1 c 2 = g 1 +(p 1 g 0 )+(p 1 p 0 c 0 ) c 3 = b 2 c 2 + a 2 c 2 + a 2 b 2 c 3 = g 2 +p 2 g 1 +(p 2 p 1 g 0 )+(p 2 p 1 p 0 c 0 ) c 4 = b 3 c 3 + a 3 c 3 + a 3 b 3 c 4 = g 3 +p 3 g 2 +p 3 p 2 g 1 +(p 3 p 2 p 1 g 0 )+(p 3 p 2 p 1 p 0 c 0 ) P 0-3 G 0-3 32

  33. Should be an OR gate.. What happened? Reduces delay to 6 gate delays (from input to S) 4 gate delays from input to C Carry Lookahead Adder 33

  34. Carry Lookahead – Second Level CarryIn a0 ฀ CarryIn b0 ฀ Result0--3 a1 ฀ b1 ฀ ALU0 a2 ฀ pi P0 b2 ฀ gi G0 a3 ฀ b3 Carry-lookahead unit C1 ci + 1 a4 ฀ CarryIn b4 ฀ Result4--7 a5 ฀ b5 ฀ ALU1 a6 ฀ pi + 1 P1 b6 ฀ gi + 1 G1 a7 ฀ b7 C2 ci + 2 a8 ฀ CarryIn b8 ฀ Result8--11 a9 ฀ b9 ฀ ALU2 a10 ฀ pi + 2 P2 b10 ฀ G2 gi + 2 a11 ฀ b11 C3 ci + 3 a12 ฀ CarryIn b12 ฀ Result12--15 a13 ฀ b13 ฀ ALU3 a14 ฀ pi + 3 P3 b14 ฀ gi + 3 G3 a15 ฀ C4 ci + 4 b15 34 CarryOut

  35. Carry Propagation  2’s complement best  1’s complement twice as long  Significant delay reduction using Carry Look Ahead concept 35

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend