Recycling buffer pointers using a prefetch buffer
AssigneeJuniper Networks, Inc.
InventorGerald Lampert
Life of this patent
Estimating the term…
Abstract
A network device may include an off-chip memory to store a free-list of buffer pointers. The network device may further include an on-chip controller that includes a prefetch buffer. The prefetch buffer may store unallocated buffer pointers that point to available memory locations in a different off-chip memory. The on-chip controller may receive an unallocated buffer pointer, determine, in response to receiving the unallocated buffer pointer, whether the prefetch buffer is full, store the unallocated buffer pointer in the prefetch buffer when the prefetch buffer is determined not to be full, and store the unallocated buffer pointer in the free-list, in the off-chip memory, when the prefetch buffer is determined to be full.
Claims20
A network device comprising:
- an off-chip memory to store a free-list of buffer pointers;
- and
- an on-chip controller that includes a prefetch buffer, the prefetch buffer being to store unallocated buffer pointers that point to available memory locations, the on-chip controller to:
- retrieve a first unallocated buffer pointer from the free-list,
- store the first unallocated buffer pointer in the prefetch buffer to obtain a quantity of unallocated buffer pointers in the prefetch buffer,
- determine, in response to storing the first unallocated buffer point in the prefetch buffer, whether the quantity of unallocated buffer pointers in the prefetch buffer exceeds a threshold,
- receive, when the quantity of unallocated buffer pointers in the prefetch buffer is determined to not exceed the threshold, a second unallocated buffer pointer from the off-chip memory,
- determine, in response to receiving the second unallocated buffer pointer, whether the prefetch buffer is full,
- store the second unallocated buffer pointer in the prefetch buffer when the prefetch buffer is determined not to be full, and
- store the second unallocated buffer pointer in the free-list, in the off-chip memory, when the prefetch buffer is determined to be full.
A method for managing buffer pointers that point to locations in an off-chip memory, the off-chip memory storing data units, the method comprising:
- retrieving, by a controller in an on-chip memory, a first buffer pointer from a free-list of unallocated buffer pointers in an off-chip buffer pointer memory;
- storing, by the controller, the first buffer pointer in the on-chip prefetch buffer to obtain a quantity of buffer pointers in the on-chip prefetch buffer;
- determining, by the controller and in response to the storing the first buffer point in the on-chip prefetch buffer, whether the quantity of buffer pointers in the on-chip prefetch buffer exceeds a threshold;
- receiving, by the controller and when the quantity of buffer pointers in the on-chip prefetch buffer is determined to not exceed the threshold, a second buffer pointer from the off-chip memory;
- determining, by the controller and in response to receiving the second buffer pointer, whether the on-chip prefetch buffer is full, the on-chip prefetch buffer being to store buffer pointers;
- storing, by the controller, the second buffer pointer in the on-chip prefetch buffer when the on-chip prefetch buffer is determined not to be full;
- and
- storing, by the controller, the second buffer pointer in an off-chip buffer pointer memory when the on-chip prefetch buffer is determined to be full.
A network device comprising:
- an off-chip memory;
- and
- an on-chip controller that includes a prefetch buffer to store unallocated buffer pointers that point to available memory locations, the on-chip controller to:
- retrieve a first buffer pointer from the off-chip memory;
- store the first buffer pointer in the prefetch buffer to obtain a quantity of buffer pointers in the prefetch buffer;
- determine, in response to storing the first buffer point in the prefetch buffer, whether the quantity of buffer pointers in the prefetch buffer exceeds a threshold;
- receive, when the quantity of buffer pointers in the prefetch buffer is determined to not exceed the threshold, a second buffer pointer, from the off-chip memory, that points to an available location in the off-chip memory,
- determine, in response to receiving the second buffer pointer, whether the prefetch buffer is full,
- store the second buffer pointer in the prefetch buffer when the prefetch buffer is determined not to be full, and
- store the second buffer pointer in an off-chip memory when the prefetch buffer is determined to be full.
Dependencies are inferred from the claim text.