Modern Embedded Computing book cover

Modern Embedded Computing

Designing Connected, Pervasive, Media-Rich Systems

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.

Audience

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

Paperback, 552 Pages

Published: January 2012

Imprint: Morgan Kaufmann

ISBN: 978-0-12-391490-3

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


Contents

  • CHAPTER 1 Embedded Systems Landscape
    What Is an Embedded Computer System?
    Applications and Form Factors
    Power
    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
    Expansion
    Application-Specific Hardware
    Certification
    Reliability/Availability
    User Interfaces
    Connectivity
    Security
    Summary
    CHAPTER 3 The Future of Embedded Systems
    Technology Trends
    Computation
    Connectivity
    Storage
    Sensing
    Issues, Applications, and Initiatives
    Energy
    Security
    Health
    Challenges and Uncertainties
    Open Systems, Internet Access, and Neutrality
    Privacy
    Successful Commercialization
    Summary
    PART 2 EMBEDDED SYSTEMS ARCHITECTURE AND OPERATION
    CHAPTER 4 Embedded Platform Architecture
    Platform Overview
    Processor
    System Memory Map
    Interrupt Controller
    Timers
    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
    Summary
    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)
    Microarchitecture
    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
    Shadowing
    AP Processor Initialization
    Advanced Initialization
    General-Purpose Input/Output
    Interrupt Controller
    Timers
    Cache Control
    UART Serial Ports
    Debug Output
    Configuration Storage
    PCIe Bus Initialization
    Image Storage
    USB
    SATA
    SDIO
    Legacy BIOS and UEFI Framework Software
    Legacy Operating System Boot
    Extensible Firmware Interface
    Cold and Warm Boot
    Summary
    CHAPTER 7 Operating Systems Overview
    Application Interface
    OS Application Interface
    OS Service Calls
    Processes, Tasks, and Threads
    Task Context
    Task State and State Transitions
    Scheduling
    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
    Networking
    Buffer Management
    Polling Interface
    Acceleration
    Storage File Systems
    Device Wear and Tear
    Power Interactions
    Power Management
    Real Time
    Device Interrupt Delivery
    Processor Interrupt Handler
    Deferred Task
    RTOS Characteristics
    Licensing
    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
    Busybox
    C Library
    Boot Sequence
    Debugging
    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
    Synchronization/Locking
    Atomic Operations
    Spinlock
    Semaphore
    Summary
    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
    Summary
    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
    GStreamer
    OpenMAX<
    Framework Summary
    Summary
    CHAPTER 11 Digital Signal Processing Using General-Purpose Processors
    Overview
    Signals
    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
    Vectorization
    Performance Primitives
    Finite Impulse Response Filter
    FIR Example: C Code
    FIR Example: Intel Performance Primitives
    FIR Example: Intel SSE
    Application Examples
    Codec
    Medical Ultrasound Imaging
    Performance Results
    Summary
    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
    Ethernet
    History
    Protocol Description
    Ethernet MAC Addresses
    Ethernet Packet Format
    A Gigabit Ethernet Controller and Its Features
    Wi-Fi and IEEE 802.11
    History
    Protocol Description
    Frame Format
    AWi-Fi Adapter and Its Features
    Bluetooth
    History
    Protocol Details
    Packet Format
    Linux Networking
    Tools and Monitor and Control Network Interfaces and Sockets
    Programming Sockets in C
    Linux Kernel Networking Structures
    Summary
    CHAPTER 13 Application Frameworks
    Overview
    Android
    Android Framework Architecture
    Android Application Architecture
    Android Development Environment
    Deployment
    Qt
    Qt Application Development Framework
    Qt Creator
    Other Environments
    More Resources
    Summary
    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
    Firewalls
    Servers and Logs
    Platform Support for Security
    Summary
    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
    Overview
    Linux SMP Support
    Interprocess Communication
    Asymmetric Multiprocessing
    Concepts and Motivation
    System Organization
    Virtualization Basics
    History and Motivation
    Basic Concepts
    Methods for Platform Virtualization
    Paravirtualization
    Hardware Support for Virtualization
    Linux VServers
    Xen<
    Xenomai
    Summary
    PART 3 DEVELOPING AN EMBEDDED SYSTEM
    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
    Summary
    CHAPTER 17 Platform Debug
    Debugging New Platforms
    A Process for Debugging a New Platform
    Debug Tools and Chipset Features
    Oscilloscopes
    Logic Analyzers
    Bus Analyzers
    Power-On Self-Test (POST) Cards
    JTAG Adapters
    Debug Process Details
    Visual Examination
    Hardware Evaluation
    Software Evaluation
    Additional Resources
    Summary
    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
    Processor-Specific
    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


    References
    Index

Advertisement

advert image