ee188 final batu plaza

Upload: meytz102

Post on 29-May-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/9/2019 Ee188 Final Batu Plaza

    1/15

    Computer Arithmetic

    By: Batu, Michelle C., Plaza, Bernard

    The Arithmetic and Logic Unit

    ALU Performs arithmetic and logical operations on data

    -Does the calculations

    -Everything else in the computer is there to service this unit

    -Handles integers

    Integer Representation

    ` Only have 0 & 1 to represent everything

    ` Positive numbers stored in binary

    e.g. 41=00101001

    ` No minus sign

    ` No period

    ` How to represent negative number

    Sign-Magnitude

    Twos complement

  • 8/9/2019 Ee188 Final Batu Plaza

    2/15

    SIGN-MAGNITUDE REPRESENTATION

    ` 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)

    ****sign-magnitude representation is rarely used in implementing the integer portion of the ALU.

    TWOS COMPLEMENT REPRESENTATION

    ` Similar to sign magnitude, twos complement representation uses the most significant bit as a

    sign bit.

    ` Converting between Different Bit Lengths

    the rule for twos complement integers is to move the sign bit to the leftmost position

    and fill in with copies of the sign bit. For positive numbers, fill in with zeros, and for

    negative numbers, fill in with ones. This is called sign extension.

    Fixed-Point Representation

    ` Representations discussed in this section are sometimes referred to as fixed point.This is

    because the radix point (binary point) is fixed and assumed to be the right of the rightmost digit.

  • 8/9/2019 Ee188 Final Batu Plaza

    3/15

    Integer Arithmetic

    This section examines common arithmetic functions on numbers in twos complement

    representation

    1.) NEGATION Take Boolean complement of each bit, I.e. each 1 to 0, and each 0 to 1.

    Add 1 to the result

    E.g. +3 = 011

    Bitwise complement = 100

    Add 1

    = 101

    = -3

    Negation Special Case 1

    ` 0 = 00000000

    ` Bitwise not 11111111

    ` Add 1 to LSB +1

    ` Result 1 00000000

    ` carry out of the most significant bit position is ignored, so:

    ` - 0 = 0 OK!

    Negation Special Case 2

    ` 128 = 10000000

    ` bitwise not 01111111

    ` Add 1 to LSB +1

    ` Result 10000000

    ` So:

    ` -(-128) = -128 NOOK!

    ` It should change during negation

  • 8/9/2019 Ee188 Final Batu Plaza

    4/15

    ` >>There is no representation of+128 in this case. (no +2n)

    2.) ADDITION AND SUBTRACTION Monitor sign bit for overflow (sign bit change as adding two positive numbers or two

    negative numbers.)

    Subtraction: Take twos compliment of subtrahend then add to minuend

    i.e. a - b = a + (-b)

    So we only need addition and complement circuits

    3.) MULTIPLICATIONy

    Complex operation, whether performed in hardware or softwarey Variety of algorithms are used in computers

    Unsigned Integer

    -- Long-hand multiplication is used.

  • 8/9/2019 Ee188 Final Batu Plaza

    5/15

    Making a Computerized Multiplication more Efficient

    y Perform a running addition on the partial products rather than waiting until the end. This

    eliminates the need for storage of all the products; fewer registers are needed

    y We can save some time on the generation of partial products. For each 1 on the multiplier,

    an add and a shift operation are required; but for each 0, only a shift is required.

    Figure:

    y Multiplier and multiplicand are loaded into two registers (Q and M). A third register, the A

    register, is also needed and is initially set to 0. There is also a 1-bit C register, initialized to 0,

    which holds a potential carry bit resulting from addition.

    Multiplier operation

  • 8/9/2019 Ee188 Final Batu Plaza

    6/15

    Twos Complement Multiplication

    y Convert both multiplier and multiplicand to positive numbers, perform the multiplication,

    and then take the twos complement of the result if and only if the sign of the two original

    differed.

    Booths Algorithm

    - Has the benefit of speeding up the multiplication process, relative to a more straightforward

    approach.

    Arithmetic Shift Preserve the sign of the number in A and Q.

    Example of Booths Algorithm

  • 8/9/2019 Ee188 Final Batu Plaza

    7/15

    4.) DIVISIONy More complex than multiplication but based on the same general

    principles.

    Division with Negative Numbers (Approach for Twos Complement Numbers)

    1.) Load the divisor into the M register and the dividend into the A, Q register. The dividend must

    be expressed as a 2n-bit twos complement number. (e.g. the 4-bit 0111 becomes 00000111, and

    1001 becomes 11111101.

    2.) Shift A, Q left 1 bit position.

    3.) If M and A have the same signs, perform A A M; otherwise, A A + M.

    4.) The preceding operation is successful if the sign of A is the same before and after the operation.

    a. If the operation is successful or A = 0, then set Q0 1.b. If the operation is unsuccessful and A =! 0, then set Q0 0 and restore the previous

    value of A.

    c. Repeat steps 2 through 4 as many times as there are bit positions in Q.

    d. The remainder is in A. If the signs of the divisor and dividend were the same, then the

    quotient is in Q; otherwise, the correct quotient is the twos complement of Q.

  • 8/9/2019 Ee188 Final Batu Plaza

    8/15

    9.4FLOATING POINT REPRESENTATION

    PRINCIPLES

    Fixed Point Representation represents a range of positive and negative integers by assuming a

    fixed binary or radix point. This also allows the representation of numbers w/ a fractional component.

    But it cannot represent very large numbers, nor can very small fraction. Same manner w/ scientificnotation one can overcome this limitation by representing binary floating-point numbers in the form:

    S x BE

    ; where B is the base w/c is same for all numbers and need not to be stored. Therefore this can be

    stored in a binary word w/ 3 fields:

    1. sign: plus (0) or minus (1)

    2. Significand (S) also called Mantissa is the final portion of the word.

    3. Exponent (E).

    To simplify operations w/c is shifting the radix point to the right of the leftmost 1 bit and

    adjusting the exponent accordingly into normalize nonzero number (one in w/c the most significant

    digit of the significand is nonzero or in binary is 1) of the form: 1.bbbb x 2 E

    is required, where b is either one or zero.

    Note the following features:

    1.The sign is stored in the first bit of the word.

    2. The first bit of the true significant is always 1 and need not be stored in the significant field.

    3. The value 127 is added to the true exponent to be stored in the exponent field.

    4. The base is 2.

    Possible ranges of numbers:

    1. Negative numbers between - (2 - 2-23) x 2

    128and -2

    -127

    2. Positivenumbers between 2-123 and (2 2

    -23) x 2128

    Five regions of the number line are not included in these ranges:

    1. Negative numbers less than -(2 - 2-23

    ) x 2128

    , called negative overflow

    2.Negative numbers greater than 2-127

    , called negative underflow.

    3. Zero

    4.Positive number less than 2-127

    , called positive underflow

    5 Positive numbers greater than (2 - 2-23) x 2

    128, called positive overflow

  • 8/9/2019 Ee188 Final Batu Plaza

    9/15

    Overflow occurs in a magnitude greater than can be expressed with an exponent of 128.

    Underflow occurs when the fractional magnitude is too small and sometimes approximated by 0. The

    maximum number of different values that can be represented with 32 bits is still 232

    .

    The numbers in floating-point notation get closer to the origin and farther apart as you move

    away (shown in figure9.20). In figure 9.18, we expand the range of expressible numbers if we increase

    the numbers of bits in the exponent but reduce the density of those numbers and therefore the

    precision. The only way to increase both range and precision is to use more bits.

    The advantage of using larger exponent is that a greater range can be achieved for the same number of

    exponent bits.

    IEEE Standard for Binary Floating-Point Representation

    The most important floating-point is defined in IEEE Standard 754 [IEEE85]. This standard was

    developed to facilitate the probability of programs from one processor to another and to encourage the

    development of sophisticated, numerically oriented programs.The standard has been widely adopted

    and is on virtually all contemporary processors and arithmetic coprocessors.

  • 8/9/2019 Ee188 Final Batu Plaza

    10/15

    Following classes of numbers that represent special values:

    1. The normalized number of single biased (-126 through +127) and double biased format (-1022

    through +1023) gives an effective 24-bit or 53-bit significand (called fraction in the standard).

    2. A combination of a zero exponent and a zero fraction represents zero depending on the signbit.

    3. An exponent of all ones w/ a fraction of zero represents positive or negative infinity,

    depending on the sign bit.

    4. An exponent of zero together w/ a nonzero fraction represents a denormalized number.

    5. An exponent of all ones together w/ a nonzero fraction is given the valueNaN, w/c means

    not a number, and is used to signal various exception conditions.

  • 8/9/2019 Ee188 Final Batu Plaza

    11/15

    9.5 FLOATING-PORT ARITHMETIC

    Figure 9.5 summarize the basic operations for floating-point arithmetic.

    A floating point may produce one of these conditions:

    Addition and Subtraction

    Addition and subtraction are more complex than multiplication and division since they need

    alignment. Below are the4 Basic Phases of Algorithm for Addition and Subtraction:

    1. Check for zeros - We begin the process by changing the sign of the subtrahend if it is a

    subtract operation. And if either operand is 0 the other is reported as the result.

    2. Align the significands - Achieved by repeatedly shifting the magnitude portion of the

    sinificand right 1 digit and incrementing the exponent until the exponent are equal.

    3. Add and subtract the significands the two significands are added together.

    4. Normalize the result the final phase is normalizing the results.

    Figure 9.22 shows the flowchart of step-by-step function required for floating addition and subtraction.

    The two operands must be transferred to registers that will be used by the ALU. If the floating-point

    includes an implicit significant bit, that must be made implicit for the operation. Below is an example.

  • 8/9/2019 Ee188 Final Batu Plaza

    12/15

    Multiplication and Division

    In multiplication, zero operands give 0 results. We add the exponent if it isstored

    in bias form the sum would have double the bias. Thus the bias value must be subtractedfrom the sum. The ending result could be an exponent overflow or underflow.

    If the exponent of the product is within the proper range, we multiply thesignificands taking into account theirsigns. The product will be double the length of the

    multiplier and multiplicand. The extra bits will be lost during rounding.The final answer is then normalized and rounded, that could result into

    exponential underflow. The whole process found at the flow chart below figure 9.23.Now let us considerdivision. We first test for 0. If the divisor is 0, it would

    appear as an error. A dividend of 0 results in 0. Next, the divisor exponent issubtractedfrom the dividend exponent. This removes the bias, w/c must be added back in. Tests are

    then made for exponent underflow or overflow.

    The next step is to divide the significands. This is followed with the usualnormalization and rounding. Refer to figure 9.24 the flowchart fordivision.

  • 8/9/2019 Ee188 Final Batu Plaza

    13/15

  • 8/9/2019 Ee188 Final Batu Plaza

    14/15

    Precision Considerations

    A. Guard BitsGuard bit are additional bits in the registrar w/c are used to pad out the right end

    of the significand with 0s.

    B. RoundingRounding policy affects the precision of the results, storing in longer register and

    putting it back into the floating-point formal may result to extra bitsdisposition.

    IEEE standard lists four alternative approaches:

    Rounding to nearest is the rounding mode listed in the standard and isdefined

    as follows:The representable value nearest to the infinitely precise result shall be delivered;

    if two nearest representable values are equally near, the one w/ its least significant bitshall be delivered.

    Rounding to plus and minus infinity are useful in interval arithmetic. Thistechnique provides an efficient method for monitoring and controlling errors in floating

    point computation by producing two values for each result. The width of the intervals orthe difference between the upper and lower endpointsdetermines the accuracy of the

    result. Then the interval endpoints are roundeddown or up.Round to zero simply ignored the extra bits, therefore the truncated value is

    always less than or equal to the more precise original value.

    IEEE Standard for Binary Floating-Point Arithmetic

    A. Infinity

  • 8/9/2019 Ee188 Final Batu Plaza

    15/15

    Infinity arithmetic is treated as the limiting case of real arithmetic, with theinfinity values given the following interpretation:

    -< (every finite number) < +

    Arithmetic operation involving infinity:

    B.Quiet and Signaling NaNsA NaN is a symbolic entity in floating-point format, of w/c there are 2 types:

    signaling and quiet. Signaling affords values for uninitialized variables and arithmetic-like enhancements that are not the subject of the standard. A quiet on the other hand

    propagates through almost every arithmetic operation without signaling an exception. See

    table 9.6.

    C. Denormalized Numbers

    Denormalized numbers are included in IEEE 754 to handle cases of exponentunderflows. When the exponent of the result becomes too small, the result isdemoralized

    by right shifting the fraction and incrementing the exponent for each shift, until theexponent is within a representable range. The use ofdenormalized number is referred to

    as gradual underflow.