Evaluating platform software architectures for nextgen embedded multicore designs
Option 1: Linux SMP. Linux is a popular choice for the control plane processing in networking equipment. However, Linux is not a real-time operating system and is hence not able to make hard guarantees about worst case response times. Furthermore, its millions of lines of code are simply overkill and overweight for data processing applications that beg for minimalist run-times coupled with finely tuned use of all those fancy hardware accelerators.
Nevertheless, developers can attempt to shoehorn Linux into handling both control and data plane processing by using SMP core binding to tie down data processing threads to cores. The Linux SMP architecture is shown in Figure 3 below.

Figure 3. Linux SMP
Option 2: RTOS SMP. Because of their real-time, low latency capabilities, real-time operating systems are a popular choice for networking equipment and many other multicore-powered embedded systems. While a non-real time OS can’t perform real-time tasks, a real-time OS can obviously perform non-real time tasks. Therefore, an SMP RTOS such as Green Hills Software’s INTEGRITY or Intel’s VxWorks (Figure 4 below) is a natural replacement for Linux from Option 1:

Figure 4 - RTOS SMP
Option 3: Lightweight Executive. SMP starts to become a performance challenge as we move into the many-core arena. OS services require protective kernel locking which can increase latency when many cores are trying to concurrently access those services.
While some architects will look at SMP as a simple and elegant solution to the problem of managing lots of cores, other architects will want to divide the cores amongst distinct software teams, each focusing on their respective areas of the project.
Allowing each team to run their own independent operating systems tailored for their particular workloads can actually improve project development efficiency. Finally, as mentioned earlier, a lightweight run-time environment may be preferable for data processing tasks over a full-blown operating system.
All of the aforementioned processor vendors provide a lightweight executive (LWE) for this purpose. In some cases, the LWE is nothing more than some initialization code, device drivers, and a superloop without threads. The processor vendors also provide highly optimized libraries, already tuned for the LWEs, to manage the various accelerators.
When LWEs are employed, the control plane can be handled either by Linux or an RTOS, resulting in an Asymmetric Multiprocessing (AMP) Environment. If the control plane OS is running Symmetric Multiprocessing (SMP) over a subset of the cores, you actually have a combination of SMP and AMP (Figure 5 below).

Figure 5. Partitioning of control OS and LWE
In place of a chip vendor-supplied LWE, a simple real-time microkernel, such as Green Hills Software’s µ-velOSity or Express Logic’s ThreadX, provides similar functionality from an independent software vendor.
Option 4: Linux and RTOS. It used to be that embedded designers needed to choose between Linux and an RTOS. However, multicore processors are now commonly hosting both. Similar to Option 3, Linux runs in SMP mode on the control plane while the RTOS manages the real-time workloads, either in an SMP or AMP fashion (Figure 6 below):
Figure 6. Linux and RTOS hybrid


Loading comments... Write a comment