Computer Architecture

Computer architecture is the science and art of selecting and interconnecting hardware components to create a computer that meets functional, performance and cost goals. This course qualitatively and quantitatively examines uniprocessor computer design trade-offs. We will learn, for example, how uniprocessors execute many instructions concurrently and why state-of-the-art memory systems are nearly as complex as processors.

ECE56500

Credit Hours:

3

Description:

Computer architecture is the science and art of selecting and interconnecting hardware components to create a computer that meets functional, performance and cost goals. This course qualitatively and quantitatively examines uniprocessor computer design trade-offs. We will learn, for example, how uniprocessors execute many instructions concurrently and why state-of-the-art memory systems are nearly as complex as processors.

Topics Covered:

  • Fundamentals of computer design
  • Instruction set architecture (ISA)
  • Pipelining
  • Instruction-level parallelism
  • Vector and GPU
  • Baby caches
  • Memory hierarchy
  • Multicores
  • Additional topics to be determined

Prerequisites:

Know basic 5-stage pipeline, basic caches, and basic virtual memory, or Undergrad compilers and OS, or have had assembly programming (last option is BARE MINIMUM)

Applied / Theory:

50 / 50

Homework:

Combination of written homework and programming assignments

Projects:

Options: Simulator - will involve significant C++ programming
If you have not written 1000+ lines in ONE previous project, 565 project will be all but impossible.

Exams:

2 exams, midterm and final

Textbooks:

Required:
  • Computer Architecture - A Quantitative Approach, 6th Edition, D. Patterson and J. Hennessy, Elsevier Science, 2017, ISBN No. 978-0128119051.
Recommended:
  • Readings in Computer Architecture, Mark Hill, Norman Jouppi and Gurindar Sohi, Morgan Kaufmann Publishers.

ProEd Minimum Requirements:

view