King Fahd University of Petroleum & Minerals
College of Computer Sciences and Engineering
Computer Engineering Department
COE 501 Computer Architecture
Course Syllabus

Course Description: Classification of computer systems, architectural developments, computer performance. Linear and nonlinear pipeline design, instruction and arithmetic pipeline, superscalar. Memory hierarchy, cache and virtual memories, cache coherence, memory system performance. Parallel architectures, performance measures, SIMD and MIMD architectures. Interconnection networks.
Pre-requisite: graduate standing.

Course Outline:

  1. Introduction (5 lectures)
    Classification of computer systems, architectural developments, cost and trends, computer performance, measuring CPU time, CPI, MIPS, FLOPS, and computer benchmark suites, Examples of ISA. (Chapter 1 and 2).


  1. Pipelining (15 lectures)
    ILP, instruction pipelining, hazards, dynamic branch prediction, Tomasulo dynamic execution, speculative execution and limitation, multiple issue superscalar processors, and examples. Software approaches to ILP, static branch prediction, VlIW versus dynamic execution, compiler support for ILP, unrolling, software pipelining, dependence analysis, and examples. (Chapters 3 and 4)

  2. Memory system (12 lectures)
    Memory hierarchy, cache memory organization, cache algorithms, performance of memory, improving memory performance, virtual memories, and examples. (Chapters 5)

  3. Parallel architectures (10 lectures)
    Classification of parallel computers, SIMD architectures, MIMD shared-memory and distributed-memory architectures, programming, performance, SPMD, and synchronization and barriers. Coherence protocols. Interconnection networks, examples, and performance. (Chapters 6 and 8)

  4. Miscellaneous (midterm and presentations) (3 lectures)