High-Performance Embedded Computing, Second Edition, combines leading-edge research with practical guidance in a variety of embedded computing topics, including real-time systems, computer architecture, and low-power design. Author Marilyn Wolf presents a comprehensive survey of the state of the art, and guides you to achieve high levels of performance from the embedded systems that bring these technologies together.
The book covers CPU design, operating systems, multiprocessor programs and architectures, and much more. Embedded computing is a key component of cyber-physical systems, which combine physical devices with computational resources for control and communication. This revised edition adds new content and examples of cyber-physical systems throughout the book, including design methodologies, scheduling, and wide-area CPS to illustrate the possibilities of these new systems.
Key Features
- Revised and updated with coverage of recently developed consumer electronics architectures and models of computing
- Includes new VLIW processors such as the TI Da Vinci, and CPU simulation
- Learn model-based verification and middleware for embedded systems
- Supplemental material includes lecture slides, labs, and additional resources
- Dedication
- Acknowledgments
- About the Author
- Preface to the Second Edition
- Preface to the First Edition
- Chapter 1. Embedded Computing
- 1.1. The landscape of high-performance embedded computing
- 1.2. Cyber-physical systems and embedded computing
- 1.3. Design methodologies
- 1.4. Models of computation
- 1.5. Reliability, safety, and security
- 1.6. Consumer electronics architectures
- 1.7. Summary and a look ahead
- What we learned
- Further reading
- Questions
- Lab exercises
- Chapter 2. CPUs
- 2.1. Introduction
- 2.2. Comparing processors
- 2.3. RISC processors and digital signal processors
- 2.4. Parallel execution mechanisms
- 2.5. Variable-performance CPU architectures
- 2.6. Processor memory hierarchy
- 2.7. Encoding and security
- 2.8. CPU simulation
- 2.9. Automated CPU design
- 2.10. Summary
- What we learned
- Further reading
- Questions
- Lab exercises
- Chapter 3. Programs
- 3.1. Introduction
- 3.2. Code generation and back-end compilation
- 3.3. Memory-oriented optimizations
- 3.4. Program performance analysis
- 3.5. Models of computation and programming
- 3.6. Summary
- What we have learned
- Further reading
- Questions
- Lab exercises
- Chapter 4. Processes and Operating Systems
- 4.1. Introduction
- 4.2. Real-time process scheduling
- 4.3. Languages and scheduling
- 4.4. Operating system design
- 4.5. Verification
- 4.6. Summary
- What we have learned
- Further reading
- Questions
- Lab exercises
- Chapter 5. Multiprocessor Architectures
- 5.1. Introduction
- 5.2. Why embedded multiprocessors?
- 5.3. Multiprocessor design techniques
- 5.4. Multiprocessor architectures
- 5.5. Processing elements
- 5.6. Interconnection networks
- 5.7. Memory systems
- 5.8. Physically distributed systems and networks
- 5.9. Multiprocessor design methodologies and algorithms
- 5.10. Summary
- What we have learned
- Further reading
- Questions
- Lab exercises
- Chapter 6. Multiprocessor Software
- 6.1. Introduction
- 6.2. What is different about embedded multiprocessor software?
- 6.3. Real-time multiprocessor operating systems
- 6.4. Services and middleware for embedded multiprocessors
- 6.5. Design verification
- 6.6. Summary
- What we have learned
- Further reading
- Questions
- Lab exercises
- Chapter 7. System-Level Design and Hardware/Software Co-design
- 7.1. Introduction
- 7.2. Performance estimation
- 7.3. Hardware/software co-synthesis algorithms
- 7.4. Electronic system-level design
- 7.5. Thermal-aware design
- 7.6. Reliability
- 7.7. System-level simulation
- 7.8. Summary
- What we have learned
- Further reading
- Questions
- Lab exercises
- Chapter 8. Cyber-Physical Systems
- 8.1. Introduction
- 8.2. Control theory and systems
- 8.3. Control/computing co-design
- 8.4. Networked control systems
- 8.5. Design methodologies
- 8.6. Security
- 8.7. Summary
- What we have learned
- Further reading
- Questions
- Lab exercises
- Glossary
- References
- Index
Professionals in high-performance and /or embedded computing; practitioners in cyber-physical systems, and students in graduate courses on these topics