- 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 FPU (maths co-processor)
- May be on chip separate FPU (486DX +)
ALU Inputs and Outputs
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 compliment
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)
Two’s Compliment
+3 = 00000011
+2 = 00000010
+1 = 00000001
+0 = 00000000
-1 = 11111111
-2 = 11111110
-3 = 11111101
Range of Numbers
8 bit 2s compliment
— +127 = 01111111 = 27 -1
— -128 = 10000000 = -27
16 bit 2s compliment
— +32767 = 011111111 11111111 = 215 - 1
— -32768 = 100000000 00000000 = -215
Addition and Subtraction
- Normal binary addition
- Monitor sign bit for overflow
- Take twos compliment of substahend and add to minuend
— i.e. a - b = a + (-b)
- So we only need addition and complement circuits
Hardware for Addition and Subtraction
Multiplication
- Complex
- Work out partial product for each digit
- Take care with place value (column)
- Add partial products
Flowchart for Unsigned Binary Multiplication
Multiplying Negative Numbers
- Solution 1
— Convert to positive if required
— Multiply as above
— If signs were different, negate answer
- Solution 2
— Booth’s algorithm
Booth’s Algorithm
Example of Booth’s Algorithm
Division
- More complex than multiplication
- Negative numbers are really bad!
- Based on long division
No comments:
Post a Comment