Download ppt

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
CS 447 – Computer Architecture
Lecture 2
Computer Arithmetic (1)
August 29, 2007
Karem Sakallah
[email protected]
www.qatar.cmu.edu/~msakr/15447-f07/
Computer Architecture
Fall 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.
Computer Architecture
Fall 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)
Computer Architecture
Fall 2007 ©
ALU Inputs and Outputs
Computer Architecture
Fall 2007 ©
Review: Decimal Numbers
° Integer Representation
• number is sum of DIGIT * “place value”
d7 d6 d5 d4 d3 d2 d1 d0
Range
0 to 10n - 1
0 0 0 0 3 7 9 2
107 106 105 104 103 102 101 100
379210 = 3  103 + 7  102 + 9 
= 3000 + 700 + 90 + 2
Computer Architecture
101
+ 2 
100
Fall 2007 ©
Review: Decimal Numbers
° Adding two decimal numbers
• add by “place value”, one digit at a time
3792
+ 531
???
1
3 7 9 2
+ 0 5 3 1
0 4 3 2 3
Computer Architecture
“carry 1”
because
9+3 = 12
Fall 2007 ©
Binary Numbers
• 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
b7 b6 b5 b4 b3 b2 b1 b0
0 1 1 0 0 1 0 0
2 7 26 25 24 23 22 21 20
011001002 = 26 + 25 +
22
= 64 + 32 + 4
= 10010
Computer Architecture
Range
0 to 2n - 1
Fall 2007 ©
Binary Representation
If a number is represented in n = 8-bits
Value in Binary:
a7
a6
a5
a4
a3
a2
a1
a0
Value in Decimal:
27.a7 + 26.a6 + 25.a5 + 24.a4 + 23.a3 + 22.a2 + 21.a1 + 20.a0
Value in Binary:
an-1 an-2 …
a4
a3
a2
a1
a0
Value in Decimal:
2n-1.an-1 + 2n-2.an-2 + … + 24.a4 + 23.a3 + 22.a2 + 21.a1 + 20.a0
Computer Architecture
Fall 2007 ©
Binary Arithmetic
° Add up to 3 bits at a time per
place value
• A and B
• “carry in”
carry-in bits
A bits
B bits
1 1 1 0 0
1 1 1 0
+ 0 1 1 1
sum bits
carry-out bits
0 1 0 1
1 1 1 1 0
° Output 2 bits at a time
B
• 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
Computer Architecture
carry
out
A
FA
sum
Fall 2007 ©
carry
in
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
Computer Architecture
Fall 2007 ©
Sign-Magnitude
° Left most bit is
sign bit
Problems:
° 0 means positive
sign and magnitude in
° 1 means negative
arithmetic
° +18 = 00010010
•Two representations of
° -18 = 10010010
•Need to consider both
zero (+0 and -0)
Computer Architecture
Fall 2007 ©
Two’s Complement
°+3 = 00000011
°-3 = 11111101
°+2 = 00000010
°-2 = 11111110
°+1 = 00000001
°-1 = 11111111
°+0 = 00000000
°-0 = 00000000
Computer Architecture
Fall 2007 ©
Two’s Complement
If a number is represented in n = 8-bits
Value in Binary:
a7
a6
a5
a4
a3
a2
a1
a0
Value in Decimal:
27.a7 + 26.a6 + 25.a5 + 24.a4 + 23.a3 + 22.a2 + 21.a1 + 20.a0
° +3 = 00000011
°-3 = 11111101
° +2 = 00000010
°-2 = 11111110
° +1 = 00000001
°-1 = 11111111
° +0 = 00000000
°-0 = 00000000
Computer Architecture
Fall 2007 ©
Benefits
°One representation of zero
°Arithmetic works easily (see later)
°Negating is fairly easy
• 3 = 00000011
• Boolean complement gives 11111100
• Add 1 to LSB
11111101
Computer Architecture
Fall 2007 ©
2's complement
° Only one
representation for 0
° One more negative
number than positive
numbers
-1
-2
-3
1111
1110
0
0000
0001
1101
+1
0010
+2
+
-4
1100
0011
+3
0 100 = + 4
-5
1011
0100
+4
1 100 = - 4
-6
1010
0101
1001
-7
+5
-
0110
1000
-8
0111
+6
+7
Computer Architecture
Fall 2007 ©
Geometric Depiction of Two’s Complement Integers
Computer Architecture
Fall 2007 ©
Negation Special Case 1
° 0=
00000000
°Bitwise NOT 11111111
°Add 1 to LSB
°Result
+1
1 00000000
°Overflow is ignored, so:
°- 0 = 0 
Computer Architecture
Fall 2007 ©
Negation Special Case 2
°-128 =
10000000
°bitwise NOT 01111111
°Add 1 to LSB
°Result
+1
10000000
°So:
°-(-128) = -128 X
°Monitor MSB (sign bit)
°It should change during negation
Computer Architecture
Fall 2007 ©
Range of Numbers
°8 bit 2’s complement
• +127 = 01111111 = 27 -1
• -128 = 10000000 = -27
°16 bit 2’s complement
• +32767 = 011111111 11111111 = 215 - 1
• -32768 = 100000000 00000000 = -215
Computer Architecture
Fall 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)
Computer Architecture
Fall 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
Computer Architecture
Fall 2007 ©
Binary Subtraction
° 2’s complement subtraction: add negative
5 - 3 = 2
0101
0 1 0 1
+1 1 0 1
0011 flip
1100 +1
1101
1 0 0 1 0
-3 in 2’s complement form
3 - 5 = -2
0011
2
ignore
overflow
0 0 1 1
+1 0 1 1
0101 flip
1010 +1
1011
1 1 1 0
-5 in 2’s complement form
0001 flip
0010 +1
-2
(flip+1 also gives positive of negative number)
Computer Architecture
Fall 2007 ©
Hardware for Addition and Subtraction
Computer Architecture
Fall 2007 ©
Multiplication
°Complex
°Work out partial product for each digit
°Take care with place value (column)
°Add partial products
Computer Architecture
Fall 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
Computer Architecture
Fall 2007 ©
Unsigned Binary Multiplication
Computer Architecture
Fall 2007 ©
Execution of Example
Computer Architecture
Fall 2007 ©
Flowchart for Unsigned Binary Multiplication
Computer Architecture
Fall 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
Computer Architecture
Fall 2007 ©
Related documents