System and method for cache coherency in a cache with different cache location lengths
AssigneeIntel Corporation
InventorsYen-Kuang Chen, Christopher J. Hughes, James M. Tuck, III
Life of this patent
Estimating the term…
Abstract
A system and method for the design and operation of a cache system with differing cache location lengths in level one caches is disclosed. In one embodiment, each level one cache may include groups of cache locations of differing length, capable of holding portions of a level two cache line. A state tree may be created from data in a sharing vector. When a request arrives from a level one cache, the level two cache may examine the nodes of the state tree to determine whether the node of the state tree corresponding to the incoming request is already active. The results of this determination may be used to inhibit or permit the concurrent processing of the request.
Claims24
A processor, comprising:
- a first core with a first cache including a first group of cache locations of a first length and a second group of cache locations of a second length;
- a second cache at a hierarchy level further from said first core than said first cache, with a third group of cache locations of a third length;
- a first logic to perform coherency operations, to hold a directory entry of a first cache line in one of said third group of cache locations with fields corresponding to cache lines in said first cache, said directory entry including a vector to represent presence or absence of portions of said first cache line in said first group and said second group of cache locations;
- and
- a second core with a third cache including a fourth group of cache locations of said first length and a fifth group of cache locations of said second length;
- wherein said second cache includes a first register group to track requests made to said first cache and said third cache for portions of said first cache line in said first group, second group, fourth group, and fifth group of cache locations.
A method, comprising:
- receiving a request for a memory or cache operation from one of a group of first level caches each including cache locations of a first length and cache locations of a second length;
- determining in a second level cache which of said cache locations of said first length and said cache locations of said second length include portions of a first cache line of said second level cache corresponding to said request;
- delaying said request for said memory or cache operation based in part on results of said determining;
- and
- sending a group of data requests to selected ones of said group of first level caches in which said determining found portions of said first cache line.
A system, comprising:
- a processor including:
- a first core with a first cache including a first group of cache locations of a first length and a second group of cache locations of a second length,
- a second cache at a hierarchy level further from said first core than said first cache, with a third group of cache locations of a third length,
- a first logic to perform coherency operations, to hold a directory entry of a first cache line in one of said third group of cache locations with corresponding fields to cache lines in said first cache, said directory entry including a vector to represent presence or absence of portions of said first cache line in said first group and said second group of cache locations, and
- a second core with a third cache including a fourth group of cache locations of said first length and a fifth group of cache locations of said second length.
- wherein said second cache includes a first register group to track requests made to said first cache and said third cache for portions of said first cache line in said first group second group,. fourth group, and fifth group of cache locations;
- an interconnect to couple said processor to an input/output device;
- and
- a network controller coupled to said processor by said interconnect.
An apparatus, comprising:
- means for receiving a request for a memory or cache operation from one of a group of first level caches each including cache locations of a first length and cache locations of a second length;
- means for determining in a second level cache which of said cache locations of said first length and said cache locations of said second length include portions of a first cache line of said second level cache corresponding to said request;
- means for delaying said request for said memory or cache operation based in part on results produced by said means for determining;
- and
- means for sending a group of data requests to selected ones of said group of first level caches in which said means for determining found portions of said first cache line.
Dependencies are inferred from the claim text.