Course Objectives

This course focuses on advanced topics in the design and analysis of computer architectures. Topics covered include pipelining, hierarchical memory systems, I/O devices and interfacing, parallelism, vector and array processing, shared memory architecture and distributed systems. Students will have an opportunity to perform a research project in the latest technology in these and related areas. In this project, they will practice working as a team, delivering oral presentations and writing technical reports.

Course Topics

  1. Overview: Hardware components and their functions, Basic computer architecture, Instruction computer steps and Data path and control
  2. Pipelined data paths, organization of pipelined units, Pipeline hazards, Reducing branch penalties, Branch prediction strategies and performance limits.
  3. The main memory system, Pipelined and interleaved memory, Memory hierarchy, Cache memories, Mass memory concept, Virtual memories and paging, Memory management.
  4. Input/Output Interfacing: devices, programming, buses and links, context switching and interrupts.
  5. Advanced Architectures: Instruction level parallelism and machine parallelism, Hardware techniques for performance enhancement, Data dependencies, Special-purpose hardware accelerators, Vector, Array and Parallel Processing.
  6. Vector and array processing
  7. Shared memory multiprocessing
  8. Distributed multi-computing