Computers as Components

Principles of Embedded Computing System Design


  • Marilyn Wolf, Farmer Distinguished Chair and Georgia Research Alliance Eminent Scholar at the Georgia Institute of Technology

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

View full description


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


Book information

  • Published: May 2012
  • 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

Table of Contents

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