Y. N. Patt, Instructor
TAs: Faruk Guvenilir, Sumedha Bhangale, Stephen Pruett
January 14, 2013
January 14: Lecture 1: Intro to the course. Levels of Transformations. Basic
architectural choices. Science of Tradeoffs.
January 16: Lecture 2: Intro to Instruction Set Architecture, with examples
taken from many diverse ISAs. Detailed discussion of LC-3b, with Assembly
January 17 or 18: First Discussion Session. Bookkeeping, overview, expectations.
January 21, no class. Martin Luther King Day.
January 23: Lecture 3: Translation from Assembly Language to ISA
January 24 or 25: Discussion Session. (Emphasis on ISA, LC-3b, the Assembly
Process, Programming Lab 1)
Problem set 1 due before class, January 28. (Emphasis: ISA, LC-3b,
the Assembly Process))
January 28: Lecture 4: Intro to Microarchitecture: Detailed discussion of an
January 30: Lecture 5: LC-3b microarchitecture, continued. Pipelining.
January 31, February 1: Discussion Session. Emphasis on Programming Lab 1.
Programming Lab 1 is due, Sunday night, February 3, 11:59pm.
(Write a program in LC-3b Assembly Language. Write an Assembler.
Assemble the program you have written)
February 4: Lecture 6: Performance enhancement: Branch Prediction, out-of-order
February 6: Lecture 7: Out-of-order execution, continued.
February 7 or 8: Discussion Session. Emphasis on Programming Lab 2.
Programming Lab 2 is due, Sunday night February 10, 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 11: Lecture 8: Physical memory, unaligned access, interleaving, SRAM,
February 13: Lecture 9: Virtual memory, page tables, tlb, VAX model,
IA32 model, contrast with segmentation.
February 14 or 15: Discussion Session. (Emphasis on Physical, Virtual memory.
Branch Prediction, out-of-order exec.)
Problem set 2 due before class, February 18. (Emphasis:
Microarchitecture, Branch Prediction, Out-of-order execution.
February 18: Lecture 10: Virtual memory, continued.
February 20: Lecture 11: Cache Memory
February 21, 22: Discussion Section. Emphasis on Programming Lab 3.
Programming Lab 3 is due, Sunday night, February 24, 11:59pm.
(Finish the clock cycle level Simulator for the LC-3b.
Test it on the application program written in Programming Lab 1.)
February 25: Lecture 12: Cache Memory, continued.
February 27: Lecture 13: Interrupts/Exceptions.
February 28, March 1: Discussion Session. Emphasis on Virtual memory, caches.
preparation for exam 1.
Problem set 3 due before class, March 4.
(Emphasis: Physical Memory, Virtual Memory, Cache Memory)
March 4: Lecture 14: Review or catch up.
March 6: Lecture 15: Exam 1.
March 7 or 8: Discussion Session canceled -- Enjoy Spring break!
March 11-15: Spring Break
March 18: Lecture 16: I/O
March 20: Lecture 17: I/O, continued.
March 21 or 22: Discussion Session. Emphasis: I/E, I/O, Int Arith, Lab 4
March 25: Lecture 18: Integer Arithmetic
March 27: Lecture 19: Floating point arithmetic and the IEEE Standard.
March 28 or 29: Discussion Session. Emphasis: Lab 4
Programming Lab 4 is due, Sunday night March 31, 11:59pm.
April 1: Lecture 20: Floating point (continued)
April 3: Lecture 21: Alternative Models of Concurrency: The Uniprocessor
(SIMD, VLIW, DAE, HPS, Data Flow)
April 1: Last day an undergraduate student may, with the
dean’s approval, withdraw from the University or drop a class
except for urgent and substantiated, nonacademic reasons.
Last day to change grading to pass/fail.
April 4 or 5: Discussion Session. Emphasis on uniprocessor concurrency.
Problem set 4 due before class, April 8.
(Emphasis: Interrupts/Exeptions, I/O)
April 8: Lecture 22: Vector Processing.
April 10: Lecture 23: Alternative Models of Concurrency: The Multiprocessor
(Intro to Multiprocessing, Amdahl's Law, Speed-up, efficiency)
April 11 or 12: Discussion Session. Review for 2nd midterm exam.
Problem set 5 due before class, April 15.
(I/O, Arithmetic, Uniprocessor concurrency)
April 15: Lecture 24: Review for exam, or catch up!
April 17: Lecture 25: Exam 2
April 18 or 19: Discussion Session. Emphasis on Programming Lab 5.
April 22: Lecture 26: Interconnection networks, Cache Coherency,
Programming Lab 5 is due, Tuesday night April 23, 11:59pm.
April 24: Lecture 27: Measurement Methodology.
April 25 or 26: Discussion Session. Emphasis on Programming Lab 6.
April 29: Lecture 28: Special lecture: TBD
May 1: Lecture 29: Last class, free for all!
May 2 or 3: Discussion Session. Review of the course.
Programming Lab 6 is due, Friday, May 3, 5:00pm. (Pipelining)
Problem set 6. A study guide, not to be turned in.
Final exam: Probably Friday, May 10, 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.