IP Library Granted Patent US 9,959,121
Granted Patent B2
US 9,959,121 · App. 15/013,018 · Granted May 1, 2018

Bypassing a higher level register file in a processor having a multi-level register file and a set of bypass registers

Inventors: Christopher M. Abernathy (Austin, TX); Mary D. Brown (Austin, TX); Sundeep Chadha (Austin, TX); Dung Q. Nguyen (Austin, TX)
Assignee: International Business Machines Corporation
G06F9/3824G06F9/3012G06F9/3016G06F9/30101G06F9/30138G06F9/34G06F9/384G06F9/3826
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,959,121
App. No.
15/013,018
Granted
May 1, 2018
Kind
B2
Abstract

A register file bypass controller in communication with a set of one or more bypass registers, the register file bypass controller configured to receive a register file bypass request; determine whether to grant the register file bypass request; determine whether data identified by the register file bypass request is present in the set of one or more bypass registers in response to determining to grant the register file bypass request; determine a selected bypass register in the set of one or more bypass registers in response to determining the data identified by the register file bypass request is not present in the set of one or more bypass registers; determine to store the data identified by the register file bypass request in the selected bypass register; and notify an execution unit to cancel instruction execution associated with the data identified by the register file bypass request.

Claims (52)

1. A method for utilizing a register file bypass, the method comprising:

receiving a register file bypass request;

determining whether to grant the register file bypass request;

determining whether data identified by the register file bypass request is present in a set of one or more bypass registers in response to determining to grant the register file bypass request;

determining a selected bypass register in the set of one or more bypass registers in response to determining the data identified by the register file bypass request is not present in the set of one or more bypass registers;

determining to store the data identified by the register file bypass request in the selected bypass register; and

notifying an execution unit to cancel instruction execution associated with the data identified by the register file bypass request.

2. The method of claim 1 further comprising determining to set a multiplexer to select the data identified by the register file bypass request from a bypass register of the set of one or more bypass registers having the data in response to determining the data identified by the register file bypass request is present in the set of one or more bypass registers.

3. The method of claim 1 further comprising notifying the execution unit to cancel instruction execution associated with the data identified by the register file bypass request in response to determining to not grant the register file bypass request.

4. The method of claim 1 , wherein the data identified by the register file bypass request comprises data cast out from a first level register file and stored in a second level register file.

5. The method of claim 1 , wherein determining whether to grant the register file bypass request comprises at least one member selected from the group consisting of:

determining whether a swap request is pending; and

determining a number of bypass registers available in the set of one or more bypass registers.

6. The method of claim 1 , wherein the set of one or more bypass registers comprises a plurality of bypass registers, and wherein determining the selected bypass register in the plurality of bypass registers comprises at least one member selected from the group consisting of:

determining, for each bypass register of the plurality of bypass registers, a number of cycles since the bypass register was accessed; and

determining previously accessed data in the selected bypass register.

7. The method of claim 1 , wherein determining whether the data identified by the register file bypass request is present in the set of one or more bypass registers comprises comparing a first thread identifier and a first logical register identifier of the register file bypass request with a second thread identifier and a second logical register identifier associated with a bypass register of the set of one or more bypass registers.

8. An apparatus comprising:

a set of one or more bypass registers; and

a register file bypass controller in communication with the set of one or more bypass registers, the register file bypass controller configured to:

receive a register file bypass request;

determine whether to grant the register file bypass request;

determine whether data identified by the register file bypass request is present in the set of one or more bypass registers in response to determining to grant the register file bypass request;

determine a selected bypass register in the set of one or more bypass registers in response to determining the data identified by the register file bypass request is not present in the set of one or more bypass registers;

determine to store the data identified by the register file bypass request in the selected bypass register; and

notify an execution unit to cancel instruction execution associated with the data identified by the register file bypass request.

9. The apparatus of claim 8 , wherein the register file bypass controller is further configured to determine to set a multiplexer to select the data identified by the register file bypass request from a bypass register of the set of one or more bypass registers having the data in response to determining the data identified by the register file bypass request is present in the set of one or more bypass registers.

10. The apparatus of claim 8 , wherein the register file bypass controller is further configured to notify the execution unit to cancel instruction execution associated with the data identified by the register file bypass request in response to determining to not grant the register file bypass request.

11. The apparatus of claim 8 , wherein the data identified by the register file bypass request comprises data cast out from a first level register file and stored in a second level register file.

12. The apparatus of claim 8 , wherein the register file bypass controller configured to determine whether to grant the register file bypass request comprises at least one member selected from the group consisting of:

the register file bypass controller configured to determine whether a swap request is pending; and

the register file bypass controller configured to determine a number of bypass registers available in the set of one or more bypass registers.

13. The apparatus of claim 8 , wherein the set of one or more bypass registers comprises a plurality of bypass registers, and wherein the register file bypass controller configured to determine the selected bypass register in the plurality of bypass registers comprises at least one member selected from the group consisting of:

the register file bypass controller configured to determine, for each bypass register of the plurality of bypass registers, a number of cycles since the bypass register was accessed; and

the register file bypass controller configured to determine previously accessed data in the selected bypass register.

14. The apparatus of claim 8 , wherein the register file bypass controller configured to determine whether the data identified by the register file bypass request is present in the set of one or more bypass registers comprises the register file bypass controller configured to compare a first thread identifier and a first logical register identifier of the register file bypass request with a second thread identifier and a second logical register identifier associated with a bypass register of the set of one or more bypass registers.

15. A computer program product for utilizing a register file bypass, the computer program product comprising a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to:

receive a register file bypass request;

determine whether to grant the register file bypass request;

determine whether data identified by the register file bypass request is present in a set of one or more bypass registers in response to determining to grant the register file bypass request;

determine a selected bypass register in the set of one or more bypass registers in response to determining the data identified by the register file bypass request is not present in the set of one or more bypass registers;

determine to store the data identified by the register file bypass request in the selected bypass register; and

notify an execution unit to cancel instruction execution associated with the data identified by the register file bypass request.

16. The computer program product of claim 15 , wherein the instructions further cause the processor to determine to set a multiplexer to select the data identified by the register file bypass request from a bypass register of the set of one or more bypass registers having the data in response to determining the data identified by the register file bypass request is present in the set of one or more bypass registers.

17. The computer program product of claim 15 , wherein the instructions further cause the processor to notify the execution unit to cancel instruction execution associated with the data identified by the register file bypass request in response to determining to not grant the register file bypass request.

18. The computer program product of claim 15 , wherein the data identified by the register file bypass request comprises data cast out from a first level register file and stored in a second level register file.

19. The computer program product of claim 15 , wherein the instructions that cause the processor to determine whether to grant the register file bypass request comprise at least one member selected from the group consisting of:

instructions to cause the processor to determine whether a swap request is pending; and

instructions to cause the processor to determine a number of bypass registers available in the set of one or more bypass registers.

20. The computer program product of claim 15 , wherein the set of one or more bypass registers comprises a plurality of bypass registers, and wherein the instructions that cause the processor to determine the selected bypass register in the plurality of bypass registers comprise at least one member selected from the group consisting of:

instructions to cause the processor to determine, for each bypass register of the plurality of bypass registers, a number of cycles since the bypass register was accessed; and

instructions to cause the processor to determine previously accessed data in the selected bypass register.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2016
From: BROWN, MARY D; CHADHA, SUNDEEP; NGUYEN, DUNG Q.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037642/0154 →
Continuity (2)
Continuation 13664974 · Oct 31, 2012
Related Publication 20160154650A1 · Jun 2, 2016