Course Information

Cross Listed CS 4420 Computer Architecture
Co-Meet ECE 5740 Computer Architecture
Instructor Prof. Christopher Batten, 323 Rhodes Hall
Office Hours: 323 Rhodes Hall, Tuesday, 4:30–5:30pm
Admin. Assistant Kimberly Budd, 314 Rhodes Hall, kj37@cornell.edu
Graduate TAs Lauren Shen, ljs324, Office/Lab Hours: 314 Phillips, Tue, 7:30–9:30pm
Angela Zou, az292, Office/Lab Hours: 314 Phillips, Thu, 7:30–9:30pm
Owen Deng, qd39, Office/Lab Hours: 314 Phillips, Tue, 7:30–9:30pm
Ronin Sharma, rrs234, Office/Lab Hours: 314 Phillips, Wed, 7:30–9:30pm
Undergraduate TAs Romano Tio, rat83, Office/Lab Hours: 314 Phillips, Wed, 7:30–9:30pm
Austin Brown, ajb497, Office/Lab Hours: 314 Phillips, Mon, 7:30–9:30pm
Lily Yu, gly6, Office/Lab Hours: 314 Phillips, Thu, 7:30–9:30pm
Lectures 120 Physical Sciences Building, Monday and Wednesday, 2:45–4:00pm
Disc. Section 165 Olin Hall, Friday, 2:40–3:30pm
Required
Materials
J. L. Hennessy and D. A. Patterson
"Computer Architecture: A Quantitative Approach"
5th edition, Morgan Kaufmann, 2012
Available on Canvas, Amazon ($80)
Cornell library has e-book and hard copy
D. M. Harris and S. L. Harris
"Digital Design and Computer Architecture"
2nd edition, Morgan Kaufmann, 2012
Amazon ($63)
Cornell library has e-book and hard copy
"ECE 4750 Course Packet"
Available on Canvas
Staff Email ece4750-staff-l cornell edu

Objectives

This course is meant to be a capstone course in computer engineering that draws together concepts from across the ECE curriculum including digital logic design, computer organization, system-level software, and engineering design. The course will prepare students for jobs in the computer engineering industry and can act as a springboard to more advanced material in graduate-level courses. This course can also provide a foundation for students interested in performance programming, compilers, and operating systems; and it can provide system-level context for students interested in emerging technologies and digital circuits. By the end of this course, students should be able to:

Prerequisites

This course is targeted towards senior-level undergraduate students and M.Eng. students, although it is also appropriate for advanced juniors and first-year Ph.D. students. An introductory course on computing is required (CS 1110 or equivalent). A course in digital logic design and computer organization (ECE 2300 or equivalent) and a course in system-level programming (ECE 3140 or equivalent) are also required. CS 3410 is a suitable replacement for ECE 2300 and ECE 3140 for the purposes of satisfying the prerequisites. Students should feel comfortable working with a hardware description language such as Verilog, SystemVerilog, or VHDL and have a reasonable understanding of digital logic, assembly-level programming, storage systems, basic pipelining, and simple cache design.

M.Eng. and Ph.D. students coming from undergraduate institutions other than Cornell may want to spend additional time reviewing the secondary required textbook, "Digital Design and Computer Architecture, 2nd edition" by D. M. Harris and S. L. Harris (Morgan Kaufmann, 2012), to refresh their understanding of basic concepts. If a student has less experience working with Verilog but still wants to use this language, then they are strongly encouraged to read Chapter 4 in Harris and Harris on digital design with Verilog and/or to review the optional text ``Verilog HDL: A Guide to Digital Design and Synthesis, 2nd edition'' by S. Palnitkar (Prentice Hall, 2003). Students who have never used Python before may want to spend additional time reviewing the optional textbook titled "Think Python: How to Think Like a Computer Scientist" by A. B. Downey (Green Tea Press, 2014).

Topics

The course includes five parts: the first three parts cover the fundamentals of processor, memory, and network design, while the final two parts cover more advanced processor and memory design. In addition, the final lecture at the end of the course will present in detail an example architecture from industry to help illustrate the concepts discussed in class. A tentative list of topics for each part is included below. The exact topics covered in the course are subject to change based on student progress and interest.

Required Materials

There are three materials that students are required to have access to for the course: the primary course textbook, the secondary course textbook, and the course packet.

Optional Materials

There are a few additional books that students may find useful for providing background on Verilog, SystemVerilog, and Python.

Format and Procedures

This course includes a combination of lectures, quizzes, discussion sections, readings, practice problems, lab assignments, and exams. ECE 5740 students will also be required to complete additional position papers and a position defense.

Grading Scheme

This course will be adopting a philosophy of "grading for equity" where grading is exclusively used to assess mastery of the material covered in the course as opposed to rewarding effort and/or incentivizing specific behaviors. To this end, each part or criteria of every assignment is graded on a four-point scale without any curve. A score of 4.25 is an A+, 4 roughly corresponds to an A, 3 roughly corresponds to a B, 2 roughly corresponds to a C, and so on. A score of 4.0 usually indicates that the submitted work demonstrates no misunderstanding (there may be small mistakes, but these mistakes do not indicate a misunderstanding) or there may be a very small misunderstanding that is vastly outweighed by the demonstrated understanding. A score of 3.0 usually indicates that the submitted work demonstrates more understanding than misunderstanding. A score of 2.0 usually indicates that the submitted work demonstrates more misunderstanding than understanding. A score of 1.0 usually indicates that the submitted work is significantly lacking in some way. A score of 4.25 is reserved for when the submitted work is perfect with absolutely no mistakes or is exceptional in some other way.

Total scores are a weighted average of the scores for each part or criteria. Parts or criteria are usually structured to assess a student's understanding according to four kinds of knowledge: basic recall of previously seen concepts, applying concepts in new situations, qualitatively and quantitatively evaluating design alternatives, and creatively implementing new designs; these are ordered in increasing sophistication and thus increasing weight. Detailed rubrics for all quizzes and exams are provided once the assignment has been graded to enable students to easily see how the score was awarded. For lab assignments, a detailed Lab Assignment Assessment Rubric is available on Canvas.

The final grade is calculated using a weighted average of all assignments. Each lab assignment is weighted equally. All quiz grades are averaged to form a single total. Students can drop their lowest quiz score. At the instructor's discretion, additional quiz scores may be dropped depending on the total number of quizzes in the semester. The weighting for the various assignments is shown below.

ECE 4750ECE 5740
Quizzes 10% 8%(students can drop lowest score)
Lab Code 25% 22%(weighted equally)
Lab Report 10% 8%(weighted equally)
Prelim Exams 30% 30%(weighted equally)
Final Exam 25% 25%
Position Papers/Defense n/a 7%(weighted equally)

Note that the midterm and final exam account for half of a student's final grade. The exams in this course are very challenging. Successful students begin preparing for the exams far in advance by carefully reviewing the assigned readings, independently developing study problems, and participating in critical study groups.

To pass the course, a student must at a bare minimum satisfy the following requirements: (1) submit three out of the four lab assignments; (2) take the prelim exams; and (3) take the final exam. If a student does not satisfy these criteria then that student may fail the course regardless of the student's numerical grade.

Policies

This section outlines various policies concerning auditors, usage of cellular phones and laptops in lecture, audio/video recording in lecture, turning in assignments late, regrading assignments, collaboration, and accommodations for students with disabilities.

Auditor Policy

Casual listeners that attend lecture but do not enroll as auditors are not allowed; you must enroll officially as an auditor. \emph{If you would like to audit the course please talk to the instructor first!} Usually we wait until the second week of classes before allowing auditors to enroll, to ensure there is sufficient capacity in the lecture room. The requirements for auditors are: (1)~attend most of the lectures; (2)~complete most of the in-class paper quizzes; and (3)~perform reasonably well on these quizzes. If you do not plan on attending the lectures, then please do not audit the course. Please note that students are not allowed to audit the course and then take it for credit in a later year unless there is some kind of truly exceptional circumstance.

Cellular Phones and Laptops in Lecture Policy

Students are prohibited from using cellular phones and laptops in lecture unless they receive explicit permission from the instructor. It is not practical to take notes with a laptop for this course. Students will need to write on the handouts, quickly draw pipeline diagrams, and sketch microarchitectural block diagrams during lecture. The distraction caused by a few students using (or misusing) laptops during lecture far outweighs any benefit. Tablets are allowed as long as they are kept flat and used exclusively for note taking. If you feel that you have a strong case for using a laptop during lecture then please speak with the instructor.

Late Assignment Policy

Lab reports and position papers must be submitted electronically in PDF format on Canvas, and lab code must be submitted electronically via GitHub (as explained in the lab handout). No other formats will be accepted! Lab reports, position papers, and lab code must be submitted by 11:59pm on the due date although there is an automatic one-day grace period. This means lab reports, position papers, and/or code can be submitted up to one day late without penalty. No additional extensions beyond this automatic grace period will be granted except for a family or medical emergency. We will be using the online Canvas assignment submission system. You can continue to resubmit your files as many times as you would like up until the deadline, so please feel free to upload early and often. If you submit an assignment even one minute past the end of the grace period, then the assignment will not be accepted.

Regrade Policy

Addition errors in the total score are always applicable for regrades. Regrades concerning the actual solution should be rare and are only permitted when there is a significant error. Please only make regrade requests when the case is strong and a significant number of points are at stake. Regrade requests should be submitted online via a private post on Ed within one week of when an assignment is returned to the student or within one week of when an exam is reviewed with the class. You must provide a justification for the regrade request.

Collaboration Policy

The work you submit in this course is expected to be the result of your individual effort only, or in the case of lab assignments, the result of you and your partner's effort only. Your work should accurately demonstrate your understanding of the material. The use of a computer in no way modifies the standards of academic integrity expected under the University Code.

You are encouraged to study together and to discuss information and concepts covered in lecture with other students. You can give "consulting" help to or receive "consulting" help from other students. Students can also freely discuss basic computing skills or the course infrastructure. However, this permissible cooperation should never involve one student (or lab group) having possession of or observing in detail a copy of all or part of work done by someone else, in the form of an email, an email attachment file, a flash drive, a hard copy, or on a computer screen. Students are not allowed to seek "consulting" help from online forums outside of Cornell University. Students are not allowed to use online solutions (e.g., from Course Hero) from previous offerings of this course. Students are encouraged to seek "consulting" help from their peers and from the course staff via office hours and the online Piazza discussion forums. If a student receives "consulting" help from anyone outside of the course staff, then the student must acknowledge this help on the submitted assignment.

During in-class paper quizzes and examinations, you must do your own work. Talking or discussion is not permitted during the in-class paper quizzes and examinations, nor may you compare papers, copy from others, or collaborate in any way. Students must not discuss a quiz/exam's contents with other students who have not taken the quiz/exam. If prior to taking it, you are inadvertently exposed to material in a quiz/exam (by whatever means) you must immediately inform an instructor.

Should a violation of the code of academic integrity occur, then a primary hearing will be held. See https://theuniversityfaculty.cornell.edu/academic-integrity for more information about academic integrity proceedings.

Examples of acceptable collaboration:

Examples of unacceptable collaboration:

Notice that the key is that students should not share the actual solutions or code with each other. Consulting with your fellow students is fine and is an important part of succeeding in this course. If the vehicle for consulting is a whiteboard (and you avoid writing the actual solution on the whiteboard) then you should be fine.

Copyright Policy

All course materials produced by the course instructor (including all handouts, tutorials, problems, quizzes, exams, videos, scripts, and code) are copyright of the course instructor unless otherwise noted. Download and use of these materials are permitted for individual educational non-commercial purposes only. Redistribution either in part or in whole via both commercial (e.g., Course Hero) or non-commercial (e.g., public website) requires written permission of the copyright holder.

Accommodations for Students with Disabilities

In compliance with the Cornell University policy and equal access laws, the instructor is available to discuss appropriate academic accommodations that may be required for students with disabilities. Requests for academic accommodations are to be made during the first three weeks of the semester, except for unusual circumstances, so arrangements can be made. Students are encouraged to register with Student Disability Services to verify their eligibility for appropriate accommodations. Note that students cannot simply rely on Student Disability Services to email the instructor without actually speaking to the instructor in person. Students must speak with the instructor in person during the first three weeks to discuss their accomodations.

Online and Computing Resources

We will be making use of a variety of online websites and computing resources.