IP Library Granted Patent US 9,529,532
Granted Patent B2
US 9,529,532 · App. 14/201,594 · Granted Dec 27, 2016

Method and apparatus for memory allocation in a multi-node system

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,529,532
App. No.
14/201,594
Granted
Dec 27, 2016
Kind
B2
Abstract

According to at least one example embodiment, a multi-chip system includes multiple chip devices configured to communicate to each other and share resources. According to at least one example embodiment, a method of memory allocation in the multi-chip system comprises managing, by each of one or more free-pool allocator (FPA) coprocessors in the multi-chip system, a corresponding list of pools of free-buffer pointers. Based on the one or more lists of free-buffer pointers managed by the one or more FPA coprocessors, a memory allocator (MA) hardware component allocates a free buffer, associated with a chip device of the multiple chip devices, to data associated with a work item. According to at least one aspect, the data associated with the work item represents a data packet.

Claims (38)

1. A multi-chip system comprising:

multiple chip devices, a first chip device of the multiple chip devices includes a memory allocator (MA) hardware component; and

one or more free-pool allocator (FPA) coprocessors, each associated with a corresponding chip device, and each configured to manage a corresponding list of pools of free-buffer pointers,

the MA hardware component configured to:

allocate a free buffer, associated with a chip device of the multiple chip devices, to data associated with a work item based on the one or more lists of free-buffer pointers managed by the one or more FPA coprocessors.

2. The multi-chip system as recited in claim 1 , wherein the MA hardware component is further configured to maintain a list including all pools of free-buffer pointers managed by the one or more FPA coprocessors.

3. The multi-chip system as recited in claim 1 , wherein a single FPA coprocessor is configured to manage a single list including all pools of free-buffer pointers associated with buffers in the multiple chip devices.

4. The multi-chip system as recited in claim 1 , wherein each chip device includes a corresponding FPA coprocessor.

5. The multi-chip system as recited in claim 4 , wherein for each FPA coprocessor, the free-buffer pointers, in the corresponding list of pools, point to buffers residing in the same chip device as the FPA coprocessor.

6. The multi-chip system as recited in claim 1 , wherein in allocating a free buffer to the data associated with the work item, the MA hardware component is further configured to:

send a request for a free-buffer pointer to a FPA coprocessor of the one or more FPA coprocessors;

receive a response including the free-buffer pointer; and

cause the data associated with the work item to be stored in a buffer pointed to by the free-buffer pointer received.

7. The multi-chip system as recited in claim 6 , wherein the free buffer allocated is freed upon the free-buffer pointer returned to the FPA coprocessor.

8. The multi-chip system as recited in claim 6 , wherein the FPA coprocessor of the one or more coprocessors resides in a second chip device, of the multiple chip devices, distinct from the first chip device.

9. The multi-chip system as recited in claim 8 , wherein the request for the free-buffer pointer and the response including the free-buffer pointer are exchanged between the first and second chip devices through communication channels designated for cross-chip communications between coprocessors.

10. The multi-chip system as recited in claim 1 , wherein the work item is assigned to a second chip device, of the multiple chip device, for processing.

11. The multi-chip system as recited in claim 10 , wherein the MA hardware component is further configured to allocate a free buffer, residing in the second chip device, to the data associated with the work item.

12. The multi-chip system as recited in claim 1 , wherein the data associated with the work item represents a data packet.

13. The multi-chip system as recited in claim 1 , wherein the MA hardware component includes a core processor or a coprocessor.

14. A method of memory allocation in a multi-chip system including multiple chip devices, the method comprising:

managing, by each of one or more free-pool allocator (FPA) coprocessors in the multi-chip system, a corresponding list of pools of free-buffer pointers; and

allocating, by a memory allocator (MA) hardware component, a free buffer, associated with a chip device of the multiple chip devices, to data associated with the work item based on the one or more lists of free-buffer pointers managed by the one or more FPA coprocessors.

15. The method as recited in claim 14 further comprising maintaining, by the MA hardware component, a list including all pools of free-buffer pointers managed by the one or more FPA coprocessors.

16. The method as recited in claim 14 , wherein a single FPA coprocessor, in the multi-chip system, is managing a single list including all pools of free-buffer pointers associated with buffers in the multiple chip devices.

17. The method as recited in claim 14 , wherein each chip device includes a corresponding FPA coprocessor.

18. The method as recited in claim 17 , wherein for each FPA coprocessor, the free-buffer pointers, in the corresponding list of pools, point to buffers residing in the same chip device as the FPA coprocessor.

19. The method as recited in claim 14 , wherein allocating a free buffer to the data associated with the work item includes:

sending a request, by the MA hardware component, for a free-buffer pointer to a FPA coprocessor of the one or more FPA coprocessors;

receiving, by the MA hardware component, a response including the free-buffer pointer; and

causing, by the MA hardware component, the data associated with the work item to be stored in a buffer pointed to by the free-buffer pointer received.

20. The method as recited in claim 19 , wherein the free buffer allocated is freed upon the free-buffer pointer returned to the FPA coprocessor.

21. The method as recited in claim 19 , wherein the FPA coprocessor of the one or more coprocessors resides in a second chip device, of the multiple chip devices, distinct from the first chip device.

22. The method system as recited in claim 21 , wherein the request for the free-buffer pointer and the response including the free-buffer pointer are exchanged between the first and second chip devices through communication channels designated for cross-chip communications between coprocessors.

23. The method as recited in claim 14 , wherein the work item is assigned to a second chip device, of the multiple chip device, for processing.

24. The method as recited in claim 23 , wherein allocating a free buffer includes allocating a free buffer, residing in the second chip device, to the data associated with the work item.

25. The method as recited in claim 14 , wherein the data associated with the work item represents a data packet.

26. The method as recited in claim 14 , wherein the MA hardware component includes a core processor or a coprocessor.

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 May 6, 2014
From: KESSLER, RICHARD E.; SNYDER, WILSON P., II
To: CAVIUM, INC.
Reel/Frame 032833/0879 →