# US 11,907,125 B2 · Hot line fairness mechanism favoring software forward progress

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

- Number: US 11,907,125 B2
- Document ID: US11907125B2
- Status: Granted
- Kind: B2
- Application number: 17/713,263
- Filed: 2022-04-05
- Published: 2023-10-05
- Granted: 2024-02-20
- Earliest claimed: 2022-04-05
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Gregory William Alexander; Tu-An T. Nguyen; Deanna Postles Dunn Berger; Timothy Bronson; Christian Jacobi
- Web page: https://patentgrep.com/patent/US11907125B2

## CPC

- G06F 12/084: with a shared cache
- G06F 7/584: {using finite field arithmetic, e.g. using a linear feedback shift register}
- G06F 9/30134: {Register stacks; shift registers}
- G06F 12/0811: with multilevel cache hierarchies
- G06F 12/0813: with a network or matrix configuration
- G06F 12/0831: using a bus scheme, e.g. with bus monitoring or watching means
- G06F 12/0833: {in combination with broadcast means (e.g. for invalidation or updating)}
- G06F 12/0846: Cache with multiple tag or data arrays being simultaneously accessible
- G06F 12/0855: Overlapped cache accessing, e.g. pipeline (G06F12/0846 takes precedence)
- G06F 2212/1008: Correctness of operation, e.g. memory ordering
- G06F 2212/1024: Latency reduction
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A computer-implemented method is provided. The method includes determining whether a rejection of a request is required and determining whether the request is software forward progress (SFP)-likely or SFP-unlikely upon determining that the rejection of the request is required. The method also includes executing a first pseudo random decision to set or not set a requested state of the request in an event the request is SFP-likely or SFP-unlikely, respectively, and rejecting the request following execution of the second pseudo random decision.

## Claims

### Claim 1

A computer-implemented method, comprising:
determining whether a rejection of a request is required;
determining whether the request is software forward progress (SFP)-likely or SFP-unlikely upon determining that the rejection of the request is required;
executing a first pseudo random decision to set or not set a requested state of the request in an event the request is SFP-likely or SFP-unlikely, respectively; and
rejecting the request following execution of the second first pseudo random decision.

### Claim 2 (depends on 1)

The computer-implemented method according to claim 1, wherein the determining of whether the request is SFP-likely or SFP-unlikely comprises recognizing at least one of a hardware heuristic and an indicator of a software-controlled hint.

### Claim 3 (depends on 1)

The computer-implemented method according to claim 1, further comprising:
determining whether the request is SFP-likely or SFP-unlikely upon determining that the rejection of the request is not required;
executing a second pseudo random decision to process the request or not to process the request in an event the rejection of the request is not required and the request is SFP-unlikely; and
executing a third pseudo random decision to set or not set a requested state of the request in an event a result of executing the second pseudo random decision is negative; and
rejecting the request following execution of the third pseudo random decision.

### Claim 4 (depends on 3)

The computer-implemented method according to claim 3, wherein an execution of the first, second and third pseudo random decisions comprises:
establishing a configurable threshold value to arrive at desired rates of positive versus negative decisions; and
comparing a value of a linear feedback shift register (LF SR) with the configurable threshold value.

### Claim 5 (depends on 3)

The computer-implemented method according to claim 3, wherein executions of at least two of the first, second and third pseudo random decisions are similar.

### Claim 6 (depends on 3)

The computer-implemented method according to claim 3, wherein executions of at least two of the first, second and third pseudo random decisions differ.

### Claim 7 (depends on 3)

The computer-implemented method according to claim 3, further comprising:
determining whether the requested state of the request is set or not set prior to determining whether the rejection of the request is required;
rejecting the request in an event the requested state is set and the rejection of the request is required; and
processing the request in an event the requested state is set and the rejection of the request is not required.

### Claim 8

A system comprising:
a shared cache and a controller coupled to the shared cache, the controller configured to:
determine whether a rejection of a request is required;
determine whether the request is software forward progress (SFP)-likely or SFP-unlikely upon determining that the rejection of the request is required;
execute a first pseudo random decision to set or not set a requested state of the request in an event the request is SFP-likely or SFP-unlikely, respectively; and
reject the request following execution of the second first pseudo random decision.

### Claim 9 (depends on 8)

The system according to claim 8, wherein the controller, in being configured to determine whether the request is SFP-likely or SFP-unlikely, the controller is further configured to recognize at least one of a hardware heuristic and an indicator of a software-controlled hint.

### Claim 10 (depends on 8)

The system according to claim 8, wherein the controller is further configured to:
determine whether the request is SFP-likely or SFP-unlikely upon determining that the rejection of the request is not required;
execute a second pseudo random decision to process the request or not to process the request in an event the rejection of the request is not required and the request is SFP-unlikely;
execute a third pseudo random decision to set or not set a requested state of the request in an event a result of executing the second pseudo random decision is negative; and
reject the request following execution of the third pseudo random decision.

### Claim 11 (depends on 10)

The system according to claim 10, wherein the controller, in being configured to execute the first, second and third pseudo random decisions, is further configured to:
establish a configurable threshold value to arrive at desired rates of positive versus negative decisions; and
compare a value of a linear feedback shift register (LF SR) with the configurable threshold value.

### Claim 12 (depends on 10)

The system according to claim 10, wherein executions of at least two of the first, second and third pseudo random decisions by the controller are similar.

### Claim 13 (depends on 10)

The system according to claim 10, wherein executions of at least two of the first, second and third pseudo random decisions by the controller differ.

### Claim 14 (depends on 10)

The system according to claim 10, wherein the controller is further configured to:
determine whether the requested state of the request is set or not set prior to determining whether the rejection of the request is required;
reject the request in an event the requested state is set and the rejection of the request is required; and
process the request in an event the requested state is set and the rejection of the request is not required.

### Claim 15

A controller comprising logic, the logic executable to perform operations comprising:
determining whether a rejection of a request is required;
determining whether the request is software forward progress (SFP)-likely or SFP-unlikely upon determining that the rejection of the request is required;
executing a first pseudo random decision to set or not set a requested state of the request in an event the request is SFP-likely or SFP-unlikely, respectively; and
rejecting the request following execution of the second first pseudo random decision.

### Claim 16 (depends on 15)

The controller according to claim 15, wherein the determining of whether the request is SFP-likely or SFP-unlikely comprises recognizing at least one of a hardware heuristic and an indicator of a software-controlled hint.

### Claim 17 (depends on 15)

The controller according to claim 15, wherein the operations further comprise:
determining whether the request is SFP-likely or SFP-unlikely upon determining that the rejection of the request is not required;
executing a second pseudo random decision to process the request or not to process the request in an event the rejection of the request is not required and the request is SFP-unlikely; and
executing a third pseudo random decision to set or not set a requested state of the request in an event a result of executing the second pseudo random decision is negative; and
rejecting the request following execution of the third pseudo random decision.

### Claim 18 (depends on 17)

The controller according to claim 17, wherein an execution of the first, second and third pseudo random decisions comprises:
establishing a configurable threshold value to arrive at desired rates of positive vs. negative decisions; and
comparing a value of a linear feedback shift register (LF SR) with the configurable threshold value.

### Claim 19 (depends on 17)

The controller according to claim 17, wherein executions of at least two of the first, second and third pseudo random decisions are similar or different.

### Claim 20 (depends on 17)

The controller according to claim 17, wherein the operations further comprise:
determining whether the requested state of the request is set or not set prior to determining whether the rejection of the request is required;
rejecting the request in an event the requested state is set and the rejection of the request is required; and
processing the request in an event the requested state is set and the rejection of the request is not required.
