CS 154 Final Exam Review

Prof. Fred Chong
Department of Computer Science
University of California at Santa Barbara


DISCLAIMER: This review sheet is not guaranteed to be all-inclusive, but I will attempt to cover the majority of important topics in this list.
This final will emphasize the material covered since the midterm, but some of the exam questions will be comprehensive. That is, you should use the review sheets for the midterm, go back over your midterm, and look at exams from previous years.

Performance Metrics

  • Know the difference between throughput and latency. Know what kind of optimizations affect them.
  • Know the problems with "MIPS" and "MFLOPS" as performance metrics.
  • Understand when to use geometric and arithmetic mean to summarize performance.

    Pipelining

  • For both the DLX pipeline in the book and the pipelined MIC-1, understand what causes hazards and how to detect them. Specifically, understand which pipeline register values to compare when trying to detect a hazard. Also understand how to avoid hazards through data forwarding when possible.
  • For both the DLX pipeline in the book and the pipelined MIC-1, understand when and for how long to stall to avoid a hazard.
  • Understand the hazards involved in dynamic instruction scheduling

    Caching and Virtual Memory

  • Understand the basic operation of caches and know how to simulate them by hand. Understand the parts of physical address: tag bits, index bits, and offset bits.
  • Know the operation and performance of advanced caching techniques (such as prefetch buffers and victim caches).
  • Understand the issues with address translation, TLBs, and page tables.

    Multiprocessors

  • Understand the following metrics for interconnection networks: diameter, total bandwidth, and bisection bandwidth.
  • Be familiar with the following networks: torii, hypercubes and butterflies. Know how to measure network metrics for them. How many switches and links are used in each network?
  • Understand what speedup is.
  • Understand that a parallel program only runs as fast as the slowest processor. What happens when the amount of work does not divide evenly into the number of processors?
  • Understand the basics of atomicity and synchronization and why it is needed in parallel programs.
  • Practice problems from Patterson and Hennessey: 9.4, 9.7
  • Also study the multiprocessor problems on the practice final W98.

    Discussion Material

  • You are responsible for the material presented in discussion.
    Last updated June 2007
    chong@cs.ucsb.edu