Multicore Processing
Multicore (or multi-core) processing uses software designed to run as parallel or asynchronously processed multiple applications over a multicore processor. The efficiency of multicore processing is dependent on how well the software application is optimized to take advantage of the multiple cores, the composition of those multicore processors, and the speed of the external interfaces and related hardware components in a system. Multicore processing can be especially useful for low-latency applications, with the largest boost in performance likely to be noticed in improved response time while running CPU-intensive processes.
Interphase Multicore Solutions
Interphase offers a family of wire-speed packet processing cards for use in many packet processing applications such as the delivery of broadband services in the 3G Wireless, Voice Over IP, and IMS network infrastructure. These iSPAN® cards are extremely versatile and provide the functionality necessary for migrating to next-generation infrastructures and converged networks. They are ideal for designing into wireless network elements such as node-B/RNCs, media servers, line-rate encryption and security functions, VoIP, stateful protocol identification, edge/access routers, and deep packet inspection (DPI) uses such as policy enforcement applications.
Multicore processor refers to a single integrated circuit chip or die that includes more than one processing unit. Each processor or core shares the same interconnect to the rest of the system. Each core may independently implement optimizations such as superscalar execution (a CPU architecture that allows more than one instruction to be executed in one clock cycle), pipelining (a standard feature in RISC processors, is much like an assembly line: the processor works on different steps of the instruction at the same time), and multithreading (a specialized form of multitasking enabling concurrent execution of pieces of the same program). Using multiple processors on a single piece of silicon:
Illustration source: Cavium Networks
In addition to general multi-purpose multicore processors, there are specialized versions for certain applications:
Here is a closer look at some of the features that make multicore NSPs particularly suited for network services.
Heat dissipation and data synchronization are issues that arise with the use of multicore processors. The design of the board or card using multicore processors can play a huge role in keeping system heat levels in the acceptable range, as can various system cooling methods. Heat dissipation is one of the factors to consider when designing high-powered, multicore-driven applications. The data synchronization issues that can arise with multicore designs can be well addressed by the multicore and application software, as covered in the next section.
Managing concurrency is crucial in developing parallel applications using any multiprocessing models. When designing such applications, the developer must consider: 1) partitioning, which is identifying individual tasks and deciding which tasks can be executed in parallel, 2) mapping the information flow, which is determining the intercommunication of tasks where they must share data, 3) combining or agglomerating the smaller tasks and decide whether to replicate or share data or computations, and 4) mapping where each task is to execute.
Multicore software can be implemented in various forms.¹ In a system implementing symmetrical multiprocessing (SMP), multiple cores are essentially interchangeable as they execute the operating system and tasks. A variation on SMP uses affinity or CPU reservation to bind specific tasks and specific cores, which effectively makes them dedicated processors.
Asymmetrical multiprocessing (AMP) is typically used to describe systems in which multiple independent operating systems are implemented. Supervised AMP uses virtualization² to abstract processing elements such as memory, cores, or devices. More on virtualization can be found in the next section of this article.
¹Device Software Optimization for Concurrent and Consecutive Systems, Wind River, whitepapers ²Achieving Business Goals with Wind Rivers Mulicore Solution, Wind River, whitepaper
To address the complexity of programming for multicore architectures, vendors have come up with software toolkits and more programming-friendly core architectures. For example, the Software Tools Ecosystem for Intel IXP tried to simplify the software development task. However, the MIPS processor core architecture, which supports well-known operating systems (OS) such as Linux, VxWorks, and Real Time Operating System (RTOS), allowing software tool vendors to port applications across multiple vendors has emerged as a preferred architecture.
The different OS types have their own strengths and are typically used for different portions of an application. RTOS supports wire-rate packet processing, which is perfect for pattern matching, routing, compression/decompression, encryption/decryption, etc. Processor-specific RTOS is available from the multicore processor vendors, for example Cavium Simple Executive and RMI RTOS. VxWorks offers another popular RTOS available for a number of multicore processors. Linux supports management and exception process quite well for user/device authentication, security associations, and accounting functions. It is available from various vendors including Wind River PNE, Monte Vista CGE, and Red Hat and is also available open source from Linux.org, Debian, and others.
Here is an illustration of how these operating systems may be applied in a multicore-architected communication networking offload application.
This illustration shows the networking equipment architecture and the relationship of task to the OS used:
Toolkits are now emerging that can exploit the power of a multicore processor as well as use the real time operating systems provided with the different processors including:
Virtualization is the abstraction of computer resources such as memory, cores, and devices. It requires a scalable hypervisor, also called virtual machine monitor (VMM), which is computer software/hardware platform virtualization software that allows multiple operating systems to run on a host computer concurrently while sharing the underlying hardware resources. Like multicore processing, virtualization presents opportunities to reduce hardware costs and power consumption while enabling new platform-level capabilities. Combining the two offers more options for enhancing platform performance, security, scalability, certifiability, and usability. The following illustration shows four software configurations enabled by multicore and virtualization:
Illustration Source: Achieving Business Goals with Wind Rivers Mulicore Solution, Wind River, whitepaper
Operating system software tends to run many threads as part of its normal operation, making multicore a great choice for virtual machines, since each virtual machine runs independently of others and can be executed in parallel. This makes multicore processing ideal for application servers that allow many users to connect to a site simultaneously and have independent threads of execution. In many cases, multicore and virtualization technologies can help device makers meet business goals regarding performance, cost, and differentiation.
Packet processing building blocks are found in applications across all elements in the converged communication network. Evolution in the technology and market uses of these elements is driving the need for more advanced packet processing:
Multicore packet process not only improves network element performance, it enables the convergence of multiple functions and diverse services from different systems into a single system. This raises challenges related to the need for speed: 1) network traffic needs to be handled at up to multi-gigabit rates, 2) deep packet inspection is generally required for all packets, 3) wire-speed security needs to be applied at each network layer, from Layer 3 to Layer 7, and 4) services need to be performed on the processed network packets.
Contact us for more information about our COTS or custom packet processor solutions.