Computers as components : principles of embedded computing system design

書誌事項

Computers as components : principles of embedded computing system design

Wayne Wolf

Morgan Kaufmann Publishers, 2001

  • : case
  • : paper

大学図書館所蔵 件 / 15

この図書・雑誌をさがす

注記

Hardcover edition includes software (2 CD-ROMs)

Includes bibliographical references (p. 601-611) and index

内容説明・目次

巻冊次

: case ISBN 9781558605411

内容説明

The vast majority of existing computers are embedded in the myriad of intelligent devices and applications-not in desktop machines. We are witnessing the emergence of a new discipline with its own principles, constraints, and design processes. Computers as Components is the first book to teach this new discipline. It unravels the complexity of these systems and the tools and methods necessary for designing them. Researchers, students, and savvy professionals, schooled in hardware or software, will value the integrated engineering design approach to this fast emerging field.

目次

  • Foreword: Preface: Chapter 1 - Embedded Computing: 1.1 Introduction: 1.2 Complex Systems and Microprocessors: 1.2.1 Embedding Computers: 1.2.2 Characteristics of Embedded Computing Applications: 1.2.3 Why Use Microprocessors?: 1.2.4 Challenges in Embedded Computing System Design: 1.3 The Embedded System Design Process: 1.3.1 Requirements: 1.3.2 Specification: 1.3.3 Architecture Design: 1.3.4 Designing Hardware and Software Components: 1.3.5 System Integration: 1.4 Formalisms for System Design: 1.4.1 Structural Description: 1.4.2 Behavioral Description: 1.5 Design Example: Model Train Controller: 1.5.1 Requirements: 1.5.2 Conceptual Specification: 1.5.3 Detailed Specification: 1.5.4 Lessons Learned: 1.6 A Guided Tour of This Book: 1.6.1 Chapter 2: Instruction Sets: 1.6.2 Chapter 3: CPUs: 1.6.3 Chapter 4: The Embedded Computing Platform: 1.6.4 Chapter 5: Program Design and Analysis: 1.6.5 Chapter 6: Processes and Operating Systems: 1.6.6 Chapter 7: CPU Accelerators: 1.6.7 Chapter 8: Networks: 1.6.8 Chapter 9: System Design Techniques: 1.7 Summary: Further Reading: Questions: Lab Exercises:
  • Chapter 2 - Instruction Sets: 2.1 Introduction: 2.2 Preliminaries: 2.2.1 Computer Architecture Taxonomy: 2.2.2 Assembly Language: 2.3 ARM Processor: 2.3.1 Processor and Memory Organization: 2.3.2 Data Operations: 2.3.3 Flow of Control: 2.4 SHARC Processor: 2.4.1 Memory Organization: 2.4.2 Data Operations: 2.4.3 Flow of Control: 2.4.4 Parallelism within Instructions: 2.5 Summary: Further Reading: Questions: Lab Exercises:
  • Chapter 3 - CPUs: 3.1 Introduction: 3.2 Programming Input and Output: 3.2.1 Input and Output Devices: 3.2.2 Input and Output Primitives: 3.2.3 Busy-Wait I/O: 3.2.4 Interrupts: 3.3 Supervisor Mode, Exceptions, and Traps: 3.3.1 Supervisor Mode: 3.3.2 Exceptions: 3.3.3 Traps: 3.4 Co-Processors: 3.5 Memory System Mechanisms: 3.5.1 Caches: 3.5.2 Memory Management Units and Address Translations: 3.6 CPU Performance: 3.6.1 Pipelining: 3.6.2 Superscalar Execution: 3.6.3 Caching: 3.7 CPU Power Consumption: 3.8 Design Example: Data Compressor: 3.8.1 Requirements and Algorithm: 3.8.2 Specification: 3.8.3 Program Design: 3.8.4 Testing: 3.9 Summary: Further Reading: Questions: Lab Exercises:
  • Chapter 4 - The Embedded Computing Platform: 4.1 Introduction: 4.2 The CPU Bus: 4.2.1 Bus Protocols: 4.2.2 DMA: 4.2.3 System Bus Configurations: 4.2.4 ARM Bus: 4.2.5 SHARC Bus: 4.3 Memory Devices: 4.3.1 Memory Device Organization: 4.3.2 Random-Access Memories: 4.3.3 Read-Only Memories: 4.4 I/O Devices: 4.4.1 Timers and Counters: 4.4.2 A/D and D/A Converters: 4.4.3 Keyboards: 4.4.4 LEDs: 4.4.5 Displays: 4.4.6 Touchscreens: 4.5 Component Interfacing: 4.5.1 Memory Interfacing: 4.5.2 Device Interfacing: 4.6 Designing with Microprocessors: 4.6.1 System Architecture: 4.6.2 Hardware Design: 4.6.3 The PC as a Platform: 4.7 Development and Debugging: 4.7.1 Development Environments: 4.7.2 Debugging Techniques: 4.7.3 Debugging Challenges: 4.8 Manufacturing Testing: 4.9 Design Example: Alarm Clock: 4.9.1 Requirements: 4.9.2 Specification: 4.9.3 System Architecture: 4.9.4 Component Design and Testing: 4.9.5 System Integration and Testing: 4.10 Summary: Further Reading: Questions: Lab Exercises:
  • Chapter 5 - Program Design and Analysis: 5.1 Introduction: 5.2 Program Design: 5.2.1 Design Patterns: 5.2.2 Design Patterns for Embedded Systems: 5.3 Models of Programs: 5.3.1 Data Flow Graphs: 5.3.2 Control/Data Flow Graphs: 5.4 Assembly and Linking: 5.4.1 Assemblers: 5.4.2 Linking: 5.5 Basic Compilation Techniques: 5.5.1 Statement Translation: 5.5.2 Procedures: 5.5.3 Data Structures: 5.5.4 Expression Simplification: 5.5.5 Dead Code Elimination: 5.5.6 Procedure Inlining: 5.5.7 Loop Transformations: 5.5.8 Register Allocation: 5.5.9 Scheduling: 5.5.10 Instruction Selection: 5.5.11 Understanding and Using Your Compiler: 5.5.12 Interpreters and JIT Compilers: 5.6 Analysis and Optimization of Execution Time: 5.6.1 Elements of Program Performance: 5.6.2 Trace-Driven Performance Analysis: 5.6.3 Optimizing for Execution Speed: 5.7 Analysis and Optimization of Energy and Power: 5.7.1 Program Energy Consumption and Optimization: 5.8 Analysis and Optimization of Program Size: 5.9 Program Validation and Testing: 5.9.1 Clear-Box Testing: 5.9.2 Black-Box Testing: 5.9.3 Evaluating Function Tests: 5.9.4 Performance Testing: 5.10 Design Example: Software Modem: 5.10.1 Theory of Operation and Requirements: 5.10.2 Specification: 5.10.3 System Architecture: 5.10.4 Component Design and Testing: 5.10.5 System Integration and Testing: 5.11 Summary: Further Reading: Questions: Lab Exercises:
  • Chapter 6 - Processes and Operating Systems: 6.1 Introduction: 6.2 Multiple Tasks and Multiple Processes: 6.2.1 Multirate Systems: 6.2.2 Early Multitasking Technology: The Co-Routine: 6.3 Processes: 6.4 Context Switching: 6.4.1 Cooperative Multitasking: 6.4.2 Preemptive Multitasking: 6.4.3 Processes and Object-Oriented Design: 6.5 Operating Systems: 6.5.1 Process State and Scheduling: 6.5.2 Operating System Structure: 6.5.3 Timing Requirements on Processes: 6.5.4 Interprocess Communication: 6.5.5 Other Operating System Functions: 6.6 Scheduling Policies: 6.6.1 Rate-Monotonic Scheduling: 6.6.2 Earliest-Deadline-First Scheduling: 6.6.3 RMS versus EDF: 6.6.4 A Closer Look at Our Modeling Assumptions: 6.6.5 Other POSIX Scheduling Policies: 6.7 Interprocess Communication Mechanisms: 6.7.1 Signals: 6.7.2 Signals in UML: 6.7.3 Shared Memory Communication: 6.7.4 Message-Based Communication: 6.8 Evaluating Operating System Performance: 6.9 Power Optimization Strategies for Processes: 6.10 Design Example: Telephone Answering Machine: 6.10.1 Theory of Operation and Requirements: 6.10.2 Specification: 6.10.3 System Architecture: 6.10.4 Component Design and Testing: 6.10.5 System Integration and Testing: 6.11 Summary: Further Reading: Questions: Lab Exercises:
  • Chapter 7 - Hardware Accelerators: 7.1 Introduction: 7.2 CPUs and Accelerators: 7.2.1 Why Accelerators?: 7.2.2 Accelerator Design: 7.3 Accelerated System Design: 7.3.1 Performance Analysis: 7.3.2 System Architecture Framework: 7.3.3 Partitioning: 7.3.4 Scheduling and Allocation: 7.3.5 System Integration and Debugging: 7.4 Design Example: Video Accelerator: 7.4.1 Algorithm and Requirements: 7.4.2 Specification: 7.4.3 Architecture: 7.4.4 Component Design: 7.4.5 System Testing: 7.5 Summary: Further Reading: Questions: Lab Exercises:
  • Chapter 8 - Networks: 8.1 Introduction: 8.2 Distributed Embedded Architectures: 8.2.1 Why Distributed?: 8.2.2 Network Abstractions: 8.2.3 Hardware and Software Architectures: 8.2.4 Message-Passing Programming: 8.3 Networks for Embedded Systems: 8.3.1 The I2C Bus: 8.3.2 The CAN Bus: 8.3.3 SHARC Link Ports: 8.3.4 Ethernet: 8.3.5 Myrinet: 8.3.6 Internet: 8.4 Network-Based Design: 8.4.1 Communication Analysis: 8.4.2 System Performance Analysis: 8.4.3 Hardware Platform Design, Allocation, and Scheduling: 8.5 Internet-Enabled Systems: 8.6 Design Example: Elevator Controller: 8.6.1 Theory of Operation and Requirements: 8.6.2 Specification: 8.6.3 Architecture: 8.6.4 Testing: 8.7 Summary: Further Reading: Questions: Lab Exercises:
  • Chapter 9 - System Design Techniques: 9.1 Introduction: 9.2 Design Methodologies: 9.2.1 Why Design Methodologies?: 9.2.2 Design Flows: 9.3 Requirements Analysis: 9.4 Specifications: 9.4.1 Control-Oriented Specification Languages: 9.4.2 Advanced Specifications: 9.5 System Analysis and Architecture Design: 9.5.1 CRC Cards: 9.6 Quality Assurance: 9.6.1 Quality Assurance Techniques: 9.6.2 Verifying the Specification: 9.6.3 Design Reviews: 9.6.4 Measurement-Driven Quality Assurance: 9.7 Design Example: Telephone PBX: 9.7.1 Theory of Operation: 9.7.2 System Architecture: 9.8 Design Example: Ink Jet Printer: 9.8.1 Hardware Design: 9.8.2 Software Design: 9.9 Design xample: Personal Digital Assistants: 9.10 Design xample: Set-Top Boxes: 9.11 Systems-on-Silicon: 9.12 Summary: Further Reading: Questions: Lab Exercises:
  • Appendix A - UML Notations: A.1 Introduction: A.2 Primitive Elements: A.3 Diagram Types: A.3.1 Class Diagram: A.3.2 State Diagram: A.3.3 Sequence and Collaboration Diagrams: Appendix B - Notes on Hardware Design: B.1 Introduction: B.2 Combinational Logic: B.3 Sequential Logic: B.3.1 Memory Elements: B.3.2 Synchronous Machines: B.3.3 Asynchronous Machines: B.4 Implementation Media: Glossary: References: About the CD-ROMs
巻冊次

: paper ISBN 9781558606937

内容説明

The vast majority of existing computers are embedded in the myriad of intelligent devices and applications-not in desktop machines. We are witnessing the emergence of a new discipline with its own principles, constraints, and design processes. Computers as Components is the first book to teach this new discipline. It unravels the complexity of these systems and the tools and methods necessary for designing them. Researchers, students, and savvy professionals, schooled in hardware or software, will value the integrated engineering design approach to this fast emerging field. It demonstrates concepts and techniques using two powerful real-world processors as case studies throughout the book: the ARM processor and the SHARC DSP (digital signal processor). It illustrates the major concepts of each chapter with real-world design examples such as software modems, telephone answering machines, and video accelerators. It teaches the basics of UML (Unified Modeling Language) and applies it throughout the text to help you visualize stages in the design process. It illustrates real-time operating systems using the POSIX real-time extensions and Linux. It describes performance analysis and optimization of embedded software, including the effects of caches.

目次

Chapter 1 - Embedded Computing Chapter 2 - Instruction Sets Chapter 3 - CPUs Chapter 4 - The Embedded Computing Platform Chapter 5 - Program Design and Analysis Chapter 6 - Processes and Operating Systems Chapter 7 - Hardware Accelerators Chapter 8 - Networks Chapter 9 - System Design Techniques Appendix A - UML Notations Appendix B - Notes on Hardware Design

「Nielsen BookData」 より

詳細情報

  • NII書誌ID(NCID)
    BA4954632X
  • ISBN
    • 155860541X
    • 1558606939
  • LCCN
    00063323
  • 出版国コード
    us
  • タイトル言語コード
    eng
  • 本文言語コード
    eng
  • 出版地
    San Francisco, CA
  • ページ数/冊数
    xxvi, 662 p.
  • 大きさ
    25 cm
  • 分類
  • 件名
ページトップへ