did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9781558606937

Computers As Components : Principles of Embedded Computing System Design

by
  • ISBN13:

    9781558606937

  • ISBN10:

    1558606939

  • Format: Paperback
  • Copyright: 2000-09-01
  • Publisher: Elsevier Science Ltd
  • View Upgraded Edition
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $68.95
We're Sorry.
No Options Available at This Time.

Summary

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.

Author Biography

Wayne Wolf is a professor of electrical engineering at Princeton University.

Table of Contents

Foreword vii
List of Examples
xix
Preface xxiii
Embedded Computing
1(56)
Introduction
1(1)
Complex Systems and Microprocessors
2(8)
Embedding Computers
2(3)
Characteristics of Embedded Computing Applications
5(1)
Why Use Microprocessors?
6(2)
Challenges in Embedded Computing System Design
8(2)
The Embedded System Design Process
10(11)
Requirements
12(5)
Specification
17(1)
Architecture Design
18(2)
Designing Hardware and Software Components
20(1)
System Integration
20(1)
Formalisms for System Design
21(11)
Structural Description
22(7)
Behavioral Description
29(3)
Design Example: Model Train Controller
32(15)
Requirements
34(1)
Conceptual Specification
34(5)
Detailed Specification
39(8)
Lessons Learned
47(1)
A Guided Tour of This Book
47(7)
Instruction Sets
48(1)
CPUs
48(1)
The Embedded Computing Platform
49(1)
Program Design and Analysis
50(1)
Processes and Operating Systems
51(1)
CPU Accelerators
52(1)
Networks
52(1)
System Design Techniques
53(1)
Summary
54(3)
What We Learned
54(1)
Further Reading
54(1)
Questions
54(2)
Lab Exercises
56(1)
Instruction Sets
57(48)
Introduction
57(1)
Preliminaries
58(4)
Computer Architecture Taxonomy
58(2)
Assembly Language
60(2)
ARM Processor
62(20)
Processor and Memory Organization
63(1)
Data Operations
63(10)
Flow of Control
73(9)
SHARC Processor
82(17)
Memory Organization
83(1)
Data Operations
83(10)
Flow of Control
93(6)
Parallelism within Instructions
99(1)
Summary
99(6)
What We Learned
100(1)
Further Reading
100(1)
Questions
100(4)
Lab Exercises
104(1)
CPUs
105(72)
Introduction
105(1)
Programming Input and Output
106(22)
Input and Output Devices
106(2)
Input and Output Primitives
108(2)
Busy-Wait I/O
110(2)
Interrupts
112(16)
Supervisor Mode, Exceptions, and Traps
128(2)
Supervisor Mode
128(1)
Exceptions
129(1)
Traps
129(1)
Co-Processors
130(1)
Memory System Mechanisms
131(13)
Caches
131(8)
Memory Management Units and Address Translation
139(5)
CPU Performance
144(8)
Pipelining
145(4)
Superscalar Execution
149(2)
Caching
151(1)
CPU Power Consumption
152(6)
Design Example: Data Compressor
158(13)
Requirements and Algorithm
158(3)
Specification
161(2)
Program Design
163(7)
Testing
170(1)
Summary
171(6)
What We Learned
172(1)
Further Reading
172(1)
Questions
173(3)
Lab Exercises
176(1)
The Embedded Computing Platform
177(68)
Introduction
177(1)
The CPU Bus
178(15)
Bus Protocols
178(8)
DMA
186(1)
System Bus Configurations
187(3)
ARM Bus
190(1)
SHARC Bus
191(2)
Memory Devices
193(9)
Memory Device Organization
194(1)
Random-Access Memories
195(6)
Read-Only Memories
201(1)
I/O Devices
202(7)
Timers and Counters
202(1)
A/D and D/A Converters
203(1)
Keyboards
204(2)
LEDs
206(1)
Displays
206(2)
Touchscreens
208(1)
Component Interfacing
209(3)
Memory Interfacing
209(2)
Device Interfacing
211(1)
Designing with Microprocessors
212(8)
System Architecture
213(1)
Hardware Design
214(2)
The PC as a Platform
216(4)
Development and Debugging
220(8)
Development Environments
220(1)
Debugging Techniques
221(6)
Debugging Challenges
227(1)
Manufacturing Testing
228(5)
Design Example: Alarm Clock
233(8)
Requirements
233(2)
Specification
235(4)
System Architecture
239(1)
Component Design and Testing
240(1)
System Integration and Testing
241(1)
Summary
241(4)
What We Learned
241(1)
Further Reading
242(1)
Questions
242(2)
Lab Exercises
244(1)
Program Design and Analysis
245(96)
Introduction
245(1)
Program Design
246(6)
Design Patterns
246(2)
Design Patterns for Embedded Systems
248(4)
Models of Programs
252(6)
Data Flow Graphs
252(2)
Control/Data Flow Graphs
254(4)
Assembly and Linking
258(7)
Assemblers
259(5)
Linking
264(1)
Basic Compilation Techniques
265(25)
Statement Translation
267(6)
Procedures
273(1)
Data Structures
274(1)
Expression Simplification
275(2)
Dead Code Elimination
277(1)
Procedure Inlining
277(1)
Loop Transformations
278(2)
Register Allocation
280(5)
Scheduling
285(2)
Instruction Selection
287(1)
Understanding and Using Your Compiler
288(1)
Interpreters and JIT Compilers
289(1)
Analysis and Optimization of Execution Time
290(15)
Elements of Program Performance
292(4)
Trace-Driven Performance Analysis
296(8)
Optimizing for Execution Speed
304(1)
Analysis and Optimization of Energy and Power
305(5)
Program Energy Consumption and Optimization
306(4)
Analysis and Optimization of Program Size
310(2)
Program Validation and Testing
312(13)
Clear-Box Testing
313(9)
Black-Box Testing
322(1)
Evaluating Function Tests
323(1)
Performance Testing
324(1)
Design Example: Software Modem
325(5)
Theory of Operation and Requirements
325(3)
Specification
328(1)
System Architecture
328(1)
Component Design and Testing
329(1)
System Integration and Testing
329(1)
Summary
330(11)
What We Learned
330(1)
Further Reading
331(1)
Questions
331(8)
Lab Exercises
339(2)
Processes and Operating Systems
341(78)
Introduction
341(2)
Multiple Tasks and Multiple Processes
343(4)
Multirate Systems
345(1)
Early Multitasking Technology: The Co-Routine
346(1)
Processes
347(4)
Context Switching
351(7)
Cooperative Multitasking
351(5)
Preemptive Multitasking
356(1)
Processes and Object-Oriented Design
357(1)
Operating Systems
358(13)
Process State and Scheduling
358(3)
Operating System Structure
361(1)
Timing Requirements on Processes
362(3)
Interprocess Communication
365(6)
Other Operating System Functions
371(1)
Scheduling Policies
371(16)
Rate-Monotonic Scheduling
372(5)
Earliest-Deadline-First Scheduling
377(5)
RMS versus EDF
382(1)
A Closer Look at Our Modeling Assumptions
383(3)
Other POSIX Scheduling Policies
386(1)
Interprocess Communication Mechanisms
387(6)
Signals
387(2)
Signals in UML
389(1)
Shared Memory Communication
389(3)
Message-Based Communication
392(1)
Evaluating Operating System Performance
393(3)
Power Optimization Strategies for Processes
396(4)
Design Example: Telephone Answering Machine
400(9)
Theory of Operation and Requirements
400(4)
Specification
404(2)
System Architecture
406(2)
Component Design and Testing
408(1)
System Integration and Testing
409(1)
Summary
409(10)
What We Learned
410(1)
Further Reading
410(1)
Questions
410(7)
Lab Exercises
417(2)
Hardware Accelerators
419(30)
Introduction
419(1)
CPUs and Accelerators
420(4)
Why Accelerators?
421(2)
Accelerator Design
423(1)
Accelerated System Design
424(13)
Performance Analysis
424(5)
System Architecture Framework
429(3)
Partitioning
432(2)
Scheduling and Allocation
434(3)
System Integration and Debugging
437(1)
Design Example: Video Accelerator
437(8)
Algorithm and Requirements
437(4)
Specification
441(1)
Architecture
441(2)
Component Design
443(1)
System Testing
444(1)
Summary
445(4)
What We Learned
446(1)
Further Reading
446(1)
Questions
446(1)
Lab Exercises
447(2)
Networks
449(48)
Introduction
449(1)
Distributed Embedded Architectures
450(8)
Why Distributed?
451(1)
Network Abstractions
452(1)
Hardware and Software Architectures
453(4)
Message Passing Programming
457(1)
Networks for Embedded Systems
458(17)
The I2C Bus
459(5)
The CAN Bus
464(3)
SHARC Link Ports
467(3)
Ethernet
470(2)
Myrinet
472(1)
Internet
473(2)
Network-Based Design
475(9)
Communication Analysis
475(6)
System Performance Analysis
481(1)
Hardware Platform Design, Allocation, and Scheduling
482(2)
Internet-Enabled Systems
484(2)
Design Example: Elevator Controller
486(7)
Theory of Operation and Requirements
487(2)
Specification
489(2)
Architecture
491(1)
Testing
492(1)
Summary
493(4)
What We Learned
493(1)
Further Reading
493(1)
Questions
494(2)
Lab Exercises
496(1)
System Design Techniques
497(64)
Introduction
497(1)
Design Methodologies
498(9)
Why Design Methodologies?
498(2)
Design Flows
500(7)
Requirements Analysis
507(2)
Specifications
509(6)
Control-Oriented Specification Languages
509(3)
Advanced Specifications
512(3)
System Analysis and Architecture Design
515(5)
CRC Cards
516(4)
Quality Assurance
520(14)
Quality Assurance Techniques
523(2)
Verifying the Specification
525(2)
Design Reviews
527(3)
Measurement-Driven Quality Assurance
530(4)
Design Example: Telephone PBX
534(5)
Theory of Operation
535(2)
System Architecture
537(2)
Design Example: Ink Jet Printer
539(9)
Hardware Design
542(4)
Software Design
546(2)
Design Example: Personal Digital Assistants
548(3)
Design Example: Set-Top Boxes
551(4)
Systems-on-Silicon
555(2)
Summary
557(4)
What We Learned
557(1)
Further Reading
558(1)
Questions
558(1)
Lab Exercises
559(2)
Appendix A UML Notations 561(6)
A.1 Introduction
561(1)
A.2 Primitive Elements
561(1)
A.3 Diagram Types
562(5)
A.3.1 Class Diagram
563(1)
A.3.2 State Diagram
564(1)
A.3.3 Sequence and Collaboration Diagrams
565(2)
Appendix B Notes on Hardware Design 567(12)
B.1 Introduction
567(1)
B.2 Combinational Logic
567(4)
B.3 Sequential Logic
571(6)
B.3.1 Memory Elements
571(2)
B.3.2 Synchronous Machines
573(3)
B.3.3 Asynchronous Machines
576(1)
B.4 Implementation Media
577(2)
Glossary 579(22)
References 601(12)
Index 613(44)
About the CDs 657

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program