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
Auguest 28, 2002
August 28: Lecture 1. Overview of EE 306.
September 2: Labor Day. No class.
- 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 4: Lecture 2: Bits and operations on bits.
September 9: Lecture 3. Bits and operations on bits (continued).
- 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 11: Lecture 4. Basic Logic Structures.
September 16: No formal class. Review material thus far covered. TAs will be available for extra office hours.
- 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 18: Lecture 5. Storage elements.
September 23: Lecture 6. Finite State Control and Sequential Machines.
- 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, addressibility
September 25: Lecture 7. Introduction to Von Neumann model. Emphasis on memory.
- The notion of state
- State diagram, Next State table
- State Assignment
- Implementation example: sequential machine
September 30: Lecture 8. ISA Specification of the LC-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)
October 2: Lecture 9. ISA Specification of the LC-2 (continued)
- instruction formats
- 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)
October 7: Lecture 10. Problem Solving and On-Line Debugging.
October 9: Lecture 11. Exam 1
- Elements of Problem Solving (stepwise refinement, systematic decomposition, etc.)
- Fundamentals of Debugging (setting breakpoints, single-step, deposit, examine, etc.)
October 14: Lecture 12. A stored program in the LC-2 ISA
October 16: Lecture 13. Moving up a level, Assembly Language and the Assembler.
- 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 21: Lecture 14: Go over solutions to 1st exam.
- going from higher to lower level: interpretation vs. translation
- translation: what do assemblers and compilers do?
- hand assemble programs from earlier lectures.
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
November 4: Lecture 18. Review or Catch up!
- Keyboard and Monitor Data and Status Registers
- Polling and Interrupt driven processing
- ASCII/binary conversion
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.
- 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.
- 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