×

Buffer manager and methods for managing memory

  • US 9,769,081 B2
  • Filed: 12/03/2012
  • Issued: 09/19/2017
  • Est. Priority Date: 03/18/2010
  • Status: Active Grant
First Claim
Patent Images

1. A system comprising:

  • a network interface configured to receive data from a computer network;

    a memory including a plurality of buffer locations, each buffer location of the plurality of buffer locations being identified by both a respective physical address and a respective virtual address, the virtual address of each buffer location being different from but corresponding to the respective physical address, each buffer location of the plurality of buffer locations being configured to store both (i) a respective buffered data from data received over the network interface and (ii) the respective virtual address that is used to identify the respective buffer location;

    a processor unit configured to access buffered data stored in a respective buffer location using the respective virtual address that is used to identify the buffer location;

    one or more client components, that are different from the processor unit, configured to access the buffered data stored in the respective buffer location using the respective physical address that is used to identify the buffer location, instead of using the respective virtual address that is used to identify the buffer location;

    a buffer management unit comprising;

    a first internal buffer pointer pool;

    a second internal buffer pointer pool; and

    a controller configured to;

    monitor a number of unassigned buffer pointers in the internal buffer pointer pool,in response to the number of unassigned buffer pointers in the internal buffer pointer pool falling below a low threshold value, allocate a first one or more buffer pointers from a first external buffer pointer pool to the first internal buffer pointer pool, ones of the first one or more buffer pointers pointing to a corresponding buffer location of the plurality of buffer locations,monitor a number of unassigned buffer pointers in the second internal buffer pointer pool, andin response to the number of unassigned buffer pointers in the second internal buffer pointer pool falling below another low threshold value, allocate a second one or more buffer pointers from a second external buffer pointer pool to the second internal buffer pointer pool, ones of the second one or more buffer pointers pointing to a corresponding buffer location of the plurality of buffer locations.

View all claims
  • 3 Assignments
Timeline View
Assignment View
    ×
    ×