Date | Post | Link |
---|---|---|
02-Sep-2024 | Course Webpage is Up | link |
02-Sep-2024 | Lab0 (not graded, but expected completion Sep 9) | link |
06-Sep-2024 | Quiz 1 (available at 2 PM, due Mon Sep 9 at 11:59 PM) | link |
06-Sep-2024 | gem5 tutorial (not graded, expected completion Sep 14) | link |
09-Sep-2024 | Complete slurm tutorial (not graded, expected completion Sep 14) | link |
09-Sep 2024 | Assignment 1 (due Sep 27 at 11:59 PM) | link |
25-Sep 2024 | Assignment 2 (due Oct 15 at 11:59 PM) | link |
14-Oct 2024 | Assignment 3 (due Oct 28 at 11:59 PM) | link |
23-Oct 2024 | Project Information | link |
27-Oct 2024 | Assignment 4 (due Nov 13 at 11:59 PM) | link |
28-Oct 2024 | Assignment 5 (due Dec 04 at 11:59 PM) | link |
Please read email policy on policy page.
Any course-related questions should be posted to the groups only; no personal email.
Ensure you tag the messages properly.
This course will use canvas for online quizzes, for turning in assignments and project reports, and to view your grades.
This is mainly an in-person class. Lectures are in AQ3150 on Tuesdays and Thursdays. We encourage all students to attend the class in person and participate in the classroom discussions. Class participation may count towards your grade.
We undestand that some students may miss class because of reasons outside their control. If you are sick with Covid or any other contagious illness, we ask you not to attend lectures in person. We requested SFU IT to record lectures from the classroom. Students who miss class can ask for a link to to lecture recordings, which will be provided at the instructors’ discretion.
Principles of the architecture of computing systems. Topics include: superscalar processor microarchitecture, speculative execution, cache and memory hierarchy, multiprocessors, cache coherence, memory consistency, implications of technology on architecture, parallel architectures (multi-threading, GPUs, vector processors), domain-specific accelerators.
Basic Concepts of superscalar processor microarchitectures: structural/data/control dependences, register renaming, out-of-order issue/execution, branch prediction, precise interrupts, instruction scheduling, memory ordering
Cache hierarchy: memory-level parallelism, cache management (prefetching, replacement, insertion policies, dead block prediction)
Multiprocessor basics: parallel programs, shared-memory and distributed memory multiprocessors, cache coherence protocols (snooping and directory protocols), memory consistency models
Main memory architecture: DRAM basics, memory controllers
Impact of technology on architecture: Memory and logic power, active and idle power.
Multi-threading: Simultaneous multi-threading, speculative multi-threading, multi-core processors, runahead execution.
Other architectures (time permitting): Domain-specific accelerators, Vector architectures, Single-Instruction Multiple-Data architectures, Dataflow architectures, Graphics Processing Units, Very-Large Instruction Word architectures
This course is a hands-on, programming-heavy course. Expect to put in significant effort in C++ programming and analyzing hardware design tradeoffs. We will discuss the fundamental design and engineering trade-offs in computer architecture at every level.
This course teaches the principles of the architecture of computing systems. Topics include: superscalar processor microarchitecture, speculative execution, cache and memory hierarchy, multiprocessors, cache coherence, memory consistency, implications of technology on architecture, parallel architectures (multi-threading, GPUs, vector processors), domain-specific accelerators.
Solid programming skills (C/C++). Solid background in Unix/Linux. If unsure whether you have the prerequisites, talk to the instructor! Programming assignments will require the student to implement programs parts in a simulator. Strong knowledge of C/C++ and the UNIX environment is assumed.
For homeworks and programming assignments, students are encouraged to consult each other, the TA, the instructor, or anyone else for that matter. **However, the assistance offered or accepted should not go beyond a discussion of the problem. You can use the following guideline: When it comes time for you to write your program or your homework paper, do not use any written material from the discussion.
If you can reconstruct the discussion and complete the solution on your own, then you have learned the material (and that is the objective of this course!). For team projects, you should make sure to identify division of labor in your README. While projects will generally be graded as a team rather than separately for each individual, corrective action could be taken.
We assume the following strong linux environmental experience; typically obtained through CMPT 127 or related course at SFU. If you do not have this experience; please head to the tutorials page and watch the videos we recommend. All assignments and lab in this course are administered through the linux environment.
All course information on this web page is tentative and could be in error. It can also change at any time. Confirm crucial dates or information with your instructor in person during class
Students are expected to attend all classes: announcements about assigned readings, homeworks and exams will be made available in class. Such announcements may not be made on this web page, so don’t rely on information here instead of attending class.