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