Department of Electrical and Computer Engineering
The University of Texas at Austin
EE 306, Fall, 2017
Yale Patt, Instructor
TAs:Stephen Pruett, Siavash Zangeneh, Aniket Deshmukh, Zachary Susskind, Meiling Tang, Jiahan Liu
August 30, 2017
August 30: Lecture 1. Overview of EE 306.
August 31/September 1: Discussion Session. Orientation to the LRC system, tools.
- 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: Labor Day. University closed. No class.
September 6: Lecture 2: Chapter 2, Bits and operations on bits.
September 7/8: Discussion Session. Emphasis on Chapters 1,2, problem set 1.
- 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 3. Chapter 2, Bits and operations on bits (continued).
September 13: Lecture 4. Chapter 3, Basic Logic Structures.
September 14/15: Discussion Session. Emphasis on Chapter 2 and Problem Set 2
- 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
- Basic storage element (Gated RS latch)
- A register
Problem set 1, due before class, September 18.
September 18: Lecture 5. Chapter 3 continued, Basic Logic Structures.
September 20: Lecture 6. Chapter 3 continued, Memory and Finite State Machines
September 21/22: Discussion Session. Emphasis on Chapter 3 and Problem Set 2.
- a logic circuit to implement a small piece of memory (perhaps 2**2 x 3)
- concept of memory: address space, addressability
- The notion of state (one of the most important concepts in engineering)
- State diagram, Next State table, State Assignment
- Implementation example: sequential machine
September 24: Extra Discussion Session.
Problem set 2, due before class, September 25.
September 25: Lecture 7. Chapter 3 continued.
September 27: Lecture 8. Chapter 4, 5, Introduction to Von Neumann model and the LC-3 ISA.
September 28/29: Discussion Session: Introduction to the LC-3 Simulator and Programming Lab 1.
- 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)
October 2: Lecture 9. Chapter 5, 6, ISA Specification of the LC-3, Structured Programming, and the character counting problem.
October 4: Lecture 10. Chapter 5, 6 continued.
- instruction formats
- operate, data movement, and control instructions
- LD/ST (also, indirects)
- control (condition codes: N,Z,P)
- The datapath necessary to implement the LC-3
- I/O via the TRAP instruction [Keyboard in, screen out]
October 5/6: Discussion Session: Emphasis on Programming Lab 1, Chapters 5, 6.
- Elements of Problem Solving (stepwise refinement, systematic decomposition, etc.)
- Fundamentals of Debugging (setting breakpoints, single-step, deposit, examine, etc.)
- 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
Programming Lab 1 due, 11:59pm, October 8.
October 9: Lecture 11. Chapter 7, Moving up a level, Assembly Language and the Assembler.
October 11: Lecture 12. Chapter 7 continued, Detailed examples in Assembly Language.
Problem set 3, due before discussion section, October 12 or 13.
- going from higher to lower level: interpretation vs. translation
- translation: what do assemblers and compilers do?
- hand assemble programs from earlier lectures.
- revisiting the character count problem
October 12/13: Discussion Session: Prepare for Exam 1.
October 14: Oklahoma game, enjoy the weekend, no homework due on Monday!
October 16: Lecture 13. Review.
October 18: Lecture 14. Exam 1.
October 19/20: Discussion Session: Emphasis on Chapter 7.
October 23: Lecture 15. Chapter 9.2, Soubroutines JSR/RET, Stacks and Queues, Sequentially Stored Structures.
October 25: Lecture 16. Recursion.
October 26/27: Discussion Session: JSR/RET, Stacks, other data structures, recursion.
Problem set 4, due before class, October 30.
October 30: Lecture 17. Data structures, linked lists, doubly linked lists.
November 1: Lecture 18. Trees.
November 2/3: Discussion Session: Emphasis on Programming Lab 2.
Programming Lab 2 due, 11:59pm, November 5.
November 6: Lecture 19. Chapter 8, Physical I/O.
November 8: Lecture 20. Chapter 8 continued, Physical I/O.
- asynchronous activity
- memory mapped vs. special I/O instructions
- program control vs. device (interrupt) driven
- device registers (KBDR, KBSR, DDR, DSR)
- Synchronization via the ready bit.
- interrupt enable bit
- I/O Service Routines
November 9/10: Discussion Session: Prepare for Exam 2.
Problem set 5, due before class, November 13.
November 13: Lecture 21. Review or catch up.
November 15: Lecture 22. Exam 2.
November 16/17: Discussion Session: Emphasis on Programming Lab 3.
November 20: Lecture 23. Chapter 8, 9, Traps and Interrupts.
November 22: No class, Thanksgiving vacation.
November 23/24: Discussion Session: No discussion, Thanksgiving vacation.
Programming Lab 3 due before you leave for Thanksgiving.
November 27: Lecture 24. Chapter 8, 9 continued, Traps and Interrupts.
November 29: Lecture 25. Chapter 8, 9 continued, Traps and Interrupts.
November 30/December 1: Discussion Session: Programming Lab 4, Traps, Interrupts.
Programming Lab 4 due, 11:59pm, December 3.
December 4: Lecture 26. The Calculator Example (pulling a lot together).
December 6: Lecture 27. Preview of 319K, and the future!
- ASCII/2's-complement conversion
- Stack arithmetic
December 7/8: Discussion Session: Emphasis on Programming Lab 5.
December 11: Lecture 28. Last lecture: Free for all.
Programming Lab 5 due, Monday, December 11, 5pm.
Problem set 6, not to be handed in, use for final exam preparation.
Final exam, probably, Friday evening, December 15, 7 to 10pm. BUT the Registrar could change it, so please do not make plans to leave campus until the Registrar commits to the date of the final exam.
- 1st programming Lab (machine language) -- Due: October 8, 11:59pm.
- 2nd programming Lab (assembly language) -- Due: November 5, 11:59pm.
- 3rd programming Lab (assembly language) -- Due: November 22, 11:59pm.
- 4th programming Lab (assembly language) -- Due: December 3, 11:59pm.
- 5th programming Lab (assembly language) -- Due: December 11, 5pm.
- 1st problem set, (emphasis on Chapters 1,2). Due: just before class, September 18.
- 2nd problem set, (emphasis on Chapter 2,3). Due: just before class, September 25.
- 3rd problem set, (emphasis on Chapter 4,5). Due: just before discussion section, October 12 or 13.
- 4th problem set, (emphasis on Chapter 7). Due: just before class, October 30.
- 5th problem set, (emphasis on Chapters 8,9). Due: just before class, November 13.
- 6th problem set, (emphasis on Chapter 10). Not to turn in.