600.233 Computer Systems Fundamentals

Fall 2016

Instructor: Philipp Koehn (phi@jhu.edu)
Class: Monday, Wednesdays, Fridays 10:00-10:50am, Hackerman B17
Annoucements: Piazza
Homework submission: Blackboard
Final exam: Friday, December 16, 2-3pm
Office hours:
Instructor:Monday 11-12, Hackerman 227
TA Kashif Memon (kmemon1@jhu.edu)Wednesday 2-4, Malone 122
CA Christy Lee (christylee@jhu.edu)Tuesday and Thursday 3-4, Malone 122
CA Gyan Namdhari (gsnamdhari@jhu.edu)Wednesday and Friday 5-6, Malone 122
CA Gregory Levine (glevine4@jhu.edu)Tuesday and Thursday 12-1, Malone 122
CA Venkatesh Gopal (vgopal3@jhu.edu)Friday, 11-1, Malone 122


Recommended textbooks:


  1. Combinational Circuits, due September 16, before 10pm
  2. Sequential Circuits, due September 26, before 10pm
  3. Attack of the Mutant SCRAM, (code), due October 12, before 10pm
  4. Eight Bits of Madness, (code), due October 26, before 10pm
  5. MIPS and SPIM, (code), due November 15, before 10pm
  6. The Power of Caches, (code), due November 21, before 10pm
  7. Cats and x86, due December 8, before 10pm
Homework assignments are based on assignments designed by Peter Froehlich for his version of the classi.


Assignment late policy: 5% deduction for each day.


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