# US 12,182,261 B2 · Controlling use of data determined by a resolve-pending speculative operation

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

- Number: US 12,182,261 B2
- Document ID: US12182261B2
- Status: Granted
- Kind: B2
- Application number: 17/310,008
- Filed: 2019-10-25
- Published: 2022-02-17
- Granted: 2024-12-31
- Earliest claimed: 2019-01-11
- Assignees: Arm Limited
- Applicants: Arm Limited
- Inventors: Alastair David Reid; Albin Pierrick Tonnerre; Frederic Claude Marie Piry; Peter Richard Greenhalgh; Ian Michael Caulfield; Timothy Hayes; Giacomo Gabrielli
- Web page: https://patentgrep.com/patent/US12182261B2

## CPC

- G06F 21/556: {involving covert channels, i.e. data leakage between processes (inhibiting the analysis of circuitry or operation with measures against power attack G06F21/755)}
- G06F 9/3842: {Speculative instruction execution}
- G06F 21/75: by inhibiting the analysis of circuitry or operation
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A data processing apparatus is provided which controls the use of data in respect of a further operation. The data processing apparatus identifies whether data is trusted or untrusted by identifying whether or not the data was determined by a speculatively executed resolve-pending operation. A permission control unit is also provided to control how the data can be used in respect of a further operation according to a security policy while the speculatively executed operation is still resolve-pending.

## Claims

### Claim 1

A data processing apparatus, comprising:
operation monitoring circuitry to identify whether data is trusted or untrusted by identifying whether or not the data was determined by a speculatively executed operation, which was resolve-pending; and
permission control circuitry to control how the data can be used in respect of a further operation according to a security policy while the speculatively executed operation is still resolve-pending,
wherein the speculatively executed operation was issued using control flow speculation.

### Claim 2 (depends on 1)

The data processing apparatus according to claim 1, wherein the operation monitoring circuitry is adapted to indicate that the data is other than trusted when identification is made that the data is derived by the speculatively executed resolve-pending operation or by an operation performed using untrusted data.

### Claim 3 (depends on 2)

The data processing apparatus according to claim 2, wherein the indication that the data is other than trusted is provided by controlling a speculation flag associated with the data.

### Claim 4 (depends on 3)

The data processing apparatus according to claim 3, wherein the identification that the data is derived by an operation performed using untrusted data is provided by controlling a trust flag associated with the data.

### Claim 5 (depends on 4)

The data processing apparatus according to claim 4, wherein a speculation flag and the trust flag are indicated by fields of a microoperation passed between stages of an instruction pipeline.

### Claim 6 (depends on 2)

The data processing apparatus according to claim 2, wherein the operation monitoring circuitry is adapted, in response to the speculatively executed operation being resolved, to indicate that the data is trusted.

### Claim 7 (depends on 6)

The data processing apparatus according to claim 6, wherein the identification that the data is derived by an operation performed using untrusted data is provided by controlling a trust flag associated with the data, and
wherein the operation monitoring circuitry is adapted to perform a trust status update operation to update the trust flag to indicate that the data is trusted by updating the trust flag when a speculation flag indicates that the speculatively executed operation is resolved.

### Claim 8 (depends on 7)

The data processing apparatus according to claim 7, comprising:
storage circuitry to store a speculation table to indicate, for a series of control flow operations, whether resolution of the series of control flow operations has occurred,
wherein the operation monitoring circuitry is adapted to indicate the data as trusted when one or more of the control flow operations that precede the speculatively executed resolve-pending operation are resolved.

### Claim 9 (depends on 1)

The data processing apparatus according to claim 1, wherein the operation monitoring circuitry is adapted to indicate that the data is trusted when identification is made that the data was derived from something other than:
a result of a speculatively executed resolve-pending operation; and
an operation performed using untrusted data.

### Claim 10 (depends on 1)

The data processing apparatus according to claim 1, wherein the permission control circuitry controls use of the data according to the security policy by configuring a control register to indicate whether the data can be used based on at least one of:
whether the further operation would update the state of a given cache;
an operation type of the further operation; and
a trust flag of the further operation.

### Claim 11 (depends on 10)

The data processing apparatus according to claim 10, wherein the permission control circuitry is adapted to selectively grant permission to the further operation to use the data by performing a permission determination operation by comparing a corresponding portion of the control register with at least one of:
whether the further operation would update the state of a given cache;
the operation type of the further operation; and
the trust flag of the further operation.

### Claim 12 (depends on 1)

The data processing apparatus according to claim 1, wherein the further operation is a memory access operation to access further data; and
the permission control circuitry, based on the security policy, inhibits the use of the data to perform the further operation when the data is untrusted.

### Claim 13 (depends on 1)

The data processing apparatus according to claim 1, wherein the permission control circuitry, based on the security policy, stalls execution of the further operation while the data is untrusted.

### Claim 14 (depends on 1)

The data processing apparatus according to claim 1, wherein the permission control circuitry, based on the security policy, permits the execution of one or more other operations while the data is untrusted.

### Claim 15 (depends on 1)

The data processing apparatus according to claim 1, wherein the permission control circuitry, based on the security policy, treats the further operation as a No Operation (NOOP) operation or a memory prefetch operation when the data is untrusted.

### Claim 16 (depends on 1)

The data processing apparatus according to claim 1, wherein the speculatively executed operation is a speculative branch operation.

### Claim 17 (depends on 1)

The data processing apparatus according to claim 1, wherein the permission control circuitry, based on the security policy, is adapted to prevent a speculative branch which is dependent on untrusted data.

### Claim 18 (depends on 17)

The data processing apparatus according to claim 17, further comprising a plurality of architectural or microarchitectural registers to store an indication of a trust flag.

### Claim 19

A method, comprising the steps of:
identifying, using operation monitoring circuitry, whether data is trusted or untrusted by identifying whether or not the data was determined by a speculatively executed operation, which was resolve-pending; and
controlling, using permission control circuitry, how the data can be used in respect of a further operation according to a security policy while the speculatively executed operation is still resolve-pending,
wherein the speculatively executed operation was issued using control flow speculation.
