CS251 - Computer Organization and Design - Spring 2008
Lecture 38 - Review for Final Exam
Practical Details
- Assignment 9
- Optional Assignment
- addresses.pdf, virtual.pdf, microcode.pdf
Topics
Combinational Logic
Big Ideas
- Digital versus analogue
- AND, OR, NOT, etc.
- More complex components
Skills
- Manipulate truth tables
- Simplify Boolean expressions
- Manipulate disjunctive normal forms
- Create circuits from truth tables or Boolean expressions
Sequential Logic
Big Ideas
- Latch, flip-flop
- component that retains state
- Three-state outputs
- Clock
- Finite state machines
Skills
- Create simple sequential circuits
- Build simple state machines
Data Representation & Manipulation
Big Ideas
- Numbers
- two's complement
- floating point
- ALUs
Skills
- Manipulate numbers in different representations
- Construct one-bit ALU
- compound it into wider ALU
Single-cycle Processors
Big Ideas
- Categories of instructions
- Datapaths
- multiplexed, using multiplexers
- Control
Skills
- Map instructions onto data paths
- Map instructions onto control logic
- Calculate things like the fastest possible clock
Multi-cycle Processors
Big Ideas
- Phases of instruction execution
- multiple phases per instruction
- variable number of phases per instruction
- multiple datapath configurations per instruction
- one clock per phase
- Reuse of hardware
- Sequence of control states
- for each instruction
- microcode
Skills
- Separate a single cycle design into phases
- Design sequential control logic
Pipelining
Big Ideas
- Overlap phases of instruction execution
- Preserving state/control using registers
- Hazards
Skills
- Introducing registers to preserve state
- Identifying and resolving hazards, using
- hardware replication
- stall
- branch prediction
- forwarding
- High-level view of adding hardware to enable branch prediction and
forwarding
Memory Hierarchies
Big Ideas
- Levels of access
- bigger & slower as they get further from the processor
- hits, misses
- Dividing the address
- address space
- blocks of memory
- Cache
- line = block
- direct-mapped, associative, set associative
- line replacement
- Virtual memory
- swapping, protection
- page = block
- translation-lookaside buffer (TLB)
- page replacement
- role of software
Skills
- Map an address onto a cache line or a physical address
- Iteratively access slower and bigger memories
- Create a cache with given parameters
Input/Output
Big Ideas
- How a bus works
- bus arbitration
- master/slave
- bus transaction
- handshake
- Characteristics of disk drives
- Multi-level buses
Skills
- Calculate the speed and bandwidth of buses and peripherals
Return to: