Coherency control
AssigneeArm Limited
InventorAndrew David Tune
Life of this patent
Estimating the term…
Abstract
An apparatus comprises an non-inclusive cache (14) configured to cache data and coherency control circuitry (16). The coherency control circuitry is configured to look up the non-inclusive cache in response to a coherent access request from a first requestor (4). In response to determining that the coherent access request can be serviced using data stored in a matching entry of the non-inclusive cache, the coherency control circuitry references snoop-filter information associated with the matching entry to determine whether the first requestor can use the data stored in the matching entry without waiting for a response to a snoop of a coherent cache (8).
Claims19
An apparatus comprising:
- a non-inclusive cache configured to cache data;
- and
- coherency control circuitry configured to:
- look up the non-inclusive cache in response to a coherent access request from a first requestor,
- in response to determining that the coherent access request can be serviced using data stored in a matching entry of the non-inclusive cache, reference snoop-filter information associated with the matching entry to determine whether the first requestor can use the data stored in the matching entry without waiting for a response to a snoop of a higher level coherent cache, further in a cache hierarchy from a memory than the non-inclusive cache, permitted to store a different version of the data stored in the matching entry of the non-inclusive cache,
- track snoop-filter information only for addresses allocated a valid entry in the non-inclusive cache, and
- in response to determining that the coherent access request cannot be serviced using data stored in the non-inclusive cache, issue a speculative memory access request to memory whilst it is unknown whether the coherent access request can be serviced by the coherent cache, and in response to return of returned data from the memory, either:
- provide the returned data to the first requestor in a message indicating that the first requestor should wait for responses to any issued snoop requests before using the returned data, or
- delay providing the returned data to the first requestor until receipt of a snoop response from the coherent cache indicating that the coherent cache cannot service the coherent access request.
A method comprising:
- caching data in a non-inclusive cache;
- looking up, with coherency control circuitry, the non-inclusive cache in response to a coherent access request from a first requestor;
- in response to determining that the coherent access request can be serviced using data stored in a matching entry of the non-inclusive cache, referencing, with the coherency control circuitry, snoop-filter information associated with the matching entry to determine whether the first requestor can use the data stored in the matching entry without waiting for a response to a snoop of a higher level coherent cache, further in a cache hierarchy from a memory than the non-inclusive cache, permitted to store a different version of the data stored in the matching entry of the non-inclusive cache,
- tracking, with the coherency control circuitry, snoop-filter information only for addresses allocated a valid entry in the non-inclusive cache;
- and
- in response to determining that the coherent access request cannot be serviced using data stored in the non-inclusive cache, issuing a speculative memory access request to memory whilst it is unknown whether the coherent access request can be serviced by the coherent cache, and in response to return of returned data from the memory, either:
- providing the returned data to the first requestor in a message indicating that the first requestor should wait for responses to any issued snoop requests before using the returned data, or
- delaying providing the returned data to the first requestor until receipt of a snoop response from the coherent cache indicating that the coherent cache cannot service the coherent access request.
A non-transitory computer-readable medium storing computer-readable code for fabrication of an apparatus comprising:
- a non-inclusive cache configured to cache data;
- and
- coherency control circuitry configured to:
- look up the non-inclusive cache in response to a coherent access request from a first requestor, and
- in response to determining that the coherent access request can be serviced using data stored in a matching entry of the non-inclusive cache, reference snoop-filter information associated with the matching entry to determine whether the first requestor can use the data stored in the matching entry without waiting for a response to a snoop of a higher level coherent cache, further in a cache hierarchy from a memory than the non-inclusive cache, permitted to store a different version of the data stored in the matching entry of the non-inclusive cache,
- track snoop-filter information only for addresses allocated a valid entry in the non-inclusive cache, and
- in response to determining that the coherent access request cannot be serviced using data stored in the non-inclusive cache, issue a speculative memory access request to memory whilst it is unknown whether the coherent access request can be serviced by the coherent cache, and in response to return of returned data from the memory, either:
- provide the returned data to the first requestor in a message indicating that the first requestor should wait for responses to any issued snoop requests before using the returned data, or
- delay providing the returned data to the first requestor until receipt of a snoop response from the coherent cache indicating that the coherent cache cannot service the coherent access request.
Dependencies are inferred from the claim text.