嵌入式计算系统设计原理(英文版)(第2版)(经典原版书库)

分類: 图书,计算机与互联网,硬件/嵌入式开发,微机/cpu,
品牌: 沃尔夫
基本信息·出版社:机械工业出版社
·页码:507 页
·出版日期:2009年
·ISBN:9787111253600
·条形码:9787111253600
·包装版本:1版
·装帧:平装
·开本:16
·正文语种:英语
·丛书名:经典原版书库
产品信息有问题吗?请帮我们更新产品信息。
内容简介《嵌入式计算系统设计原理》(英文版)(第2版)从组件技术的视角出发,介绍了嵌入式系统设计技术和技巧。《嵌入式计算系统设计原理》第l版已被广泛应用于教学,可以说在很大程度上引发了嵌入式系统课程的创立,并为实践设计提供了宝贵指南。第2版根据最先进的技术发展进行了更新。不论是进行软硬件设计的研究人员、学生还是专家,都能从Wayne Wolf的集成化工程设计方法中获益匪浅。
作者简介Wayne Wolf,拥有斯坦福大学电气工程博士学位,曾执教于普林斯顿大学,现任职于GeorgiaTech公司。在1989年加入普林斯顿大学之前,他曾在AT&T贝尔实验室工作。他是IEEE和ACM会员、IEEE计算机协会核心成员以及ASEE和SPIE成员。Wolf教授于2003年获得TASEE Frederick E.Terman奖,于2006年获得TIEEE电路与系统教育奖。除本书外,他还著有《高性能嵌入式计算》和《基于FPGA的系统设计》等书。
编辑推荐《嵌入式计算系统设计原理》(英文版)(第2版)主要特点:
以实际芯片(ARM芯片和TI C55x DSP)为例,进行相关设计技术和技巧的说明,向读者介绍如何将这些理论付诸于设计实践。
在所有关键课题讨论中都尤为强调现实中的设计实践,从而为学生和设计人员提供了最先进技术的指导。
对设计实践中所必需的基本应用技术进行重点讨论,帮助读者在实际工作中熟练地设计大型的、复杂的嵌入式系统。
目录
About the Author
Foreword to The FirstEdition
Preface to The SecondEdition
Preface to The FirSt Edition
ListofExamples
CHAPTER 1 Embedded Computi ng
Introduction
1.1 Complex systems and Microprocessors
1.1.1 Embedding Computers
1.1.2 Characteristics of Embedded Computing Applications
1.1.3 WhyUseMicroprocessors?
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 Svstem Integration
1.3 Formalismsfor SystemDesign
1.3.1 StructuralDescription
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 andAnalysis
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 DesignTechniques
Summary.
FurtherReading
Questions
Lab Exercises
CHAPTER 2 Instruction Sets
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
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
Summary.
FurtherReading
Questions
Lab Exercises
CHAPTER 3 CPUs
Introduction
3.1 Programming Input and Output
3.1.1 Input and Output Devices.
3.1.2 Input and Output Primitives
3.1.3 Busy-WaitI/O
3.1.4 Interrupts
3.2 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 andAddress Tlmnslation
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
Summary
FurtherReading
Questions
LabExercises
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 AMBA Bus
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 Analvsis
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 and Testing
Summary.
FurtherReading.
Questions
LabExercises
CHAPTER 5 Program Design and Analysis
Introduction
5.1 Components for Embedded Programs
5.1.1 State Machines
5.1.2 Stream-Oriented Programming and Circular Buffers
5.1.3 Queues
5.2 Models of Programs
5.2.1 Data Flow Graphs
5.2.2 Control/Data 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 Inlining
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 Performance
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
Summary
FurtherReading
Questions
1LabExercises
CHAPTER 6 Processes and Operating Systems
Lntroduction.
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 Communication
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 andTesting
6.7.5 System Integration andTesting
Summary.
FurtherReading.
Questions
LabExercises
CHAPTER 7 MuItiprocessors
Introduction
7.1 WhyMultiprocessors?
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 andAllocation
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 FlashFile 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
Summary
Further Reading
Questions
Lab Exercises
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 TheI2C Bus
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 Tcsting
Summary
Further Reading
Ouestions
Lab Exercises
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
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
Summary
Further Reading
Questions
LabExercises
APPENDIX A UML Notations
Introduction
A.1 Primitive Elements
A.2 Diagram Types
A.2.1 Class Diagram
A.2.2 State Diagram
A.2.3 Sequence and Collaboration Diagrams
Glossary
References
Index
……[看更多目录]
序言Embedded computing is more important today than it was in 2000.when the first edition of this book appeared.Embedded processors are in even more products,ranging from toys tO airplanes.Systems-on-chips now use up to hundreds of CPUs.The cell phone is on its way to becoming the new standard computing platform.As my column in IEEE Computer in September 2006 indicated.there are at least a half-million embedded systems programmers in the World today,probably closer to 800,000.
In mis edition I have tried to both update and revamp.One major change is mat the book now uses the TI TMS320C55xTM(C55x)DSP.I seriously rewrote the discussion of real-time scheduling.I have tried to expand on performance analysis as a theme at as many levels of abstraction as possible.Given the importance of multiorocessors in even the most mundane embedded systems,this edition also talks more genetaUy about hardware/software co-design and muItiorocessors.
One ofthe changes in the field is that this material iS taught at lower and lowerlevels of the curriculum.What used to be graduate material is now upper-division undergraduate;some of this material Will percolate down to the sophomore levelin the foreseeable future.I think that you Can use subsets of this book tO cover both more advanced and more basic courses.Some advanced students may not need the background material of the earlier chapters and you Can spend more time on software performance analysis,scheduling,and multiprocessors.Vc'hen teaching introductory courses,software performance analysis is an alternative path to exploroing microprocessor architectures as well as software;such courses can concentrate on the first few chapters.
The new Web site for this book and my other books is http://www.waynewolf.us.On this site,yoU can find overheads for the material in this book,suggestions for labs.and links tO more information on embedded systems.
文摘插图:
