# US 11,113,091 B2 · Apparatus for forwarding a mediated request to processing circuitry in response to a configuration request

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

- Number: US 11,113,091 B2
- Document ID: US11113091B2
- Status: Granted
- Kind: B2
- Application number: 16/299,335
- Filed: 2019-03-12
- Published: 2020-09-17
- Granted: 2021-09-07
- Earliest claimed: 2019-03-12
- Assignees: Arm Limited
- Applicants: Arm Limited
- Inventors: Alexandre Romana; Mario Torrecillas Rodriguez; Eric Biscondi
- Web page: https://patentgrep.com/patent/US11113091B2

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 9/52: Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F 2009/45587: {Isolation or security of virtual machine instances}
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

An apparatus, method and computer program are described, the apparatus comprising processing circuitry configured to execute software, and an interface configured to receive, from the processing circuitry, a configuration request from first software requesting configuration of a virtualised device. In response to the configuration request, the interface is configured to forward a mediated request to the processing circuitry, and the mediated request comprises a request that second software having a higher privilege level than the first software determines a response to the configuration request received from the first software.

## Claims

### Claim 1

An apparatus comprising:
processing circuitry configured to execute software including first software and second software, in which the second software has a higher privilege level than the first software; and
hardware-implemented interface configured to receive, from the processing circuitry, a configuration request from the first software requesting configuration of a hardware accelerator or input/output device;
in which:
the hardware-implemented interface is responsive to receiving the configuration request from the first software to forward a mediated request to the processing circuitry for consideration by the second software, the mediated request being sent to the second software by the hardware-implemented interface, rather than being sent by the first software;
the mediated request comprises a request that the second software having the higher privilege level than the first software determines a mediated response indicating to the hardware-implemented interface whether the hardware-implemented interface should allow or reject the configuration of the hardware accelerator or the input/output device according to the configuration request received by the hardware-implemented interface from the first software; and
the hardware-implemented interface is configured to receive the mediated response from the processing circuitry in response to sending the mediated request.

### Claim 2 (depends on 1)

The apparatus of claim 1, in which
the hardware-implemented interface is configured to send a configuration response to the processing circuitry based on the mediated response, the configuration response being a response to the configuration request.

### Claim 3 (depends on 2)

The apparatus of claim 2, in which:
when the mediated response indicates that the configuration request from the first software should be rejected, the configuration response comprises an error indication.

### Claim 4 (depends on 2)

The apparatus of claim 2, in which:
the processing circuitry is configured to restrict issuing of the mediated response to a certain privilege level or higher.

### Claim 5 (depends on 1)

The apparatus of claim 1, in which:
the hardware-implemented interface is configured to trigger the hardware accelerator or the input/output device to be configured based on the mediated response.

### Claim 6 (depends on 1)

The apparatus of claim 1, in which:
when in a mediation enabled state, the hardware-implemented interface is configured to forward the mediated request to the processing circuitry in response to the configuration request; and
when in a mediation disabled state, the hardware-implemented interface is configured to suppress forwarding of the mediated request to the processing circuitry in response to the configuration request.

### Claim 7 (depends on 6)

The apparatus of claim 6, in which:
in response to receiving the configuration request when in the mediation disabled state, the hardware-implemented interface is configured to send an error indication to the processing circuitry.

### Claim 8 (depends on 6)

The apparatus of claim 6, comprising:
a register configured to store an enable indicator indicating whether the mediation enabled state or the mediation disabled state is set.

### Claim 9 (depends on 6)

The apparatus of claim 6, in which:
the processing circuitry is configured to set the mediation enabled state or the mediation disabled state by sending a mediation-configure command to the hardware-implemented interface.

### Claim 10 (depends on 9)

The apparatus of claim 9, comprising:
a register configured to store an enable indicator indicating whether the mediation enabled state or the mediation disabled state is set;
in which, in response to the mediation-configure command, the hardware-implemented interface is configured to change the value of the enable indicator stored in the register.

### Claim 11 (depends on 9)

The apparatus of claim 9, in which:
the processing circuitry is configured to restrict issuing of the mediation-configure command to software of a given privilege level or higher.

### Claim 12 (depends on 6)

The apparatus of claim 6, in which:
the hardware-implemented interface is configured to set the mediation enabled state or mediation disabled state separately for at least two types of configuration command; and
in response to a given type of configuration command, the hardware-implemented interface is configured to determine whether to forward the mediated request to the processing circuitry depending on which of the mediation enabled state and mediation disabled state is set corresponding to the given type of the configuration command.

### Claim 13 (depends on 1)

The apparatus of claim 1, in which:
the configuration command is associated with a device context identification value indicative of an associated device context, the associated device context comprising at least one parameter associated with the hardware accelerator or the input/output device when used by the first software.

### Claim 14 (depends on 1)

The apparatus of claim 1, in which:
the configuration request comprises one of:
a request related to power management of resources of the hardware accelerator or the input/output device;
a request which is unsupported in hardware; and
a request from an unassigned device context.

### Claim 15 (depends on 1)

The apparatus of claim 1, in which:
the processing circuitry is configured to send a device action triggering command from the first software to the hardware-implemented interface; and
the hardware-implemented interface is configured to send the device action triggering command to the hardware accelerator or the input/output device and omit sending a mediated request to the processing circuitry in response to the device action triggering command.

### Claim 16 (depends on 15)

The apparatus of claim 15, in which:
when the device action triggering command is unsupported by the hardware accelerator or input/output device, the hardware-implemented interface is configured to forward a further mediated request to the processing circuitry in response to the device action triggering command; and
the further mediated request comprises a request that the second software emulates the hardware accelerator or the input/output device to determine a response to the device action triggering command.

### Claim 17 (depends on 1)

The apparatus of claim 1, in which
the processing circuitry comprises shared processing circuitry executing both the first software and the second software.

### Claim 18 (depends on 1)

The apparatus of claim 1, in which:
the processing circuitry comprises first processing circuitry of a first processing unit and second processing circuitry of a second processing unit separate from the first processing unit; and
the first processing circuitry is configured to execute the first software and the second processing circuitry is configured to execute the second software.

### Claim 19

A method comprising:
executing software on processing circuitry, the software including first software and second software, in which the second software has a higher privilege level than the first software;
receiving, at a hardware-implemented interface, from the processing circuitry, a configuration request from the first software requesting configuration of a hardware accelerator or input/output device; and
the hardware-implemented interface responding to receiving the configuration request by forwarding a mediated request to the processing circuitry for consideration by the second software, the mediated request being sent to the second software by the hardware-implemented interface, rather than being sent by the first software;
in which the mediated request comprises a request that the second software having the higher privilege level than the first software determines a mediated response indicating to the hardware-implemented interface whether the hardware-implemented interface should allow or reject the configuration of the hardware accelerator or the input/output device according to the configuration request received by the hardware-implemented interface from the first software; and
the method comprises the hardware-implemented interface receiving the mediated response from the processing circuitry in response to sending the mediated request.
