Flushable free register list
First Claim
Patent Images
1. In a microprocessor performing speculative instruction execution, a method comprising the steps of:
- providing a structure to track register allocation for a thread of said microprocessor; and
tracking a set of pointers in said structure assigned to manage said register allocation for an instruction of said thread of said microprocessor to prevent said register allocated as a destination operand for said instruction of said first thread from being overwritten before said instruction of said thread retires.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus is provided for restoring a free physical register list to its previous state without having to physically restore any data. The method and semiconductor device utilizes sets of pointers to manage physical register pointers in the physical register list. The physical register list is able to independently track physical registers for multiple threads of a multithreading microprocessor.
-
Citations
49 Claims
-
1. In a microprocessor performing speculative instruction execution, a method comprising the steps of:
-
providing a structure to track register allocation for a thread of said microprocessor; and
tracking a set of pointers in said structure assigned to manage said register allocation for an instruction of said thread of said microprocessor to prevent said register allocated as a destination operand for said instruction of said first thread from being overwritten before said instruction of said thread retires. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. In a multithreading microprocessor performing speculative instruction execution, a method comprising the steps of:
-
providing a structure to track register allocation for a first thread and a second thread of said multithreading microprocessor;
tracking a first set of pointers in said structure assigned to manage said register allocation for an instruction of said first thread of said multithreading processor to prevent said register allocated as a destination operand for said instruction of said first thread from being overwritten before said instruction of said first thread retires; and
tracking a second set of pointers in said structure assigned to manage said register allocation for an instruction of said second thread of said multithreading processor to prevent said register allocated as a destination operand for said instruction of said second thread from being overwritten before said instruction of said second thread retires, whereby said first set of pointers and said second set of pointers track independently of each other.
-
-
22. A semiconductor device having a plurality of physical registers that are assigned as destination registers for instructions to be executed by a microprocessor performing out-of-order execution, comprising:
-
a first module providing a structure for holding information identifying available physical registers for said microprocessor;
a first set of register pointers assigned to a of said structure to track said physical registers assigned as said destination registers for a thread of said microprocessor and when said microprocessor issues a flush request for an instruction in said thread, moving a read pointer of said set of register pointers to said physical register assigned as said destination register for said instruction being flushed in said thread to restore said physical register to a previous state. - View Dependent Claims (23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
-
28. A semiconductor device having a plurality of physical registers that are assigned as destination registers for instructions to be executed by a microprocessor performing out-of-order execution, comprising:
-
a first module providing a structure for holding information identifying available physical registers for said microprocessor;
a first set of register pointers assigned to a first portion of said structure to track said physical registers assigned as said destination registers for a first thread of said microprocessor and when said microprocessor issues a flush request for an instruction in said first thread, moving a read pointer of said first set of register pointers to said physical register assigned as said destination register for said instruction being flushed in said first thread to restore said physical register to a previous state; and
a second set of register pointers assigned to a second portion of said structure to track said physical registers assigned as said destination registers for a second thread of said microprocessor and when said microprocessor issues a flush request for an instruction in said second thread, moving a read pointer of said second set of register pointers to said physical register assigned as said destination register for said instruction being flushed in said second thread to restore said physical register to a previous state.
-
-
29. A computer readable medium holding computer executable instructions for performing a method in a microprocessor performing speculative instruction execution, said method comprising the steps of:
-
providing a structure to track register allocation for a first thread of said microprocessor; and
tracking a first set of pointers in said structure assigned to manage said register allocation for an instruction of said first thread of said processor to prevent said register allocated as a destination operand for said instruction of said first thread from being overwritten before said instruction of said first thread retires.
-
-
49. A computer readable medium holding computer executable instructions for performing a method in a multithreading microprocessor performing speculative instruction execution, said method comprising the steps of:
-
providing a structure to track register allocation for a first thread and a second thread of said multithreading microprocessor;
tracking a first set of pointers in said structure assigned to manage said register allocation for an instruction of said first thread of said multithreading processor to prevent said register allocated as a destination operand for said instruction of said first thread from being overwritten before said instruction of said first thread retires; and
tracking a second set of pointers in said structure assigned to manage said register allocation for an instruction of said second thread of said multithreading processor to prevent said register allocated as a destination operand for said instruction of said second thread from being overwritten before said instruction of said second thread retires, whereby said first set of pointers and said second set of pointers track independently of each other.
-
Specification