US2011072301A1PendingUtilityA1

Systems and methods for recovering memory

Assignee: JUNIPER NETWORKS INCPriority: Sep 24, 2003Filed: Nov 30, 2010Published: Mar 24, 2011
Est. expirySep 24, 2023(expired)· nominal 20-yr term from priority
G06F 2212/1032G06F 12/0253G06F 12/023G06F 2212/1044G11C 29/76
50
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A system includes a group of devices and a shared memory that is partitioned into blocks that are capable of being allocated to the group of devices using linked lists. The system also includes check logic configured to store a group of bits, where each bit corresponds to one of the blocks, and counter logic configured to count for a predetermined period of time. The system further includes logic configured to clear the group of bits stored in the check logic, cause the counter logic to count for the predetermined period of time, monitor a de-allocation of the blocks in the shared memory, set, for each of the blocks that is de-allocated during the predetermined period of time, the corresponding bit in the check logic, identify, after the predetermined period of time, one or more bits that have not been set, and mark the blocks corresponding to the one or more bits as available for allocation.

Claims

exact text as granted — not AI-modified
1 - 25 . (canceled) 
     
     
         26 . A method comprising:
 tracking de-allocation of a block of a memory during a time period; and   making a block, which has not been de-allocated during the time period, available for allocation.   
     
     
         27 . The method of  claim 26 , where the making the block available, further comprises:
 retiring the block to a list of free blocks.   
     
     
         28 . The method of  claim 27 , where the block is retired to a tail of the list of free blocks. 
     
     
         29 . The method of  claim 26 , further comprising:
 determining a longest time period that data is stored in the memory; and   calculating the time period based on the determined longest time period.   
     
     
         30 . The method of  claim 26 , further comprising:
 determining that a block of the memory corresponding to a tail pointer of a list of free blocks has been allocated and de-allocated; and   terminating the time period upon the determining that the block of the memory corresponding to the tail pointer has been allocated and de-allocated.   
     
     
         31 . The method of  claim 26 , further comprising:
 detecting an allocation and a de-allocation of each of a plurality of blocks of the memory; and   starting the time period upon the detecting the allocation and the de-allocation of each of the plurality of blocks.   
     
     
         32 . The method of  claim 31 , further comprising:
 starting a counter to count down from a predetermined value; and   terminating the time period upon the completion of the count down by the counter.   
     
     
         33 . A method comprising:
 monitoring a de-allocation of a block in a memory for a time period; and   retiring, when the block has not been de-allocated during the time period, the block to a list of free blocks.   
     
     
         34 . The method of  claim 33 , where the retiring includes:
 retiring the block to a tail of the list of free blocks.   
     
     
         35 . The method of  claim 33 , further comprising:
 detecting an allocation and a de-allocation of each of a plurality of blocks of the memory; and   starting the time period upon the detecting the allocation and the de-allocation of each of the plurality of blocks.   
     
     
         36 . The method of  claim 33 , further comprising:
 starting a counter to count down from a predetermined value; and   terminating the time period upon the completion of the count down by the counter.   
     
     
         37 . The method of  claim 33 , further comprising:
 determining that a block of the memory corresponding to a tail pointer of the list of free blocks has been allocated and de-allocated; and   terminating the time period upon the determining that the block of the memory corresponding to the tail pointer has been allocated and de-allocated.   
     
     
         38 . The method of  claim 33 , further comprising:
 reading a tail pointer for identifying a block available for allocation, the tail pointer read from the list of free blocks, and   where the retiring the block to the list of free blocks occurs after the block available for allocation has been de-allocated.   
     
     
         39 . The method of  claim 33 , where the monitoring the de-allocation of the block occurs utilizing at least one linked list. 
     
     
         40 . A device comprising:
 a controller to:
 set, upon de-allocation of each of a plurality of blocks of a shared memory during a first time period, to a first value a bit of a plurality of bits stored in the shared memory, each bit of the plurality of bits associated with a corresponding one of the plurality of blocks; and 
   retire, when a bit of the plurality of bits associated with one of the plurality of blocks is not set by the expiration of the first time period, the one of the plurality of blocks.   
     
     
         41 . The device of  claim 40 , where, when retiring the one of the plurality of blocks, the controller is further to:
 retire the one of the plurality of blocks to a list of free blocks.   
     
     
         42 . The device of  claim 41 , where the one of the plurality of blocks is retired to a tail of the list of free blocks. 
     
     
         43 . The device of  claim 40 , where, after the setting and prior to the retiring, the controller is further to:
 determine, when the bit of the plurality of bits associated with one of the plurality of blocks is not set by the expiration of the first time period, whether the one of the plurality of blocks comprises a partially used block.   
     
     
         44 . The device of  claim 43 , where when determining whether the one of the plurality of blocks comprises a partially used block, the controller is further to:
 set one of the plurality of bits corresponding to a tail pointer identifying a last available block of the plurality of blocks.   
     
     
         45 . The method of  claim 40 , where when retiring the one of the plurality of blocks, the controller is further to:
 sequentially check the plurality of bits.

Join the waitlist — get patent alerts

Track US2011072301A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.