Real World Multicore Embedded Systems

Real World Multicore Embedded Systems

1st Edition - February 27, 2013

Write a review

  • Editor: Bryon Moyer
  • eBook ISBN: 9780123914613
  • Hardcover ISBN: 9780124160187

Purchase options

Purchase options
DRM-free (Mobi, PDF, EPub)
Available
Sales tax will be calculated at check-out

Institutional Subscription

Free Global Shipping
No minimum order

Description

This Expert Guide gives you the techniques and technologies in embedded multicore to optimally design and implement your embedded system. Written by experts with a solutions focus, this encyclopedic reference gives you an indispensable aid to tackling the day-to-day problems when building and managing multicore embedded systems. Following an embedded system design path from start to finish, our team of experts takes you from architecture, through hardware implementation to software programming and debug. With this book you will learn: • What motivates multicore • The architectural options and tradeoffs; when to use what • How to deal with the unique hardware challenges that multicore presents • How to manage the software infrastructure in a multicore environment • How to write effective multicore programs • How to port legacy code into a multicore system and partition legacy software • How to optimize both the system and software • The particular challenges of debugging multicore hardware and software

Key Features

  • Examples demonstrating timeless implementation details
  • Proven and practical techniques reflecting the authors’ expertise built from years of experience and key advice on tackling critical issues

Readership

Software architects and programmers, embedded system architects, hardware designers and engineers

Table of Contents

  • About the Editor

    About the Authors

    Chapter 1. Introduction and Roadmap

    Multicore is here

    Scope

    Who should read this book?

    Organization and roadmap

    A roadmap of this book

    Chapter 2. The Promise and Challenges of Concurrency

    Concurrency fundamentals

    Two kinds of concurrency

    Dependencies

    Loops and dependencies

    Shared resources

    Summary

    Chapter 3. Multicore Architectures

    The need for multicore architectures

    Multicore architecture drivers

    Traditional sequential software paradigms break

    Scope of multicore hardware architectures

    Basic multicore hardware architecture overview

    Specific multicore architecture characteristics

    Processing architectures

    ALU processing architectures

    Lightweight processing architectures

    Mediumweight processing architectures

    Heavyweight processing architectures

    Communication architectures

    Memory architectures

    Application specificity

    Application-specific platform topologies

    Integration of multicore systems, MPSoCs and sub-systems

    Programming challenges

    Application characteristics

    MPSoC analysis, debug and verification

    Shortcomings and solutions

    MPSoC parallel programming

    Parallel software and MPSoCs

    Summary

    References

    Chapter 4. Memory Models for Embedded Multicore Architecture

    Introduction

    Memory types

    Memory architecture

    Memory structure of multicore architecture

    Cache coherency

    Transactional memory

    Summary

    References

    Chapter 5. Design Considerations for Multicore SoC Interconnections

    Introduction

    Communication activity in multicore SoCs

    Functional requirements and topologies of SoC traffic

    Performance considerations

    Interconnection networks: representation and terminology

    Bus as an SoC interconnection

    Fabric-oriented interconnects for larger SoCs

    Building blocks of scalable interconnections

    Evaluating and comparing interconnection topologies for future SoCs

    A survey of interconnection networks suitable for future SoCs

    Some practical considerations in designing interconnections

    Summary

    References

    Further reading

    Chapter 6. Operating Systems in Multicore Platforms

    Introduction

    Symmetric multiprocessing systems and scheduling

    Assymetric multiprocessor systems

    Virtualization

    Controlling OS behavior

    Debugging a multicore system

    Summary

    Reference

    Chapter 7. System Virtualization in Multicore Systems

    What is virtualization?

    A brief retrospective

    Applications of system virtualization

    Hypervisor architectures

    Leveraging hardware assists for virtualization

    Hypervisor robustness

    I/O Virtualization

    Case study: power architecture virtualization and the freescale P4080

    Example use cases for system virtualization

    Conclusion

    References

    Chapter 8. Communication and Synchronization Libraries

    Introduction

    Library overview and basics

    Explicit threading libraries

    OpenMP

    Threading Building Blocks

    Boost Threads

    MCAPI

    Conclusion

    References

    Chapter 9. Programming Languages

    Programming languages for multicore embedded systems

    C

    Assembly language

    C++

    Java

    Python

    Ada

    Summary

    References

    Chapter 10. Tools

    Introduction

    Real-Time operating systems (RTOS)

    Communication tools

    Parallelizing serial software tools

    Software development and debug tools

    Benchmarking tools

    Conclusion

    Acknowledgments

    Chapter 11. Partitioning Programs for Multicore Systems

    Introduction

    What level of parallelism?

    The basic cost of partitioning

    A high-level partitioning algorithm

    The central role of dependencies

    Critical sections

    Synchronizing data

    Implementing a partitioning strategy

    Using tools to simplify partitioning

    Summary

    References

    Chapter 12. Software Synchronization

    Introduction

    Why is synchronization required?

    Problems with not synchronizing (or synchronizing badly)

    Testing for proper synchronization

    How is synchronization achieved?

    Specific conditions requiring synchronization

    Language support for implementation

    Patterns

    Side-effects of synchronization

    Hardware and OS effects on synchronization

    Problems when trying to implement synchronization

    References

    Chapter 13. Hardware Accelerators

    Introduction

    Architectural considerations

    The interface: registers, drivers, APIs, and ISRs

    Initialization

    Operating system considerations

    Coherency

    Making the architectural decisions

    Video example

    Summary

    Chapter 14. Multicore Synchronization Hardware

    Chapter overview

    Instruction set support for synchronization

    Hardware support for synchronization

    Hardware support for lock-free programming

    Memory subsystem considerations

    Conclusions

    References

    Chapter 15. Bare-Metal Systems

    Introduction

    Architectural arrangements

    Software architecture

    Building the executable image(s)

    Example: IPv4 forwarding

    Conclusion

    Reference

    Chapter 16. Multicore Debug

    Introduction – why debug instrumentation

    Background – silicon debug and capabilities

    Trace methods for multicore debug analysis

    Debug flows and subsystems

    Commercial approaches

    The future of multicore debug

    References

    Further reading

    Index

Product details

  • No. of pages: 648
  • Language: English
  • Copyright: © Newnes 2013
  • Published: February 27, 2013
  • Imprint: Newnes
  • eBook ISBN: 9780123914613
  • Hardcover ISBN: 9780124160187

About the Editor

Bryon Moyer

Bryon Moyer is a technology writer and an editor/writer for EE Journal. He has over 25 years’ experience as an engineer and marketer in Silicon Valley, having worked for MMI, AMD, Cypress, Altera, Actel, Teja Technologies, and Vector Fabrics. He has focused on PLDs/FPGAs, EDA, embedded systems, multicore processing, networking protocols, and software analysis. He has a BSEE from UC Berkeley and an MSEE from Santa Clara University.

Affiliations and Expertise

Principal, Moyer Consulting, Santa Cruz, CA, USA.

Ratings and Reviews

Write a review

There are currently no reviews for "Real World Multicore Embedded Systems"