Computer Architecture Preliminary Exam Syllabus

(Spring 2000)

Prof David Culler
Prof John Kubiatowicz
Prof David Patterson
Prof John Wawrzynek

Introductory and Overview Material:

Many of the topics of this exam are well covered in "Computer Architecture: a Quantitative Approach, Second Edition" by Hennessy and Patterson.  This forms the core material and should be well understood. In addition,  a good recent collection of papers in computer architecture is "Readings in Computer Architecture" by Mark Hill, Normal Jouppi, and Gurindar Sohi.

For background material, the undergraduate text "Computer Organization and Design, the Hardware/Software Interface, Second Edition" by Hennessy and Patterson contains a good introduction to basic material, including a review of basic arithmetic and the five-stage pipeline.

Students are expected to have a working knowledge of the following topics:

In addition, students should be thoroughly familiar with a some modern processor. Examples might include the Alpha 21x64, the R10000, the UltraSparc, etc.

The following list of reading topics can help students gain a solid working knowledge of these topics.

Historical Papers:

Students should review their historical papers and be aware of some of the original arguments for RISC and out-of-order execution.  Also, the ISCA Retrospective is an important source of some of the original insights and motivations for important research projects.  Note that many of these papers are included in "Readings in Computer Architecture" by Mark Hill, Normal Jouppi, and Gurindar Sohi.

Basics of Computer Arithmetic:

Appendix A of "Computer Architecture: a Quantitative Approach, Second Edition" by Hennessy and Patterson contains some basic information on computer arithmetic.  Also, see chapter 4 of  the undergraduate text "Computer Organization and Design, the Hardware/Software Interface, Second Edition" by Hennessy and Patterson.

Basic and Advanced Pipelining:

Review Chapters 3 and 4, as well as Appendix B of "Computer Architecture: a Quantitative Approach, Second Edition" by Hennessy and Patterson.  Also, chapters 5, 6, and 7 of  the undergraduate text "Computer Organization and Design, the Hardware/Software Interface, Second Edition" by Hennessy and Patterson. Make sure to thoroughly understand the Smith and Pleszkun paper below.

Papers on Out-Of-Order Execution:

VLIW Papers:

Other Relevant Advanced Pipelining Papers:

Prediction Technologies:

Thoroughly review Chapter 4 of "Computer Architecture: a Quantitative Approach, Second Edition" by Hennessy and Patterson.  Note that this chapter is a bit light on prediction technology, so we have supplemented below with relevant papers.

Papers on Prediction:

Caching and Memory Technology:

Chapter 5 of "Computer Architecture: a Quantitative Approach, Second Edition" by Hennessy and Patterson contains extensive discussion of caching technologies.  The relevant papers below really supplement this information.

Papers On Caching and Prefetching :

Parallel Processing and Cache Coherence:

Students should be aware of basic technology for parallel processing.  This includes understanding of memory models and cache coherence, as well as an awareness of experimental prototypes.  Chapter 8 of  "Computer Architecture: a Quantitative Approach, Second Edition" by Hennessy and Patterson contains some basic material on parallel processing. A recent book that covers many topics of parallel computing is Parallel Computer Architecture: A Hardware/Software Approach by David E. Culler and Jaswinder Pal Singh.

Papers on Cache Coherence:

Papers on Experimental Parallel Machines:

Disk Technology and other types of I/O:

See Chapter 6 of "Computer Architecture: a Quantitative Approach, Second Edition" by Hennessy and Patterson.  This contains a lot of relevant material.  Make sure to understand the basic performance metrics for disks and file systems as presented in this chapter.  Further, queueing theory for M/G/1 queues is presented in the context of disk I/O in this chapter.

Networking (TCP/IP and Fast Networking):

Students are expected to have a basic understanding of networking issues, the TCP/IP protocol stack, and fast networking interfaces (for parallel processors).  In addition, students should be aware of the basic issues in deadlock avoidance for network routers.

General Networking:

Network Router Design/Deadlock Avoidance:

Network Interface Design:

Queueing Theory and Basic Error Correction Codes:

Students should understand the basic M/M/1 and M/G/1 queues, as well as simple Hamming codes.

Reading on Queueing Theory:

Reading on Error Correction:

Technology and Design Tradeoffs:

  • Students are assumed to have a basic understanding of technology issues and tradeoffs. One good source of information is "Circuits, Interconnections, and Packaging for VLSI" by H. B. Bakoglu.  However, this contains some pretty advanced material and should not be considered "required reading" as a whole. A good basic text is "Application-Specific Integrated Circuits," by Michael John Sebastian Smith, Addison-Wesley, 1997. This text is online at: http://www-ee.eng.hawaii.edu/~msmith/ASICs/HTML/ASICs.htm.  Students should have basic understanding of issues of technology scaling, wire resistance, basic memory technologies, and IC implementation alternatives, among other things.  Students should also understand current trends in modern VLSI processor design, how advances in processing effect architecture, and how advances are used to improve performance, cost, power, or all.
  • Relevant Reading: