IP Library Granted Patent US 10,002,096
Granted Patent B1
US 10,002,096 · App. 15/143,754 · Granted Jun 19, 2018

Flow control in a parallel processing environment

Inventor: David M. Wentzlaff (Princeton Junction, NJ)
Assignee: Mellanox Technologies Ltd.
G06F13/4022G06F13/1673G06F13/4291
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 10,002,096
App. No.
15/143,754
Granted
Jun 19, 2018
Kind
B1
Abstract

The flow of data in an integrated circuit is controlled. The integrated circuit comprising a plurality of tiles, each tile comprising a processor, a switch including switching circuitry to forward data over data paths from other tiles to the processor and to switches of other tiles, and a receive buffer to store data from the switch. At a first tile, a count is maintained of data that has been sent to a second tile without receiving an acknowledgement up to a credit limit. At the second tile, data that arrives from the first tile when the receive buffer is full is sent to a memory outside of the tile.

Claims (37)

1. A method for controlling the flow of data in an integrated circuit, the integrated circuit comprising a plurality of tiles, each tile comprising a processor, a switch including switching circuitry to forward data over data paths from other tiles to the processor and to switches of other tiles, and a receive buffer having a first size and configured to store data from the switch, the method comprising:

pre-allocating buffering space in buffer memory at endpoints of the integrated circuit, with each tile allocated a certain amount of buffering space in the buffer memory;

at a first tile, maintaining a count of data that has been sent to a second tile without receiving an acknowledgement up to a credit limit, with the credit limit having a second size; and

at the second tile, sending data that arrives from the first tile when the receive buffer is full to the pre-allocated buffering space in the buffer memory, with the second size of the credit limit being larger in size than the first size of the receive buffer.

2. The method of claim 1 , further comprising:

decrementing an in-tile counter until all buffer space is used;

stalling by a dynamic network coupled to the buffer memory sending data to the buffer memory until an acknowledgement is received from the second tile; and

sending the acknowledgment from the second tile to the first tile after all buffer space in buffer memory has been used.

3. The method of claim 1 , wherein the acknowledgement is sent from the second tile after removing a plurality of packets from the receive buffer.

4. The method of claim 3 , wherein the acknowledgement is sent from the second tile after receiving from the first tile, a packet that includes an acknowledgement request.

5. An integrated circuit comprising:

a plurality of tiles, each tile comprising

a processor;

a receive buffer having a plurality of buffer entries; and

a switch, with the switch including switching circuitry to forward data over data paths from other tiles to the processor and to switches of other tiles; and

with at least some of the receive buffers having a buffer size that is large enough to store at least B=P·N·S bits, where P is the number of tiles in the integrated circuit, N is the maximum number of outstanding data units that a tile can send without receiving an acknowledgement, and S is the size of a data unit in bits.

6. The integrated circuit of claim 5 , wherein the data unit comprises a word of data that is short enough to be transferred between adjacent tiles in a single clock cycle.

7. The integrated circuit of claim 5 , wherein the data unit comprises a packet that comprises a plurality of data words, each data word being short enough to be transferred between adjacent tiles in a single clock cycle.

8. The integrated circuit of claim 5 , wherein a sending tile of the plurality of tiles maintains a count of how many buffer entries are free for the sending tile to use for particular flow of data to a particular receiving tile of the plurality of tiles, with the sending tile decrementing the count until the count reaches a value indicating all of the buffer entries has been used.

9. The integrated circuit of claim 5 , further comprising:

a memory controller.

10. A method for controlling the flow of data in an integrated circuit, the integrated circuit comprising a plurality of tiles, each tile comprising a processor, a switch including switching circuitry to forward data over data paths from other tiles to the processor and to switches of other tiles, and a receive buffer having a size, the receive buffer to store data from the switch, the method comprising:

at a first tile, maintaining a count of data that has been sent to a receive buffer of a second tile without receiving an acknowledgement up to a credit limit;

upon reaching the credit limit, stalling sending data to the buffer until an acknowledgement is received; and

sending an acknowledgment from the second tile to the first tile after the second tile receives an acknowledgement request from the first tile, with the acknowledgement request being a tag in a header portion of a packet sent from the first tile.

11. The method of claim 10 , wherein the second tile sends an acknowledgement to the first tile.

12. The method of claim 11 , wherein the acknowledgement is for a plurality of data words having been processed.

13. The method of claim 10 , wherein the acknowledgement request is transmitted from the first tile while the difference between the maintained count and the credit limit is large enough for the acknowledgment from the second tile to arrive at the first tile before the credit limit is reached.

14. An integrated circuit, comprises:

a plurality of tiles comprising a processor, a switch including switching circuitry, to forward data over data paths from other tiles via a mesh network among the tiles and a receive buffer having a first size and configured to store data from a given switch of a given tile;

a buffer memory coupled by a dynamic network at endpoints of the integrated circuit, with the buffer memory having pre-allocate buffer spaces that are allocated to each of the plural tiles; and for first one and a second one of the tiles,

the first one of the tiles configured to maintain a count of data that has been sent to a second one of the tiles without receiving an acknowledgement up to a credit limit, with the credit limit having a second size; and

the second tile configured to receive the data sent from the first tile, and send the data received from the first tile when the receive buffer is full to the pre-allocated buffering space in the buffer memory, with the second size of the credit limit being larger in size than the first size of the receive buffer.

15. The integrated circuit of claim 14 , wherein the second tile further comprises:

an in-tile counter that is decremented until all buffer space in buffer memory is used, and in response, the dynamic network stalls sending data to the buffer memory until an acknowledgement is received from the second tile.

16. The integrated circuit of claim 14 , wherein the acknowledgement is sent from the second tile after removing a plurality of packets from the receive buffer.

17. The integrated circuit of claim 16 , wherein the acknowledgement is sent from the second tile after receiving from the first tile, a packet that includes an acknowledgement request.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 42962/0859 Recorded Jul 13, 2018
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MELLANOX TECHNOLOGIES, LTD.; MELLANOX TECHNOLOGIES TLV LTD.; MELLANOX TECHNOLOGIES SILICON PHOTONICS INC.
Reel/Frame 046551/0459 →
SECURITY INTEREST Recorded Jun 23, 2017
From: MELLANOX TECHNOLOGIES, LTD.; MELLANOX TECHNOLOGIES TLV LTD.; MELLANOX TECHNOLOGIES SILICON PHOTONICS INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 042962/0859 →
DIVIDEND DECLARATION FROM EZCHIP SEMICONDUCTOR INC. TO THE STOCKHOLDER OF RECORD ON 6/2/2015 (EZCHIP INC., A DELAWARE CORPORATION) Recorded Feb 16, 2017
From: EZCHIP SEMICONDUCTOR INC.
To: EZCHIP, INC.
Reel/Frame 041736/0013 →
PURCHASE AGREEMENT Recorded Feb 16, 2017
From: EZCHIP, INC.
To: EZCHIP SEMICONDUCTOR LTD.
Reel/Frame 041736/0151 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 16, 2017
From: EZCHIP SEMICONDUCTOR LTD.
To: EZCHIP TECHNOLOGIES, LTD.
Reel/Frame 041736/0253 →
MERGER Recorded Feb 16, 2017
From: EZCHIP TECHNOLOGIES LTD.
To: EZCHIP SEMICONDUCTOR LTD.
Reel/Frame 041736/0321 →
MERGER Recorded Feb 16, 2017
From: EZCHIP SEMICONDUCTOR LTD.
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 041870/0455 →
MERGER Recorded Feb 16, 2017
From: TILERA CORPORATION
To: EZCHIP SEMICONDUCTOR INC.
Reel/Frame 041735/0792 →
Continuity (5)
Continuation 14159608 · Jan 21, 2014
Continuation 13229294 · Sep 9, 2011
Continuation 11313895 · Dec 21, 2005
Provisional Application 60665563 · Mar 25, 2005
Provisional Application 60750149 · Dec 13, 2005
Cited By (2)
US 12,244,671 US 12,556,486