IP Library › Granted Patent US 11,899,607
Granted Patent B2
US 11,899,607 · App. 17/335,378 · Granted Feb 13, 2024

Sending a request to agents coupled to an interconnect

Inventors: Timothy Hayes (Cambridge, GB); Alejandro Rico Carro (Austin, TX); Tushar P. Ringe (Austin, TX); Kishore Kumar Jagadeesha (Austin, TX)
Assignee: Arm Limited
G06F13/4031G06F12/0875G06F2212/1024
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,899,607
App. No.
17/335,378
Granted
Feb 13, 2024
Kind
B2
Abstract

An apparatus comprises an interconnect providing communication paths between agents coupled to the interconnect. A coordination agent is provided which performs an operation requiring sending a request to each of a plurality of target agents, and receiving a response from each of the target agents, the operation being unable to complete until the response has been received from each of the target agents. Storage circuitry is provided which is accessible to the coordination agent and configured to store, for each agent that the coordination agent may communicate with via the interconnect, a latency indication for communication between that agent and the coordination agent. The coordination agent is configured, prior to performing the operation, to determine a sending order in which to send the request to each of the target agents, the sending order being determined in dependence on the latency indication for each of the target agents.

Claims (65)

1. An apparatus comprising:

an interconnect to provide communication paths between agents coupled to the interconnect;

a coordination agent coupled to the interconnect and configured to perform an operation that requires sending, as a response to a single input request received from a requesting agent coupled to the interconnect, a request to each of a plurality of target agents selected for the operation from the agents coupled to the interconnect, and receiving a response from each of the plurality of target agents, the operation being unable to complete until the response has been received from each of the plurality of target agents; and

storage circuitry accessible to the coordination agent and configured to store, for each agent that the coordination agent may communicate with via the interconnect, a latency indication for communication between that agent and the coordination agent;

wherein:

the coordination agent is configured, prior to performing the operation, to determine a sending order in which to send the request to each of the plurality of target agents, the sending order being determined in dependence on the latency indication for each of the plurality of target agents;

the operation comprises a maintenance operation, and the request comprises a request to perform a maintenance action in respect of a respective microarchitectural structure for each of the target agents; and

the maintenance operation comprises a cache maintenance operation, the respective microarchitectural structure for each of the target agents comprises a target cache, and the maintenance action comprises one of:

invalidating at least one entry in the respective target cache for each of the target agents; and

updating data stored in the at least one entry.

2. The apparatus of claim 1 , wherein

the coordination agent is configured to determine the sending order such that the request is sent to target agents having a higher latency before the request is sent to target agents having a lower latency.

3. An apparatus comprising:

an interconnect to provide communication paths between agents coupled to the interconnect;

a coordination agent coupled to the interconnect and configured to perform an operation that requires sending, as a response to a single input request received from a requesting agent coupled to the interconnect, a request to each of a plurality of target agents selected for the operation from the agents coupled to the interconnect, and receiving a response from each of the plurality of target agents, the operation being unable to complete until the response has been received from each of the plurality of target agents; and

storage circuitry accessible to the coordination agent and configured to store, for each agent that the coordination agent may communicate with via the interconnect, a latency indication for communication between that agent and the coordination agent;

wherein:

the coordination agent is configured, prior to performing the operation, to determine a sending order in which to send the request to each of the plurality of target agents, the sending order being determined in dependence on the latency indication for each of the plurality of target agents;

the operation comprises a maintenance operation, and the request comprises a request to perform a maintenance action in respect of a respective microarchitectural structure for each of the target agents;

the input request comprises a cache coherency request issued by the requesting agent when seeking to access data at a target location in memory;

the maintenance operation comprises a cache coherency operation; and

the respective microarchitectural structure for each of the target agents comprises a data cache used to store a subset of data accessible in the memory.

4. The apparatus of claim 3 , wherein:

the coordination agent comprises snoop control circuitry configured to maintain a record providing an indication of the memory locations whose data is cached in each data cache;

the snoop control circuitry is arranged to select the target agents based on the record and the target location specified for the cache coherency request, the target agents comprising those agents that have respective caches that may store a copy of the data at the target location in memory; and

the request issued to each target agent comprises a snoop request.

5. The apparatus of claim 1 , wherein the input request is issued by the requesting agent in response to the requesting agent executing a maintenance instruction.

6. The apparatus of claim 5 , wherein the respective target cache for each of the target agents comprises at least one of:

a translation lookaside buffer;

an instruction cache; and

a branch prediction storage structure accessible to a branch predictor.

7. The apparatus of claim 1 , wherein:

the latency indication for a given agent is indicative of a round trip time between the request being sent to the given agent and the response being received from the given agent.

8. The apparatus of claim 7 , wherein the latency indication for the given agent is based on at least one of:

a static parameter defined for communication between the given agent and the coordination agent; and

a dynamic variable calculated based on current traffic between the given agent and the coordination agent.

9. The apparatus of claim 8 , wherein:

the interconnect comprises a plurality of routing nodes and a plurality of links between the routing nodes, each agent being coupled to one of the routing nodes; and

each communication path comprises at least one link between at least two routing nodes.

10. The apparatus of claim 9 , wherein

the static parameter comprises a number of links in the communication path between the given agent and the coordination agent.

11. The apparatus of claim 9 , wherein

each link has an associated latency; and

the static parameter comprises an indication of the associated latency of each link in the communication path between the given agent and the coordination agent.

12. The apparatus of claim 8 , wherein

the latency indication for a given agent is based on a congestion indication associated with the communication path between the given agent and the coordination agent.

13. The apparatus of claim 12 , wherein:

the congestion indication is based on an estimated amount of congestion in the communication path between the given agent and the coordination handling agent.

14. The apparatus of claim 13 , wherein

the interconnect comprises a plurality of routing nodes and a plurality of links between the routing nodes, each agent being coupled to one of the routing nodes, and each communication path comprising at least one link between at least two routing nodes; and

the estimated amount of congestion is based on a topology of the interconnect and a position, in the interconnect, of at least one link in the communication path between the given agent and the coordination handling agent.

15. The apparatus of claim 14 , wherein:

the interconnect comprises a mesh network, comprising a rectangular array of routing nodes, wherein the routing nodes comprise crosspoints; and

the estimated amount of congestion for a given link is based on a distance between the given link and an edge of the mesh network.

16. The apparatus of claim 8 , wherein:

the latency indication for a given agent is based on an expected time for the given agent to process the request.

17. A method comprising:

performing an operation that requires a coordination agent to send, as a response to a single input request received from a requesting agent coupled to an interconnect, a request to each of a plurality of target agents selected for the operation from agents coupled to the interconnect, and receive a response from each of the plurality of target agents, the operation being unable to complete until the response has been received from each of the plurality of target agents, and the interconnect providing communication paths between the agents coupled to the interconnect;

storing, for each agent that the coordination agent may communicate with via the interconnect, a latency indication for communication between that agent and the coordination agent; and

prior to performing the operation, determining a sending order in which to send the request to each of the plurality of target agents, the sending order being determined in dependence on the latency indication for each of the plurality of target agents;

wherein:

the operation comprises a maintenance operation, and the request comprises a request to perform a maintenance action in respect of a respective microarchitectural structure for each of the target agents; and

the maintenance operation comprises a cache maintenance operation, the respective microarchitectural structure for each of the target agents comprises a target cache, and the maintenance action comprises one of:

invalidating at least one entry in the respective target cache for each of the target agents; and

updating data stored in the at least one entry.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2021
From: HAYES, TIMOTHY; RICO CARRO, ALEJANDRO; RINGE, TUSHAR P.; JAGADEESHA, KISHORE KUMAR
To: ARM LIMITED
Reel/Frame 056401/0114 →
Continuity (1)
Related Publication 20220382703A1 · Dec 1, 2022
Cited By (1)
US 12,287,740