Arithmetic - PowerPoint PPT Presentation

About This Presentation
Title:

Arithmetic

Description:

Arithmetic CPSC 321 Computer Architecture Andreas Klappenecker Signed Numbers (3bits) Two s complement The unsigned sum of an n-bit number with its negative yields? – PowerPoint PPT presentation

Number of Views:55
Avg rating:3.0/5.0
Slides: 16
Provided by: Compute118
Category:

less

Transcript and Presenter's Notes

Title: Arithmetic


1
Arithmetic
  • CPSC 321 Computer Architecture
  • Andreas Klappenecker

2
Signed Numbers (3bits)
sign magnitude ones complement twos complement
0002 0 0002 0 0002 0
0012 1 0012 1 0012 1
0102 2 0102 2 0102 2
0112 3 0112 3 0112 3
1002 -0 1002 -3 1002 -4
1012 -1 1012 -2 1012 -3
1102 -2 1102 -1 1102 -2
1112 -3 1112 -0 1112 -1
3
Twos complement
  • The unsigned sum of an n-bit number with its
    negative yields?
  • Example with 3 bits
  • 0112 3
  • 1012 -3
  • 10002 2n gt negate(x) 2n-x
  • 1012 -22 20

4
Negating Signed Integers
  • Suppose that you have an n-bit integer in twos
    complement representation
  • Negate positive to negative
  • 00112 3 ? 11012 -3
  • invert bits and add 1
  • Negate negative to positive
  • Trick invert bits and add 1
  • -3 11012 ? 00102 ? 00112

5
Addition Subtraction
  • Just like in grade school (carry/borrow 1s)
    0111 0111 0110  0110 - 0110 - 0101
  • 1101 0001 0001
  • Two's complement operations easy
  • subtraction using addition of negative numbers
    0111 7  1010 -6 0001

6
Detecting Overflow
Operation Operand A Operand B Overflow if result
AB gt0 gt0 lt0
AB lt0 lt0 gt0
A-B gt0 lt0 lt0
A-B lt0 gt0 gt0
7
MIPS instructions
  • lb loads a byte and stores the sign-extended
    version in a word.
  • lbu loads a byte and stores it in a word
  • Which of these two is typically used to process
    characters?

8
Logic Gates AND
  • AND
  • a b c
  • 0 0 0
  • 0 1 0
  • 1 0 0
  • 1 1 1

a
c
b
9
Logic Gates OR
  • OR
  • a b c
  • 0 0 0
  • 0 1 1
  • 1 0 1
  • 1 1 1

a
c
b
10
An ALU (arithmetic logic unit)
  • Let's build an ALU to support the andi and ori
    instructions
  • Selection of operation 0 and, 1 or
  • we'll just build a 1 bit ALU, and use 32 of
    them
  • Possible Implementation (sum-of-products)

a
b
11
The Multiplexor
  • Selects one of the inputs to be the output,
    based on a control input
  • Build (and/or) ALU using a MUX

note it is called a 2-input mux even
though it has 3 inputs!
0
1
12
Different Implementations
  • Not easy to decide the best way to build
    something
  • Don't want too many inputs to a single gate
  • for our purposes, ease of comprehension is
    important
  • Dont want to have to go through too many gates
  • Let's look at a 1-bit ALU for addition

cout a b a cin b cin sum a xor b xor cin
13
Different Implementations
  • How could we build a 1-bit ALU for add, and, and
    or?
  • How could we build a 32-bit ALU?

14
Building a 32 bit ALU
15
What about subtraction (a b) ?
  • Two's complement approach just negate b and
    add.
  • How do we negate?
  • A solution
Write a Comment
User Comments (0)
About PowerShow.com