ECE 550D: Fundamentals of Computer Systems and Engineering — Fall 2019
Class meeting time and location: TTh 3:05–4:20 and 4:40–5:55 (2 sections) — Teer 203
Recitation meeting time and location: F 1:25–2:40 — Hudson Hall 207 & 208
based on a diagram by Dr. Tyler Bletsch
Instructor: Dr. Rabih Younes
Duke e-mail: rabih.younes
Office: Hudson Hall 204
Office phone: 660-5051
Office hours: by appointment (the link to make appointments is posted on Sakai)
To provide anonymous feedback about anything related to the course, please follow this link (password posted on Sakai).
TAs:
- Kyle Finke (kwf10) — Head TA
- Wen Guo (wg72) — Head TA for homework
- Mary Stuart Elder (mse18) — Head TA for the project
- Rui Sun (rs450) — Head TA for grading
- Siyuan Chen (sc456) & Wending Lin (wl177) — Head TAs for recitations
TAs office hours (location: Hudson Hall 214):
- M 4–6: Mary Stuart & Wending
- T 4:30–7:00: Rui, Siyuan, & Wen
- W 4:30–6:30: Rui & Wending
- Th 5–7: Kyle & Wen
Course Description
Fundamentals of computer systems and engineering for Master's students whose undergraduate background did not cover this material. Topics covered include: Digital logic, assembly programming, computer architecture, memory hierarchies and
technologies, IO, and hardware implementation in HDL. Undergraduates may not take this course, and should take ECE 250D, ECE 353, and/or ECE 356 instead. Instructor: Younes. 3 units. Co-requisite: ECE 551D.
Learning Outcomes
Having successfully completed this course, the student will be able to:
- design combinational and sequential circuits at the circuit (CMOS) and gate/logic levels;
- implement logic circuits on FPGAs;
- use Verilog hardware description language;
- write programs using Assembly language;
- describe and analyze how computer memory operates;
- describe the basic operations of IO devices, interrupts, and exceptions; and
- design and implement a processor with an application running on it.
Textbook and Other Course Material
David A. Patterson and John L. Hennessy. Computer Organization and Design: The Hardware/Software Interface, 5th edition, Morgan-Kaufmann. (Amazon,
AddAll) —
(Not the "ARM" edition or the "Revised Printing").
All other material will be posted on Sakai. I will always try to have slides posted before class time so that you can take notes on them if you would like to.
Grading Policy
- Recitations (10%): Recitations are on Fridays. Each recitation usually consists of a short informative lecture followed by hands-on practice in groups. Grades are based on completion (must demonstrate working module to TA). Some
recitations might require you to perform some simple tasks (usually reading) before coming to class.
- Homeworks (20%): About 5 homeworks (check the schedule below).
- Exam 1 (15%): Tentatively on 10/18. Covers weeks 1–7. Closed book/notes.
- Exam 2 (15%): Tentatively on 11/26. Covers weeks 8–13. Closed book/notes.
- Project (40%): Checkpoints that build up to implementing a processor and running a game on it. Project work will start individually then will be in groups of two. It includes the use of Verilog and Assembly.
- Quizzes (+0.5% per submitted quiz): Short pop quizzes. The objective of having these quizzes is to make sure you attend class and to prepare you for the exams.
- NO FINAL EXAM!
- Late policy: Late submissions are not allowed unless you have a valid excuse. In that case, email the Head TA about it (and CC me) as soon as possible and wait for a decision (might involve a penalty, depending on the excuse). Refer
to this list of common but unacceptable excuses borrowed from Dr. Bletsch's webpage.
- Regrading policy: Regrade requests must be submitted no later than one week after the assignment grade is released.
Important Notes
***Extremely important advice:
- Start as early as you can! Leave ample time for testing!
- Try to review class lectures the evening (or next day) of every class.
- Manage your time well and work on multiple assignments in parallel. Split bigger task into smaller (realistic) ones. Make sure you use a calendar and a to-do list.
- Use Git to keep track of previous versions of your work. Use a cloud storage service to back up your work.
- Ask questions! We are here to help! We want you to succeed!
All announcements are posted on Piazza. Make sure you can receive Piazza email notifications.
We can only grade what we receive. Always check what you are submitting and make sure you submit the right files.
Contacting the instructor and the TAs:
- For questions that can be answered by any TA or the instructor: use Piazza
- To contact a specific TA or the instructor: use email (do not text, facebook, ...)
- If you have questions related to understanding a homework assignment: email the Head TA for homework
- If you have questions related to understanding an assignment related to the semester-long project: email the Head TA for the project
- If you have questions related to grading: email the Head TA for grading
- If you have questions related to recitations: email the Head TAs for recitations
- If you have questions about other logistical and administrative issues: email the Head TA
Misconduct
- Academic misconduct will not be tolerated and will be taken very seriously.
- You are expected to complete the assignments individually unless otherwise stated.
- Students are encouraged to share ideas, learn from each other, and learn from online sources, but cheating is not tolerated.
- Any borrowed design/code/etc. — if allowed to be borrowed — should be properly cited.
- Students suspected violating the Duke Community Standard will be reported.
- In addition to the measures taken by the administration, the affected assignment(s) will receive zero credit, or possibly -100% in extreme cases.
- If you are considering this course of action, please see me instead, and we can work something out! I want every student in my course to be successful.
- Note that programming submissions will be compared to one another and to previous semesters using Stanford's Measure of Software Similarity (MOSS) to detect signs of plagiarism.
Communications Support at Pratt
Graduate Communications and Intercultural Programs (GCIP) offers customized communications support for all graduate students at Pratt. They offer one-on-one coaching in the Graduate Communications Center (GCC) for all communications needs (e.g.,
academic writing, cover letters, presentations, pronunciation, master's theses/projects, PhD dissertations/publication/prelims). Additionally, GCIP offers a communication workshop series to help build specific communication skills throughout the
academic year. Visit this link or email gcc-pratt@duke.edu.
Summary of Important Dates
- 10/18: Exam 1
- 11/26: Exam 2
- 12/11: Final project demo
Week |
Date |
Topic |
Homework |
Project |
Recitation (Friday) |
1 |
Tue 8/27 |
Syllabus + Intro |
|
|
|
1 |
Thu 8/29 |
Transistors to Gates |
|
|
Quartus + Verilog Intro |
2 |
Tue 9/3 |
Combinational Logic |
|
|
|
2 |
Thu 9/5 |
Implementing Arithmetic |
|
|
Adder |
3 |
Tue 9/10 |
Guest Lecture (professor traveling) |
|
|
|
3 |
Thu 9/12 |
Guest Lecture (professor traveling) |
1 due |
|
Multiplier |
4 |
Tue 9/17 |
Storage and Clocking |
|
|
|
4 |
Thu 9/19 |
Finite State Machines |
|
|
FSM |
5 |
Tue 9/24 |
ISAs and MIPS |
|
ALU due (extended by 1 week) |
|
5 |
Thu 9/26 |
ISAs and MIPS |
2 due |
|
PS2 |
6 |
Tue 10/1 |
ISAs and MIPS |
|
Register File due (extended by 1 week) |
|
6 |
Thu 10/3 |
Datapaths |
|
|
VGA |
7 |
Tue 10/8 |
NO CLASS (Fall Break) |
|
|
|
7 |
Thu 10/10 |
Datapaths |
|
|
VGA |
8 |
Tue 10/15 |
Exam 1 Review
|
3 due |
|
|
8 |
Thu 10/17 |
Pipelining |
|
|
Exam 1 (weeks 1–7) |
9 |
Tue 10/22 |
Pipelining + Exam 1 Muddiest Points |
|
|
|
9 |
Thu 10/24 |
Memory Hierarchy |
|
|
Work on processor |
10 |
Tue 10/29 |
Memory Hierarchy |
|
|
|
10 |
Thu 10/31 |
Memory Hierarchy |
|
|
Work on processor |
11 |
Tue 11/5 |
Virtual Memory |
|
|
|
11 |
Thu 11/7 |
Virtual Memory |
4 due |
Processor due (extended by 1 week) |
Work on project |
12 |
Tue 11/12 |
Interrupts and Exceptions |
|
|
|
12 |
Thu 11/14 |
I/O |
|
|
Work on project |
13 |
Tue 11/19 |
OS |
5 due |
|
|
13 |
Thu 11/21 |
Exam 2 Review
|
|
|
Work on project |
14 |
Tue 11/26 |
NO CLASS. Exam 2 @4:40 (weeks 8–13) |
|
|
|
16 |
Wed 12/11 |
|
|
Final Project Demo
|
|
This course has achieved Duke's Green Classroom Certification. The certification indicates that the faculty member teaching this course has taken significant steps to green the delivery of this course. Your faculty member has completed a
checklist indicating their common practices in areas of this course that have an environmental impact, such as paper and energy consumption. Some common practices implemented by faculty to reduce the environmental impact of their course
include allowing electronic submission of assignments, providing online readings and turning off lights and electronics in the classroom when they are not in use. The eco-friendly aspects of course delivery may vary by faculty, by course and
throughout the semester. Learn more at this link.