skip to primary navigationskip to content

Computational hardware [M8]

The course will provide an overview of how the hardware design of a computer impacts its performance and therefore the optimal way to program it.

 Topics covered include:

  • The CPU - An overview of how a CPU works. How numbers are stored. Pipelining and how to achieve peak performance. What a compiler does: assembler vs. higher level languages
  • Memory - An overview of how DRAM works. Parity and ECC. Memory speed & bandwidth. Cache hierarchy and pre-fetching.
  • Memory Management - An overview of memory management. The mapping between virtual and physical addresses. Page tables and the TLB. Paging and disk performance. Segmentation and the linux memory map.
  • Parallel Computers - Amdahl's Law, MPP & SMP, NUMA, Multithreading, clusters.