Fall 2022: CS/ECE 6810 Computer Architecture


General Information:


Prerequisites:

You are expected to know introductory computer architecture concepts, such as those covered in CS 3810 (textbook for 3810: Computer Organization and Design, Patterson and Hennessy, 5th edition). You will be well-served to re-visit some of the basic concepts in the 3810 textbook before the first day of class.


Covid Guidelines:

Please see the University's guidelines for Covid precautions. In particular, I'd like to emphasize the following: (i) You are all encouraged to get vaccinated, wear masks, and social distance. Such practices will keep you and your fellow students safe, and minimize Covid-related disruptions. (ii) Please stay home if you're unwell (you can watch compressed lecture videos to catch up). Please get tested and inform me if you receive a positive Covid test. (iii) Please don't hesitate to reach out to me in case of any problems or if you need any accommodations.


School of Computing 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, 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.


College Guidelines


SafeU Information

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, including helpful videos, visit SAFEU.


Special Needs:

The University of Utah seeks to provide equal access to its programs, services and activities for people with disabilities. If you will need accommodations in the class, reasonable prior notice needs to be given to the Center for Disability Services, 162 Olpin Union Building, 581-5020 (V/TDD). CDS will work with you and the instructor to make arrangements for accommodations. All written information in this course can be made available in alternative format with prior notification to the Center for Disability Services.


Grading:

The following is a tentative guideline and may undergo changes. Two exams will count for 60% of the final grade; one will be in October and the other during Finals week. The remaining 40% will be based on homework assignments. We have zero tolerance for cheating -- if your class rank in the assignments is significantly different from your class rank in the exams, only your rank in the exams will count towards your grade. We know you're juggling multiple activities and the assignment deadline may not always be favorable. I also anticipate students may be affected by illnesses in their immediate family. You are therefore allowed to skip two of the assignments -- use these freebies prudently. Late submissions will not be graded.


Cheating policy:

Working with others on assignments is a good way to learn the material and is encouraged. However, there are limits to the degree of cooperation that is permitted. Students may discuss among themselves the meaning of homework problems and possible approaches to solving them. Any written portion of an assignment, however, is to be done strictly on an individual basis. Note the School of Computing's Academic Misconduct Policy. BOTTOM LINE: You may not copy from another student or from any other source, and you may not allow another student to copy your work!! Any violation of the above is considered to be cheating and will result in a reduced or a failing grade in the class. TAs will be on the lookout for solution sets that appear very similar. Also, if your class rank in the assignments is significantly different from your class rank in the exams, only your rank in the exams will count towards your grade.


Video Resources

Screencast videos based on every lecture are already posted on YouTube (links below). I will not be recording in-class lectures. If you happen to miss the in-class lecture, I recommend watching the YouTube videos to catch up. Ideally, you'll attend the in-class lecture and watch the YouTube videos to reinforce concepts (either when solving homeworks or preparing for the exams).

YouTube Video Playlist

Nicer playlist created by a 6810 student


Homework Assignments:

Assignments will be posted here (almost) weekly. The deadline for assignments will typically be the start of class on Monday or Wednesday. In all cases, you will turn in responses as a pdf file on Canvas. All assignments will have an automatic 1.5 day penalty-free extension; beyond that, you will not be able to upload your submissions. There will be about 9 assignments, of which you are allowed to skip two (in other words, we will drop the two lowest scores among your 9 assignments).


Updated 2022 Class Schedule

Date Lecture Topic Slides Reading Videos Assignment
Mon, Aug 22 Logistics and Introduction, Trends. pptx ; pdf Chapter 1 (also review the pre-req textbook) No YouTube videos for this class.  
Wed, Aug 24 Metrics: Power. pptx ; pdf Chapter 1 YouTube Video 21 (Power and energy basics)
YouTube Video 22 (DFS and DVFS examples)
HW 1 posted
Mon, Aug 29 Metrics: reliability, cost, performance. pptx ; pdf Chapter 1 YouTube Video 1 (Benchmarks, latency, throughput, sum of exec times, sum of weighted exec times)
YouTube Video 2 (Geometric mean, CPU performance equation)
YouTube Video 3 (AM/HM/GM of IPCs, speedup/improvement)
 
Wed, Aug 31 Pipelining Basics. pptx ; pdf Chapter C (appendix) YouTube Video 4 (Pipelining analogy and basic instruction pipeline)
YouTube Video 5 (The role of clocks and latches, pipelining equations)
YouTube Video 6 (Description of the basic 5-stage pipeline)
HW 1 due
Mon, Sep 5 Labor Day Holiday        
Wed, Sep 7 Pipelining Hazards. pptx ; pdf Chapter C (appendix) YouTube Video 7 (Explains RISC/CISC architectures and Load/Store instructions)
YouTube Video 8 (Structural hazards)
YouTube Video 9 (Data dependences, data hazards, pipeline stalls)
HW 2 posted
Mon, Sep 12 Pipeline Extensions. pptx ; pdf Chapters C and 3 YouTube Video 10 (Data forwarding/bypassing, examples)
YouTube Video 11 (Control hazards, branch delay slots)
 
Wed, Sep 14 Pipeline Extensions. pptx ; pdf Chapters C and 3 YouTube Video 12 (Multi-cycle instructions, handling out-of-order instruction completions)
YouTube Video 13 (Precise exceptions and the reorder buffer)
YouTube Video 14 (The performance vs. pipeline depth curve)
HW 2 due ; HW 3 posted
Mon, Sep 19 Pipelining, Static ILP techniques. pptx ; pdf Chapters C and 3 YouTube Video 15 (Introduction to the compiler-based approach for high ILP)
YouTube Video 16 (Smart compiler scheduling and loop unrolling)
 
Wed, Sep 21 Static ILP techniques II. pptx ; pdf Chapters C and 3 YouTube Video 17 (VLIW and software pipelining)
YouTube Video 18 (Handling control hazards with predication)
YouTube Video 19 (Hoisting above a branch, handling exceptions)
YouTube Video 20 (Memory dependences and hoisting a load before a store)
HW 3 due ; HW 4 posted
Mon, Sep 26 Branch prediction. pptx ; pdf Chapter 3 YouTube Video 23 (Branch predictor introduction and 1-bit bimodal predictor)
YouTube Video 24 (2-bit predictor, indexing into a branch predictor table)
 
Wed, Sep 28 Branch prediction, out-of-order execution. pptx ; pdf Detailed Notes on Out-of-order execution. YouTube Video 25 (Global predictor)
YouTube Video 26 (Local predictor, tournament predictor, branch target buffer)
YouTube Video 27 (Out-of-order design 1, with a rename register file, part 1)
YouTube Video 28 (Out-of-order design 1, with a rename register file, part 2)
HW 4 due
Mon, Oct 3 Review Session. pptx ; pdf      
Wed, Oct 5 Midterm Exam.        
Mon, Oct 10 Fall Break.        
Wed, Oct 12 Fall Break.        
Mon, Oct 17 Out-of-order implementations. pptx ; pdf Detailed Notes on Out-of-order execution. YouTube Video 29 (Out-of-order design 2, with a physical register file, part 1)
YouTube Video 30 (Out-of-order design 2, with a physical register file, part 2)
 
Wed, Oct 19 Out-of-order examples, Load/Store Queues. pptx ; pdf Detailed Notes on Out-of-order execution. YouTube Video 31 (Stalls, issue width, window size, WAW and WAR hazards)
YouTube Video 32 (Handling branch mispredicts, waking up dependents in an issue queue)
YouTube Video 33 (Handling memory dependences with a load-store queue)
YouTube Video 34 (What is simultaneous multithreading (SMT), what resources are shared/private in SMT)
YouTube Video 35 (Performance impact of SMT)
HW 5 posted
Mon, Oct 24 LSQ, Caching. pptx ; pdf Chapters B, 2. YouTube Video 36 (Organization of a multi-core cache hierarchy)
 
Wed, Oct 26 Cache organizations. pptx ; pdf Chapters B, 2. YouTube Video 37 (Organization of a single cache -- sets, ways, tags, associativity, direct-mapped, index, offset)
HW 5 due; HW 6 posted
Mon, Oct 31 Caching Policies, Virtual Memory. pptx ; pdf Chapter 2. YouTube Video 38 (Compulsory, capacity, and conflict misses)
YouTube Video 39 (Inclusion, handling writes, serial-tag-data access)
YouTube Video 40 (Victim caches, replacement policies, stream prefetchers)
YouTube Video 41 (Large caches, last level cache (LLC), shared and private caches)
YouTube Video 42 (UCA/NUCA caches, a tiled shared LLC)
YouTube Video 43 (Virtual memory, page tables)
 
Wed, Nov 2 Virtual memory. pptx ; pdf Chapter 2. YouTube Video 44 (Page tables, TLBs)
YouTube Video 45 (Accessing the TLB and cache, aliasing)
YouTube Video 46 (Virtually Indexed Physically Tagged Cache)
HW 6 due
Mon, Nov 7 DRAM-based memory systems. pptx ; pdf Detailed notes on memory systems. YouTube Video 47 (DRAM cell intro, DRAM chips, DIMMs, memory channel/bus, memory rank)
YouTube Video 48 (DRAM banks, arrays, RAS/CAS, row buffers, DDR)
YouTube Video 49 (More details on rank, bank, array, row buffer)
YouTube Video 50 (Row buffer management, row buffer hit/miss/conflict, open/close page policies)
 
Wed, Nov 9 Memory systems. pptx ; pdf Detailed notes on memory systems. YouTube Video 51 (Handling reads and writes, write buffer, address mapping policies)
YouTube Video 52 (Scheduling policies - FCFS, FR-FCFS, Stall Time Fair, refresh, error correction)
YouTube Video 53 (State-of-the-art memory systems, buffer chips, increasing bandwidth and capacity, 3D stacking)
YouTube Video 54 (Emerging non-volatile cells (phase change memory - PCM), silicon photonics)
HW 7 posted
Mon, Nov 14 Security. pptx ; pdf   Meltdown
Spectre
 
Wed, Nov 16 Multiprocessors, Coherence. pptx ; pdf Chapter 5. YouTube Video 55 (Symmetric shared-memory multiprocessors, distributed shared-memory multiprocessors)
YouTube Video 59 (Introduction to cache coherence protocols, write propagation, write serialization, snooping-directory, write update-invalidate)
YouTube Video 60 (Detailed example of a snooping-based protocol -- part 1)
YouTube Video 61 (Detailed example of a snooping-based protocol -- part 2)
YouTube Video 62 (Detailed example of a directory-based protocol -- part 1)
YouTube Video 63 (Detailed example of a directory-based protocol -- part 2)
HW 7 due; HW 8 posted
Mon, Nov 21 Multi-threading, synchronization. pptx ; pdf Chapter 5. YouTube Video 56 (Overview of shared-memory and message-passing programming models)
YouTube Video 57 (Example of the Ocean kernel and its parallelization with shared-memory)
YouTube Video 58 (Example of the Ocean kernel and its parallelization with message-passing)
YouTube Video 64 (Synchronization primitives, atomic exchange, test and set)
YouTube Video 65 (Effect of caching locks, test and test and set)
 
Wed, Nov 23 Synchronization, Consistency. pptx ; pdf Chapter 5. YouTube Video 66 (Load-linked and store-conditional for constructing locks)
YouTube Video 67 (Further reducing coherence traffic with ticket and array-based locks)
YouTube Video 68 (Example multi-threaded programs and sequentially consistent results)
YouTube Video 69 (Hardware support for sequential consistency, example of how SC is violated if program order is violated)
YouTube Video 70 (Example on how a coherence protocol may violate write atomicity and sequential consistency, hardware support for sequential consistency, safe optimizations to speed up the hardware)
YouTube Video 71 (A hardware-software approach to improving performance with relaxed consistency models and fences)
HW 8 due
Mon, Nov 28 Interconnection Networks. pptx ; pdf Appendix F. YouTube Video 78 (Introduction to network-on-chips, deterministic and adaptive routing, deadlock example in networks and turn model)
YouTube Video 79 (Turn model and deadlock avoidance with adaptive routing, numbering links to prove deadlock freedom)
YouTube Video 80 (Defining messages, packets, flits)
YouTube Video 81 (Flow control, bufferless, circuit switching, store-and-forward, cut-through, wormhole routing)
YouTube Video 82 (Virtual channels)
YouTube Video 83 (Allocating resources (virtual channel, buffers, physical channel) before a hop, buffer management, deadlock avoidance with VCs)
YouTube Video 84 (Router power breakdown, router pipeline stages, RC-VA-SA-ST)
YouTube Video 85 (Speculative router pipelines with 1, 2, and 3 stages)
YouTube Video 86 (Crossbars, multi-stage crossbars (Omega network), bisection bandwidth)
HW 9 posted
Wed, Nov 30 Networks, Datacenters, Reliability. pptx ; pdf Chapter 6. YouTube Video 87 (Performance and cost for different topologies, k-ary d-cubes)
 
Mon, Dec 5 Accelerators. pptx ; pdf   GPUs (Basics of GPU architectures)
HW 9 due
Wed, Dec 7 Review Session. pptx ; pdf      
Tue, Dec 13 (1pm - 3pm) Final Exam