IP Library Granted Patent US 9,319,316
Granted Patent B2
US 9,319,316 · App. 13/565,743 · Granted Apr 19, 2016

Method and apparatus for managing transfer of transport operations from a cluster in a processor

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,319,316
App. No.
13/565,743
Granted
Apr 19, 2016
Kind
B2
Abstract

A method and corresponding apparatus of managing transport operations between a first memory cluster and one or more other memory clusters, include selecting, at a clock cycle in the first memory cluster, at least one transport operation destined to at least one destination memory cluster, from one or more transport operations, based at least in part on priority information associated with the one or more transport operations or current states of available processing resources allocated to the first memory cluster in each of a subset of the one or more other memory clusters, and initiating the transport of the selected at least one transport operation.

Claims (52)

1. A method comprising:

selecting, at a clock cycle in a first memory cluster, at least one transport operation destined to at least one destination memory cluster, from one or more transport operations, each transport operation comprising transfer of data, related to a corresponding processing operation, the selecting based at least in part on priority information associated with the one or more transport operations or current states of available processing resources allocated to the first memory cluster in each of a subset of one or more other memory clusters;

initiating the transport of the selected at least one transport operation; and

updating, in at least one other memory cluster, a current state of available processing resources allocated to the first memory cluster, corresponding to the selected at least one transport operation.

2. A method according to claim 1 , wherein the one or more transport operations include at least one processing thread migration operation.

3. A method according to claim 2 , wherein a processing thread migration operation, among the at least one processing thread migration operation, is executable in two or more clock cycles.

4. A method according to claim 2 , wherein a processing thread includes a tree search thread or bucket search thread.

5. A method according to claim 2 , wherein a processing thread migration operation, among the at least one processing thread migration operation, is initiated by instructions embedded in data read by a respective processing thread.

6. A method according to claim 2 , wherein the at least one processing thread migration operation includes migrating information data related to a state of a search associated with the processing thread.

7. A method according to claim 1 , wherein the one or more transport operations include at least one remote access request transport operation.

8. A method according to claim 7 , wherein a remote access request transport operation is executable in a single clock cycle.

9. A method according to claim 1 , wherein selecting the at least one transport operation being based at least in part on the priority information associated with the one or more transport operations and the one or more transport operations include at least one remote access response transport operation.

10. A method according to claim 9 , wherein a remote access response transport operation, among the at least one remote access response transport operation, is executable in one or more clock cycles.

11. A method according to claim 1 , wherein selecting the at least one transport operation includes:

for each of the one or more transport operations, checking a current state of resources, allocated to the first memory cluster, in a corresponding destination memory cluster; and

selecting at least one transport operation destined to at least one destination memory cluster, wherein at least one corresponding current state of resources indicates available resources in the at least one destination memory cluster allocated to the first memory cluster.

12. A method according to claim 1 , wherein the priority information associated with the one or more transport operations includes at least one of:

information indicative of priority based on a transport operation type for each of the one or more transport operations; and

information indicative of priority based on a destination memory cluster for each of the one or more transport operations.

13. A method according to claim 1 , wherein selecting the at least one transport operation being further based on communication resources, allocated to the first memory cluster, in an interface device coupling the first memory cluster to the one or more other memory clusters.

14. A method according to claim 1 , wherein initiating the transport of the selected at least one transport operation includes pushing the selected at least one transport operation to an interface device coupling the first memory cluster to the one or more other memory clusters.

15. A method according to claim 14 , wherein the available processing resources include memory buffers, in each of the subset of the one or more other memory clusters, assigned to store data associated with transport operations with transport initiated at the first memory cluster.

16. A method according to claim 15 , wherein buffering capacities, in each of the subset of the one or more other memory clusters, are assigned to the first memory cluster per transport operation type.

17. A method according to claim 1 , wherein selecting at least one transport operation includes selecting a transport operation to be initiated before a previously selected transport operation is executed completely.

18. A method according to claim 1 , wherein a single transport operation is selected and initiated in a single clock cycle.

19. A method according to claim 1 , wherein more than one transport operations are selected and initiated in a single clock cycle.

20. An apparatus comprising:

an arbitration module configured to select, at a clock cycle in a first memory cluster, at least one transport operation destined to at least one destination memory cluster, from one or more transport operations, each transport operation comprising transfer of data, related to a corresponding processing operation, the selecting based at least in part on priority information associated with the one or more transport operations or current states of available processing resources allocated to the first memory cluster in each of a subset of one or more other memory clusters;

a communication interface configured to initiate the transport of the selected at least one transport operation; and

a resources state manager configured to update, in at least one other memory cluster, a current state of available processing resources allocated to the first memory cluster, corresponding to the selected at least one transport operation.

21. An apparatus according to claim 20 , wherein the one or more transport operations include at least one processing thread migration operation.

22. An apparatus according to claim 21 , wherein a processing thread migration operation, among the at least one processing thread migration operation, is executable in two or more clock cycles.

23. An apparatus according to claim 21 , wherein a processing thread includes a tree search thread or bucket search thread.

24. An apparatus according to claim 21 , wherein a processing thread migration operation, among the at least one processing thread migration operation, is initiated by instructions embedded in data read by a respective processing thread.

25. An apparatus according to claim 21 , wherein the at least one processing thread migration operation includes migrating information data related to a state of a search associated with the processing thread.

26. An apparatus according to claim 20 , wherein the one or more transport operations include at least one remote access request transport operation.

27. An apparatus according to claim 26 , wherein a remote access request transport operation is executable in a single clock cycle.

28. An apparatus according to claim 20 , wherein the arbitration module is configured to select the at least one transport operation based at least in part on the priority information associated with the one or more transport operations and the one or more transport operations include at least one remote access response transport operation.

29. An apparatus according to claim 28 , wherein a remote access response transport operation, among the at least one remote access response transport operation, is executable in one or more clock cycles.

30. An apparatus according to claim 20 , wherein the arbitration module, in selecting the at least one transport operation based at least in part on the current states of available processing resources allocated to the first memory cluster in each of the subset of the one or more other memory clusters, is configured to:

for each of the one or more transport operations, check a current state of resources, allocated to the first memory cluster, in a corresponding destination memory cluster; and

select at least one transport operation destined to at least one destination memory cluster, wherein at least one corresponding current state of resources indicates available resources in the at least one destination memory cluster allocated to the first memory cluster.

31. An apparatus according to claim 20 , wherein the priority information associated with the one or more transport operations includes at least one of:

information indicative of priority based on a transport operation type for each of the one or more transport operations; and

information indicative of priority based on a destination memory cluster for each of the one or more transport operations.

32. An apparatus according to claim 20 , wherein the arbitration module is configured to select the at least one transport operation further based on communication resources, allocated to the first memory cluster, in an interface device coupling the first memory cluster to the one or more other memory clusters.

33. An apparatus according to claim 20 , wherein in initiating the transport of the selected at least one transport operation, the communication interface is configured to push the selected at least one transport operation to an interface device coupling the first memory cluster to the one or more other memory clusters.

34. An apparatus according to claim 33 , wherein the available processing resources include memory buffers, in each of the subset of the one or more other memory clusters, assigned to store data associated with transport operations with transport initiated at the first memory cluster.

35. An apparatus according to claim 34 , wherein buffering capacities, in each of the subset of the one or more other memory clusters, are assigned to the first memory cluster per transport operation type.

36. An apparatus according to claim 20 , wherein in selecting at least one transport operation, the arbitration module is further configured to select a transport operation to be initiated before a previously selected transport operation is executed completely.

37. An apparatus according to claim 20 , wherein a single transport operation is selected and initiated in a single clock cycle.

38. An apparatus according to claim 20 , wherein more than one transport operations are selected and initiated in a single clock cycle.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2020
From: CAVIUM INTERNATIONAL
To: MARVELL ASIA PTE, LTD.
Reel/Frame 053179/0320 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 17, 2020
From: CAVIUM, LLC
To: CAVIUM INTERNATIONAL
Reel/Frame 051948/0807 →
CERTIFICATE OF CONVERSION AND CERTIFICATE OF FORMATION Recorded Oct 2, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047185/0422 →
RELEASE OF SECURITY INTEREST Recorded Jul 6, 2018
From: JP MORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: CAVIUM, INC; CAVIUM NETWORKS LLC; QLOGIC CORPORATION
Reel/Frame 046496/0001 →
SECURITY AGREEMENT Recorded Aug 17, 2016
From: CAVIUM, INC.; CAVIUM NETWORKS LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 039715/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2012
From: ANSARI, NAJEEB I.; GOYAL, RAJAN; PANGBORN, JEFFREY A.; BOUCHARD, GREGG A.
To: CAVIUM, INC.
Reel/Frame 029132/0165 →