Computer Science. Questions for discussion Part II. Computer Science COMPUTER SCIENCE. Section 4.2.

Similar documents
Computer Science. 19. Combinational Circuits. Computer Science COMPUTER SCIENCE. Section 6.1.

Limitations of Algorithm Power

Part I: Definitions and Properties

Models of Computation

UNIVERSITY OF WISCONSIN MADISON

Undecidable Problems. Z. Sawa (TU Ostrava) Introd. to Theoretical Computer Science May 12, / 65

Computer Science. 20. Combinational Circuits. Computer Science COMPUTER SCIENCE. Section

Logic and Boolean algebra

Turing Machines and Time Complexity

Enrico Nardelli Logic Circuits and Computer Architecture

(a) Definition of TMs. First Problem of URMs

Applications. Smartphone, tablet, game controller, antilock brakes, microprocessor, Wires

CSE 200 Lecture Notes Turing machine vs. RAM machine vs. circuits

NODIA AND COMPANY. GATE SOLVED PAPER Computer Science Engineering Theory of Computation. Copyright By NODIA & COMPANY

Theory of Computation Lecture Notes. Problems and Algorithms. Class Information

an efficient procedure for the decision problem. We illustrate this phenomenon for the Satisfiability problem.

CMPT-150-e1: Introduction to Computer Design Final Exam

CSCI 1590 Intro to Computational Complexity

Complexity, P and NP

Project Two RISC Processor Implementation ECE 485

Fundamentals of Digital Design

CMP 334: Seventh Class

20. Combinational Circuits

CSC9R6 Computer Design. Practical Digital Logic

Universal Turing Machine. Lecture 20

Computational complexity theory

Design of Sequential Circuits

Intro to Theory of Computation

Design at the Register Transfer Level

Boolean Algebra and Digital Logic 2009, University of Colombo School of Computing

Contents. Chapter 3 Combinational Circuits Page 1 of 36

Theory of Computation. Theory of Computation

Complexity Theory Part I

Turing s thesis: (1930) Any computation carried out by mechanical means can be performed by a Turing Machine

Lecture 10: Synchronous Sequential Circuits Design

CSCI3390-Lecture 14: The class NP

Number System. Decimal to binary Binary to Decimal Binary to octal Binary to hexadecimal Hexadecimal to binary Octal to binary

Computational complexity theory

Unit 1A: Computational Complexity

CSCE 222 Discrete Structures for Computing

NP-Completeness. Andreas Klappenecker. [based on slides by Prof. Welch]

CSE 105 THEORY OF COMPUTATION

Automata Theory CS S-12 Turing Machine Modifications

Theory Bridge Exam Example Questions

CSE 105 THEORY OF COMPUTATION

CHAPTER log 2 64 = 6 lines/mux or decoder 9-2.* C = C 8 V = C 8 C * 9-4.* (Errata: Delete 1 after problem number) 9-5.

CS6901: review of Theory of Computation and Algorithms

Combinational Logic Trainer Lab Manual

Computer Science 385 Analysis of Algorithms Siena College Spring Topic Notes: Limitations of Algorithms

NP-Completeness I. Lecture Overview Introduction: Reduction and Expressiveness

Complexity Theory VU , SS The Polynomial Hierarchy. Reinhard Pichler

Outline. Complexity Theory EXACT TSP. The Class DP. Definition. Problem EXACT TSP. Complexity of EXACT TSP. Proposition VU 181.

15.1 Proof of the Cook-Levin Theorem: SAT is NP-complete

UNIVERSITI TENAGA NASIONAL. College of Information Technology

Friday Four Square! Today at 4:15PM, Outside Gates

Algorithms Design & Analysis. Approximation Algorithm

Harvard CS 121 and CSCI E-121 Lecture 22: The P vs. NP Question and NP-completeness

Summer School on Introduction to Algorithms and Optimization Techniques July 4-12, 2017 Organized by ACMU, ISI and IEEE CEDA.

Computer organization

Notes for Comp 497 (Comp 454) Week 12 4/19/05. Today we look at some variations on machines we have already seen. Chapter 21

COMP/MATH 300 Topics for Spring 2017 June 5, Review and Regular Languages

SOLUTION: SOLUTION: SOLUTION:

Binary Decision Diagrams and Symbolic Model Checking

Chapter 7 Turing Machines

CMP 338: Third Class

Turing Machines (TM) Deterministic Turing Machine (DTM) Nondeterministic Turing Machine (NDTM)

CS151 Complexity Theory. Lecture 1 April 3, 2017

Decidability: Church-Turing Thesis

Time Complexity (1) CSCI Spring Original Slides were written by Dr. Frederick W Maier. CSCI 2670 Time Complexity (1)

Digital Logic: Boolean Algebra and Gates. Textbook Chapter 3

CS3719 Theory of Computation and Algorithms

Computation Theory Finite Automata

A difficult problem. ! Given: A set of N cities and $M for gas. Problem: Does a traveling salesperson have enough $ for gas to visit all the cities?

CS 580: Algorithm Design and Analysis. Jeremiah Blocki Purdue University Spring 2018

MC9211 Computer Organization

CS 6505, Complexity and Algorithms Week 7: NP Completeness

COSC 243. Introduction to Logic And Combinatorial Logic. Lecture 4 - Introduction to Logic and Combinatorial Logic. COSC 243 (Computer Architecture)

Artificial Intelligence. 3 Problem Complexity. Prof. Dr. Jana Koehler Fall 2016 HSLU - JK

NP Completeness and Approximation Algorithms

PRAM lower bounds. 1 Overview. 2 Definitions. 3 Monotone Circuit Value Problem

School of Computer Science and Electrical Engineering 28/05/01. Digital Circuits. Lecture 14. ENG1030 Electrical Physics and Electronics

Determine the size of an instance of the minimum spanning tree problem.

Data Structures in Java

Introduction. Pvs.NPExample

Automata & languages. A primer on the Theory of Computation. Laurent Vanbever. ETH Zürich (D-ITET) October,

Complexity Theory. Knowledge Representation and Reasoning. November 2, 2005

Binary addition example worked out

A.Antonopoulos 18/1/2010

CSCE 551 Final Exam, Spring 2004 Answer Key

CP405 Theory of Computation

Chapter 2 Algorithms and Computation

Complexity (Pre Lecture)

Homework Assignment 6 Answers

CSE 105 THEORY OF COMPUTATION. Spring 2018 review class

CSE 105 THEORY OF COMPUTATION

CS6902 Theory of Computation and Algorithms

Decision Problems with TM s. Lecture 31: Halting Problem. Universe of discourse. Semi-decidable. Look at following sets: CSCI 81 Spring, 2012

ECE/CS 250 Computer Architecture

NP-Completeness. Until now we have been designing algorithms for specific problems

Final Exam Comments. UVa - cs302: Theory of Computation Spring < Total

Transcription:

COMPUTER SCIENCE S E D G E W I C K / W A Y N E PA R T I I : A L G O R I T H M S, T H E O R Y, A N D M A C H I N E S Computer Science Computer Science An Interdisciplinary Approach Section 4.2 ROBERT SEDGEWICK K E V I N WAY N E http://introcs.cs.princeton.edu Questions for discussion Part II

Lecture11: Searching and Sorting

Search in an array Suppose that an array of strings contains a[0] a[1] a[2] a[3] a[4] a[5] a[6] black raspberry chocolate cookie dough coffee mint strawberry vanilla Q. How many compares for a successful search for mint using: binary search? sequential search? Q. How many compares for an unsuccessful search for pistachio using: binary search? sequential search? 3

Sorting performance Q. The following tables are performance results for algorithms that sort 10-character strings. Label each as insertion sort or mergesort. 4

Sorting and searching performance Q. To the right of each option, fill in the circle corresponding to the one-word characterization that best describes the order of growth of the worst-case running time. logarithmic linear linearithmic quadratic mergesort merge binary search 10% 23% 22% 38% BST search insertion sort sequential search bubble sort 5

Lecture 12: Stacks and Queues

Pushdown stack Q. In the following, interpret a letter to mean push a minus sign to mean pop 1. Starting with an empty stack, give the contents of the stack after a - b c - d e - f g h - - i 2. Suppose that the standard array representation was used for the stack. Give the contents of the array after a - b c - d e - f g h - - i 7

Prefix/infix Q. Give an infix expression corresponding to each of the following prefix expressions. 3 7 + 4 6 + * 20 35 7 / 4 * + 63 3 / 17-0 * 2 + 1 2 4 / + 4 8 / + 6 3 / - 8

Lecture 13: Symbol Tables

Sorting and searching performance Q. To the right of each option, fill in the circle corresponding to the one-word characterization that best describes the order of growth of the worst-case running time. logarithmic linear linearithmic quadratic mergesort merge binary search 10% 23% 22% 38% BST search insertion sort sequential search bubble sort 10

Searching scalability Q. An algorithm is scalable if it can accommodate an unpredictable mix of operations for a large amount of data, even as the amount of data grows. Which of the following data structures admits scalable symbol-table algorithms? scalable? array linked list BST 11

Legal BST Q. Is this a BST? 7 4 16 11 20 8 18 A. No. 12

BST construction Q. Match the key sequences with the BST produced by inserting them in order into an initially empty tree. Z B P F M G H G Z F B M P H A B F P Z H G M B M P Z B G F H C D 13

Tree labeling Q. How many ways to assign N keys to a give N-node tree? B F G H M P Z F B P H Z A. Only one (!) G M 14

Tree height Q. Give the height of the BST produced by inserting keys in the order given into an initially empty BST. 10, 11, 20, 30, 32, 48, 60 7 10, 20, 32, 11, 30, 48, 60 30, 10, 20, 11, 60, 48, 32 20, 11, 10, 30, 32, 60, 48 15

Tree sequences Q. Which of the following could not have been the sequence of keys examined to search for 70 in a BST? 77, 41, 99, 20, 85, 70 99, 10, 80, 20, 60, 70 5, 10, 80, 40, 32, 50, 70 22, 58, 81, 70 16

Order statistics Q. Identify the smallest, largest, and median. 7 4 18 11 20 16 51 38 52 17

Tree enumeration Q. How many different trees of 3 nodes? 4? A. Catalan numbers. 18

Lecture 14: Intro to Theory of Computing

REs Q. How do know what language is described by an RE? Ex. Fall 2014 Question 5. Let L = { ab, aaab, aaaab, aabaab, aabaaab }. Write 1, 2, 3, or 4 to indicate whether the RE 1. Matches no strings in L. 2. Matches only some strings in L and some other strings. 3. Matches all strings in L and some other strings. 4. Matches all strings in L and no other strings. (aa*b)* 3 a*b* 2 (a b)*ab 3 a*baba*b* 1 (ab) (a(a aba)(a aa)b) 4 a*baaa*b* 2 20

Q. Match the REs with the DFAs. A a* (a*ba*ba*ba*)* B B (ab)* A C (a*b)+ D D ba* C 21

Lecture 15: Turing Machines

Tracing TMs Q. How do we trace a Turing Machine? Ex. Fall 2014 Question 5. The incomplete T M at left is supposed to write onto its tape the Fibonacci sequence 1, 1, 2, 3, 5, 8, 13,, but in unary notation: 1, 1, 11, 111, 11111, 11111111, 1111111111111. This T M uses the symbols A, B, and C to delineate the two most recently computed Fibonacci numbers. Here is the tape before computing Fibonacci number 5, with the tape head positioned at the C: # 1 # 1 A 1 1 B 1 1 1 C # # # # # # Fill in exactly one symbol in each of the 4 empty boxes to complete the design of this T M. You may assume that the initial contents of the tape and the position of the tape head are as given above and that the machine starts in the middle state. 23

` Q. How do we trace a T M? Ex. Fall 2014 Question 5. scan left for 1 or A scan right for # scan left for 1 or A # 1 # 1 A 1 1 B 1 1 1 C # # # # # # # 1 # 1 A 1 1 B 1 1 0 C # # # # # # # 1 # 1 A 1 1 B 1 1 0 C 0 # # # # # B B # scan left for 1 or A... # 1 # 1 A 0 0 B 0 0 0 C 0 0 0 0 0 # 1 scan right for 0, B, or C change 0 to 1 change B to A change C to B # 1 # 1 # 0 0 B 0 0 0 C 0 0 0 0 0 #... scan left for 1 or A # 1 # 1 # 1 1 A 1 1 1 B 1 1 1 1 1 C #

Computability Spring 2015 Q5 Turing Machine TOY with sufficient memory DFA None of these Can perform any possible computation (if the Church-Turing thesis holds). Cannot express some Java programs Cannot be simulated in Java Always halts on all finite inputs Can always correctly check whether an arbitrary Java program goes into a loop. 25

Computability Spring 2011 Q8 A known to be true There exists a mathematical function that can be computed in Java, but cannot be computed on a Turing machine. B B C known to be false if true would falsify the Church-Turing thesis There exists a mathematical function that can be computed in polynomial time on a quantum computer, but cannot be computed in polynomial time on a Turing machine. Assume that quantum computers can be built. D D if true would falsify the extended Church- Turing thesis There exists a mathematical function that can be computed in polynomial time in Java, but cannot be computed in polynomial time on a Turing machine. B E if true would prove the Church-Turing thesis There exists a Turing machine that can simulate the behavior of any other Turing machine. A 26

Lecture 16: Intractability

Polynomial vs. Exponential Circle the largest value, for N = 10 N 100 1000N 3 2 N Circle the largest value, for N = 100 N 100 1000N 3 2 N Circle the largest value, for N = 1000 N 100 1000N 3 2 N 28

Vertex cover Exercise 5.5.6 Find a minimum-cardinality vertex cover for this graph. C D I J A K B E H L F G 29

NP-hard vs. NP-complete Q. If someone finds a polynomial-time algorithm for FACTOR, would that prove that P = NP? A. No. (No reduction from an-np-complete problem is known.) Q. If someone finds a polynomial-time algorithm for MIN VERTEX COVER, would that prove that P = NP? A. Yes. Such a solution would give a solution to VERTEX COVER, which is NP-complete. Q. If someone proves that P=NP, would that give a polynomial-time algorithm for FACTOR? A. No. It would prove that one exists, not necessarily exhibit one. Q. If someone proves that P=NP, would that give a polynomial-time algorithm for MIN VERTEX COVER? A. No. (It is NP-hard but not known to be in NP.) 30

NP-completeness Exercise 5.5.25 Which of the following can we infer from the fact that TSP is NPcomplete, if we assume that P NP? a. No algorithm exists that solves arbitrary instances of TSP. b. No algorithm exists that efficiently solves arbitrary instances of TSP. c. There exists an algorithm that efficiently solves arbitrary instances of TSP, but no one has been able to find it. exponential algorithm would do that s the point it would prove P = NP d. TSP is not in P. same as b. e. All algorithms that are guaranteed to solve TSP run in polynomial time for some family of inputs. nonsense distractor f. All algorithms that are guaranteed to solve TSP run in exponential time for all families of inputs. could be between poly and exp 31

NP-completeness Exercise 5.5.29 Let A and B be two decision problems. Suppose we know that A polynomial-time reduces to B. Which of the following can we infer? a. If B is NP-complete then so is A. b. If A is NP-complete then so is B. c. If B is NP-complete and A is in NP then A is NP-complete. d. If A is NP-complete and B is in NP then B is NP-complete. e. A and B cannot both be NP-complete. f. If A is in P, then B is in P. g. If B is in P, then A is in P. A might not be in NP B might not be in NP wrong way an implication that matters why not? wrong way an implication that matters 32

P vs. NP Q. Assume that P = NP. Check all correct options. halting problem TSP SAT FACTOR ILP is computable is intractable is in P is in NP is in NPC 33

P vs. NP Q. Assume that P NP. Check all correct options. halting problem TSP SAT FACTOR ILP is computable is intractable known to be in P known to be in NP known to be NPC 34

Lecture 17: A Computing Machine

1970 36

Binary operations Q. Why is ~0 equal to -1 and not 1? (Fall 2014 Q1B) A (wrong). ~ is "not" 0 is "false" "not false" is true" "true" is 1 A (correct). ~ is BITWISE "not" 0 is 00000000000000000000000000000000 ~0 is 11111111111111111111111111111111 11111111111111111111111111111111 is -1 (2s complement) 37

Representing numbers Q. Fill in the blanks in this table. unsigned base 10 16-bit binary 4-digit hex 100 0000000001100100 0064 4096+256+16+1 = 4369 0001000100010001 1111 12 0000000000001100 000C 38

Representing information Q. Fill in the blanks in this table. hex TOY instruction TOY integer 0064 halt 100 1A00 R[A] = R[0] + R[0] 6,656 FFF0 R[F] = PC + 1; PC = F0 16 2111 R[1] = R[1] - R[1] 8,465 DEEF if (R[E] > 0) PC = EF 8,465 39

TOY blocking and tackling I Q. Give seven instructions (all having different opcodes) to put 0000 in R[A]. 1A00 2Axx 3A0x 4Axx 5A0x 6A0x R[A] = R[0] + R[0] R[A] = R[x] - R[x] R[A] = R[0] & R[x] R[A] = R[x] ^ R[x] R[A] = R[0] << R[0] R[A] = R[0] >> R[x] 7A00 R[A] = 0000 40

TOY blocking and tackling II Q. Which of the following put FFFF in R[A]? 7AFF R[A] = 00FF 7B01 2A0B R[B] = 0001 R[A] = R[0] - R[B] 7A01 2A0A 7AFF 7B08 5AA8 6AA8 R[A] = 0001 R[A] = R[0] - R[A] R[A] = 00FF R[B] = 0008 R[A] = R[A] << R[B] R[A] = R[A] >> R[B] 41

TOY code I Q. What does this TOY program do? 10: 82FF R[2] = stdin 11: 7B01 R[B] = 0001 12: 2A0B R[A] = FFFF 13: 432A R[3] = R[2] ^ R[A] 14: 133B R[3] = R[3] + 1 15: 93FF stdout = R[3] 16: 0000 halt 42

TOY code II Q. What does this TOY program do? 10: 8210 R[2] = 8210 11: 7D01 R[D] = 0001 12: 2A0D R[A] = FFFF 13: 432A R[3] = 7DEF 14: 9315 M[15] = R[3] 15: 93FF stdout = R[3] 16: 9DFF stdout = R[D] 17: 0000 halt 43

Lecture 18: van Neumann Machines

TOY blocking and tackling III Q. (F11) Suppose that R[2] contains a small integer x. Match each instruction with a description of the value of R[2] after it is executed. 1000 4222 1222 5222 E022 7022 1202 G A B E G G G A. 0 B. 2x C. x 2 D. 2 x E. x2 x F. x 2 G. x H. No match 45

TOY code with a loop I Q. [S11] Consider this TOY program. 20: 2AAB R[A] = R[A] - R[B] 21: DA20 if (R[A] > 0) PC = 20 22: CA24 if (R[A] == 0) PC = 24 23: 1AAB R[A] = R[A] + R[B] 24: 0000 halt A. Give the result when R[A] is 001A and R[B] is 0008. R[A]: 0002 R[B]: 0008 B. Give the result when R[A] is 5EAB and R[B] is 0010. R[A]: 000B R[B]: 0010 C. Give equivalent Java code. a = a % b ; 46

TOY code with a loop II Q. [S2012] What does this TOY program punch? 0F: 000N 10: 840F R[4] = M[0F] 11: 4555 R[5] = 0000 12: 7601 R[6] = 0001 13: 1554 R[5] = R[5] + R[4] 14: 2446 R[4] = R[4] - 1 15: D413 if (R[4] > 0) PC = 13 16: 95FF stdout = R[5] 17: 0000 halt A. N + (N 1) + (N 2) +... + 1 = N(N + 1)/2 Q. Largest value in 0F with no overflow? A. 0100 47

TOY code with a loop III Q. [Ex. 6.3.21] What does this TOY program punch? 10: 7101 R[1] = 0001 D0: 0001 11: 72D0 R[2] = 00D0 D1: 00D6 12: 1421 R[4] = R[2] + R[1] D2: 0005 13: A302 R[3] = M[R[2]] D3: 00D8 14: 93FF stdout = R[3] D4: 0004 15: A204 R[2] = M[R[4]] D5: 00D2 16: D212 if (R[2] > 0) PC = 12 D6: 0002 17: 0000 halt D7: 00DA D8: 0006 D9: 0000 A. 0001 0002 0003 0004 0005 0006 DA: 0003 DB: 00D4 48

Key idea I Q. Can a TOY do anything that a UTM can (and vice-versa)? NO HALT YES...... 49

Key idea II Q. Can a TOY do anything that your computer can (and vice-versa)? 50

Lecture 19: Combinational Circuits

Boolean logic I Q. [Ex. 7.1.3] Give a truth-table proof showing that x + yz = (x + y)(x + z). A. x y z yz x + yz x + y x + z (x + y) (x + z) 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 52

NAND gate Q. Give a circuit that implements the NAND function. x y NAND x NAND y ( xy )' 0 0 1 0 1 1 1 0 1 1 1 0 Hints. x y x+y x y xy x y A. ( xy )' 53

Notation x y Q. Why this? and not this? ( xy )' NAND x y A. ( xy )' A. Eliminates a layer of abstraction (stay tuned). 54

Simple circuits I Q. [Spring 2014] Label each circuit with the letter corresponding to its output. X 0 A. X Y E. NAND X 1 NAND X NAND output output output F. F. NAND X NAND Y NAND NAND output NAND A. output A. 1 B. 0 C. xy D. x'y' E. xy + y' F. x' 55

Simple circuits II Q. [Spring 2013] Label each circuit with the letter corresponding to its output. X OR Y NOT D. output X NOT Y NOT F. A. always 1 B. always 0 X NOT Y NOT E. OR X output Y A. C. 1 iff X and Y are equal D. 1 iff X and Y are both 0 E. 1 iff X and Y are not equal AND AND NOT F. 0 iff X and Y are both 1 OR output OR OR output 56

Boolean logic II Q. [F 2014] Give a truth table for EVEN PARITY (number of 1s in inputs is even). A. x y z EVEN PARITY 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 57

Combinational circuit Q. [F 2014] Which circuit is computing EVEN PARITY for 1 1 0? 58

Incrementer Q. [7.3.18] Draw a circuit that increments a 4-bit number. c4 c3 c2 c1 1 A. x3 x2 x1 x0 z3 z2 z1 z0 xi ci ci+1 0 0 0 carry bit 0 1 0 1 0 0 1 1 1 xi ci zi 0 0 0 sum bit 0 1 1 1 0 1 1 1 0 59

Incrementer Q. [7.3.18] Draw a circuit that increments a 4-bit number. c4 c3 c2 c1 1 A. x3 x2 x1 x0 z3 z2 z1 z0 xi ci ci+1 0 0 0 carry bit 0 1 0 1 0 0 1 1 1 xi ci zi 0 0 0 sum bit 0 1 1 1 0 1 1 1 0 60

Lecture 20: CPU

Number representation Q. (Spring 2013 Q1) Why can 3/2 be represented as an exact double in Java but 1/10 cannot? A. No questions on floating point representation in this exam. A. 3/2 = 1 + 1/2, but no way to represent 1/10 as sum of decreasing powers of 1/2. 62

Circuit components Q. (Spring 2012 Q5) How to write the truth table? A. Try all possibilities. x y x y z f 0 0 0 0 0 0 1 1 A multiplexer switches the addressed input value to the output (p. 942) z y 1 x MUX 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 Q. Do we need to memorize what the complex circuits are composed of? A. No, you need to know what they do. 63

Sequential circuit I Q. (Ex. 7.4.3) Draw the response of this circuit to the given clock signal. clock A. output 64

Sequential circuit II Q. (Ex. 7.4.16) Draw the response of this circuit to the given clock signal. A. clock z0 z1 ~z3 ~z2 ~z1 ~z0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 z2 z3 65

Matching I Q. (Fall 2014 Q10) Identify each of the CPU components as combinational or sequential. combinational sequential ADDR MUX ALU CLOCK CONTROL IR MEMORY PC R R MUX 66

Matching II Q. (Fall 2014 Q10, modified) Match each CPU component to a description. ADDR MUX ALU CLOCK CONTROL IR MEMORY PC R R MUX B. I. H. D. G. F. A. C. E. A. holds address of current instruction B. inputs from IR and PC C. contents ultimately come from one of three sources D. decodes instructions E. selects register inputs F. big sequential circuit G. holds current instruction H. sequential circuit that produces periodic pulses I. computes boolean function values 67

Data paths I Q. (Spring 2015 Q7) Why is A checked as a needed data path for every instruction? OLD NOTATION A is the path from the PC to the MA mux A. Need this path to fetch the instruction. Q. How do we study from Lecture 20? A. Read Chapter 7. 68

Data paths Q. (Spring 2015 Q7) Check all the boxes that correspond to the datapaths needed to fetch and execute the following TOY-8 instructions. A B C D E ADD LOAD STORE BRANCH ZERO 69

TOY-8 CPU RUN CLOCK MEMORY ALU ALU FETCH FETCH WRITE EXECUTE EXECUTE WRITE MEMORY MEMORY WRITE ALU ADD CONTROL CONTROL HALT PC ALU XOR ALU AND PC PC LOAD PC INCREMENT R MUX 3-way R MUX ALU R MUX MEM PC WRITE R MUX IR R R R WRITE ADDR MUX PC ADDR MUX IR addr MUX 2-way IR IR IR WRITE 70