Back to results
US 7,689,778 B2Granted
Preventing system snoop and cross-snoop conflicts
AssigneeIntel Corporation
InventorsYen-Cheng Liu, Krishnakanth V. Sistla, George Cai, Jeffrey D. Gilbert
Life of this patent
Estimating the term…
Abstract
In various embodiments, hardware, software and firmware or combinations thereof may be used to prevent cache conflicts within microprocessors and/or computer systems. More particularly, embodiments of the invention relate to a technique to prevent cache conflicts within a processor and/or computer system in which a number of accesses may be made to a particular cache or group of caches.
Claims18
A method comprising:
- initiating a first snoop operation from a first bus agent to a shared cache;
- initiating a second snoop operation from a second bus agent to the shared cache, wherein the first bus agent is a first processor core within a multi-core processor and the second bus agent is a bus agent external to the multi-core processor;
- blocking the second snoop operation to allow the first snoop operation to complete by issuance of a snoop blocking signal from a logic coupled between the shared cache, the first processor core and the external bus agent, the blocking to prevent the external bus agent and other external bus agents from gaining ownership of the shared cache until the snoop blocking signal is de-asserted;
- issuing at least one block checking transaction from the logic after the first snoop operation has been initiated to determine if the second snoop operation is pending;
- and
- if the second snoop operation is pending, issuing a snoop unblock signal from the logic to unblock the second snoop operation after the first snoop operation has completed to allow the external bus agent to gain ownership of the shared cache.
3 more elements
A system comprising:
- a multi-core processor including a first processor core, and a shared cache to store data to be used by cores within the multi-core processor, and a logic coupled to the first processor core and the shared cache to block a snoop operation from an external agent by issuance of a snoop blocking signal to prevent the external agent and other external agents from gaining ownership of the shared cache until the snoop blocking signal is de-asserted, issue at least one block checking transactions after a cross-snoop operation has been initiated within the multi-core processor to determine if the snoop operation is pending, and if the snoop operation is pending, issue a snoop unblock signal to unblock the snoop operation after the cross-snoop operation has completed to allow the external agent to gain ownership of the shared cache;
- the external agent coupled to a bus external to the multi-core processor, the external agent to initiate the snoop operation to the shared cache if the cross-snoop operation is not in progress, wherein the external agent is to check for cross-snoop operations being initiated within the multi-core processor by submission of a cross-snoop check to the shared cache before initiation of the snoop operation, and if the external agent detects a cross-snoop operation, the external agent does not snoop the shared cache until the cross-snoop operation is complete, otherwise the external agent snoops the shared cache.
A processor comprising:
- a plurality of cores each associated with a private cache;
- a shared cache coupled to the plurality of cores;
- a logic coupled to the shared cache and the plurality of cores, the logic to receive a cross-snoop check from an external agent to the shared cache, and to issue a look-up request to the shared cache if no cross-snoop from one of the plurality of cores has been detected, wherein the logic is to allow the external agent to snoop the shared cache if no request from one of the plurality of cores is initiated before the external agent issues the look-up request, and otherwise to block the look-up request via a snoop blocking signal that is to prevent the external agent from gaining ownership of the shared cache until the snoop blocking signal is de-asserted if a cross-snoop to the shared cache from one of the plurality of cores has been detected responsive to the cross-snoop check, issue at least one block checking transaction after the cross-snoop has been initiated to determine if the look-up request is pending, and to unblock the look-up request via a snoop unblock signal after the cross-snoop is completed to allow the external agent to gain the shared cache ownership.
Dependencies are inferred from the claim text.