CS/ECE 6810: Computer Architecture
Course Information
- Time: Mon/Wed 11:50AM - 01:10PM
- Location: WEB 2230
- Instructor: Mahdi Nazm Bojnordi, office hours: Mon 03:00 - 05:00PM, MEB 3418
- Teaching Assistants: Venkatraj Reddy Sunkari, office hours: Tue 03:00 - 05:00PM, MEB 3421 (TA Lab.); Payman Behnam, office hours: Wed 03:00 - 05:00PM, MEB 3421 (TA Lab.);
- Pre-Requisite: CS 3810 or equivalent
- Textbook: Computer Architecture A Quantitative Approach - 5th Edition, John Hennessy and David Patterson
- Canvas is the main venue for class announcements, homework assignments, and discussions.
Important Policies and University Support
Please refer to the College of Engineering Guidelines for disabilities, add, drop, appeals, etc. Notice that we have zero tolerance for cheating; as a result, please read the Policy Statement on Academic Misconduct, carefully. Also, you should be aware of the SoC Policies and Guidelines.
Class rosters are provided to the instructor with the student's legal name as well as "Preferred first name" (if previously entered by you in the Student Profile section of your CIS account). While CIS refers to this as merely a preference, I will honor you by referring to you with the name and pronoun that feels best for you in class, on papers, exams, group projects, etc. Please advise me of any name or pronoun changes (and please update CIS) so I can help create a learning environment in which you, your name, and your pronoun will be respected.
The University of Utah values the safety of all campus community members. To report suspicious activity or to request a courtesy escort, call campus police at 801-585-COPS (801-585-2677). You will receive important emergency alerts and safety messages regarding campus safety via text message. For more information regarding safety and to view available training resources, visit SAFEU. Also, consider installing the SafeUT app on your phones.
Grading
The following items will be considered for evaluating the performance of students. The cutoffs for the letter grades will be >95(A), >90(A-), >85(B+), etc.
Fraction | Notes | |
---|---|---|
Homework Assignments | 30% | as scheduled below |
Midterm Exam | 30% | in-class, 11:50AM - 01:10PM, Mon., October 14th |
Final Exam | 40% | in-class, 10:30AM - 12:30PM, Fri., December 13th |
Homework Assignments
Homework assignments will be released on Canvas; all submissions must be made through Canvas. Only those submissions made before midnight will be accepted. Any late submission will be considered as no submission.
Release Date | Submission Deadline | |
---|---|---|
Homework 1 | Aug. 28th | Sep. 4th |
Homework 2 | Sep. 11th | Sep. 18th |
Homework 3 | Sep. 25th | Oct. 2nd |
Homework 4 | Oct. 30th | Nov. 6th |
Homework 5 | Nov. 13th | Nov. 20th |
Class Schedule (subject to change)
The following is a tentative class schedule that may be updated on a week-by-week basis during the course semester.
Date | Lecture | Required Reading | Recommended Reading | Assignment Release |
---|---|---|---|---|
08/19 | Logistics and Introduction | Sections 1.1-1.4 | Moore, "Cramming more components onto integrated circuits," Electronics Magazine, 1965. | |
08/21 | Performance Metrics | Sections 1.4-1.9 | ||
08/26 | Instruction Set Architecture | Appendix A | Charles Price, "MIPS IV Instruction Set," MIPS Technologies, Inc., 1995 | |
08/28 | Addressing Modes and Pipelining | Appendix C.1 | Homework 1 | |
09/04 | Pipelining: Hazards | Appendix C.2 | ||
09/09 | Pipelining: Branch and Multicycle Instructions | Appendix C.4-C.5 | ||
09/11 | ILP: Introduction | Section 3.1 | Homework 2 | |
09/16 | ILP: Compiler-based Techniques | Section 3.2 | Nicolau and Fisher, "Measuring the Parallelism Available for Very Long Instruction Word Architectures," IEEE Transactions on Computers, 1984 | |
09/18 | ILP: Control Flow | Section 3.3 | ||
09/23 | Branch Predictors | Section 3.3 | ||
09/25 | Dynamic Scheduling | Section 3.4 | Sodani and Sohi, "Dynamic Instruction Reuse," International Symposium on Computer Architecture, 1997 | Homework 3 |
09/30 | Out-of-Order Execution | Section 3.5 | Sohi, "Instruction Issue Logic for High-Performance, Interruptible, Multiple Functional Unit, Pipelined Computers," IEEE Transactions on Computers, 1990 | |
10/02 | Hardware-Based Speculation | Sections 3.6-3.9 | ||
10/07 | Fall Break | |||
10/09 | Fall Break | |||
10/14 | Mid-Term Exam | |||
10/16 | Load-Store Queue | Sections 3.10-3.12 | ||
10/21 | Memory Hierarchy Design | Appendix B | ||
10/23 | Cache Architecture | Appendix B | Wilkes, "Slave Memories and Dynamic Storage Allocation," IEEE Transactions on Electronic Computers, 1965 | |
10/28 | Cache Optimization | Sections 2.1-2.3 | Akanksha Jain and Calvin Lin, "Back to the Future: Leveraging Belady's Algorithm for Improved Cache Replacement," International Symposium on Computer Architecture, 2016 | |
10/30 | Virtual Memory and Address Translation | Section 2.4 | Homework 4 | |
11/04 | Main Memory System | Section 2.5 | ||
11/06 | DRAM System | Section 2.5 | ||
11/11 | DRAM Controller | Sections 4.1-4.3 | ||
11/13 | Advanced Memory Systems | Sections 4.1-4.3 | Mahdi Nazm Bojnordi and Engin Ipek. "PARDIS: A Programmable Memory Controller for the DDRx Interfacing Standards," International Symposium on Computer Architecture, 2012 | Homework 5 |
11/18 | Data-Level Parallelism | Sections 4.1-4.3 | ||
11/20 | Graphics Processing Units | Section 4.4 | ||
11/25 | Thread-Level Parallelism | Sections 5.1-5.2 | Tullsen et al., "Exploiting choice: instruction fetch and issue on an implementable simultaneous multithreading processor," International Symposium on Computer Architecture, 1996 | |
11/27 | Parallel Memory Architecture | Sections 5.3-5.4 | ||
12/02 | Shared Memory Systems | Section 5.6 | Sarita Adve and Kourosh Gharachorloo "Shared memory consistency models: A tutorial," Computer 29.12, pp. 66-76, 1995 | |
12/04 | Final Review |