IP Library Granted Patent US 8,918,593
Granted Patent B2
US 8,918,593 · App. 14/036,920 · Granted Dec 23, 2014

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,918,593
App. No.
14/036,920
Granted
Dec 23, 2014
Kind
B2
Abstract

A single-ported memory for storing information and only accessible to a plurality of clients, and a dual-ported memory 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 and the second memory to the plurality of clients. The dual-ported memory is accessible to both the plurality of clients and the list manager. A method includes receiving a request from a client for access to memory storage at the single-ported memory and the dual-ported memory, and allocating a block of the single-ported memory to the client and a block of the dual-ported memory to the client. After the client has used the memory storage, the allocated block of the single-ported memory and the dual-ported memory are released to a free list data structure used by the list manager to assign storage.

Claims (32)

1. A machine implemented method, comprising:

providing a single-ported memory having a plurality of blocks configured for storing information and only accessible to a plurality of clients;

configuring a dual-ported memory 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 and the second memory to the plurality of clients; wherein the dual-ported memory 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 single-ported memory and the dual-ported memory; and

allocating a block of the single-ported memory to the client and a block of the dual-ported memory to the client;

wherein after the client has used the memory storage, the allocated block of the single-ported memory and the dual-ported memory are released to a free list data structure used by the list manager to assign storage.

2. The method of claim 1 , further comprising storing a link for a next available memory block at the dual-ported memory; wherein the list manager allocates the block of the single-ported memory and stores the link at the dual-ported memory.

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 single-ported memory and the dual-ported memory 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 single-ported memory and a dual-ported memory;

wherein the single-ported memory 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 dual-ported memory 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 single-ported memory and the dual-ported memory to the plurality of clients; and

allocating a block of the single-ported memory and a block of the dual-ported memory to the client; and

storing a link for a next available memory block at the dual-ported memory; wherein the list manager allocates the block of the single-ported memory and stores the link at the dual-ported memory.

9. The method of claim 8 , wherein after the client has used the memory storage, the allocated block of the single-ported memory and the dual-ported memory 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 single-ported memory and the dual-ported memory 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 memory accessible only to a plurality of clients, the single-ported memory including a plurality of blocks configured for storing information on behalf of the plurality of clients; and

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

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 single-ported memory and the dual-ported memory 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 Feb 26, 2014
From: KHANDAI, BISWAJIT; GRIJALVA, OSCAR L
To: QLOGIC, CORPORATION
Reel/Frame 032302/0197 →