600.229 Computer Systems Fundamentals


Spring 2018

Instructor: Philipp Koehn (phi@jhu.edu)
Class: Monday, Wednesdays, Fridays 1:30-2:20pm, Hackerman B17
Annoucements: Piazza
Homework submission: Gradescope
Final exam: Thursday, May 10, 9-12pm

Office Hours (Malone 122)

Instructor:Wednesday 12-1pm (Hackerman 227)
TA Kaiyue Wu (kaiyuewooloo@gmail.com)Wednesday 11-1 (Malone 207)
CA Daniel Smillie (dsmilli1@jhu.edu)Tuesday 1:30-2:30, Thursday 1:30-2:30
CA David Glass (dglass7@jhu.edu)Thursday 10:30-11:30, Friday 10-11
CA Chang Hwan Choi (cchoi29@jhu.edu)Tuesday 4-5, Friday 2:30-3:30
CA Tan Nguyen (tnguy188@jhu.edu)Monday 2:30-4:30
CA Xingyi (Cindy) Yang (xyang73@jhu.edu)Monday 10-11, Wednesday 10-11
CA Binjie Li (bli38@jhu.edu)Monday 11-12, Tuesday 9:20-10:20
CA Calvin Li (cli78@jhu.edu)Monday 3-4, Tuesday 3-4
CA Michael Mudgett (mmudget1@jhu.edu)Monday 12-1, Tuesday 12-1

Readings

Recommended textbooks:

Assignments

  1. Combinational Circuits, due February 9, before 10pm
  2. Sequential Circuits, due February 23, before 10pm
  3. Attack of the Mutant SCRAM, (code), due March 2, before 10pm
  4. Eight Bits of Madness, (code), due March 25, before 10pm
  5. MIPS and SPIM, (code), due April 6, before 10pm
  6. The Power of Caches, (code), due April 20, before 10pm
  7. Cats and x86, due May 4, before 10pm
Homework assignments are based on assignments designed by Peter Froehlich for his version of the class.

Grading

Assignment late policy: 5% deduction for each day.

Lectures

Date Topic Readings
Mo Jan 29Introduction CODE Chapters 4, 8, 10; HCW page basic 1, basic 4
We Jan 31(no class) -
Digital Circuits
Fr Feb 2Electricity and Circuits CODE Chapter 10-11
Mo Feb 5Boolean Algebra -
We Feb 7Number Representation CODE Chapter 8, 15
Fr Feb 9Addition and Subtraction CODE Chapter 12-13
Mo Feb 12Feedback and Flip-Flops CODE Chapter 14
We Feb 14Memory CODE Chapter 16
Fr Feb 16Instructions CODE Chapter 17
SCRAM
Mo Feb 19SCRAM Intro SCRAM handout
We Feb 21SCRAM Instructions I -
Fr Feb 23SCRAM Instructions II -
6502
Mo Feb 26Re-engineering the 6502 Video -
We Feb 28Introduction Reference; Commodore C64 Emulation
Fr Mar 2Stack JavaScript 6502 assembler and simulator
Mo Mar 5Interrupts and Bus 6502 Diagram; Fun Glitch
Midterm
We Mar 7Midterm Review Midterm 2016
Fr Mar 9Midterm -
MIPS
Mo Mar 12Introduction PH 2.1-2.3, 2.5-2.7
We Mar 14Fast Arithmetic PH 2.10, 3.3, 3.4
Fr Mar 16Pseudo Instructions and Functions PH 2.8
Mo Mar 26Pipelining PH 4.5-4.6
We Mar 28Data Hazards PH 4.7
Fr Mar 30Branch Prediction PH 4.8-4.9
Mo Apr 2Cache Basics PH 5.1-5.3
We Apr 4Cache Control PH 5.4, 5.8-5.9
Fr Apr 6Cache Policies PH 5.7
Mo Apr 9Floating Point Numbers PH 3.5
x86
We Apr 11x86 Introduction BO 3.1, online links: 1 2 3 4 5 Intel Manual
Fr Apr 13Compiling C code BO 3.2-3.6
Mo Apr 16Functions and Stack BO 3.7
We Apr 18Linking BO 7
Fr Apr 20(no class) -
Mo Apr 23Process Control BO 8
We Apr 25Virtual Memory BO 9.1-9.5
Fr Apr 27Virtual Memory II BO 9.6-9.9
Mo Apr 30Virtual Machines PH 5.6
Multicore
We May 2Graphics Processing Units BO Appendix C
Fr May 4Review -