Back to results
US 7,624,235 B2Granted
Cache used both as cache and staging buffer
AssigneeApple Inc.
InventorsRuchi Wadhawan, Jason M. Kassoff, George Kong Yiu
Life of this patent
Estimating the term…
Abstract
In one embodiment, a cache comprises a data memory comprising a plurality of data entries, each data entry having capacity to store a cache block of data, and a cache control unit coupled to the data memory. The cache control unit is configured to dynamically allocate a given data entry in the data memory to store a cache block being cached or to store data that is not being cache but is being staged for retransmission on an interface to which the cache is coupled.
Claims17
A cache comprising:
- a data memory comprising a plurality of data entries, each data entry having capacity to store a cache block of data;
- a cache control unit coupled to the data memory, wherein the cache control unit is configured to dynamically allocate a given data entry in the data memory to store a cache block being cached or to store data that is being staged for retransmission on an interface to which the cache is coupled, and wherein the cache control unit comprises a free list, and wherein the cache control unit is configured to use the free list to track which data entries in the data memory are currently allocated and which are currently free, and wherein the cache control unit is configured to update the free list to indicate that the given data entry is currently allocated responsive to allocating the given data entry;
- and
- a tag memory coupled to the cache control unit, wherein the tag memory comprises a plurality of tag entries configured to store address tags corresponding to data in the data memory and validity indications, and wherein a combination of the free list value for the given data entry and the validity indication in the tag memory for the given data entry indicate a current state of the given data entry.
1 more element
A method comprising:
- receiving data in a cache, the data being staged for retransmission on an interface to which the cache is coupled;
- dynamically allocating a given data entry in a data memory of the cache to store the staged data, the given data entry having a capacity to store a cache block being cached and also useable to cache the cache block;
- tracking which of the data entries in the data memory are currently allocated to either cache blocks or staged data and which entries are free in a free list, the tracking comprising updating the free list to indicate that the given data entry is allocated to the staged data;
- maintaining cache tags for the data entries in a tag memory that comprises a plurality of tag entries configured to store address tags corresponding to data in the data memory and validity indications, wherein a combination of validity indication in the tag memory for the given data entry and a state in the free list indicates whether the given data entry is storing staged data or a cache block.
1 more element
Dependencies are inferred from the claim text.