The table below provides information on the required and optional readings for the course. Optional readings were provided for interested students to explore topics further and deepen their understanding of the course material.
Legend
Session Number
L: lecture
T: tutorial
Q: quiz
Topics
(A): Session taught by Professor Arvind
(J): Session taught by Dr. Joel Emer
Required Readings
H&P3: Hennessy, J. L., and D. A. Patterson. Computer Architecture: A Quantitative Approach, 3rd ed. San Mateo, CA: Morgan Kaufman, 2002. ISBN: 1558605967.
H&P2: Hennessy, J. L., and D. A. Patterson. Computer Architecture: A Quantitative Approach, 2nd ed. San Mateo, CA: Morgan Kaufman, 1995. ISBN: 1558603727.
P&H: Patterson, D. A., and J. L. Hennessy. Computer Organization and Design: The Hardware/Software Interface, 3rd ed. San Mateo, CA: Morgan Kaufman, 2004. ISBN: 1558606041.
SES # | TOPICS | REQUIRED READINGS | OPTIONAL READINGS |
---|---|---|---|
L1 | History of Calculation and Computer Architecture (A) |
H&P3, chapter 1, pp. 67-72.
H&P2, chapter 1, pp. 53-60. |
Burks, Arthur W., Herman H. Goldstine, and John von Neumann. Preliminary Discussion of the Logical Design of an Electronic Computing Instrument. Report to the U.S. Army Ordinance Department, 1946. Reprinted as: Bell and Newell. Computer Structures: Readings and Examples, chapter 4. New York, NY: McGraw-Hill, 1971. ISBN: 0070043574.
Babbage, Charles, and Others. Charles Babbage and His Calculating Engines: Selected Writings. Edited by Philip and Emily Morrison. New York, NY: Dover, 1961. ISBN: 0486200124. |
L2 | Influence of Technology and Software on Instruction Sets: Up to the Dawn of IBM 360 (A) |
H&P3, rest of chapter 1.
H&P2, rest of chapter 1. |
Amdahl, G. M., G. A. Blaauw, and F. P. Brooks, Jr. “Architecture of the IBM System/360.” IBM Journal of Research and Development, April 1964. Reprinted in: IBM Journal of Research and Development 44, no. 1/2 (2000). |
L3 | Complex Instruction Set Evolution in the Sixties: Stack and GPR Architectures (A) |
H&P3, chapter 2, pp. 90-129.
H&P2, chapter 2, pp. 69-96. |
|
T1 | Self-assessment Test and ISA | ||
L4 | Microprogramming (A) |
H&P3, chapter 2, pp. 129-158. H&P2, chapter 2, pp. 96-116. |
|
T2 | MIPS ISA, Bus-based Implementation, and Microprogramming | ||
L5 | Simple Instruction Pipelining (A) |
H&P3, appendix A, pp. 2-11 (Background: P&H, chapter 6).
H&P2, chapter 3, pp. 125-160 (Background: P&H, chapter 6). |
|
L6 | Pipeline Hazards (A) |
H&P3, appendix A, pp. 11-37.
H&P2, chapter 3, pp. 161-178. |
|
T3 | Microprogramming, Pipelining, and Hazards | ||
L7 | Multilevel Memories - Technology (J) |
H&P3, chapter 5, pp. 390-413.
H&P2, chapter 5, pp. 373-390. |
|
L8 | Cache (Memory) Performance Optimization (J) |
H&P3, chapter 5, pp. 413-460 and 478-489.
H&P2, chapter 5, pp. 390-439 and 457-474. |
Jouppi, Norm. “Improving direct-mapped cache performance by the addition of a small fully-associative cache and prefetch buffers.” In The Proceedings of 17th International Symposium on Computer Architecture (ISCA) Seattle, Washington, May 1990, pp. 364-373. |
Q1 | ISAs, Microprogramming, Simple Pipelining and Hazards | ||
L9 | Virtual Memory Basics (J) |
H&P3, chapter 5, pp. 460-478. H&P2, chapter 5, pp. 439-457. |
|
T4 | Quiz 1, Caches, and Virtual Memory Basics | ||
L10 | Virtual Memory: Part Deux (A) |
H&P3, appendix A, pp. 37-47.
H&P2, chapter 3, pp. 187-214. |
|
L11 | Complex Pipelining (A) |
H&P3, appendix A, pp. 37-78.
H&P2, chapter 3, pp. 187-214. |
|
Q2 | Caches, Virtual Memory | ||
L12 | Out of Order Execution and Register Renaming (A) |
H&P3, chapter 3, pp. 172-196.
H&P2, chapter 4, pp. 221-261. |
|
L13 | Branch Prediction and Speculative Execution (A) |
H&P3, chapter 3, pp. 196-259. H&P2, chapter 4, pp. 262-289 and 317-335. |
|
T5 | Quiz 2, Scoreboarding, Register Renaming, and Branch Prediction | ||
L14 | Advanced Superscalar Architectures (J) | ||
L15 | Microprocessor Evolution: 4004 to Pentium 4 (J) |
H&P3, chapter 3, pp. 259-283.
H&P2, chapter 4, pp. 335-359. |
|
Q3 | Complex Pipelines | ||
L16 | Synchronization and Sequential Consistency (A) |
H&P3, chapter 6, pp. 549.
H&P3, appendix I. H&P2, chapter 8, pp. 694-713. |
|
L17 | Cache Coherence (A) |
H&P3, chapter 6, pp. 549-590.
H&P3, appendix I. H&P2, chapter 8, pp. 654-693. H&P2, appendix E. |
|
L18 | Cache Coherence (Implementation) (A) |
H&P3, chapter 6, pp. 549-590.
H&P3, appendix I. H&P2, chapter 8, pp. 654-693. H&P2, appendix E. |
|
L19 | Snoopy Protocols (A) | ||
T6 | Sequential Consistency, Synchronization, Cache Coherence Protocols | ||
L20 | Relaxed Memory Models (A) |
H&P3, chapter 6, pp. 607-608 and 618-619.
H&P2, chapter 8, pp. 714-720. |
Adve, S., and K. Gharachorloo. “Shared memory consistency models: a tutorial.” In Technical Report WRL-TR 95/7, Digital Western Research Laboratory, September 1995. |
Q4 | SMPs, CC, Synch, Memory Models | ||
L21 | VLIW/EPIC: statically Scheduled ILP (J) |
H&P3, chapter 4, pp. 304-362.
H&P2, Chapter 4, pp. 223-240 and 284-317. |
|
L22 | Vector Computers (J) |
H&P3, appendix G.
H&P3, appendix B. |
|
T7 | Quiz 4 and VLIW | ||
L23 | Multithreaded Processors (J) |
H&P3, chapter 3, pp.272-273.
H&P3, chapter 6, pp. 608-615 and 635-636. |
Tullsen, D., S. Eggers, and H. Levy. “Simultaneous Multithreading: Maximizing On-Chip Parallelism.” In The Proceedings of the 22rd Annual International Symposium on Computer Architecture, June 1995.
Tullsen, D., S. Eggers, J. Emer, H. Levy, J. Lo, and R. Stamm, “Exploiting Choice: Instruction Fetch and Issue on an Implementable Simultaneous Multithreading Processor.” In The Proceedings of the 23rd Annual International Symposium on Computer Architecture, May 1996. |
L24 | Reliable Architectures (J) |
Reinhardt, S. K., and S. S. Mukherjee. “Transient Fault Detection via Simultaneous Multithreading.” In The Proceedings of the 27th Annual International Symposium on Computer Architecture, June 2000.
Biswas, R., R. Cheveresan, J. Emer, S. Mukherjee, P. Racunas, and R. Rangan. “Computing Architectural Vulnerability Factors for Address-Based Structures.” In The Proceedings of the 32nd Annual International Symposium on Computer Architecture, June 2005. |
|
T8 | Vector Computers, Multithreading and Reliable Architectures | ||
L25 | Virtual Machines (J) | H&P3, pp. 367-370. | |
Q5 | VLIW/Vector/Threads |