Covers pipelining in computer architecture, focusing on its role in enhancing performance through instruction-level parallelism and addressing associated challenges.
Explores parallelism in programming, emphasizing trade-offs between programmability and performance, and introduces shared memory parallel programming using OpenMP.
Explores multithreading in computer architecture, focusing on pipeline utilization and performance impact in various techniques, including blocked and fine-grained multithreading.