Table of contents for High-performance embedded computing : architectures, applications, and methodologies / Wayne Wolf.

Bibliographic record and links to related information available from the Library of Congress catalog.

Note: Contents data are machine generated based on pre-publication provided by the publisher. Contents may have variations from the printed book or be incomplete or contain other coding.


Counter
Preface
1 Embedded Computing 1
The Landscape of High-Performance Embedded Computing 1
Example Applications 5
 Radio and Networking 5
 Multimedia 10
 Vehicle Control and Operation 15
 Sensor Networks 18
Design Goals 21
Design Methodologies 22
 Basic Design Methodologies 23
 Embedded Systems Design Flows 26
 Standards-Based Design Methodologies 28
 Design Verification and Validation 31
 A Methodology of Methodologies 31
 Joint Algorithm and Architecture Development 32
Models of Computation 33
 Why Study Models of Computation? 33
 Finite vs. Infinite State 34
 Control Flow and Data Flow Models 38
 Parallelism and Communication 42
 Sources and Uses of Parallelism 46
Reliability, Safety, and Security
 Why Reliable Embedded Systems? 47
 Fundamentals of Reliable System Design
 Novel Attacks and Countermeasures
Consumer Electronics Architectures
Bluetooth
 WiFi
 Networked Consumer Devices
 High-Level Services
What We Have Learned
For Further Reading
Questions
Lab Exercises
2 CPUs 65
Introduction
Comparing Processors 66
 Evaluating Processors 66
 A Taxonomy of Processors 67
 Embedded vs. General-Purpose Processors 68
RISC Processors and Digital Signal Processors 69
 RISC Processors 69
 Digital Signal Processors 70
Parallel Execution Mechanisms
 Very Long Instruction Word Processors 77
 Superscalar Processors 80
 Thread-Level Parallelism 82
 Processor Resource Utilization 83
Variable-Performance CPU Architectures 85
 Dynamic Voltage and Frequency Scaling 86
 Better-Than-Worst-Case Design
Processor Memory Hierarchy 89
 Memory Component Models 89
 Register Files 94
 Caches 95
Additional CPU Mechanisms 98
 Code Compression 99
 Code and Data Compression 114
 Low-Power Bus Encoding 115
 Security 120
CPU Simulation 122
Trace-Based Analysis
Direct Execution
Microarchitecture-Modeling Simulators
Automated CPU Design
Configurable Processors
Instruction Set Synthesis
Summary
What We Have Learned
For Further Reading
Questions
Lab Exercises
3 Programs 151
Introduction 151
Code Generation and Back-End Compilation 152
 Models for Instructions 153
 Register Allocation 155
 Instruction Selection and Scheduling 159
 Code Placement 163
 Programming Environments 165
Memory-Oriented Optimizations 166
 Loop Transformations
 Global Optimizations 172
 Buffer, Data Transfer, and Storage Management 173
 Cache- and Scratch Pad-Oriented Optimizations 175
 Main Memory-Oriented Optimizations 179
Program Performance Analysis 181
 Performance Models 183
 Path Analysis 184
 Path Timing 187
Models of Computation and Programming 193
 Interrupt-Oriented Languages 195
 Dataflow Languages 196
 Control-Oriented Languages 202
 Java 207
 Heterogeneous Models of Computation 209
Summary 213
What We Have Learned 213
For Further Reading
Questions
Lab Exercises
4 Processes and Operating Systems 217
Introduction 217
Real-Time Process Scheduling 218
 Preliminaries 218
 Real-Time Scheduling Algorithms 220
 Scheduling for Dynamic Voltage Scaling 228
 Performance Estimation 232
Languages and Scheduling 234
Operating System Design 239
 Memory Management in Embedded Operating Systems 240
 Structure of a Real-Time Operating System 242
 Operating System Overhead 243
 Support for Scheduling 245
 Interprocess Communication Mechanisms 246
 Power Management 247
 File Systems in Embedded Devices 247
Verification 251
Summary
What We Have Learned 257
For Further Reading 257
Questions 257
Lab Exercises 258
5 Multiprocessor Architectures
Introduction 259
Why Embedded Multiprocessors?
 Requirements on Embedded Systems 262
 Performance and Energy 263
 Specialization and Multiprocessors 265
 Flexibility and Efficiency 267
Multiprocessor Design Techniques 267
 Multiprocessor Design Methodologies 268
 Multiprocessor Modeling and Simulation 269
Multiprocessor Architectures 259
Processing Elements 281
Interconnection Networks
 Models 283
 Network Topologies 285
 Routing and Flow Control 289
 Networks-on-Chips 289
Memory Systems 296
Traditional Parallel Memory Systems 297
 Models for Memory 299
 Heterogeneous Memory Systems 300
 Consistent Parallel Memory Systems 303
Physically Distributed Systems and Networks 306
 Time-Triggered Architecture 306
 FlexRay 310
 Aircraft Networks 318
Multiprocessor Design Methodologies and Algorithms 320
Summary 326
What We Have Learned 326
For Further Reading 327
Questions 327
Lab Exercises 328
6 Multiprocessor Software 329
Introduction 329
What Is Different About Embedded Multiprocessor Software?
Real-Time Multiprocessor Operating Systems 331
 Role of the Operating System 331
 Multiprocessor Scheduling 334
 Scheduling with Dynamic Tasks
Services and Middleware for Embedded Multiprocessors 354
 Standards-Based Services 355
 System-on-Chip Services. 358
 Quality-of-Service 362
Design Verification 366
Summary 369
What We Have Learned 369
For Further Reading 370
Questions 370
Lab Exercises 372
7 Hardware/Software Co-Design 373
Introduction 373
Design Platforms
Performance Analysis
 High-Level Synthesis 377
 Accelerator Estimate
Hardware/Software Co-Synthesis Algorithms 385
Program Representations 386
 Platform Representations 387
 Template-Driven Synthesis Algorithms 389
 Co-Synthesis of General Multiprocessors 396
 Multi-Objective Optimization 405
 Control and I/O Synthesis 409
 Memory Systems 410
 Co-Synthesis for Reconfigurable Systems 413
Hardware/Software Co-Simulation 415
Summary 417
What We Have Learned 417
For Further Reading 418
Questions 418
Lab Exercises 420
Index

Library of Congress Subject Headings for this publication:

Embedded computer systems.
High performance computing.