Download presentation
Presentation is loading. Please wait.
1
Computer ArchitectureFall 2007 © August 29, 2007 Karem Sakallah ksakalla@qatar.cmu.edu www.qatar.cmu.edu/~msakr/15447-f07/ CS 447 – Computer Architecture Lecture 2 Computer Arithmetic (1)
2
Computer ArchitectureFall 2007 © Chapter objectives In this lecture we will focus on the representation of numbers and techniques for implementing arithmetic operations. Processors typically support two types of arithmetic: integer, or fixed point, and floating point. For both cases, the lecture first examines the representation of numbers and then discusses arithmetic operations.
3
Computer ArchitectureFall 2007 © Arithmetic & Logic Unit °Does the calculations °Everything else in the computer is there to service this unit °Handles integers °May handle floating point (real) numbers °May be separate (maths co-processor)
4
Computer ArchitectureFall 2007 © ALU Inputs and Outputs
5
Computer ArchitectureFall 2007 © Review: Decimal Numbers °Integer Representation number is sum of DIGIT * “place value” 2 10 0 d0d0 9 10 1 d1d1 7 10 2 d2d2 3 10 3 d3d3 0 10 4 d4d4 0 10 5 d5d5 0 10 6 d6d6 0 10 7 d7d7 3792 10 = 3 10 3 + 7 10 2 + 9 10 1 + 2 10 0 = 3000 + 700 + 90 + 2 Range 0 to 10 n - 1
6
Computer ArchitectureFall 2007 © Review: Decimal Numbers 3 7 9 2 + 0 5 3 1 °Adding two decimal numbers add by “place value”, one digit at a time 3792 + 531 ??? 1 “carry 1” because 9+3 = 12 0 4 3 2 3
7
Computer ArchitectureFall 2007 © Binary Numbers 0 2020 b0b0 0 2121 b1b1 1 2 b2b2 0 2323 b3b3 0 2424 b4b4 1 2525 b5b5 1 2626 b6b6 0 2727 b7b7 01100100 2 = 2 6 + 2 5 + 2 2 = 64 + 32 + 4 = 100 10 Range 0 to 2 n - 1 Humans can naturally count up to 10 values, but computers can count only up to 2 values (0 and 1) (Unsigned) Binary Integer Representation “base” of place values is 2, not 10
8
Computer ArchitectureFall 2007 © Binary Representation If a number is represented in n = 8-bits Value in Binary: Value in Decimal: 2 7.a 7 + 2 6.a 6 + 2 5.a 5 + 2 4.a 4 + 2 3.a 3 + 2 2.a 2 + 2 1.a 1 + 2 0.a 0 Value in Binary: Value in Decimal: 2 n-1.a n-1 + 2 n-2.a n-2 + … + 2 4.a 4 + 2 3.a 3 + 2 2.a 2 + 2 1.a 1 + 2 0.a 0 a7a7 a6a6 a5a5 a4a4 a3a3 a2a2 a1a1 a0a0 a n-1 a n-2 …a4a4 a3a3 a2a2 a1a1 a0a0
9
Computer ArchitectureFall 2007 © Binary Arithmetic A bits 1 1 1 0 B bits + 0 1 1 1 °Add up to 3 bits at a time per place value A and B “carry in” °Output 2 bits at a time sum bit for that place value “carry out” bit (becomes carry-in of next bit) °Can be done using a function with 3 inputs, 2 outputs carry-in bits1 1 1 0 0 sum bits 0 1 0 1 carry-out bits1 1 1 1 0 FA carry in carry out sum AB
10
Computer ArchitectureFall 2007 © Integer Representation °Only have 0 & 1 to represent everything °Positive numbers stored in binary e.g. 41=00101001 °No minus sign °No period °Sign-Magnitude °Two’s complement
11
Computer ArchitectureFall 2007 © Sign-Magnitude °Left most bit is sign bit °0 means positive °1 means negative °+18 = 00010010 ° -18 = 10010010 Problems: Need to consider both sign and magnitude in arithmetic Two representations of zero (+0 and -0)
12
Computer ArchitectureFall 2007 © Two’s Complement °+3 = 00000011 °+2 = 00000010 °+1 = 00000001 °+0 = 00000000 °-3 = 11111101 °-2 = 11111110 °-1 = 11111111 °-0 = 00000000
13
Computer ArchitectureFall 2007 © Two’s Complement °+3 = 00000011 °+2 = 00000010 °+1 = 00000001 °+0 = 00000000 °-3 = 11111101 °-2 = 11111110 °-1 = 11111111 °-0 = 00000000 If a number is represented in n = 8-bits Value in Binary: Value in Decimal: 2 7.a 7 + 2 6.a 6 + 2 5.a 5 + 2 4.a 4 + 2 3.a 3 + 2 2.a 2 + 2 1.a 1 + 2 0.a 0 a7a7 a6a6 a5a5 a4a4 a3a3 a2a2 a1a1 a0a0
14
Computer ArchitectureFall 2007 © Benefits °One representation of zero °Arithmetic works easily (see later) °Negating is fairly easy 3 = 00000011 Boolean complement gives11111100 Add 1 to LSB11111101
15
Computer ArchitectureFall 2007 © 2's complement °Only one representation for 0 °One more negative number than positive numbers 0000 0111 0011 1011 1111 1110 1101 1100 1010 1001 1000 0110 0101 0100 0010 0001 0 +1 +2 +3 +4 +5 +6 +7 -8 -7 -6 -5 -4 -3 -2 0 100 = + 4 1 100 = - 4 + -
16
Computer ArchitectureFall 2007 © Geometric Depiction of Two’s Complement Integers
17
Computer ArchitectureFall 2007 © Negation Special Case 1 ° 0 = 00000000 °Bitwise NOT 11111111 °Add 1 to LSB +1 °Result 1 00000000 °Overflow is ignored, so: °- 0 = 0
18
Computer ArchitectureFall 2007 © Negation Special Case 2 °-128 = 10000000 °bitwise NOT 01111111 °Add 1 to LSB +1 °Result 10000000 °So: °-(-128) = -128 X °Monitor MSB (sign bit) °It should change during negation
19
Computer ArchitectureFall 2007 © Range of 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
20
Computer ArchitectureFall 2007 © Conversion Between Lengths °Positive number pack with leading zeros °+18 = 00010010 °+18 = 00000000 00010010 °Negative numbers pack with leading ones °-18 = 10010010 °-18 = 11111111 10010010 °i.e. pack with MSB (sign bit)
21
Computer ArchitectureFall 2007 © Addition and Subtraction °Normal binary addition °Monitor sign bit for overflow °Take two’s complement of subtrahend and add to minuend i.e. a - b = a + (-b) °So we only need addition and complement circuits
22
Computer ArchitectureFall 2007 © Binary Subtraction °2’s complement subtraction: add negative 0 1 0 1 +1 1 0 1 1 0 0 1 0 5 - 3 = 2 01010011 1100 1101 flip +1 -3 in 2’s complement form 2 ignore overflow 0 0 1 1 +1 0 1 1 1 1 1 0 3 - 5 = -2 0011 -5 in 2’s complement form 0101 1010 1011 flip +1 -2 0001 0010 flip +1 (flip+1 also gives positive of negative number)
23
Computer ArchitectureFall 2007 © Hardware for Addition and Subtraction
24
Computer ArchitectureFall 2007 © Multiplication °Complex °Work out partial product for each digit °Take care with place value (column) °Add partial products
25
Computer ArchitectureFall 2007 © Multiplication Example ° 1011 Multiplicand (11 dec) ° x 1101 Multiplier (13 dec) ° 1011 Partial products ° 0000 Note: if multiplier bit is 1 copy ° 1011 multiplicand (place value) ° 1011 otherwise zero ° 10001111 Product (143 dec) ° Note: need double length result
26
Computer ArchitectureFall 2007 © Unsigned Binary Multiplication
27
Computer ArchitectureFall 2007 © Execution of Example
28
Computer ArchitectureFall 2007 © Flowchart for Unsigned Binary Multiplication
29
Computer ArchitectureFall 2007 © Multiplying Negative Numbers °This does not work! °Solution 1 Convert to positive if required Multiply as above If signs were different, negate answer °Solution 2 Booth’s algorithm
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.