Y. N. Patt, Instructor
TAs: Ramapriyan Chakravarthy, Khubaib, Vivekanand Venugopal
January 21, 2009
January 21: Lecture 1: Intro to the course. Levels of Transformations. Basic architectural choices. Science of Tradeoffs.
January 22 or 23: First Discussion Section. Bookkeeping, overview, expectation.
January 26: Lecture 2: Intro to Instruction Set Architecture, with examples taken
from many diverse ISAs. Detailed discussion of LC-3b, with Assembly
January 28: Lecture 3: Translation from Assembly Language to ISA
January 29 or 30: Discussion Section. Emphasis on Programming Lab 1.
Problem set 1 due before class, February 2
(Emphasis: ISA, LC-3b, the Assembly process)
February 2: Lecture 4: Intro to Microarchitecture: Detailed discussion of an LC-3b implementation.
February 4: Lecture 5: LC-3b microarchitecture, continued.
February 5 or 6: Discussion Section. Emphasis on Programming Lab 1.
Programming Lab 1 is due, Sunday night February 8, 11:59pm.
(Write a program in LC-3b Assembly Language. Write an Assembler.
Assemble the program you have written)
February 9: Lecture 6: Physical memory, unaligned access, interleaving, SRAM, DRAM.
February 11: Lecture 7: Virtual memory, page tables, TLB, VAX model, IA32 model, contrast with segmentation.
February 12 or 13: Discussion Section. Emphasis on Programming Lab 2.
Programming Lab 2 is due, Sunday night February 15, 11:59pm.
(Write a program in C that simulates at the instruction
cycle level the baseline LC-3b ISA. Test your simulator with
the output of the assembler for the application program
written in Programming Lab 1.)
February 16, 18: Extra Discussion Section targeted toward Programming Lab 3.
February 19 or 20: Discussion Section. Emphasis on Physical, Virtual memory.
Problem set 2 due before class, February 23
(Emphasis: Microarchitecture, Physical memory, Virtual memory)
February 23: Lecture 10: Virtual memory, continued
February 25: Lecture 11: Cache Memory
February 26 or 27: Discussion Section. Emphasis on Virtual memory, caches.
Programming Lab 3 is due, Sunday night, March 1, 11:59pm.
(Finish the clock cycle level Simulator for the LC-3b. Test it on the application program written in Programming Lab 1.)
March 2: Lecture 12: Interrupts/Exceptions
March 4: Lecture 13: I/O
March 5 or 6: Discussion Section. Prepare for 1st mid-term.
Problem set 3 due before class, March 9
(Emphasis: Virtual Memory, Cache Memory, Interrupts/Exceptions)
March 9: Lecture 14: Review or catch up.
March 11: Lecture 15: Exam 1
March 12 or 13: Discussion Section canceled -- Enjoy Spring break!
March 16-20: Spring Break
March 23: Lecture 16: Introduction to Performance Enhancement. Pipelining, Branch Prediction.
March 25: Lecture 17: Performance Enhancement: Vector Processing
March 26 or 27: Discussion Section. Emphasis on Pipelining, Branch Prediction.
March 30: Lecture 18: Performance Enhancement: Out-of-order execution.
March 30: Last day for an undergraduate to Q drop without petition. Last day to change grading to pass/fail.
Problem set 4 due before class, April 1. (Emphasis: I/O, Pipelining, Br Pred, Vector Processing, out-of-order)
April 1: Lecture 19: Guest lecture: The microarchitecture of a current microprocessor.
April 2 or 3: Discussion Section. Emphasis on programming lab 4.
Programming Lab 4 is due, Sunday night April 5, 11:59pm.
April 6: Lecture 20: Integer Arithmetic
April 8: Lecture 21: Floating Point, and the IEEE Standard
April 9 or 10: Discussion Section. Emphasis on Arithmetic.
April 13: Lecture 22: Intro to Multiprocessing, interconnection networks, Amdahl's Law, consistency models (basically everything except cache coherency).
April 15: Lecture 23: Cache Coherency.
April 16 or 17: Discussion Section. Emphasis on Programming Lab 5.
Programming Lab 5 is due, Sunday night April 19, 11:59pm.
April 20: Lecture 24: Alternative Models of Concurrency: SIMD, MIMD, VLIW, Data Flow, new wrinkles
April 22: Lecture 25: Measurement Methodology.
April 23 or 24: Discussion Section. Review for 2nd midterm exam.
April 27: Lecture 26: Review for exam, or catch up!
Problem set 5 due before class, April 27
(Emphasis: OOO, integer and floating point arithmetic, multiprocessing, cache coherency)
April 29: Lecture 27: Exam 2
April 30 or May 1: Discussion Section. Emphasis on Programming Lab 6.
May 4: Lecture 28: Special lecture: TBD
May 6: Lecture 29: Last class, free for all!
May 7 or 8: Discussion Section. Emphasis on Programming Lab 6.
Programming Lab 6 is due, Friday, May 8, 5:00pm. (Pipelining)
Problem set 6. A study guide, not to be turned in.
Final exam: Probably Friday, May 15, 7 to 10pm. (TENTATIVE) Note: The
Registrar has the right to change the dates of the final exams. Please keep
checking the Registrar's web site and our announcements to be sure when/where
the final exam will be given.