IP Library Granted Patent US 9,736,069
Granted Patent B1
US 9,736,069 · App. 14/142,653 · Granted Aug 15, 2017

Method for storing and retrieving packets in high bandwidth and low latency packet processing devices

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,736,069
App. No.
14/142,653
Granted
Aug 15, 2017
Kind
B1
Abstract

A packet processor includes a header processor and a packet memory. A receive direct memory access block is configured to receive a packet with a header and a payload and to route the header to the header processor and to route the payload to the packet memory such that the header processor begins processing of the header while the payload is loaded into packet memory.

Claims (21)

1. A packet processor, comprising:

a packet memory;

a header processor to process a header and send a modified header to a header direct memory access block that stores the modified header in the packet memory without modification or augmentation of the modified header; and

a receive direct memory access block configured to receive a packet with the header and a payload and to route the header to the header processor prior to storage in the packet memory and to route the payload to the packet memory such that the header processor begins processing of the header while the payload is loaded into packet memory, wherein the receive direct memory access block includes a header segment port to convey a segment of the header to the header processor prior to receiving the complete header.

2. The packet processor of claim 1 further comprising a plurality of transmission queues coupled to the packet memory, wherein each transmission queue has a configurable transmission threshold.

3. The packet processor of claim 2 further comprising a data retrieval priority module to dynamically allocate packet memory bandwidth to the plurality of transmission queues.

4. The packet processor of claim 3 wherein the data retrieval priority module establishes priority values based upon a plurality of input parameters.

5. The packet processor of claim 4 wherein the plurality of input parameters are selected from usage data, port speed, usage threshold and a start of packet request.

6. A packet processor, comprising:

a packet memory;

a header processor to process a header and send a modified header to a header direct memory access block that stores the modified header in the packet memory without modification or augmentation of the modified header, wherein the header direct memory access block is configured to route a processed header to a transmit queue; and

a receive direct memory access block configured to receive a packet with the header and a payload and to route the header to the header processor prior to storage in the packet memory and to route the payload to the packet memory such that the header processor begins processing of the header while the payload is loaded into packet memory.

7. The packet processor of claim 6 wherein the transmit queue is configured to process the processed header to coordinate the transmission of a packet without access to the packet memory.

8. The packet processor of claim 6 wherein the transmit queue is configured to generate a bit vector specifying port numbers that need to transmit the packet.

9. A packet processor, comprising:

a packet memory;

a header processor to process a header and send a modified header to a header direct memory access block that stores the modified header in the packet memory without modification or augmentation of the modified header;

a receive direct memory access block configured to receive a packet with the header and a payload and to route the header to the header processor prior to storage in the packet memory and to route the payload to the packet memory such that the header processor begins processing of the header while the payload is loaded into packet memory; and

a virtual transmit write management module connected to the packet memory, the transmit memory and a link list module;

wherein the packet memory is coupled to a transmit memory configured as a virtual transmit memory with out-of-order data for multiple physical ports.

10. The packet processor of claim 9 further comprising a virtual transmit read management module connected to the packet memory, the transmit memory and a link list module.

Assignments (8)
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 Jan 11, 2019
From: CAVIUM, INC.
To: CAVIUM, LLC
Reel/Frame 049367/0717 →
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 Aug 12, 2016
From: CAVIUM NETWORKS LLC
To: CAVIUM, INC.
Reel/Frame 039425/0520 →
MERGER Recorded Aug 12, 2016
From: XPLIANT, INC.
To: CAVIUM NETWORKS LLC
Reel/Frame 039425/0437 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2014
From: DANIEL, TSAHI; MUSOLL, ENRIC; TU, DAN
To: XPLIANT, INC.
Reel/Frame 032447/0435 →