Why PCIe-Based Systems Need Multicast
Traditional PCI Express (PCIe) systems have relied only on unicast packets. This made sense as there was only one host at any given time and most of the communication was host-centric, i.e. the host communicated with all the endpoints one at a time. Few applications had peer-to-peer communication, but this communication was also routed through the host due to limitations in some vendors' PCIe switches.
Lately, however, systems have been developed that use multiple hosts and have multiple endpoints requiring simultaneous communication. Additionally, as PCIe technology is being used in telecommunications and embedded systems, along with the graphics, server and storage markets, the need grew for communication with more than one endpoint at the same time. In these applications, multicast is extremely useful.
Multicast allows each host to communicate to all endpoints simultaneously, eliminating the need for the host to write a unicast packet multiple times to each endpoint.
Multicast improves the efficiency of the processor by enabling it to focus on computational and other tasks it was designed to do. Some of the applications that can use multicast feature to improve their system performance are:
1. When the CPU needs to download the same configuration information for multiple endpoints
2. When the CPU needs to send the same command packet to multiple destinations
3. When the CPU needs to update all the endpoints with the same status
The PCI-SIG (PCI Special Interest Group), the standard-setting body for the PCI Express interface, ratified a multicast spec to enable component vendors and systems integrators to follow a defined implementation of the multicast feature, eliminating any proprietary nature of implementation.
Let's look at some of the multicast usage models in the major markets and the advantages it brings to system designers.
Multicast in telecommunications systems is a mandatory feature due to the sheer need of the processor to communicate with several end-points at the same time " whether it is communicating configuration information, status information or updates (Figure 1 below).
|Figure 1: Multicast in telecommunication systems|
The usage model in Figure 1 illustrates that not only is the CPU communicating (via multicast) with the NPUs but the AMC processor is also communicating with the RegEx and the FPGA at the same time. This shows the ability of the PCIe switch to have any port capable as the source port for a packet that needs to be multicasted.
For example, a PCIe switch with 24 ports (the highest number of ports on the market, from PLX) can have any of those ports capable of being the source port. So, for systems with multiple roots and multiple endpoints connected to each root, designers could create multicast packets within each root.
This brings to attention another feature needed in PCIe switches for telecommunication systems: a large number of ports. Typical telecom systems need to connect to a large number of endpoints " such as NPUs, FPGAs, ASICs and RegEx points -- each with its own bandwidth requirements, with some needing x8 ports, others x4 ports, and still some only x1 ports.
So, for the telecom market, a PCIe switch must have the ability to support multiple port and width configurations.