# US 12,001,343 B1 · Selective distribution of translation entry invalidation requests in a multithreaded data processing system

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

- Number: US 12,001,343 B1
- Document ID: US12001343B1
- Status: Granted
- Kind: B1
- Application number: 18/091,706
- Filed: 2022-12-30
- Granted: 2024-06-04
- Earliest claimed: 2022-12-30
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Derek E. Williams; Florian Auernhammer
- Web page: https://patentgrep.com/patent/US12001343B1

## CPC

- G06F 12/1045: associated with a data cache
- G06F 12/0808: with cache invalidating means (G06F12/0815 takes precedence)
- G06F 13/1673: {using buffers}
- G06F 13/24: using interrupt (G06F13/32 takes precedence)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A data processing system includes a plurality of processing nodes communicatively coupled to a system fabric. Each of the processing nodes includes a respective plurality of processor cores. Logical partition (LPAR) information for each of a plurality of LPARs is maintained in a register set in each of the processor cores, where the LPAR information indicates, for each of the LPARs, which of the processing nodes may hold an address translation entry for each LPAR. Based on the LPAR information, a first processor core selects a broadcast scope for a multicast request on the system fabric that includes fewer than all of the plurality of processing nodes and issues the multicast request with the selected broadcast scope. The first processor core updates the LPAR information in the register set of a second processor core in another of the plurality of processing nodes via an inter-processor interrupt.

## Claims

### Claim 1

A method of multicast communication in a data processing system including a plurality of processing nodes communicatively coupled to a system fabric for communicating requests, wherein each of the plurality of processing nodes includes a respective plurality of processor cores, the method comprising:
maintaining, in a register set in each of the plurality of processor cores, logical partition (LPAR) information for each of a plurality of LPARs, wherein the LPAR information indicates, for each of the plurality of LPARs, which of the plurality of processing nodes may hold an address translation entry for said each LPAR;
based on the LPAR information, a first processor core among the plurality of processor cores selecting a broadcast scope for a multicast request on the system fabric and issuing the multicast request on the system fabric with the selected broadcast scope, wherein the selected broadcast scope includes fewer than all of the plurality of processing nodes; and
the first processor core updating the LPAR information in the register set of a second processor core in another of the plurality of processing nodes via an inter-processor interrupt.

### Claim 2 (depends on 1)

The method of claim 1, wherein the multicast request comprises a translation entry invalidation request.

### Claim 3 (depends on 1)

The method of claim 1, wherein:
the maintaining includes maintaining LPAR information indicating which of the plurality of processing nodes holds input/output (I/O) address translation entries for the plurality of LPARs.

### Claim 4 (depends on 1)

The method of claim 1, wherein:
the data processing system includes a system memory communicatively coupled to the system fabric; and
the maintaining includes maintaining in the system memory LPAR information for at least one inactive LPAR not executing in the data processing system.

### Claim 5 (depends on 1)

The method of claim 1, wherein the updating includes the first processor core establishing an entry for a particular LPAR in the LPAR information in at least a second processor core in response to execution of an enable routine.

### Claim 6 (depends on 1)

The method of claim 1, wherein the updating includes the first processor core invalidating an entry for a particular LPAR in the LPAR information in at least a second processor core in response to execution of a disable routine.

### Claim 7

A processing node for a data processing system including a plurality of processing nodes communicatively coupled to a system fabric, the processing unit comprising:
a plurality of processor cores, wherein:
each of the plurality of processor cores includes a register set configured to buffer logical partition (LPAR) information for each of a plurality of LPARs, wherein the LPAR information indicates, for each of the plurality of LPARs, which of the plurality of processing nodes may hold an address translation entry for said each LPAR;
the plurality of processor cores includes a first processor core configured to select, based on the LPAR information in the register set, a broadcast scope for a multicast request on the system fabric and to issue the multicast request on the system fabric with the selected broadcast scope, wherein the selected broadcast scope includes fewer than all of the plurality of processing nodes; and
the first processor core is configured to update the LPAR information in the register set of a second processor core in another of the plurality of processing nodes via an inter-processor interrupt.

### Claim 8 (depends on 7)

The processing node of claim 7, wherein the multicast request comprises a translation entry invalidation request.

### Claim 9 (depends on 7)

The processing node of claim 7, wherein the LPAR information indicates which of the plurality of processing nodes holds input/output (I/O) address translation entries for the plurality of LPARs.

### Claim 10 (depends on 7)

The processing node of claim 7, wherein:
the data processing system includes a system memory communicatively coupled to the system fabric; and
the processing node is further configured to maintain in the system memory LPAR information for at least one inactive LPAR not executing in the data processing system.

### Claim 11 (depends on 7)

The processing node of claim 7, wherein the first processor core is configured to update the LPAR information in the register set of the second processor core by establishing an entry for a particular LPAR in response to execution of an enable routine.

### Claim 12 (depends on 7)

The processing node of claim 7, wherein the first processor core is configured to update the LPAR information in the register set of the second processor core by invalidating an entry for a particular LPAR in response to execution of a disable routine.

### Claim 13 (depends on 7)

A data processing system, comprising:
the plurality of processing nodes including the processing node of claim 7; and
the system fabric coupling the plurality of processing nodes.

### Claim 14

A design structure tangibly embodied in a machine-readable storage device for designing, manufacturing, or testing an integrated circuit, the design structure comprising:
a processing node for a data processing system including a plurality of processing nodes communicatively coupled to a system fabric, the processing unit including:
a plurality of processor cores, wherein:
each of the plurality of processor cores includes a register set configured to buffer logical partition (LPAR) information for each of a plurality of LPARs, wherein the LPAR information indicates, for each of the plurality of LPARs, which of the plurality of processing nodes may hold an address translation entry for said each LPAR;
the plurality of processor cores includes a first processor core configured to select, based on the LPAR information in the register set, a broadcast scope for a multicast request on the system fabric and to issue the multicast request on the system fabric with the selected broadcast scope, wherein the selected broadcast scope includes fewer than all of the plurality of processing nodes; and
the first processor core is configured to update the LPAR information in the register set of a second processor core in another of the plurality of processing nodes via an inter-processor interrupt.

### Claim 15 (depends on 14)

The design structure of claim 14, wherein the multicast request comprises a translation entry invalidation request.

### Claim 16 (depends on 14)

The design structure of claim 14, wherein the LPAR information indicates which of the plurality of processing nodes holds input/output (I/O) address translation entries for the plurality of LPARs.

### Claim 17 (depends on 14)

The design structure of claim 14, wherein:
the data processing system includes a system memory communicatively coupled to the system fabric; and
the processing node is further configured to maintain in the system memory LPAR information for at least one inactive LPAR not executing in the data processing system.

### Claim 18 (depends on 14)

The design structure of claim 14, wherein the first processor core is configured to update the LPAR information in the register set of the second processor core by establishing an entry for a particular LPAR in response to execution of an enable routine.

### Claim 19 (depends on 14)

The design structure of claim 14, wherein the first processor core is configured to update the LPAR information in the register set of the second processor core by invalidating an entry for a particular LPAR in response to execution of a disable routine.
