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

EE 306, Fall, 2002
Yale Patt, Instructor
TAs: Asad Bawa, Linda Bigelow, Mustafa Erwa, Lester Guillory, Kevin Major,
Abhay Pradhan, Moinuddin Qureshi, Paroma Sen, Santhosh Srinath,
Matt Starolis, David Thompson, Vikrant Venkateshwar

Course Outline
Auguest 28, 2002

August 28: 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 2: Labor Day. No class.

September 4: 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 9: Lecture 3. Bits and operations on bits (continued).

September 11: 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 16: No formal class. Review material thus far covered. TAs will be available for extra office hours.

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 2**2 x 3)
September 23: Lecture 6. Finite State Control and Sequential Machines.
• The notion of state
• State diagram, Next State table
• State Assignment
• Implementation example: sequential machine
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 30: Lecture 8. ISA Specification of the LC-2
• instruction formats
• operates
• LD/ST
• indirects
• control (condition codes: N,Z,P)
• The datapath necessary to implement the LC-2
• How I/O works at a very simple level [Keyboard in, screen out]
• KBDR, KBSR, CRTDR, CRTSR (ready bit, interrupt enable bit)
• Conversion
October 2: Lecture 9. ISA Specification of the LC-2 (continued)

October 7: 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 9: Lecture 11. Exam 1

October 14: Lecture 12. A stored program in the LC-2 ISA
• the control structure of a stored program (sequential, conditional, iteration)
• a detailed example in machine language -- counting the number of "?"
• example will use keyboard input, crt output.
• example will include entering data via the keyboard and outputting on the monitor (search a file counting occurrences of a particular character -- in detail, using LC-2)
October 16: 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 21: Lecture 14: Go over solutions to 1st exam.

October 23: Lecture 15. Detailed example of Lecture 11, in Assembler.

October 28: Lecture 16. Physical I/O.

October 30: 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
November 4: Lecture 18. Review or Catch up!

November 6: Lecture 19. Subroutines (JSR/RET mechanism)

November 11: Lecture 20. Stacks. Parameters. How are they passed?

November 13: Lecture 21. Applications of stacks. (Interrupt processing, data conversion)

November 18: Lecture 22. Review or catch up!

November 20: Lecture 23. Exam 2

November 25: Lecture 24. The Calculator Example (pulling it all together).

November 27: Lecture 25. Review

December 2: Lecture 26. The Calculator Example, continued.

December 4. Lecture 27. Review or Catch up! Prepare for Final exam.

December 13. Final Exam, 7 to 10pm.

Programming Assignments

• 1st programming assignment (machine language) -- Due: October 20, 11:59pm.
• 2nd programming assignment (machine language) -- Due: October 27, 11:59pm.
• 3rd programming assignment (assembly language) -- Due: November 3, 11:59pm.
• 4th programming assignment (assembly language) -- Due: November 10, 11:59pm.
• 5th programming assignment (assembly language) -- Due: December 6, 11:59pm.

Problem SetsUPDATED

• 1st problem set -- Due: just before class, September 11.
• 2nd problem set -- Due: just before class, September 23.
• 3rd problem set -- Due: just before class, September 30.
• 4th problem set -- Due: just before class, October 7. (Note: exam on October 9)
• 5th problem set -- Due: just before class, November 4.
• 6th problem set -- Due: just before class, November 18. (Note: exam on Nov 20)

Last Updated: 12 Sept. 2002 -- dave