Lecture: 3 hours
Discussion: 1 hour

Catalog Description:
Introduction to digital design. Interrupts and interconnection hardware. Caching and memory hierarchy design. Hardware support for operating systems software (virtual memory).

Prerequisites: ECS 050 or EEC 070

Credit restrictions /cross listings: Only one unit of credit allowed for students who have taken Electrical and Computer Engineering 170.

Summary of course contents

  1. Combinational and Sequential Digital Design
    Boolean algebra, gates. Commonly used MSI circuits such as multiplexers and decoders. Simple arithmetic circuits. Latches and flip-flops. Finite state machine design. Use of simple digital design simulation software to aid in hierarchical system development.
  1. Interrupts and Interconnection hardware
    Hardware interrupts. Synchronous and asynchronous buses. Bus arbitration.
  1. Memory
    Types of memory. Decoding of system-level to chip-level addresses. Caches and the memory hierarchy
  1. Hardware for Support of Operating Systems
    Hardware support to optimize resource usage, and to implement the abstraction of a separate machine for each user. Design and use of memory-management hardware, either within-CPU or via separate MMU, to support efficient and convenient OS memory allocation.

Goals: Students will (1) learn the foundational concepts of digital design; (2) gain a more detailed understanding of memory and the memory hierarchy; and (3) become more familiar with hardware support for operating systems software.

Illustrative reading

  • David Patterson and John Hennessy. Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann, 2011.
  • Stephen Brown, Fundamentals of Digital Logic Custom, McGraw-Hill, 2000.

Computer Usage:
Extensive programming and digital design simulation assignments.

Engineering Design Statement:
Students in the course write sophisticated, systems-level programs according to their own design. They also do extensive development of digital circuitry (via a simulator), again according to their own design, and analyze the performance of such circuitry.

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

GE3: Science & Engineering

Overlap: Substantial overlap with EEC 170, but large student demand justifies the overlap in content.

Instructors: S. Davis, M. Farrens, and D. Ghosal

History: Reviewed 2018.9.7 (CSUGA): no updates. Reviewed by M. Farrens (2012.10.26): updated the catalog description and course contents (previously omitted from ICMS); updated instructor list; moved credit restriction to proper place on ICMS; described course overlap with EEC 170; dropped ECS 60 prerequisite. Pre-electronic CAF; added to archive 2007.06.20. Course description dates to November 1996 (M. Farrens, N. Matloff, and 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 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 an ability to apply design and development principles in the construction of software systems or computer systems of varying complexity