Manage multiple processes and processors in a deterministic multicore design

Chris Main, TenAsys Corporation

February 22, 2012

Chris Main, TenAsys Corporation

Establishing requirements
An idealized control system may be described by a series of independent functional blocks (FBs), each of which perform a specific task at a specific regular interval (Figure 1). FBs are made up of application-specific hardware and software components and a processor or controller to implement the function. Each FB may have a dedicated connection to external hardware such as motors, cameras, or other I/O points. Each FB may also be connected to one or more of the other FBs to implement a whole control system, but otherwise, each FB operates independently of other FBs.

An example of such a system (see Figure 1) could be where FB2 is a PLC (programmable logic controller) and FB3 an intelligent self-contained optical analyzer that captures the image of an object it's inspecting, analyzes it, and informs the PLC of the result with a GO/NO-GO output signal. FB1 could be a motor drive that feeds the next object that needs to be inspected.

With the availability of increased computing performance, it's possible to move some or all of the functions onto a single hardware platform. The advantage of this is a more efficient interconnect between the functions, which leads to better overall system performance and reliability and possibly reduced cost. But consolidating the functions means the development team needs to add system management, because the system is now apportioning common resources such as memory and access to I/O between the FBs.

Single-processor solutions
A typical way to combine functions on a single platform such as a PC is to implement the function blocks as separate processes running under an RTOS. RTOSes have built-in functions--such as preemptive task scheduling--to ensure that each FB's task is executed at a prescribed time and that a task from one FB can preempt the processing of another FB's task if it has a higher priority. A drawback of this implementation is that the platform resources are not separated. Therefore, events such as unusual I/O activity needing to be handled by one of the FBs could affect the other FBs' ability to perform their tasks.

The result is that setting up a system in this environment takes some tuning to ensure that tasks of the various FBs have the appropriate level of priority and resources. This typically makes the system somewhat custom-fit to the platform and thus making it difficult to move from one platform to another. It's also difficult to entertain any subsequent changes to the system, such as the addition of another FB or a performance improvement in one of the FBs, without extensive planning. Finally, the finite processing capabilities of a single processor generally limit the increase in system performance that can be obtained.

On the plus side, single processor implementations are relatively simple. They're typically run by one RTOS that has built-in IPC (inter-process communication) facilities, making it easy for the FBs to communicate with each other with minimal overhead (Figure 2).

< Previous
Page 2 of 5
Next >

Loading comments...

Most Commented

  • Currently no items

Parts Search Datasheets.com

KNOWLEDGE CENTER