Low-overhead/power-saving processor synchronization mechanism, and applications thereof
First Claim
1. A processor, comprising:
- a load-linked register,wherein execution of a first instruction by the processor causes the processor to suspend execution of a stream of instructions associated with the load-linked register if a first value is stored in the load-linked register.
3 Assignments
0 Petitions
Accused Products
Abstract
A low-overhead/power-saving processor synchronization mechanism, and applications thereof. In an embodiment, the present invention provides a processor having a load-linked register. The processor implements instructions related to the load-linked register. A first instruction, when executed by the processor, causes the processor to load a first value specified by the first instruction in a first register of a register file and to load a second value in the load-linked register. A second instruction, when executed by the processor, causes the processor to suspend execution of a stream of instructions associated with the load-linked register if the second value in the load-linked register is unaltered until the second value in the load-linked register is altered. A third instruction, when executed by the processor, causes the processor to conditionally move a third value to a memory location specified by the third instruction and to move a value representing the state of the load-linked register to the third register.
-
Citations
20 Claims
-
1. A processor, comprising:
-
a load-linked register, wherein execution of a first instruction by the processor causes the processor to suspend execution of a stream of instructions associated with the load-linked register if a first value is stored in the load-linked register. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system, comprising:
-
a processor that includes a register file that includes a plurality of registers, and a load-linked register, wherein execution of a first instruction by the processor causes the processor to load a first value specified by the first instruction in a first register of the register file and to load a second value in the load-linked register, and wherein execution of a second instruction by the processor causes the processor to suspend execution of a stream of instructions associated with the load-linked register until the value in the load-linked register is different from the second value; and a memory coupled to the processor. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A control method for a computing system, comprising:
-
(1) executing a first instruction that loads a first value specified by the first instruction in a first register of a register file and that loads a second value in a load-linked register; (2) executing a second instruction that suspends execution of a stream of instructions associated with the load-linked register until the value in the load-linked register is different from the second value; and (3) executing a third instruction that conditionally moves a third value to a memory location specified by the third instruction if the value in the load-linked register has not been altered since execution of the first instruction, and that loads a representation of the value stored in the load-linked register to a register of the register file. - View Dependent Claims (13, 14)
-
-
15. A control method for a computing system, comprising:
-
(1) executing a first instruction that loads a first value specified by the first instruction in a first register of a register file and that loads a second value in a load-linked register; (2) executing a second instruction that suspends execution of a stream of instructions associated with the load-linked register until the second value in the load-linked register is altered; and (3) powering-down a portion of a processor as a result of executing the second instruction. - View Dependent Claims (16, 17)
-
-
18. A computer method for implementing a lock, comprising:
-
(1) executing a sequence of instructions that cause a multithreading processor to suspend execution of a selected thread of instructions in response to a value stored in a hardware controlled load-linked register; and (2) resuming execution of the suspended stream of instructions in response to a change in the value stored in the load-linked register. - View Dependent Claims (19, 20)
-
Specification