Lecture 3
Learning objectives
After this class, you should be able to:
- Describe the von Neumann architecture.
- Explain the differences between processes and threads.
- Explain the ideal cache model.
- Derive the cache complexity of the two simple matrix multiplication algorithms discussed in class, and of the cache aware algorithm discussed in class.
- Given an algorithm, derive its cache complexity.
- Given an algorithm that is cache-inefficient, modify it to make it more efficient.
- Describe the idea of virtual memory.
- Explain the different types of instruction level parallelism.
- Explain the following terms: core, multitasking, spatial locality, temporal locality, cache line, page fault, TLB, superscalar, speculative execution, thread level parallelism, and SMT.
Reading assignment
- Lec-3 slides.
- Section 2.1 - 2.2.
Exercises and review questions
- Questions on current lecture's material
- If matrices were stored in column major order, then show two simple algorithms, one which has a cache complexity of theta(n3) and one with cache complexity of theta(n3/L).
- Questions on next lecture's material
- None.