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 DIRECTORS: 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.
10% Homework assignments
10% Class Participation
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.