Department of Electrical and Computer Engineering
The University of Texas at Austin
EE 306, Fall, 2008
Yale Patt, Instructor
TAs: Jeffrey Allan, Arvind Chandrababu, Eiman Ebrahimi, Aravind Jakkani, Khubaib,
Allison Korczynski, Pratyusha Nidamaluri, Zrinka Puljiz, Che-Chun Su, Christopher Wiley
Course Outline
August 27, 2008
August 27: 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 29: Discussion Session. Orientation to the LRC system, tools.
September 1: Labor Day. No class.
September 3: 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.
September 5: Discussion Session. Emphasis on Chapters 1,2.
September 8: Lecture 3. Bits and operations on bits (continued).
September 10: 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
Problem set 1, due before discussion session, September 12.
September 12: Discussion Session. Emphasis on Chapter 2, Problem set 1.
September 15: Lecture 5. Storage elements.
- Basic storage element (Gated RS latch)
- A register
- A logic circuit to implement a small piece of memory (perhaps 22 x 3)
- Concept of memory: address space, addressibility
September 17: Lecture 6. Finite State Control and Sequential Machines.
- The notion of state
- State diagram, Next State table, State Assignment
- Implementation example: sequential machine
September 19: Discussion Session. Emphasis on Chapter 3.
Problem set 2, due before class, September 22.
September 22: Lecture 7. Introduction to Von Neumann model. Emphasis on memory. Problem set 2.
- 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, addressibility revisited (MAR, MDR)
September 24: 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 26: Discussion Session: Introduction to the LC-3 Simulator.
Problem set 3, due before class, September 29.
September 29: Lecture 10. Problem Solving and On-Line Debugging. Problem set 3.
- Elements of Problem Solving (stepwise refinement, systematic decomposition, etc.)
- Fundamentals of Debugging (setting breakpoints, single-step, deposit, examine, etc.)
October 1: No class. Work on Programming Assignment 1.Extra office hours will be held on Saturday, October 4 and on Monday, Tuesday October 6, 7.
October 3: Discussion Session: Last discussion session before Exam 1.
Programming Assignment 1 due, 11:59pm, October 5.
October 6: Lecture 10. Review
October 8: Lecture 11. Exam 1
October 10: Discussion Session: Review what we have learned so far.
October 11: Football game vs. Oklahoma. No assignment due next Monday.
Enjoy the game. Drive safely -- I want to see all of you in class next week.
October 13: 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 15: Lecture 13. Moving up a level, Assembly Language and the Assembler.
- Going from higher to lower level: interpretation vs. translation
- Translation: what do assemblers and compilers do?
- Hand assemble programs from earlier lectures
October 17: Discussion Session. Emphasis on Chapters 6, 7.
Programming Assignment 2 due, 11:59pm, October 19.
October 20: Lecture 14. Detailed example from Lecture 12, in LC-3 Assembly Language.
October 22: Lecture 15. Physical I/O.
October 24: Discussion Session. Emphasis on Chapter 8.
Problem set 4, due before class, October 27.
October 27: Lecture 16. The TRAP instruction and I/O Service Routines.
- Keyboard and Monitor Data and Status Registers
- Polling and Interrupt driven processing
- ASCII/binary conversion
October 29: Lecture 17. Subroutines (JSR/RET mechanism).
Programming Assignment 3 due, 11:59pm, November 2.
October 31: Discussion Session. Emphasis on Chapter 9.
November 3: Lecture 18. Stacks. Parameters. How are they passed?
November 5: Lecture 19. Example Applications
November 7: Discussion Session. Last discussion session before Exam 2.
Problem set 5, due before class, November 10.
November 10: Lecture 20. Review or Catch up.
November 12: Lecture 21. Exam 2
November 14: Discussion Session: Review what we have learned so far.
November 17: Lecture 22. Interrupt Processing
November 19: Lecture 23. ASCII/binary Conversion
November 21: Discussion Session. Emphasis on Programming Lab 4.
Programming Assignment 4 due, 11:59pm, November 23.
November 24: Lecture 24. Parallel programming
November 26: Lecture 25. Special lecture -- to be announced.
November 27,28: Thanksgiving Day recess. Enjoy the holiday.
December 1: Lecture 26. The Calculator Example, (pulling it all together).
December 3: Lecture 27. Any OTHER questions!
Programming Assignment 5 due, 11:59pm, December 4.
December 5: Discussion Session. Last discussion session before Final Exam.
December 10. Final Exam: 7 to 10pm.
Programming Assignments:
- 1st programming assignment (machine language) -- Due: October 5, 11:59pm.
- 2nd programming assignment (assembly language) -- Due: October 19, 11:59pm
- 3rd programming assignment (assembly language) -- Due: November 2, 11:59pm
- 4th programming assignment (assembly language) -- Due: November 23, 11:59pm
- 5th programming assignment (assembly language) -- Due: December 4, 11:59pm.
Problem Sets:
- 1st problem set, (emphasis on Chapters 1,2). Due: just before discussion, September 12.
- 2nd problem set, (emphasis on Chapter 3). Due: just before class, September 22
- 3rd problem set, (emphasis on Chapter 4). Due: just before class, September 29 (Note: exam on Oct 8)
- 4th problem set, (emphasis on Chapters 5,6,7). Due: just before class, October 27
- 5th problem set, (emphasis on Chapters 8,9). Due: just before class, November 10 (Note: exam on Nov 12)
- 6th problem set, (emphasis on Chapter 10). Due: December 5, 5 pm