Skip to main content

CMPT 750/450: Computer Architecture


Fall 2021

Announcements

Date Post Link
04-Sep-2021 Course Webpage is Up link
09-Sep-2021 Gem 5 tutorial (not graded, but expected completion Sep 14) link
11-Sep-2021 Complete slurm tutorial (expected completion Sep 14) link
11-Sep 2021 Assignment 1 (due Sep 24 at 11:59 PM) link
24-Sep 2021 Assignment 2 (due Oct 13 at 11:59 PM) link

Piazza Groups for Discussion

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.

Canvas page also includes lecture and office hours zoom links

Canvas Course Page

Laptop/Computer Requirements

  • A computer. with a webcam, required to take a verification photo during quizzes (and optionally also for office hours, etc). If you don’t have a webcam but do have a phone, I’ll point out EpocCam.
  • that is powerful enough to run a VM: at least 8 GB memory, 20 GB disk, reasonably decent processor (not too old, not a Celeron or macbook air).
  • a stable internet connection.
  • participation during the lecture time required for the quizzes.

Delivery Plan

** The Centre for Educational Excellence (CEE) at SFU is recommending that we use asynchronous (recorded) presentations to ensure fairness for students without a high-speed internet connection**. As instructors, we recognize the benefits of synchronous and in-person meetings and lectures. As a result, we have come up with the hybrid plan below. We understand that a number of you may be cautious and trepid about return to in class sessions. To ensure that we are all safe we would like to encourage you all to wear masks and practice social distancing. Instructors will be wearing a mask during lectures.

Also, since this is the first semester back we would like to remain vigilant. Further through last year we have learnt how to make teaching effective and efficient online. We would like to retain some of those practices. As a consequence our initial plan is

  • Post-class Online Lectures : All lectures will premier on stream.sfu.ca post F2F for asynchronous viewing. Lecture Recording Link
  • Backup Lecture Recording Link : Here
  • Homeworks/Assignments Submissions - Github. Refer lab0 for steps.
  • Quizzes - Biweekly quizzes exist for instructors to obtain feedback on the learning rate and appropriately tailor future lectures. The quizzes will be conducted at the beginning of Friday lecture every other week (starting from week 3).
  • Zoom Link for Quizzes and Lectures (testing): Posted on Canvas Page

Zoom Lecture Logistics

  • We will attempt to live stream lectures on zoom (link on Canvas Page ). However, we can’t promise this will work.

  • To try to make it work while teaching in person simulateneously, here are some guidelines for zoom attendees:

    1. The zoom stream will not be actively monitored by the instructor.
    2. Everyone on zoom should be on mute. The instructor will not be listening to the zoom audio.
    3. Questions on the zoom chat may be answered at the end of class if they haven’t been addessed during the lecture. Please refrain from posting spurious messages on the zoom chat.

Time and Organization

  • TA OH Wednesdays 5:00pm-6:00pm Fridays: 12:30pm-1:30pm TA OH will be conducted on [zoom]
  • Friday 3:30 — 4:50PM There will be biweekly quizes and class lectures in AQ 3154. (live stream on Zoom - Link on Canvas Page )
  • Wed 3:30PM—4:50PM: AQ 3154 will be live lecture day. (live stream on Zoom - Link on Canvas Page )
  • The class content will be available on stream.sfu.ca, course webpage and canvas within 48hrs.

Grading

  • 3 programming assignments. (40%)
  • Exams/Quizzes (35%)
  • Project (25%)

Asking Questions, Getting Assistance, Giving Feedback

  • It is very important to us that you succeed in CMPT 750/450! Outside of lectures and sections, there are different ways to ask questions or discuss course issues:
  • Go to the labs and ask questions of the TA.
  • Make a piazza post. Piazza about course content on the groups, where they benefit the whole class. If other students can answer your question, you may receive a response more quickly than you would by emailing the course staff.
  • This is the best way of asking questions about homework, labs, and other class-related topics. Before posting, please search through the questions that have already been posted in case someone has already asked the same question.
  • Send an email to the course staff. The instructors will try to address the issue and share it with others only as appropriate, but will not have a way to reply to you without addressing the whole class.

What is the class about ?

Principles of the architecture of computing systems. Topics include: superscalar processor micro- architecture, speculative execution, cache and memory hierarchy, multiprocessors, cache coherence, memory consistency, implications of technology on architecture, parallel architectures (multi-threading, GPUs, vector processors).

Basic Concepts of superscalar processor microarchitectures: structural/data/control dependences, register renaming, out-of-order issue/execution, branch prediction, precise interrupts, issue logic, 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: 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 get down and get your hands dirty with concurrent C programming and hardware design. We will discuss the fundamental design and engineering trade-offs in computer architecture at every level.

Instructor Objectives

This course teaches the principles of the architecture of computing systems. Topics include: superscalar processor micro-architecture, speculative execution, cache and memory hierarchy, multiprocessors, cache coherence, memory consistency, implications of technology on architecture, parallel architectures (multi-threading, GPUs, vector processors).

Prereq

Solid programming skills (C/C++). Solid background at Unix/Linux. If unsure whether you have the pre-requisites, talk to the instructor! Programming exercises will require the student to implement programs parts. 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.

Prereq Linux knowledge

Linux knowledge

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.

Staff

Instructor

Alaa Alameldeen
Email: alaa
Office hrs
Instructor Webpage
Food: Chocolate!
Cafe:
Music: Cairokee
Language: C++, Python
Arrvindh Shriraman
Email: ashriram
Office hrs
Instructor Webpage
Food: Pizza
Cafe: Batard (Fraser and 24th)
Music: Timecop
Language: C++, Python, Chisel

TAs

Email: ali_sedaghati
Food: Fish and Chips
Cafe: Crepe Express
Music: Queen
Language: C++
Email: pvahdatn
Food: Ratatouille
Cafe:
Music: Estatic Fea
Language: C

Disclaimers about this web page

  • 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 me in person during class. Double check with SFU calendar or schedule information for official class times and final exams time and location.
  • Students are expected to attend all classes: announcements about assigned readings, homeworks and exams will be made available at the start of each class. Such announcements may not be made on this web page, so don’t rely on information here instead of attending class.