Coherence protocol tables
AssigneeIntel Corporation
InventorsRobert Beers, Yuvraj S. Dhillon
Life of this patent
Estimating the term…
Abstract
An agent is provided to include state table storage to hold a set of state tables to represent a plurality of coherence protocol actions, where the set of state tables is to include at least one nested state table. The agent further includes protocol logic associated with the state table storage, the protocol logic to receive a coherence protocol message, and determine a coherence protocol action of the plurality of coherence protocol actions from the set of state tables based at least in part on the coherence protocol message.
Claims20
An apparatus comprising:
- a coherence agent, implemented at least in part in hardware, wherein the coherence agent is to:
- identify a particular action;
- identify that a particular one of a plurality of state machine tables stored in memory corresponds to the particular action, wherein the plurality of state machine tables comprise machine-readable table structures and describe conditions governing state machine transitions to be made by coherence agents to comply with a particular coherence protocol;
- read the particular table to identify a particular row corresponding to a current coherence state of a cache line, wherein the particular row comprises a reference to another one of the plurality of state machine tables;
- access the other state machine table based on the reference to determine a particular coherence state transition from the current coherence state of the cache line;
- and transition the cache line from the current coherence state to a new coherence state based on the particular coherence state transition;
- and handle a request from another coherence agent corresponding to a cache managed by the coherence agent based on the new coherence state.
An apparatus comprising:
- a computer-readable memory storing a plurality of state machine tables of a formal specification for a coherence protocol, wherein the plurality of state machine tables comprise machine-readable table structures and describe conditions governing state machine transitions to be made by coherence agents in compliance with the coherence protocol, each of the state machine tables is associated with a respective action and includes a plurality of respective columns, some of the columns are associated with a current state and other columns are associated with a next state, at least one column associated with a next state of a particular one of the plurality of state machine tables includes a reference to another one of the plurality of state machine tables, the particular state machine table is associated with a particular action, and the other state machine table is associated with a sub-action;
- and
- a coherence agent, implemented at least in part in hardware, to use the plurality of state machines to determine behaviors of the coherence agent required or allowed by the coherence protocol, wherein the behaviors comprise transitioning a cache line from a current coherence state to a next coherence state,
- wherein the coherence agents are further to handle a request corresponding to a cache managed by the coherence agent based on the new coherence state.
A method comprising:
- receiving, at a coherence agent of a device, coherence protocol information;
- identifying a particular state table in a plurality of state machine tables stored in memory corresponding to the information, wherein the plurality of state machine tables comprise machine-readable table structures and describe conditions governing state machine transitions to be made by coherence agents to comply with a particular coherence protocol, and reading the particular table to identify a particular row of the particular table corresponding to a current coherence state of a cache line, wherein the particular row comprises a reference to another one of the plurality of state machine tables;
- accessing the other state machine table based on the reference;
- and performing a state machine transition from the current coherence state for the cache line based at least in part on contents of the other state machine table;
- and handling a request, received from another coherence agent, corresponding to a cache managed by the coherence agent based on the new coherence state.
A system comprising:
- a home agent comprising hardware circuitry, the home agent to service requests to a coherent memory space;
- a cache agent comprising hardware circuitry, the cache agent communicatively coupled to the home agent, the cache agent to make requests of the coherent memory space according to a coherence protocol;
- and
- a computer-readable memory accessible by the cache agent, the memory to store a plurality of state machine tables corresponding to the information, wherein the plurality of state machine tables comprise machine-readable table structures and describe conditions governing state machine transitions to be made by coherence agents to comply with a particular coherence protocol, a particular state machine table corresponds to a particular action and directs the cache agent to use another one of the plurality of state machine tables corresponding to a sub-action in association with entering a next state, and the particular table includes a reference to the other state machine table in a particular row of the particular table corresponding to a transition to the next state,
- wherein the coherence agents are further to handle a request corresponding to a cache managed by the coherence agent based on the new coherence state.
Dependencies are inferred from the claim text.