# US 2021/0240548 A1 · Controller address contention assumption

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0240548 A1
- Document ID: US20210240548A1
- Status: Published application
- Kind: A1
- Application number: 17/237,167
- Filed: 2021-04-22
- Published: 2021-08-05
- Earliest claimed: 2019-07-31
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Robert J. Sonnelitter, III; Michael Fee; Craig R. Walters; Arthur O'Neill; Matthias Klein
- Web page: https://patentgrep.com/patent/US20210240548A1

## CPC

- G06F 9/528: {by using speculative mechanisms}
- G06F 12/0811: with multilevel cache hierarchies
- G06F 9/3802: {Instruction prefetching}
- G06F 9/4881: {Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues}
- G06F 9/544: {Buffers; Shared memory; Pipes}
- G06F 12/0802: Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F 12/084: with a shared cache
- G06F 2212/1024: Latency reduction
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments of the present invention are directed to a computer-implemented method for controller address contention assumption. A non-limiting example computer-implemented method includes a shared controller receiving a fetch request for data from a first requesting agent, the receiving via at least one intermediary controller. The shared controller performs an address compare using a memory address of the data. In response to the memory address matching a memory address stored in the shared controller, the shared controller acknowledges the at least one intermediary controller's fetch request, wherein upon acknowledgement, the at least one intermediary controller resets, wherein the acknowledging comprises exchanging tokens by the shared controller and the at least one intermediary controller, wherein the at least one intermediary controller transmits an identity of the first requesting agent and a type of operation associated with the requested data, and wherein the shared controller transmits an acceptance.

## Claims

### Claim 1

A computer-implemented method comprising:
receiving, by a shared controller, a fetch request for data from a first requesting agent, the receiving via at least one intermediary controller;
performing, by the shared controller, an address compare using a memory address of the data;
in response to the memory address matching a memory address stored in the shared controller, acknowledging, by the shared controller, the at least one intermediary controller's fetch request, wherein upon acknowledgement, the at least one intermediary controller resets, wherein the acknowledging comprises exchanging tokens by the shared controller and the at least one intermediary controller, wherein the at least one intermediary controller transmits an identity of the first requesting agent and a type of operation associated with the requested data, and wherein the shared controller transmits an acceptance.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, the method further comprising:
in response to release of the data by a second requesting agent, transmitting, by the shared controller, the data to the first requesting agent.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, the at least one intermediary controller including a plurality of intermediary controllers, wherein the exchange of information further comprises a priority of an operation, and wherein the shared controller transmits the released data to a respective requesting agent of each intermediary controller of the plurality of intermediary controllers based on the respective priority.

### Claim 4 (depends on 2)

The computer-implemented method of claim 2 further comprising:
storing, by the shared controller, the identity of the requesting agent and the type of operation in a queue.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, the at least one intermediary controller including a plurality of intermediary controllers that each have a fetch request for a read-only operation of the data, wherein the shared controller transmits the released data to the respective requesting agents of the plurality of intermediary controllers in parallel.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, the at least one intermediary controller including a plurality of intermediary controllers that each have a fetch request for a respective write operation of the data, wherein the shared controller sequentially transmits the released data to a respective requesting agent of each intermediary controller of the plurality of intermediary controllers based on a time of each fetch request.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, the at least one intermediary controller including a plurality of intermediary controllers, wherein a first subset of the plurality of intermediary controllers each have a fetch request for a respective write operation of the data, wherein a second subset of the plurality of intermediary controllers each have a fetch request for a respective read-only operation of the data, the shared controller estimating a time of completion of the read-only operation being shorter than the write operation and transmitting the released data for requesting agents associated with second subset prior to requesting agents associated with the first subset.

### Claim 8

A system comprising:
a memory having computer readable instructions; and one or more processors for executing the computer readable instructions, the computer readable instructions controlling the one or more processors to perform operations comprising:
receiving, by a shared controller, a fetch request for data from a first requesting agent, the receiving via at least one intermediary controller;
performing, by the shared controller, an address compare using a memory address of the data;
in response to the memory address matching a memory address stored in the shared controller, acknowledging, by the shared controller, the at least one intermediary controller's fetch request, wherein upon acknowledgement, the at least one intermediary controller resets, wherein the acknowledging comprises exchanging tokens by the shared controller and the at least one intermediary controller, wherein the at least one intermediary controller transmits an identity of the first requesting agent and a type of operation associated with the requested data, and wherein the shared controller transmits an acceptance.

### Claim 9 (depends on 8)

The system of claim 8, wherein the operations further comprise:
in response to release of the data by a second requesting agent, transmitting, by the shared controller, the data to the first requesting agent.

### Claim 10 (depends on 9)

The system of claim 9, the at least one intermediary controller including a plurality of intermediary controllers, wherein the exchange of information further comprises a priority of an operation, and wherein the shared controller transmits the data to a respective requesting agent of each intermediary controller of the plurality of intermediary controllers based on the respective priority.

### Claim 11 (depends on 9)

The system of claim 9 further comprising:
storing, by the shared controller, the identity of the first requesting agent and the type of operation in a queue.

### Claim 12 (depends on 8)

The system of claim 8, the at least one intermediary controller including a plurality of intermediary controllers that each have a fetch request for a read-only operation of the data, wherein the shared controller transmits the released data to the respective requesting agents of the plurality of intermediary controllers in parallel.

### Claim 13 (depends on 8)

The system of claim 8, the at least one intermediary controller including a plurality of intermediary controllers that each have a fetch request for a respective write operation of the data, wherein the shared controller sequentially transmits the released data to a respective requesting agent of each intermediary controller of the plurality of intermediary controllers based on a time of each fetch request.

### Claim 14 (depends on 8)

The system of claim 8, the at least one intermediary controller including a plurality of intermediary controllers, wherein a first subset of the plurality of intermediary controllers each have a fetch request for a respective write operation of the data, wherein a second subset of the plurality of intermediary controllers each have a fetch request for a respective read-only operation of the data, the shared controller estimating a time of completion of the read-only operation being shorter than the write operation and transmitting the released data to requesting agents associated with second subset prior to requesting agents associated with the first subset.

### Claim 15

A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform operations comprising:
receiving, by a shared controller, a fetch request for data from a first requesting agent, the receiving via at least one intermediary controller;
performing, by the shared controller, an address compare using a memory address of the data;
in response to the memory address matching a memory address stored in the shared controller, acknowledging, by the shared controller, the at least one intermediary controller's fetch request, wherein upon acknowledgement, the at least one intermediary controller resets, wherein the acknowledging comprises exchanging tokens by the shared controller and the at least one intermediary controller, wherein the at least one intermediary controller transmits an identity of the first requesting agent and a type of operation associated with the requested data, and wherein the shared controller transmits an acceptance.

### Claim 16 (depends on 15)

The computer program product of claim 15 wherein the operations further comprise:
in response to release of the data by a second requesting agent, transmitting, by the shared controller, the data to the first requesting agent.

### Claim 17 (depends on 16)

The computer program product of claim 16, the at least one intermediary controller including a plurality of intermediary controllers, wherein the exchange of information further comprises a priority of an operation, and wherein the shared controller transmits the released data to a respective requesting agent of each intermediary controller of the plurality of intermediary controllers based on the respective priority.

### Claim 18 (depends on 15)

The computer program product of claim 15, the at least one intermediary controller including a plurality of intermediary controllers that each have a fetch request for a read-only operation of the data, wherein the shared controller transmits the released data to the respective requesting agents of the plurality of intermediary controllers in parallel.

### Claim 19 (depends on 15)

The computer program product of claim 15, the at least one intermediary controller including a plurality of intermediary controllers that each have a fetch request for a respective write operation of the data, wherein the shared controller sequentially transmits the released data to a respective requesting agent of each intermediary controller of the plurality of intermediary controllers based on a time of each fetch request.

### Claim 20 (depends on 15)

The computer program product of claim 15, the at least one intermediary controller including a plurality of intermediary controllers, wherein a first subset of the plurality of intermediary controllers each have a fetch request for a respective write operation of the data, wherein a second subset of the plurality of intermediary controllers each have a fetch request for a respective read-only operation of the data, the shared controller estimating a time of completion of the read-only operation being shorter than the write operation and transmitting the released data to requesting agents associated with second subset prior to requesting agents associated with the first subset.
