Split-level history buffer in a computer processing unit
AssigneeInternational Business Machines Corporation
InventorsHung Q. Le, Dung Q. Nguyen, David R. Terry
Life of this patent
Estimating the term…
Abstract
A split level history buffer in a central processing unit is provided. A history buffer is partitioned into a first portion and a second portion, wherein the first portion includes a first tagged instruction. A result is generated for the first tagged instruction. A determination whether a second tagged instruction is to be stored in the first portion of the history buffer is made. Responsive to the determination that the second tagged instruction is to be stored in the first portion of the history buffer, the first tagged instruction and the generated result for the first tagged instruction is written to the second portion of the history buffer.
Claims17
A central processing unit (CPU), the CPU comprising:
- a history buffer, wherein the history buffer is partitioned into a first portion and a second portion;
- an instruction fetch unit, wherein the instruction fetch unit fetches and tags an instruction;
- a register file, wherein the register file stores the tagged instruction;
- an execution unit, wherein the execution unit generates a result for the tagged instruction;
- one or more computer readable storage media, and program instructions stored on the one or more computer readable storage media for execution by one or more computer processors, the program instructions to:
- fetch a first instruction;
- tag the first instruction;
- store the first instruction in an entry of the register file, wherein the register file stores fetched and tagged instructions;
- fetch a second instruction;
- tag the second instruction;
- evict the first instruction from the entry of the register file and store the second instruction in the entry of the register file;
- responsive to evicting the first instruction, store the first instruction in the first portion of the history buffer;
- generate a result for the first instruction;
- determine whether the second instruction is to be stored in the first portion of the history buffer;
- and
- responsive to generating the result for the first instruction, move the first instruction from the first portion of the history buffer by storing the first instruction including the generated result for the first instruction in the second portion of the history buffer.
A method comprising:
- fetching a first instruction;
- tagging the first instruction;
- storing the first instruction in an entry of a register file, wherein the register file stores fetched and tagged instructions;
- fetching a second instruction;
- tagging the second instruction;
- evicting the first instruction from the entry of the register file and storing the second instruction in the entry of the register file;
- partitioning a history buffer into a first portion and a second portion;
- storing the first instruction in the first portion of the history buffer;
- generating a result for the first instruction;
- determining whether the second instruction is to be stored in the first portion of the history buffer;
- and
- responsive to generating the result for the first instruction, moving the first instruction from the first portion of the history buffer by storing the first instruction including the generated result for the first instruction in the second portion of the history buffer.
A computer program product, the computer program product comprising:
- one or more computer readable storage media and program instructions stored on the one or more computer readable storage media for execution by one or more computer processors, the program instructions to:
- fetch a first instruction;
- tag the first instruction;
- store the first instruction in an entry of a register file, wherein the register file stores fetched and tagged instructions;
- fetch a second instruction;
- tag the second instruction;
- evict the first instruction from the entry of the register file and store the second instruction in the entry of the register file;
- partition a history buffer into a first portion and a second portion;
- responsive to evicting the first instruction, store the first instruction in the first portion of the history buffer;
- generate a result for the first instruction;
- determine whether the second instruction is to be stored in the first portion of the history buffer;
- and
- responsive to generating the result for the first instruction, move the first instruction from the first portion of the history buffer by storing the first instruction including the generated result for the first instruction in the second portion of the history buffer.
Dependencies are inferred from the claim text.