Instruction Level Parallelism: ILP – Concepts and challenges – Hardware and software approaches – Dynamic scheduling – Speculation - Compiler techniques for exposing ILP– Branch prediction. VLIW & EPIC – Advanced compiler support – Hardware support for exposing parallelism – Hardware versus software speculation mechanisms – IA 64and Itanium processors – Limits on ILP, Data-Level Parallelism in Vector, SIMD, and GPU Architectures: Introduction – vector architecture – working – performance - SIMD Instruction Set Extensions for Multimedia - Graphics Processing units - GPGPU.
Multiprocessors and Thread level Parallelism: Symmetric and distributed shared memory architectures – Performance issues – Synchronization – Models of memory consistency – Introduction to Multithreading Memory and I/O: Cache performance – Reducing cache miss penalty and miss rate – Reducing hit time – Main memory and performance – Memory technology. Types of storage devices – Buses – RAID – Reliability, availability and dependability – I/O performance measures – Designing an I/O system.
Multi-Core Architectures: Software and hardware multithreading – SMT and CMP architectures – Design issues – Case studies – Intel Multi-core architecture – SUN CMP architecture - heterogeneous multi-core processors – case study: IBM Cell Processor.