IP Library Granted Patent US 7,539,845
Granted Patent B1
US 7,539,845 · App. 11/404,409 · Granted May 26, 2009

Coupling integrated circuits 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 7,539,845
App. No.
11/404,409
Granted
May 26, 2009
Kind
B1
Abstract

An integrated circuit comprises a plurality of tiles. Each tile comprises a processor, and a switch including switching circuitry to forward data received over data paths from other tiles to the processor and to switches of other tiles, and to forward data received from the processor to switches of other tiles. The integrated circuit further comprises an interface coupled to a plurality of the tiles to transfer data between one or more switches of the tiles and one or more switches of tiles in an externally coupled integrated circuit.

Claims (31)

1. An apparatus, comprising:

a plurality of tiled integrated circuits, each tiled integrated circuit comprising a plurality of tiles arranged in an array of tiles, each tile comprising

a processor, and

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

an interface coupled to a plurality of the tiles of a first tiled integrated circuit and a second tiled integrated circuit, the interface being configured to transfer data between one or more switches of tiles in a first tiled integrated circuit and one or more switches of tiles in a second tiled integrated circuit that is coupled to the first integrated circuit over the interface, wherein the interface comprises a communication link;

a first multiplexer configured to multiplex data from switches of at least two and fewer than all edge tiles of the first tiled integrated circuit to transfer across a communication link to the second tiled integrated circuit;

a second multiplexer configured to multiplex data from switches of at least two and fewer than all edge tiles of the second tiled integrated circuit to transfer across a communication link to the first tiled integrated circuit;

wherein each tiled integrated circuit is configured send a message out of an origin tile, receive the message at a first edge tile that does not have a switch physically connected to a multiplexer of the interface, trigger an interrupt in response to the message being routed out of the first edge tile, determine whether the first edge tile has a switch physically connected to a multiplexer of the interface in response to the interrupt, and forward the message to a second edge tile that does have a switch physically connected to a multiplexer of the interface in response to determining that the first edge tile does not have a switch physically connected to a multiplexer of the interface, with the first and second edge tiles being on an edge of the array of tiles of the tiled integrated circuit from which the message is sent.

2. The apparatus of claim 1 , wherein at least a first of the tiled integrated circuits includes a tile array that includes

edge tiles at a first edge of the tile array coupled by an interface to tiles of a second tiled integrated circuit, and

edge tiles at a second edge of the tile array coupled by an interface to tiles of a third tiled integrated circuit.

3. The apparatus of claim 1 , wherein the communication link has at least one of a lower bandwidth and a higher latency than is supported by the data paths connecting the plurality of tiles.

4. The apparatus of claim 1 , wherein the interface is configured to perform load balancing among the multiplexed switches.

5. The apparatus of claim 1 , wherein the first multiplexer is configured to transfer the message from the second edge tile across the communication link to a receiving tile in the second tiled integrated circuit.

6. The apparatus of claim 5 , wherein at least one of the first and second edge tiles is configured to address the message to be routed from the receiving tile in the second tiled integrated circuit to a destination tile in the second tiled integrated circuit.

7. The apparatus of claim 1 , wherein the switching circuitry is configured to forward data according to a switch instruction indicating an input port to which each of multiple output ports of the switch is to be coupled.

8. The apparatus of claim 1 , wherein the switching circuitry is configured to forward data based at least in part on information included in the data to be forwarded.

9. The apparatus of claim 1 , wherein a communication protocol used by the interface is PCI Express, XAUI, SPIE, GPIO, or Ethernet.

10. The apparatus of claim 1 , wherein the processor is a pipelined processor and the switching circuitry is coupled to a plurality of stages of the pipeline.

11. The apparatus of claim 10 , wherein the switching circuitry is coupled to bypass paths that connect non-adjacent pipeline stages of the processor.

12. The apparatus of claim 10 , wherein the switching circuitry is coupled to a buffer accessible by the processor.

13. The apparatus of claim 12 , wherein the switching circuitry is coupled to a buffer accessible within a register name space of the processor.

14. The apparatus of claim 12 , wherein the switching circuitry is coupled to a buffer accessible within a memory address space of the processor.

15. The apparatus of claim 12 , wherein the switching circuitry is coupled to a buffer accessible within an input/output device name space of the processor.

16. The apparatus of claim 12 , wherein the buffer comprises an input buffer configured to receive data over an input port of the switch.

17. The apparatus of claim 12 , wherein the buffer comprises an output buffer configured to send data over an output port of the switch.

18. A method for processing instructions, the method comprising:

processing instructions in a processor of a tile of a first tiled integrated circuit, the first tiled integrated circuit comprising a plurality of tiles arranged in an array of tiles, each of the tiles comprising a processor and a switch to forward data received over data paths from other tiles to the processor and to switches of other tiles, and to forward data received from the processor to switches of other tiles;

processing instructions in a processor of a tile of a second tiled integrated circuit, the second tiled integrated circuit comprising a plurality of tiles, each of the tiles comprising a processor and a switch to forward data received over data paths from other tiles to the processor and to switches of other tiles, and to forward data received from the processor to switches of other tiles; and

transferring data between one or more switches of tiles in the first tiled integrated circuit and one or more switches of tiles in the second tiled integrated circuit over an interface coupled to a plurality of tiles in the first tiled integrated circuit and a plurality of tiles in the second tiled integrated circuit, wherein the interface includes a first multiplexer that multiplexes data from switches of at least two and fewer than all edge tiles in the first tiled integrated circuit to transfer across a communication link to the second tiled integrated circuit and the interface includes a second multiplexer that multiplexes data from switches of at least two and fewer than all edge tiles in the second tiled integrated circuit to transfer across a communication link to the first tiled integrated circuit; and

sending a message out of an origin tile, receiving the message at a first edge tile that does not have a switch physically connected to a multiplexer of the interface, triggering an interrupt in response to the message being routed out of the first edge tile, determining whether the first edge tile has a switch physically connected to a multiplexer of the interface in response to the interrupt, and forwarding the message to a second edge tile that does have a switch physically connected to a multiplexer of the interface in response to determining that the first edge tile does not have a switch physically connected to a multiplexer of the interface, with the first and second edge tiles being on an edge of the array of tiles of the tiled integrated circuit from which the message is sent.

Assignments (9)
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 →
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 →
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: TILERA CORPORATION
To: EZCHIP SEMICONDUCTOR INC.
Reel/Frame 041735/0792 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 27, 2006
From: WENTZLAFF, DAVID; RAMEY, CARL G.; AGARWAL, ANANT
To: TILERA CORPORATION
Reel/Frame 018680/0105 →