Posted by Patrik Strömblad on Wed, Nov 04, 2009 @ 10:52 AM
There are fundamentally three multiprocessing models that are used to describe system designs on multicore devices; the SMP, AMP and the bare metal model. These models have a number of benefits and drawbacks, which will be briefly described below
The SMP Model
The Symmetric Multi Processing model is the model used in the design of several enterprise
OSs such as Linux as well as in the design of its application domain. In such
OSs and their applications data is to a large extent shared, and a number of different locking mechanisms and atomic operations are used frequently for synchronization.
The SMP model is easy to manage from a SW management perspective since it creates a good abstraction where the OS facilitates best-effort cpu load balancing, and it has been used in the server and desktop application domain for a very long time. Enterprise OSs like Linux and Windows provides a best-effort execution platform for these kinds of CPU-intensive applications.
The high degree of hardware resource abstraction is in many cases an advantage, but the layer introduces substantial overhead when the application becomes as I/O intensive as they tend to be in embedded packet forwarding/routing applications. The principles of the shared memory programming model on the application level and inside the Linux kernel is based on using mutable shared objects in memory, and this is an inherent bottleneck to scalability in Multicore systems. This will inevitably lead to poor scaling to many cores.
This, together with the fact that the complex SMP implementation of kernels in many cases has the drawback of not being deterministic, makes the classic SMP OSs less suitable as a RTOS for high-speed packet processing in the long run.
The AMP Model
The Asymmetric Multi Processing model uses an approach where each core is running its own complete, isolated, operating system or application frame-work (an alternative term for a more light-weight RTOS). This leaves the door open to also choose to have different RTOSs on different cores. The advantage of an AMP system is that high-performance is achieved locally and that it scales well to several cores. Using the
AMP model and virtualization technique is also a way to being able to reuse legacy single core designs.
The drawback with the AMP model is that the OS provides no support to the distributed application for load balancing or OS resource management. The configuration, load and startup of such an application is also inherently complex to design.
”Bare Metal” Model
The ”bare metal” model is a single threaded execution model where the available APIs are processor-vendor specific. Since no regular RTOS exist for these threads, a common approach is to run a regular operating system on one or several cores, like Linux, and let the rest of the cores execute a “bare metal” thread and use an application framework that creates an abstraction of the hardware layer.
The advantage here is of course that maximal performance and minimal overhead is achieved when running without an RTOS, but the disadvantage is though that the software becomes hardware-specific, which will force a redesign of any applications whenever the hardware is upgraded. Also, the parts of the system running without an RTOS or application framework will take on the role of a black box, i.e. there will be no observability except for the external interfaces. Any support for tracing, debug or post mortem dump support is not available, and therefore the amount of code “out there” must therefore naturally be kept to a minimum. Over the time though, the need for more functionality in these parts will most likely grow which in turn increases the need for better device abstraction.
Conclusion Given the advantages and disadvantages of these models - it there a way to approach multicore design that blends the advantages of these methods?
Enea Whitepaper

Enea has a solution to this dilema, you can learn more in this white paper.
Posted by Chris Lanfear on Tue, Sep 29, 2009 @ 08:42 AM
Enea OSE Multicore Edition has been selected as Best
of Show at TechInsight's Embedded Systems Conference - Boston. OSE Multicore Edition features
a groundbreaking kernel design that blends the advantages of both traditional Asymmetric
Multiprocessing (AMP) and Symmetric Multiprocessing (SMP). VDC Research Group
served as the jury and awarded the prize, which was based on an exhaustive set
of criteria including innovation, business significance, availability and other
factors.

"Software is the key to releasing the power and
value of multicore processors," said Steve Balacco, Director at VDC
Research Group. "The unique approach taken by Enea with OSE Multicore
Edition delivers the performance of linear scalability with a simple
programming model and architecture. Products like this address the challenge to
development organizations of being able to make full use of multicore
processors within device development."
Enea Whitepaper

For more information about this award winning technology download this white paper.