EECS 7095: Introduction to Computer Architecture


Computer Architecture studies (i) the techniques used to design and implement the principle components of a computer system and (ii) the mechanisms that can be used to quantitatively evaluate the expected performance capabilities of the different design possibilities. Hopefully you will find the topic of this class enjoyable. However, there is a substantial amount of reading required for this class. Please plan accordingly.

The textbook accompanying this class is well regarded and is that basis upon which a solid foundation of computer architecture can be built. The textbook is, however, only a beginning. Architecture is a fast moving field and new techniques and design solutions are constantly emerging.

Finally, the quantitative techniques and methods in this book are a solid foundations from which you can evaluate design alternatives. However, these are not the only methods and you should not be afraid to explore and use alternate methods that might be suitable. Furthermore, the quantitative techniques in this text can easily be generalized to apply to other situations where various design alternatives are being considered. Do not hesitate to carry the idea of quantitative assessment to other design processes.

As always, if you have any questions/problems, please feel free to drop by my office (836 Rhodes Hall) to discuss your issues (tues/thurs please).

Course Planning

Reading Materials

  1. J. L. Hennessy and D. A. Patterson, Computer Architecture: A Quantitative Approach, 6th edition, Morgan Kaufmann Publishers, Inc., San Mateo, California, 2019.
  2. G.J. Myers, "Requisites for Improved Architectures," in Tutorial on Advanced Microprocessors and High-Level Language Computer Architecture, V. Milutionovic (Ed.), 1986, pp 27--62. (this is also a chapter in his book titled Advances in Computer Architecture, 1992).

Lecture Notes

  1. Introduction
  2. Prehistory
  3. History (See also Appendix M from the book)
  4. Notes summarizing the first four chapters of Myers' text.
  5. Chapter 1: Fundamentals of Computer Design
  6. Appendix A: Instruction Set Principles and Examples
  7. Appendix B: The Memory Hierarchy
  8. Chapter 2: Optimizations of the Memory Hierarchy
    1. Cache Optimizations
    2. Virtualization
  9. Appendix C: Basic Pipelining
  10. Chapter 3: Instruction Level Parallelism (ILP)
  11. Chapter 4/Appendix G: Data Parallelism and Vector Computing
  12. Chapter 5: Thread-level Parallelism
    1. Multicores, Multiprocessors and Clusters
    2. Task Level Parallelism
    3. Examples of Hardware Solutions
    4. Coherency, Consistency, and Synchronization
  13. Appendix I: Large Scale Multiprocessors
    1. Appendix F: Interconnection Networks (optional reading)
    2. lecture notes
    3. Future Possibilities/Directions
  14. Chapter 6: Warehouse Computing
    1. Extra Material from James Hamilton (Amazon Web Services Team). I encourage you to browse his slides and videos.
  15. Appendix D: Storage Systems
    1. lecture notes
  16. Chapter 7: Domain Specific Architecture (DSA)

Sample Exams from Previous Years