Design of Distributed and Multi-Core Systems & Software
Duration: 2 days
Number of participants: recommended optimum 15, maximum 25
The primary goal of this course is to give the participant the skills necessary to design software for real-time and embedded multiprocessing systems that will operate in distributed and/or multi-core processing configurations. This is a very practical, results-oriented course that will provide knowledge and skills that can be applied immediately. This course examines the high-level design of embedded systems and software for distributed and multi-core processing environments.
It begins with a discussion of the basic concepts of distributed systems and multi-core systems on a chip (SoC’s). This is followed by an in-depth study of distributed control systems design, including examples from automotive applications and home automation. Guidelines are given for the design of large and complex distributed systems, with examples from the worlds of transportation and high-performance communication systems. The course then shifts focus to the use of multi-core SoC’s in embedded systems designs. This includes detailed study of both symmetric and asymmetric multiprocessing – from the perspectives of hardware, software and operating systems support. It delves deeply into operating systems for multi-core SoC’s, multi-core software architectural design, and special memory issues in multi-core software.
This course is far from a general course about system or software design theory, but rather it is highly focused on the practical design of multi-processor embedded systems and software that will operate in distributed and multi-core processing configurations.
This course is intended for practicing real-time and embedded systems software system architects, project managers and technical consultants who will have responsibility for designing, structuring and implementing the software for real-time and embedded multiprocessing systems that will operate in distributed and/or multi-core processing configurations.
Course participants are expected to have background in embedded and real-time software design for single-CPU systems. This knowledge can be gained by attending a prerequisite embedded software design course such as “Architectural Design of Real-Time Software”.
The course is based on lectures, discussions, design examples, exercises.