Computers as Components book cover

Computers as Components

Principles of Embedded Computing System Design

Computers as Components: Principles of Embedded Computing System Design, 3e, presents essential knowledge on embedded systems technology and techniques. Updated for today's embedded systems design methods, this edition features new examples including digital signal processing, multimedia, and cyber-physical systems. Author Marilyn Wolf covers the latest processors from Texas Instruments, ARM, and Microchip Technology plus software, operating systems, networks, consumer devices, and more.

Like the previous editions, this textbook:

  • Uses real processors to demonstrate both technology and techniques
  • Shows readers how to apply principles to actual design practice
  • Stresses necessary fundamentals that can be applied to evolving technologies and helps readers gain facility to design large, complex embedded systems

Updates in this edition include:

  • Description of cyber-physical systems: physical systems with integrated computation to give new capabilities
  • Exploration of the PIC and  TI OMAP processors
  • High-level representations of systems using signal flow graphs
  • Enhanced material on interprocess communication and buffering in operating systems
  • Design examples include an audio player, digital camera, cell phone, and more


Students in an embedded systems design course as well as researchers and savvy professionals schooled in hardware or software design.

Paperback, 528 Pages

Published: May 2012

Imprint: Morgan Kaufmann

ISBN: 978-0-12-388436-7


  • "Compared to other leading academic books on embedded systems, this book takes a more structural approach to the discipline…this book presents components in detail and then discusses how they can be integrated into a system, mainly through examples. This makes it suitable for students and practitioners without a strong background in computer architecture, as the book gently introduces the basics of the subject..."--Computing Reviews, February 21, 2013
    "This update of the 2008 edition by Wayne Wolfe keeps pace with the growing prevalence of embedded processors, "systems-on-chips," in products ranging from automobiles and airplanes to alarm clocks and toys."--Reference and Research Book News, December 2012


  • Chapter 1 Embedded Computing

    1.1 Introduction
    1.2 Complex Systems and Microprocessors
    1.3 The Embedded System Design Process
    1.4 Design Example: Model Train Controller
    1.5 A Guided Tour of This Book
    1.6 Summary
    Futher Reading
    Lab Exercises

    Chapter 2 Instruction Sets

    2.1 Introduction
    2.2 Preliminaries
    2.3 ARM Processor
    2.4 PICmicro Mid-Range Family
    2.5 TI C55x DSP
    2.6 TI C64x
    2.7 Summary
    Futher Reading
    Lab Exercises

    Chapter 3 CPUs

    3.1 Introduction
    3.2 Programming Input and Output
    3.3 Supervisor Mode, Exceptions, and Traps
    3.4 Co-Processors
    3.5 Memory System Mechanisms
    3.6 CPU Performance
    3.7 CPU Power Consumption
    3.8 Design Example: Data Compressor
    3.9 Summary
    Futher Reading
    Lab Exercises

    Chapter 4 Computing Platforms

    4.1 Introduction
    4.2 Basic Computing Platforms
    4.3 The CPU Bus
    4.4 Memory Devices and Systems
    4.5 Designing with Computing Platforms
    4.6 Consumer Electronics Architecture
    4.7 Platform-Level Performance Analysis
    4.8 Design Example: Alarm Clock
    4.9 Design Example: Audio Player
    4.10 Summary
    Futher Reading
    Lab Exercises

    Chapter 5 Program Design and Analysis

    5.1 Introduction
    5.2 Components for Embedded Programs
    5.3 Models of Programs
    5.4 Assembly, Linking, and Loading
    5.5 Compilation Techniques
    5.6 Program-Level Performance Analysis
    5.7 Software Performance Optimization
    5.8 Program-Level Energy and Power Analysis and Optimization
    5.9 Analysis and Optimization of Program Size
    5.10 Program Validation and Testing
    5.11 Design Example: Software Modem
    5.12 Design Example: Digital Still Camera
    5.13 Summary
    Futher Reading
    Lab Exercises

    Chapter 6 Processes and Operating Systems

    6.1 Introduction
    6.2 Multiple Tasks and Multiple Processes
    6.3 Multirate Systems
    6.4 Preemptive Real-Time Operating Systems
    6.5 Priority-Based Scheduling
    6.6 Interprocess Communication Mechanisms
    6.7 Networks of Communicating Processes
    6.8 Example Real-Time Operating Systems
    6.9 Evaluating Operating System Performance
    6.10 Power Optimization Strategies for Processes
    6.11 Design Example: Telephone Answering Machine
    6.12 Design Example: Engine Control Unit
    6.13 Summary
    Futher Reading
    Lab Exercises

    Chapter 7 System Design Techniques

    7.1 Introduction
    7.2 Design Methodologies
    7.3 Requirements Analysis
    7.4 Specifications
    7.5 System Analysis and Architecture Design
    7.6 Quality Assurance
    7.7 Summary
    Futher Reading
    Lab Exercises

    Chapter 8 Networks and Multiprocessors

    8.1 Introduction
    8.2 Why Multiprocessors?
    8.3 Categories of Multiprocessors
    8.4 Distributed Embedded Systems
    8.5 Shared Memory Multiprocessors
    8.6 Design Example: Video Accelerator
    8.7 Application Example: Compact Disc
    Futher Reading
    Lab Exercises

    Appendix A Glossary

    Appendix B UML Notation


advert image