Patent ID: 8176257

Claim:
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 tag memory comprising a plurality of tag entries, each tag entry configured to store a tag corresponding to a cache block; and a cache control unit coupled to the data memory and the tag 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 is configured to track which of the plurality of data entries are allocated and which of the plurality of data entries are free in a free list, and wherein the cache control unit is configured to update the free list responsive to allocating the given data entry independent of whether or not the given data entry is storing the cache block that is identified by the corresponding tag in the tag memory or data that is being staged for retransmission that is independent of the tag memory.