600.229 Computer Systems Fundamentals


Fall 2019

Instructor: Philipp Koehn (phi@jhu.edu)
Class: Monday, Wednesdays, Fridays 10-10:50am, Hackerman B17
Annoucements: Piazza
Homework submission: Gradescope
Midterm exam: September 27
Final exam: TBA

Office Hours (Malone 122)

Instructor:Wednesday 12-1pm (Hackerman 227)

Readings

Recommended textbooks:

Assignments

  1. Hexdumps, due September 13, 2019 before 10:00 pm
  2. Digital Logic, due September 20, 2019 before 10:00 pm
  3. Machine-Level Programming, due September 27, 2019 before 10:00 pm
  4. MIPS, Cache Simulator, due October 25, 2019 before 10:00 pm
  5. x86-64 Hexdump, due November 8, 2019, before 10:00 pm
  6. Internet Calculator, due November 22, 2019, before 10:00 pm
  7. Multithreaded Internet calculator, due December 6, 2019, before 10:00 pm
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
Th Aug 29Introduction: Electricity and Circuits CODE Chapters 4, 8, 10-11; HCW page basic 1, basic 4
Digital Circuits
Fr Aug 30Boolean Algebra -
We Sep 4Addition and Subtraction CODE Chapter 12-13
Fr Sep 6Feedback and Flip-Flops CODE Chapter 14
Mo Sep 9Memory CODE Chapter 16
We Sep 11Instructions CODE Chapter 17
SCRAM
Fr Sep 13SCRAM Introduction SCRAM handout
Mo Sep 16SCRAM Instructions -
6502
We Sep 18Introduction Reference; Commodore C64 Emulation
Fr Sep 20Stack JavaScript 6502 assembler and simulator
Mo Sep 23Interrupts and Bus 6502 Diagram; Fun Glitch
MIPS
We Sep 25Introduction PH 2.1-2.3, 2.5-2.7
Fr Sep 27Fast Arithmetic PH 2.10, 3.3, 3.4
Mo Sep 30Midterm Review Midterm 2016 (solutions); Midterm 2018 (solutions)
We Oct 2Pseudo Instructions and Functions PH 2.8
Fr Oct 4Midterm -
Mo Oct 7Pipelining PH 4.5-4.6
We Oct 9Data Hazards PH 4.7
Fr Oct 11Branch Prediction PH 4.8-4.9
Mo Oct 14Cache Basics PH 5.1-5.3
We Oct 16Cache Control PH 5.4, 5.8-5.9
Mo Oct 21Cache Policies PH 5.7
We Oct 23Floating Point Numbers PH 3.5
x86
Fr Oct 25x86 Introduction BO 3.1, online links: 1 2 3 4 5 Intel Manual
Mo Oct 28Compiling C code BO 3.2-3.6
We Oct 30Functions and Stack BO 3.7
Fr Nov 1Linking BO 7
Mo Nov 4Process Control BO 8
We Nov 6(no class)-
Fr Nov 8Virtual Memory BO 9.1-9.5
Mo Nov 11Virtual Memory II BO 9.6-9.9
Networks
We Nov 13Unix I/O BO 11
Fr Nov 15IP Protocol, Unix Sockets BO 11.1-11.4, server.c
Mo Nov 18Application Protocols BO 11.5-11.6, webserver.zip, webclient.zip
Threads and Concurrency
We Nov 20Concurrency with Processes, I/O Multiplexing BO 12.1-12.2, mp_webserver.zip
Fr Nov 22Concurrency with Threads BO 12.3, mt_webserver.zip, mandelbrot.zip
Mo Dec 2Synchronizing Access to Data BO 12.4-12.5, synch.zip
We Dec 4Parallelism, Concurrency Issues BO 12.7, synch2.zip
Fr Dec 6Review Final 2016, solutions, Networks/threads review problems