This is an archive of a course I taught Fall 2017, preserved here as a resource for future students.

COMPSCI/ECE 250D: Computer Architecture

Section 01, Fall 2017


Fig. 1: This computer costs more than your car.

Overview

Lecture location: LSRC B101
Lecture time: Tue/Thu, 11:45AM - 1:00PM

Instructor: Dr. Tyler Bletsch
Email: Tyler.Bletsch AT duke.edu
Office Hours: Mon/Wed, 11AM - 12PM in Hudson 106, or by appointment

Graduate Teaching Assistants:

Recitations/Undergrad Teaching Assistants:
Sec#TimeLocationTAs
1Wed 1:25pm-2:40pmHudson Hall 115ASean HudsonFaris Sbahi
2Wed 3:05pm-4:20pmLSRC A156Katherine GuoDavid Yang
3Wed 4:40pm-5:55pmHudson Hall 232Ben SchwennesenJoseph DeChicchis
4Wed 1:25pm-2:40pmPhysics 47Webster Bei YijieLara Sonmez
5Wed 3:05pm-4:20pmHudson Hall 232Mina MungekarKunaal Sharma
6Wed 4:40pm-5:55pmLSRC A156Chung BuiBrian Nieves
7Wed 1:25pm-2:40pmHudson Hall 232Alexander BlumenstockHarrison Lundberg
8Wed 3:05pm-4:20pmHudson Hall 218Filip MazurekNeil Dhar
9Wed 1:25pm-2:40pmHudson Hall 208Josh YoungManav Avlani
10Wed 4:40pm-5:55pmHudson Hall 212Vinith SharmaAninda Manocha
UTA Office Hours: See here

Course Textbook: 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")

Links:

Schedule

#DateLectureRecitationReadingHomework due
(11:55:00pm)
1 Tue 8/29 Intro/Overview R01. Recitation: Unix basics, Hello World in C Chapter 1 (Due Wed 8/30)
Homework 0,
hw0part2 binary

2 Thu 8/31 C programming (See Resources below)
3 Tue 9/5 C programming R02. Recitation: Intro to C (See Resources below)
4 Thu 9/7 C programming Sec 2.1-2.4, 3.2, 3.5
5 Tue 9/12 From C to binary R03. Recitation: Pointers and memory management (heaptests.tgz) Sec 2.5-end
6 Thu 9/14 Assembly Sec 2.5-end
7 Tue 9/19 Assembly R04. Recitation: Intro to assembly and SPIM (simple.s) Sec 2.5-end (Due Mon 9/18) Homework 1,
homework1-kit.tgz,
prog.c
8 Thu 9/21 Assembly Sec 4.1-4.2, B.1-B.3, B.5, basic_logic.circ
9 Tue 9/26 Combinational logic R05. Recitation: Assembly calling conventions Sec B.7-B.11
10 Thu 9/28 Sequential logic Sec B.10, combo_lock.circ
11 Tue 10/3 Finite state machines,
Datapath design
R06. Recitation: Using Logisim Sec 4.3-4.4
12 Thu 10/5 Datapath design Sec 4.9 (Due Thu 10/5)
Homework 2,
homework2-kit.tgz,
prog_part.c
Tue 10/10 FALL BREAK R07. Recitation: Advanced Logisim for larger projects
13 Thu 10/12 Midterm review Homework 3,
homework3-kit.tgz,
Tue 10/17 MIDTERM R08. Recitation: Register file and ALU Study guide,
Practice midterm,
Provided reference sheet
14 Thu 10/19 Caches Sec 5.1-5.5
15 Tue 10/24 Caches R09. Recitation: Caching and memory (memdance.c) Sec 5.1-5.5
16 Thu 10/26 Caches Sec 5.1-5.5
17 Tue 10/31 Virtual Memory R10. Recitation: More caching Sec 5.6-5.9
18 Thu 11/2 Virtual Memory Sec 5.6-5.9
19 Tue 11/7 I/O R11. Recitation: Cache and virtual memory examples Sec A.8 Homework 4,
homework4-kit.tgz,
TA Guide to HW4,
Tool demo video,
Dramatic intro
20 Thu 11/9 I/O Sec A.8
21 Tue 11/14 Pipelined cores R12. Recitation: Starting the cache simulator project Sec 4.5-end
22 Thu 11/16 Pipelined cores Sec 4.5-end
23 Tue 11/21 Pipelined cores Recitation off for
THANKSGIVING BREAK
Sec 4.5-end
Thu 11/23 THANKSGIVING BREAK
24 Tue 11/28 Multicore R13. Recitation: Pipeline exercises Chapter 6
25 Thu 11/30 Multicore Chapter 6 (Due Fri 12/1)
Homework 5,
homework5-kit.tgz,
Dramatic intro
26 Tue 12/5 Intel x86 R14. Recitation: Multicore performance (worker.c) Example code,
Intel developer manual
(pages 1..3908)
27 Thu 12/7 Review for the final (Due Fri 12/15)
Extra credit!
spy-*.tgz
Sun 12/17 FINAL (2pm-5pm) Study guide
Practice final
Reference sheet

Syllabus & policies

Course synopsis

Computer structure, machine language, instruction execution, addressing techniques, and digital representation of data. Computer systems organization, logic design, microprogramming, and interpreters. Symbolic coding and assembly systems.

Prerequisite: Computer Science 201 or consent of instructor.

Grading breakdown

This course will require readings from the textbook, problem sets, programming assignments, and digital logic design. Grading breakdown:

Category%
Homework55%
Midterm exam15%
Final exam25%
Recitation5%

Homework grading

You are expected to complete the homework individually unless otherwise stated. However, you may discuss topics covered in the class.

Late homework submissions incur penalties as follows:

NOTE: If you feel in advance that you may need an extension, contact the instructor. We can work with you if you see a scheduling problem coming, but extensions cannot be granted at or near the due date!

Your homework grade will be based on what you submit to Sakai and when you submit it. The common excuses listed below will be rejected for the reasons shown:

ExcuseThing you could have done which invalidates excuse
My internet was slow or flaky so my submission was late.Submit with plenty of margin. There's no reason the assignment can't be submitted HOURS OR DAYS in advance.
I meant to submit, but I forgot to click the submit button.After submission, leave and re-visit the submission page to make double-sure your file is uploaded properly.
My computer broke and I lost my work!It's the modern era. Use one of the dozens of data mirroring or backup services: Dropbox, Google Drive, Box (free at Duke!), Crashplan, or just good old fashioned local backups. You should be able to set your laptop on fire and lose zero bytes of work.
I submitted the wrong file, let me send you the right file!After submission, re-download your files from Sakai to verify it's correct. Test it from scratch to ensure it's what you expect.
One tiny thing was wrong, and I can fix it! Let me get a regrade!The time to find those bugs is before submission. When you've built your program/circuit, you're not done...that's when testing begins! Test your solution under a variety of conditions. See here for a primer on software testing.
I didn't understand the requirements, let me fix my program and get a regrade!If you're the slightest bit unsure if your program meets the requirements, ask for clarification in lecture, recitation, or Piazza. If you're worried your submission won't pass our testing, run through it with a TA or the instructor.

I'm not trying to be a jerk, but this is the part of your academic career where we build individual competence, and as in the real world, oversights can be costly.

Recitation grading

Recitation is where you'll learn concrete skills to complement the lecture's theoretical material, and is essential. Recitation grading works as follows:

Grade appeals

All regrade requests must be in writing. Email the TA who graded the relevant portion with your questions. After speaking with the TA, if you still have concerns, contact the instructor.

All regrade requests must be submitted to the instructor no later than 2 weeks after the assignment was returned to you.

Academic integrity

I take academic integrity extremely seriously. Academic misconduct will not be tolerated, and all suspected violations of the Duke Undergraduate Honor Code will be referred to the Office of Student Conduct. A student found responsible for academic dishonesty faces formal disciplinary action, which may include suspension. A student twice suspended automatically faces a minimum 5-year separation from Duke University.

In addition to the measures taken by the Office of Student Conduct, the affected assignment(s) will receive zero credit, or possibly -100% in egregious 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.

Resources