Department of Electrical and Computer Engineering
The University of Texas at Austin

EE 360N
Spring, 2009
Y. N. Patt, Instructor
TAs: Ramapriyan Chakravarthy, Khubaib, Vivekanand Venugopal
Course Outline
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 language constructs.

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.
(Virtual memory)

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.