IP Library Granted Patent US 8,572,328
Granted Patent B2
US 8,572,328 · App. 13/238,485 · Granted Oct 29, 2013

Method and system for memory management

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,572,328
App. No.
13/238,485
Granted
Oct 29, 2013
Kind
B2
Abstract

A device, comprising a single-ported first memory slice accessible only to a plurality of clients and including a plurality of blocks configured for storing information on behalf of the plurality of clients. The device further comprises a dual-ported second memory slice having a plurality of blocks for storing links and accessible to the plurality of clients and to a list manager that maintains a data structure for allocating memory blocks from the first memory slice and the second memory slice to the plurality of clients. In response to a client request, the list manager allocates a block of the first memory slice and a block of the second memory slice to the client, and stores a link for a next available memory block at the second memory slice.

Claims (32)

1. A machine implemented method, comprising:

providing a first memory slice having a plurality of blocks configured for storing information on behalf of a plurality of clients; wherein the first memory slice is a single-ported memory that is only accessible to the plurality of clients;

configuring a second memory slice having a plurality of blocks for storing links and accessible to the plurality of clients and to a list manager that maintains a data structure for allocating memory blocks from the first memory slice and the second memory slice to the plurality of clients; wherein the second memory slice is a dual-ported memory that is accessible to both the plurality of clients and the list manager;

receiving a request from a client for access to memory storage at the first memory slice and the second memory slice; and

allocating a block of the first memory slice to the client and a block of the second memory slice to the client; and

storing a link for a next available memory block at the second memory slice; wherein the list manager allocates the block of the first memory slice and stores the link at the second memory slice.

2. The method of claim 1 , wherein after the client has used the memory storage, the allocated block of the first memory slice and the second memory slice are released to a free list data structure used by the list manager to assign storage.

3. The method of claim 1 , wherein the plurality of clients are hardware modules of an adapter coupled to a computing system.

4. The method of claim 3 , wherein the first memory slice and the second memory slice are located at the adapter.

5. The method of claim 3 , wherein the adapter is configured to send and receive network information using a network protocol.

6. The method of claim 3 , wherein the adapter is configured to send and receive information complying with a storage protocol.

7. The method of claim 3 , wherein the adapter is configured to send and receive information complying with a protocol that can handle both network and storage information.

8. A machine implemented method, comprising:

receiving a request from a client from among a plurality of clients for access to memory storage at a first memory slice and a second memory slice;

wherein the first memory slice is a single-ported memory that is accessible only to the plurality of clients and includes a plurality of blocks configured for storing information on behalf of the plurality of clients;

wherein the second memory slice includes a plurality of blocks for storing links, and is accessible to the plurality of clients and to a list manager that maintains a data structure for allocating memory blocks from the first memory slice and the second memory slice to the plurality of clients; and wherein the second memory slice is a dual-ported memory that is accessible to both the plurality of clients and the list manager; and

allocating a block of the first memory slice and a block of the second memory slice to the client; and

storing a link for a next available memory block at the second memory slice; wherein the list manager allocates the block of the first memory slice and stores the link at the second memory slice.

9. The method of claim 8 , wherein after the client has used the memory storage, the allocated block of the first memory slice and the second memory slice are released to the data structure used by the list manager to allocate storage.

10. The method of claim 8 , wherein the plurality of clients are hardware modules of an adapter coupled to a computing system.

11. The method of claim 10 , wherein the first memory slice and the second memory slice are located at the adapter.

12. The method of claim 10 , wherein the adapter is configured to send and receive network information using a network protocol.

13. The method of claim 10 , wherein the adapter is configured to send and receive information complying with a storage protocol.

14. The method of claim 10 , wherein the adapter is configured to send and receive information complying with a protocol that can handle both network and storage information.

15. A device, comprising:

a single-ported first memory slice accessible only to a plurality of clients and includes a plurality of blocks configured for storing information on behalf of the plurality of clients; and

a dual-ported second memory slice having a plurality of blocks for storing links and accessible to the plurality of clients and to a list manager that maintains a data structure for allocating memory blocks from the first memory slice and the second memory slice to the plurality of clients; wherein in response to a client request, the list manager allocates a block of the first memory slice and a block of the second memory slice to the client; and stores a link for a next available memory block at the second memory slice.

16. The device of claim 15 , wherein the plurality of clients are hardware modules of an adapter coupled to a computing system.

17. The device of claim 16 , wherein the first memory slice and the second memory slice are located at the adapter.

18. The device of claim 16 , wherein the adapter is configured to send and receive network information using a network protocol.

19. The device of claim 16 , wherein the adapter is configured to send and receive information complying with a storage protocol.

20. The device of claim 16 , wherein the adapter is configured to send and receive information complying with a protocol that can handle both network and storage information.

Assignments (7)
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 →
CHANGE OF NAME Recorded Oct 8, 2018
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 047205/0953 →
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 →
MERGER Recorded Oct 18, 2017
From: QLOGIC CORPORATION
To: CAVIUM, INC.
Reel/Frame 044812/0504 →
SECURITY AGREEMENT Recorded Mar 1, 2017
From: QLOGIC CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 041854/0119 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 21, 2011
From: KHANDAI, BISWAJIT; GRIJALVA, OSCAR L.
To: QLOGIC, CORPORATION
Reel/Frame 026941/0823 →