发明名称 |
Restoring a register renaming map |
摘要 |
A technique for restoring a register renaming map is described. In one example, a restore table having a number of storage locations saves a copy of the register renaming map whenever a flow-risk instruction is passed to a re-order buffer. When all storage locations are full, further instructions still pass to the re-order buffer, but a copy of the map is not saved. A storage location subsequently becomes available when its associated flow-risk instruction is executed. A register renaming map state for an unrecorded flow-risk instruction passed to the re-order buffer while the storage locations were full is generated and stored in the available location. This is generated using the restore table entry for a previous flow-risk instruction and re-order buffer values for intervening instructions between the previous and unrecorded flow-risk instructions. The restore table can be used to restore the map if an unexpected change in instruction flow occurs. |
申请公布号 |
US9128700(B2) |
申请公布日期 |
2015.09.08 |
申请号 |
US201213563025 |
申请日期 |
2012.07.31 |
申请人 |
Imagination Technologies Limited |
发明人 |
Jackson Hugh |
分类号 |
G06F9/38;G06F9/30 |
主分类号 |
G06F9/38 |
代理机构 |
Vorys, Sater, Seymour and Pease LLP |
代理人 |
Vorys, Sater, Seymour and Pease LLP ;DeLuca Vincent M |
主权项 |
1. A method of restoring a register renaming map in an out-of-order processor, comprising:
storing a copy of the register renaming map state in a storage location of a restore table whenever a flow-risk instruction is inserted into a re-order buffer, until all storage locations are utilised; determining that a storage location has subsequently become available; generating a derived register renaming map state for an unrecorded flow-risk instruction inserted into the re-order buffer whilst all storage locations were utilised, based on a previously stored register renaming map state for an older flow-risk instruction and values stored in the re-order buffer for intervening instructions inserted between the older flow-risk instruction and the unrecorded flow-risk instruction; storing the derived register renaming map state for the unrecorded flow-risk instruction at the available storage location; and in the event that execution of one of the flow-risk instructions causes an unexpected change in instruction flow, restoring the register renaming map using the register renaming map state associated with that flow-risk instruction in the restore table. |
地址 |
Kings Langley GB |