Wolf, Wayne.

Computers as components: principles of embedded computing system design / Principles of embedded computing system design Wayne Wolf. - 2nd ed. - Amsterdam ; Boston : Burlington, Mass. : Elsevier ; Morgan Kaufmann Publishers, 2008

Title from title screen.

CHAPTER 1 Embedded Computing
Introduction
1.1 Complex Systems and Microprocessors
1.1.1 Embedding Computers
1.1.2 Characteristics of Embedded Computing
Applications
1.1.3 Why Use Microprocessors?
1.1.4 The Physics of Software
1.1.5 Challenges in Embedded Computing System
Design
1.1.6 Performance in Embedded Computing
1.2 The Embedded System Design Process
1.2.1 Requirements
1.2.2 Specification
1.2.3 Architecture Design .
1.2.4 Designing Hardware and Software
Components
1.2.5 System Integration
1.3 Formalisms for System Design
1.3.1 Structural Description
1.3.2 Behavioral Description
1.4 Model Train Controller
1.4.1 Requirements.
1.4.2 DCC
1.4.3 Conceptual Specification
1.4.4 Detailed Specification
1.4.5 Lessons Learned
1.5 A Guided Tour of This Book .
1.5.1 Chapter 2: Instruction Sets
1.5.2 Chapter 3: CPUs
1.5.3 Chapter 4: Bus-Based Computer Systems
1.5.4 Chapter 5: Program Design and Analysis
1.5.5 Chapter 6: Processes and Operating Systems
1.5.6 Chapter 7: Multiprocessors
1.5.7 Chapter 8: Networks
1.5.8 Chapter 9: System Design Techniques
CHAPTER 2 Instruction Sets
CHAPTER 3
Introducton..
2.1 Preliminaries
2.1.1 Computer Architecture Taxonomy
2.1.2 Assembly Language
2.2 ARM Processor
2.2.1 Processor and Memory Organization
2.2.2 Data Operations
2.2.3 Flow of Control
2.3 TI C55x DSP
3.1
3.2
2.3.1 Processor and Memory Organization
2.3.2 Addressing Modes
2.3.3 Data Operations
2.3.4 Flow of Control.
2.3.5 C Coding Guidelines
CPUs
Introduction
Programming Input and Output
3.1.1 Input and Output Devices
3.1.2 Input and Output Primitives
3.1.3 Busy-Wait I/O.
3.1.4 Interrupts
Supervisor Mode, Exceptions, and Traps
3.2.1 Supervisor Mode
3.2.2 Exceptions
3.2.3 Traps
3.3 Co-Processors
3.4 Memory System Mechanisms
3.4.1 Caches
3.4.2 Memory Management Units and Address
Translation
3.5 CPU Performance
3.5.1 Pipelining
3.5.2 Caching
3.6 CPU Power Consumption
3.7 Design Example: Data Compressor
3.7.1 Requirements and Algorithm
3.7.2 Specification
3.7.3 Program Design
3.7.4 Testing
CHAPTER 4 Bus-Based Computer Systems
Introduction
4.1 The CPU Bus
4.1.1 Bus Protocols
4.1.2 DMA
4.1.3 System Bus Configurations
4.1.4 AMBABus
4.2 Memory Devices
4.2.1 Memory Device Organization
4.2.2 Random-Access Memories
4.2.3 Read-Only Memories
4.3 I/O devices
4.3.1 Timers and Counters
4.3.2 A/D and D/A Converters
4.3.3 Keyboards
4.3.4 LEDs
4.3.5 Displays
4.3.6 Touchscreens
4.4 Component Interfacing
4.4.1 Memory Interfacing
4.4.2 Device Interfacing
4.5 Designing with Microprocessors
4.5.1 System Architecture
4.5.2 Hardware Design
4.5.3 The PC as a Platform
4.6 Development and Debugging
4.6.1 Development Environments
4.6.2 Debugging Techniques
4.6.3 Debugging Challenges
4.7 System-Level Performance Analysis
4.7.1 System-Level Performance Analysis
4.7.2 Parallelism
4.8 Design Example: Alarm Clock
4.8.1 Requirements
4.8.2 Specification
4.8.3 System Architecture
4.8.4 Component Design and Testing
4.8.5 System Integration andTesting
CHAPTER 5 Program Design and Analysis
Introduction
5.1 Components for Embedded Programs
5.1.1 State Machines
5.1.2 Stream-Oriented Progranuning and Circular
Buffers.
5.1.3 Queues
5.2 Models of Programs
5.2.1 Data Flow Graphs
5.2.2 Control/Dau Flow Graphs
5.3 Assembly, Linking, and Loading
5.3.1 Assemblers
5.3.2 Linking
5.4 Basic Compilation Techniques
5.4.1 Statement Translation
5.4.2 Procedures.
5.4.3 Data Structures
5.5 Program Optimization .
5.5.1 Expression Simplification
5.5.2 Dead Code Elimination
5.5.3 Procedure InUning
5.5.4 Loop Transformations
5.5.5 Register Allocation
5.5.6 Scheduling
5.5.7 Instruction Selection
5.5.8 Understanding and Using your Compiler
5.5.9 Interpreters and JIT Compilers
5.6 Program-Level Performance Analysis
5.6.1 Elements of Program Perfoririance
5.6.2 Measurement-Driven Performance Analysis
5.7 Software Performance Optimization
5.7.1 Loop Optimizations
5.7.2 Performance Optimization Strategies
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.10.1 Clear-Box Testing
5.10.2 Black-Box Testing
5.10.3 Evaluating Function Tests
5.11 Software Modem
5.11.1 Theory of Operation and Requirements
5.11.2 Specification
5.11.3 System Architecture
5.11.4 Component Design and Testing
5.11.5 System Integration and Testing
CHAPTER 6 Processes and Operating Systems
Introduction
6.1 Multiple Tasks and Multiple Processes
6.1.1 Tasks and Processes
6.1.2 Multirate Systems
6.1.3 Timing Requirements on Processes
6.1.4 CPU Metrics
6.1.5 Process State and Scheduling
6.1.6 Some Scheduling Policies
6.1.7 Running Periodic Processes
6.2 Preemptive Real-Time Operating Systems
6.2.1 Preemption
6.2.2 Priorities
6.2.3 Processes and Context
6.2.4 Processes and Object-Oriented Design
6.3 Priority-Based Scheduling
6.3.1 Rate-Monotonic Scheduling
6.3.2 Earliest-Deadline-First Scheduling
6.3.3 RMS vs. EDF
6.3.4 A Closer Look at Our Modeling Assumptions
6.4 Interprocess Communication Mechanisms
6.4.1 Shared Memory Conununication
6.4.2 Message Passing
6.4.3 Signals
6.5 Evaluating Operating System Performance
6.6 Power Management and Optimization for Processes
6.7 Design Example: Telephone Answering Machine
6.7.1 Theory of Operation and Requirements
6.7.2 Specification
6.7.3 System Architecture
6.7.4 Component Design and Testing
6.7.5 System Integration and Testing
CHAPTER 7 Multiprocessors
Introduction
7.1 Why Multiprocessors?
7.2 CPUs and Accelerators
7.2.1 System Architecture Framework
7.2.2 System Integration and Debugging
7.3 Multiprocessor Performance Analysis
7.3.1 Accelerators and Speedup
7.3.2 Performance Effects of Scheduling and Allocation
7.3.3 Buffering and Performance
7.4 Consumer Electronics Architecture
7.4.1 Use Cases and Requirements
7.4.2 Platforms and Operating Systems
7.4.3 Flash File Systems
7.5 Design Example: Cell Phones
7.6 Design Example: Compact DISCs and DVDs
7.7 Design Example: Audio Players
7.8 Design Example: Digital Still Cameras
7.9 Design Example: Video Accelerator
7.9.1 Algorithm and Requirements
7.9.2 Specification
7.9.3 Architecture
7.9.4 Component Design
7-9.5 System Testing
CHAPTER 8 Networks
Introduction
8.1 Distributed Embedded Architectures
8.1.1 Why Distributed?
8.1.2 Network Abstractions
8.1.3 Hardware and Software Architectures
8.1.4 Message Passing Programming
8.2 Networks for Embedded Systems
8.2.1 Thel^CBus
8.2.2 Ethernet
8.2.3 Fieldbus
8.3 Network-Based Design
8.4 Internet-Enabled Systems
8.4.1 Internet
8.4.2 Internet Applications
8.4.3 Internet Security
8.5 Vehicles as Networks
8.5.1 Automotive Networks
8.5.2 Avionics
8.6 Sensor Networks
8.7 Design Example: Elevator Controller
8.7.1 Theory of Operation and Requirements
8.7.2 Specification
8.7.3 Architecture
8.7.4 Testing
CHAPTER 9 System Design Techniques
Introduction
9.1 Design Methodologies
9.1.1 Why Design Methodologies?
9.1.2 Design Flows
9.2 Requirements Analysis
Contents
9.3 Specifications.
9.3.1 Control-Oriented Specification Languages
9.3.2 Advanced Specifications
9.4 System Analysis and Architecture Design
9.5 Quality Assurance
9.5.1 Quality Assurance Techniques
9.5.2 Verifying the Specification
9.5.3 Design Reviews

9788131217917 (pb)


System Design.
Embedded Computer Systems.

004.21 / WOL/C