Lecture 3

Learning objectives

After this class, you should be able to:

  1. Describe the von Neumann architecture.
  2. Explain the differences between processes and threads.
  3. Explain the ideal cache model.
  4. Derive the cache complexity of the two simple matrix multiplication algorithms discussed in class, and of the cache aware algorithm discussed in class.
  5. Given an algorithm, derive its cache complexity.
  6. Given an algorithm that is cache-inefficient, modify it to make it more efficient.
  7. Describe the idea of virtual memory.
  8. Explain the different types of instruction level parallelism.
  9. 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

  1. Lec-3 slides.
  2. Section 2.1 - 2.2.

Exercises and review questions


Last modified: 16 Sep 2017