The present embodiments relate generally to data communications, and more particularly to methods and apparatus that provide flow control for buffering data.
Data networks often rely on flow control networks to avoid overflowing receive side buffer circuits. The buffer provides a dynamic way to absorb and handle the ebb and flow of data being communicated between transmit and receive integrated circuits (ICs). A variety of solutions exist to address the flow control problem.
One known credit-based solution provides a backchannel from the receiver IC to the transmitter IC, or sender. The transmitter IC includes a transmit counter that tracks the amount of transmitted data from the transmitter IC while a forward counter on the receiver IC tracks the amount of data forwarded from the receiver IC. The receiver IC periodically sends a control signal indicating when the receive buffer empties (“forwards”) a certain amount of data, such as an aggregate number of bits, bytes, packets or symbols. Knowing the rate at which data is forwarded from the buffer with respect to the transmitted data count allows the sender to calculate the remaining buffer storage space. Unfortunately, relying solely on such a solution often involves a prohibitively large buffer, and a relatively low buffer utilization rate. Moreover, relying solely on the control signal may be problematic if the signal is susceptible to noise and false or missed detections.
Another known method employs a first counter at the sender to track the amount of transmit data sent to the receiver IC, and a second counter at the buffer that tracks the data it receives. An additional counter monitors a data count for data forwarded from the buffer and sends the count to the transmitter IC. The transmitter IC can track the remaining buffer space through straightforward calculations based on the transmit count and the forward count. Periodically, the transmit count is sent to the receiver IC to minimize any errors propagating over time due to dropped data packets. While this solution allows for the use of a smaller buffer, and corrects for lost data, the overhead in transmitting multiple bits from the buffer to the sender during normal operation undesirably occupies channel bandwidth.
A method and apparatus for controlling the flow of data transmitted from a transmitter IC to a receiver IC having a buffer is disclosed. The method involves, in a first mode, calculating available buffer capacity by the transmitter IC based on buffer output information sent by the receiver IC. Data is transmitted from the transmitter IC to the receiver IC at a rate based on the calculated available buffer capacity. Upon detecting a threshold event or condition, a second mode of operation is initiated that includes sending transmit data information to the receiver IC, and updating the buffer output information based on the transmit data information.
The present embodiments are illustrated by way of example and are not intended to be limited by the figures of the accompanying drawings, where:
a is an illustrative flow chart depicting an exemplary method corresponding to the incremental and synchronization modes;
b illustrates a flow chart that includes further detailed steps corresponding to the synchronization mode step of
In accordance with the present embodiments, a method and apparatus of controlling the flow of data transmitted from a transmitter IC to a receiver IC is disclosed. In a first mode, the method involves calculating an available buffer capacity based on buffer output information sent by the receiver IC to the transmitter IC. Data is transmitted from the transmitter IC to the receiver IC at a rate based on the calculated available buffer capacity. Upon detecting a threshold condition, the method switches to a second mode. The second mode involves sending transmit data information to the receiver IC, and updating the buffer output information based on the transmit data information.
In the following description, numerous specific details are set forth such as examples of specific components, circuits, and processes to provide a thorough understanding of the present disclosure. Also, in the following description and for purposes of explanation, specific nomenclature is set forth to provide a thorough understanding of the present embodiments. However, it will be apparent to one skilled in the art that these specific details may not be required to practice the present embodiments. In other instances, well-known circuits and devices are shown in block diagram form to avoid obscuring the present disclosure. The term “coupled” as used herein means connected directly to or connected through one or more intervening components or circuits. Any of the signals provided over various buses described herein may be time-multiplexed with other signals and provided over one or more common buses. Additionally, the interconnection between circuit elements or software blocks may be shown as buses or as single signal lines. Each of the buses may alternatively be a single signal line, and each of the single signal lines may alternatively be buses, and a single line or bus might represent any one or more of a myriad of physical or logical mechanisms for communication between components. The present embodiments are not to be construed as limited to specific examples described herein but rather to include within their scopes all embodiments defined by the appended claims.
More specifically, and referring generally to
Further referring to
In one embodiment, the logic circuit 111 includes error detection circuitry 113 capable of evaluating whether information received from the second processing unit 104 includes errors above a predefined error threshold. As more fully described below, detection of errors above the threshold may give rise to an event that initiates a change in operating modes.
The second processing unit 104 includes a receiver circuit 105 that receives the transmitted data Tx DATA from the transmit circuit 106 via the signaling path 107. A receive counter 112 generates a count that represents the amount of data received at the receiver circuit 105 similar to the manner in which the transmit counter 110 counts the transmit data. Receiver logic 115 disposed on the processing unit 104 monitors the receive count and is responsive to one or more control signals Mode Ctl from the transmitter IC 102 (through receiver circuit 105) to place the processing unit 104 into a second mode of operation, as more fully described below.
Further referring to
In one embodiment, the processing units 102 and 104 each include transceiver circuitry (not shown) such that the processing unit 102 includes both a transmitter circuit and a receiver circuit, and the processing unit 104 includes both a receiver circuit and a transmitter circuit.
In operation, the signaling system 100 may function in accordance with a plurality of modes in order to minimize the buffer size while maximizing bandwidth performance and reliability. Generally, this may be accomplished by running the system in an “incremental” mode of operation a majority of the time such that the transmitter IC is able to track the buffer usage with reasonable accuracy and minimal backchannel bandwidth. Upon the occurrence of one or more predefined types of events, where the perceived buffer availability may be susceptible to inaccuracies, a synchronization mode of operation may be initiated to reset the system and compensate for any errors that may have occurred during the incremental mode. Once the synchronization mode finishes updating the various operating parameters, operation of the system may resume in the incremental mode.
a illustrates a flowchart of steps that sets out a method of operation that employs the multiple modes, with a focus on the detailed steps associated with the incremental mode.
Referring to
To track the buffer capacity in the incremental mode, and referring primarily to
During the incremental mode of operation, as data is transmitted to the receiver IC 104 from the transmitter IC 102, the control signal provides a straightforward indicator each time available space in the buffer opens up (each control signal representing one or more granular chunks of forwarded data) of the capacity available in the buffer circuit 108 so that it can be monitored, at 208. This is accomplished through straightforward calculations by knowing the total buffer capacity, the amount of data transmitted, and the amount of data forwarded. For example, where a given buffer has a capacity of 1024 kbytes, and the transmit count indicates 996 kbytes transmitted (less the count of forwarded data), the remaining buffer availability is 128 kbytes. With knowledge of the available buffer capacity, the data rate may be appropriately controlled to optimize the data transfer rate and minimize buffer overflows.
In certain circumstances, errors may occur in the acknowledge control bit through a noisy backchannel or the like. Thus, when certain conditions are detected, at 210, such as a threshold number of acknowledge bit signal errors, the system enters a second or “synchronization” mode of operation to reset or synchronize the information concerning the buffer capacity between the transmitter and receiver, at 212. Other threshold events that may be employed in various embodiments include a determination that the buffer has insufficient capacity over a predefined time interval, or detection of a timeout event.
Referring to
Further referring to
Those skilled in the art will appreciate the benefits and advantages afforded by the embodiments described herein. By providing a first mode of operation capable of accurately determining the flow of data through a buffer circuit with minimal bandwidth overhead, overall performance can be maximized. By also providing a second synchronous mode of operation to reset various counters and periodically compensate for lost data packets, the robustness and reliability of the system may be enhanced.
In the foregoing specification, the present embodiments have been described with reference to specific exemplary embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the disclosure as set forth in the appended claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/CN2012/077601 | 6/27/2012 | WO | 00 | 11/7/2014 |