Department of Electrical and Computer Engineering

The University of Texas at Austin

EE 306, Fall, 2006
Yale Patt, Instructor
TAs: Aseem Bathla, Cameron Davison, Lisa de la Fuente, Phillip Duran, Jose Joao,
Jasveen Kaur, Rustam Miftakhutdinov, Veynu Narasiman, Nady Obeid, Poorna Samanta
Course Outline
August 30, 2006

August 30: 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.
September 1: Discussion Session. Orientation to the LRC system, tools.

September 4: Labor Day. No class.

September 6: 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 8: Discussion Session. Emphasis on Chapters 1,2.

September 9: UT plays Ohio State at Memorial Stadium

September 11: Lecture 3. Bits and operations on bits (continued).

September 13: 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)
September 15: Discussion Session. Emphasis on Chapter 2.

September 18: 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)
September 20: Lecture 6. Finite State Control and Sequential Machines.
• The notion of state
• State diagram, Next State table, State Assignment
• Implementation example: sequential machine
September 22: Discussion Session. Emphasis on Chapter 3.

September 25: 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
September 27: 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 29: Discussion Session. Last discussion session before Exam 1.

October 2: No class. Review for Exam 1. Extra office hours will be held on Monday, October 2 and Tuesday October 3.

October 4: Lecture 9. Exam 1

October 6: Discussion Session. Intro to the LC-3 Simulator.

October 7: 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 9: Lecture 10. 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 11: Lecture 11. 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 13: Discussion Session. Debugging with the LC-3 Simulator.

October 16: Lecture 12. 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 18: Lecture 13. Detailed example from Lecture 11, in LC-3 Assembly Language.

October 20: Discussion Session. Emphasis on Chapter 7.

October 23: Lecture 14. Physical I/O.

October 25: Lecture 15. The TRAP instruction and I/O Service Routines.
• Keyboard and Monitor Data and Status Registers
• Polling and Interrupt driven processing
• ASCII/binary conversion
October 27: Discussion Session. Emphasis on Chapter 8.

October 30: Lecture 16. Subroutines (JSR/RET mechanism).

November 1: Lecture 17. Stacks. Parameters. How are they passed?

November 3: Discussion Session. Emphasis on Chapter 9.

November 6: Lecture 18. Example Applications

November 8: Lecture 19. Example Applications

November 10: Discussion Session. Last discussion session before Exam 2.

November 13: Lecture 20. Review or Catch up.

November 15: Lecture 21. Exam 2

November 17: Discussion Session. Emphasis on Programming Lab 4.

November 20: Lecture 22. Interrupt Processing

November 22: Lecture 23. Special Lecture -- to be announced

November 23,24: Thanksgiving Day recess. Enjoy the holiday.

November 27: Lecture 24. ASCII/binary Conversion

November 29: Lecture 25. Recursion

December 1: Discussion Session. Emphasis on Chapter 10.

December 4: Lecture 26. The Calculator Example, (pulling it all together).

December 6: Lecture 27. Any OTHER questions!

December 8: Discussion Session. Last discussion session before Final Exam.

December 15: Final Exam, 7 to 10pm. (according to the Course Schedule)

Programming Assignments:
• 1st programming assignment (machine language) -- Due: October 15, 11:59pm October 19, 11:59pm.
• 2nd programming assignment (assembly language) -- Due: October 22, 11:59pm October 26, 11:59pm.
• 3rd programming assignment (assembly language) -- Due: October 29, 11:59pm November 7, 11:59pm.
• 4th programming assignment (assembly language) -- Due: November 21, 11:59pm December 3, 11:59pm.
• 5th programming assignment (assembly language) -- Due: December 8, 11:59pm.

Problem Sets:
• 1st problem set, (emphasis on Chapters 1,2). Due: just before class, September 13.
• 2nd problem set, (emphasis on Chapter 3). Due: just before class, September 20 just before Discussion Section, September 22.
• 3rd problem set, (emphasis on Chapter 4). Due: just before Discussion Section, September 29.
• 4th problem set, (emphasis on Chapters 5,6,7). Due: just before Discussion Section, November 3 just before class, October 30.
• 5th problem set, (emphasis on Chapters 8,9). Due: just before class, November 13. (Note: exam on Nov 15).
• 6th problem set, (emphasis on Chapter 10). Due: December 8.