Cover image for Software development for embedded multi-core systems : a practical guide using embedded Intel� architecture
Title:
Software development for embedded multi-core systems : a practical guide using embedded Intel� architecture
Personal Author:
Publication Information:
Burlington, MA : Elsevier/Newness, 2008
Physical Description:
xiv, 420 p. : ill. ; 24 cm.
ISBN:
9780750685399

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000010184614 QA76.5 D654 2008 Open Access Book Book
Searching...

On Order

Summary

Summary

The multicore revolution has reached the deployment stage in embedded systems ranging from small ultramobile devices to large telecommunication servers. The transition from single to multicore processors, motivated by the need to increase performance while conserving power, has placed great responsibility on the shoulders of software engineers. In this new embedded multicore era, the toughest task is the development of code to support more sophisticated systems. This book provides embedded engineers with solid grounding in the skills required to develop software targeting multicore processors. Within the text, the author undertakes an in-depth exploration of performance analysis, and a close-up look at the tools of the trade. Both general multicore design principles and processor-specific optimization techniques are revealed. Detailed coverage of critical issues for multicore employment within embedded systems is provided, including the Threading Development Cycle, with discussions of analysis, design, development, debugging, and performance tuning of threaded applications. Software development techniques engendering optimal mobility and energy efficiency are highlighted through multiple case studies, which provide practical "how-to" advice on implementing the latest multicore processors. Finally, future trends are discussed, including terascale, speculative multithreading, transactional memory, interconnects, and the software-specific implications of these looming architectural developments.

Table of Contents
Chapter 1 - Introduction
Chapter 2 - Basic System and Processor Architecture
Chapter 3 - Multi-core Processors & Embedded
Chapter 4 -Moving To Multi-core Intel Architecture
Chapter 5 - Scalar Optimization & Usability
Chapter 6 - Parallel Optimization Using Threads
Chapter 7 - Case Study: Data Decomposition
Chapter 8 - Case Study: Functional Decomposition
Chapter 9 - Virtualization & Partitioning
Chapter 10 - Getting Ready For Low Power Intel Architecture
Chapter 11 - Summary, Trends, and Conclusions
Appendix I
Glossary
References


Table of Contents

Prefacep. ix
Acknowledgmentsp. xiii
Chapter 1 Introductionp. 1
1.1 Motivationp. 3
1.2 The Advent of Multi-core Processorsp. 4
1.3 Multiprocessor Systems Are Not Newp. 4
1.4 Applications Will Need to be Multi-threadedp. 6
1.5 Software Burden or Opportunityp. 8
1.6 What is Embedded?p. 10
1.7 What is Unique About Embedded?p. 13
Chapter Summaryp. 14
Chapter 2 Basic System and Processor Architecturep. 17
Key Pointsp. 17
2.1 Performancep. 19
2.2 Brief History of Embedded Intel Architecture Processorsp. 20
2.3 Embedded Trends and Near Term Processor Impactp. 37
2.4 Tutorial on x86 Assembly Languagep. 39
Chapter Summaryp. 53
Related Readingp. 54
Chapter 3 Multi-core Processors and Embeddedp. 55
Key Pointsp. 55
3.1 Motivation for Multi-core Processorsp. 56
3.2 Multi-core Processor Architecturep. 57
3.3 Benefits of Multi-core Processors in Embeddedp. 62
3.4 Embedded Market Segments and Multi-core Processorsp. 63
3.5 Evaluating Performance of Multi-core Processorsp. 69
Chapter Summaryp. 87
Related Readingp. 88
Chapter 4 Moving to Multi-core Intel Architecturep. 89
Key Pointsp. 89
4.1 Migrating to Intel Architecturep. 91
4.2 Enabling an SMP OSp. 111
4.3 Tools for Multi-Core Processor Developmentp. 117
Chapter Summaryp. 136
Related Readingp. 137
Chapter 5 Scalar Optimization and Usabilityp. 139
Key Pointsp. 139
5.1 Compiler Optimizationsp. 143
5.2 Optimization Processp. 153
5.3 Usabilityp. 161
Chapter Summaryp. 170
Related Readingp. 170
Chapter 6 Parallel Optimization Using Threadsp. 173
Key Pointsp. 173
6.1 Parallelism Primerp. 175
6.2 Threading Development Cyclep. 184
Chapter Summaryp. 206
Related Readingp. 207
Chapter 7 Case Study: Data Decompositionp. 209
Key Pointsp. 209
7.1 A Medical Imaging Data Examinerp. 209
Chapter Summaryp. 245
Chapter 8 Case Study: Functional Decompositionp. 247
Key Pointsp. 247
8.1 Snortp. 248
8.2 Analysisp. 251
8.3 Design and Implementp. 258
8.4 Snort Debugp. 280
8.5 Tunep. 282
Chapter Summaryp. 286
Chapter 9 Virtualization and Partitioningp. 287
Key Pointsp. 287
9.1 Overviewp. 287
9.2 Virtualization and Partitioningp. 290
9.3 Techniques and Design Considerationsp. 304
9.4 Telecom Use Case of Virtualizationp. 322
Chapter Summaryp. 342
Related Readingp. 344
Chapter 10 Getting Ready for Low Power Intel Architecturep. 347
Key Pointsp. 347
10.1 Architecturep. 349
10.2 Debugging Embedded Systemsp. 362
Chapter Summaryp. 382
Chapter 11 Summary, Trends, and Conclusionsp. 385
11.1 Trendsp. 387
11.2 Conclusionsp. 392
Appendix Ap. 393
Glossaryp. 395
Indexp. 409