IP Library Granted Patent US 7,719,964
Granted Patent B2
US 7,719,964 · App. 10/918,771 · Granted May 18, 2010

Data credit pooling for point-to-point links

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 7,719,964
App. No.
10/918,771
Granted
May 18, 2010
Kind
B2
Abstract

A system includes a first device and a second device interconnected with a point-to-point link and operable to transmit data to each other via the point-to-point link. The first device is operable to provide data credits to the second device which facilitate transmission of the data to the first device via the point-to-point link in a plurality of virtual channels. First ones of the data credits are derived from a plurality of shared data credits each of which is operable to facilitate transmission of the data in any of the virtual channels. Second ones of the data credits include a plurality of dedicated data credits each of which is operable to facilitate transmission of the data in a corresponding one of the virtual channels.

Claims (22)

1. A data processing system comprising a first device and a second device interconnected with a point-to-point link and operable to transmit data to each other via the point-to-point link, the first device being operable to provide data credits to the second device which facilitate transmission of the data to the first device via the point-to-point link in a plurality of virtual channels, wherein the data credits correspond to a plurality of buffers in the first device for storing the data, first ones of the data credits being derived from a plurality of shared data credits each of which is operable to facilitate transmission of the data in any of the virtual channels, a first number of the buffers being allocated as shared buffers for use in conjunction with the shared data credits, second ones of the data credits comprising a plurality of dedicated data credits each of which is operable to facilitate transmission of the data in a corresponding one of the virtual channels, a second number of the buffers being allocated to each virtual channel for use in conjunction with the dedicated data credits, wherein the first number of buffers is determined with reference to a first time required to consume data from one of the shared buffers and return a corresponding one of the shared data credits to a shared pool, further wherein the second number of buffers is determined with reference to a second time required to transfer a packet from the second device to the first device and return a corresponding one of the dedicated data credits to the second device, and wherein the first device is operable to transmit all of the dedicated data credits to the second device and retain at least some of the shared data credits upon initialization of the point-to-point link, and wherein the first device is operable to designate a particular one of the shared data credits as corresponding to a first one of the virtual channels in response to an indication that a data packet will be transmitted via the first virtual channel.

2. The system of claim 1 wherein the first device is operable to transmit the particular shared data credit to the second device if space in the shared buffers in the first device is available.

3. The system of claim 1 wherein the second device is operable to employ the dedicated data credits to the first device to facilitate transmission of the data to the first device in the corresponding virtual channels, the first device being operable to subsequently release the dedicated data credits to the second device only after the data are consumed from buffers in the first device indicating the corresponding virtual channels.

4. The system of claim 1 wherein at least one of the virtual channels transmits only requests and at least one other of the virtual channels transmits only responses to requests.

5. The system of claim 1 , a total number of the buffers corresponds to a latency defined by a loop including the first and second devices and the point-to-point link.

6. The system of claim 5 wherein the total number of buffers is sufficient to allow the point-to-point link to operate at full bandwidth.

7. The system of claim 5 wherein the number of the dedicated data credits is greater than or equal to a minimum number necessary to avoid a deadlock condition.

8. The system of claim 1 wherein the data are transmitted via the point-to-point link and the virtual channels according to a point-to-point protocol.

9. The system of claim 8 wherein the point-to-point protocol comprises the HyperTransport™ protocol.

10. The system of claim 1 wherein the second device comprises a processing node in a multi-processor computing system.

11. The system of claim 10 wherein the first device comprises an interconnection controller operable to interconnect multiple multi-processor clusters in the computing system.

12. The system of claim 10 wherein the first device comprises a cache coherence controller operable to facilitate cache coherency among a plurality of processing nodes in the computing system.

13. The system of claim 10 wherein the first device comprises a probe filtering unit operable to reduce probe traffic in the system.

14. The system of claim 1 wherein the second device is also operable to provide data credits to the first device which facilitate transmission of the data to the second device via the point-to-point link in the plurality of virtual channels, third ones of the data credits being derived from a second plurality of shared data credits each of which is operable to facilitate transmission of the data in any of the virtual channels, fourth ones of the data credits comprising a second plurality of dedicated data credits each of which is operable to facilitate transmission of the data in a corresponding one of the virtual channels.

15. A first device for use in a system comprising the first device and a second device interconnected with a point-to-point link, the second device being operable to transmit data to the first device via the point-to-point link, the first device being operable to provide data credits to the second device which facilitate transmission of the data to the first device via the point-to-point link in a plurality of virtual channels, the data credits corresponding to a plurality of buffers in the first device for storing the data, first ones of the data credits being derived from a plurality of shared data credits each of which is operable to facilitate transmission of the data in any of the virtual channels, a first number of the buffers being allocated as shared buffers for use in conjunction with the shared data credits, second ones of the data credits comprising a plurality of dedicated data credits each of which is operable to facilitate transmission of the data in a corresponding one of the virtual channels, a second number of the buffers being allocated to each virtual channel for use in conjunction with the dedicated data credits, wherein the first number of buffers is determined with reference to a first time required to consume data from one of the shared buffers and return a corresponding one of the shared data credits to a shared pool, further wherein the second number of buffers is determined with reference to a second time required to transfer a packet from the second device to the first device and return a corresponding one of the dedicated data credits to the second device, and wherein the first device is operable to transmit all of the dedicated data credits to the second device and retain at least some of the shared data credits upon initialization of the point-to-point link, and wherein the first device is further operable to designate a particular one of the shared data credits as corresponding to a first one of the virtual channels in response to an indication that a data packet will be transmitted via the first virtual channel.

16. An integrated circuit comprising the first device of claim 15 .

17. The integrated circuit of claim 16 wherein the integrated circuit comprises an application-specific integrated circuit.

18. At least one computer-readable non-transitory storage medium having data structures stored therein representative of the first device of claim 15 .

19. The at least one computer-readable non-transitory storage medium of claim 18 wherein the data structures comprise a simulatable representation of the first device.

20. The at least one computer-readable non-transitory storage medium of claim 19 wherein the simulatable representation comprises a netlist.

21. The at least one computer-readable non-transitory storage medium of claim 18 wherein the data structures comprise a code description of the first device.

22. The at least one computer-readable non-transitory storage medium of claim 21 wherein the code description corresponds to a hardware description language.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2019
From: U.S. BANK NATIONAL ASSOCIATION, SOLELY AS NOTES COLLATERAL AGENT
To: SANMINA CORPORATION; HADCO CORPORATION; HADCO SANTA CLARA; SCI TECHNOLOGY; SENSORWISE, INC.
Reel/Frame 049378/0927 →
SECURITY INTEREST Recorded Aug 3, 2018
From: SANMINA CORPORATION
To: U.S. BANK NATIONAL ASSOCIATION, NOT IN ITS INDIVIDUAL CAPACITY BUT SOLELY AS NOTES COLLATERAL AGENT
Reel/Frame 046797/0063 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2018
From: MEMORY INTEGRITY, LLC
To: SANMINA CORPORATION
Reel/Frame 046249/0843 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2013
From: SANMINA CORPORATION
To: MEMORY INTEGRITY, LLC
Reel/Frame 030585/0980 →
MERGER Recorded Nov 28, 2012
From: SANMINA-SCI CORPORATION
To: SANMINA CORPORATION
Reel/Frame 029368/0472 →
MERGER Recorded Jul 27, 2012
From: NEWISYS, INC.
To: SANMINA-SCI CORPORATION
Reel/Frame 028652/0891 →
RELEASE OF SECURITY INTEREST Recorded Nov 25, 2008
From: CITIBANK, N.A.
To: HADCO SANTA CLARA, INC.; HADCO CORPORATION; SCIMEX, INC.; SANMINA-SCI SYSTEMS HOLDINGS, INC.; SCI TECHNOLOGY, INC.; SANMINA-SCI CORPORATION
Reel/Frame 021890/0312 →
PLEDGE AND SECURITY AGREEMENT Recorded Jan 3, 2005
From: SANMINA-SCI CORPORATION; HADCO CORPORATION; HADCO SANTA CLARA, INC.; SCI TECHNOLOGY, INC.; VIKING INTERWORKS INC.; COMPATIBLE MEMORY, INC.; SCI SYSTEMS, INC.; SANMINA-SCI SYSTEMS (ALABAMA) INC.; SANMINA-SCI SYSTEMS HOLDINGS, INC.; INTERAGENCY, INC.; SANMINA-SCI SYSTEMS ENCLOSURES (DENTON) INC.; SCIMEX, INC.; NEWISYS, INC.; SANMINA-SCI ENCLOSURES USA INC.; SCI PLANT NO. 5, L.L.C.; SCI PLANT NO. 22, L.L.C.; SANMINA GENERAL, L.L.C.; SANMINA LIMITED, L.L.C.; SANMINA-SCI, LLC; SANMINA TEXAS, L.P.
To: CITIBANK, N.A.
Reel/Frame 016097/0729 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2004
From: MORTON, ERIC
To: NEWISYS, INC.
Reel/Frame 015688/0961 →