By Tom Cox, RapidIO Trade Association
The RapidIO® specification can address the needs of mobile users and increase quality of service. The Gen2 version provides more usable bits per milliwatt while remaining backward compatible with Gen 1. It does this by increasing raw bandwidth and by providing flow control facilities to manage short- and medium-term congestion and avoid long-term congestion.
Logical Layer Enhancements
RapidIO Gen2 retains the read/write and messaging/data streaming capabilities of Gen1. The logical layer enhancements enable implementation of network- and application-level flow control operations, which hardware can easily support.
Network-level flow control can avoid congestion or limit it to short periods that can be handled by link layer flow control and the Virtual Output Queue Backpressure mechanism. Network- and application-level flow control is implemented using two packet formats: data streaming packet extended header and flow control packet flow arbitration protocol.
The data streaming packet format in Gen 1 allowed multiple “extended headers” to be defined later. The Gen2 specification defines one such header, called a Traffic Management (TM) packet. This format supports the paradigm of multiple producers sending to a single consumer through shared buffers. The producers put data in the buffer, while the consumer removes data from it. The consumer must control the producers to prevent buffer overflow. The producers must inform the consumer about how much information they have available so that the consumer can prioritize among them.
The TM packet format supports three ways to manage the shared buffer. “Basic” traffic management allows the consumer XON/XOFF control — that is, a producer can send or it can’t. “Rate-based” traffic management allows the consumer to control the rate at which a producer can send data, speeding it up and slowing it down as demands change. “Credit-based” traffic management further extends the flow control semantics to limit the amount a producer can transmit, based on the consumer issuing credits. These management methods can be applied to particular flows or groups of flows between producers and consumers. Even more important, the management methods may be used with the standard RapidIO multicast function to globally control flows handled by a particular consumer.
In Gen1, flow control packets implemented XON/XOFF control capabilities for physical-layer congestion. These were intended for use by switches and endpoints to control congestion lasting up to tens of microseconds. The Gen2 specification extends this packet format in two ways: it defines XON/XOFF support for virtual channels and a flow arbitration protocol. The protocol is used to request and grant resources within a system. The resources can be data streaming packets, reassembly contexts, mailboxes, semaphores, or any other shared hardware or software resource that requires management. The flow arbitration protocol can be supported inexpensively in software or through dedicated hardware, enabling the efficient management of shared resources throughout the system.
RapidIO Gen 2 thus offers more extensive facilities for managing a system. It provides for the detailed management of shared buffers and the requesting and granting of other resources. These new features can help greatly in avoiding congestion and ensuring quality of service.
Tom Cox is Executive Director of the RapidIO Trade Association. You can reach him at tom.cox@rapidio.org.