IP Library › Granted Patent US 9,477,474
Granted Patent B2
US 9,477,474 · App. 14/135,769 · Granted Oct 25, 2016

Optimization of instruction groups across group boundaries

Inventor: Michael K. Gschwind (Chappaqua, NY)
Assignee: GLOBALFOUNDRIES Inc.
G06F9/30145G06F8/41G06F8/433G06F8/443G06F9/3822G06F9/3853G06F9/455
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,477,474
App. No.
14/135,769
Granted
Oct 25, 2016
Kind
B2
Abstract

Instructions grouped into instruction groups are optimized across group boundaries. Instruction sequences spanning multiple groups are optimized by retaining information relating to an instruction at the end of one instruction group to be co-optimized with an instruction at the beginning of a subsequent instruction group. This retained information is then used in optimization of one or more instructions of the subsequent group. Optimization may be performed across n group boundaries, where n is equal to two or greater. Additionally, optimization of instructions within a group may be performed, in addition to the optimizations across group boundaries.

Claims (54)

1. A computer program product for facilitating processing in a processing environment, said computer program product comprising:

a non-transitory computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:

obtaining an instruction, the instruction being included in a group of a plurality of instructions and being part of a sequence of instructions straddling one or more other groups of one or more instructions;

performing optimization on at least two instructions of the plurality of instructions of the group to provide one or more optimized instructions;

obtaining one or more instructions from at least one other group of instructions of the one or more other groups of instructions;

performing optimization on at least one instruction of the one or more instructions obtained from the at least one other group of instructions using information obtained from the optimization on the at least two instructions of the group of the plurality of instructions; and

executing at least one optimized instruction resulting from performing the optimization on the at least one instruction from the at least one other group of instructions.

2. The computer program product of claim 1 , wherein the performing optimization on the at least one instruction from the at least one other group of instructions comprises generating at least one internal operation that represents at least a portion of an instruction of the group of the plurality of instructions and at least a portion of an instruction of the at least one instruction from the at least one other group of instructions.

3. The computer program product of claim 1 , wherein the method further comprises retaining information regarding the optimization of the at least two instructions of the plurality of instructions of the group, wherein the retained information includes the information used in performing the optimization on the at least one instruction from the at least one other group of instructions.

4. The computer program product of claim 3 , wherein the method further comprises simultaneously retaining information on at least two different groups of instructions, each group associated with a different thread identifier.

5. The computer program product of claim 3 , wherein the retained information includes a thread identifier of a thread associated with executing the plurality of instructions, and wherein the thread identifier controls whether optimization is to be performed on the at least one instruction from the at least one other group of instructions using the information.

6. The computer program product of claim 3 , wherein the method further comprises:

determining whether the obtained one or more instructions from the at least one other group of instructions is a member of an instruction sequence associated with the retained information; and

based on determining the obtained one or more instructions from the at least one other group of instructions is a member of the instruction sequence associated with the retained information, performing the optimization on the at least one instruction from the at least one other group of instructions.

7. The computer program product of claim 1 , wherein at least one of the performing optimization on the at least two instructions of the plurality of instructions of the group and performing optimization on the at least one instruction from the at least one other group of instructions comprises using one or more templates to perform the optimization.

8. The computer program product of claim 1 , wherein at least one of the optimization of the at least two instructions of the plurality of instructions of the group and the optimization of the at least one instruction from the at least one other group of instructions is performed at decode time.

9. The computer program product of claim 1 , wherein the method further comprises:

determining whether the instruction obtained from the group of the plurality of instructions is a member of a contained optimization sequence, wherein the contained optimization sequence is a sequence of instructions within one particular group;

based on determining that the instruction obtained from the group of the plurality of instructions is not a member of the contained optimization sequence, determining whether the instruction obtained from the group of the plurality of instructions is a candidate for being a part of the sequence of instructions straddling the one or more other groups; and

based on determining the instruction obtained from the group of the plurality of instructions is a candidate for being a part of the sequence of instructions, performing the optimization on the at least two instructions of the plurality of instructions of the group.

10. The computer program product of claim 8 , wherein the determining whether the instruction obtained from the group of the plurality of instructions is a candidate for being a part of the sequence of instructions straddling the one or more other groups comprises using one or more of a template, predefined criteria, or one or more parameters to determine whether it is a candidate.

11. A computer system for facilitating processing in a processing environment, said computer system comprising:

a memory; and

a processor in communications with the memory, wherein the computer system is configured to perform a method, the method comprising:

obtaining an instruction, the instruction being included in a group of a plurality of instructions and being part of a sequence of instructions straddling one or more other groups of one or more instructions;

performing optimization on at least two instructions of the plurality of instructions of the group to provide one or more optimized instructions;

obtaining one or more instructions from at least one other group of instructions of the one or more other groups of instructions;

performing optimization on at least one instruction of the one or more instructions obtained from the at least one other group of instructions using information obtained from the optimization on the at least two instructions of the group of the plurality of instructions; and

executing at least one optimized instruction resulting from performing the optimization on the at least one instruction from the at least one other group of instructions.

12. The computer system of claim 11 , wherein the performing optimization on the at least one instruction from the at least one other group of instructions comprises generating at least one internal operation that represents at least a portion of an instruction of the group of the plurality of instructions and at least a portion of an instruction of the at least one instruction from the at least one other group of instructions.

13. The computer system of claim 11 , wherein the method further comprises retaining information regarding the optimization of the at least two instructions of the plurality of instructions of the group, wherein the retained information includes the information used in performing the optimization on the at least one instruction from the at least one other group of instructions.

14. The computer system of claim 13 , wherein the retained information includes a thread identifier of a thread associated with executing the plurality of instructions, and wherein the thread identifier controls whether optimization is to be performed on the at least one instruction from the at least one other group of instructions using the information.

15. The computer system of claim 13 , wherein the method further comprises:

determining whether the obtained one or more instructions from the at least one other group of instructions is a member of an instruction sequence associated with the retained information; and

based on determining the obtained one or more instructions from the at least one other group of instructions is a member of the instruction sequence associated with the retained information, performing the optimization on the at least one instruction from the at least one other group of instructions.

16. The computer system of claim 11 , wherein the method further comprises:

determining whether the instruction obtained from the group of the plurality of instructions is a member of a contained optimization sequence;

based on determining that the instruction obtained from the group of the plurality of instructions is not a member of the contained optimization sequence, determining whether the instruction obtained from the group of the plurality of instructions is a candidate for being a part of the sequence of instructions straddling the one or more other groups; and

based on determining the instruction obtained from the group of the plurality of instructions is a candidate for being a part of the sequence of instructions, performing the optimization on the at least two instructions of the plurality of instructions of the group.

17. The computer system of claim 16 , wherein the determining whether the instruction obtained from the group of the plurality of instructions is a candidate for being a part of the sequence of instructions straddling the one or more other groups comprises using one or more of a template, predefined criteria, or one or more parameters to determine whether it is a candidate.

18. A method of facilitating processing in a processing environment, said method comprising:

obtaining an instruction, the instruction being included in a group of a plurality of instructions and being part of a sequence of instructions straddling one or more other groups of one or more instructions;

performing optimization on at least two instructions of the plurality of instructions of the group to provide one or more optimized instructions;

obtaining one or more instructions from at least one other group of instructions of the one or more other groups of instructions;

performing optimization on at least one instruction of the one or more instructions obtained from the at least one other group of instructions using information obtained from the optimization on the at least two instructions of the group of the plurality of instructions; and

executing at least one optimized instruction resulting from performing the optimization on the at least one instruction from the at least one other group of instructions.

19. The method of claim 18 , further comprising:

retaining information regarding the optimization of the at least two instructions of the plurality of instructions of the group, wherein the retained information includes the information used in performing the optimization on the at least one instruction;

determining whether the obtained one or more instructions from the at least one other group of instructions is a member of an instruction sequence associated with the retained information; and

based on determining the obtained one or more instructions from the at least one other group of instructions is a member of the instruction sequence associated with the retained information, performing the optimization on the at least one instruction from the at least one other group of instructions.

20. The method of claim 18 , further comprising:

determining whether the instruction obtained from the group of the plurality of instructions is a member of a contained optimization sequence;

based on determining that the instruction obtained from the group of the plurality of instructions is not a member of the contained optimization sequence, determining whether the instruction obtained from the group of the plurality of instructions is a candidate for being a part of the sequence of instructions straddling the one or more other groups; and

based on determining the instruction obtained from the group of the plurality of instructions is a candidate for being a part of the sequence of instructions, performing the optimization on the at least two instructions of the plurality of instructions of the group.

Assignments (7)
RELEASE OF SECURITY INTEREST Recorded May 12, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 056987/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 20, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES INC.
Reel/Frame 054636/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2020
From: GLOBALFOUNDRIES INC.
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 054633/0001 →
SECURITY AGREEMENT Recorded Nov 29, 2018
From: GLOBALFOUNDRIES INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 049490/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2015
From: GLOBALFOUNDRIES U.S. 2 LLC; GLOBALFOUNDRIES U.S. INC.
To: GLOBALFOUNDRIES INC.
Reel/Frame 036779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GLOBALFOUNDRIES U.S. 2 LLC
Reel/Frame 036550/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2013
From: GSCHWIND, MICHAEL K.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 031826/0860 →
Continuity (2)
Continuation 13931680 · Jun 28, 2013
Related Publication 20150006867A1 · Jan 1, 2015