Backing out of a processor architectural state
First Claim
Patent Images
1. A method comprising:
- delaying deallocation of a register assigned to a logical operand of a retired executed instruction having the logical operand as a destination;
assigning the register to the same logical operand for an instruction to be re-executed; and
executing the instruction to be re-executed.
1 Assignment
0 Petitions
Accused Products
Abstract
An executed first instruction having a first logical operand as a destination is retired. A register assigned to the first logical operand is identified to back out of an architectural state. The identifying may be performed when an executed second instruction having a second logical operand as a destination is ready to retire or is retired. The register may be assigned to a third logical operand for an instruction to be executed.
-
Citations
42 Claims
-
1. A method comprising:
-
delaying deallocation of a register assigned to a logical operand of a retired executed instruction having the logical operand as a destination;
assigning the register to the same logical operand for an instruction to be re-executed; and
executing the instruction to be re-executed. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method comprising:
-
retiring an executed first instruction having a first logical operand as a destination;
retiring an executed second instruction having a second logical operand as a destination; and
delaying deallocation of a register assigned to the first logical operand to back out of an architectural state, wherein the delaying is performed when the second instruction is ready to retire or is retired. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
wherein the delaying comprises writing the identifier for the register from the architectural state position in the register allocation table to a back out register.
-
-
11. The method of claim 6, wherein the first and second logical operands are the same.
-
12. The method of claim 6, wherein the first and second logical operands each belong to a same class of operands.
-
13. The method of claim 6, wherein the first and second instructions each belong to a same class of instructions.
-
14. The method of claim 6, comprising:
-
assigning the register to a third logical operand for an instruction to be executed; and
executing the instruction to be executed.
-
-
15. The method of claim 14, wherein the first, second, and third logical operands are the same.
-
16. The method of claim 14, wherein the assigning is performed in response to detecting an exception.
-
17. The method of claim 14, wherein the instruction to be executed has already been executed.
-
18. The method of claim 14, wherein the assigning comprises using microcode to assign the register to the third logical operand for the instruction to be executed.
-
19. The method of claim 6, comprising deallocating the register when an executed third instruction having another register assigned for a third logical operand as a destination is ready to retire or is retired.
-
20. A processor comprising:
-
a plurality of registers;
an allocator to assign registers to logical operands of instructions;
at least one execution unit to execute instructions; and
a retirement unit to retire executed instructions and to deallocate registers for retired instructions, the retirement unit to delay deallocation of a register assigned to a first logical operand of a retired first instruction having the first logical operand as a destination to back out of an architectural state, the retirement unit to delay deallocation of the register assigned to the first logical operand when a second instruction having a second logical operand as a destination is ready to retire or is retired. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A processor comprising:
-
a plurality of registers;
an allocator to assign a register to a logical operand of an instruction having the logical operand as a destination;
an execution unit to execute the instruction;
a retirement unit to retire the executed instruction and to delay deallocation of the register assigned to the logical operand; and
microcode to assign the register to the same logical operand for an instruction to be re-executed. - View Dependent Claims (34, 35, 36)
-
-
37. A method comprising:
-
retiring an executed first instruction having a first logical operand as a destination;
retiring an executed second instruction having a second logical operand as a destination;
delaying deallocating of a register assigned to the first logical operand to back out of an architectural state, wherein the delaying is performed when the second instruction is ready to retire or is retired and wherein the delaying comprises writing an identifier for the register to a back out register;
assigning the register to a third logical operand for an instruction to be re-executed, wherein the assigning is performed in response to detecting an exception; and
executing the instruction to be re-executed. - View Dependent Claims (38, 39)
-
-
40. A processor comprising:
-
a plurality of registers;
an allocator to assign registers to logical operands of instructions;
at least one execution unit to execute instructions;
a retirement unit to retire executed instructions and to deallocate registers for retired instructions, the retirement unit to delay deallocation of a register assigned to a first logical operand of a retired first instruction having the first logical operand as a destination to back out of an architectural state, the retirement unit to delay deallocation of the register assigned to the first logical operand when a second instruction having a second logical operand as a destination is ready to retire or is retired, the retirement unit to write an identifier for the register to a back out register; and
microcode to assign the register to a third logical operand for an instruction to be re-executed, the microcode to assign the register to the third logical operand in response to an exception. - View Dependent Claims (41, 42)
-
Specification