Department of Electrical and Computer Engineering
The University of Texas at Austin
EE 306, Fall, 2011
Yale Patt, Instructor
TAs:Faruk Guvenilir, Milad Hashemi, Jennifer Davis, Garrett Galow
Ben Lin, Taylor Morrow, Stephen Pruett, and Jee Ho Ryoo
Course Outline
August 24, 2011
August 24: Lecture 1. Overview of EE 306.
The computer -- a complex system organized in levels of interpretation.
The computer -- a universal computational device; given enough time and space it can do anything any other computational device does.
August 26: Discussion Session. Orientation to the LRC system, tools.
August 29: Lecture 2: Bits and operations on bits.
- The bit as a unit of information.
- Encoding of bits: Binary numbers (integer data type, ASCII characters).
- Negative numbers, 2's complement representation, sign-extension.
- hex representation of binary numbers.
- Arithmetic operations on numbers. ADD, SUB. [Note that x+x = left shift]
- Logical operations on bits. AND, OR, NOT.
August 31: Lecture 3. Bits and operations on bits (continued).
September 2: Discussion Session. Emphasis on Chapters 1,2.
September 5: Labor Day. No class.
Problem set 1, due before class, September 7.
September 7: Lecture 4. Basic Logic Structures.
- The transistor as a switch
- Basic Gates (AND, OR, NOT)
- Truth table representations
- Any arbitrary function can be built out of these gates (no attempt at minimization. Just an awareness exercise)
- full ADDER, MUX, DECODER
September 9: Discussion Session. Emphasis on Chapter 2,3.
September 12: Lecture 5. Storage elements.
- Basic storage element (Gated RS latch)
- A register
- a logic circuit to implement a small piece of memory (perhaps 2**2 x 3)
- concept of memory: address space, addressability
September 14: Lecture 6. Finite State Control and Sequential Machines.
- The notion of state
- State diagram, Next State table, State Assignment
- Implementation example: sequential machine
September 16: Discussion Session. Emphasis on Chapter 3.
Problem set 2, due before class, September 19.
September 19: Lecture 7. Introduction to Von Neumann model. Emphasis on memory.
- the basic structure of the Von Neumann model, showing the basic flow.
- instruction = opcode, operands
- encoding of instructions and data
- instruction cycle (Fetch, Decode, EA, Fetch data, Execute, Store result)
- organization of memory
- address space, addressability revisited (MAR, MDR)
September 21: Lecture 8. ISA Specification of the LC-3
- instruction formats
- operates
- LD/ST (also, indirects)
- control (condition codes: N,Z,P)
- The datapath necessary to implement the LC-3
- How I/O works at a very simple level [Keyboard in, screen out]
- KBDR, KBSR, DDR, DSR (ready bit, interrupt enable bit)
- Conversion
September 23: Discussion Session: Review for Exam 1.
Problem set 3, due before class, September 26.
September 26: Lecture 9. Review.
September 28: Lecture 10. Exam 1.
September 30: Discussion Session: Introduction to the LC-3 Simulator.
October 3: Lecture 11. Problem Solving and On-Line Debugging.
- Elements of Problem Solving (stepwise refinement, systematic decomposition, etc.)
- Fundamentals of Debugging (setting breakpoints, single-step, deposit, examine, etc.)
October 5: Lecture 12. A stored program in the LC-3 ISA
- the control structure of a stored program (sequential, conditional, iteration)
- a detailed example in machine language
- example will use keyboard input, crt output.
- example will include entering data via the keyboard and outputting on the monitor
October 7: Discussion Session: Emphasis on Programming lab 1.
Extra office hours will be held on Sunday, October 9 and on Tuesday, October 11
re: the first programming lab.
October 10: Lecture 13. Moving up a level, Assembly Language and the Assembler.
Programming Assignment 1 due, 11:59pm, October 11.
October 12: Lecture 14. Detailed example of Lecture 12, in Assembly Language.
- going from higher to lower level: interpretation vs. translation
- translation: what do assemblers and compilers do?
- hand assemble programs from earlier lectures.
October 14: Discussion Session: Emphasis on Chapter 7.
October 17: Lecture 15. Physical I/O.
Problem set 4, due before class, October 19.
October 19: Lecture 16. Physical I/O, continued.
October 21: Discussion Session: Emphasis on Programming Lab 2.
Programming Assignment 2 due, 11:59pm, October 23.
October 24: Lecture 17. The TRAP instruction and I/O Service Routines
- Keyboard and Monitor Data and Status Registers
- Polling and Interrupt driven processing
- ASCII/binary conversion
October 26: Lecture 18. Subroutines (JSR/RET mechanism)
October 28: Discussion Session: Chapter 8,9. Prepare for Exam 2.
Problem set 5, due before class, October 31.
October 31: Lecture 19. Review or catch up.
November 2: Lecture 20. Exam 2.
November 4: Discussion Session: Deep breath: General review.
November 7: Lecture 21. Stacks. Parameters. How are they passed?
November 9: Lecture 22. Interrupt processing
November 11: Discussion Session: Programming lab 3.
Programming Assignment 3 due, 11:59pm, November 13.
November 14: Lecture 23. ASCII/binary Conversion.
November 16: Lecture 24. The Calculator Example (pulling it all together).
November 18: Discussion Session: Emphasis on Programming Lab 4
November 21: Lecture 25. A new ISA, the Motorola 6812. (Preview of EE 319K)
Programming Assignment 4 due, 11:59pm, November 22.
November 23: Lecture 26. Special lecture to be announced.
November 24,25: Thanksgiving Day recess. Enjoy the holiday.
November 28: Lecture 27. Parallelism. The latest hot button!
November 30: Lecture 28. Any OTHER questions!
December 2: Discussion Session: Last discussion session before final exam.
Programming Assignment 5 due, 5pm, December 2.
Problem set 6, not to be handed in, use for final exam preparation.
December 9. Final Exam, 7 to 10pm. (according to the Registrar's Course Schedule, which he can change.)
Programming Assignments:
- 1st programming assignment (machine language) -- Due: October 11, 11:59pm.
- 2nd programming assignment (assembly language) -- Due: October 23, 11:59pm.
- 3rd programming assignment (assembly language) -- Due: November 13, 11:59pm.
- 4th programming assignment (assembly language) -- Due: November 22, 11:59pm.
- 5th programming assignment (assembly language) -- Due: December 2, 5pm.
Problem Sets:
- 1st problem set, (emphasis on Chapters 1,2). Due: just before class, September 7.
- 2nd problem set, (emphasis on Chapter 3). Due: just before class, September 19.
- 3rd problem set, (emphasis on Chapter 4,5). Due: just before class, September 26. (Note: exam on Sept 28)
- 4th problem set, (emphasis on Chapter 5,6,7). Due: just before class, October 19.
- 5th problem set, (emphasis on Chapters 8,9). Due: just before class, October 31. (Note: exam on Nov 2)
- 6th problem set, (emphasis on Chapter 10). Not to turn in.