ECE 550D: Fundamentals of Computer Systems and Engineering — Fall 2022

Class meeting times and location: MoWe 10:15–11:30AM (Prof. Younes) or TuTh 10:15–11:30AM (Prof. Li) — FITZPATRICK SCHICIANO A 1464

Recitation meeting time and location: Fr 10:15–11:30AM — French Science 2231

Lab location: Hudson Hall 214 and 202A

Image
based on a diagram by Dr. Tyler Bletsch

Instructors: Dr. Rabih Younes, Dr. Hai "Helen" Li
Duke e-mails: rabih.younes, hai.li
Instructor 1-on-1 office hours are available by appointment (link to make appointments posted on Sakai).
To provide anonymous feedback about anything related to the course, please follow this link (password posted on Sakai).

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 Sakai.

Grading Policy

Class Flow

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 (due Fridays at 11:59pm) Recitation (Friday, in teams of 2-3)
1 Mo-Tu 8/29-30 Syllabus + Intro
1 We-Th 8/31-9/1 From Transistors to Gates Quartus + Verilog Intro
2 Mo-Tu 9/5-6 Combinatorial Logic
2 We-Th 9/7-8 Digital Arithmetic Adder
3 Mo-Tu 9/12-13 Digital Arithmetic
3 We-Th 9/14-15 Storage and Clocking Multiplier
4 Mo-Tu 9/19-20 Finite State Machines
4 We-Th 9/21-22 ISA Simple ALU (PC1) FSM
5 Mo-Tu 9/26-27 ISA
5 We-Th 9/28-29 Datapath Full ALU (PC2) Behavioral Verilog
6 Mo-Tu 10/3-4 Datapath
6 We-Th 10/5-6 Datapath + Clock Division + FPGAs FPGA Board Intro
7 Mo-Tu 10/10-11 NO CLASS (Fall Break)
7 We-Th 10/12-13 Practice Problems Register File (PC3) I/O Interfacing: PS2
8 Mo-Tu 10/17-18 Exam 1 Review
8 We-Th 10/19-20 Pipelining Exam 1 [beginning - Datapath]
9 Mo-Tu 10/24-25 Exam 1 Muddiest Points
9 We-Th 10/26-27 Pipelining Work on processor
10 Mo-Tu 10/31-11/1 Memory Hierarchy
10 We-Th 11/2-3 Memory Hierarchy Simple Processor (PC4) (in teams of 2-3) I/O Interfacing: VGA
11 Mo-Tu 11/7-8 Virtual Memory
11 We-Th 11/9-10 Virtual Memory Work on processor
12 Mo-Tu 11/14-15 Interrupts, Exceptions, and System Calls
12 We-Th 11/16-17 OS Work on processor
13 Mo-Tu 11/21-22 I/O
13 We-Th 11/23-24 NO CLASS (Thanksgiving Recess) Full Processor (PC5) (in teams of 2-3)
14 Mo-Tu 11/28-29 Practice Problems
14 We-Th 11/30-12/1 Exam 2 Review Exam 2 [Pipelining - OS]
16 Fr 12/16 NO CLASS Final Project (PC6) Demo (in teams of 2-3)