US2005265357A1PendingUtilityA1

Memory caching

44
Assignee: HAYWOOD CHRISPriority: Aug 15, 2001Filed: Aug 11, 2005Published: Dec 1, 2005
Est. expiryAug 15, 2021(expired)· nominal 20-yr term from priority
Inventors:Chris Haywood
H04L 49/90G06F 5/10H04L 49/9073G06F 2205/108G06F 12/0875H04L 49/9042
44
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

There are disclosed apparatus and methods for achieving maximum data transfer. Memories and interfaces between the memories are provided. An actively determined number of data units having an actively determined unit size are transferred between the memories to provide the maximum data transfer.

Claims

exact text as granted — not AI-modified
1 . An apparatus comprising: 
 a memory interface operable to transfer an actively-determined number of data units having an actively-determined unit size    a first memory having 
 a first input for receiving incoming data  
 a first output for transferring data units  
 a second output for transferring data units to the memory interface a second memory having  
 a second input for receiving data units from the memory interface  
 a third output for transferring data units a third memory having  
 a third input for receiving data units from the first output and the third output a fourth output for outputting data  
   wherein the actively determined number of data units having the actively determined unit size together provide a maximum memory transfer efficiency level for the memory interface.    
   
   
       2 . The apparatus of  claim 1  wherein 
 the data units comprise frames of variable length    the first memory stores data in at least one fixed size.    
   
   
       3 . The apparatus of  claim 1  wherein the maximum memory transfer efficiency level is achieved at least in part by maximizing an amount of data taken from the first memory and put in the data units.  
   
   
       4 . The apparatus of  claim 1  wherein the maximum memory transfer efficiency level is achieved at least in part by maximizing an amount of data destined for the third memory in the data units.  
   
   
       5 . The apparatus of  claim 1 , wherein the third memory further comprises a third memory fill indicator to indicate a fill characteristic of the third memory.  
   
   
       6 . The apparatus of  claim 5  wherein the third fill indicator further comprises 
 a first fill level wherein the determined number of data units having the determined unit size are transferred from the first memory to the third memory    a second fill level wherein the determined number of data units having the determined unit size are transferred from the first memory to the second memory via the memory interface    a third fill level wherein the determined number of data units having the determined unit size are transferred from the second memory to the third memory.    
   
   
       7 . The apparatus of  claim 1 , wherein the first memory further comprises a first memory fill indicator to indicate a fill characteristic of the first memory.  
   
   
       8 . The apparatus of  claim 7  wherein the first fill indicator further comprises 
 a first fill level wherein the determined number of data units having the determined unit size are transferred from the first memory to the third memory    a second fill level wherein the determined number of data units having the determined unit size are transferred from the first memory to the second memory via the memory interface.    
   
   
       9 . The apparatus of  claim 1 , wherein the incoming frames are of varying length and where the determined number of units are defined to include data from one or more of the frames, and wherein a determined unit may contain data from two or more frames.  
   
   
       10 . The apparatus of  claim 1 , wherein a data path to the second memory is wider than a width characteristic of the third memory.  
   
   
       11 . The apparatus of  claim 1 , wherein the first memory and third memory reside on a common semiconductor substrate, and wherein the second memory is remote to the semiconductor substrate.  
   
   
       12 . The apparatus of  claim 1  wherein the first memory and the third memory are selected from the group comprising first-in-first-out memories and data buffer memories.  
   
   
       13 . The apparatus of  claim 1  wherein the second memory is selected from the group comprising on-chip Dynamic Random Access Memories, off-chip Content-Addressable Memories and off-chip Static Random Access Memories.  
   
   
       14 . A method comprising: 
 actively determining a number of data units and a unit size to support a maximum efficiency level    transferring the determined number of data units having the determined unit size from the first memory to a second memory when the second memory is within a first fill level    transferring the determined number of data units having the determined unit size from the first memory to a third memory when the second memory is within a second fill level    transferring the determined number of data units having the determined unit size from the second memory to the third memory when the second memory is within a third fill level.    
   
   
       15 . The method of  claim 14  wherein 
 the data units include data from one or more frames of varying size    at least one data unit contains data from at least two frames.    
   
   
       16 . The method of  claim 14  wherein transferring the data units is based on a second memory fill indicator associated with the second memory.  
   
   
       17 . The method of  claim 14  wherein transferring the data units is based on a first memory fill indicator associated with the first memory.  
   
   
       18 . The method of  claim 14  wherein transferring the data units to the second memory includes controlling whether data units from the first memory or the third memory are transferred to the second memory.  
   
   
       19 . An apparatus comprising: 
 a first memory for receiving frames of varying amounts of incoming data    a second memory    a third memory coupled to the first memory and the second memory and operable to receive data either from the first memory or from the second memory    a controller coupled to the first memory, the second memory and the third memory and operable to control transfer of data    wherein an actively determined number of data units having an actively determined unit size is transferred between the first memory and the second memory and the third memory at a maximum memory transfer efficiency level.    
   
   
       20 . The apparatus of  claim 19  wherein 
 the data units comprise frames of variable length    the first memory stores data in at least one fixed size.    
   
   
       21 . The apparatus of  claim 19  wherein the maximum memory transfer efficiency level is achieved at least in part by maximizing an amount of data taken from the first memory and put in the data units.  
   
   
       22 . The apparatus of  claim 19  wherein the maximum memory transfer efficiency level is achieved at least in part by maximizing an amount of data destined for the third memory in the data units.  
   
   
       23 . The apparatus of  claim 19  wherein the third memory further comprises a third memory fill indicator to indicate a fill characteristic of the third memory.  
   
   
       24 . The apparatus of  claim 23  wherein the third fill indicator further comprises 
 a first fill level wherein the determined number of data units having the determined unit size are transferred from the first memory to the third memory    a second fill level wherein the determined number of data units having the determined unit size are transferred from the first memory to the second memory via the memory interface    a third fill level wherein the determined number of data units having the determined unit size are transferred from the second memory to the third memory.    
   
   
       25 . The apparatus of  claim 19 , wherein the first memory further comprises a first memory fill indicator to indicate a fill characteristic of the first memory.  
   
   
       26 . The apparatus of  claim 25  wherein the first fill indicator further comprises 
 a first fill level wherein the determined number of data units having the determined unit size are transferred from the first memory to the third memory    a second fill level wherein the determined number of data units having the determined unit size are transferred from the first memory to the second memory via the memory interface.    
   
   
       27 . The apparatus of  claim 19  wherein the incoming frames are of varying length and where the determined number of units are defined to include data from one or more of the frames, and wherein a determined unit may contain data from two or more frames.  
   
   
       28 . The apparatus of  claim 19  wherein a data path to the second memory is wider than a width characteristic of the third memory.  
   
   
       29 . The apparatus of  claim 19  wherein the first memory and third memory reside on a common semiconductor substrate, and wherein the second memory is remote to the semiconductor substrate.  
   
   
       30 . The apparatus of  claim 19  wherein the first memory and the third memory are selected from the group comprising first-in-first-out memories and data buffer memories.  
   
   
       31 . The apparatus of  claim 19  wherein the second memory is selected from the group comprising on-chip Dynamic Random Access Memories, off-chip Content-Addressable Memories and off-chip Static Random Access Memories.  
   
   
       32 . A method comprising: 
 transferring an actively determined number of data units having an actively determined unit size from a first memory to a second memory, the first memory having an input to receive frames containing varying amounts of data and the second memory having an output to output data    transferring the actively determined number of data units having the actively determined unit size from the first memory to a third memory via a memory interface    transferring the actively determined number of data units having the actively determined unit size from the third memory to the second memory    wherein the actively determined unit size and the actively determined number of data units together provide a maximum memory transfer efficiency level for the memory interface.    
   
   
       33 . The method of  claim 32  wherein 
 the data units include data from one or more frames of varying size    at least one data unit contains data from at least two frames.    
   
   
       34 . The method of  claim 32  wherein transferring the data units is based on a second memory fill indicator associated with the second memory.  
   
   
       35 . The method of  claim 34  wherein transferring the data units further comprises 
 transferring the data units from the first memory to the second memory at a first fill level    transferring the data units from the first memory to the third memory at a second fill level    transferring the data units from the third memory to the second memory at a third fill level    
   
   
       36 . The method of  claim 32  wherein transferring the data units is based on a first memory fill indicator associated with the first memory.  
   
   
       37 . The method of  claim 36  wherein transferring the data units further comprises 
 transferring the data units from the first memory to the second memory at a first fill level    transferring the data units from the first memory to the third memory at a second fill level    
   
   
       38 . The method of  claim 32  wherein transferring the data units to the second memory includes controlling whether data units from the first memory or the third memory are transferred to the second memory.  
   
   
       39 . An apparatus comprising: 
 a first memory    a second memory    a memory interface 
 coupled to the first memory and to the second memory  
 operable to copy an actively determined number of data units having an actively determined unit size from the first memory to the second memory  
   wherein the determined unit size and the determined number of data units together provide maximum memory transfer efficiency.    
   
   
       40 . The apparatus of  claim 39  wherein 
 the data units comprise frames of variable length    the first memory stores data in at least one fixed size.    
   
   
       41 . The apparatus of  claim 39  wherein the maximum memory transfer efficiency level is achieved at least in part by maximizing an amount of data taken from the first memory and put in the data units.  
   
   
       42 . The apparatus of  claim 39  wherein the maximum memory transfer efficiency level is achieved at least in part by maximizing an amount of data in the data units destined for output.  
   
   
       43 . The apparatus of  claim 39  further comprising a third memory coupled to the first memory and the second memory.  
   
   
       44 . The apparatus of  claim 43  further comprising a third memory fill indicator to indicate a fill characteristic.  
   
   
       45 . The apparatus of  claim 44  wherein the third memory fill indicator further comprises 
 a first fill level wherein the determined number of data units having the determined unit size are transferred from the first memory to the third memory    a second fill level wherein the determined number of data units having the determined unit size are transferred from the first memory to the second memory via the memory interface    a third fill level wherein the determined number of data units having the determined unit size are transferred from the second memory to the third memory.    
   
   
       46 . The apparatus of  claim 39  wherein the first memory further comprises a first memory fill indicator to indicate a fill characteristic.  
   
   
       47 . The apparatus of  claim 39  wherein the first memory fill indicator further comprises 
 a first fill level wherein the determined number of data units having the determined unit size are outputted from the first memory.    a second fill level wherein the determined number of data units having the determined unit size are transferred from the first memory to the second memory via the memory interface.    
   
   
       48 . The apparatus of  claim 39 , wherein the incoming frames are of varying length and where the determined number of units are defined to include data from one or more of the frames, and wherein a determined unit may contain data from two or more frames.  
   
   
       49 . The apparatus of  claim 43 , wherein a data path to the second memory is wider than a width characteristic of the third memory.  
   
   
       50 . The apparatus of  claim 43 , wherein the first memory and third memory reside on a common semiconductor substrate, and wherein the second memory is remote to the semiconductor substrate.  
   
   
       51 . The apparatus of  claim 39  wherein the first memory is selected from the group comprising first-in-first-out memories and data buffer memories.  
   
   
       52 . The apparatus of  claim 39  wherein the second memory is selected from the group comprising on-chip Dynamic Random Access Memories, off-chip Content-Addressable Memories and off-chip Static Random Access Memories.  
   
   
       53 . The apparatus of  claim 43  wherein the third memory is selected from the group comprising first-in-first-out memories and data buffer memories.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.