Claims
- 1. A method for freeing a renaming register, the renaming register being allocated to an architectural register by a processor for the out-of-order execution of at least one of a plurality of instructions, comprising the steps of:
(a) including an indicator with the plurality of instructions, the indicator indicating that the renaming register is to be freed from allocation to the architectural register; and (b) employing the indicator to identify the renaming register to the processor, the processor freeing the identified renaming register from allocation to the architectural register, so that the renaming register is available to the processor for the execution of another instruction.
- 2. The method of claim 1, wherein the indicator is a bit included with the instruction, the instruction defining the architectural register and the bit indicating that the renaming register allocated to the architectural register is to be freed when the instruction is completed by the processor.
- 3. The method of claim 1, wherein the indicator is another instruction that indicates that the renaming register allocated to a particular architectural register is to be freed by the processor.
- 4. The method of claim 1, wherein the indicator is a mask that includes a plurality of bits, each bit corresponding to one of a plurality of architectural registers and being employed to indicate that the renaming register allocated to the architectural register is to be freed by the processor.
- 5. The method of claim 4, wherein the mask is included with another instruction, the other instruction being employed to indicate that at least one of the plurality of renaming registers allocated to the plurality of architectural registers is to be freed by the processor.
- 6. The method of claim 4, wherein the mask is included with the instruction, the mask being employed to indicate that at least one of the plurality of renaming registers allocated to the plurality of architectural registers is to be freed when the instruction is completed by the processor.
- 7. The method of claim 1, wherein the indicator is an opcode that is included with the instruction, the instruction defining the architectural register and the opcode being employed to indicate that the renaming register allocated to the architectural register is to be freed by the processor when the execution of the instruction is completed.
- 8. The method of claim 1, further comprising the step of employing a compiler to provide the indicator.
- 9. The method of claim 8, wherein the compiler performs a plurality of functional steps, comprising:
(a) determining when a value in an architectural register will no longer be needed; and (b) employing the determination to produce the indicator.
- 10. The method of claim 1, further comprising the step of enabling the user to provide the indicator to the processor, the user determining when employing the indicator to indicate when the renaming register allocated to the architectural register is to be freed by the processor.
- 11. The method of claim 1, further comprises the step of employing the freed renaming register for the execution of the other instruction, the processor reallocating the freed renaming register to the architectural register defined by the other instruction.
- 12. The method of claim 1, wherein the processor is multithreaded, the multithreaded processor being enabled to execute out-of-order a plurality of instructions that are associated with a plurality of threads.
- 13. The method of claim 12, further comprising the steps of:
(a) employing an operating system to determine if the execution of a thread is complete; and if true (b) employing the operating system to produce an instruction, the instruction indicating that the execution of the thread is complete and indicating that the renaming registers allocated to the architectural registers associated with the thread are to be freed by the multithreaded processor.
- 14. The method of claim 12, wherein the multithreaded processor employs a plurality of shared registers, the shared registers being definable as either the architectural register or the renaming register as required for the execution of each thread.
- 15. A storage medium having processor-executable instructions for performing the steps recited in claim 1.
- 16. A method for freeing a renaming register, the renaming register being allocated to an architectural register by a processor for the out-of-order execution of at least one of a plurality of instructions, comprising the steps of:
(a) employing a compiler to provide an indicator, the indicator indicating that the renaming register is to be freed from allocation to the architectural register, the compiler performing a plurality of functional steps, comprising:
(i) determining when a value in an architectural register will no longer be needed; and (ii) employing the determination to produce the indicator; and (b) including the indicator with the plurality of instructions; and (c) employing the indicator to identify the renaming register to the processor, the processor freeing the identified renaming register from allocation to the architectural register, so that the renaming register is available to the processor for the execution of another instruction.
- 17. A system for freeing a renaming register, the renaming register being allocated to an architectural register for the out-of-order execution of at least one of a plurality of instructions, comprising:
(a) a processor, the processor being coupled to the architecture register and the renaming register; and (b) a memory being coupled to the processor, the memory storing a plurality of logical steps that are implemented by the processor, comprising:
(i) including an indicator with the plurality of instructions, the indicator indicating that the renaming register is to be freed from allocation to the architectural register; and (ii) employing the indicator to identify the renaming register to the processor, the processor freeing the identified renaming register from allocation to the architectural register, so that the renaming register is available to the processor for the execution of another instruction.
RELATED APPLICATIONS
[0001] This application is a continuation-in-part of previously filed U.S. Provisional Patent Applications, U.S. Ser. Nos. 60/041,803, and 60/041,802, both filed on Apr. 3, 1997, the benefit of the filing dates of which is hereby claimed under 35 U.S.C. § 119(e).
Provisional Applications (2)
|
Number |
Date |
Country |
|
60041803 |
Apr 1997 |
US |
|
60041802 |
Apr 1997 |
US |