Computer Architecture - Syllabus

Important Information

Time and Location

Lecture: Storer Hall 1322. M/W/F 2:10pm - 3:00pm.

154B Discussion: Wellman Hall 230. Tuesday 3:10 - 4:00pm.

201A Discussion: Wellman 6. Tuesday 2:10 - 3:00pm.

Instructor

Professor Jason Lowe-Power (jlowepower@ucdavis.edu).

I prefer Jason, but will likely respond if you say “professor <something>”. My pronouns are he/him/his.

Please contact me via email if you have a personal request, not canvas messages. I do not check canvas messages. For class-wide questions (e.g., anything that is not private), please use the online discussion.

Office hours

Office Hours: 3:30-5:00pm Wednesday. Preference to 154B from 3:30-4:15 and preference to 201A from 4:15-5pm.

Office Location: Kemper 3049.

These office hours can be used to discuss anything you would like. The discussion topic doesn’t have to be class related or even computer architecture related. If you need to discuss something in private, please email me for an appointment.

Please suggest a meeting time when you email me for an appointment. You can use my calendar to quickly find a time I am available. It’s not guaranteed to be completely up-to-date, but it gives a good starting point.

Teaching Assistant

ECS 201A

Kaustav Goswami (kggoswami@ucdavis.edu)

Office Hours Time: Thursdays, 4:00 pm - 5:00 pm, Kemper 3106, zoom (attend only, priority given to in-person attendees)

Office Hours Zoom: Fridays, 10:00 am - 11:00 am, zoom only

ECS 154B

Zhantong Qiu (ztqiu@ucdavis.edu)

Office Hours: Thursday, 2:00 pm - 3:00 pm, Kemper 3106.

Class Resources

Online material

All of the material for this course is online. We will use this website as the main website and entry point for all course information. This will also include links to all of the lecture videos and quizzes. You can find the source for this website on GitHub. If you find any errors or have ideas for improving the website, please open an issue on GitHub. Helpful contributions can be rewarded with extra credit.

Gradescope

We will use Gradescope (ECS154B and ECS201A) for all assignments including lab submissions and returning quizzes, the midterm, and the final. Gradescope gives you a graded PDF version of your test, along with a rubric, immediately after we’re done grading. You will receive an email from Gradescope to make your account early in the quarter.

All lab assignments will be autograded by Gradescope. When you upload your code to Gradescope, a set of tests will be run on it and your grade will be immediately available. You may submit your code any number of times. Only the final submission will be accepted as the grade for your assignment. However, if you submit after the deadline, the late policy applies.

Online discussions

We will use Online discussions for class discussions outside of the classroom. If your question is specific to either 201A or 154B please start the subject with [ECS 201A] or [ECS 154B] respectively.

It’s best to ask your questions on Piazza. That way, all of your classmates can see the answer instead of emailing the TAs or me. Additionally, you might get a much faster response from one of your classmates! Through asking and answering questions on Discord, you improve your understanding of the material, and improve other students’ understanding as well.

Regrade Requests

Regrade requests must be made within one week of the return of the assignment or test. Regrade requests can be made through Gradescope. Please be sure to read the rubric and the comments on your assignment before submitting a regrade request. Do not make regrade requests that simply ask for more points. Regrades will only be accepted in the case of a grading error.

Accommodations

The exam schedule is available on the main page. Per official UC Davis policy, if you have an accommodation request from the Student Disability Center, or have any conflicts with exam times for religious observances, you must notify me by the fourth class, January 17, 2023. If you do not notify me by this time, I cannot guarantee I will be able to make the accommodation.

For each test, quiz, etc. you must reach out to me one week in advance to schedule specific accommodations for that test, quiz, etc. If you do not notify me by this time, I cannot guarantee I will be able to make the accommodation.

Academic Misconduct

Academic misconduct is a serious issue. You can find the official UC Davis policy on the Office of Student Support and Judicial Affairs website.

You are expected to cite all of the work you reference. Any ideas that are not specifically yours or generally known (e.g., caches hold data) should have a citation. When in doubt, cite.

You may not, under any circumstances, post the code you write publicly. This means you cannot create public forks of the template code repository. If we find any of the class’s code beyond the template files distributed, we will report this violation to SJA.

Any violations of this policy will result in reporting the violating student(s) to the Office of Student Support and Judicial Affairs. This can result in a 0 on the assignment or an F in the class. See the Computer Science Department’s policy for more information.

Using generative AI tools

Generative AI tools such as GitHub Copilot and ChatGPT are incredibly useful. I encourage you to use these tools when appropriate.

Appropriate uses of the tools include:

  • Using GitHub Copilot to help you write code for DINOCPU or gem5.
  • Using ChatGPT to draft text based on your own inputs.
  • Using ChatGPT to help improve grammar in your writing.

Inappropriate uses of the tools include:

  • Using ChatGPT to write text for you without editing or reviewing it.

Remember, these tools are prone to “hallucinating” and may not give reasonable results. You should always review the output of these tools before submitting it. You are responsible for all of the code and text you submit.

If you are unsure if a use of these tools is appropriate, please ask me to clarify before submitting work using these tools.

Student Support

As a student you may experience a range of issues that can cause barriers to learning, such as strained relationships, increased anxiety, alcohol/drug problems, feeling down, difficulty concentrating and/or lack of motivation. These mental health concerns or stressful events may lead to diminished academic performance or reduce a student’s ability to participate in daily activities. UC Davis is committed to advancing the mental health and well-being of its students. If you or someone you know is feeling overwhelmed, depressed, and/or in need of support, services are available. You can learn more about the broad range of confidential mental health services available on campus via Student Health and Counseling Services.

You can also contact me during office hours, via email, or by making a separate office hour appointment: jlowepower@ucdavis.edu. If you need additional accommodations due to these or other personal issues, don’t hesitate to ask. I cannot guarantee that I will be able to make accommodations. However, reaching out to me earlier will increase the likelihood that I can make accommodations.

What happens if I get a positive COVID test or I am sick?

Do not come to class!

All classes will be recorded. (Discussions will not be recorded.)

If you are not feeling well or test positive before an exam, contact Prof Jason Lowe-Power immediately. We can make accommodations only before the exam. DO NOT come to the exam if you are sick.

Prerequisites

ECS 154B Prereqs

ECS 154A; or both EEC 170 and EEC 180A.

Although not an official prereq, this course requires experience with many programming tools (e.g., Linux, command line, git, etc.). A good resource is a recent MIT course on “The missing semester” which teaches these important tools that aren’t necessarily covered in a “normal” computer science curriculum.

ECS 201A Prereqs

Introduction to computer architecture, computer organization, introduction to operating system, datastructures and algorithms.

Although not an official prereq, this course requires experience with many programming tools (e.g., Linux, command line, git, etc.). A good resource is a recent MIT course on “The missing semester” which teaches these important tools that aren’t necessarily covered in a “normal” computer science curriculum.

PTAs

Before asking for a PTA, be sure that you have read the Department of Computer Science’s PTA Policy. PTA numbers will only be issued after the 12th day of instruction, and PTA numbers are only issued for extenuating circumstances related to graduation.

Assignments and Tests

I understand the need for more flexibility. Many of us will have responsibilities beyond just school since we are living at home. I’m sure many of you will be taking care of loved ones, working, or have other responsibilities that may conflict with this class. I will do everything I can to accommodate individual circumstances while maintaining fairness in the class. The most important thing is that the earlier you communicate with me the more likely I will be able to make accommodations. See also student support.

Grading Breakdown

ECS 154B Grading

Category Percentage How to get points?
Project (5x) 40% Gradescope will auto-grade most of the project
Quizzes 24% Quizzes will be on canvas. One per week.
Test 1 16% Take the test
Test 2 (final) 20% Take the test

ECS 201A Grading

Category Percentage How to get points?
Project (5x) 40% Project reports + gradescope autograding
Paper reviews 25% Reviews will be on Perusall. One per week.
Test 1 15% Take the test
Test 2 (final) 20% Take the test

Projects

ECS 154B Project: DINO CPU

You will complete five project-based assignments throughout this course. The assignments can be found via the links below. All together, the labs are worth 40% of your final grade.

Labs are due at 2:10 PM on the date listed below.

ECS 201A Projects: gem5

You will complete five project-based assignments throughout this course. The assignments can be found via the links below. All together, the labs are worth 40% of your final grade.

Labs are due at 1:59 PM on the date listed below.

Late Projects

If you turn in a project assignment late, you will lose points. The percentage of points you will lose is given by the equation below. This will give you partial points up to 48 hours after the due date and penalizes you less if you barely miss the deadline.

\[fraction \: of \: points = -1 \times \frac{ {hours \: late}^2}{48^2} + 1\]

Late policy graph

Note: When submitting late, the reduction in points will not immediately appear in Gradescope. Rest assured, we will go through and double check all of the submission times ;).

Quizzes (154B Only)

There will be one canvas quiz each week (except for the test week) due before lecture on Wednesday (the day of discussion). Each quiz is worth 3% of your total grade. After discussion, the answers for your quiz will be posted.

If you want to improve your score, you can take the quiz a second time. The second chance is due 2 days later. If you take the first version of the quiz, then you can make 100% on the second try. If you don’t attempt the first try, you can make at most 75% of the points. (Note: This 25% penalty for missing the original quiz will be manually applied.)

The quizzes are available to 201A students, but they are not required.

Perusall (201A Only)

Instead of quizzes you will read papers and collaboratively discuss them. We will use Perusall for paper readings and group discussion. Make sure you access Perusuall from Canvas the first time! This is required for me to be able to publish your grades. (I.e., if you don’t access Perusall via Canvas you will receive a 0 for the assignments.)

Paper reviews are due before the discussion (Tuesday 2 PM) and there is no grace period.

The paper readings will be graded on Perusall. You are assigned to random groups for the papers. You will be graded based on the amount of time you spend reading the paper, the number of comments you make, the number of interactions you have with your group, and the quality of your comments.

Tests

There will be two tests this quarter which together count for 35% of your grade. There will be a test after the processor architecture module and a final after the memory architecture, and parallel architecture modules.

The tests will be administered in person.

Textbooks

ECS 154B Textbooks

In this class, we’ll be closely following Computer Organization and Design RISC-V Edition: The Hardware/Software Interface by D. A. Patterson and J. L. Hennessy.

Importantly, you should get the RISC-V edition, not the ARM edition and not the MIPS edition. This is different from versions in years past.

There are two editions available: the first edition (unlabeled) and the second edition. The second edition has some minor improvements, but the first edition will work as well. The main improvements of the second edition are new “self evaluation” sections and a new section on accelerators. If anything is required from a specific edition, it will be posted online.

To support remote instruction during Spring 2020, all textbooks available in digital format will be provided as e-books. To access the e-books available for your courses, click on the BOOKSHELF option in the Canvas navigation menu. You have Auto-Access for any required textbooks, but can opt out in the Bookshelf window if you make other arrangements for the text.

IMPORTANT: The textbook on Canvas/vitalsource is opt out.

Additionally, you may find The RISC-V Reader: An Open Architecture Atlas a useful companion, but this book is not required. We will be implementing a RISC-V processor in this class and having a physical book with the RISC-V instructions described will be useful. If you prefer to not buy yet another book (though I do think it’s a useful book to have), you can also use the online version of the RISC-V specification. Note: the specification has fewer pretty pictures than the book.

You can find these books at the university bookstore or through various sites online.

ECS 201A Textbooks

Computer Architecture: A Quantitative Approach 6th Edition. John L. Hennessy and David A. Patterson.

This is a different book than the undergrad text above. It covers most of the same topics, but at a deeper level.