IP Library Granted Patent US 8,799,624
Granted Patent B1
US 8,799,624 · App. 12/886,382 · Granted Aug 5, 2014

Configurable device interfaces

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,799,624
App. No.
12/886,382
Granted
Aug 5, 2014
Kind
B1
Abstract

Coupling a device to a multicore computing system that includes multiple cores that each include a processor includes sending messages to access memory coupled to at least one of the multiple cores, the memory having an address space, and the messages including a virtual address. An interface is provided for coupling the device to the multicore computing system in a shim that: transmits or receives messages on the communication network among the processors to or from the coupled device, and translates virtual addresses to physical addresses of the address space in response to receiving the messages over the communication network that include a virtual address.

Claims (41)

1. An apparatus, comprising:

a multicore computing system that includes multiple tiles each tile including a processor and a switch;

a communication network among the processors that is configurable by the switch and processor of each tile;

memory coupled to at least one of the multiple tiles, the memory having an address space;

a hardware shim that is external to the multiple tiles the shim configured to couple an external device to the multicore computing system, the hardware shim comprising:

circuitry to couple the hardware shim to one of the multiple tiles;

circuitry configured to transmit or receive messages on the communication network to or from a coupled device; and

circuitry including a translation lookaside buffer to store translated physical addresses to translate virtual addresses to physical addresses of the address space of the memory in response to receiving messages over the communication network that include a virtual address and that are received at the shim such that packet data is directly placed into the memory that is accessed with physical addresses of the memory.

2. The apparatus of claim 1 , the circuitry configured to transmit or receive messages is configured to decode an address of a tile, with the address included in a packet that includes a message received from a coupled device.

3. The apparatus of claim 1 , the circuitry configured to transmit or receive messages is configured to encode a message to be transmitted to a coupled device into a packet.

4. The apparatus of claim 1 , the circuitry configured to transmit or receive messages is configured to

pass a received packet to a software routine running on a processor of a tile connected to the shim.

5. The apparatus of claim 4 wherein mechanisms for passing the packet include writing the packet to shared memory, sending a message over an on-chip network to a register-mapped port on a processor or delivering an interrupt to the processor and having the processor read the packet from a designated location, with the mechanism determined by a software handler application including one or more routines running on the processor, which decodes the packet's parameters and performs actions determined by a logical layer specification.

6. The apparatus of claim 1 , the circuitry configured to transmit or receive messages is configured to

post a received packet to a software routine running on a processor of a tile connected to the shim.

7. The apparatus of claim 6 wherein mechanisms for posting a packet, post the packet to the hardware shim include writing the packet to shared memory, sending a message over an on-chip network to a register-mapped port on the shim or delivering an interrupt to the shim and having the shim read the packet from a designated location, with the mechanism determined by a software handler application including one or more routines running on the processor, which decodes the packet's parameters and performs actions determined by a logical layer specification.

8. The apparatus of claim 1 , wherein a software handler defines both transaction and logical layers.

9. The apparatus of claim 1 , wherein a software handler provides functionality of the logical layer and the hardware shim provides the functionality of the transaction layer including receiving a packet from the communication network and decoding packet's parameters.

10. An apparatus, comprising:

a multicore computing system that includes multiple tiles each tile including a processor and a switch;

a communication network among the processors that is configurable by the switch and processor of each tile;

memory coupled to at least one of the multiple tiles, the memory having an address space;

a hardware shim that is external to the multiple tiles the shim configured to couple an external device to the multicore computing system, the hardware shim comprising:

circuitry to couple the hardware shim to one of the multiple tiles;

circuitry configured to transmit messages to a coupled device and encode messages into packets, and to receive messages from the coupled device and post received packets to a software routine running on a processor of a tile connected to the shim via the communication network; and

circuitry including a translation lookaside buffer to store translated physical addresses to translate virtual addresses to physical addresses of the address space of the memory in response to receiving messages over the communication network that include a virtual address and that are received at the shim such that packet data is directly placed into the memory that is accessed with physical addresses of the memory.

11. The apparatus of claim 10 wherein the software handler defines both transaction and logical layers.

12. The apparatus of claim 10 wherein the circuitry configured to transmit and receive messages is configured to decode an address of a tile, with the address included in packets received from a coupled device.

13. A method for coupling a device to a multicore computing system that includes multiple tiles each tile including a processor and a switch a communication network among the processors that is configurable by the switch and processor of each tile and memory coupled to at least one of the multiple tiles, the memory having an address space, the method comprising:

configuring a hardware shim that is external to the multiple tiles to couple an external device to the multicore computing system;

coupling the hardware shim to one of the multiple tiles;

configuring the hardware shim to transmit or receive messages on the communication network to or from a coupled device;

translating using a translation lookaside buffer virtual addresses to physical addresses of the address space of the memory in response to receiving messages over the communication network that include a virtual address and that are received at the shim such that packet data is directly placed into the memory that is accessed with physical addresses of the memory; and

storing received messages at the translated physical addresses of the memory.

14. The method of claim 13 further comprising:

decoding an address of a tile, with the address included in a packet that includes a message received from a coupled device.

15. The method of claim 13 further comprising:

encoding a message to be transmitted to a coupled device into a packet.

16. The method of claim 13 further comprising:

passing a received packet to a software routine running on a processor of a tile connected to the shim.

17. The method of claim 16 wherein mechanisms for passing the packet include writing the packet to shared memory, sending a message over an on-chip network to a register-mapped port on a processor or delivering an interrupt to the processor and having the processor read the packet from a designated location, with the mechanism determined by a software handler application including one or more routines running on the processor, which decodes the packet's parameters and performs actions determined by a logical layer specification.

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 Oct 28, 2010
From: GRIFFIN, PATRICK ROBERT; RAMEY, CARL G.
To: TILERA CORPORATION
Reel/Frame 025211/0469 →