EECE 7095: Introduction to Computer Architecture
Overview
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).
Where is everything?
Everything for this class will be found in these webpages. The lecture slides I use in class can all be found by following
links in the "Lecture Notes" section of this webpage.
I look forward to working with you this fall semester. If we all work together, we can make this a fruitful and productive
semester. I am hopeful that this will be a great experience for all of us.
Course Planning
Office Hours
All day Tues/Thursday until 4pm.
Reading Materials
- J. L. Hennessy and D. A. Patterson, Computer Architecture: A Quantitative Approach, 6th
edition, Morgan Kaufmann Publishers, Inc., San Mateo, California, 2019. (ISBN: 9780128119051).
- 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).
- I have multiple links professing to show "Latency numbers every programmer should know".
I first found this on hacker news.
Lecture Notes
- Introduction
- Historical Overview
- Prehistory
- History
(See also Appendix M from the book)
- A Golden Age for Computer Architecture, David Patterson. ACM TECHTalks. (link appears to be dead)
(Slides) (local copy of video)
- Notes summarizing the first four chapters of Myers' text.
- Chapter 1: Fundamentals of Computer Design
- Appendix A: Instruction Set Principles
- Appendix B: The Memory Hierarchy
- Chapter 2: Optimizations of the Memory Hierarchy
- Cache Optimizations
- Virtualization
- Appendix C: Basic Pipelining
- Chapter 3: Instruction Level Parallelism (ILP)
- Chapter 4 Data Parallelism
- Chapter 5: Thread-Level Parallelism
- Task Level Parallelism
- Coherency, Consistency, and Synchronization
- Primitives for Parallel Programming
- Large Scale Multiprocessors
Additional Slides on the IBM Blue Gene Machines
- Appendix I: Large Scale Multiprocessors (Read this)
- Appendix F: Interconnection Networks (Optional reading)
- Chapter 6: Warehouse Computing
- Extra Material from James Hamilton (Amazon Web
Services Team). I encourage you to browse his slides and videos.
- Appendix D: Storage Systems
- lecture notes
- Chapter 7: Domain Specific Architecture (DSA)
- Multi-Domain Targeted Architectures
Sample Exams from Previous Years