Computer Organization
Final Exam
- Assembly language
- Assembly language vs. high-level languages
- Instructions: add, addi, sub, lw, sw, beq, bne, j
- How to translate simple C code into assembly
- Simple expressions
- If and if-else statements
- Instruction formats
- Calling and returning from functions
- Passing parameters/return values to/from functions
- Computer Arithmetic
- Representation of unsigned integers
- Two's complement representation of signed integers
- IEEE floating point format and number types
- Operations on infinites and NaNs
- Performance
- Relationship between execution time and performance
- Execution time equation
- Static vs. dynamic instruction count
- Definition of CPI
- How to compare processor performance
- Amdahl's law
- Datapath and Control
- Single-cycle vs. multicycle vs. pipelining
- How to compute clock cycle time for each implementation
- How to compute CPI for each implementation
- How to compare performance between implementations
- Hazards
- Forwarding
- Stalls
- Branch prediction
- Caches and Memory Hierarchy
- Temporal and spatial locality
- Memory hierarchy
- Cache
- Types of cache: direct-mapped, set associative, fully associative
- Demonstrate operation of a direct-mapped cache
- Causes of cache misses
- Hit time, miss rate, and miss penalty
- How associativity effects hit time and miss rate
- How block size effects miss rate
- Write-through vs. write-back
- Compute CPI with memory stalls
- How processor clock rate effects miss penalty
- Multiple levels of cache and effect on performance
- Virtual Memory
- Address translation
- Page faults
- Page table and page table register
- Translation-lookaside buffer (TLB)
- TLB miss vs. page fault
- Physically-addressed cache vs. virtually-addressed cache