US7684326B2 - Methods and structures for improved buffer management and dynamic adaptation of flow control status in high-speed communication networks - Google Patents
Methods and structures for improved buffer management and dynamic adaptation of flow control status in high-speed communication networks Download PDFInfo
- Publication number
- US7684326B2 US7684326B2 US11/873,585 US87358507A US7684326B2 US 7684326 B2 US7684326 B2 US 7684326B2 US 87358507 A US87358507 A US 87358507A US 7684326 B2 US7684326 B2 US 7684326B2
- Authority
- US
- United States
- Prior art keywords
- port
- flow control
- status
- information
- buffer memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related, expires
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/39—Credit based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Definitions
- the invention relates generally to flow control and buffer management in high-speed communication media and protocols and more specifically relates to improved buffer management and flow control in high-speed, serial communication network media and protocols.
- a transmitting element is in communication with a receiving element for the exchange of information therebetween.
- the communications medium connecting the transmitting and receiving elements is a serial interface in which bits of information to be communicated are exchanged in a sequential, serial fashion.
- serial communication interface may be as narrow as a single bit in width while in other high-speed applications, the serial communication may involve multiple bits communicated in parallel as a word and words communicated in a serial sequential fashion.
- the transmitting element and a receiving element may be implemented as distinct electronic systems such that the transmitting element produces information at a different rate than the receiving element is capable processing.
- flow control it is generally known in the art to use techniques broadly referred to as flow control to assure that the receiving element is not overrun or overflowed by the production and transmission of information from the transmitting element.
- flow control involves the receiving element instructing the transmitting element as to the maximum amount of data that may be presently received or otherwise indicating to the transmitting elements that no further data may be received for a period of time.
- each packet of information comprises a certain amount of substantive information coupled with associated overhead information to allow verification and acknowledgment of proper receipt of substantive data (i.e., to verify that no data is missing and/or to reconstruct any missing data and to verify that data is received in the proper sequence).
- both the transmitting element and the receiving element are comprised of various layers of communication components often referred to as a “stack” or “protocol stack.”
- a stack or “protocol stack.”
- Higher layers of such a protocol stack generally provide interfaces to applications and system programs requiring communication services to exchange information with another device. As the information descends from higher layers of the protocol stack to lower layers of the protocol stack, corresponding packet header information may be appended and prepended to the data received from the higher level to allow for robust, reliable exchange of information with a corresponding layer at the receiving element protocol stack.
- the element generating information may be viewed as a transmitting element and the next lower layer to which it transmits information may be viewed as a receiving element.
- Flow control is therefore a standard technique practiced not only between distinct computing or communicating elements of electronic network systems but also as a method practiced between various layers of communication media and protocols within a single transmitting element or receiving element.
- SPI system packet interface
- the SPI 4 and SPI 5 specifications both address communication media and protocols for high-speed fiber-optic communication channels. These specifications pertain to high-speed fiber communication media such as OC192 and OC768, respectively.
- the specifications define a rich set of ports (logical channels) that can be active on the physical link at any given time.
- the SPI 4 specification allows for up to 256 such ports or logical channels while the SPI 5 specification provides for a far greater number of ports (i.e., 2 144 ports).
- the SPI 4 and SPI 5 specifications are exemplary of communication standards in which flow control is based on a credit structure wherein the receiving end of the link indicates its a readiness to receive further information in accordance with various threshold levels of space available in its buffer memory—i.e., credits for packets that may be received.
- the credit information is returned from the receiving element to the transmitting element through a two bit wide signal path. Rather than returning explicit credit amounts, the two bit field indicates one of three status conditions.
- a HUNGRY status indicates that of the receiving element is prepared to his receive additional information from the transmitter.
- the STARVED status indicates that the receiver is in need of further information to avoid underrun conditions (underrun conditions that may reduce utilization of the bandwidth of the communication channel).
- a SATISFIED status indicates that the available buffer memory of the receiving element is almost full indicating full utilization of the available communication bandwidth.
- the memory credit status is returned in regular status updates from the receiving element on a periodic basis.
- the transmitting element and receiving element agree on common threshold values that correspond to each of the three credit status values.
- the agreed upon threshold values are referred to as MAXBURST 1 and MAXBURST 2 .
- a table included in the SPI 4 and SPI 5 specification provides the precise semantic definition of each of the three status states as they relate to the predefined threshold values for available buffer memory in the receiving element.
- the STARVING status indicates that the receiving element has at least enough memory space for the higher predetermined threshold value (MAXBURST 1 ).
- MAXBURST 1 the higher predetermined threshold value
- a receiving element may alter the status at a later time if buffer memory is no longer available but may only do so on a periodic basis when regular status updates are reported from the receiving element to the transmitting element. During the latency period between such updates, the receiving element must have this minimum amount of storage preallocated (i.e., MAXBURST 1 packets).
- the buffer management and credit scheme is defined on a port-by-port basis in accordance with the SPI 4 specifications and either port-by-port or pool-by-pool under the SPI 5 specifications. This minimum buffer allocation is therefore multiplied by the number of ports (or pools) presently defined for the receiving device.
- the present invention solves of the above and other problems, thereby advancing the state of the useful arts, by providing methods and structure for flow control in high speed serial communication protocols that manage buffer memory allocation utilizing storage metric information associated with the ports to reduce minimum required memory allocation in a communication system design.
- the invention provides for modifications to the semantic interpretation of the flow control status bits as defined by the SPI 4 and SPI 5 specifications and provides buffer storage metrics and associated buffer management techniques to minimize wasted, unused buffer memory.
- the present invention provides a set of storage metrics useful to track the amount of storage being used at the receiving element of a high-speed serial link.
- the storage metrics include counters specifically defined to track available versus used memory for several categories of storage and to track usage of that storage on a per port (or pool) basis.
- the storage metric information may be used by the modified flow control logic to algorithmically make decisions as to which ports (or pools) should be reprioritized such that: buffers are not overrun, all traffic progresses, and all flow control contracts and commitments are met.
- a first feature of the invention provides a method for transmission flow control in high-speed serial data transmission element comprising the steps of: maintaining an available credits indicia associated with each port of a plurality of ports associated with said transmission element; transmitting packets to an identified port in a receiving element when allowed in accordance with the available credits indicia associated with said identified port; receiving port status information from said receiving element wherein said port status information is associated with said identified port; detecting changes in said port status information wherein detecting of said changes is asynchronous with respect to the step of transmitting; and reducing said available credits indicia associated with said identified port in accordance with the detected changes.
- Another aspect of the invention further provides that the transmission element is an SPI compliant transmission element.
- Another aspect of the invention further provides that the step of detecting a reduction in available buffer space for said identified port comprises detecting a change in the xSTAT[1:0] field from STARVING status to HUNGRY status, and that the step of reducing available credits comprises the step of setting said available credits associated with said identified port to the lesser of the present value of said available credits and the MAXBURST 2 parameter associated with said identified port.
- Another aspect of the invention further provides that the transmission element is an SPI compliant transmission element, and that the step of detecting a reduction in available buffer space for said identified port comprises detecting a change in the xSTAT[1:0] field from STARVING status to SATISFIED status, and that the step of reducing available credits comprises the step of setting said available credits associated with said identified port to zero.
- Another feature of the invention provides a method for reception flow control a high-speed serial data receiving element comprising the steps of: generating storage metric information regarding buffer memory associated with each port of multiple ports associated with said receiving element; and transmitting updated port status information to a transmitting element associated with said port wherein said updated port status information is derived from said storage metric information.
- Another aspect of the invention further provides for allocating dedicated buffer memory associated with said each port; and allocating shared buffer memory common to all of said multiple ports.
- step of generating comprises the step of: counting the amount of said dedicated buffer memory used by said each port.
- step of transmitting updated port status information further comprises the step of: updating said updated port status information in accordance with the present count of said amount of dedicated buffer memory used by said each port.
- step of generating comprises the step of: counting the amount of said shared buffer memory used by said each port.
- step of transmitting updated port status information further comprises the step of: updating said updated port status information in accordance with the present count of said amount of shared buffer memory used by said each port.
- step of generating comprises the steps of: counting the amount of said shared buffer memory used by said each port; and counting the amount of said dedicated buffer memory used by said each port.
- step of transmitting updated port status information further comprises the step of: updating said updated port status information in accordance with the present count of said amount of dedicated buffer memory used by said each port and in accordance with the present count of said amount of shared buffer memory used by said each port.
- Another aspect of the invention further provides that the receiving element is an SPI compliant receiving element.
- step of updating comprises the step of: updating said port status information to a status value selected from the group consisting of SATISFIED, HUNGRY, and STARVED in accordance with the present count of said amount of dedicated buffer memory used by said each port and in accordance with the present count of said amount of shared buffer memory used by said each port.
- Another feature of the invention provides a method in an SPI compliant serial communication system having a transmission element and a receiving element, the method comprising: generating buffer memory storage metric information within said receiving element wherein said storage metric information indicates buffer memory utilization by each port of a plurality of ports; generating, within said receiving element, port status information regarding said each port wherein said port status information includes flow control information; transmitting said port status information to said transmission element wherein said port status information is transmitted as xSTAT[1:0] status fields for said each port; and transmitting packets from said transmission element to said receiving element when permitted in accordance with said flow control information, wherein said port status information is updated and transmitted to said transmission element asynchronously with respect to the transmission of said packets.
- Another aspect of the present invention further provides for the step of: allocating dedicated buffer memory associated with said each port; and allocating shared buffer memory common to all of said multiple ports.
- Another aspect of the present invention further provides that the step of generating said buffer memory storage metric information comprises the steps of: counting the amount of said shared buffer memory used by said each port; and counting the amount of said dedicated buffer memory used by said each port.
- step of transmitting said port status information further comprises the step of: updating said port status information in accordance with the present count of said amount of dedicated buffer memory used by said each port and in accordance with the present count of said amount of shared buffer memory used by said each port.
- step of updating comprises the step of: updating said port status information as an xSTAT[1:0] status value selected from the group consisting of SATISFIED, HUNGRY, and STARVED in accordance with the present count of said amount of dedicated buffer memory used by said each port and in accordance with the present count of said amount of shared buffer memory used by said each port.
- step of transmitting packets further comprises the steps of: detecting, within said transmission element, a change in said port status information from STARVING status to HUNGRY status, and setting an available credits associated with said identified port to the lesser of the present value of said available credits and the MAXBURST 2 parameter associated with said identified port.
- step of transmitting packets further comprises the steps of: detecting, within said transmission element, a change in said port status information from STARVING status to SATISFIED status, and setting an available credits associated with said identified port to zero.
- Another feature of the present invention provides a method in a communication system including a transmitting element coupled to receiving element having multiple ports, the method operable within said transmitting element comprising the steps of: maintaining an available credit count for each port of said multiple ports wherein said available credit count indicates a number of packets that may be transmitted to said each port; and reducing said available credit count for a first port in response to packet transmissions to other ports of said multiple ports.
- FIG. 1 is a block diagram of a system including structures for improved flow control in accordance with the present invention.
- FIG. 2 is a flowchart describing a method of the present invention for maintaining storage metric information useful in improved flow control in accordance with the present invention.
- FIG. 3 is a flowchart describing improved flow control techniques operable within a receiving element of a high-speed serial link in accordance with the present invention.
- FIG. 4 is a flowchart describing improved flow control techniques operable within a transmitting element of a high-speed serial link in accordance with the present invention.
- FIG. 1 shows a high-speed serial communication element including both a transmission component 104 within link layer 102 and a receiving element 106 within link layer 102 .
- link layer 102 provides a level of communications control to coordinate issues such as flow control when communicating with lower layer elements.
- PHY device 108 represents such a next lower layer in a layered protocol stack model to perform appropriate processing for physical communication of link layer supplied information over a particular communication medium.
- SERDES element 110 provides a next lower layer of communications in which data signals are modulated onto a specific serial communication medium and demodulated from the serial communication medium (i.e., SERialized and DESerialized).
- Transmissions from link layer 102 are originated by transmit link layer 104 and the data thereby generated is applied to transmission data path 151 for transmission to PHY device 108 .
- Flow control and other status information is returned on transmission flow control signal path 152 .
- Signal paths 151 and 152 in combination, represents a transmit interface or transmit channel 150 .
- information received from PHY device 108 is applied to path 161 for reception and further processing by receiving link layer 106 of link layer 102 .
- receive link layer 106 applies flow control and other status signal information to path 162 for return to PHY device 108 .
- Paths 161 and 162 in combination, represents a receive interface or receive channel 160 .
- FIG. 1 may represent any of numerous layered communication structures and protocols.
- FIG. 1 is suggestive of at least the SPI (System Packet Interface) defined by the Optical Interconnect Forum (OIF).
- SPI 4.2 and SPI 5 both define communications standards generally compatible with the elements thus far described in FIG. 1 .
- SPI 4.2 and SPI 5 both define communications standards generally compatible with the elements thus far described in FIG. 1 .
- the structures and features of the present invention may be utilized in conjunction with numerous other commercially available and custom, application-specific communication structures and protocols.
- the SPI standards (SPI 4.2 and SPI 5 in particular) defined a “port” as a logical channel of communication between communicating link layers of a system.
- Link layer 102 may therefore represent link layer protocol management for each of multiple such ports defined within a communicating element such as one compliant with the SPI 4 and SPI 5 specifications as well as other well-known, commercially available communication systems or custom, application-specific communication links.
- SPI 5 specifications further define a concept of “pool” which represents a logical aggregation of one or more ports.
- Flow control information as defined by the SPI 5 specifications are applied on a pool-by-pool basis similarly to the flow control information as defined by the SPI 4.2 specifications and may be applied on a port-by-port basis as defined by the SPI 4.2 specification.
- the features of the present invention are therefore equally applicable under either SPI standard (as well as other communications applications) on both ports and pools.
- the term “port” is to be understood as representing ports as defined by SPI 4 and SPI 5 standards as well as pools as defined by SPI 5 standards. Further, “port” is to be understood more broadly as including communication channels associated with numerous multiported, serial communication systems and protocols.
- SPI compliant means devices or methods operable in a manner that is compliant with either or both of the SPI 4.2 and SPI 5 standards.
- transmit link layer 104 may maintain current credit information 114 associated with each potential port of the communication link.
- Current credit information 114 is used by transmit link layer 104 for purposes of improved flow control in accordance with methods of the present invention discussed further herein below.
- receive link layer 106 generates, maintains, and utilizes buffer memory storage metric information 112 associated with each potential port of the communication link.
- Receive link layer 106 utilizes such storage metric information, generated and maintained in accordance with the present invention, for purposes of improved flow control further in accordance with the present invention. Methods associated with generation and maintenance of such storage metric information and associated with utilization of such storage metric information for improved flow control are discussed further herein below.
- FIG. 2 is a flowchart describing the operation of a method of the present invention operable to gather and maintain storage metric information useful for improved flow control further in accordance with the present invention.
- the receive component of the link layer provides periodic updates to the transmit layer of a communicating device to indicate its level of readiness for receiving transmitted packets of data.
- present known protocols may impose a significant burden on a communicating device in that substantial memory allocation may be required to assure robust, reliable transmission of data packets at the full specified bandwidth.
- a receiving element needs to allocate buffer memory associated with the each port of the receiving link layer sufficient to accommodate a maximum length burst of packets.
- a receiving element may update its flow control status information transmitted to a corresponding transmitting element
- present practices allocate sufficient memory to each port of the receiving device to allow for a worst-case maximum burst of packets from the transmitting element.
- the method of FIG. 2 therefore initially allocates buffers dedicated to each port and also allocates shared buffer memory shared by all ports.
- element 200 allocates dedicated buffer memory associated with each potential port of the receiving element of the link layer.
- Element 202 then allocates shared buffer memory shared by all ports.
- the specific capacity of each of the allocated buffer classes is a matter of design choice well-known to those of ordinary skill in the art. Factors contributing to such capacity determinations may relate to transmission speed, cycle timing for status updates returned from the receiving element to a corresponding transmitting element, the nature of the specific data exchanged over particular ports, and/or other factors well-known to those of ordinary skill in the art.
- a packet related event is an event detected by the receiving element of the link layer that may alter the available buffer account. Such events may include, for example, receipt of a packet from a corresponding transmission element on a particular port, consumption of data in a previously received packet thereby freeing the buffer memory for additional packet reception, and potentially other events relating to configuration or allocation of the buffer memory.
- element 206 Upon receipt of such a packet related event as detected by element 204 , element 206 next determines whether the detected event is a packet received event. If so, element 208 is next operable to decrement a count of available buffer space associated with the port on which the packet was received. The count decremented will also correspond to the particular buffer memory used for storing the received packet (i.e., dedicated buffer memory of the port or shared buffer memory). Processing then continues with element 204 to update buffer allocation and flow control information appropriately in response to the packet received event processing. If element 206 determines that the detected event was not a packet received event, element 210 is next operable to determine whether the detected event is a buffer free event representing the freeing of a buffer previously allocated to receive a packet.
- element 210 determines that the detected event was a buffer free event
- element 212 is next operable to increment appropriate counters indicative of the availability of another buffer. As above, the counter incremented may be determined in accordance with the port involved and the class of allocated memory (i.e., shared or dedicated).
- Element 214 is then operable as noted above to update buffer allocation and flow control information appropriately in response to the buffer free event processing. The method then continues by looping back to element 204 to await detection of a next packet related event.
- Elements 208 and 212 are described as broadly operable to increment and decrement appropriate counters representing the metric information useful for adapting the received element of flow control information.
- the present invention may preferably allocate multiple classes of buffer memory to be used by each port in receiving packets from a corresponding transmitting element.
- Numerous counters relevant to management of such storage allocations and corresponding flow control will be readily apparent to those of ordinary skill in the art. Exemplary of such counters are a counter indicating usage of preallocated, dedicated storage per port, a counter indicating usage of shared buffer memory per port, a counter of overall remaining available shared storage, etc. These exemplary counters are useful both for proper management of the various classes of allocated memory and, as described further herein below, useful for improved receive flow control information update.
- FIG. 3 is a flowchart describing a method of the present invention for improved receive flow control based on storage metric information gathered and maintained as described above with respect to FIG. 2 .
- a receiving element of a link layer transmits flow control information to a transmitting element to indicate its readiness for receipt of further packet data.
- a receiving link layer generates xSTAT information on a periodic basis and returns the generated information to transmission elements associated with particular ports.
- the SPI port status information includes flow control information represented as one of three states: SATISFIED, HUNGRY and STARVED.
- a SATISFIED flow control status indicates that the receiving element has sufficient buffered data such that the transmitting element should not transmit any further packets of information.
- a HUNGRY flow control status indicates that while the receiving element has some buffered data, additional data may be transmitted by the transmitting element to maintain full bandwidth utilization of the commutation link.
- a STARVING status indicates that the receiving element needs additional information as soon as possible to avoid potential underflow (underutilization) of the available commutation link bandwidth.
- the SPI standards are exemplary of a communication system architecture wherein flow control is determined in accordance with buffer credit information and where buffer space is associated with each port of a multiported communication system of receivers and transmitters.
- Flow control in such architectures is generally encoded as a function of remaining available buffer space (credits). Credits are generally updated by the receiving element in response to receipt of transmitted packets from a transmitting element. The updated credit information is then forwarded from the receiving element to the transmitting element(s) in accordance with rules of the particular protocol.
- credit information is communicated as one of three status indicators, namely STARVING, HUNGRY or SATISFIED. More generally, credit-based flow control schemes encode the credit information in some form for information exchange between the receiving element and the transmitting element(s).
- Element 302 is operable to determine the amount of dedicated buffer memory space available for the next (or first) port associated with the receive link layer relevant.
- Element 304 is then operable to add the presently available shared buffer memory space to the dedicated buffer memory space for the port.
- Element 308 determines the present flow control status of the port based on comparison of the available buffer memory indicated by elements 302 and 304 . The flow control status is thereby determined as STARVED, HUNGRY or SATISFIED in accordance with an SPI compliant embodiment of the present invention.
- Element 308 determines if more ports remain to be analyzed for purposes of updating port status and flow control information.
- processing continues by looping back to element 302 to determine port status and flow control information for a next port known to the receive link layer element.
- element 310 is next operable to transmit the updated flow control information as a vector of data. The transmission is directed to corresponding transmitting elements for each port presently known to the receive link layer element.
- the method described in FIG. 3 allows the receive link layer element to “advertise” packet storage capacity available for each port despite the fact that the capacity is not represented as dedicated buffer memory space associated exclusively with that port. Rather, the “advertised” space as indicated by flow control information for each of the various ports represents an aggregated buffer memory capacity based on a combination of dedicated buffer memory per port and shared buffer memory shared by all ports known to the receive link layer element.
- this “false advertising” is safe in that it cannot lead to deadlock or packet loss as between the transmitting and receiving elements on a port.
- the advertised space can be updated within the time period of one periodic cycle of port status information refresh.
- the counter (storage metric) reflecting number of used buffers in shared buffer memory is compared against threshold values.
- the threshold values are derived as functions of the number of packets that may be received during the port status update latency period.
- a low threshold value in such a case may be, for example, a buffer count of 2 and a high threshold value in such a case may be, for example, a buffer count of 5.
- the present counter value is then compared against these two threshold values to determine the present flow control state to be assigned. Such a simple comparison may be implemented as a table lookup function as follows:
- Other storage metrics i.e., counters
- the computed remaining available dedicated storage for each port may be compared against three threshold values, a low threshold, a medium threshold and a high threshold.
- the global availability of all buffer memory space available may be used as another indicator compared against one or more threshold values. Based upon these comparisons, the desired flow control updated information may be determined in accordance with the following table.
- a shared memory as described above may be segmented into multiple pools of shared memory where each pool is shared by a select subset of ports known to the receive link layer element.
- Another aspect of the present invention provides for improved use of flow control information within the transmit link layer element.
- the transmit link layer element receives flow control information from corresponding receive link layer elements communicating through one or more ports over the communication medium.
- flow control information is included in periodic port status information generated and transmitted by corresponding receive link layer elements.
- flow control information is indicated as one of three states, namely: STARVED, HUNGRY and SATISFIED.
- a transmitting element maintains a current credit value for each port indicating a number of packets that may be transmitted on the corresponding port without violating the flow control contracts represented by the flow control information provided by a receiving element with each associated port.
- a transmitter receiving a STARVED flow control status from a corresponding receive link layer element increases that port's credit value to the higher of two configured threshold values.
- a STARVED status with the transmit element increases its current credit value to the MAXBURST 1 preconfigured value.
- Such a value indicates that the receiving element can receive a maximum size burst of packets before risking any potential loss of information.
- a transmitter receiving a HUNGRY status from a corresponding receive link layer element increases its current credit value to the greater of the current credit value and a second preconfigured value, namely MAXBURST 2 ( ⁇ MAXBURST 1 ). Still further, in accordance with the SPI standards, a transmitter receiving a SATISFIED flow control status does not change its present credit value such that presently available credits remain available.
- Another aspect of the present invention involves improved transmit flow control associated with the above discussed receive flow control and buffer memory management.
- the improved transmit flow control responds differently to received flow control information from receiving elements. More specifically, the improved transmit flow control alters current credits associated with each port in response to received flow control updates so as to assure avoidance of overrun conditions.
- This improved flow control allows the receiving ports to update their respective flow status values independent of any related packet transmission. Rather, the transmit flow control permits the receive elements to update their respective flow control status values in response to the buffer management and storage metric information gathered and maintained by the receive element.
- the transmit element flow control responds differently to the HUNGRY and SATISFIED flow control status received from a corresponding receive link layer element. Still more specifically, in response to receipt of a SATISFIED flow control status from a corresponding receive link layer element, the transmit link layer element deletes all remaining credits by setting the present credit value to zero. Such a change coupled with the improved buffer management and corresponding receive flow control discussed above helps avoid potential overrun conditions and aids in the utilization of shared common buffer memory within the receive link layer element. Still further in accordance with the present invention, the transmit element receiving an SPI HUNGRY status from a corresponding receive link layer element alters its present credit value to the lesser of its current credit value and the MAXBURST 2 preconfigured value.
- the receive link layer element may alter flow control information asynchronously with respect to the transmission of packets by a transmitting link layer element.
- the receive element may update its flow control status even in the absence of packets transmitted to that receiving element.
- prior techniques only modified received flow control information for a port in response to receipt of transmitted packets on that port
- the present invention permits the received link element to modify its flow control information anytime asynchronously with respect to transmission of packets by a transmitting link layer element.
- packets received by other ports in a multiported receive element may affect the shared memory and associated storage metrics in such a manner as to affect other port flow control status information.
- the receive elements therefore may update their respective flow control status independent of packet transmission to that port.
- the improvements in the transmit flow control interpretation discussed above therefore enhance the utility of the improved flow control and buffer memory management discussed above with respect to the receive link layer element.
- the following table shows the desired modifications to the transmit link layer element response to received flow control information.
- the table is similar to that shown in the SPI specifications but modifications are highlighted. Only the SATISFIED and HUNGRY flow control states are modified in accordance with the present invention.
- the credit count is reduced to MAXBURST2.
- 0 0 STARVING The STARVING status indicates that the FIFO of the corresponding sink Pool is almost empty.
- the amount of credits at the source Pool is set to MAXBURST1 blocks. This status value is also repeated as part of the training pattern.
- FIG. 4 is a flowchart describing a method of the present intention for improved utilization of received flow control information within a transmit link layer element.
- the receive link layer element may update its port status information and associated flow control information asynchronously with respect to transmission of packets from a corresponding transmit link layer element (i.e., independent of packets transmitted to that port). Improvements of the transmit flow control therefore better utilize this asynchronously updated flow control information.
- the improved transmit flow control allows for reduction of credits associated with an attached receive element in response to updated receive status and independent of packet transmission to that port.
- Utilization of flow control information is associated with processing for transmission of packets to a receive link layer element corresponding to a particular port.
- Element 400 therefore first determines whether any packet or packets are ready for transmission to the associated receive link layer element of the port. If not processing continues with element 406 discussed further herein below. If so, element 402 next determines whether the current credit value indicates that sufficient buffer space remains available with the receive link layer element of the associated port. If insufficient credits remain, processing continues with element 406 discussed further herein below. If sufficient credits remain as indicated by the current credit value maintained by the transmit link layer element, element 404 is next operable to transmit the desired packet or packets and to adjust the current credit value to indicate an appropriate remaining current credit.
- element 412 next determines whether the flow control information indicates a change to the SATISFIED state. If so, element 414 sets the current credit value to zero to preclude further packet transmissions to the associated receive link layer element. Processing then continues by looping back to element 400 as above.
- element 416 next determines whether the updated flow control information indicates a change to the STARVED state within the receive link layer element. If not, processing continues by looping back to element 400 as above. If so, element 418 is operable to set the current credit value to the MAXBURST 1 preconfigured setting. Processing then continues by looping back to element 400 as above.
Abstract
Description
Comparison with Low | Comparison with High | Flow Control Status |
Threshold | Threshold | Output |
GT | GT | SATISFIED |
GT | LE | HUNGRY |
LE | LE | STARVED |
Other storage metrics (i.e., counters) may be used in more complex functions and comparisons to provide a richer test and associated translation to a flow control encoded status value. For example, the computed remaining available dedicated storage for each port may be compared against three threshold values, a low threshold, a medium threshold and a high threshold. Further, as a separate factor, the global availability of all buffer memory space available may be used as another indicator compared against one or more threshold values. Based upon these comparisons, the desired flow control updated information may be determined in accordance with the following table.
Level of | Flow | |||
Comparison | Comparison | Comparison | Global | Control |
with Low | with Medium | with High | Buffer | Status |
Threshold | Threshold | Threshold | Availability | Output |
GT | GT | GT | Don't Care | SATISFIED |
GT | GT | LE | Limited | SATISFIED |
GT | GT | LE | Limited | SATISFIED |
GT | GT | LE | Unlimited | HUNGRY |
GT | LE | LE | Very | SATISFIED |
Limited | ||||
GT | LE | LE | Limited | HUNGRY |
GT | LE | LE | Unlimited | HUNGRY |
LE | LE | LE | Very | SATISFIED |
Limited | ||||
LE | LE | LE | Limited | HUNGRY |
LE | LE | LE | Unlimited | STARVED |
xSTAT[1] | xSTAT[0] | Description |
1 | 1 | In-band Framing Pattern |
The framing pattern is sent once per pool status | ||
frame in normal operation. | ||
This status value is also repeated as part of the | ||
training pattern. | ||
1 | 0 | SATISFIED |
The SATISFIED status indicates that the FIFO of | ||
the corresponding sink Pool is almost full. When | ||
the SATISFIED status is received, no further | ||
credits are granted. Credits granted previously by | ||
HUNGRY or STARVING status reports are | ||
deleted. | ||
0 | 1 | HUNGRY |
The HUNGRY status indicates that the FIFO of | ||
the corresponding sink Pool is partially empty. | ||
When a HUNGRY status is received, the amount | ||
of credits at the source Pool is increased to | ||
MAXBURST2 blocks if the current value is more | ||
than MAXBURST2. If the amount of credit | ||
remaining is currently greater than | ||
MAXBURST2, due to a previous STARVING | ||
status report, the credit count is reduced to | ||
MAXBURST2. | ||
0 | 0 | STARVING |
The STARVING status indicates that the FIFO of | ||
the corresponding sink Pool is almost empty. | ||
When a STARVING status is received, the | ||
amount of credits at the source Pool is set to | ||
MAXBURST1 blocks. | ||
This status value is also repeated as part of the | ||
training pattern. | ||
Claims (2)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/873,585 US7684326B2 (en) | 2001-12-17 | 2007-10-17 | Methods and structures for improved buffer management and dynamic adaptation of flow control status in high-speed communication networks |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US34133901P | 2001-12-17 | 2001-12-17 | |
US10/232,051 US7301906B2 (en) | 2001-12-17 | 2002-08-30 | Methods and structures for improved buffer management and dynamic adaption of flow control status in high-speed communication networks |
US11/873,585 US7684326B2 (en) | 2001-12-17 | 2007-10-17 | Methods and structures for improved buffer management and dynamic adaptation of flow control status in high-speed communication networks |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/232,051 Division US7301906B2 (en) | 2001-12-17 | 2002-08-30 | Methods and structures for improved buffer management and dynamic adaption of flow control status in high-speed communication networks |
Publications (2)
Publication Number | Publication Date |
---|---|
US20080037428A1 US20080037428A1 (en) | 2008-02-14 |
US7684326B2 true US7684326B2 (en) | 2010-03-23 |
Family
ID=26925641
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/232,051 Expired - Fee Related US7301906B2 (en) | 2001-12-17 | 2002-08-30 | Methods and structures for improved buffer management and dynamic adaption of flow control status in high-speed communication networks |
US11/873,585 Expired - Fee Related US7684326B2 (en) | 2001-12-17 | 2007-10-17 | Methods and structures for improved buffer management and dynamic adaptation of flow control status in high-speed communication networks |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/232,051 Expired - Fee Related US7301906B2 (en) | 2001-12-17 | 2002-08-30 | Methods and structures for improved buffer management and dynamic adaption of flow control status in high-speed communication networks |
Country Status (1)
Country | Link |
---|---|
US (2) | US7301906B2 (en) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060101140A1 (en) * | 2004-10-22 | 2006-05-11 | Cisco Technology, Inc. | Ethernet extension for the data center |
US20060251067A1 (en) * | 2004-10-22 | 2006-11-09 | Cisco Technology, Inc., A Corporation Of California | Fibre channel over ethernet |
US20070081454A1 (en) * | 2005-10-11 | 2007-04-12 | Cisco Technology, Inc. A Corporation Of California | Methods and devices for backward congestion notification |
US20080186968A1 (en) * | 2007-02-02 | 2008-08-07 | Cisco Technology, Inc. | Triple-tier anycast addressing |
US20090010162A1 (en) * | 2007-07-05 | 2009-01-08 | Cisco Technology, Inc. | Flexible and hierarchical dynamic buffer allocation |
US20090052326A1 (en) * | 2007-08-21 | 2009-02-26 | Cisco Technology, Inc., A Corporation Of California | Backward congestion notification |
US20090252038A1 (en) * | 2004-10-22 | 2009-10-08 | Cisco Technology, Inc. | Fibre channel over ethernet |
US8874808B2 (en) | 2010-09-07 | 2014-10-28 | International Business Machines Corporation | Hierarchical buffer system enabling precise data delivery through an asynchronous boundary |
Families Citing this family (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7327680B1 (en) * | 2002-11-05 | 2008-02-05 | Cisco Technology, Inc. | Methods and apparatus for network congestion control |
US20040114522A1 (en) * | 2002-12-12 | 2004-06-17 | Alcatel Canada Inc. | Efficient non-user data transmission method |
WO2004095286A2 (en) * | 2003-04-22 | 2004-11-04 | Agere Systems Inc. | Method and apparatus for shared multi-bank memory in a packet switching system |
US7627654B2 (en) * | 2003-06-09 | 2009-12-01 | Foundry Networks, Inc. | System and method for multiple spanning tree protocol domains in a virtual local area network |
US8634309B2 (en) * | 2003-07-10 | 2014-01-21 | Mcafee, Inc. | Security network processor system and method |
US7558205B1 (en) * | 2003-08-01 | 2009-07-07 | Foundry Networks, Inc. | System and method for detecting and isolating a remote loop |
US7564858B1 (en) * | 2003-08-01 | 2009-07-21 | Foundry Networks, Inc. | System and method for enabling a remote instance of a loop avoidance protocol |
US7701957B1 (en) * | 2004-01-20 | 2010-04-20 | Integrated Device Technology, Inc. | Method and apparatus for switching, merging, and demerging data between data communication locations |
JP2005267502A (en) * | 2004-03-22 | 2005-09-29 | Hitachi Ltd | Switch for data transfer |
WO2005101763A1 (en) * | 2004-04-12 | 2005-10-27 | Integrated Device Technology, Inc. | Method and apparatus for forwarding bursty data |
CN1965548B (en) * | 2004-04-12 | 2012-08-22 | 联合设备技术公司 | Method and apparatus for forwarding bursty data |
US7940662B2 (en) * | 2004-04-12 | 2011-05-10 | Integrated Device Technology, Inc. | Method and apparatus for forwarding bursty data |
US7672233B2 (en) * | 2004-07-15 | 2010-03-02 | Calix Networks, Inc. | Traffic management for a passive optical network terminal |
US7518996B2 (en) * | 2004-09-16 | 2009-04-14 | Jinsalas Solutions, Llc | Fast credit system |
US7583599B1 (en) * | 2004-09-27 | 2009-09-01 | Intel Corporation | Transporting stream client signals via packet interface using GFP mapping |
US7573896B2 (en) | 2004-10-15 | 2009-08-11 | Integrated Device Technology, Inc. | Method and apparatus for generic interface, packet cut-through, overbooking, queue concatenation, and logical identification priority for a system packet interface device |
TW200627258A (en) * | 2005-01-27 | 2006-08-01 | Lite On Technology Corp | Medium transfer-recording control method and the embedded system using the same |
US7889658B1 (en) * | 2005-03-30 | 2011-02-15 | Extreme Networks, Inc. | Method of and system for transferring overhead data over a serial interface |
US20060227799A1 (en) * | 2005-04-08 | 2006-10-12 | Lee Man-Ho L | Systems and methods for dynamically allocating memory for RDMA data transfers |
US7634584B2 (en) | 2005-04-27 | 2009-12-15 | Solarflare Communications, Inc. | Packet validation in virtual network interface architecture |
US7526552B2 (en) | 2005-08-25 | 2009-04-28 | International Business Machines Corporation | Stable, minimal skew resource flow control technique in large scale enterprise storage systems |
KR100769890B1 (en) | 2005-09-29 | 2007-11-02 | 하나로미디어(주) | Method for the treatment of video on demand data capable of compatible performance of storage and buffering of the video on demand data in video on demand service through set top box and set top box for the same |
JP2007102314A (en) * | 2005-09-30 | 2007-04-19 | Fujitsu Ltd | Disk cache-control device |
US7640231B2 (en) | 2005-11-16 | 2009-12-29 | International Business Machines Corporation | Approach based on self-evolving models for performance guarantees in a shared storage system |
WO2007116268A1 (en) * | 2006-03-30 | 2007-10-18 | Nokia Corporation | A node |
JP5028115B2 (en) * | 2006-09-07 | 2012-09-19 | キヤノン株式会社 | Recording apparatus, control method thereof, and program |
US7898956B2 (en) * | 2006-09-12 | 2011-03-01 | Alcatel Lucent | Credit-based rate control for high-speed interfaces |
US20080162855A1 (en) * | 2006-12-29 | 2008-07-03 | Tessil Thomas | Memory Command Issue Rate Controller |
KR100875739B1 (en) * | 2007-02-12 | 2008-12-26 | 삼성전자주식회사 | Apparatus and method for packet buffer management in IP network system |
JP5088145B2 (en) * | 2008-01-10 | 2012-12-05 | 富士通株式会社 | Packet relay apparatus, control method, and packet relay program |
GB2465595B (en) * | 2008-11-21 | 2010-12-08 | Nokia Corp | A method and an apparatus for a gateway |
US8612693B2 (en) * | 2009-03-19 | 2013-12-17 | Qualcomm Incorporated | Optimized transfer of packets in a resource constrained operating environment |
US8516069B1 (en) * | 2009-09-30 | 2013-08-20 | Viasat, Inc. | Optimizer-to-link layer interface using dynamic buffering |
US8780823B1 (en) | 2009-10-08 | 2014-07-15 | Viasat, Inc. | Event driven grant allocation |
US8806071B2 (en) * | 2012-01-25 | 2014-08-12 | Spansion Llc | Continuous read burst support at high clock rates |
US20130215745A1 (en) * | 2012-02-16 | 2013-08-22 | Broadcom Corporation | Dynamic buffer management in high-throughput wireless systems |
US9225668B2 (en) * | 2012-07-31 | 2015-12-29 | Futurewei Technologies, Inc. | Priority driven channel allocation for packet transferring |
US9253800B2 (en) * | 2012-09-17 | 2016-02-02 | Intel Corporation | Apparatuses, systems, and methods for access configurations |
US8989011B2 (en) * | 2013-03-14 | 2015-03-24 | Mellanox Technologies Ltd. | Communication over multiple virtual lanes using a shared buffer |
US10742604B2 (en) | 2013-04-08 | 2020-08-11 | Xilinx, Inc. | Locked down network interface |
US9426124B2 (en) | 2013-04-08 | 2016-08-23 | Solarflare Communications, Inc. | Locked down network interface |
CN103501239B (en) * | 2013-09-13 | 2017-01-04 | 华为技术有限公司 | A kind of port status synchronous method, relevant device and system |
US9853714B2 (en) | 2013-10-11 | 2017-12-26 | Ge Aviation Systems Llc | Data communications network for an aircraft |
US9749256B2 (en) * | 2013-10-11 | 2017-08-29 | Ge Aviation Systems Llc | Data communications network for an aircraft |
US9325449B2 (en) | 2013-12-06 | 2016-04-26 | Intel Corporation | Lane error detection and lane removal mechanism to reduce the probability of data corruption |
US9397792B2 (en) | 2013-12-06 | 2016-07-19 | Intel Corporation | Efficient link layer retry protocol utilizing implicit acknowledgements |
US9182941B2 (en) * | 2014-01-06 | 2015-11-10 | Oracle International Corporation | Flow control with buffer reclamation |
US10057194B1 (en) | 2014-01-07 | 2018-08-21 | Marvell Israel (M.I.S.L) Ltd. | Methods and apparatus for memory resource management in a network device |
US10075381B2 (en) | 2014-01-28 | 2018-09-11 | Mediatek Inc. | Buffer status report and logical channel prioritization for dual connectivity |
US9628382B2 (en) | 2014-02-05 | 2017-04-18 | Intel Corporation | Reliable transport of ethernet packet data with wire-speed and packet data rate match |
US9325641B2 (en) | 2014-03-13 | 2016-04-26 | Mellanox Technologies Ltd. | Buffering schemes for communication over long haul links |
US9584429B2 (en) | 2014-07-21 | 2017-02-28 | Mellanox Technologies Ltd. | Credit based flow control for long-haul links |
US10050896B2 (en) * | 2014-11-14 | 2018-08-14 | Cavium, Inc. | Management of an over-subscribed shared buffer |
US9807117B2 (en) | 2015-03-17 | 2017-10-31 | Solarflare Communications, Inc. | System and apparatus for providing network security |
CN105991431B (en) * | 2015-04-28 | 2019-09-06 | 杭州迪普科技股份有限公司 | Interface message processing method, interface administration module, application module and the network equipment |
US10735331B1 (en) * | 2016-12-09 | 2020-08-04 | Barefoot Networks, Inc. | Buffer space availability for different packet classes |
US10708189B1 (en) | 2016-12-09 | 2020-07-07 | Barefoot Networks, Inc. | Priority-based flow control |
US10412018B1 (en) | 2017-03-21 | 2019-09-10 | Barefoot Networks, Inc. | Hierarchical queue scheduler |
US10686872B2 (en) | 2017-12-19 | 2020-06-16 | Xilinx, Inc. | Network interface device |
US10686731B2 (en) | 2017-12-19 | 2020-06-16 | Xilinx, Inc. | Network interface device |
US11030007B2 (en) * | 2017-12-19 | 2021-06-08 | Western Digital Technologies, Inc | Multi-constraint dynamic resource manager |
US11165720B2 (en) | 2017-12-19 | 2021-11-02 | Xilinx, Inc. | Network interface device |
US10838763B2 (en) | 2018-07-17 | 2020-11-17 | Xilinx, Inc. | Network interface device and host processing device |
US10659555B2 (en) | 2018-07-17 | 2020-05-19 | Xilinx, Inc. | Network interface device and host processing device |
US10951549B2 (en) | 2019-03-07 | 2021-03-16 | Mellanox Technologies Tlv Ltd. | Reusing switch ports for external buffer network |
US11792680B2 (en) * | 2020-07-27 | 2023-10-17 | Qualcomm Incorporated | Systems and methods for managing transmission control protocol (TCP) acknowledgement (ACK) transmissions |
US11558316B2 (en) | 2021-02-15 | 2023-01-17 | Mellanox Technologies, Ltd. | Zero-copy buffering of traffic of long-haul links |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5481736A (en) * | 1993-02-17 | 1996-01-02 | Hughes Aircraft Company | Computer processing element having first and second functional units accessing shared memory output port on prioritized basis |
US5610745A (en) * | 1995-10-26 | 1997-03-11 | Hewlett-Packard Co. | Method and apparatus for tracking buffer availability |
US6240492B1 (en) * | 1998-05-22 | 2001-05-29 | International Business Machines Corporation | Memory interface for functional unit of integrated system allowing access to dedicated memory and shared memory, and speculative generation of lookahead fetch requests |
US6457087B1 (en) * | 1997-12-07 | 2002-09-24 | Conexant Systems, Inc. | Apparatus and method for a cache coherent shared memory multiprocessing system |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4450554A (en) | 1981-08-10 | 1984-05-22 | International Telephone And Telegraph Corporation | Asynchronous integrated voice and data communication system |
US4855996A (en) | 1988-08-03 | 1989-08-08 | American Telephone And Telegraph Company | Time division multiplex arrangement |
NL8900269A (en) | 1989-02-03 | 1990-09-03 | Nederland Ptt | METHOD FOR TRANSMISSION OF TIME-DISTRIBUTED TRANSMISSION CHANNELS OVER A STAGE OF DATA CELLS THROUGH A MULTIPLE OF ASYNCHRONOUS Maintaining a counter reading per transmission channel, which depends on the number of data cells per time. |
US5224092A (en) | 1989-09-05 | 1993-06-29 | Koninklijke Ptt Nederland N.V. | Method for controlling a flow of data cells into a plurality of asynchronously time-divided transmission channels with a single admission switch for transmission in the channels with reference to the state of a plurality of count values |
AU627953B2 (en) | 1989-11-15 | 1992-09-03 | Digital Equipment Corporation | Integrated communications link having dynamically allocatable bandwidth and a protocol for transmission or allocation information over the link |
US5274644A (en) | 1991-11-05 | 1993-12-28 | At&T Bell Laboratories | Efficient, rate-base multiclass access control |
US5276681A (en) | 1992-06-25 | 1994-01-04 | Starlight Networks | Process for fair and prioritized access to limited output buffers in a multi-port switch |
JPH06169320A (en) | 1992-10-02 | 1994-06-14 | Toshiba Corp | Atm cell making device |
JP3516972B2 (en) | 1993-04-22 | 2004-04-05 | 株式会社東芝 | Communications system |
DE69328176T2 (en) | 1993-08-26 | 2000-12-21 | Hewlett Packard Co | Transmission system |
US5455825A (en) | 1994-04-28 | 1995-10-03 | Mitsubishi Electric Research Laboratories | Tag-based scheduling system for digital communication switch |
US5555244A (en) | 1994-05-19 | 1996-09-10 | Integrated Network Corporation | Scalable multimedia network |
US5506844A (en) | 1994-05-20 | 1996-04-09 | Compression Labs, Inc. | Method for configuring a statistical multiplexer to dynamically allocate communication channel bandwidth |
US5455826A (en) | 1994-06-28 | 1995-10-03 | Oezveren; Cueneyt M. | Method and apparatus for rate based flow control |
NL9401150A (en) | 1994-07-12 | 1996-02-01 | Nederland Ptt | Method for presenting on a receiving side a first number of video signals originating from a transmitting side, as well as a system, as well as a transmitter, as well as a network, and also a receiver. |
IT1266895B1 (en) | 1994-07-26 | 1997-01-21 | Cselt Centro Studi Lab Telecom | PROCEDURE FOR THE OPTIMUM ALLOCATION OF RESOURCES FOR THE TRANSPORT OF VARIABLE BAND INFORMATION FLOWS ON NETWORKS IN ATM TECHNIQUE, AND NODE |
US5548587A (en) | 1994-09-12 | 1996-08-20 | Efficient Networks, Inc. | Asynchronous transfer mode adapter for desktop applications |
US5596576A (en) | 1995-11-03 | 1997-01-21 | At&T | Systems and methods for sharing of resources |
US5781624A (en) | 1996-02-16 | 1998-07-14 | Lucent Technologies Inc. | Method for sharing network resources by virtual partitioning |
US5799002A (en) | 1996-07-02 | 1998-08-25 | Microsoft Corporation | Adaptive bandwidth throttling for network services |
US5996013A (en) | 1997-04-30 | 1999-11-30 | International Business Machines Corporation | Method and apparatus for resource allocation with guarantees |
-
2002
- 2002-08-30 US US10/232,051 patent/US7301906B2/en not_active Expired - Fee Related
-
2007
- 2007-10-17 US US11/873,585 patent/US7684326B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5481736A (en) * | 1993-02-17 | 1996-01-02 | Hughes Aircraft Company | Computer processing element having first and second functional units accessing shared memory output port on prioritized basis |
US5610745A (en) * | 1995-10-26 | 1997-03-11 | Hewlett-Packard Co. | Method and apparatus for tracking buffer availability |
US6457087B1 (en) * | 1997-12-07 | 2002-09-24 | Conexant Systems, Inc. | Apparatus and method for a cache coherent shared memory multiprocessing system |
US6240492B1 (en) * | 1998-05-22 | 2001-05-29 | International Business Machines Corporation | Memory interface for functional unit of integrated system allowing access to dedicated memory and shared memory, and speculative generation of lookahead fetch requests |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060101140A1 (en) * | 2004-10-22 | 2006-05-11 | Cisco Technology, Inc. | Ethernet extension for the data center |
US20060251067A1 (en) * | 2004-10-22 | 2006-11-09 | Cisco Technology, Inc., A Corporation Of California | Fibre channel over ethernet |
US8565231B2 (en) | 2004-10-22 | 2013-10-22 | Cisco Technology, Inc. | Ethernet extension for the data center |
US8238347B2 (en) | 2004-10-22 | 2012-08-07 | Cisco Technology, Inc. | Fibre channel over ethernet |
US9246834B2 (en) | 2004-10-22 | 2016-01-26 | Cisco Technology, Inc. | Fibre channel over ethernet |
US8842694B2 (en) | 2004-10-22 | 2014-09-23 | Cisco Technology, Inc. | Fibre Channel over Ethernet |
US20090252038A1 (en) * | 2004-10-22 | 2009-10-08 | Cisco Technology, Inc. | Fibre channel over ethernet |
US8160094B2 (en) | 2004-10-22 | 2012-04-17 | Cisco Technology, Inc. | Fibre channel over ethernet |
US7969971B2 (en) | 2004-10-22 | 2011-06-28 | Cisco Technology, Inc. | Ethernet extension for the data center |
US8792352B2 (en) | 2005-10-11 | 2014-07-29 | Cisco Technology, Inc. | Methods and devices for backward congestion notification |
US7961621B2 (en) | 2005-10-11 | 2011-06-14 | Cisco Technology, Inc. | Methods and devices for backward congestion notification |
US20070081454A1 (en) * | 2005-10-11 | 2007-04-12 | Cisco Technology, Inc. A Corporation Of California | Methods and devices for backward congestion notification |
US8743738B2 (en) | 2007-02-02 | 2014-06-03 | Cisco Technology, Inc. | Triple-tier anycast addressing |
US20080186968A1 (en) * | 2007-02-02 | 2008-08-07 | Cisco Technology, Inc. | Triple-tier anycast addressing |
US8259720B2 (en) | 2007-02-02 | 2012-09-04 | Cisco Technology, Inc. | Triple-tier anycast addressing |
US8149710B2 (en) * | 2007-07-05 | 2012-04-03 | Cisco Technology, Inc. | Flexible and hierarchical dynamic buffer allocation |
US20090010162A1 (en) * | 2007-07-05 | 2009-01-08 | Cisco Technology, Inc. | Flexible and hierarchical dynamic buffer allocation |
US8121038B2 (en) | 2007-08-21 | 2012-02-21 | Cisco Technology, Inc. | Backward congestion notification |
US8804529B2 (en) | 2007-08-21 | 2014-08-12 | Cisco Technology, Inc. | Backward congestion notification |
US20090052326A1 (en) * | 2007-08-21 | 2009-02-26 | Cisco Technology, Inc., A Corporation Of California | Backward congestion notification |
US8874808B2 (en) | 2010-09-07 | 2014-10-28 | International Business Machines Corporation | Hierarchical buffer system enabling precise data delivery through an asynchronous boundary |
Also Published As
Publication number | Publication date |
---|---|
US20030117958A1 (en) | 2003-06-26 |
US20080037428A1 (en) | 2008-02-14 |
US7301906B2 (en) | 2007-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7684326B2 (en) | Methods and structures for improved buffer management and dynamic adaptation of flow control status in high-speed communication networks | |
US20030026267A1 (en) | Virtual channels in a network switch | |
US6167452A (en) | Joint flow control mechanism in a telecommunications network | |
US6108306A (en) | Apparatus and method in a network switch for dynamically allocating bandwidth in ethernet workgroup switches | |
US7007095B2 (en) | Method and apparatus for unscheduled flow control in packet form | |
US7002911B1 (en) | Flow control mechanism | |
US7573896B2 (en) | Method and apparatus for generic interface, packet cut-through, overbooking, queue concatenation, and logical identification priority for a system packet interface device | |
AU703410B2 (en) | Traffic management and congestion control for ATM | |
US7406041B2 (en) | System and method for late-dropping packets in a network switch | |
US7948882B2 (en) | Dual leaky bucket flow control method and system | |
US20140348177A1 (en) | Managing flow control buffer | |
CN111817977B (en) | Network congestion control method and device | |
US7912078B2 (en) | Credit based flow control in an asymmetric channel environment | |
US20050013267A1 (en) | Apparatus and method for allocating channel time to applications in wireless PAN | |
CN108540380A (en) | More subflow network transfer methods and device | |
WO1997003549A2 (en) | Prioritized access to shared buffers | |
CN108199976B (en) | Switching equipment, switching system and data sending method of RapidIO network | |
EP1491995B1 (en) | Dual-port functionality for a single-port cell memory device | |
US7411969B2 (en) | Method, system, and apparatus for a credit based flow control in a computer system | |
EP1116362A1 (en) | Use of priorities defined by a customer in a sima network | |
Woo et al. | Multichannel scheduling for communication of pre-orchestrated multimedia information (homogeneous channels case) | |
Matveeva et al. | QoS mechanisms in SpaceFibre and RapidIO: SpaceWire networks and protocols, long paper | |
JPH10257071A (en) | Atm network communication system | |
US7483425B2 (en) | Method for reducing the amount of needed memory in a TDM switch system | |
JPH11510008A (en) | Minimum guaranteed cell rate method and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: LSI CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:NATION, GEORGE WAYNE;GURUMANI, SENTHIL;DELP, GARY SCOTT;REEL/FRAME:019973/0516;SIGNING DATES FROM 20020828 TO 20020829 Owner name: LSI CORPORATION,CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:NATION, GEORGE WAYNE;GURUMANI, SENTHIL;DELP, GARY SCOTT;SIGNING DATES FROM 20020828 TO 20020829;REEL/FRAME:019973/0516 |
|
AS | Assignment |
Owner name: LSI CORPORATION, CALIFORNIA Free format text: MERGER;ASSIGNOR:LSI SUBSIDIARY CORP.;REEL/FRAME:020548/0977 Effective date: 20070404 Owner name: LSI CORPORATION,CALIFORNIA Free format text: MERGER;ASSIGNOR:LSI SUBSIDIARY CORP.;REEL/FRAME:020548/0977 Effective date: 20070404 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AG Free format text: PATENT SECURITY AGREEMENT;ASSIGNORS:LSI CORPORATION;AGERE SYSTEMS LLC;REEL/FRAME:032856/0031 Effective date: 20140506 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LSI CORPORATION;REEL/FRAME:035390/0388 Effective date: 20140814 |
|
AS | Assignment |
Owner name: LSI CORPORATION, CALIFORNIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031);ASSIGNOR:DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT;REEL/FRAME:037684/0039 Effective date: 20160201 Owner name: AGERE SYSTEMS LLC, PENNSYLVANIA Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031);ASSIGNOR:DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT;REEL/FRAME:037684/0039 Effective date: 20160201 |
|
AS | Assignment |
Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001 Effective date: 20160201 Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:037808/0001 Effective date: 20160201 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD., SINGAPORE Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041710/0001 Effective date: 20170119 Owner name: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD Free format text: TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS;ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:041710/0001 Effective date: 20170119 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552) Year of fee payment: 8 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE Free format text: MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:047196/0687 Effective date: 20180509 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 9/5/2018 PREVIOUSLY RECORDED AT REEL: 047196 FRAME: 0687. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:047630/0344 Effective date: 20180905 |
|
AS | Assignment |
Owner name: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITE Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 47630 FRAME: 344. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT;ASSIGNOR:AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.;REEL/FRAME:048883/0267 Effective date: 20180905 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20220323 |