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