Presentation is loading. Please wait.

Presentation is loading. Please wait.

Review: Our Friend the Logic Puzzle

Similar presentations


Presentation on theme: "Review: Our Friend the Logic Puzzle"— Presentation transcript:

1 Review: Our Friend the Logic Puzzle
Frank will go to the party if Ed goes AND Dan does NOT. Dan will go if Bob does NOT go OR if Carole goes. Ed will go to the party if Alice AND Bob go. Let’s start with the Truth Table instead

2 Logic Puzzle Circuit AND AND OR Alice Ed Frank Bob Dan Carole
The full circuit for the Logic Puzzle.

3 Logic Puzzle Circuit via Truth Table
AND F A B C F B C

4 Universal Method: Circuits from Any Truth Table (another example)
First, make circuits for each row in the Truth Table that has a 1 in the output. A B C X

5 Another Example (contd)
AND A B C X B C A AND B C

6 Another Example (contd)
AND Finally, combine them with an OR gate. B C OR X The only way X=1 is if at least ONE of the AND gates outputs a 1. But each AND gate corresponds to a row in the Truth Table with a 1 in the output! A AND B C

7 Truth Table with Multiple Outputs
X Y A B

8 Truth Table with Multiple Outputs
Same as 2 Truth Tables: X Y A X Y A B X Y B So we can convert into 2 circuits

9 Build Circuits using Universal Mtehod
OR B AND X Y X Y B X Y A A AND X Y

10 Build Circuits using Universal Mtehod
X AND Y B OR X AND Y X A AND Y

11 Cleaning up the Drawing
AND B OR X AND Y A AND

12 Universality Same idea works no matter how many input/output variables. So for ANY Truth Table we can write down, we can make a circuit for it using only 3 Logic Gates: AND, OR, NOT This gives us a very powerful tool ! Our first technical use of abstraction: “Make a circuit for that Truth Table” is something we can abstract and understand.

13 Additional Issues Some issues to think about on your own
We know that AND,OR, and NOT together are “universal” – we can make a circuit for any Truth Table using just these gates ! What else is universal? Surprising answer: There is a single gate called “NAND” which is universal all by itself!

14 NAND Gate NAND AND X Z Y X Z Y X Y Z 0 0 1 0 1 1
Logically, AND followed by NOT If the AND’s output were a 0, the NAND’s will be a 1 And vice versa

15 NOT Gate from NAND Gate NAND X X Z Z NOT Y X Y Z 0 0 1 0 1 1 1 0 1 X Z
0 1 1 0 NAND Y X Y Z Is there a fixed value of Y for which NAND table reduces to NOT?

16 NOT Gate from NAND Gate NAND NAND Truth Table Truth Table X Z
Fix Y at 1 Y X Z NAND X Y Z 1 X Y Z Truth Table Truth Table

17 Are We Done?

18 Limitations of the Universal Method
For how large a circuit can we realistically expect to use the Universal Method? What do we do for larger circuits? How do we simplify them? Recall two circuits that both solved our logic puzzle, one simpler than the other

19 Numeracy How large do circuits get? How large do truth tables get?

20 Numeracy (contd) X Y 0 1 1 0 1-input Truth Table 2 rows

21 Numeracy (contd) 1-input Truth Table 2 rows 2-input Truth Table 4 rows
X Y Z X Y 0 1 1 0 1-input Truth Table 2 rows 2-input Truth Table 4 rows

22 Numeracy (contd) 3-input Truth Table: 8 rows A B C F 0 0 0 0 0 0 1 1
3-input Truth Table: 8 rows

23 Numeracy (contd) Inputs Rows in truth table 1 2 4 3 8 ?? 5 Arbitrary N

24 Numeracy (contd) Each input can be 0 or 1 : 2 possibilities.
So if there are 4 inputs, that is a total of 2 * 2 * 2 * 2 = 16 possible input values.

25 Numeracy (contd) Inputs Rows in truth table 1 2 4 3 8 16 5 ??
Arbitrary N

26 Numeracy (contd) Inputs Rows in truth table 1 2 4 3 8 16 5 32
Arbitrary N ??

27 Numeracy (contd) Each input can be 0 or 1 : 2 possibilities.
In general, if there are n inputs, there will be * 2 * 2 * 2 * 2 * … * 2 (n times), or 2n possible input values.

28 Numeracy (contd) Inputs Rows in truth table 1 2 4 3 8 16 5 32
Arbitrary N 2N

29 Powers of 2 2n comes up a lot in Computer Science.
Numbers to memorize: 21 = 2, 22 = 4, 23 = 8, 24 = 16, 25 = 32, 26 = 64, 27 = 128, 28 = 256, 29 = 512, 210 = 1024

30 Keep Memorizing … 210 = 1,024 220 = 1,048,576 230 = 1,073,741,824 240 = 1,099,511,627,776 250 = 1,125,899,906,842,624 260 = 1,152,921,504,606,846,976

31 Let’s Make it Easier Some rough numbers: 210 = 1,024  1,000 (103)
210 = 1,024  1,000 (103) 220 = 1,048,576  1,000,000 (106) [ = (103)2] 230  1,000,000,000 (109) [ = (103)3] 240  1,000,000,000,000 (1012) [ = (103)4] 250  (1015) 260  (1018 )

32 Powers of 2 (contd) Some rough numbers: 210  1,000 (103 ) kilo
220  1,000,000 (106 ) mega RAM 230  giga disk 240  tera BIG disk 250  peta 260  exa knowledge

33 Sidebar on Exabytes It's taken the entire history of humanity through 1999 to accumulate 12 exabytes of information. By June 2002, the second dozen exabytes were created 1 exabytes = 50,000 times the library of congress Floppy disks to make 1 exabyte would stack 24 million miles high.

34 Powers of 2 (contd) 16 inputs means Truth Table has 216 = 210 * 26 = 1,024 *  64,000 rows Circuit could have more than 64,000 gates

35 Limitations of Universal Method
What about 100 inputs? Is it reasonable to use Universal Method on Truth Table with 100 inputs?

36 Limitations of Universal Method
What about 100 inputs: Is it reasonable to use Universal Method on Truth Table with 100 inputs? 2100  1030 Each AND/OR/NOT gate uses at least 1 transistor. This is way beyond current technology, in fact . . .

37 Limitations of Universal Method
State-of-the-art transistors are about 0.1 micrometer (mm) on a side: Lined end-to-end, you could fit 10,000,000 transistors in 1 m. ( 3 f.) In a 1 m. by 1 m. square, you could fit 100,000,000,000,000 transistors That’s still 999,999,999,999,999, ,000,000,000,000 too few for 100 input Truth Table !

38 How Sad Should We Be?

39 Not Very Just use many Truth Tables, each having fewer inputs.
Can make an entire computer using only 16-input Truth Tables and the Universal Method! On the other hand, must realize that in some cases, we need more efficient special purpose circuits than the Universal Method. (We won’t cover these.)

40 Our First Abstract Tool
Universal Method: Circuits for ANY Truth Table 0’s & 1’s Universal Method Computers We are here

41 So What? We can build logic circuits for 0’s and 1’s now
But why should we? Answer: Because we can represent so many things with 0’s and 1’s.

42 The Meaning of 0 and 1 In Logic, we thought of 0 and 1 as meaning True and False. Now, we remove these connotations. Definition: a bit (binary digit) is just a single variable that can take value either 0 or 1.

43 Representing Information
Information in the world comes in many forms – letters, numbers, pictures, sounds… How can we represent these things with 0’s and 1’s? Let’s start with numbers

44 Representing Numbers Before computers, in many devices, numbers were typically represented continuously e.g. Analog Clocks: But discrete integers are very important: How many computers do you own?

45 Binary Numbers How do we count normally?
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, , 11, … 19, 20, 21 … , 99, , … 999, , … Suppose we only had two numerals: 0 and 1. Then how would we count? 0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010 … ,

46 Binary Numbers (contd)
1 2 3 4 5 6 7 8 1 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

47 What are binary numbers?
Base 2 rather than base 10 Decimal numbers We write (1234)10 to represent a decimal number that has 4 units, 3 tens, 2 hundreds and 1 thousand. (1234)10 = 1 x x x x100

48 What are binary numbers?
Base 2 rather than base 10 Decimal numbers We write (1234)10 to represent a decimal number that has 4 units, 3 tens, 2 hundreds and 1 thousand. (1234)10 = 1 x x x x100 Binary numbers We write (1001)2 to represent a binary number that has 1 unit, 0 2’s, 0 4’s and 1 8. (1001)2 = 1 x x x x20

49 Conversion If (10)10 is called 10, what do we call (10)2 ?
Can we convert between binary and decimal? (123)10 = 2*61 + 1 = 22* *1 + (20 * )1 = 23*15 + 0* *1 + (20 * )1 = ……. = ( )2 (101101) 2 = = = 45

50 From Decimal to Binary: Method 1
=

51 From Decimal to Binary: Method 1
(29) 1 (28) 1 (27) 1 (26) 1 (25) 1 (24) 1 (23) 1 1 [(22)] 0 1 [(21)] 0 (20) 1 =

52 Binary Numbers (contd)
Addition : 1 0 1 _________________

53 Binary Numbers (contd)
Addition – Our “basic” addition table is really easy now: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10

54 Binary Numbers (contd)
Addition – just like usual: 1 0 1 _______________ 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 = 10

55 Binary Numbers (contd)
Addition – just like usual: 1 1 0 1 _______________ 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 = 10

56 Binary Numbers (contd)
Addition – just like usual: 1 1 1 0 1 _______________ 0 0 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 = 10

57 Binary Numbers (contd)
Addition – just like usual: 1 1 1 0 1 _______________ 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 = 10

58 Binary Numbers (contd)
If (10)10 is called 10, what do we call (10)2 ? Can we convert between binary and decimal? (123)10 = 2*61 + 1 = 22* *1 + (20 * )1 = 23*15 + 0* *1 + (20 * )1 = ……. = ( )2 (101101) 2 = = = 45

59 Binary Numbers (contd)
Can also do: Subtraction, Multiplication, etc Negative Numbers Fractions Great, but where do Logic Circuits fit in?

60 Binary Numbers (contd)
And you thought we were done with truth tables For Addition on small numbers, can make a truth table: Problem: Output can be 2 bits sometimes X Y Z

61 Binary Numbers (contd)
Addition Truth Table with Multiple Outputs: X Y A B

62 Binary Numbers (contd)
Same as 2 Truth Tables: X Y A X Y B

63 Binary Numbers (contd)
Same as 2 Truth Tables: Now we can convert into 2 circuits! X Y A X Y B

64 Binary Numbers (contd)
X AND X Y B Y B OR X AND Y X Y A X A AND Y

65 Binary Numbers (contd)
X AND X Y B Y B OR X AND Y This is often called the eXclusive OR (XOR) circuit We say that B is the exclusive OR of X and Y. We write B = X Y.

66 A Logic Puzzle Bob will go to the party if Ed goes OR Dan goes.
Dan will go if Xena does NOT go AND Yanni goes. Ed will go if Xena goes AND Yanni does NOT go. This is addition without the carry Bob goes if the XOR of Xena and Yanni go.

67 A Simple Breakthrough We can represent information by bits. (So we interpret bits to mean things like numbers.) Then we re-interpret those bits as Logical True/False values Finally we use Universal Method to construct circuits for operations on information (like Addition)

68 Intermission Questions??
How are we going to build a circuit for addition?

69 Addition X1 X2 Y1 Y2 ========= C Z1 Z2 C is the carry bit X1 X2 Y1 Y2
1 X1 X2 Y1 Y2 ========= C Z1 Z2 C is the carry bit

70 Addition X1 X2 Y1 Y2 ========= C Z1 Z2 C is the carry bit
1 X1 X2 Y1 Y2 ========= C Z1 Z2 C is the carry bit Could have 3 circuits 16 inputs each 2 w/ 8 ANDs, 1 OR 1 w 6 ANDs, 1 OR 25 gates

71 Addition X1 X2 Rewrite as Y1 Y2 X2 X1 ========= Y2 Y1 C Z1 Z2 ==== C2

72 Addition X1 X2 Y1 Y2 C2 ==== ==== C2 Z2 C Z1 3 circuits 2 circuits
1 3 circuits total of 10 gates 2 circuits total of 4 gates

73 Addition X2 Z2 Circuit For Z2 and carry Y2 C2 Z1 Circuit For

74 Adding Binary Numbers of Any Length
We can use 2 building blocks to add numbers of any length. Actually we need only 1 building block ith bit of X ith bit of Z ith bit of Y carry bit out carry bit Abstraction in action -- This is a piece of a carry-ripple adder

75 Adding Binary Numbers of Any Length
Write the numbers as X4 X3 X2 X1 X0 Y4 Y3 Y2 Y1 Y0 Represent the sum as C Z4 Z3 Z2 Z1 Z0

76 Adding Binary Numbers of Any Length
Write the numbers as X4 X3 X2 X1 X0 Y4 Y3 Y2 Y1 Y0 Represent the sum as C Z4 Z3 Z2 Z1 Z0 Start with X0, Y0, 0 in, Z0 and C0 out Then X1,Y1,C0 in and Z1 and C1 out. And so on

77 Adding Binary Numbers of Any Length
At the ith stage ith bit of X Universal Circuit ith bit of Z ith bit of Y carry bit out carry bit Abstraction in action -- This is a piece of a carry-ripple adder

78 Adding Binary Numbers of Any Length
At each stage, take 2 addends and a bit telling whether there is a carry and produce a sum bit and a bit telling if there is a carry. We can build a black box to do this addend Sum bit addend carry bit out carry bit in

79 Carry-Ripple Adder Z1 Z2 X2 Universal Circuit Z0 X1 Universal Circuit
Fixed at 0 X2 X1 X0 Y2 Y1 Y0 ============ C2 Z2 Z1 Z0

80 What’s inside the box? Zi Xi Universal Circuit Yi Cout Cin

81 What’s inside the box? Zi Xi Universal Circuit Yi Cout Cin
Abstraction in Action: Use Truth Tables and the Universal Method

82 Carry ripple adders Useful for some applications Too slow for other
Delay while waiting for the carry to ripple One solution – add larger blocks Details in the homework assignment

83 Arithmetic Logical Unit (ALU)
This is the part of the CPU that does arithmetic, logical and comparison operations We’ve built a piece of the ALU With abstraction, we could build the other parts Multiplication/subtraction/division Comparison Then we would write a language to let the user talk to the ALU (programming)

84 Pause Questions?? How to build the other parts of the ALU?
Use abstraction Back to representing information

85 Representing information
How do we represent characters? How many characters might we want to represent? What characters might we want to represent?

86 Representing information
How do we represent characters? How many characters might we want to represent? What characters might we want to represent? A-Z A-Z and a-z All the keys on my keyboard Maybe a power of 2? Maybe an even power of 2? Maybe an even bigger power of 2? 65536

87 Representing characters
ASCII is the American Standard Code for Information Interchange. It is a 7-bit code. Many 8-bit codes contain ASCII as their lower half The ASCII standard was published by the United States of America Standards Institute (USASI) in 1968.

88 Unicode Universal Character Set (UCS) contains all characters of all other character set standards. It also guarantees round-trip compatibility, i.e., conversion tables can be built such that no information is lost when a string is converted from any other encoding to UCS and back. UCS contains the characters required to represent almost all known languages. This includes apart from the many languages which use extensions of the Latin script also the following scripts and languages: Greek, Cyrillic, Hebrew, Arabic, Armenian, Gregorian, Japanese, Chinese, Hiragana, Katakana, Korean, Hangul, Devangari, Bengali, Gurmukhi, Gujarati, Oriya, Tamil, Telugu, Kannada, Malayam, Thai, Lao, Bopomofo, and a number of others. Work is going on to include further scripts like Tibetian, Khmer, Runic, Ethiopian, Hieroglyphics, various Indo-European languages, and many others. It’s intended to use 31 bits (32768 possible characters)

89 What do we do in practice
Problems Bits represent too little – too many are needed Decimal numbers don’t translate well into bits So, Group into blocks of 4 and 8 bits 8 bits = 256 characters, holds ASCII 8 bits make 1 byte – things are organized into bytes 4 bits make 1 nibble

90 Shorthand: Hexadecimal
1 2 3 4 5 6 7 8 9 A B C D E F

91 Hexadecimal We can add numbers
We can combine 2 hexadecimal numbers to make a byte. It’s easier to read than 0’s and 1’s In ASCII hex 41 through 5A represent A to Z Hex 61 through 7A represent a to z

92 Summary Reviewed gates and the Universal Method
Showed that the universal method can lead to very big circuits Fixed the problem Demonstrated the fix Carry-ripple adder Represented characters Hexadecimal Bytes, nibbles

93 Now that we can represent it, how do we store it??
Next Time: Memory Now that we can represent it, how do we store it??


Download ppt "Review: Our Friend the Logic Puzzle"

Similar presentations


Ads by Google