SCHEDULE


IMPORTANT NOTE: The following schedule represents a current best guess concerning actual due dates (and everything else), to give you a general idea of the pace and timing of the class. This schedule is likely to change as the quarter progresses.
This document

Reading assignments are from Patterson and Hennesey (P&H) unless specified otherwise. K&R refers to The C Programming Language by Kernighan and Ritchie.

Skip directly to Week 1 | Week 2 | Week 3 | Week 4 | Week 5 | Week 6 | Week 7 | Week 8 | Week 9 | Week 10

DAY PREPARATION IN-CLASS TOPIC/ACTIVITY FOLLOW-UP ASSIGNMENTS
M1
Reading:
P&H: Ch. 1 - 1.3
P&H: Appendix A.3, A.4
Syllabus
Course Overview and Big Ideas (video)
(including Von Neumann architecture, Fetch/Execute Cycle, Stored Program Concept and Compilation/Assembly Example)
Alt Big Picture
First Introduction to C (video), Example C code
HW #1
PP #0
W1
Reading:
K&R: 1.7 - end
K&R: 6.1 - 6.2, 6.7
Optional: Make Manual 2-2.4
Homework Due:
HW #1
More C:
Arrays and Strings (video - 16 min),
Structures (video - 4 min, slides),
C pointers (video - 30 min, slides),
Parameter Passing, I/O using printf/scanf (video - 7.5 min, slides)
Pointer Exercise (questions #1-4)
(deprecated slides: Pointers, Parameter Passing, I/O, Arrays, Strings)
F1
Reading:
K&R: Ch. 1 - 1.6 and/or
Essential C and/or
The GNU C Programming Tutorial
K&R: 5.1 - 5.5
Optional: Tutorial on Pointers and Arrays in C by Ted Jensen.
Review/Discussion Questions: DQ #1
Programming Project Due:
PP #0
Audio About K & R - 3:29 min
Common Pass-by-Reference Error (video - 2:46) (slide)
Strings, Arrays, and Pointers (video - 23:19) (slides)
typedef (video - 4:23) (slide)
C compilation (video - 3:38) ( steps, data flow )
Segments of a Process
Makefiles: (video - 4:49) (slide) (Example)
Pointer Exercise (questions #5-7)

PP #1a, PP #1b
DAY PREPARATION IN-CLASS TOPIC/ACTIVITY FOLLOW-UP ASSIGNMENTS
M2
Pre-Class Videos:
Static vs. Dynamic Memory Allocation (video - 12:13) (slides)
Decimal, Octal, Binary Representations (video - 9:55) (slides)
Representing Positive and Negative Integers (video - 21:39) (slides)
Reading:
3.1 - 3.3, Review 2.4
Review/Discussion Questions: DQ #2
Structured Design: (video - 9 min)
Aquarium Structure Chart
Example Structure Chart
Review Pointer Exercises from last week
Addition & Subtraction, including Overflow
(part of the More Details on Two's Complement slide)
Exercises related to Number Representation
HW: Interpreting Binary Data, Part A
W2
Pre-Class Videos:
Representing Floating Point Numbers (video - 17:10) (slides)
Reading:
3.5 (skim pgs. 250-270)
3.8,3.9
Programming Project Due:
PP #1a
Sign Extension for Integers (video - 3 min)
(part of the More Details on Two's Complement slide)
Exercises related to Number Representation
HW: Interpreting Binary Data, Part B
F2
Reading:
Reference: A.1, A.2, A.5
Integer Multiplication (video - 23 min) (slide)
ASCII, Unicode (see the chart on the Wikipedia page on UTF-8) (video - 18:18)
DAY PREPARATION IN-CLASS TOPIC/ACTIVITY FOLLOW-UP ASSIGNMENTS
M3
Pre-Class Videos:
Review Big Picture video (1:28 - 6:12)
Introduction to Assembly Language and MIPS (video - 13min) (slides)
Reading:
P&H: The BIG Picture, p. A-12 (in Appendix A, section 2)
P&H: Ch. 2.1 - 2.3, 2.5 (Skip 2.4 for now)
Programming Project Due:
PP #1b
Architecture Basics (COMP 105 view)
Textbook graphic
Start MIPS
Two Examples
Review Compilation, Assembly
In Class Exercises (.doc)
Videos from Class:
Review MIPS add AND addi, Initializing Registers With Constants, Load and Store, Multiplication via Shift, Machine Code Layout, Registers: Initial Look, MIPS Design Principles
HW: Interpreting Binary Data, Part C
PP #2
W3
Reading:
Ch. 2.6 - 2.7
Homework Due:
HW: Interpreting Binary Data
Two Examples (video - 6.5min)
MIPS: Conditions and Loops (video - 33min)
Instruction Formats So Far (.html) decisions.txt worksheet (solution (.txt)) (video - 8.5min)
Arrays and lw/sw offsets (slide )
Discussion of Disassemblers and Assemblers. (video 2 min)
HW: MIPS (A)
HW: MIPS (B)
Mars (MIPS Simulator) (optional)
F3
Reading:
P&H: Ch. 2.4, 2.9, 2.12
Homework Due:
HW: MIPS (A)
Arrays and Pointers Example (video - 20.5min)
Arrays vs. Pointers: worksheet (.txt) (solution (.txt)) (solution from class (.txt))
Work on PP #2
DAY PREPARATION IN-CLASS TOPIC/ACTIVITY FOLLOW-UP ASSIGNMENTS
M4
Reading:
Ch. 2.8, 2.10, 2.11, 2.13
Skim A.6
Homework Due:
HW: MIPS (B) (extended to Wednesday because of Moodle error (2017 only))
Review:
00000000 00010000 01000000 00100000 What does this mean? Depends on how a program interprets it. (no video/audio)
MIPS add and srl using same binary, i.e.,
000000 00000 10000 01000 00000 100000 (audio - 4.5min)
MIPS slt and beq (slide, audio/video - 20min (video is relevant from 9:40 to 14:45))
MIPS j (slide, audio - 5min, whiteboard pic)

MIPS: Procedures (video - 22min, slides, Memory Diagram (.gif))
MIPS: Procedures More about using the Stack (this may not be a great example)
Examples and Exercises:
MIPS: Procedures Variation on Previous Arrays and Pointers Example using Procedures (no stack)
MIPS: Procedures Procedure Example (leaf procedure, simple stack example)
MIPS: Procedures fact.s (txt)
MIPS: Procedures In Class Exercise
HW: MIPS (C)
W4
Reading:
Ch. 2.13
2.14, 2.18, 2.19
Homework Due:
HW: MIPS (C)
MIPS: Procedures (continued)
Translating MIPS Assembly to Machine Code, including all 3 Formats and special processing for branch and jump instructions (slides)
Final Summary of Instruction Formats
MIPS Assembly ←→ Machine Mappings (slides, video - 4 min)
Review: beq offsets (translating beq instructions to machine code) (slide, video - 6 min)
Review: lw/sw offsets (slide )
F4
Reading:
B.1-B.3, B.5
Gates and Adders
(video from class - 33 min)
Gates slides
Binary Addition slides
ALU slides
MUX circuit (video)
Constructing an ALU (slides from textbook)
DAY PREPARATION IN-CLASS TOPIC/ACTIVITY FOLLOW-UP ASSIGNMENTS
M5
Reading:
1.4-1.5
B.7-B.8 (through the "Register Files" subsection, which ends on p. B-56)
optional: B.9-B.10 (Alyce: double-check this)
Programming Project Due:
PP #2
ALU (should have done this F4)
ALU slides
Constructing an ALU (slides from textbook)
PLA\'s and Memory Latches
(video from class - 33 min)
(extra example: see slide 18)
State Elements
state_elements.circ
PP #3
W5
Practice Midterm (skip page dealing with performance, which we will address later)
Final Summary of Instruction Formats
F5 Review material through M5 Midterm Review (Practice Midterm)
DAY PREPARATION IN-CLASS TOPIC/ACTIVITY FOLLOW-UP ASSIGNMENTS
M6 MIDTERM
W6
Reading:
4.1-4.3
MUX circuit (video -- 5:14)
Single Cycle Datapath (slides 1-13) (video -- 24:29)
PathSim (.html)
PathSim Lab (.html)
HW: Single-Cycle Datapath
F6
Reading:
4.1-4.3
Partial Recap from Wednesday, cut short by ClickShare problems (video)
Single Cycle Datapath Control Lines (slides 14-15) (video -- 9:27)
Circuits for Control Lines (slides 3 - 4)
Datapath Stages (slides 16-27) (video -- 11:15)
(Multicycle logic -- slides 9 - 14)
Presentation Topics

EVERYTHING BELOW THIS POINT IS SUBJECT TO CHANGE DUE TO DOGL !!!

DAY PREPARATION IN-CLASS TOPIC/ACTIVITY FOLLOW-UP ASSIGNMENTS
M7
Reading:
Ch. 1.6-1.8, 1.10-1.11
Homework Due:
HW: Single-Cycle Datapath
(Dated) Graph showing performance trends
Machine Performance (video 50:42) (slides)
W7
Reading:
4.4-4.6
Programming Project Due:
PP #3
Datapath Stages (video -- 11:15) (should have been F6)
Pipelining (video -- 34:27) (textbook slides, Alyce's slides)
F7
Reading:
4.10,4.11,4.13,4.14
Presentation Proposal
HW: Single-cycle, Multi-cycle, Pipelined Datapaths
DAY PREPARATION IN-CLASS TOPIC/ACTIVITY FOLLOW-UP ASSIGNMENTS
M8
Reading:
5.1-5.3
Memory Hierarchy (slides) (video -- 52:21)
W8
Reading:
5.4 (through p. 508)
5.5, 5.10-5.12
Homework Due:
HW: Single-cycle, Multi-cycle, Pipelined Datapaths
Presentations:
To be announced
Homework: Caches
F8
Reading:
6.1-6.4, 6.9
In-class work on practice final exam
Actual Final Exam Take-home Question (This is a real exam question, so do not talk about it with anyone else.)
DAY PREPARATION IN-CLASS TOPIC/ACTIVITY FOLLOW-UP ASSIGNMENTS
M9
Presentations:
Current Intel Chips — Raphael
Reflections on M9 Presentation(s) (template in Word format)
W9
Reading:
6.5-6.8, 6.11-6.13
7.1-7.13
Homework Due:
Homework: Caches
Reflections on M9 Presentations Due
Guest Speaker: Dan Nicolaescu
F9
F9 Video Presentations Due
Guest Speaker: Dan Nicolaescu
Reflections on F9 Video Presentations:
Cloud Storage — Peter & Austen
Disks and Raid — Sam & Michael
Hardware in Mobile Devices — Azra & Lionel & Tanush
Moore's Law — Andrew & Sivhaun
Parallel Programming — Colleen & Marlisa & YanYan
Performance and Parallelism — Bart & Norah
DAY PREPARATION IN-CLASS TOPIC/ACTIVITY FOLLOW-UP ASSIGNMENTS
M10 MEMORIAL DAY
W10
Reading:
2.15

Reflections on F9 Video Presentations Due

W10 Video Presentations Due
Presentations:
Review Part II of practice final exam (reference sheet, datapath diagram)
Video on lw Datapath
Reflections on W10 Video Presentations:
GPU's — Sarah & Xiang
Processors of the Future — David & Keenan
Quantum Computing — Danny & Josh & Younsuk
F10
Reflections on W10 Presentations & Video Presentations Due
Presentations:
Evolution of C — Zach
Review for Final
Reflection on F10 Presentation due on Monday
Exam Week Time and place for Final Exam will be announced on the Registrar's web site.