Computers as Components Principles of Embedded Computing System Design AMSTERDAM • BOSTON • HEIDELBERG • LONDON NEW YORK • OXFORD • PARIS • SAN DIEGO SAN FRANCISCO • SINGAPORE • SYDNEY «TOKYO Morgan Kaufmann Publishers is an imprint of Elsevier Second Edition Wayne Wolf
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Computers as Components
Principles of Embedded Computing System Design
AMSTERDAM • BOSTON • HEIDELBERG • LONDON
NEW YORK • OXFORD • PARIS • SAN DIEGO
SAN FRANCISCO • SINGAPORE • SYDNEY «TOKYO
Morgan Kaufmann Publishers is an imprint of Elsevier
Second Edition
Wayne Wolf
Contents
About the Author ii
Foreword to The First Edition vii
List of Examples xvii
Preface to The Second Edition xix
Preface to The First Edition xxi
CHAPTER 1 Embedded Computing 1 Introduction 1
1.1 Complex Systems and Microprocessors 1 1.1.1 Embedding Computers 2 1.1.2 Characteristics of Embedded Computing
Applications 4 1.1.3 Why Use Microprocessors? 6 1.1.4 The Physics of Software 8 1.1.5 Challenges in Embedded Computing System
Design 8 1.1.6 Performance in Embedded Computing 10
1.2 The Embedded System Design Process 11 1.2.1 Requirements 12 1.2.2 Specification 17 1.2.3 Architecture Design 18 1.2.4 Designing Hardware and Software
Components 20 1.2.5 System Integration 20
1.3 Formalisms for System Design 21 1.3.1 Structural Description 22 1.3.2 Behavioral Description 27
1.4 Model Train Controller 30 1.4.1 Requirements 31 1.4.2 DCC 32 1.4.3 Conceptual Specification 34 1 A A Detailed Specification 37 1.4.5 Lessons Learned 44
1.5 A Guided Tour of This Book 45 1.5.1 Chapter 2: Instruction Sets 46 1.5.2 Chapter 3: CPUs 46 1.53 Chapter 4: Bus-Based Computer Systems 46
ix
x Contents
1.5.4 Chapter 5: Program Design and Analysis 47 1.5.5 Chapter 6: Processes and Operating Systems 48 1.5.6 Chapter 7: Multiprocessors 49 1.5.7 Chapter 8: Networks 50 1.5.8 Chapter 9: System Design Techniques 50 Summary 51 Further Reading 51 Questions 52 Lab Exercises 53
5.11 Software Modem 278 5.11.1 Theory of Operation and Requirements 278 5.11.2 Specification 280 5.11.3 System Architecture 280 5.11.4 Component Design and Testing 282 5.11.5 System Integration and Testing 282 Summary 282 Further Reading 283 Questions 283 Lab Exercises 291
CHAPTER 6 Processes and Operating Systems 293 Introduction 293
6.1 Multiple Tasks and Multiple Processes 294 6.1.1 Tasks and Processes 294 6.1.2 Multirate Systems 296 6.1.3 Timing Requirements on Processes 298 6.1.4 CPU Metrics 302 6.1.5 Process State and Scheduling 303 6.1.6 Some Scheduling Policies 303 6.1.7 Running Periodic Processes 306
6.2 Preemptive Real-Time Operating Systems 308 6.2.1 Preemption 308 6.2.2 Priorities 309 6.2.3 Processes and Context 310 6.2.4 Processes and Object-Oriented Design 315