Muutke küpsiste eelistusi

E-raamat: Computers as Components: Principles of Embedded Computing System Design

(Department of Computer Science and Engineering, University of Nebraska, Lincoln, NE, USA)
Teised raamatud teemal:
  • Formaat - EPUB+DRM
  • Hind: 70,97 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
Teised raamatud teemal:

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

Computers as Components: Principles of Embedded Computing System Design, Fourth Edition, continues to focus on foundational content in embedded systems technology and design while introducing new content on security and safety, the design of Internet-of-Things devices and systems, and wireless communications standards like Bluetooth® and ZigBee®.

  • Uses real processors to demonstrate both technology and techniques
  • Shows readers how to apply principles to actual design practice
  • Stresses necessary fundamentals that can be applied to evolving technologies and helps readers gain facility to design large, complex embedded systems
  • Covers the design of Internet-of-Things (IoT) devices and systems, including applications, devices, and communication systems and databases
  • Introduces concepts of safety and security in embedded systems
  • Includes new chapter on Automotive and Aerospace Systems
  • Describes wireless communication standards such as Bluetooth® and ZigBee®

Muu info

As the leading embedded computing systems textbook, this new edition is updated to include new content on security and safety, the design of Internet-of-Things devices and systems, and wireless communications standards like Bluetooth(R) and ZigBee(R)
Foreword to the First Edition xvii
Preface to the First Edition xix
Preface to the Second Edition xxiii
Preface to the Third Edition xxv
Preface to the Fourth Edition xxvii
Chapter 1 Embedded Computing 1(54)
1.1 Introduction
1(1)
1.2 Complex systems and microprocessors
1(11)
1.2.1 Embedding computers
2(2)
1.2.2 Characteristics of embedded computing applications
4(1)
1.2.3 Why use microprocessors?
5(2)
1.2.4 Cyber-physical systems
7(1)
1.2.5 Safety and security
8(2)
1.2.6 Challenges in embedded computing system design
10(1)
1.2.7 Performance of embedded computing systems
11(1)
1.3 The embedded system design process
12(19)
1.3.1 Requirements
14(4)
1.3.2 Specification
18(1)
1.3.3 Architecture design
19(2)
1.3.4 Designing hardware and software components
21(1)
1.3.5 System integration
22(1)
1.3.6 Formalisms for system design
22(1)
1.3.7 Structural description
23(5)
1.3.8 Behavioral description
28(3)
1.4 Design example: model train controller
31(15)
1.4.1 Requirements
32(1)
1.4.2 DCC
33(2)
1.4.3 Conceptual specification
35(3)
1.4.4 Detailed specification
38(7)
1.4.5 Lessons learned
45(1)
1.5 A guided tour of this book
46(5)
1.5.1
Chapter 2: Instruction sets
46(1)
1.5.2
Chapter 3: CPUs
47(1)
1.5.3
Chapter 4: Computing platforms
47(1)
1.5.4
Chapter 5: Program design and analysis
48(1)
1.5.5
Chapter 6: Processes and operating systems
49(1)
1.5.6
Chapter 7: System design techniques
50(1)
1.5.7
Chapter 8: Internet-of-Things
50(1)
1.5.8
Chapter 9: Automotive and aerospace systems
50(1)
1.5.9
Chapter 10: Embedded multiprocessors
50(1)
1.6 Summary
51(1)
What we learned
51(1)
Further reading
51(1)
Questions
52(1)
Lab exercises
53(2)
Chapter 2 Instruction Sets 55(44)
2.1 Introduction
55(1)
2.2 Preliminaries
55(7)
2.2.1 Computer architecture taxonomy
56(2)
2.2.2 Assembly languages
58(2)
2.2.3 VLIW processors
60(2)
2.3 ARM processor
62(15)
2.3.1 Processor and memory organization
62(1)
2.3.2 Data operations
63(7)
2.3.3 Flow of control
70(6)
2.3.4 Advanced ARM features
76(1)
2.4 PICmicro midrange family
77(5)
2.4.1 Processor and memory organization
77(1)
2.4.2 Data operations
78(3)
2.4.3 Flow of control
81(1)
2.5 TI C55x DSP
82(10)
2.5.1 Processor and memory organization
82(2)
2.5.2 Addressing modes
84(4)
2.5.3 Data operations
88(1)
2.5.4 Flow of control
89(2)
2.5.5 C coding guidelines
91(1)
2.6 TI C64x
92(3)
2.7 Summary
95(1)
What we learned
96(1)
Further reading
96(1)
Questions
96(2)
Lab exercises
98(1)
Chapter 3 CPUs 99(62)
3.1 Introduction
99(1)
3.2 Programming input and output
99(18)
3.2.1 Input and output devices
100(2)
3.2.2 Input and output primitives
102(1)
3.2.3 Busy-wait I/O
103(1)
3.2.4 Interrupts
104(13)
3.3 Supervisor mode, exceptions, and traps
117(2)
3.3.1 Supervisor mode
117(1)
3.3.2 Exceptions
118(1)
3.3.3 Traps
118(1)
3.4 Coprocessors
119(1)
3.5 Memory system mechanisms
119(12)
3.5.1 Caches
120(6)
3.5.2 Memory management units and address translation
126(5)
3.6 CPU performance
131(6)
3.6.1 Pipelining
131(5)
3.6.2 Cache performance
136(1)
3.7 CPU power consumption
137(4)
3.7.1 CMOS power consumption
137(1)
3.7.2 Power management modes
138(3)
3.7.3 Program-level power management
141(1)
3.8 Safety and security
141(2)
3.9 Design example: data compressor
143(11)
3.9.1 Requirements and algorithm
143(2)
3.9.2 Specification
145(2)
3.9.3 Program design
147(6)
3.9.4 Testing
153(1)
3.10 Summary
154(1)
What we learned
155(1)
Further reading
155(1)
Questions
155(4)
Lab exercises
159(2)
Chapter 4 Computing Platforms 161(60)
4.1 Introduction
161(1)
4.2 Basic computing platforms
161(4)
4.2.1 Platform hardware components
162(2)
4.2.2 Platform software components
164(1)
4.3 The CPU bus
165(12)
4.3.1 Bus organization and protocol
165(6)
4.3.2 DMA
171(4)
4.3.3 System bus configurations
175(2)
4.4 Memory devices and systems
177(4)
4.4.1 Memory system organization
179(2)
4.5 Designing with computing platforms
181(10)
4.5.1 Example platforms
181(2)
4.5.2 Choosing a platform
183(1)
4.5.3 Intellectual property
184(1)
4.5.4 Development environments
185(1)
4.5.5 Watchdog timers
186(1)
4.5.6 Debugging techniques
187(2)
4.5.7 Debugging challenges
189(2)
4.6 Consumer electronics architecture
191(3)
4.6.1 Consumer electronics use cases and requirements
191(2)
4.6.2 File systems
193(1)
4.7 Platform-level performance analysis
194(6)
4.8 Platform-level power management
200(1)
4.9 Design example: alarm clock
201(7)
4.9.1 Requirements
201(1)
4.9.2 Specification
202(3)
4.9.3 System architecture
205(3)
4.9.4 Component design and testing
208(1)
4.9.5 System integration and testing
208(1)
4.10 Design example: audio player
208(7)
4.10.1 Theory of operation and requirements
208(3)
4.10.2 Specification
211(1)
4.10.3 System architecture
211(3)
4.10.4 Component design and testing
214(1)
4.10.5 System integration and debugging
215(1)
4.11 Summary
215(1)
What we learned
215(1)
Further reading
215(1)
Questions
215(4)
Lab exercises
219(2)
Chapter 5 Program Design and Analysis 221(100)
5.1 Introduction
221(1)
5.2 Components for embedded programs
222(9)
5.2.1 State machines
222(2)
5.2.2 Circular buffers and stream-oriented programming
224(5)
5.2.3 Queues and producer/consumer systems
229(2)
5.3 Models of programs
231(5)
5.3.1 Data flow graphs
232(2)
5.3.2 Control/data flow graphs
234(2)
5.4 Assembly, linking, and loading
236(8)
5.4.1 Assemblers
238(4)
5.4.2 Linking
242(1)
5.4.3 Object code design
243(1)
5.5 Compilation techniques
244(18)
5.5.1 The compilation process
244(2)
5.5.2 Basic compilation methods
246(8)
5.5.3 Compiler optimizations
254(8)
5.6 Program-level performance analysis
262(9)
5.6.1 Analysis of program performance
264(4)
5.6.2 Measurement-driven performance analysis
268(3)
5.7 Software performance optimization
271(5)
5.7.1 Basic loop optimizations
271(2)
5.7.2 Cache-oriented loop optimizations
273(2)
5.7.3 Performance optimization strategies
275(1)
5.8 Program-level energy and power analysis and optimization
276(4)
5.9 Analysis and optimization of program size
280(1)
5.10 Program validation and testing
281(10)
5.10.1 Clear-box testing
282(7)
5.10.2 Black-box testing
289(1)
5.10.3 Evaluating functional tests
290(1)
5.11 Safety and security
291(1)
5.12 Design example: software modem
292(5)
5.12.1 Theory of operation and requirements
292(3)
5.12.2 Specification
295(1)
5.12.3 System architecture
295(1)
5.12.4 Component design and testing
296(1)
5.12.5 System integration and testing
297(1)
5.13 Design example: digital still camera
297(11)
5.13.1 Theory of operation and requirements
297(4)
5.13.2 Specification
301(4)
5.13.3 System architecture
305(3)
5.13.4 Component design and testing
308(1)
5.13.5 System integration and testing
308(1)
5.14 Summary
308(1)
What we learned
308(1)
Further reading
309(1)
Questions
309(9)
Lab exercises
318(3)
Chapter 6 Processes and Operating Systems 321(70)
6.1 Introduction
321(1)
6.2 Multiple tasks and multiple processes
322(2)
6.3 Multirate systems
324(10)
6.3.1 Timing requirements on processes
326(4)
6.3.2 CPU usage metrics
330(1)
6.3.3 Process state and scheduling
331(1)
6.3.4 Running periodic processes
332(2)
6.4 Preemptive real-time operating systems
334(5)
6.4.1 Two basic concepts
335(1)
6.4.2 Processes and context
336(3)
6.4.3 Processes and object-oriented design
339(1)
6.5 Priority-based scheduling
339(16)
6.5.1 Rate-monotonic scheduling
341(4)
6.5.2 Earliest-deadline-first scheduling
345(4)
6.5.3 RMS versus EDF
349(1)
6.5.4 Shared resources
349(2)
6.5.5 Priority inversion
351(1)
6.5.6 Scheduling for low power
352(1)
6.5.7 A closer look at our modeling assumptions
352(3)
6.6 Interprocess communication mechanisms
355(4)
6.6.1 Shared memory communication
355(1)
6.6.2 Message passing
356(1)
6.6.3 Signals
357(1)
6.6.4 Mailboxes
358(1)
6.7 Evaluating operating system performance
359(4)
6.8 Example real-time operating systems
363(6)
6.9 Design example: telephone answering machine
369(9)
6.9.1 Theory of operation and requirements
369(3)
6.9.2 Specification
372(2)
6.9.3 System architecture
374(3)
6.9.4 Component design and testing
377(1)
6.9.5 System integration and testing
377(1)
6.10 Design example: engine control unit
378(5)
6.10.1 Theory of operation and requirements
378(1)
6.10.2 Specification
379(1)
6.10.3 System architecture
380(2)
6.10.4 Component design and testing
382(1)
6.10.5 System integration and testing
382(1)
6.11 Summary
383(1)
What we learned
383(1)
Further reading
383(1)
Questions
383(6)
Lab exercises
389(2)
Chapter 7 System Design Techniques 391(32)
7.1 Introduction
391(1)
7.2 Design methodologies
391(9)
7.2.1 Why design methodologies?
391(2)
7.2.2 Design flows
393(7)
7.3 Requirements analysis
400(1)
7.4 Specifications
401(6)
7.4.1 Control-oriented specification languages
401(3)
7.4.2 Advanced specifications
404(3)
7.5 System analysis and architecture design
407(3)
7.5.1 CRC cards
407(3)
7.6 Dependability, safety, and security
410(11)
7.6.1 Examples
411(2)
7.6.2 Quality assurance techniques
413(2)
7.6.3 Verifying the specification
415(2)
7.6.4 Design reviews
417(1)
7.6.5 Safety-oriented methodologies
418(3)
7.7 Summary
421(1)
What we learned
421(1)
Further reading
421(1)
Questions
421(1)
Lab exercises
422(1)
Chapter 8 Internet-of-Things Systems 423(26)
8.1 Introduction
423(1)
8.2 IoT system applications
423(2)
8.3 IoT system architectures
425(2)
8.4 Networks for IoT
427(13)
8.4.1 The OSI model
427(1)
8.4.2 Internet Protocol
428(2)
8.4.3 IoT networking concepts
430(4)
8.4.4 Bluetooth and Bluetooth Low Energy
434(3)
8.4.5 802.15.4 and ZigBee
437(1)
8.4.6 Wi-Fi
438(2)
8.5 Databases and timewheels
440(4)
8.5.1 Databases
440(3)
8.5.2 Timewheels
443(1)
8.6 Example: smart home
444(2)
8.7 Summary
446(1)
What we learned
447(1)
Further reading
447(1)
Questions
447(1)
Lab exercises
448(1)
Chapter 9 Automotive and Aerospace Systems 449(12)
9.1 Introduction
449(1)
9.2 Networked control systems in cars and airplanes
449(4)
9.3 Vehicular networks
453(4)
9.3.1 CAN bus
453(2)
9.3.2 Other automotive networks
455(2)
9.4 Safety and security
457(2)
9.5 Summary
459(1)
What we learned
459(1)
Further reading
459(1)
Questions
459(1)
Lab exercises
460(1)
Chapter 10 Embedded Multiprocessors 461(36)
10.1 Introduction
461(1)
10.2 Why multiprocessors?
461(3)
10.3 Categories of multiprocessors
464(2)
10.4 MPSOCs and shared memory multiprocessors
466(15)
10.4.1 Heterogeneous shared memory multiprocessors
466(1)
10.4.2 Accelerators
467(2)
10.4.3 Accelerator performance analysis
469(5)
10.4.4 Scheduling and allocation
474(2)
10.4.5 System integration
476(4)
10.4.6 Debugging
480(1)
10.5 Design example: video accelerator
481(8)
10.5.1 Video compression
481(2)
10.5.2 Algorithm and requirements
483(2)
10.5.3 Specification
485(1)
10.5.4 Architecture
486(2)
10.5.5 Component design
488(1)
10.5.6 System testing
489(1)
10.6 Application example: optical disk
489(5)
10.7 Summary
494(1)
What we learned
494(1)
Further reading
494(1)
Questions
495(1)
Lab exercises
496(1)
Glossary 497(20)
References 517(10)
Index 527
Marilyn Wolf is Elmer E. Koch Professor of Engineering and Chair of the Department of Computer Science and Engineering at the University of Nebraska Lincoln. She received her BS, MS, and PhD in electrical engineering from Stanford University. She was with AT&T Bell Laboratories from 1984 to 1989, was on the faculty of Princeton University from 1989 to 2007 and was Farmer Distinguished Chair in Embedded Computing Systems and GRA Eminent Scholar at the Georgia Institute of Technology from 2007 to 2019. Her research interests include cyber-physical systems, Internet-of-Things, embedded computing, embedded computer vision, and VLSI systems. She has received the IEEE Computer Society Goode Memorial Award, the ASEE Terman Award, and IEEE Circuits and Systems Society Education Award. She is a Fellow of the IEEE and ACM and a Golden Core member of IEEE Computer Society. Professor Wolf is the author of several successful Morgan Kaufmann textbooks: Computers as Components, Fifth Edition (2022); High-Performance Embedded Computing, Second Edition (2014); The Physics of Computing, First Edition (2016); and Embedded System Interfacing, First Edition (2019).