Lecture: 3 hours
Discussion: 1 hour

Catalog Description:
Overview of Uniprocessor CPUs.  Hardwired and microprogrammed CPU design. Pipelining.  Memory Hierarchy design.  Multiprocessors and Parallelism

Prerequisites: ECS 154A or (EEC 170, EEC 180A)

Credit restrictions/cross listings: None

Summary of course contents

  1. Uniprocessor CPU Overview
    Impact of technology, cost/power/performance tradeoffs, instruction set design and evaluation.
  1. Uniprocessor CPU Design
    Single and multiple cycle CPUs.  Microprogramming & hardwired control logic. Homework using digital design software to implement part or all of a simple CPU.
  1. Pipelining
    Pipelining as performance enhancing technique.  Challenges to maximizing performance using pipelining.  Relationship between instruction set design and pipelining.  Pipelining and Interrupts.  Advanced pipelining topics.
  1. Hierarchical Memory System Design
    Detailed examination of the memory hierarchy.  Advanced caching techniques.  Interaction between virtual memory system and memory hierarchy.
  1. Multiprocessors and Parallelism
    Introduction to shared-memory and message-passing multiprocessor systems

Goals: Students will (1) learn the foundational concepts of microprocessor organization, and (2) accomplish a sequence of integrated projects which create the low-level software and digital design of a fully-functional, pipelined microprocessor

Illustrative reading
David Patterson and John Hennessy. Computer Organization and Design: The Hardware/Software Interface. 5th edition. Morgan Kaufmann, 2011

Computer Usage:
Extensive digital design simulation assignments.

Engineering Design Statement:
Design tradeoffs–hardwired vs. microprogrammed CPU implementation, RISC vs CISC architectural philosophy, and so on–form a continuing theme in the course.

ABET Category Content:
Engineering Science: 2 units
Engineering Design: 2 units

GE3: Science & Engineering

Overlap: None

Instructors: M. Farrens

History: Reviewed 2018.9.7 (CSUGA). Reviewed by M. Farrens (2012.10.26): revised the catalog description and prerequisites, provided an up-to-date expanded course description (previously omitted from ICMS); updated instructor list.  Pre-electronic CAF; added to archive 2007.06.20. Course description dates to November 1996 (M. Farrens, N. Matloff, R. Olsson).


1 X an ability to apply knowledge of mathematics, science, computing, and engineering
2 X an ability to design and conduct experiments, as well as to analyze and interpret data
3 X an ability to design, implement, and evaluate a system, process, component, or program to meet desired needs, within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability
4 X an ability to function on multi-disciplinary teams
5 X an ability to identify, formulate, and solve computer science and engineering problems  and define the computing requirements appropriate to their solutions
6 an understanding of professional, ethical, legal, security and social issues and responsibilities
7 an ability to communicate effectively with a range of audiences
8 X the broad education necessary to understand the impact of computer science and engineering solutions in a global and societal context
9 X a recognition of the need for, and an ability to engage in life-long learning
10 X knowledge of contemporary issues
11 X an ability to use current techniques, skills, and tools necessary for computing and engineering practice
12 an ability to apply mathematical foundations, algorithmic principles, and computer science and engineering theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices
13 X an ability to apply design and development principles in the construction of software systems or computer systems of varying complexity