ECE 550D
Fundamentals of Computer Systems and Engineering
Fall 2024

Image
based on a diagram by Dr. Tyler Bletsch
Class meeting times and location: Recitation meeting time and location: Fr 8:30–9:45am — FITZPATRICK SCHICIANO A 1464
Lab location: Hudson Hall 214

Instructor: Dr. Rabih Younes
Duke e-mail: rabih.younes
Instructor 1-on-1 office hours are available by appointment (link to make appointments on our Canvas homepage).
To provide anonymous feedback about anything related to the course, please follow the link provided on our Canvas homepage.

Teaching Assistants (TAs): TA office hours (location: Hudson Hall 214):

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. 3 units. Co-requisite: ECE 551D.

Learning Outcomes

Having successfully completed this course, the student will be able to:

Textbook and Other Course Material

Textbook not required. One suggested textbook is: 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 needed material will be posted on Canvas.

Grading Policy

Important Notes

Extremely important advice:

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:

Misconduct

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.

Tentative Schedule

Week Date Topic Project Checkpoint Due Recitation (Fridays, in teams of 2)
1 Tue 8/27 Syllabus + Intro
1 Thu 8/29 From Transistors to Gates Quartus + Verilog Intro
2 Tue 9/3 Combinatorial Logic
2 Thu 9/5 Digital Arithmetic Adder
3 Tue 9/10 Digital Arithmetic
3 Thu 9/12 Storage and Clocking Multiplier
4 Tue 9/17 Finite State Machines Simple ALU (PC1)
4 Thu 9/19 ISA FSM
5 Tue 9/24 ISA
5 Thu 9/26 Datapath Full ALU (PC2) Behavioral Verilog
6 Tue 10/1 Datapath
6 Thu 10/3 Clock Division + FPGAs + Pipelining FPGA Board Intro
7 Tue 10/8 Pipelining Register File (PC3)
7 Thu 10/10 Practice Problems I/O Interfacing: PS2
8 Tue 10/15 NO CLASS (Fall Break)
8 Thu 10/17 Exam 1 Review Exam 1 [beginning - Datapath]
9 Tue 10/22 Exam 1 Muddiest Points + Pipelining
9 Thu 10/24 Memory Hierarchy Work on processor
10 Tue 10/29 Memory Hierarchy Simple Processor (PC4) (in teams of 2)
10 Thu 10/31 Virtual Memory I/O Interfacing: VGA
11 Tue 11/5 Virtual Memory
11 Thu 11/7 Interrupts, Exceptions, and System Calls Work on processor
12 Tue 11/12 OS
12 Thu 11/14 I/O Work on processor
13 Tue 11/19 Practice Problems Full Processor (PC5) (in teams of 2)
13 Thu 11/21 Exam 2 Review Exam 2 [Pipelining - I/O]
14 Tue 11/26 NO CLASS
16 Sun-Tue 12/13-15 NO FINAL EXAM Interactive Game (PC6) Demo (in teams of 2-3)