Flushable free register list having selected pointers moving in unison
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 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 microprocessor to prevent a register allocated as a destination operand for said instruction of said first thread from being overwritten before said instruction of said first thread retires, said first set of pointers includes at least two pointers set apart by a fixed distance and move in unison, at all times, up and down said structure.
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
50 Claims
-
1. In a microprocessor performing speculative instruction execution, a 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 microprocessor to prevent a register allocated as a destination operand for said instruction of said first thread from being overwritten before said instruction of said first thread retires, said first set of pointers includes at least two pointers set apart by a fixed distance and move in unison, at all times, up and down said structure. - 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 single 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 a 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 a 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. - View Dependent Claims (50)
-
-
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 first portion of said structure to track said physical registers assigned as said destination registers for a first thread of said microprocessor, said first set of register pointers includes a retire row pointer to identify where a pointer pointing to at least one of said plurality of physical registers assigned as a destination register for an instruction in said first thread that is next to be retired and a read pointer to identify where a pointer pointing to an available physical register available for assignment as a destination operand for an instruction for said first thread, wherein when said microprocessor issues a flush request for said instruction in said first thread, moving said 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. - View Dependent Claims (23, 24, 25, 26, 27)
-
-
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 microprocessor to prevent a register allocated as a destination operand for said instruction of said first thread from being overwritten before said instruction of said first thread retires, said first set of pointers includes a first pointer and a second pointer always set apart by a fixed distance and move in unison, at all times, up and down said structure. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
-
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 single 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 a 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 a 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