Multicore and Multiprocessing
Device developers face a daunting challenge: They must create products with higher functionality at lower costs, while also meeting strict power consumption goals. For example, in the consumer device industry, consumers want consolidation and connectivity – a cell phone that is also a media player and a digital camera. In the networking industry, IT managers would like to consolidate their systems into fewer servers.
Wind River has a long track record of enabling multiprocessing systems for all the industries we serve. We have enabled key multiprocessing techniques that have gained importance in meeting design goals, such as:
- Higher efficiency through specialization of tasks
- Increased performance within a given thermal envelope
- Decreased cost due to processor consolidation and need for less support hardware
- Improved system density and scalability
Multiprocessing enables concurrent processing of instructions. Historically, there have been two basic implementation models:
SMP: Hardware-based implementations using identical processing elements, each sharing system resources such as memory and peripheral devices, are called symmetric multiprocessing (SMP) systems. The processors may be located on separate cards in the system, or combined onto the same card. Multicore combines two or more identical processing cores on the same chip.
AMP: Hardware-based implementations using processing elements of different types are called asymmetric multiprocessing (AMP) systems. In this case, the processors can be a mix of general purpose, coprocessors, or DSPs. Cell phones are a good example of AMP systems, with a general purpose processor running the user interface and a specialized DSP running the baseband.
The designer must also decide how to implement the operating system, in order to best take advantage of the hardware architecture. The designer can employ:
Tightly coupled multiprocessing: A single instance of the operating system controls all the processors.
Loosely coupled multiprocessing: Each processor has its own instance of the OS and shares resources through interprocessor communication. Within the sphere of loosely coupled MP, the designer can opt to use the same operating system for all processors (homogeneous MP) or use different operating systems on each processor (heterogeneous MP). Both cases of loosely coupled multiprocessing can be implemented on either SMP or AMP hardware configurations.
To meet the needs of developers implementing multiprocessing designs, ranging from homogeneous AMP to SMP to heterogeneous AMP, Wind River provides a variety of products that support multiprocessing and multicore technologies, including our Workbench development suite, VxWorks and Linux run-time platforms, and interprocess communication technologies.
Multicore Processing Initiative
Multiprocessing enables customers to improve performance and scalability, increase efficiency, and lower costs. However, it also introduces much higher levels of complexity. The Device Software Optimization (DSO) industry faces new obstacles in the attempt to leverage multicore advancements, including more complex software architecture models, inadequate development tools, and a lack of industry standards.
In order to provide manufacturers with the software solutions they need to build devices that take advantage of the performance benefits of multicore hardware components, Wind River has launched a strategic initiative to drive standardization and widespread adoption of multicore architecture and solutions in the device market.
Wind River's Multicore Processing (MCP) Initiative applies our leadership in standards development and open-source software to leading semiconductor manufacturers’ multicore technologies to create and deploy innovative multicore solutions.
Wind River's MCP Initiative has five components:
1. Industry Standardization
Standardization across the entire DSO life cycle ensures that device manufacturers have flexibility and choice for their software platform needs. Wind River is demonstrating thought leadership by linking the development and run-time requirements of multicore devices through the Device Software Development Platform project at Eclipse, and the Multicore Association Debug API. We are also the only company with a member on the board of both the Multicore Association and Eclipse.org.
2. Multicore Optimized Development Tools
Software optimization for multicore devices requires a different design center with regard to application interaction, performance, and concurrency. As device manufacturers implement their initial multicore designs, optimized tools can reduce time spent in prototyping and debugging, enabling faster time-to-market. Wind River offers a set of tools that provide advanced multicore development and debugging capabilities while supporting both heterogeneous operating systems and/or heterogeneous processor architectures.
3. Run-Time Optimization with Choice of Operating Environment
The hardware and application requirements for a multicore processing–based device may call for different design decisions to best allocate and manage system resources such as processors, memory, and peripherals. Wind River provides a robust, flexible choice of operating environment by supporting SMP, AMP, and Virtualized Operating System options based on Linux and VxWorks. By providing both an RTOS-based platform and a Linux-based platform, Wind River gives customers confidence and risk mitigation for their design as their multiprocessing requirements change over time.
4. Open, Integrated Partner Ecosystem
Wind River has developed a partner ecosystem of semiconductor vendors, including Freescale and Intel, and software partners to provide extensive support for the latest multicore processors and architectures. Wind River collaborates with our semiconductor partners to create market-specific platforms, reference designs, and board support packages for the latest and most widely used architectures and processors. As a result, device manufacturers enjoy the flexibility of selecting a hardware platform and extending its capability with technology optimized for multicore and multiprocessing from our extensive list of software partners.
5. Access to Multiprocessing Experts via Global Services and Support
Wind River Professional Services provides our multicore customers with a proven, trusted partner who reduces project risk and allows customers to focus on device-differentiating development activities. We offer a broad range of customer education delivered through on-demand learning, public courses, or tailored onsite courses to ensure your realized return on Wind River technology.
Multicore Technologies
Wind River offers a flexible choice of tools, run-time environments, and interprocessor communication protocols and technologies for the development and optimization of multicore and multiprocessing solutions.
Wind River Workbench
An integrated, open, extensible device software development solution
From hardware bring-up and board initialization to application development, Wind River Workbench offers deep capability throughout the development process in a single integrated environment, with complete platform integration and tools for debugging, code analysis, and test. Based on the Eclipse framework, Workbench can be extended through third-party, open-source, in-house, and commercially available plug-ins. Workbench supports development on multiple target OSes and multiple device architectures, giving companies unprecedented flexibility across the enterprise.
Multicore JTAG solution for system-level debugging
Workbench, in conjunction with Wind River ICE, enables multicore debugging with a single emulator connection. Through Wind River’s JTAG server technology, developers can debug multiple cores at the same time, whether they are on the same chip or in the same system. Workbench’s multicontext debugging capability accentuates the capability of Wind River ICE by providing developers with a debug context for each core connection, as well as key debug capabilities like cross-correlated breakpoints. This enables developers to start and stop individual processors or the entire system when a specified event occurs.
Powerful visualization, analysis, and diagnostics tools
Workbench integrates the industry’s most powerful test and visualization tools to monitor, analyze, and debug at every phase of development, providing early detection of show-stopping defects and increasing the overall quality and reliability of your product. Workbench offers specific capabilities for hardware bring-up, firmware development, application software development, test, and system diagnostics in a common, Eclipse-based development suite. Workbench is backed by Wind River’s 20+ years of device software industry experience, a world-class support organization, and a specialized professional services team.
Wind River Run-Time Platforms
Linux Platforms
Wind River offers commercial-grade Linux platform solutions for device development and deployment. These platforms contain a fully tested and validated Linux distribution based on the latest Linux 2.6 kernel technology. At their core is an open cross-build system, leveraging “pristine-source” packages and managing individual patches to build the Linux run-time distribution transparently for a specific device. Our Linux platforms feature SMP support for multicore processors.
VxWorks Platforms
Wind River VxWorks platforms are based on the world’s most widely adopted RTOS. Built on a highly scalable, deterministic, hard real-time kernel, VxWorks enables companies to scale and optimize their run-time environment using only the specific technologies required by their device. From the smallest footprint requirement to the highest performance level, VxWorks gives developers the flexibility to build their optimal solution quickly and easily while meeting cost, quality, and functionality requirements.
Interprocessor Communications
Wind River TIPC
With multiple CPU cores comes the challenge of segmentation of applications across multiple OS instances and separate memory spaces within each OS. Message Channels are a new connection-orientated, bidirectional messaging mechanism that allows tasks to communicate across OS and memory boundaries and complement traditional communication mechanisms provided in VxWorks and Linux.
Tasks located in different processes in different cores or in the kernel can establish connections with each other independent of their location. Communication can take place between tasks in different processes or kernels of different OS instances on separate cores or between tasks in the same process.
Wind River VxMP
Wind River VxMP is a fast, lightweight, shared memory-based framework for homogeneous AMP, in which each core runs a distinct copy of VxWorks. It is an optional, configurable component of VxWorks that enables synchronization between distributed tasks on different processors using semaphores, message queues or memory partitions accessible by all processors. VxMP offers the advantage of a transparent interface that allows shared-memory objects to be manipulated with the same routines used for manipulating local objects. It is high-speed, with no unnecessary passing of packets, and the memory can reside in either RAM or a separate memory card.