CS 207
Final Exam
Ondich
Due 5:00 PM Monday, June 5, 2000

For this exam, you may not consult with people other than Jeff Ondich. Otherwise, you may use any sources of information, including books and the Internet.

Most of the questions on this exam can be answered correctly in very few sentences. Brevity and clarity are desirable, so feel free pursue them both.

Have fun.

I: Stalling

(15 points) Now that you're familiar with the detailed operation of the pipelined datapath of figure 6.30 on page 470 of Patterson and Hennessy, it's time to make some changes to it.

Consider the beq instruction. By the time the datapath determines whether to branch or just move on, several of the instructions immediately following the beq instruction have been fetched. If the branch is taken, then those instructions need to be ignored, and fetching needs to take place starting at the branch destination.

Modify the datapath of figure 6.30 so that whenever a beq instruction actually branches, the incorrectly fetched instructions don't do any damage as they pass through the pipeline. Please draw your additions on a copy of figure 6.30, and give me a few sentences explaining what you've done and why.

II: Carry Look-Ahead Adders

(12 points)
  1. Suppose you have a 32-bit ripple-carry adder, and that each gate in the adder (AND, OR, XOR, NOT, etc.) has a propagation delay of 5 ns. What is the propagation delay of the whole adder? Explain your answer clearly.

  2. Read about carry look-ahead addition in Chapter 4 of Patterson and Hennessy.

  3. What is the propagation delay of an 8-bit carry look-ahead adder? (You may assume "infinite hardware" as on page 242, and also that a many-input AND gate has the same propagation delay (5ns) as a 2-input AND gate.)

  4. If you build a 32-bit adder by stringing four 8-bit carry look-ahead adders together (wiring the carry-out bit of one 8-bit module to the carry-in bit of the next), what is the propagation delay of the adder as a whole?

  5. How many gates are in your 32-bit ripple-carry adder?

  6. How many gates are in your 32-bit adder built out of four 8-bit carry look-ahead adder?

III: The Obligatory Foolish Question

(3 points) Please tell me a joke.

IV: Overclocking

(12 points) There's an interesting Web site called Tom's Hardware Guide, where Tom provides spectacularly detailed information about computer hardware. One of Tom's favorite topics is "overclocking," which you can learn about at http://www.tomshardware.com/overclock.html and http://www.tomshardware.com/overclocknews.html.

  1. In terms of performance as measured in Patterson and Hennessy, pages 62-63, how does overclocking improve performance? If viewed through the lens of Amdahl's law, is overclocking a productive way to improve performance, or not?

  2. According to Tom, there's one big danger in overclocking your computer. What is it? How does he recommend you deal with that danger?

  3. Evidently, many people believe overclocking to be unethical. Based on Tom's rebuttal, briefly reconstruct their arguments. Do you agree with Tom, his critics, or neither?

  4. What has Intel done to prevent overclocking? Under what conditions does Tom say that Intel has chosen not to prevent overclocking, and why?

  5. In Tom's review of some Intel Celeron chips ( http://www6.tomshardware.com/cpu/99q1/990114/), he describes steps Intel has taken to prevent the Celeron from running too fast. What are those steps, and why did Intel take them?

V. That's all, folks

Thanks for a great term. Have a pleasant summer.