Cache controller and method of operation
OwnerDan Robinsoninventor
Life of this patent
Estimating the term…
Abstract
In one embodiment, there are described a sectored cache system and method of operation. A cache data block comprises separately updatable cache sectors. A common tag block contains metadata for the cache sectors of the data block and is writable as a whole. A pending allocation table (PAT) contains data representing pending writes to the tag block. When writing changes data to the tag block, the changed data is broadcast to the PAT to update data representing other pending writes to the tag block so that when the other pending writes are written to the tag block changed data from received broadcasts is included.
Claims19
A sectored cache system, comprising:
- a cache data block comprising separately updatable cache sectors;
- a common tag block containing metadata for the cache sectors of the data block and writable as a whole;
- and
- a pending allocation table (PAT) containing data representing pending writes to the tag block;
- wherein when writing changes data to the tag block, the changed data is broadcast to the PAT to update data representing other pending writes to the tag block so that when the other pending writes are written to the tag block changed data from received broadcasts is included.
A method of operating sectored cache, comprising:
- receiving a memory access request from a client;
- where the memory access request cannot be immediately completed and would alter a cache tag entry, creating an entry in a pending allocation table representing the current state of the cache tag entry;
- when a cache tag entry is altered, broadcasting the alteration to the pending allocation table and updating pending allocation table entries relating to the same cache tag entry;
- and
- when making an alteration to which a pending allocation table entry relates, basing the alteration on the pending allocation table entry, including any updates from received broadcasts.
A computer readable storage medium containing instructions for causing a cache controller:
- to receive a memory access request from a client;
- where the memory access request cannot be immediately completed and would alter a cache tag entry, to create an entry in a pending allocation table representing the current state of the cache tag entry;
- when a cache tag entry is altered, to broadcast the alteration to the pending allocation table and to update pending allocation table entries relating to the same cache tag entry;
- and
- when making an alteration to which a pending allocation table entry relates, to base the alteration on the pending allocation table entry, including any updates from received broadcasts.
A cache system, comprising:
- a buffer operative to store cache tag data from recent cache lookups;
- a comparator operative to compare a cache lookup request with the contents of the buffer;
- and
- wherein information from the buffer is supplied in response to a cache lookup request where the comparator matches the request to information in the buffer.
A method of operating a cache system, comprising:
- receiving a request from a client for a cache lookup;
- comparing the lookup request with the contents of a buffer;
- where the comparison fails, completing the lookup, sending the result to the requesting client, and storing the result in the buffer;
- and
- where the comparison succeeds, supplying corresponding data from the buffer to the client.
A computer readable storage medium containing instructions for causing a cache controller:
- to receive a request from a client for a cache lookup;
- to compare the lookup request with the contents of a buffer;
- where the comparison fails, to complete the lookup, to send the result to the requesting client, and to store the result in the buffer;
- and
- where the comparison succeeds, to supply corresponding data from the buffer to the client.
Dependencies are inferred from the claim text.