IP Library Granted Patent US 9,229,791
Granted Patent B1
US 9,229,791 · App. 13/594,343 · Granted Jan 5, 2016

System and method for high speed multiple buffer allocation

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,229,791
App. No.
13/594,343
Granted
Jan 5, 2016
Kind
B1
Abstract

An adapter for high speed multiple buffer allocation is provided. The adapter is configured with logic to search a data buffer availability vector corresponding to data buffer storage elements from low priority to high priority and from high priority to low priority in parallel thereby enabling multiple data buffers to be located in a single path and reducing the impact of pipelining.

Claims (30)

1. A method for allocating multiple buffers for processing a command by a network device, the method comprising:

receiving the command for processing data associated with the command;

determining a number of buffers needed to process the received command, based on decoding the received command;

searching a storage device in the network device to locate at least a number of available buffers equivalent to the number of buffers needed, the available buffers being located by executing instructions to cause a first search of the storage device from a low priority to a high priority direction and to cause a second search of the storage device from a high priority to a low priority direction, the first search and the second search being conducted in parallel;

repeating the first search and the second search when the number of buffers located is less than the number of buffers needed; and

allocating the located buffers when the number of buffers needed is equivalent to the available buffers located.

2. The method of claim 1 , wherein the number of buffers needed is at least two.

3. The method of claim 1 , wherein the first search includes searching a buffer availability vector from a low priority to a high priority direction and the second search includes searching the buffer availability vector from a high priority to a low priority direction.

4. The method of claim 1 , wherein the first search and the second search are performed in substantially the same clock cycle.

5. The method of claim 1 , wherein the network device is an adapter coupled to a computing system and at least one other device.

6. The method of claim 1 , wherein the received command is to process data received by the network device from a network.

7. The method of claim 1 , wherein the received command is to transmit data via a network.

8. The method of claim 1 , wherein the received command is sent by one of a plurality of components of the network device.

9. An adapter for allocating buffers for processing a command, comprising:

a storage device including a plurality of buffers for storing data associated with the command; and

a buffer manager to determine a number of buffers needed to process the received command based on decoding the received command, to locate at least a number of available buffers equivalent to the number of buffers needed and to allocate the located buffers, the available buffers being located by executing instructions to cause a first search of the storage device from a low priority to a high priority direction and to cause a second search of the storage device from a high priority to a low priority direction, the first search and the second search being conducted in parallel; wherein the buffer manager repeats the first search and the second search when the number of located buffers is less than the number of buffers needed to update the located buffers.

10. The adapter of claim 9 , wherein the number of buffers needed is at least two.

11. The adapter of claim 9 , wherein the first search includes searching a buffer availability vector from a low priority to a high priority direction and the second search includes searching the buffer availability vector from a high priority to a low priority direction.

12. The adapter of claim 9 , wherein the first search and the second search are performed in substantially the same clock cycle.

13. The adapter of claim 9 , wherein the received command is to process data received by from a network.

14. The adapter of claim 9 , wherein the received command is to transmit data via a network.

15. A system for allocating buffers to process a command, the system comprising:

an adapter for receiving a command for processing data;

a storage device including a plurality of buffers for temporarily storing data associated with the command; and

a buffer manager for determining a number of buffers needed to process the received command, to locate at least a number of available buffers equivalent to the number of buffers needed and to allocate the located buffers;

a first processor to execute instructions from the buffer manager to cause a first search of the storage device from a low priority to a high priority direction; and

a second processor to execute instructions from the buffer manager to cause a second search of the storage device from a high priority to a low priority direction, the first search and the second search being conducted in parallel;

wherein the first search and the second search are repeated when the number of buffers located is less than the number of buffers needed.

16. The system of claim 15 , wherein the received command is to process data received by the network device from a network.

17. The system of claim 15 , wherein the received command is to transmit data via a network.

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 Aug 24, 2012
From: THEKKEETTIL, MADHUSUDHAN HARIGOVINDAN
To: QLOGIC, CORPORATION
Reel/Frame 028846/0404 →