IP Library › Granted Patent US 12,112,169
Granted Patent B2
US 12,112,169 · App. 18/096,141 · Granted Oct 8, 2024

Register freeing latency

Inventors: Luca Nassi (Antibes, FR); Geoffray Matthieu Lacourba (Nice, FR); Cédric Denis Robert Airaud (Saint Laurent du Var, FR); Albin Pierrick Tonnerre (Nice, FR)
Assignee: Arm Limited
G06F9/30098G06F9/30094G06F9/384
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,112,169
App. No.
18/096,141
Granted
Oct 8, 2024
Kind
B2
Abstract

A data processing apparatus is provided. Instruction send circuitry sends an instruction to an external processor to be executed by the external processor. Allocation circuitry allocates a specified one of several registers for a result of the instruction having been executed on the external processor and data receive circuitry receives the result of the instruction having been executed on the external processor and stores the result in the specified one of the several registers. In response to a condition being met: the specified one of the several registers is dereserved prior to the result being received by the data receive circuitry, and the result is discarded by the data receive circuitry when the result is received by the data receive circuitry.

Claims (47)

1. A data processing apparatus comprising:

instruction send circuitry configured to send an instruction to an external processor to be executed by the external processor;

allocation circuitry configured to allocate a specified one of a plurality of registers for a result of the instruction having been executed on the external processor; and

data receive circuitry configured to receive the result of the instruction having been executed on the external processor and to store the result in the specified one of the plurality of registers, wherein

in response to a condition being met:

the specified one of the plurality of registers is dereserved prior to the result being received by the data receive circuitry, and the result is discarded by the data receive circuitry when the result is received by the data receive circuitry.

2. The data processing apparatus according to claim 1 , wherein

the result comprises a condition flag that is from the instruction having been executed on the external processor.

3. The data processing apparatus according to claim 1 , wherein

the result comprises a data value that is from the instruction having been executed on the external processor.

4. The data processing apparatus according to claim 1 , wherein

the external processor is shared among a plurality of data processing apparatuses including the data processing apparatus.

5. The data processing apparatus according to claim 1 , wherein

the instruction is a vector instruction.

6. The data processing apparatus according to claim 1 , wherein

the allocation circuitry comprises rename circuitry configured to store relationships between physical registers and architectural registers; and

the specified one of a plurality of registers is a physical register.

7. The data processing apparatus according to claim 1 , wherein

the condition comprises a first requirement that the specified one of a plurality of registers is to be reserved for a further instruction committed to be executed.

8. The data processing apparatus according to claim 7 , wherein

the condition comprises a second requirement that contents of the specified one of the plurality of registers are either valid or unused.

9. The data processing apparatus according to claim 8 , wherein

the allocation circuitry comprises at least one flag associated with the specified one of the plurality of registers and configured to indicate that the contents of the specified one of the plurality of registers are unused.

10. The data processing apparatus according to claim 8 , wherein

the allocation circuitry is configured to determine that the contents of the specified one of the plurality of registers are unused in response to the contents being unread prior to a request to reassign the specified one of the plurality of registers.

11. The data processing apparatus according to claim 1 , wherein

the allocation circuitry comprises data discard circuitry configured to indicate, when set, that the result should be discarded by the data receive circuitry when the result is received by the data receive circuitry.

12. The data processing apparatus according to claim 11 , wherein

the data discard circuitry comprises a 1-bit field; and

when the result is received and the 1-bit field is set, the result is discarded and the 1-bit field is cleared.

13. The data processing apparatus according to claim 11 , wherein

the data discard circuitry comprises an N-bit field, wherein N>1; and

when the result is received and the N-bit field is other than a predetermined value, the result is discarded and the N-bit field moved closer to the predetermined value.

14. The data processing apparatus according to claim 13 , wherein

the N-bit field is associated with the plurality of registers including the one of the plurality of registers and is configured to indicate whether results including the result of a plurality of instructions including the instruction, are unused.

15. A data processing method comprising:

sending an instruction to an external processor to be executed by the external processor;

allocating a specified one of a plurality of registers for a result of the instruction having been executed on the external processor; and

receiving the result of the instruction having been executed on the external processor and to store the result in the specified one of the plurality of registers, wherein

in response to a condition being met:

the specified one of the plurality of registers is dereserved prior to the result being received by the data receive circuitry, and the result is discarded by the data receive circuitry when the result is received by the data receive circuitry.

16. A non-transitory computer-readable medium to store computer-readable code for fabrication of a data processing apparatus comprising:

instruction send circuitry configured to send an instruction to an external processor to be executed by the external processor;

allocation circuitry configured to allocate a specified one of a plurality of registers for a result of the instruction having been executed on the external processor; and

data receive circuitry configured to receive the result of the instruction having been executed on the external processor and to store the result in the specified one of the plurality of registers, wherein

in response to a condition being met:

the specified one of the plurality of registers is dereserved prior to the result being received by the data receive circuitry, and the result is discarded by the data receive circuitry when the result is received by the data receive circuitry.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 12, 2023
From: NASSI, LUCA; LACOURBA, GEOFFRAY MATTHIEU; AIRAUD, CÉDRIC DENIS ROBERT; TONNERRE, ALBIN PIERRICK
To: ARM LIMITED
Reel/Frame 062357/0208 →
Continuity (1)
Related Publication 20240241723A1 · Jul 18, 2024