IP Library Granted Patent US 8,295,293
Granted Patent B1
US 8,295,293 · App. 12/639,938 · Granted Oct 23, 2012

Predictive flow control for a packet switch

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,295,293
App. No.
12/639,938
Granted
Oct 23, 2012
Kind
B1
Abstract

A packet switch issues credits to a link partner based on credit values and updates the credit values to indicate credits consumed by the link partner based on packets received from the link partner by the ingress port. Additionally, the packet switch selects credit threshold values corresponding to a transmission period of imminent credit starvation of the link partner and compares the updated credit values with the credit threshold values. The packet switch issues additional credits to the link partner when at least one of the updated credit values has reached a corresponding credit threshold value. In some embodiments, the packet switch also issues additional credits to the link partner during idle transmission periods.

Claims (36)

1. An integrated circuit device comprising a packet switch having an ingress port and an egress port, the packet switch comprising:

a credit control circuit coupled to the ingress port and configured to issue initial credits to a link partner based on credit values of the ingress port and update the credit values of the ingress port to indicate credits consumed by the link partner as packets are received from the link partner at the ingress port, select credit threshold values corresponding to a transmission period of imminent credit starvation for the link partner, compare the updated credit values of the ingress port with the credit threshold values, and when at least one of the updated credit values of the ingress port has reached a corresponding credit threshold value issue additional credits to the link partner by transmitting a flow control update packet indicating the additional credits issued to the link partner, and wherein the transmission period of imminent credit starvation immediately precedes a subsequent transmission period in which credit starvation could occur in the link partner without the link partner receiving at least one additional credit in the subsequent transmission period.

2. The integrated circuit device of claim 1 , wherein the flow control update packet contains a header credit value indicating a number of header credits and a data credit value indicating a number of data credits, and the ingress port is further configured to transmit the flow control update packet to the link partner.

3. The integrated circuit device of claim 1 , wherein the credit control circuit is further configured such that, after issuing the initial credits to the link partner, additional credits are only issued to the link partner when at least one of the updated credit values of the ingress port has reached a corresponding credit threshold value.

4. The integrated circuit device of claim 1 , wherein the credit control circuit is further configured to identify idle transmission periods and issue additional credits to the link partner by generating flow control update packets for transmission to the link partner in the idle transmission periods.

5. The integrated circuit device of claim 4 , wherein the credit control circuit is further configured such that, after issuing the initial credits to the link partner, credits are only issued to the link partner in the idle transmission periods or when at least one of the updated credit values of the ingress port has reached a corresponding credit threshold value.

6. The integrated circuit device of claim 1 , wherein each of the credit threshold values is based on a round trip latency including both a packet latency for receiving a packet from the link partner at the ingress port and a packet latency for transmitting a flow control update packet from the ingress port to the link partner.

7. The integrated circuit device of claim 1 , wherein the credit control circuit is further configured to allocate credits for the ingress port by allocating a number of credits to transaction types for packets, the number of credits allocated to each of the transaction types including both a header credit indicating an available storage capacity of the ingress port for storing a packet header of a packet having the transaction type and a data credit indicating an available storage capacity of the ingress port for storing a data segment of a data payload of a packet having the transaction type.

8. The integrated circuit device of claim 7 , wherein the transaction types include posted-transactions, non-posted transactions, and completion transactions.

9. The integrated circuit device of claim 1 , wherein the packet switch does not include a timing circuit for determining when flow control update packets are sent to the link partner and the packet switch does not transmit flow control update packets to the link partner at timed intervals.

10. An integrated circuit device comprising a packet switch having an ingress port and an egress port, the packet switch comprising:

a credit control circuit coupled to the ingress port and configured to allocate credits for the ingress port by allocating credits to transaction types for packets, the credits allocated to each of the transaction types including both a header credit indicating an available storage capacity of the ingress port for storing a packet header of a packet having the transaction type and a data credit indicating an available storage capacity of the ingress port for storing a data segment of a data payload of a packet having the transaction type, the credit control circuit further configured to issue initial credits to a link partner based on credit values of the ingress port and update the credit values of the ingress port to indicate credits consumed by the link partner as packets are received from the link partner at the ingress port, select credit threshold values corresponding to a transmission period of imminent credit starvation for the link partner, compare the updated credit values of the ingress port to the credit threshold values, and when at least one of the updated credit values of the ingress port has reached a corresponding credit threshold value issue additional credits to the link partner by transmitting a flow control update packet indicating the additional credits issued to the link partner, and wherein the transmission period of imminent credit starvation immediately precedes a subsequent transmission period in which credit starvation could occur in the link partner without the link partner receiving at least one additional credit in the subsequent transmission period.

11. The integrated circuit device of claim 10 , wherein the flow control update packet contains a header credit value indicating a number of header credits and a data credit value indicating a number of data credits, and the ingress port is further configured to transmit the flow control update packet to the link partner.

12. The integrated circuit device of claim 10 , wherein the credit control circuit is further configured such that, after issuing the initial credits to the link partner, additional credits are only issued to the link partner when at least one of the updated credit values of the ingress port has reached a corresponding credit threshold value.

13. The integrated circuit device of claim 10 , wherein the credit control circuit is further configured to identify idle transmission periods and issue additional credits to the link partner by generating flow control update packets for transmission to the link partner in the idle transmission periods.

14. The integrated circuit device of claim 13 , wherein the credit control circuit is further configured such that, after issuing the initial credits to the link partner, credits are only issued to the link partner in the idle transmission periods or when at least one of the updated credit values of the ingress port has reached a corresponding credit threshold value.

15. The integrated circuit device of claim 10 , wherein each of the credit threshold values is based on a round trip latency including both a packet latency for receiving a packet from the link partner at the ingress port and a packet latency for transmitting a flow control update packet from the ingress port to the link partner.

16. The integrated circuit device of claim 10 , wherein the transaction types include posted-transactions, non-posted transactions, and completion transactions.

17. The integrated circuit device of claim 10 , wherein the packet switch does not include a timing circuit for determining when flow control update packets are sent to the link partner and the packet switch does not transmit flow control update packets to the link partner at timed intervals.

18. The integrated circuit device of claim 10 , wherein the link partner is configured to determine, based on the initial credits issued to the link partner and the additional credits issued to the link partner, whether the ingress port has a storage capacity for storing a packet to be transmitted from the link partner to the ingress port.

19. A method of controlling packet flow in a packet switch having an ingress port and an egress port, the method comprising:

issuing initial credits to a link partner based on credit values of the ingress port;

updating the credit values of the ingress port to indicate credits consumed by the link partner as packets are received from the link partner at the ingress port;

selecting credit threshold values corresponding to a transmission period of imminent credit starvation of the link partner, wherein the transmission period of imminent credit starvation immediately precedes a subsequent transmission period in which credit starvation could occur in the link partner without the link partner receiving at least one additional credit in the subsequent transmission period;

comparing the updated credit values of the ingress port with the credit threshold values; and

issuing additional credits to the link partner when at least one of the updated credit values of the ingress port has reached a corresponding credit threshold value by generating a flow control update packet indicating the additional credits issued to the link partner and transmitting the flow control update packet to the link partner.

20. The method of claim 19 , wherein the flow control update packet contains a header credit value indicating a number of header credits and a data credit value indicating a number of data credits, and transmitting the flow control update packet to the link partner comprises transmitting the flow control packet to the link partner.

21. The method of claim 19 , wherein, after issuing the initial credits to the link partner, additional credits are only issued to the link partner when at least one of the updated credit values of the ingress port has reached a corresponding credit threshold value.

22. The method of claim 19 , further comprising:

identifying idle transmission periods; and

issuing additional credits to the link partner by transmitting flow control update packets to the link partner in the idle transmission periods.

23. The method of claim 22 , wherein, after issuing the initial credits to the link partner, credits are only issued to the link partner in the idle transmission periods or when at least one of the updated credit values has reached a corresponding credit threshold value.

24. The method of claim 19 , wherein each of the credit threshold values is based on a round trip latency including both a packet latency for receiving a packet from the link partner at the ingress port and a packet latency for transmitting a flow control update packet from the ingress port to the link partner.

25. The method of claim 21 , further comprising allocating credits for the ingress port by allocating credits to transaction types for packets, the credits allocated to each of the transaction types including both a header credit indicating an available storage capacity of the ingress port for storing a packet header of a packet having the transaction type and a data credit indicating an available storage capacity of the ingress port for storing a data segment of a data payload of a packet having the transaction type.

26. The method of claim 25 , wherein the transaction types include posted-transactions, non-posted transactions, and completion transactions.

27. The method of claim 19 , wherein a timing circuit is not utilized for determining when flow control update packets are sent to the link partner, and flow control update packets are not transmitted to the link partner at timed intervals.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded May 29, 2018
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: MICROSEMI STORAGE SOLUTIONS, INC.; MICROSEMI STORAGE SOLUTIONS (U.S.), INC.
Reel/Frame 046251/0271 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2016
From: PMC-SIERRA US, INC.
To: MICROSEMI STORAGE SOLUTIONS (US), INC.
Reel/Frame 038016/0493 →
PATENT SECURITY AGREEMENT Recorded Feb 3, 2016
From: MICROSEMI STORAGE SOLUTIONS, INC. (F/K/A PMC-SIERRA, INC.); MICROSEMI STORAGE SOLUTIONS (U.S.), INC. (F/K/A PMC-SIERRA US, INC.)
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037689/0719 →
RELEASE OF SECURITY INTEREST Recorded Feb 1, 2016
From: BANK OF AMERICA, N.A.
To: PMC-SIERRA, INC.; PMC-SIERRA US, INC.; WINTEGRA, INC.
Reel/Frame 037675/0129 →
SECURITY INTEREST IN PATENTS Recorded Aug 6, 2013
From: PMC-SIERRA, INC.; PMC-SIERRA US, INC.; WINTEGRA, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 030947/0710 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING AND RECEIVING PARTIES PREVIOUSLY RECORDED ON REEL 030832 FRAME 0604. ASSIGNOR(S) HEREBY CONFIRMS THE CONVEYING PARTY DATA: INTEGRATED DEVICE TECHNOLOGY, INC. TECEIVING: PMC-SIERRA US, INC. Recorded Jul 23, 2013
From: INTEGRATED DEVICE TECHNOLOGY, INC.
To: PMC-SIERRA US, INC.
Reel/Frame 030919/0040 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2013
From: PMC-SIERRA US, INC.
To: INTEGRATED DEVICE TECHNOLOGY, INC.
Reel/Frame 030832/0604 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2009
From: BROWN, DAVID ALAN
To: INTEGRATED DEVICE TECHNOLOGY, INC.
Reel/Frame 023665/0187 →