Master Course Description

No: EE 471

Title: Computer Information Systems Design

Credits: 5

UW Course Catalog Description

Coordinator: Scott Hauck, Associate Professor Electrical Engineering

Goals: To teach the organization and design of modern microprocessors

Learning Objectives:  At the end of this course, students will be able to:

  1. Write simple assembly language programs.
  2. Identify the major components of a microprocessor.
  3. Design a microprocessor that supports a given instruction set.
  4. Analyze microprocessor performance, including cache memory systems.
  5. Demonstrate understanding of modern microprocessor features.

Textbooks: Patterson, Hennessy, Computer Organization and Design: The Hardware/Software Interface, Second Edition, 1998, Morgan Kaufmann.

Prerequisites by Topic:

  1. Introduction to Digital Circuits and Systems (EE 271)
  2. Introduction to Programming - C and C++ or Java (CSE 142, 143)


  1. Introuction to processor architecture. Performance measures.
  2. Assembly language programming.
  3. Computer Arithmetic.
  4. Processor Datapaths & Control.
  5. Pipelining.
  6. Memory hierarchy, caches.
  7. Advanced topics in computer architecture: ILP, VLIW, Superscalar.

Course Structure: The class meets for four hours every week. There will be a midterm and final, four lab assignments (involving the design of a single-cycle and pipelined processor with approximately 5 instructions), and approximately weekly short homework assignments.

Computer Resources: Workstations with Cadence Verilog simulation and design CAD tools. Students will design a simple microprocessor through 4 laboratory assignments:

  1. Register File design
  2. ALU design
  3. Single-cycle CPU
  4. Pipelined CPI

Laboratory Resources:  None.

Grading: Homework (15%), Labs (40%), Midterm (20%), Final Exam (25%).

Outcome Coverage:

(a) An ability to apply knowledge of mathematics, science, and engineering. The class has an engineering/mathematics and design focus throughout. The homeworks, labs, and exams test various aspects of the math and engineering knowledge developed by the students. (M)

(b) An ability to design and conduct experiments, as well as to analyze and interpret data. N/A.

(c) An ability to design a system, component or process to meet desired needs within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability and sustainability. Students must design efficient, effective hardware components.  This includes a focus on multiple performance metrics. (H)

(d) An ability to function on multidisciplinary teams. N/A

(e) An ability to identify, formulate and solve engineering problems. Homeworks focus on the application of engineering concepts to typical design problems. (M)

(f) An understanding of professional and ethical responsibilities. N/A

(g) An ability to communicate effectively. N/A

(h) The broad education necessary to understand the impact of engineering solutions in a global, economic, environmental and societal context. N/A

(i) A recognition of the need for, and an ability to engage in life-long learning. Computer architecture is a rapidly evolving field, and students will be exposed to the changes in architecture design over time. (L)

(j) Knowledge of contemporary issues. The class focuses on contemporary microprocessor design issues, and current architectures. (L)

(k) An ability to use the techniques, skills and modern engineering tools necessary for engineering practice. CAD tools will be utilized for their CPU design. (M)

Prepared By: Scott Hauck

Last revised: 4/25/07