INTEGRATED MECHANISM FOR SUSPENSION AND DEALLOCATION OF COMPUTATIONAL THREADS OF EXECUTION IN A PROCESSOR
First Claim
1. A microprocessor core, comprising:
- a plurality of inputs, configured to indicate whether a corresponding plurality of independently occurring events has occurred, wherein said plurality of inputs are non-memory address inputs; and
a yield instruction, included in the instruction set of the architecture of the microprocessor core, comprising a user-visible output operand and an explicit input operand, said input operand for specifying one or more of said plurality of independently occurring events;
wherein said yield instruction instructs the microprocessor core to suspend issuing for execution instructions of a program thread until at least one of said independently occurring events specified by said input operand has occurred, wherein said program thread contains said yield instruction;
wherein said yield instruction further instructs the microprocessor core to return a value in said output operand indicating which of said independently occurring events occurred to cause the microprocessor core to resume issuing said instructions of said program thread.
11 Assignments
0 Petitions
Accused Products
Abstract
A microprocessor core includes a plurality of inputs that indicate whether a corresponding plurality of independently occurring events has occurred. The inputs are non-memory address inputs. The core also includes a yield instruction in its instruction set architecture, comprising a user-visible output operand and an explicit input operand. The input operand specifies one or more of the independently occurring events. The yield instruction instructs the microprocessor core to suspend issuing for execution instructions of a program thread until at least one of the independently occurring events specified by the input operand has occurred. The program thread contains the yield instruction. The yield instruction further instructs the microprocessor core to return a value in the output operand indicating which of the independently occurring events occurred to cause the microprocessor core to resume issuing the instructions of the program thread.
158 Citations
25 Claims
-
1. A microprocessor core, comprising:
-
a plurality of inputs, configured to indicate whether a corresponding plurality of independently occurring events has occurred, wherein said plurality of inputs are non-memory address inputs; and a yield instruction, included in the instruction set of the architecture of the microprocessor core, comprising a user-visible output operand and an explicit input operand, said input operand for specifying one or more of said plurality of independently occurring events; wherein said yield instruction instructs the microprocessor core to suspend issuing for execution instructions of a program thread until at least one of said independently occurring events specified by said input operand has occurred, wherein said program thread contains said yield instruction; wherein said yield instruction further instructs the microprocessor core to return a value in said output operand indicating which of said independently occurring events occurred to cause the microprocessor core to resume issuing said instructions of said program thread. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method for conditionally suspending issuing instructions of a program thread in a microprocessor core having an instruction set of its architecture, the method comprising:
-
receiving a plurality of inputs configured to indicate whether a corresponding plurality of independently occurring events has occurred, wherein said plurality of inputs are non-memory address inputs; issuing a yield instruction, said instruction included in the instruction set of the architecture of the microprocessor core, said instruction comprising a user-visible output operand and an explicit input operand, said input operand for specifying one or more of said plurality of independently occurring events; suspending issuing for execution instructions of a program thread until at least one of said independently occurring events specified by said input operand has occurred, wherein said program thread contains said yield instruction; and returning a value in said output operand indicating which of said independently occurring events occurred to cause the microprocessor core to resume issuing said instructions of said program thread. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
-
21. A computer program product for use with a computing device, the computer program product comprising:
a computer usable medium, having computer readable program code embodied in said medium, for providing a microprocessor core, said computer readable program code comprising; first program code for providing a plurality of inputs, configured to indicate whether a corresponding plurality of independently occurring events has occurred, wherein said plurality of inputs are non-memory address inputs; and second program code for providing a yield instruction, included in the instruction set of the architecture of the microprocessor core, comprising a user-visible output operand and an explicit input operand, said input operand for specifying one or more of said plurality of independently occurring events; wherein said yield instruction instructs the microprocessor core to suspend issuing for execution instructions of a program thread until at least one of said independently occurring events specified by said input operand has occurred, wherein said program thread contains said yield instruction; wherein said yield instruction further instructs the microprocessor core to return a value in said output operand indicating which of said independently occurring events occurred to cause the microprocessor core to resume issuing said instructions of said program thread. - View Dependent Claims (22, 23, 24, 25)
Specification