IP Library Granted Patent US 9,329,798
Granted Patent B1
US 9,329,798 · App. 14/159,608 · Granted May 3, 2016

Flow control in a parallel processing environment

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 9,329,798
App. No.
14/159,608
Granted
May 3, 2016
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 (42)

1. A method for minimizing deadlock instances for controlling flow of data in an integrated circuit that includes 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, the method comprising:

maintaining for a first tile a count of data sent to a receive buffer of a second, different tile, with the count maintained up to an amount of data that corresponds to a credit limit of data that can be sent from the first tile without receiving an acknowledgement from the second tile; and

sending by the second tile data that arrives from the first tile to a memory outside of the second tile when the receive buffer of the second tile is full.

2. The method of claim 1 , wherein the credit limit is larger than the size of the receive buffer at the second tile.

3. The method of claim 1 , further comprising sending an acknowledgment from the second tile to the first tile after the second tile removes data from the receive buffer of the second tile.

4. The method of claim 1 , wherein the data is in the form of packets and an acknowledgement is sent after removing a plurality of packets from the receive buffer of the second tile.

5. The method of claim 1 , wherein the data is in the form of packets and an acknowledgement is sent after receiving a packet that includes an acknowledgement request.

6. An integrated circuit comprising:

a plurality of tiles, each tile comprising

a processor; and

a switch including switching circuitry to forward data over data paths from other tiles in the integrated circuit to the processor of a tile and to switches of other tiles;

a buffer; and

a peripheral device coupled to a switch of at least one of the plurality of tiles, the peripheral device including memory that is large enough to store at least a number of bits B, where B is given by B=P·N·S and, 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.

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

8. The integrated circuit of claim 6 , 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.

9. The integrated circuit of claim 6 , wherein the peripheral device comprises an input/output device.

10. The integrated circuit of claim 6 , wherein the peripheral device comprises a memory controller.

11. An integrated circuit comprising:

a plurality of tiles, each tile comprising

a processor; and

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;

a peripheral device coupled to a switch of at least one of the plurality of tiles,

with a first tile having the processor of the first tile configured to:

maintain for the first tile a count of data sent to a receive buffer of a second, different tile, with the count maintained up to an amount of data that corresponds to a credit limit of data that can be sent from the first tile without the first tile receiving an acknowledgement from the second tile; and

send by the second tile data that arrives from the first tile to a memory outside of the second tile when the receive buffer of the second tile is full.

12. The integrated circuit of claim 11 , wherein the credit limit is larger than the size of the receive buffer at the second tile.

13. The integrated circuit of claim 11 wherein the processor of the first tile is further configured to:

send an acknowledgment from the second tile to the first tile after the second tile removes data from the receive buffer.

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

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

16. The integrated circuit of claim 15 , wherein the acknowledgement request is included in a packet transmitted from the first tile to the second tile.

17. The integrated circuit of claim 16 , wherein the acknowledgement request is in a header of the packet.

18. The method of 1 further comprising:

sending data from the first tile to the second tile; and

configuring the first tile with the credit limit value of the receive buffer in the second tile.

19. The integrated circuit of claim 6 , for configured to:

send data from a first one of the plurality of tiles to a second one of the plurality of tiles; and

configure the first tile with the credit limit value of the receive buffer in the second tile.

20. The integrated circuit of claim 11 , for configured to:

send data from the first tile to the second tile; and

configure the first tile with the credit limit value of the receive buffer in the second tile.

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 →