440 likes | 573 Views
CS231: Computer Architecture I. Friday, February 1, 2008. Announcements. Homework 1 is due Monday @ 5:00pm Turn in to TA Office 0212 SC (In Basement) Slide it under the door! NOT Outside in bins!!! Late homeworks accepted with penalty By Tuesday @ 5:00pm: -10%
E N D
CS231: Computer Architecture I Friday, February 1, 2008
Announcements • Homework 1 is due Monday @ 5:00pm • Turn in to TA Office 0212 SC (In Basement) • Slide it under the door! NOT Outside in bins!!! • Late homeworks accepted with penalty • By Tuesday @ 5:00pm: -10% • By Wednesday @ 5:00pm: -20% • No homework accepted after this. Solutions will be posted. • Mallard Quizzes • Posted after Monday and Wednesday classes • Due before class on Wednesday and Friday • Use Newsgroup and Office Hours for help with assignments CS 231 - Computer Architecture I
Review/Discussion This review consists of some of the more important lecture slides and new example problems with a walkthrough of the solutions. • Boolean Operations • Functions • Operators • Truth Tables • Logic Gates • Expression and Circuits • Circuit Analysis • Boolean Algebra • deMorgans Laws • Maxterms/Minterms CS 231 - Computer Architecture I
Volts 1.8 0 True False Boolean values • Earlier, we used electrical voltages to represent two discrete values 1 and 0, from which binary numbers can be formed. • It’s also possible to think of voltages as representing two logical values, true and false. • For simplicity, we often still write digits instead: • 1 is true • 0is false • We will use this interpretation along with special operations to design functions and hardware for doing arbitrary computations. CS 231 - Computer Architecture I
An expression is finite but not unique A function table is unique but infinite f(x,y) = 2x + y = x + x + y = 2(x + y/2) = ... Functions • Computers take inputs and produce outputs, just like functions in math! • Mathematical functions can be expressed in two ways: • We can represent logical functions in two analogous ways too: • A finite, but non-unique Boolean expression. • A truth table, which will turn out to be unique and finite. CS 231 - Computer Architecture I
Basic Boolean operations • There are three basic operations for logical values. NOT (complement) on one input AND (product) of two inputs OR (sum) of two inputs Operation: Expression: xy, or xy x + y x’ Truth table: CS 231 - Computer Architecture I
Boolean expressions • We can use these basic operations to form more complex expressions: f(x,y,z) = (x + y’)z + x’ • Some terminology and notation: • f is the name of the function. • (x,y,z) are the input variables, each representing 1 or 0. Listing the inputs is optional, but sometimes helpful. • A literal is any occurrence of an input variable or its complement. The function above has four literals: x, y’, z, and x’. • Precedences are important, but not too difficult. • NOT has the highest precedence, followed by AND, and then OR. • Fully parenthesized, the function above would be kind of messy: f(x,y,z) = (((x +(y’))z) + x’) CS 231 - Computer Architecture I
Primitive logic gates • Each of our basic operations can be implemented in hardware using a primitive logic gate. • Symbols for each of the logic gates are shown below. • These gates output the product, sum or complement of their inputs. NOT (complement) on one input AND (product) of two inputs OR (sum) of two inputs Operation: Expression: xy, or xy x + y x’ Logic gate: CS 231 - Computer Architecture I
Expressions and circuits • Any Boolean expression can be converted into a circuit by combining basic gates in a relatively straightforward way. • The diagram below shows the inputs and outputs of each gate. • The precedences are explicit in a circuit. Clearly, we have to make sure that the hardware does operations in the right order! (x + y’)z + x’ CS 231 - Computer Architecture I
Circuit analysis • Circuit analysis involves figuring out what some circuit does. • Every circuit computes some function, which can be described with Boolean expressions or truth tables. • So, the goal is to find an expression or truth table for the circuit. • The first thing to do is figure out what the inputs and outputs of the overall circuit are. • This step is often overlooked! • The example circuit here has three inputs x, y, z and one output f. CS 231 - Computer Architecture I
Example Circuit Analysis – Try to find a Boolean expression for the function f
Example Circuit Analysis x y z x y z
Example Circuit Analysis x y Y’ z x x’ y z z’
Example Circuit Analysis x (x + y’ ) y Y’ z x x’ y z z’
Example Circuit Analysis x (x + y’ ) y Y’ (x + y’ ) z z x x’ y (x’ y z’ ) z z’
Example Circuit Analysis x (x + y’ ) y Y’ (x + y’ ) z z (x + y’ ) z + (x’ y z’ ) x x’ y (x’ y z’ ) z z’
Example Circuit Analysis x (x + y’ ) y Y’ (x + y’ ) z z (x + y’ ) z + (x’ y z’ ) x x’ y (x’ y z’ ) z z’ f(x,y,z) = xz + y’z + x’yz’
Circuit analysis summary • After finding the circuit inputs and outputs, you can come up with either an expression or a truth table to describe what the circuit does. • You can easily convert between expressions and truth tables. Find the circuit’s inputs and outputs Find a Boolean expression for the circuit Find a truth table for the circuit CS 231 - Computer Architecture I
Expression simplification • Normal mathematical expressions can be simplified using the laws of algebra • For binary systems, we can use Boolean algebra, which is superficially similar to regular algebra • There are many differences, due to • having only two values (0 and 1) to work with • having a complement operation • the OR operation is not the same as addition CS 231 - Computer Architecture I
Formal definition of Boolean algebra • A Boolean algebra requires • A set of elements B, which needs at least two elements (0 and 1) • Two binary (two-argument) operations OR and AND • A unary (one-argument) operation NOT • The axioms below must always be true (textbook, p. 33) • The magentaaxioms deal with the complement operation • Blueaxioms (especially 15) are different from regular algebra CS 231 - Computer Architecture I
Simplification with axioms • We can now start doing some simplifications x’y’ + xyz + x’y = x’(y’ + y) + xyz [ Distributive; x’y’ + x’y = x’(y’ + y) ] = x’1 + xyz [ Axiom 7; y’ + y = 1 ] = x’ + xyz [ Axiom 2; x’1 = x’ ] = (x’ + x)(x’ + yz) [ Distributive ] = 1 (x’ + yz) [ Axiom 7; x’ + x = 1 ] = x’ + yz [ Axiom 2 ] CS 231 - Computer Architecture I
Example Simplification Using Boolean Alegebra Show (ab’ + a’b)’ =ab + a’b’
Example Simplification Using Boolean Alegebra Show (ab’ + a’b)’ =ab + a’b’ (ab' + a'b)' (ab')' (a'b)' (a' + b) (a + b') aa' + a'b' + ab + bb' ab + a'b'
Example Simplify the following Boolean function: (x + y + z) (y' + z) (x + y' + z')x'
Example Simplify the following Boolean function: (x + y + z) (y' + z) (x + y' + z')x' (x + y + z) (y' + z) (xx' + x'y' + x'z') (x + y + z) (y' + z) (x'y' + x'z') (x + y + z) (x'y'y' + x'y'z' + x'y'z + x'z'z) (x + y + z) (x'y' + x'y'z' + x'y'z) (xx'y' + xx'y'z' + xx'y'z + x'yy' + x'yy'z' + x'yy'z + x'y'zz + x'y'zz' + x'y'zz) (xx'y' + xx'y'z' + xx'y'z + x'yy' + x'yy'z' + x'yy'z + x'y'zz + x'y'zz' + x'y'zz) (x'y'z + x'y'z) x'y'z
The complement of a function • The complement of a function always outputs 0 where the original function outputted 1, and 1 where the original produced 0. • In a truth table, we can just exchange 0s and 1s in the output column(s) f(x,y,z) = x(y’z’ + yz) CS 231 - Computer Architecture I
Complementing a function algebraically • You can use DeMorgan’s law to keep “pushing” the complements inwards • You can also take the dual of the function, and then complement each literal • If f(x,y,z) = x(y’z’ + yz)… • …the dual of f is x + (y’ + z’)(y + z)… • …then complementing each literal gives x’ + (y + z)(y’ + z’)… • …so f’(x,y,z) = x’ + (y + z)(y’ + z’) f(x,y,z) = x(y’z’ + yz) f’(x,y,z) = ( x(y’z’ + yz) )’ [ complement both sides ] = x’ + (y’z’ + yz)’ [ because (xy)’ = x’ + y’ ] = x’ + (y’z’)’ (yz)’ [ because (x + y)’ = x’ y’ ] = x’ + (y + z)(y’ + z’) [ because (xy)’ = x’ + y’, twice] CS 231 - Computer Architecture I
Example Find the complement of the following function: F = a'b'c + a'bc + bc
Example Find the complement of the following function: F = a'b'c + a'bc + bc F' = (a'b'c + a'bc + bc)' = (a'b'c)' (a'bc )'+ (bc)' = (a + b + c') (a + b' + c') (b' + c')
Standard forms of expressions • We can write expressions in many ways, but some ways are more useful than others • A sum of products (SOP) expression contains: • Only OR (sum) operations at the “outermost” level • Each term that is summed must be a product of literals • The advantage is that any sum of products expression can be implemented using a two-level circuit • literals and their complements at the “0th” level • AND gates at the first level • a single OR gate at the second level • This diagram uses some shorthands… • NOT gates are implicit • literals are reused • this is not okay in LogicWorks! f(x,y,z) = y’ + x’yz’ + xz CS 231 - Computer Architecture I
Minterms • A minterm is a special product of literals, in which each input variable appears exactly once. • A function with n variables has 2n minterms (since each variable can appear complemented or not) • A three-variable function, such as f(x,y,z), has 23 = 8 minterms: • Each minterm is true for exactly one combination of inputs: x’y’z’ x’y’z x’yz’ x’yz xy’z’ xy’z xyz’ xyz Minterm Is true when… Shorthand x’y’z’ x=0, y=0, z=0 m0 x’y’z x=0, y=0, z=1 m1 x’yz’ x=0, y=1, z=0 m2 x’yz x=0, y=1, z=1 m3 xy’z’ x=1, y=0, z=0 m4 xy’z x=1, y=0, z=1 m5 xyz’ x=1, y=1, z=0 m6 xyz x=1, y=1, z=1 m7 CS 231 - Computer Architecture I
Sum of minterms form • Every function can be written as a sum of minterms, which is a special kind of sum of products form • The sum of minterms form for any function is unique • If you have a truth table for a function, you can write a sum of minterms expression just by picking out the rows of the table where the function output is 1. f = x’y’z’ + x’y’z + x’yz’ + x’yz + xyz’ = m0 + m1 + m2 + m3 + m6 = m(0,1,2,3,6) f’ = xy’z’ + xy’z + xyz = m4 + m5 + m7 = m(4,5,7) f’ contains all the minterms not in f CS 231 - Computer Architecture I
The dual idea: products of sums • Just to keep you on your toes... • A product of sums (POS) expression contains: • Only AND (product) operations at the “outermost” level • Each term must be a sum of literals • Product of sums expressions can be implemented with two-level circuits • literals and their complements at the “0th” level • OR gates at the first level • a single AND gate at the second level • Compare this with sums of products f(x,y,z) = y’ (x’ + y + z’) (x + z) CS 231 - Computer Architecture I
Maxterms • A maxterm is a sum of literals, in which each input variable appears exactly once. • A function with n variables has 2n maxterms • The maxterms for a three-variable function f(x,y,z): • Each maxterm is false for exactly one combination of inputs: x’ + y’ + z’ x’ + y’ + z x’ + y + z’ x’+ y + z x + y’ + z’ x + y’ + z x + y + z’ x + y + z Maxterm Is false when… Shorthand x + y + z x=0, y=0, z=0 M0 x + y + z’ x=0, y=0, z=1 M1 x + y’ + z x=0, y=1, z=0 M2 x + y’ + z’ x=0, y=1, z=1 M3 x’ + y + z x=1, y=0, z=0 M4 x’ + y + z’ x=1, y=0, z=1 M5 x’ + y’ + z x=1, y=1, z=0 M6 x’ + y’ + z’ x=1, y=1, z=1 M7 CS 231 - Computer Architecture I
Product of maxterms form • Every function can be written as a uniqueproduct of maxterms • If you have a truth table for a function, you can write a product of maxterms expression functionby picking out the rows of the table where the function is 0, and writing the maxterm for that row (the complement of the minterm for the row). f = (x’ + y + z)(x’ + y + z’)(x’ + y’ + z’) = M4 M5 M7 = M(4,5,7) f’ = (x + y + z)(x + y + z’)(x + y’ + z) (x + y’ + z’)(x’ + y’ + z) = M0 M1 M2 M3 M6 = M(0,1,2,3,6) f’ contains all the maxterms not in f See the next slide. CS 231 - Computer Architecture I
Product of maxterms form • Find a row in the truth table for f for which the function is 0 • Write down the complement of the minterm for that row • E.g., if the row is 110, then use DeMorgan’s law to change xyz’ into (x’ + y’ + z). • The product of these maxterms is the original function f • Why does this procedure works? • F’ = A + B + C + D because we picked the rows for which f is 0 • F = A’B’C’D’ by DeMorgan’s law CS 231 - Computer Architecture I
Minterms and maxterms are related • Any minterm mi is the complement of the corresponding maxterm Mi • For example, m4’ = M4 because (xy’z’)’ = x’ + y + z Minterm Shorthand x’y’z’ m0 x’y’z m1 x’yz’ m2 x’yz m3 xy’z’ m4 xy’z m5 xyz’ m6 xyz m7 Maxterm Shorthand x + y + z M0 x + y + z’ M1 x + y’ + z M2 x + y’ + z’ M3 x’ + y + z M4 x’ + y + z’ M5 x’ + y’ + z M6 x’ + y’ + z’ M7 CS 231 - Computer Architecture I
Converting between standard forms • We can convert a sum of minterms to a product of maxterms • In general, just replace the minterms with maxterms, using maxterm numbers that don’t appear in the sum of minterms: • The same thing works for converting from a product of maxterms to a sum of minterms From before f = m(0,1,2,3,6) and f’ = m(4,5,7) = m4 + m5 + m7 complementing (f’)’ = (m4 + m5 + m7)’ so f = m4’ m5’ m7’ [ DeMorgan’s law ] = M4 M5 M7 [ By the previous page ] = M(4,5,7) f = m(0,1,2,3,6) = M(4,5,7) CS 231 - Computer Architecture I
Example Maxterms and Minterms Convert the sum of minterms to a product of maxterms: f = m(0,2,4) = Convert the product of maxterms to a sum of minterms: g = m(2,3,4) = Convert the follwing minterms to a sum of maxterms: h = xyz + x'y'z' =
Example Maxterms and Minterms Convert the sum of minterms to a product of maxterms: F(x,y,z) = m(0,2,4) = m(1,3,5,6,7) Convert the product of maxterms to a sum of minterms: G(x,y,z) = m(2,3,4) = m(0,1,5,6,7) Convert the follwing minterms to a sum of maxterms: H(x,y,z) = xyz + x'y'z' = m(0,7) = m(1,2,3,4,5,6)
Summary • Boolean Operations • Functions • Operators • Truth Tables • Logic Gates • Expression and Circuits • Circuit Analysis • Boolean Alegebra • deMorgans Laws • Maxterms/Minterms • Next week • More on Karnaugh Maps! CS 231 - Computer Architecture I