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