EE 460N/EE382N.1
Fall, 2014
Yale Patt, Instructor
TAs: Stephen Pruett, Emily Bragg, Siavash Zangeneh
Course Outline
August 27, 2014
August 27: Lecture 1: Intro to the course. Levels of Transformations. Basic
architectural choices. Science of Tradeoffs.
August 28 or 29: First Discussion Session. Bookkeeping, overview, expectations,
PL0.
Programming Lab 0 is due, Sunday night, August 31, 11:59pm.
(The program itself will be empty. The purpose of the assignment
is to make sure we are on the same page re: using the system.)
September 1: no class. Labor Day.
September 3: Lecture 2: Intro to Instruction Set Architecture, with examples
taken from many diverse ISAs. ISA tradeoffs. Detailed discussion of LC-3b,
with Assembly language constructs. The Assembler, how it works. PL1
September 4 or 5: Discussion Session. (Emphasis on ISA, LC-3b, the Assembly
Process, PL1)
September 8: Lecture 3: Microarchitecture, LC-3b data path, state machine
September 10: Lecture 4: Microarchitecture, continued.
September 11,12: Discussion Session. Emphasis on microarchitecture, PL1, PL2.
Programming Lab 1 is due, Sunday night, September 14, 11:59pm.
(Write a program in LC-3b Assembly Language. Write an Assembler.
Assemble the program you have written)
September 15: Lecture 5: Pipelining, Branch Prediction. The HEP.
Problem set 1 due before class, September 17. (Emphasis: ISA, uarch
of the LC-3b, the Assembly Process)
September 17: Lecture 6: The notion of Process, the unit of work managed by
the Operating System, and its implications on Interrupts and Exceptions and
Virtual memory.
September 18,19: Discussion Session: Performance issues, PL2.
Programming Lab 2 is due, Sunday night September 21, 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.)
September 22: Lecture 7: Input/Output.
September 24: Lecture 8: Single-thread parallelism (SIMD, VLIW); Vectors
September 25,26: Discussion Session: I/O, PL3.
September 29: Lecture 9: Single-thread parallelism (o-o-o, Tomasulo)
Programming Lab 3 is due, Tuesday, September 30, 11:59pm.
(Finish the clock cycle level Simulator for the LC-3b.
Test it on the application program written in Programming Lab 1.)
October 1: Lecture 10: Single-thread parallelism (HPS, Data Flow)
October 2,3: Discussion Session. Review for Exam.
Problem set 2 due before class, October 6. (Emphasis:
Microarchitecture, Branch Prediction, Out-of-order execution.
October 6: Lecture 11: Review or catch up.
October 8: Lecture 12: Exam 1.
October 9,10: Discussion Session. Exam solution. PL3.
October 13: Lecture 13: Physical mem, unaligned access, interleaving, SRAM, DRAM
October 15: Lecture 14: Physical Memory (continued). Virtual Memory.
October 16,17: Discussion Session. Physical memory, PL4.
Problem set 3 due before class, October 20. (Physical memory)
October 20: Lecture 15: Virtual memory, page tables, tlb, VAX model,
IA32 model, contrast with segmentation.
October 22: Lecture 16: Virtual memory, continued.
October 23,24: Discussion Session. Emphasis on Virtual memory, PL4
Programming Lab 4 is due, Sunday night October 26, 11:59pm.
(Interrupts/Exceptions)
October 27: Lecture 17: Cache Memory
October 29: Lecture 18: Cache Memory, continued.
October 30,31: Discussion Section. Emphasis on Cache Memory, review for Exam 2.
Problem set 4 due before class, November 3.
(Emphasis: Virtual Memory, Cache Memory)
November 3: Lecture 19: Review or catch up.
November 4: 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.
November 5: Lecture 20: Exam 2.
November 6,7: Discusssion Session: Go over Exam solution, PL5
November 10: Lecture 21: Integer Arithmetic
November 12: Lecture 22: Floating point arithmetic and the IEEE
Standard.
November 13,14: Discussion Session. Arithmetic, PL5
Programming Lab 5 is due, Sunday night November 16, 11:59pm.
(Virtual memory)
November 17: Lecture 23: Alternative Models of Concurrency: The Multiprocessor
(Intro to Multiprocessing, Amdahl's Law, Speed-up, efficiency)
Problem set 5 due before class, November 19. Arithmetic.
November 19: Lecture 24: Interconnection networks, Cache Coherency,
Sequential Consistency.
November 20, 21: Discussion Session: Multiprocessing, PL6
November 24: Lecture 25: System Issues (BW, SMT, Power/Energy, Accelerators)
November 26: Lecture 26: Special topic, to be announced
November 27,28: Thanksgiving and Thanksgiving weekend. No discussion session.
Enjoy the holiday.
December 1: Lecture 27: Measurement Methodology.
December 3: Lecture 28: Last class, free for all!
December 4,5: Discussion Session. Review of the course.
Programming Lab 6 is due, Friday, Dec 5, 5:00pm.
(Pipelining)
Problem set 6. A study guide, not to be turned in.
Final exam: Probably Friday, December 12, 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.