CS310H Content for which students will be responsible
I. Building Blocks of Computer Systems (4 weeks)
- Components of the system - how they fit together
- CMOS transistors and wires
- Logic gates and digital representation
- Combinational logic and memory
- Datapaths
- ISA
- Compiler and OS
- Programming language
- Algorithms
- Electronics
- N versus P transistors
- Voltage
- Capacitance
- Implementation of logic gates
- Basic operation
- Logic
- AND, OR, NOT, NOR, NAND, XOR
- DeMorgan's Law
- Universal gates
- Combinational logic
- Memory
- RS, D latches
- Registers
- Addressible memories
- SRAM versus DRAM
- Edge-triggered devices
- Clocks
- Representation and arithmetic
- Binary, hex, decimal number systems
- Radix transformation
- Precision versus accuracy
- Expressing bitfields
- ASCII representation
- Binary addition
- Signed binary numbers
- Sign magnitude
- One's complement
- Two's complement
- Binary subtraction
- Shifting (logical and arithmetic)
- Binary multiplication
- Floating point representation
II. Computer Organization and Programming (5 weeks)
- Instruction set design (Assembly language programming)
- Assembly versus machine language
- Logical instructions (AND, OR, NOT)
- Arithmetic instructions
- Add, shifts, multiplies
- Data types (signed, unsigned)
- Control Operations
- Unconditional jumps
- Conditional branches
- Subroutine calls, links, returns
- Traps
- Memory operations
- Register moves
- Loads and Stores
- Addressing modes: Immediate, Direct, Indirect, Base + offset
- Condition codes
- N, Z, P
- Examples from other ISAs
- Pseudo-operations
- .ORIG, .END, .BLKW, .FILL, .STRINGZ, .EXTERNAL
- Labels
- Address space
- Design philosophy
- Speed of operations
- RISC versus CISC
- Processor design
- Simple datapaths/instruction processing
- RTL
- Fetch/Decode/Execute/Store cycle
- Synchronous execution of instructions
- I/O
- LC-3 Traps
- Keyboard (KBSR, KBDR)
- Monitor (DSR, DDR)
- Disk
- Debugging
III. Integration with Higher Level System Software (5 weeks)
- Interface to the Compiler
- Assembly process
- Two-pass
- Symbol table building
- Data Types
- Stacks: Pushing/popping, Overflow and underflow
- Structs
- Arrays
- Queues
- Linked lists/trees
- Control structures
- If/then/else
- Loops
- Procedures
- Run-time stack
- Activation records
- Parameter passing/return values
- Saving of registers
- Re-entrancy/recursion
- Memory allocation
- Stack allocation of locals
- Static allocation of globals
- Dynamic allocation/heaps
- Reclaiming memory
- Linking
- Libraries/DLLs
- External symbols
- Loading
- Operating system
- Role of the operating system
- Privileged instructions
- Multiprogramming
- Exception handling
- Memory hierarchies
- I/O Device communication
- Device registers
- Synchronous versus asynchronous
- Memory-mapped devices
- Polling versus interrupts
Last modified: 01/21/10
by Don Fussell fussell@cs.utexas.edu