CATALOG DESCRIPTION: Design and evaluation of modern uniprocessor computing systems. Evaluation methodology/metrics and caveats, instruction set design, advanced pipelining, instruction level parallelism, prediction-based techniques, alternative architectures (VLIW, Vector and SIMD), memory hierarchy design, I/O, and recent trends in architecture (e.g., low-power architectures, application-specific processors). Case studies.

REQUIRED TEXT: None

RECOMMENDED TEXT: J. Hennessy and D. Patterson, Computer Architecture: A Quantitative Approach , Morgan Kaufmann, 3 rd edition, 2003. Research, survey, and case study papers.

COURSE DIRECTOR: Prof. Gokhan Memik

COURSE GOALS: Learn how to build the best processor/computing system understanding the underlying tradeoffs and ramifications.

PREREQUISITES BY COURSES: EECS 361 or consent of the instructor.

PREREQUISITES BY TOPIC: Basic notions of computer architecture including programs, instruction sets, simple processor design and memories.

DETAILED COURSE TOPICS:

Week 1: Review of basic system design, technology, evaluation methodology. Metrics: performance, cost and power.

Week 2: Instruction set architecture: implications and interaction with compilers.

Week 3: Advanced Pipelining and introduction to instruction-level parallelism.

Week 4: Instruction-level parallelism, superscalar processor design, register renaming and precise interrupt handling.

Week 5: Branch prediction, related static/dynamic techniques and other prediction-based techniques.

Week 6: VLIW, vector processors, multimedia targeted instruction sets. Memory system design introduction.

Week 7: Memory system design: memory operation scheduling/memory renaming, advanced caches, pre-fetching, main memory systems, modern DRAM technologies.

Week 8: Virtual memory support. I/O.

Week 9: Technology forecasts, state-of-the-art in modern processor design and case studies.

Week 10: Project Presentations.

COMPUTER USAGE: As required for the course project and assignments.

LABORATORY PROJECT: An extensive individual or group project on an advanced topic in computer architecture. While, a list of suggested project topics will be provided, students are strongly encouraged to suggest a project of their own. The default project is to do some original research in a group of two to three students. Alternatively, a student may work alone on a survey.

GRADES:

50% Project

30% Final

10% Homework assignments

10% Class Participation

COURSE OBJECTIVES:

To provide students with: (1) a broad understanding of computer architecture and, (2) to the extent possible, an understanding of the current state-of-the-art in uniprocessor computer architecture. In 361 students learn how to build a working computer. In this course, we go a step further and study how to use technology to build the “best” computer/processor.

Specifically, upon completion of this course, a student should have developed:

•  Broad understanding of the design of computer systems, including modern architectures and alternatives.

•  Understanding of the interaction amongst architecture, applications and technology.

•  Understanding of a framework for evaluating design decisions in terms of application requirements and performance measurements.

•  A historical perspective on computer system design.

•  Gain experience with using and modifying a state-of-the-art computer simulator.

•  Gain experience on identifying and pursuing a research project.

•  Gain experience with writing a research report.

•  Gain insight on evaluating research papers.

•  Gain experience in technical presentations.