Computer Architecture

CSCE 4213

Class Description

Welcome to CSCE 4213 Computer Architecture. It is truly an exciting time to study computer architecture as we are about to engage in a major change in how computers are built ! In this class you will first become familiar with how to measure performance and understand current trends in how the industry is building computers. Then, you will study many of the important historical techniques that the computer industry has developed over the last 20 years for building fast and scalable scalar microprocessors for desktop and general purpose computers. Jumping off from the study of scalar microprocessors, you will study many of the techniques originally developed during the 1980’s for building parallel machines that are now being pursued for the next generation of machines. This next generation, referred to as manycores, represents a significant switch from building machines with powerful and fast single microprocessors, towards building machines with multiple CPU’s. As this switch occurs it is important to study how memory hierarchies, interconnect networks, compilers and operating systems, and even programming languages must also be changed to enable the industry to switch from scalar to parallel machines.

 

Textbook

  1. Computer Architecture. A Quantitative Approach. Fifth Edition, by David A. Patterson and John L. Hennessy, Morgan Kaufmann Publishers, Inc., 2012.

Topics Covered

  • Technology trends and Performance Evaluation
  • Instruction Level parallelism
  • Branch Prediction, Dynamic Scheduling, Hardware Speculation
  • Limitations of Instruction-Level Parallelism
  • Multithreading and Thread Level Parallelism
  • Symmetric Shared-Memory Architectures Performance and Synchronization
  • Distributed Shared Memory and Directory Based Coherence
  • Memory Consistency Models
  • Vector Processors
  • SIMD Extensions
  • Graphics Processor Units (GPUs)
  • Memory Hierarchies

Course Outcomes

  • Knowledge of the history and social impact of high performance computing
  • Knowledge of Computer Architecture
  • Ability to apply knowledge of digital logic and computer organization to the design of a computer system
  • Students are required to apply mathematics in the evaluation of the performance of a computer
  • Students are required to understand the architecture of a computer system