IP Library Granted Patent US 8,312,243
Granted Patent B2
US 8,312,243 · App. 12/504,477 · Granted Nov 13, 2012

Memory management in network processors

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,312,243
App. No.
12/504,477
Granted
Nov 13, 2012
Kind
B2
Abstract

System and method for storing information units is provided. The system includes a memory comprising a plurality of contiguous memory segments, a local memory storing a plurality of pointers, each pointer pointing to one contiguous memory segment, a receiving unit configured to arrange incoming information units into queues and memory control logic configured to allocate pointers to the queues and configured to cause the incoming information units to be written into contiguous memory segments. The incoming information units form at least one queue and wherein pointers form a linked list of pointers if the information units are written into more than one contiguous memory segment.

Claims (18)

1. A network processor comprising:

a first local storage unit configured to store a plurality of slab pointers, wherein each slab pointer is either a free slab pointer or an occupied slab pointer;

a second local storage unit configured to store a plurality of queue head pointers and a plurality of queue tail pointers, wherein one head pointer and one tail pointer belong to one queue;

a memory storage unit configured to store information units, wherein the memory storage unit comprises a plurality of slabs and wherein each slab corresponds to one slab pointer; and

a memory control logic configured to allocate at least one of the free slab pointers to a queue, if the memory control logic causes the information units to be written into the queue,

wherein the free slab pointer becomes an occupied slab pointer after allocation to the queue.

2. The network processor according to claim 1 , wherein a first plurality of slab pointers form a first linked list of slab pointers when the respective first plurality of slabs are allocated to a first queue.

3. The network processor according to claim 1 , wherein the slabs are divided into head slabs and body slabs and wherein head segments of the information units are stored in the head slab and body segments of the information units are stored in the body slabs.

4. The network processor according to claim 1 , wherein the storage unit further comprises a plurality of segments and wherein head segments of the information units are stored in the slab and body segments of the information units are stored in the segment.

5. The network processor according to claim 1 , wherein the memory storage unit comprises a plurality of external storage devices.

6. A system for storing information units, the system comprising:

a memory comprising a plurality of contiguous memory segments and a plurality of external storage devices, wherein the plurality of contiguous memory segments comprises different sizes;

a local memory configured to store a plurality of pointers, each pointer pointing to one contiguous memory segment;

a receiving unit configured to arrange incoming information units into queues; and

memory control logic configured to allocate pointers to the queues and configured to cause the incoming information units to be written into contiguous memory segments,

wherein the incoming information units form at least one queue and wherein the pointers form a linked list of pointers if the information units are written into more than one contiguous memory segment,

wherein pointers of larger contiguous memory segments are allocated to long queues and pointers of shorter contiguous memory segments are allocated to short queues, and

wherein the pointers, after the information units have been written into the associated contiguous memory segments, are moved from a free list of pointers to an occupied list of pointers.

Assignments (6)
SECURITY AGREEMENT Recorded Jul 9, 2021
From: MAXLINEAR, INC.; MAXLINEAR COMMUNICATIONS, LLC; EXAR CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 056816/0089 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2020
From: INTEL CORPORATION
To: MAXLINEAR, INC.
Reel/Frame 053626/0636 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2020
From: LANTIQ BETEILIGUNGS-GMBH & CO. KG
To: INTEL CORPORATION
Reel/Frame 053259/0678 →
MERGER AND CHANGE OF NAME Recorded Jan 17, 2018
From: LANTIQ DEUTSCHLAND GMBH; LANTIQ BETEILIGUNGS-GMBH & CO. KG
To: LANTIQ BETEILIGUNGS-GMBH & CO. KG
Reel/Frame 045085/0292 →
MERGER Recorded Dec 18, 2017
From: LANTIQ DEUTSCHLAND GMBH
To: LANTIQ BETEILIGUNGS-GMBH & CO. KG
Reel/Frame 044907/0045 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 025413/0340 AND 025406/0677 Recorded Apr 17, 2015
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LANTIQ BETEILIGUNGS-GMBH & CO. KG
Reel/Frame 035453/0712 →