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:
3Description:
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 / 50Homework:
Combination of written homework and programming assignmentsProjects:
Options: Simulator - will involve significant C++ programmingIf you have not written 1000+ lines in ONE previous project, 565 project will be all but impossible.
Exams:
2 exams, midterm and finalTextbooks:
Required:- Computer Architecture - A Quantitative Approach, 6th Edition, D. Patterson and J. Hennessy, Elsevier Science, 2017, ISBN No. 978-0128119051.
- Readings in Computer Architecture, Mark Hill, Norman Jouppi and Gurindar Sohi, Morgan Kaufmann Publishers.