CSE 120: Computer Architecture
Winter 2021


Basic Information

Lectures:           TBD
Instructor:         Asst. Professor Heiner Litz (hlitzhhatiiucsc·edu)
Offifice:             217 Engineering 2, Mon 2:30–3:30 PM and Wed 11:00 AM–12:00 PM
TAs:                  TBD
                         TBD
Prerequisites:     CSE 12 and CSE 12L; and CSE 13E, or CSE 13S, or CSE 15 and CSE 15L. CSE 16 recommended.
Required text:    Computer Organization and Design RISC-V Edition: The Hardware Software Interface (Hennessy & Patterson)
Home page:       https://canvas.ucsc.edu/courses/40087


Course Overview

The goal for students in this course is to learn the fundamental principles of computer architecture. To help students accomplish this goal we’ll cover the various important aspects of computer architecture in general, examine specifific examples from current CPUs and systems, and consider the RISC-V instruction set architecture and its possible impact on system design. Topics include:

•    Computer system performance
•    Instruction set architectures
•    Pipelining & forwarding
•    Multi-execution units
•    Caches
•    Memory hierarchy
•    Virtual memory
•    Branching & branch prediction
•    Multicore CPUs
•    GPUs and SIMD instructions


Prerequisites

The formal prerequisites for this class are CSE 12 and CSE 12L; and CSE 13E, or CSE 13S, or CSE 15 and CSE 15L. CSE 16 recommended. We’re going to assume you gained the knowledge and skills from these classes as taught at UCSC; if you took the equivalent classes at another university or community college, you may want to look over the syllabus and materials for the offerings on this campus. Particularly, you should be flfluent in C/C++, the Unix command line, git, make, and, most importantly have knowledge about Assembly and a RISC ISA.


Resources

The required text, Computer Organization and Design RISC-V Edition: The Hardware Software Interface, is avail-able at the UCSC bookstore as well as online booksellers such as Amazon. Homework problems may be taken from the book (the RISC-V version), and lectures will complement the material as presented there. You should read the material in the textbook before it is covered in lecture. Other than the textbook, all of the material in this class, including assignments and grades, will be available on Canvas (https://canvas.ucsc.edu/courses/40087), and will require that you log in to access it. We’ll be conducting all class-related discussion, on Piazza, accessible via the Canvas website.


Evaluation & Grading

Exams

      You must take each exam at the scheduled time unless you have an unexpected illness or family emergency. You must let the professor know by email or text message before the exam’s scheduled start, unless you’re inca-pacitated by illness. In addition, you must provide a doctor’s note or letter from the funeral home before you can make up the exam. There are no exceptions to this policy.


Homework Assignments

      There will be 4–6 graded homework assignments over the course of the quarter. Students will form groups of exactly two that will work together and submit a single solution via Canvas. You’ll typically have about a week to do each assignment. You may not work with other students on the homework assignments—the goal is to see how well you and your partners understands the material. Please see the Academic Integrity section (below) for further details.

      Homework will typically be submitted on Canvas: each assignment must be submitted as a single PDF fifile. You may type up your homework, or scan in handwritten material (or both), as long as it’s in a single fifile. There are scanner programs available for Android and iOS cell phones that you may wish to use. Please scan your homework in black and white if possible, and no higher than 200dpi resolution, so that the fifiles don’t get too big. If there are any programming problems as part of a homework assignment, they will be managed and submitted via git. We assume that you’re familiar with git from CMPE 12 or other prerequisites; please see the Canvas site for links to help with git if you need them.


Timeliness

Rather than approve extensions on a case-by-case basis, each student may turn in one assignment (of her/his choice) up to two days late. Think of this like “sick days” that you may use if you’re feeling ill. We won’t try to verify your illness, but neither will you get a second extension should you actually be sick later in the quarter. Other than this single exception, late homework will not be accepted.


Quizzes

There will be 6–8 unscheduled quizzes over the course of the quarter. They will take about 15 minutes, and be 4–5 multiple choice questions on recently-covered material. Quizzes will be given via Canvas, so you’ll need to install Canvas on an electronic device and bring it to class. We’ll drop the lowest two quiz grades when computing your quiz average so, while you’ll get a zero if you miss a class in which a quiz is given, you can miss two quizzes without it affecting your grade.


Class Participation

Class Participation is highly recommended. You may receive extra credit on your overall course grade for actively participating in class, including things such as actually participating (asking questions) in lecture, visiting discussion sections, and participating in Piazza discussions.


Grading

Grades in the class will be distributed as follows:

•    Homework assignments: 10%
•    Quizzes: 10%
•    Midterm: 20%
•    Final: 60%

In order to pass the class, you’ll need to demonstrate basic mastery of the subject material as demonstrated by your homework, quizzes, and exams. You may not pass if your (weighted) average in any of these three areas is below 50%.


Webcast

This class will be webcast and can be viewed on: webcast.ucsc.edu


Getting Help

There are several ways to get help with concepts covered in class, textbook, and homework assignments, listed in approximately the order you should try them for help.

•    Attend classes and discussion sections.
•    Read Canvas for information on assignments.
•    Read and post to the class discussion forum, hosted at piazza.com.
•    Meet with the course staff during offifice hours.
•    Email the course staff.

      You’re encouraged to post general questions to the Piazza forum, and to answer questions others have posted there. Asking things like “how does this concept work?” or “can we work through this problem not on the home-work?” are fifine. Questions such as “what did you get for Problem 2 on this week’s assignment” or “what did I do wrong on this pipeline diagram?” are not acceptable, and should be asked during offifice hours (preferable), or via email. Course staff will read Piazza and reply to posted questions.

      Discussion sections are your chance to ask the course staff in-depth questions about the material being covered, homework assignments, or anything else about computer architecture (or other general computer engineering and computer science issues) you want to discuss. If your question cannot be answered in the sections, please visit Prof. Litz in the offifice hours. Please don’t just drop by outside of offifice hours. If you cannot attend offifice hours, arrange a meeting in advance by emailing the course staff member with whom you want to meet.


Accommodations for Students with Disabilities

UC Santa Cruz is committed to creating an academic environment that supports its diverse student body. If you are a student with a disability who requires accommodations to achieve equal access in this course, please submit your Accommodation Authorization Letter from the Disability Resource Center (DRC) to Prof. Litz privately during offifice hours. If you cannot attend any offifice hours due to an academic conflflict (another course or section only), you may make an appointment. Accommodations must be made two weeks before the assignment / exam for which you want accommodations, or we cannot guarantee that we can accommodate you. All students who may benefifit from learning more about DRC services are encouraged to contact the DRC by phone at 831-459-2089 or by email at [email protected].


Academic Integrity

      Academic integrity is a requirement for this course (and, indeed, for your entire academic career). All material submitted for a grade must be your own independent work; this includes homework, quizzes, and exams. If you get help from anyone other than course staff, you must acknowledge their contribution on your submitted work. This includes help from tutors from MSI and similar programs as well as private tutors. Obviously, any form of collaboration during a quiz or exam is strictly forbidden, but you may study in groups if you like.

      You may discuss class material with others, and you may discuss general approaches to homework assignments. You may look at someone else’s notes, but you may not look at or discuss other group’s homework solutions. This does not apply to course staff or to university-provided tutors (e.g., MSI tutors), but applies to all other people, whether they’re in the class or not, at all times, even when course staff are present. For example, you may not copy someone else’s homework in the lab section (or any other time, for that matter).

      Homework assignments, exams and quizzes may not be re-distributed, copied or shared in digital or paper form outside of this class.

      We take academic integrity very seriously, and report all violations of academic integrity to the School of En-gineering and to your college Provost. If you violate academic integrity, you will fail the class. Depending on the severity of the violation, the university may impose additional penalties, including suspension and even expulsion in rare cases.

      The strongest motivator for academic integrity should be yourself. After all, the main reason you are here is to learn. Your future employers care about your skills not your GPA. Finally, be responsible to your cohort. There is a waiting list of 150 students for this class. If you are lucky enough to be enrolled please make use of it!

      Bottom Line: don’t cheat!