IP Library Granted Patent US 10,078,613
Granted Patent B1
US 10,078,613 · App. 14/636,296 · Granted Sep 18, 2018

Computing in parallel processing environments

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,078,613
App. No.
14/636,296
Granted
Sep 18, 2018
Kind
B1
Abstract

A computing system comprises one or more core processors coupled to a communication network among the cores via a switch in each core and switching circuitry to forward data among cores and switches. Features include a programmable classification processor for directing packets, techniques for managing virtual functions on an IO accelerator card, packet scheduling techniques, multi-processor communication using shared FIFOs, programmable duty cycle adjustment and delay adjustment circuits, a new class of instructions that use a ready bit, and cache coherence and memory ordering techniques.

Claims (65)

1. A system comprises:

a tiled multicore processor that includes plural processor tiles, the processor tiles comprising a processor coupled to memory and a switch;

a network interface having plural receive and transmit ports; and

a programmable classification processor on the network interface, the programmable classification processor coupled to the plural receive ports, and the programmable classification processor coupled to the processor tiles, and further including:

a processor table memory; and

instruction memory, with instruction memory storing a program that defines rules for packet delivery and switching, and configures the programmable classification processor to:

classify packets received at the plural ports, as either requiring or not requiring processor tile intervention;

cause the programmable classification processor to direct the packets received on the plural receive ports out of any egress port on the programmable classification processor without intervention from any of the processor tiles, for a classification that does not require processor tile intervention.

2. The system of claim 1 wherein the programmable classification processor is disposed between the plural receive ports and the processor tiles.

3. The system of claim 1 , further comprising a processing queue and wherein the programmable classification processor is configured to:

determine whether a packet should be handled by a one of the tile processors; and when the programmable classification processor determines that the packet should be handled by the one of the tile processors, the programmable classification processor,

cause the determined packet to be forwarded to the processing queue for processing by the one of the processor tiles.

4. The system of claim 1 wherein the processor tiles implement exception handling and slow path code execution.

5. The system of claim 1 wherein the programmable classification processor handles fast-path operations.

6. The system of claim 5 wherein fast path operations are on packets that are directed out of any port of the programmable classification processor with minimal latency and processing overhead compared to that of the tiles.

7. The system of claim 1 wherein the processor tiles dynamically direct the programmable classification processor to implement new policies for forwarding and local processing of packets.

8. The system of claim 1 wherein the processor tiles dynamically updates the programmable classification processor in real time.

9. The system of claim 1 wherein the processor tiles implement higher level application and control plane processing without the burden of data plane operations.

10. The system of claim 1 wherein the tile programmable classification processor executes the rules that allow packets to be identified based on their contents and once identified, packets are directed to an egress port of the programmable processor or to one of the processor tiles.

11. The system of claim 1 wherein the processor table memory stores parameters.

12. The system of claim 1 wherein in the rules are updated dynamically by modifying the instruction memory and the processor table memory.

13. A method executed by a tiled multicore processor that includes plural processor tiles, with the processor tiles comprising a processor, memory and a switch, the method comprising:

receiving packets at a network interface; and

classifying received packets by a programmable classification processor, as either requiring or not requiring processor tile intervention, the programmable classification processor having ports and including a processor table memory and instruction memory;

causing the programmable classification processor, to direct the packets received on plural receive ports out of any egress port on the programmable classification processor, without intervention from any of the tile processor tiles for a classification that does not require processor tile intervention.

14. The method of claim 13 wherein the programmable classification processor is disposed between the network ports and the processor tiles on the network interface and classification occurs according to rules defined for packet delivery and switching.

15. The method of claim 14 wherein a rule is a handling rule, and the method further comprises:

configuring the programmable classification processor to determine whether a packet should be handled by a one of the processor tiles; and

causing the determined packet to be forwarded to a processing queue for processing by the one of the processor tiles.

16. The method of claim 14 wherein a rule is a handling rule, and the method further comprises:

determining by the programmable classification processor whether a packet should be handled by a one of the processor tiles; and

causing the determined packet to be forwarded to a processing queue for processing by the one of the processor tiles.

17. The method of claim 13 wherein the tile processors implement exception handling and slow path code execution.

18. The method of claim 13 wherein the programmable classification processor handles fast-path operations.

19. The method of claim 13 wherein fast path operations are on packets that are directed out of any port of the programmable classification processor with minimal latency and processing overhead compared to that of the processor tiles.

20. The method of claim 13 further comprising:

dynamically directing the programmable classification processor to implement new policies for forwarding and local processing of packets.

21. The method of claim 13 further comprising:

dynamically updating the programmable classification processor in real time.

22. The method of claim 13 wherein the tile processors intervene to implement higher level application and control plane processing operations.

23. The method of claim 13 further comprising:

executing by the programmable classification processor, rules that allow packets to be classified based on identified contents.

24. The method of claim 13 , further comprising:

dynamically updating the programmable classification processor in real time and wherein the programmable classification processor, modifies software and the tables, and

queuing incoming packets during updating of the software.

25. The method of claim 13 further comprising:

updating rules in the programmable classifier processor rules dynamically by modifying the instruction memory and the processor table memory.

26. A computer program product tangibly stored in non-transitory media the computer program product for a system including a tiled multicore processor that includes plural processor tiles, with the processor tiles comprising a processor, memory and a switch, the computer program product comprising instructions to cause a processor to:

receive packets at a network interface; and

classify the received packets as either requiring or not requiring processor tile intervention, by a programmable classification processor having ports and including a processor table memory and instruction memory;

direct packets out of any port on the programmable classification processor, without intervention from any of the plural processor tiles, for a classification that does not require processor tile intervention.

27. The computer program product of claim 26 further comprising instructions to:

configure the programmable classification processor to determine whether a packet should be handled by a one of the processor tiles; and

cause the determined packet to be forwarded to a processing queue for processing by the one of the processor tiles.

28. The computer program product of claim 26 wherein when the instructions

determine that a packet should be handled by a one of the processor tiles, the instructions

cause the determined packet to be forwarded to a processing queue for processing by the one of the processor tiles.

29. The computer program product of claim 26 wherein the processor tiles implement exception handling and slow path code execution and the programmable classification processor handles fast-path operations.

30. The computer program product of claim 29 wherein fast path operations are on packets that are directed out of any port of the programmable classification processor with minimal latency and processing overhead compared to that of the processor tiles.

31. The computer program product of claim 26 further comprising instructions to:

dynamically direct the programmable classification processor to implement new policies for forwarding and local processing of packets, by dynamically updating the programmable classification processor in real time.

32. The computer program product of claim 26 wherein instructions to classify comprise instructions to classify packets based on identified contents.

33. The computer program product of claim 26 wherein the instruction memory stores classification rules, and the tile programmable classification processor executes the classification rules to classify the packets, with the processor table memory storing parameters.

34. The computer program product of claim 33 further comprising instructions to:

update the rules in the programmable classifier processor rules dynamically by modifying the instruction memory and the processor table memory.

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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 21, 2018
From: RAMEY, CARL G.; CARLSON, ANDREW
To: MELLANOX TECHNOLOGIES LTD.
Reel/Frame 045855/0841 →
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 →