IP Library Granted Patent US 11,474,821
Granted Patent B1
US 11,474,821 · App. 17/318,252 · Granted Oct 18, 2022

Processor dependency-aware instruction execution

Inventors: Amir Turi (Ramat Gan, IL); Avraham Ayzenfeld (Hod Hasharon, IL); Gilad Shimon Merran (Petach Tikva, IL); Yanai Danan (Tel Aviv, IL); Amit Shay (Kfar Saba, IL); Yossi Shapira (Shoham, IL); Yair Fried (Petah Tiqwa, IL); Oren Ben Gigi (Yavne, IL); Omri Rafaeli (Beer Sheba, IL)
Assignee: International Business Machines Corporation
G06F9/3838G06F9/3855
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 11,474,821
App. No.
17/318,252
Granted
Oct 18, 2022
Kind
B1
Abstract

In an approach to processor dependency-aware instruction execution, responsive to a new instruction being issued to an instruction issue queue in a processor, a future dependency count is incremented for each instruction of a plurality of instructions in the instruction issue queue that has a dependency on the new instruction. The plurality of instructions in the instruction issue queue are prioritized based on the future dependency count. The highest priority instruction of the plurality of instructions in the instruction issue queue is issued.

Claims (45)

1. A computer-implemented method for processor dependency-aware instruction execution, the computer-implemented method comprising:

responsive to a new instruction being dispatched to an instruction issue queue in a processor, incrementing, by one or more computer processors, a future dependency count for each instruction of a plurality of instructions in the instruction issue queue, wherein the newly dispatched instruction has a dependency to the plurality of instructions of an issue queue;

prioritizing, by the one or more computer processors, the plurality of instructions in the instruction issue queue based on the future dependency count, wherein the plurality of instructions in the instruction issue queue based on the future dependency count comprises:

responsive to determining that one or more instructions of the plurality of instructions in the instruction issue queue have the future dependency count that exceeds a predetermined threshold,

generating, by the one or more computer processors, a first list, wherein the first list contains the one or more instructions of the plurality of instructions in the instruction issue queue that have the future dependency count that exceeds the predetermined threshold and a second list, wherein the second list contains one or more instructions of the plurality of instructions in the instruction issue queue that have the future dependency count that is not greater than the predetermined threshold; and

issuing, by the one or more computer processors, a highest priority instruction of the plurality of instructions in the instruction issue queue.

2. The computer-implemented method of claim 1 , wherein the first list is stored in a forwarded queue, and further wherein the second list is stored in a not-forwarded queue.

3. The computer-implemented method of claim 1 , wherein issuing the highest priority instruction of the plurality of instructions in the instruction issue queue comprises:

issuing, by the one or more computer processors, the highest priority instruction from the first list, wherein the highest priority instruction was received first, and further wherein the highest priority instruction has past dependencies resolved.

4. The computer-implemented method of claim 3 , wherein issuing the highest priority instruction from the first list, wherein the highest priority instruction was received first, and further wherein the highest priority instruction has the past dependencies resolved further comprises:

responsive to a first number of instructions from the first list is less than a maximal number of instructions that can issue in a cycle, issuing, by the one or more computer processors, all of the instructions from the first list; and

issuing, by the one or more computer processors, a second number of instructions from the second list, wherein the first number of instructions and the second number of instructions equal the maximal number of instructions that can issue in the cycle.

5. The computer-implemented method of claim 3 , wherein issuing the highest priority instruction from the first list, wherein the highest priority instruction was received first, and further wherein the highest priority instruction has the past dependencies resolved further comprises:

responsive to determining that the first list is empty, issuing, by the one or more computer processors, an oldest instruction from the second list, wherein the oldest instruction was received first.

6. The computer-implemented method of claim 1 , wherein each instruction of the plurality of instructions in the instruction issue queue includes the future dependency count.

7. 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 including instructions to:

responsive to a new instruction being dispatched to an instruction issue queue in a processor, increment a future dependency count for each instruction of a plurality of instructions in the instruction issue queue, wherein the newly dispatched instruction has a dependency to the plurality of instructions of an issue queue;

prioritize the plurality of instructions in the instruction issue queue based on the future dependency count, wherein prioritize the plurality of instructions in the instruction issue queue based on the future dependency count comprises one or more of the program instructions, stored on the one or more computer readable storage media, to:

responsive to determining that one or more instructions of the plurality of instructions in the instruction issue queue have the future dependency count that exceeds a predetermined threshold, generate a first list, wherein the first list contains the one or more instructions of the plurality of instructions in the instruction issue queue that have the future dependency count that exceeds the predetermined threshold, and a second list, wherein the second list contains one or more instructions of the plurality of instructions in the instruction issue queue that have the future dependency count that is not greater than the predetermined threshold; and

issue a highest priority instruction of the plurality of instructions in the instruction issue queue.

8. The computer program product of claim 7 , wherein the first list is stored in a forwarded queue, and further wherein the second list is stored in a not-forwarded queue.

9. The computer program product of claim 7 , wherein issue the highest priority instruction of the plurality of instructions in the instruction issue queue comprises one or more of the program instructions, stored on the one or more computer readable storage media, to:

issue the highest priority instruction from the first list, wherein the highest priority instruction was received first, and further wherein the highest priority instruction has past dependencies resolved.

10. The computer program product of claim 9 , wherein issue the highest priority instruction from the first list, wherein the highest priority instruction was received first, and further wherein the highest priority instruction has the past dependencies resolved further comprises one or more of the program instructions, stored on the one or more computer readable storage media, to:

responsive to a first number of instructions from the first list is less than a maximal number of instructions that can issue in a cycle, issue all of the instructions from the first list; and

issue a second number of instructions from the second list, wherein the first number of instructions and the second number of instructions equal the maximal number of instructions that can issue in the cycle.

11. The computer program product of claim 9 , wherein issue the highest priority instruction from the first list, wherein the highest priority instruction was received first, and further wherein the highest priority instruction has the past dependencies resolved further comprises one or more of the program instructions, stored on the one or more computer readable storage media, to:

responsive to determining that the first list is empty, issue an oldest instruction from the second list, wherein the oldest instruction was received first.

12. The computer program product of claim 7 , wherein each instruction of the plurality of instructions in the instruction issue queue includes the future dependency count.

13. A computer system comprising:

one or more computer processors;

one or more computer readable storage media; and

program instructions stored on the one or more computer readable storage media for execution by at least one of the one or more computer processors, the stored program instructions including instructions to:

responsive to a new instruction being dispatched to an instruction issue queue in a processor, increment a future dependency count for each instruction of a plurality of instructions in the instruction issue queue, wherein the newly dispatched instruction has a dependency to the plurality of instructions of an issue queue;

prioritize the plurality of instructions in the instruction issue queue based on the future dependency count, wherein prioritize the plurality of instructions in the instruction issue queue based on the future dependency count comprises one or more of the program instructions, stored on the one or more computer readable storage media, to:

responsive to determining that one or more instructions of the plurality of instructions in the instruction issue queue have the future dependency count that exceeds a predetermined threshold, generate a first list, wherein the first list contains the one or more instructions of the plurality of instructions in the instruction issue queue that have the future dependency count that exceeds the predetermined threshold, and a second list, wherein the second list contains one or more instructions of the plurality of instructions in the instruction issue queue that have the future dependency count that is not greater than the predetermined threshold; and

issue a highest priority instruction of the plurality of instructions in the instruction issue queue.

14. The computer system of claim 13 , wherein the first list is stored in a forwarded queue, and further wherein the second list is stored in a not-forwarded queue.

15. The computer system of claim 13 , wherein issue the highest priority instruction of the plurality of instructions in the instruction issue queue comprises one or more of the program instructions, stored on the one or more computer readable storage media, to:

issue the highest priority instruction from the first list, wherein the highest priority instruction was received first, and further wherein the highest priority instruction has past dependencies resolved.

16. The computer system of claim 15 , wherein issue the highest priority instruction from the first list, wherein the highest priority instruction was received first, and further wherein the highest priority instruction has the past dependencies resolved further comprises one or more of the program instructions, stored on the one or more computer readable storage media, to:

responsive to a first number of instructions from the first list is less than a maximal number of instructions that can issue in a cycle, issue all of the instructions from the first list; and

issue a second number of instructions from the second list, wherein the first number of instructions and the second number of instructions equal the maximal number of instructions that can issue in the cycle.

17. The computer system of claim 15 , wherein issue the highest priority instruction from the first list, wherein the highest priority instruction was received first, and further wherein the highest priority instruction has the past dependencies resolved further comprises one or more of the program instructions, stored on the one or more computer readable storage media, to:

responsive to determining that the first list is empty, issue an oldest instruction from the second list, wherein the oldest instruction was received first.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 12, 2021
From: TURI, AMIR; AYZENFELD, AVRAHAM; MERRAN, GILAD SHIMON; DANAN, YANAI; SHAY, AMIT; SHAPIRA, YOSSI; FRIED, YAIR; BEN GIGI, OREN; RAFAELI, OMRI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 056215/0625 →
Cited By (1)
US 12,688,062