CSE 30322
P. Kogge
Course Goals: complete a thorough introduction of all facets of present-day processor microarchitecture and computer systems; understand the relationships between ISA, architecture, technology, and design, and how they work together to influence the performance, cost, and capabilities of a modern computer; understand how future trends may affect all of these topics.
At the end of the course, students will be able to:
1. Distinguish between ISA, architecture, microarchitecture, and implementation.
The course project requires the student to develop a simulator based on an ISA, design a microarchitecture, and implement the microarchitecture in VHDL. An understanding of architecture is developed through the course project (see next goal), homework
assignments, and test questions.
2. Demonstrate their understanding of architecture via the successful design of a complete microprocessor.
The course project is to design and develop a complete microprocessor that is demonstrated to the instructor and/or TAs along with a formal report.
3. Implement all levels of a computer architecture design and analysis: ISA-level simulators, benchmark program analysis, behavioral models, and structural models.
These levels are the required components of the course project (interim progress reports are required).
4. Demonstrate an understanding of the instruction execution cycle, and the relationship between instruction states and program performance.
Various homework, lab, and exam questions cover this topic.
5. Demonstrate an understanding of how fragments of high level code compile into sequences of instructions for different classes of ISAs.
Homework and exam questions cover this topic.
6. Demonstrate their ability to predict performance of a program when taking into account ISA, compilation, microarchitectural, and technology factors.
This topic is covered in CSE30321 as well and reviewed here. Homework and exam questions cover this topic.
7. Design and simulate a variety of different cache protocols, and be able to analyze their respective performance.
There is a lab with a report due on this topic.
8. Identify hazards in real pipelines, how to detect them, and how to overcome them.
There is a lab with a report due on this topic.
9. Identify the key parameters in an implementation of a real virtual memory system, and what they translate into in terms of hardware requirements.
Homework and exam questions cover this topic.
10. Demonstrate competence with work-station based VHDL design tools and program simulation and tracing tools.
Successful completion of the course project requires competent use of these tools.
11. Understand the interpersonal dynamics and organization needed to carry out a successful long-term multi-person project.
The course project (~12 weeks long) provides first hand experience. The book report on "Soul of a New Machine" by Tracy Kidder provides a case study on this topic.
12. Demonstrate an understanding of the different approaches to microarchitectures with higher performance potential than just single issue in-order pipelines.
Homework and exam questions cover this topic.
13. Demonstrate the ability to use cost-performance tradeoffs within a design activity.
Some of the labs and the course project require analysis of the cost-performance tradeoffs. This topic is also covered on the exams.