SELECTIVELY ENABLED RESULT LOOKASIDE BUFFER
First Claim
1. A method comprising:
- storing, at a tag portion of a buffer, first instruction information comprising a first opcode and a first set of operands, the first set comprising at least one operand;
storing, at a data portion of the buffer, a first result of a first operation performed on the first set of operands based on the first opcode;
in response to receiving an instruction for execution at a computation unit, the instruction comprising a second opcode and a second set of operands, the second set comprising at least one operand, comparing the second opcode and the second set of operands to the first instruction information stored at the tag portion of the buffer;
accessing the first result at the data portion of the buffer in response to the second opcode and the second set of operands matching the first instruction information;
tracking, at a counter, an instance of the second opcode and the second set of operands matching the first instruction information; and
disabling the buffer in response to a value of the counter being less than a threshold value.
1 Assignment
0 Petitions
Accused Products
Abstract
A processing system selectively enables and disables a result lookaside buffer (RLB) based on a hit rate tracked by a counter, thereby reducing power consumption for lookups at the result lookaside buffer during periods of low hit rates and improving the overall hit rate for the result lookaside buffer. A controller increments the counter in the event of a hit at the RLB and decrements the counter in the event of a miss at the RLB. If the value of the counter falls below a threshold value, the processing system temporarily disables the RLB for a programmable period of time. After the period of time, the processing system re-enables the RLB and resets the counter to an initial value.
0 Citations
20 Claims
-
1. A method comprising:
-
storing, at a tag portion of a buffer, first instruction information comprising a first opcode and a first set of operands, the first set comprising at least one operand; storing, at a data portion of the buffer, a first result of a first operation performed on the first set of operands based on the first opcode; in response to receiving an instruction for execution at a computation unit, the instruction comprising a second opcode and a second set of operands, the second set comprising at least one operand, comparing the second opcode and the second set of operands to the first instruction information stored at the tag portion of the buffer; accessing the first result at the data portion of the buffer in response to the second opcode and the second set of operands matching the first instruction information; tracking, at a counter, an instance of the second opcode and the second set of operands matching the first instruction information; and disabling the buffer in response to a value of the counter being less than a threshold value. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method, comprising:
-
disabling, in response to a value of a counter being less than a threshold value, a buffer storing, at a tag portion, first instruction information comprising a first opcode and a first set of operands, the first set comprising at least one operand and storing, at a data portion, a first result of a first operation performed on the first set of operands based on the first opcode; re-enabling the buffer a first number of clock cycles after disabling the buffer; setting the counter to an initial value; tracking, at the counter, instances of an instruction for execution at a computation unit matching the first instruction information stored at the tag portion of the buffer, the instruction comprising a second opcode and a second set of operands, the second set comprising at least one operand; and accessing the first result at the data portion of the buffer in response to the second opcode and the second set of operands matching the first instruction information. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A device, comprising:
-
a computation unit to execute a plurality of instructions, each instruction of the plurality of instructions comprising an opcode and a set of operands, the set comprising at least one operand; a buffer comprising a tag portion and a data portion, the buffer configured to store at the tag portion first instruction information comprising at least one opcode and at least one set of operands for at least one previously executed instruction, and at the data portion corresponding results of operations performed based on the previously executed instructions; a comparator to compare instructions of the plurality of instructions to the first instruction information at the tag portion of the buffer; a counter to track instances of an instruction of the plurality of instructions matching first instruction information at the tag portion of the buffer; and a controller to disable the buffer in response to the counter being less than a threshold value, wherein the computation unit is configured to access a corresponding result at the data portion of the buffer in response to the instruction of the plurality of instructions matching the first instruction information. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification