SAN JOSE, Calif. Enea Embedded Technology introduced LINX, an open hardware, operating system and interconnect agnostic version of its proprietary dynamic message passing-based Inter Process Communications Protocol, which it is making available on an open source licensing basis.
The announcement comes just a week before the new Multicore Association meets here at its first Expo to hammer out a number of open, platform independent specifications for programming, resource management and debugging in a distributed multiprocessor environment.
On the agenda for discussion is a proposal by Wind River to standardize on the already existing Transparent IPC (TIPC) protocol, first developed by Ericsson for distributed applications in the telecommunications and networking environment. TIPC is currently available, also as open source, for use on Linux based systems and has been adapted by Wind River for use with its VxWorks operating system.
Standardization efforts are focused on extending its capabilities to support distributed computing not only on network systems but down to board and system-on-chip multiprocessing designs.
However, Enea claims that its new LINX IPC, derived as it is from a protocol designed to operate in the real time, deterministic OS environment is a better fit for the needs of multicore and multiprocessing systems.
Michael Christofferson, director of product development at Enea, claims LINX is 20% faster than TIPC, scales from DSPs to 64-bit CPUs, and supports multiple operating systems. No actual benchmark and performance numbers for use in typical applications are yet available, however.
He said the LINX IPC will be made available initially on Linux as well as on its OSE and OSEsk RTOSes and later on other platforms. As an open source IPC, said Christofferson, it is hoped that vendors will quickly adapt it to a variety of hardware and software platforms.
In the Linux implementation, he said, there will be two parts of the distribution that will be licensed differently. The API and some of the session layer implementation are linked with user applications, so therefore will be ascribed a modified BSD license – user application code therefore does not fall under the restrictions of the Gnu General Public License (GPL).
However, the transport protocols part of LINX is linked with the Linux kernel (as a kernel module) and therefore is licensed under the GPL. As a result, some of the implementation of the LINX part in the Linux kernel uses GPL code.
The OSE implementations of LINX do not use GPL code, and therefore do not fall under the GPL. A BSD licensed portable version of LINX is planned.
While it borrows on the experience his company has developed with its proprietary LINKHandler protocol, Christofferson said LINX has been adapted and enhanced for use in the design of complex, heterogeneous distributed systems utilizing multiple operating systems and processors. It is designed to operate on any OS platform (i.e., OSE, Linux, other operating systems) and media/interconnect (i.e., Gigabit Ethernet, RapidIO, PCI, shared memory) independent.
Similar to TIPC, he said, it is also transparent, enabling application processes running on multiple CPUs and operating systems to communicate with each other as if they were running on the same CPU under the same operating system. “This transparency makes it easy to distribute LINX-based applications across multiple processors and operating systems,” said Christofferson. “It also makes systems easy to scale and reconfigure with little if any change to the application code.”
While the company has not reveal actual benchmark numbers and the configurations upon which the tests were made, Enea claims that LINX employs a lightweight connection protocol that greatly enhances performance relative to competitive IPC protocols. LINX, said Christofferson, is 90% faster than TCP for intranode IPC and 50% faster than TCP for internode IPC. Relative to TIPC, according to the company’s estimates, LINX provides, on average, 25% lower latency and 20% higher throughput for intra-node IPC, and 10% lower latency and 25% higher throughput for internode IPC.
He said LINX should not be viewed as a competitor to any other proprietary or alternative open IPC standard, including TIPC, but as complementary. Because it employs a reliable, deterministic, high speed transport for both the control and data plane over both reliable and unreliable media, as well as supports encapsulation of other bearer protocols (TCP, UDP, SCTP, and TIPC) for data transport, Christofferson said, LINX should interoperate easily with most other IPC mechanisms.
To enhance reliability, said Christofferson, LINX has been designed with end-to-end flow control, connection supervision, and built in support for redundant links/nodes. LINX also streamlines network management by providing run-time configuration and automatic detection and maintenance of cluster topology.
A key element in the new LINX open source protocol is the use of a unique address mapping model, in which the IPC nodes store only the addresses needed for local connections, and as a result require minimal memory for code/data storage, allowing easier on-the-fly reconfiguration.
Christofferson said this enables LINX systems to scale to very large networks with complex cluster topologies (i.e., clusters connected by bridges and gateways), including those containing small-footprint DSP and microcontroller nodes.
In its current configuration, TIPC, by contrast, uses a bit-mapped address model in which the complete system address map must be stored on every node in the system. This approach is memory intensive and complicates reconfiguration (i.e., after a failure, or when nodes are added/deleted), making it difficult for TIPC systems to support devices such as DSPs/microcontrollers and scale beyond simple clusters.
Later this year, said Christofferson, Enea will announce a number of enhancements to LINX, including a naming service (publish/subscribe), reliable multicast, automatic failover to redundant links, automatic byte ordering (Endian conversion), and security/encryption.
Enea will make the Linux version available as open source under a dual BSD/GPL license. Production release is scheduled for June.