Title: Fundamentals
1Fundamentals
- What kind of data do computers work with?
- Deep down inside, its all 1s and 0s
- What can you do with 1s and 0s?
- Boolean algebra operations
- These operations map directly to hardware circuits
2Computers are binary devices
- Computers use voltages to represent information
- Voltages are usually limited to 2.5-5.0V to
minimize power consumption - This is only enough to represent two discrete
(digital) signals - Low and High
- 0 and 1
- False and True
- Why?
- To account for noise
- To prevent transitional errors
- How can we use these two signals to represent
numbers?
Good!
Bad!
3Decimal review
- Numbers consist of a bunch of digits, each with a
weight - These weights are all powers of the base, which
is 10. We can rewrite this - To find the decimal value of a number, multiply
each digit by its weight and sum the products.
(1 x 102) (6 x 101) (2 x 100) (3 x 10-1)
(7 x 10-2) (5 x 10-3) 162.375
4Converting binary to decimal
- We can use the same trick to convert binary, or
base 2, numbers to decimal. This time, the
weights are powers of 2. - Example 1101.01 in binary
- The decimal value is
(1 x 23) (1 x 22) (0 x 21) (1 x 20) (0 x
2-1) (1 x 2-2) 8 4 0
1 0 0.25 13.25
5Opposite converting decimal to binary
- To convert an integer, keep dividing by 2 until
the quotient is 0. Collect the remainders in
reverse order. - To convert a fraction, keep multiplying the
fractional part by 2 until it becomes 0. Collect
the integer parts (in forward order). - This may not terminate!
- Example 162.375
- So, 162.37510 10100010.0112
162 / 2 81 rem 0 81 / 2 40 rem 1 40 / 2
20 rem 0 20 / 2 10 rem 0 10 / 2 5 rem 0
5 / 2 2 rem 1 2 / 2 1 rem 0 1 / 2
0 rem 1
0.375 x 2 0.750 0.750 x 2 1.500 0.500 x 2
1.000
6Why does this work?
- This works for converting from decimal to any
base - Why? Think about converting 162.375 from decimal
to decimal. - Each division strips off the rightmost digit
(the remainder). The quotient represents the
remaining digits in the number. - Similarly, each multiplication strips off the
leftmost digit (the integer part). The fraction
represents the remaining digits.
162 / 10 16 rem 2 16 / 10 1 rem 6 1 /
10 0 rem 1
0.375 x 10 3.750 0.750 x 10 7.500 0.500 x 10
5.000
7Base 8 and base 16 are useful too
- Octal (base 8) digits range from 0 to 7. Since 8
23, one octal digit is equivalent to 3 binary
digits. - Hexadecimal (base 16) digits are 0, 1, 2, 3, 4,
5, 6, 7, 8, 9, A, B, C, D, E, and F. Since 16
24, one hex digit is equivalent to 4 binary
digits. - We typically use octal and hex as a shorthand for
those long messy binary numbers.
8Binary, octal, hexadecimal
- Converting from octal (or hex) to binary is easy
just replace each octal (or hex) digit with the
equivalent 3 (or 4) bit sequence - To convert from binary to octal (or hex)
starting from the binary point, make groups of 3
(or 4) bits. Add 0s to the ends of the number if
needed. Then, just convert each bit group to its
corresponding octal (or hex) digit.
261.358 2 6 1 . 3 58 010 110 001 . 011 1012
261.3516 2 6 1 . 3 516 0010 0110 0001 . 00
11 01012
These binary numbers are not equivalent!
10110100.0010112 010 110 100 . 001 0112 2 6 4
. 1 38
These numbers are equivalent!
10110100.0010112 1011 0100 . 0010 11002 B 4 .
2 C16
9Functions
- A computer takes input and produces output...
just like a math function! - We can express math functions in two ways
- We can represent binary functions in two ways
too - As a Boolean expression
- As a truth table. It shows all possibilities for
an expression.
As an expression
As a function table
f(x,y) 2x y x x y 2(x y/2) ...
10Basic Boolean operations
- There are three basic operations. Each can be
implemented in hardware using a primitive logic
gate
NOT (complement) on one input
AND (product) of two inputs
OR (sum) of two inputs
Operation
Expression
xy
x y
x
Truth table
Logic gate
11Boolean expressions
- We can use these basic operations to form more
complex expressions and equations - Some terminology and notation
- f is the name of the function
- (x,y,z) are the input variables. Each variable
represents a 1 or 0. Listing input variables is
optional instead we often write - A literal is an occurrence of an input variable
or its complement. The function above has four
literals x, y, z, and x. - Without parentheses, the NOT operation has the
highest precedence, followed by AND, and finally
OR. Fully parenthesized, this function is
f(x,y,z) (x y)z x
f (x y)z x
f(x,y,z) (((x (y))z) x)
12Larger circuits
- We can build circuits for arbitrary expressions,
using our basic gates
f(x,y,z) (x y)z x
(x y)z
y
(x y)
x
13Truth tables
- We can make a truth table too, by evaluating the
function for all possible inputs. - In general, a function with n inputs will have 2n
possible inputs. - The inputs are typically listed in binary order.
f(x,y,z) (x y)z x
f(0,0,0) (0 1)0 1 1 f(0,0,1) (0 1)1
1 1 f(0,1,0) (0 0)0 1 1 f(0,1,1) (0
0)1 1 1 f(1,0,0) (1 1)0 0
0 f(1,0,1) (1 1)1 0 1 f(1,1,0) (1 0)0
0 0 f(1,1,1) (1 0)1 0 1
14Summary
- Summary
- To minimize analog voltage problems, computers
are binary devices - That means we have to think in terms of base 2
- The basic operations on binary values include
AND, OR, and NOT - These can be directly implemented in hardware
(eventually well show how to do useful stuff
with these operations) - Expressions and truth tables are used to design
and describe circuits - Weve already seen some of the recurring themes
of architecture - We use 0 and 1 as abstractions for analog
voltages - Gates are also an abstraction of the underlying
technology - We showed how to represent numbers using just
these two signals - Next time
- Using Boolean algebra to simplify expressions
- This in turn will yield a simpler circuit