Computers as components: principles of embedded computing system design/ Wayne Wolf.

By: Wolf, WayneMaterial type: TextTextPublication details: USA: Morgan Kaufmann Publishers, 2010Edition: 2nd edDescription: xxiii, 507 p. 24 cmISBN: 978-0123743978; 9788131217917Subject(s): Embedded computer systems | System design | Embedded computer systems--Design and constructionDDC classification: 004.21
Contents:
CHAPTER 1 Embedded Computing ^ Introduction 1.1 Complex Systems and Microprocessors 1.1.1 Embedding Computers 1.1.2 Characteristics of Embedded Computing ^ Applications ^ 1.1.3 Why Use Microprocessors? ^ 1.1.4 The Physics of Software 1.1.5 Challenges in Embedded Computing System ^ Design ^ 1.1.6 Performance in Embedded Computmg 1.2 The Embedded SystemDesign Process 1.2.1 Requirements 1.2.2 Specification 1.2.3 Architecture Design 1.2.4 Designing Hardware andSoftware Components 1.2.5 SystemIntegration 1.3 FormaUsms for SystemDesign 1.3.1 Structural Description 1.3.2 Behavioral Description 27 1.4 Model Train Controller 50 1.4.1 Requirements — 1.4.2 DCC 1.4.3 Conceptual Specification 34 1.4.4 Detailed Specification 37 1.4.5 Lessons Learned 1.5 AGuided Tour of This Book 45 1.5.1 Chapter 2: Instruction Sets 46 1.5.2 Chapter 3: CPUs 46 1.5.3 Chapter 4: Bus-Based Computer Systems 46 ii vu xvii xix xxi IX 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 Chapter8: Networks 50 1.5.8 Chapter9:System Design Techniques 50 Summary 51 Further Reading 5j Questions 52 Lab Exercises 5^ CHAPTER 2 Instruction Sets 55 Introducton 55 2.1 Preliminaries 55 2.1.1 ComputerArchitecture Taxonomy 55 2.1.2 Assembly Language 58 2.2 ARM Processor 59 2.2.1 Processor and Memory Organization 60 2.2.2 Data Operations 2.2.3 Flow of Control 69 2.3 TIC55XDSP 75 2.3.1 Processor and Memory Organization 76 2.3.2 Addressing Modes 78 2.3.3 Data Operations 82 2.3.4 Flowof Control 83 2.3.5 C Coding Guidelines 85 Summary 36 Further Reading 86 Questions 86 Lab Exercises 89 CHAPTER 3 CPUs 91 Introduction 91 3.1 Programming Input and Output 91 31.1 Input and Output Devices 92 3.1.2 Input and Output Primitives 93 3.1.3 Busy-Wait I/O 95 3.1.4 Interrupts 96 3.2 Supervisor Mode, Exceptions, andTraps 110 3.2.1 Supervisor Mode Ill 3.2.2 Exceptions Ill 3.2.3 Traps 112 3.3 Co-Processors 112 3.4 Memory System Mechanisms 113 3.4.1 Caches 113 3.4.2 Memory Management Units and Address Translation 119 3.5 CPU Performance .124 3.5.1 Pipelining 124 3.5.2 Caching 128 3.6 CPU PowerConsumption 129 3.7 Design Example: Data Compressor 134 3.7.1 Requirements and Algorithm 134 3.7.2 Specification 136 3.7.3 Program Design 139 3.7.4 Testing 145 Summary 147 Further Reading 147 Questions 148 Lab Exercises 151 CHAPTER 4 Bus-Based Computer Systems i53 Introduction ^53 4.1 The CPUBus 153 4.1.1 Bus Protocols 154 4.1.2 DMA 160 4.1.3 System Bus Configurations 162 4.1.4 AMBABus 165 4.2 Memory Devices 166 4.2.1 Memory Device Organization 166 4.2.2 Random-AccessMemories 167 4.2.3 Read-Only Memories 169 4.3 I/O devices 169 4.3.1 Timers and Counters 169 4.3.2 A/D and D/A Converters 171 4.3.3 Keyboards 171 4.3.4 LEDs 173 4.3.5 Displays 173 4.3.6 Touchscreens 175 4.4 Component Interfacing 175 4.4.1 Memory Interfacing 176 4.4.2 Device Interfacing 176 4.5 Designing with Microprocessors 177 4.5.1 SystemArchitecture 177 4.5.2 Hardware Design 179 4.5.3 The PC as a Platform 180 Contents xi xli Contents 4.6 Development and Debugging 183 4.6.1 Development Environments 183 4.6.2 Debugging Techniques 184 4.6.3 Debugging Challenges 187 4.7 System-Level Performance Analysis 189 4.7.1 System-Level Performance Analysis 189 4.7.2 Parallelism I94 4.8 Design Example: Alarm Clock I96 4.8.1 Requirements I96 4.8.2 Specification 198 4.8.3 System Architecture 200 4.8.4 Component Design andTesting 203 4.8.5 System Integration andTesting 204 Summary 204 Further Reading 205 Questions 205 Lab Exercises 207 CHAPTER 5 Program Design and Analysis 209 Introduction 209 5.1 Components for Embedded Programs 210 5.1.1 State Machines 210 5.1.2 Stream-Oriented Programming and Circular Buffers 212 5.1.3 Queues 213 5.2 Models of Programs 215 5.2.1 Data Flow Graphs 215 5.2.2 Control/Data Flow Graphs 217 5.3 Assembly, Linking, and Loading 220 5.3.1 Assemblers 222 5.3.2 Linking ..; 225 5.4 Basic CompilationTechniques 227 5.4.1 StatementTranslation 229 5.4.2 Procedures 233 5.4.3 Data Structures 234 5.5 Program Optimization 236 5.5.1 Expression Simplification 236 5.5.2 Dead Code Elimination 237 5.5.3 Procedure Inlining 237 5.5.4 Loop Transformations 238 5.5.5 RegisterAllocation 239 5.5.6 Scheduling 244 5.5.7 Instruction Selection 246 5.5.8 Understanding and Using your Compiler 247 5.5.9 Interpreters andJIT Compilers 247 5.6 Program-Level Performance Analysis 248 5.6.1 Elements of Program Performance 250 5.6.2 Measurement-Driven Performance Analysis 254 5.7 Software Performance Optimization 257 5.7.1 Loop Optimizations 257 5.7.2 Performance Optimization Strategies 261 5.8 Program-Level Energy and PowerAnalysis and Optimization 262 5.9 Analysis and Optimization ofProgram Size 266 5.10 Program Validation and Testing 267 5.10.1 Clear-Box Testing 268 5.10.2 Black-Box Testing 276 5.10.3 Evaluating FunctionTests 277 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 andTesting 282 5.11.5 System Integration andTesting 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 TimingRequirements 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 6.3 Priority-Based Scheduling 316 6.3.1 Rate-Monotonic Scheduling 316 6.3.2 Earliest-Deadline-First Scheduling 32;0 6.3.3 KMS vs. EOF 323 6.3.4 ACloser Look ai Our Motlding Assumptions 324 Imcrproccss Communication Mechanisms 325 6.4.1 Sharccl Memory Communication 326 6.4.2 Message Passing 329 6.4.3 Signals 329 Evaluating Openiting S)'stem Performance 330 Power Management and Optimization for Processes 333 Design Example: Telephone Answering Machine 336 6.7.1 Theory of Operation and Requirements 336 6.7.2 Specification 340 6.7.3 System Architecture 342 6.7.4 Component Design andTesting 344 6.7.5 System Integration andTesting 345 Summar)' 345 Further Reading 346 Questions 346 Lab Exercises 352 Multiprocessors 353 Introduction 353 Wliy Multiprocessors? 353 CPUs and Accelerators 356 7.2.1 System Architecture Framework 357 7.2.2 System Integration and Debugging 360 Multiprocessor Performance Analysis 360 7.3-1 Accelerators and Speedup 360 7.3.2 Performance Effects of Scheduling and Allocation ... 364 7.3.3 Buffering and Performance 368 Consumer Electronics Architecture 369 7.4.1 Use Cases and Requirements 369 7.4.2 Platforms and Operating Systems 371 7.4.3 Flash File Systems 372 Design Example: Cell Phones 373 Design Example: Compact DISCs and DVDs 375 Design Example: Audio Players 380 Design Example: Digital Still Cameras 381 Design Example: Video Accelerator 384 7.9.1 Algorithm and Requirements 384 7-9-2 Specification 388 7.9.3 Architecture 388 7.9.4 Component Design 390 7.9.5 System Testing 392 Summary 392 Further Reading 393 Questions 393 Lab Exercises 395 CHAPTER 8 Networks 397 Introduction 397 8.1 Distributed Embedded Architectures 398 8.1.1 Why Distributed? 399 8.1.2 Network Abstractions 399 8.1.3 Hardware and Software Architectures 401 8.1.4 Message Passing Programming 404 Networks for Embedded Systems 405 8.2.1 The CBus 406 8.2.2 Ethernet 411 8.2.3 Fieidbus *^13 Network-Based Design 413 Internet-Enabled Systems 416 8.4.1 Internet 417 8.4.2 Internet Applications 419 8.4.3 Internet Security 421 Vehiclesas Networks 421 8.5.1 Automotive Networks 422 8.5.2 Avionics 425 Sensor Networks "^26 Design Example: Elevator Controller 427 8.7.1 Theory of Operation and Requirements 428 8.7.2 Specification 430 8.7.3 Architecture ^31 8.7.4 Testing 433 Summary ^^34 Further Reading 434 Questions 434 Lab Exercises 436 CHAPTER 9 System Design Techniques 437 Introduction 437 9.1 Design Methodologies 437 9.1.1 Why Design Methodologies? 437 9.1.2 Design Flows 439 9.2 Requirements Analysis 446 Contents xv xvi Contents 9.3 Specifications 447 9.3.1 Control-Oriented Specification Languages 447 9.3.2 Advanced Specifications 451 9.4 System Analysis and Architecture Design 454 9.5 Quality Assurance 457 9.5.1 Quality Assurance Techniques 460 9.5.2 Verifying the Specification 462 9.5.3 Design Reviews 464 Summary 466 Further Reading 466 Questions 466 Lab Exercises 467 APPENDIX A UML Notations 469 Introduction 469 A.l Primitive Elements 469 A.2 DiagramTypes 469 A.2.1 Class Diagram 471 A.2.2 State Diagram 471 A.2.3 Sequence and Collaboration Diagrams 473
Tags from this library: No tags from this library for this title. Log in to add tags.
Star ratings
    Average rating: 0.0 (0 votes)
Holdings
Item type Current library Call number Status Date due Barcode Item holds
General Books General Books Central Library, Sikkim University
004.21 WOL/C (Browse shelf(Opens below)) Available P18479
Total holds: 0

CHAPTER 1 Embedded Computing ^
Introduction
1.1 Complex Systems and Microprocessors
1.1.1 Embedding Computers
1.1.2 Characteristics of Embedded Computing ^
Applications ^
1.1.3 Why Use Microprocessors? ^
1.1.4 The Physics of Software
1.1.5 Challenges in Embedded Computing System ^
Design ^
1.1.6 Performance in Embedded Computmg
1.2 The Embedded SystemDesign Process
1.2.1 Requirements
1.2.2 Specification
1.2.3 Architecture Design
1.2.4 Designing Hardware andSoftware
Components
1.2.5 SystemIntegration
1.3
FormaUsms for SystemDesign
1.3.1 Structural Description
1.3.2 Behavioral Description 27
1.4 Model Train Controller 50
1.4.1 Requirements —
1.4.2 DCC
1.4.3 Conceptual Specification 34
1.4.4 Detailed Specification 37
1.4.5 Lessons Learned
1.5 AGuided Tour of This Book 45
1.5.1 Chapter 2: Instruction Sets 46
1.5.2 Chapter 3: CPUs 46
1.5.3 Chapter 4: Bus-Based Computer Systems 46
ii
vu
xvii
xix
xxi
IX
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 Chapter8: Networks 50
1.5.8 Chapter9:System Design Techniques 50
Summary 51
Further Reading 5j
Questions 52
Lab Exercises 5^

CHAPTER 2 Instruction Sets 55
Introducton 55
2.1 Preliminaries 55
2.1.1 ComputerArchitecture Taxonomy 55
2.1.2 Assembly Language 58
2.2 ARM Processor 59
2.2.1 Processor and Memory Organization 60
2.2.2 Data Operations
2.2.3 Flow of Control 69
2.3 TIC55XDSP 75
2.3.1 Processor and Memory Organization 76
2.3.2 Addressing Modes 78
2.3.3 Data Operations 82
2.3.4 Flowof Control 83
2.3.5 C Coding Guidelines 85
Summary 36
Further Reading 86
Questions 86
Lab Exercises 89

CHAPTER 3 CPUs 91
Introduction 91
3.1 Programming Input and Output 91
31.1 Input and Output Devices 92
3.1.2 Input and Output Primitives 93
3.1.3 Busy-Wait I/O 95
3.1.4 Interrupts 96
3.2 Supervisor Mode, Exceptions, andTraps 110
3.2.1 Supervisor Mode Ill
3.2.2 Exceptions Ill
3.2.3 Traps 112
3.3 Co-Processors 112
3.4 Memory System Mechanisms 113
3.4.1 Caches 113
3.4.2 Memory Management Units and Address
Translation 119
3.5 CPU Performance .124
3.5.1 Pipelining 124
3.5.2 Caching 128
3.6 CPU PowerConsumption 129
3.7 Design Example: Data Compressor 134
3.7.1 Requirements and Algorithm 134
3.7.2 Specification 136
3.7.3 Program Design 139
3.7.4 Testing 145
Summary 147
Further Reading 147
Questions 148
Lab Exercises 151

CHAPTER 4 Bus-Based Computer Systems i53
Introduction ^53
4.1 The CPUBus 153
4.1.1 Bus Protocols 154
4.1.2 DMA 160
4.1.3 System Bus Configurations 162
4.1.4 AMBABus 165
4.2 Memory Devices 166
4.2.1 Memory Device Organization 166
4.2.2 Random-AccessMemories 167
4.2.3 Read-Only Memories 169
4.3 I/O devices 169
4.3.1 Timers and Counters 169
4.3.2 A/D and D/A Converters 171
4.3.3 Keyboards 171
4.3.4 LEDs 173
4.3.5 Displays 173
4.3.6 Touchscreens 175
4.4 Component Interfacing 175
4.4.1 Memory Interfacing 176
4.4.2 Device Interfacing 176
4.5 Designing with Microprocessors 177
4.5.1 SystemArchitecture 177
4.5.2 Hardware Design 179
4.5.3 The PC as a Platform 180
Contents xi
xli Contents
4.6 Development and Debugging 183
4.6.1 Development Environments 183
4.6.2 Debugging Techniques 184
4.6.3 Debugging Challenges 187
4.7 System-Level Performance Analysis 189
4.7.1 System-Level Performance Analysis 189
4.7.2 Parallelism I94
4.8 Design Example: Alarm Clock I96
4.8.1 Requirements I96
4.8.2 Specification 198
4.8.3 System Architecture 200
4.8.4 Component Design andTesting 203
4.8.5 System Integration andTesting 204
Summary 204
Further Reading 205
Questions 205
Lab Exercises 207

CHAPTER 5 Program Design and Analysis 209
Introduction 209
5.1 Components for Embedded Programs 210
5.1.1 State Machines 210
5.1.2 Stream-Oriented Programming and Circular
Buffers 212
5.1.3 Queues 213
5.2 Models of Programs 215
5.2.1 Data Flow Graphs 215
5.2.2 Control/Data Flow Graphs 217
5.3 Assembly, Linking, and Loading 220
5.3.1 Assemblers 222
5.3.2 Linking ..; 225
5.4 Basic CompilationTechniques 227
5.4.1 StatementTranslation 229
5.4.2 Procedures 233
5.4.3 Data
Structures 234
5.5 Program Optimization 236
5.5.1 Expression Simplification 236
5.5.2 Dead Code Elimination 237
5.5.3 Procedure Inlining 237
5.5.4 Loop Transformations 238
5.5.5 RegisterAllocation 239
5.5.6 Scheduling 244
5.5.7 Instruction Selection 246
5.5.8 Understanding and Using your Compiler 247
5.5.9 Interpreters andJIT Compilers 247
5.6 Program-Level Performance Analysis 248
5.6.1 Elements of Program Performance 250
5.6.2 Measurement-Driven Performance Analysis 254
5.7 Software Performance Optimization 257
5.7.1 Loop Optimizations 257
5.7.2 Performance Optimization Strategies 261
5.8 Program-Level Energy and PowerAnalysis
and Optimization 262
5.9 Analysis and Optimization ofProgram Size 266
5.10 Program Validation and Testing 267
5.10.1 Clear-Box Testing 268
5.10.2 Black-Box Testing 276
5.10.3 Evaluating FunctionTests 277
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 andTesting 282
5.11.5 System Integration andTesting 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 TimingRequirements 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
6.3 Priority-Based Scheduling 316
6.3.1 Rate-Monotonic Scheduling 316
6.3.2 Earliest-Deadline-First Scheduling 32;0
6.3.3 KMS vs. EOF 323
6.3.4 ACloser Look ai Our Motlding Assumptions 324
Imcrproccss Communication Mechanisms 325
6.4.1 Sharccl Memory Communication 326
6.4.2 Message Passing 329
6.4.3 Signals 329
Evaluating Openiting S)'stem Performance 330
Power Management and Optimization for Processes 333
Design Example: Telephone Answering Machine 336
6.7.1 Theory of Operation and Requirements 336
6.7.2 Specification 340
6.7.3 System Architecture 342
6.7.4 Component Design andTesting 344
6.7.5 System Integration
andTesting 345
Summar)' 345
Further Reading 346
Questions 346
Lab Exercises 352
Multiprocessors 353
Introduction 353
Wliy Multiprocessors? 353
CPUs and Accelerators 356
7.2.1 System Architecture Framework 357
7.2.2 System Integration and Debugging 360
Multiprocessor Performance
Analysis 360
7.3-1 Accelerators and Speedup 360
7.3.2 Performance Effects of Scheduling and Allocation ... 364
7.3.3 Buffering and Performance 368
Consumer Electronics Architecture 369
7.4.1 Use Cases and Requirements 369
7.4.2 Platforms and Operating Systems 371
7.4.3 Flash File Systems 372
Design Example: Cell Phones 373
Design Example: Compact DISCs and DVDs 375
Design Example: Audio Players 380
Design Example: Digital Still Cameras 381
Design Example: Video Accelerator 384
7.9.1 Algorithm and Requirements 384
7-9-2 Specification 388
7.9.3 Architecture 388
7.9.4 Component Design 390
7.9.5 System Testing 392
Summary 392
Further Reading 393
Questions 393
Lab Exercises 395

CHAPTER 8 Networks 397
Introduction 397
8.1 Distributed Embedded Architectures 398

8.1.1 Why Distributed? 399
8.1.2 Network Abstractions 399
8.1.3 Hardware and Software Architectures 401
8.1.4 Message Passing Programming 404
Networks for Embedded Systems 405
8.2.1 The CBus 406
8.2.2 Ethernet 411
8.2.3 Fieidbus *^13
Network-Based Design 413
Internet-Enabled Systems 416
8.4.1 Internet 417
8.4.2 Internet Applications 419
8.4.3 Internet Security 421
Vehiclesas Networks 421
8.5.1 Automotive Networks 422
8.5.2
Avionics 425
Sensor Networks
"^26
Design Example: Elevator Controller 427
8.7.1 Theory of Operation and Requirements 428
8.7.2 Specification 430
8.7.3 Architecture ^31
8.7.4 Testing 433
Summary ^^34
Further Reading 434
Questions 434
Lab Exercises 436

CHAPTER 9 System Design Techniques 437
Introduction 437
9.1 Design Methodologies 437
9.1.1 Why Design Methodologies? 437
9.1.2 Design Flows 439
9.2 Requirements Analysis 446
Contents xv
xvi Contents
9.3 Specifications 447
9.3.1 Control-Oriented Specification Languages 447
9.3.2 Advanced Specifications 451
9.4 System Analysis and Architecture Design 454
9.5 Quality Assurance 457
9.5.1 Quality Assurance Techniques 460
9.5.2 Verifying the Specification 462
9.5.3 Design Reviews 464
Summary 466
Further Reading 466
Questions 466
Lab Exercises 467
APPENDIX A UML Notations 469
Introduction 469
A.l Primitive Elements 469
A.2 DiagramTypes 469
A.2.1 Class Diagram 471
A.2.2 State Diagram 471
A.2.3 Sequence and Collaboration Diagrams 473

There are no comments on this title.

to post a comment.
SIKKIM UNIVERSITY
University Portal | Contact Librarian | Library Portal

Powered by Koha