IP Library Granted Patent US 9,563,428
Granted Patent B2
US 9,563,428 · App. 14/669,472 · Granted Feb 7, 2017

Schedulers with load-store queue awareness

Inventors: Tong Chen (Yorktown Heights, NY); Alexandre E. Eichenberger (Chappaqua, NY); Arpith C. Jacob (Dobbs Ferry, NY); Zehra N. Sura (Yorktown Heights, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F9/3842G06F9/30043
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,563,428
App. No.
14/669,472
Granted
Feb 7, 2017
Kind
B2
Abstract

In one embodiment, a computer-implemented method includes tracking a size of a load-store queue (LSQ) during compile time of a program. The size of the LSQ is time-varying and indicates how many memory access instructions of the program are on the LSQ. The method further includes scheduling, by a computer processor, a plurality of memory access instructions of the program based on the size of the LSQ.

Claims (27)

1. A system comprising:

a memory having computer readable instructions; and

one or more processors for executing the computer readable instructions, the computer readable instructions comprising:

tracking a size of a load-store queue (LSQ) during compile time of a program, the size of the LSQ being time-varying and indicating how many memory access instructions of the program are on the LSQ; and

scheduling, into a plurality of time windows, a plurality of memory access instructions of the program, wherein the scheduling into each time window of the plurality of time windows is based on how many memory access instructions of the program are on the LSQ at the time window, and wherein the scheduling comprises:

determining that the LSQ has reached a maximum number of memory access instructions at a first time window of the plurality of time windows;

estimating a length for which a memory access instruction of the plurality of memory accesses will be on the LSQ;

selecting a time at which to schedule the memory access instruction such that the size of the LSQ does not exceed the maximum number of memory access instructions throughout the length of the memory access instruction;

wherein the selecting comprises identifying a different time than the first time window at which to schedule the memory access instruction, responsive to the LSQ having reached the maximum number of memory access instructions at the first time window, wherein the identifying comprises scheduling the memory access instruction at an earlier time than the first time window; and

scheduling an arithmetic instruction at the first time window in addition to the maximum number of memory access instructions, responsive to determining that the LSQ has reached the maximum number of memory access instructions at the first time window.

2. The system of claim 1 , wherein the estimating the length for which the memory access instruction of the plurality of memory accesses will be on the LSQ comprises estimating a latency of the memory access instruction.

3. The system of claim 1 , wherein the estimating the length for which the memory access instruction of the plurality of memory accesses will be on the LSQ comprises determining how many iterations of the memory access instruction will be issued.

4. The system of claim 1 , the computer readable instructions further comprising:

dividing a running time of the program into a plurality of time windows, wherein each time window comprises two or more processor cycles;

wherein the scheduling the plurality of memory access instructions of the program comprises ensuring the size of the LSQ does not exceed the maximum number of memory access instructions in each time window of the plurality of time windows.

5. A computer program product for scheduling instructions, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a processor to cause the processor to perform a method comprising:

tracking a size of a load-store queue (LSQ) during compile time of a program, the size of the LSQ being time-varying and indicating how many memory access instructions of the program are on the LSQ; and

scheduling, into a plurality of time windows, a plurality of memory access instructions of the program, wherein the scheduling into each time window of the plurality of time windows is based on how many memory access instructions of the program are on the LSQ at the time window, and wherein the scheduling comprises:

determining that the LSQ has reached a maximum number of memory access instructions at a first time window of the plurality of time windows;

estimating a length for which a memory access instruction of the plurality of memory accesses will be on the LSQ;

selecting a time at which to schedule the memory access instruction such that the size of the LSQ does not exceed the maximum number of memory access instructions throughout the length of the memory access instruction;

wherein the selecting comprises identifying a different time than the first time window at which to schedule the memory access instruction, responsive to the LSQ having reached the maximum number of memory access instructions at the first time window, wherein the identifying comprises scheduling the memory access instruction at an earlier time than the first time window; and

scheduling an arithmetic instruction at the first time window in addition to the maximum number of memory access instructions, responsive to determining that the LSQ has reached the maximum number of memory access instructions at the first time window.

6. The computer program product of claim 5 , wherein the estimating the length for which the memory access instruction of the plurality of memory accesses will be on the LSQ comprises estimating a latency of the memory access instruction.

7. The computer program product of claim 5 , further comprising:

dividing a running time of the program into a plurality of time windows, wherein each time window comprises two or more processor cycles;

wherein the scheduling the plurality of memory access instructions of the program comprises ensuring the size of the LSQ does not exceed the maximum number of memory access instructions in each time window of the plurality of time windows.

Assignments (2)
CONFIRMATORY LICENSE Recorded Dec 10, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: U.S. DEPARTMENT OF ENERGY
Reel/Frame 037259/0405 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2015
From: CHEN, TONG; EICHENBERGER, ALEXANDRE E.; JACOB, ARPITH C.; SURA, ZEHRA N.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 035265/0408 →
Continuity (1)
Related Publication 20160283248A1 · Sep 29, 2016