Data-less history buffer with banked restore ports in a register mapper
AssigneeInternational Business Machines Corporation
InventorsBrian D. Barrick, Gregory W. Alexander, Dung Q. Nguyen
Life of this patent
Estimating the term…
Abstract
A microprocessor has a data-less history buffer. Operands associated with a program instructions are stored in logical registers (LREGs) which are resolvable to physical registers that are not part of the history buffer. Register re-naming maintains integrity of data dependencies for instructions processed out of program order. The history buffer has pointers (RTAGs) to the LREGs. Entries in the history buffer are grouped into ranges. A mapper has a single port associated with each LREG, and each port receives data, from a single range of entries in the history buffer. Multiple entries, one from each range, may be restored concurrently from the history buffer to the mapper.
Claims19
A method comprising:
- providing a first port connected to a first memory structure, a second port connected to a second memory structure, and a first restore lane that interconnects the first port and the second port;
- providing a third port connected to the first memory structure, a fourth port connected to the second memory structure, and a second restore lane that interconnects the third port and the fourth port;
- storing a first dataset, a second dataset, a third dataset, and a fourth dataset, respectively in a first storage location, a second storage location, a third storage location, and a fourth storage location of the first memory structure;
- receiving an instruction flush signal;
- in response to receiving the instruction flush signal:
- concurrently sending the first dataset and the third dataset to the second memory structure, via the first restore lane and the second restore lane respectively,
- concurrently sending the second dataset and the fourth dataset to the second memory structure, via the first restore lane and the second restore lane respectively;
- receiving an instruction dispatch signal;
- and
- in response to receiving the instruction dispatch signal, reading the second memory structure to determine a register source mapping based on at least one of the first dataset, the second dataset, the third dataset and the fourth dataset stored therein;
- wherein:
- the first storage location and the third storage location are connected to the first port exclusively, and
- the second storage location and the fourth storage location are connected to the third port exclusively.
A microprocessor structured to perform:
- providing a first port connected to a first memory structure, a second port connected to a second memory structure, and a first restore lane that interconnects the first port and the second port;
- providing a third port connected to the first memory structure, a fourth port connected to the second memory structure, and a second restore lane that interconnects the third port and the fourth port;
- storing a first dataset, a second dataset, a third dataset, and a fourth dataset, respectively in a first storage location, a second storage location, a third storage location, and a fourth storage location of the first memory structure;
- receiving an instruction flush signal;
- in response to receiving the instruction flush signal:
- concurrently sending the first dataset and the third dataset to the second memory structure, via the first restore lane and the second restore lane respectively,
- concurrently sending the second dataset and the fourth dataset to the second memory structure, via the first restore lane and the second restore lane respectively;
- receiving an instruction dispatch signal;
- and
- in response to receiving the instruction dispatch signal, reading the second memory structure to determine a register source mapping based on at least one of the first dataset, the second dataset, the third dataset and the fourth dataset stored therein;
- wherein:
- the first storage location and the third storage location are connected to the first port exclusively, and
- the second storage location and the fourth storage location are connected to the third port exclusively.
A computer program product comprising:
- one or more computer readable storage media and program instructions stored on the one or more computer readable storage media, the program instructions comprising instructions to perform:
- providing a first port connected to a first memory structure, a second port connected to a second memory structure, and a first restore lane that interconnects the first port and the second port,
- providing a third port connected to the first memory structure, a fourth port connected to the second memory structure, and a second restore lane that interconnects the third port and the fourth port,
- storing a first dataset, a second dataset, a third dataset, and a fourth dataset, respectively in a first storage location, a second storage location, a third storage location, and a fourth storage location of the first memory structure,
- receiving an instruction flush signal;
- in response to receiving the instruction flush signal:
- concurrently sending the first dataset and the third dataset to the second memory structure, via the first restore lane and the second restore lane respectively,
- concurrently sending the second dataset and the fourth dataset to the second memory structure, via the first restore lane and the second restore lane respectively;
- receiving an instruction dispatch signal;
- and
- in response to receiving the instruction dispatch signal, reading the second memory structure to determine a register source mapping based on at least one of the first dataset, the second dataset, the third dataset and the fourth dataset stored therein;
- wherein:
- the first storage location and the third storage location are connected to the first port exclusively, and
- the second storage location and the fourth storage location are connected to the third port exclusively.
Dependencies are inferred from the claim text.