IP Library Granted Patent US 9,720,832
Granted Patent B2
US 9,720,832 · App. 14/671,050 · Granted Aug 1, 2017

Store operations to maintain cache coherence

Inventors: Constantinos Evangelinos (Andover, MA); Ravi Nair (Briarcliff Manor, NY); Martin Ohmacht (Yorktown Heights, NY)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F12/0815G06F12/0842G06F12/0875G06F2212/452G06F2212/622
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,720,832
App. No.
14/671,050
Granted
Aug 1, 2017
Kind
B2
Abstract

In one embodiment, a computer-implemented method includes encountering a store operation during a compile-time of a program, where the store operation is applicable to a memory line. It is determined, by a computer processor, that no cache coherence action is necessary for the store operation. A store-without-coherence-action instruction is generated for the store operation, responsive to determining that no cache coherence action is necessary. The store-without-coherence-action instruction specifies that the store operation is to be performed without a cache coherence action, and cache coherence is maintained upon execution of the store-without-coherence-action instruction.

Claims (28)

1. A system comprising:

a memory having computer readable instructions; and

one or more processors communicatively coupled to the memory, the one or more processors configured to:

encounter a store operation during a compile-time of a program, the store operation applicable to a memory line;

determine that a last processing element to access the memory line prior to the store operation is part of an accelerator; and

generate, during the compile-time of the program, a store-without-coherence-action instruction for the store operation, responsive to the last processing element to access the memory line prior to the store operation being part of the accelerator;

wherein the store-without-coherence-action instruction specifies that the store operation be performed without a cache coherence action, and wherein cache coherence is maintained upon execution of the store-without-coherence-action instruction.

2. The system of claim 1 , wherein, to determine that the last processing element to access the memory line prior to the store operation is part of the accelerator, the one or more processors are further configured to review one or more operations prior to the store operation.

3. The system of claim 1 , wherein the store-without-coherence-action instruction is executable by the accelerator, and wherein, when executing the store-without-coherence-action instruction, the accelerator is configured to request that the store operation without the coherence action be performed by a memory controller.

4. The system of claim 3 , wherein the memory controller is configured to skip the coherence action in response to the request.

5. The system of claim 1 , wherein the generating a store-without-coherence-action instruction for the store operation is performed by way of a compiler, and wherein the compiler is further configured to generate a store-with-coherence-action instruction.

6. The system of claim 1 , wherein the one or more processors are further configured to:

encounter a second store operation during the compile-time of the program, the second store operation applicable to a second memory line;

determine that a cache coherence action is necessary for the second store operation; and

generate, during the compile-time of the program, a store-with-coherence-action instruction for the store operation, responsive to the determining that the cache coherence action is necessary for the second store operation, wherein the store-with-coherence-action instruction specifies that the second store operation be performed with the cache coherence action.

7. A computer program product for maintaining cache coherence, 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:

encountering a store operation during a compile-time of a program, the store operation applicable to a memory line;

determining that a last processing element to access the memory line prior to the store operation is part of an accelerator; and

generating, during the compile-time of the program, a store-without-coherence-action instruction for the store operation, responsive to the last processing element to access the memory line prior to the store operation being part of the accelerator;

wherein the store-without-coherence-action instruction specifies that the store operation be performed without a cache coherence action, and wherein cache coherence is maintained upon execution of the store-without-coherence-action instruction.

8. The computer program product of claim 7 , wherein the determining that the last processing element to access the memory line prior to the store operation is part of the accelerator comprises reviewing one or more operations prior to the store operation.

9. The computer program product of claim 7 , wherein the store-without-coherence-action instruction is executable by the accelerator, and wherein, when executing the store-without-coherence-action instruction, the accelerator is configured to request that the store operation without the coherence action be performed by a memory controller.

10. The computer program product of claim 9 , wherein the memory controller is configured to skip the coherence action in response to the request.

11. The computer program product of claim 7 , wherein the generating a store-without-coherence-action instruction for the store operation is performed by a compiler, and wherein the compiler is further configured to generate a store-with-coherence-action instruction.

12. The computer program product of claim 7 , the method further comprising:

encountering a second store operation during the compile-time of the program, the second store operation applicable to a second memory line;

determining that a cache coherence action is necessary for the second store operation; and

generating, during the compile-time of the program, a store-with-coherence-action instruction for the store operation, responsive to the determining that the cache coherence action is necessary for the second store operation, wherein the store-with-coherence-action instruction specifies that the second store operation be performed with the cache coherence action.

Assignments (2)
CONFIRMATORY LICENSE Recorded Dec 10, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: U.S. DEPARTMENT OF ENERGY
Reel/Frame 037259/0456 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2015
From: EVANGELINOS, CONSTANTINOS; NAIR, RAVI; OHMACHT, MARTIN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 035275/0519 →
Continuity (1)
Related Publication 20160283377A1 · Sep 29, 2016