NOTE: We are upgrading our eBook operations; please allow up to 1-2 days for delivery of your eBook order.
Modern Embedded Computing

Modern Embedded Computing, 1st Edition

Designing Connected, Pervasive, Media-Rich Systems

Modern Embedded Computing, 1st Edition,Peter Barry,Patrick Crowley,ISBN9780123914903


Morgan Kaufmann



235 X 191

A comprehensive guide to embedded system development with the Intel Atom processor, a leading processor in high-end mobile devices.

Print Book


In Stock

Estimated Delivery Time
USD 79.95

Key Features

  • Learn embedded systems design with the Intel Atom Processor, based on the dominant PC chip architecture. Examples use Atom and offer comparisons to other platforms
  • Design embedded processors for systems that support gaming, in-vehicle infotainment, medical records retrieval, point-of-sale purchasing, networking, digital storage, and many more retail, consumer and industrial applications
  • Explore companion lab materials online that offer hands-on embedded design experience


Modern embedded systems are used for connected, media-rich, and highly integrated handheld devices such as mobile phones, digital cameras, and MP3 players. All of these embedded systems require networking, graphic user interfaces, and integration with PCs, as opposed to traditional embedded processors that can perform only limited functions for industrial applications. While most books focus on these controllers, Modern Embedded Computing provides a thorough understanding of the platform architecture of modern embedded computing systems that drive mobile devices.

The book offers a comprehensive view of developing a framework for embedded systems-on-chips. Examples feature the Intel Atom processor, which is used in high-end mobile devices such as e-readers, Internet-enabled TVs, tablets, and net books. Beginning with a discussion of embedded platform architecture and Intel Atom-specific architecture, modular chapters cover system boot-up, operating systems, power optimization, graphics and multi-media, connectivity, and platform tuning. Companion lab materials compliment the chapters, offering hands-on embedded design experience.


Students in computer architecture, electrical engineering, and embedded system design; professional embedded system designers

Peter Barry

Peter Barry serves as principal engineer in the Intel Embedded & Communications Group. He has worked in the development of embedded systems for over twenty years in Intel, Basic Communications, Nortel Networks and Tellabs, working with processors from Z80, 68K, PowerPC, ARM, XScale and Intel architecture systems. He is an expert in embedded operating systems and embedded platforms, and has developed board support packages for proprietary RTOS, pSOS, VxWorks, WinCE and Linux. He has developed protocol stacks and applications primarily for data communications and telecommunications and industrial applications.

Affiliations and Expertise

Principal Engineer, Intelligent Systems Group, Intel Corporation

Patrick Crowley

Patrick Crowley is an associate Professor in the Department of Computer Science & Engineering at Washington University in St. Louis, Missouri. His research interests are in computer and network systems architecture, with a current focus on the design of programmable embedded network systems and the invention of superior network monitoring and security techniques. He co-founded the ACM/IEEE Symposium on Architectures for Networking and Communications Systems, and co-edited the three-book series, Network Processor Design. He serves as Associate Editor of the IEEE/ACM Transactions on Networking. In 2007, Crowley was chosen to join the DARPA Computer Science Study Group.

Affiliations and Expertise

Associate Professor, Computer Science & Engineering, Washington University in St. Louis

View additional works by Patrick Crowley

Modern Embedded Computing, 1st Edition

CHAPTER 1 Embedded Systems Landscape
What Is an Embedded Computer System?
Applications and Form Factors
System Resources and Features
User Assumptions
Why Is This Transition Inevitable?
What Range of Embedded Systems Exists?
What to Expect from the Rest of This Book
CHAPTER 2 Attributes of Embedded Systems
Embedded Platform Characteristics
Central Processing Unit (CPU)
Integration Level
Power Consumption
Form Factor
Application-Specific Hardware
User Interfaces
CHAPTER 3 The Future of Embedded Systems
Technology Trends
Issues, Applications, and Initiatives
Challenges and Uncertainties
Open Systems, Internet Access, and Neutrality
Successful Commercialization
CHAPTER 4 Embedded Platform Architecture
Platform Overview
System Memory Map
Interrupt Controller
Volatile Memory Technologies
DRAM Controllers
SRAM Controllers
Nonvolatile Storage
NOR Flash
NAND Flash
Hard Disk Drives and Solid State Drives
Device Interface-High Performance
Peripheral Component Interconnect (PCI)
Universal Serial Bus
Programming Interface
Linux Driver
Device Interconnect-Low Performance
Inter-Integrated Circuit Bus
System Management Bus (SMBus)
Serial Peripheral Interface (SPI)
Audio Buses
Inter IC Sound (I2S)
Universal Asynchronous Receiver/Transmitter
General-Purpose Input/Output
Power Delivery
CHAPTER 5 Embedded Processor Architecture
Basic Execution Environment
Privilege Levels
Floating-Point Units
Processor Specifics
Application Binary Interface
Processor Instruction Classes
Immediate Operands
Register Operands
Memory Operands
Data Transfer Instructions
Arithmetic Instructions
Branch and Control Flow Instructions
Structure/Procedure Instructions
SIMD Instructions
Exceptions/Interrupts Model
Precise and Imprecise Exceptions
Vector Table Structure
Exception Frame
Masking Interrupts
Acknowledging Interrupts
Interrupt Latency
Memory Mapping and Protection
Memory Management Unit
Translation Caching
MMU and Processes
Memory Hierarchy
Local Memory
Cache Hierarchy
Cache Coherency
System Bus Interface
Memory Technology
Intel Atom Microarchitecture (Supplemental Material)
Front End
Memory Execution Cluster
Bus Cluster
CHAPTER 6 Embedded Platform Boot Sequence
Multi-Core and Multi-Processor Boot
Boot Technology Considerations
Hardware Power Sequences (the Pre-Pre-Boot)
Reset: The First Few Steps and a Jump
Early Initialization
CPU Initialization
IA Microcode Update
Device Initialization
Memory Configuration
Post-Memory Setup
AP Processor Initialization
Advanced Initialization
General-Purpose Input/Output
Interrupt Controller
Cache Control
UART Serial Ports
Debug Output
Configuration Storage
PCIe Bus Initialization
Image Storage
Legacy BIOS and UEFI Framework Software
Legacy Operating System Boot
Extensible Firmware Interface
Cold and Warm Boot
CHAPTER 7 Operating Systems Overview
Application Interface
OS Application Interface
OS Service Calls
Processes, Tasks, and Threads
Task Context
Task State and State Transitions
Simple FIFO Scheduler
Round-Robin Scheduler with Priority and Preemption
Linux Kernel’s Scheduler
POSIX-Compliant Scheduler
Memory Allocation
Virtual Memory and Protection
Freeing Memory
Swapping Memory
Clocks and Timers
Synchronous Execution
Asynchronous Execution
Time of Day
Mutual Exclusion/Synchronization
Device Driver Models
Low-Level Data Path
Direct Memory Access
Memory Addresses
Bus Drivers
Buffer Management
Polling Interface
Storage File Systems
Device Wear and Tear
Power Interactions
Power Management
Real Time
Device Interrupt Delivery
Processor Interrupt Handler
Deferred Task
RTOS Characteristics
CHAPTER 8 Embedded Linux
Tool Chain
Getting the Tools
Tools Overview
Anatomy of an Embedded Linux
Building a Kernel
Kernel Build
Kernel Options
Root File System Build
C Library
Boot Sequence
Debugging Applications
Kernel Debugging
Driver Development
Character Driver Model
PCI Device Drivers
Interrupt Handling
Memory Management
User Space
Access to User Space Memory from the Kernel
Kernel Allocation
Page Allocation
The kmalloc() Function
PCI Memory Allocation and Mapping
Atomic Operations
CHAPTER 9 Power Optimization
Power Basics
The Power Profile of an Embedded Computing System
Constant Versus Dynamic Power
Constant Power
Dynamic Power
A Simple Model of Power Efficiency
Advanced Configuration and Power Interface (ACPI)
Idle Versus Sleep
ACPI System States
Global System States (Gx States)
Sleep States (Sx States)
Device Power States (Dx States)
Processor Power States (Cx States)
Processor Performance States (Px States)
Enhanced Intel SpeedStep Technology
Optimizing Software for Power Performance
Race to Sleep
The Linux PowerTOP Tool
Basic PowerTOP Usage
Using PowerTOP to Evaluate Software and Systems
CHAPTER 10 Embedded Graphics and Multimedia Acceleration
Screen Display
Display Engine
Window Management
Screen Composition
Embedded Pannels
Display Query and Timing
Copy Protection
Graphics Stack
Accelerated Media Decode
Lip Syncing
Video Capture and Encoding
Video Capture
Media Frameworks
Framework Summary
CHAPTER 11 Digital Signal Processing Using General-Purpose Processors
DSP Building Blocks
Data Acquisition
Fixed-Point and Floating-Point Implementations
Single Instruction Multiple Data
SIMD Microarchitecture and Instructions
Operating System
Microarchitecture Considerations
Implementation Options
Intrinsics and Data Types
Performance Primitives
Finite Impulse Response Filter
FIR Example: C Code
FIR Example: Intel Performance Primitives
FIR Example: Intel SSE
Application Examples
Medical Ultrasound Imaging
Performance Results
CHAPTER 12 Network Connectivity
Networking Basics
Layering and Network Software
Node Operation and Network Hardware
Sockets and a Simple Example
TCP/IP Networking
Governance, the IETF, and RFCs
Addresses, Packets, and Routes
Port Numbers, Byte Ordering, and OS Tools
Supporting Protocols and Services
Protocol Description
Ethernet MAC Addresses
Ethernet Packet Format
A Gigabit Ethernet Controller and Its Features
Wi-Fi and IEEE 802.11
Protocol Description
Frame Format
AWi-Fi Adapter and Its Features
Protocol Details
Packet Format
Linux Networking
Tools and Monitor and Control Network Interfaces and Sockets
Programming Sockets in C
Linux Kernel Networking Structures
CHAPTER 13 Application Frameworks
Android Framework Architecture
Android Application Architecture
Android Development Environment
Qt Application Development Framework
Qt Creator
Other Environments
More Resources
CHAPTER 14 Platform and Content Security
Security Principles
Confidentiality, Integrity, and Availability (CIA)
Security Concepts and Building Blocks
Encryption and Cryptography
Secure Web Communications: TLS
Secure Shell (SSH)
Security Architecture for IP: IPSec
Two-Factor Authentication
Major Categories of Security Attacks
Servers and Logs
Platform Support for Security
CHAPTER 15 Advanced Topics: SMP, AMP, and Virtualization
Multiprocessing Basics
History and Motivation
A Concrete Example
Physical versus Logical Cores
Impact on Systems and Software
Symmetric Multiprocessing
Linux SMP Support
Interprocess Communication
Asymmetric Multiprocessing
Concepts and Motivation
System Organization
Virtualization Basics
History and Motivation
Basic Concepts
Methods for Platform Virtualization
Hardware Support for Virtualization
Linux VServers
CHAPTER 16 Example Designs
Intel Atom E6XX Series Platforms
Architecture Overview
Platform Controller Hub(s)
Multi-Radio Communications Design
Hardware Platform
Software Platform
Multimedia Design
Hardware Platform
Software Platform
Modular References
CHAPTER 17 Platform Debug
Debugging New Platforms
A Process for Debugging a New Platform
Debug Tools and Chipset Features
Logic Analyzers
Bus Analyzers
Power-On Self-Test (POST) Cards
JTAG Adapters
Debug Process Details
Visual Examination
Hardware Evaluation
Software Evaluation
Additional Resources
CHAPTER 18 Performance Tuning
What Are Patterns?
General Approaches
Defined Performance Requirement
Performance Design
Premature Code Tuning Avoided
Step-by-Step Records
Slam-Dunk Optimization
Best Compiler for Application
Compiler Optimizations
Data Cache
Code and Design
Reordered Struct
Supersonic Interrupt Service Routines
Assembly-Language-Critical Functions
Inline Functions
Cache-Optimizing Loop
Minimizing Local Variables
Explicit Registers
Optimized Hardware Register Use
Avoiding the OS Buffer Pool
C Language Optimizations
Disabled Counters/Statistics
Stall Instructions
Profiling Tools
Prefetch Instructions
Separate DRAM Memory Banks
Line-Allocation Policy
Cache Write Policy
Cache-Aligned Data Buffers
On-Chip Memory
Optimized Libraries
Modulo/Divide Avoided
Networking Techniques
Bottleneck Hunting
Evaluating Traffic Generator and Protocols
Environmental Factors


Quotes and reviews

There is need for a good, comprehensive book on embedded design and the lab-based approach using the Intel Architecture is very good and practical.

- Tilman Wolf, Associate Professor, Department of Electrical and Computer Engineering, University of Massachusetts, Amherst

Discount on Science and Technology eBooks | Use code DRMFREE
NOTE: We are upgrading our eBook operations; please allow up to 1-2 days for delivery of your eBook order.